build-raptor 0.131.0 → 0.133.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 (214) hide show
  1. package/dist/deps/brand/brand.d.ts +5 -0
  2. package/dist/deps/brand/brand.js +3 -0
  3. package/dist/deps/brand/index.d.ts +1 -0
  4. package/dist/deps/brand/index.js +18 -0
  5. package/dist/deps/build-failed-error/build-failed-error.d.ts +14 -0
  6. package/dist/deps/build-failed-error/build-failed-error.js +13 -0
  7. package/dist/deps/build-failed-error/index.d.ts +1 -0
  8. package/dist/deps/build-failed-error/index.js +18 -0
  9. package/dist/deps/build-raptor-api/build-raptor-api.d.ts +351 -0
  10. package/dist/deps/build-raptor-api/build-raptor-api.js +132 -0
  11. package/dist/deps/build-raptor-api/index.d.ts +2 -0
  12. package/dist/deps/build-raptor-api/index.js +19 -0
  13. package/dist/deps/build-raptor-api/step-by-step-processor.d.ts +35 -0
  14. package/dist/deps/build-raptor-api/step-by-step-processor.js +3 -0
  15. package/dist/deps/build-raptor-core/breakdown.d.ts +18 -0
  16. package/dist/deps/build-raptor-core/breakdown.js +99 -0
  17. package/dist/deps/build-raptor-core/build-raptor-config.d.ts +21 -0
  18. package/dist/deps/build-raptor-core/build-raptor-config.js +25 -0
  19. package/dist/deps/build-raptor-core/default-asset-publisher.d.ts +10 -0
  20. package/dist/deps/build-raptor-core/default-asset-publisher.js +16 -0
  21. package/dist/deps/build-raptor-core/engine-bootstrapper.d.ts +50 -0
  22. package/dist/deps/build-raptor-core/engine-bootstrapper.js +200 -0
  23. package/dist/deps/build-raptor-core/engine-event-scheme.d.ts +20 -0
  24. package/dist/deps/build-raptor-core/engine-event-scheme.js +3 -0
  25. package/dist/deps/build-raptor-core/engine.d.ts +66 -0
  26. package/dist/deps/build-raptor-core/engine.js +285 -0
  27. package/dist/deps/build-raptor-core/examplify-zod.d.ts +93 -0
  28. package/dist/deps/build-raptor-core/examplify-zod.js +257 -0
  29. package/dist/deps/build-raptor-core/execution-plan.d.ts +20 -0
  30. package/dist/deps/build-raptor-core/execution-plan.js +66 -0
  31. package/dist/deps/build-raptor-core/execution-record.d.ts +17 -0
  32. package/dist/deps/build-raptor-core/execution-record.js +3 -0
  33. package/dist/deps/build-raptor-core/execution-type.d.ts +2 -0
  34. package/dist/deps/build-raptor-core/execution-type.js +3 -0
  35. package/dist/deps/build-raptor-core/find-repo-dir.d.ts +1 -0
  36. package/dist/deps/build-raptor-core/find-repo-dir.js +27 -0
  37. package/dist/deps/build-raptor-core/fingerprint-ledger.d.ts +33 -0
  38. package/dist/deps/build-raptor-core/fingerprint-ledger.js +164 -0
  39. package/dist/deps/build-raptor-core/fingerprint.d.ts +3 -0
  40. package/dist/deps/build-raptor-core/fingerprint.js +13 -0
  41. package/dist/deps/build-raptor-core/fingerprinter.d.ts +15 -0
  42. package/dist/deps/build-raptor-core/fingerprinter.js +122 -0
  43. package/dist/deps/build-raptor-core/hasher.d.ts +21 -0
  44. package/dist/deps/build-raptor-core/hasher.js +93 -0
  45. package/dist/deps/build-raptor-core/index.d.ts +9 -0
  46. package/dist/deps/build-raptor-core/index.js +26 -0
  47. package/dist/deps/build-raptor-core/model.d.ts +17 -0
  48. package/dist/deps/build-raptor-core/model.js +40 -0
  49. package/dist/deps/build-raptor-core/nop-asset-publisher.d.ts +6 -0
  50. package/dist/deps/build-raptor-core/nop-asset-publisher.js +12 -0
  51. package/dist/deps/build-raptor-core/performance-report.d.ts +5 -0
  52. package/dist/deps/build-raptor-core/performance-report.js +3 -0
  53. package/dist/deps/build-raptor-core/phase.d.ts +1 -0
  54. package/dist/deps/build-raptor-core/phase.js +3 -0
  55. package/dist/deps/build-raptor-core/planner.d.ts +12 -0
  56. package/dist/deps/build-raptor-core/planner.js +43 -0
  57. package/dist/deps/build-raptor-core/purger.d.ts +11 -0
  58. package/dist/deps/build-raptor-core/purger.js +65 -0
  59. package/dist/deps/build-raptor-core/slot-index.d.ts +6 -0
  60. package/dist/deps/build-raptor-core/slot-index.js +17 -0
  61. package/dist/deps/build-raptor-core/step-by-step-transmitter.d.ts +15 -0
  62. package/dist/deps/build-raptor-core/step-by-step-transmitter.js +94 -0
  63. package/dist/deps/build-raptor-core/tar-stream.d.ts +20 -0
  64. package/dist/deps/build-raptor-core/tar-stream.js +194 -0
  65. package/dist/deps/build-raptor-core/task-executor.d.ts +32 -0
  66. package/dist/deps/build-raptor-core/task-executor.js +321 -0
  67. package/dist/deps/build-raptor-core/task-store-cli.d.ts +1 -0
  68. package/dist/deps/build-raptor-core/task-store-cli.js +61 -0
  69. package/dist/deps/build-raptor-core/task-store-event.d.ts +17 -0
  70. package/dist/deps/build-raptor-core/task-store-event.js +3 -0
  71. package/dist/deps/build-raptor-core/task-store.d.ts +41 -0
  72. package/dist/deps/build-raptor-core/task-store.js +302 -0
  73. package/dist/deps/build-raptor-core/task-summary.d.ts +12 -0
  74. package/dist/deps/build-raptor-core/task-summary.js +3 -0
  75. package/dist/deps/build-raptor-core/task-tracker.d.ts +23 -0
  76. package/dist/deps/build-raptor-core/task-tracker.js +97 -0
  77. package/dist/deps/build-raptor-core/task.d.ts +30 -0
  78. package/dist/deps/build-raptor-core/task.js +90 -0
  79. package/dist/deps/build-raptor-core/updatable-task-output-registry.d.ts +13 -0
  80. package/dist/deps/build-raptor-core/updatable-task-output-registry.js +75 -0
  81. package/dist/deps/build-raptor-core/validate-task-infos.d.ts +3 -0
  82. package/dist/deps/build-raptor-core/validate-task-infos.js +53 -0
  83. package/dist/deps/build-raptor-core-testkit/build-raptor-core-testkit.d.ts +1 -0
  84. package/dist/deps/build-raptor-core-testkit/build-raptor-core-testkit.js +18 -0
  85. package/dist/deps/build-raptor-core-testkit/driver.d.ts +119 -0
  86. package/dist/deps/build-raptor-core-testkit/driver.js +305 -0
  87. package/dist/deps/build-raptor-core-testkit/index.d.ts +3 -0
  88. package/dist/deps/build-raptor-core-testkit/index.js +20 -0
  89. package/dist/deps/build-raptor-core-testkit/repo-protocol-testkit.d.ts +35 -0
  90. package/dist/deps/build-raptor-core-testkit/repo-protocol-testkit.js +226 -0
  91. package/dist/deps/build-raptor-core-testkit/simple-node-repo-protocol.d.ts +27 -0
  92. package/dist/deps/build-raptor-core-testkit/simple-node-repo-protocol.js +140 -0
  93. package/dist/deps/build-run-id/build-run-id.d.ts +3 -0
  94. package/dist/deps/build-run-id/build-run-id.js +13 -0
  95. package/dist/deps/build-run-id/index.d.ts +1 -0
  96. package/dist/deps/build-run-id/index.js +18 -0
  97. package/dist/deps/core-types/core-types.d.ts +29 -0
  98. package/dist/deps/core-types/core-types.js +81 -0
  99. package/dist/deps/core-types/index.d.ts +1 -0
  100. package/dist/deps/core-types/index.js +18 -0
  101. package/dist/deps/logger/index.d.ts +1 -0
  102. package/dist/deps/logger/index.js +18 -0
  103. package/dist/deps/logger/logger.d.ts +26 -0
  104. package/dist/deps/logger/logger.js +152 -0
  105. package/dist/deps/misc/arrays.d.ts +7 -0
  106. package/dist/deps/misc/arrays.js +67 -0
  107. package/dist/deps/misc/camelize-record.d.ts +6 -0
  108. package/dist/deps/misc/camelize-record.js +16 -0
  109. package/dist/deps/misc/clean-directory.d.ts +4 -0
  110. package/dist/deps/misc/clean-directory.js +80 -0
  111. package/dist/deps/misc/constructs.d.ts +106 -0
  112. package/dist/deps/misc/constructs.js +131 -0
  113. package/dist/deps/misc/directory-scanner.d.ts +49 -0
  114. package/dist/deps/misc/directory-scanner.js +165 -0
  115. package/dist/deps/misc/executor.d.ts +39 -0
  116. package/dist/deps/misc/executor.js +59 -0
  117. package/dist/deps/misc/file-system-storage-client.d.ts +23 -0
  118. package/dist/deps/misc/file-system-storage-client.js +93 -0
  119. package/dist/deps/misc/folderify.d.ts +8 -0
  120. package/dist/deps/misc/folderify.js +86 -0
  121. package/dist/deps/misc/graph.d.ts +29 -0
  122. package/dist/deps/misc/graph.js +200 -0
  123. package/dist/deps/misc/in-memory-storage-client.d.ts +21 -0
  124. package/dist/deps/misc/in-memory-storage-client.js +75 -0
  125. package/dist/deps/misc/index.d.ts +20 -0
  126. package/dist/deps/misc/index.js +37 -0
  127. package/dist/deps/misc/int.d.ts +10 -0
  128. package/dist/deps/misc/int.js +29 -0
  129. package/dist/deps/misc/internal/graph-executor.d.ts +15 -0
  130. package/dist/deps/misc/internal/graph-executor.js +93 -0
  131. package/dist/deps/misc/maps.d.ts +29 -0
  132. package/dist/deps/misc/maps.js +47 -0
  133. package/dist/deps/misc/misc.d.ts +23 -0
  134. package/dist/deps/misc/misc.js +94 -0
  135. package/dist/deps/misc/object-map.d.ts +10 -0
  136. package/dist/deps/misc/object-map.js +26 -0
  137. package/dist/deps/misc/promises.d.ts +39 -0
  138. package/dist/deps/misc/promises.js +78 -0
  139. package/dist/deps/misc/records.d.ts +11 -0
  140. package/dist/deps/misc/records.js +40 -0
  141. package/dist/deps/misc/slurp-dir.d.ts +1 -0
  142. package/dist/deps/misc/slurp-dir.js +14 -0
  143. package/dist/deps/misc/storage-client.d.ts +12 -0
  144. package/dist/deps/misc/storage-client.js +3 -0
  145. package/dist/deps/misc/stream-to-buffer.d.ts +2 -0
  146. package/dist/deps/misc/stream-to-buffer.js +26 -0
  147. package/dist/deps/misc/strings.d.ts +12 -0
  148. package/dist/deps/misc/strings.js +68 -0
  149. package/dist/deps/misc/typed-publisher.d.ts +17 -0
  150. package/dist/deps/misc/typed-publisher.js +65 -0
  151. package/dist/deps/repo-protocol/index.d.ts +3 -0
  152. package/dist/deps/repo-protocol/index.js +20 -0
  153. package/dist/deps/repo-protocol/repo-protocol.d.ts +49 -0
  154. package/dist/deps/repo-protocol/repo-protocol.js +3 -0
  155. package/dist/deps/repo-protocol/task-info.d.ts +18 -0
  156. package/dist/deps/repo-protocol/task-info.js +3 -0
  157. package/dist/deps/repo-protocol/test-run-summary.d.ts +54 -0
  158. package/dist/deps/repo-protocol/test-run-summary.js +32 -0
  159. package/dist/deps/repo-protocol-toolbox/generate-task-infos.d.ts +5 -0
  160. package/dist/deps/repo-protocol-toolbox/generate-task-infos.js +26 -0
  161. package/dist/deps/repo-protocol-toolbox/index.d.ts +3 -0
  162. package/dist/deps/repo-protocol-toolbox/index.js +20 -0
  163. package/dist/deps/repo-protocol-toolbox/repo-protocol-toolbox.d.ts +10 -0
  164. package/dist/deps/repo-protocol-toolbox/repo-protocol-toolbox.js +90 -0
  165. package/dist/deps/repo-protocol-toolbox/task-definition.d.ts +14 -0
  166. package/dist/deps/repo-protocol-toolbox/task-definition.js +3 -0
  167. package/dist/deps/reporter-output/index.d.ts +1 -0
  168. package/dist/deps/reporter-output/index.js +18 -0
  169. package/dist/deps/reporter-output/reporter-output.d.ts +49 -0
  170. package/dist/deps/reporter-output/reporter-output.js +25 -0
  171. package/dist/deps/s3-storage-client/creds.d.ts +4 -0
  172. package/dist/deps/s3-storage-client/creds.js +3 -0
  173. package/dist/deps/s3-storage-client/get-s3-storage-client-factory.d.ts +3 -0
  174. package/dist/deps/s3-storage-client/get-s3-storage-client-factory.js +45 -0
  175. package/dist/deps/s3-storage-client/index.d.ts +2 -0
  176. package/dist/deps/s3-storage-client/index.js +19 -0
  177. package/dist/deps/s3-storage-client/main.d.ts +1 -0
  178. package/dist/deps/s3-storage-client/main.js +20 -0
  179. package/dist/deps/s3-storage-client/s3-storage-client.d.ts +25 -0
  180. package/dist/deps/s3-storage-client/s3-storage-client.js +134 -0
  181. package/dist/deps/task-name/index.d.ts +1 -0
  182. package/dist/deps/task-name/index.js +18 -0
  183. package/dist/deps/task-name/task-name.d.ts +17 -0
  184. package/dist/deps/task-name/task-name.js +44 -0
  185. package/dist/deps/unit-metadata/index.d.ts +1 -0
  186. package/dist/deps/unit-metadata/index.js +18 -0
  187. package/dist/deps/unit-metadata/unit-metadata.d.ts +14 -0
  188. package/dist/deps/unit-metadata/unit-metadata.js +32 -0
  189. package/dist/deps/yarn-repo-protocol/build-task-record.d.ts +61 -0
  190. package/dist/deps/yarn-repo-protocol/build-task-record.js +29 -0
  191. package/dist/deps/yarn-repo-protocol/generate-test-run-summary.d.ts +4 -0
  192. package/dist/deps/yarn-repo-protocol/generate-test-run-summary.js +26 -0
  193. package/dist/deps/yarn-repo-protocol/index.d.ts +2 -0
  194. package/dist/deps/yarn-repo-protocol/index.js +19 -0
  195. package/dist/deps/yarn-repo-protocol/rerun-list.d.ts +12 -0
  196. package/dist/deps/yarn-repo-protocol/rerun-list.js +6 -0
  197. package/dist/deps/yarn-repo-protocol/yarn-repo-protocol-config.d.ts +24 -0
  198. package/dist/deps/yarn-repo-protocol/yarn-repo-protocol-config.js +34 -0
  199. package/dist/deps/yarn-repo-protocol/yarn-repo-protocol.d.ts +82 -0
  200. package/dist/deps/yarn-repo-protocol/yarn-repo-protocol.js +1036 -0
  201. package/dist/src/build-raptor-cli.d.ts +60 -0
  202. package/dist/src/build-raptor-cli.js +514 -0
  203. package/dist/src/index.d.ts +1 -0
  204. package/dist/src/index.js +20 -0
  205. package/dist/src/main.d.ts +2 -0
  206. package/dist/src/main.js +23 -0
  207. package/dist/src/register-asset-request.d.ts +18 -0
  208. package/dist/src/register-asset-request.js +11 -0
  209. package/dist/src/task-execution-visualizer.d.ts +17 -0
  210. package/dist/src/task-execution-visualizer.js +116 -0
  211. package/package.json +17 -14
  212. package/build-raptor.js +0 -7259
  213. package/index.d.ts +0 -22
  214. package/index.js +0 -7231
@@ -0,0 +1,15 @@
1
+ import { Logger } from 'logger';
2
+ import { DirectoryScanner } from 'misc';
3
+ import { Fingerprint } from './fingerprint';
4
+ import { Hasher } from './hasher';
5
+ export type OnHasherClose = (h: Hasher, content?: string) => Promise<void>;
6
+ export declare class Fingerprinter {
7
+ private readonly dirScanner;
8
+ private readonly logger;
9
+ private readonly seed;
10
+ private readonly onHasherClose;
11
+ constructor(dirScanner: DirectoryScanner, logger: Logger, seed: string, onHasherClose?: OnHasherClose);
12
+ computeFingerprint(pathInRepo: string): Promise<Fingerprint>;
13
+ private scan;
14
+ private store;
15
+ }
@@ -0,0 +1,122 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.Fingerprinter = void 0;
37
+ const fs = __importStar(require("fs"));
38
+ const fse = __importStar(require("fs-extra"));
39
+ const misc_1 = require("misc");
40
+ const path = __importStar(require("path"));
41
+ const hasher_1 = require("./hasher");
42
+ // TODO(imaman): use PathInRepo
43
+ class Fingerprinter {
44
+ constructor(dirScanner, logger, seed, onHasherClose = async () => { }) {
45
+ this.dirScanner = dirScanner;
46
+ this.logger = logger;
47
+ this.seed = seed;
48
+ this.onHasherClose = onHasherClose;
49
+ this.logger.info('Fingerprinter: constructed');
50
+ }
51
+ async computeFingerprint(pathInRepo) {
52
+ const { hasher } = await this.scan(pathInRepo);
53
+ return hasher.digest;
54
+ }
55
+ async scan(pathInRepo) {
56
+ const resolved = path.join(this.dirScanner.rootDir, pathInRepo);
57
+ const stat = statPath(resolved);
58
+ if (!stat) {
59
+ const hasher = new hasher_1.Hasher(pathInRepo, this.seed);
60
+ const content = Buffer.from('');
61
+ hasher.update(content);
62
+ return await this.store(hasher, true, content.toString('utf-8'));
63
+ }
64
+ const respectGitIgnore = this.dirScanner.isValid(pathInRepo, stat);
65
+ const active = this.dirScanner.isValid(pathInRepo, stat);
66
+ if (!stat.isDirectory()) {
67
+ const content = await readFile(resolved);
68
+ const hasher = new hasher_1.Hasher(pathInRepo, this.seed);
69
+ hasher.update(content);
70
+ return await this.store(hasher, active, content.toString('utf-8'));
71
+ }
72
+ const hasher = new hasher_1.Hasher(pathInRepo, this.seed);
73
+ // TODO(imaman): do not fingerprint node_modules directories (and similar directories in other ecosystems)?
74
+ const dirEntries = await readDir(resolved);
75
+ for (const at of (0, misc_1.sortBy)(dirEntries, e => e.name)) {
76
+ const subPath = path.join(pathInRepo, at.name);
77
+ const subResult = await this.scan(subPath);
78
+ if (respectGitIgnore && !subResult.active) {
79
+ continue;
80
+ }
81
+ hasher.update(subResult.hasher);
82
+ }
83
+ return await this.store(hasher, active);
84
+ }
85
+ async store(hasher, active, content) {
86
+ hasher.close();
87
+ try {
88
+ await this.onHasherClose(hasher, content);
89
+ }
90
+ catch (e) {
91
+ this.logger.error(`onHasherClose() failed`, e);
92
+ throw e;
93
+ }
94
+ return { hasher, active };
95
+ }
96
+ }
97
+ exports.Fingerprinter = Fingerprinter;
98
+ async function readFile(p) {
99
+ try {
100
+ return await fse.readFile(p);
101
+ }
102
+ catch (e) {
103
+ throw new Error(`Failed to read ${p}: ${e}`);
104
+ }
105
+ }
106
+ function statPath(p) {
107
+ try {
108
+ return fs.statSync(p, { throwIfNoEntry: false });
109
+ }
110
+ catch (e) {
111
+ throw new Error(`Failed to stat ${p}: ${e}`);
112
+ }
113
+ }
114
+ async function readDir(p) {
115
+ try {
116
+ return await fse.readdir(p, { withFileTypes: true });
117
+ }
118
+ catch (e) {
119
+ throw new Error(`Failed to read dir ${p}: ${e}`);
120
+ }
121
+ }
122
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZ2VycHJpbnRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maW5nZXJwcmludGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHVDQUF3QjtBQUN4Qiw4Q0FBK0I7QUFFL0IsK0JBQStDO0FBQy9DLDJDQUE0QjtBQUc1QixxQ0FBaUM7QUFJakMsK0JBQStCO0FBQy9CLE1BQWEsYUFBYTtJQUN4QixZQUNtQixVQUE0QixFQUM1QixNQUFjLEVBQ2QsSUFBWSxFQUNaLGdCQUErQixLQUFLLElBQUksRUFBRSxHQUFFLENBQUM7UUFIN0MsZUFBVSxHQUFWLFVBQVUsQ0FBa0I7UUFDNUIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLFNBQUksR0FBSixJQUFJLENBQVE7UUFDWixrQkFBYSxHQUFiLGFBQWEsQ0FBZ0M7UUFFOUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsNEJBQTRCLENBQUMsQ0FBQTtJQUNoRCxDQUFDO0lBRUQsS0FBSyxDQUFDLGtCQUFrQixDQUFDLFVBQWtCO1FBQ3pDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUE7UUFDOUMsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFBO0lBQ3RCLENBQUM7SUFFTyxLQUFLLENBQUMsSUFBSSxDQUFDLFVBQWtCO1FBQ25DLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLENBQUE7UUFDL0QsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBQy9CLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNWLE1BQU0sTUFBTSxHQUFHLElBQUksZUFBTSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7WUFDaEQsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQTtZQUMvQixNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1lBQ3RCLE9BQU8sTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFBO1FBQ2xFLENBQUM7UUFFRCxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQTtRQUVsRSxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUE7UUFFeEQsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sT0FBTyxHQUFHLE1BQU0sUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFBO1lBRXhDLE1BQU0sTUFBTSxHQUFHLElBQUksZUFBTSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7WUFDaEQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQTtZQUN0QixPQUFPLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQTtRQUNwRSxDQUFDO1FBRUQsTUFBTSxNQUFNLEdBQUcsSUFBSSxlQUFNLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUNoRCwyR0FBMkc7UUFFM0csTUFBTSxVQUFVLEdBQUcsTUFBTSxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUE7UUFDMUMsS0FBSyxNQUFNLEVBQUUsSUFBSSxJQUFBLGFBQU0sRUFBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNqRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUE7WUFDOUMsTUFBTSxTQUFTLEdBQUcsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1lBQzFDLElBQUksZ0JBQWdCLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQzFDLFNBQVE7WUFDVixDQUFDO1lBQ0QsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDakMsQ0FBQztRQUVELE9BQU8sTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQTtJQUN6QyxDQUFDO0lBRU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFjLEVBQUUsTUFBZSxFQUFFLE9BQWdCO1FBQ25FLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQTtRQUNkLElBQUksQ0FBQztZQUNILE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUE7UUFDM0MsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDWCxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyx3QkFBd0IsRUFBRSxDQUFDLENBQUMsQ0FBQTtZQUM5QyxNQUFNLENBQUMsQ0FBQTtRQUNULENBQUM7UUFFRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFBO0lBQzNCLENBQUM7Q0FDRjtBQWhFRCxzQ0FnRUM7QUFFRCxLQUFLLFVBQVUsUUFBUSxDQUFDLENBQVM7SUFDL0IsSUFBSSxDQUFDO1FBQ0gsT0FBTyxNQUFNLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDOUIsQ0FBQztJQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDWCxNQUFNLElBQUksS0FBSyxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQTtJQUM5QyxDQUFDO0FBQ0gsQ0FBQztBQUVELFNBQVMsUUFBUSxDQUFDLENBQVM7SUFDekIsSUFBSSxDQUFDO1FBQ0gsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFBO0lBQ2xELENBQUM7SUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ1gsTUFBTSxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUE7SUFDOUMsQ0FBQztBQUNILENBQUM7QUFFRCxLQUFLLFVBQVUsT0FBTyxDQUFDLENBQVM7SUFDOUIsSUFBSSxDQUFDO1FBQ0gsT0FBTyxNQUFNLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUE7SUFDdEQsQ0FBQztJQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDWCxNQUFNLElBQUksS0FBSyxDQUFDLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQTtJQUNsRCxDQUFDO0FBQ0gsQ0FBQyJ9
@@ -0,0 +1,21 @@
1
+ import * as crypto from 'crypto';
2
+ import { Fingerprint } from './fingerprint';
3
+ export declare class Hasher {
4
+ readonly name: string;
5
+ private readonly hash;
6
+ private readonly audit;
7
+ private status;
8
+ private count;
9
+ private digest_;
10
+ constructor(name: string, seed: string);
11
+ update(arg: crypto.BinaryLike | Hasher): void;
12
+ close(): void;
13
+ toJSON(): {
14
+ hasherName: string;
15
+ status: "OPEN" | "CLOSED";
16
+ digest: Fingerprint | undefined;
17
+ audit: Record<string, string>;
18
+ };
19
+ toString(): string;
20
+ get digest(): Fingerprint;
21
+ }
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.Hasher = void 0;
37
+ const crypto = __importStar(require("crypto"));
38
+ const misc_1 = require("misc");
39
+ const fingerprint_1 = require("./fingerprint");
40
+ class Hasher {
41
+ constructor(name, seed) {
42
+ this.name = name;
43
+ this.audit = new Map();
44
+ this.status = 'OPEN';
45
+ this.count = 0;
46
+ this.hash = crypto.createHash('sha224').update(seed);
47
+ }
48
+ update(arg) {
49
+ if (this.status === 'CLOSED') {
50
+ throw new Error(`Cannot update a hasher that is already closed (name=${this.name})`);
51
+ }
52
+ if (arg instanceof Hasher) {
53
+ if (arg.count === 0) {
54
+ return;
55
+ }
56
+ this.hash.update(arg.digest);
57
+ this.audit.set(arg.name, arg.digest);
58
+ }
59
+ else {
60
+ this.hash.update(arg);
61
+ }
62
+ ++this.count;
63
+ }
64
+ close() {
65
+ if (this.status === 'CLOSED') {
66
+ throw new Error(`Hasher already closed (name=${this.name})`);
67
+ }
68
+ this.status = 'CLOSED';
69
+ }
70
+ toJSON() {
71
+ return {
72
+ hasherName: this.name,
73
+ status: this.status,
74
+ digest: this.status === 'OPEN' ? undefined : this.digest,
75
+ audit: (0, misc_1.pairsToRecord)(this.audit),
76
+ };
77
+ }
78
+ toString() {
79
+ return JSON.stringify(this.toJSON());
80
+ }
81
+ get digest() {
82
+ if (this.status === 'OPEN') {
83
+ throw new Error(`Cannot compute digest of an open hasher (name=${this.name})`);
84
+ }
85
+ if (this.digest_) {
86
+ return this.digest_;
87
+ }
88
+ this.digest_ = (0, fingerprint_1.Fingerprint)(this.hash.digest('hex'));
89
+ return this.digest_;
90
+ }
91
+ }
92
+ exports.Hasher = Hasher;
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFzaGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hhc2hlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwrQ0FBZ0M7QUFDaEMsK0JBQW9DO0FBRXBDLCtDQUEyQztBQUUzQyxNQUFhLE1BQU07SUFTakIsWUFBcUIsSUFBWSxFQUFFLElBQVk7UUFBMUIsU0FBSSxHQUFKLElBQUksQ0FBUTtRQVBoQixVQUFLLEdBQUcsSUFBSSxHQUFHLEVBQWtCLENBQUE7UUFDMUMsV0FBTSxHQUFzQixNQUFNLENBQUE7UUFFbEMsVUFBSyxHQUFHLENBQUMsQ0FBQTtRQUtmLElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDdEQsQ0FBQztJQUVELE1BQU0sQ0FBQyxHQUErQjtRQUNwQyxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDN0IsTUFBTSxJQUFJLEtBQUssQ0FBQyx1REFBdUQsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUE7UUFDdEYsQ0FBQztRQUVELElBQUksR0FBRyxZQUFZLE1BQU0sRUFBRSxDQUFDO1lBQzFCLElBQUksR0FBRyxDQUFDLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDcEIsT0FBTTtZQUNSLENBQUM7WUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUE7WUFDNUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDdEMsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUN2QixDQUFDO1FBRUQsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFBO0lBQ2QsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDN0IsTUFBTSxJQUFJLEtBQUssQ0FBQywrQkFBK0IsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUE7UUFDOUQsQ0FBQztRQUNELElBQUksQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFBO0lBQ3hCLENBQUM7SUFFRCxNQUFNO1FBQ0osT0FBTztZQUNMLFVBQVUsRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNyQixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDbkIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNO1lBQ3hELEtBQUssRUFBRSxJQUFBLG9CQUFhLEVBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztTQUNqQyxDQUFBO0lBQ0gsQ0FBQztJQUVELFFBQVE7UUFDTixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUE7SUFDdEMsQ0FBQztJQUVELElBQUksTUFBTTtRQUNSLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxNQUFNLEVBQUUsQ0FBQztZQUMzQixNQUFNLElBQUksS0FBSyxDQUFDLGlEQUFpRCxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQTtRQUNoRixDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDakIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFBO1FBQ3JCLENBQUM7UUFDRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUEseUJBQVcsRUFBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFBO1FBQ25ELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQTtJQUNyQixDQUFDO0NBQ0Y7QUE3REQsd0JBNkRDIn0=
@@ -0,0 +1,9 @@
1
+ export * from './breakdown';
2
+ export * from './build-raptor-config';
3
+ export * from './default-asset-publisher';
4
+ export * from './engine-bootstrapper';
5
+ export * from './execution-type';
6
+ export * from './find-repo-dir';
7
+ export * from './nop-asset-publisher';
8
+ export * from './task-store';
9
+ export * from './task-summary';
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./breakdown"), exports);
18
+ __exportStar(require("./build-raptor-config"), exports);
19
+ __exportStar(require("./default-asset-publisher"), exports);
20
+ __exportStar(require("./engine-bootstrapper"), exports);
21
+ __exportStar(require("./execution-type"), exports);
22
+ __exportStar(require("./find-repo-dir"), exports);
23
+ __exportStar(require("./nop-asset-publisher"), exports);
24
+ __exportStar(require("./task-store"), exports);
25
+ __exportStar(require("./task-summary"), exports);
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDhDQUEyQjtBQUMzQix3REFBcUM7QUFDckMsNERBQXlDO0FBQ3pDLHdEQUFxQztBQUNyQyxtREFBZ0M7QUFDaEMsa0RBQStCO0FBQy9CLHdEQUFxQztBQUNyQywrQ0FBNEI7QUFDNUIsaURBQThCIn0=
@@ -0,0 +1,17 @@
1
+ import { BuildRunId } from 'build-run-id';
2
+ import { PathInRepo, RepoRoot } from 'core-types';
3
+ import { Graph } from 'misc';
4
+ import { UnitId, UnitMetadata } from 'unit-metadata';
5
+ import { Fingerprinter } from './fingerprinter';
6
+ export declare class Model {
7
+ readonly rootDir: RepoRoot;
8
+ readonly graph: Graph<UnitId>;
9
+ readonly units: UnitMetadata[];
10
+ readonly buildRunId: BuildRunId;
11
+ private readonly fingerprinter;
12
+ constructor(rootDir: RepoRoot, graph: Graph<UnitId>, units: UnitMetadata[], buildRunId: BuildRunId, fingerprinter: Fingerprinter);
13
+ fingerprintOfDir(pathInRepo: PathInRepo): Promise<import("./fingerprint").Fingerprint>;
14
+ getUnit(id: UnitId): UnitMetadata;
15
+ unitId(id: string): UnitId;
16
+ unitDependenciesOf(unitId: UnitId): UnitMetadata[];
17
+ }
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Model = void 0;
4
+ const misc_1 = require("misc");
5
+ const unit_metadata_1 = require("unit-metadata");
6
+ class Model {
7
+ constructor(rootDir, graph, units, buildRunId, fingerprinter) {
8
+ this.rootDir = rootDir;
9
+ this.graph = graph;
10
+ this.units = units;
11
+ this.buildRunId = buildRunId;
12
+ this.fingerprinter = fingerprinter;
13
+ const dupUnitIds = (0, misc_1.findDups)(units, u => u.id).map(u => u.id);
14
+ if (dupUnitIds.length) {
15
+ throw new Error(`Unit ID collision detected: ${JSON.stringify((0, misc_1.uniqueBy)(dupUnitIds, x => x))}`);
16
+ }
17
+ }
18
+ async fingerprintOfDir(pathInRepo) {
19
+ return await this.fingerprinter.computeFingerprint(pathInRepo.val);
20
+ }
21
+ getUnit(id) {
22
+ const ret = this.units.find(u => u.id === id);
23
+ if (!ret) {
24
+ throw new Error(`Unit ${id} not found`);
25
+ }
26
+ return ret;
27
+ }
28
+ unitId(id) {
29
+ const ret = this.units.find(u => u.id === id);
30
+ if (!ret) {
31
+ throw new Error(`Unit ${id} not found`);
32
+ }
33
+ return (0, unit_metadata_1.UnitId)(id);
34
+ }
35
+ unitDependenciesOf(unitId) {
36
+ return this.graph.neighborsOf(unitId).map(at => this.getUnit(at));
37
+ }
38
+ }
39
+ exports.Model = Model;
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsK0JBQWdEO0FBQ2hELGlEQUFvRDtBQUlwRCxNQUFhLEtBQUs7SUFDaEIsWUFDVyxPQUFpQixFQUNqQixLQUFvQixFQUNwQixLQUFxQixFQUNyQixVQUFzQixFQUNkLGFBQTRCO1FBSnBDLFlBQU8sR0FBUCxPQUFPLENBQVU7UUFDakIsVUFBSyxHQUFMLEtBQUssQ0FBZTtRQUNwQixVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ2Qsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFFN0MsTUFBTSxVQUFVLEdBQUcsSUFBQSxlQUFRLEVBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUM1RCxJQUFJLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN0QixNQUFNLElBQUksS0FBSyxDQUFDLCtCQUErQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUEsZUFBUSxFQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFBO1FBQ2hHLENBQUM7SUFDSCxDQUFDO0lBRUQsS0FBSyxDQUFDLGdCQUFnQixDQUFDLFVBQXNCO1FBQzNDLE9BQU8sTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUNwRSxDQUFDO0lBRUQsT0FBTyxDQUFDLEVBQVU7UUFDaEIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFBO1FBQzdDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNULE1BQU0sSUFBSSxLQUFLLENBQUMsUUFBUSxFQUFFLFlBQVksQ0FBQyxDQUFBO1FBQ3pDLENBQUM7UUFDRCxPQUFPLEdBQUcsQ0FBQTtJQUNaLENBQUM7SUFFRCxNQUFNLENBQUMsRUFBVTtRQUNmLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQTtRQUM3QyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDVCxNQUFNLElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRSxZQUFZLENBQUMsQ0FBQTtRQUN6QyxDQUFDO1FBRUQsT0FBTyxJQUFBLHNCQUFNLEVBQUMsRUFBRSxDQUFDLENBQUE7SUFDbkIsQ0FBQztJQUVELGtCQUFrQixDQUFDLE1BQWM7UUFDL0IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7SUFDbkUsQ0FBQztDQUNGO0FBdENELHNCQXNDQyJ9
@@ -0,0 +1,6 @@
1
+ import { Publisher } from 'repo-protocol';
2
+ import { UnitMetadata } from 'unit-metadata';
3
+ export declare class NopAssetPublisher implements Publisher {
4
+ constructor();
5
+ publishAsset(_u: UnitMetadata, content: Buffer, _name: string): Promise<string>;
6
+ }
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NopAssetPublisher = void 0;
4
+ const misc_1 = require("misc");
5
+ class NopAssetPublisher {
6
+ constructor() { }
7
+ async publishAsset(_u, content, _name) {
8
+ return (0, misc_1.computeHash)(content);
9
+ }
10
+ }
11
+ exports.NopAssetPublisher = NopAssetPublisher;
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9wLWFzc2V0LXB1Ymxpc2hlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ub3AtYXNzZXQtcHVibGlzaGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLCtCQUFrQztBQUlsQyxNQUFhLGlCQUFpQjtJQUM1QixnQkFBZSxDQUFDO0lBRWhCLEtBQUssQ0FBQyxZQUFZLENBQUMsRUFBZ0IsRUFBRSxPQUFlLEVBQUUsS0FBYTtRQUNqRSxPQUFPLElBQUEsa0JBQVcsRUFBQyxPQUFPLENBQUMsQ0FBQTtJQUM3QixDQUFDO0NBQ0Y7QUFORCw4Q0FNQyJ9
@@ -0,0 +1,5 @@
1
+ export interface PerformanceReport {
2
+ maxUsedConcurrency: number;
3
+ usedConcurrencyLevles: readonly number[];
4
+ numExecuted: number;
5
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyZm9ybWFuY2UtcmVwb3J0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3BlcmZvcm1hbmNlLXJlcG9ydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
@@ -0,0 +1 @@
1
+ export type Phase = 'UNSTARTED' | 'RUNNING' | 'COMPUTE_FINGERPRINT' | 'POSSIBLY_RESTORE_OUTPUTS' | 'SKIP' | 'RUN_IT' | 'TERMINAL';
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcGhhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9
@@ -0,0 +1,12 @@
1
+ import { Logger } from 'logger';
2
+ import { TaskInfo } from 'repo-protocol';
3
+ import { ExecutionPlan } from './execution-plan';
4
+ import { Model } from './model';
5
+ export declare class Planner {
6
+ private readonly logger;
7
+ private readonly taskGraph;
8
+ private readonly tasks;
9
+ constructor(logger: Logger);
10
+ computePlan(infos: TaskInfo[], model: Model): Promise<ExecutionPlan>;
11
+ private registerTask;
12
+ }
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Planner = void 0;
4
+ const build_failed_error_1 = require("build-failed-error");
5
+ const misc_1 = require("misc");
6
+ const execution_plan_1 = require("./execution-plan");
7
+ const task_1 = require("./task");
8
+ const validate_task_infos_1 = require("./validate-task-infos");
9
+ class Planner {
10
+ constructor(logger) {
11
+ this.logger = logger;
12
+ this.taskGraph = new misc_1.Graph(t => t);
13
+ this.tasks = [];
14
+ }
15
+ async computePlan(infos, model) {
16
+ const reg = (0, validate_task_infos_1.validateTaskInfos)(infos);
17
+ for (const info of infos) {
18
+ this.registerTask(model, info, reg);
19
+ }
20
+ if (this.taskGraph.isCyclic()) {
21
+ throw new build_failed_error_1.BuildFailedError(`Cyclic task dependency detected ${this.taskGraph}`);
22
+ }
23
+ return new execution_plan_1.ExecutionPlan(this.taskGraph, this.tasks, this.logger, reg);
24
+ }
25
+ registerTask(model, info, reg) {
26
+ const taskName = info.taskName;
27
+ const inputs = info.inputs ?? [];
28
+ const task = new task_1.Task(model.buildRunId, info, inputs, info.labels ?? []);
29
+ this.tasks.push(task);
30
+ this.taskGraph.vertex(taskName);
31
+ for (const input of info.inputs ?? []) {
32
+ const other = reg.lookup(input);
33
+ if (other) {
34
+ this.taskGraph.edge(taskName, other);
35
+ }
36
+ }
37
+ for (const d of info.deps ?? []) {
38
+ this.taskGraph.edge(taskName, d);
39
+ }
40
+ }
41
+ }
42
+ exports.Planner = Planner;
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhbm5lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wbGFubmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDJEQUFxRDtBQUVyRCwrQkFBNEI7QUFJNUIscURBQWdEO0FBRWhELGlDQUE2QjtBQUU3QiwrREFBeUQ7QUFFekQsTUFBYSxPQUFPO0lBSWxCLFlBQTZCLE1BQWM7UUFBZCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBSDFCLGNBQVMsR0FBRyxJQUFJLFlBQUssQ0FBVyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ3ZDLFVBQUssR0FBVyxFQUFFLENBQUE7SUFFVyxDQUFDO0lBRS9DLEtBQUssQ0FBQyxXQUFXLENBQUMsS0FBaUIsRUFBRSxLQUFZO1FBQy9DLE1BQU0sR0FBRyxHQUFHLElBQUEsdUNBQWlCLEVBQUMsS0FBSyxDQUFDLENBQUE7UUFFcEMsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUE7UUFDckMsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO1lBQzlCLE1BQU0sSUFBSSxxQ0FBZ0IsQ0FBQyxtQ0FBbUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUE7UUFDakYsQ0FBQztRQUVELE9BQU8sSUFBSSw4QkFBYSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFBO0lBQ3hFLENBQUM7SUFFTyxZQUFZLENBQUMsS0FBWSxFQUFFLElBQWMsRUFBRSxHQUF1QjtRQUN4RSxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFBO1FBRTlCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFBO1FBQ2hDLE1BQU0sSUFBSSxHQUFHLElBQUksV0FBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxDQUFBO1FBQ3hFLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ3JCLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBRS9CLEtBQUssTUFBTSxLQUFLLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUN0QyxNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFBO1lBQy9CLElBQUksS0FBSyxFQUFFLENBQUM7Z0JBQ1YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFBO1lBQ3RDLENBQUM7UUFDSCxDQUFDO1FBRUQsS0FBSyxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUNsQyxDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBdkNELDBCQXVDQyJ9
@@ -0,0 +1,11 @@
1
+ import { RepoRoot } from 'core-types';
2
+ import { Logger } from 'logger';
3
+ import { OutputLocation } from 'repo-protocol';
4
+ import { Task } from './task';
5
+ export declare class Purger {
6
+ private readonly logger;
7
+ private readonly repoRootDir;
8
+ constructor(logger: Logger, repoRootDir: RepoRoot);
9
+ private removeLocations;
10
+ purgeOutputsOfTask(task: Task): Promise<OutputLocation[]>;
11
+ }
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.Purger = void 0;
37
+ const fse = __importStar(require("fs-extra"));
38
+ const misc_1 = require("misc");
39
+ class Purger {
40
+ constructor(logger, repoRootDir) {
41
+ this.logger = logger;
42
+ this.repoRootDir = repoRootDir;
43
+ }
44
+ async removeLocations(outputLocations) {
45
+ await (0, misc_1.promises)(outputLocations).forEach(20, async (p) => {
46
+ const resolved = this.repoRootDir.resolve(p);
47
+ this.logger.info(`purging ${resolved}`);
48
+ await fse.rm(resolved, { recursive: true, force: true });
49
+ });
50
+ }
51
+ async purgeOutputsOfTask(task) {
52
+ const locationsToPurge = task.outputLocations.filter(at => shouldPurge(at)).map(at => at.pathInRepo);
53
+ await this.removeLocations(locationsToPurge);
54
+ this.logger.info(`purged output locations of task ${task.name}: ${locationsToPurge}`);
55
+ return task.outputLocations;
56
+ }
57
+ }
58
+ exports.Purger = Purger;
59
+ function shouldPurge(loc) {
60
+ return (0, misc_1.switchOn)(loc.purge, {
61
+ ALWAYS: () => true,
62
+ NEVER: () => false,
63
+ });
64
+ }
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVyZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3B1cmdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSw4Q0FBK0I7QUFFL0IsK0JBQXlDO0FBS3pDLE1BQWEsTUFBTTtJQUNqQixZQUE2QixNQUFjLEVBQW1CLFdBQXFCO1FBQXRELFdBQU0sR0FBTixNQUFNLENBQVE7UUFBbUIsZ0JBQVcsR0FBWCxXQUFXLENBQVU7SUFBRyxDQUFDO0lBRS9FLEtBQUssQ0FBQyxlQUFlLENBQUMsZUFBc0M7UUFDbEUsTUFBTSxJQUFBLGVBQVEsRUFBQyxlQUFlLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLEtBQUssRUFBQyxDQUFDLEVBQUMsRUFBRTtZQUNwRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQTtZQUM1QyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLFFBQVEsRUFBRSxDQUFDLENBQUE7WUFDdkMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUE7UUFDMUQsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsS0FBSyxDQUFDLGtCQUFrQixDQUFDLElBQVU7UUFDakMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQUNwRyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtRQUM1QyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxtQ0FBbUMsSUFBSSxDQUFDLElBQUksS0FBSyxnQkFBZ0IsRUFBRSxDQUFDLENBQUE7UUFDckYsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFBO0lBQzdCLENBQUM7Q0FDRjtBQWpCRCx3QkFpQkM7QUFFRCxTQUFTLFdBQVcsQ0FBQyxHQUFtQjtJQUN0QyxPQUFPLElBQUEsZUFBUSxFQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUU7UUFDekIsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUk7UUFDbEIsS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDLEtBQUs7S0FDbkIsQ0FBQyxDQUFBO0FBQ0osQ0FBQyJ9
@@ -0,0 +1,6 @@
1
+ import { Brand } from 'brand';
2
+ export type SlotIndex = Brand<number, 'SlotIndex'>;
3
+ /**
4
+ * Constructs a SlotIndex value which equals to the sum of all numbers in the input.
5
+ */
6
+ export declare const SlotIndex: (n: number, ...ns: number[]) => SlotIndex;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SlotIndex = void 0;
4
+ const misc_1 = require("misc");
5
+ /**
6
+ * Constructs a SlotIndex value which equals to the sum of all numbers in the input.
7
+ */
8
+ const SlotIndex = (n, ...ns) => {
9
+ let sum = (0, misc_1.Int)(n);
10
+ for (const curr of ns) {
11
+ sum = (0, misc_1.Int)().sum(sum, curr);
12
+ }
13
+ // eslint-disable-next-line @typescript-eslint/consistent-type-assertions
14
+ return sum;
15
+ };
16
+ exports.SlotIndex = SlotIndex;
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xvdC1pbmRleC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zbG90LWluZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLCtCQUEwQjtBQUcxQjs7R0FFRztBQUNJLE1BQU0sU0FBUyxHQUFHLENBQUMsQ0FBUyxFQUFFLEdBQUcsRUFBWSxFQUFFLEVBQUU7SUFDdEQsSUFBSSxHQUFHLEdBQUcsSUFBQSxVQUFHLEVBQUMsQ0FBQyxDQUFDLENBQUE7SUFDaEIsS0FBSyxNQUFNLElBQUksSUFBSSxFQUFFLEVBQUUsQ0FBQztRQUN0QixHQUFHLEdBQUcsSUFBQSxVQUFHLEdBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFBO0lBQzVCLENBQUM7SUFDRCx5RUFBeUU7SUFDekUsT0FBUSxHQUE0QixDQUFBO0FBQ3RDLENBQUMsQ0FBQTtBQVBZLFFBQUEsU0FBUyxhQU9yQiJ9
@@ -0,0 +1,15 @@
1
+ import { Step, StepByStepProcessor } from 'build-raptor-api';
2
+ import { Logger } from 'logger';
3
+ export declare class StepByStepTransmitter {
4
+ private readonly logger;
5
+ private readonly steps;
6
+ private readonly promises;
7
+ private readonly stepByStepProcessors;
8
+ private stepByStepFile;
9
+ constructor(logger: Logger);
10
+ setOutputFile(f: string): void;
11
+ addProcessor(p: StepByStepProcessor): void;
12
+ transmit(step: Step): void;
13
+ close(): Promise<void>;
14
+ dynamicallyLoadProcessor(stepByStepProcessorModuleName: string, lookFor?: string): Promise<void>;
15
+ }