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

@aws-cdk/aws-applicationautoscaling

Package Overview
Dependencies
Maintainers
5
Versions
288
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@aws-cdk/aws-applicationautoscaling - npm Package Compare versions

Comparing version 0.25.3 to 0.26.0

232

lib/applicationautoscaling.generated.d.ts
import cdk = require('@aws-cdk/cdk');
/**
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalabletarget.html
* Properties for defining a `AWS::ApplicationAutoScaling::ScalableTarget`
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalabletarget.html
*/
export interface CfnScalableTargetProps {
/**
* ``AWS::ApplicationAutoScaling::ScalableTarget.MaxCapacity``
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalabletarget.html#cfn-applicationautoscaling-scalabletarget-maxcapacity
* `AWS::ApplicationAutoScaling::ScalableTarget.MaxCapacity`
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalabletarget.html#cfn-applicationautoscaling-scalabletarget-maxcapacity
*/
maxCapacity: number | cdk.Token;
/**
* ``AWS::ApplicationAutoScaling::ScalableTarget.MinCapacity``
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalabletarget.html#cfn-applicationautoscaling-scalabletarget-mincapacity
* `AWS::ApplicationAutoScaling::ScalableTarget.MinCapacity`
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalabletarget.html#cfn-applicationautoscaling-scalabletarget-mincapacity
*/
minCapacity: number | cdk.Token;
/**
* ``AWS::ApplicationAutoScaling::ScalableTarget.ResourceId``
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalabletarget.html#cfn-applicationautoscaling-scalabletarget-resourceid
* `AWS::ApplicationAutoScaling::ScalableTarget.ResourceId`
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalabletarget.html#cfn-applicationautoscaling-scalabletarget-resourceid
*/
resourceId: string;
/**
* ``AWS::ApplicationAutoScaling::ScalableTarget.RoleARN``
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalabletarget.html#cfn-applicationautoscaling-scalabletarget-rolearn
* `AWS::ApplicationAutoScaling::ScalableTarget.RoleARN`
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalabletarget.html#cfn-applicationautoscaling-scalabletarget-rolearn
*/
roleArn: string;
/**
* ``AWS::ApplicationAutoScaling::ScalableTarget.ScalableDimension``
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalabletarget.html#cfn-applicationautoscaling-scalabletarget-scalabledimension
* `AWS::ApplicationAutoScaling::ScalableTarget.ScalableDimension`
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalabletarget.html#cfn-applicationautoscaling-scalabletarget-scalabledimension
*/
scalableDimension: string;
/**
* ``AWS::ApplicationAutoScaling::ScalableTarget.ServiceNamespace``
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalabletarget.html#cfn-applicationautoscaling-scalabletarget-servicenamespace
* `AWS::ApplicationAutoScaling::ScalableTarget.ServiceNamespace`
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalabletarget.html#cfn-applicationautoscaling-scalabletarget-servicenamespace
*/
serviceNamespace: string;
/**
* ``AWS::ApplicationAutoScaling::ScalableTarget.ScheduledActions``
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalabletarget.html#cfn-applicationautoscaling-scalabletarget-scheduledactions
* `AWS::ApplicationAutoScaling::ScalableTarget.ScheduledActions`
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalabletarget.html#cfn-applicationautoscaling-scalabletarget-scheduledactions
*/

@@ -43,5 +44,8 @@ scheduledActions?: Array<CfnScalableTarget.ScheduledActionProperty | cdk.Token> | cdk.Token;

/**
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalabletarget.html
* A CloudFormation `AWS::ApplicationAutoScaling::ScalableTarget`
*
* @cloudformationResource AWS::ApplicationAutoScaling::ScalableTarget
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalabletarget.html
*/
export declare class CfnScalableTarget extends cdk.Resource {
export declare class CfnScalableTarget extends cdk.CfnResource {
/**

@@ -53,7 +57,7 @@ * The CloudFormation resource type name for this resource class.

/**
* Creates a new ``AWS::ApplicationAutoScaling::ScalableTarget``.
* Create a new `AWS::ApplicationAutoScaling::ScalableTarget`.
*
* @param scope scope in which this resource is defined
* @param id scoped id of the resource
* @param props resource properties
* @param scope - scope in which this resource is defined
* @param id - scoped id of the resource
* @param props - resource properties
*/

@@ -68,13 +72,13 @@ constructor(scope: cdk.Construct, id: string, props: CfnScalableTargetProps);

/**
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalabletarget-scalabletargetaction.html
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalabletarget-scalabletargetaction.html
*/
interface ScalableTargetActionProperty {
/**
* ``CfnScalableTarget.ScalableTargetActionProperty.MaxCapacity``
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalabletarget-scalabletargetaction.html#cfn-applicationautoscaling-scalabletarget-scalabletargetaction-maxcapacity
* `CfnScalableTarget.ScalableTargetActionProperty.MaxCapacity`
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalabletarget-scalabletargetaction.html#cfn-applicationautoscaling-scalabletarget-scalabletargetaction-maxcapacity
*/
maxCapacity?: number | cdk.Token;
/**
* ``CfnScalableTarget.ScalableTargetActionProperty.MinCapacity``
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalabletarget-scalabletargetaction.html#cfn-applicationautoscaling-scalabletarget-scalabletargetaction-mincapacity
* `CfnScalableTarget.ScalableTargetActionProperty.MinCapacity`
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalabletarget-scalabletargetaction.html#cfn-applicationautoscaling-scalabletarget-scalabletargetaction-mincapacity
*/

@@ -86,28 +90,28 @@ minCapacity?: number | cdk.Token;

/**
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalabletarget-scheduledaction.html
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalabletarget-scheduledaction.html
*/
interface ScheduledActionProperty {
/**
* ``CfnScalableTarget.ScheduledActionProperty.EndTime``
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalabletarget-scheduledaction.html#cfn-applicationautoscaling-scalabletarget-scheduledaction-endtime
* `CfnScalableTarget.ScheduledActionProperty.EndTime`
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalabletarget-scheduledaction.html#cfn-applicationautoscaling-scalabletarget-scheduledaction-endtime
*/
endTime?: Date | cdk.Token;
/**
* ``CfnScalableTarget.ScheduledActionProperty.ScalableTargetAction``
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalabletarget-scheduledaction.html#cfn-applicationautoscaling-scalabletarget-scheduledaction-scalabletargetaction
* `CfnScalableTarget.ScheduledActionProperty.ScalableTargetAction`
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalabletarget-scheduledaction.html#cfn-applicationautoscaling-scalabletarget-scheduledaction-scalabletargetaction
*/
scalableTargetAction?: CfnScalableTarget.ScalableTargetActionProperty | cdk.Token;
/**
* ``CfnScalableTarget.ScheduledActionProperty.Schedule``
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalabletarget-scheduledaction.html#cfn-applicationautoscaling-scalabletarget-scheduledaction-schedule
* `CfnScalableTarget.ScheduledActionProperty.Schedule`
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalabletarget-scheduledaction.html#cfn-applicationautoscaling-scalabletarget-scheduledaction-schedule
*/
schedule: string;
/**
* ``CfnScalableTarget.ScheduledActionProperty.ScheduledActionName``
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalabletarget-scheduledaction.html#cfn-applicationautoscaling-scalabletarget-scheduledaction-scheduledactionname
* `CfnScalableTarget.ScheduledActionProperty.ScheduledActionName`
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalabletarget-scheduledaction.html#cfn-applicationautoscaling-scalabletarget-scheduledaction-scheduledactionname
*/
scheduledActionName: string;
/**
* ``CfnScalableTarget.ScheduledActionProperty.StartTime``
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalabletarget-scheduledaction.html#cfn-applicationautoscaling-scalabletarget-scheduledaction-starttime
* `CfnScalableTarget.ScheduledActionProperty.StartTime`
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalabletarget-scheduledaction.html#cfn-applicationautoscaling-scalabletarget-scheduledaction-starttime
*/

@@ -118,43 +122,44 @@ startTime?: Date | cdk.Token;

/**
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalingpolicy.html
* Properties for defining a `AWS::ApplicationAutoScaling::ScalingPolicy`
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalingpolicy.html
*/
export interface CfnScalingPolicyProps {
/**
* ``AWS::ApplicationAutoScaling::ScalingPolicy.PolicyName``
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalingpolicy.html#cfn-applicationautoscaling-scalingpolicy-policyname
* `AWS::ApplicationAutoScaling::ScalingPolicy.PolicyName`
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalingpolicy.html#cfn-applicationautoscaling-scalingpolicy-policyname
*/
policyName: string;
/**
* ``AWS::ApplicationAutoScaling::ScalingPolicy.PolicyType``
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalingpolicy.html#cfn-applicationautoscaling-scalingpolicy-policytype
* `AWS::ApplicationAutoScaling::ScalingPolicy.PolicyType`
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalingpolicy.html#cfn-applicationautoscaling-scalingpolicy-policytype
*/
policyType: string;
/**
* ``AWS::ApplicationAutoScaling::ScalingPolicy.ResourceId``
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalingpolicy.html#cfn-applicationautoscaling-scalingpolicy-resourceid
* `AWS::ApplicationAutoScaling::ScalingPolicy.ResourceId`
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalingpolicy.html#cfn-applicationautoscaling-scalingpolicy-resourceid
*/
resourceId?: string;
/**
* ``AWS::ApplicationAutoScaling::ScalingPolicy.ScalableDimension``
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalingpolicy.html#cfn-applicationautoscaling-scalingpolicy-scalabledimension
* `AWS::ApplicationAutoScaling::ScalingPolicy.ScalableDimension`
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalingpolicy.html#cfn-applicationautoscaling-scalingpolicy-scalabledimension
*/
scalableDimension?: string;
/**
* ``AWS::ApplicationAutoScaling::ScalingPolicy.ScalingTargetId``
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalingpolicy.html#cfn-applicationautoscaling-scalingpolicy-scalingtargetid
* `AWS::ApplicationAutoScaling::ScalingPolicy.ScalingTargetId`
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalingpolicy.html#cfn-applicationautoscaling-scalingpolicy-scalingtargetid
*/
scalingTargetId?: string;
/**
* ``AWS::ApplicationAutoScaling::ScalingPolicy.ServiceNamespace``
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalingpolicy.html#cfn-applicationautoscaling-scalingpolicy-servicenamespace
* `AWS::ApplicationAutoScaling::ScalingPolicy.ServiceNamespace`
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalingpolicy.html#cfn-applicationautoscaling-scalingpolicy-servicenamespace
*/
serviceNamespace?: string;
/**
* ``AWS::ApplicationAutoScaling::ScalingPolicy.StepScalingPolicyConfiguration``
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalingpolicy.html#cfn-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration
* `AWS::ApplicationAutoScaling::ScalingPolicy.StepScalingPolicyConfiguration`
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalingpolicy.html#cfn-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration
*/
stepScalingPolicyConfiguration?: CfnScalingPolicy.StepScalingPolicyConfigurationProperty | cdk.Token;
/**
* ``AWS::ApplicationAutoScaling::ScalingPolicy.TargetTrackingScalingPolicyConfiguration``
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalingpolicy.html#cfn-applicationautoscaling-scalingpolicy-targettrackingscalingpolicyconfiguration
* `AWS::ApplicationAutoScaling::ScalingPolicy.TargetTrackingScalingPolicyConfiguration`
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalingpolicy.html#cfn-applicationautoscaling-scalingpolicy-targettrackingscalingpolicyconfiguration
*/

@@ -164,5 +169,8 @@ targetTrackingScalingPolicyConfiguration?: CfnScalingPolicy.TargetTrackingScalingPolicyConfigurationProperty | cdk.Token;

/**
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalingpolicy.html
* A CloudFormation `AWS::ApplicationAutoScaling::ScalingPolicy`
*
* @cloudformationResource AWS::ApplicationAutoScaling::ScalingPolicy
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalingpolicy.html
*/
export declare class CfnScalingPolicy extends cdk.Resource {
export declare class CfnScalingPolicy extends cdk.CfnResource {
/**

@@ -174,7 +182,7 @@ * The CloudFormation resource type name for this resource class.

/**
* Creates a new ``AWS::ApplicationAutoScaling::ScalingPolicy``.
* Create a new `AWS::ApplicationAutoScaling::ScalingPolicy`.
*
* @param scope scope in which this resource is defined
* @param id scoped id of the resource
* @param props resource properties
* @param scope - scope in which this resource is defined
* @param id - scoped id of the resource
* @param props - resource properties
*/

@@ -189,28 +197,28 @@ constructor(scope: cdk.Construct, id: string, props: CfnScalingPolicyProps);

/**
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-customizedmetricspecification.html
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-customizedmetricspecification.html
*/
interface CustomizedMetricSpecificationProperty {
/**
* ``CfnScalingPolicy.CustomizedMetricSpecificationProperty.Dimensions``
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-customizedmetricspecification.html#cfn-applicationautoscaling-scalingpolicy-customizedmetricspecification-dimensions
* `CfnScalingPolicy.CustomizedMetricSpecificationProperty.Dimensions`
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-customizedmetricspecification.html#cfn-applicationautoscaling-scalingpolicy-customizedmetricspecification-dimensions
*/
dimensions?: Array<CfnScalingPolicy.MetricDimensionProperty | cdk.Token> | cdk.Token;
/**
* ``CfnScalingPolicy.CustomizedMetricSpecificationProperty.MetricName``
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-customizedmetricspecification.html#cfn-applicationautoscaling-scalingpolicy-customizedmetricspecification-metricname
* `CfnScalingPolicy.CustomizedMetricSpecificationProperty.MetricName`
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-customizedmetricspecification.html#cfn-applicationautoscaling-scalingpolicy-customizedmetricspecification-metricname
*/
metricName: string;
/**
* ``CfnScalingPolicy.CustomizedMetricSpecificationProperty.Namespace``
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-customizedmetricspecification.html#cfn-applicationautoscaling-scalingpolicy-customizedmetricspecification-namespace
* `CfnScalingPolicy.CustomizedMetricSpecificationProperty.Namespace`
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-customizedmetricspecification.html#cfn-applicationautoscaling-scalingpolicy-customizedmetricspecification-namespace
*/
namespace: string;
/**
* ``CfnScalingPolicy.CustomizedMetricSpecificationProperty.Statistic``
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-customizedmetricspecification.html#cfn-applicationautoscaling-scalingpolicy-customizedmetricspecification-statistic
* `CfnScalingPolicy.CustomizedMetricSpecificationProperty.Statistic`
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-customizedmetricspecification.html#cfn-applicationautoscaling-scalingpolicy-customizedmetricspecification-statistic
*/
statistic: string;
/**
* ``CfnScalingPolicy.CustomizedMetricSpecificationProperty.Unit``
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-customizedmetricspecification.html#cfn-applicationautoscaling-scalingpolicy-customizedmetricspecification-unit
* `CfnScalingPolicy.CustomizedMetricSpecificationProperty.Unit`
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-customizedmetricspecification.html#cfn-applicationautoscaling-scalingpolicy-customizedmetricspecification-unit
*/

@@ -222,13 +230,13 @@ unit?: string;

/**
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-metricdimension.html
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-metricdimension.html
*/
interface MetricDimensionProperty {
/**
* ``CfnScalingPolicy.MetricDimensionProperty.Name``
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-metricdimension.html#cfn-applicationautoscaling-scalingpolicy-metricdimension-name
* `CfnScalingPolicy.MetricDimensionProperty.Name`
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-metricdimension.html#cfn-applicationautoscaling-scalingpolicy-metricdimension-name
*/
name: string;
/**
* ``CfnScalingPolicy.MetricDimensionProperty.Value``
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-metricdimension.html#cfn-applicationautoscaling-scalingpolicy-metricdimension-value
* `CfnScalingPolicy.MetricDimensionProperty.Value`
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-metricdimension.html#cfn-applicationautoscaling-scalingpolicy-metricdimension-value
*/

@@ -240,13 +248,13 @@ value: string;

/**
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-predefinedmetricspecification.html
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-predefinedmetricspecification.html
*/
interface PredefinedMetricSpecificationProperty {
/**
* ``CfnScalingPolicy.PredefinedMetricSpecificationProperty.PredefinedMetricType``
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-predefinedmetricspecification.html#cfn-applicationautoscaling-scalingpolicy-predefinedmetricspecification-predefinedmetrictype
* `CfnScalingPolicy.PredefinedMetricSpecificationProperty.PredefinedMetricType`
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-predefinedmetricspecification.html#cfn-applicationautoscaling-scalingpolicy-predefinedmetricspecification-predefinedmetrictype
*/
predefinedMetricType: string;
/**
* ``CfnScalingPolicy.PredefinedMetricSpecificationProperty.ResourceLabel``
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-predefinedmetricspecification.html#cfn-applicationautoscaling-scalingpolicy-predefinedmetricspecification-resourcelabel
* `CfnScalingPolicy.PredefinedMetricSpecificationProperty.ResourceLabel`
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-predefinedmetricspecification.html#cfn-applicationautoscaling-scalingpolicy-predefinedmetricspecification-resourcelabel
*/

@@ -258,18 +266,18 @@ resourceLabel?: string;

/**
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration-stepadjustment.html
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration-stepadjustment.html
*/
interface StepAdjustmentProperty {
/**
* ``CfnScalingPolicy.StepAdjustmentProperty.MetricIntervalLowerBound``
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration-stepadjustment.html#cfn-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration-stepadjustment-metricintervallowerbound
* `CfnScalingPolicy.StepAdjustmentProperty.MetricIntervalLowerBound`
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration-stepadjustment.html#cfn-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration-stepadjustment-metricintervallowerbound
*/
metricIntervalLowerBound?: number | cdk.Token;
/**
* ``CfnScalingPolicy.StepAdjustmentProperty.MetricIntervalUpperBound``
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration-stepadjustment.html#cfn-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration-stepadjustment-metricintervalupperbound
* `CfnScalingPolicy.StepAdjustmentProperty.MetricIntervalUpperBound`
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration-stepadjustment.html#cfn-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration-stepadjustment-metricintervalupperbound
*/
metricIntervalUpperBound?: number | cdk.Token;
/**
* ``CfnScalingPolicy.StepAdjustmentProperty.ScalingAdjustment``
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration-stepadjustment.html#cfn-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration-stepadjustment-scalingadjustment
* `CfnScalingPolicy.StepAdjustmentProperty.ScalingAdjustment`
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration-stepadjustment.html#cfn-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration-stepadjustment-scalingadjustment
*/

@@ -281,28 +289,28 @@ scalingAdjustment: number | cdk.Token;

/**
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration.html
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration.html
*/
interface StepScalingPolicyConfigurationProperty {
/**
* ``CfnScalingPolicy.StepScalingPolicyConfigurationProperty.AdjustmentType``
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration.html#cfn-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration-adjustmenttype
* `CfnScalingPolicy.StepScalingPolicyConfigurationProperty.AdjustmentType`
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration.html#cfn-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration-adjustmenttype
*/
adjustmentType?: string;
/**
* ``CfnScalingPolicy.StepScalingPolicyConfigurationProperty.Cooldown``
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration.html#cfn-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration-cooldown
* `CfnScalingPolicy.StepScalingPolicyConfigurationProperty.Cooldown`
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration.html#cfn-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration-cooldown
*/
cooldown?: number | cdk.Token;
/**
* ``CfnScalingPolicy.StepScalingPolicyConfigurationProperty.MetricAggregationType``
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration.html#cfn-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration-metricaggregationtype
* `CfnScalingPolicy.StepScalingPolicyConfigurationProperty.MetricAggregationType`
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration.html#cfn-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration-metricaggregationtype
*/
metricAggregationType?: string;
/**
* ``CfnScalingPolicy.StepScalingPolicyConfigurationProperty.MinAdjustmentMagnitude``
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration.html#cfn-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration-minadjustmentmagnitude
* `CfnScalingPolicy.StepScalingPolicyConfigurationProperty.MinAdjustmentMagnitude`
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration.html#cfn-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration-minadjustmentmagnitude
*/
minAdjustmentMagnitude?: number | cdk.Token;
/**
* ``CfnScalingPolicy.StepScalingPolicyConfigurationProperty.StepAdjustments``
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration.html#cfn-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration-stepadjustments
* `CfnScalingPolicy.StepScalingPolicyConfigurationProperty.StepAdjustments`
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration.html#cfn-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration-stepadjustments
*/

@@ -314,33 +322,33 @@ stepAdjustments?: Array<CfnScalingPolicy.StepAdjustmentProperty | cdk.Token> | cdk.Token;

/**
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-targettrackingscalingpolicyconfiguration.html
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-targettrackingscalingpolicyconfiguration.html
*/
interface TargetTrackingScalingPolicyConfigurationProperty {
/**
* ``CfnScalingPolicy.TargetTrackingScalingPolicyConfigurationProperty.CustomizedMetricSpecification``
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-targettrackingscalingpolicyconfiguration.html#cfn-applicationautoscaling-scalingpolicy-targettrackingscalingpolicyconfiguration-customizedmetricspecification
* `CfnScalingPolicy.TargetTrackingScalingPolicyConfigurationProperty.CustomizedMetricSpecification`
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-targettrackingscalingpolicyconfiguration.html#cfn-applicationautoscaling-scalingpolicy-targettrackingscalingpolicyconfiguration-customizedmetricspecification
*/
customizedMetricSpecification?: CfnScalingPolicy.CustomizedMetricSpecificationProperty | cdk.Token;
/**
* ``CfnScalingPolicy.TargetTrackingScalingPolicyConfigurationProperty.DisableScaleIn``
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-targettrackingscalingpolicyconfiguration.html#cfn-applicationautoscaling-scalingpolicy-targettrackingscalingpolicyconfiguration-disablescalein
* `CfnScalingPolicy.TargetTrackingScalingPolicyConfigurationProperty.DisableScaleIn`
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-targettrackingscalingpolicyconfiguration.html#cfn-applicationautoscaling-scalingpolicy-targettrackingscalingpolicyconfiguration-disablescalein
*/
disableScaleIn?: boolean | cdk.Token;
/**
* ``CfnScalingPolicy.TargetTrackingScalingPolicyConfigurationProperty.PredefinedMetricSpecification``
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-targettrackingscalingpolicyconfiguration.html#cfn-applicationautoscaling-scalingpolicy-targettrackingscalingpolicyconfiguration-predefinedmetricspecification
* `CfnScalingPolicy.TargetTrackingScalingPolicyConfigurationProperty.PredefinedMetricSpecification`
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-targettrackingscalingpolicyconfiguration.html#cfn-applicationautoscaling-scalingpolicy-targettrackingscalingpolicyconfiguration-predefinedmetricspecification
*/
predefinedMetricSpecification?: CfnScalingPolicy.PredefinedMetricSpecificationProperty | cdk.Token;
/**
* ``CfnScalingPolicy.TargetTrackingScalingPolicyConfigurationProperty.ScaleInCooldown``
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-targettrackingscalingpolicyconfiguration.html#cfn-applicationautoscaling-scalingpolicy-targettrackingscalingpolicyconfiguration-scaleincooldown
* `CfnScalingPolicy.TargetTrackingScalingPolicyConfigurationProperty.ScaleInCooldown`
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-targettrackingscalingpolicyconfiguration.html#cfn-applicationautoscaling-scalingpolicy-targettrackingscalingpolicyconfiguration-scaleincooldown
*/
scaleInCooldown?: number | cdk.Token;
/**
* ``CfnScalingPolicy.TargetTrackingScalingPolicyConfigurationProperty.ScaleOutCooldown``
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-targettrackingscalingpolicyconfiguration.html#cfn-applicationautoscaling-scalingpolicy-targettrackingscalingpolicyconfiguration-scaleoutcooldown
* `CfnScalingPolicy.TargetTrackingScalingPolicyConfigurationProperty.ScaleOutCooldown`
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-targettrackingscalingpolicyconfiguration.html#cfn-applicationautoscaling-scalingpolicy-targettrackingscalingpolicyconfiguration-scaleoutcooldown
*/
scaleOutCooldown?: number | cdk.Token;
/**
* ``CfnScalingPolicy.TargetTrackingScalingPolicyConfigurationProperty.TargetValue``
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-targettrackingscalingpolicyconfiguration.html#cfn-applicationautoscaling-scalingpolicy-targettrackingscalingpolicyconfiguration-targetvalue
* `CfnScalingPolicy.TargetTrackingScalingPolicyConfigurationProperty.TargetValue`
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-targettrackingscalingpolicyconfiguration.html#cfn-applicationautoscaling-scalingpolicy-targettrackingscalingpolicyconfiguration-targetvalue
*/

@@ -347,0 +355,0 @@ targetValue: number | cdk.Token;

{
"name": "@aws-cdk/aws-applicationautoscaling",
"version": "0.25.3",
"version": "0.26.0",
"description": "The CDK Construct Library for AWS::ApplicationAutoScaling",

@@ -57,19 +57,19 @@ "main": "lib/index.js",

"devDependencies": {
"@aws-cdk/assert": "^0.25.3",
"cdk-build-tools": "^0.25.3",
"cfn2ts": "^0.25.3",
"@aws-cdk/assert": "^0.26.0",
"cdk-build-tools": "^0.26.0",
"cfn2ts": "^0.26.0",
"fast-check": "^1.7.0",
"pkglint": "^0.25.3"
"pkglint": "^0.26.0"
},
"dependencies": {
"@aws-cdk/aws-autoscaling-common": "^0.25.3",
"@aws-cdk/aws-cloudwatch": "^0.25.3",
"@aws-cdk/aws-iam": "^0.25.3",
"@aws-cdk/cdk": "^0.25.3"
"@aws-cdk/aws-autoscaling-common": "^0.26.0",
"@aws-cdk/aws-cloudwatch": "^0.26.0",
"@aws-cdk/aws-iam": "^0.26.0",
"@aws-cdk/cdk": "^0.26.0"
},
"homepage": "https://github.com/awslabs/aws-cdk",
"peerDependencies": {
"@aws-cdk/aws-cloudwatch": "^0.25.3",
"@aws-cdk/aws-iam": "^0.25.3",
"@aws-cdk/cdk": "^0.25.3"
"@aws-cdk/aws-cloudwatch": "^0.26.0",
"@aws-cdk/aws-iam": "^0.26.0",
"@aws-cdk/cdk": "^0.26.0"
},

@@ -76,0 +76,0 @@ "engines": {

@@ -17,3 +17,3 @@ "use strict";

});
return new ScalingStackTemplate(stack.toCloudFormation());
return new ScalingStackTemplate(stack._toCloudFormation());
}

@@ -168,2 +168,2 @@ class ScalingStackTemplate {

};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5zdGVwLXNjYWxpbmctcG9saWN5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidGVzdC5zdGVwLXNjYWxpbmctcG9saWN5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxzREFBdUQ7QUFDdkQsb0NBQXFDO0FBQ3JDLGlDQUFrQztBQUdsQyxpQ0FBbUQ7QUFDbkQsaUNBQThDO0FBaUg5Qzs7R0FFRztBQUNILFNBQVMsZ0JBQWdCLENBQUMsU0FBdUM7SUFDL0QsTUFBTSxLQUFLLEdBQUcsSUFBSSxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDOUIsTUFBTSxNQUFNLEdBQUcsMkJBQW9CLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFM0MsTUFBTSxDQUFDLGFBQWEsQ0FBQyxlQUFlLEVBQUU7UUFDcEMsTUFBTSxFQUFFLElBQUksVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxDQUFDO1FBQzNFLFlBQVksRUFBRSxTQUFTO0tBQ3hCLENBQUMsQ0FBQztJQUVILE9BQU8sSUFBSSxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO0FBQzVELENBQUM7QUFFRCxNQUFNLG9CQUFvQjtJQU14QixZQUE2QixRQUFhO1FBQWIsYUFBUSxHQUFSLFFBQVEsQ0FBSztRQUwxQixnQkFBVyxHQUFHLHdDQUF3QyxDQUFDO1FBQ3ZELGVBQVUsR0FBRyx1Q0FBdUMsQ0FBQztRQUNyRCxnQkFBVyxHQUFHLHdDQUF3QyxDQUFDO1FBQ3ZELGVBQVUsR0FBRyx1Q0FBdUMsQ0FBQztJQUdyRSxDQUFDO0lBRUQsSUFBVyxjQUFjO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELElBQVcsY0FBYztRQUN2QixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FB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Q0FBQztZQUU1QixPQUFPLFdBQVcsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssUUFBUSxDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUMzRixDQUFDLENBQ0YsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2QsQ0FBQztDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY2xvdWR3YXRjaCA9IHJlcXVpcmUoJ0Bhd3MtY2RrL2F3cy1jbG91ZHdhdGNoJyk7XG5pbXBvcnQgY2RrID0gcmVxdWlyZSgnQGF3cy1jZGsvY2RrJyk7XG5pbXBvcnQgZmMgPSByZXF1aXJlKCdmYXN0LWNoZWNrJyk7XG5pbXBvcnQgeyBUZXN0IH0gZnJvbSAnbm9kZXVuaXQnO1xuaW1wb3J0IGFwcHNjYWxpbmcgPSByZXF1aXJlKCcuLi9saWInKTtcbmltcG9ydCB7IGFyYml0cmFyeV9pbnB1dF9pbnRlcnZhbHMgfSBmcm9tICcuL3V0aWwnO1xuaW1wb3J0IHsgY3JlYXRlU2NhbGFibGVUYXJnZXQgfSBmcm9tICcuL3V0aWwnO1xuXG5leHBvcnQgPSB7XG4gICdhbGFybSB0aHJlc2hvbGRzIGFyZSB2YWxpZCBudW1iZXJzJyh0ZXN0OiBUZXN0KSB7XG4gICAgZmMuYXNzZXJ0KGZjLnByb3BlcnR5KFxuICAgICAgYXJiaXRyYXJ5X2lucHV0X2ludGVydmFscygpLFxuICAgICAgKGludGVydmFscykgPT4ge1xuICAgICAgICBjb25zdCB0ZW1wbGF0ZSA9IHNldHVwU3RlcFNjYWxpbmcoaW50ZXJ2YWxzKTtcblxuICAgICAgICBjb25zdCBsb3dlclRocmVzaG9sZCA9IHRlbXBsYXRlLmxvd2VyVGhyZXNob2xkO1xuICAgICAgICBjb25zdCB1cHBlclRocmVzaG9sZCA9IHRlbXBsYXRlLnVwcGVyVGhyZXNob2xkO1xuXG4gICAgICAgIHJldHVybiByZXBvcnRGYWxzZShcbiAgICAgICAgICAobG93ZXJUaHJlc2hvbGQgPT09IHVuZGVmaW5lZCB8fCAobG93ZXJUaHJlc2hvbGQgPiAwICYmIGxvd2VyVGhyZXNob2xkICE9PSBJbmZpbml0eSkpXG4gICAgICAgICAgJiYgKHVwcGVyVGhyZXNob2xkID09PSB1bmRlZmluZWQgfHwgKHVwcGVyVGhyZXNob2xkID4gMCAmJiB1cHBlclRocmVzaG9sZCAhPT0gSW5maW5pdHkpKSxcbiAgICAgICAgICBsb3dlclRocmVzaG9sZCxcbiAgICAgICAgICB1cHBlclRocmVzaG9sZCk7XG4gICAgICB9XG4gICAgKSk7XG5cbiAgICB0ZXN0LmRvbmUoKTtcbiAgfSxcblxuICAnZ2VuZXJhdGVkIHN0ZXAgaW50ZXJ2YWxzIGFyZSB2YWxpZCBpbnRlcnZhbHMnKHRlc3Q6IFRlc3QpIHtcbiAgICBmYy5hc3NlcnQoZmMucHJvcGVydHkoXG4gICAgICBhcmJpdHJhcnlfaW5wdXRfaW50ZXJ2YWxzKCksXG4gICAgICAoaW50ZXJ2YWxzKSA9PiB7XG4gICAgICAgIGNvbnN0IHRlbXBsYXRlID0gc2V0dXBTdGVwU2NhbGluZyhpbnRlcnZhbHMpO1xuICAgICAgICBjb25zdCBzdGVwcyA9IHRlbXBsYXRlLmFsbFN0ZXBzQWJzb2x1dGUoKTtcblxuICAgICAgICByZXR1cm4gcmVwb3J0RmFsc2Uoc3RlcHMuZXZlcnkoc3RlcCA9PiB7XG4gICAgICAgICAgcmV0dXJuIHN0ZXAuTWV0cmljSW50ZXJ2YWxMb3dlckJvdW5kISA8IHN0ZXAuTWV0cmljSW50ZXJ2YWxVcHBlckJvdW5kITtcbiAgICAgICAgfSksIHN0ZXBzLCAndGVtcGxhdGUnLCBKU09OLnN0cmluZ2lmeSh0ZW1wbGF0ZSwgdW5kZWZpbmVkLCAyKSk7XG4gICAgICB9XG4gICAgKSk7XG5cbiAgICB0ZXN0LmRvbmUoKTtcbiAgfSxcblxuICAnZ2VuZXJhdGVkIHN0ZXAgaW50ZXJ2YWxzIGFyZSBub25vdmVybGFwcGluZycodGVzdDogVGVzdCkge1xuICAgIGZjLmFzc2VydChmYy5wcm9wZXJ0eShcbiAgICAgIGFyYml0cmFyeV9pbnB1dF9pbnRlcnZhbHMoKSxcbiAgICAgIChpbnRlcnZhbHMpID0+IHtcbiAgICAgICAgY29uc3QgdGVtcGxhdGUgPSBzZXR1cFN0ZXBTY2FsaW5nKGludGVydmFscyk7XG4gICAgICAgIGNvbnN0IHN0ZXBzID0gdGVtcGxhdGUuYWxsU3RlcHNBYnNvbHV0ZSgpO1xuXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3RlcHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICBjb25zdCBjb21wYXJlVG8gPSBzdGVwcy5zbGljZShpICsgMSk7XG4gICAgICAgICAgaWYgKGNvbXBhcmVUby5zb21lKHggPT4gb3ZlcmxhcHMoc3RlcHNbaV0sIHgpKSkge1xuICAgICAgICAgICAgcmV0dXJuIHJlcG9ydEZhbHNlKGZhbHNlLCBzdGVwcyk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgKSwgeyB2ZXJib3NlOiB0cnVlIH0pO1xuXG4gICAgdGVzdC5kb25lKCk7XG4gIH0sXG5cbiAgJ2FsbCB0ZW1wbGF0ZSBpbnRlcnZhbHMgb2NjdXIgaW4gaW5wdXQgYXJyYXknKHRlc3Q6IFRlc3QpIHtcbiAgICBmYy5hc3NlcnQoZmMucHJvcGVydHkoXG4gICAgICBhcmJpdHJhcnlfaW5wdXRfaW50ZXJ2YWxzKCksXG4gICAgICAoaW50ZXJ2YWxzKSA9PiB7XG4gICAgICAgIGNvbnN0IHRlbXBsYXRlID0gc2V0dXBTdGVwU2NhbGluZyhpbnRlcnZhbHMpO1xuICAgICAgICBjb25zdCBzdGVwcyA9IHRlbXBsYXRlLmFsbFN0ZXBzQWJzb2x1dGUoKTtcblxuICAgICAgICByZXR1cm4gc3RlcHMuZXZlcnkoc3RlcCA9PiB7XG4gICAgICAgICAgcmV0dXJuIHJlcG9ydEZhbHNlKGludGVydmFscy5maW5kKGludGVydmFsID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGFjY2VwdGFibGVMb3dlckJvdW5kcyA9IHN0ZXAuTWV0cmljSW50ZXJ2YWxMb3dlckJvdW5kID09PSAtSW5maW5pdHkgPyBbdW5kZWZpbmVkLCAwXSA6IFt1bmRlZmluZWQsIHN0ZXAuTWV0cmljSW50ZXJ2YWxMb3dlckJvdW5kXTtcbiAgICAgICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTptYXgtbGluZS1sZW5ndGhcbiAgICAgICAgICAgIGNvbnN0IGFjY2VwdGFibGVVcHBlckJvdW5kcyA9IHN0ZXAuTWV0cmljSW50ZXJ2YWxVcHBlckJvdW5kID09PSBJbmZpbml0eSA/IFt1bmRlZmluZWQsIEluZmluaXR5XSA6IFt1bmRlZmluZWQsIHN0ZXAuTWV0cmljSW50ZXJ2YWxVcHBlckJvdW5kXTtcblxuICAgICAgICAgICAgcmV0dXJuIChhY2NlcHRhYmxlTG93ZXJCb3VuZHMuaW5jbHVkZXMoaW50ZXJ2YWwubG93ZXIpICYmIGFjY2VwdGFibGVVcHBlckJvdW5kcy5pbmNsdWRlcyhpbnRlcnZhbC51cHBlcikpO1xuICAgICAgICAgIH0pICE9PSB1bmRlZmluZWQsIHN0ZXAsIGludGVydmFscyk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICkpO1xuXG4gICAgdGVzdC5kb25lKCk7XG4gIH0sXG5cbiAgJ2xvd2VyIGFsYXJtIHVzZXMgbG93ZXIgcG9saWN5Jyh0ZXN0OiBUZXN0KSB7XG4gICAgZmMuYXNzZXJ0KGZjLnByb3BlcnR5KFxuICAgICAgYXJiaXRyYXJ5X2lucHV0X2ludGVydmFscygpLFxuICAgICAgKGludGVydmFscykgPT4ge1xuICAgICAgICBjb25zdCB0ZW1wbGF0ZSA9IHNldHVwU3RlcFNjYWxpbmcoaW50ZXJ2YWxzKTtcbiAgICAgICAgY29uc3QgYWxhcm0gPSB0ZW1wbGF0ZS5yZXNvdXJjZSh0ZW1wbGF0ZS5sb3dlckFsYXJtKTtcbiAgICAgICAgZmMucHJlKGFsYXJtICE9PSB1bmRlZmluZWQpO1xuXG4gICAgICAgIHJldHVybiByZXBvcnRGYWxzZShhbGFybS5Qcm9wZXJ0aWVzLkFsYXJtQWN0aW9uc1swXS5SZWYgPT09IHRlbXBsYXRlLmxvd2VyUG9saWN5LCBhbGFybSk7XG4gICAgICB9XG4gICAgKSk7XG5cbiAgICB0ZXN0LmRvbmUoKTtcbiAgfSxcblxuICAndXBwZXIgYWxhcm0gdXNlcyB1cHBlciBwb2xpY3knKHRlc3Q6IFRlc3QpIHtcbiAgICBmYy5hc3NlcnQoZmMucHJvcGVydHkoXG4gICAgICBhcmJpdHJhcnlfaW5wdXRfaW50ZXJ2YWxzKCksXG4gICAgICAoaW50ZXJ2YWxzKSA9PiB7XG4gICAgICAgIGNvbnN0IHRlbXBsYXRlID0gc2V0dXBTdGVwU2NhbGluZyhpbnRlcnZhbHMpO1xuICAgICAgICBjb25zdCBhbGFybSA9IHRlbXBsYXRlLnJlc291cmNlKHRlbXBsYXRlLnVwcGVyQWxhcm0pO1xuICAgICAgICBmYy5wcmUoYWxhcm0gIT09IHVuZGVmaW5lZCk7XG5cbiAgICAgICAgcmV0dXJuIHJlcG9ydEZhbHNlKGFsYXJtLlByb3BlcnRpZXMuQWxhcm1BY3Rpb25zWzBdLlJlZiA9PT0gdGVtcGxhdGUudXBwZXJQb2xpY3ksIGFsYXJtKTtcbiAgICAgIH1cbiAgICApKTtcblxuICAgIHRlc3QuZG9uZSgpO1xuICB9LFxufTtcblxuLyoqXG4gKiBTeW50aGVzaXplIHRoZSBnaXZlbiBzdGVwIHNjYWxpbmcgc2V0dXAgdG8gYSB0ZW1wbGF0ZVxuICovXG5mdW5jdGlvbiBzZXR1cFN0ZXBTY2FsaW5nKGludGVydmFsczogYXBwc2NhbGluZy5TY2FsaW5nSW50ZXJ2YWxbXSkge1xuICBjb25zdCBzdGFjayA9IG5ldyBjZGsuU3RhY2soKTtcbiAgY29uc3QgdGFyZ2V0ID0gY3JlYXRlU2NhbGFibGVUYXJnZXQoc3RhY2spO1xuXG4gIHRhcmdldC5zY2FsZU9uTWV0cmljKCdTY2FsZUludGVydmFsJywge1xuICAgIG1ldHJpYzogbmV3IGNsb3Vkd2F0Y2guTWV0cmljKHsgbmFtZXNwYWNlOiAnVGVzdCcsIG1ldHJpY05hbWU6ICdTdWNjZXNzJyB9KSxcbiAgICBzY2FsaW5nU3RlcHM6IGludGVydmFsc1xuICB9KTtcblxuICByZXR1cm4gbmV3IFNjYWxpbmdTdGFja1RlbXBsYXRlKHN0YWNrLnRvQ2xvdWRGb3JtYXRpb24oKSk7XG59XG5cbmNsYXNzIFNjYWxpbmdTdGFja1RlbXBsYXRlIHtcbiAgcHVibGljIHJlYWRvbmx5IGxvd2VyUG9saWN5ID0gJ1RhcmdldFNjYWxlSW50ZXJ2YWxMb3dlclBvbGljeTZGMjZENTk3JztcbiAgcHVibGljIHJlYWRvbmx5IGxvd2VyQWxhcm0gPSAnVGFyZ2V0U2NhbGVJbnRlcnZhbExvd2VyQWxhcm00QjVDRTg2OSc7XG4gIHB1YmxpYyByZWFkb25seSB1cHBlclBvbGljeSA9ICdUYXJnZXRTY2FsZUludGVydmFsVXBwZXJQb2xpY3k3Qzc1MTEzMic7XG4gIHB1YmxpYyByZWFkb25seSB1cHBlckFsYXJtID0gJ1RhcmdldFNjYWxlSW50ZXJ2YWxVcHBlckFsYXJtNjlGRDFCQkInO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgdGVtcGxhdGU6IGFueSkge1xuICB9XG5cbiAgcHVibGljIGdldCBsb3dlclRocmVzaG9sZCgpIHtcbiAgICByZXR1cm4gdGhpcy50aHJlc2hvbGQodGhpcy5sb3dlckFsYXJtKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdXBwZXJUaHJlc2hvbGQoKSB7XG4gICAgcmV0dXJuIHRoaXMudGhyZXNob2xkKHRoaXMudXBwZXJBbGFybSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGxvd2VyU3RlcHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RlcHModGhpcy5sb3dlclBvbGljeSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHVwcGVyU3RlcHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RlcHModGhpcy51cHBlclBvbGljeSk7XG4gIH1cblxuICBwdWJsaWMgYWxsU3RlcHNBYnNvbHV0ZSgpIHtcbiAgICBjb25zdCByZXQgPSBuZXcgQXJyYXk8VGVtcGxhdGVTdGVwPigpO1xuICAgIGNvbnN0IGxvd2VyVGhyZXNob2xkID0gdGhpcy5sb3dlclRocmVzaG9sZDtcbiAgICBpZiAobG93ZXJUaHJlc2hvbGQgIT09IHVuZGVmaW5lZCkgeyByZXQucHVzaCguLi50aGlzLmxvd2VyU3RlcHMhLm1hcCh4ID0+IG1ha2VBYnNvbHV0ZShsb3dlclRocmVzaG9sZCwgeCkpKTsgfVxuXG4gICAgY29uc3QgdXBwZXJUaHJlc2hvbGQgPSB0aGlzLnVwcGVyVGhyZXNob2xkO1xuICAgIGlmICh1cHBlclRocmVzaG9sZCAhPT0gdW5kZWZpbmVkKSB7IHJldC5wdXNoKC4uLnRoaXMudXBwZXJTdGVwcyEubWFwKHggPT4gbWFrZUFic29sdXRlKHVwcGVyVGhyZXNob2xkLCB4KSkpOyB9XG5cbiAgICByZXR1cm4gcmV0O1xuICB9XG5cbiAgcHVibGljIHJlc291cmNlKGlkOiBzdHJpbmcpOiBvYmplY3QgfCBhbnkge1xuICAgIHJldHVybiB0aGlzLnRlbXBsYXRlLlJlc291cmNlc1tpZF07XG4gIH1cblxuICBwcml2YXRlIHRocmVzaG9sZChpZDogc3RyaW5nKTogbnVtYmVyIHwgdW5kZWZpbmVkICB7XG4gICAgcmV0dXJuIGFwcGx5KHRoaXMucmVzb3VyY2UoaWQpLCB4ID0+IHguUHJvcGVydGllcy5UaHJlc2hvbGQpO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGVwcyhpZDogc3RyaW5nKTogVGVtcGxhdGVTdGVwW10gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiBhcHBseSh0aGlzLnJlc291cmNlKGlkKSwgeCA9PiB4LlByb3BlcnRpZXMuU3RlcFNjYWxpbmdQb2xpY3lDb25maWd1cmF0aW9uLlN0ZXBBZGp1c3RtZW50cyk7XG4gIH1cbn1cblxuaW50ZXJmYWNlIFRlbXBsYXRlU3RlcCB7XG4gIE1ldHJpY0ludGVydmFsTG93ZXJCb3VuZD86IG51bWJlcjtcbiAgTWV0cmljSW50ZXJ2YWxVcHBlckJvdW5kPzogbnVtYmVyO1xuICBTY2FsaW5nQWRqdXN0bWVudDogbnVtYmVyO1xufVxuXG5mdW5jdGlvbiBtYWtlQWJzb2x1dGUodGhyZXNob2xkOiBudW1iZXIsIHN0ZXA6IFRlbXBsYXRlU3RlcCkge1xuICByZXR1cm4gY29uY3JldGUoe1xuICAgIE1ldHJpY0ludGVydmFsTG93ZXJCb3VuZDogYXBwbHkoc3RlcC5NZXRyaWNJbnRlcnZhbExvd2VyQm91bmQsIHggPT4geCArIHRocmVzaG9sZCksXG4gICAgTWV0cmljSW50ZXJ2YWxVcHBlckJvdW5kOiBhcHBseShzdGVwLk1ldHJpY0ludGVydmFsVXBwZXJCb3VuZCwgeCA9PiB4ICsgdGhyZXNob2xkKSxcbiAgICBTY2FsaW5nQWRqdXN0bWVudDogc3RlcC5TY2FsaW5nQWRqdXN0bWVudFxuICB9KTtcbn1cblxuZnVuY3Rpb24gb3ZlcmxhcHMoYTogVGVtcGxhdGVTdGVwLCBiOiBUZW1wbGF0ZVN0ZXApIHtcbiAgcmV0dXJuIChhLk1ldHJpY0ludGVydmFsTG93ZXJCb3VuZCEgPCBiLk1ldHJpY0ludGVydmFsVXBwZXJCb3VuZCFcbiAgICAmJiBhLk1ldHJpY0ludGVydmFsVXBwZXJCb3VuZCEgPiBiLk1ldHJpY0ludGVydmFsTG93ZXJCb3VuZCEpO1xufVxuXG5mdW5jdGlvbiBjb25jcmV0ZShzdGVwOiBUZW1wbGF0ZVN0ZXApIHtcbiAgcmV0dXJuIHtcbiAgICBNZXRyaWNJbnRlcnZhbExvd2VyQm91bmQ6IGlmVW5kZWZpbmVkKHN0ZXAuTWV0cmljSW50ZXJ2YWxMb3dlckJvdW5kLCAtSW5maW5pdHkpLFxuICAgIE1ldHJpY0ludGVydmFsVXBwZXJCb3VuZDogaWZVbmRlZmluZWQoc3RlcC5NZXRyaWNJbnRlcnZhbFVwcGVyQm91bmQsIEluZmluaXR5KSxcbiAgICBTY2FsaW5nQWRqdXN0bWVudDogc3RlcC5TY2FsaW5nQWRqdXN0bWVudFxuICB9O1xufVxuXG5mdW5jdGlvbiBpZlVuZGVmaW5lZDxUPih4OiBUIHwgdW5kZWZpbmVkLCBkZWY6IFQpOiBUIHtcbiAgcmV0dXJuIHggIT09IHVuZGVmaW5lZCA/IHggOiBkZWY7XG59XG5cbmZ1bmN0aW9uIGFwcGx5PFQsIFU+KHg6IFQgfCB1bmRlZmluZWQsIGY6ICh4OiBUKSA9PiBVIHwgdW5kZWZpbmVkKTogVSB8IHVuZGVmaW5lZCB7XG4gIGlmICh4ID09PSB1bmRlZmluZWQpIHsgcmV0dXJuIHVuZGVmaW5lZDsgfVxuICByZXR1cm4gZih4KTtcbn1cblxuLyoqXG4gKiBIZWxwZXIgZnVuY3Rpb24gdG8gcHJpbnQgdmFyaWFibGVzIGluIGNhc2Ugb2YgYSBmYWlsaW5nIHByb3BlcnR5IGNoZWNrXG4gKi9cbmZ1bmN0aW9uIHJlcG9ydEZhbHNlKGNvbmQ6IGJvb2xlYW4sIC4uLnJlcHI6IGFueVtdKSB7XG4gIGlmICghY29uZCkge1xuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1jb25zb2xlXG4gICAgY29uc29sZS5lcnJvcignUFJPUEVSVFkgRkFJTFMgT046JywgLi4ucmVwcik7XG4gIH1cbiAgcmV0dXJuIGNvbmQ7XG59Il19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5zdGVwLXNjYWxpbmctcG9saWN5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidGVzdC5zdGVwLXNjYWxpbmctcG9saWN5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxzREFBdUQ7QUFDdkQsb0NBQXFDO0FBQ3JDLGlDQUFrQztBQUdsQyxpQ0FBbUQ7QUFDbkQsaUNBQThDO0FBaUg5Qzs7R0FFRztBQUNILFNBQVMsZ0JBQWdCLENBQUMsU0FBdUM7SUFDL0QsTUFBTSxLQUFLLEdBQUcsSUFBSSxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDOUIsTUFBTSxNQUFNLEdBQUcsMkJBQW9CLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFM0MsTUFBTSxDQUFDLGFBQWEsQ0FBQyxlQUFlLEVBQUU7UUFDcEMsTUFBTSxFQUFFLElBQUksVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxDQUFDO1FBQzNFLFlBQVksRUFBRSxTQUFTO0tBQ3hCLENBQUMsQ0FBQztJQUVILE9BQU8sSUFBSSxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDO0FBQzdELENBQUM7QUFFRCxNQUFNLG9CQUFvQjtJQU14QixZQUE2QixRQUFhO1FBQWIsYUFBUSxHQUFSLFFBQVEsQ0FBSztRQUwxQixnQkFBVyxHQUFHLHdDQUF3QyxDQUFDO1FBQ3ZELGVBQVUsR0FBRyx1Q0FBdUMsQ0FBQztRQUNyRCxnQkFBVyxHQUFHLHdDQUF3QyxDQUFDO1FBQ3ZELGVBQVUsR0FBRyx1Q0FBdUMsQ0FBQztJQUdyRSxDQUFDO0lBRUQsSUFBVyxjQUFjO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELElBQVcsY0FBYztRQUN2QixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FB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Q0FBQztZQUU1QixPQUFPLFdBQVcsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssUUFBUSxDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUMzRixDQUFDLENBQ0YsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2QsQ0FBQztDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY2xvdWR3YXRjaCA9IHJlcXVpcmUoJ0Bhd3MtY2RrL2F3cy1jbG91ZHdhdGNoJyk7XG5pbXBvcnQgY2RrID0gcmVxdWlyZSgnQGF3cy1jZGsvY2RrJyk7XG5pbXBvcnQgZmMgPSByZXF1aXJlKCdmYXN0LWNoZWNrJyk7XG5pbXBvcnQgeyBUZXN0IH0gZnJvbSAnbm9kZXVuaXQnO1xuaW1wb3J0IGFwcHNjYWxpbmcgPSByZXF1aXJlKCcuLi9saWInKTtcbmltcG9ydCB7IGFyYml0cmFyeV9pbnB1dF9pbnRlcnZhbHMgfSBmcm9tICcuL3V0aWwnO1xuaW1wb3J0IHsgY3JlYXRlU2NhbGFibGVUYXJnZXQgfSBmcm9tICcuL3V0aWwnO1xuXG5leHBvcnQgPSB7XG4gICdhbGFybSB0aHJlc2hvbGRzIGFyZSB2YWxpZCBudW1iZXJzJyh0ZXN0OiBUZXN0KSB7XG4gICAgZmMuYXNzZXJ0KGZjLnByb3BlcnR5KFxuICAgICAgYXJiaXRyYXJ5X2lucHV0X2ludGVydmFscygpLFxuICAgICAgKGludGVydmFscykgPT4ge1xuICAgICAgICBjb25zdCB0ZW1wbGF0ZSA9IHNldHVwU3RlcFNjYWxpbmcoaW50ZXJ2YWxzKTtcblxuICAgICAgICBjb25zdCBsb3dlclRocmVzaG9sZCA9IHRlbXBsYXRlLmxvd2VyVGhyZXNob2xkO1xuICAgICAgICBjb25zdCB1cHBlclRocmVzaG9sZCA9IHRlbXBsYXRlLnVwcGVyVGhyZXNob2xkO1xuXG4gICAgICAgIHJldHVybiByZXBvcnRGYWxzZShcbiAgICAgICAgICAobG93ZXJUaHJlc2hvbGQgPT09IHVuZGVmaW5lZCB8fCAobG93ZXJUaHJlc2hvbGQgPiAwICYmIGxvd2VyVGhyZXNob2xkICE9PSBJbmZpbml0eSkpXG4gICAgICAgICAgJiYgKHVwcGVyVGhyZXNob2xkID09PSB1bmRlZmluZWQgfHwgKHVwcGVyVGhyZXNob2xkID4gMCAmJiB1cHBlclRocmVzaG9sZCAhPT0gSW5maW5pdHkpKSxcbiAgICAgICAgICBsb3dlclRocmVzaG9sZCxcbiAgICAgICAgICB1cHBlclRocmVzaG9sZCk7XG4gICAgICB9XG4gICAgKSk7XG5cbiAgICB0ZXN0LmRvbmUoKTtcbiAgfSxcblxuICAnZ2VuZXJhdGVkIHN0ZXAgaW50ZXJ2YWxzIGFyZSB2YWxpZCBpbnRlcnZhbHMnKHRlc3Q6IFRlc3QpIHtcbiAgICBmYy5hc3NlcnQoZmMucHJvcGVydHkoXG4gICAgICBhcmJpdHJhcnlfaW5wdXRfaW50ZXJ2YWxzKCksXG4gICAgICAoaW50ZXJ2YWxzKSA9PiB7XG4gICAgICAgIGNvbnN0IHRlbXBsYXRlID0gc2V0dXBTdGVwU2NhbGluZyhpbnRlcnZhbHMpO1xuICAgICAgICBjb25zdCBzdGVwcyA9IHRlbXBsYXRlLmFsbFN0ZXBzQWJzb2x1dGUoKTtcblxuICAgICAgICByZXR1cm4gcmVwb3J0RmFsc2Uoc3RlcHMuZXZlcnkoc3RlcCA9PiB7XG4gICAgICAgICAgcmV0dXJuIHN0ZXAuTWV0cmljSW50ZXJ2YWxMb3dlckJvdW5kISA8IHN0ZXAuTWV0cmljSW50ZXJ2YWxVcHBlckJvdW5kITtcbiAgICAgICAgfSksIHN0ZXBzLCAndGVtcGxhdGUnLCBKU09OLnN0cmluZ2lmeSh0ZW1wbGF0ZSwgdW5kZWZpbmVkLCAyKSk7XG4gICAgICB9XG4gICAgKSk7XG5cbiAgICB0ZXN0LmRvbmUoKTtcbiAgfSxcblxuICAnZ2VuZXJhdGVkIHN0ZXAgaW50ZXJ2YWxzIGFyZSBub25vdmVybGFwcGluZycodGVzdDogVGVzdCkge1xuICAgIGZjLmFzc2VydChmYy5wcm9wZXJ0eShcbiAgICAgIGFyYml0cmFyeV9pbnB1dF9pbnRlcnZhbHMoKSxcbiAgICAgIChpbnRlcnZhbHMpID0+IHtcbiAgICAgICAgY29uc3QgdGVtcGxhdGUgPSBzZXR1cFN0ZXBTY2FsaW5nKGludGVydmFscyk7XG4gICAgICAgIGNvbnN0IHN0ZXBzID0gdGVtcGxhdGUuYWxsU3RlcHNBYnNvbHV0ZSgpO1xuXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3RlcHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICBjb25zdCBjb21wYXJlVG8gPSBzdGVwcy5zbGljZShpICsgMSk7XG4gICAgICAgICAgaWYgKGNvbXBhcmVUby5zb21lKHggPT4gb3ZlcmxhcHMoc3RlcHNbaV0sIHgpKSkge1xuICAgICAgICAgICAgcmV0dXJuIHJlcG9ydEZhbHNlKGZhbHNlLCBzdGVwcyk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgKSwgeyB2ZXJib3NlOiB0cnVlIH0pO1xuXG4gICAgdGVzdC5kb25lKCk7XG4gIH0sXG5cbiAgJ2FsbCB0ZW1wbGF0ZSBpbnRlcnZhbHMgb2NjdXIgaW4gaW5wdXQgYXJyYXknKHRlc3Q6IFRlc3QpIHtcbiAgICBmYy5hc3NlcnQoZmMucHJvcGVydHkoXG4gICAgICBhcmJpdHJhcnlfaW5wdXRfaW50ZXJ2YWxzKCksXG4gICAgICAoaW50ZXJ2YWxzKSA9PiB7XG4gICAgICAgIGNvbnN0IHRlbXBsYXRlID0gc2V0dXBTdGVwU2NhbGluZyhpbnRlcnZhbHMpO1xuICAgICAgICBjb25zdCBzdGVwcyA9IHRlbXBsYXRlLmFsbFN0ZXBzQWJzb2x1dGUoKTtcblxuICAgICAgICByZXR1cm4gc3RlcHMuZXZlcnkoc3RlcCA9PiB7XG4gICAgICAgICAgcmV0dXJuIHJlcG9ydEZhbHNlKGludGVydmFscy5maW5kKGludGVydmFsID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGFjY2VwdGFibGVMb3dlckJvdW5kcyA9IHN0ZXAuTWV0cmljSW50ZXJ2YWxMb3dlckJvdW5kID09PSAtSW5maW5pdHkgPyBbdW5kZWZpbmVkLCAwXSA6IFt1bmRlZmluZWQsIHN0ZXAuTWV0cmljSW50ZXJ2YWxMb3dlckJvdW5kXTtcbiAgICAgICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTptYXgtbGluZS1sZW5ndGhcbiAgICAgICAgICAgIGNvbnN0IGFjY2VwdGFibGVVcHBlckJvdW5kcyA9IHN0ZXAuTWV0cmljSW50ZXJ2YWxVcHBlckJvdW5kID09PSBJbmZpbml0eSA/IFt1bmRlZmluZWQsIEluZmluaXR5XSA6IFt1bmRlZmluZWQsIHN0ZXAuTWV0cmljSW50ZXJ2YWxVcHBlckJvdW5kXTtcblxuICAgICAgICAgICAgcmV0dXJuIChhY2NlcHRhYmxlTG93ZXJCb3VuZHMuaW5jbHVkZXMoaW50ZXJ2YWwubG93ZXIpICYmIGFjY2VwdGFibGVVcHBlckJvdW5kcy5pbmNsdWRlcyhpbnRlcnZhbC51cHBlcikpO1xuICAgICAgICAgIH0pICE9PSB1bmRlZmluZWQsIHN0ZXAsIGludGVydmFscyk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICkpO1xuXG4gICAgdGVzdC5kb25lKCk7XG4gIH0sXG5cbiAgJ2xvd2VyIGFsYXJtIHVzZXMgbG93ZXIgcG9saWN5Jyh0ZXN0OiBUZXN0KSB7XG4gICAgZmMuYXNzZXJ0KGZjLnByb3BlcnR5KFxuICAgICAgYXJiaXRyYXJ5X2lucHV0X2ludGVydmFscygpLFxuICAgICAgKGludGVydmFscykgPT4ge1xuICAgICAgICBjb25zdCB0ZW1wbGF0ZSA9IHNldHVwU3RlcFNjYWxpbmcoaW50ZXJ2YWxzKTtcbiAgICAgICAgY29uc3QgYWxhcm0gPSB0ZW1wbGF0ZS5yZXNvdXJjZSh0ZW1wbGF0ZS5sb3dlckFsYXJtKTtcbiAgICAgICAgZmMucHJlKGFsYXJtICE9PSB1bmRlZmluZWQpO1xuXG4gICAgICAgIHJldHVybiByZXBvcnRGYWxzZShhbGFybS5Qcm9wZXJ0aWVzLkFsYXJtQWN0aW9uc1swXS5SZWYgPT09IHRlbXBsYXRlLmxvd2VyUG9saWN5LCBhbGFybSk7XG4gICAgICB9XG4gICAgKSk7XG5cbiAgICB0ZXN0LmRvbmUoKTtcbiAgfSxcblxuICAndXBwZXIgYWxhcm0gdXNlcyB1cHBlciBwb2xpY3knKHRlc3Q6IFRlc3QpIHtcbiAgICBmYy5hc3NlcnQoZmMucHJvcGVydHkoXG4gICAgICBhcmJpdHJhcnlfaW5wdXRfaW50ZXJ2YWxzKCksXG4gICAgICAoaW50ZXJ2YWxzKSA9PiB7XG4gICAgICAgIGNvbnN0IHRlbXBsYXRlID0gc2V0dXBTdGVwU2NhbGluZyhpbnRlcnZhbHMpO1xuICAgICAgICBjb25zdCBhbGFybSA9IHRlbXBsYXRlLnJlc291cmNlKHRlbXBsYXRlLnVwcGVyQWxhcm0pO1xuICAgICAgICBmYy5wcmUoYWxhcm0gIT09IHVuZGVmaW5lZCk7XG5cbiAgICAgICAgcmV0dXJuIHJlcG9ydEZhbHNlKGFsYXJtLlByb3BlcnRpZXMuQWxhcm1BY3Rpb25zWzBdLlJlZiA9PT0gdGVtcGxhdGUudXBwZXJQb2xpY3ksIGFsYXJtKTtcbiAgICAgIH1cbiAgICApKTtcblxuICAgIHRlc3QuZG9uZSgpO1xuICB9LFxufTtcblxuLyoqXG4gKiBTeW50aGVzaXplIHRoZSBnaXZlbiBzdGVwIHNjYWxpbmcgc2V0dXAgdG8gYSB0ZW1wbGF0ZVxuICovXG5mdW5jdGlvbiBzZXR1cFN0ZXBTY2FsaW5nKGludGVydmFsczogYXBwc2NhbGluZy5TY2FsaW5nSW50ZXJ2YWxbXSkge1xuICBjb25zdCBzdGFjayA9IG5ldyBjZGsuU3RhY2soKTtcbiAgY29uc3QgdGFyZ2V0ID0gY3JlYXRlU2NhbGFibGVUYXJnZXQoc3RhY2spO1xuXG4gIHRhcmdldC5zY2FsZU9uTWV0cmljKCdTY2FsZUludGVydmFsJywge1xuICAgIG1ldHJpYzogbmV3IGNsb3Vkd2F0Y2guTWV0cmljKHsgbmFtZXNwYWNlOiAnVGVzdCcsIG1ldHJpY05hbWU6ICdTdWNjZXNzJyB9KSxcbiAgICBzY2FsaW5nU3RlcHM6IGludGVydmFsc1xuICB9KTtcblxuICByZXR1cm4gbmV3IFNjYWxpbmdTdGFja1RlbXBsYXRlKHN0YWNrLl90b0Nsb3VkRm9ybWF0aW9uKCkpO1xufVxuXG5jbGFzcyBTY2FsaW5nU3RhY2tUZW1wbGF0ZSB7XG4gIHB1YmxpYyByZWFkb25seSBsb3dlclBvbGljeSA9ICdUYXJnZXRTY2FsZUludGVydmFsTG93ZXJQb2xpY3k2RjI2RDU5Nyc7XG4gIHB1YmxpYyByZWFkb25seSBsb3dlckFsYXJtID0gJ1RhcmdldFNjYWxlSW50ZXJ2YWxMb3dlckFsYXJtNEI1Q0U4NjknO1xuICBwdWJsaWMgcmVhZG9ubHkgdXBwZXJQb2xpY3kgPSAnVGFyZ2V0U2NhbGVJbnRlcnZhbFVwcGVyUG9saWN5N0M3NTExMzInO1xuICBwdWJsaWMgcmVhZG9ubHkgdXBwZXJBbGFybSA9ICdUYXJnZXRTY2FsZUludGVydmFsVXBwZXJBbGFybTY5RkQxQkJCJztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHRlbXBsYXRlOiBhbnkpIHtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbG93ZXJUaHJlc2hvbGQoKSB7XG4gICAgcmV0dXJuIHRoaXMudGhyZXNob2xkKHRoaXMubG93ZXJBbGFybSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHVwcGVyVGhyZXNob2xkKCkge1xuICAgIHJldHVybiB0aGlzLnRocmVzaG9sZCh0aGlzLnVwcGVyQWxhcm0pO1xuICB9XG5cbiAgcHVibGljIGdldCBsb3dlclN0ZXBzKCkge1xuICAgIHJldHVybiB0aGlzLnN0ZXBzKHRoaXMubG93ZXJQb2xpY3kpO1xuICB9XG5cbiAgcHVibGljIGdldCB1cHBlclN0ZXBzKCkge1xuICAgIHJldHVybiB0aGlzLnN0ZXBzKHRoaXMudXBwZXJQb2xpY3kpO1xuICB9XG5cbiAgcHVibGljIGFsbFN0ZXBzQWJzb2x1dGUoKSB7XG4gICAgY29uc3QgcmV0ID0gbmV3IEFycmF5PFRlbXBsYXRlU3RlcD4oKTtcbiAgICBjb25zdCBsb3dlclRocmVzaG9sZCA9IHRoaXMubG93ZXJUaHJlc2hvbGQ7XG4gICAgaWYgKGxvd2VyVGhyZXNob2xkICE9PSB1bmRlZmluZWQpIHsgcmV0LnB1c2goLi4udGhpcy5sb3dlclN0ZXBzIS5tYXAoeCA9PiBtYWtlQWJzb2x1dGUobG93ZXJUaHJlc2hvbGQsIHgpKSk7IH1cblxuICAgIGNvbnN0IHVwcGVyVGhyZXNob2xkID0gdGhpcy51cHBlclRocmVzaG9sZDtcbiAgICBpZiAodXBwZXJUaHJlc2hvbGQgIT09IHVuZGVmaW5lZCkgeyByZXQucHVzaCguLi50aGlzLnVwcGVyU3RlcHMhLm1hcCh4ID0+IG1ha2VBYnNvbHV0ZSh1cHBlclRocmVzaG9sZCwgeCkpKTsgfVxuXG4gICAgcmV0dXJuIHJldDtcbiAgfVxuXG4gIHB1YmxpYyByZXNvdXJjZShpZDogc3RyaW5nKTogb2JqZWN0IHwgYW55IHtcbiAgICByZXR1cm4gdGhpcy50ZW1wbGF0ZS5SZXNvdXJjZXNbaWRdO1xuICB9XG5cbiAgcHJpdmF0ZSB0aHJlc2hvbGQoaWQ6IHN0cmluZyk6IG51bWJlciB8IHVuZGVmaW5lZCAge1xuICAgIHJldHVybiBhcHBseSh0aGlzLnJlc291cmNlKGlkKSwgeCA9PiB4LlByb3BlcnRpZXMuVGhyZXNob2xkKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RlcHMoaWQ6IHN0cmluZyk6IFRlbXBsYXRlU3RlcFtdIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gYXBwbHkodGhpcy5yZXNvdXJjZShpZCksIHggPT4geC5Qcm9wZXJ0aWVzLlN0ZXBTY2FsaW5nUG9saWN5Q29uZmlndXJhdGlvbi5TdGVwQWRqdXN0bWVudHMpO1xuICB9XG59XG5cbmludGVyZmFjZSBUZW1wbGF0ZVN0ZXAge1xuICBNZXRyaWNJbnRlcnZhbExvd2VyQm91bmQ/OiBudW1iZXI7XG4gIE1ldHJpY0ludGVydmFsVXBwZXJCb3VuZD86IG51bWJlcjtcbiAgU2NhbGluZ0FkanVzdG1lbnQ6IG51bWJlcjtcbn1cblxuZnVuY3Rpb24gbWFrZUFic29sdXRlKHRocmVzaG9sZDogbnVtYmVyLCBzdGVwOiBUZW1wbGF0ZVN0ZXApIHtcbiAgcmV0dXJuIGNvbmNyZXRlKHtcbiAgICBNZXRyaWNJbnRlcnZhbExvd2VyQm91bmQ6IGFwcGx5KHN0ZXAuTWV0cmljSW50ZXJ2YWxMb3dlckJvdW5kLCB4ID0+IHggKyB0aHJlc2hvbGQpLFxuICAgIE1ldHJpY0ludGVydmFsVXBwZXJCb3VuZDogYXBwbHkoc3RlcC5NZXRyaWNJbnRlcnZhbFVwcGVyQm91bmQsIHggPT4geCArIHRocmVzaG9sZCksXG4gICAgU2NhbGluZ0FkanVzdG1lbnQ6IHN0ZXAuU2NhbGluZ0FkanVzdG1lbnRcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIG92ZXJsYXBzKGE6IFRlbXBsYXRlU3RlcCwgYjogVGVtcGxhdGVTdGVwKSB7XG4gIHJldHVybiAoYS5NZXRyaWNJbnRlcnZhbExvd2VyQm91bmQhIDwgYi5NZXRyaWNJbnRlcnZhbFVwcGVyQm91bmQhXG4gICAgJiYgYS5NZXRyaWNJbnRlcnZhbFVwcGVyQm91bmQhID4gYi5NZXRyaWNJbnRlcnZhbExvd2VyQm91bmQhKTtcbn1cblxuZnVuY3Rpb24gY29uY3JldGUoc3RlcDogVGVtcGxhdGVTdGVwKSB7XG4gIHJldHVybiB7XG4gICAgTWV0cmljSW50ZXJ2YWxMb3dlckJvdW5kOiBpZlVuZGVmaW5lZChzdGVwLk1ldHJpY0ludGVydmFsTG93ZXJCb3VuZCwgLUluZmluaXR5KSxcbiAgICBNZXRyaWNJbnRlcnZhbFVwcGVyQm91bmQ6IGlmVW5kZWZpbmVkKHN0ZXAuTWV0cmljSW50ZXJ2YWxVcHBlckJvdW5kLCBJbmZpbml0eSksXG4gICAgU2NhbGluZ0FkanVzdG1lbnQ6IHN0ZXAuU2NhbGluZ0FkanVzdG1lbnRcbiAgfTtcbn1cblxuZnVuY3Rpb24gaWZVbmRlZmluZWQ8VD4oeDogVCB8IHVuZGVmaW5lZCwgZGVmOiBUKTogVCB7XG4gIHJldHVybiB4ICE9PSB1bmRlZmluZWQgPyB4IDogZGVmO1xufVxuXG5mdW5jdGlvbiBhcHBseTxULCBVPih4OiBUIHwgdW5kZWZpbmVkLCBmOiAoeDogVCkgPT4gVSB8IHVuZGVmaW5lZCk6IFUgfCB1bmRlZmluZWQge1xuICBpZiAoeCA9PT0gdW5kZWZpbmVkKSB7IHJldHVybiB1bmRlZmluZWQ7IH1cbiAgcmV0dXJuIGYoeCk7XG59XG5cbi8qKlxuICogSGVscGVyIGZ1bmN0aW9uIHRvIHByaW50IHZhcmlhYmxlcyBpbiBjYXNlIG9mIGEgZmFpbGluZyBwcm9wZXJ0eSBjaGVja1xuICovXG5mdW5jdGlvbiByZXBvcnRGYWxzZShjb25kOiBib29sZWFuLCAuLi5yZXByOiBhbnlbXSkge1xuICBpZiAoIWNvbmQpIHtcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tY29uc29sZVxuICAgIGNvbnNvbGUuZXJyb3IoJ1BST1BFUlRZIEZBSUxTIE9OOicsIC4uLnJlcHIpO1xuICB9XG4gIHJldHVybiBjb25kO1xufSJdfQ==

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

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