aws-cdk 2.1020.2 → 2.1022.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +100 -55
- package/THIRD_PARTY_LICENSES +65 -65
- package/build-info.json +2 -2
- package/db.json.gz +0 -0
- package/lib/api/refactor.d.ts +1 -0
- package/lib/api/refactor.js +8 -0
- package/lib/cli/cdk-toolkit.d.ts +19 -21
- package/lib/cli/cdk-toolkit.js +145 -141
- package/lib/cli/cli-config.js +19 -13
- package/lib/cli/cli-type-registry.json +29 -12
- package/lib/cli/cli.js +76 -22
- package/lib/cli/convert-to-user-input.js +16 -6
- package/lib/cli/display-version.d.ts +11 -0
- package/lib/cli/display-version.js +101 -0
- package/lib/cli/io-host/cli-io-host.d.ts +11 -11
- package/lib/cli/io-host/cli-io-host.js +68 -24
- package/lib/cli/parse-command-line-arguments.js +29 -11
- package/lib/cli/platform-warnings.d.ts +2 -1
- package/lib/cli/platform-warnings.js +3 -4
- package/lib/cli/telemetry/collect-telemetry.d.ts +5 -0
- package/lib/cli/telemetry/collect-telemetry.js +15 -0
- package/lib/cli/telemetry/endpoint-sink.d.ts +1 -2
- package/lib/cli/telemetry/endpoint-sink.js +4 -3
- package/lib/cli/telemetry/error.d.ts +2 -0
- package/lib/cli/telemetry/error.js +16 -0
- package/lib/cli/telemetry/feature-flags.d.ts +96 -0
- package/lib/cli/telemetry/feature-flags.js +103 -0
- package/lib/cli/telemetry/file-sink.js +8 -12
- package/lib/cli/telemetry/installation-id.d.ts +5 -0
- package/lib/cli/telemetry/installation-id.js +47 -0
- package/lib/cli/telemetry/library-version.d.ts +2 -0
- package/lib/cli/telemetry/library-version.js +30 -0
- package/lib/cli/telemetry/messages.d.ts +40 -0
- package/lib/cli/telemetry/messages.js +65 -0
- package/lib/cli/telemetry/sanitation.d.ts +100 -0
- package/lib/cli/telemetry/sanitation.js +79 -0
- package/lib/cli/telemetry/schema.d.ts +47 -19
- package/lib/cli/telemetry/schema.js +10 -1
- package/lib/cli/telemetry/session.d.ts +33 -0
- package/lib/cli/telemetry/session.js +130 -0
- package/lib/cli/user-configuration.d.ts +14 -4
- package/lib/cli/user-configuration.js +42 -30
- package/lib/cli/user-input.d.ts +31 -13
- package/lib/cli/user-input.js +1 -1
- package/lib/cli/util/ci.d.ts +5 -0
- package/lib/cli/util/ci.js +11 -0
- package/lib/cli/util/yargs-helpers.d.ts +1 -1
- package/lib/cli/util/yargs-helpers.js +7 -7
- package/lib/cli/version.d.ts +2 -12
- package/lib/cli/version.js +5 -103
- package/lib/commands/context.d.ts +10 -5
- package/lib/commands/context.js +35 -35
- package/lib/commands/docs.d.ts +6 -1
- package/lib/commands/docs.js +20 -19
- package/lib/commands/doctor.d.ts +4 -1
- package/lib/commands/doctor.js +17 -17
- package/lib/commands/flags.d.ts +3 -0
- package/lib/commands/flags.js +43 -0
- package/lib/commands/init/init-hooks.d.ts +2 -1
- package/lib/commands/init/init-hooks.js +6 -6
- package/lib/commands/init/init.d.ts +4 -2
- package/lib/commands/init/init.js +56 -54
- package/lib/commands/init/os.d.ts +2 -1
- package/lib/commands/init/os.js +3 -4
- package/lib/commands/list-stacks.js +8 -2
- package/lib/commands/migrate.d.ts +6 -17
- package/lib/commands/migrate.js +28 -29
- package/lib/cxapp/cloud-assembly.js +1 -1
- package/lib/cxapp/cloud-executable.js +41 -26
- package/lib/index.d.ts +1 -1
- package/lib/index.js +46764 -31086
- package/lib/index_bg.wasm +0 -0
- package/lib/init-templates/.init-version.json +1 -1
- package/lib/init-templates/.recommended-feature-flags.json +1 -0
- package/lib/{legacy-aws-auth.d.ts → legacy/aws-auth.d.ts} +1 -1
- package/lib/legacy/aws-auth.js +47 -0
- package/lib/legacy/configuration.d.ts +82 -0
- package/lib/legacy/configuration.js +321 -0
- package/lib/legacy/index.d.ts +19 -0
- package/lib/{legacy-exports-source.js → legacy/index.js} +23 -23
- package/lib/{legacy-logging-source.d.ts → legacy/logging.d.ts} +50 -0
- package/lib/legacy/logging.js +154 -0
- package/lib/legacy/types.js +3 -0
- package/lib/legacy-exports.d.ts +4 -3
- package/lib/legacy-exports.js +4 -1
- package/package.json +15 -15
- package/lib/legacy-aws-auth.js +0 -47
- package/lib/legacy-exports-source.d.ts +0 -18
- package/lib/legacy-logging-source.js +0 -107
- package/lib/legacy-types.js +0 -3
- package/lib/logging.d.ts +0 -99
- package/lib/logging.js +0 -146
- /package/lib/{legacy-types.d.ts → legacy/types.d.ts} +0 -0
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.cdkCliErrorName = cdkCliErrorName;
|
|
4
|
+
const schema_1 = require("./schema");
|
|
5
|
+
function cdkCliErrorName(name) {
|
|
6
|
+
// We only record error names that we control. Errors coming from dependencies
|
|
7
|
+
// contain text that we have no control over so it is safer to not send it.
|
|
8
|
+
if (!isKnownErrorName(name)) {
|
|
9
|
+
return schema_1.ErrorName.UNKNOWN_ERROR;
|
|
10
|
+
}
|
|
11
|
+
return name;
|
|
12
|
+
}
|
|
13
|
+
function isKnownErrorName(name) {
|
|
14
|
+
return Object.values(schema_1.ErrorName).includes(name);
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJlcnJvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUVBLDBDQU9DO0FBVEQscUNBQXFDO0FBRXJDLFNBQWdCLGVBQWUsQ0FBQyxJQUFZO0lBQzFDLDhFQUE4RTtJQUM5RSwyRUFBMkU7SUFDM0UsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDNUIsT0FBTyxrQkFBUyxDQUFDLGFBQWEsQ0FBQztJQUNqQyxDQUFDO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBRUQsU0FBUyxnQkFBZ0IsQ0FBQyxJQUFZO0lBQ3BDLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxrQkFBUyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQWlCLENBQUMsQ0FBQztBQUM5RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXJyb3JOYW1lIH0gZnJvbSAnLi9zY2hlbWEnO1xuXG5leHBvcnQgZnVuY3Rpb24gY2RrQ2xpRXJyb3JOYW1lKG5hbWU6IHN0cmluZyk6IEVycm9yTmFtZSB7XG4gIC8vIFdlIG9ubHkgcmVjb3JkIGVycm9yIG5hbWVzIHRoYXQgd2UgY29udHJvbC4gRXJyb3JzIGNvbWluZyBmcm9tIGRlcGVuZGVuY2llc1xuICAvLyBjb250YWluIHRleHQgdGhhdCB3ZSBoYXZlIG5vIGNvbnRyb2wgb3ZlciBzbyBpdCBpcyBzYWZlciB0byBub3Qgc2VuZCBpdC5cbiAgaWYgKCFpc0tub3duRXJyb3JOYW1lKG5hbWUpKSB7XG4gICAgcmV0dXJuIEVycm9yTmFtZS5VTktOT1dOX0VSUk9SO1xuICB9XG4gIHJldHVybiBuYW1lO1xufVxuXG5mdW5jdGlvbiBpc0tub3duRXJyb3JOYW1lKG5hbWU6IHN0cmluZyk6IG5hbWUgaXMgRXJyb3JOYW1lIHtcbiAgcmV0dXJuIE9iamVjdC52YWx1ZXMoRXJyb3JOYW1lKS5pbmNsdWRlcyhuYW1lIGFzIEVycm9yTmFtZSk7XG59XG4iXX0=
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Enum of all valid CDK feature flag names.
|
|
3
|
+
*
|
|
4
|
+
* These flags are used to control behavior changes in the CDK.
|
|
5
|
+
* For more information, see: https://github.com/aws/aws-cdk/blob/main/packages/aws-cdk-lib/cx-api/FEATURE_FLAGS.md
|
|
6
|
+
*/
|
|
7
|
+
export declare enum FeatureFlag {
|
|
8
|
+
CORE_NEW_STYLE_STACK_SYNTHESIS = "@aws-cdk/core:newStyleStackSynthesis",
|
|
9
|
+
CORE_STACK_RELATIVE_EXPORTS = "@aws-cdk/core:stackRelativeExports",
|
|
10
|
+
RDS_LOWERCASE_DB_IDENTIFIER = "@aws-cdk/aws-rds:lowercaseDbIdentifier",
|
|
11
|
+
APIGATEWAY_USAGE_PLAN_KEY_ORDER_INSENSITIVE_ID = "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId",
|
|
12
|
+
LAMBDA_RECOGNIZE_VERSION_PROPS = "@aws-cdk/aws-lambda:recognizeVersionProps",
|
|
13
|
+
CLOUDFRONT_DEFAULT_SECURITY_POLICY_TLS_V1_2_2021 = "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021",
|
|
14
|
+
CORE_TARGET_PARTITIONS = "@aws-cdk/core:target-partitions",
|
|
15
|
+
ECS_SERVICE_EXTENSIONS_ENABLE_DEFAULT_LOG_DRIVER = "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver",
|
|
16
|
+
EC2_UNIQUE_IMDSV2_TEMPLATE_NAME = "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName",
|
|
17
|
+
IAM_MINIMIZE_POLICIES = "@aws-cdk/aws-iam:minimizePolicies",
|
|
18
|
+
CORE_CHECK_SECRET_USAGE = "@aws-cdk/core:checkSecretUsage",
|
|
19
|
+
LAMBDA_RECOGNIZE_LAYER_VERSION = "@aws-cdk/aws-lambda:recognizeLayerVersion",
|
|
20
|
+
CORE_VALIDATE_SNAPSHOT_REMOVAL_POLICY = "@aws-cdk/core:validateSnapshotRemovalPolicy",
|
|
21
|
+
CODEPIPELINE_CROSS_ACCOUNT_KEY_ALIAS_STACK_SAFE_RESOURCE_NAME = "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName",
|
|
22
|
+
S3_CREATE_DEFAULT_LOGGING_POLICY = "@aws-cdk/aws-s3:createDefaultLoggingPolicy",
|
|
23
|
+
SNS_SUBSCRIPTIONS_RESTRICT_SQS_DECRYPTION = "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption",
|
|
24
|
+
ECS_ARN_FORMAT_INCLUDES_CLUSTER_NAME = "@aws-cdk/aws-ecs:arnFormatIncludesClusterName",
|
|
25
|
+
APIGATEWAY_DISABLE_CLOUD_WATCH_ROLE = "@aws-cdk/aws-apigateway:disableCloudWatchRole",
|
|
26
|
+
CORE_ENABLE_PARTITION_LITERALS = "@aws-cdk/core:enablePartitionLiterals",
|
|
27
|
+
ECS_DISABLE_EXPLICIT_DEPLOYMENT_CONTROLLER_FOR_CIRCUIT_BREAKER = "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker",
|
|
28
|
+
EVENTS_EVENTS_TARGET_QUEUE_SAME_ACCOUNT = "@aws-cdk/aws-events:eventsTargetQueueSameAccount",
|
|
29
|
+
IAM_IMPORTED_ROLE_STACK_SAFE_DEFAULT_POLICY_NAME = "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName",
|
|
30
|
+
S3_SERVER_ACCESS_LOGS_USE_BUCKET_POLICY = "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy",
|
|
31
|
+
CUSTOMRESOURCES_INSTALL_LATEST_AWS_SDK_DEFAULT = "@aws-cdk/customresources:installLatestAwsSdkDefault",
|
|
32
|
+
ROUTE53_PATTERNS_USE_CERTIFICATE = "@aws-cdk/aws-route53-patterns:useCertificate",
|
|
33
|
+
CODEDEPLOY_REMOVE_ALARMS_FROM_DEPLOYMENT_GROUP = "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup",
|
|
34
|
+
RDS_DATABASE_PROXY_UNIQUE_RESOURCE_NAME = "@aws-cdk/aws-rds:databaseProxyUniqueResourceName",
|
|
35
|
+
APIGATEWAY_AUTHORIZER_CHANGE_DEPLOYMENT_LOGICAL_ID = "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId",
|
|
36
|
+
EC2_LAUNCH_TEMPLATE_DEFAULT_USER_DATA = "@aws-cdk/aws-ec2:launchTemplateDefaultUserData",
|
|
37
|
+
SECRETSMANAGER_USE_ATTACHED_SECRET_RESOURCE_POLICY_FOR_SECRET_TARGET_ATTACHMENTS = "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments",
|
|
38
|
+
REDSHIFT_COLUMN_ID = "@aws-cdk/aws-redshift:columnId",
|
|
39
|
+
STEPFUNCTIONS_TASKS_ENABLE_EMR_SERVICE_POLICY_V2 = "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2",
|
|
40
|
+
APIGATEWAY_REQUEST_VALIDATOR_UNIQUE_ID = "@aws-cdk/aws-apigateway:requestValidatorUniqueId",
|
|
41
|
+
EC2_RESTRICT_DEFAULT_SECURITY_GROUP = "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup",
|
|
42
|
+
KMS_ALIAS_NAME_REF = "@aws-cdk/aws-kms:aliasNameRef",
|
|
43
|
+
CORE_INCLUDE_PREFIX_IN_UNIQUE_NAME_GENERATION = "@aws-cdk/core:includePrefixInUniqueNameGeneration",
|
|
44
|
+
AUTOSCALING_GENERATE_LAUNCH_TEMPLATE_INSTEAD_OF_LAUNCH_CONFIG = "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig",
|
|
45
|
+
OPENSEARCHSERVICE_ENABLE_OPENSEARCH_MULTI_AZ_WITH_STANDBY = "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby",
|
|
46
|
+
EFS_DENY_ANONYMOUS_ACCESS = "@aws-cdk/aws-efs:denyAnonymousAccess",
|
|
47
|
+
EFS_MOUNT_TARGET_ORDER_INSENSITIVE_LOGICAL_ID = "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId",
|
|
48
|
+
LAMBDA_NODEJS_USE_LATEST_RUNTIME_VERSION = "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion",
|
|
49
|
+
APPSYNC_USE_ARN_FOR_SOURCE_API_ASSOCIATION_IDENTIFIER = "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier",
|
|
50
|
+
RDS_AURORA_CLUSTER_CHANGE_SCOPE_OF_INSTANCE_PARAMETER_GROUP_WITH_EACH_PARAMETERS = "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters",
|
|
51
|
+
RDS_PREVENT_RENDERING_DEPRECATED_CREDENTIALS = "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials",
|
|
52
|
+
CODEPIPELINE_ACTIONS_USE_NEW_DEFAULT_BRANCH_FOR_CODE_COMMIT_SOURCE = "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource",
|
|
53
|
+
CLOUDWATCH_ACTIONS_CHANGE_LAMBDA_PERMISSION_LOGICAL_ID_FOR_LAMBDA_ACTION = "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction",
|
|
54
|
+
CODEPIPELINE_CROSS_ACCOUNT_KEYS_DEFAULT_VALUE_TO_FALSE = "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse",
|
|
55
|
+
CODEPIPELINE_DEFAULT_PIPELINE_TYPE_TO_V2 = "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2",
|
|
56
|
+
KMS_REDUCE_CROSS_ACCOUNT_REGION_POLICY_SCOPE = "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope",
|
|
57
|
+
EKS_NODEGROUP_NAME_ATTRIBUTE = "@aws-cdk/aws-eks:nodegroupNameAttribute",
|
|
58
|
+
EC2_EBS_DEFAULT_GP3_VOLUME = "@aws-cdk/aws-ec2:ebsDefaultGp3Volume",
|
|
59
|
+
PIPELINES_REDUCE_ASSET_ROLE_TRUST_SCOPE = "@aws-cdk/pipelines:reduceAssetRoleTrustScope",
|
|
60
|
+
ECS_REMOVE_DEFAULT_DEPLOYMENT_ALARM = "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm",
|
|
61
|
+
CUSTOM_RESOURCES_LOG_API_RESPONSE_DATA_PROPERTY_TRUE_DEFAULT = "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault",
|
|
62
|
+
S3_KEEP_NOTIFICATION_IN_IMPORTED_BUCKET = "@aws-cdk/aws-s3:keepNotificationInImportedBucket",
|
|
63
|
+
STEPFUNCTIONS_TASKS_USE_NEW_S3_URI_PARAMETERS_FOR_BEDROCK_INVOKE_MODEL_TASK = "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask",
|
|
64
|
+
ECS_REDUCE_EC2_FARGATE_CLOUD_WATCH_PERMISSIONS = "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions",
|
|
65
|
+
EC2_EC2_SUM_TIMEOUT_ENABLED = "@aws-cdk/aws-ec2:ec2SumTimeoutEnabled",
|
|
66
|
+
APPSYNC_APP_SYNC_GRAPHQL_API_SCOPE_LAMBDA_PERMISSION = "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission",
|
|
67
|
+
LAMBDA_NODEJS_SDK_V3_EXCLUDE_SMITHY_PACKAGES = "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages",
|
|
68
|
+
RDS_SET_CORRECT_VALUE_FOR_DATABASE_INSTANCE_READ_REPLICA_INSTANCE_RESOURCE_ID = "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId",
|
|
69
|
+
CORE_CFN_INCLUDE_REJECT_COMPLEX_RESOURCE_UPDATE_CREATE_POLICY_INTRINSICS = "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics",
|
|
70
|
+
STEPFUNCTIONS_TASKS_FIX_RUN_ECS_TASK_POLICY = "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy",
|
|
71
|
+
DYNAMODB_RESOURCE_POLICY_PER_REPLICA = "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica",
|
|
72
|
+
EC2_BASTION_HOST_USE_AMAZON_LINUX_2023_BY_DEFAULT = "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault",
|
|
73
|
+
CORE_ASPECT_STABILIZATION = "@aws-cdk/core:aspectStabilization",
|
|
74
|
+
ROUTE53_TARGETS_USER_POOL_DOMAIN_NAME_METHOD_WITHOUT_CUSTOM_RESOURCE = "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource",
|
|
75
|
+
ECS_DISABLE_ECS_IMDS_BLOCKING = "@aws-cdk/aws-ecs:disableEcsImdsBlocking",
|
|
76
|
+
ECS_ENABLE_IMDS_BLOCKING_DEPRECATED_FEATURE = "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature",
|
|
77
|
+
ELASTICLOADBALANCINGV2_ALB_DUALSTACK_WITHOUT_PUBLIC_IPV4_SECURITY_GROUP_RULES_DEFAULT = "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault",
|
|
78
|
+
IAM_OIDC_REJECT_UNAUTHORIZED_CONNECTIONS = "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections",
|
|
79
|
+
CORE_ENABLE_ADDITIONAL_METADATA_COLLECTION = "@aws-cdk/core:enableAdditionalMetadataCollection",
|
|
80
|
+
LAMBDA_CREATE_NEW_POLICIES_WITH_ADD_TO_ROLE_POLICY = "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy",
|
|
81
|
+
S3_SET_UNIQUE_REPLICATION_ROLE_NAME = "@aws-cdk/aws-s3:setUniqueReplicationRoleName",
|
|
82
|
+
PIPELINES_REDUCE_STAGE_ROLE_TRUST_SCOPE = "@aws-cdk/pipelines:reduceStageRoleTrustScope",
|
|
83
|
+
EVENTS_REQUIRE_EVENT_BUS_POLICY_SID = "@aws-cdk/aws-events:requireEventBusPolicySid",
|
|
84
|
+
DYNAMODB_RETAIN_TABLE_REPLICA = "@aws-cdk/aws-dynamodb:retainTableReplica",
|
|
85
|
+
COGNITO_LOG_USER_POOL_CLIENT_SECRET_VALUE = "@aws-cdk/cognito:logUserPoolClientSecretValue",
|
|
86
|
+
STEPFUNCTIONS_USE_DISTRIBUTED_MAP_RESULT_WRITER_V2 = "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2",
|
|
87
|
+
PIPELINES_REDUCE_CROSS_ACCOUNT_ACTION_ROLE_TRUST_SCOPE = "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope",
|
|
88
|
+
CORE_ASPECT_PRIORITIES_MUTATING = "@aws-cdk/core:aspectPrioritiesMutating",
|
|
89
|
+
S3_NOTIFICATIONS_ADD_S3_TRUST_KEY_POLICY_FOR_SNS_SUBSCRIPTIONS = "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions",
|
|
90
|
+
EC2_ALPHA_USE_RESOURCE_ID_FOR_VPC_V2_MIGRATION = "@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration",
|
|
91
|
+
EC2_REQUIRE_PRIVATE_SUBNETS_FOR_EGRESS_ONLY_INTERNET_GATEWAY = "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway",
|
|
92
|
+
S3_PUBLIC_ACCESS_BLOCKED_BY_DEFAULT = "@aws-cdk/aws-s3:publicAccessBlockedByDefault",
|
|
93
|
+
LAMBDA_USE_CDK_MANAGED_LOG_GROUP = "@aws-cdk/aws-lambda:useCdkManagedLogGroup",
|
|
94
|
+
KMS_APPLY_IMPORTED_ALIAS_PERMISSIONS_TO_PRINCIPAL = "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal",
|
|
95
|
+
CORE_EXPLICIT_STACK_TAGS = "@aws-cdk/core:explicitStackTags"
|
|
96
|
+
}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FeatureFlag = void 0;
|
|
4
|
+
// TODO: implement this by bundling the source of truth with the CDK CLI
|
|
5
|
+
// We are currently hardcoding these values to facilitate a quicker release.
|
|
6
|
+
/**
|
|
7
|
+
* Enum of all valid CDK feature flag names.
|
|
8
|
+
*
|
|
9
|
+
* These flags are used to control behavior changes in the CDK.
|
|
10
|
+
* For more information, see: https://github.com/aws/aws-cdk/blob/main/packages/aws-cdk-lib/cx-api/FEATURE_FLAGS.md
|
|
11
|
+
*/
|
|
12
|
+
var FeatureFlag;
|
|
13
|
+
(function (FeatureFlag) {
|
|
14
|
+
FeatureFlag["CORE_NEW_STYLE_STACK_SYNTHESIS"] = "@aws-cdk/core:newStyleStackSynthesis";
|
|
15
|
+
FeatureFlag["CORE_STACK_RELATIVE_EXPORTS"] = "@aws-cdk/core:stackRelativeExports";
|
|
16
|
+
FeatureFlag["RDS_LOWERCASE_DB_IDENTIFIER"] = "@aws-cdk/aws-rds:lowercaseDbIdentifier";
|
|
17
|
+
FeatureFlag["APIGATEWAY_USAGE_PLAN_KEY_ORDER_INSENSITIVE_ID"] = "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId";
|
|
18
|
+
FeatureFlag["LAMBDA_RECOGNIZE_VERSION_PROPS"] = "@aws-cdk/aws-lambda:recognizeVersionProps";
|
|
19
|
+
FeatureFlag["CLOUDFRONT_DEFAULT_SECURITY_POLICY_TLS_V1_2_2021"] = "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021";
|
|
20
|
+
FeatureFlag["CORE_TARGET_PARTITIONS"] = "@aws-cdk/core:target-partitions";
|
|
21
|
+
FeatureFlag["ECS_SERVICE_EXTENSIONS_ENABLE_DEFAULT_LOG_DRIVER"] = "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver";
|
|
22
|
+
FeatureFlag["EC2_UNIQUE_IMDSV2_TEMPLATE_NAME"] = "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName";
|
|
23
|
+
FeatureFlag["IAM_MINIMIZE_POLICIES"] = "@aws-cdk/aws-iam:minimizePolicies";
|
|
24
|
+
FeatureFlag["CORE_CHECK_SECRET_USAGE"] = "@aws-cdk/core:checkSecretUsage";
|
|
25
|
+
FeatureFlag["LAMBDA_RECOGNIZE_LAYER_VERSION"] = "@aws-cdk/aws-lambda:recognizeLayerVersion";
|
|
26
|
+
FeatureFlag["CORE_VALIDATE_SNAPSHOT_REMOVAL_POLICY"] = "@aws-cdk/core:validateSnapshotRemovalPolicy";
|
|
27
|
+
FeatureFlag["CODEPIPELINE_CROSS_ACCOUNT_KEY_ALIAS_STACK_SAFE_RESOURCE_NAME"] = "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName";
|
|
28
|
+
FeatureFlag["S3_CREATE_DEFAULT_LOGGING_POLICY"] = "@aws-cdk/aws-s3:createDefaultLoggingPolicy";
|
|
29
|
+
FeatureFlag["SNS_SUBSCRIPTIONS_RESTRICT_SQS_DECRYPTION"] = "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption";
|
|
30
|
+
FeatureFlag["ECS_ARN_FORMAT_INCLUDES_CLUSTER_NAME"] = "@aws-cdk/aws-ecs:arnFormatIncludesClusterName";
|
|
31
|
+
FeatureFlag["APIGATEWAY_DISABLE_CLOUD_WATCH_ROLE"] = "@aws-cdk/aws-apigateway:disableCloudWatchRole";
|
|
32
|
+
FeatureFlag["CORE_ENABLE_PARTITION_LITERALS"] = "@aws-cdk/core:enablePartitionLiterals";
|
|
33
|
+
FeatureFlag["ECS_DISABLE_EXPLICIT_DEPLOYMENT_CONTROLLER_FOR_CIRCUIT_BREAKER"] = "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker";
|
|
34
|
+
FeatureFlag["EVENTS_EVENTS_TARGET_QUEUE_SAME_ACCOUNT"] = "@aws-cdk/aws-events:eventsTargetQueueSameAccount";
|
|
35
|
+
FeatureFlag["IAM_IMPORTED_ROLE_STACK_SAFE_DEFAULT_POLICY_NAME"] = "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName";
|
|
36
|
+
FeatureFlag["S3_SERVER_ACCESS_LOGS_USE_BUCKET_POLICY"] = "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy";
|
|
37
|
+
FeatureFlag["CUSTOMRESOURCES_INSTALL_LATEST_AWS_SDK_DEFAULT"] = "@aws-cdk/customresources:installLatestAwsSdkDefault";
|
|
38
|
+
FeatureFlag["ROUTE53_PATTERNS_USE_CERTIFICATE"] = "@aws-cdk/aws-route53-patterns:useCertificate";
|
|
39
|
+
FeatureFlag["CODEDEPLOY_REMOVE_ALARMS_FROM_DEPLOYMENT_GROUP"] = "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup";
|
|
40
|
+
FeatureFlag["RDS_DATABASE_PROXY_UNIQUE_RESOURCE_NAME"] = "@aws-cdk/aws-rds:databaseProxyUniqueResourceName";
|
|
41
|
+
FeatureFlag["APIGATEWAY_AUTHORIZER_CHANGE_DEPLOYMENT_LOGICAL_ID"] = "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId";
|
|
42
|
+
FeatureFlag["EC2_LAUNCH_TEMPLATE_DEFAULT_USER_DATA"] = "@aws-cdk/aws-ec2:launchTemplateDefaultUserData";
|
|
43
|
+
FeatureFlag["SECRETSMANAGER_USE_ATTACHED_SECRET_RESOURCE_POLICY_FOR_SECRET_TARGET_ATTACHMENTS"] = "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments";
|
|
44
|
+
FeatureFlag["REDSHIFT_COLUMN_ID"] = "@aws-cdk/aws-redshift:columnId";
|
|
45
|
+
FeatureFlag["STEPFUNCTIONS_TASKS_ENABLE_EMR_SERVICE_POLICY_V2"] = "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2";
|
|
46
|
+
FeatureFlag["APIGATEWAY_REQUEST_VALIDATOR_UNIQUE_ID"] = "@aws-cdk/aws-apigateway:requestValidatorUniqueId";
|
|
47
|
+
FeatureFlag["EC2_RESTRICT_DEFAULT_SECURITY_GROUP"] = "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup";
|
|
48
|
+
FeatureFlag["KMS_ALIAS_NAME_REF"] = "@aws-cdk/aws-kms:aliasNameRef";
|
|
49
|
+
FeatureFlag["CORE_INCLUDE_PREFIX_IN_UNIQUE_NAME_GENERATION"] = "@aws-cdk/core:includePrefixInUniqueNameGeneration";
|
|
50
|
+
FeatureFlag["AUTOSCALING_GENERATE_LAUNCH_TEMPLATE_INSTEAD_OF_LAUNCH_CONFIG"] = "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig";
|
|
51
|
+
FeatureFlag["OPENSEARCHSERVICE_ENABLE_OPENSEARCH_MULTI_AZ_WITH_STANDBY"] = "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby";
|
|
52
|
+
FeatureFlag["EFS_DENY_ANONYMOUS_ACCESS"] = "@aws-cdk/aws-efs:denyAnonymousAccess";
|
|
53
|
+
FeatureFlag["EFS_MOUNT_TARGET_ORDER_INSENSITIVE_LOGICAL_ID"] = "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId";
|
|
54
|
+
FeatureFlag["LAMBDA_NODEJS_USE_LATEST_RUNTIME_VERSION"] = "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion";
|
|
55
|
+
FeatureFlag["APPSYNC_USE_ARN_FOR_SOURCE_API_ASSOCIATION_IDENTIFIER"] = "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier";
|
|
56
|
+
FeatureFlag["RDS_AURORA_CLUSTER_CHANGE_SCOPE_OF_INSTANCE_PARAMETER_GROUP_WITH_EACH_PARAMETERS"] = "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters";
|
|
57
|
+
FeatureFlag["RDS_PREVENT_RENDERING_DEPRECATED_CREDENTIALS"] = "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials";
|
|
58
|
+
FeatureFlag["CODEPIPELINE_ACTIONS_USE_NEW_DEFAULT_BRANCH_FOR_CODE_COMMIT_SOURCE"] = "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource";
|
|
59
|
+
FeatureFlag["CLOUDWATCH_ACTIONS_CHANGE_LAMBDA_PERMISSION_LOGICAL_ID_FOR_LAMBDA_ACTION"] = "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction";
|
|
60
|
+
FeatureFlag["CODEPIPELINE_CROSS_ACCOUNT_KEYS_DEFAULT_VALUE_TO_FALSE"] = "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse";
|
|
61
|
+
FeatureFlag["CODEPIPELINE_DEFAULT_PIPELINE_TYPE_TO_V2"] = "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2";
|
|
62
|
+
FeatureFlag["KMS_REDUCE_CROSS_ACCOUNT_REGION_POLICY_SCOPE"] = "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope";
|
|
63
|
+
FeatureFlag["EKS_NODEGROUP_NAME_ATTRIBUTE"] = "@aws-cdk/aws-eks:nodegroupNameAttribute";
|
|
64
|
+
FeatureFlag["EC2_EBS_DEFAULT_GP3_VOLUME"] = "@aws-cdk/aws-ec2:ebsDefaultGp3Volume";
|
|
65
|
+
FeatureFlag["PIPELINES_REDUCE_ASSET_ROLE_TRUST_SCOPE"] = "@aws-cdk/pipelines:reduceAssetRoleTrustScope";
|
|
66
|
+
FeatureFlag["ECS_REMOVE_DEFAULT_DEPLOYMENT_ALARM"] = "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm";
|
|
67
|
+
FeatureFlag["CUSTOM_RESOURCES_LOG_API_RESPONSE_DATA_PROPERTY_TRUE_DEFAULT"] = "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault";
|
|
68
|
+
FeatureFlag["S3_KEEP_NOTIFICATION_IN_IMPORTED_BUCKET"] = "@aws-cdk/aws-s3:keepNotificationInImportedBucket";
|
|
69
|
+
FeatureFlag["STEPFUNCTIONS_TASKS_USE_NEW_S3_URI_PARAMETERS_FOR_BEDROCK_INVOKE_MODEL_TASK"] = "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask";
|
|
70
|
+
FeatureFlag["ECS_REDUCE_EC2_FARGATE_CLOUD_WATCH_PERMISSIONS"] = "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions";
|
|
71
|
+
FeatureFlag["EC2_EC2_SUM_TIMEOUT_ENABLED"] = "@aws-cdk/aws-ec2:ec2SumTimeoutEnabled";
|
|
72
|
+
FeatureFlag["APPSYNC_APP_SYNC_GRAPHQL_API_SCOPE_LAMBDA_PERMISSION"] = "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission";
|
|
73
|
+
FeatureFlag["LAMBDA_NODEJS_SDK_V3_EXCLUDE_SMITHY_PACKAGES"] = "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages";
|
|
74
|
+
FeatureFlag["RDS_SET_CORRECT_VALUE_FOR_DATABASE_INSTANCE_READ_REPLICA_INSTANCE_RESOURCE_ID"] = "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId";
|
|
75
|
+
FeatureFlag["CORE_CFN_INCLUDE_REJECT_COMPLEX_RESOURCE_UPDATE_CREATE_POLICY_INTRINSICS"] = "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics";
|
|
76
|
+
FeatureFlag["STEPFUNCTIONS_TASKS_FIX_RUN_ECS_TASK_POLICY"] = "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy";
|
|
77
|
+
FeatureFlag["DYNAMODB_RESOURCE_POLICY_PER_REPLICA"] = "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica";
|
|
78
|
+
FeatureFlag["EC2_BASTION_HOST_USE_AMAZON_LINUX_2023_BY_DEFAULT"] = "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault";
|
|
79
|
+
FeatureFlag["CORE_ASPECT_STABILIZATION"] = "@aws-cdk/core:aspectStabilization";
|
|
80
|
+
FeatureFlag["ROUTE53_TARGETS_USER_POOL_DOMAIN_NAME_METHOD_WITHOUT_CUSTOM_RESOURCE"] = "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource";
|
|
81
|
+
FeatureFlag["ECS_DISABLE_ECS_IMDS_BLOCKING"] = "@aws-cdk/aws-ecs:disableEcsImdsBlocking";
|
|
82
|
+
FeatureFlag["ECS_ENABLE_IMDS_BLOCKING_DEPRECATED_FEATURE"] = "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature";
|
|
83
|
+
FeatureFlag["ELASTICLOADBALANCINGV2_ALB_DUALSTACK_WITHOUT_PUBLIC_IPV4_SECURITY_GROUP_RULES_DEFAULT"] = "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault";
|
|
84
|
+
FeatureFlag["IAM_OIDC_REJECT_UNAUTHORIZED_CONNECTIONS"] = "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections";
|
|
85
|
+
FeatureFlag["CORE_ENABLE_ADDITIONAL_METADATA_COLLECTION"] = "@aws-cdk/core:enableAdditionalMetadataCollection";
|
|
86
|
+
FeatureFlag["LAMBDA_CREATE_NEW_POLICIES_WITH_ADD_TO_ROLE_POLICY"] = "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy";
|
|
87
|
+
FeatureFlag["S3_SET_UNIQUE_REPLICATION_ROLE_NAME"] = "@aws-cdk/aws-s3:setUniqueReplicationRoleName";
|
|
88
|
+
FeatureFlag["PIPELINES_REDUCE_STAGE_ROLE_TRUST_SCOPE"] = "@aws-cdk/pipelines:reduceStageRoleTrustScope";
|
|
89
|
+
FeatureFlag["EVENTS_REQUIRE_EVENT_BUS_POLICY_SID"] = "@aws-cdk/aws-events:requireEventBusPolicySid";
|
|
90
|
+
FeatureFlag["DYNAMODB_RETAIN_TABLE_REPLICA"] = "@aws-cdk/aws-dynamodb:retainTableReplica";
|
|
91
|
+
FeatureFlag["COGNITO_LOG_USER_POOL_CLIENT_SECRET_VALUE"] = "@aws-cdk/cognito:logUserPoolClientSecretValue";
|
|
92
|
+
FeatureFlag["STEPFUNCTIONS_USE_DISTRIBUTED_MAP_RESULT_WRITER_V2"] = "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2";
|
|
93
|
+
FeatureFlag["PIPELINES_REDUCE_CROSS_ACCOUNT_ACTION_ROLE_TRUST_SCOPE"] = "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope";
|
|
94
|
+
FeatureFlag["CORE_ASPECT_PRIORITIES_MUTATING"] = "@aws-cdk/core:aspectPrioritiesMutating";
|
|
95
|
+
FeatureFlag["S3_NOTIFICATIONS_ADD_S3_TRUST_KEY_POLICY_FOR_SNS_SUBSCRIPTIONS"] = "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions";
|
|
96
|
+
FeatureFlag["EC2_ALPHA_USE_RESOURCE_ID_FOR_VPC_V2_MIGRATION"] = "@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration";
|
|
97
|
+
FeatureFlag["EC2_REQUIRE_PRIVATE_SUBNETS_FOR_EGRESS_ONLY_INTERNET_GATEWAY"] = "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway";
|
|
98
|
+
FeatureFlag["S3_PUBLIC_ACCESS_BLOCKED_BY_DEFAULT"] = "@aws-cdk/aws-s3:publicAccessBlockedByDefault";
|
|
99
|
+
FeatureFlag["LAMBDA_USE_CDK_MANAGED_LOG_GROUP"] = "@aws-cdk/aws-lambda:useCdkManagedLogGroup";
|
|
100
|
+
FeatureFlag["KMS_APPLY_IMPORTED_ALIAS_PERMISSIONS_TO_PRINCIPAL"] = "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal";
|
|
101
|
+
FeatureFlag["CORE_EXPLICIT_STACK_TAGS"] = "@aws-cdk/core:explicitStackTags";
|
|
102
|
+
})(FeatureFlag || (exports.FeatureFlag = FeatureFlag = {}));
|
|
103
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1mbGFncy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImZlYXR1cmUtZmxhZ3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsd0VBQXdFO0FBQ3hFLDRFQUE0RTtBQUM1RTs7Ozs7R0FLRztBQUNILElBQVksV0F5Rlg7QUF6RkQsV0FBWSxXQUFXO0lBQ3JCLHNGQUF1RSxDQUFBO0lBQ3ZFLGlGQUFrRSxDQUFBO0lBQ2xFLHFGQUFzRSxDQUFBO0lBQ3RFLHdIQUF5RyxDQUFBO0lBQ3pHLDJGQUE0RSxDQUFBO0lBQzVFLDZIQUE4RyxDQUFBO0lBQzlHLHlFQUEwRCxDQUFBO0lBQzFELHFJQUFzSCxDQUFBO0lBQ3RILDRGQUE2RSxDQUFBO0lBQzdFLDBFQUEyRCxDQUFBO0lBQzNELHlFQUEwRCxDQUFBO0lBQzFELDJGQUE0RSxDQUFBO0lBQzVFLG9HQUFxRixDQUFBO0lBQ3JGLG9KQUFxSSxDQUFBO0lBQ3JJLDhGQUErRSxDQUFBO0lBQy9FLGtIQUFtRyxDQUFBO0lBQ25HLHFHQUFzRixDQUFBO0lBQ3RGLG9HQUFxRixDQUFBO0lBQ3JGLHVGQUF3RSxDQUFBO0lBQ3hFLHVKQUF3SSxDQUFBO0lBQ3hJLDJHQUE0RixDQUFBO0lBQzVGLDJIQUE0RyxDQUFBO0lBQzVHLDBHQUEyRixDQUFBO0lBQzNGLHFIQUFzRyxDQUFBO0lBQ3RHLGdHQUFpRixDQUFBO0lBQ2pGLHlIQUEwRyxDQUFBO0lBQzFHLDJHQUE0RixDQUFBO0lBQzVGLGlJQUFrSCxDQUFBO0lBQ2xILHVHQUF3RixDQUFBO0lBQ3hGLHlMQUEwSyxDQUFBO0lBQzFLLG9FQUFxRCxDQUFBO0lBQ3JELDZIQUE4RyxDQUFBO0lBQzlHLDBHQUEyRixDQUFBO0lBQzNGLG9HQUFxRixDQUFBO0lBQ3JGLG1FQUFvRCxDQUFBO0lBQ3BELGtIQUFtRyxDQUFBO0lBQ25HLHFKQUFzSSxDQUFBO0lBQ3RJLDhJQUErSCxDQUFBO0lBQy9ILGlGQUFrRSxDQUFBO0lBQ2xFLHNIQUF1RyxDQUFBO0lBQ3ZHLDhHQUErRixDQUFBO0lBQy9GLHFJQUFzSCxDQUFBO0lBQ3RILHVMQUF3SyxDQUFBO0lBQ3hLLHNIQUF1RyxDQUFBO0lBQ3ZHLDhKQUErSSxDQUFBO0lBQy9JLDBLQUEySixDQUFBO0lBQzNKLHVJQUF3SCxDQUFBO0lBQ3hILDZHQUE4RixDQUFBO0lBQzlGLG9IQUFxRyxDQUFBO0lBQ3JHLHVGQUF3RSxDQUFBO0lBQ3hFLGtGQUFtRSxDQUFBO0lBQ25FLHVHQUF3RixDQUFBO0lBQ3hGLG9HQUFxRixDQUFBO0lBQ3JGLCtJQUFnSSxDQUFBO0lBQ2hJLDJHQUE0RixDQUFBO0lBQzVGLDhLQUErSixDQUFBO0lBQy9KLHdIQUF5RyxDQUFBO0lBQ3pHLG9GQUFxRSxDQUFBO0lBQ3JFLG1JQUFvSCxDQUFBO0lBQ3BILHFIQUFzRyxDQUFBO0lBQ3RHLGlMQUFrSyxDQUFBO0lBQ2xLLHFLQUFzSixDQUFBO0lBQ3RKLG1IQUFvRyxDQUFBO0lBQ3BHLHNHQUF1RixDQUFBO0lBQ3ZGLDRIQUE2RyxDQUFBO0lBQzdHLDhFQUErRCxDQUFBO0lBQy9ELGtLQUFtSixDQUFBO0lBQ25KLHdGQUF5RSxDQUFBO0lBQ3pFLG1IQUFvRyxDQUFBO0lBQ3BHLG1NQUFvTCxDQUFBO0lBQ3BMLDhHQUErRixDQUFBO0lBQy9GLDhHQUErRixDQUFBO0lBQy9GLDhIQUErRyxDQUFBO0lBQy9HLG1HQUFvRixDQUFBO0lBQ3BGLHVHQUF3RixDQUFBO0lBQ3hGLG1HQUFvRixDQUFBO0lBQ3BGLHlGQUEwRSxDQUFBO0lBQzFFLDBHQUEyRixDQUFBO0lBQzNGLGdJQUFpSCxDQUFBO0lBQ2pILG1JQUFvSCxDQUFBO0lBQ3BILHlGQUEwRSxDQUFBO0lBQzFFLGtKQUFtSSxDQUFBO0lBQ25JLHVIQUF3RyxDQUFBO0lBQ3hHLGtKQUFtSSxDQUFBO0lBQ25JLG1HQUFvRixDQUFBO0lBQ3BGLDZGQUE4RSxDQUFBO0lBQzlFLDhIQUErRyxDQUFBO0lBQy9HLDJFQUE0RCxDQUFBO0FBQzlELENBQUMsRUF6RlcsV0FBVywyQkFBWCxXQUFXLFFBeUZ0QiIsInNvdXJjZXNDb250ZW50IjpbIi8vIFRPRE86IGltcGxlbWVudCB0aGlzIGJ5IGJ1bmRsaW5nIHRoZSBzb3VyY2Ugb2YgdHJ1dGggd2l0aCB0aGUgQ0RLIENMSVxuLy8gV2UgYXJlIGN1cnJlbnRseSBoYXJkY29kaW5nIHRoZXNlIHZhbHVlcyB0byBmYWNpbGl0YXRlIGEgcXVpY2tlciByZWxlYXNlLlxuLyoqXG4gKiBFbnVtIG9mIGFsbCB2YWxpZCBDREsgZmVhdHVyZSBmbGFnIG5hbWVzLlxuICpcbiAqIFRoZXNlIGZsYWdzIGFyZSB1c2VkIHRvIGNvbnRyb2wgYmVoYXZpb3IgY2hhbmdlcyBpbiB0aGUgQ0RLLlxuICogRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZTogaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2Jsb2IvbWFpbi9wYWNrYWdlcy9hd3MtY2RrLWxpYi9jeC1hcGkvRkVBVFVSRV9GTEFHUy5tZFxuICovXG5leHBvcnQgZW51bSBGZWF0dXJlRmxhZyB7XG4gIENPUkVfTkVXX1NUWUxFX1NUQUNLX1NZTlRIRVNJUyA9ICdAYXdzLWNkay9jb3JlOm5ld1N0eWxlU3RhY2tTeW50aGVzaXMnLFxuICBDT1JFX1NUQUNLX1JFTEFUSVZFX0VYUE9SVFMgPSAnQGF3cy1jZGsvY29yZTpzdGFja1JlbGF0aXZlRXhwb3J0cycsXG4gIFJEU19MT1dFUkNBU0VfREJfSURFTlRJRklFUiA9ICdAYXdzLWNkay9hd3MtcmRzOmxvd2VyY2FzZURiSWRlbnRpZmllcicsXG4gIEFQSUdBVEVXQVlfVVNBR0VfUExBTl9LRVlfT1JERVJfSU5TRU5TSVRJVkVfSUQgPSAnQGF3cy1jZGsvYXdzLWFwaWdhdGV3YXk6dXNhZ2VQbGFuS2V5T3JkZXJJbnNlbnNpdGl2ZUlkJyxcbiAgTEFNQkRBX1JFQ09HTklaRV9WRVJTSU9OX1BST1BTID0gJ0Bhd3MtY2RrL2F3cy1sYW1iZGE6cmVjb2duaXplVmVyc2lvblByb3BzJyxcbiAgQ0xPVURGUk9OVF9ERUZBVUxUX1NFQ1VSSVRZX1BPTElDWV9UTFNfVjFfMl8yMDIxID0gJ0Bhd3MtY2RrL2F3cy1jbG91ZGZyb250OmRlZmF1bHRTZWN1cml0eVBvbGljeVRMU3YxLjJfMjAyMScsXG4gIENPUkVfVEFSR0VUX1BBUlRJVElPTlMgPSAnQGF3cy1jZGsvY29yZTp0YXJnZXQtcGFydGl0aW9ucycsXG4gIEVDU19TRVJWSUNFX0VYVEVOU0lPTlNfRU5BQkxFX0RFRkFVTFRfTE9HX0RSSVZFUiA9ICdAYXdzLWNkay1jb250YWluZXJzL2Vjcy1zZXJ2aWNlLWV4dGVuc2lvbnM6ZW5hYmxlRGVmYXVsdExvZ0RyaXZlcicsXG4gIEVDMl9VTklRVUVfSU1EU1YyX1RFTVBMQVRFX05BTUUgPSAnQGF3cy1jZGsvYXdzLWVjMjp1bmlxdWVJbWRzdjJUZW1wbGF0ZU5hbWUnLFxuICBJQU1fTUlOSU1JWkVfUE9MSUNJRVMgPSAnQGF3cy1jZGsvYXdzLWlhbTptaW5pbWl6ZVBvbGljaWVzJyxcbiAgQ09SRV9DSEVDS19TRUNSRVRfVVNBR0UgPSAnQGF3cy1jZGsvY29yZTpjaGVja1NlY3JldFVzYWdlJyxcbiAgTEFNQkRBX1JFQ09HTklaRV9MQVlFUl9WRVJTSU9OID0gJ0Bhd3MtY2RrL2F3cy1sYW1iZGE6cmVjb2duaXplTGF5ZXJWZXJzaW9uJyxcbiAgQ09SRV9WQUxJREFURV9TTkFQU0hPVF9SRU1PVkFMX1BPTElDWSA9ICdAYXdzLWNkay9jb3JlOnZhbGlkYXRlU25hcHNob3RSZW1vdmFsUG9saWN5JyxcbiAgQ09ERVBJUEVMSU5FX0NST1NTX0FDQ09VTlRfS0VZX0FMSUFTX1NUQUNLX1NBRkVfUkVTT1VSQ0VfTkFNRSA9ICdAYXdzLWNkay9hd3MtY29kZXBpcGVsaW5lOmNyb3NzQWNjb3VudEtleUFsaWFzU3RhY2tTYWZlUmVzb3VyY2VOYW1lJyxcbiAgUzNfQ1JFQVRFX0RFRkFVTFRfTE9HR0lOR19QT0xJQ1kgPSAnQGF3cy1jZGsvYXdzLXMzOmNyZWF0ZURlZmF1bHRMb2dnaW5nUG9saWN5JyxcbiAgU05TX1NVQlNDUklQVElPTlNfUkVTVFJJQ1RfU1FTX0RFQ1JZUFRJT04gPSAnQGF3cy1jZGsvYXdzLXNucy1zdWJzY3JpcHRpb25zOnJlc3RyaWN0U3FzRGVzY3J5cHRpb24nLFxuICBFQ1NfQVJOX0ZPUk1BVF9JTkNMVURFU19DTFVTVEVSX05BTUUgPSAnQGF3cy1jZGsvYXdzLWVjczphcm5Gb3JtYXRJbmNsdWRlc0NsdXN0ZXJOYW1lJyxcbiAgQVBJR0FURVdBWV9ESVNBQkxFX0NMT1VEX1dBVENIX1JPTEUgPSAnQGF3cy1jZGsvYXdzLWFwaWdhdGV3YXk6ZGlzYWJsZUNsb3VkV2F0Y2hSb2xlJyxcbiAgQ09SRV9FTkFCTEVfUEFSVElUSU9OX0xJVEVSQUxTID0gJ0Bhd3MtY2RrL2NvcmU6ZW5hYmxlUGFydGl0aW9uTGl0ZXJhbHMnLFxuICBFQ1NfRElTQUJMRV9FWFBMSUNJVF9ERVBMT1lNRU5UX0NPTlRST0xMRVJfRk9SX0NJUkNVSVRfQlJFQUtFUiA9ICdAYXdzLWNkay9hd3MtZWNzOmRpc2FibGVFeHBsaWNpdERlcGxveW1lbnRDb250cm9sbGVyRm9yQ2lyY3VpdEJyZWFrZXInLFxuICBFVkVOVFNfRVZFTlRTX1RBUkdFVF9RVUVVRV9TQU1FX0FDQ09VTlQgPSAnQGF3cy1jZGsvYXdzLWV2ZW50czpldmVudHNUYXJnZXRRdWV1ZVNhbWVBY2NvdW50JyxcbiAgSUFNX0lNUE9SVEVEX1JPTEVfU1RBQ0tfU0FGRV9ERUZBVUxUX1BPTElDWV9OQU1FID0gJ0Bhd3MtY2RrL2F3cy1pYW06aW1wb3J0ZWRSb2xlU3RhY2tTYWZlRGVmYXVsdFBvbGljeU5hbWUnLFxuICBTM19TRVJWRVJfQUNDRVNTX0xPR1NfVVNFX0JVQ0tFVF9QT0xJQ1kgPSAnQGF3cy1jZGsvYXdzLXMzOnNlcnZlckFjY2Vzc0xvZ3NVc2VCdWNrZXRQb2xpY3knLFxuICBDVVNUT01SRVNPVVJDRVNfSU5TVEFMTF9MQVRFU1RfQVdTX1NES19ERUZBVUxUID0gJ0Bhd3MtY2RrL2N1c3RvbXJlc291cmNlczppbnN0YWxsTGF0ZXN0QXdzU2RrRGVmYXVsdCcsXG4gIFJPVVRFNTNfUEFUVEVSTlNfVVNFX0NFUlRJRklDQVRFID0gJ0Bhd3MtY2RrL2F3cy1yb3V0ZTUzLXBhdHRlcm5zOnVzZUNlcnRpZmljYXRlJyxcbiAgQ09ERURFUExPWV9SRU1PVkVfQUxBUk1TX0ZST01fREVQTE9ZTUVOVF9HUk9VUCA9ICdAYXdzLWNkay9hd3MtY29kZWRlcGxveTpyZW1vdmVBbGFybXNGcm9tRGVwbG95bWVudEdyb3VwJyxcbiAgUkRTX0RBVEFCQVNFX1BST1hZX1VOSVFVRV9SRVNPVVJDRV9OQU1FID0gJ0Bhd3MtY2RrL2F3cy1yZHM6ZGF0YWJhc2VQcm94eVVuaXF1ZVJlc291cmNlTmFtZScsXG4gIEFQSUdBVEVXQVlfQVVUSE9SSVpFUl9DSEFOR0VfREVQTE9ZTUVOVF9MT0dJQ0FMX0lEID0gJ0Bhd3MtY2RrL2F3cy1hcGlnYXRld2F5OmF1dGhvcml6ZXJDaGFuZ2VEZXBsb3ltZW50TG9naWNhbElkJyxcbiAgRUMyX0xBVU5DSF9URU1QTEFURV9ERUZBVUxUX1VTRVJfREFUQSA9ICdAYXdzLWNkay9hd3MtZWMyOmxhdW5jaFRlbXBsYXRlRGVmYXVsdFVzZXJEYXRhJyxcbiAgU0VDUkVUU01BTkFHRVJfVVNFX0FUVEFDSEVEX1NFQ1JFVF9SRVNPVVJDRV9QT0xJQ1lfRk9SX1NFQ1JFVF9UQVJHRVRfQVRUQUNITUVOVFMgPSAnQGF3cy1jZGsvYXdzLXNlY3JldHNtYW5hZ2VyOnVzZUF0dGFjaGVkU2VjcmV0UmVzb3VyY2VQb2xpY3lGb3JTZWNyZXRUYXJnZXRBdHRhY2htZW50cycsXG4gIFJFRFNISUZUX0NPTFVNTl9JRCA9ICdAYXdzLWNkay9hd3MtcmVkc2hpZnQ6Y29sdW1uSWQnLFxuICBTVEVQRlVOQ1RJT05TX1RBU0tTX0VOQUJMRV9FTVJfU0VSVklDRV9QT0xJQ1lfVjIgPSAnQGF3cy1jZGsvYXdzLXN0ZXBmdW5jdGlvbnMtdGFza3M6ZW5hYmxlRW1yU2VydmljZVBvbGljeVYyJyxcbiAgQVBJR0FURVdBWV9SRVFVRVNUX1ZBTElEQVRPUl9VTklRVUVfSUQgPSAnQGF3cy1jZGsvYXdzLWFwaWdhdGV3YXk6cmVxdWVzdFZhbGlkYXRvclVuaXF1ZUlkJyxcbiAgRUMyX1JFU1RSSUNUX0RFRkFVTFRfU0VDVVJJVFlfR1JPVVAgPSAnQGF3cy1jZGsvYXdzLWVjMjpyZXN0cmljdERlZmF1bHRTZWN1cml0eUdyb3VwJyxcbiAgS01TX0FMSUFTX05BTUVfUkVGID0gJ0Bhd3MtY2RrL2F3cy1rbXM6YWxpYXNOYW1lUmVmJyxcbiAgQ09SRV9JTkNMVURFX1BSRUZJWF9JTl9VTklRVUVfTkFNRV9HRU5FUkFUSU9OID0gJ0Bhd3MtY2RrL2NvcmU6aW5jbHVkZVByZWZpeEluVW5pcXVlTmFtZUdlbmVyYXRpb24nLFxuICBBVVRPU0NBTElOR19HRU5FUkFURV9MQVVOQ0hfVEVNUExBVEVfSU5TVEVBRF9PRl9MQVVOQ0hfQ09ORklHID0gJ0Bhd3MtY2RrL2F3cy1hdXRvc2NhbGluZzpnZW5lcmF0ZUxhdW5jaFRlbXBsYXRlSW5zdGVhZE9mTGF1bmNoQ29uZmlnJyxcbiAgT1BFTlNFQVJDSFNFUlZJQ0VfRU5BQkxFX09QRU5TRUFSQ0hfTVVMVElfQVpfV0lUSF9TVEFOREJZID0gJ0Bhd3MtY2RrL2F3cy1vcGVuc2VhcmNoc2VydmljZTplbmFibGVPcGVuc2VhcmNoTXVsdGlBeldpdGhTdGFuZGJ5JyxcbiAgRUZTX0RFTllfQU5PTllNT1VTX0FDQ0VTUyA9ICdAYXdzLWNkay9hd3MtZWZzOmRlbnlBbm9ueW1vdXNBY2Nlc3MnLFxuICBFRlNfTU9VTlRfVEFSR0VUX09SREVSX0lOU0VOU0lUSVZFX0xPR0lDQUxfSUQgPSAnQGF3cy1jZGsvYXdzLWVmczptb3VudFRhcmdldE9yZGVySW5zZW5zaXRpdmVMb2dpY2FsSWQnLFxuICBMQU1CREFfTk9ERUpTX1VTRV9MQVRFU1RfUlVOVElNRV9WRVJTSU9OID0gJ0Bhd3MtY2RrL2F3cy1sYW1iZGEtbm9kZWpzOnVzZUxhdGVzdFJ1bnRpbWVWZXJzaW9uJyxcbiAgQVBQU1lOQ19VU0VfQVJOX0ZPUl9TT1VSQ0VfQVBJX0FTU09DSUFUSU9OX0lERU5USUZJRVIgPSAnQGF3cy1jZGsvYXdzLWFwcHN5bmM6dXNlQXJuRm9yU291cmNlQXBpQXNzb2NpYXRpb25JZGVudGlmaWVyJyxcbiAgUkRTX0FVUk9SQV9DTFVTVEVSX0NIQU5HRV9TQ09QRV9PRl9JTlNUQU5DRV9QQVJBTUVURVJfR1JPVVBfV0lUSF9FQUNIX1BBUkFNRVRFUlMgPSAnQGF3cy1jZGsvYXdzLXJkczphdXJvcmFDbHVzdGVyQ2hhbmdlU2NvcGVPZkluc3RhbmNlUGFyYW1ldGVyR3JvdXBXaXRoRWFjaFBhcmFtZXRlcnMnLFxuICBSRFNfUFJFVkVOVF9SRU5ERVJJTkdfREVQUkVDQVRFRF9DUkVERU5USUFMUyA9ICdAYXdzLWNkay9hd3MtcmRzOnByZXZlbnRSZW5kZXJpbmdEZXByZWNhdGVkQ3JlZGVudGlhbHMnLFxuICBDT0RFUElQRUxJTkVfQUNUSU9OU19VU0VfTkVXX0RFRkFVTFRfQlJBTkNIX0ZPUl9DT0RFX0NPTU1JVF9TT1VSQ0UgPSAnQGF3cy1jZGsvYXdzLWNvZGVwaXBlbGluZS1hY3Rpb25zOnVzZU5ld0RlZmF1bHRCcmFuY2hGb3JDb2RlQ29tbWl0U291cmNlJyxcbiAgQ0xPVURXQVRDSF9BQ1RJT05TX0NIQU5HRV9MQU1CREFfUEVSTUlTU0lPTl9MT0dJQ0FMX0lEX0ZPUl9MQU1CREFfQUNUSU9OID0gJ0Bhd3MtY2RrL2F3cy1jbG91ZHdhdGNoLWFjdGlvbnM6Y2hhbmdlTGFtYmRhUGVybWlzc2lvbkxvZ2ljYWxJZEZvckxhbWJkYUFjdGlvbicsXG4gIENPREVQSVBFTElORV9DUk9TU19BQ0NPVU5UX0tFWVNfREVGQVVMVF9WQUxVRV9UT19GQUxTRSA9ICdAYXdzLWNkay9hd3MtY29kZXBpcGVsaW5lOmNyb3NzQWNjb3VudEtleXNEZWZhdWx0VmFsdWVUb0ZhbHNlJyxcbiAgQ09ERVBJUEVMSU5FX0RFRkFVTFRfUElQRUxJTkVfVFlQRV9UT19WMiA9ICdAYXdzLWNkay9hd3MtY29kZXBpcGVsaW5lOmRlZmF1bHRQaXBlbGluZVR5cGVUb1YyJyxcbiAgS01TX1JFRFVDRV9DUk9TU19BQ0NPVU5UX1JFR0lPTl9QT0xJQ1lfU0NPUEUgPSAnQGF3cy1jZGsvYXdzLWttczpyZWR1Y2VDcm9zc0FjY291bnRSZWdpb25Qb2xpY3lTY29wZScsXG4gIEVLU19OT0RFR1JPVVBfTkFNRV9BVFRSSUJVVEUgPSAnQGF3cy1jZGsvYXdzLWVrczpub2RlZ3JvdXBOYW1lQXR0cmlidXRlJyxcbiAgRUMyX0VCU19ERUZBVUxUX0dQM19WT0xVTUUgPSAnQGF3cy1jZGsvYXdzLWVjMjplYnNEZWZhdWx0R3AzVm9sdW1lJyxcbiAgUElQRUxJTkVTX1JFRFVDRV9BU1NFVF9ST0xFX1RSVVNUX1NDT1BFID0gJ0Bhd3MtY2RrL3BpcGVsaW5lczpyZWR1Y2VBc3NldFJvbGVUcnVzdFNjb3BlJyxcbiAgRUNTX1JFTU9WRV9ERUZBVUxUX0RFUExPWU1FTlRfQUxBUk0gPSAnQGF3cy1jZGsvYXdzLWVjczpyZW1vdmVEZWZhdWx0RGVwbG95bWVudEFsYXJtJyxcbiAgQ1VTVE9NX1JFU09VUkNFU19MT0dfQVBJX1JFU1BPTlNFX0RBVEFfUFJPUEVSVFlfVFJVRV9ERUZBVUxUID0gJ0Bhd3MtY2RrL2N1c3RvbS1yZXNvdXJjZXM6bG9nQXBpUmVzcG9uc2VEYXRhUHJvcGVydHlUcnVlRGVmYXVsdCcsXG4gIFMzX0tFRVBfTk9USUZJQ0FUSU9OX0lOX0lNUE9SVEVEX0JVQ0tFVCA9ICdAYXdzLWNkay9hd3MtczM6a2VlcE5vdGlmaWNhdGlvbkluSW1wb3J0ZWRCdWNrZXQnLFxuICBTVEVQRlVOQ1RJT05TX1RBU0tTX1VTRV9ORVdfUzNfVVJJX1BBUkFNRVRFUlNfRk9SX0JFRFJPQ0tfSU5WT0tFX01PREVMX1RBU0sgPSAnQGF3cy1jZGsvYXdzLXN0ZXBmdW5jdGlvbnMtdGFza3M6dXNlTmV3UzNVcmlQYXJhbWV0ZXJzRm9yQmVkcm9ja0ludm9rZU1vZGVsVGFzaycsXG4gIEVDU19SRURVQ0VfRUMyX0ZBUkdBVEVfQ0xPVURfV0FUQ0hfUEVSTUlTU0lPTlMgPSAnQGF3cy1jZGsvYXdzLWVjczpyZWR1Y2VFYzJGYXJnYXRlQ2xvdWRXYXRjaFBlcm1pc3Npb25zJyxcbiAgRUMyX0VDMl9TVU1fVElNRU9VVF9FTkFCTEVEID0gJ0Bhd3MtY2RrL2F3cy1lYzI6ZWMyU3VtVGltZW91dEVuYWJsZWQnLFxuICBBUFBTWU5DX0FQUF9TWU5DX0dSQVBIUUxfQVBJX1NDT1BFX0xBTUJEQV9QRVJNSVNTSU9OID0gJ0Bhd3MtY2RrL2F3cy1hcHBzeW5jOmFwcFN5bmNHcmFwaFFMQVBJU2NvcGVMYW1iZGFQZXJtaXNzaW9uJyxcbiAgTEFNQkRBX05PREVKU19TREtfVjNfRVhDTFVERV9TTUlUSFlfUEFDS0FHRVMgPSAnQGF3cy1jZGsvYXdzLWxhbWJkYS1ub2RlanM6c2RrVjNFeGNsdWRlU21pdGh5UGFja2FnZXMnLFxuICBSRFNfU0VUX0NPUlJFQ1RfVkFMVUVfRk9SX0RBVEFCQVNFX0lOU1RBTkNFX1JFQURfUkVQTElDQV9JTlNUQU5DRV9SRVNPVVJDRV9JRCA9ICdAYXdzLWNkay9hd3MtcmRzOnNldENvcnJlY3RWYWx1ZUZvckRhdGFiYXNlSW5zdGFuY2VSZWFkUmVwbGljYUluc3RhbmNlUmVzb3VyY2VJZCcsXG4gIENPUkVfQ0ZOX0lOQ0xVREVfUkVKRUNUX0NPTVBMRVhfUkVTT1VSQ0VfVVBEQVRFX0NSRUFURV9QT0xJQ1lfSU5UUklOU0lDUyA9ICdAYXdzLWNkay9jb3JlOmNmbkluY2x1ZGVSZWplY3RDb21wbGV4UmVzb3VyY2VVcGRhdGVDcmVhdGVQb2xpY3lJbnRyaW5zaWNzJyxcbiAgU1RFUEZVTkNUSU9OU19UQVNLU19GSVhfUlVOX0VDU19UQVNLX1BPTElDWSA9ICdAYXdzLWNkay9hd3Mtc3RlcGZ1bmN0aW9ucy10YXNrczpmaXhSdW5FY3NUYXNrUG9saWN5JyxcbiAgRFlOQU1PREJfUkVTT1VSQ0VfUE9MSUNZX1BFUl9SRVBMSUNBID0gJ0Bhd3MtY2RrL2F3cy1keW5hbW9kYjpyZXNvdXJjZVBvbGljeVBlclJlcGxpY2EnLFxuICBFQzJfQkFTVElPTl9IT1NUX1VTRV9BTUFaT05fTElOVVhfMjAyM19CWV9ERUZBVUxUID0gJ0Bhd3MtY2RrL2F3cy1lYzI6YmFzdGlvbkhvc3RVc2VBbWF6b25MaW51eDIwMjNCeURlZmF1bHQnLFxuICBDT1JFX0FTUEVDVF9TVEFCSUxJWkFUSU9OID0gJ0Bhd3MtY2RrL2NvcmU6YXNwZWN0U3RhYmlsaXphdGlvbicsXG4gIFJPVVRFNTNfVEFSR0VUU19VU0VSX1BPT0xfRE9NQUlOX05BTUVfTUVUSE9EX1dJVEhPVVRfQ1VTVE9NX1JFU09VUkNFID0gJ0Bhd3MtY2RrL2F3cy1yb3V0ZTUzLXRhcmdldHM6dXNlclBvb2xEb21haW5OYW1lTWV0aG9kV2l0aG91dEN1c3RvbVJlc291cmNlJyxcbiAgRUNTX0RJU0FCTEVfRUNTX0lNRFNfQkxPQ0tJTkcgPSAnQGF3cy1jZGsvYXdzLWVjczpkaXNhYmxlRWNzSW1kc0Jsb2NraW5nJyxcbiAgRUNTX0VOQUJMRV9JTURTX0JMT0NLSU5HX0RFUFJFQ0FURURfRkVBVFVSRSA9ICdAYXdzLWNkay9hd3MtZWNzOmVuYWJsZUltZHNCbG9ja2luZ0RlcHJlY2F0ZWRGZWF0dXJlJyxcbiAgRUxBU1RJQ0xPQURCQUxBTkNJTkdWMl9BTEJfRFVBTFNUQUNLX1dJVEhPVVRfUFVCTElDX0lQVjRfU0VDVVJJVFlfR1JPVVBfUlVMRVNfREVGQVVMVCA9ICdAYXdzLWNkay9hd3MtZWxhc3RpY2xvYWRiYWxhbmNpbmdWMjphbGJEdWFsc3RhY2tXaXRob3V0UHVibGljSXB2NFNlY3VyaXR5R3JvdXBSdWxlc0RlZmF1bHQnLFxuICBJQU1fT0lEQ19SRUpFQ1RfVU5BVVRIT1JJWkVEX0NPTk5FQ1RJT05TID0gJ0Bhd3MtY2RrL2F3cy1pYW06b2lkY1JlamVjdFVuYXV0aG9yaXplZENvbm5lY3Rpb25zJyxcbiAgQ09SRV9FTkFCTEVfQURESVRJT05BTF9NRVRBREFUQV9DT0xMRUNUSU9OID0gJ0Bhd3MtY2RrL2NvcmU6ZW5hYmxlQWRkaXRpb25hbE1ldGFkYXRhQ29sbGVjdGlvbicsXG4gIExBTUJEQV9DUkVBVEVfTkVXX1BPTElDSUVTX1dJVEhfQUREX1RPX1JPTEVfUE9MSUNZID0gJ0Bhd3MtY2RrL2F3cy1sYW1iZGE6Y3JlYXRlTmV3UG9saWNpZXNXaXRoQWRkVG9Sb2xlUG9saWN5JyxcbiAgUzNfU0VUX1VOSVFVRV9SRVBMSUNBVElPTl9ST0xFX05BTUUgPSAnQGF3cy1jZGsvYXdzLXMzOnNldFVuaXF1ZVJlcGxpY2F0aW9uUm9sZU5hbWUnLFxuICBQSVBFTElORVNfUkVEVUNFX1NUQUdFX1JPTEVfVFJVU1RfU0NPUEUgPSAnQGF3cy1jZGsvcGlwZWxpbmVzOnJlZHVjZVN0YWdlUm9sZVRydXN0U2NvcGUnLFxuICBFVkVOVFNfUkVRVUlSRV9FVkVOVF9CVVNfUE9MSUNZX1NJRCA9ICdAYXdzLWNkay9hd3MtZXZlbnRzOnJlcXVpcmVFdmVudEJ1c1BvbGljeVNpZCcsXG4gIERZTkFNT0RCX1JFVEFJTl9UQUJMRV9SRVBMSUNBID0gJ0Bhd3MtY2RrL2F3cy1keW5hbW9kYjpyZXRhaW5UYWJsZVJlcGxpY2EnLFxuICBDT0dOSVRPX0xPR19VU0VSX1BPT0xfQ0xJRU5UX1NFQ1JFVF9WQUxVRSA9ICdAYXdzLWNkay9jb2duaXRvOmxvZ1VzZXJQb29sQ2xpZW50U2VjcmV0VmFsdWUnLFxuICBTVEVQRlVOQ1RJT05TX1VTRV9ESVNUUklCVVRFRF9NQVBfUkVTVUxUX1dSSVRFUl9WMiA9ICdAYXdzLWNkay9hd3Mtc3RlcGZ1bmN0aW9uczp1c2VEaXN0cmlidXRlZE1hcFJlc3VsdFdyaXRlclYyJyxcbiAgUElQRUxJTkVTX1JFRFVDRV9DUk9TU19BQ0NPVU5UX0FDVElPTl9ST0xFX1RSVVNUX1NDT1BFID0gJ0Bhd3MtY2RrL3BpcGVsaW5lczpyZWR1Y2VDcm9zc0FjY291bnRBY3Rpb25Sb2xlVHJ1c3RTY29wZScsXG4gIENPUkVfQVNQRUNUX1BSSU9SSVRJRVNfTVVUQVRJTkcgPSAnQGF3cy1jZGsvY29yZTphc3BlY3RQcmlvcml0aWVzTXV0YXRpbmcnLFxuICBTM19OT1RJRklDQVRJT05TX0FERF9TM19UUlVTVF9LRVlfUE9MSUNZX0ZPUl9TTlNfU1VCU0NSSVBUSU9OUyA9ICdAYXdzLWNkay9zMy1ub3RpZmljYXRpb25zOmFkZFMzVHJ1c3RLZXlQb2xpY3lGb3JTbnNTdWJzY3JpcHRpb25zJyxcbiAgRUMyX0FMUEhBX1VTRV9SRVNPVVJDRV9JRF9GT1JfVlBDX1YyX01JR1JBVElPTiA9ICdAYXdzLWNkay9hd3MtZWMyLWFscGhhOnVzZVJlc291cmNlSWRGb3JWcGNWMk1pZ3JhdGlvbicsXG4gIEVDMl9SRVFVSVJFX1BSSVZBVEVfU1VCTkVUU19GT1JfRUdSRVNTX09OTFlfSU5URVJORVRfR0FURVdBWSA9ICdAYXdzLWNkay9hd3MtZWMyOnJlcXVpcmVQcml2YXRlU3VibmV0c0ZvckVncmVzc09ubHlJbnRlcm5ldEdhdGV3YXknLFxuICBTM19QVUJMSUNfQUNDRVNTX0JMT0NLRURfQllfREVGQVVMVCA9ICdAYXdzLWNkay9hd3MtczM6cHVibGljQWNjZXNzQmxvY2tlZEJ5RGVmYXVsdCcsXG4gIExBTUJEQV9VU0VfQ0RLX01BTkFHRURfTE9HX0dST1VQID0gJ0Bhd3MtY2RrL2F3cy1sYW1iZGE6dXNlQ2RrTWFuYWdlZExvZ0dyb3VwJyxcbiAgS01TX0FQUExZX0lNUE9SVEVEX0FMSUFTX1BFUk1JU1NJT05TX1RPX1BSSU5DSVBBTCA9ICdAYXdzLWNkay9hd3Mta21zOmFwcGx5SW1wb3J0ZWRBbGlhc1Blcm1pc3Npb25zVG9QcmluY2lwYWwnLFxuICBDT1JFX0VYUExJQ0lUX1NUQUNLX1RBR1MgPSAnQGF3cy1jZGsvY29yZTpleHBsaWNpdFN0YWNrVGFncycsXG59XG4iXX0=
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.FileTelemetrySink = void 0;
|
|
4
|
-
const fs = require("fs");
|
|
5
|
-
const path = require("path");
|
|
6
4
|
const toolkit_lib_1 = require("@aws-cdk/toolkit-lib");
|
|
5
|
+
const fs = require("fs-extra");
|
|
7
6
|
const api_private_1 = require("../../api-private");
|
|
8
7
|
/**
|
|
9
8
|
* A telemetry client that collects events writes them to a file
|
|
@@ -18,21 +17,18 @@ class FileTelemetrySink {
|
|
|
18
17
|
if (fs.existsSync(this.logFilePath)) {
|
|
19
18
|
throw new toolkit_lib_1.ToolkitError(`Telemetry file already exists at ${this.logFilePath}`);
|
|
20
19
|
}
|
|
21
|
-
// Create the file
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
fs.mkdirSync(directory, { recursive: true });
|
|
25
|
-
}
|
|
20
|
+
// Create the file
|
|
21
|
+
fs.ensureFileSync(this.logFilePath);
|
|
22
|
+
fs.writeJsonSync(this.logFilePath, []);
|
|
26
23
|
}
|
|
27
24
|
/**
|
|
28
25
|
* Emit an event.
|
|
29
26
|
*/
|
|
30
27
|
async emit(event) {
|
|
31
28
|
try {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
fs.appendFileSync(this.logFilePath, output);
|
|
29
|
+
const json = fs.readJsonSync(this.logFilePath);
|
|
30
|
+
json.push(event);
|
|
31
|
+
fs.writeJSONSync(this.logFilePath, json, { spaces: 2 });
|
|
36
32
|
}
|
|
37
33
|
catch (e) {
|
|
38
34
|
// Never throw errors, just log them via ioHost
|
|
@@ -44,4 +40,4 @@ class FileTelemetrySink {
|
|
|
44
40
|
}
|
|
45
41
|
}
|
|
46
42
|
exports.FileTelemetrySink = FileTelemetrySink;
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1zaW5rLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZmlsZS1zaW5rLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHNEQUFrRTtBQUNsRSwrQkFBK0I7QUFHL0IsbURBQTZDO0FBaUI3Qzs7R0FFRztBQUNILE1BQWEsaUJBQWlCO0lBSTVCOztPQUVHO0lBQ0gsWUFBWSxLQUE2QjtRQUN2QyxJQUFJLENBQUMsUUFBUSxHQUFHLHNCQUFRLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzdELElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQztRQUVyQyxJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7WUFDcEMsTUFBTSxJQUFJLDBCQUFZLENBQUMsb0NBQW9DLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ2pGLENBQUM7UUFFRCxrQkFBa0I7UUFDbEIsRUFBRSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDcEMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBc0I7UUFDdEMsSUFBSSxDQUFDO1lBQ0gsTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDL0MsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNqQixFQUFFLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDMUQsQ0FBQztRQUFDLE9BQU8sQ0FBTSxFQUFFLENBQUM7WUFDaEIsK0NBQStDO1lBQy9DLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLGtDQUFrQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUNwRixDQUFDO0lBQ0gsQ0FBQztJQUVNLEtBQUssQ0FBQyxLQUFLO1FBQ2hCLE9BQU87SUFDVCxDQUFDO0NBQ0Y7QUFyQ0QsOENBcUNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVG9vbGtpdEVycm9yLCB0eXBlIElJb0hvc3QgfSBmcm9tICdAYXdzLWNkay90b29sa2l0LWxpYic7XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcy1leHRyYSc7XG5pbXBvcnQgdHlwZSB7IFRlbGVtZXRyeVNjaGVtYSB9IGZyb20gJy4vc2NoZW1hJztcbmltcG9ydCB0eXBlIHsgSVRlbGVtZXRyeVNpbmsgfSBmcm9tICcuL3NpbmstaW50ZXJmYWNlJztcbmltcG9ydCB7IElvSGVscGVyIH0gZnJvbSAnLi4vLi4vYXBpLXByaXZhdGUnO1xuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIHRoZSBGaWxlVGVsZW1ldHJ5Q2xpZW50XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRmlsZVRlbGVtZXRyeVNpbmtQcm9wcyB7XG4gIC8qKlxuICAgKiBXaGVyZSBtZXNzYWdlcyBhcmUgZ29pbmcgdG8gYmUgc2VudFxuICAgKi9cbiAgcmVhZG9ubHkgaW9Ib3N0OiBJSW9Ib3N0O1xuXG4gIC8qKlxuICAgKiBUaGUgbG9jYWwgZmlsZSB0byBsb2cgdGVsZW1ldHJ5IGRhdGEgdG8uXG4gICAqL1xuICByZWFkb25seSBsb2dGaWxlUGF0aDogc3RyaW5nO1xufVxuXG4vKipcbiAqIEEgdGVsZW1ldHJ5IGNsaWVudCB0aGF0IGNvbGxlY3RzIGV2ZW50cyB3cml0ZXMgdGhlbSB0byBhIGZpbGVcbiAqL1xuZXhwb3J0IGNsYXNzIEZpbGVUZWxlbWV0cnlTaW5rIGltcGxlbWVudHMgSVRlbGVtZXRyeVNpbmsge1xuICBwcml2YXRlIGlvSGVscGVyOiBJb0hlbHBlcjtcbiAgcHJpdmF0ZSBsb2dGaWxlUGF0aDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBuZXcgRmlsZVRlbGVtZXRyeUNsaWVudFxuICAgKi9cbiAgY29uc3RydWN0b3IocHJvcHM6IEZpbGVUZWxlbWV0cnlTaW5rUHJvcHMpIHtcbiAgICB0aGlzLmlvSGVscGVyID0gSW9IZWxwZXIuZnJvbUFjdGlvbkF3YXJlSW9Ib3N0KHByb3BzLmlvSG9zdCk7XG4gICAgdGhpcy5sb2dGaWxlUGF0aCA9IHByb3BzLmxvZ0ZpbGVQYXRoO1xuXG4gICAgaWYgKGZzLmV4aXN0c1N5bmModGhpcy5sb2dGaWxlUGF0aCkpIHtcbiAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoYFRlbGVtZXRyeSBmaWxlIGFscmVhZHkgZXhpc3RzIGF0ICR7dGhpcy5sb2dGaWxlUGF0aH1gKTtcbiAgICB9XG5cbiAgICAvLyBDcmVhdGUgdGhlIGZpbGVcbiAgICBmcy5lbnN1cmVGaWxlU3luYyh0aGlzLmxvZ0ZpbGVQYXRoKTtcbiAgICBmcy53cml0ZUpzb25TeW5jKHRoaXMubG9nRmlsZVBhdGgsIFtdKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbWl0IGFuIGV2ZW50LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGVtaXQoZXZlbnQ6IFRlbGVtZXRyeVNjaGVtYSk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBqc29uID0gZnMucmVhZEpzb25TeW5jKHRoaXMubG9nRmlsZVBhdGgpO1xuICAgICAganNvbi5wdXNoKGV2ZW50KTtcbiAgICAgIGZzLndyaXRlSlNPTlN5bmModGhpcy5sb2dGaWxlUGF0aCwganNvbiwgeyBzcGFjZXM6IDIgfSk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICAvLyBOZXZlciB0aHJvdyBlcnJvcnMsIGp1c3QgbG9nIHRoZW0gdmlhIGlvSG9zdFxuICAgICAgYXdhaXQgdGhpcy5pb0hlbHBlci5kZWZhdWx0cy50cmFjZShgRmFpbGVkIHRvIGFkZCB0ZWxlbWV0cnkgZXZlbnQ6ICR7ZS5tZXNzYWdlfWApO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBmbHVzaCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm47XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getOrCreateInstallationId = getOrCreateInstallationId;
|
|
4
|
+
const crypto_1 = require("crypto");
|
|
5
|
+
const fs = require("fs");
|
|
6
|
+
const path = require("path");
|
|
7
|
+
const util_1 = require("../../util");
|
|
8
|
+
const INSTALLATION_ID_PATH = path.join((0, util_1.cdkCacheDir)(), 'installation-id.json');
|
|
9
|
+
/**
|
|
10
|
+
* Get or create installation id
|
|
11
|
+
*/
|
|
12
|
+
async function getOrCreateInstallationId(ioHelper) {
|
|
13
|
+
try {
|
|
14
|
+
// Create the cache directory if it doesn't exist
|
|
15
|
+
if (!fs.existsSync(path.dirname(INSTALLATION_ID_PATH))) {
|
|
16
|
+
fs.mkdirSync(path.dirname(INSTALLATION_ID_PATH), { recursive: true });
|
|
17
|
+
}
|
|
18
|
+
// Check if the installation ID file exists
|
|
19
|
+
if (fs.existsSync(INSTALLATION_ID_PATH)) {
|
|
20
|
+
const cachedId = fs.readFileSync(INSTALLATION_ID_PATH, 'utf-8').trim();
|
|
21
|
+
// Validate that the cached ID is a valid UUID
|
|
22
|
+
const UUID_REGEX = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
23
|
+
if (UUID_REGEX.test(cachedId)) {
|
|
24
|
+
return cachedId;
|
|
25
|
+
}
|
|
26
|
+
// If invalid, fall through to create a new one
|
|
27
|
+
}
|
|
28
|
+
// Create a new installation ID
|
|
29
|
+
const newId = (0, crypto_1.randomUUID)();
|
|
30
|
+
try {
|
|
31
|
+
fs.writeFileSync(INSTALLATION_ID_PATH, newId);
|
|
32
|
+
}
|
|
33
|
+
catch (e) {
|
|
34
|
+
// If we can't write the file, still return the generated ID
|
|
35
|
+
// but log a trace message about the failure
|
|
36
|
+
await ioHelper.defaults.trace(`Failed to write installation ID to ${INSTALLATION_ID_PATH}: ${e}`);
|
|
37
|
+
}
|
|
38
|
+
return newId;
|
|
39
|
+
}
|
|
40
|
+
catch (e) {
|
|
41
|
+
// If anything goes wrong, generate a temporary ID for this session
|
|
42
|
+
// and log a trace message about the failure
|
|
43
|
+
await ioHelper.defaults.trace(`Error getting installation ID: ${e}`);
|
|
44
|
+
return (0, crypto_1.randomUUID)();
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdGFsbGF0aW9uLWlkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiaW5zdGFsbGF0aW9uLWlkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBV0EsOERBbUNDO0FBOUNELG1DQUFvQztBQUNwQyx5QkFBeUI7QUFDekIsNkJBQTZCO0FBRTdCLHFDQUF5QztBQUV6QyxNQUFNLG9CQUFvQixHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBQSxrQkFBVyxHQUFFLEVBQUUsc0JBQXNCLENBQUMsQ0FBQztBQUU5RTs7R0FFRztBQUNJLEtBQUssVUFBVSx5QkFBeUIsQ0FBQyxRQUFrQjtJQUNoRSxJQUFJLENBQUM7UUFDSCxpREFBaUQ7UUFDakQsSUFBSSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUN2RCxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsb0JBQW9CLENBQUMsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3hFLENBQUM7UUFFRCwyQ0FBMkM7UUFDM0MsSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDLG9CQUFvQixDQUFDLEVBQUUsQ0FBQztZQUN4QyxNQUFNLFFBQVEsR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLG9CQUFvQixFQUFFLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1lBRXZFLDhDQUE4QztZQUM5QyxNQUFNLFVBQVUsR0FBRyxpRUFBaUUsQ0FBQztZQUNyRixJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztnQkFDOUIsT0FBTyxRQUFRLENBQUM7WUFDbEIsQ0FBQztZQUNELCtDQUErQztRQUNqRCxDQUFDO1FBRUQsK0JBQStCO1FBQy9CLE1BQU0sS0FBSyxHQUFHLElBQUEsbUJBQVUsR0FBRSxDQUFDO1FBQzNCLElBQUksQ0FBQztZQUNILEVBQUUsQ0FBQyxhQUFhLENBQUMsb0JBQW9CLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDaEQsQ0FBQztRQUFDLE9BQU8sQ0FBTSxFQUFFLENBQUM7WUFDaEIsNERBQTREO1lBQzVELDRDQUE0QztZQUM1QyxNQUFNLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLHNDQUFzQyxvQkFBb0IsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3BHLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFBQyxPQUFPLENBQU0sRUFBRSxDQUFDO1FBQ2hCLG1FQUFtRTtRQUNuRSw0Q0FBNEM7UUFDNUMsTUFBTSxRQUFRLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxrQ0FBa0MsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNyRSxPQUFPLElBQUEsbUJBQVUsR0FBRSxDQUFDO0lBQ3RCLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmFuZG9tVVVJRCB9IGZyb20gJ2NyeXB0byc7XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHR5cGUgeyBJb0hlbHBlciB9IGZyb20gJy4uLy4uL2FwaS1wcml2YXRlJztcbmltcG9ydCB7IGNka0NhY2hlRGlyIH0gZnJvbSAnLi4vLi4vdXRpbCc7XG5cbmNvbnN0IElOU1RBTExBVElPTl9JRF9QQVRIID0gcGF0aC5qb2luKGNka0NhY2hlRGlyKCksICdpbnN0YWxsYXRpb24taWQuanNvbicpO1xuXG4vKipcbiAqIEdldCBvciBjcmVhdGUgaW5zdGFsbGF0aW9uIGlkXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRPckNyZWF0ZUluc3RhbGxhdGlvbklkKGlvSGVscGVyOiBJb0hlbHBlcikge1xuICB0cnkge1xuICAgIC8vIENyZWF0ZSB0aGUgY2FjaGUgZGlyZWN0b3J5IGlmIGl0IGRvZXNuJ3QgZXhpc3RcbiAgICBpZiAoIWZzLmV4aXN0c1N5bmMocGF0aC5kaXJuYW1lKElOU1RBTExBVElPTl9JRF9QQVRIKSkpIHtcbiAgICAgIGZzLm1rZGlyU3luYyhwYXRoLmRpcm5hbWUoSU5TVEFMTEFUSU9OX0lEX1BBVEgpLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICB9XG5cbiAgICAvLyBDaGVjayBpZiB0aGUgaW5zdGFsbGF0aW9uIElEIGZpbGUgZXhpc3RzXG4gICAgaWYgKGZzLmV4aXN0c1N5bmMoSU5TVEFMTEFUSU9OX0lEX1BBVEgpKSB7XG4gICAgICBjb25zdCBjYWNoZWRJZCA9IGZzLnJlYWRGaWxlU3luYyhJTlNUQUxMQVRJT05fSURfUEFUSCwgJ3V0Zi04JykudHJpbSgpO1xuXG4gICAgICAvLyBWYWxpZGF0ZSB0aGF0IHRoZSBjYWNoZWQgSUQgaXMgYSB2YWxpZCBVVUlEXG4gICAgICBjb25zdCBVVUlEX1JFR0VYID0gL15bMC05YS1mXXs4fS1bMC05YS1mXXs0fS1bMC05YS1mXXs0fS1bMC05YS1mXXs0fS1bMC05YS1mXXsxMn0kL2k7XG4gICAgICBpZiAoVVVJRF9SRUdFWC50ZXN0KGNhY2hlZElkKSkge1xuICAgICAgICByZXR1cm4gY2FjaGVkSWQ7XG4gICAgICB9XG4gICAgICAvLyBJZiBpbnZhbGlkLCBmYWxsIHRocm91Z2ggdG8gY3JlYXRlIGEgbmV3IG9uZVxuICAgIH1cblxuICAgIC8vIENyZWF0ZSBhIG5ldyBpbnN0YWxsYXRpb24gSURcbiAgICBjb25zdCBuZXdJZCA9IHJhbmRvbVVVSUQoKTtcbiAgICB0cnkge1xuICAgICAgZnMud3JpdGVGaWxlU3luYyhJTlNUQUxMQVRJT05fSURfUEFUSCwgbmV3SWQpO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgLy8gSWYgd2UgY2FuJ3Qgd3JpdGUgdGhlIGZpbGUsIHN0aWxsIHJldHVybiB0aGUgZ2VuZXJhdGVkIElEXG4gICAgICAvLyBidXQgbG9nIGEgdHJhY2UgbWVzc2FnZSBhYm91dCB0aGUgZmFpbHVyZVxuICAgICAgYXdhaXQgaW9IZWxwZXIuZGVmYXVsdHMudHJhY2UoYEZhaWxlZCB0byB3cml0ZSBpbnN0YWxsYXRpb24gSUQgdG8gJHtJTlNUQUxMQVRJT05fSURfUEFUSH06ICR7ZX1gKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ld0lkO1xuICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAvLyBJZiBhbnl0aGluZyBnb2VzIHdyb25nLCBnZW5lcmF0ZSBhIHRlbXBvcmFyeSBJRCBmb3IgdGhpcyBzZXNzaW9uXG4gICAgLy8gYW5kIGxvZyBhIHRyYWNlIG1lc3NhZ2UgYWJvdXQgdGhlIGZhaWx1cmVcbiAgICBhd2FpdCBpb0hlbHBlci5kZWZhdWx0cy50cmFjZShgRXJyb3IgZ2V0dGluZyBpbnN0YWxsYXRpb24gSUQ6ICR7ZX1gKTtcbiAgICByZXR1cm4gcmFuZG9tVVVJRCgpO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getLibraryVersion = getLibraryVersion;
|
|
4
|
+
const child_process_1 = require("child_process");
|
|
5
|
+
const path = require("path");
|
|
6
|
+
const util_1 = require("util");
|
|
7
|
+
const fs = require("fs-extra");
|
|
8
|
+
async function getLibraryVersion(ioHelper) {
|
|
9
|
+
try {
|
|
10
|
+
const command = "node -e 'process.stdout.write(require.resolve(\"aws-cdk-lib\"))'";
|
|
11
|
+
const { stdout } = await (0, util_1.promisify)(child_process_1.exec)(command);
|
|
12
|
+
// stdout should be a file path but lets double check
|
|
13
|
+
if (!fs.existsSync(stdout)) {
|
|
14
|
+
await ioHelper.defaults.trace('Could not get CDK Library Version: require.resolve("aws-cdk-lib") did not return a file path');
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
const pathToPackageJson = path.join(path.dirname(stdout), 'package.json');
|
|
18
|
+
const packageJson = fs.readJSONSync(pathToPackageJson);
|
|
19
|
+
if (!packageJson.version) {
|
|
20
|
+
await ioHelper.defaults.trace('Could not get CDK Library Version: package.json does not have version field');
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
return packageJson.version;
|
|
24
|
+
}
|
|
25
|
+
catch (e) {
|
|
26
|
+
await ioHelper.defaults.trace(`Could not get CDK Library Version: ${e}`);
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlicmFyeS12ZXJzaW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibGlicmFyeS12ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBTUEsOENBdUJDO0FBN0JELGlEQUFxQztBQUNyQyw2QkFBNkI7QUFDN0IsK0JBQWlDO0FBQ2pDLCtCQUErQjtBQUd4QixLQUFLLFVBQVUsaUJBQWlCLENBQUMsUUFBa0I7SUFDeEQsSUFBSSxDQUFDO1FBQ0gsTUFBTSxPQUFPLEdBQUcsa0VBQWtFLENBQUM7UUFDbkYsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLE1BQU0sSUFBQSxnQkFBUyxFQUFDLG9CQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVsRCxxREFBcUQ7UUFDckQsSUFBSSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUMzQixNQUFNLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLDhGQUE4RixDQUFDLENBQUM7WUFDOUgsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxjQUFjLENBQUMsQ0FBQztRQUMxRSxNQUFNLFdBQVcsR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDdkQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUN6QixNQUFNLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLDZFQUE2RSxDQUFDLENBQUM7WUFDN0csT0FBTztRQUNULENBQUM7UUFFRCxPQUFPLFdBQVcsQ0FBQyxPQUFPLENBQUM7SUFDN0IsQ0FBQztJQUFDLE9BQU8sQ0FBTSxFQUFFLENBQUM7UUFDaEIsTUFBTSxRQUFRLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxzQ0FBc0MsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN6RSxPQUFPO0lBQ1QsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBleGVjIH0gZnJvbSAnY2hpbGRfcHJvY2Vzcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgcHJvbWlzaWZ5IH0gZnJvbSAndXRpbCc7XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcy1leHRyYSc7XG5pbXBvcnQgdHlwZSB7IElvSGVscGVyIH0gZnJvbSAnLi4vLi4vYXBpLXByaXZhdGUnO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0TGlicmFyeVZlcnNpb24oaW9IZWxwZXI6IElvSGVscGVyKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCBjb21tYW5kID0gXCJub2RlIC1lICdwcm9jZXNzLnN0ZG91dC53cml0ZShyZXF1aXJlLnJlc29sdmUoXFxcImF3cy1jZGstbGliXFxcIikpJ1wiO1xuICAgIGNvbnN0IHsgc3Rkb3V0IH0gPSBhd2FpdCBwcm9taXNpZnkoZXhlYykoY29tbWFuZCk7XG5cbiAgICAvLyBzdGRvdXQgc2hvdWxkIGJlIGEgZmlsZSBwYXRoIGJ1dCBsZXRzIGRvdWJsZSBjaGVja1xuICAgIGlmICghZnMuZXhpc3RzU3luYyhzdGRvdXQpKSB7XG4gICAgICBhd2FpdCBpb0hlbHBlci5kZWZhdWx0cy50cmFjZSgnQ291bGQgbm90IGdldCBDREsgTGlicmFyeSBWZXJzaW9uOiByZXF1aXJlLnJlc29sdmUoXCJhd3MtY2RrLWxpYlwiKSBkaWQgbm90IHJldHVybiBhIGZpbGUgcGF0aCcpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHBhdGhUb1BhY2thZ2VKc29uID0gcGF0aC5qb2luKHBhdGguZGlybmFtZShzdGRvdXQpLCAncGFja2FnZS5qc29uJyk7XG4gICAgY29uc3QgcGFja2FnZUpzb24gPSBmcy5yZWFkSlNPTlN5bmMocGF0aFRvUGFja2FnZUpzb24pO1xuICAgIGlmICghcGFja2FnZUpzb24udmVyc2lvbikge1xuICAgICAgYXdhaXQgaW9IZWxwZXIuZGVmYXVsdHMudHJhY2UoJ0NvdWxkIG5vdCBnZXQgQ0RLIExpYnJhcnkgVmVyc2lvbjogcGFja2FnZS5qc29uIGRvZXMgbm90IGhhdmUgdmVyc2lvbiBmaWVsZCcpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHJldHVybiBwYWNrYWdlSnNvbi52ZXJzaW9uO1xuICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICBhd2FpdCBpb0hlbHBlci5kZWZhdWx0cy50cmFjZShgQ291bGQgbm90IGdldCBDREsgTGlicmFyeSBWZXJzaW9uOiAke2V9YCk7XG4gICAgcmV0dXJuO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { Duration } from '@aws-cdk/toolkit-lib';
|
|
2
|
+
import type { ErrorDetails } from './schema';
|
|
3
|
+
import * as make from '../../api-private';
|
|
4
|
+
export interface EventResult extends Duration {
|
|
5
|
+
error?: ErrorDetails;
|
|
6
|
+
}
|
|
7
|
+
export interface EventStart {
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Private message types specific to the CLI
|
|
11
|
+
*/
|
|
12
|
+
export declare const CLI_PRIVATE_IO: {
|
|
13
|
+
CDK_CLI_I1000: make.IoMessageMaker<EventStart>;
|
|
14
|
+
CDK_CLI_I1001: make.IoMessageMaker<EventResult>;
|
|
15
|
+
CDK_CLI_I2000: make.IoMessageMaker<EventStart>;
|
|
16
|
+
CDK_CLI_I2001: make.IoMessageMaker<EventResult>;
|
|
17
|
+
CDK_CLI_I3000: make.IoMessageMaker<EventStart>;
|
|
18
|
+
CDK_CLI_I3001: make.IoMessageMaker<EventResult>;
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Payload type of the end message must extend Duration
|
|
22
|
+
*/
|
|
23
|
+
export declare const CLI_PRIVATE_SPAN: {
|
|
24
|
+
SYNTH_ASSEMBLY: {
|
|
25
|
+
name: string;
|
|
26
|
+
start: make.IoMessageMaker<EventStart>;
|
|
27
|
+
end: make.IoMessageMaker<EventResult>;
|
|
28
|
+
};
|
|
29
|
+
COMMAND: {
|
|
30
|
+
name: string;
|
|
31
|
+
start: make.IoMessageMaker<EventStart>;
|
|
32
|
+
end: make.IoMessageMaker<EventResult>;
|
|
33
|
+
};
|
|
34
|
+
DEPLOY: {
|
|
35
|
+
name: string;
|
|
36
|
+
start: make.IoMessageMaker<EventStart>;
|
|
37
|
+
end: make.IoMessageMaker<EventResult>;
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
export declare const CLI_TELEMETRY_CODES: make.IoMessageMaker<EventResult>[];
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CLI_TELEMETRY_CODES = exports.CLI_PRIVATE_SPAN = exports.CLI_PRIVATE_IO = void 0;
|
|
4
|
+
const make = require("../../api-private");
|
|
5
|
+
/**
|
|
6
|
+
* Private message types specific to the CLI
|
|
7
|
+
*/
|
|
8
|
+
exports.CLI_PRIVATE_IO = {
|
|
9
|
+
CDK_CLI_I1000: make.trace({
|
|
10
|
+
code: 'CDK_CLI_I1000',
|
|
11
|
+
description: 'Cloud Execution is starting',
|
|
12
|
+
interface: 'EventStart',
|
|
13
|
+
}),
|
|
14
|
+
CDK_CLI_I1001: make.trace({
|
|
15
|
+
code: 'CDK_CLI_I1001',
|
|
16
|
+
description: 'Cloud Executable Result',
|
|
17
|
+
interface: 'EventResult',
|
|
18
|
+
}),
|
|
19
|
+
CDK_CLI_I2000: make.trace({
|
|
20
|
+
code: 'CDK_CLI_I2000',
|
|
21
|
+
description: 'Command has started',
|
|
22
|
+
interface: 'EventStart',
|
|
23
|
+
}),
|
|
24
|
+
CDK_CLI_I2001: make.trace({
|
|
25
|
+
code: 'CDK_CLI_I2001',
|
|
26
|
+
description: 'Command has finished executing',
|
|
27
|
+
interface: 'EventResult',
|
|
28
|
+
}),
|
|
29
|
+
CDK_CLI_I3000: make.trace({
|
|
30
|
+
code: 'CDK_CLI_I3000',
|
|
31
|
+
description: 'Deploy has started',
|
|
32
|
+
interface: 'EventStart',
|
|
33
|
+
}),
|
|
34
|
+
CDK_CLI_I3001: make.trace({
|
|
35
|
+
code: 'CDK_CLI_I3001',
|
|
36
|
+
description: 'Deploy has finished',
|
|
37
|
+
interface: 'EventResult',
|
|
38
|
+
}),
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* Payload type of the end message must extend Duration
|
|
42
|
+
*/
|
|
43
|
+
exports.CLI_PRIVATE_SPAN = {
|
|
44
|
+
SYNTH_ASSEMBLY: {
|
|
45
|
+
name: 'Synthesis',
|
|
46
|
+
start: exports.CLI_PRIVATE_IO.CDK_CLI_I1000,
|
|
47
|
+
end: exports.CLI_PRIVATE_IO.CDK_CLI_I1001,
|
|
48
|
+
},
|
|
49
|
+
COMMAND: {
|
|
50
|
+
name: 'Command',
|
|
51
|
+
start: exports.CLI_PRIVATE_IO.CDK_CLI_I2000,
|
|
52
|
+
end: exports.CLI_PRIVATE_IO.CDK_CLI_I2001,
|
|
53
|
+
},
|
|
54
|
+
DEPLOY: {
|
|
55
|
+
name: 'Deploy',
|
|
56
|
+
start: exports.CLI_PRIVATE_IO.CDK_CLI_I3000,
|
|
57
|
+
end: exports.CLI_PRIVATE_IO.CDK_CLI_I3001,
|
|
58
|
+
},
|
|
59
|
+
};
|
|
60
|
+
exports.CLI_TELEMETRY_CODES = [
|
|
61
|
+
exports.CLI_PRIVATE_IO.CDK_CLI_I1001,
|
|
62
|
+
exports.CLI_PRIVATE_IO.CDK_CLI_I2001,
|
|
63
|
+
exports.CLI_PRIVATE_IO.CDK_CLI_I3001,
|
|
64
|
+
];
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJtZXNzYWdlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSwwQ0FBMEM7QUFVMUM7O0dBRUc7QUFDVSxRQUFBLGNBQWMsR0FBRztJQUM1QixhQUFhLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBYTtRQUNwQyxJQUFJLEVBQUUsZUFBZTtRQUNyQixXQUFXLEVBQUUsNkJBQTZCO1FBQzFDLFNBQVMsRUFBRSxZQUFZO0tBQ3hCLENBQUM7SUFDRixhQUFhLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBYztRQUNyQyxJQUFJLEVBQUUsZUFBZTtRQUNyQixXQUFXLEVBQUUseUJBQXlCO1FBQ3RDLFNBQVMsRUFBRSxhQUFhO0tBQ3pCLENBQUM7SUFDRixhQUFhLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBYTtRQUNwQyxJQUFJLEVBQUUsZUFBZTtRQUNyQixXQUFXLEVBQUUscUJBQXFCO1FBQ2xDLFNBQVMsRUFBRSxZQUFZO0tBQ3hCLENBQUM7SUFDRixhQUFhLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBYztRQUNyQyxJQUFJLEVBQUUsZUFBZTtRQUNyQixXQUFXLEVBQUUsZ0NBQWdDO1FBQzdDLFNBQVMsRUFBRSxhQUFhO0tBQ3pCLENBQUM7SUFDRixhQUFhLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBYTtRQUNwQyxJQUFJLEVBQUUsZUFBZTtRQUNyQixXQUFXLEVBQUUsb0JBQW9CO1FBQ2pDLFNBQVMsRUFBRSxZQUFZO0tBQ3hCLENBQUM7SUFDRixhQUFhLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBYztRQUNyQyxJQUFJLEVBQUUsZUFBZTtRQUNyQixXQUFXLEVBQUUscUJBQXFCO1FBQ2xDLFNBQVMsRUFBRSxhQUFhO0tBQ3pCLENBQUM7Q0FDSCxDQUFDO0FBRUY7O0dBRUc7QUFDVSxRQUFBLGdCQUFnQixHQUFHO0lBQzlCLGNBQWMsRUFBRTtRQUNkLElBQUksRUFBRSxXQUFXO1FBQ2pCLEtBQUssRUFBRSxzQkFBYyxDQUFDLGFBQWE7UUFDbkMsR0FBRyxFQUFFLHNCQUFjLENBQUMsYUFBYTtLQUNsQztJQUNELE9BQU8sRUFBRTtRQUNQLElBQUksRUFBRSxTQUFTO1FBQ2YsS0FBSyxFQUFFLHNCQUFjLENBQUMsYUFBYTtRQUNuQyxHQUFHLEVBQUUsc0JBQWMsQ0FBQyxhQUFhO0tBQ2xDO0lBQ0QsTUFBTSxFQUFFO1FBQ04sSUFBSSxFQUFFLFFBQVE7UUFDZCxLQUFLLEVBQUUsc0JBQWMsQ0FBQyxhQUFhO1FBQ25DLEdBQUcsRUFBRSxzQkFBYyxDQUFDLGFBQWE7S0FDbEM7Q0FDaUQsQ0FBQztBQUV4QyxRQUFBLG1CQUFtQixHQUFHO0lBQ2pDLHNCQUFjLENBQUMsYUFBYTtJQUM1QixzQkFBYyxDQUFDLGFBQWE7SUFDNUIsc0JBQWMsQ0FBQyxhQUFhO0NBQzdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IER1cmF0aW9uIH0gZnJvbSAnQGF3cy1jZGsvdG9vbGtpdC1saWInO1xuaW1wb3J0IHR5cGUgeyBFcnJvckRldGFpbHMgfSBmcm9tICcuL3NjaGVtYSc7XG5pbXBvcnQgKiBhcyBtYWtlIGZyb20gJy4uLy4uL2FwaS1wcml2YXRlJztcbmltcG9ydCB0eXBlIHsgU3BhbkRlZmluaXRpb24gfSBmcm9tICcuLi8uLi9hcGktcHJpdmF0ZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXZlbnRSZXN1bHQgZXh0ZW5kcyBEdXJhdGlvbiB7XG4gIGVycm9yPzogRXJyb3JEZXRhaWxzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEV2ZW50U3RhcnQge1xufVxuXG4vKipcbiAqIFByaXZhdGUgbWVzc2FnZSB0eXBlcyBzcGVjaWZpYyB0byB0aGUgQ0xJXG4gKi9cbmV4cG9ydCBjb25zdCBDTElfUFJJVkFURV9JTyA9IHtcbiAgQ0RLX0NMSV9JMTAwMDogbWFrZS50cmFjZTxFdmVudFN0YXJ0Pih7XG4gICAgY29kZTogJ0NES19DTElfSTEwMDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnQ2xvdWQgRXhlY3V0aW9uIGlzIHN0YXJ0aW5nJyxcbiAgICBpbnRlcmZhY2U6ICdFdmVudFN0YXJ0JyxcbiAgfSksXG4gIENES19DTElfSTEwMDE6IG1ha2UudHJhY2U8RXZlbnRSZXN1bHQ+KHtcbiAgICBjb2RlOiAnQ0RLX0NMSV9JMTAwMScsXG4gICAgZGVzY3JpcHRpb246ICdDbG91ZCBFeGVjdXRhYmxlIFJlc3VsdCcsXG4gICAgaW50ZXJmYWNlOiAnRXZlbnRSZXN1bHQnLFxuICB9KSxcbiAgQ0RLX0NMSV9JMjAwMDogbWFrZS50cmFjZTxFdmVudFN0YXJ0Pih7XG4gICAgY29kZTogJ0NES19DTElfSTIwMDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnQ29tbWFuZCBoYXMgc3RhcnRlZCcsXG4gICAgaW50ZXJmYWNlOiAnRXZlbnRTdGFydCcsXG4gIH0pLFxuICBDREtfQ0xJX0kyMDAxOiBtYWtlLnRyYWNlPEV2ZW50UmVzdWx0Pih7XG4gICAgY29kZTogJ0NES19DTElfSTIwMDEnLFxuICAgIGRlc2NyaXB0aW9uOiAnQ29tbWFuZCBoYXMgZmluaXNoZWQgZXhlY3V0aW5nJyxcbiAgICBpbnRlcmZhY2U6ICdFdmVudFJlc3VsdCcsXG4gIH0pLFxuICBDREtfQ0xJX0kzMDAwOiBtYWtlLnRyYWNlPEV2ZW50U3RhcnQ+KHtcbiAgICBjb2RlOiAnQ0RLX0NMSV9JMzAwMCcsXG4gICAgZGVzY3JpcHRpb246ICdEZXBsb3kgaGFzIHN0YXJ0ZWQnLFxuICAgIGludGVyZmFjZTogJ0V2ZW50U3RhcnQnLFxuICB9KSxcbiAgQ0RLX0NMSV9JMzAwMTogbWFrZS50cmFjZTxFdmVudFJlc3VsdD4oe1xuICAgIGNvZGU6ICdDREtfQ0xJX0kzMDAxJyxcbiAgICBkZXNjcmlwdGlvbjogJ0RlcGxveSBoYXMgZmluaXNoZWQnLFxuICAgIGludGVyZmFjZTogJ0V2ZW50UmVzdWx0JyxcbiAgfSksXG59O1xuXG4vKipcbiAqIFBheWxvYWQgdHlwZSBvZiB0aGUgZW5kIG1lc3NhZ2UgbXVzdCBleHRlbmQgRHVyYXRpb25cbiAqL1xuZXhwb3J0IGNvbnN0IENMSV9QUklWQVRFX1NQQU4gPSB7XG4gIFNZTlRIX0FTU0VNQkxZOiB7XG4gICAgbmFtZTogJ1N5bnRoZXNpcycsXG4gICAgc3RhcnQ6IENMSV9QUklWQVRFX0lPLkNES19DTElfSTEwMDAsXG4gICAgZW5kOiBDTElfUFJJVkFURV9JTy5DREtfQ0xJX0kxMDAxLFxuICB9LFxuICBDT01NQU5EOiB7XG4gICAgbmFtZTogJ0NvbW1hbmQnLFxuICAgIHN0YXJ0OiBDTElfUFJJVkFURV9JTy5DREtfQ0xJX0kyMDAwLFxuICAgIGVuZDogQ0xJX1BSSVZBVEVfSU8uQ0RLX0NMSV9JMjAwMSxcbiAgfSxcbiAgREVQTE9ZOiB7XG4gICAgbmFtZTogJ0RlcGxveScsXG4gICAgc3RhcnQ6IENMSV9QUklWQVRFX0lPLkNES19DTElfSTMwMDAsXG4gICAgZW5kOiBDTElfUFJJVkFURV9JTy5DREtfQ0xJX0kzMDAxLFxuICB9LFxufSBzYXRpc2ZpZXMgUmVjb3JkPHN0cmluZywgU3BhbkRlZmluaXRpb248YW55LCBhbnk+PjtcblxuZXhwb3J0IGNvbnN0IENMSV9URUxFTUVUUllfQ09ERVMgPSBbXG4gIENMSV9QUklWQVRFX0lPLkNES19DTElfSTEwMDEsXG4gIENMSV9QUklWQVRFX0lPLkNES19DTElfSTIwMDEsXG4gIENMSV9QUklWQVRFX0lPLkNES19DTElfSTMwMDEsXG5dO1xuIl19
|