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,100 @@
|
|
|
1
|
+
import type { Context } from '../../api/context';
|
|
2
|
+
/**
|
|
3
|
+
* argv is the output of yargs
|
|
4
|
+
*/
|
|
5
|
+
export declare function sanitizeCommandLineArguments(argv: any): {
|
|
6
|
+
path: string[];
|
|
7
|
+
parameters: {
|
|
8
|
+
[key: string]: string;
|
|
9
|
+
};
|
|
10
|
+
};
|
|
11
|
+
export declare function sanitizeContext(context: Context): {
|
|
12
|
+
"@aws-cdk/core:newStyleStackSynthesis": boolean;
|
|
13
|
+
"@aws-cdk/core:stackRelativeExports": boolean;
|
|
14
|
+
"@aws-cdk/aws-rds:lowercaseDbIdentifier": boolean;
|
|
15
|
+
"@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": boolean;
|
|
16
|
+
"@aws-cdk/aws-lambda:recognizeVersionProps": boolean;
|
|
17
|
+
"@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": boolean;
|
|
18
|
+
"@aws-cdk/core:target-partitions": boolean;
|
|
19
|
+
"@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": boolean;
|
|
20
|
+
"@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": boolean;
|
|
21
|
+
"@aws-cdk/aws-iam:minimizePolicies": boolean;
|
|
22
|
+
"@aws-cdk/core:checkSecretUsage": boolean;
|
|
23
|
+
"@aws-cdk/aws-lambda:recognizeLayerVersion": boolean;
|
|
24
|
+
"@aws-cdk/core:validateSnapshotRemovalPolicy": boolean;
|
|
25
|
+
"@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": boolean;
|
|
26
|
+
"@aws-cdk/aws-s3:createDefaultLoggingPolicy": boolean;
|
|
27
|
+
"@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": boolean;
|
|
28
|
+
"@aws-cdk/aws-ecs:arnFormatIncludesClusterName": boolean;
|
|
29
|
+
"@aws-cdk/aws-apigateway:disableCloudWatchRole": boolean;
|
|
30
|
+
"@aws-cdk/core:enablePartitionLiterals": boolean;
|
|
31
|
+
"@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": boolean;
|
|
32
|
+
"@aws-cdk/aws-events:eventsTargetQueueSameAccount": boolean;
|
|
33
|
+
"@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": boolean;
|
|
34
|
+
"@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": boolean;
|
|
35
|
+
"@aws-cdk/customresources:installLatestAwsSdkDefault": boolean;
|
|
36
|
+
"@aws-cdk/aws-route53-patterns:useCertificate": boolean;
|
|
37
|
+
"@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": boolean;
|
|
38
|
+
"@aws-cdk/aws-rds:databaseProxyUniqueResourceName": boolean;
|
|
39
|
+
"@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": boolean;
|
|
40
|
+
"@aws-cdk/aws-ec2:launchTemplateDefaultUserData": boolean;
|
|
41
|
+
"@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": boolean;
|
|
42
|
+
"@aws-cdk/aws-redshift:columnId": boolean;
|
|
43
|
+
"@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": boolean;
|
|
44
|
+
"@aws-cdk/aws-apigateway:requestValidatorUniqueId": boolean;
|
|
45
|
+
"@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": boolean;
|
|
46
|
+
"@aws-cdk/aws-kms:aliasNameRef": boolean;
|
|
47
|
+
"@aws-cdk/core:includePrefixInUniqueNameGeneration": boolean;
|
|
48
|
+
"@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": boolean;
|
|
49
|
+
"@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": boolean;
|
|
50
|
+
"@aws-cdk/aws-efs:denyAnonymousAccess": boolean;
|
|
51
|
+
"@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": boolean;
|
|
52
|
+
"@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": boolean;
|
|
53
|
+
"@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": boolean;
|
|
54
|
+
"@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": boolean;
|
|
55
|
+
"@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": boolean;
|
|
56
|
+
"@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": boolean;
|
|
57
|
+
"@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": boolean;
|
|
58
|
+
"@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": boolean;
|
|
59
|
+
"@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": boolean;
|
|
60
|
+
"@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": boolean;
|
|
61
|
+
"@aws-cdk/aws-eks:nodegroupNameAttribute": boolean;
|
|
62
|
+
"@aws-cdk/aws-ec2:ebsDefaultGp3Volume": boolean;
|
|
63
|
+
"@aws-cdk/pipelines:reduceAssetRoleTrustScope": boolean;
|
|
64
|
+
"@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": boolean;
|
|
65
|
+
"@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": boolean;
|
|
66
|
+
"@aws-cdk/aws-s3:keepNotificationInImportedBucket": boolean;
|
|
67
|
+
"@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": boolean;
|
|
68
|
+
"@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": boolean;
|
|
69
|
+
"@aws-cdk/aws-ec2:ec2SumTimeoutEnabled": boolean;
|
|
70
|
+
"@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": boolean;
|
|
71
|
+
"@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages": boolean;
|
|
72
|
+
"@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": boolean;
|
|
73
|
+
"@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": boolean;
|
|
74
|
+
"@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": boolean;
|
|
75
|
+
"@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": boolean;
|
|
76
|
+
"@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": boolean;
|
|
77
|
+
"@aws-cdk/core:aspectStabilization": boolean;
|
|
78
|
+
"@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": boolean;
|
|
79
|
+
"@aws-cdk/aws-ecs:disableEcsImdsBlocking": boolean;
|
|
80
|
+
"@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": boolean;
|
|
81
|
+
"@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": boolean;
|
|
82
|
+
"@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": boolean;
|
|
83
|
+
"@aws-cdk/core:enableAdditionalMetadataCollection": boolean;
|
|
84
|
+
"@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": boolean;
|
|
85
|
+
"@aws-cdk/aws-s3:setUniqueReplicationRoleName": boolean;
|
|
86
|
+
"@aws-cdk/pipelines:reduceStageRoleTrustScope": boolean;
|
|
87
|
+
"@aws-cdk/aws-events:requireEventBusPolicySid": boolean;
|
|
88
|
+
"@aws-cdk/aws-dynamodb:retainTableReplica": boolean;
|
|
89
|
+
"@aws-cdk/cognito:logUserPoolClientSecretValue": boolean;
|
|
90
|
+
"@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": boolean;
|
|
91
|
+
"@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": boolean;
|
|
92
|
+
"@aws-cdk/core:aspectPrioritiesMutating": boolean;
|
|
93
|
+
"@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions": boolean;
|
|
94
|
+
"@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration": boolean;
|
|
95
|
+
"@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": boolean;
|
|
96
|
+
"@aws-cdk/aws-s3:publicAccessBlockedByDefault": boolean;
|
|
97
|
+
"@aws-cdk/aws-lambda:useCdkManagedLogGroup": boolean;
|
|
98
|
+
"@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": boolean;
|
|
99
|
+
"@aws-cdk/core:explicitStackTags": boolean;
|
|
100
|
+
};
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.sanitizeCommandLineArguments = sanitizeCommandLineArguments;
|
|
4
|
+
exports.sanitizeContext = sanitizeContext;
|
|
5
|
+
const feature_flags_1 = require("./feature-flags");
|
|
6
|
+
/**
|
|
7
|
+
* argv is the output of yargs
|
|
8
|
+
*/
|
|
9
|
+
function sanitizeCommandLineArguments(argv) {
|
|
10
|
+
// Get the configuration of the arguments
|
|
11
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
12
|
+
const config = require('../cli-type-registry.json');
|
|
13
|
+
const command = argv._[0];
|
|
14
|
+
const path = [command];
|
|
15
|
+
const parameters = {};
|
|
16
|
+
const globalOptions = Object.keys(config.globalOptions);
|
|
17
|
+
const commandOptions = Object.keys(config.commands[command]?.options ?? {});
|
|
18
|
+
const commandArg = config.commands[command]?.arg;
|
|
19
|
+
for (const argName of Object.keys(argv)) {
|
|
20
|
+
if (argName === commandArg?.name) {
|
|
21
|
+
if (commandArg.variadic) {
|
|
22
|
+
for (let i = 0; i < argv[argName].length; i++) {
|
|
23
|
+
path.push(`$${argName}_${i + 1}`);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
path.push(`$${argName}`);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
// Continue if the arg name is not a global option or command option
|
|
31
|
+
// arg name comes from yargs and could be an alias; we trust that the "normal"
|
|
32
|
+
// name has the same information and that is what we want to record
|
|
33
|
+
if (argv[argName] === undefined || (!globalOptions.includes(argName) && !commandOptions.includes(argName))) {
|
|
34
|
+
continue;
|
|
35
|
+
}
|
|
36
|
+
if (isNumberOrBoolean(argv[argName]) || isKnownEnumValue(argName, argv[argName], command, config)) {
|
|
37
|
+
parameters[argName] = argv[argName];
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
parameters[argName] = '<redacted>';
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return {
|
|
44
|
+
path,
|
|
45
|
+
parameters,
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
function sanitizeContext(context) {
|
|
49
|
+
const sanitizedContext = {};
|
|
50
|
+
for (const [flag, value] of Object.entries(context.all)) {
|
|
51
|
+
// Skip if flag is not in the FeatureFlags enum
|
|
52
|
+
if (!isFeatureFlag(flag)) {
|
|
53
|
+
continue;
|
|
54
|
+
}
|
|
55
|
+
// Falsy options include boolean false, string 'false'
|
|
56
|
+
// All other inputs evaluate to true
|
|
57
|
+
const sanitizedValue = isBoolean(value) ? value : (value !== 'false');
|
|
58
|
+
sanitizedContext[flag] = sanitizedValue;
|
|
59
|
+
}
|
|
60
|
+
return sanitizedContext;
|
|
61
|
+
}
|
|
62
|
+
function isBoolean(value) {
|
|
63
|
+
return typeof value === 'boolean';
|
|
64
|
+
}
|
|
65
|
+
function isNumberOrBoolean(value) {
|
|
66
|
+
return typeof value === 'number' || isBoolean(value);
|
|
67
|
+
}
|
|
68
|
+
function isKnownEnumValue(name, value, command, config) {
|
|
69
|
+
const propertyDefiniton = config.globalOptions[name] ?? config.commands[command]?.options[name];
|
|
70
|
+
if (propertyDefiniton.type === 'string') {
|
|
71
|
+
// Even if the property has choices, only record if the value is a valid choice
|
|
72
|
+
return propertyDefiniton.choices?.includes(value);
|
|
73
|
+
}
|
|
74
|
+
return false;
|
|
75
|
+
}
|
|
76
|
+
function isFeatureFlag(flag) {
|
|
77
|
+
return Object.values(feature_flags_1.FeatureFlag).includes(flag);
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FuaXRhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInNhbml0YXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFNQSxvRUF5Q0M7QUFFRCwwQ0FjQztBQS9ERCxtREFBOEM7QUFHOUM7O0dBRUc7QUFDSCxTQUFnQiw0QkFBNEIsQ0FBQyxJQUFTO0lBQ3BELHlDQUF5QztJQUV6QyxpRUFBaUU7SUFDakUsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLDJCQUEyQixDQUFDLENBQUM7SUFDcEQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMxQixNQUFNLElBQUksR0FBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2pDLE1BQU0sVUFBVSxHQUE4QixFQUFFLENBQUM7SUFFakQsTUFBTSxhQUFhLEdBQVUsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDL0QsTUFBTSxjQUFjLEdBQVUsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNuRixNQUFNLFVBQVUsR0FBbUQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxHQUFHLENBQUM7SUFFakcsS0FBSyxNQUFNLE9BQU8sSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDeEMsSUFBSSxPQUFPLEtBQUssVUFBVSxFQUFFLElBQUksRUFBRSxDQUFDO1lBQ2pDLElBQUksVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUN4QixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO29CQUM5QyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUks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bmltcG9ydCB0eXBlIHsgQ29udGV4dCB9IGZyb20gJy4uLy4uL2FwaS9jb250ZXh0JztcblxuLyoqXG4gKiBhcmd2IGlzIHRoZSBvdXRwdXQgb2YgeWFyZ3NcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNhbml0aXplQ29tbWFuZExpbmVBcmd1bWVudHMoYXJndjogYW55KTogeyBwYXRoOiBzdHJpbmdbXTsgcGFyYW1ldGVyczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSB9IHtcbiAgLy8gR2V0IHRoZSBjb25maWd1cmF0aW9uIG9mIHRoZSBhcmd1bWVudHNcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXJlcXVpcmUtaW1wb3J0c1xuICBjb25zdCBjb25maWcgPSByZXF1aXJlKCcuLi9jbGktdHlwZS1yZWdpc3RyeS5qc29uJyk7XG4gIGNvbnN0IGNvbW1hbmQgPSBhcmd2Ll9bMF07XG4gIGNvbnN0IHBhdGg6IHN0cmluZ1tdID0gW2NvbW1hbmRdO1xuICBjb25zdCBwYXJhbWV0ZXJzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge307XG5cbiAgY29uc3QgZ2xvYmFsT3B0aW9uczogYW55W10gPSBPYmplY3Qua2V5cyhjb25maWcuZ2xvYmFsT3B0aW9ucyk7XG4gIGNvbnN0IGNvbW1hbmRPcHRpb25zOiBhbnlbXSA9IE9iamVjdC5rZXlzKGNvbmZpZy5jb21tYW5kc1tjb21tYW5kXT8ub3B0aW9ucyA/PyB7fSk7XG4gIGNvbnN0IGNvbW1hbmRBcmc6IHsgbmFtZTogc3RyaW5nOyB2YXJpYWRpYzogc3RyaW5nIH0gfCB1bmRlZmluZWQgPSBjb25maWcuY29tbWFuZHNbY29tbWFuZF0/LmFyZztcblxuICBmb3IgKGNvbnN0IGFyZ05hbWUgb2YgT2JqZWN0LmtleXMoYXJndikpIHtcbiAgICBpZiAoYXJnTmFtZSA9PT0gY29tbWFuZEFyZz8ubmFtZSkge1xuICAgICAgaWYgKGNvbW1hbmRBcmcudmFyaWFkaWMpIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcmd2W2FyZ05hbWVdLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgcGF0aC5wdXNoKGAkJHthcmdOYW1lfV8ke2krMX1gKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcGF0aC5wdXNoKGAkJHthcmdOYW1lfWApO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIENvbnRpbnVlIGlmIHRoZSBhcmcgbmFtZSBpcyBub3QgYSBnbG9iYWwgb3B0aW9uIG9yIGNvbW1hbmQgb3B0aW9uXG4gICAgLy8gYXJnIG5hbWUgY29tZXMgZnJvbSB5YXJncyBhbmQgY291bGQgYmUgYW4gYWxpYXM7IHdlIHRydXN0IHRoYXQgdGhlIFwibm9ybWFsXCJcbiAgICAvLyBuYW1lIGhhcyB0aGUgc2FtZSBpbmZvcm1hdGlvbiBhbmQgdGhhdCBpcyB3aGF0IHdlIHdhbnQgdG8gcmVjb3JkXG4gICAgaWYgKGFyZ3ZbYXJnTmFtZV0gPT09IHVuZGVmaW5lZCB8fCAoIWdsb2JhbE9wdGlvbnMuaW5jbHVkZXMoYXJnTmFtZSkgJiYgIWNvbW1hbmRPcHRpb25zLmluY2x1ZGVzKGFyZ05hbWUpKSkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGlmIChpc051bWJlck9yQm9vbGVhbihhcmd2W2FyZ05hbWVdKSB8fCBpc0tub3duRW51bVZhbHVlKGFyZ05hbWUsIGFyZ3ZbYXJnTmFtZV0sIGNvbW1hbmQsIGNvbmZpZykpIHtcbiAgICAgIHBhcmFtZXRlcnNbYXJnTmFtZV0gPSBhcmd2W2FyZ05hbWVdO1xuICAgIH0gZWxzZSB7XG4gICAgICBwYXJhbWV0ZXJzW2FyZ05hbWVdID0gJzxyZWRhY3RlZD4nO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgcGF0aCxcbiAgICBwYXJhbWV0ZXJzLFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2FuaXRpemVDb250ZXh0KGNvbnRleHQ6IENvbnRleHQpIHtcbiAgY29uc3Qgc2FuaXRpemVkQ29udGV4dDogeyBbSyBpbiBGZWF0dXJlRmxhZ106IGJvb2xlYW4gfSA9IHt9IGFzIHsgW0sgaW4gRmVhdHVyZUZsYWddOiBib29sZWFuIH07XG4gIGZvciAoY29uc3QgW2ZsYWcsIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhjb250ZXh0LmFsbCkpIHtcbiAgICAvLyBTa2lwIGlmIGZsYWcgaXMgbm90IGluIHRoZSBGZWF0dXJlRmxhZ3MgZW51bVxuICAgIGlmICghaXNGZWF0dXJlRmxhZyhmbGFnKSkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgLy8gRmFsc3kgb3B0aW9ucyBpbmNsdWRlIGJvb2xlYW4gZmFsc2UsIHN0cmluZyAnZmFsc2UnXG4gICAgLy8gQWxsIG90aGVyIGlucHV0cyBldmFsdWF0ZSB0byB0cnVlXG4gICAgY29uc3Qgc2FuaXRpemVkVmFsdWU6IGJvb2xlYW4gPSBpc0Jvb2xlYW4odmFsdWUpID8gdmFsdWUgOiAodmFsdWUgIT09ICdmYWxzZScpO1xuICAgIHNhbml0aXplZENvbnRleHRbZmxhZ10gPSBzYW5pdGl6ZWRWYWx1ZTtcbiAgfVxuICByZXR1cm4gc2FuaXRpemVkQ29udGV4dDtcbn1cblxuZnVuY3Rpb24gaXNCb29sZWFuKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBib29sZWFuIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ2Jvb2xlYW4nO1xufVxuXG5mdW5jdGlvbiBpc051bWJlck9yQm9vbGVhbih2YWx1ZTogYW55KTogYm9vbGVhbiB7XG4gIHJldHVybiB0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInIHx8IGlzQm9vbGVhbih2YWx1ZSk7XG59XG5cbmZ1bmN0aW9uIGlzS25vd25FbnVtVmFsdWUobmFtZTogc3RyaW5nLCB2YWx1ZTogYW55LCBjb21tYW5kOiBzdHJpbmcsIGNvbmZpZzogYW55KTogYm9vbGVhbiB7XG4gIGNvbnN0IHByb3BlcnR5RGVmaW5pdG9uID0gY29uZmlnLmdsb2JhbE9wdGlvbnNbbmFtZV0gPz8gY29uZmlnLmNvbW1hbmRzW2NvbW1hbmRdPy5vcHRpb25zW25hbWVdO1xuICBpZiAocHJvcGVydHlEZWZpbml0b24udHlwZSA9PT0gJ3N0cmluZycpIHtcbiAgICAvLyBFdmVuIGlmIHRoZSBwcm9wZXJ0eSBoYXMgY2hvaWNlcywgb25seSByZWNvcmQgaWYgdGhlIHZhbHVlIGlzIGEgdmFsaWQgY2hvaWNlXG4gICAgcmV0dXJuIHByb3BlcnR5RGVmaW5pdG9uLmNob2ljZXM/LmluY2x1ZGVzKHZhbHVlKTtcbiAgfVxuICByZXR1cm4gZmFsc2U7XG59XG5cbmZ1bmN0aW9uIGlzRmVhdHVyZUZsYWcoZmxhZzogc3RyaW5nKTogZmxhZyBpcyBGZWF0dXJlRmxhZyB7XG4gIHJldHVybiBPYmplY3QudmFsdWVzKEZlYXR1cmVGbGFnKS5pbmNsdWRlcyhmbGFnIGFzIEZlYXR1cmVGbGFnKTtcbn1cbiJdfQ==
|
|
@@ -1,26 +1,37 @@
|
|
|
1
|
-
interface
|
|
1
|
+
interface SessionIdentifiers {
|
|
2
2
|
readonly cdkCliVersion: string;
|
|
3
3
|
readonly cdkLibraryVersion?: string;
|
|
4
4
|
readonly telemetryVersion: string;
|
|
5
5
|
readonly sessionId: string;
|
|
6
|
-
readonly eventId: string;
|
|
7
6
|
readonly installationId: string;
|
|
8
|
-
readonly timestamp: string;
|
|
9
|
-
readonly accountId?: string;
|
|
10
7
|
readonly region?: string;
|
|
11
8
|
}
|
|
12
|
-
interface
|
|
13
|
-
readonly
|
|
14
|
-
readonly
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
9
|
+
export interface Identifiers extends SessionIdentifiers {
|
|
10
|
+
readonly eventId: string;
|
|
11
|
+
readonly timestamp: string;
|
|
12
|
+
}
|
|
13
|
+
type ConfigEntry = {
|
|
14
|
+
[key: string]: boolean;
|
|
15
|
+
};
|
|
16
|
+
export interface Command {
|
|
17
|
+
readonly path: string[];
|
|
18
|
+
readonly parameters: {
|
|
19
|
+
[key: string]: string;
|
|
20
|
+
};
|
|
21
|
+
readonly config: {
|
|
22
|
+
[key: string]: ConfigEntry;
|
|
21
23
|
};
|
|
22
24
|
}
|
|
23
|
-
interface
|
|
25
|
+
interface SessionEvent {
|
|
26
|
+
readonly command: Command;
|
|
27
|
+
}
|
|
28
|
+
export type EventType = 'SYNTH' | 'INVOKE' | 'DEPLOY';
|
|
29
|
+
export type State = 'ABORTED' | 'FAILED' | 'SUCCEEDED';
|
|
30
|
+
interface Event extends SessionEvent {
|
|
31
|
+
readonly state: State;
|
|
32
|
+
readonly eventType: EventType;
|
|
33
|
+
}
|
|
34
|
+
export interface SessionEnvironment {
|
|
24
35
|
readonly os: {
|
|
25
36
|
readonly platform: string;
|
|
26
37
|
readonly release: string;
|
|
@@ -28,6 +39,8 @@ interface Environment {
|
|
|
28
39
|
readonly ci: boolean;
|
|
29
40
|
readonly nodeVersion: string;
|
|
30
41
|
}
|
|
42
|
+
interface Environment extends SessionEnvironment {
|
|
43
|
+
}
|
|
31
44
|
interface Duration {
|
|
32
45
|
readonly total: number;
|
|
33
46
|
readonly components?: {
|
|
@@ -37,19 +50,28 @@ interface Duration {
|
|
|
37
50
|
type Counters = {
|
|
38
51
|
[key: string]: number;
|
|
39
52
|
};
|
|
40
|
-
|
|
41
|
-
|
|
53
|
+
export declare enum ErrorName {
|
|
54
|
+
TOOLKIT_ERROR = "ToolkitError",
|
|
55
|
+
AUTHENTICATION_ERROR = "AuthenticationError",
|
|
56
|
+
ASSEMBLY_ERROR = "AssemblyError",
|
|
57
|
+
CONTEXT_PROVIDER_ERROR = "ContextProviderError",
|
|
58
|
+
UNKNOWN_ERROR = "UnknownError"
|
|
59
|
+
}
|
|
60
|
+
export interface ErrorDetails {
|
|
61
|
+
readonly name: ErrorName;
|
|
42
62
|
readonly message?: string;
|
|
43
|
-
readonly
|
|
63
|
+
readonly stackTrace?: string;
|
|
44
64
|
readonly logs?: string;
|
|
45
65
|
}
|
|
46
66
|
interface Dependency {
|
|
47
67
|
readonly name: string;
|
|
48
68
|
readonly version: string;
|
|
49
69
|
}
|
|
50
|
-
interface
|
|
70
|
+
interface SessionProject {
|
|
51
71
|
readonly dependencies?: Dependency[];
|
|
52
72
|
}
|
|
73
|
+
interface Project extends SessionProject {
|
|
74
|
+
}
|
|
53
75
|
export interface TelemetrySchema {
|
|
54
76
|
readonly identifiers: Identifiers;
|
|
55
77
|
readonly event: Event;
|
|
@@ -57,6 +79,12 @@ export interface TelemetrySchema {
|
|
|
57
79
|
readonly project: Project;
|
|
58
80
|
readonly duration: Duration;
|
|
59
81
|
readonly counters?: Counters;
|
|
60
|
-
readonly error?:
|
|
82
|
+
readonly error?: ErrorDetails;
|
|
83
|
+
}
|
|
84
|
+
export interface SessionSchema {
|
|
85
|
+
identifiers: SessionIdentifiers;
|
|
86
|
+
event: SessionEvent;
|
|
87
|
+
environment: SessionEnvironment;
|
|
88
|
+
project: SessionProject;
|
|
61
89
|
}
|
|
62
90
|
export {};
|
|
@@ -1,3 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
|
|
3
|
+
exports.ErrorName = void 0;
|
|
4
|
+
var ErrorName;
|
|
5
|
+
(function (ErrorName) {
|
|
6
|
+
ErrorName["TOOLKIT_ERROR"] = "ToolkitError";
|
|
7
|
+
ErrorName["AUTHENTICATION_ERROR"] = "AuthenticationError";
|
|
8
|
+
ErrorName["ASSEMBLY_ERROR"] = "AssemblyError";
|
|
9
|
+
ErrorName["CONTEXT_PROVIDER_ERROR"] = "ContextProviderError";
|
|
10
|
+
ErrorName["UNKNOWN_ERROR"] = "UnknownError";
|
|
11
|
+
})(ErrorName || (exports.ErrorName = ErrorName = {}));
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic2NoZW1hLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQW9EQSxJQUFZLFNBTVg7QUFORCxXQUFZLFNBQVM7SUFDbkIsMkNBQThCLENBQUE7SUFDOUIseURBQTRDLENBQUE7SUFDNUMsNkNBQWdDLENBQUE7SUFDaEMsNERBQStDLENBQUE7SUFDL0MsMkNBQThCLENBQUE7QUFDaEMsQ0FBQyxFQU5XLFNBQVMseUJBQVQsU0FBUyxRQU1wQiIsInNvdXJjZXNDb250ZW50IjpbImludGVyZmFjZSBTZXNzaW9uSWRlbnRpZmllcnMge1xuICByZWFkb25seSBjZGtDbGlWZXJzaW9uOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGNka0xpYnJhcnlWZXJzaW9uPzogc3RyaW5nO1xuICByZWFkb25seSB0ZWxlbWV0cnlWZXJzaW9uOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHNlc3Npb25JZDogc3RyaW5nO1xuICByZWFkb25seSBpbnN0YWxsYXRpb25JZDogc3RyaW5nO1xuICByZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWRlbnRpZmllcnMgZXh0ZW5kcyBTZXNzaW9uSWRlbnRpZmllcnMge1xuICByZWFkb25seSBldmVudElkOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHRpbWVzdGFtcDogc3RyaW5nO1xufVxuXG50eXBlIENvbmZpZ0VudHJ5ID0geyBba2V5OiBzdHJpbmddOiBib29sZWFuIH07XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tbWFuZCB7XG4gIHJlYWRvbmx5IHBhdGg6IHN0cmluZ1tdO1xuICByZWFkb25seSBwYXJhbWV0ZXJzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuICByZWFkb25seSBjb25maWc6IHsgW2tleTogc3RyaW5nXTogQ29uZmlnRW50cnkgfTtcbn1cblxuaW50ZXJmYWNlIFNlc3Npb25FdmVudCB7XG4gIHJlYWRvbmx5IGNvbW1hbmQ6IENvbW1hbmQ7XG59XG5cbmV4cG9ydCB0eXBlIEV2ZW50VHlwZSA9ICdTWU5USCcgfCAnSU5WT0tFJyB8ICdERVBMT1knO1xuZXhwb3J0IHR5cGUgU3RhdGUgPSAnQUJPUlRFRCcgfCAnRkFJTEVEJyB8ICdTVUNDRUVERUQnO1xuaW50ZXJmYWNlIEV2ZW50IGV4dGVuZHMgU2Vzc2lvbkV2ZW50IHtcbiAgcmVhZG9ubHkgc3RhdGU6IFN0YXRlO1xuICByZWFkb25seSBldmVudFR5cGU6IEV2ZW50VHlwZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZXNzaW9uRW52aXJvbm1lbnQge1xuICByZWFkb25seSBvczoge1xuICAgIHJlYWRvbmx5IHBsYXRmb3JtOiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgcmVsZWFzZTogc3RyaW5nO1xuICB9O1xuICByZWFkb25seSBjaTogYm9vbGVhbjtcbiAgcmVhZG9ubHkgbm9kZVZlcnNpb246IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIEVudmlyb25tZW50IGV4dGVuZHMgU2Vzc2lvbkVudmlyb25tZW50IHtcbn1cblxuaW50ZXJmYWNlIER1cmF0aW9uIHtcbiAgcmVhZG9ubHkgdG90YWw6IG51bWJlcjtcbiAgcmVhZG9ubHkgY29tcG9uZW50cz86IHsgW2tleTogc3RyaW5nXTogbnVtYmVyIH07XG59XG5cbnR5cGUgQ291bnRlcnMgPSB7IFtrZXk6IHN0cmluZ106IG51bWJlciB9O1xuXG5leHBvcnQgZW51bSBFcnJvck5hbWUge1xuICBUT09MS0lUX0VSUk9SID0gJ1Rvb2xraXRFcnJvcicsXG4gIEFVVEhFTlRJQ0FUSU9OX0VSUk9SID0gJ0F1dGhlbnRpY2F0aW9uRXJyb3InLFxuICBBU1NFTUJMWV9FUlJPUiA9ICdBc3NlbWJseUVycm9yJyxcbiAgQ09OVEVYVF9QUk9WSURFUl9FUlJPUiA9ICdDb250ZXh0UHJvdmlkZXJFcnJvcicsXG4gIFVOS05PV05fRVJST1IgPSAnVW5rbm93bkVycm9yJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFcnJvckRldGFpbHMge1xuICByZWFkb25seSBuYW1lOiBFcnJvck5hbWU7XG4gIHJlYWRvbmx5IG1lc3NhZ2U/OiBzdHJpbmc7IC8vIHNhbml0aXplZCBzdGFjayBtZXNzYWdlXG4gIHJlYWRvbmx5IHN0YWNrVHJhY2U/OiBzdHJpbmc7IC8vIHNhbml0aXplZCBzdGFjayB0cmFjZVxuICByZWFkb25seSBsb2dzPzogc3RyaW5nOyAvLyBzYW5pdGl6ZWQgc3RhY2sgbG9nc1xufVxuXG5pbnRlcmZhY2UgRGVwZW5kZW5jeSB7XG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgdmVyc2lvbjogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgU2Vzc2lvblByb2plY3Qge1xuICByZWFkb25seSBkZXBlbmRlbmNpZXM/OiBEZXBlbmRlbmN5W107XG59XG5cbmludGVyZmFjZSBQcm9qZWN0IGV4dGVuZHMgU2Vzc2lvblByb2plY3Qge1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRlbGVtZXRyeVNjaGVtYSB7XG4gIHJlYWRvbmx5IGlkZW50aWZpZXJzOiBJZGVudGlmaWVycztcbiAgcmVhZG9ubHkgZXZlbnQ6IEV2ZW50O1xuICByZWFkb25seSBlbnZpcm9ubWVudDogRW52aXJvbm1lbnQ7XG4gIHJlYWRvbmx5IHByb2plY3Q6IFByb2plY3Q7XG4gIHJlYWRvbmx5IGR1cmF0aW9uOiBEdXJhdGlvbjtcbiAgcmVhZG9ubHkgY291bnRlcnM/OiBDb3VudGVycztcbiAgcmVhZG9ubHkgZXJyb3I/OiBFcnJvckRldGFpbHM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2Vzc2lvblNjaGVtYSB7XG4gIGlkZW50aWZpZXJzOiBTZXNzaW9uSWRlbnRpZmllcnM7XG4gIGV2ZW50OiBTZXNzaW9uRXZlbnQ7XG4gIGVudmlyb25tZW50OiBTZXNzaW9uRW52aXJvbm1lbnQ7XG4gIHByb2plY3Q6IFNlc3Npb25Qcm9qZWN0O1xufVxuIl19
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { type EventType, type ErrorDetails } from './schema';
|
|
2
|
+
import type { ITelemetrySink } from './sink-interface';
|
|
3
|
+
import type { Context } from '../../api/context';
|
|
4
|
+
import type { CliIoHost } from '../io-host/cli-io-host';
|
|
5
|
+
export interface TelemetrySessionProps {
|
|
6
|
+
readonly ioHost: CliIoHost;
|
|
7
|
+
readonly client: ITelemetrySink;
|
|
8
|
+
readonly arguments: any;
|
|
9
|
+
readonly context: Context;
|
|
10
|
+
}
|
|
11
|
+
export interface TelemetryEvent {
|
|
12
|
+
readonly eventType: EventType;
|
|
13
|
+
readonly duration: number;
|
|
14
|
+
readonly error?: ErrorDetails;
|
|
15
|
+
}
|
|
16
|
+
export declare class TelemetrySession {
|
|
17
|
+
private readonly props;
|
|
18
|
+
private ioHost;
|
|
19
|
+
private client;
|
|
20
|
+
private _sessionInfo?;
|
|
21
|
+
private span?;
|
|
22
|
+
private count;
|
|
23
|
+
constructor(props: TelemetrySessionProps);
|
|
24
|
+
begin(): Promise<void>;
|
|
25
|
+
attachRegion(region: string): Promise<void>;
|
|
26
|
+
/**
|
|
27
|
+
* When the command is complete, so is the CliIoHost. Ends the span of the entire CliIoHost
|
|
28
|
+
* and notifies with an optional error message in the data.
|
|
29
|
+
*/
|
|
30
|
+
end(error?: ErrorDetails): Promise<void>;
|
|
31
|
+
emit(event: TelemetryEvent): Promise<void>;
|
|
32
|
+
private get sessionInfo();
|
|
33
|
+
}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TelemetrySession = void 0;
|
|
4
|
+
const crypto_1 = require("crypto");
|
|
5
|
+
const toolkit_lib_1 = require("@aws-cdk/toolkit-lib");
|
|
6
|
+
const installation_id_1 = require("./installation-id");
|
|
7
|
+
const library_version_1 = require("./library-version");
|
|
8
|
+
const sanitation_1 = require("./sanitation");
|
|
9
|
+
const schema_1 = require("./schema");
|
|
10
|
+
const ci_systems_1 = require("../ci-systems");
|
|
11
|
+
const messages_1 = require("../telemetry/messages");
|
|
12
|
+
const ci_1 = require("../util/ci");
|
|
13
|
+
const version_1 = require("../version");
|
|
14
|
+
const ABORTED_ERROR_MESSAGE = '__CDK-Toolkit__Aborted';
|
|
15
|
+
class TelemetrySession {
|
|
16
|
+
constructor(props) {
|
|
17
|
+
this.props = props;
|
|
18
|
+
this.count = 0;
|
|
19
|
+
this.ioHost = props.ioHost;
|
|
20
|
+
this.client = props.client;
|
|
21
|
+
}
|
|
22
|
+
async begin() {
|
|
23
|
+
// sanitize the raw cli input
|
|
24
|
+
const { path, parameters } = (0, sanitation_1.sanitizeCommandLineArguments)(this.props.arguments);
|
|
25
|
+
this._sessionInfo = {
|
|
26
|
+
identifiers: {
|
|
27
|
+
installationId: await (0, installation_id_1.getOrCreateInstallationId)(this.ioHost.asIoHelper()),
|
|
28
|
+
sessionId: (0, crypto_1.randomUUID)(),
|
|
29
|
+
telemetryVersion: '1.0',
|
|
30
|
+
cdkCliVersion: (0, version_1.versionNumber)(),
|
|
31
|
+
cdkLibraryVersion: await (0, library_version_1.getLibraryVersion)(this.ioHost.asIoHelper()),
|
|
32
|
+
},
|
|
33
|
+
event: {
|
|
34
|
+
command: {
|
|
35
|
+
path,
|
|
36
|
+
parameters,
|
|
37
|
+
config: {
|
|
38
|
+
context: (0, sanitation_1.sanitizeContext)(this.props.context),
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
},
|
|
42
|
+
environment: {
|
|
43
|
+
ci: (0, ci_1.isCI)() || Boolean((0, ci_systems_1.detectCiSystem)()),
|
|
44
|
+
os: {
|
|
45
|
+
platform: process.platform,
|
|
46
|
+
release: process.release.name,
|
|
47
|
+
},
|
|
48
|
+
nodeVersion: process.version,
|
|
49
|
+
},
|
|
50
|
+
project: {},
|
|
51
|
+
};
|
|
52
|
+
// If SIGINT has a listener installed, its default behavior will be removed (Node.js will no longer exit).
|
|
53
|
+
// This ensures that on SIGINT we process safely close the telemetry session before exiting.
|
|
54
|
+
process.on('SIGINT', async () => {
|
|
55
|
+
try {
|
|
56
|
+
await this.end({
|
|
57
|
+
name: schema_1.ErrorName.TOOLKIT_ERROR,
|
|
58
|
+
message: ABORTED_ERROR_MESSAGE,
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
catch (e) {
|
|
62
|
+
await this.ioHost.defaults.trace(`Ending Telemetry failed: ${e.message}`);
|
|
63
|
+
}
|
|
64
|
+
process.exit(1);
|
|
65
|
+
});
|
|
66
|
+
// Begin the session span
|
|
67
|
+
this.span = await this.ioHost.asIoHelper().span(messages_1.CLI_PRIVATE_SPAN.COMMAND).begin({});
|
|
68
|
+
}
|
|
69
|
+
async attachRegion(region) {
|
|
70
|
+
this.sessionInfo.identifiers = {
|
|
71
|
+
...this.sessionInfo.identifiers,
|
|
72
|
+
region,
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* When the command is complete, so is the CliIoHost. Ends the span of the entire CliIoHost
|
|
77
|
+
* and notifies with an optional error message in the data.
|
|
78
|
+
*/
|
|
79
|
+
async end(error) {
|
|
80
|
+
await this.span?.end({ error });
|
|
81
|
+
// Ideally span.end() should no-op if called twice, but that is not the case right now
|
|
82
|
+
this.span = undefined;
|
|
83
|
+
await this.client.flush();
|
|
84
|
+
}
|
|
85
|
+
async emit(event) {
|
|
86
|
+
this.count += 1;
|
|
87
|
+
return this.client.emit({
|
|
88
|
+
event: {
|
|
89
|
+
command: this.sessionInfo.event.command,
|
|
90
|
+
state: getState(event.error),
|
|
91
|
+
eventType: event.eventType,
|
|
92
|
+
},
|
|
93
|
+
identifiers: {
|
|
94
|
+
...this.sessionInfo.identifiers,
|
|
95
|
+
eventId: `${this.sessionInfo.identifiers.sessionId}:${this.count}`,
|
|
96
|
+
timestamp: new Date().toISOString(),
|
|
97
|
+
},
|
|
98
|
+
environment: this.sessionInfo.environment,
|
|
99
|
+
project: this.sessionInfo.project,
|
|
100
|
+
duration: {
|
|
101
|
+
total: event.duration,
|
|
102
|
+
},
|
|
103
|
+
...(event.error ? {
|
|
104
|
+
error: {
|
|
105
|
+
name: event.error.name,
|
|
106
|
+
},
|
|
107
|
+
} : {}),
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
get sessionInfo() {
|
|
111
|
+
if (!this._sessionInfo) {
|
|
112
|
+
throw new toolkit_lib_1.ToolkitError('Session Info not initialized. Call begin() first.');
|
|
113
|
+
}
|
|
114
|
+
return this._sessionInfo;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
exports.TelemetrySession = TelemetrySession;
|
|
118
|
+
function getState(error) {
|
|
119
|
+
if (error) {
|
|
120
|
+
return isAbortedError(error) ? 'ABORTED' : 'FAILED';
|
|
121
|
+
}
|
|
122
|
+
return 'SUCCEEDED';
|
|
123
|
+
}
|
|
124
|
+
function isAbortedError(error) {
|
|
125
|
+
if (error?.name === 'ToolkitError' && error?.message?.includes(ABORTED_ERROR_MESSAGE)) {
|
|
126
|
+
return true;
|
|
127
|
+
}
|
|
128
|
+
return false;
|
|
129
|
+
}
|
|
130
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInNlc3Npb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUNBQW9DO0FBQ3BDLHNEQUFvRDtBQUNwRCx1REFBOEQ7QUFDOUQsdURBQXNEO0FBQ3RELDZDQUE2RTtBQUM3RSxxQ0FBd0c7QUFJeEcsOENBQStDO0FBRy9DLG9EQUF5RDtBQUN6RCxtQ0FBa0M7QUFDbEMsd0NBQTJDO0FBRTNDLE1BQU0scUJBQXFCLEdBQUcsd0JBQXdCLENBQUM7QUFldkQsTUFBYSxnQkFBZ0I7SUFPM0IsWUFBNkIsS0FBNEI7UUFBNUIsVUFBSyxHQUFMLEtBQUssQ0FBdUI7UUFGakQsVUFBSyxHQUFHLENBQUMsQ0FBQztRQUdoQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7UUFDM0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO0lBQzdCLENBQUM7SUFFTSxLQUFLLENBQUMsS0FBSztRQUNoQiw2QkFBNkI7UUFDN0IsTUFBTSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsR0FBRyxJQUFBLHlDQUE0QixFQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDaEYsSUFBSSxDQUFDLFlBQVksR0FBRztZQUNsQixXQUFXLEVBQUU7Z0JBQ1gsY0FBYyxFQUFFLE1BQU0sSUFBQSwyQ0FBeUIsRUFBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUN6RSxTQUFTLEVBQUUsSUFBQSxtQkFBVSxHQUFFO2dCQUN2QixnQkFBZ0IsRUFBRSxLQUFLO2dCQUN2QixhQUFhLEVBQUUsSUFBQSx1QkFBYSxHQUFFO2dCQUM5QixpQkFBaUIsRUFBRSxNQUFNLElBQUEsbUNBQWlCLEVBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQzthQUNyRTtZQUNELEtBQUssRUFBRTtnQkFDTCxPQUFPLEVBQUU7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QUNSLEtBQUssRUFBRSxLQUFLLENBQUMsUUFBUTthQUN0QjtZQUNELEdBQUcsQ0FBRSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztnQkFDakIsS0FBSyxFQUFFO29CQUNMLElBQUksRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUk7aUJBQ3ZCO2FBQ0YsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1NBQ1IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELElBQVksV0FBVztRQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3ZCLE1BQU0sSUFBSSwwQkFBWSxDQUFDLG1EQUFtRCxDQUFDLENBQUM7UUFDOUUsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0NBQ0Y7QUEvR0QsNENBK0dDO0FBRUQsU0FBUyxRQUFRLENBQUMsS0FBb0I7SUFDcEMsSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUNWLE9BQU8sY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztJQUN0RCxDQUFDO0lBQ0QsT0FBTyxXQUFXLENBQUM7QUFDckIsQ0FBQztBQUVELFNBQVMsY0FBYyxDQUFDLEtBQW9CO0lBQzFDLElBQUksS0FBSyxFQUFFLElBQUksS0FBSyxjQUFjLElBQUksS0FBSyxFQUFFLE9BQU8sRUFBRSxRQUFRLENBQUMscUJBQXFCLENBQUMsRUFBRSxDQUFDO1FBQ3RGLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUNELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJhbmRvbVVVSUQgfSBmcm9tICdjcnlwdG8nO1xuaW1wb3J0IHsgVG9vbGtpdEVycm9yIH0gZnJvbSAnQGF3cy1jZGsvdG9vbGtpdC1saWInO1xuaW1wb3J0IHsgZ2V0T3JDcmVhdGVJbnN0YWxsYXRpb25JZCB9IGZyb20gJy4vaW5zdGFsbGF0aW9uLWlkJztcbmltcG9ydCB7IGdldExpYnJhcnlWZXJzaW9uIH0gZnJvbSAnLi9saWJyYXJ5LXZlcnNpb24nO1xuaW1wb3J0IHsgc2FuaXRpemVDb21tYW5kTGluZUFyZ3VtZW50cywgc2FuaXRpemVDb250ZXh0IH0gZnJvbSAnLi9zYW5pdGF0aW9uJztcbmltcG9ydCB7IHR5cGUgRXZlbnRUeXBlLCB0eXBlIFNlc3Npb25TY2hlbWEsIHR5cGUgU3RhdGUsIHR5cGUgRXJyb3JEZXRhaWxzLCBFcnJvck5hbWUgfSBmcm9tICcuL3NjaGVtYSc7XG5pbXBvcnQgdHlwZSB7IElUZWxlbWV0cnlTaW5rIH0gZnJvbSAnLi9zaW5rLWludGVyZmFjZSc7XG5pbXBvcnQgdHlwZSB7IENvbnRleHQgfSBmcm9tICcuLi8uLi9hcGkvY29udGV4dCc7XG5pbXBvcnQgdHlwZSB7IElNZXNzYWdlU3BhbiB9IGZyb20gJy4uLy4uL2FwaS1wcml2YXRlJztcbmltcG9ydCB7IGRldGVjdENpU3lzdGVtIH0gZnJvbSAnLi4vY2ktc3lzdGVtcyc7XG5pbXBvcnQgdHlwZSB7IENsaUlvSG9zdCB9IGZyb20gJy4uL2lvLWhvc3QvY2xpLWlvLWhvc3QnO1xuaW1wb3J0IHR5cGUgeyBFdmVudFJlc3VsdCB9IGZyb20gJy4uL3RlbGVtZXRyeS9tZXNzYWdlcyc7XG5pbXBvcnQgeyBDTElfUFJJVkFURV9TUEFOIH0gZnJvbSAnLi4vdGVsZW1ldHJ5L21lc3NhZ2VzJztcbmltcG9ydCB7IGlzQ0kgfSBmcm9tICcuLi91dGlsL2NpJztcbmltcG9ydCB7IHZlcnNpb25OdW1iZXIgfSBmcm9tICcuLi92ZXJzaW9uJztcblxuY29uc3QgQUJPUlRFRF9FUlJPUl9NRVNTQUdFID0gJ19fQ0RLLVRvb2xraXRfX0Fib3J0ZWQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRlbGVtZXRyeVNlc3Npb25Qcm9wcyB7XG4gIHJlYWRvbmx5IGlvSG9zdDogQ2xpSW9Ib3N0O1xuICByZWFkb25seSBjbGllbnQ6IElUZWxlbWV0cnlTaW5rO1xuICByZWFkb25seSBhcmd1bWVudHM6IGFueTtcbiAgcmVhZG9ubHkgY29udGV4dDogQ29udGV4dDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUZWxlbWV0cnlFdmVudCB7XG4gIHJlYWRvbmx5IGV2ZW50VHlwZTogRXZlbnRUeXBlO1xuICByZWFkb25seSBkdXJhdGlvbjogbnVtYmVyO1xuICByZWFkb25seSBlcnJvcj86IEVycm9yRGV0YWlscztcbn1cblxuZXhwb3J0IGNsYXNzIFRlbGVtZXRyeVNlc3Npb24ge1xuICBwcml2YXRlIGlvSG9zdDogQ2xpSW9Ib3N0O1xuICBwcml2YXRlIGNsaWVudDogSVRlbGVtZXRyeVNpbms7XG4gIHByaXZhdGUgX3Nlc3Npb25JbmZvPzogU2Vzc2lvblNjaGVtYTtcbiAgcHJpdmF0ZSBzcGFuPzogSU1lc3NhZ2VTcGFuPEV2ZW50UmVzdWx0PjtcbiAgcHJpdmF0ZSBjb3VudCA9IDA7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBwcm9wczogVGVsZW1ldHJ5U2Vzc2lvblByb3BzKSB7XG4gICAgdGhpcy5pb0hvc3QgPSBwcm9wcy5pb0hvc3Q7XG4gICAgdGhpcy5jbGllbnQgPSBwcm9wcy5jbGllbnQ7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgYmVnaW4oKSB7XG4gICAgLy8gc2FuaXRpemUgdGhlIHJhdyBjbGkgaW5wdXRcbiAgICBjb25zdCB7IHBhdGgsIHBhcmFtZXRlcnMgfSA9IHNhbml0aXplQ29tbWFuZExpbmVBcmd1bWVudHModGhpcy5wcm9wcy5hcmd1bWVudHMpO1xuICAgIHRoaXMuX3Nlc3Npb25JbmZvID0ge1xuICAgICAgaWRlbnRpZmllcnM6IHtcbiAgICAgICAgaW5zdGFsbGF0aW9uSWQ6IGF3YWl0IGdldE9yQ3JlYXRlSW5zdGFsbGF0aW9uSWQodGhpcy5pb0hvc3QuYXNJb0hlbHBlcigpKSxcbiAgICAgICAgc2Vzc2lvbklkOiByYW5kb21VVUlEKCksXG4gICAgICAgIHRlbGVtZXRyeVZlcnNpb246ICcxLjAnLFxuICAgICAgICBjZGtDbGlWZXJzaW9uOiB2ZXJzaW9uTnVtYmVyKCksXG4gICAgICAgIGNka0xpYnJhcnlWZXJzaW9uOiBhd2FpdCBnZXRMaWJyYXJ5VmVyc2lvbih0aGlzLmlvSG9zdC5hc0lvSGVscGVyKCkpLFxuICAgICAgfSxcbiAgICAgIGV2ZW50OiB7XG4gICAgICAgIGNvbW1hbmQ6IHtcbiAgICAgICAgICBwYXRoLFxuICAgICAgICAgIHBhcmFtZXRlcnMsXG4gICAgICAgICAgY29uZmlnOiB7XG4gICAgICAgICAgICBjb250ZXh0OiBzYW5pdGl6ZUNvbnRleHQodGhpcy5wcm9wcy5jb250ZXh0KSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIGVudmlyb25tZW50OiB7XG4gICAgICAgIGNpOiBpc0NJKCkgfHwgQm9vbGVhbihkZXRlY3RDaVN5c3RlbSgpKSxcbiAgICAgICAgb3M6IHtcbiAgICAgICAgICBwbGF0Zm9ybTogcHJvY2Vzcy5wbGF0Zm9ybSxcbiAgICAgICAgICByZWxlYXNlOiBwcm9jZXNzLnJlbGVhc2UubmFtZSxcbiAgICAgICAgfSxcbiAgICAgICAgbm9kZVZlcnNpb246IHByb2Nlc3MudmVyc2lvbixcbiAgICAgIH0sXG4gICAgICBwcm9qZWN0OiB7fSxcbiAgICB9O1xuXG4gICAgLy8gSWYgU0lHSU5UIGhhcyBhIGxpc3RlbmVyIGluc3RhbGxlZCwgaXRzIGRlZmF1bHQgYmVoYXZpb3Igd2lsbCBiZSByZW1vdmVkIChOb2RlLmpzIHdpbGwgbm8gbG9uZ2VyIGV4aXQpLlxuICAgIC8vIFRoaXMgZW5zdXJlcyB0aGF0IG9uIFNJR0lOVCB3ZSBwcm9jZXNzIHNhZmVseSBjbG9zZSB0aGUgdGVsZW1ldHJ5IHNlc3Npb24gYmVmb3JlIGV4aXRpbmcuXG4gICAgcHJvY2Vzcy5vbignU0lHSU5UJywgYXN5bmMgKCkgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgdGhpcy5lbmQoe1xuICAgICAgICAgIG5hbWU6IEVycm9yTmFtZS5UT09MS0lUX0VSUk9SLFxuICAgICAgICAgIG1lc3NhZ2U6IEFCT1JURURfRVJST1JfTUVTU0FHRSxcbiAgICAgICAgfSk7XG4gICAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5pb0hvc3QuZGVmYXVsdHMudHJhY2UoYEVuZGluZyBUZWxlbWV0cnkgZmFpbGVkOiAke2UubWVzc2FnZX1gKTtcbiAgICAgIH1cbiAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICB9KTtcblxuICAgIC8vIEJlZ2luIHRoZSBzZXNzaW9uIHNwYW5cbiAgICB0aGlzLnNwYW4gPSBhd2FpdCB0aGlzLmlvSG9zdC5hc0lvSGVscGVyKCkuc3BhbihDTElfUFJJVkFURV9TUEFOLkNPTU1BTkQpLmJlZ2luKHt9KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBhdHRhY2hSZWdpb24ocmVnaW9uOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNlc3Npb25JbmZvLmlkZW50aWZpZXJzID0ge1xuICAgICAgLi4udGhpcy5zZXNzaW9uSW5mby5pZGVudGlmaWVycyxcbiAgICAgIHJlZ2lvbixcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZW4gdGhlIGNvbW1hbmQgaXMgY29tcGxldGUsIHNvIGlzIHRoZSBDbGlJb0hvc3QuIEVuZHMgdGhlIHNwYW4gb2YgdGhlIGVudGlyZSBDbGlJb0hvc3RcbiAgICogYW5kIG5vdGlmaWVzIHdpdGggYW4gb3B0aW9uYWwgZXJyb3IgbWVzc2FnZSBpbiB0aGUgZGF0YS5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBlbmQoZXJyb3I/OiBFcnJvckRldGFpbHMpIHtcbiAgICBhd2FpdCB0aGlzLnNwYW4/LmVuZCh7IGVycm9yIH0pO1xuICAgIC8vIElkZWFsbHkgc3Bhbi5lbmQoKSBzaG91bGQgbm8tb3AgaWYgY2FsbGVkIHR3aWNlLCBidXQgdGhhdCBpcyBub3QgdGhlIGNhc2UgcmlnaHQgbm93XG4gICAgdGhpcy5zcGFuID0gdW5kZWZpbmVkO1xuICAgIGF3YWl0IHRoaXMuY2xpZW50LmZsdXNoKCk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZW1pdChldmVudDogVGVsZW1ldHJ5RXZlbnQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmNvdW50ICs9IDE7XG4gICAgcmV0dXJuIHRoaXMuY2xpZW50LmVtaXQoe1xuICAgICAgZXZlbnQ6IHtcbiAgICAgICAgY29tbWFuZDogdGhpcy5zZXNzaW9uSW5mby5ldmVudC5jb21tYW5kLFxuICAgICAgICBzdGF0ZTogZ2V0U3RhdGUoZXZlbnQuZXJyb3IpLFxuICAgICAgICBldmVudFR5cGU6IGV2ZW50LmV2ZW50VHlwZSxcbiAgICAgIH0sXG4gICAgICBpZGVudGlmaWVyczoge1xuICAgICAgICAuLi50aGlzLnNlc3Npb25JbmZvLmlkZW50aWZpZXJzLFxuICAgICAgICBldmVudElkOiBgJHt0aGlzLnNlc3Npb25JbmZvLmlkZW50aWZpZXJzLnNlc3Npb25JZH06JHt0aGlzLmNvdW50fWAsXG4gICAgICAgIHRpbWVzdGFtcDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuICAgICAgfSxcbiAgICAgIGVudmlyb25tZW50OiB0aGlzLnNlc3Npb25JbmZvLmVudmlyb25tZW50LFxuICAgICAgcHJvamVjdDogdGhpcy5zZXNzaW9uSW5mby5wcm9qZWN0LFxuICAgICAgZHVyYXRpb246IHtcbiAgICAgICAgdG90YWw6IGV2ZW50LmR1cmF0aW9uLFxuICAgICAgfSxcbiAgICAgIC4uLiggZXZlbnQuZXJyb3IgPyB7XG4gICAgICAgIGVycm9yOiB7XG4gICAgICAgICAgbmFtZTogZXZlbnQuZXJyb3IubmFtZSxcbiAgICAgICAgfSxcbiAgICAgIH0gOiB7fSksXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldCBzZXNzaW9uSW5mbygpOiBTZXNzaW9uU2NoZW1hIHtcbiAgICBpZiAoIXRoaXMuX3Nlc3Npb25JbmZvKSB7XG4gICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdTZXNzaW9uIEluZm8gbm90IGluaXRpYWxpemVkLiBDYWxsIGJlZ2luKCkgZmlyc3QuJyk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9zZXNzaW9uSW5mbztcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRTdGF0ZShlcnJvcj86IEVycm9yRGV0YWlscyk6IFN0YXRlIHtcbiAgaWYgKGVycm9yKSB7XG4gICAgcmV0dXJuIGlzQWJvcnRlZEVycm9yKGVycm9yKSA/ICdBQk9SVEVEJyA6ICdGQUlMRUQnO1xuICB9XG4gIHJldHVybiAnU1VDQ0VFREVEJztcbn1cblxuZnVuY3Rpb24gaXNBYm9ydGVkRXJyb3IoZXJyb3I/OiBFcnJvckRldGFpbHMpIHtcbiAgaWYgKGVycm9yPy5uYW1lID09PSAnVG9vbGtpdEVycm9yJyAmJiBlcnJvcj8ubWVzc2FnZT8uaW5jbHVkZXMoQUJPUlRFRF9FUlJPUl9NRVNTQUdFKSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cbiJdfQ==
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Context } from '../api/context';
|
|
2
2
|
import { Settings } from '../api/settings';
|
|
3
|
+
import type { IoHelper } from '../api-private';
|
|
3
4
|
export declare const PROJECT_CONFIG = "cdk.json";
|
|
4
5
|
export { PROJECT_CONTEXT } from '../api/context';
|
|
5
6
|
export declare const USER_DEFAULTS = "~/.cdk.json";
|
|
@@ -17,6 +18,7 @@ export declare enum Command {
|
|
|
17
18
|
VERSION = "version",
|
|
18
19
|
WATCH = "watch",
|
|
19
20
|
GC = "gc",
|
|
21
|
+
FLAGS = "flags",
|
|
20
22
|
ROLLBACK = "rollback",
|
|
21
23
|
IMPORT = "import",
|
|
22
24
|
ACKNOWLEDGE = "acknowledge",
|
|
@@ -56,7 +58,14 @@ export interface ConfigurationProps {
|
|
|
56
58
|
* All sources of settings combined
|
|
57
59
|
*/
|
|
58
60
|
export declare class Configuration {
|
|
59
|
-
|
|
61
|
+
/**
|
|
62
|
+
* Creates user configuration from commandLineArguments
|
|
63
|
+
*/
|
|
64
|
+
static fromArgs(ioHelper: IoHelper, args?: Arguments): Promise<Configuration>;
|
|
65
|
+
/**
|
|
66
|
+
* Creates user configuration from commandLineArguments and loads
|
|
67
|
+
*/
|
|
68
|
+
static fromArgsAndFiles(ioHelper: IoHelper, props?: ConfigurationProps): Promise<Configuration>;
|
|
60
69
|
settings: Settings;
|
|
61
70
|
context: Context;
|
|
62
71
|
readonly defaultConfig: Settings;
|
|
@@ -65,13 +74,14 @@ export declare class Configuration {
|
|
|
65
74
|
private _projectConfig?;
|
|
66
75
|
private _projectContext?;
|
|
67
76
|
private loaded;
|
|
68
|
-
|
|
77
|
+
private ioHelper;
|
|
78
|
+
private constructor();
|
|
69
79
|
private get projectConfig();
|
|
70
80
|
get projectContext(): Settings;
|
|
71
81
|
/**
|
|
72
82
|
* Load all config
|
|
73
83
|
*/
|
|
74
|
-
|
|
84
|
+
private loadConfigFiles;
|
|
75
85
|
/**
|
|
76
86
|
* Save the project context
|
|
77
87
|
*/
|
|
@@ -90,4 +100,4 @@ export declare class Configuration {
|
|
|
90
100
|
* @param argv - the received CLI arguments.
|
|
91
101
|
* @returns a new Settings object.
|
|
92
102
|
*/
|
|
93
|
-
export declare function commandLineArgumentsToSettings(argv: Arguments): Settings
|
|
103
|
+
export declare function commandLineArgumentsToSettings(ioHelper: IoHelper, argv: Arguments): Promise<Settings>;
|