@nikovirtala/projen-constructs 0.3.1 → 0.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/.jsii +343 -279
  2. package/README.md +144 -11
  3. package/docs/api/assets/search.js +1 -1
  4. package/docs/api/classes/AwsCdkConstructLibraryProject.html +1 -1
  5. package/docs/api/classes/AwsCdkTypeScriptAppProject.html +1 -1
  6. package/docs/api/classes/JsiiProject.html +1 -1
  7. package/docs/api/classes/TypeScriptProject.html +1 -1
  8. package/docs/api/index.html +152 -12
  9. package/docs/api/interfaces/AwsCdkConstructLibraryProjectOptions.html +274 -247
  10. package/docs/api/interfaces/AwsCdkTypeScriptAppProjectOptions.html +263 -236
  11. package/docs/api/interfaces/JsiiProjectOptions.html +262 -235
  12. package/docs/api/interfaces/TypeScriptProjectOptions.html +241 -214
  13. package/lib/components/bundle-lambda-function-code.js +3 -3
  14. package/lib/components/colima.js +1 -1
  15. package/lib/components/homebrew.js +1 -1
  16. package/lib/components/lambda-function-construct-generator.js +1 -1
  17. package/lib/components/localstack.js +1 -1
  18. package/lib/components/mise.js +1 -1
  19. package/lib/components/typedoc.js +1 -1
  20. package/lib/components/vitest.js +1 -1
  21. package/lib/project-generator.d.ts +17 -1
  22. package/lib/project-generator.js +47 -4
  23. package/lib/projects/awscdk-construct-library-options.generated.d.ts +21 -2
  24. package/lib/projects/awscdk-construct-library-options.generated.js +1 -1
  25. package/lib/projects/awscdk-construct-library.generated.js +1 -1
  26. package/lib/projects/awscdk-typescript-app-options.generated.d.ts +21 -2
  27. package/lib/projects/awscdk-typescript-app-options.generated.js +1 -1
  28. package/lib/projects/awscdk-typescript-app.generated.js +1 -1
  29. package/lib/projects/jsii-options.generated.d.ts +21 -2
  30. package/lib/projects/jsii-options.generated.js +1 -1
  31. package/lib/projects/jsii.generated.js +1 -1
  32. package/lib/projects/typescript-options.generated.d.ts +21 -2
  33. package/lib/projects/typescript-options.generated.js +1 -1
  34. package/lib/projects/typescript.generated.js +1 -1
  35. package/package.json +5 -5
package/.jsii CHANGED
@@ -13,7 +13,7 @@
13
13
  "dependencies": {
14
14
  "@mrgrain/cdk-esbuild": "^5.8.1",
15
15
  "constructs": "^10.8.1",
16
- "projen": "^0.101.26"
16
+ "projen": "^0.101.27"
17
17
  },
18
18
  "dependencyClosure": {
19
19
  "@aws-cdk/asset-awscli-v1": {
@@ -4193,7 +4193,7 @@
4193
4193
  },
4194
4194
  "name": "@nikovirtala/projen-constructs",
4195
4195
  "readme": {
4196
- "markdown": "# @nikovirtala/projen-constructs\n\nProjen project types with standard configuration for consistent project setup across all repositories.\n\n## Installation\n\n```bash\npnpm add -D @nikovirtala/projen-constructs projen constructs\n```\n\n## Features\n\n- **Standard Configuration**: Opinionated defaults for author, release branch, package manager, Node.js, TypeScript, and tooling\n- **Automatic Project Type Discovery**: Generates `ProjectType` enum from Projen's JSII manifest (18 project types)\n- **Component System**: Reusable components (Vitest, Mise, TypeDoc, LocalStack, etc.)\n- **Code Generation**: `ProjectGenerator` creates project classes with standard configuration\n- **ES Modules**: TypeScript and CDK App projects use ES modules (JSII uses CommonJS)\n- **Code Quality**: Biome for formatting and linting\n- **Testing**: Vitest with coverage\n- **Auto-merge**: Enabled with auto-approve\n- **VSCode**: Recommended extensions and settings\n- **mise**: Node version management\n\n## Standard Configuration\n\n- **Author**: Niko Virtala (niko.virtala@hey.com)\n- **Default Release Branch**: main\n- **Package Manager**: pnpm 10\n- **Node Version**: 22.21.1\n- **TypeScript**: 5.9.3\n- **CDK Version**: 2.223.0 (for CDK projects)\n- **JSII Version**: ~5.9.3 (for JSII projects)\n\n## Customization\n\nOverride any option by passing it to the constructor:\n\n```typescript\nconst project = new JsiiProject({\n name: \"my-project\",\n repositoryUrl: \"https://github.com/nikovirtala/my-project.git\",\n minNodeVersion: \"20.0.0\",\n author: \"Custom Author\",\n authorAddress: \"custom@example.com\",\n mise: false,\n vitest: false,\n tsconfig: {\n compilerOptions: {\n noUnusedLocals: false,\n },\n },\n biomeOptions: {\n biomeConfig: {\n formatter: {\n lineWidth: 100,\n },\n },\n },\n});\n```\n\n## Usage\n\n### Projects\n\n#### AWS CDK Construct Library Project\n\n```typescript\nimport { AwsCdkConstructLibraryProject } from \"@nikovirtala/projen-constructs\";\n\nconst project = new AwsCdkConstructLibraryProject({\n name: \"my-cdk-construct\",\n repositoryUrl: \"https://github.com/nikovirtala/my-cdk-construct.git\",\n});\n\nproject.synth();\n```\n\n#### AWS CDK TypeScript App Project\n\n```typescript\nimport { AwsCdkTypeScriptAppProject } from \"@nikovirtala/projen-constructs\";\n\nconst project = new AwsCdkTypeScriptAppProject({\n name: \"my-cdk-app\",\n repositoryUrl: \"https://github.com/nikovirtala/my-cdk-app.git\",\n});\n\nproject.synth();\n```\n\n#### JSII Project\n\n```typescript\nimport { JsiiProject } from \"@nikovirtala/projen-constructs\";\n\nconst project = new JsiiProject({\n name: \"my-jsii-project\",\n repositoryUrl: \"https://github.com/nikovirtala/my-jsii-project.git\",\n});\n\nproject.synth();\n```\n\n#### TypeScript Project\n\n```typescript\nimport { TypeScriptProject } from \"@nikovirtala/projen-constructs\";\n\nconst project = new TypeScriptProject({\n name: \"my-typescript-project\",\n repositoryUrl: \"https://github.com/nikovirtala/my-typescript-project.git\",\n});\n\nproject.synth();\n```\n\n### Components\n\nThe package includes reusable components for common development tasks:\n\n#### Vitest\n\n[Vitest](https://vitest.dev) testing framework component.\n\n```typescript\nimport { Vitest } from \"@nikovirtala/projen-constructs\";\n\nnew Vitest(project, {\n vitestVersion: \"^4\",\n config: {\n coverageProvider: CoverageProvider.V8,\n coverageReporters: [CoverageReporter.TEXT, CoverageReporter.LCOV],\n },\n});\n```\n\n#### TypeDoc\n\n[TypeDoc](https://typedoc.org) documentation generation component.\n\n```typescript\nimport { TypeDoc, EntryPointStrategy } from \"@nikovirtala/projen-constructs\";\n\nnew TypeDoc(project, {\n version: \"^0.28\",\n typeDocConfig: {\n entryPointStrategy: EntryPointStrategy.EXPAND,\n out: \"docs/api\",\n exclude: [\"**/*.test.ts\"],\n },\n});\n```\n\n#### Mise\n\n[Mise](https://mise.jdx.dev) dev tools/runtimes management component.\n\n```typescript\nimport { Mise } from \"@nikovirtala/projen-constructs\";\n\nnew Mise(project, {\n nodeVersion: \"22.21.1\",\n});\n```\n\n#### Homebrew\n\n[Homebrew](https://brew.sh) package management component.\n\n```typescript\nimport { Homebrew } from \"@nikovirtala/projen-constructs\";\n\nconst homebrew = new Homebrew(project, {\n packages: [\"jq\", \"yq\"],\n});\n\nhomebrew.addPackage(\"gh\");\n```\n\n#### Colima\n\n[Colima](https://github.com/abiosoft/colima) container runtime component. Alternative for Docker.\n\n```typescript\nimport { Colima } from \"@nikovirtala/projen-constructs\";\n\nnew Colima(project);\n```\n\n#### LocalStack\n\n[LocalStack](https://www.localstack.cloud) AWS emulation component.\n\n```typescript\nimport { LocalStack } from \"@nikovirtala/projen-constructs\";\n\nnew LocalStack(project, {\n services: [\"s3\", \"lambda\", \"dynamodb\"],\n port: 4566,\n debug: true,\n});\n```\n\n#### LambdaFunctionConstructGenerator\n\nGenerates AWS CDK Lambda Function constructs and bundles their code.\n\n```typescript\nimport { LambdaFunctionConstructGenerator } from \"@nikovirtala/projen-constructs\";\n\nnew LambdaFunctionConstructGenerator(project, {\n sourceDir: \"src/handlers\",\n outputDir: \"src/constructs/lambda\",\n filePattern: \"*.lambda.ts\",\n esbuildOptions: {\n minify: true,\n sourcemap: true,\n },\n});\n```\n\n#### Bundler\n\nLow-level bundling utilities for Lambda functions.\n\n```typescript\nimport {\n Bundler,\n LambdaFunctionCodeBundle,\n} from \"@nikovirtala/projen-constructs\";\n\nconst bundler = new Bundler(project, {\n assetsDir: \"assets\",\n esbuildVersion: \"^0.25\",\n});\n\nnew LambdaFunctionCodeBundle(project, {\n entrypoint: \"src/my-function.lambda.ts\",\n extension: \".lambda.ts\",\n});\n```\n\n#### ProjectGenerator\n\nGenerates TypeScript project classes with standard configuration.\n\n```typescript\nimport { ProjectGenerator, ProjectType } from \"@nikovirtala/projen-constructs\";\n\nnew ProjectGenerator(project, {\n name: \"TypeScriptProject\",\n projectType: ProjectType.TYPESCRIPT,\n filePath: \"./src/projects/typescript.generated.ts\",\n components: [\n { componentClass: Mise },\n { componentClass: Vitest }, // Auto-detects VitestOptions from JSII manifest\n ],\n});\n```\n\nFeatures:\n- Automatically generates the `ProjectType` enum from Projen's JSII manifest\n- Auto-detects component options types from JSII manifests\n- Validates paths to prevent directory traversal attacks\n- Structured error handling with custom error classes\n"
4196
+ "markdown": "# @nikovirtala/projen-constructs\n\nProjen project types with standard configuration for consistent project setup across all repositories.\n\n## Installation\n\n```bash\npnpm add -D @nikovirtala/projen-constructs projen constructs\n```\n\nRequires pnpm 11 and `projen` >= 0.101.27. `@mrgrain/cdk-esbuild` and `constructs` are peer\ndependencies as well.\n\nTo create a project from scratch:\n\n```bash\npnpm dlx projen new --from @nikovirtala/projen-constructs aws_cdk_construct_library\n```\n\n## Features\n\n- **Standard Configuration**: Opinionated defaults for author, release branch, package manager, Node.js, TypeScript, and tooling\n- **Automatic Project Type Discovery**: Generates the `ProjectType` enum from Projen's JSII manifest (19 project types)\n- **Component System**: Reusable components (Vitest, TypeDoc, Mise, Homebrew, Colima, LocalStack, Lambda bundling)\n- **Code Generation**: `ProjectGenerator` creates project classes with standard configuration\n- **ES Modules**: TypeScript and CDK App projects use ES modules (JSII uses CommonJS)\n- **Code Quality**: Biome for formatting and linting\n- **Testing**: Vitest with coverage\n- **Auto-merge**: Enabled with auto-approve\n- **VSCode**: Recommended extensions and settings\n- **mise**: Node version management\n\n## Standard Configuration\n\n- **Author**: Niko Virtala (niko.virtala@hey.com)\n- **Default Release Branch**: main\n- **Package Manager**: pnpm 11.20.0\n- **Node Version**: 24.19.0\n- **TypeScript**: 6.0.3\n- **CDK Version**: 2.263.0 (for CDK projects)\n- **JSII Version**: ~6.0.3 (for JSII projects)\n\nThe AWS CDK, Node.js and TypeScript versions live in `src/versions.json` and are refreshed by the\n`update-versions` task, which the dependency upgrade workflow runs.\n\n### pnpm\n\npnpm reads its settings from `pnpm-workspace.yaml`, not `.npmrc`, since pnpm 11. Generated projects\nget:\n\n| Setting | Value | Reason |\n| ---------------------- | ----------------- | ------------------------------------------------------------------------------------------------------------ |\n| `nodeLinker` | `hoisted` | jsii tooling resolves dependencies from a flat `node_modules` |\n| `allowBuilds` | `esbuild: true` | esbuild links its platform binary in a postinstall script, and pnpm 11 fails an install with ignored builds |\n| `verifyDepsBeforeRun` | `false` | projen resolves the task `PATH` with `$(pnpm -c exec ...)`, which otherwise re-enters `pnpm install` and deadlocks |\n| `minimumReleaseAge` | `0` | the pnpm 11 default of 1440 minutes makes pnpm write `minimumReleaseAgeExclude` entries into this generated file |\n\n### TypeScript configuration\n\nProjen renders three configs, and none of them should be edited directly:\n\n- `tsconfig.json` compiles `src` to `lib`. For JSII projects, jsii validates it against its `strict`\n rule set, so it only carries compiler options jsii accepts.\n- `test/tsconfig.json` extends it and is type-check only. This is the config Vitest type checking and\n the editor use, and the one `tsconfigDev` points at.\n- `projenrc/tsconfig.json` covers `.projenrc.ts`.\n\n## Customization\n\nOverride any option by passing it to the constructor:\n\n```typescript\nconst project = new JsiiProject({\n name: \"my-project\",\n repositoryUrl: \"https://github.com/nikovirtala/my-project.git\",\n minNodeVersion: \"24.0.0\",\n author: \"Custom Author\",\n authorAddress: \"custom@example.com\",\n mise: false,\n vitest: false,\n tsconfig: {\n compilerOptions: {\n noUnusedLocals: false,\n },\n },\n biomeOptions: {\n biomeConfig: {\n formatter: {\n lineWidth: 100,\n },\n },\n },\n});\n```\n\nEvery component is exposed as an enable flag (`mise`, `vitest`, ...) plus an options property\n(`miseOptions`, `vitestOptions`, ...).\n\n## Usage\n\n### Projects\n\n#### AWS CDK Construct Library Project\n\n```typescript\nimport { AwsCdkConstructLibraryProject } from \"@nikovirtala/projen-constructs\";\n\nconst project = new AwsCdkConstructLibraryProject({\n name: \"my-cdk-construct\",\n repositoryUrl: \"https://github.com/nikovirtala/my-cdk-construct.git\",\n});\n\nproject.synth();\n```\n\n#### AWS CDK TypeScript App Project\n\n```typescript\nimport { AwsCdkTypeScriptAppProject } from \"@nikovirtala/projen-constructs\";\n\nconst project = new AwsCdkTypeScriptAppProject({\n name: \"my-cdk-app\",\n repositoryUrl: \"https://github.com/nikovirtala/my-cdk-app.git\",\n});\n\nproject.synth();\n```\n\n#### JSII Project\n\n```typescript\nimport { JsiiProject } from \"@nikovirtala/projen-constructs\";\n\nconst project = new JsiiProject({\n name: \"my-jsii-project\",\n repositoryUrl: \"https://github.com/nikovirtala/my-jsii-project.git\",\n});\n\nproject.synth();\n```\n\n#### TypeScript Project\n\n```typescript\nimport { TypeScriptProject } from \"@nikovirtala/projen-constructs\";\n\nconst project = new TypeScriptProject({\n name: \"my-typescript-project\",\n repositoryUrl: \"https://github.com/nikovirtala/my-typescript-project.git\",\n});\n\nproject.synth();\n```\n\n### Components\n\nThe package includes reusable components for common development tasks:\n\n#### Vitest\n\n[Vitest](https://vitest.dev) testing framework component.\n\n```typescript\nimport { Vitest } from \"@nikovirtala/projen-constructs\";\n\nnew Vitest(project, {\n vitestVersion: \"^4\",\n config: {\n coverageProvider: CoverageProvider.V8,\n coverageReporters: [CoverageReporter.TEXT, CoverageReporter.LCOV],\n },\n});\n```\n\nType checking runs against the project's development tsconfig (`test/tsconfig.json`) unless\n`config.typecheckTsconfig` says otherwise.\n\n#### TypeDoc\n\n[TypeDoc](https://typedoc.org) documentation generation component.\n\n```typescript\nimport { TypeDoc, EntryPointStrategy } from \"@nikovirtala/projen-constructs\";\n\nnew TypeDoc(project, {\n version: \"^0.28\",\n typeDocConfig: {\n entryPointStrategy: EntryPointStrategy.EXPAND,\n out: \"docs/api\",\n exclude: [\"**/*.test.ts\"],\n },\n});\n```\n\n#### Mise\n\n[Mise](https://mise.jdx.dev) dev tools/runtimes management component.\n\n```typescript\nimport { Mise } from \"@nikovirtala/projen-constructs\";\n\nnew Mise(project, {\n nodeVersion: \"24.19.0\",\n});\n```\n\n#### Homebrew\n\n[Homebrew](https://brew.sh) package management component. Writes a `Brewfile` and adds an\n`install:homebrew` task that bootstraps Homebrew and runs `brew bundle`.\n\n```typescript\nimport { Homebrew } from \"@nikovirtala/projen-constructs\";\n\nconst homebrew = new Homebrew(project, {\n packages: [\"jq\", \"yq\"],\n});\n\nhomebrew.addPackage(\"gh\");\n```\n\n#### Colima\n\n[Colima](https://github.com/abiosoft/colima) container runtime component. Alternative for Docker.\n\n```typescript\nimport { Colima } from \"@nikovirtala/projen-constructs\";\n\nnew Colima(project);\n```\n\n#### LocalStack\n\n[LocalStack](https://www.localstack.cloud) AWS emulation component.\n\n```typescript\nimport { LocalStack } from \"@nikovirtala/projen-constructs\";\n\nnew LocalStack(project, {\n services: [\"s3\", \"lambda\", \"dynamodb\"],\n port: 4566,\n debug: true,\n});\n```\n\n#### LambdaFunctionConstructGenerator\n\nGenerates AWS CDK Lambda Function constructs and bundles their code.\n\n```typescript\nimport { LambdaFunctionConstructGenerator } from \"@nikovirtala/projen-constructs\";\n\nnew LambdaFunctionConstructGenerator(project, {\n sourceDir: \"src/handlers\",\n outputDir: \"src/constructs/lambda\",\n filePattern: \"*.lambda.ts\",\n esbuildOptions: {\n minify: true,\n sourcemap: true,\n },\n});\n```\n\n#### Bundler\n\nLow-level bundling utilities for Lambda functions.\n\n```typescript\nimport {\n Bundler,\n LambdaFunctionCodeBundle,\n} from \"@nikovirtala/projen-constructs\";\n\nconst bundler = new Bundler(project, {\n assetsDir: \"assets\",\n esbuildVersion: \"^0.25\",\n});\n\nnew LambdaFunctionCodeBundle(project, {\n entrypoint: \"src/my-function.lambda.ts\",\n extension: \".lambda.ts\",\n});\n```\n\n#### ProjectGenerator\n\nGenerates TypeScript project classes with standard configuration.\n\n```typescript\nimport { ProjectGenerator, ProjectType } from \"@nikovirtala/projen-constructs\";\n\nnew ProjectGenerator(project, {\n name: \"TypeScriptProject\",\n projectType: ProjectType.TYPE_SCRIPT_PROJECT,\n filePath: \"./src/projects/typescript.generated.ts\",\n components: [\n { componentClass: Mise },\n { componentClass: Vitest }, // Auto-detects VitestOptions from JSII manifest\n ],\n});\n```\n\nFeatures:\n\n- Automatically generates the `ProjectType` enum from Projen's JSII manifest\n- Auto-detects component options types from JSII manifests\n- Strips Projen's `@pjnew` annotation from `packageManager`, which `projen new` would otherwise\n render into a generated `.projenrc.ts` as the package manager that ran the command\n- Validates paths to prevent directory traversal attacks\n- Structured error handling with custom error classes\n\n## Development\n\nThis project is managed by Projen and generates itself: `.projenrc.ts` defines the project using the\n`JsiiProject` type from `src/`. Configuration changes belong in `.projenrc.ts`, never in the\ngenerated files.\n\n```bash\npnpm projen # synthesize project files\npnpm build # synthesize, compile, test and package\npnpm test # biome, vitest, typedoc\npnpm test:watch # vitest in watch mode\npnpm test:update # update snapshots\npnpm biome # format and lint\npnpm docgen # regenerate API.md from the .jsii manifest\npnpm update-versions # refresh src/versions.json\npnpm upgrade # upgrade dependencies\n```\n\n### Build process\n\n```mermaid\nflowchart TD\n projenrc[\".projenrc.ts\"]\n\n subgraph synthesize[\"default (synthesize)\"]\n direction TB\n synth[\"tsx .projenrc.ts\"]\n generator[\"ProjectGenerator\"]\n generated[\"src/project-type.ts<br/>src/projects/*.generated.ts<br/>src/projects/*-options.generated.ts\"]\n projenfiles[\"package.json, tsconfig.json,<br/>pnpm-workspace.yaml, workflows, ...\"]\n brew[\"install:homebrew<br/>brew bundle\"]\n definecfg[\"bundle-vitest-define-config<br/>esbuild → lib/vitest-define-config.js\"]\n\n synth --> generator --> generated\n synth --> projenfiles\n synth --> brew\n synth --> definecfg\n end\n\n subgraph compile[\"compile\"]\n direction TB\n jsii[\"jsii<br/>validates tsconfig.json against the strict rule set\"]\n lib[\"lib/**\"]\n manifest[\".jsii manifest\"]\n\n jsii --> lib\n jsii --> manifest\n end\n\n subgraph test[\"test\"]\n direction TB\n biome[\"biome check --write\"]\n vitest[\"vitest run<br/>+ type checking\"]\n typedoc[\"typedoc → docs/api\"]\n\n biome --> vitest --> typedoc\n end\n\n subgraph package[\"package\"]\n direction TB\n pacmak[\"jsii-pacmak<br/>--pack-command 'pnpm pack'\"]\n dist[\"dist/js/*.tgz\"]\n\n pacmak --> dist\n end\n\n projenrc --> synthesize\n synthesize --> compile\n compile --> test\n test --> package\n\n manifest -. \"component options FQNs<br/>read on the next synthesis\" .-> generator\n docgen[\"docgen<br/>jsii-docgen → API.md\"]\n manifest --> docgen\n\n classDef artifact fill:#eef,stroke:#88a\n class generated,projenfiles,lib,manifest,dist artifact\n```\n\nThe dashed edge is the part worth knowing about: `ProjectGenerator` reads the committed `.jsii`\nmanifest to resolve component options types, so the manifest produced by `compile` feeds the *next*\nsynthesis. This is why `.jsii` is committed rather than ignored. A component options type that is\nmissing from the manifest is reported as a warning and its options property is left out of the\ngenerated interface, which is expected only while a new component is being introduced: compile once,\nthen synthesize again.\n\n`package` runs `package:js` on CI and `package-all` locally; both end up in `jsii-pacmak`.\n`docgen` is not part of `build` and has to be run explicitly after the manifest changes.\n"
4197
4197
  },
4198
4198
  "repository": {
4199
4199
  "type": "git",
@@ -4322,7 +4322,7 @@
4322
4322
  "immutable": true,
4323
4323
  "locationInModule": {
4324
4324
  "filename": "src/projects/awscdk-construct-library-options.generated.ts",
4325
- "line": 1226
4325
+ "line": 1245
4326
4326
  },
4327
4327
  "name": "name",
4328
4328
  "type": {
@@ -4356,7 +4356,7 @@
4356
4356
  "immutable": true,
4357
4357
  "locationInModule": {
4358
4358
  "filename": "src/projects/awscdk-construct-library-options.generated.ts",
4359
- "line": 1058
4359
+ "line": 1077
4360
4360
  },
4361
4361
  "name": "addPackageManagerToDevEngines",
4362
4362
  "optional": true,
@@ -4375,7 +4375,7 @@
4375
4375
  "immutable": true,
4376
4376
  "locationInModule": {
4377
4377
  "filename": "src/projects/awscdk-construct-library-options.generated.ts",
4378
- "line": 1052
4378
+ "line": 1071
4379
4379
  },
4380
4380
  "name": "allowLibraryDependencies",
4381
4381
  "optional": true,
@@ -4394,7 +4394,7 @@
4394
4394
  "immutable": true,
4395
4395
  "locationInModule": {
4396
4396
  "filename": "src/projects/awscdk-construct-library-options.generated.ts",
4397
- "line": 1044
4397
+ "line": 1063
4398
4398
  },
4399
4399
  "name": "allowScripts",
4400
4400
  "optional": true,
@@ -4471,7 +4471,7 @@
4471
4471
  "immutable": true,
4472
4472
  "locationInModule": {
4473
4473
  "filename": "src/projects/awscdk-construct-library-options.generated.ts",
4474
- "line": 1014
4474
+ "line": 1033
4475
4475
  },
4476
4476
  "name": "authorEmail",
4477
4477
  "optional": true,
@@ -4488,7 +4488,7 @@
4488
4488
  "immutable": true,
4489
4489
  "locationInModule": {
4490
4490
  "filename": "src/projects/awscdk-construct-library-options.generated.ts",
4491
- "line": 1009
4491
+ "line": 1028
4492
4492
  },
4493
4493
  "name": "authorName",
4494
4494
  "optional": true,
@@ -4505,7 +4505,7 @@
4505
4505
  "immutable": true,
4506
4506
  "locationInModule": {
4507
4507
  "filename": "src/projects/awscdk-construct-library-options.generated.ts",
4508
- "line": 1004
4508
+ "line": 1023
4509
4509
  },
4510
4510
  "name": "authorOrganization",
4511
4511
  "optional": true,
@@ -4522,7 +4522,7 @@
4522
4522
  "immutable": true,
4523
4523
  "locationInModule": {
4524
4524
  "filename": "src/projects/awscdk-construct-library-options.generated.ts",
4525
- "line": 999
4525
+ "line": 1018
4526
4526
  },
4527
4527
  "name": "authorUrl",
4528
4528
  "optional": true,
@@ -4540,7 +4540,7 @@
4540
4540
  "immutable": true,
4541
4541
  "locationInModule": {
4542
4542
  "filename": "src/projects/awscdk-construct-library-options.generated.ts",
4543
- "line": 1144
4543
+ "line": 1163
4544
4544
  },
4545
4545
  "name": "autoApproveOptions",
4546
4546
  "optional": true,
@@ -4577,7 +4577,7 @@
4577
4577
  "immutable": true,
4578
4578
  "locationInModule": {
4579
4579
  "filename": "src/projects/awscdk-construct-library-options.generated.ts",
4580
- "line": 994
4580
+ "line": 1013
4581
4581
  },
4582
4582
  "name": "autoDetectBin",
4583
4583
  "optional": true,
@@ -4596,7 +4596,7 @@
4596
4596
  "immutable": true,
4597
4597
  "locationInModule": {
4598
4598
  "filename": "src/projects/awscdk-construct-library-options.generated.ts",
4599
- "line": 1138
4599
+ "line": 1157
4600
4600
  },
4601
4601
  "name": "autoMerge",
4602
4602
  "optional": true,
@@ -4615,7 +4615,7 @@
4615
4615
  "immutable": true,
4616
4616
  "locationInModule": {
4617
4617
  "filename": "src/projects/awscdk-construct-library-options.generated.ts",
4618
- "line": 1130
4618
+ "line": 1149
4619
4619
  },
4620
4620
  "name": "autoMergeOptions",
4621
4621
  "optional": true,
@@ -4633,7 +4633,7 @@
4633
4633
  "immutable": true,
4634
4634
  "locationInModule": {
4635
4635
  "filename": "src/projects/awscdk-construct-library-options.generated.ts",
4636
- "line": 988
4636
+ "line": 1007
4637
4637
  },
4638
4638
  "name": "bin",
4639
4639
  "optional": true,
@@ -4691,7 +4691,7 @@
4691
4691
  "immutable": true,
4692
4692
  "locationInModule": {
4693
4693
  "filename": "src/projects/awscdk-construct-library-options.generated.ts",
4694
- "line": 980
4694
+ "line": 999
4695
4695
  },
4696
4696
  "name": "bugsEmail",
4697
4697
  "optional": true,
@@ -4708,7 +4708,7 @@
4708
4708
  "immutable": true,
4709
4709
  "locationInModule": {
4710
4710
  "filename": "src/projects/awscdk-construct-library-options.generated.ts",
4711
- "line": 975
4711
+ "line": 994
4712
4712
  },
4713
4713
  "name": "bugsUrl",
4714
4714
  "optional": true,
@@ -4780,7 +4780,7 @@
4780
4780
  "immutable": true,
4781
4781
  "locationInModule": {
4782
4782
  "filename": "src/projects/awscdk-construct-library-options.generated.ts",
4783
- "line": 970
4783
+ "line": 989
4784
4784
  },
4785
4785
  "name": "bundledDeps",
4786
4786
  "optional": true,
@@ -4820,7 +4820,7 @@
4820
4820
  "immutable": true,
4821
4821
  "locationInModule": {
4822
4822
  "filename": "src/projects/awscdk-construct-library-options.generated.ts",
4823
- "line": 955
4823
+ "line": 974
4824
4824
  },
4825
4825
  "name": "bunVersion",
4826
4826
  "optional": true,
@@ -4913,7 +4913,7 @@
4913
4913
  "immutable": true,
4914
4914
  "locationInModule": {
4915
4915
  "filename": "src/projects/awscdk-construct-library-options.generated.ts",
4916
- "line": 1122
4916
+ "line": 1141
4917
4917
  },
4918
4918
  "name": "clobber",
4919
4919
  "optional": true,
@@ -4932,7 +4932,7 @@
4932
4932
  "immutable": true,
4933
4933
  "locationInModule": {
4934
4934
  "filename": "src/projects/awscdk-construct-library-options.generated.ts",
4935
- "line": 949
4935
+ "line": 968
4936
4936
  },
4937
4937
  "name": "codeArtifactOptions",
4938
4938
  "optional": true,
@@ -4986,7 +4986,7 @@
4986
4986
  "immutable": true,
4987
4987
  "locationInModule": {
4988
4988
  "filename": "src/projects/awscdk-construct-library-options.generated.ts",
4989
- "line": 1219
4989
+ "line": 1238
4990
4990
  },
4991
4991
  "name": "commitGenerated",
4992
4992
  "optional": true,
@@ -5105,6 +5105,25 @@
5105
5105
  "primitive": "string"
5106
5106
  }
5107
5107
  },
5108
+ {
5109
+ "abstract": true,
5110
+ "docs": {
5111
+ "default": "- false, unless `yarnBerryOptions.dedupePackages` is set",
5112
+ "remarks": "Deduplication prevents multiple versions of the same package from being\ninstalled, if a single version can satisfy all requested version ranges.\nThis prevents version proliferation and reduces the size of the dependency\ntree.\n\nThe behavior depends on the package manager:\n- npm: runs `npm dedupe` after every mutating install.\n- pnpm: runs `pnpm dedupe` after every mutating install.\n- Yarn Berry: runs `yarn dedupe` after every mutating install. If\n `yarnBerryOptions.dedupePackages` is set, only the listed packages are\n deduplicated.\n- Yarn Classic: `yarn install` already deduplicates, so the task only\n prints an informational message.\n- Bun: not supported, enabling this option throws an error.",
5113
+ "stability": "experimental",
5114
+ "summary": "Add a `dedupe` task that deduplicates project dependencies."
5115
+ },
5116
+ "immutable": true,
5117
+ "locationInModule": {
5118
+ "filename": "src/projects/awscdk-construct-library-options.generated.ts",
5119
+ "line": 961
5120
+ },
5121
+ "name": "dedupeDeps",
5122
+ "optional": true,
5123
+ "type": {
5124
+ "primitive": "boolean"
5125
+ }
5126
+ },
5108
5127
  {
5109
5128
  "abstract": true,
5110
5129
  "docs": {
@@ -5137,7 +5156,7 @@
5137
5156
  "immutable": true,
5138
5157
  "locationInModule": {
5139
5158
  "filename": "src/projects/awscdk-construct-library-options.generated.ts",
5140
- "line": 942
5159
+ "line": 941
5141
5160
  },
5142
5161
  "name": "deleteOrphanedLockFiles",
5143
5162
  "optional": true,
@@ -5196,7 +5215,7 @@
5196
5215
  "immutable": true,
5197
5216
  "locationInModule": {
5198
5217
  "filename": "src/projects/awscdk-construct-library-options.generated.ts",
5199
- "line": 932
5218
+ "line": 931
5200
5219
  },
5201
5220
  "name": "deps",
5202
5221
  "optional": true,
@@ -5259,7 +5278,7 @@
5259
5278
  "immutable": true,
5260
5279
  "locationInModule": {
5261
5280
  "filename": "src/projects/awscdk-construct-library-options.generated.ts",
5262
- "line": 919
5281
+ "line": 918
5263
5282
  },
5264
5283
  "name": "description",
5265
5284
  "optional": true,
@@ -5277,7 +5296,7 @@
5277
5296
  "immutable": true,
5278
5297
  "locationInModule": {
5279
5298
  "filename": "src/projects/awscdk-construct-library-options.generated.ts",
5280
- "line": 1116
5299
+ "line": 1135
5281
5300
  },
5282
5301
  "name": "devContainer",
5283
5302
  "optional": true,
@@ -5299,7 +5318,7 @@
5299
5318
  "immutable": true,
5300
5319
  "locationInModule": {
5301
5320
  "filename": "src/projects/awscdk-construct-library-options.generated.ts",
5302
- "line": 911
5321
+ "line": 910
5303
5322
  },
5304
5323
  "name": "devDeps",
5305
5324
  "optional": true,
@@ -5321,7 +5340,7 @@
5321
5340
  "immutable": true,
5322
5341
  "locationInModule": {
5323
5342
  "filename": "src/projects/awscdk-construct-library-options.generated.ts",
5324
- "line": 894
5343
+ "line": 893
5325
5344
  },
5326
5345
  "name": "devEngines",
5327
5346
  "optional": true,
@@ -5447,7 +5466,7 @@
5447
5466
  "immutable": true,
5448
5467
  "locationInModule": {
5449
5468
  "filename": "src/projects/awscdk-construct-library-options.generated.ts",
5450
- "line": 886
5469
+ "line": 885
5451
5470
  },
5452
5471
  "name": "entrypoint",
5453
5472
  "optional": true,
@@ -5525,7 +5544,7 @@
5525
5544
  "immutable": true,
5526
5545
  "locationInModule": {
5527
5546
  "filename": "src/projects/awscdk-construct-library-options.generated.ts",
5528
- "line": 1110
5547
+ "line": 1129
5529
5548
  },
5530
5549
  "name": "github",
5531
5550
  "optional": true,
@@ -5543,7 +5562,7 @@
5543
5562
  "immutable": true,
5544
5563
  "locationInModule": {
5545
5564
  "filename": "src/projects/awscdk-construct-library-options.generated.ts",
5546
- "line": 1103
5565
+ "line": 1122
5547
5566
  },
5548
5567
  "name": "githubOptions",
5549
5568
  "optional": true,
@@ -5582,7 +5601,7 @@
5582
5601
  "immutable": true,
5583
5602
  "locationInModule": {
5584
5603
  "filename": "src/projects/awscdk-construct-library-options.generated.ts",
5585
- "line": 1213
5604
+ "line": 1232
5586
5605
  },
5587
5606
  "name": "gitIgnoreOptions",
5588
5607
  "optional": true,
@@ -5599,7 +5618,7 @@
5599
5618
  "immutable": true,
5600
5619
  "locationInModule": {
5601
5620
  "filename": "src/projects/awscdk-construct-library-options.generated.ts",
5602
- "line": 1208
5621
+ "line": 1227
5603
5622
  },
5604
5623
  "name": "gitOptions",
5605
5624
  "optional": true,
@@ -5617,7 +5636,7 @@
5617
5636
  "immutable": true,
5618
5637
  "locationInModule": {
5619
5638
  "filename": "src/projects/awscdk-construct-library-options.generated.ts",
5620
- "line": 1097
5639
+ "line": 1116
5621
5640
  },
5622
5641
  "name": "gitpod",
5623
5642
  "optional": true,
@@ -5635,7 +5654,7 @@
5635
5654
  "immutable": true,
5636
5655
  "locationInModule": {
5637
5656
  "filename": "src/projects/awscdk-construct-library-options.generated.ts",
5638
- "line": 1231
5657
+ "line": 1250
5639
5658
  },
5640
5659
  "name": "homebrew",
5641
5660
  "optional": true,
@@ -5653,7 +5672,7 @@
5653
5672
  "immutable": true,
5654
5673
  "locationInModule": {
5655
5674
  "filename": "src/projects/awscdk-construct-library-options.generated.ts",
5656
- "line": 1236
5675
+ "line": 1255
5657
5676
  },
5658
5677
  "name": "homebrewOptions",
5659
5678
  "optional": true,
@@ -5670,7 +5689,7 @@
5670
5689
  "immutable": true,
5671
5690
  "locationInModule": {
5672
5691
  "filename": "src/projects/awscdk-construct-library-options.generated.ts",
5673
- "line": 879
5692
+ "line": 878
5674
5693
  },
5675
5694
  "name": "homepage",
5676
5695
  "optional": true,
@@ -5745,7 +5764,7 @@
5745
5764
  "immutable": true,
5746
5765
  "locationInModule": {
5747
5766
  "filename": "src/projects/awscdk-construct-library-options.generated.ts",
5748
- "line": 874
5767
+ "line": 873
5749
5768
  },
5750
5769
  "name": "keywords",
5751
5770
  "optional": true,
@@ -5841,7 +5860,7 @@
5841
5860
  "immutable": true,
5842
5861
  "locationInModule": {
5843
5862
  "filename": "src/projects/awscdk-construct-library-options.generated.ts",
5844
- "line": 869
5863
+ "line": 868
5845
5864
  },
5846
5865
  "name": "license",
5847
5866
  "optional": true,
@@ -5859,7 +5878,7 @@
5859
5878
  "immutable": true,
5860
5879
  "locationInModule": {
5861
5880
  "filename": "src/projects/awscdk-construct-library-options.generated.ts",
5862
- "line": 861
5881
+ "line": 860
5863
5882
  },
5864
5883
  "name": "licensed",
5865
5884
  "optional": true,
@@ -5877,7 +5896,7 @@
5877
5896
  "immutable": true,
5878
5897
  "locationInModule": {
5879
5898
  "filename": "src/projects/awscdk-construct-library-options.generated.ts",
5880
- "line": 1203
5899
+ "line": 1222
5881
5900
  },
5882
5901
  "name": "logging",
5883
5902
  "optional": true,
@@ -5915,7 +5934,7 @@
5915
5934
  "immutable": true,
5916
5935
  "locationInModule": {
5917
5936
  "filename": "src/projects/awscdk-construct-library-options.generated.ts",
5918
- "line": 855
5937
+ "line": 854
5919
5938
  },
5920
5939
  "name": "maxNodeVersion",
5921
5940
  "optional": true,
@@ -5953,7 +5972,7 @@
5953
5972
  "immutable": true,
5954
5973
  "locationInModule": {
5955
5974
  "filename": "src/projects/awscdk-construct-library-options.generated.ts",
5956
- "line": 844
5975
+ "line": 843
5957
5976
  },
5958
5977
  "name": "minNodeVersion",
5959
5978
  "optional": true,
@@ -5971,7 +5990,7 @@
5971
5990
  "immutable": true,
5972
5991
  "locationInModule": {
5973
5992
  "filename": "src/projects/awscdk-construct-library-options.generated.ts",
5974
- "line": 1241
5993
+ "line": 1260
5975
5994
  },
5976
5995
  "name": "mise",
5977
5996
  "optional": true,
@@ -5989,7 +6008,7 @@
5989
6008
  "immutable": true,
5990
6009
  "locationInModule": {
5991
6010
  "filename": "src/projects/awscdk-construct-library-options.generated.ts",
5992
- "line": 1246
6011
+ "line": 1265
5993
6012
  },
5994
6013
  "name": "miseOptions",
5995
6014
  "optional": true,
@@ -6026,7 +6045,7 @@
6026
6045
  "immutable": true,
6027
6046
  "locationInModule": {
6028
6047
  "filename": "src/projects/awscdk-construct-library-options.generated.ts",
6029
- "line": 829
6048
+ "line": 828
6030
6049
  },
6031
6050
  "name": "npmAccess",
6032
6051
  "optional": true,
@@ -6099,7 +6118,7 @@
6099
6118
  "immutable": true,
6100
6119
  "locationInModule": {
6101
6120
  "filename": "src/projects/awscdk-construct-library-options.generated.ts",
6102
- "line": 821
6121
+ "line": 820
6103
6122
  },
6104
6123
  "name": "npmProvenance",
6105
6124
  "optional": true,
@@ -6118,7 +6137,7 @@
6118
6137
  "immutable": true,
6119
6138
  "locationInModule": {
6120
6139
  "filename": "src/projects/awscdk-construct-library-options.generated.ts",
6121
- "line": 810
6140
+ "line": 809
6122
6141
  },
6123
6142
  "name": "npmRegistryUrl",
6124
6143
  "optional": true,
@@ -6136,7 +6155,7 @@
6136
6155
  "immutable": true,
6137
6156
  "locationInModule": {
6138
6157
  "filename": "src/projects/awscdk-construct-library-options.generated.ts",
6139
- "line": 803
6158
+ "line": 802
6140
6159
  },
6141
6160
  "name": "npmTokenSecret",
6142
6161
  "optional": true,
@@ -6154,7 +6173,7 @@
6154
6173
  "immutable": true,
6155
6174
  "locationInModule": {
6156
6175
  "filename": "src/projects/awscdk-construct-library-options.generated.ts",
6157
- "line": 797
6176
+ "line": 796
6158
6177
  },
6159
6178
  "name": "npmTrustedPublishing",
6160
6179
  "optional": true,
@@ -6173,7 +6192,7 @@
6173
6192
  "immutable": true,
6174
6193
  "locationInModule": {
6175
6194
  "filename": "src/projects/awscdk-construct-library-options.generated.ts",
6176
- "line": 1197
6195
+ "line": 1216
6177
6196
  },
6178
6197
  "name": "outdir",
6179
6198
  "optional": true,
@@ -6202,17 +6221,14 @@
6202
6221
  {
6203
6222
  "abstract": true,
6204
6223
  "docs": {
6205
- "custom": {
6206
- "pjnew": "$PACKAGE_MANAGER"
6207
- },
6208
- "default": "- Detected from the calling process or `YARN_CLASSIC` if detection fails.",
6224
+ "default": "- pnpm",
6209
6225
  "stability": "experimental",
6210
6226
  "summary": "The Node Package Manager used to execute scripts."
6211
6227
  },
6212
6228
  "immutable": true,
6213
6229
  "locationInModule": {
6214
6230
  "filename": "src/projects/awscdk-construct-library-options.generated.ts",
6215
- "line": 791
6231
+ "line": 790
6216
6232
  },
6217
6233
  "name": "packageManager",
6218
6234
  "optional": true,
@@ -6250,7 +6266,7 @@
6250
6266
  "immutable": true,
6251
6267
  "locationInModule": {
6252
6268
  "filename": "src/projects/awscdk-construct-library-options.generated.ts",
6253
- "line": 1186
6269
+ "line": 1205
6254
6270
  },
6255
6271
  "name": "parent",
6256
6272
  "optional": true,
@@ -6386,7 +6402,7 @@
6386
6402
  "immutable": true,
6387
6403
  "locationInModule": {
6388
6404
  "filename": "src/projects/awscdk-construct-library-options.generated.ts",
6389
- "line": 1181
6405
+ "line": 1200
6390
6406
  },
6391
6407
  "name": "projectTree",
6392
6408
  "optional": true,
@@ -6405,7 +6421,7 @@
6405
6421
  "immutable": true,
6406
6422
  "locationInModule": {
6407
6423
  "filename": "src/projects/awscdk-construct-library-options.generated.ts",
6408
- "line": 1175
6424
+ "line": 1194
6409
6425
  },
6410
6426
  "name": "projenCommand",
6411
6427
  "optional": true,
@@ -6423,7 +6439,7 @@
6423
6439
  "immutable": true,
6424
6440
  "locationInModule": {
6425
6441
  "filename": "src/projects/awscdk-construct-library-options.generated.ts",
6426
- "line": 1091
6442
+ "line": 1110
6427
6443
  },
6428
6444
  "name": "projenCredentials",
6429
6445
  "optional": true,
@@ -6477,7 +6493,7 @@
6477
6493
  "immutable": true,
6478
6494
  "locationInModule": {
6479
6495
  "filename": "src/projects/awscdk-construct-library-options.generated.ts",
6480
- "line": 1168
6496
+ "line": 1187
6481
6497
  },
6482
6498
  "name": "projenrcJson",
6483
6499
  "optional": true,
@@ -6495,7 +6511,7 @@
6495
6511
  "immutable": true,
6496
6512
  "locationInModule": {
6497
6513
  "filename": "src/projects/awscdk-construct-library-options.generated.ts",
6498
- "line": 1162
6514
+ "line": 1181
6499
6515
  },
6500
6516
  "name": "projenrcJsonOptions",
6501
6517
  "optional": true,
@@ -6737,7 +6753,7 @@
6737
6753
  "immutable": true,
6738
6754
  "locationInModule": {
6739
6755
  "filename": "src/projects/awscdk-construct-library-options.generated.ts",
6740
- "line": 1085
6756
+ "line": 1104
6741
6757
  },
6742
6758
  "name": "readme",
6743
6759
  "optional": true,
@@ -6989,7 +7005,7 @@
6989
7005
  "immutable": true,
6990
7006
  "locationInModule": {
6991
7007
  "filename": "src/projects/awscdk-construct-library-options.generated.ts",
6992
- "line": 1156
7008
+ "line": 1175
6993
7009
  },
6994
7010
  "name": "renovatebot",
6995
7011
  "optional": true,
@@ -7007,7 +7023,7 @@
7007
7023
  "immutable": true,
7008
7024
  "locationInModule": {
7009
7025
  "filename": "src/projects/awscdk-construct-library-options.generated.ts",
7010
- "line": 1150
7026
+ "line": 1169
7011
7027
  },
7012
7028
  "name": "renovatebotOptions",
7013
7029
  "optional": true,
@@ -7173,7 +7189,7 @@
7173
7189
  "immutable": true,
7174
7190
  "locationInModule": {
7175
7191
  "filename": "src/projects/awscdk-construct-library-options.generated.ts",
7176
- "line": 1079
7192
+ "line": 1098
7177
7193
  },
7178
7194
  "name": "stale",
7179
7195
  "optional": true,
@@ -7192,7 +7208,7 @@
7192
7208
  "immutable": true,
7193
7209
  "locationInModule": {
7194
7210
  "filename": "src/projects/awscdk-construct-library-options.generated.ts",
7195
- "line": 1072
7211
+ "line": 1091
7196
7212
  },
7197
7213
  "name": "staleOptions",
7198
7214
  "optional": true,
@@ -7346,7 +7362,7 @@
7346
7362
  "immutable": true,
7347
7363
  "locationInModule": {
7348
7364
  "filename": "src/projects/awscdk-construct-library-options.generated.ts",
7349
- "line": 1251
7365
+ "line": 1270
7350
7366
  },
7351
7367
  "name": "vitest",
7352
7368
  "optional": true,
@@ -7364,7 +7380,7 @@
7364
7380
  "immutable": true,
7365
7381
  "locationInModule": {
7366
7382
  "filename": "src/projects/awscdk-construct-library-options.generated.ts",
7367
- "line": 1256
7383
+ "line": 1275
7368
7384
  },
7369
7385
  "name": "vitestOptions",
7370
7386
  "optional": true,
@@ -7383,7 +7399,7 @@
7383
7399
  "immutable": true,
7384
7400
  "locationInModule": {
7385
7401
  "filename": "src/projects/awscdk-construct-library-options.generated.ts",
7386
- "line": 1065
7402
+ "line": 1084
7387
7403
  },
7388
7404
  "name": "vscode",
7389
7405
  "optional": true,
@@ -7638,7 +7654,7 @@
7638
7654
  "immutable": true,
7639
7655
  "locationInModule": {
7640
7656
  "filename": "src/projects/awscdk-typescript-app-options.generated.ts",
7641
- "line": 1167
7657
+ "line": 1186
7642
7658
  },
7643
7659
  "name": "name",
7644
7660
  "type": {
@@ -7655,7 +7671,7 @@
7655
7671
  "immutable": true,
7656
7672
  "locationInModule": {
7657
7673
  "filename": "src/projects/awscdk-typescript-app-options.generated.ts",
7658
- "line": 999
7674
+ "line": 1018
7659
7675
  },
7660
7676
  "name": "addPackageManagerToDevEngines",
7661
7677
  "optional": true,
@@ -7674,7 +7690,7 @@
7674
7690
  "immutable": true,
7675
7691
  "locationInModule": {
7676
7692
  "filename": "src/projects/awscdk-typescript-app-options.generated.ts",
7677
- "line": 993
7693
+ "line": 1012
7678
7694
  },
7679
7695
  "name": "allowLibraryDependencies",
7680
7696
  "optional": true,
@@ -7693,7 +7709,7 @@
7693
7709
  "immutable": true,
7694
7710
  "locationInModule": {
7695
7711
  "filename": "src/projects/awscdk-typescript-app-options.generated.ts",
7696
- "line": 985
7712
+ "line": 1004
7697
7713
  },
7698
7714
  "name": "allowScripts",
7699
7715
  "optional": true,
@@ -7805,7 +7821,7 @@
7805
7821
  "immutable": true,
7806
7822
  "locationInModule": {
7807
7823
  "filename": "src/projects/awscdk-typescript-app-options.generated.ts",
7808
- "line": 955
7824
+ "line": 974
7809
7825
  },
7810
7826
  "name": "authorEmail",
7811
7827
  "optional": true,
@@ -7822,7 +7838,7 @@
7822
7838
  "immutable": true,
7823
7839
  "locationInModule": {
7824
7840
  "filename": "src/projects/awscdk-typescript-app-options.generated.ts",
7825
- "line": 950
7841
+ "line": 969
7826
7842
  },
7827
7843
  "name": "authorName",
7828
7844
  "optional": true,
@@ -7839,7 +7855,7 @@
7839
7855
  "immutable": true,
7840
7856
  "locationInModule": {
7841
7857
  "filename": "src/projects/awscdk-typescript-app-options.generated.ts",
7842
- "line": 945
7858
+ "line": 964
7843
7859
  },
7844
7860
  "name": "authorOrganization",
7845
7861
  "optional": true,
@@ -7856,7 +7872,7 @@
7856
7872
  "immutable": true,
7857
7873
  "locationInModule": {
7858
7874
  "filename": "src/projects/awscdk-typescript-app-options.generated.ts",
7859
- "line": 940
7875
+ "line": 959
7860
7876
  },
7861
7877
  "name": "authorUrl",
7862
7878
  "optional": true,
@@ -7874,7 +7890,7 @@
7874
7890
  "immutable": true,
7875
7891
  "locationInModule": {
7876
7892
  "filename": "src/projects/awscdk-typescript-app-options.generated.ts",
7877
- "line": 1085
7893
+ "line": 1104
7878
7894
  },
7879
7895
  "name": "autoApproveOptions",
7880
7896
  "optional": true,
@@ -7911,7 +7927,7 @@
7911
7927
  "immutable": true,
7912
7928
  "locationInModule": {
7913
7929
  "filename": "src/projects/awscdk-typescript-app-options.generated.ts",
7914
- "line": 935
7930
+ "line": 954
7915
7931
  },
7916
7932
  "name": "autoDetectBin",
7917
7933
  "optional": true,
@@ -7930,7 +7946,7 @@
7930
7946
  "immutable": true,
7931
7947
  "locationInModule": {
7932
7948
  "filename": "src/projects/awscdk-typescript-app-options.generated.ts",
7933
- "line": 1079
7949
+ "line": 1098
7934
7950
  },
7935
7951
  "name": "autoMerge",
7936
7952
  "optional": true,
@@ -7949,7 +7965,7 @@
7949
7965
  "immutable": true,
7950
7966
  "locationInModule": {
7951
7967
  "filename": "src/projects/awscdk-typescript-app-options.generated.ts",
7952
- "line": 1071
7968
+ "line": 1090
7953
7969
  },
7954
7970
  "name": "autoMergeOptions",
7955
7971
  "optional": true,
@@ -7967,7 +7983,7 @@
7967
7983
  "immutable": true,
7968
7984
  "locationInModule": {
7969
7985
  "filename": "src/projects/awscdk-typescript-app-options.generated.ts",
7970
- "line": 929
7986
+ "line": 948
7971
7987
  },
7972
7988
  "name": "bin",
7973
7989
  "optional": true,
@@ -8025,7 +8041,7 @@
8025
8041
  "immutable": true,
8026
8042
  "locationInModule": {
8027
8043
  "filename": "src/projects/awscdk-typescript-app-options.generated.ts",
8028
- "line": 921
8044
+ "line": 940
8029
8045
  },
8030
8046
  "name": "bugsEmail",
8031
8047
  "optional": true,
@@ -8042,7 +8058,7 @@
8042
8058
  "immutable": true,
8043
8059
  "locationInModule": {
8044
8060
  "filename": "src/projects/awscdk-typescript-app-options.generated.ts",
8045
- "line": 916
8061
+ "line": 935
8046
8062
  },
8047
8063
  "name": "bugsUrl",
8048
8064
  "optional": true,
@@ -8133,7 +8149,7 @@
8133
8149
  "immutable": true,
8134
8150
  "locationInModule": {
8135
8151
  "filename": "src/projects/awscdk-typescript-app-options.generated.ts",
8136
- "line": 911
8152
+ "line": 930
8137
8153
  },
8138
8154
  "name": "bundledDeps",
8139
8155
  "optional": true,
@@ -8173,7 +8189,7 @@
8173
8189
  "immutable": true,
8174
8190
  "locationInModule": {
8175
8191
  "filename": "src/projects/awscdk-typescript-app-options.generated.ts",
8176
- "line": 896
8192
+ "line": 915
8177
8193
  },
8178
8194
  "name": "bunVersion",
8179
8195
  "optional": true,
@@ -8265,7 +8281,7 @@
8265
8281
  "immutable": true,
8266
8282
  "locationInModule": {
8267
8283
  "filename": "src/projects/awscdk-typescript-app-options.generated.ts",
8268
- "line": 1063
8284
+ "line": 1082
8269
8285
  },
8270
8286
  "name": "clobber",
8271
8287
  "optional": true,
@@ -8284,7 +8300,7 @@
8284
8300
  "immutable": true,
8285
8301
  "locationInModule": {
8286
8302
  "filename": "src/projects/awscdk-typescript-app-options.generated.ts",
8287
- "line": 890
8303
+ "line": 909
8288
8304
  },
8289
8305
  "name": "codeArtifactOptions",
8290
8306
  "optional": true,
@@ -8338,7 +8354,7 @@
8338
8354
  "immutable": true,
8339
8355
  "locationInModule": {
8340
8356
  "filename": "src/projects/awscdk-typescript-app-options.generated.ts",
8341
- "line": 1160
8357
+ "line": 1179
8342
8358
  },
8343
8359
  "name": "commitGenerated",
8344
8360
  "optional": true,
@@ -8425,6 +8441,25 @@
8425
8441
  "primitive": "string"
8426
8442
  }
8427
8443
  },
8444
+ {
8445
+ "abstract": true,
8446
+ "docs": {
8447
+ "default": "- false, unless `yarnBerryOptions.dedupePackages` is set",
8448
+ "remarks": "Deduplication prevents multiple versions of the same package from being\ninstalled, if a single version can satisfy all requested version ranges.\nThis prevents version proliferation and reduces the size of the dependency\ntree.\n\nThe behavior depends on the package manager:\n- npm: runs `npm dedupe` after every mutating install.\n- pnpm: runs `pnpm dedupe` after every mutating install.\n- Yarn Berry: runs `yarn dedupe` after every mutating install. If\n `yarnBerryOptions.dedupePackages` is set, only the listed packages are\n deduplicated.\n- Yarn Classic: `yarn install` already deduplicates, so the task only\n prints an informational message.\n- Bun: not supported, enabling this option throws an error.",
8449
+ "stability": "experimental",
8450
+ "summary": "Add a `dedupe` task that deduplicates project dependencies."
8451
+ },
8452
+ "immutable": true,
8453
+ "locationInModule": {
8454
+ "filename": "src/projects/awscdk-typescript-app-options.generated.ts",
8455
+ "line": 902
8456
+ },
8457
+ "name": "dedupeDeps",
8458
+ "optional": true,
8459
+ "type": {
8460
+ "primitive": "boolean"
8461
+ }
8462
+ },
8428
8463
  {
8429
8464
  "abstract": true,
8430
8465
  "docs": {
@@ -8457,7 +8492,7 @@
8457
8492
  "immutable": true,
8458
8493
  "locationInModule": {
8459
8494
  "filename": "src/projects/awscdk-typescript-app-options.generated.ts",
8460
- "line": 883
8495
+ "line": 882
8461
8496
  },
8462
8497
  "name": "deleteOrphanedLockFiles",
8463
8498
  "optional": true,
@@ -8516,7 +8551,7 @@
8516
8551
  "immutable": true,
8517
8552
  "locationInModule": {
8518
8553
  "filename": "src/projects/awscdk-typescript-app-options.generated.ts",
8519
- "line": 873
8554
+ "line": 872
8520
8555
  },
8521
8556
  "name": "deps",
8522
8557
  "optional": true,
@@ -8579,7 +8614,7 @@
8579
8614
  "immutable": true,
8580
8615
  "locationInModule": {
8581
8616
  "filename": "src/projects/awscdk-typescript-app-options.generated.ts",
8582
- "line": 860
8617
+ "line": 859
8583
8618
  },
8584
8619
  "name": "description",
8585
8620
  "optional": true,
@@ -8597,7 +8632,7 @@
8597
8632
  "immutable": true,
8598
8633
  "locationInModule": {
8599
8634
  "filename": "src/projects/awscdk-typescript-app-options.generated.ts",
8600
- "line": 1057
8635
+ "line": 1076
8601
8636
  },
8602
8637
  "name": "devContainer",
8603
8638
  "optional": true,
@@ -8619,7 +8654,7 @@
8619
8654
  "immutable": true,
8620
8655
  "locationInModule": {
8621
8656
  "filename": "src/projects/awscdk-typescript-app-options.generated.ts",
8622
- "line": 852
8657
+ "line": 851
8623
8658
  },
8624
8659
  "name": "devDeps",
8625
8660
  "optional": true,
@@ -8641,7 +8676,7 @@
8641
8676
  "immutable": true,
8642
8677
  "locationInModule": {
8643
8678
  "filename": "src/projects/awscdk-typescript-app-options.generated.ts",
8644
- "line": 835
8679
+ "line": 834
8645
8680
  },
8646
8681
  "name": "devEngines",
8647
8682
  "optional": true,
@@ -8749,7 +8784,7 @@
8749
8784
  "immutable": true,
8750
8785
  "locationInModule": {
8751
8786
  "filename": "src/projects/awscdk-typescript-app-options.generated.ts",
8752
- "line": 827
8787
+ "line": 826
8753
8788
  },
8754
8789
  "name": "entrypoint",
8755
8790
  "optional": true,
@@ -8822,7 +8857,7 @@
8822
8857
  "immutable": true,
8823
8858
  "locationInModule": {
8824
8859
  "filename": "src/projects/awscdk-typescript-app-options.generated.ts",
8825
- "line": 1051
8860
+ "line": 1070
8826
8861
  },
8827
8862
  "name": "github",
8828
8863
  "optional": true,
@@ -8840,7 +8875,7 @@
8840
8875
  "immutable": true,
8841
8876
  "locationInModule": {
8842
8877
  "filename": "src/projects/awscdk-typescript-app-options.generated.ts",
8843
- "line": 1044
8878
+ "line": 1063
8844
8879
  },
8845
8880
  "name": "githubOptions",
8846
8881
  "optional": true,
@@ -8879,7 +8914,7 @@
8879
8914
  "immutable": true,
8880
8915
  "locationInModule": {
8881
8916
  "filename": "src/projects/awscdk-typescript-app-options.generated.ts",
8882
- "line": 1154
8917
+ "line": 1173
8883
8918
  },
8884
8919
  "name": "gitIgnoreOptions",
8885
8920
  "optional": true,
@@ -8896,7 +8931,7 @@
8896
8931
  "immutable": true,
8897
8932
  "locationInModule": {
8898
8933
  "filename": "src/projects/awscdk-typescript-app-options.generated.ts",
8899
- "line": 1149
8934
+ "line": 1168
8900
8935
  },
8901
8936
  "name": "gitOptions",
8902
8937
  "optional": true,
@@ -8914,7 +8949,7 @@
8914
8949
  "immutable": true,
8915
8950
  "locationInModule": {
8916
8951
  "filename": "src/projects/awscdk-typescript-app-options.generated.ts",
8917
- "line": 1038
8952
+ "line": 1057
8918
8953
  },
8919
8954
  "name": "gitpod",
8920
8955
  "optional": true,
@@ -8932,7 +8967,7 @@
8932
8967
  "immutable": true,
8933
8968
  "locationInModule": {
8934
8969
  "filename": "src/projects/awscdk-typescript-app-options.generated.ts",
8935
- "line": 1172
8970
+ "line": 1191
8936
8971
  },
8937
8972
  "name": "homebrew",
8938
8973
  "optional": true,
@@ -8950,7 +8985,7 @@
8950
8985
  "immutable": true,
8951
8986
  "locationInModule": {
8952
8987
  "filename": "src/projects/awscdk-typescript-app-options.generated.ts",
8953
- "line": 1177
8988
+ "line": 1196
8954
8989
  },
8955
8990
  "name": "homebrewOptions",
8956
8991
  "optional": true,
@@ -8967,7 +9002,7 @@
8967
9002
  "immutable": true,
8968
9003
  "locationInModule": {
8969
9004
  "filename": "src/projects/awscdk-typescript-app-options.generated.ts",
8970
- "line": 820
9005
+ "line": 819
8971
9006
  },
8972
9007
  "name": "homepage",
8973
9008
  "optional": true,
@@ -9020,7 +9055,7 @@
9020
9055
  "immutable": true,
9021
9056
  "locationInModule": {
9022
9057
  "filename": "src/projects/awscdk-typescript-app-options.generated.ts",
9023
- "line": 815
9058
+ "line": 814
9024
9059
  },
9025
9060
  "name": "keywords",
9026
9061
  "optional": true,
@@ -9116,7 +9151,7 @@
9116
9151
  "immutable": true,
9117
9152
  "locationInModule": {
9118
9153
  "filename": "src/projects/awscdk-typescript-app-options.generated.ts",
9119
- "line": 810
9154
+ "line": 809
9120
9155
  },
9121
9156
  "name": "license",
9122
9157
  "optional": true,
@@ -9134,7 +9169,7 @@
9134
9169
  "immutable": true,
9135
9170
  "locationInModule": {
9136
9171
  "filename": "src/projects/awscdk-typescript-app-options.generated.ts",
9137
- "line": 802
9172
+ "line": 801
9138
9173
  },
9139
9174
  "name": "licensed",
9140
9175
  "optional": true,
@@ -9152,7 +9187,7 @@
9152
9187
  "immutable": true,
9153
9188
  "locationInModule": {
9154
9189
  "filename": "src/projects/awscdk-typescript-app-options.generated.ts",
9155
- "line": 1144
9190
+ "line": 1163
9156
9191
  },
9157
9192
  "name": "logging",
9158
9193
  "optional": true,
@@ -9190,7 +9225,7 @@
9190
9225
  "immutable": true,
9191
9226
  "locationInModule": {
9192
9227
  "filename": "src/projects/awscdk-typescript-app-options.generated.ts",
9193
- "line": 796
9228
+ "line": 795
9194
9229
  },
9195
9230
  "name": "maxNodeVersion",
9196
9231
  "optional": true,
@@ -9228,7 +9263,7 @@
9228
9263
  "immutable": true,
9229
9264
  "locationInModule": {
9230
9265
  "filename": "src/projects/awscdk-typescript-app-options.generated.ts",
9231
- "line": 785
9266
+ "line": 784
9232
9267
  },
9233
9268
  "name": "minNodeVersion",
9234
9269
  "optional": true,
@@ -9246,7 +9281,7 @@
9246
9281
  "immutable": true,
9247
9282
  "locationInModule": {
9248
9283
  "filename": "src/projects/awscdk-typescript-app-options.generated.ts",
9249
- "line": 1182
9284
+ "line": 1201
9250
9285
  },
9251
9286
  "name": "mise",
9252
9287
  "optional": true,
@@ -9264,7 +9299,7 @@
9264
9299
  "immutable": true,
9265
9300
  "locationInModule": {
9266
9301
  "filename": "src/projects/awscdk-typescript-app-options.generated.ts",
9267
- "line": 1187
9302
+ "line": 1206
9268
9303
  },
9269
9304
  "name": "miseOptions",
9270
9305
  "optional": true,
@@ -9301,7 +9336,7 @@
9301
9336
  "immutable": true,
9302
9337
  "locationInModule": {
9303
9338
  "filename": "src/projects/awscdk-typescript-app-options.generated.ts",
9304
- "line": 770
9339
+ "line": 769
9305
9340
  },
9306
9341
  "name": "npmAccess",
9307
9342
  "optional": true,
@@ -9374,7 +9409,7 @@
9374
9409
  "immutable": true,
9375
9410
  "locationInModule": {
9376
9411
  "filename": "src/projects/awscdk-typescript-app-options.generated.ts",
9377
- "line": 762
9412
+ "line": 761
9378
9413
  },
9379
9414
  "name": "npmProvenance",
9380
9415
  "optional": true,
@@ -9393,7 +9428,7 @@
9393
9428
  "immutable": true,
9394
9429
  "locationInModule": {
9395
9430
  "filename": "src/projects/awscdk-typescript-app-options.generated.ts",
9396
- "line": 751
9431
+ "line": 750
9397
9432
  },
9398
9433
  "name": "npmRegistryUrl",
9399
9434
  "optional": true,
@@ -9411,7 +9446,7 @@
9411
9446
  "immutable": true,
9412
9447
  "locationInModule": {
9413
9448
  "filename": "src/projects/awscdk-typescript-app-options.generated.ts",
9414
- "line": 744
9449
+ "line": 743
9415
9450
  },
9416
9451
  "name": "npmTokenSecret",
9417
9452
  "optional": true,
@@ -9429,7 +9464,7 @@
9429
9464
  "immutable": true,
9430
9465
  "locationInModule": {
9431
9466
  "filename": "src/projects/awscdk-typescript-app-options.generated.ts",
9432
- "line": 738
9467
+ "line": 737
9433
9468
  },
9434
9469
  "name": "npmTrustedPublishing",
9435
9470
  "optional": true,
@@ -9448,7 +9483,7 @@
9448
9483
  "immutable": true,
9449
9484
  "locationInModule": {
9450
9485
  "filename": "src/projects/awscdk-typescript-app-options.generated.ts",
9451
- "line": 1138
9486
+ "line": 1157
9452
9487
  },
9453
9488
  "name": "outdir",
9454
9489
  "optional": true,
@@ -9477,17 +9512,14 @@
9477
9512
  {
9478
9513
  "abstract": true,
9479
9514
  "docs": {
9480
- "custom": {
9481
- "pjnew": "$PACKAGE_MANAGER"
9482
- },
9483
- "default": "- Detected from the calling process or `YARN_CLASSIC` if detection fails.",
9515
+ "default": "- pnpm",
9484
9516
  "stability": "experimental",
9485
9517
  "summary": "The Node Package Manager used to execute scripts."
9486
9518
  },
9487
9519
  "immutable": true,
9488
9520
  "locationInModule": {
9489
9521
  "filename": "src/projects/awscdk-typescript-app-options.generated.ts",
9490
- "line": 732
9522
+ "line": 731
9491
9523
  },
9492
9524
  "name": "packageManager",
9493
9525
  "optional": true,
@@ -9525,7 +9557,7 @@
9525
9557
  "immutable": true,
9526
9558
  "locationInModule": {
9527
9559
  "filename": "src/projects/awscdk-typescript-app-options.generated.ts",
9528
- "line": 1127
9560
+ "line": 1146
9529
9561
  },
9530
9562
  "name": "parent",
9531
9563
  "optional": true,
@@ -9661,7 +9693,7 @@
9661
9693
  "immutable": true,
9662
9694
  "locationInModule": {
9663
9695
  "filename": "src/projects/awscdk-typescript-app-options.generated.ts",
9664
- "line": 1122
9696
+ "line": 1141
9665
9697
  },
9666
9698
  "name": "projectTree",
9667
9699
  "optional": true,
@@ -9680,7 +9712,7 @@
9680
9712
  "immutable": true,
9681
9713
  "locationInModule": {
9682
9714
  "filename": "src/projects/awscdk-typescript-app-options.generated.ts",
9683
- "line": 1116
9715
+ "line": 1135
9684
9716
  },
9685
9717
  "name": "projenCommand",
9686
9718
  "optional": true,
@@ -9698,7 +9730,7 @@
9698
9730
  "immutable": true,
9699
9731
  "locationInModule": {
9700
9732
  "filename": "src/projects/awscdk-typescript-app-options.generated.ts",
9701
- "line": 1032
9733
+ "line": 1051
9702
9734
  },
9703
9735
  "name": "projenCredentials",
9704
9736
  "optional": true,
@@ -9752,7 +9784,7 @@
9752
9784
  "immutable": true,
9753
9785
  "locationInModule": {
9754
9786
  "filename": "src/projects/awscdk-typescript-app-options.generated.ts",
9755
- "line": 1109
9787
+ "line": 1128
9756
9788
  },
9757
9789
  "name": "projenrcJson",
9758
9790
  "optional": true,
@@ -9770,7 +9802,7 @@
9770
9802
  "immutable": true,
9771
9803
  "locationInModule": {
9772
9804
  "filename": "src/projects/awscdk-typescript-app-options.generated.ts",
9773
- "line": 1103
9805
+ "line": 1122
9774
9806
  },
9775
9807
  "name": "projenrcJsonOptions",
9776
9808
  "optional": true,
@@ -9940,7 +9972,7 @@
9940
9972
  "immutable": true,
9941
9973
  "locationInModule": {
9942
9974
  "filename": "src/projects/awscdk-typescript-app-options.generated.ts",
9943
- "line": 1026
9975
+ "line": 1045
9944
9976
  },
9945
9977
  "name": "readme",
9946
9978
  "optional": true,
@@ -10192,7 +10224,7 @@
10192
10224
  "immutable": true,
10193
10225
  "locationInModule": {
10194
10226
  "filename": "src/projects/awscdk-typescript-app-options.generated.ts",
10195
- "line": 1097
10227
+ "line": 1116
10196
10228
  },
10197
10229
  "name": "renovatebot",
10198
10230
  "optional": true,
@@ -10210,7 +10242,7 @@
10210
10242
  "immutable": true,
10211
10243
  "locationInModule": {
10212
10244
  "filename": "src/projects/awscdk-typescript-app-options.generated.ts",
10213
- "line": 1091
10245
+ "line": 1110
10214
10246
  },
10215
10247
  "name": "renovatebotOptions",
10216
10248
  "optional": true,
@@ -10377,7 +10409,7 @@
10377
10409
  "immutable": true,
10378
10410
  "locationInModule": {
10379
10411
  "filename": "src/projects/awscdk-typescript-app-options.generated.ts",
10380
- "line": 1020
10412
+ "line": 1039
10381
10413
  },
10382
10414
  "name": "stale",
10383
10415
  "optional": true,
@@ -10396,7 +10428,7 @@
10396
10428
  "immutable": true,
10397
10429
  "locationInModule": {
10398
10430
  "filename": "src/projects/awscdk-typescript-app-options.generated.ts",
10399
- "line": 1013
10431
+ "line": 1032
10400
10432
  },
10401
10433
  "name": "staleOptions",
10402
10434
  "optional": true,
@@ -10531,7 +10563,7 @@
10531
10563
  "immutable": true,
10532
10564
  "locationInModule": {
10533
10565
  "filename": "src/projects/awscdk-typescript-app-options.generated.ts",
10534
- "line": 1192
10566
+ "line": 1211
10535
10567
  },
10536
10568
  "name": "vitest",
10537
10569
  "optional": true,
@@ -10549,7 +10581,7 @@
10549
10581
  "immutable": true,
10550
10582
  "locationInModule": {
10551
10583
  "filename": "src/projects/awscdk-typescript-app-options.generated.ts",
10552
- "line": 1197
10584
+ "line": 1216
10553
10585
  },
10554
10586
  "name": "vitestOptions",
10555
10587
  "optional": true,
@@ -10568,7 +10600,7 @@
10568
10600
  "immutable": true,
10569
10601
  "locationInModule": {
10570
10602
  "filename": "src/projects/awscdk-typescript-app-options.generated.ts",
10571
- "line": 1006
10603
+ "line": 1025
10572
10604
  },
10573
10605
  "name": "vscode",
10574
10606
  "optional": true,
@@ -11903,7 +11935,7 @@
11903
11935
  "immutable": true,
11904
11936
  "locationInModule": {
11905
11937
  "filename": "src/projects/jsii-options.generated.ts",
11906
- "line": 1140
11938
+ "line": 1159
11907
11939
  },
11908
11940
  "name": "name",
11909
11941
  "type": {
@@ -11937,7 +11969,7 @@
11937
11969
  "immutable": true,
11938
11970
  "locationInModule": {
11939
11971
  "filename": "src/projects/jsii-options.generated.ts",
11940
- "line": 972
11972
+ "line": 991
11941
11973
  },
11942
11974
  "name": "addPackageManagerToDevEngines",
11943
11975
  "optional": true,
@@ -11956,7 +11988,7 @@
11956
11988
  "immutable": true,
11957
11989
  "locationInModule": {
11958
11990
  "filename": "src/projects/jsii-options.generated.ts",
11959
- "line": 966
11991
+ "line": 985
11960
11992
  },
11961
11993
  "name": "allowLibraryDependencies",
11962
11994
  "optional": true,
@@ -11975,7 +12007,7 @@
11975
12007
  "immutable": true,
11976
12008
  "locationInModule": {
11977
12009
  "filename": "src/projects/jsii-options.generated.ts",
11978
- "line": 958
12010
+ "line": 977
11979
12011
  },
11980
12012
  "name": "allowScripts",
11981
12013
  "optional": true,
@@ -12052,7 +12084,7 @@
12052
12084
  "immutable": true,
12053
12085
  "locationInModule": {
12054
12086
  "filename": "src/projects/jsii-options.generated.ts",
12055
- "line": 928
12087
+ "line": 947
12056
12088
  },
12057
12089
  "name": "authorEmail",
12058
12090
  "optional": true,
@@ -12069,7 +12101,7 @@
12069
12101
  "immutable": true,
12070
12102
  "locationInModule": {
12071
12103
  "filename": "src/projects/jsii-options.generated.ts",
12072
- "line": 923
12104
+ "line": 942
12073
12105
  },
12074
12106
  "name": "authorName",
12075
12107
  "optional": true,
@@ -12086,7 +12118,7 @@
12086
12118
  "immutable": true,
12087
12119
  "locationInModule": {
12088
12120
  "filename": "src/projects/jsii-options.generated.ts",
12089
- "line": 918
12121
+ "line": 937
12090
12122
  },
12091
12123
  "name": "authorOrganization",
12092
12124
  "optional": true,
@@ -12103,7 +12135,7 @@
12103
12135
  "immutable": true,
12104
12136
  "locationInModule": {
12105
12137
  "filename": "src/projects/jsii-options.generated.ts",
12106
- "line": 913
12138
+ "line": 932
12107
12139
  },
12108
12140
  "name": "authorUrl",
12109
12141
  "optional": true,
@@ -12121,7 +12153,7 @@
12121
12153
  "immutable": true,
12122
12154
  "locationInModule": {
12123
12155
  "filename": "src/projects/jsii-options.generated.ts",
12124
- "line": 1058
12156
+ "line": 1077
12125
12157
  },
12126
12158
  "name": "autoApproveOptions",
12127
12159
  "optional": true,
@@ -12158,7 +12190,7 @@
12158
12190
  "immutable": true,
12159
12191
  "locationInModule": {
12160
12192
  "filename": "src/projects/jsii-options.generated.ts",
12161
- "line": 908
12193
+ "line": 927
12162
12194
  },
12163
12195
  "name": "autoDetectBin",
12164
12196
  "optional": true,
@@ -12177,7 +12209,7 @@
12177
12209
  "immutable": true,
12178
12210
  "locationInModule": {
12179
12211
  "filename": "src/projects/jsii-options.generated.ts",
12180
- "line": 1052
12212
+ "line": 1071
12181
12213
  },
12182
12214
  "name": "autoMerge",
12183
12215
  "optional": true,
@@ -12196,7 +12228,7 @@
12196
12228
  "immutable": true,
12197
12229
  "locationInModule": {
12198
12230
  "filename": "src/projects/jsii-options.generated.ts",
12199
- "line": 1044
12231
+ "line": 1063
12200
12232
  },
12201
12233
  "name": "autoMergeOptions",
12202
12234
  "optional": true,
@@ -12214,7 +12246,7 @@
12214
12246
  "immutable": true,
12215
12247
  "locationInModule": {
12216
12248
  "filename": "src/projects/jsii-options.generated.ts",
12217
- "line": 902
12249
+ "line": 921
12218
12250
  },
12219
12251
  "name": "bin",
12220
12252
  "optional": true,
@@ -12272,7 +12304,7 @@
12272
12304
  "immutable": true,
12273
12305
  "locationInModule": {
12274
12306
  "filename": "src/projects/jsii-options.generated.ts",
12275
- "line": 894
12307
+ "line": 913
12276
12308
  },
12277
12309
  "name": "bugsEmail",
12278
12310
  "optional": true,
@@ -12289,7 +12321,7 @@
12289
12321
  "immutable": true,
12290
12322
  "locationInModule": {
12291
12323
  "filename": "src/projects/jsii-options.generated.ts",
12292
- "line": 889
12324
+ "line": 908
12293
12325
  },
12294
12326
  "name": "bugsUrl",
12295
12327
  "optional": true,
@@ -12361,7 +12393,7 @@
12361
12393
  "immutable": true,
12362
12394
  "locationInModule": {
12363
12395
  "filename": "src/projects/jsii-options.generated.ts",
12364
- "line": 884
12396
+ "line": 903
12365
12397
  },
12366
12398
  "name": "bundledDeps",
12367
12399
  "optional": true,
@@ -12401,7 +12433,7 @@
12401
12433
  "immutable": true,
12402
12434
  "locationInModule": {
12403
12435
  "filename": "src/projects/jsii-options.generated.ts",
12404
- "line": 869
12436
+ "line": 888
12405
12437
  },
12406
12438
  "name": "bunVersion",
12407
12439
  "optional": true,
@@ -12438,7 +12470,7 @@
12438
12470
  "immutable": true,
12439
12471
  "locationInModule": {
12440
12472
  "filename": "src/projects/jsii-options.generated.ts",
12441
- "line": 1036
12473
+ "line": 1055
12442
12474
  },
12443
12475
  "name": "clobber",
12444
12476
  "optional": true,
@@ -12457,7 +12489,7 @@
12457
12489
  "immutable": true,
12458
12490
  "locationInModule": {
12459
12491
  "filename": "src/projects/jsii-options.generated.ts",
12460
- "line": 863
12492
+ "line": 882
12461
12493
  },
12462
12494
  "name": "codeArtifactOptions",
12463
12495
  "optional": true,
@@ -12511,7 +12543,7 @@
12511
12543
  "immutable": true,
12512
12544
  "locationInModule": {
12513
12545
  "filename": "src/projects/jsii-options.generated.ts",
12514
- "line": 1133
12546
+ "line": 1152
12515
12547
  },
12516
12548
  "name": "commitGenerated",
12517
12549
  "optional": true,
@@ -12612,6 +12644,25 @@
12612
12644
  "primitive": "string"
12613
12645
  }
12614
12646
  },
12647
+ {
12648
+ "abstract": true,
12649
+ "docs": {
12650
+ "default": "- false, unless `yarnBerryOptions.dedupePackages` is set",
12651
+ "remarks": "Deduplication prevents multiple versions of the same package from being\ninstalled, if a single version can satisfy all requested version ranges.\nThis prevents version proliferation and reduces the size of the dependency\ntree.\n\nThe behavior depends on the package manager:\n- npm: runs `npm dedupe` after every mutating install.\n- pnpm: runs `pnpm dedupe` after every mutating install.\n- Yarn Berry: runs `yarn dedupe` after every mutating install. If\n `yarnBerryOptions.dedupePackages` is set, only the listed packages are\n deduplicated.\n- Yarn Classic: `yarn install` already deduplicates, so the task only\n prints an informational message.\n- Bun: not supported, enabling this option throws an error.",
12652
+ "stability": "experimental",
12653
+ "summary": "Add a `dedupe` task that deduplicates project dependencies."
12654
+ },
12655
+ "immutable": true,
12656
+ "locationInModule": {
12657
+ "filename": "src/projects/jsii-options.generated.ts",
12658
+ "line": 875
12659
+ },
12660
+ "name": "dedupeDeps",
12661
+ "optional": true,
12662
+ "type": {
12663
+ "primitive": "boolean"
12664
+ }
12665
+ },
12615
12666
  {
12616
12667
  "abstract": true,
12617
12668
  "docs": {
@@ -12644,7 +12695,7 @@
12644
12695
  "immutable": true,
12645
12696
  "locationInModule": {
12646
12697
  "filename": "src/projects/jsii-options.generated.ts",
12647
- "line": 856
12698
+ "line": 855
12648
12699
  },
12649
12700
  "name": "deleteOrphanedLockFiles",
12650
12701
  "optional": true,
@@ -12703,7 +12754,7 @@
12703
12754
  "immutable": true,
12704
12755
  "locationInModule": {
12705
12756
  "filename": "src/projects/jsii-options.generated.ts",
12706
- "line": 846
12757
+ "line": 845
12707
12758
  },
12708
12759
  "name": "deps",
12709
12760
  "optional": true,
@@ -12766,7 +12817,7 @@
12766
12817
  "immutable": true,
12767
12818
  "locationInModule": {
12768
12819
  "filename": "src/projects/jsii-options.generated.ts",
12769
- "line": 833
12820
+ "line": 832
12770
12821
  },
12771
12822
  "name": "description",
12772
12823
  "optional": true,
@@ -12784,7 +12835,7 @@
12784
12835
  "immutable": true,
12785
12836
  "locationInModule": {
12786
12837
  "filename": "src/projects/jsii-options.generated.ts",
12787
- "line": 1030
12838
+ "line": 1049
12788
12839
  },
12789
12840
  "name": "devContainer",
12790
12841
  "optional": true,
@@ -12806,7 +12857,7 @@
12806
12857
  "immutable": true,
12807
12858
  "locationInModule": {
12808
12859
  "filename": "src/projects/jsii-options.generated.ts",
12809
- "line": 825
12860
+ "line": 824
12810
12861
  },
12811
12862
  "name": "devDeps",
12812
12863
  "optional": true,
@@ -12828,7 +12879,7 @@
12828
12879
  "immutable": true,
12829
12880
  "locationInModule": {
12830
12881
  "filename": "src/projects/jsii-options.generated.ts",
12831
- "line": 808
12882
+ "line": 807
12832
12883
  },
12833
12884
  "name": "devEngines",
12834
12885
  "optional": true,
@@ -12936,7 +12987,7 @@
12936
12987
  "immutable": true,
12937
12988
  "locationInModule": {
12938
12989
  "filename": "src/projects/jsii-options.generated.ts",
12939
- "line": 800
12990
+ "line": 799
12940
12991
  },
12941
12992
  "name": "entrypoint",
12942
12993
  "optional": true,
@@ -12996,7 +13047,7 @@
12996
13047
  "immutable": true,
12997
13048
  "locationInModule": {
12998
13049
  "filename": "src/projects/jsii-options.generated.ts",
12999
- "line": 1024
13050
+ "line": 1043
13000
13051
  },
13001
13052
  "name": "github",
13002
13053
  "optional": true,
@@ -13014,7 +13065,7 @@
13014
13065
  "immutable": true,
13015
13066
  "locationInModule": {
13016
13067
  "filename": "src/projects/jsii-options.generated.ts",
13017
- "line": 1017
13068
+ "line": 1036
13018
13069
  },
13019
13070
  "name": "githubOptions",
13020
13071
  "optional": true,
@@ -13053,7 +13104,7 @@
13053
13104
  "immutable": true,
13054
13105
  "locationInModule": {
13055
13106
  "filename": "src/projects/jsii-options.generated.ts",
13056
- "line": 1127
13107
+ "line": 1146
13057
13108
  },
13058
13109
  "name": "gitIgnoreOptions",
13059
13110
  "optional": true,
@@ -13070,7 +13121,7 @@
13070
13121
  "immutable": true,
13071
13122
  "locationInModule": {
13072
13123
  "filename": "src/projects/jsii-options.generated.ts",
13073
- "line": 1122
13124
+ "line": 1141
13074
13125
  },
13075
13126
  "name": "gitOptions",
13076
13127
  "optional": true,
@@ -13088,7 +13139,7 @@
13088
13139
  "immutable": true,
13089
13140
  "locationInModule": {
13090
13141
  "filename": "src/projects/jsii-options.generated.ts",
13091
- "line": 1011
13142
+ "line": 1030
13092
13143
  },
13093
13144
  "name": "gitpod",
13094
13145
  "optional": true,
@@ -13106,7 +13157,7 @@
13106
13157
  "immutable": true,
13107
13158
  "locationInModule": {
13108
13159
  "filename": "src/projects/jsii-options.generated.ts",
13109
- "line": 1145
13160
+ "line": 1164
13110
13161
  },
13111
13162
  "name": "homebrew",
13112
13163
  "optional": true,
@@ -13124,7 +13175,7 @@
13124
13175
  "immutable": true,
13125
13176
  "locationInModule": {
13126
13177
  "filename": "src/projects/jsii-options.generated.ts",
13127
- "line": 1150
13178
+ "line": 1169
13128
13179
  },
13129
13180
  "name": "homebrewOptions",
13130
13181
  "optional": true,
@@ -13141,7 +13192,7 @@
13141
13192
  "immutable": true,
13142
13193
  "locationInModule": {
13143
13194
  "filename": "src/projects/jsii-options.generated.ts",
13144
- "line": 793
13195
+ "line": 792
13145
13196
  },
13146
13197
  "name": "homepage",
13147
13198
  "optional": true,
@@ -13198,7 +13249,7 @@
13198
13249
  "immutable": true,
13199
13250
  "locationInModule": {
13200
13251
  "filename": "src/projects/jsii-options.generated.ts",
13201
- "line": 788
13252
+ "line": 787
13202
13253
  },
13203
13254
  "name": "keywords",
13204
13255
  "optional": true,
@@ -13240,7 +13291,7 @@
13240
13291
  "immutable": true,
13241
13292
  "locationInModule": {
13242
13293
  "filename": "src/projects/jsii-options.generated.ts",
13243
- "line": 783
13294
+ "line": 782
13244
13295
  },
13245
13296
  "name": "license",
13246
13297
  "optional": true,
@@ -13258,7 +13309,7 @@
13258
13309
  "immutable": true,
13259
13310
  "locationInModule": {
13260
13311
  "filename": "src/projects/jsii-options.generated.ts",
13261
- "line": 775
13312
+ "line": 774
13262
13313
  },
13263
13314
  "name": "licensed",
13264
13315
  "optional": true,
@@ -13276,7 +13327,7 @@
13276
13327
  "immutable": true,
13277
13328
  "locationInModule": {
13278
13329
  "filename": "src/projects/jsii-options.generated.ts",
13279
- "line": 1117
13330
+ "line": 1136
13280
13331
  },
13281
13332
  "name": "logging",
13282
13333
  "optional": true,
@@ -13314,7 +13365,7 @@
13314
13365
  "immutable": true,
13315
13366
  "locationInModule": {
13316
13367
  "filename": "src/projects/jsii-options.generated.ts",
13317
- "line": 769
13368
+ "line": 768
13318
13369
  },
13319
13370
  "name": "maxNodeVersion",
13320
13371
  "optional": true,
@@ -13352,7 +13403,7 @@
13352
13403
  "immutable": true,
13353
13404
  "locationInModule": {
13354
13405
  "filename": "src/projects/jsii-options.generated.ts",
13355
- "line": 758
13406
+ "line": 757
13356
13407
  },
13357
13408
  "name": "minNodeVersion",
13358
13409
  "optional": true,
@@ -13370,7 +13421,7 @@
13370
13421
  "immutable": true,
13371
13422
  "locationInModule": {
13372
13423
  "filename": "src/projects/jsii-options.generated.ts",
13373
- "line": 1155
13424
+ "line": 1174
13374
13425
  },
13375
13426
  "name": "mise",
13376
13427
  "optional": true,
@@ -13388,7 +13439,7 @@
13388
13439
  "immutable": true,
13389
13440
  "locationInModule": {
13390
13441
  "filename": "src/projects/jsii-options.generated.ts",
13391
- "line": 1160
13442
+ "line": 1179
13392
13443
  },
13393
13444
  "name": "miseOptions",
13394
13445
  "optional": true,
@@ -13425,7 +13476,7 @@
13425
13476
  "immutable": true,
13426
13477
  "locationInModule": {
13427
13478
  "filename": "src/projects/jsii-options.generated.ts",
13428
- "line": 743
13479
+ "line": 742
13429
13480
  },
13430
13481
  "name": "npmAccess",
13431
13482
  "optional": true,
@@ -13498,7 +13549,7 @@
13498
13549
  "immutable": true,
13499
13550
  "locationInModule": {
13500
13551
  "filename": "src/projects/jsii-options.generated.ts",
13501
- "line": 735
13552
+ "line": 734
13502
13553
  },
13503
13554
  "name": "npmProvenance",
13504
13555
  "optional": true,
@@ -13517,7 +13568,7 @@
13517
13568
  "immutable": true,
13518
13569
  "locationInModule": {
13519
13570
  "filename": "src/projects/jsii-options.generated.ts",
13520
- "line": 724
13571
+ "line": 723
13521
13572
  },
13522
13573
  "name": "npmRegistryUrl",
13523
13574
  "optional": true,
@@ -13535,7 +13586,7 @@
13535
13586
  "immutable": true,
13536
13587
  "locationInModule": {
13537
13588
  "filename": "src/projects/jsii-options.generated.ts",
13538
- "line": 717
13589
+ "line": 716
13539
13590
  },
13540
13591
  "name": "npmTokenSecret",
13541
13592
  "optional": true,
@@ -13553,7 +13604,7 @@
13553
13604
  "immutable": true,
13554
13605
  "locationInModule": {
13555
13606
  "filename": "src/projects/jsii-options.generated.ts",
13556
- "line": 711
13607
+ "line": 710
13557
13608
  },
13558
13609
  "name": "npmTrustedPublishing",
13559
13610
  "optional": true,
@@ -13572,7 +13623,7 @@
13572
13623
  "immutable": true,
13573
13624
  "locationInModule": {
13574
13625
  "filename": "src/projects/jsii-options.generated.ts",
13575
- "line": 1111
13626
+ "line": 1130
13576
13627
  },
13577
13628
  "name": "outdir",
13578
13629
  "optional": true,
@@ -13601,17 +13652,14 @@
13601
13652
  {
13602
13653
  "abstract": true,
13603
13654
  "docs": {
13604
- "custom": {
13605
- "pjnew": "$PACKAGE_MANAGER"
13606
- },
13607
- "default": "- Detected from the calling process or `YARN_CLASSIC` if detection fails.",
13655
+ "default": "- pnpm",
13608
13656
  "stability": "experimental",
13609
13657
  "summary": "The Node Package Manager used to execute scripts."
13610
13658
  },
13611
13659
  "immutable": true,
13612
13660
  "locationInModule": {
13613
13661
  "filename": "src/projects/jsii-options.generated.ts",
13614
- "line": 705
13662
+ "line": 704
13615
13663
  },
13616
13664
  "name": "packageManager",
13617
13665
  "optional": true,
@@ -13649,7 +13697,7 @@
13649
13697
  "immutable": true,
13650
13698
  "locationInModule": {
13651
13699
  "filename": "src/projects/jsii-options.generated.ts",
13652
- "line": 1100
13700
+ "line": 1119
13653
13701
  },
13654
13702
  "name": "parent",
13655
13703
  "optional": true,
@@ -13785,7 +13833,7 @@
13785
13833
  "immutable": true,
13786
13834
  "locationInModule": {
13787
13835
  "filename": "src/projects/jsii-options.generated.ts",
13788
- "line": 1095
13836
+ "line": 1114
13789
13837
  },
13790
13838
  "name": "projectTree",
13791
13839
  "optional": true,
@@ -13804,7 +13852,7 @@
13804
13852
  "immutable": true,
13805
13853
  "locationInModule": {
13806
13854
  "filename": "src/projects/jsii-options.generated.ts",
13807
- "line": 1089
13855
+ "line": 1108
13808
13856
  },
13809
13857
  "name": "projenCommand",
13810
13858
  "optional": true,
@@ -13822,7 +13870,7 @@
13822
13870
  "immutable": true,
13823
13871
  "locationInModule": {
13824
13872
  "filename": "src/projects/jsii-options.generated.ts",
13825
- "line": 1005
13873
+ "line": 1024
13826
13874
  },
13827
13875
  "name": "projenCredentials",
13828
13876
  "optional": true,
@@ -13876,7 +13924,7 @@
13876
13924
  "immutable": true,
13877
13925
  "locationInModule": {
13878
13926
  "filename": "src/projects/jsii-options.generated.ts",
13879
- "line": 1082
13927
+ "line": 1101
13880
13928
  },
13881
13929
  "name": "projenrcJson",
13882
13930
  "optional": true,
@@ -13894,7 +13942,7 @@
13894
13942
  "immutable": true,
13895
13943
  "locationInModule": {
13896
13944
  "filename": "src/projects/jsii-options.generated.ts",
13897
- "line": 1076
13945
+ "line": 1095
13898
13946
  },
13899
13947
  "name": "projenrcJsonOptions",
13900
13948
  "optional": true,
@@ -14136,7 +14184,7 @@
14136
14184
  "immutable": true,
14137
14185
  "locationInModule": {
14138
14186
  "filename": "src/projects/jsii-options.generated.ts",
14139
- "line": 999
14187
+ "line": 1018
14140
14188
  },
14141
14189
  "name": "readme",
14142
14190
  "optional": true,
@@ -14388,7 +14436,7 @@
14388
14436
  "immutable": true,
14389
14437
  "locationInModule": {
14390
14438
  "filename": "src/projects/jsii-options.generated.ts",
14391
- "line": 1070
14439
+ "line": 1089
14392
14440
  },
14393
14441
  "name": "renovatebot",
14394
14442
  "optional": true,
@@ -14406,7 +14454,7 @@
14406
14454
  "immutable": true,
14407
14455
  "locationInModule": {
14408
14456
  "filename": "src/projects/jsii-options.generated.ts",
14409
- "line": 1064
14457
+ "line": 1083
14410
14458
  },
14411
14459
  "name": "renovatebotOptions",
14412
14460
  "optional": true,
@@ -14554,7 +14602,7 @@
14554
14602
  "immutable": true,
14555
14603
  "locationInModule": {
14556
14604
  "filename": "src/projects/jsii-options.generated.ts",
14557
- "line": 993
14605
+ "line": 1012
14558
14606
  },
14559
14607
  "name": "stale",
14560
14608
  "optional": true,
@@ -14573,7 +14621,7 @@
14573
14621
  "immutable": true,
14574
14622
  "locationInModule": {
14575
14623
  "filename": "src/projects/jsii-options.generated.ts",
14576
- "line": 986
14624
+ "line": 1005
14577
14625
  },
14578
14626
  "name": "staleOptions",
14579
14627
  "optional": true,
@@ -14665,7 +14713,7 @@
14665
14713
  "immutable": true,
14666
14714
  "locationInModule": {
14667
14715
  "filename": "src/projects/jsii-options.generated.ts",
14668
- "line": 1175
14716
+ "line": 1194
14669
14717
  },
14670
14718
  "name": "typeDoc",
14671
14719
  "optional": true,
@@ -14683,7 +14731,7 @@
14683
14731
  "immutable": true,
14684
14732
  "locationInModule": {
14685
14733
  "filename": "src/projects/jsii-options.generated.ts",
14686
- "line": 1180
14734
+ "line": 1199
14687
14735
  },
14688
14736
  "name": "typeDocOptions",
14689
14737
  "optional": true,
@@ -14763,7 +14811,7 @@
14763
14811
  "immutable": true,
14764
14812
  "locationInModule": {
14765
14813
  "filename": "src/projects/jsii-options.generated.ts",
14766
- "line": 1165
14814
+ "line": 1184
14767
14815
  },
14768
14816
  "name": "vitest",
14769
14817
  "optional": true,
@@ -14781,7 +14829,7 @@
14781
14829
  "immutable": true,
14782
14830
  "locationInModule": {
14783
14831
  "filename": "src/projects/jsii-options.generated.ts",
14784
- "line": 1170
14832
+ "line": 1189
14785
14833
  },
14786
14834
  "name": "vitestOptions",
14787
14835
  "optional": true,
@@ -14800,7 +14848,7 @@
14800
14848
  "immutable": true,
14801
14849
  "locationInModule": {
14802
14850
  "filename": "src/projects/jsii-options.generated.ts",
14803
- "line": 979
14851
+ "line": 998
14804
14852
  },
14805
14853
  "name": "vscode",
14806
14854
  "optional": true,
@@ -15873,7 +15921,7 @@
15873
15921
  },
15874
15922
  "locationInModule": {
15875
15923
  "filename": "src/project-generator.ts",
15876
- "line": 689
15924
+ "line": 737
15877
15925
  },
15878
15926
  "name": "preSynthesize",
15879
15927
  "overrides": "projen.Component"
@@ -17272,7 +17320,7 @@
17272
17320
  "immutable": true,
17273
17321
  "locationInModule": {
17274
17322
  "filename": "src/projects/typescript-options.generated.ts",
17275
- "line": 1036
17323
+ "line": 1055
17276
17324
  },
17277
17325
  "name": "name",
17278
17326
  "type": {
@@ -17289,7 +17337,7 @@
17289
17337
  "immutable": true,
17290
17338
  "locationInModule": {
17291
17339
  "filename": "src/projects/typescript-options.generated.ts",
17292
- "line": 868
17340
+ "line": 887
17293
17341
  },
17294
17342
  "name": "addPackageManagerToDevEngines",
17295
17343
  "optional": true,
@@ -17308,7 +17356,7 @@
17308
17356
  "immutable": true,
17309
17357
  "locationInModule": {
17310
17358
  "filename": "src/projects/typescript-options.generated.ts",
17311
- "line": 862
17359
+ "line": 881
17312
17360
  },
17313
17361
  "name": "allowLibraryDependencies",
17314
17362
  "optional": true,
@@ -17327,7 +17375,7 @@
17327
17375
  "immutable": true,
17328
17376
  "locationInModule": {
17329
17377
  "filename": "src/projects/typescript-options.generated.ts",
17330
- "line": 854
17378
+ "line": 873
17331
17379
  },
17332
17380
  "name": "allowScripts",
17333
17381
  "optional": true,
@@ -17404,7 +17452,7 @@
17404
17452
  "immutable": true,
17405
17453
  "locationInModule": {
17406
17454
  "filename": "src/projects/typescript-options.generated.ts",
17407
- "line": 824
17455
+ "line": 843
17408
17456
  },
17409
17457
  "name": "authorEmail",
17410
17458
  "optional": true,
@@ -17421,7 +17469,7 @@
17421
17469
  "immutable": true,
17422
17470
  "locationInModule": {
17423
17471
  "filename": "src/projects/typescript-options.generated.ts",
17424
- "line": 819
17472
+ "line": 838
17425
17473
  },
17426
17474
  "name": "authorName",
17427
17475
  "optional": true,
@@ -17438,7 +17486,7 @@
17438
17486
  "immutable": true,
17439
17487
  "locationInModule": {
17440
17488
  "filename": "src/projects/typescript-options.generated.ts",
17441
- "line": 814
17489
+ "line": 833
17442
17490
  },
17443
17491
  "name": "authorOrganization",
17444
17492
  "optional": true,
@@ -17455,7 +17503,7 @@
17455
17503
  "immutable": true,
17456
17504
  "locationInModule": {
17457
17505
  "filename": "src/projects/typescript-options.generated.ts",
17458
- "line": 809
17506
+ "line": 828
17459
17507
  },
17460
17508
  "name": "authorUrl",
17461
17509
  "optional": true,
@@ -17473,7 +17521,7 @@
17473
17521
  "immutable": true,
17474
17522
  "locationInModule": {
17475
17523
  "filename": "src/projects/typescript-options.generated.ts",
17476
- "line": 954
17524
+ "line": 973
17477
17525
  },
17478
17526
  "name": "autoApproveOptions",
17479
17527
  "optional": true,
@@ -17510,7 +17558,7 @@
17510
17558
  "immutable": true,
17511
17559
  "locationInModule": {
17512
17560
  "filename": "src/projects/typescript-options.generated.ts",
17513
- "line": 804
17561
+ "line": 823
17514
17562
  },
17515
17563
  "name": "autoDetectBin",
17516
17564
  "optional": true,
@@ -17529,7 +17577,7 @@
17529
17577
  "immutable": true,
17530
17578
  "locationInModule": {
17531
17579
  "filename": "src/projects/typescript-options.generated.ts",
17532
- "line": 948
17580
+ "line": 967
17533
17581
  },
17534
17582
  "name": "autoMerge",
17535
17583
  "optional": true,
@@ -17548,7 +17596,7 @@
17548
17596
  "immutable": true,
17549
17597
  "locationInModule": {
17550
17598
  "filename": "src/projects/typescript-options.generated.ts",
17551
- "line": 940
17599
+ "line": 959
17552
17600
  },
17553
17601
  "name": "autoMergeOptions",
17554
17602
  "optional": true,
@@ -17566,7 +17614,7 @@
17566
17614
  "immutable": true,
17567
17615
  "locationInModule": {
17568
17616
  "filename": "src/projects/typescript-options.generated.ts",
17569
- "line": 798
17617
+ "line": 817
17570
17618
  },
17571
17619
  "name": "bin",
17572
17620
  "optional": true,
@@ -17624,7 +17672,7 @@
17624
17672
  "immutable": true,
17625
17673
  "locationInModule": {
17626
17674
  "filename": "src/projects/typescript-options.generated.ts",
17627
- "line": 790
17675
+ "line": 809
17628
17676
  },
17629
17677
  "name": "bugsEmail",
17630
17678
  "optional": true,
@@ -17641,7 +17689,7 @@
17641
17689
  "immutable": true,
17642
17690
  "locationInModule": {
17643
17691
  "filename": "src/projects/typescript-options.generated.ts",
17644
- "line": 785
17692
+ "line": 804
17645
17693
  },
17646
17694
  "name": "bugsUrl",
17647
17695
  "optional": true,
@@ -17713,7 +17761,7 @@
17713
17761
  "immutable": true,
17714
17762
  "locationInModule": {
17715
17763
  "filename": "src/projects/typescript-options.generated.ts",
17716
- "line": 780
17764
+ "line": 799
17717
17765
  },
17718
17766
  "name": "bundledDeps",
17719
17767
  "optional": true,
@@ -17753,7 +17801,7 @@
17753
17801
  "immutable": true,
17754
17802
  "locationInModule": {
17755
17803
  "filename": "src/projects/typescript-options.generated.ts",
17756
- "line": 765
17804
+ "line": 784
17757
17805
  },
17758
17806
  "name": "bunVersion",
17759
17807
  "optional": true,
@@ -17790,7 +17838,7 @@
17790
17838
  "immutable": true,
17791
17839
  "locationInModule": {
17792
17840
  "filename": "src/projects/typescript-options.generated.ts",
17793
- "line": 932
17841
+ "line": 951
17794
17842
  },
17795
17843
  "name": "clobber",
17796
17844
  "optional": true,
@@ -17809,7 +17857,7 @@
17809
17857
  "immutable": true,
17810
17858
  "locationInModule": {
17811
17859
  "filename": "src/projects/typescript-options.generated.ts",
17812
- "line": 759
17860
+ "line": 778
17813
17861
  },
17814
17862
  "name": "codeArtifactOptions",
17815
17863
  "optional": true,
@@ -17863,7 +17911,7 @@
17863
17911
  "immutable": true,
17864
17912
  "locationInModule": {
17865
17913
  "filename": "src/projects/typescript-options.generated.ts",
17866
- "line": 1029
17914
+ "line": 1048
17867
17915
  },
17868
17916
  "name": "commitGenerated",
17869
17917
  "optional": true,
@@ -17909,6 +17957,25 @@
17909
17957
  "primitive": "string"
17910
17958
  }
17911
17959
  },
17960
+ {
17961
+ "abstract": true,
17962
+ "docs": {
17963
+ "default": "- false, unless `yarnBerryOptions.dedupePackages` is set",
17964
+ "remarks": "Deduplication prevents multiple versions of the same package from being\ninstalled, if a single version can satisfy all requested version ranges.\nThis prevents version proliferation and reduces the size of the dependency\ntree.\n\nThe behavior depends on the package manager:\n- npm: runs `npm dedupe` after every mutating install.\n- pnpm: runs `pnpm dedupe` after every mutating install.\n- Yarn Berry: runs `yarn dedupe` after every mutating install. If\n `yarnBerryOptions.dedupePackages` is set, only the listed packages are\n deduplicated.\n- Yarn Classic: `yarn install` already deduplicates, so the task only\n prints an informational message.\n- Bun: not supported, enabling this option throws an error.",
17965
+ "stability": "experimental",
17966
+ "summary": "Add a `dedupe` task that deduplicates project dependencies."
17967
+ },
17968
+ "immutable": true,
17969
+ "locationInModule": {
17970
+ "filename": "src/projects/typescript-options.generated.ts",
17971
+ "line": 771
17972
+ },
17973
+ "name": "dedupeDeps",
17974
+ "optional": true,
17975
+ "type": {
17976
+ "primitive": "boolean"
17977
+ }
17978
+ },
17912
17979
  {
17913
17980
  "abstract": true,
17914
17981
  "docs": {
@@ -17941,7 +18008,7 @@
17941
18008
  "immutable": true,
17942
18009
  "locationInModule": {
17943
18010
  "filename": "src/projects/typescript-options.generated.ts",
17944
- "line": 752
18011
+ "line": 751
17945
18012
  },
17946
18013
  "name": "deleteOrphanedLockFiles",
17947
18014
  "optional": true,
@@ -18000,7 +18067,7 @@
18000
18067
  "immutable": true,
18001
18068
  "locationInModule": {
18002
18069
  "filename": "src/projects/typescript-options.generated.ts",
18003
- "line": 742
18070
+ "line": 741
18004
18071
  },
18005
18072
  "name": "deps",
18006
18073
  "optional": true,
@@ -18063,7 +18130,7 @@
18063
18130
  "immutable": true,
18064
18131
  "locationInModule": {
18065
18132
  "filename": "src/projects/typescript-options.generated.ts",
18066
- "line": 729
18133
+ "line": 728
18067
18134
  },
18068
18135
  "name": "description",
18069
18136
  "optional": true,
@@ -18081,7 +18148,7 @@
18081
18148
  "immutable": true,
18082
18149
  "locationInModule": {
18083
18150
  "filename": "src/projects/typescript-options.generated.ts",
18084
- "line": 926
18151
+ "line": 945
18085
18152
  },
18086
18153
  "name": "devContainer",
18087
18154
  "optional": true,
@@ -18103,7 +18170,7 @@
18103
18170
  "immutable": true,
18104
18171
  "locationInModule": {
18105
18172
  "filename": "src/projects/typescript-options.generated.ts",
18106
- "line": 721
18173
+ "line": 720
18107
18174
  },
18108
18175
  "name": "devDeps",
18109
18176
  "optional": true,
@@ -18125,7 +18192,7 @@
18125
18192
  "immutable": true,
18126
18193
  "locationInModule": {
18127
18194
  "filename": "src/projects/typescript-options.generated.ts",
18128
- "line": 704
18195
+ "line": 703
18129
18196
  },
18130
18197
  "name": "devEngines",
18131
18198
  "optional": true,
@@ -18215,7 +18282,7 @@
18215
18282
  "immutable": true,
18216
18283
  "locationInModule": {
18217
18284
  "filename": "src/projects/typescript-options.generated.ts",
18218
- "line": 696
18285
+ "line": 695
18219
18286
  },
18220
18287
  "name": "entrypoint",
18221
18288
  "optional": true,
@@ -18252,7 +18319,7 @@
18252
18319
  "immutable": true,
18253
18320
  "locationInModule": {
18254
18321
  "filename": "src/projects/typescript-options.generated.ts",
18255
- "line": 920
18322
+ "line": 939
18256
18323
  },
18257
18324
  "name": "github",
18258
18325
  "optional": true,
@@ -18270,7 +18337,7 @@
18270
18337
  "immutable": true,
18271
18338
  "locationInModule": {
18272
18339
  "filename": "src/projects/typescript-options.generated.ts",
18273
- "line": 913
18340
+ "line": 932
18274
18341
  },
18275
18342
  "name": "githubOptions",
18276
18343
  "optional": true,
@@ -18309,7 +18376,7 @@
18309
18376
  "immutable": true,
18310
18377
  "locationInModule": {
18311
18378
  "filename": "src/projects/typescript-options.generated.ts",
18312
- "line": 1023
18379
+ "line": 1042
18313
18380
  },
18314
18381
  "name": "gitIgnoreOptions",
18315
18382
  "optional": true,
@@ -18326,7 +18393,7 @@
18326
18393
  "immutable": true,
18327
18394
  "locationInModule": {
18328
18395
  "filename": "src/projects/typescript-options.generated.ts",
18329
- "line": 1018
18396
+ "line": 1037
18330
18397
  },
18331
18398
  "name": "gitOptions",
18332
18399
  "optional": true,
@@ -18344,7 +18411,7 @@
18344
18411
  "immutable": true,
18345
18412
  "locationInModule": {
18346
18413
  "filename": "src/projects/typescript-options.generated.ts",
18347
- "line": 907
18414
+ "line": 926
18348
18415
  },
18349
18416
  "name": "gitpod",
18350
18417
  "optional": true,
@@ -18362,7 +18429,7 @@
18362
18429
  "immutable": true,
18363
18430
  "locationInModule": {
18364
18431
  "filename": "src/projects/typescript-options.generated.ts",
18365
- "line": 1041
18432
+ "line": 1060
18366
18433
  },
18367
18434
  "name": "homebrew",
18368
18435
  "optional": true,
@@ -18380,7 +18447,7 @@
18380
18447
  "immutable": true,
18381
18448
  "locationInModule": {
18382
18449
  "filename": "src/projects/typescript-options.generated.ts",
18383
- "line": 1046
18450
+ "line": 1065
18384
18451
  },
18385
18452
  "name": "homebrewOptions",
18386
18453
  "optional": true,
@@ -18397,7 +18464,7 @@
18397
18464
  "immutable": true,
18398
18465
  "locationInModule": {
18399
18466
  "filename": "src/projects/typescript-options.generated.ts",
18400
- "line": 689
18467
+ "line": 688
18401
18468
  },
18402
18469
  "name": "homepage",
18403
18470
  "optional": true,
@@ -18432,7 +18499,7 @@
18432
18499
  "immutable": true,
18433
18500
  "locationInModule": {
18434
18501
  "filename": "src/projects/typescript-options.generated.ts",
18435
- "line": 684
18502
+ "line": 683
18436
18503
  },
18437
18504
  "name": "keywords",
18438
18505
  "optional": true,
@@ -18474,7 +18541,7 @@
18474
18541
  "immutable": true,
18475
18542
  "locationInModule": {
18476
18543
  "filename": "src/projects/typescript-options.generated.ts",
18477
- "line": 679
18544
+ "line": 678
18478
18545
  },
18479
18546
  "name": "license",
18480
18547
  "optional": true,
@@ -18492,7 +18559,7 @@
18492
18559
  "immutable": true,
18493
18560
  "locationInModule": {
18494
18561
  "filename": "src/projects/typescript-options.generated.ts",
18495
- "line": 671
18562
+ "line": 670
18496
18563
  },
18497
18564
  "name": "licensed",
18498
18565
  "optional": true,
@@ -18510,7 +18577,7 @@
18510
18577
  "immutable": true,
18511
18578
  "locationInModule": {
18512
18579
  "filename": "src/projects/typescript-options.generated.ts",
18513
- "line": 1013
18580
+ "line": 1032
18514
18581
  },
18515
18582
  "name": "logging",
18516
18583
  "optional": true,
@@ -18548,7 +18615,7 @@
18548
18615
  "immutable": true,
18549
18616
  "locationInModule": {
18550
18617
  "filename": "src/projects/typescript-options.generated.ts",
18551
- "line": 665
18618
+ "line": 664
18552
18619
  },
18553
18620
  "name": "maxNodeVersion",
18554
18621
  "optional": true,
@@ -18586,7 +18653,7 @@
18586
18653
  "immutable": true,
18587
18654
  "locationInModule": {
18588
18655
  "filename": "src/projects/typescript-options.generated.ts",
18589
- "line": 654
18656
+ "line": 653
18590
18657
  },
18591
18658
  "name": "minNodeVersion",
18592
18659
  "optional": true,
@@ -18604,7 +18671,7 @@
18604
18671
  "immutable": true,
18605
18672
  "locationInModule": {
18606
18673
  "filename": "src/projects/typescript-options.generated.ts",
18607
- "line": 1051
18674
+ "line": 1070
18608
18675
  },
18609
18676
  "name": "mise",
18610
18677
  "optional": true,
@@ -18622,7 +18689,7 @@
18622
18689
  "immutable": true,
18623
18690
  "locationInModule": {
18624
18691
  "filename": "src/projects/typescript-options.generated.ts",
18625
- "line": 1056
18692
+ "line": 1075
18626
18693
  },
18627
18694
  "name": "miseOptions",
18628
18695
  "optional": true,
@@ -18659,7 +18726,7 @@
18659
18726
  "immutable": true,
18660
18727
  "locationInModule": {
18661
18728
  "filename": "src/projects/typescript-options.generated.ts",
18662
- "line": 639
18729
+ "line": 638
18663
18730
  },
18664
18731
  "name": "npmAccess",
18665
18732
  "optional": true,
@@ -18732,7 +18799,7 @@
18732
18799
  "immutable": true,
18733
18800
  "locationInModule": {
18734
18801
  "filename": "src/projects/typescript-options.generated.ts",
18735
- "line": 631
18802
+ "line": 630
18736
18803
  },
18737
18804
  "name": "npmProvenance",
18738
18805
  "optional": true,
@@ -18751,7 +18818,7 @@
18751
18818
  "immutable": true,
18752
18819
  "locationInModule": {
18753
18820
  "filename": "src/projects/typescript-options.generated.ts",
18754
- "line": 620
18821
+ "line": 619
18755
18822
  },
18756
18823
  "name": "npmRegistryUrl",
18757
18824
  "optional": true,
@@ -18769,7 +18836,7 @@
18769
18836
  "immutable": true,
18770
18837
  "locationInModule": {
18771
18838
  "filename": "src/projects/typescript-options.generated.ts",
18772
- "line": 613
18839
+ "line": 612
18773
18840
  },
18774
18841
  "name": "npmTokenSecret",
18775
18842
  "optional": true,
@@ -18787,7 +18854,7 @@
18787
18854
  "immutable": true,
18788
18855
  "locationInModule": {
18789
18856
  "filename": "src/projects/typescript-options.generated.ts",
18790
- "line": 607
18857
+ "line": 606
18791
18858
  },
18792
18859
  "name": "npmTrustedPublishing",
18793
18860
  "optional": true,
@@ -18806,7 +18873,7 @@
18806
18873
  "immutable": true,
18807
18874
  "locationInModule": {
18808
18875
  "filename": "src/projects/typescript-options.generated.ts",
18809
- "line": 1007
18876
+ "line": 1026
18810
18877
  },
18811
18878
  "name": "outdir",
18812
18879
  "optional": true,
@@ -18835,17 +18902,14 @@
18835
18902
  {
18836
18903
  "abstract": true,
18837
18904
  "docs": {
18838
- "custom": {
18839
- "pjnew": "$PACKAGE_MANAGER"
18840
- },
18841
- "default": "- Detected from the calling process or `YARN_CLASSIC` if detection fails.",
18905
+ "default": "- pnpm",
18842
18906
  "stability": "experimental",
18843
18907
  "summary": "The Node Package Manager used to execute scripts."
18844
18908
  },
18845
18909
  "immutable": true,
18846
18910
  "locationInModule": {
18847
18911
  "filename": "src/projects/typescript-options.generated.ts",
18848
- "line": 601
18912
+ "line": 600
18849
18913
  },
18850
18914
  "name": "packageManager",
18851
18915
  "optional": true,
@@ -18883,7 +18947,7 @@
18883
18947
  "immutable": true,
18884
18948
  "locationInModule": {
18885
18949
  "filename": "src/projects/typescript-options.generated.ts",
18886
- "line": 996
18950
+ "line": 1015
18887
18951
  },
18888
18952
  "name": "parent",
18889
18953
  "optional": true,
@@ -19019,7 +19083,7 @@
19019
19083
  "immutable": true,
19020
19084
  "locationInModule": {
19021
19085
  "filename": "src/projects/typescript-options.generated.ts",
19022
- "line": 991
19086
+ "line": 1010
19023
19087
  },
19024
19088
  "name": "projectTree",
19025
19089
  "optional": true,
@@ -19038,7 +19102,7 @@
19038
19102
  "immutable": true,
19039
19103
  "locationInModule": {
19040
19104
  "filename": "src/projects/typescript-options.generated.ts",
19041
- "line": 985
19105
+ "line": 1004
19042
19106
  },
19043
19107
  "name": "projenCommand",
19044
19108
  "optional": true,
@@ -19056,7 +19120,7 @@
19056
19120
  "immutable": true,
19057
19121
  "locationInModule": {
19058
19122
  "filename": "src/projects/typescript-options.generated.ts",
19059
- "line": 901
19123
+ "line": 920
19060
19124
  },
19061
19125
  "name": "projenCredentials",
19062
19126
  "optional": true,
@@ -19110,7 +19174,7 @@
19110
19174
  "immutable": true,
19111
19175
  "locationInModule": {
19112
19176
  "filename": "src/projects/typescript-options.generated.ts",
19113
- "line": 978
19177
+ "line": 997
19114
19178
  },
19115
19179
  "name": "projenrcJson",
19116
19180
  "optional": true,
@@ -19128,7 +19192,7 @@
19128
19192
  "immutable": true,
19129
19193
  "locationInModule": {
19130
19194
  "filename": "src/projects/typescript-options.generated.ts",
19131
- "line": 972
19195
+ "line": 991
19132
19196
  },
19133
19197
  "name": "projenrcJsonOptions",
19134
19198
  "optional": true,
@@ -19298,7 +19362,7 @@
19298
19362
  "immutable": true,
19299
19363
  "locationInModule": {
19300
19364
  "filename": "src/projects/typescript-options.generated.ts",
19301
- "line": 895
19365
+ "line": 914
19302
19366
  },
19303
19367
  "name": "readme",
19304
19368
  "optional": true,
@@ -19550,7 +19614,7 @@
19550
19614
  "immutable": true,
19551
19615
  "locationInModule": {
19552
19616
  "filename": "src/projects/typescript-options.generated.ts",
19553
- "line": 966
19617
+ "line": 985
19554
19618
  },
19555
19619
  "name": "renovatebot",
19556
19620
  "optional": true,
@@ -19568,7 +19632,7 @@
19568
19632
  "immutable": true,
19569
19633
  "locationInModule": {
19570
19634
  "filename": "src/projects/typescript-options.generated.ts",
19571
- "line": 960
19635
+ "line": 979
19572
19636
  },
19573
19637
  "name": "renovatebotOptions",
19574
19638
  "optional": true,
@@ -19699,7 +19763,7 @@
19699
19763
  "immutable": true,
19700
19764
  "locationInModule": {
19701
19765
  "filename": "src/projects/typescript-options.generated.ts",
19702
- "line": 889
19766
+ "line": 908
19703
19767
  },
19704
19768
  "name": "stale",
19705
19769
  "optional": true,
@@ -19718,7 +19782,7 @@
19718
19782
  "immutable": true,
19719
19783
  "locationInModule": {
19720
19784
  "filename": "src/projects/typescript-options.generated.ts",
19721
- "line": 882
19785
+ "line": 901
19722
19786
  },
19723
19787
  "name": "staleOptions",
19724
19788
  "optional": true,
@@ -19853,7 +19917,7 @@
19853
19917
  "immutable": true,
19854
19918
  "locationInModule": {
19855
19919
  "filename": "src/projects/typescript-options.generated.ts",
19856
- "line": 1061
19920
+ "line": 1080
19857
19921
  },
19858
19922
  "name": "vitest",
19859
19923
  "optional": true,
@@ -19871,7 +19935,7 @@
19871
19935
  "immutable": true,
19872
19936
  "locationInModule": {
19873
19937
  "filename": "src/projects/typescript-options.generated.ts",
19874
- "line": 1066
19938
+ "line": 1085
19875
19939
  },
19876
19940
  "name": "vitestOptions",
19877
19941
  "optional": true,
@@ -19890,7 +19954,7 @@
19890
19954
  "immutable": true,
19891
19955
  "locationInModule": {
19892
19956
  "filename": "src/projects/typescript-options.generated.ts",
19893
- "line": 875
19957
+ "line": 894
19894
19958
  },
19895
19959
  "name": "vscode",
19896
19960
  "optional": true,
@@ -20805,6 +20869,6 @@
20805
20869
  "symbolId": "src/components/vitest:VitestOptions"
20806
20870
  }
20807
20871
  },
20808
- "version": "0.3.1",
20809
- "fingerprint": "OboJ/CsbE3GZakKuu67UPhxSaLQ2gP0DFVVI11kqmcM="
20872
+ "version": "0.3.3",
20873
+ "fingerprint": "BAporLeJl/vA+IAy5aK8gYV29YRMyn0LbBnQgrUrfnc="
20810
20874
  }