projen 0.38.4 → 0.39.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.jsii +113 -41
- package/API.md +39 -11
- package/README.md +12 -8
- package/lib/awscdk/auto-discover.js +1 -1
- package/lib/awscdk/awscdk-app-ts.js +1 -1
- package/lib/awscdk/awscdk-construct.d.ts +21 -13
- package/lib/awscdk/awscdk-construct.js +64 -34
- package/lib/awscdk/cdk-config.js +1 -1
- package/lib/awscdk/cdk-tasks.js +1 -1
- package/lib/awscdk/integration-test.js +1 -1
- package/lib/awscdk/java-app.js +1 -1
- package/lib/awscdk/lambda-function.js +2 -2
- package/lib/cdk/construct-lib.js +1 -1
- package/lib/cdk/jsii-docgen.js +1 -1
- package/lib/cdk/jsii-project.js +1 -1
- package/lib/cdk8s/cdk8s-app-ts.js +1 -1
- package/lib/cdk8s/cdk8s-construct.js +1 -1
- package/lib/cdktf/cdktf-construct.js +1 -1
- package/lib/component.js +1 -1
- package/lib/dependencies.js +1 -1
- package/lib/dev-env.js +1 -1
- package/lib/docker-compose.js +2 -2
- package/lib/file.js +1 -1
- package/lib/gitattributes.js +1 -1
- package/lib/github/auto-approve.js +1 -1
- package/lib/github/auto-merge.js +1 -1
- package/lib/github/dependabot.js +1 -1
- package/lib/github/github-project.js +1 -1
- package/lib/github/github.js +1 -1
- package/lib/github/mergify.js +1 -1
- package/lib/github/pr-template.js +1 -1
- package/lib/github/pull-request-lint.js +1 -1
- package/lib/github/stale.js +1 -1
- package/lib/github/task-workflow.js +1 -1
- package/lib/github/workflows.js +1 -1
- package/lib/gitpod.js +1 -1
- package/lib/ignore-file.js +1 -1
- package/lib/index.d.ts +1 -0
- package/lib/index.js +2 -1
- package/lib/ini.js +1 -1
- package/lib/java/java-project.js +1 -1
- package/lib/java/junit.js +1 -1
- package/lib/java/maven-compile.js +1 -1
- package/lib/java/maven-packaging.js +1 -1
- package/lib/java/maven-sample.js +1 -1
- package/lib/java/pom.js +1 -1
- package/lib/java/projenrc.js +1 -1
- package/lib/javascript/bundler.js +1 -1
- package/lib/javascript/eslint.js +1 -1
- package/lib/javascript/jest.js +1 -1
- package/lib/javascript/node-package.js +1 -1
- package/lib/javascript/node-project.js +1 -1
- package/lib/javascript/npm-config.js +1 -1
- package/lib/javascript/projenrc.js +1 -1
- package/lib/javascript/typescript-config.js +1 -1
- package/lib/javascript/upgrade-dependencies.js +2 -2
- package/lib/json.js +1 -1
- package/lib/license.js +1 -1
- package/lib/logger.js +1 -1
- package/lib/makefile.js +1 -1
- package/lib/object-file.js +1 -1
- package/lib/project-build.js +1 -1
- package/lib/project.js +1 -1
- package/lib/projects.js +1 -1
- package/lib/projenrc-json.js +1 -1
- package/lib/python/pip.js +1 -1
- package/lib/python/poetry.js +2 -2
- package/lib/python/projenrc.js +1 -1
- package/lib/python/pytest.js +1 -1
- package/lib/python/python-project.js +1 -1
- package/lib/python/python-sample.js +1 -1
- package/lib/python/requirements-file.js +1 -1
- package/lib/python/setuppy.js +1 -1
- package/lib/python/setuptools.js +1 -1
- package/lib/python/venv.js +1 -1
- package/lib/readme.js +1 -1
- package/lib/release/publisher.js +1 -1
- package/lib/release/release-trigger.js +1 -1
- package/lib/release/release.js +1 -1
- package/lib/sample-file.js +2 -2
- package/lib/semver.js +1 -1
- package/lib/source-code.js +1 -1
- package/lib/task-runtime.js +1 -1
- package/lib/task.js +1 -1
- package/lib/tasks.js +1 -1
- package/lib/testing.d.ts +10 -6
- package/lib/testing.js +16 -8
- package/lib/textfile.js +1 -1
- package/lib/toml.js +1 -1
- package/lib/typescript/projenrc.js +1 -1
- package/lib/typescript/typescript-typedoc.js +1 -1
- package/lib/typescript/typescript.js +3 -3
- package/lib/util/synth.d.ts +2 -21
- package/lib/util/synth.js +2 -128
- package/lib/version.js +1 -1
- package/lib/vscode/devcontainer.js +1 -1
- package/lib/vscode/launch-config.js +1 -1
- package/lib/vscode/vscode.js +1 -1
- package/lib/web/next.js +3 -3
- package/lib/web/postcss.js +1 -1
- package/lib/web/react.js +4 -4
- package/lib/web/tailwind.js +1 -1
- package/lib/xmlfile.js +1 -1
- package/lib/yaml.js +1 -1
- package/package.json +3 -3
package/.jsii
CHANGED
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
},
|
|
48
48
|
"name": "projen",
|
|
49
49
|
"readme": {
|
|
50
|
-
"markdown": "[](https://opensource.org/licenses/Apache-2.0)\n<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->\n[](#contributors-)\n<!-- ALL-CONTRIBUTORS-BADGE:END -->\n[](https://gitpod.io/#https://github.com/projen/projen)\n\n\n\n# projen\n\n\n\n\nDefine and maintain complex project configuration through code.\n\n> JOIN THE [#TemplatesAreEvil] MOVEMENT!\n\n[#TemplatesAreEvil]: https://twitter.com/search?q=%23TemplatesAreEvil\n\n*projen* synthesizes project configuration files such as `package.json`,\n`tsconfig.json`, `.gitignore`, GitHub Workflows, eslint, jest, etc from a\nwell-typed definition written in JavaScript.\n\nCheck out [this talk](https://youtu.be/SOWMPzXtTCw) about projen.\n\nAs opposed to existing templating/scaffolding tools, *projen* is not a one-off\ngenerator. Synthesized files should never be manually edited (in fact, projen\nenforces that). To modify your project setup, users interact with rich\nstrongly-typed class and execute `projen` to update their project configuration\nfiles.\n\n## Getting Started\n\nTo create a new project, run the following command and follow the instructions:\n\n```console\n$ mkdir my-project\n$ cd my-project\n$ git init\n$ npx projen new PROJECT-TYPE\n🤖 Synthesizing project...\n...\n```\n\nCurrently supported project types (use `npx projen new` without a type for a\nlist):\n\n<!-- <macro exec=\"node ./scripts/readme-projects.js\"> -->\n* [awscdk-app-java](https://github.com/projen/projen/blob/main/API.md#projen-awscdk-awscdkjavaapp) - AWS CDK app in Java.\n* [awscdk-app-ts](https://github.com/projen/projen/blob/main/API.md#projen-awscdk-awscdktypescriptapp) - AWS CDK app in TypeScript.\n* [awscdk-construct](https://github.com/projen/projen/blob/main/API.md#projen-awscdk-awscdkconstructlibrary) - AWS CDK construct library project.\n* [cdk8s-app-ts](https://github.com/projen/projen/blob/main/API.md#projen-cdk8s-cdk8stypescriptapp) - CDK8s app in TypeScript.\n* [cdk8s-construct](https://github.com/projen/projen/blob/main/API.md#projen-cdk8s-constructlibrarycdk8s) - CDK8s construct library project.\n* [cdktf-construct](https://github.com/projen/projen/blob/main/API.md#projen-cdktf-constructlibrarycdktf) - CDKTF construct library project.\n* [java](https://github.com/projen/projen/blob/main/API.md#projen-java-javaproject) - Java project.\n* [jsii](https://github.com/projen/projen/blob/main/API.md#projen-cdk-jsiiproject) - Multi-language jsii library project.\n* [nextjs](https://github.com/projen/projen/blob/main/API.md#projen-web-nextjsproject) - Next.js project without TypeScript.\n* [nextjs-ts](https://github.com/projen/projen/blob/main/API.md#projen-web-nextjstypescriptproject) - Next.js project with TypeScript.\n* [node](https://github.com/projen/projen/blob/main/API.md#projen-javascript-nodeproject) - Node.js project.\n* [project](https://github.com/projen/projen/blob/main/API.md#projen-project) - Base project.\n* [python](https://github.com/projen/projen/blob/main/API.md#projen-python-pythonproject) - Python project.\n* [react](https://github.com/projen/projen/blob/main/API.md#projen-web-reactproject) - React project without TypeScript.\n* [react-ts](https://github.com/projen/projen/blob/main/API.md#projen-web-reacttypescriptproject) - React project with TypeScript.\n* [typescript](https://github.com/projen/projen/blob/main/API.md#projen-typescript-typescriptproject) - TypeScript project.\n* [typescript-app](https://github.com/projen/projen/blob/main/API.md#projen-typescript-typescriptappproject) - TypeScript app.\n<!-- </macro> -->\n\n> Use `npx projen new PROJECT-TYPE --help` to view a list of command line\n> switches that allows you to specify most project options during bootstrapping.\n> For example: `npx projen new jsii --author-name \"Jerry Berry\"`.\n\nThe `new` command will create a `.projenrc.js` file which looks like this for\n`jsii` projects:\n\n```js\nconst { JsiiProject } = require('projen');\n\nconst project = new JsiiProject({\n authorAddress: \"elad.benisrael@gmail.com\",\n authorName: \"Elad Ben-Israel\",\n name: \"foobar\",\n repository: \"https://github.com/eladn/foobar.git\",\n});\n\nproject.synth();\n```\n\nThis program instantiates the project type with minimal setup, and then calls\n`synth()` to synthesize the project files. By default, the `new` command will\nalso execute this program, which will result in a fully working project.\n\nOnce your project is created, you can configure your project by editing\n`.projenrc.js` and re-running `npx projen` to synthesize again.\n\n> The files generated by _projen_ are considered an \"implementation detail\" and\n> _projen_ protects them from being manually edited (most files are marked\n> read-only, and an \"anti tamper\" check is configured in the CI build workflow\n> to ensure that files are not updated during build).\n\nFor example, to setup PyPI publishing in `jsii` projects, you can use\n[`python option`](https://github.com/eladb/projen/blob/master/API.md#projen-jsiipythontarget):\n\n```js\nconst project = new JsiiProject({\n // ...\n python: {\n distName: \"mydist\",\n module: \"my_module\",\n }\n});\n```\n\nRun:\n\n```shell\nnpx projen\n```\n\nAnd you'll notice that your `package.json` file now contains a `python` section in\nit's `jsii` config and the GitHub `release.yml` workflow includes a PyPI\npublishing step.\n\nWe recommend to put this in your shell profile, so you can simply run `pj` every\ntime you update `.projenrc.js`:\n\n```bash\nalias pj='npx projen'\n```\n\nMost projects come with an assortment of **tasks** that handle various\ndevelopment activities, from compiling to publishing. Tasks can be and composed\ntogether, and can be run as local commands or turned into GitHub workflows. You\ncan list all tasks with `npx projen --help`:\n\n```shell\n$ npx projen --help\nprojen [command]\n\nCommands:\n projen new [PROJECT-TYPE-NAME] [OPTIONS] Creates a new projen project\n projen clobber hard resets to HEAD of origin and cleans the local repo\n projen compile Only compile\n projen test:compile compiles the test code\n projen test Run tests\n projen build Full release build (test+compile)\n projen upgrade-dependencies upgrade dependencies\n projen upgrade-projen upgrade projen\n...\n```\n\nThe `build` task is the same task that's executed in your CI builds. It\ntypically compiles, lints, tests and packages your module for distribution.\n\n### Shell Completions\nIf installed as a global package, `projen` includes rich shell tab-completion support. To enable this in your shell, run:\n```shell\n# Bash\nprojen completion >> ~/.bashrc\n\n# ZSH\nprojen completion >> ~/.zshrc\n```\n## Features\n\nSome examples for features built-in to project types:\n\n* Fully synthesize `package.json`\n* Standard npm scripts like `compile`, `build`, `test`, `package`\n* eslint\n* Jest\n* jsii: compile, package, api compatibility checks, API.md\n* Bump & release scripts with CHANGELOG generation based on conventional commits (manual releases are currently broken! [#726](https://github.com/projen/projen/issues/726))\n* Automated PR builds\n* Automated releases to npm, maven, NuGet and PyPI\n* Mergify configuration\n* LICENSE file generation\n* gitignore + npmignore management\n* Node \"engines\" support with coupling to CI build environment and @types/node\n* Anti-tamper: CI builds will fail if a synthesized file is modified manually\n\n## API Reference\n\nSee [API Reference](./API.md) for API details.\n\nIn addition, several projen components and project types are explained with examples in [/docs](./docs) (currently a work in progress!).\n\n## Ecosystem\n\n_projen_ takes a \"batteries included\" approach and aims to offer dozens of different project types out of\nthe box (we are just getting started). Think `projen new react`, `projen new angular`, `projen new java-maven`,\n`projen new awscdk-typescript`, `projen new cdk8s-python` (nothing in projen is tied to javascript or npm!)...\n\nAdding new project types is as simple as submitting a pull request to this repo and exporting a class that\nextends `projen.Project` (or one of it's derivatives). Projen automatically discovers project types so your\ntype will immediately be available in `projen new`.\n\n### Projects in external modules\n\n_projen_ is bundled with many project types out of the box, but it can also work\nwith project types and components defined in external jsii modules (the reason\nwe need jsii is because projen uses the jsii metadata to discover project types\n& options in projen new).\n\nSay we have a module in npm called `projen-vuejs` which includes a single project\ntype for vue.js:\n\n```bash\n$ npx projen new --from projen-vuejs\n```\n\nIf the referenced module includes multiple project types, the type is required.\nSwitches can also be used to specify initial values based on the project type\nAPIs. You can also use any package syntax supported by [yarn\nadd](https://classic.yarnpkg.com/en/docs/cli/add#toc-adding-dependencies) like\n`projen-vuejs@1.2.3`, `file:/path/to/local/folder`,\n`git@github.com/awesome/projen-vuejs#1.2.3`, etc.\n\n```bash\n$ npx projen new --from projen-vuejs@^2 vuejs-ts --description \"my awesome vue project\"\n```\n\nUnder the hood, `projen new` will install the `projen-vuejs` module from npm\n(version 2.0.0 and above), discover the project types in it and bootstrap the\n`vuejs-ts` project type. It will assign the value `\"my awesome vue project\"` to\nthe `description` field. If you examine your `.projenrc.js` file, you'll see\nthat `projen-vuejs` is defined as a dev dependency:\n\n```javascript\nconst { VueJsProject } = require('projen-vuejs');\n\nconst project = new VueJsProject({\n name: 'my-vuejs-sample',\n description: \"my awesome vue project\",\n // ...\n devDeps: [\n 'projen-vuejs'\n ]\n});\n\nproject.synth();\n```\n\n## Roadmap\n\nSee [Vision](./VISION.md).\n\n## FAQ\n\n### Do I have to write my configuration in JavaScript?\n\nNot at all! JavaScript is the default, but it's also possible to write it in\nJava, TypeScript, or even JSON. Python support is also planned. This is made\npossible by the [jsii](https://github.com/aws/jsii) library which allows us\nto write APIs once and generate libraries in several languages. You can choose\na different language by passing the `--projenrc-ts`, `--projenrc-java`, or\n`--projenrc-json` flags when running `projen new`.\n\nNote: using a `.projenrc.json` file to specify configuration only allows\naccessing a subset of the entire API - the options which are passed to the\nconstructor of each project type.\n\n## Contributions\n\nContributions of all kinds are welcome! Check out our [contributor's\nguide](./CONTRIBUTING.md) and our [code of conduct](./CODE_OF_CONDUCT.md).\n\nFor a quick start, check out a development environment:\n\n```bash\n$ git clone git@github.com:projen/projen\n$ cd projen\n$ yarn\n$ yarn watch # compile in the background\n```\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n <tr>\n <td align=\"center\"><a href=\"http://eladb.github.com/\"><img src=\"https://avatars3.githubusercontent.com/u/598796?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Elad Ben-Israel</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=eladb\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://rybicki.io/\"><img src=\"https://avatars2.githubusercontent.com/u/5008987?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Christopher Rybicki</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=Chriscbr\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"http://p6m7g8.github.io/\"><img src=\"https://avatars0.githubusercontent.com/u/34295?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Philip M. Gollucci</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=pgollucci\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/hoegertn\"><img src=\"https://avatars2.githubusercontent.com/u/1287829?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thorsten Hoeger</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=hoegertn\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/kcwinner\"><img src=\"https://avatars3.githubusercontent.com/u/2728868?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Kenneth Winner</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=kcwinner\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/JordanSinko\"><img src=\"https://avatars2.githubusercontent.com/u/10212966?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jordan Sinko</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=JordanSinko\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/misterjoshua\"><img src=\"https://avatars2.githubusercontent.com/u/644092?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Josh Kellendonk</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=misterjoshua\" title=\"Code\">💻</a></td>\n </tr>\n <tr>\n <td align=\"center\"><a href=\"https://github.com/andrestone\"><img src=\"https://avatars1.githubusercontent.com/u/7958086?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>andrestone</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=andrestone\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://pallares.io/\"><img src=\"https://avatars3.githubusercontent.com/u/1077520?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Cristian Pallarés</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=skyrpex\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/jogold\"><img src=\"https://avatars2.githubusercontent.com/u/12623249?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jonathan Goldwasser</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=jogold\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"http://www.matthewbonig.com/\"><img src=\"https://avatars2.githubusercontent.com/u/1559437?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Matthew Bonig</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=mbonig\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/pahud\"><img src=\"https://avatars3.githubusercontent.com/u/278432?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Pahud Hsieh</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=pahud\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/adamelmore\"><img src=\"https://avatars2.githubusercontent.com/u/2363879?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Adam Elmore</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=adamelmore\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/abelmokadem\"><img src=\"https://avatars0.githubusercontent.com/u/9717944?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Ash</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=abelmokadem\" title=\"Code\">💻</a></td>\n </tr>\n <tr>\n <td align=\"center\"><a href=\"https://github.com/jmourelos\"><img src=\"https://avatars3.githubusercontent.com/u/3878434?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jacob</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=jmourelos\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/bigkraig\"><img src=\"https://avatars1.githubusercontent.com/u/508403?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Kraig Amador</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=bigkraig\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/mmuller88\"><img src=\"https://avatars0.githubusercontent.com/u/18393842?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Martin Muller</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=mmuller88\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://tlakomy.com/\"><img src=\"https://avatars2.githubusercontent.com/u/16646517?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tomasz Łakomy</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=tlakomy\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/john-tipper\"><img src=\"https://avatars2.githubusercontent.com/u/9730398?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>john-tipper</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=john-tipper\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/henrysachs\"><img src=\"https://avatars0.githubusercontent.com/u/17173951?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Henry Sachs</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=henrysachs\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/eganjs\"><img src=\"https://avatars3.githubusercontent.com/u/6639482?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Joseph Egan</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=eganjs\" title=\"Code\">💻</a></td>\n </tr>\n <tr>\n <td align=\"center\"><a href=\"https://skorfmann.com/\"><img src=\"https://avatars1.githubusercontent.com/u/136789?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Sebastian Korfmann</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=skorfmann\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"http://www.callant.net/\"><img src=\"https://avatars1.githubusercontent.com/u/5915843?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Bart Callant</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=bartcallant\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/campionfellin\"><img src=\"https://avatars3.githubusercontent.com/u/11984923?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Campion Fellin</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=campionfellin\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/gradybarrett\"><img src=\"https://avatars1.githubusercontent.com/u/1140074?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Grady Barrett</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=gradybarrett\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/HassanMahmud\"><img src=\"https://avatars3.githubusercontent.com/u/58504381?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Hassan Mahmud</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=HassanMahmud\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://dk.linkedin.com/in/hassanmahmud93\"><img src=\"https://avatars1.githubusercontent.com/u/7426703?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Hassan Mahmud</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=hass123uk\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"http://joapy.com/\"><img src=\"https://avatars3.githubusercontent.com/u/325306?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jake Pearson</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=jakepearson\" title=\"Code\">💻</a></td>\n </tr>\n <tr>\n <td align=\"center\"><a href=\"https://github.com/JeremyJonas\"><img src=\"https://avatars1.githubusercontent.com/u/464119?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jeremy Jonas</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=JeremyJonas\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://dev.to/martzcodes\"><img src=\"https://avatars1.githubusercontent.com/u/978362?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Matt Martz</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=martzcodes\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/fongie\"><img src=\"https://avatars1.githubusercontent.com/u/19932622?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Max Körlinge</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=fongie\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://blog.neilkuan.dev/\"><img src=\"https://avatars2.githubusercontent.com/u/46012524?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Neil Kuan</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=guan840912\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://dynobase.dev/\"><img src=\"https://avatars3.githubusercontent.com/u/3391616?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rafal Wilinski</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=RafalWilinski\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://keybase.io/romainmuller\"><img src=\"https://avatars2.githubusercontent.com/u/411689?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Romain Marcadier</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=RomainMuller\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/thomasklinger1234\"><img src=\"https://avatars1.githubusercontent.com/u/39558817?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thomas Klinger</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=thomasklinger1234\" title=\"Code\">💻</a></td>\n </tr>\n <tr>\n <td align=\"center\"><a href=\"https://github.com/gwriss\"><img src=\"https://avatars2.githubusercontent.com/u/1842089?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tobias</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=gwriss\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/flyingImer\"><img src=\"https://avatars0.githubusercontent.com/u/1973868?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>flyingImer</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=flyingImer\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/Hunter-Thompson\"><img src=\"https://avatars.githubusercontent.com/u/20844961?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b> Aatman </b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=Hunter-Thompson\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/mmcculloh-dms\"><img src=\"https://avatars.githubusercontent.com/u/68597641?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Mark McCulloh</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=mmcculloh-dms\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/aisamu\"><img src=\"https://avatars.githubusercontent.com/u/431708?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Samuel Tschiedel</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=aisamu\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/iliapolo\"><img src=\"https://avatars.githubusercontent.com/u/1428812?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Eli Polonsky</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=iliapolo\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://unsubstantiated.blog/\"><img src=\"https://avatars.githubusercontent.com/u/1308885?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Alexander Steppke</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=Miradorn\" title=\"Code\">💻</a></td>\n </tr>\n <tr>\n <td align=\"center\"><a href=\"https://github.com/kanatti\"><img src=\"https://avatars.githubusercontent.com/u/8623654?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Balagopal Kanattil</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=kanatti\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"http://twitter.com/bracki\"><img src=\"https://avatars.githubusercontent.com/u/49786?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jan Brauer</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=bracki\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://polothy.github.io/\"><img src=\"https://avatars.githubusercontent.com/u/634657?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Mark Nielsen</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=polothy\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/MrArnoldPalmer\"><img src=\"https://avatars.githubusercontent.com/u/7221111?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Mitchell Valine</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=MrArnoldPalmer\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://blog.neilkuan.net/\"><img src=\"https://avatars.githubusercontent.com/u/46012524?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Neil Kuan</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=neilkuan\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://garbe.io/\"><img src=\"https://avatars.githubusercontent.com/u/721899?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Philipp Garbe</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=pgarbe\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://selfstructured.com/\"><img src=\"https://avatars.githubusercontent.com/u/361689?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Shawn MacIntyre</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=smacintyre\" title=\"Code\">💻</a></td>\n </tr>\n <tr>\n <td align=\"center\"><a href=\"https://github.com/tobias-bardino\"><img src=\"https://avatars.githubusercontent.com/u/1842089?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tobias</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=tobias-bardino\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/yglcode\"><img src=\"https://avatars.githubusercontent.com/u/11893614?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Yigong Liu</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=yglcode\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/eduardomourar\"><img src=\"https://avatars.githubusercontent.com/u/16357187?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Eduardo Rodrigues</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=eduardomourar\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/hassanazharkhan\"><img src=\"https://avatars.githubusercontent.com/u/57677979?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Hassan Azhar</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=hassanazharkhan\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://www.linkedin.com/in/julian-michel-812a223a/\"><img src=\"https://avatars.githubusercontent.com/u/15660169?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Julian Michel</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=jumic\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/lmarsden\"><img src=\"https://avatars.githubusercontent.com/u/51232932?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>lmarsden</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=lmarsden\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/adrianmace\"><img src=\"https://avatars.githubusercontent.com/u/5071859?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Adrian Mace</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=adrianmace\" title=\"Code\">💻</a></td>\n </tr>\n <tr>\n <td align=\"center\"><a href=\"https://github.com/mKeRix\"><img src=\"https://avatars.githubusercontent.com/u/770596?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Heiko Rothe</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=mKeRix\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/hyandell\"><img src=\"https://avatars.githubusercontent.com/u/477715?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Henri Yandell</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=hyandell\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/mwg-rea\"><img src=\"https://avatars.githubusercontent.com/u/82480228?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Matthew Gamble</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=mwg-rea\" title=\"Code\">💻</a></td>\n </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"
|
|
50
|
+
"markdown": "# projen\n\n\n\n[](https://opensource.org/licenses/Apache-2.0)\n[](https://gitpod.io/#https://github.com/projen/projen)\n\n\n\n<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->\n[](#contributors-)\n<!-- ALL-CONTRIBUTORS-BADGE:END -->\n\nDefine and maintain complex project configuration through code.\n\n> JOIN THE [#TemplatesAreEvil] MOVEMENT!\n\n[#TemplatesAreEvil]: https://twitter.com/search?q=%23TemplatesAreEvil\n\n*projen* synthesizes project configuration files such as `package.json`,\n`tsconfig.json`, `.gitignore`, GitHub Workflows, eslint, jest, etc from a\nwell-typed definition written in JavaScript.\n\nCheck out [this talk](https://youtu.be/SOWMPzXtTCw) about projen.\n\nAs opposed to existing templating/scaffolding tools, *projen* is not a one-off\ngenerator. Synthesized files should never be manually edited (in fact, projen\nenforces that). To modify your project setup, users interact with rich\nstrongly-typed class and execute `projen` to update their project configuration\nfiles.\n\n## Getting Started\n\nTo create a new project, run the following command and follow the instructions:\n\n```console\n$ mkdir my-project\n$ cd my-project\n$ git init\n$ npx projen new PROJECT-TYPE\n🤖 Synthesizing project...\n...\n```\n\nCurrently supported project types (use `npx projen new` without a type for a\nlist):\n\n<!-- <macro exec=\"node ./scripts/readme-projects.js\"> -->\n* [awscdk-app-java](https://github.com/projen/projen/blob/main/API.md#projen-awscdk-awscdkjavaapp) - AWS CDK app in Java.\n* [awscdk-app-ts](https://github.com/projen/projen/blob/main/API.md#projen-awscdk-awscdktypescriptapp) - AWS CDK app in TypeScript.\n* [awscdk-construct](https://github.com/projen/projen/blob/main/API.md#projen-awscdk-awscdkconstructlibrary) - AWS CDK construct library project.\n* [cdk8s-app-ts](https://github.com/projen/projen/blob/main/API.md#projen-cdk8s-cdk8stypescriptapp) - CDK8s app in TypeScript.\n* [cdk8s-construct](https://github.com/projen/projen/blob/main/API.md#projen-cdk8s-constructlibrarycdk8s) - CDK8s construct library project.\n* [cdktf-construct](https://github.com/projen/projen/blob/main/API.md#projen-cdktf-constructlibrarycdktf) - CDKTF construct library project.\n* [java](https://github.com/projen/projen/blob/main/API.md#projen-java-javaproject) - Java project.\n* [jsii](https://github.com/projen/projen/blob/main/API.md#projen-cdk-jsiiproject) - Multi-language jsii library project.\n* [nextjs](https://github.com/projen/projen/blob/main/API.md#projen-web-nextjsproject) - Next.js project without TypeScript.\n* [nextjs-ts](https://github.com/projen/projen/blob/main/API.md#projen-web-nextjstypescriptproject) - Next.js project with TypeScript.\n* [node](https://github.com/projen/projen/blob/main/API.md#projen-javascript-nodeproject) - Node.js project.\n* [project](https://github.com/projen/projen/blob/main/API.md#projen-project) - Base project.\n* [python](https://github.com/projen/projen/blob/main/API.md#projen-python-pythonproject) - Python project.\n* [react](https://github.com/projen/projen/blob/main/API.md#projen-web-reactproject) - React project without TypeScript.\n* [react-ts](https://github.com/projen/projen/blob/main/API.md#projen-web-reacttypescriptproject) - React project with TypeScript.\n* [typescript](https://github.com/projen/projen/blob/main/API.md#projen-typescript-typescriptproject) - TypeScript project.\n* [typescript-app](https://github.com/projen/projen/blob/main/API.md#projen-typescript-typescriptappproject) - TypeScript app.\n<!-- </macro> -->\n\n> Use `npx projen new PROJECT-TYPE --help` to view a list of command line\n> switches that allows you to specify most project options during bootstrapping.\n> For example: `npx projen new jsii --author-name \"Jerry Berry\"`.\n\nThe `new` command will create a `.projenrc.js` file which looks like this for\n`jsii` projects:\n\n```js\nconst { JsiiProject } = require('projen');\n\nconst project = new JsiiProject({\n authorAddress: \"elad.benisrael@gmail.com\",\n authorName: \"Elad Ben-Israel\",\n name: \"foobar\",\n repository: \"https://github.com/eladn/foobar.git\",\n});\n\nproject.synth();\n```\n\nThis program instantiates the project type with minimal setup, and then calls\n`synth()` to synthesize the project files. By default, the `new` command will\nalso execute this program, which will result in a fully working project.\n\nOnce your project is created, you can configure your project by editing\n`.projenrc.js` and re-running `npx projen` to synthesize again.\n\n> The files generated by _projen_ are considered an \"implementation detail\" and\n> _projen_ protects them from being manually edited (most files are marked\n> read-only, and an \"anti tamper\" check is configured in the CI build workflow\n> to ensure that files are not updated during build).\n\nFor example, to setup PyPI publishing in `jsii` projects, you can use\n[`python option`](https://github.com/eladb/projen/blob/master/API.md#projen-jsiipythontarget):\n\n```js\nconst project = new JsiiProject({\n // ...\n python: {\n distName: \"mydist\",\n module: \"my_module\",\n }\n});\n```\n\nRun:\n\n```shell\nnpx projen\n```\n\nAnd you'll notice that your `package.json` file now contains a `python` section in\nit's `jsii` config and the GitHub `release.yml` workflow includes a PyPI\npublishing step.\n\nWe recommend to put this in your shell profile, so you can simply run `pj` every\ntime you update `.projenrc.js`:\n\n```bash\nalias pj='npx projen'\n```\n\nMost projects come with an assortment of **tasks** that handle various\ndevelopment activities, from compiling to publishing. Tasks can be and composed\ntogether, and can be run as local commands or turned into GitHub workflows. You\ncan list all tasks with `npx projen --help`:\n\n```shell\n$ npx projen --help\nprojen [command]\n\nCommands:\n projen new [PROJECT-TYPE-NAME] [OPTIONS] Creates a new projen project\n projen clobber hard resets to HEAD of origin and cleans the local repo\n projen compile Only compile\n projen test:compile compiles the test code\n projen test Run tests\n projen build Full release build (test+compile)\n projen upgrade-dependencies upgrade dependencies\n projen upgrade-projen upgrade projen\n...\n```\n\nThe `build` task is the same task that's executed in your CI builds. It\ntypically compiles, lints, tests and packages your module for distribution.\n\n### Shell Completions\nIf installed as a global package, `projen` includes rich shell tab-completion support. To enable this in your shell, run:\n```shell\n# Bash\nprojen completion >> ~/.bashrc\n\n# ZSH\nprojen completion >> ~/.zshrc\n```\n## Features\n\nSome examples for features built-in to project types:\n\n* Fully synthesize `package.json`\n* Standard npm scripts like `compile`, `build`, `test`, `package`\n* eslint\n* Jest\n* jsii: compile, package, api compatibility checks, API.md\n* Bump & release scripts with CHANGELOG generation based on conventional commits (manual releases are currently broken! [#726](https://github.com/projen/projen/issues/726))\n* Automated PR builds\n* Automated releases to npm, maven, NuGet and PyPI\n* Mergify configuration\n* LICENSE file generation\n* gitignore + npmignore management\n* Node \"engines\" support with coupling to CI build environment and @types/node\n* Anti-tamper: CI builds will fail if a synthesized file is modified manually\n\n## API Reference\n\nSee [API Reference](./API.md) for API details.\n\nIn addition, several projen components and project types are explained with examples in [/docs](./docs) (currently a work in progress!).\n\n## Ecosystem\n\n_projen_ takes a \"batteries included\" approach and aims to offer dozens of different project types out of\nthe box (we are just getting started). Think `projen new react`, `projen new angular`, `projen new java-maven`,\n`projen new awscdk-typescript`, `projen new cdk8s-python` (nothing in projen is tied to javascript or npm!)...\n\nAdding new project types is as simple as submitting a pull request to this repo and exporting a class that\nextends `projen.Project` (or one of it's derivatives). Projen automatically discovers project types so your\ntype will immediately be available in `projen new`.\n\n### Projects in external modules\n\n_projen_ is bundled with many project types out of the box, but it can also work\nwith project types and components defined in external jsii modules (the reason\nwe need jsii is because projen uses the jsii metadata to discover project types\n& options in projen new).\n\nSay we have a module in npm called `projen-vuejs` which includes a single project\ntype for vue.js:\n\n```bash\n$ npx projen new --from projen-vuejs\n```\n\nIf the referenced module includes multiple project types, the type is required.\nSwitches can also be used to specify initial values based on the project type\nAPIs. You can also use any package syntax supported by [yarn\nadd](https://classic.yarnpkg.com/en/docs/cli/add#toc-adding-dependencies) like\n`projen-vuejs@1.2.3`, `file:/path/to/local/folder`,\n`git@github.com/awesome/projen-vuejs#1.2.3`, etc.\n\n```bash\n$ npx projen new --from projen-vuejs@^2 vuejs-ts --description \"my awesome vue project\"\n```\n\nUnder the hood, `projen new` will install the `projen-vuejs` module from npm\n(version 2.0.0 and above), discover the project types in it and bootstrap the\n`vuejs-ts` project type. It will assign the value `\"my awesome vue project\"` to\nthe `description` field. If you examine your `.projenrc.js` file, you'll see\nthat `projen-vuejs` is defined as a dev dependency:\n\n```javascript\nconst { VueJsProject } = require('projen-vuejs');\n\nconst project = new VueJsProject({\n name: 'my-vuejs-sample',\n description: \"my awesome vue project\",\n // ...\n devDeps: [\n 'projen-vuejs'\n ]\n});\n\nproject.synth();\n```\n\n## Roadmap\n\nSee [Vision](./VISION.md).\n\n## FAQ\n\n### Do I have to write my configuration in JavaScript?\n\nNot at all! JavaScript is the default, but it's also possible to write it in\nJava, TypeScript, or even JSON. Python support is also planned. This is made\npossible by the [jsii](https://github.com/aws/jsii) library which allows us\nto write APIs once and generate libraries in several languages. You can choose\na different language by passing the `--projenrc-ts`, `--projenrc-java`, or\n`--projenrc-json` flags when running `projen new`.\n\nNote: using a `.projenrc.json` file to specify configuration only allows\naccessing a subset of the entire API - the options which are passed to the\nconstructor of each project type.\n\n## Contributions\n\nContributions of all kinds are welcome! Check out our [contributor's\nguide](./CONTRIBUTING.md) and our [code of conduct](./CODE_OF_CONDUCT.md).\n\nFor a quick start, check out a development environment:\n\n```bash\n$ git clone git@github.com:projen/projen\n$ cd projen\n$ yarn\n$ yarn watch # compile in the background\n```\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n <tr>\n <td align=\"center\"><a href=\"http://eladb.github.com/\"><img src=\"https://avatars3.githubusercontent.com/u/598796?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Elad Ben-Israel</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=eladb\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://rybicki.io/\"><img src=\"https://avatars2.githubusercontent.com/u/5008987?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Christopher Rybicki</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=Chriscbr\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"http://p6m7g8.github.io/\"><img src=\"https://avatars0.githubusercontent.com/u/34295?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Philip M. Gollucci</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=pgollucci\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/hoegertn\"><img src=\"https://avatars2.githubusercontent.com/u/1287829?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thorsten Hoeger</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=hoegertn\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/kcwinner\"><img src=\"https://avatars3.githubusercontent.com/u/2728868?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Kenneth Winner</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=kcwinner\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/JordanSinko\"><img src=\"https://avatars2.githubusercontent.com/u/10212966?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jordan Sinko</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=JordanSinko\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/misterjoshua\"><img src=\"https://avatars2.githubusercontent.com/u/644092?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Josh Kellendonk</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=misterjoshua\" title=\"Code\">💻</a></td>\n </tr>\n <tr>\n <td align=\"center\"><a href=\"https://github.com/andrestone\"><img src=\"https://avatars1.githubusercontent.com/u/7958086?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>andrestone</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=andrestone\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://pallares.io/\"><img src=\"https://avatars3.githubusercontent.com/u/1077520?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Cristian Pallarés</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=skyrpex\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/jogold\"><img src=\"https://avatars2.githubusercontent.com/u/12623249?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jonathan Goldwasser</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=jogold\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"http://www.matthewbonig.com/\"><img src=\"https://avatars2.githubusercontent.com/u/1559437?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Matthew Bonig</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=mbonig\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/pahud\"><img src=\"https://avatars3.githubusercontent.com/u/278432?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Pahud Hsieh</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=pahud\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/adamelmore\"><img src=\"https://avatars2.githubusercontent.com/u/2363879?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Adam Elmore</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=adamelmore\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/abelmokadem\"><img src=\"https://avatars0.githubusercontent.com/u/9717944?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Ash</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=abelmokadem\" title=\"Code\">💻</a></td>\n </tr>\n <tr>\n <td align=\"center\"><a href=\"https://github.com/jmourelos\"><img src=\"https://avatars3.githubusercontent.com/u/3878434?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jacob</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=jmourelos\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/bigkraig\"><img src=\"https://avatars1.githubusercontent.com/u/508403?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Kraig Amador</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=bigkraig\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/mmuller88\"><img src=\"https://avatars0.githubusercontent.com/u/18393842?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Martin Muller</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=mmuller88\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://tlakomy.com/\"><img src=\"https://avatars2.githubusercontent.com/u/16646517?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tomasz Łakomy</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=tlakomy\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/john-tipper\"><img src=\"https://avatars2.githubusercontent.com/u/9730398?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>john-tipper</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=john-tipper\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/henrysachs\"><img src=\"https://avatars0.githubusercontent.com/u/17173951?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Henry Sachs</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=henrysachs\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/eganjs\"><img src=\"https://avatars3.githubusercontent.com/u/6639482?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Joseph Egan</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=eganjs\" title=\"Code\">💻</a></td>\n </tr>\n <tr>\n <td align=\"center\"><a href=\"https://skorfmann.com/\"><img src=\"https://avatars1.githubusercontent.com/u/136789?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Sebastian Korfmann</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=skorfmann\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"http://www.callant.net/\"><img src=\"https://avatars1.githubusercontent.com/u/5915843?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Bart Callant</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=bartcallant\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/campionfellin\"><img src=\"https://avatars3.githubusercontent.com/u/11984923?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Campion Fellin</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=campionfellin\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/gradybarrett\"><img src=\"https://avatars1.githubusercontent.com/u/1140074?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Grady Barrett</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=gradybarrett\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/HassanMahmud\"><img src=\"https://avatars3.githubusercontent.com/u/58504381?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Hassan Mahmud</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=HassanMahmud\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://dk.linkedin.com/in/hassanmahmud93\"><img src=\"https://avatars1.githubusercontent.com/u/7426703?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Hassan Mahmud</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=hass123uk\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"http://joapy.com/\"><img src=\"https://avatars3.githubusercontent.com/u/325306?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jake Pearson</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=jakepearson\" title=\"Code\">💻</a></td>\n </tr>\n <tr>\n <td align=\"center\"><a href=\"https://github.com/JeremyJonas\"><img src=\"https://avatars1.githubusercontent.com/u/464119?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jeremy Jonas</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=JeremyJonas\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://dev.to/martzcodes\"><img src=\"https://avatars1.githubusercontent.com/u/978362?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Matt Martz</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=martzcodes\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/fongie\"><img src=\"https://avatars1.githubusercontent.com/u/19932622?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Max Körlinge</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=fongie\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://blog.neilkuan.dev/\"><img src=\"https://avatars2.githubusercontent.com/u/46012524?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Neil Kuan</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=guan840912\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://dynobase.dev/\"><img src=\"https://avatars3.githubusercontent.com/u/3391616?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rafal Wilinski</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=RafalWilinski\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://keybase.io/romainmuller\"><img src=\"https://avatars2.githubusercontent.com/u/411689?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Romain Marcadier</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=RomainMuller\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/thomasklinger1234\"><img src=\"https://avatars1.githubusercontent.com/u/39558817?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thomas Klinger</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=thomasklinger1234\" title=\"Code\">💻</a></td>\n </tr>\n <tr>\n <td align=\"center\"><a href=\"https://github.com/gwriss\"><img src=\"https://avatars2.githubusercontent.com/u/1842089?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tobias</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=gwriss\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/flyingImer\"><img src=\"https://avatars0.githubusercontent.com/u/1973868?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>flyingImer</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=flyingImer\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/Hunter-Thompson\"><img src=\"https://avatars.githubusercontent.com/u/20844961?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b> Aatman </b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=Hunter-Thompson\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/mmcculloh-dms\"><img src=\"https://avatars.githubusercontent.com/u/68597641?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Mark McCulloh</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=mmcculloh-dms\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/aisamu\"><img src=\"https://avatars.githubusercontent.com/u/431708?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Samuel Tschiedel</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=aisamu\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/iliapolo\"><img src=\"https://avatars.githubusercontent.com/u/1428812?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Eli Polonsky</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=iliapolo\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://unsubstantiated.blog/\"><img src=\"https://avatars.githubusercontent.com/u/1308885?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Alexander Steppke</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=Miradorn\" title=\"Code\">💻</a></td>\n </tr>\n <tr>\n <td align=\"center\"><a href=\"https://github.com/kanatti\"><img src=\"https://avatars.githubusercontent.com/u/8623654?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Balagopal Kanattil</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=kanatti\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"http://twitter.com/bracki\"><img src=\"https://avatars.githubusercontent.com/u/49786?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jan Brauer</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=bracki\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://polothy.github.io/\"><img src=\"https://avatars.githubusercontent.com/u/634657?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Mark Nielsen</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=polothy\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/MrArnoldPalmer\"><img src=\"https://avatars.githubusercontent.com/u/7221111?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Mitchell Valine</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=MrArnoldPalmer\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://blog.neilkuan.net/\"><img src=\"https://avatars.githubusercontent.com/u/46012524?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Neil Kuan</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=neilkuan\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://garbe.io/\"><img src=\"https://avatars.githubusercontent.com/u/721899?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Philipp Garbe</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=pgarbe\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://selfstructured.com/\"><img src=\"https://avatars.githubusercontent.com/u/361689?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Shawn MacIntyre</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=smacintyre\" title=\"Code\">💻</a></td>\n </tr>\n <tr>\n <td align=\"center\"><a href=\"https://github.com/tobias-bardino\"><img src=\"https://avatars.githubusercontent.com/u/1842089?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tobias</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=tobias-bardino\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/yglcode\"><img src=\"https://avatars.githubusercontent.com/u/11893614?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Yigong Liu</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=yglcode\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/eduardomourar\"><img src=\"https://avatars.githubusercontent.com/u/16357187?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Eduardo Rodrigues</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=eduardomourar\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/hassanazharkhan\"><img src=\"https://avatars.githubusercontent.com/u/57677979?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Hassan Azhar</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=hassanazharkhan\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://www.linkedin.com/in/julian-michel-812a223a/\"><img src=\"https://avatars.githubusercontent.com/u/15660169?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Julian Michel</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=jumic\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/lmarsden\"><img src=\"https://avatars.githubusercontent.com/u/51232932?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>lmarsden</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=lmarsden\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/adrianmace\"><img src=\"https://avatars.githubusercontent.com/u/5071859?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Adrian Mace</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=adrianmace\" title=\"Code\">💻</a></td>\n </tr>\n <tr>\n <td align=\"center\"><a href=\"https://github.com/mKeRix\"><img src=\"https://avatars.githubusercontent.com/u/770596?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Heiko Rothe</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=mKeRix\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/hyandell\"><img src=\"https://avatars.githubusercontent.com/u/477715?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Henri Yandell</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=hyandell\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/mwg-rea\"><img src=\"https://avatars.githubusercontent.com/u/82480228?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Matthew Gamble</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=mwg-rea\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://willdady.com/\"><img src=\"https://avatars.githubusercontent.com/u/204259?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Will Dady</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=willdady\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/msessa\"><img src=\"https://avatars.githubusercontent.com/u/1912143?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Matteo Sessa</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=msessa\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/Hi-Fi\"><img src=\"https://avatars.githubusercontent.com/u/1499780?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Juho Saarinen</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=Hi-Fi\" title=\"Code\">💻</a></td>\n <td align=\"center\"><a href=\"https://github.com/njlynch\"><img src=\"https://avatars.githubusercontent.com/u/1376292?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Nick Lynch</b></sub></a><br /><a href=\"https://github.com/projen/projen/commits?author=njlynch\" title=\"Code\">💻</a></td>\n </tr>\n</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"
|
|
51
51
|
},
|
|
52
52
|
"repository": {
|
|
53
53
|
"type": "git",
|
|
@@ -58,35 +58,35 @@
|
|
|
58
58
|
"projen.awscdk": {
|
|
59
59
|
"locationInModule": {
|
|
60
60
|
"filename": "src/index.ts",
|
|
61
|
-
"line":
|
|
61
|
+
"line": 44
|
|
62
62
|
},
|
|
63
63
|
"symbolId": "src/awscdk/index:"
|
|
64
64
|
},
|
|
65
65
|
"projen.cdk": {
|
|
66
66
|
"locationInModule": {
|
|
67
67
|
"filename": "src/index.ts",
|
|
68
|
-
"line":
|
|
68
|
+
"line": 47
|
|
69
69
|
},
|
|
70
70
|
"symbolId": "src/cdk/index:"
|
|
71
71
|
},
|
|
72
72
|
"projen.cdk8s": {
|
|
73
73
|
"locationInModule": {
|
|
74
74
|
"filename": "src/index.ts",
|
|
75
|
-
"line":
|
|
75
|
+
"line": 45
|
|
76
76
|
},
|
|
77
77
|
"symbolId": "src/cdk8s/index:"
|
|
78
78
|
},
|
|
79
79
|
"projen.cdktf": {
|
|
80
80
|
"locationInModule": {
|
|
81
81
|
"filename": "src/index.ts",
|
|
82
|
-
"line":
|
|
82
|
+
"line": 46
|
|
83
83
|
},
|
|
84
84
|
"symbolId": "src/cdktf/index:"
|
|
85
85
|
},
|
|
86
86
|
"projen.github": {
|
|
87
87
|
"locationInModule": {
|
|
88
88
|
"filename": "src/index.ts",
|
|
89
|
-
"line":
|
|
89
|
+
"line": 37
|
|
90
90
|
},
|
|
91
91
|
"symbolId": "src/github/index:"
|
|
92
92
|
},
|
|
@@ -100,49 +100,49 @@
|
|
|
100
100
|
"projen.java": {
|
|
101
101
|
"locationInModule": {
|
|
102
102
|
"filename": "src/index.ts",
|
|
103
|
-
"line":
|
|
103
|
+
"line": 39
|
|
104
104
|
},
|
|
105
105
|
"symbolId": "src/java/index:"
|
|
106
106
|
},
|
|
107
107
|
"projen.javascript": {
|
|
108
108
|
"locationInModule": {
|
|
109
109
|
"filename": "src/index.ts",
|
|
110
|
-
"line":
|
|
110
|
+
"line": 42
|
|
111
111
|
},
|
|
112
112
|
"symbolId": "src/javascript/index:"
|
|
113
113
|
},
|
|
114
114
|
"projen.python": {
|
|
115
115
|
"locationInModule": {
|
|
116
116
|
"filename": "src/index.ts",
|
|
117
|
-
"line":
|
|
117
|
+
"line": 40
|
|
118
118
|
},
|
|
119
119
|
"symbolId": "src/python/index:"
|
|
120
120
|
},
|
|
121
121
|
"projen.release": {
|
|
122
122
|
"locationInModule": {
|
|
123
123
|
"filename": "src/index.ts",
|
|
124
|
-
"line":
|
|
124
|
+
"line": 43
|
|
125
125
|
},
|
|
126
126
|
"symbolId": "src/release/index:"
|
|
127
127
|
},
|
|
128
128
|
"projen.typescript": {
|
|
129
129
|
"locationInModule": {
|
|
130
130
|
"filename": "src/index.ts",
|
|
131
|
-
"line":
|
|
131
|
+
"line": 41
|
|
132
132
|
},
|
|
133
133
|
"symbolId": "src/typescript/index:"
|
|
134
134
|
},
|
|
135
135
|
"projen.vscode": {
|
|
136
136
|
"locationInModule": {
|
|
137
137
|
"filename": "src/index.ts",
|
|
138
|
-
"line":
|
|
138
|
+
"line": 38
|
|
139
139
|
},
|
|
140
140
|
"symbolId": "src/vscode/index:"
|
|
141
141
|
},
|
|
142
142
|
"projen.web": {
|
|
143
143
|
"locationInModule": {
|
|
144
144
|
"filename": "src/index.ts",
|
|
145
|
-
"line":
|
|
145
|
+
"line": 36
|
|
146
146
|
},
|
|
147
147
|
"symbolId": "src/web/index:"
|
|
148
148
|
}
|
|
@@ -8345,6 +8345,58 @@
|
|
|
8345
8345
|
],
|
|
8346
8346
|
"symbolId": "src/task-model:TasksManifest"
|
|
8347
8347
|
},
|
|
8348
|
+
"projen.Testing": {
|
|
8349
|
+
"assembly": "projen",
|
|
8350
|
+
"docs": {
|
|
8351
|
+
"example": "`expect(Testing.synth(someProject)).toMatchSnapshot()`",
|
|
8352
|
+
"stability": "experimental",
|
|
8353
|
+
"summary": "A Testing static class with a .synth helper for getting a snapshots of construct outputs. Useful for snapshot testing with Jest."
|
|
8354
|
+
},
|
|
8355
|
+
"fqn": "projen.Testing",
|
|
8356
|
+
"kind": "class",
|
|
8357
|
+
"locationInModule": {
|
|
8358
|
+
"filename": "src/testing.ts",
|
|
8359
|
+
"line": 10
|
|
8360
|
+
},
|
|
8361
|
+
"methods": [
|
|
8362
|
+
{
|
|
8363
|
+
"docs": {
|
|
8364
|
+
"returns": ": any }",
|
|
8365
|
+
"stability": "experimental",
|
|
8366
|
+
"summary": "Produces a simple JS object that represents the contents of the projects with field names being file paths."
|
|
8367
|
+
},
|
|
8368
|
+
"locationInModule": {
|
|
8369
|
+
"filename": "src/testing.ts",
|
|
8370
|
+
"line": 17
|
|
8371
|
+
},
|
|
8372
|
+
"name": "synth",
|
|
8373
|
+
"parameters": [
|
|
8374
|
+
{
|
|
8375
|
+
"docs": {
|
|
8376
|
+
"summary": "the project to produce a snapshot for."
|
|
8377
|
+
},
|
|
8378
|
+
"name": "project",
|
|
8379
|
+
"type": {
|
|
8380
|
+
"fqn": "projen.Project"
|
|
8381
|
+
}
|
|
8382
|
+
}
|
|
8383
|
+
],
|
|
8384
|
+
"returns": {
|
|
8385
|
+
"type": {
|
|
8386
|
+
"collection": {
|
|
8387
|
+
"elementtype": {
|
|
8388
|
+
"primitive": "any"
|
|
8389
|
+
},
|
|
8390
|
+
"kind": "map"
|
|
8391
|
+
}
|
|
8392
|
+
}
|
|
8393
|
+
},
|
|
8394
|
+
"static": true
|
|
8395
|
+
}
|
|
8396
|
+
],
|
|
8397
|
+
"name": "Testing",
|
|
8398
|
+
"symbolId": "src/testing:Testing"
|
|
8399
|
+
},
|
|
8348
8400
|
"projen.TextFile": {
|
|
8349
8401
|
"assembly": "projen",
|
|
8350
8402
|
"base": "projen.FileBase",
|
|
@@ -9163,7 +9215,7 @@
|
|
|
9163
9215
|
},
|
|
9164
9216
|
"locationInModule": {
|
|
9165
9217
|
"filename": "src/awscdk/awscdk-construct.ts",
|
|
9166
|
-
"line":
|
|
9218
|
+
"line": 129
|
|
9167
9219
|
},
|
|
9168
9220
|
"parameters": [
|
|
9169
9221
|
{
|
|
@@ -9177,7 +9229,7 @@
|
|
|
9177
9229
|
"kind": "class",
|
|
9178
9230
|
"locationInModule": {
|
|
9179
9231
|
"filename": "src/awscdk/awscdk-construct.ts",
|
|
9180
|
-
"line":
|
|
9232
|
+
"line": 118
|
|
9181
9233
|
},
|
|
9182
9234
|
"methods": [
|
|
9183
9235
|
{
|
|
@@ -9188,7 +9240,7 @@
|
|
|
9188
9240
|
},
|
|
9189
9241
|
"locationInModule": {
|
|
9190
9242
|
"filename": "src/awscdk/awscdk-construct.ts",
|
|
9191
|
-
"line":
|
|
9243
|
+
"line": 228
|
|
9192
9244
|
},
|
|
9193
9245
|
"name": "addCdkDependencies",
|
|
9194
9246
|
"parameters": [
|
|
@@ -9212,7 +9264,7 @@
|
|
|
9212
9264
|
},
|
|
9213
9265
|
"locationInModule": {
|
|
9214
9266
|
"filename": "src/awscdk/awscdk-construct.ts",
|
|
9215
|
-
"line":
|
|
9267
|
+
"line": 244
|
|
9216
9268
|
},
|
|
9217
9269
|
"name": "addCdkTestDependencies",
|
|
9218
9270
|
"parameters": [
|
|
@@ -9241,7 +9293,7 @@
|
|
|
9241
9293
|
"immutable": true,
|
|
9242
9294
|
"locationInModule": {
|
|
9243
9295
|
"filename": "src/awscdk/awscdk-construct.ts",
|
|
9244
|
-
"line":
|
|
9296
|
+
"line": 127
|
|
9245
9297
|
},
|
|
9246
9298
|
"name": "cdkDependenciesAsDeps",
|
|
9247
9299
|
"type": {
|
|
@@ -9256,7 +9308,7 @@
|
|
|
9256
9308
|
"immutable": true,
|
|
9257
9309
|
"locationInModule": {
|
|
9258
9310
|
"filename": "src/awscdk/awscdk-construct.ts",
|
|
9259
|
-
"line":
|
|
9311
|
+
"line": 122
|
|
9260
9312
|
},
|
|
9261
9313
|
"name": "cdkVersion",
|
|
9262
9314
|
"type": {
|
|
@@ -9271,7 +9323,7 @@
|
|
|
9271
9323
|
"immutable": true,
|
|
9272
9324
|
"locationInModule": {
|
|
9273
9325
|
"filename": "src/awscdk/awscdk-construct.ts",
|
|
9274
|
-
"line":
|
|
9326
|
+
"line": 211
|
|
9275
9327
|
},
|
|
9276
9328
|
"name": "version",
|
|
9277
9329
|
"type": {
|
|
@@ -9306,7 +9358,7 @@
|
|
|
9306
9358
|
"custom": {
|
|
9307
9359
|
"featured": "true"
|
|
9308
9360
|
},
|
|
9309
|
-
"default": "\"
|
|
9361
|
+
"default": "\"2.0.0\"",
|
|
9310
9362
|
"stability": "experimental",
|
|
9311
9363
|
"summary": "Minimum target version this library is tested against."
|
|
9312
9364
|
},
|
|
@@ -9323,14 +9375,15 @@
|
|
|
9323
9375
|
{
|
|
9324
9376
|
"abstract": true,
|
|
9325
9377
|
"docs": {
|
|
9326
|
-
"default": "
|
|
9327
|
-
"
|
|
9378
|
+
"default": "false",
|
|
9379
|
+
"deprecated": "- use cdkAssertions instead",
|
|
9380
|
+
"stability": "deprecated",
|
|
9328
9381
|
"summary": "Install the @aws-cdk/assert library?"
|
|
9329
9382
|
},
|
|
9330
9383
|
"immutable": true,
|
|
9331
9384
|
"locationInModule": {
|
|
9332
9385
|
"filename": "src/awscdk/awscdk-construct.ts",
|
|
9333
|
-
"line":
|
|
9386
|
+
"line": 69
|
|
9334
9387
|
},
|
|
9335
9388
|
"name": "cdkAssert",
|
|
9336
9389
|
"optional": true,
|
|
@@ -9341,10 +9394,27 @@
|
|
|
9341
9394
|
{
|
|
9342
9395
|
"abstract": true,
|
|
9343
9396
|
"docs": {
|
|
9344
|
-
"
|
|
9345
|
-
|
|
9346
|
-
},
|
|
9397
|
+
"default": "true",
|
|
9398
|
+
"remarks": "Only needed for CDK 1.x. If using CDK 2.x then\nassertions is already included in 'aws-cdk-lib'",
|
|
9347
9399
|
"stability": "experimental",
|
|
9400
|
+
"summary": "Install the @aws-cdk/assertions library?"
|
|
9401
|
+
},
|
|
9402
|
+
"immutable": true,
|
|
9403
|
+
"locationInModule": {
|
|
9404
|
+
"filename": "src/awscdk/awscdk-construct.ts",
|
|
9405
|
+
"line": 79
|
|
9406
|
+
},
|
|
9407
|
+
"name": "cdkAssertions",
|
|
9408
|
+
"optional": true,
|
|
9409
|
+
"type": {
|
|
9410
|
+
"primitive": "boolean"
|
|
9411
|
+
}
|
|
9412
|
+
},
|
|
9413
|
+
{
|
|
9414
|
+
"abstract": true,
|
|
9415
|
+
"docs": {
|
|
9416
|
+
"deprecated": "- For CDK 2.x use 'peerDeps' instead",
|
|
9417
|
+
"stability": "deprecated",
|
|
9348
9418
|
"summary": "Which AWS CDK modules (those that start with \"@aws-cdk/\") does this library require when consumed?"
|
|
9349
9419
|
},
|
|
9350
9420
|
"immutable": true,
|
|
@@ -9367,14 +9437,15 @@
|
|
|
9367
9437
|
"abstract": true,
|
|
9368
9438
|
"docs": {
|
|
9369
9439
|
"default": "true",
|
|
9440
|
+
"deprecated": "- Not used for CDK 2.x",
|
|
9370
9441
|
"remarks": "This is to ensure that downstream consumers actually have your CDK dependencies installed\nwhen using npm < 7 or yarn, where peer dependencies are not automatically installed.\nIf this is disabled, `cdkDependencies` will be added to `devDependencies` to ensure\nthey are present during development.",
|
|
9371
|
-
"stability": "
|
|
9442
|
+
"stability": "deprecated",
|
|
9372
9443
|
"summary": "If this is enabled (default), all modules declared in `cdkDependencies` will be also added as normal `dependencies` (as well as `peerDependencies`)."
|
|
9373
9444
|
},
|
|
9374
9445
|
"immutable": true,
|
|
9375
9446
|
"locationInModule": {
|
|
9376
9447
|
"filename": "src/awscdk/awscdk-construct.ts",
|
|
9377
|
-
"line":
|
|
9448
|
+
"line": 61
|
|
9378
9449
|
},
|
|
9379
9450
|
"name": "cdkDependenciesAsDeps",
|
|
9380
9451
|
"optional": true,
|
|
@@ -9388,13 +9459,14 @@
|
|
|
9388
9459
|
"custom": {
|
|
9389
9460
|
"featured": "true"
|
|
9390
9461
|
},
|
|
9391
|
-
"
|
|
9462
|
+
"deprecated": "- For CDK 2.x use 'devDeps' instead",
|
|
9463
|
+
"stability": "deprecated",
|
|
9392
9464
|
"summary": "AWS CDK modules required for testing."
|
|
9393
9465
|
},
|
|
9394
9466
|
"immutable": true,
|
|
9395
9467
|
"locationInModule": {
|
|
9396
9468
|
"filename": "src/awscdk/awscdk-construct.ts",
|
|
9397
|
-
"line":
|
|
9469
|
+
"line": 89
|
|
9398
9470
|
},
|
|
9399
9471
|
"name": "cdkTestDependencies",
|
|
9400
9472
|
"optional": true,
|
|
@@ -9418,7 +9490,7 @@
|
|
|
9418
9490
|
"immutable": true,
|
|
9419
9491
|
"locationInModule": {
|
|
9420
9492
|
"filename": "src/awscdk/awscdk-construct.ts",
|
|
9421
|
-
"line":
|
|
9493
|
+
"line": 39
|
|
9422
9494
|
},
|
|
9423
9495
|
"name": "cdkVersionPinning",
|
|
9424
9496
|
"optional": true,
|
|
@@ -9429,7 +9501,7 @@
|
|
|
9429
9501
|
{
|
|
9430
9502
|
"abstract": true,
|
|
9431
9503
|
"docs": {
|
|
9432
|
-
"default": "- When the default behavior is used, the dependency on `constructs` will
|
|
9504
|
+
"default": "- When the default behavior is used, the dependency on `constructs` will\nbe added as both a `peerDependency` and a `devDependency`.",
|
|
9433
9505
|
"remarks": "- For CDK 1.x, the default is \"3.2.27\"\n- For CDK 2.x, the default is \"10.0.5\"\n- Otherwise, the default is \"*\"",
|
|
9434
9506
|
"stability": "experimental",
|
|
9435
9507
|
"summary": "Minimum target version of constructs being tested against. If not provided, the default value depends on the configured `cdkVersion`:."
|
|
@@ -9437,7 +9509,7 @@
|
|
|
9437
9509
|
"immutable": true,
|
|
9438
9510
|
"locationInModule": {
|
|
9439
9511
|
"filename": "src/awscdk/awscdk-construct.ts",
|
|
9440
|
-
"line":
|
|
9512
|
+
"line": 29
|
|
9441
9513
|
},
|
|
9442
9514
|
"name": "constructsVersion",
|
|
9443
9515
|
"optional": true,
|
|
@@ -9455,7 +9527,7 @@
|
|
|
9455
9527
|
"immutable": true,
|
|
9456
9528
|
"locationInModule": {
|
|
9457
9529
|
"filename": "src/awscdk/awscdk-construct.ts",
|
|
9458
|
-
"line":
|
|
9530
|
+
"line": 99
|
|
9459
9531
|
},
|
|
9460
9532
|
"name": "lambdaAutoDiscover",
|
|
9461
9533
|
"optional": true,
|
|
@@ -9473,7 +9545,7 @@
|
|
|
9473
9545
|
"immutable": true,
|
|
9474
9546
|
"locationInModule": {
|
|
9475
9547
|
"filename": "src/awscdk/awscdk-construct.ts",
|
|
9476
|
-
"line":
|
|
9548
|
+
"line": 106
|
|
9477
9549
|
},
|
|
9478
9550
|
"name": "lambdaOptions",
|
|
9479
9551
|
"optional": true,
|
|
@@ -10349,7 +10421,7 @@
|
|
|
10349
10421
|
},
|
|
10350
10422
|
"locationInModule": {
|
|
10351
10423
|
"filename": "src/awscdk/awscdk-construct.ts",
|
|
10352
|
-
"line":
|
|
10424
|
+
"line": 129
|
|
10353
10425
|
},
|
|
10354
10426
|
"parameters": [
|
|
10355
10427
|
{
|
|
@@ -10363,7 +10435,7 @@
|
|
|
10363
10435
|
"kind": "class",
|
|
10364
10436
|
"locationInModule": {
|
|
10365
10437
|
"filename": "src/awscdk/awscdk-construct.ts",
|
|
10366
|
-
"line":
|
|
10438
|
+
"line": 257
|
|
10367
10439
|
},
|
|
10368
10440
|
"name": "ConstructLibraryAws",
|
|
10369
10441
|
"namespace": "awscdk",
|
|
@@ -10383,7 +10455,7 @@
|
|
|
10383
10455
|
"kind": "interface",
|
|
10384
10456
|
"locationInModule": {
|
|
10385
10457
|
"filename": "src/awscdk/awscdk-construct.ts",
|
|
10386
|
-
"line":
|
|
10458
|
+
"line": 254
|
|
10387
10459
|
},
|
|
10388
10460
|
"name": "ConstructLibraryAwsOptions",
|
|
10389
10461
|
"namespace": "awscdk",
|
|
@@ -35219,6 +35291,6 @@
|
|
|
35219
35291
|
"symbolId": "src/web/tailwind:TailwindConfigOptions"
|
|
35220
35292
|
}
|
|
35221
35293
|
},
|
|
35222
|
-
"version": "0.
|
|
35223
|
-
"fingerprint": "
|
|
35294
|
+
"version": "0.39.3",
|
|
35295
|
+
"fingerprint": "wdH4aa4Vt90XOe2WDOp1jElLylFmIoEAAXGiE932Qzo="
|
|
35224
35296
|
}
|