projen 0.99.28 → 0.99.30

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 (144) hide show
  1. package/.jsii +482 -177
  2. package/lib/ai-instructions.js +2 -2
  3. package/lib/awscdk/auto-discover.js +6 -6
  4. package/lib/awscdk/awscdk-app-java.js +1 -1
  5. package/lib/awscdk/awscdk-app-py.js +1 -1
  6. package/lib/awscdk/awscdk-app-ts.js +1 -1
  7. package/lib/awscdk/awscdk-construct.js +2 -2
  8. package/lib/awscdk/awscdk-deps-java.js +1 -1
  9. package/lib/awscdk/awscdk-deps-js.js +1 -1
  10. package/lib/awscdk/awscdk-deps-py.js +1 -1
  11. package/lib/awscdk/awscdk-deps.js +1 -1
  12. package/lib/awscdk/cdk-config.js +4 -4
  13. package/lib/awscdk/cdk-tasks.js +1 -1
  14. package/lib/awscdk/integration-test.js +1 -1
  15. package/lib/awscdk/lambda-extension.js +1 -1
  16. package/lib/awscdk/lambda-function.js +2 -2
  17. package/lib/build/build-workflow.js +1 -1
  18. package/lib/cdk/auto-discover-base.js +2 -2
  19. package/lib/cdk/construct-lib.js +1 -1
  20. package/lib/cdk/integration-test-base.js +1 -1
  21. package/lib/cdk/jsii-docgen.js +1 -1
  22. package/lib/cdk/jsii-project.js +3 -3
  23. package/lib/cdk8s/auto-discover.js +2 -2
  24. package/lib/cdk8s/cdk8s-app-py.js +1 -1
  25. package/lib/cdk8s/cdk8s-app-ts.js +1 -1
  26. package/lib/cdk8s/cdk8s-construct.js +1 -1
  27. package/lib/cdk8s/cdk8s-deps-py.js +1 -1
  28. package/lib/cdk8s/cdk8s-deps.js +1 -1
  29. package/lib/cdk8s/integration-test.js +1 -1
  30. package/lib/cdktf/cdktf-construct.js +1 -1
  31. package/lib/circleci/circleci.js +1 -1
  32. package/lib/cli/macros.js +43 -1
  33. package/lib/component.js +1 -1
  34. package/lib/dependencies.js +1 -1
  35. package/lib/dev-env.js +1 -1
  36. package/lib/docker-compose/docker-compose-service.js +1 -1
  37. package/lib/docker-compose/docker-compose.js +1 -1
  38. package/lib/file.js +1 -1
  39. package/lib/gitattributes.js +1 -1
  40. package/lib/github/actions-provider.d.ts +1 -1
  41. package/lib/github/actions-provider.js +3 -3
  42. package/lib/github/auto-approve.js +5 -5
  43. package/lib/github/auto-merge.js +1 -1
  44. package/lib/github/auto-queue.js +1 -1
  45. package/lib/github/dependabot.js +1 -1
  46. package/lib/github/github-credentials.js +3 -3
  47. package/lib/github/github-project.js +1 -1
  48. package/lib/github/github.js +1 -1
  49. package/lib/github/merge-queue.js +1 -1
  50. package/lib/github/mergify.js +1 -1
  51. package/lib/github/pr-template.js +1 -1
  52. package/lib/github/pull-request-backport.js +3 -3
  53. package/lib/github/pull-request-lint.js +1 -1
  54. package/lib/github/stale.js +1 -1
  55. package/lib/github/task-workflow-job.js +1 -1
  56. package/lib/github/task-workflow.js +1 -1
  57. package/lib/github/workflow-actions.js +3 -3
  58. package/lib/github/workflow-jobs.js +1 -1
  59. package/lib/github/workflow-steps.js +3 -3
  60. package/lib/github/workflows.js +7 -4
  61. package/lib/gitlab/configuration.js +1 -1
  62. package/lib/gitlab/gitlab-configuration.js +1 -1
  63. package/lib/gitlab/nested-configuration.js +1 -1
  64. package/lib/gitpod.js +1 -1
  65. package/lib/ignore-file.js +1 -1
  66. package/lib/ini.js +1 -1
  67. package/lib/inventory.js +4 -4
  68. package/lib/java/java-project.js +1 -1
  69. package/lib/java/junit.js +1 -1
  70. package/lib/java/maven-compile.js +1 -1
  71. package/lib/java/maven-packaging.js +1 -1
  72. package/lib/java/maven-sample.js +1 -1
  73. package/lib/java/pom.js +2 -2
  74. package/lib/java/projenrc.js +1 -1
  75. package/lib/javascript/biome/biome.js +1 -1
  76. package/lib/javascript/bundler.js +1 -1
  77. package/lib/javascript/eslint.js +1 -1
  78. package/lib/javascript/jest.js +4 -4
  79. package/lib/javascript/license-checker.js +1 -1
  80. package/lib/javascript/node-package.d.ts +80 -1
  81. package/lib/javascript/node-package.js +166 -5
  82. package/lib/javascript/node-project.js +8 -7
  83. package/lib/javascript/npm-config.js +1 -1
  84. package/lib/javascript/prettier.js +1 -1
  85. package/lib/javascript/projenrc.js +1 -1
  86. package/lib/javascript/typescript-config.js +2 -2
  87. package/lib/javascript/upgrade-dependencies.js +2 -2
  88. package/lib/javascript/yarnrc.js +1 -1
  89. package/lib/json-patch.js +1 -1
  90. package/lib/json.js +1 -1
  91. package/lib/license.js +1 -1
  92. package/lib/logger.js +1 -1
  93. package/lib/makefile.js +1 -1
  94. package/lib/object-file.js +1 -1
  95. package/lib/project-build.js +1 -1
  96. package/lib/project-tree.js +1 -1
  97. package/lib/project.js +1 -1
  98. package/lib/projects.js +1 -1
  99. package/lib/projenrc-json.js +2 -2
  100. package/lib/projenrc.js +1 -1
  101. package/lib/python/pip.js +1 -1
  102. package/lib/python/poetry.js +2 -2
  103. package/lib/python/projenrc.js +1 -1
  104. package/lib/python/pyproject-toml-file.js +1 -1
  105. package/lib/python/pytest-sample.js +1 -1
  106. package/lib/python/pytest.js +1 -1
  107. package/lib/python/python-project.js +1 -1
  108. package/lib/python/python-sample.js +1 -1
  109. package/lib/python/requirements-file.js +1 -1
  110. package/lib/python/setuppy.js +1 -1
  111. package/lib/python/setuptools.js +1 -1
  112. package/lib/python/uv.js +1 -1
  113. package/lib/python/venv.js +1 -1
  114. package/lib/readme.js +1 -1
  115. package/lib/release/publisher.js +8 -11
  116. package/lib/release/release-trigger.js +1 -1
  117. package/lib/release/release.js +1 -1
  118. package/lib/renovatebot.js +1 -1
  119. package/lib/sample-file.js +2 -2
  120. package/lib/semver.js +1 -1
  121. package/lib/source-code.js +1 -1
  122. package/lib/task-runtime.js +1 -1
  123. package/lib/task.js +1 -1
  124. package/lib/tasks.js +1 -1
  125. package/lib/testing.js +1 -1
  126. package/lib/textfile.js +1 -1
  127. package/lib/toml.js +1 -1
  128. package/lib/typescript/projenrc-ts.js +1 -1
  129. package/lib/typescript/projenrc.js +1 -1
  130. package/lib/typescript/typescript-typedoc.js +1 -1
  131. package/lib/typescript/typescript.js +6 -6
  132. package/lib/version.js +2 -2
  133. package/lib/vscode/devcontainer.js +1 -1
  134. package/lib/vscode/extensions.js +1 -1
  135. package/lib/vscode/launch-config.js +1 -1
  136. package/lib/vscode/settings.js +1 -1
  137. package/lib/vscode/vscode.js +1 -1
  138. package/lib/web/next.js +3 -3
  139. package/lib/web/postcss.js +1 -1
  140. package/lib/web/react.js +4 -4
  141. package/lib/web/tailwind.js +1 -1
  142. package/lib/xmlfile.js +1 -1
  143. package/lib/yaml.js +1 -1
  144. package/package.json +6 -1
@@ -133,7 +133,8 @@ export interface NodePackageOptions {
133
133
  /**
134
134
  * The Node Package Manager used to execute scripts
135
135
  *
136
- * @default NodePackageManager.YARN_CLASSIC
136
+ * @default - Detected from the calling process or `YARN_CLASSIC` if detection fails.
137
+ * @pjnew $PACKAGE_MANAGER
137
138
  */
138
139
  readonly packageManager?: NodePackageManager;
139
140
  /**
@@ -304,6 +305,81 @@ export interface NodePackageOptions {
304
305
  * @default - Yarn Berry v4 with all default options
305
306
  */
306
307
  readonly yarnBerryOptions?: YarnBerryOptions;
308
+ /**
309
+ * Configure the `devEngines` field in `package.json`.
310
+ *
311
+ * The `devEngines.packageManager` field is automatically populated based on
312
+ * the resolved `packageManager` value. Any fields provided here are merged
313
+ * with the auto-populated `packageManager` entry.
314
+ *
315
+ * @see https://docs.npmjs.com/cli/v10/configuring-npm/package-json#devengines
316
+ */
317
+ readonly devEngines?: DevEngines;
318
+ /**
319
+ * Automatically add the resolved `packageManager` to `devEngines.packageManager`
320
+ * in `package.json`.
321
+ *
322
+ * @default true
323
+ */
324
+ readonly addPackageManagerToDevEngines?: boolean;
325
+ /**
326
+ * Automatically delete lockfiles from package managers that are not the
327
+ * active one. Only triggered when the lockfile for the configured package
328
+ * manager already exists.
329
+ *
330
+ * This is useful when migrating between package managers to avoid conflicts.
331
+ *
332
+ * @default true
333
+ */
334
+ readonly deleteOrphanedLockFiles?: boolean;
335
+ }
336
+ /**
337
+ * A dependency entry for the `devEngines` field in `package.json`.
338
+ */
339
+ export interface DevEngineDependency {
340
+ /**
341
+ * The name of the dependency.
342
+ */
343
+ readonly name: string;
344
+ /**
345
+ * The version range for the dependency.
346
+ *
347
+ * @default "*"
348
+ */
349
+ readonly version?: string;
350
+ /**
351
+ * What action to take if validation fails.
352
+ *
353
+ * @default "error"
354
+ */
355
+ readonly onFail?: "ignore" | "warn" | "error" | "download";
356
+ }
357
+ /**
358
+ * The `devEngines` field in `package.json`.
359
+ *
360
+ * @see https://docs.npmjs.com/cli/v10/configuring-npm/package-json#devengines
361
+ */
362
+ export interface DevEngines {
363
+ /**
364
+ * Supported operating systems.
365
+ */
366
+ readonly os?: DevEngineDependency | DevEngineDependency[];
367
+ /**
368
+ * Supported CPU architectures.
369
+ */
370
+ readonly cpu?: DevEngineDependency | DevEngineDependency[];
371
+ /**
372
+ * Supported C standard libraries.
373
+ */
374
+ readonly libc?: DevEngineDependency | DevEngineDependency[];
375
+ /**
376
+ * Supported JavaScript runtimes.
377
+ */
378
+ readonly runtime?: DevEngineDependency | DevEngineDependency[];
379
+ /**
380
+ * Supported package managers.
381
+ */
382
+ readonly packageManager?: DevEngineDependency | DevEngineDependency[];
307
383
  }
308
384
  /**
309
385
  * Options for authorizing requests to a AWS CodeArtifact npm repository.
@@ -487,6 +563,7 @@ export declare class NodePackage extends Component {
487
563
  private readonly peerDependencyOptions;
488
564
  private readonly _prev?;
489
565
  private _renderedDeps?;
566
+ private readonly _packageManagerExplicit;
490
567
  constructor(project: Project, options?: NodePackageOptions);
491
568
  /**
492
569
  * Defines normal dependencies.
@@ -642,6 +719,8 @@ export declare class NodePackage extends Component {
642
719
  private renderPublishConfig;
643
720
  private renderKeywords;
644
721
  private renderEngines;
722
+ private renderDevEngines;
723
+ private deleteOrphanedLockFiles;
645
724
  private autoDiscoverBinaries;
646
725
  private renderAuthor;
647
726
  private renderBin;