@mrgrain/cdk-esbuild 3.8.0 → 3.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/.jsii CHANGED
@@ -2800,7 +2800,7 @@
2800
2800
  },
2801
2801
  "name": "@mrgrain/cdk-esbuild",
2802
2802
  "readme": {
2803
- "markdown": "<picture>\n <source media=\"(prefers-color-scheme: dark)\" srcset=\"./images/wordmark-dark.svg\">\n <source media=\"(prefers-color-scheme: light)\" srcset=\"./images/wordmark-light.svg\">\n <img src=\"./images/wordmark.svg\" alt=\"cdk-esbuild\">\n</picture>\n\n_CDK constructs for [esbuild](https://github.com/evanw/esbuild), an extremely fast JavaScript bundler_\n\n[Getting started](#getting-started) |\n[Documentation](#documentation) | [API Reference](#api-reference) | [Upgrading from AWS CDK v1](#upgrading-from-aws-cdk-v1)\n\n[![View on Construct Hub](https://constructs.dev/badge?package=%40mrgrain%2Fcdk-esbuild)](https://constructs.dev/packages/@mrgrain/cdk-esbuild)\n\n## Why?\n\n_esbuild_ is an extremely fast bundler and minifier for Typescript and JavaScript.\nThis package makes _esbuild_ available to deploy lambda functions, static websites or to publish build artefacts (assets) for further use.\n\nAWS CDK [supports _esbuild_ with Lambda Functions](https://docs.aws.amazon.com/cdk/api/latest/docs/aws-lambda-nodejs-readme.html). However the implementation cannot be used with any other Constructs and doesn't expose all of _esbuild_'s build interface.\n\nThis package is running _esbuild_ directly in Node.js and bypasses Docker which the AWS CDK implementation uses. The approach is quicker and easier to use for Node.js users, but incompatible with other languages.\n\n**Production readiness**\n\nThis package is stable and ready to be used in production, as many do. However _esbuild_ has not yet released a version 1.0.0 and its API is still in active development. Please read the guide on [esbuild's production readiness](https://esbuild.github.io/faq/#production-readiness).\n\nNotably upgrades of the _esbuild_ minimum version requirement will be introduced in **minor versions** of this package and will inherit breaking changes from _esbuild_.\n\n## Getting started\n\nInstall `cdk-esbuild`:\n\n```\nnpm install @mrgrain/cdk-esbuild@3\n```\n\nIf _peer_ or _optional dependencies_ are not installed automatically (e.g. when using npm v4-6), please use this command to install all of them:\n\n```\nnpm install @mrgrain/cdk-esbuild@3 esbuild\n```\n\n### AWS Lambda: Serverless function\n\n> 💡 See [Lambda Function](examples/lambda) for a complete working example of a how to deploy a lambda function.\n\nUse `TypeScriptCode` as the `code` of a [lambda function](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_lambda.Function.html#code):\n\n```ts\nimport * as lambda from \"aws-cdk-lib/aws-lambda\";\nimport { TypeScriptCode } from \"@mrgrain/cdk-esbuild\";\n\nconst bundledCode = new TypeScriptCode(\"src/index.ts\");\n\nconst fn = new lambda.Function(stack, \"MyFunction\", {\n runtime: lambda.Runtime.NODEJS_16_X,\n handler: \"index.handler\",\n code: bundledCode,\n});\n```\n\n### AWS S3: Static Website\n\n> 💡 See [Static Website with React](examples/website) for a complete working example of a how to deploy a React app to S3.\n\nUse `TypeScriptSource` as one of the `sources` of a [static website deployment](https://docs.aws.amazon.com/cdk/api/latest/docs/aws-s3-deployment-readme.html#roadmap):\n\n```ts\nimport * as s3 from \"aws-cdk-lib/aws-s3\";\nimport * as s3deploy from \"aws-cdk-lib/aws-s3-deployment\";\nimport { TypeScriptSource } from \"@mrgrain/cdk-esbuild\";\n\nconst websiteBundle = new TypeScriptSource(\"src/index.tsx\");\n\nconst websiteBucket = new s3.Bucket(stack, \"WebsiteBucket\", {\n autoDeleteObjects: true,\n publicReadAccess: true,\n removalPolicy: RemovalPolicy.DESTROY,\n websiteIndexDocument: \"index.html\",\n});\n\nnew s3deploy.BucketDeployment(stack, \"DeployWebsite\", {\n destinationBucket: websiteBucket,\n sources: [websiteBundle],\n});\n```\n\n### Amazon CloudWatch Synthetics: Canary monitoring\n\n> 💡 See [Monitored Website](examples/website) for a complete working example of a deployed and monitored website.\n\nSynthetics runs a canary to produce traffic to an application for monitoring purposes. Use `TypeScriptCode` as the `code` of a Canary test:\n\n> ℹ️ This feature depends on the `@aws-cdk/aws-synthetics-alpha` package which is a developer preview. You may need to update your source code when upgrading to a newer version of this package.\n>\n> ```\n> npm i @aws-cdk/aws-synthetics-alpha\n> ```\n\n```ts\nimport * as synthetics from \"@aws-cdk/aws-synthetics-alpha\";\nimport { TypeScriptCode } from \"@mrgrain/cdk-esbuild\";\n\nconst bundledCode = new TypeScriptCode(\"src/index.ts\", {\n buildOptions: {\n outdir: \"nodejs/node_modules\", // This is required by Synthetics\n },\n});\n\nconst canary = new synthetics.Canary(stack, \"MyCanary\", {\n runtime: synthetics.Runtime.SYNTHETICS_NODEJS_PUPPETEER_3_2,\n test: synthetics.Test.custom({\n code: bundledCode,\n handler: \"index.handler\",\n });\n});\n```\n\n## Documentation\n\nThe package exports various different constructs for use with existing CDK features. A major guiding design principal for this package is to _extend, don't replace_. Expect constructs that you can provide as props, not complete replacements.\n\nFor use in **Lambda Functions** and **Synthetic Canaries**, the following classes implement `lambda.Code` ([reference](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_lambda.Code.html)) and `synthetics.Code` ([reference](https://docs.aws.amazon.com/cdk/api/v2/docs/@aws-cdk_aws-synthetics-alpha.Code.html)):\n\n- `TypeScriptCode` & `JavaScriptCode`\n\nInline code is only supported by **Lambda**:\n\n- `InlineTypeScriptCode` & `InlineJavaScriptCode`\n- `InlineTsxCode` & `InlineJsxCode`\n\nFor use with **S3 bucket deployments**, classes implementing `s3deploy.ISource` ([reference](https://docs.aws.amazon.com/cdk/api/latest/docs/aws-s3-deployment-readme.html)):\n\n- `TypeScriptSource` & `JavaScriptSource`\n\n> _Code and Source constructs seamlessly plug-in to other high-level CDK constructs. They share the same set of parameters, props and build options._\n\nThe following classes power the other features. You normally won't have to use them, but they are there if you need them:\n\n- `TypeScriptAsset` & `JavaScriptAsset` implements `s3.Asset` ([reference](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_s3_assets.Asset.html)) \\\n creates an asset uploaded to S3 which can be referenced by other constructs\n\n- `EsbuildBundler` implements `core.BundlingOptions` ([reference](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.BundlingOptions.html)) \\\n provides an interface for a _esbuild_ bundler wherever needed\n\n### [API Reference](API.md)\n\nAuto-generated reference for classes and structs. This information is also available as part of your IDE's code completion.\n\n### Escape hatches\n\nIt's possible that you want to use an implementation of esbuild that's different to the default one. Common reasons are:\n\n- The current version constraints for esbuild are not suitable\n- To use a version of esbuild that is installed by any other means than `npm`, including Docker\n- Plugin support is needed for building\n\nFor these situations, this package offers an escape hatch to bypass regular the implementation and provide a custom build and transform function.\n\n#### Esbuild binary path\n\nIt is possible to override the binary used by esbuild. The usual way to do this is to set the `ESBUILD_BINARY_PATH` environment variable. For convenience this package allows to set the binary path as a prop:\n\n```ts\nnew TypeScriptCode(\"fixtures/handlers/ts-handler.ts\", {\n esbuildBinaryPath: \"path/to/esbuild/binary\"\n});\n```\n\n#### Custom build function\n\n> 💡 See [Using esbuild with plugins](examples/esbuild-with-plugins) for a complete working example of a custom build function using this escape hatch.\n\nConstructs that result in starting a build, take a `buildFn` as optional prop. While the defined type for this function is `any`, it must implement the same signature as esbuild's `buildSync` function.\n\n```ts\nnew TypeScriptCode(\"fixtures/handlers/ts-handler.ts\", {\n buildFn: (options: BuildOptions): BuildResult => {\n try {\n // custom implementation returning BuildResult\n } catch (error) {\n // throw BuildFailure exception here\n }\n },\n});\n```\n\nInstead of esbuild, the provided function will be invoked with the calculated build options. The custom build function can amend, change or discard any of these. However integration with CDK relies heavily on the values `outdir`/`outfile` are set to and it's usually required to use them unchanged.\n\nFailures have to cause a `BuildFailure` exception in order to be fully handled.\n\n#### Custom transform function\n\nConstructs that result in starting a transformation, take a `transformFn` as optional prop. While the defined type for this function is `any`, it must implement the same signature as esbuild's `transformSync` function.\n\n```ts\nnew InlineTypeScriptCode(\"let x: number = 1\", {\n transformFn: (options: TransformOptions): TransformResult => {\n try {\n // custom implementation returning TransformResult\n } catch (error) {\n // throw TransformFailure exception here\n }\n },,\n});\n```\n\nInstead of esbuild, the provided function will be invoked with the calculated transform options. The custom transform function can amend, change or discard any of these.\n\nFailures have to cause a `TransformFailure` exception in order to be fully handled.\n\n### Upgrading from AWS CDK v1\n\nThis version is compatible with AWS CDK v2. For the previous, AWS CDK v1 compatible release, see [cdk-esbuild@v2](https://github.com/mrgrain/cdk-esbuild/tree/v2).\n\nTo upgrade from AWS CDK v1 and cdk-esbuild@v2, please follow these steps:\n\n- This version requires AWS CDK v2. Follow the [official migration guide](https://docs.aws.amazon.com/cdk/latest/guide/work-with-cdk-v2.html) to upgrade.\n- Update the package dependency to v3: `npm install --save @mrgrain/cdk-esbuild@^3.0.0`\n- `esbuild` is installed as an optional dependency. If your setup does not automatically install optional dependencies, make sure to add it as an explicit dependency.\n- Any use of `InlineCode` variations has to be updated. Previously the second parameter was either of type `TransformerProps` or `TransformOptions`. Now it must be `TransformerProps`.\\\n If the passed value is of type `TransformOptions`, turn it into the correct type like this:\n\n ```ts\n const oldOptions: TransformOptions = {...}\n\n new InlineTypeScriptCode('// inline code', {\n transformOptions: oldOptions\n });\n ```\n\n## Versioning\n\nThis package follows [Semantic Versioning](https://semver.org/), with the exception of upgrades to `esbuild`. These will be released as **minor versions** and often include breaking changes from `esbuild`.\n\n### Npm Tags\n\nSome users prefer to use tags over version ranges. The following stable tags are available for use:\n\n- `cdk-v1`, `cdk-v2` are provided for the latest release compatible with each version of the AWS CDK.\n\n- `latest` is the most recent stable release.\n\nThese tags also exist, but usage is strongly not recommended:\n\n- `unstable`, `next` are used for pre-release of the current and next major version respectively.\n\n- ~~`cdk-1.x.x`~~ tags have been deprecated in favour of `cdk-v1`. Use that one instead.\n\n## Roadmap & Contributions\n\n[The project's roadmap is available on GitHub.](https://github.com/mrgrain/cdk-esbuild/projects/1) Please submit any feature requests as issues to the repository.\n\nAll contributions are welcome, no matter if they are for already planned or completely new features.\n\n## Library authors\n\nBuilding a library consumed by other packages that relies on `cdk-esbuild` might require you to set `buildOptions.absWorkingDir`. The easiest way to do this, is to resolve based on the directory name of the calling file, and traverse the tree upwards to the root of your library package (that's where `package.json` and `tsconfig.json` are):\n\n```ts\n// file: project/src/index.ts\nconst props = {\n buildOptions: {\n absWorkingDir: path.resolve(__dirname, \"..\"), // now: /user/project\n },\n};\n```\n\nThis will dynamically resolve to the correct path, wherever the package is installed.\n\nPlease open an issue if you encounter any difficulties.\n"
2803
+ "markdown": "<picture>\n <source media=\"(prefers-color-scheme: dark)\" srcset=\"https://raw.githubusercontent.com/mrgrain/cdk-esbuild/main/images/wordmark-dark.svg\">\n <source media=\"(prefers-color-scheme: light)\" srcset=\"https://raw.githubusercontent.com/mrgrain/cdk-esbuild/main/images/wordmark-light.svg\">\n <img src=\"https://raw.githubusercontent.com/mrgrain/cdk-esbuild/main/images/wordmark.svg\" alt=\"cdk-esbuild\">\n</picture>\n\n_CDK constructs for [esbuild](https://github.com/evanw/esbuild), an extremely fast JavaScript bundler_\n\n[Getting started](#getting-started) |\n[Documentation](#documentation) | [API Reference](#api-reference) | [Upgrading from AWS CDK v1](#upgrading-from-aws-cdk-v1)\n\n[![View on Construct Hub](https://constructs.dev/badge?package=%40mrgrain%2Fcdk-esbuild)](https://constructs.dev/packages/@mrgrain/cdk-esbuild)\n\n## Why?\n\n_esbuild_ is an extremely fast bundler and minifier for Typescript and JavaScript.\nThis package makes _esbuild_ available to deploy lambda functions, static websites or to publish build artefacts (assets) for further use.\n\nAWS CDK [supports _esbuild_ with Lambda Functions](https://docs.aws.amazon.com/cdk/api/latest/docs/aws-lambda-nodejs-readme.html). However the implementation cannot be used with any other Constructs and doesn't expose all of _esbuild_'s build interface.\n\nThis package is running _esbuild_ directly in Node.js and bypasses Docker which the AWS CDK implementation uses. The approach is quicker and easier to use for Node.js users, but incompatible with other languages.\n\n**Production readiness**\n\nThis package is stable and ready to be used in production, as many do. However _esbuild_ has not yet released a version 1.0.0 and its API is still in active development. Please read the guide on [esbuild's production readiness](https://esbuild.github.io/faq/#production-readiness).\n\nNotably upgrades of the _esbuild_ minimum version requirement will be introduced in **minor versions** of this package and will inherit breaking changes from _esbuild_.\n\n## Getting started\n\nInstall `cdk-esbuild`:\n\n```\nnpm install @mrgrain/cdk-esbuild@3\n```\n\nIf _peer_ or _optional dependencies_ are not installed automatically (e.g. when using npm v4-6), please use this command to install all of them:\n\n```\nnpm install @mrgrain/cdk-esbuild@3 esbuild\n```\n\n### AWS Lambda: Serverless function\n\n> 💡 See [Lambda Function](examples/lambda) for a complete working example of a how to deploy a lambda function.\n\nUse `TypeScriptCode` as the `code` of a [lambda function](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_lambda.Function.html#code):\n\n```ts\nimport * as lambda from \"aws-cdk-lib/aws-lambda\";\nimport { TypeScriptCode } from \"@mrgrain/cdk-esbuild\";\n\nconst bundledCode = new TypeScriptCode(\"src/index.ts\");\n\nconst fn = new lambda.Function(stack, \"MyFunction\", {\n runtime: lambda.Runtime.NODEJS_16_X,\n handler: \"index.handler\",\n code: bundledCode,\n});\n```\n\n### AWS S3: Static Website\n\n> 💡 See [Static Website with React](examples/website) for a complete working example of a how to deploy a React app to S3.\n\nUse `TypeScriptSource` as one of the `sources` of a [static website deployment](https://docs.aws.amazon.com/cdk/api/latest/docs/aws-s3-deployment-readme.html#roadmap):\n\n```ts\nimport * as s3 from \"aws-cdk-lib/aws-s3\";\nimport * as s3deploy from \"aws-cdk-lib/aws-s3-deployment\";\nimport { TypeScriptSource } from \"@mrgrain/cdk-esbuild\";\n\nconst websiteBundle = new TypeScriptSource(\"src/index.tsx\");\n\nconst websiteBucket = new s3.Bucket(stack, \"WebsiteBucket\", {\n autoDeleteObjects: true,\n publicReadAccess: true,\n removalPolicy: RemovalPolicy.DESTROY,\n websiteIndexDocument: \"index.html\",\n});\n\nnew s3deploy.BucketDeployment(stack, \"DeployWebsite\", {\n destinationBucket: websiteBucket,\n sources: [websiteBundle],\n});\n```\n\n### Amazon CloudWatch Synthetics: Canary monitoring\n\n> 💡 See [Monitored Website](examples/website) for a complete working example of a deployed and monitored website.\n\nSynthetics runs a canary to produce traffic to an application for monitoring purposes. Use `TypeScriptCode` as the `code` of a Canary test:\n\n> ℹ️ This feature depends on the `@aws-cdk/aws-synthetics-alpha` package which is a developer preview. You may need to update your source code when upgrading to a newer version of this package.\n>\n> ```\n> npm i @aws-cdk/aws-synthetics-alpha\n> ```\n\n```ts\nimport * as synthetics from \"@aws-cdk/aws-synthetics-alpha\";\nimport { TypeScriptCode } from \"@mrgrain/cdk-esbuild\";\n\nconst bundledCode = new TypeScriptCode(\"src/index.ts\", {\n buildOptions: {\n outdir: \"nodejs/node_modules\", // This is required by Synthetics\n },\n});\n\nconst canary = new synthetics.Canary(stack, \"MyCanary\", {\n runtime: synthetics.Runtime.SYNTHETICS_NODEJS_PUPPETEER_3_2,\n test: synthetics.Test.custom({\n code: bundledCode,\n handler: \"index.handler\",\n });\n});\n```\n\n## Documentation\n\nThe package exports various different constructs for use with existing CDK features. A major guiding design principal for this package is to _extend, don't replace_. Expect constructs that you can provide as props, not complete replacements.\n\nFor use in **Lambda Functions** and **Synthetic Canaries**, the following classes implement `lambda.Code` ([reference](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_lambda.Code.html)) and `synthetics.Code` ([reference](https://docs.aws.amazon.com/cdk/api/v2/docs/@aws-cdk_aws-synthetics-alpha.Code.html)):\n\n- `TypeScriptCode` & `JavaScriptCode`\n\nInline code is only supported by **Lambda**:\n\n- `InlineTypeScriptCode` & `InlineJavaScriptCode`\n- `InlineTsxCode` & `InlineJsxCode`\n\nFor use with **S3 bucket deployments**, classes implementing `s3deploy.ISource` ([reference](https://docs.aws.amazon.com/cdk/api/latest/docs/aws-s3-deployment-readme.html)):\n\n- `TypeScriptSource` & `JavaScriptSource`\n\n> _Code and Source constructs seamlessly plug-in to other high-level CDK constructs. They share the same set of parameters, props and build options._\n\nThe following classes power the other features. You normally won't have to use them, but they are there if you need them:\n\n- `TypeScriptAsset` & `JavaScriptAsset` implements `s3.Asset` ([reference](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_s3_assets.Asset.html)) \\\n creates an asset uploaded to S3 which can be referenced by other constructs\n\n- `EsbuildBundler` implements `core.BundlingOptions` ([reference](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.BundlingOptions.html)) \\\n provides an interface for a _esbuild_ bundler wherever needed\n\n### [API Reference](API.md)\n\nAuto-generated reference for classes and structs. This information is also available as part of your IDE's code completion.\n\n### Escape hatches\n\nIt's possible that you want to use an implementation of esbuild that's different to the default one. Common reasons are:\n\n- The current version constraints for esbuild are not suitable\n- To use a version of esbuild that is installed by any other means than `npm`, including Docker\n- Plugin support is needed for building\n\nFor these situations, this package offers an escape hatch to bypass regular the implementation and provide a custom build and transform function.\n\n#### Esbuild binary path\n\nIt is possible to override the binary used by esbuild. The usual way to do this is to set the `ESBUILD_BINARY_PATH` environment variable. For convenience this package allows to set the binary path as a prop:\n\n```ts\nnew TypeScriptCode(\"fixtures/handlers/ts-handler.ts\", {\n esbuildBinaryPath: \"path/to/esbuild/binary\"\n});\n```\n\n#### Custom build function\n\n> 💡 See [Using esbuild with plugins](examples/esbuild-with-plugins) for a complete working example of a custom build function using this escape hatch.\n\nConstructs that result in starting a build, take a `buildFn` as optional prop. While the defined type for this function is `any`, it must implement the same signature as esbuild's `buildSync` function.\n\n```ts\nnew TypeScriptCode(\"fixtures/handlers/ts-handler.ts\", {\n buildFn: (options: BuildOptions): BuildResult => {\n try {\n // custom implementation returning BuildResult\n } catch (error) {\n // throw BuildFailure exception here\n }\n },\n});\n```\n\nInstead of esbuild, the provided function will be invoked with the calculated build options. The custom build function can amend, change or discard any of these. However integration with CDK relies heavily on the values `outdir`/`outfile` are set to and it's usually required to use them unchanged.\n\nFailures have to cause a `BuildFailure` exception in order to be fully handled.\n\n#### Custom transform function\n\nConstructs that result in starting a transformation, take a `transformFn` as optional prop. While the defined type for this function is `any`, it must implement the same signature as esbuild's `transformSync` function.\n\n```ts\nnew InlineTypeScriptCode(\"let x: number = 1\", {\n transformFn: (options: TransformOptions): TransformResult => {\n try {\n // custom implementation returning TransformResult\n } catch (error) {\n // throw TransformFailure exception here\n }\n },,\n});\n```\n\nInstead of esbuild, the provided function will be invoked with the calculated transform options. The custom transform function can amend, change or discard any of these.\n\nFailures have to cause a `TransformFailure` exception in order to be fully handled.\n\n### Upgrading from AWS CDK v1\n\nThis version is compatible with AWS CDK v2. For the previous, AWS CDK v1 compatible release, see [cdk-esbuild@v2](https://github.com/mrgrain/cdk-esbuild/tree/v2).\n\nTo upgrade from AWS CDK v1 and cdk-esbuild@v2, please follow these steps:\n\n- This version requires AWS CDK v2. Follow the [official migration guide](https://docs.aws.amazon.com/cdk/latest/guide/work-with-cdk-v2.html) to upgrade.\n- Update the package dependency to v3: `npm install --save @mrgrain/cdk-esbuild@^3.0.0`\n- `esbuild` is installed as an optional dependency. If your setup does not automatically install optional dependencies, make sure to add it as an explicit dependency.\n- Any use of `InlineCode` variations has to be updated. Previously the second parameter was either of type `TransformerProps` or `TransformOptions`. Now it must be `TransformerProps`.\\\n If the passed value is of type `TransformOptions`, turn it into the correct type like this:\n\n ```ts\n const oldOptions: TransformOptions = {...}\n\n new InlineTypeScriptCode('// inline code', {\n transformOptions: oldOptions\n });\n ```\n\n## Versioning\n\nThis package follows [Semantic Versioning](https://semver.org/), with the exception of upgrades to `esbuild`. These will be released as **minor versions** and often include breaking changes from `esbuild`.\n\n### Npm Tags\n\nSome users prefer to use tags over version ranges. The following stable tags are available for use:\n\n- `cdk-v1`, `cdk-v2` are provided for the latest release compatible with each version of the AWS CDK.\n\n- `latest` is the most recent stable release.\n\nThese tags also exist, but usage is strongly not recommended:\n\n- `unstable`, `next` are used for pre-release of the current and next major version respectively.\n\n- ~~`cdk-1.x.x`~~ tags have been deprecated in favour of `cdk-v1`. Use that one instead.\n\n## Roadmap & Contributions\n\n[The project's roadmap is available on GitHub.](https://github.com/mrgrain/cdk-esbuild/projects/1) Please submit any feature requests as issues to the repository.\n\nAll contributions are welcome, no matter if they are for already planned or completely new features.\n\n## Library authors\n\nBuilding a library consumed by other packages that relies on `cdk-esbuild` might require you to set `buildOptions.absWorkingDir`. The easiest way to do this, is to resolve based on the directory name of the calling file, and traverse the tree upwards to the root of your library package (that's where `package.json` and `tsconfig.json` are):\n\n```ts\n// file: project/src/index.ts\nconst props = {\n buildOptions: {\n absWorkingDir: path.resolve(__dirname, \"..\"), // now: /user/project\n },\n};\n```\n\nThis will dynamically resolve to the correct path, wherever the package is installed.\n\nPlease open an issue if you encounter any difficulties.\n"
2804
2804
  },
2805
2805
  "repository": {
2806
2806
  "type": "git",
@@ -2810,6 +2810,10 @@
2810
2810
  "targets": {
2811
2811
  "js": {
2812
2812
  "npm": "@mrgrain/cdk-esbuild"
2813
+ },
2814
+ "python": {
2815
+ "distName": "mrgrain.cdk-esbuild",
2816
+ "module": "mrgrain.cdk_esbuild"
2813
2817
  }
2814
2818
  },
2815
2819
  "types": {
@@ -4032,7 +4036,7 @@
4032
4036
  "kind": "interface",
4033
4037
  "locationInModule": {
4034
4038
  "filename": "src/bundler.ts",
4035
- "line": 33
4039
+ "line": 34
4036
4040
  },
4037
4041
  "name": "BundlerProps",
4038
4042
  "properties": [
@@ -4043,7 +4047,7 @@
4043
4047
  "throws": "esbuild.BuildFailure",
4044
4048
  "type": "esbuild.buildSync"
4045
4049
  },
4046
- "default": "esbuild.buildSync",
4050
+ "default": "`esbuild.buildSync`",
4047
4051
  "remarks": "The function will receive the computed options from the bundler. It can use with these options as it wishes, however `outdir`/`outfile` must be respected to integrate with CDK.\nMust throw a `BuildFailure` on failure to correctly inform the bundler.",
4048
4052
  "returns": "esbuild.BuildResult",
4049
4053
  "stability": "experimental",
@@ -4052,7 +4056,7 @@
4052
4056
  "immutable": true,
4053
4057
  "locationInModule": {
4054
4058
  "filename": "src/bundler.ts",
4055
- "line": 89
4059
+ "line": 90
4056
4060
  },
4057
4061
  "name": "buildFn",
4058
4062
  "optional": true,
@@ -4071,7 +4075,7 @@
4071
4075
  "immutable": true,
4072
4076
  "locationInModule": {
4073
4077
  "filename": "src/bundler.ts",
4074
- "line": 52
4078
+ "line": 53
4075
4079
  },
4076
4080
  "name": "buildOptions",
4077
4081
  "optional": true,
@@ -4089,7 +4093,7 @@
4089
4093
  "immutable": true,
4090
4094
  "locationInModule": {
4091
4095
  "filename": "src/bundler.ts",
4092
- "line": 75
4096
+ "line": 76
4093
4097
  },
4094
4098
  "name": "copyDir",
4095
4099
  "optional": true,
@@ -4143,13 +4147,32 @@
4143
4147
  "immutable": true,
4144
4148
  "locationInModule": {
4145
4149
  "filename": "src/bundler.ts",
4146
- "line": 98
4150
+ "line": 99
4147
4151
  },
4148
4152
  "name": "esbuildBinaryPath",
4149
4153
  "optional": true,
4150
4154
  "type": {
4151
4155
  "primitive": "string"
4152
4156
  }
4157
+ },
4158
+ {
4159
+ "abstract": true,
4160
+ "docs": {
4161
+ "default": "- `CDK_ESBUILD_MODULE_PATH` or package resolution (see above)",
4162
+ "remarks": "Python, Go, .NET and Java should use an absolute path, because the jsii execution environment uses a temporary working directory.\n\nIf not set, the module path will be determined in the following order:\n\n- Use a path from the `CDK_ESBUILD_MODULE_PATH` environment variable\n- In TypeScript, fallback to the default Node.js package resolution mechanism\n- All other languages (Python, Go, .NET, Java) use an automatic \"best effort\" resolution mechanism. \\\n The exact algorithm of this mechanism is considered an implementation detail and should not be relied on.\n If `esbuild` cannot be found, it might be installed dynamically to a temporary location.\n To opt-out of this behavior, set either `esbuildModulePath` or `CDK_ESBUILD_MODULE_PATH` env variable.",
4163
+ "stability": "experimental",
4164
+ "summary": "Path used to import the esbuild module."
4165
+ },
4166
+ "immutable": true,
4167
+ "locationInModule": {
4168
+ "filename": "src/bundler.ts",
4169
+ "line": 118
4170
+ },
4171
+ "name": "esbuildModulePath",
4172
+ "optional": true,
4173
+ "type": {
4174
+ "primitive": "string"
4175
+ }
4153
4176
  }
4154
4177
  ],
4155
4178
  "symbolId": "src/bundler:BundlerProps"
@@ -4286,7 +4309,7 @@
4286
4309
  },
4287
4310
  "locationInModule": {
4288
4311
  "filename": "src/bundler.ts",
4289
- "line": 125
4312
+ "line": 145
4290
4313
  },
4291
4314
  "parameters": [
4292
4315
  {
@@ -4337,7 +4360,7 @@
4337
4360
  "kind": "class",
4338
4361
  "locationInModule": {
4339
4362
  "filename": "src/bundler.ts",
4340
- "line": 107
4363
+ "line": 127
4341
4364
  },
4342
4365
  "name": "EsbuildBundler",
4343
4366
  "properties": [
@@ -4350,7 +4373,7 @@
4350
4373
  "immutable": true,
4351
4374
  "locationInModule": {
4352
4375
  "filename": "src/bundler.ts",
4353
- "line": 142
4376
+ "line": 162
4354
4377
  },
4355
4378
  "name": "entryPoints",
4356
4379
  "type": {
@@ -4387,7 +4410,7 @@
4387
4410
  "immutable": true,
4388
4411
  "locationInModule": {
4389
4412
  "filename": "src/bundler.ts",
4390
- "line": 120
4413
+ "line": 140
4391
4414
  },
4392
4415
  "name": "image",
4393
4416
  "type": {
@@ -4402,7 +4425,7 @@
4402
4425
  "immutable": true,
4403
4426
  "locationInModule": {
4404
4427
  "filename": "src/bundler.ts",
4405
- "line": 113
4428
+ "line": 133
4406
4429
  },
4407
4430
  "name": "local",
4408
4431
  "type": {
@@ -4417,7 +4440,7 @@
4417
4440
  "immutable": true,
4418
4441
  "locationInModule": {
4419
4442
  "filename": "src/bundler.ts",
4420
- "line": 149
4443
+ "line": 169
4421
4444
  },
4422
4445
  "name": "props",
4423
4446
  "type": {
@@ -4684,7 +4707,7 @@
4684
4707
  },
4685
4708
  "locationInModule": {
4686
4709
  "filename": "src/inline-code.ts",
4687
- "line": 104
4710
+ "line": 146
4688
4711
  },
4689
4712
  "parameters": [
4690
4713
  {
@@ -4724,9 +4747,54 @@
4724
4747
  "kind": "class",
4725
4748
  "locationInModule": {
4726
4749
  "filename": "src/inline-code.ts",
4727
- "line": 103
4750
+ "line": 145
4728
4751
  },
4752
+ "methods": [
4753
+ {
4754
+ "docs": {
4755
+ "stability": "experimental",
4756
+ "summary": "Called when the lambda or layer is initialized to allow this object to bind to the stack, add resources and have fun."
4757
+ },
4758
+ "locationInModule": {
4759
+ "filename": "src/inline-code.ts",
4760
+ "line": 98
4761
+ },
4762
+ "name": "bind",
4763
+ "overrides": "aws-cdk-lib.aws_lambda.InlineCode",
4764
+ "parameters": [
4765
+ {
4766
+ "name": "scope",
4767
+ "type": {
4768
+ "fqn": "constructs.Construct"
4769
+ }
4770
+ }
4771
+ ],
4772
+ "returns": {
4773
+ "type": {
4774
+ "fqn": "aws-cdk-lib.aws_lambda.CodeConfig"
4775
+ }
4776
+ }
4777
+ }
4778
+ ],
4729
4779
  "name": "InlineJavaScriptCode",
4780
+ "properties": [
4781
+ {
4782
+ "docs": {
4783
+ "stability": "experimental",
4784
+ "summary": "Determines whether this Code is inline code or not."
4785
+ },
4786
+ "immutable": true,
4787
+ "locationInModule": {
4788
+ "filename": "src/inline-code.ts",
4789
+ "line": 63
4790
+ },
4791
+ "name": "isInline",
4792
+ "overrides": "aws-cdk-lib.aws_lambda.InlineCode",
4793
+ "type": {
4794
+ "primitive": "boolean"
4795
+ }
4796
+ }
4797
+ ],
4730
4798
  "symbolId": "src/inline-code:InlineJavaScriptCode"
4731
4799
  },
4732
4800
  "@mrgrain/cdk-esbuild.InlineJsxCode": {
@@ -4743,7 +4811,7 @@
4743
4811
  },
4744
4812
  "locationInModule": {
4745
4813
  "filename": "src/inline-code.ts",
4746
- "line": 135
4814
+ "line": 177
4747
4815
  },
4748
4816
  "parameters": [
4749
4817
  {
@@ -4783,9 +4851,54 @@
4783
4851
  "kind": "class",
4784
4852
  "locationInModule": {
4785
4853
  "filename": "src/inline-code.ts",
4786
- "line": 134
4854
+ "line": 176
4787
4855
  },
4856
+ "methods": [
4857
+ {
4858
+ "docs": {
4859
+ "stability": "experimental",
4860
+ "summary": "Called when the lambda or layer is initialized to allow this object to bind to the stack, add resources and have fun."
4861
+ },
4862
+ "locationInModule": {
4863
+ "filename": "src/inline-code.ts",
4864
+ "line": 98
4865
+ },
4866
+ "name": "bind",
4867
+ "overrides": "aws-cdk-lib.aws_lambda.InlineCode",
4868
+ "parameters": [
4869
+ {
4870
+ "name": "scope",
4871
+ "type": {
4872
+ "fqn": "constructs.Construct"
4873
+ }
4874
+ }
4875
+ ],
4876
+ "returns": {
4877
+ "type": {
4878
+ "fqn": "aws-cdk-lib.aws_lambda.CodeConfig"
4879
+ }
4880
+ }
4881
+ }
4882
+ ],
4788
4883
  "name": "InlineJsxCode",
4884
+ "properties": [
4885
+ {
4886
+ "docs": {
4887
+ "stability": "experimental",
4888
+ "summary": "Determines whether this Code is inline code or not."
4889
+ },
4890
+ "immutable": true,
4891
+ "locationInModule": {
4892
+ "filename": "src/inline-code.ts",
4893
+ "line": 63
4894
+ },
4895
+ "name": "isInline",
4896
+ "overrides": "aws-cdk-lib.aws_lambda.InlineCode",
4897
+ "type": {
4898
+ "primitive": "boolean"
4899
+ }
4900
+ }
4901
+ ],
4789
4902
  "symbolId": "src/inline-code:InlineJsxCode"
4790
4903
  },
4791
4904
  "@mrgrain/cdk-esbuild.InlineTsxCode": {
@@ -4802,7 +4915,7 @@
4802
4915
  },
4803
4916
  "locationInModule": {
4804
4917
  "filename": "src/inline-code.ts",
4805
- "line": 195
4918
+ "line": 237
4806
4919
  },
4807
4920
  "parameters": [
4808
4921
  {
@@ -4842,9 +4955,54 @@
4842
4955
  "kind": "class",
4843
4956
  "locationInModule": {
4844
4957
  "filename": "src/inline-code.ts",
4845
- "line": 194
4958
+ "line": 236
4846
4959
  },
4960
+ "methods": [
4961
+ {
4962
+ "docs": {
4963
+ "stability": "experimental",
4964
+ "summary": "Called when the lambda or layer is initialized to allow this object to bind to the stack, add resources and have fun."
4965
+ },
4966
+ "locationInModule": {
4967
+ "filename": "src/inline-code.ts",
4968
+ "line": 98
4969
+ },
4970
+ "name": "bind",
4971
+ "overrides": "aws-cdk-lib.aws_lambda.InlineCode",
4972
+ "parameters": [
4973
+ {
4974
+ "name": "scope",
4975
+ "type": {
4976
+ "fqn": "constructs.Construct"
4977
+ }
4978
+ }
4979
+ ],
4980
+ "returns": {
4981
+ "type": {
4982
+ "fqn": "aws-cdk-lib.aws_lambda.CodeConfig"
4983
+ }
4984
+ }
4985
+ }
4986
+ ],
4847
4987
  "name": "InlineTsxCode",
4988
+ "properties": [
4989
+ {
4990
+ "docs": {
4991
+ "stability": "experimental",
4992
+ "summary": "Determines whether this Code is inline code or not."
4993
+ },
4994
+ "immutable": true,
4995
+ "locationInModule": {
4996
+ "filename": "src/inline-code.ts",
4997
+ "line": 63
4998
+ },
4999
+ "name": "isInline",
5000
+ "overrides": "aws-cdk-lib.aws_lambda.InlineCode",
5001
+ "type": {
5002
+ "primitive": "boolean"
5003
+ }
5004
+ }
5005
+ ],
4848
5006
  "symbolId": "src/inline-code:InlineTsxCode"
4849
5007
  },
4850
5008
  "@mrgrain/cdk-esbuild.InlineTypeScriptCode": {
@@ -4861,7 +5019,7 @@
4861
5019
  },
4862
5020
  "locationInModule": {
4863
5021
  "filename": "src/inline-code.ts",
4864
- "line": 165
5022
+ "line": 207
4865
5023
  },
4866
5024
  "parameters": [
4867
5025
  {
@@ -4901,9 +5059,54 @@
4901
5059
  "kind": "class",
4902
5060
  "locationInModule": {
4903
5061
  "filename": "src/inline-code.ts",
4904
- "line": 164
5062
+ "line": 206
4905
5063
  },
5064
+ "methods": [
5065
+ {
5066
+ "docs": {
5067
+ "stability": "experimental",
5068
+ "summary": "Called when the lambda or layer is initialized to allow this object to bind to the stack, add resources and have fun."
5069
+ },
5070
+ "locationInModule": {
5071
+ "filename": "src/inline-code.ts",
5072
+ "line": 98
5073
+ },
5074
+ "name": "bind",
5075
+ "overrides": "aws-cdk-lib.aws_lambda.InlineCode",
5076
+ "parameters": [
5077
+ {
5078
+ "name": "scope",
5079
+ "type": {
5080
+ "fqn": "constructs.Construct"
5081
+ }
5082
+ }
5083
+ ],
5084
+ "returns": {
5085
+ "type": {
5086
+ "fqn": "aws-cdk-lib.aws_lambda.CodeConfig"
5087
+ }
5088
+ }
5089
+ }
5090
+ ],
4906
5091
  "name": "InlineTypeScriptCode",
5092
+ "properties": [
5093
+ {
5094
+ "docs": {
5095
+ "stability": "experimental",
5096
+ "summary": "Determines whether this Code is inline code or not."
5097
+ },
5098
+ "immutable": true,
5099
+ "locationInModule": {
5100
+ "filename": "src/inline-code.ts",
5101
+ "line": 63
5102
+ },
5103
+ "name": "isInline",
5104
+ "overrides": "aws-cdk-lib.aws_lambda.InlineCode",
5105
+ "type": {
5106
+ "primitive": "boolean"
5107
+ }
5108
+ }
5109
+ ],
4907
5110
  "symbolId": "src/inline-code:InlineTypeScriptCode"
4908
5111
  },
4909
5112
  "@mrgrain/cdk-esbuild.JavaScriptAsset": {
@@ -6016,7 +6219,7 @@
6016
6219
  "kind": "interface",
6017
6220
  "locationInModule": {
6018
6221
  "filename": "src/inline-code.ts",
6019
- "line": 8
6222
+ "line": 11
6020
6223
  },
6021
6224
  "name": "TransformerProps",
6022
6225
  "properties": [
@@ -6030,7 +6233,7 @@
6030
6233
  "immutable": true,
6031
6234
  "locationInModule": {
6032
6235
  "filename": "src/inline-code.ts",
6033
- "line": 37
6236
+ "line": 40
6034
6237
  },
6035
6238
  "name": "esbuildBinaryPath",
6036
6239
  "optional": true,
@@ -6038,6 +6241,25 @@
6038
6241
  "primitive": "string"
6039
6242
  }
6040
6243
  },
6244
+ {
6245
+ "abstract": true,
6246
+ "docs": {
6247
+ "default": "- `CDK_ESBUILD_MODULE_PATH` or package resolution (see above)",
6248
+ "remarks": "Python, Go, .NET and Java should use an absolute path, because the jsii execution environment uses a temporary working directory.\n\nIf not set, the module path will be determined in the following order:\n\n- Use a path from the `CDK_ESBUILD_MODULE_PATH` environment variable\n- In TypeScript, fallback to the default Node.js package resolution mechanism\n- All other languages (Python, Go, .NET, Java) use an automatic \"best effort\" resolution mechanism. \\\n The exact algorithm of this mechanism is considered an implementation detail and should not be relied on.\n If `esbuild` cannot be found, it might be installed dynamically to a temporary location.\n To opt-out of this behavior, set either `esbuildModulePath` or `CDK_ESBUILD_MODULE_PATH` env variable.",
6249
+ "stability": "experimental",
6250
+ "summary": "Path used to import the esbuild module."
6251
+ },
6252
+ "immutable": true,
6253
+ "locationInModule": {
6254
+ "filename": "src/inline-code.ts",
6255
+ "line": 59
6256
+ },
6257
+ "name": "esbuildModulePath",
6258
+ "optional": true,
6259
+ "type": {
6260
+ "primitive": "string"
6261
+ }
6262
+ },
6041
6263
  {
6042
6264
  "abstract": true,
6043
6265
  "docs": {
@@ -6045,7 +6267,7 @@
6045
6267
  "throws": "esbuild.TransformFailure",
6046
6268
  "type": "esbuild.transformSync"
6047
6269
  },
6048
- "default": "esbuild.transformSync",
6270
+ "default": "`esbuild.transformSync`",
6049
6271
  "remarks": "The function will receive the computed options from the bundler. It can use with these options as it wishes, however a TransformResult must be returned to integrate with CDK.\nMust throw a `TransformFailure` on failure to correctly inform the bundler.",
6050
6272
  "returns": "esbuild.TransformResult",
6051
6273
  "stability": "experimental",
@@ -6054,7 +6276,7 @@
6054
6276
  "immutable": true,
6055
6277
  "locationInModule": {
6056
6278
  "filename": "src/inline-code.ts",
6057
- "line": 28
6279
+ "line": 31
6058
6280
  },
6059
6281
  "name": "transformFn",
6060
6282
  "optional": true,
@@ -6073,7 +6295,7 @@
6073
6295
  "immutable": true,
6074
6296
  "locationInModule": {
6075
6297
  "filename": "src/inline-code.ts",
6076
- "line": 15
6298
+ "line": 18
6077
6299
  },
6078
6300
  "name": "transformOptions",
6079
6301
  "optional": true,
@@ -6465,6 +6687,6 @@
6465
6687
  "symbolId": "src/source:TypeScriptSourceProps"
6466
6688
  }
6467
6689
  },
6468
- "version": "3.8.0",
6469
- "fingerprint": "sQh0nC65ejsvGXaBNTb27k4YFv6WOeZks++x8q1/vd8="
6690
+ "version": "3.10.0",
6691
+ "fingerprint": "miQlSNdmuYw/EzxqZAiWEJLGD3Wurx9S6VsqoiETQ6c="
6470
6692
  }
package/CHANGELOG.md CHANGED
@@ -1,4 +1,33 @@
1
1
 
2
+ ## [3.9.0](https://github.com/mrgrain/cdk-esbuild/compare/v3.8.1...v3.9.0) (2022-08-14)
3
+
4
+
5
+ ### Features
6
+
7
+ * lazy evaluate `InlineCode` and show message before transforming ([#217](https://github.com/mrgrain/cdk-esbuild/issues/217)) ([98f7d1d](https://github.com/mrgrain/cdk-esbuild/commit/98f7d1d23fd51967aa27c4fad62fafcb6a8cf802))
8
+ * support NO_COLOR ([#213](https://github.com/mrgrain/cdk-esbuild/issues/213)) ([1abd267](https://github.com/mrgrain/cdk-esbuild/commit/1abd2676f9aed67f31df70dc99671bafeb9929d5)), closes [#211](https://github.com/mrgrain/cdk-esbuild/issues/211)
9
+ * upgrade esbuild to ^0.15.0 ([#207](https://github.com/mrgrain/cdk-esbuild/issues/207)) ([7d74485](https://github.com/mrgrain/cdk-esbuild/commit/7d7448533a58a7422a2e5edb3858a74c232026d2)), closes [#204](https://github.com/mrgrain/cdk-esbuild/issues/204)
10
+
11
+ ### [3.8.1](https://github.com/mrgrain/cdk-esbuild/compare/v3.8.0...v3.8.1) (2022-08-13)
12
+
13
+
14
+ ### Bug Fixes
15
+
16
+ * remove console object overwrites from InlineCode ([#214](https://github.com/mrgrain/cdk-esbuild/issues/214)) ([dde3fdf](https://github.com/mrgrain/cdk-esbuild/commit/dde3fdf23780c77e13e7454fb42eb2a9fda84d7e))
17
+
18
+ ## [3.8.0](https://github.com/mrgrain/cdk-esbuild/compare/v3.7.2...v3.8.0) (2022-08-13)
19
+
20
+
21
+ ### Features
22
+
23
+ * support new esbuild options: `platform`, `jsxDev`, `jsxImportSource` ([#209](https://github.com/mrgrain/cdk-esbuild/issues/209)) ([a7d14e7](https://github.com/mrgrain/cdk-esbuild/commit/a7d14e7bbf1655850951c3f5d041b045309b0ced))
24
+
25
+
26
+ ### Bug Fixes
27
+
28
+ * `esbuildBinaryPath` not working with `Code`, not available for `InlineCode` ([#210](https://github.com/mrgrain/cdk-esbuild/issues/210)) ([dc2609b](https://github.com/mrgrain/cdk-esbuild/commit/dc2609bf48956e3bc05a1d5fdb4851672cec3883)), closes [#203](https://github.com/mrgrain/cdk-esbuild/issues/203)
29
+ * esbuild messages printed out twice ([#212](https://github.com/mrgrain/cdk-esbuild/issues/212)) ([2596368](https://github.com/mrgrain/cdk-esbuild/commit/25963686f9f41e18af0f928e465263d1c87db611))
30
+
2
31
  ### [3.7.2](https://github.com/mrgrain/cdk-esbuild/compare/v3.7.0...v3.7.2) (2022-07-15)
3
32
 
4
33
 
package/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  <picture>
2
- <source media="(prefers-color-scheme: dark)" srcset="./images/wordmark-dark.svg">
3
- <source media="(prefers-color-scheme: light)" srcset="./images/wordmark-light.svg">
4
- <img src="./images/wordmark.svg" alt="cdk-esbuild">
2
+ <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/mrgrain/cdk-esbuild/main/images/wordmark-dark.svg">
3
+ <source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/mrgrain/cdk-esbuild/main/images/wordmark-light.svg">
4
+ <img src="https://raw.githubusercontent.com/mrgrain/cdk-esbuild/main/images/wordmark.svg" alt="cdk-esbuild">
5
5
  </picture>
6
6
 
7
7
  _CDK constructs for [esbuild](https://github.com/evanw/esbuild), an extremely fast JavaScript bundler_
package/lib/asset.js CHANGED
@@ -56,7 +56,7 @@ class EsbuildAsset extends aws_s3_assets_1.Asset {
56
56
  }
57
57
  exports.EsbuildAsset = EsbuildAsset;
58
58
  _a = JSII_RTTI_SYMBOL_1;
59
- EsbuildAsset[_a] = { fqn: "@mrgrain/cdk-esbuild.EsbuildAsset", version: "3.8.0" };
59
+ EsbuildAsset[_a] = { fqn: "@mrgrain/cdk-esbuild.EsbuildAsset", version: "3.10.0" };
60
60
  /**
61
61
  * Bundles the entry points and creates a CDK asset which is uploaded to the bootstrapped CDK S3 bucket during deployment.
62
62
  *
@@ -68,7 +68,7 @@ class JavaScriptAsset extends EsbuildAsset {
68
68
  }
69
69
  exports.JavaScriptAsset = JavaScriptAsset;
70
70
  _b = JSII_RTTI_SYMBOL_1;
71
- JavaScriptAsset[_b] = { fqn: "@mrgrain/cdk-esbuild.JavaScriptAsset", version: "3.8.0" };
71
+ JavaScriptAsset[_b] = { fqn: "@mrgrain/cdk-esbuild.JavaScriptAsset", version: "3.10.0" };
72
72
  /**
73
73
  * Bundles the entry points and creates a CDK asset which is uploaded to the bootstrapped CDK S3 bucket during deployment.
74
74
  *
@@ -80,5 +80,5 @@ class TypeScriptAsset extends EsbuildAsset {
80
80
  }
81
81
  exports.TypeScriptAsset = TypeScriptAsset;
82
82
  _c = JSII_RTTI_SYMBOL_1;
83
- TypeScriptAsset[_c] = { fqn: "@mrgrain/cdk-esbuild.TypeScriptAsset", version: "3.8.0" };
83
+ TypeScriptAsset[_c] = { fqn: "@mrgrain/cdk-esbuild.TypeScriptAsset", version: "3.10.0" };
84
84
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvYXNzZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSwrQkFBNEM7QUFDNUMsNkNBQTRDO0FBQzVDLDZEQUE2RDtBQUM3RCwyQ0FBNkM7QUFDN0MsdUNBQXNFO0FBeUN0RTs7Ozs7O0dBTUc7QUFDSCxNQUFhLFlBQXVDLFNBQVEscUJBQU87SUFDakU7O09BRUc7SUFDSCxZQUNFLEtBQWdCLEVBQ2hCLEVBQVUsRUFDVixLQUFZO1FBRVosTUFBTSxFQUNKLFNBQVMsRUFDVCxZQUFZLEVBQUUsT0FBTyxHQUFHLEVBQUUsR0FDM0IsR0FBRyxLQUFLLENBQUM7UUFDVixNQUFNLFdBQVcsR0FDZixPQUFPLEtBQUssQ0FBQyxXQUFXLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQztRQUVsRixNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxpQkFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7UUFFbEQsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDLGFBQWEsSUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7UUFFN0QsTUFBTSwyQkFBMkIsR0FBRyxDQUFDLFVBQWtCLEVBQVUsRUFBRTtZQUNqRSxJQUFJLENBQUMsaUJBQVUsQ0FBQyxVQUFVLENBQUMsRUFBRTtnQkFDM0IsT0FBTyxVQUFVLENBQUM7YUFDbkI7WUFFRCxNQUFNLGtCQUFrQixHQUFHLGVBQVEsQ0FBQyxhQUFhLEVBQUUsVUFBVSxDQUFDLENBQUM7WUFDL0QsSUFBSSxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksaUJBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFO2dCQUN6RSxNQUFNLElBQUksS0FBSyxDQUNiLEdBQUcsSUFBSSxtSkFBbUosQ0FDM0osQ0FBQzthQUNIO1lBRUQsT0FBTyxrQkFBa0IsQ0FBQztRQUM1QixDQUFDLENBQUM7UUFFRixNQUFNLG1CQUFtQixHQUN2QixLQUFLLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7WUFDMUIsV0FBVyxDQUFDLEdBQUcsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDLENBQUM7WUFDOUMsTUFBTSxDQUFDLFdBQVcsQ0FDaEIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUM7aUJBQ3hCLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLDJCQUEyQixDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FDM0UsQ0FDSixDQUFDO1FBR04sTUFBTSxZQUFZLEdBQUc7WUFDbkIsTUFBTSxFQUFFLElBQUk7WUFDWixHQUFHLE9BQU87WUFDVixhQUFhO1NBQ2QsQ0FBQztRQUVGLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YsSUFBSSxFQUFFLGFBQWE7WUFDbkIsU0FBUztZQUNULGFBQWEsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLDJCQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQywyQkFBYSxDQUFDLE1BQU07WUFDdEUsUUFBUSxFQUFFLElBQUksd0JBQWMsQ0FDMUIsbUJBQW1CLEVBQ25CO2dCQUNFLEdBQUcsS0FBSztnQkFDUixZQUFZO2FBQ2IsQ0FDRjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBL0RILG9DQWdFQzs7O0FBRUQ7Ozs7OztHQU1HO0FBQ0gsTUFBYSxlQUFnQixTQUFRLFlBQWtDOztBQUF2RSwwQ0FBMEU7OztBQUUxRTs7Ozs7O0dBTUc7QUFDSCxNQUFhLGVBQWdCLFNBQVEsWUFBa0M7O0FBQXZFLDBDQUEwRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzQWJzb2x1dGUsIHJlbGF0aXZlIH0gZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBBc3NldEhhc2hUeXBlIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgQXNzZXQgYXMgUzNBc3NldCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMy1hc3NldHMnO1xuaW1wb3J0IHsgQ29uc3RydWN0LCBOb2RlIH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBFc2J1aWxkQnVuZGxlciwgQnVuZGxlclByb3BzLCBFbnRyeVBvaW50cyB9IGZyb20gJy4vYnVuZGxlcic7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXNzZXRCYXNlUHJvcHMgZXh0ZW5kcyBCdW5kbGVyUHJvcHMge1xuICAvKipcbiAgICogQSBoYXNoIG9mIHRoaXMgYXNzZXQsIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBjb25zdHJ1Y3Rpb24gdGltZS5cbiAgICpcbiAgICogQXMgdGhpcyBpcyBhIHBsYWluIHN0cmluZywgaXQgY2FuIGJlIHVzZWQgaW4gY29uc3RydWN0IElEcyBpbiBvcmRlciB0byBlbmZvcmNlIGNyZWF0aW9uIG9mIGEgbmV3IHJlc291cmNlIHdoZW4gdGhlIGNvbnRlbnQgaGFzaCBoYXMgY2hhbmdlZC5cbiAgICpcbiAgICogRGVmYXVsdHMgdG8gYSBoYXNoIG9mIGFsbCBmaWxlcyBpbiB0aGUgcmVzdWx0aW5nIGJ1bmRsZS5cbiAgICpcbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGFzc2V0SGFzaD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBc3NldFByb3BzIGV4dGVuZHMgQXNzZXRCYXNlUHJvcHMge1xuICAvKipcbiAgICogQSBwYXRoIG9yIGxpc3Qgb3IgbWFwIG9mIHBhdGhzIHRvIHRoZSBlbnRyeSBwb2ludHMgb2YgeW91ciBjb2RlLlxuICAgKlxuICAgKiBSZWxhdGl2ZSBwYXRocyBhcmUgYnkgZGVmYXVsdCByZXNvbHZlZCBmcm9tIHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5LlxuICAgKiBUbyBjaGFuZ2UgdGhlIHdvcmtpbmcgZGlyZWN0b3J5LCBzZWUgYGJ1aWxkT3B0aW9ucy5hYnNXb3JraW5nRGlyYC5cbiAgICpcbiAgICogQWJzb2x1dGUgcGF0aHMgY2FuIGJlIHVzZWQgaWYgZmlsZXMgYXJlIHBhcnQgb2YgdGhlIHdvcmtpbmcgZGlyZWN0b3J5LlxuICAgKlxuICAgKiBFeGFtcGxlczpcbiAgICogIC0gYCdzcmMvaW5kZXgudHMnYFxuICAgKiAgLSBgcmVxdWlyZS5yZXNvbHZlKCcuL2xhbWJkYScpYFxuICAgKiAgLSBgWydzcmMvaW5kZXgudHMnLCAnc3JjL3V0aWwudHMnXWBcbiAgICogIC0gYHtvbmU6ICdzcmMvdHdvLnRzJywgdHdvOiAnc3JjL29uZS50cyd9YFxuICAgKlxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgZW50cnlQb2ludHM6IEVudHJ5UG9pbnRzO1xufVxuXG50eXBlIEphdmFTY3JpcHRBc3NldFByb3BzID0gQXNzZXRQcm9wcztcbnR5cGUgVHlwZVNjcmlwdEFzc2V0UHJvcHMgPSBBc3NldFByb3BzO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBnZW5lcmljIGVzYnVpbGQgYXNzZXQuXG4gKlxuICogWW91IHNob3VsZCBhbHdheXMgdXNlIGBUeXBlU2NyaXB0QXNzZXRgIG9yIGBKYXZhU2NyaXB0QXNzZXRgLlxuICpcbiAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gKi9cbmV4cG9ydCBjbGFzcyBFc2J1aWxkQXNzZXQ8UHJvcHMgZXh0ZW5kcyBBc3NldFByb3BzPiBleHRlbmRzIFMzQXNzZXQge1xuICAvKipcbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcHJvcHM6IFByb3BzLFxuICApIHtcbiAgICBjb25zdCB7XG4gICAgICBhc3NldEhhc2gsXG4gICAgICBidWlsZE9wdGlvbnM6IG9wdGlvbnMgPSB7fSxcbiAgICB9ID0gcHJvcHM7XG4gICAgY29uc3QgZW50cnlQb2ludHM6IHN0cmluZ1tdIHwgUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9XG4gICAgICB0eXBlb2YgcHJvcHMuZW50cnlQb2ludHMgPT09ICdzdHJpbmcnID8gW3Byb3BzLmVudHJ5UG9pbnRzXSA6IHByb3BzLmVudHJ5UG9pbnRzO1xuXG4gICAgY29uc3QgbmFtZSA9IHNjb3BlLm5vZGUucGF0aCArIE5vZGUuUEFUSF9TRVAgKyBpZDtcblxuICAgIGNvbnN0IGFic1dvcmtpbmdEaXIgPSBvcHRpb25zLmFic1dvcmtpbmdEaXIgPz8gcHJvY2Vzcy5jd2QoKTtcblxuICAgIGNvbnN0IGZvcmNlUmVsYXRpdmVFbnRyeXBvaW50UGF0aCA9IChlbnRyeVBvaW50OiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICAgICAgaWYgKCFpc0Fic29sdXRlKGVudHJ5UG9pbnQpKSB7XG4gICAgICAgIHJldHVybiBlbnRyeVBvaW50O1xuICAgICAgfVxuXG4gICAgICBjb25zdCByZWxhdGl2ZUVudHJ5UG9pbnQgPSByZWxhdGl2ZShhYnNXb3JraW5nRGlyLCBlbnRyeVBvaW50KTtcbiAgICAgIGlmIChyZWxhdGl2ZUVudHJ5UG9pbnQuc3RhcnRzV2l0aCgnLi4nKSB8fCBpc0Fic29sdXRlKHJlbGF0aXZlRW50cnlQb2ludCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGAke25hbWV9OiBFbnRyeSBwb2ludHMgbXVzdCBiZSBwYXJ0IG9mIHRoZSB3b3JraW5nIGRpcmVjdG9yeS4gU2VlIFxcYGJ1aWxkT3B0aW9ucy5hYnNXb3JraW5nRGlyXFxgIHRvIHNldCBhIHdvcmtpbmcgZGlyZWN0b3J5IGRpZmZlcmVudCB0byB0aGUgY3VycmVudCBvbmUuYCxcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJlbGF0aXZlRW50cnlQb2ludDtcbiAgICB9O1xuXG4gICAgY29uc3QgcmVsYXRpdmVFbnRyeVBvaW50cyA9XG4gICAgICBBcnJheS5pc0FycmF5KGVudHJ5UG9pbnRzKSA/XG4gICAgICAgIGVudHJ5UG9pbnRzLm1hcChmb3JjZVJlbGF0aXZlRW50cnlwb2ludFBhdGgpIDpcbiAgICAgICAgT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgICAgICAgIE9iamVjdC5lbnRyaWVzKGVudHJ5UG9pbnRzKVxuICAgICAgICAgICAgLm1hcCgoW291dCwgZW50cnlQb2ludF0pID0+IChbb3V0LCBmb3JjZVJlbGF0aXZlRW50cnlwb2ludFBhdGgoZW50cnlQb2ludCldKSxcbiAgICAgICAgICAgICksXG4gICAgICAgICk7XG5cblxuICAgIGNvbnN0IGJ1aWxkT3B0aW9ucyA9IHtcbiAgICAgIGJ1bmRsZTogdHJ1ZSxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICBhYnNXb3JraW5nRGlyLFxuICAgIH07XG5cbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIHBhdGg6IGFic1dvcmtpbmdEaXIsXG4gICAgICBhc3NldEhhc2gsXG4gICAgICBhc3NldEhhc2hUeXBlOiBhc3NldEhhc2ggPyBBc3NldEhhc2hUeXBlLkNVU1RPTSA6IEFzc2V0SGFzaFR5cGUuT1VUUFVULFxuICAgICAgYnVuZGxpbmc6IG5ldyBFc2J1aWxkQnVuZGxlcihcbiAgICAgICAgcmVsYXRpdmVFbnRyeVBvaW50cyxcbiAgICAgICAge1xuICAgICAgICAgIC4uLnByb3BzLFxuICAgICAgICAgIGJ1aWxkT3B0aW9ucyxcbiAgICAgICAgfSxcbiAgICAgICksXG4gICAgfSk7XG4gIH1cbn1cblxuLyoqXG4gKiBCdW5kbGVzIHRoZSBlbnRyeSBwb2ludHMgYW5kIGNyZWF0ZXMgYSBDREsgYXNzZXQgd2hpY2ggaXMgdXBsb2FkZWQgdG8gdGhlIGJvb3RzdHJhcHBlZCBDREsgUzMgYnVja2V0IGR1cmluZyBkZXBsb3ltZW50LlxuICpcbiAqIFRoZSBhc3NldCBjYW4gYmUgdXNlZCBieSBvdGhlciBjb25zdHJ1Y3RzLlxuICpcbiAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gKi9cbmV4cG9ydCBjbGFzcyBKYXZhU2NyaXB0QXNzZXQgZXh0ZW5kcyBFc2J1aWxkQXNzZXQ8SmF2YVNjcmlwdEFzc2V0UHJvcHM+IHt9XG5cbi8qKlxuICogQnVuZGxlcyB0aGUgZW50cnkgcG9pbnRzIGFuZCBjcmVhdGVzIGEgQ0RLIGFzc2V0IHdoaWNoIGlzIHVwbG9hZGVkIHRvIHRoZSBib290c3RyYXBwZWQgQ0RLIFMzIGJ1Y2tldCBkdXJpbmcgZGVwbG95bWVudC5cbiAqXG4gKiBUaGUgYXNzZXQgY2FuIGJlIHVzZWQgYnkgb3RoZXIgY29uc3RydWN0cy5cbiAqXG4gKiBAc3RhYmlsaXR5IHN0YWJsZVxuICovXG5leHBvcnQgY2xhc3MgVHlwZVNjcmlwdEFzc2V0IGV4dGVuZHMgRXNidWlsZEFzc2V0PFR5cGVTY3JpcHRBc3NldFByb3BzPiB7fVxuIl19
package/lib/bundler.d.ts CHANGED
@@ -71,7 +71,7 @@ export interface BundlerProps {
71
71
  * @type esbuild.buildSync
72
72
  * @returns esbuild.BuildResult
73
73
  * @throws esbuild.BuildFailure
74
- * @default esbuild.buildSync
74
+ * @default `esbuild.buildSync`
75
75
  */
76
76
  readonly buildFn?: any;
77
77
  /**
@@ -82,6 +82,24 @@ export interface BundlerProps {
82
82
  * @stability experimental
83
83
  */
84
84
  readonly esbuildBinaryPath?: string;
85
+ /**
86
+ * Path used to import the esbuild module.
87
+ *
88
+ * Python, Go, .NET and Java should use an absolute path, because the jsii execution environment uses a temporary working directory.
89
+ *
90
+ * If not set, the module path will be determined in the following order:
91
+ *
92
+ * - Use a path from the `CDK_ESBUILD_MODULE_PATH` environment variable
93
+ * - In TypeScript, fallback to the default Node.js package resolution mechanism
94
+ * - All other languages (Python, Go, .NET, Java) use an automatic "best effort" resolution mechanism. \
95
+ * The exact algorithm of this mechanism is considered an implementation detail and should not be relied on.
96
+ * If `esbuild` cannot be found, it might be installed dynamically to a temporary location.
97
+ * To opt-out of this behavior, set either `esbuildModulePath` or `CDK_ESBUILD_MODULE_PATH` env variable.
98
+ *
99
+ * @stability experimental
100
+ * @default - `CDK_ESBUILD_MODULE_PATH` or package resolution (see above)
101
+ */
102
+ readonly esbuildModulePath?: string;
85
103
  }
86
104
  /**
87
105
  * Low-level construct that can be used where `BundlingOptions` are required.
package/lib/bundler.js CHANGED
@@ -7,6 +7,7 @@ const fs_1 = require("fs");
7
7
  const path_1 = require("path");
8
8
  const aws_cdk_lib_1 = require("aws-cdk-lib");
9
9
  const esbuild_wrapper_1 = require("./esbuild-wrapper");
10
+ const utils_1 = require("./utils");
10
11
  /**
11
12
  * Low-level construct that can be used where `BundlingOptions` are required.
12
13
  * This class directly interfaces with esbuild and provides almost no configuration safeguards.
@@ -68,14 +69,18 @@ class EsbuildBundler {
68
69
  });
69
70
  }
70
71
  try {
71
- const { buildFn = esbuild_wrapper_1.buildSync } = this.props;
72
+ const { buildFn = esbuild_wrapper_1.esbuild(esbuild_wrapper_1.detectEsbuildModulePath(props.esbuildModulePath)).buildSync } = this.props;
72
73
  esbuild_wrapper_1.wrapWithEsbuildBinaryPath(buildFn, this.props.esbuildBinaryPath)({
73
74
  entryPoints,
75
+ color: process.env.NO_COLOR ? Boolean(process.env.NO_COLOR) : undefined,
74
76
  ...(this.props?.buildOptions || {}),
75
77
  ...this.getOutputOptions(outputDir, { normalize: path_1.normalize, join: path_1.join }),
76
78
  });
77
79
  }
78
- catch (_unused) {
80
+ catch (error) {
81
+ if (utils_1.errorHasCode(error, 'MODULE_NOT_FOUND')) {
82
+ throw error;
83
+ }
79
84
  }
80
85
  return true;
81
86
  },
@@ -121,5 +126,5 @@ class EsbuildBundler {
121
126
  }
122
127
  exports.EsbuildBundler = EsbuildBundler;
123
128
  _a = JSII_RTTI_SYMBOL_1;
124
- EsbuildBundler[_a] = { fqn: "@mrgrain/cdk-esbuild.EsbuildBundler", version: "3.8.0" };
125
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9idW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsMkJBQStCO0FBQy9CLCtCQUE2RTtBQUM3RSw2Q0FLcUI7QUFFckIsdURBQXlFO0FBMkZ6RTs7Ozs7R0FLRztBQUNILE1BQWEsY0FBYztJQWV6Qjs7T0FFRztJQUNIO0lBQ0U7Ozs7Ozs7Ozs7Ozs7OztPQWVHO0lBQ2EsV0FBd0I7SUFFeEM7Ozs7T0FJRztJQUNhLEtBQW1CO1FBUG5CLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBT3hCLFVBQUssR0FBTCxLQUFLLENBQWM7UUFsQ3JDOzs7O1dBSUc7UUFDYSxVQUFLLEdBQUcseUJBQVcsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7UUErQjFELElBQUksS0FBSyxFQUFFLFlBQVksRUFBRSxPQUFPLElBQUksS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUU7WUFDL0QsTUFBTSxJQUFJLEtBQUssQ0FBQyx3Q0FBd0MsQ0FBQyxDQUFDO1NBQzNEO1FBQ0QsSUFBSSxDQUFDLEtBQUssR0FBRztZQUNYLFNBQVMsRUFBRSxDQUFDLFNBQWlCLEVBQUUsUUFBeUIsRUFBVyxFQUFFO2dCQUVuRSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFO29CQUN0QixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7b0JBRXhELE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFO3dCQUM5QixNQUFNLE1BQU0sR0FBRyxjQUFPLENBQ3BCLElBQUksQ0FBQyxLQUFLLEVBQUUsWUFBWSxFQUFFLGFBQWEsSUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQ3hELEdBQUcsQ0FDSixDQUFDO3dCQUNGLE1BQU0sT0FBTyxHQUFH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O1FBRUQsT0FBTztZQUNMLE1BQU0sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUNwQixJQUFJLENBQUMsSUFBSSxDQUNQLEdBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUN6RCxPQUFPLENBQ0ssQ0FDZixDQUNGO1lBQ0QsT0FBTyxFQUFFLFNBQVM7U0FDbkIsQ0FBQztJQUNKLENBQUM7O0FBaEpILHdDQWlKQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1rZGlyU3luYyB9IGZyb20gJ2ZzJztcbmltcG9ydCB7IGpvaW4sIG5vcm1hbGl6ZSwgcmVsYXRpdmUsIHJlc29sdmUsIHBvc2l4LCBpc0Fic29sdXRlIH0gZnJvbSAncGF0aCc7XG5pbXBvcnQge1xuICBCdW5kbGluZ09wdGlvbnMsXG4gIERvY2tlckltYWdlLFxuICBGaWxlU3lzdGVtLFxuICBJTG9jYWxCdW5kbGluZyxcbn0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgQnVpbGRPcHRpb25zIH0gZnJvbSAnLi9lc2J1aWxkLXR5cGVzJztcbmltcG9ydCB7IGJ1aWxkU3luYywgd3JhcFdpdGhFc2J1aWxkQmluYXJ5UGF0aCB9IGZyb20gJy4vZXNidWlsZC13cmFwcGVyJztcblxuLyoqXG4gKiBBIHBhdGggb3IgbGlzdCBvciBtYXAgb2YgcGF0aHMgdG8gdGhlIGVudHJ5IHBvaW50cyBvZiB5b3VyIGNvZGUuXG4gKlxuICogUmVsYXRpdmUgcGF0aHMgYXJlIGJ5IGRlZmF1bHQgcmVzb2x2ZWQgZnJvbSB0aGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeS5cbiAqIFRvIGNoYW5nZSB0aGUgd29ya2luZyBkaXJlY3RvcnksIHNlZSBgYnVpbGRPcHRpb25zLmFic1dvcmtpbmdEaXJgLlxuICpcbiAqIEFic29sdXRlIHBhdGhzIGNhbiBiZSB1c2VkIGlmIGZpbGVzIGFyZSBwYXJ0IG9mIHRoZSB3b3JraW5nIGRpcmVjdG9yeS5cbiAqXG4gKiBFeGFtcGxlczpcbiAqICAtIGAnc3JjL2luZGV4LnRzJ2BcbiAqICAtIGByZXF1aXJlLnJlc29sdmUoJy4vbGFtYmRhJylgXG4gKiAgLSBgWydzcmMvaW5kZXgudHMnLCAnc3JjL3V0aWwudHMnXWBcbiAqICAtIGB7b25lOiAnc3JjL3R3by50cycsIHR3bzogJ3NyYy9vbmUudHMnfWBcbiAqXG4gKiBAc3RhYmlsaXR5IHN0YWJsZVxuICovXG5leHBvcnQgdHlwZSBFbnRyeVBvaW50cyA9IHN0cmluZyB8IHN0cmluZ1tdIHwgUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcblxuLyoqXG4gKiBAc3RhYmlsaXR5IHN0YWJsZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJ1bmRsZXJQcm9wcyB7XG4gIC8qKlxuICAgKiBCdWlsZCBvcHRpb25zIHBhc3NlZCBvbiB0byBlc2J1aWxkLiBQbGVhc2UgcmVmZXIgdG8gdGhlIGVzYnVpbGQgQnVpbGQgQVBJIGRvY3MgZm9yIGRldGFpbHMuXG4gICAqXG4gICAqICogYGJ1aWxkT3B0aW9ucy5vdXRkaXI6IHN0cmluZ2BcbiAgICogVGhlIGFjdHVhbCBwYXRoIGZvciB0aGUgb3V0cHV0IGRpcmVjdG9yeSBpcyBkZWZpbmVkIGJ5IENESy4gSG93ZXZlciBzZXR0aW5nIHRoaXMgb3B0aW9uIGFsbG93cyB0byB3cml0ZSBmaWxlcyBpbnRvIGEgc3ViZGlyZWN0b3J5LiBcXFxuICAgKiBGb3IgZXhhbXBsZSBgeyBvdXRkaXI6ICdqcycgfWAgd2lsbCBjcmVhdGUgYW4gYXNzZXQgd2l0aCBhIHNpbmdsZSBkaXJlY3RvcnkgY2FsbGVkIGBqc2AsIHdoaWNoIGNvbnRhaW5zIGFsbCBidWlsdCBmaWxlcy4gVGhpcyBhcHByb2FjaCBjYW4gYmUgdXNlZnVsIGZvciBzdGF0aWMgd2Vic2l0ZSBkZXBsb3ltZW50cywgd2hlcmUgSmF2YVNjcmlwdCBjb2RlIHNob3VsZCBiZSBwbGFjZWQgaW50byBhIHN1YmRpcmVjdG9yeS4gXFxcbiAgICogKkNhbm5vdCBiZSB1c2VkIHRvZ2V0aGVyIHdpdGggYG91dGZpbGVgKi5cbiAgICogKiBgYnVpbGRPcHRpb25zLm91dGZpbGU6IHN0cmluZ2BcbiAgICogUmVsYXRpdmUgcGF0aCB0byBhIGZpbGUgaW5zaWRlIHRoZSBDREsgYXNzZXQgb3V0cHV0IGRpcmVjdG9yeS5cbiAgICogRm9yIGV4YW1wbGUgYHsgb3V0ZmlsZTogJ2pzL2luZGV4LmpzJyB9YCB3aWxsIGNyZWF0ZSBhbiBhc3NldCB3aXRoIGEgc2luZ2xlIGRpcmVjdG9yeSBjYWxsZWQgYGpzYCwgd2hpY2ggY29udGFpbnMgYSBzaW5nbGUgZmlsZSBgaW5kZXguanNgLiBUaGlzIGNhbiBiZSB1c2VmdWwgdG8gcmVuYW1lIHRoZSBlbnRyeSBwb2ludC4gXFxcbiAgICogKkNhbm5vdCBiZSB1c2VkIHdpdGggbXVsdGlwbGUgZW50cnlQb2ludHMgb3IgdG9nZXRoZXIgd2l0aCBgb3V0ZGlyYC4qXG4gICAqICogYGJ1aWxkT3B0aW9ucy5hYnNXb3JraW5nRGlyOiBzdHJpbmdgXG4gICAqIEFic29sdXRlIHBhdGggdG8gdGhlIFtlc2J1aWxkIHdvcmtpbmcgZGlyZWN0b3J5XShodHRwczovL2VzYnVpbGQuZ2l0aHViLmlvL2FwaS8jd29ya2luZy1kaXJlY3RvcnkpIGFuZCBkZWZhdWx0cyB0byB0aGUgW2N1cnJlbnQgd29ya2luZyBkaXJlY3RvcnldKGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1dvcmtpbmdfZGlyZWN0b3J5KS4gXFxcbiAgICogSWYgcGF0aHMgY2Fubm90IGJlIGZvdW5kLCBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQgaXMgdG8gbG9vayBhdCB0aGUgY29uY2F0ZW5hdGlvbiBvZiBgYWJzV29ya2luZ0RpciArIGVudHJ5UG9pbnRgLiBJdCBtdXN0IGFsd2F5cyBiZSBhIHZhbGlkIGFic29sdXRlIHBhdGggcG9pbnRpbmcgdG8gdGhlIGVudHJ5IHBvaW50LiBXaGVuIG5lZWRlZCwgdGhlIHByb2JhYmx5IGVhc2llc3Qgd2F5IHRvIHNldCBhYnNXb3JraW5nRGlyIGlzIHRvIHVzZSBhIGNvbWJpbmF0aW9uIG9mIGByZXNvbHZlYCBhbmQgYF9fZGlybmFtZWAgKHNlZSBcIkxpYnJhcnkgYXV0aG9yc1wiIHNlY3Rpb24gaW4gdGhlIGRvY3VtZW50YXRpb24pLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZXNidWlsZC5naXRodWIuaW8vYXBpLyNidWlsZC1hcGlcbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGJ1aWxkT3B0aW9ucz86IEJ1aWxkT3B0aW9ucztcblxuICAvKipcbiAgICogQ29weSBhZGRpdGlvbmFsIGZpbGVzIHRvIHRoZSBjb2RlIFthc3NldCBzdGFnaW5nIGRpcmVjdG9yeV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Nkay9hcGkvdjIvZG9jcy9hd3MtY2RrLWxpYi5Bc3NldFN0YWdpbmcuaHRtbCNhYnNvbHV0ZXN0YWdlZHBhdGgpLCBiZWZvcmUgdGhlIGJ1aWxkIHJ1bnMuXG4gICAqIEZpbGVzIGNvcGllZCBsaWtlIHRoaXMgd2lsbCBiZSBvdmVyd3JpdHRlbiBieSBlc2J1aWxkIGlmIHRoZXkgc2hhcmUgdGhlIHNhbWUgbmFtZSBhcyBhbnkgb2YgdGhlIG91dHB1dHMuXG4gICAqXG4gICAqICogV2hlbiBwcm92aWRlZCB3aXRoIGEgYHN0cmluZ2Agb3IgYGFycmF5YCwgYWxsIGZpbGVzIGFyZSBjb3BpZWQgdG8gdGhlIHJvb3Qgb2YgYXNzZXQgc3RhZ2luZyBkaXJlY3RvcnkuXG4gICAqICogV2hlbiBnaXZlbiBhIGBtYXBgLCB0aGUga2V5IGluZGljYXRlcyB0aGUgZGVzdGluYXRpb24gcmVsYXRpdmUgdG8gdGhlIGFzc2V0IHN0YWdpbmcgZGlyZWN0b3J5IGFuZCB0aGUgdmFsdWUgaXMgYSBsaXN0IG9mIGFsbCBzb3VyY2VzIHRvIGJlIGNvcGllZC5cbiAgICpcbiAgICogVGhlcmVmb3JlIHRoZSBmb2xsb3dpbmcgdmFsdWVzIGZvciBgY29weURpcmAgYXJlIGFsbCBlcXVpdmFsZW50OlxuICAgKiBgYGB0c1xuICAgKiB7IGNvcHlEaXI6IFwicGF0aC90by9zb3VyY2VcIiB9XG4gICAqIHsgY29weURpcjogW1wicGF0aC90by9zb3VyY2VcIl0gfVxuICAgKiB7IGNvcHlEaXI6IHsgXCIuXCI6IFwicGF0aC90by9zb3VyY2VcIiB9IH1cbiAgICogeyBjb3B5RGlyOiB7IFwiLlwiOiBbXCJwYXRoL3RvL3NvdXJjZVwiXSB9IH1cbiAgICogYGBgXG4gICAqIFRoZSBkZXN0aW5hdGlvbiBjYW5ub3QgYmUgb3V0c2lkZSBvZiB0aGUgYXNzZXQgc3RhZ2luZyBkaXJlY3RvcnkuXG4gICAqIElmIHlvdSBhcmUgcmVjZWl2aW5nIHRoZSBlcnJvciBcIkNhbm5vdCBjb3B5IGZpbGVzIHRvIG91dHNpZGUgb2YgdGhlIGFzc2V0IHN0YWdpbmcgZGlyZWN0b3J5LlwiXG4gICAqIHlvdSBhcmUgbGlrZWx5IHVzaW5nIGAuLmAgb3IgYW4gYWJzb2x1dGUgcGF0aCBhcyBrZXkgb24gdGhlIGBjb3B5RGlyYCBtYXAuXG4gICAqIEluc3RlYWQgdXNlIG9ubHkgcmVsYXRpdmUgcGF0aHMgYW5kIGF2b2lkIGAuLmAuXG4gICAqXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBjb3B5RGlyPzogc3RyaW5nIHwgc3RyaW5nW10gfCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBzdHJpbmcgW10+O1xuXG5cbiAgLyoqXG4gICAqIEVzY2FwZSBoYXRjaCB0byBwcm92aWRlIHRoZSBidW5kbGVyIHdpdGggYSBjdXN0b20gYnVpbGQgZnVuY3Rpb24uXG4gICAqIFRoZSBmdW5jdGlvbiB3aWxsIHJlY2VpdmUgdGhlIGNvbXB1dGVkIG9wdGlvbnMgZnJvbSB0aGUgYnVuZGxlci4gSXQgY2FuIHVzZSB3aXRoIHRoZXNlIG9wdGlvbnMgYXMgaXQgd2lzaGVzLCBob3dldmVyIGBvdXRkaXJgL2BvdXRmaWxlYCBtdXN0IGJlIHJlc3BlY3RlZCB0byBpbnRlZ3JhdGUgd2l0aCBDREsuXG4gICAqIE11c3QgdGhyb3cgYSBgQnVpbGRGYWlsdXJlYCBvbiBmYWlsdXJlIHRvIGNvcnJlY3RseSBpbmZvcm0gdGhlIGJ1bmRsZXIuXG4gICAqXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqIEB0eXBlIGVzYnVpbGQuYnVpbGRTeW5jXG4gICAqIEByZXR1cm5zIGVzYnVpbGQuQnVpbGRSZXN1bHRcbiAgICogQHRocm93cyBlc2J1aWxkLkJ1aWxkRmFpbHVyZVxuICAgKiBAZGVmYXVsdCBlc2J1aWxkLmJ1aWxkU3luY1xuICAgKi9cbiAgcmVhZG9ubHkgYnVpbGRGbj86IGFueTtcblxuICAvKipcbiAgICogUGF0aCB0byB0aGUgYmluYXJ5IHVzZWQgYnkgZXNidWlsZC5cbiAgICpcbiAgICogVGhpcyBpcyB0aGUgc2FtZSBhcyBzZXR0aW5nIHRoZSBFU0JVSUxEX0JJTkFSWV9QQVRIIGVudmlyb25tZW50IHZhcmlhYmxlLlxuICAgKlxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgZXNidWlsZEJpbmFyeVBhdGg/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogTG93LWxldmVsIGNvbnN0cnVjdCB0aGF0IGNhbiBiZSB1c2VkIHdoZXJlIGBCdW5kbGluZ09wdGlvbnNgIGFyZSByZXF1aXJlZC5cbiAqIFRoaXMgY2xhc3MgZGlyZWN0bHkgaW50ZXJmYWNlcyB3aXRoIGVzYnVpbGQgYW5kIHByb3ZpZGVzIGFsbW9zdCBubyBjb25maWd1cmF0aW9uIHNhZmVndWFyZHMuXG4gKlxuICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAqL1xuZXhwb3J0IGNsYXNzIEVzYnVpbGRCdW5kbGVyIHtcbiAgLyoqXG4gICAqIEltcGxlbWVudGF0aW9uIG9mIGBJTG9jYWxCdW5kbGluZ2AgaW50ZXJmYWNlLCByZXNwb25zaWJsZSBmb3IgY2FsbGluZyBlc2J1aWxkIGZ1bmN0aW9ucy5cbiAgICpcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBsb2NhbDogSUxvY2FsQnVuZGxpbmc7XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFRoaXMgdmFsdWUgaXMgaWdub3JlZCBzaW5jZSB0aGUgYnVuZGxlciBpcyBhbHdheXMgdXNpbmcgYSBsb2NhbGx5IGluc3RhbGxlZCB2ZXJzaW9uIG9mIGVzYnVpbGQuIEhvd2V2ZXIgdGhlIHByb3BlcnR5IGlzIHJlcXVpcmVkIHRvIGNvbXBseSB3aXRoIHRoZSBgQnVuZGxpbmdPcHRpb25zYCBpbnRlcmZhY2UuXG4gICAqXG4gICAqIEBzdGFiaWxpdHkgZGVwcmVjYXRlZFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGltYWdlID0gRG9ja2VySW1hZ2UuZnJvbVJlZ2lzdHJ5KCdzY3JhdGNoJyk7XG5cbiAgLyoqXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgLyoqXG4gICAgICogQSBwYXRoIG9yIGxpc3Qgb3IgbWFwIG9mIHBhdGhzIHRvIHRoZSBlbnRyeSBwb2ludHMgb2YgeW91ciBjb2RlLlxuICAgICAqXG4gICAgICogUmVsYXRpdmUgcGF0aHMgYXJlIGJ5IGRlZmF1bHQgcmVzb2x2ZWQgZnJvbSB0aGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeS5cbiAgICAgKiBUbyBjaGFuZ2UgdGhlIHdvcmtpbmcgZGlyZWN0b3J5LCBzZWUgYGJ1aWxkT3B0aW9ucy5hYnNXb3JraW5nRGlyYC5cbiAgICAgKlxuICAgICAqIEFic29sdXRlIHBhdGhzIGNhbiBiZSB1c2VkIGlmIGZpbGVzIGFyZSBwYXJ0IG9mIHRoZSB3b3JraW5nIGRpcmVjdG9yeS5cbiAgICAgKlxuICAgICAqIEV4YW1wbGVzOlxuICAgICAqICAtIGAnc3JjL2luZGV4LnRzJ2BcbiAgICAgKiAgLSBgcmVxdWlyZS5yZXNvbHZlKCcuL2xhbWJkYScpYFxuICAgICAqICAtIGBbJ3NyYy9pbmRleC50cycsICdzcmMvdXRpbC50cyddYFxuICAgICAqICAtIGB7b25lOiAnc3JjL3R3by50cycsIHR3bzogJ3NyYy9vbmUudHMnfWBcbiAgICAgKlxuICAgICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGVudHJ5UG9pbnRzOiBFbnRyeVBvaW50cyxcblxuICAgIC8qKlxuICAgICAqIFByb3BzIHRvIGNoYW5nZSB0aGUgYmVoYXZpb3VyIG9mIHRoZSBidW5kbGVyLlxuICAgICAqXG4gICAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgcHJvcHM6IEJ1bmRsZXJQcm9wcyxcbiAgKSB7XG4gICAgaWYgKHByb3BzPy5idWlsZE9wdGlvbnM/Lm91dGZpbGUgJiYgcHJvcHM/LmJ1aWxkT3B0aW9ucz8ub3V0ZGlyKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCB1c2UgYm90aCBcIm91dGZpbGVcIiBhbmQgXCJvdXRkaXJcIicpO1xuICAgIH1cbiAgICB0aGlzLmxvY2FsID0ge1xuICAgICAgdHJ5QnVuZGxlOiAob3V0cHV0RGlyOiBzdHJpbmcsIF9vcHRpb25zOiBCdW5kbGluZ09wdGlvbnMpOiBib29sZWFuID0+IHtcblxuICAgICAgICBpZiAodGhpcy5wcm9wcy5jb3B5RGlyKSB7XG4gICAgICAgICAgY29uc3QgY29weURpciA9IHRoaXMuZ2V0Q29weURpckxpc3QodGhpcy5wcm9wcy5jb3B5RGlyKTtcblxuICAgICAgICAgIGNvcHlEaXIuZm9yRWFjaCgoW2Rlc3QsIHNyY10pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHNyY0RpciA9IHJlc29sdmUoXG4gICAgICAgICAgICAgIHRoaXMucHJvcHM/LmJ1aWxkT3B0aW9ucz8uYWJzV29ya2luZ0RpciA/PyBwcm9jZXNzLmN3ZCgpLFxuICAgICAgICAgICAgICBzcmMsXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgY29uc3QgZGVzdERpciA9IHJlc29sdmUob3V0cHV0RGlyLCBkZXN0KSA7XG5cbiAgICAgICAgICAgIGNvbnN0IGRlc3RUb091dHB1dCA9IHJlbGF0aXZlKG91dHB1dERpciwgZGVzdERpcik7XG4gICAgICAgICAgICBpZiAoZGVzdFRvT3V0cHV0LnN0YXJ0c1dpdGgoJy4uJykgfHwgaXNBYnNvbHV0ZShkZXN0VG9PdXRwdXQpKSB7XG4gICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGNvcHkgZmlsZXMgdG8gb3V0c2lkZSBvZiB0aGUgYXNzZXQgc3RhZ2luZyBkaXJlY3RvcnkuIFNlZSBkb2NzIGZvciBkZXRhaWxzLicpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBta2RpclN5bmMoZGVzdERpciwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gICAgICAgICAgICBGaWxlU3lzdGVtLmNvcHlEaXJlY3Rvcnkoc3JjRGlyLCBkZXN0RGlyKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgeyBidWlsZEZuID0gYnVpbGRTeW5jIH0gPSB0aGlzLnByb3BzO1xuICAgICAgICAgIHdyYXBXaXRoRXNidWlsZEJpbmFyeVBhdGgoYnVpbGRGbiwgdGhpcy5wcm9wcy5lc2J1aWxkQmluYXJ5UGF0aCkoe1xuICAgICAgICAgICAgZW50cnlQb2ludHMsXG4gICAgICAgICAgICAuLi4odGhpcy5wcm9wcz8uYnVpbGRPcHRpb25zIHx8IHt9KSxcbiAgICAgICAgICAgIC4uLnRoaXMuZ2V0T3V0cHV0T3B0aW9ucyhvdXRwdXREaXIsIHsgbm9ybWFsaXplLCBqb2luIH0pLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9IGNhdGNoIChfdW51c2VkKSB7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q29weURpckxpc3QoY29weURpcjogQnVuZGxlclByb3BzWydjb3B5RGlyJ10pOiBBcnJheTxbc3RyaW5nLCBzdHJpbmddPiB7XG4gICAgLy8gTm90aGluZyB0byBjb3B5XG4gICAgaWYgKCFjb3B5RGlyKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgLy8gTGlzdCBvZiBzdHJpbmdzXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoY29weURpcikpIHtcbiAgICAgIHJldHVybiBjb3B5RGlyLm1hcCgoc3JjOiBzdHJpbmcpID0+IFsnLicsIHNyY10pO1xuICAgIH1cblxuICAgIC8vIEEgbWFwXG4gICAgaWYgKFxuICAgICAgdHlwZW9mIGNvcHlEaXIgPT09ICdvYmplY3QnICYmXG4gICAgICAhQXJyYXkuaXNBcnJheShjb3B5RGlyKSAmJlxuICAgICAgY29weURpciAhPT0gbnVsbFxuICAgICkge1xuICAgICAgcmV0dXJuIE9iamVjdFxuICAgICAgICAuZW50cmllcyhjb3B5RGlyKVxuICAgICAgICAuZmxhdE1hcCgoW2Rlc3QsIHNvdXJjZXNdKSA9PiB7XG4gICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoc291cmNlcykpIHtcbiAgICAgICAgICAgIHJldHVybiBzb3VyY2VzLm1hcCgoc3JjKSA9PiBbZGVzdCwgc3JjXSkgYXMgQXJyYXk8W3N0cmluZywgc3RyaW5nXT47XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIFtbZGVzdCwgc291cmNlc11dO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyBBIHNpbmdsZSBzdHJpbmdcbiAgICByZXR1cm4gW1snLicsIGNvcHlEaXIgYXMgc3RyaW5nXV07XG4gIH1cblxuICBwcml2YXRlIGdldE91dHB1dE9wdGlvbnMoXG4gICAgY2RrT3V0cHV0RGlyOiBzdHJpbmcsXG4gICAgcGF0aDogUGljazx0eXBlb2YgcG9zaXgsICdub3JtYWxpemUnIHwgJ2pvaW4nPiA9IHBvc2l4LFxuICApOiBCdWlsZE9wdGlvbnMge1xuICAgIGlmICh0aGlzLnByb3BzPy5idWlsZE9wdGlvbnM/Lm91dGZpbGUpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG91dGRpcjogdW5kZWZpbmVkLFxuICAgICAgICBvdXRmaWxlOiBwYXRoLm5vcm1hbGl6ZShcbiAgICAgICAgICBwYXRoLmpvaW4oXG4gICAgICAgICAgICAuLi4oW2Nka091dHB1dERpciwgdGhpcy5wcm9wcz8uYnVpbGRPcHRpb25zPy5vdXRmaWxlXS5maWx0ZXIoXG4gICAgICAgICAgICAgIEJvb2xlYW4sXG4gICAgICAgICAgICApIGFzIHN0cmluZ1tdKSxcbiAgICAgICAgICApLFxuICAgICAgICApLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgb3V0ZGlyOiBwYXRoLm5vcm1hbGl6ZShcbiAgICAgICAgcGF0aC5qb2luKFxuICAgICAgICAgIC4uLihbY2RrT3V0cHV0RGlyLCB0aGlzLnByb3BzPy5idWlsZE9wdGlvbnM/Lm91dGRpcl0uZmlsdGVyKFxuICAgICAgICAgICAgQm9vbGVhbixcbiAgICAgICAgICApIGFzIHN0cmluZ1tdKSxcbiAgICAgICAgKSxcbiAgICAgICksXG4gICAgICBvdXRmaWxlOiB1bmRlZmluZWQsXG4gICAgfTtcbiAgfVxufVxuIl19
129
+ EsbuildBundler[_a] = { fqn: "@mrgrain/cdk-esbuild.EsbuildBundler", version: "3.10.0" };
130
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9idW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsMkJBQStCO0FBQy9CLCtCQUE2RTtBQUM3RSw2Q0FLcUI7QUFFckIsdURBQWdHO0FBQ2hHLG1DQUF1QztBQThHdkM7Ozs7O0dBS0c7QUFDSCxNQUFhLGNBQWM7SUFlekI7O09BRUc7SUFDSDtJQUNFOzs7Ozs7Ozs7Ozs7Ozs7T0FlRztJQUNhLFdBQXdCO0lBRXhDOzs7O09BSUc7SUFDYSxLQUFtQjtRQVBuQixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQU94QixVQUFLLEdBQUwsS0FBSyxDQUFjO1FBbENyQzs7OztXQUlHO1FBQ2EsVUFBSyxHQUFHLHlCQUFXLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBK0IxRCxJQUFJLEtBQUssRUFBRSxZQUFZLEVBQUUsT0FBTyxJQUFJLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFO1lBQy9ELE1BQU0sSUFBSSxLQUFLLENBQUMsd0NBQXdDLENBQUMsQ0FBQztTQUMzRDtRQUNELElBQUksQ0FBQyxLQUFLLEdBQUc7WUFDWCxTQUFTLEVBQUUsQ0FBQyxTQUFpQixFQUFFLFFBQXlCLEVBQVcsRUFBRTtnQkFFbkUsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRTtvQkFDdEIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO29CQUV4RCxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRTt3QkFDOUIsTUFBTSxNQUFNLEdBQUcsY0FBTyxDQUNwQixJQUFJLENBQUMsS0FBSyxFQUFFLFlBQVksRUFBRSxhQUFhLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUN4RCxHQUFHLENBQ0osQ0FBQzt3QkFDRixN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QWlELFlBQUs7UUFFdEQsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUU7WUFDckMsT0FBTztnQkFDTCxNQUFNLEVBQUUsU0FBUztnQkFDakIsT0FBTyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQ3JCLElBQUksQ0FBQyxJQUFJLENBQ1AsR0FBSSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLFlBQVksRUFBRSxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQzFELE9BQU8sQ0FDSyxDQUNmLENBQ0Y7YUFDRixDQUFDO1NBQ0g7UUFFRCxPQUFPO1lBQ0wsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQ3BCLElBQUksQ0FBQyxJQUFJLENBQ1AsR0FBSSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQ3pELE9BQU8sQ0FDSyxDQUNmLENBQ0Y7WUFDRCxPQUFPLEVBQUUsU0FBUztTQUNuQixDQUFDO0lBQ0osQ0FBQzs7QUFwSkgsd0NBcUpDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbWtkaXJTeW5jIH0gZnJvbSAnZnMnO1xuaW1wb3J0IHsgam9pbiwgbm9ybWFsaXplLCByZWxhdGl2ZSwgcmVzb2x2ZSwgcG9zaXgsIGlzQWJzb2x1dGUgfSBmcm9tICdwYXRoJztcbmltcG9ydCB7XG4gIEJ1bmRsaW5nT3B0aW9ucyxcbiAgRG9ja2VySW1hZ2UsXG4gIEZpbGVTeXN0ZW0sXG4gIElMb2NhbEJ1bmRsaW5nLFxufSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBCdWlsZE9wdGlvbnMgfSBmcm9tICcuL2VzYnVpbGQtdHlwZXMnO1xuaW1wb3J0IHsgZGV0ZWN0RXNidWlsZE1vZHVsZVBhdGgsIGVzYnVpbGQsIHdyYXBXaXRoRXNidWlsZEJpbmFyeVBhdGggfSBmcm9tICcuL2VzYnVpbGQtd3JhcHBlcic7XG5pbXBvcnQgeyBlcnJvckhhc0NvZGUgfSBmcm9tICcuL3V0aWxzJztcblxuLyoqXG4gKiBBIHBhdGggb3IgbGlzdCBvciBtYXAgb2YgcGF0aHMgdG8gdGhlIGVudHJ5IHBvaW50cyBvZiB5b3VyIGNvZGUuXG4gKlxuICogUmVsYXRpdmUgcGF0aHMgYXJlIGJ5IGRlZmF1bHQgcmVzb2x2ZWQgZnJvbSB0aGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeS5cbiAqIFRvIGNoYW5nZSB0aGUgd29ya2luZyBkaXJlY3RvcnksIHNlZSBgYnVpbGRPcHRpb25zLmFic1dvcmtpbmdEaXJgLlxuICpcbiAqIEFic29sdXRlIHBhdGhzIGNhbiBiZSB1c2VkIGlmIGZpbGVzIGFyZSBwYXJ0IG9mIHRoZSB3b3JraW5nIGRpcmVjdG9yeS5cbiAqXG4gKiBFeGFtcGxlczpcbiAqICAtIGAnc3JjL2luZGV4LnRzJ2BcbiAqICAtIGByZXF1aXJlLnJlc29sdmUoJy4vbGFtYmRhJylgXG4gKiAgLSBgWydzcmMvaW5kZXgudHMnLCAnc3JjL3V0aWwudHMnXWBcbiAqICAtIGB7b25lOiAnc3JjL3R3by50cycsIHR3bzogJ3NyYy9vbmUudHMnfWBcbiAqXG4gKiBAc3RhYmlsaXR5IHN0YWJsZVxuICovXG5leHBvcnQgdHlwZSBFbnRyeVBvaW50cyA9IHN0cmluZyB8IHN0cmluZ1tdIHwgUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcblxuLyoqXG4gKiBAc3RhYmlsaXR5IHN0YWJsZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJ1bmRsZXJQcm9wcyB7XG4gIC8qKlxuICAgKiBCdWlsZCBvcHRpb25zIHBhc3NlZCBvbiB0byBlc2J1aWxkLiBQbGVhc2UgcmVmZXIgdG8gdGhlIGVzYnVpbGQgQnVpbGQgQVBJIGRvY3MgZm9yIGRldGFpbHMuXG4gICAqXG4gICAqICogYGJ1aWxkT3B0aW9ucy5vdXRkaXI6IHN0cmluZ2BcbiAgICogVGhlIGFjdHVhbCBwYXRoIGZvciB0aGUgb3V0cHV0IGRpcmVjdG9yeSBpcyBkZWZpbmVkIGJ5IENESy4gSG93ZXZlciBzZXR0aW5nIHRoaXMgb3B0aW9uIGFsbG93cyB0byB3cml0ZSBmaWxlcyBpbnRvIGEgc3ViZGlyZWN0b3J5LiBcXFxuICAgKiBGb3IgZXhhbXBsZSBgeyBvdXRkaXI6ICdqcycgfWAgd2lsbCBjcmVhdGUgYW4gYXNzZXQgd2l0aCBhIHNpbmdsZSBkaXJlY3RvcnkgY2FsbGVkIGBqc2AsIHdoaWNoIGNvbnRhaW5zIGFsbCBidWlsdCBmaWxlcy4gVGhpcyBhcHByb2FjaCBjYW4gYmUgdXNlZnVsIGZvciBzdGF0aWMgd2Vic2l0ZSBkZXBsb3ltZW50cywgd2hlcmUgSmF2YVNjcmlwdCBjb2RlIHNob3VsZCBiZSBwbGFjZWQgaW50byBhIHN1YmRpcmVjdG9yeS4gXFxcbiAgICogKkNhbm5vdCBiZSB1c2VkIHRvZ2V0aGVyIHdpdGggYG91dGZpbGVgKi5cbiAgICogKiBgYnVpbGRPcHRpb25zLm91dGZpbGU6IHN0cmluZ2BcbiAgICogUmVsYXRpdmUgcGF0aCB0byBhIGZpbGUgaW5zaWRlIHRoZSBDREsgYXNzZXQgb3V0cHV0IGRpcmVjdG9yeS5cbiAgICogRm9yIGV4YW1wbGUgYHsgb3V0ZmlsZTogJ2pzL2luZGV4LmpzJyB9YCB3aWxsIGNyZWF0ZSBhbiBhc3NldCB3aXRoIGEgc2luZ2xlIGRpcmVjdG9yeSBjYWxsZWQgYGpzYCwgd2hpY2ggY29udGFpbnMgYSBzaW5nbGUgZmlsZSBgaW5kZXguanNgLiBUaGlzIGNhbiBiZSB1c2VmdWwgdG8gcmVuYW1lIHRoZSBlbnRyeSBwb2ludC4gXFxcbiAgICogKkNhbm5vdCBiZSB1c2VkIHdpdGggbXVsdGlwbGUgZW50cnlQb2ludHMgb3IgdG9nZXRoZXIgd2l0aCBgb3V0ZGlyYC4qXG4gICAqICogYGJ1aWxkT3B0aW9ucy5hYnNXb3JraW5nRGlyOiBzdHJpbmdgXG4gICAqIEFic29sdXRlIHBhdGggdG8gdGhlIFtlc2J1aWxkIHdvcmtpbmcgZGlyZWN0b3J5XShodHRwczovL2VzYnVpbGQuZ2l0aHViLmlvL2FwaS8jd29ya2luZy1kaXJlY3RvcnkpIGFuZCBkZWZhdWx0cyB0byB0aGUgW2N1cnJlbnQgd29ya2luZyBkaXJlY3RvcnldKGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1dvcmtpbmdfZGlyZWN0b3J5KS4gXFxcbiAgICogSWYgcGF0aHMgY2Fubm90IGJlIGZvdW5kLCBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQgaXMgdG8gbG9vayBhdCB0aGUgY29uY2F0ZW5hdGlvbiBvZiBgYWJzV29ya2luZ0RpciArIGVudHJ5UG9pbnRgLiBJdCBtdXN0IGFsd2F5cyBiZSBhIHZhbGlkIGFic29sdXRlIHBhdGggcG9pbnRpbmcgdG8gdGhlIGVudHJ5IHBvaW50LiBXaGVuIG5lZWRlZCwgdGhlIHByb2JhYmx5IGVhc2llc3Qgd2F5IHRvIHNldCBhYnNXb3JraW5nRGlyIGlzIHRvIHVzZSBhIGNvbWJpbmF0aW9uIG9mIGByZXNvbHZlYCBhbmQgYF9fZGlybmFtZWAgKHNlZSBcIkxpYnJhcnkgYXV0aG9yc1wiIHNlY3Rpb24gaW4gdGhlIGRvY3VtZW50YXRpb24pLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZXNidWlsZC5naXRodWIuaW8vYXBpLyNidWlsZC1hcGlcbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGJ1aWxkT3B0aW9ucz86IEJ1aWxkT3B0aW9ucztcblxuICAvKipcbiAgICogQ29weSBhZGRpdGlvbmFsIGZpbGVzIHRvIHRoZSBjb2RlIFthc3NldCBzdGFnaW5nIGRpcmVjdG9yeV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Nkay9hcGkvdjIvZG9jcy9hd3MtY2RrLWxpYi5Bc3NldFN0YWdpbmcuaHRtbCNhYnNvbHV0ZXN0YWdlZHBhdGgpLCBiZWZvcmUgdGhlIGJ1aWxkIHJ1bnMuXG4gICAqIEZpbGVzIGNvcGllZCBsaWtlIHRoaXMgd2lsbCBiZSBvdmVyd3JpdHRlbiBieSBlc2J1aWxkIGlmIHRoZXkgc2hhcmUgdGhlIHNhbWUgbmFtZSBhcyBhbnkgb2YgdGhlIG91dHB1dHMuXG4gICAqXG4gICAqICogV2hlbiBwcm92aWRlZCB3aXRoIGEgYHN0cmluZ2Agb3IgYGFycmF5YCwgYWxsIGZpbGVzIGFyZSBjb3BpZWQgdG8gdGhlIHJvb3Qgb2YgYXNzZXQgc3RhZ2luZyBkaXJlY3RvcnkuXG4gICAqICogV2hlbiBnaXZlbiBhIGBtYXBgLCB0aGUga2V5IGluZGljYXRlcyB0aGUgZGVzdGluYXRpb24gcmVsYXRpdmUgdG8gdGhlIGFzc2V0IHN0YWdpbmcgZGlyZWN0b3J5IGFuZCB0aGUgdmFsdWUgaXMgYSBsaXN0IG9mIGFsbCBzb3VyY2VzIHRvIGJlIGNvcGllZC5cbiAgICpcbiAgICogVGhlcmVmb3JlIHRoZSBmb2xsb3dpbmcgdmFsdWVzIGZvciBgY29weURpcmAgYXJlIGFsbCBlcXVpdmFsZW50OlxuICAgKiBgYGB0c1xuICAgKiB7IGNvcHlEaXI6IFwicGF0aC90by9zb3VyY2VcIiB9XG4gICAqIHsgY29weURpcjogW1wicGF0aC90by9zb3VyY2VcIl0gfVxuICAgKiB7IGNvcHlEaXI6IHsgXCIuXCI6IFwicGF0aC90by9zb3VyY2VcIiB9IH1cbiAgICogeyBjb3B5RGlyOiB7IFwiLlwiOiBbXCJwYXRoL3RvL3NvdXJjZVwiXSB9IH1cbiAgICogYGBgXG4gICAqIFRoZSBkZXN0aW5hdGlvbiBjYW5ub3QgYmUgb3V0c2lkZSBvZiB0aGUgYXNzZXQgc3RhZ2luZyBkaXJlY3RvcnkuXG4gICAqIElmIHlvdSBhcmUgcmVjZWl2aW5nIHRoZSBlcnJvciBcIkNhbm5vdCBjb3B5IGZpbGVzIHRvIG91dHNpZGUgb2YgdGhlIGFzc2V0IHN0YWdpbmcgZGlyZWN0b3J5LlwiXG4gICAqIHlvdSBhcmUgbGlrZWx5IHVzaW5nIGAuLmAgb3IgYW4gYWJzb2x1dGUgcGF0aCBhcyBrZXkgb24gdGhlIGBjb3B5RGlyYCBtYXAuXG4gICAqIEluc3RlYWQgdXNlIG9ubHkgcmVsYXRpdmUgcGF0aHMgYW5kIGF2b2lkIGAuLmAuXG4gICAqXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBjb3B5RGlyPzogc3RyaW5nIHwgc3RyaW5nW10gfCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBzdHJpbmdbXT47XG5cblxuICAvKipcbiAgICogRXNjYXBlIGhhdGNoIHRvIHByb3ZpZGUgdGhlIGJ1bmRsZXIgd2l0aCBhIGN1c3RvbSBidWlsZCBmdW5jdGlvbi5cbiAgICogVGhlIGZ1bmN0aW9uIHdpbGwgcmVjZWl2ZSB0aGUgY29tcHV0ZWQgb3B0aW9ucyBmcm9tIHRoZSBidW5kbGVyLiBJdCBjYW4gdXNlIHdpdGggdGhlc2Ugb3B0aW9ucyBhcyBpdCB3aXNoZXMsIGhvd2V2ZXIgYG91dGRpcmAvYG91dGZpbGVgIG11c3QgYmUgcmVzcGVjdGVkIHRvIGludGVncmF0ZSB3aXRoIENESy5cbiAgICogTXVzdCB0aHJvdyBhIGBCdWlsZEZhaWx1cmVgIG9uIGZhaWx1cmUgdG8gY29ycmVjdGx5IGluZm9ybSB0aGUgYnVuZGxlci5cbiAgICpcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICogQHR5cGUgZXNidWlsZC5idWlsZFN5bmNcbiAgICogQHJldHVybnMgZXNidWlsZC5CdWlsZFJlc3VsdFxuICAgKiBAdGhyb3dzIGVzYnVpbGQuQnVpbGRGYWlsdXJlXG4gICAqIEBkZWZhdWx0IGBlc2J1aWxkLmJ1aWxkU3luY2BcbiAgICovXG4gIHJlYWRvbmx5IGJ1aWxkRm4/OiBhbnk7XG5cbiAgLyoqXG4gICAqIFBhdGggdG8gdGhlIGJpbmFyeSB1c2VkIGJ5IGVzYnVpbGQuXG4gICAqXG4gICAqIFRoaXMgaXMgdGhlIHNhbWUgYXMgc2V0dGluZyB0aGUgRVNCVUlMRF9CSU5BUllfUEFUSCBlbnZpcm9ubWVudCB2YXJpYWJsZS5cbiAgICpcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IGVzYnVpbGRCaW5hcnlQYXRoPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQYXRoIHVzZWQgdG8gaW1wb3J0IHRoZSBlc2J1aWxkIG1vZHVsZS5cbiAgICpcbiAgICogUHl0aG9uLCBHbywgLk5FVCBhbmQgSmF2YSBzaG91bGQgdXNlIGFuIGFic29sdXRlIHBhdGgsIGJlY2F1c2UgdGhlIGpzaWkgZXhlY3V0aW9uIGVudmlyb25tZW50IHVzZXMgYSB0ZW1wb3Jhcnkgd29ya2luZyBkaXJlY3RvcnkuXG4gICAqXG4gICAqIElmIG5vdCBzZXQsIHRoZSBtb2R1bGUgcGF0aCB3aWxsIGJlIGRldGVybWluZWQgaW4gdGhlIGZvbGxvd2luZyBvcmRlcjpcbiAgICpcbiAgICogLSBVc2UgYSBwYXRoIGZyb20gdGhlIGBDREtfRVNCVUlMRF9NT0RVTEVfUEFUSGAgZW52aXJvbm1lbnQgdmFyaWFibGVcbiAgICogLSBJbiBUeXBlU2NyaXB0LCBmYWxsYmFjayB0byB0aGUgZGVmYXVsdCBOb2RlLmpzIHBhY2thZ2UgcmVzb2x1dGlvbiBtZWNoYW5pc21cbiAgICogLSBBbGwgb3RoZXIgbGFuZ3VhZ2VzIChQeXRob24sIEdvLCAuTkVULCBKYXZhKSB1c2UgYW4gYXV0b21hdGljIFwiYmVzdCBlZmZvcnRcIiByZXNvbHV0aW9uIG1lY2hhbmlzbS4gXFxcbiAgICogICBUaGUgZXhhY3QgYWxnb3JpdGhtIG9mIHRoaXMgbWVjaGFuaXNtIGlzIGNvbnNpZGVyZWQgYW4gaW1wbGVtZW50YXRpb24gZGV0YWlsIGFuZCBzaG91bGQgbm90IGJlIHJlbGllZCBvbi5cbiAgICogICBJZiBgZXNidWlsZGAgY2Fubm90IGJlIGZvdW5kLCBpdCBtaWdodCBiZSBpbnN0YWxsZWQgZHluYW1pY2FsbHkgdG8gYSB0ZW1wb3JhcnkgbG9jYXRpb24uXG4gICAqICAgVG8gb3B0LW91dCBvZiB0aGlzIGJlaGF2aW9yLCBzZXQgZWl0aGVyIGBlc2J1aWxkTW9kdWxlUGF0aGAgb3IgYENES19FU0JVSUxEX01PRFVMRV9QQVRIYCBlbnYgdmFyaWFibGUuXG4gICAqXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqIEBkZWZhdWx0IC0gYENES19FU0JVSUxEX01PRFVMRV9QQVRIYCBvciBwYWNrYWdlIHJlc29sdXRpb24gKHNlZSBhYm92ZSlcbiAgICovXG4gIHJlYWRvbmx5IGVzYnVpbGRNb2R1bGVQYXRoPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIExvdy1sZXZlbCBjb25zdHJ1Y3QgdGhhdCBjYW4gYmUgdXNlZCB3aGVyZSBgQnVuZGxpbmdPcHRpb25zYCBhcmUgcmVxdWlyZWQuXG4gKiBUaGlzIGNsYXNzIGRpcmVjdGx5IGludGVyZmFjZXMgd2l0aCBlc2J1aWxkIGFuZCBwcm92aWRlcyBhbG1vc3Qgbm8gY29uZmlndXJhdGlvbiBzYWZlZ3VhcmRzLlxuICpcbiAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gKi9cbmV4cG9ydCBjbGFzcyBFc2J1aWxkQnVuZGxlciB7XG4gIC8qKlxuICAgKiBJbXBsZW1lbnRhdGlvbiBvZiBgSUxvY2FsQnVuZGxpbmdgIGludGVyZmFjZSwgcmVzcG9uc2libGUgZm9yIGNhbGxpbmcgZXNidWlsZCBmdW5jdGlvbnMuXG4gICAqXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgbG9jYWw6IElMb2NhbEJ1bmRsaW5nO1xuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBUaGlzIHZhbHVlIGlzIGlnbm9yZWQgc2luY2UgdGhlIGJ1bmRsZXIgaXMgYWx3YXlzIHVzaW5nIGEgbG9jYWxseSBpbnN0YWxsZWQgdmVyc2lvbiBvZiBlc2J1aWxkLiBIb3dldmVyIHRoZSBwcm9wZXJ0eSBpcyByZXF1aXJlZCB0byBjb21wbHkgd2l0aCB0aGUgYEJ1bmRsaW5nT3B0aW9uc2AgaW50ZXJmYWNlLlxuICAgKlxuICAgKiBAc3RhYmlsaXR5IGRlcHJlY2F0ZWRcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBpbWFnZSA9IERvY2tlckltYWdlLmZyb21SZWdpc3RyeSgnc2NyYXRjaCcpO1xuXG4gIC8qKlxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIC8qKlxuICAgICAqIEEgcGF0aCBvciBsaXN0IG9yIG1hcCBvZiBwYXRocyB0byB0aGUgZW50cnkgcG9pbnRzIG9mIHlvdXIgY29kZS5cbiAgICAgKlxuICAgICAqIFJlbGF0aXZlIHBhdGhzIGFyZSBieSBkZWZhdWx0IHJlc29sdmVkIGZyb20gdGhlIGN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnkuXG4gICAgICogVG8gY2hhbmdlIHRoZSB3b3JraW5nIGRpcmVjdG9yeSwgc2VlIGBidWlsZE9wdGlvbnMuYWJzV29ya2luZ0RpcmAuXG4gICAgICpcbiAgICAgKiBBYnNvbHV0ZSBwYXRocyBjYW4gYmUgdXNlZCBpZiBmaWxlcyBhcmUgcGFydCBvZiB0aGUgd29ya2luZyBkaXJlY3RvcnkuXG4gICAgICpcbiAgICAgKiBFeGFtcGxlczpcbiAgICAgKiAgLSBgJ3NyYy9pbmRleC50cydgXG4gICAgICogIC0gYHJlcXVpcmUucmVzb2x2ZSgnLi9sYW1iZGEnKWBcbiAgICAgKiAgLSBgWydzcmMvaW5kZXgudHMnLCAnc3JjL3V0aWwudHMnXWBcbiAgICAgKiAgLSBge29uZTogJ3NyYy90d28udHMnLCB0d286ICdzcmMvb25lLnRzJ31gXG4gICAgICpcbiAgICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBlbnRyeVBvaW50czogRW50cnlQb2ludHMsXG5cbiAgICAvKipcbiAgICAgKiBQcm9wcyB0byBjaGFuZ2UgdGhlIGJlaGF2aW91ciBvZiB0aGUgYnVuZGxlci5cbiAgICAgKlxuICAgICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IHByb3BzOiBCdW5kbGVyUHJvcHMsXG4gICkge1xuICAgIGlmIChwcm9wcz8uYnVpbGRPcHRpb25zPy5vdXRmaWxlICYmIHByb3BzPy5idWlsZE9wdGlvbnM/Lm91dGRpcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgdXNlIGJvdGggXCJvdXRmaWxlXCIgYW5kIFwib3V0ZGlyXCInKTtcbiAgICB9XG4gICAgdGhpcy5sb2NhbCA9IHtcbiAgICAgIHRyeUJ1bmRsZTogKG91dHB1dERpcjogc3RyaW5nLCBfb3B0aW9uczogQnVuZGxpbmdPcHRpb25zKTogYm9vbGVhbiA9PiB7XG5cbiAgICAgICAgaWYgKHRoaXMucHJvcHMuY29weURpcikge1xuICAgICAgICAgIGNvbnN0IGNvcHlEaXIgPSB0aGlzLmdldENvcHlEaXJMaXN0KHRoaXMucHJvcHMuY29weURpcik7XG5cbiAgICAgICAgICBjb3B5RGlyLmZvckVhY2goKFtkZXN0LCBzcmNdKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzcmNEaXIgPSByZXNvbHZlKFxuICAgICAgICAgICAgICB0aGlzLnByb3BzPy5idWlsZE9wdGlvbnM/LmFic1dvcmtpbmdEaXIgPz8gcHJvY2Vzcy5jd2QoKSxcbiAgICAgICAgICAgICAgc3JjLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGNvbnN0IGRlc3REaXIgPSByZXNvbHZlKG91dHB1dERpciwgZGVzdCk7XG5cbiAgICAgICAgICAgIGNvbnN0IGRlc3RUb091dHB1dCA9IHJlbGF0aXZlKG91dHB1dERpciwgZGVzdERpcik7XG4gICAgICAgICAgICBpZiAoZGVzdFRvT3V0cHV0LnN0YXJ0c1dpdGgoJy4uJykgfHwgaXNBYnNvbHV0ZShkZXN0VG9PdXRwdXQpKSB7XG4gICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGNvcHkgZmlsZXMgdG8gb3V0c2lkZSBvZiB0aGUgYXNzZXQgc3RhZ2luZyBkaXJlY3RvcnkuIFNlZSBkb2NzIGZvciBkZXRhaWxzLicpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBta2RpclN5bmMoZGVzdERpciwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gICAgICAgICAgICBGaWxlU3lzdGVtLmNvcHlEaXJlY3Rvcnkoc3JjRGlyLCBkZXN0RGlyKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgeyBidWlsZEZuID0gZXNidWlsZChkZXRlY3RFc2J1aWxkTW9kdWxlUGF0aChwcm9wcy5lc2J1aWxkTW9kdWxlUGF0aCkpLmJ1aWxkU3luYyB9ID0gdGhpcy5wcm9wcztcbiAgICAgICAgICB3cmFwV2l0aEVzYnVpbGRCaW5hcnlQYXRoKGJ1aWxkRm4sIHRoaXMucHJvcHMuZXNidWlsZEJpbmFyeVBhdGgpKHtcbiAgICAgICAgICAgIGVudHJ5UG9pbnRzLFxuICAgICAgICAgICAgY29sb3I6IHByb2Nlc3MuZW52Lk5PX0NPTE9SID8gQm9vbGVhbihwcm9jZXNzLmVudi5OT19DT0xPUikgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAuLi4odGhpcy5wcm9wcz8uYnVpbGRPcHRpb25zIHx8IHt9KSxcbiAgICAgICAgICAgIC4uLnRoaXMuZ2V0T3V0cHV0T3B0aW9ucyhvdXRwdXREaXIsIHsgbm9ybWFsaXplLCBqb2luIH0pLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgIGlmIChlcnJvckhhc0NvZGUoZXJyb3IsICdNT0RVTEVfTk9UX0ZPVU5EJykpIHtcbiAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb3B5RGlyTGlzdChjb3B5RGlyOiBCdW5kbGVyUHJvcHNbJ2NvcHlEaXInXSk6IEFycmF5PFtzdHJpbmcsIHN0cmluZ10+IHtcbiAgICAvLyBOb3RoaW5nIHRvIGNvcHlcbiAgICBpZiAoIWNvcHlEaXIpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICAvLyBMaXN0IG9mIHN0cmluZ3NcbiAgICBpZiAoQXJyYXkuaXNBcnJheShjb3B5RGlyKSkge1xuICAgICAgcmV0dXJuIGNvcHlEaXIubWFwKChzcmM6IHN0cmluZykgPT4gWycuJywgc3JjXSk7XG4gICAgfVxuXG4gICAgLy8gQSBtYXBcbiAgICBpZiAoXG4gICAgICB0eXBlb2YgY29weURpciA9PT0gJ29iamVjdCcgJiZcbiAgICAgICFBcnJheS5pc0FycmF5KGNvcHlEaXIpICYmXG4gICAgICBjb3B5RGlyICE9PSBudWxsXG4gICAgKSB7XG4gICAgICByZXR1cm4gT2JqZWN0XG4gICAgICAgIC5lbnRyaWVzKGNvcHlEaXIpXG4gICAgICAgIC5mbGF0TWFwKChbZGVzdCwgc291cmNlc10pID0+IHtcbiAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShzb3VyY2VzKSkge1xuICAgICAgICAgICAgcmV0dXJuIHNvdXJjZXMubWFwKChzcmMpID0+IFtkZXN0LCBzcmNdKSBhcyBBcnJheTxbc3RyaW5nLCBzdHJpbmddPjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gW1tkZXN0LCBzb3VyY2VzXV07XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIEEgc2luZ2xlIHN0cmluZ1xuICAgIHJldHVybiBbWycuJywgY29weURpciBhcyBzdHJpbmddXTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0T3V0cHV0T3B0aW9ucyhcbiAgICBjZGtPdXRwdXREaXI6IHN0cmluZyxcbiAgICBwYXRoOiBQaWNrPHR5cGVvZiBwb3NpeCwgJ25vcm1hbGl6ZScgfCAnam9pbic+ID0gcG9zaXgsXG4gICk6IEJ1aWxkT3B0aW9ucyB7XG4gICAgaWYgKHRoaXMucHJvcHM/LmJ1aWxkT3B0aW9ucz8ub3V0ZmlsZSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgb3V0ZGlyOiB1bmRlZmluZWQsXG4gICAgICAgIG91dGZpbGU6IHBhdGgubm9ybWFsaXplKFxuICAgICAgICAgIHBhdGguam9pbihcbiAgICAgICAgICAgIC4uLihbY2RrT3V0cHV0RGlyLCB0aGlzLnByb3BzPy5idWlsZE9wdGlvbnM/Lm91dGZpbGVdLmZpbHRlcihcbiAgICAgICAgICAgICAgQm9vbGVhbixcbiAgICAgICAgICAgICkgYXMgc3RyaW5nW10pLFxuICAgICAgICAgICksXG4gICAgICAgICksXG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBvdXRkaXI6IHBhdGgubm9ybWFsaXplKFxuICAgICAgICBwYXRoLmpvaW4oXG4gICAgICAgICAgLi4uKFtjZGtPdXRwdXREaXIsIHRoaXMucHJvcHM/LmJ1aWxkT3B0aW9ucz8ub3V0ZGlyXS5maWx0ZXIoXG4gICAgICAgICAgICBCb29sZWFuLFxuICAgICAgICAgICkgYXMgc3RyaW5nW10pLFxuICAgICAgICApLFxuICAgICAgKSxcbiAgICAgIG91dGZpbGU6IHVuZGVmaW5lZCxcbiAgICB9O1xuICB9XG59XG4iXX0=
package/lib/code.js CHANGED
@@ -108,7 +108,7 @@ class EsbuildCode extends aws_lambda_1.Code {
108
108
  }
109
109
  exports.EsbuildCode = EsbuildCode;
110
110
  _a = JSII_RTTI_SYMBOL_1;
111
- EsbuildCode[_a] = { fqn: "@mrgrain/cdk-esbuild.EsbuildCode", version: "3.8.0" };
111
+ EsbuildCode[_a] = { fqn: "@mrgrain/cdk-esbuild.EsbuildCode", version: "3.10.0" };
112
112
  /**
113
113
  * Represents the deployed JavaScript Code.
114
114
  *
@@ -152,7 +152,7 @@ class JavaScriptCode extends EsbuildCode {
152
152
  }
153
153
  exports.JavaScriptCode = JavaScriptCode;
154
154
  _b = JSII_RTTI_SYMBOL_1;
155
- JavaScriptCode[_b] = { fqn: "@mrgrain/cdk-esbuild.JavaScriptCode", version: "3.8.0" };
155
+ JavaScriptCode[_b] = { fqn: "@mrgrain/cdk-esbuild.JavaScriptCode", version: "3.10.0" };
156
156
  /**
157
157
  * Represents the deployed TypeScript Code.
158
158
  *
@@ -196,5 +196,5 @@ class TypeScriptCode extends EsbuildCode {
196
196
  }
197
197
  exports.TypeScriptCode = TypeScriptCode;
198
198
  _c = JSII_RTTI_SYMBOL_1;
199
- TypeScriptCode[_c] = { fqn: "@mrgrain/cdk-esbuild.TypeScriptCode", version: "3.8.0" };
199
+ TypeScriptCode[_c] = { fqn: "@mrgrain/cdk-esbuild.TypeScriptCode", version: "3.10.0" };
200
200
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jb2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkNBQWlEO0FBQ2pELHVEQUErRTtBQUUvRSxtQ0FNaUI7QUFJakIsU0FBUyxnQkFBZ0I7SUFDdkIsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQzNELENBQUM7QUFHNkQsQ0FBQztBQUNELENBQUM7QUFFL0Q7Ozs7OztHQU1HO0FBQ0gsTUFBYSxXQUVYLFNBQVEsaUJBQUk7SUFvQlo7SUFDRTs7Ozs7Ozs7Ozs7Ozs7O09BZUc7SUFDTSxXQUF3QjtJQUVqQzs7Ozs7Ozs7O09BU0c7SUFDSCxLQUFZO1FBRVosS0FBSyxFQUFFLENBQUM7UUFkQyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQXhCbkM7Ozs7V0FJRztRQUNJLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFtQy9CLE1BQU0sY0FBYyxHQUEwQjtZQUM1QyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLFFBQVE7Z0JBQ2pDLEtBQUssQ0FBQyxZQUFZLEVBQUUsUUFBUSxLQUFLLE1BQU07Z0JBQ3JDLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sR0FBRyxnQkFBZ0IsRUFBRSxFQUFFO2dCQUMzRCxDQUFDLENBQUMsRUFBRSxDQUFDO1NBQ1IsQ0FBQztRQUVGLElBQUksQ0FBQyxLQUFLLEdBQUc7WUFDWCxHQUFHLEtBQUs7WUFDUixXQUFXO1lBQ1gsWUFBWSxFQUFFO2dCQUNaLEdBQUcsY0FBYztnQkFDakIsR0FBRyxLQUFLLENBQUMsWUFBWTthQUN0QjtTQUNGLENBQUM7SUFDSixDQUFDO0lBbkVTLFFBQVEsQ0FBQyxLQUFnQjtRQUNqQyxPQUFPLElBQUksb0JBQVksQ0FDckIsS0FBSyxFQUNMLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUNyQixJQUFJLENBQUMsS0FBSyxDQUNYLENBQUM7SUFDSixDQUFDO0lBK0RELElBQUksQ0FBQyxLQUFnQjtRQUNuQixxRkFBcUY7UUFDckYsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDZixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDbkM7YUFBTSxJQUFJLG1CQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxtQkFBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNuRCxNQUFNLElBQUksS0FBSyxDQUNiLG1EQUNFLG1CQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUN2QixLQUFLLEdBQUcsOENBQThDLENBQ3ZELENBQUM7U0FDSDtRQUVELE9BQU87WUFDTCxVQUFVLEVBQUU7Z0JBQ1YsVUFBVSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWTtnQkFDbkMsU0FBUyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVzthQUNsQztTQUNGLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILGNBQWMsQ0FBQyxRQUFxQixFQUFFLE9BQTZCO1FBQ2pFLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2YsTUFBTSxJQUFJLEtBQUssQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFDO1NBQ2pFO1FBQ0QsTUFBTSxnQkFBZ0IsR0FBRyxPQUFPLEVBQUUsZ0JBQWdCLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7UUFDNUUsNkNBQTZDO1FBQzdDLElBQUksQ0FBQyxLQUFLLENBQUMsbUJBQW1CLENBQUMsUUFBUSxFQUFFLGdCQUFnQixDQUFDLENBQUM7SUFDN0QsQ0FBQzs7QUEzR0gsa0NBNEdDOzs7QUFFRDs7OztHQUlHO0FBQ0gsTUFBYSxjQUFlLFNBQVEsV0FBZ0M7SUFTbEU7SUFDRTs7Ozs7Ozs7Ozs7Ozs7O09BZUc7SUFDSCxXQUF3QjtJQUV4Qjs7Ozs7Ozs7O09BU0c7SUFDSCxRQUE2QixFQUFFO1FBRS9CLEtBQUssQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQXhDUyxRQUFRLENBQUMsS0FBZ0I7UUFDakMsT0FBTyxJQUFJLHVCQUFPLENBQ2hCLEtBQUssRUFDTCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFDckIsSUFBSSxDQUFDLEtBQUssQ0FDWCxDQUFDO0lBQ0osQ0FBQzs7QUFQSCx3Q0EwQ0M7OztBQUVEOzs7O0dBSUc7QUFDSCxNQUFhLGNBQWUsU0FBUSxXQUFnQztJQVNsRTtJQUNFOzs7Ozs7Ozs7Ozs7Ozs7T0FlRztJQUNILFdBQXdCO0lBRXhCOzs7Ozs7Ozs7T0FTRztJQUNILFFBQTZCLEVBQUU7UUFFL0IsS0FBSyxDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBeENTLFFBQVEsQ0FBQyxLQUFnQjtRQUNqQyxPQUFPLElBQUksdUJBQU8sQ0FDaEIsS0FBSyxFQUNMLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUNyQixJQUFJLENBQUMsS0FBSyxDQUNYLENBQUM7SUFDSixDQUFDOztBQVBILHdDQTBDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENmblJlc291cmNlLCBTdGFjayB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IFJlc291cmNlQmluZE9wdGlvbnMsIENvZGUsIENvZGVDb25maWcgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHtcbiAgRXNidWlsZEFzc2V0LFxuICBBc3NldEJhc2VQcm9wcyxcbiAgQXNzZXRQcm9wcyxcbiAgSmF2YVNjcmlwdEFzc2V0IGFzIEpTQXNzZXQsXG4gIFR5cGVTY3JpcHRBc3NldCBhcyBUU0Fzc2V0LFxufSBmcm9tICcuL2Fzc2V0JztcbmltcG9ydCB7IEVudHJ5UG9pbnRzIH0gZnJvbSAnLi9idW5kbGVyJztcbmltcG9ydCB7IEJ1aWxkT3B0aW9ucyB9IGZyb20gJy4vZXNidWlsZC10eXBlcyc7XG5cbmZ1bmN0aW9uIG5vZGVNYWpvclZlcnNpb24oKTogbnVtYmVyIHtcbiAgcmV0dXJuIHBhcnNlSW50KHByb2Nlc3MudmVyc2lvbnMubm9kZS5zcGxpdCgnLicpWzBdLCAxMCk7XG59XG5cbmV4cG9ydCB7IENvZGVDb25maWcgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmV4cG9ydCBpbnRlcmZhY2UgSmF2YVNjcmlwdENvZGVQcm9wcyBleHRlbmRzIEFzc2V0QmFzZVByb3BzIHt9O1xuZXhwb3J0IGludGVyZmFjZSBUeXBlU2NyaXB0Q29kZVByb3BzIGV4dGVuZHMgQXNzZXRCYXNlUHJvcHMge307XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIGdlbmVyaWMgZXNidWlsZCBjb2RlIGJ1bmRsZS5cbiAqXG4gKiBZb3Ugc2hvdWxkIGFsd2F5cyB1c2UgYFR5cGVTY3JpcHRDb2RlYCBvciBgSmF2YVNjcmlwdENvZGVgLlxuICpcbiAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gKi9cbmV4cG9ydCBjbGFzcyBFc2J1aWxkQ29kZTxcbiAgUHJvcHMgZXh0ZW5kcyBKYXZhU2NyaXB0Q29kZVByb3BzIHwgVHlwZVNjcmlwdENvZGVQcm9wcyxcbj4gZXh0ZW5kcyBDb2RlIHtcbiAgcHJvdGVjdGVkIGdldEFzc2V0KHNjb3BlOiBDb25zdHJ1Y3QpOiBFc2J1aWxkQXNzZXQ8QXNzZXRQcm9wcz4ge1xuICAgIHJldHVybiBuZXcgRXNidWlsZEFzc2V0KFxuICAgICAgc2NvcGUsXG4gICAgICB0aGlzLmNvbnN0cnVjdG9yLm5hbWUsXG4gICAgICB0aGlzLnByb3BzLFxuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcHJvcHM6IEFzc2V0UHJvcHM7XG5cbiAgcHJvdGVjdGVkIGFzc2V0ITogRXNidWlsZEFzc2V0PEFzc2V0UHJvcHM+O1xuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhpcyBDb2RlIGlzIGlubGluZSBjb2RlIG9yIG5vdC5cbiAgICpcbiAgICogQGRlcHJlY2F0ZWQgdGhpcyB2YWx1ZSBpcyBpZ25vcmVkIHNpbmNlIGlubGluZSBpcyBub3cgZGV0ZXJtaW5lZCBiYXNlZCBvbiB0aGUgdGhlIGlubGluZUNvZGUgZmllbGQgb2YgQ29kZUNvbmZpZyByZXR1cm5lZCBmcm9tIGJpbmQoKS5cbiAgICovXG4gIHB1YmxpYyBpc0lubGluZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIC8qKlxuICAgICAqIEEgcGF0aCBvciBsaXN0IG9yIG1hcCBvZiBwYXRocyB0byB0aGUgZW50cnkgcG9pbnRzIG9mIHlvdXIgY29kZS5cbiAgICAgKlxuICAgICAqIFJlbGF0aXZlIHBhdGhzIGFyZSBieSBkZWZhdWx0IHJlc29sdmVkIGZyb20gdGhlIGN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnkuXG4gICAgICogVG8gY2hhbmdlIHRoZSB3b3JraW5nIGRpcmVjdG9yeSwgc2VlIGBidWlsZE9wdGlvbnMuYWJzV29ya2luZ0RpcmAuXG4gICAgICpcbiAgICAgKiBBYnNvbHV0ZSBwYXRocyBjYW4gYmUgdXNlZCBpZiBmaWxlcyBhcmUgcGFydCBvZiB0aGUgd29ya2luZyBkaXJlY3RvcnkuXG4gICAgICpcbiAgICAgKiBFeGFtcGxlczpcbiAgICAgKiAgLSBgJ3NyYy9pbmRleC50cydgXG4gICAgICogIC0gYHJlcXVpcmUucmVzb2x2ZSgnLi9sYW1iZGEnKWBcbiAgICAgKiAgLSBgWydzcmMvaW5kZXgudHMnLCAnc3JjL3V0aWwudHMnXWBcbiAgICAgKiAgLSBge29uZTogJ3NyYy90d28udHMnLCB0d286ICdzcmMvb25lLnRzJ31gXG4gICAgICpcbiAgICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgICAqL1xuICAgIHJlYWRvbmx5IGVudHJ5UG9pbnRzOiBFbnRyeVBvaW50cyxcblxuICAgIC8qKlxuICAgICAqIFByb3BzIHRvIGNoYW5nZSB0aGUgYmVoYXZpb3Igb2YgdGhlIGJ1bmRsZXIuXG4gICAgICpcbiAgICAgKiBEZWZhdWx0IHZhbHVlcyBmb3IgYHByb3BzLmJ1aWxkT3B0aW9uc2A6XG4gICAgICogLSBgYnVuZGxlPXRydWVgXG4gICAgICogLSBgcGxhdGZvcm09bm9kZWBcbiAgICAgKiAtIGB0YXJnZXQ9bm9kZVhgIHdpdGggWCBiZWluZyB0aGUgbWFqb3Igbm9kZSB2ZXJzaW9uIHJ1bm5pbmcgbG9jYWxseVxuICAgICAqXG4gICAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICAgKi9cbiAgICBwcm9wczogUHJvcHMsXG4gICkge1xuICAgIHN1cGVyKCk7XG5cbiAgICBjb25zdCBkZWZhdWx0T3B0aW9uczogUGFydGlhbDxCdWlsZE9wdGlvbnM+ID0ge1xuICAgICAgLi4uKCFwcm9wcy5idWlsZE9wdGlvbnM/LnBsYXRmb3JtIHx8XG4gICAgICBwcm9wcy5idWlsZE9wdGlvbnM/LnBsYXRmb3JtID09PSAnbm9kZSdcbiAgICAgICAgPyB7IHBsYXRmb3JtOiAnbm9kZScsIHRhcmdldDogJ25vZGUnICsgbm9kZU1ham9yVmVyc2lvbigpIH1cbiAgICAgICAgOiB7fSksXG4gICAgfTtcblxuICAgIHRoaXMucHJvcHMgPSB7XG4gICAgICAuLi5wcm9wcyxcbiAgICAgIGVudHJ5UG9pbnRzLFxuICAgICAgYnVpbGRPcHRpb25zOiB7XG4gICAgICAgIC4uLmRlZmF1bHRPcHRpb25zLFxuICAgICAgICAuLi5wcm9wcy5idWlsZE9wdGlvbnMsXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBiaW5kKHNjb3BlOiBDb25zdHJ1Y3QpOiBDb2RlQ29uZmlnIHtcbiAgICAvLyBJZiB0aGUgc2FtZSBBc3NldENvZGUgaXMgdXNlZCBtdWx0aXBsZSB0aW1lcywgcmV0YWluIG9ubHkgdGhlIGZpcnN0IGluc3RhbnRpYXRpb24uXG4gICAgaWYgKCF0aGlzLmFzc2V0KSB7XG4gICAgICB0aGlzLmFzc2V0ID0gdGhpcy5nZXRBc3NldChzY29wZSk7XG4gICAgfSBlbHNlIGlmIChTdGFjay5vZih0aGlzLmFzc2V0KSAhPT0gU3RhY2sub2Yoc2NvcGUpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBBc3NldCBpcyBhbHJlYWR5IGFzc29jaWF0ZWQgd2l0aCBhbm90aGVyIHN0YWNrICcke1xuICAgICAgICAgIFN0YWNrLm9mKHRoaXMuYXNzZXQpLnN0YWNrTmFtZVxuICAgICAgICB9Jy4gYCArICdDcmVhdGUgYSBuZXcgQXNzZXQgaW5zdGFuY2UgZm9yIGV2ZXJ5IHN0YWNrLicsXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBzM0xvY2F0aW9uOiB7XG4gICAgICAgIGJ1Y2tldE5hbWU6IHRoaXMuYXNzZXQuczNCdWNrZXROYW1lLFxuICAgICAgICBvYmplY3RLZXk6IHRoaXMuYXNzZXQuczNPYmplY3RLZXksXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIGFmdGVyIHRoZSBDRk4gZnVuY3Rpb24gcmVzb3VyY2UgaGFzIGJlZW4gY3JlYXRlZCB0byBhbGxvdyB0aGUgY29kZSBjbGFzcyB0byBiaW5kIHRvIGl0LlxuICAgKlxuICAgKiBTcGVjaWZpY2FsbHkgaXQncyByZXF1aXJlZCB0byBhbGxvdyBhc3NldHMgdG8gYWRkXG4gICAqIG1ldGFkYXRhIGZvciB0b29saW5nIGxpa2UgU0FNIENMSSB0byBiZSBhYmxlIHRvIGZpbmQgdGhlaXIgb3JpZ2lucy5cbiAgICpcbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIGJpbmRUb1Jlc291cmNlKHJlc291cmNlOiBDZm5SZXNvdXJjZSwgb3B0aW9ucz86IFJlc291cmNlQmluZE9wdGlvbnMpIHtcbiAgICBpZiAoIXRoaXMuYXNzZXQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignYmluZFRvUmVzb3VyY2UoKSBtdXN0IGJlIGNhbGxlZCBhZnRlciBiaW5kKCknKTtcbiAgICB9XG4gICAgY29uc3QgcmVzb3VyY2VQcm9wZXJ0eSA9IG9wdGlvbnM/LnJlc291cmNlUHJvcGVydHkgfHwgdGhpcy5jb25zdHJ1Y3Rvci5uYW1lO1xuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9pc3N1ZXMvMTQzMlxuICAgIHRoaXMuYXNzZXQuYWRkUmVzb3VyY2VNZXRhZGF0YShyZXNvdXJjZSwgcmVzb3VyY2VQcm9wZXJ0eSk7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSBkZXBsb3llZCBKYXZhU2NyaXB0IENvZGUuXG4gKlxuICogQHN0YWJpbGl0eSBzdGFibGVcbiAqL1xuZXhwb3J0IGNsYXNzIEphdmFTY3JpcHRDb2RlIGV4dGVuZHMgRXNidWlsZENvZGU8SmF2YVNjcmlwdENvZGVQcm9wcz4ge1xuICBwcm90ZWN0ZWQgZ2V0QXNzZXQoc2NvcGU6IENvbnN0cnVjdCk6IEVzYnVpbGRBc3NldDxBc3NldFByb3BzPiB7XG4gICAgcmV0dXJuIG5ldyBKU0Fzc2V0KFxuICAgICAgc2NvcGUsXG4gICAgICB0aGlzLmNvbnN0cnVjdG9yLm5hbWUsXG4gICAgICB0aGlzLnByb3BzLFxuICAgICk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICAvKipcbiAgICAgKiBBIHBhdGggb3IgbGlzdCBvciBtYXAgb2YgcGF0aHMgdG8gdGhlIGVudHJ5IHBvaW50cyBvZiB5b3VyIGNvZGUuXG4gICAgICpcbiAgICAgKiBSZWxhdGl2ZSBwYXRocyBhcmUgYnkgZGVmYXVsdCByZXNvbHZlZCBmcm9tIHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5LlxuICAgICAqIFRvIGNoYW5nZSB0aGUgd29ya2luZyBkaXJlY3RvcnksIHNlZSBgYnVpbGRPcHRpb25zLmFic1dvcmtpbmdEaXJgLlxuICAgICAqXG4gICAgICogQWJzb2x1dGUgcGF0aHMgY2FuIGJlIHVzZWQgaWYgZmlsZXMgYXJlIHBhcnQgb2YgdGhlIHdvcmtpbmcgZGlyZWN0b3J5LlxuICAgICAqXG4gICAgICogRXhhbXBsZXM6XG4gICAgICogIC0gYCdzcmMvaW5kZXgudHMnYFxuICAgICAqICAtIGByZXF1aXJlLnJlc29sdmUoJy4vbGFtYmRhJylgXG4gICAgICogIC0gYFsnc3JjL2luZGV4LnRzJywgJ3NyYy91dGlsLnRzJ11gXG4gICAgICogIC0gYHtvbmU6ICdzcmMvdHdvLnRzJywgdHdvOiAnc3JjL29uZS50cyd9YFxuICAgICAqXG4gICAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICAgKi9cbiAgICBlbnRyeVBvaW50czogRW50cnlQb2ludHMsXG5cbiAgICAvKipcbiAgICAgKiBQcm9wcyB0byBjaGFuZ2UgdGhlIGJlaGF2aW9yIG9mIHRoZSBidW5kbGVyLlxuICAgICAqXG4gICAgICogRGVmYXVsdCB2YWx1ZXMgZm9yIGBwcm9wcy5idWlsZE9wdGlvbnNgOlxuICAgICAqIC0gYGJ1bmRsZT10cnVlYFxuICAgICAqIC0gYHBsYXRmb3JtPW5vZGVgXG4gICAgICogLSBgdGFyZ2V0PW5vZGVYYCB3aXRoIFggYmVpbmcgdGhlIG1ham9yIG5vZGUgdmVyc2lvbiBydW5uaW5nIGxvY2FsbHlcbiAgICAgKlxuICAgICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAgICovXG4gICAgcHJvcHM6IEphdmFTY3JpcHRDb2RlUHJvcHMgPSB7fSxcbiAgKSB7XG4gICAgc3VwZXIoZW50cnlQb2ludHMsIHByb3BzKTtcbiAgfVxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIGRlcGxveWVkIFR5cGVTY3JpcHQgQ29kZS5cbiAqXG4gKiBAc3RhYmlsaXR5IHN0YWJsZVxuICovXG5leHBvcnQgY2xhc3MgVHlwZVNjcmlwdENvZGUgZXh0ZW5kcyBFc2J1aWxkQ29kZTxUeXBlU2NyaXB0Q29kZVByb3BzPiB7XG4gIHByb3RlY3RlZCBnZXRBc3NldChzY29wZTogQ29uc3RydWN0KTogRXNidWlsZEFzc2V0PEFzc2V0UHJvcHM+IHtcbiAgICByZXR1cm4gbmV3IFRTQXNzZXQoXG4gICAgICBzY29wZSxcbiAgICAgIHRoaXMuY29uc3RydWN0b3IubmFtZSxcbiAgICAgIHRoaXMucHJvcHMsXG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIC8qKlxuICAgICAqIEEgcGF0aCBvciBsaXN0IG9yIG1hcCBvZiBwYXRocyB0byB0aGUgZW50cnkgcG9pbnRzIG9mIHlvdXIgY29kZS5cbiAgICAgKlxuICAgICAqIFJlbGF0aXZlIHBhdGhzIGFyZSBieSBkZWZhdWx0IHJlc29sdmVkIGZyb20gdGhlIGN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnkuXG4gICAgICogVG8gY2hhbmdlIHRoZSB3b3JraW5nIGRpcmVjdG9yeSwgc2VlIGBidWlsZE9wdGlvbnMuYWJzV29ya2luZ0RpcmAuXG4gICAgICpcbiAgICAgKiBBYnNvbHV0ZSBwYXRocyBjYW4gYmUgdXNlZCBpZiBmaWxlcyBhcmUgcGFydCBvZiB0aGUgd29ya2luZyBkaXJlY3RvcnkuXG4gICAgICpcbiAgICAgKiBFeGFtcGxlczpcbiAgICAgKiAgLSBgJ3NyYy9pbmRleC50cydgXG4gICAgICogIC0gYHJlcXVpcmUucmVzb2x2ZSgnLi9sYW1iZGEnKWBcbiAgICAgKiAgLSBgWydzcmMvaW5kZXgudHMnLCAnc3JjL3V0aWwudHMnXWBcbiAgICAgKiAgLSBge29uZTogJ3NyYy90d28udHMnLCB0d286ICdzcmMvb25lLnRzJ31gXG4gICAgICpcbiAgICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgICAqL1xuICAgIGVudHJ5UG9pbnRzOiBFbnRyeVBvaW50cyxcblxuICAgIC8qKlxuICAgICAqIFByb3BzIHRvIGNoYW5nZSB0aGUgYmVoYXZpb3Igb2YgdGhlIGJ1bmRsZXIuXG4gICAgICpcbiAgICAgKiBEZWZhdWx0IHZhbHVlcyBmb3IgYHByb3BzLmJ1aWxkT3B0aW9uc2A6XG4gICAgICogLSBgYnVuZGxlPXRydWVgXG4gICAgICogLSBgcGxhdGZvcm09bm9kZWBcbiAgICAgKiAtIGB0YXJnZXQ9bm9kZVhgIHdpdGggWCBiZWluZyB0aGUgbWFqb3Igbm9kZSB2ZXJzaW9uIHJ1bm5pbmcgbG9jYWxseVxuICAgICAqXG4gICAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICAgKi9cbiAgICBwcm9wczogVHlwZVNjcmlwdENvZGVQcm9wcyA9IHt9LFxuICApIHtcbiAgICBzdXBlcihlbnRyeVBvaW50cywgcHJvcHMpO1xuICB9XG59XG4iXX0=
@@ -1,3 +1,9 @@
1
- export declare const buildSync: any;
2
- export declare const transformSync: any;
1
+ import { analyzeMetafileSync, buildSync, transformSync, version } from './esbuild-types';
2
+ export declare function esbuild(modulePath?: string): {
3
+ buildSync: typeof buildSync;
4
+ transformSync: typeof transformSync;
5
+ analyzeMetafileSync: typeof analyzeMetafileSync;
6
+ version: typeof version;
7
+ };
3
8
  export declare function wrapWithEsbuildBinaryPath<T extends CallableFunction>(fn: T, esbuildBinaryPath?: string): T | ((...args: unknown[]) => any);
9
+ export declare function detectEsbuildModulePath(esbuildBinaryPath?: string): string;
@@ -1,13 +1,11 @@
1
1
  "use strict";
2
- /* eslint-disable import/no-extraneous-dependencies */
3
2
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.wrapWithEsbuildBinaryPath = exports.transformSync = exports.buildSync = void 0;
5
- function esbuild() {
3
+ exports.detectEsbuildModulePath = exports.wrapWithEsbuildBinaryPath = exports.esbuild = void 0;
4
+ function esbuild(modulePath = 'esbuild') {
6
5
  // eslint-disable-next-line @typescript-eslint/no-require-imports
7
- return require('esbuild');
6
+ return require(modulePath);
8
7
  }
9
- exports.buildSync = esbuild().buildSync;
10
- exports.transformSync = esbuild().transformSync;
8
+ exports.esbuild = esbuild;
11
9
  function wrapWithEsbuildBinaryPath(fn, esbuildBinaryPath) {
12
10
  if (!esbuildBinaryPath) {
13
11
  return fn;
@@ -29,4 +27,8 @@ function wrapWithEsbuildBinaryPath(fn, esbuildBinaryPath) {
29
27
  };
30
28
  }
31
29
  exports.wrapWithEsbuildBinaryPath = wrapWithEsbuildBinaryPath;
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNidWlsZC13cmFwcGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2VzYnVpbGQtd3JhcHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsc0RBQXNEOzs7QUFFdEQsU0FBUyxPQUFPO0lBQ2QsaUVBQWlFO0lBQ2pFLE9BQU8sT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQzVCLENBQUM7QUFFWSxRQUFBLFNBQVMsR0FBRyxPQUFPLEVBQUUsQ0FBQyxTQUFTLENBQUM7QUFDaEMsUUFBQSxhQUFhLEdBQUcsT0FBTyxFQUFFLENBQUMsYUFBYSxDQUFDO0FBRXJELFNBQWdCLHlCQUF5QixDQUE2QixFQUFLLEVBQUUsaUJBQTBCO0lBQ3JHLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtRQUN0QixPQUFPLEVBQUUsQ0FBQztLQUNYO0lBRUQsT0FBTyxDQUFDLEdBQUcsSUFBZSxFQUFFLEVBQUU7UUFDNUIsTUFBTSx5QkFBeUIsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDO1FBQ2xFLElBQUksaUJBQWlCLEVBQUU7WUFDckIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsR0FBRyxpQkFBaUIsQ0FBQztTQUNyRDtRQUVELE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO1FBRTNCOzs7V0FHRztRQUNILElBQUksaUJBQWlCLEVBQUU7WUFDckIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsR0FBRyx5QkFBeUIsQ0FBQztTQUM3RDtRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUMsQ0FBQztBQUNKLENBQUM7QUF2QkQsOERBdUJDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgaW1wb3J0L25vLWV4dHJhbmVvdXMtZGVwZW5kZW5jaWVzICovXG5cbmZ1bmN0aW9uIGVzYnVpbGQoKSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVxdWlyZS1pbXBvcnRzXG4gIHJldHVybiByZXF1aXJlKCdlc2J1aWxkJyk7XG59XG5cbmV4cG9ydCBjb25zdCBidWlsZFN5bmMgPSBlc2J1aWxkKCkuYnVpbGRTeW5jO1xuZXhwb3J0IGNvbnN0IHRyYW5zZm9ybVN5bmMgPSBlc2J1aWxkKCkudHJhbnNmb3JtU3luYztcblxuZXhwb3J0IGZ1bmN0aW9uIHdyYXBXaXRoRXNidWlsZEJpbmFyeVBhdGg8VCBleHRlbmRzIENhbGxhYmxlRnVuY3Rpb24+KGZuOiBULCBlc2J1aWxkQmluYXJ5UGF0aD86IHN0cmluZykge1xuICBpZiAoIWVzYnVpbGRCaW5hcnlQYXRoKSB7XG4gICAgcmV0dXJuIGZuO1xuICB9XG5cbiAgcmV0dXJuICguLi5hcmdzOiB1bmtub3duW10pID0+IHtcbiAgICBjb25zdCBvcmlnaW5hbEVzYnVpbGRCaW5hcnlQYXRoID0gcHJvY2Vzcy5lbnYuRVNCVUlMRF9CSU5BUllfUEFUSDtcbiAgICBpZiAoZXNidWlsZEJpbmFyeVBhdGgpIHtcbiAgICAgIHByb2Nlc3MuZW52LkVTQlVJTERfQklOQVJZX1BBVEggPSBlc2J1aWxkQmluYXJ5UGF0aDtcbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHQgPSBmbiguLi5hcmdzKTtcblxuICAgIC8qKlxuICAgICAqIG9ubHkgcmVzZXQgYEVTQlVJTERfQklOQVJZX1BBVEhgIGlmIGl0IHdhcyBleHBsaWNpdGx5IHNldCB2aWEgdGhlIGNvbnN0cnVjdCBwcm9wc1xuICAgICAqIHNpbmNlIGBlc2J1aWxkYCBpdHNlbGYgc29tZXRpbWVzIHNldHMgaXQgKGVnLiB3aGVuIHJ1bm5pbmcgaW4geWFybiAyIHBsdWcmcGxheSlcbiAgICAgKi9cbiAgICBpZiAoZXNidWlsZEJpbmFyeVBhdGgpIHtcbiAgICAgIHByb2Nlc3MuZW52LkVTQlVJTERfQklOQVJZX1BBVEggPSBvcmlnaW5hbEVzYnVpbGRCaW5hcnlQYXRoO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH07XG59Il19
30
+ function detectEsbuildModulePath(esbuildBinaryPath) {
31
+ return esbuildBinaryPath || process.env.CDK_ESBUILD_MODULE_PATH || 'esbuild';
32
+ }
33
+ exports.detectEsbuildModulePath = detectEsbuildModulePath;
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNidWlsZC13cmFwcGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2VzYnVpbGQtd3JhcHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSxTQUFnQixPQUFPLENBQUMsYUFBcUIsU0FBUztJQU1wRCxpRUFBaUU7SUFDakUsT0FBTyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDN0IsQ0FBQztBQVJELDBCQVFDO0FBRUQsU0FBZ0IseUJBQXlCLENBQTZCLEVBQUssRUFBRSxpQkFBMEI7SUFDckcsSUFBSSxDQUFDLGlCQUFpQixFQUFFO1FBQ3RCLE9BQU8sRUFBRSxDQUFDO0tBQ1g7SUFFRCxPQUFPLENBQUMsR0FBRyxJQUFlLEVBQUUsRUFBRTtRQUM1QixNQUFNLHlCQUF5QixHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUM7UUFDbEUsSUFBSSxpQkFBaUIsRUFBRTtZQUNyQixPQUFPLENBQUMsR0FBRyxDQUFDLG1CQUFtQixHQUFHLGlCQUFpQixDQUFDO1NBQ3JEO1FBRUQsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFFM0I7OztXQUdHO1FBQ0gsSUFBSSxpQkFBaUIsRUFBRTtZQUNyQixPQUFPLENBQUMsR0FBRyxDQUFDLG1CQUFtQixHQUFHLHlCQUF5QixDQUFDO1NBQzdEO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQXZCRCw4REF1QkM7QUFFRCxTQUFnQix1QkFBdUIsQ0FBQyxpQkFBMEI7SUFDaEUsT0FBTyxpQkFBaUIsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLHVCQUF1QixJQUFJLFNBQVMsQ0FBQztBQUMvRSxDQUFDO0FBRkQsMERBRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhbmFseXplTWV0YWZpbGVTeW5jLCBidWlsZFN5bmMsIHRyYW5zZm9ybVN5bmMsIHZlcnNpb24gfSBmcm9tICcuL2VzYnVpbGQtdHlwZXMnO1xuXG5leHBvcnQgZnVuY3Rpb24gZXNidWlsZChtb2R1bGVQYXRoOiBzdHJpbmcgPSAnZXNidWlsZCcpOiB7XG4gIGJ1aWxkU3luYzogdHlwZW9mIGJ1aWxkU3luYztcbiAgdHJhbnNmb3JtU3luYzogdHlwZW9mIHRyYW5zZm9ybVN5bmM7XG4gIGFuYWx5emVNZXRhZmlsZVN5bmM6IHR5cGVvZiBhbmFseXplTWV0YWZpbGVTeW5jO1xuICB2ZXJzaW9uOiB0eXBlb2YgdmVyc2lvbjtcbn0ge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXJlcXVpcmUtaW1wb3J0c1xuICByZXR1cm4gcmVxdWlyZShtb2R1bGVQYXRoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdyYXBXaXRoRXNidWlsZEJpbmFyeVBhdGg8VCBleHRlbmRzIENhbGxhYmxlRnVuY3Rpb24+KGZuOiBULCBlc2J1aWxkQmluYXJ5UGF0aD86IHN0cmluZykge1xuICBpZiAoIWVzYnVpbGRCaW5hcnlQYXRoKSB7XG4gICAgcmV0dXJuIGZuO1xuICB9XG5cbiAgcmV0dXJuICguLi5hcmdzOiB1bmtub3duW10pID0+IHtcbiAgICBjb25zdCBvcmlnaW5hbEVzYnVpbGRCaW5hcnlQYXRoID0gcHJvY2Vzcy5lbnYuRVNCVUlMRF9CSU5BUllfUEFUSDtcbiAgICBpZiAoZXNidWlsZEJpbmFyeVBhdGgpIHtcbiAgICAgIHByb2Nlc3MuZW52LkVTQlVJTERfQklOQVJZX1BBVEggPSBlc2J1aWxkQmluYXJ5UGF0aDtcbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHQgPSBmbiguLi5hcmdzKTtcblxuICAgIC8qKlxuICAgICAqIG9ubHkgcmVzZXQgYEVTQlVJTERfQklOQVJZX1BBVEhgIGlmIGl0IHdhcyBleHBsaWNpdGx5IHNldCB2aWEgdGhlIGNvbnN0cnVjdCBwcm9wc1xuICAgICAqIHNpbmNlIGBlc2J1aWxkYCBpdHNlbGYgc29tZXRpbWVzIHNldHMgaXQgKGVnLiB3aGVuIHJ1bm5pbmcgaW4geWFybiAyIHBsdWcmcGxheSlcbiAgICAgKi9cbiAgICBpZiAoZXNidWlsZEJpbmFyeVBhdGgpIHtcbiAgICAgIHByb2Nlc3MuZW52LkVTQlVJTERfQklOQVJZX1BBVEggPSBvcmlnaW5hbEVzYnVpbGRCaW5hcnlQYXRoO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZXRlY3RFc2J1aWxkTW9kdWxlUGF0aChlc2J1aWxkQmluYXJ5UGF0aD86IHN0cmluZykge1xuICByZXR1cm4gZXNidWlsZEJpbmFyeVBhdGggfHwgcHJvY2Vzcy5lbnYuQ0RLX0VTQlVJTERfTU9EVUxFX1BBVEggfHwgJ2VzYnVpbGQnO1xufVxuIl19
package/lib/index.js CHANGED
@@ -18,4 +18,4 @@ Object.defineProperty(exports, "InlineTypeScriptCode", { enumerable: true, get:
18
18
  var source_1 = require("./source");
19
19
  Object.defineProperty(exports, "JavaScriptSource", { enumerable: true, get: function () { return source_1.JavaScriptSource; } });
20
20
  Object.defineProperty(exports, "TypeScriptSource", { enumerable: true, get: function () { return source_1.TypeScriptSource; } });
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFNQSxxQ0FHbUI7QUFGakIseUdBQUEsY0FBYyxPQUFBO0FBSWhCLGlDQU1pQjtBQUhmLHFHQUFBLFlBQVksT0FBQTtBQUNaLHdHQUFBLGVBQWUsT0FBQTtBQUNmLHdHQUFBLGVBQWUsT0FBQTtBQUdqQiwrQkFPZ0I7QUFMZCxtR0FBQSxXQUFXLE9BQUE7QUFDWCxzR0FBQSxjQUFjLE9BQUE7QUFFZCxzR0FBQSxjQUFjLE9BQUE7QUFJaEIsNkNBTXVCO0FBSnJCLG1IQUFBLG9CQUFvQixPQUFBO0FBQ3BCLDRHQUFBLGFBQWEsT0FBQTtBQUNiLDRHQUFBLGFBQWEsT0FBQTtBQUNiLG1IQUFBLG9CQUFvQixPQUFBO0FBR3RCLG1DQUtrQjtBQUpoQiwwR0FBQSxnQkFBZ0IsT0FBQTtBQUVoQiwwR0FBQSxnQkFBZ0IsT0FBQSIsInNvdXJjZXNDb250ZW50IjpbIlxuZXhwb3J0IHtcbiAgQnVpbGRPcHRpb25zLFxuICBUcmFuc2Zvcm1PcHRpb25zLFxufSBmcm9tICcuL2VzYnVpbGQtdHlwZXMnO1xuXG5leHBvcnQge1xuICBFc2J1aWxkQnVuZGxlcixcbiAgQnVuZGxlclByb3BzLFxufSBmcm9tICcuL2J1bmRsZXInO1xuXG5leHBvcnQge1xuICBBc3NldEJhc2VQcm9wcyxcbiAgQXNzZXRQcm9wcyxcbiAgRXNidWlsZEFzc2V0LFxuICBKYXZhU2NyaXB0QXNzZXQsXG4gIFR5cGVTY3JpcHRBc3NldCxcbn0gZnJvbSAnLi9hc3NldCc7XG5cbmV4cG9ydCB7XG4gIENvZGVDb25maWcsXG4gIEVzYnVpbGRDb2RlLFxuICBKYXZhU2NyaXB0Q29kZSxcbiAgSmF2YVNjcmlwdENvZGVQcm9wcyxcbiAgVHlwZVNjcmlwdENvZGUsXG4gIFR5cGVTY3JpcHRDb2RlUHJvcHMsXG59IGZyb20gJy4vY29kZSc7XG5cbmV4cG9ydCB7XG4gIFRyYW5zZm9ybWVyUHJvcHMsXG4gIElubGluZUphdmFTY3JpcHRDb2RlLFxuICBJbmxpbmVKc3hDb2RlLFxuICBJbmxpbmVUc3hDb2RlLFxuICBJbmxpbmVUeXBlU2NyaXB0Q29kZSxcbn0gZnJvbSAnLi9pbmxpbmUtY29kZSc7XG5cbmV4cG9ydCB7XG4gIEphdmFTY3JpcHRTb3VyY2UsXG4gIEphdmFTY3JpcHRTb3VyY2VQcm9wcyxcbiAgVHlwZVNjcmlwdFNvdXJjZSxcbiAgVHlwZVNjcmlwdFNvdXJjZVByb3BzLFxufSBmcm9tICcuL3NvdXJjZSc7Il19
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFNQSxxQ0FHbUI7QUFGakIseUdBQUEsY0FBYyxPQUFBO0FBSWhCLGlDQU1pQjtBQUhmLHFHQUFBLFlBQVksT0FBQTtBQUNaLHdHQUFBLGVBQWUsT0FBQTtBQUNmLHdHQUFBLGVBQWUsT0FBQTtBQUdqQiwrQkFPZ0I7QUFMZCxtR0FBQSxXQUFXLE9BQUE7QUFDWCxzR0FBQSxjQUFjLE9BQUE7QUFFZCxzR0FBQSxjQUFjLE9BQUE7QUFJaEIsNkNBTXVCO0FBSnJCLG1IQUFBLG9CQUFvQixPQUFBO0FBQ3BCLDRHQUFBLGFBQWEsT0FBQTtBQUNiLDRHQUFBLGFBQWEsT0FBQTtBQUNiLG1IQUFBLG9CQUFvQixPQUFBO0FBR3RCLG1DQUtrQjtBQUpoQiwwR0FBQSxnQkFBZ0IsT0FBQTtBQUVoQiwwR0FBQSxnQkFBZ0IsT0FBQSIsInNvdXJjZXNDb250ZW50IjpbIlxuZXhwb3J0IHtcbiAgQnVpbGRPcHRpb25zLFxuICBUcmFuc2Zvcm1PcHRpb25zLFxufSBmcm9tICcuL2VzYnVpbGQtdHlwZXMnO1xuXG5leHBvcnQge1xuICBFc2J1aWxkQnVuZGxlcixcbiAgQnVuZGxlclByb3BzLFxufSBmcm9tICcuL2J1bmRsZXInO1xuXG5leHBvcnQge1xuICBBc3NldEJhc2VQcm9wcyxcbiAgQXNzZXRQcm9wcyxcbiAgRXNidWlsZEFzc2V0LFxuICBKYXZhU2NyaXB0QXNzZXQsXG4gIFR5cGVTY3JpcHRBc3NldCxcbn0gZnJvbSAnLi9hc3NldCc7XG5cbmV4cG9ydCB7XG4gIENvZGVDb25maWcsXG4gIEVzYnVpbGRDb2RlLFxuICBKYXZhU2NyaXB0Q29kZSxcbiAgSmF2YVNjcmlwdENvZGVQcm9wcyxcbiAgVHlwZVNjcmlwdENvZGUsXG4gIFR5cGVTY3JpcHRDb2RlUHJvcHMsXG59IGZyb20gJy4vY29kZSc7XG5cbmV4cG9ydCB7XG4gIFRyYW5zZm9ybWVyUHJvcHMsXG4gIElubGluZUphdmFTY3JpcHRDb2RlLFxuICBJbmxpbmVKc3hDb2RlLFxuICBJbmxpbmVUc3hDb2RlLFxuICBJbmxpbmVUeXBlU2NyaXB0Q29kZSxcbn0gZnJvbSAnLi9pbmxpbmUtY29kZSc7XG5cbmV4cG9ydCB7XG4gIEphdmFTY3JpcHRTb3VyY2UsXG4gIEphdmFTY3JpcHRTb3VyY2VQcm9wcyxcbiAgVHlwZVNjcmlwdFNvdXJjZSxcbiAgVHlwZVNjcmlwdFNvdXJjZVByb3BzLFxufSBmcm9tICcuL3NvdXJjZSc7XG4iXX0=
@@ -1,4 +1,5 @@
1
- import { InlineCode } from 'aws-cdk-lib/aws-lambda';
1
+ import { CodeConfig, InlineCode } from 'aws-cdk-lib/aws-lambda';
2
+ import { Construct } from 'constructs';
2
3
  import { TransformOptions } from './esbuild-types';
3
4
  /**
4
5
  * @stability experimental
@@ -20,7 +21,7 @@ export interface TransformerProps {
20
21
  * @type esbuild.transformSync
21
22
  * @returns esbuild.TransformResult
22
23
  * @throws esbuild.TransformFailure
23
- * @default esbuild.transformSync
24
+ * @default `esbuild.transformSync`
24
25
  */
25
26
  readonly transformFn?: any;
26
27
  /**
@@ -31,9 +32,30 @@ export interface TransformerProps {
31
32
  * @stability experimental
32
33
  */
33
34
  readonly esbuildBinaryPath?: string;
35
+ /**
36
+ * Path used to import the esbuild module.
37
+ *
38
+ * Python, Go, .NET and Java should use an absolute path, because the jsii execution environment uses a temporary working directory.
39
+ *
40
+ * If not set, the module path will be determined in the following order:
41
+ *
42
+ * - Use a path from the `CDK_ESBUILD_MODULE_PATH` environment variable
43
+ * - In TypeScript, fallback to the default Node.js package resolution mechanism
44
+ * - All other languages (Python, Go, .NET, Java) use an automatic "best effort" resolution mechanism. \
45
+ * The exact algorithm of this mechanism is considered an implementation detail and should not be relied on.
46
+ * If `esbuild` cannot be found, it might be installed dynamically to a temporary location.
47
+ * To opt-out of this behavior, set either `esbuildModulePath` or `CDK_ESBUILD_MODULE_PATH` env variable.
48
+ *
49
+ * @stability experimental
50
+ * @default - `CDK_ESBUILD_MODULE_PATH` or package resolution (see above)
51
+ */
52
+ readonly esbuildModulePath?: string;
34
53
  }
35
54
  declare abstract class BaseInlineCode extends InlineCode {
55
+ readonly isInline = true;
56
+ private readonly inlineCode;
36
57
  constructor(code: string, props: TransformerProps);
58
+ bind(scope: Construct): CodeConfig;
37
59
  }
38
60
  /**
39
61
  * An implementation of `lambda.InlineCode` using the esbuild Transform API. Inline function code is limited to 4 KiB after transformation.
@@ -3,23 +3,41 @@ var _a, _b, _c, _d;
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.InlineTsxCode = exports.InlineTypeScriptCode = exports.InlineJsxCode = 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");
8
+ const constructs_1 = require("constructs");
7
9
  const esbuild_wrapper_1 = require("./esbuild-wrapper");
10
+ const utils_1 = require("./utils");
8
11
  class BaseInlineCode extends aws_lambda_1.InlineCode {
9
12
  constructor(code, props) {
10
- const { transformFn = esbuild_wrapper_1.transformSync, transformOptions = {}, esbuildBinaryPath, } = props;
11
- try {
12
- console.log = () => { };
13
- console.error = () => { };
14
- const transformedCode = esbuild_wrapper_1.wrapWithEsbuildBinaryPath(transformFn, esbuildBinaryPath)(code, {
15
- logLevel: 'warning',
16
- ...transformOptions,
17
- });
18
- super(transformedCode.code);
19
- }
20
- catch (error) {
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 { transformFn = esbuild_wrapper_1.esbuild(esbuild_wrapper_1.detectEsbuildModulePath(props.esbuildModulePath)).transformSync, transformOptions = {}, esbuildBinaryPath, } = props;
19
+ const transformedCode = esbuild_wrapper_1.wrapWithEsbuildBinaryPath(transformFn, esbuildBinaryPath)(code, {
20
+ color: process.env.NO_COLOR ? Boolean(process.env.NO_COLOR) : undefined,
21
+ logLevel: 'warning',
22
+ ...transformOptions,
23
+ });
24
+ return transformedCode.code;
25
+ }
26
+ catch (error) {
27
+ if (utils_1.errorHasCode(error, 'MODULE_NOT_FOUND')) {
28
+ throw error;
29
+ }
30
+ throw new Error(`Failed to transform ${this.constructor.name}`);
31
+ }
32
+ },
33
+ });
34
+ }
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
+ };
23
41
  }
24
42
  }
25
43
  function instanceOfTransformerProps(object) {
@@ -27,6 +45,7 @@ function instanceOfTransformerProps(object) {
27
45
  'transformOptions',
28
46
  'transformFn',
29
47
  'esbuildBinaryPath',
48
+ 'esbuildModulePath',
30
49
  ].reduce((isTransformerProps, propToCheck) => (isTransformerProps || (propToCheck in object)), false);
31
50
  }
32
51
  function transformerProps(loader, props) {
@@ -74,7 +93,7 @@ class InlineJavaScriptCode extends BaseInlineCode {
74
93
  }
75
94
  exports.InlineJavaScriptCode = InlineJavaScriptCode;
76
95
  _a = JSII_RTTI_SYMBOL_1;
77
- InlineJavaScriptCode[_a] = { fqn: "@mrgrain/cdk-esbuild.InlineJavaScriptCode", version: "3.8.0" };
96
+ InlineJavaScriptCode[_a] = { fqn: "@mrgrain/cdk-esbuild.InlineJavaScriptCode", version: "3.10.0" };
78
97
  /**
79
98
  * An implementation of `lambda.InlineCode` using the esbuild Transform API. Inline function code is limited to 4 KiB after transformation.
80
99
  *
@@ -105,7 +124,7 @@ class InlineJsxCode extends BaseInlineCode {
105
124
  }
106
125
  exports.InlineJsxCode = InlineJsxCode;
107
126
  _b = JSII_RTTI_SYMBOL_1;
108
- InlineJsxCode[_b] = { fqn: "@mrgrain/cdk-esbuild.InlineJsxCode", version: "3.8.0" };
127
+ InlineJsxCode[_b] = { fqn: "@mrgrain/cdk-esbuild.InlineJsxCode", version: "3.10.0" };
109
128
  /**
110
129
  * An implementation of `lambda.InlineCode` using the esbuild Transform API. Inline function code is limited to 4 KiB after transformation.
111
130
  *
@@ -136,7 +155,7 @@ class InlineTypeScriptCode extends BaseInlineCode {
136
155
  }
137
156
  exports.InlineTypeScriptCode = InlineTypeScriptCode;
138
157
  _c = JSII_RTTI_SYMBOL_1;
139
- InlineTypeScriptCode[_c] = { fqn: "@mrgrain/cdk-esbuild.InlineTypeScriptCode", version: "3.8.0" };
158
+ InlineTypeScriptCode[_c] = { fqn: "@mrgrain/cdk-esbuild.InlineTypeScriptCode", version: "3.10.0" };
140
159
  /**
141
160
  * An implementation of `lambda.InlineCode` using the esbuild Transform API. Inline function code is limited to 4 KiB after transformation.
142
161
  *
@@ -167,5 +186,5 @@ class InlineTsxCode extends BaseInlineCode {
167
186
  }
168
187
  exports.InlineTsxCode = InlineTsxCode;
169
188
  _d = JSII_RTTI_SYMBOL_1;
170
- InlineTsxCode[_d] = { fqn: "@mrgrain/cdk-esbuild.InlineTsxCode", version: "3.8.0" };
171
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5saW5lLWNvZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5saW5lLWNvZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSx1REFBb0Q7QUFFcEQsdURBQTZFO0FBcUM3RSxNQUFlLGNBQWUsU0FBUSx1QkFBVTtJQUM5QyxZQUNFLElBQVksRUFDWixLQUF1QjtRQUd2QixNQUFNLEVBQ0osV0FBVyxHQUFHLCtCQUFhLEVBQzNCLGdCQUFnQixHQUFHLEVBQUUsRUFDckIsaUJBQWlCLEdBQ2xCLEdBQUcsS0FBSyxDQUFDO1FBRVYsSUFBSTtZQUNGLE9BQU8sQ0FBQyxHQUFHLEdBQUcsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO1lBQ3ZCLE9BQU8sQ0FBQyxLQUFLLEdBQUcsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO1lBQ3pCLE1BQU0sZUFBZSxHQUFHLDJDQUF5QixDQUFDLFdBQVcsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDLElBQUksRUFBRTtnQkFDdEYsUUFBUSxFQUFFLFNBQVM7Z0JBQ25CLEdBQUcsZ0JBQWdCO2FBQ3BCLENBQUMsQ0FBQztZQUVILEtBQUssQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDN0I7UUFBQyxPQUFPLEtBQUssRUFBRTtZQUNkLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztTQUNuRDtJQUNILENBQUM7Q0FDRjtBQUVELFNBQVMsMEJBQTBCLENBQUMsTUFBVztJQUM3QyxPQUFPO1FBQ0wsa0JBQWtCO1FBQ2xCLGFBQWE7UUFDYixtQkFBbUI7S0FDcEIsQ0FBQyxNQUFNLENBQ04sQ0FBQyxrQkFBMkIsRUFBRSxXQUFtQixFQUFXLEVBQUUsQ0FDNUQsQ0FBQyxrQkFBa0IsSUFBSSxDQUFDLFdBQVcsSUFBSSxNQUFNLENBQUMsQ0FBQyxFQUNqRCxLQUFLLENBQ04sQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLGdCQUFnQixDQUFDLE1BQWMsRUFBRSxLQUEyQztJQUNuRixJQUFJLENBQUMsS0FBSyxFQUFFO1FBQ1YsT0FBTyxFQUFFLGdCQUFnQixFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQztLQUN6QztJQUVELElBQUksQ0FBQywwQkFBMEIsQ0FBQyxLQUFLLENBQUMsRUFBRztRQUN2QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsRUFBRSxNQUFNLEVBQUUsR0FBRyxLQUFLLEVBQUUsRUFBRSxDQUFDO0tBQ25EO0lBRUQsT0FBTztRQUNMLEdBQUcsS0FBSztRQUNSLGdCQUFnQixFQUFFO1lBQ2hCLE1BQU07WUFDTixHQUFHLEtBQUssQ0FBQyxnQkFBZ0I7U0FDMUI7S0FDRixDQUFDO0FBQ0osQ0FBQztBQUdEOzs7O0dBSUc7QUFDSCxNQUFhLG9CQUFxQixTQUFRLGNBQWM7SUFDdEQ7SUFDRTs7OztPQUlHO0lBQ0gsSUFBWTtJQUNaOzs7Ozs7Ozs7O09BVUc7SUFDSCxLQUEyQztRQUczQyxLQUFLLENBQUMsSUFBSSxFQUFFLGdCQUFnQixDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQzdDLENBQUM7O0FBdkJILG9EQXdCQzs7O0FBRUQ7Ozs7R0FJRztBQUNILE1BQWEsYUFBYyxTQUFRLGNBQWM7SUFDL0M7SUFDRTs7OztPQUlHO0lBQ0gsSUFBWTtJQUNaOzs7Ozs7Ozs7O09BVUc7SUFDSCxLQUEyQztRQUUzQyxLQUFLLENBQUMsSUFBSSxFQUFFLGdCQUFnQixDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQzlDLENBQUM7O0FBdEJILHNDQXVCQzs7O0FBRUQ7Ozs7R0FJRztBQUNILE1BQWEsb0JBQXFCLFNBQVEsY0FBYztJQUN0RDtJQUNFOzs7O09BSUc7SUFDSCxJQUFZO0lBQ1o7Ozs7Ozs7Ozs7T0FVRztJQUNILEtBQTJDO1FBRTNDLEtBQUssQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDN0MsQ0FBQzs7QUF0Qkgsb0RBdUJDOzs7QUFFRDs7OztHQUlHO0FBQ0gsTUFBYSxhQUFjLFNBQVEsY0FBYztJQUMvQztJQUNFOzs7O09BSUc7SUFDSCxJQUFZO0lBQ1o7Ozs7Ozs7Ozs7T0FVRztJQUNILEtBQTJDO1FBRTNDLEtBQUssQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDOUMsQ0FBQzs7QUF0Qkgsc0NBdUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5saW5lQ29kZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1sYW1iZGEnO1xuaW1wb3J0IHsgVHJhbnNmb3JtT3B0aW9ucywgTG9hZGVyIH0gZnJvbSAnLi9lc2J1aWxkLXR5cGVzJztcbmltcG9ydCB7IHRyYW5zZm9ybVN5bmMsIHdyYXBXaXRoRXNidWlsZEJpbmFyeVBhdGggfSBmcm9tICcuL2VzYnVpbGQtd3JhcHBlcic7XG5cbi8qKlxuICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUcmFuc2Zvcm1lclByb3BzIHtcbiAgLyoqXG4gICAqIFRyYW5zZm9ybSBvcHRpb25zIHBhc3NlZCBvbiB0byBlc2J1aWxkLiBQbGVhc2UgcmVmZXIgdG8gdGhlIGVzYnVpbGQgVHJhbnNmb3JtIEFQSSBkb2NzIGZvciBkZXRhaWxzLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZXNidWlsZC5naXRodWIuaW8vYXBpLyN0cmFuc2Zvcm0tYXBpXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSB0cmFuc2Zvcm1PcHRpb25zPzogVHJhbnNmb3JtT3B0aW9ucztcblxuICAvKipcbiAgICogRXNjYXBlIGhhdGNoIHRvIHByb3ZpZGUgdGhlIGJ1bmRsZXIgd2l0aCBhIGN1c3RvbSB0cmFuc2Zvcm0gZnVuY3Rpb24uXG4gICAqIFRoZSBmdW5jdGlvbiB3aWxsIHJlY2VpdmUgdGhlIGNvbXB1dGVkIG9wdGlvbnMgZnJvbSB0aGUgYnVuZGxlci4gSXQgY2FuIHVzZSB3aXRoIHRoZXNlIG9wdGlvbnMgYXMgaXQgd2lzaGVzLCBob3dldmVyIGEgVHJhbnNmb3JtUmVzdWx0IG11c3QgYmUgcmV0dXJuZWQgdG8gaW50ZWdyYXRlIHdpdGggQ0RLLlxuICAgKiBNdXN0IHRocm93IGEgYFRyYW5zZm9ybUZhaWx1cmVgIG9uIGZhaWx1cmUgdG8gY29ycmVjdGx5IGluZm9ybSB0aGUgYnVuZGxlci5cbiAgICpcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICogQHR5cGUgZXNidWlsZC50cmFuc2Zvcm1TeW5jXG4gICAqIEByZXR1cm5zIGVzYnVpbGQuVHJhbnNmb3JtUmVzdWx0XG4gICAqIEB0aHJvd3MgZXNidWlsZC5UcmFuc2Zvcm1GYWlsdXJlXG4gICAqIEBkZWZhdWx0IGVzYnVpbGQudHJhbnNmb3JtU3luY1xuICAgKi9cbiAgcmVhZG9ubHkgdHJhbnNmb3JtRm4/OiBhbnk7XG5cbiAgLyoqXG4gICAqIFBhdGggdG8gdGhlIGJpbmFyeSB1c2VkIGJ5IGVzYnVpbGQuXG4gICAqXG4gICAqIFRoaXMgaXMgdGhlIHNhbWUgYXMgc2V0dGluZyB0aGUgRVNCVUlMRF9CSU5BUllfUEFUSCBlbnZpcm9ubWVudCB2YXJpYWJsZS5cbiAgICpcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IGVzYnVpbGRCaW5hcnlQYXRoPzogc3RyaW5nO1xufVxuXG5hYnN0cmFjdCBjbGFzcyBCYXNlSW5saW5lQ29kZSBleHRlbmRzIElubGluZUNvZGUge1xuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgY29kZTogc3RyaW5nLFxuICAgIHByb3BzOiBUcmFuc2Zvcm1lclByb3BzLFxuICApIHtcblxuICAgIGNvbnN0IHtcbiAgICAgIHRyYW5zZm9ybUZuID0gdHJhbnNmb3JtU3luYyxcbiAgICAgIHRyYW5zZm9ybU9wdGlvbnMgPSB7fSxcbiAgICAgIGVzYnVpbGRCaW5hcnlQYXRoLFxuICAgIH0gPSBwcm9wcztcblxuICAgIHRyeSB7XG4gICAgICBjb25zb2xlLmxvZyA9ICgpID0+IHt9O1xuICAgICAgY29uc29sZS5lcnJvciA9ICgpID0+IHt9O1xuICAgICAgY29uc3QgdHJhbnNmb3JtZWRDb2RlID0gd3JhcFdpdGhFc2J1aWxkQmluYXJ5UGF0aCh0cmFuc2Zvcm1GbiwgZXNidWlsZEJpbmFyeVBhdGgpKGNvZGUsIHtcbiAgICAgICAgbG9nTGV2ZWw6ICd3YXJuaW5nJyxcbiAgICAgICAgLi4udHJhbnNmb3JtT3B0aW9ucyxcbiAgICAgIH0pO1xuXG4gICAgICBzdXBlcih0cmFuc2Zvcm1lZENvZGUuY29kZSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRmFpbGVkIHRvIHRyYW5zZm9ybSBJbmxpbmVDb2RlJyk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGluc3RhbmNlT2ZUcmFuc2Zvcm1lclByb3BzKG9iamVjdDogYW55KTogb2JqZWN0IGlzIFRyYW5zZm9ybWVyUHJvcHMge1xuICByZXR1cm4gW1xuICAgICd0cmFuc2Zvcm1PcHRpb25zJyxcbiAgICAndHJhbnNmb3JtRm4nLFxuICAgICdlc2J1aWxkQmluYXJ5UGF0aCcsXG4gIF0ucmVkdWNlKFxuICAgIChpc1RyYW5zZm9ybWVyUHJvcHM6IGJvb2xlYW4sIHByb3BUb0NoZWNrOiBzdHJpbmcpOiBib29sZWFuID0+XG4gICAgICAoaXNUcmFuc2Zvcm1lclByb3BzIHx8IChwcm9wVG9DaGVjayBpbiBvYmplY3QpKSxcbiAgICBmYWxzZSxcbiAgKTtcbn1cblxuZnVuY3Rpb24gdHJhbnNmb3JtZXJQcm9wcyhsb2FkZXI6IExvYWRlciwgcHJvcHM/OiBUcmFuc2Zvcm1lclByb3BzIHwgVHJhbnNmb3JtT3B0aW9ucyk6IFRyYW5zZm9ybWVyUHJvcHMge1xuICBpZiAoIXByb3BzKSB7XG4gICAgcmV0dXJuIHsgdHJhbnNmb3JtT3B0aW9uczogeyBsb2FkZXIgfSB9O1xuICB9XG5cbiAgaWYgKCFpbnN0YW5jZU9mVHJhbnNmb3JtZXJQcm9wcyhwcm9wcykgKSB7XG4gICAgcmV0dXJuIHsgdHJhbnNmb3JtT3B0aW9uczogeyBsb2FkZXIsIC4uLnByb3BzIH0gfTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgLi4ucHJvcHMsXG4gICAgdHJhbnNmb3JtT3B0aW9uczoge1xuICAgICAgbG9hZGVyLFxuICAgICAgLi4ucHJvcHMudHJhbnNmb3JtT3B0aW9ucyxcbiAgICB9LFxuICB9O1xufVxuXG5cbi8qKlxuICogQW4gaW1wbGVtZW50YXRpb24gb2YgYGxhbWJkYS5JbmxpbmVDb2RlYCB1c2luZyB0aGUgZXNidWlsZCBUcmFuc2Zvcm0gQVBJLiBJbmxpbmUgZnVuY3Rpb24gY29kZSBpcyBsaW1pdGVkIHRvIDQgS2lCIGFmdGVyIHRyYW5zZm9ybWF0aW9uLlxuICpcbiAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gKi9cbmV4cG9ydCBjbGFzcyBJbmxpbmVKYXZhU2NyaXB0Q29kZSBleHRlbmRzIEJhc2VJbmxpbmVDb2RlIHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIC8qKlxuICAgICAqIFRoZSBpbmxpbmUgY29kZSB0byBiZSB0cmFuc2Zvcm1lZC5cbiAgICAgKlxuICAgICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAgICovXG4gICAgY29kZTogc3RyaW5nLFxuICAgIC8qKlxuICAgICAqIFN1cHBvcnQgZm9yIGBUcmFuc2Zvcm1PcHRpb25zYCBpcyBkZXByZWNhdGVkLiBQbGVhc2UgcHJvdmlkZSBgVHJhbnNmb3JtZXJQcm9wc2AhXG4gICAgICpcbiAgICAgKiBQcm9wcyB0byBjaGFuZ2UgdGhlIGJlaGF2aW91ciBvZiB0aGUgdHJhbnNmb3JtZXIuXG4gICAgICpcbiAgICAgKiBEZWZhdWx0IHZhbHVlcyBmb3IgYHByb3BzLnRyYW5zZm9ybU9wdGlvbnNgOlxuICAgICAqIC0gYGxvYWRlcj0nanMnYFxuICAgICAqXG4gICAgICogQHNlZSBodHRwczovL2VzYnVpbGQuZ2l0aHViLmlvL2FwaS8jdHJhbnNmb3JtLWFwaVxuICAgICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAgICovXG4gICAgcHJvcHM/OiBUcmFuc2Zvcm1lclByb3BzIHwgVHJhbnNmb3JtT3B0aW9ucyxcbiAgKSB7XG5cbiAgICBzdXBlcihjb2RlLCB0cmFuc2Zvcm1lclByb3BzKCdqcycsIHByb3BzKSk7XG4gIH1cbn1cblxuLyoqXG4gKiBBbiBpbXBsZW1lbnRhdGlvbiBvZiBgbGFtYmRhLklubGluZUNvZGVgIHVzaW5nIHRoZSBlc2J1aWxkIFRyYW5zZm9ybSBBUEkuIElubGluZSBmdW5jdGlvbiBjb2RlIGlzIGxpbWl0ZWQgdG8gNCBLaUIgYWZ0ZXIgdHJhbnNmb3JtYXRpb24uXG4gKlxuICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAqL1xuZXhwb3J0IGNsYXNzIElubGluZUpzeENvZGUgZXh0ZW5kcyBCYXNlSW5saW5lQ29kZSB7XG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAvKipcbiAgICAgKiBUaGUgaW5saW5lIGNvZGUgdG8gYmUgdHJhbnNmb3JtZWQuXG4gICAgICpcbiAgICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgICAqL1xuICAgIGNvZGU6IHN0cmluZyxcbiAgICAvKipcbiAgICAgKiBTdXBwb3J0IGZvciBgVHJhbnNmb3JtT3B0aW9uc2AgaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHByb3ZpZGUgYFRyYW5zZm9ybWVyUHJvcHNgIVxuICAgICAqXG4gICAgICogUHJvcHMgdG8gY2hhbmdlIHRoZSBiZWhhdmlvdXIgb2YgdGhlIHRyYW5zZm9ybWVyLlxuICAgICAqXG4gICAgICogRGVmYXVsdCB2YWx1ZXMgZm9yIGB0cmFuc2Zvcm1PcHRpb25zYDpcbiAgICAgKiAtIGBsb2FkZXI9J2pzeCdgXG4gICAgICpcbiAgICAgKiBAc2VlIGh0dHBzOi8vZXNidWlsZC5naXRodWIuaW8vYXBpLyN0cmFuc2Zvcm0tYXBpXG4gICAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICAgKi9cbiAgICBwcm9wcz86IFRyYW5zZm9ybWVyUHJvcHMgfCBUcmFuc2Zvcm1PcHRpb25zLFxuICApIHtcbiAgICBzdXBlcihjb2RlLCB0cmFuc2Zvcm1lclByb3BzKCdqc3gnLCBwcm9wcykpO1xuICB9XG59XG5cbi8qKlxuICogQW4gaW1wbGVtZW50YXRpb24gb2YgYGxhbWJkYS5JbmxpbmVDb2RlYCB1c2luZyB0aGUgZXNidWlsZCBUcmFuc2Zvcm0gQVBJLiBJbmxpbmUgZnVuY3Rpb24gY29kZSBpcyBsaW1pdGVkIHRvIDQgS2lCIGFmdGVyIHRyYW5zZm9ybWF0aW9uLlxuICpcbiAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gKi9cbmV4cG9ydCBjbGFzcyBJbmxpbmVUeXBlU2NyaXB0Q29kZSBleHRlbmRzIEJhc2VJbmxpbmVDb2RlIHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIC8qKlxuICAgICAqIFRoZSBpbmxpbmUgY29kZSB0byBiZSB0cmFuc2Zvcm1lZC5cbiAgICAgKlxuICAgICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAgICovXG4gICAgY29kZTogc3RyaW5nLFxuICAgIC8qKlxuICAgICAqIFN1cHBvcnQgZm9yIGBUcmFuc2Zvcm1PcHRpb25zYCBpcyBkZXByZWNhdGVkLiBQbGVhc2UgcHJvdmlkZSBgVHJhbnNmb3JtZXJQcm9wc2AhXG4gICAgICpcbiAgICAgKiBQcm9wcyB0byBjaGFuZ2UgdGhlIGJlaGF2aW91ciBvZiB0aGUgdHJhbnNmb3JtZXIuXG4gICAgICpcbiAgICAgKiBEZWZhdWx0IHZhbHVlcyBmb3IgYHRyYW5zZm9ybU9wdGlvbnNgOlxuICAgICAqIC0gYGxvYWRlcj0ndHMnYFxuICAgICAqXG4gICAgICogQHNlZSBodHRwczovL2VzYnVpbGQuZ2l0aHViLmlvL2FwaS8jdHJhbnNmb3JtLWFwaVxuICAgICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAgICovXG4gICAgcHJvcHM/OiBUcmFuc2Zvcm1lclByb3BzIHwgVHJhbnNmb3JtT3B0aW9ucyxcbiAgKSB7XG4gICAgc3VwZXIoY29kZSwgdHJhbnNmb3JtZXJQcm9wcygndHMnLCBwcm9wcykpO1xuICB9XG59XG5cbi8qKlxuICogQW4gaW1wbGVtZW50YXRpb24gb2YgYGxhbWJkYS5JbmxpbmVDb2RlYCB1c2luZyB0aGUgZXNidWlsZCBUcmFuc2Zvcm0gQVBJLiBJbmxpbmUgZnVuY3Rpb24gY29kZSBpcyBsaW1pdGVkIHRvIDQgS2lCIGFmdGVyIHRyYW5zZm9ybWF0aW9uLlxuICpcbiAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gKi9cbmV4cG9ydCBjbGFzcyBJbmxpbmVUc3hDb2RlIGV4dGVuZHMgQmFzZUlubGluZUNvZGUge1xuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgLyoqXG4gICAgICogVGhlIGlubGluZSBjb2RlIHRvIGJlIHRyYW5zZm9ybWVkLlxuICAgICAqXG4gICAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICAgKi9cbiAgICBjb2RlOiBzdHJpbmcsXG4gICAgLyoqXG4gICAgICogU3VwcG9ydCBmb3IgYFRyYW5zZm9ybU9wdGlvbnNgIGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSBwcm92aWRlIGBUcmFuc2Zvcm1lclByb3BzYCFcbiAgICAgKlxuICAgICAqIFByb3BzIHRvIGNoYW5nZSB0aGUgYmVoYXZpb3VyIG9mIHRoZSB0cmFuc2Zvcm1lci5cbiAgICAgKlxuICAgICAqIERlZmF1bHQgdmFsdWVzIGZvciBgdHJhbnNmb3JtT3B0aW9uc2A6XG4gICAgICogLSBgbG9hZGVyPSd0c3gnYFxuICAgICAqXG4gICAgICogQHNlZSBodHRwczovL2VzYnVpbGQuZ2l0aHViLmlvL2FwaS8jdHJhbnNmb3JtLWFwaVxuICAgICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAgICovXG4gICAgcHJvcHM/OiBUcmFuc2Zvcm1lclByb3BzIHwgVHJhbnNmb3JtT3B0aW9ucyxcbiAgKSB7XG4gICAgc3VwZXIoY29kZSwgdHJhbnNmb3JtZXJQcm9wcygndHN4JywgcHJvcHMpKTtcbiAgfVxufVxuIl19
189
+ InlineTsxCode[_d] = { fqn: "@mrgrain/cdk-esbuild.InlineTsxCode", version: "3.10.0" };
190
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5saW5lLWNvZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5saW5lLWNvZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2Q0FBMEM7QUFDMUMsdURBQWdFO0FBQ2hFLDJDQUE2QztBQUU3Qyx1REFBZ0c7QUFDaEcsbUNBQXVDO0FBd0R2QyxNQUFlLGNBQWUsU0FBUSx1QkFBVTtJQUk5QyxZQUNFLElBQVksRUFDWixLQUF1QjtRQUV2QixLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFQRSxhQUFRLEdBQUcsSUFBSSxDQUFDO1FBUzlCLElBQUksQ0FBQyxVQUFVLEdBQUcsa0JBQUksQ0FBQyxNQUFNLENBQUM7WUFDNUIsT0FBTyxFQUFFLEdBQUcsRUFBRTtnQkFDWixJQUFJO29CQUNGLE1BQU0sRUFDSixXQUFXLEdBQUcseUJBQU8sQ0FBQyx5Q0FBdUIsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLGFBQWEsRUFDckYsZ0JBQWdCLEdBQUcsRUFBRSxFQUNyQixpQkFBaUIsR0FDbEIsR0FBRyxLQUFLLENBQUM7b0JBRVYsTUFBTSxlQUFlLEdBQUcsMkNBQXlCLENBQUMsV0FBVyxFQUFFLGlCQUFpQixDQUFDLENBQUMsSUFBSSxFQUFFO3dCQUN0RixLQUFLLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTO3dCQUN2RSxRQUFRLEVBQUUsU0FBUzt3QkFDbkIsR0FBRyxnQkFBZ0I7cUJBQ3BCLENBQUMsQ0FBQztvQkFFSCxPQUFPLGVBQWUsQ0FBQyxJQUFJLENBQUM7aUJBQzdCO2dCQUFDLE9BQU8sS0FBSyxFQUFFO29CQUNkLElBQUksb0JBQVksQ0FBQyxLQUFLLEVBQUUsa0JBQWtCLENBQUMsRUFBRTt3QkFDM0MsTUFBTSxLQUFLLENBQUM7cUJBQ2I7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ZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgQ29kZUNvbmZpZywgSW5saW5lQ29kZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1sYW1iZGEnO1xuaW1wb3J0IHsgQ29uc3RydWN0LCBOb2RlIH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBUcmFuc2Zvcm1PcHRpb25zLCBMb2FkZXIgfSBmcm9tICcuL2VzYnVpbGQtdHlwZXMnO1xuaW1wb3J0IHsgZGV0ZWN0RXNidWlsZE1vZHVsZVBhdGgsIGVzYnVpbGQsIHdyYXBXaXRoRXNidWlsZEJpbmFyeVBhdGggfSBmcm9tICcuL2VzYnVpbGQtd3JhcHBlcic7XG5pbXBvcnQgeyBlcnJvckhhc0NvZGUgfSBmcm9tICcuL3V0aWxzJztcblxuLyoqXG4gKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRyYW5zZm9ybWVyUHJvcHMge1xuICAvKipcbiAgICogVHJhbnNmb3JtIG9wdGlvbnMgcGFzc2VkIG9uIHRvIGVzYnVpbGQuIFBsZWFzZSByZWZlciB0byB0aGUgZXNidWlsZCBUcmFuc2Zvcm0gQVBJIGRvY3MgZm9yIGRldGFpbHMuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9lc2J1aWxkLmdpdGh1Yi5pby9hcGkvI3RyYW5zZm9ybS1hcGlcbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IHRyYW5zZm9ybU9wdGlvbnM/OiBUcmFuc2Zvcm1PcHRpb25zO1xuXG4gIC8qKlxuICAgKiBFc2NhcGUgaGF0Y2ggdG8gcHJvdmlkZSB0aGUgYnVuZGxlciB3aXRoIGEgY3VzdG9tIHRyYW5zZm9ybSBmdW5jdGlvbi5cbiAgICogVGhlIGZ1bmN0aW9uIHdpbGwgcmVjZWl2ZSB0aGUgY29tcHV0ZWQgb3B0aW9ucyBmcm9tIHRoZSBidW5kbGVyLiBJdCBjYW4gdXNlIHdpdGggdGhlc2Ugb3B0aW9ucyBhcyBpdCB3aXNoZXMsIGhvd2V2ZXIgYSBUcmFuc2Zvcm1SZXN1bHQgbXVzdCBiZSByZXR1cm5lZCB0byBpbnRlZ3JhdGUgd2l0aCBDREsuXG4gICAqIE11c3QgdGhyb3cgYSBgVHJhbnNmb3JtRmFpbHVyZWAgb24gZmFpbHVyZSB0byBjb3JyZWN0bHkgaW5mb3JtIHRoZSBidW5kbGVyLlxuICAgKlxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKiBAdHlwZSBlc2J1aWxkLnRyYW5zZm9ybVN5bmNcbiAgICogQHJldHVybnMgZXNidWlsZC5UcmFuc2Zvcm1SZXN1bHRcbiAgICogQHRocm93cyBlc2J1aWxkLlRyYW5zZm9ybUZhaWx1cmVcbiAgICogQGRlZmF1bHQgYGVzYnVpbGQudHJhbnNmb3JtU3luY2BcbiAgICovXG4gIHJlYWRvbmx5IHRyYW5zZm9ybUZuPzogYW55O1xuXG4gIC8qKlxuICAgKiBQYXRoIHRvIHRoZSBiaW5hcnkgdXNlZCBieSBlc2J1aWxkLlxuICAgKlxuICAgKiBUaGlzIGlzIHRoZSBzYW1lIGFzIHNldHRpbmcgdGhlIEVTQlVJTERfQklOQVJZX1BBVEggZW52aXJvbm1lbnQgdmFyaWFibGUuXG4gICAqXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBlc2J1aWxkQmluYXJ5UGF0aD86IHN0cmluZztcblxuICAvKipcbiAgICogUGF0aCB1c2VkIHRvIGltcG9ydCB0aGUgZXNidWlsZCBtb2R1bGUuXG4gICAqXG4gICAqIFB5dGhvbiwgR28sIC5ORVQgYW5kIEphdmEgc2hvdWxkIHVzZSBhbiBhYnNvbHV0ZSBwYXRoLCBiZWNhdXNlIHRoZSBqc2lpIGV4ZWN1dGlvbiBlbnZpcm9ubWVudCB1c2VzIGEgdGVtcG9yYXJ5IHdvcmtpbmcgZGlyZWN0b3J5LlxuICAgKlxuICAgKiBJZiBub3Qgc2V0LCB0aGUgbW9kdWxlIHBhdGggd2lsbCBiZSBkZXRlcm1pbmVkIGluIHRoZSBmb2xsb3dpbmcgb3JkZXI6XG4gICAqXG4gICAqIC0gVXNlIGEgcGF0aCBmcm9tIHRoZSBgQ0RLX0VTQlVJTERfTU9EVUxFX1BBVEhgIGVudmlyb25tZW50IHZhcmlhYmxlXG4gICAqIC0gSW4gVHlwZVNjcmlwdCwgZmFsbGJhY2sgdG8gdGhlIGRlZmF1bHQgTm9kZS5qcyBwYWNrYWdlIHJlc29sdXRpb24gbWVjaGFuaXNtXG4gICAqIC0gQWxsIG90aGVyIGxhbmd1YWdlcyAoUHl0aG9uLCBHbywgLk5FVCwgSmF2YSkgdXNlIGFuIGF1dG9tYXRpYyBcImJlc3QgZWZmb3J0XCIgcmVzb2x1dGlvbiBtZWNoYW5pc20uIFxcXG4gICAqICAgVGhlIGV4YWN0IGFsZ29yaXRobSBvZiB0aGlzIG1lY2hhbmlzbSBpcyBjb25zaWRlcmVkIGFuIGltcGxlbWVudGF0aW9uIGRldGFpbCBhbmQgc2hvdWxkIG5vdCBiZSByZWxpZWQgb24uXG4gICAqICAgSWYgYGVzYnVpbGRgIGNhbm5vdCBiZSBmb3VuZCwgaXQgbWlnaHQgYmUgaW5zdGFsbGVkIGR5bmFtaWNhbGx5IHRvIGEgdGVtcG9yYXJ5IGxvY2F0aW9uLlxuICAgKiAgIFRvIG9wdC1vdXQgb2YgdGhpcyBiZWhhdmlvciwgc2V0IGVpdGhlciBgZXNidWlsZE1vZHVsZVBhdGhgIG9yIGBDREtfRVNCVUlMRF9NT0RVTEVfUEFUSGAgZW52IHZhcmlhYmxlLlxuICAgKlxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKiBAZGVmYXVsdCAtIGBDREtfRVNCVUlMRF9NT0RVTEVfUEFUSGAgb3IgcGFja2FnZSByZXNvbHV0aW9uIChzZWUgYWJvdmUpXG4gICAqL1xuICByZWFkb25seSBlc2J1aWxkTW9kdWxlUGF0aD86IHN0cmluZztcbn1cblxuYWJzdHJhY3QgY2xhc3MgQmFzZUlubGluZUNvZGUgZXh0ZW5kcyBJbmxpbmVDb2RlIHtcbiAgcHVibGljIHJlYWRvbmx5IGlzSW5saW5lID0gdHJ1ZTtcbiAgcHJpdmF0ZSByZWFkb25seSBpbmxpbmVDb2RlOiBzdHJpbmc7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIGNvZGU6IHN0cmluZyxcbiAgICBwcm9wczogVHJhbnNmb3JtZXJQcm9wcyxcbiAgKSB7XG4gICAgc3VwZXIoY29kZSk7XG5cbiAgICB0aGlzLmlubGluZUNvZGUgPSBMYXp5LnN0cmluZyh7XG4gICAgICBwcm9kdWNlOiAoKSA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3Qge1xuICAgICAgICAgICAgdHJhbnNmb3JtRm4gPSBlc2J1aWxkKGRldGVjdEVzYnVpbGRNb2R1bGVQYXRoKHByb3BzLmVzYnVpbGRNb2R1bGVQYXRoKSkudHJhbnNmb3JtU3luYyxcbiAgICAgICAgICAgIHRyYW5zZm9ybU9wdGlvbnMgPSB7fSxcbiAgICAgICAgICAgIGVzYnVpbGRCaW5hcnlQYXRoLFxuICAgICAgICAgIH0gPSBwcm9wcztcblxuICAgICAgICAgIGNvbnN0IHRyYW5zZm9ybWVkQ29kZSA9IHdyYXBXaXRoRXNidWlsZEJpbmFyeVBhdGgodHJhbnNmb3JtRm4sIGVzYnVpbGRCaW5hcnlQYXRoKShjb2RlLCB7XG4gICAgICAgICAgICBjb2xvcjogcHJvY2Vzcy5lbnYuTk9fQ09MT1IgPyBCb29sZWFuKHByb2Nlc3MuZW52Lk5PX0NPTE9SKSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGxvZ0xldmVsOiAnd2FybmluZycsXG4gICAgICAgICAgICAuLi50cmFuc2Zvcm1PcHRpb25zLFxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgcmV0dXJuIHRyYW5zZm9ybWVkQ29kZS5jb2RlO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgIGlmIChlcnJvckhhc0NvZGUoZXJyb3IsICdNT0RVTEVfTk9UX0ZPVU5EJykpIHtcbiAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEZhaWxlZCB0byB0cmFuc2Zvcm0gJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9YCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYmluZChzY29wZTogQ29uc3RydWN0KTogQ29kZUNvbmZpZyB7XG4gICAgY29uc3QgbmFtZSA9IHNjb3BlLm5vZGUucGF0aCArIE5vZGUuUEFUSF9TRVAgKyB0aGlzLmNvbnN0cnVjdG9yLm5hbWU7XG4gICAgcHJvY2Vzcy5zdGRlcnIud3JpdGUoYFRyYW5zZm9ybWluZyBpbmxpbmUgY29kZSAke25hbWV9Li4uXFxuYCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgaW5saW5lQ29kZTogU3RhY2sub2Yoc2NvcGUpLnJlc29sdmUodGhpcy5pbmxpbmVDb2RlKSxcbiAgICB9O1xuICB9XG59XG5cbmZ1bmN0aW9uIGluc3RhbmNlT2ZUcmFuc2Zvcm1lclByb3BzKG9iamVjdDogYW55KTogb2JqZWN0IGlzIFRyYW5zZm9ybWVyUHJvcHMge1xuICByZXR1cm4gW1xuICAgICd0cmFuc2Zvcm1PcHRpb25zJyxcbiAgICAndHJhbnNmb3JtRm4nLFxuICAgICdlc2J1aWxkQmluYXJ5UGF0aCcsXG4gICAgJ2VzYnVpbGRNb2R1bGVQYXRoJyxcbiAgXS5yZWR1Y2UoXG4gICAgKGlzVHJhbnNmb3JtZXJQcm9wczogYm9vbGVhbiwgcHJvcFRvQ2hlY2s6IHN0cmluZyk6IGJvb2xlYW4gPT5cbiAgICAgIChpc1RyYW5zZm9ybWVyUHJvcHMgfHwgKHByb3BUb0NoZWNrIGluIG9iamVjdCkpLFxuICAgIGZhbHNlLFxuICApO1xufVxuXG5mdW5jdGlvbiB0cmFuc2Zvcm1lclByb3BzKGxvYWRlcjogTG9hZGVyLCBwcm9wcz86IFRyYW5zZm9ybWVyUHJvcHMgfCBUcmFuc2Zvcm1PcHRpb25zKTogVHJhbnNmb3JtZXJQcm9wcyB7XG4gIGlmICghcHJvcHMpIHtcbiAgICByZXR1cm4geyB0cmFuc2Zvcm1PcHRpb25zOiB7IGxvYWRlciB9IH07XG4gIH1cblxuICBpZiAoIWluc3RhbmNlT2ZUcmFuc2Zvcm1lclByb3BzKHByb3BzKSApIHtcbiAgICByZXR1cm4geyB0cmFuc2Zvcm1PcHRpb25zOiB7IGxvYWRlciwgLi4ucHJvcHMgfSB9O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAuLi5wcm9wcyxcbiAgICB0cmFuc2Zvcm1PcHRpb25zOiB7XG4gICAgICBsb2FkZXIsXG4gICAgICAuLi5wcm9wcy50cmFuc2Zvcm1PcHRpb25zLFxuICAgIH0sXG4gIH07XG59XG5cblxuLyoqXG4gKiBBbiBpbXBsZW1lbnRhdGlvbiBvZiBgbGFtYmRhLklubGluZUNvZGVgIHVzaW5nIHRoZSBlc2J1aWxkIFRyYW5zZm9ybSBBUEkuIElubGluZSBmdW5jdGlvbiBjb2RlIGlzIGxpbWl0ZWQgdG8gNCBLaUIgYWZ0ZXIgdHJhbnNmb3JtYXRpb24uXG4gKlxuICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAqL1xuZXhwb3J0IGNsYXNzIElubGluZUphdmFTY3JpcHRDb2RlIGV4dGVuZHMgQmFzZUlubGluZUNvZGUge1xuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgLyoqXG4gICAgICogVGhlIGlubGluZSBjb2RlIHRvIGJlIHRyYW5zZm9ybWVkLlxuICAgICAqXG4gICAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICAgKi9cbiAgICBjb2RlOiBzdHJpbmcsXG4gICAgLyoqXG4gICAgICogU3VwcG9ydCBmb3IgYFRyYW5zZm9ybU9wdGlvbnNgIGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSBwcm92aWRlIGBUcmFuc2Zvcm1lclByb3BzYCFcbiAgICAgKlxuICAgICAqIFByb3BzIHRvIGNoYW5nZSB0aGUgYmVoYXZpb3VyIG9mIHRoZSB0cmFuc2Zvcm1lci5cbiAgICAgKlxuICAgICAqIERlZmF1bHQgdmFsdWVzIGZvciBgcHJvcHMudHJhbnNmb3JtT3B0aW9uc2A6XG4gICAgICogLSBgbG9hZGVyPSdqcydgXG4gICAgICpcbiAgICAgKiBAc2VlIGh0dHBzOi8vZXNidWlsZC5naXRodWIuaW8vYXBpLyN0cmFuc2Zvcm0tYXBpXG4gICAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICAgKi9cbiAgICBwcm9wcz86IFRyYW5zZm9ybWVyUHJvcHMgfCBUcmFuc2Zvcm1PcHRpb25zLFxuICApIHtcblxuICAgIHN1cGVyKGNvZGUsIHRyYW5zZm9ybWVyUHJvcHMoJ2pzJywgcHJvcHMpKTtcbiAgfVxufVxuXG4vKipcbiAqIEFuIGltcGxlbWVudGF0aW9uIG9mIGBsYW1iZGEuSW5saW5lQ29kZWAgdXNpbmcgdGhlIGVzYnVpbGQgVHJhbnNmb3JtIEFQSS4gSW5saW5lIGZ1bmN0aW9uIGNvZGUgaXMgbGltaXRlZCB0byA0IEtpQiBhZnRlciB0cmFuc2Zvcm1hdGlvbi5cbiAqXG4gKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICovXG5leHBvcnQgY2xhc3MgSW5saW5lSnN4Q29kZSBleHRlbmRzIEJhc2VJbmxpbmVDb2RlIHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIC8qKlxuICAgICAqIFRoZSBpbmxpbmUgY29kZSB0byBiZSB0cmFuc2Zvcm1lZC5cbiAgICAgKlxuICAgICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAgICovXG4gICAgY29kZTogc3RyaW5nLFxuICAgIC8qKlxuICAgICAqIFN1cHBvcnQgZm9yIGBUcmFuc2Zvcm1PcHRpb25zYCBpcyBkZXByZWNhdGVkLiBQbGVhc2UgcHJvdmlkZSBgVHJhbnNmb3JtZXJQcm9wc2AhXG4gICAgICpcbiAgICAgKiBQcm9wcyB0byBjaGFuZ2UgdGhlIGJlaGF2aW91ciBvZiB0aGUgdHJhbnNmb3JtZXIuXG4gICAgICpcbiAgICAgKiBEZWZhdWx0IHZhbHVlcyBmb3IgYHRyYW5zZm9ybU9wdGlvbnNgOlxuICAgICAqIC0gYGxvYWRlcj0nanN4J2BcbiAgICAgKlxuICAgICAqIEBzZWUgaHR0cHM6Ly9lc2J1aWxkLmdpdGh1Yi5pby9hcGkvI3RyYW5zZm9ybS1hcGlcbiAgICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgICAqL1xuICAgIHByb3BzPzogVHJhbnNmb3JtZXJQcm9wcyB8IFRyYW5zZm9ybU9wdGlvbnMsXG4gICkge1xuICAgIHN1cGVyKGNvZGUsIHRyYW5zZm9ybWVyUHJvcHMoJ2pzeCcsIHByb3BzKSk7XG4gIH1cbn1cblxuLyoqXG4gKiBBbiBpbXBsZW1lbnRhdGlvbiBvZiBgbGFtYmRhLklubGluZUNvZGVgIHVzaW5nIHRoZSBlc2J1aWxkIFRyYW5zZm9ybSBBUEkuIElubGluZSBmdW5jdGlvbiBjb2RlIGlzIGxpbWl0ZWQgdG8gNCBLaUIgYWZ0ZXIgdHJhbnNmb3JtYXRpb24uXG4gKlxuICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAqL1xuZXhwb3J0IGNsYXNzIElubGluZVR5cGVTY3JpcHRDb2RlIGV4dGVuZHMgQmFzZUlubGluZUNvZGUge1xuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgLyoqXG4gICAgICogVGhlIGlubGluZSBjb2RlIHRvIGJlIHRyYW5zZm9ybWVkLlxuICAgICAqXG4gICAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICAgKi9cbiAgICBjb2RlOiBzdHJpbmcsXG4gICAgLyoqXG4gICAgICogU3VwcG9ydCBmb3IgYFRyYW5zZm9ybU9wdGlvbnNgIGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSBwcm92aWRlIGBUcmFuc2Zvcm1lclByb3BzYCFcbiAgICAgKlxuICAgICAqIFByb3BzIHRvIGNoYW5nZSB0aGUgYmVoYXZpb3VyIG9mIHRoZSB0cmFuc2Zvcm1lci5cbiAgICAgKlxuICAgICAqIERlZmF1bHQgdmFsdWVzIGZvciBgdHJhbnNmb3JtT3B0aW9uc2A6XG4gICAgICogLSBgbG9hZGVyPSd0cydgXG4gICAgICpcbiAgICAgKiBAc2VlIGh0dHBzOi8vZXNidWlsZC5naXRodWIuaW8vYXBpLyN0cmFuc2Zvcm0tYXBpXG4gICAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICAgKi9cbiAgICBwcm9wcz86IFRyYW5zZm9ybWVyUHJvcHMgfCBUcmFuc2Zvcm1PcHRpb25zLFxuICApIHtcbiAgICBzdXBlcihjb2RlLCB0cmFuc2Zvcm1lclByb3BzKCd0cycsIHByb3BzKSk7XG4gIH1cbn1cblxuLyoqXG4gKiBBbiBpbXBsZW1lbnRhdGlvbiBvZiBgbGFtYmRhLklubGluZUNvZGVgIHVzaW5nIHRoZSBlc2J1aWxkIFRyYW5zZm9ybSBBUEkuIElubGluZSBmdW5jdGlvbiBjb2RlIGlzIGxpbWl0ZWQgdG8gNCBLaUIgYWZ0ZXIgdHJhbnNmb3JtYXRpb24uXG4gKlxuICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAqL1xuZXhwb3J0IGNsYXNzIElubGluZVRzeENvZGUgZXh0ZW5kcyBCYXNlSW5saW5lQ29kZSB7XG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAvKipcbiAgICAgKiBUaGUgaW5saW5lIGNvZGUgdG8gYmUgdHJhbnNmb3JtZWQuXG4gICAgICpcbiAgICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgICAqL1xuICAgIGNvZGU6IHN0cmluZyxcbiAgICAvKipcbiAgICAgKiBTdXBwb3J0IGZvciBgVHJhbnNmb3JtT3B0aW9uc2AgaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHByb3ZpZGUgYFRyYW5zZm9ybWVyUHJvcHNgIVxuICAgICAqXG4gICAgICogUHJvcHMgdG8gY2hhbmdlIHRoZSBiZWhhdmlvdXIgb2YgdGhlIHRyYW5zZm9ybWVyLlxuICAgICAqXG4gICAgICogRGVmYXVsdCB2YWx1ZXMgZm9yIGB0cmFuc2Zvcm1PcHRpb25zYDpcbiAgICAgKiAtIGBsb2FkZXI9J3RzeCdgXG4gICAgICpcbiAgICAgKiBAc2VlIGh0dHBzOi8vZXNidWlsZC5naXRodWIuaW8vYXBpLyN0cmFuc2Zvcm0tYXBpXG4gICAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICAgKi9cbiAgICBwcm9wcz86IFRyYW5zZm9ybWVyUHJvcHMgfCBUcmFuc2Zvcm1PcHRpb25zLFxuICApIHtcbiAgICBzdXBlcihjb2RlLCB0cmFuc2Zvcm1lclByb3BzKCd0c3gnLCBwcm9wcykpO1xuICB9XG59XG4iXX0=
package/lib/source.js CHANGED
@@ -104,7 +104,7 @@ class JavaScriptSource extends Source {
104
104
  }
105
105
  exports.JavaScriptSource = JavaScriptSource;
106
106
  _a = JSII_RTTI_SYMBOL_1;
107
- JavaScriptSource[_a] = { fqn: "@mrgrain/cdk-esbuild.JavaScriptSource", version: "3.8.0" };
107
+ JavaScriptSource[_a] = { fqn: "@mrgrain/cdk-esbuild.JavaScriptSource", version: "3.10.0" };
108
108
  class TypeScriptSource extends Source {
109
109
  constructor(
110
110
  /**
@@ -140,5 +140,5 @@ class TypeScriptSource extends Source {
140
140
  }
141
141
  exports.TypeScriptSource = TypeScriptSource;
142
142
  _b = JSII_RTTI_SYMBOL_1;
143
- TypeScriptSource[_b] = { fqn: "@mrgrain/cdk-esbuild.TypeScriptSource", version: "3.8.0" };
143
+ TypeScriptSource[_b] = { fqn: "@mrgrain/cdk-esbuild.TypeScriptSource", version: "3.10.0" };
144
144
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3NvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQUFvQztBQU9wQyxtQ0FBdUY7QUFJeEIsQ0FBQztBQUNELENBQUM7QUFFaEUsTUFBZSxNQUFNO0lBY25CO0lBQ0U7Ozs7Ozs7Ozs7Ozs7OztPQWVHO0lBQ0gsV0FBd0I7SUFFeEI7Ozs7Ozs7O09BUUc7SUFDSCxLQUFZO1FBRVosTUFBTSxjQUFjLEdBQTBCO1lBQzVDLFFBQVEsRUFBRSxTQUFTO1NBQ3BCLENBQUM7UUFFRixJQUFJLENBQUMsS0FBSyxHQUFHO1lBQ1gsV0FBVztZQUNYLEdBQUcsS0FBSztZQUNSLFlBQVksRUFBRTtnQkFDWixHQUFHLGNBQWM7Z0JBQ2pCLEdBQUcsS0FBSyxDQUFDLFlBQVk7YUFDdEI7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELElBQUksQ0FBQyxLQUFnQixFQUFFLE9BQWlDO1FBQ3RELHFGQUFxRjtRQUNyRixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNmLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUM5QixLQUFLLEVBQ0wsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQ3JCLElBQUksQ0FBQyxLQUFLLENBQ1gsQ0FBQztTQUNIO2FBQU0sSUFBSSxtQkFBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssbUJBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDbkQsTUFBTSxJQUFJLEtBQUssQ0FDYixtREFDRSxtQkFBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsU0FDdkIsS0FBSyxHQUFHLDhDQUE4QyxDQUN2RCxDQUFDO1NBQ0g7UUFFRCxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ1osTUFBTSxJQUFJLEtBQUssQ0FDYixZQUFZLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSw0QkFBNEIsQ0FDOUQsQ0FBQztTQUNIO1FBRUQsd0VBQXdFO1FBQ3hFLHNFQUFzRTtRQUN0RSw2REFBNkQ7UUFDN0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUVqRCxPQUFPO1lBQ0wsTUFBTSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTTtZQUN6QixZQUFZLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXO1NBQ3JDLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUFFRCxNQUFhLGdCQUFpQixTQUFRLE1BR3JDO0lBR0M7SUFFRTs7Ozs7Ozs7Ozs7Ozs7O09BZUc7SUFDSCxXQUF3QjtJQUV4Qjs7Ozs7Ozs7UUFRSTtJQUNKLFFBQStCLEVBQUU7UUFFakMsS0FBSyxDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsQ0FBQztRQWpDNUIsZUFBVSxHQUFHLHVCQUFlLENBQUM7SUFrQzdCLENBQUM7O0FBdENILDRDQXVDQzs7O0FBRUQsTUFBYSxnQkFBaUIsU0FBUSxNQUdyQztJQUdDO0lBQ0U7Ozs7Ozs7Ozs7Ozs7OztPQWVHO0lBQ0gsV0FBd0I7SUFFeEI7Ozs7Ozs7O09BUUc7SUFDSCxRQUErQixFQUFFO1FBRWpDLEtBQUssQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFoQzVCLGVBQVUsR0FBRyx1QkFBZSxDQUFDO0lBaUM3QixDQUFDOztBQXJDSCw0Q0FzQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdGFjayB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7XG4gIERlcGxveW1lbnRTb3VyY2VDb250ZXh0LFxuICBJU291cmNlLFxuICBTb3VyY2VDb25maWcsXG59IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMy1kZXBsb3ltZW50JztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgQXNzZXRCYXNlUHJvcHMsIEFzc2V0UHJvcHMsIEphdmFTY3JpcHRBc3NldCwgVHlwZVNjcmlwdEFzc2V0IH0gZnJvbSAnLi9hc3NldCc7XG5pbXBvcnQgeyBFbnRyeVBvaW50cyB9IGZyb20gJy4vYnVuZGxlcic7XG5pbXBvcnQgeyBCdWlsZE9wdGlvbnMgfSBmcm9tICcuL2VzYnVpbGQtdHlwZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEphdmFTY3JpcHRTb3VyY2VQcm9wcyBleHRlbmRzIEFzc2V0QmFzZVByb3Bze307XG5leHBvcnQgaW50ZXJmYWNlIFR5cGVTY3JpcHRTb3VyY2VQcm9wcyBleHRlbmRzIEFzc2V0QmFzZVByb3Bze307XG5cbmFic3RyYWN0IGNsYXNzIFNvdXJjZTxcbiAgUHJvcHMgZXh0ZW5kcyBKYXZhU2NyaXB0U291cmNlUHJvcHMgfCBUeXBlU2NyaXB0U291cmNlUHJvcHMsXG4gIEFzc2V0IGV4dGVuZHMgSmF2YVNjcmlwdEFzc2V0IHwgVHlwZVNjcmlwdEFzc2V0LFxuPiBpbXBsZW1lbnRzIElTb3VyY2Uge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgYWJzdHJhY3QgYXNzZXRDbGFzczogbmV3IChcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcHJvcHM6IEFzc2V0UHJvcHMsXG4gICkgPT4gQXNzZXQ7XG5cbiAgcHJvdGVjdGVkIHByb3BzOiBBc3NldFByb3BzO1xuXG4gIHByb3RlY3RlZCBhc3NldCE6IEFzc2V0O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIC8qKlxuICAgICAqIEEgcGF0aCBvciBsaXN0IG9yIG1hcCBvZiBwYXRocyB0byB0aGUgZW50cnkgcG9pbnRzIG9mIHlvdXIgY29kZS5cbiAgICAgKlxuICAgICAqIFJlbGF0aXZlIHBhdGhzIGFyZSBieSBkZWZhdWx0IHJlc29sdmVkIGZyb20gdGhlIGN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnkuXG4gICAgICogVG8gY2hhbmdlIHRoZSB3b3JraW5nIGRpcmVjdG9yeSwgc2VlIGBidWlsZE9wdGlvbnMuYWJzV29ya2luZ0RpcmAuXG4gICAgICpcbiAgICAgKiBBYnNvbHV0ZSBwYXRocyBjYW4gYmUgdXNlZCBpZiBmaWxlcyBhcmUgcGFydCBvZiB0aGUgd29ya2luZyBkaXJlY3RvcnkuXG4gICAgICpcbiAgICAgKiBFeGFtcGxlczpcbiAgICAgKiAgLSBgJ3NyYy9pbmRleC50cydgXG4gICAgICogIC0gYHJlcXVpcmUucmVzb2x2ZSgnLi9sYW1iZGEnKWBcbiAgICAgKiAgLSBgWydzcmMvaW5kZXgudHMnLCAnc3JjL3V0aWwudHMnXWBcbiAgICAgKiAgLSBge29uZTogJ3NyYy90d28udHMnLCB0d286ICdzcmMvb25lLnRzJ31gXG4gICAgICpcbiAgICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgICAqL1xuICAgIGVudHJ5UG9pbnRzOiBFbnRyeVBvaW50cyxcblxuICAgIC8qKlxuICAgICAqIFByb3BzIHRvIGNoYW5nZSB0aGUgYmVoYXZpb3Igb2YgdGhlIGJ1bmRsZXIuXG4gICAgICpcbiAgICAgKiBEZWZhdWx0IHZhbHVlcyBmb3IgYHByb3BzLmJ1aWxkT3B0aW9uc2A6XG4gICAgICogLSBgYnVuZGxlPXRydWVgXG4gICAgICogLSBgcGxhdGZvcm09YnJvd3NlcmBcbiAgICAgKlxuICAgICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAgICovXG4gICAgcHJvcHM6IFByb3BzLFxuICApIHtcbiAgICBjb25zdCBkZWZhdWx0T3B0aW9uczogUGFydGlhbDxCdWlsZE9wdGlvbnM+ID0ge1xuICAgICAgcGxhdGZvcm06ICdicm93c2VyJyxcbiAgICB9O1xuXG4gICAgdGhpcy5wcm9wcyA9IHtcbiAgICAgIGVudHJ5UG9pbnRzLFxuICAgICAgLi4ucHJvcHMsXG4gICAgICBidWlsZE9wdGlvbnM6IHtcbiAgICAgICAgLi4uZGVmYXVsdE9wdGlvbnMsXG4gICAgICAgIC4uLnByb3BzLmJ1aWxkT3B0aW9ucyxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIGJpbmQoc2NvcGU6IENvbnN0cnVjdCwgY29udGV4dD86IERlcGxveW1lbnRTb3VyY2VDb250ZXh0KTogU291cmNlQ29uZmlnIHtcbiAgICAvLyBJZiB0aGUgc2FtZSBBc3NldENvZGUgaXMgdXNlZCBtdWx0aXBsZSB0aW1lcywgcmV0YWluIG9ubHkgdGhlIGZpcnN0IGluc3RhbnRpYXRpb24uXG4gICAgaWYgKCF0aGlzLmFzc2V0KSB7XG4gICAgICB0aGlzLmFzc2V0ID0gbmV3IHRoaXMuYXNzZXRDbGFzcyhcbiAgICAgICAgc2NvcGUsXG4gICAgICAgIHRoaXMuY29uc3RydWN0b3IubmFtZSxcbiAgICAgICAgdGhpcy5wcm9wcyxcbiAgICAgICk7XG4gICAgfSBlbHNlIGlmIChTdGFjay5vZih0aGlzLmFzc2V0KSAhPT0gU3RhY2sub2Yoc2NvcGUpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBBc3NldCBpcyBhbHJlYWR5IGFzc29jaWF0ZWQgd2l0aCBhbm90aGVyIHN0YWNrICcke1xuICAgICAgICAgIFN0YWNrLm9mKHRoaXMuYXNzZXQpLnN0YWNrTmFtZVxuICAgICAgICB9Jy4gYCArICdDcmVhdGUgYSBuZXcgQXNzZXQgaW5zdGFuY2UgZm9yIGV2ZXJ5IHN0YWNrLicsXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmICghY29udGV4dCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgVG8gdXNlIGEgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9LCBjb250ZXh0IG11c3QgYmUgcHJvdmlkZWRgLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyB3ZSBnaXZlIHBlcm1pc3Npb25zIG9uIGFsbCBmaWxlcyBpbiB0aGUgYnVja2V0IHNpbmNlIHdlIGRvbid0IHdhbnQgdG9cbiAgICAvLyBhY2NpZGVudGFsbHkgcmV2b2tlIHBlcm1pc3Npb24gb24gb2xkIHZlcnNpb25zIHdoZW4gZGVwbG95aW5nIGEgbmV3XG4gICAgLy8gdmVyc2lvbiAoZm9yIGV4YW1wbGUsIHdoZW4gdXNpbmcgTGFtYmRhIHRyYWZmaWMgc2hpZnRpbmcpLlxuICAgIHRoaXMuYXNzZXQuYnVja2V0LmdyYW50UmVhZChjb250ZXh0LmhhbmRsZXJSb2xlKTtcblxuICAgIHJldHVybiB7XG4gICAgICBidWNrZXQ6IHRoaXMuYXNzZXQuYnVja2V0LFxuICAgICAgemlwT2JqZWN0S2V5OiB0aGlzLmFzc2V0LnMzT2JqZWN0S2V5LFxuICAgIH07XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEphdmFTY3JpcHRTb3VyY2UgZXh0ZW5kcyBTb3VyY2U8XG5KYXZhU2NyaXB0U291cmNlUHJvcHMsXG5KYXZhU2NyaXB0QXNzZXRcbj4ge1xuICBhc3NldENsYXNzID0gSmF2YVNjcmlwdEFzc2V0O1xuXG4gIGNvbnN0cnVjdG9yKFxuXG4gICAgLyoqXG4gICAgICogQSBwYXRoIG9yIGxpc3Qgb3IgbWFwIG9mIHBhdGhzIHRvIHRoZSBlbnRyeSBwb2ludHMgb2YgeW91ciBjb2RlLlxuICAgICAqXG4gICAgICogUmVsYXRpdmUgcGF0aHMgYXJlIGJ5IGRlZmF1bHQgcmVzb2x2ZWQgZnJvbSB0aGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeS5cbiAgICAgKiBUbyBjaGFuZ2UgdGhlIHdvcmtpbmcgZGlyZWN0b3J5LCBzZWUgYGJ1aWxkT3B0aW9ucy5hYnNXb3JraW5nRGlyYC5cbiAgICAgKlxuICAgICAqIEFic29sdXRlIHBhdGhzIGNhbiBiZSB1c2VkIGlmIGZpbGVzIGFyZSBwYXJ0IG9mIHRoZSB3b3JraW5nIGRpcmVjdG9yeS5cbiAgICAgKlxuICAgICAqIEV4YW1wbGVzOlxuICAgICAqICAtIGAnc3JjL2luZGV4LnRzJ2BcbiAgICAgKiAgLSBgcmVxdWlyZS5yZXNvbHZlKCcuL2xhbWJkYScpYFxuICAgICAqICAtIGBbJ3NyYy9pbmRleC50cycsICdzcmMvdXRpbC50cyddYFxuICAgICAqICAtIGB7b25lOiAnc3JjL3R3by50cycsIHR3bzogJ3NyYy9vbmUudHMnfWBcbiAgICAgKlxuICAgICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAgICovXG4gICAgZW50cnlQb2ludHM6IEVudHJ5UG9pbnRzLFxuXG4gICAgLyoqXG4gICAgICAqIFByb3BzIHRvIGNoYW5nZSB0aGUgYmVoYXZpb3Igb2YgdGhlIGJ1bmRsZXIuXG4gICAgICAqXG4gICAgICAqIERlZmF1bHQgdmFsdWVzIGZvciBgcHJvcHMuYnVpbGRPcHRpb25zYDpcbiAgICAgICogLSBgYnVuZGxlPXRydWVgXG4gICAgICAqIC0gYHBsYXRmb3JtPWJyb3dzZXJgXG4gICAgICAqXG4gICAgICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAgICAqL1xuICAgIHByb3BzOiBKYXZhU2NyaXB0U291cmNlUHJvcHMgPSB7fSxcbiAgKSB7XG4gICAgc3VwZXIoZW50cnlQb2ludHMsIHByb3BzKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgVHlwZVNjcmlwdFNvdXJjZSBleHRlbmRzIFNvdXJjZTxcblR5cGVTY3JpcHRTb3VyY2VQcm9wcyxcblR5cGVTY3JpcHRBc3NldFxuPiB7XG4gIGFzc2V0Q2xhc3MgPSBUeXBlU2NyaXB0QXNzZXQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgLyoqXG4gICAgICogQSBwYXRoIG9yIGxpc3Qgb3IgbWFwIG9mIHBhdGhzIHRvIHRoZSBlbnRyeSBwb2ludHMgb2YgeW91ciBjb2RlLlxuICAgICAqXG4gICAgICogUmVsYXRpdmUgcGF0aHMgYXJlIGJ5IGRlZmF1bHQgcmVzb2x2ZWQgZnJvbSB0aGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeS5cbiAgICAgKiBUbyBjaGFuZ2UgdGhlIHdvcmtpbmcgZGlyZWN0b3J5LCBzZWUgYGJ1aWxkT3B0aW9ucy5hYnNXb3JraW5nRGlyYC5cbiAgICAgKlxuICAgICAqIEFic29sdXRlIHBhdGhzIGNhbiBiZSB1c2VkIGlmIGZpbGVzIGFyZSBwYXJ0IG9mIHRoZSB3b3JraW5nIGRpcmVjdG9yeS5cbiAgICAgKlxuICAgICAqIEV4YW1wbGVzOlxuICAgICAqICAtIGAnc3JjL2luZGV4LnRzJ2BcbiAgICAgKiAgLSBgcmVxdWlyZS5yZXNvbHZlKCcuL2xhbWJkYScpYFxuICAgICAqICAtIGBbJ3NyYy9pbmRleC50cycsICdzcmMvdXRpbC50cyddYFxuICAgICAqICAtIGB7b25lOiAnc3JjL3R3by50cycsIHR3bzogJ3NyYy9vbmUudHMnfWBcbiAgICAgKlxuICAgICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAgICovXG4gICAgZW50cnlQb2ludHM6IEVudHJ5UG9pbnRzLFxuXG4gICAgLyoqXG4gICAgICogUHJvcHMgdG8gY2hhbmdlIHRoZSBiZWhhdmlvciBvZiB0aGUgYnVuZGxlci5cbiAgICAgKlxuICAgICAqIERlZmF1bHQgdmFsdWVzIGZvciBgcHJvcHMuYnVpbGRPcHRpb25zYDpcbiAgICAgKiAtIGBidW5kbGU9dHJ1ZWBcbiAgICAgKiAtIGBwbGF0Zm9ybT1icm93c2VyYFxuICAgICAqXG4gICAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICAgKi9cbiAgICBwcm9wczogVHlwZVNjcmlwdFNvdXJjZVByb3BzID0ge30sXG4gICkge1xuICAgIHN1cGVyKGVudHJ5UG9pbnRzLCBwcm9wcyk7XG4gIH1cbn1cbiJdfQ==
package/lib/utils.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ interface CodedError {
2
+ code: string;
3
+ }
4
+ export declare function errorHasCode(error: unknown, code: string): error is CodedError;
5
+ export {};
package/lib/utils.js ADDED
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.errorHasCode = void 0;
4
+ function errorHasCode(error, code) {
5
+ return !!error
6
+ && typeof error == 'object'
7
+ && error != null
8
+ && 'code' in error
9
+ && error.code == code;
10
+ }
11
+ exports.errorHasCode = errorHasCode;
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBSUEsU0FBZ0IsWUFBWSxDQUFDLEtBQWMsRUFBRSxJQUFZO0lBQ3ZELE9BQU8sQ0FBQyxDQUFDLEtBQUs7V0FDWCxPQUFPLEtBQUssSUFBSSxRQUFRO1dBQ3hCLEtBQUssSUFBSSxJQUFJO1dBQ2IsTUFBTSxJQUFJLEtBQUs7V0FDZCxLQUFvQixDQUFDLElBQUksSUFBRyxJQUFJLENBQUM7QUFDdkMsQ0FBQztBQU5ELG9DQU1DIiwic291cmNlc0NvbnRlbnQiOlsiaW50ZXJmYWNlIENvZGVkRXJyb3Ige1xuICBjb2RlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlcnJvckhhc0NvZGUoZXJyb3I6IHVua25vd24sIGNvZGU6IHN0cmluZyk6IGVycm9yIGlzIENvZGVkRXJyb3Ige1xuICByZXR1cm4gISFlcnJvclxuICAmJiB0eXBlb2YgZXJyb3IgPT0gJ29iamVjdCdcbiAgJiYgZXJyb3IgIT0gbnVsbFxuICAmJiAnY29kZScgaW4gZXJyb3JcbiAgJiYgKGVycm9yIGFzIENvZGVkRXJyb3IpLmNvZGUgPT1jb2RlO1xufVxuIl19
package/package.json CHANGED
@@ -18,6 +18,7 @@
18
18
  "package": "npx projen package",
19
19
  "package-all": "npx projen package-all",
20
20
  "package:js": "npx projen package:js",
21
+ "package:python": "npx projen package:python",
21
22
  "post-compile": "npx projen post-compile",
22
23
  "post-upgrade": "npx projen post-upgrade",
23
24
  "pre-compile": "npx projen pre-compile",
@@ -46,7 +47,7 @@
46
47
  "@typescript-eslint/parser": "^5",
47
48
  "aws-cdk-lib": "2.0.0",
48
49
  "constructs": "10.0.5",
49
- "esbuild": "^0.14.0",
50
+ "esbuild": "^0.15.0",
50
51
  "eslint": "^8",
51
52
  "eslint-import-resolver-node": "^0.3.6",
52
53
  "eslint-import-resolver-typescript": "^2.7.1",
@@ -85,7 +86,7 @@
85
86
  "main": "lib/index.js",
86
87
  "license": "MIT",
87
88
  "homepage": "https://github.com/mrgrain/cdk-esbuild",
88
- "version": "3.8.0",
89
+ "version": "3.10.0",
89
90
  "jest": {
90
91
  "testPathIgnorePatterns": [
91
92
  "/node_modules/",
@@ -132,7 +133,12 @@
132
133
  "stability": "stable",
133
134
  "jsii": {
134
135
  "outdir": "dist",
135
- "targets": {},
136
+ "targets": {
137
+ "python": {
138
+ "distName": "mrgrain.cdk-esbuild",
139
+ "module": "mrgrain.cdk_esbuild"
140
+ }
141
+ },
136
142
  "tsc": {
137
143
  "outDir": "lib",
138
144
  "rootDir": "src"
@@ -145,7 +151,7 @@
145
151
  "@types/prettier": "2.6.0"
146
152
  },
147
153
  "optionalDependencies": {
148
- "esbuild": "^0.14.0"
154
+ "esbuild": "^0.15.0"
149
155
  },
150
156
  "//": "~~ Generated by projen. To modify, edit .projenrc.js and run \"npx projen\"."
151
157
  }