@wpkernel/pipeline 0.12.3-beta.2 → 0.12.6-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.
Files changed (120) hide show
  1. package/README.md +130 -86
  2. package/dist/{async-utils.d.ts → core/async-utils.d.ts} +9 -0
  3. package/dist/core/async-utils.d.ts.map +1 -0
  4. package/dist/core/async-utils.js +46 -0
  5. package/dist/core/createExtension.d.ts.map +1 -0
  6. package/dist/core/dependency-graph.d.ts.map +1 -0
  7. package/dist/core/error-factory.d.ts.map +1 -0
  8. package/dist/{executor.d.ts → core/execution-utils.d.ts} +1 -1
  9. package/dist/core/execution-utils.d.ts.map +1 -0
  10. package/dist/core/executor.d.ts +2 -0
  11. package/dist/core/executor.d.ts.map +1 -0
  12. package/dist/{extensions → core/extensions}/index.d.ts +1 -0
  13. package/dist/core/extensions/index.d.ts.map +1 -0
  14. package/dist/core/extensions/official.d.ts.map +1 -0
  15. package/dist/{extensions.d.ts → core/extensions/runner.d.ts} +2 -5
  16. package/dist/core/extensions/runner.d.ts.map +1 -0
  17. package/dist/core/extensions/runner.js +73 -0
  18. package/dist/core/helper.d.ts.map +1 -0
  19. package/dist/core/index.d.ts +11 -0
  20. package/dist/core/index.d.ts.map +1 -0
  21. package/dist/core/index.js +36 -0
  22. package/dist/{internal → core/internal}/extension-coordinator.d.ts +1 -1
  23. package/dist/core/internal/extension-coordinator.d.ts.map +1 -0
  24. package/dist/{internal → core/internal}/extension-coordinator.js +7 -6
  25. package/dist/{internal → core/internal}/extension-coordinator.types.d.ts +14 -14
  26. package/dist/core/internal/extension-coordinator.types.d.ts.map +1 -0
  27. package/dist/core/makePipeline.d.ts +5 -0
  28. package/dist/core/makePipeline.d.ts.map +1 -0
  29. package/dist/core/makePipeline.js +147 -0
  30. package/dist/core/registration.d.ts.map +1 -0
  31. package/dist/core/registration.js +59 -0
  32. package/dist/core/rollback.d.ts.map +1 -0
  33. package/dist/core/runner/context.d.ts +13 -0
  34. package/dist/core/runner/context.d.ts.map +1 -0
  35. package/dist/core/runner/context.js +86 -0
  36. package/dist/core/runner/diagnostics.d.ts +48 -0
  37. package/dist/core/runner/diagnostics.d.ts.map +1 -0
  38. package/dist/core/runner/diagnostics.js +82 -0
  39. package/dist/core/runner/execution.d.ts +6 -0
  40. package/dist/core/runner/execution.d.ts.map +1 -0
  41. package/dist/core/runner/execution.js +66 -0
  42. package/dist/core/runner/index.d.ts +14 -0
  43. package/dist/core/runner/index.d.ts.map +1 -0
  44. package/dist/core/runner/index.js +9 -0
  45. package/dist/core/runner/program.d.ts +7 -0
  46. package/dist/core/runner/program.d.ts.map +1 -0
  47. package/dist/core/runner/program.js +146 -0
  48. package/dist/core/runner/rollback.d.ts +48 -0
  49. package/dist/core/runner/rollback.d.ts.map +1 -0
  50. package/dist/core/runner/rollback.js +75 -0
  51. package/dist/core/runner/stage-factories.d.ts +69 -0
  52. package/dist/core/runner/stage-factories.d.ts.map +1 -0
  53. package/dist/core/runner/stage-factories.js +121 -0
  54. package/dist/core/runner/types.d.ts +202 -0
  55. package/dist/core/runner/types.d.ts.map +1 -0
  56. package/dist/{types.d.ts → core/types.d.ts} +62 -97
  57. package/dist/core/types.d.ts.map +1 -0
  58. package/dist/extensions/index.js +6 -2
  59. package/dist/index.d.ts +20 -17
  60. package/dist/index.d.ts.map +1 -1
  61. package/dist/index.js +19 -17
  62. package/dist/standard-pipeline/createPipeline.d.ts +6 -0
  63. package/dist/standard-pipeline/createPipeline.d.ts.map +1 -0
  64. package/dist/standard-pipeline/createPipeline.js +7 -0
  65. package/dist/standard-pipeline/runner/index.d.ts +21 -0
  66. package/dist/standard-pipeline/runner/index.d.ts.map +1 -0
  67. package/dist/standard-pipeline/runner/index.js +244 -0
  68. package/dist/standard-pipeline/types.d.ts +150 -0
  69. package/dist/standard-pipeline/types.d.ts.map +1 -0
  70. package/package.json +16 -1
  71. package/dist/async-utils.d.ts.map +0 -1
  72. package/dist/async-utils.js +0 -40
  73. package/dist/createExtension.d.ts.map +0 -1
  74. package/dist/createPipeline.d.ts +0 -45
  75. package/dist/createPipeline.d.ts.map +0 -1
  76. package/dist/createPipeline.js +0 -122
  77. package/dist/dependency-graph.d.ts.map +0 -1
  78. package/dist/error-factory.d.ts.map +0 -1
  79. package/dist/executor.d.ts.map +0 -1
  80. package/dist/extensions/index.d.ts.map +0 -1
  81. package/dist/extensions/official.d.ts.map +0 -1
  82. package/dist/extensions.d.ts.map +0 -1
  83. package/dist/extensions.js +0 -88
  84. package/dist/helper.d.ts.map +0 -1
  85. package/dist/internal/diagnostic-manager.d.ts +0 -29
  86. package/dist/internal/diagnostic-manager.d.ts.map +0 -1
  87. package/dist/internal/diagnostic-manager.js +0 -90
  88. package/dist/internal/diagnostic-manager.types.d.ts +0 -70
  89. package/dist/internal/diagnostic-manager.types.d.ts.map +0 -1
  90. package/dist/internal/extension-coordinator.d.ts.map +0 -1
  91. package/dist/internal/extension-coordinator.types.d.ts.map +0 -1
  92. package/dist/internal/helper-execution.d.ts +0 -32
  93. package/dist/internal/helper-execution.d.ts.map +0 -1
  94. package/dist/internal/helper-execution.js +0 -33
  95. package/dist/internal/pipeline-program-utils.d.ts +0 -127
  96. package/dist/internal/pipeline-program-utils.d.ts.map +0 -1
  97. package/dist/internal/pipeline-program-utils.js +0 -161
  98. package/dist/internal/pipeline-runner.d.ts +0 -18
  99. package/dist/internal/pipeline-runner.d.ts.map +0 -1
  100. package/dist/internal/pipeline-runner.js +0 -343
  101. package/dist/internal/pipeline-runner.types.d.ts +0 -167
  102. package/dist/internal/pipeline-runner.types.d.ts.map +0 -1
  103. package/dist/registration.d.ts.map +0 -1
  104. package/dist/registration.js +0 -57
  105. package/dist/rollback.d.ts.map +0 -1
  106. package/dist/types.d.ts.map +0 -1
  107. /package/dist/{createExtension.d.ts → core/createExtension.d.ts} +0 -0
  108. /package/dist/{createExtension.js → core/createExtension.js} +0 -0
  109. /package/dist/{dependency-graph.d.ts → core/dependency-graph.d.ts} +0 -0
  110. /package/dist/{dependency-graph.js → core/dependency-graph.js} +0 -0
  111. /package/dist/{error-factory.d.ts → core/error-factory.d.ts} +0 -0
  112. /package/dist/{error-factory.js → core/error-factory.js} +0 -0
  113. /package/dist/{executor.js → core/execution-utils.js} +0 -0
  114. /package/dist/{extensions → core/extensions}/official.d.ts +0 -0
  115. /package/dist/{extensions → core/extensions}/official.js +0 -0
  116. /package/dist/{helper.d.ts → core/helper.d.ts} +0 -0
  117. /package/dist/{helper.js → core/helper.js} +0 -0
  118. /package/dist/{registration.d.ts → core/registration.d.ts} +0 -0
  119. /package/dist/{rollback.d.ts → core/rollback.d.ts} +0 -0
  120. /package/dist/{rollback.js → core/rollback.js} +0 -0
@@ -0,0 +1,5 @@
1
+ import { PipelineDiagnostic, PipelineReporter, PipelineRunState, AgnosticPipeline, AgnosticPipelineOptions } from './types';
2
+ export declare function makePipeline<TRunOptions, TContext extends {
3
+ reporter: TReporter;
4
+ }, TReporter extends PipelineReporter = PipelineReporter, TUserState = unknown, TDiagnostic extends PipelineDiagnostic = PipelineDiagnostic, TRunResult = PipelineRunState<TUserState, TDiagnostic>>(options: AgnosticPipelineOptions<TRunOptions, TContext, TReporter, TUserState, TDiagnostic, TRunResult>): AgnosticPipeline<TRunOptions, TRunResult, TContext, TReporter>;
5
+ //# sourceMappingURL=makePipeline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"makePipeline.d.ts","sourceRoot":"","sources":["../../src/core/makePipeline.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAKX,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAEhB,gBAAgB,EAChB,uBAAuB,EACvB,MAAM,SAAS,CAAC;AAWjB,wBAAgB,YAAY,CAC3B,WAAW,EACX,QAAQ,SAAS;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,EACxC,SAAS,SAAS,gBAAgB,GAAG,gBAAgB,EACrD,UAAU,GAAG,OAAO,EACpB,WAAW,SAAS,kBAAkB,GAAG,kBAAkB,EAC3D,UAAU,GAAG,gBAAgB,CAAC,UAAU,EAAE,WAAW,CAAC,EAEtD,OAAO,EAAE,uBAAuB,CAC/B,WAAW,EACX,QAAQ,EACR,SAAS,EACT,UAAU,EACV,WAAW,EACX,UAAU,CACV,GACC,gBAAgB,CAAC,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,CAAC,CA4VhE"}
@@ -0,0 +1,147 @@
1
+ import { maybeThen as l, isPromiseLike as d, maybeAll as y } from "./async-utils.js";
2
+ import { registerHelper as C, handleExtensionRegisterResult as v } from "./registration.js";
3
+ import { initAgnosticRunner as S } from "./runner/index.js";
4
+ import { createAgnosticDiagnosticManager as w } from "./runner/diagnostics.js";
5
+ function A(n) {
6
+ const g = n.createError ?? ((e, r) => new Error(`[${e}] ${r} `)), c = /* @__PURE__ */ new Map(), f = (e) => (c.has(e) || c.set(e, []), c.get(e));
7
+ for (const e of n.helperKinds)
8
+ f(e);
9
+ const R = [], o = [], a = w({
10
+ onDiagnostic: (e) => {
11
+ n.onDiagnostic ? n.onDiagnostic(e) : e.reporter.warn?.(
12
+ "Pipeline diagnostic reported.",
13
+ e.diagnostic
14
+ );
15
+ },
16
+ createConflictDiagnostic: n.createConflictDiagnostic,
17
+ createMissingDependencyDiagnostic: n.createMissingDependencyDiagnostic,
18
+ createUnusedHelperDiagnostic: n.createUnusedHelperDiagnostic
19
+ }), k = (e) => {
20
+ const r = [];
21
+ for (const t of n.helperKinds)
22
+ r.push(e.makeHelperStage(t));
23
+ return r.push(e.finalizeResult), r;
24
+ }, m = {
25
+ options: {
26
+ createContext: n.createContext,
27
+ createState: (e) => n.createState ? n.createState(e) : {},
28
+ createError: g,
29
+ onExtensionRollbackError: (e) => {
30
+ n.onExtensionRollbackError && n.onExtensionRollbackError(e);
31
+ const r = {
32
+ ...e,
33
+ extensions: e.extensionKeys,
34
+ hookKeys: e.hookSequence,
35
+ errorName: e.errorMetadata?.name,
36
+ errorMessage: e.errorMetadata?.message,
37
+ errorStack: e.errorMetadata?.stack,
38
+ errorCause: e.errorMetadata?.cause,
39
+ ...e.errorMetadata
40
+ };
41
+ e.context.reporter.warn?.(
42
+ "Pipeline extension rollback failed.",
43
+ r
44
+ );
45
+ },
46
+ onHelperRollbackError: (e) => {
47
+ e.context.reporter.warn?.("Helper rollback failed", e);
48
+ },
49
+ providedKeys: n.providedKeys
50
+ },
51
+ helperRegistries: c,
52
+ diagnosticManager: a,
53
+ resolveRunResult: (e) => {
54
+ const {
55
+ userState: r,
56
+ diagnostics: t,
57
+ steps: i,
58
+ context: s,
59
+ options: u,
60
+ state: M
61
+ } = e;
62
+ return n.createRunResult ? n.createRunResult({
63
+ artifact: r,
64
+ diagnostics: t,
65
+ steps: i,
66
+ context: s,
67
+ options: u,
68
+ state: M
69
+ }) : {
70
+ artifact: r,
71
+ diagnostics: t,
72
+ steps: i
73
+ };
74
+ },
75
+ extensionHooks: R,
76
+ extensionLifecycles: n.extensions?.lifecycles,
77
+ stages: n.createStages ?? k
78
+ }, x = S(m), p = (e, r) => v(e, r, R), E = (e) => {
79
+ if (d(e)) {
80
+ const r = l(
81
+ e,
82
+ () => {
83
+ }
84
+ );
85
+ r.catch(() => {
86
+ }), o.push(r);
87
+ const t = () => {
88
+ const i = o.indexOf(r);
89
+ i !== -1 && o.splice(i, 1);
90
+ };
91
+ r.then(t, t);
92
+ }
93
+ return e;
94
+ }, D = () => {
95
+ if (o.length !== 0)
96
+ return l(
97
+ y([...o]),
98
+ () => {
99
+ }
100
+ );
101
+ }, h = {
102
+ extensions: {
103
+ use(e) {
104
+ const r = e.register(h);
105
+ r && d(r) && Promise.resolve(r).catch(() => {
106
+ });
107
+ const t = l(
108
+ r,
109
+ (i) => p(e.key, i)
110
+ );
111
+ return E(t);
112
+ }
113
+ },
114
+ use(e) {
115
+ const r = e.kind, t = f(r);
116
+ C(
117
+ e,
118
+ r,
119
+ t,
120
+ r,
121
+ (i, s, u) => a.flagConflict(
122
+ i,
123
+ s,
124
+ r,
125
+ u
126
+ ),
127
+ g
128
+ );
129
+ },
130
+ run(e) {
131
+ const r = () => {
132
+ const s = x.prepareContext(e);
133
+ return x.executeRun(s);
134
+ }, t = D(), i = l(t, () => r());
135
+ return d(i) ? i.then(
136
+ (s) => (a.endRun(), s),
137
+ (s) => {
138
+ throw a.endRun(), s;
139
+ }
140
+ ) : (a.endRun(), i);
141
+ }
142
+ };
143
+ return h;
144
+ }
145
+ export {
146
+ A as makePipeline
147
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registration.d.ts","sourceRoot":"","sources":["../../src/core/registration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,MAAM,EACN,UAAU,EACV,qBAAqB,EAErB,0BAA0B,EAC1B,gBAAgB,EAChB,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAEvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,CAC7B,QAAQ,EACR,MAAM,EACN,OAAO,EACP,SAAS,SAAS,gBAAgB,EAClC,KAAK,SAAS,UAAU,EACxB,OAAO,SAAS,MAAM,CACrB,QAAQ,EACR,MAAM,EACN,OAAO,EACP,SAAS,EACT,KAAK,CACL,GAAG,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,EAEvD,MAAM,EAAE,OAAO,EACf,YAAY,EAAE,UAAU,EACxB,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAAC,EAAE,EACpC,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,EACzE,WAAW,EAAE,YAAY,GACvB,IAAI,CA+CN;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAClE,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,IAAI,EAAE,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,EAC1D,cAAc,EAAE,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,EACnE,SAAS,GAAE,0BAA8C,GACvD,MAAM,CASR;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAC1E,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,MAAM,EAAE,OAAO,EACf,cAAc,EAAE,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,GACjE,OAAO,CAqCT"}
@@ -0,0 +1,59 @@
1
+ import { createHelperId as g } from "./dependency-graph.js";
2
+ function m(e, o, i, n, r, f) {
3
+ if (e.kind !== o)
4
+ throw f(
5
+ "ValidationError",
6
+ `Attempted to register helper "${e.key}" as ${n} but received kind "${e.kind}".`
7
+ );
8
+ if (e.mode === "override") {
9
+ const d = i.find(
10
+ (t) => t.helper.key === e.key && t.helper.mode === "override"
11
+ );
12
+ if (d) {
13
+ const t = `Multiple overrides registered for helper "${e.key}".`;
14
+ throw r(e, d.helper, t), f("ValidationError", t);
15
+ }
16
+ for (let t = i.length - 1; t >= 0; t--)
17
+ i[t].helper.key === e.key && i.splice(t, 1);
18
+ }
19
+ const c = (i.length > 0 ? i.reduce((d, t) => Math.max(d, t.index), 0) : -1) + 1;
20
+ i.push({
21
+ helper: e,
22
+ id: g(e, c),
23
+ index: c
24
+ });
25
+ }
26
+ function a(e, o, i, n = "after-fragments") {
27
+ const r = e ?? `pipeline.extension#${i.length + 1}`;
28
+ return i.push({
29
+ key: r,
30
+ lifecycle: n,
31
+ hook: o
32
+ }), r;
33
+ }
34
+ function y(e, o, i) {
35
+ if (typeof o == "function") {
36
+ a(
37
+ e,
38
+ o,
39
+ i
40
+ );
41
+ return;
42
+ }
43
+ if (o && typeof o == "object" && "hook" in o && typeof o.hook == "function") {
44
+ const n = o;
45
+ a(
46
+ e,
47
+ n.hook,
48
+ i,
49
+ n.lifecycle
50
+ );
51
+ return;
52
+ }
53
+ return o;
54
+ }
55
+ export {
56
+ y as handleExtensionRegisterResult,
57
+ a as registerExtensionHook,
58
+ m as registerHelper
59
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rollback.d.ts","sourceRoot":"","sources":["../../src/core/rollback.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C;;;GAGG;AACH,MAAM,WAAW,6BAA6B;IAC7C,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,gBAAgB;IAChC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,GAAG,EAAE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC/C;AAED;;;GAGG;AACH,MAAM,WAAW,uBAAuB;IACvC,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,QAAQ,CAAC;IACxC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE;QACzB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;QACxB,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC;QACjC,QAAQ,CAAC,QAAQ,EAAE,6BAA6B,CAAC;KACjD,KAAK,IAAI,CAAC;CACX;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,sBAAsB,CACrC,GAAG,EAAE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,EACrC,OAAO,GAAE;IACR,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACnB,GACJ,gBAAgB,CAElB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,2BAA2B,CAC1C,KAAK,EAAE,OAAO,GACZ,6BAA6B,CAoB/B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAC/B,OAAO,EAAE,SAAS,gBAAgB,EAAE,EACpC,OAAO,EAAE,uBAAuB,GAC9B,YAAY,CAAC,IAAI,CAAC,CAyCpB"}
@@ -0,0 +1,13 @@
1
+ import { AgnosticRunContext, AgnosticRunnerDependencies } from './types';
2
+ import { PipelineReporter, PipelineDiagnostic } from '../types';
3
+ /**
4
+ * Prepares the pipeline execution context.
5
+ *
6
+ * @param dependencies
7
+ * @param runOptions
8
+ * @internal
9
+ */
10
+ export declare const prepareContext: <TRunOptions, TUserState, TContext extends {
11
+ reporter: TReporter;
12
+ }, TReporter extends PipelineReporter, TDiagnostic extends PipelineDiagnostic, TRunResult>(dependencies: AgnosticRunnerDependencies<TRunOptions, TUserState, TContext, TReporter, TDiagnostic, TRunResult>, runOptions: TRunOptions) => AgnosticRunContext<TRunOptions, TUserState, TContext, TReporter, TDiagnostic>;
13
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/core/runner/context.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACX,kBAAkB,EAClB,0BAA0B,EAE1B,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EACX,gBAAgB,EAChB,kBAAkB,EAElB,MAAM,UAAU,CAAC;AAIlB;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,GAC1B,WAAW,EACX,UAAU,EACV,QAAQ,SAAS;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,EACxC,SAAS,SAAS,gBAAgB,EAClC,WAAW,SAAS,kBAAkB,EACtC,UAAU,EAEV,cAAc,0BAA0B,CACvC,WAAW,EACX,UAAU,EACV,QAAQ,EACR,SAAS,EACT,WAAW,EACX,UAAU,CACV,EACD,YAAY,WAAW,KACrB,kBAAkB,CACpB,WAAW,EACX,UAAU,EACV,QAAQ,EACR,SAAS,EACT,WAAW,CA6HX,CAAC"}
@@ -0,0 +1,86 @@
1
+ import { createDependencyGraph as M } from "../dependency-graph.js";
2
+ import { initExtensionCoordinator as R } from "../internal/extension-coordinator.js";
3
+ const E = (e, n) => {
4
+ const o = e.options.createContext(n);
5
+ e.diagnosticManager.prepareRun(), e.diagnosticManager.setReporter(o.reporter);
6
+ const s = /* @__PURE__ */ new Map();
7
+ for (const [r, i] of e.helperRegistries) {
8
+ const f = M(
9
+ i,
10
+ {
11
+ onMissingDependency: (t) => {
12
+ e.diagnosticManager.flagMissingDependency(
13
+ t.dependant.helper,
14
+ t.dependencyKey,
15
+ r
16
+ ), e.diagnosticManager.flagUnusedHelper(
17
+ t.dependant.helper,
18
+ r,
19
+ "has missing dependencies",
20
+ t.dependant.helper.dependsOn ?? []
21
+ );
22
+ },
23
+ onUnresolvedHelpers: ({ unresolved: t }) => {
24
+ for (const l of t)
25
+ e.diagnosticManager.flagUnusedHelper(
26
+ l.helper,
27
+ r,
28
+ "has unresolved dependencies (possible cycle)",
29
+ l.helper.dependsOn ?? []
30
+ );
31
+ },
32
+ providedKeys: e.options.providedKeys?.[r]
33
+ },
34
+ e.options.createError
35
+ );
36
+ s.set(r, f.order);
37
+ }
38
+ const c = e.options.createState({
39
+ context: o,
40
+ options: n
41
+ }), a = [], g = (r) => a.push(r), p = (r) => {
42
+ e.options.onExtensionRollbackError && e.options.onExtensionRollbackError(r);
43
+ }, h = (r, i) => ({
44
+ context: o,
45
+ options: n,
46
+ artifact: r.userState,
47
+ // Extension expects UserState
48
+ lifecycle: i
49
+ }), d = {
50
+ context: o,
51
+ reporter: o.reporter,
52
+ runOptions: n,
53
+ userState: c,
54
+ steps: a,
55
+ diagnostics: e.diagnosticManager.getDiagnostics(),
56
+ // Live reference
57
+ // AgnosticState definition has diagnostics: TDiagnostic[]. Programs read it from here.
58
+ // finalizeResultStage updates it from manager.
59
+ helperRegistries: e.helperRegistries,
60
+ helperOrders: s,
61
+ executedLifecycles: /* @__PURE__ */ new Set(),
62
+ // Runtime maps
63
+ helperExecution: /* @__PURE__ */ new Map(),
64
+ helperRollbacks: /* @__PURE__ */ new Map(),
65
+ extensionCoordinator: R(
66
+ (r) => p({
67
+ ...r,
68
+ context: o
69
+ })
70
+ )
71
+ };
72
+ return {
73
+ runOptions: n,
74
+ context: o,
75
+ state: d,
76
+ steps: a,
77
+ pushStep: g,
78
+ helperRegistries: e.helperRegistries,
79
+ helperOrders: s,
80
+ buildHookOptions: h,
81
+ handleRollbackError: p
82
+ };
83
+ };
84
+ export {
85
+ E as prepareContext
86
+ };
@@ -0,0 +1,48 @@
1
+ import { HelperDescriptor, PipelineDiagnostic, PipelineReporter } from '../types';
2
+ /**
3
+ * Agnostic configuration for the diagnostic manager.
4
+ */
5
+ export interface DiagnosticManagerOptions<TReporter extends PipelineReporter, TDiagnostic extends PipelineDiagnostic> {
6
+ /**
7
+ * Callback for observing diagnostics as they are added.
8
+ */
9
+ readonly onDiagnostic?: (options: {
10
+ readonly reporter: TReporter;
11
+ readonly diagnostic: TDiagnostic;
12
+ }) => void;
13
+ readonly createConflictDiagnostic?: (options: {
14
+ readonly helper: HelperDescriptor;
15
+ readonly existing: HelperDescriptor;
16
+ readonly message: string;
17
+ }) => TDiagnostic;
18
+ readonly createMissingDependencyDiagnostic?: (options: {
19
+ readonly helper: HelperDescriptor;
20
+ readonly dependency: string;
21
+ readonly message: string;
22
+ }) => TDiagnostic;
23
+ readonly createUnusedHelperDiagnostic?: (options: {
24
+ readonly helper: HelperDescriptor;
25
+ readonly message: string;
26
+ }) => TDiagnostic;
27
+ }
28
+ /**
29
+ * Generic diagnostic manager that tracks conflicts, missing dependencies, and other issues
30
+ * without knowledge of specific helper kinds (fragments/builders).
31
+ */
32
+ export interface AgnosticDiagnosticManager<TReporter extends PipelineReporter, TDiagnostic extends PipelineDiagnostic> {
33
+ record: (diagnostic: TDiagnostic) => void;
34
+ setReporter: (reporter: TReporter) => void;
35
+ readDiagnostics: () => readonly TDiagnostic[];
36
+ getDiagnostics: () => readonly TDiagnostic[];
37
+ flagConflict: (helper: HelperDescriptor, existing: HelperDescriptor, kind: string, message: string) => void;
38
+ flagMissingDependency: (helper: HelperDescriptor, dependency: string, kind: string) => void;
39
+ flagUnusedHelper: (helper: HelperDescriptor, kind: string, reason: string, dependsOn: readonly string[]) => void;
40
+ prepareRun: () => void;
41
+ endRun: () => void;
42
+ }
43
+ /**
44
+ * Creates a truly agnostic diagnostic manager.
45
+ * @param options
46
+ */
47
+ export declare function createAgnosticDiagnosticManager<TReporter extends PipelineReporter, TDiagnostic extends PipelineDiagnostic>(options?: DiagnosticManagerOptions<TReporter, TDiagnostic>): AgnosticDiagnosticManager<TReporter, TDiagnostic>;
48
+ //# sourceMappingURL=diagnostics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../../../src/core/runner/diagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,EAChB,MAAM,UAAU,CAAC;AAElB;;GAEG;AACH,MAAM,WAAW,wBAAwB,CACxC,SAAS,SAAS,gBAAgB,EAClC,WAAW,SAAS,kBAAkB;IAEtC;;OAEG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE;QACjC,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC;QAC7B,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC;KACjC,KAAK,IAAI,CAAC;IAEX,QAAQ,CAAC,wBAAwB,CAAC,EAAE,CAAC,OAAO,EAAE;QAC7C,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;QAClC,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;QACpC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;KACzB,KAAK,WAAW,CAAC;IAClB,QAAQ,CAAC,iCAAiC,CAAC,EAAE,CAAC,OAAO,EAAE;QACtD,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;QAClC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;QAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;KACzB,KAAK,WAAW,CAAC;IAClB,QAAQ,CAAC,4BAA4B,CAAC,EAAE,CAAC,OAAO,EAAE;QACjD,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;QAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;KACzB,KAAK,WAAW,CAAC;CAClB;AAED;;;GAGG;AACH,MAAM,WAAW,yBAAyB,CACzC,SAAS,SAAS,gBAAgB,EAClC,WAAW,SAAS,kBAAkB;IAEtC,MAAM,EAAE,CAAC,UAAU,EAAE,WAAW,KAAK,IAAI,CAAC;IAC1C,WAAW,EAAE,CAAC,QAAQ,EAAE,SAAS,KAAK,IAAI,CAAC;IAC3C,eAAe,EAAE,MAAM,SAAS,WAAW,EAAE,CAAC;IAC9C,cAAc,EAAE,MAAM,SAAS,WAAW,EAAE,CAAC;IAG7C,YAAY,EAAE,CACb,MAAM,EAAE,gBAAgB,EACxB,QAAQ,EAAE,gBAAgB,EAC1B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,KACX,IAAI,CAAC;IACV,qBAAqB,EAAE,CACtB,MAAM,EAAE,gBAAgB,EACxB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,KACR,IAAI,CAAC;IACV,gBAAgB,EAAE,CACjB,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,MAAM,EAAE,KACxB,IAAI,CAAC;IAEV,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,MAAM,EAAE,MAAM,IAAI,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,CAC9C,SAAS,SAAS,gBAAgB,EAClC,WAAW,SAAS,kBAAkB,EAEtC,OAAO,GAAE,wBAAwB,CAAC,SAAS,EAAE,WAAW,CAAM,GAC5D,yBAAyB,CAAC,SAAS,EAAE,WAAW,CAAC,CAwInD"}
@@ -0,0 +1,82 @@
1
+ function l(s = {}) {
2
+ const d = [], i = [];
3
+ let u = !1;
4
+ const y = /* @__PURE__ */ new WeakMap();
5
+ let o;
6
+ const f = (e) => {
7
+ if (!o || !s.onDiagnostic)
8
+ return;
9
+ let n = y.get(o);
10
+ n || (n = /* @__PURE__ */ new Set(), y.set(o, n)), !n.has(e) && (s.onDiagnostic({
11
+ reporter: o,
12
+ diagnostic: e
13
+ }), n.add(e));
14
+ }, a = (e) => {
15
+ u ? i.push(e) : d.push(e), f(e);
16
+ }, D = (e, n) => `${e} helper "${n.key}"`;
17
+ return {
18
+ record: a,
19
+ setReporter(e) {
20
+ o = e, [...d, ...i].forEach(f);
21
+ },
22
+ readDiagnostics: () => [...d, ...i],
23
+ getDiagnostics: () => i,
24
+ prepareRun() {
25
+ u = !0, i.length = 0;
26
+ },
27
+ endRun() {
28
+ u = !1;
29
+ },
30
+ flagConflict(e, n, t, c) {
31
+ const r = s.createConflictDiagnostic?.({
32
+ helper: e,
33
+ existing: n,
34
+ message: c
35
+ }) ?? {
36
+ type: "conflict",
37
+ key: e.key,
38
+ mode: e.mode,
39
+ helpers: [
40
+ n.origin ?? n.key,
41
+ e.origin ?? e.key
42
+ ],
43
+ message: c,
44
+ kind: t
45
+ };
46
+ a(r);
47
+ },
48
+ flagMissingDependency(e, n, t) {
49
+ const r = `${D(t, e)} depends on unknown helper "${n}".`, g = s.createMissingDependencyDiagnostic?.({
50
+ helper: e,
51
+ dependency: n,
52
+ message: r
53
+ }) ?? {
54
+ type: "missing-dependency",
55
+ key: e.key,
56
+ dependency: n,
57
+ message: r,
58
+ kind: t,
59
+ helper: e.origin ?? e.key,
60
+ dependsOn: e.dependsOn
61
+ };
62
+ a(g);
63
+ },
64
+ flagUnusedHelper(e, n, t, c) {
65
+ const g = `${D(n, e)} ${t}.`, p = s.createUnusedHelperDiagnostic?.({
66
+ helper: e,
67
+ message: g
68
+ }) ?? {
69
+ type: "unused-helper",
70
+ key: e.key,
71
+ message: g,
72
+ kind: n,
73
+ helper: e.origin ?? e.key,
74
+ dependsOn: c
75
+ };
76
+ a(p);
77
+ }
78
+ };
79
+ }
80
+ export {
81
+ l as createAgnosticDiagnosticManager
82
+ };
@@ -0,0 +1,6 @@
1
+ import { AgnosticRunContext, AgnosticRunnerDependencies } from './types';
2
+ import { PipelineReporter, PipelineDiagnostic, MaybePromise } from '../types';
3
+ export declare const executeRun: <TRunOptions, TUserState, TContext extends {
4
+ reporter: TReporter;
5
+ }, TReporter extends PipelineReporter, TDiagnostic extends PipelineDiagnostic, TRunResult>(dependencies: AgnosticRunnerDependencies<TRunOptions, TUserState, TContext, TReporter, TDiagnostic, TRunResult>, runContext: AgnosticRunContext<TRunOptions, TUserState, TContext, TReporter, TDiagnostic>) => MaybePromise<TRunResult>;
6
+ //# sourceMappingURL=execution.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execution.d.ts","sourceRoot":"","sources":["../../../src/core/runner/execution.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACX,kBAAkB,EAClB,0BAA0B,EAM1B,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EACX,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,EACZ,MAAM,UAAU,CAAC;AAalB,eAAO,MAAM,UAAU,GACtB,WAAW,EACX,UAAU,EACV,QAAQ,SAAS;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,EACxC,SAAS,SAAS,gBAAgB,EAClC,WAAW,SAAS,kBAAkB,EACtC,UAAU,EAEV,cAAc,0BAA0B,CACvC,WAAW,EACX,UAAU,EACV,QAAQ,EACR,SAAS,EACT,WAAW,EACX,UAAU,CACV,EACD,YAAY,kBAAkB,CAC7B,WAAW,EACX,UAAU,EACV,QAAQ,EACR,SAAS,EACT,WAAW,CACX,KACC,YAAY,CAAC,UAAU,CAkHzB,CAAC"}
@@ -0,0 +1,66 @@
1
+ import { maybeThen as i } from "../async-utils.js";
2
+ import { createAgnosticProgram as f } from "./program.js";
3
+ const s = (o) => ({
4
+ kind: o,
5
+ registered: [],
6
+ executed: [],
7
+ missing: []
8
+ }), h = (o, e) => {
9
+ const {
10
+ runOptions: m,
11
+ context: c
12
+ } = e, n = e.state;
13
+ if (!o.stages)
14
+ return o.resolveRunResult({
15
+ diagnostics: [],
16
+ steps: [],
17
+ context: c,
18
+ userState: n.userState,
19
+ options: m,
20
+ helpers: {
21
+ builders: s("dummy-builder")
22
+ },
23
+ state: n
24
+ });
25
+ const p = f(o, e);
26
+ return i(
27
+ p(n),
28
+ (t) => {
29
+ if (t && typeof t == "object" && "__halt" in t) {
30
+ if (t.error)
31
+ throw t.error;
32
+ return t.result;
33
+ }
34
+ const r = t.extensionStack ?? [], a = r.length === 0 && t.extensionCoordinator && t.extensionState ? () => t.extensionCoordinator.commit(
35
+ t.extensionState
36
+ ) : void 0, g = a ? a() : r.reduce(
37
+ (d, {
38
+ coordinator: x,
39
+ state: S
40
+ }) => i(
41
+ d,
42
+ () => x.commit(S)
43
+ ),
44
+ void 0
45
+ );
46
+ return i(
47
+ g,
48
+ () => o.resolveRunResult({
49
+ diagnostics: t.diagnostics,
50
+ steps: t.steps,
51
+ context: t.context,
52
+ userState: t.userState,
53
+ options: t.runOptions,
54
+ helpers: {
55
+ fragments: s("dummy-fragment"),
56
+ builders: s("dummy-builder")
57
+ },
58
+ state: t
59
+ })
60
+ );
61
+ }
62
+ );
63
+ };
64
+ export {
65
+ h as executeRun
66
+ };
@@ -0,0 +1,14 @@
1
+ import { AgnosticRunner, AgnosticRunnerDependencies } from './types';
2
+ import { PipelineReporter, PipelineDiagnostic } from '../types';
3
+ /**
4
+ * Initializes an agnostic pipeline runner.
5
+ *
6
+ * @param dependencies - The dependencies required by the runner.
7
+ * @returns An `AgnosticRunner` instance.
8
+ *
9
+ * @internal
10
+ */
11
+ export declare const initAgnosticRunner: <TRunOptions, TUserState, TContext extends {
12
+ reporter: TReporter;
13
+ }, TReporter extends PipelineReporter, TDiagnostic extends PipelineDiagnostic, TRunResult>(dependencies: AgnosticRunnerDependencies<TRunOptions, TUserState, TContext, TReporter, TDiagnostic, TRunResult>) => AgnosticRunner<TRunOptions, TUserState, TContext, TReporter, TDiagnostic, TRunResult>;
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/runner/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAC;AAC1E,OAAO,KAAK,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAErE;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,GAC9B,WAAW,EACX,UAAU,EACV,QAAQ,SAAS;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,EACxC,SAAS,SAAS,gBAAgB,EAClC,WAAW,SAAS,kBAAkB,EACtC,UAAU,EAEV,cAAc,0BAA0B,CACvC,WAAW,EACX,UAAU,EACV,QAAQ,EACR,SAAS,EACT,WAAW,EACX,UAAU,CACV,KACC,cAAc,CAChB,WAAW,EACX,UAAU,EACV,QAAQ,EACR,SAAS,EACT,WAAW,EACX,UAAU,CAOV,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { executeRun as e } from "./execution.js";
2
+ import { prepareContext as o } from "./context.js";
3
+ const u = (r) => ({
4
+ prepareContext: (t) => o(r, t),
5
+ executeRun: (t) => e(r, t)
6
+ });
7
+ export {
8
+ u as initAgnosticRunner
9
+ };
@@ -0,0 +1,7 @@
1
+ import { Program } from '../async-utils';
2
+ import { AgnosticRunnerDependencies, AgnosticRunContext, AgnosticState, Halt } from './types';
3
+ import { PipelineReporter, PipelineDiagnostic } from '../types';
4
+ export declare const createAgnosticProgram: <TRunOptions, TUserState, TContext extends {
5
+ reporter: TReporter;
6
+ }, TReporter extends PipelineReporter, TDiagnostic extends PipelineDiagnostic, TRunResult>(dependencies: AgnosticRunnerDependencies<TRunOptions, TUserState, TContext, TReporter, TDiagnostic, TRunResult>, runContext: AgnosticRunContext<TRunOptions, TUserState, TContext, TReporter, TDiagnostic>) => Program<AgnosticState<TRunOptions, TUserState, TContext, TReporter, TDiagnostic> | Halt<TRunResult>>;
7
+ //# sourceMappingURL=program.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"program.d.ts","sourceRoot":"","sources":["../../../src/core/runner/program.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACnE,OAAO,KAAK,EACX,0BAA0B,EAC1B,kBAAkB,EAElB,aAAa,EACb,IAAI,EAGJ,MAAM,SAAS,CAAC;AASjB,OAAO,KAAK,EACX,gBAAgB,EAChB,kBAAkB,EAIlB,MAAM,UAAU,CAAC;AAElB,eAAO,MAAM,qBAAqB,GACjC,WAAW,EACX,UAAU,EACV,QAAQ,SAAS;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,EACxC,SAAS,SAAS,gBAAgB,EAClC,WAAW,SAAS,kBAAkB,EACtC,UAAU,EAEV,cAAc,0BAA0B,CACvC,WAAW,EACX,UAAU,EACV,QAAQ,EACR,SAAS,EACT,WAAW,EACX,UAAU,CACV,EACD,YAAY,kBAAkB,CAC7B,WAAW,EACX,UAAU,EACV,QAAQ,EACR,SAAS,EACT,WAAW,CACX,KACC,OAAO,CACP,aAAa,CAAC,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,CAAC,GACxE,IAAI,CAAC,UAAU,CAAC,CA6SlB,CAAC"}