cdk-nextjs 0.1.0 → 0.1.1

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 (132) hide show
  1. package/.jsii +13834 -0
  2. package/.prettierrc +0 -0
  3. package/API.md +9655 -0
  4. package/LICENSE +202 -0
  5. package/README.md +164 -2
  6. package/THIRD-PARTY-LICENSES.md +31 -0
  7. package/assets/lambdas/assets-deployment/assets-deployment.lambda/assets-deployment.Dockerfile +18 -0
  8. package/assets/lambdas/assets-deployment/assets-deployment.lambda/index.js +8833 -0
  9. package/assets/lambdas/revalidate/revalidate.lambda/index.js +67 -0
  10. package/assets/lambdas/sign-fn-url/sign-fn-url.edge-lambda/index.js +2024 -0
  11. package/docs/breaking-changes.md +8 -0
  12. package/docs/cdk-nextjs-NextjsGlobalContainers.png +0 -0
  13. package/docs/cdk-nextjs-NextjsGlobalFunctions.png +0 -0
  14. package/docs/cdk-nextjs-NextjsRegionalContainers.png +0 -0
  15. package/docs/cdk-nextjs.drawio +163 -0
  16. package/docs/notes.md +26 -0
  17. package/examples/README.md +15 -0
  18. package/lib/common.d.ts +23 -0
  19. package/lib/common.js +28 -0
  20. package/lib/generated-structs/OptionalApplicationLoadBalancedTaskImageOptions.d.ts +106 -0
  21. package/lib/generated-structs/OptionalApplicationLoadBalancedTaskImageOptions.js +3 -0
  22. package/lib/generated-structs/OptionalCloudFrontFunctionProps.d.ts +43 -0
  23. package/lib/generated-structs/OptionalCloudFrontFunctionProps.js +3 -0
  24. package/lib/generated-structs/OptionalClusterProps.d.ts +62 -0
  25. package/lib/generated-structs/OptionalClusterProps.js +3 -0
  26. package/lib/generated-structs/OptionalDistributionProps.d.ts +155 -0
  27. package/lib/generated-structs/OptionalDistributionProps.js +3 -0
  28. package/lib/generated-structs/OptionalDockerImageAssetProps.d.ts +124 -0
  29. package/lib/generated-structs/OptionalDockerImageAssetProps.js +3 -0
  30. package/lib/generated-structs/OptionalDockerImageFunctionProps.d.ts +399 -0
  31. package/lib/generated-structs/OptionalDockerImageFunctionProps.js +3 -0
  32. package/lib/generated-structs/OptionalEdgeFunctionProps.d.ts +428 -0
  33. package/lib/generated-structs/OptionalEdgeFunctionProps.js +3 -0
  34. package/lib/generated-structs/OptionalFunctionProps.d.ts +422 -0
  35. package/lib/generated-structs/OptionalFunctionProps.js +3 -0
  36. package/lib/generated-structs/OptionalFunctionUrlProps.d.ts +30 -0
  37. package/lib/generated-structs/OptionalFunctionUrlProps.js +3 -0
  38. package/lib/generated-structs/OptionalNextjsAssetsDeploymentProps.d.ts +40 -0
  39. package/lib/generated-structs/OptionalNextjsAssetsDeploymentProps.js +3 -0
  40. package/lib/generated-structs/OptionalNextjsBuildProps.d.ts +26 -0
  41. package/lib/generated-structs/OptionalNextjsBuildProps.js +3 -0
  42. package/lib/generated-structs/OptionalNextjsContainersProps.d.ts +39 -0
  43. package/lib/generated-structs/OptionalNextjsContainersProps.js +3 -0
  44. package/lib/generated-structs/OptionalNextjsDistributionProps.d.ts +45 -0
  45. package/lib/generated-structs/OptionalNextjsDistributionProps.js +3 -0
  46. package/lib/generated-structs/OptionalNextjsFileSystemProps.d.ts +10 -0
  47. package/lib/generated-structs/OptionalNextjsFileSystemProps.js +3 -0
  48. package/lib/generated-structs/OptionalNextjsInvalidationProps.d.ts +11 -0
  49. package/lib/generated-structs/OptionalNextjsInvalidationProps.js +3 -0
  50. package/lib/generated-structs/OptionalNextjsVpcProps.d.ts +16 -0
  51. package/lib/generated-structs/OptionalNextjsVpcProps.js +3 -0
  52. package/lib/generated-structs/OptionalS3OriginBucketWithOACProps.d.ts +70 -0
  53. package/lib/generated-structs/OptionalS3OriginBucketWithOACProps.js +3 -0
  54. package/lib/generated-structs/OptionalVpcProps.d.ts +224 -0
  55. package/lib/generated-structs/OptionalVpcProps.js +3 -0
  56. package/lib/index.d.ts +35 -0
  57. package/lib/index.js +32 -0
  58. package/lib/lambdas/assets-deployment/assets-deployment-function.d.ts +13 -0
  59. package/lib/lambdas/assets-deployment/assets-deployment-function.js +22 -0
  60. package/lib/lambdas/assets-deployment/assets-deployment.lambda.d.ts +2 -0
  61. package/lib/lambdas/assets-deployment/assets-deployment.lambda.js +63 -0
  62. package/lib/lambdas/assets-deployment/common.d.ts +8 -0
  63. package/lib/lambdas/assets-deployment/common.js +32 -0
  64. package/lib/lambdas/assets-deployment/fs-to-fs.d.ts +2 -0
  65. package/lib/lambdas/assets-deployment/fs-to-fs.js +9 -0
  66. package/lib/lambdas/assets-deployment/fs-to-s3.d.ts +2 -0
  67. package/lib/lambdas/assets-deployment/fs-to-s3.js +45 -0
  68. package/lib/lambdas/assets-deployment/prune-s3.d.ts +15 -0
  69. package/lib/lambdas/assets-deployment/prune-s3.js +42 -0
  70. package/lib/lambdas/assets-deployment/s3.d.ts +2 -0
  71. package/lib/lambdas/assets-deployment/s3.js +7 -0
  72. package/lib/lambdas/assets-deployment/utils.d.ts +18 -0
  73. package/lib/lambdas/assets-deployment/utils.js +35 -0
  74. package/lib/lambdas/revalidate/revalidate-function.d.ts +13 -0
  75. package/lib/lambdas/revalidate/revalidate-function.js +22 -0
  76. package/lib/lambdas/revalidate/revalidate.lambda.d.ts +2 -0
  77. package/lib/lambdas/revalidate/revalidate.lambda.js +53 -0
  78. package/lib/lambdas/sign-fn-url/sign-fn-url-function.d.ts +13 -0
  79. package/lib/lambdas/sign-fn-url/sign-fn-url-function.js +23 -0
  80. package/lib/lambdas/sign-fn-url/sign-fn-url.edge-lambda.d.ts +9 -0
  81. package/lib/lambdas/sign-fn-url/sign-fn-url.edge-lambda.js +35 -0
  82. package/lib/lambdas/sign-fn-url/sign-request.d.ts +28 -0
  83. package/lib/lambdas/sign-fn-url/sign-request.js +119 -0
  84. package/lib/lambdas/sign-fn-url/sign-request.test.d.ts +1 -0
  85. package/lib/lambdas/sign-fn-url/sign-request.test.js +129 -0
  86. package/lib/nextjs-assets-deployment.d.ts +116 -0
  87. package/lib/nextjs-assets-deployment.js +93 -0
  88. package/lib/nextjs-build/add-cache-handler.d.ts +1 -0
  89. package/lib/nextjs-build/add-cache-handler.js +23 -0
  90. package/lib/nextjs-build/add-cache-handler.mjs +18 -0
  91. package/lib/nextjs-build/builder.Dockerfile +25 -0
  92. package/lib/nextjs-build/cache-handler.cjs +21080 -0
  93. package/lib/nextjs-build/cache-handler.d.ts +6 -0
  94. package/lib/nextjs-build/cache-handler.js +22 -0
  95. package/lib/nextjs-build/global-containers.Dockerfile +45 -0
  96. package/lib/nextjs-build/global-functions.Dockerfile +46 -0
  97. package/lib/nextjs-build/nextjs-build.d.ts +150 -0
  98. package/lib/nextjs-build/nextjs-build.js +220 -0
  99. package/lib/nextjs-build/regional-containers.Dockerfile +45 -0
  100. package/lib/nextjs-build/symlink-full-route-cache.d.ts +1 -0
  101. package/lib/nextjs-build/symlink-full-route-cache.js +37 -0
  102. package/lib/nextjs-build/symlink-full-route-cache.mjs +23 -0
  103. package/lib/nextjs-compute/nextjs-compute-base-props.d.ts +8 -0
  104. package/lib/nextjs-compute/nextjs-compute-base-props.js +3 -0
  105. package/lib/nextjs-compute/nextjs-containers.d.ts +43 -0
  106. package/lib/nextjs-compute/nextjs-containers.js +149 -0
  107. package/lib/nextjs-compute/nextjs-functions.d.ts +23 -0
  108. package/lib/nextjs-compute/nextjs-functions.js +57 -0
  109. package/lib/nextjs-distribution.d.ts +107 -0
  110. package/lib/nextjs-distribution.js +331 -0
  111. package/lib/nextjs-file-system.d.ts +42 -0
  112. package/lib/nextjs-file-system.js +74 -0
  113. package/lib/nextjs-invalidation.d.ts +19 -0
  114. package/lib/nextjs-invalidation.js +52 -0
  115. package/lib/nextjs-revalidation.d.ts +30 -0
  116. package/lib/nextjs-revalidation.js +65 -0
  117. package/lib/nextjs-static-assets.d.ts +21 -0
  118. package/lib/nextjs-static-assets.js +33 -0
  119. package/lib/nextjs-vpc.d.ts +42 -0
  120. package/lib/nextjs-vpc.js +64 -0
  121. package/lib/root-constructs/nextjs-base-overrides.d.ts +26 -0
  122. package/lib/root-constructs/nextjs-base-overrides.js +3 -0
  123. package/lib/root-constructs/nextjs-base-props.d.ts +56 -0
  124. package/lib/root-constructs/nextjs-base-props.js +3 -0
  125. package/lib/root-constructs/nextjs-global-containers.d.ts +74 -0
  126. package/lib/root-constructs/nextjs-global-containers.js +125 -0
  127. package/lib/root-constructs/nextjs-global-functions.d.ts +76 -0
  128. package/lib/root-constructs/nextjs-global-functions.js +131 -0
  129. package/lib/root-constructs/nextjs-regional-containers.d.ts +43 -0
  130. package/lib/root-constructs/nextjs-regional-containers.js +92 -0
  131. package/package.json +163 -2
  132. package/dist/index.js +0 -1
@@ -0,0 +1,155 @@
1
+ import type { aws_certificatemanager, aws_cloudfront, aws_s3 } from 'aws-cdk-lib';
2
+ /**
3
+ * OptionalDistributionProps
4
+ */
5
+ export interface OptionalDistributionProps {
6
+ /**
7
+ * Unique identifier that specifies the AWS WAF web ACL to associate with this CloudFront distribution.
8
+ * To specify a web ACL created using the latest version of AWS WAF, use the ACL ARN, for example
9
+ * `arn:aws:wafv2:us-east-1:123456789012:global/webacl/ExampleWebACL/473e64fd-f30b-4765-81a0-62ad96dd167a`.
10
+ * To specify a web ACL created using AWS WAF Classic, use the ACL ID, for example `473e64fd-f30b-4765-81a0-62ad96dd167a`.
11
+ * @default - No AWS Web Application Firewall web access control list (web ACL).
12
+ * @stability stable
13
+ */
14
+ readonly webAclId?: string;
15
+ /**
16
+ * The SSL method CloudFront will use for your distribution.
17
+ * Server Name Indication (SNI) - is an extension to the TLS computer networking protocol by which a client indicates
18
+ * which hostname it is attempting to connect to at the start of the handshaking process. This allows a server to present
19
+ * multiple certificates on the same IP address and TCP port number and hence allows multiple secure (HTTPS) websites
20
+ * (or any other service over TLS) to be served by the same IP address without requiring all those sites to use the same certificate.
21
+ *
22
+ * CloudFront can use SNI to host multiple distributions on the same IP - which a large majority of clients will support.
23
+ *
24
+ * If your clients cannot support SNI however - CloudFront can use dedicated IPs for your distribution - but there is a prorated monthly charge for
25
+ * using this feature. By default, we use SNI - but you can optionally enable dedicated IPs (VIP).
26
+ *
27
+ * See the CloudFront SSL for more details about pricing : https://aws.amazon.com/cloudfront/custom-ssl-domains/
28
+ * @default SSLMethod.SNI
29
+ * @stability stable
30
+ */
31
+ readonly sslSupportMethod?: aws_cloudfront.SSLMethod;
32
+ /**
33
+ * Whether to enable additional CloudWatch metrics.
34
+ * @default false
35
+ * @stability stable
36
+ */
37
+ readonly publishAdditionalMetrics?: boolean;
38
+ /**
39
+ * The price class that corresponds with the maximum price that you want to pay for CloudFront service.
40
+ * If you specify PriceClass_All, CloudFront responds to requests for your objects from all CloudFront edge locations.
41
+ * If you specify a price class other than PriceClass_All, CloudFront serves your objects from the CloudFront edge location
42
+ * that has the lowest latency among the edge locations in your price class.
43
+ * @default PriceClass.PRICE_CLASS_ALL
44
+ * @stability stable
45
+ */
46
+ readonly priceClass?: aws_cloudfront.PriceClass;
47
+ /**
48
+ * The minimum version of the SSL protocol that you want CloudFront to use for HTTPS connections.
49
+ * CloudFront serves your objects only to browsers or devices that support at
50
+ * least the SSL version that you specify.
51
+ * @default - SecurityPolicyProtocol.TLS_V1_2_2021 if the '@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021' feature flag is set; otherwise, SecurityPolicyProtocol.TLS_V1_2_2019.
52
+ * @stability stable
53
+ */
54
+ readonly minimumProtocolVersion?: aws_cloudfront.SecurityPolicyProtocol;
55
+ /**
56
+ * Specifies whether you want CloudFront to include cookies in access logs.
57
+ * @default false
58
+ * @stability stable
59
+ */
60
+ readonly logIncludesCookies?: boolean;
61
+ /**
62
+ * An optional string that you want CloudFront to prefix to the access log filenames for this distribution.
63
+ * @default - no prefix
64
+ * @stability stable
65
+ */
66
+ readonly logFilePrefix?: string;
67
+ /**
68
+ * The Amazon S3 bucket to store the access logs in.
69
+ * Make sure to set `objectOwnership` to `s3.ObjectOwnership.OBJECT_WRITER` in your custom bucket.
70
+ * @default - A bucket is created if `enableLogging` is true
71
+ * @stability stable
72
+ */
73
+ readonly logBucket?: aws_s3.IBucket;
74
+ /**
75
+ * Specify the maximum HTTP version that you want viewers to use to communicate with CloudFront.
76
+ * For viewers and CloudFront to use HTTP/2, viewers must support TLS 1.2 or later, and must support server name identification (SNI).
77
+ * @default HttpVersion.HTTP2
78
+ * @stability stable
79
+ */
80
+ readonly httpVersion?: aws_cloudfront.HttpVersion;
81
+ /**
82
+ * Controls the countries in which your content is distributed.
83
+ * @default - No geographic restrictions
84
+ * @stability stable
85
+ */
86
+ readonly geoRestriction?: aws_cloudfront.GeoRestriction;
87
+ /**
88
+ * How CloudFront should handle requests that are not successful (e.g., PageNotFound).
89
+ * @default - No custom error responses.
90
+ * @stability stable
91
+ */
92
+ readonly errorResponses?: Array<aws_cloudfront.ErrorResponse>;
93
+ /**
94
+ * Enable access logging for the distribution.
95
+ * @default - false, unless `logBucket` is specified.
96
+ * @stability stable
97
+ */
98
+ readonly enableLogging?: boolean;
99
+ /**
100
+ * Whether CloudFront will respond to IPv6 DNS requests with an IPv6 address.
101
+ * If you specify false, CloudFront responds to IPv6 DNS requests with the DNS response code NOERROR and with no IP addresses.
102
+ * This allows viewers to submit a second request, for an IPv4 address for your distribution.
103
+ * @default true
104
+ * @stability stable
105
+ */
106
+ readonly enableIpv6?: boolean;
107
+ /**
108
+ * Enable or disable the distribution.
109
+ * @default true
110
+ * @stability stable
111
+ */
112
+ readonly enabled?: boolean;
113
+ /**
114
+ * Alternative domain names for this distribution.
115
+ * If you want to use your own domain name, such as www.example.com, instead of the cloudfront.net domain name,
116
+ * you can add an alternate domain name to your distribution. If you attach a certificate to the distribution,
117
+ * you should add (at least one of) the domain names of the certificate to this list.
118
+ *
119
+ * When you want to move a domain name between distributions, you can associate a certificate without specifying any domain names.
120
+ * For more information, see the _Moving an alternate domain name to a different distribution_ section in the README.
121
+ * @default - The distribution will only support the default generated name (e.g., d111111abcdef8.cloudfront.net)
122
+ * @stability stable
123
+ */
124
+ readonly domainNames?: Array<string>;
125
+ /**
126
+ * The object that you want CloudFront to request from your origin (for example, index.html) when a viewer requests the root URL for your distribution. If no default object is set, the request goes to the origin's root (e.g., example.com/).
127
+ * @default - no default root object
128
+ * @stability stable
129
+ */
130
+ readonly defaultRootObject?: string;
131
+ /**
132
+ * Any comments you want to include about the distribution.
133
+ * @default - no comment
134
+ * @stability stable
135
+ */
136
+ readonly comment?: string;
137
+ /**
138
+ * A certificate to associate with the distribution.
139
+ * The certificate must be located in N. Virginia (us-east-1).
140
+ * @default - the CloudFront wildcard certificate (*.cloudfront.net) will be used.
141
+ * @stability stable
142
+ */
143
+ readonly certificate?: aws_certificatemanager.ICertificate;
144
+ /**
145
+ * Additional behaviors for the distribution, mapped by the pathPattern that specifies which requests to apply the behavior to.
146
+ * @default - no additional behaviors are added.
147
+ * @stability stable
148
+ */
149
+ readonly additionalBehaviors?: Record<string, aws_cloudfront.BehaviorOptions>;
150
+ /**
151
+ * The default behavior for the distribution.
152
+ * @stability stable
153
+ */
154
+ readonly defaultBehavior?: aws_cloudfront.BehaviorOptions;
155
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3B0aW9uYWxEaXN0cmlidXRpb25Qcm9wcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9nZW5lcmF0ZWQtc3RydWN0cy9PcHRpb25hbERpc3RyaWJ1dGlvblByb3BzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyB+fiBHZW5lcmF0ZWQgYnkgcHJvamVuLiBUbyBtb2RpZnksIGVkaXQgLnByb2plbnJjLnRzIGFuZCBydW4gXCJwbnBtIGRseCBwcm9qZW5cIi5cbmltcG9ydCB0eXBlIHsgYXdzX2NlcnRpZmljYXRlbWFuYWdlciwgYXdzX2Nsb3VkZnJvbnQsIGF3c19zMyB9IGZyb20gJ2F3cy1jZGstbGliJztcblxuLyoqXG4gKiBPcHRpb25hbERpc3RyaWJ1dGlvblByb3BzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT3B0aW9uYWxEaXN0cmlidXRpb25Qcm9wcyB7XG4gIC8qKlxuICAgKiBVbmlxdWUgaWRlbnRpZmllciB0aGF0IHNwZWNpZmllcyB0aGUgQVdTIFdBRiB3ZWIgQUNMIHRvIGFzc29jaWF0ZSB3aXRoIHRoaXMgQ2xvdWRGcm9udCBkaXN0cmlidXRpb24uXG4gICAqIFRvIHNwZWNpZnkgYSB3ZWIgQUNMIGNyZWF0ZWQgdXNpbmcgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIEFXUyBXQUYsIHVzZSB0aGUgQUNMIEFSTiwgZm9yIGV4YW1wbGVcbiAgICogYGFybjphd3M6d2FmdjI6dXMtZWFzdC0xOjEyMzQ1Njc4OTAxMjpnbG9iYWwvd2ViYWNsL0V4YW1wbGVXZWJBQ0wvNDczZTY0ZmQtZjMwYi00NzY1LTgxYTAtNjJhZDk2ZGQxNjdhYC5cbiAgICogVG8gc3BlY2lmeSBhIHdlYiBBQ0wgY3JlYXRlZCB1c2luZyBBV1MgV0FGIENsYXNzaWMsIHVzZSB0aGUgQUNMIElELCBmb3IgZXhhbXBsZSBgNDczZTY0ZmQtZjMwYi00NzY1LTgxYTAtNjJhZDk2ZGQxNjdhYC5cbiAgICogQGRlZmF1bHQgLSBObyBBV1MgV2ViIEFwcGxpY2F0aW9uIEZpcmV3YWxsIHdlYiBhY2Nlc3MgY29udHJvbCBsaXN0ICh3ZWIgQUNMKS5cbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IHdlYkFjbElkPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIFNTTCBtZXRob2QgQ2xvdWRGcm9udCB3aWxsIHVzZSBmb3IgeW91ciBkaXN0cmlidXRpb24uXG4gICAqIFNlcnZlciBOYW1lIEluZGljYXRpb24gKFNOSSkgLSBpcyBhbiBleHRlbnNpb24gdG8gdGhlIFRMUyBjb21wdXRlciBuZXR3b3JraW5nIHByb3RvY29sIGJ5IHdoaWNoIGEgY2xpZW50IGluZGljYXRlc1xuICAgKiB3aGljaCBob3N0bmFtZSBpdCBpcyBhdHRlbXB0aW5nIHRvIGNvbm5lY3QgdG8gYXQgdGhlIHN0YXJ0IG9mIHRoZSBoYW5kc2hha2luZyBwcm9jZXNzLiBUaGlzIGFsbG93cyBhIHNlcnZlciB0byBwcmVzZW50XG4gICAqIG11bHRpcGxlIGNlcnRpZmljYXRlcyBvbiB0aGUgc2FtZSBJUCBhZGRyZXNzIGFuZCBUQ1AgcG9ydCBudW1iZXIgYW5kIGhlbmNlIGFsbG93cyBtdWx0aXBsZSBzZWN1cmUgKEhUVFBTKSB3ZWJzaXRlc1xuICAgKiAob3IgYW55IG90aGVyIHNlcnZpY2Ugb3ZlciBUTFMpIHRvIGJlIHNlcnZlZCBieSB0aGUgc2FtZSBJUCBhZGRyZXNzIHdpdGhvdXQgcmVxdWlyaW5nIGFsbCB0aG9zZSBzaXRlcyB0byB1c2UgdGhlIHNhbWUgY2VydGlmaWNhdGUuXG4gICAqXG4gICAqIENsb3VkRnJvbnQgY2FuIHVzZSBTTkkgdG8gaG9zdCBtdWx0aXBsZSBkaXN0cmlidXRpb25zIG9uIHRoZSBzYW1lIElQIC0gd2hpY2ggYSBsYXJnZSBtYWpvcml0eSBvZiBjbGllbnRzIHdpbGwgc3VwcG9ydC5cbiAgICpcbiAgICogSWYgeW91ciBjbGllbnRzIGNhbm5vdCBzdXBwb3J0IFNOSSBob3dldmVyIC0gQ2xvdWRGcm9udCBjYW4gdXNlIGRlZGljYXRlZCBJUHMgZm9yIHlvdXIgZGlzdHJpYnV0aW9uIC0gYnV0IHRoZXJlIGlzIGEgcHJvcmF0ZWQgbW9udGhseSBjaGFyZ2UgZm9yXG4gICAqIHVzaW5nIHRoaXMgZmVhdHVyZS4gQnkgZGVmYXVsdCwgd2UgdXNlIFNOSSAtIGJ1dCB5b3UgY2FuIG9wdGlvbmFsbHkgZW5hYmxlIGRlZGljYXRlZCBJUHMgKFZJUCkuXG4gICAqXG4gICAqIFNlZSB0aGUgQ2xvdWRGcm9udCBTU0wgZm9yIG1vcmUgZGV0YWlscyBhYm91dCBwcmljaW5nIDogaHR0cHM6Ly9hd3MuYW1hem9uLmNvbS9jbG91ZGZyb250L2N1c3RvbS1zc2wtZG9tYWlucy9cbiAgICogQGRlZmF1bHQgU1NMTWV0aG9kLlNOSVxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgc3NsU3VwcG9ydE1ldGhvZD86IGF3c19jbG91ZGZyb250LlNTTE1ldGhvZDtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZW5hYmxlIGFkZGl0aW9uYWwgQ2xvdWRXYXRjaCBtZXRyaWNzLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgcHVibGlzaEFkZGl0aW9uYWxNZXRyaWNzPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFRoZSBwcmljZSBjbGFzcyB0aGF0IGNvcnJlc3BvbmRzIHdpdGggdGhlIG1heGltdW0gcHJpY2UgdGhhdCB5b3Ugd2FudCB0byBwYXkgZm9yIENsb3VkRnJvbnQgc2VydmljZS5cbiAgICogSWYgeW91IHNwZWNpZnkgUHJpY2VDbGFzc19BbGwsIENsb3VkRnJvbnQgcmVzcG9uZHMgdG8gcmVxdWVzdHMgZm9yIHlvdXIgb2JqZWN0cyBmcm9tIGFsbCBDbG91ZEZyb250IGVkZ2UgbG9jYXRpb25zLlxuICAgKiBJZiB5b3Ugc3BlY2lmeSBhIHByaWNlIGNsYXNzIG90aGVyIHRoYW4gUHJpY2VDbGFzc19BbGwsIENsb3VkRnJvbnQgc2VydmVzIHlvdXIgb2JqZWN0cyBmcm9tIHRoZSBDbG91ZEZyb250IGVkZ2UgbG9jYXRpb25cbiAgICogdGhhdCBoYXMgdGhlIGxvd2VzdCBsYXRlbmN5IGFtb25nIHRoZSBlZGdlIGxvY2F0aW9ucyBpbiB5b3VyIHByaWNlIGNsYXNzLlxuICAgKiBAZGVmYXVsdCBQcmljZUNsYXNzLlBSSUNFX0NMQVNTX0FMTFxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgcHJpY2VDbGFzcz86IGF3c19jbG91ZGZyb250LlByaWNlQ2xhc3M7XG4gIC8qKlxuICAgKiBUaGUgbWluaW11bSB2ZXJzaW9uIG9mIHRoZSBTU0wgcHJvdG9jb2wgdGhhdCB5b3Ugd2FudCBDbG91ZEZyb250IHRvIHVzZSBmb3IgSFRUUFMgY29ubmVjdGlvbnMuXG4gICAqIENsb3VkRnJvbnQgc2VydmVzIHlvdXIgb2JqZWN0cyBvbmx5IHRvIGJyb3dzZXJzIG9yIGRldmljZXMgdGhhdCBzdXBwb3J0IGF0XG4gICAqIGxlYXN0IHRoZSBTU0wgdmVyc2lvbiB0aGF0IHlvdSBzcGVjaWZ5LlxuICAgKiBAZGVmYXVsdCAtIFNlY3VyaXR5UG9saWN5UHJvdG9jb2wuVExTX1YxXzJfMjAyMSBpZiB0aGUgJ0Bhd3MtY2RrL2F3cy1jbG91ZGZyb250OmRlZmF1bHRTZWN1cml0eVBvbGljeVRMU3YxLjJfMjAyMScgZmVhdHVyZSBmbGFnIGlzIHNldDsgb3RoZXJ3aXNlLCBTZWN1cml0eVBvbGljeVByb3RvY29sLlRMU19WMV8yXzIwMTkuXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBtaW5pbXVtUHJvdG9jb2xWZXJzaW9uPzogYXdzX2Nsb3VkZnJvbnQuU2VjdXJpdHlQb2xpY3lQcm90b2NvbDtcbiAgLyoqXG4gICAqIFNwZWNpZmllcyB3aGV0aGVyIHlvdSB3YW50IENsb3VkRnJvbnQgdG8gaW5jbHVkZSBjb29raWVzIGluIGFjY2VzcyBsb2dzLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgbG9nSW5jbHVkZXNDb29raWVzPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEFuIG9wdGlvbmFsIHN0cmluZyB0aGF0IHlvdSB3YW50IENsb3VkRnJvbnQgdG8gcHJlZml4IHRvIHRoZSBhY2Nlc3MgbG9nIGZpbGVuYW1lcyBmb3IgdGhpcyBkaXN0cmlidXRpb24uXG4gICAqIEBkZWZhdWx0IC0gbm8gcHJlZml4XG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBsb2dGaWxlUHJlZml4Pzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIEFtYXpvbiBTMyBidWNrZXQgdG8gc3RvcmUgdGhlIGFjY2VzcyBsb2dzIGluLlxuICAgKiBNYWtlIHN1cmUgdG8gc2V0IGBvYmplY3RPd25lcnNoaXBgIHRvIGBzMy5PYmplY3RPd25lcnNoaXAuT0JKRUNUX1dSSVRFUmAgaW4geW91ciBjdXN0b20gYnVja2V0LlxuICAgKiBAZGVmYXVsdCAtIEEgYnVja2V0IGlzIGNyZWF0ZWQgaWYgYGVuYWJsZUxvZ2dpbmdgIGlzIHRydWVcbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGxvZ0J1Y2tldD86IGF3c19zMy5JQnVja2V0O1xuICAvKipcbiAgICogU3BlY2lmeSB0aGUgbWF4aW11bSBIVFRQIHZlcnNpb24gdGhhdCB5b3Ugd2FudCB2aWV3ZXJzIHRvIHVzZSB0byBjb21tdW5pY2F0ZSB3aXRoIENsb3VkRnJvbnQuXG4gICAqIEZvciB2aWV3ZXJzIGFuZCBDbG91ZEZyb250IHRvIHVzZSBIVFRQLzIsIHZpZXdlcnMgbXVzdCBzdXBwb3J0IFRMUyAxLjIgb3IgbGF0ZXIsIGFuZCBtdXN0IHN1cHBvcnQgc2VydmVyIG5hbWUgaWRlbnRpZmljYXRpb24gKFNOSSkuXG4gICAqIEBkZWZhdWx0IEh0dHBWZXJzaW9uLkhUVFAyXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBodHRwVmVyc2lvbj86IGF3c19jbG91ZGZyb250Lkh0dHBWZXJzaW9uO1xuICAvKipcbiAgICogQ29udHJvbHMgdGhlIGNvdW50cmllcyBpbiB3aGljaCB5b3VyIGNvbnRlbnQgaXMgZGlzdHJpYnV0ZWQuXG4gICAqIEBkZWZhdWx0IC0gTm8gZ2VvZ3JhcGhpYyByZXN0cmljdGlvbnNcbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGdlb1Jlc3RyaWN0aW9uPzogYXdzX2Nsb3VkZnJvbnQuR2VvUmVzdHJpY3Rpb247XG4gIC8qKlxuICAgKiBIb3cgQ2xvdWRGcm9udCBzaG91bGQgaGFuZGxlIHJlcXVlc3RzIHRoYXQgYXJlIG5vdCBzdWNjZXNzZnVsIChlLmcuLCBQYWdlTm90Rm91bmQpLlxuICAgKiBAZGVmYXVsdCAtIE5vIGN1c3RvbSBlcnJvciByZXNwb25zZXMuXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBlcnJvclJlc3BvbnNlcz86IEFycmF5PGF3c19jbG91ZGZyb250LkVycm9yUmVzcG9uc2U+O1xuICAvKipcbiAgICogRW5hYmxlIGFjY2VzcyBsb2dnaW5nIGZvciB0aGUgZGlzdHJpYnV0aW9uLlxuICAgKiBAZGVmYXVsdCAtIGZhbHNlLCB1bmxlc3MgYGxvZ0J1Y2tldGAgaXMgc3BlY2lmaWVkLlxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlTG9nZ2luZz86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBXaGV0aGVyIENsb3VkRnJvbnQgd2lsbCByZXNwb25kIHRvIElQdjYgRE5TIHJlcXVlc3RzIHdpdGggYW4gSVB2NiBhZGRyZXNzLlxuICAgKiBJZiB5b3Ugc3BlY2lmeSBmYWxzZSwgQ2xvdWRGcm9udCByZXNwb25kcyB0byBJUHY2IEROUyByZXF1ZXN0cyB3aXRoIHRoZSBETlMgcmVzcG9uc2UgY29kZSBOT0VSUk9SIGFuZCB3aXRoIG5vIElQIGFkZHJlc3Nlcy5cbiAgICogVGhpcyBhbGxvd3Mgdmlld2VycyB0byBzdWJtaXQgYSBzZWNvbmQgcmVxdWVzdCwgZm9yIGFuIElQdjQgYWRkcmVzcyBmb3IgeW91ciBkaXN0cmlidXRpb24uXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGVuYWJsZUlwdjY/OiBib29sZWFuO1xuICAvKipcbiAgICogRW5hYmxlIG9yIGRpc2FibGUgdGhlIGRpc3RyaWJ1dGlvbi5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlZD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBBbHRlcm5hdGl2ZSBkb21haW4gbmFtZXMgZm9yIHRoaXMgZGlzdHJpYnV0aW9uLlxuICAgKiBJZiB5b3Ugd2FudCB0byB1c2UgeW91ciBvd24gZG9tYWluIG5hbWUsIHN1Y2ggYXMgd3d3LmV4YW1wbGUuY29tLCBpbnN0ZWFkIG9mIHRoZSBjbG91ZGZyb250Lm5ldCBkb21haW4gbmFtZSxcbiAgICogeW91IGNhbiBhZGQgYW4gYWx0ZXJuYXRlIGRvbWFpbiBuYW1lIHRvIHlvdXIgZGlzdHJpYnV0aW9uLiBJZiB5b3UgYXR0YWNoIGEgY2VydGlmaWNhdGUgdG8gdGhlIGRpc3RyaWJ1dGlvbixcbiAgICogeW91IHNob3VsZCBhZGQgKGF0IGxlYXN0IG9uZSBvZikgdGhlIGRvbWFpbiBuYW1lcyBvZiB0aGUgY2VydGlmaWNhdGUgdG8gdGhpcyBsaXN0LlxuICAgKlxuICAgKiBXaGVuIHlvdSB3YW50IHRvIG1vdmUgYSBkb21haW4gbmFtZSBiZXR3ZWVuIGRpc3RyaWJ1dGlvbnMsIHlvdSBjYW4gYXNzb2NpYXRlIGEgY2VydGlmaWNhdGUgd2l0aG91dCBzcGVjaWZ5aW5nIGFueSBkb21haW4gbmFtZXMuXG4gICAqIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgdGhlIF9Nb3ZpbmcgYW4gYWx0ZXJuYXRlIGRvbWFpbiBuYW1lIHRvIGEgZGlmZmVyZW50IGRpc3RyaWJ1dGlvbl8gc2VjdGlvbiBpbiB0aGUgUkVBRE1FLlxuICAgKiBAZGVmYXVsdCAtIFRoZSBkaXN0cmlidXRpb24gd2lsbCBvbmx5IHN1cHBvcnQgdGhlIGRlZmF1bHQgZ2VuZXJhdGVkIG5hbWUgKGUuZy4sIGQxMTExMTFhYmNkZWY4LmNsb3VkZnJvbnQubmV0KVxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgZG9tYWluTmFtZXM/OiBBcnJheTxzdHJpbmc+O1xuICAvKipcbiAgICogVGhlIG9iamVjdCB0aGF0IHlvdSB3YW50IENsb3VkRnJvbnQgdG8gcmVxdWVzdCBmcm9tIHlvdXIgb3JpZ2luIChmb3IgZXhhbXBsZSwgaW5kZXguaHRtbCkgd2hlbiBhIHZpZXdlciByZXF1ZXN0cyB0aGUgcm9vdCBVUkwgZm9yIHlvdXIgZGlzdHJpYnV0aW9uLiBJZiBubyBkZWZhdWx0IG9iamVjdCBpcyBzZXQsIHRoZSByZXF1ZXN0IGdvZXMgdG8gdGhlIG9yaWdpbidzIHJvb3QgKGUuZy4sIGV4YW1wbGUuY29tLykuXG4gICAqIEBkZWZhdWx0IC0gbm8gZGVmYXVsdCByb290IG9iamVjdFxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgZGVmYXVsdFJvb3RPYmplY3Q/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBbnkgY29tbWVudHMgeW91IHdhbnQgdG8gaW5jbHVkZSBhYm91dCB0aGUgZGlzdHJpYnV0aW9uLlxuICAgKiBAZGVmYXVsdCAtIG5vIGNvbW1lbnRcbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGNvbW1lbnQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBIGNlcnRpZmljYXRlIHRvIGFzc29jaWF0ZSB3aXRoIHRoZSBkaXN0cmlidXRpb24uXG4gICAqIFRoZSBjZXJ0aWZpY2F0ZSBtdXN0IGJlIGxvY2F0ZWQgaW4gTi4gVmlyZ2luaWEgKHVzLWVhc3QtMSkuXG4gICAqIEBkZWZhdWx0IC0gdGhlIENsb3VkRnJvbnQgd2lsZGNhcmQgY2VydGlmaWNhdGUgKCouY2xvdWRmcm9udC5uZXQpIHdpbGwgYmUgdXNlZC5cbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGNlcnRpZmljYXRlPzogYXdzX2NlcnRpZmljYXRlbWFuYWdlci5JQ2VydGlmaWNhdGU7XG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIGJlaGF2aW9ycyBmb3IgdGhlIGRpc3RyaWJ1dGlvbiwgbWFwcGVkIGJ5IHRoZSBwYXRoUGF0dGVybiB0aGF0IHNwZWNpZmllcyB3aGljaCByZXF1ZXN0cyB0byBhcHBseSB0aGUgYmVoYXZpb3IgdG8uXG4gICAqIEBkZWZhdWx0IC0gbm8gYWRkaXRpb25hbCBiZWhhdmlvcnMgYXJlIGFkZGVkLlxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgYWRkaXRpb25hbEJlaGF2aW9ycz86IFJlY29yZDxzdHJpbmcsIGF3c19jbG91ZGZyb250LkJlaGF2aW9yT3B0aW9ucz47XG4gIC8qKlxuICAgKiBUaGUgZGVmYXVsdCBiZWhhdmlvciBmb3IgdGhlIGRpc3RyaWJ1dGlvbi5cbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGRlZmF1bHRCZWhhdmlvcj86IGF3c19jbG91ZGZyb250LkJlaGF2aW9yT3B0aW9ucztcbn1cbiJdfQ==
@@ -0,0 +1,124 @@
1
+ import type { aws_ecr_assets, IgnoreMode, SymlinkFollowMode } from 'aws-cdk-lib';
2
+ /**
3
+ * OptionalDockerImageAssetProps
4
+ */
5
+ export interface OptionalDockerImageAssetProps {
6
+ /**
7
+ * The directory where the Dockerfile is stored.
8
+ * Any directory inside with a name that matches the CDK output folder (cdk.out by default) will be excluded from the asset
9
+ * @stability stable
10
+ */
11
+ readonly directory?: string;
12
+ /**
13
+ * Docker target to build to.
14
+ * @default - no target
15
+ * @stability stable
16
+ */
17
+ readonly target?: string;
18
+ /**
19
+ * Platform to build for.
20
+ * _Requires Docker Buildx_.
21
+ * @default - no platform specified (the current machine architecture will be used)
22
+ * @stability stable
23
+ */
24
+ readonly platform?: aws_ecr_assets.Platform;
25
+ /**
26
+ * Outputs to pass to the `docker build` command.
27
+ * @default - no outputs are passed to the build command (default outputs are used)
28
+ * @stability stable
29
+ */
30
+ readonly outputs?: Array<string>;
31
+ /**
32
+ * Networking mode for the RUN commands during build.
33
+ * Support docker API 1.25+.
34
+ * @default - no networking mode specified (the default networking mode `NetworkMode.DEFAULT` will be used)
35
+ * @stability stable
36
+ */
37
+ readonly networkMode?: aws_ecr_assets.NetworkMode;
38
+ /**
39
+ * Options to control which parameters are used to invalidate the asset hash.
40
+ * @default - hash all parameters
41
+ * @stability stable
42
+ */
43
+ readonly invalidation?: aws_ecr_assets.DockerImageAssetInvalidationOptions;
44
+ /**
45
+ * Path to the Dockerfile (relative to the directory).
46
+ * @default 'Dockerfile'
47
+ * @stability stable
48
+ */
49
+ readonly file?: string;
50
+ /**
51
+ * Cache to options to pass to the `docker build` command.
52
+ * @default - no cache to options are passed to the build command
53
+ * @stability stable
54
+ */
55
+ readonly cacheTo?: aws_ecr_assets.DockerCacheOption;
56
+ /**
57
+ * Cache from options to pass to the `docker build` command.
58
+ * @default - no cache from options are passed to the build command
59
+ * @stability stable
60
+ */
61
+ readonly cacheFrom?: Array<aws_ecr_assets.DockerCacheOption>;
62
+ /**
63
+ * Disable the cache and pass `--no-cache` to the `docker build` command.
64
+ * @default - cache is used
65
+ * @stability stable
66
+ */
67
+ readonly cacheDisabled?: boolean;
68
+ /**
69
+ * SSH agent socket or keys to pass to the `docker build` command.
70
+ * Docker BuildKit must be enabled to use the ssh flag
71
+ * @default - no --ssh flag
72
+ * @stability stable
73
+ */
74
+ readonly buildSsh?: string;
75
+ /**
76
+ * Build secrets.
77
+ * Docker BuildKit must be enabled to use build secrets.
78
+ * @default - no build secrets
79
+ * @stability stable
80
+ */
81
+ readonly buildSecrets?: Record<string, string>;
82
+ /**
83
+ * Build args to pass to the `docker build` command.
84
+ * Since Docker build arguments are resolved before deployment, keys and
85
+ * values cannot refer to unresolved tokens (such as `lambda.functionArn` or
86
+ * `queue.queueUrl`).
87
+ * @default - no build args are passed
88
+ * @stability stable
89
+ */
90
+ readonly buildArgs?: Record<string, string>;
91
+ /**
92
+ * Unique identifier of the docker image asset and its potential revisions.
93
+ * Required if using AppScopedStagingSynthesizer.
94
+ * @default - no asset name
95
+ * @stability stable
96
+ */
97
+ readonly assetName?: string;
98
+ /**
99
+ * Extra information to encode into the fingerprint (e.g. build instructions and other inputs).
100
+ * @default - hash is only based on source content
101
+ * @stability stable
102
+ */
103
+ readonly extraHash?: string;
104
+ /**
105
+ * The ignore behavior to use for `exclude` patterns.
106
+ * @default IgnoreMode.GLOB
107
+ * @stability stable
108
+ */
109
+ readonly ignoreMode?: IgnoreMode;
110
+ /**
111
+ * A strategy for how to handle symlinks.
112
+ * @default SymlinkFollowMode.NEVER
113
+ * @stability stable
114
+ */
115
+ readonly followSymlinks?: SymlinkFollowMode;
116
+ /**
117
+ * File paths matching the patterns will be excluded.
118
+ * See `ignoreMode` to set the matching behavior.
119
+ * Has no effect on Assets bundled using the `bundling` property.
120
+ * @default - nothing is excluded
121
+ * @stability stable
122
+ */
123
+ readonly exclude?: Array<string>;
124
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3B0aW9uYWxEb2NrZXJJbWFnZUFzc2V0UHJvcHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZ2VuZXJhdGVkLXN0cnVjdHMvT3B0aW9uYWxEb2NrZXJJbWFnZUFzc2V0UHJvcHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8vIH5+IEdlbmVyYXRlZCBieSBwcm9qZW4uIFRvIG1vZGlmeSwgZWRpdCAucHJvamVucmMudHMgYW5kIHJ1biBcInBucG0gZGx4IHByb2plblwiLlxuaW1wb3J0IHR5cGUgeyBhd3NfZWNyX2Fzc2V0cywgSWdub3JlTW9kZSwgU3ltbGlua0ZvbGxvd01vZGUgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5cbi8qKlxuICogT3B0aW9uYWxEb2NrZXJJbWFnZUFzc2V0UHJvcHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPcHRpb25hbERvY2tlckltYWdlQXNzZXRQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgZGlyZWN0b3J5IHdoZXJlIHRoZSBEb2NrZXJmaWxlIGlzIHN0b3JlZC5cbiAgICogQW55IGRpcmVjdG9yeSBpbnNpZGUgd2l0aCBhIG5hbWUgdGhhdCBtYXRjaGVzIHRoZSBDREsgb3V0cHV0IGZvbGRlciAoY2RrLm91dCBieSBkZWZhdWx0KSB3aWxsIGJlIGV4Y2x1ZGVkIGZyb20gdGhlIGFzc2V0XG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBkaXJlY3Rvcnk/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBEb2NrZXIgdGFyZ2V0IHRvIGJ1aWxkIHRvLlxuICAgKiBAZGVmYXVsdCAtIG5vIHRhcmdldFxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgdGFyZ2V0Pzogc3RyaW5nO1xuICAvKipcbiAgICogUGxhdGZvcm0gdG8gYnVpbGQgZm9yLlxuICAgKiBfUmVxdWlyZXMgRG9ja2VyIEJ1aWxkeF8uXG4gICAqIEBkZWZhdWx0IC0gbm8gcGxhdGZvcm0gc3BlY2lmaWVkICh0aGUgY3VycmVudCBtYWNoaW5lIGFyY2hpdGVjdHVyZSB3aWxsIGJlIHVzZWQpXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBwbGF0Zm9ybT86IGF3c19lY3JfYXNzZXRzLlBsYXRmb3JtO1xuICAvKipcbiAgICogT3V0cHV0cyB0byBwYXNzIHRvIHRoZSBgZG9ja2VyIGJ1aWxkYCBjb21tYW5kLlxuICAgKiBAZGVmYXVsdCAtIG5vIG91dHB1dHMgYXJlIHBhc3NlZCB0byB0aGUgYnVpbGQgY29tbWFuZCAoZGVmYXVsdCBvdXRwdXRzIGFyZSB1c2VkKVxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgb3V0cHV0cz86IEFycmF5PHN0cmluZz47XG4gIC8qKlxuICAgKiBOZXR3b3JraW5nIG1vZGUgZm9yIHRoZSBSVU4gY29tbWFuZHMgZHVyaW5nIGJ1aWxkLlxuICAgKiBTdXBwb3J0IGRvY2tlciBBUEkgMS4yNSsuXG4gICAqIEBkZWZhdWx0IC0gbm8gbmV0d29ya2luZyBtb2RlIHNwZWNpZmllZCAodGhlIGRlZmF1bHQgbmV0d29ya2luZyBtb2RlIGBOZXR3b3JrTW9kZS5ERUZBVUxUYCB3aWxsIGJlIHVzZWQpXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBuZXR3b3JrTW9kZT86IGF3c19lY3JfYXNzZXRzLk5ldHdvcmtNb2RlO1xuICAvKipcbiAgICogT3B0aW9ucyB0byBjb250cm9sIHdoaWNoIHBhcmFtZXRlcnMgYXJlIHVzZWQgdG8gaW52YWxpZGF0ZSB0aGUgYXNzZXQgaGFzaC5cbiAgICogQGRlZmF1bHQgLSBoYXNoIGFsbCBwYXJhbWV0ZXJzXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBpbnZhbGlkYXRpb24/OiBhd3NfZWNyX2Fzc2V0cy5Eb2NrZXJJbWFnZUFzc2V0SW52YWxpZGF0aW9uT3B0aW9ucztcbiAgLyoqXG4gICAqIFBhdGggdG8gdGhlIERvY2tlcmZpbGUgKHJlbGF0aXZlIHRvIHRoZSBkaXJlY3RvcnkpLlxuICAgKiBAZGVmYXVsdCAnRG9ja2VyZmlsZSdcbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGZpbGU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBDYWNoZSB0byBvcHRpb25zIHRvIHBhc3MgdG8gdGhlIGBkb2NrZXIgYnVpbGRgIGNvbW1hbmQuXG4gICAqIEBkZWZhdWx0IC0gbm8gY2FjaGUgdG8gb3B0aW9ucyBhcmUgcGFzc2VkIHRvIHRoZSBidWlsZCBjb21tYW5kXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBjYWNoZVRvPzogYXdzX2Vjcl9hc3NldHMuRG9ja2VyQ2FjaGVPcHRpb247XG4gIC8qKlxuICAgKiBDYWNoZSBmcm9tIG9wdGlvbnMgdG8gcGFzcyB0byB0aGUgYGRvY2tlciBidWlsZGAgY29tbWFuZC5cbiAgICogQGRlZmF1bHQgLSBubyBjYWNoZSBmcm9tIG9wdGlvbnMgYXJlIHBhc3NlZCB0byB0aGUgYnVpbGQgY29tbWFuZFxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgY2FjaGVGcm9tPzogQXJyYXk8YXdzX2Vjcl9hc3NldHMuRG9ja2VyQ2FjaGVPcHRpb24+O1xuICAvKipcbiAgICogRGlzYWJsZSB0aGUgY2FjaGUgYW5kIHBhc3MgYC0tbm8tY2FjaGVgIHRvIHRoZSBgZG9ja2VyIGJ1aWxkYCBjb21tYW5kLlxuICAgKiBAZGVmYXVsdCAtIGNhY2hlIGlzIHVzZWRcbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGNhY2hlRGlzYWJsZWQ/OiBib29sZWFuO1xuICAvKipcbiAgICogU1NIIGFnZW50IHNvY2tldCBvciBrZXlzIHRvIHBhc3MgdG8gdGhlIGBkb2NrZXIgYnVpbGRgIGNvbW1hbmQuXG4gICAqIERvY2tlciBCdWlsZEtpdCBtdXN0IGJlIGVuYWJsZWQgdG8gdXNlIHRoZSBzc2ggZmxhZ1xuICAgKiBAZGVmYXVsdCAtIG5vIC0tc3NoIGZsYWdcbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGJ1aWxkU3NoPzogc3RyaW5nO1xuICAvKipcbiAgICogQnVpbGQgc2VjcmV0cy5cbiAgICogRG9ja2VyIEJ1aWxkS2l0IG11c3QgYmUgZW5hYmxlZCB0byB1c2UgYnVpbGQgc2VjcmV0cy5cbiAgICogQGRlZmF1bHQgLSBubyBidWlsZCBzZWNyZXRzXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBidWlsZFNlY3JldHM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICAvKipcbiAgICogQnVpbGQgYXJncyB0byBwYXNzIHRvIHRoZSBgZG9ja2VyIGJ1aWxkYCBjb21tYW5kLlxuICAgKiBTaW5jZSBEb2NrZXIgYnVpbGQgYXJndW1lbnRzIGFyZSByZXNvbHZlZCBiZWZvcmUgZGVwbG95bWVudCwga2V5cyBhbmRcbiAgICogdmFsdWVzIGNhbm5vdCByZWZlciB0byB1bnJlc29sdmVkIHRva2VucyAoc3VjaCBhcyBgbGFtYmRhLmZ1bmN0aW9uQXJuYCBvclxuICAgKiBgcXVldWUucXVldWVVcmxgKS5cbiAgICogQGRlZmF1bHQgLSBubyBidWlsZCBhcmdzIGFyZSBwYXNzZWRcbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGJ1aWxkQXJncz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gIC8qKlxuICAgKiBVbmlxdWUgaWRlbnRpZmllciBvZiB0aGUgZG9ja2VyIGltYWdlIGFzc2V0IGFuZCBpdHMgcG90ZW50aWFsIHJldmlzaW9ucy5cbiAgICogUmVxdWlyZWQgaWYgdXNpbmcgQXBwU2NvcGVkU3RhZ2luZ1N5bnRoZXNpemVyLlxuICAgKiBAZGVmYXVsdCAtIG5vIGFzc2V0IG5hbWVcbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGFzc2V0TmFtZT86IHN0cmluZztcbiAgLyoqXG4gICAqIEV4dHJhIGluZm9ybWF0aW9uIHRvIGVuY29kZSBpbnRvIHRoZSBmaW5nZXJwcmludCAoZS5nLiBidWlsZCBpbnN0cnVjdGlvbnMgYW5kIG90aGVyIGlucHV0cykuXG4gICAqIEBkZWZhdWx0IC0gaGFzaCBpcyBvbmx5IGJhc2VkIG9uIHNvdXJjZSBjb250ZW50XG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBleHRyYUhhc2g/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgaWdub3JlIGJlaGF2aW9yIHRvIHVzZSBmb3IgYGV4Y2x1ZGVgIHBhdHRlcm5zLlxuICAgKiBAZGVmYXVsdCBJZ25vcmVNb2RlLkdMT0JcbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGlnbm9yZU1vZGU/OiBJZ25vcmVNb2RlO1xuICAvKipcbiAgICogQSBzdHJhdGVneSBmb3IgaG93IHRvIGhhbmRsZSBzeW1saW5rcy5cbiAgICogQGRlZmF1bHQgU3ltbGlua0ZvbGxvd01vZGUuTkVWRVJcbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGZvbGxvd1N5bWxpbmtzPzogU3ltbGlua0ZvbGxvd01vZGU7XG4gIC8qKlxuICAgKiBGaWxlIHBhdGhzIG1hdGNoaW5nIHRoZSBwYXR0ZXJucyB3aWxsIGJlIGV4Y2x1ZGVkLlxuICAgKiBTZWUgYGlnbm9yZU1vZGVgIHRvIHNldCB0aGUgbWF0Y2hpbmcgYmVoYXZpb3IuXG4gICAqIEhhcyBubyBlZmZlY3Qgb24gQXNzZXRzIGJ1bmRsZWQgdXNpbmcgdGhlIGBidW5kbGluZ2AgcHJvcGVydHkuXG4gICAqIEBkZWZhdWx0IC0gbm90aGluZyBpcyBleGNsdWRlZFxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgZXhjbHVkZT86IEFycmF5PHN0cmluZz47XG59XG4iXX0=