@overkill-dev/resources 0.0.11 → 0.0.12

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 (54) hide show
  1. package/attachments/attachment-context.d.ts +5 -1
  2. package/attachments/attachment-context.d.ts.map +1 -1
  3. package/attachments/attachment-context.js +10 -0
  4. package/attachments/attachment-context.js.map +1 -1
  5. package/attachments/failure-artifact-stream.js +147 -0
  6. package/attachments/failure-artifact-stream.js.map +1 -0
  7. package/attachments/resource-failure-context.js +45 -0
  8. package/attachments/resource-failure-context.js.map +1 -0
  9. package/engine/identity.d.ts +5 -0
  10. package/engine/identity.d.ts.map +1 -1
  11. package/engine/identity.js +41 -0
  12. package/engine/identity.js.map +1 -0
  13. package/engine/run-artifact.d.ts +1 -1
  14. package/engine/run-artifact.d.ts.map +1 -1
  15. package/engine/runtime-attachment.d.ts +26 -6
  16. package/engine/runtime-attachment.d.ts.map +1 -1
  17. package/engine/runtime-attachment.js +7 -0
  18. package/engine/runtime-attachment.js.map +1 -0
  19. package/package-version.js +31 -0
  20. package/package-version.js.map +1 -0
  21. package/package.json +9 -3
  22. package/packages/resources/attachment-context.entry-point.d.ts +1 -1
  23. package/packages/resources/attachment-context.entry-point.d.ts.map +1 -1
  24. package/packages/resources/attachment-context.entry-point.js +1 -1
  25. package/packages/resources/attachment-context.entry-point.js.map +1 -1
  26. package/packages/resources/resources.entry-point.d.ts +2 -0
  27. package/packages/resources/resources.entry-point.d.ts.map +1 -1
  28. package/packages/resources/resources.entry-point.js +1 -0
  29. package/packages/resources/resources.entry-point.js.map +1 -1
  30. package/readme.md +28 -1
  31. package/resources/failure-artifacts.d.ts +49 -0
  32. package/resources/failure-artifacts.d.ts.map +1 -0
  33. package/resources/failure-artifacts.js +34 -0
  34. package/resources/failure-artifacts.js.map +1 -0
  35. package/resources/http-request-attribution.js +23 -0
  36. package/resources/http-request-attribution.js.map +1 -0
  37. package/resources/local-http-failure-capture.js +43 -0
  38. package/resources/local-http-failure-capture.js.map +1 -0
  39. package/resources/local-http-service-resource.d.ts.map +1 -1
  40. package/resources/local-http-service-resource.js +18 -7
  41. package/resources/local-http-service-resource.js.map +1 -1
  42. package/resources/local-http-transcript-observer.js +14 -21
  43. package/resources/local-http-transcript-observer.js.map +1 -1
  44. package/resources/local-process-service-resource.d.ts +1 -1
  45. package/resources/local-process-service-resource.d.ts.map +1 -1
  46. package/resources/local-process-service-resource.js +85 -12
  47. package/resources/local-process-service-resource.js.map +1 -1
  48. package/resources/simulated-http-server-resource.d.ts +1 -1
  49. package/resources/simulated-http-server-resource.d.ts.map +1 -1
  50. package/resources/simulated-http-server-resource.js +27 -1
  51. package/resources/simulated-http-server-resource.js.map +1 -1
  52. package/sbom.cdx.json +28 -11
  53. package/stored-value.js +12 -0
  54. package/stored-value.js.map +1 -0
@@ -0,0 +1,49 @@
1
+ import type { JsonValue, ReadonlyDeep } from 'type-fest';
2
+ import type { AttemptId, WorkId } from '../engine/identity.ts';
3
+ import type { RuntimeAttachmentArtifact, RuntimeAttachments } from '../engine/runtime-attachment.ts';
4
+ import type { AnyResourceDefinition, Awaitable } from './resource-definition-shape.ts';
5
+ export type SimulationWitnessInput = {
6
+ readonly producedBy: {
7
+ readonly library: string;
8
+ readonly libraryVersion: string;
9
+ };
10
+ readonly simulation: {
11
+ readonly name: string;
12
+ readonly payload: ReadonlyDeep<JsonValue>;
13
+ };
14
+ readonly scenario: string;
15
+ readonly seed: bigint | null;
16
+ readonly runtimeSnapshot: ReadonlyDeep<JsonValue>;
17
+ readonly faultConfiguration: ReadonlyDeep<JsonValue>;
18
+ };
19
+ export type SimulationWitnessArtifact = RuntimeAttachmentArtifact & {
20
+ readonly id: RuntimeAttachmentArtifact['id'] & {
21
+ readonly subtype: 'witness';
22
+ };
23
+ readonly source: 'native';
24
+ };
25
+ export type FailureArtifactAttachments = RuntimeAttachments & {
26
+ readonly witness: (input: SimulationWitnessInput) => Promise<SimulationWitnessArtifact>;
27
+ };
28
+ type FailureSubject = Pick<AnyResourceDefinition, 'acquire' | 'dependencies' | 'dispose' | 'name' | 'requirements' | 'scenarios' | 'scope'>;
29
+ type CaptureHandle<Resource extends FailureSubject> = {
30
+ readonly handle: Awaited<ReturnType<Resource['acquire']>>;
31
+ readonly resource: string;
32
+ readonly scenarios: Readonly<Record<string, string>>;
33
+ readonly signal: AbortSignal;
34
+ };
35
+ type AttemptCapture = {
36
+ readonly kind: 'attempt';
37
+ readonly work: WorkId;
38
+ readonly attempt: AttemptId;
39
+ readonly attachments: FailureArtifactAttachments;
40
+ };
41
+ type LifetimeCapture = {
42
+ readonly kind: 'lifetime';
43
+ readonly attachments: RuntimeAttachments;
44
+ };
45
+ type Capture = AttemptCapture | LifetimeCapture;
46
+ export type ResourceFailureCapture<Resource extends FailureSubject> = Capture & CaptureHandle<Resource>;
47
+ export declare function withFailureArtifacts<Resource extends FailureSubject>(resource: Resource, prepare: (capture: ResourceFailureCapture<Resource>) => Awaitable<void>): Resource;
48
+ export {};
49
+ //# sourceMappingURL=failure-artifacts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"failure-artifacts.d.ts","sourceRoot":"","sources":["../../../../source/resources/failure-artifacts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,KAAK,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrG,OAAO,KAAK,EAAE,qBAAqB,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAEvF,MAAM,MAAM,sBAAsB,GAAG;IACjC,QAAQ,CAAC,UAAU,EAAE;QAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;KAAE,CAAC;IACpF,QAAQ,CAAC,UAAU,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;KAAE,CAAC;IAC3F,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,eAAe,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;IAClD,QAAQ,CAAC,kBAAkB,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;CACxD,CAAC;AACF,MAAM,MAAM,yBAAyB,GAAG,yBAAyB,GAAG;IAChE,QAAQ,CAAC,EAAE,EAAE,yBAAyB,CAAC,IAAI,CAAC,GAAG;QAAE,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC;KAAE,CAAC;IAChF,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;CAC7B,CAAC;AACF,MAAM,MAAM,0BAA0B,GAAG,kBAAkB,GAAG;IAC1D,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,sBAAsB,KAAK,OAAO,CAAC,yBAAyB,CAAC,CAAC;CAC3F,CAAC;AACF,KAAK,cAAc,GAAG,IAAI,CACtB,qBAAqB,EACrB,SAAS,GAAG,cAAc,GAAG,SAAS,GAAG,MAAM,GAAG,cAAc,GAAG,WAAW,GAAG,OAAO,CAC3F,CAAC;AAEF,KAAK,aAAa,CAAC,QAAQ,SAAS,cAAc,IAAI;IAClD,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAC1D,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACrD,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;CAChC,CAAC;AACF,KAAK,cAAc,GAAG;IAClB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,0BAA0B,CAAC;CACpD,CAAC;AACF,KAAK,eAAe,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,WAAW,EAAE,kBAAkB,CAAC;CAAE,CAAC;AAChG,KAAK,OAAO,GAAG,cAAc,GAAG,eAAe,CAAC;AAChD,MAAM,MAAM,sBAAsB,CAAC,QAAQ,SAAS,cAAc,IAAI,OAAO,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;AAIxG,wBAAgB,oBAAoB,CAAC,QAAQ,SAAS,cAAc,EAChE,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,CAAC,OAAO,EAAE,sBAAsB,CAAC,QAAQ,CAAC,KAAK,SAAS,CAAC,IAAI,CAAC,GACxE,QAAQ,CA8BV;AAED"}
@@ -0,0 +1,34 @@
1
+ const preparationKey = Symbol.for('@overkill-dev/resource-failure-preparation/v1');
2
+ export function withFailureArtifacts(resource, prepare) {
3
+ const previous = Reflect.get(resource, preparationKey);
4
+ return Object.freeze({
5
+ ...resource,
6
+ async [preparationKey](capture) {
7
+ const callbacks = [
8
+ async function preparePrevious() {
9
+ if (typeof previous === 'function') {
10
+ await Reflect.apply(previous, undefined, [capture]);
11
+ }
12
+ },
13
+ async function prepareCurrent() {
14
+ await prepare(capture);
15
+ }
16
+ ];
17
+ const failures = [];
18
+ for (const callback of callbacks) {
19
+ const [result] = await Promise.allSettled([callback()]);
20
+ if (result.status === 'rejected') {
21
+ failures.push(result.reason);
22
+ }
23
+ }
24
+ if (failures.length === 1 && failures[0] instanceof Error) {
25
+ throw failures[0];
26
+ }
27
+ if (failures.length > 0) {
28
+ throw new AggregateError(failures, 'Resource failure artifact preparation failed.');
29
+ }
30
+ }
31
+ });
32
+ }
33
+
34
+ //# sourceMappingURL=failure-artifacts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"failure-artifacts.js","sourceRoot":"","sources":["../../../../source/resources/failure-artifacts.ts"],"names":[],"mappings":"AAyCA,MAAM,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;AAEnF,MAAM,UAAU,oBAAoB,CAChC,QAAkB,EAClB,OAAuE;IAEvE,MAAM,QAAQ,GAAY,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;IAChE,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,GAAG,QAAQ;QACX,KAAK,CAAC,CAAC,cAAc,CAAC,CAAC,OAAyC;YAC5D,MAAM,SAAS,GAAG;gBACd,KAAK,UAAU,eAAe;oBAC1B,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE,CAAC;wBACjC,MAAM,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,SAAS,EAAE,CAAE,OAAO,CAAE,CAAC,CAAC;oBAC1D,CAAC;gBACL,CAAC;gBACD,KAAK,UAAU,cAAc;oBACzB,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;gBAC3B,CAAC;aACJ,CAAC;YACF,MAAM,QAAQ,GAAc,EAAE,CAAC;YAC/B,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;gBAC/B,MAAM,CAAE,MAAM,CAAE,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,CAAE,QAAQ,EAAE,CAAE,CAAC,CAAC;gBAC5D,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;oBAC/B,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBACjC,CAAC;YACL,CAAC;YACD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,YAAY,KAAK,EAAE,CAAC;gBACxD,MAAM,QAAQ,CAAC,CAAC,CAAC,CAAC;YACtB,CAAC;YACD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtB,MAAM,IAAI,cAAc,CAAC,QAAQ,EAAE,+CAA+C,CAAC,CAAC;YACxF,CAAC;QACL,CAAC;KACJ,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,23 @@
1
+ export function createHttpRequestAttribution() {
2
+ const requests = new Map();
3
+ return {
4
+ remember(identity, scope, request) {
5
+ requests.set(identity, [...requests.get(identity) ?? [], { scope, undiciRequest: request }]);
6
+ },
7
+ take(identity) {
8
+ const pending = requests.get(identity) ?? [];
9
+ const first = pending[0];
10
+ if (first === undefined) {
11
+ return null;
12
+ }
13
+ const ambiguous = pending.some(function differentScope(request) {
14
+ return request.scope !== first.scope;
15
+ });
16
+ requests.set(identity, pending.slice(1).map(function retainedScope(request) {
17
+ return ambiguous ? { scope: null, undiciRequest: null } : request;
18
+ }));
19
+ return ambiguous ? { scope: null, undiciRequest: null } : first;
20
+ }
21
+ };
22
+ }
23
+ //# sourceMappingURL=http-request-attribution.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-request-attribution.js","sourceRoot":"","sources":["../../../../source/resources/http-request-attribution.ts"],"names":[],"mappings":"AAcA,MAAM,UAAU,4BAA4B;IACxC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA0C,CAAC;IACnE,OAAO;QACH,QAAQ,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO;YAC7B,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,CAAE,CAAC,CAAC;QACnG,CAAC;QACD,IAAI,CAAC,QAAQ;YACT,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YAC7C,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YACzB,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACtB,OAAO,IAAI,CAAC;YAChB,CAAC;YACD,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,cAAc,CAAC,OAAO;gBAC1D,OAAO,OAAO,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,CAAC;YACzC,CAAC,CAAC,CAAC;YACH,QAAQ,CAAC,GAAG,CACR,QAAQ,EACR,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,aAAa,CAAC,OAAO;gBAC/C,OAAO,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;YACtE,CAAC,CAAC,CACL,CAAC;YACF,OAAO,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;QACpE,CAAC;KACJ,CAAC;AACN,CAAC"}
@@ -0,0 +1,43 @@
1
+ import { createFailureArtifactStream } from "../attachments/failure-artifact-stream.js";
2
+ import { currentResourceFailureContext, attemptFailureContext, transcriptAttempt } from "../attachments/resource-failure-context.js";
3
+ import { observeTranscriptEntries, httpTranscriptArtifactEntry } from "@overkill-dev/simulation/transcript";
4
+ export function observeHttpFailureArtifacts(name, view) {
5
+ const currentContext = currentResourceFailureContext();
6
+ if (currentContext === null) {
7
+ return null;
8
+ }
9
+ const failureContext = currentContext;
10
+ const streams = new Map();
11
+ let failure = null;
12
+ function appendEntry(entry, scope) {
13
+ const identity = transcriptAttempt(scope);
14
+ const owner = identity === null ? failureContext : attemptFailureContext(name, identity.work, identity.attempt);
15
+ const stream = streams.get(scope) ??
16
+ createFailureArtifactStream(owner, 'instrumented', 'http-transcript', 'application/x-ndjson');
17
+ if (stream === null) {
18
+ return;
19
+ }
20
+ streams.set(scope, stream);
21
+ stream.write(`${JSON.stringify(httpTranscriptArtifactEntry(entry))}\n`);
22
+ }
23
+ const stop = observeTranscriptEntries(view, function captureEntry(entry, scope) {
24
+ try {
25
+ appendEntry(entry, scope);
26
+ }
27
+ catch (error) {
28
+ failure = new Error('HTTP transcript capture failed.', { cause: error });
29
+ }
30
+ });
31
+ return {
32
+ async close() {
33
+ stop();
34
+ await Promise.all(Array.from(streams.values(), async function closeHttpCapture(stream) {
35
+ return stream.close();
36
+ }));
37
+ if (failure !== null) {
38
+ throw failure;
39
+ }
40
+ }
41
+ };
42
+ }
43
+ //# sourceMappingURL=local-http-failure-capture.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-http-failure-capture.js","sourceRoot":"","sources":["../../../../source/resources/local-http-failure-capture.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAA8B,MAAM,2CAA2C,CAAC;AACpH,OAAO,EACH,6BAA6B,EAC7B,qBAAqB,EACrB,iBAAiB,EACpB,MAAM,4CAA4C,CAAC;AACpD,OAAO,EACH,wBAAwB,EACxB,2BAA2B,EAG9B,MAAM,qCAAkD,CAAC;AAG1D,MAAM,UAAU,2BAA2B,CAAC,IAAY,EAAE,IAA6B;IACnF,MAAM,cAAc,GAAG,6BAA6B,EAAE,CAAC;IACvD,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,MAAM,cAAc,GAAG,cAAc,CAAC;IACtC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAiD,CAAC;IACzE,IAAI,OAAO,GAAiB,IAAI,CAAC;IACjC,SAAS,WAAW,CAChB,KAAwD,EACxD,KAA6B;QAE7B,MAAM,QAAQ,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC1C,MAAM,KAAK,GAAG,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,qBAAqB,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;QAChH,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;YAC7B,2BAA2B,CAAC,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,sBAAsB,CAAC,CAAC;QAClG,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YAClB,OAAO;QACX,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC3B,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,2BAA2B,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;IAC5E,CAAC;IACD,MAAM,IAAI,GAAG,wBAAwB,CAAC,IAAI,EAAE,SAAS,YAAY,CAAC,KAAK,EAAE,KAAK;QAC1E,IAAI,CAAC;YACD,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC9B,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACtB,OAAO,GAAG,IAAI,KAAK,CAAC,iCAAiC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QAC7E,CAAC;IACL,CAAC,CAAC,CAAC;IACH,OAAO;QACH,KAAK,CAAC,KAAK;YACP,IAAI,EAAE,CAAC;YACP,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,KAAK,UAAU,gBAAgB,CAAC,MAAM;gBACjF,OAAO,MAAM,CAAC,KAAK,EAAE,CAAC;YAC1B,CAAC,CAAC,CAAC,CAAC;YACJ,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;gBACnB,MAAM,OAAO,CAAC;YAClB,CAAC;QACL,CAAC;KACJ,CAAC;AACN,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"local-http-service-resource.d.ts","sourceRoot":"","sources":["../../../../source/resources/local-http-service-resource.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"local-http-service-resource.d.ts","sourceRoot":"","sources":["../../../../source/resources/local-http-service-resource.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { captureErrorHttpTranscript, emptyTranscriptView } from "@overkill-dev/simulation/transcript";
2
+ import { observeHttpFailureArtifacts } from "./local-http-failure-capture.js";
2
3
  import { defineLocalServiceResource, isProjectedLocalServiceScope } from "./local-service-resource.js";
3
4
  import { observeLocalHttpServer } from "./local-http-transcript-observer.js";
4
5
  function serverEndpoint(server, host) {
@@ -64,8 +65,16 @@ function customTranscript(policy, server) {
64
65
  return captureErrorHttpTranscript(error);
65
66
  }
66
67
  }
68
+ function serviceTranscript(server, baseUrl, policy, scope) {
69
+ if (policy === null) {
70
+ const observer = observeLocalHttpServer(server, baseUrl, scope === 'per-case' ? 'attempt' : 'lifetime');
71
+ return { view: observer.transcript, observer };
72
+ }
73
+ return { view: customTranscript(policy, server), observer: null };
74
+ }
67
75
  function localHttpDefinition(input, policy) {
68
76
  const observers = new WeakMap();
77
+ const captures = new WeakMap();
69
78
  return {
70
79
  name: input.name,
71
80
  scope: input.scope,
@@ -78,14 +87,14 @@ function localHttpDefinition(input, policy) {
78
87
  async ready(server, context) {
79
88
  await listen(server, context.address);
80
89
  const endpoint = serverEndpoint(server, context.address.host);
81
- const baseUrl = `http://${endpoint.host}:${endpoint.port}`;
82
- const transcript = policy === null
83
- ? observeLocalHttpServer(server, baseUrl)
84
- : null;
85
- if (transcript !== null) {
86
- observers.set(server, transcript);
90
+ const { view, observer } = serviceTranscript(server, `http://${endpoint.host}:${endpoint.port}`, policy, input.scope);
91
+ if (observer !== null) {
92
+ observers.set(server, observer);
93
+ }
94
+ const capture = policy?.kind === 'disabled' ? null : observeHttpFailureArtifacts(input.name, view);
95
+ if (capture !== null) {
96
+ captures.set(server, capture);
87
97
  }
88
- const view = transcript?.transcript ?? customTranscript(policy ?? { kind: 'disabled' }, server);
89
98
  return withTranscript(input.handle(localHttpServiceHandle(endpoint, view), server, context), view);
90
99
  },
91
100
  async dispose(server, context) {
@@ -95,6 +104,8 @@ function localHttpDefinition(input, policy) {
95
104
  finally {
96
105
  observers.get(server)?.dispose();
97
106
  observers.delete(server);
107
+ await captures.get(server)?.close();
108
+ captures.delete(server);
98
109
  }
99
110
  await input.dispose(server, context);
100
111
  }
@@ -1 +1 @@
1
- {"version":3,"file":"local-http-service-resource.js","sourceRoot":"","sources":["../../../../source/resources/local-http-service-resource.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"local-http-service-resource.js","sourceRoot":"","sources":["../../../../source/resources/local-http-service-resource.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import diagnosticsChannel from 'node:diagnostics_channel';
2
2
  import { IncomingMessage, STATUS_CODES } from 'node:http';
3
3
  import { createHttpTranscriptRecorder, httpTranscriptBodyByteLimit, recordedHttpBody, recordedHttpError } from "@overkill-dev/simulation/transcript";
4
+ import { createHttpRequestAttribution } from "./http-request-attribution.js";
4
5
  const headerPairLength = 2;
5
6
  const channels = Object.freeze({
6
7
  serverFinish: 'http.server.response.finish',
@@ -140,11 +141,12 @@ function responseSnapshot(response, body) {
140
141
  statusText: responseStatusText(response.statusCode, response.statusText)
141
142
  };
142
143
  }
143
- function createObserverState(server, baseUrl) {
144
+ function createObserverState(server, baseUrl, fallbackAttribution) {
144
145
  return {
146
+ fallbackAttribution,
145
147
  activeRequests: new Set(),
146
148
  baseUrl,
147
- expectedByRequest: new Map(),
149
+ expectedRequests: createHttpRequestAttribution(),
148
150
  listeners: new Map(),
149
151
  recorder: createHttpTranscriptRecorder(),
150
152
  requests: new WeakMap(),
@@ -169,10 +171,7 @@ function observeUndiciCreate(state, message) {
169
171
  });
170
172
  state.undiciRequests.add(diagnostic.request);
171
173
  const identity = undiciRequestIdentity(diagnostic.request, url);
172
- state.expectedByRequest.set(identity, [
173
- ...state.expectedByRequest.get(identity) ?? [],
174
- { scope: state.recorder.currentScope(), undiciRequest: diagnostic.request }
175
- ]);
174
+ state.expectedRequests.remember(identity, state.recorder.currentScope(), diagnostic.request);
176
175
  }
177
176
  function observeNodeClientStart(state, message) {
178
177
  if (!isRecord(message) || !isObservedNodeClientRequest(message.request)) {
@@ -183,28 +182,22 @@ function observeNodeClientStart(state, message) {
183
182
  return;
184
183
  }
185
184
  const identity = requestIdentity(message.request.method, url);
186
- state.expectedByRequest.set(identity, [
187
- ...state.expectedByRequest.get(identity) ?? [],
188
- { scope: state.recorder.currentScope(), undiciRequest: null }
189
- ]);
185
+ state.expectedRequests.remember(identity, state.recorder.currentScope(), null);
190
186
  }
191
- function takeExpectedRequest(state, identity) {
192
- const expected = state.expectedByRequest.get(identity) ?? [];
193
- const request = expected[0] ?? null;
194
- state.expectedByRequest.set(identity, expected.slice(1));
195
- return request;
187
+ function fallbackTranscriptScope(state) {
188
+ return state.fallbackAttribution === 'attempt' ? state.recorder.currentScope() : null;
196
189
  }
197
190
  function pairUndiciRequest(state, url, serverRequest) {
198
- const expected = takeExpectedRequest(state, requestIdentity(serverRequest.method ?? 'GET', url));
191
+ const expected = state.expectedRequests.take(requestIdentity(serverRequest.method ?? 'GET', url));
199
192
  if (expected === null) {
200
- return state.recorder.currentScope();
193
+ return fallbackTranscriptScope(state);
201
194
  }
202
195
  if (expected.undiciRequest === null) {
203
196
  return expected.scope;
204
197
  }
205
198
  const observation = state.undici.get(expected.undiciRequest);
206
199
  if (observation === undefined) {
207
- return state.recorder.currentScope();
200
+ return fallbackTranscriptScope(state);
208
201
  }
209
202
  state.undici.set(expected.undiciRequest, { ...observation, serverRequest });
210
203
  return expected.scope;
@@ -342,7 +335,7 @@ function guardedObserver(state, source, observer) {
342
335
  observer(message);
343
336
  }
344
337
  catch (error) {
345
- state.recorder.recordCaptureError(source, error, state.recorder.currentScope());
338
+ state.recorder.recordCaptureError(source, error, fallbackTranscriptScope(state));
346
339
  }
347
340
  };
348
341
  }
@@ -380,8 +373,8 @@ function disposeObservers(state) {
380
373
  }
381
374
  }
382
375
  }
383
- export function observeLocalHttpServer(server, baseUrl) {
384
- const state = createObserverState(server, baseUrl);
376
+ export function observeLocalHttpServer(server, baseUrl, fallbackAttribution) {
377
+ const state = createObserverState(server, baseUrl, fallbackAttribution);
385
378
  subscribeObservers(state);
386
379
  return Object.freeze({
387
380
  dispose() {
@@ -1 +1 @@
1
- {"version":3,"file":"local-http-transcript-observer.js","sourceRoot":"","sources":["../../../../source/resources/local-http-transcript-observer.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,YAAY,EAAsD,MAAM,WAAW,CAAC;AAC9G,OAAO,EACH,4BAA4B,EAC5B,2BAA2B,EAC3B,gBAAgB,EAChB,iBAAiB,EASpB,MAAM,qCAAkD,CAAC;AAiE1D,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAC3B,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC;IAC3B,YAAY,EAAE,6BAA6B;IAC3C,WAAW,EAAE,2BAA2B;IACxC,eAAe,EAAE,2BAA2B;IAC5C,kBAAkB,EAAE,kCAAkC;IACtD,YAAY,EAAE,uBAAuB;IACrC,WAAW,EAAE,sBAAsB;IACnC,aAAa,EAAE,wBAAwB;IACvC,cAAc,EAAE,yBAAyB;CAC5C,CAAC,CAAC;AAEH,SAAS,QAAQ,CAAC,KAAc;IAC5B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC;AACvD,CAAC;AAED,SAAS,iBAAiB;IACtB,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,MAAM,MAAM,GAAiB,EAAE,CAAC;IAEhC,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,MAAM,CAAC,KAAiB;YACpB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,2BAA2B,GAAG,UAAU,CAAC,CAAC;YAExE,UAAU,IAAI,KAAK,CAAC,UAAU,CAAC;YAC/B,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;gBAChB,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;YAC/D,CAAC;QACL,CAAC;QACD,IAAI;YACA,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAEjE,OAAO,UAAU,GAAG,2BAA2B,IAAI,KAAK,KAAK,IAAI;gBAC7D,CAAC,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,kBAAkB,EAAE,UAAU,EAAE;gBACtF,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC;KACJ,CAAC,CAAC;AACP,CAAC;AAED,SAAS,eAAe,CAAC,OAA4B;IACjD,MAAM,OAAO,GAAkC,EAAE,CAAC;IAElD,KAAK,MAAM,CAAE,IAAI,EAAE,KAAK,CAAE,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACpD,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAE,KAAK,CAAE,CAAC;QAExD,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;YACxB,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACrB,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAE,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,CAAE,CAAC,CAAC,CAAC;YAC9D,CAAC;QACL,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAClC,CAAC;AAED,SAAS,eAAe,CAAC,OAA4B;IACjD,MAAM,OAAO,GAAkC,EAAE,CAAC;IAElD,KAAK,MAAM,CAAE,IAAI,EAAE,KAAK,CAAE,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACpD,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAE,KAAK,CAAE,CAAC;QAExD,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;YACxB,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACrB,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAE,IAAI,CAAC,WAAW,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,CAAE,CAAC,CAAC,CAAC;YACtE,CAAC;QACL,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAClC,CAAC;AAED,SAAS,UAAU,CAAC,OAAwB,EAAE,OAAe;IACzD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,EAAE,OAAO,CAAC,CAAC;IAEjD,OAAO,GAAG,CAAC,IAAI,CAAC;AACpB,CAAC;AAED,SAAS,wBAAwB,CAAC,KAAc;IAC5C,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,UAAU,KAAK,UAAU;QAC5D,OAAO,KAAK,CAAC,UAAU,KAAK,QAAQ;QACpC,CAAC,KAAK,CAAC,aAAa,KAAK,SAAS,IAAI,OAAO,KAAK,CAAC,aAAa,KAAK,QAAQ,CAAC,CAAC;AACvF,CAAC;AAED,SAAS,aAAa,CAAC,OAAgB,EAAE,MAAe;IACpD,IACI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,YAAY,eAAe,CAAC;QAChG,CAAC,wBAAwB,CAAC,OAAO,CAAC,QAAQ,CAAC,EAC7C,CAAC;QACC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC;AACpE,CAAC;AAED,SAAS,aAAa,CAAC,OAAgB;IACnC,OAAO,QAAQ,CAAC,OAAO,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAChG,CAAC;AAED,SAAS,SAAS,CAAC,OAAsB;IACrC,IAAI,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACzE,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAElD,OAAO,GAAG,CAAC,IAAI,CAAC;AACpB,CAAC;AAED,SAAS,2BAA2B,CAAC,KAAc;IAC/C,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,SAAS,KAAK,UAAU,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ;QAC/F,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,CAAC;AAC7E,CAAC;AAED,SAAS,aAAa,CAAC,OAAkC;IACrD,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAEvC,IACI,OAAO,IAAI,KAAK,QAAQ,EAC1B,CAAC;QACC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,OAAO,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC,CAAC;IAElE,OAAO,GAAG,CAAC,IAAI,CAAC;AACpB,CAAC;AAED,SAAS,eAAe,CAAC,MAAc,EAAE,GAAW;IAChD,OAAO,GAAG,MAAM,CAAC,WAAW,EAAE,IAAI,GAAG,EAAE,CAAC;AAC5C,CAAC;AAED,SAAS,qBAAqB,CAAC,OAAsB,EAAE,GAAW;IAC9D,IAAI,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QACrC,MAAM,IAAI,SAAS,CAAC,mDAAmD,CAAC,CAAC;IAC7E,CAAC;IAED,OAAO,eAAe,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAChD,CAAC;AAED,SAAS,cAAc,CAAC,IAAa,EAAE,KAAc;IACjD,IAAI,CAAC,CAAC,IAAI,YAAY,UAAU,CAAC,IAAI,CAAC,CAAC,KAAK,YAAY,UAAU,CAAC,EAAE,CAAC;QAClE,MAAM,IAAI,SAAS,CAAC,sDAAsD,CAAC,CAAC;IAChF,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE;QAC1C,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE;KAChC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,eAAe,CAAC,KAAc;IACnC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,gBAAgB,KAAK,CAAC,EAAE,CAAC;QACjE,MAAM,IAAI,SAAS,CAAC,sDAAsD,CAAC,CAAC;IAChF,CAAC;IAED,MAAM,YAAY,GAAuB,KAAK,CAAC;IAC/C,MAAM,OAAO,GAAkC,EAAE,CAAC;IAElD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,YAAY,CAAC,MAAM,EAAE,KAAK,IAAI,gBAAgB,EAAE,CAAC;QACzE,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/E,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAClC,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAc,EAAE,UAA8B;IACtE,OAAO,UAAU,IAAI,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;AACpD,CAAC;AAED,SAAS,gBAAgB,CAAC,QAAwB,EAAE,IAAsB;IACtE,IACI,OAAO,QAAQ,CAAC,UAAU,KAAK,QAAQ;QACvC,QAAQ,CAAC,UAAU,KAAK,SAAS,IAAI,OAAO,QAAQ,CAAC,UAAU,KAAK,QAAQ,EAC9E,CAAC;QACC,MAAM,IAAI,SAAS,CAAC,sDAAsD,CAAC,CAAC;IAChF,CAAC;IAED,OAAO;QACH,IAAI;QACJ,OAAO,EAAE,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC;QAC1C,MAAM,EAAE,QAAQ,CAAC,UAAU;QAC3B,UAAU,EAAE,kBAAkB,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC;KAC3E,CAAC;AACN,CAAC;AAED,SAAS,mBAAmB,CAAC,MAAe,EAAE,OAAe;IACzD,OAAO;QACH,cAAc,EAAE,IAAI,GAAG,EAAE;QACzB,OAAO;QACP,iBAAiB,EAAE,IAAI,GAAG,EAAE;QAC5B,SAAS,EAAE,IAAI,GAAG,EAAE;QACpB,QAAQ,EAAE,4BAA4B,EAAE;QACxC,QAAQ,EAAE,IAAI,OAAO,EAAE;QACvB,MAAM;QACN,MAAM,EAAE,IAAI,OAAO,EAAE;QACrB,cAAc,EAAE,IAAI,GAAG,EAAE;QACzB,eAAe,EAAE,IAAI,OAAO,EAAE;KACjC,CAAC;AACN,CAAC;AAED,SAAS,WAAW,CAAC,KAAoB,EAAE,GAAkB;IACzD,OAAO,GAAG,KAAK,IAAI,IAAI,CAAC,GAAG,KAAK,KAAK,CAAC,OAAO,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;AAC1F,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAoB,EAAE,OAAgB;IAC/D,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IAC1C,MAAM,GAAG,GAAG,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAEvE,IAAI,UAAU,KAAK,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;QAClD,OAAO;IACX,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,EAAE;QACjC,YAAY,EAAE,iBAAiB,EAAE;QACjC,aAAa,EAAE,IAAI;KACtB,CAAC,CAAC;IACH,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAC7C,MAAM,QAAQ,GAAG,qBAAqB,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAEhE,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,EAAE;QAClC,GAAG,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE;QAC9C,EAAE,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,YAAY,EAAE,EAAE,aAAa,EAAE,UAAU,CAAC,OAAO,EAAE;KAC9E,CAAC,CAAC;AACP,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAoB,EAAE,OAAgB;IAClE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACtE,OAAO;IACX,CAAC;IAED,MAAM,GAAG,GAAG,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAE3C,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;QAC3B,OAAO;IACX,CAAC;IAED,MAAM,QAAQ,GAAG,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAE9D,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,EAAE;QAClC,GAAG,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE;QAC9C,EAAE,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,YAAY,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE;KAChE,CAAC,CAAC;AACP,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAoB,EAAE,QAAgB;IAC/D,MAAM,QAAQ,GAAG,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC7D,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IAEpC,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAEzD,OAAO,OAAO,CAAC;AACnB,CAAC;AAED,SAAS,iBAAiB,CACtB,KAAoB,EACpB,GAAW,EACX,aAA8B;IAE9B,MAAM,QAAQ,GAAG,mBAAmB,CAAC,KAAK,EAAE,eAAe,CAAC,aAAa,CAAC,MAAM,IAAI,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;IAEjG,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACpB,OAAO,KAAK,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;IACzC,CAAC;IAED,IAAI,QAAQ,CAAC,aAAa,KAAK,IAAI,EAAE,CAAC;QAClC,OAAO,QAAQ,CAAC,KAAK,CAAC;IAC1B,CAAC;IAED,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IAE7D,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,KAAK,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,aAAa,EAAE,EAAE,GAAG,WAAW,EAAE,aAAa,EAAE,CAAC,CAAC;IAE5E,OAAO,QAAQ,CAAC,KAAK,CAAC;AAC1B,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAoB,EAAE,OAAgB;IAC9D,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAExD,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;QACtB,OAAO;IACX,CAAC;IAED,MAAM,GAAG,GAAG,UAAU,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAC1D,MAAM,IAAI,GAAG,iBAAiB,EAAE,CAAC;IAEjC,MAAM,KAAK,GAAG,iBAAiB,CAAC,KAAK,EAAE,GAAG,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;IAChE,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,EAAE;QACnC,IAAI;QACJ,OAAO,EAAE;YACL,IAAI,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,mBAAmB,EAAE;YAC1D,OAAO,EAAE,eAAe,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC;YACpD,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,MAAM,IAAI,KAAK;YAC1C,GAAG;SACN;QACD,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,YAAY,EAAE;QACvC,KAAK;KACR,CAAC,CAAC;IACH,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAC7C,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,aAAa,CAAC,KAAoB,EAAE,OAAwB;IACjE,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,aAAa;QAChF,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,aAAa,KAAK,OAAO,CAAC;IACtE,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAoB,EAAE,OAAgB;IAC/D,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACxD,MAAM,WAAW,GAAG,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAE7F,IAAI,UAAU,KAAK,IAAI,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QACnD,OAAO;IACX,CAAC;IAED,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5C,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAChD,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;YAClB,OAAO,EAAE,IAAI;YACb,OAAO,EAAE;gBACL,IAAI,EAAE,UAAU;gBAChB,QAAQ,EAAE;oBACN,IAAI,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,gCAAgC,EAAE;oBACvE,OAAO,EAAE,eAAe,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;oBAC1D,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,UAAU;oBACtC,UAAU,EAAE,kBAAkB,CAC1B,UAAU,CAAC,QAAQ,CAAC,UAAU,EAC9B,UAAU,CAAC,QAAQ,CAAC,aAAa,CACpC;iBACJ;aACJ;YACD,OAAO,EAAE,EAAE,GAAG,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE;YAClE,QAAQ,EAAE,WAAW,CAAC,QAAQ;SACjC,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;AACL,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAoB,EAAE,OAAgB;IAC7D,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IAC1C,MAAM,WAAW,GAAG,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAE3F,OAAO,UAAU,KAAK,IAAI,IAAI,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC;AAClH,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAoB,EAAE,OAAgB;IAC7D,MAAM,UAAU,GAAG,iBAAiB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAErD,IAAI,UAAU,KAAK,IAAI,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,KAAK,YAAY,UAAU,EAAE,CAAC;QAClF,UAAU,CAAC,WAAW,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC9D,CAAC;AACL,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAoB,EAAE,OAAsB;IACrE,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC;IAE/D,IAAI,aAAa,KAAK,IAAI,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;QACxD,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IAC/C,CAAC;IACD,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC7B,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACrC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAC1C,CAAC;AAED,SAAS,uBAAuB,CAC5B,KAAoB,EACpB,UAAgD;IAEhD,MAAM,aAAa,GAAG,UAAU,EAAE,WAAW,CAAC,aAAa,CAAC;IAE5D,OAAO,aAAa,KAAK,IAAI,IAAI,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AACjH,CAAC;AAED,SAAS,gBAAgB,CACrB,KAAoB,EACpB,UAA6D;IAE7D,MAAM,iBAAiB,GAAG,uBAAuB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IACrE,MAAM,QAAQ,GAAG,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAE/D,IAAI,iBAAiB,KAAK,SAAS,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC5D,mBAAmB,CAAC,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;QAC/C,MAAM,IAAI,SAAS,CACf,oDACI,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QACjD,QAAQ,CACX,CAAC;IACN,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,CAAC;AAC3C,CAAC;AAED,SAAS,uBAAuB,CAAC,KAAoB,EAAE,OAAgB;IACnE,MAAM,UAAU,GAAG,iBAAiB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAErD,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;QACtB,OAAO;IACX,CAAC;IAED,MAAM,EAAE,QAAQ,EAAE,iBAAiB,EAAE,GAAG,gBAAgB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IAE5E,IAAI,CAAC;QACD,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;YAClB,OAAO,EAAE,IAAI;YACb,OAAO,EAAE;gBACL,IAAI,EAAE,UAAU;gBAChB,QAAQ,EAAE,gBAAgB,CAAC,QAAQ,EAAE,UAAU,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;aACnF;YACD,OAAO,EAAE,EAAE,GAAG,iBAAiB,CAAC,OAAO,EAAE,IAAI,EAAE,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE;YAC9E,QAAQ,EAAE,iBAAiB,CAAC,QAAQ;SACvC,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;YAAS,CAAC;QACP,mBAAmB,CAAC,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;IACnD,CAAC;AACL,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAoB,EAAE,OAAgB;IAChE,MAAM,UAAU,GAAG,iBAAiB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAErD,IAAI,UAAU,KAAK,IAAI,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzE,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IACpE,CAAC;AACL,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAoB,EAAE,OAAgB;IAC9D,MAAM,UAAU,GAAG,iBAAiB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACrD,MAAM,iBAAiB,GAAG,uBAAuB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IAErE,IAAI,UAAU,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5C,OAAO;IACX,CAAC;IAED,IAAI,iBAAiB,KAAK,SAAS,EAAE,CAAC;QAClC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;YAClB,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,EAAE,KAAK,EAAE,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE;YACnE,OAAO,EAAE,EAAE,GAAG,iBAAiB,CAAC,OAAO,EAAE,IAAI,EAAE,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE;YAC9E,QAAQ,EAAE,iBAAiB,CAAC,QAAQ;SACvC,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAED,mBAAmB,CAAC,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;AACnD,CAAC;AAED,SAAS,eAAe,CACpB,KAAoB,EACpB,MAA8B,EAC9B,QAAoC;IAEpC,OAAO,SAAS,aAAa,CAAC,OAAO;QACjC,IAAI,CAAC;YACD,QAAQ,CAAC,OAAO,CAAC,CAAC;QACtB,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACtB,KAAK,CAAC,QAAQ,CAAC,kBAAkB,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC;QACpF,CAAC;IACL,CAAC,CAAC;AACN,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAoB;IAC5C,MAAM,aAAa,GAAuF;QACtG,CAAE,QAAQ,CAAC,YAAY,EAAE,QAAQ,EAAE,mBAAmB,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAE;QAC/E,CAAE,QAAQ,CAAC,eAAe,EAAE,WAAW,EAAE,sBAAsB,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAE;QACxF,CAAE,QAAQ,CAAC,WAAW,EAAE,WAAW,EAAE,kBAAkB,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAE;QAChF,CAAE,QAAQ,CAAC,YAAY,EAAE,WAAW,EAAE,mBAAmB,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAE;QAClF,CAAE,QAAQ,CAAC,kBAAkB,EAAE,QAAQ,EAAE,iBAAiB,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAE;QACnF,CAAE,QAAQ,CAAC,cAAc,EAAE,QAAQ,EAAE,uBAAuB,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAE;QACrF,CAAE,QAAQ,CAAC,aAAa,EAAE,QAAQ,EAAE,oBAAoB,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAE;QACjF,CAAE,QAAQ,CAAC,WAAW,EAAE,QAAQ,EAAE,kBAAkB,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAE;KAChF,CAAC;IAEF,KAAK,MAAM,CAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAE,IAAI,aAAa,EAAE,CAAC;QACrD,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QAE1D,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACpC,kBAAkB,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACjD,CAAC;AACL,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAoB;IAC1C,KAAK,MAAM,CAAE,IAAI,EAAE,QAAQ,CAAE,IAAI,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC;QACzD,kBAAkB,CAAC,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACnD,CAAC;IAED,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE,CAAC;QAClD,MAAM,WAAW,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAEhD,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC5B,MAAM,WAAW,GAA0B;gBACvC,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,mBAAmB,EAAE;gBAC5D,OAAO,EAAE,EAAE,GAAG,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE;gBAClE,QAAQ,EAAE,WAAW,CAAC,QAAQ;aACjC,CAAC;YAEF,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;QAC1D,CAAC;IACL,CAAC;AACL,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,MAAe,EAAE,OAAe;IACnE,MAAM,KAAK,GAAG,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEnD,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAE1B,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,OAAO;YACH,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;QACD,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,UAAU;KACxC,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"local-http-transcript-observer.js","sourceRoot":"","sources":["../../../../source/resources/local-http-transcript-observer.ts"],"names":[],"mappings":"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"}
@@ -23,7 +23,7 @@ export type LocalProcessShutdown = {
23
23
  type LocalProcessChild = {
24
24
  readonly exitCode: number | null;
25
25
  readonly kill: (signal: LocalProcessSignal) => boolean;
26
- readonly once: (event: 'error' | 'exit', listener: ((code: number | null, signal: string | null) => void) | ((error: Error) => void)) => unknown;
26
+ readonly once: (event: 'close' | 'error' | 'exit', listener: ((code: number | null, signal: string | null) => void) | ((error: Error) => void)) => unknown;
27
27
  readonly signalCode: string | null;
28
28
  };
29
29
  export type LocalProcessOwner = {
@@ -1 +1 @@
1
- {"version":3,"file":"local-process-service-resource.d.ts","sourceRoot":"","sources":["../../../../source/resources/local-process-service-resource.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACR,SAAS,EACT,oBAAoB,EACpB,kBAAkB,EAClB,oBAAoB,EACpB,yBAAyB,EACzB,aAAa,EAChB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAGH,KAAK,0BAA0B,EAC/B,KAAK,0BAA0B,EAC/B,KAAK,2BAA2B,EAEhC,KAAK,4BAA4B,EAEjC,KAAK,0BAA0B,EAClC,MAAM,6BAA6B,CAAC;AAErC,MAAM,MAAM,wBAAwB,GAAG;IACnC,QAAQ,CAAC,KAAK,EAAE,MAAM,UAAU,CAAC;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,MAAM,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC7B,QAAQ,CAAC,MAAM,EAAE,wBAAwB,CAAC;IAC1C,QAAQ,CAAC,MAAM,EAAE,wBAAwB,CAAC;CAC7C,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAC9B,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACvD,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5C,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;AAErG,MAAM,MAAM,oBAAoB,GAAG;IAC/B,QAAQ,CAAC,WAAW,EAAE,kBAAkB,CAAC;IACzC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,cAAc,EAAE,kBAAkB,CAAC;CAC/C,CAAC;AAEF,KAAK,iBAAiB,GAAG;IACrB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,OAAO,CAAC;IACvD,QAAQ,CAAC,IAAI,EAAE,CACX,KAAK,EAAE,OAAO,GAAG,MAAM,EACvB,QAAQ,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC,KAC1F,OAAO,CAAC;IACb,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC5B,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,gCAAgC,CACxC,IAAI,SAAS,MAAM,EACnB,cAAc,SAAS,0BAA0B,EACjD,KAAK,SAAS,aAAa,EAC3B,YAAY,SAAS,oBAAoB,IACzC;IACA,QAAQ,CAAC,OAAO,EAAE,0BAA0B,CAAC;IAC7C,QAAQ,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,2BAA2B,CAAC,YAAY,CAAC,KAAK,SAAS,CAAC,mBAAmB,CAAC,CAAC;IACzG,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,KAAK,EAAE,CACZ,KAAK,EAAE,iBAAiB,EACxB,OAAO,EAAE,2BAA2B,CAAC,YAAY,CAAC,KACjD,SAAS,CAAC,cAAc,CAAC,CAAC;IAC/B,QAAQ,CAAC,YAAY,EAAE,SAAS,oBAAoB,EAAE,CAAC;IACvD,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,CAAC;CAC3C,CAAC;AAwCF,KAAK,4BAA4B,CAC7B,IAAI,SAAS,MAAM,EACnB,cAAc,SAAS,0BAA0B,EACjD,UAAU,SAAS,yBAAyB,EAC5C,uBAAuB,EACvB,YAAY,SAAS,oBAAoB,IACzC;IACA,QAAQ,CAAC,OAAO,EAAE,0BAA0B,CAAC;IAC7C,QAAQ,CAAC,OAAO,EAAE,gCAAgC,CAC9C,IAAI,EACJ,cAAc,EACd,0BAA0B,EAC1B,YAAY,CACf,CAAC,SAAS,CAAC,CAAC;IACb,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,QAAQ,CAAC,iBAAiB,EAAE,4BAA4B,CACpD,cAAc,EACd,UAAU,EACV,uBAAuB,EACvB,YAAY,CACf,CAAC,mBAAmB,CAAC,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,KAAK,EAAE,gCAAgC,CAC5C,IAAI,EACJ,cAAc,EACd,0BAA0B,EAC1B,YAAY,CACf,CAAC,OAAO,CAAC,CAAC;IACX,QAAQ,CAAC,YAAY,EAAE,SAAS,oBAAoB,EAAE,CAAC;IACvD,QAAQ,CAAC,KAAK,EAAE,0BAA0B,CAAC;IAC3C,QAAQ,CAAC,eAAe,EAAE,4BAA4B,CAClD,cAAc,EACd,UAAU,EACV,uBAAuB,EACvB,YAAY,CACf,CAAC,iBAAiB,CAAC,CAAC;IACrB,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,CAAC;CAC3C,CAAC;AAuPF,wBAAgB,iCAAiC,CAC7C,KAAK,CAAC,IAAI,SAAS,MAAM,EACzB,cAAc,SAAS,0BAA0B,EACjD,KAAK,SAAS,OAAO,CAAC,aAAa,EAAE,SAAS,CAAC,EAC/C,KAAK,CAAC,YAAY,SAAS,oBAAoB,EAE/C,KAAK,EAAE,gCAAgC,CAAC,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,YAAY,CAAC,GACnF,kBAAkB,CAAC,IAAI,EAAE,cAAc,EAAE,YAAY,CAAC,CAAC;AAC1D,wBAAgB,iCAAiC,CAC7C,KAAK,CAAC,IAAI,SAAS,MAAM,EACzB,cAAc,SAAS,0BAA0B,EACjD,UAAU,SAAS,yBAAyB,EAC5C,uBAAuB,EACvB,KAAK,CAAC,YAAY,SAAS,oBAAoB,EAE/C,KAAK,EAAE,4BAA4B,CAC/B,IAAI,EACJ,cAAc,EACd,UAAU,EACV,uBAAuB,EACvB,YAAY,CACf,GACF,kBAAkB,CAAC,IAAI,EAAE,cAAc,EAAE,YAAY,EAAE,uBAAuB,CAAC,CAAC"}
1
+ {"version":3,"file":"local-process-service-resource.d.ts","sourceRoot":"","sources":["../../../../source/resources/local-process-service-resource.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,8 @@
1
+ import { StringDecoder } from 'node:string_decoder';
1
2
  import { spawn } from 'node:child_process';
2
3
  import { setTimeout as wait } from 'node:timers/promises';
4
+ import { createFailureArtifactStream } from "../attachments/failure-artifact-stream.js";
5
+ import { currentResourceFailureContext } from "../attachments/resource-failure-context.js";
3
6
  import { defineLocalServiceResource, isProjectedLocalServiceScope } from "./local-service-resource.js";
4
7
  function createBoundedOutputBuffer(maxBytes) {
5
8
  let value = Buffer.alloc(0);
@@ -20,12 +23,32 @@ function createBoundedOutputBuffer(maxBytes) {
20
23
  })
21
24
  };
22
25
  }
23
- function localProcessOutput(maxBytes) {
26
+ function localProcessOutput(maxBytes, captures) {
24
27
  const stdout = createBoundedOutputBuffer(maxBytes);
25
28
  const stderr = createBoundedOutputBuffer(maxBytes);
29
+ const stdoutDecoder = new StringDecoder();
30
+ const stderrDecoder = new StringDecoder();
26
31
  return {
27
- appendStderr: stderr.append,
28
- appendStdout: stdout.append,
32
+ appendStderr(chunk) {
33
+ stderr.append(chunk);
34
+ captures.stderr?.write(stderrDecoder.write(chunk));
35
+ },
36
+ appendStdout(chunk) {
37
+ stdout.append(chunk);
38
+ captures.stdout?.write(stdoutDecoder.write(chunk));
39
+ },
40
+ finishStderr() {
41
+ const tail = stderrDecoder.end();
42
+ if (tail.length > 0) {
43
+ captures.stderr?.write(tail);
44
+ }
45
+ },
46
+ finishStdout() {
47
+ const tail = stdoutDecoder.end();
48
+ if (tail.length > 0) {
49
+ captures.stdout?.write(tail);
50
+ }
51
+ },
29
52
  output: Object.freeze({
30
53
  stderr: stderr.buffer,
31
54
  stdout: stdout.buffer
@@ -38,6 +61,8 @@ function attachOutputDrains(child, output) {
38
61
  }
39
62
  child.stdout.on('data', output.appendStdout);
40
63
  child.stderr.on('data', output.appendStderr);
64
+ child.stdout.on('end', output.finishStdout);
65
+ child.stderr.on('end', output.finishStderr);
41
66
  }
42
67
  function spawnLocalProcess(command, output) {
43
68
  const child = spawn(command.command, command.arguments, {
@@ -77,14 +102,27 @@ async function waitForProcessExit(child) {
77
102
  });
78
103
  });
79
104
  }
105
+ async function processHasExited(child) {
106
+ await waitForProcessExit(child);
107
+ return true;
108
+ }
109
+ async function processExitWithinGrace(child, milliseconds) {
110
+ const waiting = new AbortController();
111
+ const exits = [processHasExited(child), wait(milliseconds, false, { signal: waiting.signal })];
112
+ try {
113
+ return await Promise.race(exits);
114
+ }
115
+ finally {
116
+ waiting.abort();
117
+ }
118
+ }
80
119
  async function disposeLocalProcess(owner, shutdown) {
81
120
  if (owner.child.exitCode !== null || owner.child.signalCode !== null) {
82
121
  return;
83
122
  }
84
123
  owner.child.kill(shutdown.gracefulSignal);
85
- const exited = waitForProcessExit(owner.child);
86
- const result = await Promise.race([exited, wait(shutdown.graceMilliseconds, 'delay')]);
87
- if (result === 'delay') {
124
+ const graceful = await processExitWithinGrace(owner.child, shutdown.graceMilliseconds);
125
+ if (!graceful) {
88
126
  owner.child.kill(shutdown.forceSignal);
89
127
  await waitForProcessExit(owner.child);
90
128
  }
@@ -97,26 +135,61 @@ function assertProcessInput(input) {
97
135
  throw new TypeError('Local process service shutdown.graceMilliseconds must be a non-negative integer.');
98
136
  }
99
137
  }
138
+ async function captureProcessOutput(closed, stdout, stderr) {
139
+ await closed;
140
+ const closing = [stdout, stderr].flatMap(function closeCapture(capture) {
141
+ return capture === null ? [] : [capture.close()];
142
+ });
143
+ try {
144
+ await Promise.all(closing);
145
+ }
146
+ catch (error) {
147
+ return error instanceof Error ? error : new Error('Service output capture failed.', { cause: error });
148
+ }
149
+ return null;
150
+ }
151
+ function processCaptures() {
152
+ const context = currentResourceFailureContext();
153
+ return {
154
+ stdout: context === null
155
+ ? null
156
+ : createFailureArtifactStream(context, 'boundary-captured', 'stdout', 'text/plain'),
157
+ stderr: context === null
158
+ ? null
159
+ : createFailureArtifactStream(context, 'boundary-captured', 'stderr', 'text/plain')
160
+ };
161
+ }
100
162
  function localProcessDefinition(input) {
163
+ const captured = new WeakMap();
101
164
  return {
102
165
  name: input.name,
103
166
  scope: input.scope,
104
167
  requirements: input.requirements,
105
168
  dependencies: input.dependencies,
106
169
  address: input.address,
107
- async start(context) {
108
- const command = await input.command(context);
109
- const output = localProcessOutput(input.outputBufferBytes);
110
- return Object.freeze({
111
- child: spawnLocalProcess(command, output),
112
- output: output.output
170
+ async start(creation) {
171
+ const command = await input.command(creation);
172
+ const { stdout, stderr } = processCaptures();
173
+ const output = localProcessOutput(input.outputBufferBytes, { stdout, stderr });
174
+ const child = spawnLocalProcess(command, output);
175
+ const owner = Object.freeze({ child, output: output.output });
176
+ const closed = new Promise(function resolveClosedProcess(resolve) {
177
+ child.once('close', resolve);
113
178
  });
179
+ const completion = captureProcessOutput(closed, stdout, stderr);
180
+ captured.set(owner, completion);
181
+ return owner;
114
182
  },
115
183
  async ready(owner, context) {
116
184
  return await readyLocalProcess(owner, context, input);
117
185
  },
118
186
  async dispose(owner) {
119
187
  await disposeLocalProcess(owner, input.shutdown);
188
+ const error = await captured.get(owner);
189
+ if (error !== undefined && error !== null) {
190
+ throw error;
191
+ }
192
+ captured.delete(owner);
120
193
  }
121
194
  };
122
195
  }