projen 0.59.8 → 0.60.2

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 (146) hide show
  1. package/.jsii +714 -131
  2. package/README.md +1 -0
  3. package/docs/api/API.md +425 -37
  4. package/docs/typescript.md +12 -1
  5. package/lib/awscdk/auto-discover.js +5 -5
  6. package/lib/awscdk/awscdk-app-java.js +1 -1
  7. package/lib/awscdk/awscdk-app-py.d.ts +1 -1
  8. package/lib/awscdk/awscdk-app-py.js +28 -26
  9. package/lib/awscdk/awscdk-app-ts.js +1 -1
  10. package/lib/awscdk/awscdk-construct.js +2 -2
  11. package/lib/awscdk/awscdk-deps-java.js +1 -1
  12. package/lib/awscdk/awscdk-deps-js.js +1 -1
  13. package/lib/awscdk/awscdk-deps.js +1 -1
  14. package/lib/awscdk/cdk-config.js +1 -1
  15. package/lib/awscdk/cdk-tasks.js +1 -1
  16. package/lib/awscdk/integration-test.js +1 -1
  17. package/lib/awscdk/lambda-extension.js +1 -1
  18. package/lib/awscdk/lambda-function.js +2 -2
  19. package/lib/build/build-workflow.js +1 -1
  20. package/lib/cdk/auto-discover-base.js +2 -2
  21. package/lib/cdk/construct-lib.js +1 -1
  22. package/lib/cdk/integration-test-base.js +1 -1
  23. package/lib/cdk/jsii-docgen.js +1 -1
  24. package/lib/cdk/jsii-project.js +1 -1
  25. package/lib/cdk8s/auto-discover.js +2 -2
  26. package/lib/cdk8s/cdk8s-app-py.d.ts +39 -0
  27. package/lib/cdk8s/cdk8s-app-py.js +79 -0
  28. package/lib/cdk8s/cdk8s-app-ts.d.ts +3 -68
  29. package/lib/cdk8s/cdk8s-app-ts.js +9 -24
  30. package/lib/cdk8s/cdk8s-construct.js +1 -1
  31. package/lib/cdk8s/cdk8s-deps-js.d.ts +4 -0
  32. package/lib/cdk8s/cdk8s-deps-js.js +16 -0
  33. package/lib/cdk8s/cdk8s-deps-py.d.ts +4 -0
  34. package/lib/cdk8s/cdk8s-deps-py.js +19 -0
  35. package/lib/cdk8s/cdk8s-deps.d.ts +144 -0
  36. package/lib/cdk8s/cdk8s-deps.js +109 -0
  37. package/lib/cdk8s/index.d.ts +3 -0
  38. package/lib/cdk8s/index.js +4 -1
  39. package/lib/cdk8s/integration-test.js +1 -1
  40. package/lib/cdktf/cdktf-construct.js +1 -1
  41. package/lib/circleci/circleci.js +1 -1
  42. package/lib/component.js +1 -1
  43. package/lib/dependencies.js +1 -1
  44. package/lib/dev-env.js +1 -1
  45. package/lib/docker-compose.js +2 -2
  46. package/lib/file.js +1 -1
  47. package/lib/gitattributes.js +1 -1
  48. package/lib/github/auto-approve.js +1 -1
  49. package/lib/github/auto-merge.js +1 -1
  50. package/lib/github/dependabot.js +1 -1
  51. package/lib/github/github-credentials.js +1 -1
  52. package/lib/github/github-project.js +1 -1
  53. package/lib/github/github.js +1 -1
  54. package/lib/github/mergify.js +1 -1
  55. package/lib/github/pr-template.js +1 -1
  56. package/lib/github/pull-request-lint.js +1 -1
  57. package/lib/github/stale.js +1 -1
  58. package/lib/github/task-workflow.js +1 -1
  59. package/lib/github/workflows.js +1 -1
  60. package/lib/gitlab/configuration.js +1 -1
  61. package/lib/gitlab/gitlab-configuration.js +1 -1
  62. package/lib/gitlab/nested-configuration.js +1 -1
  63. package/lib/gitpod.js +1 -1
  64. package/lib/ignore-file.js +1 -1
  65. package/lib/ini.js +1 -1
  66. package/lib/java/java-project.js +1 -1
  67. package/lib/java/junit.js +1 -1
  68. package/lib/java/maven-compile.js +1 -1
  69. package/lib/java/maven-packaging.js +1 -1
  70. package/lib/java/maven-sample.js +1 -1
  71. package/lib/java/pom.js +1 -1
  72. package/lib/java/projenrc.js +1 -1
  73. package/lib/javascript/bundler.js +1 -1
  74. package/lib/javascript/eslint.js +1 -1
  75. package/lib/javascript/jest.js +1 -1
  76. package/lib/javascript/node-package.js +1 -1
  77. package/lib/javascript/node-project.js +1 -1
  78. package/lib/javascript/npm-config.js +1 -1
  79. package/lib/javascript/prettier.js +1 -1
  80. package/lib/javascript/projenrc.js +1 -1
  81. package/lib/javascript/typescript-config.js +1 -1
  82. package/lib/javascript/upgrade-dependencies.js +2 -2
  83. package/lib/json.js +1 -1
  84. package/lib/license.js +1 -1
  85. package/lib/logger.js +1 -1
  86. package/lib/makefile.js +1 -1
  87. package/lib/object-file.js +1 -1
  88. package/lib/project-build.js +1 -1
  89. package/lib/project.js +1 -1
  90. package/lib/projects.js +1 -1
  91. package/lib/projenrc-json.js +1 -1
  92. package/lib/python/pip.d.ts +2 -2
  93. package/lib/python/pip.js +8 -8
  94. package/lib/python/poetry.d.ts +3 -3
  95. package/lib/python/poetry.js +3 -3
  96. package/lib/python/projenrc.js +1 -1
  97. package/lib/python/pytest-sample.d.ts +18 -2
  98. package/lib/python/pytest-sample.js +8 -5
  99. package/lib/python/pytest.d.ts +2 -2
  100. package/lib/python/pytest.js +4 -3
  101. package/lib/python/python-packaging.d.ts +4 -0
  102. package/lib/python/python-packaging.js +1 -1
  103. package/lib/python/python-project.js +9 -4
  104. package/lib/python/python-sample.d.ts +6 -2
  105. package/lib/python/python-sample.js +4 -4
  106. package/lib/python/requirements-file.js +1 -1
  107. package/lib/python/setuppy.d.ts +2 -2
  108. package/lib/python/setuppy.js +3 -3
  109. package/lib/python/setuptools.d.ts +2 -2
  110. package/lib/python/setuptools.js +10 -6
  111. package/lib/python/venv.d.ts +2 -2
  112. package/lib/python/venv.js +2 -2
  113. package/lib/readme.js +1 -1
  114. package/lib/release/publisher.js +1 -1
  115. package/lib/release/release-trigger.js +1 -1
  116. package/lib/release/release.js +1 -1
  117. package/lib/renovatebot.js +1 -1
  118. package/lib/run-task.js +0 -1810
  119. package/lib/sample-file.js +2 -2
  120. package/lib/semver.js +1 -1
  121. package/lib/source-code.js +1 -1
  122. package/lib/task-runtime.js +1 -1
  123. package/lib/task.js +1 -1
  124. package/lib/tasks.js +1 -1
  125. package/lib/testing.js +1 -1
  126. package/lib/textfile.js +1 -1
  127. package/lib/toml.js +1 -1
  128. package/lib/typescript/projenrc.js +1 -1
  129. package/lib/typescript/typescript-typedoc.js +1 -1
  130. package/lib/typescript/typescript.js +3 -3
  131. package/lib/util/semver.js +5 -5
  132. package/lib/version.js +1 -1
  133. package/lib/vscode/devcontainer.js +1 -1
  134. package/lib/vscode/launch-config.js +1 -1
  135. package/lib/vscode/vscode.js +1 -1
  136. package/lib/web/next.js +3 -3
  137. package/lib/web/postcss.js +1 -1
  138. package/lib/web/react.js +4 -4
  139. package/lib/web/tailwind.js +1 -1
  140. package/lib/xmlfile.js +1 -1
  141. package/lib/yaml.js +1 -1
  142. package/node_modules/xmlbuilder2/node_modules/@types/node/README.md +1 -1
  143. package/node_modules/xmlbuilder2/node_modules/@types/node/index.d.ts +1 -1
  144. package/node_modules/xmlbuilder2/node_modules/@types/node/package.json +2 -2
  145. package/node_modules/xmlbuilder2/node_modules/@types/node/test.d.ts +146 -112
  146. package/package.json +1 -1
package/.jsii CHANGED
@@ -49,7 +49,7 @@
49
49
  },
50
50
  "name": "projen",
51
51
  "readme": {
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\n_projen_ doesn't need to be installed. You will be using [npx](https://docs.npmjs.com/cli/v7/commands/npx) to run _projen_ which takes care of all required setup steps.\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$ 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\nfull list):\n\n**Built-in:** (run `npx projen new <type>`)\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**External:** (run `npx projen new --from <type>`)\n\n* [projen-github-action-typescript](https://github.com/projen/projen-github-action-typescript/blob/main/API.md) - GitHub Action in TypeScript project.\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### Virtual Meetup\n\n- Thursday June 30, 2022\n- 1-2pm America/New_York (EDT)\n- [CFP](https://bit.ly/3NEc0UQ) a Google Form\n- CFP Closes Saturday April 30, 2022\n- Hosted on [Zoom](https://zoom.us/j/92399854777?pwd=OUZybHlobHNoZUs1VVordWhaRTVGdz09#success)\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"
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\n_projen_ doesn't need to be installed. You will be using [npx](https://docs.npmjs.com/cli/v7/commands/npx) to run _projen_ which takes care of all required setup steps.\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$ 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\nfull list):\n\n**Built-in:** (run `npx projen new <type>`)\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-py](https://projen.io/api/API.html#projen-cdk8s-cdk8spythonapp) - CDK8s app in Python.\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**External:** (run `npx projen new --from <type>`)\n\n* [projen-github-action-typescript](https://github.com/projen/projen-github-action-typescript/blob/main/API.md) - GitHub Action in TypeScript project.\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### Virtual Meetup\n\n- Thursday June 30, 2022\n- 1-2pm America/New_York (EDT)\n- [CFP](https://bit.ly/3NEc0UQ) a Google Form\n- CFP Closes Saturday April 30, 2022\n- Hosted on [Zoom](https://zoom.us/j/92399854777?pwd=OUZybHlobHNoZUs1VVordWhaRTVGdz09#success)\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",
@@ -14837,53 +14837,92 @@
14837
14837
  ],
14838
14838
  "symbolId": "src/cdk8s/auto-discover:AutoDiscoverOptions"
14839
14839
  },
14840
- "projen.cdk8s.Cdk8sTypeScriptApp": {
14840
+ "projen.cdk8s.Cdk8sDeps": {
14841
+ "abstract": true,
14841
14842
  "assembly": "projen",
14842
- "base": "projen.typescript.TypeScriptAppProject",
14843
+ "base": "projen.Component",
14843
14844
  "docs": {
14844
- "custom": {
14845
- "pjid": "cdk8s-app-ts"
14846
- },
14847
14845
  "stability": "experimental",
14848
- "summary": "CDK8s app in TypeScript."
14846
+ "summary": "Manages dependencies on the CDK8s."
14849
14847
  },
14850
- "fqn": "projen.cdk8s.Cdk8sTypeScriptApp",
14848
+ "fqn": "projen.cdk8s.Cdk8sDeps",
14851
14849
  "initializer": {
14852
14850
  "docs": {
14853
14851
  "stability": "experimental"
14854
14852
  },
14855
14853
  "locationInModule": {
14856
- "filename": "src/cdk8s/cdk8s-app-ts.ts",
14857
- "line": 134
14854
+ "filename": "src/cdk8s/cdk8s-deps.ts",
14855
+ "line": 154
14858
14856
  },
14859
14857
  "parameters": [
14858
+ {
14859
+ "name": "project",
14860
+ "type": {
14861
+ "fqn": "projen.Project"
14862
+ }
14863
+ },
14860
14864
  {
14861
14865
  "name": "options",
14862
14866
  "type": {
14863
- "fqn": "projen.cdk8s.Cdk8sTypeScriptAppOptions"
14867
+ "fqn": "projen.cdk8s.Cdk8sDepsOptions"
14864
14868
  }
14865
14869
  }
14866
14870
  ]
14867
14871
  },
14868
14872
  "kind": "class",
14869
14873
  "locationInModule": {
14870
- "filename": "src/cdk8s/cdk8s-app-ts.ts",
14871
- "line": 112
14874
+ "filename": "src/cdk8s/cdk8s-deps.ts",
14875
+ "line": 134
14872
14876
  },
14873
- "name": "Cdk8sTypeScriptApp",
14877
+ "methods": [
14878
+ {
14879
+ "abstract": true,
14880
+ "docs": {
14881
+ "stability": "experimental",
14882
+ "summary": "Return a configuration object with information about package naming in various languages."
14883
+ },
14884
+ "locationInModule": {
14885
+ "filename": "src/cdk8s/cdk8s-deps.ts",
14886
+ "line": 198
14887
+ },
14888
+ "name": "packageNames",
14889
+ "protected": true,
14890
+ "returns": {
14891
+ "type": {
14892
+ "fqn": "projen.cdk8s.Cdk8sPackageNames"
14893
+ }
14894
+ }
14895
+ }
14896
+ ],
14897
+ "name": "Cdk8sDeps",
14874
14898
  "namespace": "cdk8s",
14875
14899
  "properties": [
14876
14900
  {
14877
14901
  "docs": {
14878
14902
  "stability": "experimental",
14879
- "summary": "The CDK8s app entrypoint."
14903
+ "summary": "The major version of the CDK8s (e.g. 1, 2, ...)."
14880
14904
  },
14881
14905
  "immutable": true,
14882
14906
  "locationInModule": {
14883
- "filename": "src/cdk8s/cdk8s-app-ts.ts",
14884
- "line": 132
14907
+ "filename": "src/cdk8s/cdk8s-deps.ts",
14908
+ "line": 148
14885
14909
  },
14886
- "name": "appEntrypoint",
14910
+ "name": "cdk8sMajorVersion",
14911
+ "type": {
14912
+ "primitive": "number"
14913
+ }
14914
+ },
14915
+ {
14916
+ "docs": {
14917
+ "stability": "experimental",
14918
+ "summary": "The minimum version of the CDK8s (e.g. `2.0.0`)."
14919
+ },
14920
+ "immutable": true,
14921
+ "locationInModule": {
14922
+ "filename": "src/cdk8s/cdk8s-deps.ts",
14923
+ "line": 143
14924
+ },
14925
+ "name": "cdk8sMinimumVersion",
14887
14926
  "type": {
14888
14927
  "primitive": "string"
14889
14928
  }
@@ -14891,85 +14930,364 @@
14891
14930
  {
14892
14931
  "docs": {
14893
14932
  "stability": "experimental",
14894
- "summary": "The cdk8s-cli version this app is using."
14933
+ "summary": "The dependency requirement for CDK8s."
14895
14934
  },
14896
14935
  "immutable": true,
14897
14936
  "locationInModule": {
14898
- "filename": "src/cdk8s/cdk8s-app-ts.ts",
14899
- "line": 127
14937
+ "filename": "src/cdk8s/cdk8s-deps.ts",
14938
+ "line": 138
14939
+ },
14940
+ "name": "cdk8sVersion",
14941
+ "type": {
14942
+ "primitive": "string"
14943
+ }
14944
+ }
14945
+ ],
14946
+ "symbolId": "src/cdk8s/cdk8s-deps:Cdk8sDeps"
14947
+ },
14948
+ "projen.cdk8s.Cdk8sDepsCommonOptions": {
14949
+ "assembly": "projen",
14950
+ "datatype": true,
14951
+ "docs": {
14952
+ "stability": "experimental",
14953
+ "summary": "Options for `Cdk8sDeps`."
14954
+ },
14955
+ "fqn": "projen.cdk8s.Cdk8sDepsCommonOptions",
14956
+ "kind": "interface",
14957
+ "locationInModule": {
14958
+ "filename": "src/cdk8s/cdk8s-deps.ts",
14959
+ "line": 9
14960
+ },
14961
+ "name": "Cdk8sDepsCommonOptions",
14962
+ "namespace": "cdk8s",
14963
+ "properties": [
14964
+ {
14965
+ "abstract": true,
14966
+ "docs": {
14967
+ "default": "\"2.3.33\"",
14968
+ "stability": "experimental",
14969
+ "summary": "Minumum version of the cdk8s to depend on."
14970
+ },
14971
+ "immutable": true,
14972
+ "locationInModule": {
14973
+ "filename": "src/cdk8s/cdk8s-deps.ts",
14974
+ "line": 15
14975
+ },
14976
+ "name": "cdk8sVersion",
14977
+ "type": {
14978
+ "primitive": "string"
14979
+ }
14980
+ },
14981
+ {
14982
+ "abstract": true,
14983
+ "docs": {
14984
+ "default": "\"2.0.28\"",
14985
+ "stability": "experimental",
14986
+ "summary": "Minumum version of the cdk8s-cli to depend on."
14987
+ },
14988
+ "immutable": true,
14989
+ "locationInModule": {
14990
+ "filename": "src/cdk8s/cdk8s-deps.ts",
14991
+ "line": 22
14900
14992
  },
14901
14993
  "name": "cdk8sCliVersion",
14994
+ "optional": true,
14902
14995
  "type": {
14903
14996
  "primitive": "string"
14904
14997
  }
14905
14998
  },
14906
14999
  {
15000
+ "abstract": true,
14907
15001
  "docs": {
15002
+ "default": "false",
15003
+ "remarks": "You can use this to prevent yarn to mix versions for your CDK8s package and to prevent auto-updates.\nIf you use experimental features this will let you define the moment you include breaking changes.",
14908
15004
  "stability": "experimental",
14909
- "summary": "The CDK8s version this app is using."
15005
+ "summary": "Use pinned version instead of caret version for cdk8s-cli."
14910
15006
  },
14911
15007
  "immutable": true,
14912
15008
  "locationInModule": {
14913
- "filename": "src/cdk8s/cdk8s-app-ts.ts",
14914
- "line": 116
15009
+ "filename": "src/cdk8s/cdk8s-deps.ts",
15010
+ "line": 49
14915
15011
  },
14916
- "name": "cdk8sVersion",
15012
+ "name": "cdk8sCliVersionPinning",
15013
+ "optional": true,
15014
+ "type": {
15015
+ "primitive": "boolean"
15016
+ }
15017
+ },
15018
+ {
15019
+ "abstract": true,
15020
+ "docs": {
15021
+ "default": "true",
15022
+ "stability": "experimental",
15023
+ "summary": "Include cdk8s-plus."
15024
+ },
15025
+ "immutable": true,
15026
+ "locationInModule": {
15027
+ "filename": "src/cdk8s/cdk8s-deps.ts",
15028
+ "line": 66
15029
+ },
15030
+ "name": "cdk8sPlus",
15031
+ "optional": true,
15032
+ "type": {
15033
+ "primitive": "boolean"
15034
+ }
15035
+ },
15036
+ {
15037
+ "abstract": true,
15038
+ "docs": {
15039
+ "default": "\"2.0.0-rc.26\"",
15040
+ "stability": "experimental",
15041
+ "summary": "Minumum version of the cdk8s-plus-XX to depend on."
15042
+ },
15043
+ "immutable": true,
15044
+ "locationInModule": {
15045
+ "filename": "src/cdk8s/cdk8s-deps.ts",
15046
+ "line": 82
15047
+ },
15048
+ "name": "cdk8sPlusVersion",
15049
+ "optional": true,
14917
15050
  "type": {
14918
15051
  "primitive": "string"
14919
15052
  }
14920
15053
  },
14921
15054
  {
15055
+ "abstract": true,
14922
15056
  "docs": {
15057
+ "default": "false",
15058
+ "remarks": "You can use this to prevent yarn to mix versions for your CDK8s package and to prevent auto-updates.\nIf you use experimental features this will let you define the moment you include breaking changes.",
14923
15059
  "stability": "experimental",
14924
- "summary": "The constructs version this app is using."
15060
+ "summary": "Use pinned version instead of caret version for cdk8s-plus-17."
14925
15061
  },
14926
15062
  "immutable": true,
14927
15063
  "locationInModule": {
14928
- "filename": "src/cdk8s/cdk8s-app-ts.ts",
14929
- "line": 121
15064
+ "filename": "src/cdk8s/cdk8s-deps.ts",
15065
+ "line": 92
15066
+ },
15067
+ "name": "cdk8sPlusVersionPinning",
15068
+ "optional": true,
15069
+ "type": {
15070
+ "primitive": "boolean"
15071
+ }
15072
+ },
15073
+ {
15074
+ "abstract": true,
15075
+ "docs": {
15076
+ "default": "false",
15077
+ "remarks": "You can use this to prevent yarn to mix versions for your CDK8s package and to prevent auto-updates.\nIf you use experimental features this will let you define the moment you include breaking changes.",
15078
+ "stability": "experimental",
15079
+ "summary": "Use pinned version instead of caret version for cdk8s."
15080
+ },
15081
+ "immutable": true,
15082
+ "locationInModule": {
15083
+ "filename": "src/cdk8s/cdk8s-deps.ts",
15084
+ "line": 39
15085
+ },
15086
+ "name": "cdk8sVersionPinning",
15087
+ "optional": true,
15088
+ "type": {
15089
+ "primitive": "boolean"
15090
+ }
15091
+ },
15092
+ {
15093
+ "abstract": true,
15094
+ "docs": {
15095
+ "default": "\"10.1.42\"",
15096
+ "stability": "experimental",
15097
+ "summary": "Minimum version of the `constructs` library to depend on."
15098
+ },
15099
+ "immutable": true,
15100
+ "locationInModule": {
15101
+ "filename": "src/cdk8s/cdk8s-deps.ts",
15102
+ "line": 29
14930
15103
  },
14931
15104
  "name": "constructsVersion",
15105
+ "optional": true,
14932
15106
  "type": {
14933
15107
  "primitive": "string"
14934
15108
  }
15109
+ },
15110
+ {
15111
+ "abstract": true,
15112
+ "docs": {
15113
+ "default": "false",
15114
+ "remarks": "You can use this to prevent yarn to mix versions for your consructs package and to prevent auto-updates.\nIf you use experimental features this will let you define the moment you include breaking changes.",
15115
+ "stability": "experimental",
15116
+ "summary": "Use pinned version instead of caret version for constructs."
15117
+ },
15118
+ "immutable": true,
15119
+ "locationInModule": {
15120
+ "filename": "src/cdk8s/cdk8s-deps.ts",
15121
+ "line": 59
15122
+ },
15123
+ "name": "constructsVersionPinning",
15124
+ "optional": true,
15125
+ "type": {
15126
+ "primitive": "boolean"
15127
+ }
15128
+ },
15129
+ {
15130
+ "abstract": true,
15131
+ "docs": {
15132
+ "default": "22",
15133
+ "stability": "experimental",
15134
+ "summary": "The cdk8s-plus library depends of Kubernetes minor version For example, cdk8s-plus-22 targets kubernetes version 1.22.0 cdk8s-plus-21 targets kubernetes version 1.21.0."
15135
+ },
15136
+ "immutable": true,
15137
+ "locationInModule": {
15138
+ "filename": "src/cdk8s/cdk8s-deps.ts",
15139
+ "line": 75
15140
+ },
15141
+ "name": "k8sMinorVersion",
15142
+ "optional": true,
15143
+ "type": {
15144
+ "primitive": "number"
15145
+ }
14935
15146
  }
14936
15147
  ],
14937
- "symbolId": "src/cdk8s/cdk8s-app-ts:Cdk8sTypeScriptApp"
15148
+ "symbolId": "src/cdk8s/cdk8s-deps:Cdk8sDepsCommonOptions"
14938
15149
  },
14939
- "projen.cdk8s.Cdk8sTypeScriptAppOptions": {
15150
+ "projen.cdk8s.Cdk8sDepsOptions": {
14940
15151
  "assembly": "projen",
14941
15152
  "datatype": true,
14942
15153
  "docs": {
14943
15154
  "stability": "experimental"
14944
15155
  },
14945
- "fqn": "projen.cdk8s.Cdk8sTypeScriptAppOptions",
15156
+ "fqn": "projen.cdk8s.Cdk8sDepsOptions",
14946
15157
  "interfaces": [
14947
- "projen.typescript.TypeScriptProjectOptions"
15158
+ "projen.cdk8s.Cdk8sDepsCommonOptions"
14948
15159
  ],
14949
15160
  "kind": "interface",
14950
15161
  "locationInModule": {
14951
- "filename": "src/cdk8s/cdk8s-app-ts.ts",
14952
- "line": 8
15162
+ "filename": "src/cdk8s/cdk8s-deps.ts",
15163
+ "line": 95
14953
15164
  },
14954
- "name": "Cdk8sTypeScriptAppOptions",
15165
+ "name": "Cdk8sDepsOptions",
14955
15166
  "namespace": "cdk8s",
14956
15167
  "properties": [
14957
15168
  {
14958
15169
  "abstract": true,
14959
15170
  "docs": {
14960
- "custom": {
14961
- "featured": "true"
14962
- },
14963
- "default": "\"1.0.0-beta.10\"",
15171
+ "default": "false",
14964
15172
  "stability": "experimental",
14965
- "summary": "Minimum target version this library is tested against."
15173
+ "summary": "Add cdk8s-cli only to Node projects."
14966
15174
  },
14967
15175
  "immutable": true,
14968
15176
  "locationInModule": {
14969
- "filename": "src/cdk8s/cdk8s-app-ts.ts",
14970
- "line": 15
15177
+ "filename": "src/cdk8s/cdk8s-deps.ts",
15178
+ "line": 108
14971
15179
  },
14972
- "name": "cdk8sVersion",
15180
+ "name": "cdk8sCliDependency",
15181
+ "type": {
15182
+ "primitive": "boolean"
15183
+ }
15184
+ },
15185
+ {
15186
+ "abstract": true,
15187
+ "docs": {
15188
+ "remarks": "For libraries, use peer dependencies and for apps use runtime dependencies.",
15189
+ "stability": "experimental",
15190
+ "summary": "The type of dependency to use for runtime CDK8s and `constructs` modules."
15191
+ },
15192
+ "immutable": true,
15193
+ "locationInModule": {
15194
+ "filename": "src/cdk8s/cdk8s-deps.ts",
15195
+ "line": 101
15196
+ },
15197
+ "name": "dependencyType",
15198
+ "type": {
15199
+ "fqn": "projen.DependencyType"
15200
+ }
15201
+ }
15202
+ ],
15203
+ "symbolId": "src/cdk8s/cdk8s-deps:Cdk8sDepsOptions"
15204
+ },
15205
+ "projen.cdk8s.Cdk8sDepsPy": {
15206
+ "assembly": "projen",
15207
+ "base": "projen.cdk8s.Cdk8sDeps",
15208
+ "docs": {
15209
+ "stability": "experimental"
15210
+ },
15211
+ "fqn": "projen.cdk8s.Cdk8sDepsPy",
15212
+ "initializer": {
15213
+ "docs": {
15214
+ "stability": "experimental"
15215
+ },
15216
+ "locationInModule": {
15217
+ "filename": "src/cdk8s/cdk8s-deps.ts",
15218
+ "line": 154
15219
+ },
15220
+ "parameters": [
15221
+ {
15222
+ "name": "project",
15223
+ "type": {
15224
+ "fqn": "projen.Project"
15225
+ }
15226
+ },
15227
+ {
15228
+ "name": "options",
15229
+ "type": {
15230
+ "fqn": "projen.cdk8s.Cdk8sDepsOptions"
15231
+ }
15232
+ }
15233
+ ]
15234
+ },
15235
+ "kind": "class",
15236
+ "locationInModule": {
15237
+ "filename": "src/cdk8s/cdk8s-deps-py.ts",
15238
+ "line": 3
15239
+ },
15240
+ "methods": [
15241
+ {
15242
+ "docs": {
15243
+ "stability": "experimental",
15244
+ "summary": "Return a configuration object with information about package naming in various languages."
15245
+ },
15246
+ "locationInModule": {
15247
+ "filename": "src/cdk8s/cdk8s-deps-py.ts",
15248
+ "line": 4
15249
+ },
15250
+ "name": "packageNames",
15251
+ "overrides": "projen.cdk8s.Cdk8sDeps",
15252
+ "protected": true,
15253
+ "returns": {
15254
+ "type": {
15255
+ "fqn": "projen.cdk8s.Cdk8sPackageNames"
15256
+ }
15257
+ }
15258
+ }
15259
+ ],
15260
+ "name": "Cdk8sDepsPy",
15261
+ "namespace": "cdk8s",
15262
+ "symbolId": "src/cdk8s/cdk8s-deps-py:Cdk8sDepsPy"
15263
+ },
15264
+ "projen.cdk8s.Cdk8sPackageNames": {
15265
+ "assembly": "projen",
15266
+ "datatype": true,
15267
+ "docs": {
15268
+ "stability": "experimental"
15269
+ },
15270
+ "fqn": "projen.cdk8s.Cdk8sPackageNames",
15271
+ "kind": "interface",
15272
+ "locationInModule": {
15273
+ "filename": "src/cdk8s/cdk8s-deps.ts",
15274
+ "line": 111
15275
+ },
15276
+ "name": "Cdk8sPackageNames",
15277
+ "namespace": "cdk8s",
15278
+ "properties": [
15279
+ {
15280
+ "abstract": true,
15281
+ "docs": {
15282
+ "stability": "experimental",
15283
+ "summary": "Fully qualified name of the core framework package."
15284
+ },
15285
+ "immutable": true,
15286
+ "locationInModule": {
15287
+ "filename": "src/cdk8s/cdk8s-deps.ts",
15288
+ "line": 115
15289
+ },
15290
+ "name": "cdk8s",
14973
15291
  "type": {
14974
15292
  "primitive": "string"
14975
15293
  }
@@ -14977,17 +15295,15 @@
14977
15295
  {
14978
15296
  "abstract": true,
14979
15297
  "docs": {
14980
- "default": "\"main.ts\"",
14981
15298
  "stability": "experimental",
14982
- "summary": "The CDK8s app's entrypoint (relative to the source directory, which is \"src\" by default)."
15299
+ "summary": "Fully qualified name of the cdk9s-plus-XX library package."
14983
15300
  },
14984
15301
  "immutable": true,
14985
15302
  "locationInModule": {
14986
- "filename": "src/cdk8s/cdk8s-app-ts.ts",
14987
- "line": 93
15303
+ "filename": "src/cdk8s/cdk8s-deps.ts",
15304
+ "line": 128
14988
15305
  },
14989
- "name": "appEntrypoint",
14990
- "optional": true,
15306
+ "name": "cdk8sPlus",
14991
15307
  "type": {
14992
15308
  "primitive": "string"
14993
15309
  }
@@ -14995,38 +15311,144 @@
14995
15311
  {
14996
15312
  "abstract": true,
14997
15313
  "docs": {
14998
- "default": "\"cdk8sVersion\"",
14999
15314
  "stability": "experimental",
15000
- "summary": "cdk8s-cli version."
15315
+ "summary": "Fully qualified name of the constructs library package."
15001
15316
  },
15002
15317
  "immutable": true,
15003
15318
  "locationInModule": {
15004
- "filename": "src/cdk8s/cdk8s-app-ts.ts",
15005
- "line": 45
15319
+ "filename": "src/cdk8s/cdk8s-deps.ts",
15320
+ "line": 124
15006
15321
  },
15007
- "name": "cdk8sCliVersion",
15322
+ "name": "constructs",
15323
+ "type": {
15324
+ "primitive": "string"
15325
+ }
15326
+ },
15327
+ {
15328
+ "abstract": true,
15329
+ "docs": {
15330
+ "remarks": "Used only on Node projects",
15331
+ "stability": "experimental",
15332
+ "summary": "Fully qualified name of the client package."
15333
+ },
15334
+ "immutable": true,
15335
+ "locationInModule": {
15336
+ "filename": "src/cdk8s/cdk8s-deps.ts",
15337
+ "line": 120
15338
+ },
15339
+ "name": "cdk8sClient",
15008
15340
  "optional": true,
15009
15341
  "type": {
15010
15342
  "primitive": "string"
15011
15343
  }
15344
+ }
15345
+ ],
15346
+ "symbolId": "src/cdk8s/cdk8s-deps:Cdk8sPackageNames"
15347
+ },
15348
+ "projen.cdk8s.Cdk8sPythonApp": {
15349
+ "assembly": "projen",
15350
+ "base": "projen.python.PythonProject",
15351
+ "docs": {
15352
+ "custom": {
15353
+ "pjid": "cdk8s-app-py"
15354
+ },
15355
+ "stability": "experimental",
15356
+ "summary": "CDK8s app in Python."
15357
+ },
15358
+ "fqn": "projen.cdk8s.Cdk8sPythonApp",
15359
+ "initializer": {
15360
+ "docs": {
15361
+ "stability": "experimental"
15362
+ },
15363
+ "locationInModule": {
15364
+ "filename": "src/cdk8s/cdk8s-app-py.ts",
15365
+ "line": 51
15366
+ },
15367
+ "parameters": [
15368
+ {
15369
+ "name": "options",
15370
+ "type": {
15371
+ "fqn": "projen.cdk8s.Cdk8sPythonOptions"
15372
+ }
15373
+ }
15374
+ ]
15375
+ },
15376
+ "kind": "class",
15377
+ "locationInModule": {
15378
+ "filename": "src/cdk8s/cdk8s-app-py.ts",
15379
+ "line": 43
15380
+ },
15381
+ "name": "Cdk8sPythonApp",
15382
+ "namespace": "cdk8s",
15383
+ "properties": [
15384
+ {
15385
+ "docs": {
15386
+ "stability": "experimental",
15387
+ "summary": "The CDK8s app entrypoint."
15388
+ },
15389
+ "immutable": true,
15390
+ "locationInModule": {
15391
+ "filename": "src/cdk8s/cdk8s-app-py.ts",
15392
+ "line": 47
15393
+ },
15394
+ "name": "appEntrypoint",
15395
+ "type": {
15396
+ "primitive": "string"
15397
+ }
15012
15398
  },
15399
+ {
15400
+ "docs": {
15401
+ "stability": "experimental"
15402
+ },
15403
+ "immutable": true,
15404
+ "locationInModule": {
15405
+ "filename": "src/cdk8s/cdk8s-app-py.ts",
15406
+ "line": 49
15407
+ },
15408
+ "name": "cdk8sDeps",
15409
+ "type": {
15410
+ "fqn": "projen.cdk8s.Cdk8sDeps"
15411
+ }
15412
+ }
15413
+ ],
15414
+ "symbolId": "src/cdk8s/cdk8s-app-py:Cdk8sPythonApp"
15415
+ },
15416
+ "projen.cdk8s.Cdk8sPythonOptions": {
15417
+ "assembly": "projen",
15418
+ "datatype": true,
15419
+ "docs": {
15420
+ "stability": "experimental",
15421
+ "summary": "Options for `Cdk8sPythonApp`."
15422
+ },
15423
+ "fqn": "projen.cdk8s.Cdk8sPythonOptions",
15424
+ "interfaces": [
15425
+ "projen.python.PythonProjectOptions",
15426
+ "projen.cdk8s.Cdk8sDepsCommonOptions"
15427
+ ],
15428
+ "kind": "interface",
15429
+ "locationInModule": {
15430
+ "filename": "src/cdk8s/cdk8s-app-py.ts",
15431
+ "line": 12
15432
+ },
15433
+ "name": "Cdk8sPythonOptions",
15434
+ "namespace": "cdk8s",
15435
+ "properties": [
15013
15436
  {
15014
15437
  "abstract": true,
15015
15438
  "docs": {
15016
- "default": "false",
15017
- "remarks": "You can use this to prevent yarn to mix versions for your CDK8s package and to prevent auto-updates.\nIf you use experimental features this will let you define the moment you include breaking changes.",
15439
+ "default": "\"app.py\"",
15018
15440
  "stability": "experimental",
15019
- "summary": "Use pinned version instead of caret version for CDK8s-cli."
15441
+ "summary": "The CDK8s app's entrypoint."
15020
15442
  },
15021
15443
  "immutable": true,
15022
15444
  "locationInModule": {
15023
- "filename": "src/cdk8s/cdk8s-app-ts.ts",
15024
- "line": 65
15445
+ "filename": "src/cdk8s/cdk8s-app-py.ts",
15446
+ "line": 34
15025
15447
  },
15026
- "name": "cdk8sCliVersionPinning",
15448
+ "name": "appEntrypoint",
15027
15449
  "optional": true,
15028
15450
  "type": {
15029
- "primitive": "boolean"
15451
+ "primitive": "string"
15030
15452
  }
15031
15453
  },
15032
15454
  {
@@ -15038,8 +15460,8 @@
15038
15460
  },
15039
15461
  "immutable": true,
15040
15462
  "locationInModule": {
15041
- "filename": "src/cdk8s/cdk8s-app-ts.ts",
15042
- "line": 29
15463
+ "filename": "src/cdk8s/cdk8s-app-py.ts",
15464
+ "line": 27
15043
15465
  },
15044
15466
  "name": "cdk8sImports",
15045
15467
  "optional": true,
@@ -15055,54 +15477,124 @@
15055
15477
  {
15056
15478
  "abstract": true,
15057
15479
  "docs": {
15058
- "default": "false",
15059
- "remarks": "You can use this to prevent yarn to mix versions for your CDK8s package and to prevent auto-updates.\nIf you use experimental features this will let you define the moment you include breaking changes.",
15480
+ "default": "- Use the cdk8s default",
15060
15481
  "stability": "experimental",
15061
- "summary": "Use pinned version instead of caret version for cdk8s-plus-17."
15482
+ "summary": "Import a specific Kubernetes spec version."
15062
15483
  },
15063
15484
  "immutable": true,
15064
15485
  "locationInModule": {
15065
- "filename": "src/cdk8s/cdk8s-app-ts.ts",
15066
- "line": 75
15486
+ "filename": "src/cdk8s/cdk8s-app-py.ts",
15487
+ "line": 20
15067
15488
  },
15068
- "name": "cdk8sPlusVersionPinning",
15489
+ "name": "k8sSpecVersion",
15069
15490
  "optional": true,
15070
15491
  "type": {
15071
- "primitive": "boolean"
15492
+ "primitive": "string"
15072
15493
  }
15494
+ }
15495
+ ],
15496
+ "symbolId": "src/cdk8s/cdk8s-app-py:Cdk8sPythonOptions"
15497
+ },
15498
+ "projen.cdk8s.Cdk8sTypeScriptApp": {
15499
+ "assembly": "projen",
15500
+ "base": "projen.typescript.TypeScriptAppProject",
15501
+ "docs": {
15502
+ "custom": {
15503
+ "pjid": "cdk8s-app-ts"
15073
15504
  },
15505
+ "stability": "experimental",
15506
+ "summary": "CDK8s app in TypeScript."
15507
+ },
15508
+ "fqn": "projen.cdk8s.Cdk8sTypeScriptApp",
15509
+ "initializer": {
15510
+ "docs": {
15511
+ "stability": "experimental"
15512
+ },
15513
+ "locationInModule": {
15514
+ "filename": "src/cdk8s/cdk8s-app-ts.ts",
15515
+ "line": 61
15516
+ },
15517
+ "parameters": [
15518
+ {
15519
+ "name": "options",
15520
+ "type": {
15521
+ "fqn": "projen.cdk8s.Cdk8sTypeScriptAppOptions"
15522
+ }
15523
+ }
15524
+ ]
15525
+ },
15526
+ "kind": "class",
15527
+ "locationInModule": {
15528
+ "filename": "src/cdk8s/cdk8s-app-ts.ts",
15529
+ "line": 53
15530
+ },
15531
+ "name": "Cdk8sTypeScriptApp",
15532
+ "namespace": "cdk8s",
15533
+ "properties": [
15074
15534
  {
15075
- "abstract": true,
15076
15535
  "docs": {
15077
- "default": "false",
15078
- "remarks": "You can use this to prevent yarn to mix versions for your CDK8s package and to prevent auto-updates.\nIf you use experimental features this will let you define the moment you include breaking changes.",
15079
15536
  "stability": "experimental",
15080
- "summary": "Use pinned version instead of caret version for CDK8s."
15537
+ "summary": "The CDK8s app entrypoint."
15081
15538
  },
15082
15539
  "immutable": true,
15083
15540
  "locationInModule": {
15084
15541
  "filename": "src/cdk8s/cdk8s-app-ts.ts",
15085
- "line": 55
15542
+ "line": 57
15086
15543
  },
15087
- "name": "cdk8sVersionPinning",
15088
- "optional": true,
15544
+ "name": "appEntrypoint",
15089
15545
  "type": {
15090
- "primitive": "boolean"
15546
+ "primitive": "string"
15091
15547
  }
15092
15548
  },
15549
+ {
15550
+ "docs": {
15551
+ "stability": "experimental"
15552
+ },
15553
+ "immutable": true,
15554
+ "locationInModule": {
15555
+ "filename": "src/cdk8s/cdk8s-app-ts.ts",
15556
+ "line": 59
15557
+ },
15558
+ "name": "cdk8sDeps",
15559
+ "type": {
15560
+ "fqn": "projen.cdk8s.Cdk8sDeps"
15561
+ }
15562
+ }
15563
+ ],
15564
+ "symbolId": "src/cdk8s/cdk8s-app-ts:Cdk8sTypeScriptApp"
15565
+ },
15566
+ "projen.cdk8s.Cdk8sTypeScriptAppOptions": {
15567
+ "assembly": "projen",
15568
+ "datatype": true,
15569
+ "docs": {
15570
+ "stability": "experimental"
15571
+ },
15572
+ "fqn": "projen.cdk8s.Cdk8sTypeScriptAppOptions",
15573
+ "interfaces": [
15574
+ "projen.typescript.TypeScriptProjectOptions",
15575
+ "projen.cdk8s.Cdk8sDepsCommonOptions"
15576
+ ],
15577
+ "kind": "interface",
15578
+ "locationInModule": {
15579
+ "filename": "src/cdk8s/cdk8s-app-ts.ts",
15580
+ "line": 11
15581
+ },
15582
+ "name": "Cdk8sTypeScriptAppOptions",
15583
+ "namespace": "cdk8s",
15584
+ "properties": [
15093
15585
  {
15094
15586
  "abstract": true,
15095
15587
  "docs": {
15096
- "default": "\"3.2.34\"",
15588
+ "default": "\"main.ts\"",
15097
15589
  "stability": "experimental",
15098
- "summary": "constructs verion."
15590
+ "summary": "The CDK8s app's entrypoint (relative to the source directory, which is \"src\" by default)."
15099
15591
  },
15100
15592
  "immutable": true,
15101
15593
  "locationInModule": {
15102
15594
  "filename": "src/cdk8s/cdk8s-app-ts.ts",
15103
- "line": 37
15595
+ "line": 34
15104
15596
  },
15105
- "name": "constructsVersion",
15597
+ "name": "appEntrypoint",
15106
15598
  "optional": true,
15107
15599
  "type": {
15108
15600
  "primitive": "string"
@@ -15111,20 +15603,24 @@
15111
15603
  {
15112
15604
  "abstract": true,
15113
15605
  "docs": {
15114
- "default": "false",
15115
- "remarks": "You can use this to prevent yarn to mix versions for your consructs package and to prevent auto-updates.\nIf you use experimental features this will let you define the moment you include breaking changes.",
15606
+ "default": "- no additional specs imported",
15116
15607
  "stability": "experimental",
15117
- "summary": "Use pinned version instead of caret version for constructs."
15608
+ "summary": "Import additional specs."
15118
15609
  },
15119
15610
  "immutable": true,
15120
15611
  "locationInModule": {
15121
15612
  "filename": "src/cdk8s/cdk8s-app-ts.ts",
15122
- "line": 85
15613
+ "line": 26
15123
15614
  },
15124
- "name": "constructsVersionPinning",
15615
+ "name": "cdk8sImports",
15125
15616
  "optional": true,
15126
15617
  "type": {
15127
- "primitive": "boolean"
15618
+ "collection": {
15619
+ "elementtype": {
15620
+ "primitive": "string"
15621
+ },
15622
+ "kind": "array"
15623
+ }
15128
15624
  }
15129
15625
  },
15130
15626
  {
@@ -15137,7 +15633,7 @@
15137
15633
  "immutable": true,
15138
15634
  "locationInModule": {
15139
15635
  "filename": "src/cdk8s/cdk8s-app-ts.ts",
15140
- "line": 102
15636
+ "line": 43
15141
15637
  },
15142
15638
  "name": "integrationTestAutoDiscover",
15143
15639
  "optional": true,
@@ -15155,7 +15651,7 @@
15155
15651
  "immutable": true,
15156
15652
  "locationInModule": {
15157
15653
  "filename": "src/cdk8s/cdk8s-app-ts.ts",
15158
- "line": 22
15654
+ "line": 19
15159
15655
  },
15160
15656
  "name": "k8sSpecVersion",
15161
15657
  "optional": true,
@@ -40688,7 +41184,7 @@
40688
41184
  {
40689
41185
  "name": "project",
40690
41186
  "type": {
40691
- "fqn": "projen.python.PythonProject"
41187
+ "fqn": "projen.Project"
40692
41188
  }
40693
41189
  },
40694
41190
  {
@@ -40827,7 +41323,7 @@
40827
41323
  {
40828
41324
  "name": "project",
40829
41325
  "type": {
40830
- "fqn": "projen.python.PythonProject"
41326
+ "fqn": "projen.Project"
40831
41327
  }
40832
41328
  },
40833
41329
  {
@@ -40994,7 +41490,7 @@
40994
41490
  {
40995
41491
  "name": "project",
40996
41492
  "type": {
40997
- "fqn": "projen.python.PythonProject"
41493
+ "fqn": "projen.Project"
40998
41494
  }
40999
41495
  },
41000
41496
  {
@@ -41638,13 +42134,13 @@
41638
42134
  },
41639
42135
  "locationInModule": {
41640
42136
  "filename": "src/python/pytest.ts",
41641
- "line": 28
42137
+ "line": 29
41642
42138
  },
41643
42139
  "parameters": [
41644
42140
  {
41645
42141
  "name": "project",
41646
42142
  "type": {
41647
- "fqn": "projen.python.PythonProject"
42143
+ "fqn": "projen.Project"
41648
42144
  }
41649
42145
  },
41650
42146
  {
@@ -41659,7 +42155,7 @@
41659
42155
  "kind": "class",
41660
42156
  "locationInModule": {
41661
42157
  "filename": "src/python/pytest.ts",
41662
- "line": 25
42158
+ "line": 26
41663
42159
  },
41664
42160
  "name": "Pytest",
41665
42161
  "namespace": "python",
@@ -41671,7 +42167,7 @@
41671
42167
  "immutable": true,
41672
42168
  "locationInModule": {
41673
42169
  "filename": "src/python/pytest.ts",
41674
- "line": 26
42170
+ "line": 27
41675
42171
  },
41676
42172
  "name": "testdir",
41677
42173
  "type": {
@@ -41691,7 +42187,7 @@
41691
42187
  "kind": "interface",
41692
42188
  "locationInModule": {
41693
42189
  "filename": "src/python/pytest.ts",
41694
- "line": 4
42190
+ "line": 5
41695
42191
  },
41696
42192
  "name": "PytestOptions",
41697
42193
  "namespace": "python",
@@ -41705,7 +42201,7 @@
41705
42201
  "immutable": true,
41706
42202
  "locationInModule": {
41707
42203
  "filename": "src/python/pytest.ts",
41708
- "line": 22
42204
+ "line": 23
41709
42205
  },
41710
42206
  "name": "maxFailures",
41711
42207
  "optional": true,
@@ -41723,7 +42219,7 @@
41723
42219
  "immutable": true,
41724
42220
  "locationInModule": {
41725
42221
  "filename": "src/python/pytest.ts",
41726
- "line": 17
42222
+ "line": 18
41727
42223
  },
41728
42224
  "name": "testdir",
41729
42225
  "optional": true,
@@ -41741,7 +42237,7 @@
41741
42237
  "immutable": true,
41742
42238
  "locationInModule": {
41743
42239
  "filename": "src/python/pytest.ts",
41744
- "line": 10
42240
+ "line": 11
41745
42241
  },
41746
42242
  "name": "version",
41747
42243
  "optional": true,
@@ -41756,7 +42252,8 @@
41756
42252
  "assembly": "projen",
41757
42253
  "base": "projen.Component",
41758
42254
  "docs": {
41759
- "stability": "experimental"
42255
+ "stability": "experimental",
42256
+ "summary": "Python test code sample."
41760
42257
  },
41761
42258
  "fqn": "projen.python.PytestSample",
41762
42259
  "initializer": {
@@ -41765,19 +42262,19 @@
41765
42262
  },
41766
42263
  "locationInModule": {
41767
42264
  "filename": "src/python/pytest-sample.ts",
41768
- "line": 5
42265
+ "line": 23
41769
42266
  },
41770
42267
  "parameters": [
41771
42268
  {
41772
42269
  "name": "project",
41773
42270
  "type": {
41774
- "fqn": "projen.python.PythonProject"
42271
+ "fqn": "projen.Project"
41775
42272
  }
41776
42273
  },
41777
42274
  {
41778
- "name": "testdir",
42275
+ "name": "options",
41779
42276
  "type": {
41780
- "primitive": "string"
42277
+ "fqn": "projen.python.PytestSampleOptions"
41781
42278
  }
41782
42279
  }
41783
42280
  ]
@@ -41785,12 +42282,63 @@
41785
42282
  "kind": "class",
41786
42283
  "locationInModule": {
41787
42284
  "filename": "src/python/pytest-sample.ts",
41788
- "line": 4
42285
+ "line": 22
41789
42286
  },
41790
42287
  "name": "PytestSample",
41791
42288
  "namespace": "python",
41792
42289
  "symbolId": "src/python/pytest-sample:PytestSample"
41793
42290
  },
42291
+ "projen.python.PytestSampleOptions": {
42292
+ "assembly": "projen",
42293
+ "datatype": true,
42294
+ "docs": {
42295
+ "stability": "experimental",
42296
+ "summary": "Options for python test code sample."
42297
+ },
42298
+ "fqn": "projen.python.PytestSampleOptions",
42299
+ "kind": "interface",
42300
+ "locationInModule": {
42301
+ "filename": "src/python/pytest-sample.ts",
42302
+ "line": 7
42303
+ },
42304
+ "name": "PytestSampleOptions",
42305
+ "namespace": "python",
42306
+ "properties": [
42307
+ {
42308
+ "abstract": true,
42309
+ "docs": {
42310
+ "stability": "experimental",
42311
+ "summary": "Name of the python package as used in imports and filenames."
42312
+ },
42313
+ "immutable": true,
42314
+ "locationInModule": {
42315
+ "filename": "src/python/pytest-sample.ts",
42316
+ "line": 11
42317
+ },
42318
+ "name": "moduleName",
42319
+ "type": {
42320
+ "primitive": "string"
42321
+ }
42322
+ },
42323
+ {
42324
+ "abstract": true,
42325
+ "docs": {
42326
+ "stability": "experimental",
42327
+ "summary": "Test directory."
42328
+ },
42329
+ "immutable": true,
42330
+ "locationInModule": {
42331
+ "filename": "src/python/pytest-sample.ts",
42332
+ "line": 16
42333
+ },
42334
+ "name": "testdir",
42335
+ "type": {
42336
+ "primitive": "string"
42337
+ }
42338
+ }
42339
+ ],
42340
+ "symbolId": "src/python/pytest-sample:PytestSampleOptions"
42341
+ },
41794
42342
  "projen.python.PythonPackagingOptions": {
41795
42343
  "assembly": "projen",
41796
42344
  "datatype": true,
@@ -41816,7 +42364,7 @@
41816
42364
  "immutable": true,
41817
42365
  "locationInModule": {
41818
42366
  "filename": "src/python/python-packaging.ts",
41819
- "line": 24
42367
+ "line": 29
41820
42368
  },
41821
42369
  "name": "authorEmail",
41822
42370
  "type": {
@@ -41853,7 +42401,7 @@
41853
42401
  "immutable": true,
41854
42402
  "locationInModule": {
41855
42403
  "filename": "src/python/python-packaging.ts",
41856
- "line": 32
42404
+ "line": 37
41857
42405
  },
41858
42406
  "name": "version",
41859
42407
  "type": {
@@ -41870,7 +42418,7 @@
41870
42418
  "immutable": true,
41871
42419
  "locationInModule": {
41872
42420
  "filename": "src/python/python-packaging.ts",
41873
- "line": 55
42421
+ "line": 60
41874
42422
  },
41875
42423
  "name": "classifiers",
41876
42424
  "optional": true,
@@ -41895,7 +42443,7 @@
41895
42443
  "immutable": true,
41896
42444
  "locationInModule": {
41897
42445
  "filename": "src/python/python-packaging.ts",
41898
- "line": 38
42446
+ "line": 43
41899
42447
  },
41900
42448
  "name": "description",
41901
42449
  "optional": true,
@@ -41912,7 +42460,7 @@
41912
42460
  "immutable": true,
41913
42461
  "locationInModule": {
41914
42462
  "filename": "src/python/python-packaging.ts",
41915
- "line": 48
42463
+ "line": 53
41916
42464
  },
41917
42465
  "name": "homepage",
41918
42466
  "optional": true,
@@ -41929,7 +42477,7 @@
41929
42477
  "immutable": true,
41930
42478
  "locationInModule": {
41931
42479
  "filename": "src/python/python-packaging.ts",
41932
- "line": 43
42480
+ "line": 48
41933
42481
  },
41934
42482
  "name": "license",
41935
42483
  "optional": true,
@@ -41937,6 +42485,23 @@
41937
42485
  "primitive": "string"
41938
42486
  }
41939
42487
  },
42488
+ {
42489
+ "abstract": true,
42490
+ "docs": {
42491
+ "stability": "experimental",
42492
+ "summary": "Package name."
42493
+ },
42494
+ "immutable": true,
42495
+ "locationInModule": {
42496
+ "filename": "src/python/python-packaging.ts",
42497
+ "line": 22
42498
+ },
42499
+ "name": "packageName",
42500
+ "optional": true,
42501
+ "type": {
42502
+ "primitive": "string"
42503
+ }
42504
+ },
41940
42505
  {
41941
42506
  "abstract": true,
41942
42507
  "docs": {
@@ -41946,7 +42511,7 @@
41946
42511
  "immutable": true,
41947
42512
  "locationInModule": {
41948
42513
  "filename": "src/python/python-packaging.ts",
41949
- "line": 65
42514
+ "line": 70
41950
42515
  },
41951
42516
  "name": "poetryOptions",
41952
42517
  "optional": true,
@@ -41963,7 +42528,7 @@
41963
42528
  "immutable": true,
41964
42529
  "locationInModule": {
41965
42530
  "filename": "src/python/python-packaging.ts",
41966
- "line": 60
42531
+ "line": 65
41967
42532
  },
41968
42533
  "name": "setupConfig",
41969
42534
  "optional": true,
@@ -42020,7 +42585,7 @@
42020
42585
  },
42021
42586
  "locationInModule": {
42022
42587
  "filename": "src/python/python-project.ts",
42023
- "line": 483
42588
+ "line": 488
42024
42589
  },
42025
42590
  "name": "addDependency",
42026
42591
  "parameters": [
@@ -42042,7 +42607,7 @@
42042
42607
  },
42043
42608
  "locationInModule": {
42044
42609
  "filename": "src/python/python-project.ts",
42045
- "line": 492
42610
+ "line": 497
42046
42611
  },
42047
42612
  "name": "addDevDependency",
42048
42613
  "parameters": [
@@ -42065,7 +42630,7 @@
42065
42630
  },
42066
42631
  "locationInModule": {
42067
42632
  "filename": "src/python/python-project.ts",
42068
- "line": 496
42633
+ "line": 501
42069
42634
  },
42070
42635
  "name": "postSynthesize",
42071
42636
  "overrides": "projen.Project"
@@ -42511,17 +43076,17 @@
42511
43076
  },
42512
43077
  "locationInModule": {
42513
43078
  "filename": "src/python/python-sample.ts",
42514
- "line": 14
43079
+ "line": 19
42515
43080
  },
42516
43081
  "parameters": [
42517
43082
  {
42518
43083
  "name": "project",
42519
43084
  "type": {
42520
- "fqn": "projen.python.PythonProject"
43085
+ "fqn": "projen.Project"
42521
43086
  }
42522
43087
  },
42523
43088
  {
42524
- "name": "_options",
43089
+ "name": "options",
42525
43090
  "type": {
42526
43091
  "fqn": "projen.python.PythonSampleOptions"
42527
43092
  }
@@ -42531,7 +43096,7 @@
42531
43096
  "kind": "class",
42532
43097
  "locationInModule": {
42533
43098
  "filename": "src/python/python-sample.ts",
42534
- "line": 13
43099
+ "line": 18
42535
43100
  },
42536
43101
  "name": "PythonSample",
42537
43102
  "namespace": "python",
@@ -42552,6 +43117,24 @@
42552
43117
  },
42553
43118
  "name": "PythonSampleOptions",
42554
43119
  "namespace": "python",
43120
+ "properties": [
43121
+ {
43122
+ "abstract": true,
43123
+ "docs": {
43124
+ "stability": "experimental",
43125
+ "summary": "Sample code directory."
43126
+ },
43127
+ "immutable": true,
43128
+ "locationInModule": {
43129
+ "filename": "src/python/python-sample.ts",
43130
+ "line": 12
43131
+ },
43132
+ "name": "dir",
43133
+ "type": {
43134
+ "primitive": "string"
43135
+ }
43136
+ }
43137
+ ],
42555
43138
  "symbolId": "src/python/python-sample:PythonSampleOptions"
42556
43139
  },
42557
43140
  "projen.python.RequirementsFile": {
@@ -42710,7 +43293,7 @@
42710
43293
  {
42711
43294
  "name": "project",
42712
43295
  "type": {
42713
- "fqn": "projen.python.PythonProject"
43296
+ "fqn": "projen.Project"
42714
43297
  }
42715
43298
  },
42716
43299
  {
@@ -42957,13 +43540,13 @@
42957
43540
  },
42958
43541
  "locationInModule": {
42959
43542
  "filename": "src/python/setuptools.ts",
42960
- "line": 18
43543
+ "line": 19
42961
43544
  },
42962
43545
  "parameters": [
42963
43546
  {
42964
43547
  "name": "project",
42965
43548
  "type": {
42966
- "fqn": "projen.python.PythonProject"
43549
+ "fqn": "projen.Project"
42967
43550
  }
42968
43551
  },
42969
43552
  {
@@ -42980,7 +43563,7 @@
42980
43563
  "kind": "class",
42981
43564
  "locationInModule": {
42982
43565
  "filename": "src/python/setuptools.ts",
42983
- "line": 10
43566
+ "line": 11
42984
43567
  },
42985
43568
  "name": "Setuptools",
42986
43569
  "namespace": "python",
@@ -42993,7 +43576,7 @@
42993
43576
  "immutable": true,
42994
43577
  "locationInModule": {
42995
43578
  "filename": "src/python/setuptools.ts",
42996
- "line": 11
43579
+ "line": 12
42997
43580
  },
42998
43581
  "name": "publishTask",
42999
43582
  "overrides": "projen.python.IPythonPackaging",
@@ -43009,7 +43592,7 @@
43009
43592
  "immutable": true,
43010
43593
  "locationInModule": {
43011
43594
  "filename": "src/python/setuptools.ts",
43012
- "line": 16
43595
+ "line": 17
43013
43596
  },
43014
43597
  "name": "publishTestTask",
43015
43598
  "type": {
@@ -43039,7 +43622,7 @@
43039
43622
  {
43040
43623
  "name": "project",
43041
43624
  "type": {
43042
- "fqn": "projen.python.PythonProject"
43625
+ "fqn": "projen.Project"
43043
43626
  }
43044
43627
  },
43045
43628
  {
@@ -48286,6 +48869,6 @@
48286
48869
  "symbolId": "src/web/tailwind:TailwindConfigOptions"
48287
48870
  }
48288
48871
  },
48289
- "version": "0.59.8",
48290
- "fingerprint": "Vbotb5P0pKIjhC/kcbiZ+gGeQScGR2AXj+GgHkdadmg="
48872
+ "version": "0.60.2",
48873
+ "fingerprint": "3+Me9vfcEt8K8+y/9LbZ5QgiUS7G0wIMpSnLgqQFi1U="
48291
48874
  }