projen 0.103.26 → 0.104.0

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 (176) hide show
  1. package/.jsii +1087 -91
  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 +1 -1
  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 +3 -3
  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/awscdk/private/feature-flags-v2.const.d.ts +1 -1
  18. package/lib/awscdk/private/feature-flags-v2.const.js +2 -2
  19. package/lib/build/build-workflow.js +1 -1
  20. package/lib/cdk/auto-discover-base.js +2 -2
  21. package/lib/cdk/construct-lib.js +1 -1
  22. package/lib/cdk/integration-test-base.js +1 -1
  23. package/lib/cdk/jsii-build.js +1 -1
  24. package/lib/cdk/jsii-docgen.js +1 -1
  25. package/lib/cdk/jsii-project.js +1 -1
  26. package/lib/cdk8s/auto-discover.js +2 -2
  27. package/lib/cdk8s/cdk8s-app-py.js +1 -1
  28. package/lib/cdk8s/cdk8s-app-ts.js +1 -1
  29. package/lib/cdk8s/cdk8s-construct.js +1 -1
  30. package/lib/cdk8s/cdk8s-deps-py.js +1 -1
  31. package/lib/cdk8s/cdk8s-deps.js +1 -1
  32. package/lib/cdk8s/integration-test.js +1 -1
  33. package/lib/cdktf/cdktf-construct.js +1 -1
  34. package/lib/cdktn/cdktn-app-ts.js +1 -1
  35. package/lib/cdktn/cdktn-config.js +1 -1
  36. package/lib/cdktn/cdktn-construct.js +1 -1
  37. package/lib/cdktn/cdktn-deps.js +1 -1
  38. package/lib/cdktn/cdktn-tasks.js +1 -1
  39. package/lib/circleci/circleci.js +1 -1
  40. package/lib/circleci/model.d.ts +5 -2
  41. package/lib/circleci/model.js +1 -1
  42. package/lib/component.js +2 -2
  43. package/lib/dependencies.js +1 -1
  44. package/lib/dev-env.js +1 -1
  45. package/lib/docker-compose/docker-compose-service.js +1 -1
  46. package/lib/docker-compose/docker-compose.js +1 -1
  47. package/lib/file.js +1 -1
  48. package/lib/gitattributes.js +1 -1
  49. package/lib/github/actions-provider.js +1 -1
  50. package/lib/github/actions.const.js +1 -1
  51. package/lib/github/auto-approve.d.ts +41 -1
  52. package/lib/github/auto-approve.js +66 -17
  53. package/lib/github/auto-merge.js +1 -1
  54. package/lib/github/auto-queue.js +1 -1
  55. package/lib/github/dependabot.js +1 -1
  56. package/lib/github/dependency-review.js +1 -1
  57. package/lib/github/github-credentials.js +1 -1
  58. package/lib/github/github-project.js +1 -1
  59. package/lib/github/github.js +1 -1
  60. package/lib/github/index.d.ts +1 -0
  61. package/lib/github/index.js +2 -1
  62. package/lib/github/merge-queue.js +1 -1
  63. package/lib/github/mergify.js +1 -1
  64. package/lib/github/pr-template.js +1 -1
  65. package/lib/github/pull-request-backport.js +1 -1
  66. package/lib/github/pull-request-lint.js +3 -3
  67. package/lib/github/pull-request-source.d.ts +71 -0
  68. package/lib/github/pull-request-source.js +84 -0
  69. package/lib/github/stale.js +1 -1
  70. package/lib/github/task-workflow-job.js +1 -1
  71. package/lib/github/task-workflow.js +1 -1
  72. package/lib/github/workflow-actions.js +1 -1
  73. package/lib/github/workflow-jobs.js +1 -1
  74. package/lib/github/workflow-steps.js +1 -1
  75. package/lib/github/workflows.js +1 -1
  76. package/lib/gitlab/configuration.js +2 -5
  77. package/lib/gitlab/gitlab-configuration.js +1 -1
  78. package/lib/gitlab/nested-configuration.js +1 -1
  79. package/lib/gitpod.js +1 -1
  80. package/lib/ignore-file.js +1 -1
  81. package/lib/ini.js +1 -1
  82. package/lib/java/java-project.js +1 -1
  83. package/lib/java/junit.js +1 -1
  84. package/lib/java/maven-compile.js +1 -1
  85. package/lib/java/maven-packaging.js +1 -1
  86. package/lib/java/maven-sample.js +1 -1
  87. package/lib/java/pom.js +2 -2
  88. package/lib/java/projenrc.js +1 -1
  89. package/lib/javascript/biome/biome.js +1 -1
  90. package/lib/javascript/bundler.js +1 -1
  91. package/lib/javascript/eslint.js +1 -1
  92. package/lib/javascript/index.d.ts +1 -0
  93. package/lib/javascript/index.js +2 -1
  94. package/lib/javascript/jest.js +4 -4
  95. package/lib/javascript/license-checker.js +1 -1
  96. package/lib/javascript/node-config-file.js +18 -4
  97. package/lib/javascript/node-native-test-runner.d.ts +234 -0
  98. package/lib/javascript/node-native-test-runner.js +368 -0
  99. package/lib/javascript/node-package.js +1 -1
  100. package/lib/javascript/node-project.js +3 -3
  101. package/lib/javascript/npm-config.js +1 -1
  102. package/lib/javascript/pnpm-workspace-config.js +2 -2
  103. package/lib/javascript/pnpm-workspace.js +1 -1
  104. package/lib/javascript/prettier.js +1 -1
  105. package/lib/javascript/projenrc.js +1 -1
  106. package/lib/javascript/typescript-config.js +2 -2
  107. package/lib/javascript/upgrade-dependencies.js +2 -2
  108. package/lib/javascript/yarnrc.js +1 -1
  109. package/lib/json-patch.js +1 -1
  110. package/lib/json.js +1 -1
  111. package/lib/license.js +1 -1
  112. package/lib/logger.js +1 -1
  113. package/lib/makefile.js +1 -1
  114. package/lib/object-file.js +1 -1
  115. package/lib/polaris/coverity-go.js +1 -1
  116. package/lib/polaris/coverity-java.js +1 -1
  117. package/lib/polaris/coverity-javascript.js +1 -1
  118. package/lib/polaris/coverity.js +1 -1
  119. package/lib/project-build.js +1 -1
  120. package/lib/project-tree.js +1 -1
  121. package/lib/project.js +1 -1
  122. package/lib/projects.js +1 -1
  123. package/lib/projenrc-json.js +1 -1
  124. package/lib/projenrc.js +1 -1
  125. package/lib/properties-file.js +1 -1
  126. package/lib/python/pip.js +1 -1
  127. package/lib/python/poetry.js +2 -2
  128. package/lib/python/projenrc.js +1 -1
  129. package/lib/python/pyproject-toml-file.js +1 -1
  130. package/lib/python/pytest-sample.js +1 -1
  131. package/lib/python/pytest.js +1 -1
  132. package/lib/python/python-project.js +1 -1
  133. package/lib/python/python-sample.js +1 -1
  134. package/lib/python/requirements-file.js +1 -1
  135. package/lib/python/setuppy.js +1 -1
  136. package/lib/python/setuptools.js +1 -1
  137. package/lib/python/uv-config.js +1 -1
  138. package/lib/python/uv.js +1 -1
  139. package/lib/python/venv.js +1 -1
  140. package/lib/readme.js +1 -1
  141. package/lib/release/publisher.js +1 -1
  142. package/lib/release/release-trigger.js +1 -1
  143. package/lib/release/release.js +3 -2
  144. package/lib/renovatebot.js +1 -1
  145. package/lib/run-task.cjs +6 -6
  146. package/lib/sample-file.js +2 -2
  147. package/lib/script-runner.js +1 -1
  148. package/lib/sonarqube/javascript.js +1 -1
  149. package/lib/sonarqube/rust.js +1 -1
  150. package/lib/sonarqube/sonarqube.js +1 -1
  151. package/lib/sonarqube/typescript.js +1 -1
  152. package/lib/source-code.js +1 -1
  153. package/lib/task-shell.js +1 -1
  154. package/lib/task.js +1 -1
  155. package/lib/tasks.js +1 -1
  156. package/lib/testing.js +1 -1
  157. package/lib/textfile.js +1 -1
  158. package/lib/toml.js +1 -1
  159. package/lib/typescript/projenrc-ts.js +1 -1
  160. package/lib/typescript/projenrc.js +1 -1
  161. package/lib/typescript/typescript-runner.js +1 -1
  162. package/lib/typescript/typescript-typedoc.js +1 -1
  163. package/lib/typescript/typescript.js +5 -5
  164. package/lib/version.js +2 -2
  165. package/lib/vscode/devcontainer.js +1 -1
  166. package/lib/vscode/extensions.js +1 -1
  167. package/lib/vscode/launch-config.js +1 -1
  168. package/lib/vscode/settings.js +1 -1
  169. package/lib/vscode/vscode.js +1 -1
  170. package/lib/web/next.js +3 -3
  171. package/lib/web/postcss.js +1 -1
  172. package/lib/web/react.js +3 -3
  173. package/lib/web/tailwind.js +1 -1
  174. package/lib/xmlfile.js +1 -1
  175. package/lib/yaml.js +1 -1
  176. package/package.json +6 -6
@@ -19,7 +19,7 @@ const util_1 = require("../util");
19
19
  * `src/main/java/projenrc.java`.
20
20
  */
21
21
  class Projenrc extends projenrc_1.ProjenrcFile {
22
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.java.Projenrc", version: "0.103.26" };
22
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.java.Projenrc", version: "0.104.0" };
23
23
  /**
24
24
  * The name of the java class that includes the projen entrypoint.
25
25
  */
@@ -100,7 +100,7 @@ const DEFAULT_ASSIST = {
100
100
  */
101
101
  class Biome extends component_1.Component {
102
102
  options;
103
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.javascript.Biome", version: "0.103.26" };
103
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.javascript.Biome", version: "0.104.0" };
104
104
  static of(project) {
105
105
  const isBiome = (c) => c instanceof Biome;
106
106
  return project.components.find(isBiome);
@@ -45,7 +45,7 @@ const dependencies_1 = require("../dependencies");
45
45
  * single file. In the future, this will also supports bundling websites.
46
46
  */
47
47
  class Bundler extends component_1.Component {
48
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.javascript.Bundler", version: "0.103.26" };
48
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.javascript.Bundler", version: "0.104.0" };
49
49
  /**
50
50
  * Returns the `Bundler` instance associated with a project or `undefined` if
51
51
  * there is no Bundler.
@@ -10,7 +10,7 @@ const yaml_1 = require("../yaml");
10
10
  * Represents eslint configuration.
11
11
  */
12
12
  class Eslint extends component_1.Component {
13
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.javascript.Eslint", version: "0.103.26" };
13
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.javascript.Eslint", version: "0.104.0" };
14
14
  /**
15
15
  * Returns the singleton Eslint component of a project or undefined if there is none.
16
16
  */
@@ -4,6 +4,7 @@ export * from "./jest";
4
4
  export * from "./license-checker";
5
5
  export * from "./node-config";
6
6
  export * from "./node-config-file";
7
+ export * from "./node-native-test-runner";
7
8
  export * from "./node-package";
8
9
  export * from "./node-project";
9
10
  export * from "./npm-config";
@@ -43,6 +43,7 @@ __exportStar(require("./jest"), exports);
43
43
  __exportStar(require("./license-checker"), exports);
44
44
  __exportStar(require("./node-config"), exports);
45
45
  __exportStar(require("./node-config-file"), exports);
46
+ __exportStar(require("./node-native-test-runner"), exports);
46
47
  __exportStar(require("./node-package"), exports);
47
48
  __exportStar(require("./node-project"), exports);
48
49
  __exportStar(require("./npm-config"), exports);
@@ -55,4 +56,4 @@ __exportStar(require("./upgrade-dependencies"), exports);
55
56
  __exportStar(require("./yarnrc"), exports);
56
57
  __exportStar(require("./biome/biome"), exports);
57
58
  exports.biome_config = __importStar(require("./biome/biome-config"));
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvamF2YXNjcmlwdC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw0Q0FBMEI7QUFDMUIsMkNBQXlCO0FBQ3pCLHlDQUF1QjtBQUN2QixvREFBa0M7QUFDbEMsZ0RBQThCO0FBQzlCLHFEQUFtQztBQUNuQyxpREFBK0I7QUFDL0IsaURBQStCO0FBQy9CLCtDQUE2QjtBQUM3QixtREFBaUM7QUFDakMsMERBQXdDO0FBQ3hDLDZDQUEyQjtBQUMzQiw2Q0FBMkI7QUFDM0Isc0RBQW9DO0FBQ3BDLHlEQUF1QztBQUN2QywyQ0FBeUI7QUFDekIsZ0RBQThCO0FBQzlCLHFFQUFxRCIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2J1bmRsZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2VzbGludFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vamVzdFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGljZW5zZS1jaGVja2VyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9ub2RlLWNvbmZpZ1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vbm9kZS1jb25maWctZmlsZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbm9kZS1wYWNrYWdlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9ub2RlLXByb2plY3RcIjtcbmV4cG9ydCAqIGZyb20gXCIuL25wbS1jb25maWdcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3BucG0td29ya3NwYWNlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9wbnBtLXdvcmtzcGFjZS1jb25maWdcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3ByZXR0aWVyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9wcm9qZW5yY1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vdHlwZXNjcmlwdC1jb25maWdcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3VwZ3JhZGUtZGVwZW5kZW5jaWVzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi95YXJucmNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2Jpb21lL2Jpb21lXCI7XG5leHBvcnQgKiBhcyBiaW9tZV9jb25maWcgZnJvbSBcIi4vYmlvbWUvYmlvbWUtY29uZmlnXCI7XG4iXX0=
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvamF2YXNjcmlwdC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw0Q0FBMEI7QUFDMUIsMkNBQXlCO0FBQ3pCLHlDQUF1QjtBQUN2QixvREFBa0M7QUFDbEMsZ0RBQThCO0FBQzlCLHFEQUFtQztBQUNuQyw0REFBMEM7QUFDMUMsaURBQStCO0FBQy9CLGlEQUErQjtBQUMvQiwrQ0FBNkI7QUFDN0IsbURBQWlDO0FBQ2pDLDBEQUF3QztBQUN4Qyw2Q0FBMkI7QUFDM0IsNkNBQTJCO0FBQzNCLHNEQUFvQztBQUNwQyx5REFBdUM7QUFDdkMsMkNBQXlCO0FBQ3pCLGdEQUE4QjtBQUM5QixxRUFBcUQiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9idW5kbGVyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lc2xpbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2plc3RcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpY2Vuc2UtY2hlY2tlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbm9kZS1jb25maWdcIjtcbmV4cG9ydCAqIGZyb20gXCIuL25vZGUtY29uZmlnLWZpbGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL25vZGUtbmF0aXZlLXRlc3QtcnVubmVyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9ub2RlLXBhY2thZ2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL25vZGUtcHJvamVjdFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbnBtLWNvbmZpZ1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcG5wbS13b3Jrc3BhY2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3BucG0td29ya3NwYWNlLWNvbmZpZ1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcHJldHRpZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3Byb2plbnJjXCI7XG5leHBvcnQgKiBmcm9tIFwiLi90eXBlc2NyaXB0LWNvbmZpZ1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vdXBncmFkZS1kZXBlbmRlbmNpZXNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3lhcm5yY1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vYmlvbWUvYmlvbWVcIjtcbmV4cG9ydCAqIGFzIGJpb21lX2NvbmZpZyBmcm9tIFwiLi9iaW9tZS9iaW9tZS1jb25maWdcIjtcbiJdfQ==
@@ -45,7 +45,7 @@ const DEFAULT_TEST_REPORTS_DIR = "test-reports";
45
45
  class Transform {
46
46
  name;
47
47
  options;
48
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.javascript.Transform", version: "0.103.26" };
48
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.javascript.Transform", version: "0.104.0" };
49
49
  constructor(name, options) {
50
50
  this.name = name;
51
51
  this.options = options;
@@ -65,7 +65,7 @@ exports.Transform = Transform;
65
65
  class WatchPlugin {
66
66
  name;
67
67
  options;
68
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.javascript.WatchPlugin", version: "0.103.26" };
68
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.javascript.WatchPlugin", version: "0.104.0" };
69
69
  constructor(name, options) {
70
70
  this.name = name;
71
71
  this.options = options;
@@ -96,7 +96,7 @@ var UpdateSnapshot;
96
96
  class JestReporter {
97
97
  name;
98
98
  options;
99
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.javascript.JestReporter", version: "0.103.26" };
99
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.javascript.JestReporter", version: "0.104.0" };
100
100
  constructor(name, options) {
101
101
  this.name = name;
102
102
  this.options = options;
@@ -122,7 +122,7 @@ exports.JestReporter = JestReporter;
122
122
  *
123
123
  */
124
124
  class Jest extends component_1.Component {
125
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.javascript.Jest", version: "0.103.26" };
125
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.javascript.Jest", version: "0.104.0" };
126
126
  /**
127
127
  * Returns the singleton Jest component of a project or undefined if there is none.
128
128
  */
@@ -8,7 +8,7 @@ const dependencies_1 = require("../dependencies");
8
8
  * Enforces allowed licenses used by dependencies.
9
9
  */
10
10
  class LicenseChecker extends component_1.Component {
11
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.javascript.LicenseChecker", version: "0.103.26" };
11
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.javascript.LicenseChecker", version: "0.104.0" };
12
12
  task;
13
13
  constructor(scope, options) {
14
14
  const taskName = options.taskName ?? "check-licenses";
@@ -12,7 +12,7 @@ const node_config_1 = require("./node-config");
12
12
  * @see https://nodejs.org/api/cli.html#configuration-via-nodeconfig
13
13
  */
14
14
  class NodeConfigFile extends component_1.Component {
15
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.javascript.NodeConfigFile", version: "0.103.26" };
15
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.javascript.NodeConfigFile", version: "0.104.0" };
16
16
  /**
17
17
  * Returns the `NodeConfigFile` instance associated with a project or
18
18
  * `undefined` if there is none.
@@ -33,12 +33,26 @@ class NodeConfigFile extends component_1.Component {
33
33
  super(project);
34
34
  const { filePath = "node.config.json", ...config } = options;
35
35
  this.config = config;
36
- this.file = new json_1.JsonFile(project, filePath, {
37
- obj: () => (0, node_config_1.toJson_NodeConfigSchema)(this.config),
36
+ this.file = new NodeConfigJsonFile(project, filePath, {
37
+ obj: config,
38
38
  omitEmpty: true,
39
39
  marker: false,
40
40
  });
41
41
  }
42
42
  }
43
43
  exports.NodeConfigFile = NodeConfigFile;
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1jb25maWctZmlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9qYXZhc2NyaXB0L25vZGUtY29uZmlnLWZpbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLDRDQUF5QztBQUN6QyxrQ0FBbUM7QUFHbkMsK0NBQXdEO0FBZ0J4RDs7Ozs7R0FLRztBQUNILE1BQWEsY0FBZSxTQUFRLHFCQUFTOztJQUMzQzs7O09BR0c7SUFDSSxNQUFNLENBQUMsRUFBRSxDQUFDLE9BQWdCO1FBQy9CLE1BQU0sSUFBSSxHQUFHLENBQUMsQ0FBVSxFQUF1QixFQUFFLENBQy9DLENBQUMsWUFBWSxjQUFjLENBQUM7UUFDOUIsT0FBTyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQ7O09BRUc7SUFDYSxNQUFNLENBQW1CO0lBRXpDOztPQUVHO0lBQ2EsSUFBSSxDQUFXO0lBRS9CLFlBQVksT0FBZ0IsRUFBRSxVQUFpQyxFQUFFO1FBQy9ELEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVmLE1BQU0sRUFBRSxRQUFRLEdBQUcsa0JBQWtCLEVBQUUsR0FBRyxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUM7UUFDN0QsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFFckIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLGVBQVEsQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFO1lBQzFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFBLHFDQUF1QixFQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7WUFDL0MsU0FBUyxFQUFFLElBQUk7WUFDZixNQUFNLEVBQUUsS0FBSztTQUNkLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBaENILHdDQWlDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gXCIuLi9jb21wb25lbnRcIjtcbmltcG9ydCB7IEpzb25GaWxlIH0gZnJvbSBcIi4uL2pzb25cIjtcbmltcG9ydCB0eXBlIHsgUHJvamVjdCB9IGZyb20gXCIuLi9wcm9qZWN0XCI7XG5pbXBvcnQgdHlwZSB7IE5vZGVDb25maWdTY2hlbWEgfSBmcm9tIFwiLi9ub2RlLWNvbmZpZ1wiO1xuaW1wb3J0IHsgdG9Kc29uX05vZGVDb25maWdTY2hlbWEgfSBmcm9tIFwiLi9ub2RlLWNvbmZpZ1wiO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGBOb2RlQ29uZmlnRmlsZWAuXG4gKlxuICogQHNlZSBodHRwczovL25vZGVqcy5vcmcvYXBpL2NsaS5odG1sI2NvbmZpZ3VyYXRpb24tdmlhLW5vZGVjb25maWdcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOb2RlQ29uZmlnRmlsZU9wdGlvbnMgZXh0ZW5kcyBOb2RlQ29uZmlnU2NoZW1hIHtcbiAgLyoqXG4gICAqIFRoZSBwYXRoIG9mIHRoZSBnZW5lcmF0ZWQgTm9kZS5qcyBjb25maWd1cmF0aW9uIGZpbGUuXG4gICAqXG4gICAqIEBkZWZhdWx0IFwibm9kZS5jb25maWcuanNvblwiXG4gICAqL1xuICByZWFkb25seSBmaWxlUGF0aD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgTm9kZS5qcyBjb25maWd1cmF0aW9uIGZpbGUsIGxvYWRlZCB2aWFcbiAqIGAtLWV4cGVyaW1lbnRhbC1jb25maWctZmlsZWAuXG4gKlxuICogQHNlZSBodHRwczovL25vZGVqcy5vcmcvYXBpL2NsaS5odG1sI2NvbmZpZ3VyYXRpb24tdmlhLW5vZGVjb25maWdcbiAqL1xuZXhwb3J0IGNsYXNzIE5vZGVDb25maWdGaWxlIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGBOb2RlQ29uZmlnRmlsZWAgaW5zdGFuY2UgYXNzb2NpYXRlZCB3aXRoIGEgcHJvamVjdCBvclxuICAgKiBgdW5kZWZpbmVkYCBpZiB0aGVyZSBpcyBub25lLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBvZihwcm9qZWN0OiBQcm9qZWN0KTogTm9kZUNvbmZpZ0ZpbGUgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGlzSXQgPSAobzogdW5rbm93bik6IG8gaXMgTm9kZUNvbmZpZ0ZpbGUgPT5cbiAgICAgIG8gaW5zdGFuY2VvZiBOb2RlQ29uZmlnRmlsZTtcbiAgICByZXR1cm4gcHJvamVjdC5jb21wb25lbnRzLmZpbmQoaXNJdCk7XG4gIH1cblxuICAvKipcbiAgICogRXNjYXBlIGhhdGNoIGZvciB0aGUgZ2VuZXJhdGVkIGNvbmZpZ3VyYXRpb24gZmlsZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBjb25maWc6IE5vZGVDb25maWdTY2hlbWE7XG5cbiAgLyoqXG4gICAqIFRoZSB1bmRlcmx5aW5nIE5vZGUuanMgY29uZmlndXJhdGlvbiBmaWxlLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGZpbGU6IEpzb25GaWxlO1xuXG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IFByb2plY3QsIG9wdGlvbnM6IE5vZGVDb25maWdGaWxlT3B0aW9ucyA9IHt9KSB7XG4gICAgc3VwZXIocHJvamVjdCk7XG5cbiAgICBjb25zdCB7IGZpbGVQYXRoID0gXCJub2RlLmNvbmZpZy5qc29uXCIsIC4uLmNvbmZpZyB9ID0gb3B0aW9ucztcbiAgICB0aGlzLmNvbmZpZyA9IGNvbmZpZztcblxuICAgIHRoaXMuZmlsZSA9IG5ldyBKc29uRmlsZShwcm9qZWN0LCBmaWxlUGF0aCwge1xuICAgICAgb2JqOiAoKSA9PiB0b0pzb25fTm9kZUNvbmZpZ1NjaGVtYSh0aGlzLmNvbmZpZyksXG4gICAgICBvbWl0RW1wdHk6IHRydWUsXG4gICAgICBtYXJrZXI6IGZhbHNlLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
44
+ /**
45
+ * A `JsonFile` that maps its `obj` through `toJson_NodeConfigSchema`.
46
+ *
47
+ * Resolution of `obj` (e.g. any lazily-computed value, such as a function
48
+ * returning the current state of a live collection) is composed into the
49
+ * mapping step itself, so the mapper always receives already-resolved data.
50
+ */
51
+ class NodeConfigJsonFile extends json_1.JsonFile {
52
+ synthesizeContent(resolver) {
53
+ return super.synthesizeContent({
54
+ resolve: (value, options) => (0, node_config_1.toJson_NodeConfigSchema)(resolver.resolve(value, options)),
55
+ });
56
+ }
57
+ }
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1jb25maWctZmlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9qYXZhc2NyaXB0L25vZGUtY29uZmlnLWZpbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLDRDQUF5QztBQUV6QyxrQ0FBbUM7QUFHbkMsK0NBQXdEO0FBZ0J4RDs7Ozs7R0FLRztBQUNILE1BQWEsY0FBZSxTQUFRLHFCQUFTOztJQUMzQzs7O09BR0c7SUFDSSxNQUFNLENBQUMsRUFBRSxDQUFDLE9BQWdCO1FBQy9CLE1BQU0sSUFBSSxHQUFHLENBQUMsQ0FBVSxFQUF1QixFQUFFLENBQy9DLENBQUMsWUFBWSxjQUFjLENBQUM7UUFDOUIsT0FBTyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQ7O09BRUc7SUFDYSxNQUFNLENBQW1CO0lBRXpDOztPQUVHO0lBQ2EsSUFBSSxDQUFXO0lBRS9CLFlBQVksT0FBZ0IsRUFBRSxVQUFpQyxFQUFFO1FBQy9ELEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVmLE1BQU0sRUFBRSxRQUFRLEdBQUcsa0JBQWtCLEVBQUUsR0FBRyxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUM7UUFDN0QsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFFckIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUU7WUFDcEQsR0FBRyxFQUFFLE1BQU07WUFDWCxTQUFTLEVBQUUsSUFBSTtZQUNmLE1BQU0sRUFBRSxLQUFLO1NBQ2QsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUFoQ0gsd0NBaUNDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxrQkFBbUIsU0FBUSxlQUFRO0lBQzdCLGlCQUFpQixDQUFDLFFBQW1CO1FBQzdDLE9BQU8sS0FBSyxDQUFDLGlCQUFpQixDQUFDO1lBQzdCLE9BQU8sRUFBRSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUMxQixJQUFBLHFDQUF1QixFQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1NBQzVELENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gXCIuLi9jb21wb25lbnRcIjtcbmltcG9ydCB0eXBlIHsgSVJlc29sdmVyIH0gZnJvbSBcIi4uL2ZpbGVcIjtcbmltcG9ydCB7IEpzb25GaWxlIH0gZnJvbSBcIi4uL2pzb25cIjtcbmltcG9ydCB0eXBlIHsgUHJvamVjdCB9IGZyb20gXCIuLi9wcm9qZWN0XCI7XG5pbXBvcnQgdHlwZSB7IE5vZGVDb25maWdTY2hlbWEgfSBmcm9tIFwiLi9ub2RlLWNvbmZpZ1wiO1xuaW1wb3J0IHsgdG9Kc29uX05vZGVDb25maWdTY2hlbWEgfSBmcm9tIFwiLi9ub2RlLWNvbmZpZ1wiO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGBOb2RlQ29uZmlnRmlsZWAuXG4gKlxuICogQHNlZSBodHRwczovL25vZGVqcy5vcmcvYXBpL2NsaS5odG1sI2NvbmZpZ3VyYXRpb24tdmlhLW5vZGVjb25maWdcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOb2RlQ29uZmlnRmlsZU9wdGlvbnMgZXh0ZW5kcyBOb2RlQ29uZmlnU2NoZW1hIHtcbiAgLyoqXG4gICAqIFRoZSBwYXRoIG9mIHRoZSBnZW5lcmF0ZWQgTm9kZS5qcyBjb25maWd1cmF0aW9uIGZpbGUuXG4gICAqXG4gICAqIEBkZWZhdWx0IFwibm9kZS5jb25maWcuanNvblwiXG4gICAqL1xuICByZWFkb25seSBmaWxlUGF0aD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgTm9kZS5qcyBjb25maWd1cmF0aW9uIGZpbGUsIGxvYWRlZCB2aWFcbiAqIGAtLWV4cGVyaW1lbnRhbC1jb25maWctZmlsZWAuXG4gKlxuICogQHNlZSBodHRwczovL25vZGVqcy5vcmcvYXBpL2NsaS5odG1sI2NvbmZpZ3VyYXRpb24tdmlhLW5vZGVjb25maWdcbiAqL1xuZXhwb3J0IGNsYXNzIE5vZGVDb25maWdGaWxlIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGBOb2RlQ29uZmlnRmlsZWAgaW5zdGFuY2UgYXNzb2NpYXRlZCB3aXRoIGEgcHJvamVjdCBvclxuICAgKiBgdW5kZWZpbmVkYCBpZiB0aGVyZSBpcyBub25lLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBvZihwcm9qZWN0OiBQcm9qZWN0KTogTm9kZUNvbmZpZ0ZpbGUgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGlzSXQgPSAobzogdW5rbm93bik6IG8gaXMgTm9kZUNvbmZpZ0ZpbGUgPT5cbiAgICAgIG8gaW5zdGFuY2VvZiBOb2RlQ29uZmlnRmlsZTtcbiAgICByZXR1cm4gcHJvamVjdC5jb21wb25lbnRzLmZpbmQoaXNJdCk7XG4gIH1cblxuICAvKipcbiAgICogRXNjYXBlIGhhdGNoIGZvciB0aGUgZ2VuZXJhdGVkIGNvbmZpZ3VyYXRpb24gZmlsZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBjb25maWc6IE5vZGVDb25maWdTY2hlbWE7XG5cbiAgLyoqXG4gICAqIFRoZSB1bmRlcmx5aW5nIE5vZGUuanMgY29uZmlndXJhdGlvbiBmaWxlLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGZpbGU6IEpzb25GaWxlO1xuXG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IFByb2plY3QsIG9wdGlvbnM6IE5vZGVDb25maWdGaWxlT3B0aW9ucyA9IHt9KSB7XG4gICAgc3VwZXIocHJvamVjdCk7XG5cbiAgICBjb25zdCB7IGZpbGVQYXRoID0gXCJub2RlLmNvbmZpZy5qc29uXCIsIC4uLmNvbmZpZyB9ID0gb3B0aW9ucztcbiAgICB0aGlzLmNvbmZpZyA9IGNvbmZpZztcblxuICAgIHRoaXMuZmlsZSA9IG5ldyBOb2RlQ29uZmlnSnNvbkZpbGUocHJvamVjdCwgZmlsZVBhdGgsIHtcbiAgICAgIG9iajogY29uZmlnLFxuICAgICAgb21pdEVtcHR5OiB0cnVlLFxuICAgICAgbWFya2VyOiBmYWxzZSxcbiAgICB9KTtcbiAgfVxufVxuXG4vKipcbiAqIEEgYEpzb25GaWxlYCB0aGF0IG1hcHMgaXRzIGBvYmpgIHRocm91Z2ggYHRvSnNvbl9Ob2RlQ29uZmlnU2NoZW1hYC5cbiAqXG4gKiBSZXNvbHV0aW9uIG9mIGBvYmpgIChlLmcuIGFueSBsYXppbHktY29tcHV0ZWQgdmFsdWUsIHN1Y2ggYXMgYSBmdW5jdGlvblxuICogcmV0dXJuaW5nIHRoZSBjdXJyZW50IHN0YXRlIG9mIGEgbGl2ZSBjb2xsZWN0aW9uKSBpcyBjb21wb3NlZCBpbnRvIHRoZVxuICogbWFwcGluZyBzdGVwIGl0c2VsZiwgc28gdGhlIG1hcHBlciBhbHdheXMgcmVjZWl2ZXMgYWxyZWFkeS1yZXNvbHZlZCBkYXRhLlxuICovXG5jbGFzcyBOb2RlQ29uZmlnSnNvbkZpbGUgZXh0ZW5kcyBKc29uRmlsZSB7XG4gIHByb3RlY3RlZCBzeW50aGVzaXplQ29udGVudChyZXNvbHZlcjogSVJlc29sdmVyKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gc3VwZXIuc3ludGhlc2l6ZUNvbnRlbnQoe1xuICAgICAgcmVzb2x2ZTogKHZhbHVlLCBvcHRpb25zKSA9PlxuICAgICAgICB0b0pzb25fTm9kZUNvbmZpZ1NjaGVtYShyZXNvbHZlci5yZXNvbHZlKHZhbHVlLCBvcHRpb25zKSksXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,234 @@
1
+ import type { IConstruct } from "constructs";
2
+ import { Component } from "../component";
3
+ import type { Project } from "../project";
4
+ import type { NodeConfigSchemaNodeOptions, NodeConfigSchemaTest } from "./node-config";
5
+ import { NodeConfigFile } from "./node-config-file";
6
+ import { NodeProject } from "./node-project";
7
+ /**
8
+ * Whether to update snapshots in task "test" (which is executed in task
9
+ * "build" and build workflows), or create a separate task "test:update" for
10
+ * updating snapshots.
11
+ */
12
+ export declare enum NodeTestUpdateSnapshot {
13
+ /**
14
+ * Always update snapshots in "test" task.
15
+ */
16
+ ALWAYS = "always",
17
+ /**
18
+ * Never update snapshots in "test" task and create a separate "test:update" task.
19
+ */
20
+ NEVER = "never"
21
+ }
22
+ export type ReporterKind = "dot" | "junit" | "lcov" | "spec" | "tap";
23
+ /**
24
+ * Where a reporter's output is written.
25
+ *
26
+ * @see https://nodejs.org/api/test.html#test-reporters
27
+ */
28
+ export declare class Destination {
29
+ /**
30
+ * The underlying value: `"stdout"`, `"stderr"`, or a file path.
31
+ */
32
+ readonly value: string;
33
+ /**
34
+ * Write to standard output.
35
+ */
36
+ static readonly STDOUT: Destination;
37
+ /**
38
+ * Write to standard error.
39
+ */
40
+ static readonly STDERR: Destination;
41
+ /**
42
+ * Write to a file at the given path.
43
+ * @param path path of the file to write to
44
+ */
45
+ static file(path: string): Destination;
46
+ private constructor();
47
+ }
48
+ /**
49
+ * A single reporter/destination pair for the Node.js native test runner.
50
+ *
51
+ * @see https://nodejs.org/api/test.html#test-reporters
52
+ */
53
+ export interface NodeReporter {
54
+ /**
55
+ * The name/kind of the reporter.
56
+ */
57
+ readonly name: ReporterKind;
58
+ /**
59
+ * Where the reporter's output is written.
60
+ *
61
+ * @see https://github.com/nodejs/node/blob/4215cc35e25c44f9f4fea5a4541afc862db7ef0a/test/parallel/test-runner-reporters.js#L46-L77
62
+ * @default Destination.STDOUT
63
+ */
64
+ readonly destination: Destination;
65
+ }
66
+ /**
67
+ * Options for Node.js' built-in test runner (`node --test`).
68
+ */
69
+ export interface NodeNativeTestRunnerOptions {
70
+ /**
71
+ * The directory where coverage files are output, if coverage collection
72
+ * is enabled.
73
+ *
74
+ * @default "coverage"
75
+ */
76
+ readonly coverageDirectory?: string;
77
+ /**
78
+ * Whether to update snapshots in task "test" (which is executed in task
79
+ * "build" and build workflows), or create a separate task "test:update"
80
+ * for updating snapshots.
81
+ *
82
+ * @default - ALWAYS
83
+ */
84
+ readonly updateSnapshot?: NodeTestUpdateSnapshot;
85
+ /**
86
+ * Additional options to pass to the `node --test` CLI invocation.
87
+ *
88
+ * Each element is passed as a single argument, exactly as given: no shell
89
+ * parses these, so a flag and its value need separate elements
90
+ * (`["--foo", "bar"]`, not `["--foo bar"]`).
91
+ *
92
+ * @default - no extra options
93
+ */
94
+ readonly extraCliOptions?: string[];
95
+ /**
96
+ * Preserve the default reporters (`spec`, `lcov`, `junit`) when additional
97
+ * reporters are added.
98
+ *
99
+ * @default true
100
+ */
101
+ readonly preserveDefaultReporters?: boolean;
102
+ /**
103
+ * Additional reporters to configure (e.g. `{ name: "tap", destination:
104
+ * Destination.file("test-reports/tap.txt") }`).
105
+ *
106
+ * These are added on top of the default reporters (`spec`, `lcov`, `junit`),
107
+ * which are controlled via `collectCoverage`. Use
108
+ * `NodeNativeTestRunner.addReporter`/`removeReporter`/`listReporters` to
109
+ * manage reporters after construction.
110
+ *
111
+ * @default - no additional reporters
112
+ */
113
+ readonly reporters?: NodeReporter[];
114
+ /**
115
+ * Path to the JSON configuration file for the test runner.
116
+ *
117
+ * @default "node.config.json"
118
+ */
119
+ readonly configFilePath?: string;
120
+ /**
121
+ * Glob patterns matching the files that contain tests. By default it
122
+ * combines Node.js' own default test file discovery with Jest conventions.
123
+ *
124
+ * @default - combines Node.js' own default test file discovery with Jest conventions
125
+ */
126
+ readonly testMatch?: string[];
127
+ /**
128
+ * Indicates whether the coverage information should be collected while
129
+ * executing the test, via `--experimental-test-coverage`.
130
+ *
131
+ * @default true
132
+ */
133
+ readonly collectCoverage?: boolean;
134
+ /**
135
+ * An array of glob patterns that are matched against all file paths before
136
+ * executing coverage collection. If a file path matches any of the
137
+ * patterns, coverage information will be skipped for it.
138
+ *
139
+ * @default ["**\/test/**", "**\/__tests__/**"]
140
+ */
141
+ readonly coveragePathIgnorePatterns?: string[];
142
+ /**
143
+ * This option allows the use of a custom global setup module which
144
+ * exports a function that is triggered once before all test suites.
145
+ * Written as `test-global-setup` in the generated Node.js configuration
146
+ * file.
147
+ *
148
+ * @default - undefined
149
+ */
150
+ readonly globalSetup?: string;
151
+ /**
152
+ * Enable module mocking support via `--experimental-test-module-mocks`.
153
+ *
154
+ * @default false
155
+ */
156
+ readonly moduleMocks?: boolean;
157
+ /**
158
+ * Whether to enable transformation of TypeScript-only syntax (e.g. enums, namespaces).
159
+ *
160
+ * Uses `amaro` (the TypeScript transformer used internally by Node.js) as an
161
+ * external loader via `--import=amaro/transform`. Adds a dependency on the
162
+ * `amaro` package and enables `--enable-source-maps` to preserve accurate
163
+ * stack traces.
164
+ *
165
+ * @see https://github.com/nodejs/amaro
166
+ * @default false
167
+ */
168
+ readonly transformTypes?: boolean;
169
+ /**
170
+ * Additional entries for the `nodeOptions` section of the generated
171
+ * configuration file (e.g. `enableSourceMaps`, `disableWarning`).
172
+ *
173
+ * @default - no additional node options
174
+ */
175
+ readonly nodeOptions?: NodeConfigSchemaNodeOptions;
176
+ /**
177
+ * Additional entries for the `test` section of the generated
178
+ * configuration file (e.g. `testConcurrency`, `testTimeout`).
179
+ *
180
+ * @default - no additional options
181
+ */
182
+ readonly testConfig?: NodeConfigSchemaTest;
183
+ }
184
+ /**
185
+ * Configures Node's built-in test runner (`node --test`).
186
+ *
187
+ * Owns the generated Node.js configuration file, the "test", "test:update"
188
+ * and "test:watch" tasks, and the reporters and test match patterns they use.
189
+ */
190
+ export declare class NodeNativeTestRunner extends Component {
191
+ /**
192
+ * Returns the singleton NodeNativeTestRunner component of a project or undefined
193
+ * if there is none.
194
+ */
195
+ static of(project: Project): NodeNativeTestRunner | undefined;
196
+ readonly project: NodeProject;
197
+ private readonly coverageDirectory?;
198
+ private readonly updateSnapshot;
199
+ private readonly reporters;
200
+ /**
201
+ * The generated Node.js configuration file.
202
+ */
203
+ readonly configFile: NodeConfigFile;
204
+ private readonly testReportsDir;
205
+ private readonly testMatch;
206
+ constructor(scope: IConstruct, options?: NodeNativeTestRunnerOptions);
207
+ /**
208
+ * Adds a test match pattern.
209
+ * @param pattern glob pattern to match for tests
210
+ */
211
+ addTestMatch(pattern: string): void;
212
+ /**
213
+ * Removes a test match pattern, if configured.
214
+ * @param pattern glob pattern to remove
215
+ */
216
+ removeTestMatch(pattern: string): void;
217
+ /**
218
+ * Adds a reporter, or updates its destination if one with the same name
219
+ * is already configured.
220
+ * @param name The name/kind of the reporter, e.g. `spec`, `junit`, `lcov`.
221
+ * @param destination Where the reporter's output is written.
222
+ * @default Destination.STDOUT
223
+ */
224
+ addReporter(name: ReporterKind, destination?: Destination): void;
225
+ /**
226
+ * Removes a reporter, if configured.
227
+ * @param name The name/kind of the reporter to remove.
228
+ */
229
+ removeReporter(name: ReporterKind): void;
230
+ /**
231
+ * Lists the configured reporters, in the order they were added.
232
+ */
233
+ listReporters(): NodeReporter[];
234
+ }