@ucdjs/pipelines-core 0.0.1-beta.7 → 0.0.1-beta.8
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/README.md +0 -3
- package/dist/index.d.mts +39 -343
- package/dist/index.mjs +99 -99
- package/dist/outputs/index.d.mts +17 -0
- package/dist/outputs/index.mjs +73 -0
- package/dist/route-BT-OXkF-.d.mts +96 -0
- package/dist/{source-Bnjgl99T.d.mts → source-Bw_42mA2.d.mts} +21 -4
- package/dist/source-UYQsDb7S.mjs +49 -0
- package/dist/sources/index.d.mts +2 -2
- package/dist/sources/index.mjs +3 -6
- package/dist/tracing/index.d.mts +178 -0
- package/dist/tracing/index.mjs +60 -0
- package/dist/{transform-C2GdfzQ-.d.mts → transform-BkBLzZAP.d.mts} +3 -2
- package/dist/{transform-BGOswbNk.mjs → transform-C7y-ZJKs.mjs} +2 -3
- package/dist/transforms/index.d.mts +2 -2
- package/dist/transforms/index.mjs +4 -8
- package/dist/{types-T24cxilU.d.mts → types-B_R0NiDI.d.mts} +16 -41
- package/dist/types-BxE_sFho.mjs +19 -0
- package/package.json +13 -8
- package/dist/source-EtWCktj_.mjs +0 -26
package/README.md
CHANGED
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
[![npm version][npm-version-src]][npm-version-href]
|
|
4
4
|
[![npm downloads][npm-downloads-src]][npm-downloads-href]
|
|
5
|
-
[![codecov][codecov-src]][codecov-href]
|
|
6
5
|
|
|
7
6
|
> [!IMPORTANT]
|
|
8
7
|
> This is an internal package. It may change without warning and is not subject to semantic versioning. Use at your own risk.
|
|
@@ -23,5 +22,3 @@ Published under [MIT License](./LICENSE).
|
|
|
23
22
|
[npm-version-href]: https://npmjs.com/package/@ucdjs/pipelines-core
|
|
24
23
|
[npm-downloads-src]: https://img.shields.io/npm/dm/@ucdjs/pipelines-core?style=flat&colorA=18181B&colorB=4169E1
|
|
25
24
|
[npm-downloads-href]: https://npmjs.com/package/@ucdjs/pipelines-core
|
|
26
|
-
[codecov-src]: https://img.shields.io/codecov/c/gh/ucdjs/ucd?style=flat&colorA=18181B&colorB=4169E1
|
|
27
|
-
[codecov-href]: https://codecov.io/gh/ucdjs/ucd
|
package/dist/index.d.mts
CHANGED
|
@@ -1,94 +1,20 @@
|
|
|
1
|
-
import { a as
|
|
2
|
-
import { a as
|
|
3
|
-
import { a as
|
|
4
|
-
import {
|
|
1
|
+
import { C as parseDependency, S as isRouteDependency, _ as ParseDependencyType, a as ResolveContext, b as PipelineDependency, c as FilesystemOutputSinkDefinition, d as RouteOutputDefinition, f as RouteOutputPathContext, g as ExtractRouteDependencies, h as normalizeRouteOutputs, i as PipelineRouteDefinition, l as NormalizedRouteOutputDefinition, m as filesystemSink, n as InferRoute, o as ResolverFn, p as RouteOutputPathResolver, r as InferRoutesOutput, s as definePipelineRoute, t as AnyPipelineRouteDefinition, u as OutputSinkDefinition, v as ParsedDependency, x as createRouteDependency, y as ParsedRouteDependency } from "./route-BT-OXkF-.mjs";
|
|
2
|
+
import { a as ParsedRow, c as PipelineLogLevel, d as ResolvedEntry, f as RowContext, i as ParseContext, l as PipelineLogger, n as FileContext, o as ParserFn, r as FilterContext, s as PipelineFilter, t as DefaultRange, u as PropertyJson } from "./types-B_R0NiDI.mjs";
|
|
3
|
+
import { a as PipelineTransformDefinition, c as definePipelineTransform, i as InferTransformOutput, n as ChainTransforms, o as TransformContext, r as InferTransformInput, s as applyTransforms } from "./transform-BkBLzZAP.mjs";
|
|
4
|
+
import { a as PipelineSourceDefinition, c as SourceFileContext, d as isPipelineOutputSource, f as pipelineOutputSource, i as PipelineOutputSourceDefinition, l as StreamOptions, m as resolveSourceFiles, n as InferSourceId, o as ResolveSourceContext, p as resolveMultipleSourceFiles, r as InferSourceIds, s as SourceBackend, t as FileMetadata, u as definePipelineSource } from "./source-Bw_42mA2.mjs";
|
|
5
5
|
|
|
6
|
-
//#region src/dependencies.d.ts
|
|
7
|
-
type RouteDependency = `route:${string}`;
|
|
8
|
-
type ArtifactDependency = `artifact:${string}:${string}`;
|
|
9
|
-
type PipelineDependency = RouteDependency | ArtifactDependency;
|
|
10
|
-
interface ParsedRouteDependency {
|
|
11
|
-
type: "route";
|
|
12
|
-
routeId: string;
|
|
13
|
-
}
|
|
14
|
-
interface ParsedArtifactDependency {
|
|
15
|
-
type: "artifact";
|
|
16
|
-
routeId: string;
|
|
17
|
-
artifactName: string;
|
|
18
|
-
}
|
|
19
|
-
type ParsedDependency = ParsedRouteDependency | ParsedArtifactDependency;
|
|
20
|
-
type ParseDependencyType<T extends string> = T extends `route:${infer RouteId}` ? {
|
|
21
|
-
type: "route";
|
|
22
|
-
routeId: RouteId;
|
|
23
|
-
} : T extends `artifact:${infer RouteId}:${infer ArtifactName}` ? {
|
|
24
|
-
type: "artifact";
|
|
25
|
-
routeId: RouteId;
|
|
26
|
-
artifactName: ArtifactName;
|
|
27
|
-
} : never;
|
|
28
|
-
type ExtractRouteDependencies<T extends readonly PipelineDependency[]> = { [K in keyof T]: T[K] extends `route:${infer RouteId}` ? RouteId : never }[number];
|
|
29
|
-
type ExtractArtifactDependencies<T extends readonly PipelineDependency[]> = { [K in keyof T]: T[K] extends `artifact:${infer RouteId}:${infer ArtifactName}` ? {
|
|
30
|
-
routeId: RouteId;
|
|
31
|
-
artifactName: ArtifactName;
|
|
32
|
-
} : never }[number];
|
|
33
|
-
type ExtractArtifactKeys<T extends readonly PipelineDependency[]> = { [K in keyof T]: T[K] extends `artifact:${infer RouteId}:${infer ArtifactName}` ? `${RouteId}:${ArtifactName}` : never }[number];
|
|
34
|
-
declare function parseDependency(dep: PipelineDependency): ParsedDependency;
|
|
35
|
-
declare function isRouteDependency(dep: PipelineDependency): dep is RouteDependency;
|
|
36
|
-
declare function isArtifactDependency(dep: PipelineDependency): dep is ArtifactDependency;
|
|
37
|
-
declare function createRouteDependency(routeId: string): RouteDependency;
|
|
38
|
-
declare function createArtifactDependency(routeId: string, artifactName: string): ArtifactDependency;
|
|
39
|
-
//#endregion
|
|
40
|
-
//#region src/route.d.ts
|
|
41
|
-
interface ArtifactDefinition<TSchema extends z.ZodType = z.ZodType> {
|
|
42
|
-
_type: "artifact" | "global-artifact";
|
|
43
|
-
schema: TSchema;
|
|
44
|
-
scope: "version" | "global";
|
|
45
|
-
}
|
|
46
|
-
type InferArtifactType<T extends ArtifactDefinition> = T extends ArtifactDefinition<infer TSchema> ? z.infer<TSchema> : never;
|
|
47
|
-
interface RouteResolveContext<TArtifactKeys extends string = string, TEmits extends Record<string, ArtifactDefinition> = Record<string, ArtifactDefinition>> {
|
|
48
|
-
version: string;
|
|
49
|
-
file: FileContext;
|
|
50
|
-
getArtifact: <K extends TArtifactKeys>(key: K) => unknown;
|
|
51
|
-
emitArtifact: <K extends keyof TEmits & string>(key: K, value: InferArtifactType<TEmits[K]>) => void;
|
|
52
|
-
normalizeEntries: (entries: ResolvedEntry[]) => ResolvedEntry[];
|
|
53
|
-
now: () => string;
|
|
54
|
-
}
|
|
55
|
-
type PipelineRouteResolver<TDepends extends readonly PipelineDependency[], TEmits extends Record<string, ArtifactDefinition>, TTransforms extends readonly AnyPipelineTransformDefinition[], TOutput> = (ctx: RouteResolveContext<ExtractArtifactKeys<TDepends>, TEmits>, rows: AsyncIterable<TTransforms extends readonly [] ? ParsedRow : ChainTransforms<ParsedRow, TTransforms>>) => Promise<TOutput>;
|
|
56
|
-
interface PipelineRouteDefinition<TId extends string = string, TDepends extends readonly PipelineDependency[] = readonly PipelineDependency[], TEmits extends Record<string, ArtifactDefinition> = Record<string, ArtifactDefinition>, TTransforms extends readonly AnyPipelineTransformDefinition[] = readonly [], TOutput = PropertyJson[]> {
|
|
57
|
-
id: TId;
|
|
58
|
-
filter: PipelineFilter;
|
|
59
|
-
depends?: TDepends;
|
|
60
|
-
emits?: TEmits;
|
|
61
|
-
parser: ParserFn;
|
|
62
|
-
transforms?: TTransforms;
|
|
63
|
-
resolver: PipelineRouteResolver<TDepends, TEmits, TTransforms, TOutput>;
|
|
64
|
-
out?: RouteOutput;
|
|
65
|
-
cache?: boolean;
|
|
66
|
-
}
|
|
67
|
-
type AnyPipelineRouteDefinition = PipelineRouteDefinition<any, any, any, any, any>;
|
|
68
|
-
declare function definePipelineRoute<const TId extends string, const TDepends extends readonly PipelineDependency[] = readonly [], const TEmits extends Record<string, ArtifactDefinition> = Record<string, never>, const TTransforms extends readonly AnyPipelineTransformDefinition[] = readonly [], TOutput = PropertyJson[]>(definition: PipelineRouteDefinition<TId, TDepends, TEmits, TTransforms, TOutput>): PipelineRouteDefinition<TId, TDepends, TEmits, TTransforms, TOutput>;
|
|
69
|
-
type InferRoute<T> = T extends PipelineRouteDefinition<infer TId, infer TDepends, infer TEmits, infer TTransforms extends readonly PipelineTransformDefinition<any, any>[], infer TOutput> ? {
|
|
70
|
-
id: TId;
|
|
71
|
-
depends: TDepends;
|
|
72
|
-
emits: TEmits;
|
|
73
|
-
transforms: TTransforms;
|
|
74
|
-
output: TOutput;
|
|
75
|
-
} : never;
|
|
76
|
-
type InferRoutesOutput<T extends readonly AnyPipelineRouteDefinition[]> = T[number] extends PipelineRouteDefinition<any, any, any, any, infer TOutput> ? TOutput extends unknown[] ? TOutput[number] : TOutput : never;
|
|
77
|
-
type InferEmittedArtifactsFromRoute<T> = T extends PipelineRouteDefinition<any, any, infer TEmits, any, any> ? { [K in keyof TEmits]: TEmits[K] extends ArtifactDefinition<infer TSchema> ? z.infer<TSchema> : never } : never;
|
|
78
|
-
//#endregion
|
|
79
6
|
//#region src/dag.d.ts
|
|
80
7
|
interface DAGNode {
|
|
81
8
|
id: string;
|
|
82
9
|
dependencies: Set<string>;
|
|
83
10
|
dependents: Set<string>;
|
|
84
|
-
emittedArtifacts: Set<string>;
|
|
85
11
|
}
|
|
86
12
|
interface DAG {
|
|
87
13
|
nodes: Map<string, DAGNode>;
|
|
88
14
|
executionOrder: string[];
|
|
89
15
|
}
|
|
90
16
|
interface DAGValidationError {
|
|
91
|
-
type: "cycle" | "missing-route" | "
|
|
17
|
+
type: "cycle" | "missing-route" | "duplicate-route";
|
|
92
18
|
message: string;
|
|
93
19
|
details: {
|
|
94
20
|
routeId?: string;
|
|
@@ -101,180 +27,30 @@ interface DAGValidationResult {
|
|
|
101
27
|
errors: DAGValidationError[];
|
|
102
28
|
dag?: DAG;
|
|
103
29
|
}
|
|
104
|
-
declare function buildDAG(routes: readonly PipelineRouteDefinition<any, any, any, any
|
|
30
|
+
declare function buildDAG(routes: readonly PipelineRouteDefinition<any, any, any, any>[]): DAGValidationResult;
|
|
105
31
|
declare function getExecutionLayers(dag: DAG): string[][];
|
|
106
32
|
//#endregion
|
|
107
|
-
//#region src/
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
timestamp: number;
|
|
129
|
-
}
|
|
130
|
-
interface VersionEndEvent {
|
|
131
|
-
id: string;
|
|
132
|
-
type: "version:end";
|
|
133
|
-
version: string;
|
|
134
|
-
durationMs: number;
|
|
135
|
-
spanId: string;
|
|
136
|
-
timestamp: number;
|
|
137
|
-
}
|
|
138
|
-
interface ArtifactStartEvent {
|
|
139
|
-
id: string;
|
|
140
|
-
type: "artifact:start";
|
|
141
|
-
artifactId: string;
|
|
142
|
-
version: string;
|
|
143
|
-
spanId: string;
|
|
144
|
-
timestamp: number;
|
|
145
|
-
}
|
|
146
|
-
interface ArtifactEndEvent {
|
|
147
|
-
id: string;
|
|
148
|
-
type: "artifact:end";
|
|
149
|
-
artifactId: string;
|
|
150
|
-
version: string;
|
|
151
|
-
durationMs: number;
|
|
152
|
-
spanId: string;
|
|
153
|
-
timestamp: number;
|
|
154
|
-
}
|
|
155
|
-
interface ArtifactProducedEvent {
|
|
156
|
-
id: string;
|
|
157
|
-
type: "artifact:produced";
|
|
158
|
-
artifactId: string;
|
|
159
|
-
routeId: string;
|
|
160
|
-
version: string;
|
|
161
|
-
spanId: string;
|
|
162
|
-
timestamp: number;
|
|
163
|
-
}
|
|
164
|
-
interface ArtifactConsumedEvent {
|
|
165
|
-
id: string;
|
|
166
|
-
type: "artifact:consumed";
|
|
167
|
-
artifactId: string;
|
|
168
|
-
routeId: string;
|
|
169
|
-
version: string;
|
|
170
|
-
spanId: string;
|
|
171
|
-
timestamp: number;
|
|
172
|
-
}
|
|
173
|
-
interface FileMatchedEvent {
|
|
174
|
-
id: string;
|
|
175
|
-
type: "file:matched";
|
|
176
|
-
file: FileContext;
|
|
177
|
-
routeId: string;
|
|
178
|
-
spanId: string;
|
|
179
|
-
timestamp: number;
|
|
180
|
-
}
|
|
181
|
-
interface FileSkippedEvent {
|
|
182
|
-
id: string;
|
|
183
|
-
type: "file:skipped";
|
|
184
|
-
file: FileContext;
|
|
185
|
-
reason: "no-match" | "filtered";
|
|
186
|
-
spanId: string;
|
|
187
|
-
timestamp: number;
|
|
188
|
-
}
|
|
189
|
-
interface FileFallbackEvent {
|
|
190
|
-
id: string;
|
|
191
|
-
type: "file:fallback";
|
|
192
|
-
file: FileContext;
|
|
193
|
-
spanId: string;
|
|
194
|
-
timestamp: number;
|
|
195
|
-
}
|
|
196
|
-
interface ParseStartEvent {
|
|
197
|
-
id: string;
|
|
198
|
-
type: "parse:start";
|
|
199
|
-
file: FileContext;
|
|
200
|
-
routeId: string;
|
|
201
|
-
spanId: string;
|
|
202
|
-
timestamp: number;
|
|
203
|
-
}
|
|
204
|
-
interface ParseEndEvent {
|
|
205
|
-
id: string;
|
|
206
|
-
type: "parse:end";
|
|
207
|
-
file: FileContext;
|
|
208
|
-
routeId: string;
|
|
209
|
-
rowCount: number;
|
|
210
|
-
durationMs: number;
|
|
211
|
-
spanId: string;
|
|
212
|
-
timestamp: number;
|
|
213
|
-
}
|
|
214
|
-
interface ResolveStartEvent {
|
|
215
|
-
id: string;
|
|
216
|
-
type: "resolve:start";
|
|
217
|
-
file: FileContext;
|
|
218
|
-
routeId: string;
|
|
219
|
-
spanId: string;
|
|
220
|
-
timestamp: number;
|
|
221
|
-
}
|
|
222
|
-
interface ResolveEndEvent {
|
|
223
|
-
id: string;
|
|
224
|
-
type: "resolve:end";
|
|
225
|
-
file: FileContext;
|
|
226
|
-
routeId: string;
|
|
227
|
-
outputCount: number;
|
|
228
|
-
durationMs: number;
|
|
229
|
-
spanId: string;
|
|
230
|
-
timestamp: number;
|
|
231
|
-
}
|
|
232
|
-
interface CacheHitEvent {
|
|
233
|
-
id: string;
|
|
234
|
-
type: "cache:hit";
|
|
235
|
-
routeId: string;
|
|
236
|
-
file: FileContext;
|
|
237
|
-
version: string;
|
|
238
|
-
spanId: string;
|
|
239
|
-
timestamp: number;
|
|
240
|
-
}
|
|
241
|
-
interface CacheMissEvent {
|
|
242
|
-
id: string;
|
|
243
|
-
type: "cache:miss";
|
|
244
|
-
routeId: string;
|
|
245
|
-
file: FileContext;
|
|
246
|
-
version: string;
|
|
247
|
-
spanId: string;
|
|
248
|
-
timestamp: number;
|
|
249
|
-
}
|
|
250
|
-
interface CacheStoreEvent {
|
|
251
|
-
id: string;
|
|
252
|
-
type: "cache:store";
|
|
253
|
-
routeId: string;
|
|
254
|
-
file: FileContext;
|
|
255
|
-
version: string;
|
|
256
|
-
spanId: string;
|
|
257
|
-
timestamp: number;
|
|
258
|
-
}
|
|
259
|
-
interface PipelineErrorEvent {
|
|
260
|
-
id: string;
|
|
261
|
-
type: "error";
|
|
262
|
-
error: PipelineError;
|
|
263
|
-
spanId: string;
|
|
264
|
-
timestamp: number;
|
|
265
|
-
}
|
|
266
|
-
type PipelineEvent = PipelineStartEvent | PipelineEndEvent | VersionStartEvent | VersionEndEvent | ArtifactStartEvent | ArtifactEndEvent | ArtifactProducedEvent | ArtifactConsumedEvent | FileMatchedEvent | FileSkippedEvent | FileFallbackEvent | ParseStartEvent | ParseEndEvent | ResolveStartEvent | ResolveEndEvent | CacheHitEvent | CacheMissEvent | CacheStoreEvent | PipelineErrorEvent;
|
|
267
|
-
type PipelineErrorScope = "pipeline" | "version" | "file" | "route" | "artifact";
|
|
268
|
-
interface PipelineError {
|
|
269
|
-
scope: PipelineErrorScope;
|
|
270
|
-
message: string;
|
|
271
|
-
error?: unknown;
|
|
272
|
-
file?: FileContext;
|
|
273
|
-
routeId?: string;
|
|
274
|
-
artifactId?: string;
|
|
275
|
-
version?: string;
|
|
276
|
-
}
|
|
277
|
-
type PipelineGraphNodeType = "source" | "file" | "route" | "artifact" | "output";
|
|
33
|
+
//#region src/filters.d.ts
|
|
34
|
+
declare const FILTER_NODE: unique symbol;
|
|
35
|
+
declare function createPipelineFilter(caller: {
|
|
36
|
+
name: string;
|
|
37
|
+
}, args: readonly unknown[], filter: PipelineFilter): PipelineFilter;
|
|
38
|
+
declare function getFilterDescription(filter: PipelineFilter): string | undefined;
|
|
39
|
+
declare function byName(name: string): PipelineFilter;
|
|
40
|
+
declare function byDir(dir: FileContext["dir"]): PipelineFilter;
|
|
41
|
+
declare function byExt(ext: string): PipelineFilter;
|
|
42
|
+
declare function byGlob(pattern: string): PipelineFilter;
|
|
43
|
+
declare function byPath(pathPattern: string | RegExp): PipelineFilter;
|
|
44
|
+
declare function byProp(pattern: string | RegExp): PipelineFilter;
|
|
45
|
+
declare function bySource(sourceIds: string | readonly string[]): PipelineFilter;
|
|
46
|
+
declare function and(...filters: PipelineFilter[]): PipelineFilter;
|
|
47
|
+
declare function or(...filters: PipelineFilter[]): PipelineFilter;
|
|
48
|
+
declare function not(filter: PipelineFilter): PipelineFilter;
|
|
49
|
+
declare function always(): PipelineFilter;
|
|
50
|
+
declare function never(): PipelineFilter;
|
|
51
|
+
//#endregion
|
|
52
|
+
//#region src/graph.d.ts
|
|
53
|
+
type PipelineGraphNodeType = "source" | "file" | "route" | "output";
|
|
278
54
|
type PipelineGraphNode = {
|
|
279
55
|
id: string;
|
|
280
56
|
type: "source";
|
|
@@ -287,17 +63,15 @@ type PipelineGraphNode = {
|
|
|
287
63
|
id: string;
|
|
288
64
|
type: "route";
|
|
289
65
|
routeId: string;
|
|
290
|
-
} | {
|
|
291
|
-
id: string;
|
|
292
|
-
type: "artifact";
|
|
293
|
-
artifactId: string;
|
|
294
66
|
} | {
|
|
295
67
|
id: string;
|
|
296
68
|
type: "output";
|
|
297
69
|
outputIndex: number;
|
|
298
70
|
property?: string;
|
|
71
|
+
outputId?: string;
|
|
72
|
+
locator?: string;
|
|
299
73
|
};
|
|
300
|
-
type PipelineGraphEdgeType = "provides" | "matched" | "parsed" | "resolved"
|
|
74
|
+
type PipelineGraphEdgeType = "provides" | "matched" | "parsed" | "resolved";
|
|
301
75
|
interface PipelineGraphEdge {
|
|
302
76
|
from: string;
|
|
303
77
|
to: string;
|
|
@@ -307,81 +81,9 @@ interface PipelineGraph {
|
|
|
307
81
|
nodes: PipelineGraphNode[];
|
|
308
82
|
edges: PipelineGraphEdge[];
|
|
309
83
|
}
|
|
310
|
-
type PipelineEventInput = Omit<PipelineStartEvent, "id" | "spanId"> & {
|
|
311
|
-
id?: string;
|
|
312
|
-
spanId?: string;
|
|
313
|
-
} | Omit<PipelineEndEvent, "id" | "spanId"> & {
|
|
314
|
-
id?: string;
|
|
315
|
-
spanId?: string;
|
|
316
|
-
} | Omit<VersionStartEvent, "id" | "spanId"> & {
|
|
317
|
-
id?: string;
|
|
318
|
-
spanId?: string;
|
|
319
|
-
} | Omit<VersionEndEvent, "id" | "spanId"> & {
|
|
320
|
-
id?: string;
|
|
321
|
-
spanId?: string;
|
|
322
|
-
} | Omit<ArtifactStartEvent, "id" | "spanId"> & {
|
|
323
|
-
id?: string;
|
|
324
|
-
spanId?: string;
|
|
325
|
-
} | Omit<ArtifactEndEvent, "id" | "spanId"> & {
|
|
326
|
-
id?: string;
|
|
327
|
-
spanId?: string;
|
|
328
|
-
} | Omit<ArtifactProducedEvent, "id" | "spanId"> & {
|
|
329
|
-
id?: string;
|
|
330
|
-
spanId?: string;
|
|
331
|
-
} | Omit<ArtifactConsumedEvent, "id" | "spanId"> & {
|
|
332
|
-
id?: string;
|
|
333
|
-
spanId?: string;
|
|
334
|
-
} | Omit<FileMatchedEvent, "id" | "spanId"> & {
|
|
335
|
-
id?: string;
|
|
336
|
-
spanId?: string;
|
|
337
|
-
} | Omit<FileSkippedEvent, "id" | "spanId"> & {
|
|
338
|
-
id?: string;
|
|
339
|
-
spanId?: string;
|
|
340
|
-
} | Omit<FileFallbackEvent, "id" | "spanId"> & {
|
|
341
|
-
id?: string;
|
|
342
|
-
spanId?: string;
|
|
343
|
-
} | Omit<ParseStartEvent, "id" | "spanId"> & {
|
|
344
|
-
id?: string;
|
|
345
|
-
spanId?: string;
|
|
346
|
-
} | Omit<ParseEndEvent, "id" | "spanId"> & {
|
|
347
|
-
id?: string;
|
|
348
|
-
spanId?: string;
|
|
349
|
-
} | Omit<ResolveStartEvent, "id" | "spanId"> & {
|
|
350
|
-
id?: string;
|
|
351
|
-
spanId?: string;
|
|
352
|
-
} | Omit<ResolveEndEvent, "id" | "spanId"> & {
|
|
353
|
-
id?: string;
|
|
354
|
-
spanId?: string;
|
|
355
|
-
} | Omit<CacheHitEvent, "id" | "spanId"> & {
|
|
356
|
-
id?: string;
|
|
357
|
-
spanId?: string;
|
|
358
|
-
} | Omit<CacheMissEvent, "id" | "spanId"> & {
|
|
359
|
-
id?: string;
|
|
360
|
-
spanId?: string;
|
|
361
|
-
} | Omit<CacheStoreEvent, "id" | "spanId"> & {
|
|
362
|
-
id?: string;
|
|
363
|
-
spanId?: string;
|
|
364
|
-
} | Omit<PipelineErrorEvent, "id" | "spanId"> & {
|
|
365
|
-
id?: string;
|
|
366
|
-
spanId?: string;
|
|
367
|
-
};
|
|
368
|
-
//#endregion
|
|
369
|
-
//#region src/filters.d.ts
|
|
370
|
-
declare function byName(name: string): PipelineFilter;
|
|
371
|
-
declare function byDir(dir: FileContext["dir"]): PipelineFilter;
|
|
372
|
-
declare function byExt(ext: string): PipelineFilter;
|
|
373
|
-
declare function byGlob(pattern: string): PipelineFilter;
|
|
374
|
-
declare function byPath(pathPattern: string | RegExp): PipelineFilter;
|
|
375
|
-
declare function byProp(pattern: string | RegExp): PipelineFilter;
|
|
376
|
-
declare function bySource(sourceIds: string | string[]): PipelineFilter;
|
|
377
|
-
declare function and(...filters: PipelineFilter[]): PipelineFilter;
|
|
378
|
-
declare function or(...filters: PipelineFilter[]): PipelineFilter;
|
|
379
|
-
declare function not(filter: PipelineFilter): PipelineFilter;
|
|
380
|
-
declare function always(): PipelineFilter;
|
|
381
|
-
declare function never(): PipelineFilter;
|
|
382
84
|
//#endregion
|
|
383
85
|
//#region src/pipeline.d.ts
|
|
384
|
-
interface FallbackRouteDefinition<
|
|
86
|
+
interface FallbackRouteDefinition<TOutput = unknown> {
|
|
385
87
|
/**
|
|
386
88
|
* Optional filter to restrict which unmatched files the fallback handles.
|
|
387
89
|
*/
|
|
@@ -393,9 +95,9 @@ interface FallbackRouteDefinition<TArtifacts extends Record<string, unknown> = R
|
|
|
393
95
|
/**
|
|
394
96
|
* Resolver function that transforms parsed rows into output.
|
|
395
97
|
*/
|
|
396
|
-
resolver: (ctx: ResolveContext
|
|
98
|
+
resolver: (ctx: ResolveContext, rows: AsyncIterable<ParsedRow>) => Promise<TOutput>;
|
|
397
99
|
}
|
|
398
|
-
interface PipelineDefinitionSpec<TSources extends readonly PipelineSourceDefinition[] = readonly PipelineSourceDefinition[], TRoutes extends readonly AnyPipelineRouteDefinition[] = readonly AnyPipelineRouteDefinition[], TFallback extends FallbackRouteDefinition<
|
|
100
|
+
interface PipelineDefinitionSpec<TSources extends readonly PipelineSourceDefinition[] = readonly PipelineSourceDefinition[], TRoutes extends readonly AnyPipelineRouteDefinition[] = readonly AnyPipelineRouteDefinition[], TFallback extends FallbackRouteDefinition<unknown> | undefined = undefined> {
|
|
399
101
|
/**
|
|
400
102
|
* Unique identifier for the pipeline.
|
|
401
103
|
*/
|
|
@@ -442,15 +144,9 @@ interface PipelineDefinitionSpec<TSources extends readonly PipelineSourceDefinit
|
|
|
442
144
|
* Fallback handler for files that don't match any route.
|
|
443
145
|
*/
|
|
444
146
|
fallback?: TFallback;
|
|
445
|
-
/**
|
|
446
|
-
* Event handler for pipeline events.
|
|
447
|
-
* Note: This is stored but not invoked by the definition itself.
|
|
448
|
-
* The executor is responsible for calling this.
|
|
449
|
-
*/
|
|
450
|
-
onEvent?: (event: PipelineEvent) => void | Promise<void>;
|
|
451
147
|
}
|
|
452
|
-
type PipelineDefinitionOptions<TSources extends readonly PipelineSourceDefinition[] = readonly PipelineSourceDefinition[], TRoutes extends readonly PipelineRouteDefinition<any, any, any, any
|
|
453
|
-
type PipelineDefinition<TId extends string = string, TSources extends readonly PipelineSourceDefinition[] = readonly PipelineSourceDefinition[], TRoutes extends readonly PipelineRouteDefinition<any, any, any, any
|
|
148
|
+
type PipelineDefinitionOptions<TSources extends readonly PipelineSourceDefinition[] = readonly PipelineSourceDefinition[], TRoutes extends readonly PipelineRouteDefinition<any, any, any, any>[] = readonly PipelineRouteDefinition<any, any, any, any>[], TFallback extends FallbackRouteDefinition<unknown> | undefined = undefined> = PipelineDefinitionSpec<TSources, TRoutes, TFallback>;
|
|
149
|
+
type PipelineDefinition<TId extends string = string, TSources extends readonly PipelineSourceDefinition[] = readonly PipelineSourceDefinition[], TRoutes extends readonly PipelineRouteDefinition<any, any, any, any>[] = readonly PipelineRouteDefinition<any, any, any, any>[], TFallback extends FallbackRouteDefinition<unknown> | undefined = undefined> = Readonly<PipelineDefinitionSpec<TSources, TRoutes, TFallback>> & {
|
|
454
150
|
/**
|
|
455
151
|
* Marker to identify this as a pipeline definition.
|
|
456
152
|
*/
|
|
@@ -478,9 +174,9 @@ type PipelineDefinition<TId extends string = string, TSources extends readonly P
|
|
|
478
174
|
readonly tags: string[];
|
|
479
175
|
};
|
|
480
176
|
type AnyPipelineDefinition = PipelineDefinition<any, any, any, any>;
|
|
481
|
-
type InferPipelineOutput<TRoutes extends readonly PipelineRouteDefinition<any, any, any, any
|
|
177
|
+
type InferPipelineOutput<TRoutes extends readonly PipelineRouteDefinition<any, any, any, any>[], TFallback extends FallbackRouteDefinition<unknown> | undefined> = TFallback extends FallbackRouteDefinition<infer TFallbackOutput> ? InferRoutesOutput<TRoutes> | TFallbackOutput : InferRoutesOutput<TRoutes>;
|
|
482
178
|
type InferPipelineSourceIds<T> = T extends PipelineDefinition<any, infer TSources, any, any> ? InferSourceIds<TSources> : never;
|
|
483
|
-
type InferPipelineRouteIds<T> = T extends PipelineDefinition<any, any, infer TRoutes, any> ? TRoutes[number] extends PipelineRouteDefinition<infer TId, any, any, any
|
|
179
|
+
type InferPipelineRouteIds<T> = T extends PipelineDefinition<any, any, infer TRoutes, any> ? TRoutes[number] extends PipelineRouteDefinition<infer TId, any, any, any> ? TId : never : never;
|
|
484
180
|
/**
|
|
485
181
|
* Define a pipeline configuration.
|
|
486
182
|
*
|
|
@@ -502,7 +198,7 @@ type InferPipelineRouteIds<T> = T extends PipelineDefinition<any, any, infer TRo
|
|
|
502
198
|
* const result = await executor.run();
|
|
503
199
|
* ```
|
|
504
200
|
*/
|
|
505
|
-
declare function definePipeline<const TId extends string, const TSources extends readonly PipelineSourceDefinition[], const TRoutes extends readonly PipelineRouteDefinition<any, any, any, any
|
|
201
|
+
declare function definePipeline<const TId extends string, const TSources extends readonly PipelineSourceDefinition[], const TRoutes extends readonly PipelineRouteDefinition<any, any, any, any>[], const TFallback extends FallbackRouteDefinition<unknown> | undefined = undefined>(options: Omit<PipelineDefinitionSpec<readonly [...TSources], readonly [...TRoutes], TFallback>, "inputs" | "routes"> & {
|
|
506
202
|
id: TId;
|
|
507
203
|
inputs: readonly [...TSources];
|
|
508
204
|
routes: readonly [...TRoutes];
|
|
@@ -528,4 +224,4 @@ declare function splitTwoFields(line: string, delimiter: string): [string, strin
|
|
|
528
224
|
*/
|
|
529
225
|
declare function splitMinFields(line: string, delimiter: string, minFields: number): string[] | null;
|
|
530
226
|
//#endregion
|
|
531
|
-
export { type AnyPipelineDefinition, type AnyPipelineRouteDefinition, type
|
|
227
|
+
export { type AnyPipelineDefinition, type AnyPipelineRouteDefinition, type ChainTransforms, type DAG, type DAGNode, type DAGValidationError, type DAGValidationResult, type DefaultRange, type ExtractRouteDependencies, FILTER_NODE, type FallbackRouteDefinition, type FileContext, type FileMetadata, type FilesystemOutputSinkDefinition, type FilterContext, type InferPipelineOutput, type InferPipelineRouteIds, type InferPipelineSourceIds, type InferRoute, type InferRoutesOutput, type InferSourceId, type InferSourceIds, type InferTransformInput, type InferTransformOutput, type NormalizedRouteOutputDefinition, type OutputSinkDefinition, type ParseContext, type ParseDependencyType, type ParsedDependency, type ParsedRouteDependency, type ParsedRow, type ParserFn, type PipelineDefinition, type PipelineDefinitionOptions, type PipelineDefinitionSpec, type PipelineDependency, type PipelineFilter, type PipelineGraph, type PipelineGraphEdge, type PipelineGraphEdgeType, type PipelineGraphNode, type PipelineGraphNodeType, type PipelineLogLevel, type PipelineLogger, type PipelineOutputSourceDefinition, type PipelineRouteDefinition, type PipelineSourceDefinition, type PipelineTransformDefinition, type PropertyJson, type ResolveContext, type ResolveSourceContext, type ResolvedEntry, type ResolverFn, type RouteOutputDefinition, type RouteOutputPathContext, type RouteOutputPathResolver, type RowContext, type SourceBackend, type SourceFileContext, type StreamOptions, type TransformContext, always, and, applyTransforms, buildDAG, byDir, byExt, byGlob, byName, byPath, byProp, bySource, createPipelineFilter, createRouteDependency, definePipeline, definePipelineRoute, definePipelineSource, definePipelineTransform, filesystemSink, getExecutionLayers, getFilterDescription, getPipelineRouteIds, getPipelineSourceIds, isPipelineDefinition, isPipelineOutputSource, isRouteDependency, never, normalizeRouteOutputs, not, or, parseDependency, pipelineOutputSource, resolveMultipleSourceFiles, resolveSourceFiles, splitMinFields, splitTwoFields };
|