@gammarers/aws-secure-bucket 2.3.19 → 2.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.jsii +75 -14
- package/API.md +57 -4
- package/README.md +3 -14
- package/lib/index.d.ts +15 -2
- package/lib/index.js +22 -5
- package/package.json +5 -5
package/.jsii
CHANGED
|
@@ -3952,7 +3952,7 @@
|
|
|
3952
3952
|
"stability": "stable"
|
|
3953
3953
|
},
|
|
3954
3954
|
"homepage": "https://github.com/gammarers/aws-secure-bucket.git",
|
|
3955
|
-
"jsiiVersion": "5.
|
|
3955
|
+
"jsiiVersion": "5.8.17 (build 7212fc3)",
|
|
3956
3956
|
"keywords": [
|
|
3957
3957
|
"aws",
|
|
3958
3958
|
"aws-cdk",
|
|
@@ -3973,7 +3973,7 @@
|
|
|
3973
3973
|
},
|
|
3974
3974
|
"name": "@gammarers/aws-secure-bucket",
|
|
3975
3975
|
"readme": {
|
|
3976
|
-
"markdown": "# AWS Secure Bucket\n\n[](https://github.com/gammarers/aws-secure-bucket/blob/main/LICENSE)\n[](https://www.npmjs.com/package/@gammarers/aws-secure-bucket)\n[](https://pypi.org/project/gammarers.aws-secure-bucket/)\n[](https://www.nuget.org/packages/Gammarers.CDK.AWS.SecureBucket/)\n[](https://github.com/gammarers/aws-secure-bucket/actions/workflows/release.yml)\n[](https://github.com/gammarers/aws-secure-bucket/releases)\n\n[](https://constructs.dev/packages/@gammarers/aws-secure-bucket)\n\nThis is a Simple S3 Secure Bucket.\n\n- Bucket Access Control is Private\n- Public Read Access is false\n- Enforce SSL\n- All Block public access\n- Require encryption\n\n## Additional Properties\n\n| **Name** | **Type** | **Default** | **Description** |\n| --- | --- | --- | --- |\n| isPipelineArtifactBucket | boolean |
|
|
3976
|
+
"markdown": "# AWS Secure Bucket\n\n[](https://github.com/gammarers/aws-secure-bucket/blob/main/LICENSE)\n[](https://www.npmjs.com/package/@gammarers/aws-secure-bucket)\n[](https://pypi.org/project/gammarers.aws-secure-bucket/)\n[](https://www.nuget.org/packages/Gammarers.CDK.AWS.SecureBucket/)\n[](https://github.com/gammarers/aws-secure-bucket/actions/workflows/release.yml)\n[](https://github.com/gammarers/aws-secure-bucket/releases)\n\n[](https://constructs.dev/packages/@gammarers/aws-secure-bucket)\n\nThis is a Simple S3 Secure Bucket.\n\n- Bucket Access Control is Private\n- Public Read Access is false\n- Enforce SSL\n- All Block public access\n- Require encryption\n\n## Additional Properties\n\n| **Name** | **Type** | **Default** | **Description** |\n| --- | --- | --- | --- |\n| bucketType | SecureBucketType | SecureBucketType.DEFAULT | The type of the bucket. Available types: DEFAULT, SINGLE_PIPELINE_ARTIFACT, MULTI_PIPELINE_ARTIFACT, CLOUD_FRONT_ORIGIN |\n| isPipelineArtifactBucket | boolean | false | ⚠️ **Deprecated**: Use bucketType property instead. If you are setting a custom Qualifier and using it as the artifact bucket for the CDK pipeline, set it to true. |\n| isCloudFrontOriginBucket | boolean | false | ⚠️ **Deprecated**: Use bucketType property instead. If you are using it as the CloudFront origin bucket, set it to true. |\n\n## Install\n\n### TypeScript\n\n#### install by npm\n\n```shell\nnpm install @gammarers/aws-secure-bucket\n```\n\n#### install by yarn\n\n```shell\nyarn add @gammarers/aws-secure-bucket\n```\n\n### Python\n\n```shell\npip install gammarers.aws-secure-bucket\n```\n\n### C# / .Net\n\n```shell\ndotnet add package Gammarers.CDK.AWS.SecureBucket\n```\n\n## Example\n\n```typescript\nimport { SecureBucket } from '@gammarers/aws-secure-bucket';\n\nconst bucket = new SecureBucket(stack, 'SecureBucket', {\n bucketName: 'example-secure-bucket',\n});\n\n```\n"
|
|
3977
3977
|
},
|
|
3978
3978
|
"repository": {
|
|
3979
3979
|
"type": "git",
|
|
@@ -4007,7 +4007,7 @@
|
|
|
4007
4007
|
},
|
|
4008
4008
|
"locationInModule": {
|
|
4009
4009
|
"filename": "src/index.ts",
|
|
4010
|
-
"line":
|
|
4010
|
+
"line": 44
|
|
4011
4011
|
},
|
|
4012
4012
|
"parameters": [
|
|
4013
4013
|
{
|
|
@@ -4034,7 +4034,7 @@
|
|
|
4034
4034
|
"kind": "class",
|
|
4035
4035
|
"locationInModule": {
|
|
4036
4036
|
"filename": "src/index.ts",
|
|
4037
|
-
"line":
|
|
4037
|
+
"line": 43
|
|
4038
4038
|
},
|
|
4039
4039
|
"name": "SecureBucket",
|
|
4040
4040
|
"symbolId": "src/index:SecureBucket"
|
|
@@ -4043,9 +4043,6 @@
|
|
|
4043
4043
|
"assembly": "@gammarers/aws-secure-bucket",
|
|
4044
4044
|
"datatype": true,
|
|
4045
4045
|
"docs": {
|
|
4046
|
-
"custom": {
|
|
4047
|
-
"TODO": ": Not yet supported\nhttps://github.com/aws/jsii/issues/4468\ntype omitKeys = 'publicReadAccess|enforceSSL|blockPublicAccess';\nexport interface CodePipelineStateChangeDetectionEventRuleProps extends Omit<s3.BucketProps, 'publicReadAccess'> {}"
|
|
4048
|
-
},
|
|
4049
4046
|
"stability": "stable"
|
|
4050
4047
|
},
|
|
4051
4048
|
"fqn": "@gammarers/aws-secure-bucket.SecureBucketProps",
|
|
@@ -4055,20 +4052,40 @@
|
|
|
4055
4052
|
"kind": "interface",
|
|
4056
4053
|
"locationInModule": {
|
|
4057
4054
|
"filename": "src/index.ts",
|
|
4058
|
-
"line":
|
|
4055
|
+
"line": 20
|
|
4059
4056
|
},
|
|
4060
4057
|
"name": "SecureBucketProps",
|
|
4061
4058
|
"properties": [
|
|
4062
4059
|
{
|
|
4063
4060
|
"abstract": true,
|
|
4064
4061
|
"docs": {
|
|
4062
|
+
"default": "SecureBucketType.DEFAULT",
|
|
4065
4063
|
"stability": "stable",
|
|
4066
|
-
"summary": "
|
|
4064
|
+
"summary": "The type of the bucket."
|
|
4065
|
+
},
|
|
4066
|
+
"immutable": true,
|
|
4067
|
+
"locationInModule": {
|
|
4068
|
+
"filename": "src/index.ts",
|
|
4069
|
+
"line": 40
|
|
4070
|
+
},
|
|
4071
|
+
"name": "bucketType",
|
|
4072
|
+
"optional": true,
|
|
4073
|
+
"type": {
|
|
4074
|
+
"fqn": "@gammarers/aws-secure-bucket.SecureBucketType"
|
|
4075
|
+
}
|
|
4076
|
+
},
|
|
4077
|
+
{
|
|
4078
|
+
"abstract": true,
|
|
4079
|
+
"docs": {
|
|
4080
|
+
"default": "false",
|
|
4081
|
+
"deprecated": "This property is deprecated. Use the bucketType property instead.",
|
|
4082
|
+
"stability": "deprecated",
|
|
4083
|
+
"summary": "If your are using it as the CloudFront origin bucket, set it to true."
|
|
4067
4084
|
},
|
|
4068
4085
|
"immutable": true,
|
|
4069
4086
|
"locationInModule": {
|
|
4070
4087
|
"filename": "src/index.ts",
|
|
4071
|
-
"line":
|
|
4088
|
+
"line": 34
|
|
4072
4089
|
},
|
|
4073
4090
|
"name": "isCloudFrontOriginBucket",
|
|
4074
4091
|
"optional": true,
|
|
@@ -4080,13 +4097,14 @@
|
|
|
4080
4097
|
"abstract": true,
|
|
4081
4098
|
"docs": {
|
|
4082
4099
|
"default": "false",
|
|
4083
|
-
"
|
|
4100
|
+
"deprecated": "This property is deprecated. Use the bucketType property instead.",
|
|
4101
|
+
"stability": "deprecated",
|
|
4084
4102
|
"summary": "If you are setting a custom Qualifier and using it as the artifact bucket for the CDK pipeline, set it to true."
|
|
4085
4103
|
},
|
|
4086
4104
|
"immutable": true,
|
|
4087
4105
|
"locationInModule": {
|
|
4088
4106
|
"filename": "src/index.ts",
|
|
4089
|
-
"line":
|
|
4107
|
+
"line": 27
|
|
4090
4108
|
},
|
|
4091
4109
|
"name": "isPipelineArtifactBucket",
|
|
4092
4110
|
"optional": true,
|
|
@@ -4096,8 +4114,51 @@
|
|
|
4096
4114
|
}
|
|
4097
4115
|
],
|
|
4098
4116
|
"symbolId": "src/index:SecureBucketProps"
|
|
4117
|
+
},
|
|
4118
|
+
"@gammarers/aws-secure-bucket.SecureBucketType": {
|
|
4119
|
+
"assembly": "@gammarers/aws-secure-bucket",
|
|
4120
|
+
"docs": {
|
|
4121
|
+
"custom": {
|
|
4122
|
+
"TODO": ": Not yet supported\nhttps://github.com/aws/jsii/issues/4468\ntype omitKeys = 'publicReadAccess|enforceSSL|blockPublicAccess';\nexport interface CodePipelineStateChangeDetectionEventRuleProps extends Omit<s3.BucketProps, 'publicReadAccess'> {}"
|
|
4123
|
+
},
|
|
4124
|
+
"stability": "stable"
|
|
4125
|
+
},
|
|
4126
|
+
"fqn": "@gammarers/aws-secure-bucket.SecureBucketType",
|
|
4127
|
+
"kind": "enum",
|
|
4128
|
+
"locationInModule": {
|
|
4129
|
+
"filename": "src/index.ts",
|
|
4130
|
+
"line": 13
|
|
4131
|
+
},
|
|
4132
|
+
"members": [
|
|
4133
|
+
{
|
|
4134
|
+
"docs": {
|
|
4135
|
+
"stability": "stable"
|
|
4136
|
+
},
|
|
4137
|
+
"name": "SINGLE_PIPELINE_ARTIFACT"
|
|
4138
|
+
},
|
|
4139
|
+
{
|
|
4140
|
+
"docs": {
|
|
4141
|
+
"stability": "stable"
|
|
4142
|
+
},
|
|
4143
|
+
"name": "MULTI_PIPELINE_ARTIFACT"
|
|
4144
|
+
},
|
|
4145
|
+
{
|
|
4146
|
+
"docs": {
|
|
4147
|
+
"stability": "stable"
|
|
4148
|
+
},
|
|
4149
|
+
"name": "CLOUD_FRONT_ORIGIN"
|
|
4150
|
+
},
|
|
4151
|
+
{
|
|
4152
|
+
"docs": {
|
|
4153
|
+
"stability": "stable"
|
|
4154
|
+
},
|
|
4155
|
+
"name": "DEFAULT"
|
|
4156
|
+
}
|
|
4157
|
+
],
|
|
4158
|
+
"name": "SecureBucketType",
|
|
4159
|
+
"symbolId": "src/index:SecureBucketType"
|
|
4099
4160
|
}
|
|
4100
4161
|
},
|
|
4101
|
-
"version": "2.
|
|
4102
|
-
"fingerprint": "
|
|
4162
|
+
"version": "2.4.0",
|
|
4163
|
+
"fingerprint": "WXjg1hgXN71zSREljws+nMdytGLMlnDNM1CR3DRo4e4="
|
|
4103
4164
|
}
|
package/API.md
CHANGED
|
@@ -1226,7 +1226,8 @@ const secureBucketProps: SecureBucketProps = { ... }
|
|
|
1226
1226
|
| <code><a href="#@gammarers/aws-secure-bucket.SecureBucketProps.property.websiteIndexDocument">websiteIndexDocument</a></code> | <code>string</code> | The name of the index document (e.g. "index.html") for the website. Enables static website hosting for this bucket. |
|
|
1227
1227
|
| <code><a href="#@gammarers/aws-secure-bucket.SecureBucketProps.property.websiteRedirect">websiteRedirect</a></code> | <code>aws-cdk-lib.aws_s3.RedirectTarget</code> | Specifies the redirect behavior of all requests to a website endpoint of a bucket. |
|
|
1228
1228
|
| <code><a href="#@gammarers/aws-secure-bucket.SecureBucketProps.property.websiteRoutingRules">websiteRoutingRules</a></code> | <code>aws-cdk-lib.aws_s3.RoutingRule[]</code> | Rules that define when a redirect is applied and the redirect behavior. |
|
|
1229
|
-
| <code><a href="#@gammarers/aws-secure-bucket.SecureBucketProps.property.
|
|
1229
|
+
| <code><a href="#@gammarers/aws-secure-bucket.SecureBucketProps.property.bucketType">bucketType</a></code> | <code><a href="#@gammarers/aws-secure-bucket.SecureBucketType">SecureBucketType</a></code> | The type of the bucket. |
|
|
1230
|
+
| <code><a href="#@gammarers/aws-secure-bucket.SecureBucketProps.property.isCloudFrontOriginBucket">isCloudFrontOriginBucket</a></code> | <code>boolean</code> | If your are using it as the CloudFront origin bucket, set it to true. |
|
|
1230
1231
|
| <code><a href="#@gammarers/aws-secure-bucket.SecureBucketProps.property.isPipelineArtifactBucket">isPipelineArtifactBucket</a></code> | <code>boolean</code> | If you are setting a custom Qualifier and using it as the artifact bucket for the CDK pipeline, set it to true. |
|
|
1231
1232
|
|
|
1232
1233
|
---
|
|
@@ -1726,19 +1727,37 @@ Rules that define when a redirect is applied and the redirect behavior.
|
|
|
1726
1727
|
|
|
1727
1728
|
---
|
|
1728
1729
|
|
|
1729
|
-
##### `
|
|
1730
|
+
##### `bucketType`<sup>Optional</sup> <a name="bucketType" id="@gammarers/aws-secure-bucket.SecureBucketProps.property.bucketType"></a>
|
|
1731
|
+
|
|
1732
|
+
```typescript
|
|
1733
|
+
public readonly bucketType: SecureBucketType;
|
|
1734
|
+
```
|
|
1735
|
+
|
|
1736
|
+
- *Type:* <a href="#@gammarers/aws-secure-bucket.SecureBucketType">SecureBucketType</a>
|
|
1737
|
+
- *Default:* SecureBucketType.DEFAULT
|
|
1738
|
+
|
|
1739
|
+
The type of the bucket.
|
|
1740
|
+
|
|
1741
|
+
---
|
|
1742
|
+
|
|
1743
|
+
##### ~~`isCloudFrontOriginBucket`~~<sup>Optional</sup> <a name="isCloudFrontOriginBucket" id="@gammarers/aws-secure-bucket.SecureBucketProps.property.isCloudFrontOriginBucket"></a>
|
|
1744
|
+
|
|
1745
|
+
- *Deprecated:* This property is deprecated. Use the bucketType property instead.
|
|
1730
1746
|
|
|
1731
1747
|
```typescript
|
|
1732
1748
|
public readonly isCloudFrontOriginBucket: boolean;
|
|
1733
1749
|
```
|
|
1734
1750
|
|
|
1735
1751
|
- *Type:* boolean
|
|
1752
|
+
- *Default:* false
|
|
1736
1753
|
|
|
1737
|
-
If your are using it as the CloudFront
|
|
1754
|
+
If your are using it as the CloudFront origin bucket, set it to true.
|
|
1738
1755
|
|
|
1739
1756
|
---
|
|
1740
1757
|
|
|
1741
|
-
#####
|
|
1758
|
+
##### ~~`isPipelineArtifactBucket`~~<sup>Optional</sup> <a name="isPipelineArtifactBucket" id="@gammarers/aws-secure-bucket.SecureBucketProps.property.isPipelineArtifactBucket"></a>
|
|
1759
|
+
|
|
1760
|
+
- *Deprecated:* This property is deprecated. Use the bucketType property instead.
|
|
1742
1761
|
|
|
1743
1762
|
```typescript
|
|
1744
1763
|
public readonly isPipelineArtifactBucket: boolean;
|
|
@@ -1753,3 +1772,37 @@ If you are setting a custom Qualifier and using it as the artifact bucket for th
|
|
|
1753
1772
|
|
|
1754
1773
|
|
|
1755
1774
|
|
|
1775
|
+
## Enums <a name="Enums" id="Enums"></a>
|
|
1776
|
+
|
|
1777
|
+
### SecureBucketType <a name="SecureBucketType" id="@gammarers/aws-secure-bucket.SecureBucketType"></a>
|
|
1778
|
+
|
|
1779
|
+
#### Members <a name="Members" id="Members"></a>
|
|
1780
|
+
|
|
1781
|
+
| **Name** | **Description** |
|
|
1782
|
+
| --- | --- |
|
|
1783
|
+
| <code><a href="#@gammarers/aws-secure-bucket.SecureBucketType.SINGLE_PIPELINE_ARTIFACT">SINGLE_PIPELINE_ARTIFACT</a></code> | *No description.* |
|
|
1784
|
+
| <code><a href="#@gammarers/aws-secure-bucket.SecureBucketType.MULTI_PIPELINE_ARTIFACT">MULTI_PIPELINE_ARTIFACT</a></code> | *No description.* |
|
|
1785
|
+
| <code><a href="#@gammarers/aws-secure-bucket.SecureBucketType.CLOUD_FRONT_ORIGIN">CLOUD_FRONT_ORIGIN</a></code> | *No description.* |
|
|
1786
|
+
| <code><a href="#@gammarers/aws-secure-bucket.SecureBucketType.DEFAULT">DEFAULT</a></code> | *No description.* |
|
|
1787
|
+
|
|
1788
|
+
---
|
|
1789
|
+
|
|
1790
|
+
##### `SINGLE_PIPELINE_ARTIFACT` <a name="SINGLE_PIPELINE_ARTIFACT" id="@gammarers/aws-secure-bucket.SecureBucketType.SINGLE_PIPELINE_ARTIFACT"></a>
|
|
1791
|
+
|
|
1792
|
+
---
|
|
1793
|
+
|
|
1794
|
+
|
|
1795
|
+
##### `MULTI_PIPELINE_ARTIFACT` <a name="MULTI_PIPELINE_ARTIFACT" id="@gammarers/aws-secure-bucket.SecureBucketType.MULTI_PIPELINE_ARTIFACT"></a>
|
|
1796
|
+
|
|
1797
|
+
---
|
|
1798
|
+
|
|
1799
|
+
|
|
1800
|
+
##### `CLOUD_FRONT_ORIGIN` <a name="CLOUD_FRONT_ORIGIN" id="@gammarers/aws-secure-bucket.SecureBucketType.CLOUD_FRONT_ORIGIN"></a>
|
|
1801
|
+
|
|
1802
|
+
---
|
|
1803
|
+
|
|
1804
|
+
|
|
1805
|
+
##### `DEFAULT` <a name="DEFAULT" id="@gammarers/aws-secure-bucket.SecureBucketType.DEFAULT"></a>
|
|
1806
|
+
|
|
1807
|
+
---
|
|
1808
|
+
|
package/README.md
CHANGED
|
@@ -21,8 +21,9 @@ This is a Simple S3 Secure Bucket.
|
|
|
21
21
|
|
|
22
22
|
| **Name** | **Type** | **Default** | **Description** |
|
|
23
23
|
| --- | --- | --- | --- |
|
|
24
|
-
|
|
|
25
|
-
|
|
|
24
|
+
| bucketType | SecureBucketType | SecureBucketType.DEFAULT | The type of the bucket. Available types: DEFAULT, SINGLE_PIPELINE_ARTIFACT, MULTI_PIPELINE_ARTIFACT, CLOUD_FRONT_ORIGIN |
|
|
25
|
+
| isPipelineArtifactBucket | boolean | false | ⚠️ **Deprecated**: Use bucketType property instead. If you are setting a custom Qualifier and using it as the artifact bucket for the CDK pipeline, set it to true. |
|
|
26
|
+
| isCloudFrontOriginBucket | boolean | false | ⚠️ **Deprecated**: Use bucketType property instead. If you are using it as the CloudFront origin bucket, set it to true. |
|
|
26
27
|
|
|
27
28
|
## Install
|
|
28
29
|
|
|
@@ -40,18 +41,6 @@ npm install @gammarers/aws-secure-bucket
|
|
|
40
41
|
yarn add @gammarers/aws-secure-bucket
|
|
41
42
|
```
|
|
42
43
|
|
|
43
|
-
#### install by pnpm
|
|
44
|
-
|
|
45
|
-
```shell
|
|
46
|
-
pnpm add @gammarers/aws-secure-bucket
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
#### install by bun
|
|
50
|
-
|
|
51
|
-
```shell
|
|
52
|
-
bun add @gammarers/aws-secure-bucket
|
|
53
|
-
```
|
|
54
|
-
|
|
55
44
|
### Python
|
|
56
45
|
|
|
57
46
|
```shell
|
package/lib/index.d.ts
CHANGED
|
@@ -6,17 +6,30 @@ import { Construct } from 'constructs';
|
|
|
6
6
|
* type omitKeys = 'publicReadAccess|enforceSSL|blockPublicAccess';
|
|
7
7
|
* export interface CodePipelineStateChangeDetectionEventRuleProps extends Omit<s3.BucketProps, 'publicReadAccess'> {}
|
|
8
8
|
*/
|
|
9
|
+
export declare enum SecureBucketType {
|
|
10
|
+
SINGLE_PIPELINE_ARTIFACT = "single-pipeline-artifact",
|
|
11
|
+
MULTI_PIPELINE_ARTIFACT = "multi-pipeline-artifact",
|
|
12
|
+
CLOUD_FRONT_ORIGIN = "cloudfront-origin",
|
|
13
|
+
DEFAULT = "default"
|
|
14
|
+
}
|
|
9
15
|
export interface SecureBucketProps extends s3.BucketProps {
|
|
10
16
|
/**
|
|
11
17
|
* If you are setting a custom Qualifier and using it as the artifact bucket for the CDK pipeline, set it to true.
|
|
12
|
-
*
|
|
18
|
+
* @deprecated This property is deprecated. Use the bucketType property instead.
|
|
13
19
|
* @default false
|
|
14
20
|
*/
|
|
15
21
|
readonly isPipelineArtifactBucket?: boolean;
|
|
16
22
|
/**
|
|
17
|
-
* If your are using it as the CloudFront
|
|
23
|
+
* If your are using it as the CloudFront origin bucket, set it to true.
|
|
24
|
+
* @deprecated This property is deprecated. Use the bucketType property instead.
|
|
25
|
+
* @default false
|
|
18
26
|
*/
|
|
19
27
|
readonly isCloudFrontOriginBucket?: boolean;
|
|
28
|
+
/**
|
|
29
|
+
* The type of the bucket.
|
|
30
|
+
* @default SecureBucketType.DEFAULT
|
|
31
|
+
*/
|
|
32
|
+
readonly bucketType?: SecureBucketType;
|
|
20
33
|
}
|
|
21
34
|
export declare class SecureBucket extends s3.Bucket {
|
|
22
35
|
constructor(scope: Construct, id: string, props?: SecureBucketProps);
|
package/lib/index.js
CHANGED
|
@@ -1,19 +1,34 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var _a;
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.SecureBucket = void 0;
|
|
4
|
+
exports.SecureBucket = exports.SecureBucketType = void 0;
|
|
5
5
|
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
6
|
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
7
7
|
const iam = require("aws-cdk-lib/aws-iam");
|
|
8
8
|
const s3 = require("aws-cdk-lib/aws-s3");
|
|
9
|
+
/**
|
|
10
|
+
* @TODO: Not yet supported
|
|
11
|
+
* https://github.com/aws/jsii/issues/4468
|
|
12
|
+
* type omitKeys = 'publicReadAccess|enforceSSL|blockPublicAccess';
|
|
13
|
+
* export interface CodePipelineStateChangeDetectionEventRuleProps extends Omit<s3.BucketProps, 'publicReadAccess'> {}
|
|
14
|
+
*/
|
|
15
|
+
var SecureBucketType;
|
|
16
|
+
(function (SecureBucketType) {
|
|
17
|
+
SecureBucketType["SINGLE_PIPELINE_ARTIFACT"] = "single-pipeline-artifact";
|
|
18
|
+
SecureBucketType["MULTI_PIPELINE_ARTIFACT"] = "multi-pipeline-artifact";
|
|
19
|
+
SecureBucketType["CLOUD_FRONT_ORIGIN"] = "cloudfront-origin";
|
|
20
|
+
SecureBucketType["DEFAULT"] = "default";
|
|
21
|
+
})(SecureBucketType || (exports.SecureBucketType = SecureBucketType = {}));
|
|
9
22
|
class SecureBucket extends s3.Bucket {
|
|
10
23
|
constructor(scope, id, props) {
|
|
24
|
+
const bucketType = props?.bucketType || SecureBucketType.DEFAULT;
|
|
11
25
|
super(scope, id, {
|
|
12
26
|
...props,
|
|
13
27
|
removalPolicy: aws_cdk_lib_1.RemovalPolicy.RETAIN,
|
|
14
28
|
// encryption: props?.encryption || s3.BucketEncryption.KMS_MANAGED,
|
|
15
29
|
encryption: (() => {
|
|
16
|
-
if (props?.isCloudFrontOriginBucket === true
|
|
30
|
+
if (props?.isCloudFrontOriginBucket === true
|
|
31
|
+
|| bucketType === SecureBucketType.CLOUD_FRONT_ORIGIN) {
|
|
17
32
|
return s3.BucketEncryption.S3_MANAGED;
|
|
18
33
|
}
|
|
19
34
|
return props?.encryption || s3.BucketEncryption.KMS_MANAGED;
|
|
@@ -44,7 +59,9 @@ class SecureBucket extends s3.Bucket {
|
|
|
44
59
|
// 👇 Get account & region
|
|
45
60
|
const account = aws_cdk_lib_1.Stack.of(this).account;
|
|
46
61
|
const region = aws_cdk_lib_1.Stack.of(this).region;
|
|
47
|
-
if (props?.isPipelineArtifactBucket
|
|
62
|
+
if (props?.isPipelineArtifactBucket
|
|
63
|
+
|| bucketType === SecureBucketType.SINGLE_PIPELINE_ARTIFACT
|
|
64
|
+
|| bucketType === SecureBucketType.MULTI_PIPELINE_ARTIFACT) {
|
|
48
65
|
// 👇 Get qualifier
|
|
49
66
|
// const qualifier = Stack.of(this).synthesizer.bootstrapQualifier || defaultQualifier;
|
|
50
67
|
const qualifier = aws_cdk_lib_1.Stack.of(this).synthesizer.bootstrapQualifier;
|
|
@@ -68,5 +85,5 @@ class SecureBucket extends s3.Bucket {
|
|
|
68
85
|
}
|
|
69
86
|
exports.SecureBucket = SecureBucket;
|
|
70
87
|
_a = JSII_RTTI_SYMBOL_1;
|
|
71
|
-
SecureBucket[_a] = { fqn: "@gammarers/aws-secure-bucket.SecureBucket", version: "2.
|
|
72
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
88
|
+
SecureBucket[_a] = { fqn: "@gammarers/aws-secure-bucket.SecureBucket", version: "2.4.0" };
|
|
89
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2Q0FBNEU7QUFDNUUsMkNBQTJDO0FBQzNDLHlDQUF5QztBQUd6Qzs7Ozs7R0FLRztBQUVILElBQVksZ0JBS1g7QUFMRCxXQUFZLGdCQUFnQjtJQUMxQix5RUFBcUQsQ0FBQTtJQUNyRCx1RUFBbUQsQ0FBQTtJQUNuRCw0REFBd0MsQ0FBQTtJQUN4Qyx1Q0FBbUIsQ0FBQTtBQUNyQixDQUFDLEVBTFcsZ0JBQWdCLGdDQUFoQixnQkFBZ0IsUUFLM0I7QUF5QkQsTUFBYSxZQUFhLFNBQVEsRUFBRSxDQUFDLE1BQU07SUFDekMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUF5QjtRQUNqRSxNQUFNLFVBQVUsR0FBRyxLQUFLLEVBQUUsVUFBVSxJQUFJLGdCQUFnQixDQUFDLE9BQU8sQ0FBQztRQUNqRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUNmLEdBQUcsS0FBSztZQUNSLGFBQWEsRUFBRSwyQkFBYSxDQUFDLE1BQU07WUFDbkMsb0VBQW9FO1lBQ3BFLFVBQVUsRUFBRSxDQUFDLEdBQUcsRUFBRTtnQkFDaEIsSUFBSSxLQUFLLEVBQUUsd0JBQXdCLEtBQUssSUFBSTt1QkFDdkMsVUFBVSxLQUFLLGdCQUFnQixDQUFDLGtCQUFrQixFQUFFLENBQUM7b0JBQ3hELE9BQU8sRUFBRSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQztnQkFDeEMsQ0FBQztnQkFDRCxPQUFPLEtBQUssRUFBRSxVQUFVLElBQUksRUFBRSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQztZQUM5RCxDQUFDLENBQUMsRUFBRTtZQUNKLGFBQWEsRUFBRSxDQUFDLEdBQUcsRUFBRTtnQkFDbkIsSUFBSSxDQUFDLEtBQUssRUFBRSxhQUFhLEVBQUUsQ0FBQztvQkFDMUIsT0FBTyxFQUFFLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDO2dCQUN4QyxDQUFDO2dCQUNELE9BQU8sS0FBSyxDQUFDLGFBQWEsQ0FBQztZQUM3QixDQUFDLENBQUMsRUFBRTtZQUNKLGtCQUFrQixFQUFFLFNBQVM7WUFDN0IsZ0JBQWdCLEVBQUUsS0FBSztZQUN2QixpQkFBaUIsRUFBRSxFQUFFLENBQUMsaUJBQWlCLENBQUMsU0FBUztZQUNqRCxVQUFVLEVBQUUsSUFBSTtZQUNoQixTQUFTLEVBQUUsS0FBSyxFQUFFLFNBQVMsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUk7WUFDbEUsZUFBZSxFQUFFLENBQUMsR0FBRyxFQUFFO2dCQUNyQixJQUFJLEtBQUssRUFBRSxlQUFlLEVBQUUsQ0FBQztvQkFDM0IsT0FBTyxLQUFLLENBQUMsZUFBZSxDQUFDO2dCQUMvQixDQUFDO2dCQUNELE9BQU8sRUFBRSxDQUFDLGVBQWUsQ0FBQyxxQkFBcUIsQ0FBQztZQUNsRCxDQUFDLENBQUMsRUFBRTtTQUNMLENBQUMsQ0FBQztRQUVILGdCQUFnQjtRQUNoQixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQTRCLENBQUM7UUFDekQsSUFBSSxLQUFLLEVBQUUsa0JBQWtCLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDdkMsU0FBUyxDQUFDLG1CQUFtQixDQUFDLHVFQUF1RSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQy9HLENBQUM7UUFFRCwwQkFBMEI7UUFDMUIsTUFBTSxPQUFPLEdBQUcsbUJBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDO1FBQ3ZDLE1BQU0sTUFBTSxHQUFHLG1CQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUVyQyxJQUFJLEtBQUssRUFBRSx3QkFBd0I7ZUFDOUIsVUFBVSxLQUFLLGdCQUFnQixDQUFDLHdCQUF3QjtlQUN4RCxVQUFVLEtBQUssZ0JBQWdCLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztZQUU3RCxtQkFBbUI7WUFDbkIsdUZBQXVGO1lBQ3ZGLE1BQU0sU0FBUyxHQUFHLG1CQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQztZQUVoRSw0Q0FBNEM7WUFDNUMsSUFBSSxTQUFTLElBQUksQ0FBQyxTQUFTLElBQUkscUNBQXVCLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDO2dCQUUxRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxHQUFHLENBQUMsZUFBZSxDQUFDO29CQUMvQyxPQUFPLEVBQUU7d0JBQ1AsTUFBTTtxQkFDUDtvQkFDRCxTQUFTLEVBQUU7d0JBQ1QsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFO3dCQUNuQixHQUFHLElBQUksQ0FBQyxTQUFTLElBQUk7cUJBQ3RCO29CQUNELFVBQVUsRUFBRTt3QkFDVixJQUFJLEdBQUcsQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLE9BQU8sYUFBYSxTQUFTLGdCQUFnQixPQUFPLElBQUksTUFBTSxFQUFFLENBQUM7cUJBQ3ZHO2lCQUNGLENBQUMsQ0FBQyxDQUFDO1lBQ04sQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDOztBQXBFSCxvQ0FxRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZWZhdWx0U3RhY2tTeW50aGVzaXplciwgUmVtb3ZhbFBvbGljeSwgU3RhY2sgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgKiBhcyBzMyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczMnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5cbi8qKlxuICogQFRPRE86IE5vdCB5ZXQgc3VwcG9ydGVkXG4gKiBodHRwczovL2dpdGh1Yi5jb20vYXdzL2pzaWkvaXNzdWVzLzQ0NjhcbiAqIHR5cGUgb21pdEtleXMgPSAncHVibGljUmVhZEFjY2Vzc3xlbmZvcmNlU1NMfGJsb2NrUHVibGljQWNjZXNzJztcbiAqIGV4cG9ydCBpbnRlcmZhY2UgQ29kZVBpcGVsaW5lU3RhdGVDaGFuZ2VEZXRlY3Rpb25FdmVudFJ1bGVQcm9wcyBleHRlbmRzIE9taXQ8czMuQnVja2V0UHJvcHMsICdwdWJsaWNSZWFkQWNjZXNzJz4ge31cbiAqL1xuXG5leHBvcnQgZW51bSBTZWN1cmVCdWNrZXRUeXBlIHtcbiAgU0lOR0xFX1BJUEVMSU5FX0FSVElGQUNUID0gJ3NpbmdsZS1waXBlbGluZS1hcnRpZmFjdCcsXG4gIE1VTFRJX1BJUEVMSU5FX0FSVElGQUNUID0gJ211bHRpLXBpcGVsaW5lLWFydGlmYWN0JyxcbiAgQ0xPVURfRlJPTlRfT1JJR0lOID0gJ2Nsb3VkZnJvbnQtb3JpZ2luJyxcbiAgREVGQVVMVCA9ICdkZWZhdWx0Jyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZWN1cmVCdWNrZXRQcm9wcyBleHRlbmRzIHMzLkJ1Y2tldFByb3BzIHtcblxuICAvKipcbiAgICogSWYgeW91IGFyZSBzZXR0aW5nIGEgY3VzdG9tIFF1YWxpZmllciBhbmQgdXNpbmcgaXQgYXMgdGhlIGFydGlmYWN0IGJ1Y2tldCBmb3IgdGhlIENESyBwaXBlbGluZSwgc2V0IGl0IHRvIHRydWUuXG4gICAqIEBkZXByZWNhdGVkIFRoaXMgcHJvcGVydHkgaXMgZGVwcmVjYXRlZC4gVXNlIHRoZSBidWNrZXRUeXBlIHByb3BlcnR5IGluc3RlYWQuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBpc1BpcGVsaW5lQXJ0aWZhY3RCdWNrZXQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBJZiB5b3VyIGFyZSB1c2luZyBpdCBhcyB0aGUgQ2xvdWRGcm9udCBvcmlnaW4gYnVja2V0LCBzZXQgaXQgdG8gdHJ1ZS5cbiAgICogQGRlcHJlY2F0ZWQgVGhpcyBwcm9wZXJ0eSBpcyBkZXByZWNhdGVkLiBVc2UgdGhlIGJ1Y2tldFR5cGUgcHJvcGVydHkgaW5zdGVhZC5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGlzQ2xvdWRGcm9udE9yaWdpbkJ1Y2tldD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSB0eXBlIG9mIHRoZSBidWNrZXQuXG4gICAqIEBkZWZhdWx0IFNlY3VyZUJ1Y2tldFR5cGUuREVGQVVMVFxuICAgKi9cbiAgcmVhZG9ubHkgYnVja2V0VHlwZT86IFNlY3VyZUJ1Y2tldFR5cGU7XG59XG5cbmV4cG9ydCBjbGFzcyBTZWN1cmVCdWNrZXQgZXh0ZW5kcyBzMy5CdWNrZXQge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wcz86IFNlY3VyZUJ1Y2tldFByb3BzKSB7XG4gICAgY29uc3QgYnVja2V0VHlwZSA9IHByb3BzPy5idWNrZXRUeXBlIHx8IFNlY3VyZUJ1Y2tldFR5cGUuREVGQVVMVDtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIC4uLnByb3BzLFxuICAgICAgcmVtb3ZhbFBvbGljeTogUmVtb3ZhbFBvbGljeS5SRVRBSU4sXG4gICAgICAvLyBlbmNyeXB0aW9uOiBwcm9wcz8uZW5jcnlwdGlvbiB8fCBzMy5CdWNrZXRFbmNyeXB0aW9uLktNU19NQU5BR0VELFxuICAgICAgZW5jcnlwdGlvbjogKCgpID0+IHtcbiAgICAgICAgaWYgKHByb3BzPy5pc0Nsb3VkRnJvbnRPcmlnaW5CdWNrZXQgPT09IHRydWVcbiAgICAgICAgICB8fCBidWNrZXRUeXBlID09PSBTZWN1cmVCdWNrZXRUeXBlLkNMT1VEX0ZST05UX09SSUdJTikge1xuICAgICAgICAgIHJldHVybiBzMy5CdWNrZXRFbmNyeXB0aW9uLlMzX01BTkFHRUQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHByb3BzPy5lbmNyeXB0aW9uIHx8IHMzLkJ1Y2tldEVuY3J5cHRpb24uS01TX01BTkFHRUQ7XG4gICAgICB9KSgpLFxuICAgICAgYWNjZXNzQ29udHJvbDogKCgpID0+IHtcbiAgICAgICAgaWYgKCFwcm9wcz8uYWNjZXNzQ29udHJvbCkge1xuICAgICAgICAgIHJldHVybiBzMy5CdWNrZXRBY2Nlc3NDb250cm9sLlBSSVZBVEU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHByb3BzLmFjY2Vzc0NvbnRyb2w7XG4gICAgICB9KSgpLFxuICAgICAgZXZlbnRCcmlkZ2VFbmFibGVkOiB1bmRlZmluZWQsXG4gICAgICBwdWJsaWNSZWFkQWNjZXNzOiBmYWxzZSxcbiAgICAgIGJsb2NrUHVibGljQWNjZXNzOiBzMy5CbG9ja1B1YmxpY0FjY2Vzcy5CTE9DS19BTEwsXG4gICAgICBlbmZvcmNlU1NMOiB0cnVlLFxuICAgICAgdmVyc2lvbmVkOiBwcm9wcz8udmVyc2lvbmVkICE9PSB1bmRlZmluZWQgPyBwcm9wcy52ZXJzaW9uZWQgOiB0cnVlLFxuICAgICAgb2JqZWN0T3duZXJzaGlwOiAoKCkgPT4ge1xuICAgICAgICBpZiAocHJvcHM/Lm9iamVjdE93bmVyc2hpcCkge1xuICAgICAgICAgIHJldHVybiBwcm9wcy5vYmplY3RPd25lcnNoaXA7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHMzLk9iamVjdE93bmVyc2hpcC5CVUNLRVRfT1dORVJfRU5GT1JDRUQ7XG4gICAgICB9KSgpLFxuICAgIH0pO1xuXG4gICAgLy8gR2V0IENmbkJ1Y2tldFxuICAgIGNvbnN0IGNmbkJ1Y2tldCA9IHRoaXMubm9kZS5kZWZhdWx0Q2hpbGQgYXMgczMuQ2ZuQnVja2V0O1xuICAgIGlmIChwcm9wcz8uZXZlbnRCcmlkZ2VFbmFibGVkID09PSB0cnVlKSB7XG4gICAgICBjZm5CdWNrZXQuYWRkUHJvcGVydHlPdmVycmlkZSgnTm90aWZpY2F0aW9uQ29uZmlndXJhdGlvbi5FdmVudEJyaWRnZUNvbmZpZ3VyYXRpb24uRXZlbnRCcmlkZ2VFbmFibGVkJywgdHJ1ZSk7XG4gICAgfVxuXG4gICAgLy8g8J+RhyBHZXQgYWNjb3VudCAmIHJlZ2lvblxuICAgIGNvbnN0IGFjY291bnQgPSBTdGFjay5vZih0aGlzKS5hY2NvdW50O1xuICAgIGNvbnN0IHJlZ2lvbiA9IFN0YWNrLm9mKHRoaXMpLnJlZ2lvbjtcblxuICAgIGlmIChwcm9wcz8uaXNQaXBlbGluZUFydGlmYWN0QnVja2V0XG4gICAgICB8fCBidWNrZXRUeXBlID09PSBTZWN1cmVCdWNrZXRUeXBlLlNJTkdMRV9QSVBFTElORV9BUlRJRkFDVFxuICAgICAgfHwgYnVja2V0VHlwZSA9PT0gU2VjdXJlQnVja2V0VHlwZS5NVUxUSV9QSVBFTElORV9BUlRJRkFDVCkge1xuXG4gICAgICAvLyDwn5GHIEdldCBxdWFsaWZpZXJcbiAgICAgIC8vIGNvbnN0IHF1YWxpZmllciA9IFN0YWNrLm9mKHRoaXMpLnN5bnRoZXNpemVyLmJvb3RzdHJhcFF1YWxpZmllciB8fCBkZWZhdWx0UXVhbGlmaWVyO1xuICAgICAgY29uc3QgcXVhbGlmaWVyID0gU3RhY2sub2YodGhpcykuc3ludGhlc2l6ZXIuYm9vdHN0cmFwUXVhbGlmaWVyO1xuXG4gICAgICAvLyBhZGQgcmVzb3VyY2UgcG9saWN5IHdoZW4gY3VzdG9tIHF1YWxpZmllclxuICAgICAgaWYgKHF1YWxpZmllciAmJiAocXVhbGlmaWVyICE9IERlZmF1bHRTdGFja1N5bnRoZXNpemVyLkRFRkFVTFRfUVVBTElGSUVSKSkge1xuXG4gICAgICAgIHRoaXMuYWRkVG9SZXNvdXJjZVBvbGljeShuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICAgJ3MzOionLFxuICAgICAgICAgIF0sXG4gICAgICAgICAgcmVzb3VyY2VzOiBbXG4gICAgICAgICAgICBgJHt0aGlzLmJ1Y2tldEFybn1gLFxuICAgICAgICAgICAgYCR7dGhpcy5idWNrZXRBcm59LypgLFxuICAgICAgICAgIF0sXG4gICAgICAgICAgcHJpbmNpcGFsczogW1xuICAgICAgICAgICAgbmV3IGlhbS5Bcm5QcmluY2lwYWwoYGFybjphd3M6aWFtOjoke2FjY291bnR9OnJvbGUvY2RrLSR7cXVhbGlmaWVyfS1kZXBsb3ktcm9sZS0ke2FjY291bnR9LSR7cmVnaW9ufWApLFxuICAgICAgICAgIF0sXG4gICAgICAgIH0pKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iXX0=
|
package/package.json
CHANGED
|
@@ -50,15 +50,15 @@
|
|
|
50
50
|
"eslint-plugin-import": "^2.32.0",
|
|
51
51
|
"jest": "^29.7.0",
|
|
52
52
|
"jest-junit": "^16",
|
|
53
|
-
"jsii": "5.
|
|
53
|
+
"jsii": "5.8.x",
|
|
54
54
|
"jsii-diff": "^1.113.0",
|
|
55
55
|
"jsii-docgen": "^10.5.0",
|
|
56
56
|
"jsii-pacmak": "^1.113.0",
|
|
57
|
-
"jsii-rosetta": "5.
|
|
58
|
-
"projen": "^0.95.
|
|
57
|
+
"jsii-rosetta": "5.8.x",
|
|
58
|
+
"projen": "^0.95.2",
|
|
59
59
|
"ts-jest": "^29.4.1",
|
|
60
60
|
"ts-node": "^10.9.2",
|
|
61
|
-
"typescript": "5.
|
|
61
|
+
"typescript": "5.8.x"
|
|
62
62
|
},
|
|
63
63
|
"peerDependencies": {
|
|
64
64
|
"aws-cdk-lib": "^2.189.1",
|
|
@@ -81,7 +81,7 @@
|
|
|
81
81
|
"publishConfig": {
|
|
82
82
|
"access": "public"
|
|
83
83
|
},
|
|
84
|
-
"version": "2.
|
|
84
|
+
"version": "2.4.0",
|
|
85
85
|
"jest": {
|
|
86
86
|
"coverageProvider": "v8",
|
|
87
87
|
"testMatch": [
|