@overkill-dev/run 0.0.9 → 0.0.11

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 (76) hide show
  1. package/engine/engine.d.ts +27 -0
  2. package/engine/engine.d.ts.map +1 -0
  3. package/engine/engine.js +40 -0
  4. package/engine/engine.js.map +1 -0
  5. package/engine/execution-result.js +77 -0
  6. package/engine/execution-result.js.map +1 -0
  7. package/engine/execution.d.ts +2 -1
  8. package/engine/execution.d.ts.map +1 -1
  9. package/engine/execution.js +23 -76
  10. package/engine/execution.js.map +1 -1
  11. package/engine/identity.d.ts +1 -1
  12. package/engine/identity.d.ts.map +1 -1
  13. package/engine/identity.js +16 -1
  14. package/engine/identity.js.map +1 -1
  15. package/engine/run-if-main.d.ts +28 -0
  16. package/engine/run-if-main.d.ts.map +1 -0
  17. package/engine/run-if-main.js +46 -0
  18. package/engine/run-if-main.js.map +1 -0
  19. package/engine/run-result.d.ts +22 -0
  20. package/engine/run-result.d.ts.map +1 -1
  21. package/engine/run-result.js.map +1 -1
  22. package/engine/test-node.d.ts +1 -0
  23. package/engine/test-node.d.ts.map +1 -1
  24. package/engine/test-node.js +137 -0
  25. package/engine/test-node.js.map +1 -0
  26. package/engine/test-plan.d.ts +11 -1
  27. package/engine/test-plan.d.ts.map +1 -1
  28. package/engine/test-plan.js +174 -0
  29. package/engine/test-plan.js.map +1 -0
  30. package/package.json +6 -2
  31. package/packages/engine/engine.entry-point.js +67 -0
  32. package/packages/engine/engine.entry-point.js.map +1 -0
  33. package/packages/run/command-line.entry-point.d.ts +1 -1
  34. package/packages/run/command-line.entry-point.d.ts.map +1 -1
  35. package/packages/run/run.entry-point.d.ts +4 -2
  36. package/packages/run/run.entry-point.d.ts.map +1 -1
  37. package/packages/run/run.entry-point.js +2 -1
  38. package/packages/run/run.entry-point.js.map +1 -1
  39. package/readme.md +23 -5
  40. package/run/command-line-command.d.ts +1 -3
  41. package/run/command-line-command.d.ts.map +1 -1
  42. package/run/command-line-command.js +4 -1
  43. package/run/command-line-command.js.map +1 -1
  44. package/run/command-line-runner.d.ts +1 -1
  45. package/run/command-line-runner.d.ts.map +1 -1
  46. package/run/command-line-runner.js +5 -3
  47. package/run/command-line-runner.js.map +1 -1
  48. package/run/command-line-unimplemented-commands.js +1 -1
  49. package/run/command-line-unimplemented-commands.js.map +1 -1
  50. package/run/default-run-engine.js +14 -0
  51. package/run/default-run-engine.js.map +1 -0
  52. package/run/resource-usage.d.ts +15 -0
  53. package/run/resource-usage.d.ts.map +1 -0
  54. package/run/resource-usage.js +107 -0
  55. package/run/resource-usage.js.map +1 -0
  56. package/run/run-config.d.ts +30 -5
  57. package/run/run-config.d.ts.map +1 -1
  58. package/run/run-config.js +62 -1
  59. package/run/run-config.js.map +1 -1
  60. package/run/run-discovery.js +75 -0
  61. package/run/run-discovery.js.map +1 -0
  62. package/run/run-errors.d.ts +16 -0
  63. package/run/run-errors.d.ts.map +1 -0
  64. package/run/run-errors.js +37 -0
  65. package/run/run-errors.js.map +1 -0
  66. package/run/run-orchestrator.d.ts +3 -0
  67. package/run/run-orchestrator.d.ts.map +1 -0
  68. package/run/run-orchestrator.js +43 -0
  69. package/run/run-orchestrator.js.map +1 -0
  70. package/run/run-test-modules.js +53 -0
  71. package/run/run-test-modules.js.map +1 -0
  72. package/run/run.d.ts +35 -13
  73. package/run/run.d.ts.map +1 -1
  74. package/run/run.js +200 -66
  75. package/run/run.js.map +1 -1
  76. package/sbom.cdx.json +4 -4
@@ -1,4 +1,4 @@
1
- import { orchestrator } from "./run.js";
1
+ import { orchestrator } from "./run-orchestrator.js";
2
2
  import { loadRunConfig } from "./run-config.js";
3
3
  import { createCommandLineErrorResultFromUnknown, formatFallbackDiagnostics, readExitCodeFromRunResult } from "./command-line-command.js";
4
4
  import { createCommandLineCommandNamespace } from "./command-line-command-namespace.js";
@@ -24,6 +24,7 @@ async function createCommandLineConfig(loadedConfig, dependencies) {
24
24
  return {
25
25
  loader: loadedConfig.loader,
26
26
  outputRenderer: loadedConfig.outputRenderer,
27
+ profiles: loadedConfig.profiles,
27
28
  reporters: await loadCommandLineReporters(loadedConfig, dependencies),
28
29
  runtimeStateDir: loadedConfig.runtimeStateDir
29
30
  };
@@ -31,8 +32,9 @@ async function createCommandLineConfig(loadedConfig, dependencies) {
31
32
  async function createCommandFromRequest(request, loadedConfig, dependencies) {
32
33
  return {
33
34
  config: await createCommandLineConfig(loadedConfig, dependencies),
34
- request: request.request,
35
- testPlan: request.testPlan
35
+ cwd: request.cwd,
36
+ engine: null,
37
+ request: request.request
36
38
  };
37
39
  }
38
40
  async function runTestsWithLoadedConfig(request, dependencies, loadedConfig) {
@@ -1 +1 @@
1
- {"version":3,"file":"command-line-runner.js","sourceRoot":"","sources":["../../../../source/run/command-line-runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"command-line-runner.js","sourceRoot":"","sources":["../../../../source/run/command-line-runner.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { RunResolutionError } from "./run.js";
1
+ import { RunResolutionError } from "./run-errors.js";
2
2
  import { createCommandLineErrorResultFromUnknown } from "./command-line-command.js";
3
3
  function createUnimplementedCommandResult(command, context) {
4
4
  const argumentSuffix = context.arguments.length === 0
@@ -1 +1 @@
1
- {"version":3,"file":"command-line-unimplemented-commands.js","sourceRoot":"","sources":["../../../../source/run/command-line-unimplemented-commands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EACH,uCAAuC,EAM1C,MAAM,2BAA2B,CAAC;AAEnC,SAAS,gCAAgC,CACrC,OAAe,EACf,OAAkC;IAElC,MAAM,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC;QACjD,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,SAAS,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,YAAY,CAAC;IAE/D,OAAO,uCAAuC,CAC1C,IAAI,kBAAkB,CAClB,YAAY,OAAO,IAAI,cAAc,0BAA0B,EAC/D,SAAS,EACT,qBAAqB,CACxB,CACJ,CAAC;AACN,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,OAAe;IACtD,OAAO,KAAK,UAAU,uBAAuB,CAAC,OAAO;QACjD,OAAO,gCAAgC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC9D,CAAC,CAAC;AACN,CAAC;AAED,SAAS,mCAAmC,CAAC,SAAiB;IAC1D,OAAO;QACH,KAAK,EAAE,0BAA0B,CAAC,GAAG,SAAS,QAAQ,CAAC;QACvD,SAAS,EAAE,0BAA0B,CAAC,GAAG,SAAS,YAAY,CAAC;QAC/D,IAAI,EAAE,0BAA0B,CAAC,GAAG,SAAS,OAAO,CAAC;QACrD,IAAI,EAAE,0BAA0B,CAAC,GAAG,SAAS,OAAO,CAAC;QACrD,MAAM,EAAE,0BAA0B,CAAC,GAAG,SAAS,SAAS,CAAC;KAC5D,CAAC;AACN,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iCAAiC;IACnD,OAAO,mCAAmC,CAAC,UAAU,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kCAAkC;IACpD,OAAO;QACH,QAAQ,EAAE,mCAAmC,CAAC,gBAAgB,CAAC;QAC/D,cAAc,EAAE,0BAA0B,CAAC,YAAY,CAAC;QACxD,aAAa,EAAE,0BAA0B,CAAC,WAAW,CAAC;KACzD,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"command-line-unimplemented-commands.js","sourceRoot":"","sources":["../../../../source/run/command-line-unimplemented-commands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EACH,uCAAuC,EAM1C,MAAM,2BAA2B,CAAC;AAEnC,SAAS,gCAAgC,CACrC,OAAe,EACf,OAAkC;IAElC,MAAM,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC;QACjD,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,SAAS,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,YAAY,CAAC;IAE/D,OAAO,uCAAuC,CAC1C,IAAI,kBAAkB,CAClB,YAAY,OAAO,IAAI,cAAc,0BAA0B,EAC/D,SAAS,EACT,qBAAqB,CACxB,CACJ,CAAC;AACN,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,OAAe;IACtD,OAAO,KAAK,UAAU,uBAAuB,CAAC,OAAO;QACjD,OAAO,gCAAgC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC9D,CAAC,CAAC;AACN,CAAC;AAED,SAAS,mCAAmC,CAAC,SAAiB;IAC1D,OAAO;QACH,KAAK,EAAE,0BAA0B,CAAC,GAAG,SAAS,QAAQ,CAAC;QACvD,SAAS,EAAE,0BAA0B,CAAC,GAAG,SAAS,YAAY,CAAC;QAC/D,IAAI,EAAE,0BAA0B,CAAC,GAAG,SAAS,OAAO,CAAC;QACrD,IAAI,EAAE,0BAA0B,CAAC,GAAG,SAAS,OAAO,CAAC;QACrD,MAAM,EAAE,0BAA0B,CAAC,GAAG,SAAS,SAAS,CAAC;KAC5D,CAAC;AACN,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iCAAiC;IACnD,OAAO,mCAAmC,CAAC,UAAU,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kCAAkC;IACpD,OAAO;QACH,QAAQ,EAAE,mCAAmC,CAAC,gBAAgB,CAAC;QAC/D,cAAc,EAAE,0BAA0B,CAAC,YAAY,CAAC;QACxD,aAAa,EAAE,0BAA0B,CAAC,WAAW,CAAC;KACzD,CAAC;AACN,CAAC"}
@@ -0,0 +1,14 @@
1
+ import * as publicEngine from "../packages/engine/engine.entry-point.js";
2
+ export const defaultRunEngine = {
3
+ createRoot: publicEngine.createRoot,
4
+ createSuite: publicEngine.createSuite,
5
+ createTable: publicEngine.createTable,
6
+ createTestCase: publicEngine.createTestCase,
7
+ createTestPlan: publicEngine.createTestPlan,
8
+ createTestPlanFromTestFiles: publicEngine.createTestPlanFromTestFiles,
9
+ execute: publicEngine.execute,
10
+ formatCaseId: publicEngine.formatCaseId,
11
+ ownsTestNode: publicEngine.ownsTestNode,
12
+ runIfMain: publicEngine.runIfMain
13
+ };
14
+ //# sourceMappingURL=default-run-engine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default-run-engine.js","sourceRoot":"","sources":["../../../../source/run/default-run-engine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,YAAY,MAAM,0CAA0C,CAAC;AAGzE,MAAM,CAAC,MAAM,gBAAgB,GAAW;IACpC,UAAU,EAAE,YAAY,CAAC,UAAU;IACnC,WAAW,EAAE,YAAY,CAAC,WAAW;IACrC,WAAW,EAAE,YAAY,CAAC,WAAW;IACrC,cAAc,EAAE,YAAY,CAAC,cAAc;IAC3C,cAAc,EAAE,YAAY,CAAC,cAAc;IAC3C,2BAA2B,EAAE,YAAY,CAAC,2BAA2B;IACrE,OAAO,EAAE,YAAY,CAAC,OAAO;IAC7B,YAAY,EAAE,YAAY,CAAC,YAAY;IACvC,YAAY,EAAE,YAAY,CAAC,YAAY;IACvC,SAAS,EAAE,YAAY,CAAC,SAAS;CACpC,CAAC"}
@@ -0,0 +1,15 @@
1
+ import type { WallClock } from '@enormora/wall-clock';
2
+ import type { RunResourceUsageTracker } from '../engine/run-result.ts';
3
+ type ResourceUsageTrackerDependencies = {
4
+ readonly readActiveResourceTypes: () => readonly string[];
5
+ readonly readJavaScriptEngineHeapBytes: () => number;
6
+ readonly readResidentSetBytes: () => number;
7
+ readonly wallClock: WallClock;
8
+ };
9
+ export type ResourceUsageTrackerOptions = {
10
+ readonly samplingIntervalMilliseconds: number;
11
+ };
12
+ export declare function createResourceUsageTracker(dependencies: ResourceUsageTrackerDependencies, options: ResourceUsageTrackerOptions): RunResourceUsageTracker;
13
+ export declare function createNodeResourceUsageTracker(wallClock: WallClock, options: ResourceUsageTrackerOptions): RunResourceUsageTracker;
14
+ export {};
15
+ //# sourceMappingURL=resource-usage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource-usage.d.ts","sourceRoot":"","sources":["../../../../source/run/resource-usage.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAGR,uBAAuB,EAC1B,MAAM,yBAAyB,CAAC;AAUjC,KAAK,gCAAgC,GAAG;IACpC,QAAQ,CAAC,uBAAuB,EAAE,MAAM,SAAS,MAAM,EAAE,CAAC;IAC1D,QAAQ,CAAC,6BAA6B,EAAE,MAAM,MAAM,CAAC;IACrD,QAAQ,CAAC,oBAAoB,EAAE,MAAM,MAAM,CAAC;IAC5C,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACtC,QAAQ,CAAC,4BAA4B,EAAE,MAAM,CAAC;CACjD,CAAC;AAgGF,wBAAgB,0BAA0B,CACtC,YAAY,EAAE,gCAAgC,EAC9C,OAAO,EAAE,2BAA2B,GACrC,uBAAuB,CAiCzB;AAED,wBAAgB,8BAA8B,CAC1C,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,2BAA2B,GACrC,uBAAuB,CAazB"}
@@ -0,0 +1,107 @@
1
+ import { getHeapStatistics } from 'node:v8';
2
+ const millisecondsPerSecond = 1000;
3
+ function sortedUnique(values) {
4
+ return Array.from(new Set(values)).toSorted(function compareText(firstValue, secondValue) {
5
+ return firstValue.localeCompare(secondValue);
6
+ });
7
+ }
8
+ function readResourceUsageSample(dependencies) {
9
+ return {
10
+ capturedAtMilliseconds: dependencies.wallClock.currentTimestampInMilliseconds,
11
+ javaScriptEngineHeapBytes: dependencies.readJavaScriptEngineHeapBytes(),
12
+ residentSetBytes: dependencies.readResidentSetBytes()
13
+ };
14
+ }
15
+ function readResourceUsageSnapshot(dependencies) {
16
+ const sample = readResourceUsageSample(dependencies);
17
+ const activeResourceTypes = dependencies.readActiveResourceTypes();
18
+ return {
19
+ activeResourceCount: activeResourceTypes.length,
20
+ activeResourceTypes: sortedUnique(activeResourceTypes),
21
+ capturedAtMilliseconds: sample.capturedAtMilliseconds,
22
+ javaScriptEngineHeapBytes: sample.javaScriptEngineHeapBytes,
23
+ residentSetBytes: sample.residentSetBytes
24
+ };
25
+ }
26
+ function maximumSampleValue(samples, readValue) {
27
+ return Math.max(...samples.map(readValue));
28
+ }
29
+ function residentSetGrowthBytesPerSecond(previousSample, nextSample) {
30
+ const elapsedMilliseconds = nextSample.capturedAtMilliseconds - previousSample.capturedAtMilliseconds;
31
+ if (elapsedMilliseconds <= 0) {
32
+ return 0;
33
+ }
34
+ const residentSetGrowthBytes = nextSample.residentSetBytes - previousSample.residentSetBytes;
35
+ return Math.max(0, residentSetGrowthBytes * millisecondsPerSecond / elapsedMilliseconds);
36
+ }
37
+ function peakResidentSetGrowthBytesPerSecond(samples) {
38
+ let peakGrowthBytesPerSecond = 0;
39
+ for (let sampleIndex = 1; sampleIndex < samples.length; sampleIndex += 1) {
40
+ const previousSample = samples[sampleIndex - 1];
41
+ const nextSample = samples[sampleIndex];
42
+ if (previousSample !== undefined && nextSample !== undefined) {
43
+ peakGrowthBytesPerSecond = Math.max(peakGrowthBytesPerSecond, residentSetGrowthBytesPerSecond(previousSample, nextSample));
44
+ }
45
+ }
46
+ return peakGrowthBytesPerSecond;
47
+ }
48
+ function createResourceUsage(start, end, samples) {
49
+ return {
50
+ activeResourceTypes: sortedUnique([...start.activeResourceTypes, ...end.activeResourceTypes]),
51
+ end,
52
+ peakActiveResourceCount: Math.max(start.activeResourceCount, end.activeResourceCount),
53
+ peakJavaScriptEngineHeapBytes: maximumSampleValue(samples, function readJavaScriptEngineHeapBytes(sample) {
54
+ return sample.javaScriptEngineHeapBytes;
55
+ }),
56
+ peakResidentSetBytes: maximumSampleValue(samples, function readResidentSetBytes(sample) {
57
+ return sample.residentSetBytes;
58
+ }),
59
+ peakResidentSetGrowthBytesPerSecond: peakResidentSetGrowthBytesPerSecond(samples),
60
+ sampleCount: samples.length,
61
+ start
62
+ };
63
+ }
64
+ export function createResourceUsageTracker(dependencies, options) {
65
+ let intervalIdentifier = null;
66
+ let samples = [];
67
+ let startSnapshot = null;
68
+ return {
69
+ finish() {
70
+ if (startSnapshot === null) {
71
+ throw new Error('Resource usage tracking must start before it can finish.');
72
+ }
73
+ if (intervalIdentifier !== null) {
74
+ dependencies.wallClock.clearInterval(intervalIdentifier);
75
+ intervalIdentifier = null;
76
+ }
77
+ const endSnapshot = readResourceUsageSnapshot(dependencies);
78
+ samples = [...samples, endSnapshot];
79
+ return createResourceUsage(startSnapshot, endSnapshot, samples);
80
+ },
81
+ start() {
82
+ if (startSnapshot !== null) {
83
+ throw new Error('Resource usage tracking already started.');
84
+ }
85
+ startSnapshot = readResourceUsageSnapshot(dependencies);
86
+ samples = [startSnapshot];
87
+ intervalIdentifier = dependencies.wallClock.setInterval(function collectResourceUsageSample() {
88
+ samples = [...samples, readResourceUsageSample(dependencies)];
89
+ }, options.samplingIntervalMilliseconds);
90
+ }
91
+ };
92
+ }
93
+ export function createNodeResourceUsageTracker(wallClock, options) {
94
+ return createResourceUsageTracker({
95
+ readActiveResourceTypes() {
96
+ return process.getActiveResourcesInfo();
97
+ },
98
+ readJavaScriptEngineHeapBytes() {
99
+ return getHeapStatistics().used_heap_size;
100
+ },
101
+ readResidentSetBytes() {
102
+ return process.memoryUsage.rss();
103
+ },
104
+ wallClock
105
+ }, options);
106
+ }
107
+ //# sourceMappingURL=resource-usage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource-usage.js","sourceRoot":"","sources":["../../../../source/run/resource-usage.ts"],"names":[],"mappings":"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"}
@@ -1,20 +1,44 @@
1
1
  import type { NonEmptyReadonlyArray } from '../assertion-protocol/assertion-node-shape.ts';
2
2
  import { type OutputRenderer } from '../engine/reporter-output.ts';
3
3
  import type { Reporter } from '../engine/reporter.ts';
4
- import type { RunLoaderConfig } from './run.ts';
4
+ import type { RunLoaderConfig, RunProfilesConfig } from './run.ts';
5
5
  export type RunProjectConfig = {
6
- readonly loader?: RunLoaderConfig;
7
- readonly outputRenderer?: OutputRenderer;
8
- readonly reporters?: NonEmptyReadonlyArray<Reporter>;
9
- readonly runtimeStateDir?: string;
6
+ readonly loader?: RunLoaderConfig | undefined;
7
+ readonly outputRenderer?: OutputRenderer | undefined;
8
+ readonly profiles?: RunProjectProfilesConfig | undefined;
9
+ readonly reporters?: NonEmptyReadonlyArray<Reporter> | undefined;
10
+ readonly runtimeStateDir?: string | undefined;
10
11
  };
11
12
  export type LoadedRunConfig = {
12
13
  readonly configPath: string | null;
13
14
  readonly loader: RunLoaderConfig;
14
15
  readonly outputRenderer: OutputRenderer;
16
+ readonly profiles: RunProfilesConfig;
15
17
  readonly reporters: NonEmptyReadonlyArray<Reporter> | null;
16
18
  readonly runtimeStateDir: string;
17
19
  };
20
+ export type RunProjectResourceBudgets = {
21
+ readonly activeResourceCount?: number | null | undefined;
22
+ readonly javaScriptEngineHeapBytes?: number | null | undefined;
23
+ readonly residentSetBytes?: number | null | undefined;
24
+ readonly residentSetGrowthBytesPerSecond?: number | null | undefined;
25
+ };
26
+ export type RunProjectMeasuredMicrotestProfileConfig = {
27
+ readonly measureResourceUsage: true;
28
+ readonly resourceBudgets?: RunProjectResourceBudgets | undefined;
29
+ readonly resourceUsageSamplingIntervalMilliseconds?: number | undefined;
30
+ };
31
+ export type RunProjectUnmeasuredMicrotestProfileConfig = {
32
+ readonly measureResourceUsage?: false | undefined;
33
+ };
34
+ type RunProjectMicrotestProfileConfigVariants = readonly [
35
+ RunProjectMeasuredMicrotestProfileConfig,
36
+ RunProjectUnmeasuredMicrotestProfileConfig
37
+ ];
38
+ export type RunProjectMicrotestProfileConfig = RunProjectMicrotestProfileConfigVariants[number];
39
+ export type RunProjectProfilesConfig = {
40
+ readonly microtest?: RunProjectMicrotestProfileConfig | undefined;
41
+ };
18
42
  export type RunConfigLoadRequest = {
19
43
  readonly configPath: string | null;
20
44
  readonly cwd: string;
@@ -24,4 +48,5 @@ export declare class RunConfigError extends Error {
24
48
  }
25
49
  export declare function defineConfig(config: RunProjectConfig): RunProjectConfig;
26
50
  export declare function loadRunConfig(request: RunConfigLoadRequest): Promise<LoadedRunConfig>;
51
+ export {};
27
52
  //# sourceMappingURL=run-config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"run-config.d.ts","sourceRoot":"","sources":["../../../../source/run/run-config.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+CAA+C,CAAC;AAC3F,OAAO,EAA6B,KAAK,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9F,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAIhD,MAAM,MAAM,gBAAgB,GAAG;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,eAAe,CAAC;IAClC,QAAQ,CAAC,cAAc,CAAC,EAAE,cAAc,CAAC;IACzC,QAAQ,CAAC,SAAS,CAAC,EAAE,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IACrD,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,SAAS,EAAE,qBAAqB,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;IAC3D,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IAC/B,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,qBAAa,cAAe,SAAQ,KAAK;gBAClB,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC;CAIvE;AA6CD,wBAAgB,YAAY,CAAC,MAAM,EAAE,gBAAgB,GAAG,gBAAgB,CAEvE;AA8FD,wBAAsB,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,eAAe,CAAC,CAW3F"}
1
+ {"version":3,"file":"run-config.d.ts","sourceRoot":"","sources":["../../../../source/run/run-config.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+CAA+C,CAAC;AAC3F,OAAO,EAA6B,KAAK,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9F,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,KAAK,EACR,eAAe,EACf,iBAAiB,EAGpB,MAAM,UAAU,CAAC;AAKlB,MAAM,MAAM,gBAAgB,GAAG;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC;IAC9C,QAAQ,CAAC,cAAc,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;IACrD,QAAQ,CAAC,QAAQ,CAAC,EAAE,wBAAwB,GAAG,SAAS,CAAC;IACzD,QAAQ,CAAC,SAAS,CAAC,EAAE,qBAAqB,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC;IACjE,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACjD,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACrC,QAAQ,CAAC,SAAS,EAAE,qBAAqB,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;IAC3D,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACpC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACzD,QAAQ,CAAC,yBAAyB,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC/D,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACtD,QAAQ,CAAC,+BAA+B,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CACxE,CAAC;AAEF,MAAM,MAAM,wCAAwC,GAAG;IACnD,QAAQ,CAAC,oBAAoB,EAAE,IAAI,CAAC;IACpC,QAAQ,CAAC,eAAe,CAAC,EAAE,yBAAyB,GAAG,SAAS,CAAC;IACjE,QAAQ,CAAC,yCAAyC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3E,CAAC;AAEF,MAAM,MAAM,0CAA0C,GAAG;IACrD,QAAQ,CAAC,oBAAoB,CAAC,EAAE,KAAK,GAAG,SAAS,CAAC;CACrD,CAAC;AAEF,KAAK,wCAAwC,GAAG,SAAS;IACrD,wCAAwC;IACxC,0CAA0C;CAC7C,CAAC;AAEF,MAAM,MAAM,gCAAgC,GAAG,wCAAwC,CAAC,MAAM,CAAC,CAAC;AAEhG,MAAM,MAAM,wBAAwB,GAAG;IACnC,QAAQ,CAAC,SAAS,CAAC,EAAE,gCAAgC,GAAG,SAAS,CAAC;CACrE,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IAC/B,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,qBAAa,cAAe,SAAQ,KAAK;gBAClB,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC;CAIvE;AAqFD,wBAAgB,YAAY,CAAC,MAAM,EAAE,gBAAgB,GAAG,gBAAgB,CAEvE;AAiID,wBAAsB,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,eAAe,CAAC,CAW3F"}
package/run/run-config.js CHANGED
@@ -13,6 +13,7 @@ import { parse } from '@schema-hub/zod-error-formatter';
13
13
  import { z } from 'zod/v4';
14
14
  import { createPlainOutputRenderer } from "../engine/reporter-output.js";
15
15
  const defaultConfigFileNames = ['overkill.config.ts', 'overkill.config.js'];
16
+ const defaultResourceUsageSamplingIntervalMilliseconds = 100;
16
17
  export class RunConfigError extends Error {
17
18
  constructor(message, options) {
18
19
  super(message, options);
@@ -23,6 +24,16 @@ const defaultLoader = {
23
24
  sourceMaps: false,
24
25
  stripMode: 'strip-only'
25
26
  };
27
+ const defaultResourceUsagePolicy = {
28
+ measureResourceUsage: false,
29
+ resourceBudgets: {
30
+ activeResourceCount: null,
31
+ javaScriptEngineHeapBytes: null,
32
+ residentSetBytes: null,
33
+ residentSetGrowthBytesPerSecond: null
34
+ },
35
+ resourceUsageSamplingIntervalMilliseconds: defaultResourceUsageSamplingIntervalMilliseconds
36
+ };
26
37
  const reporterSchema = z.custom(function isReporter(value) {
27
38
  return typeof value === 'object' && value !== null &&
28
39
  Object.hasOwn(value, 'kind') &&
@@ -37,11 +48,33 @@ const outputRendererSchema = z.custom(function isOutputRenderer(value) {
37
48
  });
38
49
  const loaderSchema = z.strictObject({
39
50
  sourceMaps: z.boolean(),
40
- stripMode: z.union([z.literal('strip-only'), z.literal('transform')])
51
+ stripMode: z.literal('strip-only')
52
+ });
53
+ const positiveSafeIntegerSchema = z.number().refine(function isPositiveSafeInteger(value) {
54
+ return Number.isSafeInteger(value) && value > 0;
55
+ }, 'must be a positive safe integer');
56
+ const resourceBudgetsSchema = z.strictObject({
57
+ activeResourceCount: z.optional(z.nullable(positiveSafeIntegerSchema)),
58
+ javaScriptEngineHeapBytes: z.optional(z.nullable(positiveSafeIntegerSchema)),
59
+ residentSetBytes: z.optional(z.nullable(positiveSafeIntegerSchema)),
60
+ residentSetGrowthBytesPerSecond: z.optional(z.nullable(positiveSafeIntegerSchema))
61
+ });
62
+ const measuredMicrotestProfileSchema = z.strictObject({
63
+ measureResourceUsage: z.literal(true),
64
+ resourceBudgets: z.optional(resourceBudgetsSchema),
65
+ resourceUsageSamplingIntervalMilliseconds: z.optional(positiveSafeIntegerSchema)
66
+ });
67
+ const unmeasuredMicrotestProfileSchema = z.strictObject({
68
+ measureResourceUsage: z.optional(z.literal(false))
69
+ });
70
+ const microtestProfileSchema = z.union([measuredMicrotestProfileSchema, unmeasuredMicrotestProfileSchema]);
71
+ const profilesSchema = z.strictObject({
72
+ microtest: z.optional(microtestProfileSchema)
41
73
  });
42
74
  const projectConfigSchema = z.strictObject({
43
75
  loader: z.optional(loaderSchema),
44
76
  outputRenderer: z.optional(outputRendererSchema),
77
+ profiles: z.optional(profilesSchema),
45
78
  reporters: z.optional(z.array(reporterSchema).min(1)),
46
79
  runtimeStateDir: z.optional(z.string().min(1))
47
80
  });
@@ -99,11 +132,39 @@ function normalizeReporters(reporters) {
99
132
  }
100
133
  return [firstReporter, ...remainingReporters];
101
134
  }
135
+ function normalizeBudgetValue(value) {
136
+ return value ?? null;
137
+ }
138
+ function normalizeResourceBudgets(resourceBudgets) {
139
+ return {
140
+ activeResourceCount: normalizeBudgetValue(resourceBudgets?.activeResourceCount),
141
+ javaScriptEngineHeapBytes: normalizeBudgetValue(resourceBudgets?.javaScriptEngineHeapBytes),
142
+ residentSetBytes: normalizeBudgetValue(resourceBudgets?.residentSetBytes),
143
+ residentSetGrowthBytesPerSecond: normalizeBudgetValue(resourceBudgets?.residentSetGrowthBytesPerSecond)
144
+ };
145
+ }
146
+ function normalizeMicrotestProfile(profile) {
147
+ if (profile?.measureResourceUsage !== true) {
148
+ return defaultResourceUsagePolicy;
149
+ }
150
+ return {
151
+ measureResourceUsage: true,
152
+ resourceBudgets: normalizeResourceBudgets(profile.resourceBudgets),
153
+ resourceUsageSamplingIntervalMilliseconds: profile.resourceUsageSamplingIntervalMilliseconds ??
154
+ defaultResourceUsageSamplingIntervalMilliseconds
155
+ };
156
+ }
157
+ function normalizeProfiles(profiles) {
158
+ return {
159
+ microtest: normalizeMicrotestProfile(profiles?.microtest)
160
+ };
161
+ }
102
162
  function normalizeConfig(parsedConfig, configPath) {
103
163
  return {
104
164
  configPath,
105
165
  loader: parsedConfig.loader ?? defaultLoader,
106
166
  outputRenderer: parsedConfig.outputRenderer ?? createPlainOutputRenderer(),
167
+ profiles: normalizeProfiles(parsedConfig.profiles),
107
168
  reporters: normalizeReporters(parsedConfig.reporters),
108
169
  runtimeStateDir: parsedConfig.runtimeStateDir ?? '.overkill'
109
170
  };
@@ -1 +1 @@
1
- {"version":3,"file":"run-config.js","sourceRoot":"","sources":["../../../../source/run/run-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run-config.js","sourceRoot":"","sources":["../../../../source/run/run-config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,75 @@
1
+ import { realpath, stat } from 'node:fs/promises';
2
+ import { isAbsolute, relative, resolve } from 'node:path';
3
+ import { pathToFileURL } from 'node:url';
4
+ import { invalidRequest, noTestsCollected } from "./run-errors.js";
5
+ function toFileIdentity(path) {
6
+ return path.replaceAll('\\', '/');
7
+ }
8
+ function isOutsideCwd(relativePath) {
9
+ return relativePath === '..' || relativePath.startsWith('../') || isAbsolute(relativePath);
10
+ }
11
+ async function readRealCwd(cwd) {
12
+ try {
13
+ return await realpath(cwd);
14
+ }
15
+ catch {
16
+ return invalidRequest(`Run cwd does not exist: ${cwd}`);
17
+ }
18
+ }
19
+ async function readRealFilePath(cwd, requestedPath) {
20
+ if (requestedPath.trim().length === 0) {
21
+ invalidRequest('Run path must not be empty.');
22
+ }
23
+ try {
24
+ return await realpath(resolve(cwd, requestedPath));
25
+ }
26
+ catch {
27
+ return invalidRequest(`Run path does not exist: ${requestedPath}`);
28
+ }
29
+ }
30
+ async function assertRealFile(realPath, requestedPath) {
31
+ const fileStat = await stat(realPath);
32
+ if (!fileStat.isFile()) {
33
+ invalidRequest(`Run path must be a file: ${requestedPath}`);
34
+ }
35
+ }
36
+ function createDiscoveredRunFile(realCwd, realPath, requestedPath) {
37
+ const relativePath = relative(realCwd, realPath);
38
+ if (isOutsideCwd(relativePath)) {
39
+ invalidRequest(`Run path must stay inside cwd: ${requestedPath}`);
40
+ }
41
+ return {
42
+ file: toFileIdentity(relativePath),
43
+ href: pathToFileURL(realPath).href,
44
+ path: realPath
45
+ };
46
+ }
47
+ function assertNonEmptyDiscoveredFiles(files) {
48
+ if (files.length === 0) {
49
+ noTestsCollected('No explicit run paths were provided.');
50
+ }
51
+ }
52
+ async function discoverRunFile(realCwd, requestedPath) {
53
+ const realPath = await readRealFilePath(realCwd, requestedPath);
54
+ await assertRealFile(realPath, requestedPath);
55
+ return createDiscoveredRunFile(realCwd, realPath, requestedPath);
56
+ }
57
+ function assertUniqueRunFile(file, seenPaths) {
58
+ if (seenPaths.has(file.path)) {
59
+ invalidRequest(`Run path must not be duplicated: ${file.file}`);
60
+ }
61
+ }
62
+ export async function discoverRunFiles(request) {
63
+ const realCwd = await readRealCwd(request.cwd);
64
+ const files = await Promise.all(request.paths.map(async function discoverPath(requestedPath) {
65
+ return await discoverRunFile(realCwd, requestedPath);
66
+ }));
67
+ const seenPaths = new Set();
68
+ for (const file of files) {
69
+ assertUniqueRunFile(file, seenPaths);
70
+ seenPaths.add(file.path);
71
+ }
72
+ assertNonEmptyDiscoveredFiles(files);
73
+ return files;
74
+ }
75
+ //# sourceMappingURL=run-discovery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-discovery.js","sourceRoot":"","sources":["../../../../source/run/run-discovery.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import type { RunnerError } from '../engine/run-result.ts';
2
+ export type RunResolutionErrorCode = 'invalid-request' | 'no-tests-collected' | 'unsupported-request';
3
+ export declare class RunResolutionError extends Error {
4
+ private readonly errorCode;
5
+ constructor(message: string, options: Readonly<ErrorOptions> | undefined, code: RunResolutionErrorCode);
6
+ code(): RunResolutionErrorCode;
7
+ }
8
+ export declare class RunCollectionError extends Error {
9
+ private readonly errorSubtype;
10
+ constructor(message: string, options: Readonly<ErrorOptions>, subtype: RunnerError['subtype']);
11
+ runnerError(): RunnerError;
12
+ }
13
+ export declare function unsupportedRequest(message: string): never;
14
+ export declare function invalidRequest(message: string): never;
15
+ export declare function noTestsCollected(message: string): never;
16
+ //# sourceMappingURL=run-errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-errors.d.ts","sourceRoot":"","sources":["../../../../source/run/run-errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,MAAM,MAAM,sBAAsB,GAAG,iBAAiB,GAAG,oBAAoB,GAAG,qBAAqB,CAAC;AAEtG,qBAAa,kBAAmB,SAAQ,KAAK;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAyB;gBAEhC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,SAAS,EAAE,IAAI,EAAE,sBAAsB;IAMtG,IAAI,IAAI,sBAAsB;CAGxC;AAED,qBAAa,kBAAmB,SAAQ,KAAK;IACzC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAyB;gBAEnC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,SAAS,CAAC;IAM7F,WAAW,IAAI,WAAW;CAQpC;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,CAEzD;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,CAErD;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,CAEvD"}
@@ -0,0 +1,37 @@
1
+ export class RunResolutionError extends Error {
2
+ errorCode;
3
+ constructor(message, options, code) {
4
+ super(message, options);
5
+ this.name = 'RunResolutionError';
6
+ this.errorCode = code;
7
+ }
8
+ code() {
9
+ return this.errorCode;
10
+ }
11
+ }
12
+ export class RunCollectionError extends Error {
13
+ errorSubtype;
14
+ constructor(message, options, subtype) {
15
+ super(message, options);
16
+ this.name = 'RunCollectionError';
17
+ this.errorSubtype = subtype;
18
+ }
19
+ runnerError() {
20
+ return {
21
+ attributedTo: null,
22
+ cause: this.cause,
23
+ message: this.message,
24
+ subtype: this.errorSubtype
25
+ };
26
+ }
27
+ }
28
+ export function unsupportedRequest(message) {
29
+ throw new RunResolutionError(message, undefined, 'unsupported-request');
30
+ }
31
+ export function invalidRequest(message) {
32
+ throw new RunResolutionError(message, undefined, 'invalid-request');
33
+ }
34
+ export function noTestsCollected(message) {
35
+ throw new RunResolutionError(message, undefined, 'no-tests-collected');
36
+ }
37
+ //# sourceMappingURL=run-errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-errors.js","sourceRoot":"","sources":["../../../../source/run/run-errors.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IACxB,SAAS,CAAyB;IAEnD,YAAmB,OAAe,EAAE,OAA2C,EAAE,IAA4B;QACzG,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;QACjC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IAC1B,CAAC;IAEM,IAAI;QACP,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;CACJ;AAED,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IACxB,YAAY,CAAyB;IAEtD,YAAmB,OAAe,EAAE,OAA+B,EAAE,OAA+B;QAChG,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;QACjC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;IAChC,CAAC;IAEM,WAAW;QACd,OAAO;YACH,YAAY,EAAE,IAAI;YAClB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO,EAAE,IAAI,CAAC,YAAY;SAC7B,CAAC;IACN,CAAC;CACJ;AAED,MAAM,UAAU,kBAAkB,CAAC,OAAe;IAC9C,MAAM,IAAI,kBAAkB,CAAC,OAAO,EAAE,SAAS,EAAE,qBAAqB,CAAC,CAAC;AAC5E,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAAe;IAC1C,MAAM,IAAI,kBAAkB,CAAC,OAAO,EAAE,SAAS,EAAE,iBAAiB,CAAC,CAAC;AACxE,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,OAAe;IAC5C,MAAM,IAAI,kBAAkB,CAAC,OAAO,EAAE,SAAS,EAAE,oBAAoB,CAAC,CAAC;AAC3E,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { type RunOrchestrator } from './run.ts';
2
+ export declare const orchestrator: RunOrchestrator;
3
+ //# sourceMappingURL=run-orchestrator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-orchestrator.d.ts","sourceRoot":"","sources":["../../../../source/run/run-orchestrator.ts"],"names":[],"mappings":"AAMA,OAAO,EAAyB,KAAK,eAAe,EAAE,MAAM,UAAU,CAAC;AAiBvE,eAAO,MAAM,YAAY,EAAE,eAwBzB,CAAC"}
@@ -0,0 +1,43 @@
1
+ import { randomBytes } from 'node:crypto';
2
+ import { createWallClock } from '@enormora/wall-clock';
3
+ import { createExecute } from "../engine/execution.js";
4
+ import { createReporterDispatcher } from "../engine/reporter-dispatcher.js";
5
+ import { defaultRunEngine } from "./default-run-engine.js";
6
+ import { createNodeResourceUsageTracker } from "./resource-usage.js";
7
+ import { createRunOrchestrator } from "./run.js";
8
+ const seedByteLength = 8;
9
+ const defaultWallClock = createWallClock();
10
+ function createDefaultSeed() {
11
+ return randomBytes(seedByteLength).readBigUInt64BE();
12
+ }
13
+ function writeStdoutLine(line) {
14
+ process.stdout.write(`${line}\n`);
15
+ }
16
+ function writeStderrLine(line) {
17
+ process.stderr.write(`${line}\n`);
18
+ }
19
+ export const orchestrator = createRunOrchestrator({
20
+ createSeed: createDefaultSeed,
21
+ createResourceUsageTracker(options) {
22
+ return createNodeResourceUsageTracker(defaultWallClock, options);
23
+ },
24
+ defaultEngine: defaultRunEngine,
25
+ execute: createExecute({
26
+ reporterDispatcher: createReporterDispatcher({
27
+ stderr: { writeLine: writeStderrLine },
28
+ stdout: { writeLine: writeStdoutLine },
29
+ wallClock: defaultWallClock
30
+ }),
31
+ wallClock: defaultWallClock
32
+ }),
33
+ node: {
34
+ arch: process.arch,
35
+ platform: process.platform,
36
+ version: process.versions.node
37
+ },
38
+ readStartedAt() {
39
+ const startedAt = new Date(defaultWallClock.currentTimestampInMilliseconds);
40
+ return startedAt.toISOString();
41
+ }
42
+ });
43
+ //# sourceMappingURL=run-orchestrator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-orchestrator.js","sourceRoot":"","sources":["../../../../source/run/run-orchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,8BAA8B,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAAE,qBAAqB,EAAwB,MAAM,UAAU,CAAC;AAEvE,MAAM,cAAc,GAAG,CAAC,CAAC;AACzB,MAAM,gBAAgB,GAAG,eAAe,EAAE,CAAC;AAE3C,SAAS,iBAAiB;IACtB,OAAO,WAAW,CAAC,cAAc,CAAC,CAAC,eAAe,EAAE,CAAC;AACzD,CAAC;AAED,SAAS,eAAe,CAAC,IAAY;IACjC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC;AACtC,CAAC;AAED,SAAS,eAAe,CAAC,IAAY;IACjC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,CAAC,MAAM,YAAY,GAAoB,qBAAqB,CAAC;IAC/D,UAAU,EAAE,iBAAiB;IAC7B,0BAA0B,CAAC,OAAO;QAC9B,OAAO,8BAA8B,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;IACrE,CAAC;IACD,aAAa,EAAE,gBAAgB;IAC/B,OAAO,EAAE,aAAa,CAAC;QACnB,kBAAkB,EAAE,wBAAwB,CAAC;YACzC,MAAM,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE;YACtC,MAAM,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE;YACtC,SAAS,EAAE,gBAAgB;SAC9B,CAAC;QACF,SAAS,EAAE,gBAAgB;KAC9B,CAAC;IACF,IAAI,EAAE;QACF,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI;KACjC;IACD,aAAa;QACT,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,gBAAgB,CAAC,8BAA8B,CAAC,CAAC;QAE5E,OAAO,SAAS,CAAC,WAAW,EAAE,CAAC;IACnC,CAAC;CACJ,CAAC,CAAC"}