@grest-ts/http 0.0.66 → 0.0.68

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 (43) hide show
  1. package/README.md +23 -0
  2. package/dist/src/_dedupCheck.js +1 -1
  3. package/dist/src/client/GGHttpSchema.createClient.d.ts +10 -0
  4. package/dist/src/client/GGHttpSchema.createClient.d.ts.map +1 -1
  5. package/dist/src/client/GGHttpSchema.createClient.js +19 -2
  6. package/dist/src/client/GGHttpSchema.createClient.js.map +1 -1
  7. package/dist/src/client/GGHttpSchema.createClient.node.d.ts.map +1 -1
  8. package/dist/src/client/GGHttpSchema.createClient.node.js +3 -1
  9. package/dist/src/client/GGHttpSchema.createClient.node.js.map +1 -1
  10. package/dist/src/client/nodeConnectionTransport.node.d.ts +5 -0
  11. package/dist/src/client/nodeConnectionTransport.node.d.ts.map +1 -0
  12. package/dist/src/client/nodeConnectionTransport.node.js +168 -0
  13. package/dist/src/client/nodeConnectionTransport.node.js.map +1 -0
  14. package/dist/src/index-browser.d.ts +1 -0
  15. package/dist/src/index-browser.d.ts.map +1 -1
  16. package/dist/src/index-browser.js +1 -0
  17. package/dist/src/index-browser.js.map +1 -1
  18. package/dist/src/index-node.d.ts +2 -0
  19. package/dist/src/index-node.d.ts.map +1 -1
  20. package/dist/src/index-node.js +2 -0
  21. package/dist/src/index-node.js.map +1 -1
  22. package/dist/src/rpc/RpcRequest/GGRpcRequestBuilder.d.ts.map +1 -1
  23. package/dist/src/rpc/RpcRequest/GGRpcRequestBuilder.js +10 -1
  24. package/dist/src/rpc/RpcRequest/GGRpcRequestBuilder.js.map +1 -1
  25. package/dist/src/schema/GGConnectionSettingsKey.d.ts +21 -0
  26. package/dist/src/schema/GGConnectionSettingsKey.d.ts.map +1 -0
  27. package/dist/src/schema/GGConnectionSettingsKey.js +27 -0
  28. package/dist/src/schema/GGConnectionSettingsKey.js.map +1 -0
  29. package/dist/src/schema/GGHttpSchema.d.ts +2 -1
  30. package/dist/src/schema/GGHttpSchema.d.ts.map +1 -1
  31. package/dist/tsconfig.publish.tsbuildinfo +1 -1
  32. package/package.json +10 -10
  33. package/src/_dedupCheck.ts +1 -1
  34. package/src/client/GGHttpSchema.createClient.node.ts +3 -1
  35. package/src/client/GGHttpSchema.createClient.ts +32 -2
  36. package/src/client/nodeConnectionTransport.node.test.ts +320 -0
  37. package/src/client/nodeConnectionTransport.node.ts +181 -0
  38. package/src/index-browser.bundle.node.test.ts +51 -0
  39. package/src/index-browser.ts +1 -0
  40. package/src/index-node.ts +2 -0
  41. package/src/rpc/RpcRequest/GGRpcRequestBuilder.ts +10 -2
  42. package/src/schema/GGConnectionSettingsKey.ts +28 -0
  43. package/src/schema/GGHttpSchema.ts +2 -1
package/README.md CHANGED
@@ -762,6 +762,29 @@ const item = await client.get({ id: "item-123" }).or((error) => {
762
762
  const title = await client.get({ id: "item-123" }).map(item => item.title)
763
763
  ```
764
764
 
765
+ ### Connection settings — TLS / dialing (node only)
766
+
767
+ For node service-to-service calls, `connectionSettings` controls where a client dials and how it
768
+ secures the connection: `host`/`port` (dial target), `tlsPin: { fingerprint256, servername? }`
769
+ (pin a self-signed cert by SHA-256), `ca` (verify against a private CA), `clientCert: { cert, key,
770
+ passphrase? }` (mTLS). Provide it per-client (config) or per-request (a `GGConnectionSettingsKey`
771
+ set in context); when both are set the per-request value wins.
772
+
773
+ ```typescript
774
+ // per-client: pin a self-signed target (url-less → host/port come from the pin)
775
+ MyApi.createClient({ url: "", connectionSettings: { host: "10.0.0.4", port: 9600, tlsPin: { fingerprint256: "ab:cd:…" } } })
776
+ // or: ca / mTLS against a URL
777
+ MyApi.createClient({ url: "https://service.example", connectionSettings: { ca: caPem, clientCert: { cert, key } } })
778
+
779
+ // per-request: app-owned key on the schema (use: [CONN]), set inside the request scope
780
+ const CONN = new GGConnectionSettingsKey("conn")
781
+ CONN.set({ host, port, tlsPin: { fingerprint256 } })
782
+ ```
783
+
784
+ Node-only: the transport is `fetch` through an undici dispatcher, so settings need TLS-layer access
785
+ a browser can't give — a browser client with non-empty `connectionSettings` throws rather than
786
+ silently un-securing. `invalidateTlsPinAgent(fingerprint256)` drops a pooled agent after a restart.
787
+
765
788
  ## WebSocket APIs
766
789
 
767
790
  The websocket package documents the WS model in depth; this is the short version. A WS schema
@@ -11,7 +11,7 @@
11
11
  const __KEY = Symbol.for("grest-ts:dedup:@grest-ts/http");
12
12
  const __slot = globalThis;
13
13
  const __existing = __slot[__KEY];
14
- const __here = { path: import.meta.url, version: "0.0.66" };
14
+ const __here = { path: import.meta.url, version: "0.0.68" };
15
15
  // Same path + same version means the same physical package is being
16
16
  // re-evaluated by a different ESM runner (e.g. vitest projects share one
17
17
  // process but each project has its own module cache). That isn't a true
@@ -1,5 +1,6 @@
1
1
  import { GGContractApiDefinition, GGContractClient } from "@grest-ts/schema";
2
2
  import { GGHttpSchema } from "../schema/GGHttpSchema";
3
+ import type { GGConnectionSettings } from "@grest-ts/context";
3
4
  declare module "../schema/GGHttpSchema" {
4
5
  interface GGHttpSchema<TContract extends GGContractApiDefinition> {
5
6
  createClient(config?: GGHttpClientConfig): GGContractClient<TContract>;
@@ -24,6 +25,8 @@ export type GGHttpTransport = (url: string, init: {
24
25
  body: string | FormData | undefined;
25
26
  signal: AbortSignal;
26
27
  credentials?: "omit" | "same-origin" | "include";
28
+ /** Transport-level dial settings (e.g. TLS pin) contributed by middleware and/or client config. */
29
+ connectionSettings?: GGConnectionSettings;
27
30
  }) => Promise<Response>;
28
31
  export interface GGHttpClientConfig {
29
32
  url?: string;
@@ -43,7 +46,14 @@ export interface GGHttpClientConfig {
43
46
  * just the schema-built path.
44
47
  */
45
48
  transport?: GGHttpTransport;
49
+ /**
50
+ * Connection settings (e.g. TLS pin) fixed for this client's lifetime — the direct
51
+ * alternative to a `GGConnectionSettingsKey` middleware. Node-only: setting this on a
52
+ * browser client throws when a request is issued (the browser can't access the TLS layer).
53
+ */
54
+ connectionSettings?: GGConnectionSettings;
46
55
  }
47
56
  export declare function _registerDiscoveryUrlResolver(resolver: (apiName: string) => Promise<string>): void;
57
+ export declare function _registerNodeDefaultTransport(transport: GGHttpTransport): void;
48
58
  export declare function createClient<TContract extends GGContractApiDefinition>(httpSchema: GGHttpSchema<TContract>, config?: GGHttpClientConfig): GGContractClient<TContract>;
49
59
  //# sourceMappingURL=GGHttpSchema.createClient.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"GGHttpSchema.createClient.d.ts","sourceRoot":"","sources":["../../../src/client/GGHttpSchema.createClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,uBAAuB,EAAE,gBAAgB,EAA4E,MAAM,kBAAkB,CAAA;AACvK,OAAO,EAAwD,YAAY,EAAC,MAAM,wBAAwB,CAAC;AAI3G,OAAO,QAAQ,wBAAwB,CAAC;IACpC,UAAU,YAAY,CAAC,SAAS,SAAS,uBAAuB;QAC5D,YAAY,CAAC,MAAM,CAAC,EAAE,kBAAkB,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAA;KACzE;CACJ;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,eAAe,GAAG,CAC1B,GAAG,EAAE,MAAM,EACX,IAAI,EAAE;IACF,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/B,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAA;IACnC,MAAM,EAAE,WAAW,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAAA;CACnD,KACA,OAAO,CAAC,QAAQ,CAAC,CAAA;AAEtB,MAAM,WAAW,kBAAkB;IAC/B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAAA;IAChD;;;;;OAKG;IACH,SAAS,CAAC,EAAE,eAAe,CAAA;CAC9B;AAUD,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,CAElG;AASD,wBAAgB,YAAY,CAAC,SAAS,SAAS,uBAAuB,EAClE,UAAU,EAAE,YAAY,CAAC,SAAS,CAAC,EACnC,MAAM,CAAC,EAAE,kBAAkB,GAC5B,gBAAgB,CAAC,SAAS,CAAC,CA4F7B"}
1
+ {"version":3,"file":"GGHttpSchema.createClient.d.ts","sourceRoot":"","sources":["../../../src/client/GGHttpSchema.createClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,uBAAuB,EAAE,gBAAgB,EAA4E,MAAM,kBAAkB,CAAA;AACvK,OAAO,EAAwD,YAAY,EAAC,MAAM,wBAAwB,CAAC;AAE3G,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,mBAAmB,CAAC;AAG5D,OAAO,QAAQ,wBAAwB,CAAC;IACpC,UAAU,YAAY,CAAC,SAAS,SAAS,uBAAuB;QAC5D,YAAY,CAAC,MAAM,CAAC,EAAE,kBAAkB,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAA;KACzE;CACJ;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,eAAe,GAAG,CAC1B,GAAG,EAAE,MAAM,EACX,IAAI,EAAE;IACF,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/B,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAA;IACnC,MAAM,EAAE,WAAW,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAAA;IAChD,mGAAmG;IACnG,kBAAkB,CAAC,EAAE,oBAAoB,CAAA;CAC5C,KACA,OAAO,CAAC,QAAQ,CAAC,CAAA;AAEtB,MAAM,WAAW,kBAAkB;IAC/B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAAA;IAChD;;;;;OAKG;IACH,SAAS,CAAC,EAAE,eAAe,CAAA;IAC3B;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,oBAAoB,CAAA;CAC5C;AAUD,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,CAElG;AAUD,wBAAgB,6BAA6B,CAAC,SAAS,EAAE,eAAe,GAAG,IAAI,CAE9E;AASD,wBAAgB,YAAY,CAAC,SAAS,SAAS,uBAAuB,EAClE,UAAU,EAAE,YAAY,CAAC,SAAS,CAAC,EACnC,MAAM,CAAC,EAAE,kBAAkB,GAC5B,gBAAgB,CAAC,SAAS,CAAC,CAqG7B"}
@@ -11,6 +11,16 @@ let discoveryUrlResolver;
11
11
  export function _registerDiscoveryUrlResolver(resolver) {
12
12
  discoveryUrlResolver = resolver;
13
13
  }
14
+ /**
15
+ * Node-only default transport (pinned-TLS dialing). Attached by the node entry via
16
+ * ./GGHttpSchema.createClient.node; node-only because it imports `node:https`/`node:tls`.
17
+ * When registered it replaces `defaultFetchTransport` as the default (an explicit
18
+ * `config.transport` still wins). It falls back to `fetch` when no TLS pin is set.
19
+ */
20
+ let nodeDefaultTransport;
21
+ export function _registerNodeDefaultTransport(transport) {
22
+ nodeDefaultTransport = transport;
23
+ }
14
24
  GGHttpSchema.prototype.createClient = function (config) {
15
25
  return createClient(this, config);
16
26
  };
@@ -21,7 +31,7 @@ export function createClient(httpSchema, config) {
21
31
  // A custom transport implies "I take over the wire layer" — discovery is
22
32
  // off the table (the transport knows how to find the target), and the
23
33
  // default base URL becomes "" so the transport sees just the request path.
24
- const transport = config.transport ?? defaultFetchTransport;
34
+ const transport = config.transport ?? nodeDefaultTransport ?? defaultFetchTransport;
25
35
  if (config.transport && config.url === undefined) {
26
36
  config.url = "";
27
37
  }
@@ -59,6 +69,12 @@ export function createClient(httpSchema, config) {
59
69
  // ---------------------------------------------
60
70
  // Execution
61
71
  const fetchRequest = await wireFormat.createRequest(validatedInput);
72
+ const connectionSettings = config.connectionSettings || fetchRequest.connectionSettings
73
+ ? { ...config.connectionSettings, ...fetchRequest.connectionSettings }
74
+ : undefined;
75
+ if (connectionSettings && isBrowser() && Object.keys(connectionSettings).length > 0) {
76
+ throw new SERVER_ERROR({ displayMessage: "connectionSettings (e.g. TLS pinning) is node-only — the browser can't access the TLS layer, so it can't honor them." });
77
+ }
62
78
  const controller = new AbortController();
63
79
  const timeoutId = setTimeout(() => controller.abort(), config.timeout);
64
80
  const wireResponse = await transport(baseUrl + fetchRequest.url, {
@@ -66,7 +82,8 @@ export function createClient(httpSchema, config) {
66
82
  signal: controller.signal,
67
83
  headers: fetchRequest.headers,
68
84
  body: fetchRequest.body,
69
- credentials: config.credentials
85
+ credentials: config.credentials,
86
+ connectionSettings
70
87
  }).finally(() => clearTimeout(timeoutId));
71
88
  const resData = await wireFormat.parseResponse(wireResponse);
72
89
  // ---------------------------------------------
@@ -1 +1 @@
1
- {"version":3,"file":"GGHttpSchema.createClient.js","sourceRoot":"","sources":["../../../src/client/GGHttpSchema.createClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GGHttpSchema.createClient.js","sourceRoot":"","sources":["../../../src/client/GGHttpSchema.createClient.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"GGHttpSchema.createClient.node.d.ts","sourceRoot":"","sources":["../../../src/client/GGHttpSchema.createClient.node.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,oBAAoB,GAAU,SAAS,MAAM,KAAG,OAAO,CAAC,MAAM,CAG1E,CAAA"}
1
+ {"version":3,"file":"GGHttpSchema.createClient.node.d.ts","sourceRoot":"","sources":["../../../src/client/GGHttpSchema.createClient.node.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,oBAAoB,GAAU,SAAS,MAAM,KAAG,OAAO,CAAC,MAAM,CAG1E,CAAA"}
@@ -4,10 +4,12 @@
4
4
  * The import stays dynamic so discovery remains an optional integration, not a
5
5
  * hard dependency of @grest-ts/http.
6
6
  */
7
- import { _registerDiscoveryUrlResolver } from "./GGHttpSchema.createClient.js";
7
+ import { _registerDiscoveryUrlResolver, _registerNodeDefaultTransport } from "./GGHttpSchema.createClient.js";
8
+ import { nodeDefaultTransport } from "./nodeConnectionTransport.node.js";
8
9
  export const discoveryUrlResolver = async (apiName) => {
9
10
  const { GG_DISCOVERY } = await import('@grest-ts/discovery');
10
11
  return GG_DISCOVERY.get().discoverApi(apiName);
11
12
  };
12
13
  _registerDiscoveryUrlResolver(discoveryUrlResolver);
14
+ _registerNodeDefaultTransport(nodeDefaultTransport);
13
15
  //# sourceMappingURL=GGHttpSchema.createClient.node.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"GGHttpSchema.createClient.node.js","sourceRoot":"","sources":["../../../src/client/GGHttpSchema.createClient.node.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAC,6BAA6B,EAAC,MAAM,6BAA6B,CAAA;AAEzE,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EAAE,OAAe,EAAmB,EAAE;IAC3E,MAAM,EAAC,YAAY,EAAC,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAA;IAC1D,OAAO,YAAY,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;AAClD,CAAC,CAAA;AAED,6BAA6B,CAAC,oBAAoB,CAAC,CAAA"}
1
+ {"version":3,"file":"GGHttpSchema.createClient.node.js","sourceRoot":"","sources":["../../../src/client/GGHttpSchema.createClient.node.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAC,6BAA6B,EAAE,6BAA6B,EAAC,MAAM,6BAA6B,CAAA;AACxG,OAAO,EAAC,oBAAoB,EAAC,MAAM,gCAAgC,CAAA;AAEnE,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EAAE,OAAe,EAAmB,EAAE;IAC3E,MAAM,EAAC,YAAY,EAAC,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAA;IAC1D,OAAO,YAAY,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;AAClD,CAAC,CAAA;AAED,6BAA6B,CAAC,oBAAoB,CAAC,CAAA;AACnD,6BAA6B,CAAC,oBAAoB,CAAC,CAAA"}
@@ -0,0 +1,5 @@
1
+ import type { GGHttpTransport } from "./GGHttpSchema.createClient";
2
+ /** Drop the pooled dispatcher(s) for a pinned fingerprint so stale sockets don't linger after a restart. */
3
+ export declare function invalidateTlsPinAgent(fingerprint256: string): void;
4
+ export declare const nodeDefaultTransport: GGHttpTransport;
5
+ //# sourceMappingURL=nodeConnectionTransport.node.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nodeConnectionTransport.node.d.ts","sourceRoot":"","sources":["../../../src/client/nodeConnectionTransport.node.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,6BAA6B,CAAA;AAsJhE,4GAA4G;AAC5G,wBAAgB,qBAAqB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAElE;AAmBD,eAAO,MAAM,oBAAoB,EAAE,eAIlC,CAAA"}
@@ -0,0 +1,168 @@
1
+ import { createHash } from "node:crypto";
2
+ import { Agent, buildConnector } from "undici";
3
+ /**
4
+ * Node default transport: ordinary `fetch`, dialing through an undici dispatcher built from the
5
+ * request's connection settings. `fetch` keeps the wire correct (real Response/headers/streaming,
6
+ * FormData, abort, redirects); the dispatcher is the one node-only seam. When no settings call for
7
+ * a custom dispatcher it's plain `fetch` — identical to the browser path.
8
+ */
9
+ const DEFAULT_MAX_AGENTS = 2048;
10
+ const DEFAULT_IDLE_TTL_MS = 5 * 60_000;
11
+ const DEFAULT_SWEEP_INTERVAL_MS = 60_000;
12
+ function normalizeFingerprint(input) {
13
+ return input.replace(/:/g, "").toLowerCase();
14
+ }
15
+ /** Which settings shape the TLS connection (and therefore the dispatcher). */
16
+ function needsDispatcher(s) {
17
+ return !!(s.tlsPin || s.ca || s.clientCert);
18
+ }
19
+ /** tls.connect options shared by both the pinned and the standard connector. */
20
+ function connectOptions(s) {
21
+ return {
22
+ ca: s.ca,
23
+ cert: s.clientCert?.cert,
24
+ key: s.clientCert?.key,
25
+ passphrase: s.clientCert?.passphrase,
26
+ };
27
+ }
28
+ /**
29
+ * Build the undici Agent for a set of TLS settings.
30
+ * - tlsPin → self-signed pinning: `rejectUnauthorized: false` (skip the CA chain — the fingerprint
31
+ * replaces it) + verify the peer cert's fingerprint once connected, destroying the socket on
32
+ * mismatch before any request bytes flow. A resumed TLS session doesn't re-send the cert and
33
+ * proves knowledge of the original master secret, so the re-check is safely skipped.
34
+ * `rejectUnauthorized: false` WITHOUT the fingerprint check is a full MITM hole.
35
+ * - otherwise → standard verification, optionally against a custom `ca` and presenting a
36
+ * `clientCert` for mTLS.
37
+ */
38
+ function buildAgent(s) {
39
+ const connect = connectOptions(s);
40
+ const pin = s.tlsPin;
41
+ if (!pin) {
42
+ return new Agent({ connect });
43
+ }
44
+ const expected = normalizeFingerprint(pin.fingerprint256);
45
+ if (!/^[0-9a-f]{64}$/.test(expected)) {
46
+ throw new Error(`pinned TLS: fingerprint must be 64 hex chars (got "${pin.fingerprint256}")`);
47
+ }
48
+ const baseConnector = buildConnector({ ...connect, rejectUnauthorized: false, servername: pin.servername });
49
+ return new Agent({
50
+ connect(opts, cb) {
51
+ baseConnector(opts, (err, socket) => {
52
+ if (err)
53
+ return cb(err, null);
54
+ const tls = socket;
55
+ if (typeof tls.getPeerX509Certificate !== "function") {
56
+ socket.destroy();
57
+ return cb(new Error("pinned TLS requires an https target"), null);
58
+ }
59
+ if (!tls.isSessionReused()) {
60
+ const raw = tls.getPeerX509Certificate()?.fingerprint256;
61
+ const actual = raw ? normalizeFingerprint(raw) : undefined;
62
+ if (actual !== expected) {
63
+ tls.destroy();
64
+ return cb(new Error(`pinned TLS: cert fingerprint mismatch — expected ${expected}, got ${actual ?? "<none>"}`), null);
65
+ }
66
+ }
67
+ cb(null, socket);
68
+ });
69
+ },
70
+ });
71
+ }
72
+ /**
73
+ * Stable key per distinct TLS config, so each pools its own connections. Pin-only (the common,
74
+ * high-frequency case) keys off the cheap fingerprint; CA/mTLS hash the (larger) PEM material.
75
+ */
76
+ function agentKey(s) {
77
+ const pin = s.tlsPin ? `${normalizeFingerprint(s.tlsPin.fingerprint256)}|${s.tlsPin.servername ?? ""}` : "";
78
+ if (!s.ca && !s.clientCert)
79
+ return `pin:${pin}`;
80
+ return "tls:" + createHash("sha256").update(JSON.stringify([
81
+ pin,
82
+ s.ca ?? null,
83
+ s.clientCert?.cert ?? null,
84
+ s.clientCert?.key ?? null,
85
+ s.clientCert?.passphrase ?? null,
86
+ ])).digest("hex");
87
+ }
88
+ // One Agent per distinct TLS config. Pinned fingerprints rotate per server start, so those entries
89
+ // are per-server-run; invalidate() drops them after a restart, and the LRU cap + idle TTL bound the
90
+ // map for long-lived multi-target processes that never invalidate.
91
+ class TlsAgentCache {
92
+ agents = new Map();
93
+ sweepTimer;
94
+ constructor() {
95
+ this.sweepTimer = setInterval(() => this.sweepIdle(), DEFAULT_SWEEP_INTERVAL_MS);
96
+ this.sweepTimer.unref();
97
+ }
98
+ get(settings) {
99
+ const key = agentKey(settings);
100
+ const existing = this.agents.get(key);
101
+ if (existing) {
102
+ existing.lastUsed = Date.now();
103
+ this.agents.delete(key);
104
+ this.agents.set(key, existing);
105
+ return existing.agent;
106
+ }
107
+ const agent = buildAgent(settings);
108
+ const fingerprint = settings.tlsPin ? normalizeFingerprint(settings.tlsPin.fingerprint256) : undefined;
109
+ this.agents.set(key, { agent, fingerprint, lastUsed: Date.now() });
110
+ while (this.agents.size > DEFAULT_MAX_AGENTS) {
111
+ const lru = this.agents.keys().next().value;
112
+ if (lru === undefined)
113
+ break;
114
+ this.drop(lru);
115
+ }
116
+ return agent;
117
+ }
118
+ invalidateFingerprint(fingerprint) {
119
+ const fp = normalizeFingerprint(fingerprint);
120
+ for (const [key, entry] of this.agents) {
121
+ if (entry.fingerprint === fp)
122
+ this.drop(key);
123
+ }
124
+ }
125
+ sweepIdle() {
126
+ const cutoff = Date.now() - DEFAULT_IDLE_TTL_MS;
127
+ for (const [key, entry] of this.agents) {
128
+ if (entry.lastUsed < cutoff)
129
+ this.drop(key);
130
+ }
131
+ }
132
+ drop(key) {
133
+ const existing = this.agents.get(key);
134
+ if (!existing)
135
+ return;
136
+ // close() drains in-flight requests then closes idle sockets; destroy() is the hard fallback.
137
+ existing.agent.close().catch(() => existing.agent.destroy());
138
+ this.agents.delete(key);
139
+ }
140
+ }
141
+ const AGENT_CACHE = new TlsAgentCache();
142
+ /** Drop the pooled dispatcher(s) for a pinned fingerprint so stale sockets don't linger after a restart. */
143
+ export function invalidateTlsPinAgent(fingerprint256) {
144
+ AGENT_CACHE.invalidateFingerprint(fingerprint256);
145
+ }
146
+ /**
147
+ * Map connection settings onto an undici dispatcher — the single extensibility seam. Future
148
+ * settings (proxy → ProxyAgent, http2 → allowH2, …) add a branch here, with no change to the
149
+ * transport or the middleware hook.
150
+ */
151
+ function dispatcherFor(settings) {
152
+ if (needsDispatcher(settings))
153
+ return AGENT_CACHE.get(settings);
154
+ return undefined;
155
+ }
156
+ /** url is path-only for a url-less client; settings.host (when set) supplies the origin. */
157
+ function dialUrl(url, settings) {
158
+ if (!settings.host)
159
+ return url;
160
+ const port = settings.port ? `:${settings.port}` : "";
161
+ return `https://${settings.host}${port}${url}`;
162
+ }
163
+ export const nodeDefaultTransport = (url, init) => {
164
+ const { connectionSettings = {}, ...rest } = init;
165
+ const dispatcher = dispatcherFor(connectionSettings);
166
+ return fetch(dialUrl(url, connectionSettings), { ...rest, dispatcher });
167
+ };
168
+ //# sourceMappingURL=nodeConnectionTransport.node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nodeConnectionTransport.node.js","sourceRoot":"","sources":["../../../src/client/nodeConnectionTransport.node.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ export * from "./schema/GGHttpSchema";
3
3
  export * from "./schema/GGCookie";
4
4
  export * from "./schema/GGWireContextKey";
5
5
  export * from "./schema/GGHeader";
6
+ export * from "./schema/GGConnectionSettingsKey";
6
7
  export * from "./rpc/GGHttpRouteRPC";
7
8
  export * from "./rpc/RpcRequest/GGRpcRequestBuilder";
8
9
  export * from "./rpc/RpcResponse/GGRpcResponseParser";
@@ -1 +1 @@
1
- {"version":3,"file":"index-browser.d.ts","sourceRoot":"","sources":["../../src/index-browser.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAC;AAEvB,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sCAAsC,CAAC;AACrD,cAAc,uCAAuC,CAAC;AAGtD,cAAc,mCAAmC,CAAC;AAClD,cAAc,oCAAoC,CAAC;AAGnD,OAAO,oCAAoC,CAAC"}
1
+ {"version":3,"file":"index-browser.d.ts","sourceRoot":"","sources":["../../src/index-browser.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAC;AAEvB,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,kCAAkC,CAAC;AACjD,cAAc,sBAAsB,CAAC;AACrC,cAAc,sCAAsC,CAAC;AACrD,cAAc,uCAAuC,CAAC;AAGtD,cAAc,mCAAmC,CAAC;AAClD,cAAc,oCAAoC,CAAC;AAGnD,OAAO,oCAAoC,CAAC"}
@@ -4,6 +4,7 @@ export * from "./schema/GGHttpSchema.js";
4
4
  export * from "./schema/GGCookie.js";
5
5
  export * from "./schema/GGWireContextKey.js";
6
6
  export * from "./schema/GGHeader.js";
7
+ export * from "./schema/GGConnectionSettingsKey.js";
7
8
  export * from "./rpc/GGHttpRouteRPC.js";
8
9
  export * from "./rpc/RpcRequest/GGRpcRequestBuilder.js";
9
10
  export * from "./rpc/RpcResponse/GGRpcResponseParser.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index-browser.js","sourceRoot":"","sources":["../../src/index-browser.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAC;AACvB,aAAa;AACb,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sCAAsC,CAAC;AACrD,cAAc,uCAAuC,CAAC;AAEtD,SAAS;AACT,cAAc,mCAAmC,CAAC;AAClD,cAAc,oCAAoC,CAAC;AAEnD,aAAa;AACb,OAAO,oCAAoC,CAAC"}
1
+ {"version":3,"file":"index-browser.js","sourceRoot":"","sources":["../../src/index-browser.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAC;AACvB,aAAa;AACb,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,kCAAkC,CAAC;AACjD,cAAc,sBAAsB,CAAC;AACrC,cAAc,sCAAsC,CAAC;AACrD,cAAc,uCAAuC,CAAC;AAEtD,SAAS;AACT,cAAc,mCAAmC,CAAC;AAClD,cAAc,oCAAoC,CAAC;AAEnD,aAAa;AACb,OAAO,oCAAoC,CAAC"}
@@ -6,6 +6,7 @@ export * from "./schema/GGCookie";
6
6
  export * from "./schema/GGWireContextKey";
7
7
  export * from "./schema/GGWireContextKey.node";
8
8
  export * from "./schema/GGHeader";
9
+ export * from "./schema/GGConnectionSettingsKey";
9
10
  export * from "./rpc/GGHttpRouteRPC";
10
11
  export * from "./rpc/openApiSuccessResponse";
11
12
  export * from "./rpc/openApiHelpers";
@@ -22,6 +23,7 @@ export * from "./server/applyRequestMiddleware";
22
23
  export * from "./schema/GGHttpPermissionsChecker";
23
24
  export * from "./client/GGContextKeySynchronizer";
24
25
  export * from "./client/GGHttpSchema.createClient";
26
+ export * from "./client/nodeConnectionTransport.node";
25
27
  export * from "./server/GGHttpSchema.startServer";
26
28
  import "./client/GGHttpSchema.createClient";
27
29
  import "./client/GGHttpSchema.createClient.node";
@@ -1 +1 @@
1
- {"version":3,"file":"index-node.d.ts","sourceRoot":"","sources":["../../src/index-node.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAC;AAgBvB,cAAc,wBAAwB,CAAC;AAGvC,cAAc,0BAA0B,CAAC;AAGzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,sBAAsB,CAAC;AACrC,cAAc,sCAAsC,CAAC;AACrD,cAAc,qCAAqC,CAAC;AACpD,cAAc,wCAAwC,CAAC;AACvD,cAAc,uCAAuC,CAAC;AAGtD,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC;AAChD,cAAc,mCAAmC,CAAC;AAGlD,cAAc,mCAAmC,CAAC;AAClD,cAAc,oCAAoC,CAAC;AACnD,cAAc,mCAAmC,CAAC;AAIlD,OAAO,oCAAoC,CAAC;AAC5C,OAAO,yCAAyC,CAAC;AACjD,OAAO,gCAAgC,CAAC"}
1
+ {"version":3,"file":"index-node.d.ts","sourceRoot":"","sources":["../../src/index-node.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAC;AAgBvB,cAAc,wBAAwB,CAAC;AAGvC,cAAc,0BAA0B,CAAC;AAGzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mBAAmB,CAAC;AAClC,cAAc,kCAAkC,CAAC;AACjD,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,sBAAsB,CAAC;AACrC,cAAc,sCAAsC,CAAC;AACrD,cAAc,qCAAqC,CAAC;AACpD,cAAc,wCAAwC,CAAC;AACvD,cAAc,uCAAuC,CAAC;AAGtD,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC;AAChD,cAAc,mCAAmC,CAAC;AAGlD,cAAc,mCAAmC,CAAC;AAClD,cAAc,oCAAoC,CAAC;AACnD,cAAc,uCAAuC,CAAC;AACtD,cAAc,mCAAmC,CAAC;AAIlD,OAAO,oCAAoC,CAAC;AAC5C,OAAO,yCAAyC,CAAC;AACjD,OAAO,gCAAgC,CAAC"}
@@ -21,6 +21,7 @@ export * from "./schema/GGCookie.js";
21
21
  export * from "./schema/GGWireContextKey.js";
22
22
  export * from "./schema/GGWireContextKey.node.js";
23
23
  export * from "./schema/GGHeader.js";
24
+ export * from "./schema/GGConnectionSettingsKey.js";
24
25
  export * from "./rpc/GGHttpRouteRPC.js";
25
26
  export * from "./rpc/openApiSuccessResponse.js";
26
27
  export * from "./rpc/openApiHelpers.js";
@@ -39,6 +40,7 @@ export * from "./schema/GGHttpPermissionsChecker.js";
39
40
  // Client
40
41
  export * from "./client/GGContextKeySynchronizer.js";
41
42
  export * from "./client/GGHttpSchema.createClient.js";
43
+ export * from "./client/nodeConnectionTransport.node.js";
42
44
  export * from "./server/GGHttpSchema.startServer.js";
43
45
  // Extensions
44
46
  import "./client/GGHttpSchema.createClient.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index-node.js","sourceRoot":"","sources":["../../src/index-node.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAC;AACvB,+EAA+E;AAC/E,OAAO,EAAC,8BAA8B,EAAC,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAC,oBAAoB,EAAC,MAAM,wCAAwC,CAAC;AAC5E,OAAO,EAAC,kBAAkB,EAAC,MAAM,qCAAqC,CAAC;AAEvE,8BAA8B,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;IACpD,MAAM,MAAM,GAAG,IAAI,kBAAkB,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAC5D,OAAO;QACH,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,YAAY,EAAE,IAAI,oBAAoB,CAAC,MAAM,CAAC,CAAC,YAAY;KAC9D,CAAC;AACN,CAAC,CAAC,CAAC;AAEH,UAAU;AACV,cAAc,wBAAwB,CAAC;AAEvC,UAAU;AACV,cAAc,0BAA0B,CAAC;AAEzC,aAAa;AACb,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,sBAAsB,CAAC;AACrC,cAAc,sCAAsC,CAAC;AACrD,cAAc,qCAAqC,CAAC;AACpD,cAAc,wCAAwC,CAAC;AACvD,cAAc,uCAAuC,CAAC;AAEtD,+BAA+B;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC;AAChD,cAAc,mCAAmC,CAAC;AAElD,SAAS;AACT,cAAc,mCAAmC,CAAC;AAClD,cAAc,oCAAoC,CAAC;AACnD,cAAc,mCAAmC,CAAC;AAGlD,aAAa;AACb,OAAO,oCAAoC,CAAC;AAC5C,OAAO,yCAAyC,CAAC;AACjD,OAAO,gCAAgC,CAAC"}
1
+ {"version":3,"file":"index-node.js","sourceRoot":"","sources":["../../src/index-node.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAC;AACvB,+EAA+E;AAC/E,OAAO,EAAC,8BAA8B,EAAC,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAC,oBAAoB,EAAC,MAAM,wCAAwC,CAAC;AAC5E,OAAO,EAAC,kBAAkB,EAAC,MAAM,qCAAqC,CAAC;AAEvE,8BAA8B,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;IACpD,MAAM,MAAM,GAAG,IAAI,kBAAkB,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAC5D,OAAO;QACH,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,YAAY,EAAE,IAAI,oBAAoB,CAAC,MAAM,CAAC,CAAC,YAAY;KAC9D,CAAC;AACN,CAAC,CAAC,CAAC;AAEH,UAAU;AACV,cAAc,wBAAwB,CAAC;AAEvC,UAAU;AACV,cAAc,0BAA0B,CAAC;AAEzC,aAAa;AACb,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mBAAmB,CAAC;AAClC,cAAc,kCAAkC,CAAC;AACjD,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,sBAAsB,CAAC;AACrC,cAAc,sCAAsC,CAAC;AACrD,cAAc,qCAAqC,CAAC;AACpD,cAAc,wCAAwC,CAAC;AACvD,cAAc,uCAAuC,CAAC;AAEtD,+BAA+B;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC;AAChD,cAAc,mCAAmC,CAAC;AAElD,SAAS;AACT,cAAc,mCAAmC,CAAC;AAClD,cAAc,oCAAoC,CAAC;AACnD,cAAc,uCAAuC,CAAC;AACtD,cAAc,mCAAmC,CAAC;AAGlD,aAAa;AACb,OAAO,oCAAoC,CAAC;AAC5C,OAAO,yCAAyC,CAAC;AACjD,OAAO,gCAAgC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"GGRpcRequestBuilder.d.ts","sourceRoot":"","sources":["../../../../src/rpc/RpcRequest/GGRpcRequestBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAC,gBAAgB,EAAC,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAC,yCAAyC,EAAE,kBAAkB,EAAC,MAAM,2BAA2B,CAAC;AACxG,OAAO,EAAe,KAAK,qBAAqB,EAAC,MAAM,mBAAmB,CAAC;AAG3E,qBAAa,mBAAmB;IAE5B,SAAgB,QAAQ,EAAE,gBAAgB,CAAA;IAC1C,SAAgB,WAAW,EAAE,SAAS,qBAAqB,EAAE,CAAA;IAC7D,SAAgB,MAAM,EAAE,UAAU,CAAC;IACnC,SAAgB,YAAY,EAAE,MAAM,CAAC;IACrC,SAAgB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrC,SAAgB,UAAU,EAAE,MAAM,CAAC;IACnC,SAAgB,OAAO,EAAE,OAAO,CAAC;gBAG7B,MAAM,EAAE,UAAU,EAClB,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,yCAAyC;IAW9C,aAAa,GAAU,MAAM,OAAO,KAAG,OAAO,CAAC,kBAAkB,CAAC,CAwBxE;IAED,OAAO,CAAC,SAAS;IAYjB,OAAO,CAAC,SAAS;IAWjB,OAAO,CAAC,gBAAgB;CAkB3B"}
1
+ {"version":3,"file":"GGRpcRequestBuilder.d.ts","sourceRoot":"","sources":["../../../../src/rpc/RpcRequest/GGRpcRequestBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAC,gBAAgB,EAAC,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAC,yCAAyC,EAAE,kBAAkB,EAAC,MAAM,2BAA2B,CAAC;AACxG,OAAO,EAA0C,KAAK,qBAAqB,EAAC,MAAM,mBAAmB,CAAC;AAGtG,qBAAa,mBAAmB;IAE5B,SAAgB,QAAQ,EAAE,gBAAgB,CAAA;IAC1C,SAAgB,WAAW,EAAE,SAAS,qBAAqB,EAAE,CAAA;IAC7D,SAAgB,MAAM,EAAE,UAAU,CAAC;IACnC,SAAgB,YAAY,EAAE,MAAM,CAAC;IACrC,SAAgB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrC,SAAgB,UAAU,EAAE,MAAM,CAAC;IACnC,SAAgB,OAAO,EAAE,OAAO,CAAC;gBAG7B,MAAM,EAAE,UAAU,EAClB,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,yCAAyC;IAW9C,aAAa,GAAU,MAAM,OAAO,KAAG,OAAO,CAAC,kBAAkB,CAAC,CAgCxE;IAED,OAAO,CAAC,SAAS;IAYjB,OAAO,CAAC,SAAS;IAWjB,OAAO,CAAC,gBAAgB;CAkB3B"}
@@ -40,7 +40,16 @@ export class GGRpcRequestBuilder {
40
40
  await GGContextKeySynchronizer.waitFor(mw);
41
41
  }
42
42
  }
43
- this.middlewares?.forEach(mw => mw.update?.(result));
43
+ let settings;
44
+ for (const mw of this.middlewares ?? []) {
45
+ mw.update?.(result);
46
+ if (mw.connectionSettings) {
47
+ settings ??= {};
48
+ mw.connectionSettings(settings);
49
+ }
50
+ }
51
+ if (settings)
52
+ result.connectionSettings = settings;
44
53
  return result;
45
54
  };
46
55
  buildPath(data) {
@@ -1 +1 @@
1
- {"version":3,"file":"GGRpcRequestBuilder.js","sourceRoot":"","sources":["../../../../src/rpc/RpcRequest/GGRpcRequestBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GGRpcRequestBuilder.js","sourceRoot":"","sources":["../../../../src/rpc/RpcRequest/GGRpcRequestBuilder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import { GGContextKey, type GGConnectionSettings, type GGTransportMiddleware } from "@grest-ts/context";
2
+ /**
3
+ * A context key that is also a transport middleware: it holds per-request connection settings
4
+ * (e.g. a TLS pin) in ambient context and contributes them to the outbound request.
5
+ *
6
+ * export const CONN = new GGConnectionSettingsKey("conn")
7
+ * // schema: use: [CONN]
8
+ * CONN.set({host, port, tlsPin: {fingerprint256}}) // inside the request scope, then call the client
9
+ *
10
+ * Apps create their own instances (one per target class) — there is no framework singleton.
11
+ * Browser-safe: it only reads ambient context and copies plain data; the node transport
12
+ * consumes the settings, the browser fetch transport rejects them (settings are node-only).
13
+ *
14
+ * Nothing special — just a `GGContextKey<GGConnectionSettings>` whose `connectionSettings()`
15
+ * hook copies its own value out. The same could be written inline; this is the shortcut.
16
+ */
17
+ export declare class GGConnectionSettingsKey extends GGContextKey<GGConnectionSettings> implements GGTransportMiddleware {
18
+ constructor(name: string);
19
+ connectionSettings(settings: GGConnectionSettings): void;
20
+ }
21
+ //# sourceMappingURL=GGConnectionSettingsKey.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GGConnectionSettingsKey.d.ts","sourceRoot":"","sources":["../../../src/schema/GGConnectionSettingsKey.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAwB,KAAK,oBAAoB,EAAE,KAAK,qBAAqB,EAAC,MAAM,mBAAmB,CAAA;AAE3H;;;;;;;;;;;;;;GAcG;AACH,qBAAa,uBAAwB,SAAQ,YAAY,CAAC,oBAAoB,CAAE,YAAW,qBAAqB;gBAEhG,IAAI,EAAE,MAAM;IAIjB,kBAAkB,CAAC,QAAQ,EAAE,oBAAoB,GAAG,IAAI;CAIlE"}
@@ -0,0 +1,27 @@
1
+ import { GGContextKey, IsConnectionSettings } from "@grest-ts/context";
2
+ /**
3
+ * A context key that is also a transport middleware: it holds per-request connection settings
4
+ * (e.g. a TLS pin) in ambient context and contributes them to the outbound request.
5
+ *
6
+ * export const CONN = new GGConnectionSettingsKey("conn")
7
+ * // schema: use: [CONN]
8
+ * CONN.set({host, port, tlsPin: {fingerprint256}}) // inside the request scope, then call the client
9
+ *
10
+ * Apps create their own instances (one per target class) — there is no framework singleton.
11
+ * Browser-safe: it only reads ambient context and copies plain data; the node transport
12
+ * consumes the settings, the browser fetch transport rejects them (settings are node-only).
13
+ *
14
+ * Nothing special — just a `GGContextKey<GGConnectionSettings>` whose `connectionSettings()`
15
+ * hook copies its own value out. The same could be written inline; this is the shortcut.
16
+ */
17
+ export class GGConnectionSettingsKey extends GGContextKey {
18
+ constructor(name) {
19
+ super(name, IsConnectionSettings);
20
+ }
21
+ connectionSettings(settings) {
22
+ const value = this.get();
23
+ if (value)
24
+ Object.assign(settings, value);
25
+ }
26
+ }
27
+ //# sourceMappingURL=GGConnectionSettingsKey.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GGConnectionSettingsKey.js","sourceRoot":"","sources":["../../../src/schema/GGConnectionSettingsKey.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAE,oBAAoB,EAAwD,MAAM,mBAAmB,CAAA;AAE3H;;;;;;;;;;;;;;GAcG;AACH,MAAM,OAAO,uBAAwB,SAAQ,YAAkC;IAE3E,YAAY,IAAY;QACpB,KAAK,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAA;IACrC,CAAC;IAEM,kBAAkB,CAAC,QAA8B;QACpD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACxB,IAAI,KAAK;YAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;IAC7C,CAAC;CACJ"}
@@ -1,7 +1,7 @@
1
1
  import { ERROR, ERROR_JSON, GGContractApiDefinition, GGContractClass, GGContractMethod, GGSchema, GGSchemaDescription, OK } from "@grest-ts/schema";
2
2
  import type { HttpMethod } from "@grest-ts/common";
3
3
  import type http from "http";
4
- import type { GGContextKey, GGTransportMiddleware } from "@grest-ts/context";
4
+ import type { GGConnectionSettings, GGContextKey, GGTransportMiddleware } from "@grest-ts/context";
5
5
  import type { OpenAPIV3_1 } from "openapi-types";
6
6
  export interface GGHttpSchemaConfig<TContract extends GGContractApiDefinition> {
7
7
  contract: GGContractClass<TContract>;
@@ -31,6 +31,7 @@ export interface GGHttpFetchRequest {
31
31
  method: HttpMethod;
32
32
  headers: Record<string, string>;
33
33
  body: string | FormData | undefined;
34
+ connectionSettings?: GGConnectionSettings;
34
35
  }
35
36
  export interface ClientHttpRouteToRpcTransformServerConfig {
36
37
  contract: GGContractMethod;
@@ -1 +1 @@
1
- {"version":3,"file":"GGHttpSchema.d.ts","sourceRoot":"","sources":["../../../src/schema/GGHttpSchema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GGHttpSchema.d.ts","sourceRoot":"","sources":["../../../src/schema/GGHttpSchema.ts"],"names":[],"mappings":"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"}