@mavogel/cdk-vscode-server 0.0.97 → 0.0.98

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.
@@ -6,11 +6,11 @@ const aws_ec2_1 = require("aws-cdk-lib/aws-ec2");
6
6
  const aws_iam_1 = require("aws-cdk-lib/aws-iam");
7
7
  const aws_logs_1 = require("aws-cdk-lib/aws-logs");
8
8
  const custom_resources_1 = require("aws-cdk-lib/custom-resources");
9
- const cdk_nag_1 = require("cdk-nag");
10
9
  const constructs_1 = require("constructs");
11
10
  // copied with grace from here until cdk supports it
12
11
  // https://github.com/aws/aws-cdk/issues/15115#issuecomment-1665104687
13
12
  class AwsManagedPrefixList extends constructs_1.Construct {
13
+ prefixList;
14
14
  constructor(scope, id, { name }) {
15
15
  super(scope, id);
16
16
  const cr = new custom_resources_1.AwsCustomResource(this, 'GetPrefixListId', {
@@ -43,15 +43,13 @@ class AwsManagedPrefixList extends constructs_1.Construct {
43
43
  }),
44
44
  removalPolicy: aws_cdk_lib_1.RemovalPolicy.DESTROY,
45
45
  });
46
- cdk_nag_1.NagSuppressions.addResourceSuppressions([cr], [
47
- {
48
- id: 'AwsSolutions-IAM5',
49
- reason: 'For this provider wildcards are fine',
50
- },
51
- ], true);
46
+ aws_cdk_lib_1.Validations.of(cr).acknowledge({
47
+ id: 'AwsSolutions-IAM5[Resource::*]',
48
+ reason: 'For this provider wildcards are fine',
49
+ });
52
50
  const prefixListId = cr.getResponseField('PrefixLists.0.PrefixListId');
53
51
  this.prefixList = aws_ec2_1.PrefixList.fromPrefixListId(this, 'PrefixList', prefixListId);
54
52
  }
55
53
  }
56
54
  exports.AwsManagedPrefixList = AwsManagedPrefixList;
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlZml4bGlzdC1yZXRyaWV2ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJlZml4bGlzdC1yZXRyaWV2ZXIvcHJlZml4bGlzdC1yZXRyaWV2ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQTRDO0FBQzVDLGlEQUE4RDtBQUM5RCxpREFLNkI7QUFDN0IsbURBQWdEO0FBQ2hELG1FQUlzQztBQUN0QyxxQ0FBMEM7QUFDMUMsMkNBQXVDO0FBYXZDLG9EQUFvRDtBQUNwRCxzRUFBc0U7QUFDdEUsTUFBYSxvQkFBcUIsU0FBUSxzQkFBUztJQUdqRCxZQUNFLEtBQWdCLEVBQ2hCLEVBQVUsRUFDVixFQUFFLElBQUksRUFBNkI7UUFFbkMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixNQUFNLEVBQUUsR0FBRyxJQUFJLG9DQUFpQixDQUFDLElBQUksRUFBRSxpQkFBaUIsRUFBRTtZQUN4RCxRQUFRLEVBQUUsSUFBSSxtQkFBUSxDQUFDLElBQUksRUFBRSx5QkFBeUIsRUFBRTtnQkFDdEQsYUFBYSxFQUFFLDJCQUFhLENBQUMsT0FBTztnQkFDcEMsU0FBUyxFQUFFLENBQUM7YUFDYixDQUFDO1lBQ0YsUUFBUSxFQUFFO2dCQUNSLE9BQU8sRUFBRSxxQkFBcUI7Z0JBQzlCLE1BQU0sRUFBRSxtQ0FBbUM7Z0JBQzNDLFVBQVUsRUFBRTtvQkFDVixPQUFPLEVBQUU7d0JBQ1A7NEJBQ0UsSUFBSSxFQUFFLGtCQUFrQjs0QkFDeEIsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDO3lCQUNmO3FCQUNGO2lCQUNGO2dCQUNELGtCQUFrQixFQUFFLHFDQUFrQixDQUFDLEVBQUUsQ0FDdkMsR0FBRyxFQUFFLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUN2QzthQUNGO1lBQ0QsTUFBTSxFQUFFLDBDQUF1QixDQUFDLGNBQWMsQ0FBQztnQkFDN0MsSUFBSSx5QkFBZSxDQUFDO29CQUNsQixNQUFNLEVBQUUsZ0JBQU0sQ0FBQyxLQUFLO29CQUNwQixPQUFPLEVBQUUsQ0FBQyxnQ0FBZ0MsQ0FBQztvQkFDM0MsU0FBUyxFQUFFLENBQUMsR0FBRyxDQUFDO2lCQUNqQixDQUFDO2FBQ0gsQ0FBQztZQUNGLElBQUksRUFBRSxJQUFJLGNBQUksQ0FBQyxJQUFJLEVBQUUscUJBQXFCLEVBQUU7Z0JBQzFDLFNBQVMsRUFBRSxJQUFJLDBCQUFnQixDQUFDLHNCQUFzQixDQUFDO2FBQ3hELENBQUM7WUFDRixhQUFhLEVBQUUsMkJBQWEsQ0FBQyxPQUFPO1NBQ3JDLENBQUMsQ0FBQztRQUNILHlCQUFlLENBQUMsdUJBQXVCLENBQ3JDLENBQUMsRUFBRSxDQUFDLEVBQ0o7WUFDRTtnQkFDRSxFQUFFLEVBQUUsbUJBQW1CO2dCQUN2QixNQUFNLEVBQUUsc0NBQXNDO2FBQy9DO1NBQ0YsRUFDRCxJQUFJLENBQ0wsQ0FBQztRQUVGLE1BQU0sWUFBWSxHQUFHLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO1FBRXZFLElBQUksQ0FBQyxVQUFVLEdBQUcsb0JBQVUsQ0FBQyxnQkFBZ0IsQ0FDM0MsSUFBSSxFQUNKLFlBQVksRUFDWixZQUFZLENBQ2IsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQTdERCxvREE2REMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZW1vdmFsUG9saWN5IH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgSVByZWZpeExpc3QsIFByZWZpeExpc3QgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZWMyJztcbmltcG9ydCB7XG4gIEVmZmVjdCxcbiAgUG9saWN5U3RhdGVtZW50LFxuICBSb2xlLFxuICBTZXJ2aWNlUHJpbmNpcGFsLFxufSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB7IExvZ0dyb3VwIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWxvZ3MnO1xuaW1wb3J0IHtcbiAgQXdzQ3VzdG9tUmVzb3VyY2UsXG4gIEF3c0N1c3RvbVJlc291cmNlUG9saWN5LFxuICBQaHlzaWNhbFJlc291cmNlSWQsXG59IGZyb20gJ2F3cy1jZGstbGliL2N1c3RvbS1yZXNvdXJjZXMnO1xuaW1wb3J0IHsgTmFnU3VwcHJlc3Npb25zIH0gZnJvbSAnY2RrLW5hZyc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcblxuZXhwb3J0IGludGVyZmFjZSBBd3NNYW5hZ2VkUHJlZml4TGlzdFByb3BzIHtcbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIGF3cyBtYW5hZ2VkIHByZWZpeCBsaXN0LlxuICAgKiBTZWU6IGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS92cGMvbGF0ZXN0L3VzZXJndWlkZS93b3JraW5nLXdpdGgtYXdzLW1hbmFnZWQtcHJlZml4LWxpc3RzLmh0bWwjYXZhaWxhYmxlLWF3cy1tYW5hZ2VkLXByZWZpeC1saXN0c1xuICAgKiBlZy4gY29tLmFtYXpvbmF3cy5nbG9iYWwuY2xvdWRmcm9udC5vcmlnaW4tZmFjaW5nXG4gICAqXG4gICAqIHNlZSBhbGwgdmlhIGF3cyBlYzIgZGVzY3JpYmUtbWFuYWdlZC1wcmVmaXgtbGlzdHMgIC0tcmVnaW9uIDxSRUdJT04+IHwganEgLXIgJy5QcmVmaXhMaXN0c1tdIHwgc2VsZWN0ICguUHJlZml4TGlzdE5hbWUgPT0gXCJjb20uYW1hem9uYXdzLmdsb2JhbC5jbG91ZGZyb250Lm9yaWdpbi1mYWNpbmdcIikgfCAuUHJlZml4TGlzdElkJ1xuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xufVxuXG4vLyBjb3BpZWQgd2l0aCBncmFjZSBmcm9tIGhlcmUgdW50aWwgY2RrIHN1cHBvcnRzIGl0XG4vLyBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvaXNzdWVzLzE1MTE1I2lzc3VlY29tbWVudC0xNjY1MTA0Njg3XG5leHBvcnQgY2xhc3MgQXdzTWFuYWdlZFByZWZpeExpc3QgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBwdWJsaWMgcmVhZG9ubHkgcHJlZml4TGlzdDogSVByZWZpeExpc3Q7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIHsgbmFtZSB9OiBBd3NNYW5hZ2VkUHJlZml4TGlzdFByb3BzLFxuICApIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgY29uc3QgY3IgPSBuZXcgQXdzQ3VzdG9tUmVzb3VyY2UodGhpcywgJ0dldFByZWZpeExpc3RJZCcsIHtcbiAgICAgIGxvZ0dyb3VwOiBuZXcgTG9nR3JvdXAodGhpcywgJ0dldFByZWZpeExpc3RJZExvZ0dyb3VwJywge1xuICAgICAgICByZW1vdmFsUG9saWN5OiBSZW1vdmFsUG9saWN5LkRFU1RST1ksXG4gICAgICAgIHJldGVudGlvbjogMSxcbiAgICAgIH0pLFxuICAgICAgb25VcGRhdGU6IHtcbiAgICAgICAgc2VydmljZTogJ0Bhd3Mtc2RrL2NsaWVudC1lYzInLFxuICAgICAgICBhY3Rpb246ICdEZXNjcmliZU1hbmFnZWRQcmVmaXhMaXN0c0NvbW1hbmQnLFxuICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgRmlsdGVyczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBOYW1lOiAncHJlZml4LWxpc3QtbmFtZScsXG4gICAgICAgICAgICAgIFZhbHVlczogW25hbWVdLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgICBwaHlzaWNhbFJlc291cmNlSWQ6IFBoeXNpY2FsUmVzb3VyY2VJZC5vZihcbiAgICAgICAgICBgJHtpZH0tJHt0aGlzLm5vZGUuYWRkci5zbGljZSgwLCAxNil9YCxcbiAgICAgICAgKSxcbiAgICAgIH0sXG4gICAgICBwb2xpY3k6IEF3c0N1c3RvbVJlc291cmNlUG9saWN5LmZyb21TdGF0ZW1lbnRzKFtcbiAgICAgICAgbmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgZWZmZWN0OiBFZmZlY3QuQUxMT1csXG4gICAgICAgICAgYWN0aW9uczogWydlYzI6RGVzY3JpYmVNYW5hZ2VkUHJlZml4TGlzdHMnXSxcbiAgICAgICAgICByZXNvdXJjZXM6IFsnKiddLFxuICAgICAgICB9KSxcbiAgICAgIF0pLFxuICAgICAgcm9sZTogbmV3IFJvbGUodGhpcywgJ0dldFByZWZpeExpc3RJZFJvbGUnLCB7XG4gICAgICAgIGFzc3VtZWRCeTogbmV3IFNlcnZpY2VQcmluY2lwYWwoJ2xhbWJkYS5hbWF6b25hd3MuY29tJyksXG4gICAgICB9KSxcbiAgICAgIHJlbW92YWxQb2xpY3k6IFJlbW92YWxQb2xpY3kuREVTVFJPWSxcbiAgICB9KTtcbiAgICBOYWdTdXBwcmVzc2lvbnMuYWRkUmVzb3VyY2VTdXBwcmVzc2lvbnMoXG4gICAgICBbY3JdLFxuICAgICAgW1xuICAgICAgICB7XG4gICAgICAgICAgaWQ6ICdBd3NTb2x1dGlvbnMtSUFNNScsXG4gICAgICAgICAgcmVhc29uOiAnRm9yIHRoaXMgcHJvdmlkZXIgd2lsZGNhcmRzIGFyZSBmaW5lJyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICB0cnVlLFxuICAgICk7XG5cbiAgICBjb25zdCBwcmVmaXhMaXN0SWQgPSBjci5nZXRSZXNwb25zZUZpZWxkKCdQcmVmaXhMaXN0cy4wLlByZWZpeExpc3RJZCcpO1xuXG4gICAgdGhpcy5wcmVmaXhMaXN0ID0gUHJlZml4TGlzdC5mcm9tUHJlZml4TGlzdElkKFxuICAgICAgdGhpcyxcbiAgICAgICdQcmVmaXhMaXN0JyxcbiAgICAgIHByZWZpeExpc3RJZCxcbiAgICApO1xuICB9XG59XG4iXX0=
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlZml4bGlzdC1yZXRyaWV2ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJlZml4bGlzdC1yZXRyaWV2ZXIvcHJlZml4bGlzdC1yZXRyaWV2ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQXlEO0FBQ3pELGlEQUE4RDtBQUM5RCxpREFLNkI7QUFDN0IsbURBQWdEO0FBQ2hELG1FQUlzQztBQUN0QywyQ0FBdUM7QUFhdkMsb0RBQW9EO0FBQ3BELHNFQUFzRTtBQUN0RSxNQUFhLG9CQUFxQixTQUFRLHNCQUFTO0lBQ2pDLFVBQVUsQ0FBYztJQUV4QyxZQUNFLEtBQWdCLEVBQ2hCLEVBQVUsRUFDVixFQUFFLElBQUksRUFBNkI7UUFFbkMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixNQUFNLEVBQUUsR0FBRyxJQUFJLG9DQUFpQixDQUFDLElBQUksRUFBRSxpQkFBaUIsRUFBRTtZQUN4RCxRQUFRLEVBQUUsSUFBSSxtQkFBUSxDQUFDLElBQUksRUFBRSx5QkFBeUIsRUFBRTtnQkFDdEQsYUFBYSxFQUFFLDJCQUFhLENBQUMsT0FBTztnQkFDcEMsU0FBUyxFQUFFLENBQUM7YUFDYixDQUFDO1lBQ0YsUUFBUSxFQUFFO2dCQUNSLE9BQU8sRUFBRSxxQkFBcUI7Z0JBQzlCLE1BQU0sRUFBRSxtQ0FBbUM7Z0JBQzNDLFVBQVUsRUFBRTtvQkFDVixPQUFPLEVBQUU7d0JBQ1A7NEJBQ0UsSUFBSSxFQUFFLGtCQUFrQjs0QkFDeEIsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDO3lCQUNmO3FCQUNGO2lCQUNGO2dCQUNELGtCQUFrQixFQUFFLHFDQUFrQixDQUFDLEVBQUUsQ0FDdkMsR0FBRyxFQUFFLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUN2QzthQUNGO1lBQ0QsTUFBTSxFQUFFLDBDQUF1QixDQUFDLGNBQWMsQ0FBQztnQkFDN0MsSUFBSSx5QkFBZSxDQUFDO29CQUNsQixNQUFNLEVBQUUsZ0JBQU0sQ0FBQyxLQUFLO29CQUNwQixPQUFPLEVBQUUsQ0FBQyxnQ0FBZ0MsQ0FBQztvQkFDM0MsU0FBUyxFQUFFLENBQUMsR0FBRyxDQUFDO2lCQUNqQixDQUFDO2FBQ0gsQ0FBQztZQUNGLElBQUksRUFBRSxJQUFJLGNBQUksQ0FBQyxJQUFJLEVBQUUscUJBQXFCLEVBQUU7Z0JBQzFDLFNBQVMsRUFBRSxJQUFJLDBCQUFnQixDQUFDLHNCQUFzQixDQUFDO2FBQ3hELENBQUM7WUFDRixhQUFhLEVBQUUsMkJBQWEsQ0FBQyxPQUFPO1NBQ3JDLENBQUMsQ0FBQztRQUNILHlCQUFXLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFdBQVcsQ0FBQztZQUM3QixFQUFFLEVBQUUsZ0NBQWdDO1lBQ3BDLE1BQU0sRUFBRSxzQ0FBc0M7U0FDL0MsQ0FBQyxDQUFDO1FBRUgsTUFBTSxZQUFZLEdBQUcsRUFBRSxDQUFDLGdCQUFnQixDQUFDLDRCQUE0QixDQUFDLENBQUM7UUFFdkUsSUFBSSxDQUFDLFVBQVUsR0FBRyxvQkFBVSxDQUFDLGdCQUFnQixDQUMzQyxJQUFJLEVBQ0osWUFBWSxFQUNaLFlBQVksQ0FDYixDQUFDO0lBQ0osQ0FBQztDQUNGO0FBdkRELG9EQXVEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlbW92YWxQb2xpY3ksIFZhbGlkYXRpb25zIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgSVByZWZpeExpc3QsIFByZWZpeExpc3QgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZWMyJztcbmltcG9ydCB7XG4gIEVmZmVjdCxcbiAgUG9saWN5U3RhdGVtZW50LFxuICBSb2xlLFxuICBTZXJ2aWNlUHJpbmNpcGFsLFxufSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB7IExvZ0dyb3VwIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWxvZ3MnO1xuaW1wb3J0IHtcbiAgQXdzQ3VzdG9tUmVzb3VyY2UsXG4gIEF3c0N1c3RvbVJlc291cmNlUG9saWN5LFxuICBQaHlzaWNhbFJlc291cmNlSWQsXG59IGZyb20gJ2F3cy1jZGstbGliL2N1c3RvbS1yZXNvdXJjZXMnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXdzTWFuYWdlZFByZWZpeExpc3RQcm9wcyB7XG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSBhd3MgbWFuYWdlZCBwcmVmaXggbGlzdC5cbiAgICogU2VlOiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vdnBjL2xhdGVzdC91c2VyZ3VpZGUvd29ya2luZy13aXRoLWF3cy1tYW5hZ2VkLXByZWZpeC1saXN0cy5odG1sI2F2YWlsYWJsZS1hd3MtbWFuYWdlZC1wcmVmaXgtbGlzdHNcbiAgICogZWcuIGNvbS5hbWF6b25hd3MuZ2xvYmFsLmNsb3VkZnJvbnQub3JpZ2luLWZhY2luZ1xuICAgKlxuICAgKiBzZWUgYWxsIHZpYSBhd3MgZWMyIGRlc2NyaWJlLW1hbmFnZWQtcHJlZml4LWxpc3RzICAtLXJlZ2lvbiA8UkVHSU9OPiB8IGpxIC1yICcuUHJlZml4TGlzdHNbXSB8IHNlbGVjdCAoLlByZWZpeExpc3ROYW1lID09IFwiY29tLmFtYXpvbmF3cy5nbG9iYWwuY2xvdWRmcm9udC5vcmlnaW4tZmFjaW5nXCIpIHwgLlByZWZpeExpc3RJZCdcbiAgICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbn1cblxuLy8gY29waWVkIHdpdGggZ3JhY2UgZnJvbSBoZXJlIHVudGlsIGNkayBzdXBwb3J0cyBpdFxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2lzc3Vlcy8xNTExNSNpc3N1ZWNvbW1lbnQtMTY2NTEwNDY4N1xuZXhwb3J0IGNsYXNzIEF3c01hbmFnZWRQcmVmaXhMaXN0IGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcHVibGljIHJlYWRvbmx5IHByZWZpeExpc3Q6IElQcmVmaXhMaXN0O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICB7IG5hbWUgfTogQXdzTWFuYWdlZFByZWZpeExpc3RQcm9wcyxcbiAgKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IGNyID0gbmV3IEF3c0N1c3RvbVJlc291cmNlKHRoaXMsICdHZXRQcmVmaXhMaXN0SWQnLCB7XG4gICAgICBsb2dHcm91cDogbmV3IExvZ0dyb3VwKHRoaXMsICdHZXRQcmVmaXhMaXN0SWRMb2dHcm91cCcsIHtcbiAgICAgICAgcmVtb3ZhbFBvbGljeTogUmVtb3ZhbFBvbGljeS5ERVNUUk9ZLFxuICAgICAgICByZXRlbnRpb246IDEsXG4gICAgICB9KSxcbiAgICAgIG9uVXBkYXRlOiB7XG4gICAgICAgIHNlcnZpY2U6ICdAYXdzLXNkay9jbGllbnQtZWMyJyxcbiAgICAgICAgYWN0aW9uOiAnRGVzY3JpYmVNYW5hZ2VkUHJlZml4TGlzdHNDb21tYW5kJyxcbiAgICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICAgIEZpbHRlcnM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgTmFtZTogJ3ByZWZpeC1saXN0LW5hbWUnLFxuICAgICAgICAgICAgICBWYWx1ZXM6IFtuYW1lXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgICAgcGh5c2ljYWxSZXNvdXJjZUlkOiBQaHlzaWNhbFJlc291cmNlSWQub2YoXG4gICAgICAgICAgYCR7aWR9LSR7dGhpcy5ub2RlLmFkZHIuc2xpY2UoMCwgMTYpfWAsXG4gICAgICAgICksXG4gICAgICB9LFxuICAgICAgcG9saWN5OiBBd3NDdXN0b21SZXNvdXJjZVBvbGljeS5mcm9tU3RhdGVtZW50cyhbXG4gICAgICAgIG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgIGVmZmVjdDogRWZmZWN0LkFMTE9XLFxuICAgICAgICAgIGFjdGlvbnM6IFsnZWMyOkRlc2NyaWJlTWFuYWdlZFByZWZpeExpc3RzJ10sXG4gICAgICAgICAgcmVzb3VyY2VzOiBbJyonXSxcbiAgICAgICAgfSksXG4gICAgICBdKSxcbiAgICAgIHJvbGU6IG5ldyBSb2xlKHRoaXMsICdHZXRQcmVmaXhMaXN0SWRSb2xlJywge1xuICAgICAgICBhc3N1bWVkQnk6IG5ldyBTZXJ2aWNlUHJpbmNpcGFsKCdsYW1iZGEuYW1hem9uYXdzLmNvbScpLFxuICAgICAgfSksXG4gICAgICByZW1vdmFsUG9saWN5OiBSZW1vdmFsUG9saWN5LkRFU1RST1ksXG4gICAgfSk7XG4gICAgVmFsaWRhdGlvbnMub2YoY3IpLmFja25vd2xlZGdlKHtcbiAgICAgIGlkOiAnQXdzU29sdXRpb25zLUlBTTVbUmVzb3VyY2U6OipdJyxcbiAgICAgIHJlYXNvbjogJ0ZvciB0aGlzIHByb3ZpZGVyIHdpbGRjYXJkcyBhcmUgZmluZScsXG4gICAgfSk7XG5cbiAgICBjb25zdCBwcmVmaXhMaXN0SWQgPSBjci5nZXRSZXNwb25zZUZpZWxkKCdQcmVmaXhMaXN0cy4wLlByZWZpeExpc3RJZCcpO1xuXG4gICAgdGhpcy5wcmVmaXhMaXN0ID0gUHJlZml4TGlzdC5mcm9tUHJlZml4TGlzdElkKFxuICAgICAgdGhpcyxcbiAgICAgICdQcmVmaXhMaXN0JyxcbiAgICAgIHByZWZpeExpc3RJZCxcbiAgICApO1xuICB9XG59XG4iXX0=
@@ -1,9 +1,42 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  Object.defineProperty(exports, "__esModule", { value: true });
3
36
  exports.SecretRetrieverFunction = void 0;
4
37
  // ~~ Generated by projen. To modify, edit .projenrc.ts and run "npx projen".
5
- const path = require("path");
6
- const lambda = require("aws-cdk-lib/aws-lambda");
38
+ const path = __importStar(require("path"));
39
+ const lambda = __importStar(require("aws-cdk-lib/aws-lambda"));
7
40
  /**
8
41
  * An AWS Lambda function which executes src/secret-retriever/secret-retriever.
9
42
  */
@@ -19,4 +52,4 @@ class SecretRetrieverFunction extends lambda.Function {
19
52
  }
20
53
  }
21
54
  exports.SecretRetrieverFunction = SecretRetrieverFunction;
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjcmV0LXJldHJpZXZlci1mdW5jdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZWNyZXQtcmV0cmlldmVyL3NlY3JldC1yZXRyaWV2ZXItZnVuY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkVBQTZFO0FBQzdFLDZCQUE2QjtBQUM3QixpREFBaUQ7QUFTakQ7O0dBRUc7QUFDSCxNQUFhLHVCQUF3QixTQUFRLE1BQU0sQ0FBQyxRQUFRO0lBQzFELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBb0M7UUFDNUUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDZixXQUFXLEVBQUUsaURBQWlEO1lBQzlELEdBQUcsS0FBSztZQUNSLE9BQU8sRUFBRSxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDO1lBQ3RFLE9BQU8sRUFBRSxlQUFlO1lBQ3hCLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSx1REFBdUQsQ0FBQyxDQUFDO1NBQzNHLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQVZELDBEQVVDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gfn4gR2VuZXJhdGVkIGJ5IHByb2plbi4gVG8gbW9kaWZ5LCBlZGl0IC5wcm9qZW5yYy50cyBhbmQgcnVuIFwibnB4IHByb2plblwiLlxuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIGxhbWJkYSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuXG4vKipcbiAqIFByb3BzIGZvciBTZWNyZXRSZXRyaWV2ZXJGdW5jdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNlY3JldFJldHJpZXZlckZ1bmN0aW9uUHJvcHMgZXh0ZW5kcyBsYW1iZGEuRnVuY3Rpb25PcHRpb25zIHtcbn1cblxuLyoqXG4gKiBBbiBBV1MgTGFtYmRhIGZ1bmN0aW9uIHdoaWNoIGV4ZWN1dGVzIHNyYy9zZWNyZXQtcmV0cmlldmVyL3NlY3JldC1yZXRyaWV2ZXIuXG4gKi9cbmV4cG9ydCBjbGFzcyBTZWNyZXRSZXRyaWV2ZXJGdW5jdGlvbiBleHRlbmRzIGxhbWJkYS5GdW5jdGlvbiB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzPzogU2VjcmV0UmV0cmlldmVyRnVuY3Rpb25Qcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgZGVzY3JpcHRpb246ICdzcmMvc2VjcmV0LXJldHJpZXZlci9zZWNyZXQtcmV0cmlldmVyLmxhbWJkYS50cycsXG4gICAgICAuLi5wcm9wcyxcbiAgICAgIHJ1bnRpbWU6IG5ldyBsYW1iZGEuUnVudGltZSgnbm9kZWpzMjQueCcsIGxhbWJkYS5SdW50aW1lRmFtaWx5Lk5PREVKUyksXG4gICAgICBoYW5kbGVyOiAnaW5kZXguaGFuZGxlcicsXG4gICAgICBjb2RlOiBsYW1iZGEuQ29kZS5mcm9tQXNzZXQocGF0aC5qb2luKF9fZGlybmFtZSwgJy4uLy4uL2Fzc2V0cy9zZWNyZXQtcmV0cmlldmVyL3NlY3JldC1yZXRyaWV2ZXIubGFtYmRhJykpLFxuICAgIH0pO1xuICB9XG59Il19
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjcmV0LXJldHJpZXZlci1mdW5jdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZWNyZXQtcmV0cmlldmVyL3NlY3JldC1yZXRyaWV2ZXItZnVuY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNkVBQTZFO0FBQzdFLDJDQUE2QjtBQUM3QiwrREFBaUQ7QUFTakQ7O0dBRUc7QUFDSCxNQUFhLHVCQUF3QixTQUFRLE1BQU0sQ0FBQyxRQUFRO0lBQzFELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBb0M7UUFDNUUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDZixXQUFXLEVBQUUsaURBQWlEO1lBQzlELEdBQUcsS0FBSztZQUNSLE9BQU8sRUFBRSxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDO1lBQ3RFLE9BQU8sRUFBRSxlQUFlO1lBQ3hCLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSx1REFBdUQsQ0FBQyxDQUFDO1NBQzNHLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQVZELDBEQVVDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gfn4gR2VuZXJhdGVkIGJ5IHByb2plbi4gVG8gbW9kaWZ5LCBlZGl0IC5wcm9qZW5yYy50cyBhbmQgcnVuIFwibnB4IHByb2plblwiLlxuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIGxhbWJkYSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuXG4vKipcbiAqIFByb3BzIGZvciBTZWNyZXRSZXRyaWV2ZXJGdW5jdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNlY3JldFJldHJpZXZlckZ1bmN0aW9uUHJvcHMgZXh0ZW5kcyBsYW1iZGEuRnVuY3Rpb25PcHRpb25zIHtcbn1cblxuLyoqXG4gKiBBbiBBV1MgTGFtYmRhIGZ1bmN0aW9uIHdoaWNoIGV4ZWN1dGVzIHNyYy9zZWNyZXQtcmV0cmlldmVyL3NlY3JldC1yZXRyaWV2ZXIuXG4gKi9cbmV4cG9ydCBjbGFzcyBTZWNyZXRSZXRyaWV2ZXJGdW5jdGlvbiBleHRlbmRzIGxhbWJkYS5GdW5jdGlvbiB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzPzogU2VjcmV0UmV0cmlldmVyRnVuY3Rpb25Qcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgZGVzY3JpcHRpb246ICdzcmMvc2VjcmV0LXJldHJpZXZlci9zZWNyZXQtcmV0cmlldmVyLmxhbWJkYS50cycsXG4gICAgICAuLi5wcm9wcyxcbiAgICAgIHJ1bnRpbWU6IG5ldyBsYW1iZGEuUnVudGltZSgnbm9kZWpzMjQueCcsIGxhbWJkYS5SdW50aW1lRmFtaWx5Lk5PREVKUyksXG4gICAgICBoYW5kbGVyOiAnaW5kZXguaGFuZGxlcicsXG4gICAgICBjb2RlOiBsYW1iZGEuQ29kZS5mcm9tQXNzZXQocGF0aC5qb2luKF9fZGlybmFtZSwgJy4uLy4uL2Fzc2V0cy9zZWNyZXQtcmV0cmlldmVyL3NlY3JldC1yZXRyaWV2ZXIubGFtYmRhJykpLFxuICAgIH0pO1xuICB9XG59Il19
@@ -1,11 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SecretRetriever = void 0;
4
+ const aws_cdk_lib_1 = require("aws-cdk-lib");
4
5
  const aws_iam_1 = require("aws-cdk-lib/aws-iam");
5
6
  const core_1 = require("aws-cdk-lib/core");
6
7
  const custom_resources_1 = require("aws-cdk-lib/custom-resources");
7
- const cdk_nag_1 = require("cdk-nag");
8
8
  const secret_retriever_function_1 = require("./secret-retriever-function");
9
+ const suppress_nags_1 = require("../suppress-nags");
10
+ // The AWSLambdaBasicExecutionRole ARN pattern is the same for every Lambda
11
+ // function using the default execution role, regardless of the consumer's
12
+ // own construct IDs -- safe to acknowledge literally.
13
+ const AWS_LAMBDA_BASIC_EXECUTION_ROLE_IAM4 = 'AwsSolutions-IAM4[Policy::arn:<AWS::Partition>:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole]';
9
14
  class SecretRetriever {
10
15
  static new(options) {
11
16
  return new (class extends SecretRetriever {
@@ -17,6 +22,17 @@ class SecretRetriever {
17
22
  }
18
23
  })();
19
24
  }
25
+ secretArn;
26
+ /**
27
+ * The ARN of the secretRetriever in SSM.
28
+ */
29
+ secretRetrieverArn;
30
+ /**
31
+ * The plaintext secret
32
+ */
33
+ secretPlaintext;
34
+ secretPasswordPlaintext;
35
+ customResource;
20
36
  /**
21
37
  * @internal
22
38
  */
@@ -31,16 +47,11 @@ class CustomResourceSecretRetriever extends SecretRetriever {
31
47
  timeout: core_1.Duration.seconds(10),
32
48
  memorySize: 128,
33
49
  });
34
- cdk_nag_1.NagSuppressions.addResourceSuppressions([onEvent], [
35
- {
36
- id: 'AwsSolutions-IAM4',
37
- reason: 'For this event handler we do not need to restrict managed policies',
38
- },
39
- {
40
- id: 'AwsSolutions-L1',
41
- reason: 'For this lambda the latest runtime is not needed',
42
- },
43
- ], true);
50
+ (0, suppress_nags_1.acknowledgeGranularFinding)(onEvent, AWS_LAMBDA_BASIC_EXECUTION_ROLE_IAM4, 'For this event handler we do not need to restrict managed policies');
51
+ aws_cdk_lib_1.Validations.of(onEvent).acknowledge({
52
+ id: 'AwsSolutions-L1',
53
+ reason: 'For this lambda the latest runtime is not needed',
54
+ });
44
55
  onEvent.addToRolePolicy(new aws_iam_1.PolicyStatement({
45
56
  actions: ['secretsmanager:GetSecretValue'],
46
57
  resources: [this.secretArn],
@@ -48,20 +59,18 @@ class CustomResourceSecretRetriever extends SecretRetriever {
48
59
  const provider = new custom_resources_1.Provider(scope, 'SecretRetrieveProvider', {
49
60
  onEventHandler: onEvent,
50
61
  });
51
- cdk_nag_1.NagSuppressions.addResourceSuppressions([provider], [
52
- {
53
- id: 'AwsSolutions-IAM4',
54
- reason: 'For this provider we do not need to restrict managed policies',
55
- },
56
- {
57
- id: 'AwsSolutions-IAM5',
58
- reason: 'For this provider wildcards are fine',
59
- },
60
- {
61
- id: 'AwsSolutions-L1',
62
- reason: 'For this provider the latest runtime is not needed',
63
- },
64
- ], true);
62
+ (0, suppress_nags_1.acknowledgeGranularFinding)(provider, AWS_LAMBDA_BASIC_EXECUTION_ROLE_IAM4, 'For this provider we do not need to restrict managed policies');
63
+ // cdk-nag v3 requires the exact granular finding id (no prefix/bulk
64
+ // suppression) -- resolve onEvent's CloudFormation logical id at
65
+ // synth time instead of hardcoding it.
66
+ const onEventLogicalId = aws_cdk_lib_1.Stack.of(onEvent).getLogicalId(onEvent.node.defaultChild);
67
+ aws_cdk_lib_1.Validations.of(provider).acknowledge({
68
+ id: `AwsSolutions-IAM5[Resource::<${onEventLogicalId}.Arn>:*]`,
69
+ reason: 'For this provider wildcards are fine',
70
+ }, {
71
+ id: 'AwsSolutions-L1',
72
+ reason: 'For this provider the latest runtime is not needed',
73
+ });
65
74
  const resource = new core_1.CustomResource(scope, 'SecretRetrieverCustomResource', {
66
75
  serviceToken: provider.serviceToken,
67
76
  properties: {
@@ -75,4 +84,4 @@ class CustomResourceSecretRetriever extends SecretRetriever {
75
84
  }
76
85
  _bind() { }
77
86
  }
78
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjcmV0LXJldHJpZXZlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZWNyZXQtcmV0cmlldmVyL3NlY3JldC1yZXRyaWV2ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsaURBQXNEO0FBRXRELDJDQUF1RTtBQUN2RSxtRUFBd0Q7QUFDeEQscUNBQTBDO0FBRTFDLDJFQUFzRTtBQWF0RSxNQUFzQixlQUFlO0lBQzVCLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBK0I7UUFDL0MsT0FBTyxJQUFJLENBQUMsS0FBTSxTQUFRLGVBQWU7WUFDaEMsS0FBSyxDQUFDLEtBQWdCO2dCQUMzQixNQUFNLGVBQWUsR0FBRyxJQUFJLDZCQUE2QixDQUFDLEtBQUssRUFBRTtvQkFDL0QsU0FBUyxFQUFFLE9BQU8sQ0FBQyxTQUFTO2lCQUM3QixDQUFDLENBQUM7Z0JBRUgsT0FBTyxlQUFlLENBQUM7WUFDekIsQ0FBQztTQUNGLENBQUMsRUFBRSxDQUFDO0lBQ1AsQ0FBQztJQWdCRDs7T0FFRztJQUNILGdCQUF5QixDQUFDO0NBTTNCO0FBcENELDBDQW9DQztBQUlELE1BQU0sNkJBQThCLFNBQVEsZUFBZTtJQUN6RCxZQUFZLEtBQWdCLEVBQUUsT0FBNkM7UUFDekUsS0FBSyxFQUFFLENBQUM7UUFFUixJQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUM7UUFFbkMsTUFBTSxPQUFPLEdBQWEsSUFBSSxtREFBdUIsQ0FDbkQsS0FBSyxFQUNMLCtCQUErQixFQUMvQjtZQUNFLE9BQU8sRUFBRSxlQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUM3QixVQUFVLEVBQUUsR0FBRztTQUNoQixDQUNGLENBQUM7UUFDRix5QkFBZSxDQUFDLHVCQUF1QixDQUNyQyxDQUFDLE9BQU8sQ0FBQyxFQUNUO1lBQ0U7Z0JBQ0UsRUFBRSxFQUFFLG1CQUFtQjtnQkFDdkIsTUFBTSxFQUNKLG9FQUFvRTthQUN2RTtZQUNEO2dCQUNFLEVBQUUsRUFBRSxpQkFBaUI7Z0JBQ3JCLE1BQU0sRUFBRSxrREFBa0Q7YUFDM0Q7U0FDRixFQUNELElBQUksQ0FDTCxDQUFDO1FBRUYsT0FBTyxDQUFDLGVBQWUsQ0FDckIsSUFBSSx5QkFBZSxDQUFDO1lBQ2xCLE9BQU8sRUFBRSxDQUFDLCtCQUErQixDQUFDO1lBQzFDLFNBQVMsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7U0FDNUIsQ0FBQyxDQUNILENBQUM7UUFFRixNQUFNLFFBQVEsR0FBRyxJQUFJLDJCQUFRLENBQUMsS0FBSyxFQUFFLHdCQUF3QixFQUFFO1lBQzdELGNBQWMsRUFBRSxPQUFPO1NBQ3hCLENBQUMsQ0FBQztRQUNILHlCQUFlLENBQUMsdUJBQXVCLENBQ3JDLENBQUMsUUFBUSxDQUFDLEVBQ1Y7WUFDRTtnQkFDRSxFQUFFLEVBQUUsbUJBQW1CO2dCQUN2QixNQUFNLEVBQ0osK0RBQStEO2FBQ2xFO1lBQ0Q7Z0JBQ0UsRUFBRSxFQUFFLG1CQUFtQjtnQkFDdkIsTUFBTSxFQUFFLHNDQUFzQzthQUMvQztZQUNEO2dCQUNFLEVBQUUsRUFBRSxpQkFBaUI7Z0JBQ3JCLE1BQU0sRUFBRSxvREFBb0Q7YUFDN0Q7U0FDRixFQUNELElBQUksQ0FDTCxDQUFDO1FBRUYsTUFBTSxRQUFRLEdBQUcsSUFBSSxxQkFBYyxDQUNqQyxLQUFLLEVBQ0wsK0JBQStCLEVBQy9CO1lBQ0UsWUFBWSxFQUFFLFFBQVEsQ0FBQyxZQUFZO1lBQ25DLFVBQVUsRUFBRTtnQkFDVixTQUFTLEVBQUUsT0FBTyxDQUFDLFNBQVM7Z0JBQzVCLGNBQWMsRUFBRSxHQUFHO2FBQ3BCO1NBQ0YsQ0FDRixDQUFDO1FBRUYsSUFBSSxDQUFDLGVBQWUsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLE1BQU0sRUFBWSxDQUFDO1FBQ3pFLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxRQUFRLENBQUMsWUFBWSxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDNUUsSUFBSSxDQUFDLGNBQWMsR0FBRyxRQUFRLENBQUM7SUFDakMsQ0FBQztJQUVNLEtBQUssS0FBSSxDQUFDO0NBQ2xCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUG9saWN5U3RhdGVtZW50IH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgeyBGdW5jdGlvbiB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1sYW1iZGEnO1xuaW1wb3J0IHsgQ3VzdG9tUmVzb3VyY2UsIER1cmF0aW9uLCBJUmVzb3VyY2UgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlJztcbmltcG9ydCB7IFByb3ZpZGVyIH0gZnJvbSAnYXdzLWNkay1saWIvY3VzdG9tLXJlc291cmNlcyc7XG5pbXBvcnQgeyBOYWdTdXBwcmVzc2lvbnMgfSBmcm9tICdjZGstbmFnJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgU2VjcmV0UmV0cmlldmVyRnVuY3Rpb24gfSBmcm9tICcuL3NlY3JldC1yZXRyaWV2ZXItZnVuY3Rpb24nO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNlY3JldCB7XG4gIHVzZXJuYW1lOiBzdHJpbmc7XG4gIHBhc3N3b3JkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VjcmV0UmV0cmlldmVyT3B0aW9uc0Jhc2Uge1xuICByZWFkb25seSBzZWNyZXRBcm46IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZWNyZXRSZXRyaWV2ZXJPcHRpb25zIGV4dGVuZHMgU2VjcmV0UmV0cmlldmVyT3B0aW9uc0Jhc2Uge31cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNlY3JldFJldHJpZXZlciB7XG4gIHB1YmxpYyBzdGF0aWMgbmV3KG9wdGlvbnM6IFNlY3JldFJldHJpZXZlck9wdGlvbnMpOiBTZWNyZXRSZXRyaWV2ZXIge1xuICAgIHJldHVybiBuZXcgKGNsYXNzIGV4dGVuZHMgU2VjcmV0UmV0cmlldmVyIHtcbiAgICAgIHB1YmxpYyBfYmluZChzY29wZTogQ29uc3RydWN0KTogU2VjcmV0UmV0cmlldmVyIHtcbiAgICAgICAgY29uc3Qgc2VjcmV0UmV0cmlldmVyID0gbmV3IEN1c3RvbVJlc291cmNlU2VjcmV0UmV0cmlldmVyKHNjb3BlLCB7XG4gICAgICAgICAgc2VjcmV0QXJuOiBvcHRpb25zLnNlY3JldEFybixcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHNlY3JldFJldHJpZXZlcjtcbiAgICAgIH1cbiAgICB9KSgpO1xuICB9XG5cbiAgcHVibGljIHNlY3JldEFybiE6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgc2VjcmV0UmV0cmlldmVyIGluIFNTTS5cbiAgICovXG4gIHB1YmxpYyBzZWNyZXRSZXRyaWV2ZXJBcm4hOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwbGFpbnRleHQgc2VjcmV0XG4gICAqL1xuICBwdWJsaWMgc2VjcmV0UGxhaW50ZXh0ITogU2VjcmV0O1xuICBwdWJsaWMgc2VjcmV0UGFzc3dvcmRQbGFpbnRleHQhOiBzdHJpbmc7XG4gIHB1YmxpYyBjdXN0b21SZXNvdXJjZSE6IElSZXNvdXJjZTtcblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoKSB7fVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBfYmluZChzY29wZTogQ29uc3RydWN0KTogYW55O1xufVxuXG5pbnRlcmZhY2UgQ3VzdG9tUmVzb3VyY2VTZWNyZXRSZXRyaWV2ZXJPcHRpb25zIGV4dGVuZHMgU2VjcmV0UmV0cmlldmVyT3B0aW9ucyB7fVxuXG5jbGFzcyBDdXN0b21SZXNvdXJjZVNlY3JldFJldHJpZXZlciBleHRlbmRzIFNlY3JldFJldHJpZXZlciB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIG9wdGlvbnM6IEN1c3RvbVJlc291cmNlU2VjcmV0UmV0cmlldmVyT3B0aW9ucykge1xuICAgIHN1cGVyKCk7XG5cbiAgICB0aGlzLnNlY3JldEFybiA9IG9wdGlvbnMuc2VjcmV0QXJuO1xuXG4gICAgY29uc3Qgb25FdmVudDogRnVuY3Rpb24gPSBuZXcgU2VjcmV0UmV0cmlldmVyRnVuY3Rpb24oXG4gICAgICBzY29wZSxcbiAgICAgICdTZWNyZXRSZXRyaWV2ZXJPbkV2ZW50SGFuZGxlcicsXG4gICAgICB7XG4gICAgICAgIHRpbWVvdXQ6IER1cmF0aW9uLnNlY29uZHMoMTApLFxuICAgICAgICBtZW1vcnlTaXplOiAxMjgsXG4gICAgICB9LFxuICAgICk7XG4gICAgTmFnU3VwcHJlc3Npb25zLmFkZFJlc291cmNlU3VwcHJlc3Npb25zKFxuICAgICAgW29uRXZlbnRdLFxuICAgICAgW1xuICAgICAgICB7XG4gICAgICAgICAgaWQ6ICdBd3NTb2x1dGlvbnMtSUFNNCcsXG4gICAgICAgICAgcmVhc29uOlxuICAgICAgICAgICAgJ0ZvciB0aGlzIGV2ZW50IGhhbmRsZXIgd2UgZG8gbm90IG5lZWQgdG8gcmVzdHJpY3QgbWFuYWdlZCBwb2xpY2llcycsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBpZDogJ0F3c1NvbHV0aW9ucy1MMScsXG4gICAgICAgICAgcmVhc29uOiAnRm9yIHRoaXMgbGFtYmRhIHRoZSBsYXRlc3QgcnVudGltZSBpcyBub3QgbmVlZGVkJyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICB0cnVlLFxuICAgICk7XG5cbiAgICBvbkV2ZW50LmFkZFRvUm9sZVBvbGljeShcbiAgICAgIG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICBhY3Rpb25zOiBbJ3NlY3JldHNtYW5hZ2VyOkdldFNlY3JldFZhbHVlJ10sXG4gICAgICAgIHJlc291cmNlczogW3RoaXMuc2VjcmV0QXJuXSxcbiAgICAgIH0pLFxuICAgICk7XG5cbiAgICBjb25zdCBwcm92aWRlciA9IG5ldyBQcm92aWRlcihzY29wZSwgJ1NlY3JldFJldHJpZXZlUHJvdmlkZXInLCB7XG4gICAgICBvbkV2ZW50SGFuZGxlcjogb25FdmVudCxcbiAgICB9KTtcbiAgICBOYWdTdXBwcmVzc2lvbnMuYWRkUmVzb3VyY2VTdXBwcmVzc2lvbnMoXG4gICAgICBbcHJvdmlkZXJdLFxuICAgICAgW1xuICAgICAgICB7XG4gICAgICAgICAgaWQ6ICdBd3NTb2x1dGlvbnMtSUFNNCcsXG4gICAgICAgICAgcmVhc29uOlxuICAgICAgICAgICAgJ0ZvciB0aGlzIHByb3ZpZGVyIHdlIGRvIG5vdCBuZWVkIHRvIHJlc3RyaWN0IG1hbmFnZWQgcG9saWNpZXMnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgaWQ6ICdBd3NTb2x1dGlvbnMtSUFNNScsXG4gICAgICAgICAgcmVhc29uOiAnRm9yIHRoaXMgcHJvdmlkZXIgd2lsZGNhcmRzIGFyZSBmaW5lJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGlkOiAnQXdzU29sdXRpb25zLUwxJyxcbiAgICAgICAgICByZWFzb246ICdGb3IgdGhpcyBwcm92aWRlciB0aGUgbGF0ZXN0IHJ1bnRpbWUgaXMgbm90IG5lZWRlZCcsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgdHJ1ZSxcbiAgICApO1xuXG4gICAgY29uc3QgcmVzb3VyY2UgPSBuZXcgQ3VzdG9tUmVzb3VyY2UoXG4gICAgICBzY29wZSxcbiAgICAgICdTZWNyZXRSZXRyaWV2ZXJDdXN0b21SZXNvdXJjZScsXG4gICAgICB7XG4gICAgICAgIHNlcnZpY2VUb2tlbjogcHJvdmlkZXIuc2VydmljZVRva2VuLFxuICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgU2VjcmV0QXJuOiBvcHRpb25zLnNlY3JldEFybixcbiAgICAgICAgICBTZXJ2aWNlVGltZW91dDogMzA1LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICApO1xuXG4gICAgdGhpcy5zZWNyZXRQbGFpbnRleHQgPSByZXNvdXJjZS5nZXRBdHQoJ3NlY3JldFZhbHVlJykudG9KU09OKCkgYXMgU2VjcmV0O1xuICAgIHRoaXMuc2VjcmV0UGFzc3dvcmRQbGFpbnRleHQgPSByZXNvdXJjZS5nZXRBdHRTdHJpbmcoJ3NlY3JldFBhc3N3b3JkVmFsdWUnKTtcbiAgICB0aGlzLmN1c3RvbVJlc291cmNlID0gcmVzb3VyY2U7XG4gIH1cblxuICBwdWJsaWMgX2JpbmQoKSB7fVxufVxuIl19
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjcmV0LXJldHJpZXZlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZWNyZXQtcmV0cmlldmVyL3NlY3JldC1yZXRyaWV2ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQWlEO0FBQ2pELGlEQUFzRDtBQUV0RCwyQ0FBdUU7QUFDdkUsbUVBQXdEO0FBRXhELDJFQUFzRTtBQUN0RSxvREFBOEQ7QUFFOUQsMkVBQTJFO0FBQzNFLDBFQUEwRTtBQUMxRSxzREFBc0Q7QUFDdEQsTUFBTSxvQ0FBb0MsR0FDeEMsMEdBQTBHLENBQUM7QUFhN0csTUFBc0IsZUFBZTtJQUM1QixNQUFNLENBQUMsR0FBRyxDQUFDLE9BQStCO1FBQy9DLE9BQU8sSUFBSSxDQUFDLEtBQU0sU0FBUSxlQUFlO1lBQ2hDLEtBQUssQ0FBQyxLQUFnQjtnQkFDM0IsTUFBTSxlQUFlLEdBQUcsSUFBSSw2QkFBNkIsQ0FBQyxLQUFLLEVBQUU7b0JBQy9ELFNBQVMsRUFBRSxPQUFPLENBQUMsU0FBUztpQkFDN0IsQ0FBQyxDQUFDO2dCQUVILE9BQU8sZUFBZSxDQUFDO1lBQ3pCLENBQUM7U0FDRixDQUFDLEVBQUUsQ0FBQztJQUNQLENBQUM7SUFFTSxTQUFTLENBQVU7SUFFMUI7O09BRUc7SUFDSSxrQkFBa0IsQ0FBVTtJQUVuQzs7T0FFRztJQUNJLGVBQWUsQ0FBVTtJQUN6Qix1QkFBdUIsQ0FBVTtJQUNqQyxjQUFjLENBQWE7SUFFbEM7O09BRUc7SUFDSCxnQkFBeUIsQ0FBQztDQU0zQjtBQXBDRCwwQ0FvQ0M7QUFJRCxNQUFNLDZCQUE4QixTQUFRLGVBQWU7SUFDekQsWUFBWSxLQUFnQixFQUFFLE9BQTZDO1FBQ3pFLEtBQUssRUFBRSxDQUFDO1FBRVIsSUFBSSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDO1FBRW5DLE1BQU0sT0FBTyxHQUFhLElBQUksbURBQXVCLENBQ25ELEtBQUssRUFDTCwrQkFBK0IsRUFDL0I7WUFDRSxPQUFPLEVBQUUsZUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDN0IsVUFBVSxFQUFFLEdBQUc7U0FDaEIsQ0FDRixDQUFDO1FBQ0YsSUFBQSwwQ0FBMEIsRUFDeEIsT0FBTyxFQUNQLG9DQUFvQyxFQUNwQyxvRUFBb0UsQ0FDckUsQ0FBQztRQUNGLHlCQUFXLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFdBQVcsQ0FBQztZQUNsQyxFQUFFLEVBQUUsaUJBQWlCO1lBQ3JCLE1BQU0sRUFBRSxrREFBa0Q7U0FDM0QsQ0FBQyxDQUFDO1FBRUgsT0FBTyxDQUFDLGVBQWUsQ0FDckIsSUFBSSx5QkFBZSxDQUFDO1lBQ2xCLE9BQU8sRUFBRSxDQUFDLCtCQUErQixDQUFDO1lBQzFDLFNBQVMsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7U0FDNUIsQ0FBQyxDQUNILENBQUM7UUFFRixNQUFNLFFBQVEsR0FBRyxJQUFJLDJCQUFRLENBQUMsS0FBSyxFQUFFLHdCQUF3QixFQUFFO1lBQzdELGNBQWMsRUFBRSxPQUFPO1NBQ3hCLENBQUMsQ0FBQztRQUNILElBQUEsMENBQTBCLEVBQ3hCLFFBQVEsRUFDUixvQ0FBb0MsRUFDcEMsK0RBQStELENBQ2hFLENBQUM7UUFDRixvRUFBb0U7UUFDcEUsaUVBQWlFO1FBQ2pFLHVDQUF1QztRQUN2QyxNQUFNLGdCQUFnQixHQUFHLG1CQUFLLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFlBQVksQ0FDckQsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUEyQixDQUN6QyxDQUFDO1FBQ0YseUJBQVcsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsV0FBVyxDQUNsQztZQUNFLEVBQUUsRUFBRSxnQ0FBZ0MsZ0JBQWdCLFVBQVU7WUFDOUQsTUFBTSxFQUFFLHNDQUFzQztTQUMvQyxFQUNEO1lBQ0UsRUFBRSxFQUFFLGlCQUFpQjtZQUNyQixNQUFNLEVBQUUsb0RBQW9EO1NBQzdELENBQ0YsQ0FBQztRQUVGLE1BQU0sUUFBUSxHQUFHLElBQUkscUJBQWMsQ0FDakMsS0FBSyxFQUNMLCtCQUErQixFQUMvQjtZQUNFLFlBQVksRUFBRSxRQUFRLENBQUMsWUFBWTtZQUNuQyxVQUFVLEVBQUU7Z0JBQ1YsU0FBUyxFQUFFLE9BQU8sQ0FBQyxTQUFTO2dCQUM1QixjQUFjLEVBQUUsR0FBRzthQUNwQjtTQUNGLENBQ0YsQ0FBQztRQUVGLElBQUksQ0FBQyxlQUFlLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxNQUFNLEVBQVksQ0FBQztRQUN6RSxJQUFJLENBQUMsdUJBQXVCLEdBQUcsUUFBUSxDQUFDLFlBQVksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQzVFLElBQUksQ0FBQyxjQUFjLEdBQUcsUUFBUSxDQUFDO0lBQ2pDLENBQUM7SUFFTSxLQUFLLEtBQUksQ0FBQztDQUNsQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN0YWNrLCBWYWxpZGF0aW9ucyB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IFBvbGljeVN0YXRlbWVudCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0IHsgQ2ZuRnVuY3Rpb24sIEZ1bmN0aW9uIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWxhbWJkYSc7XG5pbXBvcnQgeyBDdXN0b21SZXNvdXJjZSwgRHVyYXRpb24sIElSZXNvdXJjZSB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUnO1xuaW1wb3J0IHsgUHJvdmlkZXIgfSBmcm9tICdhd3MtY2RrLWxpYi9jdXN0b20tcmVzb3VyY2VzJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgU2VjcmV0UmV0cmlldmVyRnVuY3Rpb24gfSBmcm9tICcuL3NlY3JldC1yZXRyaWV2ZXItZnVuY3Rpb24nO1xuaW1wb3J0IHsgYWNrbm93bGVkZ2VHcmFudWxhckZpbmRpbmcgfSBmcm9tICcuLi9zdXBwcmVzcy1uYWdzJztcblxuLy8gVGhlIEFXU0xhbWJkYUJhc2ljRXhlY3V0aW9uUm9sZSBBUk4gcGF0dGVybiBpcyB0aGUgc2FtZSBmb3IgZXZlcnkgTGFtYmRhXG4vLyBmdW5jdGlvbiB1c2luZyB0aGUgZGVmYXVsdCBleGVjdXRpb24gcm9sZSwgcmVnYXJkbGVzcyBvZiB0aGUgY29uc3VtZXInc1xuLy8gb3duIGNvbnN0cnVjdCBJRHMgLS0gc2FmZSB0byBhY2tub3dsZWRnZSBsaXRlcmFsbHkuXG5jb25zdCBBV1NfTEFNQkRBX0JBU0lDX0VYRUNVVElPTl9ST0xFX0lBTTQgPVxuICAnQXdzU29sdXRpb25zLUlBTTRbUG9saWN5Ojphcm46PEFXUzo6UGFydGl0aW9uPjppYW06OmF3czpwb2xpY3kvc2VydmljZS1yb2xlL0FXU0xhbWJkYUJhc2ljRXhlY3V0aW9uUm9sZV0nO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNlY3JldCB7XG4gIHVzZXJuYW1lOiBzdHJpbmc7XG4gIHBhc3N3b3JkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VjcmV0UmV0cmlldmVyT3B0aW9uc0Jhc2Uge1xuICByZWFkb25seSBzZWNyZXRBcm46IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZWNyZXRSZXRyaWV2ZXJPcHRpb25zIGV4dGVuZHMgU2VjcmV0UmV0cmlldmVyT3B0aW9uc0Jhc2Uge31cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNlY3JldFJldHJpZXZlciB7XG4gIHB1YmxpYyBzdGF0aWMgbmV3KG9wdGlvbnM6IFNlY3JldFJldHJpZXZlck9wdGlvbnMpOiBTZWNyZXRSZXRyaWV2ZXIge1xuICAgIHJldHVybiBuZXcgKGNsYXNzIGV4dGVuZHMgU2VjcmV0UmV0cmlldmVyIHtcbiAgICAgIHB1YmxpYyBfYmluZChzY29wZTogQ29uc3RydWN0KTogU2VjcmV0UmV0cmlldmVyIHtcbiAgICAgICAgY29uc3Qgc2VjcmV0UmV0cmlldmVyID0gbmV3IEN1c3RvbVJlc291cmNlU2VjcmV0UmV0cmlldmVyKHNjb3BlLCB7XG4gICAgICAgICAgc2VjcmV0QXJuOiBvcHRpb25zLnNlY3JldEFybixcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHNlY3JldFJldHJpZXZlcjtcbiAgICAgIH1cbiAgICB9KSgpO1xuICB9XG5cbiAgcHVibGljIHNlY3JldEFybiE6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgc2VjcmV0UmV0cmlldmVyIGluIFNTTS5cbiAgICovXG4gIHB1YmxpYyBzZWNyZXRSZXRyaWV2ZXJBcm4hOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwbGFpbnRleHQgc2VjcmV0XG4gICAqL1xuICBwdWJsaWMgc2VjcmV0UGxhaW50ZXh0ITogU2VjcmV0O1xuICBwdWJsaWMgc2VjcmV0UGFzc3dvcmRQbGFpbnRleHQhOiBzdHJpbmc7XG4gIHB1YmxpYyBjdXN0b21SZXNvdXJjZSE6IElSZXNvdXJjZTtcblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoKSB7fVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBfYmluZChzY29wZTogQ29uc3RydWN0KTogYW55O1xufVxuXG5pbnRlcmZhY2UgQ3VzdG9tUmVzb3VyY2VTZWNyZXRSZXRyaWV2ZXJPcHRpb25zIGV4dGVuZHMgU2VjcmV0UmV0cmlldmVyT3B0aW9ucyB7fVxuXG5jbGFzcyBDdXN0b21SZXNvdXJjZVNlY3JldFJldHJpZXZlciBleHRlbmRzIFNlY3JldFJldHJpZXZlciB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIG9wdGlvbnM6IEN1c3RvbVJlc291cmNlU2VjcmV0UmV0cmlldmVyT3B0aW9ucykge1xuICAgIHN1cGVyKCk7XG5cbiAgICB0aGlzLnNlY3JldEFybiA9IG9wdGlvbnMuc2VjcmV0QXJuO1xuXG4gICAgY29uc3Qgb25FdmVudDogRnVuY3Rpb24gPSBuZXcgU2VjcmV0UmV0cmlldmVyRnVuY3Rpb24oXG4gICAgICBzY29wZSxcbiAgICAgICdTZWNyZXRSZXRyaWV2ZXJPbkV2ZW50SGFuZGxlcicsXG4gICAgICB7XG4gICAgICAgIHRpbWVvdXQ6IER1cmF0aW9uLnNlY29uZHMoMTApLFxuICAgICAgICBtZW1vcnlTaXplOiAxMjgsXG4gICAgICB9LFxuICAgICk7XG4gICAgYWNrbm93bGVkZ2VHcmFudWxhckZpbmRpbmcoXG4gICAgICBvbkV2ZW50LFxuICAgICAgQVdTX0xBTUJEQV9CQVNJQ19FWEVDVVRJT05fUk9MRV9JQU00LFxuICAgICAgJ0ZvciB0aGlzIGV2ZW50IGhhbmRsZXIgd2UgZG8gbm90IG5lZWQgdG8gcmVzdHJpY3QgbWFuYWdlZCBwb2xpY2llcycsXG4gICAgKTtcbiAgICBWYWxpZGF0aW9ucy5vZihvbkV2ZW50KS5hY2tub3dsZWRnZSh7XG4gICAgICBpZDogJ0F3c1NvbHV0aW9ucy1MMScsXG4gICAgICByZWFzb246ICdGb3IgdGhpcyBsYW1iZGEgdGhlIGxhdGVzdCBydW50aW1lIGlzIG5vdCBuZWVkZWQnLFxuICAgIH0pO1xuXG4gICAgb25FdmVudC5hZGRUb1JvbGVQb2xpY3koXG4gICAgICBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgYWN0aW9uczogWydzZWNyZXRzbWFuYWdlcjpHZXRTZWNyZXRWYWx1ZSddLFxuICAgICAgICByZXNvdXJjZXM6IFt0aGlzLnNlY3JldEFybl0sXG4gICAgICB9KSxcbiAgICApO1xuXG4gICAgY29uc3QgcHJvdmlkZXIgPSBuZXcgUHJvdmlkZXIoc2NvcGUsICdTZWNyZXRSZXRyaWV2ZVByb3ZpZGVyJywge1xuICAgICAgb25FdmVudEhhbmRsZXI6IG9uRXZlbnQsXG4gICAgfSk7XG4gICAgYWNrbm93bGVkZ2VHcmFudWxhckZpbmRpbmcoXG4gICAgICBwcm92aWRlcixcbiAgICAgIEFXU19MQU1CREFfQkFTSUNfRVhFQ1VUSU9OX1JPTEVfSUFNNCxcbiAgICAgICdGb3IgdGhpcyBwcm92aWRlciB3ZSBkbyBub3QgbmVlZCB0byByZXN0cmljdCBtYW5hZ2VkIHBvbGljaWVzJyxcbiAgICApO1xuICAgIC8vIGNkay1uYWcgdjMgcmVxdWlyZXMgdGhlIGV4YWN0IGdyYW51bGFyIGZpbmRpbmcgaWQgKG5vIHByZWZpeC9idWxrXG4gICAgLy8gc3VwcHJlc3Npb24pIC0tIHJlc29sdmUgb25FdmVudCdzIENsb3VkRm9ybWF0aW9uIGxvZ2ljYWwgaWQgYXRcbiAgICAvLyBzeW50aCB0aW1lIGluc3RlYWQgb2YgaGFyZGNvZGluZyBpdC5cbiAgICBjb25zdCBvbkV2ZW50TG9naWNhbElkID0gU3RhY2sub2Yob25FdmVudCkuZ2V0TG9naWNhbElkKFxuICAgICAgb25FdmVudC5ub2RlLmRlZmF1bHRDaGlsZCBhcyBDZm5GdW5jdGlvbixcbiAgICApO1xuICAgIFZhbGlkYXRpb25zLm9mKHByb3ZpZGVyKS5hY2tub3dsZWRnZShcbiAgICAgIHtcbiAgICAgICAgaWQ6IGBBd3NTb2x1dGlvbnMtSUFNNVtSZXNvdXJjZTo6PCR7b25FdmVudExvZ2ljYWxJZH0uQXJuPjoqXWAsXG4gICAgICAgIHJlYXNvbjogJ0ZvciB0aGlzIHByb3ZpZGVyIHdpbGRjYXJkcyBhcmUgZmluZScsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ0F3c1NvbHV0aW9ucy1MMScsXG4gICAgICAgIHJlYXNvbjogJ0ZvciB0aGlzIHByb3ZpZGVyIHRoZSBsYXRlc3QgcnVudGltZSBpcyBub3QgbmVlZGVkJyxcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIGNvbnN0IHJlc291cmNlID0gbmV3IEN1c3RvbVJlc291cmNlKFxuICAgICAgc2NvcGUsXG4gICAgICAnU2VjcmV0UmV0cmlldmVyQ3VzdG9tUmVzb3VyY2UnLFxuICAgICAge1xuICAgICAgICBzZXJ2aWNlVG9rZW46IHByb3ZpZGVyLnNlcnZpY2VUb2tlbixcbiAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgIFNlY3JldEFybjogb3B0aW9ucy5zZWNyZXRBcm4sXG4gICAgICAgICAgU2VydmljZVRpbWVvdXQ6IDMwNSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIHRoaXMuc2VjcmV0UGxhaW50ZXh0ID0gcmVzb3VyY2UuZ2V0QXR0KCdzZWNyZXRWYWx1ZScpLnRvSlNPTigpIGFzIFNlY3JldDtcbiAgICB0aGlzLnNlY3JldFBhc3N3b3JkUGxhaW50ZXh0ID0gcmVzb3VyY2UuZ2V0QXR0U3RyaW5nKCdzZWNyZXRQYXNzd29yZFZhbHVlJyk7XG4gICAgdGhpcy5jdXN0b21SZXNvdXJjZSA9IHJlc291cmNlO1xuICB9XG5cbiAgcHVibGljIF9iaW5kKCkge31cbn1cbiJdfQ==
@@ -1,2 +1,4 @@
1
1
  import { Stack } from 'aws-cdk-lib';
2
+ import { Construct } from 'constructs';
2
3
  export declare function suppressCommonNags(stack: Stack): void;
4
+ export declare function acknowledgeGranularFinding(construct: Construct, id: string, reason: string): void;
@@ -1,17 +1,35 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.suppressCommonNags = suppressCommonNags;
4
- const cdk_nag_1 = require("cdk-nag");
4
+ exports.acknowledgeGranularFinding = acknowledgeGranularFinding;
5
+ const aws_cdk_lib_1 = require("aws-cdk-lib");
5
6
  // Here we store the nags which we can only directly
6
7
  // address to resource and not with the common pattern.
7
8
  // This mostly happens with custom resources, with a lot
8
9
  // of generated code under the hood.
9
10
  function suppressCommonNags(stack) {
10
- cdk_nag_1.NagSuppressions.addResourceSuppressionsByPath(stack, `/${stack.stackName}/AWS679f53fac002430cb0da5b7982bd2287/Resource`, [
11
- {
12
- id: 'AwsSolutions-L1',
13
- reason: 'We manage runtime for AwsSdkCall Custom Resource and will update when necessary',
14
- },
15
- ]);
11
+ const path = `${stack.stackName}/AWS679f53fac002430cb0da5b7982bd2287/Resource`;
12
+ const construct = stack.node.findAll().find((c) => c.node.path === path);
13
+ if (!construct) {
14
+ // Deliberately fail-fast rather than fall back to a report-derived path or
15
+ // the nearest ancestor construct: acknowledging the wrong resource would
16
+ // silently suppress a real finding elsewhere. If this CDK-owned singleton
17
+ // logical id (AWS679f53fac002430cb0da5b7982bd2287) ever shifts, re-resolve
18
+ // it from policy-validation-report.json's AwsSolutions-L1 entry by hand.
19
+ throw new Error(`suppressCommonNags: no construct found at path '${path}'`);
20
+ }
21
+ aws_cdk_lib_1.Validations.of(construct).acknowledge({
22
+ id: 'AwsSolutions-L1',
23
+ reason: 'We manage runtime for AwsSdkCall Custom Resource and will update when necessary',
24
+ });
16
25
  }
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VwcHJlc3MtbmFncy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9zdXBwcmVzcy1uYWdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBT0EsZ0RBWUM7QUFsQkQscUNBQTBDO0FBRTFDLG9EQUFvRDtBQUNwRCx1REFBdUQ7QUFDdkQsd0RBQXdEO0FBQ3hELG9DQUFvQztBQUNwQyxTQUFnQixrQkFBa0IsQ0FBQyxLQUFZO0lBQzdDLHlCQUFlLENBQUMsNkJBQTZCLENBQzNDLEtBQUssRUFDTCxJQUFJLEtBQUssQ0FBQyxTQUFTLCtDQUErQyxFQUNsRTtRQUNFO1lBQ0UsRUFBRSxFQUFFLGlCQUFpQjtZQUNyQixNQUFNLEVBQ0osaUZBQWlGO1NBQ3BGO0tBQ0YsQ0FDRixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN0YWNrIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgTmFnU3VwcHJlc3Npb25zIH0gZnJvbSAnY2RrLW5hZyc7XG5cbi8vIEhlcmUgd2Ugc3RvcmUgdGhlIG5hZ3Mgd2hpY2ggd2UgY2FuIG9ubHkgZGlyZWN0bHlcbi8vIGFkZHJlc3MgdG8gcmVzb3VyY2UgYW5kIG5vdCB3aXRoIHRoZSBjb21tb24gcGF0dGVybi5cbi8vIFRoaXMgbW9zdGx5IGhhcHBlbnMgd2l0aCBjdXN0b20gcmVzb3VyY2VzLCB3aXRoIGEgbG90XG4vLyBvZiBnZW5lcmF0ZWQgY29kZSB1bmRlciB0aGUgaG9vZC5cbmV4cG9ydCBmdW5jdGlvbiBzdXBwcmVzc0NvbW1vbk5hZ3Moc3RhY2s6IFN0YWNrKSB7XG4gIE5hZ1N1cHByZXNzaW9ucy5hZGRSZXNvdXJjZVN1cHByZXNzaW9uc0J5UGF0aChcbiAgICBzdGFjayxcbiAgICBgLyR7c3RhY2suc3RhY2tOYW1lfS9BV1M2NzlmNTNmYWMwMDI0MzBjYjBkYTViNzk4MmJkMjI4Ny9SZXNvdXJjZWAsXG4gICAgW1xuICAgICAge1xuICAgICAgICBpZDogJ0F3c1NvbHV0aW9ucy1MMScsXG4gICAgICAgIHJlYXNvbjpcbiAgICAgICAgICAnV2UgbWFuYWdlIHJ1bnRpbWUgZm9yIEF3c1Nka0NhbGwgQ3VzdG9tIFJlc291cmNlIGFuZCB3aWxsIHVwZGF0ZSB3aGVuIG5lY2Vzc2FyeScsXG4gICAgICB9LFxuICAgIF0sXG4gICk7XG59XG4iXX0=
26
+ // cdk-nag v3's granular finding ids embed an ARN, which contains its own
27
+ // "::" sequences (e.g. 'arn:<AWS::Partition>:iam::aws:policy/...'). Validations.of().acknowledge()
28
+ // rejects any id with more than one "::" delimiter (see aws-cdk-lib's
29
+ // Validations.qualifyId), so it can never acknowledge these ARN-based findings.
30
+ // Write the same metadata entry it writes internally, using the public
31
+ // ACKNOWLEDGED_RULES_METADATA_KEY, bypassing only the over-strict id validation.
32
+ function acknowledgeGranularFinding(construct, id, reason) {
33
+ construct.node.addMetadata(aws_cdk_lib_1.Validations.ACKNOWLEDGED_RULES_METADATA_KEY, { [id]: reason });
34
+ }
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VwcHJlc3MtbmFncy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9zdXBwcmVzcy1uYWdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBT0EsZ0RBZ0JDO0FBUUQsZ0VBRUM7QUFqQ0QsNkNBQWlEO0FBR2pELG9EQUFvRDtBQUNwRCx1REFBdUQ7QUFDdkQsd0RBQXdEO0FBQ3hELG9DQUFvQztBQUNwQyxTQUFnQixrQkFBa0IsQ0FBQyxLQUFZO0lBQzdDLE1BQU0sSUFBSSxHQUFHLEdBQUcsS0FBSyxDQUFDLFNBQVMsK0NBQStDLENBQUM7SUFDL0UsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFDO0lBQ3pFLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNmLDJFQUEyRTtRQUMzRSx5RUFBeUU7UUFDekUsMEVBQTBFO1FBQzFFLDJFQUEyRTtRQUMzRSx5RUFBeUU7UUFDekUsTUFBTSxJQUFJLEtBQUssQ0FBQyxtREFBbUQsSUFBSSxHQUFHLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBQ0QseUJBQVcsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsV0FBVyxDQUFDO1FBQ3BDLEVBQUUsRUFBRSxpQkFBaUI7UUFDckIsTUFBTSxFQUNKLGlGQUFpRjtLQUNwRixDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQseUVBQXlFO0FBQ3pFLG1HQUFtRztBQUNuRyxzRUFBc0U7QUFDdEUsZ0ZBQWdGO0FBQ2hGLHVFQUF1RTtBQUN2RSxpRkFBaUY7QUFDakYsU0FBZ0IsMEJBQTBCLENBQUMsU0FBb0IsRUFBRSxFQUFVLEVBQUUsTUFBYztJQUN6RixTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyx5QkFBVyxDQUFDLCtCQUErQixFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0FBQzVGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdGFjaywgVmFsaWRhdGlvbnMgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcblxuLy8gSGVyZSB3ZSBzdG9yZSB0aGUgbmFncyB3aGljaCB3ZSBjYW4gb25seSBkaXJlY3RseVxuLy8gYWRkcmVzcyB0byByZXNvdXJjZSBhbmQgbm90IHdpdGggdGhlIGNvbW1vbiBwYXR0ZXJuLlxuLy8gVGhpcyBtb3N0bHkgaGFwcGVucyB3aXRoIGN1c3RvbSByZXNvdXJjZXMsIHdpdGggYSBsb3Rcbi8vIG9mIGdlbmVyYXRlZCBjb2RlIHVuZGVyIHRoZSBob29kLlxuZXhwb3J0IGZ1bmN0aW9uIHN1cHByZXNzQ29tbW9uTmFncyhzdGFjazogU3RhY2spIHtcbiAgY29uc3QgcGF0aCA9IGAke3N0YWNrLnN0YWNrTmFtZX0vQVdTNjc5ZjUzZmFjMDAyNDMwY2IwZGE1Yjc5ODJiZDIyODcvUmVzb3VyY2VgO1xuICBjb25zdCBjb25zdHJ1Y3QgPSBzdGFjay5ub2RlLmZpbmRBbGwoKS5maW5kKChjKSA9PiBjLm5vZGUucGF0aCA9PT0gcGF0aCk7XG4gIGlmICghY29uc3RydWN0KSB7XG4gICAgLy8gRGVsaWJlcmF0ZWx5IGZhaWwtZmFzdCByYXRoZXIgdGhhbiBmYWxsIGJhY2sgdG8gYSByZXBvcnQtZGVyaXZlZCBwYXRoIG9yXG4gICAgLy8gdGhlIG5lYXJlc3QgYW5jZXN0b3IgY29uc3RydWN0OiBhY2tub3dsZWRnaW5nIHRoZSB3cm9uZyByZXNvdXJjZSB3b3VsZFxuICAgIC8vIHNpbGVudGx5IHN1cHByZXNzIGEgcmVhbCBmaW5kaW5nIGVsc2V3aGVyZS4gSWYgdGhpcyBDREstb3duZWQgc2luZ2xldG9uXG4gICAgLy8gbG9naWNhbCBpZCAoQVdTNjc5ZjUzZmFjMDAyNDMwY2IwZGE1Yjc5ODJiZDIyODcpIGV2ZXIgc2hpZnRzLCByZS1yZXNvbHZlXG4gICAgLy8gaXQgZnJvbSBwb2xpY3ktdmFsaWRhdGlvbi1yZXBvcnQuanNvbidzIEF3c1NvbHV0aW9ucy1MMSBlbnRyeSBieSBoYW5kLlxuICAgIHRocm93IG5ldyBFcnJvcihgc3VwcHJlc3NDb21tb25OYWdzOiBubyBjb25zdHJ1Y3QgZm91bmQgYXQgcGF0aCAnJHtwYXRofSdgKTtcbiAgfVxuICBWYWxpZGF0aW9ucy5vZihjb25zdHJ1Y3QpLmFja25vd2xlZGdlKHtcbiAgICBpZDogJ0F3c1NvbHV0aW9ucy1MMScsXG4gICAgcmVhc29uOlxuICAgICAgJ1dlIG1hbmFnZSBydW50aW1lIGZvciBBd3NTZGtDYWxsIEN1c3RvbSBSZXNvdXJjZSBhbmQgd2lsbCB1cGRhdGUgd2hlbiBuZWNlc3NhcnknLFxuICB9KTtcbn1cblxuLy8gY2RrLW5hZyB2MydzIGdyYW51bGFyIGZpbmRpbmcgaWRzIGVtYmVkIGFuIEFSTiwgd2hpY2ggY29udGFpbnMgaXRzIG93blxuLy8gXCI6OlwiIHNlcXVlbmNlcyAoZS5nLiAnYXJuOjxBV1M6OlBhcnRpdGlvbj46aWFtOjphd3M6cG9saWN5Ly4uLicpLiBWYWxpZGF0aW9ucy5vZigpLmFja25vd2xlZGdlKClcbi8vIHJlamVjdHMgYW55IGlkIHdpdGggbW9yZSB0aGFuIG9uZSBcIjo6XCIgZGVsaW1pdGVyIChzZWUgYXdzLWNkay1saWInc1xuLy8gVmFsaWRhdGlvbnMucXVhbGlmeUlkKSwgc28gaXQgY2FuIG5ldmVyIGFja25vd2xlZGdlIHRoZXNlIEFSTi1iYXNlZCBmaW5kaW5ncy5cbi8vIFdyaXRlIHRoZSBzYW1lIG1ldGFkYXRhIGVudHJ5IGl0IHdyaXRlcyBpbnRlcm5hbGx5LCB1c2luZyB0aGUgcHVibGljXG4vLyBBQ0tOT1dMRURHRURfUlVMRVNfTUVUQURBVEFfS0VZLCBieXBhc3Npbmcgb25seSB0aGUgb3Zlci1zdHJpY3QgaWQgdmFsaWRhdGlvbi5cbmV4cG9ydCBmdW5jdGlvbiBhY2tub3dsZWRnZUdyYW51bGFyRmluZGluZyhjb25zdHJ1Y3Q6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcmVhc29uOiBzdHJpbmcpOiB2b2lkIHtcbiAgY29uc3RydWN0Lm5vZGUuYWRkTWV0YWRhdGEoVmFsaWRhdGlvbnMuQUNLTk9XTEVER0VEX1JVTEVTX01FVEFEQVRBX0tFWSwgeyBbaWRdOiByZWFzb24gfSk7XG59XG4iXX0=