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.
- package/.jsii +1087 -91
- package/lib/ai-instructions.js +2 -2
- package/lib/awscdk/auto-discover.js +6 -6
- package/lib/awscdk/awscdk-app-java.js +1 -1
- package/lib/awscdk/awscdk-app-py.js +1 -1
- package/lib/awscdk/awscdk-app-ts.js +1 -1
- package/lib/awscdk/awscdk-construct.js +1 -1
- package/lib/awscdk/awscdk-deps-java.js +1 -1
- package/lib/awscdk/awscdk-deps-js.js +1 -1
- package/lib/awscdk/awscdk-deps-py.js +1 -1
- package/lib/awscdk/awscdk-deps.js +1 -1
- package/lib/awscdk/cdk-config.js +3 -3
- package/lib/awscdk/cdk-tasks.js +1 -1
- package/lib/awscdk/integration-test.js +1 -1
- package/lib/awscdk/lambda-extension.js +1 -1
- package/lib/awscdk/lambda-function.js +2 -2
- package/lib/awscdk/private/feature-flags-v2.const.d.ts +1 -1
- package/lib/awscdk/private/feature-flags-v2.const.js +2 -2
- package/lib/build/build-workflow.js +1 -1
- package/lib/cdk/auto-discover-base.js +2 -2
- package/lib/cdk/construct-lib.js +1 -1
- package/lib/cdk/integration-test-base.js +1 -1
- package/lib/cdk/jsii-build.js +1 -1
- package/lib/cdk/jsii-docgen.js +1 -1
- package/lib/cdk/jsii-project.js +1 -1
- package/lib/cdk8s/auto-discover.js +2 -2
- package/lib/cdk8s/cdk8s-app-py.js +1 -1
- package/lib/cdk8s/cdk8s-app-ts.js +1 -1
- package/lib/cdk8s/cdk8s-construct.js +1 -1
- package/lib/cdk8s/cdk8s-deps-py.js +1 -1
- package/lib/cdk8s/cdk8s-deps.js +1 -1
- package/lib/cdk8s/integration-test.js +1 -1
- package/lib/cdktf/cdktf-construct.js +1 -1
- package/lib/cdktn/cdktn-app-ts.js +1 -1
- package/lib/cdktn/cdktn-config.js +1 -1
- package/lib/cdktn/cdktn-construct.js +1 -1
- package/lib/cdktn/cdktn-deps.js +1 -1
- package/lib/cdktn/cdktn-tasks.js +1 -1
- package/lib/circleci/circleci.js +1 -1
- package/lib/circleci/model.d.ts +5 -2
- package/lib/circleci/model.js +1 -1
- package/lib/component.js +2 -2
- package/lib/dependencies.js +1 -1
- package/lib/dev-env.js +1 -1
- package/lib/docker-compose/docker-compose-service.js +1 -1
- package/lib/docker-compose/docker-compose.js +1 -1
- package/lib/file.js +1 -1
- package/lib/gitattributes.js +1 -1
- package/lib/github/actions-provider.js +1 -1
- package/lib/github/actions.const.js +1 -1
- package/lib/github/auto-approve.d.ts +41 -1
- package/lib/github/auto-approve.js +66 -17
- package/lib/github/auto-merge.js +1 -1
- package/lib/github/auto-queue.js +1 -1
- package/lib/github/dependabot.js +1 -1
- package/lib/github/dependency-review.js +1 -1
- package/lib/github/github-credentials.js +1 -1
- package/lib/github/github-project.js +1 -1
- package/lib/github/github.js +1 -1
- package/lib/github/index.d.ts +1 -0
- package/lib/github/index.js +2 -1
- package/lib/github/merge-queue.js +1 -1
- package/lib/github/mergify.js +1 -1
- package/lib/github/pr-template.js +1 -1
- package/lib/github/pull-request-backport.js +1 -1
- package/lib/github/pull-request-lint.js +3 -3
- package/lib/github/pull-request-source.d.ts +71 -0
- package/lib/github/pull-request-source.js +84 -0
- package/lib/github/stale.js +1 -1
- package/lib/github/task-workflow-job.js +1 -1
- package/lib/github/task-workflow.js +1 -1
- package/lib/github/workflow-actions.js +1 -1
- package/lib/github/workflow-jobs.js +1 -1
- package/lib/github/workflow-steps.js +1 -1
- package/lib/github/workflows.js +1 -1
- package/lib/gitlab/configuration.js +2 -5
- package/lib/gitlab/gitlab-configuration.js +1 -1
- package/lib/gitlab/nested-configuration.js +1 -1
- package/lib/gitpod.js +1 -1
- package/lib/ignore-file.js +1 -1
- package/lib/ini.js +1 -1
- package/lib/java/java-project.js +1 -1
- package/lib/java/junit.js +1 -1
- package/lib/java/maven-compile.js +1 -1
- package/lib/java/maven-packaging.js +1 -1
- package/lib/java/maven-sample.js +1 -1
- package/lib/java/pom.js +2 -2
- package/lib/java/projenrc.js +1 -1
- package/lib/javascript/biome/biome.js +1 -1
- package/lib/javascript/bundler.js +1 -1
- package/lib/javascript/eslint.js +1 -1
- package/lib/javascript/index.d.ts +1 -0
- package/lib/javascript/index.js +2 -1
- package/lib/javascript/jest.js +4 -4
- package/lib/javascript/license-checker.js +1 -1
- package/lib/javascript/node-config-file.js +18 -4
- package/lib/javascript/node-native-test-runner.d.ts +234 -0
- package/lib/javascript/node-native-test-runner.js +368 -0
- package/lib/javascript/node-package.js +1 -1
- package/lib/javascript/node-project.js +3 -3
- package/lib/javascript/npm-config.js +1 -1
- package/lib/javascript/pnpm-workspace-config.js +2 -2
- package/lib/javascript/pnpm-workspace.js +1 -1
- package/lib/javascript/prettier.js +1 -1
- package/lib/javascript/projenrc.js +1 -1
- package/lib/javascript/typescript-config.js +2 -2
- package/lib/javascript/upgrade-dependencies.js +2 -2
- package/lib/javascript/yarnrc.js +1 -1
- package/lib/json-patch.js +1 -1
- package/lib/json.js +1 -1
- package/lib/license.js +1 -1
- package/lib/logger.js +1 -1
- package/lib/makefile.js +1 -1
- package/lib/object-file.js +1 -1
- package/lib/polaris/coverity-go.js +1 -1
- package/lib/polaris/coverity-java.js +1 -1
- package/lib/polaris/coverity-javascript.js +1 -1
- package/lib/polaris/coverity.js +1 -1
- package/lib/project-build.js +1 -1
- package/lib/project-tree.js +1 -1
- package/lib/project.js +1 -1
- package/lib/projects.js +1 -1
- package/lib/projenrc-json.js +1 -1
- package/lib/projenrc.js +1 -1
- package/lib/properties-file.js +1 -1
- package/lib/python/pip.js +1 -1
- package/lib/python/poetry.js +2 -2
- package/lib/python/projenrc.js +1 -1
- package/lib/python/pyproject-toml-file.js +1 -1
- package/lib/python/pytest-sample.js +1 -1
- package/lib/python/pytest.js +1 -1
- package/lib/python/python-project.js +1 -1
- package/lib/python/python-sample.js +1 -1
- package/lib/python/requirements-file.js +1 -1
- package/lib/python/setuppy.js +1 -1
- package/lib/python/setuptools.js +1 -1
- package/lib/python/uv-config.js +1 -1
- package/lib/python/uv.js +1 -1
- package/lib/python/venv.js +1 -1
- package/lib/readme.js +1 -1
- package/lib/release/publisher.js +1 -1
- package/lib/release/release-trigger.js +1 -1
- package/lib/release/release.js +3 -2
- package/lib/renovatebot.js +1 -1
- package/lib/run-task.cjs +6 -6
- package/lib/sample-file.js +2 -2
- package/lib/script-runner.js +1 -1
- package/lib/sonarqube/javascript.js +1 -1
- package/lib/sonarqube/rust.js +1 -1
- package/lib/sonarqube/sonarqube.js +1 -1
- package/lib/sonarqube/typescript.js +1 -1
- package/lib/source-code.js +1 -1
- package/lib/task-shell.js +1 -1
- package/lib/task.js +1 -1
- package/lib/tasks.js +1 -1
- package/lib/testing.js +1 -1
- package/lib/textfile.js +1 -1
- package/lib/toml.js +1 -1
- package/lib/typescript/projenrc-ts.js +1 -1
- package/lib/typescript/projenrc.js +1 -1
- package/lib/typescript/typescript-runner.js +1 -1
- package/lib/typescript/typescript-typedoc.js +1 -1
- package/lib/typescript/typescript.js +5 -5
- package/lib/version.js +2 -2
- package/lib/vscode/devcontainer.js +1 -1
- package/lib/vscode/extensions.js +1 -1
- package/lib/vscode/launch-config.js +1 -1
- package/lib/vscode/settings.js +1 -1
- package/lib/vscode/vscode.js +1 -1
- package/lib/web/next.js +3 -3
- package/lib/web/postcss.js +1 -1
- package/lib/web/react.js +3 -3
- package/lib/web/tailwind.js +1 -1
- package/lib/xmlfile.js +1 -1
- package/lib/yaml.js +1 -1
- package/package.json +6 -6
package/lib/java/projenrc.js
CHANGED
|
@@ -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.
|
|
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
|
+
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.
|
|
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.
|
package/lib/javascript/eslint.js
CHANGED
|
@@ -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.
|
|
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";
|
package/lib/javascript/index.js
CHANGED
|
@@ -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,
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvamF2YXNjcmlwdC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw0Q0FBMEI7QUFDMUIsMkNBQXlCO0FBQ3pCLHlDQUF1QjtBQUN2QixvREFBa0M7QUFDbEMsZ0RBQThCO0FBQzlCLHFEQUFtQztBQUNuQyw0REFBMEM7QUFDMUMsaURBQStCO0FBQy9CLGlEQUErQjtBQUMvQiwrQ0FBNkI7QUFDN0IsbURBQWlDO0FBQ2pDLDBEQUF3QztBQUN4Qyw2Q0FBMkI7QUFDM0IsNkNBQTJCO0FBQzNCLHNEQUFvQztBQUNwQyx5REFBdUM7QUFDdkMsMkNBQXlCO0FBQ3pCLGdEQUE4QjtBQUM5QixxRUFBcUQiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9idW5kbGVyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lc2xpbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2plc3RcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpY2Vuc2UtY2hlY2tlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbm9kZS1jb25maWdcIjtcbmV4cG9ydCAqIGZyb20gXCIuL25vZGUtY29uZmlnLWZpbGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL25vZGUtbmF0aXZlLXRlc3QtcnVubmVyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9ub2RlLXBhY2thZ2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL25vZGUtcHJvamVjdFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbnBtLWNvbmZpZ1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcG5wbS13b3Jrc3BhY2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3BucG0td29ya3NwYWNlLWNvbmZpZ1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcHJldHRpZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3Byb2plbnJjXCI7XG5leHBvcnQgKiBmcm9tIFwiLi90eXBlc2NyaXB0LWNvbmZpZ1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vdXBncmFkZS1kZXBlbmRlbmNpZXNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3lhcm5yY1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vYmlvbWUvYmlvbWVcIjtcbmV4cG9ydCAqIGFzIGJpb21lX2NvbmZpZyBmcm9tIFwiLi9iaW9tZS9iaW9tZS1jb25maWdcIjtcbiJdfQ==
|
package/lib/javascript/jest.js
CHANGED
|
@@ -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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
|
37
|
-
obj:
|
|
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
|
-
|
|
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
|
+
}
|