From a9f3890fbabcb12db3b4ee30d1d1327ef3dca3ff Mon Sep 17 00:00:00 2001 From: Elad Ben-Israel Date: Tue, 27 Oct 2020 11:43:18 +0200 Subject: [PATCH] feat(node): deprecate "xxxDependencies" in favor of "xxxDeps" (warning) Mark the `xxxDependencies` options as deprecated and issue a warning during synthesis. The alternative is to use the `xxxDeps` option which allows managing versions in `package.json` file. This is a superior approach as it allows external tools such as dependabot to manage your module versions. Instead of: dependencies: { 'express': Server.caret('2.0.0') } Use: deps: [ 'express' ] Or if you need a specific version (unlikely): deps: [ 'express@^2' ] When a version is not specified, projen will behave like `npm i` or `yarn add`. It will install the latest version and record it as a caret dependency in your `package.json` file. From here on out, the version will be managed in your `package.json` file. --- .projenrc.js | 2 +- API.md | 402 +++++++++++----------- src/logging.ts | 2 +- src/node-project.ts | 112 +++++- src/semver.ts | 5 + test/__snapshots__/inventory.test.ts.snap | 77 +++++ 6 files changed, 392 insertions(+), 208 deletions(-) diff --git a/.projenrc.js b/.projenrc.js index 0c51424abc9..3d669f085df 100644 --- a/.projenrc.js +++ b/.projenrc.js @@ -1,4 +1,4 @@ -const { JsiiProject, JsonFile } = require('./lib'); +const { JsiiProject, JsonFile, Semver } = require('./lib'); const project = new JsiiProject({ name: 'projen', diff --git a/API.md b/API.md index ec8b50ea8e5..3bc251a6135 100644 --- a/API.md +++ b/API.md @@ -216,16 +216,16 @@ new AwsCdkConstructLibrary(options: AwsCdkConstructLibraryOptions) * **bin** (Map) Binary programs vended with your module. __*Optional*__ * **buildWorkflow** (boolean) Define a GitHub workflow for building PRs. __*Default*__: true * **bundledDependencies** (Array) *No description* __*Optional*__ - * **bundledDeps** (Array) *No description* __*Optional*__ + * **bundledDeps** (Array) List of dependencies to bundle into this module. __*Optional*__ * **copyrightOwner** (string) License copyright owner. __*Default*__: defaults to the value of authorName or "" if `authorName` is undefined. * **copyrightPeriod** (string) The copyright years to put in the LICENSE file. __*Default*__: current year * **defaultReleaseBranch** (string) The name of the main release branch. __*Default*__: 'master' * **dependabot** (boolean) Include dependabot configuration. __*Default*__: true; * **dependabotOptions** ([DependabotOptions](#projen-dependabotoptions)) Options for dependabot. __*Default*__: default options * **dependencies** (Map) *No description* __*Optional*__ - * **deps** (Array) *No description* __*Optional*__ + * **deps** (Array) Runtime dependencies of this module. __*Default*__: [] * **devDependencies** (Map) *No description* __*Optional*__ - * **devDeps** (Array) *No description* __*Optional*__ + * **devDeps** (Array) Build dependencies for this module. __*Default*__: [] * **entrypoint** (string) Module entrypoint (`main` in `package.json`). __*Default*__: lib/index.js * **keywords** (Array) Keywords to include in `package.json`. __*Optional*__ * **libdir** (string) Compiler artifacts output directory. __*Default*__: "lib" @@ -240,8 +240,8 @@ new AwsCdkConstructLibrary(options: AwsCdkConstructLibraryOptions) * **npmRegistry** (string) The registry url to use when releasing packages. __*Default*__: "registry.npmjs.org" * **packageManager** ([NodePackageManager](#projen-nodepackagemanager)) The Node Package Manager used to execute scripts. __*Default*__: packageManager.YARN * **peerDependencies** (Map) *No description* __*Optional*__ - * **peerDependencyOptions** ([PeerDependencyOptions](#projen-peerdependencyoptions)) *No description* __*Optional*__ - * **peerDeps** (Array) *No description* __*Optional*__ + * **peerDependencyOptions** ([PeerDependencyOptions](#projen-peerdependencyoptions)) Options for `peerDeps`. __*Optional*__ + * **peerDeps** (Array) Peer dependencies for this module. __*Default*__: [] * **projenDevDependency** (boolean) Indicates of "projen" should be installed as a devDependency. __*Default*__: true * **projenUpgradeAutoMerge** (boolean) Automatically merge projen upgrade PRs when build passes. __*Default*__: "true" if mergify auto-merge is enabled (default) * **projenUpgradeSchedule** (Array) Customize the projenUpgrade schedule in cron expression. __*Default*__: [ '0 6 * * *' ] @@ -358,16 +358,16 @@ new AwsCdkTypeScriptApp(options: AwsCdkTypeScriptAppOptions) * **bin** (Map) Binary programs vended with your module. __*Optional*__ * **buildWorkflow** (boolean) Define a GitHub workflow for building PRs. __*Default*__: true * **bundledDependencies** (Array) *No description* __*Optional*__ - * **bundledDeps** (Array) *No description* __*Optional*__ + * **bundledDeps** (Array) List of dependencies to bundle into this module. __*Optional*__ * **copyrightOwner** (string) License copyright owner. __*Default*__: defaults to the value of authorName or "" if `authorName` is undefined. * **copyrightPeriod** (string) The copyright years to put in the LICENSE file. __*Default*__: current year * **defaultReleaseBranch** (string) The name of the main release branch. __*Default*__: 'master' * **dependabot** (boolean) Include dependabot configuration. __*Default*__: true; * **dependabotOptions** ([DependabotOptions](#projen-dependabotoptions)) Options for dependabot. __*Default*__: default options * **dependencies** (Map) *No description* __*Optional*__ - * **deps** (Array) *No description* __*Optional*__ + * **deps** (Array) Runtime dependencies of this module. __*Default*__: [] * **devDependencies** (Map) *No description* __*Optional*__ - * **devDeps** (Array) *No description* __*Optional*__ + * **devDeps** (Array) Build dependencies for this module. __*Default*__: [] * **entrypoint** (string) Module entrypoint (`main` in `package.json`). __*Default*__: lib/index.js * **keywords** (Array) Keywords to include in `package.json`. __*Optional*__ * **libdir** (string) Compiler artifacts output directory. __*Default*__: "lib" @@ -382,8 +382,8 @@ new AwsCdkTypeScriptApp(options: AwsCdkTypeScriptAppOptions) * **npmRegistry** (string) The registry url to use when releasing packages. __*Default*__: "registry.npmjs.org" * **packageManager** ([NodePackageManager](#projen-nodepackagemanager)) The Node Package Manager used to execute scripts. __*Default*__: packageManager.YARN * **peerDependencies** (Map) *No description* __*Optional*__ - * **peerDependencyOptions** ([PeerDependencyOptions](#projen-peerdependencyoptions)) *No description* __*Optional*__ - * **peerDeps** (Array) *No description* __*Optional*__ + * **peerDependencyOptions** ([PeerDependencyOptions](#projen-peerdependencyoptions)) Options for `peerDeps`. __*Optional*__ + * **peerDeps** (Array) Peer dependencies for this module. __*Default*__: [] * **projenDevDependency** (boolean) Indicates of "projen" should be installed as a devDependency. __*Default*__: true * **projenUpgradeAutoMerge** (boolean) Automatically merge projen upgrade PRs when build passes. __*Default*__: "true" if mergify auto-merge is enabled (default) * **projenUpgradeSchedule** (Array) Customize the projenUpgrade schedule in cron expression. __*Default*__: [ '0 6 * * *' ] @@ -545,16 +545,16 @@ new ConstructLibrary(options: ConstructLibraryOptions) * **bin** (Map) Binary programs vended with your module. __*Optional*__ * **buildWorkflow** (boolean) Define a GitHub workflow for building PRs. __*Default*__: true * **bundledDependencies** (Array) *No description* __*Optional*__ - * **bundledDeps** (Array) *No description* __*Optional*__ + * **bundledDeps** (Array) List of dependencies to bundle into this module. __*Optional*__ * **copyrightOwner** (string) License copyright owner. __*Default*__: defaults to the value of authorName or "" if `authorName` is undefined. * **copyrightPeriod** (string) The copyright years to put in the LICENSE file. __*Default*__: current year * **defaultReleaseBranch** (string) The name of the main release branch. __*Default*__: 'master' * **dependabot** (boolean) Include dependabot configuration. __*Default*__: true; * **dependabotOptions** ([DependabotOptions](#projen-dependabotoptions)) Options for dependabot. __*Default*__: default options * **dependencies** (Map) *No description* __*Optional*__ - * **deps** (Array) *No description* __*Optional*__ + * **deps** (Array) Runtime dependencies of this module. __*Default*__: [] * **devDependencies** (Map) *No description* __*Optional*__ - * **devDeps** (Array) *No description* __*Optional*__ + * **devDeps** (Array) Build dependencies for this module. __*Default*__: [] * **entrypoint** (string) Module entrypoint (`main` in `package.json`). __*Default*__: lib/index.js * **keywords** (Array) Keywords to include in `package.json`. __*Optional*__ * **libdir** (string) Compiler artifacts output directory. __*Default*__: "lib" @@ -569,8 +569,8 @@ new ConstructLibrary(options: ConstructLibraryOptions) * **npmRegistry** (string) The registry url to use when releasing packages. __*Default*__: "registry.npmjs.org" * **packageManager** ([NodePackageManager](#projen-nodepackagemanager)) The Node Package Manager used to execute scripts. __*Default*__: packageManager.YARN * **peerDependencies** (Map) *No description* __*Optional*__ - * **peerDependencyOptions** ([PeerDependencyOptions](#projen-peerdependencyoptions)) *No description* __*Optional*__ - * **peerDeps** (Array) *No description* __*Optional*__ + * **peerDependencyOptions** ([PeerDependencyOptions](#projen-peerdependencyoptions)) Options for `peerDeps`. __*Optional*__ + * **peerDeps** (Array) Peer dependencies for this module. __*Default*__: [] * **projenDevDependency** (boolean) Indicates of "projen" should be installed as a devDependency. __*Default*__: true * **projenUpgradeAutoMerge** (boolean) Automatically merge projen upgrade PRs when build passes. __*Default*__: "true" if mergify auto-merge is enabled (default) * **projenUpgradeSchedule** (Array) Customize the projenUpgrade schedule in cron expression. __*Default*__: [ '0 6 * * *' ] @@ -639,16 +639,16 @@ new ConstructLibraryAws(options: AwsCdkConstructLibraryOptions) * **bin** (Map) Binary programs vended with your module. __*Optional*__ * **buildWorkflow** (boolean) Define a GitHub workflow for building PRs. __*Default*__: true * **bundledDependencies** (Array) *No description* __*Optional*__ - * **bundledDeps** (Array) *No description* __*Optional*__ + * **bundledDeps** (Array) List of dependencies to bundle into this module. __*Optional*__ * **copyrightOwner** (string) License copyright owner. __*Default*__: defaults to the value of authorName or "" if `authorName` is undefined. * **copyrightPeriod** (string) The copyright years to put in the LICENSE file. __*Default*__: current year * **defaultReleaseBranch** (string) The name of the main release branch. __*Default*__: 'master' * **dependabot** (boolean) Include dependabot configuration. __*Default*__: true; * **dependabotOptions** ([DependabotOptions](#projen-dependabotoptions)) Options for dependabot. __*Default*__: default options * **dependencies** (Map) *No description* __*Optional*__ - * **deps** (Array) *No description* __*Optional*__ + * **deps** (Array) Runtime dependencies of this module. __*Default*__: [] * **devDependencies** (Map) *No description* __*Optional*__ - * **devDeps** (Array) *No description* __*Optional*__ + * **devDeps** (Array) Build dependencies for this module. __*Default*__: [] * **entrypoint** (string) Module entrypoint (`main` in `package.json`). __*Default*__: lib/index.js * **keywords** (Array) Keywords to include in `package.json`. __*Optional*__ * **libdir** (string) Compiler artifacts output directory. __*Default*__: "lib" @@ -663,8 +663,8 @@ new ConstructLibraryAws(options: AwsCdkConstructLibraryOptions) * **npmRegistry** (string) The registry url to use when releasing packages. __*Default*__: "registry.npmjs.org" * **packageManager** ([NodePackageManager](#projen-nodepackagemanager)) The Node Package Manager used to execute scripts. __*Default*__: packageManager.YARN * **peerDependencies** (Map) *No description* __*Optional*__ - * **peerDependencyOptions** ([PeerDependencyOptions](#projen-peerdependencyoptions)) *No description* __*Optional*__ - * **peerDeps** (Array) *No description* __*Optional*__ + * **peerDependencyOptions** ([PeerDependencyOptions](#projen-peerdependencyoptions)) Options for `peerDeps`. __*Optional*__ + * **peerDeps** (Array) Peer dependencies for this module. __*Default*__: [] * **projenDevDependency** (boolean) Indicates of "projen" should be installed as a devDependency. __*Default*__: true * **projenUpgradeAutoMerge** (boolean) Automatically merge projen upgrade PRs when build passes. __*Default*__: "true" if mergify auto-merge is enabled (default) * **projenUpgradeSchedule** (Array) Customize the projenUpgrade schedule in cron expression. __*Default*__: [ '0 6 * * *' ] @@ -741,16 +741,16 @@ new ConstructLibraryCdk8s(options: ConstructLibraryCdk8sOptions) * **bin** (Map) Binary programs vended with your module. __*Optional*__ * **buildWorkflow** (boolean) Define a GitHub workflow for building PRs. __*Default*__: true * **bundledDependencies** (Array) *No description* __*Optional*__ - * **bundledDeps** (Array) *No description* __*Optional*__ + * **bundledDeps** (Array) List of dependencies to bundle into this module. __*Optional*__ * **copyrightOwner** (string) License copyright owner. __*Default*__: defaults to the value of authorName or "" if `authorName` is undefined. * **copyrightPeriod** (string) The copyright years to put in the LICENSE file. __*Default*__: current year * **defaultReleaseBranch** (string) The name of the main release branch. __*Default*__: 'master' * **dependabot** (boolean) Include dependabot configuration. __*Default*__: true; * **dependabotOptions** ([DependabotOptions](#projen-dependabotoptions)) Options for dependabot. __*Default*__: default options * **dependencies** (Map) *No description* __*Optional*__ - * **deps** (Array) *No description* __*Optional*__ + * **deps** (Array) Runtime dependencies of this module. __*Default*__: [] * **devDependencies** (Map) *No description* __*Optional*__ - * **devDeps** (Array) *No description* __*Optional*__ + * **devDeps** (Array) Build dependencies for this module. __*Default*__: [] * **entrypoint** (string) Module entrypoint (`main` in `package.json`). __*Default*__: lib/index.js * **keywords** (Array) Keywords to include in `package.json`. __*Optional*__ * **libdir** (string) Compiler artifacts output directory. __*Default*__: "lib" @@ -765,8 +765,8 @@ new ConstructLibraryCdk8s(options: ConstructLibraryCdk8sOptions) * **npmRegistry** (string) The registry url to use when releasing packages. __*Default*__: "registry.npmjs.org" * **packageManager** ([NodePackageManager](#projen-nodepackagemanager)) The Node Package Manager used to execute scripts. __*Default*__: packageManager.YARN * **peerDependencies** (Map) *No description* __*Optional*__ - * **peerDependencyOptions** ([PeerDependencyOptions](#projen-peerdependencyoptions)) *No description* __*Optional*__ - * **peerDeps** (Array) *No description* __*Optional*__ + * **peerDependencyOptions** ([PeerDependencyOptions](#projen-peerdependencyoptions)) Options for `peerDeps`. __*Optional*__ + * **peerDeps** (Array) Peer dependencies for this module. __*Default*__: [] * **projenDevDependency** (boolean) Indicates of "projen" should be installed as a devDependency. __*Default*__: true * **projenUpgradeAutoMerge** (boolean) Automatically merge projen upgrade PRs when build passes. __*Default*__: "true" if mergify auto-merge is enabled (default) * **projenUpgradeSchedule** (Array) Customize the projenUpgrade schedule in cron expression. __*Default*__: [ '0 6 * * *' ] @@ -1409,16 +1409,16 @@ new JsiiProject(options: JsiiProjectOptions) * **bin** (Map) Binary programs vended with your module. __*Optional*__ * **buildWorkflow** (boolean) Define a GitHub workflow for building PRs. __*Default*__: true * **bundledDependencies** (Array) *No description* __*Optional*__ - * **bundledDeps** (Array) *No description* __*Optional*__ + * **bundledDeps** (Array) List of dependencies to bundle into this module. __*Optional*__ * **copyrightOwner** (string) License copyright owner. __*Default*__: defaults to the value of authorName or "" if `authorName` is undefined. * **copyrightPeriod** (string) The copyright years to put in the LICENSE file. __*Default*__: current year * **defaultReleaseBranch** (string) The name of the main release branch. __*Default*__: 'master' * **dependabot** (boolean) Include dependabot configuration. __*Default*__: true; * **dependabotOptions** ([DependabotOptions](#projen-dependabotoptions)) Options for dependabot. __*Default*__: default options * **dependencies** (Map) *No description* __*Optional*__ - * **deps** (Array) *No description* __*Optional*__ + * **deps** (Array) Runtime dependencies of this module. __*Default*__: [] * **devDependencies** (Map) *No description* __*Optional*__ - * **devDeps** (Array) *No description* __*Optional*__ + * **devDeps** (Array) Build dependencies for this module. __*Default*__: [] * **entrypoint** (string) Module entrypoint (`main` in `package.json`). __*Default*__: lib/index.js * **keywords** (Array) Keywords to include in `package.json`. __*Optional*__ * **libdir** (string) Compiler artifacts output directory. __*Default*__: "lib" @@ -1433,8 +1433,8 @@ new JsiiProject(options: JsiiProjectOptions) * **npmRegistry** (string) The registry url to use when releasing packages. __*Default*__: "registry.npmjs.org" * **packageManager** ([NodePackageManager](#projen-nodepackagemanager)) The Node Package Manager used to execute scripts. __*Default*__: packageManager.YARN * **peerDependencies** (Map) *No description* __*Optional*__ - * **peerDependencyOptions** ([PeerDependencyOptions](#projen-peerdependencyoptions)) *No description* __*Optional*__ - * **peerDeps** (Array) *No description* __*Optional*__ + * **peerDependencyOptions** ([PeerDependencyOptions](#projen-peerdependencyoptions)) Options for `peerDeps`. __*Optional*__ + * **peerDeps** (Array) Peer dependencies for this module. __*Default*__: [] * **projenDevDependency** (boolean) Indicates of "projen" should be installed as a devDependency. __*Default*__: true * **projenUpgradeAutoMerge** (boolean) Automatically merge projen upgrade PRs when build passes. __*Default*__: "true" if mergify auto-merge is enabled (default) * **projenUpgradeSchedule** (Array) Customize the projenUpgrade schedule in cron expression. __*Default*__: [ '0 6 * * *' ] @@ -1776,16 +1776,16 @@ new NextJsProject(options: NextJsProjectOptions) * **bin** (Map) Binary programs vended with your module. __*Optional*__ * **buildWorkflow** (boolean) Define a GitHub workflow for building PRs. __*Default*__: true * **bundledDependencies** (Array) *No description* __*Optional*__ - * **bundledDeps** (Array) *No description* __*Optional*__ + * **bundledDeps** (Array) List of dependencies to bundle into this module. __*Optional*__ * **copyrightOwner** (string) License copyright owner. __*Default*__: defaults to the value of authorName or "" if `authorName` is undefined. * **copyrightPeriod** (string) The copyright years to put in the LICENSE file. __*Default*__: current year * **defaultReleaseBranch** (string) The name of the main release branch. __*Default*__: 'master' * **dependabot** (boolean) Include dependabot configuration. __*Default*__: true; * **dependabotOptions** ([DependabotOptions](#projen-dependabotoptions)) Options for dependabot. __*Default*__: default options * **dependencies** (Map) *No description* __*Optional*__ - * **deps** (Array) *No description* __*Optional*__ + * **deps** (Array) Runtime dependencies of this module. __*Default*__: [] * **devDependencies** (Map) *No description* __*Optional*__ - * **devDeps** (Array) *No description* __*Optional*__ + * **devDeps** (Array) Build dependencies for this module. __*Default*__: [] * **entrypoint** (string) Module entrypoint (`main` in `package.json`). __*Default*__: lib/index.js * **keywords** (Array) Keywords to include in `package.json`. __*Optional*__ * **libdir** (string) Compiler artifacts output directory. __*Default*__: "lib" @@ -1800,8 +1800,8 @@ new NextJsProject(options: NextJsProjectOptions) * **npmRegistry** (string) The registry url to use when releasing packages. __*Default*__: "registry.npmjs.org" * **packageManager** ([NodePackageManager](#projen-nodepackagemanager)) The Node Package Manager used to execute scripts. __*Default*__: packageManager.YARN * **peerDependencies** (Map) *No description* __*Optional*__ - * **peerDependencyOptions** ([PeerDependencyOptions](#projen-peerdependencyoptions)) *No description* __*Optional*__ - * **peerDeps** (Array) *No description* __*Optional*__ + * **peerDependencyOptions** ([PeerDependencyOptions](#projen-peerdependencyoptions)) Options for `peerDeps`. __*Optional*__ + * **peerDeps** (Array) Peer dependencies for this module. __*Default*__: [] * **projenDevDependency** (boolean) Indicates of "projen" should be installed as a devDependency. __*Default*__: true * **projenUpgradeAutoMerge** (boolean) Automatically merge projen upgrade PRs when build passes. __*Default*__: "true" if mergify auto-merge is enabled (default) * **projenUpgradeSchedule** (Array) Customize the projenUpgrade schedule in cron expression. __*Default*__: [ '0 6 * * *' ] @@ -1912,16 +1912,16 @@ new NextJsTypeScriptProject(options: NextJsTypeScriptProjectOptions) * **bin** (Map) Binary programs vended with your module. __*Optional*__ * **buildWorkflow** (boolean) Define a GitHub workflow for building PRs. __*Default*__: true * **bundledDependencies** (Array) *No description* __*Optional*__ - * **bundledDeps** (Array) *No description* __*Optional*__ + * **bundledDeps** (Array) List of dependencies to bundle into this module. __*Optional*__ * **copyrightOwner** (string) License copyright owner. __*Default*__: defaults to the value of authorName or "" if `authorName` is undefined. * **copyrightPeriod** (string) The copyright years to put in the LICENSE file. __*Default*__: current year * **defaultReleaseBranch** (string) The name of the main release branch. __*Default*__: 'master' * **dependabot** (boolean) Include dependabot configuration. __*Default*__: true; * **dependabotOptions** ([DependabotOptions](#projen-dependabotoptions)) Options for dependabot. __*Default*__: default options * **dependencies** (Map) *No description* __*Optional*__ - * **deps** (Array) *No description* __*Optional*__ + * **deps** (Array) Runtime dependencies of this module. __*Default*__: [] * **devDependencies** (Map) *No description* __*Optional*__ - * **devDeps** (Array) *No description* __*Optional*__ + * **devDeps** (Array) Build dependencies for this module. __*Default*__: [] * **entrypoint** (string) Module entrypoint (`main` in `package.json`). __*Default*__: lib/index.js * **keywords** (Array) Keywords to include in `package.json`. __*Optional*__ * **libdir** (string) Compiler artifacts output directory. __*Default*__: "lib" @@ -1936,8 +1936,8 @@ new NextJsTypeScriptProject(options: NextJsTypeScriptProjectOptions) * **npmRegistry** (string) The registry url to use when releasing packages. __*Default*__: "registry.npmjs.org" * **packageManager** ([NodePackageManager](#projen-nodepackagemanager)) The Node Package Manager used to execute scripts. __*Default*__: packageManager.YARN * **peerDependencies** (Map) *No description* __*Optional*__ - * **peerDependencyOptions** ([PeerDependencyOptions](#projen-peerdependencyoptions)) *No description* __*Optional*__ - * **peerDeps** (Array) *No description* __*Optional*__ + * **peerDependencyOptions** ([PeerDependencyOptions](#projen-peerdependencyoptions)) Options for `peerDeps`. __*Optional*__ + * **peerDeps** (Array) Peer dependencies for this module. __*Default*__: [] * **projenDevDependency** (boolean) Indicates of "projen" should be installed as a devDependency. __*Default*__: true * **projenUpgradeAutoMerge** (boolean) Automatically merge projen upgrade PRs when build passes. __*Default*__: "true" if mergify auto-merge is enabled (default) * **projenUpgradeSchedule** (Array) Customize the projenUpgrade schedule in cron expression. __*Default*__: [ '0 6 * * *' ] @@ -2052,16 +2052,16 @@ new NodeProject(options: NodeProjectOptions) * **bin** (Map) Binary programs vended with your module. __*Optional*__ * **buildWorkflow** (boolean) Define a GitHub workflow for building PRs. __*Default*__: true * **bundledDependencies** (Array) *No description* __*Optional*__ - * **bundledDeps** (Array) *No description* __*Optional*__ + * **bundledDeps** (Array) List of dependencies to bundle into this module. __*Optional*__ * **copyrightOwner** (string) License copyright owner. __*Default*__: defaults to the value of authorName or "" if `authorName` is undefined. * **copyrightPeriod** (string) The copyright years to put in the LICENSE file. __*Default*__: current year * **defaultReleaseBranch** (string) The name of the main release branch. __*Default*__: 'master' * **dependabot** (boolean) Include dependabot configuration. __*Default*__: true; * **dependabotOptions** ([DependabotOptions](#projen-dependabotoptions)) Options for dependabot. __*Default*__: default options * **dependencies** (Map) *No description* __*Optional*__ - * **deps** (Array) *No description* __*Optional*__ + * **deps** (Array) Runtime dependencies of this module. __*Default*__: [] * **devDependencies** (Map) *No description* __*Optional*__ - * **devDeps** (Array) *No description* __*Optional*__ + * **devDeps** (Array) Build dependencies for this module. __*Default*__: [] * **entrypoint** (string) Module entrypoint (`main` in `package.json`). __*Default*__: lib/index.js * **keywords** (Array) Keywords to include in `package.json`. __*Optional*__ * **libdir** (string) Compiler artifacts output directory. __*Default*__: "lib" @@ -2076,8 +2076,8 @@ new NodeProject(options: NodeProjectOptions) * **npmRegistry** (string) The registry url to use when releasing packages. __*Default*__: "registry.npmjs.org" * **packageManager** ([NodePackageManager](#projen-nodepackagemanager)) The Node Package Manager used to execute scripts. __*Default*__: packageManager.YARN * **peerDependencies** (Map) *No description* __*Optional*__ - * **peerDependencyOptions** ([PeerDependencyOptions](#projen-peerdependencyoptions)) *No description* __*Optional*__ - * **peerDeps** (Array) *No description* __*Optional*__ + * **peerDependencyOptions** ([PeerDependencyOptions](#projen-peerdependencyoptions)) Options for `peerDeps`. __*Optional*__ + * **peerDeps** (Array) Peer dependencies for this module. __*Default*__: [] * **projenDevDependency** (boolean) Indicates of "projen" should be installed as a devDependency. __*Default*__: true * **projenUpgradeAutoMerge** (boolean) Automatically merge projen upgrade PRs when build passes. __*Default*__: "true" if mergify auto-merge is enabled (default) * **projenUpgradeSchedule** (Array) Customize the projenUpgrade schedule in cron expression. __*Default*__: [ '0 6 * * *' ] @@ -2154,7 +2154,7 @@ addBins(bins: Map): void -#### addBundledDependencies(...deps)🔹 +#### addBundledDependencies(...deps)⚠️ @@ -2196,7 +2196,7 @@ addCompileCommand(...commands: string[]): void -#### addDependencies(deps, bundle?)🔹 +#### addDependencies(deps, bundle?)⚠️ @@ -2223,7 +2223,7 @@ addDeps(...deps: string[]): void -#### addDevDependencies(deps)🔹 +#### addDevDependencies(deps)⚠️ @@ -2275,7 +2275,7 @@ addKeywords(...keywords: string[]): void -#### addPeerDependencies(deps, options?)🔹 +#### addPeerDependencies(deps, options?)⚠️ @@ -2571,16 +2571,16 @@ new ReactProject(options: ReactProjectOptions) * **bin** (Map) Binary programs vended with your module. __*Optional*__ * **buildWorkflow** (boolean) Define a GitHub workflow for building PRs. __*Default*__: true * **bundledDependencies** (Array) *No description* __*Optional*__ - * **bundledDeps** (Array) *No description* __*Optional*__ + * **bundledDeps** (Array) List of dependencies to bundle into this module. __*Optional*__ * **copyrightOwner** (string) License copyright owner. __*Default*__: defaults to the value of authorName or "" if `authorName` is undefined. * **copyrightPeriod** (string) The copyright years to put in the LICENSE file. __*Default*__: current year * **defaultReleaseBranch** (string) The name of the main release branch. __*Default*__: 'master' * **dependabot** (boolean) Include dependabot configuration. __*Default*__: true; * **dependabotOptions** ([DependabotOptions](#projen-dependabotoptions)) Options for dependabot. __*Default*__: default options * **dependencies** (Map) *No description* __*Optional*__ - * **deps** (Array) *No description* __*Optional*__ + * **deps** (Array) Runtime dependencies of this module. __*Default*__: [] * **devDependencies** (Map) *No description* __*Optional*__ - * **devDeps** (Array) *No description* __*Optional*__ + * **devDeps** (Array) Build dependencies for this module. __*Default*__: [] * **entrypoint** (string) Module entrypoint (`main` in `package.json`). __*Default*__: lib/index.js * **keywords** (Array) Keywords to include in `package.json`. __*Optional*__ * **libdir** (string) Compiler artifacts output directory. __*Default*__: "lib" @@ -2595,8 +2595,8 @@ new ReactProject(options: ReactProjectOptions) * **npmRegistry** (string) The registry url to use when releasing packages. __*Default*__: "registry.npmjs.org" * **packageManager** ([NodePackageManager](#projen-nodepackagemanager)) The Node Package Manager used to execute scripts. __*Default*__: packageManager.YARN * **peerDependencies** (Map) *No description* __*Optional*__ - * **peerDependencyOptions** ([PeerDependencyOptions](#projen-peerdependencyoptions)) *No description* __*Optional*__ - * **peerDeps** (Array) *No description* __*Optional*__ + * **peerDependencyOptions** ([PeerDependencyOptions](#projen-peerdependencyoptions)) Options for `peerDeps`. __*Optional*__ + * **peerDeps** (Array) Peer dependencies for this module. __*Default*__: [] * **projenDevDependency** (boolean) Indicates of "projen" should be installed as a devDependency. __*Default*__: true * **projenUpgradeAutoMerge** (boolean) Automatically merge projen upgrade PRs when build passes. __*Default*__: "true" if mergify auto-merge is enabled (default) * **projenUpgradeSchedule** (Array) Customize the projenUpgrade schedule in cron expression. __*Default*__: [ '0 6 * * *' ] @@ -2705,16 +2705,16 @@ new ReactTypeScriptProject(options: ReactTypeScriptProjectOptions) * **bin** (Map) Binary programs vended with your module. __*Optional*__ * **buildWorkflow** (boolean) Define a GitHub workflow for building PRs. __*Default*__: true * **bundledDependencies** (Array) *No description* __*Optional*__ - * **bundledDeps** (Array) *No description* __*Optional*__ + * **bundledDeps** (Array) List of dependencies to bundle into this module. __*Optional*__ * **copyrightOwner** (string) License copyright owner. __*Default*__: defaults to the value of authorName or "" if `authorName` is undefined. * **copyrightPeriod** (string) The copyright years to put in the LICENSE file. __*Default*__: current year * **defaultReleaseBranch** (string) The name of the main release branch. __*Default*__: 'master' * **dependabot** (boolean) Include dependabot configuration. __*Default*__: true; * **dependabotOptions** ([DependabotOptions](#projen-dependabotoptions)) Options for dependabot. __*Default*__: default options * **dependencies** (Map) *No description* __*Optional*__ - * **deps** (Array) *No description* __*Optional*__ + * **deps** (Array) Runtime dependencies of this module. __*Default*__: [] * **devDependencies** (Map) *No description* __*Optional*__ - * **devDeps** (Array) *No description* __*Optional*__ + * **devDeps** (Array) Build dependencies for this module. __*Default*__: [] * **entrypoint** (string) Module entrypoint (`main` in `package.json`). __*Default*__: lib/index.js * **keywords** (Array) Keywords to include in `package.json`. __*Optional*__ * **libdir** (string) Compiler artifacts output directory. __*Default*__: "lib" @@ -2729,8 +2729,8 @@ new ReactTypeScriptProject(options: ReactTypeScriptProjectOptions) * **npmRegistry** (string) The registry url to use when releasing packages. __*Default*__: "registry.npmjs.org" * **packageManager** ([NodePackageManager](#projen-nodepackagemanager)) The Node Package Manager used to execute scripts. __*Default*__: packageManager.YARN * **peerDependencies** (Map) *No description* __*Optional*__ - * **peerDependencyOptions** ([PeerDependencyOptions](#projen-peerdependencyoptions)) *No description* __*Optional*__ - * **peerDeps** (Array) *No description* __*Optional*__ + * **peerDependencyOptions** ([PeerDependencyOptions](#projen-peerdependencyoptions)) Options for `peerDeps`. __*Optional*__ + * **peerDeps** (Array) Peer dependencies for this module. __*Default*__: [] * **projenDevDependency** (boolean) Indicates of "projen" should be installed as a devDependency. __*Default*__: true * **projenUpgradeAutoMerge** (boolean) Automatically merge projen upgrade PRs when build passes. __*Default*__: "true" if mergify auto-merge is enabled (default) * **projenUpgradeSchedule** (Array) Customize the projenUpgrade schedule in cron expression. __*Default*__: [ '0 6 * * *' ] @@ -2788,7 +2788,7 @@ Name | Type | Description -## class Semver 🔹 +## class Semver ⚠️ @@ -2799,14 +2799,14 @@ Name | Type | Description Name | Type | Description -----|------|------------- -**spec**🔹 | string | -**mode**?🔹 | string | __*Optional*__ -**version**?🔹 | string | __*Optional*__ +**spec**⚠️ | string | +**mode**?⚠️ | string | __*Optional*__ +**version**?⚠️ | string | __*Optional*__ ### Methods -#### *static* caret(version)🔹 +#### *static* caret(version)⚠️ Accept any minor version. @@ -2822,7 +2822,7 @@ static caret(version: string): Semver __Returns__: * [Semver](#projen-semver) -#### *static* latest()🔹 +#### *static* latest()⚠️ Latest version. @@ -2834,7 +2834,7 @@ static latest(): Semver __Returns__: * [Semver](#projen-semver) -#### *static* of(spec)🔹 +#### *static* of(spec)⚠️ @@ -2847,7 +2847,7 @@ static of(spec: string): Semver __Returns__: * [Semver](#projen-semver) -#### *static* pinned(version)🔹 +#### *static* pinned(version)⚠️ Accept only an exact version. @@ -2860,7 +2860,7 @@ static pinned(version: string): Semver __Returns__: * [Semver](#projen-semver) -#### *static* tilde(version)🔹 +#### *static* tilde(version)⚠️ Accept patches. @@ -3046,16 +3046,16 @@ new TypeScriptAppProject(options: TypeScriptProjectOptions) * **bin** (Map) Binary programs vended with your module. __*Optional*__ * **buildWorkflow** (boolean) Define a GitHub workflow for building PRs. __*Default*__: true * **bundledDependencies** (Array) *No description* __*Optional*__ - * **bundledDeps** (Array) *No description* __*Optional*__ + * **bundledDeps** (Array) List of dependencies to bundle into this module. __*Optional*__ * **copyrightOwner** (string) License copyright owner. __*Default*__: defaults to the value of authorName or "" if `authorName` is undefined. * **copyrightPeriod** (string) The copyright years to put in the LICENSE file. __*Default*__: current year * **defaultReleaseBranch** (string) The name of the main release branch. __*Default*__: 'master' * **dependabot** (boolean) Include dependabot configuration. __*Default*__: true; * **dependabotOptions** ([DependabotOptions](#projen-dependabotoptions)) Options for dependabot. __*Default*__: default options * **dependencies** (Map) *No description* __*Optional*__ - * **deps** (Array) *No description* __*Optional*__ + * **deps** (Array) Runtime dependencies of this module. __*Default*__: [] * **devDependencies** (Map) *No description* __*Optional*__ - * **devDeps** (Array) *No description* __*Optional*__ + * **devDeps** (Array) Build dependencies for this module. __*Default*__: [] * **entrypoint** (string) Module entrypoint (`main` in `package.json`). __*Default*__: lib/index.js * **keywords** (Array) Keywords to include in `package.json`. __*Optional*__ * **libdir** (string) Compiler artifacts output directory. __*Default*__: "lib" @@ -3070,8 +3070,8 @@ new TypeScriptAppProject(options: TypeScriptProjectOptions) * **npmRegistry** (string) The registry url to use when releasing packages. __*Default*__: "registry.npmjs.org" * **packageManager** ([NodePackageManager](#projen-nodepackagemanager)) The Node Package Manager used to execute scripts. __*Default*__: packageManager.YARN * **peerDependencies** (Map) *No description* __*Optional*__ - * **peerDependencyOptions** ([PeerDependencyOptions](#projen-peerdependencyoptions)) *No description* __*Optional*__ - * **peerDeps** (Array) *No description* __*Optional*__ + * **peerDependencyOptions** ([PeerDependencyOptions](#projen-peerdependencyoptions)) Options for `peerDeps`. __*Optional*__ + * **peerDeps** (Array) Peer dependencies for this module. __*Default*__: [] * **projenDevDependency** (boolean) Indicates of "projen" should be installed as a devDependency. __*Default*__: true * **projenUpgradeAutoMerge** (boolean) Automatically merge projen upgrade PRs when build passes. __*Default*__: "true" if mergify auto-merge is enabled (default) * **projenUpgradeSchedule** (Array) Customize the projenUpgrade schedule in cron expression. __*Default*__: [ '0 6 * * *' ] @@ -3142,16 +3142,16 @@ new TypeScriptLibraryProject(options: TypeScriptProjectOptions) * **bin** (Map) Binary programs vended with your module. __*Optional*__ * **buildWorkflow** (boolean) Define a GitHub workflow for building PRs. __*Default*__: true * **bundledDependencies** (Array) *No description* __*Optional*__ - * **bundledDeps** (Array) *No description* __*Optional*__ + * **bundledDeps** (Array) List of dependencies to bundle into this module. __*Optional*__ * **copyrightOwner** (string) License copyright owner. __*Default*__: defaults to the value of authorName or "" if `authorName` is undefined. * **copyrightPeriod** (string) The copyright years to put in the LICENSE file. __*Default*__: current year * **defaultReleaseBranch** (string) The name of the main release branch. __*Default*__: 'master' * **dependabot** (boolean) Include dependabot configuration. __*Default*__: true; * **dependabotOptions** ([DependabotOptions](#projen-dependabotoptions)) Options for dependabot. __*Default*__: default options * **dependencies** (Map) *No description* __*Optional*__ - * **deps** (Array) *No description* __*Optional*__ + * **deps** (Array) Runtime dependencies of this module. __*Default*__: [] * **devDependencies** (Map) *No description* __*Optional*__ - * **devDeps** (Array) *No description* __*Optional*__ + * **devDeps** (Array) Build dependencies for this module. __*Default*__: [] * **entrypoint** (string) Module entrypoint (`main` in `package.json`). __*Default*__: lib/index.js * **keywords** (Array) Keywords to include in `package.json`. __*Optional*__ * **libdir** (string) Compiler artifacts output directory. __*Default*__: "lib" @@ -3166,8 +3166,8 @@ new TypeScriptLibraryProject(options: TypeScriptProjectOptions) * **npmRegistry** (string) The registry url to use when releasing packages. __*Default*__: "registry.npmjs.org" * **packageManager** ([NodePackageManager](#projen-nodepackagemanager)) The Node Package Manager used to execute scripts. __*Default*__: packageManager.YARN * **peerDependencies** (Map) *No description* __*Optional*__ - * **peerDependencyOptions** ([PeerDependencyOptions](#projen-peerdependencyoptions)) *No description* __*Optional*__ - * **peerDeps** (Array) *No description* __*Optional*__ + * **peerDependencyOptions** ([PeerDependencyOptions](#projen-peerdependencyoptions)) Options for `peerDeps`. __*Optional*__ + * **peerDeps** (Array) Peer dependencies for this module. __*Default*__: [] * **projenDevDependency** (boolean) Indicates of "projen" should be installed as a devDependency. __*Default*__: true * **projenUpgradeAutoMerge** (boolean) Automatically merge projen upgrade PRs when build passes. __*Default*__: "true" if mergify auto-merge is enabled (default) * **projenUpgradeSchedule** (Array) Customize the projenUpgrade schedule in cron expression. __*Default*__: [ '0 6 * * *' ] @@ -3238,16 +3238,16 @@ new TypeScriptProject(options: TypeScriptProjectOptions) * **bin** (Map) Binary programs vended with your module. __*Optional*__ * **buildWorkflow** (boolean) Define a GitHub workflow for building PRs. __*Default*__: true * **bundledDependencies** (Array) *No description* __*Optional*__ - * **bundledDeps** (Array) *No description* __*Optional*__ + * **bundledDeps** (Array) List of dependencies to bundle into this module. __*Optional*__ * **copyrightOwner** (string) License copyright owner. __*Default*__: defaults to the value of authorName or "" if `authorName` is undefined. * **copyrightPeriod** (string) The copyright years to put in the LICENSE file. __*Default*__: current year * **defaultReleaseBranch** (string) The name of the main release branch. __*Default*__: 'master' * **dependabot** (boolean) Include dependabot configuration. __*Default*__: true; * **dependabotOptions** ([DependabotOptions](#projen-dependabotoptions)) Options for dependabot. __*Default*__: default options * **dependencies** (Map) *No description* __*Optional*__ - * **deps** (Array) *No description* __*Optional*__ + * **deps** (Array) Runtime dependencies of this module. __*Default*__: [] * **devDependencies** (Map) *No description* __*Optional*__ - * **devDeps** (Array) *No description* __*Optional*__ + * **devDeps** (Array) Build dependencies for this module. __*Default*__: [] * **entrypoint** (string) Module entrypoint (`main` in `package.json`). __*Default*__: lib/index.js * **keywords** (Array) Keywords to include in `package.json`. __*Optional*__ * **libdir** (string) Compiler artifacts output directory. __*Default*__: "lib" @@ -3262,8 +3262,8 @@ new TypeScriptProject(options: TypeScriptProjectOptions) * **npmRegistry** (string) The registry url to use when releasing packages. __*Default*__: "registry.npmjs.org" * **packageManager** ([NodePackageManager](#projen-nodepackagemanager)) The Node Package Manager used to execute scripts. __*Default*__: packageManager.YARN * **peerDependencies** (Map) *No description* __*Optional*__ - * **peerDependencyOptions** ([PeerDependencyOptions](#projen-peerdependencyoptions)) *No description* __*Optional*__ - * **peerDeps** (Array) *No description* __*Optional*__ + * **peerDependencyOptions** ([PeerDependencyOptions](#projen-peerdependencyoptions)) Options for `peerDeps`. __*Optional*__ + * **peerDeps** (Array) Peer dependencies for this module. __*Default*__: [] * **projenDevDependency** (boolean) Indicates of "projen" should be installed as a devDependency. __*Default*__: true * **projenUpgradeAutoMerge** (boolean) Automatically merge projen upgrade PRs when build passes. __*Default*__: "true" if mergify auto-merge is enabled (default) * **projenUpgradeSchedule** (Array) Customize the projenUpgrade schedule in cron expression. __*Default*__: [ '0 6 * * *' ] @@ -3439,8 +3439,8 @@ Name | Type | Description **autoDetectBin**?🔹 | boolean | Automatically add all executables under the `bin` directory to your `package.json` file under the `bin` section.
__*Default*__: true **bin**?🔹 | Map | Binary programs vended with your module.
__*Optional*__ **buildWorkflow**?🔹 | boolean | Define a GitHub workflow for building PRs.
__*Default*__: true -**bundledDependencies**?🔹 | Array | __*Optional*__ -**bundledDeps**?🔹 | Array | __*Optional*__ +**bundledDependencies**?⚠️ | Array | __*Optional*__ +**bundledDeps**?🔹 | Array | List of dependencies to bundle into this module.
__*Optional*__ **catalog**?🔹 | [Catalog](#projen-catalog) | Libraries will be picked up by the construct catalog when they are published to npm as jsii modules and will be published under:.
__*Default*__: new version will be announced **cdkAssert**?🔹 | boolean | Install the @aws-cdk/assert library?
__*Default*__: true **cdkDependencies**?🔹 | Array | Which AWS CDK modules (those that start with "@aws-cdk/") does this library require when consumed?
__*Optional*__ @@ -3452,11 +3452,11 @@ Name | Type | Description **defaultReleaseBranch**?🔹 | string | The name of the main release branch.
__*Default*__: 'master' **dependabot**?🔹 | boolean | Include dependabot configuration.
__*Default*__: true; **dependabotOptions**?🔹 | [DependabotOptions](#projen-dependabotoptions) | Options for dependabot.
__*Default*__: default options -**dependencies**?🔹 | Map | __*Optional*__ -**deps**?🔹 | Array | __*Optional*__ +**dependencies**?⚠️ | Map | __*Optional*__ +**deps**?🔹 | Array | Runtime dependencies of this module.
__*Default*__: [] **description**?🔹 | string | Library description.
__*Optional*__ -**devDependencies**?🔹 | Map | __*Optional*__ -**devDeps**?🔹 | Array | __*Optional*__ +**devDependencies**?⚠️ | Map | __*Optional*__ +**devDeps**?🔹 | Array | Build dependencies for this module.
__*Default*__: [] **docgen**?🔹 | boolean | Automatically generate API.md from jsii.
__*Default*__: true **dotnet**?🔹 | [JsiiDotNetTarget](#projen-jsiidotnettarget) | __*Optional*__ **entrypoint**?🔹 | string | Module entrypoint (`main` in `package.json`).
__*Default*__: lib/index.js @@ -3478,9 +3478,9 @@ Name | Type | Description **npmignore**?🔹 | Array | Additional entries to .npmignore.
__*Optional*__ **npmignoreEnabled**?🔹 | boolean | Defines an .npmignore file. Normally this is only needed for libraries that are packaged as tarballs.
__*Default*__: true **packageManager**?🔹 | [NodePackageManager](#projen-nodepackagemanager) | The Node Package Manager used to execute scripts.
__*Default*__: packageManager.YARN -**peerDependencies**?🔹 | Map | __*Optional*__ -**peerDependencyOptions**?🔹 | [PeerDependencyOptions](#projen-peerdependencyoptions) | __*Optional*__ -**peerDeps**?🔹 | Array | __*Optional*__ +**peerDependencies**?⚠️ | Map | __*Optional*__ +**peerDependencyOptions**?🔹 | [PeerDependencyOptions](#projen-peerdependencyoptions) | Options for `peerDeps`.
__*Optional*__ +**peerDeps**?🔹 | Array | Peer dependencies for this module.
__*Default*__: [] **projenDevDependency**?🔹 | boolean | Indicates of "projen" should be installed as a devDependency.
__*Default*__: true **projenUpgradeAutoMerge**?🔹 | boolean | Automatically merge projen upgrade PRs when build passes.
__*Default*__: "true" if mergify auto-merge is enabled (default) **projenUpgradeSchedule**?🔹 | Array | Customize the projenUpgrade schedule in cron expression.
__*Default*__: [ '0 6 * * *' ] @@ -3528,8 +3528,8 @@ Name | Type | Description **autoDetectBin**?🔹 | boolean | Automatically add all executables under the `bin` directory to your `package.json` file under the `bin` section.
__*Default*__: true **bin**?🔹 | Map | Binary programs vended with your module.
__*Optional*__ **buildWorkflow**?🔹 | boolean | Define a GitHub workflow for building PRs.
__*Default*__: true -**bundledDependencies**?🔹 | Array | __*Optional*__ -**bundledDeps**?🔹 | Array | __*Optional*__ +**bundledDependencies**?⚠️ | Array | __*Optional*__ +**bundledDeps**?🔹 | Array | List of dependencies to bundle into this module.
__*Optional*__ **cdkDependencies**?🔹 | Array | Which AWS CDK modules (those that start with "@aws-cdk/") this app uses.
__*Optional*__ **cdkVersionPinning**?🔹 | boolean | Use pinned version instead of caret version for CDK.
__*Default*__: false **compileBeforeTest**?🔹 | boolean | Compile the code before running tests.
__*Default*__: the default behavior is to delete the lib/ directory and run jest typescript tests and only if all tests pass, run the compiler. @@ -3539,11 +3539,11 @@ Name | Type | Description **defaultReleaseBranch**?🔹 | string | The name of the main release branch.
__*Default*__: 'master' **dependabot**?🔹 | boolean | Include dependabot configuration.
__*Default*__: true; **dependabotOptions**?🔹 | [DependabotOptions](#projen-dependabotoptions) | Options for dependabot.
__*Default*__: default options -**dependencies**?🔹 | Map | __*Optional*__ -**deps**?🔹 | Array | __*Optional*__ +**dependencies**?⚠️ | Map | __*Optional*__ +**deps**?🔹 | Array | Runtime dependencies of this module.
__*Default*__: [] **description**?🔹 | string | The description is just a string that helps people understand the purpose of the package.
__*Optional*__ -**devDependencies**?🔹 | Map | __*Optional*__ -**devDeps**?🔹 | Array | __*Optional*__ +**devDependencies**?⚠️ | Map | __*Optional*__ +**devDeps**?🔹 | Array | Build dependencies for this module.
__*Default*__: [] **disableTsconfig**?🔹 | boolean | Do not generate a `tsconfig.json` file (used by jsii projects since tsconfig.json is generated by the jsii compiler).
__*Default*__: false **docgen**?🔹 | boolean | Docgen by Typedoc.
__*Default*__: false **docsDirectory**?🔹 | string | Docs directory.
__*Default*__: 'docs' @@ -3568,9 +3568,9 @@ Name | Type | Description **npmignoreEnabled**?🔹 | boolean | Defines an .npmignore file. Normally this is only needed for libraries that are packaged as tarballs.
__*Default*__: true **package**?🔹 | boolean | Defines a `yarn package` command that will produce a tarball and place it under `dist/js`.
__*Default*__: true **packageManager**?🔹 | [NodePackageManager](#projen-nodepackagemanager) | The Node Package Manager used to execute scripts.
__*Default*__: packageManager.YARN -**peerDependencies**?🔹 | Map | __*Optional*__ -**peerDependencyOptions**?🔹 | [PeerDependencyOptions](#projen-peerdependencyoptions) | __*Optional*__ -**peerDeps**?🔹 | Array | __*Optional*__ +**peerDependencies**?⚠️ | Map | __*Optional*__ +**peerDependencyOptions**?🔹 | [PeerDependencyOptions](#projen-peerdependencyoptions) | Options for `peerDeps`.
__*Optional*__ +**peerDeps**?🔹 | Array | Peer dependencies for this module.
__*Default*__: [] **projenDevDependency**?🔹 | boolean | Indicates of "projen" should be installed as a devDependency.
__*Default*__: true **projenUpgradeAutoMerge**?🔹 | boolean | Automatically merge projen upgrade PRs when build passes.
__*Default*__: "true" if mergify auto-merge is enabled (default) **projenUpgradeSchedule**?🔹 | Array | Customize the projenUpgrade schedule in cron expression.
__*Default*__: [ '0 6 * * *' ] @@ -3638,7 +3638,7 @@ Name | Type | Description **bin**?⚠️ | Map | Binary programs vended with your module.
__*Optional*__ **buildWorkflow**?⚠️ | boolean | Define a GitHub workflow for building PRs.
__*Default*__: true **bundledDependencies**?⚠️ | Array | __*Optional*__ -**bundledDeps**?⚠️ | Array | __*Optional*__ +**bundledDeps**?⚠️ | Array | List of dependencies to bundle into this module.
__*Optional*__ **catalog**?⚠️ | [Catalog](#projen-catalog) | Libraries will be picked up by the construct catalog when they are published to npm as jsii modules and will be published under:.
__*Default*__: new version will be announced **cdkAssert**?⚠️ | boolean | Install the @aws-cdk/assert library?
__*Default*__: true **cdkDependencies**?⚠️ | Array | Which AWS CDK modules (those that start with "@aws-cdk/") does this library require when consumed?
__*Optional*__ @@ -3651,10 +3651,10 @@ Name | Type | Description **dependabot**?⚠️ | boolean | Include dependabot configuration.
__*Default*__: true; **dependabotOptions**?⚠️ | [DependabotOptions](#projen-dependabotoptions) | Options for dependabot.
__*Default*__: default options **dependencies**?⚠️ | Map | __*Optional*__ -**deps**?⚠️ | Array | __*Optional*__ +**deps**?⚠️ | Array | Runtime dependencies of this module.
__*Default*__: [] **description**?⚠️ | string | Library description.
__*Optional*__ **devDependencies**?⚠️ | Map | __*Optional*__ -**devDeps**?⚠️ | Array | __*Optional*__ +**devDeps**?⚠️ | Array | Build dependencies for this module.
__*Default*__: [] **docgen**?⚠️ | boolean | Automatically generate API.md from jsii.
__*Default*__: true **dotnet**?⚠️ | [JsiiDotNetTarget](#projen-jsiidotnettarget) | __*Optional*__ **entrypoint**?⚠️ | string | Module entrypoint (`main` in `package.json`).
__*Default*__: lib/index.js @@ -3677,8 +3677,8 @@ Name | Type | Description **npmignoreEnabled**?⚠️ | boolean | Defines an .npmignore file. Normally this is only needed for libraries that are packaged as tarballs.
__*Default*__: true **packageManager**?⚠️ | [NodePackageManager](#projen-nodepackagemanager) | The Node Package Manager used to execute scripts.
__*Default*__: packageManager.YARN **peerDependencies**?⚠️ | Map | __*Optional*__ -**peerDependencyOptions**?⚠️ | [PeerDependencyOptions](#projen-peerdependencyoptions) | __*Optional*__ -**peerDeps**?⚠️ | Array | __*Optional*__ +**peerDependencyOptions**?⚠️ | [PeerDependencyOptions](#projen-peerdependencyoptions) | Options for `peerDeps`.
__*Optional*__ +**peerDeps**?⚠️ | Array | Peer dependencies for this module.
__*Default*__: [] **projenDevDependency**?⚠️ | boolean | Indicates of "projen" should be installed as a devDependency.
__*Default*__: true **projenUpgradeAutoMerge**?⚠️ | boolean | Automatically merge projen upgrade PRs when build passes.
__*Default*__: "true" if mergify auto-merge is enabled (default) **projenUpgradeSchedule**?⚠️ | Array | Customize the projenUpgrade schedule in cron expression.
__*Default*__: [ '0 6 * * *' ] @@ -3727,8 +3727,8 @@ Name | Type | Description **autoDetectBin**?🔹 | boolean | Automatically add all executables under the `bin` directory to your `package.json` file under the `bin` section.
__*Default*__: true **bin**?🔹 | Map | Binary programs vended with your module.
__*Optional*__ **buildWorkflow**?🔹 | boolean | Define a GitHub workflow for building PRs.
__*Default*__: true -**bundledDependencies**?🔹 | Array | __*Optional*__ -**bundledDeps**?🔹 | Array | __*Optional*__ +**bundledDependencies**?⚠️ | Array | __*Optional*__ +**bundledDeps**?🔹 | Array | List of dependencies to bundle into this module.
__*Optional*__ **catalog**?🔹 | [Catalog](#projen-catalog) | Libraries will be picked up by the construct catalog when they are published to npm as jsii modules and will be published under:.
__*Default*__: new version will be announced **compat**?🔹 | boolean | Automatically run API compatibility test against the latest version published to npm after compilation.
__*Default*__: false **compatIgnore**?🔹 | string | Name of the ignore file for API compatibility tests.
__*Default*__: .compatignore @@ -3737,11 +3737,11 @@ Name | Type | Description **defaultReleaseBranch**?🔹 | string | The name of the main release branch.
__*Default*__: 'master' **dependabot**?🔹 | boolean | Include dependabot configuration.
__*Default*__: true; **dependabotOptions**?🔹 | [DependabotOptions](#projen-dependabotoptions) | Options for dependabot.
__*Default*__: default options -**dependencies**?🔹 | Map | __*Optional*__ -**deps**?🔹 | Array | __*Optional*__ +**dependencies**?⚠️ | Map | __*Optional*__ +**deps**?🔹 | Array | Runtime dependencies of this module.
__*Default*__: [] **description**?🔹 | string | Library description.
__*Optional*__ -**devDependencies**?🔹 | Map | __*Optional*__ -**devDeps**?🔹 | Array | __*Optional*__ +**devDependencies**?⚠️ | Map | __*Optional*__ +**devDeps**?🔹 | Array | Build dependencies for this module.
__*Default*__: [] **docgen**?🔹 | boolean | Automatically generate API.md from jsii.
__*Default*__: true **dotnet**?🔹 | [JsiiDotNetTarget](#projen-jsiidotnettarget) | __*Optional*__ **entrypoint**?🔹 | string | Module entrypoint (`main` in `package.json`).
__*Default*__: lib/index.js @@ -3763,9 +3763,9 @@ Name | Type | Description **npmignore**?🔹 | Array | Additional entries to .npmignore.
__*Optional*__ **npmignoreEnabled**?🔹 | boolean | Defines an .npmignore file. Normally this is only needed for libraries that are packaged as tarballs.
__*Default*__: true **packageManager**?🔹 | [NodePackageManager](#projen-nodepackagemanager) | The Node Package Manager used to execute scripts.
__*Default*__: packageManager.YARN -**peerDependencies**?🔹 | Map | __*Optional*__ -**peerDependencyOptions**?🔹 | [PeerDependencyOptions](#projen-peerdependencyoptions) | __*Optional*__ -**peerDeps**?🔹 | Array | __*Optional*__ +**peerDependencies**?⚠️ | Map | __*Optional*__ +**peerDependencyOptions**?🔹 | [PeerDependencyOptions](#projen-peerdependencyoptions) | Options for `peerDeps`.
__*Optional*__ +**peerDeps**?🔹 | Array | Peer dependencies for this module.
__*Default*__: [] **projenDevDependency**?🔹 | boolean | Indicates of "projen" should be installed as a devDependency.
__*Default*__: true **projenUpgradeAutoMerge**?🔹 | boolean | Automatically merge projen upgrade PRs when build passes.
__*Default*__: "true" if mergify auto-merge is enabled (default) **projenUpgradeSchedule**?🔹 | Array | Customize the projenUpgrade schedule in cron expression.
__*Default*__: [ '0 6 * * *' ] @@ -3813,8 +3813,8 @@ Name | Type | Description **autoDetectBin**?🔹 | boolean | Automatically add all executables under the `bin` directory to your `package.json` file under the `bin` section.
__*Default*__: true **bin**?🔹 | Map | Binary programs vended with your module.
__*Optional*__ **buildWorkflow**?🔹 | boolean | Define a GitHub workflow for building PRs.
__*Default*__: true -**bundledDependencies**?🔹 | Array | __*Optional*__ -**bundledDeps**?🔹 | Array | __*Optional*__ +**bundledDependencies**?⚠️ | Array | __*Optional*__ +**bundledDeps**?🔹 | Array | List of dependencies to bundle into this module.
__*Optional*__ **catalog**?🔹 | [Catalog](#projen-catalog) | Libraries will be picked up by the construct catalog when they are published to npm as jsii modules and will be published under:.
__*Default*__: new version will be announced **compat**?🔹 | boolean | Automatically run API compatibility test against the latest version published to npm after compilation.
__*Default*__: false **compatIgnore**?🔹 | string | Name of the ignore file for API compatibility tests.
__*Default*__: .compatignore @@ -3823,11 +3823,11 @@ Name | Type | Description **defaultReleaseBranch**?🔹 | string | The name of the main release branch.
__*Default*__: 'master' **dependabot**?🔹 | boolean | Include dependabot configuration.
__*Default*__: true; **dependabotOptions**?🔹 | [DependabotOptions](#projen-dependabotoptions) | Options for dependabot.
__*Default*__: default options -**dependencies**?🔹 | Map | __*Optional*__ -**deps**?🔹 | Array | __*Optional*__ +**dependencies**?⚠️ | Map | __*Optional*__ +**deps**?🔹 | Array | Runtime dependencies of this module.
__*Default*__: [] **description**?🔹 | string | Library description.
__*Optional*__ -**devDependencies**?🔹 | Map | __*Optional*__ -**devDeps**?🔹 | Array | __*Optional*__ +**devDependencies**?⚠️ | Map | __*Optional*__ +**devDeps**?🔹 | Array | Build dependencies for this module.
__*Default*__: [] **docgen**?🔹 | boolean | Automatically generate API.md from jsii.
__*Default*__: true **dotnet**?🔹 | [JsiiDotNetTarget](#projen-jsiidotnettarget) | __*Optional*__ **entrypoint**?🔹 | string | Module entrypoint (`main` in `package.json`).
__*Default*__: lib/index.js @@ -3849,9 +3849,9 @@ Name | Type | Description **npmignore**?🔹 | Array | Additional entries to .npmignore.
__*Optional*__ **npmignoreEnabled**?🔹 | boolean | Defines an .npmignore file. Normally this is only needed for libraries that are packaged as tarballs.
__*Default*__: true **packageManager**?🔹 | [NodePackageManager](#projen-nodepackagemanager) | The Node Package Manager used to execute scripts.
__*Default*__: packageManager.YARN -**peerDependencies**?🔹 | Map | __*Optional*__ -**peerDependencyOptions**?🔹 | [PeerDependencyOptions](#projen-peerdependencyoptions) | __*Optional*__ -**peerDeps**?🔹 | Array | __*Optional*__ +**peerDependencies**?⚠️ | Map | __*Optional*__ +**peerDependencyOptions**?🔹 | [PeerDependencyOptions](#projen-peerdependencyoptions) | Options for `peerDeps`.
__*Optional*__ +**peerDeps**?🔹 | Array | Peer dependencies for this module.
__*Default*__: [] **projenDevDependency**?🔹 | boolean | Indicates of "projen" should be installed as a devDependency.
__*Default*__: true **projenUpgradeAutoMerge**?🔹 | boolean | Automatically merge projen upgrade PRs when build passes.
__*Default*__: "true" if mergify auto-merge is enabled (default) **projenUpgradeSchedule**?🔹 | Array | Customize the projenUpgrade schedule in cron expression.
__*Default*__: [ '0 6 * * *' ] @@ -4220,8 +4220,8 @@ Name | Type | Description **autoDetectBin**?🔹 | boolean | Automatically add all executables under the `bin` directory to your `package.json` file under the `bin` section.
__*Default*__: true **bin**?🔹 | Map | Binary programs vended with your module.
__*Optional*__ **buildWorkflow**?🔹 | boolean | Define a GitHub workflow for building PRs.
__*Default*__: true -**bundledDependencies**?🔹 | Array | __*Optional*__ -**bundledDeps**?🔹 | Array | __*Optional*__ +**bundledDependencies**?⚠️ | Array | __*Optional*__ +**bundledDeps**?🔹 | Array | List of dependencies to bundle into this module.
__*Optional*__ **compat**?🔹 | boolean | Automatically run API compatibility test against the latest version published to npm after compilation.
__*Default*__: false **compatIgnore**?🔹 | string | Name of the ignore file for API compatibility tests.
__*Default*__: .compatignore **copyrightOwner**?🔹 | string | License copyright owner.
__*Default*__: defaults to the value of authorName or "" if `authorName` is undefined. @@ -4229,11 +4229,11 @@ Name | Type | Description **defaultReleaseBranch**?🔹 | string | The name of the main release branch.
__*Default*__: 'master' **dependabot**?🔹 | boolean | Include dependabot configuration.
__*Default*__: true; **dependabotOptions**?🔹 | [DependabotOptions](#projen-dependabotoptions) | Options for dependabot.
__*Default*__: default options -**dependencies**?🔹 | Map | __*Optional*__ -**deps**?🔹 | Array | __*Optional*__ +**dependencies**?⚠️ | Map | __*Optional*__ +**deps**?🔹 | Array | Runtime dependencies of this module.
__*Default*__: [] **description**?🔹 | string | Library description.
__*Optional*__ -**devDependencies**?🔹 | Map | __*Optional*__ -**devDeps**?🔹 | Array | __*Optional*__ +**devDependencies**?⚠️ | Map | __*Optional*__ +**devDeps**?🔹 | Array | Build dependencies for this module.
__*Default*__: [] **docgen**?🔹 | boolean | Automatically generate API.md from jsii.
__*Default*__: true **dotnet**?🔹 | [JsiiDotNetTarget](#projen-jsiidotnettarget) | __*Optional*__ **entrypoint**?🔹 | string | Module entrypoint (`main` in `package.json`).
__*Default*__: lib/index.js @@ -4255,9 +4255,9 @@ Name | Type | Description **npmignore**?🔹 | Array | Additional entries to .npmignore.
__*Optional*__ **npmignoreEnabled**?🔹 | boolean | Defines an .npmignore file. Normally this is only needed for libraries that are packaged as tarballs.
__*Default*__: true **packageManager**?🔹 | [NodePackageManager](#projen-nodepackagemanager) | The Node Package Manager used to execute scripts.
__*Default*__: packageManager.YARN -**peerDependencies**?🔹 | Map | __*Optional*__ -**peerDependencyOptions**?🔹 | [PeerDependencyOptions](#projen-peerdependencyoptions) | __*Optional*__ -**peerDeps**?🔹 | Array | __*Optional*__ +**peerDependencies**?⚠️ | Map | __*Optional*__ +**peerDependencyOptions**?🔹 | [PeerDependencyOptions](#projen-peerdependencyoptions) | Options for `peerDeps`.
__*Optional*__ +**peerDeps**?🔹 | Array | Peer dependencies for this module.
__*Default*__: [] **projenDevDependency**?🔹 | boolean | Indicates of "projen" should be installed as a devDependency.
__*Default*__: true **projenUpgradeAutoMerge**?🔹 | boolean | Automatically merge projen upgrade PRs when build passes.
__*Default*__: "true" if mergify auto-merge is enabled (default) **projenUpgradeSchedule**?🔹 | Array | Customize the projenUpgrade schedule in cron expression.
__*Default*__: [ '0 6 * * *' ] @@ -4420,18 +4420,18 @@ Name | Type | Description **autoDetectBin**?🔹 | boolean | Automatically add all executables under the `bin` directory to your `package.json` file under the `bin` section.
__*Default*__: true **bin**?🔹 | Map | Binary programs vended with your module.
__*Optional*__ **buildWorkflow**?🔹 | boolean | Define a GitHub workflow for building PRs.
__*Default*__: true -**bundledDependencies**?🔹 | Array | __*Optional*__ -**bundledDeps**?🔹 | Array | __*Optional*__ +**bundledDependencies**?⚠️ | Array | __*Optional*__ +**bundledDeps**?🔹 | Array | List of dependencies to bundle into this module.
__*Optional*__ **copyrightOwner**?🔹 | string | License copyright owner.
__*Default*__: defaults to the value of authorName or "" if `authorName` is undefined. **copyrightPeriod**?🔹 | string | The copyright years to put in the LICENSE file.
__*Default*__: current year **defaultReleaseBranch**?🔹 | string | The name of the main release branch.
__*Default*__: 'master' **dependabot**?🔹 | boolean | Include dependabot configuration.
__*Default*__: true; **dependabotOptions**?🔹 | [DependabotOptions](#projen-dependabotoptions) | Options for dependabot.
__*Default*__: default options -**dependencies**?🔹 | Map | __*Optional*__ -**deps**?🔹 | Array | __*Optional*__ +**dependencies**?⚠️ | Map | __*Optional*__ +**deps**?🔹 | Array | Runtime dependencies of this module.
__*Default*__: [] **description**?🔹 | string | The description is just a string that helps people understand the purpose of the package.
__*Optional*__ -**devDependencies**?🔹 | Map | __*Optional*__ -**devDeps**?🔹 | Array | __*Optional*__ +**devDependencies**?⚠️ | Map | __*Optional*__ +**devDeps**?🔹 | Array | Build dependencies for this module.
__*Default*__: [] **entrypoint**?🔹 | string | Module entrypoint (`main` in `package.json`).
__*Default*__: lib/index.js **gitignore**?🔹 | Array | Additional entries to .gitignore.
__*Optional*__ **homepage**?🔹 | string | Package's Homepage / Website.
__*Optional*__ @@ -4448,9 +4448,9 @@ Name | Type | Description **npmignore**?🔹 | Array | Additional entries to .npmignore.
__*Optional*__ **npmignoreEnabled**?🔹 | boolean | Defines an .npmignore file. Normally this is only needed for libraries that are packaged as tarballs.
__*Default*__: true **packageManager**?🔹 | [NodePackageManager](#projen-nodepackagemanager) | The Node Package Manager used to execute scripts.
__*Default*__: packageManager.YARN -**peerDependencies**?🔹 | Map | __*Optional*__ -**peerDependencyOptions**?🔹 | [PeerDependencyOptions](#projen-peerdependencyoptions) | __*Optional*__ -**peerDeps**?🔹 | Array | __*Optional*__ +**peerDependencies**?⚠️ | Map | __*Optional*__ +**peerDependencyOptions**?🔹 | [PeerDependencyOptions](#projen-peerdependencyoptions) | Options for `peerDeps`.
__*Optional*__ +**peerDeps**?🔹 | Array | Peer dependencies for this module.
__*Default*__: [] **projenDevDependency**?🔹 | boolean | Indicates of "projen" should be installed as a devDependency.
__*Default*__: true **projenUpgradeAutoMerge**?🔹 | boolean | Automatically merge projen upgrade PRs when build passes.
__*Default*__: "true" if mergify auto-merge is enabled (default) **projenUpgradeSchedule**?🔹 | Array | Customize the projenUpgrade schedule in cron expression.
__*Default*__: [ '0 6 * * *' ] @@ -4513,19 +4513,19 @@ Name | Type | Description **autoDetectBin**?🔹 | boolean | Automatically add all executables under the `bin` directory to your `package.json` file under the `bin` section.
__*Default*__: true **bin**?🔹 | Map | Binary programs vended with your module.
__*Optional*__ **buildWorkflow**?🔹 | boolean | Define a GitHub workflow for building PRs.
__*Default*__: true -**bundledDependencies**?🔹 | Array | __*Optional*__ -**bundledDeps**?🔹 | Array | __*Optional*__ +**bundledDependencies**?⚠️ | Array | __*Optional*__ +**bundledDeps**?🔹 | Array | List of dependencies to bundle into this module.
__*Optional*__ **compileBeforeTest**?🔹 | boolean | Compile the code before running tests.
__*Default*__: the default behavior is to delete the lib/ directory and run jest typescript tests and only if all tests pass, run the compiler. **copyrightOwner**?🔹 | string | License copyright owner.
__*Default*__: defaults to the value of authorName or "" if `authorName` is undefined. **copyrightPeriod**?🔹 | string | The copyright years to put in the LICENSE file.
__*Default*__: current year **defaultReleaseBranch**?🔹 | string | The name of the main release branch.
__*Default*__: 'master' **dependabot**?🔹 | boolean | Include dependabot configuration.
__*Default*__: true; **dependabotOptions**?🔹 | [DependabotOptions](#projen-dependabotoptions) | Options for dependabot.
__*Default*__: default options -**dependencies**?🔹 | Map | __*Optional*__ -**deps**?🔹 | Array | __*Optional*__ +**dependencies**?⚠️ | Map | __*Optional*__ +**deps**?🔹 | Array | Runtime dependencies of this module.
__*Default*__: [] **description**?🔹 | string | The description is just a string that helps people understand the purpose of the package.
__*Optional*__ -**devDependencies**?🔹 | Map | __*Optional*__ -**devDeps**?🔹 | Array | __*Optional*__ +**devDependencies**?⚠️ | Map | __*Optional*__ +**devDeps**?🔹 | Array | Build dependencies for this module.
__*Default*__: [] **disableTsconfig**?🔹 | boolean | Do not generate a `tsconfig.json` file (used by jsii projects since tsconfig.json is generated by the jsii compiler).
__*Default*__: false **docgen**?🔹 | boolean | Docgen by Typedoc.
__*Default*__: false **docsDirectory**?🔹 | string | Docs directory.
__*Default*__: 'docs' @@ -4550,9 +4550,9 @@ Name | Type | Description **npmignoreEnabled**?🔹 | boolean | Defines an .npmignore file. Normally this is only needed for libraries that are packaged as tarballs.
__*Default*__: true **package**?🔹 | boolean | Defines a `yarn package` command that will produce a tarball and place it under `dist/js`.
__*Default*__: true **packageManager**?🔹 | [NodePackageManager](#projen-nodepackagemanager) | The Node Package Manager used to execute scripts.
__*Default*__: packageManager.YARN -**peerDependencies**?🔹 | Map | __*Optional*__ -**peerDependencyOptions**?🔹 | [PeerDependencyOptions](#projen-peerdependencyoptions) | __*Optional*__ -**peerDeps**?🔹 | Array | __*Optional*__ +**peerDependencies**?⚠️ | Map | __*Optional*__ +**peerDependencyOptions**?🔹 | [PeerDependencyOptions](#projen-peerdependencyoptions) | Options for `peerDeps`.
__*Optional*__ +**peerDeps**?🔹 | Array | Peer dependencies for this module.
__*Default*__: [] **projenDevDependency**?🔹 | boolean | Indicates of "projen" should be installed as a devDependency.
__*Default*__: true **projenUpgradeAutoMerge**?🔹 | boolean | Automatically merge projen upgrade PRs when build passes.
__*Default*__: "true" if mergify auto-merge is enabled (default) **projenUpgradeSchedule**?🔹 | Array | Customize the projenUpgrade schedule in cron expression.
__*Default*__: [ '0 6 * * *' ] @@ -4612,17 +4612,17 @@ Name | Type | Description **autoDetectBin**?🔹 | boolean | Automatically add all executables under the `bin` directory to your `package.json` file under the `bin` section.
__*Default*__: true **bin**?🔹 | Map | Binary programs vended with your module.
__*Optional*__ **buildWorkflow**?🔹 | boolean | Define a GitHub workflow for building PRs.
__*Default*__: true -**bundledDependencies**?🔹 | Array | __*Optional*__ -**bundledDeps**?🔹 | Array | __*Optional*__ +**bundledDependencies**?⚠️ | Array | __*Optional*__ +**bundledDeps**?🔹 | Array | List of dependencies to bundle into this module.
__*Optional*__ **copyrightOwner**?🔹 | string | License copyright owner.
__*Default*__: defaults to the value of authorName or "" if `authorName` is undefined. **copyrightPeriod**?🔹 | string | The copyright years to put in the LICENSE file.
__*Default*__: current year **defaultReleaseBranch**?🔹 | string | The name of the main release branch.
__*Default*__: 'master' **dependabot**?🔹 | boolean | Include dependabot configuration.
__*Default*__: true; **dependabotOptions**?🔹 | [DependabotOptions](#projen-dependabotoptions) | Options for dependabot.
__*Default*__: default options -**dependencies**?🔹 | Map | __*Optional*__ -**deps**?🔹 | Array | __*Optional*__ -**devDependencies**?🔹 | Map | __*Optional*__ -**devDeps**?🔹 | Array | __*Optional*__ +**dependencies**?⚠️ | Map | __*Optional*__ +**deps**?🔹 | Array | Runtime dependencies of this module.
__*Default*__: [] +**devDependencies**?⚠️ | Map | __*Optional*__ +**devDeps**?🔹 | Array | Build dependencies for this module.
__*Default*__: [] **entrypoint**?🔹 | string | Module entrypoint (`main` in `package.json`).
__*Default*__: lib/index.js **keywords**?🔹 | Array | Keywords to include in `package.json`.
__*Optional*__ **libdir**?🔹 | string | Compiler artifacts output directory.
__*Default*__: "lib" @@ -4636,9 +4636,9 @@ Name | Type | Description **npmignore**?🔹 | Array | Additional entries to .npmignore.
__*Optional*__ **npmignoreEnabled**?🔹 | boolean | Defines an .npmignore file. Normally this is only needed for libraries that are packaged as tarballs.
__*Default*__: true **packageManager**?🔹 | [NodePackageManager](#projen-nodepackagemanager) | The Node Package Manager used to execute scripts.
__*Default*__: packageManager.YARN -**peerDependencies**?🔹 | Map | __*Optional*__ -**peerDependencyOptions**?🔹 | [PeerDependencyOptions](#projen-peerdependencyoptions) | __*Optional*__ -**peerDeps**?🔹 | Array | __*Optional*__ +**peerDependencies**?⚠️ | Map | __*Optional*__ +**peerDependencyOptions**?🔹 | [PeerDependencyOptions](#projen-peerdependencyoptions) | Options for `peerDeps`.
__*Optional*__ +**peerDeps**?🔹 | Array | Peer dependencies for this module.
__*Default*__: [] **projenDevDependency**?🔹 | boolean | Indicates of "projen" should be installed as a devDependency.
__*Default*__: true **projenUpgradeAutoMerge**?🔹 | boolean | Automatically merge projen upgrade PRs when build passes.
__*Default*__: "true" if mergify auto-merge is enabled (default) **projenUpgradeSchedule**?🔹 | Array | Customize the projenUpgrade schedule in cron expression.
__*Default*__: [ '0 6 * * *' ] @@ -4681,18 +4681,18 @@ Name | Type | Description **autoDetectBin**?🔹 | boolean | Automatically add all executables under the `bin` directory to your `package.json` file under the `bin` section.
__*Default*__: true **bin**?🔹 | Map | Binary programs vended with your module.
__*Optional*__ **buildWorkflow**?🔹 | boolean | Define a GitHub workflow for building PRs.
__*Default*__: true -**bundledDependencies**?🔹 | Array | __*Optional*__ -**bundledDeps**?🔹 | Array | __*Optional*__ +**bundledDependencies**?⚠️ | Array | __*Optional*__ +**bundledDeps**?🔹 | Array | List of dependencies to bundle into this module.
__*Optional*__ **copyrightOwner**?🔹 | string | License copyright owner.
__*Default*__: defaults to the value of authorName or "" if `authorName` is undefined. **copyrightPeriod**?🔹 | string | The copyright years to put in the LICENSE file.
__*Default*__: current year **defaultReleaseBranch**?🔹 | string | The name of the main release branch.
__*Default*__: 'master' **dependabot**?🔹 | boolean | Include dependabot configuration.
__*Default*__: true; **dependabotOptions**?🔹 | [DependabotOptions](#projen-dependabotoptions) | Options for dependabot.
__*Default*__: default options -**dependencies**?🔹 | Map | __*Optional*__ -**deps**?🔹 | Array | __*Optional*__ +**dependencies**?⚠️ | Map | __*Optional*__ +**deps**?🔹 | Array | Runtime dependencies of this module.
__*Default*__: [] **description**?🔹 | string | The description is just a string that helps people understand the purpose of the package.
__*Optional*__ -**devDependencies**?🔹 | Map | __*Optional*__ -**devDeps**?🔹 | Array | __*Optional*__ +**devDependencies**?⚠️ | Map | __*Optional*__ +**devDeps**?🔹 | Array | Build dependencies for this module.
__*Default*__: [] **entrypoint**?🔹 | string | Module entrypoint (`main` in `package.json`).
__*Default*__: lib/index.js **gitignore**?🔹 | Array | Additional entries to .gitignore.
__*Optional*__ **homepage**?🔹 | string | Package's Homepage / Website.
__*Optional*__ @@ -4709,9 +4709,9 @@ Name | Type | Description **npmignore**?🔹 | Array | Additional entries to .npmignore.
__*Optional*__ **npmignoreEnabled**?🔹 | boolean | Defines an .npmignore file. Normally this is only needed for libraries that are packaged as tarballs.
__*Default*__: true **packageManager**?🔹 | [NodePackageManager](#projen-nodepackagemanager) | The Node Package Manager used to execute scripts.
__*Default*__: packageManager.YARN -**peerDependencies**?🔹 | Map | __*Optional*__ -**peerDependencyOptions**?🔹 | [PeerDependencyOptions](#projen-peerdependencyoptions) | __*Optional*__ -**peerDeps**?🔹 | Array | __*Optional*__ +**peerDependencies**?⚠️ | Map | __*Optional*__ +**peerDependencyOptions**?🔹 | [PeerDependencyOptions](#projen-peerdependencyoptions) | Options for `peerDeps`.
__*Optional*__ +**peerDeps**?🔹 | Array | Peer dependencies for this module.
__*Default*__: [] **projenDevDependency**?🔹 | boolean | Indicates of "projen" should be installed as a devDependency.
__*Default*__: true **projenUpgradeAutoMerge**?🔹 | boolean | Automatically merge projen upgrade PRs when build passes.
__*Default*__: "true" if mergify auto-merge is enabled (default) **projenUpgradeSchedule**?🔹 | Array | Customize the projenUpgrade schedule in cron expression.
__*Default*__: [ '0 6 * * *' ] @@ -4796,18 +4796,18 @@ Name | Type | Description **autoDetectBin**?🔹 | boolean | Automatically add all executables under the `bin` directory to your `package.json` file under the `bin` section.
__*Default*__: true **bin**?🔹 | Map | Binary programs vended with your module.
__*Optional*__ **buildWorkflow**?🔹 | boolean | Define a GitHub workflow for building PRs.
__*Default*__: true -**bundledDependencies**?🔹 | Array | __*Optional*__ -**bundledDeps**?🔹 | Array | __*Optional*__ +**bundledDependencies**?⚠️ | Array | __*Optional*__ +**bundledDeps**?🔹 | Array | List of dependencies to bundle into this module.
__*Optional*__ **copyrightOwner**?🔹 | string | License copyright owner.
__*Default*__: defaults to the value of authorName or "" if `authorName` is undefined. **copyrightPeriod**?🔹 | string | The copyright years to put in the LICENSE file.
__*Default*__: current year **defaultReleaseBranch**?🔹 | string | The name of the main release branch.
__*Default*__: 'master' **dependabot**?🔹 | boolean | Include dependabot configuration.
__*Default*__: true; **dependabotOptions**?🔹 | [DependabotOptions](#projen-dependabotoptions) | Options for dependabot.
__*Default*__: default options -**dependencies**?🔹 | Map | __*Optional*__ -**deps**?🔹 | Array | __*Optional*__ +**dependencies**?⚠️ | Map | __*Optional*__ +**deps**?🔹 | Array | Runtime dependencies of this module.
__*Default*__: [] **description**?🔹 | string | The description is just a string that helps people understand the purpose of the package.
__*Optional*__ -**devDependencies**?🔹 | Map | __*Optional*__ -**devDeps**?🔹 | Array | __*Optional*__ +**devDependencies**?⚠️ | Map | __*Optional*__ +**devDeps**?🔹 | Array | Build dependencies for this module.
__*Default*__: [] **entrypoint**?🔹 | string | Module entrypoint (`main` in `package.json`).
__*Default*__: lib/index.js **gitignore**?🔹 | Array | Additional entries to .gitignore.
__*Optional*__ **homepage**?🔹 | string | Package's Homepage / Website.
__*Optional*__ @@ -4824,9 +4824,9 @@ Name | Type | Description **npmignore**?🔹 | Array | Additional entries to .npmignore.
__*Optional*__ **npmignoreEnabled**?🔹 | boolean | Defines an .npmignore file. Normally this is only needed for libraries that are packaged as tarballs.
__*Default*__: true **packageManager**?🔹 | [NodePackageManager](#projen-nodepackagemanager) | The Node Package Manager used to execute scripts.
__*Default*__: packageManager.YARN -**peerDependencies**?🔹 | Map | __*Optional*__ -**peerDependencyOptions**?🔹 | [PeerDependencyOptions](#projen-peerdependencyoptions) | __*Optional*__ -**peerDeps**?🔹 | Array | __*Optional*__ +**peerDependencies**?⚠️ | Map | __*Optional*__ +**peerDependencyOptions**?🔹 | [PeerDependencyOptions](#projen-peerdependencyoptions) | Options for `peerDeps`.
__*Optional*__ +**peerDeps**?🔹 | Array | Peer dependencies for this module.
__*Default*__: [] **projenDevDependency**?🔹 | boolean | Indicates of "projen" should be installed as a devDependency.
__*Default*__: true **projenUpgradeAutoMerge**?🔹 | boolean | Automatically merge projen upgrade PRs when build passes.
__*Default*__: "true" if mergify auto-merge is enabled (default) **projenUpgradeSchedule**?🔹 | Array | Customize the projenUpgrade schedule in cron expression.
__*Default*__: [ '0 6 * * *' ] @@ -4888,19 +4888,19 @@ Name | Type | Description **autoDetectBin**?🔹 | boolean | Automatically add all executables under the `bin` directory to your `package.json` file under the `bin` section.
__*Default*__: true **bin**?🔹 | Map | Binary programs vended with your module.
__*Optional*__ **buildWorkflow**?🔹 | boolean | Define a GitHub workflow for building PRs.
__*Default*__: true -**bundledDependencies**?🔹 | Array | __*Optional*__ -**bundledDeps**?🔹 | Array | __*Optional*__ +**bundledDependencies**?⚠️ | Array | __*Optional*__ +**bundledDeps**?🔹 | Array | List of dependencies to bundle into this module.
__*Optional*__ **compileBeforeTest**?🔹 | boolean | Compile the code before running tests.
__*Default*__: the default behavior is to delete the lib/ directory and run jest typescript tests and only if all tests pass, run the compiler. **copyrightOwner**?🔹 | string | License copyright owner.
__*Default*__: defaults to the value of authorName or "" if `authorName` is undefined. **copyrightPeriod**?🔹 | string | The copyright years to put in the LICENSE file.
__*Default*__: current year **defaultReleaseBranch**?🔹 | string | The name of the main release branch.
__*Default*__: 'master' **dependabot**?🔹 | boolean | Include dependabot configuration.
__*Default*__: true; **dependabotOptions**?🔹 | [DependabotOptions](#projen-dependabotoptions) | Options for dependabot.
__*Default*__: default options -**dependencies**?🔹 | Map | __*Optional*__ -**deps**?🔹 | Array | __*Optional*__ +**dependencies**?⚠️ | Map | __*Optional*__ +**deps**?🔹 | Array | Runtime dependencies of this module.
__*Default*__: [] **description**?🔹 | string | The description is just a string that helps people understand the purpose of the package.
__*Optional*__ -**devDependencies**?🔹 | Map | __*Optional*__ -**devDeps**?🔹 | Array | __*Optional*__ +**devDependencies**?⚠️ | Map | __*Optional*__ +**devDeps**?🔹 | Array | Build dependencies for this module.
__*Default*__: [] **disableTsconfig**?🔹 | boolean | Do not generate a `tsconfig.json` file (used by jsii projects since tsconfig.json is generated by the jsii compiler).
__*Default*__: false **docgen**?🔹 | boolean | Docgen by Typedoc.
__*Default*__: false **docsDirectory**?🔹 | string | Docs directory.
__*Default*__: 'docs' @@ -4925,9 +4925,9 @@ Name | Type | Description **npmignoreEnabled**?🔹 | boolean | Defines an .npmignore file. Normally this is only needed for libraries that are packaged as tarballs.
__*Default*__: true **package**?🔹 | boolean | Defines a `yarn package` command that will produce a tarball and place it under `dist/js`.
__*Default*__: true **packageManager**?🔹 | [NodePackageManager](#projen-nodepackagemanager) | The Node Package Manager used to execute scripts.
__*Default*__: packageManager.YARN -**peerDependencies**?🔹 | Map | __*Optional*__ -**peerDependencyOptions**?🔹 | [PeerDependencyOptions](#projen-peerdependencyoptions) | __*Optional*__ -**peerDeps**?🔹 | Array | __*Optional*__ +**peerDependencies**?⚠️ | Map | __*Optional*__ +**peerDependencyOptions**?🔹 | [PeerDependencyOptions](#projen-peerdependencyoptions) | Options for `peerDeps`.
__*Optional*__ +**peerDeps**?🔹 | Array | Peer dependencies for this module.
__*Default*__: [] **projenDevDependency**?🔹 | boolean | Indicates of "projen" should be installed as a devDependency.
__*Default*__: true **projenUpgradeAutoMerge**?🔹 | boolean | Automatically merge projen upgrade PRs when build passes.
__*Default*__: "true" if mergify auto-merge is enabled (default) **projenUpgradeSchedule**?🔹 | Array | Customize the projenUpgrade schedule in cron expression.
__*Default*__: [ '0 6 * * *' ] @@ -5104,7 +5104,7 @@ Name | Type | Description **bin**?⚠️ | Map | Binary programs vended with your module.
__*Optional*__ **buildWorkflow**?⚠️ | boolean | Define a GitHub workflow for building PRs.
__*Default*__: true **bundledDependencies**?⚠️ | Array | __*Optional*__ -**bundledDeps**?⚠️ | Array | __*Optional*__ +**bundledDeps**?⚠️ | Array | List of dependencies to bundle into this module.
__*Optional*__ **compileBeforeTest**?⚠️ | boolean | Compile the code before running tests.
__*Default*__: the default behavior is to delete the lib/ directory and run jest typescript tests and only if all tests pass, run the compiler. **copyrightOwner**?⚠️ | string | License copyright owner.
__*Default*__: defaults to the value of authorName or "" if `authorName` is undefined. **copyrightPeriod**?⚠️ | string | The copyright years to put in the LICENSE file.
__*Default*__: current year @@ -5112,10 +5112,10 @@ Name | Type | Description **dependabot**?⚠️ | boolean | Include dependabot configuration.
__*Default*__: true; **dependabotOptions**?⚠️ | [DependabotOptions](#projen-dependabotoptions) | Options for dependabot.
__*Default*__: default options **dependencies**?⚠️ | Map | __*Optional*__ -**deps**?⚠️ | Array | __*Optional*__ +**deps**?⚠️ | Array | Runtime dependencies of this module.
__*Default*__: [] **description**?⚠️ | string | The description is just a string that helps people understand the purpose of the package.
__*Optional*__ **devDependencies**?⚠️ | Map | __*Optional*__ -**devDeps**?⚠️ | Array | __*Optional*__ +**devDeps**?⚠️ | Array | Build dependencies for this module.
__*Default*__: [] **disableTsconfig**?⚠️ | boolean | Do not generate a `tsconfig.json` file (used by jsii projects since tsconfig.json is generated by the jsii compiler).
__*Default*__: false **docgen**?⚠️ | boolean | Docgen by Typedoc.
__*Default*__: false **docsDirectory**?⚠️ | string | Docs directory.
__*Default*__: 'docs' @@ -5141,8 +5141,8 @@ Name | Type | Description **package**?⚠️ | boolean | Defines a `yarn package` command that will produce a tarball and place it under `dist/js`.
__*Default*__: true **packageManager**?⚠️ | [NodePackageManager](#projen-nodepackagemanager) | The Node Package Manager used to execute scripts.
__*Default*__: packageManager.YARN **peerDependencies**?⚠️ | Map | __*Optional*__ -**peerDependencyOptions**?⚠️ | [PeerDependencyOptions](#projen-peerdependencyoptions) | __*Optional*__ -**peerDeps**?⚠️ | Array | __*Optional*__ +**peerDependencyOptions**?⚠️ | [PeerDependencyOptions](#projen-peerdependencyoptions) | Options for `peerDeps`.
__*Optional*__ +**peerDeps**?⚠️ | Array | Peer dependencies for this module.
__*Default*__: [] **projenDevDependency**?⚠️ | boolean | Indicates of "projen" should be installed as a devDependency.
__*Default*__: true **projenUpgradeAutoMerge**?⚠️ | boolean | Automatically merge projen upgrade PRs when build passes.
__*Default*__: "true" if mergify auto-merge is enabled (default) **projenUpgradeSchedule**?⚠️ | Array | Customize the projenUpgrade schedule in cron expression.
__*Default*__: [ '0 6 * * *' ] @@ -5191,19 +5191,19 @@ Name | Type | Description **autoDetectBin**?🔹 | boolean | Automatically add all executables under the `bin` directory to your `package.json` file under the `bin` section.
__*Default*__: true **bin**?🔹 | Map | Binary programs vended with your module.
__*Optional*__ **buildWorkflow**?🔹 | boolean | Define a GitHub workflow for building PRs.
__*Default*__: true -**bundledDependencies**?🔹 | Array | __*Optional*__ -**bundledDeps**?🔹 | Array | __*Optional*__ +**bundledDependencies**?⚠️ | Array | __*Optional*__ +**bundledDeps**?🔹 | Array | List of dependencies to bundle into this module.
__*Optional*__ **compileBeforeTest**?🔹 | boolean | Compile the code before running tests.
__*Default*__: the default behavior is to delete the lib/ directory and run jest typescript tests and only if all tests pass, run the compiler. **copyrightOwner**?🔹 | string | License copyright owner.
__*Default*__: defaults to the value of authorName or "" if `authorName` is undefined. **copyrightPeriod**?🔹 | string | The copyright years to put in the LICENSE file.
__*Default*__: current year **defaultReleaseBranch**?🔹 | string | The name of the main release branch.
__*Default*__: 'master' **dependabot**?🔹 | boolean | Include dependabot configuration.
__*Default*__: true; **dependabotOptions**?🔹 | [DependabotOptions](#projen-dependabotoptions) | Options for dependabot.
__*Default*__: default options -**dependencies**?🔹 | Map | __*Optional*__ -**deps**?🔹 | Array | __*Optional*__ +**dependencies**?⚠️ | Map | __*Optional*__ +**deps**?🔹 | Array | Runtime dependencies of this module.
__*Default*__: [] **description**?🔹 | string | The description is just a string that helps people understand the purpose of the package.
__*Optional*__ -**devDependencies**?🔹 | Map | __*Optional*__ -**devDeps**?🔹 | Array | __*Optional*__ +**devDependencies**?⚠️ | Map | __*Optional*__ +**devDeps**?🔹 | Array | Build dependencies for this module.
__*Default*__: [] **disableTsconfig**?🔹 | boolean | Do not generate a `tsconfig.json` file (used by jsii projects since tsconfig.json is generated by the jsii compiler).
__*Default*__: false **docgen**?🔹 | boolean | Docgen by Typedoc.
__*Default*__: false **docsDirectory**?🔹 | string | Docs directory.
__*Default*__: 'docs' @@ -5228,9 +5228,9 @@ Name | Type | Description **npmignoreEnabled**?🔹 | boolean | Defines an .npmignore file. Normally this is only needed for libraries that are packaged as tarballs.
__*Default*__: true **package**?🔹 | boolean | Defines a `yarn package` command that will produce a tarball and place it under `dist/js`.
__*Default*__: true **packageManager**?🔹 | [NodePackageManager](#projen-nodepackagemanager) | The Node Package Manager used to execute scripts.
__*Default*__: packageManager.YARN -**peerDependencies**?🔹 | Map | __*Optional*__ -**peerDependencyOptions**?🔹 | [PeerDependencyOptions](#projen-peerdependencyoptions) | __*Optional*__ -**peerDeps**?🔹 | Array | __*Optional*__ +**peerDependencies**?⚠️ | Map | __*Optional*__ +**peerDependencyOptions**?🔹 | [PeerDependencyOptions](#projen-peerdependencyoptions) | Options for `peerDeps`.
__*Optional*__ +**peerDeps**?🔹 | Array | Peer dependencies for this module.
__*Default*__: [] **projenDevDependency**?🔹 | boolean | Indicates of "projen" should be installed as a devDependency.
__*Default*__: true **projenUpgradeAutoMerge**?🔹 | boolean | Automatically merge projen upgrade PRs when build passes.
__*Default*__: "true" if mergify auto-merge is enabled (default) **projenUpgradeSchedule**?🔹 | Array | Customize the projenUpgrade schedule in cron expression.
__*Default*__: [ '0 6 * * *' ] diff --git a/src/logging.ts b/src/logging.ts index b95eff5a73c..91fff784e18 100644 --- a/src/logging.ts +++ b/src/logging.ts @@ -4,7 +4,7 @@ let enabled = true; function log(color: chalk.ChalkFunction, ...text: any[]) { if (!enabled) { return; } - console.error(`🤖 ${chalk.bold(color(...text))}`); + console.error(`🤖 ${color(...text)}`); } export function verbose(...text: any[]) { diff --git a/src/node-project.ts b/src/node-project.ts index be3f46666da..fc0be6a40e5 100644 --- a/src/node-project.ts +++ b/src/node-project.ts @@ -34,16 +34,95 @@ export enum NodePackageManager { } export interface NodeProjectCommonOptions { + /** + * Runtime dependencies of this module. + * + * The recommendation is to only specify the module name here (e.g. + * `express`). This will behave similar to `yarn add` or `npm install` in the + * sense that it will add the module as a dependency to your `package.json` + * file with the latest version (`^`). You can specify semver requirements in + * the same syntax passed to `npm i` or `yarn add` (e.g. `express@^2`) and + * this will be what you `package.json` will eventually include. + * + * @example [ 'express', 'lodash', 'foo@^2' ] + * @default [] + */ + readonly deps?: string[]; + + /** + * Build dependencies for this module. These dependencies will only be + * available in your build environment but will not be fetched when this + * module is consumed. + * + * The recommendation is to only specify the module name here (e.g. + * `express`). This will behave similar to `yarn add` or `npm install` in the + * sense that it will add the module as a dependency to your `package.json` + * file with the latest version (`^`). You can specify semver requirements in + * the same syntax passed to `npm i` or `yarn add` (e.g. `express@^2`) and + * this will be what you `package.json` will eventually include. + * + * @example [ 'typescript', '@types/express' ] + * @default [] + */ + readonly devDeps?: string[]; + + /** + * Peer dependencies for this module. Dependencies listed here are required to + * be installed (and satisfied) by the _consumer_ of this library. Using peer + * dependencies allows you to ensure that only a single module of a certain + * library exists in the `node_modules` tree of your consumers. + * + * Note that prior to npm@7, peer dependencies are _not_ automatically + * installed, which means that adding peer dependencies to a library will be a + * breaking change for your customers. + * + * Unless `peerDependencyOptions.pinnedDevDependency` is disabled (it is + * enabled by default), projen will automatically add a dev dependency with a + * pinned version for each peer dependency. This will ensure that you build & + * test your module against the lowest peer version required. + * + * @default [] + */ + readonly peerDeps?: string[]; + + /** + * List of dependencies to bundle into this module. These modules will be + * added both to the `dependencies` section and `peerDependencies` section of + * your `package.json`. + * + * The recommendation is to only specify the module name here (e.g. + * `express`). This will behave similar to `yarn add` or `npm install` in the + * sense that it will add the module as a dependency to your `package.json` + * file with the latest version (`^`). You can specify semver requirements in + * the same syntax passed to `npm i` or `yarn add` (e.g. `express@^2`) and + * this will be what you `package.json` will eventually include. + */ + readonly bundledDeps?: string[]; + + /** + * @deprecated use `bundledDeps` + */ readonly bundledDependencies?: string[]; + + /** + * @deprecated use `deps` + */ readonly dependencies?: Record; + + /** + * @deprecated use `devDeps` + */ readonly devDependencies?: Record; + + /** + * @deprecated use `peerDeps` + */ readonly peerDependencies?: Record; - readonly peerDependencyOptions?: PeerDependencyOptions; - readonly bundledDeps?: string[]; - readonly deps?: string[]; - readonly devDeps?: string[]; - readonly peerDeps?: string[]; + /** + * Options for `peerDeps`. + */ + readonly peerDependencyOptions?: PeerDependencyOptions; /** * Binary programs vended with your module. @@ -833,6 +912,9 @@ export class NodeProject extends Project { } } + /** + * @deprecated use `addDeps()` + */ public addDependencies(deps: { [module: string]: Semver }, bundle = false) { for (const [k, v] of Object.entries(deps)) { this.dependencies[k] = typeof(v) === 'string' ? v : v.spec; @@ -843,6 +925,9 @@ export class NodeProject extends Project { } } + /** + * @deprecated use `addBundledDeps()` + */ public addBundledDependencies(...deps: string[]) { if (deps.length && !this.allowLibraryDependencies) { throw new Error(`cannot add bundled dependencies to an APP project: ${deps.join(',')}`); @@ -861,12 +946,18 @@ export class NodeProject extends Project { } } + /** + * @deprecated use `addDevDeps()` + */ public addDevDependencies(deps: { [module: string]: Semver }) { for (const [k, v] of Object.entries(deps ?? {})) { this.devDependencies[k] = typeof(v) === 'string' ? v : v.spec; } } + /** + * @deprecated use `addPeerDeps()` + */ public addPeerDependencies(deps: { [module: string]: Semver }, options?: PeerDependencyOptions) { if (Object.keys(deps).length && !this.allowLibraryDependencies) { throw new Error(`cannot add peer dependencies to an APP project: ${Object.keys(deps).join(',')}`); @@ -1085,6 +1176,17 @@ export class NodeProject extends Project { } private processDeps(options: NodeProjectCommonOptions) { + const deprecate = (key: string, alt: string) => { + if (Object.keys((options as any)[key] ?? {}).length) { + logging.warn(`The option "${key}" will soon be deprecated, use "${alt}" instead (see API docs)`); + } + }; + + deprecate('dependencies', 'deps'); + deprecate('peerDependencies', 'peerDeps'); + deprecate('devDependencies', 'devDeps'); + deprecate('bundledDependencies', 'bundledDeps'); + this.addDependencies(options.dependencies ?? {}); this.addPeerDependencies(options.peerDependencies ?? {}); this.addDevDependencies(options.devDependencies ?? {}); diff --git a/src/semver.ts b/src/semver.ts index 3afff1068dc..dd5a5877e57 100644 --- a/src/semver.ts +++ b/src/semver.ts @@ -1,5 +1,10 @@ import * as semver from 'semver'; +/** + * @deprecated This class will be removed in upcoming releases. if you wish to + * specify semver requirements in `deps`, `devDeps`, etc, specify them like so + * `express@^2.1`. + */ export class Semver { public static of(spec: string) { return new Semver(spec); } diff --git a/test/__snapshots__/inventory.test.ts.snap b/test/__snapshots__/inventory.test.ts.snap index 3f36b498471..60df3236329 100644 --- a/test/__snapshots__/inventory.test.ts.snap +++ b/test/__snapshots__/inventory.test.ts.snap @@ -123,6 +123,7 @@ Array [ "type": "unknown", }, Object { + "docs": "List of dependencies to bundle into this module.", "name": "bundledDeps", "optional": true, "path": Array [ @@ -238,6 +239,8 @@ jest typescript tests and only if all tests pass, run the compiler.", "type": "unknown", }, Object { + "default": "[]", + "docs": "Runtime dependencies of this module.", "name": "deps", "optional": true, "path": Array [ @@ -266,6 +269,8 @@ jest typescript tests and only if all tests pass, run the compiler.", "type": "unknown", }, Object { + "default": "[]", + "docs": "Build dependencies for this module.", "name": "devDeps", "optional": true, "path": Array [ @@ -520,6 +525,8 @@ jest typescript tests and only if all tests pass, run the compiler.", "type": "unknown", }, Object { + "default": "[]", + "docs": "Peer dependencies for this module.", "name": "peerDeps", "optional": true, "path": Array [ @@ -888,6 +895,7 @@ jest typescript tests and only if all tests pass, run the compiler.", "type": "unknown", }, Object { + "docs": "List of dependencies to bundle into this module.", "name": "bundledDeps", "optional": true, "path": Array [ @@ -1013,6 +1021,8 @@ jest typescript tests and only if all tests pass, run the compiler.", "type": "unknown", }, Object { + "default": "[]", + "docs": "Runtime dependencies of this module.", "name": "deps", "optional": true, "path": Array [ @@ -1041,6 +1051,8 @@ jest typescript tests and only if all tests pass, run the compiler.", "type": "unknown", }, Object { + "default": "[]", + "docs": "Build dependencies for this module.", "name": "devDeps", "optional": true, "path": Array [ @@ -1230,6 +1242,8 @@ jest typescript tests and only if all tests pass, run the compiler.", "type": "unknown", }, Object { + "default": "[]", + "docs": "Peer dependencies for this module.", "name": "peerDeps", "optional": true, "path": Array [ @@ -1586,6 +1600,7 @@ jest typescript tests and only if all tests pass, run the compiler.", "type": "unknown", }, Object { + "docs": "List of dependencies to bundle into this module.", "name": "bundledDeps", "optional": true, "path": Array [ @@ -1680,6 +1695,8 @@ jest typescript tests and only if all tests pass, run the compiler.", "type": "unknown", }, Object { + "default": "[]", + "docs": "Runtime dependencies of this module.", "name": "deps", "optional": true, "path": Array [ @@ -1708,6 +1725,8 @@ jest typescript tests and only if all tests pass, run the compiler.", "type": "unknown", }, Object { + "default": "[]", + "docs": "Build dependencies for this module.", "name": "devDeps", "optional": true, "path": Array [ @@ -1897,6 +1916,8 @@ jest typescript tests and only if all tests pass, run the compiler.", "type": "unknown", }, Object { + "default": "[]", + "docs": "Peer dependencies for this module.", "name": "peerDeps", "optional": true, "path": Array [ @@ -2253,6 +2274,7 @@ jest typescript tests and only if all tests pass, run the compiler.", "type": "unknown", }, Object { + "docs": "List of dependencies to bundle into this module.", "name": "bundledDeps", "optional": true, "path": Array [ @@ -2337,6 +2359,8 @@ jest typescript tests and only if all tests pass, run the compiler.", "type": "unknown", }, Object { + "default": "[]", + "docs": "Runtime dependencies of this module.", "name": "deps", "optional": true, "path": Array [ @@ -2365,6 +2389,8 @@ jest typescript tests and only if all tests pass, run the compiler.", "type": "unknown", }, Object { + "default": "[]", + "docs": "Build dependencies for this module.", "name": "devDeps", "optional": true, "path": Array [ @@ -2554,6 +2580,8 @@ jest typescript tests and only if all tests pass, run the compiler.", "type": "unknown", }, Object { + "default": "[]", + "docs": "Peer dependencies for this module.", "name": "peerDeps", "optional": true, "path": Array [ @@ -2914,6 +2942,7 @@ jest typescript tests and only if all tests pass, run the compiler.", "type": "unknown", }, Object { + "docs": "List of dependencies to bundle into this module.", "name": "bundledDeps", "optional": true, "path": Array [ @@ -2976,6 +3005,8 @@ jest typescript tests and only if all tests pass, run the compiler.", "type": "unknown", }, Object { + "default": "[]", + "docs": "Runtime dependencies of this module.", "name": "deps", "optional": true, "path": Array [ @@ -3004,6 +3035,8 @@ jest typescript tests and only if all tests pass, run the compiler.", "type": "unknown", }, Object { + "default": "[]", + "docs": "Build dependencies for this module.", "name": "devDeps", "optional": true, "path": Array [ @@ -3181,6 +3214,8 @@ jest typescript tests and only if all tests pass, run the compiler.", "type": "unknown", }, Object { + "default": "[]", + "docs": "Peer dependencies for this module.", "name": "peerDeps", "optional": true, "path": Array [ @@ -3553,6 +3588,7 @@ jest typescript tests and only if all tests pass, run the compiler.", "type": "unknown", }, Object { + "docs": "List of dependencies to bundle into this module.", "name": "bundledDeps", "optional": true, "path": Array [ @@ -3627,6 +3663,8 @@ jest typescript tests and only if all tests pass, run the compiler.", "type": "unknown", }, Object { + "default": "[]", + "docs": "Runtime dependencies of this module.", "name": "deps", "optional": true, "path": Array [ @@ -3655,6 +3693,8 @@ jest typescript tests and only if all tests pass, run the compiler.", "type": "unknown", }, Object { + "default": "[]", + "docs": "Build dependencies for this module.", "name": "devDeps", "optional": true, "path": Array [ @@ -3909,6 +3949,8 @@ jest typescript tests and only if all tests pass, run the compiler.", "type": "unknown", }, Object { + "default": "[]", + "docs": "Peer dependencies for this module.", "name": "peerDeps", "optional": true, "path": Array [ @@ -4270,6 +4312,7 @@ jest typescript tests and only if all tests pass, run the compiler.", "type": "unknown", }, Object { + "docs": "List of dependencies to bundle into this module.", "name": "bundledDeps", "optional": true, "path": Array [ @@ -4332,6 +4375,8 @@ jest typescript tests and only if all tests pass, run the compiler.", "type": "unknown", }, Object { + "default": "[]", + "docs": "Runtime dependencies of this module.", "name": "deps", "optional": true, "path": Array [ @@ -4360,6 +4405,8 @@ jest typescript tests and only if all tests pass, run the compiler.", "type": "unknown", }, Object { + "default": "[]", + "docs": "Build dependencies for this module.", "name": "devDeps", "optional": true, "path": Array [ @@ -4537,6 +4584,8 @@ jest typescript tests and only if all tests pass, run the compiler.", "type": "unknown", }, Object { + "default": "[]", + "docs": "Peer dependencies for this module.", "name": "peerDeps", "optional": true, "path": Array [ @@ -4896,6 +4945,7 @@ jest typescript tests and only if all tests pass, run the compiler.", "type": "unknown", }, Object { + "docs": "List of dependencies to bundle into this module.", "name": "bundledDeps", "optional": true, "path": Array [ @@ -4958,6 +5008,8 @@ jest typescript tests and only if all tests pass, run the compiler.", "type": "unknown", }, Object { + "default": "[]", + "docs": "Runtime dependencies of this module.", "name": "deps", "optional": true, "path": Array [ @@ -4986,6 +5038,8 @@ jest typescript tests and only if all tests pass, run the compiler.", "type": "unknown", }, Object { + "default": "[]", + "docs": "Build dependencies for this module.", "name": "devDeps", "optional": true, "path": Array [ @@ -5163,6 +5217,8 @@ jest typescript tests and only if all tests pass, run the compiler.", "type": "unknown", }, Object { + "default": "[]", + "docs": "Peer dependencies for this module.", "name": "peerDeps", "optional": true, "path": Array [ @@ -5524,6 +5580,7 @@ jest typescript tests and only if all tests pass, run the compiler.", "type": "unknown", }, Object { + "docs": "List of dependencies to bundle into this module.", "name": "bundledDeps", "optional": true, "path": Array [ @@ -5598,6 +5655,8 @@ jest typescript tests and only if all tests pass, run the compiler.", "type": "unknown", }, Object { + "default": "[]", + "docs": "Runtime dependencies of this module.", "name": "deps", "optional": true, "path": Array [ @@ -5626,6 +5685,8 @@ jest typescript tests and only if all tests pass, run the compiler.", "type": "unknown", }, Object { + "default": "[]", + "docs": "Build dependencies for this module.", "name": "devDeps", "optional": true, "path": Array [ @@ -5880,6 +5941,8 @@ jest typescript tests and only if all tests pass, run the compiler.", "type": "unknown", }, Object { + "default": "[]", + "docs": "Peer dependencies for this module.", "name": "peerDeps", "optional": true, "path": Array [ @@ -6241,6 +6304,7 @@ jest typescript tests and only if all tests pass, run the compiler.", "type": "unknown", }, Object { + "docs": "List of dependencies to bundle into this module.", "name": "bundledDeps", "optional": true, "path": Array [ @@ -6315,6 +6379,8 @@ jest typescript tests and only if all tests pass, run the compiler.", "type": "unknown", }, Object { + "default": "[]", + "docs": "Runtime dependencies of this module.", "name": "deps", "optional": true, "path": Array [ @@ -6343,6 +6409,8 @@ jest typescript tests and only if all tests pass, run the compiler.", "type": "unknown", }, Object { + "default": "[]", + "docs": "Build dependencies for this module.", "name": "devDeps", "optional": true, "path": Array [ @@ -6597,6 +6665,8 @@ jest typescript tests and only if all tests pass, run the compiler.", "type": "unknown", }, Object { + "default": "[]", + "docs": "Peer dependencies for this module.", "name": "peerDeps", "optional": true, "path": Array [ @@ -6958,6 +7028,7 @@ jest typescript tests and only if all tests pass, run the compiler.", "type": "unknown", }, Object { + "docs": "List of dependencies to bundle into this module.", "name": "bundledDeps", "optional": true, "path": Array [ @@ -7032,6 +7103,8 @@ jest typescript tests and only if all tests pass, run the compiler.", "type": "unknown", }, Object { + "default": "[]", + "docs": "Runtime dependencies of this module.", "name": "deps", "optional": true, "path": Array [ @@ -7060,6 +7133,8 @@ jest typescript tests and only if all tests pass, run the compiler.", "type": "unknown", }, Object { + "default": "[]", + "docs": "Build dependencies for this module.", "name": "devDeps", "optional": true, "path": Array [ @@ -7314,6 +7389,8 @@ jest typescript tests and only if all tests pass, run the compiler.", "type": "unknown", }, Object { + "default": "[]", + "docs": "Peer dependencies for this module.", "name": "peerDeps", "optional": true, "path": Array [