@mrgrain/cdk-esbuild 4.0.0-alpha.8 → 4.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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.8" };
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.8" };
84
+ InlineJavaScriptCode[_a] = { fqn: "@mrgrain/cdk-esbuild.InlineJavaScriptCode", version: "4.0.0-beta.1" };
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.8" };
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.8" };
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.1" };
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
+ }
@@ -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.1" };
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==