@mrgrain/cdk-esbuild 3.5.0 → 3.7.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,7 +1,407 @@
1
1
 
2
+ ## [3.7.0](https://github.com/mrgrain/cdk-esbuild/compare/v3.6.0...v3.7.0) (2022-07-13)
3
+
4
+
5
+ ### Features
6
+
7
+ * support absolute entry points, as long as they are within the working directory ([0e56b44](https://github.com/mrgrain/cdk-esbuild/commit/0e56b442a9b5c1874ee853721986f7f24d2ed455))
8
+
9
+ ## [3.6.0](https://github.com/mrgrain/cdk-esbuild/compare/v3.5.0...v3.6.0) (2022-06-23)
10
+
11
+
12
+ ### Features
13
+
14
+ * allow setting of esbuildBinaryPath via Construct interface ([f4eeebe](https://github.com/mrgrain/cdk-esbuild/commit/f4eeebe613bf20b8b28313a81b328bdcd1c1a8e6))
15
+ * upgrade esbuild to support `supported` buildOption and new `copy` loader ([3ac5d92](https://github.com/mrgrain/cdk-esbuild/commit/3ac5d925342505669dbb3d3e88249f6e495b8566))
16
+
17
+
18
+ ### Bug Fixes
19
+
20
+ * make TypeScriptCode and JavaScriptCode correctly extend aws_lambda.Code in jsii ([d04db27](https://github.com/mrgrain/cdk-esbuild/commit/d04db2798559b38d424a2012ebb96d14ebde4fb0))
21
+
2
22
  ## [3.5.0](https://github.com/mrgrain/cdk-esbuild/compare/v3.4.0...v3.5.0) (2022-06-02)
3
23
 
4
24
 
5
25
  ### Features
6
26
 
7
27
  * support logOverride buildOption ([d1cad61](https://github.com/mrgrain/cdk-esbuild/commit/d1cad614a28f0e07b9646ff62dd47393f5616b99))
28
+
29
+ ## [3.4.0](https://github.com/mrgrain/cdk-esbuild/compare/v3.3.0...v3.4.0) (2022-05-26)
30
+
31
+
32
+ ### Features
33
+
34
+ * copyDir supports more complex scenarios ([08c59fb](https://github.com/mrgrain/cdk-esbuild/commit/08c59fba7bf1ee68ca103520b3e0b7ea5359a925))
35
+
36
+ ## [3.3.0](https://github.com/mrgrain/cdk-esbuild/compare/v3.2.0...v3.3.0) (2022-03-06)
37
+
38
+
39
+ ### Features
40
+
41
+ * support mangleQuoted option ([f4d8859](https://github.com/mrgrain/cdk-esbuild/commit/f4d88597c2f93064f7e3f6d4f591630eacfe7b80))
42
+
43
+ ## [3.2.0](https://github.com/mrgrain/cdk-esbuild/compare/v3.1.0...v3.2.0) (2022-02-04)
44
+
45
+
46
+ ### Features
47
+
48
+ * support esbuild mangle-props ([a2566d1](https://github.com/mrgrain/cdk-esbuild/commit/a2566d1ebdb3ed8fabecdda31de413d64075f441))
49
+
50
+ ## [3.1.0](https://github.com/mrgrain/cdk-esbuild/compare/v3.0.0...v3.1.0) (2022-01-28)
51
+
52
+
53
+ ### Features
54
+
55
+ * support new build option `drop` from esbuild ([54445ad](https://github.com/mrgrain/cdk-esbuild/commit/54445ad2490e7cba81e54a555a91ba86553ec67f))
56
+
57
+
58
+ ### Bug Fixes
59
+
60
+ * replace mocked with version from jest-mock ([2e9761d](https://github.com/mrgrain/cdk-esbuild/commit/2e9761d5f53293a6a840897e218c2e79a6b71c66))
61
+ * replace removed Node.js type ([e58b268](https://github.com/mrgrain/cdk-esbuild/commit/e58b2685c519cb9c4d7e1a148c4fc9f388d3ff90))
62
+
63
+ ## [3.0.0](https://github.com/mrgrain/cdk-esbuild/compare/v3.0.0-rc.1...v3.0.0) (2021-12-09)
64
+
65
+ ### Features
66
+
67
+ - upgrade to AWS CDK v2 ([c83b3e4](https://github.com/mrgrain/cdk-esbuild/commit/c83b3e47ad5d6d325a1ca1fa4e450bd92d7276d2))
68
+
69
+ ### Bug Fixes
70
+
71
+ - remove imports from aws-cdk-lib/core ([68ee09a](https://github.com/mrgrain/cdk-esbuild/commit/68ee09ab7dbf9cf5d0e8e8ca9eda5ea24fedae69))
72
+
73
+ ## [2.2.0](https://github.com/mrgrain/cdk-esbuild/compare/v2.1.0...v2.2.0) (2021-12-04)
74
+
75
+ **This release contains an upgrade of esbuild with backwards-incompatible changes.** This is inline with the versioning strategy for this package, which is to release esbuild upgrades with minor versions as long as esbuild has not reached version 1.0.0. The backwards-incompatible changes are fairly obscure this time around, but please make sure to read the [0.14.0 release notes](https://github.com/evanw/esbuild/releases/tag/v0.14.0).
76
+
77
+ ### Features
78
+
79
+ - upgrade esbuild to [^0.14.0](https://github.com/evanw/esbuild/releases/tag/v0.14.0) ([#143](https://github.com/mrgrain/cdk-esbuild/issues/143)) ([4568b92](https://github.com/mrgrain/cdk-esbuild/commit/4568b92011a3e38f23d85998dcbbca1afa06918e))
80
+ - **examples/esbuild-with-plugins:** example of how to use the escape hatch to run esbuild with plugins ([#142](https://github.com/mrgrain/cdk-esbuild/issues/142)) ([0876f0e](https://github.com/mrgrain/cdk-esbuild/commit/0876f0e4d4bd65a792deef8adf43229568ab899b))
81
+
82
+ ## [2.1.0](https://github.com/mrgrain/cdk-esbuild/compare/v2.0.0...v2.1.0) (2021-11-25)
83
+
84
+ ### Features
85
+
86
+ - escape hatch to provide a custom build or transform function ([#141](https://github.com/mrgrain/cdk-esbuild/issues/141)) ([aacfac1](https://github.com/mrgrain/cdk-esbuild/commit/aacfac1b71f1de78fbfdc1161c6e8cf32fd0629e))
87
+ - `Inline*Code` now takes `TransformerProps` as second parameter, passing in `TransformOptions` is still supported but deprecated ([#141](https://github.com/mrgrain/cdk-esbuild/issues/141)) ([aacfac1](https://github.com/mrgrain/cdk-esbuild/commit/aacfac1b71f1de78fbfdc1161c6e8cf32fd0629e))
88
+
89
+ ## [2.0.0](https://github.com/mrgrain/cdk-esbuild/compare/v1.129.0...v2.0.0) (2021-11-07)
90
+
91
+ ### ⚠ BREAKING CHANGES
92
+
93
+ - Major release of this package to make it JSII compatible (#114) ([727c78a](https://github.com/mrgrain/cdk-esbuild/commit/727c78aefa2079d0f561b8b664d75eb6c669e46b)), closes [#114](https://github.com/mrgrain/cdk-esbuild/issues/114) [#117](https://github.com/mrgrain/cdk-esbuild/issues/117) [#119](https://github.com/mrgrain/cdk-esbuild/issues/119) [#120](https://github.com/mrgrain/cdk-esbuild/issues/120) [#123](https://github.com/mrgrain/cdk-esbuild/issues/123)
94
+
95
+ - Deprecated features from v1 have been removed. Please see upgrading instructions below.
96
+
97
+ ### Upgrading to v2
98
+
99
+ - Update the package dependency to v2: `npm install --save @mrgrain/cdk-esbuild@^2.0.0`
100
+ - `esbuild` is now installed as an optional dependency. If your setup does not automatically install optional dependencies, add it as an explicit dependency.
101
+ - Remove any use of `bundlerPriority`.
102
+ - Unstable construct `EsbuildBundling` has been renamed to `EsbuildBundler` and its interface has slightly changed. Like most other constructs, it now takes `entryPoints` as first parameter, with an optional `props` object as the second.
103
+
104
+ ### Features
105
+
106
+ - JSII compatibility & v2 GA (#114) ([727c78a](https://github.com/mrgrain/cdk-esbuild/commit/727c78aefa2079d0f561b8b664d75eb6c669e46b)), closes [#114](https://github.com/mrgrain/cdk-esbuild/issues/114) [#117](https://github.com/mrgrain/cdk-esbuild/issues/117) [#119](https://github.com/mrgrain/cdk-esbuild/issues/119) [#120](https://github.com/mrgrain/cdk-esbuild/issues/120) [#123](https://github.com/mrgrain/cdk-esbuild/issues/123)
107
+
108
+ - Synthesize `esbuild` types from source ([#117](https://github.com/mrgrain/cdk-esbuild/issues/117)) ([af44d55](https://github.com/mrgrain/cdk-esbuild/commit/af44d55e97db6fd8fbda916eb0f25dae55513cba))
109
+
110
+ - Generated docs now contain links to esbuild documentation ([#123](https://github.com/mrgrain/cdk-esbuild/issues/123)) ([95f2fd0](https://github.com/mrgrain/cdk-esbuild/commit/95f2fd07330cf9624dd05f23345bfe0f5754fc57))
111
+
112
+ ## [1.133.0](https://github.com/mrgrain/cdk-esbuild/compare/v1.132.0...v1.133.0) (2021-11-21)
113
+
114
+ - **This is a release on the legacy v1 branch. Please upgrade to v2 as soon as possible.**
115
+ - works with cdk-1.133.0
116
+
117
+ ### ⛔ EXTREMELY IMPORTANT NOTICE FOR USERS WHO HAVE NOT UPGRADE TO v2 OF THIS PACKAGE
118
+
119
+ **tl;dr No more "versioned" release on this legacy branch.**
120
+
121
+ Until now, I have release a new version of this package every time a new CDK version was released. Even if no updates where necessary. This practice will stop with this release and I will only release a new version on the legacy v1 branch, if an update is required for compatibility. **Please upgrade to v2 of this package as soon as possible!**
122
+
123
+ [**Upgrading instructions to v2 of this package**](https://github.com/mrgrain/cdk-esbuild#migrating-to-v2)
124
+
125
+ If you're using the tag `cdk-v1`, you will already receive the latest stable v2 release. If you're using a versioned tag (e.g. `cdk-1.29.0`), this tag format is deprecated and release have not been tagged for a while now.
126
+
127
+ ## [1.132.0](https://github.com/mrgrain/cdk-esbuild/compare/v1.131.0...v1.132.0) (2021-11-21)
128
+
129
+ - works with cdk-1.132.0
130
+
131
+ ### ⚠ IMPORTANT NOTICE
132
+
133
+ This is a release on the legacy v1 branch. Please upgrade to v2 as soon as possible.
134
+
135
+ If you're using the tag `cdk-v1`, you will already receive the latest stable v2 release. If you're using a versioned tag (e.g. `cdk-1.29.0`), this tag format is deprecated and future releases won't be tagged like this.
136
+
137
+ ## [1.131.0](https://github.com/mrgrain/cdk-esbuild/compare/v1.130.0...v1.131.0) (2021-11-07)
138
+
139
+ - works with cdk-1.131.0
140
+
141
+ ### ⚠ IMPORTANT NOTICE
142
+
143
+ This is a release on the legacy v1 branch. Please upgrade to v2 as soon as possible.
144
+
145
+ If you're using the tag `cdk-v1`, you will already receive the latest stable v2 release. If you're using a versioned tag (e.g. `cdk-1.29.0`), this tag format is deprecated and future releases won't be tagged like this.
146
+
147
+ ## [1.130.0](https://github.com/mrgrain/cdk-esbuild/compare/v1.129.0...v1.130.0) (2021-11-07)
148
+
149
+ - works with cdk-1.130.0
150
+
151
+ ### ⚠ IMPORTANT NOTICE
152
+
153
+ This is the first release on the legacy v1 branch. Please upgrade to v2 as soon as possible.
154
+
155
+ If you're using the tag `cdk-v1`, you will already receive the latest stable v2 release. If you're using a versioned tag (e.g. `cdk-1.29.0`), this tag format is deprecated and future releases won't be tagged like this.
156
+
157
+ ## [1.129.0](https://github.com/mrgrain/cdk-esbuild/compare/v1.128.0...v1.129.0) (2021-10-28)
158
+
159
+ ### ⚠ IMPORTANT NOTICE
160
+
161
+ This will be the final release tagged with a specific version of AWS CDK (i.e. `cdk-1.29.0`). From now on, a single tag `cdk-v1` will point to the latest stable release for v1 of AWS CDK.
162
+
163
+ Please also note, that a new major version of this package already has a release candidate. Using the `cdk-v1` will result in BREAKING CHANGES once the new version is stable.
164
+
165
+ ### Features
166
+
167
+ - works with cdk-1.129.0 ([d7631d4](https://github.com/mrgrain/cdk-esbuild/commit/d7631d4119e6ef66e0da02a35f9680196e94f124))
168
+ - deprecated Docker bundler ([6715463](https://github.com/mrgrain/cdk-esbuild/commit/6715463ee90f339ac261622597e39b2ee6c46d71))
169
+
170
+ ## [1.128.0](https://github.com/mrgrain/cdk-esbuild/compare/v1.127.0...v1.128.0) (2021-10-16)
171
+
172
+ - works with cdk-1.128.0
173
+
174
+ ## [1.127.0](https://github.com/mrgrain/cdk-esbuild/compare/v1.126.0...v1.127.0) (2021-10-09)
175
+
176
+ - works with cdk-1.127.0
177
+ - **example/website:** How to monitor a website with Synthetics ([621d2d4](https://github.com/mrgrain/cdk-esbuild/commit/621d2d4192da63fa385b76b59353ffe77023c38d))
178
+
179
+ ## [1.126.0](https://github.com/mrgrain/cdk-esbuild/compare/v1.126.0-beta.0...v1.126.0) (2021-10-09)
180
+
181
+ ### Features
182
+
183
+ - works with cdk-1.126.0
184
+ - [Experimental] `Code` is now compatible with `@aws-cdk/aws-synthetics` ([#99](https://github.com/mrgrain/cdk-esbuild/issues/99)) ([f840300](https://github.com/mrgrain/cdk-esbuild/commit/f840300439f7175c46d173378d8e941b7dd80483))
185
+
186
+ ## [1.125.0](https://github.com/mrgrain/cdk-esbuild/compare/v1.124.0...v1.125.0) (2021-10-01)
187
+
188
+ ### ⚠ BREAKING CHANGES
189
+
190
+ - `esbuild` released a breaking change to the tree shaking options and introduced a new way how platform-specific binaries are installed. Please check the esbuild v0.13.0 [release notes](https://github.com/evanw/esbuild/releases/tag/v0.12.0) for details.
191
+
192
+ ### Features
193
+
194
+ - works with cdk-1.125.0
195
+
196
+ - upgrade `esbuild` minimum version to ^0.13.0 ([3d0b5ee](https://github.com/mrgrain/cdk-esbuild/commit/3d0b5ee5c01b7edcf7042a728932a0e1ce722d3c))
197
+
198
+ ## [1.124.0](https://github.com/mrgrain/cdk-esbuild/compare/v1.123.0...v1.124.0) (2021-10-01)
199
+
200
+ - works with cdk-1.124.0
201
+
202
+ ## [1.123.0](https://github.com/mrgrain/cdk-esbuild/compare/v1.122.0...v1.123.0) (2021-09-22)
203
+
204
+ - works with cdk-1.123.0
205
+
206
+ ## [1.122.0](https://github.com/mrgrain/cdk-esbuild/compare/v1.121.0...v1.122.0) (2021-09-12)
207
+
208
+ - works with cdk-1.122.0
209
+
210
+ ## [1.121.0](https://github.com/mrgrain/cdk-esbuild/compare/v1.120.0...v1.121.0) (2021-09-12)
211
+
212
+ - works with cdk-1.121.0
213
+
214
+ ## [1.120.0](https://github.com/mrgrain/cdk-esbuild/compare/v1.119.0...v1.120.0) (2021-09-12)
215
+
216
+ - works with cdk-1.120.0
217
+
218
+ ## [1.119.0](https://github.com/mrgrain/cdk-esbuild/compare/v1.118.0...v1.119.0) (2021-09-12)
219
+
220
+ - works with cdk-1.119.0
221
+
222
+ ## [1.118.0](https://github.com/mrgrain/cdk-esbuild/compare/v1.117.0...v1.118.0) (2021-09-12)
223
+
224
+ - works with cdk-1.118.0
225
+
226
+ ### Bug Fixes
227
+
228
+ - fix error handling type issue in latest tsc version ([b5e36e2](https://github.com/mrgrain/cdk-esbuild/commit/b5e36e27481706ea5a7ac5f8c05d74418b07c125))
229
+
230
+ ## [1.117.0](https://github.com/mrgrain/cdk-esbuild/compare/v1.116.0...v1.117.0) (2021-08-08)
231
+
232
+ - works with cdk-1.117.0
233
+
234
+ ## [1.116.0](https://github.com/mrgrain/cdk-esbuild/compare/v1.115.0...v1.116.0) (2021-08-08)
235
+
236
+ - works with cdk-1.116.0
237
+
238
+ ## [1.115.0](https://github.com/mrgrain/cdk-esbuild/compare/v1.114.0...v1.115.0) (2021-08-08)
239
+
240
+ - works with cdk-1.115.0
241
+
242
+ ## [1.114.0](https://github.com/mrgrain/cdk-esbuild/compare/v1.113.0...v1.114.0) (2021-08-08)
243
+
244
+ - works with cdk-1.114.0
245
+
246
+ ## [1.113.0](https://github.com/mrgrain/cdk-esbuild/compare/v1.112.0...v1.113.0) (2021-08-08)
247
+
248
+ - works with cdk-1.113.0
249
+
250
+ ## [1.112.0](https://github.com/mrgrain/cdk-esbuild/compare/v1.111.0...v1.112.0) (2021-08-08)
251
+
252
+ - works with cdk-1.112.0
253
+
254
+ ## [1.111.0](https://github.com/mrgrain/cdk-esbuild/compare/v1.110.0...v1.111.0) (2021-08-08)
255
+
256
+ - works with cdk-1.111.0
257
+
258
+ ## [1.110.0](https://github.com/mrgrain/cdk-esbuild/compare/v1.109.0...v1.110.0) (2021-06-24)
259
+
260
+ - works with cdk-1.110.0
261
+
262
+ ## [1.109.0](https://github.com/mrgrain/cdk-esbuild/compare/v1.108.0...v1.109.0) (2021-06-24)
263
+
264
+ - works with cdk-1.109.0
265
+
266
+ ## [1.108.0](https://github.com/mrgrain/cdk-esbuild/compare/v1.107.0...v1.108.0) (2021-06-09)
267
+
268
+ - works with cdk-1.108.0
269
+
270
+ ## [1.107.0](https://github.com/mrgrain/cdk-esbuild/compare/v1.106.0...v1.107.0) (2021-06-03)
271
+
272
+ - works with cdk-1.107.0
273
+
274
+ ## [1.106.0](https://github.com/mrgrain/cdk-esbuild/compare/v1.105.0...v1.106.0) (2021-05-31)
275
+
276
+ - works with cdk-1.106.0
277
+
278
+ ## [1.105.0](https://github.com/mrgrain/cdk-esbuild/compare/v1.104.0...v1.105.0) (2021-05-19)
279
+
280
+ - works with cdk-1.105.0
281
+
282
+ ### ⚠️ BREAKING CHANGES TO EXPERIMENTAL FEATURES
283
+
284
+ - upgraded esbuild to [v0.12.0](https://github.com/evanw/esbuild/releases/tag/v0.12.0) which contains backwards-incompatible changes (mostly related to CSS bundling)
285
+
286
+ ## [1.104.0](https://github.com/mrgrain/cdk-esbuild/compare/v1.103.0...v1.104.0) (2021-05-19)
287
+
288
+ - works with cdk-1.104.0 ([fb0de78](https://github.com/mrgrain/cdk-esbuild/commit/fb0de78faf29815045822b8e80b2bbb07b8f7cbf))
289
+
290
+ ## [1.103.0](https://github.com/mrgrain/cdk-esbuild/compare/v1.102.0...v1.103.0) (2021-05-13)
291
+
292
+ - works with cdk-1.103.0
293
+
294
+ ### ⚠️ BREAKING CHANGES TO EXPERIMENTAL FEATURES
295
+
296
+ - removed deprecated `forceDockerBundling` and `localBundling` ([cc40b90](https://github.com/mrgrain/cdk-esbuild/commit/cc40b900acd8cba725e31db0a79cd3f8b711277e))
297
+
298
+ ## [1.102.0](https://github.com/mrgrain/cdk-esbuild/compare/v1.101.0...v1.102.0) (2021-05-04)
299
+
300
+ - works with cdk-1.102.0 ([c616c1b](https://github.com/mrgrain/cdk-esbuild/commit/c616c1ba07a9bdd11f3dc3369b1335918458800f))
301
+
302
+ ### Features
303
+
304
+ - new high-level constructs prop `bundlerPriority` to replace deprecated `forceDockerBundling` ([cc4c933](https://github.com/mrgrain/cdk-esbuild/commit/cc4c93376cf3a8628edd696fe9fa8f65a09c7e21))
305
+ - **examples/lambda:** added new complete example for lambda function ([f8ca3c0](https://github.com/mrgrain/cdk-esbuild/commit/f8ca3c093a11f1d56b9f08cd0a4f3b3eaecd5690))
306
+
307
+ ### Bug Fixes
308
+
309
+ - **examples/website:** changed start command to work with latest esbuild versions ([45b4c91](https://github.com/mrgrain/cdk-esbuild/commit/45b4c91b454a9520e3aca4ff66ed75abc2ea7d4a))
310
+
311
+ ## [1.101.0](https://github.com/mrgrain/cdk-esbuild/compare/v1.100.0...v1.101.0) (2021-05-01)
312
+
313
+ - works with cdk-1.101.0
314
+
315
+ ### Features
316
+
317
+ - pretty print esbuild build errors and warnings when using local bundler ([7f15bed](https://github.com/mrgrain/cdk-esbuild/commit/7f15bedbdfb619c2d0767bc37458108e01c3a85e))
318
+ - pretty print esbuild transform errors and warnings ([1eeeb10](https://github.com/mrgrain/cdk-esbuild/commit/1eeeb10ca6b1e46452c55792d28429986eb4b09f))
319
+ - set bundling priority explicitly, deprecating `localBundling` in favour of `priority` ([425665a](https://github.com/mrgrain/cdk-esbuild/commit/425665a2f8f20bb557119e79e3354a4d9d696d24))
320
+
321
+ ## [1.100.0](https://github.com/mrgrain/cdk-esbuild/compare/v1.100.0-beta.1...v1.100.0) (2021-05-01)
322
+
323
+ - no changes, cdk version constraints are now less strict
324
+
325
+ ## [1.99.0](https://github.com/mrgrain/cdk-esbuild/compare/v1.98.0...v1.99.0) (2021-04-19)
326
+
327
+ - update to cdk-1.99.0 ([cfffb19](https://github.com/mrgrain/cdk-esbuild/commit/cfffb1901f8567ea81de3e7f746d8cffd50b4bcc))
328
+
329
+ ## [1.98.0](https://github.com/mrgrain/cdk-esbuild/compare/v1.97.0...v1.98.0) (2021-04-13)
330
+
331
+ - update to cdk-1.98.0 ([0165256](https://github.com/mrgrain/cdk-esbuild/commit/0165256d26a2b24b45b17cb747f63eff26c983d1))
332
+
333
+ ## [1.97.0](https://github.com/mrgrain/cdk-esbuild/compare/v1.96.0...v1.97.0) (2021-04-11)
334
+
335
+ - update to cdk-1.97.0 ([fedb40a](https://github.com/mrgrain/cdk-esbuild/commit/fedb40a3098cd3b2de5b113d79a2edd185789fde))
336
+
337
+ ### ⚠️ BREAKING CHANGES TO EXPERIMENTAL FEATURES
338
+
339
+ - esbuild minimum version updated to `^0.11.0` which includes [breaking changes re how some files are interpreted](https://github.com/evanw/esbuild/releases/tag/v0.10.0) as well as [updated behaviour for entry points](https://github.com/evanw/esbuild/releases/tag/v0.11.0); please check esbuild's change log ([35c9046](https://github.com/mrgrain/cdk-esbuild/commit/35c904666415797eb5e5f09add47edfe2979303e))
340
+ - use esbuild's handling of `process.env.NODE_ENV`, notably the value will now be set to `development` unless [minification](https://esbuild.github.io/api/#minify) is enabled ([04bc5ed](https://github.com/mrgrain/cdk-esbuild/commit/04bc5edb1eb40b42499ffb9dfd78dac28fea7602))
341
+
342
+ ### Features
343
+
344
+ - support object maps for entry points ([62a4431](https://github.com/mrgrain/cdk-esbuild/commit/62a4431572a4b32acd45c569405d19244b1aa76a))
345
+
346
+ ## [1.96.0](https://github.com/mrgrain/cdk-esbuild/compare/v1.95.0...v1.96.0) (2021-04-11)
347
+
348
+ - update to cdk-1.96.0 ([ae26510](https://github.com/mrgrain/cdk-esbuild/commit/ae2651026617646833303f0b9259d564765273d5))
349
+
350
+ ### ⚠️ BREAKING CHANGES TO EXPERIMENTAL FEATURES
351
+
352
+ - removed deprecated `projectRoot` prop, please use `buildOptions.absWorkingPath` instead ([40e7ab0](https://github.com/mrgrain/cdk-esbuild/commit/40e7ab0ccd6fa52727f548168cbbc05afcfe4b16))
353
+
354
+ ## [1.95.0](https://github.com/mrgrain/cdk-esbuild/compare/v1.94.1...v1.95.0) (2021-03-28)
355
+
356
+ - update to cdk-1.95.0 ([0a98ef3](https://github.com/mrgrain/cdk-esbuild/commit/0a98ef311d92e1366f535bf18d7a5f10ac6ad02a))
357
+
358
+ ### ⚠️ BREAKING CHANGES TO EXPERIMENTAL FEATURES
359
+
360
+ - exported `TypeScriptAsset` & `JavaScriptAsset` are now implementing `s3.Asset` and replace the previously deprecated aliases for code classes of the same name; replace any previous use with `TypeScriptCode` & `JavaScriptCode` for lambda functions ([9b86eab](https://github.com/mrgrain/cdk-esbuild/commit/9b86eab91f82e66088a25248d7a4c754dbe73d85))
361
+
362
+ ### Features
363
+
364
+ - added various InlineCode constructs using the transform api ([6ef1c97](https://github.com/mrgrain/cdk-esbuild/commit/6ef1c9756f22256c008e1f9725ea3b5b5a176e3c))
365
+ - support added for `outfile` build option ([90ef5ec](https://github.com/mrgrain/cdk-esbuild/commit/90ef5ecb5906e0f2fc76a933b9f0067f1aae6428))
366
+
367
+ ### [1.94.1](https://github.com/mrgrain/cdk-esbuild/compare/v1.94.0...v1.94.1) (2021-03-17)
368
+
369
+ ### Bug Fixes
370
+
371
+ - change cdk version constraints to work with patches ([fa0fa5f](https://github.com/mrgrain/cdk-esbuild/commit/fa0fa5fbdf608b14faf7a5e6132016fb6f2e393e))
372
+
373
+ ## [1.94.0](https://github.com/mrgrain/cdk-esbuild/compare/v1.93.1...v1.94.0) (2021-03-16)
374
+
375
+ - update to cdk-1.94.0 ([1623339](https://github.com/mrgrain/cdk-esbuild/commit/162333930a7534277c5ce4318f81df1fc954fe5e))
376
+
377
+ ### ⚠️ BREAKING CHANGES TO EXPERIMENTAL FEATURES
378
+
379
+ - deprecated ~~`TypeScriptAsset`~~ & ~~`JavaScriptAsset`~~ in favour of `TypeScriptCode` & `JavaScriptCode` ([f31074e](https://github.com/mrgrain/cdk-esbuild/commit/f31074eeeca039dc847f199eeff88313b61605a1))
380
+ - deprecated ~~`projectRoot`~~ in favour of `buildOptions.absWorkDir` ([ef7ae23](https://github.com/mrgrain/cdk-esbuild/commit/ef7ae237827e381fa2708d67a2d68214a33ab41b)) \
381
+ Now `absWorkDir` will take priority, then `projectRoot`. If neither are provided it falls back to the current working directory, which is esbuild's default behaviour. \
382
+ **The automatic project root detection has been removed.**
383
+ - upgraded esbuild dependency requirement to `^0.9.0` which [contains breaking changes](https://github.com/evanw/esbuild/releases/tag/v0.9.0) ([f27d987](https://github.com/mrgrain/cdk-esbuild/commit/f27d987183034d4fbf88905769d8cd7d3f93db4a))
384
+
385
+ ### Features
386
+
387
+ - set sensible defaults for website deployment ([a7a925d](https://github.com/mrgrain/cdk-esbuild/commit/a7a925da367d88184058719a56af55882e7c7aff))
388
+ - new `copyDir` prop to copy additional files into the output ([1dccb25](https://github.com/mrgrain/cdk-esbuild/commit/1dccb254c189500dc48371eeeeed0545c3116863))
389
+ - support for multiple `entryPoints` ([e41757b](https://github.com/mrgrain/cdk-esbuild/commit/e41757bb634d24d4c45ecf98ba981d28df258ce6))
390
+ - `bundleOptions.outdir` can now be provided as an additional path prefix for rendered files in the auto-generated cdk output directory ([9be0f62](https://github.com/mrgrain/cdk-esbuild/commit/9be0f626460b5fd1c4bfa131a5f57124bbdb4129))
391
+
392
+ ## [1.93.1](https://github.com/mrgrain/cdk-esbuild/compare/v1.93.0...v1.93.1) (2021-03-12)
393
+
394
+ Required release to make version available on npm.
395
+
396
+ ## [1.93.0](https://github.com/mrgrain/cdk-esbuild/compare/v1.92.0...v1.93.0) (2021-03-12)
397
+
398
+ - update to cdk-1.93.0 ([2dd043b](https://github.com/mrgrain/cdk-esbuild/commit/2dd043b49b606dc6ebcf13c435a5665f5028fce5))
399
+
400
+ ### ⚠️ BREAKING CHANGES TO EXPERIMENTAL FEATURES
401
+
402
+ - `projectRoot` auto detection now searches upwards from the entry point, instead of current working directory
403
+ - deprecated ~~`TypeScriptAsset`~~ & ~~`JavaScriptAsset`~~ in favour of `TypeScriptCode` & `JavaScriptCode` ([f31074e](https://github.com/mrgrain/cdk-esbuild/commit/f31074eeeca039dc847f199eeff88313b61605a1))
404
+
405
+ ### Features
406
+
407
+ - added implementation of S3 deployment source which can be used for static website deployment ([f31074e](https://github.com/mrgrain/cdk-esbuild/commit/f31074eeeca039dc847f199eeff88313b61605a1))
package/README.md CHANGED
@@ -2,10 +2,10 @@
2
2
 
3
3
  _CDK constructs for [esbuild](https://github.com/evanw/esbuild), an extremely fast JavaScript bundler_
4
4
 
5
- [Getting started](#getting-started) | [Migrating to v3](#migrating-to-v3) |
6
- [Documentation](#documentation) | [API Reference](#api-reference) | [Versioning](#versioning)
5
+ [Getting started](#getting-started)
6
+ [Documentation](#documentation) | [API Reference](#api-reference) | [Versioning](#versioning) | [Upgrading from AWS CDK v1](#upgrading-from-aws-cdk-v1)
7
7
 
8
- > This version is compatible with AWS CDK v2. For the previous, AWS CDK v1 compatible release, see [cdk-esbuild@v2](https://github.com/mrgrain/cdk-esbuild/tree/v2).
8
+ [![View on Construct Hub](https://constructs.dev/badge?package=%40mrgrain%2Fcdk-esbuild)](https://constructs.dev/packages/@mrgrain/cdk-esbuild)
9
9
 
10
10
  ## Why?
11
11
 
@@ -153,6 +153,16 @@ It's possible that you want to use an implementation of esbuild that's different
153
153
 
154
154
  For these situations, this package offers an escape hatch to bypass regular the implementation and provide a custom build and transform function.
155
155
 
156
+ #### Esbuild binary path
157
+
158
+ It is possible to override the binary used by esbuild. The usual way to do this is to set the `ESBUILD_BINARY_PATH` environment variable. For convenience this package allows to set the binary path as a prop:
159
+
160
+ ```ts
161
+ new TypeScriptCode("fixtures/handlers/ts-handler.ts", {
162
+ esbuildBinaryPath: "path/to/esbuild/binary"
163
+ });
164
+ ```
165
+
156
166
  #### Custom build function
157
167
 
158
168
  > 💡 See [Using esbuild with plugins](examples/esbuild-with-plugins) for a complete working example of a custom build function using this escape hatch.
@@ -195,11 +205,11 @@ Instead of esbuild, the provided function will be invoked with the calculated tr
195
205
 
196
206
  Failures have to cause a `TransformFailure` exception in order to be fully handled.
197
207
 
198
- ### Migrating to v3
208
+ ### Upgrading from AWS CDK v1
199
209
 
200
- The release of cdk-esbuild v3 brings compatibility with AWS CDK v2. Furthermore all deprecated properties and classes have been removed. In particular `InlineCode` classes now take `TransformerProps` as second parameter instead of transform options.
210
+ This version is compatible with AWS CDK v2. For the previous, AWS CDK v1 compatible release, see [cdk-esbuild@v2](https://github.com/mrgrain/cdk-esbuild/tree/v2).
201
211
 
202
- #### Upgrading
212
+ To upgrade from AWS CDK v1 and cdk-esbuild@v2, please follow these steps:
203
213
 
204
214
  - This version requires AWS CDK v2. Follow the [official migration guide](https://docs.aws.amazon.com/cdk/latest/guide/work-with-cdk-v2.html) to upgrade.
205
215
  - Update the package dependency to v3: `npm install --save @mrgrain/cdk-esbuild@^3.0.0`
package/lib/asset.d.ts CHANGED
@@ -18,7 +18,18 @@ export interface AssetBaseProps extends BundlerProps {
18
18
  }
19
19
  export interface AssetProps extends AssetBaseProps {
20
20
  /**
21
- * A relative path or list or map of relative paths to the entry points of your code from the root of the project. E.g. `src/index.ts`.
21
+ * A path or list or map of paths to the entry points of your code.
22
+ *
23
+ * Relative paths are by default resolved from the current working directory.
24
+ * To change the working directory, see `buildOptions.absWorkingDir`.
25
+ *
26
+ * Absolute paths can be used if files are part of the working directory.
27
+ *
28
+ * Examples:
29
+ * - `'src/index.ts'`
30
+ * - `require.resolve('./lambda')`
31
+ * - `['src/index.ts', 'src/util.ts']`
32
+ * - `{one: 'src/two.ts', two: 'src/one.ts'}`
22
33
  *
23
34
  * @stability stable
24
35
  */
@@ -27,9 +38,13 @@ export interface AssetProps extends AssetBaseProps {
27
38
  declare type JavaScriptAssetProps = AssetProps;
28
39
  declare type TypeScriptAssetProps = AssetProps;
29
40
  /**
30
- * @stability stable
41
+ * Represents a generic esbuild asset.
42
+ *
43
+ * You should always use `TypeScriptAsset` or `JavaScriptAsset`.
44
+ *
45
+ * @stability experimental
31
46
  */
32
- declare abstract class Asset<Props extends AssetProps> extends S3Asset {
47
+ export declare class EsbuildAsset<Props extends AssetProps> extends S3Asset {
33
48
  /**
34
49
  * @stability stable
35
50
  */
@@ -42,7 +57,7 @@ declare abstract class Asset<Props extends AssetProps> extends S3Asset {
42
57
  *
43
58
  * @stability stable
44
59
  */
45
- export declare class JavaScriptAsset extends Asset<JavaScriptAssetProps> {
60
+ export declare class JavaScriptAsset extends EsbuildAsset<JavaScriptAssetProps> {
46
61
  }
47
62
  /**
48
63
  * Bundles the entry points and creates a CDK asset which is uploaded to the bootstrapped CDK S3 bucket during deployment.
@@ -51,7 +66,6 @@ export declare class JavaScriptAsset extends Asset<JavaScriptAssetProps> {
51
66
  *
52
67
  * @stability stable
53
68
  */
54
- export declare class TypeScriptAsset extends Asset<TypeScriptAssetProps> {
69
+ export declare class TypeScriptAsset extends EsbuildAsset<TypeScriptAssetProps> {
55
70
  }
56
71
  export {};
57
- //# sourceMappingURL=asset.d.ts.map
package/lib/asset.js CHANGED
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
- var _a, _b;
2
+ var _a, _b, _c;
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.TypeScriptAsset = exports.JavaScriptAsset = void 0;
4
+ exports.TypeScriptAsset = exports.JavaScriptAsset = exports.EsbuildAsset = void 0;
5
5
  const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
6
  const path_1 = require("path");
7
7
  const aws_cdk_lib_1 = require("aws-cdk-lib");
@@ -9,23 +9,35 @@ const aws_s3_assets_1 = require("aws-cdk-lib/aws-s3-assets");
9
9
  const constructs_1 = require("constructs");
10
10
  const bundler_1 = require("./bundler");
11
11
  /**
12
- * @stability stable
12
+ * Represents a generic esbuild asset.
13
+ *
14
+ * You should always use `TypeScriptAsset` or `JavaScriptAsset`.
15
+ *
16
+ * @stability experimental
13
17
  */
14
- class Asset extends aws_s3_assets_1.Asset {
18
+ class EsbuildAsset extends aws_s3_assets_1.Asset {
15
19
  /**
16
20
  * @stability stable
17
21
  */
18
22
  constructor(scope, id, props) {
19
- var _c;
20
23
  const { assetHash, copyDir, buildOptions: options = {}, buildFn, } = props;
21
24
  const entryPoints = typeof props.entryPoints === 'string' ? [props.entryPoints] : props.entryPoints;
22
25
  const name = scope.node.path + constructs_1.Node.PATH_SEP + id;
23
- Object.values(entryPoints).forEach((entryPoint) => {
24
- if (path_1.isAbsolute(entryPoint)) {
25
- throw new Error(`${name}: Entry points must be a relative path. If you need to define an absolute path, please use \`buildOptions.absWorkingDir\` accordingly.`);
26
+ const absWorkingDir = options.absWorkingDir ?? process.cwd();
27
+ const forceRelativeEntrypointPath = (entryPoint) => {
28
+ if (!path_1.isAbsolute(entryPoint)) {
29
+ return entryPoint;
26
30
  }
27
- });
28
- const absWorkingDir = (_c = options.absWorkingDir) !== null && _c !== void 0 ? _c : process.cwd();
31
+ const relativeEntryPoint = path_1.relative(absWorkingDir, entryPoint);
32
+ if (relativeEntryPoint.startsWith('..') || path_1.isAbsolute(relativeEntryPoint)) {
33
+ throw new Error(`${name}: Entry points must be part of the working directory. See \`buildOptions.absWorkingDir\` to set a working directory different to the current one.`);
34
+ }
35
+ return relativeEntryPoint;
36
+ };
37
+ const relativeEntryPoints = Array.isArray(entryPoints) ?
38
+ entryPoints.map(forceRelativeEntrypointPath) :
39
+ Object.fromEntries(Object.entries(entryPoints)
40
+ .map(([out, entryPoint]) => ([out, forceRelativeEntrypointPath(entryPoint)])));
29
41
  const buildOptions = {
30
42
  bundle: true,
31
43
  ...options,
@@ -35,7 +47,7 @@ class Asset extends aws_s3_assets_1.Asset {
35
47
  path: absWorkingDir,
36
48
  assetHash,
37
49
  assetHashType: assetHash ? aws_cdk_lib_1.AssetHashType.CUSTOM : aws_cdk_lib_1.AssetHashType.OUTPUT,
38
- bundling: new bundler_1.EsbuildBundler(entryPoints, {
50
+ bundling: new bundler_1.EsbuildBundler(relativeEntryPoints, {
39
51
  buildOptions,
40
52
  copyDir,
41
53
  buildFn,
@@ -43,6 +55,9 @@ class Asset extends aws_s3_assets_1.Asset {
43
55
  });
44
56
  }
45
57
  }
58
+ exports.EsbuildAsset = EsbuildAsset;
59
+ _a = JSII_RTTI_SYMBOL_1;
60
+ EsbuildAsset[_a] = { fqn: "@mrgrain/cdk-esbuild.EsbuildAsset", version: "3.7.2" };
46
61
  /**
47
62
  * Bundles the entry points and creates a CDK asset which is uploaded to the bootstrapped CDK S3 bucket during deployment.
48
63
  *
@@ -50,11 +65,11 @@ class Asset extends aws_s3_assets_1.Asset {
50
65
  *
51
66
  * @stability stable
52
67
  */
53
- class JavaScriptAsset extends Asset {
68
+ class JavaScriptAsset extends EsbuildAsset {
54
69
  }
55
70
  exports.JavaScriptAsset = JavaScriptAsset;
56
- _a = JSII_RTTI_SYMBOL_1;
57
- JavaScriptAsset[_a] = { fqn: "@mrgrain/cdk-esbuild.JavaScriptAsset", version: "3.5.0" };
71
+ _b = JSII_RTTI_SYMBOL_1;
72
+ JavaScriptAsset[_b] = { fqn: "@mrgrain/cdk-esbuild.JavaScriptAsset", version: "3.7.2" };
58
73
  /**
59
74
  * Bundles the entry points and creates a CDK asset which is uploaded to the bootstrapped CDK S3 bucket during deployment.
60
75
  *
@@ -62,9 +77,9 @@ JavaScriptAsset[_a] = { fqn: "@mrgrain/cdk-esbuild.JavaScriptAsset", version: "3
62
77
  *
63
78
  * @stability stable
64
79
  */
65
- class TypeScriptAsset extends Asset {
80
+ class TypeScriptAsset extends EsbuildAsset {
66
81
  }
67
82
  exports.TypeScriptAsset = TypeScriptAsset;
68
- _b = JSII_RTTI_SYMBOL_1;
69
- TypeScriptAsset[_b] = { fqn: "@mrgrain/cdk-esbuild.TypeScriptAsset", version: "3.5.0" };
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvYXNzZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSwrQkFBa0M7QUFDbEMsNkNBQTRDO0FBQzVDLDZEQUE2RDtBQUM3RCwyQ0FBNkM7QUFDN0MsdUNBQXNFO0FBOEJ0RTs7R0FFRztBQUNILE1BQWUsS0FBZ0MsU0FBUSxxQkFBTztJQUM1RDs7T0FFRztJQUNILFlBQ0UsS0FBZ0IsRUFDaEIsRUFBVSxFQUNWLEtBQVk7O1FBRVosTUFBTSxFQUNKLFNBQVMsRUFDVCxPQUFPLEVBQ1AsWUFBWSxFQUFFLE9BQU8sR0FBRyxFQUFFLEVBQzFCLE9BQU8sR0FDUixHQUFHLEtBQUssQ0FBQztRQUNWLE1BQU0sV0FBVyxHQUNmLE9BQU8sS0FBSyxDQUFDLFdBQVcsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDO1FBRWxGLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLGlCQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztRQUVsRCxNQUFNLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFVBQWtCLEVBQUUsRUFBRTtZQUN4RCxJQUFJLGlCQUFVLENBQUMsVUFBVSxDQUFDLEVBQUU7Z0JBQzFCLE1BQU0sSUFBSSxLQUFLLENBQ2IsR0FBRyxJQUFJLHdJQUF3SSxDQUNoSixDQUFDO2FBQ0g7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILE1BQU0sYUFBYSxTQUFHLE9BQU8sQ0FBQyxhQUFhLG1DQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUU3RCxNQUFNLFlBQVksR0FBRztZQUNuQixNQUFNLEVBQUUsSUFBSTtZQUNaLEdBQUcsT0FBTztZQUNWLGFBQWE7U0FDZCxDQUFDO1FBRUYsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDZixJQUFJLEVBQUUsYUFBYTtZQUNuQixTQUFTO1lBQ1QsYUFBYSxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsMkJBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLDJCQUFhLENBQUMsTUFBTTtZQUN0RSxRQUFRLEVBQUUsSUFBSSx3QkFBYyxDQUMxQixXQUFXLEVBQ1g7Z0JBQ0UsWUFBWTtnQkFDWixPQUFPO2dCQUNQLE9BQU87YUFDUixDQUNGO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsTUFBYSxlQUFnQixTQUFRLEtBQTJCOztBQUFoRSwwQ0FBbUU7OztBQUVuRTs7Ozs7O0dBTUc7QUFDSCxNQUFhLGVBQWdCLFNBQVEsS0FBMkI7O0FBQWhFLDBDQUFtRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzQWJzb2x1dGUgfSBmcm9tICdwYXRoJztcbmltcG9ydCB7IEFzc2V0SGFzaFR5cGUgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBBc3NldCBhcyBTM0Fzc2V0IH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzLWFzc2V0cyc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QsIE5vZGUgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IEVzYnVpbGRCdW5kbGVyLCBCdW5kbGVyUHJvcHMsIEVudHJ5UG9pbnRzIH0gZnJvbSAnLi9idW5kbGVyJztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBc3NldEJhc2VQcm9wcyBleHRlbmRzIEJ1bmRsZXJQcm9wcyB7XG4gIC8qKlxuICAgKiBBIGhhc2ggb2YgdGhpcyBhc3NldCwgd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGNvbnN0cnVjdGlvbiB0aW1lLlxuICAgKlxuICAgKiBBcyB0aGlzIGlzIGEgcGxhaW4gc3RyaW5nLCBpdCBjYW4gYmUgdXNlZCBpbiBjb25zdHJ1Y3QgSURzIGluIG9yZGVyIHRvIGVuZm9yY2UgY3JlYXRpb24gb2YgYSBuZXcgcmVzb3VyY2Ugd2hlbiB0aGUgY29udGVudCBoYXNoIGhhcyBjaGFuZ2VkLlxuICAgKlxuICAgKiBEZWZhdWx0cyB0byBhIGhhc2ggb2YgYWxsIGZpbGVzIGluIHRoZSByZXN1bHRpbmcgYnVuZGxlLlxuICAgKlxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgYXNzZXRIYXNoPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFzc2V0UHJvcHMgZXh0ZW5kcyBBc3NldEJhc2VQcm9wcyB7XG4gIC8qKlxuICAgKiBBIHJlbGF0aXZlIHBhdGggb3IgbGlzdCBvciBtYXAgb2YgcmVsYXRpdmUgcGF0aHMgdG8gdGhlIGVudHJ5IHBvaW50cyBvZiB5b3VyIGNvZGUgZnJvbSB0aGUgcm9vdCBvZiB0aGUgcHJvamVjdC4gRS5nLiBgc3JjL2luZGV4LnRzYC5cbiAgICpcbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGVudHJ5UG9pbnRzOiBFbnRyeVBvaW50cztcbn1cblxudHlwZSBKYXZhU2NyaXB0QXNzZXRQcm9wcyA9IEFzc2V0UHJvcHM7XG50eXBlIFR5cGVTY3JpcHRBc3NldFByb3BzID0gQXNzZXRQcm9wcztcblxuLyoqXG4gKiBAc3RhYmlsaXR5IHN0YWJsZVxuICovXG5hYnN0cmFjdCBjbGFzcyBBc3NldDxQcm9wcyBleHRlbmRzIEFzc2V0UHJvcHM+IGV4dGVuZHMgUzNBc3NldCB7XG4gIC8qKlxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBwcm9wczogUHJvcHMsXG4gICkge1xuICAgIGNvbnN0IHtcbiAgICAgIGFzc2V0SGFzaCxcbiAgICAgIGNvcHlEaXIsXG4gICAgICBidWlsZE9wdGlvbnM6IG9wdGlvbnMgPSB7fSxcbiAgICAgIGJ1aWxkRm4sXG4gICAgfSA9IHByb3BzO1xuICAgIGNvbnN0IGVudHJ5UG9pbnRzOiBzdHJpbmdbXSB8IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPVxuICAgICAgdHlwZW9mIHByb3BzLmVudHJ5UG9pbnRzID09PSAnc3RyaW5nJyA/IFtwcm9wcy5lbnRyeVBvaW50c10gOiBwcm9wcy5lbnRyeVBvaW50cztcblxuICAgIGNvbnN0IG5hbWUgPSBzY29wZS5ub2RlLnBhdGggKyBOb2RlLlBBVEhfU0VQICsgaWQ7XG5cbiAgICBPYmplY3QudmFsdWVzKGVudHJ5UG9pbnRzKS5mb3JFYWNoKChlbnRyeVBvaW50OiBzdHJpbmcpID0+IHtcbiAgICAgIGlmIChpc0Fic29sdXRlKGVudHJ5UG9pbnQpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgJHtuYW1lfTogRW50cnkgcG9pbnRzIG11c3QgYmUgYSByZWxhdGl2ZSBwYXRoLiBJZiB5b3UgbmVlZCB0byBkZWZpbmUgYW4gYWJzb2x1dGUgcGF0aCwgcGxlYXNlIHVzZSBcXGBidWlsZE9wdGlvbnMuYWJzV29ya2luZ0RpclxcYCBhY2NvcmRpbmdseS5gLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgY29uc3QgYWJzV29ya2luZ0RpciA9IG9wdGlvbnMuYWJzV29ya2luZ0RpciA/PyBwcm9jZXNzLmN3ZCgpO1xuXG4gICAgY29uc3QgYnVpbGRPcHRpb25zID0ge1xuICAgICAgYnVuZGxlOiB0cnVlLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIGFic1dvcmtpbmdEaXIsXG4gICAgfTtcblxuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgcGF0aDogYWJzV29ya2luZ0RpcixcbiAgICAgIGFzc2V0SGFzaCxcbiAgICAgIGFzc2V0SGFzaFR5cGU6IGFzc2V0SGFzaCA/IEFzc2V0SGFzaFR5cGUuQ1VTVE9NIDogQXNzZXRIYXNoVHlwZS5PVVRQVVQsXG4gICAgICBidW5kbGluZzogbmV3IEVzYnVpbGRCdW5kbGVyKFxuICAgICAgICBlbnRyeVBvaW50cyxcbiAgICAgICAge1xuICAgICAgICAgIGJ1aWxkT3B0aW9ucyxcbiAgICAgICAgICBjb3B5RGlyLFxuICAgICAgICAgIGJ1aWxkRm4sXG4gICAgICAgIH0sXG4gICAgICApLFxuICAgIH0pO1xuICB9XG59XG5cbi8qKlxuICogQnVuZGxlcyB0aGUgZW50cnkgcG9pbnRzIGFuZCBjcmVhdGVzIGEgQ0RLIGFzc2V0IHdoaWNoIGlzIHVwbG9hZGVkIHRvIHRoZSBib290c3RyYXBwZWQgQ0RLIFMzIGJ1Y2tldCBkdXJpbmcgZGVwbG95bWVudC5cbiAqXG4gKiBUaGUgYXNzZXQgY2FuIGJlIHVzZWQgYnkgb3RoZXIgY29uc3RydWN0cy5cbiAqXG4gKiBAc3RhYmlsaXR5IHN0YWJsZVxuICovXG5leHBvcnQgY2xhc3MgSmF2YVNjcmlwdEFzc2V0IGV4dGVuZHMgQXNzZXQ8SmF2YVNjcmlwdEFzc2V0UHJvcHM+IHt9XG5cbi8qKlxuICogQnVuZGxlcyB0aGUgZW50cnkgcG9pbnRzIGFuZCBjcmVhdGVzIGEgQ0RLIGFzc2V0IHdoaWNoIGlzIHVwbG9hZGVkIHRvIHRoZSBib290c3RyYXBwZWQgQ0RLIFMzIGJ1Y2tldCBkdXJpbmcgZGVwbG95bWVudC5cbiAqXG4gKiBUaGUgYXNzZXQgY2FuIGJlIHVzZWQgYnkgb3RoZXIgY29uc3RydWN0cy5cbiAqXG4gKiBAc3RhYmlsaXR5IHN0YWJsZVxuICovXG5leHBvcnQgY2xhc3MgVHlwZVNjcmlwdEFzc2V0IGV4dGVuZHMgQXNzZXQ8VHlwZVNjcmlwdEFzc2V0UHJvcHM+IHt9XG4iXX0=
83
+ _c = JSII_RTTI_SYMBOL_1;
84
+ TypeScriptAsset[_c] = { fqn: "@mrgrain/cdk-esbuild.TypeScriptAsset", version: "3.7.2" };
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvYXNzZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSwrQkFBNEM7QUFDNUMsNkNBQTRDO0FBQzVDLDZEQUE2RDtBQUM3RCwyQ0FBNkM7QUFDN0MsdUNBQXNFO0FBeUN0RTs7Ozs7O0dBTUc7QUFDSCxNQUFhLFlBQXVDLFNBQVEscUJBQU87SUFDakU7O09BRUc7SUFDSCxZQUNFLEtBQWdCLEVBQ2hCLEVBQVUsRUFDVixLQUFZO1FBRVosTUFBTSxFQUNKLFNBQVMsRUFDVCxPQUFPLEVBQ1AsWUFBWSxFQUFFLE9BQU8sR0FBRyxFQUFFLEVBQzFCLE9BQU8sR0FDUixHQUFHLEtBQUssQ0FBQztRQUNWLE1BQU0sV0FBVyxHQUNmLE9BQU8sS0FBSyxDQUFDLFdBQVcsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDO1FBRWxGLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLGlCQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztRQUVsRCxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUMsYUFBYSxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUU3RCxNQUFNLDJCQUEyQixHQUFHLENBQUMsVUFBa0IsRUFBVSxFQUFFO1lBQ2pFLElBQUksQ0FBQyxpQkFBVSxDQUFDLFVBQVUsQ0FBQyxFQUFFO2dCQUMzQixPQUFPLFVBQVUsQ0FBQzthQUNuQjtZQUVELE1BQU0sa0JBQWtCLEdBQUcsZUFBUSxDQUFDLGFBQWEsRUFBRSxVQUFVLENBQUMsQ0FBQztZQUMvRCxJQUFJLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxpQkFBVSxDQUFDLGtCQUFrQixDQUFDLEVBQUU7Z0JBQ3pFLE1BQU0sSUFBSSxLQUFLLENBQ2IsR0FBRyxJQUFJLG1KQUFtSixDQUMzSixDQUFDO2FBQ0g7WUFFRCxPQUFPLGtCQUFrQixDQUFDO1FBQzVCLENBQUMsQ0FBQztRQUVGLE1BQU0sbUJBQW1CLEdBQ3ZCLEtBQUssQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztZQUMxQixXQUFXLENBQUMsR0FBRyxDQUFDLDJCQUEyQixDQUFDLENBQUMsQ0FBQztZQUM5QyxNQUFNLENBQUMsV0FBVyxDQUNoQixNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztpQkFDeEIsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsVUFBVSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsMkJBQTJCLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUMzRSxDQUNKLENBQUM7UUFHTixNQUFNLFlBQVksR0FBRztZQUNuQixNQUFNLEVBQUUsSUFBSTtZQUNaLEdBQUcsT0FBTztZQUNWLGFBQWE7U0FDZCxDQUFDO1FBRUYsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDZixJQUFJLEVBQUUsYUFBYTtZQUNuQixTQUFTO1lBQ1QsYUFBYSxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsMkJBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLDJCQUFhLENBQUMsTUFBTTtZQUN0RSxRQUFRLEVBQUUsSUFBSSx3QkFBYyxDQUMxQixtQkFBbUIsRUFDbkI7Z0JBQ0UsWUFBWTtnQkFDWixPQUFPO2dCQUNQLE9BQU87YUFDUixDQUNGO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUFsRUgsb0NBbUVDOzs7QUFFRDs7Ozs7O0dBTUc7QUFDSCxNQUFhLGVBQWdCLFNBQVEsWUFBa0M7O0FBQXZFLDBDQUEwRTs7O0FBRTFFOzs7Ozs7R0FNRztBQUNILE1BQWEsZUFBZ0IsU0FBUSxZQUFrQzs7QUFBdkUsMENBQTBFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNBYnNvbHV0ZSwgcmVsYXRpdmUgfSBmcm9tICdwYXRoJztcbmltcG9ydCB7IEFzc2V0SGFzaFR5cGUgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBBc3NldCBhcyBTM0Fzc2V0IH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzLWFzc2V0cyc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QsIE5vZGUgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IEVzYnVpbGRCdW5kbGVyLCBCdW5kbGVyUHJvcHMsIEVudHJ5UG9pbnRzIH0gZnJvbSAnLi9idW5kbGVyJztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBc3NldEJhc2VQcm9wcyBleHRlbmRzIEJ1bmRsZXJQcm9wcyB7XG4gIC8qKlxuICAgKiBBIGhhc2ggb2YgdGhpcyBhc3NldCwgd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGNvbnN0cnVjdGlvbiB0aW1lLlxuICAgKlxuICAgKiBBcyB0aGlzIGlzIGEgcGxhaW4gc3RyaW5nLCBpdCBjYW4gYmUgdXNlZCBpbiBjb25zdHJ1Y3QgSURzIGluIG9yZGVyIHRvIGVuZm9yY2UgY3JlYXRpb24gb2YgYSBuZXcgcmVzb3VyY2Ugd2hlbiB0aGUgY29udGVudCBoYXNoIGhhcyBjaGFuZ2VkLlxuICAgKlxuICAgKiBEZWZhdWx0cyB0byBhIGhhc2ggb2YgYWxsIGZpbGVzIGluIHRoZSByZXN1bHRpbmcgYnVuZGxlLlxuICAgKlxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgYXNzZXRIYXNoPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFzc2V0UHJvcHMgZXh0ZW5kcyBBc3NldEJhc2VQcm9wcyB7XG4gIC8qKlxuICAgKiBBIHBhdGggb3IgbGlzdCBvciBtYXAgb2YgcGF0aHMgdG8gdGhlIGVudHJ5IHBvaW50cyBvZiB5b3VyIGNvZGUuXG4gICAqXG4gICAqIFJlbGF0aXZlIHBhdGhzIGFyZSBieSBkZWZhdWx0IHJlc29sdmVkIGZyb20gdGhlIGN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnkuXG4gICAqIFRvIGNoYW5nZSB0aGUgd29ya2luZyBkaXJlY3RvcnksIHNlZSBgYnVpbGRPcHRpb25zLmFic1dvcmtpbmdEaXJgLlxuICAgKlxuICAgKiBBYnNvbHV0ZSBwYXRocyBjYW4gYmUgdXNlZCBpZiBmaWxlcyBhcmUgcGFydCBvZiB0aGUgd29ya2luZyBkaXJlY3RvcnkuXG4gICAqXG4gICAqIEV4YW1wbGVzOlxuICAgKiAgLSBgJ3NyYy9pbmRleC50cydgXG4gICAqICAtIGByZXF1aXJlLnJlc29sdmUoJy4vbGFtYmRhJylgXG4gICAqICAtIGBbJ3NyYy9pbmRleC50cycsICdzcmMvdXRpbC50cyddYFxuICAgKiAgLSBge29uZTogJ3NyYy90d28udHMnLCB0d286ICdzcmMvb25lLnRzJ31gXG4gICAqXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBlbnRyeVBvaW50czogRW50cnlQb2ludHM7XG59XG5cbnR5cGUgSmF2YVNjcmlwdEFzc2V0UHJvcHMgPSBBc3NldFByb3BzO1xudHlwZSBUeXBlU2NyaXB0QXNzZXRQcm9wcyA9IEFzc2V0UHJvcHM7XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIGdlbmVyaWMgZXNidWlsZCBhc3NldC5cbiAqXG4gKiBZb3Ugc2hvdWxkIGFsd2F5cyB1c2UgYFR5cGVTY3JpcHRBc3NldGAgb3IgYEphdmFTY3JpcHRBc3NldGAuXG4gKlxuICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAqL1xuZXhwb3J0IGNsYXNzIEVzYnVpbGRBc3NldDxQcm9wcyBleHRlbmRzIEFzc2V0UHJvcHM+IGV4dGVuZHMgUzNBc3NldCB7XG4gIC8qKlxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBwcm9wczogUHJvcHMsXG4gICkge1xuICAgIGNvbnN0IHtcbiAgICAgIGFzc2V0SGFzaCxcbiAgICAgIGNvcHlEaXIsXG4gICAgICBidWlsZE9wdGlvbnM6IG9wdGlvbnMgPSB7fSxcbiAgICAgIGJ1aWxkRm4sXG4gICAgfSA9IHByb3BzO1xuICAgIGNvbnN0IGVudHJ5UG9pbnRzOiBzdHJpbmdbXSB8IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPVxuICAgICAgdHlwZW9mIHByb3BzLmVudHJ5UG9pbnRzID09PSAnc3RyaW5nJyA/IFtwcm9wcy5lbnRyeVBvaW50c10gOiBwcm9wcy5lbnRyeVBvaW50cztcblxuICAgIGNvbnN0IG5hbWUgPSBzY29wZS5ub2RlLnBhdGggKyBOb2RlLlBBVEhfU0VQICsgaWQ7XG5cbiAgICBjb25zdCBhYnNXb3JraW5nRGlyID0gb3B0aW9ucy5hYnNXb3JraW5nRGlyID8/IHByb2Nlc3MuY3dkKCk7XG5cbiAgICBjb25zdCBmb3JjZVJlbGF0aXZlRW50cnlwb2ludFBhdGggPSAoZW50cnlQb2ludDogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgICAgIGlmICghaXNBYnNvbHV0ZShlbnRyeVBvaW50KSkge1xuICAgICAgICByZXR1cm4gZW50cnlQb2ludDtcbiAgICAgIH1cblxuICAgICAgY29uc3QgcmVsYXRpdmVFbnRyeVBvaW50ID0gcmVsYXRpdmUoYWJzV29ya2luZ0RpciwgZW50cnlQb2ludCk7XG4gICAgICBpZiAocmVsYXRpdmVFbnRyeVBvaW50LnN0YXJ0c1dpdGgoJy4uJykgfHwgaXNBYnNvbHV0ZShyZWxhdGl2ZUVudHJ5UG9pbnQpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgJHtuYW1lfTogRW50cnkgcG9pbnRzIG11c3QgYmUgcGFydCBvZiB0aGUgd29ya2luZyBkaXJlY3RvcnkuIFNlZSBcXGBidWlsZE9wdGlvbnMuYWJzV29ya2luZ0RpclxcYCB0byBzZXQgYSB3b3JraW5nIGRpcmVjdG9yeSBkaWZmZXJlbnQgdG8gdGhlIGN1cnJlbnQgb25lLmAsXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZWxhdGl2ZUVudHJ5UG9pbnQ7XG4gICAgfTtcblxuICAgIGNvbnN0IHJlbGF0aXZlRW50cnlQb2ludHMgPVxuICAgICAgQXJyYXkuaXNBcnJheShlbnRyeVBvaW50cykgP1xuICAgICAgICBlbnRyeVBvaW50cy5tYXAoZm9yY2VSZWxhdGl2ZUVudHJ5cG9pbnRQYXRoKSA6XG4gICAgICAgIE9iamVjdC5mcm9tRW50cmllcyhcbiAgICAgICAgICBPYmplY3QuZW50cmllcyhlbnRyeVBvaW50cylcbiAgICAgICAgICAgIC5tYXAoKFtvdXQsIGVudHJ5UG9pbnRdKSA9PiAoW291dCwgZm9yY2VSZWxhdGl2ZUVudHJ5cG9pbnRQYXRoKGVudHJ5UG9pbnQpXSksXG4gICAgICAgICAgICApLFxuICAgICAgICApO1xuXG5cbiAgICBjb25zdCBidWlsZE9wdGlvbnMgPSB7XG4gICAgICBidW5kbGU6IHRydWUsXG4gICAgICAuLi5vcHRpb25zLFxuICAgICAgYWJzV29ya2luZ0RpcixcbiAgICB9O1xuXG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICBwYXRoOiBhYnNXb3JraW5nRGlyLFxuICAgICAgYXNzZXRIYXNoLFxuICAgICAgYXNzZXRIYXNoVHlwZTogYXNzZXRIYXNoID8gQXNzZXRIYXNoVHlwZS5DVVNUT00gOiBBc3NldEhhc2hUeXBlLk9VVFBVVCxcbiAgICAgIGJ1bmRsaW5nOiBuZXcgRXNidWlsZEJ1bmRsZXIoXG4gICAgICAgIHJlbGF0aXZlRW50cnlQb2ludHMsXG4gICAgICAgIHtcbiAgICAgICAgICBidWlsZE9wdGlvbnMsXG4gICAgICAgICAgY29weURpcixcbiAgICAgICAgICBidWlsZEZuLFxuICAgICAgICB9LFxuICAgICAgKSxcbiAgICB9KTtcbiAgfVxufVxuXG4vKipcbiAqIEJ1bmRsZXMgdGhlIGVudHJ5IHBvaW50cyBhbmQgY3JlYXRlcyBhIENESyBhc3NldCB3aGljaCBpcyB1cGxvYWRlZCB0byB0aGUgYm9vdHN0cmFwcGVkIENESyBTMyBidWNrZXQgZHVyaW5nIGRlcGxveW1lbnQuXG4gKlxuICogVGhlIGFzc2V0IGNhbiBiZSB1c2VkIGJ5IG90aGVyIGNvbnN0cnVjdHMuXG4gKlxuICogQHN0YWJpbGl0eSBzdGFibGVcbiAqL1xuZXhwb3J0IGNsYXNzIEphdmFTY3JpcHRBc3NldCBleHRlbmRzIEVzYnVpbGRBc3NldDxKYXZhU2NyaXB0QXNzZXRQcm9wcz4ge31cblxuLyoqXG4gKiBCdW5kbGVzIHRoZSBlbnRyeSBwb2ludHMgYW5kIGNyZWF0ZXMgYSBDREsgYXNzZXQgd2hpY2ggaXMgdXBsb2FkZWQgdG8gdGhlIGJvb3RzdHJhcHBlZCBDREsgUzMgYnVja2V0IGR1cmluZyBkZXBsb3ltZW50LlxuICpcbiAqIFRoZSBhc3NldCBjYW4gYmUgdXNlZCBieSBvdGhlciBjb25zdHJ1Y3RzLlxuICpcbiAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gKi9cbmV4cG9ydCBjbGFzcyBUeXBlU2NyaXB0QXNzZXQgZXh0ZW5kcyBFc2J1aWxkQXNzZXQ8VHlwZVNjcmlwdEFzc2V0UHJvcHM+IHt9XG4iXX0=