projen 0.99.46 → 0.99.48

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 (146) hide show
  1. package/.jsii +518 -97
  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 +1 -1
  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/component.js +1 -1
  33. package/lib/dependencies.js +5 -4
  34. package/lib/dev-env.js +1 -1
  35. package/lib/docker-compose/docker-compose-service.js +1 -1
  36. package/lib/docker-compose/docker-compose.js +1 -1
  37. package/lib/file.d.ts +15 -0
  38. package/lib/file.js +24 -3
  39. package/lib/gitattributes.js +1 -1
  40. package/lib/github/actions-provider.js +1 -1
  41. package/lib/github/auto-approve.js +1 -1
  42. package/lib/github/auto-merge.js +1 -1
  43. package/lib/github/auto-queue.js +1 -1
  44. package/lib/github/dependabot.d.ts +48 -0
  45. package/lib/github/dependabot.js +5 -2
  46. package/lib/github/github-credentials.js +1 -1
  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 +1 -1
  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 +1 -1
  58. package/lib/github/workflow-jobs.js +1 -1
  59. package/lib/github/workflow-steps.js +1 -1
  60. package/lib/github/workflows.js +1 -1
  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/java/java-project.js +1 -1
  68. package/lib/java/junit.js +1 -1
  69. package/lib/java/maven-compile.js +1 -1
  70. package/lib/java/maven-packaging.js +1 -1
  71. package/lib/java/maven-sample.js +1 -1
  72. package/lib/java/pom.js +2 -2
  73. package/lib/java/projenrc.js +1 -1
  74. package/lib/javascript/biome/biome.js +1 -1
  75. package/lib/javascript/bundler.js +1 -1
  76. package/lib/javascript/eslint.js +1 -1
  77. package/lib/javascript/jest.js +4 -4
  78. package/lib/javascript/license-checker.js +1 -1
  79. package/lib/javascript/node-package.d.ts +52 -3
  80. package/lib/javascript/node-package.js +80 -21
  81. package/lib/javascript/node-project.js +1 -1
  82. package/lib/javascript/npm-config.js +1 -1
  83. package/lib/javascript/prettier.js +1 -1
  84. package/lib/javascript/projenrc.js +1 -1
  85. package/lib/javascript/typescript-config.js +2 -2
  86. package/lib/javascript/upgrade-dependencies.js +2 -2
  87. package/lib/javascript/yarnrc.js +1 -1
  88. package/lib/json-patch.js +1 -1
  89. package/lib/json.js +1 -1
  90. package/lib/license.js +1 -1
  91. package/lib/logger.js +1 -1
  92. package/lib/makefile.js +1 -1
  93. package/lib/object-file.js +1 -1
  94. package/lib/project-build.js +1 -1
  95. package/lib/project-tree.js +1 -1
  96. package/lib/project.js +1 -1
  97. package/lib/projects.js +1 -1
  98. package/lib/projenrc-json.js +2 -2
  99. package/lib/projenrc.js +1 -1
  100. package/lib/python/pip.js +1 -1
  101. package/lib/python/poetry.js +2 -2
  102. package/lib/python/projenrc.js +1 -1
  103. package/lib/python/pyproject-toml-file.js +1 -1
  104. package/lib/python/pytest-sample.js +1 -1
  105. package/lib/python/pytest.js +1 -1
  106. package/lib/python/python-project.js +1 -1
  107. package/lib/python/python-sample.js +1 -1
  108. package/lib/python/requirements-file.js +1 -1
  109. package/lib/python/setuppy.js +1 -1
  110. package/lib/python/setuptools.js +1 -1
  111. package/lib/python/uv.js +1 -1
  112. package/lib/python/venv.js +1 -1
  113. package/lib/readme.js +1 -1
  114. package/lib/release/publisher.js +1 -1
  115. package/lib/release/release-trigger.js +1 -1
  116. package/lib/release/release.js +1 -1
  117. package/lib/renovatebot.d.ts +34 -0
  118. package/lib/renovatebot.js +23 -3
  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/util/diff.d.ts +11 -0
  133. package/lib/util/diff.js +170 -0
  134. package/lib/version.js +2 -2
  135. package/lib/vscode/devcontainer.js +1 -1
  136. package/lib/vscode/extensions.js +1 -1
  137. package/lib/vscode/launch-config.js +1 -1
  138. package/lib/vscode/settings.js +1 -1
  139. package/lib/vscode/vscode.js +1 -1
  140. package/lib/web/next.js +3 -3
  141. package/lib/web/postcss.js +1 -1
  142. package/lib/web/react.js +4 -4
  143. package/lib/web/tailwind.js +1 -1
  144. package/lib/xmlfile.js +1 -1
  145. package/lib/yaml.js +1 -1
  146. package/package.json +4 -4
@@ -700,6 +700,19 @@ export declare class NodePackage extends Component {
700
700
  tryResolveDependencyVersion(dependencyName: string): string | undefined;
701
701
  synthesize(): void;
702
702
  postSynthesize(): void;
703
+ /**
704
+ * Checks whether dependencies need to be installed before dependency
705
+ * resolution.
706
+ *
707
+ * @returns a structured trigger describing the reason, or `undefined` if
708
+ * no install is needed.
709
+ */
710
+ private determineInitialInstallTrigger;
711
+ /**
712
+ * Logs user-facing information about why dependencies are being installed.
713
+ * Emits an info-level summary and debug-level details (reason, diff, resolutions).
714
+ */
715
+ private logInstallTrigger;
703
716
  /**
704
717
  * The command prefix to use when executing binary commands for this package
705
718
  * manager (e.g. `npx`, `pnpm exec`, `yarn`, `bunx`).
@@ -729,9 +742,11 @@ export declare class NodePackage extends Component {
729
742
  private renderDependencies;
730
743
  /**
731
744
  * Resolves any deps that do not have a specified version (e.g. `*`) and
732
- * update `package.json` if needed.
745
+ * updates `package.json` if needed. Does not log or install — the caller
746
+ * is responsible for acting on the returned changes.
733
747
  *
734
- * @returns `true` if package.json was updated or `false` if not.
748
+ * @returns list of human-readable resolution changes, or `undefined` if
749
+ * `package.json` does not exist. An empty array means no changes were made.
735
750
  */
736
751
  private resolveDepsAndWritePackageJson;
737
752
  private renderPackageResolutions;
@@ -752,7 +767,13 @@ export declare class NodePackage extends Component {
752
767
  */
753
768
  private resolveScriptCommand;
754
769
  private readPackageJson;
755
- private installDependencies;
770
+ /**
771
+ * Runs the install or install:ci task. Does not log — the caller is
772
+ * responsible for informing the user before calling this method.
773
+ *
774
+ * @param _trigger the reason for the install, available for subclasses to act on.
775
+ */
776
+ protected installDependencies(_trigger: InstallTrigger): void;
756
777
  /**
757
778
  * Sets the `packageManager` field in `package.json` for corepack-managed
758
779
  * package managers (yarn berry and pnpm).
@@ -848,4 +869,32 @@ export interface YarnBerryOptions {
848
869
  */
849
870
  readonly zeroInstalls?: boolean;
850
871
  }
872
+ /**
873
+ * Why a dependency install was triggered during synthesis.
874
+ */
875
+ export declare enum InstallReason {
876
+ /** The node_modules directory does not exist. */
877
+ NO_NODE_MODULES = "node_modules is missing",
878
+ /** The package.json file was modified during synthesis. */
879
+ PACKAGE_JSON_CHANGED = "package.json has changed",
880
+ /** Wildcard dependency versions were resolved to concrete ranges. */
881
+ DEPS_RESOLVED = "resolved dependency versions changed"
882
+ }
883
+ /**
884
+ * Describes why dependencies need to be installed.
885
+ */
886
+ export interface InstallTrigger {
887
+ /** The reason for the install. */
888
+ readonly reason: InstallReason;
889
+ /**
890
+ * A unified diff of the package.json changes.
891
+ * Only present when reason is `PACKAGE_JSON_CHANGED`.
892
+ */
893
+ readonly diff?: string[];
894
+ /**
895
+ * Human-readable descriptions of resolved dependency version changes.
896
+ * Only present when reason is `DEPS_RESOLVED`.
897
+ */
898
+ readonly resolutions?: string[];
899
+ }
851
900
  export declare function defaultNpmToken(npmToken: string | undefined, registry: string | undefined): string | undefined;