@procedures/peer 0.26.1 → 0.27.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.
@@ -1 +1 @@
1
- {"version":3,"file":"tracking.d.ts","sourceRoot":"","sources":["../../src/host/tracking.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,IAAI,YAAY,EAAE,MAAM,WAAW,CAAC;AACjF,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAA0C,MAAM,wBAAwB,CAAC;AACxH,OAAO,EAQL,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,cAAc,EAGpB,MAAM,oBAAoB,CAAC;AAE5B;;;;;;GAMG;AACH,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG,OAAO,GAAG,MAAM,CAAC;AAE5D,2GAA2G;AAC3G,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,0DAA0D;IAC1D,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC;CACnC;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAMrG;AAED,+HAA+H;AAC/H,eAAO,MAAM,eAAe,EAAE,WAAgH,CAAC;AAE/I,iHAAiH;AACjH,MAAM,WAAW,WAAY,SAAQ,cAAc;IACjD,0FAA0F;IAC1F,WAAW,IAAI,iBAAiB,CAAC;CAClC;AAED,sCAAsC;AACtC,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC,qEAAqE;IACrE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,sEAAsE;IACtE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,6HAA6H;IAC7H,QAAQ,CAAC,IAAI,EAAE,MAAM,SAAS,GAAG,IAAI,CAAC;IACtC,gHAAgH;IAChH,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB;AAkID;;;GAGG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,WAAW,CAYpE;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,WAAW,GAAG,CACxB,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,YAAY,EACjB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,EACpD,SAAS,CAAC,EAAE,aAAa,KACtB,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnB,sCAAsC;AACtC,MAAM,WAAW,kBAAkB;IACjC,qEAAqE;IACrE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,yEAAyE;IACzE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,oHAAoH;IACpH,QAAQ,CAAC,IAAI,EAAE,MAAM,SAAS,GAAG,IAAI,CAAC;CACvC;AAiBD,qEAAqE;AACrE,wBAAgB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,WAAW,CAiCpE"}
1
+ {"version":3,"file":"tracking.d.ts","sourceRoot":"","sources":["../../src/host/tracking.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,IAAI,YAAY,EAAE,MAAM,WAAW,CAAC;AACjF,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAA0C,MAAM,wBAAwB,CAAC;AACxH,OAAO,EAQL,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,cAAc,EAGpB,MAAM,oBAAoB,CAAC;AAE5B;;;;;;GAMG;AACH,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG,OAAO,GAAG,MAAM,CAAC;AAE5D,2GAA2G;AAC3G,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,0DAA0D;IAC1D,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC;CACnC;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAMrG;AAED,+HAA+H;AAC/H,eAAO,MAAM,eAAe,EAAE,WAAgH,CAAC;AAE/I,iHAAiH;AACjH,MAAM,WAAW,WAAY,SAAQ,cAAc;IACjD,0FAA0F;IAC1F,WAAW,IAAI,iBAAiB,CAAC;CAClC;AAED,sCAAsC;AACtC,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC,qEAAqE;IACrE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,sEAAsE;IACtE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,6HAA6H;IAC7H,QAAQ,CAAC,IAAI,EAAE,MAAM,SAAS,GAAG,IAAI,CAAC;IACtC,gHAAgH;IAChH,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB;AAkID;;;GAGG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,WAAW,CAepE;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,WAAW,GAAG,CACxB,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,YAAY,EACjB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,EACpD,SAAS,CAAC,EAAE,aAAa,KACtB,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnB,sCAAsC;AACtC,MAAM,WAAW,kBAAkB;IACjC,qEAAqE;IACrE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,yEAAyE;IACzE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,oHAAoH;IACpH,QAAQ,CAAC,IAAI,EAAE,MAAM,SAAS,GAAG,IAAI,CAAC;CACvC;AAiBD,qEAAqE;AACrE,wBAAgB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,WAAW,CAiCpE"}
@@ -164,6 +164,9 @@ export function faceHandler(options) {
164
164
  getRegistry: () => server.getRegistry(),
165
165
  // The principal before a call (CLI-69): the MCP face keys the fair share of its tasks with it
166
166
  identify: (credentials) => server.identify(credentials),
167
+ // The one admission of a network request before its calls (CLI-2b): the MCP face admits each
168
+ // HTTP request with it, and each call of that request uses the admitted credentials
169
+ admission: (credentials) => server.admission(credentials),
167
170
  handle: (request) => {
168
171
  const life = options.life();
169
172
  return life ? trackedCall(life, options, request) : server.handle(request);
@@ -1 +1 @@
1
- {"version":3,"file":"tracking.js","sourceRoot":"","sources":["../../src/host/tracking.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tracking.js","sourceRoot":"","sources":["../../src/host/tracking.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/peer/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAoD,KAAK,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACxG,OAAO,EAIL,KAAK,MAAM,EACX,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,WAAW,EACjB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EAAuB,eAAe,EAAE,aAAa,EAA4B,MAAM,aAAa,CAAC;AACjH,OAAO,EAAwG,KAAK,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAOvL,MAAM,WAAW,WAAW;IAC1B,qBAAqB;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,2BAA2B;IAC3B,UAAU,EAAE,eAAe,EAAE,CAAC;IAC9B,6CAA6C;IAC7C,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,gCAAgC;IAChC,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IAC7B,2GAA2G;IAC3G,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,aAAa,KAAK,OAAO,CAAC,GAAG,SAAS,CAAC;IACxD;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B;;;;;OAKG;IACH,MAAM,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IAChC,6EAA6E;IAC7E,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC/B;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,aAAa,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,IAAI;IACnB,cAAc;IACd,EAAE,EAAE,MAAM,CAAC;IACX,wEAAwE;IACxE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB;;;;;OAKG;IACH,IAAI,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,2BAA2B;IAC3B,YAAY,IAAI,YAAY,EAAE,CAAC;IAC/B,4BAA4B;IAC5B,SAAS,IAAI,eAAe,CAAC;IAC7B,kFAAkF;IAClF,OAAO,IAAI,aAAa,CAAC;IACzB,yEAAyE;IACzE,WAAW,IAAI,MAAM,EAAE,CAAC;IACxB;;;OAGG;IACH,SAAS,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAAC;CACzC;AAuED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,GAAE,MAAe,GAAG,oBAAoB,CAgBjG;AAKD;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,OAA0G,CAAC;AAuEtI;;;GAGG;AACH,wBAAsB,UAAU,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAEpE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/peer/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAoD,KAAK,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACxG,OAAO,EAKL,KAAK,MAAM,EACX,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,WAAW,EACjB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EAAuB,eAAe,EAAE,aAAa,EAA4B,MAAM,aAAa,CAAC;AACjH,OAAO,EAAwG,KAAK,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAuBvL,MAAM,WAAW,WAAW;IAC1B,qBAAqB;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,2BAA2B;IAC3B,UAAU,EAAE,eAAe,EAAE,CAAC;IAC9B,6CAA6C;IAC7C,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,gCAAgC;IAChC,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IAC7B,2GAA2G;IAC3G,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,aAAa,KAAK,OAAO,CAAC,GAAG,SAAS,CAAC;IACxD;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B;;;;;OAKG;IACH,MAAM,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IAChC,6EAA6E;IAC7E,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC/B;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,aAAa,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,IAAI;IACnB,cAAc;IACd,EAAE,EAAE,MAAM,CAAC;IACX,wEAAwE;IACxE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB;;;;;OAKG;IACH,IAAI,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,2BAA2B;IAC3B,YAAY,IAAI,YAAY,EAAE,CAAC;IAC/B,4BAA4B;IAC5B,SAAS,IAAI,eAAe,CAAC;IAC7B,kFAAkF;IAClF,OAAO,IAAI,aAAa,CAAC;IACzB,yEAAyE;IACzE,WAAW,IAAI,MAAM,EAAE,CAAC;IACxB;;;OAGG;IACH,SAAS,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAAC;CACzC;AAuED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,GAAE,MAAe,GAAG,oBAAoB,CAgBjG;AAKD;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,OAA0G,CAAC;AAuEtI;;;GAGG;AACH,wBAAsB,UAAU,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAEpE"}
@@ -15,10 +15,27 @@
15
15
  * `/health` route or token check of its own.
16
16
  */
17
17
  import { daemon, embeddedProcess, service } from "@mark1russell7/service";
18
- import { hostPolicy, seconds, } from "@procedures/client";
18
+ import { hostPolicy, isLoopbackHost, seconds, } from "@procedures/client";
19
19
  import { defaultServerUrlStrategy, rpcServerUrlStrategy } from "@procedures/client/node";
20
20
  import { createProcedureHost, httpFace, LOCAL_LISTENER_KNOBS, wsFace } from "../host/index.js";
21
- import { originAllowed } from "./security.js";
21
+ /**
22
+ * The origin rule of a peer, as data for the browser checks of the core (CLI-2b): a web page of a
23
+ * loopback origin (any port), or an origin of the list. The core check (`checkBrowserRequest`)
24
+ * calls it one time for each request, after the check of the Host header. The peer has no check
25
+ * of its own: its token and its request hook are the checks of the server of its host.
26
+ */
27
+ function peerOrigins(allowlist = []) {
28
+ return (origin) => {
29
+ if (allowlist.includes(origin))
30
+ return true;
31
+ try {
32
+ return isLoopbackHost(new URL(origin).hostname);
33
+ }
34
+ catch {
35
+ return false;
36
+ }
37
+ };
38
+ }
22
39
  // =============================================================================
23
40
  // Implementation
24
41
  // =============================================================================
@@ -45,7 +62,7 @@ function httpOptionsOf(config, browser) {
45
62
  cors: config.cors ?? false,
46
63
  ...(config.urlStrategy === "rpc" ? { urlStrategy: rpcServerUrlStrategy } : config.urlStrategy === "rest" ? { urlStrategy: defaultServerUrlStrategy } : {}),
47
64
  // The browser checks follow the rule of the peer: loopback origins and the listed ones
48
- allowedOrigins: browser.allowedOrigins ?? ((origin) => originAllowed(origin, config.corsOrigins)),
65
+ allowedOrigins: browser.allowedOrigins ?? peerOrigins(config.corsOrigins),
49
66
  ...(browser.allowedHosts !== undefined ? { allowedHosts: browser.allowedHosts } : {}),
50
67
  // The RESTful strategy calls by GET
51
68
  allowGet: browser.allowGet ?? config.urlStrategy === "rest",
@@ -56,7 +73,7 @@ function httpOptionsOf(config, browser) {
56
73
  function wsOptionsOf(config, browser) {
57
74
  return {
58
75
  path: config.path ?? "/ws",
59
- allowedOrigins: browser.allowedOrigins ?? ((origin) => originAllowed(origin, config.origins)),
76
+ allowedOrigins: browser.allowedOrigins ?? peerOrigins(config.origins),
60
77
  ...(browser.allowedHosts !== undefined ? { allowedHosts: browser.allowedHosts } : {}),
61
78
  };
62
79
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/peer/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/peer/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/package",
3
3
  "name": "@procedures/peer",
4
- "version": "0.26.1",
4
+ "version": "0.27.0",
5
5
  "description": "Serve procedures: createProcedureHost() gives the parts of a service, with HTTP, WebSocket and MCP faces on one listener. Also peers, server.create, server.call and server.connections, and manifests.",
6
6
  "keywords": [
7
7
  "server",
@@ -67,9 +67,9 @@
67
67
  "provenance": true
68
68
  },
69
69
  "devDependencies": {
70
- "@procedures/better-auth": "0.26.1",
71
- "@procedures/fs": "0.26.1",
72
- "@procedures/mcp-server": "0.26.1",
70
+ "@procedures/better-auth": "0.27.0",
71
+ "@procedures/fs": "0.27.0",
72
+ "@procedures/mcp-server": "0.27.0",
73
73
  "@modelcontextprotocol/sdk": "^1.0.0",
74
74
  "typescript": "^7.0.2",
75
75
  "@types/node": "^22.0.0",
@@ -81,7 +81,7 @@
81
81
  },
82
82
  "dependencies": {
83
83
  "@mark1russell7/service": "^0.5.8",
84
- "@procedures/client": "0.26.1",
84
+ "@procedures/client": "0.27.0",
85
85
  "zod": "^4.6.5"
86
86
  },
87
87
  "scripts": {
@@ -222,6 +222,9 @@ export function faceHandler(options: FaceHandlerOptions): FaceHandler {
222
222
  getRegistry: () => server.getRegistry(),
223
223
  // The principal before a call (CLI-69): the MCP face keys the fair share of its tasks with it
224
224
  identify: (credentials) => server.identify(credentials),
225
+ // The one admission of a network request before its calls (CLI-2b): the MCP face admits each
226
+ // HTTP request with it, and each call of that request uses the admitted credentials
227
+ admission: (credentials) => server.admission(credentials),
225
228
  handle: (request: ServerRequest): Promise<ServerResponse> => {
226
229
  const life = options.life();
227
230
  return life ? trackedCall(life, options, request) : server.handle(request);
package/src/peer/index.ts CHANGED
@@ -18,6 +18,7 @@
18
18
  import { daemon, embeddedProcess, service, type Lifecycle, type Profile } from "@mark1russell7/service";
19
19
  import {
20
20
  hostPolicy,
21
+ isLoopbackHost,
21
22
  seconds,
22
23
  type BrowserGuardOptions,
23
24
  type Client,
@@ -30,7 +31,23 @@ import {
30
31
  import { defaultServerUrlStrategy, rpcServerUrlStrategy, type ProcedureHandlerOptions, type UpgradeHandlerOptions } from "@procedures/client/node";
31
32
  import type { HttpTransportConfig, TransportConfig, TransportType, WebSocketTransportConfig } from "../types.js";
32
33
  import { createProcedureHost, httpFace, LOCAL_LISTENER_KNOBS, wsFace, type HostFaceFactory, type HostListener, type ProcedureHost, type ProcedureHostOptions } from "../host/index.js";
33
- import { originAllowed } from "./security.js";
34
+
35
+ /**
36
+ * The origin rule of a peer, as data for the browser checks of the core (CLI-2b): a web page of a
37
+ * loopback origin (any port), or an origin of the list. The core check (`checkBrowserRequest`)
38
+ * calls it one time for each request, after the check of the Host header. The peer has no check
39
+ * of its own: its token and its request hook are the checks of the server of its host.
40
+ */
41
+ function peerOrigins(allowlist: readonly string[] = []): (origin: string) => boolean {
42
+ return (origin) => {
43
+ if (allowlist.includes(origin)) return true;
44
+ try {
45
+ return isLoopbackHost(new URL(origin).hostname);
46
+ } catch {
47
+ return false;
48
+ }
49
+ };
50
+ }
34
51
 
35
52
  // =============================================================================
36
53
  // Types
@@ -122,7 +139,7 @@ function httpOptionsOf(config: HttpTransportConfig, browser: BrowserGuardOptions
122
139
  cors: config.cors ?? false,
123
140
  ...(config.urlStrategy === "rpc" ? { urlStrategy: rpcServerUrlStrategy } : config.urlStrategy === "rest" ? { urlStrategy: defaultServerUrlStrategy } : {}),
124
141
  // The browser checks follow the rule of the peer: loopback origins and the listed ones
125
- allowedOrigins: browser.allowedOrigins ?? ((origin: string) => originAllowed(origin, config.corsOrigins)),
142
+ allowedOrigins: browser.allowedOrigins ?? peerOrigins(config.corsOrigins),
126
143
  ...(browser.allowedHosts !== undefined ? { allowedHosts: browser.allowedHosts } : {}),
127
144
  // The RESTful strategy calls by GET
128
145
  allowGet: browser.allowGet ?? config.urlStrategy === "rest",
@@ -134,7 +151,7 @@ function httpOptionsOf(config: HttpTransportConfig, browser: BrowserGuardOptions
134
151
  function wsOptionsOf(config: WebSocketTransportConfig, browser: BrowserGuardOptions): UpgradeHandlerOptions {
135
152
  return {
136
153
  path: config.path ?? "/ws",
137
- allowedOrigins: browser.allowedOrigins ?? ((origin: string) => originAllowed(origin, config.origins)),
154
+ allowedOrigins: browser.allowedOrigins ?? peerOrigins(config.origins),
138
155
  ...(browser.allowedHosts !== undefined ? { allowedHosts: browser.allowedHosts } : {}),
139
156
  };
140
157
  }
@@ -1,25 +0,0 @@
1
- /**
2
- * Request checks of a peer (deep dive TRN-1, CLI-1, CLI-2).
3
- *
4
- * A peer serves the whole registry, `shell.*` included. So:
5
- * - a peer bound to loopback answers only requests addressed to a loopback name (a DNS
6
- * rebinding attack sends another name);
7
- * - a browser request is accepted only from a loopback origin or an origin in the allowlist
8
- * (before, CORS was on by default with `Access-Control-Allow-Origin: *`, so any web page could
9
- * call the server);
10
- * - when the peer has a token, every request must carry it: `Authorization: Bearer <token>` over
11
- * HTTP, `?token=<token>` for a WebSocket connection (a browser WebSocket cannot set headers).
12
- */
13
- /** True for a bind address that only this computer can reach. */
14
- export declare function isLoopback(host: string): boolean;
15
- /** The name of a Host header without its port: "localhost:3000" gives "localhost", "[::1]:80" gives "[::1]". */
16
- export declare function hostName(header: string | undefined): string;
17
- /** A peer bound to loopback accepts only a loopback Host header. */
18
- export declare function hostAllowed(bindHost: string, header: string | undefined): boolean;
19
- /** A request without Origin (not a browser) passes; a browser origin must be loopback or in the allowlist. */
20
- export declare function originAllowed(origin: string | undefined, allowlist?: readonly string[]): boolean;
21
- /** True when no token is required, or when the presented token is the expected one (a constant-time comparison). */
22
- export declare function tokenMatches(expected: string | undefined, presented: string | undefined | null): boolean;
23
- /** The token of an `Authorization: Bearer <token>` header. */
24
- export declare function bearerToken(header: string | undefined): string | undefined;
25
- //# sourceMappingURL=security.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"security.d.ts","sourceRoot":"","sources":["../../src/peer/security.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAMH,iEAAiE;AACjE,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEhD;AAED,gHAAgH;AAChH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAI3D;AAED,oEAAoE;AACpE,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAEjF;AAED,8GAA8G;AAC9G,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,SAAS,GAAE,SAAS,MAAM,EAAO,GAAG,OAAO,CAQpG;AAED,oHAAoH;AACpH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,OAAO,CAQxG;AAED,8DAA8D;AAC9D,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAE1E"}
@@ -1,60 +0,0 @@
1
- /**
2
- * Request checks of a peer (deep dive TRN-1, CLI-1, CLI-2).
3
- *
4
- * A peer serves the whole registry, `shell.*` included. So:
5
- * - a peer bound to loopback answers only requests addressed to a loopback name (a DNS
6
- * rebinding attack sends another name);
7
- * - a browser request is accepted only from a loopback origin or an origin in the allowlist
8
- * (before, CORS was on by default with `Access-Control-Allow-Origin: *`, so any web page could
9
- * call the server);
10
- * - when the peer has a token, every request must carry it: `Authorization: Bearer <token>` over
11
- * HTTP, `?token=<token>` for a WebSocket connection (a browser WebSocket cannot set headers).
12
- */
13
- import { createHash, timingSafeEqual } from "node:crypto";
14
- const LOOPBACK_NAMES = new Set(["localhost", "127.0.0.1", "::1", "[::1]"]);
15
- /** True for a bind address that only this computer can reach. */
16
- export function isLoopback(host) {
17
- return LOOPBACK_NAMES.has(host);
18
- }
19
- /** The name of a Host header without its port: "localhost:3000" gives "localhost", "[::1]:80" gives "[::1]". */
20
- export function hostName(header) {
21
- if (!header)
22
- return "";
23
- if (header.startsWith("["))
24
- return header.slice(0, header.indexOf("]") + 1).toLowerCase();
25
- return (header.split(":")[0] ?? "").toLowerCase();
26
- }
27
- /** A peer bound to loopback accepts only a loopback Host header. */
28
- export function hostAllowed(bindHost, header) {
29
- return !isLoopback(bindHost) || LOOPBACK_NAMES.has(hostName(header));
30
- }
31
- /** A request without Origin (not a browser) passes; a browser origin must be loopback or in the allowlist. */
32
- export function originAllowed(origin, allowlist = []) {
33
- if (origin === undefined)
34
- return true;
35
- if (allowlist.includes(origin))
36
- return true;
37
- try {
38
- return LOOPBACK_NAMES.has(new URL(origin).hostname);
39
- }
40
- catch {
41
- return false;
42
- }
43
- }
44
- /** True when no token is required, or when the presented token is the expected one (a constant-time comparison). */
45
- export function tokenMatches(expected, presented) {
46
- if (expected === undefined)
47
- return true;
48
- if (!presented)
49
- return false;
50
- // Both sides become SHA-256 digests of 32 bytes, so the comparison takes the same time for
51
- // each presented token. Before, a token of another length returned at once, and the time
52
- // told the length of the token.
53
- const digest = (token) => createHash("sha256").update(token, "utf8").digest();
54
- return timingSafeEqual(digest(expected), digest(presented));
55
- }
56
- /** The token of an `Authorization: Bearer <token>` header. */
57
- export function bearerToken(header) {
58
- return header?.startsWith("Bearer ") ? header.slice("Bearer ".length) : undefined;
59
- }
60
- //# sourceMappingURL=security.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"security.js","sourceRoot":"","sources":["../../src/peer/security.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE1D,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;AAE3E,iEAAiE;AACjE,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,OAAO,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAClC,CAAC;AAED,gHAAgH;AAChH,MAAM,UAAU,QAAQ,CAAC,MAA0B;IACjD,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IACvB,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAC1F,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;AACpD,CAAC;AAED,oEAAoE;AACpE,MAAM,UAAU,WAAW,CAAC,QAAgB,EAAE,MAA0B;IACtE,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AACvE,CAAC;AAED,8GAA8G;AAC9G,MAAM,UAAU,aAAa,CAAC,MAA0B,EAAE,SAAS,GAAsB,EAAE;IACzF,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACtC,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5C,IAAI,CAAC;QACH,OAAO,cAAc,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC;IACtD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,oHAAoH;AACpH,MAAM,UAAU,YAAY,CAAC,QAA4B,EAAE,SAAoC;IAC7F,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACxC,IAAI,CAAC,SAAS;QAAE,OAAO,KAAK,CAAC;IAC7B,2FAA2F;IAC3F,yFAAyF;IACzF,gCAAgC;IAChC,MAAM,MAAM,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC;IAC9F,OAAO,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,WAAW,CAAC,MAA0B;IACpD,OAAO,MAAM,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACpF,CAAC"}
@@ -1,60 +0,0 @@
1
- /**
2
- * Request checks of a peer (deep dive TRN-1, CLI-1, CLI-2).
3
- *
4
- * A peer serves the whole registry, `shell.*` included. So:
5
- * - a peer bound to loopback answers only requests addressed to a loopback name (a DNS
6
- * rebinding attack sends another name);
7
- * - a browser request is accepted only from a loopback origin or an origin in the allowlist
8
- * (before, CORS was on by default with `Access-Control-Allow-Origin: *`, so any web page could
9
- * call the server);
10
- * - when the peer has a token, every request must carry it: `Authorization: Bearer <token>` over
11
- * HTTP, `?token=<token>` for a WebSocket connection (a browser WebSocket cannot set headers).
12
- */
13
-
14
- import { createHash, timingSafeEqual } from "node:crypto";
15
-
16
- const LOOPBACK_NAMES = new Set(["localhost", "127.0.0.1", "::1", "[::1]"]);
17
-
18
- /** True for a bind address that only this computer can reach. */
19
- export function isLoopback(host: string): boolean {
20
- return LOOPBACK_NAMES.has(host);
21
- }
22
-
23
- /** The name of a Host header without its port: "localhost:3000" gives "localhost", "[::1]:80" gives "[::1]". */
24
- export function hostName(header: string | undefined): string {
25
- if (!header) return "";
26
- if (header.startsWith("[")) return header.slice(0, header.indexOf("]") + 1).toLowerCase();
27
- return (header.split(":")[0] ?? "").toLowerCase();
28
- }
29
-
30
- /** A peer bound to loopback accepts only a loopback Host header. */
31
- export function hostAllowed(bindHost: string, header: string | undefined): boolean {
32
- return !isLoopback(bindHost) || LOOPBACK_NAMES.has(hostName(header));
33
- }
34
-
35
- /** A request without Origin (not a browser) passes; a browser origin must be loopback or in the allowlist. */
36
- export function originAllowed(origin: string | undefined, allowlist: readonly string[] = []): boolean {
37
- if (origin === undefined) return true;
38
- if (allowlist.includes(origin)) return true;
39
- try {
40
- return LOOPBACK_NAMES.has(new URL(origin).hostname);
41
- } catch {
42
- return false;
43
- }
44
- }
45
-
46
- /** True when no token is required, or when the presented token is the expected one (a constant-time comparison). */
47
- export function tokenMatches(expected: string | undefined, presented: string | undefined | null): boolean {
48
- if (expected === undefined) return true;
49
- if (!presented) return false;
50
- // Both sides become SHA-256 digests of 32 bytes, so the comparison takes the same time for
51
- // each presented token. Before, a token of another length returned at once, and the time
52
- // told the length of the token.
53
- const digest = (token: string): Buffer => createHash("sha256").update(token, "utf8").digest();
54
- return timingSafeEqual(digest(expected), digest(presented));
55
- }
56
-
57
- /** The token of an `Authorization: Bearer <token>` header. */
58
- export function bearerToken(header: string | undefined): string | undefined {
59
- return header?.startsWith("Bearer ") ? header.slice("Bearer ".length) : undefined;
60
- }