@mrgrain/cdk-esbuild 3.6.0 → 3.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/API.md CHANGED
@@ -4,7 +4,9 @@
4
4
 
5
5
  ### EsbuildAsset <a name="@mrgrain/cdk-esbuild.EsbuildAsset"></a>
6
6
 
7
- Represents the a generic Esbuild Asset.
7
+ Represents a generic esbuild asset.
8
+
9
+ You should always use `TypeScriptAsset` or `JavaScriptAsset`.
8
10
 
9
11
  #### Initializers <a name="@mrgrain/cdk-esbuild.EsbuildAsset.Initializer"></a>
10
12
 
@@ -211,9 +213,18 @@ public readonly entryPoints: string | string[] | {[ key: string ]: string};
211
213
 
212
214
  - *Type:* `string` | `string`[] | {[ key: string ]: `string`}
213
215
 
214
- A relative path or list or map of relative paths to the entry points of your code from the root of the project.
216
+ A path or list or map of paths to the entry points of your code.
217
+
218
+ Relative paths are by default resolved from the current working directory.
219
+ To change the working directory, see `buildOptions.absWorkingDir`.
220
+
221
+ Absolute paths can be used if files are part of the working directory.
215
222
 
216
- E.g. `src/index.ts`.
223
+ Examples:
224
+ - `'src/index.ts'`
225
+ - `require.resolve('./lambda')`
226
+ - `['src/index.ts', 'src/util.ts']`
227
+ - `{one: 'src/two.ts', two: 'src/one.ts'}`
217
228
 
218
229
  ---
219
230
 
@@ -1989,9 +2000,18 @@ new EsbuildBundler(entryPoints: string | string[] | {[ key: string ]: string}, p
1989
2000
 
1990
2001
  - *Type:* `string` | `string`[] | {[ key: string ]: `string`}
1991
2002
 
1992
- A relative path or list or map of relative paths to the entry points of your code from the root of the project.
2003
+ A path or list or map of paths to the entry points of your code.
2004
+
2005
+ Relative paths are by default resolved from the current working directory.
2006
+ To change the working directory, see `buildOptions.absWorkingDir`.
2007
+
2008
+ Absolute paths can be used if files are part of the working directory.
1993
2009
 
1994
- E.g. `src/index.ts`.
2010
+ Examples:
2011
+ - `'src/index.ts'`
2012
+ - `require.resolve('./lambda')`
2013
+ - `['src/index.ts', 'src/util.ts']`
2014
+ - `{one: 'src/two.ts', two: 'src/one.ts'}`
1995
2015
 
1996
2016
  ---
1997
2017
 
@@ -2015,9 +2035,18 @@ public readonly entryPoints: string | string[] | {[ key: string ]: string};
2015
2035
 
2016
2036
  - *Type:* `string` | `string`[] | {[ key: string ]: `string`}
2017
2037
 
2018
- A relative path or list or map of relative paths to the entry points of your code from the root of the project.
2038
+ A path or list or map of paths to the entry points of your code.
2019
2039
 
2020
- E.g. `src/index.ts`.
2040
+ Relative paths are by default resolved from the current working directory.
2041
+ To change the working directory, see `buildOptions.absWorkingDir`.
2042
+
2043
+ Absolute paths can be used if files are part of the working directory.
2044
+
2045
+ Examples:
2046
+ - `'src/index.ts'`
2047
+ - `require.resolve('./lambda')`
2048
+ - `['src/index.ts', 'src/util.ts']`
2049
+ - `{one: 'src/two.ts', two: 'src/one.ts'}`
2021
2050
 
2022
2051
  ---
2023
2052
 
@@ -2060,7 +2089,9 @@ Props to change the behaviour of the bundler.
2060
2089
 
2061
2090
  ### EsbuildCode <a name="@mrgrain/cdk-esbuild.EsbuildCode"></a>
2062
2091
 
2063
- Represents the a generic Esbuild Code bundle.
2092
+ Represents a generic esbuild code bundle.
2093
+
2094
+ You should always use `TypeScriptCode` or `JavaScriptCode`.
2064
2095
 
2065
2096
  #### Initializers <a name="@mrgrain/cdk-esbuild.EsbuildCode.Initializer"></a>
2066
2097
 
@@ -2074,9 +2105,18 @@ new EsbuildCode(entryPoints: string | string[] | {[ key: string ]: string}, prop
2074
2105
 
2075
2106
  - *Type:* `string` | `string`[] | {[ key: string ]: `string`}
2076
2107
 
2077
- A relative path or list or map of relative paths to the entry points of your code from the root of the project.
2108
+ A path or list or map of paths to the entry points of your code.
2109
+
2110
+ Relative paths are by default resolved from the current working directory.
2111
+ To change the working directory, see `buildOptions.absWorkingDir`.
2078
2112
 
2079
- E.g. `src/index.ts`.
2113
+ Absolute paths can be used if files are part of the working directory.
2114
+
2115
+ Examples:
2116
+ - `'src/index.ts'`
2117
+ - `require.resolve('./lambda')`
2118
+ - `['src/index.ts', 'src/util.ts']`
2119
+ - `{one: 'src/two.ts', two: 'src/one.ts'}`
2080
2120
 
2081
2121
  ---
2082
2122
 
@@ -2136,9 +2176,18 @@ public readonly entryPoints: string | string[] | {[ key: string ]: string};
2136
2176
 
2137
2177
  - *Type:* `string` | `string`[] | {[ key: string ]: `string`}
2138
2178
 
2139
- A relative path or list or map of relative paths to the entry points of your code from the root of the project.
2179
+ A path or list or map of paths to the entry points of your code.
2180
+
2181
+ Relative paths are by default resolved from the current working directory.
2182
+ To change the working directory, see `buildOptions.absWorkingDir`.
2140
2183
 
2141
- E.g. `src/index.ts`.
2184
+ Absolute paths can be used if files are part of the working directory.
2185
+
2186
+ Examples:
2187
+ - `'src/index.ts'`
2188
+ - `require.resolve('./lambda')`
2189
+ - `['src/index.ts', 'src/util.ts']`
2190
+ - `{one: 'src/two.ts', two: 'src/one.ts'}`
2142
2191
 
2143
2192
  ---
2144
2193
 
@@ -2329,9 +2378,18 @@ new JavaScriptCode(entryPoints: string | string[] | {[ key: string ]: string}, p
2329
2378
 
2330
2379
  - *Type:* `string` | `string`[] | {[ key: string ]: `string`}
2331
2380
 
2332
- A relative path or list or map of relative paths to the entry points of your code from the root of the project.
2381
+ A path or list or map of paths to the entry points of your code.
2382
+
2383
+ Relative paths are by default resolved from the current working directory.
2384
+ To change the working directory, see `buildOptions.absWorkingDir`.
2333
2385
 
2334
- E.g. `src/index.ts`.
2386
+ Absolute paths can be used if files are part of the working directory.
2387
+
2388
+ Examples:
2389
+ - `'src/index.ts'`
2390
+ - `require.resolve('./lambda')`
2391
+ - `['src/index.ts', 'src/util.ts']`
2392
+ - `{one: 'src/two.ts', two: 'src/one.ts'}`
2335
2393
 
2336
2394
  ---
2337
2395
 
@@ -2368,12 +2426,31 @@ new JavaScriptSource(entryPoints: string | string[] | {[ key: string ]: string},
2368
2426
 
2369
2427
  - *Type:* `string` | `string`[] | {[ key: string ]: `string`}
2370
2428
 
2429
+ A path or list or map of paths to the entry points of your code.
2430
+
2431
+ Relative paths are by default resolved from the current working directory.
2432
+ To change the working directory, see `buildOptions.absWorkingDir`.
2433
+
2434
+ Absolute paths can be used if files are part of the working directory.
2435
+
2436
+ Examples:
2437
+ - `'src/index.ts'`
2438
+ - `require.resolve('./lambda')`
2439
+ - `['src/index.ts', 'src/util.ts']`
2440
+ - `{one: 'src/two.ts', two: 'src/one.ts'}`
2441
+
2371
2442
  ---
2372
2443
 
2373
2444
  ##### `props`<sup>Optional</sup> <a name="@mrgrain/cdk-esbuild.JavaScriptSource.parameter.props"></a>
2374
2445
 
2375
2446
  - *Type:* [`@mrgrain/cdk-esbuild.JavaScriptSourceProps`](#@mrgrain/cdk-esbuild.JavaScriptSourceProps)
2376
2447
 
2448
+ Props to change the behavior of the bundler.
2449
+
2450
+ Default values for `props.buildOptions`:
2451
+ - `bundle=true`
2452
+ - `platform=browser`
2453
+
2377
2454
  ---
2378
2455
 
2379
2456
  #### Methods <a name="Methods"></a>
@@ -2426,9 +2503,18 @@ new TypeScriptCode(entryPoints: string | string[] | {[ key: string ]: string}, p
2426
2503
 
2427
2504
  - *Type:* `string` | `string`[] | {[ key: string ]: `string`}
2428
2505
 
2429
- A relative path or list or map of relative paths to the entry points of your code from the root of the project.
2506
+ A path or list or map of paths to the entry points of your code.
2507
+
2508
+ Relative paths are by default resolved from the current working directory.
2509
+ To change the working directory, see `buildOptions.absWorkingDir`.
2430
2510
 
2431
- E.g. `src/index.ts`.
2511
+ Absolute paths can be used if files are part of the working directory.
2512
+
2513
+ Examples:
2514
+ - `'src/index.ts'`
2515
+ - `require.resolve('./lambda')`
2516
+ - `['src/index.ts', 'src/util.ts']`
2517
+ - `{one: 'src/two.ts', two: 'src/one.ts'}`
2432
2518
 
2433
2519
  ---
2434
2520
 
@@ -2465,12 +2551,31 @@ new TypeScriptSource(entryPoints: string | string[] | {[ key: string ]: string},
2465
2551
 
2466
2552
  - *Type:* `string` | `string`[] | {[ key: string ]: `string`}
2467
2553
 
2554
+ A path or list or map of paths to the entry points of your code.
2555
+
2556
+ Relative paths are by default resolved from the current working directory.
2557
+ To change the working directory, see `buildOptions.absWorkingDir`.
2558
+
2559
+ Absolute paths can be used if files are part of the working directory.
2560
+
2561
+ Examples:
2562
+ - `'src/index.ts'`
2563
+ - `require.resolve('./lambda')`
2564
+ - `['src/index.ts', 'src/util.ts']`
2565
+ - `{one: 'src/two.ts', two: 'src/one.ts'}`
2566
+
2468
2567
  ---
2469
2568
 
2470
2569
  ##### `props`<sup>Optional</sup> <a name="@mrgrain/cdk-esbuild.TypeScriptSource.parameter.props"></a>
2471
2570
 
2472
2571
  - *Type:* [`@mrgrain/cdk-esbuild.TypeScriptSourceProps`](#@mrgrain/cdk-esbuild.TypeScriptSourceProps)
2473
2572
 
2573
+ Props to change the behavior of the bundler.
2574
+
2575
+ Default values for `props.buildOptions`:
2576
+ - `bundle=true`
2577
+ - `platform=browser`
2578
+
2474
2579
  ---
2475
2580
 
2476
2581
  #### Methods <a name="Methods"></a>
package/CHANGELOG.md CHANGED
@@ -1,3 +1,15 @@
1
+ ## [3.6.0](https://github.com/mrgrain/cdk-esbuild/compare/v3.5.0...v3.6.0) (2022-06-23)
2
+
3
+
4
+ ### Features
5
+
6
+ * allow setting of esbuildBinaryPath via Construct interface ([f4eeebe](https://github.com/mrgrain/cdk-esbuild/commit/f4eeebe613bf20b8b28313a81b328bdcd1c1a8e6))
7
+ * upgrade esbuild to support `supported` buildOption and new `copy` loader ([3ac5d92](https://github.com/mrgrain/cdk-esbuild/commit/3ac5d925342505669dbb3d3e88249f6e495b8566))
8
+
9
+
10
+ ### Bug Fixes
11
+
12
+ * make TypeScriptCode and JavaScriptCode correctly extend aws_lambda.Code in jsii ([d04db27](https://github.com/mrgrain/cdk-esbuild/commit/d04db2798559b38d424a2012ebb96d14ebde4fb0))
1
13
 
2
14
  ## [3.5.0](https://github.com/mrgrain/cdk-esbuild/compare/v3.4.0...v3.5.0) (2022-06-02)
3
15
 
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
 
@@ -205,11 +205,11 @@ Instead of esbuild, the provided function will be invoked with the calculated tr
205
205
 
206
206
  Failures have to cause a `TransformFailure` exception in order to be fully handled.
207
207
 
208
- ### Migrating to v3
208
+ ### Upgrading from AWS CDK v1
209
209
 
210
- 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).
211
211
 
212
- #### Upgrading
212
+ To upgrade from AWS CDK v1 and cdk-esbuild@v2, please follow these steps:
213
213
 
214
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.
215
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,7 +38,9 @@ export interface AssetProps extends AssetBaseProps {
27
38
  declare type JavaScriptAssetProps = AssetProps;
28
39
  declare type TypeScriptAssetProps = AssetProps;
29
40
  /**
30
- * Represents the a generic Esbuild Asset.
41
+ * Represents a generic esbuild asset.
42
+ *
43
+ * You should always use `TypeScriptAsset` or `JavaScriptAsset`.
31
44
  *
32
45
  * @stability experimental
33
46
  */
package/lib/asset.js CHANGED
@@ -9,7 +9,9 @@ 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
- * Represents the a generic Esbuild Asset.
12
+ * Represents a generic esbuild asset.
13
+ *
14
+ * You should always use `TypeScriptAsset` or `JavaScriptAsset`.
13
15
  *
14
16
  * @stability experimental
15
17
  */
@@ -21,12 +23,21 @@ class EsbuildAsset extends aws_s3_assets_1.Asset {
21
23
  const { assetHash, copyDir, buildOptions: options = {}, buildFn, } = props;
22
24
  const entryPoints = typeof props.entryPoints === 'string' ? [props.entryPoints] : props.entryPoints;
23
25
  const name = scope.node.path + constructs_1.Node.PATH_SEP + id;
24
- Object.values(entryPoints).forEach((entryPoint) => {
25
- if (path_1.isAbsolute(entryPoint)) {
26
- throw new Error(`${name}: Entry points must be a relative path. If you need to define an absolute path, please use \`buildOptions.absWorkingDir\` accordingly.`);
27
- }
28
- });
29
26
  const absWorkingDir = options.absWorkingDir ?? process.cwd();
27
+ const forceRelativeEntrypointPath = (entryPoint) => {
28
+ if (!path_1.isAbsolute(entryPoint)) {
29
+ return entryPoint;
30
+ }
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)])));
30
41
  const buildOptions = {
31
42
  bundle: true,
32
43
  ...options,
@@ -36,7 +47,7 @@ class EsbuildAsset extends aws_s3_assets_1.Asset {
36
47
  path: absWorkingDir,
37
48
  assetHash,
38
49
  assetHashType: assetHash ? aws_cdk_lib_1.AssetHashType.CUSTOM : aws_cdk_lib_1.AssetHashType.OUTPUT,
39
- bundling: new bundler_1.EsbuildBundler(entryPoints, {
50
+ bundling: new bundler_1.EsbuildBundler(relativeEntryPoints, {
40
51
  buildOptions,
41
52
  copyDir,
42
53
  buildFn,
@@ -46,7 +57,7 @@ class EsbuildAsset extends aws_s3_assets_1.Asset {
46
57
  }
47
58
  exports.EsbuildAsset = EsbuildAsset;
48
59
  _a = JSII_RTTI_SYMBOL_1;
49
- EsbuildAsset[_a] = { fqn: "@mrgrain/cdk-esbuild.EsbuildAsset", version: "3.6.0" };
60
+ EsbuildAsset[_a] = { fqn: "@mrgrain/cdk-esbuild.EsbuildAsset", version: "3.7.0" };
50
61
  /**
51
62
  * Bundles the entry points and creates a CDK asset which is uploaded to the bootstrapped CDK S3 bucket during deployment.
52
63
  *
@@ -58,7 +69,7 @@ class JavaScriptAsset extends EsbuildAsset {
58
69
  }
59
70
  exports.JavaScriptAsset = JavaScriptAsset;
60
71
  _b = JSII_RTTI_SYMBOL_1;
61
- JavaScriptAsset[_b] = { fqn: "@mrgrain/cdk-esbuild.JavaScriptAsset", version: "3.6.0" };
72
+ JavaScriptAsset[_b] = { fqn: "@mrgrain/cdk-esbuild.JavaScriptAsset", version: "3.7.0" };
62
73
  /**
63
74
  * Bundles the entry points and creates a CDK asset which is uploaded to the bootstrapped CDK S3 bucket during deployment.
64
75
  *
@@ -70,5 +81,5 @@ class TypeScriptAsset extends EsbuildAsset {
70
81
  }
71
82
  exports.TypeScriptAsset = TypeScriptAsset;
72
83
  _c = JSII_RTTI_SYMBOL_1;
73
- TypeScriptAsset[_c] = { fqn: "@mrgrain/cdk-esbuild.TypeScriptAsset", version: "3.6.0" };
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvYXNzZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSwrQkFBa0M7QUFDbEMsNkNBQTRDO0FBQzVDLDZEQUE2RDtBQUM3RCwyQ0FBNkM7QUFDN0MsdUNBQXNFO0FBOEJ0RTs7OztHQUlHO0FBQ0gsTUFBYSxZQUF1QyxTQUFRLHFCQUFPO0lBQ2pFOztPQUVHO0lBQ0gsWUFDRSxLQUFnQixFQUNoQixFQUFVLEVBQ1YsS0FBWTtRQUVaLE1BQU0sRUFDSixTQUFTLEVBQ1QsT0FBTyxFQUNQLFlBQVksRUFBRSxPQUFPLEdBQUcsRUFBRSxFQUMxQixPQUFPLEdBQ1IsR0FBRyxLQUFLLENBQUM7UUFDVixNQUFNLFdBQVcsR0FDZixPQUFPLEtBQUssQ0FBQyxXQUFXLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQztRQUVsRixNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxpQkFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7UUFFbEQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxVQUFrQixFQUFFLEVBQUU7WUFDeEQsSUFBSSxpQkFBVSxDQUFDLFVBQVUsQ0FBQyxFQUFFO2dCQUMxQixNQUFNLElBQUksS0FBSyxDQUNiLEdBQUcsSUFBSSx3SUFBd0ksQ0FDaEosQ0FBQzthQUNIO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUMsYUFBYSxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUU3RCxNQUFNLFlBQVksR0FBRztZQUNuQixNQUFNLEVBQUUsSUFBSTtZQUNaLEdBQUcsT0FBTztZQUNWLGFBQWE7U0FDZCxDQUFDO1FBRUYsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDZixJQUFJLEVBQUUsYUFBYTtZQUNuQixTQUFTO1lBQ1QsYUFBYSxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsMkJBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLDJCQUFhLENBQUMsTUFBTTtZQUN0RSxRQUFRLEVBQUUsSUFBSSx3QkFBYyxDQUMxQixXQUFXLEVBQ1g7Z0JBQ0UsWUFBWTtnQkFDWixPQUFPO2dCQUNQLE9BQU87YUFDUixDQUNGO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUFqREgsb0NBa0RDOzs7QUFFRDs7Ozs7O0dBTUc7QUFDSCxNQUFhLGVBQWdCLFNBQVEsWUFBa0M7O0FBQXZFLDBDQUEwRTs7O0FBRTFFOzs7Ozs7R0FNRztBQUNILE1BQWEsZUFBZ0IsU0FBUSxZQUFrQzs7QUFBdkUsMENBQTBFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNBYnNvbHV0ZSB9IGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgQXNzZXRIYXNoVHlwZSB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IEFzc2V0IGFzIFMzQXNzZXQgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczMtYXNzZXRzJztcbmltcG9ydCB7IENvbnN0cnVjdCwgTm9kZSB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgRXNidWlsZEJ1bmRsZXIsIEJ1bmRsZXJQcm9wcywgRW50cnlQb2ludHMgfSBmcm9tICcuL2J1bmRsZXInO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFzc2V0QmFzZVByb3BzIGV4dGVuZHMgQnVuZGxlclByb3BzIHtcbiAgLyoqXG4gICAqIEEgaGFzaCBvZiB0aGlzIGFzc2V0LCB3aGljaCBpcyBhdmFpbGFibGUgYXQgY29uc3RydWN0aW9uIHRpbWUuXG4gICAqXG4gICAqIEFzIHRoaXMgaXMgYSBwbGFpbiBzdHJpbmcsIGl0IGNhbiBiZSB1c2VkIGluIGNvbnN0cnVjdCBJRHMgaW4gb3JkZXIgdG8gZW5mb3JjZSBjcmVhdGlvbiBvZiBhIG5ldyByZXNvdXJjZSB3aGVuIHRoZSBjb250ZW50IGhhc2ggaGFzIGNoYW5nZWQuXG4gICAqXG4gICAqIERlZmF1bHRzIHRvIGEgaGFzaCBvZiBhbGwgZmlsZXMgaW4gdGhlIHJlc3VsdGluZyBidW5kbGUuXG4gICAqXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBhc3NldEhhc2g/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXNzZXRQcm9wcyBleHRlbmRzIEFzc2V0QmFzZVByb3BzIHtcbiAgLyoqXG4gICAqIEEgcmVsYXRpdmUgcGF0aCBvciBsaXN0IG9yIG1hcCBvZiByZWxhdGl2ZSBwYXRocyB0byB0aGUgZW50cnkgcG9pbnRzIG9mIHlvdXIgY29kZSBmcm9tIHRoZSByb290IG9mIHRoZSBwcm9qZWN0LiBFLmcuIGBzcmMvaW5kZXgudHNgLlxuICAgKlxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgZW50cnlQb2ludHM6IEVudHJ5UG9pbnRzO1xufVxuXG50eXBlIEphdmFTY3JpcHRBc3NldFByb3BzID0gQXNzZXRQcm9wcztcbnR5cGUgVHlwZVNjcmlwdEFzc2V0UHJvcHMgPSBBc3NldFByb3BzO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIGEgZ2VuZXJpYyBFc2J1aWxkIEFzc2V0LlxuICpcbiAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gKi9cbmV4cG9ydCBjbGFzcyBFc2J1aWxkQXNzZXQ8UHJvcHMgZXh0ZW5kcyBBc3NldFByb3BzPiBleHRlbmRzIFMzQXNzZXQge1xuICAvKipcbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcHJvcHM6IFByb3BzLFxuICApIHtcbiAgICBjb25zdCB7XG4gICAgICBhc3NldEhhc2gsXG4gICAgICBjb3B5RGlyLFxuICAgICAgYnVpbGRPcHRpb25zOiBvcHRpb25zID0ge30sXG4gICAgICBidWlsZEZuLFxuICAgIH0gPSBwcm9wcztcbiAgICBjb25zdCBlbnRyeVBvaW50czogc3RyaW5nW10gfCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID1cbiAgICAgIHR5cGVvZiBwcm9wcy5lbnRyeVBvaW50cyA9PT0gJ3N0cmluZycgPyBbcHJvcHMuZW50cnlQb2ludHNdIDogcHJvcHMuZW50cnlQb2ludHM7XG5cbiAgICBjb25zdCBuYW1lID0gc2NvcGUubm9kZS5wYXRoICsgTm9kZS5QQVRIX1NFUCArIGlkO1xuXG4gICAgT2JqZWN0LnZhbHVlcyhlbnRyeVBvaW50cykuZm9yRWFjaCgoZW50cnlQb2ludDogc3RyaW5nKSA9PiB7XG4gICAgICBpZiAoaXNBYnNvbHV0ZShlbnRyeVBvaW50KSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYCR7bmFtZX06IEVudHJ5IHBvaW50cyBtdXN0IGJlIGEgcmVsYXRpdmUgcGF0aC4gSWYgeW91IG5lZWQgdG8gZGVmaW5lIGFuIGFic29sdXRlIHBhdGgsIHBsZWFzZSB1c2UgXFxgYnVpbGRPcHRpb25zLmFic1dvcmtpbmdEaXJcXGAgYWNjb3JkaW5nbHkuYCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGNvbnN0IGFic1dvcmtpbmdEaXIgPSBvcHRpb25zLmFic1dvcmtpbmdEaXIgPz8gcHJvY2Vzcy5jd2QoKTtcblxuICAgIGNvbnN0IGJ1aWxkT3B0aW9ucyA9IHtcbiAgICAgIGJ1bmRsZTogdHJ1ZSxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICBhYnNXb3JraW5nRGlyLFxuICAgIH07XG5cbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIHBhdGg6IGFic1dvcmtpbmdEaXIsXG4gICAgICBhc3NldEhhc2gsXG4gICAgICBhc3NldEhhc2hUeXBlOiBhc3NldEhhc2ggPyBBc3NldEhhc2hUeXBlLkNVU1RPTSA6IEFzc2V0SGFzaFR5cGUuT1VUUFVULFxuICAgICAgYnVuZGxpbmc6IG5ldyBFc2J1aWxkQnVuZGxlcihcbiAgICAgICAgZW50cnlQb2ludHMsXG4gICAgICAgIHtcbiAgICAgICAgICBidWlsZE9wdGlvbnMsXG4gICAgICAgICAgY29weURpcixcbiAgICAgICAgICBidWlsZEZuLFxuICAgICAgICB9LFxuICAgICAgKSxcbiAgICB9KTtcbiAgfVxufVxuXG4vKipcbiAqIEJ1bmRsZXMgdGhlIGVudHJ5IHBvaW50cyBhbmQgY3JlYXRlcyBhIENESyBhc3NldCB3aGljaCBpcyB1cGxvYWRlZCB0byB0aGUgYm9vdHN0cmFwcGVkIENESyBTMyBidWNrZXQgZHVyaW5nIGRlcGxveW1lbnQuXG4gKlxuICogVGhlIGFzc2V0IGNhbiBiZSB1c2VkIGJ5IG90aGVyIGNvbnN0cnVjdHMuXG4gKlxuICogQHN0YWJpbGl0eSBzdGFibGVcbiAqL1xuZXhwb3J0IGNsYXNzIEphdmFTY3JpcHRBc3NldCBleHRlbmRzIEVzYnVpbGRBc3NldDxKYXZhU2NyaXB0QXNzZXRQcm9wcz4ge31cblxuLyoqXG4gKiBCdW5kbGVzIHRoZSBlbnRyeSBwb2ludHMgYW5kIGNyZWF0ZXMgYSBDREsgYXNzZXQgd2hpY2ggaXMgdXBsb2FkZWQgdG8gdGhlIGJvb3RzdHJhcHBlZCBDREsgUzMgYnVja2V0IGR1cmluZyBkZXBsb3ltZW50LlxuICpcbiAqIFRoZSBhc3NldCBjYW4gYmUgdXNlZCBieSBvdGhlciBjb25zdHJ1Y3RzLlxuICpcbiAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gKi9cbmV4cG9ydCBjbGFzcyBUeXBlU2NyaXB0QXNzZXQgZXh0ZW5kcyBFc2J1aWxkQXNzZXQ8VHlwZVNjcmlwdEFzc2V0UHJvcHM+IHt9XG4iXX0=
84
+ TypeScriptAsset[_c] = { fqn: "@mrgrain/cdk-esbuild.TypeScriptAsset", version: "3.7.0" };
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvYXNzZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSwrQkFBNEM7QUFDNUMsNkNBQTRDO0FBQzVDLDZEQUE2RDtBQUM3RCwyQ0FBNkM7QUFDN0MsdUNBQXNFO0FBeUN0RTs7Ozs7O0dBTUc7QUFDSCxNQUFhLFlBQXVDLFNBQVEscUJBQU87SUFDakU7O09BRUc7SUFDSCxZQUNFLEtBQWdCLEVBQ2hCLEVBQVUsRUFDVixLQUFZO1FBRVosTUFBTSxFQUNKLFNBQVMsRUFDVCxPQUFPLEVBQ1AsWUFBWSxFQUFFLE9BQU8sR0FBRyxFQUFFLEVBQzFCLE9BQU8sR0FDUixHQUFHLEtBQUssQ0FBQztRQUNWLE1BQU0sV0FBVyxHQUNmLE9BQU8sS0FBSyxDQUFDLFdBQVcsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDO1FBRWxGLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLGlCQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztRQUVsRCxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUMsYUFBYSxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUU3RCxNQUFNLDJCQUEyQixHQUFHLENBQUMsVUFBa0IsRUFBVSxFQUFFO1lBQ2pFLElBQUksQ0FBQyxpQkFBVSxDQUFDLFVBQVUsQ0FBQyxFQUFFO2dCQUMzQixPQUFPLFVBQVUsQ0FBQzthQUNuQjtZQUVELE1BQU0sa0JBQWtCLEdBQUcsZUFBUSxDQUFDLGFBQWEsRUFBRSxVQUFVLENBQUMsQ0FBQztZQUMvRCxJQUFJLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxpQkFBVSxDQUFDLGtCQUFrQixDQUFDLEVBQUU7Z0JBQ3pFLE1BQU0sSUFBSSxLQUFLLENBQ2IsR0FBRyxJQUFJLG1KQUFtSixDQUMzSixDQUFDO2FBQ0g7WUFFRCxPQUFPLGtCQUFrQixDQUFDO1FBQzVCLENBQUMsQ0FBQztRQUVGLE1BQU0sbUJBQW1CLEdBQ3ZCLEtBQUssQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztZQUMxQixXQUFXLENBQUMsR0FBRyxDQUFDLDJCQUEyQixDQUFDLENBQUMsQ0FBQztZQUM5QyxNQUFNLENBQUMsV0FBVyxDQUNoQixNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztpQkFDeEIsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsVUFBVSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsMkJBQTJCLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUMzRSxDQUNKLENBQUM7UUFHTixNQUFNLFlBQVksR0FBRztZQUNuQixNQUFNLEVBQUUsSUFBSTtZQUNaLEdBQUcsT0FBTztZQUNWLGFBQWE7U0FDZCxDQUFDO1FBRUYsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDZixJQUFJLEVBQUUsYUFBYTtZQUNuQixTQUFTO1lBQ1QsYUFBYSxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsMkJBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLDJCQUFhLENBQUMsTUFBTTtZQUN0RSxRQUFRLEVBQUUsSUFBSSx3QkFBYyxDQUMxQixtQkFBbUIsRUFDbkI7Z0JBQ0UsWUFBWTtnQkFDWixPQUFPO2dCQUNQLE9BQU87YUFDUixDQUNGO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUFsRUgsb0NBbUVDOzs7QUFFRDs7Ozs7O0dBTUc7QUFDSCxNQUFhLGVBQWdCLFNBQVEsWUFBa0M7O0FBQXZFLDBDQUEwRTs7O0FBRTFFOzs7Ozs7R0FNRztBQUNILE1BQWEsZUFBZ0IsU0FBUSxZQUFrQzs7QUFBdkUsMENBQTBFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNBYnNvbHV0ZSwgcmVsYXRpdmUgfSBmcm9tICdwYXRoJztcbmltcG9ydCB7IEFzc2V0SGFzaFR5cGUgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBBc3NldCBhcyBTM0Fzc2V0IH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzLWFzc2V0cyc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QsIE5vZGUgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IEVzYnVpbGRCdW5kbGVyLCBCdW5kbGVyUHJvcHMsIEVudHJ5UG9pbnRzIH0gZnJvbSAnLi9idW5kbGVyJztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBc3NldEJhc2VQcm9wcyBleHRlbmRzIEJ1bmRsZXJQcm9wcyB7XG4gIC8qKlxuICAgKiBBIGhhc2ggb2YgdGhpcyBhc3NldCwgd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGNvbnN0cnVjdGlvbiB0aW1lLlxuICAgKlxuICAgKiBBcyB0aGlzIGlzIGEgcGxhaW4gc3RyaW5nLCBpdCBjYW4gYmUgdXNlZCBpbiBjb25zdHJ1Y3QgSURzIGluIG9yZGVyIHRvIGVuZm9yY2UgY3JlYXRpb24gb2YgYSBuZXcgcmVzb3VyY2Ugd2hlbiB0aGUgY29udGVudCBoYXNoIGhhcyBjaGFuZ2VkLlxuICAgKlxuICAgKiBEZWZhdWx0cyB0byBhIGhhc2ggb2YgYWxsIGZpbGVzIGluIHRoZSByZXN1bHRpbmcgYnVuZGxlLlxuICAgKlxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgYXNzZXRIYXNoPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFzc2V0UHJvcHMgZXh0ZW5kcyBBc3NldEJhc2VQcm9wcyB7XG4gIC8qKlxuICAgKiBBIHBhdGggb3IgbGlzdCBvciBtYXAgb2YgcGF0aHMgdG8gdGhlIGVudHJ5IHBvaW50cyBvZiB5b3VyIGNvZGUuXG4gICAqXG4gICAqIFJlbGF0aXZlIHBhdGhzIGFyZSBieSBkZWZhdWx0IHJlc29sdmVkIGZyb20gdGhlIGN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnkuXG4gICAqIFRvIGNoYW5nZSB0aGUgd29ya2luZyBkaXJlY3RvcnksIHNlZSBgYnVpbGRPcHRpb25zLmFic1dvcmtpbmdEaXJgLlxuICAgKlxuICAgKiBBYnNvbHV0ZSBwYXRocyBjYW4gYmUgdXNlZCBpZiBmaWxlcyBhcmUgcGFydCBvZiB0aGUgd29ya2luZyBkaXJlY3RvcnkuXG4gICAqXG4gICAqIEV4YW1wbGVzOlxuICAgKiAgLSBgJ3NyYy9pbmRleC50cydgXG4gICAqICAtIGByZXF1aXJlLnJlc29sdmUoJy4vbGFtYmRhJylgXG4gICAqICAtIGBbJ3NyYy9pbmRleC50cycsICdzcmMvdXRpbC50cyddYFxuICAgKiAgLSBge29uZTogJ3NyYy90d28udHMnLCB0d286ICdzcmMvb25lLnRzJ31gXG4gICAqXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBlbnRyeVBvaW50czogRW50cnlQb2ludHM7XG59XG5cbnR5cGUgSmF2YVNjcmlwdEFzc2V0UHJvcHMgPSBBc3NldFByb3BzO1xudHlwZSBUeXBlU2NyaXB0QXNzZXRQcm9wcyA9IEFzc2V0UHJvcHM7XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIGdlbmVyaWMgZXNidWlsZCBhc3NldC5cbiAqXG4gKiBZb3Ugc2hvdWxkIGFsd2F5cyB1c2UgYFR5cGVTY3JpcHRBc3NldGAgb3IgYEphdmFTY3JpcHRBc3NldGAuXG4gKlxuICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAqL1xuZXhwb3J0IGNsYXNzIEVzYnVpbGRBc3NldDxQcm9wcyBleHRlbmRzIEFzc2V0UHJvcHM+IGV4dGVuZHMgUzNBc3NldCB7XG4gIC8qKlxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBwcm9wczogUHJvcHMsXG4gICkge1xuICAgIGNvbnN0IHtcbiAgICAgIGFzc2V0SGFzaCxcbiAgICAgIGNvcHlEaXIsXG4gICAgICBidWlsZE9wdGlvbnM6IG9wdGlvbnMgPSB7fSxcbiAgICAgIGJ1aWxkRm4sXG4gICAgfSA9IHByb3BzO1xuICAgIGNvbnN0IGVudHJ5UG9pbnRzOiBzdHJpbmdbXSB8IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPVxuICAgICAgdHlwZW9mIHByb3BzLmVudHJ5UG9pbnRzID09PSAnc3RyaW5nJyA/IFtwcm9wcy5lbnRyeVBvaW50c10gOiBwcm9wcy5lbnRyeVBvaW50cztcblxuICAgIGNvbnN0IG5hbWUgPSBzY29wZS5ub2RlLnBhdGggKyBOb2RlLlBBVEhfU0VQICsgaWQ7XG5cbiAgICBjb25zdCBhYnNXb3JraW5nRGlyID0gb3B0aW9ucy5hYnNXb3JraW5nRGlyID8/IHByb2Nlc3MuY3dkKCk7XG5cbiAgICBjb25zdCBmb3JjZVJlbGF0aXZlRW50cnlwb2ludFBhdGggPSAoZW50cnlQb2ludDogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgICAgIGlmICghaXNBYnNvbHV0ZShlbnRyeVBvaW50KSkge1xuICAgICAgICByZXR1cm4gZW50cnlQb2ludDtcbiAgICAgIH1cblxuICAgICAgY29uc3QgcmVsYXRpdmVFbnRyeVBvaW50ID0gcmVsYXRpdmUoYWJzV29ya2luZ0RpciwgZW50cnlQb2ludCk7XG4gICAgICBpZiAocmVsYXRpdmVFbnRyeVBvaW50LnN0YXJ0c1dpdGgoJy4uJykgfHwgaXNBYnNvbHV0ZShyZWxhdGl2ZUVudHJ5UG9pbnQpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgJHtuYW1lfTogRW50cnkgcG9pbnRzIG11c3QgYmUgcGFydCBvZiB0aGUgd29ya2luZyBkaXJlY3RvcnkuIFNlZSBcXGBidWlsZE9wdGlvbnMuYWJzV29ya2luZ0RpclxcYCB0byBzZXQgYSB3b3JraW5nIGRpcmVjdG9yeSBkaWZmZXJlbnQgdG8gdGhlIGN1cnJlbnQgb25lLmAsXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZWxhdGl2ZUVudHJ5UG9pbnQ7XG4gICAgfTtcblxuICAgIGNvbnN0IHJlbGF0aXZlRW50cnlQb2ludHMgPVxuICAgICAgQXJyYXkuaXNBcnJheShlbnRyeVBvaW50cykgP1xuICAgICAgICBlbnRyeVBvaW50cy5tYXAoZm9yY2VSZWxhdGl2ZUVudHJ5cG9pbnRQYXRoKSA6XG4gICAgICAgIE9iamVjdC5mcm9tRW50cmllcyhcbiAgICAgICAgICBPYmplY3QuZW50cmllcyhlbnRyeVBvaW50cylcbiAgICAgICAgICAgIC5tYXAoKFtvdXQsIGVudHJ5UG9pbnRdKSA9PiAoW291dCwgZm9yY2VSZWxhdGl2ZUVudHJ5cG9pbnRQYXRoKGVudHJ5UG9pbnQpXSksXG4gICAgICAgICAgICApLFxuICAgICAgICApO1xuXG5cbiAgICBjb25zdCBidWlsZE9wdGlvbnMgPSB7XG4gICAgICBidW5kbGU6IHRydWUsXG4gICAgICAuLi5vcHRpb25zLFxuICAgICAgYWJzV29ya2luZ0RpcixcbiAgICB9O1xuXG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICBwYXRoOiBhYnNXb3JraW5nRGlyLFxuICAgICAgYXNzZXRIYXNoLFxuICAgICAgYXNzZXRIYXNoVHlwZTogYXNzZXRIYXNoID8gQXNzZXRIYXNoVHlwZS5DVVNUT00gOiBBc3NldEhhc2hUeXBlLk9VVFBVVCxcbiAgICAgIGJ1bmRsaW5nOiBuZXcgRXNidWlsZEJ1bmRsZXIoXG4gICAgICAgIHJlbGF0aXZlRW50cnlQb2ludHMsXG4gICAgICAgIHtcbiAgICAgICAgICBidWlsZE9wdGlvbnMsXG4gICAgICAgICAgY29weURpcixcbiAgICAgICAgICBidWlsZEZuLFxuICAgICAgICB9LFxuICAgICAgKSxcbiAgICB9KTtcbiAgfVxufVxuXG4vKipcbiAqIEJ1bmRsZXMgdGhlIGVudHJ5IHBvaW50cyBhbmQgY3JlYXRlcyBhIENESyBhc3NldCB3aGljaCBpcyB1cGxvYWRlZCB0byB0aGUgYm9vdHN0cmFwcGVkIENESyBTMyBidWNrZXQgZHVyaW5nIGRlcGxveW1lbnQuXG4gKlxuICogVGhlIGFzc2V0IGNhbiBiZSB1c2VkIGJ5IG90aGVyIGNvbnN0cnVjdHMuXG4gKlxuICogQHN0YWJpbGl0eSBzdGFibGVcbiAqL1xuZXhwb3J0IGNsYXNzIEphdmFTY3JpcHRBc3NldCBleHRlbmRzIEVzYnVpbGRBc3NldDxKYXZhU2NyaXB0QXNzZXRQcm9wcz4ge31cblxuLyoqXG4gKiBCdW5kbGVzIHRoZSBlbnRyeSBwb2ludHMgYW5kIGNyZWF0ZXMgYSBDREsgYXNzZXQgd2hpY2ggaXMgdXBsb2FkZWQgdG8gdGhlIGJvb3RzdHJhcHBlZCBDREsgUzMgYnVja2V0IGR1cmluZyBkZXBsb3ltZW50LlxuICpcbiAqIFRoZSBhc3NldCBjYW4gYmUgdXNlZCBieSBvdGhlciBjb25zdHJ1Y3RzLlxuICpcbiAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gKi9cbmV4cG9ydCBjbGFzcyBUeXBlU2NyaXB0QXNzZXQgZXh0ZW5kcyBFc2J1aWxkQXNzZXQ8VHlwZVNjcmlwdEFzc2V0UHJvcHM+IHt9XG4iXX0=
package/lib/bundler.d.ts CHANGED
@@ -1,7 +1,18 @@
1
1
  import { DockerImage, ILocalBundling } from 'aws-cdk-lib';
2
2
  import { BuildOptions } from './esbuild-types';
3
3
  /**
4
- * 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`.
4
+ * A path or list or map of paths to the entry points of your code.
5
+ *
6
+ * Relative paths are by default resolved from the current working directory.
7
+ * To change the working directory, see `buildOptions.absWorkingDir`.
8
+ *
9
+ * Absolute paths can be used if files are part of the working directory.
10
+ *
11
+ * Examples:
12
+ * - `'src/index.ts'`
13
+ * - `require.resolve('./lambda')`
14
+ * - `['src/index.ts', 'src/util.ts']`
15
+ * - `{one: 'src/two.ts', two: 'src/one.ts'}`
5
16
  *
6
17
  * @stability stable
7
18
  */
@@ -80,8 +91,18 @@ export interface BundlerProps {
80
91
  */
81
92
  export declare class EsbuildBundler {
82
93
  /**
83
- * A relative path or list or map of relative paths to the entry points of your code from the root of the project.
84
- * E.g. `src/index.ts`.
94
+ * A path or list or map of paths to the entry points of your code.
95
+ *
96
+ * Relative paths are by default resolved from the current working directory.
97
+ * To change the working directory, see `buildOptions.absWorkingDir`.
98
+ *
99
+ * Absolute paths can be used if files are part of the working directory.
100
+ *
101
+ * Examples:
102
+ * - `'src/index.ts'`
103
+ * - `require.resolve('./lambda')`
104
+ * - `['src/index.ts', 'src/util.ts']`
105
+ * - `{one: 'src/two.ts', two: 'src/one.ts'}`
85
106
  *
86
107
  * @stability experimental
87
108
  */
@@ -109,8 +130,18 @@ export declare class EsbuildBundler {
109
130
  */
110
131
  constructor(
111
132
  /**
112
- * A relative path or list or map of relative paths to the entry points of your code from the root of the project.
113
- * E.g. `src/index.ts`.
133
+ * A path or list or map of paths to the entry points of your code.
134
+ *
135
+ * Relative paths are by default resolved from the current working directory.
136
+ * To change the working directory, see `buildOptions.absWorkingDir`.
137
+ *
138
+ * Absolute paths can be used if files are part of the working directory.
139
+ *
140
+ * Examples:
141
+ * - `'src/index.ts'`
142
+ * - `require.resolve('./lambda')`
143
+ * - `['src/index.ts', 'src/util.ts']`
144
+ * - `{one: 'src/two.ts', two: 'src/one.ts'}`
114
145
  *
115
146
  * @stability experimental
116
147
  */
package/lib/bundler.js CHANGED
@@ -20,8 +20,18 @@ class EsbuildBundler {
20
20
  */
21
21
  constructor(
22
22
  /**
23
- * A relative path or list or map of relative paths to the entry points of your code from the root of the project.
24
- * E.g. `src/index.ts`.
23
+ * A path or list or map of paths to the entry points of your code.
24
+ *
25
+ * Relative paths are by default resolved from the current working directory.
26
+ * To change the working directory, see `buildOptions.absWorkingDir`.
27
+ *
28
+ * Absolute paths can be used if files are part of the working directory.
29
+ *
30
+ * Examples:
31
+ * - `'src/index.ts'`
32
+ * - `require.resolve('./lambda')`
33
+ * - `['src/index.ts', 'src/util.ts']`
34
+ * - `{one: 'src/two.ts', two: 'src/one.ts'}`
25
35
  *
26
36
  * @stability experimental
27
37
  */
@@ -119,5 +129,5 @@ class EsbuildBundler {
119
129
  }
120
130
  exports.EsbuildBundler = EsbuildBundler;
121
131
  _a = JSII_RTTI_SYMBOL_1;
122
- EsbuildBundler[_a] = { fqn: "@mrgrain/cdk-esbuild.EsbuildBundler", version: "3.6.0" };
123
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9idW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsMkJBQStCO0FBQy9CLCtCQUE2RTtBQUM3RSw2Q0FLcUI7QUFFckIsdURBQThDO0FBQzlDLHFEQUFzRDtBQWdGdEQ7Ozs7O0dBS0c7QUFDSCxNQUFhLGNBQWM7SUFlekI7O09BRUc7SUFDSDtJQUNFOzs7OztPQUtHO0lBQ2EsV0FBd0I7SUFFeEM7Ozs7T0FJRztJQUNhLEtBQW1CO1FBUG5CLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBT3hCLFVBQUssR0FBTCxLQUFLLENBQWM7UUF4QnJDOzs7O1dBSUc7UUFDYSxVQUFLLEdBQUcseUJBQVcsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7UUFxQjFELElBQUksS0FBSyxFQUFFLFlBQVksRUFBRSxPQUFPLElBQUksS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUU7WUFDL0QsTUFBTSxJQUFJLEtBQUssQ0FBQyx3Q0FBd0MsQ0FBQyxDQUFDO1NBQzNEO1FBRUQsTUFBTSxFQUFFLE9BQU8sR0FBRywyQkFBUyxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUUzQyxJQUFJLENBQUMsS0FBSyxHQUFHO1lBQ1gsU0FBUyxFQUFFLENBQUMsU0FBaUIsRUFBRSxRQUF5QixFQUFXLEVBQUU7Z0JBRW5FLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUU7b0JBQ3RCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztvQkFFeEQsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUU7d0JBQzlCLE1BQU0sTUFBTSxHQUFHLGNBQU8sQ0FDcEIsSUFBSSxDQUFDLEtBQUssRUFBRSxZQUFZLEVBQUUsYUFBYSxJ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LE9BQWlCLENBQUMsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFTyxnQkFBZ0IsQ0FDdEIsWUFBb0IsRUFDcEIsT0FBaUQsWUFBSztRQUV0RCxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRTtZQUNyQyxPQUFPO2dCQUNMLE1BQU0sRUFBRSxTQUFTO2dCQUNqQixPQUFPLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FDckIsSUFBSSxDQUFDLElBQUksQ0FDUCxHQUFJLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsWUFBWSxFQUFFLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FDMUQsT0FBTyxDQUNLLENBQ2YsQ0FDRjthQUNGLENBQUM7U0FDSDtRQUVELE9BQU87WUFDTCxNQUFNLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FDcEIsSUFBSSxDQUFDLElBQUksQ0FDUCxHQUFJLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FDekQsT0FBTyxDQUNLLENBQ2YsQ0FDRjtZQUNELE9BQU8sRUFBRSxTQUFTO1NBQ25CLENBQUM7SUFDSixDQUFDOztBQWxKSCx3Q0FtSkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBta2RpclN5bmMgfSBmcm9tICdmcyc7XG5pbXBvcnQgeyBqb2luLCBub3JtYWxpemUsIHJlbGF0aXZlLCByZXNvbHZlLCBwb3NpeCwgaXNBYnNvbHV0ZSB9IGZyb20gJ3BhdGgnO1xuaW1wb3J0IHtcbiAgQnVuZGxpbmdPcHRpb25zLFxuICBEb2NrZXJJbWFnZSxcbiAgRmlsZVN5c3RlbSxcbiAgSUxvY2FsQnVuZGxpbmcsXG59IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IEJ1aWxkRmFpbHVyZSwgQnVpbGRPcHRpb25zLCBCdWlsZFJlc3VsdCB9IGZyb20gJy4vZXNidWlsZC10eXBlcyc7XG5pbXBvcnQgeyBidWlsZFN5bmMgfSBmcm9tICcuL2VzYnVpbGQtd3JhcHBlcic7XG5pbXBvcnQgeyBwcmludEJ1aWxkTWVzc2FnZXMgfSBmcm9tICcuL2Zvcm1hdE1lc3NhZ2VzJztcblxuLyoqXG4gKiBBIHJlbGF0aXZlIHBhdGggb3IgbGlzdCBvciBtYXAgb2YgcmVsYXRpdmUgcGF0aHMgdG8gdGhlIGVudHJ5IHBvaW50cyBvZiB5b3VyIGNvZGUgZnJvbSB0aGUgcm9vdCBvZiB0aGUgcHJvamVjdC4gRS5nLiBgc3JjL2luZGV4LnRzYC5cbiAqXG4gKiBAc3RhYmlsaXR5IHN0YWJsZVxuICovXG5leHBvcnQgdHlwZSBFbnRyeVBvaW50cyA9IHN0cmluZyB8IHN0cmluZ1tdIHwgUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcblxuLyoqXG4gKiBAc3RhYmlsaXR5IHN0YWJsZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJ1bmRsZXJQcm9wcyB7XG4gIC8qKlxuICAgKiBCdWlsZCBvcHRpb25zIHBhc3NlZCBvbiB0byBlc2J1aWxkLiBQbGVhc2UgcmVmZXIgdG8gdGhlIGVzYnVpbGQgQnVpbGQgQVBJIGRvY3MgZm9yIGRldGFpbHMuXG4gICAqXG4gICAqICogYGJ1aWxkT3B0aW9ucy5vdXRkaXI6IHN0cmluZ2BcbiAgICogVGhlIGFjdHVhbCBwYXRoIGZvciB0aGUgb3V0cHV0IGRpcmVjdG9yeSBpcyBkZWZpbmVkIGJ5IENESy4gSG93ZXZlciBzZXR0aW5nIHRoaXMgb3B0aW9uIGFsbG93cyB0byB3cml0ZSBmaWxlcyBpbnRvIGEgc3ViZGlyZWN0b3J5LiBcXFxuICAgKiBGb3IgZXhhbXBsZSBgeyBvdXRkaXI6ICdqcycgfWAgd2lsbCBjcmVhdGUgYW4gYXNzZXQgd2l0aCBhIHNpbmdsZSBkaXJlY3RvcnkgY2FsbGVkIGBqc2AsIHdoaWNoIGNvbnRhaW5zIGFsbCBidWlsdCBmaWxlcy4gVGhpcyBhcHByb2FjaCBjYW4gYmUgdXNlZnVsIGZvciBzdGF0aWMgd2Vic2l0ZSBkZXBsb3ltZW50cywgd2hlcmUgSmF2YVNjcmlwdCBjb2RlIHNob3VsZCBiZSBwbGFjZWQgaW50byBhIHN1YmRpcmVjdG9yeS4gXFxcbiAgICogKkNhbm5vdCBiZSB1c2VkIHRvZ2V0aGVyIHdpdGggYG91dGZpbGVgKi5cbiAgICogKiBgYnVpbGRPcHRpb25zLm91dGZpbGU6IHN0cmluZ2BcbiAgICogUmVsYXRpdmUgcGF0aCB0byBhIGZpbGUgaW5zaWRlIHRoZSBDREsgYXNzZXQgb3V0cHV0IGRpcmVjdG9yeS5cbiAgICogRm9yIGV4YW1wbGUgYHsgb3V0ZmlsZTogJ2pzL2luZGV4LmpzJyB9YCB3aWxsIGNyZWF0ZSBhbiBhc3NldCB3aXRoIGEgc2luZ2xlIGRpcmVjdG9yeSBjYWxsZWQgYGpzYCwgd2hpY2ggY29udGFpbnMgYSBzaW5nbGUgZmlsZSBgaW5kZXguanNgLiBUaGlzIGNhbiBiZSB1c2VmdWwgdG8gcmVuYW1lIHRoZSBlbnRyeSBwb2ludC4gXFxcbiAgICogKkNhbm5vdCBiZSB1c2VkIHdpdGggbXVsdGlwbGUgZW50cnlQb2ludHMgb3IgdG9nZXRoZXIgd2l0aCBgb3V0ZGlyYC4qXG4gICAqICogYGJ1aWxkT3B0aW9ucy5hYnNXb3JraW5nRGlyOiBzdHJpbmdgXG4gICAqIEFic29sdXRlIHBhdGggdG8gdGhlIFtlc2J1aWxkIHdvcmtpbmcgZGlyZWN0b3J5XShodHRwczovL2VzYnVpbGQuZ2l0aHViLmlvL2FwaS8jd29ya2luZy1kaXJlY3RvcnkpIGFuZCBkZWZhdWx0cyB0byB0aGUgW2N1cnJlbnQgd29ya2luZyBkaXJlY3RvcnldKGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1dvcmtpbmdfZGlyZWN0b3J5KS4gXFxcbiAgICogSWYgcGF0aHMgY2Fubm90IGJlIGZvdW5kLCBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQgaXMgdG8gbG9vayBhdCB0aGUgY29uY2F0ZW5hdGlvbiBvZiBgYWJzV29ya2luZ0RpciArIGVudHJ5UG9pbnRgLiBJdCBtdXN0IGFsd2F5cyBiZSBhIHZhbGlkIGFic29sdXRlIHBhdGggcG9pbnRpbmcgdG8gdGhlIGVudHJ5IHBvaW50LiBXaGVuIG5lZWRlZCwgdGhlIHByb2JhYmx5IGVhc2llc3Qgd2F5IHRvIHNldCBhYnNXb3JraW5nRGlyIGlzIHRvIHVzZSBhIGNvbWJpbmF0aW9uIG9mIGByZXNvbHZlYCBhbmQgYF9fZGlybmFtZWAgKHNlZSBcIkxpYnJhcnkgYXV0aG9yc1wiIHNlY3Rpb24gaW4gdGhlIGRvY3VtZW50YXRpb24pLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZXNidWlsZC5naXRodWIuaW8vYXBpLyNidWlsZC1hcGlcbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGJ1aWxkT3B0aW9ucz86IEJ1aWxkT3B0aW9ucztcblxuICAvKipcbiAgICogQ29weSBhZGRpdGlvbmFsIGZpbGVzIHRvIHRoZSBjb2RlIFthc3NldCBzdGFnaW5nIGRpcmVjdG9yeV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Nkay9hcGkvdjIvZG9jcy9hd3MtY2RrLWxpYi5Bc3NldFN0YWdpbmcuaHRtbCNhYnNvbHV0ZXN0YWdlZHBhdGgpLCBiZWZvcmUgdGhlIGJ1aWxkIHJ1bnMuXG4gICAqIEZpbGVzIGNvcGllZCBsaWtlIHRoaXMgd2lsbCBiZSBvdmVyd3JpdHRlbiBieSBlc2J1aWxkIGlmIHRoZXkgc2hhcmUgdGhlIHNhbWUgbmFtZSBhcyBhbnkgb2YgdGhlIG91dHB1dHMuXG4gICAqXG4gICAqICogV2hlbiBwcm92aWRlZCB3aXRoIGEgYHN0cmluZ2Agb3IgYGFycmF5YCwgYWxsIGZpbGVzIGFyZSBjb3BpZWQgdG8gdGhlIHJvb3Qgb2YgYXNzZXQgc3RhZ2luZyBkaXJlY3RvcnkuXG4gICAqICogV2hlbiBnaXZlbiBhIGBtYXBgLCB0aGUga2V5IGluZGljYXRlcyB0aGUgZGVzdGluYXRpb24gcmVsYXRpdmUgdG8gdGhlIGFzc2V0IHN0YWdpbmcgZGlyZWN0b3J5IGFuZCB0aGUgdmFsdWUgaXMgYSBsaXN0IG9mIGFsbCBzb3VyY2VzIHRvIGJlIGNvcGllZC5cbiAgICpcbiAgICogVGhlcmVmb3JlIHRoZSBmb2xsb3dpbmcgdmFsdWVzIGZvciBgY29weURpcmAgYXJlIGFsbCBlcXVpdmFsZW50OlxuICAgKiBgYGB0c1xuICAgKiB7IGNvcHlEaXI6IFwicGF0aC90by9zb3VyY2VcIiB9XG4gICAqIHsgY29weURpcjogW1wicGF0aC90by9zb3VyY2VcIl0gfVxuICAgKiB7IGNvcHlEaXI6IHsgXCIuXCI6IFwicGF0aC90by9zb3VyY2VcIiB9IH1cbiAgICogeyBjb3B5RGlyOiB7IFwiLlwiOiBbXCJwYXRoL3RvL3NvdXJjZVwiXSB9IH1cbiAgICogYGBgXG4gICAqIFRoZSBkZXN0aW5hdGlvbiBjYW5ub3QgYmUgb3V0c2lkZSBvZiB0aGUgYXNzZXQgc3RhZ2luZyBkaXJlY3RvcnkuXG4gICAqIElmIHlvdSBhcmUgcmVjZWl2aW5nIHRoZSBlcnJvciBcIkNhbm5vdCBjb3B5IGZpbGVzIHRvIG91dHNpZGUgb2YgdGhlIGFzc2V0IHN0YWdpbmcgZGlyZWN0b3J5LlwiXG4gICAqIHlvdSBhcmUgbGlrZWx5IHVzaW5nIGAuLmAgb3IgYW4gYWJzb2x1dGUgcGF0aCBhcyBrZXkgb24gdGhlIGBjb3B5RGlyYCBtYXAuXG4gICAqIEluc3RlYWQgdXNlIG9ubHkgcmVsYXRpdmUgcGF0aHMgYW5kIGF2b2lkIGAuLmAuXG4gICAqXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBjb3B5RGlyPzogc3RyaW5nIHwgc3RyaW5nW10gfCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBzdHJpbmcgW10+O1xuXG5cbiAgLyoqXG4gICAqIEVzY2FwZSBoYXRjaCB0byBwcm92aWRlIHRoZSBidW5kbGVyIHdpdGggYSBjdXN0b20gYnVpbGQgZnVuY3Rpb24uXG4gICAqIFRoZSBmdW5jdGlvbiB3aWxsIHJlY2VpdmUgdGhlIGNvbXB1dGVkIG9wdGlvbnMgZnJvbSB0aGUgYnVuZGxlci4gSXQgY2FuIHVzZSB3aXRoIHRoZXNlIG9wdGlvbnMgYXMgaXQgd2lzaGVzLCBob3dldmVyIGBvdXRkaXJgL2BvdXRmaWxlYCBtdXN0IGJlIHJlc3BlY3RlZCB0byBpbnRlZ3JhdGUgd2l0aCBDREsuXG4gICAqIE11c3QgdGhyb3cgYSBgQnVpbGRGYWlsdXJlYCBvbiBmYWlsdXJlIHRvIGNvcnJlY3RseSBpbmZvcm0gdGhlIGJ1bmRsZXIuXG4gICAqXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqIEB0eXBlIGVzYnVpbGQuYnVpbGRTeW5jXG4gICAqIEByZXR1cm5zIGVzYnVpbGQuQnVpbGRSZXN1bHRcbiAgICogQHRocm93cyBlc2J1aWxkLkJ1aWxkRmFpbHVyZVxuICAgKiBAZGVmYXVsdCBlc2J1aWxkLmJ1aWxkU3luY1xuICAgKi9cbiAgcmVhZG9ubHkgYnVpbGRGbj86IGFueTtcblxuICAvKipcbiAgICogUGF0aCB0byB0aGUgYmluYXJ5IHVzZWQgYnkgZXNidWlsZC5cbiAgICpcbiAgICogVGhpcyBpcyB0aGUgc2FtZSBhcyBzZXR0aW5nIHRoZSBFU0JVSUxEX0JJTkFSWV9QQVRIIGVudmlyb25tZW50IHZhcmlhYmxlLlxuICAgKlxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgZXNidWlsZEJpbmFyeVBhdGg/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogTG93LWxldmVsIGNvbnN0cnVjdCB0aGF0IGNhbiBiZSB1c2VkIHdoZXJlIGBCdW5kbGluZ09wdGlvbnNgIGFyZSByZXF1aXJlZC5cbiAqIFRoaXMgY2xhc3MgZGlyZWN0bHkgaW50ZXJmYWNlcyB3aXRoIGVzYnVpbGQgYW5kIHByb3ZpZGVzIGFsbW9zdCBubyBjb25maWd1cmF0aW9uIHNhZmVndWFyZHMuXG4gKlxuICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAqL1xuZXhwb3J0IGNsYXNzIEVzYnVpbGRCdW5kbGVyIHtcbiAgLyoqXG4gICAqIEltcGxlbWVudGF0aW9uIG9mIGBJTG9jYWxCdW5kbGluZ2AgaW50ZXJmYWNlLCByZXNwb25zaWJsZSBmb3IgY2FsbGluZyBlc2J1aWxkIGZ1bmN0aW9ucy5cbiAgICpcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBsb2NhbDogSUxvY2FsQnVuZGxpbmc7XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFRoaXMgdmFsdWUgaXMgaWdub3JlZCBzaW5jZSB0aGUgYnVuZGxlciBpcyBhbHdheXMgdXNpbmcgYSBsb2NhbGx5IGluc3RhbGxlZCB2ZXJzaW9uIG9mIGVzYnVpbGQuIEhvd2V2ZXIgdGhlIHByb3BlcnR5IGlzIHJlcXVpcmVkIHRvIGNvbXBseSB3aXRoIHRoZSBgQnVuZGxpbmdPcHRpb25zYCBpbnRlcmZhY2UuXG4gICAqXG4gICAqIEBzdGFiaWxpdHkgZGVwcmVjYXRlZFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGltYWdlID0gRG9ja2VySW1hZ2UuZnJvbVJlZ2lzdHJ5KCdzY3JhdGNoJyk7XG5cbiAgLyoqXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgLyoqXG4gICAgICogQSByZWxhdGl2ZSBwYXRoIG9yIGxpc3Qgb3IgbWFwIG9mIHJlbGF0aXZlIHBhdGhzIHRvIHRoZSBlbnRyeSBwb2ludHMgb2YgeW91ciBjb2RlIGZyb20gdGhlIHJvb3Qgb2YgdGhlIHByb2plY3QuXG4gICAgICogRS5nLiBgc3JjL2luZGV4LnRzYC5cbiAgICAgKlxuICAgICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGVudHJ5UG9pbnRzOiBFbnRyeVBvaW50cyxcblxuICAgIC8qKlxuICAgICAqIFByb3BzIHRvIGNoYW5nZSB0aGUgYmVoYXZpb3VyIG9mIHRoZSBidW5kbGVyLlxuICAgICAqXG4gICAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgcHJvcHM6IEJ1bmRsZXJQcm9wcyxcbiAgKSB7XG4gICAgaWYgKHByb3BzPy5idWlsZE9wdGlvbnM/Lm91dGZpbGUgJiYgcHJvcHM/LmJ1aWxkT3B0aW9ucz8ub3V0ZGlyKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCB1c2UgYm90aCBcIm91dGZpbGVcIiBhbmQgXCJvdXRkaXJcIicpO1xuICAgIH1cblxuICAgIGNvbnN0IHsgYnVpbGRGbiA9IGJ1aWxkU3luYyB9ID0gdGhpcy5wcm9wcztcblxuICAgIHRoaXMubG9jYWwgPSB7XG4gICAgICB0cnlCdW5kbGU6IChvdXRwdXREaXI6IHN0cmluZywgX29wdGlvbnM6IEJ1bmRsaW5nT3B0aW9ucyk6IGJvb2xlYW4gPT4ge1xuXG4gICAgICAgIGlmICh0aGlzLnByb3BzLmNvcHlEaXIpIHtcbiAgICAgICAgICBjb25zdCBjb3B5RGlyID0gdGhpcy5nZXRDb3B5RGlyTGlzdCh0aGlzLnByb3BzLmNvcHlEaXIpO1xuXG4gICAgICAgICAgY29weURpci5mb3JFYWNoKChbZGVzdCwgc3JjXSkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc3JjRGlyID0gcmVzb2x2ZShcbiAgICAgICAgICAgICAgdGhpcy5wcm9wcz8uYnVpbGRPcHRpb25zPy5hYnNXb3JraW5nRGlyID8/IHByb2Nlc3MuY3dkKCksXG4gICAgICAgICAgICAgIHNyYyxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBjb25zdCBkZXN0RGlyID0gcmVzb2x2ZShvdXRwdXREaXIsIGRlc3QpIDtcblxuICAgICAgICAgICAgY29uc3QgZGVzdFRvT3V0cHV0ID0gcmVsYXRpdmUob3V0cHV0RGlyLCBkZXN0RGlyKTtcbiAgICAgICAgICAgIGlmIChkZXN0VG9PdXRwdXQuc3RhcnRzV2l0aCgnLi4nKSB8fCBpc0Fic29sdXRlKGRlc3RUb091dHB1dCkpIHtcbiAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgY29weSBmaWxlcyB0byBvdXRzaWRlIG9mIHRoZSBhc3NldCBzdGFnaW5nIGRpcmVjdG9yeS4gU2VlIGRvY3MgZm9yIGRldGFpbHMuJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIG1rZGlyU3luYyhkZXN0RGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICAgICAgICAgIEZpbGVTeXN0ZW0uY29weURpcmVjdG9yeShzcmNEaXIsIGRlc3REaXIpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgb3JpZ2luYWxFc2J1aWxkQmluYXJ5UGF0aCA9IHByb2Nlc3MuZW52LkVTQlVJTERfQklOQVJZX1BBVEg7XG4gICAgICAgIGlmICh0aGlzLnByb3BzLmVzYnVpbGRCaW5hcnlQYXRoKSB7XG4gICAgICAgICAgcHJvY2Vzcy5lbnYuRVNCVUlMRF9CSU5BUllfUEFUSCA9IHRoaXMucHJvcHMuZXNidWlsZEJpbmFyeVBhdGg7XG4gICAgICAgIH1cblxuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IGJ1aWxkUmVzdWx0OiBCdWlsZFJlc3VsdCA9IGJ1aWxkRm4oe1xuICAgICAgICAgICAgZW50cnlQb2ludHMsXG4gICAgICAgICAgICAuLi4odGhpcy5wcm9wcz8uYnVpbGRPcHRpb25zIHx8IHt9KSxcbiAgICAgICAgICAgIC4uLnRoaXMuZ2V0T3V0cHV0T3B0aW9ucyhvdXRwdXREaXIsIHsgbm9ybWFsaXplLCBqb2luIH0pLFxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgcHJpbnRCdWlsZE1lc3NhZ2VzKGJ1aWxkUmVzdWx0LCB7IHByZWZpeDogJ0J1aWxkICcgfSk7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgcHJpbnRCdWlsZE1lc3NhZ2VzKGVycm9yIGFzIEJ1aWxkRmFpbHVyZSwgeyBwcmVmaXg6ICdCdWlsZCAnIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcHJvY2Vzcy5lbnYuRVNCVUlMRF9CSU5BUllfUEFUSCA9IG9yaWdpbmFsRXNidWlsZEJpbmFyeVBhdGg7XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGdldENvcHlEaXJMaXN0KGNvcHlEaXI6IEJ1bmRsZXJQcm9wc1snY29weURpciddKTogQXJyYXk8W3N0cmluZywgc3RyaW5nXT4ge1xuICAgIC8vIE5vdGhpbmcgdG8gY29weVxuICAgIGlmICghY29weURpcikge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIC8vIExpc3Qgb2Ygc3RyaW5nc1xuICAgIGlmIChBcnJheS5pc0FycmF5KGNvcHlEaXIpKSB7XG4gICAgICByZXR1cm4gY29weURpci5tYXAoKHNyYzogc3RyaW5nKSA9PiBbJy4nLCBzcmNdKTtcbiAgICB9XG5cbiAgICAvLyBBIG1hcFxuICAgIGlmIChcbiAgICAgIHR5cGVvZiBjb3B5RGlyID09PSAnb2JqZWN0JyAmJlxuICAgICAgIUFycmF5LmlzQXJyYXkoY29weURpcikgJiZcbiAgICAgIGNvcHlEaXIgIT09IG51bGxcbiAgICApIHtcbiAgICAgIHJldHVybiBPYmplY3RcbiAgICAgICAgLmVudHJpZXMoY29weURpcilcbiAgICAgICAgLmZsYXRNYXAoKFtkZXN0LCBzb3VyY2VzXSkgPT4ge1xuICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHNvdXJjZXMpKSB7XG4gICAgICAgICAgICByZXR1cm4gc291cmNlcy5tYXAoKHNyYykgPT4gW2Rlc3QsIHNyY10pIGFzIEFycmF5PFtzdHJpbmcsIHN0cmluZ10+O1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBbW2Rlc3QsIHNvdXJjZXNdXTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gQSBzaW5nbGUgc3RyaW5nXG4gICAgcmV0dXJuIFtbJy4nLCBjb3B5RGlyIGFzIHN0cmluZ11dO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRPdXRwdXRPcHRpb25zKFxuICAgIGNka091dHB1dERpcjogc3RyaW5nLFxuICAgIHBhdGg6IFBpY2s8dHlwZW9mIHBvc2l4LCAnbm9ybWFsaXplJyB8ICdqb2luJz4gPSBwb3NpeCxcbiAgKTogQnVpbGRPcHRpb25zIHtcbiAgICBpZiAodGhpcy5wcm9wcz8uYnVpbGRPcHRpb25zPy5vdXRmaWxlKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBvdXRkaXI6IHVuZGVmaW5lZCxcbiAgICAgICAgb3V0ZmlsZTogcGF0aC5ub3JtYWxpemUoXG4gICAgICAgICAgcGF0aC5qb2luKFxuICAgICAgICAgICAgLi4uKFtjZGtPdXRwdXREaXIsIHRoaXMucHJvcHM/LmJ1aWxkT3B0aW9ucz8ub3V0ZmlsZV0uZmlsdGVyKFxuICAgICAgICAgICAgICBCb29sZWFuLFxuICAgICAgICAgICAgKSBhcyBzdHJpbmdbXSksXG4gICAgICAgICAgKSxcbiAgICAgICAgKSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIG91dGRpcjogcGF0aC5ub3JtYWxpemUoXG4gICAgICAgIHBhdGguam9pbihcbiAgICAgICAgICAuLi4oW2Nka091dHB1dERpciwgdGhpcy5wcm9wcz8uYnVpbGRPcHRpb25zPy5vdXRkaXJdLmZpbHRlcihcbiAgICAgICAgICAgIEJvb2xlYW4sXG4gICAgICAgICAgKSBhcyBzdHJpbmdbXSksXG4gICAgICAgICksXG4gICAgICApLFxuICAgICAgb3V0ZmlsZTogdW5kZWZpbmVkLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
132
+ EsbuildBundler[_a] = { fqn: "@mrgrain/cdk-esbuild.EsbuildBundler", version: "3.7.0" };
133
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9idW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsMkJBQStCO0FBQy9CLCtCQUE2RTtBQUM3RSw2Q0FLcUI7QUFFckIsdURBQThDO0FBQzlDLHFEQUFzRDtBQTJGdEQ7Ozs7O0dBS0c7QUFDSCxNQUFhLGNBQWM7SUFlekI7O09BRUc7SUFDSDtJQUNFOzs7Ozs7Ozs7Ozs7Ozs7T0FlRztJQUNhLFdBQXdCO0lBRXhDOzs7O09BSUc7SUFDYSxLQUFtQjtRQVBuQixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQU94QixVQUFLLEdBQUwsS0FBSyxDQUFjO1FBbENyQzs7OztXQUlHO1FBQ2EsVUFBSyxHQUFHLHlCQUFXLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBK0IxRCxJQUFJLEtBQUssRUFBRSxZQUFZLEVBQUUsT0FBTyxJQUFJLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFO1lBQy9ELE1BQU0sSUFBSSxLQUFLLENBQUMsd0NBQXdDLENBQUMsQ0FBQztTQUMzRDtRQUVELE1BQU0sRUFBRSxPQUFPLEdBQUcsMkJBQVMsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFFM0MsSUFBSSxDQUFDLEtBQUssR0FBRztZQUNYLFNBQVMsRUFBRSxDQUFDLFNBQWlCLEVBQUUsUUFBeUIsRUFBVyxFQUFFO2dCQUVuRSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFO29CQUN0QixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7b0JBRXhELE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFO3dCQUM5QixNQUFNLE1BQU0sR0FBRyxjQUFPLENBQ3BCLElBQUksQ0FBQyxLQUFLLEVBQUUsWUFBWSxF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LEdBQUcsRUFBRSxPQUFpQixDQUFDLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRU8sZ0JBQWdCLENBQ3RCLFlBQW9CLEVBQ3BCLE9BQWlELFlBQUs7UUFFdEQsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUU7WUFDckMsT0FBTztnQkFDTCxNQUFNLEVBQUUsU0FBUztnQkFDakIsT0FBTyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQ3JCLElBQUksQ0FBQyxJQUFJLENBQ1AsR0FBSSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLFlBQVksRUFBRSxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQzFELE9BQU8sQ0FDSyxDQUNmLENBQ0Y7YUFDRixDQUFDO1NBQ0g7UUFFRCxPQUFPO1lBQ0wsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQ3BCLElBQUksQ0FBQyxJQUFJLENBQ1AsR0FBSSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQ3pELE9BQU8sQ0FDSyxDQUNmLENBQ0Y7WUFDRCxPQUFPLEVBQUUsU0FBUztTQUNuQixDQUFDO0lBQ0osQ0FBQzs7QUE1Skgsd0NBNkpDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbWtkaXJTeW5jIH0gZnJvbSAnZnMnO1xuaW1wb3J0IHsgam9pbiwgbm9ybWFsaXplLCByZWxhdGl2ZSwgcmVzb2x2ZSwgcG9zaXgsIGlzQWJzb2x1dGUgfSBmcm9tICdwYXRoJztcbmltcG9ydCB7XG4gIEJ1bmRsaW5nT3B0aW9ucyxcbiAgRG9ja2VySW1hZ2UsXG4gIEZpbGVTeXN0ZW0sXG4gIElMb2NhbEJ1bmRsaW5nLFxufSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBCdWlsZEZhaWx1cmUsIEJ1aWxkT3B0aW9ucywgQnVpbGRSZXN1bHQgfSBmcm9tICcuL2VzYnVpbGQtdHlwZXMnO1xuaW1wb3J0IHsgYnVpbGRTeW5jIH0gZnJvbSAnLi9lc2J1aWxkLXdyYXBwZXInO1xuaW1wb3J0IHsgcHJpbnRCdWlsZE1lc3NhZ2VzIH0gZnJvbSAnLi9mb3JtYXRNZXNzYWdlcyc7XG5cbi8qKlxuICogQSBwYXRoIG9yIGxpc3Qgb3IgbWFwIG9mIHBhdGhzIHRvIHRoZSBlbnRyeSBwb2ludHMgb2YgeW91ciBjb2RlLlxuICpcbiAqIFJlbGF0aXZlIHBhdGhzIGFyZSBieSBkZWZhdWx0IHJlc29sdmVkIGZyb20gdGhlIGN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnkuXG4gKiBUbyBjaGFuZ2UgdGhlIHdvcmtpbmcgZGlyZWN0b3J5LCBzZWUgYGJ1aWxkT3B0aW9ucy5hYnNXb3JraW5nRGlyYC5cbiAqXG4gKiBBYnNvbHV0ZSBwYXRocyBjYW4gYmUgdXNlZCBpZiBmaWxlcyBhcmUgcGFydCBvZiB0aGUgd29ya2luZyBkaXJlY3RvcnkuXG4gKlxuICogRXhhbXBsZXM6XG4gKiAgLSBgJ3NyYy9pbmRleC50cydgXG4gKiAgLSBgcmVxdWlyZS5yZXNvbHZlKCcuL2xhbWJkYScpYFxuICogIC0gYFsnc3JjL2luZGV4LnRzJywgJ3NyYy91dGlsLnRzJ11gXG4gKiAgLSBge29uZTogJ3NyYy90d28udHMnLCB0d286ICdzcmMvb25lLnRzJ31gXG4gKlxuICogQHN0YWJpbGl0eSBzdGFibGVcbiAqL1xuZXhwb3J0IHR5cGUgRW50cnlQb2ludHMgPSBzdHJpbmcgfCBzdHJpbmdbXSB8IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG5cbi8qKlxuICogQHN0YWJpbGl0eSBzdGFibGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCdW5kbGVyUHJvcHMge1xuICAvKipcbiAgICogQnVpbGQgb3B0aW9ucyBwYXNzZWQgb24gdG8gZXNidWlsZC4gUGxlYXNlIHJlZmVyIHRvIHRoZSBlc2J1aWxkIEJ1aWxkIEFQSSBkb2NzIGZvciBkZXRhaWxzLlxuICAgKlxuICAgKiAqIGBidWlsZE9wdGlvbnMub3V0ZGlyOiBzdHJpbmdgXG4gICAqIFRoZSBhY3R1YWwgcGF0aCBmb3IgdGhlIG91dHB1dCBkaXJlY3RvcnkgaXMgZGVmaW5lZCBieSBDREsuIEhvd2V2ZXIgc2V0dGluZyB0aGlzIG9wdGlvbiBhbGxvd3MgdG8gd3JpdGUgZmlsZXMgaW50byBhIHN1YmRpcmVjdG9yeS4gXFxcbiAgICogRm9yIGV4YW1wbGUgYHsgb3V0ZGlyOiAnanMnIH1gIHdpbGwgY3JlYXRlIGFuIGFzc2V0IHdpdGggYSBzaW5nbGUgZGlyZWN0b3J5IGNhbGxlZCBganNgLCB3aGljaCBjb250YWlucyBhbGwgYnVpbHQgZmlsZXMuIFRoaXMgYXBwcm9hY2ggY2FuIGJlIHVzZWZ1bCBmb3Igc3RhdGljIHdlYnNpdGUgZGVwbG95bWVudHMsIHdoZXJlIEphdmFTY3JpcHQgY29kZSBzaG91bGQgYmUgcGxhY2VkIGludG8gYSBzdWJkaXJlY3RvcnkuIFxcXG4gICAqICpDYW5ub3QgYmUgdXNlZCB0b2dldGhlciB3aXRoIGBvdXRmaWxlYCouXG4gICAqICogYGJ1aWxkT3B0aW9ucy5vdXRmaWxlOiBzdHJpbmdgXG4gICAqIFJlbGF0aXZlIHBhdGggdG8gYSBmaWxlIGluc2lkZSB0aGUgQ0RLIGFzc2V0IG91dHB1dCBkaXJlY3RvcnkuXG4gICAqIEZvciBleGFtcGxlIGB7IG91dGZpbGU6ICdqcy9pbmRleC5qcycgfWAgd2lsbCBjcmVhdGUgYW4gYXNzZXQgd2l0aCBhIHNpbmdsZSBkaXJlY3RvcnkgY2FsbGVkIGBqc2AsIHdoaWNoIGNvbnRhaW5zIGEgc2luZ2xlIGZpbGUgYGluZGV4LmpzYC4gVGhpcyBjYW4gYmUgdXNlZnVsIHRvIHJlbmFtZSB0aGUgZW50cnkgcG9pbnQuIFxcXG4gICAqICpDYW5ub3QgYmUgdXNlZCB3aXRoIG11bHRpcGxlIGVudHJ5UG9pbnRzIG9yIHRvZ2V0aGVyIHdpdGggYG91dGRpcmAuKlxuICAgKiAqIGBidWlsZE9wdGlvbnMuYWJzV29ya2luZ0Rpcjogc3RyaW5nYFxuICAgKiBBYnNvbHV0ZSBwYXRoIHRvIHRoZSBbZXNidWlsZCB3b3JraW5nIGRpcmVjdG9yeV0oaHR0cHM6Ly9lc2J1aWxkLmdpdGh1Yi5pby9hcGkvI3dvcmtpbmctZGlyZWN0b3J5KSBhbmQgZGVmYXVsdHMgdG8gdGhlIFtjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5XShodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9Xb3JraW5nX2RpcmVjdG9yeSkuIFxcXG4gICAqIElmIHBhdGhzIGNhbm5vdCBiZSBmb3VuZCwgYSBnb29kIHN0YXJ0aW5nIHBvaW50IGlzIHRvIGxvb2sgYXQgdGhlIGNvbmNhdGVuYXRpb24gb2YgYGFic1dvcmtpbmdEaXIgKyBlbnRyeVBvaW50YC4gSXQgbXVzdCBhbHdheXMgYmUgYSB2YWxpZCBhYnNvbHV0ZSBwYXRoIHBvaW50aW5nIHRvIHRoZSBlbnRyeSBwb2ludC4gV2hlbiBuZWVkZWQsIHRoZSBwcm9iYWJseSBlYXNpZXN0IHdheSB0byBzZXQgYWJzV29ya2luZ0RpciBpcyB0byB1c2UgYSBjb21iaW5hdGlvbiBvZiBgcmVzb2x2ZWAgYW5kIGBfX2Rpcm5hbWVgIChzZWUgXCJMaWJyYXJ5IGF1dGhvcnNcIiBzZWN0aW9uIGluIHRoZSBkb2N1bWVudGF0aW9uKS5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2VzYnVpbGQuZ2l0aHViLmlvL2FwaS8jYnVpbGQtYXBpXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBidWlsZE9wdGlvbnM/OiBCdWlsZE9wdGlvbnM7XG5cbiAgLyoqXG4gICAqIENvcHkgYWRkaXRpb25hbCBmaWxlcyB0byB0aGUgY29kZSBbYXNzZXQgc3RhZ2luZyBkaXJlY3RvcnldKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jZGsvYXBpL3YyL2RvY3MvYXdzLWNkay1saWIuQXNzZXRTdGFnaW5nLmh0bWwjYWJzb2x1dGVzdGFnZWRwYXRoKSwgYmVmb3JlIHRoZSBidWlsZCBydW5zLlxuICAgKiBGaWxlcyBjb3BpZWQgbGlrZSB0aGlzIHdpbGwgYmUgb3ZlcndyaXR0ZW4gYnkgZXNidWlsZCBpZiB0aGV5IHNoYXJlIHRoZSBzYW1lIG5hbWUgYXMgYW55IG9mIHRoZSBvdXRwdXRzLlxuICAgKlxuICAgKiAqIFdoZW4gcHJvdmlkZWQgd2l0aCBhIGBzdHJpbmdgIG9yIGBhcnJheWAsIGFsbCBmaWxlcyBhcmUgY29waWVkIHRvIHRoZSByb290IG9mIGFzc2V0IHN0YWdpbmcgZGlyZWN0b3J5LlxuICAgKiAqIFdoZW4gZ2l2ZW4gYSBgbWFwYCwgdGhlIGtleSBpbmRpY2F0ZXMgdGhlIGRlc3RpbmF0aW9uIHJlbGF0aXZlIHRvIHRoZSBhc3NldCBzdGFnaW5nIGRpcmVjdG9yeSBhbmQgdGhlIHZhbHVlIGlzIGEgbGlzdCBvZiBhbGwgc291cmNlcyB0byBiZSBjb3BpZWQuXG4gICAqXG4gICAqIFRoZXJlZm9yZSB0aGUgZm9sbG93aW5nIHZhbHVlcyBmb3IgYGNvcHlEaXJgIGFyZSBhbGwgZXF1aXZhbGVudDpcbiAgICogYGBgdHNcbiAgICogeyBjb3B5RGlyOiBcInBhdGgvdG8vc291cmNlXCIgfVxuICAgKiB7IGNvcHlEaXI6IFtcInBhdGgvdG8vc291cmNlXCJdIH1cbiAgICogeyBjb3B5RGlyOiB7IFwiLlwiOiBcInBhdGgvdG8vc291cmNlXCIgfSB9XG4gICAqIHsgY29weURpcjogeyBcIi5cIjogW1wicGF0aC90by9zb3VyY2VcIl0gfSB9XG4gICAqIGBgYFxuICAgKiBUaGUgZGVzdGluYXRpb24gY2Fubm90IGJlIG91dHNpZGUgb2YgdGhlIGFzc2V0IHN0YWdpbmcgZGlyZWN0b3J5LlxuICAgKiBJZiB5b3UgYXJlIHJlY2VpdmluZyB0aGUgZXJyb3IgXCJDYW5ub3QgY29weSBmaWxlcyB0byBvdXRzaWRlIG9mIHRoZSBhc3NldCBzdGFnaW5nIGRpcmVjdG9yeS5cIlxuICAgKiB5b3UgYXJlIGxpa2VseSB1c2luZyBgLi5gIG9yIGFuIGFic29sdXRlIHBhdGggYXMga2V5IG9uIHRoZSBgY29weURpcmAgbWFwLlxuICAgKiBJbnN0ZWFkIHVzZSBvbmx5IHJlbGF0aXZlIHBhdGhzIGFuZCBhdm9pZCBgLi5gLlxuICAgKlxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgY29weURpcj86IHN0cmluZyB8IHN0cmluZ1tdIHwgUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgc3RyaW5nIFtdPjtcblxuXG4gIC8qKlxuICAgKiBFc2NhcGUgaGF0Y2ggdG8gcHJvdmlkZSB0aGUgYnVuZGxlciB3aXRoIGEgY3VzdG9tIGJ1aWxkIGZ1bmN0aW9uLlxuICAgKiBUaGUgZnVuY3Rpb24gd2lsbCByZWNlaXZlIHRoZSBjb21wdXRlZCBvcHRpb25zIGZyb20gdGhlIGJ1bmRsZXIuIEl0IGNhbiB1c2Ugd2l0aCB0aGVzZSBvcHRpb25zIGFzIGl0IHdpc2hlcywgaG93ZXZlciBgb3V0ZGlyYC9gb3V0ZmlsZWAgbXVzdCBiZSByZXNwZWN0ZWQgdG8gaW50ZWdyYXRlIHdpdGggQ0RLLlxuICAgKiBNdXN0IHRocm93IGEgYEJ1aWxkRmFpbHVyZWAgb24gZmFpbHVyZSB0byBjb3JyZWN0bHkgaW5mb3JtIHRoZSBidW5kbGVyLlxuICAgKlxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKiBAdHlwZSBlc2J1aWxkLmJ1aWxkU3luY1xuICAgKiBAcmV0dXJucyBlc2J1aWxkLkJ1aWxkUmVzdWx0XG4gICAqIEB0aHJvd3MgZXNidWlsZC5CdWlsZEZhaWx1cmVcbiAgICogQGRlZmF1bHQgZXNidWlsZC5idWlsZFN5bmNcbiAgICovXG4gIHJlYWRvbmx5IGJ1aWxkRm4/OiBhbnk7XG5cbiAgLyoqXG4gICAqIFBhdGggdG8gdGhlIGJpbmFyeSB1c2VkIGJ5IGVzYnVpbGQuXG4gICAqXG4gICAqIFRoaXMgaXMgdGhlIHNhbWUgYXMgc2V0dGluZyB0aGUgRVNCVUlMRF9CSU5BUllfUEFUSCBlbnZpcm9ubWVudCB2YXJpYWJsZS5cbiAgICpcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IGVzYnVpbGRCaW5hcnlQYXRoPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIExvdy1sZXZlbCBjb25zdHJ1Y3QgdGhhdCBjYW4gYmUgdXNlZCB3aGVyZSBgQnVuZGxpbmdPcHRpb25zYCBhcmUgcmVxdWlyZWQuXG4gKiBUaGlzIGNsYXNzIGRpcmVjdGx5IGludGVyZmFjZXMgd2l0aCBlc2J1aWxkIGFuZCBwcm92aWRlcyBhbG1vc3Qgbm8gY29uZmlndXJhdGlvbiBzYWZlZ3VhcmRzLlxuICpcbiAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gKi9cbmV4cG9ydCBjbGFzcyBFc2J1aWxkQnVuZGxlciB7XG4gIC8qKlxuICAgKiBJbXBsZW1lbnRhdGlvbiBvZiBgSUxvY2FsQnVuZGxpbmdgIGludGVyZmFjZSwgcmVzcG9uc2libGUgZm9yIGNhbGxpbmcgZXNidWlsZCBmdW5jdGlvbnMuXG4gICAqXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgbG9jYWw6IElMb2NhbEJ1bmRsaW5nO1xuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBUaGlzIHZhbHVlIGlzIGlnbm9yZWQgc2luY2UgdGhlIGJ1bmRsZXIgaXMgYWx3YXlzIHVzaW5nIGEgbG9jYWxseSBpbnN0YWxsZWQgdmVyc2lvbiBvZiBlc2J1aWxkLiBIb3dldmVyIHRoZSBwcm9wZXJ0eSBpcyByZXF1aXJlZCB0byBjb21wbHkgd2l0aCB0aGUgYEJ1bmRsaW5nT3B0aW9uc2AgaW50ZXJmYWNlLlxuICAgKlxuICAgKiBAc3RhYmlsaXR5IGRlcHJlY2F0ZWRcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBpbWFnZSA9IERvY2tlckltYWdlLmZyb21SZWdpc3RyeSgnc2NyYXRjaCcpO1xuXG4gIC8qKlxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIC8qKlxuICAgICAqIEEgcGF0aCBvciBsaXN0IG9yIG1hcCBvZiBwYXRocyB0byB0aGUgZW50cnkgcG9pbnRzIG9mIHlvdXIgY29kZS5cbiAgICAgKlxuICAgICAqIFJlbGF0aXZlIHBhdGhzIGFyZSBieSBkZWZhdWx0IHJlc29sdmVkIGZyb20gdGhlIGN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnkuXG4gICAgICogVG8gY2hhbmdlIHRoZSB3b3JraW5nIGRpcmVjdG9yeSwgc2VlIGBidWlsZE9wdGlvbnMuYWJzV29ya2luZ0RpcmAuXG4gICAgICpcbiAgICAgKiBBYnNvbHV0ZSBwYXRocyBjYW4gYmUgdXNlZCBpZiBmaWxlcyBhcmUgcGFydCBvZiB0aGUgd29ya2luZyBkaXJlY3RvcnkuXG4gICAgICpcbiAgICAgKiBFeGFtcGxlczpcbiAgICAgKiAgLSBgJ3NyYy9pbmRleC50cydgXG4gICAgICogIC0gYHJlcXVpcmUucmVzb2x2ZSgnLi9sYW1iZGEnKWBcbiAgICAgKiAgLSBgWydzcmMvaW5kZXgudHMnLCAnc3JjL3V0aWwudHMnXWBcbiAgICAgKiAgLSBge29uZTogJ3NyYy90d28udHMnLCB0d286ICdzcmMvb25lLnRzJ31gXG4gICAgICpcbiAgICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBlbnRyeVBvaW50czogRW50cnlQb2ludHMsXG5cbiAgICAvKipcbiAgICAgKiBQcm9wcyB0byBjaGFuZ2UgdGhlIGJlaGF2aW91ciBvZiB0aGUgYnVuZGxlci5cbiAgICAgKlxuICAgICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IHByb3BzOiBCdW5kbGVyUHJvcHMsXG4gICkge1xuICAgIGlmIChwcm9wcz8uYnVpbGRPcHRpb25zPy5vdXRmaWxlICYmIHByb3BzPy5idWlsZE9wdGlvbnM/Lm91dGRpcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgdXNlIGJvdGggXCJvdXRmaWxlXCIgYW5kIFwib3V0ZGlyXCInKTtcbiAgICB9XG5cbiAgICBjb25zdCB7IGJ1aWxkRm4gPSBidWlsZFN5bmMgfSA9IHRoaXMucHJvcHM7XG5cbiAgICB0aGlzLmxvY2FsID0ge1xuICAgICAgdHJ5QnVuZGxlOiAob3V0cHV0RGlyOiBzdHJpbmcsIF9vcHRpb25zOiBCdW5kbGluZ09wdGlvbnMpOiBib29sZWFuID0+IHtcblxuICAgICAgICBpZiAodGhpcy5wcm9wcy5jb3B5RGlyKSB7XG4gICAgICAgICAgY29uc3QgY29weURpciA9IHRoaXMuZ2V0Q29weURpckxpc3QodGhpcy5wcm9wcy5jb3B5RGlyKTtcblxuICAgICAgICAgIGNvcHlEaXIuZm9yRWFjaCgoW2Rlc3QsIHNyY10pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHNyY0RpciA9IHJlc29sdmUoXG4gICAgICAgICAgICAgIHRoaXMucHJvcHM/LmJ1aWxkT3B0aW9ucz8uYWJzV29ya2luZ0RpciA/PyBwcm9jZXNzLmN3ZCgpLFxuICAgICAgICAgICAgICBzcmMsXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgY29uc3QgZGVzdERpciA9IHJlc29sdmUob3V0cHV0RGlyLCBkZXN0KSA7XG5cbiAgICAgICAgICAgIGNvbnN0IGRlc3RUb091dHB1dCA9IHJlbGF0aXZlKG91dHB1dERpciwgZGVzdERpcik7XG4gICAgICAgICAgICBpZiAoZGVzdFRvT3V0cHV0LnN0YXJ0c1dpdGgoJy4uJykgfHwgaXNBYnNvbHV0ZShkZXN0VG9PdXRwdXQpKSB7XG4gICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGNvcHkgZmlsZXMgdG8gb3V0c2lkZSBvZiB0aGUgYXNzZXQgc3RhZ2luZyBkaXJlY3RvcnkuIFNlZSBkb2NzIGZvciBkZXRhaWxzLicpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBta2RpclN5bmMoZGVzdERpciwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gICAgICAgICAgICBGaWxlU3lzdGVtLmNvcHlEaXJlY3Rvcnkoc3JjRGlyLCBkZXN0RGlyKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG9yaWdpbmFsRXNidWlsZEJpbmFyeVBhdGggPSBwcm9jZXNzLmVudi5FU0JVSUxEX0JJTkFSWV9QQVRIO1xuICAgICAgICBpZiAodGhpcy5wcm9wcy5lc2J1aWxkQmluYXJ5UGF0aCkge1xuICAgICAgICAgIHByb2Nlc3MuZW52LkVTQlVJTERfQklOQVJZX1BBVEggPSB0aGlzLnByb3BzLmVzYnVpbGRCaW5hcnlQYXRoO1xuICAgICAgICB9XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCBidWlsZFJlc3VsdDogQnVpbGRSZXN1bHQgPSBidWlsZEZuKHtcbiAgICAgICAgICAgIGVudHJ5UG9pbnRzLFxuICAgICAgICAgICAgLi4uKHRoaXMucHJvcHM/LmJ1aWxkT3B0aW9ucyB8fCB7fSksXG4gICAgICAgICAgICAuLi50aGlzLmdldE91dHB1dE9wdGlvbnMob3V0cHV0RGlyLCB7IG5vcm1hbGl6ZSwgam9pbiB9KSxcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIHByaW50QnVpbGRNZXNzYWdlcyhidWlsZFJlc3VsdCwgeyBwcmVmaXg6ICdCdWlsZCAnIH0pO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgIHByaW50QnVpbGRNZXNzYWdlcyhlcnJvciBhcyBCdWlsZEZhaWx1cmUsIHsgcHJlZml4OiAnQnVpbGQgJyB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHByb2Nlc3MuZW52LkVTQlVJTERfQklOQVJZX1BBVEggPSBvcmlnaW5hbEVzYnVpbGRCaW5hcnlQYXRoO1xuXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb3B5RGlyTGlzdChjb3B5RGlyOiBCdW5kbGVyUHJvcHNbJ2NvcHlEaXInXSk6IEFycmF5PFtzdHJpbmcsIHN0cmluZ10+IHtcbiAgICAvLyBOb3RoaW5nIHRvIGNvcHlcbiAgICBpZiAoIWNvcHlEaXIpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICAvLyBMaXN0IG9mIHN0cmluZ3NcbiAgICBpZiAoQXJyYXkuaXNBcnJheShjb3B5RGlyKSkge1xuICAgICAgcmV0dXJuIGNvcHlEaXIubWFwKChzcmM6IHN0cmluZykgPT4gWycuJywgc3JjXSk7XG4gICAgfVxuXG4gICAgLy8gQSBtYXBcbiAgICBpZiAoXG4gICAgICB0eXBlb2YgY29weURpciA9PT0gJ29iamVjdCcgJiZcbiAgICAgICFBcnJheS5pc0FycmF5KGNvcHlEaXIpICYmXG4gICAgICBjb3B5RGlyICE9PSBudWxsXG4gICAgKSB7XG4gICAgICByZXR1cm4gT2JqZWN0XG4gICAgICAgIC5lbnRyaWVzKGNvcHlEaXIpXG4gICAgICAgIC5mbGF0TWFwKChbZGVzdCwgc291cmNlc10pID0+IHtcbiAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShzb3VyY2VzKSkge1xuICAgICAgICAgICAgcmV0dXJuIHNvdXJjZXMubWFwKChzcmMpID0+IFtkZXN0LCBzcmNdKSBhcyBBcnJheTxbc3RyaW5nLCBzdHJpbmddPjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gW1tkZXN0LCBzb3VyY2VzXV07XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIEEgc2luZ2xlIHN0cmluZ1xuICAgIHJldHVybiBbWycuJywgY29weURpciBhcyBzdHJpbmddXTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0T3V0cHV0T3B0aW9ucyhcbiAgICBjZGtPdXRwdXREaXI6IHN0cmluZyxcbiAgICBwYXRoOiBQaWNrPHR5cGVvZiBwb3NpeCwgJ25vcm1hbGl6ZScgfCAnam9pbic+ID0gcG9zaXgsXG4gICk6IEJ1aWxkT3B0aW9ucyB7XG4gICAgaWYgKHRoaXMucHJvcHM/LmJ1aWxkT3B0aW9ucz8ub3V0ZmlsZSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgb3V0ZGlyOiB1bmRlZmluZWQsXG4gICAgICAgIG91dGZpbGU6IHBhdGgubm9ybWFsaXplKFxuICAgICAgICAgIHBhdGguam9pbihcbiAgICAgICAgICAgIC4uLihbY2RrT3V0cHV0RGlyLCB0aGlzLnByb3BzPy5idWlsZE9wdGlvbnM/Lm91dGZpbGVdLmZpbHRlcihcbiAgICAgICAgICAgICAgQm9vbGVhbixcbiAgICAgICAgICAgICkgYXMgc3RyaW5nW10pLFxuICAgICAgICAgICksXG4gICAgICAgICksXG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBvdXRkaXI6IHBhdGgubm9ybWFsaXplKFxuICAgICAgICBwYXRoLmpvaW4oXG4gICAgICAgICAgLi4uKFtjZGtPdXRwdXREaXIsIHRoaXMucHJvcHM/LmJ1aWxkT3B0aW9ucz8ub3V0ZGlyXS5maWx0ZXIoXG4gICAgICAgICAgICBCb29sZWFuLFxuICAgICAgICAgICkgYXMgc3RyaW5nW10pLFxuICAgICAgICApLFxuICAgICAgKSxcbiAgICAgIG91dGZpbGU6IHVuZGVmaW5lZCxcbiAgICB9O1xuICB9XG59XG4iXX0=