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