projen 0.53.3 → 0.53.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (116) hide show
  1. package/.jsii +3 -3
  2. package/README.md +56 -25
  3. package/changelog.md +1 -6
  4. package/lib/awscdk/auto-discover.js +4 -4
  5. package/lib/awscdk/awscdk-app-java.js +1 -1
  6. package/lib/awscdk/awscdk-app-py.js +1 -1
  7. package/lib/awscdk/awscdk-app-ts.js +1 -1
  8. package/lib/awscdk/awscdk-construct.js +2 -2
  9. package/lib/awscdk/awscdk-deps-java.js +1 -1
  10. package/lib/awscdk/awscdk-deps-js.js +1 -1
  11. package/lib/awscdk/awscdk-deps.js +1 -1
  12. package/lib/awscdk/cdk-config.js +1 -1
  13. package/lib/awscdk/cdk-tasks.js +1 -1
  14. package/lib/awscdk/integration-test.js +1 -1
  15. package/lib/awscdk/lambda-extension.js +1 -1
  16. package/lib/awscdk/lambda-function.js +2 -2
  17. package/lib/build/build-workflow.js +1 -1
  18. package/lib/cdk/auto-discover-base.js +2 -2
  19. package/lib/cdk/construct-lib.js +1 -1
  20. package/lib/cdk/integration-test-base.js +1 -1
  21. package/lib/cdk/jsii-docgen.js +1 -1
  22. package/lib/cdk/jsii-project.js +1 -1
  23. package/lib/cdk8s/auto-discover.js +2 -2
  24. package/lib/cdk8s/cdk8s-app-ts.js +1 -1
  25. package/lib/cdk8s/cdk8s-construct.js +1 -1
  26. package/lib/cdk8s/integration-test.js +1 -1
  27. package/lib/cdktf/cdktf-construct.js +1 -1
  28. package/lib/component.js +1 -1
  29. package/lib/dependencies.js +1 -1
  30. package/lib/dev-env.js +1 -1
  31. package/lib/docker-compose.js +2 -2
  32. package/lib/file.js +1 -1
  33. package/lib/gitattributes.js +1 -1
  34. package/lib/github/auto-approve.js +1 -1
  35. package/lib/github/auto-merge.js +1 -1
  36. package/lib/github/dependabot.js +1 -1
  37. package/lib/github/github-project.js +1 -1
  38. package/lib/github/github.js +1 -1
  39. package/lib/github/mergify.js +1 -1
  40. package/lib/github/pr-template.js +1 -1
  41. package/lib/github/pull-request-lint.js +1 -1
  42. package/lib/github/stale.js +1 -1
  43. package/lib/github/task-workflow.js +1 -1
  44. package/lib/github/workflows.js +1 -1
  45. package/lib/gitlab/configuration.js +1 -1
  46. package/lib/gitlab/gitlab-configuration.js +1 -1
  47. package/lib/gitlab/nested-configuration.js +1 -1
  48. package/lib/gitpod.js +1 -1
  49. package/lib/ignore-file.js +1 -1
  50. package/lib/ini.js +1 -1
  51. package/lib/java/java-project.js +1 -1
  52. package/lib/java/junit.js +1 -1
  53. package/lib/java/maven-compile.js +1 -1
  54. package/lib/java/maven-packaging.js +1 -1
  55. package/lib/java/maven-sample.js +1 -1
  56. package/lib/java/pom.js +1 -1
  57. package/lib/java/projenrc.js +1 -1
  58. package/lib/javascript/bundler.js +1 -1
  59. package/lib/javascript/eslint.js +1 -1
  60. package/lib/javascript/jest.js +1 -1
  61. package/lib/javascript/node-package.js +1 -1
  62. package/lib/javascript/node-project.js +1 -1
  63. package/lib/javascript/npm-config.js +1 -1
  64. package/lib/javascript/prettier.js +1 -1
  65. package/lib/javascript/projenrc.js +1 -1
  66. package/lib/javascript/typescript-config.js +1 -1
  67. package/lib/javascript/upgrade-dependencies.js +2 -2
  68. package/lib/json.js +1 -1
  69. package/lib/license.js +1 -1
  70. package/lib/logger.js +1 -1
  71. package/lib/makefile.js +1 -1
  72. package/lib/object-file.js +1 -1
  73. package/lib/project-build.js +1 -1
  74. package/lib/project.js +1 -1
  75. package/lib/projects.js +1 -1
  76. package/lib/projenrc-json.js +1 -1
  77. package/lib/python/pip.js +1 -1
  78. package/lib/python/poetry.js +2 -2
  79. package/lib/python/projenrc.js +1 -1
  80. package/lib/python/pytest-sample.js +1 -1
  81. package/lib/python/pytest.js +1 -1
  82. package/lib/python/python-project.js +1 -1
  83. package/lib/python/python-sample.js +1 -1
  84. package/lib/python/requirements-file.js +1 -1
  85. package/lib/python/setuppy.js +1 -1
  86. package/lib/python/setuptools.js +1 -1
  87. package/lib/python/venv.js +1 -1
  88. package/lib/readme.js +1 -1
  89. package/lib/release/publisher.js +1 -1
  90. package/lib/release/release-trigger.js +1 -1
  91. package/lib/release/release.js +1 -1
  92. package/lib/sample-file.js +2 -2
  93. package/lib/semver.js +1 -1
  94. package/lib/source-code.js +1 -1
  95. package/lib/task-runtime.js +1 -1
  96. package/lib/task.js +1 -1
  97. package/lib/tasks.js +1 -1
  98. package/lib/testing.js +1 -1
  99. package/lib/textfile.js +1 -1
  100. package/lib/toml.js +1 -1
  101. package/lib/typescript/projenrc.js +1 -1
  102. package/lib/typescript/typescript-typedoc.js +1 -1
  103. package/lib/typescript/typescript.js +3 -3
  104. package/lib/version.js +1 -1
  105. package/lib/vscode/devcontainer.js +1 -1
  106. package/lib/vscode/launch-config.js +1 -1
  107. package/lib/vscode/vscode.js +1 -1
  108. package/lib/web/next.js +3 -3
  109. package/lib/web/postcss.js +1 -1
  110. package/lib/web/react.js +4 -4
  111. package/lib/web/tailwind.js +1 -1
  112. package/lib/xmlfile.js +1 -1
  113. package/lib/yaml.js +1 -1
  114. package/package.json +1 -1
  115. package/releasetag.txt +1 -1
  116. package/version.txt +1 -1
package/.jsii CHANGED
@@ -49,7 +49,7 @@
49
49
  },
50
50
  "name": "projen",
51
51
  "readme": {
52
- "markdown": "# projen\n\n![projen logo](./logo/projen.svg)\n\n[![License](https://img.shields.io/badge/License-Apache%202.0-yellowgreen.svg)](https://opensource.org/licenses/Apache-2.0)\n[![Gitpod ready-to-code](https://img.shields.io/badge/Gitpod-ready--to--code-blue?logo=gitpod)](https://gitpod.io/#https://github.com/projen/projen)\n![Build](https://github.com/projen/projen/workflows/Build/badge.svg)\n![Release](https://github.com/projen/projen/workflows/Release/badge.svg)\n![Commit activity](https://img.shields.io/github/commit-activity/w/projen/projen)\n<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->\n[![All Contributors](https://img.shields.io/badge/all_contributors-67-orange.svg?style=flat-square)](#contributors-)\n<!-- ALL-CONTRIBUTORS-BADGE:END -->\n\nDefine and maintain complex project configuration through code.\n\n> JOIN THE [#TemplatesAreEvil] MOVEMENT!\n\n[#TemplatesAreEvil]: https://twitter.com/search?q=%23TemplatesAreEvil\n\n*projen* synthesizes project configuration files such as `package.json`,\n`tsconfig.json`, `.gitignore`, GitHub Workflows, eslint, jest, etc from a\nwell-typed definition written in JavaScript.\n\nCheck out [this talk](https://youtu.be/SOWMPzXtTCw) about projen.\n\nAs opposed to existing templating/scaffolding tools, *projen* is not a one-off\ngenerator. Synthesized files should never be manually edited (in fact, projen\nenforces that). To modify your project setup, users interact with rich\nstrongly-typed class and execute `projen` to update their project configuration\nfiles.\n\n## Getting Started\n\nTo create a new project, run the following command and follow the instructions:\n\n```console\n$ mkdir my-project\n$ cd my-project\n$ git init\n$ npx projen new PROJECT-TYPE\n🤖 Synthesizing project...\n...\n```\n\nCurrently supported project types (use `npx projen new` without a type for a\nlist):\n\n<!-- <macro exec=\"node ./scripts/readme-projects.js\"> -->\n* [awscdk-app-java](https://projen.io/api/API.html#projen-awscdk-awscdkjavaapp) - AWS CDK app in Java.\n* [awscdk-app-py](https://projen.io/api/API.html#projen-awscdk-awscdkpythonapp) - AWS CDK app in Python.\n* [awscdk-app-ts](https://projen.io/api/API.html#projen-awscdk-awscdktypescriptapp) - AWS CDK app in TypeScript.\n* [awscdk-construct](https://projen.io/api/API.html#projen-awscdk-awscdkconstructlibrary) - AWS CDK construct library project.\n* [cdk8s-app-ts](https://projen.io/api/API.html#projen-cdk8s-cdk8stypescriptapp) - CDK8s app in TypeScript.\n* [cdk8s-construct](https://projen.io/api/API.html#projen-cdk8s-constructlibrarycdk8s) - CDK8s construct library project.\n* [cdktf-construct](https://projen.io/api/API.html#projen-cdktf-constructlibrarycdktf) - CDKTF construct library project.\n* [java](https://projen.io/api/API.html#projen-java-javaproject) - Java project.\n* [jsii](https://projen.io/api/API.html#projen-cdk-jsiiproject) - Multi-language jsii library project.\n* [nextjs](https://projen.io/api/API.html#projen-web-nextjsproject) - Next.js project without TypeScript.\n* [nextjs-ts](https://projen.io/api/API.html#projen-web-nextjstypescriptproject) - Next.js project with TypeScript.\n* [node](https://projen.io/api/API.html#projen-javascript-nodeproject) - Node.js project.\n* [project](https://projen.io/api/API.html#projen-project) - Base project.\n* [python](https://projen.io/api/API.html#projen-python-pythonproject) - Python project.\n* [react](https://projen.io/api/API.html#projen-web-reactproject) - React project without TypeScript.\n* [react-ts](https://projen.io/api/API.html#projen-web-reacttypescriptproject) - React project with TypeScript.\n* [typescript](https://projen.io/api/API.html#projen-typescript-typescriptproject) - TypeScript project.\n* [typescript-app](https://projen.io/api/API.html#projen-typescript-typescriptappproject) - TypeScript app.\n<!-- </macro> -->\n\n> Use `npx projen new PROJECT-TYPE --help` to view a list of command line\n> switches that allows you to specify most project options during bootstrapping.\n> For example: `npx projen new jsii --author-name \"Jerry Berry\"`.\n\nThe `new` command will create a `.projenrc.js` file which looks like this for\n`jsii` projects:\n\n```js\nconst { JsiiProject } = require('projen');\n\nconst project = new JsiiProject({\n authorAddress: \"elad.benisrael@gmail.com\",\n authorName: \"Elad Ben-Israel\",\n name: \"foobar\",\n repository: \"https://github.com/eladn/foobar.git\",\n});\n\nproject.synth();\n```\n\nThis program instantiates the project type with minimal setup, and then calls\n`synth()` to synthesize the project files. By default, the `new` command will\nalso execute this program, which will result in a fully working project.\n\nOnce your project is created, you can configure your project by editing\n`.projenrc.js` and re-running `npx projen` to synthesize again.\n\n> The files generated by _projen_ are considered an \"implementation detail\" and\n> _projen_ protects them from being manually edited (most files are marked\n> read-only, and an \"anti tamper\" check is configured in the CI build workflow\n> to ensure that files are not updated during build).\n\nFor example, to setup PyPI publishing in `jsii` projects, you can use\n[`python option`](https://github.com/eladb/projen/blob/master/API.md#projen-jsiipythontarget):\n\n```js\nconst project = new JsiiProject({\n // ...\n python: {\n distName: \"mydist\",\n module: \"my_module\",\n }\n});\n```\n\nRun:\n\n```shell\nnpx projen\n```\n\nAnd you'll notice that your `package.json` file now contains a `python` section in\nits `jsii` config and the GitHub `release.yml` workflow includes a PyPI\npublishing step.\n\nWe recommend to put this in your shell profile, so you can simply run `pj` every\ntime you update `.projenrc.js`:\n\n```bash\nalias pj='npx projen'\n```\n\nMost projects come with an assortment of **tasks** that handle various\ndevelopment activities, from compiling to publishing. Tasks can be and composed\ntogether, and can be run as local commands or turned into GitHub workflows. You\ncan list all tasks with `npx projen --help`:\n\n```shell\n$ npx projen --help\nprojen [command]\n\nCommands:\n projen new [PROJECT-TYPE-NAME] [OPTIONS] Creates a new projen project\n projen clobber hard resets to HEAD of origin and cleans the local repo\n projen compile Only compile\n projen test:compile compiles the test code\n projen test Run tests\n projen build Full release build (test+compile)\n projen upgrade-dependencies upgrade dependencies\n projen upgrade-projen upgrade projen\n...\n```\n\nThe `build` task is the same task that's executed in your CI builds. It\ntypically compiles, lints, tests and packages your module for distribution.\n\n### Shell Completions\nIf installed as a global package, `projen` includes rich shell tab-completion support. To enable this in your shell, run:\n```shell\n# Bash\nprojen completion >> ~/.bashrc\n\n# ZSH\nprojen completion >> ~/.zshrc\n```\n## Features\n\nSome examples for features built-in to project types:\n\n* Fully synthesize `package.json`\n* Standard npm scripts like `compile`, `build`, `test`, `package`\n* eslint\n* Jest\n* jsii: compile, package, api compatibility checks, API.md\n* Bump & release scripts with CHANGELOG generation based on conventional commits (manual releases are currently broken! [#726](https://github.com/projen/projen/issues/726))\n* Automated PR builds\n* Automated releases to npm, maven, NuGet and PyPI\n* Mergify configuration\n* LICENSE file generation\n* gitignore + npmignore management\n* Node \"engines\" support with coupling to CI build environment and @types/node\n* Anti-tamper: CI builds will fail if a synthesized file is modified manually\n\n## API Reference\n\nSee [API Reference](https://projen.io/api/API.html) for API details.\n\nIn addition, several projen components and project types are explained with examples at <https://projen.io/> (currently a work in progress!).\n\n## Ecosystem\n\n_projen_ takes a \"batteries included\" approach and aims to offer dozens of different project types out of\nthe box (we are just getting started). Think `projen new react`, `projen new angular`, `projen new java-maven`,\n`projen new awscdk-typescript`, `projen new cdk8s-python` (nothing in projen is tied to javascript or npm!)...\n\nAdding new project types is as simple as submitting a pull request to this repo and exporting a class that\nextends `projen.Project` (or one of its derivatives). Projen automatically discovers project types so your\ntype will immediately be available in `projen new`.\n\n### Projects in external modules\n\n_projen_ is bundled with many project types out of the box, but it can also work\nwith project types and components defined in external jsii modules (the reason\nwe need jsii is because projen uses the jsii metadata to discover project types\n& options in projen new).\n\nSay we have a module in npm called `projen-vuejs` which includes a single project\ntype for vue.js:\n\n```bash\n$ npx projen new --from projen-vuejs\n```\n\nIf the referenced module includes multiple project types, the type is required.\nSwitches can also be used to specify initial values based on the project type\nAPIs. You can also use any package syntax supported by [yarn\nadd](https://classic.yarnpkg.com/en/docs/cli/add#toc-adding-dependencies) like\n`projen-vuejs@1.2.3`, `file:/path/to/local/folder`,\n`git@github.com/awesome/projen-vuejs#1.2.3`, etc.\n\n```bash\n$ npx projen new --from projen-vuejs@^2 vuejs-ts --description \"my awesome vue project\"\n```\n\nUnder the hood, `projen new` will install the `projen-vuejs` module from npm\n(version 2.0.0 and above), discover the project types in it and bootstrap the\n`vuejs-ts` project type. It will assign the value `\"my awesome vue project\"` to\nthe `description` field. If you examine your `.projenrc.js` file, you'll see\nthat `projen-vuejs` is defined as a dev dependency:\n\n```javascript\nconst { VueJsProject } = require('projen-vuejs');\n\nconst project = new VueJsProject({\n name: 'my-vuejs-sample',\n description: \"my awesome vue project\",\n // ...\n devDeps: [\n 'projen-vuejs'\n ]\n});\n\nproject.synth();\n```\n\n## Roadmap\n\nSee [Vision](./VISION.md).\n\n## FAQ\n\n### Do I have to write my configuration in JavaScript?\n\nNot at all! JavaScript is the default, but it's also possible to write it in\nJava, TypeScript, or even JSON. Python support is also planned. This is made\npossible by the [jsii](https://github.com/aws/jsii) library which allows us\nto write APIs once and generate libraries in several languages. You can choose\na different language by passing the `--projenrc-ts`, `--projenrc-java`, or\n`--projenrc-json` flags when running `projen new`.\n\nNote: using a `.projenrc.json` file to specify configuration only allows\naccessing a subset of the entire API - the options which are passed to the\nconstructor of each project type.\n\n## Contributions\n\nContributions of all kinds are welcome! Check out our [contributor's\nguide](./CONTRIBUTING.md) and our [code of conduct](./CODE_OF_CONDUCT.md).\n\nFor a quick start, check out a development environment:\n\n```bash\n$ git clone git@github.com:projen/projen\n$ cd projen\n$ yarn\n$ yarn watch # compile in the background\n```\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n <tr>\n <td align=\"center\"><a href=\"http://eladb.github.com/\"><img src=\"https://avatars3.githubusercontent.com/u/598796?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Elad Ben-Israel</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=eladb\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://rybicki.io/\"><img src=\"https://avatars2.githubusercontent.com/u/5008987?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Christopher Rybicki</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=Chriscbr\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"http://p6m7g8.github.io/\"><img src=\"https://avatars0.githubusercontent.com/u/34295?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Philip M. Gollucci</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=pgollucci\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/hoegertn\"><img src=\"https://avatars2.githubusercontent.com/u/1287829?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thorsten Hoeger</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=hoegertn\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/kcwinner\"><img src=\"https://avatars3.githubusercontent.com/u/2728868?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Kenneth Winner</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=kcwinner\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/JordanSinko\"><img src=\"https://avatars2.githubusercontent.com/u/10212966?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jordan Sinko</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=JordanSinko\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/misterjoshua\"><img src=\"https://avatars2.githubusercontent.com/u/644092?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Josh Kellendonk</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=misterjoshua\" title=\"Code\">💻</a></td>\n </tr>\n <tr>\n <td align=\"center\"><a href=\"https://github.com/andrestone\"><img src=\"https://avatars1.githubusercontent.com/u/7958086?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>andrestone</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=andrestone\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://pallares.io/\"><img src=\"https://avatars3.githubusercontent.com/u/1077520?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Cristian Pallarés</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=skyrpex\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/jogold\"><img src=\"https://avatars2.githubusercontent.com/u/12623249?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jonathan Goldwasser</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=jogold\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"http://www.matthewbonig.com/\"><img src=\"https://avatars2.githubusercontent.com/u/1559437?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Matthew Bonig</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=mbonig\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/pahud\"><img src=\"https://avatars3.githubusercontent.com/u/278432?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Pahud Hsieh</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=pahud\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/adamelmore\"><img src=\"https://avatars2.githubusercontent.com/u/2363879?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Adam Elmore</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=adamelmore\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/abelmokadem\"><img src=\"https://avatars0.githubusercontent.com/u/9717944?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Ash</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=abelmokadem\" title=\"Code\">💻</a></td>\n </tr>\n <tr>\n <td align=\"center\"><a href=\"https://github.com/jmourelos\"><img src=\"https://avatars3.githubusercontent.com/u/3878434?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jacob</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=jmourelos\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/bigkraig\"><img src=\"https://avatars1.githubusercontent.com/u/508403?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Kraig Amador</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=bigkraig\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/mmuller88\"><img src=\"https://avatars0.githubusercontent.com/u/18393842?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Martin Muller</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=mmuller88\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://tlakomy.com/\"><img src=\"https://avatars2.githubusercontent.com/u/16646517?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tomasz Łakomy</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=tlakomy\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/john-tipper\"><img src=\"https://avatars2.githubusercontent.com/u/9730398?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>john-tipper</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=john-tipper\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/henrysachs\"><img src=\"https://avatars0.githubusercontent.com/u/17173951?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Henry Sachs</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=henrysachs\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/eganjs\"><img src=\"https://avatars3.githubusercontent.com/u/6639482?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Joseph Egan</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=eganjs\" title=\"Code\">💻</a></td>\n </tr>\n <tr>\n <td align=\"center\"><a href=\"https://skorfmann.com/\"><img src=\"https://avatars1.githubusercontent.com/u/136789?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Sebastian Korfmann</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=skorfmann\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"http://www.callant.net/\"><img src=\"https://avatars1.githubusercontent.com/u/5915843?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Bart Callant</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=bartcallant\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/campionfellin\"><img src=\"https://avatars3.githubusercontent.com/u/11984923?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Campion Fellin</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=campionfellin\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/gradybarrett\"><img src=\"https://avatars1.githubusercontent.com/u/1140074?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Grady Barrett</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=gradybarrett\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/HassanMahmud\"><img src=\"https://avatars3.githubusercontent.com/u/58504381?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Hassan Mahmud</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=HassanMahmud\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://dk.linkedin.com/in/hassanmahmud93\"><img src=\"https://avatars1.githubusercontent.com/u/7426703?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Hassan Mahmud</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=hass123uk\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"http://joapy.com/\"><img src=\"https://avatars3.githubusercontent.com/u/325306?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jake Pearson</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=jakepearson\" title=\"Code\">💻</a></td>\n </tr>\n <tr>\n <td align=\"center\"><a href=\"https://github.com/JeremyJonas\"><img src=\"https://avatars1.githubusercontent.com/u/464119?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jeremy Jonas</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=JeremyJonas\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://dev.to/martzcodes\"><img src=\"https://avatars1.githubusercontent.com/u/978362?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Matt Martz</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=martzcodes\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/fongie\"><img src=\"https://avatars1.githubusercontent.com/u/19932622?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Max Körlinge</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=fongie\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://blog.neilkuan.dev/\"><img src=\"https://avatars2.githubusercontent.com/u/46012524?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Neil Kuan</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=guan840912\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://dynobase.dev/\"><img src=\"https://avatars3.githubusercontent.com/u/3391616?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rafal Wilinski</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=RafalWilinski\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://keybase.io/romainmuller\"><img src=\"https://avatars2.githubusercontent.com/u/411689?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Romain Marcadier</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=RomainMuller\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/thomasklinger1234\"><img src=\"https://avatars1.githubusercontent.com/u/39558817?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thomas Klinger</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=thomasklinger1234\" title=\"Code\">💻</a></td>\n </tr>\n <tr>\n <td align=\"center\"><a href=\"https://github.com/gwriss\"><img src=\"https://avatars2.githubusercontent.com/u/1842089?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tobias</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=gwriss\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/flyingImer\"><img src=\"https://avatars0.githubusercontent.com/u/1973868?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>flyingImer</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=flyingImer\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/Hunter-Thompson\"><img src=\"https://avatars.githubusercontent.com/u/20844961?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b> Aatman </b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=Hunter-Thompson\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/mmcculloh-dms\"><img src=\"https://avatars.githubusercontent.com/u/68597641?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Mark McCulloh</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=mmcculloh-dms\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/aisamu\"><img src=\"https://avatars.githubusercontent.com/u/431708?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Samuel Tschiedel</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=aisamu\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/iliapolo\"><img src=\"https://avatars.githubusercontent.com/u/1428812?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Eli Polonsky</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=iliapolo\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://unsubstantiated.blog/\"><img src=\"https://avatars.githubusercontent.com/u/1308885?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Alexander Steppke</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=Miradorn\" title=\"Code\">💻</a></td>\n </tr>\n <tr>\n <td align=\"center\"><a href=\"https://github.com/kanatti\"><img src=\"https://avatars.githubusercontent.com/u/8623654?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Balagopal Kanattil</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=kanatti\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"http://twitter.com/bracki\"><img src=\"https://avatars.githubusercontent.com/u/49786?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jan Brauer</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=bracki\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://polothy.github.io/\"><img src=\"https://avatars.githubusercontent.com/u/634657?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Mark Nielsen</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=polothy\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/MrArnoldPalmer\"><img src=\"https://avatars.githubusercontent.com/u/7221111?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Mitchell Valine</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=MrArnoldPalmer\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://blog.neilkuan.net/\"><img src=\"https://avatars.githubusercontent.com/u/46012524?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Neil Kuan</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=neilkuan\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://garbe.io/\"><img src=\"https://avatars.githubusercontent.com/u/721899?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Philipp Garbe</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=pgarbe\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://selfstructured.com/\"><img src=\"https://avatars.githubusercontent.com/u/361689?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Shawn MacIntyre</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=smacintyre\" title=\"Code\">💻</a></td>\n </tr>\n <tr>\n <td align=\"center\"><a href=\"https://github.com/tobias-bardino\"><img src=\"https://avatars.githubusercontent.com/u/1842089?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tobias</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=tobias-bardino\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/yglcode\"><img src=\"https://avatars.githubusercontent.com/u/11893614?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Yigong Liu</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=yglcode\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/eduardomourar\"><img src=\"https://avatars.githubusercontent.com/u/16357187?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Eduardo Rodrigues</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=eduardomourar\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/hassanazharkhan\"><img src=\"https://avatars.githubusercontent.com/u/57677979?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Hassan Azhar</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=hassanazharkhan\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://www.linkedin.com/in/julian-michel-812a223a/\"><img src=\"https://avatars.githubusercontent.com/u/15660169?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Julian Michel</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=jumic\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/lmarsden\"><img src=\"https://avatars.githubusercontent.com/u/51232932?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>lmarsden</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=lmarsden\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/adrianmace\"><img src=\"https://avatars.githubusercontent.com/u/5071859?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Adrian Mace</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=adrianmace\" title=\"Code\">💻</a></td>\n </tr>\n <tr>\n <td align=\"center\"><a href=\"https://github.com/mKeRix\"><img src=\"https://avatars.githubusercontent.com/u/770596?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Heiko Rothe</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=mKeRix\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/hyandell\"><img src=\"https://avatars.githubusercontent.com/u/477715?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Henri Yandell</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=hyandell\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/mwg-rea\"><img src=\"https://avatars.githubusercontent.com/u/82480228?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Matthew Gamble</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=mwg-rea\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://willdady.com/\"><img src=\"https://avatars.githubusercontent.com/u/204259?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Will Dady</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=willdady\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/msessa\"><img src=\"https://avatars.githubusercontent.com/u/1912143?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Matteo Sessa</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=msessa\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/Hi-Fi\"><img src=\"https://avatars.githubusercontent.com/u/1499780?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Juho Saarinen</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=Hi-Fi\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/njlynch\"><img src=\"https://avatars.githubusercontent.com/u/1376292?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Nick Lynch</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=njlynch\" title=\"Code\">💻</a></td>\n </tr>\n <tr>\n <td align=\"center\"><a href=\"https://amani.kilumanga.com/\"><img src=\"https://avatars.githubusercontent.com/u/8690282?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Amani Kilumanga</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=dkaksl\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"http://blog.herlein.com/\"><img src=\"https://avatars.githubusercontent.com/u/173428?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Greg Herlein</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=gherlein\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/kaizen3031593\"><img src=\"https://avatars.githubusercontent.com/u/36202692?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Kaizen Conroy</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=kaizen3031593\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/saudkhanzada\"><img src=\"https://avatars.githubusercontent.com/u/30137907?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Saud Khanzada</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=saudkhanzada\" title=\"Code\">💻</a></td>\n </tr>\n</table>\n\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\n## License\n\nDistributed under the [Apache-2.0](./LICENSE) license.\n"
52
+ "markdown": "<p align=\"center\">\n <a href=\"https://projen.io\">\n <img src=\"https://raw.githubusercontent.com/projen/projen/main/logo/projen.svg\">\n <h3 align=\"center\">projen</h3>\n </a>\n</p>\n\n<p align=\"center\">\n Define and maintain complex project configuration through code.\n</p>\n\n<p align=\"center\">\n <a href=\"https://projen.io/\"><strong>Documentation</strong></a> ·\n <a href=\"https://github.com/projen/projen/releases\"><strong>Changelog</strong></a> ·\n <a href=\"#project-types\"><strong>Project types</strong></a> ·\n <a href=\"#community\"><strong>Join the community</strong></a>\n</p>\n\n<p align=\"center\">\n <a href=\"https://opensource.org/licenses/Apache-2.0\"><img src=\"https://img.shields.io/badge/License-Apache%202.0-yellowgreen.svg\" alt=\"Apache 2.0 License\"></a>\n <a href=\"https://gitpod.io/#https://github.com/projen/projen\"><img src=\"https://img.shields.io/badge/Gitpod-ready--to--code-blue?logo=gitpod\" alt=\"Gitpod ready-to-code\"></a>\n <a href=\"https://github.com/projen/projen/actions/workflows/build.yml\"><img src=\"https://github.com/projen/projen/workflows/Build/badge.svg\" alt=\"Build badge\"></a>\n <a href=\"https://github.com/projen/projen/actions/workflows/release.yml\"><img src=\"https://github.com/projen/projen/workflows/Release/badge.svg\" alt=\"Release badge\"></a>\n <a href=\"https://github.com/projen/projen/commits/main\"><img src=\"https://img.shields.io/github/commit-activity/w/projen/projen\" alt=\"Commit activity\"></a>\n</p>\n\n<br/>\n\n*projen* synthesizes project configuration files such as `package.json`,\n`tsconfig.json`, `.gitignore`, GitHub Workflows, eslint, jest, etc from a\nwell-typed definition written in JavaScript.\n\nAs opposed to existing templating/scaffolding tools, *projen* is not a one-off\ngenerator. Synthesized files should never be manually edited (in fact, projen\nenforces that). To modify your project setup, users interact with rich\nstrongly-typed class and execute `projen` to update their project configuration\nfiles.\n\nBy defining a custom project type and using projen in multiple repositories, it's\npossible to update configuration files and CI/CD workflows across dozens (or\nhundreds!?) of projects.\n\nCheck out [this talk](https://youtu.be/SOWMPzXtTCw) about projen from its creator.\n\n## Getting Started\n\nTo create a new project, run the following command and follow the instructions:\n\n```console\n$ mkdir my-project\n$ cd my-project\n$ git init\n$ npx projen new PROJECT-TYPE\n🤖 Synthesizing project...\n...\n```\n\n### Project types\n\nCurrently supported project types (use `npx projen new` without a type for a\nlist):\n\n<!-- <macro exec=\"node ./scripts/readme-projects.js\"> -->\n* [awscdk-app-java](https://projen.io/api/API.html#projen-awscdk-awscdkjavaapp) - AWS CDK app in Java.\n* [awscdk-app-py](https://projen.io/api/API.html#projen-awscdk-awscdkpythonapp) - AWS CDK app in Python.\n* [awscdk-app-ts](https://projen.io/api/API.html#projen-awscdk-awscdktypescriptapp) - AWS CDK app in TypeScript.\n* [awscdk-construct](https://projen.io/api/API.html#projen-awscdk-awscdkconstructlibrary) - AWS CDK construct library project.\n* [cdk8s-app-ts](https://projen.io/api/API.html#projen-cdk8s-cdk8stypescriptapp) - CDK8s app in TypeScript.\n* [cdk8s-construct](https://projen.io/api/API.html#projen-cdk8s-constructlibrarycdk8s) - CDK8s construct library project.\n* [cdktf-construct](https://projen.io/api/API.html#projen-cdktf-constructlibrarycdktf) - CDKTF construct library project.\n* [java](https://projen.io/api/API.html#projen-java-javaproject) - Java project.\n* [jsii](https://projen.io/api/API.html#projen-cdk-jsiiproject) - Multi-language jsii library project.\n* [nextjs](https://projen.io/api/API.html#projen-web-nextjsproject) - Next.js project without TypeScript.\n* [nextjs-ts](https://projen.io/api/API.html#projen-web-nextjstypescriptproject) - Next.js project with TypeScript.\n* [node](https://projen.io/api/API.html#projen-javascript-nodeproject) - Node.js project.\n* [project](https://projen.io/api/API.html#projen-project) - Base project.\n* [python](https://projen.io/api/API.html#projen-python-pythonproject) - Python project.\n* [react](https://projen.io/api/API.html#projen-web-reactproject) - React project without TypeScript.\n* [react-ts](https://projen.io/api/API.html#projen-web-reacttypescriptproject) - React project with TypeScript.\n* [typescript](https://projen.io/api/API.html#projen-typescript-typescriptproject) - TypeScript project.\n* [typescript-app](https://projen.io/api/API.html#projen-typescript-typescriptappproject) - TypeScript app.\n<!-- </macro> -->\n\n> Use `npx projen new PROJECT-TYPE --help` to view a list of command line\n> switches that allows you to specify most project options during bootstrapping.\n> For example: `npx projen new jsii --author-name \"Jerry Berry\"`.\n\nThe `new` command will create a `.projenrc.js` file which looks like this for\n`jsii` projects:\n\n```js\nconst { JsiiProject } = require('projen');\n\nconst project = new JsiiProject({\n authorAddress: \"elad.benisrael@gmail.com\",\n authorName: \"Elad Ben-Israel\",\n name: \"foobar\",\n repository: \"https://github.com/eladn/foobar.git\",\n});\n\nproject.synth();\n```\n\nThis program instantiates the project type with minimal setup, and then calls\n`synth()` to synthesize the project files. By default, the `new` command will\nalso execute this program, which will result in a fully working project.\n\nOnce your project is created, you can configure your project by editing\n`.projenrc.js` and re-running `npx projen` to synthesize again.\n\n> The files generated by _projen_ are considered an \"implementation detail\" and\n> _projen_ protects them from being manually edited (most files are marked\n> read-only, and an \"anti tamper\" check is configured in the CI build workflow\n> to ensure that files are not updated during build).\n\nFor example, to setup PyPI publishing in `jsii` projects, you can use\n[`python option`](https://github.com/eladb/projen/blob/master/API.md#projen-jsiipythontarget):\n\n```js\nconst project = new JsiiProject({\n // ...\n python: {\n distName: \"mydist\",\n module: \"my_module\",\n }\n});\n```\n\nRun:\n\n```shell\nnpx projen\n```\n\nAnd you'll notice that your `package.json` file now contains a `python` section in\nits `jsii` config and the GitHub `release.yml` workflow includes a PyPI\npublishing step.\n\nWe recommend to put this in your shell profile, so you can simply run `pj` every\ntime you update `.projenrc.js`:\n\n```bash\nalias pj='npx projen'\n```\n\nMost projects come with an assortment of **tasks** that handle various\ndevelopment activities, from compiling to publishing. Tasks can be and composed\ntogether, and can be run as local commands or turned into GitHub workflows. You\ncan list all tasks with `npx projen --help`:\n\n```shell\n$ npx projen --help\nprojen [command]\n\nCommands:\n projen new [PROJECT-TYPE-NAME] [OPTIONS] Creates a new projen project\n projen clobber hard resets to HEAD of origin and cleans the local repo\n projen compile Only compile\n projen test:compile compiles the test code\n projen test Run tests\n projen build Full release build (test+compile)\n projen upgrade-dependencies upgrade dependencies\n projen upgrade-projen upgrade projen\n...\n```\n\nThe `build` task is the same task that's executed in your CI builds. It\ntypically compiles, lints, tests and packages your module for distribution.\n\n### Shell Completions\nIf installed as a global package, `projen` includes rich shell tab-completion support. To enable this in your shell, run:\n```shell\n# Bash\nprojen completion >> ~/.bashrc\n\n# ZSH\nprojen completion >> ~/.zshrc\n```\n## Features\n\nSome examples for features built-in to project types:\n\n* Fully synthesize `package.json`\n* Standard npm scripts like `compile`, `build`, `test`, `package`\n* eslint\n* Jest\n* jsii: compile, package, api compatibility checks, API.md\n* Bump & release scripts with CHANGELOG generation based on conventional commits\n* Automated PR builds\n* Automated releases to npm, maven, NuGet and PyPI\n* Automated dependency upgrades\n* Mergify configuration\n* LICENSE file generation\n* gitignore + npmignore management\n* Node \"engines\" support with coupling to CI build environment and @types/node\n* Anti-tamper: CI builds will fail if a synthesized file is modified manually\n\n## Documentation\n\nFor documentation including examples and a full API reference, visit <https://projen.io/>.\n\n## Ecosystem\n\n_projen_ takes a \"batteries included\" approach and aims to offer dozens of different project types out of\nthe box (we are just getting started). Think `projen new react`, `projen new angular`, `projen new java-maven`,\n`projen new awscdk-typescript`, `projen new cdk8s-python` (nothing in projen is tied to javascript or npm!)...\n\nAdding new project types is as simple as submitting a pull request to this repo and exporting a class that\nextends `projen.Project` (or one of its derivatives). Projen automatically discovers project types so your\ntype will immediately be available in `projen new`.\n\n### Projects in external modules\n\n_projen_ is bundled with many project types out of the box, but it can also work\nwith project types and components defined in external jsii modules (the reason\nwe need jsii is because projen uses the jsii metadata to discover project types\n& options in projen new).\n\nSay we have a module in npm called `projen-vuejs` which includes a single project\ntype for vue.js:\n\n```bash\n$ npx projen new --from projen-vuejs\n```\n\nIf the referenced module includes multiple project types, the type is required.\nSwitches can also be used to specify initial values based on the project type\nAPIs. You can also use any package syntax supported by [yarn\nadd](https://classic.yarnpkg.com/en/docs/cli/add#toc-adding-dependencies) like\n`projen-vuejs@1.2.3`, `file:/path/to/local/folder`,\n`git@github.com/awesome/projen-vuejs#1.2.3`, etc.\n\n```bash\n$ npx projen new --from projen-vuejs@^2 vuejs-ts --description \"my awesome vue project\"\n```\n\nUnder the hood, `projen new` will install the `projen-vuejs` module from npm\n(version 2.0.0 and above), discover the project types in it and bootstrap the\n`vuejs-ts` project type. It will assign the value `\"my awesome vue project\"` to\nthe `description` field. If you examine your `.projenrc.js` file, you'll see\nthat `projen-vuejs` is defined as a dev dependency:\n\n```javascript\nconst { VueJsProject } = require('projen-vuejs');\n\nconst project = new VueJsProject({\n name: 'my-vuejs-sample',\n description: \"my awesome vue project\",\n // ...\n devDeps: [\n 'projen-vuejs'\n ]\n});\n\nproject.synth();\n```\n\n## Roadmap\n\nSee [Vision](./VISION.md).\n\n## FAQ\n\n### Do I have to write my configuration in JavaScript?\n\nNot at all! JavaScript is the default, but it's also possible to write it in\nJava, TypeScript, or even JSON. Python support is also planned. This is made\npossible by the [jsii](https://github.com/aws/jsii) library which allows us\nto write APIs once and generate libraries in several languages. You can choose\na different language by passing the `--projenrc-ts`, `--projenrc-java`, or\n`--projenrc-json` flags when running `projen new`.\n\nNote: using a `.projenrc.json` file to specify configuration only allows\naccessing a subset of the entire API - the options which are passed to the\nconstructor of each project type.\n\n### How does projen work with my IDE?\n\nprojen has an unofficial [VS Code extension]. Check it out!\n\n[VS Code extension]: https://marketplace.visualstudio.com/items?itemName=MarkMcCulloh.vscode-projen\n\n## Community\n\nThe projen community can be found within the #projen channel in the [cdk.dev]\ncommunity Slack workspace.\n\n[cdk.dev]: https://cdk.dev/\n\n## Contributions\n\nContributions of all kinds are welcome! Check out our [contributor's\nguide](./CONTRIBUTING.md) and our [code of conduct](./CODE_OF_CONDUCT.md).\n\nFor a quick start, check out a development environment:\n\n```bash\n$ git clone git@github.com:projen/projen\n$ cd projen\n$ yarn\n$ yarn watch # compile in the background\n```\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->\n[![All Contributors](https://img.shields.io/badge/all_contributors-67-orange.svg?style=flat-square)](#contributors-)\n<!-- ALL-CONTRIBUTORS-BADGE:END -->\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n <tr>\n <td align=\"center\"><a href=\"http://eladb.github.com/\"><img src=\"https://avatars3.githubusercontent.com/u/598796?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Elad Ben-Israel</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=eladb\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://rybicki.io/\"><img src=\"https://avatars2.githubusercontent.com/u/5008987?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Christopher Rybicki</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=Chriscbr\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"http://p6m7g8.github.io/\"><img src=\"https://avatars0.githubusercontent.com/u/34295?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Philip M. Gollucci</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=pgollucci\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/hoegertn\"><img src=\"https://avatars2.githubusercontent.com/u/1287829?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thorsten Hoeger</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=hoegertn\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/kcwinner\"><img src=\"https://avatars3.githubusercontent.com/u/2728868?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Kenneth Winner</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=kcwinner\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/JordanSinko\"><img src=\"https://avatars2.githubusercontent.com/u/10212966?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jordan Sinko</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=JordanSinko\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/misterjoshua\"><img src=\"https://avatars2.githubusercontent.com/u/644092?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Josh Kellendonk</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=misterjoshua\" title=\"Code\">💻</a></td>\n </tr>\n <tr>\n <td align=\"center\"><a href=\"https://github.com/andrestone\"><img src=\"https://avatars1.githubusercontent.com/u/7958086?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>andrestone</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=andrestone\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://pallares.io/\"><img src=\"https://avatars3.githubusercontent.com/u/1077520?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Cristian Pallarés</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=skyrpex\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/jogold\"><img src=\"https://avatars2.githubusercontent.com/u/12623249?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jonathan Goldwasser</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=jogold\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"http://www.matthewbonig.com/\"><img src=\"https://avatars2.githubusercontent.com/u/1559437?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Matthew Bonig</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=mbonig\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/pahud\"><img src=\"https://avatars3.githubusercontent.com/u/278432?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Pahud Hsieh</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=pahud\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/adamelmore\"><img src=\"https://avatars2.githubusercontent.com/u/2363879?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Adam Elmore</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=adamelmore\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/abelmokadem\"><img src=\"https://avatars0.githubusercontent.com/u/9717944?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Ash</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=abelmokadem\" title=\"Code\">💻</a></td>\n </tr>\n <tr>\n <td align=\"center\"><a href=\"https://github.com/jmourelos\"><img src=\"https://avatars3.githubusercontent.com/u/3878434?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jacob</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=jmourelos\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/bigkraig\"><img src=\"https://avatars1.githubusercontent.com/u/508403?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Kraig Amador</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=bigkraig\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/mmuller88\"><img src=\"https://avatars0.githubusercontent.com/u/18393842?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Martin Muller</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=mmuller88\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://tlakomy.com/\"><img src=\"https://avatars2.githubusercontent.com/u/16646517?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tomasz Łakomy</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=tlakomy\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/john-tipper\"><img src=\"https://avatars2.githubusercontent.com/u/9730398?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>john-tipper</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=john-tipper\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/henrysachs\"><img src=\"https://avatars0.githubusercontent.com/u/17173951?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Henry Sachs</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=henrysachs\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/eganjs\"><img src=\"https://avatars3.githubusercontent.com/u/6639482?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Joseph Egan</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=eganjs\" title=\"Code\">💻</a></td>\n </tr>\n <tr>\n <td align=\"center\"><a href=\"https://skorfmann.com/\"><img src=\"https://avatars1.githubusercontent.com/u/136789?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Sebastian Korfmann</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=skorfmann\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"http://www.callant.net/\"><img src=\"https://avatars1.githubusercontent.com/u/5915843?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Bart Callant</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=bartcallant\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/campionfellin\"><img src=\"https://avatars3.githubusercontent.com/u/11984923?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Campion Fellin</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=campionfellin\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/gradybarrett\"><img src=\"https://avatars1.githubusercontent.com/u/1140074?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Grady Barrett</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=gradybarrett\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/HassanMahmud\"><img src=\"https://avatars3.githubusercontent.com/u/58504381?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Hassan Mahmud</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=HassanMahmud\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://dk.linkedin.com/in/hassanmahmud93\"><img src=\"https://avatars1.githubusercontent.com/u/7426703?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Hassan Mahmud</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=hass123uk\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"http://joapy.com/\"><img src=\"https://avatars3.githubusercontent.com/u/325306?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jake Pearson</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=jakepearson\" title=\"Code\">💻</a></td>\n </tr>\n <tr>\n <td align=\"center\"><a href=\"https://github.com/JeremyJonas\"><img src=\"https://avatars1.githubusercontent.com/u/464119?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jeremy Jonas</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=JeremyJonas\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://dev.to/martzcodes\"><img src=\"https://avatars1.githubusercontent.com/u/978362?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Matt Martz</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=martzcodes\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/fongie\"><img src=\"https://avatars1.githubusercontent.com/u/19932622?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Max Körlinge</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=fongie\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://blog.neilkuan.dev/\"><img src=\"https://avatars2.githubusercontent.com/u/46012524?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Neil Kuan</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=guan840912\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://dynobase.dev/\"><img src=\"https://avatars3.githubusercontent.com/u/3391616?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rafal Wilinski</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=RafalWilinski\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://keybase.io/romainmuller\"><img src=\"https://avatars2.githubusercontent.com/u/411689?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Romain Marcadier</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=RomainMuller\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/thomasklinger1234\"><img src=\"https://avatars1.githubusercontent.com/u/39558817?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thomas Klinger</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=thomasklinger1234\" title=\"Code\">💻</a></td>\n </tr>\n <tr>\n <td align=\"center\"><a href=\"https://github.com/gwriss\"><img src=\"https://avatars2.githubusercontent.com/u/1842089?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tobias</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=gwriss\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/flyingImer\"><img src=\"https://avatars0.githubusercontent.com/u/1973868?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>flyingImer</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=flyingImer\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/Hunter-Thompson\"><img src=\"https://avatars.githubusercontent.com/u/20844961?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b> Aatman </b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=Hunter-Thompson\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/mmcculloh-dms\"><img src=\"https://avatars.githubusercontent.com/u/68597641?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Mark McCulloh</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=mmcculloh-dms\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/aisamu\"><img src=\"https://avatars.githubusercontent.com/u/431708?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Samuel Tschiedel</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=aisamu\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/iliapolo\"><img src=\"https://avatars.githubusercontent.com/u/1428812?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Eli Polonsky</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=iliapolo\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://unsubstantiated.blog/\"><img src=\"https://avatars.githubusercontent.com/u/1308885?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Alexander Steppke</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=Miradorn\" title=\"Code\">💻</a></td>\n </tr>\n <tr>\n <td align=\"center\"><a href=\"https://github.com/kanatti\"><img src=\"https://avatars.githubusercontent.com/u/8623654?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Balagopal Kanattil</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=kanatti\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"http://twitter.com/bracki\"><img src=\"https://avatars.githubusercontent.com/u/49786?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jan Brauer</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=bracki\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://polothy.github.io/\"><img src=\"https://avatars.githubusercontent.com/u/634657?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Mark Nielsen</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=polothy\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/MrArnoldPalmer\"><img src=\"https://avatars.githubusercontent.com/u/7221111?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Mitchell Valine</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=MrArnoldPalmer\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://blog.neilkuan.net/\"><img src=\"https://avatars.githubusercontent.com/u/46012524?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Neil Kuan</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=neilkuan\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://garbe.io/\"><img src=\"https://avatars.githubusercontent.com/u/721899?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Philipp Garbe</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=pgarbe\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://selfstructured.com/\"><img src=\"https://avatars.githubusercontent.com/u/361689?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Shawn MacIntyre</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=smacintyre\" title=\"Code\">💻</a></td>\n </tr>\n <tr>\n <td align=\"center\"><a href=\"https://github.com/tobias-bardino\"><img src=\"https://avatars.githubusercontent.com/u/1842089?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tobias</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=tobias-bardino\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/yglcode\"><img src=\"https://avatars.githubusercontent.com/u/11893614?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Yigong Liu</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=yglcode\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/eduardomourar\"><img src=\"https://avatars.githubusercontent.com/u/16357187?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Eduardo Rodrigues</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=eduardomourar\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/hassanazharkhan\"><img src=\"https://avatars.githubusercontent.com/u/57677979?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Hassan Azhar</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=hassanazharkhan\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://www.linkedin.com/in/julian-michel-812a223a/\"><img src=\"https://avatars.githubusercontent.com/u/15660169?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Julian Michel</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=jumic\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/lmarsden\"><img src=\"https://avatars.githubusercontent.com/u/51232932?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>lmarsden</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=lmarsden\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/adrianmace\"><img src=\"https://avatars.githubusercontent.com/u/5071859?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Adrian Mace</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=adrianmace\" title=\"Code\">💻</a></td>\n </tr>\n <tr>\n <td align=\"center\"><a href=\"https://github.com/mKeRix\"><img src=\"https://avatars.githubusercontent.com/u/770596?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Heiko Rothe</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=mKeRix\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/hyandell\"><img src=\"https://avatars.githubusercontent.com/u/477715?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Henri Yandell</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=hyandell\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/mwg-rea\"><img src=\"https://avatars.githubusercontent.com/u/82480228?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Matthew Gamble</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=mwg-rea\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://willdady.com/\"><img src=\"https://avatars.githubusercontent.com/u/204259?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Will Dady</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=willdady\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/msessa\"><img src=\"https://avatars.githubusercontent.com/u/1912143?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Matteo Sessa</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=msessa\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/Hi-Fi\"><img src=\"https://avatars.githubusercontent.com/u/1499780?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Juho Saarinen</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=Hi-Fi\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/njlynch\"><img src=\"https://avatars.githubusercontent.com/u/1376292?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Nick Lynch</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=njlynch\" title=\"Code\">💻</a></td>\n </tr>\n <tr>\n <td align=\"center\"><a href=\"https://amani.kilumanga.com/\"><img src=\"https://avatars.githubusercontent.com/u/8690282?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Amani Kilumanga</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=dkaksl\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"http://blog.herlein.com/\"><img src=\"https://avatars.githubusercontent.com/u/173428?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Greg Herlein</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=gherlein\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/kaizen3031593\"><img src=\"https://avatars.githubusercontent.com/u/36202692?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Kaizen Conroy</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=kaizen3031593\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/saudkhanzada\"><img src=\"https://avatars.githubusercontent.com/u/30137907?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Saud Khanzada</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=saudkhanzada\" title=\"Code\">💻</a></td>\n </tr>\n</table>\n\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\n## License\n\nDistributed under the [Apache-2.0](./LICENSE) license.\n"
53
53
  },
54
54
  "repository": {
55
55
  "type": "git",
@@ -44862,6 +44862,6 @@
44862
44862
  "symbolId": "src/web/tailwind:TailwindConfigOptions"
44863
44863
  }
44864
44864
  },
44865
- "version": "0.53.3",
44866
- "fingerprint": "WnuPZQj0ZfurR/s2eFfW0JTdtr2myscZJNg3hA/byz4="
44865
+ "version": "0.53.4",
44866
+ "fingerprint": "KvXrqhoYjTcTUjDalbI7xVCsfCuPMRRghFpiimZgU0I="
44867
44867
  }
package/README.md CHANGED
@@ -1,34 +1,47 @@
1
- # projen
2
-
3
- ![projen logo](./logo/projen.svg)
4
-
5
- [![License](https://img.shields.io/badge/License-Apache%202.0-yellowgreen.svg)](https://opensource.org/licenses/Apache-2.0)
6
- [![Gitpod ready-to-code](https://img.shields.io/badge/Gitpod-ready--to--code-blue?logo=gitpod)](https://gitpod.io/#https://github.com/projen/projen)
7
- ![Build](https://github.com/projen/projen/workflows/Build/badge.svg)
8
- ![Release](https://github.com/projen/projen/workflows/Release/badge.svg)
9
- ![Commit activity](https://img.shields.io/github/commit-activity/w/projen/projen)
10
- <!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
11
- [![All Contributors](https://img.shields.io/badge/all_contributors-67-orange.svg?style=flat-square)](#contributors-)
12
- <!-- ALL-CONTRIBUTORS-BADGE:END -->
13
-
14
- Define and maintain complex project configuration through code.
15
-
16
- > JOIN THE [#TemplatesAreEvil] MOVEMENT!
17
-
18
- [#TemplatesAreEvil]: https://twitter.com/search?q=%23TemplatesAreEvil
1
+ <p align="center">
2
+ <a href="https://projen.io">
3
+ <img src="https://raw.githubusercontent.com/projen/projen/main/logo/projen.svg">
4
+ <h3 align="center">projen</h3>
5
+ </a>
6
+ </p>
7
+
8
+ <p align="center">
9
+ Define and maintain complex project configuration through code.
10
+ </p>
11
+
12
+ <p align="center">
13
+ <a href="https://projen.io/"><strong>Documentation</strong></a> ·
14
+ <a href="https://github.com/projen/projen/releases"><strong>Changelog</strong></a> ·
15
+ <a href="#project-types"><strong>Project types</strong></a> ·
16
+ <a href="#community"><strong>Join the community</strong></a>
17
+ </p>
18
+
19
+ <p align="center">
20
+ <a href="https://opensource.org/licenses/Apache-2.0"><img src="https://img.shields.io/badge/License-Apache%202.0-yellowgreen.svg" alt="Apache 2.0 License"></a>
21
+ <a href="https://gitpod.io/#https://github.com/projen/projen"><img src="https://img.shields.io/badge/Gitpod-ready--to--code-blue?logo=gitpod" alt="Gitpod ready-to-code"></a>
22
+ <a href="https://github.com/projen/projen/actions/workflows/build.yml"><img src="https://github.com/projen/projen/workflows/Build/badge.svg" alt="Build badge"></a>
23
+ <a href="https://github.com/projen/projen/actions/workflows/release.yml"><img src="https://github.com/projen/projen/workflows/Release/badge.svg" alt="Release badge"></a>
24
+ <a href="https://github.com/projen/projen/commits/main"><img src="https://img.shields.io/github/commit-activity/w/projen/projen" alt="Commit activity"></a>
25
+ </p>
26
+
27
+ <br/>
19
28
 
20
29
  *projen* synthesizes project configuration files such as `package.json`,
21
30
  `tsconfig.json`, `.gitignore`, GitHub Workflows, eslint, jest, etc from a
22
31
  well-typed definition written in JavaScript.
23
32
 
24
- Check out [this talk](https://youtu.be/SOWMPzXtTCw) about projen.
25
-
26
33
  As opposed to existing templating/scaffolding tools, *projen* is not a one-off
27
34
  generator. Synthesized files should never be manually edited (in fact, projen
28
35
  enforces that). To modify your project setup, users interact with rich
29
36
  strongly-typed class and execute `projen` to update their project configuration
30
37
  files.
31
38
 
39
+ By defining a custom project type and using projen in multiple repositories, it's
40
+ possible to update configuration files and CI/CD workflows across dozens (or
41
+ hundreds!?) of projects.
42
+
43
+ Check out [this talk](https://youtu.be/SOWMPzXtTCw) about projen from its creator.
44
+
32
45
  ## Getting Started
33
46
 
34
47
  To create a new project, run the following command and follow the instructions:
@@ -42,6 +55,8 @@ $ npx projen new PROJECT-TYPE
42
55
  ...
43
56
  ```
44
57
 
58
+ ### Project types
59
+
45
60
  Currently supported project types (use `npx projen new` without a type for a
46
61
  list):
47
62
 
@@ -170,20 +185,19 @@ Some examples for features built-in to project types:
170
185
  * eslint
171
186
  * Jest
172
187
  * jsii: compile, package, api compatibility checks, API.md
173
- * Bump & release scripts with CHANGELOG generation based on conventional commits (manual releases are currently broken! [#726](https://github.com/projen/projen/issues/726))
188
+ * Bump & release scripts with CHANGELOG generation based on conventional commits
174
189
  * Automated PR builds
175
190
  * Automated releases to npm, maven, NuGet and PyPI
191
+ * Automated dependency upgrades
176
192
  * Mergify configuration
177
193
  * LICENSE file generation
178
194
  * gitignore + npmignore management
179
195
  * Node "engines" support with coupling to CI build environment and @types/node
180
196
  * Anti-tamper: CI builds will fail if a synthesized file is modified manually
181
197
 
182
- ## API Reference
198
+ ## Documentation
183
199
 
184
- See [API Reference](https://projen.io/api/API.html) for API details.
185
-
186
- In addition, several projen components and project types are explained with examples at <https://projen.io/> (currently a work in progress!).
200
+ For documentation including examples and a full API reference, visit <https://projen.io/>.
187
201
 
188
202
  ## Ecosystem
189
203
 
@@ -260,6 +274,19 @@ Note: using a `.projenrc.json` file to specify configuration only allows
260
274
  accessing a subset of the entire API - the options which are passed to the
261
275
  constructor of each project type.
262
276
 
277
+ ### How does projen work with my IDE?
278
+
279
+ projen has an unofficial [VS Code extension]. Check it out!
280
+
281
+ [VS Code extension]: https://marketplace.visualstudio.com/items?itemName=MarkMcCulloh.vscode-projen
282
+
283
+ ## Community
284
+
285
+ The projen community can be found within the #projen channel in the [cdk.dev]
286
+ community Slack workspace.
287
+
288
+ [cdk.dev]: https://cdk.dev/
289
+
263
290
  ## Contributions
264
291
 
265
292
  Contributions of all kinds are welcome! Check out our [contributor's
@@ -276,6 +303,10 @@ $ yarn watch # compile in the background
276
303
 
277
304
  Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
278
305
 
306
+ <!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
307
+ [![All Contributors](https://img.shields.io/badge/all_contributors-67-orange.svg?style=flat-square)](#contributors-)
308
+ <!-- ALL-CONTRIBUTORS-BADGE:END -->
309
+
279
310
  <!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
280
311
  <!-- prettier-ignore-start -->
281
312
  <!-- markdownlint-disable -->
package/changelog.md CHANGED
@@ -1,7 +1,2 @@
1
1
 
2
- ### [0.53.3](https://github.com/projen/projen/compare/v0.53.2...v0.53.3) (2022-03-18)
3
-
4
-
5
- ### Bug Fixes
6
-
7
- * python documentation refers to `projenrc.js` instead of `.projenrc.py` ([#1695](https://github.com/projen/projen/issues/1695)) ([0692152](https://github.com/projen/projen/commit/0692152d8fc8a699694b06dc07a8208aa0c6d260))
2
+ ### [0.53.4](https://github.com/projen/projen/compare/v0.53.3...v0.53.4) (2022-03-18)
@@ -27,7 +27,7 @@ class IntegrationTestAutoDiscover extends cdk_1.IntegrationTestAutoDiscoverBase
27
27
  }
28
28
  exports.IntegrationTestAutoDiscover = IntegrationTestAutoDiscover;
29
29
  _a = JSII_RTTI_SYMBOL_1;
30
- IntegrationTestAutoDiscover[_a] = { fqn: "projen.awscdk.IntegrationTestAutoDiscover", version: "0.53.3" };
30
+ IntegrationTestAutoDiscover[_a] = { fqn: "projen.awscdk.IntegrationTestAutoDiscover", version: "0.53.4" };
31
31
  /**
32
32
  * Creates lambdas from entry points discovered in the project's source tree.
33
33
  */
@@ -48,7 +48,7 @@ class LambdaAutoDiscover extends cdk_1.AutoDiscoverBase {
48
48
  }
49
49
  exports.LambdaAutoDiscover = LambdaAutoDiscover;
50
50
  _b = JSII_RTTI_SYMBOL_1;
51
- LambdaAutoDiscover[_b] = { fqn: "projen.awscdk.LambdaAutoDiscover", version: "0.53.3" };
51
+ LambdaAutoDiscover[_b] = { fqn: "projen.awscdk.LambdaAutoDiscover", version: "0.53.4" };
52
52
  /**
53
53
  * Creates Lambda Extensions from entrypoints discovered in the project's
54
54
  * source tree.
@@ -70,7 +70,7 @@ class LambdaExtensionAutoDiscover extends cdk_1.AutoDiscoverBase {
70
70
  }
71
71
  exports.LambdaExtensionAutoDiscover = LambdaExtensionAutoDiscover;
72
72
  _c = JSII_RTTI_SYMBOL_1;
73
- LambdaExtensionAutoDiscover[_c] = { fqn: "projen.awscdk.LambdaExtensionAutoDiscover", version: "0.53.3" };
73
+ LambdaExtensionAutoDiscover[_c] = { fqn: "projen.awscdk.LambdaExtensionAutoDiscover", version: "0.53.4" };
74
74
  /**
75
75
  * Discovers and creates integration tests and lambdas from code in the
76
76
  * project's source and test trees.
@@ -107,5 +107,5 @@ class AutoDiscover extends component_1.Component {
107
107
  }
108
108
  exports.AutoDiscover = AutoDiscover;
109
109
  _d = JSII_RTTI_SYMBOL_1;
110
- AutoDiscover[_d] = { fqn: "projen.awscdk.AutoDiscover", version: "0.53.3" };
110
+ AutoDiscover[_d] = { fqn: "projen.awscdk.AutoDiscover", version: "0.53.4" };
111
111
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by1kaXNjb3Zlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hd3NjZGsvYXV0by1kaXNjb3Zlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGdDQUlnQjtBQUNoQiw0Q0FBeUM7QUFHekMseURBRzRCO0FBQzVCLHlDQUdvQjtBQUNwQix5REFHNEI7QUFDNUIsdURBQWdGO0FBNkJoRjs7R0FFRztBQUNILE1BQWEsMkJBQTRCLFNBQVEscUNBQStCO0lBQzlFLFlBQVksT0FBZ0IsRUFBRSxPQUEyQztRQUN2RSxLQUFLLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRXhCLEtBQUssTUFBTSxVQUFVLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUN6QyxJQUFJLGtDQUFlLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtnQkFDaEMsVUFBVTtnQkFDVixPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU87Z0JBQ3hCLFlBQVksRUFBRSxPQUFPLENBQUMsWUFBWTtnQkFDbEMsR0FBRyxPQUFPLENBQUMsc0JBQXNCO2FBQ2xDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQzs7QUFaSCxrRUFhQzs7O0FBaUJEOztHQUVHO0FBQ0gsTUFBYSxrQkFBbUIsU0FBUSxzQkFBZ0I7SUFDdEQsWUFBWSxPQUFnQixFQUFFLE9BQWtDO1FBQzlELEtBQUssQ0FBQyxPQUFPLEVBQUU7WUFDYixVQUFVLEVBQUUsT0FBTyxDQUFDLE1BQU07WUFDMUIsU0FBUyxFQUFFLGdDQUFxQjtTQUNqQyxDQUFDLENBQUM7UUFFSCxLQUFLLE1BQU0sVUFBVSxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDekMsSUFBSSxnQ0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUU7Z0JBQy9CLFVBQVU7Z0JBQ1YsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPO2dCQUN4QixHQUFHLE9BQU8sQ0FBQyxhQUFhO2FBQ3pCLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQzs7QUFkSCxnREFlQzs7O0FBa0JEOzs7R0FHRztBQUNILE1BQWEsMkJBQTRCLFNBQVEsc0JBQWdCO0lBQy9ELFlBQVksT0FBZ0IsRUFBRSxPQUEyQztRQUN2RSxLQUFLLENBQUMsT0FBTyxFQUFFO1lBQ2IsVUFBVSxFQUFFLE9BQU8sQ0FBQyxNQUFNO1lBQzFCLFNBQVMsRUFBRSwwQ0FBK0I7U0FDM0MsQ0FBQyxDQUFDO1FBRUgsS0FBSyxNQUFNLFVBQVUsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3pDLElBQUksa0NBQWUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUNoQyxVQUFVO2dCQUNWLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTztnQkFDeEIsR0FBRyxPQUFPLENBQUMsc0JBQXNCO2FBQ2xDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQzs7QUFkSCxrRUFlQzs7O0FBK0JEOzs7R0FHRztBQUNILE1BQWEsWUFBYSxTQUFRLHFCQUFTO0lBQ3pDLFlBQVksT0FBZ0IsRUFBRSxPQUE0Qjs7UUFDeEQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRWYsVUFBSSxPQUFPLENBQUMsa0JBQWtCLG1DQUFJLElBQUksRUFBRTtZQUN0QyxJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUU7Z0JBQ25DLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTztnQkFDeEIsWUFBWSxFQUFFLE9BQU8sQ0FBQyxZQUFZO2dCQUNsQyxNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU07Z0JBQ3RCLGFBQWEsRUFBRSxPQUFPLENBQUMsYUFBYTthQUNyQyxDQUFDLENBQUM7U0FDSjtRQUVELFVBQUksT0FBTyxDQUFDLDJCQUEyQixtQ0FBSSxJQUFJLEVBQUU7WUFDL0MsSUFBSSwyQkFBMkIsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUM1QyxPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU87Z0JBQ3hCLFlBQVksRUFBRSxPQUFPLENBQUMsWUFBWTtnQkFDbEMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNO2dCQUN0QixzQkFBc0IsRUFBRSxPQUFPLENBQUMsc0JBQXNCO2FBQ3ZELENBQUMsQ0FBQztTQUNKO1FBRUQsVUFBSSxPQUFPLENBQUMsMkJBQTJCLG1DQUFJLElBQUksRUFBRTtZQUMvQyxJQUFJLDJCQUEyQixDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUU7Z0JBQzVDLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTztnQkFDeEIsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPO2dCQUN4QixZQUFZLEVBQUUsT0FBTyxDQUFDLFlBQVk7Z0JBQ2xDLHNCQUFzQixFQUFFLE9BQU8sQ0FBQyxzQkFBc0I7YUFDdkQsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDOztBQTlCSCxvQ0ErQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBdXRvRGlzY292ZXJCYXNlLFxuICBJbnRlZ3JhdGlvblRlc3RBdXRvRGlzY292ZXJCYXNlLFxuICBJbnRlZ3JhdGlvblRlc3RBdXRvRGlzY292ZXJCYXNlT3B0aW9ucyxcbn0gZnJvbSBcIi4uL2Nka1wiO1xuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSBcIi4uL2NvbXBvbmVudFwiO1xuaW1wb3J0IHsgUHJvamVjdCB9IGZyb20gXCIuLi9wcm9qZWN0XCI7XG5pbXBvcnQgeyBBd3NDZGtEZXBzIH0gZnJvbSBcIi4vYXdzY2RrLWRlcHNcIjtcbmltcG9ydCB7XG4gIEludGVncmF0aW9uVGVzdCxcbiAgSW50ZWdyYXRpb25UZXN0Q29tbW9uT3B0aW9ucyxcbn0gZnJvbSBcIi4vaW50ZWdyYXRpb24tdGVzdFwiO1xuaW1wb3J0IHtcbiAgVFlQRVNDUklQVF9MQU1CREFfRVhULFxuICBUWVBFU0NSSVBUX0xBTUJEQV9FWFRFTlNJT05fRVhULFxufSBmcm9tIFwiLi9pbnRlcm5hbFwiO1xuaW1wb3J0IHtcbiAgTGFtYmRhRXh0ZW5zaW9uLFxuICBMYW1iZGFFeHRlbnNpb25Db21tb25PcHRpb25zLFxufSBmcm9tIFwiLi9sYW1iZGEtZXh0ZW5zaW9uXCI7XG5pbXBvcnQgeyBMYW1iZGFGdW5jdGlvbiwgTGFtYmRhRnVuY3Rpb25Db21tb25PcHRpb25zIH0gZnJvbSBcIi4vbGFtYmRhLWZ1bmN0aW9uXCI7XG5cbi8qKlxuICogQ29tbW9uIG9wdGlvbnMgZm9yIGF1dG8gZGlzY292ZXJpbmcgcHJvamVjdCBzdWJjb21wb25lbnRzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEF1dG9EaXNjb3ZlckNvbW1vbk9wdGlvbnMge1xuICAvKipcbiAgICogUGF0aCB0byB0aGUgdHNjb25maWcgZmlsZSB0byB1c2UgZm9yIGludGVncmF0aW9uIHRlc3RzLlxuICAgKi9cbiAgcmVhZG9ubHkgdHNjb25maWdQYXRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFXUyBDREsgZGVwZW5kZW5jeSBtYW5hZ2VyLlxuICAgKi9cbiAgcmVhZG9ubHkgY2RrRGVwczogQXdzQ2RrRGVwcztcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciBgSW50ZWdyYXRpb25UZXN0QXV0b0Rpc2NvdmVyYFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEludGVncmF0aW9uVGVzdEF1dG9EaXNjb3Zlck9wdGlvbnNcbiAgZXh0ZW5kcyBBdXRvRGlzY292ZXJDb21tb25PcHRpb25zLFxuICAgIEludGVncmF0aW9uVGVzdEF1dG9EaXNjb3ZlckJhc2VPcHRpb25zIHtcbiAgLyoqXG4gICAqIE9wdGlvbnMgZm9yIGludGVncmF0aW9uIHRlc3RzLlxuICAgKi9cbiAgcmVhZG9ubHkgaW50ZWdyYXRpb25UZXN0T3B0aW9ucz86IEludGVncmF0aW9uVGVzdENvbW1vbk9wdGlvbnM7XG59XG5cbi8qKlxuICogQ3JlYXRlcyBpbnRlZ3JhdGlvbiB0ZXN0cyBmcm9tIGVudHJ5IHBvaW50cyBkaXNjb3ZlcmVkIGluIHRoZSB0ZXN0IHRyZWUuXG4gKi9cbmV4cG9ydCBjbGFzcyBJbnRlZ3JhdGlvblRlc3RBdXRvRGlzY292ZXIgZXh0ZW5kcyBJbnRlZ3JhdGlvblRlc3RBdXRvRGlzY292ZXJCYXNlIHtcbiAgY29uc3RydWN0b3IocHJvamVjdDogUHJvamVjdCwgb3B0aW9uczogSW50ZWdyYXRpb25UZXN0QXV0b0Rpc2NvdmVyT3B0aW9ucykge1xuICAgIHN1cGVyKHByb2plY3QsIG9wdGlvbnMpO1xuXG4gICAgZm9yIChjb25zdCBlbnRyeXBvaW50IG9mIHRoaXMuZW50cnlwb2ludHMpIHtcbiAgICAgIG5ldyBJbnRlZ3JhdGlvblRlc3QodGhpcy5wcm9qZWN0LCB7XG4gICAgICAgIGVudHJ5cG9pbnQsXG4gICAgICAgIGNka0RlcHM6IG9wdGlvbnMuY2RrRGVwcyxcbiAgICAgICAgdHNjb25maWdQYXRoOiBvcHRpb25zLnRzY29uZmlnUGF0aCxcbiAgICAgICAgLi4ub3B0aW9ucy5pbnRlZ3JhdGlvblRlc3RPcHRpb25zLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgYExhbWJkYUF1dG9EaXNjb3ZlcmBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMYW1iZGFBdXRvRGlzY292ZXJPcHRpb25zIGV4dGVuZHMgQXV0b0Rpc2NvdmVyQ29tbW9uT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBQcm9qZWN0IHNvdXJjZSB0cmVlIChyZWxhdGl2ZSB0byBwcm9qZWN0IG91dHB1dCBkaXJlY3RvcnkpLlxuICAgKi9cbiAgcmVhZG9ubHkgc3JjZGlyOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE9wdGlvbnMgZm9yIEFXUyBMYW1iZGEgZnVuY3Rpb25zLlxuICAgKi9cbiAgcmVhZG9ubHkgbGFtYmRhT3B0aW9ucz86IExhbWJkYUZ1bmN0aW9uQ29tbW9uT3B0aW9ucztcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGxhbWJkYXMgZnJvbSBlbnRyeSBwb2ludHMgZGlzY292ZXJlZCBpbiB0aGUgcHJvamVjdCdzIHNvdXJjZSB0cmVlLlxuICovXG5leHBvcnQgY2xhc3MgTGFtYmRhQXV0b0Rpc2NvdmVyIGV4dGVuZHMgQXV0b0Rpc2NvdmVyQmFzZSB7XG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IFByb2plY3QsIG9wdGlvbnM6IExhbWJkYUF1dG9EaXNjb3Zlck9wdGlvbnMpIHtcbiAgICBzdXBlcihwcm9qZWN0LCB7XG4gICAgICBwcm9qZWN0ZGlyOiBvcHRpb25zLnNyY2RpcixcbiAgICAgIGV4dGVuc2lvbjogVFlQRVNDUklQVF9MQU1CREFfRVhULFxuICAgIH0pO1xuXG4gICAgZm9yIChjb25zdCBlbnRyeXBvaW50IG9mIHRoaXMuZW50cnlwb2ludHMpIHtcbiAgICAgIG5ldyBMYW1iZGFGdW5jdGlvbih0aGlzLnByb2plY3QsIHtcbiAgICAgICAgZW50cnlwb2ludCxcbiAgICAgICAgY2RrRGVwczogb3B0aW9ucy5jZGtEZXBzLFxuICAgICAgICAuLi5vcHRpb25zLmxhbWJkYU9wdGlvbnMsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciBgTGFtYmRhRXh0ZW5zaW9uQXV0b0Rpc2NvdmVyYFxuICovXG5leHBvcnQgaW50ZXJmYWNlIExhbWJkYUV4dGVuc2lvbkF1dG9EaXNjb3Zlck9wdGlvbnNcbiAgZXh0ZW5kcyBBdXRvRGlzY292ZXJDb21tb25PcHRpb25zIHtcbiAgLyoqXG4gICAqIFByb2plY3Qgc291cmNlIHRyZWUgKHJlbGF0aXZlIHRvIHByb2plY3Qgb3V0cHV0IGRpcmVjdG9yeSkuXG4gICAqL1xuICByZWFkb25seSBzcmNkaXI6IHN0cmluZztcblxuICAvKipcbiAgICogT3B0aW9ucyBmb3IgbGFtYmRhIGV4dGVuc2lvbnMuXG4gICAqL1xuICByZWFkb25seSBsYW1iZGFFeHRlbnNpb25PcHRpb25zPzogTGFtYmRhRXh0ZW5zaW9uQ29tbW9uT3B0aW9ucztcbn1cblxuLyoqXG4gKiBDcmVhdGVzIExhbWJkYSBFeHRlbnNpb25zIGZyb20gZW50cnlwb2ludHMgZGlzY292ZXJlZCBpbiB0aGUgcHJvamVjdCdzXG4gKiBzb3VyY2UgdHJlZS5cbiAqL1xuZXhwb3J0IGNsYXNzIExhbWJkYUV4dGVuc2lvbkF1dG9EaXNjb3ZlciBleHRlbmRzIEF1dG9EaXNjb3ZlckJhc2Uge1xuICBjb25zdHJ1Y3Rvcihwcm9qZWN0OiBQcm9qZWN0LCBvcHRpb25zOiBMYW1iZGFFeHRlbnNpb25BdXRvRGlzY292ZXJPcHRpb25zKSB7XG4gICAgc3VwZXIocHJvamVjdCwge1xuICAgICAgcHJvamVjdGRpcjogb3B0aW9ucy5zcmNkaXIsXG4gICAgICBleHRlbnNpb246IFRZUEVTQ1JJUFRfTEFNQkRBX0VYVEVOU0lPTl9FWFQsXG4gICAgfSk7XG5cbiAgICBmb3IgKGNvbnN0IGVudHJ5cG9pbnQgb2YgdGhpcy5lbnRyeXBvaW50cykge1xuICAgICAgbmV3IExhbWJkYUV4dGVuc2lvbih0aGlzLnByb2plY3QsIHtcbiAgICAgICAgZW50cnlwb2ludCxcbiAgICAgICAgY2RrRGVwczogb3B0aW9ucy5jZGtEZXBzLFxuICAgICAgICAuLi5vcHRpb25zLmxhbWJkYUV4dGVuc2lvbk9wdGlvbnMsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciBgQXV0b0Rpc2NvdmVyYFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEF1dG9EaXNjb3Zlck9wdGlvbnNcbiAgZXh0ZW5kcyBMYW1iZGFBdXRvRGlzY292ZXJPcHRpb25zLFxuICAgIExhbWJkYUV4dGVuc2lvbkF1dG9EaXNjb3Zlck9wdGlvbnMsXG4gICAgSW50ZWdyYXRpb25UZXN0QXV0b0Rpc2NvdmVyT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBBdXRvLWRpc2NvdmVyIGxhbWJkYSBmdW5jdGlvbnMuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGxhbWJkYUF1dG9EaXNjb3Zlcj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEF1dG8tZGlzY292ZXIgbGFtYmRhIGV4dGVuc2lvbnMuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGxhbWJkYUV4dGVuc2lvbkF1dG9EaXNjb3Zlcj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEF1dG8tZGlzY292ZXIgaW50ZWdyYXRpb24gdGVzdHMuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGludGVncmF0aW9uVGVzdEF1dG9EaXNjb3Zlcj86IGJvb2xlYW47XG59XG5cbi8qKlxuICogRGlzY292ZXJzIGFuZCBjcmVhdGVzIGludGVncmF0aW9uIHRlc3RzIGFuZCBsYW1iZGFzIGZyb20gY29kZSBpbiB0aGVcbiAqIHByb2plY3QncyBzb3VyY2UgYW5kIHRlc3QgdHJlZXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBBdXRvRGlzY292ZXIgZXh0ZW5kcyBDb21wb25lbnQge1xuICBjb25zdHJ1Y3Rvcihwcm9qZWN0OiBQcm9qZWN0LCBvcHRpb25zOiBBdXRvRGlzY292ZXJPcHRpb25zKSB7XG4gICAgc3VwZXIocHJvamVjdCk7XG5cbiAgICBpZiAob3B0aW9ucy5sYW1iZGFBdXRvRGlzY292ZXIgPz8gdHJ1ZSkge1xuICAgICAgbmV3IExhbWJkYUF1dG9EaXNjb3Zlcih0aGlzLnByb2plY3QsIHtcbiAgICAgICAgY2RrRGVwczogb3B0aW9ucy5jZGtEZXBzLFxuICAgICAgICB0c2NvbmZpZ1BhdGg6IG9wdGlvbnMudHNjb25maWdQYXRoLFxuICAgICAgICBzcmNkaXI6IG9wdGlvbnMuc3JjZGlyLFxuICAgICAgICBsYW1iZGFPcHRpb25zOiBvcHRpb25zLmxhbWJkYU9wdGlvbnMsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucy5sYW1iZGFFeHRlbnNpb25BdXRvRGlzY292ZXIgPz8gdHJ1ZSkge1xuICAgICAgbmV3IExhbWJkYUV4dGVuc2lvbkF1dG9EaXNjb3Zlcih0aGlzLnByb2plY3QsIHtcbiAgICAgICAgY2RrRGVwczogb3B0aW9ucy5jZGtEZXBzLFxuICAgICAgICB0c2NvbmZpZ1BhdGg6IG9wdGlvbnMudHNjb25maWdQYXRoLFxuICAgICAgICBzcmNkaXI6IG9wdGlvbnMuc3JjZGlyLFxuICAgICAgICBsYW1iZGFFeHRlbnNpb25PcHRpb25zOiBvcHRpb25zLmxhbWJkYUV4dGVuc2lvbk9wdGlvbnMsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucy5pbnRlZ3JhdGlvblRlc3RBdXRvRGlzY292ZXIgPz8gdHJ1ZSkge1xuICAgICAgbmV3IEludGVncmF0aW9uVGVzdEF1dG9EaXNjb3Zlcih0aGlzLnByb2plY3QsIHtcbiAgICAgICAgY2RrRGVwczogb3B0aW9ucy5jZGtEZXBzLFxuICAgICAgICB0ZXN0ZGlyOiBvcHRpb25zLnRlc3RkaXIsXG4gICAgICAgIHRzY29uZmlnUGF0aDogb3B0aW9ucy50c2NvbmZpZ1BhdGgsXG4gICAgICAgIGludGVncmF0aW9uVGVzdE9wdGlvbnM6IG9wdGlvbnMuaW50ZWdyYXRpb25UZXN0T3B0aW9ucyxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -83,5 +83,5 @@ class AwsCdkJavaApp extends java_1.JavaProject {
83
83
  }
84
84
  exports.AwsCdkJavaApp = AwsCdkJavaApp;
85
85
  _a = JSII_RTTI_SYMBOL_1;
86
- AwsCdkJavaApp[_a] = { fqn: "projen.awscdk.AwsCdkJavaApp", version: "0.53.3" };
86
+ AwsCdkJavaApp[_a] = { fqn: "projen.awscdk.AwsCdkJavaApp", version: "0.53.4" };
87
87
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzY2RrLWFwcC1qYXZhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2F3c2Nkay9hd3NjZGstYXBwLWphdmEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSwrQkFBNEI7QUFDNUIsMEJBQStDO0FBQy9DLGtDQUEwRDtBQUUxRCx5REFBb0Q7QUFDcEQsNkNBQWlFO0FBQ2pFLDJDQUF1QztBQWV2Qzs7OztHQUlHO0FBQ0gsTUFBYSxhQUFjLFNBQVEsa0JBQVc7SUErQjVDLFlBQVksT0FBNkI7O1FBQ3ZDLE1BQU0sbUJBQW1CLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekQsTUFBTSxXQUFXLEdBQUcsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3JELE1BQU0sYUFBYSxHQUFHLG1CQUFtQixDQUFDLG1CQUFtQixDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUUxRSxLQUFLLENBQUM7WUFDSixHQUFHLE9BQU87WUFDVixNQUFNLEVBQUUsS0FBSztZQUNiLGlCQUFpQixFQUFFLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO1NBQ3pDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQztRQUNuQyxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7UUFFbkMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLGlDQUFjLENBQUMsSUFBSSxFQUFFO1lBQ3RDLGNBQWMsRUFBRSxrQkFBYyxDQUFDLE9BQU87WUFDdEMsR0FBRyxPQUFPO1NBQ1gsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLG9CQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVoRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksc0JBQVMsQ0FBQyxJQUFJLEVBQUU7WUFDbkMsR0FBRyxFQUFFLDBDQUEwQyxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQy9ELFlBQVksRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsR0FBRyxDQUFDO1lBQzlDLEdBQUcsT0FBTztTQUNYLENBQUMsQ0FBQztRQUVILFVBQUksT0FBTyxDQUFDLE1BQU0sbUNBQUksSUFBSSxFQUFFO1lBQzFCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztTQUNsQjtJQUNILENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLGdCQUFnQixDQUFDLEdBQUcsT0FBaUI7UUFDMUMsS0FBSyxNQUFNLENBQUMsSUFBSSxPQUFPLEVBQUU7WUFDdkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNuQztJQUNILENBQUM7SUFFTyxTQUFTO1FBQ2YsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDeEMsTUFBTSxRQUFRLEdBQUcsR0FBRyxJQUFJLENBQUMsYUFBYSxPQUFPLENBQUM7UUFDOUMsSUFBSSxhQUFTLENBQUMsSUFBSSxFQUFFLFdBQUksQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQyxFQUFFO1lBQ3ZELEtBQUssRUFBRTtnQkFDTCxDQUFDLFFBQVEsQ0FBQyxFQUFFO29CQUNWLFdBQVcsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRztvQkFDM0IsRUFBRTtvQkFDRixJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsSUFBSSxDQUFDO3dCQUMvQixDQUFDLENBQUMseUNBQXlDO3dCQUMzQyxDQUFDLENBQUMsb0NBQW9DO29CQUN4QyxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsSUFBSSxDQUFDO3dCQUMvQixDQUFDLENBQUMsMkNBQTJDO3dCQUM3QyxDQUFDLENBQUMsc0NBQXNDO29CQUMxQyxFQUFFO29CQUNGLGdCQUFnQixJQUFJLENBQUMsYUFBYSxJQUFJO29CQUN0QyxrREFBa0Q7b0JBQ2xELDBCQUEwQjtvQkFDMUIsZ0NBQWdDO29CQUNoQyxrQkFBa0I7b0JBQ2xCLEtBQUs7b0JBQ0wsR0FBRztpQkFDSixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7YUFDYjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBdEdILHNDQXVHQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGpvaW4gfSBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHsgRGVwZW5kZW5jeVR5cGUsIFNhbXBsZURpciB9IGZyb20gXCIuLlwiO1xuaW1wb3J0IHsgSmF2YVByb2plY3QsIEphdmFQcm9qZWN0T3B0aW9ucyB9IGZyb20gXCIuLi9qYXZhXCI7XG5pbXBvcnQgeyBBd3NDZGtEZXBzLCBBd3NDZGtEZXBzQ29tbW9uT3B0aW9ucyB9IGZyb20gXCIuL2F3c2Nkay1kZXBzXCI7XG5pbXBvcnQgeyBBd3NDZGtEZXBzSmF2YSB9IGZyb20gXCIuL2F3c2Nkay1kZXBzLWphdmFcIjtcbmltcG9ydCB7IENka0NvbmZpZywgQ2RrQ29uZmlnQ29tbW9uT3B0aW9ucyB9IGZyb20gXCIuL2Nkay1jb25maWdcIjtcbmltcG9ydCB7IENka1Rhc2tzIH0gZnJvbSBcIi4vY2RrLXRhc2tzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXdzQ2RrSmF2YUFwcE9wdGlvbnNcbiAgZXh0ZW5kcyBKYXZhUHJvamVjdE9wdGlvbnMsXG4gICAgQ2RrQ29uZmlnQ29tbW9uT3B0aW9ucyxcbiAgICBBd3NDZGtEZXBzQ29tbW9uT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgSmF2YSBjbGFzcyB3aXRoIHRoZSBzdGF0aWMgYG1haW4oKWAgbWV0aG9kLiBUaGlzIG1ldGhvZFxuICAgKiBzaG91bGQgY2FsbCBgYXBwLnN5bnRoKClgIG9uIHRoZSBDREsgYXBwLlxuICAgKlxuICAgKiBAZGVmYXVsdCBcIm9yZy5hY21lLk15QXBwXCJcbiAgICovXG4gIHJlYWRvbmx5IG1haW5DbGFzczogc3RyaW5nO1xufVxuXG4vKipcbiAqIEFXUyBDREsgYXBwIGluIEphdmEuXG4gKlxuICogQHBqaWQgYXdzY2RrLWFwcC1qYXZhXG4gKi9cbmV4cG9ydCBjbGFzcyBBd3NDZGtKYXZhQXBwIGV4dGVuZHMgSmF2YVByb2plY3Qge1xuICAvKipcbiAgICogVGhlIGBjZGsuanNvbmAgZmlsZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBjZGtDb25maWc6IENka0NvbmZpZztcblxuICAvKipcbiAgICogQ0RLIGRlcGVuZGVuY3kgbWFuYWdlbWVudCBoZWxwZXIgY2xhc3NcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBjZGtEZXBzOiBBd3NDZGtEZXBzO1xuXG4gIC8qKlxuICAgKiBUaGUgZnVsbCBuYW1lIG9mIHRoZSBtYWluIGNsYXNzIG9mIHRoZSBqYXZhIGFwcCAocGFja2FnZS5DbGFzcykuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgbWFpbkNsYXNzOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENESyB0YXNrcy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBjZGtUYXNrczogQ2RrVGFza3M7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBKYXZhIHBhY2thZ2UgdGhhdCBpbmNsdWRlcyB0aGUgbWFpbiBjbGFzcy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBtYWluUGFja2FnZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgSmF2YSBjbGFzcyB3aXRoIHRoZSBzdGF0aWMgYG1haW4oKWAgbWV0aG9kLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG1haW5DbGFzc05hbWU6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBBd3NDZGtKYXZhQXBwT3B0aW9ucykge1xuICAgIGNvbnN0IG1haW5DbGFzc0NvbXBvbmVudHMgPSBvcHRpb25zLm1haW5DbGFzcy5zcGxpdChcIi5cIik7XG4gICAgY29uc3QgbWFpblBhY2thZ2UgPSBtYWluQ2xhc3NDb21wb25lbnRzLnNsaWNlKDAsIC0xKTtcbiAgICBjb25zdCBtYWluQ2xhc3NOYW1lID0gbWFpbkNsYXNzQ29tcG9uZW50c1ttYWluQ2xhc3NDb21wb25lbnRzLmxlbmd0aCAtIDFdO1xuXG4gICAgc3VwZXIoe1xuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIHNhbXBsZTogZmFsc2UsXG4gICAgICBzYW1wbGVKYXZhUGFja2FnZTogbWFpblBhY2thZ2Uuam9pbihcIi5cIiksXG4gICAgfSk7XG5cbiAgICB0aGlzLm1haW5DbGFzcyA9IG9wdGlvbnMubWFpbkNsYXNzO1xuICAgIHRoaXMubWFpblBhY2thZ2UgPSBtYWluUGFja2FnZS5qb2luKFwiLlwiKTtcbiAgICB0aGlzLm1haW5DbGFzc05hbWUgPSBtYWluQ2xhc3NOYW1lO1xuXG4gICAgdGhpcy5jZGtEZXBzID0gbmV3IEF3c0Nka0RlcHNKYXZhKHRoaXMsIHtcbiAgICAgIGRlcGVuZGVuY3lUeXBlOiBEZXBlbmRlbmN5VHlwZS5SVU5USU1FLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9KTtcblxuICAgIHRoaXMuY2RrVGFza3MgPSBuZXcgQ2RrVGFza3ModGhpcyk7XG4gICAgdGhpcy5wb3N0Q29tcGlsZVRhc2suc3Bhd24odGhpcy5jZGtUYXNrcy5zeW50aCk7XG5cbiAgICB0aGlzLmNka0NvbmZpZyA9IG5ldyBDZGtDb25maWcodGhpcywge1xuICAgICAgYXBwOiBgbXZuIGV4ZWM6amF2YSAtLXF1aWV0IC1EZXhlYy5tYWluQ2xhc3M9JHt0aGlzLm1haW5DbGFzc31gLFxuICAgICAgZmVhdHVyZUZsYWdzOiB0aGlzLmNka0RlcHMuY2RrTWFqb3JWZXJzaW9uIDwgMixcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfSk7XG5cbiAgICBpZiAob3B0aW9ucy5zYW1wbGUgPz8gdHJ1ZSkge1xuICAgICAgdGhpcy5hZGRTYW1wbGUoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhbiBBV1MgQ0RLIG1vZHVsZSBkZXBlbmRlbmNpZXNcbiAgICpcbiAgICogQHBhcmFtIG1vZHVsZXMgVGhlIGxpc3Qgb2YgbW9kdWxlcyB0byBkZXBlbmQgb24gKGUuZy4gXCJzb2Z0d2FyZS5hbWF6b24uYXdzY2RrL2F3cy1sYW1iZGFcIiwgXCJzb2Z0d2FyZS5hbWF6b24uYXdzY2RrL2F3cy1pYW1cIiwgZXRjKVxuICAgKiBAZGVwcmVjYXRlZCBJbiBDREsgMi54IGFsbCBtb2R1bGVzIGFyZSBhdmFpbGFibGUgYnkgZGVmYXVsdC4gQWxwaGEgbW9kdWxlcyBzaG91bGQgYmUgYWRkZWQgdXNpbmcgdGhlIHN0YW5kYXJkICdkZXBzJ1xuICAgKi9cbiAgcHVibGljIGFkZENka0RlcGVuZGVuY3koLi4ubW9kdWxlczogc3RyaW5nW10pIHtcbiAgICBmb3IgKGNvbnN0IG0gb2YgbW9kdWxlcykge1xuICAgICAgdGhpcy5jZGtEZXBzLmFkZFYxRGVwZW5kZW5jaWVzKG0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYWRkU2FtcGxlKCkge1xuICAgIGNvbnN0IHBrZyA9IHRoaXMubWFpblBhY2thZ2Uuc3BsaXQoXCIuXCIpO1xuICAgIGNvbnN0IGphdmFGaWxlID0gYCR7dGhpcy5tYWluQ2xhc3NOYW1lfS5qYXZhYDtcbiAgICBuZXcgU2FtcGxlRGlyKHRoaXMsIGpvaW4oXCJzcmNcIiwgXCJtYWluXCIsIFwiamF2YVwiLCAuLi5wa2cpLCB7XG4gICAgICBmaWxlczoge1xuICAgICAgICBbamF2YUZpbGVdOiBbXG4gICAgICAgICAgYHBhY2thZ2UgJHtwa2cuam9pbihcIi5cIil9O2AsXG4gICAgICAgICAgXCJcIixcbiAgICAgICAgICB0aGlzLmNka0RlcHMuY2RrTWFqb3JWZXJzaW9uID09IDFcbiAgICAgICAgICAgID8gXCJpbXBvcnQgc29mdHdhcmUuYW1hem9uLmF3c2Nkay5jb3JlLkFwcDtcIlxuICAgICAgICAgICAgOiBcImltcG9ydCBzb2Z0d2FyZS5hbWF6b24uYXdzY2RrLkFwcDtcIixcbiAgICAgICAgICB0aGlzLmNka0RlcHMuY2RrTWFqb3JWZXJzaW9uID09IDFcbiAgICAgICAgICAgID8gXCJpbXBvcnQgc29mdHdhcmUuYW1hem9uLmF3c2Nkay5jb3JlLlN0YWNrO1wiXG4gICAgICAgICAgICA6IFwiaW1wb3J0IHNvZnR3YXJlLmFtYXpvbi5hd3NjZGsuU3RhY2s7XCIsXG4gICAgICAgICAgXCJcIixcbiAgICAgICAgICBgcHVibGljIGNsYXNzICR7dGhpcy5tYWluQ2xhc3NOYW1lfSB7YCxcbiAgICAgICAgICBcIiAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oZmluYWwgU3RyaW5nW10gYXJncykge1wiLFxuICAgICAgICAgIFwiICAgIEFwcCBhcHAgPSBuZXcgQXBwKCk7XCIsXG4gICAgICAgICAgJyAgICBuZXcgU3RhY2soYXBwLCBcIk15U3RhY2tcIik7JyxcbiAgICAgICAgICBcIiAgICBhcHAuc3ludGgoKTtcIixcbiAgICAgICAgICBcIiAgfVwiLFxuICAgICAgICAgIFwifVwiLFxuICAgICAgICBdLmpvaW4oXCJcXG5cIiksXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -59,7 +59,7 @@ class AwsCdkPythonApp extends python_project_1.PythonProject {
59
59
  }
60
60
  exports.AwsCdkPythonApp = AwsCdkPythonApp;
61
61
  _a = JSII_RTTI_SYMBOL_1;
62
- AwsCdkPythonApp[_a] = { fqn: "projen.awscdk.AwsCdkPythonApp", version: "0.53.3" };
62
+ AwsCdkPythonApp[_a] = { fqn: "projen.awscdk.AwsCdkPythonApp", version: "0.53.4" };
63
63
  class AppCode extends __1.Component {
64
64
  constructor(project, fileName, cdkVersion) {
65
65
  super(project);
@@ -100,7 +100,7 @@ class AwsCdkTypeScriptApp extends typescript_1.TypeScriptAppProject {
100
100
  }
101
101
  exports.AwsCdkTypeScriptApp = AwsCdkTypeScriptApp;
102
102
  _a = JSII_RTTI_SYMBOL_1;
103
- AwsCdkTypeScriptApp[_a] = { fqn: "projen.awscdk.AwsCdkTypeScriptApp", version: "0.53.3" };
103
+ AwsCdkTypeScriptApp[_a] = { fqn: "projen.awscdk.AwsCdkTypeScriptApp", version: "0.53.4" };
104
104
  class SampleCode extends component_1.Component {
105
105
  constructor(project, cdkMajorVersion) {
106
106
  super(project);
@@ -81,7 +81,7 @@ class AwsCdkConstructLibrary extends cdk_1.ConstructLibrary {
81
81
  }
82
82
  exports.AwsCdkConstructLibrary = AwsCdkConstructLibrary;
83
83
  _a = JSII_RTTI_SYMBOL_1;
84
- AwsCdkConstructLibrary[_a] = { fqn: "projen.awscdk.AwsCdkConstructLibrary", version: "0.53.3" };
84
+ AwsCdkConstructLibrary[_a] = { fqn: "projen.awscdk.AwsCdkConstructLibrary", version: "0.53.4" };
85
85
  function determineWorkflowContainerImage(options, cdkMajorVersion) {
86
86
  // if the user specifies the workflow container image explicitly, use that
87
87
  if (options.workflowContainerImage) {
@@ -106,5 +106,5 @@ class ConstructLibraryAws extends AwsCdkConstructLibrary {
106
106
  }
107
107
  exports.ConstructLibraryAws = ConstructLibraryAws;
108
108
  _b = JSII_RTTI_SYMBOL_1;
109
- ConstructLibraryAws[_b] = { fqn: "projen.awscdk.ConstructLibraryAws", version: "0.53.3" };
109
+ ConstructLibraryAws[_b] = { fqn: "projen.awscdk.ConstructLibraryAws", version: "0.53.4" };
110
110
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzY2RrLWNvbnN0cnVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hd3NjZGsvYXdzY2RrLWNvbnN0cnVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGlDQUFpQztBQUNqQyxnQ0FBbUU7QUFDbkUsa0RBQWlEO0FBQ2pELG1EQUErQztBQUUvQyxxREFBZ0Q7QUE0Q2hEOzs7Ozs7OztHQVFHO0FBQ0gsTUFBYSxzQkFBdUIsU0FBUSxzQkFBZ0I7SUFHMUQsWUFBWSxPQUFzQzs7UUFDaEQsTUFBTSxlQUFlLFNBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLDBDQUFFLEtBQUssQ0FBQztRQUVoRSxLQUFLLENBQUM7WUFDSixxQkFBcUIsRUFDbkIsZUFBZSxLQUFLLENBQUM7Z0JBQ25CLENBQUMsQ0FBQztvQkFDRSxtQkFBbUIsRUFBRSxLQUFLO2lCQUMzQjtnQkFDSCxDQUFDLENBQUMsU0FBUztZQUNmLHNCQUFzQixFQUFFLCtCQUErQixDQUNyRCxPQUFPLEVBQ1AsZUFBZSxDQUNoQjtZQUNELEdBQUcsT0FBTztTQUNYLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSw2QkFBWSxDQUFDLElBQUksRUFBRTtZQUNwQyxvRUFBb0U7WUFDcEUsY0FBYyxFQUFFLDZCQUFjLENBQUMsSUFBSTtZQUNuQyxHQUFHLE9BQU87U0FDWCxDQUFDLENBQUM7UUFFSCxJQUFJLDRCQUFZLENBQUMsSUFBSSxFQUFFO1lBQ3JCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNuQixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDckIsYUFBYSxFQUFFLE9BQU8sQ0FBQyxhQUFhO1lBQ3BDLFlBQVksRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVE7WUFDdkMsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ3JCLGtCQUFrQixRQUFFLE9BQU8sQ0FBQyxrQkFBa0IsbUNBQUksSUFBSTtZQUN0RCwyQkFBMkIsUUFBRSxPQUFPLENBQUMsMkJBQTJCLG1DQUFJLElBQUk7WUFDeEUsMkJBQTJCLFFBQUUsT0FBTyxDQUFDLDJCQUEyQixtQ0FBSSxJQUFJO1NBQ3pFLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsVUFBVTtRQUNuQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsT0FBTztRQUNoQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSSxrQkFBa0IsQ0FBQyxHQUFHLElBQWM7UUFDekMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksc0JBQXNCLENBQUMsR0FBRyxJQUFjO1FBQzdDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQ3BELENBQUM7O0FBeEVILHdEQXlFQzs7O0FBRUQsU0FBUywrQkFBK0IsQ0FDdEMsT0FBc0MsRUFDdEMsZUFBbUM7SUFFbkMsMEVBQTBFO0lBQzFFLElBQUksT0FBTyxDQUFDLHNCQUFzQixFQUFFO1FBQ2xDLE9BQU8sT0FBTyxDQUFDLHNCQUFzQixDQUFDO0tBQ3ZDO0lBRUQsaUZBQWlGO0lBQ2pGLCtFQUErRTtJQUMvRSxJQUFJLE9BQU8sQ0FBQyxjQUFjLEVBQUU7UUFDMUIsT0FBTyxTQUFTLENBQUM7S0FDbEI7SUFFRCx3RUFBd0U7SUFDeEUsSUFBSSxlQUFlLEtBQUssQ0FBQyxFQUFFO1FBQ3pCLE9BQU8sK0JBQStCLENBQUM7S0FDeEM7SUFFRCxJQUFJLGVBQWUsS0FBSyxDQUFDLEVBQUU7UUFDekIsT0FBTyxzQ0FBc0MsQ0FBQztLQUMvQztJQUVELE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUM7QUFNRCwrQ0FBK0M7QUFDL0MsTUFBYSxtQkFBb0IsU0FBUSxzQkFBc0I7O0FBQS9ELGtEQUFrRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHNlbXZlciBmcm9tIFwic2VtdmVyXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3RMaWJyYXJ5LCBDb25zdHJ1Y3RMaWJyYXJ5T3B0aW9ucyB9IGZyb20gXCIuLi9jZGtcIjtcbmltcG9ydCB7IERlcGVuZGVuY3lUeXBlIH0gZnJvbSBcIi4uL2RlcGVuZGVuY2llc1wiO1xuaW1wb3J0IHsgQXV0b0Rpc2NvdmVyIH0gZnJvbSBcIi4vYXV0by1kaXNjb3ZlclwiO1xuaW1wb3J0IHsgQXdzQ2RrRGVwcywgQXdzQ2RrRGVwc0NvbW1vbk9wdGlvbnMgfSBmcm9tIFwiLi9hd3NjZGstZGVwc1wiO1xuaW1wb3J0IHsgQXdzQ2RrRGVwc0pzIH0gZnJvbSBcIi4vYXdzY2RrLWRlcHMtanNcIjtcbmltcG9ydCB7IExhbWJkYUZ1bmN0aW9uQ29tbW9uT3B0aW9ucyB9IGZyb20gXCIuL2xhbWJkYS1mdW5jdGlvblwiO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGBBd3NDZGtDb25zdHJ1Y3RMaWJyYXJ5YC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBd3NDZGtDb25zdHJ1Y3RMaWJyYXJ5T3B0aW9uc1xuICBleHRlbmRzIENvbnN0cnVjdExpYnJhcnlPcHRpb25zLFxuICAgIEF3c0Nka0RlcHNDb21tb25PcHRpb25zIHtcbiAgLyoqXG4gICAqIEF1dG9tYXRpY2FsbHkgYWRkcyBhbiBgYXdzX2xhbWJkYS5GdW5jdGlvbmAgZm9yIGVhY2ggYC5sYW1iZGEudHNgIGhhbmRsZXJcbiAgICogaW4geW91ciBzb3VyY2UgdHJlZS4gSWYgdGhpcyBpcyBkaXNhYmxlZCwgeW91IGVpdGhlciBuZWVkIHRvIGV4cGxpY2l0bHlcbiAgICogY2FsbCBgYXdzX2xhbWJkYS5GdW5jdGlvbi5hdXRvRGlzY292ZXIoKWAgb3IgZGVmaW5lIGEgYG5ld1xuICAgKiBhd3NfbGFtYmRhLkZ1bmN0aW9uKClgIGZvciBlYWNoIGhhbmRsZXIuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGxhbWJkYUF1dG9EaXNjb3Zlcj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEF1dG9tYXRpY2FsbHkgYWRkcyBhbiBgYXdzY2RrLkxhbWJkYUV4dGVuc2lvbmAgZm9yIGVhY2ggYC5sYW1iZGEtZXh0ZW5zaW9uLnRzYFxuICAgKiBlbnRyeXBvaW50IGluIHlvdXIgc291cmNlIHRyZWUuIElmIHRoaXMgaXMgZGlzYWJsZWQsIHlvdSBjYW4gbWFudWFsbHkgYWRkIGFuXG4gICAqIGBhd3NjZGsuQXV0b0Rpc2NvdmVyYCBjb21wb25lbnQgdG8geW91ciBwcm9qZWN0XG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGxhbWJkYUV4dGVuc2lvbkF1dG9EaXNjb3Zlcj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEF1dG9tYXRpY2FsbHkgZGlzY292ZXJzIGFuZCBjcmVhdGVzIGludGVncmF0aW9uIHRlc3RzIGZvciBlYWNoIGAuaW50ZWcudHNgXG4gICAqIGZpbGUgaW4gdW5kZXIgeW91ciB0ZXN0IGRpcmVjdG9yeS5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgaW50ZWdyYXRpb25UZXN0QXV0b0Rpc2NvdmVyPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ29tbW9uIG9wdGlvbnMgZm9yIGFsbCBBV1MgTGFtYmRhIGZ1bmN0aW9ucy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBkZWZhdWx0IG9wdGlvbnNcbiAgICovXG4gIHJlYWRvbmx5IGxhbWJkYU9wdGlvbnM/OiBMYW1iZGFGdW5jdGlvbkNvbW1vbk9wdGlvbnM7XG59XG5cbi8qKlxuICogQVdTIENESyBjb25zdHJ1Y3QgbGlicmFyeSBwcm9qZWN0XG4gKlxuICogQSBtdWx0aS1sYW5ndWFnZSAoanNpaSkgY29uc3RydWN0IGxpYnJhcnkgd2hpY2ggdmVuZHMgY29uc3RydWN0cyBkZXNpZ25lZCB0b1xuICogdXNlIHdpdGhpbiB0aGUgQVdTIENESyB3aXRoIGEgZnJpZW5kbHkgd29ya2Zsb3cgYW5kIGF1dG9tYXRpYyBwdWJsaXNoaW5nIHRvXG4gKiB0aGUgY29uc3RydWN0IGNhdGFsb2cuXG4gKlxuICogQHBqaWQgYXdzY2RrLWNvbnN0cnVjdFxuICovXG5leHBvcnQgY2xhc3MgQXdzQ2RrQ29uc3RydWN0TGlicmFyeSBleHRlbmRzIENvbnN0cnVjdExpYnJhcnkge1xuICBwdWJsaWMgcmVhZG9ubHkgY2RrRGVwczogQXdzQ2RrRGVwcztcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBBd3NDZGtDb25zdHJ1Y3RMaWJyYXJ5T3B0aW9ucykge1xuICAgIGNvbnN0IGNka01ham9yVmVyc2lvbiA9IHNlbXZlci5wYXJzZShvcHRpb25zLmNka1ZlcnNpb24pPy5tYWpvcjtcblxuICAgIHN1cGVyKHtcbiAgICAgIHBlZXJEZXBlbmRlbmN5T3B0aW9uczpcbiAgICAgICAgY2RrTWFqb3JWZXJzaW9uID09PSAxXG4gICAgICAgICAgPyB7XG4gICAgICAgICAgICAgIHBpbm5lZERldkRlcGVuZGVuY3k6IGZhbHNlLFxuICAgICAgICAgICAgfVxuICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgd29ya2Zsb3dDb250YWluZXJJbWFnZTogZGV0ZXJtaW5lV29ya2Zsb3dDb250YWluZXJJbWFnZShcbiAgICAgICAgb3B0aW9ucyxcbiAgICAgICAgY2RrTWFqb3JWZXJzaW9uXG4gICAgICApLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9KTtcblxuICAgIHRoaXMuY2RrRGVwcyA9IG5ldyBBd3NDZGtEZXBzSnModGhpcywge1xuICAgICAgLy8gc2luY2UgdGhpcyB3ZSBhcmUgYSBsaWJyYXJ5LCBkZXBlbmRlbmNpZXMgc2hvdWxkIGJlIGFkZGVkIGEgcGVlcnNcbiAgICAgIGRlcGVuZGVuY3lUeXBlOiBEZXBlbmRlbmN5VHlwZS5QRUVSLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9KTtcblxuICAgIG5ldyBBdXRvRGlzY292ZXIodGhpcywge1xuICAgICAgc3JjZGlyOiB0aGlzLnNyY2RpcixcbiAgICAgIHRlc3RkaXI6IHRoaXMudGVzdGRpcixcbiAgICAgIGxhbWJkYU9wdGlvbnM6IG9wdGlvbnMubGFtYmRhT3B0aW9ucyxcbiAgICAgIHRzY29uZmlnUGF0aDogdGhpcy50c2NvbmZpZ0Rldi5maWxlTmFtZSxcbiAgICAgIGNka0RlcHM6IHRoaXMuY2RrRGVwcyxcbiAgICAgIGxhbWJkYUF1dG9EaXNjb3Zlcjogb3B0aW9ucy5sYW1iZGFBdXRvRGlzY292ZXIgPz8gdHJ1ZSxcbiAgICAgIGxhbWJkYUV4dGVuc2lvbkF1dG9EaXNjb3Zlcjogb3B0aW9ucy5sYW1iZGFFeHRlbnNpb25BdXRvRGlzY292ZXIgPz8gdHJ1ZSxcbiAgICAgIGludGVncmF0aW9uVGVzdEF1dG9EaXNjb3Zlcjogb3B0aW9ucy5pbnRlZ3JhdGlvblRlc3RBdXRvRGlzY292ZXIgPz8gdHJ1ZSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgdGFyZ2V0IENESyB2ZXJzaW9uIGZvciB0aGlzIGxpYnJhcnkuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGNka1ZlcnNpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuY2RrRGVwcy5jZGtWZXJzaW9uO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIHVzZSBgY2RrVmVyc2lvbmBcbiAgICovXG4gIHB1YmxpYyBnZXQgdmVyc2lvbigpIHtcbiAgICByZXR1cm4gdGhpcy5jZGtWZXJzaW9uO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgZGVwZW5kZW5jaWVzIHRvIEFXUyBDREsgbW9kdWxlcy5cbiAgICpcbiAgICogU2luY2UgdGhpcyBpcyBhIGxpYnJhcnkgcHJvamVjdCwgZGVwZW5kZW5jaWVzIHdpbGwgYmUgYWRkZWQgYXMgcGVlciBkZXBlbmRlbmNpZXMuXG4gICAqXG4gICAqIEBwYXJhbSBkZXBzIG5hbWVzIG9mIGNkayBtb2R1bGVzIChlLmcuIGBAYXdzLWNkay9hd3MtbGFtYmRhYCkuXG4gICAqIEBkZXByZWNhdGVkIE5vdCBzdXBwb3J0ZWQgaW4gdjIuIEZvciB2MSwgdXNlIGBwcm9qZWN0LmNka0RlcHMuYWRkVjFEZXBlbmRlbmNpZXMoKWBcbiAgICovXG4gIHB1YmxpYyBhZGRDZGtEZXBlbmRlbmNpZXMoLi4uZGVwczogc3RyaW5nW10pIHtcbiAgICByZXR1cm4gdGhpcy5jZGtEZXBzLmFkZFYxRGVwZW5kZW5jaWVzKC4uLmRlcHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgQVdTIENESyBtb2R1bGVzIGFzIGRldiBkZXBlbmRlbmNpZXMuXG4gICAqXG4gICAqIEBwYXJhbSBkZXBzIG5hbWVzIG9mIGNkayBtb2R1bGVzIChlLmcuIGBAYXdzLWNkay9hd3MtbGFtYmRhYCkuXG4gICAqIEBkZXByZWNhdGVkIE5vdCBzdXBwb3J0ZWQgaW4gdjIuIEZvciB2MSwgdXNlIGBwcm9qZWN0LmNka0RlcHMuYWRkVjFEZXZEZXBlbmRlbmNpZXMoKWBcbiAgICovXG4gIHB1YmxpYyBhZGRDZGtUZXN0RGVwZW5kZW5jaWVzKC4uLmRlcHM6IHN0cmluZ1tdKSB7XG4gICAgcmV0dXJuIHRoaXMuY2RrRGVwcy5hZGRWMURldkRlcGVuZGVuY2llcyguLi5kZXBzKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBkZXRlcm1pbmVXb3JrZmxvd0NvbnRhaW5lckltYWdlKFxuICBvcHRpb25zOiBBd3NDZGtDb25zdHJ1Y3RMaWJyYXJ5T3B0aW9ucyxcbiAgY2RrTWFqb3JWZXJzaW9uOiBudW1iZXIgfCB1bmRlZmluZWRcbik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIC8vIGlmIHRoZSB1c2VyIHNwZWNpZmllcyB0aGUgd29ya2Zsb3cgY29udGFpbmVyIGltYWdlIGV4cGxpY2l0bHksIHVzZSB0aGF0XG4gIGlmIChvcHRpb25zLndvcmtmbG93Q29udGFpbmVySW1hZ2UpIHtcbiAgICByZXR1cm4gb3B0aW9ucy53b3JrZmxvd0NvbnRhaW5lckltYWdlO1xuICB9XG5cbiAgLy8gaWYgdGhlIHVzZXIgc3BlY2lmaWVzIG1pbmltdW0gbm9kZSB2ZXJzaW9uLCB0aGVuIEpzaWlQcm9qZWN0IHdpbGwgdGFrZSBjYXJlIG9mXG4gIC8vIGRldGVybWluaW5nIHRoZSB3b3JrZmxvdyBjb250YWluZXIgaW1hZ2UgZnJvbSB0aGF0LCBzbyB3ZSByZXR1cm4gXCJ1bmRlZmluZWRcIlxuICBpZiAob3B0aW9ucy5taW5Ob2RlVmVyc2lvbikge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICAvLyBvdGhlcndpc2UsIGNob29zZSBhIHdvcmtmbG93IGNvbnRhaW5lciBpbWFnZSBiYXNlZCBvbiB0aGUgQ0RLIHZlcnNpb25cbiAgaWYgKGNka01ham9yVmVyc2lvbiA9PT0gMSkge1xuICAgIHJldHVybiBcImpzaWkvc3VwZXJjaGFpbjoxLWJ1c3Rlci1zbGltXCI7XG4gIH1cblxuICBpZiAoY2RrTWFqb3JWZXJzaW9uID09PSAyKSB7XG4gICAgcmV0dXJuIFwianNpaS9zdXBlcmNoYWluOjEtYnVzdGVyLXNsaW0tbm9kZTE0XCI7XG4gIH1cblxuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuXG4vKiogQGRlcHJlY2F0ZWQgdXNlIGBBd3NDZGtDb25zdHJ1Y3RMaWJyYXJ5T3B0aW9uc2AgKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29uc3RydWN0TGlicmFyeUF3c09wdGlvbnNcbiAgZXh0ZW5kcyBBd3NDZGtDb25zdHJ1Y3RMaWJyYXJ5T3B0aW9ucyB7fVxuXG4vKiogQGRlcHJlY2F0ZWQgdXNlIGBBd3NDZGtDb25zdHJ1Y3RMaWJyYXJ5YCAqL1xuZXhwb3J0IGNsYXNzIENvbnN0cnVjdExpYnJhcnlBd3MgZXh0ZW5kcyBBd3NDZGtDb25zdHJ1Y3RMaWJyYXJ5IHt9XG4iXX0=
@@ -19,5 +19,5 @@ class AwsCdkDepsJava extends awscdk_deps_1.AwsCdkDeps {
19
19
  }
20
20
  exports.AwsCdkDepsJava = AwsCdkDepsJava;
21
21
  _a = JSII_RTTI_SYMBOL_1;
22
- AwsCdkDepsJava[_a] = { fqn: "projen.awscdk.AwsCdkDepsJava", version: "0.53.3" };
22
+ AwsCdkDepsJava[_a] = { fqn: "projen.awscdk.AwsCdkDepsJava", version: "0.53.4" };
23
23
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzY2RrLWRlcHMtamF2YS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hd3NjZGsvYXdzY2RrLWRlcHMtamF2YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLCtDQUErRDtBQUUvRDs7R0FFRztBQUNILE1BQWEsY0FBZSxTQUFRLHdCQUFVO0lBQ2xDLFlBQVk7UUFDcEIsT0FBTztZQUNMLE1BQU0sRUFBRSw2QkFBNkI7WUFDckMsTUFBTSxFQUFFLG9DQUFvQztZQUM1QyxVQUFVLEVBQUUsZ0NBQWdDO1lBQzVDLFVBQVUsRUFBRSxtQ0FBbUM7U0FDaEQsQ0FBQztJQUNKLENBQUM7O0FBUkgsd0NBU0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBd3NDZGtEZXBzLCBBd3NDZGtQYWNrYWdlTmFtZXMgfSBmcm9tIFwiLi9hd3NjZGstZGVwc1wiO1xuXG4vKipcbiAqIE1hbmFnZXMgZGVwZW5kZW5jaWVzIG9uIHRoZSBBV1MgQ0RLIGZvciBKYXZhIHByb2plY3RzLlxuICovXG5leHBvcnQgY2xhc3MgQXdzQ2RrRGVwc0phdmEgZXh0ZW5kcyBBd3NDZGtEZXBzIHtcbiAgcHJvdGVjdGVkIHBhY2thZ2VOYW1lcygpOiBBd3NDZGtQYWNrYWdlTmFtZXMge1xuICAgIHJldHVybiB7XG4gICAgICBjb3JlVjE6IFwic29mdHdhcmUuYW1hem9uLmF3c2Nkay9jb3JlXCIsXG4gICAgICBjb3JlVjI6IFwic29mdHdhcmUuYW1hem9uLmF3c2Nkay9hd3MtY2RrLWxpYlwiLFxuICAgICAgY29uc3RydWN0czogXCJzb2Z0d2FyZS5jb25zdHJ1Y3RzL2NvbnN0cnVjdHNcIixcbiAgICAgIGFzc2VydGlvbnM6IFwic29mdHdhcmUuYW1hem9uLmF3c2Nkay9hc3NlcnRpb25zXCIsXG4gICAgfTtcbiAgfVxufVxuIl19
@@ -20,5 +20,5 @@ class AwsCdkDepsJs extends awscdk_deps_1.AwsCdkDeps {
20
20
  }
21
21
  exports.AwsCdkDepsJs = AwsCdkDepsJs;
22
22
  _a = JSII_RTTI_SYMBOL_1;
23
- AwsCdkDepsJs[_a] = { fqn: "projen.awscdk.AwsCdkDepsJs", version: "0.53.3" };
23
+ AwsCdkDepsJs[_a] = { fqn: "projen.awscdk.AwsCdkDepsJs", version: "0.53.4" };
24
24
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzY2RrLWRlcHMtanMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXdzY2RrL2F3c2Nkay1kZXBzLWpzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsK0NBQStEO0FBRS9EOztHQUVHO0FBQ0gsTUFBYSxZQUFhLFNBQVEsd0JBQVU7SUFDaEMsWUFBWTtRQUNwQixPQUFPO1lBQ0wsTUFBTSxFQUFFLGVBQWU7WUFDdkIsTUFBTSxFQUFFLGFBQWE7WUFDckIsVUFBVSxFQUFFLFlBQVk7WUFDeEIsTUFBTSxFQUFFLGlCQUFpQjtZQUN6QixVQUFVLEVBQUUscUJBQXFCO1NBQ2xDLENBQUM7SUFDSixDQUFDOztBQVRILG9DQVVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXdzQ2RrRGVwcywgQXdzQ2RrUGFja2FnZU5hbWVzIH0gZnJvbSBcIi4vYXdzY2RrLWRlcHNcIjtcblxuLyoqXG4gKiBNYW5hZ2VzIGRlcGVuZGVuY2llcyBvbiB0aGUgQVdTIENESyBmb3IgTm9kZS5qcyBwcm9qZWN0cy5cbiAqL1xuZXhwb3J0IGNsYXNzIEF3c0Nka0RlcHNKcyBleHRlbmRzIEF3c0Nka0RlcHMge1xuICBwcm90ZWN0ZWQgcGFja2FnZU5hbWVzKCk6IEF3c0Nka1BhY2thZ2VOYW1lcyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNvcmVWMTogXCJAYXdzLWNkay9jb3JlXCIsXG4gICAgICBjb3JlVjI6IFwiYXdzLWNkay1saWJcIixcbiAgICAgIGNvbnN0cnVjdHM6IFwiY29uc3RydWN0c1wiLFxuICAgICAgYXNzZXJ0OiBcIkBhd3MtY2RrL2Fzc2VydFwiLFxuICAgICAgYXNzZXJ0aW9uczogXCJAYXdzLWNkay9hc3NlcnRpb25zXCIsXG4gICAgfTtcbiAgfVxufVxuIl19
@@ -149,7 +149,7 @@ class AwsCdkDeps extends component_1.Component {
149
149
  }
150
150
  exports.AwsCdkDeps = AwsCdkDeps;
151
151
  _a = JSII_RTTI_SYMBOL_1;
152
- AwsCdkDeps[_a] = { fqn: "projen.awscdk.AwsCdkDeps", version: "0.53.3" };
152
+ AwsCdkDeps[_a] = { fqn: "projen.awscdk.AwsCdkDeps", version: "0.53.4" };
153
153
  function determineFrameworkVersion(options) {
154
154
  const ver = semver.parse(options.cdkVersion);
155
155
  if (!ver) {
@@ -41,7 +41,7 @@ class CdkConfig extends component_1.Component {
41
41
  }
42
42
  exports.CdkConfig = CdkConfig;
43
43
  _a = JSII_RTTI_SYMBOL_1;
44
- CdkConfig[_a] = { fqn: "projen.awscdk.CdkConfig", version: "0.53.3" };
44
+ CdkConfig[_a] = { fqn: "projen.awscdk.CdkConfig", version: "0.53.4" };
45
45
  /**
46
46
  * Which approval is required when deploying CDK apps.
47
47
  */
@@ -46,5 +46,5 @@ class CdkTasks extends component_1.Component {
46
46
  }
47
47
  exports.CdkTasks = CdkTasks;
48
48
  _a = JSII_RTTI_SYMBOL_1;
49
- CdkTasks[_a] = { fqn: "projen.awscdk.CdkTasks", version: "0.53.3" };
49
+ CdkTasks[_a] = { fqn: "projen.awscdk.CdkTasks", version: "0.53.4" };
50
50
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLXRhc2tzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2F3c2Nkay9jZGstdGFza3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw0Q0FBeUM7QUFJekM7O0dBRUc7QUFDSCxNQUFhLFFBQVMsU0FBUSxxQkFBUztJQStCckMsWUFBWSxPQUFnQjs7UUFDMUIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRWYsSUFBSSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRTtZQUNwQyxXQUFXLEVBQUUsdUNBQXVDO1lBQ3BELElBQUksRUFBRSxXQUFXO1NBQ2xCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUU7WUFDakQsV0FBVyxFQUNULG9HQUFvRztZQUN0RyxJQUFJLEVBQUUsdUJBQXVCO1NBQzlCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUU7WUFDdEMsV0FBVyxFQUFFLHVDQUF1QztZQUNwRCxJQUFJLEVBQUUsWUFBWTtTQUNuQixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFO1lBQ3hDLFdBQVcsRUFBRSx3Q0FBd0M7WUFDckQsSUFBSSxFQUFFLGFBQWE7U0FDcEIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRTtZQUNsQyxXQUFXLEVBQUUsb0RBQW9EO1lBQ2pFLElBQUksRUFBRSxVQUFVO1NBQ2pCLENBQUMsQ0FBQztRQUVILDJFQUEyRTtRQUMzRSxNQUFNLEtBQUssU0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsbUNBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUV6RSxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDZCxLQUFLLENBQUMsV0FBVztZQUNmLHFGQUFxRixDQUFDO1FBRXhGLGlFQUFpRTtRQUNqRSxrREFBa0Q7UUFDbEQsS0FBSyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBRW5DLDRCQUE0QjtRQUM1QixLQUFLLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRXhCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLENBQUM7O0FBM0VILDRCQTRFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gXCIuLi9jb21wb25lbnRcIjtcbmltcG9ydCB7IFByb2plY3QgfSBmcm9tIFwiLi4vcHJvamVjdFwiO1xuaW1wb3J0IHsgVGFzayB9IGZyb20gXCIuLi90YXNrXCI7XG5cbi8qKlxuICogQWRkcyBzdGFuZGFyZCBBV1MgQ0RLIHRhc2tzIHRvIHlvdXIgcHJvamVjdC5cbiAqL1xuZXhwb3J0IGNsYXNzIENka1Rhc2tzIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgLyoqXG4gICAqIFN5bnRoZXNpemVzIHlvdXIgYXBwLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHN5bnRoOiBUYXNrO1xuXG4gIC8qKlxuICAgKiBTeW50aGVzaXplcyB5b3VyIGFwcCBhbmQgc3VwcHJlc3NlcyBzdGRvdXQuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc3ludGhTaWxlbnQ6IFRhc2s7XG5cbiAgLyoqXG4gICAqIERlcGxveXMgeW91ciBhcHAuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZGVwbG95OiBUYXNrO1xuXG4gIC8qKlxuICAgKiBEZXN0cm95cyBhbGwgdGhlIHN0YWNrcy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBkZXN0cm95OiBUYXNrO1xuXG4gIC8qKlxuICAgKiBEaWZmIGFnYWluc3QgcHJvZHVjdGlvbi5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBkaWZmOiBUYXNrO1xuXG4gIC8qKlxuICAgKiBXYXRjaCB0YXNrLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHdhdGNoOiBUYXNrO1xuXG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IFByb2plY3QpIHtcbiAgICBzdXBlcihwcm9qZWN0KTtcblxuICAgIHRoaXMuc3ludGggPSBwcm9qZWN0LmFkZFRhc2soXCJzeW50aFwiLCB7XG4gICAgICBkZXNjcmlwdGlvbjogXCJTeW50aGVzaXplcyB5b3VyIGNkayBhcHAgaW50byBjZGsub3V0XCIsXG4gICAgICBleGVjOiBcImNkayBzeW50aFwiLFxuICAgIH0pO1xuXG4gICAgdGhpcy5zeW50aFNpbGVudCA9IHByb2plY3QuYWRkVGFzayhcInN5bnRoOnNpbGVudFwiLCB7XG4gICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgJ1N5bnRoZXNpemVzIHlvdXIgY2RrIGFwcCBpbnRvIGNkay5vdXQgYW5kIHN1cHByZXNzZXMgdGhlIHRlbXBsYXRlIGluIHN0ZG91dCAocGFydCBvZiBcInlhcm4gYnVpbGRcIiknLFxuICAgICAgZXhlYzogXCJjZGsgc3ludGggPiAvZGV2L251bGxcIiwgLy8gcmVkaXJlY3QgdG8gL2Rldi9udWxsIHRvIGhpZGUgdGVtcGxhdGVcbiAgICB9KTtcblxuICAgIHRoaXMuZGVwbG95ID0gcHJvamVjdC5hZGRUYXNrKFwiZGVwbG95XCIsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiBcIkRlcGxveXMgeW91ciBDREsgYXBwIHRvIHRoZSBBV1MgY2xvdWRcIixcbiAgICAgIGV4ZWM6IFwiY2RrIGRlcGxveVwiLFxuICAgIH0pO1xuXG4gICAgdGhpcy5kZXN0cm95ID0gcHJvamVjdC5hZGRUYXNrKFwiZGVzdHJveVwiLCB7XG4gICAgICBkZXNjcmlwdGlvbjogXCJEZXN0cm95cyB5b3VyIGNkayBhcHAgaW4gdGhlIEFXUyBjbG91ZFwiLFxuICAgICAgZXhlYzogXCJjZGsgZGVzdHJveVwiLFxuICAgIH0pO1xuXG4gICAgdGhpcy5kaWZmID0gcHJvamVjdC5hZGRUYXNrKFwiZGlmZlwiLCB7XG4gICAgICBkZXNjcmlwdGlvbjogXCJEaWZmcyB0aGUgY3VycmVudGx5IGRlcGxveWVkIGFwcCBhZ2FpbnN0IHlvdXIgY29kZVwiLFxuICAgICAgZXhlYzogXCJjZGsgZGlmZlwiLFxuICAgIH0pO1xuXG4gICAgLy8gdHlwZXNjcmlwdCBwcm9qZWN0cyBhbHJlYWR5IGhhdmUgYSBcIndhdGNoXCIgdGFzaywgd2Ugd2Ugd2lsbCByZXB1cnBvc2UgaXRcbiAgICBjb25zdCB3YXRjaCA9IHByb2plY3QudGFza3MudHJ5RmluZChcIndhdGNoXCIpID8/IHByb2plY3QuYWRkVGFzayhcIndhdGNoXCIpO1xuXG4gICAgd2F0Y2gucmVzZXQoKTtcbiAgICB3YXRjaC5kZXNjcmlwdGlvbiA9XG4gICAgICBcIldhdGNoZXMgY2hhbmdlcyBpbiB5b3VyIHNvdXJjZSBjb2RlIGFuZCByZWJ1aWxkcyBhbmQgZGVwbG95cyB0byB0aGUgY3VycmVudCBhY2NvdW50XCI7XG5cbiAgICAvLyBkZXBsb3kgZmlyc3QgYmVjYXVzZSBzdXJwcmlzaW5nbHkgd2F0Y2ggaXMgbm90IGRlcGxveWluZyBmaXJzdFxuICAgIC8vIHNlZSBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvaXNzdWVzLzE3Nzc2XG4gICAgd2F0Y2guZXhlYyhcImNkayBkZXBsb3kgLS1ob3Rzd2FwXCIpO1xuXG4gICAgLy8gbm93IHdlIGFyZSByZWFkeSB0byB3YXRjaFxuICAgIHdhdGNoLmV4ZWMoXCJjZGsgd2F0Y2hcIik7XG5cbiAgICB0aGlzLndhdGNoID0gd2F0Y2g7XG4gIH1cbn1cbiJdfQ==