@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
@@ -1,7 +1,9 @@
1
- import { InlineCode } from 'aws-cdk-lib/aws-lambda';
1
+ import { CodeConfig, InlineCode } from 'aws-cdk-lib/aws-lambda';
2
+ import { Construct } from 'constructs';
2
3
  import { TransformOptions } from './esbuild-types';
4
+ import { ITransformProvider } from './provider';
3
5
  /**
4
- * @stability experimental
6
+ * @stability stable
5
7
  */
6
8
  export interface TransformerProps {
7
9
  /**
@@ -12,123 +14,73 @@ export interface TransformerProps {
12
14
  */
13
15
  readonly transformOptions?: TransformOptions;
14
16
  /**
15
- * Escape hatch to provide the bundler with a custom transform function.
16
- * The function will receive the computed options from the bundler. It can use with these options as it wishes, however a TransformResult must be returned to integrate with CDK.
17
- * Must throw a `TransformFailure` on failure to correctly inform the bundler.
17
+ * The esbuild Transform API implementation to be used.
18
18
  *
19
- * @stability experimental
20
- * @type esbuild.transformSync
21
- * @returns esbuild.TransformResult
22
- * @throws esbuild.TransformFailure
23
- * @default esbuild.transformSync
19
+ * Configure the default `EsbuildProvider` for more options or
20
+ * provide a custom `ITransformProvider` as an escape hatch.
21
+ *
22
+ * @stability stable
23
+ *
24
+ * @default new DefaultEsbuildProvider()
24
25
  */
25
- readonly transformFn?: any;
26
+ readonly transformProvider?: ITransformProvider;
26
27
  }
27
28
  declare abstract class BaseInlineCode extends InlineCode {
29
+ readonly isInline = true;
30
+ private readonly inlineCode;
28
31
  constructor(code: string, props: TransformerProps);
32
+ bind(scope: Construct): CodeConfig;
29
33
  }
30
34
  /**
31
35
  * An implementation of `lambda.InlineCode` using the esbuild Transform API. Inline function code is limited to 4 KiB after transformation.
32
36
  *
33
- * @stability experimental
37
+ * @stability stable
34
38
  */
35
39
  export declare class InlineJavaScriptCode extends BaseInlineCode {
36
40
  constructor(
37
41
  /**
38
42
  * The inline code to be transformed.
39
43
  *
40
- * @stability experimental
44
+ * @stability stable
41
45
  */
42
46
  code: string,
43
47
  /**
44
- * Support for `TransformOptions` is deprecated. Please provide `TransformerProps`!
45
- *
46
- * Props to change the behaviour of the transformer.
48
+ * Props to change the behavior of the transformer.
47
49
  *
48
50
  * Default values for `props.transformOptions`:
49
51
  * - `loader='js'`
52
+ * - `platform=node`
53
+ * - `target=nodeX` with X being the major node version running locally
50
54
  *
51
55
  * @see https://esbuild.github.io/api/#transform-api
52
- * @stability experimental
53
- */
54
- props?: TransformerProps | TransformOptions);
55
- }
56
- /**
57
- * An implementation of `lambda.InlineCode` using the esbuild Transform API. Inline function code is limited to 4 KiB after transformation.
58
- *
59
- * @stability experimental
60
- */
61
- export declare class InlineJsxCode extends BaseInlineCode {
62
- constructor(
63
- /**
64
- * The inline code to be transformed.
65
- *
66
- * @stability experimental
67
- */
68
- code: string,
69
- /**
70
- * Support for `TransformOptions` is deprecated. Please provide `TransformerProps`!
71
- *
72
- * Props to change the behaviour of the transformer.
73
- *
74
- * Default values for `transformOptions`:
75
- * - `loader='jsx'`
76
- *
77
- * @see https://esbuild.github.io/api/#transform-api
78
- * @stability experimental
56
+ * @stability stable
79
57
  */
80
- props?: TransformerProps | TransformOptions);
58
+ props?: TransformerProps);
81
59
  }
82
60
  /**
83
61
  * An implementation of `lambda.InlineCode` using the esbuild Transform API. Inline function code is limited to 4 KiB after transformation.
84
62
  *
85
- * @stability experimental
63
+ * @stability stable
86
64
  */
87
65
  export declare class InlineTypeScriptCode extends BaseInlineCode {
88
66
  constructor(
89
67
  /**
90
68
  * The inline code to be transformed.
91
69
  *
92
- * @stability experimental
70
+ * @stability stable
93
71
  */
94
72
  code: string,
95
73
  /**
96
- * Support for `TransformOptions` is deprecated. Please provide `TransformerProps`!
97
- *
98
- * Props to change the behaviour of the transformer.
74
+ * Props to change the behavior of the transformer.
99
75
  *
100
76
  * Default values for `transformOptions`:
101
77
  * - `loader='ts'`
78
+ * - `platform=node`
79
+ * - `target=nodeX` with X being the major node version running locally
102
80
  *
103
81
  * @see https://esbuild.github.io/api/#transform-api
104
- * @stability experimental
105
- */
106
- props?: TransformerProps | TransformOptions);
107
- }
108
- /**
109
- * An implementation of `lambda.InlineCode` using the esbuild Transform API. Inline function code is limited to 4 KiB after transformation.
110
- *
111
- * @stability experimental
112
- */
113
- export declare class InlineTsxCode extends BaseInlineCode {
114
- constructor(
115
- /**
116
- * The inline code to be transformed.
117
- *
118
- * @stability experimental
119
- */
120
- code: string,
121
- /**
122
- * Support for `TransformOptions` is deprecated. Please provide `TransformerProps`!
123
- *
124
- * Props to change the behaviour of the transformer.
125
- *
126
- * Default values for `transformOptions`:
127
- * - `loader='tsx'`
128
- *
129
- * @see https://esbuild.github.io/api/#transform-api
130
- * @stability experimental
82
+ * @stability stable
131
83
  */
132
- props?: TransformerProps | TransformOptions);
84
+ props?: TransformerProps);
133
85
  }
134
86
  export {};
@@ -1,41 +1,52 @@
1
1
  "use strict";
2
- var _a, _b, _c, _d;
2
+ var _a, _b;
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.InlineTsxCode = exports.InlineTypeScriptCode = exports.InlineJsxCode = exports.InlineJavaScriptCode = void 0;
4
+ exports.InlineTypeScriptCode = exports.InlineJavaScriptCode = void 0;
5
5
  const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
+ const aws_cdk_lib_1 = require("aws-cdk-lib");
6
7
  const aws_lambda_1 = require("aws-cdk-lib/aws-lambda");
7
- const esbuild_wrapper_1 = require("./esbuild-wrapper");
8
- const formatMessages_1 = require("./formatMessages");
8
+ const constructs_1 = require("constructs");
9
+ const utils_1 = require("./private/utils");
10
+ const provider_1 = require("./provider");
9
11
  class BaseInlineCode extends aws_lambda_1.InlineCode {
10
12
  constructor(code, props) {
11
- const { transformFn = esbuild_wrapper_1.transformSync, transformOptions = {} } = props;
12
- try {
13
- const transformedCode = transformFn(code, {
14
- ...transformOptions,
15
- });
16
- formatMessages_1.printBuildMessages(transformedCode, { prefix: 'Transform ' });
17
- super(transformedCode.code);
18
- }
19
- catch (error) {
20
- formatMessages_1.printBuildMessages(error, { prefix: 'Transform ' });
21
- throw new Error('Failed to transform InlineCode');
22
- }
13
+ super(code);
14
+ this.isInline = true;
15
+ this.inlineCode = aws_cdk_lib_1.Lazy.string({
16
+ produce: () => {
17
+ try {
18
+ const provider = props.transformProvider ?? provider_1.EsbuildProvider.defaultTransformationProvider();
19
+ const transformedCode = provider.transformSync(code, {
20
+ color: process.env.NO_COLOR ? Boolean(process.env.NO_COLOR) : undefined,
21
+ logLevel: 'warning',
22
+ ...(props.transformOptions || {}),
23
+ });
24
+ return transformedCode;
25
+ }
26
+ catch (error) {
27
+ if (utils_1.isEsbuildError(error)) {
28
+ throw new Error(`Esbuild failed to transform ${this.constructor.name}`);
29
+ }
30
+ throw error;
31
+ }
32
+ },
33
+ });
23
34
  }
24
- }
25
- function instanceOfTransformerProps(object) {
26
- return 'transformOptions' in object || 'transformFn' in object;
27
- }
28
- function transformerProps(loader, props) {
29
- if (!props) {
30
- return { transformOptions: { loader } };
31
- }
32
- if (!instanceOfTransformerProps(props)) {
33
- return { transformOptions: { loader, ...props } };
35
+ bind(scope) {
36
+ const name = scope.node.path + constructs_1.Node.PATH_SEP + this.constructor.name;
37
+ process.stderr.write(`Transforming inline code ${name}...\n`);
38
+ return {
39
+ inlineCode: aws_cdk_lib_1.Stack.of(scope).resolve(this.inlineCode),
40
+ };
34
41
  }
42
+ }
43
+ function transformerProps(loader, props = {}) {
35
44
  return {
36
45
  ...props,
37
46
  transformOptions: {
38
47
  loader,
48
+ format: 'cjs',
49
+ ...utils_1.defaultPlatformProps(props.transformOptions),
39
50
  ...props.transformOptions,
40
51
  },
41
52
  };
@@ -43,26 +54,26 @@ function transformerProps(loader, props) {
43
54
  /**
44
55
  * An implementation of `lambda.InlineCode` using the esbuild Transform API. Inline function code is limited to 4 KiB after transformation.
45
56
  *
46
- * @stability experimental
57
+ * @stability stable
47
58
  */
48
59
  class InlineJavaScriptCode extends BaseInlineCode {
49
60
  constructor(
50
61
  /**
51
62
  * The inline code to be transformed.
52
63
  *
53
- * @stability experimental
64
+ * @stability stable
54
65
  */
55
66
  code,
56
67
  /**
57
- * Support for `TransformOptions` is deprecated. Please provide `TransformerProps`!
58
- *
59
- * Props to change the behaviour of the transformer.
68
+ * Props to change the behavior of the transformer.
60
69
  *
61
70
  * Default values for `props.transformOptions`:
62
71
  * - `loader='js'`
72
+ * - `platform=node`
73
+ * - `target=nodeX` with X being the major node version running locally
63
74
  *
64
75
  * @see https://esbuild.github.io/api/#transform-api
65
- * @stability experimental
76
+ * @stability stable
66
77
  */
67
78
  props) {
68
79
  super(code, transformerProps('js', props));
@@ -70,98 +81,36 @@ class InlineJavaScriptCode extends BaseInlineCode {
70
81
  }
71
82
  exports.InlineJavaScriptCode = InlineJavaScriptCode;
72
83
  _a = JSII_RTTI_SYMBOL_1;
73
- InlineJavaScriptCode[_a] = { fqn: "@mrgrain/cdk-esbuild.InlineJavaScriptCode", version: "4.0.0-alpha.7" };
74
- /**
75
- * An implementation of `lambda.InlineCode` using the esbuild Transform API. Inline function code is limited to 4 KiB after transformation.
76
- *
77
- * @stability experimental
78
- */
79
- class InlineJsxCode extends BaseInlineCode {
80
- constructor(
81
- /**
82
- * The inline code to be transformed.
83
- *
84
- * @stability experimental
85
- */
86
- code,
87
- /**
88
- * Support for `TransformOptions` is deprecated. Please provide `TransformerProps`!
89
- *
90
- * Props to change the behaviour of the transformer.
91
- *
92
- * Default values for `transformOptions`:
93
- * - `loader='jsx'`
94
- *
95
- * @see https://esbuild.github.io/api/#transform-api
96
- * @stability experimental
97
- */
98
- props) {
99
- super(code, transformerProps('jsx', props));
100
- }
101
- }
102
- exports.InlineJsxCode = InlineJsxCode;
103
- _b = JSII_RTTI_SYMBOL_1;
104
- InlineJsxCode[_b] = { fqn: "@mrgrain/cdk-esbuild.InlineJsxCode", version: "4.0.0-alpha.7" };
84
+ InlineJavaScriptCode[_a] = { fqn: "@mrgrain/cdk-esbuild.InlineJavaScriptCode", version: "4.0.0-beta.0" };
105
85
  /**
106
86
  * An implementation of `lambda.InlineCode` using the esbuild Transform API. Inline function code is limited to 4 KiB after transformation.
107
87
  *
108
- * @stability experimental
88
+ * @stability stable
109
89
  */
110
90
  class InlineTypeScriptCode extends BaseInlineCode {
111
91
  constructor(
112
92
  /**
113
93
  * The inline code to be transformed.
114
94
  *
115
- * @stability experimental
95
+ * @stability stable
116
96
  */
117
97
  code,
118
98
  /**
119
- * Support for `TransformOptions` is deprecated. Please provide `TransformerProps`!
120
- *
121
- * Props to change the behaviour of the transformer.
99
+ * Props to change the behavior of the transformer.
122
100
  *
123
101
  * Default values for `transformOptions`:
124
102
  * - `loader='ts'`
103
+ * - `platform=node`
104
+ * - `target=nodeX` with X being the major node version running locally
125
105
  *
126
106
  * @see https://esbuild.github.io/api/#transform-api
127
- * @stability experimental
107
+ * @stability stable
128
108
  */
129
109
  props) {
130
110
  super(code, transformerProps('ts', props));
131
111
  }
132
112
  }
133
113
  exports.InlineTypeScriptCode = InlineTypeScriptCode;
134
- _c = JSII_RTTI_SYMBOL_1;
135
- InlineTypeScriptCode[_c] = { fqn: "@mrgrain/cdk-esbuild.InlineTypeScriptCode", version: "4.0.0-alpha.7" };
136
- /**
137
- * An implementation of `lambda.InlineCode` using the esbuild Transform API. Inline function code is limited to 4 KiB after transformation.
138
- *
139
- * @stability experimental
140
- */
141
- class InlineTsxCode extends BaseInlineCode {
142
- constructor(
143
- /**
144
- * The inline code to be transformed.
145
- *
146
- * @stability experimental
147
- */
148
- code,
149
- /**
150
- * Support for `TransformOptions` is deprecated. Please provide `TransformerProps`!
151
- *
152
- * Props to change the behaviour of the transformer.
153
- *
154
- * Default values for `transformOptions`:
155
- * - `loader='tsx'`
156
- *
157
- * @see https://esbuild.github.io/api/#transform-api
158
- * @stability experimental
159
- */
160
- props) {
161
- super(code, transformerProps('tsx', props));
162
- }
163
- }
164
- exports.InlineTsxCode = InlineTsxCode;
165
- _d = JSII_RTTI_SYMBOL_1;
166
- InlineTsxCode[_d] = { fqn: "@mrgrain/cdk-esbuild.InlineTsxCode", version: "4.0.0-alpha.7" };
167
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5saW5lLWNvZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5saW5lLWNvZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSx1REFBb0Q7QUFFcEQsdURBQWtEO0FBQ2xELHFEQUFzRDtBQTRCdEQsTUFBZSxjQUFlLFNBQVEsdUJBQVU7SUFDOUMsWUFDRSxJQUFZLEVBQ1osS0FBdUI7UUFHdkIsTUFBTSxFQUFFLFdBQVcsR0FBRywrQkFBYSxFQUFFLGdCQUFnQixHQUFHLEVBQUUsRUFBRSxHQUFHLEtBQUssQ0FBQztRQUVyRSxJQUFJO1lBQ0YsTUFBTSxlQUFlLEdBQUcsV0FBVyxDQUFDLElBQUksRUFBRTtnQkFDeEMsR0FBRyxnQkFBZ0I7YUFDcEIsQ0FBQyxDQUFDO1lBQ0gsbUNBQWtCLENBQUMsZUFBZSxFQUFFLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUM7WUFFOUQsS0FBSyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUM3QjtRQUFDLE9BQU8sS0FBSyxFQUFFO1lBQ2QsbUNBQWtCLENBQUMsS0FBeUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDO1lBRXhFLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztTQUNuRDtJQUNILENBQUM7Q0FDRjtBQUVELFNBQVMsMEJBQTBCLENBQUMsTUFBVztJQUM3QyxPQUFPLGtCQUFrQixJQUFJLE1BQU0sSUFBSSxhQUFhLElBQUksTUFBTSxDQUFDO0FBQ2pFLENBQUM7QUFFRCxTQUFTLGdCQUFnQixDQUFDLE1BQWMsRUFBRSxLQUEyQztJQUNuRixJQUFJLENBQUMsS0FBSyxFQUFFO1FBQ1YsT0FBTyxFQUFFLGdCQUFnQixFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQztLQUN6QztJQUVELElBQUksQ0FBQywwQkFBMEIsQ0FBQyxLQUFLLENBQUMsRUFBRztRQUN2QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsRUFBRSxNQUFNLEVBQUUsR0FBRyxLQUFLLEVBQUUsRUFBRSxDQUFDO0tBQ25EO0lBRUQsT0FBTztRQUNMLEdBQUcsS0FBSztRQUNSLGdCQUFnQixFQUFFO1lBQ2hCLE1BQU07WUFDTixHQUFHLEtBQUssQ0FBQyxnQkFBZ0I7U0FDMUI7S0FDRixDQUFDO0FBQ0osQ0FBQztBQUdEOzs7O0dBSUc7QUFDSCxNQUFhLG9CQUFxQixTQUFRLGNBQWM7SUFDdEQ7SUFDRTs7OztPQUlHO0lBQ0gsSUFBWTtJQUNaOzs7Ozs7Ozs7O09BVUc7SUFDSCxLQUEyQztRQUczQyxLQUFLLENBQUMsSUFBSSxFQUFFLGdCQUFnQixDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQzdDLENBQUM7O0FBdkJILG9EQXdCQzs7O0FBRUQ7Ozs7R0FJRztBQUNILE1BQWEsYUFBYyxTQUFRLGNBQWM7SUFDL0M7SUFDRTs7OztPQUlHO0lBQ0gsSUFBWTtJQUNaOzs7Ozs7Ozs7O09BVUc7SUFDSCxLQUEyQztRQUUzQyxLQUFLLENBQUMsSUFBSSxFQUFFLGdCQUFnQixDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQzlDLENBQUM7O0FBdEJILHNDQXVCQzs7O0FBRUQ7Ozs7R0FJRztBQUNILE1BQWEsb0JBQXFCLFNBQVEsY0FBYztJQUN0RDtJQUNFOzs7O09BSUc7SUFDSCxJQUFZO0lBQ1o7Ozs7Ozs7Ozs7T0FVRztJQUNILEtBQTJDO1FBRTNDLEtBQUssQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDN0MsQ0FBQzs7QUF0Qkgsb0RBdUJDOzs7QUFFRDs7OztHQUlHO0FBQ0gsTUFBYSxhQUFjLFNBQVEsY0FBYztJQUMvQztJQUNFOzs7O09BSUc7SUFDSCxJQUFZO0lBQ1o7Ozs7Ozs7Ozs7T0FVRztJQUNILEtBQTJDO1FBRTNDLEtBQUssQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDOUMsQ0FBQzs7QUF0Qkgsc0NBdUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5saW5lQ29kZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1sYW1iZGEnO1xuaW1wb3J0IHsgVHJhbnNmb3JtT3B0aW9ucywgTG9hZGVyLCBUcmFuc2Zvcm1GYWlsdXJlIH0gZnJvbSAnLi9lc2J1aWxkLXR5cGVzJztcbmltcG9ydCB7IHRyYW5zZm9ybVN5bmMgfSBmcm9tICcuL2VzYnVpbGQtd3JhcHBlcic7XG5pbXBvcnQgeyBwcmludEJ1aWxkTWVzc2FnZXMgfSBmcm9tICcuL2Zvcm1hdE1lc3NhZ2VzJztcblxuLyoqXG4gKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRyYW5zZm9ybWVyUHJvcHMge1xuICAvKipcbiAgICogVHJhbnNmb3JtIG9wdGlvbnMgcGFzc2VkIG9uIHRvIGVzYnVpbGQuIFBsZWFzZSByZWZlciB0byB0aGUgZXNidWlsZCBUcmFuc2Zvcm0gQVBJIGRvY3MgZm9yIGRldGFpbHMuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9lc2J1aWxkLmdpdGh1Yi5pby9hcGkvI3RyYW5zZm9ybS1hcGlcbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IHRyYW5zZm9ybU9wdGlvbnM/OiBUcmFuc2Zvcm1PcHRpb25zO1xuXG4gIC8qKlxuICAgKiBFc2NhcGUgaGF0Y2ggdG8gcHJvdmlkZSB0aGUgYnVuZGxlciB3aXRoIGEgY3VzdG9tIHRyYW5zZm9ybSBmdW5jdGlvbi5cbiAgICogVGhlIGZ1bmN0aW9uIHdpbGwgcmVjZWl2ZSB0aGUgY29tcHV0ZWQgb3B0aW9ucyBmcm9tIHRoZSBidW5kbGVyLiBJdCBjYW4gdXNlIHdpdGggdGhlc2Ugb3B0aW9ucyBhcyBpdCB3aXNoZXMsIGhvd2V2ZXIgYSBUcmFuc2Zvcm1SZXN1bHQgbXVzdCBiZSByZXR1cm5lZCB0byBpbnRlZ3JhdGUgd2l0aCBDREsuXG4gICAqIE11c3QgdGhyb3cgYSBgVHJhbnNmb3JtRmFpbHVyZWAgb24gZmFpbHVyZSB0byBjb3JyZWN0bHkgaW5mb3JtIHRoZSBidW5kbGVyLlxuICAgKlxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKiBAdHlwZSBlc2J1aWxkLnRyYW5zZm9ybVN5bmNcbiAgICogQHJldHVybnMgZXNidWlsZC5UcmFuc2Zvcm1SZXN1bHRcbiAgICogQHRocm93cyBlc2J1aWxkLlRyYW5zZm9ybUZhaWx1cmVcbiAgICogQGRlZmF1bHQgZXNidWlsZC50cmFuc2Zvcm1TeW5jXG4gICAqL1xuICByZWFkb25seSB0cmFuc2Zvcm1Gbj86IGFueTtcbn1cblxuYWJzdHJhY3QgY2xhc3MgQmFzZUlubGluZUNvZGUgZXh0ZW5kcyBJbmxpbmVDb2RlIHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIGNvZGU6IHN0cmluZyxcbiAgICBwcm9wczogVHJhbnNmb3JtZXJQcm9wcyxcbiAgKSB7XG5cbiAgICBjb25zdCB7IHRyYW5zZm9ybUZuID0gdHJhbnNmb3JtU3luYywgdHJhbnNmb3JtT3B0aW9ucyA9IHt9IH0gPSBwcm9wcztcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCB0cmFuc2Zvcm1lZENvZGUgPSB0cmFuc2Zvcm1Gbihjb2RlLCB7XG4gICAgICAgIC4uLnRyYW5zZm9ybU9wdGlvbnMsXG4gICAgICB9KTtcbiAgICAgIHByaW50QnVpbGRNZXNzYWdlcyh0cmFuc2Zvcm1lZENvZGUsIHsgcHJlZml4OiAnVHJhbnNmb3JtICcgfSk7XG5cbiAgICAgIHN1cGVyKHRyYW5zZm9ybWVkQ29kZS5jb2RlKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgcHJpbnRCdWlsZE1lc3NhZ2VzKGVycm9yIGFzIFRyYW5zZm9ybUZhaWx1cmUsIHsgcHJlZml4OiAnVHJhbnNmb3JtICcgfSk7XG5cbiAgICAgIHRocm93IG5ldyBFcnJvcignRmFpbGVkIHRvIHRyYW5zZm9ybSBJbmxpbmVDb2RlJyk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGluc3RhbmNlT2ZUcmFuc2Zvcm1lclByb3BzKG9iamVjdDogYW55KTogb2JqZWN0IGlzIFRyYW5zZm9ybWVyUHJvcHMge1xuICByZXR1cm4gJ3RyYW5zZm9ybU9wdGlvbnMnIGluIG9iamVjdCB8fCAndHJhbnNmb3JtRm4nIGluIG9iamVjdDtcbn1cblxuZnVuY3Rpb24gdHJhbnNmb3JtZXJQcm9wcyhsb2FkZXI6IExvYWRlciwgcHJvcHM/OiBUcmFuc2Zvcm1lclByb3BzIHwgVHJhbnNmb3JtT3B0aW9ucyk6IFRyYW5zZm9ybWVyUHJvcHMge1xuICBpZiAoIXByb3BzKSB7XG4gICAgcmV0dXJuIHsgdHJhbnNmb3JtT3B0aW9uczogeyBsb2FkZXIgfSB9O1xuICB9XG5cbiAgaWYgKCFpbnN0YW5jZU9mVHJhbnNmb3JtZXJQcm9wcyhwcm9wcykgKSB7XG4gICAgcmV0dXJuIHsgdHJhbnNmb3JtT3B0aW9uczogeyBsb2FkZXIsIC4uLnByb3BzIH0gfTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgLi4ucHJvcHMsXG4gICAgdHJhbnNmb3JtT3B0aW9uczoge1xuICAgICAgbG9hZGVyLFxuICAgICAgLi4ucHJvcHMudHJhbnNmb3JtT3B0aW9ucyxcbiAgICB9LFxuICB9O1xufVxuXG5cbi8qKlxuICogQW4gaW1wbGVtZW50YXRpb24gb2YgYGxhbWJkYS5JbmxpbmVDb2RlYCB1c2luZyB0aGUgZXNidWlsZCBUcmFuc2Zvcm0gQVBJLiBJbmxpbmUgZnVuY3Rpb24gY29kZSBpcyBsaW1pdGVkIHRvIDQgS2lCIGFmdGVyIHRyYW5zZm9ybWF0aW9uLlxuICpcbiAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gKi9cbmV4cG9ydCBjbGFzcyBJbmxpbmVKYXZhU2NyaXB0Q29kZSBleHRlbmRzIEJhc2VJbmxpbmVDb2RlIHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIC8qKlxuICAgICAqIFRoZSBpbmxpbmUgY29kZSB0byBiZSB0cmFuc2Zvcm1lZC5cbiAgICAgKlxuICAgICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAgICovXG4gICAgY29kZTogc3RyaW5nLFxuICAgIC8qKlxuICAgICAqIFN1cHBvcnQgZm9yIGBUcmFuc2Zvcm1PcHRpb25zYCBpcyBkZXByZWNhdGVkLiBQbGVhc2UgcHJvdmlkZSBgVHJhbnNmb3JtZXJQcm9wc2AhXG4gICAgICpcbiAgICAgKiBQcm9wcyB0byBjaGFuZ2UgdGhlIGJlaGF2aW91ciBvZiB0aGUgdHJhbnNmb3JtZXIuXG4gICAgICpcbiAgICAgKiBEZWZhdWx0IHZhbHVlcyBmb3IgYHByb3BzLnRyYW5zZm9ybU9wdGlvbnNgOlxuICAgICAqIC0gYGxvYWRlcj0nanMnYFxuICAgICAqXG4gICAgICogQHNlZSBodHRwczovL2VzYnVpbGQuZ2l0aHViLmlvL2FwaS8jdHJhbnNmb3JtLWFwaVxuICAgICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAgICovXG4gICAgcHJvcHM/OiBUcmFuc2Zvcm1lclByb3BzIHwgVHJhbnNmb3JtT3B0aW9ucyxcbiAgKSB7XG5cbiAgICBzdXBlcihjb2RlLCB0cmFuc2Zvcm1lclByb3BzKCdqcycsIHByb3BzKSk7XG4gIH1cbn1cblxuLyoqXG4gKiBBbiBpbXBsZW1lbnRhdGlvbiBvZiBgbGFtYmRhLklubGluZUNvZGVgIHVzaW5nIHRoZSBlc2J1aWxkIFRyYW5zZm9ybSBBUEkuIElubGluZSBmdW5jdGlvbiBjb2RlIGlzIGxpbWl0ZWQgdG8gNCBLaUIgYWZ0ZXIgdHJhbnNmb3JtYXRpb24uXG4gKlxuICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAqL1xuZXhwb3J0IGNsYXNzIElubGluZUpzeENvZGUgZXh0ZW5kcyBCYXNlSW5saW5lQ29kZSB7XG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAvKipcbiAgICAgKiBUaGUgaW5saW5lIGNvZGUgdG8gYmUgdHJhbnNmb3JtZWQuXG4gICAgICpcbiAgICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgICAqL1xuICAgIGNvZGU6IHN0cmluZyxcbiAgICAvKipcbiAgICAgKiBTdXBwb3J0IGZvciBgVHJhbnNmb3JtT3B0aW9uc2AgaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHByb3ZpZGUgYFRyYW5zZm9ybWVyUHJvcHNgIVxuICAgICAqXG4gICAgICogUHJvcHMgdG8gY2hhbmdlIHRoZSBiZWhhdmlvdXIgb2YgdGhlIHRyYW5zZm9ybWVyLlxuICAgICAqXG4gICAgICogRGVmYXVsdCB2YWx1ZXMgZm9yIGB0cmFuc2Zvcm1PcHRpb25zYDpcbiAgICAgKiAtIGBsb2FkZXI9J2pzeCdgXG4gICAgICpcbiAgICAgKiBAc2VlIGh0dHBzOi8vZXNidWlsZC5naXRodWIuaW8vYXBpLyN0cmFuc2Zvcm0tYXBpXG4gICAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICAgKi9cbiAgICBwcm9wcz86IFRyYW5zZm9ybWVyUHJvcHMgfCBUcmFuc2Zvcm1PcHRpb25zLFxuICApIHtcbiAgICBzdXBlcihjb2RlLCB0cmFuc2Zvcm1lclByb3BzKCdqc3gnLCBwcm9wcykpO1xuICB9XG59XG5cbi8qKlxuICogQW4gaW1wbGVtZW50YXRpb24gb2YgYGxhbWJkYS5JbmxpbmVDb2RlYCB1c2luZyB0aGUgZXNidWlsZCBUcmFuc2Zvcm0gQVBJLiBJbmxpbmUgZnVuY3Rpb24gY29kZSBpcyBsaW1pdGVkIHRvIDQgS2lCIGFmdGVyIHRyYW5zZm9ybWF0aW9uLlxuICpcbiAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gKi9cbmV4cG9ydCBjbGFzcyBJbmxpbmVUeXBlU2NyaXB0Q29kZSBleHRlbmRzIEJhc2VJbmxpbmVDb2RlIHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIC8qKlxuICAgICAqIFRoZSBpbmxpbmUgY29kZSB0byBiZSB0cmFuc2Zvcm1lZC5cbiAgICAgKlxuICAgICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAgICovXG4gICAgY29kZTogc3RyaW5nLFxuICAgIC8qKlxuICAgICAqIFN1cHBvcnQgZm9yIGBUcmFuc2Zvcm1PcHRpb25zYCBpcyBkZXByZWNhdGVkLiBQbGVhc2UgcHJvdmlkZSBgVHJhbnNmb3JtZXJQcm9wc2AhXG4gICAgICpcbiAgICAgKiBQcm9wcyB0byBjaGFuZ2UgdGhlIGJlaGF2aW91ciBvZiB0aGUgdHJhbnNmb3JtZXIuXG4gICAgICpcbiAgICAgKiBEZWZhdWx0IHZhbHVlcyBmb3IgYHRyYW5zZm9ybU9wdGlvbnNgOlxuICAgICAqIC0gYGxvYWRlcj0ndHMnYFxuICAgICAqXG4gICAgICogQHNlZSBodHRwczovL2VzYnVpbGQuZ2l0aHViLmlvL2FwaS8jdHJhbnNmb3JtLWFwaVxuICAgICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAgICovXG4gICAgcHJvcHM/OiBUcmFuc2Zvcm1lclByb3BzIHwgVHJhbnNmb3JtT3B0aW9ucyxcbiAgKSB7XG4gICAgc3VwZXIoY29kZSwgdHJhbnNmb3JtZXJQcm9wcygndHMnLCBwcm9wcykpO1xuICB9XG59XG5cbi8qKlxuICogQW4gaW1wbGVtZW50YXRpb24gb2YgYGxhbWJkYS5JbmxpbmVDb2RlYCB1c2luZyB0aGUgZXNidWlsZCBUcmFuc2Zvcm0gQVBJLiBJbmxpbmUgZnVuY3Rpb24gY29kZSBpcyBsaW1pdGVkIHRvIDQgS2lCIGFmdGVyIHRyYW5zZm9ybWF0aW9uLlxuICpcbiAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gKi9cbmV4cG9ydCBjbGFzcyBJbmxpbmVUc3hDb2RlIGV4dGVuZHMgQmFzZUlubGluZUNvZGUge1xuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgLyoqXG4gICAgICogVGhlIGlubGluZSBjb2RlIHRvIGJlIHRyYW5zZm9ybWVkLlxuICAgICAqXG4gICAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICAgKi9cbiAgICBjb2RlOiBzdHJpbmcsXG4gICAgLyoqXG4gICAgICogU3VwcG9ydCBmb3IgYFRyYW5zZm9ybU9wdGlvbnNgIGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSBwcm92aWRlIGBUcmFuc2Zvcm1lclByb3BzYCFcbiAgICAgKlxuICAgICAqIFByb3BzIHRvIGNoYW5nZSB0aGUgYmVoYXZpb3VyIG9mIHRoZSB0cmFuc2Zvcm1lci5cbiAgICAgKlxuICAgICAqIERlZmF1bHQgdmFsdWVzIGZvciBgdHJhbnNmb3JtT3B0aW9uc2A6XG4gICAgICogLSBgbG9hZGVyPSd0c3gnYFxuICAgICAqXG4gICAgICogQHNlZSBodHRwczovL2VzYnVpbGQuZ2l0aHViLmlvL2FwaS8jdHJhbnNmb3JtLWFwaVxuICAgICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAgICovXG4gICAgcHJvcHM/OiBUcmFuc2Zvcm1lclByb3BzIHwgVHJhbnNmb3JtT3B0aW9ucyxcbiAgKSB7XG4gICAgc3VwZXIoY29kZSwgdHJhbnNmb3JtZXJQcm9wcygndHN4JywgcHJvcHMpKTtcbiAgfVxufVxuIl19
114
+ _b = JSII_RTTI_SYMBOL_1;
115
+ InlineTypeScriptCode[_b] = { fqn: "@mrgrain/cdk-esbuild.InlineTypeScriptCode", version: "4.0.0-beta.0" };
116
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5saW5lLWNvZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5saW5lLWNvZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2Q0FBMEM7QUFDMUMsdURBQWdFO0FBQ2hFLDJDQUE2QztBQUU3QywyQ0FBdUU7QUFDdkUseUNBQWlFO0FBMkJqRSxNQUFlLGNBQWUsU0FBUSx1QkFBVTtJQUk5QyxZQUNFLElBQVksRUFDWixLQUF1QjtRQUV2QixLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFQRSxhQUFRLEdBQUcsSUFBSSxDQUFDO1FBUzlCLElBQUksQ0FBQyxVQUFVLEdBQUcsa0JBQUksQ0FBQyxNQUFNLENBQUM7WUFDNUIsT0FBTyxFQUFFLEdBQUcsRUFBRTtnQkFDWixJQUFJO29CQUNGLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxpQkFBaUIsSUFBSSwwQkFBZSxDQUFDLDZCQUE2QixFQUFFLENBQUM7b0JBRTVGLE1BQU0sZUFBZSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFO3dCQUNuRCxLQUFLLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTO3dCQUN2RSxRQUFRLEVBQUUsU0FBUzt3QkFDbkIsR0FBRyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsSUFBSSxFQUFFLENBQUM7cUJBQ2xDLENBQUMsQ0FBQztvQkFFSCxPQUFPLGVBQWUsQ0FBQztpQkFDeEI7Z0JBQUMsT0FBTyxLQUFLLEVBQUU7b0JBQ2QsSUFBSSxzQkFBYyxDQUFDLEtBQUssQ0FBQyxFQUFFO3dCQUN6QixNQUFNLElBQUksS0FBSyxDQUFDLCtCQUErQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7cUJBQ3pFO29CQUNELE1BQU0sS0FBSyxDQUFDO2lCQUNiO1lBQ0gsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxJQUFJLENBQUMsS0FBZ0I7UUFDMUIsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsaUJBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7UUFDckUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsNEJBQTRCLElBQUksT0FBTyxDQUFDLENBQUM7UUFFOUQsT0FBTztZQUNMLFVBQVUsRUFBRSxtQkFBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztTQUNyRCxDQUFDO0lBQ0osQ0FBQztDQUNGO0FBRUQsU0FBUyxnQkFBZ0IsQ0FBQyxNQUFjLEVBQUUsUUFBMEIsRUFBRTtJQUNwRSxPQUFPO1FBQ0wsR0FBRyxLQUFLO1FBQ1IsZ0JBQWdCLEVBQUU7WUFDaEIsTUFBTTtZQUNOLE1BQU0sRUFBRSxLQUFLO1lBQ2IsR0FBRyw0QkFBb0IsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUM7WUFDL0MsR0FBRyxLQUFLLENBQUMsZ0JBQWdCO1NBQzFCO0tBQ0YsQ0FBQztBQUNKLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBYSxvQkFBcUIsU0FBUSxjQUFjO0lBQ3REO0lBQ0U7Ozs7T0FJRztJQUNILElBQVk7SUFDWjs7Ozs7Ozs7OztPQVVHO0lBQ0gsS0FBd0I7UUFFeEIsS0FBSyxDQUFDLElBQUksRUFBRSxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUM3QyxDQUFDOztBQXRCSCxvREF1QkM7OztBQUdEOzs7O0dBSUc7QUFDSCxNQUFhLG9CQUFxQixTQUFRLGNBQWM7SUFDdEQ7SUFDRTs7OztPQUlHO0lBQ0gsSUFBWTtJQUNaOzs7Ozs7Ozs7O09BVUc7SUFDSCxLQUF3QjtRQUV4QixLQUFLLENBQUMsSUFBSSxFQUFFLGdCQUFnQixDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQzdDLENBQUM7O0FBdEJILG9EQXVCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExhenksIFN0YWNrIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgQ29kZUNvbmZpZywgSW5saW5lQ29kZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1sYW1iZGEnO1xuaW1wb3J0IHsgQ29uc3RydWN0LCBOb2RlIH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBUcmFuc2Zvcm1PcHRpb25zLCBMb2FkZXIgfSBmcm9tICcuL2VzYnVpbGQtdHlwZXMnO1xuaW1wb3J0IHsgZGVmYXVsdFBsYXRmb3JtUHJvcHMsIGlzRXNidWlsZEVycm9yIH0gZnJvbSAnLi9wcml2YXRlL3V0aWxzJztcbmltcG9ydCB7IEVzYnVpbGRQcm92aWRlciwgSVRyYW5zZm9ybVByb3ZpZGVyIH0gZnJvbSAnLi9wcm92aWRlcic7XG5cbi8qKlxuICogQHN0YWJpbGl0eSBzdGFibGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUcmFuc2Zvcm1lclByb3BzIHtcbiAgLyoqXG4gICAqIFRyYW5zZm9ybSBvcHRpb25zIHBhc3NlZCBvbiB0byBlc2J1aWxkLiBQbGVhc2UgcmVmZXIgdG8gdGhlIGVzYnVpbGQgVHJhbnNmb3JtIEFQSSBkb2NzIGZvciBkZXRhaWxzLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZXNidWlsZC5naXRodWIuaW8vYXBpLyN0cmFuc2Zvcm0tYXBpXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSB0cmFuc2Zvcm1PcHRpb25zPzogVHJhbnNmb3JtT3B0aW9ucztcblxuICAvKipcbiAgICogVGhlIGVzYnVpbGQgVHJhbnNmb3JtIEFQSSBpbXBsZW1lbnRhdGlvbiB0byBiZSB1c2VkLlxuICAgKlxuICAgKiBDb25maWd1cmUgdGhlIGRlZmF1bHQgYEVzYnVpbGRQcm92aWRlcmAgZm9yIG1vcmUgb3B0aW9ucyBvclxuICAgKiBwcm92aWRlIGEgY3VzdG9tIGBJVHJhbnNmb3JtUHJvdmlkZXJgIGFzIGFuIGVzY2FwZSBoYXRjaC5cbiAgICpcbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICpcbiAgICogQGRlZmF1bHQgbmV3IERlZmF1bHRFc2J1aWxkUHJvdmlkZXIoKVxuICAgKi9cbiAgcmVhZG9ubHkgdHJhbnNmb3JtUHJvdmlkZXI/OiBJVHJhbnNmb3JtUHJvdmlkZXI7XG59XG5cbmFic3RyYWN0IGNsYXNzIEJhc2VJbmxpbmVDb2RlIGV4dGVuZHMgSW5saW5lQ29kZSB7XG4gIHB1YmxpYyByZWFkb25seSBpc0lubGluZSA9IHRydWU7XG4gIHByaXZhdGUgcmVhZG9ubHkgaW5saW5lQ29kZTogc3RyaW5nO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBjb2RlOiBzdHJpbmcsXG4gICAgcHJvcHM6IFRyYW5zZm9ybWVyUHJvcHMsXG4gICkge1xuICAgIHN1cGVyKGNvZGUpO1xuXG4gICAgdGhpcy5pbmxpbmVDb2RlID0gTGF6eS5zdHJpbmcoe1xuICAgICAgcHJvZHVjZTogKCkgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IHByb3ZpZGVyID0gcHJvcHMudHJhbnNmb3JtUHJvdmlkZXIgPz8gRXNidWlsZFByb3ZpZGVyLmRlZmF1bHRUcmFuc2Zvcm1hdGlvblByb3ZpZGVyKCk7XG5cbiAgICAgICAgICBjb25zdCB0cmFuc2Zvcm1lZENvZGUgPSBwcm92aWRlci50cmFuc2Zvcm1TeW5jKGNvZGUsIHtcbiAgICAgICAgICAgIGNvbG9yOiBwcm9jZXNzLmVudi5OT19DT0xPUiA/IEJvb2xlYW4ocHJvY2Vzcy5lbnYuTk9fQ09MT1IpIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgbG9nTGV2ZWw6ICd3YXJuaW5nJyxcbiAgICAgICAgICAgIC4uLihwcm9wcy50cmFuc2Zvcm1PcHRpb25zIHx8IHt9KSxcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIHJldHVybiB0cmFuc2Zvcm1lZENvZGU7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgaWYgKGlzRXNidWlsZEVycm9yKGVycm9yKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBFc2J1aWxkIGZhaWxlZCB0byB0cmFuc2Zvcm0gJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9YCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGJpbmQoc2NvcGU6IENvbnN0cnVjdCk6IENvZGVDb25maWcge1xuICAgIGNvbnN0IG5hbWUgPSBzY29wZS5ub2RlLnBhdGggKyBOb2RlLlBBVEhfU0VQICsgdGhpcy5jb25zdHJ1Y3Rvci5uYW1lO1xuICAgIHByb2Nlc3Muc3RkZXJyLndyaXRlKGBUcmFuc2Zvcm1pbmcgaW5saW5lIGNvZGUgJHtuYW1lfS4uLlxcbmApO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGlubGluZUNvZGU6IFN0YWNrLm9mKHNjb3BlKS5yZXNvbHZlKHRoaXMuaW5saW5lQ29kZSksXG4gICAgfTtcbiAgfVxufVxuXG5mdW5jdGlvbiB0cmFuc2Zvcm1lclByb3BzKGxvYWRlcjogTG9hZGVyLCBwcm9wczogVHJhbnNmb3JtZXJQcm9wcyA9IHt9KTogVHJhbnNmb3JtZXJQcm9wcyB7XG4gIHJldHVybiB7XG4gICAgLi4ucHJvcHMsXG4gICAgdHJhbnNmb3JtT3B0aW9uczoge1xuICAgICAgbG9hZGVyLFxuICAgICAgZm9ybWF0OiAnY2pzJyxcbiAgICAgIC4uLmRlZmF1bHRQbGF0Zm9ybVByb3BzKHByb3BzLnRyYW5zZm9ybU9wdGlvbnMpLFxuICAgICAgLi4ucHJvcHMudHJhbnNmb3JtT3B0aW9ucyxcbiAgICB9LFxuICB9O1xufVxuXG4vKipcbiAqIEFuIGltcGxlbWVudGF0aW9uIG9mIGBsYW1iZGEuSW5saW5lQ29kZWAgdXNpbmcgdGhlIGVzYnVpbGQgVHJhbnNmb3JtIEFQSS4gSW5saW5lIGZ1bmN0aW9uIGNvZGUgaXMgbGltaXRlZCB0byA0IEtpQiBhZnRlciB0cmFuc2Zvcm1hdGlvbi5cbiAqXG4gKiBAc3RhYmlsaXR5IHN0YWJsZVxuICovXG5leHBvcnQgY2xhc3MgSW5saW5lSmF2YVNjcmlwdENvZGUgZXh0ZW5kcyBCYXNlSW5saW5lQ29kZSB7XG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAvKipcbiAgICAgKiBUaGUgaW5saW5lIGNvZGUgdG8gYmUgdHJhbnNmb3JtZWQuXG4gICAgICpcbiAgICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgICAqL1xuICAgIGNvZGU6IHN0cmluZyxcbiAgICAvKipcbiAgICAgKiBQcm9wcyB0byBjaGFuZ2UgdGhlIGJlaGF2aW9yIG9mIHRoZSB0cmFuc2Zvcm1lci5cbiAgICAgKlxuICAgICAqIERlZmF1bHQgdmFsdWVzIGZvciBgcHJvcHMudHJhbnNmb3JtT3B0aW9uc2A6XG4gICAgICogLSBgbG9hZGVyPSdqcydgXG4gICAgICogLSBgcGxhdGZvcm09bm9kZWBcbiAgICAgKiAtIGB0YXJnZXQ9bm9kZVhgIHdpdGggWCBiZWluZyB0aGUgbWFqb3Igbm9kZSB2ZXJzaW9uIHJ1bm5pbmcgbG9jYWxseVxuICAgICAqXG4gICAgICogQHNlZSBodHRwczovL2VzYnVpbGQuZ2l0aHViLmlvL2FwaS8jdHJhbnNmb3JtLWFwaVxuICAgICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAgICovXG4gICAgcHJvcHM/OiBUcmFuc2Zvcm1lclByb3BzLFxuICApIHtcbiAgICBzdXBlcihjb2RlLCB0cmFuc2Zvcm1lclByb3BzKCdqcycsIHByb3BzKSk7XG4gIH1cbn1cblxuXG4vKipcbiAqIEFuIGltcGxlbWVudGF0aW9uIG9mIGBsYW1iZGEuSW5saW5lQ29kZWAgdXNpbmcgdGhlIGVzYnVpbGQgVHJhbnNmb3JtIEFQSS4gSW5saW5lIGZ1bmN0aW9uIGNvZGUgaXMgbGltaXRlZCB0byA0IEtpQiBhZnRlciB0cmFuc2Zvcm1hdGlvbi5cbiAqXG4gKiBAc3RhYmlsaXR5IHN0YWJsZVxuICovXG5leHBvcnQgY2xhc3MgSW5saW5lVHlwZVNjcmlwdENvZGUgZXh0ZW5kcyBCYXNlSW5saW5lQ29kZSB7XG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAvKipcbiAgICAgKiBUaGUgaW5saW5lIGNvZGUgdG8gYmUgdHJhbnNmb3JtZWQuXG4gICAgICpcbiAgICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgICAqL1xuICAgIGNvZGU6IHN0cmluZyxcbiAgICAvKipcbiAgICAgKiBQcm9wcyB0byBjaGFuZ2UgdGhlIGJlaGF2aW9yIG9mIHRoZSB0cmFuc2Zvcm1lci5cbiAgICAgKlxuICAgICAqIERlZmF1bHQgdmFsdWVzIGZvciBgdHJhbnNmb3JtT3B0aW9uc2A6XG4gICAgICogLSBgbG9hZGVyPSd0cydgXG4gICAgICogLSBgcGxhdGZvcm09bm9kZWBcbiAgICAgKiAtIGB0YXJnZXQ9bm9kZVhgIHdpdGggWCBiZWluZyB0aGUgbWFqb3Igbm9kZSB2ZXJzaW9uIHJ1bm5pbmcgbG9jYWxseVxuICAgICAqXG4gICAgICogQHNlZSBodHRwczovL2VzYnVpbGQuZ2l0aHViLmlvL2FwaS8jdHJhbnNmb3JtLWFwaVxuICAgICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAgICovXG4gICAgcHJvcHM/OiBUcmFuc2Zvcm1lclByb3BzLFxuICApIHtcbiAgICBzdXBlcihjb2RlLCB0cmFuc2Zvcm1lclByb3BzKCd0cycsIHByb3BzKSk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,41 @@
1
+ export interface DynamicPackageProps {
2
+ /**
3
+ * If the package is installed, install into this directory
4
+ *
5
+ * @default - a temporary directory
6
+ */
7
+ readonly installPath?: string;
8
+ /**
9
+ * Additional paths to search for an existing package installation
10
+ *
11
+ * @default - a temporary directory
12
+ */
13
+ readonly searchPaths?: string[];
14
+ }
15
+ export declare class DynamicPackage {
16
+ readonly name: string;
17
+ readonly version?: string;
18
+ readonly installPath: string;
19
+ readonly searchPaths: string[];
20
+ get spec(): string;
21
+ constructor(
22
+ /**
23
+ * Name of the npm package
24
+ * Version to install, or version constraint
25
+ *
26
+ * @default - no version constraint, install the latest version
27
+ */
28
+ packageSpec: string, props?: DynamicPackageProps);
29
+ protected tryResolve(paths?: string[]): string | undefined;
30
+ auto(): string;
31
+ nodeJs(): string;
32
+ findIn(paths: string[]): string | undefined;
33
+ findInPaths(): string | undefined;
34
+ findInSearchPaths(): string | undefined;
35
+ findInLocalPaths(): string | undefined;
36
+ findInGlobalPaths(): string | undefined;
37
+ private static installedPackagePath;
38
+ install(): string;
39
+ protected static log(message: string, _level?: string): void;
40
+ private parsePackageSpec;
41
+ }
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DynamicPackage = void 0;
4
+ const child_process_1 = require("child_process");
5
+ const fs_1 = require("fs");
6
+ const os_1 = require("os");
7
+ const path_1 = require("path");
8
+ const aws_cdk_lib_1 = require("aws-cdk-lib");
9
+ class DynamicPackage {
10
+ constructor(
11
+ /**
12
+ * Name of the npm package
13
+ * Version to install, or version constraint
14
+ *
15
+ * @default - no version constraint, install the latest version
16
+ */
17
+ packageSpec, props = {}) {
18
+ const { name, version } = this.parsePackageSpec(packageSpec);
19
+ this.name = name;
20
+ this.version = version;
21
+ this.installPath =
22
+ props.installPath ||
23
+ fs_1.mkdtempSync(path_1.join(os_1.tmpdir(), `cdk-dynamic-${this.spec}-`));
24
+ this.searchPaths = props.searchPaths || [];
25
+ }
26
+ get spec() {
27
+ if (!this.version) {
28
+ return this.name;
29
+ }
30
+ return `${this.name}@${this.version}`;
31
+ }
32
+ tryResolve(paths) {
33
+ try {
34
+ return require.resolve(this.name, paths ? { paths } : undefined);
35
+ }
36
+ catch (_) {
37
+ return;
38
+ }
39
+ }
40
+ auto() {
41
+ return this.tryResolve() || this.findInPaths() || this.install();
42
+ }
43
+ nodeJs() {
44
+ return this.name;
45
+ }
46
+ findIn(paths) {
47
+ paths.forEach((p) => process.stderr.write('trying... ' + p + '\n'));
48
+ process.stderr.write('\n');
49
+ return this.tryResolve([...paths].filter(Boolean));
50
+ }
51
+ findInPaths() {
52
+ return (this.findInSearchPaths() ||
53
+ this.findInLocalPaths() ||
54
+ this.findInGlobalPaths());
55
+ }
56
+ findInSearchPaths() {
57
+ return this.findIn(this.searchPaths);
58
+ }
59
+ findInLocalPaths() {
60
+ return this.findIn([
61
+ process.cwd(),
62
+ process.env.PWD,
63
+ path_1.resolve(process.env.PWD || process.cwd(), 'node_modules'),
64
+ path_1.resolve(process.cwd(), 'node_modules'),
65
+ ].filter(Boolean));
66
+ }
67
+ findInGlobalPaths() {
68
+ return this.findIn([
69
+ process.execPath,
70
+ path_1.resolve(process.execPath, '../..'),
71
+ path_1.resolve(process.execPath, '../../lib'),
72
+ path_1.resolve(process.execPath, '../../node_modules'),
73
+ path_1.resolve(process.execPath, '../../lib/node_modules'),
74
+ ]);
75
+ }
76
+ install() {
77
+ return aws_cdk_lib_1.Lazy.string({
78
+ produce: () => {
79
+ if (!DynamicPackage.installedPackagePath.has(this.spec)) {
80
+ const args = [
81
+ 'install',
82
+ this.spec,
83
+ '--no-save',
84
+ '--prefix',
85
+ this.installPath,
86
+ ];
87
+ DynamicPackage.log(`Dynamically installing ${this.spec} into "${this.installPath}"...`, 'info');
88
+ child_process_1.execFileSync('npm', args);
89
+ DynamicPackage.installedPackagePath.set(this.spec, require.resolve(this.name, {
90
+ paths: [this.installPath],
91
+ }));
92
+ }
93
+ return DynamicPackage.installedPackagePath.get(this.spec);
94
+ },
95
+ });
96
+ }
97
+ static log(message, _level = 'info') {
98
+ process.stderr.write(`⬥ ${message}\n`);
99
+ }
100
+ parsePackageSpec(spec) {
101
+ const hasScope = spec.startsWith('@');
102
+ if (hasScope) {
103
+ spec = spec.substring(1);
104
+ }
105
+ const [module, ...version] = spec.split('@');
106
+ const name = hasScope ? `@${module}` : module;
107
+ if (version.length == 0) {
108
+ return { name };
109
+ }
110
+ return { name, version: version?.join('@') };
111
+ }
112
+ }
113
+ exports.DynamicPackage = DynamicPackage;
114
+ DynamicPackage.installedPackagePath = new Map();
115
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1wYWNrYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3ByaXZhdGUvZHluYW1pYy1wYWNrYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGlEQUE2QztBQUM3QywyQkFBaUM7QUFDakMsMkJBQTRCO0FBQzVCLCtCQUFxQztBQUNyQyw2Q0FBbUM7QUFrQm5DLE1BQWEsY0FBYztJQWlCekI7SUFDRTs7Ozs7T0FLRztJQUNILFdBQW1CLEVBQ25CLFFBQTZCLEVBQUU7UUFFL0IsTUFBTSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFN0QsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdkIsSUFBSSxDQUFDLFdBQVc7WUFDZCxLQUFLLENBQUMsV0FBVztnQkFDakIsZ0JBQVcsQ0FBQyxXQUFJLENBQUMsV0FBTSxFQUFFLEVBQUUsZUFBZSxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzNELElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUM7SUFDN0MsQ0FBQztJQTFCRCxJQUFXLElBQUk7UUFDYixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNqQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7U0FDbEI7UUFFRCxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQXNCUyxVQUFVLENBQUMsS0FBZ0I7UUFDbkMsSUFBSTtZQUNGLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FB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cUJBQzFCLENBQUMsQ0FDSCxDQUFDO2lCQUNIO2dCQUVELE9BQU8sY0FBYyxDQUFDLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDNUQsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFUyxNQUFNLENBQUMsR0FBRyxDQUFDLE9BQWUsRUFBRSxTQUFpQixNQUFNO1FBQzNELE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssT0FBTyxJQUFJLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRU8sZ0JBQWdCLENBQUMsSUFBWTtRQUNuQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3RDLElBQUksUUFBUSxFQUFFO1lBQ1osSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDMUI7UUFDRCxNQUFNLENBQUMsTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM3QyxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUM5QyxJQUFJLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFO1lBQ3ZCLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQztTQUNqQjtRQUVELE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztJQUMvQyxDQUFDOztBQXhJSCx3Q0F5SUM7QUE5Q2dCLG1DQUFvQixHQUFHLElBQUksR0FBRyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBleGVjRmlsZVN5bmMgfSBmcm9tICdjaGlsZF9wcm9jZXNzJztcbmltcG9ydCB7IG1rZHRlbXBTeW5jIH0gZnJvbSAnZnMnO1xuaW1wb3J0IHsgdG1wZGlyIH0gZnJvbSAnb3MnO1xuaW1wb3J0IHsgam9pbiwgcmVzb2x2ZSB9IGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgTGF6eSB9IGZyb20gJ2F3cy1jZGstbGliJztcblxuZXhwb3J0IGludGVyZmFjZSBEeW5hbWljUGFja2FnZVByb3BzIHtcbiAgLyoqXG4gICAqIElmIHRoZSBwYWNrYWdlIGlzIGluc3RhbGxlZCwgaW5zdGFsbCBpbnRvIHRoaXMgZGlyZWN0b3J5XG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYSB0ZW1wb3JhcnkgZGlyZWN0b3J5XG4gICAqL1xuICByZWFkb25seSBpbnN0YWxsUGF0aD86IHN0cmluZztcblxuICAvKipcbiAgICogQWRkaXRpb25hbCBwYXRocyB0byBzZWFyY2ggZm9yIGFuIGV4aXN0aW5nIHBhY2thZ2UgaW5zdGFsbGF0aW9uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYSB0ZW1wb3JhcnkgZGlyZWN0b3J5XG4gICAqL1xuICByZWFkb25seSBzZWFyY2hQYXRocz86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgY2xhc3MgRHluYW1pY1BhY2thZ2Uge1xuICBwdWJsaWMgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXG4gIHB1YmxpYyByZWFkb25seSB2ZXJzaW9uPzogc3RyaW5nO1xuXG4gIHB1YmxpYyByZWFkb25seSBpbnN0YWxsUGF0aDogc3RyaW5nO1xuXG4gIHB1YmxpYyByZWFkb25seSBzZWFyY2hQYXRoczogc3RyaW5nW107XG5cbiAgcHVibGljIGdldCBzcGVjKCk6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLnZlcnNpb24pIHtcbiAgICAgIHJldHVybiB0aGlzLm5hbWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGAke3RoaXMubmFtZX1AJHt0aGlzLnZlcnNpb259YDtcbiAgfVxuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAvKipcbiAgICAgKiBOYW1lIG9mIHRoZSBucG0gcGFja2FnZVxuICAgICAqIFZlcnNpb24gdG8gaW5zdGFsbCwgb3IgdmVyc2lvbiBjb25zdHJhaW50XG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCAtIG5vIHZlcnNpb24gY29uc3RyYWludCwgaW5zdGFsbCB0aGUgbGF0ZXN0IHZlcnNpb25cbiAgICAgKi9cbiAgICBwYWNrYWdlU3BlYzogc3RyaW5nLFxuICAgIHByb3BzOiBEeW5hbWljUGFja2FnZVByb3BzID0ge30sXG4gICkge1xuICAgIGNvbnN0IHsgbmFtZSwgdmVyc2lvbiB9ID0gdGhpcy5wYXJzZVBhY2thZ2VTcGVjKHBhY2thZ2VTcGVjKTtcblxuICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgdGhpcy52ZXJzaW9uID0gdmVyc2lvbjtcbiAgICB0aGlzLmluc3RhbGxQYXRoID1cbiAgICAgIHByb3BzLmluc3RhbGxQYXRoIHx8XG4gICAgICBta2R0ZW1wU3luYyhqb2luKHRtcGRpcigpLCBgY2RrLWR5bmFtaWMtJHt0aGlzLnNwZWN9LWApKTtcbiAgICB0aGlzLnNlYXJjaFBhdGhzID0gcHJvcHMuc2VhcmNoUGF0aHMgfHwgW107XG4gIH1cblxuICBwcm90ZWN0ZWQgdHJ5UmVzb2x2ZShwYXRocz86IHN0cmluZ1tdKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIHJlcXVpcmUucmVzb2x2ZSh0aGlzLm5hbWUsIHBhdGhzID8geyBwYXRocyB9IDogdW5kZWZpbmVkKTtcbiAgICB9IGNhdGNoIChfKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGF1dG8oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50cnlSZXNvbHZlKCkgfHwgdGhpcy5maW5kSW5QYXRocygpIHx8IHRoaXMuaW5zdGFsbCgpO1xuICB9XG5cbiAgcHVibGljIG5vZGVKcygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLm5hbWU7XG4gIH1cblxuICBwdWJsaWMgZmluZEluKHBhdGhzOiBzdHJpbmdbXSk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcGF0aHMuZm9yRWFjaCgocCkgPT4gcHJvY2Vzcy5zdGRlcnIud3JpdGUoJ3RyeWluZy4uLiAnK3ArJ1xcbicpKTtcbiAgICBwcm9jZXNzLnN0ZGVyci53cml0ZSgnXFxuJyk7XG5cbiAgICByZXR1cm4gdGhpcy50cnlSZXNvbHZlKFsuLi5wYXRoc10uZmlsdGVyKEJvb2xlYW4pIGFzIHN0cmluZ1tdKTtcbiAgfVxuXG4gIHB1YmxpYyBmaW5kSW5QYXRocygpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmZpbmRJblNlYXJjaFBhdGhzKCkgfHxcbiAgICAgIHRoaXMuZmluZEluTG9jYWxQYXRocygpIHx8XG4gICAgICB0aGlzLmZpbmRJbkdsb2JhbFBhdGhzKClcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGZpbmRJblNlYXJjaFBhdGhzKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuZmluZEluKHRoaXMuc2VhcmNoUGF0aHMpO1xuICB9XG5cbiAgcHVibGljIGZpbmRJbkxvY2FsUGF0aHMoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5maW5kSW4oW1xuICAgICAgcHJvY2Vzcy5jd2QoKSxcbiAgICAgIHByb2Nlc3MuZW52LlBXRCxcbiAgICAgIHJlc29sdmUocHJvY2Vzcy5lbnYuUFdEIHx8IHByb2Nlc3MuY3dkKCksICdub2RlX21vZHVsZXMnKSxcbiAgICAgIHJlc29sdmUocHJvY2Vzcy5jd2QoKSwgJ25vZGVfbW9kdWxlcycpLFxuICAgIF0uZmlsdGVyKEJvb2xlYW4pIGFzIHN0cmluZ1tdKTtcbiAgfVxuXG4gIHB1YmxpYyBmaW5kSW5HbG9iYWxQYXRocygpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmZpbmRJbihbXG4gICAgICBwcm9jZXNzLmV4ZWNQYXRoLFxuICAgICAgcmVzb2x2ZShwcm9jZXNzLmV4ZWNQYXRoLCAnLi4vLi4nKSxcbiAgICAgIHJlc29sdmUocHJvY2Vzcy5leGVjUGF0aCwgJy4uLy4uL2xpYicpLFxuICAgICAgcmVzb2x2ZShwcm9jZXNzLmV4ZWNQYXRoLCAnLi4vLi4vbm9kZV9tb2R1bGVzJyksXG4gICAgICByZXNvbHZlKHByb2Nlc3MuZXhlY1BhdGgsICcuLi8uLi9saWIvbm9kZV9tb2R1bGVzJyksXG4gICAgXSk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBpbnN0YWxsZWRQYWNrYWdlUGF0aCA9IG5ldyBNYXAoKTtcbiAgcHVibGljIGluc3RhbGwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gTGF6eS5zdHJpbmcoe1xuICAgICAgcHJvZHVjZTogKCkgPT4ge1xuICAgICAgICBpZiAoIUR5bmFtaWNQYWNrYWdlLmluc3RhbGxlZFBhY2thZ2VQYXRoLmhhcyh0aGlzLnNwZWMpKSB7XG4gICAgICAgICAgY29uc3QgYXJncyA9IFtcbiAgICAgICAgICAgICdpbnN0YWxsJyxcbiAgICAgICAgICAgIHRoaXMuc3BlYyxcbiAgICAgICAgICAgICctLW5vLXNhdmUnLFxuICAgICAgICAgICAgJy0tcHJlZml4JyxcbiAgICAgICAgICAgIHRoaXMuaW5zdGFsbFBhdGgsXG4gICAgICAgICAgXTtcblxuICAgICAgICAgIER5bmFtaWNQYWNrYWdlLmxvZyhgRHluYW1pY2FsbHkgaW5zdGFsbGluZyAke3RoaXMuc3BlY30gaW50byBcIiR7dGhpcy5pbnN0YWxsUGF0aH1cIi4uLmAsICdpbmZvJyk7XG4gICAgICAgICAgZXhlY0ZpbGVTeW5jKCducG0nLCBhcmdzKTtcblxuICAgICAgICAgIER5bmFtaWNQYWNrYWdlLmluc3RhbGxlZFBhY2thZ2VQYXRoLnNldChcbiAgICAgICAgICAgIHRoaXMuc3BlYyxcbiAgICAgICAgICAgIHJlcXVpcmUucmVzb2x2ZSh0aGlzLm5hbWUsIHtcbiAgICAgICAgICAgICAgcGF0aHM6IFt0aGlzLmluc3RhbGxQYXRoXSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gRHluYW1pY1BhY2thZ2UuaW5zdGFsbGVkUGFja2FnZVBhdGguZ2V0KHRoaXMuc3BlYyk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIHN0YXRpYyBsb2cobWVzc2FnZTogc3RyaW5nLCBfbGV2ZWw6IHN0cmluZyA9ICdpbmZvJykge1xuICAgIHByb2Nlc3Muc3RkZXJyLndyaXRlKGDirKUgJHttZXNzYWdlfVxcbmApO1xuICB9XG5cbiAgcHJpdmF0ZSBwYXJzZVBhY2thZ2VTcGVjKHNwZWM6IHN0cmluZykge1xuICAgIGNvbnN0IGhhc1Njb3BlID0gc3BlYy5zdGFydHNXaXRoKCdAJyk7XG4gICAgaWYgKGhhc1Njb3BlKSB7XG4gICAgICBzcGVjID0gc3BlYy5zdWJzdHJpbmcoMSk7XG4gICAgfVxuICAgIGNvbnN0IFttb2R1bGUsIC4uLnZlcnNpb25dID0gc3BlYy5zcGxpdCgnQCcpO1xuICAgIGNvbnN0IG5hbWUgPSBoYXNTY29wZSA/IGBAJHttb2R1bGV9YCA6IG1vZHVsZTtcbiAgICBpZiAodmVyc2lvbi5sZW5ndGggPT0gMCkge1xuICAgICAgcmV0dXJuIHsgbmFtZSB9O1xuICAgIH1cblxuICAgIHJldHVybiB7IG5hbWUsIHZlcnNpb246IHZlcnNpb24/LmpvaW4oJ0AnKSB9O1xuICB9XG59XG4iXX0=
@@ -0,0 +1,33 @@
1
+ export declare const Esbuild: {
2
+ name: string;
3
+ version: string | undefined;
4
+ spec: string;
5
+ };
6
+ export declare class EsbuildSource {
7
+ private static dynamicPackage;
8
+ private constructor();
9
+ /**
10
+ * `EsbuildSource.nodeJs()` for NodeJs, `EsbuildSource.auto()` for all other languages
11
+ */
12
+ static platformDefault(): string;
13
+ /**
14
+ * Try to find the module in most common paths.
15
+ */
16
+ static anywhere(): string | undefined;
17
+ /**
18
+ * Try to find the module in common global installation paths.
19
+ */
20
+ static globalPaths(): string | undefined;
21
+ /**
22
+ * Require module by name, do not attempt to find it anywhere else.
23
+ */
24
+ static nodeJs(): string;
25
+ /**
26
+ * Install the module to a temporary location.
27
+ */
28
+ static install(): string;
29
+ /**
30
+ * First try to find to module, then install it to a temporary location.
31
+ */
32
+ static auto(): string;
33
+ }