@mrgrain/cdk-esbuild 4.0.0-alpha.7 → 4.0.0-beta.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.
Files changed (51) hide show
  1. package/.jsii +1573 -588
  2. package/CHANGELOG.md +104 -0
  3. package/LICENSE +1 -1
  4. package/README.md +223 -102
  5. package/lib/asset.d.ts +20 -5
  6. package/lib/asset.js +31 -19
  7. package/lib/bundler.d.ts +51 -28
  8. package/lib/bundler.js +28 -17
  9. package/lib/code.d.ts +82 -16
  10. package/lib/code.js +71 -25
  11. package/lib/esbuild-types.d.ts +49 -18
  12. package/lib/esbuild-types.js +1 -1
  13. package/lib/index.d.ts +5 -4
  14. package/lib/index.js +8 -7
  15. package/lib/inline-code.d.ts +29 -77
  16. package/lib/inline-code.js +53 -104
  17. package/lib/private/dynamic-package.d.ts +41 -0
  18. package/lib/private/dynamic-package.js +115 -0
  19. package/lib/private/esbuild-source.d.ts +33 -0
  20. package/lib/private/esbuild-source.js +59 -0
  21. package/lib/private/utils.d.ts +7 -0
  22. package/lib/private/utils.js +23 -0
  23. package/lib/provider.d.ts +129 -0
  24. package/lib/provider.js +115 -0
  25. package/lib/source.d.ts +81 -5
  26. package/lib/source.js +84 -8
  27. package/package.json +33 -25
  28. package/rosetta/default.ts-fixture +32 -0
  29. package/.gitattributes +0 -24
  30. package/.projenrc.ts +0 -208
  31. package/API.md +0 -2477
  32. package/SECURITY.md +0 -19
  33. package/lib/esbuild-polyfill.js +0 -2302
  34. package/lib/esbuild-wrapper.d.ts +0 -3
  35. package/lib/esbuild-wrapper.js +0 -31
  36. package/lib/formatMessages.d.ts +0 -18
  37. package/lib/formatMessages.js +0 -34
  38. package/node_modules/isexe/.npmignore +0 -2
  39. package/node_modules/isexe/LICENSE +0 -15
  40. package/node_modules/isexe/README.md +0 -51
  41. package/node_modules/isexe/index.js +0 -57
  42. package/node_modules/isexe/mode.js +0 -41
  43. package/node_modules/isexe/package.json +0 -35
  44. package/node_modules/isexe/test/basic.js +0 -221
  45. package/node_modules/isexe/windows.js +0 -42
  46. package/node_modules/which/CHANGELOG.md +0 -166
  47. package/node_modules/which/LICENSE +0 -15
  48. package/node_modules/which/README.md +0 -54
  49. package/node_modules/which/bin/node-which +0 -52
  50. package/node_modules/which/package.json +0 -47
  51. package/node_modules/which/which.js +0 -125
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.EsbuildSource = exports.Esbuild = void 0;
5
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
+ const dynamic_package_1 = require("./dynamic-package");
7
+ const dynamicEsbuild = new dynamic_package_1.DynamicPackage('esbuild@^0.16.0');
8
+ exports.Esbuild = {
9
+ name: dynamicEsbuild.name,
10
+ version: dynamicEsbuild.version,
11
+ spec: dynamicEsbuild.spec,
12
+ };
13
+ class EsbuildSource {
14
+ constructor() { }
15
+ /**
16
+ * `EsbuildSource.nodeJs()` for NodeJs, `EsbuildSource.auto()` for all other languages
17
+ */
18
+ static platformDefault() {
19
+ if (Boolean(process.env.JSII_AGENT)) {
20
+ return this.auto();
21
+ }
22
+ return this.nodeJs();
23
+ }
24
+ /**
25
+ * Try to find the module in most common paths.
26
+ */
27
+ static anywhere() {
28
+ return this.dynamicPackage.findInPaths();
29
+ }
30
+ /**
31
+ * Try to find the module in common global installation paths.
32
+ */
33
+ static globalPaths() {
34
+ return this.dynamicPackage.findInGlobalPaths();
35
+ }
36
+ /**
37
+ * Require module by name, do not attempt to find it anywhere else.
38
+ */
39
+ static nodeJs() {
40
+ return this.dynamicPackage.nodeJs();
41
+ }
42
+ /**
43
+ * Install the module to a temporary location.
44
+ */
45
+ static install() {
46
+ return this.dynamicPackage.install();
47
+ }
48
+ /**
49
+ * First try to find to module, then install it to a temporary location.
50
+ */
51
+ static auto() {
52
+ return this.dynamicPackage.auto();
53
+ }
54
+ }
55
+ exports.EsbuildSource = EsbuildSource;
56
+ _a = JSII_RTTI_SYMBOL_1;
57
+ EsbuildSource[_a] = { fqn: "@mrgrain/cdk-esbuild.EsbuildSource", version: "4.0.0-beta.0" };
58
+ EsbuildSource.dynamicPackage = dynamicEsbuild;
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNidWlsZC1zb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJpdmF0ZS9lc2J1aWxkLXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHVEQUFtRDtBQUVuRCxNQUFNLGNBQWMsR0FBRyxJQUFJLGdDQUFjLENBQUMsaUJBQWlCLENBQUMsQ0FBQztBQUVoRCxRQUFBLE9BQU8sR0FBRztJQUNyQixJQUFJLEVBQUUsY0FBYyxDQUFDLElBQUk7SUFDekIsT0FBTyxFQUFFLGNBQWMsQ0FBQyxPQUFPO0lBQy9CLElBQUksRUFBRSxjQUFjLENBQUMsSUFBSTtDQUMxQixDQUFDO0FBRUYsTUFBYSxhQUFhO0lBR3hCLGdCQUF1QixDQUFDO0lBRXhCOztPQUVHO0lBQ0ksTUFBTSxDQUFDLGVBQWU7UUFDM0IsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUNuQyxPQUFPLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUNwQjtRQUVELE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxRQUFRO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsV0FBVztRQUN2QixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUNqRCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsTUFBTTtRQUNsQixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksTUFBTSxDQUFDLE9BQU87UUFDbkIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxJQUFJO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNwQyxDQUFDOztBQWpESCxzQ0FrREM7OztBQWpEZ0IsNEJBQWMsR0FBRyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEeW5hbWljUGFja2FnZSB9IGZyb20gJy4vZHluYW1pYy1wYWNrYWdlJztcblxuY29uc3QgZHluYW1pY0VzYnVpbGQgPSBuZXcgRHluYW1pY1BhY2thZ2UoJ2VzYnVpbGRAXjAuMTYuMCcpO1xuXG5leHBvcnQgY29uc3QgRXNidWlsZCA9IHtcbiAgbmFtZTogZHluYW1pY0VzYnVpbGQubmFtZSxcbiAgdmVyc2lvbjogZHluYW1pY0VzYnVpbGQudmVyc2lvbixcbiAgc3BlYzogZHluYW1pY0VzYnVpbGQuc3BlYyxcbn07XG5cbmV4cG9ydCBjbGFzcyBFc2J1aWxkU291cmNlIHtcbiAgcHJpdmF0ZSBzdGF0aWMgZHluYW1pY1BhY2thZ2UgPSBkeW5hbWljRXNidWlsZDtcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKCkge31cblxuICAvKipcbiAgICogYEVzYnVpbGRTb3VyY2Uubm9kZUpzKClgIGZvciBOb2RlSnMsIGBFc2J1aWxkU291cmNlLmF1dG8oKWAgZm9yIGFsbCBvdGhlciBsYW5ndWFnZXNcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcGxhdGZvcm1EZWZhdWx0KCkge1xuICAgIGlmIChCb29sZWFuKHByb2Nlc3MuZW52LkpTSUlfQUdFTlQpKSB7XG4gICAgICByZXR1cm4gdGhpcy5hdXRvKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMubm9kZUpzKCk7XG4gIH1cblxuICAvKipcbiAgICogVHJ5IHRvIGZpbmQgdGhlIG1vZHVsZSBpbiBtb3N0IGNvbW1vbiBwYXRocy5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgYW55d2hlcmUoKSB7XG4gICAgcmV0dXJuIHRoaXMuZHluYW1pY1BhY2thZ2UuZmluZEluUGF0aHMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUcnkgdG8gZmluZCB0aGUgbW9kdWxlIGluIGNvbW1vbiBnbG9iYWwgaW5zdGFsbGF0aW9uIHBhdGhzLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBnbG9iYWxQYXRocygpIHtcbiAgICByZXR1cm4gdGhpcy5keW5hbWljUGFja2FnZS5maW5kSW5HbG9iYWxQYXRocygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlcXVpcmUgbW9kdWxlIGJ5IG5hbWUsIGRvIG5vdCBhdHRlbXB0IHRvIGZpbmQgaXQgYW55d2hlcmUgZWxzZS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgbm9kZUpzKCkge1xuICAgIHJldHVybiB0aGlzLmR5bmFtaWNQYWNrYWdlLm5vZGVKcygpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluc3RhbGwgdGhlIG1vZHVsZSB0byBhIHRlbXBvcmFyeSBsb2NhdGlvbi5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaW5zdGFsbCgpIHtcbiAgICByZXR1cm4gdGhpcy5keW5hbWljUGFja2FnZS5pbnN0YWxsKCk7XG4gIH1cblxuICAvKipcbiAgICogRmlyc3QgdHJ5IHRvIGZpbmQgdG8gbW9kdWxlLCB0aGVuIGluc3RhbGwgaXQgdG8gYSB0ZW1wb3JhcnkgbG9jYXRpb24uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGF1dG8oKSB7XG4gICAgcmV0dXJuIHRoaXMuZHluYW1pY1BhY2thZ2UuYXV0bygpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,7 @@
1
+ import { BuildOptions, Platform, TransformOptions } from '../esbuild-types';
2
+ export declare function isEsbuildError(error: unknown): boolean;
3
+ export declare function nodeMajorVersion(): number;
4
+ export declare function defaultPlatformProps(options?: BuildOptions | TransformOptions): {
5
+ platform?: Platform;
6
+ target?: string | string[];
7
+ };
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.defaultPlatformProps = exports.nodeMajorVersion = exports.isEsbuildError = void 0;
4
+ function isEsbuildError(error) {
5
+ return !!error
6
+ && typeof error == 'object'
7
+ && error != null
8
+ && 'errors' in error
9
+ && 'warnings' in error;
10
+ }
11
+ exports.isEsbuildError = isEsbuildError;
12
+ function nodeMajorVersion() {
13
+ return parseInt(process.versions.node.split('.')[0], 10);
14
+ }
15
+ exports.nodeMajorVersion = nodeMajorVersion;
16
+ function defaultPlatformProps(options) {
17
+ if (!options?.platform || options?.platform === 'node') {
18
+ return { platform: 'node', target: 'node' + nodeMajorVersion() };
19
+ }
20
+ return {};
21
+ }
22
+ exports.defaultPlatformProps = defaultPlatformProps;
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJpdmF0ZS91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSxTQUFnQixjQUFjLENBQUMsS0FBYztJQUMzQyxPQUFPLENBQUMsQ0FBQyxLQUFLO1dBQ1gsT0FBTyxLQUFLLElBQUksUUFBUTtXQUN4QixLQUFLLElBQUksSUFBSTtXQUNiLFFBQVEsSUFBSSxLQUFLO1dBQ2pCLFVBQVUsSUFBSSxLQUFLLENBQUM7QUFDekIsQ0FBQztBQU5ELHdDQU1DO0FBRUQsU0FBZ0IsZ0JBQWdCO0lBQzlCLE9BQU8sUUFBUSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUMzRCxDQUFDO0FBRkQsNENBRUM7QUFFRCxTQUFnQixvQkFBb0IsQ0FBQyxPQUF5QztJQUk1RSxJQUFJLENBQUMsT0FBTyxFQUFFLFFBQVEsSUFBSSxPQUFPLEVBQUUsUUFBUSxLQUFLLE1BQU0sRUFBRTtRQUN0RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxHQUFHLGdCQUFnQixFQUFFLEVBQUUsQ0FBQztLQUNsRTtJQUVELE9BQU8sRUFBRSxDQUFDO0FBQ1osQ0FBQztBQVRELG9EQVNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQnVpbGRPcHRpb25zLCBQbGF0Zm9ybSwgVHJhbnNmb3JtT3B0aW9ucyB9IGZyb20gJy4uL2VzYnVpbGQtdHlwZXMnO1xuXG5leHBvcnQgZnVuY3Rpb24gaXNFc2J1aWxkRXJyb3IoZXJyb3I6IHVua25vd24pOiBib29sZWFuIHtcbiAgcmV0dXJuICEhZXJyb3JcbiAgJiYgdHlwZW9mIGVycm9yID09ICdvYmplY3QnXG4gICYmIGVycm9yICE9IG51bGxcbiAgJiYgJ2Vycm9ycycgaW4gZXJyb3JcbiAgJiYgJ3dhcm5pbmdzJyBpbiBlcnJvcjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG5vZGVNYWpvclZlcnNpb24oKTogbnVtYmVyIHtcbiAgcmV0dXJuIHBhcnNlSW50KHByb2Nlc3MudmVyc2lvbnMubm9kZS5zcGxpdCgnLicpWzBdLCAxMCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWZhdWx0UGxhdGZvcm1Qcm9wcyhvcHRpb25zPzogQnVpbGRPcHRpb25zIHwgVHJhbnNmb3JtT3B0aW9ucyk6IHtcbiAgcGxhdGZvcm0/OiBQbGF0Zm9ybTtcbiAgdGFyZ2V0Pzogc3RyaW5nIHwgc3RyaW5nW107XG59IHtcbiAgaWYgKCFvcHRpb25zPy5wbGF0Zm9ybSB8fCBvcHRpb25zPy5wbGF0Zm9ybSA9PT0gJ25vZGUnKSB7XG4gICAgcmV0dXJuIHsgcGxhdGZvcm06ICdub2RlJywgdGFyZ2V0OiAnbm9kZScgKyBub2RlTWFqb3JWZXJzaW9uKCkgfTtcbiAgfVxuXG4gIHJldHVybiB7fTtcbn1cbiJdfQ==
@@ -0,0 +1,129 @@
1
+ import { BuildOptions, TransformOptions } from './esbuild-types';
2
+ export { EsbuildSource } from './private/esbuild-source';
3
+ export interface ProviderBuildOptions extends BuildOptions {
4
+ /** Documentation: https://esbuild.github.io/api/#entry-points */
5
+ readonly entryPoints?: string[] | Record<string, string>;
6
+ }
7
+ export interface ProviderTransformOptions extends TransformOptions {
8
+ }
9
+ /**
10
+ * Provides an implementation of the esbuild Build API
11
+ */
12
+ export interface IBuildProvider {
13
+ /**
14
+ * A method implementing the code build.
15
+ *
16
+ * During synth time, the method will receive all computed `BuildOptions` from the bundler.
17
+ *
18
+ * It MUST implement any output options to integrate correctly and MAY use any other options.
19
+ * On failure, it SHOULD print any warnings & errors to stderr and throw a `BuildFailure` to inform the bundler.
20
+ *
21
+ * @throws `esbuild.BuildFailure`
22
+ */
23
+ buildSync(options: ProviderBuildOptions): void;
24
+ }
25
+ /**
26
+ * Provides an implementation of the esbuild Transform API
27
+ */
28
+ export interface ITransformProvider {
29
+ /**
30
+ * A method implementing the inline code transformation.
31
+ *
32
+ * During synth time, the method will receive the inline code and all computed `TransformOptions` from the bundler.
33
+ *
34
+ * MUST return the transformed code as a string to integrate correctly.
35
+ * It MAY use these options to do so.
36
+ * On failure, it SHOULD print any warnings & errors to stderr and throw a `TransformFailure` to inform the bundler.
37
+ *
38
+ * @throws `esbuild.TransformFailure`
39
+ */
40
+ transformSync(input: string, options?: ProviderTransformOptions): string;
41
+ }
42
+ /**
43
+ * Provides an implementation of the esbuild Build & Transform API
44
+ */
45
+ export interface IEsbuildProvider extends IBuildProvider, ITransformProvider {
46
+ }
47
+ /**
48
+ * Configure the default EsbuildProvider
49
+ */
50
+ export interface EsbuildProviderProps {
51
+ /**
52
+ * Path to the binary used by esbuild.
53
+ *
54
+ * This is the same as setting the ESBUILD_BINARY_PATH environment variable.
55
+ *
56
+ * @stability stable
57
+ */
58
+ readonly esbuildBinaryPath?: string;
59
+ /**
60
+ * Absolute path to the esbuild module JS file.
61
+ *
62
+ * E.g. "/home/user/.npm/node_modules/esbuild/lib/main.js"
63
+ *
64
+ * If not set, the module path will be determined in the following order:
65
+ *
66
+ * - Use a path from the `CDK_ESBUILD_MODULE_PATH` environment variable
67
+ * - In TypeScript, fallback to the default Node.js package resolution mechanism
68
+ * - All other languages (Python, Go, .NET, Java) use an automatic "best effort" resolution mechanism. \
69
+ * The exact algorithm of this mechanism is considered an implementation detail and should not be relied on.
70
+ * If `esbuild` cannot be found, it might be installed dynamically to a temporary location.
71
+ * To opt-out of this behavior, set either `esbuildModulePath` or `CDK_ESBUILD_MODULE_PATH` env variable.
72
+ *
73
+ * Use the static methods on `EsbuildSource` to customize the default behavior.
74
+ *
75
+ * @stability stable
76
+ * @default - `CDK_ESBUILD_MODULE_PATH` or package resolution (see description)
77
+ */
78
+ readonly esbuildModulePath?: string;
79
+ }
80
+ /**
81
+ * Default esbuild implementation calling esbuild's JavaScript API.
82
+ */
83
+ export declare class EsbuildProvider implements IBuildProvider, ITransformProvider {
84
+ private static _fallbackProvider;
85
+ private static _buildProvider;
86
+ private static _transformationProvider;
87
+ /**
88
+ * Set the default implementation for both Build and Transformation API
89
+ */
90
+ static overrideDefaultProvider(provider: IEsbuildProvider): void;
91
+ /**
92
+ * Set the default implementation for the Build API
93
+ */
94
+ static overrideDefaultBuildProvider(provider: IBuildProvider): void;
95
+ /**
96
+ * Get the default implementation for the Build API
97
+ */
98
+ static defaultBuildProvider(): IBuildProvider;
99
+ /**
100
+ * Set the default implementation for the Transformation API
101
+ */
102
+ static overrideDefaultTransformationProvider(provider: ITransformProvider): void;
103
+ /**
104
+ * Get the default implementation for the Transformation API
105
+ */
106
+ static defaultTransformationProvider(): ITransformProvider;
107
+ private readonly esbuildBinaryPath?;
108
+ private readonly esbuildModulePath?;
109
+ constructor(props?: EsbuildProviderProps);
110
+ buildSync(options: ProviderBuildOptions): void;
111
+ transformSync(input: string, options?: ProviderTransformOptions): string;
112
+ /**
113
+ * Invoke a function with a specific `process.env.ESBUILD_BINARY_PATH`
114
+ * and restore the env var afterwards.
115
+ */
116
+ private withEsbuildBinaryPath;
117
+ /**
118
+ * Load the esbuild module according to defined rules.
119
+ */
120
+ private require;
121
+ /**
122
+ * Wrapper for require
123
+ */
124
+ private _require;
125
+ /**
126
+ * Resolve a token without context
127
+ */
128
+ private resolve;
129
+ }
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.EsbuildProvider = void 0;
5
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
+ const aws_cdk_lib_1 = require("aws-cdk-lib");
7
+ const constructs_1 = require("constructs");
8
+ const esbuild_source_1 = require("./private/esbuild-source");
9
+ var esbuild_source_2 = require("./private/esbuild-source");
10
+ Object.defineProperty(exports, "EsbuildSource", { enumerable: true, get: function () { return esbuild_source_2.EsbuildSource; } });
11
+ /**
12
+ * Default esbuild implementation calling esbuild's JavaScript API.
13
+ */
14
+ class EsbuildProvider {
15
+ constructor(props = {}) {
16
+ this.esbuildBinaryPath = props.esbuildBinaryPath;
17
+ this.esbuildModulePath = props.esbuildModulePath;
18
+ }
19
+ /**
20
+ * Set the default implementation for both Build and Transformation API
21
+ */
22
+ static overrideDefaultProvider(provider) {
23
+ this.overrideDefaultBuildProvider(provider);
24
+ this.overrideDefaultTransformationProvider(provider);
25
+ }
26
+ /**
27
+ * Set the default implementation for the Build API
28
+ */
29
+ static overrideDefaultBuildProvider(provider) {
30
+ this._buildProvider = provider;
31
+ }
32
+ /**
33
+ * Get the default implementation for the Build API
34
+ */
35
+ static defaultBuildProvider() {
36
+ return this._buildProvider ?? this._fallbackProvider;
37
+ }
38
+ /**
39
+ * Set the default implementation for the Transformation API
40
+ */
41
+ static overrideDefaultTransformationProvider(provider) {
42
+ this._transformationProvider = provider;
43
+ }
44
+ /**
45
+ * Get the default implementation for the Transformation API
46
+ */
47
+ static defaultTransformationProvider() {
48
+ return this._transformationProvider ?? this._fallbackProvider;
49
+ }
50
+ buildSync(options) {
51
+ const esbuild = this.require(this.esbuildModulePath);
52
+ const buildFn = this.withEsbuildBinaryPath(esbuild.buildSync, this.esbuildBinaryPath);
53
+ buildFn(options);
54
+ }
55
+ transformSync(input, options) {
56
+ const esbuild = this.require(this.esbuildModulePath);
57
+ const transformFn = this.withEsbuildBinaryPath(esbuild.transformSync, this.esbuildBinaryPath);
58
+ return transformFn(input, options).code;
59
+ }
60
+ /**
61
+ * Invoke a function with a specific `process.env.ESBUILD_BINARY_PATH`
62
+ * and restore the env var afterwards.
63
+ */
64
+ withEsbuildBinaryPath(fn, esbuildBinaryPath) {
65
+ if (!esbuildBinaryPath) {
66
+ return fn;
67
+ }
68
+ return (...args) => {
69
+ const originalEsbuildBinaryPath = process.env.ESBUILD_BINARY_PATH;
70
+ if (esbuildBinaryPath) {
71
+ process.env.ESBUILD_BINARY_PATH = esbuildBinaryPath;
72
+ }
73
+ const result = fn(...args);
74
+ /**
75
+ * only reset `ESBUILD_BINARY_PATH` if it was explicitly set via the construct props
76
+ * since `esbuild` itself sometimes sets it (eg. when running in yarn 2 plug&play)
77
+ */
78
+ if (esbuildBinaryPath) {
79
+ process.env.ESBUILD_BINARY_PATH = originalEsbuildBinaryPath;
80
+ }
81
+ return result;
82
+ };
83
+ }
84
+ /**
85
+ * Load the esbuild module according to defined rules.
86
+ */
87
+ require(path) {
88
+ const module = path || process.env.CDK_ESBUILD_MODULE_PATH || esbuild_source_1.EsbuildSource.platformDefault() || esbuild_source_1.Esbuild.name;
89
+ return this._require(this.resolve(module));
90
+ }
91
+ /**
92
+ * Wrapper for require
93
+ */
94
+ _require(path) {
95
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
96
+ return require(path);
97
+ }
98
+ /**
99
+ * Resolve a token without context
100
+ */
101
+ resolve(token) {
102
+ if (!aws_cdk_lib_1.Token.isUnresolved(token)) {
103
+ return token;
104
+ }
105
+ return aws_cdk_lib_1.Tokenization.resolve(token, {
106
+ scope: new constructs_1.Construct(undefined, ''),
107
+ resolver: new aws_cdk_lib_1.DefaultTokenResolver(new aws_cdk_lib_1.StringConcat()),
108
+ });
109
+ }
110
+ }
111
+ exports.EsbuildProvider = EsbuildProvider;
112
+ _a = JSII_RTTI_SYMBOL_1;
113
+ EsbuildProvider[_a] = { fqn: "@mrgrain/cdk-esbuild.EsbuildProvider", version: "4.0.0-beta.0" };
114
+ EsbuildProvider._fallbackProvider = new EsbuildProvider();
115
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2Q0FBc0Y7QUFDdEYsMkNBQXVDO0FBRXZDLDZEQUFrRTtBQUVsRSwyREFBeUQ7QUFBaEQsK0dBQUEsYUFBYSxPQUFBO0FBc0Z0Qjs7R0FFRztBQUNILE1BQWEsZUFBZTtJQTRDMUIsWUFBbUIsUUFBOEIsRUFBRTtRQUNqRCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDLGlCQUFpQixDQUFDO1FBQ2pELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUMsaUJBQWlCLENBQUM7SUFDbkQsQ0FBQztJQTFDRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxRQUEwQjtRQUM5RCxJQUFJLENBQUMsNEJBQTRCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLHFDQUFxQyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyw0QkFBNEIsQ0FBQyxRQUF3QjtRQUNqRSxJQUFJLENBQUMsY0FBYyxHQUFHLFFBQVEsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsb0JBQW9CO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUM7SUFDdkQsQ0FBQztJQUVEOztPQUVHO0lBQ0ksTUFBTSxDQUFDLHFDQUFxQyxDQUFDLFFBQTRCO1FBQzlFLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxRQUFRLENBQUM7SUFDMUMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksTUFBTSxDQUFDLDZCQUE2QjtRQUN6QyxPQUFPLElBQUksQ0FBQyx1QkFBdUIsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUM7SUFDaEUsQ0FBQztJQVVNLFNBQVMsQ0FBQyxPQUE2QjtRQUM1QyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3JELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBRXRGLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNuQixDQUFDO0lBRU0sYUFBYSxDQUFDLEtBQWEsRUFBRSxPQUFrQztRQUNwRSxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3JELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBRTlGLE9BQU8sV0FBVyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDMUMsQ0FBQztJQUVEOzs7T0FHRztJQUNLLHFCQUFxQixDQUE2QixFQUFLLEVBQUUsaUJBQTBCO1FBQ3pGLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUN0QixPQUFPLEVBQUUsQ0FBQztTQUNYO1FBRUQsT0FBTyxDQUFDLEdBQUcsSUFBZSxFQUFFLEVBQUU7WUFDNUIsTUFBTSx5QkFBeUIsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDO1lBQ2xFLElBQUksaUJBQWlCLEVBQUU7Z0JBQ3JCLE9BQU8sQ0FBQyxHQUFHLENBQUMsbUJBQW1CLEdBQUcsaUJBQWlCLENBQUM7YUFDckQ7WUFFRCxNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztZQUUzQjs7O2VBR0c7WUFDSCxJQUFJLGlCQUFpQixFQUFFO2dCQUNyQixPQUFPLENBQUMsR0FBRyxDQUFDLG1CQUFtQixHQUFHLHlCQUF5QixDQUFDO2FBQzdEO1lBRUQsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVEOztPQUVHO0lBQ0ssT0FBTyxDQUFDLElBQWE7UUFDM0IsTUFBTSxNQUFNLEdBQUcsSUFBSSxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsdUJBQXVCLElBQUksOEJBQWEsQ0FBQyxlQUFlLEVBQUUsSUFBSSx3QkFBTyxDQUFDLElBQUksQ0FBQztRQUU5RyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRDs7T0FFRztJQUNLLFFBQVEsQ0FBQyxJQUFZO1FBQzNCLGlFQUFpRTtRQUNqRSxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBRUQ7O09BRUc7SUFDSyxPQUFPLENBQUMsS0FBYTtRQUMzQixJQUFJLENBQUMsbUJBQUssQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDOUIsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUVELE9BQU8sMEJBQVksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFO1lBQ2pDLEtBQUssRUFBRSxJQUFJLHNCQUFTLENBQUMsU0FBZ0IsRUFBRSxFQUFFLENBQUM7WUFDMUMsUUFBUSxFQUFFLElBQUksa0NBQW9CLENBQUMsSUFBSSwwQkFBWSxFQUFFLENBQUM7U0FDdkQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUF6SEgsMENBMEhDOzs7QUF6SGdCLGlDQUFpQixHQUFHLElBQUksZUFBZSxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZWZhdWx0VG9rZW5SZXNvbHZlciwgU3RyaW5nQ29uY2F0LCBUb2tlbiwgVG9rZW5pemF0aW9uIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBCdWlsZE9wdGlvbnMsIFRyYW5zZm9ybU9wdGlvbnMgfSBmcm9tICcuL2VzYnVpbGQtdHlwZXMnO1xuaW1wb3J0IHsgRXNidWlsZCwgRXNidWlsZFNvdXJjZSB9IGZyb20gJy4vcHJpdmF0ZS9lc2J1aWxkLXNvdXJjZSc7XG5cbmV4cG9ydCB7IEVzYnVpbGRTb3VyY2UgfSBmcm9tICcuL3ByaXZhdGUvZXNidWlsZC1zb3VyY2UnO1xuXG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvdmlkZXJCdWlsZE9wdGlvbnMgZXh0ZW5kcyBCdWlsZE9wdGlvbnMge1xuICAvKiogRG9jdW1lbnRhdGlvbjogaHR0cHM6Ly9lc2J1aWxkLmdpdGh1Yi5pby9hcGkvI2VudHJ5LXBvaW50cyAqL1xuICByZWFkb25seSBlbnRyeVBvaW50cz86IHN0cmluZ1tdIHwgUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQcm92aWRlclRyYW5zZm9ybU9wdGlvbnMgZXh0ZW5kcyBUcmFuc2Zvcm1PcHRpb25zIHt9XG5cblxuLyoqXG4gKiBQcm92aWRlcyBhbiBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgZXNidWlsZCBCdWlsZCBBUElcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJQnVpbGRQcm92aWRlciB7XG4gIC8qKlxuICAgKiBBIG1ldGhvZCBpbXBsZW1lbnRpbmcgdGhlIGNvZGUgYnVpbGQuXG4gICAqXG4gICAqIER1cmluZyBzeW50aCB0aW1lLCB0aGUgbWV0aG9kIHdpbGwgcmVjZWl2ZSBhbGwgY29tcHV0ZWQgYEJ1aWxkT3B0aW9uc2AgZnJvbSB0aGUgYnVuZGxlci5cbiAgICpcbiAgICogSXQgTVVTVCBpbXBsZW1lbnQgYW55IG91dHB1dCBvcHRpb25zIHRvIGludGVncmF0ZSBjb3JyZWN0bHkgYW5kIE1BWSB1c2UgYW55IG90aGVyIG9wdGlvbnMuXG4gICAqIE9uIGZhaWx1cmUsIGl0IFNIT1VMRCBwcmludCBhbnkgd2FybmluZ3MgJiBlcnJvcnMgdG8gc3RkZXJyIGFuZCB0aHJvdyBhIGBCdWlsZEZhaWx1cmVgIHRvIGluZm9ybSB0aGUgYnVuZGxlci5cbiAgICpcbiAgICogQHRocm93cyBgZXNidWlsZC5CdWlsZEZhaWx1cmVgXG4gICAqL1xuICBidWlsZFN5bmMob3B0aW9uczogUHJvdmlkZXJCdWlsZE9wdGlvbnMpOiB2b2lkO1xufVxuXG4vKipcbiAqIFByb3ZpZGVzIGFuIGltcGxlbWVudGF0aW9uIG9mIHRoZSBlc2J1aWxkIFRyYW5zZm9ybSBBUElcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJVHJhbnNmb3JtUHJvdmlkZXIge1xuICAvKipcbiAgICogQSBtZXRob2QgaW1wbGVtZW50aW5nIHRoZSBpbmxpbmUgY29kZSB0cmFuc2Zvcm1hdGlvbi5cbiAgICpcbiAgICogRHVyaW5nIHN5bnRoIHRpbWUsIHRoZSBtZXRob2Qgd2lsbCByZWNlaXZlIHRoZSBpbmxpbmUgY29kZSBhbmQgYWxsIGNvbXB1dGVkIGBUcmFuc2Zvcm1PcHRpb25zYCBmcm9tIHRoZSBidW5kbGVyLlxuICAgKlxuICAgKiBNVVNUIHJldHVybiB0aGUgdHJhbnNmb3JtZWQgY29kZSBhcyBhIHN0cmluZyB0byBpbnRlZ3JhdGUgY29ycmVjdGx5LlxuICAgKiBJdCBNQVkgdXNlIHRoZXNlIG9wdGlvbnMgdG8gZG8gc28uXG4gICAqIE9uIGZhaWx1cmUsIGl0IFNIT1VMRCBwcmludCBhbnkgd2FybmluZ3MgJiBlcnJvcnMgdG8gc3RkZXJyIGFuZCB0aHJvdyBhIGBUcmFuc2Zvcm1GYWlsdXJlYCB0byBpbmZvcm0gdGhlIGJ1bmRsZXIuXG4gICAqXG4gICAqIEB0aHJvd3MgYGVzYnVpbGQuVHJhbnNmb3JtRmFpbHVyZWBcbiAgICovXG4gIHRyYW5zZm9ybVN5bmMoaW5wdXQ6IHN0cmluZywgb3B0aW9ucz86IFByb3ZpZGVyVHJhbnNmb3JtT3B0aW9ucyk6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm92aWRlcyBhbiBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgZXNidWlsZCBCdWlsZCAmIFRyYW5zZm9ybSBBUElcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJRXNidWlsZFByb3ZpZGVyIGV4dGVuZHMgSUJ1aWxkUHJvdmlkZXIsIElUcmFuc2Zvcm1Qcm92aWRlciB7fVxuXG4vKipcbiAqIENvbmZpZ3VyZSB0aGUgZGVmYXVsdCBFc2J1aWxkUHJvdmlkZXJcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFc2J1aWxkUHJvdmlkZXJQcm9wcyB7XG4gIC8qKlxuICAgKiBQYXRoIHRvIHRoZSBiaW5hcnkgdXNlZCBieSBlc2J1aWxkLlxuICAgKlxuICAgKiBUaGlzIGlzIHRoZSBzYW1lIGFzIHNldHRpbmcgdGhlIEVTQlVJTERfQklOQVJZX1BBVEggZW52aXJvbm1lbnQgdmFyaWFibGUuXG4gICAqXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBlc2J1aWxkQmluYXJ5UGF0aD86IHN0cmluZztcblxuICAvKipcbiAgICogQWJzb2x1dGUgcGF0aCB0byB0aGUgZXNidWlsZCBtb2R1bGUgSlMgZmlsZS5cbiAgICpcbiAgICogRS5nLiBcIi9ob21lL3VzZXIvLm5wbS9ub2RlX21vZHVsZXMvZXNidWlsZC9saWIvbWFpbi5qc1wiXG4gICAqXG4gICAqIElmIG5vdCBzZXQsIHRoZSBtb2R1bGUgcGF0aCB3aWxsIGJlIGRldGVybWluZWQgaW4gdGhlIGZvbGxvd2luZyBvcmRlcjpcbiAgICpcbiAgICogLSBVc2UgYSBwYXRoIGZyb20gdGhlIGBDREtfRVNCVUlMRF9NT0RVTEVfUEFUSGAgZW52aXJvbm1lbnQgdmFyaWFibGVcbiAgICogLSBJbiBUeXBlU2NyaXB0LCBmYWxsYmFjayB0byB0aGUgZGVmYXVsdCBOb2RlLmpzIHBhY2thZ2UgcmVzb2x1dGlvbiBtZWNoYW5pc21cbiAgICogLSBBbGwgb3RoZXIgbGFuZ3VhZ2VzIChQeXRob24sIEdvLCAuTkVULCBKYXZhKSB1c2UgYW4gYXV0b21hdGljIFwiYmVzdCBlZmZvcnRcIiByZXNvbHV0aW9uIG1lY2hhbmlzbS4gXFxcbiAgICogICBUaGUgZXhhY3QgYWxnb3JpdGhtIG9mIHRoaXMgbWVjaGFuaXNtIGlzIGNvbnNpZGVyZWQgYW4gaW1wbGVtZW50YXRpb24gZGV0YWlsIGFuZCBzaG91bGQgbm90IGJlIHJlbGllZCBvbi5cbiAgICogICBJZiBgZXNidWlsZGAgY2Fubm90IGJlIGZvdW5kLCBpdCBtaWdodCBiZSBpbnN0YWxsZWQgZHluYW1pY2FsbHkgdG8gYSB0ZW1wb3JhcnkgbG9jYXRpb24uXG4gICAqICAgVG8gb3B0LW91dCBvZiB0aGlzIGJlaGF2aW9yLCBzZXQgZWl0aGVyIGBlc2J1aWxkTW9kdWxlUGF0aGAgb3IgYENES19FU0JVSUxEX01PRFVMRV9QQVRIYCBlbnYgdmFyaWFibGUuXG4gICAqXG4gICAqIFVzZSB0aGUgc3RhdGljIG1ldGhvZHMgb24gYEVzYnVpbGRTb3VyY2VgIHRvIGN1c3RvbWl6ZSB0aGUgZGVmYXVsdCBiZWhhdmlvci5cbiAgICpcbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICogQGRlZmF1bHQgLSBgQ0RLX0VTQlVJTERfTU9EVUxFX1BBVEhgIG9yIHBhY2thZ2UgcmVzb2x1dGlvbiAoc2VlIGRlc2NyaXB0aW9uKVxuICAgKi9cbiAgcmVhZG9ubHkgZXNidWlsZE1vZHVsZVBhdGg/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogRGVmYXVsdCBlc2J1aWxkIGltcGxlbWVudGF0aW9uIGNhbGxpbmcgZXNidWlsZCdzIEphdmFTY3JpcHQgQVBJLlxuICovXG5leHBvcnQgY2xhc3MgRXNidWlsZFByb3ZpZGVyIGltcGxlbWVudHMgSUJ1aWxkUHJvdmlkZXIsIElUcmFuc2Zvcm1Qcm92aWRlciB7XG4gIHByaXZhdGUgc3RhdGljIF9mYWxsYmFja1Byb3ZpZGVyID0gbmV3IEVzYnVpbGRQcm92aWRlcigpO1xuICBwcml2YXRlIHN0YXRpYyBfYnVpbGRQcm92aWRlcjogSUJ1aWxkUHJvdmlkZXI7XG4gIHByaXZhdGUgc3RhdGljIF90cmFuc2Zvcm1hdGlvblByb3ZpZGVyOiBJVHJhbnNmb3JtUHJvdmlkZXI7XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBmb3IgYm90aCBCdWlsZCBhbmQgVHJhbnNmb3JtYXRpb24gQVBJXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlRGVmYXVsdFByb3ZpZGVyKHByb3ZpZGVyOiBJRXNidWlsZFByb3ZpZGVyKSB7XG4gICAgdGhpcy5vdmVycmlkZURlZmF1bHRCdWlsZFByb3ZpZGVyKHByb3ZpZGVyKTtcbiAgICB0aGlzLm92ZXJyaWRlRGVmYXVsdFRyYW5zZm9ybWF0aW9uUHJvdmlkZXIocHJvdmlkZXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBmb3IgdGhlIEJ1aWxkIEFQSVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZURlZmF1bHRCdWlsZFByb3ZpZGVyKHByb3ZpZGVyOiBJQnVpbGRQcm92aWRlcikge1xuICAgIHRoaXMuX2J1aWxkUHJvdmlkZXIgPSBwcm92aWRlcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gZm9yIHRoZSBCdWlsZCBBUElcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZGVmYXVsdEJ1aWxkUHJvdmlkZXIoKTogSUJ1aWxkUHJvdmlkZXIge1xuICAgIHJldHVybiB0aGlzLl9idWlsZFByb3ZpZGVyID8/IHRoaXMuX2ZhbGxiYWNrUHJvdmlkZXI7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIGZvciB0aGUgVHJhbnNmb3JtYXRpb24gQVBJXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlRGVmYXVsdFRyYW5zZm9ybWF0aW9uUHJvdmlkZXIocHJvdmlkZXI6IElUcmFuc2Zvcm1Qcm92aWRlcikge1xuICAgIHRoaXMuX3RyYW5zZm9ybWF0aW9uUHJvdmlkZXIgPSBwcm92aWRlcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gZm9yIHRoZSBUcmFuc2Zvcm1hdGlvbiBBUElcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZGVmYXVsdFRyYW5zZm9ybWF0aW9uUHJvdmlkZXIoKTogSVRyYW5zZm9ybVByb3ZpZGVyIHtcbiAgICByZXR1cm4gdGhpcy5fdHJhbnNmb3JtYXRpb25Qcm92aWRlciA/PyB0aGlzLl9mYWxsYmFja1Byb3ZpZGVyO1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkb25seSBlc2J1aWxkQmluYXJ5UGF0aD86IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBlc2J1aWxkTW9kdWxlUGF0aD86IHN0cmluZztcblxuICBwdWJsaWMgY29uc3RydWN0b3IocHJvcHM6IEVzYnVpbGRQcm92aWRlclByb3BzID0ge30pIHtcbiAgICB0aGlzLmVzYnVpbGRCaW5hcnlQYXRoID0gcHJvcHMuZXNidWlsZEJpbmFyeVBhdGg7XG4gICAgdGhpcy5lc2J1aWxkTW9kdWxlUGF0aCA9IHByb3BzLmVzYnVpbGRNb2R1bGVQYXRoO1xuICB9XG5cbiAgcHVibGljIGJ1aWxkU3luYyhvcHRpb25zOiBQcm92aWRlckJ1aWxkT3B0aW9ucyk6IHZvaWQge1xuICAgIGNvbnN0IGVzYnVpbGQgPSB0aGlzLnJlcXVpcmUodGhpcy5lc2J1aWxkTW9kdWxlUGF0aCk7XG4gICAgY29uc3QgYnVpbGRGbiA9IHRoaXMud2l0aEVzYnVpbGRCaW5hcnlQYXRoKGVzYnVpbGQuYnVpbGRTeW5jLCB0aGlzLmVzYnVpbGRCaW5hcnlQYXRoKTtcblxuICAgIGJ1aWxkRm4ob3B0aW9ucyk7XG4gIH1cblxuICBwdWJsaWMgdHJhbnNmb3JtU3luYyhpbnB1dDogc3RyaW5nLCBvcHRpb25zPzogUHJvdmlkZXJUcmFuc2Zvcm1PcHRpb25zKTogc3RyaW5nIHtcbiAgICBjb25zdCBlc2J1aWxkID0gdGhpcy5yZXF1aXJlKHRoaXMuZXNidWlsZE1vZHVsZVBhdGgpO1xuICAgIGNvbnN0IHRyYW5zZm9ybUZuID0gdGhpcy53aXRoRXNidWlsZEJpbmFyeVBhdGgoZXNidWlsZC50cmFuc2Zvcm1TeW5jLCB0aGlzLmVzYnVpbGRCaW5hcnlQYXRoKTtcblxuICAgIHJldHVybiB0cmFuc2Zvcm1GbihpbnB1dCwgb3B0aW9ucykuY29kZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbnZva2UgYSBmdW5jdGlvbiB3aXRoIGEgc3BlY2lmaWMgYHByb2Nlc3MuZW52LkVTQlVJTERfQklOQVJZX1BBVEhgXG4gICAqIGFuZCByZXN0b3JlIHRoZSBlbnYgdmFyIGFmdGVyd2FyZHMuXG4gICAqL1xuICBwcml2YXRlIHdpdGhFc2J1aWxkQmluYXJ5UGF0aDxUIGV4dGVuZHMgQ2FsbGFibGVGdW5jdGlvbj4oZm46IFQsIGVzYnVpbGRCaW5hcnlQYXRoPzogc3RyaW5nKSB7XG4gICAgaWYgKCFlc2J1aWxkQmluYXJ5UGF0aCkge1xuICAgICAgcmV0dXJuIGZuO1xuICAgIH1cblxuICAgIHJldHVybiAoLi4uYXJnczogdW5rbm93bltdKSA9PiB7XG4gICAgICBjb25zdCBvcmlnaW5hbEVzYnVpbGRCaW5hcnlQYXRoID0gcHJvY2Vzcy5lbnYuRVNCVUlMRF9CSU5BUllfUEFUSDtcbiAgICAgIGlmIChlc2J1aWxkQmluYXJ5UGF0aCkge1xuICAgICAgICBwcm9jZXNzLmVudi5FU0JVSUxEX0JJTkFSWV9QQVRIID0gZXNidWlsZEJpbmFyeVBhdGg7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHJlc3VsdCA9IGZuKC4uLmFyZ3MpO1xuXG4gICAgICAvKipcbiAgICAgICAqIG9ubHkgcmVzZXQgYEVTQlVJTERfQklOQVJZX1BBVEhgIGlmIGl0IHdhcyBleHBsaWNpdGx5IHNldCB2aWEgdGhlIGNvbnN0cnVjdCBwcm9wc1xuICAgICAgICogc2luY2UgYGVzYnVpbGRgIGl0c2VsZiBzb21ldGltZXMgc2V0cyBpdCAoZWcuIHdoZW4gcnVubmluZyBpbiB5YXJuIDIgcGx1ZyZwbGF5KVxuICAgICAgICovXG4gICAgICBpZiAoZXNidWlsZEJpbmFyeVBhdGgpIHtcbiAgICAgICAgcHJvY2Vzcy5lbnYuRVNCVUlMRF9CSU5BUllfUEFUSCA9IG9yaWdpbmFsRXNidWlsZEJpbmFyeVBhdGg7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkIHRoZSBlc2J1aWxkIG1vZHVsZSBhY2NvcmRpbmcgdG8gZGVmaW5lZCBydWxlcy5cbiAgICovXG4gIHByaXZhdGUgcmVxdWlyZShwYXRoPzogc3RyaW5nKTogSUJ1aWxkUHJvdmlkZXIgJiBJVHJhbnNmb3JtUHJvdmlkZXIge1xuICAgIGNvbnN0IG1vZHVsZSA9IHBhdGggfHwgcHJvY2Vzcy5lbnYuQ0RLX0VTQlVJTERfTU9EVUxFX1BBVEggfHwgRXNidWlsZFNvdXJjZS5wbGF0Zm9ybURlZmF1bHQoKSB8fCBFc2J1aWxkLm5hbWU7XG5cbiAgICByZXR1cm4gdGhpcy5fcmVxdWlyZSh0aGlzLnJlc29sdmUobW9kdWxlKSk7XG4gIH1cblxuICAvKipcbiAgICogV3JhcHBlciBmb3IgcmVxdWlyZVxuICAgKi9cbiAgcHJpdmF0ZSBfcmVxdWlyZShwYXRoOiBzdHJpbmcpOiBJQnVpbGRQcm92aWRlciAmIElUcmFuc2Zvcm1Qcm92aWRlciB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1yZXF1aXJlLWltcG9ydHNcbiAgICByZXR1cm4gcmVxdWlyZShwYXRoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNvbHZlIGEgdG9rZW4gd2l0aG91dCBjb250ZXh0XG4gICAqL1xuICBwcml2YXRlIHJlc29sdmUodG9rZW46IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKCFUb2tlbi5pc1VucmVzb2x2ZWQodG9rZW4pKSB7XG4gICAgICByZXR1cm4gdG9rZW47XG4gICAgfVxuXG4gICAgcmV0dXJuIFRva2VuaXphdGlvbi5yZXNvbHZlKHRva2VuLCB7XG4gICAgICBzY29wZTogbmV3IENvbnN0cnVjdCh1bmRlZmluZWQgYXMgYW55LCAnJyksXG4gICAgICByZXNvbHZlcjogbmV3IERlZmF1bHRUb2tlblJlc29sdmVyKG5ldyBTdHJpbmdDb25jYXQoKSksXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
package/lib/source.d.ts CHANGED
@@ -10,20 +10,96 @@ declare abstract class Source<Props extends JavaScriptSourceProps | TypeScriptSo
10
10
  protected readonly abstract assetClass: new (scope: Construct, id: string, props: AssetProps) => Asset;
11
11
  protected props: AssetProps;
12
12
  protected asset: Asset;
13
+ constructor(
13
14
  /**
15
+ * A path or list or map of paths to the entry points of your code.
14
16
  *
15
- * @param entryPoints - Relative path to the source code. Use `props.buildOptions.absWorkingDir` if an absolute path is required.
16
- * @param props - Source properties.
17
+ * Relative paths are by default resolved from the current working directory.
18
+ * To change the working directory, see `buildOptions.absWorkingDir`.
19
+ *
20
+ * Absolute paths can be used if files are part of the working directory.
21
+ *
22
+ * Examples:
23
+ * - `'src/index.ts'`
24
+ * - `require.resolve('./lambda')`
25
+ * - `['src/index.ts', 'src/util.ts']`
26
+ * - `{one: 'src/two.ts', two: 'src/one.ts'}`
27
+ *
28
+ * @stability stable
29
+ */
30
+ entryPoints: EntryPoints,
31
+ /**
32
+ * Props to change the behavior of the bundler.
33
+ *
34
+ * Default values for `props.buildOptions`:
35
+ * - `bundle=true`
36
+ * - `platform=browser`
37
+ *
38
+ * @stability stable
17
39
  */
18
- constructor(entryPoints: EntryPoints, props: Props);
40
+ props: Props);
19
41
  bind(scope: Construct, context?: DeploymentSourceContext): SourceConfig;
20
42
  }
21
43
  export declare class JavaScriptSource extends Source<JavaScriptSourceProps, JavaScriptAsset> {
22
44
  assetClass: typeof JavaScriptAsset;
23
- constructor(entryPoints: EntryPoints, props?: JavaScriptSourceProps);
45
+ constructor(
46
+ /**
47
+ * A path or list or map of paths to the entry points of your code.
48
+ *
49
+ * Relative paths are by default resolved from the current working directory.
50
+ * To change the working directory, see `buildOptions.absWorkingDir`.
51
+ *
52
+ * Absolute paths can be used if files are part of the working directory.
53
+ *
54
+ * Examples:
55
+ * - `'src/index.ts'`
56
+ * - `require.resolve('./lambda')`
57
+ * - `['src/index.ts', 'src/util.ts']`
58
+ * - `{one: 'src/two.ts', two: 'src/one.ts'}`
59
+ *
60
+ * @stability stable
61
+ */
62
+ entryPoints: EntryPoints,
63
+ /**
64
+ * Props to change the behavior of the bundler.
65
+ *
66
+ * Default values for `props.buildOptions`:
67
+ * - `bundle=true`
68
+ * - `platform=browser`
69
+ *
70
+ * @stability stable
71
+ */
72
+ props?: JavaScriptSourceProps);
24
73
  }
25
74
  export declare class TypeScriptSource extends Source<TypeScriptSourceProps, TypeScriptAsset> {
26
75
  assetClass: typeof TypeScriptAsset;
27
- constructor(entryPoints: EntryPoints, props?: TypeScriptSourceProps);
76
+ constructor(
77
+ /**
78
+ * A path or list or map of paths to the entry points of your code.
79
+ *
80
+ * Relative paths are by default resolved from the current working directory.
81
+ * To change the working directory, see `buildOptions.absWorkingDir`.
82
+ *
83
+ * Absolute paths can be used if files are part of the working directory.
84
+ *
85
+ * Examples:
86
+ * - `'src/index.ts'`
87
+ * - `require.resolve('./lambda')`
88
+ * - `['src/index.ts', 'src/util.ts']`
89
+ * - `{one: 'src/two.ts', two: 'src/one.ts'}`
90
+ *
91
+ * @stability stable
92
+ */
93
+ entryPoints: EntryPoints,
94
+ /**
95
+ * Props to change the behavior of the bundler.
96
+ *
97
+ * Default values for `props.buildOptions`:
98
+ * - `bundle=true`
99
+ * - `platform=browser`
100
+ *
101
+ * @stability stable
102
+ */
103
+ props?: TypeScriptSourceProps);
28
104
  }
29
105
  export {};
package/lib/source.js CHANGED
@@ -8,12 +8,34 @@ const asset_1 = require("./asset");
8
8
  ;
9
9
  ;
10
10
  class Source {
11
+ constructor(
11
12
  /**
13
+ * A path or list or map of paths to the entry points of your code.
12
14
  *
13
- * @param entryPoints - Relative path to the source code. Use `props.buildOptions.absWorkingDir` if an absolute path is required.
14
- * @param props - Source properties.
15
+ * Relative paths are by default resolved from the current working directory.
16
+ * To change the working directory, see `buildOptions.absWorkingDir`.
17
+ *
18
+ * Absolute paths can be used if files are part of the working directory.
19
+ *
20
+ * Examples:
21
+ * - `'src/index.ts'`
22
+ * - `require.resolve('./lambda')`
23
+ * - `['src/index.ts', 'src/util.ts']`
24
+ * - `{one: 'src/two.ts', two: 'src/one.ts'}`
25
+ *
26
+ * @stability stable
27
+ */
28
+ entryPoints,
29
+ /**
30
+ * Props to change the behavior of the bundler.
31
+ *
32
+ * Default values for `props.buildOptions`:
33
+ * - `bundle=true`
34
+ * - `platform=browser`
35
+ *
36
+ * @stability stable
15
37
  */
16
- constructor(entryPoints, props) {
38
+ props) {
17
39
  const defaultOptions = {
18
40
  platform: 'browser',
19
41
  };
@@ -48,21 +70,75 @@ class Source {
48
70
  }
49
71
  }
50
72
  class JavaScriptSource extends Source {
51
- constructor(entryPoints, props = {}) {
73
+ constructor(
74
+ /**
75
+ * A path or list or map of paths to the entry points of your code.
76
+ *
77
+ * Relative paths are by default resolved from the current working directory.
78
+ * To change the working directory, see `buildOptions.absWorkingDir`.
79
+ *
80
+ * Absolute paths can be used if files are part of the working directory.
81
+ *
82
+ * Examples:
83
+ * - `'src/index.ts'`
84
+ * - `require.resolve('./lambda')`
85
+ * - `['src/index.ts', 'src/util.ts']`
86
+ * - `{one: 'src/two.ts', two: 'src/one.ts'}`
87
+ *
88
+ * @stability stable
89
+ */
90
+ entryPoints,
91
+ /**
92
+ * Props to change the behavior of the bundler.
93
+ *
94
+ * Default values for `props.buildOptions`:
95
+ * - `bundle=true`
96
+ * - `platform=browser`
97
+ *
98
+ * @stability stable
99
+ */
100
+ props = {}) {
52
101
  super(entryPoints, props);
53
102
  this.assetClass = asset_1.JavaScriptAsset;
54
103
  }
55
104
  }
56
105
  exports.JavaScriptSource = JavaScriptSource;
57
106
  _a = JSII_RTTI_SYMBOL_1;
58
- JavaScriptSource[_a] = { fqn: "@mrgrain/cdk-esbuild.JavaScriptSource", version: "4.0.0-alpha.7" };
107
+ JavaScriptSource[_a] = { fqn: "@mrgrain/cdk-esbuild.JavaScriptSource", version: "4.0.0-beta.0" };
59
108
  class TypeScriptSource extends Source {
60
- constructor(entryPoints, props = {}) {
109
+ constructor(
110
+ /**
111
+ * A path or list or map of paths to the entry points of your code.
112
+ *
113
+ * Relative paths are by default resolved from the current working directory.
114
+ * To change the working directory, see `buildOptions.absWorkingDir`.
115
+ *
116
+ * Absolute paths can be used if files are part of the working directory.
117
+ *
118
+ * Examples:
119
+ * - `'src/index.ts'`
120
+ * - `require.resolve('./lambda')`
121
+ * - `['src/index.ts', 'src/util.ts']`
122
+ * - `{one: 'src/two.ts', two: 'src/one.ts'}`
123
+ *
124
+ * @stability stable
125
+ */
126
+ entryPoints,
127
+ /**
128
+ * Props to change the behavior of the bundler.
129
+ *
130
+ * Default values for `props.buildOptions`:
131
+ * - `bundle=true`
132
+ * - `platform=browser`
133
+ *
134
+ * @stability stable
135
+ */
136
+ props = {}) {
61
137
  super(entryPoints, props);
62
138
  this.assetClass = asset_1.TypeScriptAsset;
63
139
  }
64
140
  }
65
141
  exports.TypeScriptSource = TypeScriptSource;
66
142
  _b = JSII_RTTI_SYMBOL_1;
67
- TypeScriptSource[_b] = { fqn: "@mrgrain/cdk-esbuild.TypeScriptSource", version: "4.0.0-alpha.7" };
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3NvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQUFvQztBQU9wQyxtQ0FBdUY7QUFJeEIsQ0FBQztBQUNELENBQUM7QUFFaEUsTUFBZSxNQUFNO0lBY25COzs7O09BSUc7SUFDSCxZQUFZLFdBQXdCLEVBQUUsS0FBWTtRQUNoRCxNQUFNLGNBQWMsR0FBMEI7WUFDNUMsUUFBUSxFQUFFLFNBQVM7U0FDcEIsQ0FBQztRQUVGLElBQUksQ0FBQyxLQUFLLEdBQUc7WUFDWCxXQUFXO1lBQ1gsR0FBRyxLQUFLO1lBQ1IsWUFBWSxFQUFFO2dCQUNaLEdBQUcsY0FBYztnQkFDakIsR0FBRyxLQUFLLENBQUMsWUFBWTthQUN0QjtTQUNGLENBQUM7SUFDSixDQUFDO0lBRUQsSUFBSSxDQUFDLEtBQWdCLEVBQUUsT0FBaUM7UUFDdEQscUZBQXFGO1FBQ3JGLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2YsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQzlCLEtBQUssRUFDTCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFDckIsSUFBSSxDQUFDLEtBQUssQ0FDWCxDQUFDO1NBQ0g7YUFBTSxJQUFJLG1CQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxtQkFBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNuRCxNQUFNLElBQUksS0FBSyxDQUNiLG1EQUNFLG1CQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUN2QixLQUFLLEdBQUcsOENBQThDLENBQ3ZELENBQUM7U0FDSDtRQUVELElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDWixNQUFNLElBQUksS0FBSyxDQUNiLFlBQVksSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLDRCQUE0QixDQUM5RCxDQUFDO1NBQ0g7UUFFRCx3RUFBd0U7UUFDeEUsc0VBQXNFO1FBQ3RFLDZEQUE2RDtRQUM3RCxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRWpELE9BQU87WUFDTCxNQUFNLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNO1lBQ3pCLFlBQVksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVc7U0FDckMsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQUVELE1BQWEsZ0JBQWlCLFNBQVEsTUFHckM7SUFHQyxZQUNFLFdBQXdCLEVBQ3hCLFFBQStCLEVBQUU7UUFFakMsS0FBSyxDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsQ0FBQztRQU41QixlQUFVLEdBQUcsdUJBQWUsQ0FBQztJQU83QixDQUFDOztBQVhILDRDQVlDOzs7QUFFRCxNQUFhLGdCQUFpQixTQUFRLE1BR3JDO0lBR0MsWUFDRSxXQUF3QixFQUN4QixRQUErQixFQUFFO1FBRWpDLEtBQUssQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFONUIsZUFBVSxHQUFHLHVCQUFlLENBQUM7SUFPN0IsQ0FBQzs7QUFYSCw0Q0FZQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN0YWNrIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHtcbiAgRGVwbG95bWVudFNvdXJjZUNvbnRleHQsXG4gIElTb3VyY2UsXG4gIFNvdXJjZUNvbmZpZyxcbn0gZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzLWRlcGxveW1lbnQnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBBc3NldEJhc2VQcm9wcywgQXNzZXRQcm9wcywgSmF2YVNjcmlwdEFzc2V0LCBUeXBlU2NyaXB0QXNzZXQgfSBmcm9tICcuL2Fzc2V0JztcbmltcG9ydCB7IEVudHJ5UG9pbnRzIH0gZnJvbSAnLi9idW5kbGVyJztcbmltcG9ydCB7IEJ1aWxkT3B0aW9ucyB9IGZyb20gJy4vZXNidWlsZC10eXBlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSmF2YVNjcmlwdFNvdXJjZVByb3BzIGV4dGVuZHMgQXNzZXRCYXNlUHJvcHN7fTtcbmV4cG9ydCBpbnRlcmZhY2UgVHlwZVNjcmlwdFNvdXJjZVByb3BzIGV4dGVuZHMgQXNzZXRCYXNlUHJvcHN7fTtcblxuYWJzdHJhY3QgY2xhc3MgU291cmNlPFxuICBQcm9wcyBleHRlbmRzIEphdmFTY3JpcHRTb3VyY2VQcm9wcyB8IFR5cGVTY3JpcHRTb3VyY2VQcm9wcyxcbiAgQXNzZXQgZXh0ZW5kcyBKYXZhU2NyaXB0QXNzZXQgfCBUeXBlU2NyaXB0QXNzZXQsXG4+IGltcGxlbWVudHMgSVNvdXJjZSB7XG4gIHByb3RlY3RlZCByZWFkb25seSBhYnN0cmFjdCBhc3NldENsYXNzOiBuZXcgKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBwcm9wczogQXNzZXRQcm9wcyxcbiAgKSA9PiBBc3NldDtcblxuICBwcm90ZWN0ZWQgcHJvcHM6IEFzc2V0UHJvcHM7XG5cbiAgcHJvdGVjdGVkIGFzc2V0ITogQXNzZXQ7XG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSBlbnRyeVBvaW50cyAtIFJlbGF0aXZlIHBhdGggdG8gdGhlIHNvdXJjZSBjb2RlLiBVc2UgYHByb3BzLmJ1aWxkT3B0aW9ucy5hYnNXb3JraW5nRGlyYCBpZiBhbiBhYnNvbHV0ZSBwYXRoIGlzIHJlcXVpcmVkLlxuICAgKiBAcGFyYW0gcHJvcHMgLSBTb3VyY2UgcHJvcGVydGllcy5cbiAgICovXG4gIGNvbnN0cnVjdG9yKGVudHJ5UG9pbnRzOiBFbnRyeVBvaW50cywgcHJvcHM6IFByb3BzKSB7XG4gICAgY29uc3QgZGVmYXVsdE9wdGlvbnM6IFBhcnRpYWw8QnVpbGRPcHRpb25zPiA9IHtcbiAgICAgIHBsYXRmb3JtOiAnYnJvd3NlcicsXG4gICAgfTtcblxuICAgIHRoaXMucHJvcHMgPSB7XG4gICAgICBlbnRyeVBvaW50cyxcbiAgICAgIC4uLnByb3BzLFxuICAgICAgYnVpbGRPcHRpb25zOiB7XG4gICAgICAgIC4uLmRlZmF1bHRPcHRpb25zLFxuICAgICAgICAuLi5wcm9wcy5idWlsZE9wdGlvbnMsXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBiaW5kKHNjb3BlOiBDb25zdHJ1Y3QsIGNvbnRleHQ/OiBEZXBsb3ltZW50U291cmNlQ29udGV4dCk6IFNvdXJjZUNvbmZpZyB7XG4gICAgLy8gSWYgdGhlIHNhbWUgQXNzZXRDb2RlIGlzIHVzZWQgbXVsdGlwbGUgdGltZXMsIHJldGFpbiBvbmx5IHRoZSBmaXJzdCBpbnN0YW50aWF0aW9uLlxuICAgIGlmICghdGhpcy5hc3NldCkge1xuICAgICAgdGhpcy5hc3NldCA9IG5ldyB0aGlzLmFzc2V0Q2xhc3MoXG4gICAgICAgIHNjb3BlLFxuICAgICAgICB0aGlzLmNvbnN0cnVjdG9yLm5hbWUsXG4gICAgICAgIHRoaXMucHJvcHMsXG4gICAgICApO1xuICAgIH0gZWxzZSBpZiAoU3RhY2sub2YodGhpcy5hc3NldCkgIT09IFN0YWNrLm9mKHNjb3BlKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgQXNzZXQgaXMgYWxyZWFkeSBhc3NvY2lhdGVkIHdpdGggYW5vdGhlciBzdGFjayAnJHtcbiAgICAgICAgICBTdGFjay5vZih0aGlzLmFzc2V0KS5zdGFja05hbWVcbiAgICAgICAgfScuIGAgKyAnQ3JlYXRlIGEgbmV3IEFzc2V0IGluc3RhbmNlIGZvciBldmVyeSBzdGFjay4nLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoIWNvbnRleHQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYFRvIHVzZSBhICR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfSwgY29udGV4dCBtdXN0IGJlIHByb3ZpZGVkYCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gd2UgZ2l2ZSBwZXJtaXNzaW9ucyBvbiBhbGwgZmlsZXMgaW4gdGhlIGJ1Y2tldCBzaW5jZSB3ZSBkb24ndCB3YW50IHRvXG4gICAgLy8gYWNjaWRlbnRhbGx5IHJldm9rZSBwZXJtaXNzaW9uIG9uIG9sZCB2ZXJzaW9ucyB3aGVuIGRlcGxveWluZyBhIG5ld1xuICAgIC8vIHZlcnNpb24gKGZvciBleGFtcGxlLCB3aGVuIHVzaW5nIExhbWJkYSB0cmFmZmljIHNoaWZ0aW5nKS5cbiAgICB0aGlzLmFzc2V0LmJ1Y2tldC5ncmFudFJlYWQoY29udGV4dC5oYW5kbGVyUm9sZSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgYnVja2V0OiB0aGlzLmFzc2V0LmJ1Y2tldCxcbiAgICAgIHppcE9iamVjdEtleTogdGhpcy5hc3NldC5zM09iamVjdEtleSxcbiAgICB9O1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBKYXZhU2NyaXB0U291cmNlIGV4dGVuZHMgU291cmNlPFxuSmF2YVNjcmlwdFNvdXJjZVByb3BzLFxuSmF2YVNjcmlwdEFzc2V0XG4+IHtcbiAgYXNzZXRDbGFzcyA9IEphdmFTY3JpcHRBc3NldDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBlbnRyeVBvaW50czogRW50cnlQb2ludHMsXG4gICAgcHJvcHM6IEphdmFTY3JpcHRTb3VyY2VQcm9wcyA9IHt9LFxuICApIHtcbiAgICBzdXBlcihlbnRyeVBvaW50cywgcHJvcHMpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUeXBlU2NyaXB0U291cmNlIGV4dGVuZHMgU291cmNlPFxuVHlwZVNjcmlwdFNvdXJjZVByb3BzLFxuVHlwZVNjcmlwdEFzc2V0XG4+IHtcbiAgYXNzZXRDbGFzcyA9IFR5cGVTY3JpcHRBc3NldDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBlbnRyeVBvaW50czogRW50cnlQb2ludHMsXG4gICAgcHJvcHM6IFR5cGVTY3JpcHRTb3VyY2VQcm9wcyA9IHt9LFxuICApIHtcbiAgICBzdXBlcihlbnRyeVBvaW50cywgcHJvcHMpO1xuICB9XG59XG4iXX0=
143
+ TypeScriptSource[_b] = { fqn: "@mrgrain/cdk-esbuild.TypeScriptSource", version: "4.0.0-beta.0" };
144
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3NvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQUFvQztBQU9wQyxtQ0FBdUY7QUFJeEIsQ0FBQztBQUNELENBQUM7QUFFaEUsTUFBZSxNQUFNO0lBY25CO0lBQ0U7Ozs7Ozs7Ozs7Ozs7OztPQWVHO0lBQ0gsV0FBd0I7SUFFeEI7Ozs7Ozs7O09BUUc7SUFDSCxLQUFZO1FBRVosTUFBTSxjQUFjLEdBQTBCO1lBQzVDLFFBQVEsRUFBRSxTQUFTO1NBQ3BCLENBQUM7UUFFRixJQUFJLENBQUMsS0FBSyxHQUFHO1lBQ1gsV0FBVztZQUNYLEdBQUcsS0FBSztZQUNSLFlBQVksRUFBRTtnQkFDWixHQUFHLGNBQWM7Z0JBQ2pCLEdBQUcsS0FBSyxDQUFDLFlBQVk7YUFDdEI7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELElBQUksQ0FBQyxLQUFnQixFQUFFLE9BQWlDO1FBQ3RELHFGQUFxRjtRQUNyRixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNmLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUM5QixLQUFLLEVBQ0wsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQ3JCLElBQUksQ0FBQyxLQUFLLENBQ1gsQ0FBQztTQUNIO2FBQU0sSUFBSSxtQkFBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssbUJBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDbkQsTUFBTSxJQUFJLEtBQUssQ0FDYixtREFDRSxtQkFBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsU0FDdkIsS0FBSyxHQUFHLDhDQUE4QyxDQUN2RCxDQUFDO1NBQ0g7UUFFRCxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ1osTUFBTSxJQUFJLEtBQUssQ0FDYixZQUFZLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSw0QkFBNEIsQ0FDOUQsQ0FBQztTQUNIO1FBRUQsd0VBQXdFO1FBQ3hFLHNFQUFzRTtRQUN0RSw2REFBNkQ7UUFDN0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUVqRCxPQUFPO1lBQ0wsTUFBTSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTTtZQUN6QixZQUFZLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXO1NBQ3JDLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUFFRCxNQUFhLGdCQUFpQixTQUFRLE1BR3JDO0lBR0M7SUFFRTs7Ozs7Ozs7Ozs7Ozs7O09BZUc7SUFDSCxXQUF3QjtJQUV4Qjs7Ozs7Ozs7UUFRSTtJQUNKLFFBQStCLEVBQUU7UUFFakMsS0FBSyxDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsQ0FBQztRQWpDNUIsZUFBVSxHQUFHLHVCQUFlLENBQUM7SUFrQzdCLENBQUM7O0FBdENILDRDQXVDQzs7O0FBRUQsTUFBYSxnQkFBaUIsU0FBUSxNQUdyQztJQUdDO0lBQ0U7Ozs7Ozs7Ozs7Ozs7OztPQWVHO0lBQ0gsV0FBd0I7SUFFeEI7Ozs7Ozs7O09BUUc7SUFDSCxRQUErQixFQUFFO1FBRWpDLEtBQUssQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFoQzVCLGVBQVUsR0FBRyx1QkFBZSxDQUFDO0lBaUM3QixDQUFDOztBQXJDSCw0Q0FzQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdGFjayB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7XG4gIERlcGxveW1lbnRTb3VyY2VDb250ZXh0LFxuICBJU291cmNlLFxuICBTb3VyY2VDb25maWcsXG59IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMy1kZXBsb3ltZW50JztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgQXNzZXRCYXNlUHJvcHMsIEFzc2V0UHJvcHMsIEphdmFTY3JpcHRBc3NldCwgVHlwZVNjcmlwdEFzc2V0IH0gZnJvbSAnLi9hc3NldCc7XG5pbXBvcnQgeyBFbnRyeVBvaW50cyB9IGZyb20gJy4vYnVuZGxlcic7XG5pbXBvcnQgeyBCdWlsZE9wdGlvbnMgfSBmcm9tICcuL2VzYnVpbGQtdHlwZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEphdmFTY3JpcHRTb3VyY2VQcm9wcyBleHRlbmRzIEFzc2V0QmFzZVByb3Bze307XG5leHBvcnQgaW50ZXJmYWNlIFR5cGVTY3JpcHRTb3VyY2VQcm9wcyBleHRlbmRzIEFzc2V0QmFzZVByb3Bze307XG5cbmFic3RyYWN0IGNsYXNzIFNvdXJjZTxcbiAgUHJvcHMgZXh0ZW5kcyBKYXZhU2NyaXB0U291cmNlUHJvcHMgfCBUeXBlU2NyaXB0U291cmNlUHJvcHMsXG4gIEFzc2V0IGV4dGVuZHMgSmF2YVNjcmlwdEFzc2V0IHwgVHlwZVNjcmlwdEFzc2V0LFxuPiBpbXBsZW1lbnRzIElTb3VyY2Uge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgYWJzdHJhY3QgYXNzZXRDbGFzczogbmV3IChcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcHJvcHM6IEFzc2V0UHJvcHMsXG4gICkgPT4gQXNzZXQ7XG5cbiAgcHJvdGVjdGVkIHByb3BzOiBBc3NldFByb3BzO1xuXG4gIHByb3RlY3RlZCBhc3NldCE6IEFzc2V0O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIC8qKlxuICAgICAqIEEgcGF0aCBvciBsaXN0IG9yIG1hcCBvZiBwYXRocyB0byB0aGUgZW50cnkgcG9pbnRzIG9mIHlvdXIgY29kZS5cbiAgICAgKlxuICAgICAqIFJlbGF0aXZlIHBhdGhzIGFyZSBieSBkZWZhdWx0IHJlc29sdmVkIGZyb20gdGhlIGN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnkuXG4gICAgICogVG8gY2hhbmdlIHRoZSB3b3JraW5nIGRpcmVjdG9yeSwgc2VlIGBidWlsZE9wdGlvbnMuYWJzV29ya2luZ0RpcmAuXG4gICAgICpcbiAgICAgKiBBYnNvbHV0ZSBwYXRocyBjYW4gYmUgdXNlZCBpZiBmaWxlcyBhcmUgcGFydCBvZiB0aGUgd29ya2luZyBkaXJlY3RvcnkuXG4gICAgICpcbiAgICAgKiBFeGFtcGxlczpcbiAgICAgKiAgLSBgJ3NyYy9pbmRleC50cydgXG4gICAgICogIC0gYHJlcXVpcmUucmVzb2x2ZSgnLi9sYW1iZGEnKWBcbiAgICAgKiAgLSBgWydzcmMvaW5kZXgudHMnLCAnc3JjL3V0aWwudHMnXWBcbiAgICAgKiAgLSBge29uZTogJ3NyYy90d28udHMnLCB0d286ICdzcmMvb25lLnRzJ31gXG4gICAgICpcbiAgICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgICAqL1xuICAgIGVudHJ5UG9pbnRzOiBFbnRyeVBvaW50cyxcblxuICAgIC8qKlxuICAgICAqIFByb3BzIHRvIGNoYW5nZSB0aGUgYmVoYXZpb3Igb2YgdGhlIGJ1bmRsZXIuXG4gICAgICpcbiAgICAgKiBEZWZhdWx0IHZhbHVlcyBmb3IgYHByb3BzLmJ1aWxkT3B0aW9uc2A6XG4gICAgICogLSBgYnVuZGxlPXRydWVgXG4gICAgICogLSBgcGxhdGZvcm09YnJvd3NlcmBcbiAgICAgKlxuICAgICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAgICovXG4gICAgcHJvcHM6IFByb3BzLFxuICApIHtcbiAgICBjb25zdCBkZWZhdWx0T3B0aW9uczogUGFydGlhbDxCdWlsZE9wdGlvbnM+ID0ge1xuICAgICAgcGxhdGZvcm06ICdicm93c2VyJyxcbiAgICB9O1xuXG4gICAgdGhpcy5wcm9wcyA9IHtcbiAgICAgIGVudHJ5UG9pbnRzLFxuICAgICAgLi4ucHJvcHMsXG4gICAgICBidWlsZE9wdGlvbnM6IHtcbiAgICAgICAgLi4uZGVmYXVsdE9wdGlvbnMsXG4gICAgICAgIC4uLnByb3BzLmJ1aWxkT3B0aW9ucyxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIGJpbmQoc2NvcGU6IENvbnN0cnVjdCwgY29udGV4dD86IERlcGxveW1lbnRTb3VyY2VDb250ZXh0KTogU291cmNlQ29uZmlnIHtcbiAgICAvLyBJZiB0aGUgc2FtZSBBc3NldENvZGUgaXMgdXNlZCBtdWx0aXBsZSB0aW1lcywgcmV0YWluIG9ubHkgdGhlIGZpcnN0IGluc3RhbnRpYXRpb24uXG4gICAgaWYgKCF0aGlzLmFzc2V0KSB7XG4gICAgICB0aGlzLmFzc2V0ID0gbmV3IHRoaXMuYXNzZXRDbGFzcyhcbiAgICAgICAgc2NvcGUsXG4gICAgICAgIHRoaXMuY29uc3RydWN0b3IubmFtZSxcbiAgICAgICAgdGhpcy5wcm9wcyxcbiAgICAgICk7XG4gICAgfSBlbHNlIGlmIChTdGFjay5vZih0aGlzLmFzc2V0KSAhPT0gU3RhY2sub2Yoc2NvcGUpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBBc3NldCBpcyBhbHJlYWR5IGFzc29jaWF0ZWQgd2l0aCBhbm90aGVyIHN0YWNrICcke1xuICAgICAgICAgIFN0YWNrLm9mKHRoaXMuYXNzZXQpLnN0YWNrTmFtZVxuICAgICAgICB9Jy4gYCArICdDcmVhdGUgYSBuZXcgQXNzZXQgaW5zdGFuY2UgZm9yIGV2ZXJ5IHN0YWNrLicsXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmICghY29udGV4dCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgVG8gdXNlIGEgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9LCBjb250ZXh0IG11c3QgYmUgcHJvdmlkZWRgLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyB3ZSBnaXZlIHBlcm1pc3Npb25zIG9uIGFsbCBmaWxlcyBpbiB0aGUgYnVja2V0IHNpbmNlIHdlIGRvbid0IHdhbnQgdG9cbiAgICAvLyBhY2NpZGVudGFsbHkgcmV2b2tlIHBlcm1pc3Npb24gb24gb2xkIHZlcnNpb25zIHdoZW4gZGVwbG95aW5nIGEgbmV3XG4gICAgLy8gdmVyc2lvbiAoZm9yIGV4YW1wbGUsIHdoZW4gdXNpbmcgTGFtYmRhIHRyYWZmaWMgc2hpZnRpbmcpLlxuICAgIHRoaXMuYXNzZXQuYnVja2V0LmdyYW50UmVhZChjb250ZXh0LmhhbmRsZXJSb2xlKTtcblxuICAgIHJldHVybiB7XG4gICAgICBidWNrZXQ6IHRoaXMuYXNzZXQuYnVja2V0LFxuICAgICAgemlwT2JqZWN0S2V5OiB0aGlzLmFzc2V0LnMzT2JqZWN0S2V5LFxuICAgIH07XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEphdmFTY3JpcHRTb3VyY2UgZXh0ZW5kcyBTb3VyY2U8XG5KYXZhU2NyaXB0U291cmNlUHJvcHMsXG5KYXZhU2NyaXB0QXNzZXRcbj4ge1xuICBhc3NldENsYXNzID0gSmF2YVNjcmlwdEFzc2V0O1xuXG4gIGNvbnN0cnVjdG9yKFxuXG4gICAgLyoqXG4gICAgICogQSBwYXRoIG9yIGxpc3Qgb3IgbWFwIG9mIHBhdGhzIHRvIHRoZSBlbnRyeSBwb2ludHMgb2YgeW91ciBjb2RlLlxuICAgICAqXG4gICAgICogUmVsYXRpdmUgcGF0aHMgYXJlIGJ5IGRlZmF1bHQgcmVzb2x2ZWQgZnJvbSB0aGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeS5cbiAgICAgKiBUbyBjaGFuZ2UgdGhlIHdvcmtpbmcgZGlyZWN0b3J5LCBzZWUgYGJ1aWxkT3B0aW9ucy5hYnNXb3JraW5nRGlyYC5cbiAgICAgKlxuICAgICAqIEFic29sdXRlIHBhdGhzIGNhbiBiZSB1c2VkIGlmIGZpbGVzIGFyZSBwYXJ0IG9mIHRoZSB3b3JraW5nIGRpcmVjdG9yeS5cbiAgICAgKlxuICAgICAqIEV4YW1wbGVzOlxuICAgICAqICAtIGAnc3JjL2luZGV4LnRzJ2BcbiAgICAgKiAgLSBgcmVxdWlyZS5yZXNvbHZlKCcuL2xhbWJkYScpYFxuICAgICAqICAtIGBbJ3NyYy9pbmRleC50cycsICdzcmMvdXRpbC50cyddYFxuICAgICAqICAtIGB7b25lOiAnc3JjL3R3by50cycsIHR3bzogJ3NyYy9vbmUudHMnfWBcbiAgICAgKlxuICAgICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAgICovXG4gICAgZW50cnlQb2ludHM6IEVudHJ5UG9pbnRzLFxuXG4gICAgLyoqXG4gICAgICAqIFByb3BzIHRvIGNoYW5nZSB0aGUgYmVoYXZpb3Igb2YgdGhlIGJ1bmRsZXIuXG4gICAgICAqXG4gICAgICAqIERlZmF1bHQgdmFsdWVzIGZvciBgcHJvcHMuYnVpbGRPcHRpb25zYDpcbiAgICAgICogLSBgYnVuZGxlPXRydWVgXG4gICAgICAqIC0gYHBsYXRmb3JtPWJyb3dzZXJgXG4gICAgICAqXG4gICAgICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAgICAqL1xuICAgIHByb3BzOiBKYXZhU2NyaXB0U291cmNlUHJvcHMgPSB7fSxcbiAgKSB7XG4gICAgc3VwZXIoZW50cnlQb2ludHMsIHByb3BzKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgVHlwZVNjcmlwdFNvdXJjZSBleHRlbmRzIFNvdXJjZTxcblR5cGVTY3JpcHRTb3VyY2VQcm9wcyxcblR5cGVTY3JpcHRBc3NldFxuPiB7XG4gIGFzc2V0Q2xhc3MgPSBUeXBlU2NyaXB0QXNzZXQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgLyoqXG4gICAgICogQSBwYXRoIG9yIGxpc3Qgb3IgbWFwIG9mIHBhdGhzIHRvIHRoZSBlbnRyeSBwb2ludHMgb2YgeW91ciBjb2RlLlxuICAgICAqXG4gICAgICogUmVsYXRpdmUgcGF0aHMgYXJlIGJ5IGRlZmF1bHQgcmVzb2x2ZWQgZnJvbSB0aGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeS5cbiAgICAgKiBUbyBjaGFuZ2UgdGhlIHdvcmtpbmcgZGlyZWN0b3J5LCBzZWUgYGJ1aWxkT3B0aW9ucy5hYnNXb3JraW5nRGlyYC5cbiAgICAgKlxuICAgICAqIEFic29sdXRlIHBhdGhzIGNhbiBiZSB1c2VkIGlmIGZpbGVzIGFyZSBwYXJ0IG9mIHRoZSB3b3JraW5nIGRpcmVjdG9yeS5cbiAgICAgKlxuICAgICAqIEV4YW1wbGVzOlxuICAgICAqICAtIGAnc3JjL2luZGV4LnRzJ2BcbiAgICAgKiAgLSBgcmVxdWlyZS5yZXNvbHZlKCcuL2xhbWJkYScpYFxuICAgICAqICAtIGBbJ3NyYy9pbmRleC50cycsICdzcmMvdXRpbC50cyddYFxuICAgICAqICAtIGB7b25lOiAnc3JjL3R3by50cycsIHR3bzogJ3NyYy9vbmUudHMnfWBcbiAgICAgKlxuICAgICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAgICovXG4gICAgZW50cnlQb2ludHM6IEVudHJ5UG9pbnRzLFxuXG4gICAgLyoqXG4gICAgICogUHJvcHMgdG8gY2hhbmdlIHRoZSBiZWhhdmlvciBvZiB0aGUgYnVuZGxlci5cbiAgICAgKlxuICAgICAqIERlZmF1bHQgdmFsdWVzIGZvciBgcHJvcHMuYnVpbGRPcHRpb25zYDpcbiAgICAgKiAtIGBidW5kbGU9dHJ1ZWBcbiAgICAgKiAtIGBwbGF0Zm9ybT1icm93c2VyYFxuICAgICAqXG4gICAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICAgKi9cbiAgICBwcm9wczogVHlwZVNjcmlwdFNvdXJjZVByb3BzID0ge30sXG4gICkge1xuICAgIHN1cGVyKGVudHJ5UG9pbnRzLCBwcm9wcyk7XG4gIH1cbn1cbiJdfQ==