Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@renovosolutions/cdk-library-certbot

Package Overview
Dependencies
Maintainers
3
Versions
831
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@renovosolutions/cdk-library-certbot - npm Package Compare versions

Comparing version 0.1.48 to 0.2.0

53

API.md

@@ -12,3 +12,3 @@ # API Reference <a name="API Reference"></a>

new Certbot(scope: Construct, id: string, props: ICertbotProps)
new Certbot(scope: Construct, id: string, props: CertbotProps)
```

@@ -30,3 +30,3 @@

- *Type:* [`@renovosolutions/cdk-library-certbot.ICertbotProps`](#@renovosolutions/cdk-library-certbot.ICertbotProps)
- *Type:* [`@renovosolutions/cdk-library-certbot.CertbotProps`](#@renovosolutions/cdk-library-certbot.CertbotProps)

@@ -50,15 +50,16 @@ ---

## Structs <a name="Structs"></a>
### CertbotProps <a name="@renovosolutions/cdk-library-certbot.CertbotProps"></a>
## Protocols <a name="Protocols"></a>
#### Initializer <a name="[object Object].Initializer"></a>
### ICertbotProps <a name="@renovosolutions/cdk-library-certbot.ICertbotProps"></a>
```typescript
import { CertbotProps } from '@renovosolutions/cdk-library-certbot'
- *Implemented By:* [`@renovosolutions/cdk-library-certbot.ICertbotProps`](#@renovosolutions/cdk-library-certbot.ICertbotProps)
const certbotProps: CertbotProps = { ... }
```
##### `hostedZoneNames`<sup>Required</sup> <a name="@renovosolutions/cdk-library-certbot.CertbotProps.property.hostedZoneNames"></a>
#### Properties <a name="Properties"></a>
##### `hostedZoneNames`<sup>Required</sup> <a name="@renovosolutions/cdk-library-certbot.ICertbotProps.property.hostedZoneNames"></a>
```typescript

@@ -74,3 +75,3 @@ public readonly hostedZoneNames: string[];

##### `letsencryptDomains`<sup>Required</sup> <a name="@renovosolutions/cdk-library-certbot.ICertbotProps.property.letsencryptDomains"></a>
##### `letsencryptDomains`<sup>Required</sup> <a name="@renovosolutions/cdk-library-certbot.CertbotProps.property.letsencryptDomains"></a>

@@ -89,3 +90,3 @@ ```typescript

##### `letsencryptEmail`<sup>Required</sup> <a name="@renovosolutions/cdk-library-certbot.ICertbotProps.property.letsencryptEmail"></a>
##### `letsencryptEmail`<sup>Required</sup> <a name="@renovosolutions/cdk-library-certbot.CertbotProps.property.letsencryptEmail"></a>

@@ -102,3 +103,3 @@ ```typescript

##### `bucket`<sup>Optional</sup> <a name="@renovosolutions/cdk-library-certbot.ICertbotProps.property.bucket"></a>
##### `bucket`<sup>Optional</sup> <a name="@renovosolutions/cdk-library-certbot.CertbotProps.property.bucket"></a>

@@ -117,3 +118,3 @@ ```typescript

##### `enableInsights`<sup>Optional</sup> <a name="@renovosolutions/cdk-library-certbot.ICertbotProps.property.enableInsights"></a>
##### `enableInsights`<sup>Optional</sup> <a name="@renovosolutions/cdk-library-certbot.CertbotProps.property.enableInsights"></a>

@@ -131,3 +132,3 @@ ```typescript

##### `functionDescription`<sup>Optional</sup> <a name="@renovosolutions/cdk-library-certbot.ICertbotProps.property.functionDescription"></a>
##### `functionDescription`<sup>Optional</sup> <a name="@renovosolutions/cdk-library-certbot.CertbotProps.property.functionDescription"></a>

@@ -144,3 +145,3 @@ ```typescript

##### `functionName`<sup>Optional</sup> <a name="@renovosolutions/cdk-library-certbot.ICertbotProps.property.functionName"></a>
##### `functionName`<sup>Optional</sup> <a name="@renovosolutions/cdk-library-certbot.CertbotProps.property.functionName"></a>

@@ -157,3 +158,3 @@ ```typescript

##### `insightsARN`<sup>Optional</sup> <a name="@renovosolutions/cdk-library-certbot.ICertbotProps.property.insightsARN"></a>
##### `insightsARN`<sup>Optional</sup> <a name="@renovosolutions/cdk-library-certbot.CertbotProps.property.insightsARN"></a>

@@ -172,3 +173,3 @@ ```typescript

##### `layers`<sup>Optional</sup> <a name="@renovosolutions/cdk-library-certbot.ICertbotProps.property.layers"></a>
##### `layers`<sup>Optional</sup> <a name="@renovosolutions/cdk-library-certbot.CertbotProps.property.layers"></a>

@@ -187,3 +188,3 @@ ```typescript

##### `objectPrefix`<sup>Optional</sup> <a name="@renovosolutions/cdk-library-certbot.ICertbotProps.property.objectPrefix"></a>
##### `objectPrefix`<sup>Optional</sup> <a name="@renovosolutions/cdk-library-certbot.CertbotProps.property.objectPrefix"></a>

@@ -202,3 +203,3 @@ ```typescript

##### `preferredChain`<sup>Optional</sup> <a name="@renovosolutions/cdk-library-certbot.ICertbotProps.property.preferredChain"></a>
##### `preferredChain`<sup>Optional</sup> <a name="@renovosolutions/cdk-library-certbot.CertbotProps.property.preferredChain"></a>

@@ -216,3 +217,3 @@ ```typescript

##### `reIssueDays`<sup>Optional</sup> <a name="@renovosolutions/cdk-library-certbot.ICertbotProps.property.reIssueDays"></a>
##### `reIssueDays`<sup>Optional</sup> <a name="@renovosolutions/cdk-library-certbot.CertbotProps.property.reIssueDays"></a>

@@ -230,3 +231,3 @@ ```typescript

##### `runOnDeploy`<sup>Optional</sup> <a name="@renovosolutions/cdk-library-certbot.ICertbotProps.property.runOnDeploy"></a>
##### `runOnDeploy`<sup>Optional</sup> <a name="@renovosolutions/cdk-library-certbot.CertbotProps.property.runOnDeploy"></a>

@@ -244,3 +245,3 @@ ```typescript

##### `runOnDeployWaitMinutes`<sup>Optional</sup> <a name="@renovosolutions/cdk-library-certbot.ICertbotProps.property.runOnDeployWaitMinutes"></a>
##### `runOnDeployWaitMinutes`<sup>Optional</sup> <a name="@renovosolutions/cdk-library-certbot.CertbotProps.property.runOnDeployWaitMinutes"></a>

@@ -258,3 +259,3 @@ ```typescript

##### `schedule`<sup>Optional</sup> <a name="@renovosolutions/cdk-library-certbot.ICertbotProps.property.schedule"></a>
##### `schedule`<sup>Optional</sup> <a name="@renovosolutions/cdk-library-certbot.CertbotProps.property.schedule"></a>

@@ -272,3 +273,3 @@ ```typescript

##### `snsTopic`<sup>Optional</sup> <a name="@renovosolutions/cdk-library-certbot.ICertbotProps.property.snsTopic"></a>
##### `snsTopic`<sup>Optional</sup> <a name="@renovosolutions/cdk-library-certbot.CertbotProps.property.snsTopic"></a>

@@ -287,3 +288,3 @@ ```typescript

##### `timeout`<sup>Optional</sup> <a name="@renovosolutions/cdk-library-certbot.ICertbotProps.property.timeout"></a>
##### `timeout`<sup>Optional</sup> <a name="@renovosolutions/cdk-library-certbot.CertbotProps.property.timeout"></a>

@@ -301,1 +302,3 @@ ```typescript

@@ -9,3 +9,3 @@ import * as events from '@aws-cdk/aws-events';

*/
export interface ICertbotProps {
export interface CertbotProps {
/**

@@ -18,3 +18,3 @@ * The comma delimited list of domains for which the Let's Encrypt certificate will be valid.

*/
letsencryptDomains: string;
readonly letsencryptDomains: string;
/**

@@ -25,3 +25,3 @@ * The email to associate with the Let's Encrypt certificate request.

*/
letsencryptEmail: string;
readonly letsencryptEmail: string;
/**

@@ -34,3 +34,3 @@ * Any additional Lambda layers to use with the created function.

*/
layers?: lambda.ILayerVersion[];
readonly layers?: lambda.ILayerVersion[];
/**

@@ -41,3 +41,3 @@ * Hosted zone names that will be required for DNS verification with certbot.

*/
hostedZoneNames: string[];
readonly hostedZoneNames: string[];
/**

@@ -50,3 +50,3 @@ * The S3 bucket to place the resulting certificates in.

*/
bucket?: s3.Bucket;
readonly bucket?: s3.Bucket;
/**

@@ -59,3 +59,3 @@ * The prefix to apply to the final S3 key name for the certificates.

*/
objectPrefix?: string;
readonly objectPrefix?: string;
/**

@@ -67,3 +67,3 @@ * The numbers of days left until the prior cert expires before issuing a new one.

*/
reIssueDays?: number;
readonly reIssueDays?: number;
/**

@@ -75,3 +75,3 @@ * Set the preferred certificate chain.

*/
preferredChain?: string;
readonly preferredChain?: string;
/**

@@ -84,3 +84,3 @@ * The SNS topic to notify when a new cert is issued.

*/
snsTopic?: sns.Topic;
readonly snsTopic?: sns.Topic;
/**

@@ -92,3 +92,3 @@ * Whether or not to enable Lambda Insights.

*/
enableInsights?: boolean;
readonly enableInsights?: boolean;
/**

@@ -101,3 +101,3 @@ * Insights layer ARN for your region.

*/
insightsARN?: string;
readonly insightsARN?: string;
/**

@@ -109,3 +109,3 @@ * The timeout duration for Lambda function.

*/
timeout?: cdk.Duration;
readonly timeout?: cdk.Duration;
/**

@@ -117,3 +117,3 @@ * The schedule for the certificate check trigger.

*/
schedule?: events.Schedule;
readonly schedule?: events.Schedule;
/**

@@ -125,3 +125,3 @@ * Whether or not to schedule a trigger to run the function after each deployment.

*/
runOnDeploy?: boolean;
readonly runOnDeploy?: boolean;
/**

@@ -133,3 +133,3 @@ * How many minutes to wait before running the post deployment Lambda trigger.

*/
runOnDeployWaitMinutes?: number;
readonly runOnDeployWaitMinutes?: number;
/**

@@ -140,3 +140,3 @@ * The description for the resulting Lambda function.

*/
functionDescription?: string;
readonly functionDescription?: string;
/**

@@ -147,3 +147,3 @@ * The name of the resulting Lambda function.

*/
functionName?: string;
readonly functionName?: string;
}

@@ -161,3 +161,3 @@ /**

*/
constructor(scope: cdk.Construct, id: string, props: ICertbotProps);
constructor(scope: cdk.Construct, id: string, props: CertbotProps);
}

@@ -25,7 +25,8 @@ "use strict";

constructor(scope, id, props) {
var _b, _c, _d, _e, _f;
var _b, _c, _d, _e, _f, _g;
super(scope, id);
let bucket;
// Create a bucket if one is not provided
if (props.bucket === undefined) {
props.bucket = new s3.Bucket(this, 'bucket', {
bucket = new s3.Bucket(this, 'bucket', {
objectOwnership: s3.ObjectOwnership.BUCKET_OWNER_PREFERRED,

@@ -43,19 +44,22 @@ removalPolicy: cdk.RemovalPolicy.DESTROY,

}
else {
bucket = props.bucket;
}
const functionDir = path.join(__dirname, '../function');
// Create an SNS topic if one is not provided
// Create an SNS topic if one is not provided and add the defined email to it
let snsTopic = (_b = props.snsTopic) !== null && _b !== void 0 ? _b : new sns.Topic(this, 'topic');
if (props.snsTopic === undefined) {
props.snsTopic = new sns.Topic(this, 'topic');
props.snsTopic.addSubscription(new subscriptions.EmailSubscription(props.letsencryptEmail));
snsTopic.addSubscription(new subscriptions.EmailSubscription(props.letsencryptEmail));
}
// Set property defaults
props.layers = (_b = props.layers) !== null && _b !== void 0 ? _b : [];
props.runOnDeploy = (_c = props.runOnDeploy) !== null && _c !== void 0 ? _c : true;
props.functionDescription = (_d = props.functionDescription) !== null && _d !== void 0 ? _d : 'Certbot Renewal Lambda for domain ' + props.letsencryptDomains.split(',')[0];
props.enableInsights = (_e = props.enableInsights) !== null && _e !== void 0 ? _e : false;
props.insightsARN = (_f = props.insightsARN) !== null && _f !== void 0 ? _f : 'arn:aws:lambda:' + cdk.Stack.of(this).region + ':580247275435:layer:LambdaInsightsExtension:14';
let layers = (_c = props.layers) !== null && _c !== void 0 ? _c : [];
let runOnDeploy = (_d = props.runOnDeploy) !== null && _d !== void 0 ? _d : true;
let functionDescription = (_e = props.functionDescription) !== null && _e !== void 0 ? _e : 'Certbot Renewal Lambda for domain ' + props.letsencryptDomains.split(',')[0];
let enableInsights = (_f = props.enableInsights) !== null && _f !== void 0 ? _f : false;
let insightsARN = (_g = props.insightsARN) !== null && _g !== void 0 ? _g : 'arn:aws:lambda:' + cdk.Stack.of(this).region + ':580247275435:layer:LambdaInsightsExtension:14';
// Set up role policies
let managedPolicies = [iam.ManagedPolicy.fromAwsManagedPolicyName('service-role/AWSLambdaBasicExecutionRole')];
if (props.enableInsights) {
if (enableInsights) {
managedPolicies.push(iam.ManagedPolicy.fromAwsManagedPolicyName('CloudWatchLambdaInsightsExecutionRolePolicy'));
props.layers.push(lambda.LayerVersion.fromLayerVersionArn(this, 'insightsLayer', props.insightsARN));
layers.push(lambda.LayerVersion.fromLayerVersionArn(this, 'insightsLayer', insightsARN));
}

@@ -68,3 +72,3 @@ const snsPolicy = new iam.ManagedPolicy(this, 'snsPolicy', {

actions: ['sns:Publish'],
resources: [props.snsTopic.topicArn],
resources: [snsTopic.topicArn],
}),

@@ -123,3 +127,3 @@ ],

});
props.bucket.grantWrite(role);
bucket.grantWrite(role);
// Create the Lambda function

@@ -132,13 +136,13 @@ this.handler = new lambda.Function(this, 'handler', {

functionName: props.functionName,
description: props.functionDescription,
description: functionDescription,
environment: {
LETSENCRYPT_DOMAINS: props.letsencryptDomains,
LETSENCRYPT_EMAIL: props.letsencryptEmail,
CERTIFICATE_BUCKET: props.bucket.bucketName,
CERTIFICATE_BUCKET: bucket.bucketName,
OBJECT_PREFIX: props.objectPrefix || '',
REISSUE_DAYS: (props.reIssueDays === undefined) ? '30' : String(props.reIssueDays),
PREFERRED_CHAIN: props.preferredChain || 'None',
NOTIFICATION_SNS_ARN: props.snsTopic.topicArn,
NOTIFICATION_SNS_ARN: snsTopic.topicArn,
},
layers: props.layers,
layers,
timeout: props.timeout || cdk.Duration.seconds(180),

@@ -151,3 +155,3 @@ });

});
if (props.runOnDeploy) {
if (runOnDeploy) {
new events.Rule(this, 'triggerImmediate', {

@@ -164,3 +168,3 @@ schedule: new oneTimeEvents.OnDeploy(this, 'schedule', {

_a = JSII_RTTI_SYMBOL_1;
Certbot[_a] = { fqn: "@renovosolutions/cdk-library-certbot.Certbot", version: "0.1.48" };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2QkFBNkI7QUFDN0IsOENBQThDO0FBQzlDLHVEQUF1RDtBQUN2RCx3Q0FBd0M7QUFDeEMsOENBQThDO0FBQzlDLDRDQUE0QztBQUM1QyxzQ0FBc0M7QUFDdEMsd0NBQXdDO0FBQ3hDLGdFQUFnRTtBQUNoRSxxQ0FBcUM7QUFDckMsNkVBQTZFOzs7O0FBdUM3RSxNQUFhLE9BQVEsU0FBUSxHQUFHLENBQUMsU0FBUzs7OztJQUl4QyxZQUFZLEtBQW9CLEVBQUUsRUFBVSxFQUFFLEtBQW9COztRQUNoRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLHlDQUF5QztRQUN6QyxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssU0FBUyxFQUFFO1lBQzlCLEtBQUssQ0FBQyxNQUFNLEdBQUcsSUFBSSxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUU7Z0JBQzNDLGVBQWUsRUFBRSxFQUFFLENBQUMsZUFBZSxDQUFDLHNCQUFzQjtnQkFDMUQsYUFBYSxFQUFFLEdBQUcsQ0FBQyxhQUFhLENBQUMsT0FBTztnQkFDeEMsU0FBUyxFQUFFLElBQUk7Z0JBQ2YsY0FBYyxFQUFFLENBQUM7d0JBQ2YsT0FBTyxFQUFFLElBQUk7d0JBQ2IsbUNBQW1DLEVBQUUsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO3FCQUMxRCxDQUFDO2dCQUNGLFVBQVUsRUFBRSxFQUFFLENBQUMsZ0JBQWdCLENBQUMsVUFBVTtnQkFDMUMsVUFBVSxFQUFFLElBQUk7Z0JBQ2hCLGlCQUFpQixFQUFFLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTO2FBQ2xELENBQUMsQ0FBQztTQUNKO1FBRUQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsYUFB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LEtBQUssQ0FBQyxNQUFNO1lBQ3BCLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTyxJQUFJLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztTQUNwRCxDQUFDLENBQUM7UUFFSCx3QkFBd0I7UUFDeEIsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxTQUFTLEVBQUU7WUFDL0IsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDO1lBQzFGLE9BQU8sRUFBRSxDQUFDLElBQUksT0FBTyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDcEQsQ0FBQyxDQUFDO1FBRUgsSUFBSSxLQUFLLENBQUMsV0FBVyxFQUFFO1lBQ3JCLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsa0JBQWtCLEVBQUU7Z0JBQ3hDLFFBQVEsRUFBRSxJQUFJLGFBQWEsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRTtvQkFDckQsYUFBYSxFQUFFLEtBQUssQ0FBQyxzQkFBc0IsSUFBSSxFQUFFO2lCQUNsRCxDQUFDLENBQUMsUUFBUTtnQkFDWCxPQUFPLEVBQUUsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQ3BELENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQzs7QUFwSkgsMEJBcUpDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIGV2ZW50cyBmcm9tICdAYXdzLWNkay9hd3MtZXZlbnRzJztcbmltcG9ydCAqIGFzIHRhcmdldHMgZnJvbSAnQGF3cy1jZGsvYXdzLWV2ZW50cy10YXJnZXRzJztcbmltcG9ydCAqIGFzIGlhbSBmcm9tICdAYXdzLWNkay9hd3MtaWFtJztcbmltcG9ydCAqIGFzIGxhbWJkYSBmcm9tICdAYXdzLWNkay9hd3MtbGFtYmRhJztcbmltcG9ydCAqIGFzIHI1MyBmcm9tICdAYXdzLWNkay9hd3Mtcm91dGU1Myc7XG5pbXBvcnQgKiBhcyBzMyBmcm9tICdAYXdzLWNkay9hd3MtczMnO1xuaW1wb3J0ICogYXMgc25zIGZyb20gJ0Bhd3MtY2RrL2F3cy1zbnMnO1xuaW1wb3J0ICogYXMgc3Vic2NyaXB0aW9ucyBmcm9tICdAYXdzLWNkay9hd3Mtc25zLXN1YnNjcmlwdGlvbnMnO1xuaW1wb3J0ICogYXMgY2RrIGZyb20gJ0Bhd3MtY2RrL2NvcmUnO1xuaW1wb3J0ICogYXMgb25lVGltZUV2ZW50cyBmcm9tICdAcmVub3Zvc29sdXRpb25zL2Nkay1saWJyYXJ5LW9uZS10aW1lLWV2ZW50JztcblxuZXhwb3J0IGludGVyZmFjZSBJQ2VydGJvdFByb3BzIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgbGV0c2VuY3J5cHREb21haW5zOiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBsZXRzZW5jcnlwdEVtYWlsOiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIGxheWVycz86IGxhbWJkYS5JTGF5ZXJWZXJzaW9uW107XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgaG9zdGVkWm9uZU5hbWVzOiBzdHJpbmdbXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgYnVja2V0PzogczMuQnVja2V0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIG9iamVjdFByZWZpeD86IHN0cmluZztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVJc3N1ZURheXM/OiBudW1iZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHByZWZlcnJlZENoYWluPzogc3RyaW5nO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHNuc1RvcGljPzogc25zLlRvcGljO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBlbmFibGVJbnNpZ2h0cz86IGJvb2xlYW47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgaW5zaWdodHNBUk4/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHRpbWVvdXQ/OiBjZGsuRHVyYXRpb247XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBzY2hlZHVsZT86IGV2ZW50cy5TY2hlZHVsZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJ1bk9uRGVwbG95PzogYm9vbGVhbjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJ1bk9uRGVwbG95V2FpdE1pbnV0ZXM/OiBudW1iZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIGZ1bmN0aW9uRGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBmdW5jdGlvbk5hbWU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBDZXJ0Ym90IGV4dGVuZHMgY2RrLkNvbnN0cnVjdCB7XG5cbiAgcHVibGljIHJlYWRvbmx5IGhhbmRsZXI6IGxhbWJkYS5GdW5jdGlvblxuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBjZGsuQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogSUNlcnRib3RQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICAvLyBDcmVhdGUgYSBidWNrZXQgaWYgb25lIGlzIG5vdCBwcm92aWRlZFxuICAgIGlmIChwcm9wcy5idWNrZXQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcHJvcHMuYnVja2V0ID0gbmV3IHMzLkJ1Y2tldCh0aGlzLCAnYnVja2V0Jywge1xuICAgICAgICBvYmplY3RPd25lcnNoaXA6IHMzLk9iamVjdE93bmVyc2hpcC5CVUNLRVRfT1dORVJfUFJFRkVSUkVELFxuICAgICAgICByZW1vdmFsUG9saWN5OiBjZGsuUmVtb3ZhbFBvbGljeS5ERVNUUk9ZLFxuICAgICAgICB2ZXJzaW9uZWQ6IHRydWUsXG4gICAgICAgIGxpZmVjeWNsZVJ1bGVzOiBbe1xuICAgICAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgYWJvcnRJbmNvbXBsZXRlTXVsdGlwYXJ0VXBsb2FkQWZ0ZXI6IGNkay5EdXJhdGlvbi5kYXlzKDEpLFxuICAgICAgICB9XSxcbiAgICAgICAgZW5jcnlwdGlvbjogczMuQnVja2V0RW5jcnlwdGlvbi5TM19NQU5BR0VELFxuICAgICAgICBlbmZvcmNlU1NMOiB0cnVlLFxuICAgICAgICBibG9ja1B1YmxpY0FjY2VzczogczMuQmxvY2tQdWJsaWNBY2Nlc3MuQkxPQ0tfQUxMLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgY29uc3QgZnVuY3Rpb25EaXIgPSBwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi4vZnVuY3Rpb24nKTtcblxuICAgIC8vIENyZWF0ZSBhbiBTTlMgdG9waWMgaWYgb25lIGlzIG5vdCBwcm92aWRlZFxuICAgIGlmIChwcm9wcy5zbnNUb3BpYyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBwcm9wcy5zbnNUb3BpYyA9IG5ldyBzbnMuVG9waWModGhpcywgJ3RvcGljJyk7XG4gICAgICBwcm9wcy5zbnNUb3BpYy5hZGRTdWJzY3JpcHRpb24obmV3IHN1YnNjcmlwdGlvbnMuRW1haWxTdWJzY3JpcHRpb24ocHJvcHMubGV0c2VuY3J5cHRFbWFpbCkpO1xuICAgIH1cblxuICAgIC8vIFNldCBwcm9wZXJ0eSBkZWZhdWx0c1xuICAgIHByb3BzLmxheWVycyA9IHByb3BzLmxheWVycyA/PyBbXTtcbiAgICBwcm9wcy5ydW5PbkRlcGxveSA9IHByb3BzLnJ1bk9uRGVwbG95ID8/IHRydWU7XG4gICAgcHJvcHMuZnVuY3Rpb25EZXNjcmlwdGlvbiA9IHByb3BzLmZ1bmN0aW9uRGVzY3JpcHRpb24gPz8gJ0NlcnRib3QgUmVuZXdhbCBMYW1iZGEgZm9yIGRvbWFpbiAnICsgcHJvcHMubGV0c2VuY3J5cHREb21haW5zLnNwbGl0KCcsJylbMF07XG4gICAgcHJvcHMuZW5hYmxlSW5zaWdodHMgPSBwcm9wcy5lbmFibGVJbnNpZ2h0cyA/PyBmYWxzZTtcbiAgICBwcm9wcy5pbnNpZ2h0c0FSTiA9IHByb3BzLmluc2lnaHRzQVJOID8/ICdhcm46YXdzOmxhbWJkYTonICsgY2RrLlN0YWNrLm9mKHRoaXMpLnJlZ2lvbiArICc6NTgwMjQ3Mjc1NDM1OmxheWVyOkxhbWJkYUluc2lnaHRzRXh0ZW5zaW9uOjE0JztcblxuICAgIC8vIFNldCB1cCByb2xlIHBvbGljaWVzXG4gICAgbGV0IG1hbmFnZWRQb2xpY2llcyA9IFtpYW0uTWFuYWdlZFBvbGljeS5mcm9tQXdzTWFuYWdlZFBvbGljeU5hbWUoJ3NlcnZpY2Utcm9sZS9BV1NMYW1iZGFCYXNpY0V4ZWN1dGlvblJvbGUnKV07XG4gICAgaWYgKHByb3BzLmVuYWJsZUluc2lnaHRzKSB7XG4gICAgICBtYW5hZ2VkUG9saWNpZXMucHVzaChpYW0uTWFuYWdlZFBvbGljeS5mcm9tQXdzTWFuYWdlZFBvbGljeU5hbWUoJ0Nsb3VkV2F0Y2hMYW1iZGFJbnNpZ2h0c0V4ZWN1dGlvblJvbGVQb2xpY3knKSk7XG4gICAgICBwcm9wcy5sYXllcnMucHVzaChsYW1iZGEuTGF5ZXJWZXJzaW9uLmZyb21MYXllclZlcnNpb25Bcm4odGhpcywgJ2luc2lnaHRzTGF5ZXInLCBwcm9wcy5pbnNpZ2h0c0FSTikpO1xuICAgIH1cblxuICAgIGNvbnN0IHNuc1BvbGljeSA9IG5ldyBpYW0uTWFuYWdlZFBvbGljeSh0aGlzLCAnc25zUG9saWN5Jywge1xuICAgICAgZGVzY3JpcHRpb246ICdBbGxvdyB0aGUgQ2VydGJvdCBmdW5jdGlvbiB0byBub3RpZnkgYW4gU05TIHRvcGljIHVwb24gY29tcGxldGlvbi4nLFxuICAgICAgc3RhdGVtZW50czogW1xuICAgICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgICAgIGFjdGlvbnM6IFsnc25zOlB1Ymxpc2gnXSxcbiAgICAgICAgICByZXNvdXJjZXM6IFtwcm9wcy5zbnNUb3BpYy50b3BpY0Fybl0sXG4gICAgICAgIH0pLFxuICAgICAgXSxcbiAgICB9KTtcblxuICAgIGxldCBob3N0ZWRab25lczpzdHJpbmdbXSA9IFtdO1xuICAgIHByb3BzLmhvc3RlZFpvbmVOYW1lcy5mb3JFYWNoKCAoZG9tYWluTmFtZSkgPT4ge1xuICAgICAgaG9zdGVkWm9uZXMucHVzaChyNTMuSG9zdGVkWm9uZS5mcm9tTG9va3VwKHRoaXMsICd6b25lJyArIGRvbWFpbk5hbWUsIHtcbiAgICAgICAgZG9tYWluTmFtZSxcbiAgICAgICAgcHJpdmF0ZVpvbmU6IGZhbHNlLFxuICAgICAgfSkuaG9zdGVkWm9uZUFybik7XG4gICAgfSk7XG5cbiAgICBjb25zdCByNTNQb2xpY3kgPSBuZXcgaWFtLk1hbmFnZWRQb2xpY3kodGhpcywgJ3I1M1BvbGljeScsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnQWxsb3cgdGhlIENlcnRib3QgZnVuY3Rpb24gdG8gcGVyZm9ybSBETlMgdmVyaWZpY2F0aW9uLicsXG4gICAgICBzdGF0ZW1lbnRzOiBbXG4gICAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICAgICAgYWN0aW9uczogWydyb3V0ZTUzOkxpc3RIb3N0ZWRab25lcyddLFxuICAgICAgICAgIHJlc291cmNlczogWycqJ10sXG4gICAgICAgIH0pLFxuICAgICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAgICdyb3V0ZTUzOkdldENoYW5nZScsXG4gICAgICAgICAgICAncm91dGU1MzpDaGFuZ2VSZXNvdXJjZVJlY29yZFNldHMnLFxuICAgICAgICAgIF0sXG4gICAgICAgICAgcmVzb3VyY2VzOiBbJ2Fybjphd3M6cm91dGU1Mzo6OmNoYW5nZS8qJ10uY29uY2F0KGhvc3RlZFpvbmVzKSxcbiAgICAgICAgfSksXG4gICAgICBdLFxuICAgIH0pO1xuXG4gICAgY29uc3QgYWNtUG9saWN5ID0gbmV3IGlhbS5NYW5hZ2VkUG9saWN5KHRoaXMsICdhY21Qb2xpY3knLCB7XG4gICAgICBkZXNjcmlwdGlvbjogJ0FsbG93IHRoZSBDZXJ0Ym90IGZ1bmN0aW9uIHRvIGltcG9ydCBhbmQgbGlzdCBjZXJ0aWZpY2F0ZXMuJyxcbiAgICAgIHN0YXRlbWVudHM6IFtcbiAgICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgICAnYWNtOkxpc3RDZXJ0aWZpY2F0ZXMnLFxuICAgICAgICAgICAgJ2FjbTpJbXBvcnRDZXJ0aWZpY2F0ZScsXG4gICAgICAgICAgXSxcbiAgICAgICAgICByZXNvdXJjZXM6IFsnKiddLFxuICAgICAgICB9KSxcbiAgICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgICAgICBhY3Rpb25zOiBbJ2FjbTpEZXNjcmliZUNlcnRpZmljYXRlJ10sXG4gICAgICAgICAgcmVzb3VyY2VzOiBbJ2Fybjphd3M6YWNtOicgKyBjZGsuU3RhY2sub2YodGhpcykucmVnaW9uICsgJzonICsgY2RrLlN0YWNrLm9mKHRoaXMpLmFjY291bnQgKyAnOmNlcnRpZmljYXRlLyonXSxcbiAgICAgICAgfSksXG4gICAgICBdLFxuICAgIH0pO1xuXG4gICAgbWFuYWdlZFBvbGljaWVzLnB1c2goc25zUG9saWN5KTtcbiAgICBtYW5hZ2VkUG9saWNpZXMucHVzaChyNTNQb2xpY3kpO1xuICAgIG1hbmFnZWRQb2xpY2llcy5wdXNoKGFjbVBvbGljeSk7XG5cbiAgICBjb25zdCByb2xlID0gbmV3IGlhbS5Sb2xlKHRoaXMsICdyb2xlJywge1xuICAgICAgYXNzdW1lZEJ5OiBuZXcgaWFtLlNlcnZpY2VQcmluY2lwYWwoJ2xhbWJkYS5hbWF6b25hd3MuY29tJyksXG4gICAgICBtYW5hZ2VkUG9saWNpZXMsXG4gICAgfSk7XG5cbiAgICBwcm9wcy5idWNrZXQuZ3JhbnRXcml0ZShyb2xlKTtcblxuICAgIC8vIENyZWF0ZSB0aGUgTGFtYmRhIGZ1bmN0aW9uXG4gICAgdGhpcy5oYW5kbGVyID0gbmV3IGxhbWJkYS5GdW5jdGlvbih0aGlzLCAnaGFuZGxlcicsIHtcbiAgICAgIHJ1bnRpbWU6IGxhbWJkYS5SdW50aW1lLlBZVEhPTl8zXzgsXG4gICAgICByb2xlLFxuICAgICAgY29kZTogbGFtYmRhLkNvZGUuZnJvbUFzc2V0KGZ1bmN0aW9uRGlyICsgJy9mdW5jdGlvbi56aXAnKSxcbiAgICAgIGhhbmRsZXI6ICdpbmRleC5oYW5kbGVyJyxcbiAgICAgIGZ1bmN0aW9uTmFtZTogcHJvcHMuZnVuY3Rpb25OYW1lLFxuICAgICAgZGVzY3JpcHRpb246IHByb3BzLmZ1bmN0aW9uRGVzY3JpcHRpb24sXG4gICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICBMRVRTRU5DUllQVF9ET01BSU5TOiBwcm9wcy5sZXRzZW5jcnlwdERvbWFpbnMsXG4gICAgICAgIExFVFNFTkNSWVBUX0VNQUlMOiBwcm9wcy5sZXRzZW5jcnlwdEVtYWlsLFxuICAgICAgICBDRVJUSUZJQ0FURV9CVUNLRVQ6IHByb3BzLmJ1Y2tldC5idWNrZXROYW1lLFxuICAgICAgICBPQkpFQ1RfUFJFRklYOiBwcm9wcy5vYmplY3RQcmVmaXggfHwgJycsXG4gICAgICAgIFJFSVNTVUVfREFZUzogKHByb3BzLnJlSXNzdWVEYXlzID09PSB1bmRlZmluZWQpID8gJzMwJyA6IFN0cmluZyhwcm9wcy5yZUlzc3VlRGF5cyksXG4gICAgICAgIFBSRUZFUlJFRF9DSEFJTjogcHJvcHMucHJlZmVycmVkQ2hhaW4gfHwgJ05vbmUnLFxuICAgICAgICBOT1RJRklDQVRJT05fU05TX0FSTjogcHJvcHMuc25zVG9waWMudG9waWNBcm4sXG4gICAgICB9LFxuICAgICAgbGF5ZXJzOiBwcm9wcy5sYXllcnMsXG4gICAgICB0aW1lb3V0OiBwcm9wcy50aW1lb3V0IHx8IGNkay5EdXJhdGlvbi5zZWNvbmRzKDE4MCksXG4gICAgfSk7XG5cbiAgICAvLyBBZGQgZnVuY3Rpb24gdHJpZ2dlcnNcbiAgICBuZXcgZXZlbnRzLlJ1bGUodGhpcywgJ3RyaWdnZXInLCB7XG4gICAgICBzY2hlZHVsZTogcHJvcHMuc2NoZWR1bGUgfHwgZXZlbnRzLlNjaGVkdWxlLmNyb24oeyBtaW51dGU6ICcwJywgaG91cjogJzAnLCB3ZWVrRGF5OiAnMScgfSksXG4gICAgICB0YXJnZXRzOiBbbmV3IHRhcmdldHMuTGFtYmRhRnVuY3Rpb24odGhpcy5oYW5kbGVyKV0sXG4gICAgfSk7XG5cbiAgICBpZiAocHJvcHMucnVuT25EZXBsb3kpIHtcbiAgICAgIG5ldyBldmVudHMuUnVsZSh0aGlzLCAndHJpZ2dlckltbWVkaWF0ZScsIHtcbiAgICAgICAgc2NoZWR1bGU6IG5ldyBvbmVUaW1lRXZlbnRzLk9uRGVwbG95KHRoaXMsICdzY2hlZHVsZScsIHtcbiAgICAgICAgICBvZmZzZXRNaW51dGVzOiBwcm9wcy5ydW5PbkRlcGxveVdhaXRNaW51dGVzIHx8IDEwLFxuICAgICAgICB9KS5zY2hlZHVsZSxcbiAgICAgICAgdGFyZ2V0czogW25ldyB0YXJnZXRzLkxhbWJkYUZ1bmN0aW9uKHRoaXMuaGFuZGxlcildLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iXX0=
Certbot[_a] = { fqn: "@renovosolutions/cdk-library-certbot.Certbot", version: "0.2.0" };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2QkFBNkI7QUFDN0IsOENBQThDO0FBQzlDLHVEQUF1RDtBQUN2RCx3Q0FBd0M7QUFDeEMsOENBQThDO0FBQzlDLDRDQUE0QztBQUM1QyxzQ0FBc0M7QUFDdEMsd0NBQXdDO0FBQ3hDLGdFQUFnRTtBQUNoRSxxQ0FBcUM7QUFDckMsNkVBQTZFOzs7O0FBdUM3RSxNQUFhLE9BQVEsU0FBUSxHQUFHLENBQUMsU0FBUzs7OztJQUl4QyxZQUFZLEtBQW9CLEVBQUUsRUFBVSxFQUFFLEtBQW1COztRQUMvRCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLElBQUksTUFBaUIsQ0FBQztRQUV0Qix5Q0FBeUM7UUFDekMsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLFNBQVMsRUFBRTtZQUM5QixNQUFNLEdBQUcsSUFBSSxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUU7Z0JBQ3JDLGVBQWUsRUFBRSxFQUFFLENBQUMsZUFBZSxDQUFDLHNCQUFzQjtnQkFDMUQsYUFBYSxFQUFFLEdBQUcsQ0FBQyxhQUFhLENBQUMsT0FBTztnQkFDeEMsU0FBUyxFQUFFLElBQUk7Z0JBQ2YsY0FBYyxFQUFFLENBQUM7d0JBQ2YsT0FBTyxFQUFFLElBQUk7d0JBQ2IsbUNBQW1DLEVBQUUsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO3FCQUMxRCxDQUFDO2dCQUNGLFVBQVUsRUFBRSxFQUFFLENBQUMsZ0JBQWdCLENBQUMsVUFBVTtnQkFDMUMsVUFBVSxFQUFFLElBQUk7Z0JBQ2hCLGlCQUFpQixFQUFFLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTO2FBQ2xELENBQUMsQ0FBQztTQUNKO2FBQU07WUFDTCxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztT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LFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDO1NBQ3BELENBQUMsQ0FBQztRQUVILHdCQUF3QjtRQUN4QixJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRTtZQUMvQixRQUFRLEVBQUUsS0FBSyxDQUFDLFFBQVEsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUM7WUFDMUYsT0FBTyxFQUFFLENBQUMsSUFBSSxPQUFPLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUNwRCxDQUFDLENBQUM7UUFFSCxJQUFJLFdBQVcsRUFBRTtZQUNmLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsa0JBQWtCLEVBQUU7Z0JBQ3hDLFFBQVEsRUFBRSxJQUFJLGFBQWEsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRTtvQkFDckQsYUFBYSxFQUFFLEtBQUssQ0FBQyxzQkFBc0IsSUFBSSxFQUFFO2lCQUNsRCxDQUFDLENBQUMsUUFBUTtnQkFDWCxPQUFPLEVBQUUsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQ3BELENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQzs7QUF4SkgsMEJBeUpDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIGV2ZW50cyBmcm9tICdAYXdzLWNkay9hd3MtZXZlbnRzJztcbmltcG9ydCAqIGFzIHRhcmdldHMgZnJvbSAnQGF3cy1jZGsvYXdzLWV2ZW50cy10YXJnZXRzJztcbmltcG9ydCAqIGFzIGlhbSBmcm9tICdAYXdzLWNkay9hd3MtaWFtJztcbmltcG9ydCAqIGFzIGxhbWJkYSBmcm9tICdAYXdzLWNkay9hd3MtbGFtYmRhJztcbmltcG9ydCAqIGFzIHI1MyBmcm9tICdAYXdzLWNkay9hd3Mtcm91dGU1Myc7XG5pbXBvcnQgKiBhcyBzMyBmcm9tICdAYXdzLWNkay9hd3MtczMnO1xuaW1wb3J0ICogYXMgc25zIGZyb20gJ0Bhd3MtY2RrL2F3cy1zbnMnO1xuaW1wb3J0ICogYXMgc3Vic2NyaXB0aW9ucyBmcm9tICdAYXdzLWNkay9hd3Mtc25zLXN1YnNjcmlwdGlvbnMnO1xuaW1wb3J0ICogYXMgY2RrIGZyb20gJ0Bhd3MtY2RrL2NvcmUnO1xuaW1wb3J0ICogYXMgb25lVGltZUV2ZW50cyBmcm9tICdAcmVub3Zvc29sdXRpb25zL2Nkay1saWJyYXJ5LW9uZS10aW1lLWV2ZW50JztcblxuZXhwb3J0IGludGVyZmFjZSBDZXJ0Ym90UHJvcHMge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBsZXRzZW5jcnlwdERvbWFpbnM6IHN0cmluZztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGxldHNlbmNyeXB0RW1haWw6IHN0cmluZztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgbGF5ZXJzPzogbGFtYmRhLklMYXllclZlcnNpb25bXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBob3N0ZWRab25lTmFtZXM6IHN0cmluZ1tdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBidWNrZXQ/OiBzMy5CdWNrZXQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgb2JqZWN0UHJlZml4Pzogc3RyaW5nO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSByZUlzc3VlRGF5cz86IG51bWJlcjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgcHJlZmVycmVkQ2hhaW4/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgc25zVG9waWM/OiBzbnMuVG9waWM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGVuYWJsZUluc2lnaHRzPzogYm9vbGVhbjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBpbnNpZ2h0c0FSTj86IHN0cmluZztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgdGltZW91dD86IGNkay5EdXJhdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IHNjaGVkdWxlPzogZXZlbnRzLlNjaGVkdWxlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgcnVuT25EZXBsb3k/OiBib29sZWFuO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgcnVuT25EZXBsb3lXYWl0TWludXRlcz86IG51bWJlcjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgZnVuY3Rpb25EZXNjcmlwdGlvbj86IHN0cmluZztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGZ1bmN0aW9uTmFtZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIENlcnRib3QgZXh0ZW5kcyBjZGsuQ29uc3RydWN0IHtcblxuICBwdWJsaWMgcmVhZG9ubHkgaGFuZGxlcjogbGFtYmRhLkZ1bmN0aW9uXG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IGNkay5Db25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBDZXJ0Ym90UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgbGV0IGJ1Y2tldDogczMuQnVja2V0O1xuXG4gICAgLy8gQ3JlYXRlIGEgYnVja2V0IGlmIG9uZSBpcyBub3QgcHJvdmlkZWRcbiAgICBpZiAocHJvcHMuYnVja2V0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGJ1Y2tldCA9IG5ldyBzMy5CdWNrZXQodGhpcywgJ2J1Y2tldCcsIHtcbiAgICAgICAgb2JqZWN0T3duZXJzaGlwOiBzMy5PYmplY3RPd25lcnNoaXAuQlVDS0VUX09XTkVSX1BSRUZFUlJFRCxcbiAgICAgICAgcmVtb3ZhbFBvbGljeTogY2RrLlJlbW92YWxQb2xpY3kuREVTVFJPWSxcbiAgICAgICAgdmVyc2lvbmVkOiB0cnVlLFxuICAgICAgICBsaWZlY3ljbGVSdWxlczogW3tcbiAgICAgICAgICBlbmFibGVkOiB0cnVlLFxuICAgICAgICAgIGFib3J0SW5jb21wbGV0ZU11bHRpcGFydFVwbG9hZEFmdGVyOiBjZGsuRHVyYXRpb24uZGF5cygxKSxcbiAgICAgICAgfV0sXG4gICAgICAgIGVuY3J5cHRpb246IHMzLkJ1Y2tldEVuY3J5cHRpb24uUzNfTUFOQUdFRCxcbiAgICAgICAgZW5mb3JjZVNTTDogdHJ1ZSxcbiAgICAgICAgYmxvY2tQdWJsaWNBY2Nlc3M6IHMzLkJsb2NrUHVibGljQWNjZXNzLkJMT0NLX0FMTCxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBidWNrZXQgPSBwcm9wcy5idWNrZXQ7XG4gICAgfVxuXG4gICAgY29uc3QgZnVuY3Rpb25EaXIgPSBwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi4vZnVuY3Rpb24nKTtcblxuICAgIC8vIENyZWF0ZSBhbiBTTlMgdG9waWMgaWYgb25lIGlzIG5vdCBwcm92aWRlZCBhbmQgYWRkIHRoZSBkZWZpbmVkIGVtYWlsIHRvIGl0XG4gICAgbGV0IHNuc1RvcGljOiBzbnMuVG9waWMgPSBwcm9wcy5zbnNUb3BpYyA/PyBuZXcgc25zLlRvcGljKHRoaXMsICd0b3BpYycpO1xuICAgIGlmIChwcm9wcy5zbnNUb3BpYyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBzbnNUb3BpYy5hZGRTdWJzY3JpcHRpb24obmV3IHN1YnNjcmlwdGlvbnMuRW1haWxTdWJzY3JpcHRpb24ocHJvcHMubGV0c2VuY3J5cHRFbWFpbCkpO1xuICAgIH1cblxuICAgIC8vIFNldCBwcm9wZXJ0eSBkZWZhdWx0c1xuICAgIGxldCBsYXllcnM6IGxhbWJkYS5JTGF5ZXJWZXJzaW9uW10gPSBwcm9wcy5sYXllcnMgPz8gW107XG4gICAgbGV0IHJ1bk9uRGVwbG95OiBib29sZWFuID0gcHJvcHMucnVuT25EZXBsb3kgPz8gdHJ1ZTtcbiAgICBsZXQgZnVuY3Rpb25EZXNjcmlwdGlvbjogc3RyaW5nID0gcHJvcHMuZnVuY3Rpb25EZXNjcmlwdGlvbiA/PyAnQ2VydGJvdCBSZW5ld2FsIExhbWJkYSBmb3IgZG9tYWluICcgKyBwcm9wcy5sZXRzZW5jcnlwdERvbWFpbnMuc3BsaXQoJywnKVswXTtcbiAgICBsZXQgZW5hYmxlSW5zaWdodHM6IGJvb2xlYW4gPSBwcm9wcy5lbmFibGVJbnNpZ2h0cyA/PyBmYWxzZTtcbiAgICBsZXQgaW5zaWdodHNBUk46IHN0cmluZyA9IHByb3BzLmluc2lnaHRzQVJOID8/ICdhcm46YXdzOmxhbWJkYTonICsgY2RrLlN0YWNrLm9mKHRoaXMpLnJlZ2lvbiArICc6NTgwMjQ3Mjc1NDM1OmxheWVyOkxhbWJkYUluc2lnaHRzRXh0ZW5zaW9uOjE0JztcblxuICAgIC8vIFNldCB1cCByb2xlIHBvbGljaWVzXG4gICAgbGV0IG1hbmFnZWRQb2xpY2llcyA9IFtpYW0uTWFuYWdlZFBvbGljeS5mcm9tQXdzTWFuYWdlZFBvbGljeU5hbWUoJ3NlcnZpY2Utcm9sZS9BV1NMYW1iZGFCYXNpY0V4ZWN1dGlvblJvbGUnKV07XG4gICAgaWYgKGVuYWJsZUluc2lnaHRzKSB7XG4gICAgICBtYW5hZ2VkUG9saWNpZXMucHVzaChpYW0uTWFuYWdlZFBvbGljeS5mcm9tQXdzTWFuYWdlZFBvbGljeU5hbWUoJ0Nsb3VkV2F0Y2hMYW1iZGFJbnNpZ2h0c0V4ZWN1dGlvblJvbGVQb2xpY3knKSk7XG4gICAgICBsYXllcnMucHVzaChsYW1iZGEuTGF5ZXJWZXJzaW9uLmZyb21MYXllclZlcnNpb25Bcm4odGhpcywgJ2luc2lnaHRzTGF5ZXInLCBpbnNpZ2h0c0FSTikpO1xuICAgIH1cblxuICAgIGNvbnN0IHNuc1BvbGljeSA9IG5ldyBpYW0uTWFuYWdlZFBvbGljeSh0aGlzLCAnc25zUG9saWN5Jywge1xuICAgICAgZGVzY3JpcHRpb246ICdBbGxvdyB0aGUgQ2VydGJvdCBmdW5jdGlvbiB0byBub3RpZnkgYW4gU05TIHRvcGljIHVwb24gY29tcGxldGlvbi4nLFxuICAgICAgc3RhdGVtZW50czogW1xuICAgICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgICAgIGFjdGlvbnM6IFsnc25zOlB1Ymxpc2gnXSxcbiAgICAgICAgICByZXNvdXJjZXM6IFtzbnNUb3BpYy50b3BpY0Fybl0sXG4gICAgICAgIH0pLFxuICAgICAgXSxcbiAgICB9KTtcblxuICAgIGxldCBob3N0ZWRab25lczpzdHJpbmdbXSA9IFtdO1xuICAgIHByb3BzLmhvc3RlZFpvbmVOYW1lcy5mb3JFYWNoKCAoZG9tYWluTmFtZSkgPT4ge1xuICAgICAgaG9zdGVkWm9uZXMucHVzaChyNTMuSG9zdGVkWm9uZS5mcm9tTG9va3VwKHRoaXMsICd6b25lJyArIGRvbWFpbk5hbWUsIHtcbiAgICAgICAgZG9tYWluTmFtZSxcbiAgICAgICAgcHJpdmF0ZVpvbmU6IGZhbHNlLFxuICAgICAgfSkuaG9zdGVkWm9uZUFybik7XG4gICAgfSk7XG5cbiAgICBjb25zdCByNTNQb2xpY3kgPSBuZXcgaWFtLk1hbmFnZWRQb2xpY3kodGhpcywgJ3I1M1BvbGljeScsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnQWxsb3cgdGhlIENlcnRib3QgZnVuY3Rpb24gdG8gcGVyZm9ybSBETlMgdmVyaWZpY2F0aW9uLicsXG4gICAgICBzdGF0ZW1lbnRzOiBbXG4gICAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICAgICAgYWN0aW9uczogWydyb3V0ZTUzOkxpc3RIb3N0ZWRab25lcyddLFxuICAgICAgICAgIHJlc291cmNlczogWycqJ10sXG4gICAgICAgIH0pLFxuICAgICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAgICdyb3V0ZTUzOkdldENoYW5nZScsXG4gICAgICAgICAgICAncm91dGU1MzpDaGFuZ2VSZXNvdXJjZVJlY29yZFNldHMnLFxuICAgICAgICAgIF0sXG4gICAgICAgICAgcmVzb3VyY2VzOiBbJ2Fybjphd3M6cm91dGU1Mzo6OmNoYW5nZS8qJ10uY29uY2F0KGhvc3RlZFpvbmVzKSxcbiAgICAgICAgfSksXG4gICAgICBdLFxuICAgIH0pO1xuXG4gICAgY29uc3QgYWNtUG9saWN5ID0gbmV3IGlhbS5NYW5hZ2VkUG9saWN5KHRoaXMsICdhY21Qb2xpY3knLCB7XG4gICAgICBkZXNjcmlwdGlvbjogJ0FsbG93IHRoZSBDZXJ0Ym90IGZ1bmN0aW9uIHRvIGltcG9ydCBhbmQgbGlzdCBjZXJ0aWZpY2F0ZXMuJyxcbiAgICAgIHN0YXRlbWVudHM6IFtcbiAgICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgICAnYWNtOkxpc3RDZXJ0aWZpY2F0ZXMnLFxuICAgICAgICAgICAgJ2FjbTpJbXBvcnRDZXJ0aWZpY2F0ZScsXG4gICAgICAgICAgXSxcbiAgICAgICAgICByZXNvdXJjZXM6IFsnKiddLFxuICAgICAgICB9KSxcbiAgICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgICAgICBhY3Rpb25zOiBbJ2FjbTpEZXNjcmliZUNlcnRpZmljYXRlJ10sXG4gICAgICAgICAgcmVzb3VyY2VzOiBbJ2Fybjphd3M6YWNtOicgKyBjZGsuU3RhY2sub2YodGhpcykucmVnaW9uICsgJzonICsgY2RrLlN0YWNrLm9mKHRoaXMpLmFjY291bnQgKyAnOmNlcnRpZmljYXRlLyonXSxcbiAgICAgICAgfSksXG4gICAgICBdLFxuICAgIH0pO1xuXG4gICAgbWFuYWdlZFBvbGljaWVzLnB1c2goc25zUG9saWN5KTtcbiAgICBtYW5hZ2VkUG9saWNpZXMucHVzaChyNTNQb2xpY3kpO1xuICAgIG1hbmFnZWRQb2xpY2llcy5wdXNoKGFjbVBvbGljeSk7XG5cbiAgICBjb25zdCByb2xlID0gbmV3IGlhbS5Sb2xlKHRoaXMsICdyb2xlJywge1xuICAgICAgYXNzdW1lZEJ5OiBuZXcgaWFtLlNlcnZpY2VQcmluY2lwYWwoJ2xhbWJkYS5hbWF6b25hd3MuY29tJyksXG4gICAgICBtYW5hZ2VkUG9saWNpZXMsXG4gICAgfSk7XG5cbiAgICBidWNrZXQuZ3JhbnRXcml0ZShyb2xlKTtcblxuICAgIC8vIENyZWF0ZSB0aGUgTGFtYmRhIGZ1bmN0aW9uXG4gICAgdGhpcy5oYW5kbGVyID0gbmV3IGxhbWJkYS5GdW5jdGlvbih0aGlzLCAnaGFuZGxlcicsIHtcbiAgICAgIHJ1bnRpbWU6IGxhbWJkYS5SdW50aW1lLlBZVEhPTl8zXzgsXG4gICAgICByb2xlLFxuICAgICAgY29kZTogbGFtYmRhLkNvZGUuZnJvbUFzc2V0KGZ1bmN0aW9uRGlyICsgJy9mdW5jdGlvbi56aXAnKSxcbiAgICAgIGhhbmRsZXI6ICdpbmRleC5oYW5kbGVyJyxcbiAgICAgIGZ1bmN0aW9uTmFtZTogcHJvcHMuZnVuY3Rpb25OYW1lLFxuICAgICAgZGVzY3JpcHRpb246IGZ1bmN0aW9uRGVzY3JpcHRpb24sXG4gICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICBMRVRTRU5DUllQVF9ET01BSU5TOiBwcm9wcy5sZXRzZW5jcnlwdERvbWFpbnMsXG4gICAgICAgIExFVFNFTkNSWVBUX0VNQUlMOiBwcm9wcy5sZXRzZW5jcnlwdEVtYWlsLFxuICAgICAgICBDRVJUSUZJQ0FURV9CVUNLRVQ6IGJ1Y2tldC5idWNrZXROYW1lLFxuICAgICAgICBPQkpFQ1RfUFJFRklYOiBwcm9wcy5vYmplY3RQcmVmaXggfHwgJycsXG4gICAgICAgIFJFSVNTVUVfREFZUzogKHByb3BzLnJlSXNzdWVEYXlzID09PSB1bmRlZmluZWQpID8gJzMwJyA6IFN0cmluZyhwcm9wcy5yZUlzc3VlRGF5cyksXG4gICAgICAgIFBSRUZFUlJFRF9DSEFJTjogcHJvcHMucHJlZmVycmVkQ2hhaW4gfHwgJ05vbmUnLFxuICAgICAgICBOT1RJRklDQVRJT05fU05TX0FSTjogc25zVG9waWMudG9waWNBcm4sXG4gICAgICB9LFxuICAgICAgbGF5ZXJzLFxuICAgICAgdGltZW91dDogcHJvcHMudGltZW91dCB8fCBjZGsuRHVyYXRpb24uc2Vjb25kcygxODApLFxuICAgIH0pO1xuXG4gICAgLy8gQWRkIGZ1bmN0aW9uIHRyaWdnZXJzXG4gICAgbmV3IGV2ZW50cy5SdWxlKHRoaXMsICd0cmlnZ2VyJywge1xuICAgICAgc2NoZWR1bGU6IHByb3BzLnNjaGVkdWxlIHx8IGV2ZW50cy5TY2hlZHVsZS5jcm9uKHsgbWludXRlOiAnMCcsIGhvdXI6ICcwJywgd2Vla0RheTogJzEnIH0pLFxuICAgICAgdGFyZ2V0czogW25ldyB0YXJnZXRzLkxhbWJkYUZ1bmN0aW9uKHRoaXMuaGFuZGxlcildLFxuICAgIH0pO1xuXG4gICAgaWYgKHJ1bk9uRGVwbG95KSB7XG4gICAgICBuZXcgZXZlbnRzLlJ1bGUodGhpcywgJ3RyaWdnZXJJbW1lZGlhdGUnLCB7XG4gICAgICAgIHNjaGVkdWxlOiBuZXcgb25lVGltZUV2ZW50cy5PbkRlcGxveSh0aGlzLCAnc2NoZWR1bGUnLCB7XG4gICAgICAgICAgb2Zmc2V0TWludXRlczogcHJvcHMucnVuT25EZXBsb3lXYWl0TWludXRlcyB8fCAxMCxcbiAgICAgICAgfSkuc2NoZWR1bGUsXG4gICAgICAgIHRhcmdldHM6IFtuZXcgdGFyZ2V0cy5MYW1iZGFGdW5jdGlvbih0aGlzLmhhbmRsZXIpXSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIl19

@@ -100,3 +100,3 @@ {

},
"version": "0.1.48",
"version": "0.2.0",
"jest": {

@@ -103,0 +103,0 @@ "timers": "fake",

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc