@overkill-dev/resources 0.0.8 → 0.0.10
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.
- package/package.json +5 -3
- package/packages/resources/resources.entry-point.d.ts +2 -1
- package/packages/resources/resources.entry-point.d.ts.map +1 -1
- package/readme.md +21 -8
- package/resources/local-http-service-resource.d.ts +22 -2
- package/resources/local-http-service-resource.d.ts.map +1 -1
- package/resources/local-http-service-resource.js +47 -11
- package/resources/local-http-service-resource.js.map +1 -1
- package/resources/local-http-transcript-observer.js +393 -0
- package/resources/local-http-transcript-observer.js.map +1 -0
- package/resources/local-service-resource.d.ts +0 -1
- package/resources/local-service-resource.d.ts.map +1 -1
- package/resources/resource-definition.js.map +1 -1
- package/resources/resource-graph.d.ts +1 -20
- package/resources/resource-graph.d.ts.map +1 -1
- package/resources/resource-lifecycle-error.d.ts +0 -1
- package/resources/resource-lifecycle-error.d.ts.map +1 -1
- package/resources/resource-scenario-binding.d.ts +0 -7
- package/resources/resource-scenario-binding.d.ts.map +1 -1
- package/resources/resource-scenario.d.ts +0 -4
- package/resources/resource-scenario.d.ts.map +1 -1
- package/resources/resource-session.d.ts +1 -15
- package/resources/resource-session.d.ts.map +1 -1
- package/resources/resources.d.ts +14 -24
- package/resources/resources.d.ts.map +1 -1
- package/resources/resources.js +7 -11
- package/resources/resources.js.map +1 -1
- package/resources/runtime-matrix-definition.d.ts +0 -22
- package/resources/runtime-matrix-definition.d.ts.map +1 -1
- package/resources/simulated-http-server-resource.d.ts +4 -0
- package/resources/simulated-http-server-resource.d.ts.map +1 -1
- package/resources/simulated-http-server-resource.js +18 -2
- package/resources/simulated-http-server-resource.js.map +1 -1
- package/sbom.cdx.json +15 -15
package/package.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"url": "https://github.com/enormora/overkill/issues"
|
|
5
5
|
},
|
|
6
6
|
"dependencies": {
|
|
7
|
-
"type-fest": "5.
|
|
7
|
+
"type-fest": "5.10.0"
|
|
8
8
|
},
|
|
9
9
|
"description": "Typed Overkill resource and runtime descriptors.",
|
|
10
10
|
"engines": {
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"license": "MIT",
|
|
26
26
|
"name": "@overkill-dev/resources",
|
|
27
27
|
"peerDependencies": {
|
|
28
|
-
"@overkill-dev/simulation": "0.0.
|
|
28
|
+
"@overkill-dev/simulation": "0.0.4"
|
|
29
29
|
},
|
|
30
30
|
"repository": {
|
|
31
31
|
"type": "git",
|
|
@@ -33,13 +33,15 @@
|
|
|
33
33
|
},
|
|
34
34
|
"sideEffects": [
|
|
35
35
|
"./packages/resources/resources.entry-point.js",
|
|
36
|
+
"./resources/local-http-transcript-observer.js",
|
|
36
37
|
"./resources/local-service-resource.js",
|
|
37
38
|
"./resources/resource-definition.js",
|
|
39
|
+
"./resources/resource-lifecycle-error.js",
|
|
38
40
|
"./resources/resource-scenario-binding.js",
|
|
39
41
|
"./resources/resources.js",
|
|
40
42
|
"./resources/runtime-definition.js",
|
|
41
43
|
"./resources/runtime-matrix-definition.js"
|
|
42
44
|
],
|
|
43
45
|
"type": "module",
|
|
44
|
-
"version": "0.0.
|
|
46
|
+
"version": "0.0.10"
|
|
45
47
|
}
|
|
@@ -18,9 +18,10 @@ export type { AnyResourceDefinition, ComposedRuntimeGraph, ExecutionRequirement,
|
|
|
18
18
|
export type { ResourceHandleExposureContext } from '../../resources/resource-definition-types.ts';
|
|
19
19
|
export type { ResourceScenarioBindingsForTiming } from '../../resources/resource-scenario.ts';
|
|
20
20
|
export type { LocalServiceAddress, LocalServiceAddressRequest, LocalServiceCreationContext, LocalServiceDisposalContext, LocalServiceHostAddressRequest, LocalServiceLoopbackAddressRequest, LocalServiceResourceDefinitionInput, LocalOnlyLocalServiceResourceDefinitionInput, ProjectedLocalServiceResourceDefinitionInput } from '../../resources/local-service-resource.ts';
|
|
21
|
-
export type { LocalHttpServiceHandle, LocalHttpServiceResourceInput } from '../../resources/local-http-service-resource.ts';
|
|
21
|
+
export type { LocalHttpResourceHandle, LocalHttpServiceHandle, LocalHttpServiceResourceInput, LocalHttpTranscriptPolicy } from '../../resources/local-http-service-resource.ts';
|
|
22
22
|
export type { LocalProcessCommand, LocalProcessOutput, LocalProcessOutputBuffer, LocalProcessOwner, LocalProcessServiceResourceInput, LocalProcessShutdown, LocalProcessSignal } from '../../resources/local-process-service-resource.ts';
|
|
23
23
|
export type { SimulatedHttpServerResource, SimulatedHttpServerResourceHandle, SimulatedHttpServerResourceOptions } from '../../resources/simulated-http-server-resource.ts';
|
|
24
|
+
export type { HttpHeadersSnapshot, HttpInteraction, HttpInteractionOutcome, HttpRequestSnapshot, HttpResponseSnapshot, HttpTranscript, HttpTranscriptEntry, RecordedHttpBody, RecordedHttpError, TranscriptEntry, TranscriptView, TranscriptCaptureErrorEntry } from '@overkill-dev/simulation/transcript';
|
|
24
25
|
export type { RuntimeDefinition as Runtime, RuntimeResourceMap as ResourceMap } from '../../resources/resources.ts';
|
|
25
26
|
export type { ResourceLifecycleFailure, ResourceLifecyclePhase } from '../../resources/resource-lifecycle-error.ts';
|
|
26
27
|
export type { ResourceSession, ResourceSessionDisposalContext, StartResourcesRequest } from '../../resources/resource-session.ts';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resources.entry-point.d.ts","sourceRoot":"","sources":["../../../../../source/packages/resources/resources.entry-point.ts"],"names":[],"mappings":"AAGA,OAAO,EAAyB,KAAK,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE3F,OAAO,EACH,0BAA0B,EAC7B,MAAM,2CAA2C,CAAC;AACnD,OAAO,EACH,8BAA8B,EACjC,MAAM,gDAAgD,CAAC;AACxD,OAAO,EACH,iCAAiC,EACpC,MAAM,mDAAmD,CAAC;AAY3D,eAAO,MAAM,qBAAqB,EAAE,eAAe,CAAC,uBAAuB,CAAyC,CAAC;AACrH,eAAO,MAAM,eAAe,EAAE,eAAe,CAAC,iBAAiB,CAAmC,CAAC;AACnG,eAAO,MAAM,gCAAgC,EAAE,eAAe,CAAC,kCAAkC,CAC7C,CAAC;AACrD,eAAO,MAAM,cAAc,EAAE,eAAe,CAAC,gBAAgB,CAAkC,CAAC;AAChG,eAAO,MAAM,aAAa,EAAE,eAAe,CAAC,eAAe,CAAiC,CAAC;AAC7F,eAAO,MAAM,mBAAmB,EAAE,eAAe,CAAC,qBAAqB,CAAuC,CAAC;AAE/G,OAAO,EACH,iCAAiC,EACpC,MAAM,mDAAmD,CAAC;AAC3D,OAAO,EACH,iBAAiB,EACjB,gBAAgB,EAChB,qBAAqB,EACrB,sBAAsB,EACtB,6BAA6B,EAC7B,kBAAkB,EACrB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACH,0BAA0B,EAC1B,8BAA8B,EACjC,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACH,cAAc,EACjB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACH,sBAAsB,EACzB,MAAM,6CAA6C,CAAC;AACrD,OAAO,EACH,YAAY,EACf,MAAM,sCAAsC,CAAC;AAC9C,YAAY,EACR,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,eAAe,EACf,uBAAuB,EACvB,oBAAoB,EACpB,kBAAkB,EAClB,uBAAuB,EACvB,uBAAuB,EACvB,cAAc,EACd,yBAAyB,EACzB,yBAAyB,EACzB,aAAa,EACb,wBAAwB,EACxB,oBAAoB,EACpB,yBAAyB,EACzB,0BAA0B,EAC1B,+BAA+B,EAC/B,qBAAqB,EACrB,cAAc,EACd,yBAAyB,EACzB,iBAAiB,EACjB,sBAAsB,EACtB,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,EAChB,mBAAmB,EACnB,SAAS,EACT,uBAAuB,EACvB,uBAAuB,EACvB,4BAA4B,EAC5B,oBAAoB,EACpB,uBAAuB,EACvB,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,cAAc,EACd,kCAAkC,EAClC,wBAAwB,EAC3B,MAAM,8BAA8B,CAAC;AACtC,YAAY,EAAE,6BAA6B,EAAE,MAAM,8CAA8C,CAAC;AAClG,YAAY,EAAE,iCAAiC,EAAE,MAAM,sCAAsC,CAAC;AAC9F,YAAY,EACR,mBAAmB,EACnB,0BAA0B,EAC1B,2BAA2B,EAC3B,2BAA2B,EAC3B,8BAA8B,EAC9B,kCAAkC,EAClC,mCAAmC,EACnC,4CAA4C,EAC5C,4CAA4C,EAC/C,MAAM,2CAA2C,CAAC;AACnD,YAAY,EACR,sBAAsB,EACtB,6BAA6B,
|
|
1
|
+
{"version":3,"file":"resources.entry-point.d.ts","sourceRoot":"","sources":["../../../../../source/packages/resources/resources.entry-point.ts"],"names":[],"mappings":"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"}
|
package/readme.md
CHANGED
|
@@ -119,8 +119,9 @@ Omitting `dependencies` is accepted for compatibility and produces
|
|
|
119
119
|
`dependencies: {}` on the returned descriptor.
|
|
120
120
|
|
|
121
121
|
`createTemporaryDirectoryResource(name)` returns a per-case resource descriptor
|
|
122
|
-
whose handle
|
|
123
|
-
directory with an Overkill prefix. Disposal removes that directory
|
|
122
|
+
whose handle exposes `path` and an empty `transcript`. Each acquisition creates
|
|
123
|
+
a unique directory with an Overkill prefix. Disposal removes that directory
|
|
124
|
+
recursively.
|
|
124
125
|
|
|
125
126
|
`defineLocalServiceResource(...)` models owned local services with explicit
|
|
126
127
|
`start`, `ready`, and `dispose` phases. Callers declare scope, requirements,
|
|
@@ -133,11 +134,22 @@ ordinary resources.
|
|
|
133
134
|
|
|
134
135
|
`createLocalHttpServiceResource(...)` owns HTTP `listen` and `close`, exposes
|
|
135
136
|
the actual loopback endpoint and `baseUrl`, and lets callers map that into a
|
|
136
|
-
typed object handle.
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
137
|
+
typed object handle. Its handle also exposes a read-only `transcript`. Recording
|
|
138
|
+
is enabled by default and stores one normalized `http` entry per completed
|
|
139
|
+
exchange. Request and response bodies are captured up to 16 KiB independently.
|
|
140
|
+
External clients still produce request metadata and a response whose body is
|
|
141
|
+
marked unavailable. Pass `{ kind: 'disabled' }` as the second argument to turn
|
|
142
|
+
recording off, or `{ kind: 'custom', transcript(server) { ... } }` to supply a
|
|
143
|
+
protocol-specific transcript.
|
|
144
|
+
|
|
145
|
+
Runner-managed handles show transcript entries from the active test case.
|
|
146
|
+
Handles returned by `startResources(...)` and `startRuntime(...)` show the full
|
|
147
|
+
resource lifetime.
|
|
148
|
+
|
|
149
|
+
`createLocalProcessServiceResource(...)` starts a child process, drains bounded
|
|
150
|
+
stdout/stderr lifecycle buffers, waits for explicit readiness, and terminates
|
|
151
|
+
then force-kills during disposal according to the declared shutdown contract.
|
|
152
|
+
Output buffers are lifecycle diagnostics, not artifacts.
|
|
141
153
|
|
|
142
154
|
Resources may declare finite scenario slots with a default, timing, and allowed
|
|
143
155
|
values. `defineRuntime(...)` lifts slots from its complete dependency graph.
|
|
@@ -159,7 +171,8 @@ resource still acquires separately when those views differ.
|
|
|
159
171
|
HTTP server from `@overkill-dev/simulation` as a per-case resource. Its
|
|
160
172
|
request-routed scenario slot uses the simulation name. A runtime binding makes
|
|
161
173
|
`baseUrl` select that scenario, while `scenarioUrl(...)` remains available for
|
|
162
|
-
explicit URL selection.
|
|
174
|
+
explicit URL selection. Its transcript records the selected scenario and omits
|
|
175
|
+
the internal scenario query parameter from the request URL.
|
|
163
176
|
|
|
164
177
|
`startRuntime(...)` acquires dependencies before dependents, shares one handle
|
|
165
178
|
per descriptor inside the session, and disposes acquired resources once in
|
|
@@ -1,9 +1,29 @@
|
|
|
1
|
+
import { type HttpTranscript } from '@overkill-dev/simulation/transcript';
|
|
1
2
|
import type { Awaitable, ExecutionRequirement, ResourceDefinition, ResourceDependencies, ResourceProjectionPayload, ResourceScope } from './resources.ts';
|
|
2
3
|
import { type LocalServiceAddressRequest, type LocalServiceConsumerHandle, type LocalServiceCreationContext, type LocalServiceDisposalContext, type LocalServiceHandleProjection, type LocalServiceAddress, type ProjectedLocalServiceScope } from './local-service-resource.ts';
|
|
3
4
|
export type LocalHttpServiceHandle = {
|
|
4
5
|
readonly baseUrl: string;
|
|
5
6
|
readonly endpoint: LocalServiceAddress;
|
|
7
|
+
readonly transcript: HttpTranscript<unknown>;
|
|
6
8
|
};
|
|
9
|
+
type CustomLocalHttpTranscriptPolicy<Context> = {
|
|
10
|
+
readonly kind: 'custom';
|
|
11
|
+
readonly transcript: (server: LocalHttpServer) => HttpTranscript<Context>;
|
|
12
|
+
};
|
|
13
|
+
type DisabledLocalHttpTranscriptPolicy = {
|
|
14
|
+
readonly kind: 'disabled';
|
|
15
|
+
};
|
|
16
|
+
type LocalHttpTranscriptPolicies<Context> = {
|
|
17
|
+
readonly custom: CustomLocalHttpTranscriptPolicy<Context>;
|
|
18
|
+
readonly disabled: DisabledLocalHttpTranscriptPolicy;
|
|
19
|
+
};
|
|
20
|
+
export type LocalHttpTranscriptPolicy<Context = unknown> = LocalHttpTranscriptPolicies<Context>[keyof LocalHttpTranscriptPolicies<Context>];
|
|
21
|
+
export type LocalHttpResourceHandle<Handle extends LocalServiceConsumerHandle, Context = null> = Handle & {
|
|
22
|
+
readonly transcript: HttpTranscript<Context>;
|
|
23
|
+
};
|
|
24
|
+
type TranscriptPolicyInput = readonly [] | readonly [LocalHttpTranscriptPolicy];
|
|
25
|
+
type PolicyContext<Policy> = Policy extends CustomLocalHttpTranscriptPolicy<infer Value> ? Value : null;
|
|
26
|
+
type TranscriptContext<Input extends TranscriptPolicyInput> = PolicyContext<Input[0]>;
|
|
7
27
|
type LocalHttpServerAddress = {
|
|
8
28
|
readonly port: number;
|
|
9
29
|
};
|
|
@@ -43,7 +63,7 @@ type ProjectedHttpServiceInput<Name extends string, ConsumerHandle extends Local
|
|
|
43
63
|
readonly scope: ProjectedLocalServiceScope;
|
|
44
64
|
readonly serializeHandle: LocalServiceHandleProjection<ConsumerHandle, Projection, ProjectedConsumerHandle, Dependencies>['serializeHandle'];
|
|
45
65
|
};
|
|
46
|
-
export declare function createLocalHttpServiceResource<const Name extends string, ConsumerHandle extends LocalServiceConsumerHandle, Scope extends Exclude<ResourceScope, 'per-run'>, const Dependencies extends ResourceDependencies>(input: LocalHttpServiceResourceInput<Name, ConsumerHandle, Scope, Dependencies
|
|
47
|
-
export declare function createLocalHttpServiceResource<const Name extends string, ConsumerHandle extends LocalServiceConsumerHandle, Projection extends ResourceProjectionPayload, ProjectedConsumerHandle, const Dependencies extends ResourceDependencies>(input: ProjectedHttpServiceInput<Name, ConsumerHandle, Projection, ProjectedConsumerHandle, Dependencies
|
|
66
|
+
export declare function createLocalHttpServiceResource<const Name extends string, ConsumerHandle extends LocalServiceConsumerHandle, Scope extends Exclude<ResourceScope, 'per-run'>, const Dependencies extends ResourceDependencies, const PolicyInput extends readonly [] | readonly [LocalHttpTranscriptPolicy]>(input: LocalHttpServiceResourceInput<Name, ConsumerHandle, Scope, Dependencies>, ...policyInput: PolicyInput): ResourceDefinition<Name, LocalHttpResourceHandle<ConsumerHandle, TranscriptContext<PolicyInput>>, Dependencies>;
|
|
67
|
+
export declare function createLocalHttpServiceResource<const Name extends string, ConsumerHandle extends LocalServiceConsumerHandle, Projection extends ResourceProjectionPayload, ProjectedConsumerHandle extends LocalServiceConsumerHandle, const Dependencies extends ResourceDependencies, const PolicyInput extends readonly [] | readonly [LocalHttpTranscriptPolicy]>(input: ProjectedHttpServiceInput<Name, ConsumerHandle, Projection, ProjectedConsumerHandle, Dependencies>, ...policyInput: PolicyInput): ResourceDefinition<Name, LocalHttpResourceHandle<ConsumerHandle, TranscriptContext<PolicyInput>>, Dependencies, LocalHttpResourceHandle<ProjectedConsumerHandle, TranscriptContext<PolicyInput>>>;
|
|
48
68
|
export {};
|
|
49
69
|
//# sourceMappingURL=local-http-service-resource.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-http-service-resource.d.ts","sourceRoot":"","sources":["../../../../source/resources/local-http-service-resource.ts"],"names":[],"mappings":"AAAA,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,EAChC,KAAK,2BAA2B,EAChC,KAAK,4BAA4B,EACjC,KAAK,mBAAmB,EAExB,KAAK,0BAA0B,EAClC,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"local-http-service-resource.d.ts","sourceRoot":"","sources":["../../../../source/resources/local-http-service-resource.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,KAAK,cAAc,EACtB,MAAM,qCAAkD,CAAC;AAC1D,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,EAChC,KAAK,2BAA2B,EAChC,KAAK,4BAA4B,EACjC,KAAK,mBAAmB,EAExB,KAAK,0BAA0B,EAClC,MAAM,6BAA6B,CAAC;AAGrC,MAAM,MAAM,sBAAsB,GAAG;IACjC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,CAAC;IACvC,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;CAChD,CAAC;AAEF,KAAK,+BAA+B,CAAC,OAAO,IAAI;IAC5C,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,cAAc,CAAC,OAAO,CAAC,CAAC;CAC7E,CAAC;AACF,KAAK,iCAAiC,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;CAAE,CAAC;AACxE,KAAK,2BAA2B,CAAC,OAAO,IAAI;IACxC,QAAQ,CAAC,MAAM,EAAE,+BAA+B,CAAC,OAAO,CAAC,CAAC;IAC1D,QAAQ,CAAC,QAAQ,EAAE,iCAAiC,CAAC;CACxD,CAAC;AAEF,MAAM,MAAM,yBAAyB,CAAC,OAAO,GAAG,OAAO,IAAI,2BAA2B,CAAC,OAAO,CAAC,CAC3F,MAAM,2BAA2B,CAAC,OAAO,CAAC,CAC7C,CAAC;AAEF,MAAM,MAAM,uBAAuB,CAAC,MAAM,SAAS,0BAA0B,EAAE,OAAO,GAAG,IAAI,IAAI,MAAM,GAAG;IACtG,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;CAChD,CAAC;AAEF,KAAK,qBAAqB,GAAG,SAAS,EAAE,GAAG,SAAS,CAAC,yBAAyB,CAAC,CAAC;AAChF,KAAK,aAAa,CAAC,MAAM,IAAI,MAAM,SAAS,+BAA+B,CAAC,MAAM,KAAK,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC;AACxG,KAAK,iBAAiB,CAAC,KAAK,SAAS,qBAAqB,IAAI,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAEtF,KAAK,sBAAsB,GAAG;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,sBAAsB,GAAG,MAAM,GAAG,IAAI,CAAC;IAC/D,QAAQ,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,KAAK,IAAI,KAAK,OAAO,CAAC;IAC/D,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IACzD,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,GAAG,EAAE;QACV,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,OAAO,CAAC;QAC5D,CAAC,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC;KACvD,CAAC;IACF,QAAQ,CAAC,IAAI,EAAE;QACX,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,OAAO,CAAC;QAC5D,CAAC,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC;KACvD,CAAC;CACL,CAAC;AAwBF,MAAM,MAAM,6BAA6B,CACrC,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,YAAY,EAAE,CACnB,OAAO,EAAE,2BAA2B,CAAC,YAAY,CAAC,KACjD,eAAe,CAAC;IACrB,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,CACd,MAAM,EAAE,eAAe,EACvB,OAAO,EAAE,2BAA2B,CAAC,YAAY,CAAC,KACjD,SAAS,CAAC,IAAI,CAAC,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,CACb,OAAO,EAAE,sBAAsB,EAC/B,MAAM,EAAE,eAAe,EACvB,OAAO,EAAE,2BAA2B,CAAC,YAAY,CAAC,KACjD,cAAc,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,YAAY,EAAE,SAAS,oBAAoB,EAAE,CAAC;IACvD,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;CACzB,CAAC;AAEF,KAAK,yBAAyB,CAC1B,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,YAAY,EAAE,6BAA6B,CAChD,IAAI,EACJ,cAAc,EACd,0BAA0B,EAC1B,YAAY,CACf,CAAC,cAAc,CAAC,CAAC;IAClB,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,OAAO,EAAE,6BAA6B,CAC3C,IAAI,EACJ,cAAc,EACd,0BAA0B,EAC1B,YAAY,CACf,CAAC,SAAS,CAAC,CAAC;IACb,QAAQ,CAAC,MAAM,EAAE,6BAA6B,CAC1C,IAAI,EACJ,cAAc,EACd,0BAA0B,EAC1B,YAAY,CACf,CAAC,QAAQ,CAAC,CAAC;IACZ,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,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;CACxB,CAAC;AAmOF,wBAAgB,8BAA8B,CAC1C,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,EAC/C,KAAK,CAAC,WAAW,SAAS,SAAS,EAAE,GAAG,SAAS,CAAC,yBAAyB,CAAC,EAE5E,KAAK,EAAE,6BAA6B,CAAC,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,YAAY,CAAC,EAC/E,GAAG,WAAW,EAAE,WAAW,GAC5B,kBAAkB,CACjB,IAAI,EACJ,uBAAuB,CAAC,cAAc,EAAE,iBAAiB,CAAC,WAAW,CAAC,CAAC,EACvE,YAAY,CACf,CAAC;AACF,wBAAgB,8BAA8B,CAC1C,KAAK,CAAC,IAAI,SAAS,MAAM,EACzB,cAAc,SAAS,0BAA0B,EACjD,UAAU,SAAS,yBAAyB,EAC5C,uBAAuB,SAAS,0BAA0B,EAC1D,KAAK,CAAC,YAAY,SAAS,oBAAoB,EAC/C,KAAK,CAAC,WAAW,SAAS,SAAS,EAAE,GAAG,SAAS,CAAC,yBAAyB,CAAC,EAE5E,KAAK,EAAE,yBAAyB,CAC5B,IAAI,EACJ,cAAc,EACd,UAAU,EACV,uBAAuB,EACvB,YAAY,CACf,EACD,GAAG,WAAW,EAAE,WAAW,GAC5B,kBAAkB,CACjB,IAAI,EACJ,uBAAuB,CAAC,cAAc,EAAE,iBAAiB,CAAC,WAAW,CAAC,CAAC,EACvE,YAAY,EACZ,uBAAuB,CAAC,uBAAuB,EAAE,iBAAiB,CAAC,WAAW,CAAC,CAAC,CACnF,CAAC"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
import { captureErrorHttpTranscript, emptyTranscriptView } from "@overkill-dev/simulation/transcript";
|
|
1
2
|
import { defineLocalServiceResource, isProjectedLocalServiceScope } from "./local-service-resource.js";
|
|
3
|
+
import { observeLocalHttpServer } from "./local-http-transcript-observer.js";
|
|
2
4
|
function serverEndpoint(server, host) {
|
|
3
5
|
const address = server.address();
|
|
4
6
|
if (typeof address !== 'object' || address === null) {
|
|
@@ -41,13 +43,29 @@ async function closeServer(server) {
|
|
|
41
43
|
});
|
|
42
44
|
});
|
|
43
45
|
}
|
|
44
|
-
function localHttpServiceHandle(endpoint) {
|
|
46
|
+
function localHttpServiceHandle(endpoint, transcript) {
|
|
45
47
|
return Object.freeze({
|
|
46
48
|
endpoint,
|
|
47
|
-
baseUrl: `http://${endpoint.host}:${endpoint.port}
|
|
49
|
+
baseUrl: `http://${endpoint.host}:${endpoint.port}`,
|
|
50
|
+
transcript
|
|
48
51
|
});
|
|
49
52
|
}
|
|
50
|
-
function
|
|
53
|
+
function withTranscript(handle, transcript) {
|
|
54
|
+
return Object.freeze({ ...handle, transcript });
|
|
55
|
+
}
|
|
56
|
+
function customTranscript(policy, server) {
|
|
57
|
+
if (policy.kind === 'disabled') {
|
|
58
|
+
return emptyTranscriptView();
|
|
59
|
+
}
|
|
60
|
+
try {
|
|
61
|
+
return policy.transcript(server);
|
|
62
|
+
}
|
|
63
|
+
catch (error) {
|
|
64
|
+
return captureErrorHttpTranscript(error);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
function localHttpDefinition(input, policy) {
|
|
68
|
+
const observers = new WeakMap();
|
|
51
69
|
return {
|
|
52
70
|
name: input.name,
|
|
53
71
|
scope: input.scope,
|
|
@@ -59,19 +77,36 @@ function localHttpDefinition(input) {
|
|
|
59
77
|
},
|
|
60
78
|
async ready(server, context) {
|
|
61
79
|
await listen(server, context.address);
|
|
62
|
-
|
|
80
|
+
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);
|
|
87
|
+
}
|
|
88
|
+
const view = transcript?.transcript ?? customTranscript(policy ?? { kind: 'disabled' }, server);
|
|
89
|
+
return withTranscript(input.handle(localHttpServiceHandle(endpoint, view), server, context), view);
|
|
63
90
|
},
|
|
64
91
|
async dispose(server, context) {
|
|
65
|
-
|
|
92
|
+
try {
|
|
93
|
+
await closeServer(server);
|
|
94
|
+
}
|
|
95
|
+
finally {
|
|
96
|
+
observers.get(server)?.dispose();
|
|
97
|
+
observers.delete(server);
|
|
98
|
+
}
|
|
66
99
|
await input.dispose(server, context);
|
|
67
100
|
}
|
|
68
101
|
};
|
|
69
102
|
}
|
|
70
|
-
function projectedHttpDefinition(input) {
|
|
103
|
+
function projectedHttpDefinition(input, policy) {
|
|
71
104
|
return {
|
|
72
|
-
...localHttpDefinition(input),
|
|
105
|
+
...localHttpDefinition(input, policy),
|
|
73
106
|
serializeHandle: input.serializeHandle,
|
|
74
|
-
deserializeHandle
|
|
107
|
+
deserializeHandle(payload, context) {
|
|
108
|
+
return withTranscript(input.deserializeHandle(payload, context), emptyTranscriptView());
|
|
109
|
+
}
|
|
75
110
|
};
|
|
76
111
|
}
|
|
77
112
|
function assertProjectedHttpService(input) {
|
|
@@ -79,13 +114,14 @@ function assertProjectedHttpService(input) {
|
|
|
79
114
|
throw new TypeError('Projected local HTTP services require handle projection callbacks.');
|
|
80
115
|
}
|
|
81
116
|
}
|
|
82
|
-
export function createLocalHttpServiceResource(input) {
|
|
117
|
+
export function createLocalHttpServiceResource(input, ...policyInput) {
|
|
118
|
+
const policy = policyInput[0] ?? null;
|
|
83
119
|
if (isProjectedLocalServiceScope(input.scope)) {
|
|
84
120
|
assertProjectedHttpService(input);
|
|
85
|
-
return defineLocalServiceResource(projectedHttpDefinition(input));
|
|
121
|
+
return defineLocalServiceResource(projectedHttpDefinition(input, policy));
|
|
86
122
|
}
|
|
87
123
|
return defineLocalServiceResource({
|
|
88
|
-
...localHttpDefinition(input),
|
|
124
|
+
...localHttpDefinition(input, policy),
|
|
89
125
|
scope: input.scope
|
|
90
126
|
});
|
|
91
127
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-http-service-resource.js","sourceRoot":"","sources":["../../../../source/resources/local-http-service-resource.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"local-http-service-resource.js","sourceRoot":"","sources":["../../../../source/resources/local-http-service-resource.ts"],"names":[],"mappings":"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"}
|