From fd9eccc84f4bc9ccad31aeb36c513ba4be9edab9 Mon Sep 17 00:00:00 2001 From: cdk8s-automation <81352262+cdk8s-automation@users.noreply.github.com> Date: Tue, 14 Nov 2023 01:13:28 -0800 Subject: [PATCH 1/2] chore(deps): upgrade dev dependencies (#609) Upgrades project dependencies. See details in [workflow run]. [Workflow Run]: https://github.com/cdk8s-team/cdk8s-projen-common/actions/runs/6861402409 ------ *Automatically created by projen via the "upgrade-dev-dependencies-main" workflow* --- yarn.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/yarn.lock b/yarn.lock index 4c6c6f75..da84066a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1624,9 +1624,9 @@ camelcase@^7.0.1: integrity sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw== caniuse-lite@^1.0.30001541: - version "1.0.30001561" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001561.tgz#752f21f56f96f1b1a52e97aae98c57c562d5d9da" - integrity sha512-NTt0DNoKe958Q0BE0j0c1V9jbUzhBxHIEJy7asmGrpE0yG63KTV7PLHPnK2E1O9RsQrQ081I3NLuXGS6zht3cw== + version "1.0.30001562" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001562.tgz#9d16c5fd7e9c592c4cd5e304bc0f75b0008b2759" + integrity sha512-kfte3Hym//51EdX4239i+Rmp20EsLIYGdPkERegTgU19hQWCRhsRFGKHTliUlsry53tv17K7n077Kqa0WJU4ng== case@^1.6.3: version "1.6.3" @@ -2268,9 +2268,9 @@ eastasianwidth@^0.2.0: integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== electron-to-chromium@^1.4.535: - version "1.4.581" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.581.tgz#23b684c67bf56d4284e95598c05a5d266653b6d8" - integrity sha512-6uhqWBIapTJUxgPTCHH9sqdbxIMPt7oXl0VcAL1kOtlU6aECdcMncCrX5Z7sHQ/invtrC9jUQUef7+HhO8vVFw== + version "1.4.582" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.582.tgz#4908215182266793499ac57d80e2680d7dd9b3db" + integrity sha512-89o0MGoocwYbzqUUjc+VNpeOFSOK9nIdC5wY4N+PVUarUK0MtjyTjks75AZS2bW4Kl8MdewdFsWaH0jLy+JNoA== emittery@^0.8.1: version "0.8.1" From 8c0c4c6ed3923a9700d777448d6ab2d3a594f0b9 Mon Sep 17 00:00:00 2001 From: cdk8s-automation <81352262+cdk8s-automation@users.noreply.github.com> Date: Tue, 14 Nov 2023 09:14:31 -0800 Subject: [PATCH 2/2] chore(deps): upgrade configuration (#530) Upgrades project dependencies. See details in [workflow run]. [Workflow Run]: https://github.com/cdk8s-team/cdk8s-projen-common/actions/runs/6865434422 ------ *Automatically created by projen via the "upgrade-configuration-main" workflow* --- .gitattributes | 1 - .gitignore | 1 - .projen/deps.json | 7 +- .projen/files.json | 1 - .projen/tasks.json | 10 +- API.md | 8724 +++++++++-------- package.json | 10 +- test/projects/__snapshots__/jsii.test.ts.snap | 312 +- test/projects/__snapshots__/node.test.ts.snap | 135 +- .../__snapshots__/typescript.test.ts.snap | 240 +- yarn.lock | 205 +- 11 files changed, 4985 insertions(+), 4661 deletions(-) diff --git a/.gitattributes b/.gitattributes index 7802f682..31d841ad 100644 --- a/.gitattributes +++ b/.gitattributes @@ -21,7 +21,6 @@ /.gitignore linguist-generated /.mergify.yml linguist-generated /.npmignore linguist-generated -/.npmrc linguist-generated /.projen/** linguist-generated /.projen/deps.json linguist-generated /.projen/files.json linguist-generated diff --git a/.gitignore b/.gitignore index f019b930..d612b17e 100644 --- a/.gitignore +++ b/.gitignore @@ -42,7 +42,6 @@ junit.xml !/.mergify.yml !/.github/workflows/upgrade-runtime-dependencies-main.yml !/.github/pull_request_template.md -!/.npmrc !/test/ !/tsconfig.dev.json !/src/ diff --git a/.projen/deps.json b/.projen/deps.json index 14758be5..bc555c5e 100644 --- a/.projen/deps.json +++ b/.projen/deps.json @@ -12,16 +12,17 @@ }, { "name": "@typescript-eslint/eslint-plugin", - "version": "^5", + "version": "^6", "type": "build" }, { "name": "@typescript-eslint/parser", - "version": "^5", + "version": "^6", "type": "build" }, { - "name": "eslint-import-resolver-node", + "name": "constructs", + "version": "^10.0.0", "type": "build" }, { diff --git a/.projen/files.json b/.projen/files.json index dcfd6984..96a29877 100644 --- a/.projen/files.json +++ b/.projen/files.json @@ -19,7 +19,6 @@ ".github/workflows/upgrade-runtime-dependencies-main.yml", ".gitignore", ".mergify.yml", - ".npmrc", ".projen/deps.json", ".projen/files.json", ".projen/tasks.json", diff --git a/.projen/tasks.json b/.projen/tasks.json index bfe4bfe2..93bfd611 100644 --- a/.projen/tasks.json +++ b/.projen/tasks.json @@ -272,7 +272,7 @@ "exec": "yarn upgrade npm-check-updates" }, { - "exec": "npm-check-updates --upgrade --target=minor --filter=jsii,jsii-docgen,jsii-pacmak,jsii-rosetta,typescript" + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev --filter=jsii,jsii-docgen,jsii-pacmak,jsii-rosetta,typescript" }, { "exec": "yarn install --check-files" @@ -299,7 +299,7 @@ "exec": "yarn upgrade npm-check-updates" }, { - "exec": "npm-check-updates --upgrade --target=minor --filter=projen" + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev,peer,prod,optional --filter=projen" }, { "exec": "yarn install --check-files" @@ -326,13 +326,13 @@ "exec": "yarn upgrade npm-check-updates" }, { - "exec": "npm-check-updates --upgrade --target=minor --filter=@types/jest,@types/node,@typescript-eslint/eslint-plugin,@typescript-eslint/parser,eslint-import-resolver-node,eslint-import-resolver-typescript,eslint-plugin-import,eslint,jest-junit,jest,jsii-diff,npm-check-updates,standard-version,ts-jest,ts-node,codemaker,deepmerge" + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev --filter=@types/jest,@types/node,@typescript-eslint/eslint-plugin,@typescript-eslint/parser,constructs,eslint-import-resolver-typescript,eslint-plugin-import,eslint,jest-junit,jest,jsii-diff,npm-check-updates,standard-version,ts-jest,ts-node,codemaker,deepmerge" }, { "exec": "yarn install --check-files" }, { - "exec": "yarn upgrade @types/jest @types/node @typescript-eslint/eslint-plugin @typescript-eslint/parser eslint-import-resolver-node eslint-import-resolver-typescript eslint-plugin-import eslint jest-junit jest jsii-diff npm-check-updates standard-version ts-jest ts-node codemaker deepmerge" + "exec": "yarn upgrade @types/jest @types/node @typescript-eslint/eslint-plugin @typescript-eslint/parser constructs eslint-import-resolver-typescript eslint-plugin-import eslint jest-junit jest jsii-diff npm-check-updates standard-version ts-jest ts-node codemaker deepmerge" }, { "exec": "npx projen" @@ -353,7 +353,7 @@ "exec": "yarn upgrade npm-check-updates" }, { - "exec": "npm-check-updates --upgrade --target=minor --filter=projen,codemaker" + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=peer,prod,optional --filter=projen,codemaker" }, { "exec": "yarn install --check-files" diff --git a/API.md b/API.md index 874f6c1c..e49fa8ef 100644 --- a/API.md +++ b/API.md @@ -4,4369 +4,4540 @@ Common configuration for projen-managed projects in the cdk8s-team GitHub org. # API Reference +## Constructs -## Structs +### Cdk8sTeamJsiiProject -### Cdk8sTeamJsiiProjectOptions +#### Initializers -Options for `Cdk8sTeamJsiiProject`. +```typescript +import { Cdk8sTeamJsiiProject } from '@cdk8s/projen-common' -Note that this extends `Cdk8sTeamTypeScriptProjectOptions` and not `cdk.JsiiProjectOptions` -because `cdk.JsiiProjectOptions` has required properties (namely 'author' and 'authorAddress') -that we want to hardcode and disallow customization of. This means that any jsii specific feature -cannot be customized on the project level. This is ok because we don't expect much deviation -with those features between projects. If this turns out to not be the case, we will change appropriately. +new Cdk8sTeamJsiiProject(options: Cdk8sTeamJsiiProjectOptions) +``` -#### Initializer +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| options | Cdk8sTeamJsiiProjectOptions | *No description.* | + +--- + +##### `options`Required + +- *Type:* Cdk8sTeamJsiiProjectOptions + +--- + +#### Methods + +| **Name** | **Description** | +| --- | --- | +| toString | Returns a string representation of this construct. | +| addExcludeFromCleanup | Exclude the matching files from pre-synth cleanup. | +| addGitIgnore | Adds a .gitignore pattern. | +| addPackageIgnore | Exclude these files from the bundled package. | +| addTask | Adds a new task to this project. | +| addTip | Prints a "tip" message during synthesis. | +| annotateGenerated | Marks the provided file(s) as being generated. | +| postSynthesize | Called after all components are synthesized. | +| preSynthesize | Called before all components are synthesized. | +| removeTask | Removes a task from a project. | +| runTaskCommand | Returns the shell command to execute in order to run a task. | +| synth | Synthesize all project files into `outdir`. | +| tryFindFile | Finds a file at the specified relative path within this project and all its subprojects. | +| tryFindJsonFile | Finds a json file by name. | +| tryFindObjectFile | Finds an object file (like JsonFile, YamlFile, etc.) by name. | +| tryRemoveFile | Finds a file at the specified relative path within this project and removes it. | +| addBins | *No description.* | +| addBundledDeps | Defines bundled dependencies. | +| addCompileCommand | DEPRECATED. | +| addDeps | Defines normal dependencies. | +| addDevDeps | Defines development/test dependencies. | +| addFields | Directly set fields in `package.json`. | +| addKeywords | Adds keywords to package.json (deduplicated). | +| addPeerDeps | Defines peer dependencies. | +| addScripts | Replaces the contents of multiple npm package.json scripts. | +| addTestCommand | DEPRECATED. | +| hasScript | Indicates if a script by the name name is defined. | +| removeScript | Removes the npm script (always successful). | +| renderWorkflowSetup | Returns the set of workflow steps which should be executed to bootstrap a workflow. | +| setScript | Replaces the contents of an npm package.json script. | + +--- + +##### `toString` ```typescript -import { Cdk8sTeamJsiiProjectOptions } from '@cdk8s/projen-common' +public toString(): string +``` -const cdk8sTeamJsiiProjectOptions: Cdk8sTeamJsiiProjectOptions = { ... } +Returns a string representation of this construct. + +##### `addExcludeFromCleanup` + +```typescript +public addExcludeFromCleanup(globs: string): void ``` -#### Properties +Exclude the matching files from pre-synth cleanup. -| **Name** | **Type** | **Description** | -| --- | --- | --- | -| name | string | This is the name of your project. | -| commitGenerated | boolean | Whether to commit the managed files by default. | -| gitIgnoreOptions | projen.IgnoreFileOptions | Configuration options for .gitignore file. | -| gitOptions | projen.GitOptions | Configuration options for git. | -| logging | projen.LoggerOptions | Configure logging options such as verbosity. | -| outdir | string | The root directory of the project. | -| parent | projen.Project | The parent project, if this project is part of a bigger project. | -| projenCommand | string | The shell command to use in order to run the projen CLI. | -| projenrcJson | boolean | Generate (once) .projenrc.json (in JSON). Set to `false` in order to disable .projenrc.json generation. | -| projenrcJsonOptions | projen.ProjenrcJsonOptions | Options for .projenrc.json. | -| renovatebot | boolean | Use renovatebot to handle dependency upgrades. | -| renovatebotOptions | projen.RenovatebotOptions | Options for renovatebot. | -| autoApproveOptions | projen.github.AutoApproveOptions | Enable and configure the 'auto approve' workflow. | -| autoMerge | boolean | Enable automatic merging on GitHub. | -| autoMergeOptions | projen.github.AutoMergeOptions | Configure options for automatic merging on GitHub. | -| clobber | boolean | Add a `clobber` task which resets the repo to origin. | -| devContainer | boolean | Add a VSCode development environment (used for GitHub Codespaces). | -| github | boolean | Enable GitHub integration. | -| githubOptions | projen.github.GitHubOptions | Options for GitHub integration. | -| gitpod | boolean | Add a Gitpod development environment. | -| mergify | boolean | Whether mergify should be enabled on this repository or not. | -| mergifyOptions | projen.github.MergifyOptions | Options for mergify. | -| projectType | projen.ProjectType | Which type of project this is (library/app). | -| projenCredentials | projen.github.GithubCredentials | Choose a method of providing GitHub API access for projen workflows. | -| projenTokenSecret | string | The name of a secret which includes a GitHub Personal Access Token to be used by projen workflows. | -| readme | projen.SampleReadmeProps | The README setup. | -| stale | boolean | Auto-close of stale issues and pull request. | -| staleOptions | projen.github.StaleOptions | Auto-close stale issues and pull requests. | -| vscode | boolean | Enable VSCode integration. | -| allowLibraryDependencies | boolean | Allow the project to include `peerDependencies` and `bundledDependencies`. | -| authorEmail | string | Author's e-mail. | -| authorName | string | Author's name. | -| authorOrganization | boolean | Is the author an organization. | -| authorUrl | string | Author's URL / Website. | -| autoDetectBin | boolean | Automatically add all executables under the `bin` directory to your `package.json` file under the `bin` section. | -| bin | {[ key: string ]: string} | Binary programs vended with your module. | -| bugsEmail | string | The email address to which issues should be reported. | -| bugsUrl | string | The url to your project's issue tracker. | -| bundledDeps | string[] | List of dependencies to bundle into this module. | -| codeArtifactOptions | projen.javascript.CodeArtifactOptions | Options for npm packages using AWS CodeArtifact. | -| deps | string[] | Runtime dependencies of this module. | -| description | string | The description is just a string that helps people understand the purpose of the package. | -| devDeps | string[] | Build dependencies for this module. | -| entrypoint | string | Module entrypoint (`main` in `package.json`). | -| homepage | string | Package's Homepage / Website. | -| keywords | string[] | Keywords to include in `package.json`. | -| license | string | License's SPDX identifier. | -| licensed | boolean | Indicates if a license should be added. | -| maxNodeVersion | string | Minimum node.js version to require via `engines` (inclusive). | -| minNodeVersion | string | Minimum Node.js version to require via package.json `engines` (inclusive). | -| npmAccess | projen.javascript.NpmAccess | Access level of the npm package. | -| npmRegistry | string | The host name of the npm registry to publish to. | -| npmRegistryUrl | string | The base URL of the npm package registry. | -| npmTokenSecret | string | GitHub secret which contains the NPM token to use when publishing packages. | -| packageManager | projen.javascript.NodePackageManager | The Node Package Manager used to execute scripts. | -| packageName | string | The "name" in package.json. | -| peerDependencyOptions | projen.javascript.PeerDependencyOptions | Options for `peerDeps`. | -| peerDeps | string[] | Peer dependencies for this module. | -| pnpmVersion | string | The version of PNPM to use if using PNPM as a package manager. | -| repository | string | The repository is the location where the actual code for your package lives. | -| repositoryDirectory | string | If the package.json for your package is not in the root directory (for example if it is part of a monorepo), you can specify the directory in which it lives. | -| scopedPackagesOptions | projen.javascript.ScopedPackagesOptions[] | Options for privately hosted scoped packages. | -| scripts | {[ key: string ]: string} | npm scripts to include. | -| stability | string | Package's Stability. | -| jsiiReleaseVersion | string | Version requirement of `publib` which is used to publish modules to npm. | -| majorVersion | number | Major version to release from the default branch. | -| minMajorVersion | number | Minimal Major version to release. | -| npmDistTag | string | The npmDistTag to use when publishing from the default branch. | -| postBuildSteps | projen.github.workflows.JobStep[] | Steps to execute after build as part of the release workflow. | -| prerelease | string | Bump versions from the default branch as pre-releases (e.g. "beta", "alpha", "pre"). | -| publishDryRun | boolean | Instead of actually publishing to package managers, just print the publishing command. | -| publishTasks | boolean | Define publishing tasks that can be executed manually as well as workflows. | -| releasableCommits | projen.ReleasableCommits | Find commits that should be considered releasable Used to decide if a release is required. | -| releaseBranches | {[ key: string ]: projen.release.BranchOptions} | Defines additional release branches. | -| releaseEveryCommit | boolean | Automatically release new versions every commit to one of branches in `releaseBranches`. | -| releaseFailureIssue | boolean | Create a github issue on every failed publishing task. | -| releaseFailureIssueLabel | string | The label to apply to issues indicating publish failures. | -| releaseSchedule | string | CRON schedule to trigger new releases. | -| releaseTagPrefix | string | Automatically add the given prefix to release tags. Useful if you are releasing on multiple branches with overlapping version numbers. | -| releaseTrigger | projen.release.ReleaseTrigger | The release trigger to use. | -| releaseWorkflowName | string | The name of the default release workflow. | -| releaseWorkflowSetupSteps | projen.github.workflows.JobStep[] | A set of workflow steps to execute in order to setup the workflow container. | -| versionrcOptions | {[ key: string ]: any} | Custom configuration used when creating changelog with standard-version package. | -| workflowContainerImage | string | Container image to use for GitHub workflows. | -| workflowRunsOn | string[] | Github Runner selection labels. | -| defaultReleaseBranch | string | The name of the main release branch. | -| artifactsDirectory | string | A directory which will contain build artifacts. | -| autoApproveUpgrades | boolean | Automatically approve deps upgrade PRs, allowing them to be merged by mergify (if configued). | -| buildWorkflow | boolean | Define a GitHub workflow for building PRs. | -| buildWorkflowTriggers | projen.github.workflows.Triggers | Build workflow triggers. | -| bundlerOptions | projen.javascript.BundlerOptions | Options for `Bundler`. | -| codeCov | boolean | Define a GitHub workflow step for sending code coverage metrics to https://codecov.io/ Uses codecov/codecov-action@v3 A secret is required for private repos. Configured with `@codeCovTokenSecret`. | -| codeCovTokenSecret | string | Define the secret name for a specified https://codecov.io/ token A secret is required to send coverage for private repositories. | -| copyrightOwner | string | License copyright owner. | -| copyrightPeriod | string | The copyright years to put in the LICENSE file. | -| dependabot | boolean | Use dependabot to handle dependency upgrades. | -| dependabotOptions | projen.github.DependabotOptions | Options for dependabot. | -| depsUpgrade | boolean | Use github workflows to handle dependency upgrades. | -| depsUpgradeOptions | projen.javascript.UpgradeDependenciesOptions | Options for `UpgradeDependencies`. | -| gitignore | string[] | Additional entries to .gitignore. | -| jest | boolean | Setup jest unit tests. | -| jestOptions | projen.javascript.JestOptions | Jest options. | -| mutableBuild | boolean | Automatically update files modified during builds to pull-request branches. | -| npmignore | string[] | Additional entries to .npmignore. | -| npmignoreEnabled | boolean | Defines an .npmignore file. Normally this is only needed for libraries that are packaged as tarballs. | -| npmIgnoreOptions | projen.IgnoreFileOptions | Configuration options for .npmignore file. | -| package | boolean | Defines a `package` task that will produce an npm tarball under the artifacts directory (e.g. `dist`). | -| prettier | boolean | Setup prettier. | -| prettierOptions | projen.javascript.PrettierOptions | Prettier options. | -| projenDevDependency | boolean | Indicates of "projen" should be installed as a devDependency. | -| projenrcJs | boolean | Generate (once) .projenrc.js (in JavaScript). Set to `false` in order to disable .projenrc.js generation. | -| projenrcJsOptions | projen.javascript.ProjenrcOptions | Options for .projenrc.js. | -| projenVersion | string | Version of projen to install. | -| pullRequestTemplate | boolean | Include a GitHub pull request template. | -| pullRequestTemplateContents | string[] | The contents of the pull request template. | -| release | boolean | Add release management to this project. | -| releaseToNpm | boolean | Automatically release to npm when new versions are introduced. | -| releaseWorkflow | boolean | DEPRECATED: renamed to `release`. | -| workflowBootstrapSteps | projen.github.workflows.JobStep[] | Workflow steps to use in order to bootstrap this repo. | -| workflowGitIdentity | projen.github.GitIdentity | The git identity to use in workflows. | -| workflowNodeVersion | string | The node version to use in GitHub workflows. | -| workflowPackageCache | boolean | Enable Node.js package cache in GitHub workflows. | -| disableTsconfig | boolean | Do not generate a `tsconfig.json` file (used by jsii projects since tsconfig.json is generated by the jsii compiler). | -| disableTsconfigDev | boolean | Do not generate a `tsconfig.dev.json` file. | -| docgen | boolean | Docgen by Typedoc. | -| docsDirectory | string | Docs directory. | -| entrypointTypes | string | The .d.ts file that includes the type declarations for this module. | -| eslint | boolean | Setup eslint. | -| eslintOptions | projen.javascript.EslintOptions | Eslint options. | -| libdir | string | Typescript artifacts output directory. | -| projenrcTs | boolean | Use TypeScript for your projenrc file (`.projenrc.ts`). | -| projenrcTsOptions | projen.typescript.ProjenrcOptions | Options for .projenrc.ts. | -| sampleCode | boolean | Generate one-time sample in `src/` and `test/` if there are no files there. | -| srcdir | string | Typescript sources directory. | -| testdir | string | Jest tests directory. Tests files should be named `xxx.test.ts`. | -| tsconfig | projen.javascript.TypescriptConfigOptions | Custom TSConfig. | -| tsconfigDev | projen.javascript.TypescriptConfigOptions | Custom tsconfig options for the development tsconfig.json file (used for testing). | -| tsconfigDevFile | string | The name of the development tsconfig.json file. | -| typescriptVersion | string | TypeScript version to use. | -| additionalCompilerDependencies | string[] | Packages that compile the project apart from the typescript/jsii compiler. | -| backport | boolean | Configure a backport workflow. | -| backportBranches | string[] | Branches to backport to. | -| repoName | string | The name of the repository inside the cdk8s-team org where the code of the project is locate in. | -| golang | boolean | Publish Golang bindings to GitHub. | -| golangBranch | string | Name of the branch in the golang repository to publish to. | -| jsiiVersion | string | JSII version to use. | -| maven | boolean | Publish Java bindings to Maven. | -| nuget | boolean | Publish Dotnet bindings to Nuget. | -| pypi | boolean | Publish Python bindings to PyPI. | +Can be used when, for example, some +source files include the projen marker and we don't want them to be erased during synth. + +###### `globs`Required + +- *Type:* string + +The glob patterns to match. --- -##### `name`Required +##### `addGitIgnore` + +```typescript +public addGitIgnore(pattern: string): void +``` + +Adds a .gitignore pattern. + +###### `pattern`Required + +- *Type:* string + +The glob pattern to ignore. + +--- + +##### `addPackageIgnore` + +```typescript +public addPackageIgnore(pattern: string): void +``` + +Exclude these files from the bundled package. + +Implemented by project types based on the +packaging mechanism. For example, `NodeProject` delegates this to `.npmignore`. + +###### `pattern`Required + +- *Type:* string + +--- + +##### `addTask` + +```typescript +public addTask(name: string, props?: TaskOptions): Task +``` + +Adds a new task to this project. + +This will fail if the project already has +a task with this name. + +###### `name`Required + +- *Type:* string + +The task name to add. + +--- + +###### `props`Optional + +- *Type:* projen.TaskOptions + +Task properties. + +--- + +##### ~~`addTip`~~ + +```typescript +public addTip(message: string): void +``` + +Prints a "tip" message during synthesis. + +###### `message`Required + +- *Type:* string + +The message. + +--- + +##### `annotateGenerated` + +```typescript +public annotateGenerated(glob: string): void +``` + +Marks the provided file(s) as being generated. + +This is achieved using the +github-linguist attributes. Generated files do not count against the +repository statistics and language breakdown. + +> [https://github.com/github/linguist/blob/master/docs/overrides.md](https://github.com/github/linguist/blob/master/docs/overrides.md) + +###### `glob`Required + +- *Type:* string + +the glob pattern to match (could be a file path). + +--- + +##### `postSynthesize` + +```typescript +public postSynthesize(): void +``` + +Called after all components are synthesized. + +Order is *not* guaranteed. + +##### `preSynthesize` + +```typescript +public preSynthesize(): void +``` + +Called before all components are synthesized. + +##### `removeTask` ```typescript -public readonly name: string; +public removeTask(name: string): Task ``` +Removes a task from a project. + +###### `name`Required + - *Type:* string -- *Default:* $BASEDIR -This is the name of your project. +The name of the task to remove. --- -##### `commitGenerated`Optional +##### `runTaskCommand` ```typescript -public readonly commitGenerated: boolean; +public runTaskCommand(task: Task): string ``` -- *Type:* boolean -- *Default:* true - -Whether to commit the managed files by default. - ---- +Returns the shell command to execute in order to run a task. -##### `gitIgnoreOptions`Optional +This will +typically be `npx projen TASK`. -```typescript -public readonly gitIgnoreOptions: IgnoreFileOptions; -``` +###### `task`Required -- *Type:* projen.IgnoreFileOptions +- *Type:* projen.Task -Configuration options for .gitignore file. +The task for which the command is required. --- -##### `gitOptions`Optional +##### `synth` ```typescript -public readonly gitOptions: GitOptions; +public synth(): void ``` -- *Type:* projen.GitOptions - -Configuration options for git. +Synthesize all project files into `outdir`. ---- +1. Call "this.preSynthesize()" +2. Delete all generated files +3. Synthesize all subprojects +4. Synthesize all components of this project +5. Call "postSynthesize()" for all components of this project +6. Call "this.postSynthesize()" -##### `logging`Optional +##### `tryFindFile` ```typescript -public readonly logging: LoggerOptions; +public tryFindFile(filePath: string): FileBase ``` -- *Type:* projen.LoggerOptions -- *Default:* {} +Finds a file at the specified relative path within this project and all its subprojects. -Configure logging options such as verbosity. +###### `filePath`Required + +- *Type:* string + +The file path. + +If this path is relative, it will be resolved +from the root of _this_ project. --- -##### `outdir`Optional +##### ~~`tryFindJsonFile`~~ ```typescript -public readonly outdir: string; +public tryFindJsonFile(filePath: string): JsonFile ``` -- *Type:* string -- *Default:* "." +Finds a json file by name. -The root directory of the project. +###### `filePath`Required -Relative to this directory, all files are synthesized. +- *Type:* string -If this project has a parent, this directory is relative to the parent -directory and it cannot be the same as the parent or any of it's other -sub-projects. +The file path. --- -##### `parent`Optional +##### `tryFindObjectFile` ```typescript -public readonly parent: Project; +public tryFindObjectFile(filePath: string): ObjectFile ``` -- *Type:* projen.Project +Finds an object file (like JsonFile, YamlFile, etc.) by name. -The parent project, if this project is part of a bigger project. +###### `filePath`Required + +- *Type:* string + +The file path. --- -##### `projenCommand`Optional +##### `tryRemoveFile` ```typescript -public readonly projenCommand: string; +public tryRemoveFile(filePath: string): FileBase ``` +Finds a file at the specified relative path within this project and removes it. + +###### `filePath`Required + - *Type:* string -- *Default:* "npx projen" -The shell command to use in order to run the projen CLI. +The file path. -Can be used to customize in special environments. +If this path is relative, it will be +resolved from the root of _this_ project. --- -##### `projenrcJson`Optional +##### `addBins` ```typescript -public readonly projenrcJson: boolean; +public addBins(bins: {[ key: string ]: string}): void ``` -- *Type:* boolean -- *Default:* false +###### `bins`Required -Generate (once) .projenrc.json (in JSON). Set to `false` in order to disable .projenrc.json generation. +- *Type:* {[ key: string ]: string} --- -##### `projenrcJsonOptions`Optional +##### `addBundledDeps` ```typescript -public readonly projenrcJsonOptions: ProjenrcJsonOptions; +public addBundledDeps(deps: string): void ``` -- *Type:* projen.ProjenrcJsonOptions -- *Default:* default options - -Options for .projenrc.json. +Defines bundled dependencies. ---- +Bundled dependencies will be added as normal dependencies as well as to the +`bundledDependencies` section of your `package.json`. -##### `renovatebot`Optional +###### `deps`Required -```typescript -public readonly renovatebot: boolean; -``` +- *Type:* string -- *Type:* boolean -- *Default:* false +Names modules to install. -Use renovatebot to handle dependency upgrades. +By default, the the dependency will +be installed in the next `npx projen` run and the version will be recorded +in your `package.json` file. You can upgrade manually or using `yarn +add/upgrade`. If you wish to specify a version range use this syntax: +`module@^7`. --- -##### `renovatebotOptions`Optional +##### ~~`addCompileCommand`~~ ```typescript -public readonly renovatebotOptions: RenovatebotOptions; +public addCompileCommand(commands: string): void ``` -- *Type:* projen.RenovatebotOptions -- *Default:* default options +DEPRECATED. -Options for renovatebot. +###### `commands`Required + +- *Type:* string --- -##### `autoApproveOptions`Optional +##### `addDeps` ```typescript -public readonly autoApproveOptions: AutoApproveOptions; +public addDeps(deps: string): void ``` -- *Type:* projen.github.AutoApproveOptions -- *Default:* auto approve is disabled +Defines normal dependencies. -Enable and configure the 'auto approve' workflow. +###### `deps`Required + +- *Type:* string + +Names modules to install. + +By default, the the dependency will +be installed in the next `npx projen` run and the version will be recorded +in your `package.json` file. You can upgrade manually or using `yarn +add/upgrade`. If you wish to specify a version range use this syntax: +`module@^7`. --- -##### `autoMerge`Optional +##### `addDevDeps` ```typescript -public readonly autoMerge: boolean; +public addDevDeps(deps: string): void ``` -- *Type:* boolean -- *Default:* true +Defines development/test dependencies. -Enable automatic merging on GitHub. +###### `deps`Required -Has no effect if `github.mergify` -is set to false. +- *Type:* string + +Names modules to install. + +By default, the the dependency will +be installed in the next `npx projen` run and the version will be recorded +in your `package.json` file. You can upgrade manually or using `yarn +add/upgrade`. If you wish to specify a version range use this syntax: +`module@^7`. --- -##### `autoMergeOptions`Optional +##### `addFields` ```typescript -public readonly autoMergeOptions: AutoMergeOptions; +public addFields(fields: {[ key: string ]: any}): void ``` -- *Type:* projen.github.AutoMergeOptions -- *Default:* see defaults in `AutoMergeOptions` +Directly set fields in `package.json`. -Configure options for automatic merging on GitHub. +###### `fields`Required -Has no effect if -`github.mergify` or `autoMerge` is set to false. +- *Type:* {[ key: string ]: any} + +The fields to set. --- -##### `clobber`Optional +##### `addKeywords` ```typescript -public readonly clobber: boolean; +public addKeywords(keywords: string): void ``` -- *Type:* boolean -- *Default:* true, but false for subprojects +Adds keywords to package.json (deduplicated). -Add a `clobber` task which resets the repo to origin. +###### `keywords`Required + +- *Type:* string + +The keywords to add. --- -##### `devContainer`Optional +##### `addPeerDeps` ```typescript -public readonly devContainer: boolean; +public addPeerDeps(deps: string): void ``` -- *Type:* boolean -- *Default:* false - -Add a VSCode development environment (used for GitHub Codespaces). - ---- +Defines peer dependencies. -##### `github`Optional +When adding peer dependencies, a devDependency will also be added on the +pinned version of the declared peer. This will ensure that you are testing +your code against the minimum version required from your consumers. -```typescript -public readonly github: boolean; -``` +###### `deps`Required -- *Type:* boolean -- *Default:* true +- *Type:* string -Enable GitHub integration. +Names modules to install. -Enabled by default for root projects. Disabled for non-root projects. +By default, the the dependency will +be installed in the next `npx projen` run and the version will be recorded +in your `package.json` file. You can upgrade manually or using `yarn +add/upgrade`. If you wish to specify a version range use this syntax: +`module@^7`. --- -##### `githubOptions`Optional +##### `addScripts` ```typescript -public readonly githubOptions: GitHubOptions; +public addScripts(scripts: {[ key: string ]: string}): void ``` -- *Type:* projen.github.GitHubOptions -- *Default:* see GitHubOptions +Replaces the contents of multiple npm package.json scripts. + +###### `scripts`Required + +- *Type:* {[ key: string ]: string} -Options for GitHub integration. +The scripts to set. --- -##### `gitpod`Optional +##### ~~`addTestCommand`~~ ```typescript -public readonly gitpod: boolean; +public addTestCommand(commands: string): void ``` -- *Type:* boolean -- *Default:* false +DEPRECATED. -Add a Gitpod development environment. +###### `commands`Required ---- +- *Type:* string -##### ~~`mergify`~~Optional +--- -- *Deprecated:* use `githubOptions.mergify` instead +##### ~~`hasScript`~~ ```typescript -public readonly mergify: boolean; +public hasScript(name: string): boolean ``` -- *Type:* boolean -- *Default:* true +Indicates if a script by the name name is defined. -Whether mergify should be enabled on this repository or not. +###### `name`Required ---- +- *Type:* string -##### ~~`mergifyOptions`~~Optional +The name of the script. -- *Deprecated:* use `githubOptions.mergifyOptions` instead +--- + +##### `removeScript` ```typescript -public readonly mergifyOptions: MergifyOptions; +public removeScript(name: string): void ``` -- *Type:* projen.github.MergifyOptions -- *Default:* default options +Removes the npm script (always successful). -Options for mergify. +###### `name`Required ---- +- *Type:* string -##### ~~`projectType`~~Optional +The name of the script. -- *Deprecated:* no longer supported at the base project level +--- + +##### `renderWorkflowSetup` ```typescript -public readonly projectType: ProjectType; +public renderWorkflowSetup(options?: RenderWorkflowSetupOptions): JobStep[] ``` -- *Type:* projen.ProjectType -- *Default:* ProjectType.UNKNOWN +Returns the set of workflow steps which should be executed to bootstrap a workflow. -Which type of project this is (library/app). +###### `options`Optional + +- *Type:* projen.javascript.RenderWorkflowSetupOptions + +Options. --- -##### `projenCredentials`Optional +##### `setScript` ```typescript -public readonly projenCredentials: GithubCredentials; +public setScript(name: string, command: string): void ``` -- *Type:* projen.github.GithubCredentials -- *Default:* use a personal access token named PROJEN_GITHUB_TOKEN +Replaces the contents of an npm package.json script. -Choose a method of providing GitHub API access for projen workflows. +###### `name`Required ---- +- *Type:* string -##### ~~`projenTokenSecret`~~Optional +The script name. -- *Deprecated:* use `projenCredentials` +--- -```typescript -public readonly projenTokenSecret: string; -``` +###### `command`Required - *Type:* string -- *Default:* "PROJEN_GITHUB_TOKEN" - -The name of a secret which includes a GitHub Personal Access Token to be used by projen workflows. -This token needs to have the `repo`, `workflows` -and `packages` scope. +The command to execute. --- -##### `readme`Optional - -```typescript -public readonly readme: SampleReadmeProps; -``` - -- *Type:* projen.SampleReadmeProps -- *Default:* { filename: 'README.md', contents: '# replace this' } +#### Static Functions -The README setup. +| **Name** | **Description** | +| --- | --- | +| isConstruct | Checks if `x` is a construct. | +| isProject | Test whether the given construct is a project. | +| of | Find the closest ancestor project for given construct. | --- -*Example* +##### `isConstruct` ```typescript -"{ filename: 'readme.md', contents: '# title' }" +import { Cdk8sTeamJsiiProject } from '@cdk8s/projen-common' + +Cdk8sTeamJsiiProject.isConstruct(x: any) ``` +Checks if `x` is a construct. -##### `stale`Optional +Use this method instead of `instanceof` to properly detect `Construct` +instances, even when the construct library is symlinked. -```typescript -public readonly stale: boolean; -``` +Explanation: in JavaScript, multiple copies of the `constructs` library on +disk are seen as independent, completely different libraries. As a +consequence, the class `Construct` in each copy of the `constructs` library +is seen as a different class, and an instance of one class will not test as +`instanceof` the other class. `npm install` will not create installations +like this, but users may manually symlink construct libraries together or +use a monorepo tool: in those cases, multiple copies of the `constructs` +library can be accidentally installed, and `instanceof` will behave +unpredictably. It is safest to avoid using `instanceof`, and using +this type-testing method instead. -- *Type:* boolean -- *Default:* false +###### `x`Required -Auto-close of stale issues and pull request. +- *Type:* any -See `staleOptions` for options. +Any object. --- -##### `staleOptions`Optional +##### `isProject` ```typescript -public readonly staleOptions: StaleOptions; +import { Cdk8sTeamJsiiProject } from '@cdk8s/projen-common' + +Cdk8sTeamJsiiProject.isProject(x: any) ``` -- *Type:* projen.github.StaleOptions -- *Default:* see defaults in `StaleOptions` +Test whether the given construct is a project. -Auto-close stale issues and pull requests. +###### `x`Required -To disable set `stale` to `false`. +- *Type:* any --- -##### `vscode`Optional +##### `of` ```typescript -public readonly vscode: boolean; -``` - -- *Type:* boolean -- *Default:* true +import { Cdk8sTeamJsiiProject } from '@cdk8s/projen-common' -Enable VSCode integration. +Cdk8sTeamJsiiProject.of(construct: IConstruct) +``` -Enabled by default for root projects. Disabled for non-root projects. +Find the closest ancestor project for given construct. ---- +When given a project, this it the project itself. -##### `allowLibraryDependencies`Optional +###### `construct`Required -```typescript -public readonly allowLibraryDependencies: boolean; -``` +- *Type:* constructs.IConstruct -- *Type:* boolean -- *Default:* true +--- -Allow the project to include `peerDependencies` and `bundledDependencies`. +#### Properties -This is normally only allowed for libraries. For apps, there's no meaning -for specifying these. +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| node | constructs.Node | The tree node. | +| buildTask | projen.Task | *No description.* | +| commitGenerated | boolean | Whether to commit the managed files by default. | +| compileTask | projen.Task | *No description.* | +| components | projen.Component[] | Returns all the components within this project. | +| deps | projen.Dependencies | Project dependencies. | +| ejected | boolean | Whether or not the project is being ejected. | +| files | projen.FileBase[] | All files in this project. | +| gitattributes | projen.GitAttributesFile | The .gitattributes file for this repository. | +| gitignore | projen.IgnoreFile | .gitignore. | +| logger | projen.Logger | Logging utilities. | +| name | string | Project name. | +| outdir | string | Absolute output directory of this project. | +| packageTask | projen.Task | *No description.* | +| postCompileTask | projen.Task | *No description.* | +| preCompileTask | projen.Task | *No description.* | +| projectBuild | projen.ProjectBuild | Manages the build process of the project. | +| projenCommand | string | The command to use in order to run the projen CLI. | +| root | projen.Project | The root project. | +| subprojects | projen.Project[] | Returns all the subprojects within this project. | +| tasks | projen.Tasks | Project tasks. | +| testTask | projen.Task | *No description.* | +| defaultTask | projen.Task | This is the "default" task, the one that executes "projen". | +| initProject | projen.InitProject | The options used when this project is bootstrapped via `projen new`. | +| parent | projen.Project | A parent project. | +| projectType | projen.ProjectType | *No description.* | +| autoApprove | projen.github.AutoApprove | Auto approve set up for this project. | +| devContainer | projen.vscode.DevContainer | Access for .devcontainer.json (used for GitHub Codespaces). | +| github | projen.github.GitHub | Access all github components. | +| gitpod | projen.Gitpod | Access for Gitpod. | +| vscode | projen.vscode.VsCode | Access all VSCode components. | +| allowLibraryDependencies | boolean | *No description.* | +| artifactsDirectory | string | The build output directory. | +| artifactsJavascriptDirectory | string | The location of the npm tarball after build (`${artifactsDirectory}/js`). | +| bundler | projen.javascript.Bundler | *No description.* | +| entrypoint | string | *No description.* | +| manifest | any | *No description.* | +| npmrc | projen.javascript.NpmConfig | The .npmrc file. | +| package | projen.javascript.NodePackage | API for managing the node package. | +| packageManager | projen.javascript.NodePackageManager | The package manager to use. | +| runScriptCommand | string | The command to use to run scripts (e.g. `yarn run` or `npm run` depends on the package manager). | +| autoMerge | projen.github.AutoMerge | Component that sets up mergify for merging approved pull requests. | +| buildWorkflow | projen.build.BuildWorkflow | The PR build GitHub workflow. | +| buildWorkflowJobId | string | The job ID of the build workflow. | +| jest | projen.javascript.Jest | The Jest configuration (if enabled). | +| maxNodeVersion | string | Maximum node version required by this package. | +| minNodeVersion | string | Minimum node.js version required by this package. | +| npmignore | projen.IgnoreFile | The .npmignore file. | +| prettier | projen.javascript.Prettier | *No description.* | +| publisher | projen.release.Publisher | Package publisher. | +| release | projen.release.Release | Release management. | +| upgradeWorkflow | projen.javascript.UpgradeDependencies | The upgrade workflow. | +| docsDirectory | string | *No description.* | +| libdir | string | The directory in which compiled .js files reside. | +| srcdir | string | The directory in which the .ts sources reside. | +| testdir | string | The directory in which tests reside. | +| tsconfigDev | projen.javascript.TypescriptConfig | A typescript configuration file which covers all files (sources, tests, projen). | +| watchTask | projen.Task | The "watch" task. | +| docgen | boolean | *No description.* | +| eslint | projen.javascript.Eslint | *No description.* | +| tsconfig | projen.javascript.TypescriptConfig | *No description.* | +| tsconfigEslint | projen.javascript.TypescriptConfig | *No description.* | --- -##### `authorEmail`Optional +##### `node`Required ```typescript -public readonly authorEmail: string; +public readonly node: Node; ``` -- *Type:* string +- *Type:* constructs.Node -Author's e-mail. +The tree node. --- -##### `authorName`Optional +##### `buildTask`Required ```typescript -public readonly authorName: string; +public readonly buildTask: Task; ``` -- *Type:* string - -Author's name. +- *Type:* projen.Task --- -##### `authorOrganization`Optional +##### `commitGenerated`Required ```typescript -public readonly authorOrganization: boolean; +public readonly commitGenerated: boolean; ``` - *Type:* boolean -Is the author an organization. +Whether to commit the managed files by default. --- -##### `authorUrl`Optional +##### `compileTask`Required ```typescript -public readonly authorUrl: string; +public readonly compileTask: Task; ``` -- *Type:* string - -Author's URL / Website. +- *Type:* projen.Task --- -##### `autoDetectBin`Optional +##### `components`Required ```typescript -public readonly autoDetectBin: boolean; +public readonly components: Component[]; ``` -- *Type:* boolean -- *Default:* true +- *Type:* projen.Component[] -Automatically add all executables under the `bin` directory to your `package.json` file under the `bin` section. +Returns all the components within this project. --- -##### `bin`Optional +##### `deps`Required ```typescript -public readonly bin: {[ key: string ]: string}; +public readonly deps: Dependencies; ``` -- *Type:* {[ key: string ]: string} - -Binary programs vended with your module. +- *Type:* projen.Dependencies -You can use this option to add/customize how binaries are represented in -your `package.json`, but unless `autoDetectBin` is `false`, every -executable file under `bin` will automatically be added to this section. +Project dependencies. --- -##### `bugsEmail`Optional +##### `ejected`Required ```typescript -public readonly bugsEmail: string; +public readonly ejected: boolean; ``` -- *Type:* string +- *Type:* boolean -The email address to which issues should be reported. +Whether or not the project is being ejected. --- -##### `bugsUrl`Optional +##### `files`Required ```typescript -public readonly bugsUrl: string; +public readonly files: FileBase[]; ``` -- *Type:* string +- *Type:* projen.FileBase[] -The url to your project's issue tracker. +All files in this project. --- -##### `bundledDeps`Optional +##### `gitattributes`Required ```typescript -public readonly bundledDeps: string[]; +public readonly gitattributes: GitAttributesFile; ``` -- *Type:* string[] - -List of dependencies to bundle into this module. - -These modules will be -added both to the `dependencies` section and `bundledDependencies` section of -your `package.json`. +- *Type:* projen.GitAttributesFile -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. +The .gitattributes file for this repository. --- -##### `codeArtifactOptions`Optional +##### `gitignore`Required ```typescript -public readonly codeArtifactOptions: CodeArtifactOptions; +public readonly gitignore: IgnoreFile; ``` -- *Type:* projen.javascript.CodeArtifactOptions -- *Default:* undefined - -Options for npm packages using AWS CodeArtifact. +- *Type:* projen.IgnoreFile -This is required if publishing packages to, or installing scoped packages from AWS CodeArtifact +.gitignore. --- -##### `deps`Optional +##### `logger`Required ```typescript -public readonly deps: string[]; +public readonly logger: Logger; ``` -- *Type:* string[] -- *Default:* [] - -Runtime dependencies of this module. +- *Type:* projen.Logger -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. +Logging utilities. --- -*Example* +##### `name`Required ```typescript -[ 'express', 'lodash', 'foo@^2' ] +public readonly name: string; ``` +- *Type:* string + +Project name. -##### `description`Optional +--- + +##### `outdir`Required ```typescript -public readonly description: string; +public readonly outdir: string; ``` - *Type:* string -The description is just a string that helps people understand the purpose of the package. - -It can be used when searching for packages in a package manager as well. -See https://classic.yarnpkg.com/en/docs/package-json/#toc-description +Absolute output directory of this project. --- -##### `devDeps`Optional +##### `packageTask`Required ```typescript -public readonly devDeps: string[]; +public readonly packageTask: Task; ``` -- *Type:* string[] -- *Default:* [] +- *Type:* projen.Task -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. +##### `postCompileTask`Required -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. +```typescript +public readonly postCompileTask: Task; +``` + +- *Type:* projen.Task --- -*Example* +##### `preCompileTask`Required ```typescript -[ 'typescript', '@types/express' ] +public readonly preCompileTask: Task; ``` +- *Type:* projen.Task -##### `entrypoint`Optional +--- + +##### `projectBuild`Required ```typescript -public readonly entrypoint: string; +public readonly projectBuild: ProjectBuild; ``` -- *Type:* string -- *Default:* "lib/index.js" - -Module entrypoint (`main` in `package.json`). +- *Type:* projen.ProjectBuild -Set to an empty string to not include `main` in your package.json +Manages the build process of the project. --- -##### `homepage`Optional +##### `projenCommand`Required ```typescript -public readonly homepage: string; +public readonly projenCommand: string; ``` - *Type:* string -Package's Homepage / Website. +The command to use in order to run the projen CLI. --- -##### `keywords`Optional +##### `root`Required ```typescript -public readonly keywords: string[]; +public readonly root: Project; ``` -- *Type:* string[] +- *Type:* projen.Project -Keywords to include in `package.json`. +The root project. --- -##### `license`Optional +##### `subprojects`Required ```typescript -public readonly license: string; +public readonly subprojects: Project[]; ``` -- *Type:* string -- *Default:* "Apache-2.0" - -License's SPDX identifier. +- *Type:* projen.Project[] -See https://github.com/projen/projen/tree/main/license-text for a list of supported licenses. -Use the `licensed` option if you want to no license to be specified. +Returns all the subprojects within this project. --- -##### `licensed`Optional +##### `tasks`Required ```typescript -public readonly licensed: boolean; +public readonly tasks: Tasks; ``` -- *Type:* boolean -- *Default:* true +- *Type:* projen.Tasks -Indicates if a license should be added. +Project tasks. --- -##### `maxNodeVersion`Optional +##### `testTask`Required ```typescript -public readonly maxNodeVersion: string; +public readonly testTask: Task; ``` -- *Type:* string -- *Default:* no max - -Minimum node.js version to require via `engines` (inclusive). +- *Type:* projen.Task --- -##### `minNodeVersion`Optional +##### `defaultTask`Optional ```typescript -public readonly minNodeVersion: string; +public readonly defaultTask: Task; ``` -- *Type:* string -- *Default:* no "engines" specified +- *Type:* projen.Task -Minimum Node.js version to require via package.json `engines` (inclusive). +This is the "default" task, the one that executes "projen". + +Undefined if +the project is being ejected. --- -##### `npmAccess`Optional +##### `initProject`Optional ```typescript -public readonly npmAccess: NpmAccess; +public readonly initProject: InitProject; ``` -- *Type:* projen.javascript.NpmAccess -- *Default:* for scoped packages (e.g. `foo@bar`), the default is `NpmAccess.RESTRICTED`, for non-scoped packages, the default is `NpmAccess.PUBLIC`. +- *Type:* projen.InitProject -Access level of the npm package. +The options used when this project is bootstrapped via `projen new`. ---- +It +includes the original set of options passed to the CLI and also the JSII +FQN of the project type. -##### ~~`npmRegistry`~~Optional +--- -- *Deprecated:* use `npmRegistryUrl` instead +##### `parent`Optional ```typescript -public readonly npmRegistry: string; +public readonly parent: Project; ``` -- *Type:* string +- *Type:* projen.Project -The host name of the npm registry to publish to. +A parent project. -Cannot be set together with `npmRegistryUrl`. +If undefined, this is the root project. --- -##### `npmRegistryUrl`Optional +##### `projectType`Required ```typescript -public readonly npmRegistryUrl: string; +public readonly projectType: ProjectType; ``` -- *Type:* string -- *Default:* "https://registry.npmjs.org" - -The base URL of the npm package registry. - -Must be a URL (e.g. start with "https://" or "http://") +- *Type:* projen.ProjectType --- -##### `npmTokenSecret`Optional +##### `autoApprove`Optional ```typescript -public readonly npmTokenSecret: string; +public readonly autoApprove: AutoApprove; ``` -- *Type:* string -- *Default:* "NPM_TOKEN" +- *Type:* projen.github.AutoApprove -GitHub secret which contains the NPM token to use when publishing packages. +Auto approve set up for this project. --- -##### `packageManager`Optional +##### `devContainer`Optional ```typescript -public readonly packageManager: NodePackageManager; +public readonly devContainer: DevContainer; ``` -- *Type:* projen.javascript.NodePackageManager -- *Default:* NodePackageManager.YARN +- *Type:* projen.vscode.DevContainer -The Node Package Manager used to execute scripts. +Access for .devcontainer.json (used for GitHub Codespaces). + +This will be `undefined` if devContainer boolean is false --- -##### `packageName`Optional +##### `github`Optional ```typescript -public readonly packageName: string; +public readonly github: GitHub; ``` -- *Type:* string -- *Default:* defaults to project name +- *Type:* projen.github.GitHub -The "name" in package.json. +Access all github components. + +This will be `undefined` for subprojects. --- -##### `peerDependencyOptions`Optional +##### `gitpod`Optional ```typescript -public readonly peerDependencyOptions: PeerDependencyOptions; +public readonly gitpod: Gitpod; ``` -- *Type:* projen.javascript.PeerDependencyOptions +- *Type:* projen.Gitpod -Options for `peerDeps`. +Access for Gitpod. + +This will be `undefined` if gitpod boolean is false --- -##### `peerDeps`Optional +##### `vscode`Optional ```typescript -public readonly peerDeps: string[]; -``` - -- *Type:* string[] -- *Default:* [] - -Peer dependencies for this module. +public readonly vscode: VsCode; +``` -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. +- *Type:* projen.vscode.VsCode -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. +Access all VSCode components. -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. +This will be `undefined` for subprojects. --- -##### `pnpmVersion`Optional +##### ~~`allowLibraryDependencies`~~Required + +- *Deprecated:* use `package.allowLibraryDependencies` ```typescript -public readonly pnpmVersion: string; +public readonly allowLibraryDependencies: boolean; ``` -- *Type:* string -- *Default:* "7" - -The version of PNPM to use if using PNPM as a package manager. +- *Type:* boolean --- -##### `repository`Optional +##### `artifactsDirectory`Required ```typescript -public readonly repository: string; +public readonly artifactsDirectory: string; ``` - *Type:* string -The repository is the location where the actual code for your package lives. +The build output directory. -See https://classic.yarnpkg.com/en/docs/package-json/#toc-repository +An npm tarball will be created under the `js` +subdirectory. For example, if this is set to `dist` (the default), the npm +tarball will be placed under `dist/js/boom-boom-1.2.3.tg`. --- -##### `repositoryDirectory`Optional +##### `artifactsJavascriptDirectory`Required ```typescript -public readonly repositoryDirectory: string; +public readonly artifactsJavascriptDirectory: string; ``` - *Type:* string -If the package.json for your package is not in the root directory (for example if it is part of a monorepo), you can specify the directory in which it lives. +The location of the npm tarball after build (`${artifactsDirectory}/js`). --- -##### `scopedPackagesOptions`Optional +##### `bundler`Required ```typescript -public readonly scopedPackagesOptions: ScopedPackagesOptions[]; +public readonly bundler: Bundler; ``` -- *Type:* projen.javascript.ScopedPackagesOptions[] -- *Default:* fetch all scoped packages from the public npm registry - -Options for privately hosted scoped packages. +- *Type:* projen.javascript.Bundler --- -##### ~~`scripts`~~Optional +##### ~~`entrypoint`~~Required -- *Deprecated:* use `project.addTask()` or `package.setScript()` +- *Deprecated:* use `package.entrypoint` ```typescript -public readonly scripts: {[ key: string ]: string}; +public readonly entrypoint: string; ``` -- *Type:* {[ key: string ]: string} -- *Default:* {} - -npm scripts to include. - -If a script has the same name as a standard script, -the standard script will be overwritten. -Also adds the script as a task. +- *Type:* string --- -##### `stability`Optional +##### ~~`manifest`~~Required + +- *Deprecated:* use `package.addField(x, y)` ```typescript -public readonly stability: string; +public readonly manifest: any; ``` -- *Type:* string - -Package's Stability. +- *Type:* any --- -##### `jsiiReleaseVersion`Optional +##### `npmrc`Required ```typescript -public readonly jsiiReleaseVersion: string; +public readonly npmrc: NpmConfig; ``` -- *Type:* string -- *Default:* "latest" +- *Type:* projen.javascript.NpmConfig -Version requirement of `publib` which is used to publish modules to npm. +The .npmrc file. --- -##### `majorVersion`Optional +##### `package`Required ```typescript -public readonly majorVersion: number; +public readonly package: NodePackage; ``` -- *Type:* number -- *Default:* Major version is not enforced. - -Major version to release from the default branch. +- *Type:* projen.javascript.NodePackage -If this is specified, we bump the latest version of this major version line. -If not specified, we bump the global latest version. +API for managing the node package. --- -##### `minMajorVersion`Optional +##### ~~`packageManager`~~Required + +- *Deprecated:* use `package.packageManager` ```typescript -public readonly minMajorVersion: number; +public readonly packageManager: NodePackageManager; ``` -- *Type:* number -- *Default:* No minimum version is being enforced - -Minimal Major version to release. - -This can be useful to set to 1, as breaking changes before the 1.x major -release are not incrementing the major version number. +- *Type:* projen.javascript.NodePackageManager -Can not be set together with `majorVersion`. +The package manager to use. --- -##### `npmDistTag`Optional +##### `runScriptCommand`Required ```typescript -public readonly npmDistTag: string; +public readonly runScriptCommand: string; ``` - *Type:* string -- *Default:* "latest" - -The npmDistTag to use when publishing from the default branch. -To set the npm dist-tag for release branches, set the `npmDistTag` property -for each branch. +The command to use to run scripts (e.g. `yarn run` or `npm run` depends on the package manager). --- -##### `postBuildSteps`Optional +##### `autoMerge`Optional ```typescript -public readonly postBuildSteps: JobStep[]; +public readonly autoMerge: AutoMerge; ``` -- *Type:* projen.github.workflows.JobStep[] -- *Default:* [] +- *Type:* projen.github.AutoMerge -Steps to execute after build as part of the release workflow. +Component that sets up mergify for merging approved pull requests. --- -##### `prerelease`Optional +##### `buildWorkflow`Optional ```typescript -public readonly prerelease: string; +public readonly buildWorkflow: BuildWorkflow; ``` -- *Type:* string -- *Default:* normal semantic versions +- *Type:* projen.build.BuildWorkflow -Bump versions from the default branch as pre-releases (e.g. "beta", "alpha", "pre"). +The PR build GitHub workflow. + +`undefined` if `buildWorkflow` is disabled. --- -##### `publishDryRun`Optional +##### `buildWorkflowJobId`Optional ```typescript -public readonly publishDryRun: boolean; +public readonly buildWorkflowJobId: string; ``` -- *Type:* boolean -- *Default:* false +- *Type:* string -Instead of actually publishing to package managers, just print the publishing command. +The job ID of the build workflow. --- -##### `publishTasks`Optional +##### `jest`Optional ```typescript -public readonly publishTasks: boolean; +public readonly jest: Jest; ``` -- *Type:* boolean -- *Default:* false - -Define publishing tasks that can be executed manually as well as workflows. +- *Type:* projen.javascript.Jest -Normally, publishing only happens within automated workflows. Enable this -in order to create a publishing task for each publishing activity. +The Jest configuration (if enabled). --- -##### `releasableCommits`Optional +##### `maxNodeVersion`Optional ```typescript -public readonly releasableCommits: ReleasableCommits; +public readonly maxNodeVersion: string; ``` -- *Type:* projen.ReleasableCommits -- *Default:* ReleasableCommits.everyCommit() +- *Type:* string -Find commits that should be considered releasable Used to decide if a release is required. +Maximum node version required by this package. --- -##### `releaseBranches`Optional +##### `minNodeVersion`Optional ```typescript -public readonly releaseBranches: {[ key: string ]: BranchOptions}; +public readonly minNodeVersion: string; ``` -- *Type:* {[ key: string ]: projen.release.BranchOptions} -- *Default:* no additional branches are used for release. you can use `addBranch()` to add additional branches. - -Defines additional release branches. +- *Type:* string -A workflow will be created for each -release branch which will publish releases from commits in this branch. -Each release branch _must_ be assigned a major version number which is used -to enforce that versions published from that branch always use that major -version. If multiple branches are used, the `majorVersion` field must also -be provided for the default branch. +Minimum node.js version required by this package. --- -##### ~~`releaseEveryCommit`~~Optional - -- *Deprecated:* Use `releaseTrigger: ReleaseTrigger.continuous()` instead +##### `npmignore`Optional ```typescript -public readonly releaseEveryCommit: boolean; +public readonly npmignore: IgnoreFile; ``` -- *Type:* boolean -- *Default:* true +- *Type:* projen.IgnoreFile -Automatically release new versions every commit to one of branches in `releaseBranches`. +The .npmignore file. --- -##### `releaseFailureIssue`Optional +##### `prettier`Optional ```typescript -public readonly releaseFailureIssue: boolean; +public readonly prettier: Prettier; ``` -- *Type:* boolean -- *Default:* false - -Create a github issue on every failed publishing task. +- *Type:* projen.javascript.Prettier --- -##### `releaseFailureIssueLabel`Optional +##### ~~`publisher`~~Optional + +- *Deprecated:* use `release.publisher`. ```typescript -public readonly releaseFailureIssueLabel: string; +public readonly publisher: Publisher; ``` -- *Type:* string -- *Default:* "failed-release" +- *Type:* projen.release.Publisher -The label to apply to issues indicating publish failures. +Package publisher. -Only applies if `releaseFailureIssue` is true. +This will be `undefined` if the project does not have a +release workflow. --- -##### ~~`releaseSchedule`~~Optional - -- *Deprecated:* Use `releaseTrigger: ReleaseTrigger.scheduled()` instead +##### `release`Optional ```typescript -public readonly releaseSchedule: string; +public readonly release: Release; ``` -- *Type:* string -- *Default:* no scheduled releases +- *Type:* projen.release.Release -CRON schedule to trigger new releases. +Release management. --- -##### `releaseTagPrefix`Optional +##### `upgradeWorkflow`Optional ```typescript -public readonly releaseTagPrefix: string; +public readonly upgradeWorkflow: UpgradeDependencies; ``` -- *Type:* string -- *Default:* "v" +- *Type:* projen.javascript.UpgradeDependencies -Automatically add the given prefix to release tags. Useful if you are releasing on multiple branches with overlapping version numbers. +The upgrade workflow. -Note: this prefix is used to detect the latest tagged version -when bumping, so if you change this on a project with an existing version -history, you may need to manually tag your latest release -with the new prefix. +--- + +##### `docsDirectory`Required + +```typescript +public readonly docsDirectory: string; +``` + +- *Type:* string --- -##### `releaseTrigger`Optional +##### `libdir`Required ```typescript -public readonly releaseTrigger: ReleaseTrigger; +public readonly libdir: string; ``` -- *Type:* projen.release.ReleaseTrigger -- *Default:* Continuous releases (`ReleaseTrigger.continuous()`) +- *Type:* string -The release trigger to use. +The directory in which compiled .js files reside. --- -##### `releaseWorkflowName`Optional +##### `srcdir`Required ```typescript -public readonly releaseWorkflowName: string; +public readonly srcdir: string; ``` - *Type:* string -- *Default:* "Release" -The name of the default release workflow. +The directory in which the .ts sources reside. --- -##### `releaseWorkflowSetupSteps`Optional +##### `testdir`Required ```typescript -public readonly releaseWorkflowSetupSteps: JobStep[]; +public readonly testdir: string; ``` -- *Type:* projen.github.workflows.JobStep[] +- *Type:* string -A set of workflow steps to execute in order to setup the workflow container. +The directory in which tests reside. --- -##### `versionrcOptions`Optional +##### `tsconfigDev`Required ```typescript -public readonly versionrcOptions: {[ key: string ]: any}; +public readonly tsconfigDev: TypescriptConfig; ``` -- *Type:* {[ key: string ]: any} -- *Default:* standard configuration applicable for GitHub repositories - -Custom configuration used when creating changelog with standard-version package. +- *Type:* projen.javascript.TypescriptConfig -Given values either append to default configuration or overwrite values in it. +A typescript configuration file which covers all files (sources, tests, projen). --- -##### `workflowContainerImage`Optional +##### `watchTask`Required ```typescript -public readonly workflowContainerImage: string; +public readonly watchTask: Task; ``` -- *Type:* string -- *Default:* default image +- *Type:* projen.Task -Container image to use for GitHub workflows. +The "watch" task. --- -##### `workflowRunsOn`Optional +##### `docgen`Optional ```typescript -public readonly workflowRunsOn: string[]; +public readonly docgen: boolean; ``` -- *Type:* string[] -- *Default:* ["ubuntu-latest"] - -Github Runner selection labels. +- *Type:* boolean --- -##### `defaultReleaseBranch`Required +##### `eslint`Optional ```typescript -public readonly defaultReleaseBranch: string; +public readonly eslint: Eslint; ``` -- *Type:* string -- *Default:* "main" - -The name of the main release branch. +- *Type:* projen.javascript.Eslint --- -##### `artifactsDirectory`Optional +##### `tsconfig`Optional ```typescript -public readonly artifactsDirectory: string; +public readonly tsconfig: TypescriptConfig; ``` -- *Type:* string -- *Default:* "dist" - -A directory which will contain build artifacts. +- *Type:* projen.javascript.TypescriptConfig --- -##### `autoApproveUpgrades`Optional +##### `tsconfigEslint`Optional ```typescript -public readonly autoApproveUpgrades: boolean; +public readonly tsconfigEslint: TypescriptConfig; ``` -- *Type:* boolean -- *Default:* true +- *Type:* projen.javascript.TypescriptConfig -Automatically approve deps upgrade PRs, allowing them to be merged by mergify (if configued). +--- -Throw if set to true but `autoApproveOptions` are not defined. +#### Constants + +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| DEFAULT_TASK | string | The name of the default task (the task executed when `projen` is run without arguments). | --- -##### `buildWorkflow`Optional +##### `DEFAULT_TASK`Required ```typescript -public readonly buildWorkflow: boolean; +public readonly DEFAULT_TASK: string; ``` -- *Type:* boolean -- *Default:* true if not a subproject +- *Type:* string -Define a GitHub workflow for building PRs. +The name of the default task (the task executed when `projen` is run without arguments). + +Normally +this task should synthesize the project files. --- -##### `buildWorkflowTriggers`Optional +### Cdk8sTeamNodeProject + +#### Initializers ```typescript -public readonly buildWorkflowTriggers: Triggers; -``` +import { Cdk8sTeamNodeProject } from '@cdk8s/projen-common' -- *Type:* projen.github.workflows.Triggers -- *Default:* "{ pullRequest: {}, workflowDispatch: {} }" +new Cdk8sTeamNodeProject(options: Cdk8sTeamNodeProjectOptions) +``` -Build workflow triggers. +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| options | Cdk8sTeamNodeProjectOptions | *No description.* | --- -##### `bundlerOptions`Optional +##### `options`Required -```typescript -public readonly bundlerOptions: BundlerOptions; -``` +- *Type:* Cdk8sTeamNodeProjectOptions -- *Type:* projen.javascript.BundlerOptions +--- -Options for `Bundler`. +#### Methods + +| **Name** | **Description** | +| --- | --- | +| toString | Returns a string representation of this construct. | +| addExcludeFromCleanup | Exclude the matching files from pre-synth cleanup. | +| addGitIgnore | Adds a .gitignore pattern. | +| addPackageIgnore | Exclude these files from the bundled package. | +| addTask | Adds a new task to this project. | +| addTip | Prints a "tip" message during synthesis. | +| annotateGenerated | Marks the provided file(s) as being generated. | +| postSynthesize | Called after all components are synthesized. | +| preSynthesize | Called before all components are synthesized. | +| removeTask | Removes a task from a project. | +| runTaskCommand | Returns the shell command to execute in order to run a task. | +| synth | Synthesize all project files into `outdir`. | +| tryFindFile | Finds a file at the specified relative path within this project and all its subprojects. | +| tryFindJsonFile | Finds a json file by name. | +| tryFindObjectFile | Finds an object file (like JsonFile, YamlFile, etc.) by name. | +| tryRemoveFile | Finds a file at the specified relative path within this project and removes it. | +| addBins | *No description.* | +| addBundledDeps | Defines bundled dependencies. | +| addCompileCommand | DEPRECATED. | +| addDeps | Defines normal dependencies. | +| addDevDeps | Defines development/test dependencies. | +| addFields | Directly set fields in `package.json`. | +| addKeywords | Adds keywords to package.json (deduplicated). | +| addPeerDeps | Defines peer dependencies. | +| addScripts | Replaces the contents of multiple npm package.json scripts. | +| addTestCommand | DEPRECATED. | +| hasScript | Indicates if a script by the name name is defined. | +| removeScript | Removes the npm script (always successful). | +| renderWorkflowSetup | Returns the set of workflow steps which should be executed to bootstrap a workflow. | +| setScript | Replaces the contents of an npm package.json script. | --- -##### `codeCov`Optional +##### `toString` ```typescript -public readonly codeCov: boolean; +public toString(): string ``` -- *Type:* boolean -- *Default:* false - -Define a GitHub workflow step for sending code coverage metrics to https://codecov.io/ Uses codecov/codecov-action@v3 A secret is required for private repos. Configured with `@codeCovTokenSecret`. - ---- +Returns a string representation of this construct. -##### `codeCovTokenSecret`Optional +##### `addExcludeFromCleanup` ```typescript -public readonly codeCovTokenSecret: string; +public addExcludeFromCleanup(globs: string): void ``` +Exclude the matching files from pre-synth cleanup. + +Can be used when, for example, some +source files include the projen marker and we don't want them to be erased during synth. + +###### `globs`Required + - *Type:* string -- *Default:* if this option is not specified, only public repositories are supported -Define the secret name for a specified https://codecov.io/ token A secret is required to send coverage for private repositories. +The glob patterns to match. --- -##### `copyrightOwner`Optional +##### `addGitIgnore` ```typescript -public readonly copyrightOwner: string; +public addGitIgnore(pattern: string): void ``` +Adds a .gitignore pattern. + +###### `pattern`Required + - *Type:* string -- *Default:* defaults to the value of authorName or "" if `authorName` is undefined. -License copyright owner. +The glob pattern to ignore. --- -##### `copyrightPeriod`Optional +##### `addPackageIgnore` ```typescript -public readonly copyrightPeriod: string; +public addPackageIgnore(pattern: string): void ``` -- *Type:* string -- *Default:* current year +Exclude these files from the bundled package. -The copyright years to put in the LICENSE file. +Implemented by project types based on the +packaging mechanism. For example, `NodeProject` delegates this to `.npmignore`. + +###### `pattern`Required + +- *Type:* string --- -##### `dependabot`Optional +##### `addTask` ```typescript -public readonly dependabot: boolean; +public addTask(name: string, props?: TaskOptions): Task ``` -- *Type:* boolean -- *Default:* false +Adds a new task to this project. -Use dependabot to handle dependency upgrades. +This will fail if the project already has +a task with this name. -Cannot be used in conjunction with `depsUpgrade`. +###### `name`Required ---- +- *Type:* string -##### `dependabotOptions`Optional +The task name to add. -```typescript -public readonly dependabotOptions: DependabotOptions; -``` +--- -- *Type:* projen.github.DependabotOptions -- *Default:* default options +###### `props`Optional -Options for dependabot. +- *Type:* projen.TaskOptions + +Task properties. --- -##### `depsUpgrade`Optional +##### ~~`addTip`~~ ```typescript -public readonly depsUpgrade: boolean; +public addTip(message: string): void ``` -- *Type:* boolean -- *Default:* true +Prints a "tip" message during synthesis. -Use github workflows to handle dependency upgrades. +###### `message`Required -Cannot be used in conjunction with `dependabot`. +- *Type:* string + +The message. --- -##### `depsUpgradeOptions`Optional +##### `annotateGenerated` ```typescript -public readonly depsUpgradeOptions: UpgradeDependenciesOptions; +public annotateGenerated(glob: string): void ``` -- *Type:* projen.javascript.UpgradeDependenciesOptions -- *Default:* default options +Marks the provided file(s) as being generated. + +This is achieved using the +github-linguist attributes. Generated files do not count against the +repository statistics and language breakdown. + +> [https://github.com/github/linguist/blob/master/docs/overrides.md](https://github.com/github/linguist/blob/master/docs/overrides.md) + +###### `glob`Required + +- *Type:* string -Options for `UpgradeDependencies`. +the glob pattern to match (could be a file path). --- -##### `gitignore`Optional +##### `postSynthesize` ```typescript -public readonly gitignore: string[]; +public postSynthesize(): void ``` -- *Type:* string[] - -Additional entries to .gitignore. +Called after all components are synthesized. ---- +Order is *not* guaranteed. -##### `jest`Optional +##### `preSynthesize` ```typescript -public readonly jest: boolean; +public preSynthesize(): void ``` -- *Type:* boolean -- *Default:* true - -Setup jest unit tests. - ---- +Called before all components are synthesized. -##### `jestOptions`Optional +##### `removeTask` ```typescript -public readonly jestOptions: JestOptions; +public removeTask(name: string): Task ``` -- *Type:* projen.javascript.JestOptions -- *Default:* default options +Removes a task from a project. -Jest options. +###### `name`Required + +- *Type:* string + +The name of the task to remove. --- -##### `mutableBuild`Optional +##### `runTaskCommand` ```typescript -public readonly mutableBuild: boolean; +public runTaskCommand(task: Task): string ``` -- *Type:* boolean -- *Default:* true +Returns the shell command to execute in order to run a task. -Automatically update files modified during builds to pull-request branches. +This will +typically be `npx projen TASK`. -This means -that any files synthesized by projen or e.g. test snapshots will always be up-to-date -before a PR is merged. +###### `task`Required -Implies that PR builds do not have anti-tamper checks. +- *Type:* projen.Task ---- +The task for which the command is required. -##### ~~`npmignore`~~Optional +--- -- *Deprecated:* - use `project.addPackageIgnore` +##### `synth` ```typescript -public readonly npmignore: string[]; +public synth(): void ``` -- *Type:* string[] - -Additional entries to .npmignore. +Synthesize all project files into `outdir`. ---- +1. Call "this.preSynthesize()" +2. Delete all generated files +3. Synthesize all subprojects +4. Synthesize all components of this project +5. Call "postSynthesize()" for all components of this project +6. Call "this.postSynthesize()" -##### `npmignoreEnabled`Optional +##### `tryFindFile` ```typescript -public readonly npmignoreEnabled: boolean; +public tryFindFile(filePath: string): FileBase ``` -- *Type:* boolean -- *Default:* true +Finds a file at the specified relative path within this project and all its subprojects. -Defines an .npmignore file. Normally this is only needed for libraries that are packaged as tarballs. +###### `filePath`Required + +- *Type:* string + +The file path. + +If this path is relative, it will be resolved +from the root of _this_ project. --- -##### `npmIgnoreOptions`Optional +##### ~~`tryFindJsonFile`~~ ```typescript -public readonly npmIgnoreOptions: IgnoreFileOptions; +public tryFindJsonFile(filePath: string): JsonFile ``` -- *Type:* projen.IgnoreFileOptions +Finds a json file by name. -Configuration options for .npmignore file. +###### `filePath`Required + +- *Type:* string + +The file path. --- -##### `package`Optional +##### `tryFindObjectFile` ```typescript -public readonly package: boolean; +public tryFindObjectFile(filePath: string): ObjectFile ``` -- *Type:* boolean -- *Default:* true +Finds an object file (like JsonFile, YamlFile, etc.) by name. -Defines a `package` task that will produce an npm tarball under the artifacts directory (e.g. `dist`). +###### `filePath`Required + +- *Type:* string + +The file path. --- -##### `prettier`Optional +##### `tryRemoveFile` ```typescript -public readonly prettier: boolean; +public tryRemoveFile(filePath: string): FileBase ``` -- *Type:* boolean -- *Default:* false +Finds a file at the specified relative path within this project and removes it. -Setup prettier. +###### `filePath`Required + +- *Type:* string + +The file path. + +If this path is relative, it will be +resolved from the root of _this_ project. --- -##### `prettierOptions`Optional +##### `addBins` ```typescript -public readonly prettierOptions: PrettierOptions; +public addBins(bins: {[ key: string ]: string}): void ``` -- *Type:* projen.javascript.PrettierOptions -- *Default:* default options +###### `bins`Required -Prettier options. +- *Type:* {[ key: string ]: string} --- -##### `projenDevDependency`Optional +##### `addBundledDeps` ```typescript -public readonly projenDevDependency: boolean; +public addBundledDeps(deps: string): void ``` -- *Type:* boolean -- *Default:* true - -Indicates of "projen" should be installed as a devDependency. +Defines bundled dependencies. ---- +Bundled dependencies will be added as normal dependencies as well as to the +`bundledDependencies` section of your `package.json`. -##### `projenrcJs`Optional +###### `deps`Required -```typescript -public readonly projenrcJs: boolean; -``` +- *Type:* string -- *Type:* boolean -- *Default:* true if projenrcJson is false +Names modules to install. -Generate (once) .projenrc.js (in JavaScript). Set to `false` in order to disable .projenrc.js generation. +By default, the the dependency will +be installed in the next `npx projen` run and the version will be recorded +in your `package.json` file. You can upgrade manually or using `yarn +add/upgrade`. If you wish to specify a version range use this syntax: +`module@^7`. --- -##### `projenrcJsOptions`Optional +##### ~~`addCompileCommand`~~ ```typescript -public readonly projenrcJsOptions: ProjenrcOptions; +public addCompileCommand(commands: string): void ``` -- *Type:* projen.javascript.ProjenrcOptions -- *Default:* default options +DEPRECATED. -Options for .projenrc.js. +###### `commands`Required + +- *Type:* string --- -##### `projenVersion`Optional +##### `addDeps` ```typescript -public readonly projenVersion: string; +public addDeps(deps: string): void ``` +Defines normal dependencies. + +###### `deps`Required + - *Type:* string -- *Default:* Defaults to the latest version. -Version of projen to install. +Names modules to install. + +By default, the the dependency will +be installed in the next `npx projen` run and the version will be recorded +in your `package.json` file. You can upgrade manually or using `yarn +add/upgrade`. If you wish to specify a version range use this syntax: +`module@^7`. --- -##### `pullRequestTemplate`Optional +##### `addDevDeps` ```typescript -public readonly pullRequestTemplate: boolean; +public addDevDeps(deps: string): void ``` -- *Type:* boolean -- *Default:* true +Defines development/test dependencies. -Include a GitHub pull request template. +###### `deps`Required + +- *Type:* string + +Names modules to install. + +By default, the the dependency will +be installed in the next `npx projen` run and the version will be recorded +in your `package.json` file. You can upgrade manually or using `yarn +add/upgrade`. If you wish to specify a version range use this syntax: +`module@^7`. --- -##### `pullRequestTemplateContents`Optional +##### `addFields` ```typescript -public readonly pullRequestTemplateContents: string[]; +public addFields(fields: {[ key: string ]: any}): void ``` -- *Type:* string[] -- *Default:* default content +Directly set fields in `package.json`. -The contents of the pull request template. +###### `fields`Required + +- *Type:* {[ key: string ]: any} + +The fields to set. --- -##### `release`Optional +##### `addKeywords` ```typescript -public readonly release: boolean; +public addKeywords(keywords: string): void ``` -- *Type:* boolean -- *Default:* true (false for subprojects) +Adds keywords to package.json (deduplicated). -Add release management to this project. +###### `keywords`Required + +- *Type:* string + +The keywords to add. --- -##### `releaseToNpm`Optional +##### `addPeerDeps` ```typescript -public readonly releaseToNpm: boolean; +public addPeerDeps(deps: string): void ``` -- *Type:* boolean -- *Default:* false - -Automatically release to npm when new versions are introduced. - ---- +Defines peer dependencies. -##### ~~`releaseWorkflow`~~Optional +When adding peer dependencies, a devDependency will also be added on the +pinned version of the declared peer. This will ensure that you are testing +your code against the minimum version required from your consumers. -- *Deprecated:* see `release`. +###### `deps`Required -```typescript -public readonly releaseWorkflow: boolean; -``` +- *Type:* string -- *Type:* boolean -- *Default:* true if not a subproject +Names modules to install. -DEPRECATED: renamed to `release`. +By default, the the dependency will +be installed in the next `npx projen` run and the version will be recorded +in your `package.json` file. You can upgrade manually or using `yarn +add/upgrade`. If you wish to specify a version range use this syntax: +`module@^7`. --- -##### `workflowBootstrapSteps`Optional +##### `addScripts` ```typescript -public readonly workflowBootstrapSteps: JobStep[]; +public addScripts(scripts: {[ key: string ]: string}): void ``` -- *Type:* projen.github.workflows.JobStep[] -- *Default:* "yarn install --frozen-lockfile && yarn projen" +Replaces the contents of multiple npm package.json scripts. -Workflow steps to use in order to bootstrap this repo. +###### `scripts`Required + +- *Type:* {[ key: string ]: string} + +The scripts to set. --- -##### `workflowGitIdentity`Optional +##### ~~`addTestCommand`~~ ```typescript -public readonly workflowGitIdentity: GitIdentity; +public addTestCommand(commands: string): void ``` -- *Type:* projen.github.GitIdentity -- *Default:* GitHub Actions +DEPRECATED. -The git identity to use in workflows. +###### `commands`Required + +- *Type:* string --- -##### `workflowNodeVersion`Optional +##### ~~`hasScript`~~ ```typescript -public readonly workflowNodeVersion: string; +public hasScript(name: string): boolean ``` +Indicates if a script by the name name is defined. + +###### `name`Required + - *Type:* string -- *Default:* same as `minNodeVersion` -The node version to use in GitHub workflows. +The name of the script. --- -##### `workflowPackageCache`Optional +##### `removeScript` ```typescript -public readonly workflowPackageCache: boolean; +public removeScript(name: string): void ``` -- *Type:* boolean -- *Default:* false +Removes the npm script (always successful). -Enable Node.js package cache in GitHub workflows. +###### `name`Required + +- *Type:* string + +The name of the script. --- -##### `disableTsconfig`Optional +##### `renderWorkflowSetup` ```typescript -public readonly disableTsconfig: boolean; +public renderWorkflowSetup(options?: RenderWorkflowSetupOptions): JobStep[] ``` -- *Type:* boolean -- *Default:* false +Returns the set of workflow steps which should be executed to bootstrap a workflow. -Do not generate a `tsconfig.json` file (used by jsii projects since tsconfig.json is generated by the jsii compiler). +###### `options`Optional + +- *Type:* projen.javascript.RenderWorkflowSetupOptions + +Options. --- -##### `disableTsconfigDev`Optional +##### `setScript` ```typescript -public readonly disableTsconfigDev: boolean; +public setScript(name: string, command: string): void ``` -- *Type:* boolean -- *Default:* false - -Do not generate a `tsconfig.dev.json` file. +Replaces the contents of an npm package.json script. ---- +###### `name`Required -##### `docgen`Optional +- *Type:* string -```typescript -public readonly docgen: boolean; -``` +The script name. -- *Type:* boolean -- *Default:* false +--- -Docgen by Typedoc. +###### `command`Required ---- +- *Type:* string -##### `docsDirectory`Optional +The command to execute. -```typescript -public readonly docsDirectory: string; -``` +--- -- *Type:* string -- *Default:* "docs" +#### Static Functions -Docs directory. +| **Name** | **Description** | +| --- | --- | +| isConstruct | Checks if `x` is a construct. | +| isProject | Test whether the given construct is a project. | +| of | Find the closest ancestor project for given construct. | --- -##### `entrypointTypes`Optional +##### `isConstruct` ```typescript -public readonly entrypointTypes: string; -``` +import { Cdk8sTeamNodeProject } from '@cdk8s/projen-common' -- *Type:* string -- *Default:* .d.ts file derived from the project's entrypoint (usually lib/index.d.ts) +Cdk8sTeamNodeProject.isConstruct(x: any) +``` -The .d.ts file that includes the type declarations for this module. +Checks if `x` is a construct. ---- +Use this method instead of `instanceof` to properly detect `Construct` +instances, even when the construct library is symlinked. -##### `eslint`Optional +Explanation: in JavaScript, multiple copies of the `constructs` library on +disk are seen as independent, completely different libraries. As a +consequence, the class `Construct` in each copy of the `constructs` library +is seen as a different class, and an instance of one class will not test as +`instanceof` the other class. `npm install` will not create installations +like this, but users may manually symlink construct libraries together or +use a monorepo tool: in those cases, multiple copies of the `constructs` +library can be accidentally installed, and `instanceof` will behave +unpredictably. It is safest to avoid using `instanceof`, and using +this type-testing method instead. -```typescript -public readonly eslint: boolean; -``` +###### `x`Required -- *Type:* boolean -- *Default:* true +- *Type:* any -Setup eslint. +Any object. --- -##### `eslintOptions`Optional +##### `isProject` ```typescript -public readonly eslintOptions: EslintOptions; +import { Cdk8sTeamNodeProject } from '@cdk8s/projen-common' + +Cdk8sTeamNodeProject.isProject(x: any) ``` -- *Type:* projen.javascript.EslintOptions -- *Default:* opinionated default options +Test whether the given construct is a project. -Eslint options. +###### `x`Required + +- *Type:* any --- -##### `libdir`Optional +##### `of` ```typescript -public readonly libdir: string; +import { Cdk8sTeamNodeProject } from '@cdk8s/projen-common' + +Cdk8sTeamNodeProject.of(construct: IConstruct) ``` -- *Type:* string -- *Default:* "lib" +Find the closest ancestor project for given construct. -Typescript artifacts output directory. +When given a project, this it the project itself. ---- +###### `construct`Required -##### `projenrcTs`Optional +- *Type:* constructs.IConstruct -```typescript -public readonly projenrcTs: boolean; -``` +--- -- *Type:* boolean -- *Default:* false +#### Properties -Use TypeScript for your projenrc file (`.projenrc.ts`). +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| node | constructs.Node | The tree node. | +| buildTask | projen.Task | *No description.* | +| commitGenerated | boolean | Whether to commit the managed files by default. | +| compileTask | projen.Task | *No description.* | +| components | projen.Component[] | Returns all the components within this project. | +| deps | projen.Dependencies | Project dependencies. | +| ejected | boolean | Whether or not the project is being ejected. | +| files | projen.FileBase[] | All files in this project. | +| gitattributes | projen.GitAttributesFile | The .gitattributes file for this repository. | +| gitignore | projen.IgnoreFile | .gitignore. | +| logger | projen.Logger | Logging utilities. | +| name | string | Project name. | +| outdir | string | Absolute output directory of this project. | +| packageTask | projen.Task | *No description.* | +| postCompileTask | projen.Task | *No description.* | +| preCompileTask | projen.Task | *No description.* | +| projectBuild | projen.ProjectBuild | Manages the build process of the project. | +| projenCommand | string | The command to use in order to run the projen CLI. | +| root | projen.Project | The root project. | +| subprojects | projen.Project[] | Returns all the subprojects within this project. | +| tasks | projen.Tasks | Project tasks. | +| testTask | projen.Task | *No description.* | +| defaultTask | projen.Task | This is the "default" task, the one that executes "projen". | +| initProject | projen.InitProject | The options used when this project is bootstrapped via `projen new`. | +| parent | projen.Project | A parent project. | +| projectType | projen.ProjectType | *No description.* | +| autoApprove | projen.github.AutoApprove | Auto approve set up for this project. | +| devContainer | projen.vscode.DevContainer | Access for .devcontainer.json (used for GitHub Codespaces). | +| github | projen.github.GitHub | Access all github components. | +| gitpod | projen.Gitpod | Access for Gitpod. | +| vscode | projen.vscode.VsCode | Access all VSCode components. | +| allowLibraryDependencies | boolean | *No description.* | +| artifactsDirectory | string | The build output directory. | +| artifactsJavascriptDirectory | string | The location of the npm tarball after build (`${artifactsDirectory}/js`). | +| bundler | projen.javascript.Bundler | *No description.* | +| entrypoint | string | *No description.* | +| manifest | any | *No description.* | +| npmrc | projen.javascript.NpmConfig | The .npmrc file. | +| package | projen.javascript.NodePackage | API for managing the node package. | +| packageManager | projen.javascript.NodePackageManager | The package manager to use. | +| runScriptCommand | string | The command to use to run scripts (e.g. `yarn run` or `npm run` depends on the package manager). | +| autoMerge | projen.github.AutoMerge | Component that sets up mergify for merging approved pull requests. | +| buildWorkflow | projen.build.BuildWorkflow | The PR build GitHub workflow. | +| buildWorkflowJobId | string | The job ID of the build workflow. | +| jest | projen.javascript.Jest | The Jest configuration (if enabled). | +| maxNodeVersion | string | Maximum node version required by this package. | +| minNodeVersion | string | Minimum node.js version required by this package. | +| npmignore | projen.IgnoreFile | The .npmignore file. | +| prettier | projen.javascript.Prettier | *No description.* | +| publisher | projen.release.Publisher | Package publisher. | +| release | projen.release.Release | Release management. | +| upgradeWorkflow | projen.javascript.UpgradeDependencies | The upgrade workflow. | --- -##### `projenrcTsOptions`Optional +##### `node`Required ```typescript -public readonly projenrcTsOptions: ProjenrcOptions; +public readonly node: Node; ``` -- *Type:* projen.typescript.ProjenrcOptions +- *Type:* constructs.Node -Options for .projenrc.ts. +The tree node. --- -##### `sampleCode`Optional +##### `buildTask`Required ```typescript -public readonly sampleCode: boolean; +public readonly buildTask: Task; ``` -- *Type:* boolean -- *Default:* true - -Generate one-time sample in `src/` and `test/` if there are no files there. +- *Type:* projen.Task --- -##### `srcdir`Optional +##### `commitGenerated`Required ```typescript -public readonly srcdir: string; +public readonly commitGenerated: boolean; ``` -- *Type:* string -- *Default:* "src" +- *Type:* boolean -Typescript sources directory. +Whether to commit the managed files by default. --- -##### `testdir`Optional +##### `compileTask`Required ```typescript -public readonly testdir: string; +public readonly compileTask: Task; ``` -- *Type:* string -- *Default:* "test" - -Jest tests directory. Tests files should be named `xxx.test.ts`. - -If this directory is under `srcdir` (e.g. `src/test`, `src/__tests__`), -then tests are going to be compiled into `lib/` and executed as javascript. -If the test directory is outside of `src`, then we configure jest to -compile the code in-memory. +- *Type:* projen.Task --- -##### `tsconfig`Optional +##### `components`Required ```typescript -public readonly tsconfig: TypescriptConfigOptions; +public readonly components: Component[]; ``` -- *Type:* projen.javascript.TypescriptConfigOptions -- *Default:* default options +- *Type:* projen.Component[] -Custom TSConfig. +Returns all the components within this project. --- -##### `tsconfigDev`Optional +##### `deps`Required ```typescript -public readonly tsconfigDev: TypescriptConfigOptions; +public readonly deps: Dependencies; ``` -- *Type:* projen.javascript.TypescriptConfigOptions -- *Default:* use the production tsconfig options +- *Type:* projen.Dependencies -Custom tsconfig options for the development tsconfig.json file (used for testing). +Project dependencies. --- -##### `tsconfigDevFile`Optional +##### `ejected`Required ```typescript -public readonly tsconfigDevFile: string; +public readonly ejected: boolean; ``` -- *Type:* string -- *Default:* "tsconfig.dev.json" +- *Type:* boolean -The name of the development tsconfig.json file. +Whether or not the project is being ejected. --- -##### `typescriptVersion`Optional +##### `files`Required ```typescript -public readonly typescriptVersion: string; +public readonly files: FileBase[]; ``` -- *Type:* string -- *Default:* "latest" - -TypeScript version to use. +- *Type:* projen.FileBase[] -NOTE: Typescript is not semantically versioned and should remain on the -same minor, so we recommend using a `~` dependency (e.g. `~1.2.3`). +All files in this project. --- -##### `additionalCompilerDependencies`Optional +##### `gitattributes`Required ```typescript -public readonly additionalCompilerDependencies: string[]; +public readonly gitattributes: GitAttributesFile; ``` -- *Type:* string[] -- *Default:* No additional compiler dependencies. - -Packages that compile the project apart from the typescript/jsii compiler. +- *Type:* projen.GitAttributesFile -Any package that produces a published artifact should be included in this list. +The .gitattributes file for this repository. --- -##### `backport`Optional +##### `gitignore`Required ```typescript -public readonly backport: boolean; +public readonly gitignore: IgnoreFile; ``` -- *Type:* boolean -- *Default:* false +- *Type:* projen.IgnoreFile -Configure a backport workflow. +.gitignore. --- -##### `backportBranches`Optional +##### `logger`Required ```typescript -public readonly backportBranches: string[]; +public readonly logger: Logger; ``` -- *Type:* string[] -- *Default:* Will be derived from PR labels. +- *Type:* projen.Logger -Branches to backport to. +Logging utilities. --- -##### `repoName`Optional +##### `name`Required ```typescript -public readonly repoName: string; +public readonly name: string; ``` - *Type:* string -- *Default:* the package name. -The name of the repository inside the cdk8s-team org where the code of the project is locate in. +Project name. --- -##### `golang`Optional +##### `outdir`Required ```typescript -public readonly golang: boolean; +public readonly outdir: string; ``` -- *Type:* boolean -- *Default:* true +- *Type:* string -Publish Golang bindings to GitHub. +Absolute output directory of this project. --- -##### `golangBranch`Optional +##### `packageTask`Required ```typescript -public readonly golangBranch: string; +public readonly packageTask: Task; ``` -- *Type:* string -- *Default:* 'main' - -Name of the branch in the golang repository to publish to. +- *Type:* projen.Task --- -##### `jsiiVersion`Optional +##### `postCompileTask`Required ```typescript -public readonly jsiiVersion: string; +public readonly postCompileTask: Task; ``` -- *Type:* string -- *Default:* '1.x' - -JSII version to use. +- *Type:* projen.Task --- -##### `maven`Optional +##### `preCompileTask`Required ```typescript -public readonly maven: boolean; +public readonly preCompileTask: Task; ``` -- *Type:* boolean -- *Default:* true - -Publish Java bindings to Maven. +- *Type:* projen.Task --- -##### `nuget`Optional +##### `projectBuild`Required ```typescript -public readonly nuget: boolean; +public readonly projectBuild: ProjectBuild; ``` -- *Type:* boolean -- *Default:* true +- *Type:* projen.ProjectBuild -Publish Dotnet bindings to Nuget. +Manages the build process of the project. --- -##### `pypi`Optional +##### `projenCommand`Required ```typescript -public readonly pypi: boolean; +public readonly projenCommand: string; ``` -- *Type:* boolean -- *Default:* true +- *Type:* string -Publish Python bindings to PyPI. +The command to use in order to run the projen CLI. --- -### Cdk8sTeamNodeProjectOptions - -Options for `Cdk8sTeamNodeProject`. - -#### Initializer +##### `root`Required ```typescript -import { Cdk8sTeamNodeProjectOptions } from '@cdk8s/projen-common' - -const cdk8sTeamNodeProjectOptions: Cdk8sTeamNodeProjectOptions = { ... } +public readonly root: Project; ``` -#### Properties +- *Type:* projen.Project -| **Name** | **Type** | **Description** | -| --- | --- | --- | -| name | string | This is the name of your project. | -| commitGenerated | boolean | Whether to commit the managed files by default. | -| gitIgnoreOptions | projen.IgnoreFileOptions | Configuration options for .gitignore file. | -| gitOptions | projen.GitOptions | Configuration options for git. | -| logging | projen.LoggerOptions | Configure logging options such as verbosity. | -| outdir | string | The root directory of the project. | -| parent | projen.Project | The parent project, if this project is part of a bigger project. | -| projenCommand | string | The shell command to use in order to run the projen CLI. | -| projenrcJson | boolean | Generate (once) .projenrc.json (in JSON). Set to `false` in order to disable .projenrc.json generation. | -| projenrcJsonOptions | projen.ProjenrcJsonOptions | Options for .projenrc.json. | -| renovatebot | boolean | Use renovatebot to handle dependency upgrades. | -| renovatebotOptions | projen.RenovatebotOptions | Options for renovatebot. | -| autoApproveOptions | projen.github.AutoApproveOptions | Enable and configure the 'auto approve' workflow. | -| autoMerge | boolean | Enable automatic merging on GitHub. | -| autoMergeOptions | projen.github.AutoMergeOptions | Configure options for automatic merging on GitHub. | -| clobber | boolean | Add a `clobber` task which resets the repo to origin. | -| devContainer | boolean | Add a VSCode development environment (used for GitHub Codespaces). | -| github | boolean | Enable GitHub integration. | -| githubOptions | projen.github.GitHubOptions | Options for GitHub integration. | -| gitpod | boolean | Add a Gitpod development environment. | -| mergify | boolean | Whether mergify should be enabled on this repository or not. | -| mergifyOptions | projen.github.MergifyOptions | Options for mergify. | -| projectType | projen.ProjectType | Which type of project this is (library/app). | -| projenCredentials | projen.github.GithubCredentials | Choose a method of providing GitHub API access for projen workflows. | -| projenTokenSecret | string | The name of a secret which includes a GitHub Personal Access Token to be used by projen workflows. | -| readme | projen.SampleReadmeProps | The README setup. | -| stale | boolean | Auto-close of stale issues and pull request. | -| staleOptions | projen.github.StaleOptions | Auto-close stale issues and pull requests. | -| vscode | boolean | Enable VSCode integration. | -| allowLibraryDependencies | boolean | Allow the project to include `peerDependencies` and `bundledDependencies`. | -| authorEmail | string | Author's e-mail. | -| authorName | string | Author's name. | -| authorOrganization | boolean | Is the author an organization. | -| authorUrl | string | Author's URL / Website. | -| autoDetectBin | boolean | Automatically add all executables under the `bin` directory to your `package.json` file under the `bin` section. | -| bin | {[ key: string ]: string} | Binary programs vended with your module. | -| bugsEmail | string | The email address to which issues should be reported. | -| bugsUrl | string | The url to your project's issue tracker. | -| bundledDeps | string[] | List of dependencies to bundle into this module. | -| codeArtifactOptions | projen.javascript.CodeArtifactOptions | Options for npm packages using AWS CodeArtifact. | -| deps | string[] | Runtime dependencies of this module. | -| description | string | The description is just a string that helps people understand the purpose of the package. | -| devDeps | string[] | Build dependencies for this module. | -| entrypoint | string | Module entrypoint (`main` in `package.json`). | -| homepage | string | Package's Homepage / Website. | -| keywords | string[] | Keywords to include in `package.json`. | -| license | string | License's SPDX identifier. | -| licensed | boolean | Indicates if a license should be added. | -| maxNodeVersion | string | Minimum node.js version to require via `engines` (inclusive). | -| minNodeVersion | string | Minimum Node.js version to require via package.json `engines` (inclusive). | -| npmAccess | projen.javascript.NpmAccess | Access level of the npm package. | -| npmRegistry | string | The host name of the npm registry to publish to. | -| npmRegistryUrl | string | The base URL of the npm package registry. | -| npmTokenSecret | string | GitHub secret which contains the NPM token to use when publishing packages. | -| packageManager | projen.javascript.NodePackageManager | The Node Package Manager used to execute scripts. | -| packageName | string | The "name" in package.json. | -| peerDependencyOptions | projen.javascript.PeerDependencyOptions | Options for `peerDeps`. | -| peerDeps | string[] | Peer dependencies for this module. | -| pnpmVersion | string | The version of PNPM to use if using PNPM as a package manager. | -| repository | string | The repository is the location where the actual code for your package lives. | -| repositoryDirectory | string | If the package.json for your package is not in the root directory (for example if it is part of a monorepo), you can specify the directory in which it lives. | -| scopedPackagesOptions | projen.javascript.ScopedPackagesOptions[] | Options for privately hosted scoped packages. | -| scripts | {[ key: string ]: string} | npm scripts to include. | -| stability | string | Package's Stability. | -| jsiiReleaseVersion | string | Version requirement of `publib` which is used to publish modules to npm. | -| majorVersion | number | Major version to release from the default branch. | -| minMajorVersion | number | Minimal Major version to release. | -| npmDistTag | string | The npmDistTag to use when publishing from the default branch. | -| postBuildSteps | projen.github.workflows.JobStep[] | Steps to execute after build as part of the release workflow. | -| prerelease | string | Bump versions from the default branch as pre-releases (e.g. "beta", "alpha", "pre"). | -| publishDryRun | boolean | Instead of actually publishing to package managers, just print the publishing command. | -| publishTasks | boolean | Define publishing tasks that can be executed manually as well as workflows. | -| releasableCommits | projen.ReleasableCommits | Find commits that should be considered releasable Used to decide if a release is required. | -| releaseBranches | {[ key: string ]: projen.release.BranchOptions} | Defines additional release branches. | -| releaseEveryCommit | boolean | Automatically release new versions every commit to one of branches in `releaseBranches`. | -| releaseFailureIssue | boolean | Create a github issue on every failed publishing task. | -| releaseFailureIssueLabel | string | The label to apply to issues indicating publish failures. | -| releaseSchedule | string | CRON schedule to trigger new releases. | -| releaseTagPrefix | string | Automatically add the given prefix to release tags. Useful if you are releasing on multiple branches with overlapping version numbers. | -| releaseTrigger | projen.release.ReleaseTrigger | The release trigger to use. | -| releaseWorkflowName | string | The name of the default release workflow. | -| releaseWorkflowSetupSteps | projen.github.workflows.JobStep[] | A set of workflow steps to execute in order to setup the workflow container. | -| versionrcOptions | {[ key: string ]: any} | Custom configuration used when creating changelog with standard-version package. | -| workflowContainerImage | string | Container image to use for GitHub workflows. | -| workflowRunsOn | string[] | Github Runner selection labels. | -| defaultReleaseBranch | string | The name of the main release branch. | -| artifactsDirectory | string | A directory which will contain build artifacts. | -| autoApproveUpgrades | boolean | Automatically approve deps upgrade PRs, allowing them to be merged by mergify (if configued). | -| buildWorkflow | boolean | Define a GitHub workflow for building PRs. | -| buildWorkflowTriggers | projen.github.workflows.Triggers | Build workflow triggers. | -| bundlerOptions | projen.javascript.BundlerOptions | Options for `Bundler`. | -| codeCov | boolean | Define a GitHub workflow step for sending code coverage metrics to https://codecov.io/ Uses codecov/codecov-action@v3 A secret is required for private repos. Configured with `@codeCovTokenSecret`. | -| codeCovTokenSecret | string | Define the secret name for a specified https://codecov.io/ token A secret is required to send coverage for private repositories. | -| copyrightOwner | string | License copyright owner. | -| copyrightPeriod | string | The copyright years to put in the LICENSE file. | -| dependabot | boolean | Use dependabot to handle dependency upgrades. | -| dependabotOptions | projen.github.DependabotOptions | Options for dependabot. | -| depsUpgrade | boolean | Use github workflows to handle dependency upgrades. | -| depsUpgradeOptions | projen.javascript.UpgradeDependenciesOptions | Options for `UpgradeDependencies`. | -| gitignore | string[] | Additional entries to .gitignore. | -| jest | boolean | Setup jest unit tests. | -| jestOptions | projen.javascript.JestOptions | Jest options. | -| mutableBuild | boolean | Automatically update files modified during builds to pull-request branches. | -| npmignore | string[] | Additional entries to .npmignore. | -| npmignoreEnabled | boolean | Defines an .npmignore file. Normally this is only needed for libraries that are packaged as tarballs. | -| npmIgnoreOptions | projen.IgnoreFileOptions | Configuration options for .npmignore file. | -| package | boolean | Defines a `package` task that will produce an npm tarball under the artifacts directory (e.g. `dist`). | -| prettier | boolean | Setup prettier. | -| prettierOptions | projen.javascript.PrettierOptions | Prettier options. | -| projenDevDependency | boolean | Indicates of "projen" should be installed as a devDependency. | -| projenrcJs | boolean | Generate (once) .projenrc.js (in JavaScript). Set to `false` in order to disable .projenrc.js generation. | -| projenrcJsOptions | projen.javascript.ProjenrcOptions | Options for .projenrc.js. | -| projenVersion | string | Version of projen to install. | -| pullRequestTemplate | boolean | Include a GitHub pull request template. | -| pullRequestTemplateContents | string[] | The contents of the pull request template. | -| release | boolean | Add release management to this project. | -| releaseToNpm | boolean | Automatically release to npm when new versions are introduced. | -| releaseWorkflow | boolean | DEPRECATED: renamed to `release`. | -| workflowBootstrapSteps | projen.github.workflows.JobStep[] | Workflow steps to use in order to bootstrap this repo. | -| workflowGitIdentity | projen.github.GitIdentity | The git identity to use in workflows. | -| workflowNodeVersion | string | The node version to use in GitHub workflows. | -| workflowPackageCache | boolean | Enable Node.js package cache in GitHub workflows. | -| backport | boolean | Configure a backport workflow. | -| backportBranches | string[] | Branches to backport to. | -| repoName | string | The name of the repository inside the cdk8s-team org where the code of the project is locate in. | +The root project. + +--- + +##### `subprojects`Required + +```typescript +public readonly subprojects: Project[]; +``` + +- *Type:* projen.Project[] + +Returns all the subprojects within this project. --- -##### `name`Required +##### `tasks`Required ```typescript -public readonly name: string; +public readonly tasks: Tasks; ``` -- *Type:* string -- *Default:* $BASEDIR +- *Type:* projen.Tasks -This is the name of your project. +Project tasks. --- -##### `commitGenerated`Optional +##### `testTask`Required ```typescript -public readonly commitGenerated: boolean; +public readonly testTask: Task; ``` -- *Type:* boolean -- *Default:* true - -Whether to commit the managed files by default. +- *Type:* projen.Task --- -##### `gitIgnoreOptions`Optional +##### `defaultTask`Optional ```typescript -public readonly gitIgnoreOptions: IgnoreFileOptions; +public readonly defaultTask: Task; ``` -- *Type:* projen.IgnoreFileOptions +- *Type:* projen.Task -Configuration options for .gitignore file. +This is the "default" task, the one that executes "projen". + +Undefined if +the project is being ejected. --- -##### `gitOptions`Optional +##### `initProject`Optional ```typescript -public readonly gitOptions: GitOptions; +public readonly initProject: InitProject; ``` -- *Type:* projen.GitOptions +- *Type:* projen.InitProject -Configuration options for git. +The options used when this project is bootstrapped via `projen new`. + +It +includes the original set of options passed to the CLI and also the JSII +FQN of the project type. --- -##### `logging`Optional +##### `parent`Optional ```typescript -public readonly logging: LoggerOptions; +public readonly parent: Project; ``` -- *Type:* projen.LoggerOptions -- *Default:* {} +- *Type:* projen.Project -Configure logging options such as verbosity. +A parent project. + +If undefined, this is the root project. --- -##### `outdir`Optional +##### `projectType`Required ```typescript -public readonly outdir: string; +public readonly projectType: ProjectType; ``` -- *Type:* string -- *Default:* "." +- *Type:* projen.ProjectType -The root directory of the project. +--- -Relative to this directory, all files are synthesized. +##### `autoApprove`Optional -If this project has a parent, this directory is relative to the parent -directory and it cannot be the same as the parent or any of it's other -sub-projects. +```typescript +public readonly autoApprove: AutoApprove; +``` + +- *Type:* projen.github.AutoApprove + +Auto approve set up for this project. --- -##### `parent`Optional +##### `devContainer`Optional ```typescript -public readonly parent: Project; +public readonly devContainer: DevContainer; ``` -- *Type:* projen.Project +- *Type:* projen.vscode.DevContainer -The parent project, if this project is part of a bigger project. +Access for .devcontainer.json (used for GitHub Codespaces). + +This will be `undefined` if devContainer boolean is false --- -##### `projenCommand`Optional +##### `github`Optional ```typescript -public readonly projenCommand: string; +public readonly github: GitHub; ``` -- *Type:* string -- *Default:* "npx projen" +- *Type:* projen.github.GitHub -The shell command to use in order to run the projen CLI. +Access all github components. -Can be used to customize in special environments. +This will be `undefined` for subprojects. --- -##### `projenrcJson`Optional +##### `gitpod`Optional ```typescript -public readonly projenrcJson: boolean; +public readonly gitpod: Gitpod; ``` -- *Type:* boolean -- *Default:* false +- *Type:* projen.Gitpod -Generate (once) .projenrc.json (in JSON). Set to `false` in order to disable .projenrc.json generation. +Access for Gitpod. + +This will be `undefined` if gitpod boolean is false --- -##### `projenrcJsonOptions`Optional +##### `vscode`Optional ```typescript -public readonly projenrcJsonOptions: ProjenrcJsonOptions; +public readonly vscode: VsCode; ``` -- *Type:* projen.ProjenrcJsonOptions -- *Default:* default options +- *Type:* projen.vscode.VsCode -Options for .projenrc.json. +Access all VSCode components. + +This will be `undefined` for subprojects. --- -##### `renovatebot`Optional +##### ~~`allowLibraryDependencies`~~Required + +- *Deprecated:* use `package.allowLibraryDependencies` ```typescript -public readonly renovatebot: boolean; +public readonly allowLibraryDependencies: boolean; ``` - *Type:* boolean -- *Default:* false -Use renovatebot to handle dependency upgrades. +--- + +##### `artifactsDirectory`Required + +```typescript +public readonly artifactsDirectory: string; +``` + +- *Type:* string + +The build output directory. + +An npm tarball will be created under the `js` +subdirectory. For example, if this is set to `dist` (the default), the npm +tarball will be placed under `dist/js/boom-boom-1.2.3.tg`. --- -##### `renovatebotOptions`Optional +##### `artifactsJavascriptDirectory`Required ```typescript -public readonly renovatebotOptions: RenovatebotOptions; +public readonly artifactsJavascriptDirectory: string; ``` -- *Type:* projen.RenovatebotOptions -- *Default:* default options +- *Type:* string -Options for renovatebot. +The location of the npm tarball after build (`${artifactsDirectory}/js`). --- -##### `autoApproveOptions`Optional +##### `bundler`Required ```typescript -public readonly autoApproveOptions: AutoApproveOptions; +public readonly bundler: Bundler; ``` -- *Type:* projen.github.AutoApproveOptions -- *Default:* auto approve is disabled +- *Type:* projen.javascript.Bundler -Enable and configure the 'auto approve' workflow. +--- + +##### ~~`entrypoint`~~Required + +- *Deprecated:* use `package.entrypoint` + +```typescript +public readonly entrypoint: string; +``` + +- *Type:* string --- -##### `autoMerge`Optional +##### ~~`manifest`~~Required + +- *Deprecated:* use `package.addField(x, y)` ```typescript -public readonly autoMerge: boolean; +public readonly manifest: any; ``` -- *Type:* boolean -- *Default:* true +- *Type:* any -Enable automatic merging on GitHub. +--- -Has no effect if `github.mergify` -is set to false. +##### `npmrc`Required + +```typescript +public readonly npmrc: NpmConfig; +``` + +- *Type:* projen.javascript.NpmConfig + +The .npmrc file. --- -##### `autoMergeOptions`Optional +##### `package`Required ```typescript -public readonly autoMergeOptions: AutoMergeOptions; +public readonly package: NodePackage; ``` -- *Type:* projen.github.AutoMergeOptions -- *Default:* see defaults in `AutoMergeOptions` +- *Type:* projen.javascript.NodePackage -Configure options for automatic merging on GitHub. +API for managing the node package. -Has no effect if -`github.mergify` or `autoMerge` is set to false. +--- + +##### ~~`packageManager`~~Required + +- *Deprecated:* use `package.packageManager` + +```typescript +public readonly packageManager: NodePackageManager; +``` + +- *Type:* projen.javascript.NodePackageManager + +The package manager to use. --- -##### `clobber`Optional +##### `runScriptCommand`Required ```typescript -public readonly clobber: boolean; +public readonly runScriptCommand: string; ``` -- *Type:* boolean -- *Default:* true, but false for subprojects +- *Type:* string -Add a `clobber` task which resets the repo to origin. +The command to use to run scripts (e.g. `yarn run` or `npm run` depends on the package manager). --- -##### `devContainer`Optional +##### `autoMerge`Optional ```typescript -public readonly devContainer: boolean; +public readonly autoMerge: AutoMerge; ``` -- *Type:* boolean -- *Default:* false +- *Type:* projen.github.AutoMerge -Add a VSCode development environment (used for GitHub Codespaces). +Component that sets up mergify for merging approved pull requests. --- -##### `github`Optional +##### `buildWorkflow`Optional ```typescript -public readonly github: boolean; +public readonly buildWorkflow: BuildWorkflow; ``` -- *Type:* boolean -- *Default:* true +- *Type:* projen.build.BuildWorkflow -Enable GitHub integration. +The PR build GitHub workflow. -Enabled by default for root projects. Disabled for non-root projects. +`undefined` if `buildWorkflow` is disabled. --- -##### `githubOptions`Optional +##### `buildWorkflowJobId`Optional ```typescript -public readonly githubOptions: GitHubOptions; +public readonly buildWorkflowJobId: string; ``` -- *Type:* projen.github.GitHubOptions -- *Default:* see GitHubOptions +- *Type:* string -Options for GitHub integration. +The job ID of the build workflow. --- -##### `gitpod`Optional +##### `jest`Optional ```typescript -public readonly gitpod: boolean; +public readonly jest: Jest; ``` -- *Type:* boolean -- *Default:* false +- *Type:* projen.javascript.Jest -Add a Gitpod development environment. +The Jest configuration (if enabled). --- -##### ~~`mergify`~~Optional - -- *Deprecated:* use `githubOptions.mergify` instead +##### `maxNodeVersion`Optional ```typescript -public readonly mergify: boolean; +public readonly maxNodeVersion: string; ``` -- *Type:* boolean -- *Default:* true +- *Type:* string -Whether mergify should be enabled on this repository or not. +Maximum node version required by this package. --- -##### ~~`mergifyOptions`~~Optional - -- *Deprecated:* use `githubOptions.mergifyOptions` instead +##### `minNodeVersion`Optional ```typescript -public readonly mergifyOptions: MergifyOptions; +public readonly minNodeVersion: string; ``` -- *Type:* projen.github.MergifyOptions -- *Default:* default options +- *Type:* string -Options for mergify. +Minimum node.js version required by this package. --- -##### ~~`projectType`~~Optional - -- *Deprecated:* no longer supported at the base project level +##### `npmignore`Optional ```typescript -public readonly projectType: ProjectType; +public readonly npmignore: IgnoreFile; ``` -- *Type:* projen.ProjectType -- *Default:* ProjectType.UNKNOWN +- *Type:* projen.IgnoreFile -Which type of project this is (library/app). +The .npmignore file. --- -##### `projenCredentials`Optional +##### `prettier`Optional ```typescript -public readonly projenCredentials: GithubCredentials; +public readonly prettier: Prettier; ``` -- *Type:* projen.github.GithubCredentials -- *Default:* use a personal access token named PROJEN_GITHUB_TOKEN - -Choose a method of providing GitHub API access for projen workflows. +- *Type:* projen.javascript.Prettier --- -##### ~~`projenTokenSecret`~~Optional +##### ~~`publisher`~~Optional -- *Deprecated:* use `projenCredentials` +- *Deprecated:* use `release.publisher`. ```typescript -public readonly projenTokenSecret: string; +public readonly publisher: Publisher; ``` -- *Type:* string -- *Default:* "PROJEN_GITHUB_TOKEN" +- *Type:* projen.release.Publisher -The name of a secret which includes a GitHub Personal Access Token to be used by projen workflows. +Package publisher. -This token needs to have the `repo`, `workflows` -and `packages` scope. +This will be `undefined` if the project does not have a +release workflow. --- -##### `readme`Optional +##### `release`Optional ```typescript -public readonly readme: SampleReadmeProps; +public readonly release: Release; ``` -- *Type:* projen.SampleReadmeProps -- *Default:* { filename: 'README.md', contents: '# replace this' } +- *Type:* projen.release.Release -The README setup. +Release management. --- -*Example* +##### `upgradeWorkflow`Optional ```typescript -"{ filename: 'readme.md', contents: '# title' }" +public readonly upgradeWorkflow: UpgradeDependencies; ``` +- *Type:* projen.javascript.UpgradeDependencies -##### `stale`Optional - -```typescript -public readonly stale: boolean; -``` +The upgrade workflow. -- *Type:* boolean -- *Default:* false +--- -Auto-close of stale issues and pull request. +#### Constants -See `staleOptions` for options. +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| DEFAULT_TASK | string | The name of the default task (the task executed when `projen` is run without arguments). | --- -##### `staleOptions`Optional +##### `DEFAULT_TASK`Required ```typescript -public readonly staleOptions: StaleOptions; +public readonly DEFAULT_TASK: string; ``` -- *Type:* projen.github.StaleOptions -- *Default:* see defaults in `StaleOptions` +- *Type:* string -Auto-close stale issues and pull requests. +The name of the default task (the task executed when `projen` is run without arguments). -To disable set `stale` to `false`. +Normally +this task should synthesize the project files. --- -##### `vscode`Optional +### Cdk8sTeamTypeScriptProject + +#### Initializers ```typescript -public readonly vscode: boolean; +import { Cdk8sTeamTypeScriptProject } from '@cdk8s/projen-common' + +new Cdk8sTeamTypeScriptProject(options: Cdk8sTeamTypeScriptProjectOptions) ``` -- *Type:* boolean -- *Default:* true +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| options | Cdk8sTeamTypeScriptProjectOptions | *No description.* | -Enable VSCode integration. +--- -Enabled by default for root projects. Disabled for non-root projects. +##### `options`Required + +- *Type:* Cdk8sTeamTypeScriptProjectOptions --- -##### `allowLibraryDependencies`Optional +#### Methods -```typescript -public readonly allowLibraryDependencies: boolean; -``` +| **Name** | **Description** | +| --- | --- | +| toString | Returns a string representation of this construct. | +| addExcludeFromCleanup | Exclude the matching files from pre-synth cleanup. | +| addGitIgnore | Adds a .gitignore pattern. | +| addPackageIgnore | Exclude these files from the bundled package. | +| addTask | Adds a new task to this project. | +| addTip | Prints a "tip" message during synthesis. | +| annotateGenerated | Marks the provided file(s) as being generated. | +| postSynthesize | Called after all components are synthesized. | +| preSynthesize | Called before all components are synthesized. | +| removeTask | Removes a task from a project. | +| runTaskCommand | Returns the shell command to execute in order to run a task. | +| synth | Synthesize all project files into `outdir`. | +| tryFindFile | Finds a file at the specified relative path within this project and all its subprojects. | +| tryFindJsonFile | Finds a json file by name. | +| tryFindObjectFile | Finds an object file (like JsonFile, YamlFile, etc.) by name. | +| tryRemoveFile | Finds a file at the specified relative path within this project and removes it. | +| addBins | *No description.* | +| addBundledDeps | Defines bundled dependencies. | +| addCompileCommand | DEPRECATED. | +| addDeps | Defines normal dependencies. | +| addDevDeps | Defines development/test dependencies. | +| addFields | Directly set fields in `package.json`. | +| addKeywords | Adds keywords to package.json (deduplicated). | +| addPeerDeps | Defines peer dependencies. | +| addScripts | Replaces the contents of multiple npm package.json scripts. | +| addTestCommand | DEPRECATED. | +| hasScript | Indicates if a script by the name name is defined. | +| removeScript | Removes the npm script (always successful). | +| renderWorkflowSetup | Returns the set of workflow steps which should be executed to bootstrap a workflow. | +| setScript | Replaces the contents of an npm package.json script. | -- *Type:* boolean -- *Default:* true +--- -Allow the project to include `peerDependencies` and `bundledDependencies`. +##### `toString` -This is normally only allowed for libraries. For apps, there's no meaning -for specifying these. +```typescript +public toString(): string +``` ---- +Returns a string representation of this construct. -##### `authorEmail`Optional +##### `addExcludeFromCleanup` ```typescript -public readonly authorEmail: string; +public addExcludeFromCleanup(globs: string): void ``` +Exclude the matching files from pre-synth cleanup. + +Can be used when, for example, some +source files include the projen marker and we don't want them to be erased during synth. + +###### `globs`Required + - *Type:* string -Author's e-mail. +The glob patterns to match. --- -##### `authorName`Optional +##### `addGitIgnore` ```typescript -public readonly authorName: string; +public addGitIgnore(pattern: string): void ``` +Adds a .gitignore pattern. + +###### `pattern`Required + - *Type:* string -Author's name. +The glob pattern to ignore. --- -##### `authorOrganization`Optional +##### `addPackageIgnore` ```typescript -public readonly authorOrganization: boolean; +public addPackageIgnore(pattern: string): void ``` -- *Type:* boolean +Exclude these files from the bundled package. -Is the author an organization. +Implemented by project types based on the +packaging mechanism. For example, `NodeProject` delegates this to `.npmignore`. + +###### `pattern`Required + +- *Type:* string --- -##### `authorUrl`Optional +##### `addTask` ```typescript -public readonly authorUrl: string; +public addTask(name: string, props?: TaskOptions): Task ``` +Adds a new task to this project. + +This will fail if the project already has +a task with this name. + +###### `name`Required + - *Type:* string -Author's URL / Website. +The task name to add. --- -##### `autoDetectBin`Optional - -```typescript -public readonly autoDetectBin: boolean; -``` +###### `props`Optional -- *Type:* boolean -- *Default:* true +- *Type:* projen.TaskOptions -Automatically add all executables under the `bin` directory to your `package.json` file under the `bin` section. +Task properties. --- -##### `bin`Optional +##### ~~`addTip`~~ ```typescript -public readonly bin: {[ key: string ]: string}; +public addTip(message: string): void ``` -- *Type:* {[ key: string ]: string} +Prints a "tip" message during synthesis. -Binary programs vended with your module. +###### `message`Required -You can use this option to add/customize how binaries are represented in -your `package.json`, but unless `autoDetectBin` is `false`, every -executable file under `bin` will automatically be added to this section. +- *Type:* string + +The message. --- -##### `bugsEmail`Optional +##### `annotateGenerated` ```typescript -public readonly bugsEmail: string; +public annotateGenerated(glob: string): void ``` -- *Type:* string - -The email address to which issues should be reported. +Marks the provided file(s) as being generated. ---- +This is achieved using the +github-linguist attributes. Generated files do not count against the +repository statistics and language breakdown. -##### `bugsUrl`Optional +> [https://github.com/github/linguist/blob/master/docs/overrides.md](https://github.com/github/linguist/blob/master/docs/overrides.md) -```typescript -public readonly bugsUrl: string; -``` +###### `glob`Required - *Type:* string -The url to your project's issue tracker. +the glob pattern to match (could be a file path). --- -##### `bundledDeps`Optional +##### `postSynthesize` ```typescript -public readonly bundledDeps: string[]; +public postSynthesize(): void ``` -- *Type:* string[] +Called after all components are synthesized. -List of dependencies to bundle into this module. +Order is *not* guaranteed. -These modules will be -added both to the `dependencies` section and `bundledDependencies` section of -your `package.json`. +##### `preSynthesize` -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. +```typescript +public preSynthesize(): void +``` ---- +Called before all components are synthesized. -##### `codeArtifactOptions`Optional +##### `removeTask` ```typescript -public readonly codeArtifactOptions: CodeArtifactOptions; +public removeTask(name: string): Task ``` -- *Type:* projen.javascript.CodeArtifactOptions -- *Default:* undefined +Removes a task from a project. -Options for npm packages using AWS CodeArtifact. +###### `name`Required -This is required if publishing packages to, or installing scoped packages from AWS CodeArtifact +- *Type:* string + +The name of the task to remove. --- -##### `deps`Optional +##### `runTaskCommand` ```typescript -public readonly deps: string[]; +public runTaskCommand(task: Task): string ``` -- *Type:* string[] -- *Default:* [] +Returns the shell command to execute in order to run a task. -Runtime dependencies of this module. +This will +typically be `npx projen TASK`. -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. +###### `task`Required + +- *Type:* projen.Task + +The task for which the command is required. --- -*Example* +##### `synth` ```typescript -[ 'express', 'lodash', 'foo@^2' ] +public synth(): void ``` +Synthesize all project files into `outdir`. -##### `description`Optional +1. Call "this.preSynthesize()" +2. Delete all generated files +3. Synthesize all subprojects +4. Synthesize all components of this project +5. Call "postSynthesize()" for all components of this project +6. Call "this.postSynthesize()" + +##### `tryFindFile` ```typescript -public readonly description: string; +public tryFindFile(filePath: string): FileBase ``` +Finds a file at the specified relative path within this project and all its subprojects. + +###### `filePath`Required + - *Type:* string -The description is just a string that helps people understand the purpose of the package. +The file path. -It can be used when searching for packages in a package manager as well. -See https://classic.yarnpkg.com/en/docs/package-json/#toc-description +If this path is relative, it will be resolved +from the root of _this_ project. --- -##### `devDeps`Optional +##### ~~`tryFindJsonFile`~~ ```typescript -public readonly devDeps: string[]; +public tryFindJsonFile(filePath: string): JsonFile ``` -- *Type:* string[] -- *Default:* [] +Finds a json file by name. -Build dependencies for this module. +###### `filePath`Required -These dependencies will only be -available in your build environment but will not be fetched when this -module is consumed. +- *Type:* string -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. +The file path. --- -*Example* +##### `tryFindObjectFile` ```typescript -[ 'typescript', '@types/express' ] +public tryFindObjectFile(filePath: string): ObjectFile ``` +Finds an object file (like JsonFile, YamlFile, etc.) by name. -##### `entrypoint`Optional - -```typescript -public readonly entrypoint: string; -``` +###### `filePath`Required - *Type:* string -- *Default:* "lib/index.js" - -Module entrypoint (`main` in `package.json`). -Set to an empty string to not include `main` in your package.json +The file path. --- -##### `homepage`Optional +##### `tryRemoveFile` ```typescript -public readonly homepage: string; +public tryRemoveFile(filePath: string): FileBase ``` +Finds a file at the specified relative path within this project and removes it. + +###### `filePath`Required + - *Type:* string -Package's Homepage / Website. +The file path. + +If this path is relative, it will be +resolved from the root of _this_ project. --- -##### `keywords`Optional +##### `addBins` ```typescript -public readonly keywords: string[]; +public addBins(bins: {[ key: string ]: string}): void ``` -- *Type:* string[] +###### `bins`Required -Keywords to include in `package.json`. +- *Type:* {[ key: string ]: string} --- -##### `license`Optional +##### `addBundledDeps` ```typescript -public readonly license: string; +public addBundledDeps(deps: string): void ``` +Defines bundled dependencies. + +Bundled dependencies will be added as normal dependencies as well as to the +`bundledDependencies` section of your `package.json`. + +###### `deps`Required + - *Type:* string -- *Default:* "Apache-2.0" -License's SPDX identifier. +Names modules to install. -See https://github.com/projen/projen/tree/main/license-text for a list of supported licenses. -Use the `licensed` option if you want to no license to be specified. +By default, the the dependency will +be installed in the next `npx projen` run and the version will be recorded +in your `package.json` file. You can upgrade manually or using `yarn +add/upgrade`. If you wish to specify a version range use this syntax: +`module@^7`. --- -##### `licensed`Optional +##### ~~`addCompileCommand`~~ ```typescript -public readonly licensed: boolean; +public addCompileCommand(commands: string): void ``` -- *Type:* boolean -- *Default:* true +DEPRECATED. -Indicates if a license should be added. +###### `commands`Required + +- *Type:* string --- -##### `maxNodeVersion`Optional +##### `addDeps` ```typescript -public readonly maxNodeVersion: string; +public addDeps(deps: string): void ``` +Defines normal dependencies. + +###### `deps`Required + - *Type:* string -- *Default:* no max -Minimum node.js version to require via `engines` (inclusive). +Names modules to install. + +By default, the the dependency will +be installed in the next `npx projen` run and the version will be recorded +in your `package.json` file. You can upgrade manually or using `yarn +add/upgrade`. If you wish to specify a version range use this syntax: +`module@^7`. --- -##### `minNodeVersion`Optional +##### `addDevDeps` ```typescript -public readonly minNodeVersion: string; +public addDevDeps(deps: string): void ``` +Defines development/test dependencies. + +###### `deps`Required + - *Type:* string -- *Default:* no "engines" specified -Minimum Node.js version to require via package.json `engines` (inclusive). +Names modules to install. + +By default, the the dependency will +be installed in the next `npx projen` run and the version will be recorded +in your `package.json` file. You can upgrade manually or using `yarn +add/upgrade`. If you wish to specify a version range use this syntax: +`module@^7`. --- -##### `npmAccess`Optional +##### `addFields` ```typescript -public readonly npmAccess: NpmAccess; +public addFields(fields: {[ key: string ]: any}): void ``` -- *Type:* projen.javascript.NpmAccess -- *Default:* for scoped packages (e.g. `foo@bar`), the default is `NpmAccess.RESTRICTED`, for non-scoped packages, the default is `NpmAccess.PUBLIC`. +Directly set fields in `package.json`. -Access level of the npm package. +###### `fields`Required ---- +- *Type:* {[ key: string ]: any} -##### ~~`npmRegistry`~~Optional +The fields to set. -- *Deprecated:* use `npmRegistryUrl` instead +--- + +##### `addKeywords` ```typescript -public readonly npmRegistry: string; +public addKeywords(keywords: string): void ``` -- *Type:* string +Adds keywords to package.json (deduplicated). -The host name of the npm registry to publish to. +###### `keywords`Required -Cannot be set together with `npmRegistryUrl`. +- *Type:* string + +The keywords to add. --- -##### `npmRegistryUrl`Optional +##### `addPeerDeps` + +```typescript +public addPeerDeps(deps: string): void +``` + +Defines peer dependencies. + +When adding peer dependencies, a devDependency will also be added on the +pinned version of the declared peer. This will ensure that you are testing +your code against the minimum version required from your consumers. -```typescript -public readonly npmRegistryUrl: string; -``` +###### `deps`Required - *Type:* string -- *Default:* "https://registry.npmjs.org" -The base URL of the npm package registry. +Names modules to install. -Must be a URL (e.g. start with "https://" or "http://") +By default, the the dependency will +be installed in the next `npx projen` run and the version will be recorded +in your `package.json` file. You can upgrade manually or using `yarn +add/upgrade`. If you wish to specify a version range use this syntax: +`module@^7`. --- -##### `npmTokenSecret`Optional +##### `addScripts` ```typescript -public readonly npmTokenSecret: string; +public addScripts(scripts: {[ key: string ]: string}): void ``` -- *Type:* string -- *Default:* "NPM_TOKEN" +Replaces the contents of multiple npm package.json scripts. -GitHub secret which contains the NPM token to use when publishing packages. +###### `scripts`Required + +- *Type:* {[ key: string ]: string} + +The scripts to set. --- -##### `packageManager`Optional +##### ~~`addTestCommand`~~ ```typescript -public readonly packageManager: NodePackageManager; +public addTestCommand(commands: string): void ``` -- *Type:* projen.javascript.NodePackageManager -- *Default:* NodePackageManager.YARN +DEPRECATED. -The Node Package Manager used to execute scripts. +###### `commands`Required + +- *Type:* string --- -##### `packageName`Optional +##### ~~`hasScript`~~ ```typescript -public readonly packageName: string; +public hasScript(name: string): boolean ``` +Indicates if a script by the name name is defined. + +###### `name`Required + - *Type:* string -- *Default:* defaults to project name -The "name" in package.json. +The name of the script. --- -##### `peerDependencyOptions`Optional +##### `removeScript` ```typescript -public readonly peerDependencyOptions: PeerDependencyOptions; +public removeScript(name: string): void ``` -- *Type:* projen.javascript.PeerDependencyOptions +Removes the npm script (always successful). -Options for `peerDeps`. +###### `name`Required + +- *Type:* string + +The name of the script. --- -##### `peerDeps`Optional +##### `renderWorkflowSetup` ```typescript -public readonly peerDeps: string[]; +public renderWorkflowSetup(options?: RenderWorkflowSetupOptions): JobStep[] ``` -- *Type:* string[] -- *Default:* [] - -Peer dependencies for this module. +Returns the set of workflow steps which should be executed to bootstrap a workflow. -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. +###### `options`Optional -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. +- *Type:* projen.javascript.RenderWorkflowSetupOptions -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. +Options. --- -##### `pnpmVersion`Optional +##### `setScript` ```typescript -public readonly pnpmVersion: string; +public setScript(name: string, command: string): void ``` +Replaces the contents of an npm package.json script. + +###### `name`Required + - *Type:* string -- *Default:* "7" -The version of PNPM to use if using PNPM as a package manager. +The script name. --- -##### `repository`Optional - -```typescript -public readonly repository: string; -``` +###### `command`Required - *Type:* string -The repository is the location where the actual code for your package lives. +The command to execute. -See https://classic.yarnpkg.com/en/docs/package-json/#toc-repository +--- + +#### Static Functions + +| **Name** | **Description** | +| --- | --- | +| isConstruct | Checks if `x` is a construct. | +| isProject | Test whether the given construct is a project. | +| of | Find the closest ancestor project for given construct. | --- -##### `repositoryDirectory`Optional +##### `isConstruct` ```typescript -public readonly repositoryDirectory: string; -``` +import { Cdk8sTeamTypeScriptProject } from '@cdk8s/projen-common' -- *Type:* string +Cdk8sTeamTypeScriptProject.isConstruct(x: any) +``` -If the package.json for your package is not in the root directory (for example if it is part of a monorepo), you can specify the directory in which it lives. +Checks if `x` is a construct. ---- +Use this method instead of `instanceof` to properly detect `Construct` +instances, even when the construct library is symlinked. -##### `scopedPackagesOptions`Optional +Explanation: in JavaScript, multiple copies of the `constructs` library on +disk are seen as independent, completely different libraries. As a +consequence, the class `Construct` in each copy of the `constructs` library +is seen as a different class, and an instance of one class will not test as +`instanceof` the other class. `npm install` will not create installations +like this, but users may manually symlink construct libraries together or +use a monorepo tool: in those cases, multiple copies of the `constructs` +library can be accidentally installed, and `instanceof` will behave +unpredictably. It is safest to avoid using `instanceof`, and using +this type-testing method instead. -```typescript -public readonly scopedPackagesOptions: ScopedPackagesOptions[]; -``` +###### `x`Required -- *Type:* projen.javascript.ScopedPackagesOptions[] -- *Default:* fetch all scoped packages from the public npm registry +- *Type:* any -Options for privately hosted scoped packages. +Any object. --- -##### ~~`scripts`~~Optional - -- *Deprecated:* use `project.addTask()` or `package.setScript()` +##### `isProject` ```typescript -public readonly scripts: {[ key: string ]: string}; +import { Cdk8sTeamTypeScriptProject } from '@cdk8s/projen-common' + +Cdk8sTeamTypeScriptProject.isProject(x: any) ``` -- *Type:* {[ key: string ]: string} -- *Default:* {} +Test whether the given construct is a project. -npm scripts to include. +###### `x`Required -If a script has the same name as a standard script, -the standard script will be overwritten. -Also adds the script as a task. +- *Type:* any --- -##### `stability`Optional +##### `of` ```typescript -public readonly stability: string; +import { Cdk8sTeamTypeScriptProject } from '@cdk8s/projen-common' + +Cdk8sTeamTypeScriptProject.of(construct: IConstruct) ``` -- *Type:* string +Find the closest ancestor project for given construct. -Package's Stability. +When given a project, this it the project itself. ---- +###### `construct`Required -##### `jsiiReleaseVersion`Optional +- *Type:* constructs.IConstruct -```typescript -public readonly jsiiReleaseVersion: string; -``` +--- -- *Type:* string -- *Default:* "latest" +#### Properties -Version requirement of `publib` which is used to publish modules to npm. +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| node | constructs.Node | The tree node. | +| buildTask | projen.Task | *No description.* | +| commitGenerated | boolean | Whether to commit the managed files by default. | +| compileTask | projen.Task | *No description.* | +| components | projen.Component[] | Returns all the components within this project. | +| deps | projen.Dependencies | Project dependencies. | +| ejected | boolean | Whether or not the project is being ejected. | +| files | projen.FileBase[] | All files in this project. | +| gitattributes | projen.GitAttributesFile | The .gitattributes file for this repository. | +| gitignore | projen.IgnoreFile | .gitignore. | +| logger | projen.Logger | Logging utilities. | +| name | string | Project name. | +| outdir | string | Absolute output directory of this project. | +| packageTask | projen.Task | *No description.* | +| postCompileTask | projen.Task | *No description.* | +| preCompileTask | projen.Task | *No description.* | +| projectBuild | projen.ProjectBuild | Manages the build process of the project. | +| projenCommand | string | The command to use in order to run the projen CLI. | +| root | projen.Project | The root project. | +| subprojects | projen.Project[] | Returns all the subprojects within this project. | +| tasks | projen.Tasks | Project tasks. | +| testTask | projen.Task | *No description.* | +| defaultTask | projen.Task | This is the "default" task, the one that executes "projen". | +| initProject | projen.InitProject | The options used when this project is bootstrapped via `projen new`. | +| parent | projen.Project | A parent project. | +| projectType | projen.ProjectType | *No description.* | +| autoApprove | projen.github.AutoApprove | Auto approve set up for this project. | +| devContainer | projen.vscode.DevContainer | Access for .devcontainer.json (used for GitHub Codespaces). | +| github | projen.github.GitHub | Access all github components. | +| gitpod | projen.Gitpod | Access for Gitpod. | +| vscode | projen.vscode.VsCode | Access all VSCode components. | +| allowLibraryDependencies | boolean | *No description.* | +| artifactsDirectory | string | The build output directory. | +| artifactsJavascriptDirectory | string | The location of the npm tarball after build (`${artifactsDirectory}/js`). | +| bundler | projen.javascript.Bundler | *No description.* | +| entrypoint | string | *No description.* | +| manifest | any | *No description.* | +| npmrc | projen.javascript.NpmConfig | The .npmrc file. | +| package | projen.javascript.NodePackage | API for managing the node package. | +| packageManager | projen.javascript.NodePackageManager | The package manager to use. | +| runScriptCommand | string | The command to use to run scripts (e.g. `yarn run` or `npm run` depends on the package manager). | +| autoMerge | projen.github.AutoMerge | Component that sets up mergify for merging approved pull requests. | +| buildWorkflow | projen.build.BuildWorkflow | The PR build GitHub workflow. | +| buildWorkflowJobId | string | The job ID of the build workflow. | +| jest | projen.javascript.Jest | The Jest configuration (if enabled). | +| maxNodeVersion | string | Maximum node version required by this package. | +| minNodeVersion | string | Minimum node.js version required by this package. | +| npmignore | projen.IgnoreFile | The .npmignore file. | +| prettier | projen.javascript.Prettier | *No description.* | +| publisher | projen.release.Publisher | Package publisher. | +| release | projen.release.Release | Release management. | +| upgradeWorkflow | projen.javascript.UpgradeDependencies | The upgrade workflow. | +| docsDirectory | string | *No description.* | +| libdir | string | The directory in which compiled .js files reside. | +| srcdir | string | The directory in which the .ts sources reside. | +| testdir | string | The directory in which tests reside. | +| tsconfigDev | projen.javascript.TypescriptConfig | A typescript configuration file which covers all files (sources, tests, projen). | +| watchTask | projen.Task | The "watch" task. | +| docgen | boolean | *No description.* | +| eslint | projen.javascript.Eslint | *No description.* | +| tsconfig | projen.javascript.TypescriptConfig | *No description.* | +| tsconfigEslint | projen.javascript.TypescriptConfig | *No description.* | --- -##### `majorVersion`Optional +##### `node`Required ```typescript -public readonly majorVersion: number; +public readonly node: Node; ``` -- *Type:* number -- *Default:* Major version is not enforced. - -Major version to release from the default branch. +- *Type:* constructs.Node -If this is specified, we bump the latest version of this major version line. -If not specified, we bump the global latest version. +The tree node. --- -##### `minMajorVersion`Optional +##### `buildTask`Required ```typescript -public readonly minMajorVersion: number; +public readonly buildTask: Task; ``` -- *Type:* number -- *Default:* No minimum version is being enforced +- *Type:* projen.Task -Minimal Major version to release. +--- -This can be useful to set to 1, as breaking changes before the 1.x major -release are not incrementing the major version number. +##### `commitGenerated`Required -Can not be set together with `majorVersion`. +```typescript +public readonly commitGenerated: boolean; +``` + +- *Type:* boolean + +Whether to commit the managed files by default. --- -##### `npmDistTag`Optional +##### `compileTask`Required ```typescript -public readonly npmDistTag: string; +public readonly compileTask: Task; ``` -- *Type:* string -- *Default:* "latest" - -The npmDistTag to use when publishing from the default branch. - -To set the npm dist-tag for release branches, set the `npmDistTag` property -for each branch. +- *Type:* projen.Task --- -##### `postBuildSteps`Optional +##### `components`Required ```typescript -public readonly postBuildSteps: JobStep[]; +public readonly components: Component[]; ``` -- *Type:* projen.github.workflows.JobStep[] -- *Default:* [] +- *Type:* projen.Component[] -Steps to execute after build as part of the release workflow. +Returns all the components within this project. --- -##### `prerelease`Optional +##### `deps`Required ```typescript -public readonly prerelease: string; +public readonly deps: Dependencies; ``` -- *Type:* string -- *Default:* normal semantic versions +- *Type:* projen.Dependencies -Bump versions from the default branch as pre-releases (e.g. "beta", "alpha", "pre"). +Project dependencies. --- -##### `publishDryRun`Optional +##### `ejected`Required ```typescript -public readonly publishDryRun: boolean; +public readonly ejected: boolean; ``` - *Type:* boolean -- *Default:* false -Instead of actually publishing to package managers, just print the publishing command. +Whether or not the project is being ejected. --- -##### `publishTasks`Optional +##### `files`Required ```typescript -public readonly publishTasks: boolean; +public readonly files: FileBase[]; ``` -- *Type:* boolean -- *Default:* false - -Define publishing tasks that can be executed manually as well as workflows. +- *Type:* projen.FileBase[] -Normally, publishing only happens within automated workflows. Enable this -in order to create a publishing task for each publishing activity. +All files in this project. --- -##### `releasableCommits`Optional +##### `gitattributes`Required ```typescript -public readonly releasableCommits: ReleasableCommits; +public readonly gitattributes: GitAttributesFile; ``` -- *Type:* projen.ReleasableCommits -- *Default:* ReleasableCommits.everyCommit() +- *Type:* projen.GitAttributesFile -Find commits that should be considered releasable Used to decide if a release is required. +The .gitattributes file for this repository. --- -##### `releaseBranches`Optional +##### `gitignore`Required ```typescript -public readonly releaseBranches: {[ key: string ]: BranchOptions}; +public readonly gitignore: IgnoreFile; ``` -- *Type:* {[ key: string ]: projen.release.BranchOptions} -- *Default:* no additional branches are used for release. you can use `addBranch()` to add additional branches. - -Defines additional release branches. +- *Type:* projen.IgnoreFile -A workflow will be created for each -release branch which will publish releases from commits in this branch. -Each release branch _must_ be assigned a major version number which is used -to enforce that versions published from that branch always use that major -version. If multiple branches are used, the `majorVersion` field must also -be provided for the default branch. +.gitignore. --- -##### ~~`releaseEveryCommit`~~Optional - -- *Deprecated:* Use `releaseTrigger: ReleaseTrigger.continuous()` instead +##### `logger`Required ```typescript -public readonly releaseEveryCommit: boolean; +public readonly logger: Logger; ``` -- *Type:* boolean -- *Default:* true +- *Type:* projen.Logger -Automatically release new versions every commit to one of branches in `releaseBranches`. +Logging utilities. --- -##### `releaseFailureIssue`Optional +##### `name`Required ```typescript -public readonly releaseFailureIssue: boolean; +public readonly name: string; ``` -- *Type:* boolean -- *Default:* false +- *Type:* string -Create a github issue on every failed publishing task. +Project name. --- -##### `releaseFailureIssueLabel`Optional +##### `outdir`Required ```typescript -public readonly releaseFailureIssueLabel: string; +public readonly outdir: string; ``` - *Type:* string -- *Default:* "failed-release" - -The label to apply to issues indicating publish failures. -Only applies if `releaseFailureIssue` is true. +Absolute output directory of this project. --- -##### ~~`releaseSchedule`~~Optional - -- *Deprecated:* Use `releaseTrigger: ReleaseTrigger.scheduled()` instead +##### `packageTask`Required ```typescript -public readonly releaseSchedule: string; +public readonly packageTask: Task; ``` -- *Type:* string -- *Default:* no scheduled releases - -CRON schedule to trigger new releases. +- *Type:* projen.Task --- -##### `releaseTagPrefix`Optional +##### `postCompileTask`Required ```typescript -public readonly releaseTagPrefix: string; +public readonly postCompileTask: Task; ``` -- *Type:* string -- *Default:* "v" +- *Type:* projen.Task -Automatically add the given prefix to release tags. Useful if you are releasing on multiple branches with overlapping version numbers. +--- -Note: this prefix is used to detect the latest tagged version -when bumping, so if you change this on a project with an existing version -history, you may need to manually tag your latest release -with the new prefix. +##### `preCompileTask`Required + +```typescript +public readonly preCompileTask: Task; +``` + +- *Type:* projen.Task --- -##### `releaseTrigger`Optional +##### `projectBuild`Required ```typescript -public readonly releaseTrigger: ReleaseTrigger; +public readonly projectBuild: ProjectBuild; ``` -- *Type:* projen.release.ReleaseTrigger -- *Default:* Continuous releases (`ReleaseTrigger.continuous()`) +- *Type:* projen.ProjectBuild -The release trigger to use. +Manages the build process of the project. --- -##### `releaseWorkflowName`Optional +##### `projenCommand`Required ```typescript -public readonly releaseWorkflowName: string; +public readonly projenCommand: string; ``` - *Type:* string -- *Default:* "Release" -The name of the default release workflow. +The command to use in order to run the projen CLI. --- -##### `releaseWorkflowSetupSteps`Optional +##### `root`Required ```typescript -public readonly releaseWorkflowSetupSteps: JobStep[]; +public readonly root: Project; ``` -- *Type:* projen.github.workflows.JobStep[] +- *Type:* projen.Project -A set of workflow steps to execute in order to setup the workflow container. +The root project. --- -##### `versionrcOptions`Optional +##### `subprojects`Required ```typescript -public readonly versionrcOptions: {[ key: string ]: any}; +public readonly subprojects: Project[]; ``` -- *Type:* {[ key: string ]: any} -- *Default:* standard configuration applicable for GitHub repositories - -Custom configuration used when creating changelog with standard-version package. +- *Type:* projen.Project[] -Given values either append to default configuration or overwrite values in it. +Returns all the subprojects within this project. --- -##### `workflowContainerImage`Optional +##### `tasks`Required ```typescript -public readonly workflowContainerImage: string; +public readonly tasks: Tasks; ``` -- *Type:* string -- *Default:* default image +- *Type:* projen.Tasks -Container image to use for GitHub workflows. +Project tasks. --- -##### `workflowRunsOn`Optional +##### `testTask`Required ```typescript -public readonly workflowRunsOn: string[]; +public readonly testTask: Task; ``` -- *Type:* string[] -- *Default:* ["ubuntu-latest"] - -Github Runner selection labels. +- *Type:* projen.Task --- -##### `defaultReleaseBranch`Required +##### `defaultTask`Optional ```typescript -public readonly defaultReleaseBranch: string; +public readonly defaultTask: Task; ``` -- *Type:* string -- *Default:* "main" +- *Type:* projen.Task -The name of the main release branch. +This is the "default" task, the one that executes "projen". + +Undefined if +the project is being ejected. --- -##### `artifactsDirectory`Optional +##### `initProject`Optional ```typescript -public readonly artifactsDirectory: string; +public readonly initProject: InitProject; ``` -- *Type:* string -- *Default:* "dist" +- *Type:* projen.InitProject -A directory which will contain build artifacts. +The options used when this project is bootstrapped via `projen new`. + +It +includes the original set of options passed to the CLI and also the JSII +FQN of the project type. --- -##### `autoApproveUpgrades`Optional +##### `parent`Optional ```typescript -public readonly autoApproveUpgrades: boolean; +public readonly parent: Project; ``` -- *Type:* boolean -- *Default:* true +- *Type:* projen.Project -Automatically approve deps upgrade PRs, allowing them to be merged by mergify (if configued). +A parent project. -Throw if set to true but `autoApproveOptions` are not defined. +If undefined, this is the root project. --- -##### `buildWorkflow`Optional +##### `projectType`Required ```typescript -public readonly buildWorkflow: boolean; +public readonly projectType: ProjectType; ``` -- *Type:* boolean -- *Default:* true if not a subproject +- *Type:* projen.ProjectType -Define a GitHub workflow for building PRs. +--- + +##### `autoApprove`Optional + +```typescript +public readonly autoApprove: AutoApprove; +``` + +- *Type:* projen.github.AutoApprove + +Auto approve set up for this project. --- -##### `buildWorkflowTriggers`Optional +##### `devContainer`Optional ```typescript -public readonly buildWorkflowTriggers: Triggers; +public readonly devContainer: DevContainer; ``` -- *Type:* projen.github.workflows.Triggers -- *Default:* "{ pullRequest: {}, workflowDispatch: {} }" +- *Type:* projen.vscode.DevContainer -Build workflow triggers. +Access for .devcontainer.json (used for GitHub Codespaces). + +This will be `undefined` if devContainer boolean is false --- -##### `bundlerOptions`Optional +##### `github`Optional ```typescript -public readonly bundlerOptions: BundlerOptions; +public readonly github: GitHub; ``` -- *Type:* projen.javascript.BundlerOptions +- *Type:* projen.github.GitHub -Options for `Bundler`. +Access all github components. + +This will be `undefined` for subprojects. --- -##### `codeCov`Optional +##### `gitpod`Optional ```typescript -public readonly codeCov: boolean; +public readonly gitpod: Gitpod; ``` -- *Type:* boolean -- *Default:* false +- *Type:* projen.Gitpod + +Access for Gitpod. -Define a GitHub workflow step for sending code coverage metrics to https://codecov.io/ Uses codecov/codecov-action@v3 A secret is required for private repos. Configured with `@codeCovTokenSecret`. +This will be `undefined` if gitpod boolean is false --- -##### `codeCovTokenSecret`Optional +##### `vscode`Optional ```typescript -public readonly codeCovTokenSecret: string; +public readonly vscode: VsCode; ``` -- *Type:* string -- *Default:* if this option is not specified, only public repositories are supported +- *Type:* projen.vscode.VsCode -Define the secret name for a specified https://codecov.io/ token A secret is required to send coverage for private repositories. +Access all VSCode components. + +This will be `undefined` for subprojects. --- -##### `copyrightOwner`Optional +##### ~~`allowLibraryDependencies`~~Required + +- *Deprecated:* use `package.allowLibraryDependencies` ```typescript -public readonly copyrightOwner: string; +public readonly allowLibraryDependencies: boolean; ``` -- *Type:* string -- *Default:* defaults to the value of authorName or "" if `authorName` is undefined. - -License copyright owner. +- *Type:* boolean --- -##### `copyrightPeriod`Optional +##### `artifactsDirectory`Required ```typescript -public readonly copyrightPeriod: string; +public readonly artifactsDirectory: string; ``` - *Type:* string -- *Default:* current year -The copyright years to put in the LICENSE file. +The build output directory. + +An npm tarball will be created under the `js` +subdirectory. For example, if this is set to `dist` (the default), the npm +tarball will be placed under `dist/js/boom-boom-1.2.3.tg`. --- -##### `dependabot`Optional +##### `artifactsJavascriptDirectory`Required ```typescript -public readonly dependabot: boolean; +public readonly artifactsJavascriptDirectory: string; ``` -- *Type:* boolean -- *Default:* false - -Use dependabot to handle dependency upgrades. +- *Type:* string -Cannot be used in conjunction with `depsUpgrade`. +The location of the npm tarball after build (`${artifactsDirectory}/js`). --- -##### `dependabotOptions`Optional +##### `bundler`Required ```typescript -public readonly dependabotOptions: DependabotOptions; +public readonly bundler: Bundler; ``` -- *Type:* projen.github.DependabotOptions -- *Default:* default options - -Options for dependabot. +- *Type:* projen.javascript.Bundler --- -##### `depsUpgrade`Optional +##### ~~`entrypoint`~~Required + +- *Deprecated:* use `package.entrypoint` ```typescript -public readonly depsUpgrade: boolean; +public readonly entrypoint: string; ``` -- *Type:* boolean -- *Default:* true - -Use github workflows to handle dependency upgrades. - -Cannot be used in conjunction with `dependabot`. +- *Type:* string --- -##### `depsUpgradeOptions`Optional +##### ~~`manifest`~~Required + +- *Deprecated:* use `package.addField(x, y)` ```typescript -public readonly depsUpgradeOptions: UpgradeDependenciesOptions; +public readonly manifest: any; ``` -- *Type:* projen.javascript.UpgradeDependenciesOptions -- *Default:* default options - -Options for `UpgradeDependencies`. +- *Type:* any --- -##### `gitignore`Optional +##### `npmrc`Required ```typescript -public readonly gitignore: string[]; +public readonly npmrc: NpmConfig; ``` -- *Type:* string[] +- *Type:* projen.javascript.NpmConfig -Additional entries to .gitignore. +The .npmrc file. --- -##### `jest`Optional +##### `package`Required ```typescript -public readonly jest: boolean; +public readonly package: NodePackage; ``` -- *Type:* boolean -- *Default:* true +- *Type:* projen.javascript.NodePackage -Setup jest unit tests. +API for managing the node package. --- -##### `jestOptions`Optional +##### ~~`packageManager`~~Required + +- *Deprecated:* use `package.packageManager` ```typescript -public readonly jestOptions: JestOptions; +public readonly packageManager: NodePackageManager; ``` -- *Type:* projen.javascript.JestOptions -- *Default:* default options +- *Type:* projen.javascript.NodePackageManager -Jest options. +The package manager to use. --- -##### `mutableBuild`Optional +##### `runScriptCommand`Required ```typescript -public readonly mutableBuild: boolean; +public readonly runScriptCommand: string; ``` -- *Type:* boolean -- *Default:* true - -Automatically update files modified during builds to pull-request branches. - -This means -that any files synthesized by projen or e.g. test snapshots will always be up-to-date -before a PR is merged. +- *Type:* string -Implies that PR builds do not have anti-tamper checks. +The command to use to run scripts (e.g. `yarn run` or `npm run` depends on the package manager). --- -##### ~~`npmignore`~~Optional - -- *Deprecated:* - use `project.addPackageIgnore` +##### `autoMerge`Optional ```typescript -public readonly npmignore: string[]; +public readonly autoMerge: AutoMerge; ``` -- *Type:* string[] +- *Type:* projen.github.AutoMerge -Additional entries to .npmignore. +Component that sets up mergify for merging approved pull requests. --- -##### `npmignoreEnabled`Optional +##### `buildWorkflow`Optional ```typescript -public readonly npmignoreEnabled: boolean; +public readonly buildWorkflow: BuildWorkflow; ``` -- *Type:* boolean -- *Default:* true +- *Type:* projen.build.BuildWorkflow -Defines an .npmignore file. Normally this is only needed for libraries that are packaged as tarballs. +The PR build GitHub workflow. + +`undefined` if `buildWorkflow` is disabled. --- -##### `npmIgnoreOptions`Optional +##### `buildWorkflowJobId`Optional ```typescript -public readonly npmIgnoreOptions: IgnoreFileOptions; +public readonly buildWorkflowJobId: string; ``` -- *Type:* projen.IgnoreFileOptions +- *Type:* string -Configuration options for .npmignore file. +The job ID of the build workflow. --- -##### `package`Optional +##### `jest`Optional ```typescript -public readonly package: boolean; +public readonly jest: Jest; ``` -- *Type:* boolean -- *Default:* true +- *Type:* projen.javascript.Jest -Defines a `package` task that will produce an npm tarball under the artifacts directory (e.g. `dist`). +The Jest configuration (if enabled). --- -##### `prettier`Optional +##### `maxNodeVersion`Optional ```typescript -public readonly prettier: boolean; +public readonly maxNodeVersion: string; ``` -- *Type:* boolean -- *Default:* false +- *Type:* string -Setup prettier. +Maximum node version required by this package. --- -##### `prettierOptions`Optional +##### `minNodeVersion`Optional ```typescript -public readonly prettierOptions: PrettierOptions; +public readonly minNodeVersion: string; ``` -- *Type:* projen.javascript.PrettierOptions -- *Default:* default options +- *Type:* string -Prettier options. +Minimum node.js version required by this package. --- -##### `projenDevDependency`Optional +##### `npmignore`Optional ```typescript -public readonly projenDevDependency: boolean; +public readonly npmignore: IgnoreFile; ``` -- *Type:* boolean -- *Default:* true +- *Type:* projen.IgnoreFile -Indicates of "projen" should be installed as a devDependency. +The .npmignore file. --- -##### `projenrcJs`Optional +##### `prettier`Optional ```typescript -public readonly projenrcJs: boolean; +public readonly prettier: Prettier; ``` -- *Type:* boolean -- *Default:* true if projenrcJson is false - -Generate (once) .projenrc.js (in JavaScript). Set to `false` in order to disable .projenrc.js generation. +- *Type:* projen.javascript.Prettier --- -##### `projenrcJsOptions`Optional +##### ~~`publisher`~~Optional + +- *Deprecated:* use `release.publisher`. ```typescript -public readonly projenrcJsOptions: ProjenrcOptions; +public readonly publisher: Publisher; ``` -- *Type:* projen.javascript.ProjenrcOptions -- *Default:* default options +- *Type:* projen.release.Publisher -Options for .projenrc.js. +Package publisher. + +This will be `undefined` if the project does not have a +release workflow. --- -##### `projenVersion`Optional +##### `release`Optional ```typescript -public readonly projenVersion: string; +public readonly release: Release; ``` -- *Type:* string -- *Default:* Defaults to the latest version. +- *Type:* projen.release.Release -Version of projen to install. +Release management. --- -##### `pullRequestTemplate`Optional +##### `upgradeWorkflow`Optional ```typescript -public readonly pullRequestTemplate: boolean; +public readonly upgradeWorkflow: UpgradeDependencies; ``` -- *Type:* boolean -- *Default:* true +- *Type:* projen.javascript.UpgradeDependencies -Include a GitHub pull request template. +The upgrade workflow. --- -##### `pullRequestTemplateContents`Optional +##### `docsDirectory`Required ```typescript -public readonly pullRequestTemplateContents: string[]; +public readonly docsDirectory: string; ``` -- *Type:* string[] -- *Default:* default content - -The contents of the pull request template. +- *Type:* string --- -##### `release`Optional +##### `libdir`Required ```typescript -public readonly release: boolean; +public readonly libdir: string; ``` -- *Type:* boolean -- *Default:* true (false for subprojects) +- *Type:* string -Add release management to this project. +The directory in which compiled .js files reside. --- -##### `releaseToNpm`Optional +##### `srcdir`Required ```typescript -public readonly releaseToNpm: boolean; +public readonly srcdir: string; ``` -- *Type:* boolean -- *Default:* false +- *Type:* string -Automatically release to npm when new versions are introduced. +The directory in which the .ts sources reside. --- -##### ~~`releaseWorkflow`~~Optional - -- *Deprecated:* see `release`. +##### `testdir`Required ```typescript -public readonly releaseWorkflow: boolean; +public readonly testdir: string; ``` -- *Type:* boolean -- *Default:* true if not a subproject +- *Type:* string -DEPRECATED: renamed to `release`. +The directory in which tests reside. --- -##### `workflowBootstrapSteps`Optional +##### `tsconfigDev`Required ```typescript -public readonly workflowBootstrapSteps: JobStep[]; +public readonly tsconfigDev: TypescriptConfig; ``` -- *Type:* projen.github.workflows.JobStep[] -- *Default:* "yarn install --frozen-lockfile && yarn projen" +- *Type:* projen.javascript.TypescriptConfig -Workflow steps to use in order to bootstrap this repo. +A typescript configuration file which covers all files (sources, tests, projen). --- -##### `workflowGitIdentity`Optional +##### `watchTask`Required ```typescript -public readonly workflowGitIdentity: GitIdentity; +public readonly watchTask: Task; ``` -- *Type:* projen.github.GitIdentity -- *Default:* GitHub Actions +- *Type:* projen.Task -The git identity to use in workflows. +The "watch" task. --- -##### `workflowNodeVersion`Optional +##### `docgen`Optional ```typescript -public readonly workflowNodeVersion: string; +public readonly docgen: boolean; ``` -- *Type:* string -- *Default:* same as `minNodeVersion` - -The node version to use in GitHub workflows. +- *Type:* boolean --- -##### `workflowPackageCache`Optional +##### `eslint`Optional ```typescript -public readonly workflowPackageCache: boolean; +public readonly eslint: Eslint; ``` -- *Type:* boolean -- *Default:* false - -Enable Node.js package cache in GitHub workflows. +- *Type:* projen.javascript.Eslint --- -##### `backport`Optional +##### `tsconfig`Optional ```typescript -public readonly backport: boolean; +public readonly tsconfig: TypescriptConfig; ``` -- *Type:* boolean -- *Default:* false - -Configure a backport workflow. +- *Type:* projen.javascript.TypescriptConfig --- -##### `backportBranches`Optional +##### `tsconfigEslint`Optional ```typescript -public readonly backportBranches: string[]; +public readonly tsconfigEslint: TypescriptConfig; ``` -- *Type:* string[] -- *Default:* Will be derived from PR labels. +- *Type:* projen.javascript.TypescriptConfig -Branches to backport to. +--- + +#### Constants + +| **Name** | **Type** | **Description** | +| --- | --- | --- | +| DEFAULT_TASK | string | The name of the default task (the task executed when `projen` is run without arguments). | --- -##### `repoName`Optional +##### `DEFAULT_TASK`Required ```typescript -public readonly repoName: string; +public readonly DEFAULT_TASK: string; ``` - *Type:* string -- *Default:* the package name. -The name of the repository inside the cdk8s-team org where the code of the project is locate in. +The name of the default task (the task executed when `projen` is run without arguments). + +Normally +this task should synthesize the project files. --- -### Cdk8sTeamTypeScriptProjectOptions +## Structs -Options for `Cdk8sTeamTypeScriptProject`. +### Cdk8sTeamJsiiProjectOptions -#### Initializer +Options for `Cdk8sTeamJsiiProject`. + +Note that this extends `Cdk8sTeamTypeScriptProjectOptions` and not `cdk.JsiiProjectOptions` +because `cdk.JsiiProjectOptions` has required properties (namely 'author' and 'authorAddress') +that we want to hardcode and disallow customization of. This means that any jsii specific feature +cannot be customized on the project level. This is ok because we don't expect much deviation +with those features between projects. If this turns out to not be the case, we will change appropriately. + +#### Initializer ```typescript -import { Cdk8sTeamTypeScriptProjectOptions } from '@cdk8s/projen-common' +import { Cdk8sTeamJsiiProjectOptions } from '@cdk8s/projen-common' -const cdk8sTeamTypeScriptProjectOptions: Cdk8sTeamTypeScriptProjectOptions = { ... } +const cdk8sTeamJsiiProjectOptions: Cdk8sTeamJsiiProjectOptions = { ... } ``` #### Properties | **Name** | **Type** | **Description** | | --- | --- | --- | -| name | string | This is the name of your project. | -| commitGenerated | boolean | Whether to commit the managed files by default. | -| gitIgnoreOptions | projen.IgnoreFileOptions | Configuration options for .gitignore file. | -| gitOptions | projen.GitOptions | Configuration options for git. | -| logging | projen.LoggerOptions | Configure logging options such as verbosity. | -| outdir | string | The root directory of the project. | -| parent | projen.Project | The parent project, if this project is part of a bigger project. | -| projenCommand | string | The shell command to use in order to run the projen CLI. | -| projenrcJson | boolean | Generate (once) .projenrc.json (in JSON). Set to `false` in order to disable .projenrc.json generation. | -| projenrcJsonOptions | projen.ProjenrcJsonOptions | Options for .projenrc.json. | -| renovatebot | boolean | Use renovatebot to handle dependency upgrades. | -| renovatebotOptions | projen.RenovatebotOptions | Options for renovatebot. | -| autoApproveOptions | projen.github.AutoApproveOptions | Enable and configure the 'auto approve' workflow. | -| autoMerge | boolean | Enable automatic merging on GitHub. | -| autoMergeOptions | projen.github.AutoMergeOptions | Configure options for automatic merging on GitHub. | -| clobber | boolean | Add a `clobber` task which resets the repo to origin. | -| devContainer | boolean | Add a VSCode development environment (used for GitHub Codespaces). | -| github | boolean | Enable GitHub integration. | -| githubOptions | projen.github.GitHubOptions | Options for GitHub integration. | -| gitpod | boolean | Add a Gitpod development environment. | -| mergify | boolean | Whether mergify should be enabled on this repository or not. | -| mergifyOptions | projen.github.MergifyOptions | Options for mergify. | -| projectType | projen.ProjectType | Which type of project this is (library/app). | -| projenCredentials | projen.github.GithubCredentials | Choose a method of providing GitHub API access for projen workflows. | -| projenTokenSecret | string | The name of a secret which includes a GitHub Personal Access Token to be used by projen workflows. | -| readme | projen.SampleReadmeProps | The README setup. | -| stale | boolean | Auto-close of stale issues and pull request. | -| staleOptions | projen.github.StaleOptions | Auto-close stale issues and pull requests. | -| vscode | boolean | Enable VSCode integration. | -| allowLibraryDependencies | boolean | Allow the project to include `peerDependencies` and `bundledDependencies`. | -| authorEmail | string | Author's e-mail. | -| authorName | string | Author's name. | -| authorOrganization | boolean | Is the author an organization. | -| authorUrl | string | Author's URL / Website. | -| autoDetectBin | boolean | Automatically add all executables under the `bin` directory to your `package.json` file under the `bin` section. | -| bin | {[ key: string ]: string} | Binary programs vended with your module. | -| bugsEmail | string | The email address to which issues should be reported. | -| bugsUrl | string | The url to your project's issue tracker. | -| bundledDeps | string[] | List of dependencies to bundle into this module. | -| codeArtifactOptions | projen.javascript.CodeArtifactOptions | Options for npm packages using AWS CodeArtifact. | -| deps | string[] | Runtime dependencies of this module. | -| description | string | The description is just a string that helps people understand the purpose of the package. | -| devDeps | string[] | Build dependencies for this module. | -| entrypoint | string | Module entrypoint (`main` in `package.json`). | -| homepage | string | Package's Homepage / Website. | -| keywords | string[] | Keywords to include in `package.json`. | -| license | string | License's SPDX identifier. | -| licensed | boolean | Indicates if a license should be added. | -| maxNodeVersion | string | Minimum node.js version to require via `engines` (inclusive). | -| minNodeVersion | string | Minimum Node.js version to require via package.json `engines` (inclusive). | -| npmAccess | projen.javascript.NpmAccess | Access level of the npm package. | -| npmRegistry | string | The host name of the npm registry to publish to. | -| npmRegistryUrl | string | The base URL of the npm package registry. | -| npmTokenSecret | string | GitHub secret which contains the NPM token to use when publishing packages. | -| packageManager | projen.javascript.NodePackageManager | The Node Package Manager used to execute scripts. | -| packageName | string | The "name" in package.json. | -| peerDependencyOptions | projen.javascript.PeerDependencyOptions | Options for `peerDeps`. | -| peerDeps | string[] | Peer dependencies for this module. | -| pnpmVersion | string | The version of PNPM to use if using PNPM as a package manager. | -| repository | string | The repository is the location where the actual code for your package lives. | -| repositoryDirectory | string | If the package.json for your package is not in the root directory (for example if it is part of a monorepo), you can specify the directory in which it lives. | -| scopedPackagesOptions | projen.javascript.ScopedPackagesOptions[] | Options for privately hosted scoped packages. | -| scripts | {[ key: string ]: string} | npm scripts to include. | -| stability | string | Package's Stability. | -| jsiiReleaseVersion | string | Version requirement of `publib` which is used to publish modules to npm. | -| majorVersion | number | Major version to release from the default branch. | -| minMajorVersion | number | Minimal Major version to release. | -| npmDistTag | string | The npmDistTag to use when publishing from the default branch. | -| postBuildSteps | projen.github.workflows.JobStep[] | Steps to execute after build as part of the release workflow. | -| prerelease | string | Bump versions from the default branch as pre-releases (e.g. "beta", "alpha", "pre"). | -| publishDryRun | boolean | Instead of actually publishing to package managers, just print the publishing command. | -| publishTasks | boolean | Define publishing tasks that can be executed manually as well as workflows. | -| releasableCommits | projen.ReleasableCommits | Find commits that should be considered releasable Used to decide if a release is required. | -| releaseBranches | {[ key: string ]: projen.release.BranchOptions} | Defines additional release branches. | -| releaseEveryCommit | boolean | Automatically release new versions every commit to one of branches in `releaseBranches`. | -| releaseFailureIssue | boolean | Create a github issue on every failed publishing task. | -| releaseFailureIssueLabel | string | The label to apply to issues indicating publish failures. | -| releaseSchedule | string | CRON schedule to trigger new releases. | -| releaseTagPrefix | string | Automatically add the given prefix to release tags. Useful if you are releasing on multiple branches with overlapping version numbers. | -| releaseTrigger | projen.release.ReleaseTrigger | The release trigger to use. | -| releaseWorkflowName | string | The name of the default release workflow. | -| releaseWorkflowSetupSteps | projen.github.workflows.JobStep[] | A set of workflow steps to execute in order to setup the workflow container. | -| versionrcOptions | {[ key: string ]: any} | Custom configuration used when creating changelog with standard-version package. | -| workflowContainerImage | string | Container image to use for GitHub workflows. | -| workflowRunsOn | string[] | Github Runner selection labels. | -| defaultReleaseBranch | string | The name of the main release branch. | -| artifactsDirectory | string | A directory which will contain build artifacts. | -| autoApproveUpgrades | boolean | Automatically approve deps upgrade PRs, allowing them to be merged by mergify (if configued). | -| buildWorkflow | boolean | Define a GitHub workflow for building PRs. | -| buildWorkflowTriggers | projen.github.workflows.Triggers | Build workflow triggers. | -| bundlerOptions | projen.javascript.BundlerOptions | Options for `Bundler`. | -| codeCov | boolean | Define a GitHub workflow step for sending code coverage metrics to https://codecov.io/ Uses codecov/codecov-action@v3 A secret is required for private repos. Configured with `@codeCovTokenSecret`. | -| codeCovTokenSecret | string | Define the secret name for a specified https://codecov.io/ token A secret is required to send coverage for private repositories. | -| copyrightOwner | string | License copyright owner. | -| copyrightPeriod | string | The copyright years to put in the LICENSE file. | -| dependabot | boolean | Use dependabot to handle dependency upgrades. | -| dependabotOptions | projen.github.DependabotOptions | Options for dependabot. | -| depsUpgrade | boolean | Use github workflows to handle dependency upgrades. | -| depsUpgradeOptions | projen.javascript.UpgradeDependenciesOptions | Options for `UpgradeDependencies`. | -| gitignore | string[] | Additional entries to .gitignore. | -| jest | boolean | Setup jest unit tests. | -| jestOptions | projen.javascript.JestOptions | Jest options. | -| mutableBuild | boolean | Automatically update files modified during builds to pull-request branches. | -| npmignore | string[] | Additional entries to .npmignore. | -| npmignoreEnabled | boolean | Defines an .npmignore file. Normally this is only needed for libraries that are packaged as tarballs. | -| npmIgnoreOptions | projen.IgnoreFileOptions | Configuration options for .npmignore file. | -| package | boolean | Defines a `package` task that will produce an npm tarball under the artifacts directory (e.g. `dist`). | -| prettier | boolean | Setup prettier. | -| prettierOptions | projen.javascript.PrettierOptions | Prettier options. | -| projenDevDependency | boolean | Indicates of "projen" should be installed as a devDependency. | -| projenrcJs | boolean | Generate (once) .projenrc.js (in JavaScript). Set to `false` in order to disable .projenrc.js generation. | -| projenrcJsOptions | projen.javascript.ProjenrcOptions | Options for .projenrc.js. | -| projenVersion | string | Version of projen to install. | -| pullRequestTemplate | boolean | Include a GitHub pull request template. | -| pullRequestTemplateContents | string[] | The contents of the pull request template. | -| release | boolean | Add release management to this project. | -| releaseToNpm | boolean | Automatically release to npm when new versions are introduced. | -| releaseWorkflow | boolean | DEPRECATED: renamed to `release`. | -| workflowBootstrapSteps | projen.github.workflows.JobStep[] | Workflow steps to use in order to bootstrap this repo. | -| workflowGitIdentity | projen.github.GitIdentity | The git identity to use in workflows. | -| workflowNodeVersion | string | The node version to use in GitHub workflows. | -| workflowPackageCache | boolean | Enable Node.js package cache in GitHub workflows. | -| disableTsconfig | boolean | Do not generate a `tsconfig.json` file (used by jsii projects since tsconfig.json is generated by the jsii compiler). | -| disableTsconfigDev | boolean | Do not generate a `tsconfig.dev.json` file. | -| docgen | boolean | Docgen by Typedoc. | -| docsDirectory | string | Docs directory. | -| entrypointTypes | string | The .d.ts file that includes the type declarations for this module. | -| eslint | boolean | Setup eslint. | -| eslintOptions | projen.javascript.EslintOptions | Eslint options. | -| libdir | string | Typescript artifacts output directory. | -| projenrcTs | boolean | Use TypeScript for your projenrc file (`.projenrc.ts`). | -| projenrcTsOptions | projen.typescript.ProjenrcOptions | Options for .projenrc.ts. | -| sampleCode | boolean | Generate one-time sample in `src/` and `test/` if there are no files there. | -| srcdir | string | Typescript sources directory. | -| testdir | string | Jest tests directory. Tests files should be named `xxx.test.ts`. | -| tsconfig | projen.javascript.TypescriptConfigOptions | Custom TSConfig. | -| tsconfigDev | projen.javascript.TypescriptConfigOptions | Custom tsconfig options for the development tsconfig.json file (used for testing). | -| tsconfigDevFile | string | The name of the development tsconfig.json file. | -| typescriptVersion | string | TypeScript version to use. | -| additionalCompilerDependencies | string[] | Packages that compile the project apart from the typescript/jsii compiler. | -| backport | boolean | Configure a backport workflow. | -| backportBranches | string[] | Branches to backport to. | -| repoName | string | The name of the repository inside the cdk8s-team org where the code of the project is locate in. | +| name | string | This is the name of your project. | +| commitGenerated | boolean | Whether to commit the managed files by default. | +| gitIgnoreOptions | projen.IgnoreFileOptions | Configuration options for .gitignore file. | +| gitOptions | projen.GitOptions | Configuration options for git. | +| logging | projen.LoggerOptions | Configure logging options such as verbosity. | +| outdir | string | The root directory of the project. | +| parent | projen.Project | The parent project, if this project is part of a bigger project. | +| projenCommand | string | The shell command to use in order to run the projen CLI. | +| projenrcJson | boolean | Generate (once) .projenrc.json (in JSON). Set to `false` in order to disable .projenrc.json generation. | +| projenrcJsonOptions | projen.ProjenrcJsonOptions | Options for .projenrc.json. | +| renovatebot | boolean | Use renovatebot to handle dependency upgrades. | +| renovatebotOptions | projen.RenovatebotOptions | Options for renovatebot. | +| autoApproveOptions | projen.github.AutoApproveOptions | Enable and configure the 'auto approve' workflow. | +| autoMerge | boolean | Enable automatic merging on GitHub. | +| autoMergeOptions | projen.github.AutoMergeOptions | Configure options for automatic merging on GitHub. | +| clobber | boolean | Add a `clobber` task which resets the repo to origin. | +| devContainer | boolean | Add a VSCode development environment (used for GitHub Codespaces). | +| github | boolean | Enable GitHub integration. | +| githubOptions | projen.github.GitHubOptions | Options for GitHub integration. | +| gitpod | boolean | Add a Gitpod development environment. | +| mergify | boolean | Whether mergify should be enabled on this repository or not. | +| mergifyOptions | projen.github.MergifyOptions | Options for mergify. | +| projectType | projen.ProjectType | Which type of project this is (library/app). | +| projenCredentials | projen.github.GithubCredentials | Choose a method of providing GitHub API access for projen workflows. | +| projenTokenSecret | string | The name of a secret which includes a GitHub Personal Access Token to be used by projen workflows. | +| readme | projen.SampleReadmeProps | The README setup. | +| stale | boolean | Auto-close of stale issues and pull request. | +| staleOptions | projen.github.StaleOptions | Auto-close stale issues and pull requests. | +| vscode | boolean | Enable VSCode integration. | +| allowLibraryDependencies | boolean | Allow the project to include `peerDependencies` and `bundledDependencies`. | +| authorEmail | string | Author's e-mail. | +| authorName | string | Author's name. | +| authorOrganization | boolean | Is the author an organization. | +| authorUrl | string | Author's URL / Website. | +| autoDetectBin | boolean | Automatically add all executables under the `bin` directory to your `package.json` file under the `bin` section. | +| bin | {[ key: string ]: string} | Binary programs vended with your module. | +| bugsEmail | string | The email address to which issues should be reported. | +| bugsUrl | string | The url to your project's issue tracker. | +| bundledDeps | string[] | List of dependencies to bundle into this module. | +| codeArtifactOptions | projen.javascript.CodeArtifactOptions | Options for npm packages using AWS CodeArtifact. | +| deps | string[] | Runtime dependencies of this module. | +| description | string | The description is just a string that helps people understand the purpose of the package. | +| devDeps | string[] | Build dependencies for this module. | +| entrypoint | string | Module entrypoint (`main` in `package.json`). | +| homepage | string | Package's Homepage / Website. | +| keywords | string[] | Keywords to include in `package.json`. | +| license | string | License's SPDX identifier. | +| licensed | boolean | Indicates if a license should be added. | +| maxNodeVersion | string | Minimum node.js version to require via `engines` (inclusive). | +| minNodeVersion | string | Minimum Node.js version to require via package.json `engines` (inclusive). | +| npmAccess | projen.javascript.NpmAccess | Access level of the npm package. | +| npmRegistry | string | The host name of the npm registry to publish to. | +| npmRegistryUrl | string | The base URL of the npm package registry. | +| npmTokenSecret | string | GitHub secret which contains the NPM token to use when publishing packages. | +| packageManager | projen.javascript.NodePackageManager | The Node Package Manager used to execute scripts. | +| packageName | string | The "name" in package.json. | +| peerDependencyOptions | projen.javascript.PeerDependencyOptions | Options for `peerDeps`. | +| peerDeps | string[] | Peer dependencies for this module. | +| pnpmVersion | string | The version of PNPM to use if using PNPM as a package manager. | +| repository | string | The repository is the location where the actual code for your package lives. | +| repositoryDirectory | string | If the package.json for your package is not in the root directory (for example if it is part of a monorepo), you can specify the directory in which it lives. | +| scopedPackagesOptions | projen.javascript.ScopedPackagesOptions[] | Options for privately hosted scoped packages. | +| scripts | {[ key: string ]: string} | npm scripts to include. | +| stability | string | Package's Stability. | +| yarnBerryOptions | projen.javascript.YarnBerryOptions | Options for Yarn Berry. | +| jsiiReleaseVersion | string | Version requirement of `publib` which is used to publish modules to npm. | +| majorVersion | number | Major version to release from the default branch. | +| minMajorVersion | number | Minimal Major version to release. | +| npmDistTag | string | The npmDistTag to use when publishing from the default branch. | +| postBuildSteps | projen.github.workflows.JobStep[] | Steps to execute after build as part of the release workflow. | +| prerelease | string | Bump versions from the default branch as pre-releases (e.g. "beta", "alpha", "pre"). | +| publishDryRun | boolean | Instead of actually publishing to package managers, just print the publishing command. | +| publishTasks | boolean | Define publishing tasks that can be executed manually as well as workflows. | +| releasableCommits | projen.ReleasableCommits | Find commits that should be considered releasable Used to decide if a release is required. | +| releaseBranches | {[ key: string ]: projen.release.BranchOptions} | Defines additional release branches. | +| releaseEveryCommit | boolean | Automatically release new versions every commit to one of branches in `releaseBranches`. | +| releaseFailureIssue | boolean | Create a github issue on every failed publishing task. | +| releaseFailureIssueLabel | string | The label to apply to issues indicating publish failures. | +| releaseSchedule | string | CRON schedule to trigger new releases. | +| releaseTagPrefix | string | Automatically add the given prefix to release tags. Useful if you are releasing on multiple branches with overlapping version numbers. | +| releaseTrigger | projen.release.ReleaseTrigger | The release trigger to use. | +| releaseWorkflowName | string | The name of the default release workflow. | +| releaseWorkflowSetupSteps | projen.github.workflows.JobStep[] | A set of workflow steps to execute in order to setup the workflow container. | +| versionrcOptions | {[ key: string ]: any} | Custom configuration used when creating changelog with standard-version package. | +| workflowContainerImage | string | Container image to use for GitHub workflows. | +| workflowRunsOn | string[] | Github Runner selection labels. | +| workflowRunsOnGroup | projen.GroupRunnerOptions | Github Runner Group selection options. | +| defaultReleaseBranch | string | The name of the main release branch. | +| artifactsDirectory | string | A directory which will contain build artifacts. | +| autoApproveUpgrades | boolean | Automatically approve deps upgrade PRs, allowing them to be merged by mergify (if configued). | +| buildWorkflow | boolean | Define a GitHub workflow for building PRs. | +| buildWorkflowTriggers | projen.github.workflows.Triggers | Build workflow triggers. | +| bundlerOptions | projen.javascript.BundlerOptions | Options for `Bundler`. | +| codeCov | boolean | Define a GitHub workflow step for sending code coverage metrics to https://codecov.io/ Uses codecov/codecov-action@v3 A secret is required for private repos. Configured with `@codeCovTokenSecret`. | +| codeCovTokenSecret | string | Define the secret name for a specified https://codecov.io/ token A secret is required to send coverage for private repositories. | +| copyrightOwner | string | License copyright owner. | +| copyrightPeriod | string | The copyright years to put in the LICENSE file. | +| dependabot | boolean | Use dependabot to handle dependency upgrades. | +| dependabotOptions | projen.github.DependabotOptions | Options for dependabot. | +| depsUpgrade | boolean | Use tasks and github workflows to handle dependency upgrades. | +| depsUpgradeOptions | projen.javascript.UpgradeDependenciesOptions | Options for `UpgradeDependencies`. | +| gitignore | string[] | Additional entries to .gitignore. | +| jest | boolean | Setup jest unit tests. | +| jestOptions | projen.javascript.JestOptions | Jest options. | +| mutableBuild | boolean | Automatically update files modified during builds to pull-request branches. | +| npmignore | string[] | Additional entries to .npmignore. | +| npmignoreEnabled | boolean | Defines an .npmignore file. Normally this is only needed for libraries that are packaged as tarballs. | +| npmIgnoreOptions | projen.IgnoreFileOptions | Configuration options for .npmignore file. | +| package | boolean | Defines a `package` task that will produce an npm tarball under the artifacts directory (e.g. `dist`). | +| prettier | boolean | Setup prettier. | +| prettierOptions | projen.javascript.PrettierOptions | Prettier options. | +| projenDevDependency | boolean | Indicates of "projen" should be installed as a devDependency. | +| projenrcJs | boolean | Generate (once) .projenrc.js (in JavaScript). Set to `false` in order to disable .projenrc.js generation. | +| projenrcJsOptions | projen.javascript.ProjenrcOptions | Options for .projenrc.js. | +| projenVersion | string | Version of projen to install. | +| pullRequestTemplate | boolean | Include a GitHub pull request template. | +| pullRequestTemplateContents | string[] | The contents of the pull request template. | +| release | boolean | Add release management to this project. | +| releaseToNpm | boolean | Automatically release to npm when new versions are introduced. | +| releaseWorkflow | boolean | DEPRECATED: renamed to `release`. | +| workflowBootstrapSteps | projen.github.workflows.JobStep[] | Workflow steps to use in order to bootstrap this repo. | +| workflowGitIdentity | projen.github.GitIdentity | The git identity to use in workflows. | +| workflowNodeVersion | string | The node version to use in GitHub workflows. | +| workflowPackageCache | boolean | Enable Node.js package cache in GitHub workflows. | +| disableTsconfig | boolean | Do not generate a `tsconfig.json` file (used by jsii projects since tsconfig.json is generated by the jsii compiler). | +| disableTsconfigDev | boolean | Do not generate a `tsconfig.dev.json` file. | +| docgen | boolean | Docgen by Typedoc. | +| docsDirectory | string | Docs directory. | +| entrypointTypes | string | The .d.ts file that includes the type declarations for this module. | +| eslint | boolean | Setup eslint. | +| eslintOptions | projen.javascript.EslintOptions | Eslint options. | +| libdir | string | Typescript artifacts output directory. | +| projenrcTs | boolean | Use TypeScript for your projenrc file (`.projenrc.ts`). | +| projenrcTsOptions | projen.typescript.ProjenrcOptions | Options for .projenrc.ts. | +| sampleCode | boolean | Generate one-time sample in `src/` and `test/` if there are no files there. | +| srcdir | string | Typescript sources directory. | +| testdir | string | Jest tests directory. Tests files should be named `xxx.test.ts`. | +| tsconfig | projen.javascript.TypescriptConfigOptions | Custom TSConfig. | +| tsconfigDev | projen.javascript.TypescriptConfigOptions | Custom tsconfig options for the development tsconfig.json file (used for testing). | +| tsconfigDevFile | string | The name of the development tsconfig.json file. | +| typescriptVersion | string | TypeScript version to use. | +| additionalCompilerDependencies | string[] | Packages that compile the project apart from the typescript/jsii compiler. | +| backport | boolean | Configure a backport workflow. | +| backportBranches | string[] | Branches to backport to. | +| repoName | string | The name of the repository inside the cdk8s-team org where the code of the project is locate in. | +| golang | boolean | Publish Golang bindings to GitHub. | +| golangBranch | string | Name of the branch in the golang repository to publish to. | +| jsiiVersion | string | JSII version to use. | +| maven | boolean | Publish Java bindings to Maven. | +| nuget | boolean | Publish Dotnet bindings to Nuget. | +| pypi | boolean | Publish Python bindings to PyPI. | --- -##### `name`Required +##### `name`Required ```typescript public readonly name: string; @@ -4379,7 +4550,7 @@ This is the name of your project. --- -##### `commitGenerated`Optional +##### `commitGenerated`Optional ```typescript public readonly commitGenerated: boolean; @@ -4392,7 +4563,7 @@ Whether to commit the managed files by default. --- -##### `gitIgnoreOptions`Optional +##### `gitIgnoreOptions`Optional ```typescript public readonly gitIgnoreOptions: IgnoreFileOptions; @@ -4404,7 +4575,7 @@ Configuration options for .gitignore file. --- -##### `gitOptions`Optional +##### `gitOptions`Optional ```typescript public readonly gitOptions: GitOptions; @@ -4416,7 +4587,7 @@ Configuration options for git. --- -##### `logging`Optional +##### `logging`Optional ```typescript public readonly logging: LoggerOptions; @@ -4429,7 +4600,7 @@ Configure logging options such as verbosity. --- -##### `outdir`Optional +##### `outdir`Optional ```typescript public readonly outdir: string; @@ -4444,11 +4615,11 @@ Relative to this directory, all files are synthesized. If this project has a parent, this directory is relative to the parent directory and it cannot be the same as the parent or any of it's other -sub-projects. +subprojects. --- -##### `parent`Optional +##### `parent`Optional ```typescript public readonly parent: Project; @@ -4460,7 +4631,7 @@ The parent project, if this project is part of a bigger project. --- -##### `projenCommand`Optional +##### `projenCommand`Optional ```typescript public readonly projenCommand: string; @@ -4475,7 +4646,7 @@ Can be used to customize in special environments. --- -##### `projenrcJson`Optional +##### `projenrcJson`Optional ```typescript public readonly projenrcJson: boolean; @@ -4488,7 +4659,7 @@ Generate (once) .projenrc.json (in JSON). Set to `false` in order to disable .pr --- -##### `projenrcJsonOptions`Optional +##### `projenrcJsonOptions`Optional ```typescript public readonly projenrcJsonOptions: ProjenrcJsonOptions; @@ -4501,7 +4672,7 @@ Options for .projenrc.json. --- -##### `renovatebot`Optional +##### `renovatebot`Optional ```typescript public readonly renovatebot: boolean; @@ -4514,7 +4685,7 @@ Use renovatebot to handle dependency upgrades. --- -##### `renovatebotOptions`Optional +##### `renovatebotOptions`Optional ```typescript public readonly renovatebotOptions: RenovatebotOptions; @@ -4527,7 +4698,7 @@ Options for renovatebot. --- -##### `autoApproveOptions`Optional +##### `autoApproveOptions`Optional ```typescript public readonly autoApproveOptions: AutoApproveOptions; @@ -4540,7 +4711,7 @@ Enable and configure the 'auto approve' workflow. --- -##### `autoMerge`Optional +##### `autoMerge`Optional ```typescript public readonly autoMerge: boolean; @@ -4556,7 +4727,7 @@ is set to false. --- -##### `autoMergeOptions`Optional +##### `autoMergeOptions`Optional ```typescript public readonly autoMergeOptions: AutoMergeOptions; @@ -4572,7 +4743,7 @@ Has no effect if --- -##### `clobber`Optional +##### `clobber`Optional ```typescript public readonly clobber: boolean; @@ -4585,7 +4756,7 @@ Add a `clobber` task which resets the repo to origin. --- -##### `devContainer`Optional +##### `devContainer`Optional ```typescript public readonly devContainer: boolean; @@ -4598,7 +4769,7 @@ Add a VSCode development environment (used for GitHub Codespaces). --- -##### `github`Optional +##### `github`Optional ```typescript public readonly github: boolean; @@ -4613,7 +4784,7 @@ Enabled by default for root projects. Disabled for non-root projects. --- -##### `githubOptions`Optional +##### `githubOptions`Optional ```typescript public readonly githubOptions: GitHubOptions; @@ -4626,7 +4797,7 @@ Options for GitHub integration. --- -##### `gitpod`Optional +##### `gitpod`Optional ```typescript public readonly gitpod: boolean; @@ -4639,7 +4810,7 @@ Add a Gitpod development environment. --- -##### ~~`mergify`~~Optional +##### ~~`mergify`~~Optional - *Deprecated:* use `githubOptions.mergify` instead @@ -4654,7 +4825,7 @@ Whether mergify should be enabled on this repository or not. --- -##### ~~`mergifyOptions`~~Optional +##### ~~`mergifyOptions`~~Optional - *Deprecated:* use `githubOptions.mergifyOptions` instead @@ -4669,7 +4840,7 @@ Options for mergify. --- -##### ~~`projectType`~~Optional +##### ~~`projectType`~~Optional - *Deprecated:* no longer supported at the base project level @@ -4684,7 +4855,7 @@ Which type of project this is (library/app). --- -##### `projenCredentials`Optional +##### `projenCredentials`Optional ```typescript public readonly projenCredentials: GithubCredentials; @@ -4697,7 +4868,7 @@ Choose a method of providing GitHub API access for projen workflows. --- -##### ~~`projenTokenSecret`~~Optional +##### ~~`projenTokenSecret`~~Optional - *Deprecated:* use `projenCredentials` @@ -4715,7 +4886,7 @@ and `packages` scope. --- -##### `readme`Optional +##### `readme`Optional ```typescript public readonly readme: SampleReadmeProps; @@ -4735,7 +4906,7 @@ The README setup. ``` -##### `stale`Optional +##### `stale`Optional ```typescript public readonly stale: boolean; @@ -4750,7 +4921,7 @@ See `staleOptions` for options. --- -##### `staleOptions`Optional +##### `staleOptions`Optional ```typescript public readonly staleOptions: StaleOptions; @@ -4765,7 +4936,7 @@ To disable set `stale` to `false`. --- -##### `vscode`Optional +##### `vscode`Optional ```typescript public readonly vscode: boolean; @@ -4780,7 +4951,7 @@ Enabled by default for root projects. Disabled for non-root projects. --- -##### `allowLibraryDependencies`Optional +##### `allowLibraryDependencies`Optional ```typescript public readonly allowLibraryDependencies: boolean; @@ -4796,7 +4967,7 @@ for specifying these. --- -##### `authorEmail`Optional +##### `authorEmail`Optional ```typescript public readonly authorEmail: string; @@ -4808,7 +4979,7 @@ Author's e-mail. --- -##### `authorName`Optional +##### `authorName`Optional ```typescript public readonly authorName: string; @@ -4820,7 +4991,7 @@ Author's name. --- -##### `authorOrganization`Optional +##### `authorOrganization`Optional ```typescript public readonly authorOrganization: boolean; @@ -4832,7 +5003,7 @@ Is the author an organization. --- -##### `authorUrl`Optional +##### `authorUrl`Optional ```typescript public readonly authorUrl: string; @@ -4844,7 +5015,7 @@ Author's URL / Website. --- -##### `autoDetectBin`Optional +##### `autoDetectBin`Optional ```typescript public readonly autoDetectBin: boolean; @@ -4857,7 +5028,7 @@ Automatically add all executables under the `bin` directory to your `package.jso --- -##### `bin`Optional +##### `bin`Optional ```typescript public readonly bin: {[ key: string ]: string}; @@ -4873,7 +5044,7 @@ executable file under `bin` will automatically be added to this section. --- -##### `bugsEmail`Optional +##### `bugsEmail`Optional ```typescript public readonly bugsEmail: string; @@ -4885,7 +5056,7 @@ The email address to which issues should be reported. --- -##### `bugsUrl`Optional +##### `bugsUrl`Optional ```typescript public readonly bugsUrl: string; @@ -4897,7 +5068,7 @@ The url to your project's issue tracker. --- -##### `bundledDeps`Optional +##### `bundledDeps`Optional ```typescript public readonly bundledDeps: string[]; @@ -4920,7 +5091,7 @@ this will be what you `package.json` will eventually include. --- -##### `codeArtifactOptions`Optional +##### `codeArtifactOptions`Optional ```typescript public readonly codeArtifactOptions: CodeArtifactOptions; @@ -4935,7 +5106,7 @@ This is required if publishing packages to, or installing scoped packages from A --- -##### `deps`Optional +##### `deps`Optional ```typescript public readonly deps: string[]; @@ -4962,7 +5133,7 @@ this will be what you `package.json` will eventually include. ``` -##### `description`Optional +##### `description`Optional ```typescript public readonly description: string; @@ -4977,7 +5148,7 @@ See https://classic.yarnpkg.com/en/docs/package-json/#toc-description --- -##### `devDeps`Optional +##### `devDeps`Optional ```typescript public readonly devDeps: string[]; @@ -5008,7 +5179,7 @@ this will be what you `package.json` will eventually include. ``` -##### `entrypoint`Optional +##### `entrypoint`Optional ```typescript public readonly entrypoint: string; @@ -5023,7 +5194,7 @@ Set to an empty string to not include `main` in your package.json --- -##### `homepage`Optional +##### `homepage`Optional ```typescript public readonly homepage: string; @@ -5035,7 +5206,7 @@ Package's Homepage / Website. --- -##### `keywords`Optional +##### `keywords`Optional ```typescript public readonly keywords: string[]; @@ -5047,7 +5218,7 @@ Keywords to include in `package.json`. --- -##### `license`Optional +##### `license`Optional ```typescript public readonly license: string; @@ -5063,7 +5234,7 @@ Use the `licensed` option if you want to no license to be specified. --- -##### `licensed`Optional +##### `licensed`Optional ```typescript public readonly licensed: boolean; @@ -5076,7 +5247,7 @@ Indicates if a license should be added. --- -##### `maxNodeVersion`Optional +##### `maxNodeVersion`Optional ```typescript public readonly maxNodeVersion: string; @@ -5089,7 +5260,7 @@ Minimum node.js version to require via `engines` (inclusive). --- -##### `minNodeVersion`Optional +##### `minNodeVersion`Optional ```typescript public readonly minNodeVersion: string; @@ -5102,7 +5273,7 @@ Minimum Node.js version to require via package.json `engines` (inclusive). --- -##### `npmAccess`Optional +##### `npmAccess`Optional ```typescript public readonly npmAccess: NpmAccess; @@ -5115,7 +5286,7 @@ Access level of the npm package. --- -##### ~~`npmRegistry`~~Optional +##### ~~`npmRegistry`~~Optional - *Deprecated:* use `npmRegistryUrl` instead @@ -5131,7 +5302,7 @@ Cannot be set together with `npmRegistryUrl`. --- -##### `npmRegistryUrl`Optional +##### `npmRegistryUrl`Optional ```typescript public readonly npmRegistryUrl: string; @@ -5146,7 +5317,7 @@ Must be a URL (e.g. start with "https://" or "http://") --- -##### `npmTokenSecret`Optional +##### `npmTokenSecret`Optional ```typescript public readonly npmTokenSecret: string; @@ -5159,20 +5330,20 @@ GitHub secret which contains the NPM token to use when publishing packages. --- -##### `packageManager`Optional +##### `packageManager`Optional ```typescript public readonly packageManager: NodePackageManager; ``` - *Type:* projen.javascript.NodePackageManager -- *Default:* NodePackageManager.YARN +- *Default:* NodePackageManager.YARN_CLASSIC The Node Package Manager used to execute scripts. --- -##### `packageName`Optional +##### `packageName`Optional ```typescript public readonly packageName: string; @@ -5185,7 +5356,7 @@ The "name" in package.json. --- -##### `peerDependencyOptions`Optional +##### `peerDependencyOptions`Optional ```typescript public readonly peerDependencyOptions: PeerDependencyOptions; @@ -5197,7 +5368,7 @@ Options for `peerDeps`. --- -##### `peerDeps`Optional +##### `peerDeps`Optional ```typescript public readonly peerDeps: string[]; @@ -5224,7 +5395,7 @@ test your module against the lowest peer version required. --- -##### `pnpmVersion`Optional +##### `pnpmVersion`Optional ```typescript public readonly pnpmVersion: string; @@ -5237,7 +5408,7 @@ The version of PNPM to use if using PNPM as a package manager. --- -##### `repository`Optional +##### `repository`Optional ```typescript public readonly repository: string; @@ -5251,7 +5422,7 @@ See https://classic.yarnpkg.com/en/docs/package-json/#toc-repository --- -##### `repositoryDirectory`Optional +##### `repositoryDirectory`Optional ```typescript public readonly repositoryDirectory: string; @@ -5263,7 +5434,7 @@ If the package.json for your package is not in the root directory (for example i --- -##### `scopedPackagesOptions`Optional +##### `scopedPackagesOptions`Optional ```typescript public readonly scopedPackagesOptions: ScopedPackagesOptions[]; @@ -5276,7 +5447,7 @@ Options for privately hosted scoped packages. --- -##### ~~`scripts`~~Optional +##### ~~`scripts`~~Optional - *Deprecated:* use `project.addTask()` or `package.setScript()` @@ -5295,7 +5466,7 @@ Also adds the script as a task. --- -##### `stability`Optional +##### `stability`Optional ```typescript public readonly stability: string; @@ -5307,7 +5478,20 @@ Package's Stability. --- -##### `jsiiReleaseVersion`Optional +##### `yarnBerryOptions`Optional + +```typescript +public readonly yarnBerryOptions: YarnBerryOptions; +``` + +- *Type:* projen.javascript.YarnBerryOptions +- *Default:* Yarn Berry v4 with all default options + +Options for Yarn Berry. + +--- + +##### `jsiiReleaseVersion`Optional ```typescript public readonly jsiiReleaseVersion: string; @@ -5320,7 +5504,7 @@ Version requirement of `publib` which is used to publish modules to npm. --- -##### `majorVersion`Optional +##### `majorVersion`Optional ```typescript public readonly majorVersion: number; @@ -5336,7 +5520,7 @@ If not specified, we bump the global latest version. --- -##### `minMajorVersion`Optional +##### `minMajorVersion`Optional ```typescript public readonly minMajorVersion: number; @@ -5354,7 +5538,7 @@ Can not be set together with `majorVersion`. --- -##### `npmDistTag`Optional +##### `npmDistTag`Optional ```typescript public readonly npmDistTag: string; @@ -5370,7 +5554,7 @@ for each branch. --- -##### `postBuildSteps`Optional +##### `postBuildSteps`Optional ```typescript public readonly postBuildSteps: JobStep[]; @@ -5383,7 +5567,7 @@ Steps to execute after build as part of the release workflow. --- -##### `prerelease`Optional +##### `prerelease`Optional ```typescript public readonly prerelease: string; @@ -5396,7 +5580,7 @@ Bump versions from the default branch as pre-releases (e.g. "beta", "alpha", "pr --- -##### `publishDryRun`Optional +##### `publishDryRun`Optional ```typescript public readonly publishDryRun: boolean; @@ -5409,7 +5593,7 @@ Instead of actually publishing to package managers, just print the publishing co --- -##### `publishTasks`Optional +##### `publishTasks`Optional ```typescript public readonly publishTasks: boolean; @@ -5425,7 +5609,7 @@ in order to create a publishing task for each publishing activity. --- -##### `releasableCommits`Optional +##### `releasableCommits`Optional ```typescript public readonly releasableCommits: ReleasableCommits; @@ -5438,7 +5622,7 @@ Find commits that should be considered releasable Used to decide if a release is --- -##### `releaseBranches`Optional +##### `releaseBranches`Optional ```typescript public readonly releaseBranches: {[ key: string ]: BranchOptions}; @@ -5458,7 +5642,7 @@ be provided for the default branch. --- -##### ~~`releaseEveryCommit`~~Optional +##### ~~`releaseEveryCommit`~~Optional - *Deprecated:* Use `releaseTrigger: ReleaseTrigger.continuous()` instead @@ -5473,7 +5657,7 @@ Automatically release new versions every commit to one of branches in `releaseBr --- -##### `releaseFailureIssue`Optional +##### `releaseFailureIssue`Optional ```typescript public readonly releaseFailureIssue: boolean; @@ -5486,7 +5670,7 @@ Create a github issue on every failed publishing task. --- -##### `releaseFailureIssueLabel`Optional +##### `releaseFailureIssueLabel`Optional ```typescript public readonly releaseFailureIssueLabel: string; @@ -5501,7 +5685,7 @@ Only applies if `releaseFailureIssue` is true. --- -##### ~~`releaseSchedule`~~Optional +##### ~~`releaseSchedule`~~Optional - *Deprecated:* Use `releaseTrigger: ReleaseTrigger.scheduled()` instead @@ -5516,7 +5700,7 @@ CRON schedule to trigger new releases. --- -##### `releaseTagPrefix`Optional +##### `releaseTagPrefix`Optional ```typescript public readonly releaseTagPrefix: string; @@ -5534,7 +5718,7 @@ with the new prefix. --- -##### `releaseTrigger`Optional +##### `releaseTrigger`Optional ```typescript public readonly releaseTrigger: ReleaseTrigger; @@ -5547,7 +5731,7 @@ The release trigger to use. --- -##### `releaseWorkflowName`Optional +##### `releaseWorkflowName`Optional ```typescript public readonly releaseWorkflowName: string; @@ -5560,7 +5744,7 @@ The name of the default release workflow. --- -##### `releaseWorkflowSetupSteps`Optional +##### `releaseWorkflowSetupSteps`Optional ```typescript public readonly releaseWorkflowSetupSteps: JobStep[]; @@ -5572,7 +5756,7 @@ A set of workflow steps to execute in order to setup the workflow container. --- -##### `versionrcOptions`Optional +##### `versionrcOptions`Optional ```typescript public readonly versionrcOptions: {[ key: string ]: any}; @@ -5587,7 +5771,7 @@ Given values either append to default configuration or overwrite values in it. --- -##### `workflowContainerImage`Optional +##### `workflowContainerImage`Optional ```typescript public readonly workflowContainerImage: string; @@ -5600,7 +5784,7 @@ Container image to use for GitHub workflows. --- -##### `workflowRunsOn`Optional +##### `workflowRunsOn`Optional ```typescript public readonly workflowRunsOn: string[]; @@ -5613,7 +5797,19 @@ Github Runner selection labels. --- -##### `defaultReleaseBranch`Required +##### `workflowRunsOnGroup`Optional + +```typescript +public readonly workflowRunsOnGroup: GroupRunnerOptions; +``` + +- *Type:* projen.GroupRunnerOptions + +Github Runner Group selection options. + +--- + +##### `defaultReleaseBranch`Required ```typescript public readonly defaultReleaseBranch: string; @@ -5626,7 +5822,7 @@ The name of the main release branch. --- -##### `artifactsDirectory`Optional +##### `artifactsDirectory`Optional ```typescript public readonly artifactsDirectory: string; @@ -5639,7 +5835,7 @@ A directory which will contain build artifacts. --- -##### `autoApproveUpgrades`Optional +##### `autoApproveUpgrades`Optional ```typescript public readonly autoApproveUpgrades: boolean; @@ -5654,7 +5850,7 @@ Throw if set to true but `autoApproveOptions` are not defined. --- -##### `buildWorkflow`Optional +##### `buildWorkflow`Optional ```typescript public readonly buildWorkflow: boolean; @@ -5667,7 +5863,7 @@ Define a GitHub workflow for building PRs. --- -##### `buildWorkflowTriggers`Optional +##### `buildWorkflowTriggers`Optional ```typescript public readonly buildWorkflowTriggers: Triggers; @@ -5680,7 +5876,7 @@ Build workflow triggers. --- -##### `bundlerOptions`Optional +##### `bundlerOptions`Optional ```typescript public readonly bundlerOptions: BundlerOptions; @@ -5692,7 +5888,7 @@ Options for `Bundler`. --- -##### `codeCov`Optional +##### `codeCov`Optional ```typescript public readonly codeCov: boolean; @@ -5705,7 +5901,7 @@ Define a GitHub workflow step for sending code coverage metrics to https://codec --- -##### `codeCovTokenSecret`Optional +##### `codeCovTokenSecret`Optional ```typescript public readonly codeCovTokenSecret: string; @@ -5718,7 +5914,7 @@ Define the secret name for a specified https://codecov.io/ token A secret is req --- -##### `copyrightOwner`Optional +##### `copyrightOwner`Optional ```typescript public readonly copyrightOwner: string; @@ -5731,7 +5927,7 @@ License copyright owner. --- -##### `copyrightPeriod`Optional +##### `copyrightPeriod`Optional ```typescript public readonly copyrightPeriod: string; @@ -5744,7 +5940,7 @@ The copyright years to put in the LICENSE file. --- -##### `dependabot`Optional +##### `dependabot`Optional ```typescript public readonly dependabot: boolean; @@ -5759,7 +5955,7 @@ Cannot be used in conjunction with `depsUpgrade`. --- -##### `dependabotOptions`Optional +##### `dependabotOptions`Optional ```typescript public readonly dependabotOptions: DependabotOptions; @@ -5772,7 +5968,7 @@ Options for dependabot. --- -##### `depsUpgrade`Optional +##### `depsUpgrade`Optional ```typescript public readonly depsUpgrade: boolean; @@ -5781,13 +5977,13 @@ public readonly depsUpgrade: boolean; - *Type:* boolean - *Default:* true -Use github workflows to handle dependency upgrades. +Use tasks and github workflows to handle dependency upgrades. Cannot be used in conjunction with `dependabot`. --- -##### `depsUpgradeOptions`Optional +##### `depsUpgradeOptions`Optional ```typescript public readonly depsUpgradeOptions: UpgradeDependenciesOptions; @@ -5800,7 +5996,7 @@ Options for `UpgradeDependencies`. --- -##### `gitignore`Optional +##### `gitignore`Optional ```typescript public readonly gitignore: string[]; @@ -5812,7 +6008,7 @@ Additional entries to .gitignore. --- -##### `jest`Optional +##### `jest`Optional ```typescript public readonly jest: boolean; @@ -5825,7 +6021,7 @@ Setup jest unit tests. --- -##### `jestOptions`Optional +##### `jestOptions`Optional ```typescript public readonly jestOptions: JestOptions; @@ -5838,7 +6034,7 @@ Jest options. --- -##### `mutableBuild`Optional +##### `mutableBuild`Optional ```typescript public readonly mutableBuild: boolean; @@ -5857,7 +6053,7 @@ Implies that PR builds do not have anti-tamper checks. --- -##### ~~`npmignore`~~Optional +##### ~~`npmignore`~~Optional - *Deprecated:* - use `project.addPackageIgnore` @@ -5871,7 +6067,7 @@ Additional entries to .npmignore. --- -##### `npmignoreEnabled`Optional +##### `npmignoreEnabled`Optional ```typescript public readonly npmignoreEnabled: boolean; @@ -5884,7 +6080,7 @@ Defines an .npmignore file. Normally this is only needed for libraries that are --- -##### `npmIgnoreOptions`Optional +##### `npmIgnoreOptions`Optional ```typescript public readonly npmIgnoreOptions: IgnoreFileOptions; @@ -5896,7 +6092,7 @@ Configuration options for .npmignore file. --- -##### `package`Optional +##### `package`Optional ```typescript public readonly package: boolean; @@ -5909,7 +6105,7 @@ Defines a `package` task that will produce an npm tarball under the artifacts di --- -##### `prettier`Optional +##### `prettier`Optional ```typescript public readonly prettier: boolean; @@ -5922,7 +6118,7 @@ Setup prettier. --- -##### `prettierOptions`Optional +##### `prettierOptions`Optional ```typescript public readonly prettierOptions: PrettierOptions; @@ -5935,7 +6131,7 @@ Prettier options. --- -##### `projenDevDependency`Optional +##### `projenDevDependency`Optional ```typescript public readonly projenDevDependency: boolean; @@ -5948,7 +6144,7 @@ Indicates of "projen" should be installed as a devDependency. --- -##### `projenrcJs`Optional +##### `projenrcJs`Optional ```typescript public readonly projenrcJs: boolean; @@ -5961,7 +6157,7 @@ Generate (once) .projenrc.js (in JavaScript). Set to `false` in order to disable --- -##### `projenrcJsOptions`Optional +##### `projenrcJsOptions`Optional ```typescript public readonly projenrcJsOptions: ProjenrcOptions; @@ -5974,7 +6170,7 @@ Options for .projenrc.js. --- -##### `projenVersion`Optional +##### `projenVersion`Optional ```typescript public readonly projenVersion: string; @@ -5987,7 +6183,7 @@ Version of projen to install. --- -##### `pullRequestTemplate`Optional +##### `pullRequestTemplate`Optional ```typescript public readonly pullRequestTemplate: boolean; @@ -6000,7 +6196,7 @@ Include a GitHub pull request template. --- -##### `pullRequestTemplateContents`Optional +##### `pullRequestTemplateContents`Optional ```typescript public readonly pullRequestTemplateContents: string[]; @@ -6013,7 +6209,7 @@ The contents of the pull request template. --- -##### `release`Optional +##### `release`Optional ```typescript public readonly release: boolean; @@ -6026,7 +6222,7 @@ Add release management to this project. --- -##### `releaseToNpm`Optional +##### `releaseToNpm`Optional ```typescript public readonly releaseToNpm: boolean; @@ -6039,7 +6235,7 @@ Automatically release to npm when new versions are introduced. --- -##### ~~`releaseWorkflow`~~Optional +##### ~~`releaseWorkflow`~~Optional - *Deprecated:* see `release`. @@ -6054,7 +6250,7 @@ DEPRECATED: renamed to `release`. --- -##### `workflowBootstrapSteps`Optional +##### `workflowBootstrapSteps`Optional ```typescript public readonly workflowBootstrapSteps: JobStep[]; @@ -6067,7 +6263,7 @@ Workflow steps to use in order to bootstrap this repo. --- -##### `workflowGitIdentity`Optional +##### `workflowGitIdentity`Optional ```typescript public readonly workflowGitIdentity: GitIdentity; @@ -6080,7 +6276,7 @@ The git identity to use in workflows. --- -##### `workflowNodeVersion`Optional +##### `workflowNodeVersion`Optional ```typescript public readonly workflowNodeVersion: string; @@ -6093,7 +6289,7 @@ The node version to use in GitHub workflows. --- -##### `workflowPackageCache`Optional +##### `workflowPackageCache`Optional ```typescript public readonly workflowPackageCache: boolean; @@ -6106,7 +6302,7 @@ Enable Node.js package cache in GitHub workflows. --- -##### `disableTsconfig`Optional +##### `disableTsconfig`Optional ```typescript public readonly disableTsconfig: boolean; @@ -6119,7 +6315,7 @@ Do not generate a `tsconfig.json` file (used by jsii projects since tsconfig.jso --- -##### `disableTsconfigDev`Optional +##### `disableTsconfigDev`Optional ```typescript public readonly disableTsconfigDev: boolean; @@ -6132,7 +6328,7 @@ Do not generate a `tsconfig.dev.json` file. --- -##### `docgen`Optional +##### `docgen`Optional ```typescript public readonly docgen: boolean; @@ -6145,7 +6341,7 @@ Docgen by Typedoc. --- -##### `docsDirectory`Optional +##### `docsDirectory`Optional ```typescript public readonly docsDirectory: string; @@ -6158,7 +6354,7 @@ Docs directory. --- -##### `entrypointTypes`Optional +##### `entrypointTypes`Optional ```typescript public readonly entrypointTypes: string; @@ -6171,7 +6367,7 @@ The .d.ts file that includes the type declarations for this module. --- -##### `eslint`Optional +##### `eslint`Optional ```typescript public readonly eslint: boolean; @@ -6184,7 +6380,7 @@ Setup eslint. --- -##### `eslintOptions`Optional +##### `eslintOptions`Optional ```typescript public readonly eslintOptions: EslintOptions; @@ -6197,7 +6393,7 @@ Eslint options. --- -##### `libdir`Optional +##### `libdir`Optional ```typescript public readonly libdir: string; @@ -6210,7 +6406,7 @@ Typescript artifacts output directory. --- -##### `projenrcTs`Optional +##### `projenrcTs`Optional ```typescript public readonly projenrcTs: boolean; @@ -6223,7 +6419,7 @@ Use TypeScript for your projenrc file (`.projenrc.ts`). --- -##### `projenrcTsOptions`Optional +##### `projenrcTsOptions`Optional ```typescript public readonly projenrcTsOptions: ProjenrcOptions; @@ -6235,7 +6431,7 @@ Options for .projenrc.ts. --- -##### `sampleCode`Optional +##### `sampleCode`Optional ```typescript public readonly sampleCode: boolean; @@ -6248,7 +6444,7 @@ Generate one-time sample in `src/` and `test/` if there are no files there. --- -##### `srcdir`Optional +##### `srcdir`Optional ```typescript public readonly srcdir: string; @@ -6261,7 +6457,7 @@ Typescript sources directory. --- -##### `testdir`Optional +##### `testdir`Optional ```typescript public readonly testdir: string; @@ -6279,7 +6475,7 @@ compile the code in-memory. --- -##### `tsconfig`Optional +##### `tsconfig`Optional ```typescript public readonly tsconfig: TypescriptConfigOptions; @@ -6292,7 +6488,7 @@ Custom TSConfig. --- -##### `tsconfigDev`Optional +##### `tsconfigDev`Optional ```typescript public readonly tsconfigDev: TypescriptConfigOptions; @@ -6305,7 +6501,7 @@ Custom tsconfig options for the development tsconfig.json file (used for testing --- -##### `tsconfigDevFile`Optional +##### `tsconfigDevFile`Optional ```typescript public readonly tsconfigDevFile: string; @@ -6318,7 +6514,7 @@ The name of the development tsconfig.json file. --- -##### `typescriptVersion`Optional +##### `typescriptVersion`Optional ```typescript public readonly typescriptVersion: string; @@ -6334,7 +6530,7 @@ same minor, so we recommend using a `~` dependency (e.g. `~1.2.3`). --- -##### `additionalCompilerDependencies`Optional +##### `additionalCompilerDependencies`Optional ```typescript public readonly additionalCompilerDependencies: string[]; @@ -6349,7 +6545,7 @@ Any package that produces a published artifact should be included in this list. --- -##### `backport`Optional +##### `backport`Optional ```typescript public readonly backport: boolean; @@ -6362,7 +6558,7 @@ Configure a backport workflow. --- -##### `backportBranches`Optional +##### `backportBranches`Optional ```typescript public readonly backportBranches: string[]; @@ -6371,4085 +6567,4261 @@ public readonly backportBranches: string[]; - *Type:* string[] - *Default:* Will be derived from PR labels. -Branches to backport to. +Branches to backport to. + +--- + +##### `repoName`Optional + +```typescript +public readonly repoName: string; +``` + +- *Type:* string +- *Default:* the package name. + +The name of the repository inside the cdk8s-team org where the code of the project is locate in. + +--- + +##### `golang`Optional + +```typescript +public readonly golang: boolean; +``` + +- *Type:* boolean +- *Default:* true + +Publish Golang bindings to GitHub. + +--- + +##### `golangBranch`Optional + +```typescript +public readonly golangBranch: string; +``` + +- *Type:* string +- *Default:* 'main' + +Name of the branch in the golang repository to publish to. + +--- + +##### `jsiiVersion`Optional + +```typescript +public readonly jsiiVersion: string; +``` + +- *Type:* string +- *Default:* '1.x' + +JSII version to use. + +--- + +##### `maven`Optional + +```typescript +public readonly maven: boolean; +``` + +- *Type:* boolean +- *Default:* true + +Publish Java bindings to Maven. + +--- + +##### `nuget`Optional + +```typescript +public readonly nuget: boolean; +``` + +- *Type:* boolean +- *Default:* true + +Publish Dotnet bindings to Nuget. --- -##### `repoName`Optional +##### `pypi`Optional ```typescript -public readonly repoName: string; +public readonly pypi: boolean; ``` -- *Type:* string -- *Default:* the package name. +- *Type:* boolean +- *Default:* true -The name of the repository inside the cdk8s-team org where the code of the project is locate in. +Publish Python bindings to PyPI. --- -## Classes +### Cdk8sTeamNodeProjectOptions -### Cdk8sTeamJsiiProject +Options for `Cdk8sTeamNodeProject`. -#### Initializers +#### Initializer ```typescript -import { Cdk8sTeamJsiiProject } from '@cdk8s/projen-common' +import { Cdk8sTeamNodeProjectOptions } from '@cdk8s/projen-common' -new Cdk8sTeamJsiiProject(options: Cdk8sTeamJsiiProjectOptions) +const cdk8sTeamNodeProjectOptions: Cdk8sTeamNodeProjectOptions = { ... } ``` +#### Properties + | **Name** | **Type** | **Description** | | --- | --- | --- | -| options | Cdk8sTeamJsiiProjectOptions | *No description.* | - ---- - -##### `options`Required - -- *Type:* Cdk8sTeamJsiiProjectOptions - ---- - -#### Methods - -| **Name** | **Description** | -| --- | --- | -| addExcludeFromCleanup | Exclude the matching files from pre-synth cleanup. | -| addGitIgnore | Adds a .gitignore pattern. | -| addPackageIgnore | Exclude these files from the bundled package. | -| addTask | Adds a new task to this project. | -| addTip | Prints a "tip" message during synthesis. | -| annotateGenerated | Marks the provided file(s) as being generated. | -| postSynthesize | Called after all components are synthesized. | -| preSynthesize | Called before all components are synthesized. | -| removeTask | Removes a task from a project. | -| runTaskCommand | Returns the shell command to execute in order to run a task. | -| synth | Synthesize all project files into `outdir`. | -| tryFindFile | Finds a file at the specified relative path within this project and all its subprojects. | -| tryFindJsonFile | Finds a json file by name. | -| tryFindObjectFile | Finds an object file (like JsonFile, YamlFile, etc.) by name. | -| tryRemoveFile | Finds a file at the specified relative path within this project and removes it. | -| addBins | *No description.* | -| addBundledDeps | Defines bundled dependencies. | -| addCompileCommand | DEPRECATED. | -| addDeps | Defines normal dependencies. | -| addDevDeps | Defines development/test dependencies. | -| addFields | Directly set fields in `package.json`. | -| addKeywords | Adds keywords to package.json (deduplicated). | -| addPeerDeps | Defines peer dependencies. | -| addScripts | Replaces the contents of multiple npm package.json scripts. | -| addTestCommand | DEPRECATED. | -| hasScript | Indicates if a script by the name name is defined. | -| removeScript | Removes the npm script (always successful). | -| renderWorkflowSetup | Returns the set of workflow steps which should be executed to bootstrap a workflow. | -| setScript | Replaces the contents of an npm package.json script. | +| name | string | This is the name of your project. | +| commitGenerated | boolean | Whether to commit the managed files by default. | +| gitIgnoreOptions | projen.IgnoreFileOptions | Configuration options for .gitignore file. | +| gitOptions | projen.GitOptions | Configuration options for git. | +| logging | projen.LoggerOptions | Configure logging options such as verbosity. | +| outdir | string | The root directory of the project. | +| parent | projen.Project | The parent project, if this project is part of a bigger project. | +| projenCommand | string | The shell command to use in order to run the projen CLI. | +| projenrcJson | boolean | Generate (once) .projenrc.json (in JSON). Set to `false` in order to disable .projenrc.json generation. | +| projenrcJsonOptions | projen.ProjenrcJsonOptions | Options for .projenrc.json. | +| renovatebot | boolean | Use renovatebot to handle dependency upgrades. | +| renovatebotOptions | projen.RenovatebotOptions | Options for renovatebot. | +| autoApproveOptions | projen.github.AutoApproveOptions | Enable and configure the 'auto approve' workflow. | +| autoMerge | boolean | Enable automatic merging on GitHub. | +| autoMergeOptions | projen.github.AutoMergeOptions | Configure options for automatic merging on GitHub. | +| clobber | boolean | Add a `clobber` task which resets the repo to origin. | +| devContainer | boolean | Add a VSCode development environment (used for GitHub Codespaces). | +| github | boolean | Enable GitHub integration. | +| githubOptions | projen.github.GitHubOptions | Options for GitHub integration. | +| gitpod | boolean | Add a Gitpod development environment. | +| mergify | boolean | Whether mergify should be enabled on this repository or not. | +| mergifyOptions | projen.github.MergifyOptions | Options for mergify. | +| projectType | projen.ProjectType | Which type of project this is (library/app). | +| projenCredentials | projen.github.GithubCredentials | Choose a method of providing GitHub API access for projen workflows. | +| projenTokenSecret | string | The name of a secret which includes a GitHub Personal Access Token to be used by projen workflows. | +| readme | projen.SampleReadmeProps | The README setup. | +| stale | boolean | Auto-close of stale issues and pull request. | +| staleOptions | projen.github.StaleOptions | Auto-close stale issues and pull requests. | +| vscode | boolean | Enable VSCode integration. | +| allowLibraryDependencies | boolean | Allow the project to include `peerDependencies` and `bundledDependencies`. | +| authorEmail | string | Author's e-mail. | +| authorName | string | Author's name. | +| authorOrganization | boolean | Is the author an organization. | +| authorUrl | string | Author's URL / Website. | +| autoDetectBin | boolean | Automatically add all executables under the `bin` directory to your `package.json` file under the `bin` section. | +| bin | {[ key: string ]: string} | Binary programs vended with your module. | +| bugsEmail | string | The email address to which issues should be reported. | +| bugsUrl | string | The url to your project's issue tracker. | +| bundledDeps | string[] | List of dependencies to bundle into this module. | +| codeArtifactOptions | projen.javascript.CodeArtifactOptions | Options for npm packages using AWS CodeArtifact. | +| deps | string[] | Runtime dependencies of this module. | +| description | string | The description is just a string that helps people understand the purpose of the package. | +| devDeps | string[] | Build dependencies for this module. | +| entrypoint | string | Module entrypoint (`main` in `package.json`). | +| homepage | string | Package's Homepage / Website. | +| keywords | string[] | Keywords to include in `package.json`. | +| license | string | License's SPDX identifier. | +| licensed | boolean | Indicates if a license should be added. | +| maxNodeVersion | string | Minimum node.js version to require via `engines` (inclusive). | +| minNodeVersion | string | Minimum Node.js version to require via package.json `engines` (inclusive). | +| npmAccess | projen.javascript.NpmAccess | Access level of the npm package. | +| npmRegistry | string | The host name of the npm registry to publish to. | +| npmRegistryUrl | string | The base URL of the npm package registry. | +| npmTokenSecret | string | GitHub secret which contains the NPM token to use when publishing packages. | +| packageManager | projen.javascript.NodePackageManager | The Node Package Manager used to execute scripts. | +| packageName | string | The "name" in package.json. | +| peerDependencyOptions | projen.javascript.PeerDependencyOptions | Options for `peerDeps`. | +| peerDeps | string[] | Peer dependencies for this module. | +| pnpmVersion | string | The version of PNPM to use if using PNPM as a package manager. | +| repository | string | The repository is the location where the actual code for your package lives. | +| repositoryDirectory | string | If the package.json for your package is not in the root directory (for example if it is part of a monorepo), you can specify the directory in which it lives. | +| scopedPackagesOptions | projen.javascript.ScopedPackagesOptions[] | Options for privately hosted scoped packages. | +| scripts | {[ key: string ]: string} | npm scripts to include. | +| stability | string | Package's Stability. | +| yarnBerryOptions | projen.javascript.YarnBerryOptions | Options for Yarn Berry. | +| jsiiReleaseVersion | string | Version requirement of `publib` which is used to publish modules to npm. | +| majorVersion | number | Major version to release from the default branch. | +| minMajorVersion | number | Minimal Major version to release. | +| npmDistTag | string | The npmDistTag to use when publishing from the default branch. | +| postBuildSteps | projen.github.workflows.JobStep[] | Steps to execute after build as part of the release workflow. | +| prerelease | string | Bump versions from the default branch as pre-releases (e.g. "beta", "alpha", "pre"). | +| publishDryRun | boolean | Instead of actually publishing to package managers, just print the publishing command. | +| publishTasks | boolean | Define publishing tasks that can be executed manually as well as workflows. | +| releasableCommits | projen.ReleasableCommits | Find commits that should be considered releasable Used to decide if a release is required. | +| releaseBranches | {[ key: string ]: projen.release.BranchOptions} | Defines additional release branches. | +| releaseEveryCommit | boolean | Automatically release new versions every commit to one of branches in `releaseBranches`. | +| releaseFailureIssue | boolean | Create a github issue on every failed publishing task. | +| releaseFailureIssueLabel | string | The label to apply to issues indicating publish failures. | +| releaseSchedule | string | CRON schedule to trigger new releases. | +| releaseTagPrefix | string | Automatically add the given prefix to release tags. Useful if you are releasing on multiple branches with overlapping version numbers. | +| releaseTrigger | projen.release.ReleaseTrigger | The release trigger to use. | +| releaseWorkflowName | string | The name of the default release workflow. | +| releaseWorkflowSetupSteps | projen.github.workflows.JobStep[] | A set of workflow steps to execute in order to setup the workflow container. | +| versionrcOptions | {[ key: string ]: any} | Custom configuration used when creating changelog with standard-version package. | +| workflowContainerImage | string | Container image to use for GitHub workflows. | +| workflowRunsOn | string[] | Github Runner selection labels. | +| workflowRunsOnGroup | projen.GroupRunnerOptions | Github Runner Group selection options. | +| defaultReleaseBranch | string | The name of the main release branch. | +| artifactsDirectory | string | A directory which will contain build artifacts. | +| autoApproveUpgrades | boolean | Automatically approve deps upgrade PRs, allowing them to be merged by mergify (if configued). | +| buildWorkflow | boolean | Define a GitHub workflow for building PRs. | +| buildWorkflowTriggers | projen.github.workflows.Triggers | Build workflow triggers. | +| bundlerOptions | projen.javascript.BundlerOptions | Options for `Bundler`. | +| codeCov | boolean | Define a GitHub workflow step for sending code coverage metrics to https://codecov.io/ Uses codecov/codecov-action@v3 A secret is required for private repos. Configured with `@codeCovTokenSecret`. | +| codeCovTokenSecret | string | Define the secret name for a specified https://codecov.io/ token A secret is required to send coverage for private repositories. | +| copyrightOwner | string | License copyright owner. | +| copyrightPeriod | string | The copyright years to put in the LICENSE file. | +| dependabot | boolean | Use dependabot to handle dependency upgrades. | +| dependabotOptions | projen.github.DependabotOptions | Options for dependabot. | +| depsUpgrade | boolean | Use tasks and github workflows to handle dependency upgrades. | +| depsUpgradeOptions | projen.javascript.UpgradeDependenciesOptions | Options for `UpgradeDependencies`. | +| gitignore | string[] | Additional entries to .gitignore. | +| jest | boolean | Setup jest unit tests. | +| jestOptions | projen.javascript.JestOptions | Jest options. | +| mutableBuild | boolean | Automatically update files modified during builds to pull-request branches. | +| npmignore | string[] | Additional entries to .npmignore. | +| npmignoreEnabled | boolean | Defines an .npmignore file. Normally this is only needed for libraries that are packaged as tarballs. | +| npmIgnoreOptions | projen.IgnoreFileOptions | Configuration options for .npmignore file. | +| package | boolean | Defines a `package` task that will produce an npm tarball under the artifacts directory (e.g. `dist`). | +| prettier | boolean | Setup prettier. | +| prettierOptions | projen.javascript.PrettierOptions | Prettier options. | +| projenDevDependency | boolean | Indicates of "projen" should be installed as a devDependency. | +| projenrcJs | boolean | Generate (once) .projenrc.js (in JavaScript). Set to `false` in order to disable .projenrc.js generation. | +| projenrcJsOptions | projen.javascript.ProjenrcOptions | Options for .projenrc.js. | +| projenVersion | string | Version of projen to install. | +| pullRequestTemplate | boolean | Include a GitHub pull request template. | +| pullRequestTemplateContents | string[] | The contents of the pull request template. | +| release | boolean | Add release management to this project. | +| releaseToNpm | boolean | Automatically release to npm when new versions are introduced. | +| releaseWorkflow | boolean | DEPRECATED: renamed to `release`. | +| workflowBootstrapSteps | projen.github.workflows.JobStep[] | Workflow steps to use in order to bootstrap this repo. | +| workflowGitIdentity | projen.github.GitIdentity | The git identity to use in workflows. | +| workflowNodeVersion | string | The node version to use in GitHub workflows. | +| workflowPackageCache | boolean | Enable Node.js package cache in GitHub workflows. | +| backport | boolean | Configure a backport workflow. | +| backportBranches | string[] | Branches to backport to. | +| repoName | string | The name of the repository inside the cdk8s-team org where the code of the project is locate in. | --- -##### `addExcludeFromCleanup` +##### `name`Required ```typescript -public addExcludeFromCleanup(globs: string): void +public readonly name: string; ``` -Exclude the matching files from pre-synth cleanup. - -Can be used when, for example, some -source files include the projen marker and we don't want them to be erased during synth. - -###### `globs`Required - - *Type:* string +- *Default:* $BASEDIR -The glob patterns to match. +This is the name of your project. --- -##### `addGitIgnore` +##### `commitGenerated`Optional ```typescript -public addGitIgnore(pattern: string): void +public readonly commitGenerated: boolean; ``` -Adds a .gitignore pattern. - -###### `pattern`Required - -- *Type:* string +- *Type:* boolean +- *Default:* true -The glob pattern to ignore. +Whether to commit the managed files by default. --- -##### `addPackageIgnore` +##### `gitIgnoreOptions`Optional ```typescript -public addPackageIgnore(pattern: string): void +public readonly gitIgnoreOptions: IgnoreFileOptions; ``` -Exclude these files from the bundled package. - -Implemented by project types based on the -packaging mechanism. For example, `NodeProject` delegates this to `.npmignore`. - -###### `pattern`Required +- *Type:* projen.IgnoreFileOptions -- *Type:* string +Configuration options for .gitignore file. --- -##### `addTask` +##### `gitOptions`Optional ```typescript -public addTask(name: string, props?: TaskOptions): Task +public readonly gitOptions: GitOptions; ``` -Adds a new task to this project. - -This will fail if the project already has -a task with this name. - -###### `name`Required - -- *Type:* string +- *Type:* projen.GitOptions -The task name to add. +Configuration options for git. --- -###### `props`Optional +##### `logging`Optional -- *Type:* projen.TaskOptions +```typescript +public readonly logging: LoggerOptions; +``` -Task properties. +- *Type:* projen.LoggerOptions +- *Default:* {} + +Configure logging options such as verbosity. --- -##### ~~`addTip`~~ +##### `outdir`Optional ```typescript -public addTip(message: string): void +public readonly outdir: string; ``` -Prints a "tip" message during synthesis. +- *Type:* string +- *Default:* "." -###### `message`Required +The root directory of the project. -- *Type:* string +Relative to this directory, all files are synthesized. -The message. +If this project has a parent, this directory is relative to the parent +directory and it cannot be the same as the parent or any of it's other +subprojects. --- -##### `annotateGenerated` +##### `parent`Optional ```typescript -public annotateGenerated(glob: string): void +public readonly parent: Project; ``` -Marks the provided file(s) as being generated. +- *Type:* projen.Project -This is achieved using the -github-linguist attributes. Generated files do not count against the -repository statistics and language breakdown. +The parent project, if this project is part of a bigger project. -> [https://github.com/github/linguist/blob/master/docs/overrides.md](https://github.com/github/linguist/blob/master/docs/overrides.md) +--- -###### `glob`Required +##### `projenCommand`Optional + +```typescript +public readonly projenCommand: string; +``` - *Type:* string +- *Default:* "npx projen" -the glob pattern to match (could be a file path). +The shell command to use in order to run the projen CLI. + +Can be used to customize in special environments. --- -##### `postSynthesize` +##### `projenrcJson`Optional ```typescript -public postSynthesize(): void +public readonly projenrcJson: boolean; ``` -Called after all components are synthesized. +- *Type:* boolean +- *Default:* false -Order is *not* guaranteed. +Generate (once) .projenrc.json (in JSON). Set to `false` in order to disable .projenrc.json generation. -##### `preSynthesize` +--- + +##### `projenrcJsonOptions`Optional ```typescript -public preSynthesize(): void +public readonly projenrcJsonOptions: ProjenrcJsonOptions; ``` -Called before all components are synthesized. +- *Type:* projen.ProjenrcJsonOptions +- *Default:* default options -##### `removeTask` +Options for .projenrc.json. -```typescript -public removeTask(name: string): Task -``` +--- -Removes a task from a project. +##### `renovatebot`Optional -###### `name`Required +```typescript +public readonly renovatebot: boolean; +``` -- *Type:* string +- *Type:* boolean +- *Default:* false -The name of the task to remove. +Use renovatebot to handle dependency upgrades. --- -##### `runTaskCommand` +##### `renovatebotOptions`Optional ```typescript -public runTaskCommand(task: Task): string +public readonly renovatebotOptions: RenovatebotOptions; ``` -Returns the shell command to execute in order to run a task. - -This will -typically be `npx projen TASK`. - -###### `task`Required - -- *Type:* projen.Task +- *Type:* projen.RenovatebotOptions +- *Default:* default options -The task for which the command is required. +Options for renovatebot. --- -##### `synth` +##### `autoApproveOptions`Optional ```typescript -public synth(): void +public readonly autoApproveOptions: AutoApproveOptions; ``` -Synthesize all project files into `outdir`. +- *Type:* projen.github.AutoApproveOptions +- *Default:* auto approve is disabled -1. Call "this.preSynthesize()" -2. Delete all generated files -3. Synthesize all sub-projects -4. Synthesize all components of this project -5. Call "postSynthesize()" for all components of this project -6. Call "this.postSynthesize()" +Enable and configure the 'auto approve' workflow. -##### `tryFindFile` +--- + +##### `autoMerge`Optional ```typescript -public tryFindFile(filePath: string): FileBase +public readonly autoMerge: boolean; ``` -Finds a file at the specified relative path within this project and all its subprojects. - -###### `filePath`Required - -- *Type:* string +- *Type:* boolean +- *Default:* true -The file path. +Enable automatic merging on GitHub. -If this path is relative, it will be resolved -from the root of _this_ project. +Has no effect if `github.mergify` +is set to false. --- -##### ~~`tryFindJsonFile`~~ +##### `autoMergeOptions`Optional ```typescript -public tryFindJsonFile(filePath: string): JsonFile +public readonly autoMergeOptions: AutoMergeOptions; ``` -Finds a json file by name. - -###### `filePath`Required +- *Type:* projen.github.AutoMergeOptions +- *Default:* see defaults in `AutoMergeOptions` -- *Type:* string +Configure options for automatic merging on GitHub. -The file path. +Has no effect if +`github.mergify` or `autoMerge` is set to false. --- -##### `tryFindObjectFile` +##### `clobber`Optional ```typescript -public tryFindObjectFile(filePath: string): ObjectFile +public readonly clobber: boolean; ``` -Finds an object file (like JsonFile, YamlFile, etc.) by name. - -###### `filePath`Required - -- *Type:* string +- *Type:* boolean +- *Default:* true, but false for subprojects -The file path. +Add a `clobber` task which resets the repo to origin. --- -##### `tryRemoveFile` +##### `devContainer`Optional ```typescript -public tryRemoveFile(filePath: string): FileBase +public readonly devContainer: boolean; ``` -Finds a file at the specified relative path within this project and removes it. - -###### `filePath`Required - -- *Type:* string - -The file path. +- *Type:* boolean +- *Default:* false -If this path is relative, it will be -resolved from the root of _this_ project. +Add a VSCode development environment (used for GitHub Codespaces). --- -##### `addBins` +##### `github`Optional ```typescript -public addBins(bins: {[ key: string ]: string}): void +public readonly github: boolean; ``` -###### `bins`Required +- *Type:* boolean +- *Default:* true -- *Type:* {[ key: string ]: string} +Enable GitHub integration. + +Enabled by default for root projects. Disabled for non-root projects. --- -##### `addBundledDeps` +##### `githubOptions`Optional ```typescript -public addBundledDeps(deps: string): void +public readonly githubOptions: GitHubOptions; ``` -Defines bundled dependencies. +- *Type:* projen.github.GitHubOptions +- *Default:* see GitHubOptions -Bundled dependencies will be added as normal dependencies as well as to the -`bundledDependencies` section of your `package.json`. +Options for GitHub integration. -###### `deps`Required +--- -- *Type:* string +##### `gitpod`Optional -Names modules to install. +```typescript +public readonly gitpod: boolean; +``` -By default, the the dependency will -be installed in the next `npx projen` run and the version will be recorded -in your `package.json` file. You can upgrade manually or using `yarn -add/upgrade`. If you wish to specify a version range use this syntax: -`module@^7`. +- *Type:* boolean +- *Default:* false + +Add a Gitpod development environment. --- -##### ~~`addCompileCommand`~~ +##### ~~`mergify`~~Optional + +- *Deprecated:* use `githubOptions.mergify` instead ```typescript -public addCompileCommand(commands: string): void +public readonly mergify: boolean; ``` -DEPRECATED. - -###### `commands`Required +- *Type:* boolean +- *Default:* true -- *Type:* string +Whether mergify should be enabled on this repository or not. --- -##### `addDeps` +##### ~~`mergifyOptions`~~Optional + +- *Deprecated:* use `githubOptions.mergifyOptions` instead ```typescript -public addDeps(deps: string): void +public readonly mergifyOptions: MergifyOptions; ``` -Defines normal dependencies. - -###### `deps`Required - -- *Type:* string - -Names modules to install. +- *Type:* projen.github.MergifyOptions +- *Default:* default options -By default, the the dependency will -be installed in the next `npx projen` run and the version will be recorded -in your `package.json` file. You can upgrade manually or using `yarn -add/upgrade`. If you wish to specify a version range use this syntax: -`module@^7`. +Options for mergify. --- -##### `addDevDeps` +##### ~~`projectType`~~Optional + +- *Deprecated:* no longer supported at the base project level ```typescript -public addDevDeps(deps: string): void +public readonly projectType: ProjectType; ``` -Defines development/test dependencies. +- *Type:* projen.ProjectType +- *Default:* ProjectType.UNKNOWN -###### `deps`Required +Which type of project this is (library/app). -- *Type:* string +--- -Names modules to install. +##### `projenCredentials`Optional + +```typescript +public readonly projenCredentials: GithubCredentials; +``` + +- *Type:* projen.github.GithubCredentials +- *Default:* use a personal access token named PROJEN_GITHUB_TOKEN -By default, the the dependency will -be installed in the next `npx projen` run and the version will be recorded -in your `package.json` file. You can upgrade manually or using `yarn -add/upgrade`. If you wish to specify a version range use this syntax: -`module@^7`. +Choose a method of providing GitHub API access for projen workflows. --- -##### `addFields` +##### ~~`projenTokenSecret`~~Optional + +- *Deprecated:* use `projenCredentials` ```typescript -public addFields(fields: {[ key: string ]: any}): void +public readonly projenTokenSecret: string; ``` -Directly set fields in `package.json`. - -###### `fields`Required +- *Type:* string +- *Default:* "PROJEN_GITHUB_TOKEN" -- *Type:* {[ key: string ]: any} +The name of a secret which includes a GitHub Personal Access Token to be used by projen workflows. -The fields to set. +This token needs to have the `repo`, `workflows` +and `packages` scope. --- -##### `addKeywords` +##### `readme`Optional ```typescript -public addKeywords(keywords: string): void +public readonly readme: SampleReadmeProps; ``` -Adds keywords to package.json (deduplicated). - -###### `keywords`Required - -- *Type:* string +- *Type:* projen.SampleReadmeProps +- *Default:* { filename: 'README.md', contents: '# replace this' } -The keywords to add. +The README setup. --- -##### `addPeerDeps` +*Example* ```typescript -public addPeerDeps(deps: string): void +"{ filename: 'readme.md', contents: '# title' }" ``` -Defines peer dependencies. -When adding peer dependencies, a devDependency will also be added on the -pinned version of the declared peer. This will ensure that you are testing -your code against the minimum version required from your consumers. +##### `stale`Optional -###### `deps`Required +```typescript +public readonly stale: boolean; +``` -- *Type:* string +- *Type:* boolean +- *Default:* false -Names modules to install. +Auto-close of stale issues and pull request. -By default, the the dependency will -be installed in the next `npx projen` run and the version will be recorded -in your `package.json` file. You can upgrade manually or using `yarn -add/upgrade`. If you wish to specify a version range use this syntax: -`module@^7`. +See `staleOptions` for options. --- -##### `addScripts` +##### `staleOptions`Optional ```typescript -public addScripts(scripts: {[ key: string ]: string}): void +public readonly staleOptions: StaleOptions; ``` -Replaces the contents of multiple npm package.json scripts. - -###### `scripts`Required +- *Type:* projen.github.StaleOptions +- *Default:* see defaults in `StaleOptions` -- *Type:* {[ key: string ]: string} +Auto-close stale issues and pull requests. -The scripts to set. +To disable set `stale` to `false`. --- -##### ~~`addTestCommand`~~ +##### `vscode`Optional ```typescript -public addTestCommand(commands: string): void +public readonly vscode: boolean; ``` -DEPRECATED. +- *Type:* boolean +- *Default:* true -###### `commands`Required +Enable VSCode integration. -- *Type:* string +Enabled by default for root projects. Disabled for non-root projects. --- -##### ~~`hasScript`~~ +##### `allowLibraryDependencies`Optional ```typescript -public hasScript(name: string): boolean +public readonly allowLibraryDependencies: boolean; ``` -Indicates if a script by the name name is defined. - -###### `name`Required +- *Type:* boolean +- *Default:* true -- *Type:* string +Allow the project to include `peerDependencies` and `bundledDependencies`. -The name of the script. +This is normally only allowed for libraries. For apps, there's no meaning +for specifying these. --- -##### `removeScript` +##### `authorEmail`Optional ```typescript -public removeScript(name: string): void +public readonly authorEmail: string; ``` -Removes the npm script (always successful). - -###### `name`Required - - *Type:* string -The name of the script. +Author's e-mail. --- -##### `renderWorkflowSetup` +##### `authorName`Optional ```typescript -public renderWorkflowSetup(options?: RenderWorkflowSetupOptions): JobStep[] +public readonly authorName: string; ``` -Returns the set of workflow steps which should be executed to bootstrap a workflow. - -###### `options`Optional - -- *Type:* projen.javascript.RenderWorkflowSetupOptions +- *Type:* string -Options. +Author's name. --- -##### `setScript` +##### `authorOrganization`Optional ```typescript -public setScript(name: string, command: string): void +public readonly authorOrganization: boolean; ``` -Replaces the contents of an npm package.json script. - -###### `name`Required - -- *Type:* string +- *Type:* boolean -The script name. +Is the author an organization. --- -###### `command`Required +##### `authorUrl`Optional + +```typescript +public readonly authorUrl: string; +``` - *Type:* string -The command to execute. +Author's URL / Website. --- +##### `autoDetectBin`Optional -#### Properties +```typescript +public readonly autoDetectBin: boolean; +``` -| **Name** | **Type** | **Description** | -| --- | --- | --- | -| buildTask | projen.Task | *No description.* | -| commitGenerated | boolean | Whether to commit the managed files by default. | -| compileTask | projen.Task | *No description.* | -| components | projen.Component[] | Returns all the components within this project. | -| deps | projen.Dependencies | Project dependencies. | -| ejected | boolean | Whether or not the project is being ejected. | -| files | projen.FileBase[] | All files in this project. | -| gitattributes | projen.GitAttributesFile | The .gitattributes file for this repository. | -| gitignore | projen.IgnoreFile | .gitignore. | -| logger | projen.Logger | Logging utilities. | -| name | string | Project name. | -| outdir | string | Absolute output directory of this project. | -| packageTask | projen.Task | *No description.* | -| postCompileTask | projen.Task | *No description.* | -| preCompileTask | projen.Task | *No description.* | -| projectBuild | projen.ProjectBuild | Manages the build process of the project. | -| projenCommand | string | The command to use in order to run the projen CLI. | -| root | projen.Project | The root project. | -| subprojects | projen.Project[] | Returns all the subprojects within this project. | -| tasks | projen.Tasks | Project tasks. | -| testTask | projen.Task | *No description.* | -| defaultTask | projen.Task | This is the "default" task, the one that executes "projen". | -| initProject | projen.InitProject | The options used when this project is bootstrapped via `projen new`. | -| parent | projen.Project | A parent project. | -| projectType | projen.ProjectType | *No description.* | -| autoApprove | projen.github.AutoApprove | Auto approve set up for this project. | -| devContainer | projen.vscode.DevContainer | Access for .devcontainer.json (used for GitHub Codespaces). | -| github | projen.github.GitHub | Access all github components. | -| gitpod | projen.Gitpod | Access for Gitpod. | -| vscode | projen.vscode.VsCode | Access all VSCode components. | -| allowLibraryDependencies | boolean | *No description.* | -| artifactsDirectory | string | The build output directory. | -| artifactsJavascriptDirectory | string | The location of the npm tarball after build (`${artifactsDirectory}/js`). | -| bundler | projen.javascript.Bundler | *No description.* | -| entrypoint | string | *No description.* | -| manifest | any | *No description.* | -| npmrc | projen.javascript.NpmConfig | The .npmrc file. | -| package | projen.javascript.NodePackage | API for managing the node package. | -| packageManager | projen.javascript.NodePackageManager | The package manager to use. | -| runScriptCommand | string | The command to use to run scripts (e.g. `yarn run` or `npm run` depends on the package manager). | -| autoMerge | projen.github.AutoMerge | Component that sets up mergify for merging approved pull requests. | -| buildWorkflow | projen.build.BuildWorkflow | The PR build GitHub workflow. | -| buildWorkflowJobId | string | The job ID of the build workflow. | -| jest | projen.javascript.Jest | The Jest configuration (if enabled). | -| maxNodeVersion | string | Maximum node version required by this package. | -| minNodeVersion | string | Minimum node.js version required by this package. | -| npmignore | projen.IgnoreFile | The .npmignore file. | -| prettier | projen.javascript.Prettier | *No description.* | -| publisher | projen.release.Publisher | Package publisher. | -| release | projen.release.Release | Release management. | -| upgradeWorkflow | projen.javascript.UpgradeDependencies | The upgrade workflow. | -| docsDirectory | string | *No description.* | -| libdir | string | The directory in which compiled .js files reside. | -| srcdir | string | The directory in which the .ts sources reside. | -| testdir | string | The directory in which tests reside. | -| tsconfigDev | projen.javascript.TypescriptConfig | A typescript configuration file which covers all files (sources, tests, projen). | -| watchTask | projen.Task | The "watch" task. | -| docgen | boolean | *No description.* | -| eslint | projen.javascript.Eslint | *No description.* | -| tsconfig | projen.javascript.TypescriptConfig | *No description.* | -| tsconfigEslint | projen.javascript.TypescriptConfig | *No description.* | +- *Type:* boolean +- *Default:* true + +Automatically add all executables under the `bin` directory to your `package.json` file under the `bin` section. --- -##### `buildTask`Required +##### `bin`Optional ```typescript -public readonly buildTask: Task; +public readonly bin: {[ key: string ]: string}; ``` -- *Type:* projen.Task +- *Type:* {[ key: string ]: string} + +Binary programs vended with your module. + +You can use this option to add/customize how binaries are represented in +your `package.json`, but unless `autoDetectBin` is `false`, every +executable file under `bin` will automatically be added to this section. --- -##### `commitGenerated`Required +##### `bugsEmail`Optional ```typescript -public readonly commitGenerated: boolean; +public readonly bugsEmail: string; ``` -- *Type:* boolean +- *Type:* string -Whether to commit the managed files by default. +The email address to which issues should be reported. --- -##### `compileTask`Required +##### `bugsUrl`Optional ```typescript -public readonly compileTask: Task; +public readonly bugsUrl: string; ``` -- *Type:* projen.Task +- *Type:* string + +The url to your project's issue tracker. --- -##### `components`Required +##### `bundledDeps`Optional ```typescript -public readonly components: Component[]; +public readonly bundledDeps: string[]; ``` -- *Type:* projen.Component[] +- *Type:* string[] -Returns all the components within this project. +List of dependencies to bundle into this module. + +These modules will be +added both to the `dependencies` section and `bundledDependencies` 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. --- -##### `deps`Required +##### `codeArtifactOptions`Optional ```typescript -public readonly deps: Dependencies; +public readonly codeArtifactOptions: CodeArtifactOptions; ``` -- *Type:* projen.Dependencies +- *Type:* projen.javascript.CodeArtifactOptions +- *Default:* undefined -Project dependencies. +Options for npm packages using AWS CodeArtifact. + +This is required if publishing packages to, or installing scoped packages from AWS CodeArtifact --- -##### `ejected`Required +##### `deps`Optional ```typescript -public readonly ejected: boolean; +public readonly deps: string[]; ``` -- *Type:* boolean +- *Type:* string[] +- *Default:* [] -Whether or not the project is being ejected. +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. --- -##### `files`Required +*Example* ```typescript -public readonly files: FileBase[]; +[ 'express', 'lodash', 'foo@^2' ] ``` -- *Type:* projen.FileBase[] - -All files in this project. - ---- -##### `gitattributes`Required +##### `description`Optional ```typescript -public readonly gitattributes: GitAttributesFile; +public readonly description: string; ``` -- *Type:* projen.GitAttributesFile +- *Type:* string -The .gitattributes file for this repository. +The description is just a string that helps people understand the purpose of the package. + +It can be used when searching for packages in a package manager as well. +See https://classic.yarnpkg.com/en/docs/package-json/#toc-description --- -##### `gitignore`Required +##### `devDeps`Optional ```typescript -public readonly gitignore: IgnoreFile; +public readonly devDeps: string[]; ``` -- *Type:* projen.IgnoreFile +- *Type:* string[] +- *Default:* [] -.gitignore. +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. --- -##### `logger`Required +*Example* ```typescript -public readonly logger: Logger; +[ 'typescript', '@types/express' ] ``` -- *Type:* projen.Logger - -Logging utilities. - ---- -##### `name`Required +##### `entrypoint`Optional ```typescript -public readonly name: string; +public readonly entrypoint: string; ``` - *Type:* string +- *Default:* "lib/index.js" -Project name. +Module entrypoint (`main` in `package.json`). + +Set to an empty string to not include `main` in your package.json --- -##### `outdir`Required +##### `homepage`Optional ```typescript -public readonly outdir: string; +public readonly homepage: string; ``` - *Type:* string -Absolute output directory of this project. +Package's Homepage / Website. --- -##### `packageTask`Required +##### `keywords`Optional ```typescript -public readonly packageTask: Task; +public readonly keywords: string[]; ``` -- *Type:* projen.Task +- *Type:* string[] + +Keywords to include in `package.json`. --- -##### `postCompileTask`Required +##### `license`Optional ```typescript -public readonly postCompileTask: Task; +public readonly license: string; ``` -- *Type:* projen.Task - ---- - -##### `preCompileTask`Required +- *Type:* string +- *Default:* "Apache-2.0" -```typescript -public readonly preCompileTask: Task; -``` +License's SPDX identifier. -- *Type:* projen.Task +See https://github.com/projen/projen/tree/main/license-text for a list of supported licenses. +Use the `licensed` option if you want to no license to be specified. --- -##### `projectBuild`Required +##### `licensed`Optional ```typescript -public readonly projectBuild: ProjectBuild; +public readonly licensed: boolean; ``` -- *Type:* projen.ProjectBuild +- *Type:* boolean +- *Default:* true -Manages the build process of the project. +Indicates if a license should be added. --- -##### `projenCommand`Required +##### `maxNodeVersion`Optional ```typescript -public readonly projenCommand: string; +public readonly maxNodeVersion: string; ``` - *Type:* string +- *Default:* no max -The command to use in order to run the projen CLI. +Minimum node.js version to require via `engines` (inclusive). --- -##### `root`Required +##### `minNodeVersion`Optional ```typescript -public readonly root: Project; +public readonly minNodeVersion: string; ``` -- *Type:* projen.Project +- *Type:* string +- *Default:* no "engines" specified -The root project. +Minimum Node.js version to require via package.json `engines` (inclusive). --- -##### `subprojects`Required +##### `npmAccess`Optional ```typescript -public readonly subprojects: Project[]; +public readonly npmAccess: NpmAccess; ``` -- *Type:* projen.Project[] +- *Type:* projen.javascript.NpmAccess +- *Default:* for scoped packages (e.g. `foo@bar`), the default is `NpmAccess.RESTRICTED`, for non-scoped packages, the default is `NpmAccess.PUBLIC`. -Returns all the subprojects within this project. +Access level of the npm package. --- -##### `tasks`Required +##### ~~`npmRegistry`~~Optional + +- *Deprecated:* use `npmRegistryUrl` instead ```typescript -public readonly tasks: Tasks; +public readonly npmRegistry: string; ``` -- *Type:* projen.Tasks - -Project tasks. - ---- - -##### `testTask`Required +- *Type:* string -```typescript -public readonly testTask: Task; -``` +The host name of the npm registry to publish to. -- *Type:* projen.Task +Cannot be set together with `npmRegistryUrl`. --- -##### `defaultTask`Optional +##### `npmRegistryUrl`Optional ```typescript -public readonly defaultTask: Task; +public readonly npmRegistryUrl: string; ``` -- *Type:* projen.Task +- *Type:* string +- *Default:* "https://registry.npmjs.org" -This is the "default" task, the one that executes "projen". +The base URL of the npm package registry. -Undefined if -the project is being ejected. +Must be a URL (e.g. start with "https://" or "http://") --- -##### `initProject`Optional +##### `npmTokenSecret`Optional ```typescript -public readonly initProject: InitProject; +public readonly npmTokenSecret: string; ``` -- *Type:* projen.InitProject - -The options used when this project is bootstrapped via `projen new`. +- *Type:* string +- *Default:* "NPM_TOKEN" -It -includes the original set of options passed to the CLI and also the JSII -FQN of the project type. +GitHub secret which contains the NPM token to use when publishing packages. --- -##### `parent`Optional +##### `packageManager`Optional ```typescript -public readonly parent: Project; +public readonly packageManager: NodePackageManager; ``` -- *Type:* projen.Project - -A parent project. +- *Type:* projen.javascript.NodePackageManager +- *Default:* NodePackageManager.YARN_CLASSIC -If undefined, this is the root project. +The Node Package Manager used to execute scripts. --- -##### `projectType`Required +##### `packageName`Optional ```typescript -public readonly projectType: ProjectType; +public readonly packageName: string; ``` -- *Type:* projen.ProjectType +- *Type:* string +- *Default:* defaults to project name + +The "name" in package.json. --- -##### `autoApprove`Optional +##### `peerDependencyOptions`Optional ```typescript -public readonly autoApprove: AutoApprove; +public readonly peerDependencyOptions: PeerDependencyOptions; ``` -- *Type:* projen.github.AutoApprove +- *Type:* projen.javascript.PeerDependencyOptions -Auto approve set up for this project. +Options for `peerDeps`. --- -##### `devContainer`Optional +##### `peerDeps`Optional ```typescript -public readonly devContainer: DevContainer; +public readonly peerDeps: string[]; ``` -- *Type:* projen.vscode.DevContainer +- *Type:* string[] +- *Default:* [] -Access for .devcontainer.json (used for GitHub Codespaces). +Peer dependencies for this module. -This will be `undefined` if devContainer boolean is false +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. --- -##### `github`Optional +##### `pnpmVersion`Optional ```typescript -public readonly github: GitHub; -``` - -- *Type:* projen.github.GitHub +public readonly pnpmVersion: string; +``` -Access all github components. +- *Type:* string +- *Default:* "7" -This will be `undefined` for subprojects. +The version of PNPM to use if using PNPM as a package manager. --- -##### `gitpod`Optional +##### `repository`Optional ```typescript -public readonly gitpod: Gitpod; +public readonly repository: string; ``` -- *Type:* projen.Gitpod +- *Type:* string -Access for Gitpod. +The repository is the location where the actual code for your package lives. -This will be `undefined` if gitpod boolean is false +See https://classic.yarnpkg.com/en/docs/package-json/#toc-repository --- -##### `vscode`Optional +##### `repositoryDirectory`Optional ```typescript -public readonly vscode: VsCode; +public readonly repositoryDirectory: string; ``` -- *Type:* projen.vscode.VsCode - -Access all VSCode components. +- *Type:* string -This will be `undefined` for subprojects. +If the package.json for your package is not in the root directory (for example if it is part of a monorepo), you can specify the directory in which it lives. --- -##### ~~`allowLibraryDependencies`~~Required - -- *Deprecated:* use `package.allowLibraryDependencies` +##### `scopedPackagesOptions`Optional ```typescript -public readonly allowLibraryDependencies: boolean; +public readonly scopedPackagesOptions: ScopedPackagesOptions[]; ``` -- *Type:* boolean +- *Type:* projen.javascript.ScopedPackagesOptions[] +- *Default:* fetch all scoped packages from the public npm registry + +Options for privately hosted scoped packages. --- -##### `artifactsDirectory`Required +##### ~~`scripts`~~Optional + +- *Deprecated:* use `project.addTask()` or `package.setScript()` ```typescript -public readonly artifactsDirectory: string; +public readonly scripts: {[ key: string ]: string}; ``` -- *Type:* string +- *Type:* {[ key: string ]: string} +- *Default:* {} -The build output directory. +npm scripts to include. -An npm tarball will be created under the `js` -subdirectory. For example, if this is set to `dist` (the default), the npm -tarball will be placed under `dist/js/boom-boom-1.2.3.tg`. +If a script has the same name as a standard script, +the standard script will be overwritten. +Also adds the script as a task. --- -##### `artifactsJavascriptDirectory`Required +##### `stability`Optional ```typescript -public readonly artifactsJavascriptDirectory: string; +public readonly stability: string; ``` - *Type:* string -The location of the npm tarball after build (`${artifactsDirectory}/js`). +Package's Stability. --- -##### `bundler`Required +##### `yarnBerryOptions`Optional ```typescript -public readonly bundler: Bundler; +public readonly yarnBerryOptions: YarnBerryOptions; ``` -- *Type:* projen.javascript.Bundler +- *Type:* projen.javascript.YarnBerryOptions +- *Default:* Yarn Berry v4 with all default options ---- +Options for Yarn Berry. -##### ~~`entrypoint`~~Required +--- -- *Deprecated:* use `package.entrypoint` +##### `jsiiReleaseVersion`Optional ```typescript -public readonly entrypoint: string; +public readonly jsiiReleaseVersion: string; ``` - *Type:* string +- *Default:* "latest" ---- +Version requirement of `publib` which is used to publish modules to npm. -##### ~~`manifest`~~Required +--- -- *Deprecated:* use `package.addField(x, y)` +##### `majorVersion`Optional ```typescript -public readonly manifest: any; +public readonly majorVersion: number; ``` -- *Type:* any +- *Type:* number +- *Default:* Major version is not enforced. + +Major version to release from the default branch. + +If this is specified, we bump the latest version of this major version line. +If not specified, we bump the global latest version. --- -##### `npmrc`Required +##### `minMajorVersion`Optional ```typescript -public readonly npmrc: NpmConfig; +public readonly minMajorVersion: number; ``` -- *Type:* projen.javascript.NpmConfig +- *Type:* number +- *Default:* No minimum version is being enforced -The .npmrc file. +Minimal Major version to release. + +This can be useful to set to 1, as breaking changes before the 1.x major +release are not incrementing the major version number. + +Can not be set together with `majorVersion`. --- -##### `package`Required +##### `npmDistTag`Optional ```typescript -public readonly package: NodePackage; +public readonly npmDistTag: string; ``` -- *Type:* projen.javascript.NodePackage +- *Type:* string +- *Default:* "latest" -API for managing the node package. +The npmDistTag to use when publishing from the default branch. ---- +To set the npm dist-tag for release branches, set the `npmDistTag` property +for each branch. -##### ~~`packageManager`~~Required +--- -- *Deprecated:* use `package.packageManager` +##### `postBuildSteps`Optional ```typescript -public readonly packageManager: NodePackageManager; +public readonly postBuildSteps: JobStep[]; ``` -- *Type:* projen.javascript.NodePackageManager +- *Type:* projen.github.workflows.JobStep[] +- *Default:* [] -The package manager to use. +Steps to execute after build as part of the release workflow. --- -##### `runScriptCommand`Required +##### `prerelease`Optional ```typescript -public readonly runScriptCommand: string; +public readonly prerelease: string; ``` - *Type:* string +- *Default:* normal semantic versions -The command to use to run scripts (e.g. `yarn run` or `npm run` depends on the package manager). +Bump versions from the default branch as pre-releases (e.g. "beta", "alpha", "pre"). --- -##### `autoMerge`Optional +##### `publishDryRun`Optional ```typescript -public readonly autoMerge: AutoMerge; +public readonly publishDryRun: boolean; ``` -- *Type:* projen.github.AutoMerge +- *Type:* boolean +- *Default:* false -Component that sets up mergify for merging approved pull requests. +Instead of actually publishing to package managers, just print the publishing command. --- -##### `buildWorkflow`Optional +##### `publishTasks`Optional ```typescript -public readonly buildWorkflow: BuildWorkflow; +public readonly publishTasks: boolean; ``` -- *Type:* projen.build.BuildWorkflow +- *Type:* boolean +- *Default:* false -The PR build GitHub workflow. +Define publishing tasks that can be executed manually as well as workflows. -`undefined` if `buildWorkflow` is disabled. +Normally, publishing only happens within automated workflows. Enable this +in order to create a publishing task for each publishing activity. --- -##### `buildWorkflowJobId`Optional +##### `releasableCommits`Optional ```typescript -public readonly buildWorkflowJobId: string; +public readonly releasableCommits: ReleasableCommits; ``` -- *Type:* string +- *Type:* projen.ReleasableCommits +- *Default:* ReleasableCommits.everyCommit() -The job ID of the build workflow. +Find commits that should be considered releasable Used to decide if a release is required. --- -##### `jest`Optional +##### `releaseBranches`Optional ```typescript -public readonly jest: Jest; +public readonly releaseBranches: {[ key: string ]: BranchOptions}; ``` -- *Type:* projen.javascript.Jest +- *Type:* {[ key: string ]: projen.release.BranchOptions} +- *Default:* no additional branches are used for release. you can use `addBranch()` to add additional branches. -The Jest configuration (if enabled). +Defines additional release branches. + +A workflow will be created for each +release branch which will publish releases from commits in this branch. +Each release branch _must_ be assigned a major version number which is used +to enforce that versions published from that branch always use that major +version. If multiple branches are used, the `majorVersion` field must also +be provided for the default branch. --- -##### `maxNodeVersion`Optional +##### ~~`releaseEveryCommit`~~Optional + +- *Deprecated:* Use `releaseTrigger: ReleaseTrigger.continuous()` instead ```typescript -public readonly maxNodeVersion: string; +public readonly releaseEveryCommit: boolean; ``` -- *Type:* string +- *Type:* boolean +- *Default:* true -Maximum node version required by this package. +Automatically release new versions every commit to one of branches in `releaseBranches`. --- -##### `minNodeVersion`Optional +##### `releaseFailureIssue`Optional ```typescript -public readonly minNodeVersion: string; +public readonly releaseFailureIssue: boolean; ``` -- *Type:* string +- *Type:* boolean +- *Default:* false -Minimum node.js version required by this package. +Create a github issue on every failed publishing task. --- -##### `npmignore`Optional +##### `releaseFailureIssueLabel`Optional ```typescript -public readonly npmignore: IgnoreFile; +public readonly releaseFailureIssueLabel: string; ``` -- *Type:* projen.IgnoreFile - -The .npmignore file. - ---- - -##### `prettier`Optional +- *Type:* string +- *Default:* "failed-release" -```typescript -public readonly prettier: Prettier; -``` +The label to apply to issues indicating publish failures. -- *Type:* projen.javascript.Prettier +Only applies if `releaseFailureIssue` is true. --- -##### ~~`publisher`~~Optional +##### ~~`releaseSchedule`~~Optional -- *Deprecated:* use `release.publisher`. +- *Deprecated:* Use `releaseTrigger: ReleaseTrigger.scheduled()` instead ```typescript -public readonly publisher: Publisher; +public readonly releaseSchedule: string; ``` -- *Type:* projen.release.Publisher - -Package publisher. +- *Type:* string +- *Default:* no scheduled releases -This will be `undefined` if the project does not have a -release workflow. +CRON schedule to trigger new releases. --- -##### `release`Optional +##### `releaseTagPrefix`Optional ```typescript -public readonly release: Release; +public readonly releaseTagPrefix: string; ``` -- *Type:* projen.release.Release +- *Type:* string +- *Default:* "v" -Release management. +Automatically add the given prefix to release tags. Useful if you are releasing on multiple branches with overlapping version numbers. + +Note: this prefix is used to detect the latest tagged version +when bumping, so if you change this on a project with an existing version +history, you may need to manually tag your latest release +with the new prefix. --- -##### `upgradeWorkflow`Optional +##### `releaseTrigger`Optional ```typescript -public readonly upgradeWorkflow: UpgradeDependencies; +public readonly releaseTrigger: ReleaseTrigger; ``` -- *Type:* projen.javascript.UpgradeDependencies +- *Type:* projen.release.ReleaseTrigger +- *Default:* Continuous releases (`ReleaseTrigger.continuous()`) -The upgrade workflow. +The release trigger to use. --- -##### `docsDirectory`Required +##### `releaseWorkflowName`Optional ```typescript -public readonly docsDirectory: string; +public readonly releaseWorkflowName: string; ``` - *Type:* string +- *Default:* "Release" + +The name of the default release workflow. --- -##### `libdir`Required +##### `releaseWorkflowSetupSteps`Optional ```typescript -public readonly libdir: string; +public readonly releaseWorkflowSetupSteps: JobStep[]; ``` -- *Type:* string +- *Type:* projen.github.workflows.JobStep[] -The directory in which compiled .js files reside. +A set of workflow steps to execute in order to setup the workflow container. --- -##### `srcdir`Required +##### `versionrcOptions`Optional ```typescript -public readonly srcdir: string; +public readonly versionrcOptions: {[ key: string ]: any}; ``` -- *Type:* string +- *Type:* {[ key: string ]: any} +- *Default:* standard configuration applicable for GitHub repositories -The directory in which the .ts sources reside. +Custom configuration used when creating changelog with standard-version package. + +Given values either append to default configuration or overwrite values in it. --- -##### `testdir`Required +##### `workflowContainerImage`Optional ```typescript -public readonly testdir: string; +public readonly workflowContainerImage: string; ``` - *Type:* string +- *Default:* default image -The directory in which tests reside. +Container image to use for GitHub workflows. --- -##### `tsconfigDev`Required +##### `workflowRunsOn`Optional ```typescript -public readonly tsconfigDev: TypescriptConfig; +public readonly workflowRunsOn: string[]; ``` -- *Type:* projen.javascript.TypescriptConfig +- *Type:* string[] +- *Default:* ["ubuntu-latest"] -A typescript configuration file which covers all files (sources, tests, projen). +Github Runner selection labels. --- -##### `watchTask`Required +##### `workflowRunsOnGroup`Optional ```typescript -public readonly watchTask: Task; +public readonly workflowRunsOnGroup: GroupRunnerOptions; ``` -- *Type:* projen.Task +- *Type:* projen.GroupRunnerOptions -The "watch" task. +Github Runner Group selection options. --- -##### `docgen`Optional +##### `defaultReleaseBranch`Required ```typescript -public readonly docgen: boolean; +public readonly defaultReleaseBranch: string; ``` -- *Type:* boolean +- *Type:* string +- *Default:* "main" + +The name of the main release branch. --- -##### `eslint`Optional +##### `artifactsDirectory`Optional ```typescript -public readonly eslint: Eslint; +public readonly artifactsDirectory: string; ``` -- *Type:* projen.javascript.Eslint +- *Type:* string +- *Default:* "dist" + +A directory which will contain build artifacts. --- -##### `tsconfig`Optional +##### `autoApproveUpgrades`Optional ```typescript -public readonly tsconfig: TypescriptConfig; +public readonly autoApproveUpgrades: boolean; ``` -- *Type:* projen.javascript.TypescriptConfig +- *Type:* boolean +- *Default:* true + +Automatically approve deps upgrade PRs, allowing them to be merged by mergify (if configued). + +Throw if set to true but `autoApproveOptions` are not defined. --- -##### `tsconfigEslint`Optional +##### `buildWorkflow`Optional ```typescript -public readonly tsconfigEslint: TypescriptConfig; +public readonly buildWorkflow: boolean; ``` -- *Type:* projen.javascript.TypescriptConfig - ---- - -#### Constants +- *Type:* boolean +- *Default:* true if not a subproject -| **Name** | **Type** | **Description** | -| --- | --- | --- | -| DEFAULT_TASK | string | The name of the default task (the task executed when `projen` is run without arguments). | +Define a GitHub workflow for building PRs. --- -##### `DEFAULT_TASK`Required +##### `buildWorkflowTriggers`Optional ```typescript -public readonly DEFAULT_TASK: string; +public readonly buildWorkflowTriggers: Triggers; ``` -- *Type:* string - -The name of the default task (the task executed when `projen` is run without arguments). +- *Type:* projen.github.workflows.Triggers +- *Default:* "{ pullRequest: {}, workflowDispatch: {} }" -Normally -this task should synthesize the project files. +Build workflow triggers. --- -### Cdk8sTeamNodeProject - -#### Initializers +##### `bundlerOptions`Optional ```typescript -import { Cdk8sTeamNodeProject } from '@cdk8s/projen-common' - -new Cdk8sTeamNodeProject(options: Cdk8sTeamNodeProjectOptions) +public readonly bundlerOptions: BundlerOptions; ``` -| **Name** | **Type** | **Description** | -| --- | --- | --- | -| options | Cdk8sTeamNodeProjectOptions | *No description.* | +- *Type:* projen.javascript.BundlerOptions ---- +Options for `Bundler`. -##### `options`Required +--- -- *Type:* Cdk8sTeamNodeProjectOptions +##### `codeCov`Optional ---- +```typescript +public readonly codeCov: boolean; +``` -#### Methods +- *Type:* boolean +- *Default:* false -| **Name** | **Description** | -| --- | --- | -| addExcludeFromCleanup | Exclude the matching files from pre-synth cleanup. | -| addGitIgnore | Adds a .gitignore pattern. | -| addPackageIgnore | Exclude these files from the bundled package. | -| addTask | Adds a new task to this project. | -| addTip | Prints a "tip" message during synthesis. | -| annotateGenerated | Marks the provided file(s) as being generated. | -| postSynthesize | Called after all components are synthesized. | -| preSynthesize | Called before all components are synthesized. | -| removeTask | Removes a task from a project. | -| runTaskCommand | Returns the shell command to execute in order to run a task. | -| synth | Synthesize all project files into `outdir`. | -| tryFindFile | Finds a file at the specified relative path within this project and all its subprojects. | -| tryFindJsonFile | Finds a json file by name. | -| tryFindObjectFile | Finds an object file (like JsonFile, YamlFile, etc.) by name. | -| tryRemoveFile | Finds a file at the specified relative path within this project and removes it. | -| addBins | *No description.* | -| addBundledDeps | Defines bundled dependencies. | -| addCompileCommand | DEPRECATED. | -| addDeps | Defines normal dependencies. | -| addDevDeps | Defines development/test dependencies. | -| addFields | Directly set fields in `package.json`. | -| addKeywords | Adds keywords to package.json (deduplicated). | -| addPeerDeps | Defines peer dependencies. | -| addScripts | Replaces the contents of multiple npm package.json scripts. | -| addTestCommand | DEPRECATED. | -| hasScript | Indicates if a script by the name name is defined. | -| removeScript | Removes the npm script (always successful). | -| renderWorkflowSetup | Returns the set of workflow steps which should be executed to bootstrap a workflow. | -| setScript | Replaces the contents of an npm package.json script. | +Define a GitHub workflow step for sending code coverage metrics to https://codecov.io/ Uses codecov/codecov-action@v3 A secret is required for private repos. Configured with `@codeCovTokenSecret`. --- -##### `addExcludeFromCleanup` +##### `codeCovTokenSecret`Optional ```typescript -public addExcludeFromCleanup(globs: string): void +public readonly codeCovTokenSecret: string; ``` -Exclude the matching files from pre-synth cleanup. - -Can be used when, for example, some -source files include the projen marker and we don't want them to be erased during synth. - -###### `globs`Required - - *Type:* string +- *Default:* if this option is not specified, only public repositories are supported -The glob patterns to match. +Define the secret name for a specified https://codecov.io/ token A secret is required to send coverage for private repositories. --- -##### `addGitIgnore` +##### `copyrightOwner`Optional ```typescript -public addGitIgnore(pattern: string): void +public readonly copyrightOwner: string; ``` -Adds a .gitignore pattern. - -###### `pattern`Required - - *Type:* string +- *Default:* defaults to the value of authorName or "" if `authorName` is undefined. -The glob pattern to ignore. +License copyright owner. --- -##### `addPackageIgnore` +##### `copyrightPeriod`Optional ```typescript -public addPackageIgnore(pattern: string): void +public readonly copyrightPeriod: string; ``` -Exclude these files from the bundled package. - -Implemented by project types based on the -packaging mechanism. For example, `NodeProject` delegates this to `.npmignore`. - -###### `pattern`Required - - *Type:* string +- *Default:* current year + +The copyright years to put in the LICENSE file. --- -##### `addTask` +##### `dependabot`Optional ```typescript -public addTask(name: string, props?: TaskOptions): Task +public readonly dependabot: boolean; ``` -Adds a new task to this project. - -This will fail if the project already has -a task with this name. - -###### `name`Required +- *Type:* boolean +- *Default:* false -- *Type:* string +Use dependabot to handle dependency upgrades. -The task name to add. +Cannot be used in conjunction with `depsUpgrade`. --- -###### `props`Optional +##### `dependabotOptions`Optional -- *Type:* projen.TaskOptions +```typescript +public readonly dependabotOptions: DependabotOptions; +``` -Task properties. +- *Type:* projen.github.DependabotOptions +- *Default:* default options + +Options for dependabot. --- -##### ~~`addTip`~~ +##### `depsUpgrade`Optional ```typescript -public addTip(message: string): void +public readonly depsUpgrade: boolean; ``` -Prints a "tip" message during synthesis. - -###### `message`Required +- *Type:* boolean +- *Default:* true -- *Type:* string +Use tasks and github workflows to handle dependency upgrades. -The message. +Cannot be used in conjunction with `dependabot`. --- -##### `annotateGenerated` +##### `depsUpgradeOptions`Optional ```typescript -public annotateGenerated(glob: string): void +public readonly depsUpgradeOptions: UpgradeDependenciesOptions; ``` -Marks the provided file(s) as being generated. +- *Type:* projen.javascript.UpgradeDependenciesOptions +- *Default:* default options -This is achieved using the -github-linguist attributes. Generated files do not count against the -repository statistics and language breakdown. +Options for `UpgradeDependencies`. -> [https://github.com/github/linguist/blob/master/docs/overrides.md](https://github.com/github/linguist/blob/master/docs/overrides.md) +--- -###### `glob`Required +##### `gitignore`Optional -- *Type:* string +```typescript +public readonly gitignore: string[]; +``` -the glob pattern to match (could be a file path). +- *Type:* string[] + +Additional entries to .gitignore. --- -##### `postSynthesize` +##### `jest`Optional ```typescript -public postSynthesize(): void +public readonly jest: boolean; ``` -Called after all components are synthesized. - -Order is *not* guaranteed. - -##### `preSynthesize` +- *Type:* boolean +- *Default:* true -```typescript -public preSynthesize(): void -``` +Setup jest unit tests. -Called before all components are synthesized. +--- -##### `removeTask` +##### `jestOptions`Optional ```typescript -public removeTask(name: string): Task +public readonly jestOptions: JestOptions; ``` -Removes a task from a project. - -###### `name`Required - -- *Type:* string +- *Type:* projen.javascript.JestOptions +- *Default:* default options -The name of the task to remove. +Jest options. --- -##### `runTaskCommand` +##### `mutableBuild`Optional ```typescript -public runTaskCommand(task: Task): string +public readonly mutableBuild: boolean; ``` -Returns the shell command to execute in order to run a task. - -This will -typically be `npx projen TASK`. +- *Type:* boolean +- *Default:* true -###### `task`Required +Automatically update files modified during builds to pull-request branches. -- *Type:* projen.Task +This means +that any files synthesized by projen or e.g. test snapshots will always be up-to-date +before a PR is merged. -The task for which the command is required. +Implies that PR builds do not have anti-tamper checks. --- -##### `synth` +##### ~~`npmignore`~~Optional + +- *Deprecated:* - use `project.addPackageIgnore` ```typescript -public synth(): void +public readonly npmignore: string[]; ``` -Synthesize all project files into `outdir`. +- *Type:* string[] -1. Call "this.preSynthesize()" -2. Delete all generated files -3. Synthesize all sub-projects -4. Synthesize all components of this project -5. Call "postSynthesize()" for all components of this project -6. Call "this.postSynthesize()" +Additional entries to .npmignore. -##### `tryFindFile` +--- + +##### `npmignoreEnabled`Optional ```typescript -public tryFindFile(filePath: string): FileBase +public readonly npmignoreEnabled: boolean; ``` -Finds a file at the specified relative path within this project and all its subprojects. - -###### `filePath`Required - -- *Type:* string - -The file path. +- *Type:* boolean +- *Default:* true -If this path is relative, it will be resolved -from the root of _this_ project. +Defines an .npmignore file. Normally this is only needed for libraries that are packaged as tarballs. --- -##### ~~`tryFindJsonFile`~~ +##### `npmIgnoreOptions`Optional ```typescript -public tryFindJsonFile(filePath: string): JsonFile +public readonly npmIgnoreOptions: IgnoreFileOptions; ``` -Finds a json file by name. - -###### `filePath`Required - -- *Type:* string +- *Type:* projen.IgnoreFileOptions -The file path. +Configuration options for .npmignore file. --- -##### `tryFindObjectFile` +##### `package`Optional ```typescript -public tryFindObjectFile(filePath: string): ObjectFile +public readonly package: boolean; ``` -Finds an object file (like JsonFile, YamlFile, etc.) by name. - -###### `filePath`Required - -- *Type:* string +- *Type:* boolean +- *Default:* true -The file path. +Defines a `package` task that will produce an npm tarball under the artifacts directory (e.g. `dist`). --- -##### `tryRemoveFile` +##### `prettier`Optional ```typescript -public tryRemoveFile(filePath: string): FileBase +public readonly prettier: boolean; ``` -Finds a file at the specified relative path within this project and removes it. - -###### `filePath`Required - -- *Type:* string - -The file path. +- *Type:* boolean +- *Default:* false -If this path is relative, it will be -resolved from the root of _this_ project. +Setup prettier. --- -##### `addBins` +##### `prettierOptions`Optional ```typescript -public addBins(bins: {[ key: string ]: string}): void +public readonly prettierOptions: PrettierOptions; ``` -###### `bins`Required +- *Type:* projen.javascript.PrettierOptions +- *Default:* default options -- *Type:* {[ key: string ]: string} +Prettier options. --- -##### `addBundledDeps` +##### `projenDevDependency`Optional ```typescript -public addBundledDeps(deps: string): void +public readonly projenDevDependency: boolean; ``` -Defines bundled dependencies. +- *Type:* boolean +- *Default:* true -Bundled dependencies will be added as normal dependencies as well as to the -`bundledDependencies` section of your `package.json`. +Indicates of "projen" should be installed as a devDependency. -###### `deps`Required +--- -- *Type:* string +##### `projenrcJs`Optional -Names modules to install. +```typescript +public readonly projenrcJs: boolean; +``` -By default, the the dependency will -be installed in the next `npx projen` run and the version will be recorded -in your `package.json` file. You can upgrade manually or using `yarn -add/upgrade`. If you wish to specify a version range use this syntax: -`module@^7`. +- *Type:* boolean +- *Default:* true if projenrcJson is false + +Generate (once) .projenrc.js (in JavaScript). Set to `false` in order to disable .projenrc.js generation. --- -##### ~~`addCompileCommand`~~ +##### `projenrcJsOptions`Optional ```typescript -public addCompileCommand(commands: string): void +public readonly projenrcJsOptions: ProjenrcOptions; ``` -DEPRECATED. - -###### `commands`Required +- *Type:* projen.javascript.ProjenrcOptions +- *Default:* default options -- *Type:* string +Options for .projenrc.js. --- -##### `addDeps` +##### `projenVersion`Optional ```typescript -public addDeps(deps: string): void +public readonly projenVersion: string; ``` -Defines normal dependencies. - -###### `deps`Required - - *Type:* string +- *Default:* Defaults to the latest version. -Names modules to install. - -By default, the the dependency will -be installed in the next `npx projen` run and the version will be recorded -in your `package.json` file. You can upgrade manually or using `yarn -add/upgrade`. If you wish to specify a version range use this syntax: -`module@^7`. +Version of projen to install. --- -##### `addDevDeps` +##### `pullRequestTemplate`Optional ```typescript -public addDevDeps(deps: string): void +public readonly pullRequestTemplate: boolean; ``` -Defines development/test dependencies. - -###### `deps`Required - -- *Type:* string - -Names modules to install. +- *Type:* boolean +- *Default:* true -By default, the the dependency will -be installed in the next `npx projen` run and the version will be recorded -in your `package.json` file. You can upgrade manually or using `yarn -add/upgrade`. If you wish to specify a version range use this syntax: -`module@^7`. +Include a GitHub pull request template. --- -##### `addFields` +##### `pullRequestTemplateContents`Optional ```typescript -public addFields(fields: {[ key: string ]: any}): void +public readonly pullRequestTemplateContents: string[]; ``` -Directly set fields in `package.json`. - -###### `fields`Required - -- *Type:* {[ key: string ]: any} +- *Type:* string[] +- *Default:* default content -The fields to set. +The contents of the pull request template. --- -##### `addKeywords` +##### `release`Optional ```typescript -public addKeywords(keywords: string): void +public readonly release: boolean; ``` -Adds keywords to package.json (deduplicated). - -###### `keywords`Required - -- *Type:* string +- *Type:* boolean +- *Default:* true (false for subprojects) -The keywords to add. +Add release management to this project. --- -##### `addPeerDeps` +##### `releaseToNpm`Optional ```typescript -public addPeerDeps(deps: string): void +public readonly releaseToNpm: boolean; ``` -Defines peer dependencies. +- *Type:* boolean +- *Default:* false -When adding peer dependencies, a devDependency will also be added on the -pinned version of the declared peer. This will ensure that you are testing -your code against the minimum version required from your consumers. +Automatically release to npm when new versions are introduced. -###### `deps`Required +--- -- *Type:* string +##### ~~`releaseWorkflow`~~Optional -Names modules to install. +- *Deprecated:* see `release`. -By default, the the dependency will -be installed in the next `npx projen` run and the version will be recorded -in your `package.json` file. You can upgrade manually or using `yarn -add/upgrade`. If you wish to specify a version range use this syntax: -`module@^7`. +```typescript +public readonly releaseWorkflow: boolean; +``` + +- *Type:* boolean +- *Default:* true if not a subproject + +DEPRECATED: renamed to `release`. --- -##### `addScripts` +##### `workflowBootstrapSteps`Optional ```typescript -public addScripts(scripts: {[ key: string ]: string}): void +public readonly workflowBootstrapSteps: JobStep[]; ``` -Replaces the contents of multiple npm package.json scripts. - -###### `scripts`Required - -- *Type:* {[ key: string ]: string} +- *Type:* projen.github.workflows.JobStep[] +- *Default:* "yarn install --frozen-lockfile && yarn projen" -The scripts to set. +Workflow steps to use in order to bootstrap this repo. --- -##### ~~`addTestCommand`~~ +##### `workflowGitIdentity`Optional ```typescript -public addTestCommand(commands: string): void +public readonly workflowGitIdentity: GitIdentity; ``` -DEPRECATED. - -###### `commands`Required +- *Type:* projen.github.GitIdentity +- *Default:* GitHub Actions -- *Type:* string +The git identity to use in workflows. --- -##### ~~`hasScript`~~ +##### `workflowNodeVersion`Optional ```typescript -public hasScript(name: string): boolean +public readonly workflowNodeVersion: string; ``` -Indicates if a script by the name name is defined. - -###### `name`Required - - *Type:* string +- *Default:* same as `minNodeVersion` -The name of the script. +The node version to use in GitHub workflows. --- -##### `removeScript` +##### `workflowPackageCache`Optional ```typescript -public removeScript(name: string): void +public readonly workflowPackageCache: boolean; ``` -Removes the npm script (always successful). - -###### `name`Required - -- *Type:* string +- *Type:* boolean +- *Default:* false -The name of the script. +Enable Node.js package cache in GitHub workflows. --- -##### `renderWorkflowSetup` +##### `backport`Optional ```typescript -public renderWorkflowSetup(options?: RenderWorkflowSetupOptions): JobStep[] +public readonly backport: boolean; ``` -Returns the set of workflow steps which should be executed to bootstrap a workflow. - -###### `options`Optional - -- *Type:* projen.javascript.RenderWorkflowSetupOptions +- *Type:* boolean +- *Default:* false -Options. +Configure a backport workflow. --- -##### `setScript` +##### `backportBranches`Optional ```typescript -public setScript(name: string, command: string): void +public readonly backportBranches: string[]; ``` -Replaces the contents of an npm package.json script. +- *Type:* string[] +- *Default:* Will be derived from PR labels. -###### `name`Required +Branches to backport to. + +--- + +##### `repoName`Optional + +```typescript +public readonly repoName: string; +``` - *Type:* string +- *Default:* the package name. -The script name. +The name of the repository inside the cdk8s-team org where the code of the project is locate in. --- -###### `command`Required +### Cdk8sTeamTypeScriptProjectOptions -- *Type:* string +Options for `Cdk8sTeamTypeScriptProject`. -The command to execute. +#### Initializer ---- +```typescript +import { Cdk8sTeamTypeScriptProjectOptions } from '@cdk8s/projen-common' +const cdk8sTeamTypeScriptProjectOptions: Cdk8sTeamTypeScriptProjectOptions = { ... } +``` #### Properties | **Name** | **Type** | **Description** | | --- | --- | --- | -| buildTask | projen.Task | *No description.* | -| commitGenerated | boolean | Whether to commit the managed files by default. | -| compileTask | projen.Task | *No description.* | -| components | projen.Component[] | Returns all the components within this project. | -| deps | projen.Dependencies | Project dependencies. | -| ejected | boolean | Whether or not the project is being ejected. | -| files | projen.FileBase[] | All files in this project. | -| gitattributes | projen.GitAttributesFile | The .gitattributes file for this repository. | -| gitignore | projen.IgnoreFile | .gitignore. | -| logger | projen.Logger | Logging utilities. | -| name | string | Project name. | -| outdir | string | Absolute output directory of this project. | -| packageTask | projen.Task | *No description.* | -| postCompileTask | projen.Task | *No description.* | -| preCompileTask | projen.Task | *No description.* | -| projectBuild | projen.ProjectBuild | Manages the build process of the project. | -| projenCommand | string | The command to use in order to run the projen CLI. | -| root | projen.Project | The root project. | -| subprojects | projen.Project[] | Returns all the subprojects within this project. | -| tasks | projen.Tasks | Project tasks. | -| testTask | projen.Task | *No description.* | -| defaultTask | projen.Task | This is the "default" task, the one that executes "projen". | -| initProject | projen.InitProject | The options used when this project is bootstrapped via `projen new`. | -| parent | projen.Project | A parent project. | -| projectType | projen.ProjectType | *No description.* | -| autoApprove | projen.github.AutoApprove | Auto approve set up for this project. | -| devContainer | projen.vscode.DevContainer | Access for .devcontainer.json (used for GitHub Codespaces). | -| github | projen.github.GitHub | Access all github components. | -| gitpod | projen.Gitpod | Access for Gitpod. | -| vscode | projen.vscode.VsCode | Access all VSCode components. | -| allowLibraryDependencies | boolean | *No description.* | -| artifactsDirectory | string | The build output directory. | -| artifactsJavascriptDirectory | string | The location of the npm tarball after build (`${artifactsDirectory}/js`). | -| bundler | projen.javascript.Bundler | *No description.* | -| entrypoint | string | *No description.* | -| manifest | any | *No description.* | -| npmrc | projen.javascript.NpmConfig | The .npmrc file. | -| package | projen.javascript.NodePackage | API for managing the node package. | -| packageManager | projen.javascript.NodePackageManager | The package manager to use. | -| runScriptCommand | string | The command to use to run scripts (e.g. `yarn run` or `npm run` depends on the package manager). | -| autoMerge | projen.github.AutoMerge | Component that sets up mergify for merging approved pull requests. | -| buildWorkflow | projen.build.BuildWorkflow | The PR build GitHub workflow. | -| buildWorkflowJobId | string | The job ID of the build workflow. | -| jest | projen.javascript.Jest | The Jest configuration (if enabled). | -| maxNodeVersion | string | Maximum node version required by this package. | -| minNodeVersion | string | Minimum node.js version required by this package. | -| npmignore | projen.IgnoreFile | The .npmignore file. | -| prettier | projen.javascript.Prettier | *No description.* | -| publisher | projen.release.Publisher | Package publisher. | -| release | projen.release.Release | Release management. | -| upgradeWorkflow | projen.javascript.UpgradeDependencies | The upgrade workflow. | +| name | string | This is the name of your project. | +| commitGenerated | boolean | Whether to commit the managed files by default. | +| gitIgnoreOptions | projen.IgnoreFileOptions | Configuration options for .gitignore file. | +| gitOptions | projen.GitOptions | Configuration options for git. | +| logging | projen.LoggerOptions | Configure logging options such as verbosity. | +| outdir | string | The root directory of the project. | +| parent | projen.Project | The parent project, if this project is part of a bigger project. | +| projenCommand | string | The shell command to use in order to run the projen CLI. | +| projenrcJson | boolean | Generate (once) .projenrc.json (in JSON). Set to `false` in order to disable .projenrc.json generation. | +| projenrcJsonOptions | projen.ProjenrcJsonOptions | Options for .projenrc.json. | +| renovatebot | boolean | Use renovatebot to handle dependency upgrades. | +| renovatebotOptions | projen.RenovatebotOptions | Options for renovatebot. | +| autoApproveOptions | projen.github.AutoApproveOptions | Enable and configure the 'auto approve' workflow. | +| autoMerge | boolean | Enable automatic merging on GitHub. | +| autoMergeOptions | projen.github.AutoMergeOptions | Configure options for automatic merging on GitHub. | +| clobber | boolean | Add a `clobber` task which resets the repo to origin. | +| devContainer | boolean | Add a VSCode development environment (used for GitHub Codespaces). | +| github | boolean | Enable GitHub integration. | +| githubOptions | projen.github.GitHubOptions | Options for GitHub integration. | +| gitpod | boolean | Add a Gitpod development environment. | +| mergify | boolean | Whether mergify should be enabled on this repository or not. | +| mergifyOptions | projen.github.MergifyOptions | Options for mergify. | +| projectType | projen.ProjectType | Which type of project this is (library/app). | +| projenCredentials | projen.github.GithubCredentials | Choose a method of providing GitHub API access for projen workflows. | +| projenTokenSecret | string | The name of a secret which includes a GitHub Personal Access Token to be used by projen workflows. | +| readme | projen.SampleReadmeProps | The README setup. | +| stale | boolean | Auto-close of stale issues and pull request. | +| staleOptions | projen.github.StaleOptions | Auto-close stale issues and pull requests. | +| vscode | boolean | Enable VSCode integration. | +| allowLibraryDependencies | boolean | Allow the project to include `peerDependencies` and `bundledDependencies`. | +| authorEmail | string | Author's e-mail. | +| authorName | string | Author's name. | +| authorOrganization | boolean | Is the author an organization. | +| authorUrl | string | Author's URL / Website. | +| autoDetectBin | boolean | Automatically add all executables under the `bin` directory to your `package.json` file under the `bin` section. | +| bin | {[ key: string ]: string} | Binary programs vended with your module. | +| bugsEmail | string | The email address to which issues should be reported. | +| bugsUrl | string | The url to your project's issue tracker. | +| bundledDeps | string[] | List of dependencies to bundle into this module. | +| codeArtifactOptions | projen.javascript.CodeArtifactOptions | Options for npm packages using AWS CodeArtifact. | +| deps | string[] | Runtime dependencies of this module. | +| description | string | The description is just a string that helps people understand the purpose of the package. | +| devDeps | string[] | Build dependencies for this module. | +| entrypoint | string | Module entrypoint (`main` in `package.json`). | +| homepage | string | Package's Homepage / Website. | +| keywords | string[] | Keywords to include in `package.json`. | +| license | string | License's SPDX identifier. | +| licensed | boolean | Indicates if a license should be added. | +| maxNodeVersion | string | Minimum node.js version to require via `engines` (inclusive). | +| minNodeVersion | string | Minimum Node.js version to require via package.json `engines` (inclusive). | +| npmAccess | projen.javascript.NpmAccess | Access level of the npm package. | +| npmRegistry | string | The host name of the npm registry to publish to. | +| npmRegistryUrl | string | The base URL of the npm package registry. | +| npmTokenSecret | string | GitHub secret which contains the NPM token to use when publishing packages. | +| packageManager | projen.javascript.NodePackageManager | The Node Package Manager used to execute scripts. | +| packageName | string | The "name" in package.json. | +| peerDependencyOptions | projen.javascript.PeerDependencyOptions | Options for `peerDeps`. | +| peerDeps | string[] | Peer dependencies for this module. | +| pnpmVersion | string | The version of PNPM to use if using PNPM as a package manager. | +| repository | string | The repository is the location where the actual code for your package lives. | +| repositoryDirectory | string | If the package.json for your package is not in the root directory (for example if it is part of a monorepo), you can specify the directory in which it lives. | +| scopedPackagesOptions | projen.javascript.ScopedPackagesOptions[] | Options for privately hosted scoped packages. | +| scripts | {[ key: string ]: string} | npm scripts to include. | +| stability | string | Package's Stability. | +| yarnBerryOptions | projen.javascript.YarnBerryOptions | Options for Yarn Berry. | +| jsiiReleaseVersion | string | Version requirement of `publib` which is used to publish modules to npm. | +| majorVersion | number | Major version to release from the default branch. | +| minMajorVersion | number | Minimal Major version to release. | +| npmDistTag | string | The npmDistTag to use when publishing from the default branch. | +| postBuildSteps | projen.github.workflows.JobStep[] | Steps to execute after build as part of the release workflow. | +| prerelease | string | Bump versions from the default branch as pre-releases (e.g. "beta", "alpha", "pre"). | +| publishDryRun | boolean | Instead of actually publishing to package managers, just print the publishing command. | +| publishTasks | boolean | Define publishing tasks that can be executed manually as well as workflows. | +| releasableCommits | projen.ReleasableCommits | Find commits that should be considered releasable Used to decide if a release is required. | +| releaseBranches | {[ key: string ]: projen.release.BranchOptions} | Defines additional release branches. | +| releaseEveryCommit | boolean | Automatically release new versions every commit to one of branches in `releaseBranches`. | +| releaseFailureIssue | boolean | Create a github issue on every failed publishing task. | +| releaseFailureIssueLabel | string | The label to apply to issues indicating publish failures. | +| releaseSchedule | string | CRON schedule to trigger new releases. | +| releaseTagPrefix | string | Automatically add the given prefix to release tags. Useful if you are releasing on multiple branches with overlapping version numbers. | +| releaseTrigger | projen.release.ReleaseTrigger | The release trigger to use. | +| releaseWorkflowName | string | The name of the default release workflow. | +| releaseWorkflowSetupSteps | projen.github.workflows.JobStep[] | A set of workflow steps to execute in order to setup the workflow container. | +| versionrcOptions | {[ key: string ]: any} | Custom configuration used when creating changelog with standard-version package. | +| workflowContainerImage | string | Container image to use for GitHub workflows. | +| workflowRunsOn | string[] | Github Runner selection labels. | +| workflowRunsOnGroup | projen.GroupRunnerOptions | Github Runner Group selection options. | +| defaultReleaseBranch | string | The name of the main release branch. | +| artifactsDirectory | string | A directory which will contain build artifacts. | +| autoApproveUpgrades | boolean | Automatically approve deps upgrade PRs, allowing them to be merged by mergify (if configued). | +| buildWorkflow | boolean | Define a GitHub workflow for building PRs. | +| buildWorkflowTriggers | projen.github.workflows.Triggers | Build workflow triggers. | +| bundlerOptions | projen.javascript.BundlerOptions | Options for `Bundler`. | +| codeCov | boolean | Define a GitHub workflow step for sending code coverage metrics to https://codecov.io/ Uses codecov/codecov-action@v3 A secret is required for private repos. Configured with `@codeCovTokenSecret`. | +| codeCovTokenSecret | string | Define the secret name for a specified https://codecov.io/ token A secret is required to send coverage for private repositories. | +| copyrightOwner | string | License copyright owner. | +| copyrightPeriod | string | The copyright years to put in the LICENSE file. | +| dependabot | boolean | Use dependabot to handle dependency upgrades. | +| dependabotOptions | projen.github.DependabotOptions | Options for dependabot. | +| depsUpgrade | boolean | Use tasks and github workflows to handle dependency upgrades. | +| depsUpgradeOptions | projen.javascript.UpgradeDependenciesOptions | Options for `UpgradeDependencies`. | +| gitignore | string[] | Additional entries to .gitignore. | +| jest | boolean | Setup jest unit tests. | +| jestOptions | projen.javascript.JestOptions | Jest options. | +| mutableBuild | boolean | Automatically update files modified during builds to pull-request branches. | +| npmignore | string[] | Additional entries to .npmignore. | +| npmignoreEnabled | boolean | Defines an .npmignore file. Normally this is only needed for libraries that are packaged as tarballs. | +| npmIgnoreOptions | projen.IgnoreFileOptions | Configuration options for .npmignore file. | +| package | boolean | Defines a `package` task that will produce an npm tarball under the artifacts directory (e.g. `dist`). | +| prettier | boolean | Setup prettier. | +| prettierOptions | projen.javascript.PrettierOptions | Prettier options. | +| projenDevDependency | boolean | Indicates of "projen" should be installed as a devDependency. | +| projenrcJs | boolean | Generate (once) .projenrc.js (in JavaScript). Set to `false` in order to disable .projenrc.js generation. | +| projenrcJsOptions | projen.javascript.ProjenrcOptions | Options for .projenrc.js. | +| projenVersion | string | Version of projen to install. | +| pullRequestTemplate | boolean | Include a GitHub pull request template. | +| pullRequestTemplateContents | string[] | The contents of the pull request template. | +| release | boolean | Add release management to this project. | +| releaseToNpm | boolean | Automatically release to npm when new versions are introduced. | +| releaseWorkflow | boolean | DEPRECATED: renamed to `release`. | +| workflowBootstrapSteps | projen.github.workflows.JobStep[] | Workflow steps to use in order to bootstrap this repo. | +| workflowGitIdentity | projen.github.GitIdentity | The git identity to use in workflows. | +| workflowNodeVersion | string | The node version to use in GitHub workflows. | +| workflowPackageCache | boolean | Enable Node.js package cache in GitHub workflows. | +| disableTsconfig | boolean | Do not generate a `tsconfig.json` file (used by jsii projects since tsconfig.json is generated by the jsii compiler). | +| disableTsconfigDev | boolean | Do not generate a `tsconfig.dev.json` file. | +| docgen | boolean | Docgen by Typedoc. | +| docsDirectory | string | Docs directory. | +| entrypointTypes | string | The .d.ts file that includes the type declarations for this module. | +| eslint | boolean | Setup eslint. | +| eslintOptions | projen.javascript.EslintOptions | Eslint options. | +| libdir | string | Typescript artifacts output directory. | +| projenrcTs | boolean | Use TypeScript for your projenrc file (`.projenrc.ts`). | +| projenrcTsOptions | projen.typescript.ProjenrcOptions | Options for .projenrc.ts. | +| sampleCode | boolean | Generate one-time sample in `src/` and `test/` if there are no files there. | +| srcdir | string | Typescript sources directory. | +| testdir | string | Jest tests directory. Tests files should be named `xxx.test.ts`. | +| tsconfig | projen.javascript.TypescriptConfigOptions | Custom TSConfig. | +| tsconfigDev | projen.javascript.TypescriptConfigOptions | Custom tsconfig options for the development tsconfig.json file (used for testing). | +| tsconfigDevFile | string | The name of the development tsconfig.json file. | +| typescriptVersion | string | TypeScript version to use. | +| additionalCompilerDependencies | string[] | Packages that compile the project apart from the typescript/jsii compiler. | +| backport | boolean | Configure a backport workflow. | +| backportBranches | string[] | Branches to backport to. | +| repoName | string | The name of the repository inside the cdk8s-team org where the code of the project is locate in. | --- -##### `buildTask`Required +##### `name`Required ```typescript -public readonly buildTask: Task; +public readonly name: string; ``` -- *Type:* projen.Task +- *Type:* string +- *Default:* $BASEDIR + +This is the name of your project. --- -##### `commitGenerated`Required +##### `commitGenerated`Optional ```typescript public readonly commitGenerated: boolean; ``` - *Type:* boolean +- *Default:* true Whether to commit the managed files by default. --- -##### `compileTask`Required +##### `gitIgnoreOptions`Optional ```typescript -public readonly compileTask: Task; +public readonly gitIgnoreOptions: IgnoreFileOptions; ``` -- *Type:* projen.Task +- *Type:* projen.IgnoreFileOptions + +Configuration options for .gitignore file. --- -##### `components`Required +##### `gitOptions`Optional ```typescript -public readonly components: Component[]; +public readonly gitOptions: GitOptions; ``` -- *Type:* projen.Component[] +- *Type:* projen.GitOptions -Returns all the components within this project. +Configuration options for git. --- -##### `deps`Required +##### `logging`Optional ```typescript -public readonly deps: Dependencies; +public readonly logging: LoggerOptions; ``` -- *Type:* projen.Dependencies +- *Type:* projen.LoggerOptions +- *Default:* {} -Project dependencies. +Configure logging options such as verbosity. --- -##### `ejected`Required +##### `outdir`Optional ```typescript -public readonly ejected: boolean; +public readonly outdir: string; ``` -- *Type:* boolean +- *Type:* string +- *Default:* "." -Whether or not the project is being ejected. +The root directory of the project. + +Relative to this directory, all files are synthesized. + +If this project has a parent, this directory is relative to the parent +directory and it cannot be the same as the parent or any of it's other +subprojects. --- -##### `files`Required +##### `parent`Optional ```typescript -public readonly files: FileBase[]; +public readonly parent: Project; ``` -- *Type:* projen.FileBase[] +- *Type:* projen.Project -All files in this project. +The parent project, if this project is part of a bigger project. --- -##### `gitattributes`Required +##### `projenCommand`Optional ```typescript -public readonly gitattributes: GitAttributesFile; +public readonly projenCommand: string; ``` -- *Type:* projen.GitAttributesFile +- *Type:* string +- *Default:* "npx projen" -The .gitattributes file for this repository. +The shell command to use in order to run the projen CLI. + +Can be used to customize in special environments. --- -##### `gitignore`Required +##### `projenrcJson`Optional ```typescript -public readonly gitignore: IgnoreFile; +public readonly projenrcJson: boolean; ``` -- *Type:* projen.IgnoreFile +- *Type:* boolean +- *Default:* false -.gitignore. +Generate (once) .projenrc.json (in JSON). Set to `false` in order to disable .projenrc.json generation. --- -##### `logger`Required +##### `projenrcJsonOptions`Optional ```typescript -public readonly logger: Logger; +public readonly projenrcJsonOptions: ProjenrcJsonOptions; ``` -- *Type:* projen.Logger +- *Type:* projen.ProjenrcJsonOptions +- *Default:* default options -Logging utilities. +Options for .projenrc.json. --- -##### `name`Required +##### `renovatebot`Optional ```typescript -public readonly name: string; +public readonly renovatebot: boolean; ``` -- *Type:* string +- *Type:* boolean +- *Default:* false -Project name. +Use renovatebot to handle dependency upgrades. --- -##### `outdir`Required +##### `renovatebotOptions`Optional ```typescript -public readonly outdir: string; +public readonly renovatebotOptions: RenovatebotOptions; ``` -- *Type:* string +- *Type:* projen.RenovatebotOptions +- *Default:* default options -Absolute output directory of this project. +Options for renovatebot. --- -##### `packageTask`Required +##### `autoApproveOptions`Optional ```typescript -public readonly packageTask: Task; +public readonly autoApproveOptions: AutoApproveOptions; ``` -- *Type:* projen.Task +- *Type:* projen.github.AutoApproveOptions +- *Default:* auto approve is disabled + +Enable and configure the 'auto approve' workflow. --- -##### `postCompileTask`Required +##### `autoMerge`Optional ```typescript -public readonly postCompileTask: Task; +public readonly autoMerge: boolean; ``` -- *Type:* projen.Task +- *Type:* boolean +- *Default:* true + +Enable automatic merging on GitHub. + +Has no effect if `github.mergify` +is set to false. --- -##### `preCompileTask`Required +##### `autoMergeOptions`Optional ```typescript -public readonly preCompileTask: Task; +public readonly autoMergeOptions: AutoMergeOptions; ``` -- *Type:* projen.Task +- *Type:* projen.github.AutoMergeOptions +- *Default:* see defaults in `AutoMergeOptions` + +Configure options for automatic merging on GitHub. + +Has no effect if +`github.mergify` or `autoMerge` is set to false. --- -##### `projectBuild`Required +##### `clobber`Optional ```typescript -public readonly projectBuild: ProjectBuild; +public readonly clobber: boolean; ``` -- *Type:* projen.ProjectBuild +- *Type:* boolean +- *Default:* true, but false for subprojects -Manages the build process of the project. +Add a `clobber` task which resets the repo to origin. --- -##### `projenCommand`Required +##### `devContainer`Optional ```typescript -public readonly projenCommand: string; +public readonly devContainer: boolean; ``` -- *Type:* string +- *Type:* boolean +- *Default:* false -The command to use in order to run the projen CLI. +Add a VSCode development environment (used for GitHub Codespaces). --- -##### `root`Required +##### `github`Optional ```typescript -public readonly root: Project; +public readonly github: boolean; ``` -- *Type:* projen.Project +- *Type:* boolean +- *Default:* true -The root project. +Enable GitHub integration. + +Enabled by default for root projects. Disabled for non-root projects. --- -##### `subprojects`Required +##### `githubOptions`Optional ```typescript -public readonly subprojects: Project[]; +public readonly githubOptions: GitHubOptions; ``` -- *Type:* projen.Project[] +- *Type:* projen.github.GitHubOptions +- *Default:* see GitHubOptions -Returns all the subprojects within this project. +Options for GitHub integration. --- -##### `tasks`Required +##### `gitpod`Optional ```typescript -public readonly tasks: Tasks; +public readonly gitpod: boolean; ``` -- *Type:* projen.Tasks +- *Type:* boolean +- *Default:* false -Project tasks. +Add a Gitpod development environment. --- -##### `testTask`Required +##### ~~`mergify`~~Optional + +- *Deprecated:* use `githubOptions.mergify` instead ```typescript -public readonly testTask: Task; +public readonly mergify: boolean; +``` + +- *Type:* boolean +- *Default:* true + +Whether mergify should be enabled on this repository or not. + +--- + +##### ~~`mergifyOptions`~~Optional + +- *Deprecated:* use `githubOptions.mergifyOptions` instead + +```typescript +public readonly mergifyOptions: MergifyOptions; +``` + +- *Type:* projen.github.MergifyOptions +- *Default:* default options + +Options for mergify. + +--- + +##### ~~`projectType`~~Optional + +- *Deprecated:* no longer supported at the base project level + +```typescript +public readonly projectType: ProjectType; ``` -- *Type:* projen.Task +- *Type:* projen.ProjectType +- *Default:* ProjectType.UNKNOWN + +Which type of project this is (library/app). --- -##### `defaultTask`Optional +##### `projenCredentials`Optional ```typescript -public readonly defaultTask: Task; +public readonly projenCredentials: GithubCredentials; ``` -- *Type:* projen.Task - -This is the "default" task, the one that executes "projen". +- *Type:* projen.github.GithubCredentials +- *Default:* use a personal access token named PROJEN_GITHUB_TOKEN -Undefined if -the project is being ejected. +Choose a method of providing GitHub API access for projen workflows. --- -##### `initProject`Optional +##### ~~`projenTokenSecret`~~Optional + +- *Deprecated:* use `projenCredentials` ```typescript -public readonly initProject: InitProject; +public readonly projenTokenSecret: string; ``` -- *Type:* projen.InitProject +- *Type:* string +- *Default:* "PROJEN_GITHUB_TOKEN" -The options used when this project is bootstrapped via `projen new`. +The name of a secret which includes a GitHub Personal Access Token to be used by projen workflows. -It -includes the original set of options passed to the CLI and also the JSII -FQN of the project type. +This token needs to have the `repo`, `workflows` +and `packages` scope. --- -##### `parent`Optional +##### `readme`Optional ```typescript -public readonly parent: Project; +public readonly readme: SampleReadmeProps; ``` -- *Type:* projen.Project - -A parent project. +- *Type:* projen.SampleReadmeProps +- *Default:* { filename: 'README.md', contents: '# replace this' } -If undefined, this is the root project. +The README setup. --- -##### `projectType`Required +*Example* ```typescript -public readonly projectType: ProjectType; +"{ filename: 'readme.md', contents: '# title' }" ``` -- *Type:* projen.ProjectType - ---- -##### `autoApprove`Optional +##### `stale`Optional ```typescript -public readonly autoApprove: AutoApprove; +public readonly stale: boolean; ``` -- *Type:* projen.github.AutoApprove +- *Type:* boolean +- *Default:* false -Auto approve set up for this project. +Auto-close of stale issues and pull request. + +See `staleOptions` for options. --- -##### `devContainer`Optional +##### `staleOptions`Optional ```typescript -public readonly devContainer: DevContainer; +public readonly staleOptions: StaleOptions; ``` -- *Type:* projen.vscode.DevContainer +- *Type:* projen.github.StaleOptions +- *Default:* see defaults in `StaleOptions` -Access for .devcontainer.json (used for GitHub Codespaces). +Auto-close stale issues and pull requests. -This will be `undefined` if devContainer boolean is false +To disable set `stale` to `false`. --- -##### `github`Optional +##### `vscode`Optional ```typescript -public readonly github: GitHub; +public readonly vscode: boolean; ``` -- *Type:* projen.github.GitHub +- *Type:* boolean +- *Default:* true -Access all github components. +Enable VSCode integration. -This will be `undefined` for subprojects. +Enabled by default for root projects. Disabled for non-root projects. --- -##### `gitpod`Optional +##### `allowLibraryDependencies`Optional ```typescript -public readonly gitpod: Gitpod; +public readonly allowLibraryDependencies: boolean; ``` -- *Type:* projen.Gitpod +- *Type:* boolean +- *Default:* true -Access for Gitpod. +Allow the project to include `peerDependencies` and `bundledDependencies`. -This will be `undefined` if gitpod boolean is false +This is normally only allowed for libraries. For apps, there's no meaning +for specifying these. --- -##### `vscode`Optional +##### `authorEmail`Optional ```typescript -public readonly vscode: VsCode; +public readonly authorEmail: string; ``` -- *Type:* projen.vscode.VsCode - -Access all VSCode components. +- *Type:* string -This will be `undefined` for subprojects. +Author's e-mail. --- -##### ~~`allowLibraryDependencies`~~Required - -- *Deprecated:* use `package.allowLibraryDependencies` +##### `authorName`Optional ```typescript -public readonly allowLibraryDependencies: boolean; +public readonly authorName: string; ``` -- *Type:* boolean +- *Type:* string + +Author's name. --- -##### `artifactsDirectory`Required +##### `authorOrganization`Optional ```typescript -public readonly artifactsDirectory: string; +public readonly authorOrganization: boolean; ``` -- *Type:* string - -The build output directory. +- *Type:* boolean -An npm tarball will be created under the `js` -subdirectory. For example, if this is set to `dist` (the default), the npm -tarball will be placed under `dist/js/boom-boom-1.2.3.tg`. +Is the author an organization. --- -##### `artifactsJavascriptDirectory`Required +##### `authorUrl`Optional ```typescript -public readonly artifactsJavascriptDirectory: string; +public readonly authorUrl: string; ``` - *Type:* string -The location of the npm tarball after build (`${artifactsDirectory}/js`). +Author's URL / Website. --- -##### `bundler`Required +##### `autoDetectBin`Optional ```typescript -public readonly bundler: Bundler; +public readonly autoDetectBin: boolean; ``` -- *Type:* projen.javascript.Bundler +- *Type:* boolean +- *Default:* true ---- +Automatically add all executables under the `bin` directory to your `package.json` file under the `bin` section. -##### ~~`entrypoint`~~Required +--- -- *Deprecated:* use `package.entrypoint` +##### `bin`Optional ```typescript -public readonly entrypoint: string; +public readonly bin: {[ key: string ]: string}; ``` -- *Type:* string +- *Type:* {[ key: string ]: string} ---- +Binary programs vended with your module. -##### ~~`manifest`~~Required +You can use this option to add/customize how binaries are represented in +your `package.json`, but unless `autoDetectBin` is `false`, every +executable file under `bin` will automatically be added to this section. -- *Deprecated:* use `package.addField(x, y)` +--- + +##### `bugsEmail`Optional ```typescript -public readonly manifest: any; +public readonly bugsEmail: string; ``` -- *Type:* any +- *Type:* string + +The email address to which issues should be reported. --- -##### `npmrc`Required +##### `bugsUrl`Optional ```typescript -public readonly npmrc: NpmConfig; +public readonly bugsUrl: string; ``` -- *Type:* projen.javascript.NpmConfig +- *Type:* string -The .npmrc file. +The url to your project's issue tracker. --- -##### `package`Required +##### `bundledDeps`Optional ```typescript -public readonly package: NodePackage; +public readonly bundledDeps: string[]; ``` -- *Type:* projen.javascript.NodePackage +- *Type:* string[] -API for managing the node package. +List of dependencies to bundle into this module. ---- +These modules will be +added both to the `dependencies` section and `bundledDependencies` section of +your `package.json`. -##### ~~`packageManager`~~Required +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. -- *Deprecated:* use `package.packageManager` +--- + +##### `codeArtifactOptions`Optional ```typescript -public readonly packageManager: NodePackageManager; +public readonly codeArtifactOptions: CodeArtifactOptions; ``` -- *Type:* projen.javascript.NodePackageManager +- *Type:* projen.javascript.CodeArtifactOptions +- *Default:* undefined -The package manager to use. +Options for npm packages using AWS CodeArtifact. + +This is required if publishing packages to, or installing scoped packages from AWS CodeArtifact --- -##### `runScriptCommand`Required +##### `deps`Optional ```typescript -public readonly runScriptCommand: string; +public readonly deps: string[]; ``` -- *Type:* string +- *Type:* string[] +- *Default:* [] -The command to use to run scripts (e.g. `yarn run` or `npm run` depends on the package manager). +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. --- -##### `autoMerge`Optional +*Example* ```typescript -public readonly autoMerge: AutoMerge; +[ 'express', 'lodash', 'foo@^2' ] ``` -- *Type:* projen.github.AutoMerge - -Component that sets up mergify for merging approved pull requests. - ---- -##### `buildWorkflow`Optional +##### `description`Optional ```typescript -public readonly buildWorkflow: BuildWorkflow; +public readonly description: string; ``` -- *Type:* projen.build.BuildWorkflow +- *Type:* string -The PR build GitHub workflow. +The description is just a string that helps people understand the purpose of the package. -`undefined` if `buildWorkflow` is disabled. +It can be used when searching for packages in a package manager as well. +See https://classic.yarnpkg.com/en/docs/package-json/#toc-description --- -##### `buildWorkflowJobId`Optional +##### `devDeps`Optional ```typescript -public readonly buildWorkflowJobId: string; +public readonly devDeps: string[]; ``` -- *Type:* string +- *Type:* string[] +- *Default:* [] + +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 job ID of the build workflow. +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. --- -##### `jest`Optional +*Example* ```typescript -public readonly jest: Jest; +[ 'typescript', '@types/express' ] ``` -- *Type:* projen.javascript.Jest - -The Jest configuration (if enabled). - ---- -##### `maxNodeVersion`Optional +##### `entrypoint`Optional ```typescript -public readonly maxNodeVersion: string; +public readonly entrypoint: string; ``` - *Type:* string +- *Default:* "lib/index.js" -Maximum node version required by this package. +Module entrypoint (`main` in `package.json`). + +Set to an empty string to not include `main` in your package.json --- -##### `minNodeVersion`Optional +##### `homepage`Optional ```typescript -public readonly minNodeVersion: string; +public readonly homepage: string; ``` - *Type:* string -Minimum node.js version required by this package. +Package's Homepage / Website. --- -##### `npmignore`Optional +##### `keywords`Optional ```typescript -public readonly npmignore: IgnoreFile; +public readonly keywords: string[]; ``` -- *Type:* projen.IgnoreFile +- *Type:* string[] -The .npmignore file. +Keywords to include in `package.json`. --- -##### `prettier`Optional +##### `license`Optional ```typescript -public readonly prettier: Prettier; +public readonly license: string; ``` -- *Type:* projen.javascript.Prettier +- *Type:* string +- *Default:* "Apache-2.0" ---- +License's SPDX identifier. -##### ~~`publisher`~~Optional +See https://github.com/projen/projen/tree/main/license-text for a list of supported licenses. +Use the `licensed` option if you want to no license to be specified. -- *Deprecated:* use `release.publisher`. +--- + +##### `licensed`Optional ```typescript -public readonly publisher: Publisher; +public readonly licensed: boolean; ``` -- *Type:* projen.release.Publisher - -Package publisher. +- *Type:* boolean +- *Default:* true -This will be `undefined` if the project does not have a -release workflow. +Indicates if a license should be added. --- -##### `release`Optional +##### `maxNodeVersion`Optional ```typescript -public readonly release: Release; +public readonly maxNodeVersion: string; ``` -- *Type:* projen.release.Release +- *Type:* string +- *Default:* no max -Release management. +Minimum node.js version to require via `engines` (inclusive). --- -##### `upgradeWorkflow`Optional +##### `minNodeVersion`Optional ```typescript -public readonly upgradeWorkflow: UpgradeDependencies; +public readonly minNodeVersion: string; ``` -- *Type:* projen.javascript.UpgradeDependencies - -The upgrade workflow. - ---- - -#### Constants +- *Type:* string +- *Default:* no "engines" specified -| **Name** | **Type** | **Description** | -| --- | --- | --- | -| DEFAULT_TASK | string | The name of the default task (the task executed when `projen` is run without arguments). | +Minimum Node.js version to require via package.json `engines` (inclusive). --- -##### `DEFAULT_TASK`Required +##### `npmAccess`Optional ```typescript -public readonly DEFAULT_TASK: string; +public readonly npmAccess: NpmAccess; ``` -- *Type:* string - -The name of the default task (the task executed when `projen` is run without arguments). +- *Type:* projen.javascript.NpmAccess +- *Default:* for scoped packages (e.g. `foo@bar`), the default is `NpmAccess.RESTRICTED`, for non-scoped packages, the default is `NpmAccess.PUBLIC`. -Normally -this task should synthesize the project files. +Access level of the npm package. --- -### Cdk8sTeamTypeScriptProject +##### ~~`npmRegistry`~~Optional -#### Initializers +- *Deprecated:* use `npmRegistryUrl` instead ```typescript -import { Cdk8sTeamTypeScriptProject } from '@cdk8s/projen-common' - -new Cdk8sTeamTypeScriptProject(options: Cdk8sTeamTypeScriptProjectOptions) +public readonly npmRegistry: string; ``` -| **Name** | **Type** | **Description** | -| --- | --- | --- | -| options | Cdk8sTeamTypeScriptProjectOptions | *No description.* | - ---- - -##### `options`Required - -- *Type:* Cdk8sTeamTypeScriptProjectOptions - ---- +- *Type:* string -#### Methods +The host name of the npm registry to publish to. -| **Name** | **Description** | -| --- | --- | -| addExcludeFromCleanup | Exclude the matching files from pre-synth cleanup. | -| addGitIgnore | Adds a .gitignore pattern. | -| addPackageIgnore | Exclude these files from the bundled package. | -| addTask | Adds a new task to this project. | -| addTip | Prints a "tip" message during synthesis. | -| annotateGenerated | Marks the provided file(s) as being generated. | -| postSynthesize | Called after all components are synthesized. | -| preSynthesize | Called before all components are synthesized. | -| removeTask | Removes a task from a project. | -| runTaskCommand | Returns the shell command to execute in order to run a task. | -| synth | Synthesize all project files into `outdir`. | -| tryFindFile | Finds a file at the specified relative path within this project and all its subprojects. | -| tryFindJsonFile | Finds a json file by name. | -| tryFindObjectFile | Finds an object file (like JsonFile, YamlFile, etc.) by name. | -| tryRemoveFile | Finds a file at the specified relative path within this project and removes it. | -| addBins | *No description.* | -| addBundledDeps | Defines bundled dependencies. | -| addCompileCommand | DEPRECATED. | -| addDeps | Defines normal dependencies. | -| addDevDeps | Defines development/test dependencies. | -| addFields | Directly set fields in `package.json`. | -| addKeywords | Adds keywords to package.json (deduplicated). | -| addPeerDeps | Defines peer dependencies. | -| addScripts | Replaces the contents of multiple npm package.json scripts. | -| addTestCommand | DEPRECATED. | -| hasScript | Indicates if a script by the name name is defined. | -| removeScript | Removes the npm script (always successful). | -| renderWorkflowSetup | Returns the set of workflow steps which should be executed to bootstrap a workflow. | -| setScript | Replaces the contents of an npm package.json script. | +Cannot be set together with `npmRegistryUrl`. --- -##### `addExcludeFromCleanup` +##### `npmRegistryUrl`Optional ```typescript -public addExcludeFromCleanup(globs: string): void +public readonly npmRegistryUrl: string; ``` -Exclude the matching files from pre-synth cleanup. - -Can be used when, for example, some -source files include the projen marker and we don't want them to be erased during synth. - -###### `globs`Required - - *Type:* string +- *Default:* "https://registry.npmjs.org" -The glob patterns to match. +The base URL of the npm package registry. + +Must be a URL (e.g. start with "https://" or "http://") --- -##### `addGitIgnore` +##### `npmTokenSecret`Optional ```typescript -public addGitIgnore(pattern: string): void +public readonly npmTokenSecret: string; ``` -Adds a .gitignore pattern. - -###### `pattern`Required - - *Type:* string +- *Default:* "NPM_TOKEN" -The glob pattern to ignore. +GitHub secret which contains the NPM token to use when publishing packages. --- -##### `addPackageIgnore` +##### `packageManager`Optional ```typescript -public addPackageIgnore(pattern: string): void +public readonly packageManager: NodePackageManager; ``` -Exclude these files from the bundled package. - -Implemented by project types based on the -packaging mechanism. For example, `NodeProject` delegates this to `.npmignore`. - -###### `pattern`Required +- *Type:* projen.javascript.NodePackageManager +- *Default:* NodePackageManager.YARN_CLASSIC -- *Type:* string +The Node Package Manager used to execute scripts. --- -##### `addTask` +##### `packageName`Optional ```typescript -public addTask(name: string, props?: TaskOptions): Task +public readonly packageName: string; ``` -Adds a new task to this project. - -This will fail if the project already has -a task with this name. - -###### `name`Required - - *Type:* string +- *Default:* defaults to project name -The task name to add. - ---- - -###### `props`Optional - -- *Type:* projen.TaskOptions - -Task properties. +The "name" in package.json. --- -##### ~~`addTip`~~ +##### `peerDependencyOptions`Optional ```typescript -public addTip(message: string): void +public readonly peerDependencyOptions: PeerDependencyOptions; ``` -Prints a "tip" message during synthesis. - -###### `message`Required - -- *Type:* string +- *Type:* projen.javascript.PeerDependencyOptions -The message. +Options for `peerDeps`. --- -##### `annotateGenerated` +##### `peerDeps`Optional ```typescript -public annotateGenerated(glob: string): void +public readonly peerDeps: string[]; ``` -Marks the provided file(s) as being generated. +- *Type:* string[] +- *Default:* [] -This is achieved using the -github-linguist attributes. Generated files do not count against the -repository statistics and language breakdown. +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. -> [https://github.com/github/linguist/blob/master/docs/overrides.md](https://github.com/github/linguist/blob/master/docs/overrides.md) +--- -###### `glob`Required +##### `pnpmVersion`Optional + +```typescript +public readonly pnpmVersion: string; +``` - *Type:* string +- *Default:* "7" -the glob pattern to match (could be a file path). +The version of PNPM to use if using PNPM as a package manager. --- -##### `postSynthesize` +##### `repository`Optional ```typescript -public postSynthesize(): void +public readonly repository: string; ``` -Called after all components are synthesized. - -Order is *not* guaranteed. +- *Type:* string -##### `preSynthesize` +The repository is the location where the actual code for your package lives. -```typescript -public preSynthesize(): void -``` +See https://classic.yarnpkg.com/en/docs/package-json/#toc-repository -Called before all components are synthesized. +--- -##### `removeTask` +##### `repositoryDirectory`Optional ```typescript -public removeTask(name: string): Task +public readonly repositoryDirectory: string; ``` -Removes a task from a project. - -###### `name`Required - - *Type:* string -The name of the task to remove. +If the package.json for your package is not in the root directory (for example if it is part of a monorepo), you can specify the directory in which it lives. --- -##### `runTaskCommand` +##### `scopedPackagesOptions`Optional ```typescript -public runTaskCommand(task: Task): string +public readonly scopedPackagesOptions: ScopedPackagesOptions[]; ``` -Returns the shell command to execute in order to run a task. - -This will -typically be `npx projen TASK`. - -###### `task`Required - -- *Type:* projen.Task +- *Type:* projen.javascript.ScopedPackagesOptions[] +- *Default:* fetch all scoped packages from the public npm registry -The task for which the command is required. +Options for privately hosted scoped packages. --- -##### `synth` +##### ~~`scripts`~~Optional + +- *Deprecated:* use `project.addTask()` or `package.setScript()` ```typescript -public synth(): void +public readonly scripts: {[ key: string ]: string}; ``` -Synthesize all project files into `outdir`. +- *Type:* {[ key: string ]: string} +- *Default:* {} -1. Call "this.preSynthesize()" -2. Delete all generated files -3. Synthesize all sub-projects -4. Synthesize all components of this project -5. Call "postSynthesize()" for all components of this project -6. Call "this.postSynthesize()" +npm scripts to include. -##### `tryFindFile` +If a script has the same name as a standard script, +the standard script will be overwritten. +Also adds the script as a task. -```typescript -public tryFindFile(filePath: string): FileBase -``` +--- -Finds a file at the specified relative path within this project and all its subprojects. +##### `stability`Optional -###### `filePath`Required +```typescript +public readonly stability: string; +``` - *Type:* string -The file path. - -If this path is relative, it will be resolved -from the root of _this_ project. +Package's Stability. --- -##### ~~`tryFindJsonFile`~~ +##### `yarnBerryOptions`Optional ```typescript -public tryFindJsonFile(filePath: string): JsonFile +public readonly yarnBerryOptions: YarnBerryOptions; ``` -Finds a json file by name. - -###### `filePath`Required - -- *Type:* string +- *Type:* projen.javascript.YarnBerryOptions +- *Default:* Yarn Berry v4 with all default options -The file path. +Options for Yarn Berry. --- -##### `tryFindObjectFile` +##### `jsiiReleaseVersion`Optional ```typescript -public tryFindObjectFile(filePath: string): ObjectFile +public readonly jsiiReleaseVersion: string; ``` -Finds an object file (like JsonFile, YamlFile, etc.) by name. - -###### `filePath`Required - - *Type:* string +- *Default:* "latest" -The file path. +Version requirement of `publib` which is used to publish modules to npm. --- -##### `tryRemoveFile` +##### `majorVersion`Optional ```typescript -public tryRemoveFile(filePath: string): FileBase +public readonly majorVersion: number; ``` -Finds a file at the specified relative path within this project and removes it. - -###### `filePath`Required - -- *Type:* string +- *Type:* number +- *Default:* Major version is not enforced. -The file path. +Major version to release from the default branch. -If this path is relative, it will be -resolved from the root of _this_ project. +If this is specified, we bump the latest version of this major version line. +If not specified, we bump the global latest version. --- -##### `addBins` +##### `minMajorVersion`Optional ```typescript -public addBins(bins: {[ key: string ]: string}): void +public readonly minMajorVersion: number; ``` -###### `bins`Required +- *Type:* number +- *Default:* No minimum version is being enforced -- *Type:* {[ key: string ]: string} +Minimal Major version to release. + +This can be useful to set to 1, as breaking changes before the 1.x major +release are not incrementing the major version number. + +Can not be set together with `majorVersion`. --- -##### `addBundledDeps` +##### `npmDistTag`Optional ```typescript -public addBundledDeps(deps: string): void +public readonly npmDistTag: string; ``` -Defines bundled dependencies. - -Bundled dependencies will be added as normal dependencies as well as to the -`bundledDependencies` section of your `package.json`. - -###### `deps`Required - - *Type:* string +- *Default:* "latest" -Names modules to install. +The npmDistTag to use when publishing from the default branch. -By default, the the dependency will -be installed in the next `npx projen` run and the version will be recorded -in your `package.json` file. You can upgrade manually or using `yarn -add/upgrade`. If you wish to specify a version range use this syntax: -`module@^7`. +To set the npm dist-tag for release branches, set the `npmDistTag` property +for each branch. --- -##### ~~`addCompileCommand`~~ +##### `postBuildSteps`Optional ```typescript -public addCompileCommand(commands: string): void +public readonly postBuildSteps: JobStep[]; ``` -DEPRECATED. - -###### `commands`Required +- *Type:* projen.github.workflows.JobStep[] +- *Default:* [] -- *Type:* string +Steps to execute after build as part of the release workflow. --- -##### `addDeps` +##### `prerelease`Optional ```typescript -public addDeps(deps: string): void +public readonly prerelease: string; ``` -Defines normal dependencies. - -###### `deps`Required - - *Type:* string +- *Default:* normal semantic versions -Names modules to install. - -By default, the the dependency will -be installed in the next `npx projen` run and the version will be recorded -in your `package.json` file. You can upgrade manually or using `yarn -add/upgrade`. If you wish to specify a version range use this syntax: -`module@^7`. +Bump versions from the default branch as pre-releases (e.g. "beta", "alpha", "pre"). --- -##### `addDevDeps` +##### `publishDryRun`Optional ```typescript -public addDevDeps(deps: string): void +public readonly publishDryRun: boolean; ``` -Defines development/test dependencies. - -###### `deps`Required - -- *Type:* string - -Names modules to install. +- *Type:* boolean +- *Default:* false -By default, the the dependency will -be installed in the next `npx projen` run and the version will be recorded -in your `package.json` file. You can upgrade manually or using `yarn -add/upgrade`. If you wish to specify a version range use this syntax: -`module@^7`. +Instead of actually publishing to package managers, just print the publishing command. --- -##### `addFields` +##### `publishTasks`Optional ```typescript -public addFields(fields: {[ key: string ]: any}): void +public readonly publishTasks: boolean; ``` -Directly set fields in `package.json`. - -###### `fields`Required +- *Type:* boolean +- *Default:* false -- *Type:* {[ key: string ]: any} +Define publishing tasks that can be executed manually as well as workflows. -The fields to set. +Normally, publishing only happens within automated workflows. Enable this +in order to create a publishing task for each publishing activity. --- -##### `addKeywords` +##### `releasableCommits`Optional ```typescript -public addKeywords(keywords: string): void +public readonly releasableCommits: ReleasableCommits; ``` -Adds keywords to package.json (deduplicated). - -###### `keywords`Required - -- *Type:* string +- *Type:* projen.ReleasableCommits +- *Default:* ReleasableCommits.everyCommit() -The keywords to add. +Find commits that should be considered releasable Used to decide if a release is required. --- -##### `addPeerDeps` +##### `releaseBranches`Optional ```typescript -public addPeerDeps(deps: string): void +public readonly releaseBranches: {[ key: string ]: BranchOptions}; ``` -Defines peer dependencies. +- *Type:* {[ key: string ]: projen.release.BranchOptions} +- *Default:* no additional branches are used for release. you can use `addBranch()` to add additional branches. -When adding peer dependencies, a devDependency will also be added on the -pinned version of the declared peer. This will ensure that you are testing -your code against the minimum version required from your consumers. +Defines additional release branches. -###### `deps`Required +A workflow will be created for each +release branch which will publish releases from commits in this branch. +Each release branch _must_ be assigned a major version number which is used +to enforce that versions published from that branch always use that major +version. If multiple branches are used, the `majorVersion` field must also +be provided for the default branch. + +--- + +##### ~~`releaseEveryCommit`~~Optional + +- *Deprecated:* Use `releaseTrigger: ReleaseTrigger.continuous()` instead -- *Type:* string +```typescript +public readonly releaseEveryCommit: boolean; +``` -Names modules to install. +- *Type:* boolean +- *Default:* true -By default, the the dependency will -be installed in the next `npx projen` run and the version will be recorded -in your `package.json` file. You can upgrade manually or using `yarn -add/upgrade`. If you wish to specify a version range use this syntax: -`module@^7`. +Automatically release new versions every commit to one of branches in `releaseBranches`. --- -##### `addScripts` +##### `releaseFailureIssue`Optional ```typescript -public addScripts(scripts: {[ key: string ]: string}): void +public readonly releaseFailureIssue: boolean; ``` -Replaces the contents of multiple npm package.json scripts. - -###### `scripts`Required - -- *Type:* {[ key: string ]: string} +- *Type:* boolean +- *Default:* false -The scripts to set. +Create a github issue on every failed publishing task. --- -##### ~~`addTestCommand`~~ +##### `releaseFailureIssueLabel`Optional ```typescript -public addTestCommand(commands: string): void +public readonly releaseFailureIssueLabel: string; ``` -DEPRECATED. +- *Type:* string +- *Default:* "failed-release" -###### `commands`Required +The label to apply to issues indicating publish failures. -- *Type:* string +Only applies if `releaseFailureIssue` is true. --- -##### ~~`hasScript`~~ +##### ~~`releaseSchedule`~~Optional + +- *Deprecated:* Use `releaseTrigger: ReleaseTrigger.scheduled()` instead ```typescript -public hasScript(name: string): boolean +public readonly releaseSchedule: string; ``` -Indicates if a script by the name name is defined. - -###### `name`Required - - *Type:* string +- *Default:* no scheduled releases -The name of the script. +CRON schedule to trigger new releases. --- -##### `removeScript` +##### `releaseTagPrefix`Optional ```typescript -public removeScript(name: string): void +public readonly releaseTagPrefix: string; ``` -Removes the npm script (always successful). - -###### `name`Required - - *Type:* string +- *Default:* "v" -The name of the script. +Automatically add the given prefix to release tags. Useful if you are releasing on multiple branches with overlapping version numbers. + +Note: this prefix is used to detect the latest tagged version +when bumping, so if you change this on a project with an existing version +history, you may need to manually tag your latest release +with the new prefix. --- -##### `renderWorkflowSetup` +##### `releaseTrigger`Optional ```typescript -public renderWorkflowSetup(options?: RenderWorkflowSetupOptions): JobStep[] +public readonly releaseTrigger: ReleaseTrigger; ``` -Returns the set of workflow steps which should be executed to bootstrap a workflow. - -###### `options`Optional - -- *Type:* projen.javascript.RenderWorkflowSetupOptions +- *Type:* projen.release.ReleaseTrigger +- *Default:* Continuous releases (`ReleaseTrigger.continuous()`) -Options. +The release trigger to use. --- -##### `setScript` +##### `releaseWorkflowName`Optional ```typescript -public setScript(name: string, command: string): void +public readonly releaseWorkflowName: string; ``` -Replaces the contents of an npm package.json script. - -###### `name`Required - - *Type:* string +- *Default:* "Release" -The script name. +The name of the default release workflow. --- -###### `command`Required +##### `releaseWorkflowSetupSteps`Optional -- *Type:* string +```typescript +public readonly releaseWorkflowSetupSteps: JobStep[]; +``` -The command to execute. +- *Type:* projen.github.workflows.JobStep[] + +A set of workflow steps to execute in order to setup the workflow container. --- +##### `versionrcOptions`Optional -#### Properties +```typescript +public readonly versionrcOptions: {[ key: string ]: any}; +``` -| **Name** | **Type** | **Description** | -| --- | --- | --- | -| buildTask | projen.Task | *No description.* | -| commitGenerated | boolean | Whether to commit the managed files by default. | -| compileTask | projen.Task | *No description.* | -| components | projen.Component[] | Returns all the components within this project. | -| deps | projen.Dependencies | Project dependencies. | -| ejected | boolean | Whether or not the project is being ejected. | -| files | projen.FileBase[] | All files in this project. | -| gitattributes | projen.GitAttributesFile | The .gitattributes file for this repository. | -| gitignore | projen.IgnoreFile | .gitignore. | -| logger | projen.Logger | Logging utilities. | -| name | string | Project name. | -| outdir | string | Absolute output directory of this project. | -| packageTask | projen.Task | *No description.* | -| postCompileTask | projen.Task | *No description.* | -| preCompileTask | projen.Task | *No description.* | -| projectBuild | projen.ProjectBuild | Manages the build process of the project. | -| projenCommand | string | The command to use in order to run the projen CLI. | -| root | projen.Project | The root project. | -| subprojects | projen.Project[] | Returns all the subprojects within this project. | -| tasks | projen.Tasks | Project tasks. | -| testTask | projen.Task | *No description.* | -| defaultTask | projen.Task | This is the "default" task, the one that executes "projen". | -| initProject | projen.InitProject | The options used when this project is bootstrapped via `projen new`. | -| parent | projen.Project | A parent project. | -| projectType | projen.ProjectType | *No description.* | -| autoApprove | projen.github.AutoApprove | Auto approve set up for this project. | -| devContainer | projen.vscode.DevContainer | Access for .devcontainer.json (used for GitHub Codespaces). | -| github | projen.github.GitHub | Access all github components. | -| gitpod | projen.Gitpod | Access for Gitpod. | -| vscode | projen.vscode.VsCode | Access all VSCode components. | -| allowLibraryDependencies | boolean | *No description.* | -| artifactsDirectory | string | The build output directory. | -| artifactsJavascriptDirectory | string | The location of the npm tarball after build (`${artifactsDirectory}/js`). | -| bundler | projen.javascript.Bundler | *No description.* | -| entrypoint | string | *No description.* | -| manifest | any | *No description.* | -| npmrc | projen.javascript.NpmConfig | The .npmrc file. | -| package | projen.javascript.NodePackage | API for managing the node package. | -| packageManager | projen.javascript.NodePackageManager | The package manager to use. | -| runScriptCommand | string | The command to use to run scripts (e.g. `yarn run` or `npm run` depends on the package manager). | -| autoMerge | projen.github.AutoMerge | Component that sets up mergify for merging approved pull requests. | -| buildWorkflow | projen.build.BuildWorkflow | The PR build GitHub workflow. | -| buildWorkflowJobId | string | The job ID of the build workflow. | -| jest | projen.javascript.Jest | The Jest configuration (if enabled). | -| maxNodeVersion | string | Maximum node version required by this package. | -| minNodeVersion | string | Minimum node.js version required by this package. | -| npmignore | projen.IgnoreFile | The .npmignore file. | -| prettier | projen.javascript.Prettier | *No description.* | -| publisher | projen.release.Publisher | Package publisher. | -| release | projen.release.Release | Release management. | -| upgradeWorkflow | projen.javascript.UpgradeDependencies | The upgrade workflow. | -| docsDirectory | string | *No description.* | -| libdir | string | The directory in which compiled .js files reside. | -| srcdir | string | The directory in which the .ts sources reside. | -| testdir | string | The directory in which tests reside. | -| tsconfigDev | projen.javascript.TypescriptConfig | A typescript configuration file which covers all files (sources, tests, projen). | -| watchTask | projen.Task | The "watch" task. | -| docgen | boolean | *No description.* | -| eslint | projen.javascript.Eslint | *No description.* | -| tsconfig | projen.javascript.TypescriptConfig | *No description.* | -| tsconfigEslint | projen.javascript.TypescriptConfig | *No description.* | +- *Type:* {[ key: string ]: any} +- *Default:* standard configuration applicable for GitHub repositories + +Custom configuration used when creating changelog with standard-version package. + +Given values either append to default configuration or overwrite values in it. --- -##### `buildTask`Required +##### `workflowContainerImage`Optional ```typescript -public readonly buildTask: Task; +public readonly workflowContainerImage: string; ``` -- *Type:* projen.Task +- *Type:* string +- *Default:* default image + +Container image to use for GitHub workflows. --- -##### `commitGenerated`Required +##### `workflowRunsOn`Optional ```typescript -public readonly commitGenerated: boolean; +public readonly workflowRunsOn: string[]; ``` -- *Type:* boolean +- *Type:* string[] +- *Default:* ["ubuntu-latest"] -Whether to commit the managed files by default. +Github Runner selection labels. --- -##### `compileTask`Required +##### `workflowRunsOnGroup`Optional ```typescript -public readonly compileTask: Task; +public readonly workflowRunsOnGroup: GroupRunnerOptions; ``` -- *Type:* projen.Task +- *Type:* projen.GroupRunnerOptions + +Github Runner Group selection options. --- -##### `components`Required +##### `defaultReleaseBranch`Required ```typescript -public readonly components: Component[]; +public readonly defaultReleaseBranch: string; ``` -- *Type:* projen.Component[] +- *Type:* string +- *Default:* "main" -Returns all the components within this project. +The name of the main release branch. --- -##### `deps`Required +##### `artifactsDirectory`Optional ```typescript -public readonly deps: Dependencies; +public readonly artifactsDirectory: string; ``` -- *Type:* projen.Dependencies +- *Type:* string +- *Default:* "dist" -Project dependencies. +A directory which will contain build artifacts. --- -##### `ejected`Required +##### `autoApproveUpgrades`Optional ```typescript -public readonly ejected: boolean; +public readonly autoApproveUpgrades: boolean; ``` - *Type:* boolean +- *Default:* true -Whether or not the project is being ejected. +Automatically approve deps upgrade PRs, allowing them to be merged by mergify (if configued). + +Throw if set to true but `autoApproveOptions` are not defined. --- -##### `files`Required +##### `buildWorkflow`Optional ```typescript -public readonly files: FileBase[]; +public readonly buildWorkflow: boolean; ``` -- *Type:* projen.FileBase[] +- *Type:* boolean +- *Default:* true if not a subproject -All files in this project. +Define a GitHub workflow for building PRs. --- -##### `gitattributes`Required +##### `buildWorkflowTriggers`Optional ```typescript -public readonly gitattributes: GitAttributesFile; +public readonly buildWorkflowTriggers: Triggers; ``` -- *Type:* projen.GitAttributesFile +- *Type:* projen.github.workflows.Triggers +- *Default:* "{ pullRequest: {}, workflowDispatch: {} }" -The .gitattributes file for this repository. +Build workflow triggers. --- -##### `gitignore`Required +##### `bundlerOptions`Optional ```typescript -public readonly gitignore: IgnoreFile; +public readonly bundlerOptions: BundlerOptions; ``` -- *Type:* projen.IgnoreFile +- *Type:* projen.javascript.BundlerOptions -.gitignore. +Options for `Bundler`. --- -##### `logger`Required +##### `codeCov`Optional ```typescript -public readonly logger: Logger; +public readonly codeCov: boolean; ``` -- *Type:* projen.Logger +- *Type:* boolean +- *Default:* false -Logging utilities. +Define a GitHub workflow step for sending code coverage metrics to https://codecov.io/ Uses codecov/codecov-action@v3 A secret is required for private repos. Configured with `@codeCovTokenSecret`. --- -##### `name`Required +##### `codeCovTokenSecret`Optional ```typescript -public readonly name: string; +public readonly codeCovTokenSecret: string; ``` - *Type:* string +- *Default:* if this option is not specified, only public repositories are supported -Project name. +Define the secret name for a specified https://codecov.io/ token A secret is required to send coverage for private repositories. --- -##### `outdir`Required +##### `copyrightOwner`Optional ```typescript -public readonly outdir: string; +public readonly copyrightOwner: string; ``` - *Type:* string +- *Default:* defaults to the value of authorName or "" if `authorName` is undefined. -Absolute output directory of this project. +License copyright owner. --- -##### `packageTask`Required +##### `copyrightPeriod`Optional ```typescript -public readonly packageTask: Task; +public readonly copyrightPeriod: string; ``` -- *Type:* projen.Task +- *Type:* string +- *Default:* current year + +The copyright years to put in the LICENSE file. --- -##### `postCompileTask`Required +##### `dependabot`Optional ```typescript -public readonly postCompileTask: Task; +public readonly dependabot: boolean; ``` -- *Type:* projen.Task - ---- - -##### `preCompileTask`Required +- *Type:* boolean +- *Default:* false -```typescript -public readonly preCompileTask: Task; -``` +Use dependabot to handle dependency upgrades. -- *Type:* projen.Task +Cannot be used in conjunction with `depsUpgrade`. --- -##### `projectBuild`Required +##### `dependabotOptions`Optional ```typescript -public readonly projectBuild: ProjectBuild; +public readonly dependabotOptions: DependabotOptions; ``` -- *Type:* projen.ProjectBuild +- *Type:* projen.github.DependabotOptions +- *Default:* default options -Manages the build process of the project. +Options for dependabot. --- -##### `projenCommand`Required +##### `depsUpgrade`Optional ```typescript -public readonly projenCommand: string; +public readonly depsUpgrade: boolean; ``` -- *Type:* string +- *Type:* boolean +- *Default:* true -The command to use in order to run the projen CLI. +Use tasks and github workflows to handle dependency upgrades. + +Cannot be used in conjunction with `dependabot`. --- -##### `root`Required +##### `depsUpgradeOptions`Optional ```typescript -public readonly root: Project; +public readonly depsUpgradeOptions: UpgradeDependenciesOptions; ``` -- *Type:* projen.Project +- *Type:* projen.javascript.UpgradeDependenciesOptions +- *Default:* default options -The root project. +Options for `UpgradeDependencies`. --- -##### `subprojects`Required +##### `gitignore`Optional ```typescript -public readonly subprojects: Project[]; +public readonly gitignore: string[]; ``` -- *Type:* projen.Project[] +- *Type:* string[] -Returns all the subprojects within this project. +Additional entries to .gitignore. --- -##### `tasks`Required +##### `jest`Optional ```typescript -public readonly tasks: Tasks; +public readonly jest: boolean; ``` -- *Type:* projen.Tasks +- *Type:* boolean +- *Default:* true -Project tasks. +Setup jest unit tests. --- -##### `testTask`Required +##### `jestOptions`Optional ```typescript -public readonly testTask: Task; +public readonly jestOptions: JestOptions; ``` -- *Type:* projen.Task +- *Type:* projen.javascript.JestOptions +- *Default:* default options + +Jest options. --- -##### `defaultTask`Optional +##### `mutableBuild`Optional ```typescript -public readonly defaultTask: Task; +public readonly mutableBuild: boolean; ``` -- *Type:* projen.Task +- *Type:* boolean +- *Default:* true -This is the "default" task, the one that executes "projen". +Automatically update files modified during builds to pull-request branches. -Undefined if -the project is being ejected. +This means +that any files synthesized by projen or e.g. test snapshots will always be up-to-date +before a PR is merged. + +Implies that PR builds do not have anti-tamper checks. --- -##### `initProject`Optional +##### ~~`npmignore`~~Optional + +- *Deprecated:* - use `project.addPackageIgnore` ```typescript -public readonly initProject: InitProject; +public readonly npmignore: string[]; ``` -- *Type:* projen.InitProject - -The options used when this project is bootstrapped via `projen new`. +- *Type:* string[] -It -includes the original set of options passed to the CLI and also the JSII -FQN of the project type. +Additional entries to .npmignore. --- -##### `parent`Optional +##### `npmignoreEnabled`Optional ```typescript -public readonly parent: Project; +public readonly npmignoreEnabled: boolean; ``` -- *Type:* projen.Project - -A parent project. +- *Type:* boolean +- *Default:* true -If undefined, this is the root project. +Defines an .npmignore file. Normally this is only needed for libraries that are packaged as tarballs. --- -##### `projectType`Required +##### `npmIgnoreOptions`Optional ```typescript -public readonly projectType: ProjectType; +public readonly npmIgnoreOptions: IgnoreFileOptions; ``` -- *Type:* projen.ProjectType +- *Type:* projen.IgnoreFileOptions + +Configuration options for .npmignore file. --- -##### `autoApprove`Optional +##### `package`Optional ```typescript -public readonly autoApprove: AutoApprove; +public readonly package: boolean; ``` -- *Type:* projen.github.AutoApprove +- *Type:* boolean +- *Default:* true -Auto approve set up for this project. +Defines a `package` task that will produce an npm tarball under the artifacts directory (e.g. `dist`). --- -##### `devContainer`Optional +##### `prettier`Optional ```typescript -public readonly devContainer: DevContainer; +public readonly prettier: boolean; ``` -- *Type:* projen.vscode.DevContainer - -Access for .devcontainer.json (used for GitHub Codespaces). +- *Type:* boolean +- *Default:* false -This will be `undefined` if devContainer boolean is false +Setup prettier. --- -##### `github`Optional +##### `prettierOptions`Optional ```typescript -public readonly github: GitHub; +public readonly prettierOptions: PrettierOptions; ``` -- *Type:* projen.github.GitHub - -Access all github components. +- *Type:* projen.javascript.PrettierOptions +- *Default:* default options -This will be `undefined` for subprojects. +Prettier options. --- -##### `gitpod`Optional +##### `projenDevDependency`Optional ```typescript -public readonly gitpod: Gitpod; +public readonly projenDevDependency: boolean; ``` -- *Type:* projen.Gitpod - -Access for Gitpod. +- *Type:* boolean +- *Default:* true -This will be `undefined` if gitpod boolean is false +Indicates of "projen" should be installed as a devDependency. --- -##### `vscode`Optional +##### `projenrcJs`Optional ```typescript -public readonly vscode: VsCode; +public readonly projenrcJs: boolean; ``` -- *Type:* projen.vscode.VsCode - -Access all VSCode components. +- *Type:* boolean +- *Default:* true if projenrcJson is false -This will be `undefined` for subprojects. +Generate (once) .projenrc.js (in JavaScript). Set to `false` in order to disable .projenrc.js generation. --- -##### ~~`allowLibraryDependencies`~~Required - -- *Deprecated:* use `package.allowLibraryDependencies` +##### `projenrcJsOptions`Optional ```typescript -public readonly allowLibraryDependencies: boolean; +public readonly projenrcJsOptions: ProjenrcOptions; ``` -- *Type:* boolean +- *Type:* projen.javascript.ProjenrcOptions +- *Default:* default options + +Options for .projenrc.js. --- -##### `artifactsDirectory`Required +##### `projenVersion`Optional ```typescript -public readonly artifactsDirectory: string; +public readonly projenVersion: string; ``` - *Type:* string +- *Default:* Defaults to the latest version. -The build output directory. - -An npm tarball will be created under the `js` -subdirectory. For example, if this is set to `dist` (the default), the npm -tarball will be placed under `dist/js/boom-boom-1.2.3.tg`. +Version of projen to install. --- -##### `artifactsJavascriptDirectory`Required +##### `pullRequestTemplate`Optional ```typescript -public readonly artifactsJavascriptDirectory: string; +public readonly pullRequestTemplate: boolean; ``` -- *Type:* string +- *Type:* boolean +- *Default:* true -The location of the npm tarball after build (`${artifactsDirectory}/js`). +Include a GitHub pull request template. --- -##### `bundler`Required +##### `pullRequestTemplateContents`Optional ```typescript -public readonly bundler: Bundler; +public readonly pullRequestTemplateContents: string[]; ``` -- *Type:* projen.javascript.Bundler +- *Type:* string[] +- *Default:* default content ---- +The contents of the pull request template. -##### ~~`entrypoint`~~Required +--- -- *Deprecated:* use `package.entrypoint` +##### `release`Optional ```typescript -public readonly entrypoint: string; +public readonly release: boolean; ``` -- *Type:* string +- *Type:* boolean +- *Default:* true (false for subprojects) ---- +Add release management to this project. -##### ~~`manifest`~~Required +--- -- *Deprecated:* use `package.addField(x, y)` +##### `releaseToNpm`Optional ```typescript -public readonly manifest: any; +public readonly releaseToNpm: boolean; ``` -- *Type:* any +- *Type:* boolean +- *Default:* false + +Automatically release to npm when new versions are introduced. --- -##### `npmrc`Required +##### ~~`releaseWorkflow`~~Optional + +- *Deprecated:* see `release`. ```typescript -public readonly npmrc: NpmConfig; +public readonly releaseWorkflow: boolean; ``` -- *Type:* projen.javascript.NpmConfig +- *Type:* boolean +- *Default:* true if not a subproject -The .npmrc file. +DEPRECATED: renamed to `release`. --- -##### `package`Required +##### `workflowBootstrapSteps`Optional ```typescript -public readonly package: NodePackage; +public readonly workflowBootstrapSteps: JobStep[]; ``` -- *Type:* projen.javascript.NodePackage +- *Type:* projen.github.workflows.JobStep[] +- *Default:* "yarn install --frozen-lockfile && yarn projen" -API for managing the node package. +Workflow steps to use in order to bootstrap this repo. --- -##### ~~`packageManager`~~Required - -- *Deprecated:* use `package.packageManager` +##### `workflowGitIdentity`Optional ```typescript -public readonly packageManager: NodePackageManager; +public readonly workflowGitIdentity: GitIdentity; ``` -- *Type:* projen.javascript.NodePackageManager +- *Type:* projen.github.GitIdentity +- *Default:* GitHub Actions -The package manager to use. +The git identity to use in workflows. --- -##### `runScriptCommand`Required +##### `workflowNodeVersion`Optional ```typescript -public readonly runScriptCommand: string; +public readonly workflowNodeVersion: string; ``` - *Type:* string +- *Default:* same as `minNodeVersion` -The command to use to run scripts (e.g. `yarn run` or `npm run` depends on the package manager). +The node version to use in GitHub workflows. --- -##### `autoMerge`Optional +##### `workflowPackageCache`Optional ```typescript -public readonly autoMerge: AutoMerge; +public readonly workflowPackageCache: boolean; ``` -- *Type:* projen.github.AutoMerge +- *Type:* boolean +- *Default:* false -Component that sets up mergify for merging approved pull requests. +Enable Node.js package cache in GitHub workflows. --- -##### `buildWorkflow`Optional +##### `disableTsconfig`Optional ```typescript -public readonly buildWorkflow: BuildWorkflow; +public readonly disableTsconfig: boolean; ``` -- *Type:* projen.build.BuildWorkflow - -The PR build GitHub workflow. +- *Type:* boolean +- *Default:* false -`undefined` if `buildWorkflow` is disabled. +Do not generate a `tsconfig.json` file (used by jsii projects since tsconfig.json is generated by the jsii compiler). --- -##### `buildWorkflowJobId`Optional +##### `disableTsconfigDev`Optional ```typescript -public readonly buildWorkflowJobId: string; +public readonly disableTsconfigDev: boolean; ``` -- *Type:* string +- *Type:* boolean +- *Default:* false -The job ID of the build workflow. +Do not generate a `tsconfig.dev.json` file. --- -##### `jest`Optional +##### `docgen`Optional ```typescript -public readonly jest: Jest; +public readonly docgen: boolean; ``` -- *Type:* projen.javascript.Jest +- *Type:* boolean +- *Default:* false -The Jest configuration (if enabled). +Docgen by Typedoc. --- -##### `maxNodeVersion`Optional +##### `docsDirectory`Optional ```typescript -public readonly maxNodeVersion: string; +public readonly docsDirectory: string; ``` - *Type:* string +- *Default:* "docs" -Maximum node version required by this package. +Docs directory. --- -##### `minNodeVersion`Optional +##### `entrypointTypes`Optional ```typescript -public readonly minNodeVersion: string; +public readonly entrypointTypes: string; ``` - *Type:* string +- *Default:* .d.ts file derived from the project's entrypoint (usually lib/index.d.ts) -Minimum node.js version required by this package. +The .d.ts file that includes the type declarations for this module. --- -##### `npmignore`Optional +##### `eslint`Optional ```typescript -public readonly npmignore: IgnoreFile; +public readonly eslint: boolean; ``` -- *Type:* projen.IgnoreFile +- *Type:* boolean +- *Default:* true -The .npmignore file. +Setup eslint. --- -##### `prettier`Optional +##### `eslintOptions`Optional ```typescript -public readonly prettier: Prettier; +public readonly eslintOptions: EslintOptions; ``` -- *Type:* projen.javascript.Prettier +- *Type:* projen.javascript.EslintOptions +- *Default:* opinionated default options ---- +Eslint options. -##### ~~`publisher`~~Optional +--- -- *Deprecated:* use `release.publisher`. +##### `libdir`Optional ```typescript -public readonly publisher: Publisher; +public readonly libdir: string; ``` -- *Type:* projen.release.Publisher - -Package publisher. +- *Type:* string +- *Default:* "lib" -This will be `undefined` if the project does not have a -release workflow. +Typescript artifacts output directory. --- -##### `release`Optional +##### `projenrcTs`Optional ```typescript -public readonly release: Release; +public readonly projenrcTs: boolean; ``` -- *Type:* projen.release.Release +- *Type:* boolean +- *Default:* false -Release management. +Use TypeScript for your projenrc file (`.projenrc.ts`). --- -##### `upgradeWorkflow`Optional +##### `projenrcTsOptions`Optional ```typescript -public readonly upgradeWorkflow: UpgradeDependencies; +public readonly projenrcTsOptions: ProjenrcOptions; ``` -- *Type:* projen.javascript.UpgradeDependencies +- *Type:* projen.typescript.ProjenrcOptions -The upgrade workflow. +Options for .projenrc.ts. --- -##### `docsDirectory`Required +##### `sampleCode`Optional ```typescript -public readonly docsDirectory: string; +public readonly sampleCode: boolean; ``` -- *Type:* string +- *Type:* boolean +- *Default:* true + +Generate one-time sample in `src/` and `test/` if there are no files there. --- -##### `libdir`Required +##### `srcdir`Optional ```typescript -public readonly libdir: string; +public readonly srcdir: string; ``` - *Type:* string +- *Default:* "src" -The directory in which compiled .js files reside. +Typescript sources directory. --- -##### `srcdir`Required +##### `testdir`Optional ```typescript -public readonly srcdir: string; +public readonly testdir: string; ``` - *Type:* string +- *Default:* "test" -The directory in which the .ts sources reside. +Jest tests directory. Tests files should be named `xxx.test.ts`. + +If this directory is under `srcdir` (e.g. `src/test`, `src/__tests__`), +then tests are going to be compiled into `lib/` and executed as javascript. +If the test directory is outside of `src`, then we configure jest to +compile the code in-memory. --- -##### `testdir`Required +##### `tsconfig`Optional ```typescript -public readonly testdir: string; +public readonly tsconfig: TypescriptConfigOptions; ``` -- *Type:* string +- *Type:* projen.javascript.TypescriptConfigOptions +- *Default:* default options -The directory in which tests reside. +Custom TSConfig. --- -##### `tsconfigDev`Required +##### `tsconfigDev`Optional ```typescript -public readonly tsconfigDev: TypescriptConfig; +public readonly tsconfigDev: TypescriptConfigOptions; ``` -- *Type:* projen.javascript.TypescriptConfig +- *Type:* projen.javascript.TypescriptConfigOptions +- *Default:* use the production tsconfig options -A typescript configuration file which covers all files (sources, tests, projen). +Custom tsconfig options for the development tsconfig.json file (used for testing). --- -##### `watchTask`Required +##### `tsconfigDevFile`Optional ```typescript -public readonly watchTask: Task; +public readonly tsconfigDevFile: string; ``` -- *Type:* projen.Task +- *Type:* string +- *Default:* "tsconfig.dev.json" -The "watch" task. +The name of the development tsconfig.json file. --- -##### `docgen`Optional +##### `typescriptVersion`Optional ```typescript -public readonly docgen: boolean; +public readonly typescriptVersion: string; ``` -- *Type:* boolean +- *Type:* string +- *Default:* "latest" + +TypeScript version to use. + +NOTE: Typescript is not semantically versioned and should remain on the +same minor, so we recommend using a `~` dependency (e.g. `~1.2.3`). --- -##### `eslint`Optional +##### `additionalCompilerDependencies`Optional ```typescript -public readonly eslint: Eslint; +public readonly additionalCompilerDependencies: string[]; ``` -- *Type:* projen.javascript.Eslint +- *Type:* string[] +- *Default:* No additional compiler dependencies. + +Packages that compile the project apart from the typescript/jsii compiler. + +Any package that produces a published artifact should be included in this list. --- -##### `tsconfig`Optional +##### `backport`Optional ```typescript -public readonly tsconfig: TypescriptConfig; +public readonly backport: boolean; ``` -- *Type:* projen.javascript.TypescriptConfig +- *Type:* boolean +- *Default:* false + +Configure a backport workflow. --- -##### `tsconfigEslint`Optional +##### `backportBranches`Optional ```typescript -public readonly tsconfigEslint: TypescriptConfig; +public readonly backportBranches: string[]; ``` -- *Type:* projen.javascript.TypescriptConfig - ---- - -#### Constants +- *Type:* string[] +- *Default:* Will be derived from PR labels. -| **Name** | **Type** | **Description** | -| --- | --- | --- | -| DEFAULT_TASK | string | The name of the default task (the task executed when `projen` is run without arguments). | +Branches to backport to. --- -##### `DEFAULT_TASK`Required +##### `repoName`Optional ```typescript -public readonly DEFAULT_TASK: string; +public readonly repoName: string; ``` - *Type:* string +- *Default:* the package name. -The name of the default task (the task executed when `projen` is run without arguments). - -Normally -this task should synthesize the project files. +The name of the repository inside the cdk8s-team org where the code of the project is locate in. --- + diff --git a/package.json b/package.json index b38665ca..14671f7d 100644 --- a/package.json +++ b/package.json @@ -40,10 +40,10 @@ "devDependencies": { "@types/jest": "^27", "@types/node": "^16", - "@typescript-eslint/eslint-plugin": "^5", - "@typescript-eslint/parser": "^5", + "@typescript-eslint/eslint-plugin": "^6", + "@typescript-eslint/parser": "^6", + "constructs": "^10.0.0", "eslint": "^8", - "eslint-import-resolver-node": "^0.3.9", "eslint-import-resolver-typescript": "^2.7.1", "eslint-plugin-import": "^2.29.0", "jest": "^27", @@ -54,14 +54,14 @@ "jsii-pacmak": "^1.91.0", "jsii-rosetta": "1.x", "npm-check-updates": "^16", - "projen": "^0.72.28", + "projen": "^0.76.27", "standard-version": "^9", "ts-jest": "^27", "ts-node": "^10.9.1", "typescript": "^4.9.5" }, "peerDependencies": { - "projen": "^0.72.1" + "projen": "^0.76.27" }, "dependencies": { "codemaker": "^1.91.0", diff --git a/test/projects/__snapshots__/jsii.test.ts.snap b/test/projects/__snapshots__/jsii.test.ts.snap index bce40fa6..72443f6a 100644 --- a/test/projects/__snapshots__/jsii.test.ts.snap +++ b/test/projects/__snapshots__/jsii.test.ts.snap @@ -256,7 +256,6 @@ Object { /.gitignore linguist-generated /.mergify.yml linguist-generated /.npmignore linguist-generated -/.npmrc linguist-generated /.projen/** linguist-generated /.projen/deps.json linguist-generated /.projen/files.json linguist-generated @@ -1409,7 +1408,6 @@ junit.xml !/.mergify.yml !/.github/workflows/upgrade-runtime-dependencies-main.yml !/.github/pull_request_template.md -!/.npmrc !/test/ !/tsconfig.dev.json !/src/ @@ -1511,16 +1509,17 @@ tsconfig.tsbuildinfo Object { "name": "@typescript-eslint/eslint-plugin", "type": "build", - "version": "^5", + "version": "^6", }, Object { "name": "@typescript-eslint/parser", "type": "build", - "version": "^5", + "version": "^6", }, Object { - "name": "eslint-import-resolver-node", + "name": "constructs", "type": "build", + "version": "^10.0.0", }, Object { "name": "eslint-import-resolver-typescript", @@ -1629,7 +1628,6 @@ tsconfig.tsbuildinfo ".github/workflows/upgrade-runtime-dependencies-main.yml", ".gitignore", ".mergify.yml", - ".npmrc", ".projen/deps.json", ".projen/files.json", ".projen/tasks.json", @@ -1966,7 +1964,7 @@ UNEXPECTED BREAKING CHANGES: add keys such as 'removed:constructs.Node.of' to .c "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=comp1,jsii,jsii-docgen,jsii-pacmak,jsii-rosetta,typescript", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev --filter=comp1,jsii,jsii-docgen,jsii-pacmak,jsii-rosetta,typescript", }, Object { "exec": "yarn install --check-files", @@ -1993,7 +1991,7 @@ UNEXPECTED BREAKING CHANGES: add keys such as 'removed:constructs.Node.of' to .c "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=projen,@cdk8s/projen-common", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev,peer,prod,optional --filter=projen,@cdk8s/projen-common", }, Object { "exec": "yarn install --check-files", @@ -2020,13 +2018,13 @@ UNEXPECTED BREAKING CHANGES: add keys such as 'removed:constructs.Node.of' to .c "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=@types/jest,@types/node,@typescript-eslint/eslint-plugin,@typescript-eslint/parser,eslint-import-resolver-node,eslint-import-resolver-typescript,eslint-plugin-import,eslint,jest-junit,jest,jsii-diff,npm-check-updates,standard-version,ts-jest", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev --filter=@types/jest,@types/node,@typescript-eslint/eslint-plugin,@typescript-eslint/parser,constructs,eslint-import-resolver-typescript,eslint-plugin-import,eslint,jest-junit,jest,jsii-diff,npm-check-updates,standard-version,ts-jest", }, Object { "exec": "yarn install --check-files", }, Object { - "exec": "yarn upgrade @types/jest @types/node @typescript-eslint/eslint-plugin @typescript-eslint/parser eslint-import-resolver-node eslint-import-resolver-typescript eslint-plugin-import eslint jest-junit jest jsii-diff npm-check-updates standard-version ts-jest", + "exec": "yarn upgrade @types/jest @types/node @typescript-eslint/eslint-plugin @typescript-eslint/parser constructs eslint-import-resolver-typescript eslint-plugin-import eslint jest-junit jest jsii-diff npm-check-updates standard-version ts-jest", }, Object { "exec": "npx projen", @@ -2355,10 +2353,10 @@ echo \\"Configured core.hooksPath to \${hooksdir}\\" "devDependencies": Object { "@types/jest": "^27", "@types/node": "^16", - "@typescript-eslint/eslint-plugin": "^5", - "@typescript-eslint/parser": "^5", + "@typescript-eslint/eslint-plugin": "^6", + "@typescript-eslint/parser": "^6", + "constructs": "^10.0.0", "eslint": "^8", - "eslint-import-resolver-node": "*", "eslint-import-resolver-typescript": "*", "eslint-plugin-import": "*", "jest": "^27", @@ -2814,7 +2812,6 @@ Object { /.gitignore linguist-generated /.mergify.yml linguist-generated /.npmignore linguist-generated -/.npmrc linguist-generated /.projen/** linguist-generated /.projen/deps.json linguist-generated /.projen/files.json linguist-generated @@ -3999,7 +3996,6 @@ junit.xml !/.mergify.yml !/.github/workflows/upgrade-runtime-dependencies-main.yml !/.github/pull_request_template.md -!/.npmrc !/test/ !/tsconfig.dev.json !/src/ @@ -4103,16 +4099,17 @@ tsconfig.tsbuildinfo Object { "name": "@typescript-eslint/eslint-plugin", "type": "build", - "version": "^5", + "version": "^6", }, Object { "name": "@typescript-eslint/parser", "type": "build", - "version": "^5", + "version": "^6", }, Object { - "name": "eslint-import-resolver-node", + "name": "constructs", "type": "build", + "version": "^10.0.0", }, Object { "name": "eslint-import-resolver-typescript", @@ -4223,7 +4220,6 @@ tsconfig.tsbuildinfo ".github/workflows/upgrade-runtime-dependencies-main.yml", ".gitignore", ".mergify.yml", - ".npmrc", ".projen/deps.json", ".projen/files.json", ".projen/tasks.json", @@ -4584,7 +4580,7 @@ UNEXPECTED BREAKING CHANGES: add keys such as 'removed:constructs.Node.of' to .c "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=jsii,jsii-docgen,jsii-pacmak,jsii-rosetta,typescript", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev --filter=jsii,jsii-docgen,jsii-pacmak,jsii-rosetta,typescript", }, Object { "exec": "yarn install --check-files", @@ -4611,7 +4607,7 @@ UNEXPECTED BREAKING CHANGES: add keys such as 'removed:constructs.Node.of' to .c "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=projen,@cdk8s/projen-common", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev,peer,prod,optional --filter=projen,@cdk8s/projen-common", }, Object { "exec": "yarn install --check-files", @@ -4638,13 +4634,13 @@ UNEXPECTED BREAKING CHANGES: add keys such as 'removed:constructs.Node.of' to .c "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=@types/jest,@types/node,@typescript-eslint/eslint-plugin,@typescript-eslint/parser,eslint-import-resolver-node,eslint-import-resolver-typescript,eslint-plugin-import,eslint,jest-junit,jest,jsii-diff,npm-check-updates,standard-version,ts-jest", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev --filter=@types/jest,@types/node,@typescript-eslint/eslint-plugin,@typescript-eslint/parser,constructs,eslint-import-resolver-typescript,eslint-plugin-import,eslint,jest-junit,jest,jsii-diff,npm-check-updates,standard-version,ts-jest", }, Object { "exec": "yarn install --check-files", }, Object { - "exec": "yarn upgrade @types/jest @types/node @typescript-eslint/eslint-plugin @typescript-eslint/parser eslint-import-resolver-node eslint-import-resolver-typescript eslint-plugin-import eslint jest-junit jest jsii-diff npm-check-updates standard-version ts-jest", + "exec": "yarn upgrade @types/jest @types/node @typescript-eslint/eslint-plugin @typescript-eslint/parser constructs eslint-import-resolver-typescript eslint-plugin-import eslint jest-junit jest jsii-diff npm-check-updates standard-version ts-jest", }, Object { "exec": "npx projen", @@ -4973,10 +4969,10 @@ echo \\"Configured core.hooksPath to \${hooksdir}\\" "devDependencies": Object { "@types/jest": "^27", "@types/node": "^16", - "@typescript-eslint/eslint-plugin": "^5", - "@typescript-eslint/parser": "^5", + "@typescript-eslint/eslint-plugin": "^6", + "@typescript-eslint/parser": "^6", + "constructs": "^10.0.0", "eslint": "^8", - "eslint-import-resolver-node": "*", "eslint-import-resolver-typescript": "*", "eslint-plugin-import": "*", "jest": "^27", @@ -5417,7 +5413,6 @@ Object { /.gitignore linguist-generated /.mergify.yml linguist-generated /.npmignore linguist-generated -/.npmrc linguist-generated /.projen/** linguist-generated /.projen/deps.json linguist-generated /.projen/files.json linguist-generated @@ -6154,7 +6149,6 @@ junit.xml !/.mergify.yml !/.github/workflows/upgrade-runtime-dependencies.yml !/.github/pull_request_template.md -!/.npmrc !/test/ !/tsconfig.dev.json !/src/ @@ -6244,16 +6238,17 @@ tsconfig.tsbuildinfo Object { "name": "@typescript-eslint/eslint-plugin", "type": "build", - "version": "^5", + "version": "^6", }, Object { "name": "@typescript-eslint/parser", "type": "build", - "version": "^5", + "version": "^6", }, Object { - "name": "eslint-import-resolver-node", + "name": "constructs", "type": "build", + "version": "^10.0.0", }, Object { "name": "eslint-import-resolver-typescript", @@ -6356,7 +6351,6 @@ tsconfig.tsbuildinfo ".github/workflows/upgrade-runtime-dependencies.yml", ".gitignore", ".mergify.yml", - ".npmrc", ".projen/deps.json", ".projen/files.json", ".projen/tasks.json", @@ -6572,7 +6566,7 @@ UNEXPECTED BREAKING CHANGES: add keys such as 'removed:constructs.Node.of' to .c "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=jsii,jsii-docgen,jsii-pacmak,jsii-rosetta,typescript", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev --filter=jsii,jsii-docgen,jsii-pacmak,jsii-rosetta,typescript", }, Object { "exec": "yarn install --check-files", @@ -6599,7 +6593,7 @@ UNEXPECTED BREAKING CHANGES: add keys such as 'removed:constructs.Node.of' to .c "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=projen,@cdk8s/projen-common", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev,peer,prod,optional --filter=projen,@cdk8s/projen-common", }, Object { "exec": "yarn install --check-files", @@ -6626,13 +6620,13 @@ UNEXPECTED BREAKING CHANGES: add keys such as 'removed:constructs.Node.of' to .c "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=@types/jest,@types/node,@typescript-eslint/eslint-plugin,@typescript-eslint/parser,eslint-import-resolver-node,eslint-import-resolver-typescript,eslint-plugin-import,eslint,jest-junit,jest,jsii-diff,npm-check-updates,ts-jest", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev --filter=@types/jest,@types/node,@typescript-eslint/eslint-plugin,@typescript-eslint/parser,constructs,eslint-import-resolver-typescript,eslint-plugin-import,eslint,jest-junit,jest,jsii-diff,npm-check-updates,ts-jest", }, Object { "exec": "yarn install --check-files", }, Object { - "exec": "yarn upgrade @types/jest @types/node @typescript-eslint/eslint-plugin @typescript-eslint/parser eslint-import-resolver-node eslint-import-resolver-typescript eslint-plugin-import eslint jest-junit jest jsii-diff npm-check-updates ts-jest", + "exec": "yarn upgrade @types/jest @types/node @typescript-eslint/eslint-plugin @typescript-eslint/parser constructs eslint-import-resolver-typescript eslint-plugin-import eslint jest-junit jest jsii-diff npm-check-updates ts-jest", }, Object { "exec": "npx projen", @@ -6961,10 +6955,10 @@ echo \\"Configured core.hooksPath to \${hooksdir}\\" "devDependencies": Object { "@types/jest": "^27", "@types/node": "^16", - "@typescript-eslint/eslint-plugin": "^5", - "@typescript-eslint/parser": "^5", + "@typescript-eslint/eslint-plugin": "^6", + "@typescript-eslint/parser": "^6", + "constructs": "^10.0.0", "eslint": "^8", - "eslint-import-resolver-node": "*", "eslint-import-resolver-typescript": "*", "eslint-plugin-import": "*", "jest": "^27", @@ -7372,7 +7366,6 @@ Object { /.gitignore linguist-generated /.mergify.yml linguist-generated /.npmignore linguist-generated -/.npmrc linguist-generated /.projen/** linguist-generated /.projen/deps.json linguist-generated /.projen/files.json linguist-generated @@ -8230,7 +8223,6 @@ junit.xml !/.mergify.yml !/.github/workflows/upgrade-runtime-dependencies.yml !/.github/pull_request_template.md -!/.npmrc !/test/ !/tsconfig.dev.json !/src/ @@ -8328,16 +8320,17 @@ tsconfig.tsbuildinfo Object { "name": "@typescript-eslint/eslint-plugin", "type": "build", - "version": "^5", + "version": "^6", }, Object { "name": "@typescript-eslint/parser", "type": "build", - "version": "^5", + "version": "^6", }, Object { - "name": "eslint-import-resolver-node", + "name": "constructs", "type": "build", + "version": "^10.0.0", }, Object { "name": "eslint-import-resolver-typescript", @@ -8440,7 +8433,6 @@ tsconfig.tsbuildinfo ".github/workflows/upgrade-runtime-dependencies.yml", ".gitignore", ".mergify.yml", - ".npmrc", ".projen/deps.json", ".projen/files.json", ".projen/tasks.json", @@ -8706,7 +8698,7 @@ UNEXPECTED BREAKING CHANGES: add keys such as 'removed:constructs.Node.of' to .c "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=jsii,jsii-docgen,jsii-pacmak,jsii-rosetta,typescript", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev --filter=jsii,jsii-docgen,jsii-pacmak,jsii-rosetta,typescript", }, Object { "exec": "yarn install --check-files", @@ -8733,7 +8725,7 @@ UNEXPECTED BREAKING CHANGES: add keys such as 'removed:constructs.Node.of' to .c "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=projen,@cdk8s/projen-common", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev,peer,prod,optional --filter=projen,@cdk8s/projen-common", }, Object { "exec": "yarn install --check-files", @@ -8760,13 +8752,13 @@ UNEXPECTED BREAKING CHANGES: add keys such as 'removed:constructs.Node.of' to .c "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=@types/jest,@types/node,@typescript-eslint/eslint-plugin,@typescript-eslint/parser,eslint-import-resolver-node,eslint-import-resolver-typescript,eslint-plugin-import,eslint,jest-junit,jest,jsii-diff,npm-check-updates,ts-jest", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev --filter=@types/jest,@types/node,@typescript-eslint/eslint-plugin,@typescript-eslint/parser,constructs,eslint-import-resolver-typescript,eslint-plugin-import,eslint,jest-junit,jest,jsii-diff,npm-check-updates,ts-jest", }, Object { "exec": "yarn install --check-files", }, Object { - "exec": "yarn upgrade @types/jest @types/node @typescript-eslint/eslint-plugin @typescript-eslint/parser eslint-import-resolver-node eslint-import-resolver-typescript eslint-plugin-import eslint jest-junit jest jsii-diff npm-check-updates ts-jest", + "exec": "yarn upgrade @types/jest @types/node @typescript-eslint/eslint-plugin @typescript-eslint/parser constructs eslint-import-resolver-typescript eslint-plugin-import eslint jest-junit jest jsii-diff npm-check-updates ts-jest", }, Object { "exec": "npx projen", @@ -9095,10 +9087,10 @@ echo \\"Configured core.hooksPath to \${hooksdir}\\" "devDependencies": Object { "@types/jest": "^27", "@types/node": "^16", - "@typescript-eslint/eslint-plugin": "^5", - "@typescript-eslint/parser": "^5", + "@typescript-eslint/eslint-plugin": "^6", + "@typescript-eslint/parser": "^6", + "constructs": "^10.0.0", "eslint": "^8", - "eslint-import-resolver-node": "*", "eslint-import-resolver-typescript": "*", "eslint-plugin-import": "*", "jest": "^27", @@ -9529,7 +9521,6 @@ Object { /.gitignore linguist-generated /.mergify.yml linguist-generated /.npmignore linguist-generated -/.npmrc linguist-generated /.projen/** linguist-generated /.projen/deps.json linguist-generated /.projen/files.json linguist-generated @@ -10266,7 +10257,6 @@ junit.xml !/.mergify.yml !/.github/workflows/upgrade-runtime-dependencies.yml !/.github/pull_request_template.md -!/.npmrc !/test/ !/tsconfig.dev.json !/src/ @@ -10356,16 +10346,17 @@ tsconfig.tsbuildinfo Object { "name": "@typescript-eslint/eslint-plugin", "type": "build", - "version": "^5", + "version": "^6", }, Object { "name": "@typescript-eslint/parser", "type": "build", - "version": "^5", + "version": "^6", }, Object { - "name": "eslint-import-resolver-node", + "name": "constructs", "type": "build", + "version": "^10.0.0", }, Object { "name": "eslint-import-resolver-typescript", @@ -10468,7 +10459,6 @@ tsconfig.tsbuildinfo ".github/workflows/upgrade-runtime-dependencies.yml", ".gitignore", ".mergify.yml", - ".npmrc", ".projen/deps.json", ".projen/files.json", ".projen/tasks.json", @@ -10684,7 +10674,7 @@ UNEXPECTED BREAKING CHANGES: add keys such as 'removed:constructs.Node.of' to .c "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=jsii,jsii-docgen,jsii-pacmak,jsii-rosetta,typescript", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev --filter=jsii,jsii-docgen,jsii-pacmak,jsii-rosetta,typescript", }, Object { "exec": "yarn install --check-files", @@ -10711,7 +10701,7 @@ UNEXPECTED BREAKING CHANGES: add keys such as 'removed:constructs.Node.of' to .c "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=projen,@cdk8s/projen-common", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev,peer,prod,optional --filter=projen,@cdk8s/projen-common", }, Object { "exec": "yarn install --check-files", @@ -10738,13 +10728,13 @@ UNEXPECTED BREAKING CHANGES: add keys such as 'removed:constructs.Node.of' to .c "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=@types/jest,@types/node,@typescript-eslint/eslint-plugin,@typescript-eslint/parser,eslint-import-resolver-node,eslint-import-resolver-typescript,eslint-plugin-import,eslint,jest-junit,jest,jsii-diff,npm-check-updates,ts-jest", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev --filter=@types/jest,@types/node,@typescript-eslint/eslint-plugin,@typescript-eslint/parser,constructs,eslint-import-resolver-typescript,eslint-plugin-import,eslint,jest-junit,jest,jsii-diff,npm-check-updates,ts-jest", }, Object { "exec": "yarn install --check-files", }, Object { - "exec": "yarn upgrade @types/jest @types/node @typescript-eslint/eslint-plugin @typescript-eslint/parser eslint-import-resolver-node eslint-import-resolver-typescript eslint-plugin-import eslint jest-junit jest jsii-diff npm-check-updates ts-jest", + "exec": "yarn upgrade @types/jest @types/node @typescript-eslint/eslint-plugin @typescript-eslint/parser constructs eslint-import-resolver-typescript eslint-plugin-import eslint jest-junit jest jsii-diff npm-check-updates ts-jest", }, Object { "exec": "npx projen", @@ -11073,10 +11063,10 @@ echo \\"Configured core.hooksPath to \${hooksdir}\\" "devDependencies": Object { "@types/jest": "^27", "@types/node": "^16", - "@typescript-eslint/eslint-plugin": "^5", - "@typescript-eslint/parser": "^5", + "@typescript-eslint/eslint-plugin": "^6", + "@typescript-eslint/parser": "^6", + "constructs": "^10.0.0", "eslint": "^8", - "eslint-import-resolver-node": "*", "eslint-import-resolver-typescript": "*", "eslint-plugin-import": "*", "jest": "^27", @@ -11484,7 +11474,6 @@ Object { /.gitignore linguist-generated /.mergify.yml linguist-generated /.npmignore linguist-generated -/.npmrc linguist-generated /.projen/** linguist-generated /.projen/deps.json linguist-generated /.projen/files.json linguist-generated @@ -12342,7 +12331,6 @@ junit.xml !/.mergify.yml !/.github/workflows/upgrade-runtime-dependencies.yml !/.github/pull_request_template.md -!/.npmrc !/test/ !/tsconfig.dev.json !/src/ @@ -12440,16 +12428,17 @@ tsconfig.tsbuildinfo Object { "name": "@typescript-eslint/eslint-plugin", "type": "build", - "version": "^5", + "version": "^6", }, Object { "name": "@typescript-eslint/parser", "type": "build", - "version": "^5", + "version": "^6", }, Object { - "name": "eslint-import-resolver-node", + "name": "constructs", "type": "build", + "version": "^10.0.0", }, Object { "name": "eslint-import-resolver-typescript", @@ -12552,7 +12541,6 @@ tsconfig.tsbuildinfo ".github/workflows/upgrade-runtime-dependencies.yml", ".gitignore", ".mergify.yml", - ".npmrc", ".projen/deps.json", ".projen/files.json", ".projen/tasks.json", @@ -12818,7 +12806,7 @@ UNEXPECTED BREAKING CHANGES: add keys such as 'removed:constructs.Node.of' to .c "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=jsii,jsii-docgen,jsii-pacmak,jsii-rosetta,typescript", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev --filter=jsii,jsii-docgen,jsii-pacmak,jsii-rosetta,typescript", }, Object { "exec": "yarn install --check-files", @@ -12845,7 +12833,7 @@ UNEXPECTED BREAKING CHANGES: add keys such as 'removed:constructs.Node.of' to .c "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=projen,@cdk8s/projen-common", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev,peer,prod,optional --filter=projen,@cdk8s/projen-common", }, Object { "exec": "yarn install --check-files", @@ -12872,13 +12860,13 @@ UNEXPECTED BREAKING CHANGES: add keys such as 'removed:constructs.Node.of' to .c "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=@types/jest,@types/node,@typescript-eslint/eslint-plugin,@typescript-eslint/parser,eslint-import-resolver-node,eslint-import-resolver-typescript,eslint-plugin-import,eslint,jest-junit,jest,jsii-diff,npm-check-updates,ts-jest", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev --filter=@types/jest,@types/node,@typescript-eslint/eslint-plugin,@typescript-eslint/parser,constructs,eslint-import-resolver-typescript,eslint-plugin-import,eslint,jest-junit,jest,jsii-diff,npm-check-updates,ts-jest", }, Object { "exec": "yarn install --check-files", }, Object { - "exec": "yarn upgrade @types/jest @types/node @typescript-eslint/eslint-plugin @typescript-eslint/parser eslint-import-resolver-node eslint-import-resolver-typescript eslint-plugin-import eslint jest-junit jest jsii-diff npm-check-updates ts-jest", + "exec": "yarn upgrade @types/jest @types/node @typescript-eslint/eslint-plugin @typescript-eslint/parser constructs eslint-import-resolver-typescript eslint-plugin-import eslint jest-junit jest jsii-diff npm-check-updates ts-jest", }, Object { "exec": "npx projen", @@ -13207,10 +13195,10 @@ echo \\"Configured core.hooksPath to \${hooksdir}\\" "devDependencies": Object { "@types/jest": "^27", "@types/node": "^16", - "@typescript-eslint/eslint-plugin": "^5", - "@typescript-eslint/parser": "^5", + "@typescript-eslint/eslint-plugin": "^6", + "@typescript-eslint/parser": "^6", + "constructs": "^10.0.0", "eslint": "^8", - "eslint-import-resolver-node": "*", "eslint-import-resolver-typescript": "*", "eslint-plugin-import": "*", "jest": "^27", @@ -13641,7 +13629,6 @@ Object { /.gitignore linguist-generated /.mergify.yml linguist-generated /.npmignore linguist-generated -/.npmrc linguist-generated /.projen/** linguist-generated /.projen/deps.json linguist-generated /.projen/files.json linguist-generated @@ -14378,7 +14365,6 @@ junit.xml !/.mergify.yml !/.github/workflows/upgrade-runtime-dependencies.yml !/.github/pull_request_template.md -!/.npmrc !/test/ !/tsconfig.dev.json !/src/ @@ -14468,16 +14454,17 @@ tsconfig.tsbuildinfo Object { "name": "@typescript-eslint/eslint-plugin", "type": "build", - "version": "^5", + "version": "^6", }, Object { "name": "@typescript-eslint/parser", "type": "build", - "version": "^5", + "version": "^6", }, Object { - "name": "eslint-import-resolver-node", + "name": "constructs", "type": "build", + "version": "^10.0.0", }, Object { "name": "eslint-import-resolver-typescript", @@ -14580,7 +14567,6 @@ tsconfig.tsbuildinfo ".github/workflows/upgrade-runtime-dependencies.yml", ".gitignore", ".mergify.yml", - ".npmrc", ".projen/deps.json", ".projen/files.json", ".projen/tasks.json", @@ -14796,7 +14782,7 @@ UNEXPECTED BREAKING CHANGES: add keys such as 'removed:constructs.Node.of' to .c "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=jsii,jsii-docgen,jsii-pacmak,jsii-rosetta,typescript", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev --filter=jsii,jsii-docgen,jsii-pacmak,jsii-rosetta,typescript", }, Object { "exec": "yarn install --check-files", @@ -14823,7 +14809,7 @@ UNEXPECTED BREAKING CHANGES: add keys such as 'removed:constructs.Node.of' to .c "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=projen,@cdk8s/projen-common", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev,peer,prod,optional --filter=projen,@cdk8s/projen-common", }, Object { "exec": "yarn install --check-files", @@ -14850,13 +14836,13 @@ UNEXPECTED BREAKING CHANGES: add keys such as 'removed:constructs.Node.of' to .c "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=@types/jest,@types/node,@typescript-eslint/eslint-plugin,@typescript-eslint/parser,eslint-import-resolver-node,eslint-import-resolver-typescript,eslint-plugin-import,eslint,jest-junit,jest,jsii-diff,npm-check-updates,ts-jest", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev --filter=@types/jest,@types/node,@typescript-eslint/eslint-plugin,@typescript-eslint/parser,constructs,eslint-import-resolver-typescript,eslint-plugin-import,eslint,jest-junit,jest,jsii-diff,npm-check-updates,ts-jest", }, Object { "exec": "yarn install --check-files", }, Object { - "exec": "yarn upgrade @types/jest @types/node @typescript-eslint/eslint-plugin @typescript-eslint/parser eslint-import-resolver-node eslint-import-resolver-typescript eslint-plugin-import eslint jest-junit jest jsii-diff npm-check-updates ts-jest", + "exec": "yarn upgrade @types/jest @types/node @typescript-eslint/eslint-plugin @typescript-eslint/parser constructs eslint-import-resolver-typescript eslint-plugin-import eslint jest-junit jest jsii-diff npm-check-updates ts-jest", }, Object { "exec": "npx projen", @@ -15185,10 +15171,10 @@ echo \\"Configured core.hooksPath to \${hooksdir}\\" "devDependencies": Object { "@types/jest": "^27", "@types/node": "^16", - "@typescript-eslint/eslint-plugin": "^5", - "@typescript-eslint/parser": "^5", + "@typescript-eslint/eslint-plugin": "^6", + "@typescript-eslint/parser": "^6", + "constructs": "^10.0.0", "eslint": "^8", - "eslint-import-resolver-node": "*", "eslint-import-resolver-typescript": "*", "eslint-plugin-import": "*", "jest": "^27", @@ -15596,7 +15582,6 @@ Object { /.gitignore linguist-generated /.mergify.yml linguist-generated /.npmignore linguist-generated -/.npmrc linguist-generated /.projen/** linguist-generated /.projen/deps.json linguist-generated /.projen/files.json linguist-generated @@ -16454,7 +16439,6 @@ junit.xml !/.mergify.yml !/.github/workflows/upgrade-runtime-dependencies.yml !/.github/pull_request_template.md -!/.npmrc !/test/ !/tsconfig.dev.json !/src/ @@ -16552,16 +16536,17 @@ tsconfig.tsbuildinfo Object { "name": "@typescript-eslint/eslint-plugin", "type": "build", - "version": "^5", + "version": "^6", }, Object { "name": "@typescript-eslint/parser", "type": "build", - "version": "^5", + "version": "^6", }, Object { - "name": "eslint-import-resolver-node", + "name": "constructs", "type": "build", + "version": "^10.0.0", }, Object { "name": "eslint-import-resolver-typescript", @@ -16664,7 +16649,6 @@ tsconfig.tsbuildinfo ".github/workflows/upgrade-runtime-dependencies.yml", ".gitignore", ".mergify.yml", - ".npmrc", ".projen/deps.json", ".projen/files.json", ".projen/tasks.json", @@ -16930,7 +16914,7 @@ UNEXPECTED BREAKING CHANGES: add keys such as 'removed:constructs.Node.of' to .c "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=jsii,jsii-docgen,jsii-pacmak,jsii-rosetta,typescript", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev --filter=jsii,jsii-docgen,jsii-pacmak,jsii-rosetta,typescript", }, Object { "exec": "yarn install --check-files", @@ -16957,7 +16941,7 @@ UNEXPECTED BREAKING CHANGES: add keys such as 'removed:constructs.Node.of' to .c "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=projen,@cdk8s/projen-common", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev,peer,prod,optional --filter=projen,@cdk8s/projen-common", }, Object { "exec": "yarn install --check-files", @@ -16984,13 +16968,13 @@ UNEXPECTED BREAKING CHANGES: add keys such as 'removed:constructs.Node.of' to .c "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=@types/jest,@types/node,@typescript-eslint/eslint-plugin,@typescript-eslint/parser,eslint-import-resolver-node,eslint-import-resolver-typescript,eslint-plugin-import,eslint,jest-junit,jest,jsii-diff,npm-check-updates,ts-jest", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev --filter=@types/jest,@types/node,@typescript-eslint/eslint-plugin,@typescript-eslint/parser,constructs,eslint-import-resolver-typescript,eslint-plugin-import,eslint,jest-junit,jest,jsii-diff,npm-check-updates,ts-jest", }, Object { "exec": "yarn install --check-files", }, Object { - "exec": "yarn upgrade @types/jest @types/node @typescript-eslint/eslint-plugin @typescript-eslint/parser eslint-import-resolver-node eslint-import-resolver-typescript eslint-plugin-import eslint jest-junit jest jsii-diff npm-check-updates ts-jest", + "exec": "yarn upgrade @types/jest @types/node @typescript-eslint/eslint-plugin @typescript-eslint/parser constructs eslint-import-resolver-typescript eslint-plugin-import eslint jest-junit jest jsii-diff npm-check-updates ts-jest", }, Object { "exec": "npx projen", @@ -17319,10 +17303,10 @@ echo \\"Configured core.hooksPath to \${hooksdir}\\" "devDependencies": Object { "@types/jest": "^27", "@types/node": "^16", - "@typescript-eslint/eslint-plugin": "^5", - "@typescript-eslint/parser": "^5", + "@typescript-eslint/eslint-plugin": "^6", + "@typescript-eslint/parser": "^6", + "constructs": "^10.0.0", "eslint": "^8", - "eslint-import-resolver-node": "*", "eslint-import-resolver-typescript": "*", "eslint-plugin-import": "*", "jest": "^27", @@ -17754,7 +17738,6 @@ Object { /.gitignore linguist-generated /.mergify.yml linguist-generated /.npmignore linguist-generated -/.npmrc linguist-generated /.projen/** linguist-generated /.projen/deps.json linguist-generated /.projen/files.json linguist-generated @@ -18907,7 +18890,6 @@ junit.xml !/.mergify.yml !/.github/workflows/upgrade-runtime-dependencies-main.yml !/.github/pull_request_template.md -!/.npmrc !/test/ !/tsconfig.dev.json !/src/ @@ -19009,16 +18991,17 @@ tsconfig.tsbuildinfo Object { "name": "@typescript-eslint/eslint-plugin", "type": "build", - "version": "^5", + "version": "^6", }, Object { "name": "@typescript-eslint/parser", "type": "build", - "version": "^5", + "version": "^6", }, Object { - "name": "eslint-import-resolver-node", + "name": "constructs", "type": "build", + "version": "^10.0.0", }, Object { "name": "eslint-import-resolver-typescript", @@ -19127,7 +19110,6 @@ tsconfig.tsbuildinfo ".github/workflows/upgrade-runtime-dependencies-main.yml", ".gitignore", ".mergify.yml", - ".npmrc", ".projen/deps.json", ".projen/files.json", ".projen/tasks.json", @@ -19464,7 +19446,7 @@ UNEXPECTED BREAKING CHANGES: add keys such as 'removed:constructs.Node.of' to .c "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=jsii,jsii-docgen,jsii-pacmak,jsii-rosetta,typescript", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev --filter=jsii,jsii-docgen,jsii-pacmak,jsii-rosetta,typescript", }, Object { "exec": "yarn install --check-files", @@ -19491,7 +19473,7 @@ UNEXPECTED BREAKING CHANGES: add keys such as 'removed:constructs.Node.of' to .c "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=projen,@cdk8s/projen-common", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev,peer,prod,optional --filter=projen,@cdk8s/projen-common", }, Object { "exec": "yarn install --check-files", @@ -19518,13 +19500,13 @@ UNEXPECTED BREAKING CHANGES: add keys such as 'removed:constructs.Node.of' to .c "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=@types/jest,@types/node,@typescript-eslint/eslint-plugin,@typescript-eslint/parser,eslint-import-resolver-node,eslint-import-resolver-typescript,eslint-plugin-import,eslint,jest-junit,jest,jsii-diff,npm-check-updates,standard-version,ts-jest", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev --filter=@types/jest,@types/node,@typescript-eslint/eslint-plugin,@typescript-eslint/parser,constructs,eslint-import-resolver-typescript,eslint-plugin-import,eslint,jest-junit,jest,jsii-diff,npm-check-updates,standard-version,ts-jest", }, Object { "exec": "yarn install --check-files", }, Object { - "exec": "yarn upgrade @types/jest @types/node @typescript-eslint/eslint-plugin @typescript-eslint/parser eslint-import-resolver-node eslint-import-resolver-typescript eslint-plugin-import eslint jest-junit jest jsii-diff npm-check-updates standard-version ts-jest", + "exec": "yarn upgrade @types/jest @types/node @typescript-eslint/eslint-plugin @typescript-eslint/parser constructs eslint-import-resolver-typescript eslint-plugin-import eslint jest-junit jest jsii-diff npm-check-updates standard-version ts-jest", }, Object { "exec": "npx projen", @@ -19853,10 +19835,10 @@ echo \\"Configured core.hooksPath to \${hooksdir}\\" "devDependencies": Object { "@types/jest": "^27", "@types/node": "^16", - "@typescript-eslint/eslint-plugin": "^5", - "@typescript-eslint/parser": "^5", + "@typescript-eslint/eslint-plugin": "^6", + "@typescript-eslint/parser": "^6", + "constructs": "^10.0.0", "eslint": "^8", - "eslint-import-resolver-node": "*", "eslint-import-resolver-typescript": "*", "eslint-plugin-import": "*", "jest": "^27", @@ -20293,7 +20275,6 @@ Object { /.gitignore linguist-generated /.mergify.yml linguist-generated /.npmignore linguist-generated -/.npmrc linguist-generated /.projen/** linguist-generated /.projen/deps.json linguist-generated /.projen/files.json linguist-generated @@ -21446,7 +21427,6 @@ junit.xml !/.mergify.yml !/.github/workflows/upgrade-runtime-dependencies-main.yml !/.github/pull_request_template.md -!/.npmrc !/test/ !/tsconfig.dev.json !/src/ @@ -21548,16 +21528,17 @@ tsconfig.tsbuildinfo Object { "name": "@typescript-eslint/eslint-plugin", "type": "build", - "version": "^5", + "version": "^6", }, Object { "name": "@typescript-eslint/parser", "type": "build", - "version": "^5", + "version": "^6", }, Object { - "name": "eslint-import-resolver-node", + "name": "constructs", "type": "build", + "version": "^10.0.0", }, Object { "name": "eslint-import-resolver-typescript", @@ -21666,7 +21647,6 @@ tsconfig.tsbuildinfo ".github/workflows/upgrade-runtime-dependencies-main.yml", ".gitignore", ".mergify.yml", - ".npmrc", ".projen/deps.json", ".projen/files.json", ".projen/tasks.json", @@ -22003,7 +21983,7 @@ UNEXPECTED BREAKING CHANGES: add keys such as 'removed:constructs.Node.of' to .c "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=jsii,jsii-docgen,jsii-pacmak,jsii-rosetta,typescript", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev --filter=jsii,jsii-docgen,jsii-pacmak,jsii-rosetta,typescript", }, Object { "exec": "yarn install --check-files", @@ -22030,7 +22010,7 @@ UNEXPECTED BREAKING CHANGES: add keys such as 'removed:constructs.Node.of' to .c "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=projen,@cdk8s/projen-common", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev,peer,prod,optional --filter=projen,@cdk8s/projen-common", }, Object { "exec": "yarn install --check-files", @@ -22057,13 +22037,13 @@ UNEXPECTED BREAKING CHANGES: add keys such as 'removed:constructs.Node.of' to .c "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=@types/jest,@types/node,@typescript-eslint/eslint-plugin,@typescript-eslint/parser,eslint-import-resolver-node,eslint-import-resolver-typescript,eslint-plugin-import,eslint,jest-junit,jest,jsii-diff,npm-check-updates,standard-version,ts-jest", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev --filter=@types/jest,@types/node,@typescript-eslint/eslint-plugin,@typescript-eslint/parser,constructs,eslint-import-resolver-typescript,eslint-plugin-import,eslint,jest-junit,jest,jsii-diff,npm-check-updates,standard-version,ts-jest", }, Object { "exec": "yarn install --check-files", }, Object { - "exec": "yarn upgrade @types/jest @types/node @typescript-eslint/eslint-plugin @typescript-eslint/parser eslint-import-resolver-node eslint-import-resolver-typescript eslint-plugin-import eslint jest-junit jest jsii-diff npm-check-updates standard-version ts-jest", + "exec": "yarn upgrade @types/jest @types/node @typescript-eslint/eslint-plugin @typescript-eslint/parser constructs eslint-import-resolver-typescript eslint-plugin-import eslint jest-junit jest jsii-diff npm-check-updates standard-version ts-jest", }, Object { "exec": "npx projen", @@ -22392,10 +22372,10 @@ echo \\"Configured core.hooksPath to \${hooksdir}\\" "devDependencies": Object { "@types/jest": "^27", "@types/node": "^16", - "@typescript-eslint/eslint-plugin": "^5", - "@typescript-eslint/parser": "^5", + "@typescript-eslint/eslint-plugin": "^6", + "@typescript-eslint/parser": "^6", + "constructs": "^10.0.0", "eslint": "^8", - "eslint-import-resolver-node": "*", "eslint-import-resolver-typescript": "*", "eslint-plugin-import": "*", "jest": "^27", @@ -22832,7 +22812,6 @@ Object { /.gitignore linguist-generated /.mergify.yml linguist-generated /.npmignore linguist-generated -/.npmrc linguist-generated /.projen/** linguist-generated /.projen/deps.json linguist-generated /.projen/files.json linguist-generated @@ -23985,7 +23964,6 @@ junit.xml !/.mergify.yml !/.github/workflows/upgrade-runtime-dependencies-main.yml !/.github/pull_request_template.md -!/.npmrc !/test/ !/tsconfig.dev.json !/src/ @@ -24087,16 +24065,17 @@ tsconfig.tsbuildinfo Object { "name": "@typescript-eslint/eslint-plugin", "type": "build", - "version": "^5", + "version": "^6", }, Object { "name": "@typescript-eslint/parser", "type": "build", - "version": "^5", + "version": "^6", }, Object { - "name": "eslint-import-resolver-node", + "name": "constructs", "type": "build", + "version": "^10.0.0", }, Object { "name": "eslint-import-resolver-typescript", @@ -24205,7 +24184,6 @@ tsconfig.tsbuildinfo ".github/workflows/upgrade-runtime-dependencies-main.yml", ".gitignore", ".mergify.yml", - ".npmrc", ".projen/deps.json", ".projen/files.json", ".projen/tasks.json", @@ -24542,7 +24520,7 @@ UNEXPECTED BREAKING CHANGES: add keys such as 'removed:constructs.Node.of' to .c "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=jsii,jsii-docgen,jsii-pacmak,jsii-rosetta,typescript", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev --filter=jsii,jsii-docgen,jsii-pacmak,jsii-rosetta,typescript", }, Object { "exec": "yarn install --check-files", @@ -24569,7 +24547,7 @@ UNEXPECTED BREAKING CHANGES: add keys such as 'removed:constructs.Node.of' to .c "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=projen,@cdk8s/projen-common", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev,peer,prod,optional --filter=projen,@cdk8s/projen-common", }, Object { "exec": "yarn install --check-files", @@ -24596,13 +24574,13 @@ UNEXPECTED BREAKING CHANGES: add keys such as 'removed:constructs.Node.of' to .c "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=@types/jest,@types/node,@typescript-eslint/eslint-plugin,@typescript-eslint/parser,eslint-import-resolver-node,eslint-import-resolver-typescript,eslint-plugin-import,eslint,jest-junit,jest,jsii-diff,npm-check-updates,standard-version,ts-jest", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev --filter=@types/jest,@types/node,@typescript-eslint/eslint-plugin,@typescript-eslint/parser,constructs,eslint-import-resolver-typescript,eslint-plugin-import,eslint,jest-junit,jest,jsii-diff,npm-check-updates,standard-version,ts-jest", }, Object { "exec": "yarn install --check-files", }, Object { - "exec": "yarn upgrade @types/jest @types/node @typescript-eslint/eslint-plugin @typescript-eslint/parser eslint-import-resolver-node eslint-import-resolver-typescript eslint-plugin-import eslint jest-junit jest jsii-diff npm-check-updates standard-version ts-jest", + "exec": "yarn upgrade @types/jest @types/node @typescript-eslint/eslint-plugin @typescript-eslint/parser constructs eslint-import-resolver-typescript eslint-plugin-import eslint jest-junit jest jsii-diff npm-check-updates standard-version ts-jest", }, Object { "exec": "npx projen", @@ -24931,10 +24909,10 @@ echo \\"Configured core.hooksPath to \${hooksdir}\\" "devDependencies": Object { "@types/jest": "^27", "@types/node": "^16", - "@typescript-eslint/eslint-plugin": "^5", - "@typescript-eslint/parser": "^5", + "@typescript-eslint/eslint-plugin": "^6", + "@typescript-eslint/parser": "^6", + "constructs": "^10.0.0", "eslint": "^8", - "eslint-import-resolver-node": "*", "eslint-import-resolver-typescript": "*", "eslint-plugin-import": "*", "jest": "^27", @@ -25371,7 +25349,6 @@ Object { /.gitignore linguist-generated /.mergify.yml linguist-generated /.npmignore linguist-generated -/.npmrc linguist-generated /.projen/** linguist-generated /.projen/deps.json linguist-generated /.projen/files.json linguist-generated @@ -26524,7 +26501,6 @@ junit.xml !/.mergify.yml !/.github/workflows/upgrade-runtime-dependencies-main.yml !/.github/pull_request_template.md -!/.npmrc !/test/ !/tsconfig.dev.json !/src/ @@ -26626,16 +26602,17 @@ tsconfig.tsbuildinfo Object { "name": "@typescript-eslint/eslint-plugin", "type": "build", - "version": "^5", + "version": "^6", }, Object { "name": "@typescript-eslint/parser", "type": "build", - "version": "^5", + "version": "^6", }, Object { - "name": "eslint-import-resolver-node", + "name": "constructs", "type": "build", + "version": "^10.0.0", }, Object { "name": "eslint-import-resolver-typescript", @@ -26744,7 +26721,6 @@ tsconfig.tsbuildinfo ".github/workflows/upgrade-runtime-dependencies-main.yml", ".gitignore", ".mergify.yml", - ".npmrc", ".projen/deps.json", ".projen/files.json", ".projen/tasks.json", @@ -27081,7 +27057,7 @@ UNEXPECTED BREAKING CHANGES: add keys such as 'removed:constructs.Node.of' to .c "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=jsii,jsii-docgen,jsii-pacmak,jsii-rosetta,typescript", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev --filter=jsii,jsii-docgen,jsii-pacmak,jsii-rosetta,typescript", }, Object { "exec": "yarn install --check-files", @@ -27108,7 +27084,7 @@ UNEXPECTED BREAKING CHANGES: add keys such as 'removed:constructs.Node.of' to .c "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=projen,@cdk8s/projen-common", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev,peer,prod,optional --filter=projen,@cdk8s/projen-common", }, Object { "exec": "yarn install --check-files", @@ -27135,13 +27111,13 @@ UNEXPECTED BREAKING CHANGES: add keys such as 'removed:constructs.Node.of' to .c "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=@types/jest,@types/node,@typescript-eslint/eslint-plugin,@typescript-eslint/parser,eslint-import-resolver-node,eslint-import-resolver-typescript,eslint-plugin-import,eslint,jest-junit,jest,jsii-diff,npm-check-updates,standard-version,ts-jest", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev --filter=@types/jest,@types/node,@typescript-eslint/eslint-plugin,@typescript-eslint/parser,constructs,eslint-import-resolver-typescript,eslint-plugin-import,eslint,jest-junit,jest,jsii-diff,npm-check-updates,standard-version,ts-jest", }, Object { "exec": "yarn install --check-files", }, Object { - "exec": "yarn upgrade @types/jest @types/node @typescript-eslint/eslint-plugin @typescript-eslint/parser eslint-import-resolver-node eslint-import-resolver-typescript eslint-plugin-import eslint jest-junit jest jsii-diff npm-check-updates standard-version ts-jest", + "exec": "yarn upgrade @types/jest @types/node @typescript-eslint/eslint-plugin @typescript-eslint/parser constructs eslint-import-resolver-typescript eslint-plugin-import eslint jest-junit jest jsii-diff npm-check-updates standard-version ts-jest", }, Object { "exec": "npx projen", @@ -27470,10 +27446,10 @@ echo \\"Configured core.hooksPath to \${hooksdir}\\" "devDependencies": Object { "@types/jest": "^27", "@types/node": "^16", - "@typescript-eslint/eslint-plugin": "^5", - "@typescript-eslint/parser": "^5", + "@typescript-eslint/eslint-plugin": "^6", + "@typescript-eslint/parser": "^6", + "constructs": "^10.0.0", "eslint": "^8", - "eslint-import-resolver-node": "*", "eslint-import-resolver-typescript": "*", "eslint-plugin-import": "*", "jest": "^27", @@ -27910,7 +27886,6 @@ Object { /.gitignore linguist-generated /.mergify.yml linguist-generated /.npmignore linguist-generated -/.npmrc linguist-generated /.projen/** linguist-generated /.projen/deps.json linguist-generated /.projen/files.json linguist-generated @@ -29063,7 +29038,6 @@ junit.xml !/.mergify.yml !/.github/workflows/upgrade-runtime-dependencies-main.yml !/.github/pull_request_template.md -!/.npmrc !/test/ !/tsconfig.dev.json !/src/ @@ -29165,16 +29139,17 @@ tsconfig.tsbuildinfo Object { "name": "@typescript-eslint/eslint-plugin", "type": "build", - "version": "^5", + "version": "^6", }, Object { "name": "@typescript-eslint/parser", "type": "build", - "version": "^5", + "version": "^6", }, Object { - "name": "eslint-import-resolver-node", + "name": "constructs", "type": "build", + "version": "^10.0.0", }, Object { "name": "eslint-import-resolver-typescript", @@ -29283,7 +29258,6 @@ tsconfig.tsbuildinfo ".github/workflows/upgrade-runtime-dependencies-main.yml", ".gitignore", ".mergify.yml", - ".npmrc", ".projen/deps.json", ".projen/files.json", ".projen/tasks.json", @@ -29620,7 +29594,7 @@ UNEXPECTED BREAKING CHANGES: add keys such as 'removed:constructs.Node.of' to .c "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=jsii,jsii-docgen,jsii-pacmak,jsii-rosetta,typescript", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev --filter=jsii,jsii-docgen,jsii-pacmak,jsii-rosetta,typescript", }, Object { "exec": "yarn install --check-files", @@ -29647,7 +29621,7 @@ UNEXPECTED BREAKING CHANGES: add keys such as 'removed:constructs.Node.of' to .c "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=projen,@cdk8s/projen-common", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev,peer,prod,optional --filter=projen,@cdk8s/projen-common", }, Object { "exec": "yarn install --check-files", @@ -29674,13 +29648,13 @@ UNEXPECTED BREAKING CHANGES: add keys such as 'removed:constructs.Node.of' to .c "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=@types/jest,@types/node,@typescript-eslint/eslint-plugin,@typescript-eslint/parser,eslint-import-resolver-node,eslint-import-resolver-typescript,eslint-plugin-import,eslint,jest-junit,jest,jsii-diff,npm-check-updates,standard-version,ts-jest", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev --filter=@types/jest,@types/node,@typescript-eslint/eslint-plugin,@typescript-eslint/parser,constructs,eslint-import-resolver-typescript,eslint-plugin-import,eslint,jest-junit,jest,jsii-diff,npm-check-updates,standard-version,ts-jest", }, Object { "exec": "yarn install --check-files", }, Object { - "exec": "yarn upgrade @types/jest @types/node @typescript-eslint/eslint-plugin @typescript-eslint/parser eslint-import-resolver-node eslint-import-resolver-typescript eslint-plugin-import eslint jest-junit jest jsii-diff npm-check-updates standard-version ts-jest", + "exec": "yarn upgrade @types/jest @types/node @typescript-eslint/eslint-plugin @typescript-eslint/parser constructs eslint-import-resolver-typescript eslint-plugin-import eslint jest-junit jest jsii-diff npm-check-updates standard-version ts-jest", }, Object { "exec": "npx projen", @@ -30009,10 +29983,10 @@ echo \\"Configured core.hooksPath to \${hooksdir}\\" "devDependencies": Object { "@types/jest": "^27", "@types/node": "^16", - "@typescript-eslint/eslint-plugin": "^5", - "@typescript-eslint/parser": "^5", + "@typescript-eslint/eslint-plugin": "^6", + "@typescript-eslint/parser": "^6", + "constructs": "^10.0.0", "eslint": "^8", - "eslint-import-resolver-node": "*", "eslint-import-resolver-typescript": "*", "eslint-plugin-import": "*", "jest": "^27", diff --git a/test/projects/__snapshots__/node.test.ts.snap b/test/projects/__snapshots__/node.test.ts.snap index cdf0b387..e4858f1d 100644 --- a/test/projects/__snapshots__/node.test.ts.snap +++ b/test/projects/__snapshots__/node.test.ts.snap @@ -42,7 +42,6 @@ Object { /.gitignore linguist-generated /.mergify.yml linguist-generated /.npmignore linguist-generated -/.npmrc linguist-generated /.projen/** linguist-generated /.projen/deps.json linguist-generated /.projen/files.json linguist-generated @@ -805,7 +804,6 @@ junit.xml !/.mergify.yml !/.github/workflows/upgrade-runtime-dependencies-main.yml !/.github/pull_request_template.md -!/.npmrc !/CODE_OF_CONDUCT.md !/DCO !/git-hooks/prepare-commit-msg @@ -862,6 +860,11 @@ permissions-backup.acl ".projen/deps.json": Object { "//": "~~ Generated by projen. To modify, edit .projenrc.js and run \\"npx projen\\".", "dependencies": Array [ + Object { + "name": "constructs", + "type": "build", + "version": "^10.0.0", + }, Object { "name": "jest", "type": "build", @@ -910,7 +913,6 @@ permissions-backup.acl ".gitignore", ".mergify.yml", ".npmignore", - ".npmrc", ".projen/deps.json", ".projen/files.json", ".projen/tasks.json", @@ -1165,7 +1167,7 @@ permissions-backup.acl "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=projen,@cdk8s/projen-common", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev,peer,prod,optional --filter=projen,@cdk8s/projen-common", }, Object { "exec": "yarn install --check-files", @@ -1192,13 +1194,13 @@ permissions-backup.acl "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=jest,jest-junit,npm-check-updates,standard-version", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev --filter=constructs,jest,jest-junit,npm-check-updates,standard-version", }, Object { "exec": "yarn install --check-files", }, Object { - "exec": "yarn upgrade jest jest-junit npm-check-updates standard-version", + "exec": "yarn upgrade constructs jest jest-junit npm-check-updates standard-version", }, Object { "exec": "npx projen", @@ -1515,6 +1517,7 @@ echo \\"Configured core.hooksPath to \${hooksdir}\\" "organization": false, }, "devDependencies": Object { + "constructs": "^10.0.0", "jest": "*", "jest-junit": "^15", "npm-check-updates": "^16", @@ -1617,7 +1620,6 @@ Object { /.gitignore linguist-generated /.mergify.yml linguist-generated /.npmignore linguist-generated -/.npmrc linguist-generated /.projen/** linguist-generated /.projen/deps.json linguist-generated /.projen/files.json linguist-generated @@ -2263,7 +2265,6 @@ junit.xml !/.mergify.yml !/.github/workflows/upgrade-runtime-dependencies.yml !/.github/pull_request_template.md -!/.npmrc !/CODE_OF_CONDUCT.md !/DCO !/git-hooks/prepare-commit-msg @@ -2316,6 +2317,11 @@ permissions-backup.acl ".projen/deps.json": Object { "//": "~~ Generated by projen. To modify, edit .projenrc.js and run \\"npx projen\\".", "dependencies": Array [ + Object { + "name": "constructs", + "type": "build", + "version": "^10.0.0", + }, Object { "name": "jest", "type": "build", @@ -2356,7 +2362,6 @@ permissions-backup.acl ".gitignore", ".mergify.yml", ".npmignore", - ".npmrc", ".projen/deps.json", ".projen/files.json", ".projen/tasks.json", @@ -2528,7 +2533,7 @@ permissions-backup.acl "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=projen,@cdk8s/projen-common", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev,peer,prod,optional --filter=projen,@cdk8s/projen-common", }, Object { "exec": "yarn install --check-files", @@ -2555,13 +2560,13 @@ permissions-backup.acl "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=jest,jest-junit,npm-check-updates", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev --filter=constructs,jest,jest-junit,npm-check-updates", }, Object { "exec": "yarn install --check-files", }, Object { - "exec": "yarn upgrade jest jest-junit npm-check-updates", + "exec": "yarn upgrade constructs jest jest-junit npm-check-updates", }, Object { "exec": "npx projen", @@ -2878,6 +2883,7 @@ echo \\"Configured core.hooksPath to \${hooksdir}\\" "organization": false, }, "devDependencies": Object { + "constructs": "^10.0.0", "jest": "*", "jest-junit": "^15", "npm-check-updates": "^16", @@ -2971,7 +2977,6 @@ Object { /.gitignore linguist-generated /.mergify.yml linguist-generated /.npmignore linguist-generated -/.npmrc linguist-generated /.projen/** linguist-generated /.projen/deps.json linguist-generated /.projen/files.json linguist-generated @@ -3617,7 +3622,6 @@ junit.xml !/.mergify.yml !/.github/workflows/upgrade-runtime-dependencies.yml !/.github/pull_request_template.md -!/.npmrc !/CODE_OF_CONDUCT.md !/DCO !/git-hooks/prepare-commit-msg @@ -3670,6 +3674,11 @@ permissions-backup.acl ".projen/deps.json": Object { "//": "~~ Generated by projen. To modify, edit .projenrc.js and run \\"npx projen\\".", "dependencies": Array [ + Object { + "name": "constructs", + "type": "build", + "version": "^10.0.0", + }, Object { "name": "jest", "type": "build", @@ -3710,7 +3719,6 @@ permissions-backup.acl ".gitignore", ".mergify.yml", ".npmignore", - ".npmrc", ".projen/deps.json", ".projen/files.json", ".projen/tasks.json", @@ -3882,7 +3890,7 @@ permissions-backup.acl "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=projen,@cdk8s/projen-common", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev,peer,prod,optional --filter=projen,@cdk8s/projen-common", }, Object { "exec": "yarn install --check-files", @@ -3909,13 +3917,13 @@ permissions-backup.acl "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=jest,jest-junit,npm-check-updates", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev --filter=constructs,jest,jest-junit,npm-check-updates", }, Object { "exec": "yarn install --check-files", }, Object { - "exec": "yarn upgrade jest jest-junit npm-check-updates", + "exec": "yarn upgrade constructs jest jest-junit npm-check-updates", }, Object { "exec": "npx projen", @@ -4232,6 +4240,7 @@ echo \\"Configured core.hooksPath to \${hooksdir}\\" "organization": false, }, "devDependencies": Object { + "constructs": "^10.0.0", "jest": "*", "jest-junit": "^15", "npm-check-updates": "^16", @@ -4325,7 +4334,6 @@ Object { /.gitignore linguist-generated /.mergify.yml linguist-generated /.npmignore linguist-generated -/.npmrc linguist-generated /.projen/** linguist-generated /.projen/deps.json linguist-generated /.projen/files.json linguist-generated @@ -4971,7 +4979,6 @@ junit.xml !/.mergify.yml !/.github/workflows/upgrade-runtime-dependencies.yml !/.github/pull_request_template.md -!/.npmrc !/CODE_OF_CONDUCT.md !/DCO !/git-hooks/prepare-commit-msg @@ -5024,6 +5031,11 @@ permissions-backup.acl ".projen/deps.json": Object { "//": "~~ Generated by projen. To modify, edit .projenrc.js and run \\"npx projen\\".", "dependencies": Array [ + Object { + "name": "constructs", + "type": "build", + "version": "^10.0.0", + }, Object { "name": "jest", "type": "build", @@ -5064,7 +5076,6 @@ permissions-backup.acl ".gitignore", ".mergify.yml", ".npmignore", - ".npmrc", ".projen/deps.json", ".projen/files.json", ".projen/tasks.json", @@ -5236,7 +5247,7 @@ permissions-backup.acl "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=projen,@cdk8s/projen-common", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev,peer,prod,optional --filter=projen,@cdk8s/projen-common", }, Object { "exec": "yarn install --check-files", @@ -5263,13 +5274,13 @@ permissions-backup.acl "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=jest,jest-junit,npm-check-updates", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev --filter=constructs,jest,jest-junit,npm-check-updates", }, Object { "exec": "yarn install --check-files", }, Object { - "exec": "yarn upgrade jest jest-junit npm-check-updates", + "exec": "yarn upgrade constructs jest jest-junit npm-check-updates", }, Object { "exec": "npx projen", @@ -5586,6 +5597,7 @@ echo \\"Configured core.hooksPath to \${hooksdir}\\" "organization": false, }, "devDependencies": Object { + "constructs": "^10.0.0", "jest": "*", "jest-junit": "^15", "npm-check-updates": "^16", @@ -5680,7 +5692,6 @@ Object { /.gitignore linguist-generated /.mergify.yml linguist-generated /.npmignore linguist-generated -/.npmrc linguist-generated /.projen/** linguist-generated /.projen/deps.json linguist-generated /.projen/files.json linguist-generated @@ -6411,7 +6422,6 @@ junit.xml !/.mergify.yml !/.github/workflows/upgrade-runtime-dependencies-main.yml !/.github/pull_request_template.md -!/.npmrc !/CODE_OF_CONDUCT.md !/DCO !/git-hooks/prepare-commit-msg @@ -6466,6 +6476,11 @@ permissions-backup.acl ".projen/deps.json": Object { "//": "~~ Generated by projen. To modify, edit .projenrc.js and run \\"npx projen\\".", "dependencies": Array [ + Object { + "name": "constructs", + "type": "build", + "version": "^10.0.0", + }, Object { "name": "jest", "type": "build", @@ -6512,7 +6527,6 @@ permissions-backup.acl ".gitignore", ".mergify.yml", ".npmignore", - ".npmrc", ".projen/deps.json", ".projen/files.json", ".projen/tasks.json", @@ -6743,7 +6757,7 @@ permissions-backup.acl "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=projen,@cdk8s/projen-common", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev,peer,prod,optional --filter=projen,@cdk8s/projen-common", }, Object { "exec": "yarn install --check-files", @@ -6770,13 +6784,13 @@ permissions-backup.acl "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=jest,jest-junit,npm-check-updates,standard-version", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev --filter=constructs,jest,jest-junit,npm-check-updates,standard-version", }, Object { "exec": "yarn install --check-files", }, Object { - "exec": "yarn upgrade jest jest-junit npm-check-updates standard-version", + "exec": "yarn upgrade constructs jest jest-junit npm-check-updates standard-version", }, Object { "exec": "npx projen", @@ -7093,6 +7107,7 @@ echo \\"Configured core.hooksPath to \${hooksdir}\\" "organization": false, }, "devDependencies": Object { + "constructs": "^10.0.0", "jest": "*", "jest-junit": "^15", "npm-check-updates": "^16", @@ -7191,7 +7206,6 @@ Object { /.gitignore linguist-generated /.mergify.yml linguist-generated /.npmignore linguist-generated -/.npmrc linguist-generated /.projen/** linguist-generated /.projen/deps.json linguist-generated /.projen/files.json linguist-generated @@ -7922,7 +7936,6 @@ junit.xml !/.mergify.yml !/.github/workflows/upgrade-runtime-dependencies-main.yml !/.github/pull_request_template.md -!/.npmrc !/CODE_OF_CONDUCT.md !/DCO !/git-hooks/prepare-commit-msg @@ -7977,6 +7990,11 @@ permissions-backup.acl ".projen/deps.json": Object { "//": "~~ Generated by projen. To modify, edit .projenrc.js and run \\"npx projen\\".", "dependencies": Array [ + Object { + "name": "constructs", + "type": "build", + "version": "^10.0.0", + }, Object { "name": "jest", "type": "build", @@ -8023,7 +8041,6 @@ permissions-backup.acl ".gitignore", ".mergify.yml", ".npmignore", - ".npmrc", ".projen/deps.json", ".projen/files.json", ".projen/tasks.json", @@ -8254,7 +8271,7 @@ permissions-backup.acl "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=projen,@cdk8s/projen-common", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev,peer,prod,optional --filter=projen,@cdk8s/projen-common", }, Object { "exec": "yarn install --check-files", @@ -8281,13 +8298,13 @@ permissions-backup.acl "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=jest,jest-junit,npm-check-updates,standard-version", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev --filter=constructs,jest,jest-junit,npm-check-updates,standard-version", }, Object { "exec": "yarn install --check-files", }, Object { - "exec": "yarn upgrade jest jest-junit npm-check-updates standard-version", + "exec": "yarn upgrade constructs jest jest-junit npm-check-updates standard-version", }, Object { "exec": "npx projen", @@ -8604,6 +8621,7 @@ echo \\"Configured core.hooksPath to \${hooksdir}\\" "organization": false, }, "devDependencies": Object { + "constructs": "^10.0.0", "jest": "*", "jest-junit": "^15", "npm-check-updates": "^16", @@ -8702,7 +8720,6 @@ Object { /.gitignore linguist-generated /.mergify.yml linguist-generated /.npmignore linguist-generated -/.npmrc linguist-generated /.projen/** linguist-generated /.projen/deps.json linguist-generated /.projen/files.json linguist-generated @@ -9433,7 +9450,6 @@ junit.xml !/.mergify.yml !/.github/workflows/upgrade-runtime-dependencies-main.yml !/.github/pull_request_template.md -!/.npmrc !/CODE_OF_CONDUCT.md !/DCO !/git-hooks/prepare-commit-msg @@ -9488,6 +9504,11 @@ permissions-backup.acl ".projen/deps.json": Object { "//": "~~ Generated by projen. To modify, edit .projenrc.js and run \\"npx projen\\".", "dependencies": Array [ + Object { + "name": "constructs", + "type": "build", + "version": "^10.0.0", + }, Object { "name": "jest", "type": "build", @@ -9534,7 +9555,6 @@ permissions-backup.acl ".gitignore", ".mergify.yml", ".npmignore", - ".npmrc", ".projen/deps.json", ".projen/files.json", ".projen/tasks.json", @@ -9765,7 +9785,7 @@ permissions-backup.acl "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=projen,@cdk8s/projen-common", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev,peer,prod,optional --filter=projen,@cdk8s/projen-common", }, Object { "exec": "yarn install --check-files", @@ -9792,13 +9812,13 @@ permissions-backup.acl "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=jest,jest-junit,npm-check-updates,standard-version", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev --filter=constructs,jest,jest-junit,npm-check-updates,standard-version", }, Object { "exec": "yarn install --check-files", }, Object { - "exec": "yarn upgrade jest jest-junit npm-check-updates standard-version", + "exec": "yarn upgrade constructs jest jest-junit npm-check-updates standard-version", }, Object { "exec": "npx projen", @@ -10115,6 +10135,7 @@ echo \\"Configured core.hooksPath to \${hooksdir}\\" "organization": false, }, "devDependencies": Object { + "constructs": "^10.0.0", "jest": "*", "jest-junit": "^15", "npm-check-updates": "^16", @@ -10213,7 +10234,6 @@ Object { /.gitignore linguist-generated /.mergify.yml linguist-generated /.npmignore linguist-generated -/.npmrc linguist-generated /.projen/** linguist-generated /.projen/deps.json linguist-generated /.projen/files.json linguist-generated @@ -10944,7 +10964,6 @@ junit.xml !/.mergify.yml !/.github/workflows/upgrade-runtime-dependencies-main.yml !/.github/pull_request_template.md -!/.npmrc !/CODE_OF_CONDUCT.md !/DCO !/git-hooks/prepare-commit-msg @@ -10999,6 +11018,11 @@ permissions-backup.acl ".projen/deps.json": Object { "//": "~~ Generated by projen. To modify, edit .projenrc.js and run \\"npx projen\\".", "dependencies": Array [ + Object { + "name": "constructs", + "type": "build", + "version": "^10.0.0", + }, Object { "name": "jest", "type": "build", @@ -11045,7 +11069,6 @@ permissions-backup.acl ".gitignore", ".mergify.yml", ".npmignore", - ".npmrc", ".projen/deps.json", ".projen/files.json", ".projen/tasks.json", @@ -11276,7 +11299,7 @@ permissions-backup.acl "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=projen,@cdk8s/projen-common", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev,peer,prod,optional --filter=projen,@cdk8s/projen-common", }, Object { "exec": "yarn install --check-files", @@ -11303,13 +11326,13 @@ permissions-backup.acl "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=jest,jest-junit,npm-check-updates,standard-version", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev --filter=constructs,jest,jest-junit,npm-check-updates,standard-version", }, Object { "exec": "yarn install --check-files", }, Object { - "exec": "yarn upgrade jest jest-junit npm-check-updates standard-version", + "exec": "yarn upgrade constructs jest jest-junit npm-check-updates standard-version", }, Object { "exec": "npx projen", @@ -11626,6 +11649,7 @@ echo \\"Configured core.hooksPath to \${hooksdir}\\" "organization": false, }, "devDependencies": Object { + "constructs": "^10.0.0", "jest": "*", "jest-junit": "^15", "npm-check-updates": "^16", @@ -11724,7 +11748,6 @@ Object { /.gitignore linguist-generated /.mergify.yml linguist-generated /.npmignore linguist-generated -/.npmrc linguist-generated /.projen/** linguist-generated /.projen/deps.json linguist-generated /.projen/files.json linguist-generated @@ -12455,7 +12478,6 @@ junit.xml !/.mergify.yml !/.github/workflows/upgrade-runtime-dependencies-main.yml !/.github/pull_request_template.md -!/.npmrc !/CODE_OF_CONDUCT.md !/DCO !/git-hooks/prepare-commit-msg @@ -12510,6 +12532,11 @@ permissions-backup.acl ".projen/deps.json": Object { "//": "~~ Generated by projen. To modify, edit .projenrc.js and run \\"npx projen\\".", "dependencies": Array [ + Object { + "name": "constructs", + "type": "build", + "version": "^10.0.0", + }, Object { "name": "jest", "type": "build", @@ -12556,7 +12583,6 @@ permissions-backup.acl ".gitignore", ".mergify.yml", ".npmignore", - ".npmrc", ".projen/deps.json", ".projen/files.json", ".projen/tasks.json", @@ -12787,7 +12813,7 @@ permissions-backup.acl "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=projen,@cdk8s/projen-common", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev,peer,prod,optional --filter=projen,@cdk8s/projen-common", }, Object { "exec": "yarn install --check-files", @@ -12814,13 +12840,13 @@ permissions-backup.acl "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=jest,jest-junit,npm-check-updates,standard-version", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev --filter=constructs,jest,jest-junit,npm-check-updates,standard-version", }, Object { "exec": "yarn install --check-files", }, Object { - "exec": "yarn upgrade jest jest-junit npm-check-updates standard-version", + "exec": "yarn upgrade constructs jest jest-junit npm-check-updates standard-version", }, Object { "exec": "npx projen", @@ -13137,6 +13163,7 @@ echo \\"Configured core.hooksPath to \${hooksdir}\\" "organization": false, }, "devDependencies": Object { + "constructs": "^10.0.0", "jest": "*", "jest-junit": "^15", "npm-check-updates": "^16", diff --git a/test/projects/__snapshots__/typescript.test.ts.snap b/test/projects/__snapshots__/typescript.test.ts.snap index f84d0c07..6c69fa99 100644 --- a/test/projects/__snapshots__/typescript.test.ts.snap +++ b/test/projects/__snapshots__/typescript.test.ts.snap @@ -256,7 +256,6 @@ Object { /.gitignore linguist-generated /.mergify.yml linguist-generated /.npmignore linguist-generated -/.npmrc linguist-generated /.projen/** linguist-generated /.projen/deps.json linguist-generated /.projen/files.json linguist-generated @@ -1081,7 +1080,6 @@ junit.xml !/.mergify.yml !/.github/workflows/upgrade-runtime-dependencies-main.yml !/.github/pull_request_template.md -!/.npmrc !/test/ !/tsconfig.json !/tsconfig.dev.json @@ -1169,16 +1167,17 @@ tsconfig.tsbuildinfo Object { "name": "@typescript-eslint/eslint-plugin", "type": "build", - "version": "^5", + "version": "^6", }, Object { "name": "@typescript-eslint/parser", "type": "build", - "version": "^5", + "version": "^6", }, Object { - "name": "eslint-import-resolver-node", + "name": "constructs", "type": "build", + "version": "^10.0.0", }, Object { "name": "eslint-import-resolver-typescript", @@ -1249,7 +1248,6 @@ tsconfig.tsbuildinfo ".gitignore", ".mergify.yml", ".npmignore", - ".npmrc", ".projen/deps.json", ".projen/files.json", ".projen/tasks.json", @@ -1499,7 +1497,7 @@ tsconfig.tsbuildinfo "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=comp1,typescript", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev --filter=comp1,typescript", }, Object { "exec": "yarn install --check-files", @@ -1526,7 +1524,7 @@ tsconfig.tsbuildinfo "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=projen,@cdk8s/projen-common", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev,peer,prod,optional --filter=projen,@cdk8s/projen-common", }, Object { "exec": "yarn install --check-files", @@ -1553,13 +1551,13 @@ tsconfig.tsbuildinfo "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=@types/jest,@types/node,@typescript-eslint/eslint-plugin,@typescript-eslint/parser,eslint-import-resolver-node,eslint-import-resolver-typescript,eslint-plugin-import,eslint,jest,jest-junit,npm-check-updates,standard-version,ts-jest", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev --filter=@types/jest,@types/node,@typescript-eslint/eslint-plugin,@typescript-eslint/parser,constructs,eslint-import-resolver-typescript,eslint-plugin-import,eslint,jest,jest-junit,npm-check-updates,standard-version,ts-jest", }, Object { "exec": "yarn install --check-files", }, Object { - "exec": "yarn upgrade @types/jest @types/node @typescript-eslint/eslint-plugin @typescript-eslint/parser eslint-import-resolver-node eslint-import-resolver-typescript eslint-plugin-import eslint jest jest-junit npm-check-updates standard-version ts-jest", + "exec": "yarn upgrade @types/jest @types/node @typescript-eslint/eslint-plugin @typescript-eslint/parser constructs eslint-import-resolver-typescript eslint-plugin-import eslint jest jest-junit npm-check-updates standard-version ts-jest", }, Object { "exec": "npx projen", @@ -1887,10 +1885,10 @@ echo \\"Configured core.hooksPath to \${hooksdir}\\" "devDependencies": Object { "@types/jest": "*", "@types/node": "^16", - "@typescript-eslint/eslint-plugin": "^5", - "@typescript-eslint/parser": "^5", + "@typescript-eslint/eslint-plugin": "^6", + "@typescript-eslint/parser": "^6", + "constructs": "^10.0.0", "eslint": "^8", - "eslint-import-resolver-node": "*", "eslint-import-resolver-typescript": "*", "eslint-plugin-import": "*", "jest": "*", @@ -2333,7 +2331,6 @@ Object { /.gitignore linguist-generated /.mergify.yml linguist-generated /.npmignore linguist-generated -/.npmrc linguist-generated /.projen/** linguist-generated /.projen/deps.json linguist-generated /.projen/files.json linguist-generated @@ -3190,7 +3187,6 @@ junit.xml !/.mergify.yml !/.github/workflows/upgrade-runtime-dependencies-main.yml !/.github/pull_request_template.md -!/.npmrc !/test/ !/tsconfig.json !/tsconfig.dev.json @@ -3280,16 +3276,17 @@ tsconfig.tsbuildinfo Object { "name": "@typescript-eslint/eslint-plugin", "type": "build", - "version": "^5", + "version": "^6", }, Object { "name": "@typescript-eslint/parser", "type": "build", - "version": "^5", + "version": "^6", }, Object { - "name": "eslint-import-resolver-node", + "name": "constructs", "type": "build", + "version": "^10.0.0", }, Object { "name": "eslint-import-resolver-typescript", @@ -3362,7 +3359,6 @@ tsconfig.tsbuildinfo ".gitignore", ".mergify.yml", ".npmignore", - ".npmrc", ".projen/deps.json", ".projen/files.json", ".projen/tasks.json", @@ -3636,7 +3632,7 @@ tsconfig.tsbuildinfo "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=typescript", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev --filter=typescript", }, Object { "exec": "yarn install --check-files", @@ -3663,7 +3659,7 @@ tsconfig.tsbuildinfo "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=projen,@cdk8s/projen-common", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev,peer,prod,optional --filter=projen,@cdk8s/projen-common", }, Object { "exec": "yarn install --check-files", @@ -3690,13 +3686,13 @@ tsconfig.tsbuildinfo "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=@types/jest,@types/node,@typescript-eslint/eslint-plugin,@typescript-eslint/parser,eslint-import-resolver-node,eslint-import-resolver-typescript,eslint-plugin-import,eslint,jest,jest-junit,npm-check-updates,standard-version,ts-jest", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev --filter=@types/jest,@types/node,@typescript-eslint/eslint-plugin,@typescript-eslint/parser,constructs,eslint-import-resolver-typescript,eslint-plugin-import,eslint,jest,jest-junit,npm-check-updates,standard-version,ts-jest", }, Object { "exec": "yarn install --check-files", }, Object { - "exec": "yarn upgrade @types/jest @types/node @typescript-eslint/eslint-plugin @typescript-eslint/parser eslint-import-resolver-node eslint-import-resolver-typescript eslint-plugin-import eslint jest jest-junit npm-check-updates standard-version ts-jest", + "exec": "yarn upgrade @types/jest @types/node @typescript-eslint/eslint-plugin @typescript-eslint/parser constructs eslint-import-resolver-typescript eslint-plugin-import eslint jest jest-junit npm-check-updates standard-version ts-jest", }, Object { "exec": "npx projen", @@ -4024,10 +4020,10 @@ echo \\"Configured core.hooksPath to \${hooksdir}\\" "devDependencies": Object { "@types/jest": "*", "@types/node": "^16", - "@typescript-eslint/eslint-plugin": "^5", - "@typescript-eslint/parser": "^5", + "@typescript-eslint/eslint-plugin": "^6", + "@typescript-eslint/parser": "^6", + "constructs": "^10.0.0", "eslint": "^8", - "eslint-import-resolver-node": "*", "eslint-import-resolver-typescript": "*", "eslint-plugin-import": "*", "jest": "*", @@ -4455,7 +4451,6 @@ Object { /.gitignore linguist-generated /.mergify.yml linguist-generated /.npmignore linguist-generated -/.npmrc linguist-generated /.projen/** linguist-generated /.projen/deps.json linguist-generated /.projen/files.json linguist-generated @@ -5192,7 +5187,6 @@ junit.xml !/.mergify.yml !/.github/workflows/upgrade-runtime-dependencies.yml !/.github/pull_request_template.md -!/.npmrc !/test/ !/tsconfig.json !/tsconfig.dev.json @@ -5278,16 +5272,17 @@ tsconfig.tsbuildinfo Object { "name": "@typescript-eslint/eslint-plugin", "type": "build", - "version": "^5", + "version": "^6", }, Object { "name": "@typescript-eslint/parser", "type": "build", - "version": "^5", + "version": "^6", }, Object { - "name": "eslint-import-resolver-node", + "name": "constructs", "type": "build", + "version": "^10.0.0", }, Object { "name": "eslint-import-resolver-typescript", @@ -5352,7 +5347,6 @@ tsconfig.tsbuildinfo ".gitignore", ".mergify.yml", ".npmignore", - ".npmrc", ".projen/deps.json", ".projen/files.json", ".projen/tasks.json", @@ -5543,7 +5537,7 @@ tsconfig.tsbuildinfo "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=typescript", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev --filter=typescript", }, Object { "exec": "yarn install --check-files", @@ -5570,7 +5564,7 @@ tsconfig.tsbuildinfo "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=projen,@cdk8s/projen-common", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev,peer,prod,optional --filter=projen,@cdk8s/projen-common", }, Object { "exec": "yarn install --check-files", @@ -5597,13 +5591,13 @@ tsconfig.tsbuildinfo "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=@types/jest,@types/node,@typescript-eslint/eslint-plugin,@typescript-eslint/parser,eslint-import-resolver-node,eslint-import-resolver-typescript,eslint-plugin-import,eslint,jest,jest-junit,npm-check-updates,ts-jest", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev --filter=@types/jest,@types/node,@typescript-eslint/eslint-plugin,@typescript-eslint/parser,constructs,eslint-import-resolver-typescript,eslint-plugin-import,eslint,jest,jest-junit,npm-check-updates,ts-jest", }, Object { "exec": "yarn install --check-files", }, Object { - "exec": "yarn upgrade @types/jest @types/node @typescript-eslint/eslint-plugin @typescript-eslint/parser eslint-import-resolver-node eslint-import-resolver-typescript eslint-plugin-import eslint jest jest-junit npm-check-updates ts-jest", + "exec": "yarn upgrade @types/jest @types/node @typescript-eslint/eslint-plugin @typescript-eslint/parser constructs eslint-import-resolver-typescript eslint-plugin-import eslint jest jest-junit npm-check-updates ts-jest", }, Object { "exec": "npx projen", @@ -5931,10 +5925,10 @@ echo \\"Configured core.hooksPath to \${hooksdir}\\" "devDependencies": Object { "@types/jest": "*", "@types/node": "^16", - "@typescript-eslint/eslint-plugin": "^5", - "@typescript-eslint/parser": "^5", + "@typescript-eslint/eslint-plugin": "^6", + "@typescript-eslint/parser": "^6", + "constructs": "^10.0.0", "eslint": "^8", - "eslint-import-resolver-node": "*", "eslint-import-resolver-typescript": "*", "eslint-plugin-import": "*", "jest": "*", @@ -6353,7 +6347,6 @@ Object { /.gitignore linguist-generated /.mergify.yml linguist-generated /.npmignore linguist-generated -/.npmrc linguist-generated /.projen/** linguist-generated /.projen/deps.json linguist-generated /.projen/files.json linguist-generated @@ -7090,7 +7083,6 @@ junit.xml !/.mergify.yml !/.github/workflows/upgrade-runtime-dependencies.yml !/.github/pull_request_template.md -!/.npmrc !/test/ !/tsconfig.json !/tsconfig.dev.json @@ -7176,16 +7168,17 @@ tsconfig.tsbuildinfo Object { "name": "@typescript-eslint/eslint-plugin", "type": "build", - "version": "^5", + "version": "^6", }, Object { "name": "@typescript-eslint/parser", "type": "build", - "version": "^5", + "version": "^6", }, Object { - "name": "eslint-import-resolver-node", + "name": "constructs", "type": "build", + "version": "^10.0.0", }, Object { "name": "eslint-import-resolver-typescript", @@ -7250,7 +7243,6 @@ tsconfig.tsbuildinfo ".gitignore", ".mergify.yml", ".npmignore", - ".npmrc", ".projen/deps.json", ".projen/files.json", ".projen/tasks.json", @@ -7441,7 +7433,7 @@ tsconfig.tsbuildinfo "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=typescript", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev --filter=typescript", }, Object { "exec": "yarn install --check-files", @@ -7468,7 +7460,7 @@ tsconfig.tsbuildinfo "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=projen,@cdk8s/projen-common", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev,peer,prod,optional --filter=projen,@cdk8s/projen-common", }, Object { "exec": "yarn install --check-files", @@ -7495,13 +7487,13 @@ tsconfig.tsbuildinfo "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=@types/jest,@types/node,@typescript-eslint/eslint-plugin,@typescript-eslint/parser,eslint-import-resolver-node,eslint-import-resolver-typescript,eslint-plugin-import,eslint,jest,jest-junit,npm-check-updates,ts-jest", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev --filter=@types/jest,@types/node,@typescript-eslint/eslint-plugin,@typescript-eslint/parser,constructs,eslint-import-resolver-typescript,eslint-plugin-import,eslint,jest,jest-junit,npm-check-updates,ts-jest", }, Object { "exec": "yarn install --check-files", }, Object { - "exec": "yarn upgrade @types/jest @types/node @typescript-eslint/eslint-plugin @typescript-eslint/parser eslint-import-resolver-node eslint-import-resolver-typescript eslint-plugin-import eslint jest jest-junit npm-check-updates ts-jest", + "exec": "yarn upgrade @types/jest @types/node @typescript-eslint/eslint-plugin @typescript-eslint/parser constructs eslint-import-resolver-typescript eslint-plugin-import eslint jest jest-junit npm-check-updates ts-jest", }, Object { "exec": "npx projen", @@ -7829,10 +7821,10 @@ echo \\"Configured core.hooksPath to \${hooksdir}\\" "devDependencies": Object { "@types/jest": "*", "@types/node": "^16", - "@typescript-eslint/eslint-plugin": "^5", - "@typescript-eslint/parser": "^5", + "@typescript-eslint/eslint-plugin": "^6", + "@typescript-eslint/parser": "^6", + "constructs": "^10.0.0", "eslint": "^8", - "eslint-import-resolver-node": "*", "eslint-import-resolver-typescript": "*", "eslint-plugin-import": "*", "jest": "*", @@ -8251,7 +8243,6 @@ Object { /.gitignore linguist-generated /.mergify.yml linguist-generated /.npmignore linguist-generated -/.npmrc linguist-generated /.projen/** linguist-generated /.projen/deps.json linguist-generated /.projen/files.json linguist-generated @@ -8988,7 +8979,6 @@ junit.xml !/.mergify.yml !/.github/workflows/upgrade-runtime-dependencies.yml !/.github/pull_request_template.md -!/.npmrc !/test/ !/tsconfig.json !/tsconfig.dev.json @@ -9074,16 +9064,17 @@ tsconfig.tsbuildinfo Object { "name": "@typescript-eslint/eslint-plugin", "type": "build", - "version": "^5", + "version": "^6", }, Object { "name": "@typescript-eslint/parser", "type": "build", - "version": "^5", + "version": "^6", }, Object { - "name": "eslint-import-resolver-node", + "name": "constructs", "type": "build", + "version": "^10.0.0", }, Object { "name": "eslint-import-resolver-typescript", @@ -9148,7 +9139,6 @@ tsconfig.tsbuildinfo ".gitignore", ".mergify.yml", ".npmignore", - ".npmrc", ".projen/deps.json", ".projen/files.json", ".projen/tasks.json", @@ -9339,7 +9329,7 @@ tsconfig.tsbuildinfo "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=typescript", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev --filter=typescript", }, Object { "exec": "yarn install --check-files", @@ -9366,7 +9356,7 @@ tsconfig.tsbuildinfo "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=projen,@cdk8s/projen-common", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev,peer,prod,optional --filter=projen,@cdk8s/projen-common", }, Object { "exec": "yarn install --check-files", @@ -9393,13 +9383,13 @@ tsconfig.tsbuildinfo "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=@types/jest,@types/node,@typescript-eslint/eslint-plugin,@typescript-eslint/parser,eslint-import-resolver-node,eslint-import-resolver-typescript,eslint-plugin-import,eslint,jest,jest-junit,npm-check-updates,ts-jest", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev --filter=@types/jest,@types/node,@typescript-eslint/eslint-plugin,@typescript-eslint/parser,constructs,eslint-import-resolver-typescript,eslint-plugin-import,eslint,jest,jest-junit,npm-check-updates,ts-jest", }, Object { "exec": "yarn install --check-files", }, Object { - "exec": "yarn upgrade @types/jest @types/node @typescript-eslint/eslint-plugin @typescript-eslint/parser eslint-import-resolver-node eslint-import-resolver-typescript eslint-plugin-import eslint jest jest-junit npm-check-updates ts-jest", + "exec": "yarn upgrade @types/jest @types/node @typescript-eslint/eslint-plugin @typescript-eslint/parser constructs eslint-import-resolver-typescript eslint-plugin-import eslint jest jest-junit npm-check-updates ts-jest", }, Object { "exec": "npx projen", @@ -9727,10 +9717,10 @@ echo \\"Configured core.hooksPath to \${hooksdir}\\" "devDependencies": Object { "@types/jest": "*", "@types/node": "^16", - "@typescript-eslint/eslint-plugin": "^5", - "@typescript-eslint/parser": "^5", + "@typescript-eslint/eslint-plugin": "^6", + "@typescript-eslint/parser": "^6", + "constructs": "^10.0.0", "eslint": "^8", - "eslint-import-resolver-node": "*", "eslint-import-resolver-typescript": "*", "eslint-plugin-import": "*", "jest": "*", @@ -10150,7 +10140,6 @@ Object { /.gitignore linguist-generated /.mergify.yml linguist-generated /.npmignore linguist-generated -/.npmrc linguist-generated /.projen/** linguist-generated /.projen/deps.json linguist-generated /.projen/files.json linguist-generated @@ -10975,7 +10964,6 @@ junit.xml !/.mergify.yml !/.github/workflows/upgrade-runtime-dependencies-main.yml !/.github/pull_request_template.md -!/.npmrc !/test/ !/tsconfig.json !/tsconfig.dev.json @@ -11063,16 +11051,17 @@ tsconfig.tsbuildinfo Object { "name": "@typescript-eslint/eslint-plugin", "type": "build", - "version": "^5", + "version": "^6", }, Object { "name": "@typescript-eslint/parser", "type": "build", - "version": "^5", + "version": "^6", }, Object { - "name": "eslint-import-resolver-node", + "name": "constructs", "type": "build", + "version": "^10.0.0", }, Object { "name": "eslint-import-resolver-typescript", @@ -11143,7 +11132,6 @@ tsconfig.tsbuildinfo ".gitignore", ".mergify.yml", ".npmignore", - ".npmrc", ".projen/deps.json", ".projen/files.json", ".projen/tasks.json", @@ -11393,7 +11381,7 @@ tsconfig.tsbuildinfo "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=typescript", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev --filter=typescript", }, Object { "exec": "yarn install --check-files", @@ -11420,7 +11408,7 @@ tsconfig.tsbuildinfo "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=projen,@cdk8s/projen-common", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev,peer,prod,optional --filter=projen,@cdk8s/projen-common", }, Object { "exec": "yarn install --check-files", @@ -11447,13 +11435,13 @@ tsconfig.tsbuildinfo "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=@types/jest,@types/node,@typescript-eslint/eslint-plugin,@typescript-eslint/parser,eslint-import-resolver-node,eslint-import-resolver-typescript,eslint-plugin-import,eslint,jest,jest-junit,npm-check-updates,standard-version,ts-jest", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev --filter=@types/jest,@types/node,@typescript-eslint/eslint-plugin,@typescript-eslint/parser,constructs,eslint-import-resolver-typescript,eslint-plugin-import,eslint,jest,jest-junit,npm-check-updates,standard-version,ts-jest", }, Object { "exec": "yarn install --check-files", }, Object { - "exec": "yarn upgrade @types/jest @types/node @typescript-eslint/eslint-plugin @typescript-eslint/parser eslint-import-resolver-node eslint-import-resolver-typescript eslint-plugin-import eslint jest jest-junit npm-check-updates standard-version ts-jest", + "exec": "yarn upgrade @types/jest @types/node @typescript-eslint/eslint-plugin @typescript-eslint/parser constructs eslint-import-resolver-typescript eslint-plugin-import eslint jest jest-junit npm-check-updates standard-version ts-jest", }, Object { "exec": "npx projen", @@ -11781,10 +11769,10 @@ echo \\"Configured core.hooksPath to \${hooksdir}\\" "devDependencies": Object { "@types/jest": "*", "@types/node": "^16", - "@typescript-eslint/eslint-plugin": "^5", - "@typescript-eslint/parser": "^5", + "@typescript-eslint/eslint-plugin": "^6", + "@typescript-eslint/parser": "^6", + "constructs": "^10.0.0", "eslint": "^8", - "eslint-import-resolver-node": "*", "eslint-import-resolver-typescript": "*", "eslint-plugin-import": "*", "jest": "*", @@ -12208,7 +12196,6 @@ Object { /.gitignore linguist-generated /.mergify.yml linguist-generated /.npmignore linguist-generated -/.npmrc linguist-generated /.projen/** linguist-generated /.projen/deps.json linguist-generated /.projen/files.json linguist-generated @@ -13033,7 +13020,6 @@ junit.xml !/.mergify.yml !/.github/workflows/upgrade-runtime-dependencies-main.yml !/.github/pull_request_template.md -!/.npmrc !/test/ !/tsconfig.json !/tsconfig.dev.json @@ -13121,16 +13107,17 @@ tsconfig.tsbuildinfo Object { "name": "@typescript-eslint/eslint-plugin", "type": "build", - "version": "^5", + "version": "^6", }, Object { "name": "@typescript-eslint/parser", "type": "build", - "version": "^5", + "version": "^6", }, Object { - "name": "eslint-import-resolver-node", + "name": "constructs", "type": "build", + "version": "^10.0.0", }, Object { "name": "eslint-import-resolver-typescript", @@ -13201,7 +13188,6 @@ tsconfig.tsbuildinfo ".gitignore", ".mergify.yml", ".npmignore", - ".npmrc", ".projen/deps.json", ".projen/files.json", ".projen/tasks.json", @@ -13451,7 +13437,7 @@ tsconfig.tsbuildinfo "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=typescript", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev --filter=typescript", }, Object { "exec": "yarn install --check-files", @@ -13478,7 +13464,7 @@ tsconfig.tsbuildinfo "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=projen,@cdk8s/projen-common", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev,peer,prod,optional --filter=projen,@cdk8s/projen-common", }, Object { "exec": "yarn install --check-files", @@ -13505,13 +13491,13 @@ tsconfig.tsbuildinfo "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=@types/jest,@types/node,@typescript-eslint/eslint-plugin,@typescript-eslint/parser,eslint-import-resolver-node,eslint-import-resolver-typescript,eslint-plugin-import,eslint,jest,jest-junit,npm-check-updates,standard-version,ts-jest", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev --filter=@types/jest,@types/node,@typescript-eslint/eslint-plugin,@typescript-eslint/parser,constructs,eslint-import-resolver-typescript,eslint-plugin-import,eslint,jest,jest-junit,npm-check-updates,standard-version,ts-jest", }, Object { "exec": "yarn install --check-files", }, Object { - "exec": "yarn upgrade @types/jest @types/node @typescript-eslint/eslint-plugin @typescript-eslint/parser eslint-import-resolver-node eslint-import-resolver-typescript eslint-plugin-import eslint jest jest-junit npm-check-updates standard-version ts-jest", + "exec": "yarn upgrade @types/jest @types/node @typescript-eslint/eslint-plugin @typescript-eslint/parser constructs eslint-import-resolver-typescript eslint-plugin-import eslint jest jest-junit npm-check-updates standard-version ts-jest", }, Object { "exec": "npx projen", @@ -13839,10 +13825,10 @@ echo \\"Configured core.hooksPath to \${hooksdir}\\" "devDependencies": Object { "@types/jest": "*", "@types/node": "^16", - "@typescript-eslint/eslint-plugin": "^5", - "@typescript-eslint/parser": "^5", + "@typescript-eslint/eslint-plugin": "^6", + "@typescript-eslint/parser": "^6", + "constructs": "^10.0.0", "eslint": "^8", - "eslint-import-resolver-node": "*", "eslint-import-resolver-typescript": "*", "eslint-plugin-import": "*", "jest": "*", @@ -14266,7 +14252,6 @@ Object { /.gitignore linguist-generated /.mergify.yml linguist-generated /.npmignore linguist-generated -/.npmrc linguist-generated /.projen/** linguist-generated /.projen/deps.json linguist-generated /.projen/files.json linguist-generated @@ -15091,7 +15076,6 @@ junit.xml !/.mergify.yml !/.github/workflows/upgrade-runtime-dependencies-main.yml !/.github/pull_request_template.md -!/.npmrc !/test/ !/tsconfig.json !/tsconfig.dev.json @@ -15179,16 +15163,17 @@ tsconfig.tsbuildinfo Object { "name": "@typescript-eslint/eslint-plugin", "type": "build", - "version": "^5", + "version": "^6", }, Object { "name": "@typescript-eslint/parser", "type": "build", - "version": "^5", + "version": "^6", }, Object { - "name": "eslint-import-resolver-node", + "name": "constructs", "type": "build", + "version": "^10.0.0", }, Object { "name": "eslint-import-resolver-typescript", @@ -15259,7 +15244,6 @@ tsconfig.tsbuildinfo ".gitignore", ".mergify.yml", ".npmignore", - ".npmrc", ".projen/deps.json", ".projen/files.json", ".projen/tasks.json", @@ -15509,7 +15493,7 @@ tsconfig.tsbuildinfo "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=typescript", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev --filter=typescript", }, Object { "exec": "yarn install --check-files", @@ -15536,7 +15520,7 @@ tsconfig.tsbuildinfo "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=projen,@cdk8s/projen-common", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev,peer,prod,optional --filter=projen,@cdk8s/projen-common", }, Object { "exec": "yarn install --check-files", @@ -15563,13 +15547,13 @@ tsconfig.tsbuildinfo "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=@types/jest,@types/node,@typescript-eslint/eslint-plugin,@typescript-eslint/parser,eslint-import-resolver-node,eslint-import-resolver-typescript,eslint-plugin-import,eslint,jest,jest-junit,npm-check-updates,standard-version,ts-jest", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev --filter=@types/jest,@types/node,@typescript-eslint/eslint-plugin,@typescript-eslint/parser,constructs,eslint-import-resolver-typescript,eslint-plugin-import,eslint,jest,jest-junit,npm-check-updates,standard-version,ts-jest", }, Object { "exec": "yarn install --check-files", }, Object { - "exec": "yarn upgrade @types/jest @types/node @typescript-eslint/eslint-plugin @typescript-eslint/parser eslint-import-resolver-node eslint-import-resolver-typescript eslint-plugin-import eslint jest jest-junit npm-check-updates standard-version ts-jest", + "exec": "yarn upgrade @types/jest @types/node @typescript-eslint/eslint-plugin @typescript-eslint/parser constructs eslint-import-resolver-typescript eslint-plugin-import eslint jest jest-junit npm-check-updates standard-version ts-jest", }, Object { "exec": "npx projen", @@ -15897,10 +15881,10 @@ echo \\"Configured core.hooksPath to \${hooksdir}\\" "devDependencies": Object { "@types/jest": "*", "@types/node": "^16", - "@typescript-eslint/eslint-plugin": "^5", - "@typescript-eslint/parser": "^5", + "@typescript-eslint/eslint-plugin": "^6", + "@typescript-eslint/parser": "^6", + "constructs": "^10.0.0", "eslint": "^8", - "eslint-import-resolver-node": "*", "eslint-import-resolver-typescript": "*", "eslint-plugin-import": "*", "jest": "*", @@ -16324,7 +16308,6 @@ Object { /.gitignore linguist-generated /.mergify.yml linguist-generated /.npmignore linguist-generated -/.npmrc linguist-generated /.projen/** linguist-generated /.projen/deps.json linguist-generated /.projen/files.json linguist-generated @@ -17149,7 +17132,6 @@ junit.xml !/.mergify.yml !/.github/workflows/upgrade-runtime-dependencies-main.yml !/.github/pull_request_template.md -!/.npmrc !/test/ !/tsconfig.json !/tsconfig.dev.json @@ -17237,16 +17219,17 @@ tsconfig.tsbuildinfo Object { "name": "@typescript-eslint/eslint-plugin", "type": "build", - "version": "^5", + "version": "^6", }, Object { "name": "@typescript-eslint/parser", "type": "build", - "version": "^5", + "version": "^6", }, Object { - "name": "eslint-import-resolver-node", + "name": "constructs", "type": "build", + "version": "^10.0.0", }, Object { "name": "eslint-import-resolver-typescript", @@ -17317,7 +17300,6 @@ tsconfig.tsbuildinfo ".gitignore", ".mergify.yml", ".npmignore", - ".npmrc", ".projen/deps.json", ".projen/files.json", ".projen/tasks.json", @@ -17567,7 +17549,7 @@ tsconfig.tsbuildinfo "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=typescript", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev --filter=typescript", }, Object { "exec": "yarn install --check-files", @@ -17594,7 +17576,7 @@ tsconfig.tsbuildinfo "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=projen,@cdk8s/projen-common", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev,peer,prod,optional --filter=projen,@cdk8s/projen-common", }, Object { "exec": "yarn install --check-files", @@ -17621,13 +17603,13 @@ tsconfig.tsbuildinfo "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=@types/jest,@types/node,@typescript-eslint/eslint-plugin,@typescript-eslint/parser,eslint-import-resolver-node,eslint-import-resolver-typescript,eslint-plugin-import,eslint,jest,jest-junit,npm-check-updates,standard-version,ts-jest", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev --filter=@types/jest,@types/node,@typescript-eslint/eslint-plugin,@typescript-eslint/parser,constructs,eslint-import-resolver-typescript,eslint-plugin-import,eslint,jest,jest-junit,npm-check-updates,standard-version,ts-jest", }, Object { "exec": "yarn install --check-files", }, Object { - "exec": "yarn upgrade @types/jest @types/node @typescript-eslint/eslint-plugin @typescript-eslint/parser eslint-import-resolver-node eslint-import-resolver-typescript eslint-plugin-import eslint jest jest-junit npm-check-updates standard-version ts-jest", + "exec": "yarn upgrade @types/jest @types/node @typescript-eslint/eslint-plugin @typescript-eslint/parser constructs eslint-import-resolver-typescript eslint-plugin-import eslint jest jest-junit npm-check-updates standard-version ts-jest", }, Object { "exec": "npx projen", @@ -17955,10 +17937,10 @@ echo \\"Configured core.hooksPath to \${hooksdir}\\" "devDependencies": Object { "@types/jest": "*", "@types/node": "^16", - "@typescript-eslint/eslint-plugin": "^5", - "@typescript-eslint/parser": "^5", + "@typescript-eslint/eslint-plugin": "^6", + "@typescript-eslint/parser": "^6", + "constructs": "^10.0.0", "eslint": "^8", - "eslint-import-resolver-node": "*", "eslint-import-resolver-typescript": "*", "eslint-plugin-import": "*", "jest": "*", @@ -18382,7 +18364,6 @@ Object { /.gitignore linguist-generated /.mergify.yml linguist-generated /.npmignore linguist-generated -/.npmrc linguist-generated /.projen/** linguist-generated /.projen/deps.json linguist-generated /.projen/files.json linguist-generated @@ -19207,7 +19188,6 @@ junit.xml !/.mergify.yml !/.github/workflows/upgrade-runtime-dependencies-main.yml !/.github/pull_request_template.md -!/.npmrc !/test/ !/tsconfig.json !/tsconfig.dev.json @@ -19295,16 +19275,17 @@ tsconfig.tsbuildinfo Object { "name": "@typescript-eslint/eslint-plugin", "type": "build", - "version": "^5", + "version": "^6", }, Object { "name": "@typescript-eslint/parser", "type": "build", - "version": "^5", + "version": "^6", }, Object { - "name": "eslint-import-resolver-node", + "name": "constructs", "type": "build", + "version": "^10.0.0", }, Object { "name": "eslint-import-resolver-typescript", @@ -19375,7 +19356,6 @@ tsconfig.tsbuildinfo ".gitignore", ".mergify.yml", ".npmignore", - ".npmrc", ".projen/deps.json", ".projen/files.json", ".projen/tasks.json", @@ -19625,7 +19605,7 @@ tsconfig.tsbuildinfo "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=typescript", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev --filter=typescript", }, Object { "exec": "yarn install --check-files", @@ -19652,7 +19632,7 @@ tsconfig.tsbuildinfo "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=projen,@cdk8s/projen-common", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev,peer,prod,optional --filter=projen,@cdk8s/projen-common", }, Object { "exec": "yarn install --check-files", @@ -19679,13 +19659,13 @@ tsconfig.tsbuildinfo "exec": "yarn upgrade npm-check-updates", }, Object { - "exec": "npm-check-updates --upgrade --target=minor --filter=@types/jest,@types/node,@typescript-eslint/eslint-plugin,@typescript-eslint/parser,eslint-import-resolver-node,eslint-import-resolver-typescript,eslint-plugin-import,eslint,jest,jest-junit,npm-check-updates,standard-version,ts-jest", + "exec": "npm-check-updates --upgrade --target=minor --peer --dep=dev --filter=@types/jest,@types/node,@typescript-eslint/eslint-plugin,@typescript-eslint/parser,constructs,eslint-import-resolver-typescript,eslint-plugin-import,eslint,jest,jest-junit,npm-check-updates,standard-version,ts-jest", }, Object { "exec": "yarn install --check-files", }, Object { - "exec": "yarn upgrade @types/jest @types/node @typescript-eslint/eslint-plugin @typescript-eslint/parser eslint-import-resolver-node eslint-import-resolver-typescript eslint-plugin-import eslint jest jest-junit npm-check-updates standard-version ts-jest", + "exec": "yarn upgrade @types/jest @types/node @typescript-eslint/eslint-plugin @typescript-eslint/parser constructs eslint-import-resolver-typescript eslint-plugin-import eslint jest jest-junit npm-check-updates standard-version ts-jest", }, Object { "exec": "npx projen", @@ -20013,10 +19993,10 @@ echo \\"Configured core.hooksPath to \${hooksdir}\\" "devDependencies": Object { "@types/jest": "*", "@types/node": "^16", - "@typescript-eslint/eslint-plugin": "^5", - "@typescript-eslint/parser": "^5", + "@typescript-eslint/eslint-plugin": "^6", + "@typescript-eslint/parser": "^6", + "constructs": "^10.0.0", "eslint": "^8", - "eslint-import-resolver-node": "*", "eslint-import-resolver-typescript": "*", "eslint-plugin-import": "*", "jest": "*", diff --git a/yarn.lock b/yarn.lock index da84066a..3937167f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -307,14 +307,14 @@ dependencies: "@jridgewell/trace-mapping" "0.3.9" -"@eslint-community/eslint-utils@^4.2.0": +"@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": version "4.4.0" resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== dependencies: eslint-visitor-keys "^3.3.0" -"@eslint-community/regexpp@^4.4.0", "@eslint-community/regexpp@^4.6.1": +"@eslint-community/regexpp@^4.5.1", "@eslint-community/regexpp@^4.6.1": version "4.10.0" resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.10.0.tgz#548f6de556857c8bb73bbee70c35dc82a2e74d63" integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA== @@ -947,7 +947,7 @@ jest-matcher-utils "^27.0.0" pretty-format "^27.0.0" -"@types/json-schema@^7.0.9": +"@types/json-schema@^7.0.12": version "7.0.15" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== @@ -989,7 +989,7 @@ resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.6.0.tgz#efcbd41937f9ae7434c714ab698604822d890759" integrity sha512-G/AdOadiZhnJp0jXCaBQU449W2h716OW/EoXeYkCytxKL06X1WCXB4DZpp8TpZ8eyIJVS1cw4lrlkkSYU21cDw== -"@types/semver@^7.3.12": +"@types/semver@^7.5.0": version "7.5.5" resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.5.tgz#deed5ab7019756c9c90ea86139106b0346223f35" integrity sha512-+d+WYC1BxJ6yVOgUgzK8gWvp5qF8ssV5r4nsDcZWKRWcDQLQ619tvWAxJQYGgBrO1MnLJC7a5GtiYsAoQ47dJg== @@ -1011,89 +1011,90 @@ dependencies: "@types/yargs-parser" "*" -"@typescript-eslint/eslint-plugin@^5": - version "5.62.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz#aeef0328d172b9e37d9bab6dbc13b87ed88977db" - integrity sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag== +"@typescript-eslint/eslint-plugin@^6": + version "6.11.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.11.0.tgz#52aae65174ff526576351f9ccd41cea01001463f" + integrity sha512-uXnpZDc4VRjY4iuypDBKzW1rz9T5YBBK0snMn8MaTSNd2kMlj50LnLBABELjJiOL5YHk7ZD8hbSpI9ubzqYI0w== dependencies: - "@eslint-community/regexpp" "^4.4.0" - "@typescript-eslint/scope-manager" "5.62.0" - "@typescript-eslint/type-utils" "5.62.0" - "@typescript-eslint/utils" "5.62.0" + "@eslint-community/regexpp" "^4.5.1" + "@typescript-eslint/scope-manager" "6.11.0" + "@typescript-eslint/type-utils" "6.11.0" + "@typescript-eslint/utils" "6.11.0" + "@typescript-eslint/visitor-keys" "6.11.0" debug "^4.3.4" graphemer "^1.4.0" - ignore "^5.2.0" - natural-compare-lite "^1.4.0" - semver "^7.3.7" - tsutils "^3.21.0" + ignore "^5.2.4" + natural-compare "^1.4.0" + semver "^7.5.4" + ts-api-utils "^1.0.1" -"@typescript-eslint/parser@^5": - version "5.62.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.62.0.tgz#1b63d082d849a2fcae8a569248fbe2ee1b8a56c7" - integrity sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA== +"@typescript-eslint/parser@^6": + version "6.11.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.11.0.tgz#9640d9595d905f3be4f278bf515130e6129b202e" + integrity sha512-+whEdjk+d5do5nxfxx73oanLL9ghKO3EwM9kBCkUtWMRwWuPaFv9ScuqlYfQ6pAD6ZiJhky7TZ2ZYhrMsfMxVQ== dependencies: - "@typescript-eslint/scope-manager" "5.62.0" - "@typescript-eslint/types" "5.62.0" - "@typescript-eslint/typescript-estree" "5.62.0" + "@typescript-eslint/scope-manager" "6.11.0" + "@typescript-eslint/types" "6.11.0" + "@typescript-eslint/typescript-estree" "6.11.0" + "@typescript-eslint/visitor-keys" "6.11.0" debug "^4.3.4" -"@typescript-eslint/scope-manager@5.62.0": - version "5.62.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz#d9457ccc6a0b8d6b37d0eb252a23022478c5460c" - integrity sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w== +"@typescript-eslint/scope-manager@6.11.0": + version "6.11.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.11.0.tgz#621f603537c89f4d105733d949aa4d55eee5cea8" + integrity sha512-0A8KoVvIURG4uhxAdjSaxy8RdRE//HztaZdG8KiHLP8WOXSk0vlF7Pvogv+vlJA5Rnjj/wDcFENvDaHb+gKd1A== dependencies: - "@typescript-eslint/types" "5.62.0" - "@typescript-eslint/visitor-keys" "5.62.0" + "@typescript-eslint/types" "6.11.0" + "@typescript-eslint/visitor-keys" "6.11.0" -"@typescript-eslint/type-utils@5.62.0": - version "5.62.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz#286f0389c41681376cdad96b309cedd17d70346a" - integrity sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew== +"@typescript-eslint/type-utils@6.11.0": + version "6.11.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.11.0.tgz#d0b8b1ab6c26b974dbf91de1ebc5b11fea24e0d1" + integrity sha512-nA4IOXwZtqBjIoYrJcYxLRO+F9ri+leVGoJcMW1uqr4r1Hq7vW5cyWrA43lFbpRvQ9XgNrnfLpIkO3i1emDBIA== dependencies: - "@typescript-eslint/typescript-estree" "5.62.0" - "@typescript-eslint/utils" "5.62.0" + "@typescript-eslint/typescript-estree" "6.11.0" + "@typescript-eslint/utils" "6.11.0" debug "^4.3.4" - tsutils "^3.21.0" + ts-api-utils "^1.0.1" -"@typescript-eslint/types@5.62.0": - version "5.62.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.62.0.tgz#258607e60effa309f067608931c3df6fed41fd2f" - integrity sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ== +"@typescript-eslint/types@6.11.0": + version "6.11.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.11.0.tgz#8ad3aa000cbf4bdc4dcceed96e9b577f15e0bf53" + integrity sha512-ZbEzuD4DwEJxwPqhv3QULlRj8KYTAnNsXxmfuUXFCxZmO6CF2gM/y+ugBSAQhrqaJL3M+oe4owdWunaHM6beqA== -"@typescript-eslint/typescript-estree@5.62.0": - version "5.62.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz#7d17794b77fabcac615d6a48fb143330d962eb9b" - integrity sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA== +"@typescript-eslint/typescript-estree@6.11.0": + version "6.11.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.11.0.tgz#7b52c12a623bf7f8ec7f8a79901b9f98eb5c7990" + integrity sha512-Aezzv1o2tWJwvZhedzvD5Yv7+Lpu1by/U1LZ5gLc4tCx8jUmuSCMioPFRjliN/6SJIvY6HpTtJIWubKuYYYesQ== dependencies: - "@typescript-eslint/types" "5.62.0" - "@typescript-eslint/visitor-keys" "5.62.0" + "@typescript-eslint/types" "6.11.0" + "@typescript-eslint/visitor-keys" "6.11.0" debug "^4.3.4" globby "^11.1.0" is-glob "^4.0.3" - semver "^7.3.7" - tsutils "^3.21.0" - -"@typescript-eslint/utils@5.62.0": - version "5.62.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.62.0.tgz#141e809c71636e4a75daa39faed2fb5f4b10df86" - integrity sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ== - dependencies: - "@eslint-community/eslint-utils" "^4.2.0" - "@types/json-schema" "^7.0.9" - "@types/semver" "^7.3.12" - "@typescript-eslint/scope-manager" "5.62.0" - "@typescript-eslint/types" "5.62.0" - "@typescript-eslint/typescript-estree" "5.62.0" - eslint-scope "^5.1.1" - semver "^7.3.7" + semver "^7.5.4" + ts-api-utils "^1.0.1" + +"@typescript-eslint/utils@6.11.0": + version "6.11.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.11.0.tgz#11374f59ef4cea50857b1303477c08aafa2ca604" + integrity sha512-p23ibf68fxoZy605dc0dQAEoUsoiNoP3MD9WQGiHLDuTSOuqoTsa4oAy+h3KDkTcxbbfOtUjb9h3Ta0gT4ug2g== + dependencies: + "@eslint-community/eslint-utils" "^4.4.0" + "@types/json-schema" "^7.0.12" + "@types/semver" "^7.5.0" + "@typescript-eslint/scope-manager" "6.11.0" + "@typescript-eslint/types" "6.11.0" + "@typescript-eslint/typescript-estree" "6.11.0" + semver "^7.5.4" -"@typescript-eslint/visitor-keys@5.62.0": - version "5.62.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz#2174011917ce582875954ffe2f6912d5931e353e" - integrity sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw== +"@typescript-eslint/visitor-keys@6.11.0": + version "6.11.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.11.0.tgz#d991538788923f92ec40d44389e7075b359f3458" + integrity sha512-+SUN/W7WjBr05uRxPggJPSzyB8zUpaYo2hByKasWbqr3PM8AXfZt8UHdNpBS1v9SA62qnSSMF3380SwDqqprgQ== dependencies: - "@typescript-eslint/types" "5.62.0" - eslint-visitor-keys "^3.3.0" + "@typescript-eslint/types" "6.11.0" + eslint-visitor-keys "^3.4.1" "@ungap/structured-clone@^1.2.0": version "1.2.0" @@ -1845,6 +1846,11 @@ console-control-strings@^1.1.0: resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" integrity sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ== +constructs@^10.0.0: + version "10.3.0" + resolved "https://registry.yarnpkg.com/constructs/-/constructs-10.3.0.tgz#4c246fce9cf8e77711ad45944e9fbd41f1501965" + integrity sha512-vbK8i3rIb/xwZxSpTjz3SagHn1qq9BChLEfy5Hf6fB3/2eFbrwt2n9kHwQcS0CPTRBesreeAcsJfMq2229FnbQ== + conventional-changelog-angular@^5.0.12: version "5.0.13" resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-5.0.13.tgz#896885d63b914a70d4934b59d2fe7bde1832b28c" @@ -2472,14 +2478,6 @@ eslint-plugin-import@^2.29.0: semver "^6.3.1" tsconfig-paths "^3.14.2" -eslint-scope@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" - integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== - dependencies: - esrecurse "^4.3.0" - estraverse "^4.1.1" - eslint-scope@^7.2.2: version "7.2.2" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" @@ -2565,11 +2563,6 @@ esrecurse@^4.3.0: dependencies: estraverse "^5.2.0" -estraverse@^4.1.1: - version "4.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" - integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== - estraverse@^5.1.0, estraverse@^5.2.0: version "5.3.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" @@ -3247,7 +3240,7 @@ ignore-walk@^6.0.0: dependencies: minimatch "^9.0.0" -ignore@^5.2.0: +ignore@^5.2.0, ignore@^5.2.4: version "5.2.4" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== @@ -4687,11 +4680,6 @@ ms@^2.0.0, ms@^2.1.1: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== -natural-compare-lite@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz#17b09581988979fddafe0201e931ba933c96cbb4" - integrity sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g== - natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" @@ -5225,15 +5213,16 @@ progress@^2.0.3: resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== -projen@^0.72.28: - version "0.72.28" - resolved "https://registry.yarnpkg.com/projen/-/projen-0.72.28.tgz#3b6cae61f5ca07217278f470b3eacaec49686321" - integrity sha512-olnefNj+UZvRzm+vfAHbMmRz/2/b0OQdqY5YoZ+3Tx7u1kR3ubLr+loouWhSY5VB6PUBGWz5MvBUHg5uF0phjQ== +projen@^0.76.27: + version "0.76.27" + resolved "https://registry.yarnpkg.com/projen/-/projen-0.76.27.tgz#b3b4dace99ef22170b1f2e8a15a9b8a2e655a0e2" + integrity sha512-f/9MibFkrEk1KYIXcvYI9gWQgb0MU6Vhk/vB3L4CxUla8N5BvfihgWHRAlwTTRBiuwOE1/nQ7u/bskurugxCTw== dependencies: "@iarna/toml" "^2.2.5" case "^1.6.3" chalk "^4.1.2" comment-json "4.2.2" + constructs "^10.0.0" conventional-changelog-config-spec "^2.1.0" fast-json-patch "^3.1.1" glob "^8" @@ -5511,16 +5500,7 @@ resolve.exports@^1.1.0: resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-1.1.1.tgz#05cfd5b3edf641571fd46fa608b610dda9ead999" integrity sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ== -resolve@^1.1.6: - version "1.22.4" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.4.tgz#1dc40df46554cdaf8948a486a10f6ba1e2026c34" - integrity sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg== - dependencies: - is-core-module "^2.13.0" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - -resolve@^1.10.0, resolve@^1.20.0, resolve@^1.22.0, resolve@^1.22.4: +resolve@^1.1.6, resolve@^1.10.0, resolve@^1.20.0, resolve@^1.22.0, resolve@^1.22.4: version "1.22.8" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== @@ -6180,6 +6160,11 @@ trim-newlines@^3.0.0: resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.1.tgz#260a5d962d8b752425b32f3a7db0dcacd176c144" integrity sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw== +ts-api-utils@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.0.3.tgz#f12c1c781d04427313dbac808f453f050e54a331" + integrity sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg== + ts-jest@^27: version "27.1.5" resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-27.1.5.tgz#0ddf1b163fbaae3d5b7504a1e65c914a95cff297" @@ -6223,18 +6208,6 @@ tsconfig-paths@^3.14.1, tsconfig-paths@^3.14.2: minimist "^1.2.6" strip-bom "^3.0.0" -tslib@^1.8.1: - version "1.14.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" - integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== - -tsutils@^3.21.0: - version "3.21.0" - resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" - integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== - dependencies: - tslib "^1.8.1" - tuf-js@^1.1.7: version "1.1.7" resolved "https://registry.yarnpkg.com/tuf-js/-/tuf-js-1.1.7.tgz#21b7ae92a9373015be77dfe0cb282a80ec3bbe43" @@ -6720,9 +6693,9 @@ yallist@^4.0.0: integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== yaml@^2.2.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.3.2.tgz#f522db4313c671a0ca963a75670f1c12ea909144" - integrity sha512-N/lyzTPaJasoDmfV7YTrYCI0G/3ivm/9wdG0aHuheKowWQwGTsK0Eoiw6utmzAnI6pkJa0DUVygvp3spqqEKXg== + version "2.3.4" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.3.4.tgz#53fc1d514be80aabf386dc6001eb29bf3b7523b2" + integrity sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA== yargs-parser@20.x, yargs-parser@^20.2.2, yargs-parser@^20.2.3: version "20.2.9"