@moonrepo/types 1.33.2 → 2.0.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/cjs/common.d.ts +9 -7
- package/cjs/common.d.ts.map +1 -1
- package/cjs/events.d.ts +29 -74
- package/cjs/events.d.ts.map +1 -1
- package/cjs/extensions-config.d.ts +26 -0
- package/cjs/extensions-config.d.ts.map +1 -0
- package/cjs/index.d.ts +3 -1
- package/cjs/index.d.ts.map +1 -1
- package/cjs/mcp.d.ts +6 -6
- package/cjs/mcp.d.ts.map +1 -1
- package/cjs/pipeline.d.ts +61 -72
- package/cjs/pipeline.d.ts.map +1 -1
- package/cjs/project-config.d.ts +129 -173
- package/cjs/project-config.d.ts.map +1 -1
- package/cjs/project.d.ts +8 -119
- package/cjs/project.d.ts.map +1 -1
- package/cjs/task.d.ts +83 -0
- package/cjs/task.d.ts.map +1 -0
- package/cjs/tasks-config.d.ts +380 -139
- package/cjs/tasks-config.d.ts.map +1 -1
- package/cjs/template-config.d.ts +24 -12
- package/cjs/template-config.d.ts.map +1 -1
- package/cjs/toolchains-config.d.ts +128 -0
- package/cjs/toolchains-config.d.ts.map +1 -0
- package/cjs/workspace-config.d.ts +381 -290
- package/cjs/workspace-config.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/common.ts +11 -9
- package/src/events.ts +30 -100
- package/src/extensions-config.ts +31 -0
- package/src/index.ts +3 -1
- package/src/mcp.ts +8 -8
- package/src/pipeline.ts +67 -82
- package/src/project-config.ts +138 -181
- package/src/project.ts +8 -140
- package/src/task.ts +106 -0
- package/src/tasks-config.ts +388 -142
- package/src/template-config.ts +24 -12
- package/src/toolchains-config.ts +143 -0
- package/src/workspace-config.ts +387 -297
- package/src/toolchain-config.ts +0 -814
package/cjs/project-config.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import type { Id } from './common';
|
|
2
|
-
import type { Input, PartialTaskConfig,
|
|
3
|
-
import type { PartialToolchainPluginConfig, ToolchainPluginConfig
|
|
4
|
-
|
|
2
|
+
import type { Input, PartialTaskConfig, TaskConfig } from './tasks-config';
|
|
3
|
+
import type { PartialToolchainPluginConfig, ToolchainPluginConfig } from './toolchains-config';
|
|
4
|
+
import type { DockerFileConfig, DockerScaffoldConfig, PartialDockerFileConfig, PartialDockerScaffoldConfig } from './workspace-config';
|
|
5
|
+
/** The relationship scope of a dependency. */
|
|
5
6
|
export type DependencyScope = 'build' | 'development' | 'peer' | 'production' | 'root';
|
|
6
7
|
/**
|
|
7
8
|
* The source where the dependency comes from. Either explicitly
|
|
@@ -10,7 +11,7 @@ export type DependencyScope = 'build' | 'development' | 'peer' | 'production' |
|
|
|
10
11
|
export type DependencySource = 'explicit' | 'implicit';
|
|
11
12
|
/** Expanded information about a project dependency. */
|
|
12
13
|
export interface ProjectDependencyConfig {
|
|
13
|
-
/**
|
|
14
|
+
/** Identifier of the depended on project. */
|
|
14
15
|
id: Id;
|
|
15
16
|
/**
|
|
16
17
|
* Scope of the dependency relationship.
|
|
@@ -30,42 +31,34 @@ export interface ProjectDependencyConfig {
|
|
|
30
31
|
via: string | null;
|
|
31
32
|
}
|
|
32
33
|
export type ProjectDependsOn = Id | ProjectDependencyConfig;
|
|
33
|
-
/**
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
image: string | null;
|
|
39
|
-
/** A task within the current project for starting the project. */
|
|
40
|
-
startTask: Id | null;
|
|
41
|
-
}
|
|
42
|
-
/** Configures aspects of the Docker scaffolding process. */
|
|
43
|
-
export interface ProjectDockerScaffoldConfig {
|
|
34
|
+
/**
|
|
35
|
+
* Configures our Docker integration.
|
|
36
|
+
* @since 1.27.0
|
|
37
|
+
*/
|
|
38
|
+
export interface ProjectDockerConfig {
|
|
44
39
|
/**
|
|
45
|
-
*
|
|
46
|
-
*
|
|
40
|
+
* Configures aspects of the `Dockerfile` generation process.
|
|
41
|
+
* @since 1.27.0
|
|
47
42
|
*/
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
/** Configures aspects of the Docker scaffolding process. */
|
|
55
|
-
scaffold: ProjectDockerScaffoldConfig;
|
|
43
|
+
file: DockerFileConfig;
|
|
44
|
+
/**
|
|
45
|
+
* Configures aspects of the Docker scaffolding process.
|
|
46
|
+
* @since 1.27.0
|
|
47
|
+
*/
|
|
48
|
+
scaffold: DockerScaffoldConfig;
|
|
56
49
|
}
|
|
57
50
|
/** Supported programming languages that each project can be written in. */
|
|
58
|
-
export type LanguageType = 'bash' | 'batch' | 'go' | 'javascript' | 'php' | 'python' | 'ruby' | 'rust' | 'typescript' | 'unknown' | string;
|
|
59
|
-
/** The layer within the
|
|
51
|
+
export type LanguageType = 'bash' | 'batch' | 'cplusplus' | 'csharp' | 'dotnet' | 'go' | 'java' | 'javascript' | 'kotlin' | 'php' | 'python' | 'ruby' | 'rust' | 'swift' | 'typescript' | 'unknown' | string;
|
|
52
|
+
/** The layer within the technology stack, for categorizing. */
|
|
60
53
|
export type LayerType = 'application' | 'automation' | 'configuration' | 'library' | 'scaffolding' | 'tool' | 'unknown';
|
|
61
54
|
export type OwnersPaths = string[] | Record<string, string[]>;
|
|
62
55
|
/**
|
|
63
56
|
* Defines ownership of source code within the current project, by mapping
|
|
64
|
-
* file paths and
|
|
57
|
+
* file paths and glob patterns to owners. An owner is either a user, team, or group.
|
|
65
58
|
*/
|
|
66
59
|
export interface OwnersConfig {
|
|
67
60
|
/**
|
|
68
|
-
* Bitbucket only. A
|
|
61
|
+
* Bitbucket only. A map of custom groups (prefixed with `@@@`),
|
|
69
62
|
* to a list of user and normal groups.
|
|
70
63
|
*/
|
|
71
64
|
customGroups: Record<string, string[]>;
|
|
@@ -74,9 +67,9 @@ export interface OwnersConfig {
|
|
|
74
67
|
/** GitLab only. Marks the code owners section as optional. */
|
|
75
68
|
optional: boolean;
|
|
76
69
|
/**
|
|
77
|
-
* A
|
|
70
|
+
* A list or map of file paths and glob patterns to owners.
|
|
78
71
|
* When a list, the `defaultOwner` is the owner, and each item is a path.
|
|
79
|
-
* When
|
|
72
|
+
* When a map, the key is a path, and the value is a list of owners.
|
|
80
73
|
*/
|
|
81
74
|
paths: OwnersPaths;
|
|
82
75
|
/**
|
|
@@ -89,71 +82,61 @@ export interface OwnersConfig {
|
|
|
89
82
|
/** Expanded information about the project. */
|
|
90
83
|
export interface ProjectMetadataConfig {
|
|
91
84
|
/**
|
|
92
|
-
* The Slack, Discord, etc, channel to discuss the project.
|
|
85
|
+
* The Slack, Discord, IRC, etc, channel to discuss the project.
|
|
93
86
|
* Must start with a `#`.
|
|
94
87
|
*/
|
|
95
88
|
channel: string | null;
|
|
96
|
-
/** A description on what the project does
|
|
97
|
-
description: string;
|
|
89
|
+
/** A description on what the project does and why it exists. */
|
|
90
|
+
description: string | null;
|
|
98
91
|
/** The individual maintainers of the project. The format is unspecified. */
|
|
99
92
|
maintainers: string[];
|
|
100
93
|
/** Custom metadata fields. */
|
|
101
94
|
metadata: Record<string, unknown>;
|
|
102
|
-
/** A human-readable name of the project. */
|
|
103
|
-
name: string | null;
|
|
104
95
|
/**
|
|
105
96
|
* The owner of the project. Can be an individual, team, or
|
|
106
97
|
* organization. The format is unspecified.
|
|
107
98
|
*/
|
|
108
99
|
owner: string | null;
|
|
100
|
+
/** A human-readable title of the project. */
|
|
101
|
+
title: string | null;
|
|
109
102
|
}
|
|
110
103
|
/** The technology stack of the project, for categorizing. */
|
|
111
|
-
export type StackType = 'backend' | 'frontend' | 'infrastructure' | 'systems' | 'unknown';
|
|
112
|
-
/** Overrides top-level toolchain settings. */
|
|
113
|
-
export interface ProjectToolchainCommonToolConfig {
|
|
114
|
-
/** Version of the tool this project will use. */
|
|
115
|
-
version: UnresolvedVersionSpec | null;
|
|
116
|
-
}
|
|
104
|
+
export type StackType = 'backend' | 'data' | 'frontend' | 'infrastructure' | 'systems' | 'unknown';
|
|
117
105
|
export type ProjectToolchainEntry = null | boolean | ToolchainPluginConfig;
|
|
118
106
|
/** Overrides top-level toolchain settings, scoped to this project. */
|
|
119
|
-
export interface
|
|
120
|
-
/** Overrides `bun` settings. */
|
|
121
|
-
bun: ProjectToolchainCommonToolConfig | null;
|
|
107
|
+
export interface ProjectToolchainsConfig {
|
|
122
108
|
/**
|
|
123
|
-
*
|
|
124
|
-
*
|
|
109
|
+
* A single toolchain, or list of toolchains, to inherit for
|
|
110
|
+
* this project and all of its tasks.
|
|
111
|
+
* @since 1.31.0
|
|
125
112
|
*/
|
|
126
113
|
defaults?: Id | Id[] | null;
|
|
127
114
|
/**
|
|
128
|
-
*
|
|
129
|
-
*
|
|
115
|
+
* A single toolchain, or list of toolchains, to inherit for
|
|
116
|
+
* this project and all of its tasks.
|
|
117
|
+
* @since 1.31.0
|
|
130
118
|
*/
|
|
131
119
|
default: Id | Id[] | null;
|
|
132
|
-
/** Overrides
|
|
133
|
-
deno: ProjectToolchainCommonToolConfig | null;
|
|
134
|
-
/** Overrides `node` settings. */
|
|
135
|
-
node: ProjectToolchainCommonToolConfig | null;
|
|
136
|
-
/** Overrides toolchains by their ID. */
|
|
120
|
+
/** Overrides workspace-level toolchains by their identifier. */
|
|
137
121
|
plugins: Record<Id, ProjectToolchainEntry>;
|
|
138
|
-
/** Overrides `python` settings. */
|
|
139
|
-
python: ProjectToolchainCommonToolConfig | null;
|
|
140
|
-
/** Overrides `rust` settings. */
|
|
141
|
-
rust: ProjectToolchainCommonToolConfig | null;
|
|
142
122
|
}
|
|
143
|
-
/** Controls how tasks are inherited. */
|
|
123
|
+
/** Controls how workspace-level tasks are inherited. */
|
|
144
124
|
export interface ProjectWorkspaceInheritedTasksConfig {
|
|
145
|
-
/** Excludes inheriting tasks by
|
|
125
|
+
/** Excludes inheriting tasks by their identifier. */
|
|
146
126
|
exclude: Id[];
|
|
147
127
|
/**
|
|
148
|
-
* Only inherits tasks
|
|
149
|
-
* When not defined, inherits
|
|
150
|
-
* When an empty list, inherits no tasks.
|
|
128
|
+
* Only inherits tasks with the provided identifiers,
|
|
129
|
+
* and ignores the rest. When not defined, inherits
|
|
130
|
+
* all matching tasks. When an empty list, inherits no tasks.
|
|
151
131
|
*/
|
|
152
132
|
include: Id[] | null;
|
|
153
|
-
/**
|
|
133
|
+
/**
|
|
134
|
+
* Renames inherited tasks by mapping their existing
|
|
135
|
+
* identifier to a new identifier, scoped to this project.
|
|
136
|
+
*/
|
|
154
137
|
rename: Record<Id, Id>;
|
|
155
138
|
}
|
|
156
|
-
/** Overrides
|
|
139
|
+
/** Overrides workspace settings, scoped to this project. */
|
|
157
140
|
export interface ProjectWorkspaceConfig {
|
|
158
141
|
/** Controls how tasks are inherited. */
|
|
159
142
|
inheritedTasks: ProjectWorkspaceInheritedTasksConfig;
|
|
@@ -163,43 +146,41 @@ export interface ProjectWorkspaceConfig {
|
|
|
163
146
|
* Docs: https://moonrepo.dev/docs/config/project
|
|
164
147
|
*/
|
|
165
148
|
export interface ProjectConfig {
|
|
166
|
-
|
|
167
|
-
|
|
149
|
+
$schema: string;
|
|
150
|
+
/** Other projects that this project depends on. */
|
|
151
|
+
deps?: ProjectDependsOn[];
|
|
168
152
|
/** Other projects that this project depends on. */
|
|
169
153
|
dependsOn: ProjectDependsOn[];
|
|
170
|
-
/**
|
|
154
|
+
/**
|
|
155
|
+
* Configures Docker integration for this project.
|
|
156
|
+
* @since 1.27.0
|
|
157
|
+
*/
|
|
171
158
|
docker: ProjectDockerConfig;
|
|
172
159
|
/**
|
|
173
|
-
* A
|
|
160
|
+
* A map of environment variables that will be inherited by
|
|
174
161
|
* all tasks within the project.
|
|
175
162
|
*/
|
|
176
|
-
env: Record<string, string>;
|
|
163
|
+
env: Record<string, string | null>;
|
|
177
164
|
/**
|
|
178
|
-
* A
|
|
165
|
+
* A map of group identifiers to a list of file paths, globs, and
|
|
179
166
|
* environment variables, that can be referenced from tasks.
|
|
180
167
|
*/
|
|
181
168
|
fileGroups: Record<Id, Input[]>;
|
|
182
169
|
/**
|
|
183
|
-
* Overrides the
|
|
170
|
+
* Overrides the identifier within the project graph, as defined in
|
|
184
171
|
* the workspace `projects` setting.
|
|
172
|
+
* @since 1.18.0
|
|
185
173
|
*/
|
|
186
174
|
id: Id | null;
|
|
187
175
|
/**
|
|
188
176
|
* The primary programming language of the project.
|
|
189
177
|
*
|
|
190
178
|
* @default 'unknown'
|
|
191
|
-
* @type {'bash' | 'batch' | 'go' | 'javascript' | 'php' | 'python' | 'ruby' | 'rust' | 'typescript' | 'unknown' | string}
|
|
179
|
+
* @type {'bash' | 'batch' | 'cplusplus' | 'csharp' | 'dotnet' | 'go' | 'java' | 'javascript' | 'kotlin' | 'php' | 'python' | 'ruby' | 'rust' | 'swift' | 'typescript' | 'unknown' | string}
|
|
192
180
|
*/
|
|
193
181
|
language: LanguageType;
|
|
194
182
|
/**
|
|
195
|
-
* The layer within the
|
|
196
|
-
*
|
|
197
|
-
* @default 'unknown'
|
|
198
|
-
* @type {'application' | 'automation' | 'configuration' | 'library' | 'scaffolding' | 'tool' | 'unknown'}
|
|
199
|
-
*/
|
|
200
|
-
type?: LayerType;
|
|
201
|
-
/**
|
|
202
|
-
* The layer within the project stack, for categorizing.
|
|
183
|
+
* The layer within the technology stack, for categorizing.
|
|
203
184
|
*
|
|
204
185
|
* @default 'unknown'
|
|
205
186
|
* @type {'application' | 'automation' | 'configuration' | 'library' | 'scaffolding' | 'tool' | 'unknown'}
|
|
@@ -208,23 +189,17 @@ export interface ProjectConfig {
|
|
|
208
189
|
/**
|
|
209
190
|
* Defines ownership of source code within the current project, by mapping
|
|
210
191
|
* file paths and globs to owners. An owner is either a user, team, or group.
|
|
192
|
+
* @since 1.8.0
|
|
211
193
|
*/
|
|
212
194
|
owners: OwnersConfig;
|
|
213
|
-
/**
|
|
214
|
-
* The default platform for all tasks within the project,
|
|
215
|
-
* if their platform is unknown.
|
|
216
|
-
*
|
|
217
|
-
* @default 'unknown'
|
|
218
|
-
* @deprecated
|
|
219
|
-
*/
|
|
220
|
-
platform: PlatformType | null;
|
|
221
195
|
/** Expanded information about the project. */
|
|
222
196
|
project: ProjectMetadataConfig | null;
|
|
223
197
|
/**
|
|
224
198
|
* The technology stack of the project, for categorizing.
|
|
199
|
+
* @since 1.22.0
|
|
225
200
|
*
|
|
226
201
|
* @default 'unknown'
|
|
227
|
-
* @type {'backend' | 'frontend' | 'infrastructure' | 'systems' | 'unknown'}
|
|
202
|
+
* @type {'backend' | 'data' | 'frontend' | 'infrastructure' | 'systems' | 'unknown'}
|
|
228
203
|
*/
|
|
229
204
|
stack: StackType;
|
|
230
205
|
/**
|
|
@@ -232,16 +207,19 @@ export interface ProjectConfig {
|
|
|
232
207
|
* boundary enforcement, and task inheritance.
|
|
233
208
|
*/
|
|
234
209
|
tags: Id[];
|
|
235
|
-
/**
|
|
210
|
+
/**
|
|
211
|
+
* A map of identifiers to task objects. Tasks represent the work-unit
|
|
212
|
+
* of a project, and can be ran in the action pipeline.
|
|
213
|
+
*/
|
|
236
214
|
tasks: Record<Id, TaskConfig>;
|
|
237
215
|
/** Overrides top-level toolchain settings, scoped to this project. */
|
|
238
|
-
|
|
216
|
+
toolchains: ProjectToolchainsConfig;
|
|
239
217
|
/** Overrides top-level workspace settings, scoped to this project. */
|
|
240
218
|
workspace: ProjectWorkspaceConfig;
|
|
241
219
|
}
|
|
242
220
|
/** Expanded information about a project dependency. */
|
|
243
221
|
export interface PartialProjectDependencyConfig {
|
|
244
|
-
/**
|
|
222
|
+
/** Identifier of the depended on project. */
|
|
245
223
|
id?: Id | null;
|
|
246
224
|
/**
|
|
247
225
|
* Scope of the dependency relationship.
|
|
@@ -259,38 +237,30 @@ export interface PartialProjectDependencyConfig {
|
|
|
259
237
|
via?: string | null;
|
|
260
238
|
}
|
|
261
239
|
export type PartialProjectDependsOn = Id | PartialProjectDependencyConfig;
|
|
262
|
-
/**
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
image?: string | null;
|
|
268
|
-
/** A task within the current project for starting the project. */
|
|
269
|
-
startTask?: Id | null;
|
|
270
|
-
}
|
|
271
|
-
/** Configures aspects of the Docker scaffolding process. */
|
|
272
|
-
export interface PartialProjectDockerScaffoldConfig {
|
|
240
|
+
/**
|
|
241
|
+
* Configures our Docker integration.
|
|
242
|
+
* @since 1.27.0
|
|
243
|
+
*/
|
|
244
|
+
export interface PartialProjectDockerConfig {
|
|
273
245
|
/**
|
|
274
|
-
*
|
|
275
|
-
*
|
|
246
|
+
* Configures aspects of the `Dockerfile` generation process.
|
|
247
|
+
* @since 1.27.0
|
|
276
248
|
*/
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
/** Configures aspects of the Docker scaffolding process. */
|
|
284
|
-
scaffold?: PartialProjectDockerScaffoldConfig | null;
|
|
249
|
+
file?: PartialDockerFileConfig | null;
|
|
250
|
+
/**
|
|
251
|
+
* Configures aspects of the Docker scaffolding process.
|
|
252
|
+
* @since 1.27.0
|
|
253
|
+
*/
|
|
254
|
+
scaffold?: PartialDockerScaffoldConfig | null;
|
|
285
255
|
}
|
|
286
256
|
export type PartialOwnersPaths = string[] | Record<string, string[]>;
|
|
287
257
|
/**
|
|
288
258
|
* Defines ownership of source code within the current project, by mapping
|
|
289
|
-
* file paths and
|
|
259
|
+
* file paths and glob patterns to owners. An owner is either a user, team, or group.
|
|
290
260
|
*/
|
|
291
261
|
export interface PartialOwnersConfig {
|
|
292
262
|
/**
|
|
293
|
-
* Bitbucket only. A
|
|
263
|
+
* Bitbucket only. A map of custom groups (prefixed with `@@@`),
|
|
294
264
|
* to a list of user and normal groups.
|
|
295
265
|
*/
|
|
296
266
|
customGroups?: Record<string, string[]> | null;
|
|
@@ -299,9 +269,9 @@ export interface PartialOwnersConfig {
|
|
|
299
269
|
/** GitLab only. Marks the code owners section as optional. */
|
|
300
270
|
optional?: boolean | null;
|
|
301
271
|
/**
|
|
302
|
-
* A
|
|
272
|
+
* A list or map of file paths and glob patterns to owners.
|
|
303
273
|
* When a list, the `defaultOwner` is the owner, and each item is a path.
|
|
304
|
-
* When
|
|
274
|
+
* When a map, the key is a path, and the value is a list of owners.
|
|
305
275
|
*/
|
|
306
276
|
paths?: PartialOwnersPaths | null;
|
|
307
277
|
/**
|
|
@@ -314,69 +284,59 @@ export interface PartialOwnersConfig {
|
|
|
314
284
|
/** Expanded information about the project. */
|
|
315
285
|
export interface PartialProjectMetadataConfig {
|
|
316
286
|
/**
|
|
317
|
-
* The Slack, Discord, etc, channel to discuss the project.
|
|
287
|
+
* The Slack, Discord, IRC, etc, channel to discuss the project.
|
|
318
288
|
* Must start with a `#`.
|
|
319
289
|
*/
|
|
320
290
|
channel?: string | null;
|
|
321
|
-
/** A description on what the project does
|
|
291
|
+
/** A description on what the project does and why it exists. */
|
|
322
292
|
description?: string | null;
|
|
323
293
|
/** The individual maintainers of the project. The format is unspecified. */
|
|
324
294
|
maintainers?: string[] | null;
|
|
325
295
|
/** Custom metadata fields. */
|
|
326
296
|
metadata?: Record<string, unknown> | null;
|
|
327
|
-
/** A human-readable name of the project. */
|
|
328
|
-
name?: string | null;
|
|
329
297
|
/**
|
|
330
298
|
* The owner of the project. Can be an individual, team, or
|
|
331
299
|
* organization. The format is unspecified.
|
|
332
300
|
*/
|
|
333
301
|
owner?: string | null;
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
export interface PartialProjectToolchainCommonToolConfig {
|
|
337
|
-
/** Version of the tool this project will use. */
|
|
338
|
-
version?: UnresolvedVersionSpec | null;
|
|
302
|
+
/** A human-readable title of the project. */
|
|
303
|
+
title?: string | null;
|
|
339
304
|
}
|
|
340
305
|
export type PartialProjectToolchainEntry = null | boolean | PartialToolchainPluginConfig;
|
|
341
306
|
/** Overrides top-level toolchain settings, scoped to this project. */
|
|
342
|
-
export interface
|
|
343
|
-
/** Overrides `bun` settings. */
|
|
344
|
-
bun?: PartialProjectToolchainCommonToolConfig | null;
|
|
307
|
+
export interface PartialProjectToolchainsConfig {
|
|
345
308
|
/**
|
|
346
|
-
*
|
|
347
|
-
*
|
|
309
|
+
* A single toolchain, or list of toolchains, to inherit for
|
|
310
|
+
* this project and all of its tasks.
|
|
311
|
+
* @since 1.31.0
|
|
348
312
|
*/
|
|
349
313
|
defaults?: Id | Id[] | null;
|
|
350
314
|
/**
|
|
351
|
-
*
|
|
352
|
-
*
|
|
315
|
+
* A single toolchain, or list of toolchains, to inherit for
|
|
316
|
+
* this project and all of its tasks.
|
|
317
|
+
* @since 1.31.0
|
|
353
318
|
*/
|
|
354
319
|
default?: Id | Id[] | null;
|
|
355
|
-
/** Overrides
|
|
356
|
-
deno?: PartialProjectToolchainCommonToolConfig | null;
|
|
357
|
-
/** Overrides `node` settings. */
|
|
358
|
-
node?: PartialProjectToolchainCommonToolConfig | null;
|
|
359
|
-
/** Overrides toolchains by their ID. */
|
|
320
|
+
/** Overrides workspace-level toolchains by their identifier. */
|
|
360
321
|
plugins?: Record<Id, PartialProjectToolchainEntry> | null;
|
|
361
|
-
/** Overrides `python` settings. */
|
|
362
|
-
python?: PartialProjectToolchainCommonToolConfig | null;
|
|
363
|
-
/** Overrides `rust` settings. */
|
|
364
|
-
rust?: PartialProjectToolchainCommonToolConfig | null;
|
|
365
322
|
}
|
|
366
|
-
/** Controls how tasks are inherited. */
|
|
323
|
+
/** Controls how workspace-level tasks are inherited. */
|
|
367
324
|
export interface PartialProjectWorkspaceInheritedTasksConfig {
|
|
368
|
-
/** Excludes inheriting tasks by
|
|
325
|
+
/** Excludes inheriting tasks by their identifier. */
|
|
369
326
|
exclude?: Id[] | null;
|
|
370
327
|
/**
|
|
371
|
-
* Only inherits tasks
|
|
372
|
-
* When not defined, inherits
|
|
373
|
-
* When an empty list, inherits no tasks.
|
|
328
|
+
* Only inherits tasks with the provided identifiers,
|
|
329
|
+
* and ignores the rest. When not defined, inherits
|
|
330
|
+
* all matching tasks. When an empty list, inherits no tasks.
|
|
374
331
|
*/
|
|
375
332
|
include?: Id[] | null;
|
|
376
|
-
/**
|
|
333
|
+
/**
|
|
334
|
+
* Renames inherited tasks by mapping their existing
|
|
335
|
+
* identifier to a new identifier, scoped to this project.
|
|
336
|
+
*/
|
|
377
337
|
rename?: Record<Id, Id> | null;
|
|
378
338
|
}
|
|
379
|
-
/** Overrides
|
|
339
|
+
/** Overrides workspace settings, scoped to this project. */
|
|
380
340
|
export interface PartialProjectWorkspaceConfig {
|
|
381
341
|
/** Controls how tasks are inherited. */
|
|
382
342
|
inheritedTasks?: PartialProjectWorkspaceInheritedTasksConfig | null;
|
|
@@ -386,25 +346,30 @@ export interface PartialProjectWorkspaceConfig {
|
|
|
386
346
|
* Docs: https://moonrepo.dev/docs/config/project
|
|
387
347
|
*/
|
|
388
348
|
export interface PartialProjectConfig {
|
|
389
|
-
/** @default 'https://moonrepo.dev/schemas/project.json' */
|
|
390
349
|
$schema?: string | null;
|
|
391
350
|
/** Other projects that this project depends on. */
|
|
351
|
+
deps?: PartialProjectDependsOn[] | null;
|
|
352
|
+
/** Other projects that this project depends on. */
|
|
392
353
|
dependsOn?: PartialProjectDependsOn[] | null;
|
|
393
|
-
/**
|
|
354
|
+
/**
|
|
355
|
+
* Configures Docker integration for this project.
|
|
356
|
+
* @since 1.27.0
|
|
357
|
+
*/
|
|
394
358
|
docker?: PartialProjectDockerConfig | null;
|
|
395
359
|
/**
|
|
396
|
-
* A
|
|
360
|
+
* A map of environment variables that will be inherited by
|
|
397
361
|
* all tasks within the project.
|
|
398
362
|
*/
|
|
399
|
-
env?: Record<string, string> | null;
|
|
363
|
+
env?: Record<string, string | null> | null;
|
|
400
364
|
/**
|
|
401
|
-
* A
|
|
365
|
+
* A map of group identifiers to a list of file paths, globs, and
|
|
402
366
|
* environment variables, that can be referenced from tasks.
|
|
403
367
|
*/
|
|
404
368
|
fileGroups?: Record<Id, Input[]> | null;
|
|
405
369
|
/**
|
|
406
|
-
* Overrides the
|
|
370
|
+
* Overrides the identifier within the project graph, as defined in
|
|
407
371
|
* the workspace `projects` setting.
|
|
372
|
+
* @since 1.18.0
|
|
408
373
|
*/
|
|
409
374
|
id?: Id | null;
|
|
410
375
|
/**
|
|
@@ -414,13 +379,7 @@ export interface PartialProjectConfig {
|
|
|
414
379
|
*/
|
|
415
380
|
language?: LanguageType | null;
|
|
416
381
|
/**
|
|
417
|
-
* The layer within the
|
|
418
|
-
*
|
|
419
|
-
* @default 'unknown'
|
|
420
|
-
*/
|
|
421
|
-
type?: LayerType | null;
|
|
422
|
-
/**
|
|
423
|
-
* The layer within the project stack, for categorizing.
|
|
382
|
+
* The layer within the technology stack, for categorizing.
|
|
424
383
|
*
|
|
425
384
|
* @default 'unknown'
|
|
426
385
|
*/
|
|
@@ -428,20 +387,14 @@ export interface PartialProjectConfig {
|
|
|
428
387
|
/**
|
|
429
388
|
* Defines ownership of source code within the current project, by mapping
|
|
430
389
|
* file paths and globs to owners. An owner is either a user, team, or group.
|
|
390
|
+
* @since 1.8.0
|
|
431
391
|
*/
|
|
432
392
|
owners?: PartialOwnersConfig | null;
|
|
433
|
-
/**
|
|
434
|
-
* The default platform for all tasks within the project,
|
|
435
|
-
* if their platform is unknown.
|
|
436
|
-
*
|
|
437
|
-
* @default 'unknown'
|
|
438
|
-
* @deprecated
|
|
439
|
-
*/
|
|
440
|
-
platform?: PlatformType | null;
|
|
441
393
|
/** Expanded information about the project. */
|
|
442
394
|
project?: PartialProjectMetadataConfig | null;
|
|
443
395
|
/**
|
|
444
396
|
* The technology stack of the project, for categorizing.
|
|
397
|
+
* @since 1.22.0
|
|
445
398
|
*
|
|
446
399
|
* @default 'unknown'
|
|
447
400
|
*/
|
|
@@ -451,10 +404,13 @@ export interface PartialProjectConfig {
|
|
|
451
404
|
* boundary enforcement, and task inheritance.
|
|
452
405
|
*/
|
|
453
406
|
tags?: Id[] | null;
|
|
454
|
-
/**
|
|
407
|
+
/**
|
|
408
|
+
* A map of identifiers to task objects. Tasks represent the work-unit
|
|
409
|
+
* of a project, and can be ran in the action pipeline.
|
|
410
|
+
*/
|
|
455
411
|
tasks?: Record<Id, PartialTaskConfig> | null;
|
|
456
412
|
/** Overrides top-level toolchain settings, scoped to this project. */
|
|
457
|
-
|
|
413
|
+
toolchains?: PartialProjectToolchainsConfig | null;
|
|
458
414
|
/** Overrides top-level workspace settings, scoped to this project. */
|
|
459
415
|
workspace?: PartialProjectWorkspaceConfig | null;
|
|
460
416
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-config.d.ts","sourceRoot":"","sources":["../src/project-config.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,KAAK,EAAE,KAAK,EAAE,iBAAiB,EAAE,
|
|
1
|
+
{"version":3,"file":"project-config.d.ts","sourceRoot":"","sources":["../src/project-config.ts"],"names":[],"mappings":"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"}
|