@plurnk/plurnk-schemes-http 2.0.5 → 2.0.7
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/README.md +10 -10
- package/SPEC.md +122 -606
- package/dist/Guard.d.ts +4 -0
- package/dist/Guard.d.ts.map +1 -1
- package/dist/Guard.js +43 -5
- package/dist/Guard.js.map +1 -1
- package/dist/Http.d.ts +1 -1
- package/dist/Http.d.ts.map +1 -1
- package/dist/Http.js +22 -619
- package/dist/Http.js.map +1 -1
- package/dist/HttpCache.d.ts +10 -0
- package/dist/HttpCache.d.ts.map +1 -0
- package/dist/HttpCache.js +384 -0
- package/dist/HttpCache.js.map +1 -0
- package/dist/HttpGet.d.ts +5 -26
- package/dist/HttpGet.d.ts.map +1 -1
- package/dist/HttpGet.js +30 -63
- package/dist/HttpGet.js.map +1 -1
- package/dist/HttpRequester.d.ts +4 -15
- package/dist/HttpRequester.d.ts.map +1 -1
- package/dist/HttpRequester.js +31 -49
- package/dist/HttpRequester.js.map +1 -1
- package/dist/HttpShared.d.ts +42 -0
- package/dist/HttpShared.d.ts.map +1 -0
- package/dist/HttpShared.js +244 -0
- package/dist/HttpShared.js.map +1 -0
- package/dist/WebFetcher.d.ts +2 -7
- package/dist/WebFetcher.d.ts.map +1 -1
- package/dist/WebFetcher.js +14 -26
- package/dist/WebFetcher.js.map +1 -1
- package/dist/Ws.d.ts.map +1 -1
- package/dist/Ws.js +17 -13
- package/dist/Ws.js.map +1 -1
- package/dist/index.d.ts +0 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -5
- package/dist/index.js.map +1 -1
- package/docs/https.md +37 -44
- package/docs/wss.md +27 -32
- package/package.json +6 -6
- package/dist/Config.d.ts +0 -5
- package/dist/Config.d.ts.map +0 -1
- package/dist/Config.js +0 -13
- package/dist/Config.js.map +0 -1
- package/dist/ContentType.d.ts +0 -2
- package/dist/ContentType.d.ts.map +0 -1
- package/dist/ContentType.js +0 -15
- package/dist/ContentType.js.map +0 -1
- package/dist/ErrorDetail.d.ts +0 -5
- package/dist/ErrorDetail.d.ts.map +0 -1
- package/dist/ErrorDetail.js +0 -5
- package/dist/ErrorDetail.js.map +0 -1
- package/dist/HostPolicy.d.ts +0 -11
- package/dist/HostPolicy.d.ts.map +0 -1
- package/dist/HostPolicy.js +0 -58
- package/dist/HostPolicy.js.map +0 -1
- package/dist/LiveAcquisitions.d.ts +0 -8
- package/dist/LiveAcquisitions.d.ts.map +0 -1
- package/dist/LiveAcquisitions.js +0 -30
- package/dist/LiveAcquisitions.js.map +0 -1
- package/dist/http-names.d.ts +0 -5
- package/dist/http-names.d.ts.map +0 -1
- package/dist/http-names.js +0 -6
- package/dist/http-names.js.map +0 -1
package/dist/HttpGet.js
CHANGED
|
@@ -1,85 +1,52 @@
|
|
|
1
1
|
import { NetworkAddress, Results } from "@plurnk/plurnk-schemes";
|
|
2
|
+
import { fresh, materializerIdentity, refreshAfter304, requestMethod, reusableGetRepresentation, revalidationCorresponds, sourceMimetype, validators, } from "./HttpCache.js";
|
|
3
|
+
import { BODY, HEADER, LiveAcquisitions, httpAddress, httpBad, httpCancelled, httpMaterializationFailure, httpPassthrough, parseRequestHeaders, requireFlagEnv, seedEntry, settleEventStream, } from "./HttpShared.js";
|
|
2
4
|
import WebFetcher, { WebMaterializationError } from "./WebFetcher.js";
|
|
3
|
-
import { BODY, HEADER } from "./http-names.js";
|
|
4
|
-
import LiveAcquisitions from "./LiveAcquisitions.js";
|
|
5
|
-
import { requireFlagEnv } from "./Config.js";
|
|
6
5
|
const LLMS_TEXT_ATTEMPT_TTL_MS = 3_600_000;
|
|
7
6
|
export default class HttpGet {
|
|
8
7
|
#webFetcher;
|
|
9
|
-
#address;
|
|
10
|
-
#requestHeaders;
|
|
11
|
-
#passthrough;
|
|
12
|
-
#requestMethod;
|
|
13
|
-
#reusableGetRepresentation;
|
|
14
|
-
#materializerIdentity;
|
|
15
|
-
#validators;
|
|
16
|
-
#materializationFailure;
|
|
17
|
-
#sourceMimetype;
|
|
18
|
-
#fresh;
|
|
19
|
-
#cancelled;
|
|
20
|
-
#bad;
|
|
21
|
-
#revalidationCorresponds;
|
|
22
|
-
#refreshAfter304;
|
|
23
|
-
#seedEntry;
|
|
24
|
-
#settleEventStream;
|
|
25
8
|
#llmsTextAttempts = new Map();
|
|
26
9
|
#live;
|
|
27
|
-
constructor({ live, webFetcher
|
|
10
|
+
constructor({ live, webFetcher }) {
|
|
28
11
|
this.#live = live;
|
|
29
12
|
this.#webFetcher = webFetcher;
|
|
30
|
-
this.#address = address;
|
|
31
|
-
this.#requestHeaders = requestHeaders;
|
|
32
|
-
this.#passthrough = passthrough;
|
|
33
|
-
this.#requestMethod = requestMethod;
|
|
34
|
-
this.#reusableGetRepresentation = reusableGetRepresentation;
|
|
35
|
-
this.#materializerIdentity = materializerIdentity;
|
|
36
|
-
this.#validators = validators;
|
|
37
|
-
this.#materializationFailure = materializationFailure;
|
|
38
|
-
this.#sourceMimetype = sourceMimetype;
|
|
39
|
-
this.#fresh = fresh;
|
|
40
|
-
this.#cancelled = cancelled;
|
|
41
|
-
this.#bad = bad;
|
|
42
|
-
this.#revalidationCorresponds = revalidationCorresponds;
|
|
43
|
-
this.#refreshAfter304 = refreshAfter304;
|
|
44
|
-
this.#seedEntry = seedEntry;
|
|
45
|
-
this.#settleEventStream = settleEventStream;
|
|
46
13
|
}
|
|
47
14
|
async prepareGet(target, metadata, pathname, ctx) {
|
|
48
|
-
const address =
|
|
15
|
+
const address = httpAddress(target);
|
|
49
16
|
if (!(address instanceof NetworkAddress))
|
|
50
17
|
return address;
|
|
51
18
|
const { url } = address;
|
|
52
|
-
const requestHeaders =
|
|
19
|
+
const requestHeaders = parseRequestHeaders(metadata);
|
|
53
20
|
if (!Array.isArray(requestHeaders))
|
|
54
21
|
return requestHeaders;
|
|
55
22
|
let cached;
|
|
56
23
|
const conditional = [];
|
|
57
24
|
const prior = await ctx.entries.read(pathname);
|
|
58
25
|
if (Results.isErrorStatus(prior.status) && prior.status !== 404) {
|
|
59
|
-
return
|
|
26
|
+
return httpPassthrough(prior);
|
|
60
27
|
}
|
|
61
28
|
const priorBody = prior.entry?.channels[BODY];
|
|
62
29
|
const priorHeader = prior.entry?.channels[HEADER];
|
|
63
|
-
if (prior.entry !== null &&
|
|
30
|
+
if (prior.entry !== null && requestMethod(priorHeader?.content ?? "") === undefined) {
|
|
64
31
|
return { status: 200 };
|
|
65
32
|
}
|
|
66
33
|
if (prior.entry !== null && priorBody !== undefined && priorHeader !== undefined) {
|
|
67
34
|
try {
|
|
68
|
-
if (await
|
|
35
|
+
if (await reusableGetRepresentation(prior.entry, requestHeaders, ctx.projection)) {
|
|
69
36
|
cached = prior.entry;
|
|
70
|
-
if (
|
|
71
|
-
conditional.push(...
|
|
37
|
+
if (materializerIdentity(priorHeader.content) === undefined) {
|
|
38
|
+
conditional.push(...validators(priorHeader.content));
|
|
72
39
|
}
|
|
73
40
|
}
|
|
74
41
|
}
|
|
75
42
|
catch (cause) {
|
|
76
|
-
return
|
|
43
|
+
return httpMaterializationFailure(url, "GET", new WebMaterializationError(sourceMimetype(priorHeader.content), cause));
|
|
77
44
|
}
|
|
78
45
|
}
|
|
79
|
-
if (cached !== undefined &&
|
|
46
|
+
if (cached !== undefined && fresh(cached.channels[HEADER].content)) {
|
|
80
47
|
return { status: 200 };
|
|
81
48
|
}
|
|
82
|
-
// {§
|
|
49
|
+
// {§revalidation} — a KILL of the address aborts this acquisition through the tracked controller.
|
|
83
50
|
const liveKey = LiveAcquisitions.key(ctx.workspaceId, url);
|
|
84
51
|
const local = new AbortController();
|
|
85
52
|
const release = this.#live.track(liveKey, local);
|
|
@@ -96,7 +63,7 @@ export default class HttpGet {
|
|
|
96
63
|
preserveUnavailable: true,
|
|
97
64
|
});
|
|
98
65
|
if (fetched === null) {
|
|
99
|
-
return
|
|
66
|
+
return httpBad(404, "http", "not-materialized", `The URL ${url} could not be materialized.`, {
|
|
100
67
|
target: url,
|
|
101
68
|
stage: "acquisition",
|
|
102
69
|
retryable: true,
|
|
@@ -104,7 +71,7 @@ export default class HttpGet {
|
|
|
104
71
|
}
|
|
105
72
|
if (fetched.status === 304) {
|
|
106
73
|
if (cached === undefined) {
|
|
107
|
-
return
|
|
74
|
+
return httpBad(502, "http", "fetch-failed", `HTTP GET ${url} returned 304 without a reusable stored representation.`, {
|
|
108
75
|
target: url,
|
|
109
76
|
method: "GET",
|
|
110
77
|
stage: "acquisition",
|
|
@@ -112,8 +79,8 @@ export default class HttpGet {
|
|
|
112
79
|
});
|
|
113
80
|
}
|
|
114
81
|
const cachedHeader = cached.channels[HEADER].content;
|
|
115
|
-
if (
|
|
116
|
-
return
|
|
82
|
+
if (materializerIdentity(cachedHeader) !== undefined) {
|
|
83
|
+
return httpBad(502, "http", "fetch-failed", `HTTP GET ${url} returned 304 for a stored representation that requires full reacquisition.`, {
|
|
117
84
|
target: url,
|
|
118
85
|
method: "GET",
|
|
119
86
|
stage: "acquisition",
|
|
@@ -121,19 +88,19 @@ export default class HttpGet {
|
|
|
121
88
|
});
|
|
122
89
|
}
|
|
123
90
|
const responseHeaders = fetched.responseHeaders ?? [];
|
|
124
|
-
if (
|
|
91
|
+
if (revalidationCorresponds(cachedHeader, new Headers(responseHeaders.map(([name, value]) => [name, value])))) {
|
|
125
92
|
const channels = {
|
|
126
93
|
...cached.channels,
|
|
127
94
|
[HEADER]: {
|
|
128
95
|
...cached.channels[HEADER],
|
|
129
|
-
content:
|
|
96
|
+
content: refreshAfter304(cachedHeader, responseHeaders, requestHeaders),
|
|
130
97
|
},
|
|
131
98
|
};
|
|
132
99
|
const written = await ctx.entries.write(pathname, {
|
|
133
100
|
channels,
|
|
134
101
|
});
|
|
135
102
|
if (Results.isErrorStatus(written.status))
|
|
136
|
-
return
|
|
103
|
+
return httpPassthrough(written);
|
|
137
104
|
return { status: 200 };
|
|
138
105
|
}
|
|
139
106
|
// {§revalidation}: reacquire once without conditionals when
|
|
@@ -146,14 +113,14 @@ export default class HttpGet {
|
|
|
146
113
|
preserveUnavailable: true,
|
|
147
114
|
});
|
|
148
115
|
if (fetched === null) {
|
|
149
|
-
return
|
|
116
|
+
return httpBad(404, "http", "not-materialized", `The URL ${url} could not be materialized.`, {
|
|
150
117
|
target: url,
|
|
151
118
|
stage: "acquisition",
|
|
152
119
|
retryable: true,
|
|
153
120
|
});
|
|
154
121
|
}
|
|
155
122
|
if (fetched.status === 304) {
|
|
156
|
-
return
|
|
123
|
+
return httpBad(502, "http", "fetch-failed", `HTTP GET ${url} returned 304 again after retrying without conditional headers.`, {
|
|
157
124
|
target: url,
|
|
158
125
|
method: "GET",
|
|
159
126
|
stage: "acquisition",
|
|
@@ -172,16 +139,16 @@ export default class HttpGet {
|
|
|
172
139
|
channels: WebFetcher.materializedChannels(materialized, { url, method: "GET" }),
|
|
173
140
|
});
|
|
174
141
|
if (Results.isErrorStatus(written.status))
|
|
175
|
-
return
|
|
142
|
+
return httpPassthrough(written);
|
|
176
143
|
await this.#piggybackLlmsText(address, ctx);
|
|
177
144
|
return { status: 200 };
|
|
178
145
|
}
|
|
179
146
|
catch (error) {
|
|
180
147
|
const cause = error instanceof WebMaterializationError ? error.cause : error;
|
|
181
148
|
if (signal.aborted && cause === signal.reason)
|
|
182
|
-
return
|
|
149
|
+
return httpCancelled(url, "GET");
|
|
183
150
|
if (error instanceof WebMaterializationError) {
|
|
184
|
-
return
|
|
151
|
+
return httpMaterializationFailure(url, "GET", error);
|
|
185
152
|
}
|
|
186
153
|
throw error;
|
|
187
154
|
}
|
|
@@ -201,16 +168,16 @@ export default class HttpGet {
|
|
|
201
168
|
await response.body?.cancel().catch(() => { });
|
|
202
169
|
},
|
|
203
170
|
};
|
|
204
|
-
// {§
|
|
171
|
+
// {§revalidation} — the open stream stays cancellable by a KILL of its address until it settles.
|
|
205
172
|
const releaseStream = this.#live.track(LiveAcquisitions.key(ctx.workspaceId, address.url), local);
|
|
206
|
-
const written = await ctx.entries.write(address.pathname,
|
|
173
|
+
const written = await ctx.entries.write(address.pathname, seedEntry());
|
|
207
174
|
if (Results.isErrorStatus(written.status))
|
|
208
|
-
return
|
|
175
|
+
return httpPassthrough(written);
|
|
209
176
|
const subscription = await ctx.subscriptions.open(address.pathname, handle);
|
|
210
177
|
if (fetched.header !== undefined) {
|
|
211
178
|
await subscription.notifyChunk(HEADER, fetched.header, "text/plain");
|
|
212
179
|
}
|
|
213
|
-
void
|
|
180
|
+
void settleEventStream(subscription, response, {
|
|
214
181
|
url: address.url,
|
|
215
182
|
method: "GET",
|
|
216
183
|
signal: local.signal,
|
|
@@ -219,7 +186,7 @@ export default class HttpGet {
|
|
|
219
186
|
}).finally(() => releaseStream());
|
|
220
187
|
return { shape: "passthrough", status: 102 };
|
|
221
188
|
}
|
|
222
|
-
// {§http-
|
|
189
|
+
// {§http-lifecycle} — after a successful generic GET materialization,
|
|
223
190
|
// acquire <origin>/llms.txt once per TTL window and materialize it as its
|
|
224
191
|
// own https entry. Any failure is quiet: the companion never fails the
|
|
225
192
|
// READ that piggybacked it, and the companion itself never recurses.
|
package/dist/HttpGet.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HttpGet.js","sourceRoot":"","sources":["../src/HttpGet.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,UAAU,EAAE,EAAE,uBAAuB,EAAuB,MAAM,iBAAiB,CAAC;AAC3F,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,wBAAwB,GAAG,SAAS,CAAC;AAE3C,MAAM,CAAC,OAAO,OAAO,OAAO;IACf,WAAW,CAAa;IACxB,QAAQ,CAA0D;IAClE,eAAe,CAAgH;IAC/H,YAAY,CAAsE;IAClF,cAAc,CAA8C;IAC5D,0BAA0B,CAAqI;IAC/J,qBAAqB,CAA8C;IACnE,WAAW,CAAmD;IAC9D,uBAAuB,CAA6G;IACpI,eAAe,CAA6B;IAC5C,MAAM,CAA4C;IAClD,UAAU,CAA6E;IACvF,IAAI,CAA+J;IACnK,wBAAwB,CAA6D;IACrF,gBAAgB,CAAkJ;IAClK,UAAU,CAAkB;IAC5B,kBAAkB,CAAyI;IAC3J,iBAAiB,GAAG,IAAI,GAAG,EAAkB,CAAC;IAE9C,KAAK,CAAmB;IACjC,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,aAAa,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,UAAU,EAAE,sBAAsB,EAAE,cAAc,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,uBAAuB,EAAE,eAAe,EAAE,SAAS,EAAE,iBAAiB,EAmBtR;QACG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;QAC9B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC;QACtC,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;QAChC,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;QACpC,IAAI,CAAC,0BAA0B,GAAG,yBAAyB,CAAC;QAC5D,IAAI,CAAC,qBAAqB,GAAG,oBAAoB,CAAC;QAClD,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;QAC9B,IAAI,CAAC,uBAAuB,GAAG,sBAAsB,CAAC;QACtD,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC;QACtC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;QAChB,IAAI,CAAC,wBAAwB,GAAG,uBAAuB,CAAC;QACxD,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;QACxC,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,kBAAkB,GAAG,iBAAiB,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,UAAU,CACZ,MAAe,EACf,QAAkC,EAClC,QAAgB,EAChB,GAAc;QAEd,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACtC,IAAI,CAAC,CAAC,OAAO,YAAY,cAAc,CAAC;YAAE,OAAO,OAAO,CAAC;QACzD,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;QACxB,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QACtD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC;YAAE,OAAO,cAAc,CAAC;QAC1D,IAAI,MAAmC,CAAC;QACxC,MAAM,WAAW,GAA4B,EAAE,CAAC;QAChD,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAI,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC9D,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC;QACD,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC9C,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;QAClD,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,OAAO,IAAI,EAAE,CAAC,KAAK,SAAS,EAAE,CAAC;YACxF,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;QAC3B,CAAC;QACD,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,IAAI,SAAS,KAAK,SAAS,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC/E,IAAI,CAAC;gBACD,IAAI,MAAM,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;oBACrF,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;oBACrB,IAAI,IAAI,CAAC,qBAAqB,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,SAAS,EAAE,CAAC;wBAChE,WAAW,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;oBAC/D,CAAC;gBACL,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,OAAO,IAAI,CAAC,uBAAuB,CAC/B,GAAG,EACH,KAAK,EACL,IAAI,uBAAuB,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAChF,CAAC;YACN,CAAC;QACL,CAAC;QACD,IAAI,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;YACvE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;QAC3B,CAAC;QAED,+FAA+F;QAC/F,MAAM,OAAO,GAAG,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;QAC3D,MAAM,KAAK,GAAG,IAAI,eAAe,EAAE,CAAC;QACpC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,gBAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QACnE,IAAI,CAAC;YACD,IAAI,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,EAAE;gBAC5C,MAAM;gBACN,OAAO,EAAE,cAAc;gBACvB,GAAG,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC;oBACtB,CAAC,CAAC,EAAE,kBAAkB,EAAE,WAAW,EAAE;oBACrC,CAAC,CAAC,EAAE,CAAC;gBACT,OAAO,EAAE,KAAK;gBACd,gBAAgB,EAAE,IAAI;gBACtB,mBAAmB,EAAE,IAAI;aAC5B,CAAC,CAAC;YACH,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;gBACnB,OAAO,IAAI,CAAC,IAAI,CACZ,GAAG,EACH,MAAM,EACN,kBAAkB,EAClB,WAAW,GAAG,6BAA6B,EAC3C;oBACI,MAAM,EAAE,GAAG;oBACX,KAAK,EAAE,aAAa;oBACpB,SAAS,EAAE,IAAI;iBAClB,CACJ,CAAC;YACN,CAAC;YAED,IAAI,OAAO,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBACzB,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;oBACvB,OAAO,IAAI,CAAC,IAAI,CACZ,GAAG,EACH,MAAM,EACN,cAAc,EACd,YAAY,GAAG,yDAAyD,EACxE;wBACI,MAAM,EAAE,GAAG;wBACX,MAAM,EAAE,KAAK;wBACb,KAAK,EAAE,aAAa;wBACpB,SAAS,EAAE,IAAI;qBAClB,CACJ,CAAC;gBACN,CAAC;gBACD,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;gBACrD,IAAI,IAAI,CAAC,qBAAqB,CAAC,YAAY,CAAC,KAAK,SAAS,EAAE,CAAC;oBACzD,OAAO,IAAI,CAAC,IAAI,CACZ,GAAG,EACH,MAAM,EACN,cAAc,EACd,YAAY,GAAG,6EAA6E,EAC5F;wBACI,MAAM,EAAE,GAAG;wBACX,MAAM,EAAE,KAAK;wBACb,KAAK,EAAE,aAAa;wBACpB,SAAS,EAAE,IAAI;qBAClB,CACJ,CAAC;gBACN,CAAC;gBACD,MAAM,eAAe,GAAG,OAAO,CAAC,eAAe,IAAI,EAAE,CAAC;gBACtD,IAAI,IAAI,CAAC,wBAAwB,CAC7B,YAAY,EACZ,IAAI,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CACrE,EAAE,CAAC;oBACA,MAAM,QAAQ,GAA0B;wBACpC,GAAG,MAAM,CAAC,QAAQ;wBAClB,CAAC,MAAM,CAAC,EAAE;4BACN,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;4BAC1B,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,eAAe,EAAE,cAAc,CAAC;yBAChF;qBACJ,CAAC;oBACF,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE;wBAC9C,QAAQ;qBACX,CAAC,CAAC;oBACH,IAAI,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC;wBAAE,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;oBAC7E,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;gBAC3B,CAAC;gBACD,4DAA4D;gBAC5D,+CAA+C;gBAC/C,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,EAAE;oBACxC,MAAM;oBACN,OAAO,EAAE,cAAc;oBACvB,OAAO,EAAE,KAAK;oBACd,gBAAgB,EAAE,IAAI;oBACtB,mBAAmB,EAAE,IAAI;iBAC5B,CAAC,CAAC;gBACH,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;oBACnB,OAAO,IAAI,CAAC,IAAI,CACZ,GAAG,EACH,MAAM,EACN,kBAAkB,EAClB,WAAW,GAAG,6BAA6B,EAC3C;wBACI,MAAM,EAAE,GAAG;wBACX,KAAK,EAAE,aAAa;wBACpB,SAAS,EAAE,IAAI;qBAClB,CACJ,CAAC;gBACN,CAAC;gBACD,IAAI,OAAO,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;oBACzB,OAAO,IAAI,CAAC,IAAI,CACZ,GAAG,EACH,MAAM,EACN,cAAc,EACd,YAAY,GAAG,iEAAiE,EAChF;wBACI,MAAM,EAAE,GAAG;wBACX,MAAM,EAAE,KAAK;wBACb,KAAK,EAAE,aAAa;wBACpB,SAAS,EAAE,IAAI;qBAClB,CACJ,CAAC;gBACN,CAAC;gBACD,uDAAuD;YAC3D,CAAC;YAED,IAAI,OAAO,CAAC,QAAQ,KAAK,mBAAmB;mBACrC,OAAO,CAAC,QAAQ,EAAE,IAAI,KAAK,IAAI;mBAC/B,OAAO,CAAC,QAAQ,EAAE,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC1C,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;YACxD,CAAC;YAED,MAAM,YAAY,GAAG,MAAM,UAAU,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YACnF,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE;gBAC9C,QAAQ,EAAE,UAAU,CAAC,oBAAoB,CAAC,YAAY,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;aAClF,CAAC,CAAC;YACH,IAAI,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC;gBAAE,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YAC7E,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YAC5C,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;QAC3B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,KAAK,GAAG,KAAK,YAAY,uBAAuB,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;YAC7E,IAAI,MAAM,CAAC,OAAO,IAAI,KAAK,KAAK,MAAM,CAAC,MAAM;gBAAE,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAClF,IAAI,KAAK,YAAY,uBAAuB,EAAE,CAAC;gBAC3C,OAAO,IAAI,CAAC,uBAAuB,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YAC3D,CAAC;YACD,MAAM,KAAK,CAAC;QAChB,CAAC;gBAAS,CAAC;YACP,OAAO,EAAE,CAAC;QACd,CAAC;IACL,CAAC;IAGD,KAAK,CAAC,gBAAgB,CAClB,OAAuB,EACvB,OAAuB,EACvB,GAAc;QAEd,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QAClC,IAAI,QAAQ,EAAE,IAAI,KAAK,IAAI,IAAI,QAAQ,EAAE,IAAI,KAAK,SAAS,EAAE,CAAC;YAC1D,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAC/D,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,eAAe,EAAE,CAAC;QACpC,MAAM,MAAM,GAAuB;YAC/B,MAAM,EAAE,KAAK,IAAI,EAAE;gBACf,KAAK,CAAC,KAAK,EAAE,CAAC;gBACd,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YAClD,CAAC;SACJ,CAAC;QACF,8FAA8F;QAC9F,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;QAClG,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QAC7E,IAAI,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC;YAAE,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAC7E,MAAM,YAAY,GAAG,MAAM,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC5E,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC/B,MAAM,YAAY,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QACzE,CAAC;QACD,KAAK,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,QAAQ,EAAE;YACjD,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,MAAM,EAAE,KAAK;YACb,MAAM,EAAE,KAAK,CAAC,MAAM;SACvB,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;YACxB,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;QACnF,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,aAAa,EAAE,CAAC,CAAC;QAClC,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;IACjD,CAAC;IAGD,qEAAqE;IACrE,0EAA0E;IAC1E,uEAAuE;IACvE,qEAAqE;IACrE,KAAK,CAAC,kBAAkB,CAAC,OAAuB,EAAE,GAAc;QAC5D,mEAAmE;QACnE,IAAI,CAAC,cAAc,CAAC,8BAA8B,CAAC;YAAE,OAAO;QAC5D,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,GAAG,CAAC,QAAQ,KAAK,WAAW;YAAE,OAAO;QACzC,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;QAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAChD,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,wBAAwB;YAAE,OAAO;QAC/E,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QAC/C,MAAM,OAAO,GAAG,GAAG,MAAM,WAAW,CAAC;QACrC,IAAI,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE;gBAClD,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,OAAO,EAAE,KAAK;gBACd,gBAAgB,EAAE,IAAI;gBACtB,mBAAmB,EAAE,IAAI;aAC5B,CAAC,CAAC;YACH,IAAI,OAAO,KAAK,IAAI;gBAAE,OAAO;YAC7B,gEAAgE;YAChE,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,GAAG,CAAC,IAAI,GAAG,IAAI,MAAM,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACpF,IAAI,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ;oBAAE,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gBAClE,OAAO;YACX,CAAC;YACD,MAAM,YAAY,GAAG,MAAM,UAAU,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;YACvF,MAAM,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE;gBACjC,QAAQ,EAAE,UAAU,CAAC,oBAAoB,CAAC,YAAY,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;aAC3F,CAAC,CAAC;QACP,CAAC;QAAC,MAAM,CAAC;YACL,kEAAkE;QACtE,CAAC;IACL,CAAC;CAEJ"}
|
|
1
|
+
{"version":3,"file":"HttpGet.js","sourceRoot":"","sources":["../src/HttpGet.ts"],"names":[],"mappings":"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"}
|
package/dist/HttpRequester.d.ts
CHANGED
|
@@ -1,21 +1,10 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import {
|
|
3
|
-
import { WebMaterializationError } from "./WebFetcher.ts";
|
|
4
|
-
import LiveAcquisitions from "./LiveAcquisitions.ts";
|
|
1
|
+
import type { PassthroughResult, SchemeCtx, SchemeManifest, UrlPath } from "@plurnk/plurnk-schemes";
|
|
2
|
+
import { LiveAcquisitions } from "./HttpShared.ts";
|
|
5
3
|
export default class HttpRequester {
|
|
6
4
|
#private;
|
|
7
|
-
constructor({ live, manifest
|
|
8
|
-
manifest: SchemeManifest;
|
|
9
|
-
address: (target: UrlPath) => NetworkAddress | PassthroughResult;
|
|
10
|
-
requestHeaders: (metadata: readonly string[] | null) => Array<[string, string]> | (PassthroughResult & ChannelProducerResult);
|
|
11
|
-
bad: (status: number, scheme: string, kind: string, message: string, extensions?: Readonly<Record<string, unknown>>) => PassthroughResult & ChannelProducerResult;
|
|
12
|
-
seedEntry: () => EntryData;
|
|
13
|
-
passthrough: (result: SchemeResult) => PassthroughResult & ChannelProducerResult;
|
|
14
|
-
responseHeader: (method: string, status: number, statusText: string, responseHeaders: ReadonlyArray<readonly [string, string]>, requestHeaders: ReadonlyArray<readonly [string, string]>) => string;
|
|
15
|
-
writeProjectionIdentity: (subscription: StreamSubscription, identity: string) => Promise<void>;
|
|
16
|
-
cancelled: (url: string, method: string) => PassthroughResult & ChannelProducerResult;
|
|
17
|
-
materializationFailure: (url: string, method: string, error: WebMaterializationError) => PassthroughResult & ChannelProducerResult;
|
|
5
|
+
constructor({ live, manifest }: {
|
|
18
6
|
live: LiveAcquisitions;
|
|
7
|
+
manifest: SchemeManifest;
|
|
19
8
|
});
|
|
20
9
|
request(target: UrlPath, metadata: readonly string[] | null, ctx: SchemeCtx, method: string, body: string | undefined): Promise<PassthroughResult>;
|
|
21
10
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HttpRequester.d.ts","sourceRoot":"","sources":["../src/HttpRequester.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"HttpRequester.d.ts","sourceRoot":"","sources":["../src/HttpRequester.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACR,iBAAiB,EACjB,SAAS,EACT,cAAc,EAEd,OAAO,EACV,MAAM,wBAAwB,CAAC;AAIhC,OAAO,EAEH,gBAAgB,EAanB,MAAM,iBAAiB,CAAC;AAGzB,MAAM,CAAC,OAAO,OAAO,aAAa;;IAI9B,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;QAC5B,IAAI,EAAE,gBAAgB,CAAC;QACvB,QAAQ,EAAE,cAAc,CAAC;KAC5B,EAGA;IAKK,OAAO,CACT,MAAM,EAAE,OAAO,EACf,QAAQ,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,EAClC,GAAG,EAAE,SAAS,EACd,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,GAAG,SAAS,GACzB,OAAO,CAAC,iBAAiB,CAAC,CAqK5B;CACJ"}
|
package/dist/HttpRequester.js
CHANGED
|
@@ -1,74 +1,54 @@
|
|
|
1
1
|
import { MimetypeClassifier, NetworkAddress, Results } from "@plurnk/plurnk-schemes";
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import { responseMimetype } from "./
|
|
5
|
-
import {
|
|
6
|
-
import LiveAcquisitions from "./LiveAcquisitions.js";
|
|
7
|
-
import HostPolicy from "./HostPolicy.js";
|
|
2
|
+
import { outboundFetch } from "@plurnk/plurnk-meta";
|
|
3
|
+
import { HostPolicy } from "./Guard.js";
|
|
4
|
+
import { BODY, LiveAcquisitions, errorDetail, httpAddress, httpBad, httpCancelled, httpMaterializationFailure, httpPassthrough, parseRequestHeaders, responseHeader, responseMimetype, seedEntry, webUserAgent, writeProjectionIdentity, } from "./HttpShared.js";
|
|
5
|
+
import WebFetcher, { WebMaterializationError } from "./WebFetcher.js";
|
|
8
6
|
export default class HttpRequester {
|
|
9
7
|
#manifest;
|
|
10
|
-
#address;
|
|
11
|
-
#requestHeaders;
|
|
12
|
-
#bad;
|
|
13
|
-
#seedEntry;
|
|
14
|
-
#passthrough;
|
|
15
|
-
#responseHeader;
|
|
16
|
-
#writeProjectionIdentity;
|
|
17
|
-
#cancelled;
|
|
18
|
-
#materializationFailure;
|
|
19
8
|
#live;
|
|
20
|
-
constructor({ live, manifest
|
|
9
|
+
constructor({ live, manifest }) {
|
|
21
10
|
this.#live = live;
|
|
22
11
|
this.#manifest = manifest;
|
|
23
|
-
this.#address = address;
|
|
24
|
-
this.#requestHeaders = requestHeaders;
|
|
25
|
-
this.#bad = bad;
|
|
26
|
-
this.#seedEntry = seedEntry;
|
|
27
|
-
this.#passthrough = passthrough;
|
|
28
|
-
this.#responseHeader = responseHeader;
|
|
29
|
-
this.#writeProjectionIdentity = writeProjectionIdentity;
|
|
30
|
-
this.#cancelled = cancelled;
|
|
31
|
-
this.#materializationFailure = materializationFailure;
|
|
32
12
|
}
|
|
33
13
|
// Mutation responses use the same entry/channel and subscription primitives
|
|
34
14
|
// as every live producer; GET acquisition belongs solely to
|
|
35
15
|
// prepareRepresentation.
|
|
36
16
|
async request(target, metadata, ctx, method, body) {
|
|
37
|
-
const address =
|
|
17
|
+
const address = httpAddress(target);
|
|
38
18
|
if (!(address instanceof NetworkAddress))
|
|
39
19
|
return address;
|
|
40
20
|
const { url } = address;
|
|
41
21
|
const { pathname } = address;
|
|
42
|
-
const headers =
|
|
22
|
+
const headers = parseRequestHeaders(metadata);
|
|
43
23
|
if (!Array.isArray(headers))
|
|
44
24
|
return headers;
|
|
45
25
|
const publishedChannel = target.fragment ?? this.#manifest.defaultChannel;
|
|
46
26
|
if (!Object.hasOwn(this.#manifest.channels, publishedChannel)) {
|
|
47
27
|
const availableChannels = Object.keys(this.#manifest.channels);
|
|
48
|
-
return
|
|
28
|
+
return httpBad(404, "http", "channel-not-found", `Channel #${publishedChannel} does not exist on HTTP responses.`, {
|
|
49
29
|
requestedChannel: publishedChannel,
|
|
50
30
|
availableChannels,
|
|
51
31
|
recovery: `Use one of the available channels: ${availableChannels.map((channel) => `#${channel}`).join(", ")}.`,
|
|
52
32
|
retryable: false,
|
|
53
33
|
});
|
|
54
34
|
}
|
|
55
|
-
// Local AbortController: the subscription handle and a KILL of the address both abort it ({§
|
|
35
|
+
// Local AbortController: the subscription handle and a KILL of the address both abort it ({§revalidation}).
|
|
56
36
|
const local = new AbortController();
|
|
57
37
|
const release = this.#live.track(LiveAcquisitions.key(ctx.workspaceId, url), local);
|
|
58
38
|
const handle = { cancel: () => local.abort() };
|
|
59
39
|
// {§http-lifecycle} open() binds an existing entry, so the handler seeds
|
|
60
40
|
// its manifest-owned channel shape before subscribing.
|
|
61
|
-
const written = await ctx.entries.write(pathname,
|
|
41
|
+
const written = await ctx.entries.write(pathname, seedEntry());
|
|
62
42
|
if (Results.isErrorStatus(written.status))
|
|
63
|
-
return
|
|
64
|
-
// open() returns the
|
|
43
|
+
return httpPassthrough(written);
|
|
44
|
+
// open() returns the session+teardown-composed signal — fires on loop.cancel
|
|
65
45
|
// OR our local teardown. Wire it so either path aborts acquisition.
|
|
66
46
|
const subscription = await ctx.subscriptions.open(pathname, handle);
|
|
67
47
|
const onAbort = () => local.abort();
|
|
68
48
|
subscription.addEventListener("abort", onAbort, { once: true });
|
|
69
49
|
let pendingJson;
|
|
70
50
|
try {
|
|
71
|
-
const response = await
|
|
51
|
+
const response = await outboundFetch(url, {
|
|
72
52
|
method,
|
|
73
53
|
body,
|
|
74
54
|
headers: headers.some(([k]) => k.toLowerCase() === "user-agent")
|
|
@@ -80,16 +60,16 @@ export default class HttpRequester {
|
|
|
80
60
|
// {§http-host-policy} — a followed redirect may not leave the operator's hosts.
|
|
81
61
|
if (response.url !== "" && !HostPolicy.permits(response.url)) {
|
|
82
62
|
await response.body?.cancel();
|
|
83
|
-
return
|
|
63
|
+
return httpBad(403, "http", "host-not-permitted", `${new URL(response.url).hostname} is outside the operator's web host policy.`, {
|
|
84
64
|
target: url,
|
|
85
65
|
stage: "acquisition",
|
|
86
66
|
retryable: false,
|
|
87
67
|
});
|
|
88
68
|
}
|
|
89
69
|
const responseMime = responseMimetype(response.headers.get("content-type"));
|
|
90
|
-
// {§http-
|
|
70
|
+
// {§http-lifecycle} — completed binary input uses ordinary entry byte storage;
|
|
91
71
|
// text responses retain their incremental subscription path.
|
|
92
|
-
const header =
|
|
72
|
+
const header = responseHeader(method, response.status, response.statusText, [...response.headers], headers);
|
|
93
73
|
await subscription.notifyChunk("header", header, "text/plain");
|
|
94
74
|
const bodyMime = responseMime;
|
|
95
75
|
if (response.body === null) {
|
|
@@ -111,23 +91,27 @@ export default class HttpRequester {
|
|
|
111
91
|
await subscription.notifyChunk(BODY, "", bodyMime);
|
|
112
92
|
throw error;
|
|
113
93
|
}
|
|
114
|
-
const stored = await ctx.entries.write(pathname, {
|
|
94
|
+
const stored = await ctx.entries.write(pathname, {
|
|
95
|
+
channels: {
|
|
115
96
|
body: { content: "", bytes: projected.bytes, mimetype: bodyMime, state: "active" },
|
|
116
97
|
header: { content: header, mimetype: "text/plain", state: "active" },
|
|
117
|
-
...(projected.readable === null ? {} : {
|
|
98
|
+
...(projected.readable === null ? {} : {
|
|
99
|
+
readable: {
|
|
118
100
|
content: projected.readable.content, mimetype: projected.readable.mimetype, state: "active",
|
|
119
|
-
}
|
|
120
|
-
|
|
101
|
+
},
|
|
102
|
+
}),
|
|
103
|
+
},
|
|
104
|
+
});
|
|
121
105
|
if (Results.isErrorStatus(stored.status)) {
|
|
122
|
-
const result =
|
|
106
|
+
const result = httpPassthrough(stored);
|
|
123
107
|
await subscription.close(result, result.problem?.detail);
|
|
124
108
|
return result;
|
|
125
109
|
}
|
|
126
|
-
await
|
|
110
|
+
await writeProjectionIdentity(subscription, projected.projectionIdentity);
|
|
127
111
|
await subscription.close({ status: 200 }, `HTTP ${response.status}; ${projected.bytes.byteLength} bytes`);
|
|
128
112
|
return { shape: "passthrough", status: 102 };
|
|
129
113
|
}
|
|
130
|
-
// {§http-
|
|
114
|
+
// {§http-lifecycle} Fetch text is replacement-mode UTF-8;
|
|
131
115
|
// Content-Type charset remains response evidence, not a second decoder.
|
|
132
116
|
let bytes = 0;
|
|
133
117
|
const decoder = new TextDecoder();
|
|
@@ -158,21 +142,19 @@ export default class HttpRequester {
|
|
|
158
142
|
}
|
|
159
143
|
const aborted = local.signal.aborted;
|
|
160
144
|
if (aborted) {
|
|
161
|
-
const result =
|
|
145
|
+
const result = httpCancelled(url, method);
|
|
162
146
|
await subscription.close(result, result.problem?.detail);
|
|
163
147
|
return result;
|
|
164
148
|
}
|
|
165
149
|
if (err instanceof WebMaterializationError) {
|
|
166
|
-
const result =
|
|
150
|
+
const result = httpMaterializationFailure(url, method, err);
|
|
167
151
|
await subscription.close(result, result.problem?.detail);
|
|
168
152
|
return result;
|
|
169
153
|
}
|
|
170
154
|
console.error("HTTP acquisition failed", { method, url, err });
|
|
171
|
-
const cause =
|
|
155
|
+
const cause = errorDetail.preview(err);
|
|
172
156
|
const reason = `HTTP ${method} ${url} failed: ${cause}`;
|
|
173
|
-
|
|
174
|
-
// typed materialization failures settled above.
|
|
175
|
-
const result = this.#bad(502, "http", "fetch-failed", reason, {
|
|
157
|
+
const result = httpBad(502, "http", "fetch-failed", reason, {
|
|
176
158
|
target: url,
|
|
177
159
|
method,
|
|
178
160
|
stage: "acquisition",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HttpRequester.js","sourceRoot":"","sources":["../src/HttpRequester.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"HttpRequester.js","sourceRoot":"","sources":["../src/HttpRequester.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { ErrorDetail } from "@plurnk/plurnk-meta";
|
|
2
|
+
import { NetworkAddress, type ChannelProducerResult, type EntryData, type PassthroughResult, type SchemeResult, type StreamSubscription, type UrlPath, type WebMaterializationError } from "@plurnk/plurnk-schemes";
|
|
3
|
+
export declare const BODY = "body";
|
|
4
|
+
export declare const HEADER = "header";
|
|
5
|
+
export declare const FETCHED_AT = "x-plurnk-fetched-at";
|
|
6
|
+
export declare const REQUEST_METHOD = "x-plurnk-request-method";
|
|
7
|
+
export declare const PROJECTION_ID_HEADER = "x-plurnk-projection-id";
|
|
8
|
+
export declare const CACHE_VARIANT_HEADER = "x-plurnk-cache-variant";
|
|
9
|
+
export declare const MATERIALIZER_ID_HEADER = "x-plurnk-materializer-id";
|
|
10
|
+
export declare const OUTBOUND_METHODS: ReadonlySet<string>;
|
|
11
|
+
export declare const HTTP_CHANNELS: Readonly<Record<string, string>>;
|
|
12
|
+
export declare const requireFlagEnv: (key: string) => boolean;
|
|
13
|
+
export declare const requireNonNegativeIntegerEnv: (key: string) => number;
|
|
14
|
+
export declare const requirePositiveIntegerEnv: (key: string) => number;
|
|
15
|
+
export declare const webUserAgent: () => string;
|
|
16
|
+
export type CacheVariant = "default" | "bypass";
|
|
17
|
+
export declare const classifyCacheVariant: (requestHeaders: ReadonlyArray<readonly [string, string]>, responseHeaders: ReadonlyArray<readonly [string, string]>) => CacheVariant;
|
|
18
|
+
export declare const cacheVariantEvidence: (variant: CacheVariant) => string;
|
|
19
|
+
export declare const responseMimetype: (contentType: string | null) => string;
|
|
20
|
+
export declare const errorDetail: ErrorDetail;
|
|
21
|
+
export declare class LiveAcquisitions {
|
|
22
|
+
#private;
|
|
23
|
+
static key(workspaceId: number, url: string): string;
|
|
24
|
+
static composed(outer: AbortSignal | undefined, local: AbortSignal): AbortSignal;
|
|
25
|
+
track(key: string, controller: AbortController): () => void;
|
|
26
|
+
cancel(key: string): boolean;
|
|
27
|
+
}
|
|
28
|
+
export declare const httpBad: (status: number, scheme: string, kind: string, message: string, extensions?: Readonly<Record<string, unknown>>) => PassthroughResult & ChannelProducerResult;
|
|
29
|
+
export declare const httpPassthrough: (result: SchemeResult) => PassthroughResult & ChannelProducerResult;
|
|
30
|
+
export declare const httpCancelled: (url: string, method: string) => PassthroughResult & ChannelProducerResult;
|
|
31
|
+
export declare const httpMaterializationFailure: (url: string, method: string, error: WebMaterializationError) => PassthroughResult & ChannelProducerResult;
|
|
32
|
+
export declare const httpAddress: (target: UrlPath) => NetworkAddress | PassthroughResult;
|
|
33
|
+
export declare const parseRequestHeaders: (metadata: readonly string[] | null) => Array<[string, string]> | (PassthroughResult & ChannelProducerResult);
|
|
34
|
+
export declare const seedEntry: () => EntryData;
|
|
35
|
+
export declare const responseHeader: (method: string, status: number, statusText: string, responseHeaders: ReadonlyArray<readonly [string, string]>, requestHeaders: ReadonlyArray<readonly [string, string]>) => string;
|
|
36
|
+
export declare const writeProjectionIdentity: (subscription: StreamSubscription, identity: string) => Promise<void>;
|
|
37
|
+
export declare const settleEventStream: (subscription: StreamSubscription, response: Response, options: {
|
|
38
|
+
url: string;
|
|
39
|
+
method: string;
|
|
40
|
+
signal: AbortSignal;
|
|
41
|
+
}) => Promise<void>;
|
|
42
|
+
//# sourceMappingURL=HttpShared.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HttpShared.d.ts","sourceRoot":"","sources":["../src/HttpShared.ts"],"names":[],"mappings":"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"}
|