@plurnk/plurnk-schemes-http 1.3.12 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/.env.defaults +18 -46
  2. package/README.md +74 -23
  3. package/SPEC.md +487 -124
  4. package/dist/Config.d.ts +3 -0
  5. package/dist/Config.d.ts.map +1 -0
  6. package/dist/Config.js +18 -0
  7. package/dist/Config.js.map +1 -0
  8. package/dist/ContentType.d.ts +2 -0
  9. package/dist/ContentType.d.ts.map +1 -0
  10. package/dist/ContentType.js +15 -0
  11. package/dist/ContentType.js.map +1 -0
  12. package/dist/ErrorDetail.d.ts +6 -0
  13. package/dist/ErrorDetail.d.ts.map +1 -0
  14. package/dist/ErrorDetail.js +19 -0
  15. package/dist/ErrorDetail.js.map +1 -0
  16. package/dist/Guard.d.ts +1 -1
  17. package/dist/Guard.d.ts.map +1 -1
  18. package/dist/Guard.js +95 -55
  19. package/dist/Guard.js.map +1 -1
  20. package/dist/Http.d.ts +3 -16
  21. package/dist/Http.d.ts.map +1 -1
  22. package/dist/Http.js +817 -331
  23. package/dist/Http.js.map +1 -1
  24. package/dist/TavilyExtract.d.ts +35 -0
  25. package/dist/TavilyExtract.d.ts.map +1 -0
  26. package/dist/TavilyExtract.js +204 -0
  27. package/dist/TavilyExtract.js.map +1 -0
  28. package/dist/WebFetcher.d.ts +88 -18
  29. package/dist/WebFetcher.d.ts.map +1 -1
  30. package/dist/WebFetcher.js +588 -70
  31. package/dist/WebFetcher.js.map +1 -1
  32. package/dist/Ws.d.ts +7 -3
  33. package/dist/Ws.d.ts.map +1 -1
  34. package/dist/Ws.js +432 -96
  35. package/dist/Ws.js.map +1 -1
  36. package/dist/index.d.ts +2 -3
  37. package/dist/index.d.ts.map +1 -1
  38. package/dist/index.js +4 -10
  39. package/dist/index.js.map +1 -1
  40. package/docs/http.md +108 -53
  41. package/docs/wss.md +39 -43
  42. package/package.json +14 -13
  43. package/dist/Browser.d.ts +0 -84
  44. package/dist/Browser.d.ts.map +0 -1
  45. package/dist/Browser.js +0 -273
  46. package/dist/Browser.js.map +0 -1
  47. package/scripts/install-browser.mjs +0 -19
@@ -0,0 +1,3 @@
1
+ export declare const requireNonNegativeIntegerEnv: (key: string) => number;
2
+ export declare const requirePositiveIntegerEnv: (key: string) => number;
3
+ //# sourceMappingURL=Config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Config.d.ts","sourceRoot":"","sources":["../src/Config.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,4BAA4B,QAAS,MAAM,KAAG,MAU1D,CAAC;AAEF,eAAO,MAAM,yBAAyB,QAAS,MAAM,KAAG,MAIvD,CAAC"}
package/dist/Config.js ADDED
@@ -0,0 +1,18 @@
1
+ export const requireNonNegativeIntegerEnv = (key) => {
2
+ const raw = process.env[key];
3
+ if (raw === undefined || raw.trim().length === 0) {
4
+ throw new Error(`${key} is unset.`);
5
+ }
6
+ const value = Number(raw);
7
+ if (!Number.isSafeInteger(value) || value < 0) {
8
+ throw new Error(`${key} must be a non-negative integer.`);
9
+ }
10
+ return value;
11
+ };
12
+ export const requirePositiveIntegerEnv = (key) => {
13
+ const value = requireNonNegativeIntegerEnv(key);
14
+ if (value === 0)
15
+ throw new Error(`${key} must be a positive integer.`);
16
+ return value;
17
+ };
18
+ //# sourceMappingURL=Config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Config.js","sourceRoot":"","sources":["../src/Config.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,GAAW,EAAU,EAAE;IAChE,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CAAC,GAAG,GAAG,YAAY,CAAC,CAAC;IACxC,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC1B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,GAAG,GAAG,kCAAkC,CAAC,CAAC;IAC9D,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,GAAW,EAAU,EAAE;IAC7D,MAAM,KAAK,GAAG,4BAA4B,CAAC,GAAG,CAAC,CAAC;IAChD,IAAI,KAAK,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,GAAG,8BAA8B,CAAC,CAAC;IACvE,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const responseMimetype: (contentType: string | null) => string;
2
+ //# sourceMappingURL=ContentType.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContentType.d.ts","sourceRoot":"","sources":["../src/ContentType.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,gBAAgB,gBAAiB,MAAM,GAAG,IAAI,KAAG,MAO7D,CAAC"}
@@ -0,0 +1,15 @@
1
+ // HTTP response media-type normalization {§http-text-decoding}. Classification
2
+ // consumes the WHATWG MIME essence; invalid or absent metadata is not text proof.
3
+ import { MIMEType } from "node:util";
4
+ const UNKNOWN_RESPONSE_MIMETYPE = "application/octet-stream";
5
+ export const responseMimetype = (contentType) => {
6
+ if (contentType === null)
7
+ return UNKNOWN_RESPONSE_MIMETYPE;
8
+ try {
9
+ return new MIMEType(contentType).essence;
10
+ }
11
+ catch {
12
+ return UNKNOWN_RESPONSE_MIMETYPE;
13
+ }
14
+ };
15
+ //# sourceMappingURL=ContentType.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContentType.js","sourceRoot":"","sources":["../src/ContentType.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,kFAAkF;AAElF,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC,MAAM,yBAAyB,GAAG,0BAA0B,CAAC;AAE7D,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,WAA0B,EAAU,EAAE;IACnE,IAAI,WAAW,KAAK,IAAI;QAAE,OAAO,yBAAyB,CAAC;IAC3D,IAAI,CAAC;QACD,OAAO,IAAI,QAAQ,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC;IAC7C,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,yBAAyB,CAAC;IACrC,CAAC;AACL,CAAC,CAAC"}
@@ -0,0 +1,6 @@
1
+ export declare const ERROR_DETAIL_LIMIT = "PLURNK_SCHEMES_HTTP_ERROR_DETAIL_LIMIT";
2
+ export default class ErrorDetail {
3
+ static configuredLimit(): number;
4
+ static preview(value: unknown, limit: number): string;
5
+ }
6
+ //# sourceMappingURL=ErrorDetail.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ErrorDetail.d.ts","sourceRoot":"","sources":["../src/ErrorDetail.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB,2CAA2C,CAAC;AAE3E,MAAM,CAAC,OAAO,OAAO,WAAW;IAC5B,MAAM,CAAC,eAAe,IAAI,MAAM,CAU/B;IAED,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAGpD;CACJ"}
@@ -0,0 +1,19 @@
1
+ export const ERROR_DETAIL_LIMIT = "PLURNK_SCHEMES_HTTP_ERROR_DETAIL_LIMIT";
2
+ export default class ErrorDetail {
3
+ static configuredLimit() {
4
+ const raw = process.env[ERROR_DETAIL_LIMIT];
5
+ if (raw === undefined || raw === "") {
6
+ throw new Error(`${ERROR_DETAIL_LIMIT} must be set.`);
7
+ }
8
+ const limit = Number(raw);
9
+ if (!Number.isSafeInteger(limit) || limit < 0) {
10
+ throw new Error(`${ERROR_DETAIL_LIMIT} must be a non-negative integer.`);
11
+ }
12
+ return limit;
13
+ }
14
+ static preview(value, limit) {
15
+ const text = value instanceof Error ? value.message : String(value);
16
+ return text.length > limit ? `${text.slice(0, limit)}...` : text;
17
+ }
18
+ }
19
+ //# sourceMappingURL=ErrorDetail.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ErrorDetail.js","sourceRoot":"","sources":["../src/ErrorDetail.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,kBAAkB,GAAG,wCAAwC,CAAC;AAE3E,MAAM,CAAC,OAAO,OAAO,WAAW;IAC5B,MAAM,CAAC,eAAe;QAClB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAC5C,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,EAAE,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,GAAG,kBAAkB,eAAe,CAAC,CAAC;QAC1D,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YAC5C,MAAM,IAAI,KAAK,CAAC,GAAG,kBAAkB,kCAAkC,CAAC,CAAC;QAC7E,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,KAAc,EAAE,KAAa;QACxC,MAAM,IAAI,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACpE,OAAO,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IACrE,CAAC;CACJ"}
package/dist/Guard.d.ts CHANGED
@@ -8,7 +8,7 @@ export default class Guard {
8
8
  static fetch(raw: string, init: {
9
9
  method: string;
10
10
  body: string | undefined;
11
- headers: Array<[string, string]>;
11
+ headers: ReadonlyArray<readonly [string, string]>;
12
12
  }, signal: AbortSignal): Promise<Response>;
13
13
  }
14
14
  //# sourceMappingURL=Guard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Guard.d.ts","sourceRoot":"","sources":["../src/Guard.ts"],"names":[],"mappings":"AAeA,qBAAa,iBAAkB,SAAQ,KAAK;IACxC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,YAAY,GAAG,EAAE,MAAM,EAItB;CACJ;AAED,MAAM,CAAC,OAAO,OAAO,KAAK;IAItB,MAAM,CAAC,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAiB1C;IAMD,OAAa,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAatD;IAOD,OAAa,KAAK,CACd,GAAG,EAAE,MAAM,EACX,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;QAAC,OAAO,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;KAAE,EACpF,MAAM,EAAE,WAAW,GACpB,OAAO,CAAC,QAAQ,CAAC,CAkBnB;CACJ"}
1
+ {"version":3,"file":"Guard.d.ts","sourceRoot":"","sources":["../src/Guard.ts"],"names":[],"mappings":"AA8DA,qBAAa,iBAAkB,SAAQ,KAAK;IACxC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,YAAY,GAAG,EAAE,MAAM,EAKtB;CACJ;AAED,MAAM,CAAC,OAAO,OAAO,KAAK;IAGtB,MAAM,CAAC,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAM1C;IAID,OAAa,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CActD;IAOD,OAAa,KAAK,CACd,GAAG,EAAE,MAAM,EACX,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;QAAC,OAAO,EAAE,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;KAAE,EACrG,MAAM,EAAE,WAAW,GACpB,OAAO,CAAC,QAAQ,CAAC,CA4BnB;CACJ"}
package/dist/Guard.js CHANGED
@@ -1,59 +1,82 @@
1
- // SSRF guard for the fetch path (#456; ported from execs-search Pages.ts, which
2
- // deletes its copy as prefetch delegates here — execs #387). Every request —
3
- // the initial target AND every redirect hop — must resolve to a PUBLIC address:
4
- // a public URL redirecting into private space is the classic SSRF, so redirects
5
- // are followed MANUALLY and re-guarded per hop. The residual DNS-rebinding
6
- // sliver (the runtime re-resolves after our check) is accepted day-one, same as
7
- // the reference. Byte path only day-one; the chromium render navigation is a
8
- // separate surface tracked on #456.
1
+ // {§automatic-fetch-check} — WebFetcher's initial byte target and every
2
+ // redirect hop must resolve only to ordinary globally reachable unicast
3
+ // addresses. Redirects are followed manually so checking and Fetch-standard
4
+ // request transitions share one automatic-acquisition seam.
9
5
  import dns from "node:dns/promises";
10
6
  import net from "node:net";
11
- import { requireNumEnv } from "./Browser.js";
12
- // A target (or a redirect hop) that resolved to a non-public address. Http maps
13
- // it to a 403 dead-signal, distinct from a network 502.
7
+ import { requireNonNegativeIntegerEnv } from "./Config.js";
8
+ const BLOCKED = new net.BlockList();
9
+ for (const [network, prefix] of [
10
+ ["0.0.0.0", 8],
11
+ ["10.0.0.0", 8],
12
+ ["100.64.0.0", 10],
13
+ ["127.0.0.0", 8],
14
+ ["169.254.0.0", 16],
15
+ ["172.16.0.0", 12],
16
+ ["192.0.0.0", 24],
17
+ ["192.0.2.0", 24],
18
+ ["192.88.99.0", 24],
19
+ ["192.168.0.0", 16],
20
+ ["198.18.0.0", 15],
21
+ ["198.51.100.0", 24],
22
+ ["203.0.113.0", 24],
23
+ ["224.0.0.0", 4],
24
+ ["240.0.0.0", 4],
25
+ ])
26
+ BLOCKED.addSubnet(network, prefix, "ipv4");
27
+ for (const [network, prefix] of [
28
+ ["2001::", 23],
29
+ ["2001:db8::", 32],
30
+ ["2002::", 16],
31
+ ["3fff::", 20],
32
+ ])
33
+ BLOCKED.addSubnet(network, prefix, "ipv6");
34
+ const IPV4_MAPPED = new net.BlockList();
35
+ IPV4_MAPPED.addSubnet("0.0.0.0", 0, "ipv4");
36
+ const GLOBAL_IPV6 = new net.BlockList();
37
+ GLOBAL_IPV6.addSubnet("2000::", 3, "ipv6");
38
+ const REDIRECT_STATUSES = new Set([301, 302, 303, 307, 308]);
39
+ const BODY_HEADERS = new Set(["content-encoding", "content-language", "content-location", "content-type"]);
40
+ const AUTHORIZATION_HEADERS = new Set(["authorization"]);
41
+ const withoutHeaders = (headers, names) => headers
42
+ .filter(([name]) => !names.has(name.toLowerCase()))
43
+ .map(([name, value]) => [name, value]);
44
+ const safeUrl = (raw) => {
45
+ try {
46
+ const url = new URL(raw);
47
+ url.username = "";
48
+ url.password = "";
49
+ return url.href;
50
+ }
51
+ catch {
52
+ return raw;
53
+ }
54
+ };
55
+ // A target (or redirect hop) that automatic acquisition cannot follow.
14
56
  export class GuardBlockedError extends Error {
15
57
  url;
16
58
  constructor(url) {
17
- super(`SSRF guard: ${url} is not a public http(s) target`);
59
+ const sanitized = safeUrl(url);
60
+ super(`Automatic fetch check: ${sanitized} is not a public http(s) target`);
18
61
  this.name = "GuardBlockedError";
19
- this.url = url;
62
+ this.url = sanitized;
20
63
  }
21
64
  }
22
65
  export default class Guard {
23
- // RFC-reserved ranges (protocol constants, never tunables): loopback,
24
- // RFC1918, link-local/metadata (169.254), CGNAT (100.64/10), unspecified,
25
- // 0.0.0.0/8; v6 ULA + link-local + v4-mapped re-checked as v4.
66
+ // Static protocol ranges, not operator policy. IPv4-mapped IPv6 is checked
67
+ // against the same v4 block list after WHATWG URL canonicalization.
26
68
  static isPublicAddress(ip) {
27
- if (net.isIP(ip) === 4) {
28
- const [a, b] = ip.split(".").map(Number);
29
- if (a === 0 || a === 10 || a === 127)
30
- return false;
31
- if (a === 169 && b === 254)
32
- return false;
33
- if (a === 172 && b >= 16 && b <= 31)
34
- return false;
35
- if (a === 192 && b === 168)
36
- return false;
37
- if (a === 100 && b >= 64 && b <= 127)
38
- return false;
39
- return true;
40
- }
41
- const v6 = ip.toLowerCase();
42
- if (v6 === "::" || v6 === "::1")
43
- return false;
44
- if (v6.startsWith("fc") || v6.startsWith("fd"))
45
- return false;
46
- if (/^fe[89ab]/.test(v6))
69
+ const family = net.isIP(ip);
70
+ if (family === 0)
47
71
  return false;
48
- const mapped = /^::ffff:(\d+\.\d+\.\d+\.\d+)$/.exec(v6);
49
- if (mapped !== null)
50
- return Guard.isPublicAddress(mapped[1]);
51
- return true;
72
+ if (family === 4)
73
+ return !BLOCKED.check(ip, "ipv4");
74
+ if (IPV4_MAPPED.check(ip, "ipv6"))
75
+ return !BLOCKED.check(ip, "ipv6");
76
+ return GLOBAL_IPV6.check(ip, "ipv6") && !BLOCKED.check(ip, "ipv6");
52
77
  }
53
- // http(s)/ws(s) only, no localhost, and EVERY resolved address public. An IP
78
+ // http(s) only, no localhost, and EVERY resolved address public. An IP
54
79
  // literal skips DNS; a hostname resolves and every A/AAAA must be public.
55
- // ws:/wss: ride the same range check — a WebSocket into private space is the
56
- // same SSRF as a fetch (the Ws scheme guards its target through here).
57
80
  static async isPublicUrl(raw) {
58
81
  let url;
59
82
  try {
@@ -62,7 +85,9 @@ export default class Guard {
62
85
  catch {
63
86
  return false;
64
87
  }
65
- if (!["http:", "https:", "ws:", "wss:"].includes(url.protocol))
88
+ if (!["http:", "https:"].includes(url.protocol))
89
+ return false;
90
+ if (url.username !== "" || url.password !== "")
66
91
  return false;
67
92
  const host = url.hostname.toLowerCase().replace(/^\[|\]$/g, "");
68
93
  if (host === "localhost" || host.endsWith(".localhost"))
@@ -77,31 +102,46 @@ export default class Guard {
77
102
  return false; // unresolvable is dead anyway
78
103
  }
79
104
  }
80
- // Guarded fetch: re-guard every hop, follow up to PLURNK_SCHEMES_HTTP_REDIRECTS
81
- // manually (floor-set knob — unset crashes). Method/body downgrade follows the
82
- // fetch spec (301/302 on a non-GET/HEAD and any 303 → GET, body dropped;
83
- // 307/308 preserve). Throws GuardBlockedError on a private hop; hands back the
84
- // final response (incl. a terminal 3xx when hops run out) otherwise.
105
+ // Automatic fetch: re-check every hop, follow up to PLURNK_SCHEMES_HTTP_REDIRECTS
106
+ // manually (floor-set knob — unset crashes). Method, body, body headers, and
107
+ // cross-origin Authorization follow WHATWG HTTP-redirect fetch. Throws
108
+ // GuardBlockedError on a non-public hop; hands back the final response
109
+ // (including a terminal redirect when hops run out) otherwise.
85
110
  static async fetch(raw, init, signal) {
86
111
  let target = raw;
87
112
  let method = init.method;
88
113
  let body = init.body;
89
- let hops = requireNumEnv("PLURNK_SCHEMES_HTTP_REDIRECTS");
114
+ let headers = init.headers.map(([name, value]) => [name, value]);
115
+ let hops = requireNonNegativeIntegerEnv("PLURNK_SCHEMES_HTTP_REDIRECTS");
90
116
  while (true) {
91
- if (!(await Guard.isPublicUrl(target)))
117
+ let current;
118
+ try {
119
+ current = new URL(target);
120
+ }
121
+ catch {
92
122
  throw new GuardBlockedError(target);
93
- const response = await fetch(target, { method, body, headers: init.headers, signal, redirect: "manual" });
94
- if (response.status < 300 || response.status >= 400)
123
+ }
124
+ if (!["http:", "https:"].includes(current.protocol) || !(await Guard.isPublicUrl(current.href))) {
125
+ throw new GuardBlockedError(current.href);
126
+ }
127
+ const response = await fetch(current.href, { method, body, headers, signal, redirect: "manual" });
128
+ if (!REDIRECT_STATUSES.has(response.status))
95
129
  return response;
96
130
  const location = response.headers.get("location");
97
131
  if (location === null || hops <= 0)
98
132
  return response;
133
+ await response.body?.cancel();
99
134
  hops -= 1;
100
- target = new URL(location, target).href;
101
- if (response.status === 303 || ((response.status === 301 || response.status === 302) && method !== "GET" && method !== "HEAD")) {
135
+ const next = new URL(location, current);
136
+ if (((response.status === 301 || response.status === 302) && method === "POST")
137
+ || (response.status === 303 && method !== "GET" && method !== "HEAD")) {
102
138
  method = "GET";
103
139
  body = undefined;
140
+ headers = withoutHeaders(headers, BODY_HEADERS);
104
141
  }
142
+ if (current.origin !== next.origin)
143
+ headers = withoutHeaders(headers, AUTHORIZATION_HEADERS);
144
+ target = next.href;
105
145
  }
106
146
  }
107
147
  }
package/dist/Guard.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Guard.js","sourceRoot":"","sources":["../src/Guard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Guard.js","sourceRoot":"","sources":["../src/Guard.ts"],"names":[],"mappings":"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"}
package/dist/Http.d.ts CHANGED
@@ -1,26 +1,13 @@
1
- import type { SchemeCtx, PassthroughResult, SchemeManifest, SchemeHandler, ReadStatement, SendStatement, EditStatement, KillStatement, FindStatement } from "@plurnk/plurnk-schemes";
2
- import { type RenderResult } from "./Browser.ts";
3
- interface Renderer {
4
- ready?(): Promise<string>;
5
- render(url: string, opts: {
6
- workerId: number;
7
- signal?: AbortSignal;
8
- headers?: ReadonlyArray<readonly [string, string]>;
9
- }): Promise<RenderResult>;
10
- close?(): Promise<void>;
11
- }
1
+ import type { SchemeCtx, PassthroughResult, SchemeManifest, SchemeHandler, RepresentationPreparationRequest, RepresentationPreparationResult, SendStatement, EditStatement, KillStatement } from "@plurnk/plurnk-schemes";
12
2
  export default class Http implements SchemeHandler {
13
3
  #private;
14
4
  static manifest: SchemeManifest;
15
- constructor(browser?: Renderer);
5
+ constructor();
16
6
  ready(): Promise<void>;
17
- close(): Promise<void>;
18
- prepareFind(statement: FindStatement, ctx: SchemeCtx): Promise<PassthroughResult>;
19
- read(statement: ReadStatement, ctx: SchemeCtx): Promise<PassthroughResult>;
7
+ prepareRepresentation(request: RepresentationPreparationRequest, ctx: SchemeCtx): Promise<RepresentationPreparationResult>;
20
8
  editBatch(statements: readonly EditStatement[], ctx: SchemeCtx): Promise<PassthroughResult>;
21
9
  edit(statement: EditStatement, ctx: SchemeCtx): Promise<PassthroughResult>;
22
10
  kill(statement: KillStatement, ctx: SchemeCtx): Promise<PassthroughResult>;
23
11
  send(statement: SendStatement, ctx: SchemeCtx): Promise<PassthroughResult>;
24
12
  }
25
- export {};
26
13
  //# sourceMappingURL=Http.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Http.d.ts","sourceRoot":"","sources":["../src/Http.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EACR,SAAS,EAET,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,aAAa,EACb,aAAa,EACb,aAAa,EACb,aAAa,EAGb,aAAa,EAChB,MAAM,wBAAwB,CAAC;AAGhC,OAAgB,EAA6B,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AAmBrF,UAAU,QAAQ;IACd,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1B,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,WAAW,CAAC;QAAC,OAAO,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;KAAE,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IACjJ,KAAK,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B;AAED,MAAM,CAAC,OAAO,OAAO,IAAK,YAAW,aAAa;;IAC9C,MAAM,CAAC,QAAQ,EAAE,cAAc,CAoB7B;IAMF,YAAY,OAAO,GAAE,QAAwB,EAG5C;IAEK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAG3B;IAEK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAE3B;IAMK,WAAW,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAoCtF;IAKK,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAsB/E;IAIK,SAAS,CAAC,UAAU,EAAE,SAAS,aAAa,EAAE,EAAE,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAYhG;IAEK,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAE/E;IAIK,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAK/E;IAQK,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAqB/E;CAmTJ"}
1
+ {"version":3,"file":"Http.d.ts","sourceRoot":"","sources":["../src/Http.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACR,SAAS,EAGT,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,gCAAgC,EAChC,+BAA+B,EAC/B,aAAa,EACb,aAAa,EACb,aAAa,EAOhB,MAAM,wBAAwB,CAAC;AAuMhC,MAAM,CAAC,OAAO,OAAO,IAAK,YAAW,aAAa;;IAC9C,MAAM,CAAC,QAAQ,EAAE,cAAc,CAmB7B;IAIF,cAGC;IAEK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAE3B;IAKK,qBAAqB,CACvB,OAAO,EAAE,gCAAgC,EACzC,GAAG,EAAE,SAAS,GACf,OAAO,CAAC,+BAA+B,CAAC,CAS1C;IAoNK,SAAS,CAAC,UAAU,EAAE,SAAS,aAAa,EAAE,EAAE,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAqChG;IAEK,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAE/E;IAIK,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAS/E;IAQK,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAoC/E;CAypBJ"}