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,75 @@
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.UpdateableTaskOutputRegistry = void 0;
37
+ const core_types_1 = require("core-types");
38
+ const path = __importStar(require("path"));
39
+ class UpdateableTaskOutputRegistry {
40
+ constructor() {
41
+ this.map = new Map();
42
+ }
43
+ add(taskName, outputLoc) {
44
+ this.map.set(outputLoc.val, taskName);
45
+ }
46
+ lookup(outputLoc) {
47
+ let normed = outputLoc.val;
48
+ while (true) {
49
+ if (normed === '.') {
50
+ return undefined;
51
+ }
52
+ const tn = this.map.get(normed);
53
+ if (tn) {
54
+ return tn;
55
+ }
56
+ normed = path.dirname(normed);
57
+ }
58
+ }
59
+ wideLookup(outputLoc) {
60
+ const temp = this.lookup(outputLoc);
61
+ if (temp) {
62
+ return [temp];
63
+ }
64
+ const ret = [];
65
+ for (const [loc, tn] of this.map.entries()) {
66
+ const pir = (0, core_types_1.PathInRepo)(loc);
67
+ if (outputLoc.isPrefixOf(pir)) {
68
+ ret.push(tn);
69
+ }
70
+ }
71
+ return ret.sort();
72
+ }
73
+ }
74
+ exports.UpdateableTaskOutputRegistry = UpdateableTaskOutputRegistry;
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRhYmxlLXRhc2stb3V0cHV0LXJlZ2lzdHJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3VwZGF0YWJsZS10YXNrLW91dHB1dC1yZWdpc3RyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwyQ0FBdUM7QUFDdkMsMkNBQTRCO0FBUTVCLE1BQWEsNEJBQTRCO0lBRXZDO1FBRGlCLFFBQUcsR0FBRyxJQUFJLEdBQUcsRUFBb0IsQ0FBQTtJQUNuQyxDQUFDO0lBRWhCLEdBQUcsQ0FBQyxRQUFrQixFQUFFLFNBQXFCO1FBQzNDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUE7SUFDdkMsQ0FBQztJQUVELE1BQU0sQ0FBQyxTQUFxQjtRQUMxQixJQUFJLE1BQU0sR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFBO1FBQzFCLE9BQU8sSUFBSSxFQUFFLENBQUM7WUFDWixJQUFJLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQztnQkFDbkIsT0FBTyxTQUFTLENBQUE7WUFDbEIsQ0FBQztZQUNELE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFBO1lBQy9CLElBQUksRUFBRSxFQUFFLENBQUM7Z0JBQ1AsT0FBTyxFQUFFLENBQUE7WUFDWCxDQUFDO1lBQ0QsTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDL0IsQ0FBQztJQUNILENBQUM7SUFFRCxVQUFVLENBQUMsU0FBcUI7UUFDOUIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUNuQyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ1QsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ2YsQ0FBQztRQUVELE1BQU0sR0FBRyxHQUFlLEVBQUUsQ0FBQTtRQUMxQixLQUFLLE1BQU0sQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO1lBQzNDLE1BQU0sR0FBRyxHQUFHLElBQUEsdUJBQVUsRUFBQyxHQUFHLENBQUMsQ0FBQTtZQUMzQixJQUFJLFNBQVMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDOUIsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQTtZQUNkLENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDbkIsQ0FBQztDQUNGO0FBdENELG9FQXNDQyJ9
@@ -0,0 +1,3 @@
1
+ import { TaskInfo } from 'repo-protocol';
2
+ import { TaskOutputRegistry } from './updatable-task-output-registry';
3
+ export declare function validateTaskInfos(infos: TaskInfo[]): TaskOutputRegistry;
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateTaskInfos = validateTaskInfos;
4
+ const build_failed_error_1 = require("build-failed-error");
5
+ const misc_1 = require("misc");
6
+ const updatable_task_output_registry_1 = require("./updatable-task-output-registry");
7
+ function validateTaskInfos(infos) {
8
+ checkNameCollision(infos);
9
+ const ret = new updatable_task_output_registry_1.UpdateableTaskOutputRegistry();
10
+ checkOutputCollisions(infos, ret);
11
+ return ret;
12
+ }
13
+ function checkNameCollision(infos) {
14
+ const dups = (0, misc_1.findDups)(infos, at => at.taskName);
15
+ if (!dups.length) {
16
+ return;
17
+ }
18
+ const pairs = (0, misc_1.recordToPairs)((0, misc_1.groupBy)(dups, at => at.taskName));
19
+ const sorted = (0, misc_1.sortBy)(pairs, ([_, infos]) => -infos.length);
20
+ const highest = sorted[0] || (0, misc_1.failMe)(`list of sorted task infos is unexplainably empty`);
21
+ throw new build_failed_error_1.BuildFailedError(`Task name collison: ${highest[0]} (${highest[1].length} occurrences)`);
22
+ }
23
+ function checkOutputCollisions(infos, reg) {
24
+ const sorted = (0, misc_1.sortBy)(infos, at => at.taskName);
25
+ const taskNameByOutput = new Map();
26
+ for (const info of sorted) {
27
+ for (const loc of info.outputLocations ?? []) {
28
+ taskNameByOutput.set(loc.pathInRepo.val, info.taskName);
29
+ }
30
+ }
31
+ const allLocations = sorted.flatMap(x => (x.outputLocations ?? []).map(x => x.pathInRepo));
32
+ (0, misc_1.sortBy)(allLocations, at => at.val);
33
+ for (let ia = 0; ia < allLocations.length; ++ia) {
34
+ const a = allLocations[ia];
35
+ for (let ib = 0; ib < allLocations.length; ++ib) {
36
+ if (ia === ib) {
37
+ continue;
38
+ }
39
+ const b = allLocations[ib];
40
+ if (a.isPrefixOf(b)) {
41
+ const ta = (0, misc_1.hardGet)(taskNameByOutput, a.val);
42
+ const tb = (0, misc_1.hardGet)(taskNameByOutput, b.val);
43
+ throw new build_failed_error_1.BuildFailedError(`Output collision in tasks ${ta}, ${tb}: ${a === b ? a : `${a}, ${b} (respectively)`}`);
44
+ }
45
+ }
46
+ }
47
+ for (const i of sorted) {
48
+ for (const loc of i.outputLocations ?? []) {
49
+ reg.add(i.taskName, loc.pathInRepo);
50
+ }
51
+ }
52
+ }
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUtdGFzay1pbmZvcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92YWxpZGF0ZS10YXNrLWluZm9zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBT0EsOENBTUM7QUFiRCwyREFBcUQ7QUFDckQsK0JBQWdGO0FBSWhGLHFGQUFtRztBQUVuRyxTQUFnQixpQkFBaUIsQ0FBQyxLQUFpQjtJQUNqRCxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUV6QixNQUFNLEdBQUcsR0FBRyxJQUFJLDZEQUE0QixFQUFFLENBQUE7SUFDOUMscUJBQXFCLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFBO0lBQ2pDLE9BQU8sR0FBRyxDQUFBO0FBQ1osQ0FBQztBQUVELFNBQVMsa0JBQWtCLENBQUMsS0FBaUI7SUFDM0MsTUFBTSxJQUFJLEdBQUcsSUFBQSxlQUFRLEVBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQy9DLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDakIsT0FBTTtJQUNSLENBQUM7SUFFRCxNQUFNLEtBQUssR0FBRyxJQUFBLG9CQUFhLEVBQUMsSUFBQSxjQUFPLEVBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUE7SUFDN0QsTUFBTSxNQUFNLEdBQUcsSUFBQSxhQUFNLEVBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQzNELE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFBLGFBQU0sRUFBQyxrREFBa0QsQ0FBQyxDQUFBO0lBRXZGLE1BQU0sSUFBSSxxQ0FBZ0IsQ0FBQyx1QkFBdUIsT0FBTyxDQUFDLENB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
@@ -0,0 +1 @@
1
+ export * from './driver';
@@ -0,0 +1,18 @@
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("./driver"), exports);
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQtcmFwdG9yLWNvcmUtdGVzdGtpdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9idWlsZC1yYXB0b3ItY29yZS10ZXN0a2l0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwyQ0FBd0IifQ==
@@ -0,0 +1,119 @@
1
+ import { StepByName, StepByStep, StepName } from 'build-raptor-api';
2
+ import { Breakdown } from 'build-raptor-core';
3
+ import { ExecutionType } from 'build-raptor-core';
4
+ import * as fs from 'fs';
5
+ import { FolderifyRecipe, StorageClient } from 'misc';
6
+ import { RepoProtocol } from 'repo-protocol';
7
+ import { TaskName } from 'task-name';
8
+ import { PackageJson } from 'type-fest';
9
+ interface LinesOptions {
10
+ trimEach?: boolean;
11
+ }
12
+ export declare class Run {
13
+ private readonly breakdown;
14
+ constructor(breakdown: Breakdown);
15
+ outputOf(taskKind: string, unitId: string): Promise<string[]>;
16
+ getSummary(unitId: string, taskKind: string): import("build-raptor-core").TaskSummary;
17
+ taskNames(which?: ExecutionType): TaskName[];
18
+ happened(unitIdA: string, taskKindA: string, unitIdB: string, taskKindB: string): 'BEFORE' | 'CONCURRENTLY' | 'AFTER';
19
+ executionTypeOf(unitId: string, taskKind: string): ExecutionType;
20
+ get buildRunId(): import("modules/build-run-id/dist/src").BuildRunId;
21
+ /**
22
+ * returns the numerical exit code of the build process.
23
+ */
24
+ get exitCode(): number;
25
+ get performanceReport(): import("modules/build-raptor-core/dist/src/performance-report").PerformanceReport | undefined;
26
+ get message(): string | undefined;
27
+ toString(): string;
28
+ }
29
+ declare class File {
30
+ private readonly rootDir;
31
+ private readonly pathInRepo;
32
+ constructor(rootDir: string, pathInRepo: string);
33
+ resolve(): string;
34
+ to(relativePath: string): File;
35
+ /**
36
+ * @returns the content of the file as an array of lines or undefined if the file does not exist.
37
+ */
38
+ lines(options?: LinesOptions): Promise<string[] | undefined>;
39
+ readJson(): any;
40
+ write(content: string | object): Promise<void>;
41
+ exists(): Promise<boolean>;
42
+ rm(): Promise<void>;
43
+ chmod(mode: fs.Mode): void;
44
+ getMode(): number;
45
+ lastChanged(): Promise<number>;
46
+ }
47
+ interface RunOptions {
48
+ units?: string[];
49
+ taskKind?: string | string[];
50
+ subKind?: string;
51
+ goals?: string[];
52
+ labels?: string[];
53
+ /**
54
+ * The directory that build-ratpor was invoked at. If relative it is relative to the repo root. If absolute it must
55
+ * point to a dir somewhere under the repo root.
56
+ */
57
+ userDir?: string;
58
+ concurrencyLevel?: number;
59
+ checkGitIgnore?: boolean;
60
+ testCaching?: boolean;
61
+ toRun?: {
62
+ /**
63
+ * Relative path from userDir
64
+ */
65
+ program: string;
66
+ args: string[];
67
+ };
68
+ }
69
+ declare class Fork {
70
+ private readonly dir;
71
+ private readonly storageClient;
72
+ private readonly repoProtocol;
73
+ private readonly testName?;
74
+ private readonly buildRaptorDir;
75
+ constructor(dir: string, storageClient: StorageClient, repoProtocol: RepoProtocol, testName?: string | undefined);
76
+ run(expectedStatus: 'OK' | 'FAIL' | 'CRASH', options?: RunOptions): Promise<Run>;
77
+ file(pathInRepo: string): File;
78
+ getBuildRaptorDir(): File;
79
+ readStepByStepFile(): StepByStep;
80
+ getSteps<N extends StepName>(stepName: N): StepByName<N>[];
81
+ getPublicOutput(pathInRepo: string): Promise<string>;
82
+ private static filterSteps;
83
+ }
84
+ declare class Repo {
85
+ private readonly recipe;
86
+ private readonly driver;
87
+ constructor(recipe: FolderifyRecipe, driver: Driver);
88
+ fork(): Promise<Fork>;
89
+ }
90
+ interface DriverOptions {
91
+ storageClient?: StorageClient;
92
+ repoProtocol?: RepoProtocol;
93
+ }
94
+ export declare class Driver {
95
+ readonly testName?: string | undefined;
96
+ readonly storageClient: StorageClient;
97
+ readonly repoProtocol: RepoProtocol;
98
+ constructor(testName?: string | undefined, options?: DriverOptions);
99
+ repo(recipe: FolderifyRecipe): Repo;
100
+ packageJson(packageName: string, dependencies?: string[], scripts?: Record<string, string>, mutator?: (obj: PackageJson) => void): {
101
+ name: string;
102
+ license: string;
103
+ version: string;
104
+ scripts: {
105
+ build: string;
106
+ test: string;
107
+ };
108
+ files: string[];
109
+ main: string;
110
+ jest: {
111
+ roots: string[];
112
+ };
113
+ dependencies: {
114
+ [k: string]: string;
115
+ };
116
+ };
117
+ slurpBlob(blobId?: string): Promise<Record<string, string>>;
118
+ }
119
+ export {};
@@ -0,0 +1,305 @@
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.Driver = exports.Run = void 0;
37
+ const build_raptor_api_1 = require("build-raptor-api");
38
+ const build_raptor_core_1 = require("build-raptor-core");
39
+ const core_types_1 = require("core-types");
40
+ const fs = __importStar(require("fs"));
41
+ const fse = __importStar(require("fs-extra"));
42
+ const logger_1 = require("logger");
43
+ const misc_1 = require("misc");
44
+ const path = __importStar(require("path"));
45
+ const task_name_1 = require("task-name");
46
+ const unit_metadata_1 = require("unit-metadata");
47
+ const simple_node_repo_protocol_1 = require("./simple-node-repo-protocol");
48
+ class Run {
49
+ constructor(breakdown) {
50
+ this.breakdown = breakdown;
51
+ }
52
+ async outputOf(taskKind, unitId) {
53
+ return await this.breakdown.outputOf(taskKind, unitId, 'lines');
54
+ }
55
+ getSummary(unitId, taskKind) {
56
+ const tn = (0, task_name_1.TaskName)((0, unit_metadata_1.UnitId)(unitId), (0, task_name_1.TaskKind)(taskKind));
57
+ const ret = this.breakdown.getSummaries().find(s => s.taskName === tn);
58
+ if (!ret) {
59
+ throw new Error(`Task ${unitId}/${taskKind} not found`);
60
+ }
61
+ return ret;
62
+ }
63
+ taskNames(which) {
64
+ const filtered = this.breakdown.getSummaries().filter(t => (which === undefined ? true : t.execution === which));
65
+ return (0, misc_1.sortBy)(filtered.map(s => s.taskName), x => x);
66
+ }
67
+ // TODO(imaman): use timing information gathered by the protocol testkit (instead of relying on summaries which are
68
+ // SUT-generated)
69
+ happened(unitIdA, taskKindA, unitIdB, taskKindB) {
70
+ const a = this.getSummary(unitIdA, taskKindA);
71
+ const b = this.getSummary(unitIdB, taskKindB);
72
+ if (a.endedAt <= b.startedAt) {
73
+ return 'BEFORE';
74
+ }
75
+ if (a.startedAt >= b.endedAt) {
76
+ return 'AFTER';
77
+ }
78
+ return 'CONCURRENTLY';
79
+ }
80
+ executionTypeOf(unitId, taskKind) {
81
+ const s = this.getSummary(unitId, taskKind);
82
+ return s.execution;
83
+ }
84
+ get buildRunId() {
85
+ return this.breakdown.buildRunId;
86
+ }
87
+ /**
88
+ * returns the numerical exit code of the build process.
89
+ */
90
+ get exitCode() {
91
+ return this.breakdown.exitCode;
92
+ }
93
+ get performanceReport() {
94
+ return this.breakdown.performanceReport;
95
+ }
96
+ get message() {
97
+ return this.breakdown.message;
98
+ }
99
+ toString() {
100
+ return `message=${this.message} exitCode=${this.exitCode}, summaries=${JSON.stringify(this.breakdown.getSummaries())}`;
101
+ }
102
+ }
103
+ exports.Run = Run;
104
+ class File {
105
+ constructor(rootDir, pathInRepo) {
106
+ this.rootDir = rootDir;
107
+ this.pathInRepo = pathInRepo;
108
+ }
109
+ resolve() {
110
+ return path.join(this.rootDir, this.pathInRepo);
111
+ }
112
+ to(relativePath) {
113
+ if (path.isAbsolute(relativePath)) {
114
+ throw new Error(`Absolute path not allowed`);
115
+ }
116
+ return new File(this.rootDir, path.join(this.pathInRepo, relativePath));
117
+ }
118
+ /**
119
+ * @returns the content of the file as an array of lines or undefined if the file does not exist.
120
+ */
121
+ async lines(options = {}) {
122
+ const trimEach = options.trimEach ?? false;
123
+ const resolved = this.resolve();
124
+ if (!(await fse.pathExists(resolved))) {
125
+ return undefined;
126
+ }
127
+ const content = await fse.readFile(resolved, 'utf-8');
128
+ return content
129
+ .trim()
130
+ .split('\n')
131
+ .map(at => (trimEach ? at.trim() : at));
132
+ }
133
+ readJson() {
134
+ const resolved = this.resolve();
135
+ if (!fs.existsSync(resolved)) {
136
+ return undefined;
137
+ }
138
+ return JSON.parse(fs.readFileSync(resolved, 'utf-8'));
139
+ }
140
+ async write(content) {
141
+ const resolved = this.resolve();
142
+ await fse.mkdirp(path.dirname(resolved));
143
+ const c = typeof content === 'string'
144
+ ? content
145
+ : typeof content === 'object'
146
+ ? JSON.stringify(content)
147
+ : (0, misc_1.shouldNeverHappen)(content);
148
+ await fse.writeFile(resolved, c);
149
+ }
150
+ async exists() {
151
+ return await fse.pathExists(this.resolve());
152
+ }
153
+ async rm() {
154
+ await fse.remove(this.resolve());
155
+ }
156
+ chmod(mode) {
157
+ fs.chmodSync(this.resolve(), mode);
158
+ }
159
+ getMode() {
160
+ return fs.statSync(this.resolve()).mode & 0o777;
161
+ }
162
+ async lastChanged() {
163
+ const st = await fse.stat(this.resolve());
164
+ return st.mtime.getTime();
165
+ }
166
+ }
167
+ const BUILD_RAPTOR_DIR_NAME = '.build-raptor';
168
+ class Fork {
169
+ constructor(dir, storageClient, repoProtocol, testName) {
170
+ this.dir = dir;
171
+ this.storageClient = storageClient;
172
+ this.repoProtocol = repoProtocol;
173
+ this.testName = testName;
174
+ this.buildRaptorDir = path.join(this.dir, BUILD_RAPTOR_DIR_NAME);
175
+ }
176
+ async run(expectedStatus, options = {}) {
177
+ const kinds = !options.taskKind ? [] : Array.isArray(options.taskKind) ? options.taskKind : [options.taskKind];
178
+ const units = options.units ?? [];
179
+ const goals = options.goals ?? [];
180
+ const labels = [...kinds, ...(options.labels ?? [])];
181
+ const concurrencyLevel = (0, misc_1.Int)(options.concurrencyLevel ?? 10);
182
+ const rp = this.repoProtocol;
183
+ const bootstrapper = await build_raptor_core_1.EngineBootstrapper.create(this.dir, this.storageClient, rp, Date.now(), 'moderate', this.testName);
184
+ await fse.mkdirp(this.buildRaptorDir);
185
+ const runner = await bootstrapper.makeRunner({ units, goals, labels }, undefined, {
186
+ checkGitIgnore: options.checkGitIgnore ?? false,
187
+ concurrency: concurrencyLevel,
188
+ buildRaptorDir: this.buildRaptorDir,
189
+ testCaching: options.testCaching,
190
+ commitHash: 'COMMIT-HASH-FOR-TESTING',
191
+ userDir: options.userDir ?? '',
192
+ toRun: options.toRun,
193
+ });
194
+ const output = await runner();
195
+ if (expectedStatus === output.overallVerdict) {
196
+ return new Run(output);
197
+ }
198
+ if (output.crashCause) {
199
+ throw output.crashCause;
200
+ }
201
+ const m = output
202
+ .getSummaries()
203
+ .map(s => `${s.taskName} -> ${s.verdict}`)
204
+ .join('\n');
205
+ throw new Error(`Expected ${expectedStatus}, but got ${output.overallVerdict} ${output.message ?? ''}\n${m}`);
206
+ }
207
+ file(pathInRepo) {
208
+ return new File(this.dir, pathInRepo);
209
+ }
210
+ getBuildRaptorDir() {
211
+ return this.file(BUILD_RAPTOR_DIR_NAME);
212
+ }
213
+ readStepByStepFile() {
214
+ const unparsed = this.getBuildRaptorDir().to('step-by-step.json').readJson();
215
+ return build_raptor_api_1.StepByStep.parse(unparsed);
216
+ }
217
+ getSteps(stepName) {
218
+ const parsed = this.readStepByStepFile();
219
+ const ret = Fork.filterSteps(parsed, stepName);
220
+ return ret;
221
+ }
222
+ async getPublicOutput(pathInRepo) {
223
+ const steps = this.getSteps('PUBLIC_FILES');
224
+ const filtered = steps.filter(s => Boolean(s.publicFiles[pathInRepo]));
225
+ if (filtered.length === 0) {
226
+ throw new Error(`public output not found "${pathInRepo}"`);
227
+ }
228
+ if (filtered.length > 1) {
229
+ throw new Error(`more than one task generated "${pathInRepo}"`);
230
+ }
231
+ const hash = filtered[0].publicFiles[pathInRepo];
232
+ const buf = await this.storageClient.getContentAddressable(hash);
233
+ return buf.toString('utf-8').trim();
234
+ }
235
+ static filterSteps(input, stepName) {
236
+ // eslint-disable-next-line @typescript-eslint/consistent-type-assertions
237
+ return input.flatMap(at => (at.step === stepName ? [at] : []));
238
+ }
239
+ }
240
+ class Repo {
241
+ constructor(recipe, driver) {
242
+ this.recipe = recipe;
243
+ this.driver = driver;
244
+ }
245
+ async fork() {
246
+ // Creates this strcutrue:
247
+ //
248
+ // [outerDir]
249
+ // node_modules
250
+ // [ROOT_NAME]
251
+ // <content of the repo goes here>
252
+ // node_modules
253
+ //
254
+ // The upper node_modules is symlinked to the node_modules dir of the build-raptor repo. This allows us to run
255
+ // tests which use "tsc", "jest" and other tools without having to run "yarn install". The inner node_modules
256
+ // directory is used mostly for storing symlinks to the repo packages to allow inter-repo dependencies.
257
+ const outerDir = await (0, misc_1.folderify)(ROOT_NAME, this.recipe);
258
+ const rootDir = path.join(outerDir, ROOT_NAME);
259
+ const ret = new Fork(rootDir, this.driver.storageClient, this.driver.repoProtocol, this.driver.testName);
260
+ await fse.symlink(path.resolve(__dirname, '../../../../node_modules'), path.join(outerDir, 'node_modules'));
261
+ return ret;
262
+ }
263
+ }
264
+ const ROOT_NAME = 'repo-root';
265
+ class Driver {
266
+ constructor(testName, options = {}) {
267
+ this.testName = testName;
268
+ this.storageClient = options.storageClient ?? new misc_1.InMemoryStorageClient();
269
+ this.repoProtocol = options.repoProtocol ?? new simple_node_repo_protocol_1.SimpleNodeRepoProtocol((0, core_types_1.PathInRepo)('modules'));
270
+ }
271
+ repo(recipe) {
272
+ return new Repo(recipe, this);
273
+ }
274
+ packageJson(packageName, dependencies = [], scripts = {}, mutator = () => { }) {
275
+ const ret = {
276
+ name: packageName,
277
+ license: 'UNLICENSED',
278
+ version: '1.0.0',
279
+ scripts: {
280
+ build: 'tsc -b',
281
+ test: 'jest',
282
+ ...scripts,
283
+ },
284
+ files: ['dist/src'],
285
+ main: 'dist/src/index.js',
286
+ jest: {
287
+ roots: ['<rootDir>/dist'],
288
+ },
289
+ dependencies: Object.fromEntries(dependencies.map(d => [d, '1.0.0'])),
290
+ };
291
+ mutator(ret);
292
+ return ret;
293
+ }
294
+ async slurpBlob(blobId) {
295
+ if (!blobId) {
296
+ throw new Error(`bad blobId: <${blobId}>`);
297
+ }
298
+ const tempDir = await (0, misc_1.folderify)({});
299
+ const taskStore = new build_raptor_core_1.TaskStore((0, core_types_1.RepoRoot)(tempDir), this.storageClient, (0, logger_1.createNopLogger)());
300
+ await taskStore.restoreBlob((0, build_raptor_core_1.BlobId)(blobId));
301
+ return await (0, misc_1.slurpDir)(tempDir);
302
+ }
303
+ }
304
+ exports.Driver = Driver;
305
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJpdmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RyaXZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx1REFBeUU7QUFDekUseURBQW9GO0FBRXBGLDJDQUFpRDtBQUNqRCx1Q0FBd0I7QUFDeEIsOENBQStCO0FBQy9CLG1DQUF3QztBQUN4QywrQkFTYTtBQUNiLDJDQUE0QjtBQUU1Qix5Q0FBOEM7QUFFOUMsaURBQXNDO0FBRXRDLDJFQUFvRTtBQUtwRSxNQUFhLEdBQUc7SUFDZCxZQUE2QixTQUFvQjtRQUFwQixjQUFTLEdBQVQsU0FBUyxDQUFXO0lBQUcsQ0FBQztJQUVyRCxLQUFLLENBQUMsUUFBUSxDQUFDLFFBQWdCLEVBQUUsTUFBYztRQUM3QyxPQUFPLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQTtJQUNqRSxDQUFDO0lBRUQsVUFBVSxDQUFDLE1BQWMsRUFBRSxRQUFnQjtRQUN6QyxNQUFNLEVBQUUsR0FBRyxJQUFBLG9CQUFRLEVBQUMsSUFBQSxzQkFBTSxFQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUEsb0JBQVEsRUFBQyxRQUFRLENBQUMsQ0FBQyxDQUFBO1FBQ3ZELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsS0FBSyxFQUFFLENBQUMsQ0FBQTtRQUN0RSxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDVCxNQUFNLElBQUksS0FBSyxDQUFDLFFBQVEsTUFBTSxJQUFJLFFBQVEsWUFBWSxDQUFDLENBQUE7UUFDekQsQ0FBQztRQUNELE9BQU8sR0FBRyxDQUFBO0lBQ1osQ0FBQztJQUVELFNBQVMsQ0FBQyxLQUFxQjtRQUM3QixN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
@@ -0,0 +1,3 @@
1
+ export * from './build-raptor-core-testkit';
2
+ export * from './repo-protocol-testkit';
3
+ export * from './simple-node-repo-protocol';
@@ -0,0 +1,20 @@
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("./build-raptor-core-testkit"), exports);
18
+ __exportStar(require("./repo-protocol-testkit"), exports);
19
+ __exportStar(require("./simple-node-repo-protocol"), exports);
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDhEQUEyQztBQUMzQywwREFBdUM7QUFDdkMsOERBQTJDIn0=