projen 0.31.18 → 0.32.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 (143) hide show
  1. package/.jsii +2150 -444
  2. package/API.md +735 -78
  3. package/README.md +1 -0
  4. package/docs/aws-lambda.md +103 -0
  5. package/docs/programmatic-api.md +56 -0
  6. package/lib/awscdk/auto-discover.d.ts +46 -0
  7. package/lib/awscdk/auto-discover.js +46 -0
  8. package/lib/awscdk/cdk-config.d.ts +103 -0
  9. package/lib/awscdk/cdk-config.js +56 -0
  10. package/lib/awscdk/cdk-tasks.d.ts +38 -0
  11. package/lib/awscdk/cdk-tasks.js +39 -0
  12. package/lib/awscdk/index.d.ts +5 -0
  13. package/lib/awscdk/index.js +18 -0
  14. package/lib/awscdk/internal.d.ts +8 -0
  15. package/lib/awscdk/internal.js +26 -0
  16. package/lib/awscdk/java-app.d.ts +92 -0
  17. package/lib/awscdk/java-app.js +90 -0
  18. package/lib/awscdk/lambda-function.d.ts +146 -0
  19. package/lib/awscdk/lambda-function.js +160 -0
  20. package/lib/awscdk-app-ts.d.ts +22 -40
  21. package/lib/awscdk-app-ts.js +21 -46
  22. package/lib/awscdk-construct.d.ts +15 -58
  23. package/lib/awscdk-construct.js +13 -62
  24. package/lib/cdk8s-app-ts.js +1 -1
  25. package/lib/cdk8s-construct.js +1 -1
  26. package/lib/cdktf-construct.js +1 -1
  27. package/lib/cli/cmds/new.js +23 -65
  28. package/lib/cli/util.d.ts +19 -0
  29. package/lib/cli/util.js +52 -0
  30. package/lib/common.js +6 -2
  31. package/lib/component.js +1 -1
  32. package/lib/construct-lib.js +1 -1
  33. package/lib/deps/dependencies.js +1 -1
  34. package/lib/dev-env.js +1 -1
  35. package/lib/docker-compose.js +2 -2
  36. package/lib/eslint.d.ts +18 -0
  37. package/lib/eslint.js +17 -5
  38. package/lib/file.js +1 -1
  39. package/lib/git/gitattributes.js +1 -1
  40. package/lib/github/auto-approve.js +1 -1
  41. package/lib/github/auto-merge.js +1 -1
  42. package/lib/github/dependabot.js +1 -1
  43. package/lib/github/github.js +1 -1
  44. package/lib/github/mergify.js +1 -1
  45. package/lib/github/pr-template.js +1 -1
  46. package/lib/github/stale.js +1 -1
  47. package/lib/github/task-workflow.js +1 -1
  48. package/lib/github/workflows.js +4 -5
  49. package/lib/gitpod.js +1 -1
  50. package/lib/ignore-file.js +1 -1
  51. package/lib/index.d.ts +2 -0
  52. package/lib/index.js +3 -1
  53. package/lib/ini.js +1 -1
  54. package/lib/inventory.d.ts +15 -3
  55. package/lib/inventory.js +53 -29
  56. package/lib/java/java-project.d.ts +28 -14
  57. package/lib/java/java-project.js +3 -2
  58. package/lib/java/junit.js +1 -1
  59. package/lib/java/maven-compile.js +1 -1
  60. package/lib/java/maven-packaging.js +1 -1
  61. package/lib/java/maven-sample.js +1 -1
  62. package/lib/java/pom.js +1 -1
  63. package/lib/java/projenrc.js +1 -1
  64. package/lib/javascript/bundler.d.ts +144 -0
  65. package/lib/javascript/bundler.js +93 -0
  66. package/lib/javascript/index.d.ts +1 -0
  67. package/lib/javascript/index.js +2 -1
  68. package/lib/javascript/npm-config.js +1 -1
  69. package/lib/javascript/projenrc.js +3 -3
  70. package/lib/javascript/render-options.d.ts +5 -0
  71. package/lib/javascript/render-options.js +24 -21
  72. package/lib/jest.js +1 -1
  73. package/lib/jsii-project.js +1 -1
  74. package/lib/json/projenrc.js +1 -1
  75. package/lib/json/run-projenrc.task.js +6 -11
  76. package/lib/json.js +1 -1
  77. package/lib/license.js +1 -1
  78. package/lib/logger.js +1 -1
  79. package/lib/makefile.js +1 -1
  80. package/lib/node-package.js +1 -1
  81. package/lib/node-project.d.ts +11 -1
  82. package/lib/node-project.js +9 -4
  83. package/lib/object-file.js +1 -1
  84. package/lib/project.js +2 -2
  85. package/lib/projects.d.ts +80 -0
  86. package/lib/projects.js +81 -0
  87. package/lib/python/pip.js +1 -1
  88. package/lib/python/poetry.js +2 -2
  89. package/lib/python/projenrc.js +4 -5
  90. package/lib/python/pytest.js +1 -1
  91. package/lib/python/python-project.js +1 -1
  92. package/lib/python/python-sample.js +1 -1
  93. package/lib/python/requirements-file.js +1 -1
  94. package/lib/python/setuppy.js +1 -1
  95. package/lib/python/setuptools.js +1 -1
  96. package/lib/python/venv.js +1 -1
  97. package/lib/readme.js +1 -1
  98. package/lib/release/publisher.js +1 -1
  99. package/lib/release/release-trigger.js +1 -1
  100. package/lib/release/release.js +1 -1
  101. package/lib/sample-file.js +2 -2
  102. package/lib/semver.js +1 -1
  103. package/lib/source-code.js +1 -1
  104. package/lib/tasks/runtime.js +1 -1
  105. package/lib/tasks/task.js +1 -1
  106. package/lib/tasks/tasks.js +1 -1
  107. package/lib/textfile.js +1 -1
  108. package/lib/toml.js +1 -1
  109. package/lib/typescript/projenrc.js +3 -3
  110. package/lib/typescript-config.js +1 -1
  111. package/lib/typescript.js +3 -3
  112. package/lib/upgrade-dependencies.js +2 -2
  113. package/lib/util/synth.d.ts +4 -0
  114. package/lib/util/synth.js +35 -2
  115. package/lib/util.js +11 -3
  116. package/lib/version.js +1 -1
  117. package/lib/vscode/devcontainer.js +1 -1
  118. package/lib/vscode/launch-config.js +1 -1
  119. package/lib/vscode/vscode.js +1 -1
  120. package/lib/web/next.js +3 -3
  121. package/lib/web/postcss.js +1 -1
  122. package/lib/web/react.js +4 -4
  123. package/lib/web/tailwind.js +1 -1
  124. package/lib/xmlfile.js +1 -1
  125. package/lib/yaml.js +1 -1
  126. package/node_modules/case/LICENSE +22 -0
  127. package/node_modules/case/README.md +139 -0
  128. package/node_modules/case/case.d.ts +43 -0
  129. package/node_modules/case/dist/Case.js +171 -0
  130. package/node_modules/case/dist/Case.min.js +5 -0
  131. package/node_modules/case/dist/Case.min.js.map +1 -0
  132. package/node_modules/case/dist/Case.plus.js +189 -0
  133. package/node_modules/case/dist/Case.plus.min.js +5 -0
  134. package/node_modules/case/dist/Case.plus.min.js.map +1 -0
  135. package/node_modules/case/package.json +58 -0
  136. package/package.json +4 -4
  137. package/lib/cli/create.d.ts +0 -41
  138. package/lib/cli/create.js +0 -48
  139. package/node_modules/decamelize/index.d.ts +0 -20
  140. package/node_modules/decamelize/index.js +0 -12
  141. package/node_modules/decamelize/license +0 -9
  142. package/node_modules/decamelize/package.json +0 -40
  143. package/node_modules/decamelize/readme.md +0 -51
package/.jsii CHANGED
@@ -11,8 +11,8 @@
11
11
  },
12
12
  "bundled": {
13
13
  "@iarna/toml": "^2.2.5",
14
+ "case": "^1.6.3",
14
15
  "chalk": "^4.1.2",
15
- "decamelize": "^4.0.0",
16
16
  "fs-extra": "^9.1.0",
17
17
  "glob": "^7",
18
18
  "ini": "^2.0.0",
@@ -38,7 +38,7 @@
38
38
  },
39
39
  "name": "projen",
40
40
  "readme": {
41
- "markdown": "[![License](https://img.shields.io/badge/License-Apache%202.0-yellowgreen.svg)](https://opensource.org/licenses/Apache-2.0)\n<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->\n[![All Contributors](https://img.shields.io/badge/all_contributors-59-orange.svg?style=flat-square)](#contributors-)\n<!-- ALL-CONTRIBUTORS-BADGE:END -->\n[![Gitpod ready-to-code](https://img.shields.io/badge/Gitpod-ready--to--code-blue?logo=gitpod)](https://gitpod.io/#https://github.com/projen/projen)\n![Build](https://github.com/projen/projen/workflows/Build/badge.svg)\n![Release](https://github.com/projen/projen/workflows/Release/badge.svg)\n\n# projen\n\n![projen logo](/logo/projen.svg)\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-ts](https://github.com/projen/projen/blob/main/API.md#projen-awscdktypescriptapp) - AWS CDK app in TypeScript.\n* [awscdk-construct](https://github.com/projen/projen/blob/main/API.md#projen-awscdkconstructlibrary) - AWS CDK construct library project.\n* [cdk8s-app-ts](https://github.com/projen/projen/blob/main/API.md#projen-cdk8stypescriptapp) - CDK8s app in TypeScript.\n* [cdk8s-construct](https://github.com/projen/projen/blob/main/API.md#projen-constructlibrarycdk8s) - CDK8s construct library project.\n* [cdktf-construct](https://github.com/projen/projen/blob/main/API.md#projen-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-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-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-typescriptproject) - TypeScript project.\n* [typescript-app](https://github.com/projen/projen/blob/main/API.md#projen-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"
41
+ "markdown": "[![License](https://img.shields.io/badge/License-Apache%202.0-yellowgreen.svg)](https://opensource.org/licenses/Apache-2.0)\n<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->\n[![All Contributors](https://img.shields.io/badge/all_contributors-59-orange.svg?style=flat-square)](#contributors-)\n<!-- ALL-CONTRIBUTORS-BADGE:END -->\n[![Gitpod ready-to-code](https://img.shields.io/badge/Gitpod-ready--to--code-blue?logo=gitpod)](https://gitpod.io/#https://github.com/projen/projen)\n![Build](https://github.com/projen/projen/workflows/Build/badge.svg)\n![Release](https://github.com/projen/projen/workflows/Release/badge.svg)\n\n# projen\n\n![projen logo](/logo/projen.svg)\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-awscdktypescriptapp) - AWS CDK app in TypeScript.\n* [awscdk-construct](https://github.com/projen/projen/blob/main/API.md#projen-awscdkconstructlibrary) - AWS CDK construct library project.\n* [cdk8s-app-ts](https://github.com/projen/projen/blob/main/API.md#projen-cdk8stypescriptapp) - CDK8s app in TypeScript.\n* [cdk8s-construct](https://github.com/projen/projen/blob/main/API.md#projen-constructlibrarycdk8s) - CDK8s construct library project.\n* [cdktf-construct](https://github.com/projen/projen/blob/main/API.md#projen-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-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-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-typescriptproject) - TypeScript project.\n* [typescript-app](https://github.com/projen/projen/blob/main/API.md#projen-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"
42
42
  },
43
43
  "repository": {
44
44
  "type": "git",
@@ -46,22 +46,28 @@
46
46
  },
47
47
  "schema": "jsii/0.10.0",
48
48
  "submodules": {
49
+ "projen.awscdk": {
50
+ "locationInModule": {
51
+ "filename": "src/index.ts",
52
+ "line": 53
53
+ }
54
+ },
49
55
  "projen.deps": {
50
56
  "locationInModule": {
51
57
  "filename": "src/index.ts",
52
- "line": 44
58
+ "line": 45
53
59
  }
54
60
  },
55
61
  "projen.git": {
56
62
  "locationInModule": {
57
63
  "filename": "src/index.ts",
58
- "line": 51
64
+ "line": 52
59
65
  }
60
66
  },
61
67
  "projen.github": {
62
68
  "locationInModule": {
63
69
  "filename": "src/index.ts",
64
- "line": 42
70
+ "line": 43
65
71
  }
66
72
  },
67
73
  "projen.github.workflows": {
@@ -73,55 +79,55 @@
73
79
  "projen.java": {
74
80
  "locationInModule": {
75
81
  "filename": "src/index.ts",
76
- "line": 46
82
+ "line": 47
77
83
  }
78
84
  },
79
85
  "projen.javascript": {
80
86
  "locationInModule": {
81
87
  "filename": "src/index.ts",
82
- "line": 49
88
+ "line": 50
83
89
  }
84
90
  },
85
91
  "projen.json": {
86
92
  "locationInModule": {
87
93
  "filename": "src/index.ts",
88
- "line": 45
94
+ "line": 46
89
95
  }
90
96
  },
91
97
  "projen.python": {
92
98
  "locationInModule": {
93
99
  "filename": "src/index.ts",
94
- "line": 47
100
+ "line": 48
95
101
  }
96
102
  },
97
103
  "projen.release": {
98
104
  "locationInModule": {
99
105
  "filename": "src/index.ts",
100
- "line": 50
106
+ "line": 51
101
107
  }
102
108
  },
103
109
  "projen.tasks": {
104
110
  "locationInModule": {
105
111
  "filename": "src/index.ts",
106
- "line": 40
112
+ "line": 41
107
113
  }
108
114
  },
109
115
  "projen.typescript": {
110
116
  "locationInModule": {
111
117
  "filename": "src/index.ts",
112
- "line": 48
118
+ "line": 49
113
119
  }
114
120
  },
115
121
  "projen.vscode": {
116
122
  "locationInModule": {
117
123
  "filename": "src/index.ts",
118
- "line": 43
124
+ "line": 44
119
125
  }
120
126
  },
121
127
  "projen.web": {
122
128
  "locationInModule": {
123
129
  "filename": "src/index.ts",
124
- "line": 41
130
+ "line": 42
125
131
  }
126
132
  }
127
133
  },
@@ -152,7 +158,7 @@
152
158
  "kind": "enum",
153
159
  "locationInModule": {
154
160
  "filename": "src/node-project.ts",
155
- "line": 297
161
+ "line": 302
156
162
  },
157
163
  "members": [
158
164
  {
@@ -180,7 +186,7 @@
180
186
  "custom": {
181
187
  "pjid": "awscdk-construct"
182
188
  },
183
- "remarks": "A multi-language (jsii) construct library which vends constructs designed to\nuse within the AWS CDK with a friendly workflow and automatic publishing to\nthe construct catalog.\n\n```ts\nconst project = new ConstructLibraryAws({\n name: 'cdk-watchful',\n description: 'Watching your CDK apps since 2019',\n jsiiVersion: Semver.caret('1.7.0'),\n authorName: 'Elad Ben-Israel',\n authorEmail: 'elad.benisrael@gmail.com',\n repository: 'https://github.com/eladb/cdk-watchful.git',\n keywords: [\n \"cloudwatch\",\n \"monitoring\"\n ],\n\n catalog: {\n twitter: 'emeshbi'\n },\n\n // creates PRs for projen upgrades\n projenUpgradeSecret: 'PROJEN_GITHUB_TOKEN',\n\n cdkVersion: '1.54.0',\n cdkDependencies: [\n \"@aws-cdk/aws-apigateway\",\n \"@aws-cdk/aws-cloudwatch\",\n \"@aws-cdk/aws-cloudwatch-actions\",\n \"@aws-cdk/aws-dynamodb\",\n \"@aws-cdk/aws-ecs\",\n \"@aws-cdk/aws-ecs-patterns\",\n \"@aws-cdk/aws-elasticloadbalancingv2\",\n \"@aws-cdk/aws-events\",\n \"@aws-cdk/aws-events-targets\",\n \"@aws-cdk/aws-lambda\",\n \"@aws-cdk/aws-rds\",\n \"@aws-cdk/aws-sns\",\n \"@aws-cdk/aws-sns-subscriptions\",\n \"@aws-cdk/aws-sqs\",\n \"@aws-cdk/core\"\n ],\n devDependencies: {\n \"aws-sdk\": Semver.caret(\"2.708.0\")\n },\n\n // jsii publishing\n\n java: {\n javaPackage: 'io.github.cdklabs.watchful',\n mavenGroupId: 'io.github.cdklabs',\n mavenArtifactId: 'cdk-watchful'\n },\n python: {\n distName: 'cdk-watchful',\n module: 'cdk_watchful'\n }\n});\n\nproject.synth();\n```",
189
+ "remarks": "A multi-language (jsii) construct library which vends constructs designed to\nuse within the AWS CDK with a friendly workflow and automatic publishing to\nthe construct catalog.",
184
190
  "stability": "experimental",
185
191
  "summary": "AWS CDK construct library project."
186
192
  },
@@ -191,7 +197,7 @@
191
197
  },
192
198
  "locationInModule": {
193
199
  "filename": "src/awscdk-construct.ts",
194
- "line": 151
200
+ "line": 111
195
201
  },
196
202
  "parameters": [
197
203
  {
@@ -205,7 +211,7 @@
205
211
  "kind": "class",
206
212
  "locationInModule": {
207
213
  "filename": "src/awscdk-construct.ts",
208
- "line": 140
214
+ "line": 100
209
215
  },
210
216
  "methods": [
211
217
  {
@@ -216,7 +222,7 @@
216
222
  },
217
223
  "locationInModule": {
218
224
  "filename": "src/awscdk-construct.ts",
219
- "line": 209
225
+ "line": 178
220
226
  },
221
227
  "name": "addCdkDependencies",
222
228
  "parameters": [
@@ -240,7 +246,7 @@
240
246
  },
241
247
  "locationInModule": {
242
248
  "filename": "src/awscdk-construct.ts",
243
- "line": 225
249
+ "line": 194
244
250
  },
245
251
  "name": "addCdkTestDependencies",
246
252
  "parameters": [
@@ -268,7 +274,7 @@
268
274
  "immutable": true,
269
275
  "locationInModule": {
270
276
  "filename": "src/awscdk-construct.ts",
271
- "line": 149
277
+ "line": 109
272
278
  },
273
279
  "name": "cdkDependenciesAsDeps",
274
280
  "type": {
@@ -283,7 +289,7 @@
283
289
  "immutable": true,
284
290
  "locationInModule": {
285
291
  "filename": "src/awscdk-construct.ts",
286
- "line": 144
292
+ "line": 104
287
293
  },
288
294
  "name": "cdkVersion",
289
295
  "type": {
@@ -298,7 +304,7 @@
298
304
  "immutable": true,
299
305
  "locationInModule": {
300
306
  "filename": "src/awscdk-construct.ts",
301
- "line": 192
307
+ "line": 161
302
308
  },
303
309
  "name": "version",
304
310
  "type": {
@@ -322,7 +328,7 @@
322
328
  "kind": "interface",
323
329
  "locationInModule": {
324
330
  "filename": "src/awscdk-construct.ts",
325
- "line": 7
331
+ "line": 8
326
332
  },
327
333
  "name": "AwsCdkConstructLibraryOptions",
328
334
  "properties": [
@@ -339,7 +345,7 @@
339
345
  "immutable": true,
340
346
  "locationInModule": {
341
347
  "filename": "src/awscdk-construct.ts",
342
- "line": 14
348
+ "line": 15
343
349
  },
344
350
  "name": "cdkVersion",
345
351
  "type": {
@@ -356,7 +362,7 @@
356
362
  "immutable": true,
357
363
  "locationInModule": {
358
364
  "filename": "src/awscdk-construct.ts",
359
- "line": 64
365
+ "line": 65
360
366
  },
361
367
  "name": "cdkAssert",
362
368
  "optional": true,
@@ -376,7 +382,7 @@
376
382
  "immutable": true,
377
383
  "locationInModule": {
378
384
  "filename": "src/awscdk-construct.ts",
379
- "line": 45
385
+ "line": 46
380
386
  },
381
387
  "name": "cdkDependencies",
382
388
  "optional": true,
@@ -400,7 +406,7 @@
400
406
  "immutable": true,
401
407
  "locationInModule": {
402
408
  "filename": "src/awscdk-construct.ts",
403
- "line": 58
409
+ "line": 59
404
410
  },
405
411
  "name": "cdkDependenciesAsDeps",
406
412
  "optional": true,
@@ -420,7 +426,7 @@
420
426
  "immutable": true,
421
427
  "locationInModule": {
422
428
  "filename": "src/awscdk-construct.ts",
423
- "line": 70
429
+ "line": 71
424
430
  },
425
431
  "name": "cdkTestDependencies",
426
432
  "optional": true,
@@ -444,7 +450,7 @@
444
450
  "immutable": true,
445
451
  "locationInModule": {
446
452
  "filename": "src/awscdk-construct.ts",
447
- "line": 38
453
+ "line": 39
448
454
  },
449
455
  "name": "cdkVersionPinning",
450
456
  "optional": true,
@@ -463,13 +469,49 @@
463
469
  "immutable": true,
464
470
  "locationInModule": {
465
471
  "filename": "src/awscdk-construct.ts",
466
- "line": 28
472
+ "line": 29
467
473
  },
468
474
  "name": "constructsVersion",
469
475
  "optional": true,
470
476
  "type": {
471
477
  "primitive": "string"
472
478
  }
479
+ },
480
+ {
481
+ "abstract": true,
482
+ "docs": {
483
+ "default": "true",
484
+ "stability": "experimental",
485
+ "summary": "Automatically adds an `aws_lambda.Function` for each `.lambda.ts` handler in your source tree. If this is disabled, you either need to explicitly call `aws_lambda.Function.autoDiscover()` or define a `new aws_lambda.Function()` for each handler."
486
+ },
487
+ "immutable": true,
488
+ "locationInModule": {
489
+ "filename": "src/awscdk-construct.ts",
490
+ "line": 81
491
+ },
492
+ "name": "lambdaAutoDiscover",
493
+ "optional": true,
494
+ "type": {
495
+ "primitive": "boolean"
496
+ }
497
+ },
498
+ {
499
+ "abstract": true,
500
+ "docs": {
501
+ "default": "- default options",
502
+ "stability": "experimental",
503
+ "summary": "Common options for all AWS Lambda functions."
504
+ },
505
+ "immutable": true,
506
+ "locationInModule": {
507
+ "filename": "src/awscdk-construct.ts",
508
+ "line": 88
509
+ },
510
+ "name": "lambdaOptions",
511
+ "optional": true,
512
+ "type": {
513
+ "fqn": "projen.awscdk.LambdaFunctionCommonOptions"
514
+ }
473
515
  }
474
516
  ],
475
517
  "symbolId": "src/awscdk-construct:AwsCdkConstructLibraryOptions"
@@ -491,7 +533,7 @@
491
533
  },
492
534
  "locationInModule": {
493
535
  "filename": "src/awscdk-app-ts.ts",
494
- "line": 91
536
+ "line": 85
495
537
  },
496
538
  "parameters": [
497
539
  {
@@ -505,7 +547,7 @@
505
547
  "kind": "class",
506
548
  "locationInModule": {
507
549
  "filename": "src/awscdk-app-ts.ts",
508
- "line": 75
550
+ "line": 64
509
551
  },
510
552
  "methods": [
511
553
  {
@@ -515,7 +557,7 @@
515
557
  },
516
558
  "locationInModule": {
517
559
  "filename": "src/awscdk-app-ts.ts",
518
- "line": 195
560
+ "line": 167
519
561
  },
520
562
  "name": "addCdkDependency",
521
563
  "parameters": [
@@ -543,7 +585,7 @@
543
585
  "immutable": true,
544
586
  "locationInModule": {
545
587
  "filename": "src/awscdk-app-ts.ts",
546
- "line": 89
588
+ "line": 73
547
589
  },
548
590
  "name": "appEntrypoint",
549
591
  "type": {
@@ -553,16 +595,31 @@
553
595
  {
554
596
  "docs": {
555
597
  "stability": "experimental",
556
- "summary": "Contents of `cdk.json`."
598
+ "summary": "cdk.json configuration."
557
599
  },
558
600
  "immutable": true,
559
601
  "locationInModule": {
560
602
  "filename": "src/awscdk-app-ts.ts",
561
- "line": 84
603
+ "line": 83
562
604
  },
563
605
  "name": "cdkConfig",
564
606
  "type": {
565
- "primitive": "any"
607
+ "fqn": "projen.awscdk.CdkConfig"
608
+ }
609
+ },
610
+ {
611
+ "docs": {
612
+ "stability": "experimental",
613
+ "summary": "Common CDK tasks."
614
+ },
615
+ "immutable": true,
616
+ "locationInModule": {
617
+ "filename": "src/awscdk-app-ts.ts",
618
+ "line": 78
619
+ },
620
+ "name": "cdkTasks",
621
+ "type": {
622
+ "fqn": "projen.awscdk.CdkTasks"
566
623
  }
567
624
  },
568
625
  {
@@ -573,7 +630,7 @@
573
630
  "immutable": true,
574
631
  "locationInModule": {
575
632
  "filename": "src/awscdk-app-ts.ts",
576
- "line": 79
633
+ "line": 68
577
634
  },
578
635
  "name": "cdkVersion",
579
636
  "type": {
@@ -591,12 +648,13 @@
591
648
  },
592
649
  "fqn": "projen.AwsCdkTypeScriptAppOptions",
593
650
  "interfaces": [
594
- "projen.TypeScriptProjectOptions"
651
+ "projen.TypeScriptProjectOptions",
652
+ "projen.awscdk.CdkConfigCommonOptions"
595
653
  ],
596
654
  "kind": "interface",
597
655
  "locationInModule": {
598
656
  "filename": "src/awscdk-app-ts.ts",
599
- "line": 22
657
+ "line": 9
600
658
  },
601
659
  "name": "AwsCdkTypeScriptAppOptions",
602
660
  "properties": [
@@ -613,7 +671,7 @@
613
671
  "immutable": true,
614
672
  "locationInModule": {
615
673
  "filename": "src/awscdk-app-ts.ts",
616
- "line": 29
674
+ "line": 16
617
675
  },
618
676
  "name": "cdkVersion",
619
677
  "type": {
@@ -630,7 +688,7 @@
630
688
  "immutable": true,
631
689
  "locationInModule": {
632
690
  "filename": "src/awscdk-app-ts.ts",
633
- "line": 58
691
+ "line": 40
634
692
  },
635
693
  "name": "appEntrypoint",
636
694
  "optional": true,
@@ -650,7 +708,7 @@
650
708
  "immutable": true,
651
709
  "locationInModule": {
652
710
  "filename": "src/awscdk-app-ts.ts",
653
- "line": 45
711
+ "line": 32
654
712
  },
655
713
  "name": "cdkDependencies",
656
714
  "optional": true,
@@ -674,7 +732,7 @@
674
732
  "immutable": true,
675
733
  "locationInModule": {
676
734
  "filename": "src/awscdk-app-ts.ts",
677
- "line": 39
735
+ "line": 26
678
736
  },
679
737
  "name": "cdkVersionPinning",
680
738
  "optional": true,
@@ -685,41 +743,37 @@
685
743
  {
686
744
  "abstract": true,
687
745
  "docs": {
746
+ "default": "true",
688
747
  "stability": "experimental",
689
- "summary": "Additional context to include in `cdk.json`."
748
+ "summary": "Automatically adds an `awscdk.LambdaFunction` for each `.lambda.ts` handler in your source tree. If this is disabled, you can manually add an `awscdk.AutoDiscover` component to your project."
690
749
  },
691
750
  "immutable": true,
692
751
  "locationInModule": {
693
752
  "filename": "src/awscdk-app-ts.ts",
694
- "line": 50
753
+ "line": 49
695
754
  },
696
- "name": "context",
755
+ "name": "lambdaAutoDiscover",
697
756
  "optional": true,
698
757
  "type": {
699
- "collection": {
700
- "elementtype": {
701
- "primitive": "string"
702
- },
703
- "kind": "map"
704
- }
758
+ "primitive": "boolean"
705
759
  }
706
760
  },
707
761
  {
708
762
  "abstract": true,
709
763
  "docs": {
710
- "default": "CdkApprovalLevel.BROADENING",
764
+ "default": "- default options",
711
765
  "stability": "experimental",
712
- "summary": "To protect you against unintended changes that affect your security posture, the AWS CDK Toolkit prompts you to approve security-related changes before deploying them."
766
+ "summary": "Common options for all AWS Lambda functions."
713
767
  },
714
768
  "immutable": true,
715
769
  "locationInModule": {
716
770
  "filename": "src/awscdk-app-ts.ts",
717
- "line": 66
771
+ "line": 56
718
772
  },
719
- "name": "requireApproval",
773
+ "name": "lambdaOptions",
720
774
  "optional": true,
721
775
  "type": {
722
- "fqn": "projen.CdkApprovalLevel"
776
+ "fqn": "projen.awscdk.LambdaFunctionCommonOptions"
723
777
  }
724
778
  }
725
779
  ],
@@ -1078,44 +1132,6 @@
1078
1132
  ],
1079
1133
  "symbolId": "src/cdk8s-app-ts:Cdk8sTypeScriptAppOptions"
1080
1134
  },
1081
- "projen.CdkApprovalLevel": {
1082
- "assembly": "projen",
1083
- "docs": {
1084
- "stability": "experimental"
1085
- },
1086
- "fqn": "projen.CdkApprovalLevel",
1087
- "kind": "enum",
1088
- "locationInModule": {
1089
- "filename": "src/awscdk-app-ts.ts",
1090
- "line": 8
1091
- },
1092
- "members": [
1093
- {
1094
- "docs": {
1095
- "stability": "experimental",
1096
- "summary": "Approval is never required."
1097
- },
1098
- "name": "NEVER"
1099
- },
1100
- {
1101
- "docs": {
1102
- "stability": "experimental",
1103
- "summary": "Requires approval on any IAM or security-group-related change."
1104
- },
1105
- "name": "ANY_CHANGE"
1106
- },
1107
- {
1108
- "docs": {
1109
- "remarks": "removals don't require approval",
1110
- "stability": "experimental",
1111
- "summary": "Requires approval when IAM statements or traffic rules are added;"
1112
- },
1113
- "name": "BROADENING"
1114
- }
1115
- ],
1116
- "name": "CdkApprovalLevel",
1117
- "symbolId": "src/awscdk-app-ts:CdkApprovalLevel"
1118
- },
1119
1135
  "projen.Component": {
1120
1136
  "assembly": "projen",
1121
1137
  "docs": {
@@ -1248,7 +1264,7 @@
1248
1264
  },
1249
1265
  "locationInModule": {
1250
1266
  "filename": "src/awscdk-construct.ts",
1251
- "line": 151
1267
+ "line": 111
1252
1268
  },
1253
1269
  "parameters": [
1254
1270
  {
@@ -1262,7 +1278,7 @@
1262
1278
  "kind": "class",
1263
1279
  "locationInModule": {
1264
1280
  "filename": "src/awscdk-construct.ts",
1265
- "line": 238
1281
+ "line": 207
1266
1282
  },
1267
1283
  "name": "ConstructLibraryAws",
1268
1284
  "symbolId": "src/awscdk-construct:ConstructLibraryAws"
@@ -1281,7 +1297,7 @@
1281
1297
  "kind": "interface",
1282
1298
  "locationInModule": {
1283
1299
  "filename": "src/awscdk-construct.ts",
1284
- "line": 235
1300
+ "line": 204
1285
1301
  },
1286
1302
  "name": "ConstructLibraryAwsOptions",
1287
1303
  "symbolId": "src/awscdk-construct:ConstructLibraryAwsOptions"
@@ -1701,6 +1717,134 @@
1701
1717
  ],
1702
1718
  "symbolId": "src/jest:CoverageThreshold"
1703
1719
  },
1720
+ "projen.CreateProjectOptions": {
1721
+ "assembly": "projen",
1722
+ "datatype": true,
1723
+ "docs": {
1724
+ "stability": "experimental"
1725
+ },
1726
+ "fqn": "projen.CreateProjectOptions",
1727
+ "kind": "interface",
1728
+ "locationInModule": {
1729
+ "filename": "src/projects.ts",
1730
+ "line": 7
1731
+ },
1732
+ "name": "CreateProjectOptions",
1733
+ "properties": [
1734
+ {
1735
+ "abstract": true,
1736
+ "docs": {
1737
+ "stability": "experimental",
1738
+ "summary": "Directory that the project will be generated in."
1739
+ },
1740
+ "immutable": true,
1741
+ "locationInModule": {
1742
+ "filename": "src/projects.ts",
1743
+ "line": 11
1744
+ },
1745
+ "name": "dir",
1746
+ "type": {
1747
+ "primitive": "string"
1748
+ }
1749
+ },
1750
+ {
1751
+ "abstract": true,
1752
+ "docs": {
1753
+ "example": "`projen.TypescriptProject`",
1754
+ "stability": "experimental",
1755
+ "summary": "Fully-qualified name of the project type (usually formatted as `module.ProjectType`)."
1756
+ },
1757
+ "immutable": true,
1758
+ "locationInModule": {
1759
+ "filename": "src/projects.ts",
1760
+ "line": 18
1761
+ },
1762
+ "name": "projectFqn",
1763
+ "type": {
1764
+ "primitive": "string"
1765
+ }
1766
+ },
1767
+ {
1768
+ "abstract": true,
1769
+ "docs": {
1770
+ "remarks": "Only JSON-like values can be passed in (strings,\nbooleans, numbers, enums, arrays, and objects that are not\nderived from classes).\n\nConsult the API reference of the project type you are generating for\ninformation about what fields and types are available.",
1771
+ "stability": "experimental",
1772
+ "summary": "Project options."
1773
+ },
1774
+ "immutable": true,
1775
+ "locationInModule": {
1776
+ "filename": "src/projects.ts",
1777
+ "line": 28
1778
+ },
1779
+ "name": "projectOptions",
1780
+ "type": {
1781
+ "collection": {
1782
+ "elementtype": {
1783
+ "primitive": "any"
1784
+ },
1785
+ "kind": "map"
1786
+ }
1787
+ }
1788
+ },
1789
+ {
1790
+ "abstract": true,
1791
+ "docs": {
1792
+ "default": "NewProjectOptionHints.FEATURED",
1793
+ "remarks": "Does not apply to projenrc.json files.",
1794
+ "stability": "experimental",
1795
+ "summary": "Should we render commented-out default options in the projenrc file?"
1796
+ },
1797
+ "immutable": true,
1798
+ "locationInModule": {
1799
+ "filename": "src/projects.ts",
1800
+ "line": 36
1801
+ },
1802
+ "name": "optionHints",
1803
+ "optional": true,
1804
+ "type": {
1805
+ "fqn": "projen.NewProjectOptionHints"
1806
+ }
1807
+ },
1808
+ {
1809
+ "abstract": true,
1810
+ "docs": {
1811
+ "default": "true",
1812
+ "remarks": "(usually package manager install).",
1813
+ "stability": "experimental",
1814
+ "summary": "Should we execute post synthesis hooks?"
1815
+ },
1816
+ "immutable": true,
1817
+ "locationInModule": {
1818
+ "filename": "src/projects.ts",
1819
+ "line": 51
1820
+ },
1821
+ "name": "post",
1822
+ "optional": true,
1823
+ "type": {
1824
+ "primitive": "boolean"
1825
+ }
1826
+ },
1827
+ {
1828
+ "abstract": true,
1829
+ "docs": {
1830
+ "default": "true",
1831
+ "stability": "experimental",
1832
+ "summary": "Should we call `project.synth()` or instantiate the project (could still have side-effects) and render the .projenrc file."
1833
+ },
1834
+ "immutable": true,
1835
+ "locationInModule": {
1836
+ "filename": "src/projects.ts",
1837
+ "line": 44
1838
+ },
1839
+ "name": "synth",
1840
+ "optional": true,
1841
+ "type": {
1842
+ "primitive": "boolean"
1843
+ }
1844
+ }
1845
+ ],
1846
+ "symbolId": "src/projects:CreateProjectOptions"
1847
+ },
1704
1848
  "projen.DevEnvironmentDockerImage": {
1705
1849
  "assembly": "projen",
1706
1850
  "docs": {
@@ -3087,7 +3231,8 @@
3087
3231
  "assembly": "projen",
3088
3232
  "base": "projen.Component",
3089
3233
  "docs": {
3090
- "stability": "experimental"
3234
+ "stability": "experimental",
3235
+ "summary": "Represents eslint configuration."
3091
3236
  },
3092
3237
  "fqn": "projen.Eslint",
3093
3238
  "initializer": {
@@ -3096,7 +3241,7 @@
3096
3241
  },
3097
3242
  "locationInModule": {
3098
3243
  "filename": "src/eslint.ts",
3099
- "line": 103
3244
+ "line": 123
3100
3245
  },
3101
3246
  "parameters": [
3102
3247
  {
@@ -3116,9 +3261,35 @@
3116
3261
  "kind": "class",
3117
3262
  "locationInModule": {
3118
3263
  "filename": "src/eslint.ts",
3119
- "line": 80
3264
+ "line": 91
3120
3265
  },
3121
3266
  "methods": [
3267
+ {
3268
+ "docs": {
3269
+ "stability": "experimental",
3270
+ "summary": "Returns the singletone Eslint component of a project or undefined if there is none."
3271
+ },
3272
+ "locationInModule": {
3273
+ "filename": "src/eslint.ts",
3274
+ "line": 96
3275
+ },
3276
+ "name": "of",
3277
+ "parameters": [
3278
+ {
3279
+ "name": "project",
3280
+ "type": {
3281
+ "fqn": "projen.Project"
3282
+ }
3283
+ }
3284
+ ],
3285
+ "returns": {
3286
+ "optional": true,
3287
+ "type": {
3288
+ "fqn": "projen.Eslint"
3289
+ }
3290
+ },
3291
+ "static": true
3292
+ },
3122
3293
  {
3123
3294
  "docs": {
3124
3295
  "stability": "experimental",
@@ -3126,7 +3297,7 @@
3126
3297
  },
3127
3298
  "locationInModule": {
3128
3299
  "filename": "src/eslint.ts",
3129
- "line": 364
3300
+ "line": 385
3130
3301
  },
3131
3302
  "name": "addIgnorePattern",
3132
3303
  "parameters": [
@@ -3145,7 +3316,7 @@
3145
3316
  },
3146
3317
  "locationInModule": {
3147
3318
  "filename": "src/eslint.ts",
3148
- "line": 357
3319
+ "line": 378
3149
3320
  },
3150
3321
  "name": "addOverride",
3151
3322
  "parameters": [
@@ -3164,7 +3335,7 @@
3164
3335
  },
3165
3336
  "locationInModule": {
3166
3337
  "filename": "src/eslint.ts",
3167
- "line": 348
3338
+ "line": 369
3168
3339
  },
3169
3340
  "name": "addRules",
3170
3341
  "parameters": [
@@ -3188,7 +3359,7 @@
3188
3359
  },
3189
3360
  "locationInModule": {
3190
3361
  "filename": "src/eslint.ts",
3191
- "line": 372
3362
+ "line": 393
3192
3363
  },
3193
3364
  "name": "allowDevDeps",
3194
3365
  "parameters": [
@@ -3214,7 +3385,7 @@
3214
3385
  "immutable": true,
3215
3386
  "locationInModule": {
3216
3387
  "filename": "src/eslint.ts",
3217
- "line": 94
3388
+ "line": 114
3218
3389
  },
3219
3390
  "name": "config",
3220
3391
  "type": {
@@ -3229,7 +3400,7 @@
3229
3400
  "immutable": true,
3230
3401
  "locationInModule": {
3231
3402
  "filename": "src/eslint.ts",
3232
- "line": 99
3403
+ "line": 119
3233
3404
  },
3234
3405
  "name": "ignorePatterns",
3235
3406
  "type": {
@@ -3249,7 +3420,7 @@
3249
3420
  "immutable": true,
3250
3421
  "locationInModule": {
3251
3422
  "filename": "src/eslint.ts",
3252
- "line": 89
3423
+ "line": 109
3253
3424
  },
3254
3425
  "name": "overrides",
3255
3426
  "type": {
@@ -3269,7 +3440,7 @@
3269
3440
  "immutable": true,
3270
3441
  "locationInModule": {
3271
3442
  "filename": "src/eslint.ts",
3272
- "line": 84
3443
+ "line": 104
3273
3444
  },
3274
3445
  "name": "rules",
3275
3446
  "type": {
@@ -3299,7 +3470,7 @@
3299
3470
  "kind": "interface",
3300
3471
  "locationInModule": {
3301
3472
  "filename": "src/eslint.ts",
3302
- "line": 7
3473
+ "line": 8
3303
3474
  },
3304
3475
  "name": "EslintOptions",
3305
3476
  "properties": [
@@ -3312,7 +3483,7 @@
3312
3483
  "immutable": true,
3313
3484
  "locationInModule": {
3314
3485
  "filename": "src/eslint.ts",
3315
- "line": 17
3486
+ "line": 18
3316
3487
  },
3317
3488
  "name": "dirs",
3318
3489
  "type": {
@@ -3334,7 +3505,7 @@
3334
3505
  "immutable": true,
3335
3506
  "locationInModule": {
3336
3507
  "filename": "src/eslint.ts",
3337
- "line": 62
3508
+ "line": 63
3338
3509
  },
3339
3510
  "name": "aliasExtensions",
3340
3511
  "optional": true,
@@ -3357,7 +3528,7 @@
3357
3528
  "immutable": true,
3358
3529
  "locationInModule": {
3359
3530
  "filename": "src/eslint.ts",
3360
- "line": 56
3531
+ "line": 57
3361
3532
  },
3362
3533
  "name": "aliasMap",
3363
3534
  "optional": true,
@@ -3381,7 +3552,7 @@
3381
3552
  "immutable": true,
3382
3553
  "locationInModule": {
3383
3554
  "filename": "src/eslint.ts",
3384
- "line": 24
3555
+ "line": 25
3385
3556
  },
3386
3557
  "name": "devdirs",
3387
3558
  "optional": true,
@@ -3404,7 +3575,7 @@
3404
3575
  "immutable": true,
3405
3576
  "locationInModule": {
3406
3577
  "filename": "src/eslint.ts",
3407
- "line": 30
3578
+ "line": 31
3408
3579
  },
3409
3580
  "name": "fileExtensions",
3410
3581
  "optional": true,
@@ -3427,7 +3598,7 @@
3427
3598
  "immutable": true,
3428
3599
  "locationInModule": {
3429
3600
  "filename": "src/eslint.ts",
3430
- "line": 38
3601
+ "line": 39
3431
3602
  },
3432
3603
  "name": "ignorePatterns",
3433
3604
  "optional": true,
@@ -3450,7 +3621,7 @@
3450
3621
  "immutable": true,
3451
3622
  "locationInModule": {
3452
3623
  "filename": "src/eslint.ts",
3453
- "line": 44
3624
+ "line": 45
3454
3625
  },
3455
3626
  "name": "lintProjenRc",
3456
3627
  "optional": true,
@@ -3468,7 +3639,7 @@
3468
3639
  "immutable": true,
3469
3640
  "locationInModule": {
3470
3641
  "filename": "src/eslint.ts",
3471
- "line": 50
3642
+ "line": 51
3472
3643
  },
3473
3644
  "name": "prettier",
3474
3645
  "optional": true,
@@ -3476,6 +3647,25 @@
3476
3647
  "primitive": "boolean"
3477
3648
  }
3478
3649
  },
3650
+ {
3651
+ "abstract": true,
3652
+ "docs": {
3653
+ "default": "true",
3654
+ "remarks": "This prevents `import/no-unresolved` eslint errors when importing a `@types/*` module that would otherwise remain unresolved.",
3655
+ "stability": "experimental",
3656
+ "summary": "Always try to resolve types under `<root>@types` directory even it doesn't contain any source code."
3657
+ },
3658
+ "immutable": true,
3659
+ "locationInModule": {
3660
+ "filename": "src/eslint.ts",
3661
+ "line": 70
3662
+ },
3663
+ "name": "tsAlwaysTryTypes",
3664
+ "optional": true,
3665
+ "type": {
3666
+ "primitive": "boolean"
3667
+ }
3668
+ },
3479
3669
  {
3480
3670
  "abstract": true,
3481
3671
  "docs": {
@@ -3486,7 +3676,7 @@
3486
3676
  "immutable": true,
3487
3677
  "locationInModule": {
3488
3678
  "filename": "src/eslint.ts",
3489
- "line": 12
3679
+ "line": 13
3490
3680
  },
3491
3681
  "name": "tsconfigPath",
3492
3682
  "optional": true,
@@ -3508,7 +3698,7 @@
3508
3698
  "kind": "interface",
3509
3699
  "locationInModule": {
3510
3700
  "filename": "src/eslint.ts",
3511
- "line": 68
3701
+ "line": 76
3512
3702
  },
3513
3703
  "name": "EslintOverride",
3514
3704
  "properties": [
@@ -3521,7 +3711,7 @@
3521
3711
  "immutable": true,
3522
3712
  "locationInModule": {
3523
3713
  "filename": "src/eslint.ts",
3524
- "line": 72
3714
+ "line": 80
3525
3715
  },
3526
3716
  "name": "files",
3527
3717
  "type": {
@@ -3542,7 +3732,7 @@
3542
3732
  "immutable": true,
3543
3733
  "locationInModule": {
3544
3734
  "filename": "src/eslint.ts",
3545
- "line": 77
3735
+ "line": 85
3546
3736
  },
3547
3737
  "name": "rules",
3548
3738
  "type": {
@@ -10309,7 +10499,7 @@
10309
10499
  },
10310
10500
  "locationInModule": {
10311
10501
  "filename": "src/node-project.ts",
10312
- "line": 432
10502
+ "line": 439
10313
10503
  },
10314
10504
  "parameters": [
10315
10505
  {
@@ -10323,7 +10513,7 @@
10323
10513
  "kind": "class",
10324
10514
  "locationInModule": {
10325
10515
  "filename": "src/node-project.ts",
10326
- "line": 312
10516
+ "line": 317
10327
10517
  },
10328
10518
  "methods": [
10329
10519
  {
@@ -10332,7 +10522,7 @@
10332
10522
  },
10333
10523
  "locationInModule": {
10334
10524
  "filename": "src/node-project.ts",
10335
- "line": 784
10525
+ "line": 797
10336
10526
  },
10337
10527
  "name": "addBins",
10338
10528
  "parameters": [
@@ -10357,7 +10547,7 @@
10357
10547
  },
10358
10548
  "locationInModule": {
10359
10549
  "filename": "src/node-project.ts",
10360
- "line": 838
10550
+ "line": 851
10361
10551
  },
10362
10552
  "name": "addBuildCommand",
10363
10553
  "parameters": [
@@ -10379,7 +10569,7 @@
10379
10569
  },
10380
10570
  "locationInModule": {
10381
10571
  "filename": "src/node-project.ts",
10382
- "line": 947
10572
+ "line": 960
10383
10573
  },
10384
10574
  "name": "addBundledDeps",
10385
10575
  "parameters": [
@@ -10405,7 +10595,7 @@
10405
10595
  },
10406
10596
  "locationInModule": {
10407
10597
  "filename": "src/node-project.ts",
10408
- "line": 818
10598
+ "line": 831
10409
10599
  },
10410
10600
  "name": "addCompileCommand",
10411
10601
  "parameters": [
@@ -10426,7 +10616,7 @@
10426
10616
  },
10427
10617
  "locationInModule": {
10428
10618
  "filename": "src/node-project.ts",
10429
- "line": 901
10619
+ "line": 914
10430
10620
  },
10431
10621
  "name": "addDeps",
10432
10622
  "parameters": [
@@ -10451,7 +10641,7 @@
10451
10641
  },
10452
10642
  "locationInModule": {
10453
10643
  "filename": "src/node-project.ts",
10454
- "line": 914
10644
+ "line": 927
10455
10645
  },
10456
10646
  "name": "addDevDeps",
10457
10647
  "parameters": [
@@ -10476,7 +10666,7 @@
10476
10666
  },
10477
10667
  "locationInModule": {
10478
10668
  "filename": "src/node-project.ts",
10479
- "line": 848
10669
+ "line": 861
10480
10670
  },
10481
10671
  "name": "addFields",
10482
10672
  "parameters": [
@@ -10503,7 +10693,7 @@
10503
10693
  },
10504
10694
  "locationInModule": {
10505
10695
  "filename": "src/node-project.ts",
10506
- "line": 858
10696
+ "line": 871
10507
10697
  },
10508
10698
  "name": "addKeywords",
10509
10699
  "parameters": [
@@ -10528,7 +10718,7 @@
10528
10718
  },
10529
10719
  "locationInModule": {
10530
10720
  "filename": "src/node-project.ts",
10531
- "line": 951
10721
+ "line": 964
10532
10722
  },
10533
10723
  "name": "addPackageIgnore",
10534
10724
  "overrides": "projen.Project",
@@ -10549,7 +10739,7 @@
10549
10739
  },
10550
10740
  "locationInModule": {
10551
10741
  "filename": "src/node-project.ts",
10552
- "line": 931
10742
+ "line": 944
10553
10743
  },
10554
10744
  "name": "addPeerDeps",
10555
10745
  "parameters": [
@@ -10575,7 +10765,7 @@
10575
10765
  },
10576
10766
  "locationInModule": {
10577
10767
  "filename": "src/node-project.ts",
10578
- "line": 828
10768
+ "line": 841
10579
10769
  },
10580
10770
  "name": "addTestCommand",
10581
10771
  "parameters": [
@@ -10596,7 +10786,7 @@
10596
10786
  },
10597
10787
  "locationInModule": {
10598
10788
  "filename": "src/node-project.ts",
10599
- "line": 810
10789
+ "line": 823
10600
10790
  },
10601
10791
  "name": "hasScript",
10602
10792
  "parameters": [
@@ -10623,7 +10813,7 @@
10623
10813
  },
10624
10814
  "locationInModule": {
10625
10815
  "filename": "src/node-project.ts",
10626
- "line": 802
10816
+ "line": 815
10627
10817
  },
10628
10818
  "name": "removeScript",
10629
10819
  "parameters": [
@@ -10646,7 +10836,7 @@
10646
10836
  },
10647
10837
  "locationInModule": {
10648
10838
  "filename": "src/node-project.ts",
10649
- "line": 1025
10839
+ "line": 1038
10650
10840
  },
10651
10841
  "name": "runTaskCommand",
10652
10842
  "overrides": "projen.Project",
@@ -10674,7 +10864,7 @@
10674
10864
  },
10675
10865
  "locationInModule": {
10676
10866
  "filename": "src/node-project.ts",
10677
- "line": 794
10867
+ "line": 807
10678
10868
  },
10679
10869
  "name": "setScript",
10680
10870
  "parameters": [
@@ -10709,7 +10899,7 @@
10709
10899
  "immutable": true,
10710
10900
  "locationInModule": {
10711
10901
  "filename": "src/node-project.ts",
10712
- "line": 326
10902
+ "line": 331
10713
10903
  },
10714
10904
  "name": "allowLibraryDependencies",
10715
10905
  "type": {
@@ -10724,7 +10914,7 @@
10724
10914
  "immutable": true,
10725
10915
  "locationInModule": {
10726
10916
  "filename": "src/node-project.ts",
10727
- "line": 388
10917
+ "line": 393
10728
10918
  },
10729
10919
  "name": "antitamper",
10730
10920
  "type": {
@@ -10740,13 +10930,27 @@
10740
10930
  "immutable": true,
10741
10931
  "locationInModule": {
10742
10932
  "filename": "src/node-project.ts",
10743
- "line": 346
10933
+ "line": 351
10744
10934
  },
10745
10935
  "name": "buildTask",
10746
10936
  "type": {
10747
10937
  "fqn": "projen.tasks.Task"
10748
10938
  }
10749
10939
  },
10940
+ {
10941
+ "docs": {
10942
+ "stability": "experimental"
10943
+ },
10944
+ "immutable": true,
10945
+ "locationInModule": {
10946
+ "filename": "src/node-project.ts",
10947
+ "line": 434
10948
+ },
10949
+ "name": "bundler",
10950
+ "type": {
10951
+ "fqn": "projen.javascript.Bundler"
10952
+ }
10953
+ },
10750
10954
  {
10751
10955
  "docs": {
10752
10956
  "remarks": "By default for node.js projects this task is empty.",
@@ -10756,7 +10960,7 @@
10756
10960
  "immutable": true,
10757
10961
  "locationInModule": {
10758
10962
  "filename": "src/node-project.ts",
10759
- "line": 336
10963
+ "line": 341
10760
10964
  },
10761
10965
  "name": "compileTask",
10762
10966
  "type": {
@@ -10771,7 +10975,7 @@
10771
10975
  "immutable": true,
10772
10976
  "locationInModule": {
10773
10977
  "filename": "src/node-project.ts",
10774
- "line": 331
10978
+ "line": 336
10775
10979
  },
10776
10980
  "name": "entrypoint",
10777
10981
  "type": {
@@ -10785,7 +10989,7 @@
10785
10989
  "immutable": true,
10786
10990
  "locationInModule": {
10787
10991
  "filename": "src/node-project.ts",
10788
- "line": 862
10992
+ "line": 875
10789
10993
  },
10790
10994
  "name": "installWorkflowSteps",
10791
10995
  "type": {
@@ -10805,7 +11009,7 @@
10805
11009
  "immutable": true,
10806
11010
  "locationInModule": {
10807
11011
  "filename": "src/node-project.ts",
10808
- "line": 425
11012
+ "line": 430
10809
11013
  },
10810
11014
  "name": "manifest",
10811
11015
  "type": {
@@ -10820,7 +11024,7 @@
10820
11024
  "immutable": true,
10821
11025
  "locationInModule": {
10822
11026
  "filename": "src/node-project.ts",
10823
- "line": 393
11027
+ "line": 398
10824
11028
  },
10825
11029
  "name": "npmDistTag",
10826
11030
  "protected": true,
@@ -10836,7 +11040,7 @@
10836
11040
  "immutable": true,
10837
11041
  "locationInModule": {
10838
11042
  "filename": "src/node-project.ts",
10839
- "line": 398
11043
+ "line": 403
10840
11044
  },
10841
11045
  "name": "npmRegistry",
10842
11046
  "protected": true,
@@ -10852,7 +11056,7 @@
10852
11056
  "immutable": true,
10853
11057
  "locationInModule": {
10854
11058
  "filename": "src/node-project.ts",
10855
- "line": 316
11059
+ "line": 321
10856
11060
  },
10857
11061
  "name": "package",
10858
11062
  "type": {
@@ -10868,7 +11072,7 @@
10868
11072
  "immutable": true,
10869
11073
  "locationInModule": {
10870
11074
  "filename": "src/node-project.ts",
10871
- "line": 405
11075
+ "line": 410
10872
11076
  },
10873
11077
  "name": "packageManager",
10874
11078
  "type": {
@@ -10883,7 +11087,7 @@
10883
11087
  "immutable": true,
10884
11088
  "locationInModule": {
10885
11089
  "filename": "src/node-project.ts",
10886
- "line": 420
11090
+ "line": 425
10887
11091
  },
10888
11092
  "name": "projenCommand",
10889
11093
  "type": {
@@ -10898,7 +11102,7 @@
10898
11102
  "immutable": true,
10899
11103
  "locationInModule": {
10900
11104
  "filename": "src/node-project.ts",
10901
- "line": 410
11105
+ "line": 415
10902
11106
  },
10903
11107
  "name": "runScriptCommand",
10904
11108
  "type": {
@@ -10913,7 +11117,7 @@
10913
11117
  "immutable": true,
10914
11118
  "locationInModule": {
10915
11119
  "filename": "src/node-project.ts",
10916
- "line": 341
11120
+ "line": 346
10917
11121
  },
10918
11122
  "name": "testTask",
10919
11123
  "type": {
@@ -10928,7 +11132,7 @@
10928
11132
  "immutable": true,
10929
11133
  "locationInModule": {
10930
11134
  "filename": "src/node-project.ts",
10931
- "line": 351
11135
+ "line": 356
10932
11136
  },
10933
11137
  "name": "autoMerge",
10934
11138
  "optional": true,
@@ -10945,7 +11149,7 @@
10945
11149
  "immutable": true,
10946
11150
  "locationInModule": {
10947
11151
  "filename": "src/node-project.ts",
10948
- "line": 357
11152
+ "line": 362
10949
11153
  },
10950
11154
  "name": "buildWorkflow",
10951
11155
  "optional": true,
@@ -10960,7 +11164,7 @@
10960
11164
  "immutable": true,
10961
11165
  "locationInModule": {
10962
11166
  "filename": "src/node-project.ts",
10963
- "line": 358
11167
+ "line": 363
10964
11168
  },
10965
11169
  "name": "buildWorkflowJobId",
10966
11170
  "optional": true,
@@ -10976,7 +11180,7 @@
10976
11180
  "immutable": true,
10977
11181
  "locationInModule": {
10978
11182
  "filename": "src/node-project.ts",
10979
- "line": 415
11183
+ "line": 420
10980
11184
  },
10981
11185
  "name": "jest",
10982
11186
  "optional": true,
@@ -10992,7 +11196,7 @@
10992
11196
  "immutable": true,
10993
11197
  "locationInModule": {
10994
11198
  "filename": "src/node-project.ts",
10995
- "line": 381
11199
+ "line": 386
10996
11200
  },
10997
11201
  "name": "maxNodeVersion",
10998
11202
  "optional": true,
@@ -11008,7 +11212,7 @@
11008
11212
  "immutable": true,
11009
11213
  "locationInModule": {
11010
11214
  "filename": "src/node-project.ts",
11011
- "line": 376
11215
+ "line": 381
11012
11216
  },
11013
11217
  "name": "minNodeVersion",
11014
11218
  "optional": true,
@@ -11024,7 +11228,7 @@
11024
11228
  "immutable": true,
11025
11229
  "locationInModule": {
11026
11230
  "filename": "src/node-project.ts",
11027
- "line": 321
11231
+ "line": 326
11028
11232
  },
11029
11233
  "name": "npmignore",
11030
11234
  "optional": true,
@@ -11042,7 +11246,7 @@
11042
11246
  "immutable": true,
11043
11247
  "locationInModule": {
11044
11248
  "filename": "src/node-project.ts",
11045
- "line": 366
11249
+ "line": 371
11046
11250
  },
11047
11251
  "name": "publisher",
11048
11252
  "optional": true,
@@ -11058,7 +11262,7 @@
11058
11262
  "immutable": true,
11059
11263
  "locationInModule": {
11060
11264
  "filename": "src/node-project.ts",
11061
- "line": 371
11265
+ "line": 376
11062
11266
  },
11063
11267
  "name": "release",
11064
11268
  "optional": true,
@@ -11161,6 +11365,23 @@
11161
11365
  "primitive": "boolean"
11162
11366
  }
11163
11367
  },
11368
+ {
11369
+ "abstract": true,
11370
+ "docs": {
11371
+ "stability": "experimental",
11372
+ "summary": "Options for `Bundler`."
11373
+ },
11374
+ "immutable": true,
11375
+ "locationInModule": {
11376
+ "filename": "src/node-project.ts",
11377
+ "line": 296
11378
+ },
11379
+ "name": "bundlerOptions",
11380
+ "optional": true,
11381
+ "type": {
11382
+ "fqn": "projen.javascript.BundlerCommonOptions"
11383
+ }
11384
+ },
11164
11385
  {
11165
11386
  "abstract": true,
11166
11387
  "docs": {
@@ -11767,7 +11988,7 @@
11767
11988
  "kind": "interface",
11768
11989
  "locationInModule": {
11769
11990
  "filename": "src/node-project.ts",
11770
- "line": 1030
11991
+ "line": 1043
11771
11992
  },
11772
11993
  "name": "NodeWorkflowSteps",
11773
11994
  "properties": [
@@ -11779,7 +12000,7 @@
11779
12000
  "immutable": true,
11780
12001
  "locationInModule": {
11781
12002
  "filename": "src/node-project.ts",
11782
- "line": 1031
12003
+ "line": 1044
11783
12004
  },
11784
12005
  "name": "antitamper",
11785
12006
  "type": {
@@ -11799,7 +12020,7 @@
11799
12020
  "immutable": true,
11800
12021
  "locationInModule": {
11801
12022
  "filename": "src/node-project.ts",
11802
- "line": 1032
12023
+ "line": 1045
11803
12024
  },
11804
12025
  "name": "install",
11805
12026
  "type": {
@@ -12867,6 +13088,44 @@
12867
13088
  "name": "ProjectType",
12868
13089
  "symbolId": "src/project:ProjectType"
12869
13090
  },
13091
+ "projen.Projects": {
13092
+ "assembly": "projen",
13093
+ "docs": {
13094
+ "stability": "experimental",
13095
+ "summary": "Programmatic API for projen."
13096
+ },
13097
+ "fqn": "projen.Projects",
13098
+ "kind": "class",
13099
+ "locationInModule": {
13100
+ "filename": "src/projects.ts",
13101
+ "line": 57
13102
+ },
13103
+ "methods": [
13104
+ {
13105
+ "docs": {
13106
+ "remarks": "This function creates the project type in-process (with in VM) and calls\n`.synth()` on it (if `options.synth` is not `false`).\n\nAt the moment, it also generates a `.projenrc.js` file with the same code\nthat was just executed. In the future, this will also be done by the project\ntype, so we can easily support multiple languages of projenrc.",
13107
+ "stability": "experimental",
13108
+ "summary": "Creates a new project with defaults."
13109
+ },
13110
+ "locationInModule": {
13111
+ "filename": "src/projects.ts",
13112
+ "line": 68
13113
+ },
13114
+ "name": "createProject",
13115
+ "parameters": [
13116
+ {
13117
+ "name": "options",
13118
+ "type": {
13119
+ "fqn": "projen.CreateProjectOptions"
13120
+ }
13121
+ }
13122
+ ],
13123
+ "static": true
13124
+ }
13125
+ ],
13126
+ "name": "Projects",
13127
+ "symbolId": "src/projects:Projects"
13128
+ },
12870
13129
  "projen.ResolveOptions": {
12871
13130
  "assembly": "projen",
12872
13131
  "datatype": true,
@@ -16622,339 +16881,1387 @@
16622
16881
  "name": "YamlFileOptions",
16623
16882
  "symbolId": "src/yaml:YamlFileOptions"
16624
16883
  },
16625
- "projen.deps.Dependencies": {
16884
+ "projen.awscdk.ApprovalLevel": {
16885
+ "assembly": "projen",
16886
+ "docs": {
16887
+ "stability": "experimental",
16888
+ "summary": "Which approval is required when deploying CDK apps."
16889
+ },
16890
+ "fqn": "projen.awscdk.ApprovalLevel",
16891
+ "kind": "enum",
16892
+ "locationInModule": {
16893
+ "filename": "src/awscdk/cdk-config.ts",
16894
+ "line": 97
16895
+ },
16896
+ "members": [
16897
+ {
16898
+ "docs": {
16899
+ "stability": "experimental",
16900
+ "summary": "Approval is never required."
16901
+ },
16902
+ "name": "NEVER"
16903
+ },
16904
+ {
16905
+ "docs": {
16906
+ "stability": "experimental",
16907
+ "summary": "Requires approval on any IAM or security-group-related change."
16908
+ },
16909
+ "name": "ANY_CHANGE"
16910
+ },
16911
+ {
16912
+ "docs": {
16913
+ "remarks": "removals don't require approval",
16914
+ "stability": "experimental",
16915
+ "summary": "Requires approval when IAM statements or traffic rules are added;"
16916
+ },
16917
+ "name": "BROADENING"
16918
+ }
16919
+ ],
16920
+ "name": "ApprovalLevel",
16921
+ "namespace": "awscdk",
16922
+ "symbolId": "src/awscdk/cdk-config:ApprovalLevel"
16923
+ },
16924
+ "projen.awscdk.AutoDiscover": {
16626
16925
  "assembly": "projen",
16627
16926
  "base": "projen.Component",
16628
16927
  "docs": {
16629
- "remarks": "To add a dependency you can use a project-type specific API such as\n`nodeProject.addDeps()` or use the generic API of `project.deps`:",
16630
16928
  "stability": "experimental",
16631
- "summary": "The `Dependencies` component is responsible to track the list of dependencies a project has, and then used by project types as the model for rendering project-specific dependency manifests such as the dependencies section `package.json` files."
16929
+ "summary": "Automatically creates a `LambdaFunction` for all `.lambda.ts` files under the source directory of the project."
16632
16930
  },
16633
- "fqn": "projen.deps.Dependencies",
16931
+ "fqn": "projen.awscdk.AutoDiscover",
16634
16932
  "initializer": {
16635
16933
  "docs": {
16636
- "stability": "experimental",
16637
- "summary": "Adds a dependencies component to the project."
16934
+ "stability": "experimental"
16638
16935
  },
16639
16936
  "locationInModule": {
16640
- "filename": "src/deps/dependencies.ts",
16641
- "line": 50
16937
+ "filename": "src/awscdk/auto-discover.ts",
16938
+ "line": 35
16642
16939
  },
16643
16940
  "parameters": [
16644
16941
  {
16645
- "docs": {
16646
- "summary": "The parent project."
16647
- },
16648
16942
  "name": "project",
16649
16943
  "type": {
16650
16944
  "fqn": "projen.Project"
16651
16945
  }
16946
+ },
16947
+ {
16948
+ "name": "options",
16949
+ "type": {
16950
+ "fqn": "projen.awscdk.AutoDiscoverOptions"
16951
+ }
16652
16952
  }
16653
16953
  ]
16654
16954
  },
16655
16955
  "kind": "class",
16656
16956
  "locationInModule": {
16657
- "filename": "src/deps/dependencies.ts",
16658
- "line": 17
16957
+ "filename": "src/awscdk/auto-discover.ts",
16958
+ "line": 32
16659
16959
  },
16660
16960
  "methods": [
16661
16961
  {
16662
16962
  "docs": {
16663
- "remarks": "Given `foo@^3.4.0` returns `{ name: \"foo\", version: \"^3.4.0\" }`.\nGiven `bar@npm:@bar/legacy` returns `{ name: \"bar\", version: \"npm:@bar/legacy\" }`.",
16664
16963
  "stability": "experimental",
16665
- "summary": "Returns the coordinates of a dependency spec."
16964
+ "summary": "Called before synthesis."
16666
16965
  },
16667
16966
  "locationInModule": {
16668
- "filename": "src/deps/dependencies.ts",
16669
- "line": 29
16967
+ "filename": "src/awscdk/auto-discover.ts",
16968
+ "line": 41
16670
16969
  },
16671
- "name": "parseDependency",
16672
- "parameters": [
16673
- {
16674
- "name": "spec",
16675
- "type": {
16676
- "primitive": "string"
16677
- }
16678
- }
16679
- ],
16680
- "returns": {
16681
- "type": {
16682
- "fqn": "projen.deps.DependencyCoordinates"
16683
- }
16970
+ "name": "preSynthesize",
16971
+ "overrides": "projen.Component"
16972
+ }
16973
+ ],
16974
+ "name": "AutoDiscover",
16975
+ "namespace": "awscdk",
16976
+ "symbolId": "src/awscdk/auto-discover:AutoDiscover"
16977
+ },
16978
+ "projen.awscdk.AutoDiscoverOptions": {
16979
+ "assembly": "projen",
16980
+ "datatype": true,
16981
+ "docs": {
16982
+ "stability": "experimental",
16983
+ "summary": "Options for `AutoDiscover`."
16984
+ },
16985
+ "fqn": "projen.awscdk.AutoDiscoverOptions",
16986
+ "kind": "interface",
16987
+ "locationInModule": {
16988
+ "filename": "src/awscdk/auto-discover.ts",
16989
+ "line": 11
16990
+ },
16991
+ "name": "AutoDiscoverOptions",
16992
+ "namespace": "awscdk",
16993
+ "properties": [
16994
+ {
16995
+ "abstract": true,
16996
+ "docs": {
16997
+ "stability": "experimental",
16998
+ "summary": "Output directory (where .js files go)."
16684
16999
  },
16685
- "static": true
17000
+ "immutable": true,
17001
+ "locationInModule": {
17002
+ "filename": "src/awscdk/auto-discover.ts",
17003
+ "line": 25
17004
+ },
17005
+ "name": "libdir",
17006
+ "type": {
17007
+ "primitive": "string"
17008
+ }
16686
17009
  },
16687
17010
  {
17011
+ "abstract": true,
16688
17012
  "docs": {
16689
17013
  "stability": "experimental",
16690
- "summary": "Adds a dependency to this project."
17014
+ "summary": "Project source tree (relative to project output directory)."
16691
17015
  },
17016
+ "immutable": true,
16692
17017
  "locationInModule": {
16693
- "filename": "src/deps/dependencies.ts",
16694
- "line": 105
17018
+ "filename": "src/awscdk/auto-discover.ts",
17019
+ "line": 20
16695
17020
  },
16696
- "name": "addDependency",
16697
- "parameters": [
16698
- {
16699
- "docs": {
16700
- "summary": "The dependency spec in the format `MODULE[@VERSION]` where `MODULE` is the package-manager-specific module name and `VERSION` is an optional semantic version requirement (e.g. `^3.4.0`)."
16701
- },
16702
- "name": "spec",
16703
- "type": {
16704
- "primitive": "string"
16705
- }
16706
- },
16707
- {
16708
- "docs": {
16709
- "summary": "The type of the dependency."
16710
- },
16711
- "name": "type",
16712
- "type": {
16713
- "fqn": "projen.deps.DependencyType"
16714
- }
16715
- },
16716
- {
16717
- "name": "metadata",
16718
- "optional": true,
16719
- "type": {
16720
- "collection": {
16721
- "elementtype": {
16722
- "primitive": "any"
16723
- },
16724
- "kind": "map"
16725
- }
16726
- }
16727
- }
16728
- ],
16729
- "returns": {
16730
- "type": {
16731
- "fqn": "projen.deps.Dependency"
16732
- }
17021
+ "name": "srcdir",
17022
+ "type": {
17023
+ "primitive": "string"
16733
17024
  }
16734
17025
  },
16735
17026
  {
17027
+ "abstract": true,
16736
17028
  "docs": {
16737
- "remarks": "Fails if there is no dependency defined by that name or if `type` is not\nprovided and there is more then one dependency type for this dependency.",
16738
- "returns": "a copy (cannot be modified)",
16739
17029
  "stability": "experimental",
16740
- "summary": "Returns a dependency by name."
17030
+ "summary": "Options for auto-discovery of AWS Lambda functions."
16741
17031
  },
17032
+ "immutable": true,
16742
17033
  "locationInModule": {
16743
- "filename": "src/deps/dependencies.ts",
16744
- "line": 83
17034
+ "filename": "src/awscdk/auto-discover.ts",
17035
+ "line": 15
16745
17036
  },
16746
- "name": "getDependency",
16747
- "parameters": [
16748
- {
16749
- "docs": {
16750
- "summary": "The name of the dependency."
16751
- },
16752
- "name": "name",
16753
- "type": {
16754
- "primitive": "string"
16755
- }
16756
- },
16757
- {
16758
- "docs": {
16759
- "remarks": "If this dependency is defined only for a\nsingle type, this argument can be omitted.",
16760
- "summary": "The dependency type."
16761
- },
16762
- "name": "type",
16763
- "optional": true,
16764
- "type": {
16765
- "fqn": "projen.deps.DependencyType"
16766
- }
16767
- }
16768
- ],
16769
- "returns": {
17037
+ "name": "lambdaOptions",
17038
+ "optional": true,
17039
+ "type": {
17040
+ "fqn": "projen.awscdk.LambdaFunctionCommonOptions"
17041
+ }
17042
+ }
17043
+ ],
17044
+ "symbolId": "src/awscdk/auto-discover:AutoDiscoverOptions"
17045
+ },
17046
+ "projen.awscdk.AwsCdkJavaApp": {
17047
+ "assembly": "projen",
17048
+ "base": "projen.java.JavaProject",
17049
+ "docs": {
17050
+ "custom": {
17051
+ "pjid": "awscdk-app-java"
17052
+ },
17053
+ "stability": "experimental",
17054
+ "summary": "AWS CDK app in Java."
17055
+ },
17056
+ "fqn": "projen.awscdk.AwsCdkJavaApp",
17057
+ "initializer": {
17058
+ "docs": {
17059
+ "stability": "experimental"
17060
+ },
17061
+ "locationInModule": {
17062
+ "filename": "src/awscdk/java-app.ts",
17063
+ "line": 70
17064
+ },
17065
+ "parameters": [
17066
+ {
17067
+ "name": "options",
16770
17068
  "type": {
16771
- "fqn": "projen.deps.Dependency"
17069
+ "fqn": "projen.awscdk.AwsCdkJavaAppOptions"
16772
17070
  }
16773
17071
  }
16774
- },
17072
+ ]
17073
+ },
17074
+ "kind": "class",
17075
+ "locationInModule": {
17076
+ "filename": "src/awscdk/java-app.ts",
17077
+ "line": 39
17078
+ },
17079
+ "methods": [
16775
17080
  {
16776
17081
  "docs": {
16777
17082
  "stability": "experimental",
16778
- "summary": "Removes a dependency."
17083
+ "summary": "Adds an AWS CDK module dependencies."
16779
17084
  },
16780
17085
  "locationInModule": {
16781
- "filename": "src/deps/dependencies.ts",
16782
- "line": 137
17086
+ "filename": "src/awscdk/java-app.ts",
17087
+ "line": 114
16783
17088
  },
16784
- "name": "removeDependency",
17089
+ "name": "addCdkDependency",
16785
17090
  "parameters": [
16786
17091
  {
16787
17092
  "docs": {
16788
- "summary": "The name of the module to remove (without the version)."
17093
+ "summary": "The list of modules to depend on (e.g. \"core\", \"aws-lambda\", etc)."
16789
17094
  },
16790
- "name": "name",
17095
+ "name": "modules",
16791
17096
  "type": {
16792
17097
  "primitive": "string"
16793
- }
16794
- },
16795
- {
16796
- "docs": {
16797
- "remarks": "This is only required if there the\ndependency is defined for multiple types.",
16798
- "summary": "The dependency type."
16799
17098
  },
16800
- "name": "type",
16801
- "optional": true,
16802
- "type": {
16803
- "fqn": "projen.deps.DependencyType"
16804
- }
17099
+ "variadic": true
16805
17100
  }
16806
- ]
17101
+ ],
17102
+ "variadic": true
16807
17103
  }
16808
17104
  ],
16809
- "name": "Dependencies",
16810
- "namespace": "deps",
17105
+ "name": "AwsCdkJavaApp",
17106
+ "namespace": "awscdk",
16811
17107
  "properties": [
16812
17108
  {
16813
- "const": true,
16814
17109
  "docs": {
16815
17110
  "stability": "experimental",
16816
- "summary": "The project-relative path of the deps manifest file."
17111
+ "summary": "The `cdk.json` file."
16817
17112
  },
16818
17113
  "immutable": true,
16819
17114
  "locationInModule": {
16820
- "filename": "src/deps/dependencies.ts",
16821
- "line": 21
17115
+ "filename": "src/awscdk/java-app.ts",
17116
+ "line": 48
16822
17117
  },
16823
- "name": "MANIFEST_FILE",
16824
- "static": true,
17118
+ "name": "cdkConfig",
16825
17119
  "type": {
16826
- "primitive": "string"
17120
+ "fqn": "projen.awscdk.CdkConfig"
16827
17121
  }
16828
17122
  },
16829
17123
  {
16830
17124
  "docs": {
16831
- "remarks": "The list is sorted by type->name->version",
16832
17125
  "stability": "experimental",
16833
- "summary": "A copy of all dependencies recorded for this project."
17126
+ "summary": "CDK tasks."
16834
17127
  },
16835
17128
  "immutable": true,
16836
17129
  "locationInModule": {
16837
- "filename": "src/deps/dependencies.ts",
16838
- "line": 67
17130
+ "filename": "src/awscdk/java-app.ts",
17131
+ "line": 58
16839
17132
  },
16840
- "name": "all",
17133
+ "name": "cdkTasks",
16841
17134
  "type": {
16842
- "collection": {
16843
- "elementtype": {
16844
- "fqn": "projen.deps.Dependency"
16845
- },
16846
- "kind": "array"
16847
- }
17135
+ "fqn": "projen.awscdk.CdkTasks"
16848
17136
  }
16849
- }
16850
- ],
16851
- "symbolId": "src/deps/dependencies:Dependencies"
16852
- },
16853
- "projen.deps.Dependency": {
16854
- "assembly": "projen",
16855
- "datatype": true,
16856
- "docs": {
16857
- "stability": "experimental",
16858
- "summary": "Represents a project dependency."
16859
- },
16860
- "fqn": "projen.deps.Dependency",
16861
- "interfaces": [
16862
- "projen.deps.DependencyCoordinates"
16863
- ],
16864
- "kind": "interface",
16865
- "locationInModule": {
16866
- "filename": "src/deps/model.ts",
16867
- "line": 31
16868
- },
16869
- "name": "Dependency",
16870
- "namespace": "deps",
16871
- "properties": [
17137
+ },
16872
17138
  {
16873
- "abstract": true,
16874
17139
  "docs": {
16875
17140
  "stability": "experimental",
16876
- "summary": "Which type of dependency this is (runtime, build-time, etc)."
17141
+ "summary": "The CDK version this app is using."
16877
17142
  },
16878
17143
  "immutable": true,
16879
17144
  "locationInModule": {
16880
- "filename": "src/deps/model.ts",
16881
- "line": 36
17145
+ "filename": "src/awscdk/java-app.ts",
17146
+ "line": 43
16882
17147
  },
16883
- "name": "type",
17148
+ "name": "cdkVersion",
16884
17149
  "type": {
16885
- "fqn": "projen.deps.DependencyType"
17150
+ "primitive": "string"
16886
17151
  }
16887
17152
  },
16888
17153
  {
16889
- "abstract": true,
16890
17154
  "docs": {
16891
- "default": "{}",
16892
17155
  "stability": "experimental",
16893
- "summary": "Additional JSON metadata associated with the dependency (package manager specific)."
17156
+ "summary": "The full name of the main class of the java app (package.Class)."
16894
17157
  },
16895
17158
  "immutable": true,
16896
17159
  "locationInModule": {
16897
- "filename": "src/deps/model.ts",
16898
- "line": 43
17160
+ "filename": "src/awscdk/java-app.ts",
17161
+ "line": 53
16899
17162
  },
16900
- "name": "metadata",
16901
- "optional": true,
17163
+ "name": "mainClass",
16902
17164
  "type": {
16903
- "collection": {
16904
- "elementtype": {
16905
- "primitive": "any"
16906
- },
16907
- "kind": "map"
16908
- }
17165
+ "primitive": "string"
16909
17166
  }
16910
- }
16911
- ],
16912
- "symbolId": "src/deps/model:Dependency"
16913
- },
16914
- "projen.deps.DependencyCoordinates": {
16915
- "assembly": "projen",
16916
- "datatype": true,
16917
- "docs": {
16918
- "stability": "experimental",
16919
- "summary": "Coordinates of the dependency (name and version)."
16920
- },
16921
- "fqn": "projen.deps.DependencyCoordinates",
16922
- "kind": "interface",
16923
- "locationInModule": {
16924
- "filename": "src/deps/model.ts",
16925
- "line": 11
16926
- },
16927
- "name": "DependencyCoordinates",
16928
- "namespace": "deps",
16929
- "properties": [
17167
+ },
16930
17168
  {
16931
- "abstract": true,
16932
17169
  "docs": {
16933
- "remarks": "NOTE: For package managers that use complex coordinates (like Maven), we\nwill codify it into a string somehow.",
16934
17170
  "stability": "experimental",
16935
- "summary": "The package manager name of the dependency (e.g. `leftpad` for npm)."
17171
+ "summary": "The name of the Java class with the static `main()` method."
16936
17172
  },
16937
17173
  "immutable": true,
16938
17174
  "locationInModule": {
16939
- "filename": "src/deps/model.ts",
16940
- "line": 18
17175
+ "filename": "src/awscdk/java-app.ts",
17176
+ "line": 68
16941
17177
  },
16942
- "name": "name",
17178
+ "name": "mainClassName",
16943
17179
  "type": {
16944
17180
  "primitive": "string"
16945
17181
  }
16946
17182
  },
16947
17183
  {
16948
- "abstract": true,
16949
17184
  "docs": {
16950
- "default": "- requirement is managed by the package manager (e.g. npm/yarn).",
16951
17185
  "stability": "experimental",
16952
- "summary": "Semantic version version requirement."
17186
+ "summary": "The name of the Java package that includes the main class."
16953
17187
  },
16954
17188
  "immutable": true,
16955
17189
  "locationInModule": {
16956
- "filename": "src/deps/model.ts",
16957
- "line": 25
17190
+ "filename": "src/awscdk/java-app.ts",
17191
+ "line": 63
17192
+ },
17193
+ "name": "mainPackage",
17194
+ "type": {
17195
+ "primitive": "string"
17196
+ }
17197
+ }
17198
+ ],
17199
+ "symbolId": "src/awscdk/java-app:AwsCdkJavaApp"
17200
+ },
17201
+ "projen.awscdk.AwsCdkJavaAppOptions": {
17202
+ "assembly": "projen",
17203
+ "datatype": true,
17204
+ "docs": {
17205
+ "stability": "experimental"
17206
+ },
17207
+ "fqn": "projen.awscdk.AwsCdkJavaAppOptions",
17208
+ "interfaces": [
17209
+ "projen.java.JavaProjectOptions",
17210
+ "projen.awscdk.CdkConfigCommonOptions"
17211
+ ],
17212
+ "kind": "interface",
17213
+ "locationInModule": {
17214
+ "filename": "src/awscdk/java-app.ts",
17215
+ "line": 8
17216
+ },
17217
+ "name": "AwsCdkJavaAppOptions",
17218
+ "namespace": "awscdk",
17219
+ "properties": [
17220
+ {
17221
+ "abstract": true,
17222
+ "docs": {
17223
+ "default": "\"^1.130.0\"",
17224
+ "stability": "experimental",
17225
+ "summary": "AWS CDK version to use (you can use semantic versioning)."
17226
+ },
17227
+ "immutable": true,
17228
+ "locationInModule": {
17229
+ "filename": "src/awscdk/java-app.ts",
17230
+ "line": 14
17231
+ },
17232
+ "name": "cdkVersion",
17233
+ "type": {
17234
+ "primitive": "string"
17235
+ }
17236
+ },
17237
+ {
17238
+ "abstract": true,
17239
+ "docs": {
17240
+ "default": "\"org.acme.App\"",
17241
+ "remarks": "This method\nshould call `app.synth()` on the CDK app.",
17242
+ "stability": "experimental",
17243
+ "summary": "The name of the Java class with the static `main()` method."
17244
+ },
17245
+ "immutable": true,
17246
+ "locationInModule": {
17247
+ "filename": "src/awscdk/java-app.ts",
17248
+ "line": 31
17249
+ },
17250
+ "name": "mainClass",
17251
+ "type": {
17252
+ "primitive": "string"
17253
+ }
17254
+ },
17255
+ {
17256
+ "abstract": true,
17257
+ "docs": {
17258
+ "custom": {
17259
+ "featured": "true"
17260
+ },
17261
+ "remarks": "The `core` module is included by\ndefault and you can add additional modules here by stating only the package\nname (e.g. `aws-lambda`).",
17262
+ "stability": "experimental",
17263
+ "summary": "Which AWS CDK modules this app uses."
17264
+ },
17265
+ "immutable": true,
17266
+ "locationInModule": {
17267
+ "filename": "src/awscdk/java-app.ts",
17268
+ "line": 23
17269
+ },
17270
+ "name": "cdkDependencies",
17271
+ "optional": true,
17272
+ "type": {
17273
+ "collection": {
17274
+ "elementtype": {
17275
+ "primitive": "string"
17276
+ },
17277
+ "kind": "array"
17278
+ }
17279
+ }
17280
+ }
17281
+ ],
17282
+ "symbolId": "src/awscdk/java-app:AwsCdkJavaAppOptions"
17283
+ },
17284
+ "projen.awscdk.CdkConfig": {
17285
+ "assembly": "projen",
17286
+ "base": "projen.Component",
17287
+ "docs": {
17288
+ "stability": "experimental",
17289
+ "summary": "Represents cdk.json file."
17290
+ },
17291
+ "fqn": "projen.awscdk.CdkConfig",
17292
+ "initializer": {
17293
+ "docs": {
17294
+ "stability": "experimental"
17295
+ },
17296
+ "locationInModule": {
17297
+ "filename": "src/awscdk/cdk-config.ts",
17298
+ "line": 66
17299
+ },
17300
+ "parameters": [
17301
+ {
17302
+ "name": "project",
17303
+ "type": {
17304
+ "fqn": "projen.Project"
17305
+ }
17306
+ },
17307
+ {
17308
+ "name": "options",
17309
+ "type": {
17310
+ "fqn": "projen.awscdk.CdkConfigOptions"
17311
+ }
17312
+ }
17313
+ ]
17314
+ },
17315
+ "kind": "class",
17316
+ "locationInModule": {
17317
+ "filename": "src/awscdk/cdk-config.ts",
17318
+ "line": 54
17319
+ },
17320
+ "name": "CdkConfig",
17321
+ "namespace": "awscdk",
17322
+ "properties": [
17323
+ {
17324
+ "docs": {
17325
+ "stability": "experimental",
17326
+ "summary": "Name of the cdk.out directory."
17327
+ },
17328
+ "immutable": true,
17329
+ "locationInModule": {
17330
+ "filename": "src/awscdk/cdk-config.ts",
17331
+ "line": 64
17332
+ },
17333
+ "name": "cdkout",
17334
+ "type": {
17335
+ "primitive": "string"
17336
+ }
17337
+ },
17338
+ {
17339
+ "docs": {
17340
+ "stability": "experimental",
17341
+ "summary": "Represents the JSON file."
17342
+ },
17343
+ "immutable": true,
17344
+ "locationInModule": {
17345
+ "filename": "src/awscdk/cdk-config.ts",
17346
+ "line": 59
17347
+ },
17348
+ "name": "json",
17349
+ "type": {
17350
+ "fqn": "projen.JsonFile"
17351
+ }
17352
+ }
17353
+ ],
17354
+ "symbolId": "src/awscdk/cdk-config:CdkConfig"
17355
+ },
17356
+ "projen.awscdk.CdkConfigCommonOptions": {
17357
+ "assembly": "projen",
17358
+ "datatype": true,
17359
+ "docs": {
17360
+ "stability": "experimental",
17361
+ "summary": "Common options for `cdk.json`."
17362
+ },
17363
+ "fqn": "projen.awscdk.CdkConfigCommonOptions",
17364
+ "kind": "interface",
17365
+ "locationInModule": {
17366
+ "filename": "src/awscdk/cdk-config.ts",
17367
+ "line": 9
17368
+ },
17369
+ "name": "CdkConfigCommonOptions",
17370
+ "namespace": "awscdk",
17371
+ "properties": [
17372
+ {
17373
+ "abstract": true,
17374
+ "docs": {
17375
+ "default": "\"cdk.out\"",
17376
+ "stability": "experimental",
17377
+ "summary": "cdk.out directory."
17378
+ },
17379
+ "immutable": true,
17380
+ "locationInModule": {
17381
+ "filename": "src/awscdk/cdk-config.ts",
17382
+ "line": 37
17383
+ },
17384
+ "name": "cdkout",
17385
+ "optional": true,
17386
+ "type": {
17387
+ "primitive": "string"
17388
+ }
17389
+ },
17390
+ {
17391
+ "abstract": true,
17392
+ "docs": {
17393
+ "default": "- no additional context",
17394
+ "stability": "experimental",
17395
+ "summary": "Additional context to include in `cdk.json`."
17396
+ },
17397
+ "immutable": true,
17398
+ "locationInModule": {
17399
+ "filename": "src/awscdk/cdk-config.ts",
17400
+ "line": 15
17401
+ },
17402
+ "name": "context",
17403
+ "optional": true,
17404
+ "type": {
17405
+ "collection": {
17406
+ "elementtype": {
17407
+ "primitive": "string"
17408
+ },
17409
+ "kind": "map"
17410
+ }
17411
+ }
17412
+ },
17413
+ {
17414
+ "abstract": true,
17415
+ "docs": {
17416
+ "default": "true",
17417
+ "stability": "experimental",
17418
+ "summary": "Include all feature flags in cdk.json."
17419
+ },
17420
+ "immutable": true,
17421
+ "locationInModule": {
17422
+ "filename": "src/awscdk/cdk-config.ts",
17423
+ "line": 22
17424
+ },
17425
+ "name": "featureFlags",
17426
+ "optional": true,
17427
+ "type": {
17428
+ "primitive": "boolean"
17429
+ }
17430
+ },
17431
+ {
17432
+ "abstract": true,
17433
+ "docs": {
17434
+ "default": "ApprovalLevel.BROADENING",
17435
+ "stability": "experimental",
17436
+ "summary": "To protect you against unintended changes that affect your security posture, the AWS CDK Toolkit prompts you to approve security-related changes before deploying them."
17437
+ },
17438
+ "immutable": true,
17439
+ "locationInModule": {
17440
+ "filename": "src/awscdk/cdk-config.ts",
17441
+ "line": 30
17442
+ },
17443
+ "name": "requireApproval",
17444
+ "optional": true,
17445
+ "type": {
17446
+ "fqn": "projen.awscdk.ApprovalLevel"
17447
+ }
17448
+ }
17449
+ ],
17450
+ "symbolId": "src/awscdk/cdk-config:CdkConfigCommonOptions"
17451
+ },
17452
+ "projen.awscdk.CdkConfigOptions": {
17453
+ "assembly": "projen",
17454
+ "datatype": true,
17455
+ "docs": {
17456
+ "stability": "experimental",
17457
+ "summary": "Options for `CdkJson`."
17458
+ },
17459
+ "fqn": "projen.awscdk.CdkConfigOptions",
17460
+ "interfaces": [
17461
+ "projen.awscdk.CdkConfigCommonOptions"
17462
+ ],
17463
+ "kind": "interface",
17464
+ "locationInModule": {
17465
+ "filename": "src/awscdk/cdk-config.ts",
17466
+ "line": 43
17467
+ },
17468
+ "name": "CdkConfigOptions",
17469
+ "namespace": "awscdk",
17470
+ "properties": [
17471
+ {
17472
+ "abstract": true,
17473
+ "docs": {
17474
+ "stability": "experimental",
17475
+ "summary": "The command line to execute in order to synthesize the CDK application (language specific)."
17476
+ },
17477
+ "immutable": true,
17478
+ "locationInModule": {
17479
+ "filename": "src/awscdk/cdk-config.ts",
17480
+ "line": 48
17481
+ },
17482
+ "name": "app",
17483
+ "type": {
17484
+ "primitive": "string"
17485
+ }
17486
+ }
17487
+ ],
17488
+ "symbolId": "src/awscdk/cdk-config:CdkConfigOptions"
17489
+ },
17490
+ "projen.awscdk.CdkTasks": {
17491
+ "assembly": "projen",
17492
+ "base": "projen.Component",
17493
+ "docs": {
17494
+ "stability": "experimental",
17495
+ "summary": "Adds standard AWS CDK tasks to your project."
17496
+ },
17497
+ "fqn": "projen.awscdk.CdkTasks",
17498
+ "initializer": {
17499
+ "docs": {
17500
+ "stability": "experimental"
17501
+ },
17502
+ "locationInModule": {
17503
+ "filename": "src/awscdk/cdk-tasks.ts",
17504
+ "line": 29
17505
+ },
17506
+ "parameters": [
17507
+ {
17508
+ "name": "project",
17509
+ "type": {
17510
+ "fqn": "projen.Project"
17511
+ }
17512
+ }
17513
+ ]
17514
+ },
17515
+ "kind": "class",
17516
+ "locationInModule": {
17517
+ "filename": "src/awscdk/cdk-tasks.ts",
17518
+ "line": 8
17519
+ },
17520
+ "name": "CdkTasks",
17521
+ "namespace": "awscdk",
17522
+ "properties": [
17523
+ {
17524
+ "docs": {
17525
+ "stability": "experimental",
17526
+ "summary": "Deploys your app."
17527
+ },
17528
+ "immutable": true,
17529
+ "locationInModule": {
17530
+ "filename": "src/awscdk/cdk-tasks.ts",
17531
+ "line": 17
17532
+ },
17533
+ "name": "deploy",
17534
+ "type": {
17535
+ "fqn": "projen.tasks.Task"
17536
+ }
17537
+ },
17538
+ {
17539
+ "docs": {
17540
+ "stability": "experimental",
17541
+ "summary": "Destroys all the stacks."
17542
+ },
17543
+ "immutable": true,
17544
+ "locationInModule": {
17545
+ "filename": "src/awscdk/cdk-tasks.ts",
17546
+ "line": 22
17547
+ },
17548
+ "name": "destroy",
17549
+ "type": {
17550
+ "fqn": "projen.tasks.Task"
17551
+ }
17552
+ },
17553
+ {
17554
+ "docs": {
17555
+ "stability": "experimental",
17556
+ "summary": "Diff against production."
17557
+ },
17558
+ "immutable": true,
17559
+ "locationInModule": {
17560
+ "filename": "src/awscdk/cdk-tasks.ts",
17561
+ "line": 27
17562
+ },
17563
+ "name": "diff",
17564
+ "type": {
17565
+ "fqn": "projen.tasks.Task"
17566
+ }
17567
+ },
17568
+ {
17569
+ "docs": {
17570
+ "stability": "experimental",
17571
+ "summary": "Synthesizes your app."
17572
+ },
17573
+ "immutable": true,
17574
+ "locationInModule": {
17575
+ "filename": "src/awscdk/cdk-tasks.ts",
17576
+ "line": 12
17577
+ },
17578
+ "name": "synth",
17579
+ "type": {
17580
+ "fqn": "projen.tasks.Task"
17581
+ }
17582
+ }
17583
+ ],
17584
+ "symbolId": "src/awscdk/cdk-tasks:CdkTasks"
17585
+ },
17586
+ "projen.awscdk.LambdaFunction": {
17587
+ "assembly": "projen",
17588
+ "base": "projen.Component",
17589
+ "docs": {
17590
+ "example": "new LambdaFunction(myProject, {\n entrypoint: 'src/foo.lambda.ts',\n srcdir: myProject.srcdir,\n libdir: myProject.libdir,\n});",
17591
+ "remarks": "To use this, create an AWS Lambda handler file under your source tree with\nthe `.lambda.ts` extension and add a `LambdaFunction` component to your\ntypescript project pointing to this entrypoint.\n\nThis will add a task to your \"compile\" step which will use `esbuild` to\nbundle the handler code into the build directory. It will also generate a\nfile `src/foo-function.ts` with a custom AWS construct called `FooFunction`\nwhich extends `@aws-cdk/aws-lambda.Function` which is bound to the bundled\nhandle through an asset.",
17592
+ "stability": "experimental",
17593
+ "summary": "Generates a pre-bundled AWS Lambda function construct from handler code."
17594
+ },
17595
+ "fqn": "projen.awscdk.LambdaFunction",
17596
+ "initializer": {
17597
+ "docs": {
17598
+ "stability": "experimental",
17599
+ "summary": "Defines a pre-bundled AWS Lambda function construct from handler code."
17600
+ },
17601
+ "locationInModule": {
17602
+ "filename": "src/awscdk/lambda-function.ts",
17603
+ "line": 103
17604
+ },
17605
+ "parameters": [
17606
+ {
17607
+ "docs": {
17608
+ "summary": "The project to use."
17609
+ },
17610
+ "name": "project",
17611
+ "type": {
17612
+ "fqn": "projen.Project"
17613
+ }
17614
+ },
17615
+ {
17616
+ "docs": {
17617
+ "summary": "Options."
17618
+ },
17619
+ "name": "options",
17620
+ "type": {
17621
+ "fqn": "projen.awscdk.LambdaFunctionOptions"
17622
+ }
17623
+ }
17624
+ ]
17625
+ },
17626
+ "kind": "class",
17627
+ "locationInModule": {
17628
+ "filename": "src/awscdk/lambda-function.ts",
17629
+ "line": 91
17630
+ },
17631
+ "name": "LambdaFunction",
17632
+ "namespace": "awscdk",
17633
+ "properties": [
17634
+ {
17635
+ "docs": {
17636
+ "stability": "experimental",
17637
+ "summary": "The bundle task for this function."
17638
+ },
17639
+ "immutable": true,
17640
+ "locationInModule": {
17641
+ "filename": "src/awscdk/lambda-function.ts",
17642
+ "line": 95
17643
+ },
17644
+ "name": "bundleTask",
17645
+ "type": {
17646
+ "fqn": "projen.tasks.Task"
17647
+ }
17648
+ }
17649
+ ],
17650
+ "symbolId": "src/awscdk/lambda-function:LambdaFunction"
17651
+ },
17652
+ "projen.awscdk.LambdaFunctionCommonOptions": {
17653
+ "assembly": "projen",
17654
+ "datatype": true,
17655
+ "docs": {
17656
+ "remarks": "Applies to all functions in\nauto-discovery.",
17657
+ "stability": "experimental",
17658
+ "summary": "Common options for `LambdaFunction`."
17659
+ },
17660
+ "fqn": "projen.awscdk.LambdaFunctionCommonOptions",
17661
+ "kind": "interface",
17662
+ "locationInModule": {
17663
+ "filename": "src/awscdk/lambda-function.ts",
17664
+ "line": 15
17665
+ },
17666
+ "name": "LambdaFunctionCommonOptions",
17667
+ "namespace": "awscdk",
17668
+ "properties": [
17669
+ {
17670
+ "abstract": true,
17671
+ "docs": {
17672
+ "default": "- by default, the \"aws-sdk\" module will be excluded from the\nbundle. Note that if you use this option you will need to add \"aws-sdk\"\nexplicitly.",
17673
+ "stability": "experimental",
17674
+ "summary": "Names of modules which should not be included in the bundle."
17675
+ },
17676
+ "immutable": true,
17677
+ "locationInModule": {
17678
+ "filename": "src/awscdk/lambda-function.ts",
17679
+ "line": 30
17680
+ },
17681
+ "name": "externals",
17682
+ "optional": true,
17683
+ "type": {
17684
+ "collection": {
17685
+ "elementtype": {
17686
+ "primitive": "string"
17687
+ },
17688
+ "kind": "array"
17689
+ }
17690
+ }
17691
+ },
17692
+ {
17693
+ "abstract": true,
17694
+ "docs": {
17695
+ "default": "Runtime.NODEJS_14_X",
17696
+ "stability": "experimental",
17697
+ "summary": "The node.js version to target."
17698
+ },
17699
+ "immutable": true,
17700
+ "locationInModule": {
17701
+ "filename": "src/awscdk/lambda-function.ts",
17702
+ "line": 21
17703
+ },
17704
+ "name": "runtime",
17705
+ "optional": true,
17706
+ "type": {
17707
+ "fqn": "projen.awscdk.LambdaRuntime"
17708
+ }
17709
+ }
17710
+ ],
17711
+ "symbolId": "src/awscdk/lambda-function:LambdaFunctionCommonOptions"
17712
+ },
17713
+ "projen.awscdk.LambdaFunctionOptions": {
17714
+ "assembly": "projen",
17715
+ "datatype": true,
17716
+ "docs": {
17717
+ "stability": "experimental",
17718
+ "summary": "Options for `Function`."
17719
+ },
17720
+ "fqn": "projen.awscdk.LambdaFunctionOptions",
17721
+ "interfaces": [
17722
+ "projen.awscdk.LambdaFunctionCommonOptions"
17723
+ ],
17724
+ "kind": "interface",
17725
+ "locationInModule": {
17726
+ "filename": "src/awscdk/lambda-function.ts",
17727
+ "line": 36
17728
+ },
17729
+ "name": "LambdaFunctionOptions",
17730
+ "namespace": "awscdk",
17731
+ "properties": [
17732
+ {
17733
+ "abstract": true,
17734
+ "docs": {
17735
+ "stability": "experimental",
17736
+ "summary": "A path from the project root directory to a TypeScript file which contains the AWS Lambda handler entrypoint (exports a `handler` function)."
17737
+ },
17738
+ "immutable": true,
17739
+ "locationInModule": {
17740
+ "filename": "src/awscdk/lambda-function.ts",
17741
+ "line": 41
17742
+ },
17743
+ "name": "entrypoint",
17744
+ "type": {
17745
+ "primitive": "string"
17746
+ }
17747
+ },
17748
+ {
17749
+ "abstract": true,
17750
+ "docs": {
17751
+ "stability": "experimental",
17752
+ "summary": "JavaScript output directory (where .js files go)."
17753
+ },
17754
+ "immutable": true,
17755
+ "locationInModule": {
17756
+ "filename": "src/awscdk/lambda-function.ts",
17757
+ "line": 67
17758
+ },
17759
+ "name": "libdir",
17760
+ "type": {
17761
+ "primitive": "string"
17762
+ }
17763
+ },
17764
+ {
17765
+ "abstract": true,
17766
+ "docs": {
17767
+ "stability": "experimental",
17768
+ "summary": "Project source directory tree (where .ts files live)."
17769
+ },
17770
+ "immutable": true,
17771
+ "locationInModule": {
17772
+ "filename": "src/awscdk/lambda-function.ts",
17773
+ "line": 62
17774
+ },
17775
+ "name": "srcdir",
17776
+ "type": {
17777
+ "primitive": "string"
17778
+ }
17779
+ },
17780
+ {
17781
+ "abstract": true,
17782
+ "docs": {
17783
+ "default": "- The name of the entrypoint file, with the `-function.ts` suffix\ninstead of `.lambda.ts`.",
17784
+ "stability": "experimental",
17785
+ "summary": "The name of the generated TypeScript source file."
17786
+ },
17787
+ "immutable": true,
17788
+ "locationInModule": {
17789
+ "filename": "src/awscdk/lambda-function.ts",
17790
+ "line": 49
17791
+ },
17792
+ "name": "constructFile",
17793
+ "optional": true,
17794
+ "type": {
17795
+ "primitive": "string"
17796
+ }
17797
+ },
17798
+ {
17799
+ "abstract": true,
17800
+ "docs": {
17801
+ "default": "- A pascal cased version of the name of the entrypoint file, with\nthe extension `Function` (e.g. `ResizeImageFunction`).",
17802
+ "stability": "experimental",
17803
+ "summary": "The name of the generated `lambda.Function` subclass."
17804
+ },
17805
+ "immutable": true,
17806
+ "locationInModule": {
17807
+ "filename": "src/awscdk/lambda-function.ts",
17808
+ "line": 57
17809
+ },
17810
+ "name": "constructName",
17811
+ "optional": true,
17812
+ "type": {
17813
+ "primitive": "string"
17814
+ }
17815
+ }
17816
+ ],
17817
+ "symbolId": "src/awscdk/lambda-function:LambdaFunctionOptions"
17818
+ },
17819
+ "projen.awscdk.LambdaRuntime": {
17820
+ "assembly": "projen",
17821
+ "docs": {
17822
+ "stability": "experimental",
17823
+ "summary": "The runtime for the AWS Lambda function."
17824
+ },
17825
+ "fqn": "projen.awscdk.LambdaRuntime",
17826
+ "kind": "class",
17827
+ "locationInModule": {
17828
+ "filename": "src/awscdk/lambda-function.ts",
17829
+ "line": 189
17830
+ },
17831
+ "name": "LambdaRuntime",
17832
+ "namespace": "awscdk",
17833
+ "properties": [
17834
+ {
17835
+ "const": true,
17836
+ "docs": {
17837
+ "stability": "experimental",
17838
+ "summary": "Node.js 10.x."
17839
+ },
17840
+ "immutable": true,
17841
+ "locationInModule": {
17842
+ "filename": "src/awscdk/lambda-function.ts",
17843
+ "line": 193
17844
+ },
17845
+ "name": "NODEJS_10_X",
17846
+ "static": true,
17847
+ "type": {
17848
+ "fqn": "projen.awscdk.LambdaRuntime"
17849
+ }
17850
+ },
17851
+ {
17852
+ "const": true,
17853
+ "docs": {
17854
+ "stability": "experimental",
17855
+ "summary": "Node.js 12.x."
17856
+ },
17857
+ "immutable": true,
17858
+ "locationInModule": {
17859
+ "filename": "src/awscdk/lambda-function.ts",
17860
+ "line": 198
17861
+ },
17862
+ "name": "NODEJS_12_X",
17863
+ "static": true,
17864
+ "type": {
17865
+ "fqn": "projen.awscdk.LambdaRuntime"
17866
+ }
17867
+ },
17868
+ {
17869
+ "const": true,
17870
+ "docs": {
17871
+ "stability": "experimental",
17872
+ "summary": "Node.js 14.x."
17873
+ },
17874
+ "immutable": true,
17875
+ "locationInModule": {
17876
+ "filename": "src/awscdk/lambda-function.ts",
17877
+ "line": 203
17878
+ },
17879
+ "name": "NODEJS_14_X",
17880
+ "static": true,
17881
+ "type": {
17882
+ "fqn": "projen.awscdk.LambdaRuntime"
17883
+ }
17884
+ },
17885
+ {
17886
+ "docs": {
17887
+ "stability": "experimental"
17888
+ },
17889
+ "immutable": true,
17890
+ "locationInModule": {
17891
+ "filename": "src/awscdk/lambda-function.ts",
17892
+ "line": 205
17893
+ },
17894
+ "name": "esbuildPlatform",
17895
+ "type": {
17896
+ "primitive": "string"
17897
+ }
17898
+ },
17899
+ {
17900
+ "docs": {
17901
+ "stability": "experimental",
17902
+ "summary": "The esbuild setting to use."
17903
+ },
17904
+ "immutable": true,
17905
+ "locationInModule": {
17906
+ "filename": "src/awscdk/lambda-function.ts",
17907
+ "line": 216
17908
+ },
17909
+ "name": "esbuildTarget",
17910
+ "type": {
17911
+ "primitive": "string"
17912
+ }
17913
+ },
17914
+ {
17915
+ "docs": {
17916
+ "stability": "experimental",
17917
+ "summary": "The aws-lambda.Runtime member name to use."
17918
+ },
17919
+ "immutable": true,
17920
+ "locationInModule": {
17921
+ "filename": "src/awscdk/lambda-function.ts",
17922
+ "line": 211
17923
+ },
17924
+ "name": "functionRuntime",
17925
+ "type": {
17926
+ "primitive": "string"
17927
+ }
17928
+ }
17929
+ ],
17930
+ "symbolId": "src/awscdk/lambda-function:LambdaRuntime"
17931
+ },
17932
+ "projen.deps.Dependencies": {
17933
+ "assembly": "projen",
17934
+ "base": "projen.Component",
17935
+ "docs": {
17936
+ "remarks": "To add a dependency you can use a project-type specific API such as\n`nodeProject.addDeps()` or use the generic API of `project.deps`:",
17937
+ "stability": "experimental",
17938
+ "summary": "The `Dependencies` component is responsible to track the list of dependencies a project has, and then used by project types as the model for rendering project-specific dependency manifests such as the dependencies section `package.json` files."
17939
+ },
17940
+ "fqn": "projen.deps.Dependencies",
17941
+ "initializer": {
17942
+ "docs": {
17943
+ "stability": "experimental",
17944
+ "summary": "Adds a dependencies component to the project."
17945
+ },
17946
+ "locationInModule": {
17947
+ "filename": "src/deps/dependencies.ts",
17948
+ "line": 50
17949
+ },
17950
+ "parameters": [
17951
+ {
17952
+ "docs": {
17953
+ "summary": "The parent project."
17954
+ },
17955
+ "name": "project",
17956
+ "type": {
17957
+ "fqn": "projen.Project"
17958
+ }
17959
+ }
17960
+ ]
17961
+ },
17962
+ "kind": "class",
17963
+ "locationInModule": {
17964
+ "filename": "src/deps/dependencies.ts",
17965
+ "line": 17
17966
+ },
17967
+ "methods": [
17968
+ {
17969
+ "docs": {
17970
+ "remarks": "Given `foo@^3.4.0` returns `{ name: \"foo\", version: \"^3.4.0\" }`.\nGiven `bar@npm:@bar/legacy` returns `{ name: \"bar\", version: \"npm:@bar/legacy\" }`.",
17971
+ "stability": "experimental",
17972
+ "summary": "Returns the coordinates of a dependency spec."
17973
+ },
17974
+ "locationInModule": {
17975
+ "filename": "src/deps/dependencies.ts",
17976
+ "line": 29
17977
+ },
17978
+ "name": "parseDependency",
17979
+ "parameters": [
17980
+ {
17981
+ "name": "spec",
17982
+ "type": {
17983
+ "primitive": "string"
17984
+ }
17985
+ }
17986
+ ],
17987
+ "returns": {
17988
+ "type": {
17989
+ "fqn": "projen.deps.DependencyCoordinates"
17990
+ }
17991
+ },
17992
+ "static": true
17993
+ },
17994
+ {
17995
+ "docs": {
17996
+ "stability": "experimental",
17997
+ "summary": "Adds a dependency to this project."
17998
+ },
17999
+ "locationInModule": {
18000
+ "filename": "src/deps/dependencies.ts",
18001
+ "line": 105
18002
+ },
18003
+ "name": "addDependency",
18004
+ "parameters": [
18005
+ {
18006
+ "docs": {
18007
+ "summary": "The dependency spec in the format `MODULE[@VERSION]` where `MODULE` is the package-manager-specific module name and `VERSION` is an optional semantic version requirement (e.g. `^3.4.0`)."
18008
+ },
18009
+ "name": "spec",
18010
+ "type": {
18011
+ "primitive": "string"
18012
+ }
18013
+ },
18014
+ {
18015
+ "docs": {
18016
+ "summary": "The type of the dependency."
18017
+ },
18018
+ "name": "type",
18019
+ "type": {
18020
+ "fqn": "projen.deps.DependencyType"
18021
+ }
18022
+ },
18023
+ {
18024
+ "name": "metadata",
18025
+ "optional": true,
18026
+ "type": {
18027
+ "collection": {
18028
+ "elementtype": {
18029
+ "primitive": "any"
18030
+ },
18031
+ "kind": "map"
18032
+ }
18033
+ }
18034
+ }
18035
+ ],
18036
+ "returns": {
18037
+ "type": {
18038
+ "fqn": "projen.deps.Dependency"
18039
+ }
18040
+ }
18041
+ },
18042
+ {
18043
+ "docs": {
18044
+ "remarks": "Fails if there is no dependency defined by that name or if `type` is not\nprovided and there is more then one dependency type for this dependency.",
18045
+ "returns": "a copy (cannot be modified)",
18046
+ "stability": "experimental",
18047
+ "summary": "Returns a dependency by name."
18048
+ },
18049
+ "locationInModule": {
18050
+ "filename": "src/deps/dependencies.ts",
18051
+ "line": 83
18052
+ },
18053
+ "name": "getDependency",
18054
+ "parameters": [
18055
+ {
18056
+ "docs": {
18057
+ "summary": "The name of the dependency."
18058
+ },
18059
+ "name": "name",
18060
+ "type": {
18061
+ "primitive": "string"
18062
+ }
18063
+ },
18064
+ {
18065
+ "docs": {
18066
+ "remarks": "If this dependency is defined only for a\nsingle type, this argument can be omitted.",
18067
+ "summary": "The dependency type."
18068
+ },
18069
+ "name": "type",
18070
+ "optional": true,
18071
+ "type": {
18072
+ "fqn": "projen.deps.DependencyType"
18073
+ }
18074
+ }
18075
+ ],
18076
+ "returns": {
18077
+ "type": {
18078
+ "fqn": "projen.deps.Dependency"
18079
+ }
18080
+ }
18081
+ },
18082
+ {
18083
+ "docs": {
18084
+ "stability": "experimental",
18085
+ "summary": "Removes a dependency."
18086
+ },
18087
+ "locationInModule": {
18088
+ "filename": "src/deps/dependencies.ts",
18089
+ "line": 137
18090
+ },
18091
+ "name": "removeDependency",
18092
+ "parameters": [
18093
+ {
18094
+ "docs": {
18095
+ "summary": "The name of the module to remove (without the version)."
18096
+ },
18097
+ "name": "name",
18098
+ "type": {
18099
+ "primitive": "string"
18100
+ }
18101
+ },
18102
+ {
18103
+ "docs": {
18104
+ "remarks": "This is only required if there the\ndependency is defined for multiple types.",
18105
+ "summary": "The dependency type."
18106
+ },
18107
+ "name": "type",
18108
+ "optional": true,
18109
+ "type": {
18110
+ "fqn": "projen.deps.DependencyType"
18111
+ }
18112
+ }
18113
+ ]
18114
+ }
18115
+ ],
18116
+ "name": "Dependencies",
18117
+ "namespace": "deps",
18118
+ "properties": [
18119
+ {
18120
+ "const": true,
18121
+ "docs": {
18122
+ "stability": "experimental",
18123
+ "summary": "The project-relative path of the deps manifest file."
18124
+ },
18125
+ "immutable": true,
18126
+ "locationInModule": {
18127
+ "filename": "src/deps/dependencies.ts",
18128
+ "line": 21
18129
+ },
18130
+ "name": "MANIFEST_FILE",
18131
+ "static": true,
18132
+ "type": {
18133
+ "primitive": "string"
18134
+ }
18135
+ },
18136
+ {
18137
+ "docs": {
18138
+ "remarks": "The list is sorted by type->name->version",
18139
+ "stability": "experimental",
18140
+ "summary": "A copy of all dependencies recorded for this project."
18141
+ },
18142
+ "immutable": true,
18143
+ "locationInModule": {
18144
+ "filename": "src/deps/dependencies.ts",
18145
+ "line": 67
18146
+ },
18147
+ "name": "all",
18148
+ "type": {
18149
+ "collection": {
18150
+ "elementtype": {
18151
+ "fqn": "projen.deps.Dependency"
18152
+ },
18153
+ "kind": "array"
18154
+ }
18155
+ }
18156
+ }
18157
+ ],
18158
+ "symbolId": "src/deps/dependencies:Dependencies"
18159
+ },
18160
+ "projen.deps.Dependency": {
18161
+ "assembly": "projen",
18162
+ "datatype": true,
18163
+ "docs": {
18164
+ "stability": "experimental",
18165
+ "summary": "Represents a project dependency."
18166
+ },
18167
+ "fqn": "projen.deps.Dependency",
18168
+ "interfaces": [
18169
+ "projen.deps.DependencyCoordinates"
18170
+ ],
18171
+ "kind": "interface",
18172
+ "locationInModule": {
18173
+ "filename": "src/deps/model.ts",
18174
+ "line": 31
18175
+ },
18176
+ "name": "Dependency",
18177
+ "namespace": "deps",
18178
+ "properties": [
18179
+ {
18180
+ "abstract": true,
18181
+ "docs": {
18182
+ "stability": "experimental",
18183
+ "summary": "Which type of dependency this is (runtime, build-time, etc)."
18184
+ },
18185
+ "immutable": true,
18186
+ "locationInModule": {
18187
+ "filename": "src/deps/model.ts",
18188
+ "line": 36
18189
+ },
18190
+ "name": "type",
18191
+ "type": {
18192
+ "fqn": "projen.deps.DependencyType"
18193
+ }
18194
+ },
18195
+ {
18196
+ "abstract": true,
18197
+ "docs": {
18198
+ "default": "{}",
18199
+ "stability": "experimental",
18200
+ "summary": "Additional JSON metadata associated with the dependency (package manager specific)."
18201
+ },
18202
+ "immutable": true,
18203
+ "locationInModule": {
18204
+ "filename": "src/deps/model.ts",
18205
+ "line": 43
18206
+ },
18207
+ "name": "metadata",
18208
+ "optional": true,
18209
+ "type": {
18210
+ "collection": {
18211
+ "elementtype": {
18212
+ "primitive": "any"
18213
+ },
18214
+ "kind": "map"
18215
+ }
18216
+ }
18217
+ }
18218
+ ],
18219
+ "symbolId": "src/deps/model:Dependency"
18220
+ },
18221
+ "projen.deps.DependencyCoordinates": {
18222
+ "assembly": "projen",
18223
+ "datatype": true,
18224
+ "docs": {
18225
+ "stability": "experimental",
18226
+ "summary": "Coordinates of the dependency (name and version)."
18227
+ },
18228
+ "fqn": "projen.deps.DependencyCoordinates",
18229
+ "kind": "interface",
18230
+ "locationInModule": {
18231
+ "filename": "src/deps/model.ts",
18232
+ "line": 11
18233
+ },
18234
+ "name": "DependencyCoordinates",
18235
+ "namespace": "deps",
18236
+ "properties": [
18237
+ {
18238
+ "abstract": true,
18239
+ "docs": {
18240
+ "remarks": "NOTE: For package managers that use complex coordinates (like Maven), we\nwill codify it into a string somehow.",
18241
+ "stability": "experimental",
18242
+ "summary": "The package manager name of the dependency (e.g. `leftpad` for npm)."
18243
+ },
18244
+ "immutable": true,
18245
+ "locationInModule": {
18246
+ "filename": "src/deps/model.ts",
18247
+ "line": 18
18248
+ },
18249
+ "name": "name",
18250
+ "type": {
18251
+ "primitive": "string"
18252
+ }
18253
+ },
18254
+ {
18255
+ "abstract": true,
18256
+ "docs": {
18257
+ "default": "- requirement is managed by the package manager (e.g. npm/yarn).",
18258
+ "stability": "experimental",
18259
+ "summary": "Semantic version version requirement."
18260
+ },
18261
+ "immutable": true,
18262
+ "locationInModule": {
18263
+ "filename": "src/deps/model.ts",
18264
+ "line": 25
16958
18265
  },
16959
18266
  "name": "version",
16960
18267
  "optional": true,
@@ -18351,7 +19658,7 @@
18351
19658
  },
18352
19659
  "locationInModule": {
18353
19660
  "filename": "src/github/workflows.ts",
18354
- "line": 58
19661
+ "line": 56
18355
19662
  },
18356
19663
  "parameters": [
18357
19664
  {
@@ -18378,7 +19685,7 @@
18378
19685
  "kind": "class",
18379
19686
  "locationInModule": {
18380
19687
  "filename": "src/github/workflows.ts",
18381
- "line": 37
19688
+ "line": 35
18382
19689
  },
18383
19690
  "methods": [
18384
19691
  {
@@ -18388,7 +19695,7 @@
18388
19695
  },
18389
19696
  "locationInModule": {
18390
19697
  "filename": "src/github/workflows.ts",
18391
- "line": 90
19698
+ "line": 88
18392
19699
  },
18393
19700
  "name": "addJobs",
18394
19701
  "parameters": [
@@ -18415,7 +19722,7 @@
18415
19722
  },
18416
19723
  "locationInModule": {
18417
19724
  "filename": "src/github/workflows.ts",
18418
- "line": 78
19725
+ "line": 76
18419
19726
  },
18420
19727
  "name": "on",
18421
19728
  "parameters": [
@@ -18442,7 +19749,7 @@
18442
19749
  "immutable": true,
18443
19750
  "locationInModule": {
18444
19751
  "filename": "src/github/workflows.ts",
18445
- "line": 41
19752
+ "line": 39
18446
19753
  },
18447
19754
  "name": "name",
18448
19755
  "type": {
@@ -18458,7 +19765,7 @@
18458
19765
  "immutable": true,
18459
19766
  "locationInModule": {
18460
19767
  "filename": "src/github/workflows.ts",
18461
- "line": 48
19768
+ "line": 46
18462
19769
  },
18463
19770
  "name": "concurrency",
18464
19771
  "optional": true,
@@ -18474,7 +19781,7 @@
18474
19781
  "immutable": true,
18475
19782
  "locationInModule": {
18476
19783
  "filename": "src/github/workflows.ts",
18477
- "line": 53
19784
+ "line": 51
18478
19785
  },
18479
19786
  "name": "file",
18480
19787
  "optional": true,
@@ -18496,7 +19803,7 @@
18496
19803
  "kind": "interface",
18497
19804
  "locationInModule": {
18498
19805
  "filename": "src/github/workflows.ts",
18499
- "line": 14
19806
+ "line": 12
18500
19807
  },
18501
19808
  "name": "GithubWorkflowOptions",
18502
19809
  "namespace": "github",
@@ -18513,7 +19820,7 @@
18513
19820
  "immutable": true,
18514
19821
  "locationInModule": {
18515
19822
  "filename": "src/github/workflows.ts",
18516
- "line": 27
19823
+ "line": 25
18517
19824
  },
18518
19825
  "name": "concurrency",
18519
19826
  "optional": true,
@@ -18531,7 +19838,7 @@
18531
19838
  "immutable": true,
18532
19839
  "locationInModule": {
18533
19840
  "filename": "src/github/workflows.ts",
18534
- "line": 20
19841
+ "line": 18
18535
19842
  },
18536
19843
  "name": "force",
18537
19844
  "optional": true,
@@ -22448,7 +23755,7 @@
22448
23755
  },
22449
23756
  "locationInModule": {
22450
23757
  "filename": "src/java/java-project.ts",
22451
- "line": 136
23758
+ "line": 147
22452
23759
  },
22453
23760
  "parameters": [
22454
23761
  {
@@ -22462,7 +23769,7 @@
22462
23769
  "kind": "class",
22463
23770
  "locationInModule": {
22464
23771
  "filename": "src/java/java-project.ts",
22465
- "line": 105
23772
+ "line": 111
22466
23773
  },
22467
23774
  "methods": [
22468
23775
  {
@@ -22472,7 +23779,7 @@
22472
23779
  },
22473
23780
  "locationInModule": {
22474
23781
  "filename": "src/java/java-project.ts",
22475
- "line": 196
23782
+ "line": 208
22476
23783
  },
22477
23784
  "name": "addDependency",
22478
23785
  "parameters": [
@@ -22495,7 +23802,7 @@
22495
23802
  },
22496
23803
  "locationInModule": {
22497
23804
  "filename": "src/java/java-project.ts",
22498
- "line": 217
23805
+ "line": 229
22499
23806
  },
22500
23807
  "name": "addPlugin",
22501
23808
  "parameters": [
@@ -22532,7 +23839,7 @@
22532
23839
  },
22533
23840
  "locationInModule": {
22534
23841
  "filename": "src/java/java-project.ts",
22535
- "line": 205
23842
+ "line": 217
22536
23843
  },
22537
23844
  "name": "addTestDependency",
22538
23845
  "parameters": [
@@ -22551,6 +23858,21 @@
22551
23858
  "name": "JavaProject",
22552
23859
  "namespace": "java",
22553
23860
  "properties": [
23861
+ {
23862
+ "docs": {
23863
+ "stability": "experimental",
23864
+ "summary": "The primary build task."
23865
+ },
23866
+ "immutable": true,
23867
+ "locationInModule": {
23868
+ "filename": "src/java/java-project.ts",
23869
+ "line": 145
23870
+ },
23871
+ "name": "buildTask",
23872
+ "type": {
23873
+ "fqn": "projen.tasks.Task"
23874
+ }
23875
+ },
22554
23876
  {
22555
23877
  "docs": {
22556
23878
  "stability": "experimental",
@@ -22559,7 +23881,7 @@
22559
23881
  "immutable": true,
22560
23882
  "locationInModule": {
22561
23883
  "filename": "src/java/java-project.ts",
22562
- "line": 124
23884
+ "line": 130
22563
23885
  },
22564
23886
  "name": "compile",
22565
23887
  "type": {
@@ -22574,7 +23896,7 @@
22574
23896
  "immutable": true,
22575
23897
  "locationInModule": {
22576
23898
  "filename": "src/java/java-project.ts",
22577
- "line": 134
23899
+ "line": 140
22578
23900
  },
22579
23901
  "name": "distdir",
22580
23902
  "type": {
@@ -22589,7 +23911,7 @@
22589
23911
  "immutable": true,
22590
23912
  "locationInModule": {
22591
23913
  "filename": "src/java/java-project.ts",
22592
- "line": 119
23914
+ "line": 125
22593
23915
  },
22594
23916
  "name": "packaging",
22595
23917
  "type": {
@@ -22604,7 +23926,7 @@
22604
23926
  "immutable": true,
22605
23927
  "locationInModule": {
22606
23928
  "filename": "src/java/java-project.ts",
22607
- "line": 109
23929
+ "line": 115
22608
23930
  },
22609
23931
  "name": "pom",
22610
23932
  "type": {
@@ -22619,7 +23941,7 @@
22619
23941
  "immutable": true,
22620
23942
  "locationInModule": {
22621
23943
  "filename": "src/java/java-project.ts",
22622
- "line": 114
23944
+ "line": 120
22623
23945
  },
22624
23946
  "name": "junit",
22625
23947
  "optional": true,
@@ -22635,7 +23957,7 @@
22635
23957
  "immutable": true,
22636
23958
  "locationInModule": {
22637
23959
  "filename": "src/java/java-project.ts",
22638
- "line": 129
23960
+ "line": 135
22639
23961
  },
22640
23962
  "name": "projenrc",
22641
23963
  "optional": true,
@@ -22646,14 +23968,14 @@
22646
23968
  ],
22647
23969
  "symbolId": "src/java/java-project:JavaProject"
22648
23970
  },
22649
- "projen.java.JavaProjectOptions": {
23971
+ "projen.java.JavaProjectCommonOptions": {
22650
23972
  "assembly": "projen",
22651
23973
  "datatype": true,
22652
23974
  "docs": {
22653
23975
  "stability": "experimental",
22654
23976
  "summary": "Options for `JavaProject`."
22655
23977
  },
22656
- "fqn": "projen.java.JavaProjectOptions",
23978
+ "fqn": "projen.java.JavaProjectCommonOptions",
22657
23979
  "interfaces": [
22658
23980
  "projen.GitHubProjectOptions",
22659
23981
  "projen.java.PomOptions"
@@ -22661,9 +23983,9 @@
22661
23983
  "kind": "interface",
22662
23984
  "locationInModule": {
22663
23985
  "filename": "src/java/java-project.ts",
22664
- "line": 12
23986
+ "line": 13
22665
23987
  },
22666
- "name": "JavaProjectOptions",
23988
+ "name": "JavaProjectCommonOptions",
22667
23989
  "namespace": "java",
22668
23990
  "properties": [
22669
23991
  {
@@ -22676,7 +23998,7 @@
22676
23998
  "immutable": true,
22677
23999
  "locationInModule": {
22678
24000
  "filename": "src/java/java-project.ts",
22679
- "line": 70
24001
+ "line": 71
22680
24002
  },
22681
24003
  "name": "compileOptions",
22682
24004
  "optional": true,
@@ -22698,7 +24020,7 @@
22698
24020
  "immutable": true,
22699
24021
  "locationInModule": {
22700
24022
  "filename": "src/java/java-project.ts",
22701
- "line": 32
24023
+ "line": 33
22702
24024
  },
22703
24025
  "name": "deps",
22704
24026
  "optional": true,
@@ -22721,7 +24043,7 @@
22721
24043
  "immutable": true,
22722
24044
  "locationInModule": {
22723
24045
  "filename": "src/java/java-project.ts",
22724
- "line": 18
24046
+ "line": 19
22725
24047
  },
22726
24048
  "name": "distdir",
22727
24049
  "optional": true,
@@ -22739,7 +24061,7 @@
22739
24061
  "immutable": true,
22740
24062
  "locationInModule": {
22741
24063
  "filename": "src/java/java-project.ts",
22742
- "line": 52
24064
+ "line": 53
22743
24065
  },
22744
24066
  "name": "junit",
22745
24067
  "optional": true,
@@ -22757,7 +24079,7 @@
22757
24079
  "immutable": true,
22758
24080
  "locationInModule": {
22759
24081
  "filename": "src/java/java-project.ts",
22760
- "line": 58
24082
+ "line": 59
22761
24083
  },
22762
24084
  "name": "junitOptions",
22763
24085
  "optional": true,
@@ -22775,7 +24097,7 @@
22775
24097
  "immutable": true,
22776
24098
  "locationInModule": {
22777
24099
  "filename": "src/java/java-project.ts",
22778
- "line": 64
24100
+ "line": 65
22779
24101
  },
22780
24102
  "name": "packagingOptions",
22781
24103
  "optional": true,
@@ -22794,7 +24116,7 @@
22794
24116
  "immutable": true,
22795
24117
  "locationInModule": {
22796
24118
  "filename": "src/java/java-project.ts",
22797
- "line": 91
24119
+ "line": 81
22798
24120
  },
22799
24121
  "name": "projenrcJava",
22800
24122
  "optional": true,
@@ -22812,7 +24134,7 @@
22812
24134
  "immutable": true,
22813
24135
  "locationInModule": {
22814
24136
  "filename": "src/java/java-project.ts",
22815
- "line": 97
24137
+ "line": 87
22816
24138
  },
22817
24139
  "name": "projenrcJavaOptions",
22818
24140
  "optional": true,
@@ -22823,63 +24145,85 @@
22823
24145
  {
22824
24146
  "abstract": true,
22825
24147
  "docs": {
24148
+ "custom": {
24149
+ "featured": "true"
24150
+ },
24151
+ "default": "[]",
24152
+ "remarks": "Dependencies use the format: `<groupId>/<artifactId>@<semver>`\n\nAdditional dependencies can be added via `project.addTestDependency()`.",
22826
24153
  "stability": "experimental",
22827
- "summary": "Include sample code and test if the relevant directories don't exist."
24154
+ "summary": "List of test dependencies for this project."
22828
24155
  },
22829
24156
  "immutable": true,
22830
24157
  "locationInModule": {
22831
24158
  "filename": "src/java/java-project.ts",
22832
- "line": 75
24159
+ "line": 45
22833
24160
  },
22834
- "name": "sample",
24161
+ "name": "testDeps",
22835
24162
  "optional": true,
22836
24163
  "type": {
22837
- "primitive": "boolean"
24164
+ "collection": {
24165
+ "elementtype": {
24166
+ "primitive": "string"
24167
+ },
24168
+ "kind": "array"
24169
+ }
22838
24170
  }
22839
- },
24171
+ }
24172
+ ],
24173
+ "symbolId": "src/java/java-project:JavaProjectCommonOptions"
24174
+ },
24175
+ "projen.java.JavaProjectOptions": {
24176
+ "assembly": "projen",
24177
+ "datatype": true,
24178
+ "docs": {
24179
+ "stability": "experimental",
24180
+ "summary": "Options for `JavaProject`."
24181
+ },
24182
+ "fqn": "projen.java.JavaProjectOptions",
24183
+ "interfaces": [
24184
+ "projen.java.JavaProjectCommonOptions"
24185
+ ],
24186
+ "kind": "interface",
24187
+ "locationInModule": {
24188
+ "filename": "src/java/java-project.ts",
24189
+ "line": 93
24190
+ },
24191
+ "name": "JavaProjectOptions",
24192
+ "namespace": "java",
24193
+ "properties": [
22840
24194
  {
22841
24195
  "abstract": true,
22842
24196
  "docs": {
22843
- "default": "\"org.acme\"",
22844
24197
  "stability": "experimental",
22845
- "summary": "The java package to use for the code sample."
24198
+ "summary": "Include sample code and test if the relevant directories don't exist."
22846
24199
  },
22847
24200
  "immutable": true,
22848
24201
  "locationInModule": {
22849
24202
  "filename": "src/java/java-project.ts",
22850
- "line": 81
24203
+ "line": 97
22851
24204
  },
22852
- "name": "sampleJavaPackage",
24205
+ "name": "sample",
22853
24206
  "optional": true,
22854
24207
  "type": {
22855
- "primitive": "string"
24208
+ "primitive": "boolean"
22856
24209
  }
22857
24210
  },
22858
24211
  {
22859
24212
  "abstract": true,
22860
24213
  "docs": {
22861
- "custom": {
22862
- "featured": "true"
22863
- },
22864
- "default": "[]",
22865
- "remarks": "Dependencies use the format: `<groupId>/<artifactId>@<semver>`\n\nAdditional dependencies can be added via `project.addTestDependency()`.",
24214
+ "default": "\"org.acme\"",
22866
24215
  "stability": "experimental",
22867
- "summary": "List of test dependencies for this project."
24216
+ "summary": "The java package to use for the code sample."
22868
24217
  },
22869
24218
  "immutable": true,
22870
24219
  "locationInModule": {
22871
24220
  "filename": "src/java/java-project.ts",
22872
- "line": 44
24221
+ "line": 103
22873
24222
  },
22874
- "name": "testDeps",
24223
+ "name": "sampleJavaPackage",
22875
24224
  "optional": true,
22876
24225
  "type": {
22877
- "collection": {
22878
- "elementtype": {
22879
- "primitive": "string"
22880
- },
22881
- "kind": "array"
22882
- }
24226
+ "primitive": "string"
22883
24227
  }
22884
24228
  }
22885
24229
  ],
@@ -24057,6 +25401,368 @@
24057
25401
  ],
24058
25402
  "symbolId": "src/java/projenrc:ProjenrcOptions"
24059
25403
  },
25404
+ "projen.javascript.BundleOptions": {
25405
+ "assembly": "projen",
25406
+ "datatype": true,
25407
+ "docs": {
25408
+ "stability": "experimental",
25409
+ "summary": "Options for bundling."
25410
+ },
25411
+ "fqn": "projen.javascript.BundleOptions",
25412
+ "kind": "interface",
25413
+ "locationInModule": {
25414
+ "filename": "src/javascript/bundler.ts",
25415
+ "line": 126
25416
+ },
25417
+ "name": "BundleOptions",
25418
+ "namespace": "javascript",
25419
+ "properties": [
25420
+ {
25421
+ "abstract": true,
25422
+ "docs": {
25423
+ "stability": "experimental",
25424
+ "summary": "The entrypoint of the code you wish to bundle."
25425
+ },
25426
+ "immutable": true,
25427
+ "locationInModule": {
25428
+ "filename": "src/javascript/bundler.ts",
25429
+ "line": 130
25430
+ },
25431
+ "name": "entrypoint",
25432
+ "type": {
25433
+ "primitive": "string"
25434
+ }
25435
+ },
25436
+ {
25437
+ "abstract": true,
25438
+ "docs": {
25439
+ "stability": "experimental",
25440
+ "summary": "This option sets the output file name for the build operation."
25441
+ },
25442
+ "immutable": true,
25443
+ "locationInModule": {
25444
+ "filename": "src/javascript/bundler.ts",
25445
+ "line": 149
25446
+ },
25447
+ "name": "outfile",
25448
+ "type": {
25449
+ "primitive": "string"
25450
+ }
25451
+ },
25452
+ {
25453
+ "abstract": true,
25454
+ "docs": {
25455
+ "example": "\"node\"",
25456
+ "stability": "experimental",
25457
+ "summary": "esbuild platform."
25458
+ },
25459
+ "immutable": true,
25460
+ "locationInModule": {
25461
+ "filename": "src/javascript/bundler.ts",
25462
+ "line": 144
25463
+ },
25464
+ "name": "platform",
25465
+ "type": {
25466
+ "primitive": "string"
25467
+ }
25468
+ },
25469
+ {
25470
+ "abstract": true,
25471
+ "docs": {
25472
+ "example": "\"node12\"",
25473
+ "stability": "experimental",
25474
+ "summary": "esbuild target."
25475
+ },
25476
+ "immutable": true,
25477
+ "locationInModule": {
25478
+ "filename": "src/javascript/bundler.ts",
25479
+ "line": 137
25480
+ },
25481
+ "name": "target",
25482
+ "type": {
25483
+ "primitive": "string"
25484
+ }
25485
+ },
25486
+ {
25487
+ "abstract": true,
25488
+ "docs": {
25489
+ "default": "[]",
25490
+ "remarks": "Instead of being bundled, the import will be preserved (using require for\nthe iife and cjs formats and using import for the esm format) and will be\nevaluated at run time instead.\n\nThis has several uses. First of all, it can be used to trim unnecessary\ncode from your bundle for a code path that you know will never be executed.\nFor example, a package may contain code that only runs in node but you will\nonly be using that package in the browser. It can also be used to import\ncode in node at run time from a package that cannot be bundled. For\nexample, the fsevents package contains a native extension, which esbuild\ndoesn't support.",
25491
+ "stability": "experimental",
25492
+ "summary": "You can mark a file or a package as external to exclude it from your build."
25493
+ },
25494
+ "immutable": true,
25495
+ "locationInModule": {
25496
+ "filename": "src/javascript/bundler.ts",
25497
+ "line": 167
25498
+ },
25499
+ "name": "externals",
25500
+ "optional": true,
25501
+ "type": {
25502
+ "collection": {
25503
+ "elementtype": {
25504
+ "primitive": "string"
25505
+ },
25506
+ "kind": "array"
25507
+ }
25508
+ }
25509
+ },
25510
+ {
25511
+ "abstract": true,
25512
+ "docs": {
25513
+ "default": "true",
25514
+ "stability": "experimental",
25515
+ "summary": "Include a source map in the bundle."
25516
+ },
25517
+ "immutable": true,
25518
+ "locationInModule": {
25519
+ "filename": "src/javascript/bundler.ts",
25520
+ "line": 174
25521
+ },
25522
+ "name": "sourcemap",
25523
+ "optional": true,
25524
+ "type": {
25525
+ "primitive": "boolean"
25526
+ }
25527
+ },
25528
+ {
25529
+ "abstract": true,
25530
+ "docs": {
25531
+ "default": "true",
25532
+ "remarks": "This can be used\nto continusouly watch for changes.",
25533
+ "stability": "experimental",
25534
+ "summary": "In addition to the `bundle:xyz` task, creates `bundle:xyz:watch` task which will invoke the same esbuild command with the `--watch` flag."
25535
+ },
25536
+ "immutable": true,
25537
+ "locationInModule": {
25538
+ "filename": "src/javascript/bundler.ts",
25539
+ "line": 183
25540
+ },
25541
+ "name": "watchTask",
25542
+ "optional": true,
25543
+ "type": {
25544
+ "primitive": "boolean"
25545
+ }
25546
+ }
25547
+ ],
25548
+ "symbolId": "src/javascript/bundler:BundleOptions"
25549
+ },
25550
+ "projen.javascript.Bundler": {
25551
+ "assembly": "projen",
25552
+ "base": "projen.Component",
25553
+ "docs": {
25554
+ "stability": "experimental",
25555
+ "summary": "Adds support for bundling JavaScript applications and dependencies into a single file."
25556
+ },
25557
+ "fqn": "projen.javascript.Bundler",
25558
+ "initializer": {
25559
+ "docs": {
25560
+ "stability": "experimental",
25561
+ "summary": "Creates a `Bundler`."
25562
+ },
25563
+ "locationInModule": {
25564
+ "filename": "src/javascript/bundler.ts",
25565
+ "line": 52
25566
+ },
25567
+ "parameters": [
25568
+ {
25569
+ "name": "project",
25570
+ "type": {
25571
+ "fqn": "projen.Project"
25572
+ }
25573
+ },
25574
+ {
25575
+ "name": "options",
25576
+ "type": {
25577
+ "fqn": "projen.javascript.BundlerOptions"
25578
+ }
25579
+ }
25580
+ ]
25581
+ },
25582
+ "kind": "class",
25583
+ "locationInModule": {
25584
+ "filename": "src/javascript/bundler.ts",
25585
+ "line": 32
25586
+ },
25587
+ "methods": [
25588
+ {
25589
+ "docs": {
25590
+ "returns": "A bundler",
25591
+ "stability": "experimental",
25592
+ "summary": "Returns the `Bundler` instance associated with a project or `undefined` if there is no Bundler."
25593
+ },
25594
+ "locationInModule": {
25595
+ "filename": "src/javascript/bundler.ts",
25596
+ "line": 39
25597
+ },
25598
+ "name": "of",
25599
+ "parameters": [
25600
+ {
25601
+ "docs": {
25602
+ "summary": "The project."
25603
+ },
25604
+ "name": "project",
25605
+ "type": {
25606
+ "fqn": "projen.Project"
25607
+ }
25608
+ }
25609
+ ],
25610
+ "returns": {
25611
+ "optional": true,
25612
+ "type": {
25613
+ "fqn": "projen.javascript.Bundler"
25614
+ }
25615
+ },
25616
+ "static": true
25617
+ },
25618
+ {
25619
+ "docs": {
25620
+ "stability": "experimental",
25621
+ "summary": "Adds a task to the project which bundles a specific entrypoint and all of its dependencies into a single javascript output file."
25622
+ },
25623
+ "locationInModule": {
25624
+ "filename": "src/javascript/bundler.ts",
25625
+ "line": 85
25626
+ },
25627
+ "name": "addBundle",
25628
+ "parameters": [
25629
+ {
25630
+ "docs": {
25631
+ "summary": "The name of the artifact (the task will be named `bundle:$name`)."
25632
+ },
25633
+ "name": "name",
25634
+ "type": {
25635
+ "primitive": "string"
25636
+ }
25637
+ },
25638
+ {
25639
+ "docs": {
25640
+ "summary": "Bundling options."
25641
+ },
25642
+ "name": "options",
25643
+ "type": {
25644
+ "fqn": "projen.javascript.BundleOptions"
25645
+ }
25646
+ }
25647
+ ],
25648
+ "returns": {
25649
+ "type": {
25650
+ "fqn": "projen.tasks.Task"
25651
+ }
25652
+ }
25653
+ }
25654
+ ],
25655
+ "name": "Bundler",
25656
+ "namespace": "javascript",
25657
+ "properties": [
25658
+ {
25659
+ "docs": {
25660
+ "stability": "experimental",
25661
+ "summary": "Gets or creates the singleton \"bundle\" task of the project."
25662
+ },
25663
+ "immutable": true,
25664
+ "locationInModule": {
25665
+ "filename": "src/javascript/bundler.ts",
25666
+ "line": 62
25667
+ },
25668
+ "name": "bundleTask",
25669
+ "type": {
25670
+ "fqn": "projen.tasks.Task"
25671
+ }
25672
+ },
25673
+ {
25674
+ "docs": {
25675
+ "stability": "experimental"
25676
+ },
25677
+ "immutable": true,
25678
+ "locationInModule": {
25679
+ "filename": "src/javascript/bundler.ts",
25680
+ "line": 47
25681
+ },
25682
+ "name": "esbuildVersion",
25683
+ "optional": true,
25684
+ "type": {
25685
+ "primitive": "string"
25686
+ }
25687
+ }
25688
+ ],
25689
+ "symbolId": "src/javascript/bundler:Bundler"
25690
+ },
25691
+ "projen.javascript.BundlerCommonOptions": {
25692
+ "assembly": "projen",
25693
+ "datatype": true,
25694
+ "docs": {
25695
+ "stability": "experimental",
25696
+ "summary": "Common options for `Bundler`."
25697
+ },
25698
+ "fqn": "projen.javascript.BundlerCommonOptions",
25699
+ "kind": "interface",
25700
+ "locationInModule": {
25701
+ "filename": "src/javascript/bundler.ts",
25702
+ "line": 9
25703
+ },
25704
+ "name": "BundlerCommonOptions",
25705
+ "namespace": "javascript",
25706
+ "properties": [
25707
+ {
25708
+ "abstract": true,
25709
+ "docs": {
25710
+ "default": "- no specific version (implies latest)",
25711
+ "stability": "experimental",
25712
+ "summary": "The semantic version requirement for `esbuild`."
25713
+ },
25714
+ "immutable": true,
25715
+ "locationInModule": {
25716
+ "filename": "src/javascript/bundler.ts",
25717
+ "line": 15
25718
+ },
25719
+ "name": "esbuildVersion",
25720
+ "optional": true,
25721
+ "type": {
25722
+ "primitive": "string"
25723
+ }
25724
+ }
25725
+ ],
25726
+ "symbolId": "src/javascript/bundler:BundlerCommonOptions"
25727
+ },
25728
+ "projen.javascript.BundlerOptions": {
25729
+ "assembly": "projen",
25730
+ "datatype": true,
25731
+ "docs": {
25732
+ "stability": "experimental",
25733
+ "summary": "Options for `Bundler`."
25734
+ },
25735
+ "fqn": "projen.javascript.BundlerOptions",
25736
+ "interfaces": [
25737
+ "projen.javascript.BundlerCommonOptions"
25738
+ ],
25739
+ "kind": "interface",
25740
+ "locationInModule": {
25741
+ "filename": "src/javascript/bundler.ts",
25742
+ "line": 21
25743
+ },
25744
+ "name": "BundlerOptions",
25745
+ "namespace": "javascript",
25746
+ "properties": [
25747
+ {
25748
+ "abstract": true,
25749
+ "docs": {
25750
+ "stability": "experimental",
25751
+ "summary": "A parent task that will spawn the \"bundle\" task (usually \"compile\")."
25752
+ },
25753
+ "immutable": true,
25754
+ "locationInModule": {
25755
+ "filename": "src/javascript/bundler.ts",
25756
+ "line": 25
25757
+ },
25758
+ "name": "parentTask",
25759
+ "type": {
25760
+ "fqn": "projen.tasks.Task"
25761
+ }
25762
+ }
25763
+ ],
25764
+ "symbolId": "src/javascript/bundler:BundlerOptions"
25765
+ },
24060
25766
  "projen.javascript.NpmConfig": {
24061
25767
  "assembly": "projen",
24062
25768
  "base": "projen.Component",
@@ -25456,7 +27162,7 @@
25456
27162
  },
25457
27163
  "locationInModule": {
25458
27164
  "filename": "src/python/projenrc.ts",
25459
- "line": 41
27165
+ "line": 39
25460
27166
  },
25461
27167
  "parameters": [
25462
27168
  {
@@ -25477,7 +27183,7 @@
25477
27183
  "kind": "class",
25478
27184
  "locationInModule": {
25479
27185
  "filename": "src/python/projenrc.ts",
25480
- "line": 35
27186
+ "line": 33
25481
27187
  },
25482
27188
  "name": "Projenrc",
25483
27189
  "namespace": "python",
@@ -25494,7 +27200,7 @@
25494
27200
  "kind": "interface",
25495
27201
  "locationInModule": {
25496
27202
  "filename": "src/python/projenrc.ts",
25497
- "line": 15
27203
+ "line": 13
25498
27204
  },
25499
27205
  "name": "ProjenrcOptions",
25500
27206
  "namespace": "python",
@@ -25509,7 +27215,7 @@
25509
27215
  "immutable": true,
25510
27216
  "locationInModule": {
25511
27217
  "filename": "src/python/projenrc.ts",
25512
- "line": 20
27218
+ "line": 18
25513
27219
  },
25514
27220
  "name": "filename",
25515
27221
  "optional": true,
@@ -25527,7 +27233,7 @@
25527
27233
  "immutable": true,
25528
27234
  "locationInModule": {
25529
27235
  "filename": "src/python/projenrc.ts",
25530
- "line": 26
27236
+ "line": 24
25531
27237
  },
25532
27238
  "name": "projenVersion",
25533
27239
  "optional": true,
@@ -32171,6 +33877,6 @@
32171
33877
  "symbolId": "src/web/tailwind:TailwindConfigOptions"
32172
33878
  }
32173
33879
  },
32174
- "version": "0.31.18",
32175
- "fingerprint": "o6IPzETpCcRGCKDt4wgCy9+9Z4mYrcmH7qukuJm+G9E="
33880
+ "version": "0.32.2",
33881
+ "fingerprint": "TE98JE638HEKJaCB2796crLrchiREkovI085lORbAtw="
32176
33882
  }