@wpkernel/pipeline 0.12.5-beta.0 → 0.12.6-beta.1

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 (133) hide show
  1. package/README.md +69 -8
  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/core/extensions/index.d.ts +4 -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 +3 -3
  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 +148 -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 +21 -18
  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 +6 -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 -9
  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 +0 -3
  81. package/dist/extensions/index.d.ts.map +0 -1
  82. package/dist/extensions/official.d.ts.map +0 -1
  83. package/dist/extensions.d.ts.map +0 -1
  84. package/dist/extensions.js +0 -88
  85. package/dist/helper.d.ts.map +0 -1
  86. package/dist/internal/diagnostic-manager.d.ts +0 -29
  87. package/dist/internal/diagnostic-manager.d.ts.map +0 -1
  88. package/dist/internal/diagnostic-manager.js +0 -90
  89. package/dist/internal/diagnostic-manager.types.d.ts +0 -70
  90. package/dist/internal/diagnostic-manager.types.d.ts.map +0 -1
  91. package/dist/internal/extension-coordinator.d.ts.map +0 -1
  92. package/dist/internal/extension-coordinator.types.d.ts.map +0 -1
  93. package/dist/internal/helper-execution.d.ts +0 -32
  94. package/dist/internal/helper-execution.d.ts.map +0 -1
  95. package/dist/internal/helper-execution.js +0 -33
  96. package/dist/internal/pipeline-program-utils.d.ts +0 -127
  97. package/dist/internal/pipeline-program-utils.d.ts.map +0 -1
  98. package/dist/internal/pipeline-program-utils.js +0 -161
  99. package/dist/internal/pipeline-runner.types.d.ts +0 -195
  100. package/dist/internal/pipeline-runner.types.d.ts.map +0 -1
  101. package/dist/internal/runner/context.d.ts +0 -6
  102. package/dist/internal/runner/context.d.ts.map +0 -1
  103. package/dist/internal/runner/context.js +0 -169
  104. package/dist/internal/runner/execution.d.ts +0 -6
  105. package/dist/internal/runner/execution.d.ts.map +0 -1
  106. package/dist/internal/runner/execution.js +0 -40
  107. package/dist/internal/runner/index.d.ts +0 -13
  108. package/dist/internal/runner/index.d.ts.map +0 -1
  109. package/dist/internal/runner/index.js +0 -11
  110. package/dist/internal/runner/program.d.ts +0 -8
  111. package/dist/internal/runner/program.d.ts.map +0 -1
  112. package/dist/internal/runner/program.js +0 -294
  113. package/dist/makePipeline.d.ts +0 -20
  114. package/dist/makePipeline.d.ts.map +0 -1
  115. package/dist/makePipeline.js +0 -139
  116. package/dist/registration.d.ts.map +0 -1
  117. package/dist/registration.js +0 -59
  118. package/dist/rollback.d.ts.map +0 -1
  119. package/dist/types.d.ts.map +0 -1
  120. /package/dist/{createExtension.d.ts → core/createExtension.d.ts} +0 -0
  121. /package/dist/{createExtension.js → core/createExtension.js} +0 -0
  122. /package/dist/{dependency-graph.d.ts → core/dependency-graph.d.ts} +0 -0
  123. /package/dist/{dependency-graph.js → core/dependency-graph.js} +0 -0
  124. /package/dist/{error-factory.d.ts → core/error-factory.d.ts} +0 -0
  125. /package/dist/{error-factory.js → core/error-factory.js} +0 -0
  126. /package/dist/{executor.js → core/execution-utils.js} +0 -0
  127. /package/dist/{extensions → core/extensions}/official.d.ts +0 -0
  128. /package/dist/{extensions → core/extensions}/official.js +0 -0
  129. /package/dist/{helper.d.ts → core/helper.d.ts} +0 -0
  130. /package/dist/{helper.js → core/helper.js} +0 -0
  131. /package/dist/{registration.d.ts → core/registration.d.ts} +0 -0
  132. /package/dist/{rollback.d.ts → core/rollback.d.ts} +0 -0
  133. /package/dist/{rollback.js → core/rollback.js} +0 -0
package/README.md CHANGED
@@ -15,10 +15,21 @@ While it powers WPKernel's code generation (assembling fragments into artifacts)
15
15
  It guarantees:
16
16
 
17
17
  - **Deterministic Ordering**: Topologically sorts helpers based on `dependsOn`.
18
- - **Cycle Detection**: Fails fast if dependencies form a loop.
19
- - **Atomic Rollbacks**: Extensions provide transactional `commit` and `rollback` hooks.
18
+ - **Cycle Detection**: Fails fast (halts execution) if dependencies form a loop.
19
+ - **Robust Rollbacks**: Extensions and helpers provide best-effort rollback hooks run LIFO, attempting all cleanup steps and reporting any rollback failures.
20
20
  - **Type Safety**: Full TypeScript support for custom contexts, options, and artifacts.
21
21
 
22
+ ### Architecture Note
23
+
24
+ The package exports a single entry point `@wpkernel/pipeline` which provides the "Standard Pipeline" (Fragments & Builders). This is the recommended API for most consumers.
25
+
26
+ Under the hood, the package is split into:
27
+
28
+ 1. **Standard Pipeline (`src/standard-pipeline`)**: The opinionated implementation used by WPKernel.
29
+ 2. **Core Runner (`src/core/runner`)**: A purely agnostic DAG execution engine.
30
+
31
+ Subpath imports (e.g., `@wpkernel/pipeline/core`) are available if you need to build a completely custom pipeline architecture using the runner primitives directly.
32
+
22
33
  ## Installation
23
34
 
24
35
  ```bash
@@ -27,25 +38,44 @@ pnpm add @wpkernel/pipeline
27
38
 
28
39
  The package ships pure TypeScript and has no runtime dependencies.
29
40
 
30
- ## Usage
41
+ ### Usage
42
+
43
+ #### Standard Pipeline (Recommended)
44
+
45
+ Use `createPipeline` for the standard Fragment → Builder workflow used by WPKernel.
46
+
47
+ ```ts
48
+ import { createPipeline } from '@wpkernel/pipeline';
49
+
50
+ const pipeline = createPipeline({
51
+ // Configuration
52
+ createContext: (ops) => ({ db: ops.db }),
53
+ createBuildOptions: () => ({}),
54
+ createFragmentState: () => ({}),
55
+
56
+ // Argument resolvers
57
+ createFragmentArgs: ({ context }) => ({ db: context.db }),
58
+ createBuilderArgs: ({ artifact }) => ({ artifact }),
59
+ });
60
+ ```
31
61
 
32
- ### 1. Define Your World
62
+ #### Custom Pipeline (Advanced)
33
63
 
34
- The pipeline is generic. You define the "Stages" and "State" relevant to your domain.
64
+ For completely custom architectures (ETL, migrations, etc.), use `makePipeline` to define your own stages.
35
65
 
36
66
  ```ts
37
67
  import { makePipeline } from '@wpkernel/pipeline';
38
68
 
39
69
  const pipeline = makePipeline({
40
70
  // Define the "Stages" of your pipeline
41
- stages: (deps) => [
71
+ helperKinds: ['extract', 'transform', 'load'] as const,
72
+ createStages: (deps) => [
42
73
  deps.makeLifecycleStage('extract'),
43
74
  deps.makeLifecycleStage('transform'),
44
75
  deps.makeLifecycleStage('load'),
45
76
  deps.commitStage,
46
77
  deps.finalizeResult,
47
78
  ],
48
- // Define how to create your context and state
49
79
  createContext: (ops) => ({ db: ops.db }),
50
80
  // ... logic for resolving args for your helpers ...
51
81
  });
@@ -96,7 +126,38 @@ Pipeline creates a dependency graph for _each_ kind of helper. If `Helper B` dep
96
126
 
97
127
  ### Extensions & Lifecycles
98
128
 
99
- Extensions wrap the execution with hooks like `prepare`, `onSuccess`, and `rollback`. They are crucial for ensuring atomic operations - if any stage fails, the pipeline automatically triggers the rollback chain for all executed extensions.
129
+ Extensions wrap execution with hooks at specific lifecycle stages.
130
+
131
+ **Standard Pipeline Lifecycles**:
132
+ `prepare` → `before-fragments` → `after-fragments` → `before-builders` → `after-builders` → `finalize`
133
+
134
+ > **Note**: Custom pipelines (using `makePipeline`) can define arbitrary lifecycle stages. Extensions can hook into any stage, standard or custom, as long as it exists in the pipeline's execution plan.
135
+
136
+ **Validation**: The pipeline validates extension registrations. If an extension attempts to hook into an unscheduled lifecycle, the pipeline will log a warning instead of silently ignoring it.
137
+
138
+ **Extension Registration (Sync & Async)**: `extensions.use()` returns `MaybePromise<unknown>`. It returns a Promise only if the extension's `register` method is asynchronous.
139
+
140
+ ```ts
141
+ // Sync registration (e.g. simple helper bundles)
142
+ extensions.use(mySyncExtension);
143
+
144
+ // Async registration (e.g. database connections)
145
+ await extensions.use(myAsyncExtension);
146
+ ```
147
+
148
+ > **Recommendation**: We recommend `await`ing registration when possible for consistency, but you may omit it if you are certain the extension initializes synchronously. `pipeline.run()` will automatically wait for any pending async registrations.
149
+
150
+ ### Rollbacks
151
+
152
+ The pipeline supports robust rollback for both helper application and extension lifecycle commit phases:
153
+
154
+ - **Extensions**: Can provide transactional overhead via the `commit` phase. If extensive failure occurs, `rollback` hooks are triggered.
155
+ - **Helpers**: Can return a `rollback` function in their result. These are executed LIFO if a later failure occurs.
156
+ - **Robustness**: The rollback stack continues execution even if individual rollback actions fail (errors are collected and reported).
157
+
158
+ ### Re-run Semantics
159
+
160
+ Diagnostics are per-run. Calling `pipeline.run()` automatically clears any previous runtime diagnostics to ensure a fresh state. Static diagnostics (e.g., registration conflicts) are preserved and re-emitted for each run.
100
161
 
101
162
  ## Documentation
102
163
 
@@ -62,4 +62,13 @@ export type Program<S> = (state: S) => MaybePromise<S>;
62
62
  * @internal
63
63
  */
64
64
  export declare const composeK: <S>(...fns: Program<S>[]) => Program<S>;
65
+ /**
66
+ * Sync-friendly Promise.all equivalent.
67
+ *
68
+ * @param values
69
+ * @returns
70
+ *
71
+ * @internal
72
+ */
73
+ export declare function maybeAll<T>(values: readonly MaybePromise<T>[]): MaybePromise<T[]>;
65
74
  //# sourceMappingURL=async-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"async-utils.d.ts","sourceRoot":"","sources":["../../src/core/async-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,WAAW,CAAC,OAAO,CAAC,CAS3E;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,OAAO,EACnC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,EACtB,WAAW,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,YAAY,CAAC,OAAO,CAAC,GAC9C,YAAY,CAAC,OAAO,CAAC,CAUvB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EACzB,GAAG,EAAE,MAAM,YAAY,CAAC,CAAC,CAAC,EAC1B,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,YAAY,CAAC,CAAC,CAAC,GAC1C,YAAY,CAAC,CAAC,CAAC,CAYjB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EACpC,KAAK,EAAE,SAAS,CAAC,EAAE,EACnB,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,YAAY,CAAC,IAAI,CAAC,EACvD,SAAS,GAAE,SAAS,GAAG,SAAqB,GAC1C,YAAY,CAAC,IAAI,CAAC,CAgCpB;AAED;;;;GAIG;AAEH,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC;AACvD;;;;;;GAMG;AAEH,eAAO,MAAM,QAAQ,GACnB,CAAC,EAAE,GAAG,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,KAAG,OAAO,CAAC,CAAC,CAKlC,CAAC;AAEJ;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EACzB,MAAM,EAAE,SAAS,YAAY,CAAC,CAAC,CAAC,EAAE,GAChC,YAAY,CAAC,CAAC,EAAE,CAAC,CAKnB"}
@@ -0,0 +1,46 @@
1
+ function f(t) {
2
+ return (typeof t != "object" || t === null) && typeof t != "function" ? !1 : typeof t.then == "function";
3
+ }
4
+ function m(t, e) {
5
+ if (typeof e != "function")
6
+ throw new TypeError("maybeThen: onFulfilled is not a function");
7
+ return f(t) ? Promise.resolve(t).then(e) : e(t);
8
+ }
9
+ function l(t, e) {
10
+ try {
11
+ const r = t();
12
+ return f(r) ? Promise.resolve(r).catch((n) => e(n)) : r;
13
+ } catch (r) {
14
+ return e(r);
15
+ }
16
+ }
17
+ function p(t, e, r = "forward") {
18
+ const n = t.length;
19
+ if (n === 0)
20
+ return;
21
+ const h = (o) => r === "forward" ? o < n : o >= 0, s = (o) => r === "forward" ? o + 1 : o - 1, i = (o) => {
22
+ for (let c = o; h(c); c = s(c)) {
23
+ const a = t[c], u = e(a, c);
24
+ if (f(u))
25
+ return Promise.resolve(u).then(
26
+ () => i(s(c))
27
+ );
28
+ }
29
+ }, y = r === "forward" ? 0 : n - 1;
30
+ return i(y);
31
+ }
32
+ const w = (...t) => (e) => t.reduceRight(
33
+ (r, n) => m(r, n),
34
+ e
35
+ );
36
+ function b(t) {
37
+ return t.some(f) ? Promise.all(t) : t;
38
+ }
39
+ export {
40
+ w as composeK,
41
+ f as isPromiseLike,
42
+ b as maybeAll,
43
+ m as maybeThen,
44
+ l as maybeTry,
45
+ p as processSequentially
46
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createExtension.d.ts","sourceRoot":"","sources":["../../src/core/createExtension.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACX,YAAY,EACZ,iBAAiB,EACjB,qBAAqB,EACrB,iCAAiC,EACjC,0BAA0B,EAC1B,MAAM,YAAY,CAAC;AAEpB,UAAU,kCAAkC;IAC3C,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;GAKG;AACH,MAAM,WAAW,mCAAmC,CACnD,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,SAAS,CACR,SAAQ,kCAAkC;IAC3C,QAAQ,CAAC,QAAQ,EAAE,CAClB,QAAQ,EAAE,SAAS,KACf,YAAY,CACd,IAAI,GACJ,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,GACpD,iCAAiC,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAClE,CAAC;CACF;AAED,UAAU,gCAAgC,CACzC,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,SAAS,CACR,SAAQ,kCAAkC;IAC3C,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,SAAS,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC;IAC7D,QAAQ,CAAC,IAAI,CAAC,EACX,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,GACpD,iCAAiC,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IACpE,QAAQ,CAAC,SAAS,CAAC,EAAE,0BAA0B,CAAC;CAChD;AAED,MAAM,MAAM,8BAA8B,CACzC,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,SAAS,IAEP,mCAAmC,CACnC,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,SAAS,CACR,GACD,gCAAgC,CAChC,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,SAAS,CACR,CAAC;AAEL;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoJG;AACH,wBAAgB,uBAAuB,CACtC,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,SAAS,EAET,OAAO,EAAE,8BAA8B,CACtC,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,SAAS,CACT,GACC,iBAAiB,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAoD7D"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dependency-graph.d.ts","sourceRoot":"","sources":["../../src/core/dependency-graph.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE5D;;;;GAIG;AACH,MAAM,WAAW,gBAAgB,CAAC,OAAO;IACxC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACvB;AAaD;;;;GAIG;AACH,MAAM,WAAW,sBAAsB,CAAC,OAAO;IAC9C,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC9C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAC/B;AAED;;;;GAIG;AACH,MAAM,WAAW,4BAA4B,CAAC,OAAO;IACpD,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAC9B,KAAK,EAAE,sBAAsB,CAAC,OAAO,CAAC,KAClC,IAAI,CAAC;IACV,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC,OAAO,EAAE;QACxC,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;KACjD,KAAK,IAAI,CAAC;IACX;;;;OAIG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1C;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,CAC7B,MAAM,EAAE;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,EACzC,KAAK,EAAE,MAAM,GACX,MAAM,CAER;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,OAAO,SAAS,gBAAgB,EAC9D,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,EAC5B,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,GAC1B,MAAM,CAUR;AAoPD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,SAAS,gBAAgB,EACrE,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAAC,EAAE,EACpC,OAAO,EAAE,4BAA4B,CAAC,OAAO,CAAC,GAAG,SAAS,EAC1D,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,KAAK,GACnD;IACF,KAAK,EAAE,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;IACnC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;CACpC,CAgBA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-factory.d.ts","sourceRoot":"","sources":["../../src/core/error-factory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,KAAK,CAAC;AAEpE;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,KAAK,CAIvE;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,kBAAkB,CACjC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,KAAK,GAC9C,YAAY,CAEd"}
@@ -21,4 +21,4 @@ import { RegisteredHelper } from './dependency-graph';
21
21
  * @internal
22
22
  */
23
23
  export declare function executeHelpers<TContext, TInput, TOutput, TReporter extends PipelineReporter, TKind extends HelperKind, THelper extends Helper<TContext, TInput, TOutput, TReporter, TKind>, TArgs extends HelperApplyOptions<TContext, TInput, TOutput, TReporter>>(ordered: RegisteredHelper<THelper>[], makeArgs: (entry: RegisteredHelper<THelper>) => TArgs, invoke: (helper: THelper, args: TArgs, next: () => MaybePromise<void>) => MaybePromise<void>, recordStep: (entry: RegisteredHelper<THelper>) => void): MaybePromise<Set<string>>;
24
- //# sourceMappingURL=executor.d.ts.map
24
+ //# sourceMappingURL=execution-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execution-utils.d.ts","sourceRoot":"","sources":["../../src/core/execution-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,MAAM,EACN,kBAAkB,EAClB,UAAU,EACV,YAAY,EACZ,gBAAgB,EAChB,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAG3D;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,cAAc,CAC7B,QAAQ,EACR,MAAM,EACN,OAAO,EACP,SAAS,SAAS,gBAAgB,EAClC,KAAK,SAAS,UAAU,EACxB,OAAO,SAAS,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,EACnE,KAAK,SAAS,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,EAEtE,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAAC,EAAE,EACpC,QAAQ,EAAE,CAAC,KAAK,EAAE,gBAAgB,CAAC,OAAO,CAAC,KAAK,KAAK,EACrD,MAAM,EAAE,CACP,MAAM,EAAE,OAAO,EACf,IAAI,EAAE,KAAK,EACX,IAAI,EAAE,MAAM,YAAY,CAAC,IAAI,CAAC,KAC1B,YAAY,CAAC,IAAI,CAAC,EACvB,UAAU,EAAE,CAAC,KAAK,EAAE,gBAAgB,CAAC,OAAO,CAAC,KAAK,IAAI,GACpD,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CA0E3B"}
@@ -0,0 +1,2 @@
1
+ export * from './execution-utils';
2
+ //# sourceMappingURL=executor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/core/executor.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from './runner';
2
+ export { OFFICIAL_EXTENSION_BLUEPRINTS } from './official';
3
+ export type { OfficialExtensionBlueprint, ExtensionBlueprint, ExtensionBehaviour, ExtensionFactorySignature, } from './official';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/extensions/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,6BAA6B,EAAE,MAAM,YAAY,CAAC;AAC3D,YAAY,EACX,0BAA0B,EAC1B,kBAAkB,EAClB,kBAAkB,EAClB,yBAAyB,GACzB,MAAM,YAAY,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"official.d.ts","sourceRoot":"","sources":["../../../src/core/extensions/official.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAElD;;;;GAIG;AACH,MAAM,WAAW,yBAAyB,CAAC,QAAQ,GAAG,OAAO;IAC5D;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC;CAC3B;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/C,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5C,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1C;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IAClC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,gBAAgB,CAAC;IAC9C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,yBAAyB,CAAC;IAC7C,QAAQ,CAAC,UAAU,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACnD,QAAQ,CAAC,mBAAmB,EAAE,SAAS,MAAM,EAAE,CAAC;IAChD,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;CACzC;AAED;;;;GAIG;AACH,MAAM,MAAM,2BAA2B,GAAG,CACzC,OAAO,CAAC,EAAE,OAAO,KACb,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAE3D;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,6BAA6B,EAAE,SAAS,kBAAkB,EA+GtE,CAAC;AAEF,YAAY,EAAE,kBAAkB,IAAI,0BAA0B,EAAE,CAAC"}
@@ -1,4 +1,4 @@
1
- import { MaybePromise, PipelineExtensionHook, PipelineExtensionHookOptions, PipelineExtensionHookResult, PipelineExtensionRollbackErrorMetadata, PipelineExtensionLifecycle } from './types';
1
+ import { MaybePromise, PipelineExtensionHook, PipelineExtensionHookOptions, PipelineExtensionHookResult, PipelineExtensionLifecycle } from '../types';
2
2
  /**
3
3
  * An extension hook entry with its unique key.
4
4
  *
@@ -39,7 +39,6 @@ export interface RollbackErrorArgs {
39
39
  *
40
40
  * @internal
41
41
  */
42
- export declare function createRollbackErrorMetadata(error: unknown): PipelineExtensionRollbackErrorMetadata;
43
42
  /**
44
43
  * Runs extension hooks sequentially and accumulates their results.
45
44
  *
@@ -82,6 +81,4 @@ export declare function commitExtensionResults<TContext, TOptions, TArtifact>(re
82
81
  * @internal
83
82
  */
84
83
  export declare function rollbackExtensionResults<TContext, TOptions, TArtifact>(results: readonly ExtensionHookExecution<TContext, TOptions, TArtifact>[], hooks: readonly ExtensionHookEntry<TContext, TOptions, TArtifact>[], onRollbackError: (args: RollbackErrorArgs) => void): MaybePromise<void>;
85
- export { OFFICIAL_EXTENSION_BLUEPRINTS } from './extensions/official.js';
86
- export { OfficialExtensionBlueprint, ExtensionBlueprint, ExtensionBehaviour, ExtensionFactorySignature, } from "./extensions/official.js";
87
- //# sourceMappingURL=extensions.d.ts.map
84
+ //# sourceMappingURL=runner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../../src/core/extensions/runner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,YAAY,EACZ,qBAAqB,EACrB,4BAA4B,EAC5B,2BAA2B,EAC3B,0BAA0B,EAC1B,MAAM,UAAU,CAAC;AASlB;;;;GAIG;AACH,MAAM,WAAW,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS;IAChE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,SAAS,EAAE,0BAA0B,CAAC;IAC/C,QAAQ,CAAC,IAAI,EAAE,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;CACpE;AAED;;;;GAIG;AACH,MAAM,WAAW,sBAAsB,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS;IACpE,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IACjE,QAAQ,CAAC,MAAM,EAAE,2BAA2B,CAAC,SAAS,CAAC,CAAC;CACxD;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IACjC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;CACzC;AAED;;;;;;;;;;GAUG;AAGH;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAC9D,KAAK,EAAE,SAAS,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,EACnE,SAAS,EAAE,0BAA0B,EACrC,OAAO,EAAE,4BAA4B,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,EACpE,eAAe,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,IAAI,GAChD,YAAY,CAAC;IACf,QAAQ,EAAE,SAAS,CAAC;IACpB,OAAO,EAAE,sBAAsB,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,CAAC;CACjE,CAAC,CA8DD;AAED;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EACnE,OAAO,EAAE,SAAS,sBAAsB,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,GACvE,YAAY,CAAC,IAAI,CAAC,CAcpB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EACrE,OAAO,EAAE,SAAS,sBAAsB,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,EACzE,KAAK,EAAE,SAAS,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,EACnE,eAAe,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,IAAI,GAChD,YAAY,CAAC,IAAI,CAAC,CA0BpB"}
@@ -0,0 +1,73 @@
1
+ import { maybeTry as p, maybeThen as a, processSequentially as f, isPromiseLike as k } from "../async-utils.js";
2
+ import { runRollbackStack as b } from "../rollback.js";
3
+ function E(u, s, t, r) {
4
+ let n = t.artifact;
5
+ const i = [], o = u.filter(
6
+ (e) => e.lifecycle === s
7
+ ), m = {
8
+ context: t.context,
9
+ options: t.options,
10
+ lifecycle: s
11
+ }, h = p(
12
+ () => f(o, (e) => {
13
+ const c = e.hook({
14
+ ...m,
15
+ artifact: n
16
+ });
17
+ if (k(c))
18
+ return Promise.resolve(c).then((l) => {
19
+ l && (l.artifact !== void 0 && (n = l.artifact), i.push({
20
+ hook: e,
21
+ result: l
22
+ }));
23
+ });
24
+ if (c)
25
+ return c.artifact !== void 0 && (n = c.artifact), void i.push({
26
+ hook: e,
27
+ result: c
28
+ });
29
+ }),
30
+ (e) => a(
31
+ d(i, o, r),
32
+ () => {
33
+ throw e;
34
+ }
35
+ )
36
+ );
37
+ return a(h, () => ({ artifact: n, results: i }));
38
+ }
39
+ function R(u) {
40
+ return f(u, (s) => {
41
+ const t = s.result.commit;
42
+ if (!t)
43
+ return;
44
+ const r = t();
45
+ if (k(r))
46
+ return r.then(() => {
47
+ });
48
+ });
49
+ }
50
+ function d(u, s, t) {
51
+ const r = s.map((o) => o.key), n = r, i = u.map((o) => ({
52
+ result: o.result,
53
+ hook: o.hook
54
+ })).filter((o) => o.result.rollback).map((o) => ({
55
+ key: o.hook.key,
56
+ run: o.result.rollback
57
+ }));
58
+ return b(i, {
59
+ source: "extension",
60
+ onError: ({ error: o }) => {
61
+ t({
62
+ error: o,
63
+ extensionKeys: r,
64
+ hookSequence: n
65
+ });
66
+ }
67
+ });
68
+ }
69
+ export {
70
+ R as commitExtensionResults,
71
+ d as rollbackExtensionResults,
72
+ E as runExtensionHooks
73
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helper.d.ts","sourceRoot":"","sources":["../../src/core/helper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,mBAAmB,EACnB,MAAM,EACN,UAAU,EAEV,gBAAgB,EAChB,MAAM,SAAS,CAAC;AAEjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6IG;AACH,wBAAgB,YAAY,CAC3B,QAAQ,EACR,MAAM,EACN,OAAO,EACP,SAAS,SAAS,gBAAgB,GAAG,gBAAgB,EACrD,KAAK,SAAS,UAAU,GAAG,UAAU,EAErC,OAAO,EAAE,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,GACvE,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,CA8BrD"}
@@ -0,0 +1,11 @@
1
+ export * from './async-utils.js';
2
+ export * from './createExtension.js';
3
+ export * from './dependency-graph.js';
4
+ export * from './error-factory.js';
5
+ export * from './executor.js';
6
+ export * from './extensions/index.js';
7
+ export * from './helper.js';
8
+ export * from './registration.js';
9
+ export * from './rollback.js';
10
+ export * from './types.js';
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC"}
@@ -0,0 +1,36 @@
1
+ import { composeK as o, isPromiseLike as t, maybeAll as a, maybeThen as l, maybeTry as p, processSequentially as s } from "./async-utils.js";
2
+ import { createPipelineExtension as c } from "./createExtension.js";
3
+ import { compareHelpers as m, createDependencyGraph as x, createHelperId as E } from "./dependency-graph.js";
4
+ import { createDefaultError as k, createErrorFactory as u } from "./error-factory.js";
5
+ import { createHelper as b } from "./helper.js";
6
+ import { handleExtensionRegisterResult as H, registerExtensionHook as I, registerHelper as d } from "./registration.js";
7
+ import { createPipelineRollback as S, createRollbackErrorMetadata as T, runRollbackStack as g } from "./rollback.js";
8
+ import { executeHelpers as F } from "./execution-utils.js";
9
+ import { OFFICIAL_EXTENSION_BLUEPRINTS as N } from "./extensions/official.js";
10
+ import { commitExtensionResults as D, rollbackExtensionResults as O, runExtensionHooks as _ } from "./extensions/runner.js";
11
+ export {
12
+ N as OFFICIAL_EXTENSION_BLUEPRINTS,
13
+ D as commitExtensionResults,
14
+ m as compareHelpers,
15
+ o as composeK,
16
+ k as createDefaultError,
17
+ x as createDependencyGraph,
18
+ u as createErrorFactory,
19
+ b as createHelper,
20
+ E as createHelperId,
21
+ c as createPipelineExtension,
22
+ S as createPipelineRollback,
23
+ T as createRollbackErrorMetadata,
24
+ F as executeHelpers,
25
+ H as handleExtensionRegisterResult,
26
+ t as isPromiseLike,
27
+ a as maybeAll,
28
+ l as maybeThen,
29
+ p as maybeTry,
30
+ s as processSequentially,
31
+ I as registerExtensionHook,
32
+ d as registerHelper,
33
+ O as rollbackExtensionResults,
34
+ _ as runExtensionHooks,
35
+ g as runRollbackStack
36
+ };
@@ -16,6 +16,6 @@ import { ExtensionCoordinator, ExtensionRollbackEvent } from './extension-coordi
16
16
  * @category Pipeline
17
17
  * @internal
18
18
  */
19
- export declare function initExtensionCoordinator<TContext, TOptions, TArtifact>(onRollbackError: (event: ExtensionRollbackEvent<TContext, TOptions, TArtifact>) => void): ExtensionCoordinator<TContext, TOptions, TArtifact>;
20
- export { ExtensionLifecycleState, ExtensionHookEntry, } from "./extension-coordinator.types";
21
- //# sourceMappingURL=extension-coordinator.d.ts.map
19
+ export declare function initExtensionCoordinator<TContext, TOptions, TUserState>(onRollbackError: (event: ExtensionRollbackEvent<TContext, TOptions, TUserState>) => void): ExtensionCoordinator<TContext, TOptions, TUserState>;
20
+ export type { ExtensionLifecycleState, ExtensionHookEntry, } from './extension-coordinator.types';
21
+ //# sourceMappingURL=extension-coordinator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extension-coordinator.d.ts","sourceRoot":"","sources":["../../../src/core/internal/extension-coordinator.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACX,oBAAoB,EAEpB,sBAAsB,EACtB,MAAM,+BAA+B,CAAC;AAGvC;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,EACtE,eAAe,EAAE,CAChB,KAAK,EAAE,sBAAsB,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,KACzD,IAAI,GACP,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,CA+EtD;AAED,YAAY,EACX,uBAAuB,EACvB,kBAAkB,GAClB,MAAM,+BAA+B,CAAC"}
@@ -1,18 +1,19 @@
1
- import { commitExtensionResults as m, rollbackExtensionResults as d, runExtensionHooks as f, createRollbackErrorMetadata as s } from "../extensions.js";
1
+ import { createRollbackErrorMetadata as s } from "../rollback.js";
2
2
  import { maybeThen as i } from "../async-utils.js";
3
+ import { commitExtensionResults as u, rollbackExtensionResults as f, runExtensionHooks as d } from "../extensions/runner.js";
3
4
  function R(n) {
4
5
  return {
5
6
  runLifecycle: (t, { hooks: o, hookOptions: r }) => {
6
7
  const c = o.filter(
7
8
  (e) => e.lifecycle === t
8
- ), a = f(
9
+ ), a = d(
9
10
  o,
10
11
  t,
11
12
  r,
12
- ({ error: e, extensionKeys: l, hookSequence: u }) => n({
13
+ ({ error: e, extensionKeys: l, hookSequence: m }) => n({
13
14
  error: e,
14
15
  extensionKeys: l,
15
- hookSequence: u,
16
+ hookSequence: m,
16
17
  errorMetadata: s(e),
17
18
  hookOptions: r
18
19
  })
@@ -27,7 +28,7 @@ function R(n) {
27
28
  );
28
29
  },
29
30
  createRollbackHandler: (t) => (o) => i(
30
- d(
31
+ f(
31
32
  t.results,
32
33
  t.hooks,
33
34
  ({ error: r, extensionKeys: c, hookSequence: a }) => n({
@@ -42,7 +43,7 @@ function R(n) {
42
43
  throw o;
43
44
  }
44
45
  ),
45
- commit: (t) => m(t.results),
46
+ commit: (t) => u(t.results),
46
47
  handleRollbackError: n
47
48
  };
48
49
  }
@@ -6,10 +6,10 @@ import { ExtensionHookEntry, ExtensionHookExecution, RollbackErrorArgs } from '.
6
6
  * @category Pipeline
7
7
  * @internal
8
8
  */
9
- export interface ExtensionLifecycleState<TContext, TOptions, TArtifact> {
10
- readonly artifact: TArtifact;
11
- readonly results: ExtensionHookExecution<TContext, TOptions, TArtifact>[];
12
- readonly hooks: readonly ExtensionHookEntry<TContext, TOptions, TArtifact>[];
9
+ export interface ExtensionLifecycleState<TContext, TOptions, TUserState> {
10
+ readonly artifact: TUserState;
11
+ readonly results: ExtensionHookExecution<TContext, TOptions, TUserState>[];
12
+ readonly hooks: readonly ExtensionHookEntry<TContext, TOptions, TUserState>[];
13
13
  }
14
14
  /**
15
15
  * Handles extension execution, rollback, and commit using the primitives exposed by the
@@ -25,18 +25,18 @@ export interface ExtensionLifecycleState<TContext, TOptions, TArtifact> {
25
25
  * @category Pipeline
26
26
  * @internal
27
27
  */
28
- export interface ExtensionRollbackEvent<TContext, TOptions, TArtifact> extends RollbackErrorArgs {
28
+ export interface ExtensionRollbackEvent<TContext, TOptions, TUserState> extends RollbackErrorArgs {
29
29
  readonly errorMetadata: PipelineExtensionRollbackErrorMetadata;
30
- readonly hookOptions?: PipelineExtensionHookOptions<TContext, TOptions, TArtifact>;
30
+ readonly hookOptions?: PipelineExtensionHookOptions<TContext, TOptions, TUserState>;
31
31
  }
32
- export interface ExtensionCoordinator<TContext, TOptions, TArtifact> {
33
- readonly runLifecycle: (lifecycle: ExtensionHookEntry<TContext, TOptions, TArtifact>['lifecycle'], options: {
34
- readonly hooks: readonly ExtensionHookEntry<TContext, TOptions, TArtifact>[];
35
- readonly hookOptions: PipelineExtensionHookOptions<TContext, TOptions, TArtifact>;
36
- }) => MaybePromise<ExtensionLifecycleState<TContext, TOptions, TArtifact>>;
37
- readonly createRollbackHandler: <TResult>(state: ExtensionLifecycleState<TContext, TOptions, TArtifact>) => (error: unknown) => MaybePromise<TResult>;
38
- readonly commit: (state: ExtensionLifecycleState<TContext, TOptions, TArtifact>) => MaybePromise<void>;
39
- readonly handleRollbackError: (args: ExtensionRollbackEvent<TContext, TOptions, TArtifact>) => void;
32
+ export interface ExtensionCoordinator<TContext, TOptions, TUserState> {
33
+ readonly runLifecycle: (lifecycle: ExtensionHookEntry<TContext, TOptions, TUserState>['lifecycle'], options: {
34
+ readonly hooks: readonly ExtensionHookEntry<TContext, TOptions, TUserState>[];
35
+ readonly hookOptions: PipelineExtensionHookOptions<TContext, TOptions, TUserState>;
36
+ }) => MaybePromise<ExtensionLifecycleState<TContext, TOptions, TUserState>>;
37
+ readonly createRollbackHandler: <TResult>(state: ExtensionLifecycleState<TContext, TOptions, TUserState>) => (error: unknown) => MaybePromise<TResult>;
38
+ readonly commit: (state: ExtensionLifecycleState<TContext, TOptions, TUserState>) => MaybePromise<void>;
39
+ readonly handleRollbackError: (args: ExtensionRollbackEvent<TContext, TOptions, TUserState>) => void;
40
40
  }
41
41
  export type { ExtensionHookEntry, ExtensionHookExecution, RollbackErrorArgs };
42
42
  //# sourceMappingURL=extension-coordinator.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extension-coordinator.types.d.ts","sourceRoot":"","sources":["../../../src/core/internal/extension-coordinator.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,YAAY,EACZ,4BAA4B,EAC5B,sCAAsC,EACtC,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EACX,kBAAkB,EAClB,sBAAsB,EACtB,iBAAiB,EACjB,MAAM,eAAe,CAAC;AAEvB;;;;;GAKG;AACH,MAAM,WAAW,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU;IACtE,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,sBAAsB,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,EAAE,CAAC;IAC3E,QAAQ,CAAC,KAAK,EAAE,SAAS,kBAAkB,CAC1C,QAAQ,EACR,QAAQ,EACR,UAAU,CACV,EAAE,CAAC;CACJ;AAED;;;;;;;GAOG;AACH;;;;;GAKG;AACH,MAAM,WAAW,sBAAsB,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CACrE,SAAQ,iBAAiB;IACzB,QAAQ,CAAC,aAAa,EAAE,sCAAsC,CAAC;IAC/D,QAAQ,CAAC,WAAW,CAAC,EAAE,4BAA4B,CAClD,QAAQ,EACR,QAAQ,EACR,UAAU,CACV,CAAC;CACF;AAED,MAAM,WAAW,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU;IACnE,QAAQ,CAAC,YAAY,EAAE,CACtB,SAAS,EAAE,kBAAkB,CAC5B,QAAQ,EACR,QAAQ,EACR,UAAU,CACV,CAAC,WAAW,CAAC,EACd,OAAO,EAAE;QACR,QAAQ,CAAC,KAAK,EAAE,SAAS,kBAAkB,CAC1C,QAAQ,EACR,QAAQ,EACR,UAAU,CACV,EAAE,CAAC;QACJ,QAAQ,CAAC,WAAW,EAAE,4BAA4B,CACjD,QAAQ,EACR,QAAQ,EACR,UAAU,CACV,CAAC;KACF,KACG,YAAY,CAAC,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;IAC3E,QAAQ,CAAC,qBAAqB,EAAE,CAAC,OAAO,EACvC,KAAK,EAAE,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,KAC1D,CAAC,KAAK,EAAE,OAAO,KAAK,YAAY,CAAC,OAAO,CAAC,CAAC;IAC/C,QAAQ,CAAC,MAAM,EAAE,CAChB,KAAK,EAAE,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,KAC1D,YAAY,CAAC,IAAI,CAAC,CAAC;IACxB,QAAQ,CAAC,mBAAmB,EAAE,CAC7B,IAAI,EAAE,sBAAsB,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,KACxD,IAAI,CAAC;CACV;AAED,YAAY,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,CAAC"}
@@ -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":"AAQA,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,CAwVhE"}