diff --git a/.projen/deps.json b/.projen/deps.json index a03f97d90f..f92615718a 100644 --- a/.projen/deps.json +++ b/.projen/deps.json @@ -25,6 +25,11 @@ "version": "^7", "type": "build" }, + { + "name": "commit-and-tag-version", + "version": "^12", + "type": "build" + }, { "name": "eslint-config-prettier", "type": "build" @@ -62,6 +67,7 @@ }, { "name": "jsii-docgen", + "version": "^10.5.0", "type": "build" }, { @@ -86,11 +92,6 @@ "name": "projen", "type": "build" }, - { - "name": "standard-version", - "version": "^9", - "type": "build" - }, { "name": "ts-jest", "version": "^27", diff --git a/.projen/tasks.json b/.projen/tasks.json index b274981ce7..1a8a7ccff4 100644 --- a/.projen/tasks.json +++ b/.projen/tasks.json @@ -32,7 +32,8 @@ "CHANGELOG": "dist/changelog.md", "BUMPFILE": "dist/version.txt", "RELEASETAG": "dist/releasetag.txt", - "RELEASE_TAG_PREFIX": "" + "RELEASE_TAG_PREFIX": "", + "BUMP_PACKAGE": "commit-and-tag-version@^12" }, "steps": [ { @@ -312,7 +313,8 @@ "CHANGELOG": "dist/changelog.md", "BUMPFILE": "dist/version.txt", "RELEASETAG": "dist/releasetag.txt", - "RELEASE_TAG_PREFIX": "" + "RELEASE_TAG_PREFIX": "", + "BUMP_PACKAGE": "commit-and-tag-version@^12" }, "steps": [ { @@ -328,13 +330,13 @@ }, "steps": [ { - "exec": "npx npm-check-updates@16 --upgrade --target=minor --peer --dep=dev,peer,prod,optional --filter=eslint-config-prettier,eslint-import-resolver-typescript,eslint-plugin-import,eslint-plugin-prettier,jsii-diff,jsii-docgen,jsii-pacmak,prettier,projen,typescript" + "exec": "npx npm-check-updates@16 --upgrade --target=minor --peer --dep=dev,peer,prod,optional --filter=eslint-config-prettier,eslint-import-resolver-typescript,eslint-plugin-import,eslint-plugin-prettier,jsii-diff,jsii-pacmak,prettier,projen,typescript" }, { "exec": "yarn install --check-files" }, { - "exec": "yarn upgrade @aws-cdk/assert @types/jest @types/node @typescript-eslint/eslint-plugin @typescript-eslint/parser eslint-config-prettier eslint-import-resolver-typescript eslint-plugin-import eslint-plugin-prettier eslint jest-junit jest jsii-diff jsii-docgen jsii-pacmak jsii-rosetta jsii prettier projen standard-version ts-jest typescript aws-cdk-lib constructs" + "exec": "yarn upgrade @aws-cdk/assert @types/jest @types/node @typescript-eslint/eslint-plugin @typescript-eslint/parser commit-and-tag-version eslint-config-prettier eslint-import-resolver-typescript eslint-plugin-import eslint-plugin-prettier eslint jest-junit jest jsii-diff jsii-docgen jsii-pacmak jsii-rosetta jsii prettier projen ts-jest typescript aws-cdk-lib constructs" }, { "exec": "npx projen" diff --git a/API.md b/API.md index 2204027dc2..6a09194f79 100644 --- a/API.md +++ b/API.md @@ -1,1575 +1,2718 @@ -# API Reference - -**Classes** - -Name|Description -----|----------- -[AnnotationLogger](#cdk-nag-annotationlogger)|A NagLogger that outputs to the CDK Annotations system. -[AwsSolutionsChecks](#cdk-nag-awssolutionschecks)|Check Best practices based on AWS Solutions Security Matrix. -[HIPAASecurityChecks](#cdk-nag-hipaasecuritychecks)|Check for HIPAA Security compliance. -[NIST80053R4Checks](#cdk-nag-nist80053r4checks)|Check for NIST 800-53 rev 4 compliance. -[NIST80053R5Checks](#cdk-nag-nist80053r5checks)|Check for NIST 800-53 rev 5 compliance. -[NagPack](#cdk-nag-nagpack)|Base class for all rule packs. -[NagReportLogger](#cdk-nag-nagreportlogger)|A NagLogger that creates compliance reports. -[NagRules](#cdk-nag-nagrules)|Helper class with methods for rule creation. -[NagSuppressions](#cdk-nag-nagsuppressions)|Helper class with methods to add cdk-nag suppressions to cdk resources. -[PCIDSS321Checks](#cdk-nag-pcidss321checks)|Check for PCI DSS 3.2.1 compliance. Based on the PCI DSS 3.2.1 AWS operational best practices: https://docs.aws.amazon.com/config/latest/developerguide/operational-best-practices-for-pci-dss.html. -[SuppressionIgnoreAlways](#cdk-nag-suppressionignorealways)|Always ignore the suppression. -[SuppressionIgnoreAnd](#cdk-nag-suppressionignoreand)|Ignore the suppression if all of the given INagSuppressionIgnore return a non-empty message. -[SuppressionIgnoreErrors](#cdk-nag-suppressionignoreerrors)|Ignore Suppressions for Rules with a NagMessageLevel.ERROR. -[SuppressionIgnoreNever](#cdk-nag-suppressionignorenever)|Don't ignore the suppression. -[SuppressionIgnoreOr](#cdk-nag-suppressionignoreor)|Ignore the suppression if any of the given INagSuppressionIgnore return a non-empty message. - - -**Structs** - -Name|Description -----|----------- -[AnnotationLoggerProps](#cdk-nag-annotationloggerprops)|Props for the AnnotationLogger. -[NagLoggerBaseData](#cdk-nag-nagloggerbasedata)|Shared data for all INagLogger methods. -[NagLoggerComplianceData](#cdk-nag-nagloggercompliancedata)|Data for onCompliance method of an INagLogger. -[NagLoggerErrorData](#cdk-nag-nagloggererrordata)|Data for onError method of an INagLogger. -[NagLoggerNonComplianceData](#cdk-nag-nagloggernoncompliancedata)|Data for onNonCompliance method of an INagLogger. -[NagLoggerNotApplicableData](#cdk-nag-nagloggernotapplicabledata)|Data for onNotApplicable method of an INagLogger. -[NagLoggerSuppressedData](#cdk-nag-nagloggersuppresseddata)|Data for onSuppressed method of an INagLogger. -[NagLoggerSuppressedErrorData](#cdk-nag-nagloggersuppressederrordata)|Data for onSuppressedError method of an INagLogger. -[NagPackProps](#cdk-nag-nagpackprops)|Interface for creating a NagPack. -[NagPackSuppression](#cdk-nag-nagpacksuppression)|Interface for creating a rule suppression. -[NagReportLine](#cdk-nag-nagreportline)|*No description* -[NagReportLoggerProps](#cdk-nag-nagreportloggerprops)|Props for the NagReportLogger. -[NagReportSchema](#cdk-nag-nagreportschema)|*No description* -[RegexAppliesTo](#cdk-nag-regexappliesto)|A regular expression to apply to matching findings. -[SuppressionIgnoreInput](#cdk-nag-suppressionignoreinput)|Information about the NagRule and the relevant NagSuppression for the INagSuppressionIgnore. - - -**Interfaces** - -Name|Description -----|----------- -[IApplyRule](#cdk-nag-iapplyrule)|Interface for JSII interoperability for passing parameters and the Rule Callback to @applyRule method. -[INagLogger](#cdk-nag-inaglogger)|Interface for creating NagSuppression Ignores. -[INagSuppressionIgnore](#cdk-nag-inagsuppressionignore)|Interface for creating NagSuppression Ignores. - - -**Enums** - -Name|Description -----|----------- -[NagMessageLevel](#cdk-nag-nagmessagelevel)|The severity level of the rule. -[NagReportFormat](#cdk-nag-nagreportformat)|Possible output formats of the NagReport. -[NagRuleCompliance](#cdk-nag-nagrulecompliance)|The compliance level of a resource in relation to a rule. -[NagRulePostValidationStates](#cdk-nag-nagrulepostvalidationstates)|Additional states a rule can be in post compliance validation. - - - -## class AnnotationLogger +# API Reference -A NagLogger that outputs to the CDK Annotations system. -__Implements__: [INagLogger](#cdk-nag-inaglogger) +## Structs -### Initializer +### AnnotationLoggerProps +Props for the AnnotationLogger. +#### Initializer +```typescript +import { AnnotationLoggerProps } from 'cdk-nag' -```ts -new AnnotationLogger(props?: AnnotationLoggerProps) +const annotationLoggerProps: AnnotationLoggerProps = { ... } ``` -* **props** ([AnnotationLoggerProps](#cdk-nag-annotationloggerprops)) *No description* - * **logIgnores** (boolean) Whether or not to log suppressed rule violations as informational messages (default: false). __*Optional*__ - * **verbose** (boolean) Whether or not to enable extended explanatory descriptions on warning, error, and logged ignore messages. __*Optional*__ - +#### Properties +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| logIgnores | boolean | Whether or not to log suppressed rule violations as informational messages (default: false). | +| verbose | boolean | Whether or not to enable extended explanatory descriptions on warning, error, and logged ignore messages. | -### Properties +--- +##### `logIgnores`Optional -Name | Type | Description ------|------|------------- -**logIgnores** | boolean | -**suppressionId** | string | -**verbose** | boolean | +```typescript +public readonly logIgnores: boolean; +``` -### Methods +- *Type:* boolean +Whether or not to log suppressed rule violations as informational messages (default: false). -#### onCompliance(_data) +--- -Called when a CfnResource passes the compliance check for a given rule. +##### `verbose`Optional -```ts -onCompliance(_data: NagLoggerComplianceData): void +```typescript +public readonly verbose: boolean; ``` -* **_data** ([NagLoggerComplianceData](#cdk-nag-nagloggercompliancedata)) *No description* - * **nagPackName** (string) *No description* - * **resource** ([CfnResource](#aws-cdk-lib-cfnresource)) *No description* - * **ruleExplanation** (string) *No description* - * **ruleId** (string) *No description* - * **ruleInfo** (string) *No description* - * **ruleLevel** ([NagMessageLevel](#cdk-nag-nagmessagelevel)) *No description* - * **ruleOriginalName** (string) *No description* +- *Type:* boolean +Whether or not to enable extended explanatory descriptions on warning, error, and logged ignore messages. +--- +### NagLoggerBaseData -#### onError(data) - -Called when a rule throws an error during while validating a CfnResource for compliance. +Shared data for all INagLogger methods. -```ts -onError(data: NagLoggerErrorData): void -``` +#### Initializer -* **data** ([NagLoggerErrorData](#cdk-nag-nagloggererrordata)) *No description* - * **nagPackName** (string) *No description* - * **resource** ([CfnResource](#aws-cdk-lib-cfnresource)) *No description* - * **ruleExplanation** (string) *No description* - * **ruleId** (string) *No description* - * **ruleInfo** (string) *No description* - * **ruleLevel** ([NagMessageLevel](#cdk-nag-nagmessagelevel)) *No description* - * **ruleOriginalName** (string) *No description* - * **errorMessage** (string) *No description* +```typescript +import { NagLoggerBaseData } from 'cdk-nag' +const nagLoggerBaseData: NagLoggerBaseData = { ... } +``` +#### Properties +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| nagPackName | string | *No description.* | +| resource | aws-cdk-lib.CfnResource | *No description.* | +| ruleExplanation | string | *No description.* | +| ruleId | string | *No description.* | +| ruleInfo | string | *No description.* | +| ruleLevel | NagMessageLevel | *No description.* | +| ruleOriginalName | string | *No description.* | -#### onNonCompliance(data) +--- -Called when a CfnResource does not pass the compliance check for a given rule and the the rule violation is not suppressed by the user. +##### `nagPackName`Required -```ts -onNonCompliance(data: NagLoggerNonComplianceData): void +```typescript +public readonly nagPackName: string; ``` -* **data** ([NagLoggerNonComplianceData](#cdk-nag-nagloggernoncompliancedata)) *No description* - * **nagPackName** (string) *No description* - * **resource** ([CfnResource](#aws-cdk-lib-cfnresource)) *No description* - * **ruleExplanation** (string) *No description* - * **ruleId** (string) *No description* - * **ruleInfo** (string) *No description* - * **ruleLevel** ([NagMessageLevel](#cdk-nag-nagmessagelevel)) *No description* - * **ruleOriginalName** (string) *No description* - * **findingId** (string) *No description* +- *Type:* string +--- +##### `resource`Required +```typescript +public readonly resource: CfnResource; +``` -#### onNotApplicable(_data) +- *Type:* aws-cdk-lib.CfnResource -Called when a rule does not apply to the given CfnResource. +--- -```ts -onNotApplicable(_data: NagLoggerNotApplicableData): void +##### `ruleExplanation`Required + +```typescript +public readonly ruleExplanation: string; ``` -* **_data** ([NagLoggerNotApplicableData](#cdk-nag-nagloggernotapplicabledata)) *No description* - * **nagPackName** (string) *No description* - * **resource** ([CfnResource](#aws-cdk-lib-cfnresource)) *No description* - * **ruleExplanation** (string) *No description* - * **ruleId** (string) *No description* - * **ruleInfo** (string) *No description* - * **ruleLevel** ([NagMessageLevel](#cdk-nag-nagmessagelevel)) *No description* - * **ruleOriginalName** (string) *No description* +- *Type:* string + +--- +##### `ruleId`Required +```typescript +public readonly ruleId: string; +``` +- *Type:* string -#### onSuppressed(data) +--- -Called when a CfnResource does not pass the compliance check for a given rule and the rule violation is suppressed by the user. +##### `ruleInfo`Required -```ts -onSuppressed(data: NagLoggerSuppressedData): void +```typescript +public readonly ruleInfo: string; ``` -* **data** ([NagLoggerSuppressedData](#cdk-nag-nagloggersuppresseddata)) *No description* - * **nagPackName** (string) *No description* - * **resource** ([CfnResource](#aws-cdk-lib-cfnresource)) *No description* - * **ruleExplanation** (string) *No description* - * **ruleId** (string) *No description* - * **ruleInfo** (string) *No description* - * **ruleLevel** ([NagMessageLevel](#cdk-nag-nagmessagelevel)) *No description* - * **ruleOriginalName** (string) *No description* - * **findingId** (string) *No description* - * **suppressionReason** (string) *No description* +- *Type:* string +--- +##### `ruleLevel`Required +```typescript +public readonly ruleLevel: NagMessageLevel; +``` -#### onSuppressedError(data) +- *Type:* NagMessageLevel -Called when a rule throws an error during while validating a CfnResource for compliance and the error is suppressed. +--- -```ts -onSuppressedError(data: NagLoggerSuppressedErrorData): void -``` +##### `ruleOriginalName`Required -* **data** ([NagLoggerSuppressedErrorData](#cdk-nag-nagloggersuppressederrordata)) *No description* - * **nagPackName** (string) *No description* - * **resource** ([CfnResource](#aws-cdk-lib-cfnresource)) *No description* - * **ruleExplanation** (string) *No description* - * **ruleId** (string) *No description* - * **ruleInfo** (string) *No description* - * **ruleLevel** ([NagMessageLevel](#cdk-nag-nagmessagelevel)) *No description* - * **ruleOriginalName** (string) *No description* - * **errorMessage** (string) *No description* - * **errorSuppressionReason** (string) *No description* +```typescript +public readonly ruleOriginalName: string; +``` +- *Type:* string +--- +### NagLoggerComplianceData -#### protected createMessage(ruleId, findingId, ruleInfo, ruleExplanation, verbose) +Data for onCompliance method of an INagLogger. +#### Initializer +```typescript +import { NagLoggerComplianceData } from 'cdk-nag' -```ts -protected createMessage(ruleId: string, findingId: string, ruleInfo: string, ruleExplanation: string, verbose: boolean): string +const nagLoggerComplianceData: NagLoggerComplianceData = { ... } ``` -* **ruleId** (string) *No description* -* **findingId** (string) *No description* -* **ruleInfo** (string) *No description* -* **ruleExplanation** (string) *No description* -* **verbose** (boolean) *No description* +#### Properties + +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| nagPackName | string | *No description.* | +| resource | aws-cdk-lib.CfnResource | *No description.* | +| ruleExplanation | string | *No description.* | +| ruleId | string | *No description.* | +| ruleInfo | string | *No description.* | +| ruleLevel | NagMessageLevel | *No description.* | +| ruleOriginalName | string | *No description.* | -__Returns__: -* string +--- +##### `nagPackName`Required +```typescript +public readonly nagPackName: string; +``` -## class AwsSolutionsChecks +- *Type:* string -Check Best practices based on AWS Solutions Security Matrix. +--- -__Implements__: [IAspect](#aws-cdk-lib-iaspect) -__Extends__: [NagPack](#cdk-nag-nagpack) +##### `resource`Required -### Initializer +```typescript +public readonly resource: CfnResource; +``` +- *Type:* aws-cdk-lib.CfnResource +--- +##### `ruleExplanation`Required -```ts -new AwsSolutionsChecks(props?: NagPackProps) +```typescript +public readonly ruleExplanation: string; ``` -* **props** ([NagPackProps](#cdk-nag-nagpackprops)) *No description* - * **additionalLoggers** (Array<[INagLogger](#cdk-nag-inaglogger)>) Additional NagLoggers for logging rule validation outputs. __*Optional*__ - * **logIgnores** (boolean) Whether or not to log suppressed rule violations as informational messages (default: false). __*Optional*__ - * **reportFormats** (Array<[NagReportFormat](#cdk-nag-nagreportformat)>) If reports are enabled, the output formats of compliance reports in the App's output directory (default: only CSV). __*Optional*__ - * **reports** (boolean) Whether or not to generate compliance reports for applied Stacks in the App's output directory (default: true). __*Optional*__ - * **suppressionIgnoreCondition** ([INagSuppressionIgnore](#cdk-nag-inagsuppressionignore)) Conditionally prevent rules from being suppressed (default: no user provided condition). __*Optional*__ - * **verbose** (boolean) Whether or not to enable extended explanatory descriptions on warning, error, and logged ignore messages (default: false). __*Optional*__ +- *Type:* string +--- -### Methods +##### `ruleId`Required +```typescript +public readonly ruleId: string; +``` -#### visit(node) +- *Type:* string -All aspects can visit an IConstruct. +--- -```ts -visit(node: IConstruct): void +##### `ruleInfo`Required + +```typescript +public readonly ruleInfo: string; ``` -* **node** ([IConstruct](#constructs-iconstruct)) *No description* +- *Type:* string +--- +##### `ruleLevel`Required +```typescript +public readonly ruleLevel: NagMessageLevel; +``` +- *Type:* NagMessageLevel +--- -## class HIPAASecurityChecks +##### `ruleOriginalName`Required -Check for HIPAA Security compliance. +```typescript +public readonly ruleOriginalName: string; +``` -Based on the HIPAA Security AWS operational best practices: https://docs.aws.amazon.com/config/latest/developerguide/operational-best-practices-for-hipaa_security.html +- *Type:* string -__Implements__: [IAspect](#aws-cdk-lib-iaspect) -__Extends__: [NagPack](#cdk-nag-nagpack) +--- -### Initializer +### NagLoggerErrorData +Data for onError method of an INagLogger. +#### Initializer +```typescript +import { NagLoggerErrorData } from 'cdk-nag' -```ts -new HIPAASecurityChecks(props?: NagPackProps) +const nagLoggerErrorData: NagLoggerErrorData = { ... } ``` -* **props** ([NagPackProps](#cdk-nag-nagpackprops)) *No description* - * **additionalLoggers** (Array<[INagLogger](#cdk-nag-inaglogger)>) Additional NagLoggers for logging rule validation outputs. __*Optional*__ - * **logIgnores** (boolean) Whether or not to log suppressed rule violations as informational messages (default: false). __*Optional*__ - * **reportFormats** (Array<[NagReportFormat](#cdk-nag-nagreportformat)>) If reports are enabled, the output formats of compliance reports in the App's output directory (default: only CSV). __*Optional*__ - * **reports** (boolean) Whether or not to generate compliance reports for applied Stacks in the App's output directory (default: true). __*Optional*__ - * **suppressionIgnoreCondition** ([INagSuppressionIgnore](#cdk-nag-inagsuppressionignore)) Conditionally prevent rules from being suppressed (default: no user provided condition). __*Optional*__ - * **verbose** (boolean) Whether or not to enable extended explanatory descriptions on warning, error, and logged ignore messages (default: false). __*Optional*__ - +#### Properties -### Methods +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| nagPackName | string | *No description.* | +| resource | aws-cdk-lib.CfnResource | *No description.* | +| ruleExplanation | string | *No description.* | +| ruleId | string | *No description.* | +| ruleInfo | string | *No description.* | +| ruleLevel | NagMessageLevel | *No description.* | +| ruleOriginalName | string | *No description.* | +| errorMessage | string | *No description.* | +--- -#### visit(node) - -All aspects can visit an IConstruct. +##### `nagPackName`Required -```ts -visit(node: IConstruct): void +```typescript +public readonly nagPackName: string; ``` -* **node** ([IConstruct](#constructs-iconstruct)) *No description* +- *Type:* string +--- +##### `resource`Required +```typescript +public readonly resource: CfnResource; +``` +- *Type:* aws-cdk-lib.CfnResource +--- -## class NIST80053R4Checks +##### `ruleExplanation`Required -Check for NIST 800-53 rev 4 compliance. +```typescript +public readonly ruleExplanation: string; +``` -Based on the NIST 800-53 rev 4 AWS operational best practices: https://docs.aws.amazon.com/config/latest/developerguide/operational-best-practices-for-nist-800-53_rev_4.html +- *Type:* string -__Implements__: [IAspect](#aws-cdk-lib-iaspect) -__Extends__: [NagPack](#cdk-nag-nagpack) +--- -### Initializer +##### `ruleId`Required +```typescript +public readonly ruleId: string; +``` +- *Type:* string +--- -```ts -new NIST80053R4Checks(props?: NagPackProps) +##### `ruleInfo`Required + +```typescript +public readonly ruleInfo: string; ``` -* **props** ([NagPackProps](#cdk-nag-nagpackprops)) *No description* - * **additionalLoggers** (Array<[INagLogger](#cdk-nag-inaglogger)>) Additional NagLoggers for logging rule validation outputs. __*Optional*__ - * **logIgnores** (boolean) Whether or not to log suppressed rule violations as informational messages (default: false). __*Optional*__ - * **reportFormats** (Array<[NagReportFormat](#cdk-nag-nagreportformat)>) If reports are enabled, the output formats of compliance reports in the App's output directory (default: only CSV). __*Optional*__ - * **reports** (boolean) Whether or not to generate compliance reports for applied Stacks in the App's output directory (default: true). __*Optional*__ - * **suppressionIgnoreCondition** ([INagSuppressionIgnore](#cdk-nag-inagsuppressionignore)) Conditionally prevent rules from being suppressed (default: no user provided condition). __*Optional*__ - * **verbose** (boolean) Whether or not to enable extended explanatory descriptions on warning, error, and logged ignore messages (default: false). __*Optional*__ +- *Type:* string + +--- +##### `ruleLevel`Required -### Methods +```typescript +public readonly ruleLevel: NagMessageLevel; +``` +- *Type:* NagMessageLevel -#### visit(node) +--- -All aspects can visit an IConstruct. +##### `ruleOriginalName`Required -```ts -visit(node: IConstruct): void +```typescript +public readonly ruleOriginalName: string; ``` -* **node** ([IConstruct](#constructs-iconstruct)) *No description* +- *Type:* string +--- +##### `errorMessage`Required +```typescript +public readonly errorMessage: string; +``` +- *Type:* string +--- -## class NIST80053R5Checks +### NagLoggerNonComplianceData -Check for NIST 800-53 rev 5 compliance. +Data for onNonCompliance method of an INagLogger. -Based on the NIST 800-53 rev 5 AWS operational best practices: https://docs.aws.amazon.com/config/latest/developerguide/operational-best-practices-for-nist-800-53_rev_5.html +#### Initializer -__Implements__: [IAspect](#aws-cdk-lib-iaspect) -__Extends__: [NagPack](#cdk-nag-nagpack) +```typescript +import { NagLoggerNonComplianceData } from 'cdk-nag' -### Initializer +const nagLoggerNonComplianceData: NagLoggerNonComplianceData = { ... } +``` +#### Properties +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| nagPackName | string | *No description.* | +| resource | aws-cdk-lib.CfnResource | *No description.* | +| ruleExplanation | string | *No description.* | +| ruleId | string | *No description.* | +| ruleInfo | string | *No description.* | +| ruleLevel | NagMessageLevel | *No description.* | +| ruleOriginalName | string | *No description.* | +| findingId | string | *No description.* | +--- -```ts -new NIST80053R5Checks(props?: NagPackProps) +##### `nagPackName`Required + +```typescript +public readonly nagPackName: string; ``` -* **props** ([NagPackProps](#cdk-nag-nagpackprops)) *No description* - * **additionalLoggers** (Array<[INagLogger](#cdk-nag-inaglogger)>) Additional NagLoggers for logging rule validation outputs. __*Optional*__ - * **logIgnores** (boolean) Whether or not to log suppressed rule violations as informational messages (default: false). __*Optional*__ - * **reportFormats** (Array<[NagReportFormat](#cdk-nag-nagreportformat)>) If reports are enabled, the output formats of compliance reports in the App's output directory (default: only CSV). __*Optional*__ - * **reports** (boolean) Whether or not to generate compliance reports for applied Stacks in the App's output directory (default: true). __*Optional*__ - * **suppressionIgnoreCondition** ([INagSuppressionIgnore](#cdk-nag-inagsuppressionignore)) Conditionally prevent rules from being suppressed (default: no user provided condition). __*Optional*__ - * **verbose** (boolean) Whether or not to enable extended explanatory descriptions on warning, error, and logged ignore messages (default: false). __*Optional*__ +- *Type:* string + +--- +##### `resource`Required -### Methods +```typescript +public readonly resource: CfnResource; +``` +- *Type:* aws-cdk-lib.CfnResource -#### visit(node) +--- -All aspects can visit an IConstruct. +##### `ruleExplanation`Required -```ts -visit(node: IConstruct): void +```typescript +public readonly ruleExplanation: string; ``` -* **node** ([IConstruct](#constructs-iconstruct)) *No description* +- *Type:* string +--- +##### `ruleId`Required +```typescript +public readonly ruleId: string; +``` +- *Type:* string +--- -## class NagPack +##### `ruleInfo`Required -Base class for all rule packs. +```typescript +public readonly ruleInfo: string; +``` + +- *Type:* string -__Implements__: [IAspect](#aws-cdk-lib-iaspect) -__Implemented by__: [AwsSolutionsChecks](#cdk-nag-awssolutionschecks), [HIPAASecurityChecks](#cdk-nag-hipaasecuritychecks), [NIST80053R4Checks](#cdk-nag-nist80053r4checks), [NIST80053R5Checks](#cdk-nag-nist80053r5checks), [PCIDSS321Checks](#cdk-nag-pcidss321checks) +--- -### Initializer +##### `ruleLevel`Required +```typescript +public readonly ruleLevel: NagMessageLevel; +``` +- *Type:* NagMessageLevel +--- -```ts -new NagPack(props?: NagPackProps) +##### `ruleOriginalName`Required + +```typescript +public readonly ruleOriginalName: string; ``` -* **props** ([NagPackProps](#cdk-nag-nagpackprops)) *No description* - * **additionalLoggers** (Array<[INagLogger](#cdk-nag-inaglogger)>) Additional NagLoggers for logging rule validation outputs. __*Optional*__ - * **logIgnores** (boolean) Whether or not to log suppressed rule violations as informational messages (default: false). __*Optional*__ - * **reportFormats** (Array<[NagReportFormat](#cdk-nag-nagreportformat)>) If reports are enabled, the output formats of compliance reports in the App's output directory (default: only CSV). __*Optional*__ - * **reports** (boolean) Whether or not to generate compliance reports for applied Stacks in the App's output directory (default: true). __*Optional*__ - * **suppressionIgnoreCondition** ([INagSuppressionIgnore](#cdk-nag-inagsuppressionignore)) Conditionally prevent rules from being suppressed (default: no user provided condition). __*Optional*__ - * **verbose** (boolean) Whether or not to enable extended explanatory descriptions on warning, error, and logged ignore messages (default: false). __*Optional*__ +- *Type:* string +--- +##### `findingId`Required -### Properties +```typescript +public readonly findingId: string; +``` +- *Type:* string -Name | Type | Description ------|------|------------- -**loggers** | Array<[INagLogger](#cdk-nag-inaglogger)> | -**packName** | string | -**readPackName** | string | -**packGlobalSuppressionIgnore**? | [INagSuppressionIgnore](#cdk-nag-inagsuppressionignore) | __*Optional*__ -**userGlobalSuppressionIgnore**? | [INagSuppressionIgnore](#cdk-nag-inagsuppressionignore) | __*Optional*__ +--- -### Methods +### NagLoggerNotApplicableData +Data for onNotApplicable method of an INagLogger. -#### visit(node) +#### Initializer -All aspects can visit an IConstruct. +```typescript +import { NagLoggerNotApplicableData } from 'cdk-nag' -```ts -visit(node: IConstruct): void +const nagLoggerNotApplicableData: NagLoggerNotApplicableData = { ... } ``` -* **node** ([IConstruct](#constructs-iconstruct)) *No description* - - +#### Properties +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| nagPackName | string | *No description.* | +| resource | aws-cdk-lib.CfnResource | *No description.* | +| ruleExplanation | string | *No description.* | +| ruleId | string | *No description.* | +| ruleInfo | string | *No description.* | +| ruleLevel | NagMessageLevel | *No description.* | +| ruleOriginalName | string | *No description.* | -#### protected applyRule(params) +--- -Create a rule to be used in the NagPack. +##### `nagPackName`Required -```ts -protected applyRule(params: IApplyRule): void +```typescript +public readonly nagPackName: string; ``` -* **params** ([IApplyRule](#cdk-nag-iapplyrule)) The. +- *Type:* string +--- +##### `resource`Required +```typescript +public readonly resource: CfnResource; +``` + +- *Type:* aws-cdk-lib.CfnResource -#### protected ignoreRule(suppressions, ruleId, findingId, resource, level, ignoreSuppressionCondition?) +--- -Check whether a specific rule should be ignored. +##### `ruleExplanation`Required -```ts -protected ignoreRule(suppressions: Array, ruleId: string, findingId: string, resource: CfnResource, level: NagMessageLevel, ignoreSuppressionCondition?: INagSuppressionIgnore): string +```typescript +public readonly ruleExplanation: string; ``` -* **suppressions** (Array<[NagPackSuppression](#cdk-nag-nagpacksuppression)>) The suppressions listed in the cdk-nag metadata. -* **ruleId** (string) The id of the rule to ignore. -* **findingId** (string) The id of the finding that is being checked. -* **resource** ([CfnResource](#aws-cdk-lib-cfnresource)) The resource being evaluated. -* **level** ([NagMessageLevel](#cdk-nag-nagmessagelevel)) *No description* -* **ignoreSuppressionCondition** ([INagSuppressionIgnore](#cdk-nag-inagsuppressionignore)) *No description* +- *Type:* string -__Returns__: -* string +--- +##### `ruleId`Required +```typescript +public readonly ruleId: string; +``` -## class NagReportLogger +- *Type:* string -A NagLogger that creates compliance reports. +--- -__Implements__: [INagLogger](#cdk-nag-inaglogger) +##### `ruleInfo`Required -### Initializer +```typescript +public readonly ruleInfo: string; +``` +- *Type:* string +--- +##### `ruleLevel`Required -```ts -new NagReportLogger(props: NagReportLoggerProps) +```typescript +public readonly ruleLevel: NagMessageLevel; ``` -* **props** ([NagReportLoggerProps](#cdk-nag-nagreportloggerprops)) *No description* - * **formats** (Array<[NagReportFormat](#cdk-nag-nagreportformat)>) *No description* +- *Type:* NagMessageLevel +--- +##### `ruleOriginalName`Required -### Properties - +```typescript +public readonly ruleOriginalName: string; +``` -Name | Type | Description ------|------|------------- -**formats** | Array<[NagReportFormat](#cdk-nag-nagreportformat)> | +- *Type:* string -### Methods +--- +### NagLoggerSuppressedData -#### getFormatStacks(format) +Data for onSuppressed method of an INagLogger. +#### Initializer +```typescript +import { NagLoggerSuppressedData } from 'cdk-nag' -```ts -getFormatStacks(format: NagReportFormat): Array +const nagLoggerSuppressedData: NagLoggerSuppressedData = { ... } ``` -* **format** ([NagReportFormat](#cdk-nag-nagreportformat)) *No description* +#### Properties -__Returns__: -* Array +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| nagPackName | string | *No description.* | +| resource | aws-cdk-lib.CfnResource | *No description.* | +| ruleExplanation | string | *No description.* | +| ruleId | string | *No description.* | +| ruleInfo | string | *No description.* | +| ruleLevel | NagMessageLevel | *No description.* | +| ruleOriginalName | string | *No description.* | +| findingId | string | *No description.* | +| suppressionReason | string | *No description.* | -#### onCompliance(data) +--- -Called when a CfnResource passes the compliance check for a given rule. +##### `nagPackName`Required -```ts -onCompliance(data: NagLoggerComplianceData): void +```typescript +public readonly nagPackName: string; ``` -* **data** ([NagLoggerComplianceData](#cdk-nag-nagloggercompliancedata)) *No description* - * **nagPackName** (string) *No description* - * **resource** ([CfnResource](#aws-cdk-lib-cfnresource)) *No description* - * **ruleExplanation** (string) *No description* - * **ruleId** (string) *No description* - * **ruleInfo** (string) *No description* - * **ruleLevel** ([NagMessageLevel](#cdk-nag-nagmessagelevel)) *No description* - * **ruleOriginalName** (string) *No description* +- *Type:* string +--- +##### `resource`Required +```typescript +public readonly resource: CfnResource; +``` -#### onError(data) +- *Type:* aws-cdk-lib.CfnResource -Called when a rule throws an error during while validating a CfnResource for compliance. +--- -```ts -onError(data: NagLoggerErrorData): void +##### `ruleExplanation`Required + +```typescript +public readonly ruleExplanation: string; ``` -* **data** ([NagLoggerErrorData](#cdk-nag-nagloggererrordata)) *No description* - * **nagPackName** (string) *No description* - * **resource** ([CfnResource](#aws-cdk-lib-cfnresource)) *No description* - * **ruleExplanation** (string) *No description* - * **ruleId** (string) *No description* - * **ruleInfo** (string) *No description* - * **ruleLevel** ([NagMessageLevel](#cdk-nag-nagmessagelevel)) *No description* - * **ruleOriginalName** (string) *No description* - * **errorMessage** (string) *No description* +- *Type:* string + +--- +##### `ruleId`Required +```typescript +public readonly ruleId: string; +``` +- *Type:* string -#### onNonCompliance(data) +--- -Called when a CfnResource does not pass the compliance check for a given rule and the the rule violation is not suppressed by the user. +##### `ruleInfo`Required -```ts -onNonCompliance(data: NagLoggerNonComplianceData): void +```typescript +public readonly ruleInfo: string; ``` -* **data** ([NagLoggerNonComplianceData](#cdk-nag-nagloggernoncompliancedata)) *No description* - * **nagPackName** (string) *No description* - * **resource** ([CfnResource](#aws-cdk-lib-cfnresource)) *No description* - * **ruleExplanation** (string) *No description* - * **ruleId** (string) *No description* - * **ruleInfo** (string) *No description* - * **ruleLevel** ([NagMessageLevel](#cdk-nag-nagmessagelevel)) *No description* - * **ruleOriginalName** (string) *No description* - * **findingId** (string) *No description* +- *Type:* string +--- +##### `ruleLevel`Required +```typescript +public readonly ruleLevel: NagMessageLevel; +``` -#### onNotApplicable(data) +- *Type:* NagMessageLevel -Called when a rule does not apply to the given CfnResource. +--- -```ts -onNotApplicable(data: NagLoggerNotApplicableData): void +##### `ruleOriginalName`Required + +```typescript +public readonly ruleOriginalName: string; ``` -* **data** ([NagLoggerNotApplicableData](#cdk-nag-nagloggernotapplicabledata)) *No description* - * **nagPackName** (string) *No description* - * **resource** ([CfnResource](#aws-cdk-lib-cfnresource)) *No description* - * **ruleExplanation** (string) *No description* - * **ruleId** (string) *No description* - * **ruleInfo** (string) *No description* - * **ruleLevel** ([NagMessageLevel](#cdk-nag-nagmessagelevel)) *No description* - * **ruleOriginalName** (string) *No description* +- *Type:* string + +--- +##### `findingId`Required +```typescript +public readonly findingId: string; +``` +- *Type:* string -#### onSuppressed(data) +--- -Called when a CfnResource does not pass the compliance check for a given rule and the rule violation is suppressed by the user. +##### `suppressionReason`Required -```ts -onSuppressed(data: NagLoggerSuppressedData): void +```typescript +public readonly suppressionReason: string; ``` -* **data** ([NagLoggerSuppressedData](#cdk-nag-nagloggersuppresseddata)) *No description* - * **nagPackName** (string) *No description* - * **resource** ([CfnResource](#aws-cdk-lib-cfnresource)) *No description* - * **ruleExplanation** (string) *No description* - * **ruleId** (string) *No description* - * **ruleInfo** (string) *No description* - * **ruleLevel** ([NagMessageLevel](#cdk-nag-nagmessagelevel)) *No description* - * **ruleOriginalName** (string) *No description* - * **findingId** (string) *No description* - * **suppressionReason** (string) *No description* +- *Type:* string +--- +### NagLoggerSuppressedErrorData +Data for onSuppressedError method of an INagLogger. -#### onSuppressedError(data) +#### Initializer -Called when a rule throws an error during while validating a CfnResource for compliance and the error is suppressed. +```typescript +import { NagLoggerSuppressedErrorData } from 'cdk-nag' -```ts -onSuppressedError(data: NagLoggerSuppressedErrorData): void +const nagLoggerSuppressedErrorData: NagLoggerSuppressedErrorData = { ... } ``` -* **data** ([NagLoggerSuppressedErrorData](#cdk-nag-nagloggersuppressederrordata)) *No description* - * **nagPackName** (string) *No description* - * **resource** ([CfnResource](#aws-cdk-lib-cfnresource)) *No description* - * **ruleExplanation** (string) *No description* - * **ruleId** (string) *No description* - * **ruleInfo** (string) *No description* - * **ruleLevel** ([NagMessageLevel](#cdk-nag-nagmessagelevel)) *No description* - * **ruleOriginalName** (string) *No description* - * **errorMessage** (string) *No description* - * **errorSuppressionReason** (string) *No description* +#### Properties +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| nagPackName | string | *No description.* | +| resource | aws-cdk-lib.CfnResource | *No description.* | +| ruleExplanation | string | *No description.* | +| ruleId | string | *No description.* | +| ruleInfo | string | *No description.* | +| ruleLevel | NagMessageLevel | *No description.* | +| ruleOriginalName | string | *No description.* | +| errorMessage | string | *No description.* | +| errorSuppressionReason | string | *No description.* | +--- +##### `nagPackName`Required -#### protected initializeStackReport(data) - -Initialize the report for the rule pack's compliance report for the resource's Stack if it doesn't exist. - -```ts -protected initializeStackReport(data: NagLoggerBaseData): void +```typescript +public readonly nagPackName: string; ``` -* **data** ([NagLoggerBaseData](#cdk-nag-nagloggerbasedata)) *No description* - * **nagPackName** (string) *No description* - * **resource** ([CfnResource](#aws-cdk-lib-cfnresource)) *No description* - * **ruleExplanation** (string) *No description* - * **ruleId** (string) *No description* - * **ruleInfo** (string) *No description* - * **ruleLevel** ([NagMessageLevel](#cdk-nag-nagmessagelevel)) *No description* - * **ruleOriginalName** (string) *No description* +- *Type:* string +--- +##### `resource`Required +```typescript +public readonly resource: CfnResource; +``` -#### protected writeToStackComplianceReport(data, compliance) +- *Type:* aws-cdk-lib.CfnResource +--- +##### `ruleExplanation`Required -```ts -protected writeToStackComplianceReport(data: NagLoggerBaseData, compliance: NagRuleCompliance | NagRulePostValidationStates): void +```typescript +public readonly ruleExplanation: string; ``` -* **data** ([NagLoggerBaseData](#cdk-nag-nagloggerbasedata)) *No description* -* **compliance** ([NagRuleCompliance](#cdk-nag-nagrulecompliance) | [NagRulePostValidationStates](#cdk-nag-nagrulepostvalidationstates)) *No description* +- *Type:* string +--- +##### `ruleId`Required +```typescript +public readonly ruleId: string; +``` +- *Type:* string +--- -## class NagRules +##### `ruleInfo`Required -Helper class with methods for rule creation. +```typescript +public readonly ruleInfo: string; +``` +- *Type:* string -### Initializer +--- +##### `ruleLevel`Required +```typescript +public readonly ruleLevel: NagMessageLevel; +``` +- *Type:* NagMessageLevel -```ts -new NagRules() +--- + +##### `ruleOriginalName`Required + +```typescript +public readonly ruleOriginalName: string; ``` +- *Type:* string +--- -### Methods +##### `errorMessage`Required +```typescript +public readonly errorMessage: string; +``` -#### *static* resolveIfPrimitive(node, parameter) +- *Type:* string -Use in cases where a primitive value must be known to pass a rule. +--- -https://developer.mozilla.org/en-US/docs/Glossary/Primitive +##### `errorSuppressionReason`Required -```ts -static resolveIfPrimitive(node: CfnResource, parameter: any): any +```typescript +public readonly errorSuppressionReason: string; ``` -* **node** ([CfnResource](#aws-cdk-lib-cfnresource)) The CfnResource to check. -* **parameter** (any) The value to attempt to resolve. +- *Type:* string -__Returns__: -* any +--- -#### *static* resolveResourceFromInstrinsic(node, parameter) +### NagPackProps -Use in cases where a token resolves to an intrinsic function and the referenced resource must be known to pass a rule. +Interface for creating a NagPack. -```ts -static resolveResourceFromInstrinsic(node: CfnResource, parameter: any): any -``` +#### Initializer -* **node** ([CfnResource](#aws-cdk-lib-cfnresource)) The CfnResource to check. -* **parameter** (any) The value to attempt to resolve. +```typescript +import { NagPackProps } from 'cdk-nag' -__Returns__: -* any +const nagPackProps: NagPackProps = { ... } +``` +#### Properties +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| additionalLoggers | INagLogger[] | Additional NagLoggers for logging rule validation outputs. | +| logIgnores | boolean | Whether or not to log suppressed rule violations as informational messages (default: false). | +| reportFormats | NagReportFormat[] | If reports are enabled, the output formats of compliance reports in the App's output directory (default: only CSV). | +| reports | boolean | Whether or not to generate compliance reports for applied Stacks in the App's output directory (default: true). | +| suppressionIgnoreCondition | INagSuppressionIgnore | Conditionally prevent rules from being suppressed (default: no user provided condition). | +| verbose | boolean | Whether or not to enable extended explanatory descriptions on warning, error, and logged ignore messages (default: false). | -## class NagSuppressions +--- -Helper class with methods to add cdk-nag suppressions to cdk resources. +##### `additionalLoggers`Optional +```typescript +public readonly additionalLoggers: INagLogger[]; +``` -### Initializer +- *Type:* INagLogger[] +Additional NagLoggers for logging rule validation outputs. +--- +##### `logIgnores`Optional -```ts -new NagSuppressions() +```typescript +public readonly logIgnores: boolean; ``` +- *Type:* boolean +Whether or not to log suppressed rule violations as informational messages (default: false). -### Methods +--- +##### `reportFormats`Optional -#### *static* addResourceSuppressions(construct, suppressions, applyToChildren?) +```typescript +public readonly reportFormats: NagReportFormat[]; +``` -Add cdk-nag suppressions to a CfnResource and optionally its children. +- *Type:* NagReportFormat[] + +If reports are enabled, the output formats of compliance reports in the App's output directory (default: only CSV). + +--- -```ts -static addResourceSuppressions(construct: IConstruct | Array, suppressions: Array, applyToChildren?: boolean): void +##### `reports`Optional + +```typescript +public readonly reports: boolean; ``` -* **construct** ([IConstruct](#constructs-iconstruct) | Array<[IConstruct](#constructs-iconstruct)>) The IConstruct(s) to apply the suppression to. -* **suppressions** (Array<[NagPackSuppression](#cdk-nag-nagpacksuppression)>) A list of suppressions to apply to the resource. -* **applyToChildren** (boolean) Apply the suppressions to children CfnResources (default:false). +- *Type:* boolean + +Whether or not to generate compliance reports for applied Stacks in the App's output directory (default: true). +--- +##### `suppressionIgnoreCondition`Optional +```typescript +public readonly suppressionIgnoreCondition: INagSuppressionIgnore; +``` -#### *static* addResourceSuppressionsByPath(stack, path, suppressions, applyToChildren?) +- *Type:* INagSuppressionIgnore -Add cdk-nag suppressions to a CfnResource and optionally its children via its path. +Conditionally prevent rules from being suppressed (default: no user provided condition). -```ts -static addResourceSuppressionsByPath(stack: Stack, path: string | Array, suppressions: Array, applyToChildren?: boolean): void +--- + +##### `verbose`Optional + +```typescript +public readonly verbose: boolean; ``` -* **stack** ([Stack](#aws-cdk-lib-stack)) The Stack the construct belongs to. -* **path** (string | Array) The path(s) to the construct in the provided stack. -* **suppressions** (Array<[NagPackSuppression](#cdk-nag-nagpacksuppression)>) A list of suppressions to apply to the resource. -* **applyToChildren** (boolean) Apply the suppressions to children CfnResources (default:false). +- *Type:* boolean +Whether or not to enable extended explanatory descriptions on warning, error, and logged ignore messages (default: false). +--- +### NagPackSuppression -#### *static* addStackSuppressions(stack, suppressions, applyToNestedStacks?) +Interface for creating a rule suppression. -Apply cdk-nag suppressions to a Stack and optionally nested stacks. +#### Initializer -```ts -static addStackSuppressions(stack: Stack, suppressions: Array, applyToNestedStacks?: boolean): void +```typescript +import { NagPackSuppression } from 'cdk-nag' + +const nagPackSuppression: NagPackSuppression = { ... } ``` -* **stack** ([Stack](#aws-cdk-lib-stack)) The Stack to apply the suppression to. -* **suppressions** (Array<[NagPackSuppression](#cdk-nag-nagpacksuppression)>) A list of suppressions to apply to the stack. -* **applyToNestedStacks** (boolean) Apply the suppressions to children stacks (default:false). +#### Properties + +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| id | string | The id of the rule to ignore. | +| reason | string | The reason to ignore the rule (minimum 10 characters). | +| appliesTo | string \| RegexAppliesTo[] | Rule specific granular suppressions. | +--- +##### `id`Required +```typescript +public readonly id: string; +``` +- *Type:* string +The id of the rule to ignore. -## class PCIDSS321Checks +--- -Check for PCI DSS 3.2.1 compliance. Based on the PCI DSS 3.2.1 AWS operational best practices: https://docs.aws.amazon.com/config/latest/developerguide/operational-best-practices-for-pci-dss.html. +##### `reason`Required -__Implements__: [IAspect](#aws-cdk-lib-iaspect) -__Extends__: [NagPack](#cdk-nag-nagpack) +```typescript +public readonly reason: string; +``` -### Initializer +- *Type:* string +The reason to ignore the rule (minimum 10 characters). +--- +##### `appliesTo`Optional -```ts -new PCIDSS321Checks(props?: NagPackProps) +```typescript +public readonly appliesTo: string | RegexAppliesTo[]; ``` -* **props** ([NagPackProps](#cdk-nag-nagpackprops)) *No description* - * **additionalLoggers** (Array<[INagLogger](#cdk-nag-inaglogger)>) Additional NagLoggers for logging rule validation outputs. __*Optional*__ - * **logIgnores** (boolean) Whether or not to log suppressed rule violations as informational messages (default: false). __*Optional*__ - * **reportFormats** (Array<[NagReportFormat](#cdk-nag-nagreportformat)>) If reports are enabled, the output formats of compliance reports in the App's output directory (default: only CSV). __*Optional*__ - * **reports** (boolean) Whether or not to generate compliance reports for applied Stacks in the App's output directory (default: true). __*Optional*__ - * **suppressionIgnoreCondition** ([INagSuppressionIgnore](#cdk-nag-inagsuppressionignore)) Conditionally prevent rules from being suppressed (default: no user provided condition). __*Optional*__ - * **verbose** (boolean) Whether or not to enable extended explanatory descriptions on warning, error, and logged ignore messages (default: false). __*Optional*__ +- *Type:* string | RegexAppliesTo[] +Rule specific granular suppressions. -### Methods +--- +### NagReportLine -#### visit(node) +#### Initializer -All aspects can visit an IConstruct. +```typescript +import { NagReportLine } from 'cdk-nag' -```ts -visit(node: IConstruct): void +const nagReportLine: NagReportLine = { ... } ``` -* **node** ([IConstruct](#constructs-iconstruct)) *No description* +#### Properties + +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| compliance | string | *No description.* | +| exceptionReason | string | *No description.* | +| resourceId | string | *No description.* | +| ruleId | string | *No description.* | +| ruleInfo | string | *No description.* | +| ruleLevel | string | *No description.* | +--- +##### `compliance`Required +```typescript +public readonly compliance: string; +``` +- *Type:* string +--- -## class SuppressionIgnoreAlways +##### `exceptionReason`Required -Always ignore the suppression. +```typescript +public readonly exceptionReason: string; +``` + +- *Type:* string -__Implements__: [INagSuppressionIgnore](#cdk-nag-inagsuppressionignore) +--- -### Initializer +##### `resourceId`Required +```typescript +public readonly resourceId: string; +``` +- *Type:* string +--- -```ts -new SuppressionIgnoreAlways(triggerMessage: string) +##### `ruleId`Required + +```typescript +public readonly ruleId: string; ``` -* **triggerMessage** (string) *No description* +- *Type:* string +--- -### Methods +##### `ruleInfo`Required +```typescript +public readonly ruleInfo: string; +``` -#### createMessage(_input) +- *Type:* string +--- +##### `ruleLevel`Required -```ts -createMessage(_input: SuppressionIgnoreInput): string +```typescript +public readonly ruleLevel: string; ``` -* **_input** ([SuppressionIgnoreInput](#cdk-nag-suppressionignoreinput)) *No description* - * **findingId** (string) *No description* - * **reason** (string) *No description* - * **resource** ([CfnResource](#aws-cdk-lib-cfnresource)) *No description* - * **ruleId** (string) *No description* - * **ruleLevel** ([NagMessageLevel](#cdk-nag-nagmessagelevel)) *No description* +- *Type:* string -__Returns__: -* string +--- +### NagReportLoggerProps +Props for the NagReportLogger. -## class SuppressionIgnoreAnd +#### Initializer -Ignore the suppression if all of the given INagSuppressionIgnore return a non-empty message. +```typescript +import { NagReportLoggerProps } from 'cdk-nag' -__Implements__: [INagSuppressionIgnore](#cdk-nag-inagsuppressionignore) +const nagReportLoggerProps: NagReportLoggerProps = { ... } +``` -### Initializer +#### Properties +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| formats | NagReportFormat[] | *No description.* | +--- +##### `formats`Required -```ts -new SuppressionIgnoreAnd(...SuppressionIgnoreAnds: INagSuppressionIgnore[]) +```typescript +public readonly formats: NagReportFormat[]; ``` -* **SuppressionIgnoreAnds** ([INagSuppressionIgnore](#cdk-nag-inagsuppressionignore)) *No description* +- *Type:* NagReportFormat[] + +--- +### NagReportSchema -### Methods +#### Initializer +```typescript +import { NagReportSchema } from 'cdk-nag' -#### createMessage(input) +const nagReportSchema: NagReportSchema = { ... } +``` + +#### Properties +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| lines | NagReportLine[] | *No description.* | +--- -```ts -createMessage(input: SuppressionIgnoreInput): string +##### `lines`Required + +```typescript +public readonly lines: NagReportLine[]; ``` -* **input** ([SuppressionIgnoreInput](#cdk-nag-suppressionignoreinput)) *No description* - * **findingId** (string) *No description* - * **reason** (string) *No description* - * **resource** ([CfnResource](#aws-cdk-lib-cfnresource)) *No description* - * **ruleId** (string) *No description* - * **ruleLevel** ([NagMessageLevel](#cdk-nag-nagmessagelevel)) *No description* +- *Type:* NagReportLine[] -__Returns__: -* string +--- +### RegexAppliesTo +A regular expression to apply to matching findings. -## class SuppressionIgnoreErrors +#### Initializer -Ignore Suppressions for Rules with a NagMessageLevel.ERROR. +```typescript +import { RegexAppliesTo } from 'cdk-nag' -__Implements__: [INagSuppressionIgnore](#cdk-nag-inagsuppressionignore) +const regexAppliesTo: RegexAppliesTo = { ... } +``` -### Initializer +#### Properties +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| regex | string | An ECMA-262 regex string. | +--- +##### `regex`Required -```ts -new SuppressionIgnoreErrors() +```typescript +public readonly regex: string; ``` +- *Type:* string +An ECMA-262 regex string. -### Methods +--- +### SuppressionIgnoreInput -#### createMessage(input) +Information about the NagRule and the relevant NagSuppression for the INagSuppressionIgnore. +#### Initializer +```typescript +import { SuppressionIgnoreInput } from 'cdk-nag' -```ts -createMessage(input: SuppressionIgnoreInput): string +const suppressionIgnoreInput: SuppressionIgnoreInput = { ... } ``` -* **input** ([SuppressionIgnoreInput](#cdk-nag-suppressionignoreinput)) *No description* - * **findingId** (string) *No description* - * **reason** (string) *No description* - * **resource** ([CfnResource](#aws-cdk-lib-cfnresource)) *No description* - * **ruleId** (string) *No description* - * **ruleLevel** ([NagMessageLevel](#cdk-nag-nagmessagelevel)) *No description* +#### Properties -__Returns__: -* string +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| findingId | string | *No description.* | +| reason | string | *No description.* | +| resource | aws-cdk-lib.CfnResource | *No description.* | +| ruleId | string | *No description.* | +| ruleLevel | NagMessageLevel | *No description.* | +--- +##### `findingId`Required -## class SuppressionIgnoreNever +```typescript +public readonly findingId: string; +``` -Don't ignore the suppression. +- *Type:* string -__Implements__: [INagSuppressionIgnore](#cdk-nag-inagsuppressionignore) +--- -### Initializer +##### `reason`Required +```typescript +public readonly reason: string; +``` +- *Type:* string +--- -```ts -new SuppressionIgnoreNever() +##### `resource`Required + +```typescript +public readonly resource: CfnResource; ``` +- *Type:* aws-cdk-lib.CfnResource +--- -### Methods +##### `ruleId`Required +```typescript +public readonly ruleId: string; +``` -#### createMessage(_input) +- *Type:* string +--- +##### `ruleLevel`Required -```ts -createMessage(_input: SuppressionIgnoreInput): string +```typescript +public readonly ruleLevel: NagMessageLevel; ``` -* **_input** ([SuppressionIgnoreInput](#cdk-nag-suppressionignoreinput)) *No description* - * **findingId** (string) *No description* - * **reason** (string) *No description* - * **resource** ([CfnResource](#aws-cdk-lib-cfnresource)) *No description* - * **ruleId** (string) *No description* - * **ruleLevel** ([NagMessageLevel](#cdk-nag-nagmessagelevel)) *No description* +- *Type:* NagMessageLevel -__Returns__: -* string +--- +## Classes +### AnnotationLogger -## class SuppressionIgnoreOr - -Ignore the suppression if any of the given INagSuppressionIgnore return a non-empty message. +- *Implements:* INagLogger -__Implements__: [INagSuppressionIgnore](#cdk-nag-inagsuppressionignore) +A NagLogger that outputs to the CDK Annotations system. -### Initializer +#### Initializers +```typescript +import { AnnotationLogger } from 'cdk-nag' +new AnnotationLogger(props?: AnnotationLoggerProps) +``` +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| props | AnnotationLoggerProps | *No description.* | -```ts -new SuppressionIgnoreOr(...orSuppressionIgnores: INagSuppressionIgnore[]) -``` +--- -* **orSuppressionIgnores** ([INagSuppressionIgnore](#cdk-nag-inagsuppressionignore)) *No description* +##### `props`Optional +- *Type:* AnnotationLoggerProps -### Methods +--- +#### Methods -#### createMessage(input) +| **Name** | **Description** | +| --- | --- | +| onCompliance | Called when a CfnResource passes the compliance check for a given rule. | +| onError | Called when a rule throws an error during while validating a CfnResource for compliance. | +| onNonCompliance | Called when a CfnResource does not pass the compliance check for a given rule and the the rule violation is not suppressed by the user. | +| onNotApplicable | Called when a rule does not apply to the given CfnResource. | +| onSuppressed | Called when a CfnResource does not pass the compliance check for a given rule and the rule violation is suppressed by the user. | +| onSuppressedError | Called when a rule throws an error during while validating a CfnResource for compliance and the error is suppressed. | +--- +##### `onCompliance` -```ts -createMessage(input: SuppressionIgnoreInput): string +```typescript +public onCompliance(_data: NagLoggerComplianceData): void ``` -* **input** ([SuppressionIgnoreInput](#cdk-nag-suppressionignoreinput)) *No description* - * **findingId** (string) *No description* - * **reason** (string) *No description* - * **resource** ([CfnResource](#aws-cdk-lib-cfnresource)) *No description* - * **ruleId** (string) *No description* - * **ruleLevel** ([NagMessageLevel](#cdk-nag-nagmessagelevel)) *No description* - -__Returns__: -* string +Called when a CfnResource passes the compliance check for a given rule. +###### `_data`Required +- *Type:* NagLoggerComplianceData -## struct AnnotationLoggerProps +--- +##### `onError` -Props for the AnnotationLogger. +```typescript +public onError(data: NagLoggerErrorData): void +``` +Called when a rule throws an error during while validating a CfnResource for compliance. +###### `data`Required -Name | Type | Description ------|------|------------- -**logIgnores**? | boolean | Whether or not to log suppressed rule violations as informational messages (default: false).
__*Optional*__ -**verbose**? | boolean | Whether or not to enable extended explanatory descriptions on warning, error, and logged ignore messages.
__*Optional*__ +- *Type:* NagLoggerErrorData +--- +##### `onNonCompliance` -## interface IApplyRule +```typescript +public onNonCompliance(data: NagLoggerNonComplianceData): void +``` +Called when a CfnResource does not pass the compliance check for a given rule and the the rule violation is not suppressed by the user. -Interface for JSII interoperability for passing parameters and the Rule Callback to @applyRule method. +###### `data`Required -### Properties +- *Type:* NagLoggerNonComplianceData +--- -Name | Type | Description ------|------|------------- -**explanation** | string | Why the rule exists. -**info** | string | Why the rule was triggered. -**level** | [NagMessageLevel](#cdk-nag-nagmessagelevel) | The annotations message level to apply to the rule if triggered. -**node** | [CfnResource](#aws-cdk-lib-cfnresource) | The CfnResource to check. -**ignoreSuppressionCondition**? | [INagSuppressionIgnore](#cdk-nag-inagsuppressionignore) | A condition in which a suppression should be ignored.
__*Optional*__ -**ruleSuffixOverride**? | string | Override for the suffix of the Rule ID for this rule.
__*Optional*__ +##### `onNotApplicable` -### Methods +```typescript +public onNotApplicable(_data: NagLoggerNotApplicableData): void +``` +Called when a rule does not apply to the given CfnResource. -#### rule(node) +###### `_data`Required -The callback to the rule. +- *Type:* NagLoggerNotApplicableData -```ts -rule(node: CfnResource): NagRuleCompliance | Array -``` +--- -* **node** ([CfnResource](#aws-cdk-lib-cfnresource)) The CfnResource to check. +##### `onSuppressed` -__Returns__: -* [NagRuleCompliance](#cdk-nag-nagrulecompliance) | Array +```typescript +public onSuppressed(data: NagLoggerSuppressedData): void +``` +Called when a CfnResource does not pass the compliance check for a given rule and the rule violation is suppressed by the user. +###### `data`Required -## interface INagLogger +- *Type:* NagLoggerSuppressedData -__Implemented by__: [AnnotationLogger](#cdk-nag-annotationlogger), [NagReportLogger](#cdk-nag-nagreportlogger) +--- -Interface for creating NagSuppression Ignores. -### Methods +##### `onSuppressedError` +```typescript +public onSuppressedError(data: NagLoggerSuppressedErrorData): void +``` -#### onCompliance(data) +Called when a rule throws an error during while validating a CfnResource for compliance and the error is suppressed. -Called when a CfnResource passes the compliance check for a given rule. +###### `data`Required -```ts -onCompliance(data: NagLoggerComplianceData): void -``` +- *Type:* NagLoggerSuppressedErrorData -* **data** ([NagLoggerComplianceData](#cdk-nag-nagloggercompliancedata)) *No description* - * **nagPackName** (string) *No description* - * **resource** ([CfnResource](#aws-cdk-lib-cfnresource)) *No description* - * **ruleExplanation** (string) *No description* - * **ruleId** (string) *No description* - * **ruleInfo** (string) *No description* - * **ruleLevel** ([NagMessageLevel](#cdk-nag-nagmessagelevel)) *No description* - * **ruleOriginalName** (string) *No description* +--- +#### Properties +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| logIgnores | boolean | *No description.* | +| verbose | boolean | *No description.* | +| suppressionId | string | *No description.* | -#### onError(data) +--- -Called when a rule throws an error during while validating a CfnResource for compliance. +##### `logIgnores`Required -```ts -onError(data: NagLoggerErrorData): void +```typescript +public readonly logIgnores: boolean; ``` -* **data** ([NagLoggerErrorData](#cdk-nag-nagloggererrordata)) *No description* - * **nagPackName** (string) *No description* - * **resource** ([CfnResource](#aws-cdk-lib-cfnresource)) *No description* - * **ruleExplanation** (string) *No description* - * **ruleId** (string) *No description* - * **ruleInfo** (string) *No description* - * **ruleLevel** ([NagMessageLevel](#cdk-nag-nagmessagelevel)) *No description* - * **ruleOriginalName** (string) *No description* - * **errorMessage** (string) *No description* +- *Type:* boolean +--- +##### `verbose`Required +```typescript +public readonly verbose: boolean; +``` -#### onNonCompliance(data) +- *Type:* boolean -Called when a CfnResource does not pass the compliance check for a given rule and the the rule violation is not suppressed by the user. +--- -```ts -onNonCompliance(data: NagLoggerNonComplianceData): void +##### `suppressionId`Required + +```typescript +public readonly suppressionId: string; ``` -* **data** ([NagLoggerNonComplianceData](#cdk-nag-nagloggernoncompliancedata)) *No description* - * **nagPackName** (string) *No description* - * **resource** ([CfnResource](#aws-cdk-lib-cfnresource)) *No description* - * **ruleExplanation** (string) *No description* - * **ruleId** (string) *No description* - * **ruleInfo** (string) *No description* - * **ruleLevel** ([NagMessageLevel](#cdk-nag-nagmessagelevel)) *No description* - * **ruleOriginalName** (string) *No description* - * **findingId** (string) *No description* +- *Type:* string + +--- +### AwsSolutionsChecks +Check Best practices based on AWS Solutions Security Matrix. -#### onNotApplicable(data) +#### Initializers -Called when a rule does not apply to the given CfnResource. +```typescript +import { AwsSolutionsChecks } from 'cdk-nag' -```ts -onNotApplicable(data: NagLoggerNotApplicableData): void +new AwsSolutionsChecks(props?: NagPackProps) ``` -* **data** ([NagLoggerNotApplicableData](#cdk-nag-nagloggernotapplicabledata)) *No description* - * **nagPackName** (string) *No description* - * **resource** ([CfnResource](#aws-cdk-lib-cfnresource)) *No description* - * **ruleExplanation** (string) *No description* - * **ruleId** (string) *No description* - * **ruleInfo** (string) *No description* - * **ruleLevel** ([NagMessageLevel](#cdk-nag-nagmessagelevel)) *No description* - * **ruleOriginalName** (string) *No description* +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| props | NagPackProps | *No description.* | +--- +##### `props`Optional +- *Type:* NagPackProps -#### onSuppressed(data) +--- -Called when a CfnResource does not pass the compliance check for a given rule and the rule violation is suppressed by the user. +#### Methods -```ts -onSuppressed(data: NagLoggerSuppressedData): void -``` +| **Name** | **Description** | +| --- | --- | +| visit | All aspects can visit an IConstruct. | -* **data** ([NagLoggerSuppressedData](#cdk-nag-nagloggersuppresseddata)) *No description* - * **nagPackName** (string) *No description* - * **resource** ([CfnResource](#aws-cdk-lib-cfnresource)) *No description* - * **ruleExplanation** (string) *No description* - * **ruleId** (string) *No description* - * **ruleInfo** (string) *No description* - * **ruleLevel** ([NagMessageLevel](#cdk-nag-nagmessagelevel)) *No description* - * **ruleOriginalName** (string) *No description* - * **findingId** (string) *No description* - * **suppressionReason** (string) *No description* +--- +##### `visit` +```typescript +public visit(node: IConstruct): void +``` +All aspects can visit an IConstruct. -#### onSuppressedError(data) +###### `node`Required -Called when a rule throws an error during while validating a CfnResource for compliance and the error is suppressed. +- *Type:* constructs.IConstruct + +--- -```ts -onSuppressedError(data: NagLoggerSuppressedErrorData): void -``` -* **data** ([NagLoggerSuppressedErrorData](#cdk-nag-nagloggersuppressederrordata)) *No description* - * **nagPackName** (string) *No description* - * **resource** ([CfnResource](#aws-cdk-lib-cfnresource)) *No description* - * **ruleExplanation** (string) *No description* - * **ruleId** (string) *No description* - * **ruleInfo** (string) *No description* - * **ruleLevel** ([NagMessageLevel](#cdk-nag-nagmessagelevel)) *No description* - * **ruleOriginalName** (string) *No description* - * **errorMessage** (string) *No description* - * **errorSuppressionReason** (string) *No description* +#### Properties +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| readPackName | string | *No description.* | +--- +##### `readPackName`Required +```typescript +public readonly readPackName: string; +``` +- *Type:* string -## interface INagSuppressionIgnore +--- -__Implemented by__: [SuppressionIgnoreAlways](#cdk-nag-suppressionignorealways), [SuppressionIgnoreAnd](#cdk-nag-suppressionignoreand), [SuppressionIgnoreErrors](#cdk-nag-suppressionignoreerrors), [SuppressionIgnoreNever](#cdk-nag-suppressionignorenever), [SuppressionIgnoreOr](#cdk-nag-suppressionignoreor) -Interface for creating NagSuppression Ignores. -### Methods +### HIPAASecurityChecks +Check for HIPAA Security compliance. -#### createMessage(input) +Based on the HIPAA Security AWS operational best practices: https://docs.aws.amazon.com/config/latest/developerguide/operational-best-practices-for-hipaa_security.html +#### Initializers +```typescript +import { HIPAASecurityChecks } from 'cdk-nag' -```ts -createMessage(input: SuppressionIgnoreInput): string +new HIPAASecurityChecks(props?: NagPackProps) ``` -* **input** ([SuppressionIgnoreInput](#cdk-nag-suppressionignoreinput)) *No description* - * **findingId** (string) *No description* - * **reason** (string) *No description* - * **resource** ([CfnResource](#aws-cdk-lib-cfnresource)) *No description* - * **ruleId** (string) *No description* - * **ruleLevel** ([NagMessageLevel](#cdk-nag-nagmessagelevel)) *No description* +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| props | NagPackProps | *No description.* | -__Returns__: -* string +--- +##### `props`Optional +- *Type:* NagPackProps -## struct NagLoggerBaseData +--- +#### Methods -Shared data for all INagLogger methods. +| **Name** | **Description** | +| --- | --- | +| visit | All aspects can visit an IConstruct. | +--- +##### `visit` -Name | Type | Description ------|------|------------- -**nagPackName** | string | -**resource** | [CfnResource](#aws-cdk-lib-cfnresource) | -**ruleExplanation** | string | -**ruleId** | string | -**ruleInfo** | string | -**ruleLevel** | [NagMessageLevel](#cdk-nag-nagmessagelevel) | -**ruleOriginalName** | string | +```typescript +public visit(node: IConstruct): void +``` +All aspects can visit an IConstruct. +###### `node`Required -## struct NagLoggerComplianceData +- *Type:* constructs.IConstruct +--- -Data for onCompliance method of an INagLogger. +#### Properties +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| readPackName | string | *No description.* | -Name | Type | Description ------|------|------------- -**nagPackName** | string | -**resource** | [CfnResource](#aws-cdk-lib-cfnresource) | -**ruleExplanation** | string | -**ruleId** | string | -**ruleInfo** | string | -**ruleLevel** | [NagMessageLevel](#cdk-nag-nagmessagelevel) | -**ruleOriginalName** | string | +--- +##### `readPackName`Required +```typescript +public readonly readPackName: string; +``` -## struct NagLoggerErrorData +- *Type:* string +--- -Data for onError method of an INagLogger. +### NagPack +- *Implements:* aws-cdk-lib.IAspect -Name | Type | Description ------|------|------------- -**errorMessage** | string | -**nagPackName** | string | -**resource** | [CfnResource](#aws-cdk-lib-cfnresource) | -**ruleExplanation** | string | -**ruleId** | string | -**ruleInfo** | string | -**ruleLevel** | [NagMessageLevel](#cdk-nag-nagmessagelevel) | -**ruleOriginalName** | string | +Base class for all rule packs. +#### Initializers +```typescript +import { NagPack } from 'cdk-nag' -## struct NagLoggerNonComplianceData +new NagPack(props?: NagPackProps) +``` +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| props | NagPackProps | *No description.* | -Data for onNonCompliance method of an INagLogger. +--- +##### `props`Optional +- *Type:* NagPackProps -Name | Type | Description ------|------|------------- -**findingId** | string | -**nagPackName** | string | -**resource** | [CfnResource](#aws-cdk-lib-cfnresource) | -**ruleExplanation** | string | -**ruleId** | string | -**ruleInfo** | string | -**ruleLevel** | [NagMessageLevel](#cdk-nag-nagmessagelevel) | -**ruleOriginalName** | string | +--- +#### Methods +| **Name** | **Description** | +| --- | --- | +| visit | All aspects can visit an IConstruct. | -## struct NagLoggerNotApplicableData +--- +##### `visit` -Data for onNotApplicable method of an INagLogger. +```typescript +public visit(node: IConstruct): void +``` +All aspects can visit an IConstruct. +###### `node`Required -Name | Type | Description ------|------|------------- -**nagPackName** | string | -**resource** | [CfnResource](#aws-cdk-lib-cfnresource) | -**ruleExplanation** | string | -**ruleId** | string | -**ruleInfo** | string | -**ruleLevel** | [NagMessageLevel](#cdk-nag-nagmessagelevel) | -**ruleOriginalName** | string | +- *Type:* constructs.IConstruct +--- -## struct NagLoggerSuppressedData +#### Properties +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| readPackName | string | *No description.* | -Data for onSuppressed method of an INagLogger. +--- +##### `readPackName`Required +```typescript +public readonly readPackName: string; +``` -Name | Type | Description ------|------|------------- -**findingId** | string | -**nagPackName** | string | -**resource** | [CfnResource](#aws-cdk-lib-cfnresource) | -**ruleExplanation** | string | -**ruleId** | string | -**ruleInfo** | string | -**ruleLevel** | [NagMessageLevel](#cdk-nag-nagmessagelevel) | -**ruleOriginalName** | string | -**suppressionReason** | string | +- *Type:* string +--- -## struct NagLoggerSuppressedErrorData +### NagReportLogger +- *Implements:* INagLogger -Data for onSuppressedError method of an INagLogger. +A NagLogger that creates compliance reports. +#### Initializers +```typescript +import { NagReportLogger } from 'cdk-nag' -Name | Type | Description ------|------|------------- -**errorMessage** | string | -**errorSuppressionReason** | string | -**nagPackName** | string | -**resource** | [CfnResource](#aws-cdk-lib-cfnresource) | -**ruleExplanation** | string | -**ruleId** | string | -**ruleInfo** | string | -**ruleLevel** | [NagMessageLevel](#cdk-nag-nagmessagelevel) | -**ruleOriginalName** | string | +new NagReportLogger(props: NagReportLoggerProps) +``` +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| props | NagReportLoggerProps | *No description.* | +--- -## struct NagPackProps +##### `props`Required +- *Type:* NagReportLoggerProps -Interface for creating a NagPack. +--- + +#### Methods +| **Name** | **Description** | +| --- | --- | +| getFormatStacks | *No description.* | +| onCompliance | Called when a CfnResource passes the compliance check for a given rule. | +| onError | Called when a rule throws an error during while validating a CfnResource for compliance. | +| onNonCompliance | Called when a CfnResource does not pass the compliance check for a given rule and the the rule violation is not suppressed by the user. | +| onNotApplicable | Called when a rule does not apply to the given CfnResource. | +| onSuppressed | Called when a CfnResource does not pass the compliance check for a given rule and the rule violation is suppressed by the user. | +| onSuppressedError | Called when a rule throws an error during while validating a CfnResource for compliance and the error is suppressed. | +--- -Name | Type | Description ------|------|------------- -**additionalLoggers**? | Array<[INagLogger](#cdk-nag-inaglogger)> | Additional NagLoggers for logging rule validation outputs.
__*Optional*__ -**logIgnores**? | boolean | Whether or not to log suppressed rule violations as informational messages (default: false).
__*Optional*__ -**reportFormats**? | Array<[NagReportFormat](#cdk-nag-nagreportformat)> | If reports are enabled, the output formats of compliance reports in the App's output directory (default: only CSV).
__*Optional*__ -**reports**? | boolean | Whether or not to generate compliance reports for applied Stacks in the App's output directory (default: true).
__*Optional*__ -**suppressionIgnoreCondition**? | [INagSuppressionIgnore](#cdk-nag-inagsuppressionignore) | Conditionally prevent rules from being suppressed (default: no user provided condition).
__*Optional*__ -**verbose**? | boolean | Whether or not to enable extended explanatory descriptions on warning, error, and logged ignore messages (default: false).
__*Optional*__ +##### `getFormatStacks` +```typescript +public getFormatStacks(format: NagReportFormat): string[] +``` +###### `format`Required -## struct NagPackSuppression +- *Type:* NagReportFormat +--- -Interface for creating a rule suppression. +##### `onCompliance` +```typescript +public onCompliance(data: NagLoggerComplianceData): void +``` +Called when a CfnResource passes the compliance check for a given rule. -Name | Type | Description ------|------|------------- -**id** | string | The id of the rule to ignore. -**reason** | string | The reason to ignore the rule (minimum 10 characters). -**appliesTo**? | Array | Rule specific granular suppressions.
__*Optional*__ +###### `data`Required +- *Type:* NagLoggerComplianceData +--- -## struct NagReportLine +##### `onError` +```typescript +public onError(data: NagLoggerErrorData): void +``` +Called when a rule throws an error during while validating a CfnResource for compliance. +###### `data`Required +- *Type:* NagLoggerErrorData +--- -Name | Type | Description ------|------|------------- -**compliance** | string | -**exceptionReason** | string | -**resourceId** | string | -**ruleId** | string | -**ruleInfo** | string | -**ruleLevel** | string | +##### `onNonCompliance` +```typescript +public onNonCompliance(data: NagLoggerNonComplianceData): void +``` +Called when a CfnResource does not pass the compliance check for a given rule and the the rule violation is not suppressed by the user. -## struct NagReportLoggerProps +###### `data`Required +- *Type:* NagLoggerNonComplianceData -Props for the NagReportLogger. +--- +##### `onNotApplicable` +```typescript +public onNotApplicable(data: NagLoggerNotApplicableData): void +``` -Name | Type | Description ------|------|------------- -**formats** | Array<[NagReportFormat](#cdk-nag-nagreportformat)> | +Called when a rule does not apply to the given CfnResource. +###### `data`Required +- *Type:* NagLoggerNotApplicableData -## struct NagReportSchema +--- +##### `onSuppressed` +```typescript +public onSuppressed(data: NagLoggerSuppressedData): void +``` +Called when a CfnResource does not pass the compliance check for a given rule and the rule violation is suppressed by the user. +###### `data`Required +- *Type:* NagLoggerSuppressedData -Name | Type | Description ------|------|------------- -**lines** | Array<[NagReportLine](#cdk-nag-nagreportline)> | +--- +##### `onSuppressedError` +```typescript +public onSuppressedError(data: NagLoggerSuppressedErrorData): void +``` -## struct RegexAppliesTo +Called when a rule throws an error during while validating a CfnResource for compliance and the error is suppressed. +###### `data`Required -A regular expression to apply to matching findings. +- *Type:* NagLoggerSuppressedErrorData +--- -Name | Type | Description ------|------|------------- -**regex** | string | An ECMA-262 regex string. +#### Properties +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| formats | NagReportFormat[] | *No description.* | +--- -## struct SuppressionIgnoreInput +##### `formats`Required +```typescript +public readonly formats: NagReportFormat[]; +``` -Information about the NagRule and the relevant NagSuppression for the INagSuppressionIgnore. +- *Type:* NagReportFormat[] +--- -Name | Type | Description ------|------|------------- -**findingId** | string | -**reason** | string | -**resource** | [CfnResource](#aws-cdk-lib-cfnresource) | -**ruleId** | string | -**ruleLevel** | [NagMessageLevel](#cdk-nag-nagmessagelevel) | +### NagRules +Helper class with methods for rule creation. +#### Initializers -## enum NagMessageLevel +```typescript +import { NagRules } from 'cdk-nag' -The severity level of the rule. +new NagRules() +``` -Name | Description ------|----- -**WARN** | -**ERROR** | +| **Name** | **Type** | **Description** | +| --- | --- | --- | +--- -## enum NagReportFormat -Possible output formats of the NagReport. +#### Static Functions -Name | Description ------|----- -**CSV** | -**JSON** | +| **Name** | **Description** | +| --- | --- | +| resolveIfPrimitive | Use in cases where a primitive value must be known to pass a rule. | +| resolveResourceFromInstrinsic | Use in cases where a token resolves to an intrinsic function and the referenced resource must be known to pass a rule. | +--- -## enum NagRuleCompliance +##### `resolveIfPrimitive` -The compliance level of a resource in relation to a rule. +```typescript +import { NagRules } from 'cdk-nag' -Name | Description ------|----- -**COMPLIANT** | -**NON_COMPLIANT** | -**NOT_APPLICABLE** | +NagRules.resolveIfPrimitive(node: CfnResource, parameter: any) +``` +Use in cases where a primitive value must be known to pass a rule. -## enum NagRulePostValidationStates +https://developer.mozilla.org/en-US/docs/Glossary/Primitive + +###### `node`Required + +- *Type:* aws-cdk-lib.CfnResource + +The CfnResource to check. + +--- + +###### `parameter`Required + +- *Type:* any + +The value to attempt to resolve. + +--- + +##### `resolveResourceFromInstrinsic` + +```typescript +import { NagRules } from 'cdk-nag' + +NagRules.resolveResourceFromInstrinsic(node: CfnResource, parameter: any) +``` + +Use in cases where a token resolves to an intrinsic function and the referenced resource must be known to pass a rule. + +###### `node`Required + +- *Type:* aws-cdk-lib.CfnResource + +The CfnResource to check. + +--- + +###### `parameter`Required + +- *Type:* any + +The value to attempt to resolve. + +--- + + + +### NagSuppressions + +Helper class with methods to add cdk-nag suppressions to cdk resources. + +#### Initializers + +```typescript +import { NagSuppressions } from 'cdk-nag' + +new NagSuppressions() +``` + +| **Name** | **Type** | **Description** | +| --- | --- | --- | + +--- + + +#### Static Functions + +| **Name** | **Description** | +| --- | --- | +| addResourceSuppressions | Add cdk-nag suppressions to a CfnResource and optionally its children. | +| addResourceSuppressionsByPath | Add cdk-nag suppressions to a CfnResource and optionally its children via its path. | +| addStackSuppressions | Apply cdk-nag suppressions to a Stack and optionally nested stacks. | + +--- + +##### `addResourceSuppressions` + +```typescript +import { NagSuppressions } from 'cdk-nag' + +NagSuppressions.addResourceSuppressions(construct: IConstruct | IConstruct[], suppressions: NagPackSuppression[], applyToChildren?: boolean) +``` + +Add cdk-nag suppressions to a CfnResource and optionally its children. + +###### `construct`Required + +- *Type:* constructs.IConstruct | constructs.IConstruct[] + +The IConstruct(s) to apply the suppression to. + +--- + +###### `suppressions`Required + +- *Type:* NagPackSuppression[] + +A list of suppressions to apply to the resource. + +--- + +###### `applyToChildren`Optional + +- *Type:* boolean + +Apply the suppressions to children CfnResources (default:false). + +--- + +##### `addResourceSuppressionsByPath` + +```typescript +import { NagSuppressions } from 'cdk-nag' + +NagSuppressions.addResourceSuppressionsByPath(stack: Stack, path: string | string[], suppressions: NagPackSuppression[], applyToChildren?: boolean) +``` + +Add cdk-nag suppressions to a CfnResource and optionally its children via its path. + +###### `stack`Required + +- *Type:* aws-cdk-lib.Stack + +The Stack the construct belongs to. + +--- + +###### `path`Required + +- *Type:* string | string[] + +The path(s) to the construct in the provided stack. + +--- + +###### `suppressions`Required + +- *Type:* NagPackSuppression[] + +A list of suppressions to apply to the resource. + +--- + +###### `applyToChildren`Optional + +- *Type:* boolean + +Apply the suppressions to children CfnResources (default:false). + +--- + +##### `addStackSuppressions` + +```typescript +import { NagSuppressions } from 'cdk-nag' + +NagSuppressions.addStackSuppressions(stack: Stack, suppressions: NagPackSuppression[], applyToNestedStacks?: boolean) +``` + +Apply cdk-nag suppressions to a Stack and optionally nested stacks. + +###### `stack`Required + +- *Type:* aws-cdk-lib.Stack + +The Stack to apply the suppression to. + +--- + +###### `suppressions`Required + +- *Type:* NagPackSuppression[] + +A list of suppressions to apply to the stack. + +--- + +###### `applyToNestedStacks`Optional + +- *Type:* boolean + +Apply the suppressions to children stacks (default:false). + +--- + + + +### NIST80053R4Checks + +Check for NIST 800-53 rev 4 compliance. + +Based on the NIST 800-53 rev 4 AWS operational best practices: https://docs.aws.amazon.com/config/latest/developerguide/operational-best-practices-for-nist-800-53_rev_4.html + +#### Initializers + +```typescript +import { NIST80053R4Checks } from 'cdk-nag' + +new NIST80053R4Checks(props?: NagPackProps) +``` + +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| props | NagPackProps | *No description.* | + +--- + +##### `props`Optional + +- *Type:* NagPackProps + +--- + +#### Methods + +| **Name** | **Description** | +| --- | --- | +| visit | All aspects can visit an IConstruct. | + +--- + +##### `visit` + +```typescript +public visit(node: IConstruct): void +``` + +All aspects can visit an IConstruct. + +###### `node`Required + +- *Type:* constructs.IConstruct + +--- + + +#### Properties + +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| readPackName | string | *No description.* | + +--- + +##### `readPackName`Required + +```typescript +public readonly readPackName: string; +``` + +- *Type:* string + +--- + + +### NIST80053R5Checks + +Check for NIST 800-53 rev 5 compliance. + +Based on the NIST 800-53 rev 5 AWS operational best practices: https://docs.aws.amazon.com/config/latest/developerguide/operational-best-practices-for-nist-800-53_rev_5.html + +#### Initializers + +```typescript +import { NIST80053R5Checks } from 'cdk-nag' + +new NIST80053R5Checks(props?: NagPackProps) +``` + +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| props | NagPackProps | *No description.* | + +--- + +##### `props`Optional + +- *Type:* NagPackProps + +--- + +#### Methods + +| **Name** | **Description** | +| --- | --- | +| visit | All aspects can visit an IConstruct. | + +--- + +##### `visit` + +```typescript +public visit(node: IConstruct): void +``` + +All aspects can visit an IConstruct. + +###### `node`Required + +- *Type:* constructs.IConstruct + +--- + + +#### Properties + +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| readPackName | string | *No description.* | + +--- + +##### `readPackName`Required + +```typescript +public readonly readPackName: string; +``` + +- *Type:* string + +--- + + +### PCIDSS321Checks + +Check for PCI DSS 3.2.1 compliance. Based on the PCI DSS 3.2.1 AWS operational best practices: https://docs.aws.amazon.com/config/latest/developerguide/operational-best-practices-for-pci-dss.html. + +#### Initializers + +```typescript +import { PCIDSS321Checks } from 'cdk-nag' + +new PCIDSS321Checks(props?: NagPackProps) +``` + +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| props | NagPackProps | *No description.* | + +--- + +##### `props`Optional + +- *Type:* NagPackProps + +--- + +#### Methods + +| **Name** | **Description** | +| --- | --- | +| visit | All aspects can visit an IConstruct. | + +--- + +##### `visit` + +```typescript +public visit(node: IConstruct): void +``` + +All aspects can visit an IConstruct. + +###### `node`Required + +- *Type:* constructs.IConstruct + +--- + + +#### Properties + +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| readPackName | string | *No description.* | + +--- + +##### `readPackName`Required + +```typescript +public readonly readPackName: string; +``` + +- *Type:* string + +--- + + +### SuppressionIgnoreAlways + +- *Implements:* INagSuppressionIgnore + +Always ignore the suppression. + +#### Initializers + +```typescript +import { SuppressionIgnoreAlways } from 'cdk-nag' + +new SuppressionIgnoreAlways(triggerMessage: string) +``` + +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| triggerMessage | string | *No description.* | + +--- + +##### `triggerMessage`Required + +- *Type:* string + +--- + +#### Methods + +| **Name** | **Description** | +| --- | --- | +| createMessage | *No description.* | + +--- + +##### `createMessage` + +```typescript +public createMessage(_input: SuppressionIgnoreInput): string +``` + +###### `_input`Required + +- *Type:* SuppressionIgnoreInput + +--- + + + + +### SuppressionIgnoreAnd + +- *Implements:* INagSuppressionIgnore + +Ignore the suppression if all of the given INagSuppressionIgnore return a non-empty message. + +#### Initializers + +```typescript +import { SuppressionIgnoreAnd } from 'cdk-nag' + +new SuppressionIgnoreAnd(SuppressionIgnoreAnds: INagSuppressionIgnore) +``` + +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| SuppressionIgnoreAnds | INagSuppressionIgnore | *No description.* | + +--- + +##### `SuppressionIgnoreAnds`Required + +- *Type:* INagSuppressionIgnore + +--- + +#### Methods + +| **Name** | **Description** | +| --- | --- | +| createMessage | *No description.* | + +--- + +##### `createMessage` + +```typescript +public createMessage(input: SuppressionIgnoreInput): string +``` + +###### `input`Required + +- *Type:* SuppressionIgnoreInput + +--- + + + + +### SuppressionIgnoreErrors + +- *Implements:* INagSuppressionIgnore + +Ignore Suppressions for Rules with a NagMessageLevel.ERROR. + +#### Initializers + +```typescript +import { SuppressionIgnoreErrors } from 'cdk-nag' + +new SuppressionIgnoreErrors() +``` + +| **Name** | **Type** | **Description** | +| --- | --- | --- | + +--- + +#### Methods + +| **Name** | **Description** | +| --- | --- | +| createMessage | *No description.* | + +--- + +##### `createMessage` + +```typescript +public createMessage(input: SuppressionIgnoreInput): string +``` + +###### `input`Required + +- *Type:* SuppressionIgnoreInput + +--- + + + + +### SuppressionIgnoreNever + +- *Implements:* INagSuppressionIgnore + +Don't ignore the suppression. + +#### Initializers + +```typescript +import { SuppressionIgnoreNever } from 'cdk-nag' + +new SuppressionIgnoreNever() +``` + +| **Name** | **Type** | **Description** | +| --- | --- | --- | + +--- + +#### Methods + +| **Name** | **Description** | +| --- | --- | +| createMessage | *No description.* | + +--- + +##### `createMessage` + +```typescript +public createMessage(_input: SuppressionIgnoreInput): string +``` + +###### `_input`Required + +- *Type:* SuppressionIgnoreInput + +--- + + + + +### SuppressionIgnoreOr + +- *Implements:* INagSuppressionIgnore + +Ignore the suppression if any of the given INagSuppressionIgnore return a non-empty message. + +#### Initializers + +```typescript +import { SuppressionIgnoreOr } from 'cdk-nag' + +new SuppressionIgnoreOr(orSuppressionIgnores: INagSuppressionIgnore) +``` + +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| orSuppressionIgnores | INagSuppressionIgnore | *No description.* | + +--- + +##### `orSuppressionIgnores`Required + +- *Type:* INagSuppressionIgnore + +--- + +#### Methods + +| **Name** | **Description** | +| --- | --- | +| createMessage | *No description.* | + +--- + +##### `createMessage` + +```typescript +public createMessage(input: SuppressionIgnoreInput): string +``` + +###### `input`Required + +- *Type:* SuppressionIgnoreInput + +--- + + + + +## Protocols + +### IApplyRule + +- *Implemented By:* IApplyRule + +Interface for JSII interoperability for passing parameters and the Rule Callback to @applyRule method. + +#### Methods + +| **Name** | **Description** | +| --- | --- | +| rule | The callback to the rule. | + +--- + +##### `rule` + +```typescript +public rule(node: CfnResource): NagRuleCompliance | string[] +``` + +The callback to the rule. + +###### `node`Required + +- *Type:* aws-cdk-lib.CfnResource + +The CfnResource to check. + +--- + +#### Properties + +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| explanation | string | Why the rule exists. | +| info | string | Why the rule was triggered. | +| level | NagMessageLevel | The annotations message level to apply to the rule if triggered. | +| node | aws-cdk-lib.CfnResource | The CfnResource to check. | +| ignoreSuppressionCondition | INagSuppressionIgnore | A condition in which a suppression should be ignored. | +| ruleSuffixOverride | string | Override for the suffix of the Rule ID for this rule. | + +--- + +##### `explanation`Required + +```typescript +public readonly explanation: string; +``` + +- *Type:* string + +Why the rule exists. + +--- + +##### `info`Required + +```typescript +public readonly info: string; +``` + +- *Type:* string + +Why the rule was triggered. + +--- + +##### `level`Required + +```typescript +public readonly level: NagMessageLevel; +``` + +- *Type:* NagMessageLevel + +The annotations message level to apply to the rule if triggered. + +--- + +##### `node`Required + +```typescript +public readonly node: CfnResource; +``` + +- *Type:* aws-cdk-lib.CfnResource + +The CfnResource to check. + +--- + +##### `ignoreSuppressionCondition`Optional + +```typescript +public readonly ignoreSuppressionCondition: INagSuppressionIgnore; +``` + +- *Type:* INagSuppressionIgnore + +A condition in which a suppression should be ignored. + +--- + +##### `ruleSuffixOverride`Optional + +```typescript +public readonly ruleSuffixOverride: string; +``` + +- *Type:* string + +Override for the suffix of the Rule ID for this rule. + +--- + +### INagLogger + +- *Implemented By:* AnnotationLogger, NagReportLogger, INagLogger + +Interface for creating NagSuppression Ignores. + +#### Methods + +| **Name** | **Description** | +| --- | --- | +| onCompliance | Called when a CfnResource passes the compliance check for a given rule. | +| onError | Called when a rule throws an error during while validating a CfnResource for compliance. | +| onNonCompliance | Called when a CfnResource does not pass the compliance check for a given rule and the the rule violation is not suppressed by the user. | +| onNotApplicable | Called when a rule does not apply to the given CfnResource. | +| onSuppressed | Called when a CfnResource does not pass the compliance check for a given rule and the rule violation is suppressed by the user. | +| onSuppressedError | Called when a rule throws an error during while validating a CfnResource for compliance and the error is suppressed. | + +--- + +##### `onCompliance` + +```typescript +public onCompliance(data: NagLoggerComplianceData): void +``` + +Called when a CfnResource passes the compliance check for a given rule. + +###### `data`Required + +- *Type:* NagLoggerComplianceData + +--- + +##### `onError` + +```typescript +public onError(data: NagLoggerErrorData): void +``` + +Called when a rule throws an error during while validating a CfnResource for compliance. + +###### `data`Required + +- *Type:* NagLoggerErrorData + +--- + +##### `onNonCompliance` + +```typescript +public onNonCompliance(data: NagLoggerNonComplianceData): void +``` + +Called when a CfnResource does not pass the compliance check for a given rule and the the rule violation is not suppressed by the user. + +###### `data`Required + +- *Type:* NagLoggerNonComplianceData + +--- + +##### `onNotApplicable` + +```typescript +public onNotApplicable(data: NagLoggerNotApplicableData): void +``` + +Called when a rule does not apply to the given CfnResource. + +###### `data`Required + +- *Type:* NagLoggerNotApplicableData + +--- + +##### `onSuppressed` + +```typescript +public onSuppressed(data: NagLoggerSuppressedData): void +``` + +Called when a CfnResource does not pass the compliance check for a given rule and the rule violation is suppressed by the user. + +###### `data`Required + +- *Type:* NagLoggerSuppressedData + +--- + +##### `onSuppressedError` + +```typescript +public onSuppressedError(data: NagLoggerSuppressedErrorData): void +``` + +Called when a rule throws an error during while validating a CfnResource for compliance and the error is suppressed. + +###### `data`Required + +- *Type:* NagLoggerSuppressedErrorData + +--- + + +### INagSuppressionIgnore + +- *Implemented By:* SuppressionIgnoreAlways, SuppressionIgnoreAnd, SuppressionIgnoreErrors, SuppressionIgnoreNever, SuppressionIgnoreOr, INagSuppressionIgnore + +Interface for creating NagSuppression Ignores. + +#### Methods + +| **Name** | **Description** | +| --- | --- | +| createMessage | *No description.* | + +--- + +##### `createMessage` + +```typescript +public createMessage(input: SuppressionIgnoreInput): string +``` + +###### `input`Required + +- *Type:* SuppressionIgnoreInput + +--- + + +## Enums + +### NagMessageLevel + +The severity level of the rule. + +#### Members + +| **Name** | **Description** | +| --- | --- | +| WARN | *No description.* | +| ERROR | *No description.* | + +--- + +##### `WARN` + +--- + + +##### `ERROR` + +--- + + +### NagReportFormat + +Possible output formats of the NagReport. + +#### Members + +| **Name** | **Description** | +| --- | --- | +| CSV | *No description.* | +| JSON | *No description.* | + +--- + +##### `CSV` + +--- + + +##### `JSON` + +--- + + +### NagRuleCompliance + +The compliance level of a resource in relation to a rule. + +#### Members + +| **Name** | **Description** | +| --- | --- | +| COMPLIANT | *No description.* | +| NON_COMPLIANT | *No description.* | +| NOT_APPLICABLE | *No description.* | + +--- + +##### `COMPLIANT` + +--- + + +##### `NON_COMPLIANT` + +--- + + +##### `NOT_APPLICABLE` + +--- + + +### NagRulePostValidationStates + +Additional states a rule can be in post compliance validation. + +#### Members + +| **Name** | **Description** | +| --- | --- | +| SUPPRESSED | *No description.* | +| UNKNOWN | *No description.* | + +--- + +##### `SUPPRESSED` + +--- -Additional states a rule can be in post compliance validation. -Name | Description ------|----- -**SUPPRESSED** | -**UNKNOWN** | +##### `UNKNOWN` +--- diff --git a/package.json b/package.json index 9952cbfb74..7d2c9bfa0c 100644 --- a/package.json +++ b/package.json @@ -46,6 +46,7 @@ "@typescript-eslint/eslint-plugin": "^7", "@typescript-eslint/parser": "^7", "aws-cdk-lib": "2.116.0", + "commit-and-tag-version": "^12", "constructs": "10.0.5", "eslint": "^8", "eslint-config-prettier": "^8.10.0", @@ -56,12 +57,11 @@ "jest-junit": "^15", "jsii": "1.x", "jsii-diff": "^1.102.0", - "jsii-docgen": "^1.8.110", + "jsii-docgen": "^10.5.0", "jsii-pacmak": "^1.102.0", "jsii-rosetta": "1.x", "prettier": "^2.8.8", - "projen": "^0.86.0", - "standard-version": "^9", + "projen": "^0.86.4", "ts-jest": "^27", "typescript": "^4.9.5" }, diff --git a/yarn.lock b/yarn.lock index af9277b759..a8d5b65a4a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -617,7 +617,7 @@ chalk "^4.1.2" semver "^7.6.3" -"@jsii/spec@1.102.0", "@jsii/spec@^1.102.0", "@jsii/spec@^1.30.0": +"@jsii/spec@1.102.0", "@jsii/spec@^1.102.0": version "1.102.0" resolved "https://registry.yarnpkg.com/@jsii/spec/-/spec-1.102.0.tgz#3f9cfcd44e4358ba7259730452e89b2111918524" integrity sha512-/VcmoEyp7HR0xoFz47/fiyZjAv+0gHG4ZwTbgB+umbB88bTbLZadnqBL7T9OIKQbK4w8HNOaRnHwjNBIYIPxWQ== @@ -900,7 +900,7 @@ resolved "https://registry.yarnpkg.com/@xmldom/xmldom/-/xmldom-0.8.10.tgz#a1337ca426aa61cef9fe15b5b28e340a72f6fa99" integrity sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw== -JSONStream@^1.0.4: +JSONStream@^1.3.5: version "1.3.5" resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== @@ -953,6 +953,13 @@ agent-base@6: dependencies: debug "4" +agent-base@^7.0.2, agent-base@^7.1.0: + version "7.1.1" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-7.1.1.tgz#bdbded7dfb096b751a2a087eeeb9664725b2e317" + integrity sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA== + dependencies: + debug "^4.3.4" + ajv@^6.12.4: version "6.12.6" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" @@ -1442,6 +1449,28 @@ comment-json@4.2.2: has-own-prop "^2.0.0" repeat-string "^1.6.1" +commit-and-tag-version@^12: + version "12.4.2" + resolved "https://registry.yarnpkg.com/commit-and-tag-version/-/commit-and-tag-version-12.4.2.tgz#98cc351a7dc58bcc14908f17952a7f0606004413" + integrity sha512-K8EPV/vRM+PZCFqu1anHUyxPt8Q9dUUHU4WRE9a2GcHYfZPgu2GGKLxI018W/y+EZ7AbV0/P7QrLn5/lpcRyAg== + dependencies: + chalk "^2.4.2" + conventional-changelog "4.0.0" + conventional-changelog-config-spec "2.1.0" + conventional-changelog-conventionalcommits "6.1.0" + conventional-recommended-bump "7.0.1" + detect-indent "^6.0.0" + detect-newline "^3.1.0" + dotgitignore "^2.1.0" + figures "^3.1.0" + find-up "^5.0.0" + git-semver-tags "^5.0.0" + jsdom "^24.1.1" + semver "^7.6.3" + w3c-xmlserializer "^5.0.0" + yaml "^2.4.1" + yargs "^17.7.2" + commonmark@^0.31.1: version "0.31.1" resolved "https://registry.yarnpkg.com/commonmark/-/commonmark-0.31.1.tgz#5c8b1b5eaaca00a0912cad68d1f0f00c836cecd3" @@ -1484,168 +1513,144 @@ constructs@^10.0.0: resolved "https://registry.yarnpkg.com/constructs/-/constructs-10.3.0.tgz#4c246fce9cf8e77711ad45944e9fbd41f1501965" integrity sha512-vbK8i3rIb/xwZxSpTjz3SagHn1qq9BChLEfy5Hf6fB3/2eFbrwt2n9kHwQcS0CPTRBesreeAcsJfMq2229FnbQ== -conventional-changelog-angular@^5.0.12: - version "5.0.13" - resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-5.0.13.tgz#896885d63b914a70d4934b59d2fe7bde1832b28c" - integrity sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA== +conventional-changelog-angular@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-6.0.0.tgz#a9a9494c28b7165889144fd5b91573c4aa9ca541" + integrity sha512-6qLgrBF4gueoC7AFVHu51nHL9pF9FRjXrH+ceVf7WmAfH3gs+gEYOkvxhjMPjZu57I4AGUGoNTY8V7Hrgf1uqg== dependencies: compare-func "^2.0.0" - q "^1.5.1" -conventional-changelog-atom@^2.0.8: - version "2.0.8" - resolved "https://registry.yarnpkg.com/conventional-changelog-atom/-/conventional-changelog-atom-2.0.8.tgz#a759ec61c22d1c1196925fca88fe3ae89fd7d8de" - integrity sha512-xo6v46icsFTK3bb7dY/8m2qvc8sZemRgdqLb/bjpBsH2UyOS8rKNTgcb5025Hri6IpANPApbXMg15QLb1LJpBw== - dependencies: - q "^1.5.1" +conventional-changelog-atom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/conventional-changelog-atom/-/conventional-changelog-atom-3.0.0.tgz#32de463a29db773de15382c96acda47930d3d24d" + integrity sha512-pnN5bWpH+iTUWU3FaYdw5lJmfWeqSyrUkG+wyHBI9tC1dLNnHkbAOg1SzTQ7zBqiFrfo55h40VsGXWMdopwc5g== -conventional-changelog-codemirror@^2.0.8: - version "2.0.8" - resolved "https://registry.yarnpkg.com/conventional-changelog-codemirror/-/conventional-changelog-codemirror-2.0.8.tgz#398e9530f08ce34ec4640af98eeaf3022eb1f7dc" - integrity sha512-z5DAsn3uj1Vfp7po3gpt2Boc+Bdwmw2++ZHa5Ak9k0UKsYAO5mH1UBTN0qSCuJZREIhX6WU4E1p3IW2oRCNzQw== - dependencies: - q "^1.5.1" +conventional-changelog-codemirror@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/conventional-changelog-codemirror/-/conventional-changelog-codemirror-3.0.0.tgz#6d5a4c67713346a9ebbcfb6336b3269ce8ddceeb" + integrity sha512-wzchZt9HEaAZrenZAUUHMCFcuYzGoZ1wG/kTRMICxsnW5AXohYMRxnyecP9ob42Gvn5TilhC0q66AtTPRSNMfw== conventional-changelog-config-spec@2.1.0, conventional-changelog-config-spec@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/conventional-changelog-config-spec/-/conventional-changelog-config-spec-2.1.0.tgz#874a635287ef8b581fd8558532bf655d4fb59f2d" integrity sha512-IpVePh16EbbB02V+UA+HQnnPIohgXvJRxHcS5+Uwk4AT5LjzCZJm5sp/yqs5C6KZJ1jMsV4paEV13BN1pvDuxQ== -conventional-changelog-conventionalcommits@4.6.3, conventional-changelog-conventionalcommits@^4.5.0: - version "4.6.3" - resolved "https://registry.yarnpkg.com/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.6.3.tgz#0765490f56424b46f6cb4db9135902d6e5a36dc2" - integrity sha512-LTTQV4fwOM4oLPad317V/QNQ1FY4Hju5qeBIM1uTHbrnCE+Eg4CdRZ3gO2pUeR+tzWdp80M2j3qFFEDWVqOV4g== +conventional-changelog-conventionalcommits@6.1.0, conventional-changelog-conventionalcommits@^6.0.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-6.1.0.tgz#3bad05f4eea64e423d3d90fc50c17d2c8cf17652" + integrity sha512-3cS3GEtR78zTfMzk0AizXKKIdN4OvSh7ibNz6/DPbhWWQu7LqE/8+/GqSodV+sywUR2gpJAdP/1JFf4XtN7Zpw== dependencies: compare-func "^2.0.0" - lodash "^4.17.15" - q "^1.5.1" -conventional-changelog-core@^4.2.1: - version "4.2.4" - resolved "https://registry.yarnpkg.com/conventional-changelog-core/-/conventional-changelog-core-4.2.4.tgz#e50d047e8ebacf63fac3dc67bf918177001e1e9f" - integrity sha512-gDVS+zVJHE2v4SLc6B0sLsPiloR0ygU7HaDW14aNJE1v4SlqJPILPl/aJC7YdtRE4CybBf8gDwObBvKha8Xlyg== +conventional-changelog-core@^5.0.0: + version "5.0.2" + resolved "https://registry.yarnpkg.com/conventional-changelog-core/-/conventional-changelog-core-5.0.2.tgz#78dbe6c346162be4132b7890668d3e860cad2d08" + integrity sha512-RhQOcDweXNWvlRwUDCpaqXzbZemKPKncCWZG50Alth72WITVd6nhVk9MJ6w1k9PFNBcZ3YwkdkChE+8+ZwtUug== dependencies: add-stream "^1.0.0" - conventional-changelog-writer "^5.0.0" - conventional-commits-parser "^3.2.0" - dateformat "^3.0.0" - get-pkg-repo "^4.0.0" - git-raw-commits "^2.0.8" + conventional-changelog-writer "^6.0.0" + conventional-commits-parser "^4.0.0" + dateformat "^3.0.3" + get-pkg-repo "^4.2.1" + git-raw-commits "^3.0.0" git-remote-origin-url "^2.0.0" - git-semver-tags "^4.1.1" - lodash "^4.17.15" - normalize-package-data "^3.0.0" - q "^1.5.1" + git-semver-tags "^5.0.0" + normalize-package-data "^3.0.3" read-pkg "^3.0.0" read-pkg-up "^3.0.0" - through2 "^4.0.0" -conventional-changelog-ember@^2.0.9: - version "2.0.9" - resolved "https://registry.yarnpkg.com/conventional-changelog-ember/-/conventional-changelog-ember-2.0.9.tgz#619b37ec708be9e74a220f4dcf79212ae1c92962" - integrity sha512-ulzIReoZEvZCBDhcNYfDIsLTHzYHc7awh+eI44ZtV5cx6LVxLlVtEmcO+2/kGIHGtw+qVabJYjdI5cJOQgXh1A== - dependencies: - q "^1.5.1" +conventional-changelog-ember@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/conventional-changelog-ember/-/conventional-changelog-ember-3.0.0.tgz#8a02adc12f87285195dda43b573b7c0d1a1b266c" + integrity sha512-7PYthCoSxIS98vWhVcSphMYM322OxptpKAuHYdVspryI0ooLDehRXWeRWgN+zWSBXKl/pwdgAg8IpLNSM1/61A== -conventional-changelog-eslint@^3.0.9: - version "3.0.9" - resolved "https://registry.yarnpkg.com/conventional-changelog-eslint/-/conventional-changelog-eslint-3.0.9.tgz#689bd0a470e02f7baafe21a495880deea18b7cdb" - integrity sha512-6NpUCMgU8qmWmyAMSZO5NrRd7rTgErjrm4VASam2u5jrZS0n38V7Y9CzTtLT2qwz5xEChDR4BduoWIr8TfwvXA== - dependencies: - q "^1.5.1" +conventional-changelog-eslint@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/conventional-changelog-eslint/-/conventional-changelog-eslint-4.0.0.tgz#cdcaee9bc14ffc97540ecef6771c472e54f3d75e" + integrity sha512-nEZ9byP89hIU0dMx37JXQkE1IpMmqKtsaR24X7aM3L6Yy/uAtbb+ogqthuNYJkeO1HyvK7JsX84z8649hvp43Q== -conventional-changelog-express@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/conventional-changelog-express/-/conventional-changelog-express-2.0.6.tgz#420c9d92a347b72a91544750bffa9387665a6ee8" - integrity sha512-SDez2f3iVJw6V563O3pRtNwXtQaSmEfTCaTBPCqn0oG0mfkq0rX4hHBq5P7De2MncoRixrALj3u3oQsNK+Q0pQ== - dependencies: - q "^1.5.1" +conventional-changelog-express@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/conventional-changelog-express/-/conventional-changelog-express-3.0.0.tgz#25bee76f7d11df45b42bd5580228b1f94c77a64f" + integrity sha512-HqxihpUMfIuxvlPvC6HltA4ZktQEUan/v3XQ77+/zbu8No/fqK3rxSZaYeHYant7zRxQNIIli7S+qLS9tX9zQA== -conventional-changelog-jquery@^3.0.11: - version "3.0.11" - resolved "https://registry.yarnpkg.com/conventional-changelog-jquery/-/conventional-changelog-jquery-3.0.11.tgz#d142207400f51c9e5bb588596598e24bba8994bf" - integrity sha512-x8AWz5/Td55F7+o/9LQ6cQIPwrCjfJQ5Zmfqi8thwUEKHstEn4kTIofXub7plf1xvFA2TqhZlq7fy5OmV6BOMw== - dependencies: - q "^1.5.1" +conventional-changelog-jquery@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/conventional-changelog-jquery/-/conventional-changelog-jquery-4.0.0.tgz#bbfea102b8ea66a781e245d43ead0608842ae326" + integrity sha512-TTIN5CyzRMf8PUwyy4IOLmLV2DFmPtasKN+x7EQKzwSX8086XYwo+NeaeA3VUT8bvKaIy5z/JoWUvi7huUOgaw== -conventional-changelog-jshint@^2.0.9: - version "2.0.9" - resolved "https://registry.yarnpkg.com/conventional-changelog-jshint/-/conventional-changelog-jshint-2.0.9.tgz#f2d7f23e6acd4927a238555d92c09b50fe3852ff" - integrity sha512-wMLdaIzq6TNnMHMy31hql02OEQ8nCQfExw1SE0hYL5KvU+JCTuPaDO+7JiogGT2gJAxiUGATdtYYfh+nT+6riA== +conventional-changelog-jshint@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/conventional-changelog-jshint/-/conventional-changelog-jshint-3.0.0.tgz#a1743e77ffdee03b704af6faa199520d3a90a868" + integrity sha512-bQof4byF4q+n+dwFRkJ/jGf9dCNUv4/kCDcjeCizBvfF81TeimPZBB6fT4HYbXgxxfxWXNl/i+J6T0nI4by6DA== dependencies: compare-func "^2.0.0" - q "^1.5.1" -conventional-changelog-preset-loader@^2.3.4: - version "2.3.4" - resolved "https://registry.yarnpkg.com/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.3.4.tgz#14a855abbffd59027fd602581f1f34d9862ea44c" - integrity sha512-GEKRWkrSAZeTq5+YjUZOYxdHq+ci4dNwHvpaBC3+ENalzFWuCWa9EZXSuZBpkr72sMdKB+1fyDV4takK1Lf58g== +conventional-changelog-preset-loader@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-3.0.0.tgz#14975ef759d22515d6eabae6396c2ae721d4c105" + integrity sha512-qy9XbdSLmVnwnvzEisjxdDiLA4OmV3o8db+Zdg4WiFw14fP3B6XNz98X0swPPpkTd/pc1K7+adKgEDM1JCUMiA== -conventional-changelog-writer@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/conventional-changelog-writer/-/conventional-changelog-writer-5.0.1.tgz#e0757072f045fe03d91da6343c843029e702f359" - integrity sha512-5WsuKUfxW7suLblAbFnxAcrvf6r+0b7GvNaWUwUIk0bXMnENP/PEieGKVUQrjPqwPT4o3EPAASBXiY6iHooLOQ== +conventional-changelog-writer@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/conventional-changelog-writer/-/conventional-changelog-writer-6.0.1.tgz#d8d3bb5e1f6230caed969dcc762b1c368a8f7b01" + integrity sha512-359t9aHorPw+U+nHzUXHS5ZnPBOizRxfQsWT5ZDHBfvfxQOAik+yfuhKXG66CN5LEWPpMNnIMHUTCKeYNprvHQ== dependencies: - conventional-commits-filter "^2.0.7" - dateformat "^3.0.0" + conventional-commits-filter "^3.0.0" + dateformat "^3.0.3" handlebars "^4.7.7" json-stringify-safe "^5.0.1" - lodash "^4.17.15" - meow "^8.0.0" - semver "^6.0.0" - split "^1.0.0" - through2 "^4.0.0" - -conventional-changelog@3.1.25: - version "3.1.25" - resolved "https://registry.yarnpkg.com/conventional-changelog/-/conventional-changelog-3.1.25.tgz#3e227a37d15684f5aa1fb52222a6e9e2536ccaff" - integrity sha512-ryhi3fd1mKf3fSjbLXOfK2D06YwKNic1nC9mWqybBHdObPd8KJ2vjaXZfYj1U23t+V8T8n0d7gwnc9XbIdFbyQ== - dependencies: - conventional-changelog-angular "^5.0.12" - conventional-changelog-atom "^2.0.8" - conventional-changelog-codemirror "^2.0.8" - conventional-changelog-conventionalcommits "^4.5.0" - conventional-changelog-core "^4.2.1" - conventional-changelog-ember "^2.0.9" - conventional-changelog-eslint "^3.0.9" - conventional-changelog-express "^2.0.6" - conventional-changelog-jquery "^3.0.11" - conventional-changelog-jshint "^2.0.9" - conventional-changelog-preset-loader "^2.3.4" - -conventional-commits-filter@^2.0.7: - version "2.0.7" - resolved "https://registry.yarnpkg.com/conventional-commits-filter/-/conventional-commits-filter-2.0.7.tgz#f8d9b4f182fce00c9af7139da49365b136c8a0b3" - integrity sha512-ASS9SamOP4TbCClsRHxIHXRfcGCnIoQqkvAzCSbZzTFLfcTqJVugB0agRgsEELsqaeWgsXv513eS116wnlSSPA== + meow "^8.1.2" + semver "^7.0.0" + split "^1.0.1" + +conventional-changelog@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/conventional-changelog/-/conventional-changelog-4.0.0.tgz#51a8d7765e5837bb29b3ef1cf395d6ef594827a9" + integrity sha512-JbZjwE1PzxQCvm+HUTIr+pbSekS8qdOZzMakdFyPtdkEWwFvwEJYONzjgMm0txCb2yBcIcfKDmg8xtCKTdecNQ== + dependencies: + conventional-changelog-angular "^6.0.0" + conventional-changelog-atom "^3.0.0" + conventional-changelog-codemirror "^3.0.0" + conventional-changelog-conventionalcommits "^6.0.0" + conventional-changelog-core "^5.0.0" + conventional-changelog-ember "^3.0.0" + conventional-changelog-eslint "^4.0.0" + conventional-changelog-express "^3.0.0" + conventional-changelog-jquery "^4.0.0" + conventional-changelog-jshint "^3.0.0" + conventional-changelog-preset-loader "^3.0.0" + +conventional-commits-filter@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/conventional-commits-filter/-/conventional-commits-filter-3.0.0.tgz#bf1113266151dd64c49cd269e3eb7d71d7015ee2" + integrity sha512-1ymej8b5LouPx9Ox0Dw/qAO2dVdfpRFq28e5Y0jJEU8ZrLdy0vOSkkIInwmxErFGhg6SALro60ZrwYFVTUDo4Q== dependencies: lodash.ismatch "^4.4.0" - modify-values "^1.0.0" + modify-values "^1.0.1" -conventional-commits-parser@^3.2.0: - version "3.2.4" - resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-3.2.4.tgz#a7d3b77758a202a9b2293d2112a8d8052c740972" - integrity sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q== +conventional-commits-parser@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-4.0.0.tgz#02ae1178a381304839bce7cea9da5f1b549ae505" + integrity sha512-WRv5j1FsVM5FISJkoYMR6tPk07fkKT0UodruX4je86V4owk451yjXAKzKAPOs9l7y59E2viHUS9eQ+dfUA9NSg== dependencies: - JSONStream "^1.0.4" + JSONStream "^1.3.5" is-text-path "^1.0.1" - lodash "^4.17.15" - meow "^8.0.0" - split2 "^3.0.0" - through2 "^4.0.0" + meow "^8.1.2" + split2 "^3.2.2" -conventional-recommended-bump@6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/conventional-recommended-bump/-/conventional-recommended-bump-6.1.0.tgz#cfa623285d1de554012f2ffde70d9c8a22231f55" - integrity sha512-uiApbSiNGM/kkdL9GTOLAqC4hbptObFo4wW2QRyHsKciGAfQuLU1ShZ1BIVI/+K2BE/W1AWYQMCXAsv4dyKPaw== +conventional-recommended-bump@7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/conventional-recommended-bump/-/conventional-recommended-bump-7.0.1.tgz#ec01f6c7f5d0e2491c2d89488b0d757393392424" + integrity sha512-Ft79FF4SlOFvX4PkwFDRnaNiIVX7YbmqGU0RwccUaiGvgp3S0a8ipR2/Qxk31vclDNM+GSdJOVs2KrsUCjblVA== dependencies: concat-stream "^2.0.0" - conventional-changelog-preset-loader "^2.3.4" - conventional-commits-filter "^2.0.7" - conventional-commits-parser "^3.2.0" - git-raw-commits "^2.0.8" - git-semver-tags "^4.1.1" - meow "^8.0.0" - q "^1.5.1" + conventional-changelog-preset-loader "^3.0.0" + conventional-commits-filter "^3.0.0" + conventional-commits-parser "^4.0.0" + git-raw-commits "^3.0.0" + git-semver-tags "^5.0.0" + meow "^8.1.2" convert-source-map@^1.4.0, convert-source-map@^1.6.0: version "1.9.0" @@ -1693,6 +1698,13 @@ cssstyle@^2.3.0: dependencies: cssom "~0.3.6" +cssstyle@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-4.0.1.tgz#ef29c598a1e90125c870525490ea4f354db0660a" + integrity sha512-8ZYiJ3A/3OkDd093CBT/0UKDWry7ak4BdPTFP2+QEP7cmhouyq/Up709ASSj2cK02BbZiMgk7kYjZNS4QP5qrQ== + dependencies: + rrweb-cssom "^0.6.0" + dargs@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/dargs/-/dargs-7.0.0.tgz#04015c41de0bcb69ec84050f3d9be0caf8d6d5cc" @@ -1707,6 +1719,14 @@ data-urls@^2.0.0: whatwg-mimetype "^2.3.0" whatwg-url "^8.0.0" +data-urls@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-5.0.0.tgz#2f76906bce1824429ffecb6920f45a0b30f00dde" + integrity sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg== + dependencies: + whatwg-mimetype "^4.0.0" + whatwg-url "^14.0.0" + data-view-buffer@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/data-view-buffer/-/data-view-buffer-1.0.1.tgz#8ea6326efec17a2e42620696e671d7d5a8bc66b2" @@ -1739,7 +1759,7 @@ date-format@^4.0.14: resolved "https://registry.yarnpkg.com/date-format/-/date-format-4.0.14.tgz#7a8e584434fb169a521c8b7aa481f355810d9400" integrity sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg== -dateformat@^3.0.0: +dateformat@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae" integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q== @@ -1776,7 +1796,7 @@ decamelize@^5.0.1: resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-5.0.1.tgz#db11a92e58c741ef339fb0a2868d8a06a9a7b1e9" integrity sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA== -decimal.js@^10.2.1: +decimal.js@^10.2.1, decimal.js@^10.4.3: version "10.4.3" resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.4.3.tgz#1044092884d245d1b7f65725fa4ad4c6f781cc23" integrity sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA== @@ -1907,6 +1927,11 @@ emoji-regex@^8.0.0: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== +entities@^4.4.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" + integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== + entities@~3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/entities/-/entities-3.0.1.tgz#2b887ca62585e96db3903482d336c1006c3001d4" @@ -2369,6 +2394,15 @@ form-data@^3.0.0: combined-stream "^1.0.8" mime-types "^2.1.12" +form-data@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" + integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + fs-extra@^10.1.0: version "10.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf" @@ -2462,7 +2496,7 @@ get-package-type@^0.1.0: resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== -get-pkg-repo@^4.0.0: +get-pkg-repo@^4.2.1: version "4.2.1" resolved "https://registry.yarnpkg.com/get-pkg-repo/-/get-pkg-repo-4.2.1.tgz#75973e1c8050c73f48190c52047c4cee3acbf385" integrity sha512-2+QbHjFRfGB74v/pYWjd5OhU3TDIC2Gv/YKUTk/tCvAz0pkn/Mz6P3uByuBimLOcPvN2jYdScl3xGFSrx0jEcA== @@ -2486,16 +2520,14 @@ get-symbol-description@^1.0.2: es-errors "^1.3.0" get-intrinsic "^1.2.4" -git-raw-commits@^2.0.8: - version "2.0.11" - resolved "https://registry.yarnpkg.com/git-raw-commits/-/git-raw-commits-2.0.11.tgz#bc3576638071d18655e1cc60d7f524920008d723" - integrity sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A== +git-raw-commits@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/git-raw-commits/-/git-raw-commits-3.0.0.tgz#5432f053a9744f67e8db03dbc48add81252cfdeb" + integrity sha512-b5OHmZ3vAgGrDn/X0kS+9qCfNKWe4K/jFnhwzVWWg0/k5eLa3060tZShrRg8Dja5kPc+YjS0Gc6y7cRr44Lpjw== dependencies: dargs "^7.0.0" - lodash "^4.17.15" - meow "^8.0.0" - split2 "^3.0.0" - through2 "^4.0.0" + meow "^8.1.2" + split2 "^3.2.2" git-remote-origin-url@^2.0.0: version "2.0.0" @@ -2505,13 +2537,13 @@ git-remote-origin-url@^2.0.0: gitconfiglocal "^1.0.0" pify "^2.3.0" -git-semver-tags@^4.0.0, git-semver-tags@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/git-semver-tags/-/git-semver-tags-4.1.1.tgz#63191bcd809b0ec3e151ba4751c16c444e5b5780" - integrity sha512-OWyMt5zBe7xFs8vglMmhM9lRQzCWL3WjHtxNNfJTMngGym7pC1kh8sP6jevfydJ6LP3ZvGxfb6ABYgPUM0mtsA== +git-semver-tags@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/git-semver-tags/-/git-semver-tags-5.0.1.tgz#db748aa0e43d313bf38dcd68624d8443234e1c15" + integrity sha512-hIvOeZwRbQ+7YEUmCkHqo8FOLQZCEn18yevLHADlFPZY02KJGsu5FZt9YW/lybfK2uhWFI7Qg/07LekJiTv7iA== dependencies: - meow "^8.0.0" - semver "^6.0.0" + meow "^8.1.2" + semver "^7.0.0" gitconfiglocal@^1.0.0: version "1.0.0" @@ -2534,6 +2566,11 @@ glob-parent@^6.0.2: dependencies: is-glob "^4.0.3" +glob-promise@^6.0.7: + version "6.0.7" + resolved "https://registry.yarnpkg.com/glob-promise/-/glob-promise-6.0.7.tgz#6d894212c63a42e1b86d1cbb04f4582b658308e4" + integrity sha512-DEAe6br1w8ZF+y6KM2pzgdfhpreladtNvyNNVgSkxxkFWzXTJFXxQrJQQbAnc7kL0EUd7w5cR8u4K0P4+/q+Gw== + glob@^7.0.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.2.0: version "7.2.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" @@ -2546,7 +2583,7 @@ glob@^7.0.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.2.0: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^8: +glob@^8, glob@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== @@ -2693,6 +2730,13 @@ html-encoding-sniffer@^2.0.1: dependencies: whatwg-encoding "^1.0.5" +html-encoding-sniffer@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz#696df529a7cfd82446369dc5193e590a3735b448" + integrity sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ== + dependencies: + whatwg-encoding "^3.1.1" + html-escaper@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" @@ -2707,6 +2751,14 @@ http-proxy-agent@^4.0.1: agent-base "6" debug "4" +http-proxy-agent@^7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz#9a8b1f246866c028509486585f62b8f2c18c270e" + integrity sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig== + dependencies: + agent-base "^7.1.0" + debug "^4.3.4" + https-proxy-agent@^5.0.0: version "5.0.1" resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" @@ -2715,6 +2767,14 @@ https-proxy-agent@^5.0.0: agent-base "6" debug "4" +https-proxy-agent@^7.0.5: + version "7.0.5" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz#9e8b5013873299e11fab6fd548405da2d6c602b2" + integrity sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw== + dependencies: + agent-base "^7.0.2" + debug "4" + human-signals@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" @@ -2727,6 +2787,13 @@ iconv-lite@0.4.24: dependencies: safer-buffer ">= 2.1.2 < 3" +iconv-lite@0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" + integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== + dependencies: + safer-buffer ">= 2.1.2 < 3.0.0" + ignore@^5.2.0, ignore@^5.3.0, ignore@^5.3.1: version "5.3.2" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.2.tgz#3cd40e729f3643fd87cb04e50bf0eb722bc596f5" @@ -3498,6 +3565,33 @@ jsdom@^16.6.0: ws "^7.4.6" xml-name-validator "^3.0.0" +jsdom@^24.1.1: + version "24.1.3" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-24.1.3.tgz#88e4a07cb9dd21067514a619e9f17b090a394a9f" + integrity sha512-MyL55p3Ut3cXbeBEG7Hcv0mVM8pp8PBNWxRqchZnSfAiES1v1mRnMeFfaHWIPULpwsYfvO+ZmMZz5tGCnjzDUQ== + dependencies: + cssstyle "^4.0.1" + data-urls "^5.0.0" + decimal.js "^10.4.3" + form-data "^4.0.0" + html-encoding-sniffer "^4.0.0" + http-proxy-agent "^7.0.2" + https-proxy-agent "^7.0.5" + is-potential-custom-element-name "^1.0.1" + nwsapi "^2.2.12" + parse5 "^7.1.2" + rrweb-cssom "^0.7.1" + saxes "^6.0.0" + symbol-tree "^3.2.4" + tough-cookie "^4.1.4" + w3c-xmlserializer "^5.0.0" + webidl-conversions "^7.0.0" + whatwg-encoding "^3.1.1" + whatwg-mimetype "^4.0.0" + whatwg-url "^14.0.0" + ws "^8.18.0" + xml-name-validator "^5.0.0" + jsesc@^2.5.1: version "2.5.2" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" @@ -3515,14 +3609,18 @@ jsii-diff@^1.102.0: log4js "^6.9.1" yargs "^16.2.0" -jsii-docgen@^1.8.110: - version "1.8.110" - resolved "https://registry.yarnpkg.com/jsii-docgen/-/jsii-docgen-1.8.110.tgz#83c829864db993a9479531b43e8dcb2288803c1f" - integrity sha512-xl/A8lpOfRzG7KQqHDkWf3bveR3b0hM91CG1/eHLSpBJpvsEvCS97JkOpcCp16XEiTHrHMrnILZPPGWneFUncw== +jsii-docgen@^10.5.0: + version "10.5.0" + resolved "https://registry.yarnpkg.com/jsii-docgen/-/jsii-docgen-10.5.0.tgz#0e9d34383800a892ca7a7cd11f8dbeab20144154" + integrity sha512-mgR8xrqOAUzUq3EdcF7iZGceqzFD43usWNaP7ZomeMP0mZqXi1rNSKsVHdCACZgTZgKQDIv6tVbHoIDZEGTk0w== dependencies: - "@jsii/spec" "^1.30.0" - fs-extra "^9.1.0" - jsii-reflect "^1.30.0" + "@jsii/spec" "^1.102.0" + case "^1.6.3" + fs-extra "^10.1.0" + glob "^8.1.0" + glob-promise "^6.0.7" + jsii-reflect "^1.102.0" + semver "^7.6.3" yargs "^16.2.0" jsii-pacmak@^1.102.0: @@ -3543,7 +3641,7 @@ jsii-pacmak@^1.102.0: xmlbuilder "^15.1.1" yargs "^16.2.0" -jsii-reflect@^1.102.0, jsii-reflect@^1.30.0: +jsii-reflect@^1.102.0: version "1.102.0" resolved "https://registry.yarnpkg.com/jsii-reflect/-/jsii-reflect-1.102.0.tgz#4d1d3c9e2f51d157a43297d55dd61487bf61e384" integrity sha512-Lf2l8z3HSRSyouFGpDddfheP2LznKvFDKVlUWEzO+jDnQFOJOYTv4x617Yy5JIeIa9D8f70drRelOqove6hZtQ== @@ -3760,7 +3858,7 @@ lodash.truncate@^4.4.2: resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" integrity sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw== -lodash@^4.17.15, lodash@^4.7.0: +lodash@^4.7.0: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -3833,7 +3931,7 @@ mdurl@~1.0.1: resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" integrity sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g== -meow@^8.0.0: +meow@^8.1.2: version "8.1.2" resolved "https://registry.yarnpkg.com/meow/-/meow-8.1.2.tgz#bcbe45bda0ee1729d350c03cffc8395a36c4e897" integrity sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q== @@ -3930,7 +4028,7 @@ mkdirp@^1.0.4: resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== -modify-values@^1.0.0: +modify-values@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/modify-values/-/modify-values-1.0.1.tgz#b3939fa605546474e3e3e3c63d64bd43b4ee6022" integrity sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw== @@ -3975,7 +4073,7 @@ normalize-package-data@^2.3.2, normalize-package-data@^2.5.0: semver "2 || 3 || 4 || 5" validate-npm-package-license "^3.0.1" -normalize-package-data@^3.0.0: +normalize-package-data@^3.0.0, normalize-package-data@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-3.0.3.tgz#dbcc3e2da59509a0983422884cd172eefdfa525e" integrity sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA== @@ -3997,7 +4095,7 @@ npm-run-path@^4.0.1: dependencies: path-key "^3.0.0" -nwsapi@^2.2.0: +nwsapi@^2.2.0, nwsapi@^2.2.12: version "2.2.12" resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.12.tgz#fb6af5c0ec35b27b4581eb3bbad34ec9e5c696f8" integrity sha512-qXDmcVlZV4XRtKFzddidpfVP4oMSGhga+xdMc25mv8kaLUHtgzCDhUxkrN8exkGdTlLNaXj7CV3GtON7zuGZ+w== @@ -4170,6 +4268,13 @@ parse5@6.0.1: resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== +parse5@^7.1.2: + version "7.1.2" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.1.2.tgz#0736bebbfd77793823240a23b7fc5e010b7f8e32" + integrity sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw== + dependencies: + entities "^4.4.0" + path-exists@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" @@ -4275,10 +4380,10 @@ process-nextick-args@~2.0.0: resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== -projen@^0.86.0: - version "0.86.0" - resolved "https://registry.yarnpkg.com/projen/-/projen-0.86.0.tgz#7141b03ac6837dc7f902ffe08558424f74fefe1c" - integrity sha512-7iqeGd2FdTInE/PVuWFZzjOqsQL8dLDdn54H3mK5CIYQqu9EAjrdMqDOHFZjDrNUz2bbau74jWCQW4tasAznOQ== +projen@^0.86.4: + version "0.86.4" + resolved "https://registry.yarnpkg.com/projen/-/projen-0.86.4.tgz#dd4b0af35f04f96fbd8c10c1a70e748e029fb460" + integrity sha512-kUKEEhNzCN5ZBkj9xzUzdP9X1TFNlWWRQJTeEeq0nFSaue6StmHyNG2yHvoEO/c2tqz1Sc07+B/dC8VC+19C/Q== dependencies: "@iarna/toml" "^2.2.5" case "^1.6.3" @@ -4313,11 +4418,6 @@ punycode@^2.1.0, punycode@^2.1.1, punycode@^2.3.1: resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== -q@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" - integrity sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw== - querystringify@^2.1.1: version "2.2.0" resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" @@ -4374,7 +4474,7 @@ read-pkg@^5.2.0: parse-json "^5.0.0" type-fest "^0.6.0" -readable-stream@3, readable-stream@^3.0.0, readable-stream@^3.0.2: +readable-stream@^3.0.0, readable-stream@^3.0.2: version "3.6.2" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== @@ -4489,6 +4589,16 @@ rimraf@^3.0.0, rimraf@^3.0.2: dependencies: glob "^7.1.3" +rrweb-cssom@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/rrweb-cssom/-/rrweb-cssom-0.6.0.tgz#ed298055b97cbddcdeb278f904857629dec5e0e1" + integrity sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw== + +rrweb-cssom@^0.7.1: + version "0.7.1" + resolved "https://registry.yarnpkg.com/rrweb-cssom/-/rrweb-cssom-0.7.1.tgz#c73451a484b86dd7cfb1e0b2898df4b703183e4b" + integrity sha512-TrEMa7JGdVm0UThDJSx7ddw5nVm3UJS9o9CCIZ72B1vSyEZoziDqBYP3XIoi/12lKrJR8rE3jeFHMok2F/Mnsg== + run-parallel@^1.1.9: version "1.2.0" resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" @@ -4525,7 +4635,7 @@ safe-regex-test@^1.0.3: es-errors "^1.3.0" is-regex "^1.1.4" -"safer-buffer@>= 2.1.2 < 3": +"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== @@ -4537,6 +4647,13 @@ saxes@^5.0.1: dependencies: xmlchars "^2.2.0" +saxes@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/saxes/-/saxes-6.0.0.tgz#fe5b4a4768df4f14a201b1ba6a65c1f3d9988cc5" + integrity sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA== + dependencies: + xmlchars "^2.2.0" + semver-intersect@^1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/semver-intersect/-/semver-intersect-1.5.0.tgz#bb3aa0ea504935410d34cf15f49818d56906bd48" @@ -4549,12 +4666,12 @@ semver-intersect@^1.5.0: resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== -semver@7.x, semver@^7.1.1, semver@^7.3.2, semver@^7.3.4, semver@^7.5.3, semver@^7.5.4, semver@^7.6.0, semver@^7.6.3: +semver@7.x, semver@^7.0.0, semver@^7.3.2, semver@^7.3.4, semver@^7.5.3, semver@^7.5.4, semver@^7.6.0, semver@^7.6.3: version "7.6.3" resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143" integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== -semver@^6.0.0, semver@^6.3.0, semver@^6.3.1: +semver@^6.3.0, semver@^6.3.1: version "6.3.1" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== @@ -4702,14 +4819,14 @@ spdx-license-list@^6.9.0: resolved "https://registry.yarnpkg.com/spdx-license-list/-/spdx-license-list-6.9.0.tgz#5543abb3a15f985a12808f642a622d2721c372ad" integrity sha512-L2jl5vc2j6jxWcNCvcVj/BW9A8yGIG02Dw+IUw0ZxDM70f7Ylf5Hq39appV1BI9yxyWQRpq2TQ1qaXvf+yjkqA== -split2@^3.0.0: +split2@^3.2.2: version "3.2.2" resolved "https://registry.yarnpkg.com/split2/-/split2-3.2.2.tgz#bf2cf2a37d838312c249c89206fd7a17dd12365f" integrity sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg== dependencies: readable-stream "^3.0.0" -split@^1.0.0: +split@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/split/-/split-1.0.1.tgz#605bd9be303aa59fb35f9229fbea0ddec9ea07d9" integrity sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg== @@ -4728,26 +4845,6 @@ stack-utils@^2.0.3: dependencies: escape-string-regexp "^2.0.0" -standard-version@^9: - version "9.5.0" - resolved "https://registry.yarnpkg.com/standard-version/-/standard-version-9.5.0.tgz#851d6dcddf5320d5079601832aeb185dbf497949" - integrity sha512-3zWJ/mmZQsOaO+fOlsa0+QK90pwhNd042qEcw6hKFNoLFs7peGyvPffpEBbK/DSGPbyOvli0mUIFv5A4qTjh2Q== - dependencies: - chalk "^2.4.2" - conventional-changelog "3.1.25" - conventional-changelog-config-spec "2.1.0" - conventional-changelog-conventionalcommits "4.6.3" - conventional-recommended-bump "6.1.0" - detect-indent "^6.0.0" - detect-newline "^3.1.0" - dotgitignore "^2.1.0" - figures "^3.1.0" - find-up "^5.0.0" - git-semver-tags "^4.0.0" - semver "^7.1.1" - stringify-package "^1.0.1" - yargs "^16.0.0" - stream-chain@^2.2.5: version "2.2.5" resolved "https://registry.yarnpkg.com/stream-chain/-/stream-chain-2.2.5.tgz#b30967e8f14ee033c5b9a19bbe8a2cba90ba0d09" @@ -4828,11 +4925,6 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" -stringify-package@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/stringify-package/-/stringify-package-1.0.1.tgz#e5aa3643e7f74d0f28628b72f3dad5cecfc3ba85" - integrity sha512-sa4DUQsYciMP1xhKWGuFM04fB0LG/9DlluZoSVywUMRNvzid6XucHK0/90xGxRoHrAaROrcHK1aPKaijCtSrhg== - strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" @@ -4957,13 +5049,6 @@ through2@^2.0.0: readable-stream "~2.3.6" xtend "~4.0.1" -through2@^4.0.0: - version "4.0.2" - resolved "https://registry.yarnpkg.com/through2/-/through2-4.0.2.tgz#a7ce3ac2a7a8b0b966c80e7c49f0484c3b239764" - integrity sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw== - dependencies: - readable-stream "3" - through@2, "through@>=2.2.7 <3": version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" @@ -4986,7 +5071,7 @@ to-regex-range@^5.0.1: dependencies: is-number "^7.0.0" -tough-cookie@^4.0.0: +tough-cookie@^4.0.0, tough-cookie@^4.1.4: version "4.1.4" resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.4.tgz#945f1461b45b5a8c76821c33ea49c3ac192c1b36" integrity sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag== @@ -5003,6 +5088,13 @@ tr46@^2.1.0: dependencies: punycode "^2.1.1" +tr46@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-5.0.0.tgz#3b46d583613ec7283020d79019f1335723801cec" + integrity sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g== + dependencies: + punycode "^2.3.1" + trim-newlines@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.1.tgz#260a5d962d8b752425b32f3a7db0dcacd176c144" @@ -5239,6 +5331,13 @@ w3c-xmlserializer@^2.0.0: dependencies: xml-name-validator "^3.0.0" +w3c-xmlserializer@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz#f925ba26855158594d907313cedd1476c5967f6c" + integrity sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA== + dependencies: + xml-name-validator "^5.0.0" + walker@^1.0.7: version "1.0.8" resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f" @@ -5256,6 +5355,11 @@ webidl-conversions@^6.1.0: resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514" integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== +webidl-conversions@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-7.0.0.tgz#256b4e1882be7debbf01d05f0aa2039778ea080a" + integrity sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g== + whatwg-encoding@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" @@ -5263,11 +5367,31 @@ whatwg-encoding@^1.0.5: dependencies: iconv-lite "0.4.24" +whatwg-encoding@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz#d0f4ef769905d426e1688f3e34381a99b60b76e5" + integrity sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ== + dependencies: + iconv-lite "0.6.3" + whatwg-mimetype@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== +whatwg-mimetype@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz#bc1bf94a985dc50388d54a9258ac405c3ca2fc0a" + integrity sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg== + +whatwg-url@^14.0.0: + version "14.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-14.0.0.tgz#00baaa7fd198744910c4b1ef68378f2200e4ceb6" + integrity sha512-1lfMEm2IEr7RIV+f4lUNPOqfFL+pO+Xw3fJSqmjX9AbXcXcYOkCe1P6+9VBZB6n94af16NfZf+sSk0JCBZC9aw== + dependencies: + tr46 "^5.0.0" + webidl-conversions "^7.0.0" + whatwg-url@^8.0.0, whatwg-url@^8.5.0: version "8.7.0" resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.7.0.tgz#656a78e510ff8f3937bc0bcbe9f5c0ac35941b77" @@ -5350,11 +5474,21 @@ ws@^7.4.6: resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.10.tgz#58b5c20dc281633f6c19113f39b349bd8bd558d9" integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ== +ws@^8.18.0: + version "8.18.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.18.0.tgz#0d7505a6eafe2b0e712d232b42279f53bc289bbc" + integrity sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw== + xml-name-validator@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== +xml-name-validator@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-5.0.0.tgz#82be9b957f7afdacf961e5980f1bf227c0bf7673" + integrity sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg== + xml@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/xml/-/xml-1.0.1.tgz#78ba72020029c5bc87b8a81a3cfcd74b4a2fc1e5" @@ -5405,7 +5539,7 @@ yaml@1.10.2: resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== -yaml@^2.2.2: +yaml@^2.2.2, yaml@^2.4.1: version "2.5.0" resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.5.0.tgz#c6165a721cf8000e91c36490a41d7be25176cf5d" integrity sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw== @@ -5420,7 +5554,7 @@ yargs-parser@^21.1.1: resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== -yargs@^16.0.0, yargs@^16.2.0: +yargs@^16.2.0: version "16.2.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==