cdk-ecr-deployment 1.0.1 → 2.0.3

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.
Files changed (139) hide show
  1. package/.gitattributes +2 -1
  2. package/.jsii +2685 -574
  3. package/API.md +8 -8
  4. package/README.md +2 -0
  5. package/lib/index.d.ts +2 -4
  6. package/lib/index.js +16 -18
  7. package/node_modules/@types/cacheable-request/node_modules/@types/node/README.md +1 -1
  8. package/node_modules/@types/cacheable-request/node_modules/@types/node/assert.d.ts +1 -1
  9. package/node_modules/@types/cacheable-request/node_modules/@types/node/async_hooks.d.ts +7 -3
  10. package/node_modules/@types/cacheable-request/node_modules/@types/node/buffer.d.ts +9 -9
  11. package/node_modules/@types/cacheable-request/node_modules/@types/node/child_process.d.ts +1 -1
  12. package/node_modules/@types/cacheable-request/node_modules/@types/node/cluster.d.ts +1 -1
  13. package/node_modules/@types/cacheable-request/node_modules/@types/node/console.d.ts +1 -1
  14. package/node_modules/@types/cacheable-request/node_modules/@types/node/crypto.d.ts +2 -2
  15. package/node_modules/@types/cacheable-request/node_modules/@types/node/dgram.d.ts +2 -2
  16. package/node_modules/@types/cacheable-request/node_modules/@types/node/diagnostics_channel.d.ts +1 -1
  17. package/node_modules/@types/cacheable-request/node_modules/@types/node/dns/promises.d.ts +12 -10
  18. package/node_modules/@types/cacheable-request/node_modules/@types/node/dns.d.ts +17 -12
  19. package/node_modules/@types/cacheable-request/node_modules/@types/node/domain.d.ts +1 -1
  20. package/node_modules/@types/cacheable-request/node_modules/@types/node/events.d.ts +2 -2
  21. package/node_modules/@types/cacheable-request/node_modules/@types/node/fs/promises.d.ts +5 -5
  22. package/node_modules/@types/cacheable-request/node_modules/@types/node/fs.d.ts +62 -11
  23. package/node_modules/@types/cacheable-request/node_modules/@types/node/http.d.ts +20 -3
  24. package/node_modules/@types/cacheable-request/node_modules/@types/node/http2.d.ts +2 -2
  25. package/node_modules/@types/cacheable-request/node_modules/@types/node/https.d.ts +1 -1
  26. package/node_modules/@types/cacheable-request/node_modules/@types/node/index.d.ts +1 -1
  27. package/node_modules/@types/cacheable-request/node_modules/@types/node/inspector.d.ts +4 -5
  28. package/node_modules/@types/cacheable-request/node_modules/@types/node/net.d.ts +11 -11
  29. package/node_modules/@types/cacheable-request/node_modules/@types/node/os.d.ts +1 -1
  30. package/node_modules/@types/cacheable-request/node_modules/@types/node/package.json +2 -2
  31. package/node_modules/@types/cacheable-request/node_modules/@types/node/path.d.ts +1 -1
  32. package/node_modules/@types/cacheable-request/node_modules/@types/node/perf_hooks.d.ts +4 -4
  33. package/node_modules/@types/cacheable-request/node_modules/@types/node/punycode.d.ts +1 -1
  34. package/node_modules/@types/cacheable-request/node_modules/@types/node/querystring.d.ts +1 -1
  35. package/node_modules/@types/cacheable-request/node_modules/@types/node/readline.d.ts +121 -14
  36. package/node_modules/@types/cacheable-request/node_modules/@types/node/repl.d.ts +1 -1
  37. package/node_modules/@types/cacheable-request/node_modules/@types/node/stream/web.d.ts +3 -65
  38. package/node_modules/@types/cacheable-request/node_modules/@types/node/stream.d.ts +2 -2
  39. package/node_modules/@types/cacheable-request/node_modules/@types/node/string_decoder.d.ts +1 -1
  40. package/node_modules/@types/cacheable-request/node_modules/@types/node/timers.d.ts +1 -1
  41. package/node_modules/@types/cacheable-request/node_modules/@types/node/tls.d.ts +1 -1
  42. package/node_modules/@types/cacheable-request/node_modules/@types/node/trace_events.d.ts +1 -1
  43. package/node_modules/@types/cacheable-request/node_modules/@types/node/tty.d.ts +1 -1
  44. package/node_modules/@types/cacheable-request/node_modules/@types/node/url.d.ts +58 -18
  45. package/node_modules/@types/cacheable-request/node_modules/@types/node/util.d.ts +3 -3
  46. package/node_modules/@types/cacheable-request/node_modules/@types/node/v8.d.ts +3 -3
  47. package/node_modules/@types/cacheable-request/node_modules/@types/node/vm.d.ts +1 -1
  48. package/node_modules/@types/cacheable-request/node_modules/@types/node/wasi.d.ts +1 -1
  49. package/node_modules/@types/cacheable-request/node_modules/@types/node/worker_threads.d.ts +4 -4
  50. package/node_modules/@types/cacheable-request/node_modules/@types/node/zlib.d.ts +1 -1
  51. package/node_modules/@types/keyv/node_modules/@types/node/README.md +1 -1
  52. package/node_modules/@types/keyv/node_modules/@types/node/assert.d.ts +1 -1
  53. package/node_modules/@types/keyv/node_modules/@types/node/async_hooks.d.ts +7 -3
  54. package/node_modules/@types/keyv/node_modules/@types/node/buffer.d.ts +9 -9
  55. package/node_modules/@types/keyv/node_modules/@types/node/child_process.d.ts +1 -1
  56. package/node_modules/@types/keyv/node_modules/@types/node/cluster.d.ts +1 -1
  57. package/node_modules/@types/keyv/node_modules/@types/node/console.d.ts +1 -1
  58. package/node_modules/@types/keyv/node_modules/@types/node/crypto.d.ts +2 -2
  59. package/node_modules/@types/keyv/node_modules/@types/node/dgram.d.ts +2 -2
  60. package/node_modules/@types/keyv/node_modules/@types/node/diagnostics_channel.d.ts +1 -1
  61. package/node_modules/@types/keyv/node_modules/@types/node/dns/promises.d.ts +12 -10
  62. package/node_modules/@types/keyv/node_modules/@types/node/dns.d.ts +17 -12
  63. package/node_modules/@types/keyv/node_modules/@types/node/domain.d.ts +1 -1
  64. package/node_modules/@types/keyv/node_modules/@types/node/events.d.ts +2 -2
  65. package/node_modules/@types/keyv/node_modules/@types/node/fs/promises.d.ts +5 -5
  66. package/node_modules/@types/keyv/node_modules/@types/node/fs.d.ts +62 -11
  67. package/node_modules/@types/keyv/node_modules/@types/node/http.d.ts +20 -3
  68. package/node_modules/@types/keyv/node_modules/@types/node/http2.d.ts +2 -2
  69. package/node_modules/@types/keyv/node_modules/@types/node/https.d.ts +1 -1
  70. package/node_modules/@types/keyv/node_modules/@types/node/index.d.ts +1 -1
  71. package/node_modules/@types/keyv/node_modules/@types/node/inspector.d.ts +4 -5
  72. package/node_modules/@types/keyv/node_modules/@types/node/net.d.ts +11 -11
  73. package/node_modules/@types/keyv/node_modules/@types/node/os.d.ts +1 -1
  74. package/node_modules/@types/keyv/node_modules/@types/node/package.json +2 -2
  75. package/node_modules/@types/keyv/node_modules/@types/node/path.d.ts +1 -1
  76. package/node_modules/@types/keyv/node_modules/@types/node/perf_hooks.d.ts +4 -4
  77. package/node_modules/@types/keyv/node_modules/@types/node/punycode.d.ts +1 -1
  78. package/node_modules/@types/keyv/node_modules/@types/node/querystring.d.ts +1 -1
  79. package/node_modules/@types/keyv/node_modules/@types/node/readline.d.ts +121 -14
  80. package/node_modules/@types/keyv/node_modules/@types/node/repl.d.ts +1 -1
  81. package/node_modules/@types/keyv/node_modules/@types/node/stream/web.d.ts +3 -65
  82. package/node_modules/@types/keyv/node_modules/@types/node/stream.d.ts +2 -2
  83. package/node_modules/@types/keyv/node_modules/@types/node/string_decoder.d.ts +1 -1
  84. package/node_modules/@types/keyv/node_modules/@types/node/timers.d.ts +1 -1
  85. package/node_modules/@types/keyv/node_modules/@types/node/tls.d.ts +1 -1
  86. package/node_modules/@types/keyv/node_modules/@types/node/trace_events.d.ts +1 -1
  87. package/node_modules/@types/keyv/node_modules/@types/node/tty.d.ts +1 -1
  88. package/node_modules/@types/keyv/node_modules/@types/node/url.d.ts +58 -18
  89. package/node_modules/@types/keyv/node_modules/@types/node/util.d.ts +3 -3
  90. package/node_modules/@types/keyv/node_modules/@types/node/v8.d.ts +3 -3
  91. package/node_modules/@types/keyv/node_modules/@types/node/vm.d.ts +1 -1
  92. package/node_modules/@types/keyv/node_modules/@types/node/wasi.d.ts +1 -1
  93. package/node_modules/@types/keyv/node_modules/@types/node/worker_threads.d.ts +4 -4
  94. package/node_modules/@types/keyv/node_modules/@types/node/zlib.d.ts +1 -1
  95. package/node_modules/@types/responselike/node_modules/@types/node/README.md +1 -1
  96. package/node_modules/@types/responselike/node_modules/@types/node/assert.d.ts +1 -1
  97. package/node_modules/@types/responselike/node_modules/@types/node/async_hooks.d.ts +7 -3
  98. package/node_modules/@types/responselike/node_modules/@types/node/buffer.d.ts +9 -9
  99. package/node_modules/@types/responselike/node_modules/@types/node/child_process.d.ts +1 -1
  100. package/node_modules/@types/responselike/node_modules/@types/node/cluster.d.ts +1 -1
  101. package/node_modules/@types/responselike/node_modules/@types/node/console.d.ts +1 -1
  102. package/node_modules/@types/responselike/node_modules/@types/node/crypto.d.ts +2 -2
  103. package/node_modules/@types/responselike/node_modules/@types/node/dgram.d.ts +2 -2
  104. package/node_modules/@types/responselike/node_modules/@types/node/diagnostics_channel.d.ts +1 -1
  105. package/node_modules/@types/responselike/node_modules/@types/node/dns/promises.d.ts +12 -10
  106. package/node_modules/@types/responselike/node_modules/@types/node/dns.d.ts +17 -12
  107. package/node_modules/@types/responselike/node_modules/@types/node/domain.d.ts +1 -1
  108. package/node_modules/@types/responselike/node_modules/@types/node/events.d.ts +2 -2
  109. package/node_modules/@types/responselike/node_modules/@types/node/fs/promises.d.ts +5 -5
  110. package/node_modules/@types/responselike/node_modules/@types/node/fs.d.ts +62 -11
  111. package/node_modules/@types/responselike/node_modules/@types/node/http.d.ts +20 -3
  112. package/node_modules/@types/responselike/node_modules/@types/node/http2.d.ts +2 -2
  113. package/node_modules/@types/responselike/node_modules/@types/node/https.d.ts +1 -1
  114. package/node_modules/@types/responselike/node_modules/@types/node/index.d.ts +1 -1
  115. package/node_modules/@types/responselike/node_modules/@types/node/inspector.d.ts +4 -5
  116. package/node_modules/@types/responselike/node_modules/@types/node/net.d.ts +11 -11
  117. package/node_modules/@types/responselike/node_modules/@types/node/os.d.ts +1 -1
  118. package/node_modules/@types/responselike/node_modules/@types/node/package.json +2 -2
  119. package/node_modules/@types/responselike/node_modules/@types/node/path.d.ts +1 -1
  120. package/node_modules/@types/responselike/node_modules/@types/node/perf_hooks.d.ts +4 -4
  121. package/node_modules/@types/responselike/node_modules/@types/node/punycode.d.ts +1 -1
  122. package/node_modules/@types/responselike/node_modules/@types/node/querystring.d.ts +1 -1
  123. package/node_modules/@types/responselike/node_modules/@types/node/readline.d.ts +121 -14
  124. package/node_modules/@types/responselike/node_modules/@types/node/repl.d.ts +1 -1
  125. package/node_modules/@types/responselike/node_modules/@types/node/stream/web.d.ts +3 -65
  126. package/node_modules/@types/responselike/node_modules/@types/node/stream.d.ts +2 -2
  127. package/node_modules/@types/responselike/node_modules/@types/node/string_decoder.d.ts +1 -1
  128. package/node_modules/@types/responselike/node_modules/@types/node/timers.d.ts +1 -1
  129. package/node_modules/@types/responselike/node_modules/@types/node/tls.d.ts +1 -1
  130. package/node_modules/@types/responselike/node_modules/@types/node/trace_events.d.ts +1 -1
  131. package/node_modules/@types/responselike/node_modules/@types/node/tty.d.ts +1 -1
  132. package/node_modules/@types/responselike/node_modules/@types/node/url.d.ts +58 -18
  133. package/node_modules/@types/responselike/node_modules/@types/node/util.d.ts +3 -3
  134. package/node_modules/@types/responselike/node_modules/@types/node/v8.d.ts +3 -3
  135. package/node_modules/@types/responselike/node_modules/@types/node/vm.d.ts +1 -1
  136. package/node_modules/@types/responselike/node_modules/@types/node/wasi.d.ts +1 -1
  137. package/node_modules/@types/responselike/node_modules/@types/node/worker_threads.d.ts +4 -4
  138. package/node_modules/@types/responselike/node_modules/@types/node/zlib.d.ts +1 -1
  139. package/package.json +14 -22
package/API.md CHANGED
@@ -58,8 +58,8 @@ Name | Type | Description
58
58
 
59
59
 
60
60
 
61
- __Implements__: [IConstruct](#constructs-iconstruct), [IConstruct](#aws-cdk-core-iconstruct), [IConstruct](#constructs-iconstruct), [IDependable](#aws-cdk-core-idependable)
62
- __Extends__: [Construct](#aws-cdk-core-construct)
61
+ __Implements__: [IConstruct](#constructs-iconstruct), [IDependable](#constructs-idependable)
62
+ __Extends__: [Construct](#constructs-construct)
63
63
 
64
64
  ### Initializer
65
65
 
@@ -77,9 +77,9 @@ new ECRDeployment(scope: Construct, id: string, props: ECRDeploymentProps)
77
77
  * **src** (<code>[IImageName](#cdk-ecr-deployment-iimagename)</code>) The source of the docker image.
78
78
  * **environment** (<code>Map<string, string></code>) The environment variable to set. __*Optional*__
79
79
  * **memoryLimit** (<code>number</code>) The amount of memory (in MiB) to allocate to the AWS Lambda function which replicates the files from the CDK bucket to the destination bucket. __*Default*__: 512
80
- * **role** (<code>[IRole](#aws-cdk-aws-iam-irole)</code>) Execution role associated with this function. __*Default*__: A role is automatically created
81
- * **vpc** (<code>[IVpc](#aws-cdk-aws-ec2-ivpc)</code>) The VPC network to place the deployment lambda handler in. __*Default*__: None
82
- * **vpcSubnets** (<code>[SubnetSelection](#aws-cdk-aws-ec2-subnetselection)</code>) Where in the VPC to place the deployment lambda handler. __*Default*__: the Vpc default strategy if not specified
80
+ * **role** (<code>[aws_iam.IRole](#aws-cdk-lib-aws-iam-irole)</code>) Execution role associated with this function. __*Default*__: A role is automatically created
81
+ * **vpc** (<code>[aws_ec2.IVpc](#aws-cdk-lib-aws-ec2-ivpc)</code>) The VPC network to place the deployment lambda handler in. __*Default*__: None
82
+ * **vpcSubnets** (<code>[aws_ec2.SubnetSelection](#aws-cdk-lib-aws-ec2-subnetselection)</code>) Where in the VPC to place the deployment lambda handler. __*Default*__: the Vpc default strategy if not specified
83
83
 
84
84
 
85
85
 
@@ -128,9 +128,9 @@ Name | Type | Description
128
128
  **src** | <code>[IImageName](#cdk-ecr-deployment-iimagename)</code> | The source of the docker image.
129
129
  **environment**? | <code>Map<string, string></code> | The environment variable to set.<br/>__*Optional*__
130
130
  **memoryLimit**? | <code>number</code> | The amount of memory (in MiB) to allocate to the AWS Lambda function which replicates the files from the CDK bucket to the destination bucket.<br/>__*Default*__: 512
131
- **role**? | <code>[IRole](#aws-cdk-aws-iam-irole)</code> | Execution role associated with this function.<br/>__*Default*__: A role is automatically created
132
- **vpc**? | <code>[IVpc](#aws-cdk-aws-ec2-ivpc)</code> | The VPC network to place the deployment lambda handler in.<br/>__*Default*__: None
133
- **vpcSubnets**? | <code>[SubnetSelection](#aws-cdk-aws-ec2-subnetselection)</code> | Where in the VPC to place the deployment lambda handler.<br/>__*Default*__: the Vpc default strategy if not specified
131
+ **role**? | <code>[aws_iam.IRole](#aws-cdk-lib-aws-iam-irole)</code> | Execution role associated with this function.<br/>__*Default*__: A role is automatically created
132
+ **vpc**? | <code>[aws_ec2.IVpc](#aws-cdk-lib-aws-ec2-ivpc)</code> | The VPC network to place the deployment lambda handler in.<br/>__*Default*__: None
133
+ **vpcSubnets**? | <code>[aws_ec2.SubnetSelection](#aws-cdk-lib-aws-ec2-subnetselection)</code> | Where in the VPC to place the deployment lambda handler.<br/>__*Default*__: the Vpc default strategy if not specified
134
134
 
135
135
 
136
136
 
package/README.md CHANGED
@@ -8,6 +8,8 @@
8
8
 
9
9
  CDK construct to deploy docker image to Amazon ECR
10
10
 
11
+ ⚠️ Please use ^1.0.0 for cdk version 1.x.x, use ^2.0.0 for cdk version 2.x.x
12
+
11
13
  ## Features
12
14
 
13
15
  - Copy an ECR image to another
package/lib/index.d.ts CHANGED
@@ -1,7 +1,5 @@
1
- import * as ec2 from '@aws-cdk/aws-ec2';
2
- import * as iam from '@aws-cdk/aws-iam';
1
+ import { aws_ec2 as ec2, aws_iam as iam } from 'aws-cdk-lib';
3
2
  import { Construct } from 'constructs';
4
- import { Construct as CoreConstruct } from '@aws-cdk/core';
5
3
  /**
6
4
  * @stability stable
7
5
  */
@@ -122,7 +120,7 @@ export declare class S3ArchiveName implements IImageName {
122
120
  /**
123
121
  * @stability stable
124
122
  */
125
- export declare class ECRDeployment extends CoreConstruct {
123
+ export declare class ECRDeployment extends Construct {
126
124
  /**
127
125
  * @stability stable
128
126
  */
package/lib/index.js CHANGED
@@ -7,11 +7,9 @@ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
7
7
  // SPDX-License-Identifier: Apache-2.0
8
8
  const child_process = require("child_process");
9
9
  const path = require("path");
10
- const iam = require("@aws-cdk/aws-iam");
11
- const lambda = require("@aws-cdk/aws-lambda");
12
- const cdk = require("@aws-cdk/core");
13
- // eslint-disable-next-line no-duplicate-imports, import/order
14
- const core_1 = require("@aws-cdk/core");
10
+ const aws_cdk_lib_1 = require("aws-cdk-lib");
11
+ const cdk = require("aws-cdk-lib/core");
12
+ const constructs_1 = require("constructs");
15
13
  function getCode() {
16
14
  if (!(process.env.CI || process.env.NO_PREBUILT_LAMBDA)) {
17
15
  try {
@@ -19,14 +17,14 @@ function getCode() {
19
17
  const installScript = path.join(__dirname, '../lambda/install.js');
20
18
  const prebuiltPath = path.join(__dirname, '../lambda/out');
21
19
  child_process.execSync(`${process.argv0} ${installScript} ${prebuiltPath}`);
22
- return lambda.Code.fromAsset(prebuiltPath);
20
+ return aws_cdk_lib_1.aws_lambda.Code.fromAsset(prebuiltPath);
23
21
  }
24
22
  catch (err) {
25
23
  console.warn(`Can not get prebuilt lambda: ${err}`);
26
24
  }
27
25
  }
28
26
  console.log('Build lambda from scratch');
29
- return lambda.Code.fromDockerBuild(path.join(__dirname, '../lambda'));
27
+ return aws_cdk_lib_1.aws_lambda.Code.fromDockerBuild(path.join(__dirname, '../lambda'));
30
28
  }
31
29
  /**
32
30
  * @stability stable
@@ -50,7 +48,7 @@ class DockerImageName {
50
48
  }
51
49
  exports.DockerImageName = DockerImageName;
52
50
  _a = JSII_RTTI_SYMBOL_1;
53
- DockerImageName[_a] = { fqn: "cdk-ecr-deployment.DockerImageName", version: "1.0.1" };
51
+ DockerImageName[_a] = { fqn: "cdk-ecr-deployment.DockerImageName", version: "2.0.3" };
54
52
  /**
55
53
  * @stability stable
56
54
  */
@@ -76,11 +74,11 @@ class S3ArchiveName {
76
74
  }
77
75
  exports.S3ArchiveName = S3ArchiveName;
78
76
  _b = JSII_RTTI_SYMBOL_1;
79
- S3ArchiveName[_b] = { fqn: "cdk-ecr-deployment.S3ArchiveName", version: "1.0.1" };
77
+ S3ArchiveName[_b] = { fqn: "cdk-ecr-deployment.S3ArchiveName", version: "2.0.3" };
80
78
  /**
81
79
  * @stability stable
82
80
  */
83
- class ECRDeployment extends core_1.Construct {
81
+ class ECRDeployment extends constructs_1.Construct {
84
82
  /**
85
83
  * @stability stable
86
84
  */
@@ -88,10 +86,10 @@ class ECRDeployment extends core_1.Construct {
88
86
  var _d;
89
87
  super(scope, id);
90
88
  const memoryLimit = (_d = props.memoryLimit) !== null && _d !== void 0 ? _d : 512;
91
- const handler = new lambda.SingletonFunction(this, 'CustomResourceHandler', {
89
+ const handler = new aws_cdk_lib_1.aws_lambda.SingletonFunction(this, 'CustomResourceHandler', {
92
90
  uuid: this.renderSingletonUuid(memoryLimit),
93
91
  code: getCode(),
94
- runtime: lambda.Runtime.GO_1_X,
92
+ runtime: aws_cdk_lib_1.aws_lambda.Runtime.GO_1_X,
95
93
  handler: 'main',
96
94
  environment: props.environment,
97
95
  lambdaPurpose: 'Custom::CDKECRDeployment',
@@ -105,8 +103,8 @@ class ECRDeployment extends core_1.Construct {
105
103
  if (!handlerRole) {
106
104
  throw new Error('lambda.SingletonFunction should have created a Role');
107
105
  }
108
- handlerRole.addToPrincipalPolicy(new iam.PolicyStatement({
109
- effect: iam.Effect.ALLOW,
106
+ handlerRole.addToPrincipalPolicy(new aws_cdk_lib_1.aws_iam.PolicyStatement({
107
+ effect: aws_cdk_lib_1.aws_iam.Effect.ALLOW,
110
108
  actions: [
111
109
  'ecr:GetAuthorizationToken',
112
110
  'ecr:BatchCheckLayerAvailability',
@@ -125,8 +123,8 @@ class ECRDeployment extends core_1.Construct {
125
123
  ],
126
124
  resources: ['*'],
127
125
  }));
128
- handlerRole.addToPrincipalPolicy(new iam.PolicyStatement({
129
- effect: iam.Effect.ALLOW,
126
+ handlerRole.addToPrincipalPolicy(new aws_cdk_lib_1.aws_iam.PolicyStatement({
127
+ effect: aws_cdk_lib_1.aws_iam.Effect.ALLOW,
130
128
  actions: [
131
129
  's3:GetObject',
132
130
  ],
@@ -159,5 +157,5 @@ class ECRDeployment extends core_1.Construct {
159
157
  }
160
158
  exports.ECRDeployment = ECRDeployment;
161
159
  _c = JSII_RTTI_SYMBOL_1;
162
- ECRDeployment[_c] = { fqn: "cdk-ecr-deployment.ECRDeployment", version: "1.0.1" };
163
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxxRUFBcUU7QUFDckUsc0NBQXNDO0FBR3RDLCtDQUErQztBQUMvQyw2QkFBNkI7QUFFN0Isd0NBQXdDO0FBQ3hDLDhDQUE4QztBQUM5QyxxQ0FBcUM7QUFHckMsOERBQThEO0FBQzlELHdDQUEyRDtBQWlDM0QsU0FBUyxPQUFPO0lBQ2QsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFO1FBQ3ZELElBQUk7WUFDRixPQUFPLENBQUMsR0FBRyxDQUFDLDRCQUE0QixDQUFDLENBQUM7WUFFMUMsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsc0JBQXNCLENBQUMsQ0FBQztZQUNuRSxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxlQUFlLENBQUMsQ0FBQztZQUMzRCxhQUFhLENBQUMsUUFBUSxDQUFDLEdBQUcsT0FBTyxDQUFDLEtBQUssSUFBSSxhQUFhLElBQUksWUFBWSxFQUFFLENBQUMsQ0FBQztZQUU1RSxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDO1NBQzVDO1FBQUMsT0FBTyxHQUFHLEVBQUU7WUFDWixPQUFPLENBQUMsSUFBSSxDQUFDLGdDQUFnQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1NBQ3JEO0tBQ0Y7SUFFRCxPQUFPLENBQUMsR0FBRyxDQUFDLDJCQUEyQixDQUFDLENBQUM7SUFFekMsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDO0FBQ3hFLENBQUM7Ozs7QUFFRCxNQUFhLGVBQWU7Ozs7SUFDMUIsWUFBMkIsSUFBWSxFQUFTLEtBQWM7UUFBbkMsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUFTLFVBQUssR0FBTCxLQUFLLENBQVM7SUFBSSxDQUFDOzs7Ozs7OztJQUNuRSxJQUFXLEdBQUcsS0FBYSxPQUFPLFlBQVksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQzs7QUFGOUQsMENBR0M7Ozs7OztBQUVELE1BQWEsYUFBYTs7OztJQUV4QixZQUFtQixDQUFTLEVBQUUsR0FBWSxFQUFTLEtBQWM7UUFBZCxVQUFLLEdBQUwsS0FBSyxDQUFTO1FBQy9ELElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxHQUFHLEVBQUU7WUFDUCxJQUFJLENBQUMsSUFBSSxJQUFJLEdBQUcsR0FBRyxHQUFHLENBQUM7U0FDeEI7SUFDSCxDQUFDOzs7Ozs7OztJQUNELElBQVcsR0FBRyxLQUFhLE9BQU8sUUFBUSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDOztBQVIxRCxzQ0FTQzs7Ozs7O0FBRUQsTUFBYSxhQUFjLFNBQVEsZ0JBQWE7Ozs7SUFDOUMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUF5Qjs7UUFDakUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNqQixNQUFNLFdBQVcsU0FBRyxLQUFLLENBQUMsV0FBVyxtQ0FBSSxHQUFHLENBQUM7UUFDN0MsTUFBTSxPQUFPLEdBQUcsSUFBSSxNQUFNLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLHVCQUF1QixFQUFFO1lBQzFFLElBQUksRUFBRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxDQUFDO1lBQzNDLElBQUksRUFBRSxPQUFPLEVBQUU7WUFDZixPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNO1lBQzlCLE9BQU8sRUFBRSxNQUFNO1lBQ2YsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXO1lBQzlCLGFBQWEsRUFBRSwwQkFBMEI7WUFDekMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNqQyxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7WUFDaEIsVUFBVSxFQUFFLFdBQVc7WUFDdkIsR0FBRyxFQUFFLEtBQUssQ0FBQyxHQUFHO1lBQ2QsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVO1NBQzdCLENBQUMsQ0FBQztRQUVILE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUM7UUFDakMsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMscURBQXFELENBQUMsQ0FBQztTQUFFO1FBRTdGLFdBQVcsQ0FBQyxvQkFBb0IsQ0FDOUIsSUFBSSxHQUFHLENBQUMsZUFBZSxDQUFDO1lBQ3RCLE1BQU0sRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUs7WUFDeEIsT0FBTyxFQUFFO2dCQUNQLDJCQUEyQjtnQkFDM0IsaUNBQWlDO2dCQUNqQyw0QkFBNEI7Z0JBQzVCLHlCQUF5QjtnQkFDekIsMEJBQTBCO2dCQUMxQixnQkFBZ0I7Z0JBQ2hCLG9CQUFvQjtnQkFDcEIsbUJBQW1CO2dCQUNuQix5QkFBeUI7Z0JBQ3pCLCtCQUErQjtnQkFDL0IseUJBQXlCO2dCQUN6QixxQkFBcUI7Z0JBQ3JCLHlCQUF5QjtnQkFDekIsY0FBYzthQUNmO1lBQ0QsU0FBUyxFQUFFLENBQUMsR0FBRyxDQUFDO1NBQ2pCLENBQUMsQ0FBQyxDQUFDO1FBQ04sV0FBVyxDQUFDLG9CQUFvQixDQUFDLElBQUksR0FBRyxDQUFDLGVBQWUsQ0FBQztZQUN2RCxNQUFNLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLO1lBQ3hCLE9BQU8sRUFBRTtnQkFDUCxjQUFjO2FBQ2Y7WUFDRCxTQUFTLEVBQUUsQ0FBQyxHQUFHLENBQUM7U0FDakIsQ0FBQyxDQUFDLENBQUM7UUFFSixJQUFJLEdBQUcsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFO1lBQzdDLFlBQVksRUFBRSxPQUFPLENBQUMsV0FBVztZQUNqQyxZQUFZLEVBQUUsNkJBQTZCO1lBQzNDLFVBQVUsRUFBRTtnQkFDVixRQUFRLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHO2dCQUN2QixRQUFRLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLO2dCQUN6QixTQUFTLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHO2dCQUN6QixTQUFTLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLO2FBQzVCO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLG1CQUFtQixDQUFDLFdBQW9CO1FBQzlDLElBQUksSUFBSSxHQUFHLHNDQUFzQyxDQUFDO1FBRWxELDBFQUEwRTtRQUMxRSwyRUFBMkU7UUFDM0UsNENBQTRDO1FBQzVDLElBQUksV0FBVyxFQUFFO1lBQ2YsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsRUFBRTtnQkFDdkMsTUFBTSxJQUFJLEtBQUssQ0FBQyxtSEFBbUgsQ0FBQyxDQUFDO2FBQ3RJO1lBRUQsSUFBSSxJQUFJLElBQUksV0FBVyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUM7U0FDekM7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7O0FBN0VILHNDQThFQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuXG5pbXBvcnQgKiBhcyBjaGlsZF9wcm9jZXNzIGZyb20gJ2NoaWxkX3Byb2Nlc3MnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIGVjMiBmcm9tICdAYXdzLWNkay9hd3MtZWMyJztcbmltcG9ydCAqIGFzIGlhbSBmcm9tICdAYXdzLWNkay9hd3MtaWFtJztcbmltcG9ydCAqIGFzIGxhbWJkYSBmcm9tICdAYXdzLWNkay9hd3MtbGFtYmRhJztcbmltcG9ydCAqIGFzIGNkayBmcm9tICdAYXdzLWNkay9jb3JlJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZHVwbGljYXRlLWltcG9ydHMsIGltcG9ydC9vcmRlclxuaW1wb3J0IHsgQ29uc3RydWN0IGFzIENvcmVDb25zdHJ1Y3QgfSBmcm9tICdAYXdzLWNkay9jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBFQ1JEZXBsb3ltZW50UHJvcHMge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IHNyYzogSUltYWdlTmFtZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgZGVzdDogSUltYWdlTmFtZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgbWVtb3J5TGltaXQ/OiBudW1iZXI7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSByb2xlPzogaWFtLklSb2xlO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgdnBjPzogZWMyLklWcGM7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IHZwY1N1Ym5ldHM/OiBlYzIuU3VibmV0U2VsZWN0aW9uO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgZW52aXJvbm1lbnQ/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElJbWFnZU5hbWUge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSB1cmk6IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIGNyZWRzPzogc3RyaW5nO1xufVxuXG5mdW5jdGlvbiBnZXRDb2RlKCk6IGxhbWJkYS5Bc3NldENvZGUge1xuICBpZiAoIShwcm9jZXNzLmVudi5DSSB8fCBwcm9jZXNzLmVudi5OT19QUkVCVUlMVF9MQU1CREEpKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnNvbGUubG9nKCdUcnkgdG8gZ2V0IHByZWJ1aWx0IGxhbWJkYScpO1xuXG4gICAgICBjb25zdCBpbnN0YWxsU2NyaXB0ID0gcGF0aC5qb2luKF9fZGlybmFtZSwgJy4uL2xhbWJkYS9pbnN0YWxsLmpzJyk7XG4gICAgICBjb25zdCBwcmVidWlsdFBhdGggPSBwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi4vbGFtYmRhL291dCcpO1xuICAgICAgY2hpbGRfcHJvY2Vzcy5leGVjU3luYyhgJHtwcm9jZXNzLmFyZ3YwfSAke2luc3RhbGxTY3JpcHR9ICR7cHJlYnVpbHRQYXRofWApO1xuXG4gICAgICByZXR1cm4gbGFtYmRhLkNvZGUuZnJvbUFzc2V0KHByZWJ1aWx0UGF0aCk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBjb25zb2xlLndhcm4oYENhbiBub3QgZ2V0IHByZWJ1aWx0IGxhbWJkYTogJHtlcnJ9YCk7XG4gICAgfVxuICB9XG5cbiAgY29uc29sZS5sb2coJ0J1aWxkIGxhbWJkYSBmcm9tIHNjcmF0Y2gnKTtcblxuICByZXR1cm4gbGFtYmRhLkNvZGUuZnJvbURvY2tlckJ1aWxkKHBhdGguam9pbihfX2Rpcm5hbWUsICcuLi9sYW1iZGEnKSk7XG59XG5cbmV4cG9ydCBjbGFzcyBEb2NrZXJJbWFnZU5hbWUgaW1wbGVtZW50cyBJSW1hZ2VOYW1lIHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgbmFtZTogc3RyaW5nLCBwdWJsaWMgY3JlZHM/OiBzdHJpbmcpIHsgfVxuICBwdWJsaWMgZ2V0IHVyaSgpOiBzdHJpbmcgeyByZXR1cm4gYGRvY2tlcjovLyR7dGhpcy5uYW1lfWA7IH1cbn1cblxuZXhwb3J0IGNsYXNzIFMzQXJjaGl2ZU5hbWUgaW1wbGVtZW50cyBJSW1hZ2VOYW1lIHtcbiAgcHJpdmF0ZSBuYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihwOiBzdHJpbmcsIHJlZj86IHN0cmluZywgcHVibGljIGNyZWRzPzogc3RyaW5nKSB7XG4gICAgdGhpcy5uYW1lID0gcDtcbiAgICBpZiAocmVmKSB7XG4gICAgICB0aGlzLm5hbWUgKz0gJzonICsgcmVmO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgZ2V0IHVyaSgpOiBzdHJpbmcgeyByZXR1cm4gYHMzOi8vJHt0aGlzLm5hbWV9YDsgfVxufVxuXG5leHBvcnQgY2xhc3MgRUNSRGVwbG95bWVudCBleHRlbmRzIENvcmVDb25zdHJ1Y3Qge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogRUNSRGVwbG95bWVudFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICBjb25zdCBtZW1vcnlMaW1pdCA9IHByb3BzLm1lbW9yeUxpbWl0ID8/IDUxMjtcbiAgICBjb25zdCBoYW5kbGVyID0gbmV3IGxhbWJkYS5TaW5nbGV0b25GdW5jdGlvbih0aGlzLCAnQ3VzdG9tUmVzb3VyY2VIYW5kbGVyJywge1xuICAgICAgdXVpZDogdGhpcy5yZW5kZXJTaW5nbGV0b25VdWlkKG1lbW9yeUxpbWl0KSxcbiAgICAgIGNvZGU6IGdldENvZGUoKSxcbiAgICAgIHJ1bnRpbWU6IGxhbWJkYS5SdW50aW1lLkdPXzFfWCxcbiAgICAgIGhhbmRsZXI6ICdtYWluJyxcbiAgICAgIGVudmlyb25tZW50OiBwcm9wcy5lbnZpcm9ubWVudCxcbiAgICAgIGxhbWJkYVB1cnBvc2U6ICdDdXN0b206OkNES0VDUkRlcGxveW1lbnQnLFxuICAgICAgdGltZW91dDogY2RrLkR1cmF0aW9uLm1pbnV0ZXMoMTUpLFxuICAgICAgcm9sZTogcHJvcHMucm9sZSxcbiAgICAgIG1lbW9yeVNpemU6IG1lbW9yeUxpbWl0LFxuICAgICAgdnBjOiBwcm9wcy52cGMsXG4gICAgICB2cGNTdWJuZXRzOiBwcm9wcy52cGNTdWJuZXRzLFxuICAgIH0pO1xuXG4gICAgY29uc3QgaGFuZGxlclJvbGUgPSBoYW5kbGVyLnJvbGU7XG4gICAgaWYgKCFoYW5kbGVyUm9sZSkgeyB0aHJvdyBuZXcgRXJyb3IoJ2xhbWJkYS5TaW5nbGV0b25GdW5jdGlvbiBzaG91bGQgaGF2ZSBjcmVhdGVkIGEgUm9sZScpOyB9XG5cbiAgICBoYW5kbGVyUm9sZS5hZGRUb1ByaW5jaXBhbFBvbGljeShcbiAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgJ2VjcjpHZXRBdXRob3JpemF0aW9uVG9rZW4nLFxuICAgICAgICAgICdlY3I6QmF0Y2hDaGVja0xheWVyQXZhaWxhYmlsaXR5JyxcbiAgICAgICAgICAnZWNyOkdldERvd25sb2FkVXJsRm9yTGF5ZXInLFxuICAgICAgICAgICdlY3I6R2V0UmVwb3NpdG9yeVBvbGljeScsXG4gICAgICAgICAgJ2VjcjpEZXNjcmliZVJlcG9zaXRvcmllcycsXG4gICAgICAgICAgJ2VjcjpMaXN0SW1hZ2VzJyxcbiAgICAgICAgICAnZWNyOkRlc2NyaWJlSW1hZ2VzJyxcbiAgICAgICAgICAnZWNyOkJhdGNoR2V0SW1hZ2UnLFxuICAgICAgICAgICdlY3I6TGlzdFRhZ3NGb3JSZXNvdXJjZScsXG4gICAgICAgICAgJ2VjcjpEZXNjcmliZUltYWdlU2NhbkZpbmRpbmdzJyxcbiAgICAgICAgICAnZWNyOkluaXRpYXRlTGF5ZXJVcGxvYWQnLFxuICAgICAgICAgICdlY3I6VXBsb2FkTGF5ZXJQYXJ0JyxcbiAgICAgICAgICAnZWNyOkNvbXBsZXRlTGF5ZXJVcGxvYWQnLFxuICAgICAgICAgICdlY3I6UHV0SW1hZ2UnLFxuICAgICAgICBdLFxuICAgICAgICByZXNvdXJjZXM6IFsnKiddLFxuICAgICAgfSkpO1xuICAgIGhhbmRsZXJSb2xlLmFkZFRvUHJpbmNpcGFsUG9saWN5KG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgJ3MzOkdldE9iamVjdCcsXG4gICAgICBdLFxuICAgICAgcmVzb3VyY2VzOiBbJyonXSxcbiAgICB9KSk7XG5cbiAgICBuZXcgY2RrLkN1c3RvbVJlc291cmNlKHRoaXMsICdDdXN0b21SZXNvdXJjZScsIHtcbiAgICAgIHNlcnZpY2VUb2tlbjogaGFuZGxlci5mdW5jdGlvbkFybixcbiAgICAgIHJlc291cmNlVHlwZTogJ0N1c3RvbTo6Q0RLQnVja2V0RGVwbG95bWVudCcsXG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIFNyY0ltYWdlOiBwcm9wcy5zcmMudXJpLFxuICAgICAgICBTcmNDcmVkczogcHJvcHMuc3JjLmNyZWRzLFxuICAgICAgICBEZXN0SW1hZ2U6IHByb3BzLmRlc3QudXJpLFxuICAgICAgICBEZXN0Q3JlZHM6IHByb3BzLmRlc3QuY3JlZHMsXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSByZW5kZXJTaW5nbGV0b25VdWlkKG1lbW9yeUxpbWl0PzogbnVtYmVyKSB7XG4gICAgbGV0IHV1aWQgPSAnYmQwN2M5MzAtZWRiOS00MTEyLWEyMGYtMDNmMDk2ZjUzNjY2JztcblxuICAgIC8vIGlmIHVzZXIgc3BlY2lmeSBhIGN1c3RvbSBtZW1vcnkgbGltaXQsIGRlZmluZSBhbm90aGVyIHNpbmdsZXRvbiBoYW5kbGVyXG4gICAgLy8gd2l0aCB0aGlzIGNvbmZpZ3VyYXRpb24uIG90aGVyd2lzZSwgaXQgd29uJ3QgYmUgcG9zc2libGUgdG8gdXNlIG11bHRpcGxlXG4gICAgLy8gY29uZmlndXJhdGlvbnMgc2luY2Ugd2UgaGF2ZSBhIHNpbmdsZXRvbi5cbiAgICBpZiAobWVtb3J5TGltaXQpIHtcbiAgICAgIGlmIChjZGsuVG9rZW4uaXNVbnJlc29sdmVkKG1lbW9yeUxpbWl0KSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NhblxcJ3QgdXNlIHRva2VucyB3aGVuIHNwZWNpZnlpbmcgXCJtZW1vcnlMaW1pdFwiIHNpbmNlIHdlIHVzZSBpdCB0byBpZGVudGlmeSB0aGUgc2luZ2xldG9uIGN1c3RvbSByZXNvdXJjZSBoYW5kbGVyJyk7XG4gICAgICB9XG5cbiAgICAgIHV1aWQgKz0gYC0ke21lbW9yeUxpbWl0LnRvU3RyaW5nKCl9TWlCYDtcbiAgICB9XG5cbiAgICByZXR1cm4gdXVpZDtcbiAgfVxufVxuIl19
160
+ ECRDeployment[_c] = { fqn: "cdk-ecr-deployment.ECRDeployment", version: "2.0.3" };
161
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxxRUFBcUU7QUFDckUsc0NBQXNDO0FBR3RDLCtDQUErQztBQUMvQyw2QkFBNkI7QUFDN0IsNkNBQW1GO0FBQ25GLHdDQUF3QztBQUN4QywyQ0FBdUM7QUFpQ3ZDLFNBQVMsT0FBTztJQUNkLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsRUFBRTtRQUN2RCxJQUFJO1lBQ0YsT0FBTyxDQUFDLEdBQUcsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO1lBRTFDLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLHNCQUFzQixDQUFDLENBQUM7WUFDbkUsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsZUFBZSxDQUFDLENBQUM7WUFDM0QsYUFBYSxDQUFDLFFBQVEsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxLQUFLLElBQUksYUFBYSxJQUFJLFlBQVksRUFBRSxDQUFDLENBQUM7WUFFNUUsT0FBTyx3QkFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDNUM7UUFBQyxPQUFPLEdBQUcsRUFBRTtZQUNaLE9BQU8sQ0FBQyxJQUFJLENBQUMsZ0NBQWdDLEdBQUcsRUFBRSxDQUFDLENBQUM7U0FDckQ7S0FDRjtJQUVELE9BQU8sQ0FBQyxHQUFHLENBQUMsMkJBQTJCLENBQUMsQ0FBQztJQUV6QyxPQUFPLHdCQUFNLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDO0FBQ3hFLENBQUM7Ozs7QUFFRCxNQUFhLGVBQWU7Ozs7SUFDMUIsWUFBMkIsSUFBWSxFQUFTLEtBQWM7UUFBbkMsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUFTLFVBQUssR0FBTCxLQUFLLENBQVM7SUFBSSxDQUFDOzs7Ozs7OztJQUNuRSxJQUFXLEdBQUcsS0FBYSxPQUFPLFlBQVksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQzs7QUFGOUQsMENBR0M7Ozs7OztBQUVELE1BQWEsYUFBYTs7OztJQUV4QixZQUFtQixDQUFTLEVBQUUsR0FBWSxFQUFTLEtBQWM7UUFBZCxVQUFLLEdBQUwsS0FBSyxDQUFTO1FBQy9ELElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxHQUFHLEVBQUU7WUFDUCxJQUFJLENBQUMsSUFBSSxJQUFJLEdBQUcsR0FBRyxHQUFHLENBQUM7U0FDeEI7SUFDSCxDQUFDOzs7Ozs7OztJQUNELElBQVcsR0FBRyxLQUFhLE9BQU8sUUFBUSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDOztBQVIxRCxzQ0FTQzs7Ozs7O0FBRUQsTUFBYSxhQUFjLFNBQVEsc0JBQVM7Ozs7SUFDMUMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUF5Qjs7UUFDakUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNqQixNQUFNLFdBQVcsU0FBRyxLQUFLLENBQUMsV0FBVyxtQ0FBSSxHQUFHLENBQUM7UUFDN0MsTUFBTSxPQUFPLEdBQUcsSUFBSSx3QkFBTSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSx1QkFBdUIsRUFBRTtZQUMxRSxJQUFJLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsQ0FBQztZQUMzQyxJQUFJLEVBQUUsT0FBTyxFQUFFO1lBQ2YsT0FBTyxFQUFFLHdCQUFNLENBQUMsT0FBTyxDQUFDLE1BQU07WUFDOUIsT0FBTyxFQUFFLE1BQU07WUFDZixXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7WUFDOUIsYUFBYSxFQUFFLDBCQUEwQjtZQUN6QyxPQUFPLEVBQUUsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ2pDLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtZQUNoQixVQUFVLEVBQUUsV0FBVztZQUN2QixHQUFHLEVBQUUsS0FBSyxDQUFDLEdBQUc7WUFDZCxVQUFVLEVBQUUsS0FBSyxDQUFDLFVBQVU7U0FDN0IsQ0FBQyxDQUFDO1FBRUgsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztRQUNqQyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxxREFBcUQsQ0FBQyxDQUFDO1NBQUU7UUFFN0YsV0FBVyxDQUFDLG9CQUFvQixDQUM5QixJQUFJLHFCQUFHLENBQUMsZUFBZSxDQUFDO1lBQ3RCLE1BQU0sRUFBRSxxQkFBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLO1lBQ3hCLE9BQU8sRUFBRTtnQkFDUCwyQkFBMkI7Z0JBQzNCLGlDQUFpQztnQkFDakMsNEJBQTRCO2dCQUM1Qix5QkFBeUI7Z0JBQ3pCLDBCQUEwQjtnQkFDMUIsZ0JBQWdCO2dCQUNoQixvQkFBb0I7Z0JBQ3BCLG1CQUFtQjtnQkFDbkIseUJBQXlCO2dCQUN6QiwrQkFBK0I7Z0JBQy9CLHlCQUF5QjtnQkFDekIscUJBQXFCO2dCQUNyQix5QkFBeUI7Z0JBQ3pCLGNBQWM7YUFDZjtZQUNELFNBQVMsRUFBRSxDQUFDLEdBQUcsQ0FBQztTQUNqQixDQUFDLENBQUMsQ0FBQztRQUNOLFdBQVcsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLHFCQUFHLENBQUMsZUFBZSxDQUFDO1lBQ3ZELE1BQU0sRUFBRSxxQkFBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLO1lBQ3hCLE9BQU8sRUFBRTtnQkFDUCxjQUFjO2FBQ2Y7WUFDRCxTQUFTLEVBQUUsQ0FBQyxHQUFHLENBQUM7U0FDakIsQ0FBQyxDQUFDLENBQUM7UUFFSixJQUFJLEdBQUcsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFO1lBQzdDLFlBQVksRUFBRSxPQUFPLENBQUMsV0FBVztZQUNqQyxZQUFZLEVBQUUsNkJBQTZCO1lBQzNDLFVBQVUsRUFBRTtnQkFDVixRQUFRLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHO2dCQUN2QixRQUFRLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLO2dCQUN6QixTQUFTLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHO2dCQUN6QixTQUFTLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLO2FBQzVCO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLG1CQUFtQixDQUFDLFdBQW9CO1FBQzlDLElBQUksSUFBSSxHQUFHLHNDQUFzQyxDQUFDO1FBRWxELDBFQUEwRTtRQUMxRSwyRUFBMkU7UUFDM0UsNENBQTRDO1FBQzVDLElBQUksV0FBVyxFQUFFO1lBQ2YsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsRUFBRTtnQkFDdkMsTUFBTSxJQUFJLEtBQUssQ0FBQyxtSEFBbUgsQ0FBQyxDQUFDO2FBQ3RJO1lBRUQsSUFBSSxJQUFJLElBQUksV0FBVyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUM7U0FDekM7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7O0FBN0VILHNDQThFQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuXG5pbXBvcnQgKiBhcyBjaGlsZF9wcm9jZXNzIGZyb20gJ2NoaWxkX3Byb2Nlc3MnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IGF3c19lYzIgYXMgZWMyLCBhd3NfaWFtIGFzIGlhbSwgYXdzX2xhbWJkYSBhcyBsYW1iZGEgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWIvY29yZSc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcblxuZXhwb3J0IGludGVyZmFjZSBFQ1JEZXBsb3ltZW50UHJvcHMge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IHNyYzogSUltYWdlTmFtZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgZGVzdDogSUltYWdlTmFtZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgbWVtb3J5TGltaXQ/OiBudW1iZXI7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSByb2xlPzogaWFtLklSb2xlO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgdnBjPzogZWMyLklWcGM7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IHZwY1N1Ym5ldHM/OiBlYzIuU3VibmV0U2VsZWN0aW9uO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgZW52aXJvbm1lbnQ/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElJbWFnZU5hbWUge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSB1cmk6IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIGNyZWRzPzogc3RyaW5nO1xufVxuXG5mdW5jdGlvbiBnZXRDb2RlKCk6IGxhbWJkYS5Bc3NldENvZGUge1xuICBpZiAoIShwcm9jZXNzLmVudi5DSSB8fCBwcm9jZXNzLmVudi5OT19QUkVCVUlMVF9MQU1CREEpKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnNvbGUubG9nKCdUcnkgdG8gZ2V0IHByZWJ1aWx0IGxhbWJkYScpO1xuXG4gICAgICBjb25zdCBpbnN0YWxsU2NyaXB0ID0gcGF0aC5qb2luKF9fZGlybmFtZSwgJy4uL2xhbWJkYS9pbnN0YWxsLmpzJyk7XG4gICAgICBjb25zdCBwcmVidWlsdFBhdGggPSBwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi4vbGFtYmRhL291dCcpO1xuICAgICAgY2hpbGRfcHJvY2Vzcy5leGVjU3luYyhgJHtwcm9jZXNzLmFyZ3YwfSAke2luc3RhbGxTY3JpcHR9ICR7cHJlYnVpbHRQYXRofWApO1xuXG4gICAgICByZXR1cm4gbGFtYmRhLkNvZGUuZnJvbUFzc2V0KHByZWJ1aWx0UGF0aCk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBjb25zb2xlLndhcm4oYENhbiBub3QgZ2V0IHByZWJ1aWx0IGxhbWJkYTogJHtlcnJ9YCk7XG4gICAgfVxuICB9XG5cbiAgY29uc29sZS5sb2coJ0J1aWxkIGxhbWJkYSBmcm9tIHNjcmF0Y2gnKTtcblxuICByZXR1cm4gbGFtYmRhLkNvZGUuZnJvbURvY2tlckJ1aWxkKHBhdGguam9pbihfX2Rpcm5hbWUsICcuLi9sYW1iZGEnKSk7XG59XG5cbmV4cG9ydCBjbGFzcyBEb2NrZXJJbWFnZU5hbWUgaW1wbGVtZW50cyBJSW1hZ2VOYW1lIHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgbmFtZTogc3RyaW5nLCBwdWJsaWMgY3JlZHM/OiBzdHJpbmcpIHsgfVxuICBwdWJsaWMgZ2V0IHVyaSgpOiBzdHJpbmcgeyByZXR1cm4gYGRvY2tlcjovLyR7dGhpcy5uYW1lfWA7IH1cbn1cblxuZXhwb3J0IGNsYXNzIFMzQXJjaGl2ZU5hbWUgaW1wbGVtZW50cyBJSW1hZ2VOYW1lIHtcbiAgcHJpdmF0ZSBuYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihwOiBzdHJpbmcsIHJlZj86IHN0cmluZywgcHVibGljIGNyZWRzPzogc3RyaW5nKSB7XG4gICAgdGhpcy5uYW1lID0gcDtcbiAgICBpZiAocmVmKSB7XG4gICAgICB0aGlzLm5hbWUgKz0gJzonICsgcmVmO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgZ2V0IHVyaSgpOiBzdHJpbmcgeyByZXR1cm4gYHMzOi8vJHt0aGlzLm5hbWV9YDsgfVxufVxuXG5leHBvcnQgY2xhc3MgRUNSRGVwbG95bWVudCBleHRlbmRzIENvbnN0cnVjdCB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBFQ1JEZXBsb3ltZW50UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuICAgIGNvbnN0IG1lbW9yeUxpbWl0ID0gcHJvcHMubWVtb3J5TGltaXQgPz8gNTEyO1xuICAgIGNvbnN0IGhhbmRsZXIgPSBuZXcgbGFtYmRhLlNpbmdsZXRvbkZ1bmN0aW9uKHRoaXMsICdDdXN0b21SZXNvdXJjZUhhbmRsZXInLCB7XG4gICAgICB1dWlkOiB0aGlzLnJlbmRlclNpbmdsZXRvblV1aWQobWVtb3J5TGltaXQpLFxuICAgICAgY29kZTogZ2V0Q29kZSgpLFxuICAgICAgcnVudGltZTogbGFtYmRhLlJ1bnRpbWUuR09fMV9YLFxuICAgICAgaGFuZGxlcjogJ21haW4nLFxuICAgICAgZW52aXJvbm1lbnQ6IHByb3BzLmVudmlyb25tZW50LFxuICAgICAgbGFtYmRhUHVycG9zZTogJ0N1c3RvbTo6Q0RLRUNSRGVwbG95bWVudCcsXG4gICAgICB0aW1lb3V0OiBjZGsuRHVyYXRpb24ubWludXRlcygxNSksXG4gICAgICByb2xlOiBwcm9wcy5yb2xlLFxuICAgICAgbWVtb3J5U2l6ZTogbWVtb3J5TGltaXQsXG4gICAgICB2cGM6IHByb3BzLnZwYyxcbiAgICAgIHZwY1N1Ym5ldHM6IHByb3BzLnZwY1N1Ym5ldHMsXG4gICAgfSk7XG5cbiAgICBjb25zdCBoYW5kbGVyUm9sZSA9IGhhbmRsZXIucm9sZTtcbiAgICBpZiAoIWhhbmRsZXJSb2xlKSB7IHRocm93IG5ldyBFcnJvcignbGFtYmRhLlNpbmdsZXRvbkZ1bmN0aW9uIHNob3VsZCBoYXZlIGNyZWF0ZWQgYSBSb2xlJyk7IH1cblxuICAgIGhhbmRsZXJSb2xlLmFkZFRvUHJpbmNpcGFsUG9saWN5KFxuICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAnZWNyOkdldEF1dGhvcml6YXRpb25Ub2tlbicsXG4gICAgICAgICAgJ2VjcjpCYXRjaENoZWNrTGF5ZXJBdmFpbGFiaWxpdHknLFxuICAgICAgICAgICdlY3I6R2V0RG93bmxvYWRVcmxGb3JMYXllcicsXG4gICAgICAgICAgJ2VjcjpHZXRSZXBvc2l0b3J5UG9saWN5JyxcbiAgICAgICAgICAnZWNyOkRlc2NyaWJlUmVwb3NpdG9yaWVzJyxcbiAgICAgICAgICAnZWNyOkxpc3RJbWFnZXMnLFxuICAgICAgICAgICdlY3I6RGVzY3JpYmVJbWFnZXMnLFxuICAgICAgICAgICdlY3I6QmF0Y2hHZXRJbWFnZScsXG4gICAgICAgICAgJ2VjcjpMaXN0VGFnc0ZvclJlc291cmNlJyxcbiAgICAgICAgICAnZWNyOkRlc2NyaWJlSW1hZ2VTY2FuRmluZGluZ3MnLFxuICAgICAgICAgICdlY3I6SW5pdGlhdGVMYXllclVwbG9hZCcsXG4gICAgICAgICAgJ2VjcjpVcGxvYWRMYXllclBhcnQnLFxuICAgICAgICAgICdlY3I6Q29tcGxldGVMYXllclVwbG9hZCcsXG4gICAgICAgICAgJ2VjcjpQdXRJbWFnZScsXG4gICAgICAgIF0sXG4gICAgICAgIHJlc291cmNlczogWycqJ10sXG4gICAgICB9KSk7XG4gICAgaGFuZGxlclJvbGUuYWRkVG9QcmluY2lwYWxQb2xpY3kobmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgYWN0aW9uczogW1xuICAgICAgICAnczM6R2V0T2JqZWN0JyxcbiAgICAgIF0sXG4gICAgICByZXNvdXJjZXM6IFsnKiddLFxuICAgIH0pKTtcblxuICAgIG5ldyBjZGsuQ3VzdG9tUmVzb3VyY2UodGhpcywgJ0N1c3RvbVJlc291cmNlJywge1xuICAgICAgc2VydmljZVRva2VuOiBoYW5kbGVyLmZ1bmN0aW9uQXJuLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQ3VzdG9tOjpDREtCdWNrZXREZXBsb3ltZW50JyxcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgU3JjSW1hZ2U6IHByb3BzLnNyYy51cmksXG4gICAgICAgIFNyY0NyZWRzOiBwcm9wcy5zcmMuY3JlZHMsXG4gICAgICAgIERlc3RJbWFnZTogcHJvcHMuZGVzdC51cmksXG4gICAgICAgIERlc3RDcmVkczogcHJvcHMuZGVzdC5jcmVkcyxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHJlbmRlclNpbmdsZXRvblV1aWQobWVtb3J5TGltaXQ/OiBudW1iZXIpIHtcbiAgICBsZXQgdXVpZCA9ICdiZDA3YzkzMC1lZGI5LTQxMTItYTIwZi0wM2YwOTZmNTM2NjYnO1xuXG4gICAgLy8gaWYgdXNlciBzcGVjaWZ5IGEgY3VzdG9tIG1lbW9yeSBsaW1pdCwgZGVmaW5lIGFub3RoZXIgc2luZ2xldG9uIGhhbmRsZXJcbiAgICAvLyB3aXRoIHRoaXMgY29uZmlndXJhdGlvbi4gb3RoZXJ3aXNlLCBpdCB3b24ndCBiZSBwb3NzaWJsZSB0byB1c2UgbXVsdGlwbGVcbiAgICAvLyBjb25maWd1cmF0aW9ucyBzaW5jZSB3ZSBoYXZlIGEgc2luZ2xldG9uLlxuICAgIGlmIChtZW1vcnlMaW1pdCkge1xuICAgICAgaWYgKGNkay5Ub2tlbi5pc1VucmVzb2x2ZWQobWVtb3J5TGltaXQpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignQ2FuXFwndCB1c2UgdG9rZW5zIHdoZW4gc3BlY2lmeWluZyBcIm1lbW9yeUxpbWl0XCIgc2luY2Ugd2UgdXNlIGl0IHRvIGlkZW50aWZ5IHRoZSBzaW5nbGV0b24gY3VzdG9tIHJlc291cmNlIGhhbmRsZXInKTtcbiAgICAgIH1cblxuICAgICAgdXVpZCArPSBgLSR7bWVtb3J5TGltaXQudG9TdHJpbmcoKX1NaUJgO1xuICAgIH1cblxuICAgIHJldHVybiB1dWlkO1xuICB9XG59XG4iXX0=
@@ -8,7 +8,7 @@ This package contains type definitions for Node.js (https://nodejs.org/).
8
8
  Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node.
9
9
 
10
10
  ### Additional Details
11
- * Last updated: Tue, 07 Dec 2021 06:31:07 GMT
11
+ * Last updated: Wed, 15 Dec 2021 21:31:06 GMT
12
12
  * Dependencies: none
13
13
  * Global values: `AbortController`, `AbortSignal`, `__dirname`, `__filename`, `console`, `exports`, `gc`, `global`, `module`, `process`, `require`
14
14
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * The `assert` module provides a set of assertion functions for verifying
3
3
  * invariants.
4
- * @see [source](https://github.com/nodejs/node/blob/v16.9.0/lib/assert.js)
4
+ * @see [source](https://github.com/nodejs/node/blob/v17.0.0/lib/assert.js)
5
5
  */
6
6
  declare module 'assert' {
7
7
  /**
@@ -6,7 +6,7 @@
6
6
  * import async_hooks from 'async_hooks';
7
7
  * ```
8
8
  * @experimental
9
- * @see [source](https://github.com/nodejs/node/blob/v16.9.0/lib/async_hooks.js)
9
+ * @see [source](https://github.com/nodejs/node/blob/v17.0.0/lib/async_hooks.js)
10
10
  */
11
11
  declare module 'async_hooks' {
12
12
  /**
@@ -395,8 +395,9 @@ declare module 'async_hooks' {
395
395
  getStore(): T | undefined;
396
396
  /**
397
397
  * Runs a function synchronously within a context and returns its
398
- * return value. The store is not accessible outside of the callback function or
399
- * the asynchronous operations created within the callback.
398
+ * return value. The store is not accessible outside of the callback function.
399
+ * The store is accessible to any asynchronous operations created within the
400
+ * callback.
400
401
  *
401
402
  * The optional `args` are passed to the callback function.
402
403
  *
@@ -410,6 +411,9 @@ declare module 'async_hooks' {
410
411
  * try {
411
412
  * asyncLocalStorage.run(store, () => {
412
413
  * asyncLocalStorage.getStore(); // Returns the store object
414
+ * setTimeout(() => {
415
+ * asyncLocalStorage.getStore(); // Returns the store object
416
+ * }, 200);
413
417
  * throw new Error();
414
418
  * });
415
419
  * } catch (e) {
@@ -41,7 +41,7 @@
41
41
  * // Creates a Buffer containing the Latin-1 bytes [0x74, 0xe9, 0x73, 0x74].
42
42
  * const buf7 = Buffer.from('tést', 'latin1');
43
43
  * ```
44
- * @see [source](https://github.com/nodejs/node/blob/v16.9.0/lib/buffer.js)
44
+ * @see [source](https://github.com/nodejs/node/blob/v17.0.0/lib/buffer.js)
45
45
  */
46
46
  declare module 'buffer' {
47
47
  import { BinaryLike } from 'node:crypto';
@@ -113,18 +113,18 @@ declare module 'buffer' {
113
113
  /**
114
114
  * A [`Blob`](https://developer.mozilla.org/en-US/docs/Web/API/Blob) encapsulates immutable, raw data that can be safely shared across
115
115
  * multiple worker threads.
116
- * @since v15.7.0
116
+ * @since v15.7.0, v14.18.0
117
117
  * @experimental
118
118
  */
119
119
  export class Blob {
120
120
  /**
121
121
  * The total size of the `Blob` in bytes.
122
- * @since v15.7.0
122
+ * @since v15.7.0, v14.18.0
123
123
  */
124
124
  readonly size: number;
125
125
  /**
126
126
  * The content-type of the `Blob`.
127
- * @since v15.7.0
127
+ * @since v15.7.0, v14.18.0
128
128
  */
129
129
  readonly type: string;
130
130
  /**
@@ -139,13 +139,13 @@ declare module 'buffer' {
139
139
  /**
140
140
  * Returns a promise that fulfills with an [ArrayBuffer](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer) containing a copy of
141
141
  * the `Blob` data.
142
- * @since v15.7.0
142
+ * @since v15.7.0, v14.18.0
143
143
  */
144
144
  arrayBuffer(): Promise<ArrayBuffer>;
145
145
  /**
146
146
  * Creates and returns a new `Blob` containing a subset of this `Blob` objects
147
147
  * data. The original `Blob` is not altered.
148
- * @since v15.7.0
148
+ * @since v15.7.0, v14.18.0
149
149
  * @param start The starting index.
150
150
  * @param end The ending index.
151
151
  * @param type The content-type for the new `Blob`
@@ -154,7 +154,7 @@ declare module 'buffer' {
154
154
  /**
155
155
  * Returns a promise that fulfills with the contents of the `Blob` decoded as a
156
156
  * UTF-8 string.
157
- * @since v15.7.0
157
+ * @since v15.7.0, v14.18.0
158
158
  */
159
159
  text(): Promise<string>;
160
160
  /**
@@ -2114,7 +2114,7 @@ declare module 'buffer' {
2114
2114
  * **binary data and predate the introduction of typed arrays in JavaScript.**
2115
2115
  * **For code running using Node.js APIs, converting between base64-encoded strings**
2116
2116
  * **and binary data should be performed using `Buffer.from(str, 'base64')` and`buf.toString('base64')`.**
2117
- * @since v15.13.0
2117
+ * @since v15.13.0, v14.17.0
2118
2118
  * @deprecated Use `Buffer.from(data, 'base64')` instead.
2119
2119
  * @param data The Base64-encoded input string.
2120
2120
  */
@@ -2130,7 +2130,7 @@ declare module 'buffer' {
2130
2130
  * **binary data and predate the introduction of typed arrays in JavaScript.**
2131
2131
  * **For code running using Node.js APIs, converting between base64-encoded strings**
2132
2132
  * **and binary data should be performed using `Buffer.from(str, 'base64')` and`buf.toString('base64')`.**
2133
- * @since v15.13.0
2133
+ * @since v15.13.0, v14.17.0
2134
2134
  * @deprecated Use `buf.toString('base64')` instead.
2135
2135
  * @param data An ASCII (Latin1) string.
2136
2136
  */
@@ -60,7 +60,7 @@
60
60
  * For certain use cases, such as automating shell scripts, the `synchronous counterparts` may be more convenient. In many cases, however,
61
61
  * the synchronous methods can have significant impact on performance due to
62
62
  * stalling the event loop while spawned processes complete.
63
- * @see [source](https://github.com/nodejs/node/blob/v16.9.0/lib/child_process.js)
63
+ * @see [source](https://github.com/nodejs/node/blob/v17.0.0/lib/child_process.js)
64
64
  */
65
65
  declare module 'child_process' {
66
66
  import { ObjectEncodingOptions } from 'node:fs';
@@ -49,7 +49,7 @@
49
49
  * ```
50
50
  *
51
51
  * On Windows, it is not yet possible to set up a named pipe server in a worker.
52
- * @see [source](https://github.com/nodejs/node/blob/v16.9.0/lib/cluster.js)
52
+ * @see [source](https://github.com/nodejs/node/blob/v17.0.0/lib/cluster.js)
53
53
  */
54
54
  declare module 'cluster' {
55
55
  import * as child from 'node:child_process';
@@ -53,7 +53,7 @@
53
53
  * myConsole.warn(`Danger ${name}! Danger!`);
54
54
  * // Prints: Danger Will Robinson! Danger!, to err
55
55
  * ```
56
- * @see [source](https://github.com/nodejs/node/blob/v16.9.0/lib/console.js)
56
+ * @see [source](https://github.com/nodejs/node/blob/v17.0.0/lib/console.js)
57
57
  */
58
58
  declare module 'console' {
59
59
  import console = require('node:console');
@@ -13,7 +13,7 @@
13
13
  * // Prints:
14
14
  * // c0fa1bc00531bd78ef38c628449c5102aeabd49b5dc3a2a516ea6ea959d6658e
15
15
  * ```
16
- * @see [source](https://github.com/nodejs/node/blob/v16.9.0/lib/crypto.js)
16
+ * @see [source](https://github.com/nodejs/node/blob/v17.0.0/lib/crypto.js)
17
17
  */
18
18
  declare module 'crypto' {
19
19
  import * as stream from 'node:stream';
@@ -3030,7 +3030,7 @@ declare module 'crypto' {
3030
3030
  /**
3031
3031
  * Generates a random [RFC 4122](https://www.rfc-editor.org/rfc/rfc4122.txt) version 4 UUID. The UUID is generated using a
3032
3032
  * cryptographic pseudorandom number generator.
3033
- * @since v15.6.0
3033
+ * @since v15.6.0, v14.17.0
3034
3034
  */
3035
3035
  function randomUUID(options?: RandomUUIDOptions): string;
3036
3036
  interface X509CheckOptions {
@@ -23,7 +23,7 @@
23
23
  * server.bind(41234);
24
24
  * // Prints: server listening 0.0.0.0:41234
25
25
  * ```
26
- * @see [source](https://github.com/nodejs/node/blob/v16.9.0/lib/dgram.js)
26
+ * @see [source](https://github.com/nodejs/node/blob/v17.0.0/lib/dgram.js)
27
27
  */
28
28
  declare module 'dgram' {
29
29
  import { AddressInfo } from 'node:net';
@@ -260,7 +260,7 @@ declare module 'dgram' {
260
260
  *
261
261
  * The `address` argument is a string. If the value of `address` is a host name,
262
262
  * DNS will be used to resolve the address of the host. If `address` is not
263
- * provided or otherwise falsy, `'127.0.0.1'` (for `udp4` sockets) or `'::1'`(for `udp6` sockets) will be used by default.
263
+ * provided or otherwise nullish, `'127.0.0.1'` (for `udp4` sockets) or `'::1'`(for `udp6` sockets) will be used by default.
264
264
  *
265
265
  * If the socket has not been previously bound with a call to `bind`, the socket
266
266
  * is assigned a random port number and is bound to the "all interfaces" address
@@ -20,7 +20,7 @@
20
20
  * should generally include the module name to avoid collisions with data from
21
21
  * other modules.
22
22
  * @experimental
23
- * @see [source](https://github.com/nodejs/node/blob/v16.9.0/lib/diagnostics_channel.js)
23
+ * @see [source](https://github.com/nodejs/node/blob/v17.0.0/lib/diagnostics_channel.js)
24
24
  */
25
25
  declare module 'diagnostics_channel' {
26
26
  /**
@@ -119,7 +119,7 @@ declare module 'dns/promises' {
119
119
  *
120
120
  * <omitted>
121
121
  *
122
- * On error, the `Promise` is rejected with an `Error` object, where `err.code`is one of the `DNS error codes`.
122
+ * On error, the `Promise` is rejected with an `Error` object, where `err.code`is one of the DNS error codes.
123
123
  * @since v10.6.0
124
124
  * @param hostname Host name to resolve.
125
125
  * @param [rrtype='A'] Resource record type.
@@ -189,7 +189,7 @@ declare module 'dns/promises' {
189
189
  * Uses the DNS protocol to resolve `CAA` records for the `hostname`. On success,
190
190
  * the `Promise` is resolved with an array of objects containing available
191
191
  * certification authority authorization records available for the `hostname`(e.g. `[{critical: 0, iodef: 'mailto:pki@example.com'},{critical: 128, issue: 'pki.example.com'}]`).
192
- * @since v15.0.0
192
+ * @since v15.0.0, v14.17.0
193
193
  */
194
194
  function resolveCaa(hostname: string): Promise<CaaRecord[]>;
195
195
  /**
@@ -300,7 +300,7 @@ declare module 'dns/promises' {
300
300
  * Performs a reverse DNS query that resolves an IPv4 or IPv6 address to an
301
301
  * array of host names.
302
302
  *
303
- * On error, the `Promise` is rejected with an `Error` object, where `err.code`is one of the `DNS error codes`.
303
+ * On error, the `Promise` is rejected with an `Error` object, where `err.code`is one of the DNS error codes.
304
304
  * @since v10.6.0
305
305
  */
306
306
  function reverse(ip: string): Promise<string[]>;
@@ -332,14 +332,16 @@ declare module 'dns/promises' {
332
332
  */
333
333
  function setServers(servers: ReadonlyArray<string>): void;
334
334
  /**
335
- * Set the default value of `verbatim` in {@link lookup}. The value could be:
336
- * - `ipv4first`: sets default `verbatim` `false`.
337
- * - `verbatim`: sets default `verbatim` `true`.
335
+ * Set the default value of `verbatim` in `dns.lookup()` and `dnsPromises.lookup()`. The value could be:
338
336
  *
339
- * The default is `ipv4first` and {@link setDefaultResultOrder} have higher priority than `--dns-result-order`.
340
- * When using worker threads, {@link setDefaultResultOrder} from the main thread won't affect the default dns orders in workers.
341
- * @since v14.18.0
342
- * @param order must be 'ipv4first' or 'verbatim'.
337
+ * * `ipv4first`: sets default `verbatim` `false`.
338
+ * * `verbatim`: sets default `verbatim` `true`.
339
+ *
340
+ * The default is `ipv4first` and `dnsPromises.setDefaultResultOrder()` have
341
+ * higher priority than `--dns-result-order`. When using `worker threads`,`dnsPromises.setDefaultResultOrder()` from the main thread won't affect the
342
+ * default dns orders in workers.
343
+ * @since v16.4.0, v14.18.0
344
+ * @param order must be `'ipv4first'` or `'verbatim'`.
343
345
  */
344
346
  function setDefaultResultOrder(order: 'ipv4first' | 'verbatim'): void;
345
347
  class Resolver {
@@ -42,7 +42,7 @@
42
42
  * ```
43
43
  *
44
44
  * See the `Implementation considerations section` for more information.
45
- * @see [source](https://github.com/nodejs/node/blob/v16.9.0/lib/dns.js)
45
+ * @see [source](https://github.com/nodejs/node/blob/v17.0.0/lib/dns.js)
46
46
  */
47
47
  declare module 'dns' {
48
48
  import * as dnsPromises from 'node:dns/promises';
@@ -58,6 +58,9 @@ declare module 'dns' {
58
58
  family?: number | undefined;
59
59
  hints?: number | undefined;
60
60
  all?: boolean | undefined;
61
+ /**
62
+ * @default true
63
+ */
61
64
  verbatim?: boolean | undefined;
62
65
  }
63
66
  export interface LookupOneOptions extends LookupOptions {
@@ -241,7 +244,7 @@ declare module 'dns' {
241
244
  *
242
245
  * <omitted>
243
246
  *
244
- * On error, `err` is an `Error` object, where `err.code` is one of the `DNS error codes`.
247
+ * On error, `err` is an `Error` object, where `err.code` is one of theDNS error codes.
245
248
  * @since v0.1.27
246
249
  * @param hostname Host name to resolve.
247
250
  * @param [rrtype='A'] Resource record type.
@@ -314,7 +317,7 @@ declare module 'dns' {
314
317
  * Uses the DNS protocol to resolve `CAA` records for the `hostname`. The`addresses` argument passed to the `callback` function
315
318
  * will contain an array of certification authority authorization records
316
319
  * available for the `hostname` (e.g. `[{critical: 0, iodef: 'mailto:pki@example.com'}, {critical: 128, issue: 'pki.example.com'}]`).
317
- * @since v15.0.0
320
+ * @since v15.0.0, v14.17.0
318
321
  */
319
322
  export function resolveCaa(hostname: string, callback: (err: NodeJS.ErrnoException | null, records: CaaRecord[]) => void): void;
320
323
  export namespace resolveCaa {
@@ -527,14 +530,16 @@ declare module 'dns' {
527
530
  */
528
531
  export function getServers(): string[];
529
532
  /**
530
- * Set the default value of `verbatim` in {@link lookup}. The value could be:
531
- * - `ipv4first`: sets default `verbatim` `false`.
532
- * - `verbatim`: sets default `verbatim` `true`.
533
- *
534
- * The default is `ipv4first` and {@link setDefaultResultOrder} have higher priority than `--dns-result-order`.
535
- * When using worker threads, {@link setDefaultResultOrder} from the main thread won't affect the default dns orders in workers.
536
- * @since v14.18.0
537
- * @param order must be 'ipv4first' or 'verbatim'.
533
+ * Set the default value of `verbatim` in {@link lookup} and `dnsPromises.lookup()`. The value could be:
534
+ *
535
+ * * `ipv4first`: sets default `verbatim` `false`.
536
+ * * `verbatim`: sets default `verbatim` `true`.
537
+ *
538
+ * The default is `ipv4first` and {@link setDefaultResultOrder} have higher
539
+ * priority than `--dns-result-order`. When using `worker threads`,{@link setDefaultResultOrder} from the main thread won't affect the default
540
+ * dns orders in workers.
541
+ * @since v16.4.0, v14.18.0
542
+ * @param order must be `'ipv4first'` or `'verbatim'`.
538
543
  */
539
544
  export function setDefaultResultOrder(order: 'ipv4first' | 'verbatim'): void;
540
545
  // Error codes
@@ -640,7 +645,7 @@ declare module 'dns' {
640
645
  * The resolver will use the v4 local address when making requests to IPv4 DNS
641
646
  * servers, and the v6 local address when making requests to IPv6 DNS servers.
642
647
  * The `rrtype` of resolution requests has no impact on the local address used.
643
- * @since v15.1.0
648
+ * @since v15.1.0, v14.17.0
644
649
  * @param [ipv4='0.0.0.0'] A string representation of an IPv4 address.
645
650
  * @param [ipv6='::0'] A string representation of an IPv6 address.
646
651
  */
@@ -11,7 +11,7 @@
11
11
  * will be notified, rather than losing the context of the error in the`process.on('uncaughtException')` handler, or causing the program to
12
12
  * exit immediately with an error code.
13
13
  * @deprecated Since v1.4.2 - Deprecated
14
- * @see [source](https://github.com/nodejs/node/blob/v16.9.0/lib/domain.js)
14
+ * @see [source](https://github.com/nodejs/node/blob/v17.0.0/lib/domain.js)
15
15
  */
16
16
  declare module 'domain' {
17
17
  import EventEmitter = require('node:events');
@@ -32,7 +32,7 @@
32
32
  * });
33
33
  * myEmitter.emit('event');
34
34
  * ```
35
- * @see [source](https://github.com/nodejs/node/blob/v16.9.0/lib/events.js)
35
+ * @see [source](https://github.com/nodejs/node/blob/v17.0.0/lib/events.js)
36
36
  */
37
37
  declare module 'events' {
38
38
  interface EventEmitterOptions {
@@ -257,7 +257,7 @@ declare module 'events' {
257
257
  * getEventListeners(et, 'foo'); // [listener]
258
258
  * }
259
259
  * ```
260
- * @since v15.2.0
260
+ * @since v15.2.0, v14.17.0
261
261
  */
262
262
  static getEventListeners(emitter: DOMEventTarget | NodeJS.EventEmitter, name: string | symbol): Function[];
263
263
  /**
@@ -42,11 +42,11 @@ declare module 'fs/promises' {
42
42
  mode?: Mode | undefined;
43
43
  flag?: OpenMode | undefined;
44
44
  }
45
- interface FileReadResult<T extends ArrayBufferView> {
45
+ interface FileReadResult<T extends NodeJS.ArrayBufferView> {
46
46
  bytesRead: number;
47
47
  buffer: T;
48
48
  }
49
- interface FileReadOptions<T extends ArrayBufferView = Buffer> {
49
+ interface FileReadOptions<T extends NodeJS.ArrayBufferView = Buffer> {
50
50
  /**
51
51
  * @default `Buffer.alloc(0xffff)`
52
52
  */
@@ -207,8 +207,8 @@ declare module 'fs/promises' {
207
207
  * integer, the current file position will remain unchanged.
208
208
  * @return Fulfills upon success with an object with two properties:
209
209
  */
210
- read<T extends ArrayBufferView>(buffer: T, offset?: number | null, length?: number | null, position?: number | null): Promise<FileReadResult<T>>;
211
- read<T extends ArrayBufferView = Buffer>(options?: FileReadOptions<T>): Promise<FileReadResult<T>>;
210
+ read<T extends NodeJS.ArrayBufferView>(buffer: T, offset?: number | null, length?: number | null, position?: number | null): Promise<FileReadResult<T>>;
211
+ read<T extends NodeJS.ArrayBufferView = Buffer>(options?: FileReadOptions<T>): Promise<FileReadResult<T>>;
212
212
  /**
213
213
  * Asynchronously reads the entire contents of a file.
214
214
  *
@@ -1043,7 +1043,7 @@ declare module 'fs/promises' {
1043
1043
  * disappears in the directory.
1044
1044
  *
1045
1045
  * All the `caveats` for `fs.watch()` also apply to `fsPromises.watch()`.
1046
- * @since v15.9.0
1046
+ * @since v15.9.0, v14.18.0
1047
1047
  * @return of objects with the properties:
1048
1048
  */
1049
1049
  function watch(