@wpkernel/pipeline 0.12.3-beta.2 → 0.12.5-beta.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/README.md +71 -88
- package/dist/createPipeline.d.ts.map +1 -1
- package/dist/createPipeline.js +6 -119
- package/dist/extensions/index.d.ts +2 -2
- package/dist/extensions.d.ts +2 -2
- package/dist/index.d.ts +8 -8
- package/dist/internal/diagnostic-manager.types.d.ts +2 -2
- package/dist/internal/extension-coordinator.d.ts +2 -2
- package/dist/internal/pipeline-runner.types.d.ts +28 -0
- package/dist/internal/pipeline-runner.types.d.ts.map +1 -1
- package/dist/internal/runner/context.d.ts +6 -0
- package/dist/internal/runner/context.d.ts.map +1 -0
- package/dist/internal/runner/context.js +169 -0
- package/dist/internal/runner/execution.d.ts +6 -0
- package/dist/internal/runner/execution.d.ts.map +1 -0
- package/dist/internal/runner/execution.js +40 -0
- package/dist/internal/{pipeline-runner.d.ts → runner/index.d.ts} +4 -9
- package/dist/internal/runner/index.d.ts.map +1 -0
- package/dist/internal/runner/index.js +11 -0
- package/dist/internal/runner/program.d.ts +8 -0
- package/dist/internal/runner/program.d.ts.map +1 -0
- package/dist/internal/runner/program.js +294 -0
- package/dist/makePipeline.d.ts +20 -0
- package/dist/makePipeline.d.ts.map +1 -0
- package/dist/makePipeline.js +139 -0
- package/dist/registration.d.ts.map +1 -1
- package/dist/registration.js +17 -15
- package/dist/types.d.ts +1 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/internal/pipeline-runner.d.ts.map +0 -1
- package/dist/internal/pipeline-runner.js +0 -343
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
import { createDependencyGraph as b } from "../../dependency-graph.js";
|
|
2
|
+
const H = (e, i) => {
|
|
3
|
+
const c = e.options.createBuildOptions(i), l = e.options.createContext(i);
|
|
4
|
+
e.diagnosticManager.setReporter(l.reporter);
|
|
5
|
+
const p = e.options.createFragmentState({
|
|
6
|
+
options: i,
|
|
7
|
+
context: l,
|
|
8
|
+
buildOptions: c
|
|
9
|
+
}), d = /* @__PURE__ */ new Map();
|
|
10
|
+
for (const [r, o] of e.helperRegistries.entries()) {
|
|
11
|
+
let n;
|
|
12
|
+
r === e.fragmentKind ? n = {
|
|
13
|
+
providedKeys: e.options.fragmentProvidedKeys,
|
|
14
|
+
onMissingDependency: ({ dependant: a, dependencyKey: s }) => {
|
|
15
|
+
const t = a.helper;
|
|
16
|
+
e.diagnosticManager.flagMissingDependency(
|
|
17
|
+
t,
|
|
18
|
+
s,
|
|
19
|
+
r
|
|
20
|
+
), e.diagnosticManager.flagUnusedHelper(
|
|
21
|
+
t,
|
|
22
|
+
r,
|
|
23
|
+
`could not execute because dependency "${s}" was not found`,
|
|
24
|
+
t.dependsOn
|
|
25
|
+
);
|
|
26
|
+
},
|
|
27
|
+
onUnresolvedHelpers: ({ unresolved: a }) => {
|
|
28
|
+
for (const s of a) {
|
|
29
|
+
const t = s.helper;
|
|
30
|
+
e.diagnosticManager.flagUnusedHelper(
|
|
31
|
+
t,
|
|
32
|
+
r,
|
|
33
|
+
"could not execute because its dependencies never resolved",
|
|
34
|
+
t.dependsOn
|
|
35
|
+
);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
} : r === e.builderKind ? n = {
|
|
39
|
+
providedKeys: e.options.builderProvidedKeys,
|
|
40
|
+
onMissingDependency: ({ dependant: a, dependencyKey: s }) => {
|
|
41
|
+
const t = a.helper;
|
|
42
|
+
e.diagnosticManager.flagMissingDependency(
|
|
43
|
+
t,
|
|
44
|
+
s,
|
|
45
|
+
e.builderKind
|
|
46
|
+
), e.diagnosticManager.flagUnusedHelper(
|
|
47
|
+
t,
|
|
48
|
+
e.builderKind,
|
|
49
|
+
`could not execute because dependency "${s}" was not found`,
|
|
50
|
+
t.dependsOn
|
|
51
|
+
);
|
|
52
|
+
},
|
|
53
|
+
onUnresolvedHelpers: ({ unresolved: a }) => {
|
|
54
|
+
for (const s of a) {
|
|
55
|
+
const t = s.helper;
|
|
56
|
+
e.diagnosticManager.flagUnusedHelper(
|
|
57
|
+
t,
|
|
58
|
+
e.builderKind,
|
|
59
|
+
"could not execute because its dependencies never resolved",
|
|
60
|
+
t.dependsOn
|
|
61
|
+
);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
} : n = {
|
|
65
|
+
onMissingDependency: ({ dependant: a, dependencyKey: s }) => {
|
|
66
|
+
const t = a.helper;
|
|
67
|
+
e.diagnosticManager.flagMissingDependency(
|
|
68
|
+
t,
|
|
69
|
+
s,
|
|
70
|
+
r
|
|
71
|
+
);
|
|
72
|
+
},
|
|
73
|
+
onUnresolvedHelpers: ({ unresolved: a }) => {
|
|
74
|
+
for (const s of a) {
|
|
75
|
+
const t = s.helper;
|
|
76
|
+
e.diagnosticManager.flagUnusedHelper(
|
|
77
|
+
t,
|
|
78
|
+
r,
|
|
79
|
+
"could not execute because its dependencies never resolved",
|
|
80
|
+
t.dependsOn
|
|
81
|
+
);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
const { order: v } = b(
|
|
86
|
+
o,
|
|
87
|
+
n,
|
|
88
|
+
e.createError
|
|
89
|
+
);
|
|
90
|
+
d.set(r, v);
|
|
91
|
+
}
|
|
92
|
+
const u = d.get(e.fragmentKind) ?? [], g = [], f = (r) => {
|
|
93
|
+
const o = r.helper;
|
|
94
|
+
g.push({
|
|
95
|
+
id: r.id,
|
|
96
|
+
index: g.length,
|
|
97
|
+
key: o.key,
|
|
98
|
+
kind: o.kind,
|
|
99
|
+
mode: o.mode,
|
|
100
|
+
priority: o.priority,
|
|
101
|
+
dependsOn: o.dependsOn,
|
|
102
|
+
origin: o.origin
|
|
103
|
+
});
|
|
104
|
+
}, h = {
|
|
105
|
+
providedKeys: e.options.builderProvidedKeys,
|
|
106
|
+
onMissingDependency: ({ dependant: r, dependencyKey: o }) => {
|
|
107
|
+
const n = r.helper;
|
|
108
|
+
e.diagnosticManager.flagMissingDependency(
|
|
109
|
+
n,
|
|
110
|
+
o,
|
|
111
|
+
e.builderKind
|
|
112
|
+
), e.diagnosticManager.flagUnusedHelper(
|
|
113
|
+
n,
|
|
114
|
+
e.builderKind,
|
|
115
|
+
`could not execute because dependency "${o}" was not found`,
|
|
116
|
+
n.dependsOn
|
|
117
|
+
);
|
|
118
|
+
},
|
|
119
|
+
onUnresolvedHelpers: ({ unresolved: r }) => {
|
|
120
|
+
for (const o of r) {
|
|
121
|
+
const n = o.helper;
|
|
122
|
+
e.diagnosticManager.flagUnusedHelper(
|
|
123
|
+
n,
|
|
124
|
+
e.builderKind,
|
|
125
|
+
"could not execute because its dependencies never resolved",
|
|
126
|
+
n.dependsOn
|
|
127
|
+
);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}, M = e.options.createExtensionHookOptions ?? ((r) => ({
|
|
131
|
+
context: r.context,
|
|
132
|
+
options: r.options,
|
|
133
|
+
artifact: r.artifact,
|
|
134
|
+
lifecycle: r.lifecycle
|
|
135
|
+
})), y = (r, o) => M({
|
|
136
|
+
context: l,
|
|
137
|
+
options: i,
|
|
138
|
+
buildOptions: c,
|
|
139
|
+
artifact: r,
|
|
140
|
+
lifecycle: o
|
|
141
|
+
}), x = e.options.onExtensionRollbackError ?? ((r) => {
|
|
142
|
+
const { reporter: o } = r.context, n = o.warn;
|
|
143
|
+
typeof n == "function" && n.call(o, "Pipeline extension rollback failed.", {
|
|
144
|
+
error: r.error,
|
|
145
|
+
errorName: r.errorMetadata.name,
|
|
146
|
+
errorMessage: r.errorMetadata.message,
|
|
147
|
+
errorStack: r.errorMetadata.stack,
|
|
148
|
+
errorCause: r.errorMetadata.cause,
|
|
149
|
+
extensions: r.extensionKeys,
|
|
150
|
+
hookKeys: r.hookSequence
|
|
151
|
+
});
|
|
152
|
+
});
|
|
153
|
+
return {
|
|
154
|
+
runOptions: i,
|
|
155
|
+
buildOptions: c,
|
|
156
|
+
context: l,
|
|
157
|
+
draft: p,
|
|
158
|
+
fragmentOrder: u,
|
|
159
|
+
steps: g,
|
|
160
|
+
pushStep: f,
|
|
161
|
+
helperOrders: d,
|
|
162
|
+
builderGraphOptions: h,
|
|
163
|
+
buildHookOptions: y,
|
|
164
|
+
handleRollbackError: x
|
|
165
|
+
};
|
|
166
|
+
};
|
|
167
|
+
export {
|
|
168
|
+
H as prepareContext
|
|
169
|
+
};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { Helper, HelperKind, PipelineDiagnostic, PipelineReporter, MaybePromise } from '../../types';
|
|
2
|
+
import { PipelineRunContext, PipelineRunnerDependencies } from '../pipeline-runner.types';
|
|
3
|
+
export declare const executeRun: <TRunOptions, TBuildOptions, TContext extends {
|
|
4
|
+
reporter: TReporter;
|
|
5
|
+
}, TReporter extends PipelineReporter, TDraft, TArtifact, TDiagnostic extends PipelineDiagnostic, TRunResult, TFragmentInput, TFragmentOutput, TBuilderInput, TBuilderOutput, TFragmentKind extends HelperKind, TBuilderKind extends HelperKind, TFragmentHelper extends Helper<TContext, TFragmentInput, TFragmentOutput, TReporter, TFragmentKind>, TBuilderHelper extends Helper<TContext, TBuilderInput, TBuilderOutput, TReporter, TBuilderKind>>(dependencies: PipelineRunnerDependencies<TRunOptions, TBuildOptions, TContext, TReporter, TDraft, TArtifact, TDiagnostic, TRunResult, TFragmentInput, TFragmentOutput, TBuilderInput, TBuilderOutput, TFragmentKind, TBuilderKind, TFragmentHelper, TBuilderHelper>, runContext: PipelineRunContext<TRunOptions, TBuildOptions, TContext, TDraft, TArtifact, TFragmentHelper, TBuilderHelper>) => MaybePromise<TRunResult>;
|
|
6
|
+
//# sourceMappingURL=execution.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"execution.d.ts","sourceRoot":"","sources":["../../../src/internal/runner/execution.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACX,MAAM,EACN,UAAU,EACV,kBAAkB,EAElB,gBAAgB,EAChB,YAAY,EACZ,MAAM,aAAa,CAAC;AAErB,OAAO,KAAK,EACX,kBAAkB,EAClB,0BAA0B,EAG1B,MAAM,0BAA0B,CAAC;AAGlC,eAAO,MAAM,UAAU,GACtB,WAAW,EACX,aAAa,EACb,QAAQ,SAAS;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,EACxC,SAAS,SAAS,gBAAgB,EAClC,MAAM,EACN,SAAS,EACT,WAAW,SAAS,kBAAkB,EACtC,UAAU,EACV,cAAc,EACd,eAAe,EACf,aAAa,EACb,cAAc,EACd,aAAa,SAAS,UAAU,EAChC,YAAY,SAAS,UAAU,EAC/B,eAAe,SAAS,MAAM,CAC7B,QAAQ,EACR,cAAc,EACd,eAAe,EACf,SAAS,EACT,aAAa,CACb,EACD,cAAc,SAAS,MAAM,CAC5B,QAAQ,EACR,aAAa,EACb,cAAc,EACd,SAAS,EACT,YAAY,CACZ,EAED,cAAc,0BAA0B,CACvC,WAAW,EACX,aAAa,EACb,QAAQ,EACR,SAAS,EACT,MAAM,EACN,SAAS,EACT,WAAW,EACX,UAAU,EACV,cAAc,EACd,eAAe,EACf,aAAa,EACb,cAAc,EACd,aAAa,EACb,YAAY,EACZ,eAAe,EACf,cAAc,CACd,EACD,YAAY,kBAAkB,CAC7B,WAAW,EACX,aAAa,EACb,QAAQ,EACR,MAAM,EACN,SAAS,EACT,eAAe,EACf,cAAc,CACd,KACC,YAAY,CAAC,UAAU,CAkEzB,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { maybeThen as n } from "../../async-utils.js";
|
|
2
|
+
import { isHalt as p } from "../pipeline-program-utils.js";
|
|
3
|
+
import { createCoreProgram as a } from "./program.js";
|
|
4
|
+
const m = (e, r) => {
|
|
5
|
+
const t = r.helperOrders.get(e.builderKind) ?? [], o = {
|
|
6
|
+
context: r.context,
|
|
7
|
+
reporter: r.context.reporter,
|
|
8
|
+
runOptions: r.runOptions,
|
|
9
|
+
buildOptions: r.buildOptions,
|
|
10
|
+
fragmentEntries: e.fragmentEntries,
|
|
11
|
+
builderEntries: e.builderEntries,
|
|
12
|
+
fragmentOrder: r.fragmentOrder,
|
|
13
|
+
builderOrder: t,
|
|
14
|
+
fragmentVisited: /* @__PURE__ */ new Set(),
|
|
15
|
+
builderVisited: /* @__PURE__ */ new Set(),
|
|
16
|
+
draft: r.draft,
|
|
17
|
+
artifact: null,
|
|
18
|
+
steps: r.steps,
|
|
19
|
+
diagnostics: [],
|
|
20
|
+
fragmentRollbacks: [],
|
|
21
|
+
builderRollbacks: [],
|
|
22
|
+
helperOrders: r.helperOrders
|
|
23
|
+
}, s = a(e, r), l = (i) => {
|
|
24
|
+
if (p(i))
|
|
25
|
+
throw i.error ?? new Error("Pipeline halted");
|
|
26
|
+
return e.resolveRunResult({
|
|
27
|
+
artifact: i.artifact,
|
|
28
|
+
diagnostics: i.diagnostics,
|
|
29
|
+
steps: i.steps,
|
|
30
|
+
context: i.context,
|
|
31
|
+
buildOptions: i.buildOptions,
|
|
32
|
+
options: i.runOptions,
|
|
33
|
+
helpers: i.helpers
|
|
34
|
+
});
|
|
35
|
+
};
|
|
36
|
+
return n(s(o), l);
|
|
37
|
+
};
|
|
38
|
+
export {
|
|
39
|
+
m as executeRun
|
|
40
|
+
};
|
|
@@ -1,18 +1,13 @@
|
|
|
1
|
-
import { Helper, HelperKind,
|
|
2
|
-
import { PipelineRunner, PipelineRunnerDependencies } from '
|
|
1
|
+
import { Helper, HelperKind, PipelineDiagnostic, PipelineReporter } from '../../types';
|
|
2
|
+
import { PipelineRunner, PipelineRunnerDependencies } from '../pipeline-runner.types';
|
|
3
3
|
/**
|
|
4
4
|
* Creates the orchestrator responsible for executing pipeline runs.
|
|
5
5
|
*
|
|
6
|
-
*
|
|
7
|
-
* extension framework via the {@link initExtensionCoordinator}. By extracting this logic, the
|
|
8
|
-
* public {@link createPipeline} entry point remains focused on registration while the runner keeps
|
|
9
|
-
* lifecycle sequencing isolated and testable.
|
|
10
|
-
*
|
|
11
|
-
* @param dependencies - Bundled factory methods, diagnostics, and registered helpers
|
|
6
|
+
* @param dependencies
|
|
12
7
|
* @category Pipeline
|
|
13
8
|
* @internal
|
|
14
9
|
*/
|
|
15
10
|
export declare function initPipelineRunner<TRunOptions, TBuildOptions, TContext extends {
|
|
16
11
|
reporter: TReporter;
|
|
17
12
|
}, TReporter extends PipelineReporter, TDraft, TArtifact, TDiagnostic extends PipelineDiagnostic, TRunResult, TFragmentInput, TFragmentOutput, TBuilderInput, TBuilderOutput, TFragmentKind extends HelperKind, TBuilderKind extends HelperKind, TFragmentHelper extends Helper<TContext, TFragmentInput, TFragmentOutput, TReporter, TFragmentKind>, TBuilderHelper extends Helper<TContext, TBuilderInput, TBuilderOutput, TReporter, TBuilderKind>>(dependencies: PipelineRunnerDependencies<TRunOptions, TBuildOptions, TContext, TReporter, TDraft, TArtifact, TDiagnostic, TRunResult, TFragmentInput, TFragmentOutput, TBuilderInput, TBuilderOutput, TFragmentKind, TBuilderKind, TFragmentHelper, TBuilderHelper>): PipelineRunner<TRunOptions, TBuildOptions, TContext, TReporter, TDraft, TArtifact, TDiagnostic, TRunResult, TFragmentInput, TFragmentOutput, TBuilderInput, TBuilderOutput, TFragmentKind, TBuilderKind, TFragmentHelper, TBuilderHelper>;
|
|
18
|
-
//# sourceMappingURL=
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/internal/runner/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,MAAM,EACN,UAAU,EACV,kBAAkB,EAClB,gBAAgB,EAChB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EACX,cAAc,EACd,0BAA0B,EAC1B,MAAM,0BAA0B,CAAC;AAIlC;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CACjC,WAAW,EACX,aAAa,EACb,QAAQ,SAAS;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,EACxC,SAAS,SAAS,gBAAgB,EAClC,MAAM,EACN,SAAS,EACT,WAAW,SAAS,kBAAkB,EACtC,UAAU,EACV,cAAc,EACd,eAAe,EACf,aAAa,EACb,cAAc,EACd,aAAa,SAAS,UAAU,EAChC,YAAY,SAAS,UAAU,EAC/B,eAAe,SAAS,MAAM,CAC7B,QAAQ,EACR,cAAc,EACd,eAAe,EACf,SAAS,EACT,aAAa,CACb,EACD,cAAc,SAAS,MAAM,CAC5B,QAAQ,EACR,aAAa,EACb,cAAc,EACd,SAAS,EACT,YAAY,CACZ,EAED,YAAY,EAAE,0BAA0B,CACvC,WAAW,EACX,aAAa,EACb,QAAQ,EACR,SAAS,EACT,MAAM,EACN,SAAS,EACT,WAAW,EACX,UAAU,EACV,cAAc,EACd,eAAe,EACf,aAAa,EACb,cAAc,EACd,aAAa,EACb,YAAY,EACZ,eAAe,EACf,cAAc,CACd,GACC,cAAc,CAChB,WAAW,EACX,aAAa,EACb,QAAQ,EACR,SAAS,EACT,MAAM,EACN,SAAS,EACT,WAAW,EACX,UAAU,EACV,cAAc,EACd,eAAe,EACf,aAAa,EACb,cAAc,EACd,aAAa,EACb,YAAY,EACZ,eAAe,EACf,cAAc,CACd,CAMA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Program } from '../../async-utils';
|
|
2
|
+
import { Helper, HelperKind, PipelineReporter, PipelineDiagnostic } from '../../types';
|
|
3
|
+
import { PipelineRunContext, PipelineRunnerDependencies, PipelineState, Halt, DefaultStageDeps, PipelineStage } from '../pipeline-runner.types';
|
|
4
|
+
export declare function defaultStages<TState, TResult, TContext, TRunOptions, TArtifact, TReporter extends PipelineReporter>(deps: DefaultStageDeps<TState, TResult, TContext, TRunOptions, TArtifact, TReporter>): PipelineStage<TState, Halt<TResult>>[];
|
|
5
|
+
export declare const createCoreProgram: <TRunOptions, TBuildOptions, TContext extends {
|
|
6
|
+
reporter: TReporter;
|
|
7
|
+
}, TReporter extends PipelineReporter, TDraft, TArtifact, TDiagnostic extends PipelineDiagnostic, TRunResult, TFragmentInput, TFragmentOutput, TBuilderInput, TBuilderOutput, TFragmentKind extends HelperKind, TBuilderKind extends HelperKind, TFragmentHelper extends Helper<TContext, TFragmentInput, TFragmentOutput, TReporter, TFragmentKind>, TBuilderHelper extends Helper<TContext, TBuilderInput, TBuilderOutput, TReporter, TBuilderKind>>(dependencies: PipelineRunnerDependencies<TRunOptions, TBuildOptions, TContext, TReporter, TDraft, TArtifact, TDiagnostic, TRunResult, TFragmentInput, TFragmentOutput, TBuilderInput, TBuilderOutput, TFragmentKind, TBuilderKind, TFragmentHelper, TBuilderHelper>, runContext: PipelineRunContext<TRunOptions, TBuildOptions, TContext, TDraft, TArtifact, TFragmentHelper, TBuilderHelper>) => Program<PipelineState<TRunOptions, TBuildOptions, TContext, TReporter, TDraft, TArtifact, TDiagnostic, TFragmentInput, TFragmentOutput, TBuilderInput, TBuilderOutput, TFragmentKind, TBuilderKind, TFragmentHelper, TBuilderHelper> | Halt<TRunResult>>;
|
|
8
|
+
//# sourceMappingURL=program.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"program.d.ts","sourceRoot":"","sources":["../../../src/internal/runner/program.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAkBtE,OAAO,KAAK,EACX,MAAM,EACN,UAAU,EACV,gBAAgB,EAChB,kBAAkB,EAOlB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EACX,kBAAkB,EAClB,0BAA0B,EAC1B,aAAa,EACb,IAAI,EAIJ,gBAAgB,EAChB,aAAa,EAEb,MAAM,0BAA0B,CAAC;AAIlC,wBAAgB,aAAa,CAC5B,MAAM,EACN,OAAO,EACP,QAAQ,EACR,WAAW,EACX,SAAS,EACT,SAAS,SAAS,gBAAgB,EAElC,IAAI,EAAE,gBAAgB,CACrB,MAAM,EACN,OAAO,EACP,QAAQ,EACR,WAAW,EACX,SAAS,EACT,SAAS,CACT,GACC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAuBxC;AAED,eAAO,MAAM,iBAAiB,GAC7B,WAAW,EACX,aAAa,EACb,QAAQ,SAAS;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,EACxC,SAAS,SAAS,gBAAgB,EAClC,MAAM,EACN,SAAS,EACT,WAAW,SAAS,kBAAkB,EACtC,UAAU,EACV,cAAc,EACd,eAAe,EACf,aAAa,EACb,cAAc,EACd,aAAa,SAAS,UAAU,EAChC,YAAY,SAAS,UAAU,EAC/B,eAAe,SAAS,MAAM,CAC7B,QAAQ,EACR,cAAc,EACd,eAAe,EACf,SAAS,EACT,aAAa,CACb,EACD,cAAc,SAAS,MAAM,CAC5B,QAAQ,EACR,aAAa,EACb,cAAc,EACd,SAAS,EACT,YAAY,CACZ,EAED,cAAc,0BAA0B,CACvC,WAAW,EACX,aAAa,EACb,QAAQ,EACR,SAAS,EACT,MAAM,EACN,SAAS,EACT,WAAW,EACX,UAAU,EACV,cAAc,EACd,eAAe,EACf,aAAa,EACb,cAAc,EACd,aAAa,EACb,YAAY,EACZ,eAAe,EACf,cAAc,CACd,EACD,YAAY,kBAAkB,CAC7B,WAAW,EACX,aAAa,EACb,QAAQ,EACR,MAAM,EACN,SAAS,EACT,eAAe,EACf,cAAc,CACd,KACC,OAAO,CACP,aAAa,CACb,WAAW,EACX,aAAa,EACb,QAAQ,EACR,SAAS,EACT,MAAM,EACN,SAAS,EACT,WAAW,EACX,cAAc,EACd,eAAe,EACf,aAAa,EACb,cAAc,EACd,aAAa,EACb,YAAY,EACZ,eAAe,EACf,cAAc,CACb,GACD,IAAI,CAAC,UAAU,CAAC,CAwkBlB,CAAC"}
|
|
@@ -0,0 +1,294 @@
|
|
|
1
|
+
import { composeK as G, maybeThen as $ } from "../../async-utils.js";
|
|
2
|
+
import { buildExecutionSnapshot as s, assertAllHelpersExecuted as S } from "../helper-execution.js";
|
|
3
|
+
import { initExtensionCoordinator as j } from "../extension-coordinator.js";
|
|
4
|
+
import { makeAfterFragmentsStage as q, makeFinalizeResultStage as I, makeCommitStage as J, makeFinalizeFragmentsStage as Q, makeHelperStageFactory as W, isHalt as c, runRollbackToHalt as X } from "../pipeline-program-utils.js";
|
|
5
|
+
const Y = "after-fragments";
|
|
6
|
+
function Z(o) {
|
|
7
|
+
const {
|
|
8
|
+
fragmentStage: l,
|
|
9
|
+
finalizeFragments: g,
|
|
10
|
+
builderStage: u,
|
|
11
|
+
commitStage: f,
|
|
12
|
+
finalizeResult: h,
|
|
13
|
+
makeLifecycleStage: x,
|
|
14
|
+
extensions: b
|
|
15
|
+
} = o, p = (b?.lifecycles ?? []).map(
|
|
16
|
+
x
|
|
17
|
+
);
|
|
18
|
+
return [
|
|
19
|
+
l,
|
|
20
|
+
g,
|
|
21
|
+
...p,
|
|
22
|
+
u,
|
|
23
|
+
f,
|
|
24
|
+
h
|
|
25
|
+
];
|
|
26
|
+
}
|
|
27
|
+
const ar = (o, l) => {
|
|
28
|
+
const g = (r) => ({
|
|
29
|
+
__halt: !0,
|
|
30
|
+
error: r
|
|
31
|
+
}), u = (r, t, n) => {
|
|
32
|
+
o.diagnosticManager.reviewUnusedHelpers(
|
|
33
|
+
r.fragmentEntries,
|
|
34
|
+
t,
|
|
35
|
+
o.fragmentKind
|
|
36
|
+
);
|
|
37
|
+
const e = s(
|
|
38
|
+
r.fragmentEntries,
|
|
39
|
+
t,
|
|
40
|
+
o.fragmentKind
|
|
41
|
+
);
|
|
42
|
+
return S(
|
|
43
|
+
r.fragmentEntries,
|
|
44
|
+
e,
|
|
45
|
+
o.fragmentKind,
|
|
46
|
+
o.diagnosticManager.describeHelper,
|
|
47
|
+
o.createError
|
|
48
|
+
), {
|
|
49
|
+
...r,
|
|
50
|
+
fragmentVisited: t,
|
|
51
|
+
fragmentExecution: e,
|
|
52
|
+
fragmentRollbacks: n
|
|
53
|
+
};
|
|
54
|
+
}, f = (r, t, n) => {
|
|
55
|
+
o.diagnosticManager.reviewUnusedHelpers(
|
|
56
|
+
r.builderEntries,
|
|
57
|
+
t,
|
|
58
|
+
o.builderKind
|
|
59
|
+
);
|
|
60
|
+
const e = s(
|
|
61
|
+
r.builderEntries,
|
|
62
|
+
t,
|
|
63
|
+
o.builderKind
|
|
64
|
+
);
|
|
65
|
+
return S(
|
|
66
|
+
r.builderEntries,
|
|
67
|
+
e,
|
|
68
|
+
o.builderKind,
|
|
69
|
+
o.diagnosticManager.describeHelper,
|
|
70
|
+
o.createError
|
|
71
|
+
), {
|
|
72
|
+
...r,
|
|
73
|
+
builderVisited: t,
|
|
74
|
+
builderExecution: e,
|
|
75
|
+
builderRollbacks: n
|
|
76
|
+
};
|
|
77
|
+
}, h = (r, t) => o.options.createFragmentArgs({
|
|
78
|
+
helper: t.helper,
|
|
79
|
+
options: r.runOptions,
|
|
80
|
+
context: r.context,
|
|
81
|
+
buildOptions: r.buildOptions,
|
|
82
|
+
draft: r.draft
|
|
83
|
+
}), x = (r, t) => o.options.createBuilderArgs({
|
|
84
|
+
helper: t.helper,
|
|
85
|
+
options: r.runOptions,
|
|
86
|
+
context: r.context,
|
|
87
|
+
buildOptions: r.buildOptions,
|
|
88
|
+
artifact: r.artifact
|
|
89
|
+
}), b = (r) => (t) => h(r, t), p = (r) => (t) => x(r, t), H = (r) => r.fragmentRollbacks, F = (r) => r.builderRollbacks ?? [], k = (r) => ({
|
|
90
|
+
context: r.context,
|
|
91
|
+
extensionCoordinator: r.extensionCoordinator,
|
|
92
|
+
extensionState: r.extensionState
|
|
93
|
+
}), y = (r) => r.fragmentExecution ?? s(
|
|
94
|
+
r.fragmentEntries,
|
|
95
|
+
r.fragmentVisited,
|
|
96
|
+
o.fragmentKind
|
|
97
|
+
), z = (r) => {
|
|
98
|
+
const { extensionCoordinator: t, extensionState: n } = r;
|
|
99
|
+
if (!(!t || !n))
|
|
100
|
+
return t.commit(n);
|
|
101
|
+
}, M = (r) => ({
|
|
102
|
+
context: r.context,
|
|
103
|
+
rollbackContext: k(r),
|
|
104
|
+
helperRollbacks: r.builderRollbacks ?? [],
|
|
105
|
+
onHelperRollbackError: o.options.onHelperRollbackError
|
|
106
|
+
}), w = (r, t) => X(
|
|
107
|
+
{
|
|
108
|
+
rollbackPlan: M(r),
|
|
109
|
+
halt: g
|
|
110
|
+
},
|
|
111
|
+
t
|
|
112
|
+
), P = (r) => (t) => {
|
|
113
|
+
const n = j(
|
|
114
|
+
({ error: a, extensionKeys: i, hookSequence: m, errorMetadata: E }) => l.handleRollbackError({
|
|
115
|
+
error: a,
|
|
116
|
+
extensionKeys: i,
|
|
117
|
+
hookSequence: m,
|
|
118
|
+
errorMetadata: E,
|
|
119
|
+
context: t.context
|
|
120
|
+
})
|
|
121
|
+
), e = n.runLifecycle(
|
|
122
|
+
r,
|
|
123
|
+
{
|
|
124
|
+
hooks: o.extensionHooks,
|
|
125
|
+
hookOptions: l.buildHookOptions(
|
|
126
|
+
t.artifact,
|
|
127
|
+
r
|
|
128
|
+
)
|
|
129
|
+
}
|
|
130
|
+
);
|
|
131
|
+
return $(
|
|
132
|
+
e,
|
|
133
|
+
(a) => ({
|
|
134
|
+
...t,
|
|
135
|
+
artifact: a.artifact,
|
|
136
|
+
extensionCoordinator: n,
|
|
137
|
+
extensionState: a
|
|
138
|
+
})
|
|
139
|
+
);
|
|
140
|
+
}, d = (r) => r.helpers ?? {
|
|
141
|
+
fragments: r.fragmentExecution ?? s(
|
|
142
|
+
r.fragmentEntries,
|
|
143
|
+
r.fragmentVisited,
|
|
144
|
+
o.fragmentKind
|
|
145
|
+
),
|
|
146
|
+
builders: r.builderExecution ?? s(
|
|
147
|
+
r.builderEntries,
|
|
148
|
+
r.builderVisited,
|
|
149
|
+
o.builderKind
|
|
150
|
+
)
|
|
151
|
+
}, B = (r) => ({
|
|
152
|
+
...r,
|
|
153
|
+
helpers: d(r),
|
|
154
|
+
diagnostics: [
|
|
155
|
+
...o.diagnosticManager.readDiagnostics()
|
|
156
|
+
]
|
|
157
|
+
}), C = Q({
|
|
158
|
+
isHalt: c,
|
|
159
|
+
snapshotFragments: y,
|
|
160
|
+
applyArtifact: (r, t) => ({
|
|
161
|
+
...r,
|
|
162
|
+
artifact: o.options.finalizeFragmentState({
|
|
163
|
+
draft: r.draft,
|
|
164
|
+
options: r.runOptions,
|
|
165
|
+
context: r.context,
|
|
166
|
+
buildOptions: r.buildOptions,
|
|
167
|
+
helpers: {
|
|
168
|
+
fragments: t
|
|
169
|
+
}
|
|
170
|
+
}),
|
|
171
|
+
fragmentExecution: t
|
|
172
|
+
})
|
|
173
|
+
}), L = (r) => q({
|
|
174
|
+
isHalt: c,
|
|
175
|
+
execute: P(r)
|
|
176
|
+
}), T = J({
|
|
177
|
+
isHalt: c,
|
|
178
|
+
commit: z,
|
|
179
|
+
rollbackToHalt: w
|
|
180
|
+
}), V = I({
|
|
181
|
+
isHalt: c,
|
|
182
|
+
finalize: B
|
|
183
|
+
}), v = {
|
|
184
|
+
getOrder: (r) => r.fragmentOrder,
|
|
185
|
+
makeArgs: b,
|
|
186
|
+
onVisited: (r, t, n) => u(r, t, n),
|
|
187
|
+
readRollbacks: H
|
|
188
|
+
}, U = {
|
|
189
|
+
getOrder: (r) => r.builderOrder,
|
|
190
|
+
makeArgs: p,
|
|
191
|
+
onVisited: (r, t, n) => f(r, t, n),
|
|
192
|
+
readRollbacks: F
|
|
193
|
+
}, R = W({
|
|
194
|
+
pushStep: l.pushStep,
|
|
195
|
+
toRollbackContext: k,
|
|
196
|
+
halt: g,
|
|
197
|
+
isHalt: c,
|
|
198
|
+
onHelperRollbackError: o.options.onHelperRollbackError
|
|
199
|
+
}), _ = R(v), N = R(U), O = {
|
|
200
|
+
runnerEnv: {
|
|
201
|
+
pushStep: l.pushStep,
|
|
202
|
+
toRollbackContext: k,
|
|
203
|
+
halt: g,
|
|
204
|
+
isHalt: c,
|
|
205
|
+
onHelperRollbackError: o.options.onHelperRollbackError
|
|
206
|
+
},
|
|
207
|
+
fragmentStage: _,
|
|
208
|
+
builderStage: N,
|
|
209
|
+
finalizeFragments: C,
|
|
210
|
+
commitStage: T,
|
|
211
|
+
finalizeResult: V,
|
|
212
|
+
makeLifecycleStage: L,
|
|
213
|
+
extensions: {
|
|
214
|
+
lifecycles: o.extensionHooks.length > 0 ? o.extensionLifecycles ?? [Y] : []
|
|
215
|
+
},
|
|
216
|
+
makeHelperStage: (r, t) => R(
|
|
217
|
+
{
|
|
218
|
+
getOrder: (e) => e.helperOrders?.get(r) ?? [],
|
|
219
|
+
makeArgs: (e) => {
|
|
220
|
+
if (t?.makeArgs)
|
|
221
|
+
return t.makeArgs(e);
|
|
222
|
+
if (r === o.fragmentKind)
|
|
223
|
+
return b(e);
|
|
224
|
+
if (r === o.builderKind)
|
|
225
|
+
return p(e);
|
|
226
|
+
throw new Error(`No args factory for kind "${r}"`);
|
|
227
|
+
},
|
|
228
|
+
onVisited: (e, a, i) => {
|
|
229
|
+
if (t?.onVisited)
|
|
230
|
+
return t.onVisited(
|
|
231
|
+
e,
|
|
232
|
+
a,
|
|
233
|
+
i
|
|
234
|
+
);
|
|
235
|
+
if (r === o.fragmentKind)
|
|
236
|
+
return u(
|
|
237
|
+
e,
|
|
238
|
+
a,
|
|
239
|
+
i
|
|
240
|
+
);
|
|
241
|
+
if (r === o.builderKind)
|
|
242
|
+
return f(
|
|
243
|
+
e,
|
|
244
|
+
a,
|
|
245
|
+
i
|
|
246
|
+
);
|
|
247
|
+
const m = e.helperOrders?.get(r) ?? [];
|
|
248
|
+
o.diagnosticManager.reviewUnusedHelpers(
|
|
249
|
+
m,
|
|
250
|
+
a,
|
|
251
|
+
r
|
|
252
|
+
);
|
|
253
|
+
const E = s(
|
|
254
|
+
m,
|
|
255
|
+
a,
|
|
256
|
+
r
|
|
257
|
+
);
|
|
258
|
+
S(
|
|
259
|
+
m,
|
|
260
|
+
E,
|
|
261
|
+
r,
|
|
262
|
+
o.diagnosticManager.describeHelper,
|
|
263
|
+
o.createError
|
|
264
|
+
);
|
|
265
|
+
const A = new Map(
|
|
266
|
+
e.helperExecution ?? []
|
|
267
|
+
);
|
|
268
|
+
A.set(r, E);
|
|
269
|
+
const K = new Map(
|
|
270
|
+
e.helperRollbacks ?? []
|
|
271
|
+
);
|
|
272
|
+
return K.set(
|
|
273
|
+
r,
|
|
274
|
+
i
|
|
275
|
+
), {
|
|
276
|
+
...e,
|
|
277
|
+
helperExecution: A,
|
|
278
|
+
helperRollbacks: K
|
|
279
|
+
};
|
|
280
|
+
},
|
|
281
|
+
readRollbacks: (e) => r === o.fragmentKind ? H(
|
|
282
|
+
e
|
|
283
|
+
) : r === o.builderKind ? F(
|
|
284
|
+
e
|
|
285
|
+
) : e.helperRollbacks?.get(r)
|
|
286
|
+
}
|
|
287
|
+
)
|
|
288
|
+
}, D = o.stages ? o.stages(O) : Z(O);
|
|
289
|
+
return G(...[...D].reverse());
|
|
290
|
+
};
|
|
291
|
+
export {
|
|
292
|
+
ar as createCoreProgram,
|
|
293
|
+
Z as defaultStages
|
|
294
|
+
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { CreatePipelineOptions, Helper, HelperKind, Pipeline, PipelineDiagnostic, PipelineReporter, PipelineRunState } from './types';
|
|
2
|
+
import { DefaultStageDeps, PipelineStage, PipelineState, Halt } from './internal/pipeline-runner.types';
|
|
3
|
+
export { DefaultStageDeps, PipelineStage, } from "./internal/pipeline-runner.types";
|
|
4
|
+
export { defaultStages } from './internal/runner/program';
|
|
5
|
+
export type MakePipelineArgs<TRunOptions, TReporter extends PipelineReporter = PipelineReporter, TContext extends {
|
|
6
|
+
reporter: TReporter;
|
|
7
|
+
} = {
|
|
8
|
+
reporter: TReporter;
|
|
9
|
+
}, TArtifact = unknown, TDiagnostic extends PipelineDiagnostic = PipelineDiagnostic, TRunResult = PipelineRunState<TArtifact, TDiagnostic>, TBuildOptions = unknown, TDraft = unknown, TFragmentInput = unknown, TFragmentOutput = unknown, TBuilderInput = unknown, TBuilderOutput = unknown, TFragmentKind extends HelperKind = 'fragment', TBuilderKind extends HelperKind = 'builder', TFragmentHelper extends Helper<TContext, TFragmentInput, TFragmentOutput, TReporter, TFragmentKind> = Helper<TContext, TFragmentInput, TFragmentOutput, TReporter, TFragmentKind>, TBuilderHelper extends Helper<TContext, TBuilderInput, TBuilderOutput, TReporter, TBuilderKind> = Helper<TContext, TBuilderInput, TBuilderOutput, TReporter, TBuilderKind>> = CreatePipelineOptions<TRunOptions, TBuildOptions, TContext, TReporter, TDraft, TArtifact, TDiagnostic, TRunResult, TFragmentInput, TFragmentOutput, TBuilderInput, TBuilderOutput, TFragmentKind, TBuilderKind, TFragmentHelper, TBuilderHelper> & {
|
|
10
|
+
extensions?: {
|
|
11
|
+
lifecycles?: string[];
|
|
12
|
+
};
|
|
13
|
+
stages?: (deps: DefaultStageDeps<PipelineState<TRunOptions, TBuildOptions, TContext, TReporter, TDraft, TArtifact, TDiagnostic, TFragmentInput, TFragmentOutput, TBuilderInput, TBuilderOutput, TFragmentKind, TBuilderKind, TFragmentHelper, TBuilderHelper>, TRunResult, TContext, TRunOptions, TArtifact, TReporter>) => PipelineStage<PipelineState<TRunOptions, TBuildOptions, TContext, TReporter, TDraft, TArtifact, TDiagnostic, TFragmentInput, TFragmentOutput, TBuilderInput, TBuilderOutput, TFragmentKind, TBuilderKind, TFragmentHelper, TBuilderHelper>, Halt<TRunResult>>[];
|
|
14
|
+
};
|
|
15
|
+
export declare function makePipeline<TRunOptions, TReporter extends PipelineReporter = PipelineReporter, TContext extends {
|
|
16
|
+
reporter: TReporter;
|
|
17
|
+
} = {
|
|
18
|
+
reporter: TReporter;
|
|
19
|
+
}, TArtifact = unknown, TDiagnostic extends PipelineDiagnostic = PipelineDiagnostic, TRunResult = PipelineRunState<TArtifact, TDiagnostic>, TBuildOptions = unknown, TDraft = unknown, TFragmentInput = unknown, TFragmentOutput = unknown, TBuilderInput = unknown, TBuilderOutput = unknown, TFragmentKind extends HelperKind = 'fragment', TBuilderKind extends HelperKind = 'builder', TFragmentHelper extends Helper<TContext, TFragmentInput, TFragmentOutput, TReporter, TFragmentKind> = Helper<TContext, TFragmentInput, TFragmentOutput, TReporter, TFragmentKind>, TBuilderHelper extends Helper<TContext, TBuilderInput, TBuilderOutput, TReporter, TBuilderKind> = Helper<TContext, TBuilderInput, TBuilderOutput, TReporter, TBuilderKind>>(options: MakePipelineArgs<TRunOptions, TReporter, TContext, TArtifact, TDiagnostic, TRunResult, TBuildOptions, TDraft, TFragmentInput, TFragmentOutput, TBuilderInput, TBuilderOutput, TFragmentKind, TBuilderKind, TFragmentHelper, TBuilderHelper>): Pipeline<TRunOptions, TRunResult, TContext, TReporter, TBuildOptions, TArtifact, TFragmentInput, TFragmentOutput, TBuilderInput, TBuilderOutput, TDiagnostic, TFragmentKind, TBuilderKind, TFragmentHelper, TBuilderHelper>;
|
|
20
|
+
//# sourceMappingURL=makePipeline.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"makePipeline.d.ts","sourceRoot":"","sources":["../src/makePipeline.ts"],"names":[],"mappings":"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"}
|