@procedures/peer 0.13.2 → 0.14.1
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/CHANGELOG.md +53 -0
- package/README.md +1 -1
- package/dist/.tsbuildinfo +1 -1
- package/dist/host/faces.d.ts +12 -2
- package/dist/host/faces.d.ts.map +1 -1
- package/dist/host/faces.js +19 -3
- package/dist/host/faces.js.map +1 -1
- package/dist/host/index.d.ts +4 -3
- package/dist/host/index.d.ts.map +1 -1
- package/dist/host/index.js +81 -8
- package/dist/host/index.js.map +1 -1
- package/dist/host/tracking.d.ts +30 -1
- package/dist/host/tracking.d.ts.map +1 -1
- package/dist/host/tracking.js +67 -5
- package/dist/host/tracking.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +6 -3
- package/src/host/faces.ts +27 -4
- package/src/host/index.ts +96 -9
- package/src/host/tracking.ts +99 -6
- package/src/index.ts +3 -0
package/dist/host/faces.d.ts
CHANGED
|
@@ -12,14 +12,16 @@
|
|
|
12
12
|
*
|
|
13
13
|
* `httpFace()` and `wsFace()` are the faces of this package, on `procedureHandler` and
|
|
14
14
|
* `upgradeHandler` of `@procedures/client/node`. `mcpFace()` of `@procedures/mcp-server` is the
|
|
15
|
-
* MCP face
|
|
15
|
+
* MCP face, and `betterAuthFace()` of `@procedures/better-auth` is the face of the auth routes. A
|
|
16
|
+
* face of another package has the same shape, so the host needs no change for it. A face of
|
|
17
|
+
* requests that are not procedure calls tracks them with `track` (CLI-54).
|
|
16
18
|
*/
|
|
17
19
|
import type { IncomingMessage, ServerResponse as NodeResponse } from "node:http";
|
|
18
20
|
import type { Duplex } from "node:stream";
|
|
19
21
|
import type { TransportImpl } from "@mark1russell7/service";
|
|
20
22
|
import { Client, type Clock, type HostPolicy, type ProcedureRegistry, type ProcedureServer } from "@procedures/client";
|
|
21
23
|
import { type ProcedureHandlerOptions, type UpgradeHandlerOptions } from "@procedures/client/node";
|
|
22
|
-
import type { FaceHandler } from "./tracking.js";
|
|
24
|
+
import type { FaceHandler, HttpTracker } from "./tracking.js";
|
|
23
25
|
/** What the host gives a face. */
|
|
24
26
|
export interface HostFaceContext {
|
|
25
27
|
/** The name of the face in the host: the first part of the route of each call. */
|
|
@@ -31,6 +33,12 @@ export interface HostFaceContext {
|
|
|
31
33
|
readonly policy: HostPolicy;
|
|
32
34
|
/** The clock of the host: the clock of the lifecycle. */
|
|
33
35
|
readonly clock: Clock;
|
|
36
|
+
/**
|
|
37
|
+
* The request tracking of the HTTP requests of the face that are not procedure calls, for example
|
|
38
|
+
* the auth routes (CLI-54). Each request goes through `life.request` on the route `<face> <key>`
|
|
39
|
+
* of the controller of the host. The host always gives it.
|
|
40
|
+
*/
|
|
41
|
+
readonly track?: HttpTracker | undefined;
|
|
34
42
|
}
|
|
35
43
|
/** The upgrade handler of a face, and the path or the function that tells which upgrades it takes. */
|
|
36
44
|
export interface HostFaceUpgrade {
|
|
@@ -73,6 +81,8 @@ export declare function httpFace(options?: ProcedureHandlerOptions): HostFaceFac
|
|
|
73
81
|
* upgrade (`ProcedureServer.admits`). Thus no idle connection without credentials stays open.
|
|
74
82
|
* - The stop parts refuse new calls at the stop of the intake. In the drain, each connection
|
|
75
83
|
* closes when its calls end, so the drain of the listener does not wait for an idle connection.
|
|
84
|
+
* - After the cooperative abort, the connections stay open until each cut call ends in-band with
|
|
85
|
+
* `UNAVAILABLE` (CLI-48). Before, the connections closed at the abort, and a cut stream lost its end.
|
|
76
86
|
*/
|
|
77
87
|
export declare function wsFace(options?: UpgradeHandlerOptions): HostFaceFactory;
|
|
78
88
|
//# sourceMappingURL=faces.d.ts.map
|
package/dist/host/faces.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"faces.d.ts","sourceRoot":"","sources":["../../src/host/faces.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"faces.d.ts","sourceRoot":"","sources":["../../src/host/faces.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,IAAI,YAAY,EAAE,MAAM,WAAW,CAAC;AACjF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,MAAM,EAA2D,KAAK,KAAK,EAAE,KAAK,UAAU,EAAE,KAAK,iBAAiB,EAAE,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAChL,OAAO,EAAoC,KAAK,uBAAuB,EAAE,KAAK,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AACrI,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE9D,kCAAkC;AAClC,MAAM,WAAW,eAAe;IAC9B,kFAAkF;IAClF,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,wGAAwG;IACxG,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACrC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,yDAAyD;IACzD,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB;;;;OAIG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;CAC1C;AAED,sGAAsG;AACtG,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,eAAe,KAAK,OAAO,CAAC,CAAC;IAC7D,QAAQ,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;CACnF;AAED,wEAAwE;AACxE,MAAM,WAAW,gBAAgB;IAC/B,2FAA2F;IAC3F,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,kCAAkC;AAClC,MAAM,WAAW,QAAQ;IACvB,6GAA6G;IAC7G,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,YAAY,KAAK,OAAO,CAAC,GAAG,SAAS,CAAC;IACtF,QAAQ,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC;IAC/C,6FAA6F;IAC7F,QAAQ,CAAC,KAAK,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IAC3C,QAAQ,CAAC,QAAQ,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;IACjD,qFAAqF;IACrF,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,MAAM,MAAM,EAAE,CAAC,GAAG,SAAS,CAAC;IACpD,mGAAmG;IACnG,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,YAAY,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC;CACjF;AAED,gFAAgF;AAChF,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,EAAE,eAAe,KAAK,QAAQ,CAAC;AAcrE;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,OAAO,GAAE,uBAA4B,GAAG,eAAe,CAQ/E;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,MAAM,CAAC,OAAO,GAAE,qBAA0B,GAAG,eAAe,CAsC3E"}
|
package/dist/host/faces.js
CHANGED
|
@@ -12,10 +12,14 @@
|
|
|
12
12
|
*
|
|
13
13
|
* `httpFace()` and `wsFace()` are the faces of this package, on `procedureHandler` and
|
|
14
14
|
* `upgradeHandler` of `@procedures/client/node`. `mcpFace()` of `@procedures/mcp-server` is the
|
|
15
|
-
* MCP face
|
|
15
|
+
* MCP face, and `betterAuthFace()` of `@procedures/better-auth` is the face of the auth routes. A
|
|
16
|
+
* face of another package has the same shape, so the host needs no change for it. A face of
|
|
17
|
+
* requests that are not procedure calls tracks them with `track` (CLI-54).
|
|
16
18
|
*/
|
|
17
|
-
import { Client, requestCredentials } from "@procedures/client";
|
|
19
|
+
import { Client, realClock, requestCredentials } from "@procedures/client";
|
|
18
20
|
import { procedureHandler, upgradeHandler } from "@procedures/client/node";
|
|
21
|
+
/** The longest delay of a Node timer. A wait with this delay ends at its event, or at the close of its face. */
|
|
22
|
+
const UNTIL_CLOSE_MS = 2_147_483_647;
|
|
19
23
|
/** The browser checks of the policy, as options of a face. The options of the face win over them. */
|
|
20
24
|
function browserOptions(browser, http) {
|
|
21
25
|
return {
|
|
@@ -46,6 +50,8 @@ export function httpFace(options = {}) {
|
|
|
46
50
|
* upgrade (`ProcedureServer.admits`). Thus no idle connection without credentials stays open.
|
|
47
51
|
* - The stop parts refuse new calls at the stop of the intake. In the drain, each connection
|
|
48
52
|
* closes when its calls end, so the drain of the listener does not wait for an idle connection.
|
|
53
|
+
* - After the cooperative abort, the connections stay open until each cut call ends in-band with
|
|
54
|
+
* `UNAVAILABLE` (CLI-48). Before, the connections closed at the abort, and a cut stream lost its end.
|
|
49
55
|
*/
|
|
50
56
|
export function wsFace(options = {}) {
|
|
51
57
|
return (context) => {
|
|
@@ -60,7 +66,17 @@ export function wsFace(options = {}) {
|
|
|
60
66
|
stopIntake: () => upgrade.stopIntake(),
|
|
61
67
|
drain: async (deadline, signal) => {
|
|
62
68
|
await upgrade.drain(deadline, signal);
|
|
63
|
-
|
|
69
|
+
if (signal?.aborted) {
|
|
70
|
+
// After the cooperative abort, the service cuts each call, at the latest at the deadline,
|
|
71
|
+
// and each cut call ends in-band. The connections stay open until those calls end
|
|
72
|
+
// (CLI-48). This wait has no timer of its own: the cap of the phase limits it.
|
|
73
|
+
await upgrade.drain(realClock.now() + UNTIL_CLOSE_MS);
|
|
74
|
+
// The close starts here. The stage "close transports" waits for the close handshakes,
|
|
75
|
+
// so a cut at the deadline does not make the drain late.
|
|
76
|
+
upgrade.close().catch(() => undefined);
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
// The calls ended: the connections end in their protocol
|
|
64
80
|
await upgrade.close();
|
|
65
81
|
},
|
|
66
82
|
inFlight: () => upgrade.inFlight(),
|
package/dist/host/faces.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"faces.js","sourceRoot":"","sources":["../../src/host/faces.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"faces.js","sourceRoot":"","sources":["../../src/host/faces.ts"],"names":[],"mappings":"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"}
|
package/dist/host/index.d.ts
CHANGED
|
@@ -11,7 +11,8 @@
|
|
|
11
11
|
* faces mount on its mount list, so they share one port. Without a listener, the app mounts
|
|
12
12
|
* `host.handler` and `host.upgrade` on its own listener.
|
|
13
13
|
* - The request tracking: one route pattern for each face, and a function of the idempotency of
|
|
14
|
-
* each call (decision D3). Each call is a stream (decision D4).
|
|
14
|
+
* each call (decision D3). Each call is a stream (decision D4). A face of requests that are not
|
|
15
|
+
* procedure calls, for example the auth routes, tracks them with `track` (CLI-54).
|
|
15
16
|
* - The collections: the option `collections` gives the storages, and the host serves
|
|
16
17
|
* `collections.<name>.*`. Each storage is a dependency of the service. The expose rule applies
|
|
17
18
|
* to the collection procedures. Only `host.*` and `events.subscribe` are always on (CLI-47).
|
|
@@ -198,6 +199,6 @@ export interface ProcedureHost {
|
|
|
198
199
|
export declare function createProcedureHost(options?: ProcedureHostOptions): ProcedureHost;
|
|
199
200
|
export { httpFace, wsFace } from "./faces.js";
|
|
200
201
|
export type { HostFace, HostFaceContext, HostFaceEndpoint, HostFaceFactory, HostFaceUpgrade } from "./faces.js";
|
|
201
|
-
export { callOperations, faceHandler, operationOfCall } from "./tracking.js";
|
|
202
|
-
export type { CallDetail, CallOperation, FaceHandler, FaceHandlerOptions } from "./tracking.js";
|
|
202
|
+
export { callOperations, faceHandler, httpTracker, operationOfCall } from "./tracking.js";
|
|
203
|
+
export type { CallDetail, CallOperation, FaceHandler, FaceHandlerOptions, HttpTracker, HttpTrackerOptions } from "./tracking.js";
|
|
203
204
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/host/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/host/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/host/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,IAAI,YAAY,EAAE,MAAM,WAAW,CAAC;AACjF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAa,SAAS,EAAE,WAAW,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC7J,OAAO,EAAyB,KAAK,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACpF,OAAO,EAEL,eAAe,EASf,KAAK,MAAM,EACX,KAAK,KAAK,EACV,KAAK,2BAA2B,EAChC,KAAK,iBAAiB,EACtB,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC5B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAC9F,OAAO,EAAmC,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC;AAGnF,iFAAiF;AACjF,MAAM,MAAM,SAAS,GAAG,UAAU,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAEhE;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,EAAE,SAIjC,CAAC;AAEH,wFAAwF;AACxF,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAC7C;;;OAGG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,GAAG,2BAA2B,GAAG,SAAS,CAAC;CACzE;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,GAAG,uBAAuB,GAAG,eAAe,GAAG,SAAS,CAAC;IAChF,QAAQ,CAAC,EAAE,CAAC,EAAE,OAAO,GAAG,qBAAqB,GAAG,eAAe,GAAG,SAAS,CAAC;IAC5E,QAAQ,CAAC,GAAG,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC;IAC3C,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,uBAAuB,GAAG,qBAAqB,GAAG,eAAe,GAAG,SAAS,CAAC;CAClH;AAED,oFAAoF;AACpF,MAAM,WAAW,YAAY;IAC3B,yIAAyI;IACzI,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,yEAAyE;IACzE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,4FAA4F;IAC5F,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,mFAAmF;IACnF,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IAC/C,kGAAkG;IAClG,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;CAC3B;AAED,iFAAiF;AACjF,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAClC,sBAAsB,EACtB,UAAU,GAAG,aAAa,GAAG,OAAO,GAAG,YAAY,GAAG,QAAQ,GAAG,OAAO,GAAG,aAAa,GAAG,QAAQ,GAAG,cAAc,CACrH,CAAC;AAEF,qEAAqE;AACrE,MAAM,WAAW,qBAAqB;IACpC;;;OAGG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;CACnD;AAED,8CAA8C;AAC9C,MAAM,WAAW,oBAAoB;IACnC,+HAA+H;IAC/H,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,sGAAsG;IACtG,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,0EAA0E;IAC1E,QAAQ,CAAC,QAAQ,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAC;IAClD,6HAA6H;IAC7H,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IACzC;;;;;OAKG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,aAAa,KAAK,OAAO,CAAC,GAAG,SAAS,CAAC;IACjE,yHAAyH;IACzH,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC5C,0FAA0F;IAC1F,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACvC,kDAAkD;IAClD,QAAQ,CAAC,KAAK,CAAC,EAAE,kBAAkB,GAAG,SAAS,CAAC;IAChD,mFAAmF;IACnF,QAAQ,CAAC,UAAU,CAAC,EAAE,qBAAqB,GAAG,SAAS,CAAC;IACxD,wGAAwG;IACxG,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,YAAY,EAAE,GAAG,SAAS,CAAC;IACtD,2EAA2E;IAC3E,QAAQ,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,OAAO,CAAC,GAAG,cAAc,CAAC,CAAC,GAAG,SAAS,CAAC;IACzG,wGAAwG;IACxG,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,SAAS,CAAC;IACnC,oGAAoG;IACpG,QAAQ,CAAC,aAAa,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAC;IACvD,8GAA8G;IAC9G,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,YAAY,EAAE,GAAG,SAAS,CAAC;CAC1D;AAED,2FAA2F;AAC3F,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;CAC9B;AAED,mFAAmF;AACnF,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IACxC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;CACnC;AAED,8DAA8D;AAC9D,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;CACvB;AAED,sFAAsF;AACtF,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;IACzD,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;CACnC;AAED,mFAAmF;AACnF,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,QAAQ,EAAE,SAAS,WAAW,EAAE,CAAC;CAC3C;AAED,qEAAqE;AACrE,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,yDAAyD;AACzD,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,8DAA8D;IAC9D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,gHAAgH;IAChH,SAAS,IAAI,YAAY,EAAE,CAAC;IAC5B,6DAA6D;IAC7D,cAAc,IAAI,MAAM,CAAC;CAC1B;AAED,oGAAoG;AACpG,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACrC,+FAA+F;IAC/F,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,2GAA2G;IAC3G,QAAQ,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,YAAY,KAAK,OAAO,CAAC;IACvE,4EAA4E;IAC5E,QAAQ,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAClF,oHAAoH;IACpH,QAAQ,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,CAAC;IACpC,iEAAiE;IACjE,QAAQ,CAAC,YAAY,EAAE,SAAS,cAAc,EAAE,CAAC;IACjD,QAAQ,CAAC,MAAM,EAAE,SAAS,SAAS,EAAE,CAAC;IACtC,yEAAyE;IACzE,QAAQ,CAAC,WAAW,EAAE,SAAS,cAAc,EAAE,CAAC;IAChD,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,wHAAwH;IACxH,OAAO,CAAC,GAAG,EAAE,cAAc,GAAG,cAAc,CAAC;IAC7C,0EAA0E;IAC1E,WAAW,IAAI,MAAM,EAAE,CAAC;IACxB,6GAA6G;IAC7G,SAAS,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAAC;CACzC;AAyBD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,oBAAyB,GAAG,aAAa,CAwNrF;AA2DD,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAC9C,YAAY,EAAE,QAAQ,EAAE,eAAe,EAAE,gBAAgB,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAChH,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAC1F,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,EAAE,kBAAkB,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC"}
|
package/dist/host/index.js
CHANGED
|
@@ -11,7 +11,8 @@
|
|
|
11
11
|
* faces mount on its mount list, so they share one port. Without a listener, the app mounts
|
|
12
12
|
* `host.handler` and `host.upgrade` on its own listener.
|
|
13
13
|
* - The request tracking: one route pattern for each face, and a function of the idempotency of
|
|
14
|
-
* each call (decision D3). Each call is a stream (decision D4).
|
|
14
|
+
* each call (decision D3). Each call is a stream (decision D4). A face of requests that are not
|
|
15
|
+
* procedure calls, for example the auth routes, tracks them with `track` (CLI-54).
|
|
15
16
|
* - The collections: the option `collections` gives the storages, and the host serves
|
|
16
17
|
* `collections.<name>.*`. Each storage is a dependency of the service. The expose rule applies
|
|
17
18
|
* to the collection procedures. Only `host.*` and `events.subscribe` are always on (CLI-47).
|
|
@@ -20,7 +21,7 @@ import { createServer } from "node:http";
|
|
|
20
21
|
import { httpTransport, pathOf } from "@mark1russell7/service/http";
|
|
21
22
|
import { PROCEDURE_REGISTRY, ProcedureServer, TIMER_DEFAULTS, hostPolicy, hostProcedures, metricsInterceptor, optionalMs, procedureServerOptions, realClock, seconds, } from "@procedures/client";
|
|
22
23
|
import { httpFace, wsFace } from "./faces.js";
|
|
23
|
-
import { callOperations, faceHandler, operationOfCall } from "./tracking.js";
|
|
24
|
+
import { callOperations, faceHandler, httpTracker, operationOfCall } from "./tracking.js";
|
|
24
25
|
/**
|
|
25
26
|
* The knobs of a listener on the computer of a developer, as data. The transport has no defaults,
|
|
26
27
|
* so the caller gives these values or its own: an idle close of 5 s (the default of Node), a sweep
|
|
@@ -110,9 +111,14 @@ export function createProcedureHost(options = {}) {
|
|
|
110
111
|
if (!factory)
|
|
111
112
|
continue;
|
|
112
113
|
const handler = faceHandler({ server, controller: name, face: faceName, life: () => life, keyed: keyedWindowMs !== undefined });
|
|
113
|
-
|
|
114
|
+
// The tracking of the requests of the face that are not procedure calls, on the same route pattern (CLI-54)
|
|
115
|
+
const track = httpTracker({ controller: name, face: faceName, life: () => life });
|
|
116
|
+
faces.set(faceName, factory({ name: faceName, handler, server, registry, policy, clock, track }));
|
|
114
117
|
}
|
|
115
|
-
// The listeners that the host owns, each one with the faces of its mount list
|
|
118
|
+
// The listeners that the host owns, each one with the faces of its mount list. The responses
|
|
119
|
+
// and the upgraded sockets of each listener go into one record, so the close of a face or of a
|
|
120
|
+
// listener first lets each answer go out (CLI-48).
|
|
121
|
+
const outgoing = outgoingAnswers();
|
|
116
122
|
const listeners = options.listen ?? [];
|
|
117
123
|
const onListener = new Set();
|
|
118
124
|
const endpoints = [];
|
|
@@ -127,11 +133,17 @@ export function createProcedureHost(options = {}) {
|
|
|
127
133
|
onListener.add(faceName);
|
|
128
134
|
if (face.handler) {
|
|
129
135
|
const handle = face.handler;
|
|
130
|
-
transport.mount((req, res) =>
|
|
136
|
+
transport.mount((req, res) => {
|
|
137
|
+
const taken = handle(req, res);
|
|
138
|
+
if (taken)
|
|
139
|
+
outgoing.response(res);
|
|
140
|
+
return taken;
|
|
141
|
+
});
|
|
131
142
|
}
|
|
132
143
|
if (face.upgrade) {
|
|
133
144
|
const upgrade = face.upgrade;
|
|
134
145
|
transport.upgrade(upgrade.match, (req, socket, head) => {
|
|
146
|
+
outgoing.socket(socket);
|
|
135
147
|
upgrade.handler(req, socket, head);
|
|
136
148
|
});
|
|
137
149
|
}
|
|
@@ -158,7 +170,11 @@ export function createProcedureHost(options = {}) {
|
|
|
158
170
|
stopIntake: () => transport.stopIntake(),
|
|
159
171
|
drain: (deadline, signal) => transport.drain(deadline, signal),
|
|
160
172
|
inFlight: () => transport.inFlight(),
|
|
161
|
-
close:
|
|
173
|
+
// The close destroys each connection: first each answer that a face ended goes out (CLI-48)
|
|
174
|
+
close: async () => {
|
|
175
|
+
await outgoing.flushed();
|
|
176
|
+
await transport.close();
|
|
177
|
+
},
|
|
162
178
|
};
|
|
163
179
|
return { name: `${name}.listen.${listenerName}`, knobs: transport.knobs, impl };
|
|
164
180
|
});
|
|
@@ -197,7 +213,23 @@ export function createProcedureHost(options = {}) {
|
|
|
197
213
|
close: () => server.close(),
|
|
198
214
|
},
|
|
199
215
|
};
|
|
200
|
-
|
|
216
|
+
// The close of a face (the sessions of MCP, the connections of WebSocket) also lets each answer go out first (CLI-48)
|
|
217
|
+
const faceParts = [...faces.entries()].flatMap(([faceName, face]) => {
|
|
218
|
+
const impl = face.parts;
|
|
219
|
+
if (!impl)
|
|
220
|
+
return [];
|
|
221
|
+
const part = {
|
|
222
|
+
start: (signal, lifecycle) => impl.start(signal, lifecycle),
|
|
223
|
+
stopIntake: () => impl.stopIntake(),
|
|
224
|
+
drain: (deadline, signal) => impl.drain(deadline, signal),
|
|
225
|
+
inFlight: () => impl.inFlight(),
|
|
226
|
+
close: async () => {
|
|
227
|
+
await outgoing.flushed();
|
|
228
|
+
await impl.close();
|
|
229
|
+
},
|
|
230
|
+
};
|
|
231
|
+
return [{ name: `${name}.${faceName}`, knobs: {}, impl: part }];
|
|
232
|
+
});
|
|
201
233
|
const parts = [serverPart, ...faceParts, ...listenerParts];
|
|
202
234
|
const dependencies = server.storageHandles().map((handle) => ({
|
|
203
235
|
name: handle.name,
|
|
@@ -260,6 +292,47 @@ export function createProcedureHost(options = {}) {
|
|
|
260
292
|
},
|
|
261
293
|
};
|
|
262
294
|
}
|
|
295
|
+
/** An empty write: its callback comes after each write before it. */
|
|
296
|
+
const FLUSH = Buffer.alloc(0);
|
|
297
|
+
/** This function makes the record of the answers that go out on the listeners of a host (CLI-48). */
|
|
298
|
+
function outgoingAnswers() {
|
|
299
|
+
const responses = new Set();
|
|
300
|
+
const sockets = new Set();
|
|
301
|
+
return {
|
|
302
|
+
response(res) {
|
|
303
|
+
if (responses.has(res))
|
|
304
|
+
return;
|
|
305
|
+
responses.add(res);
|
|
306
|
+
const done = () => {
|
|
307
|
+
responses.delete(res);
|
|
308
|
+
};
|
|
309
|
+
res.once("finish", done);
|
|
310
|
+
res.once("close", done);
|
|
311
|
+
},
|
|
312
|
+
socket(socket) {
|
|
313
|
+
sockets.add(socket);
|
|
314
|
+
socket.once("close", () => sockets.delete(socket));
|
|
315
|
+
},
|
|
316
|
+
async flushed() {
|
|
317
|
+
await new Promise((resolve) => setImmediate(resolve));
|
|
318
|
+
const waits = [];
|
|
319
|
+
for (const res of responses) {
|
|
320
|
+
if (!res.writableEnded || res.writableFinished || res.destroyed)
|
|
321
|
+
continue;
|
|
322
|
+
waits.push(new Promise((resolve) => {
|
|
323
|
+
res.once("finish", () => resolve());
|
|
324
|
+
res.once("close", () => resolve());
|
|
325
|
+
}));
|
|
326
|
+
}
|
|
327
|
+
for (const socket of sockets) {
|
|
328
|
+
if (socket.destroyed || !socket.writable || socket.writableLength === 0)
|
|
329
|
+
continue;
|
|
330
|
+
waits.push(new Promise((resolve) => socket.write(FLUSH, () => resolve())));
|
|
331
|
+
}
|
|
332
|
+
await Promise.all(waits);
|
|
333
|
+
},
|
|
334
|
+
};
|
|
335
|
+
}
|
|
263
336
|
export { httpFace, wsFace } from "./faces.js";
|
|
264
|
-
export { callOperations, faceHandler, operationOfCall } from "./tracking.js";
|
|
337
|
+
export { callOperations, faceHandler, httpTracker, operationOfCall } from "./tracking.js";
|
|
265
338
|
//# sourceMappingURL=index.js.map
|
package/dist/host/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/host/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/host/index.ts"],"names":[],"mappings":"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"}
|
package/dist/host/tracking.d.ts
CHANGED
|
@@ -11,14 +11,18 @@
|
|
|
11
11
|
* repeatable procedure, a call with an idempotency key, or a call that runs one time.
|
|
12
12
|
* - Each call is a stream (D4). A unary call is a stream of one. A stream call stays in flight
|
|
13
13
|
* until its last item, and a cut after the first item ends the stream in-band, with an error.
|
|
14
|
+
* Each cut has the code `UNAVAILABLE`, before and after the first item. Its flag `retryable` tells
|
|
15
|
+
* if a retry is safe (CLI-48).
|
|
14
16
|
*/
|
|
17
|
+
import type { IncomingMessage, ServerResponse as NodeResponse } from "node:http";
|
|
15
18
|
import type { Lifecycle, Operation, OperationOf } from "@mark1russell7/service";
|
|
16
19
|
import { type ProcedureRegistry, type ProcedureServer, type RequestHandler } from "@procedures/client";
|
|
17
20
|
/**
|
|
18
21
|
* The operation of a call, which gives its idempotency (D3):
|
|
19
22
|
* - `repeatable`: the effects of the procedure permit a second run (no writes, or idempotent writes).
|
|
20
23
|
* - `keyed`: the call has an idempotency key, and the server keeps its result for the window.
|
|
21
|
-
* - `once`: each other call. A cut of it
|
|
24
|
+
* - `once`: each other call. A cut of it is `UNAVAILABLE` and not retryable, because it can have had its effect.
|
|
25
|
+
* Before its first item, the HTTP face answers 500 for it.
|
|
22
26
|
*/
|
|
23
27
|
export type CallOperation = "repeatable" | "keyed" | "once";
|
|
24
28
|
/** The detail of a call for the function of a route pattern: its face, its procedure and its operation. */
|
|
@@ -57,4 +61,29 @@ export interface FaceHandlerOptions {
|
|
|
57
61
|
* goes through `life.request`. Without a service, each call goes to the server directly.
|
|
58
62
|
*/
|
|
59
63
|
export declare function faceHandler(options: FaceHandlerOptions): FaceHandler;
|
|
64
|
+
/**
|
|
65
|
+
* The request tracking of a face whose requests are not procedure calls, for example the auth
|
|
66
|
+
* routes of an app (CLI-54). The function does the work of one HTTP request through `life.request`,
|
|
67
|
+
* on the route `<face> <key>` of the controller of the host. Thus the request gets the readiness
|
|
68
|
+
* of the controller, the refusal after the stop of the intake, and the drain.
|
|
69
|
+
*
|
|
70
|
+
* - `serve` writes the response. The request stays in flight until the response closes.
|
|
71
|
+
* - The operation of the request gives its idempotency. The default: `repeatable` for `GET` and
|
|
72
|
+
* `HEAD`, `once` for another method.
|
|
73
|
+
* - A refusal, a cut before the response starts and an error get a JSON error of wire v1:
|
|
74
|
+
* `UNAVAILABLE` (503, retryable) or `INTERNAL_ERROR` (500).
|
|
75
|
+
* - Without a service, `serve` starts at once.
|
|
76
|
+
*/
|
|
77
|
+
export type HttpTracker = (req: IncomingMessage, res: NodeResponse, key: string, serve: (signal: AbortSignal) => Promise<void> | void, operation?: CallOperation) => Promise<void>;
|
|
78
|
+
/** The options of `httpTracker()`. */
|
|
79
|
+
export interface HttpTrackerOptions {
|
|
80
|
+
/** The controller of the calls in the declaration of the service. */
|
|
81
|
+
readonly controller: string;
|
|
82
|
+
/** The name of the face: the first part of the route of each request. */
|
|
83
|
+
readonly face: string;
|
|
84
|
+
/** This function gives the lifecycle of the service, or null. Without a lifecycle, each request starts directly. */
|
|
85
|
+
readonly life: () => Lifecycle | null;
|
|
86
|
+
}
|
|
87
|
+
/** This function gives the request tracking of one face (CLI-54). */
|
|
88
|
+
export declare function httpTracker(options: HttpTrackerOptions): HttpTracker;
|
|
60
89
|
//# sourceMappingURL=tracking.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tracking.d.ts","sourceRoot":"","sources":["../../src/host/tracking.ts"],"names":[],"mappings":"AAAA
|
|
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,CAUpE;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"}
|
package/dist/host/tracking.js
CHANGED
|
@@ -11,6 +11,8 @@
|
|
|
11
11
|
* repeatable procedure, a call with an idempotency key, or a call that runs one time.
|
|
12
12
|
* - Each call is a stream (D4). A unary call is a stream of one. A stream call stays in flight
|
|
13
13
|
* until its last item, and a cut after the first item ends the stream in-band, with an error.
|
|
14
|
+
* Each cut has the code `UNAVAILABLE`, before and after the first item. Its flag `retryable` tells
|
|
15
|
+
* if a retry is safe (CLI-48).
|
|
14
16
|
*/
|
|
15
17
|
import { IDEMPOTENCY_KEY_METADATA, effectsOf, idempotencyKeyOf, isRepeatable, methodToPath, ms, pathToKey, } from "@procedures/client";
|
|
16
18
|
/**
|
|
@@ -35,17 +37,20 @@ function messageOf(error) {
|
|
|
35
37
|
return error instanceof Error ? error.message : String(error);
|
|
36
38
|
}
|
|
37
39
|
/**
|
|
38
|
-
* The response of an end before the first item. A refusal and
|
|
39
|
-
*
|
|
40
|
+
* The response of an end before the first item. A refusal and each cut are `UNAVAILABLE`, because
|
|
41
|
+
* the server stopped (CLI-48). The flag `retryable` tells if a retry is safe:
|
|
42
|
+
* - A refusal and a retryable cut are retryable. The HTTP face answers 503, with `Retry-After` from the transport.
|
|
43
|
+
* - A cut of a call that can have had its effect is not retryable. The HTTP face answers 500, as the runner does.
|
|
44
|
+
* A failure is `INTERNAL_ERROR` (500).
|
|
40
45
|
*/
|
|
41
46
|
function endResponse(id, end) {
|
|
42
47
|
switch (end.kind) {
|
|
43
48
|
case "refused":
|
|
44
49
|
return failure(id, "UNAVAILABLE", `The host does not take the call now: ${end.cause}`, true);
|
|
45
50
|
case "cut":
|
|
46
|
-
return end.
|
|
51
|
+
return end.retryable
|
|
47
52
|
? failure(id, "UNAVAILABLE", `The host stopped the call: ${end.cause}`, true)
|
|
48
|
-
: failure(id, "
|
|
53
|
+
: failure(id, "UNAVAILABLE", `The host stopped the call, and the call can have had its effect: ${end.cause}`, false);
|
|
49
54
|
case "failed":
|
|
50
55
|
return failure(id, "INTERNAL_ERROR", messageOf(end.error), false);
|
|
51
56
|
case "done":
|
|
@@ -55,11 +60,15 @@ function endResponse(id, end) {
|
|
|
55
60
|
/**
|
|
56
61
|
* The error of an end after the first item: the stream ends in-band, with an error line. The count
|
|
57
62
|
* of the items of the stream goes in the message. The head of the response is not an item.
|
|
63
|
+
*
|
|
64
|
+
* The code is always `UNAVAILABLE`, because the server stopped the stream. A cut is not a failure
|
|
65
|
+
* of the server. The flag `retryable` tells if a retry is safe (CLI-48). Before, a cut that is not
|
|
66
|
+
* retryable had the code `INTERNAL_ERROR`, before and after the first item.
|
|
58
67
|
*/
|
|
59
68
|
function inBandEnd(end) {
|
|
60
69
|
const delivered = Math.max(0, end.delivered - 1);
|
|
61
70
|
return Object.assign(new Error(`The host stopped the stream after ${delivered} items: ${end.cause}`), {
|
|
62
|
-
code:
|
|
71
|
+
code: "UNAVAILABLE",
|
|
63
72
|
retryable: end.retryable,
|
|
64
73
|
delivered,
|
|
65
74
|
});
|
|
@@ -159,4 +168,57 @@ export function faceHandler(options) {
|
|
|
159
168
|
},
|
|
160
169
|
};
|
|
161
170
|
}
|
|
171
|
+
/** This function writes the JSON error of an end of a request, when its response did not start. */
|
|
172
|
+
function writeEnd(res, end) {
|
|
173
|
+
if (end.kind === "done")
|
|
174
|
+
return;
|
|
175
|
+
if (res.headersSent || res.writableEnded) {
|
|
176
|
+
// The response started: only a close of the connection tells the caller
|
|
177
|
+
if (!res.writableEnded)
|
|
178
|
+
res.destroy();
|
|
179
|
+
return;
|
|
180
|
+
}
|
|
181
|
+
const { status } = endResponse("", end);
|
|
182
|
+
if (status.type !== "error")
|
|
183
|
+
return;
|
|
184
|
+
res.statusCode = status.code === "UNAVAILABLE" ? 503 : 500;
|
|
185
|
+
res.setHeader("Content-Type", "application/json");
|
|
186
|
+
res.end(JSON.stringify({ error: status.message, code: status.code, retryable: status.retryable }));
|
|
187
|
+
}
|
|
188
|
+
/** This function gives the request tracking of one face (CLI-54). */
|
|
189
|
+
export function httpTracker(options) {
|
|
190
|
+
return async (req, res, key, serve, operation) => {
|
|
191
|
+
// The work ends when the response closes: a handler can end before its body is out
|
|
192
|
+
const work = (signal) => new Promise((resolve, reject) => {
|
|
193
|
+
if (res.writableFinished || res.destroyed) {
|
|
194
|
+
resolve(true);
|
|
195
|
+
return;
|
|
196
|
+
}
|
|
197
|
+
res.once("close", () => resolve(true));
|
|
198
|
+
Promise.resolve()
|
|
199
|
+
.then(() => serve(signal))
|
|
200
|
+
.catch(reject);
|
|
201
|
+
});
|
|
202
|
+
const life = options.life();
|
|
203
|
+
if (!life) {
|
|
204
|
+
try {
|
|
205
|
+
await work(new AbortController().signal);
|
|
206
|
+
}
|
|
207
|
+
catch (error) {
|
|
208
|
+
writeEnd(res, { kind: "failed", error, delivered: 0 });
|
|
209
|
+
}
|
|
210
|
+
return;
|
|
211
|
+
}
|
|
212
|
+
const method = (req.method ?? "GET").toUpperCase();
|
|
213
|
+
const detail = { face: options.face, key, operation: operation ?? (method === "GET" || method === "HEAD" ? "repeatable" : "once") };
|
|
214
|
+
let end;
|
|
215
|
+
try {
|
|
216
|
+
end = (await life.request(options.controller, `${options.face} ${key}`, work, { detail }).collect()).end;
|
|
217
|
+
}
|
|
218
|
+
catch (error) {
|
|
219
|
+
end = { kind: "failed", error: new Error(`The service of the host has no route for this request: ${messageOf(error)}`), delivered: 0 };
|
|
220
|
+
}
|
|
221
|
+
writeEnd(res, end);
|
|
222
|
+
};
|
|
223
|
+
}
|
|
162
224
|
//# sourceMappingURL=tracking.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tracking.js","sourceRoot":"","sources":["../../src/host/tracking.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"tracking.js","sourceRoot":"","sources":["../../src/host/tracking.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
* Exposes procedures and generates manifests.
|
|
6
6
|
*/
|
|
7
7
|
export type { TransportType, TransportConfig, HttpTransportConfig, WebSocketTransportConfig, LocalTransportConfig, ServerCreateInput, ServerCreateOutput, ServerConnectInput, ServerConnectOutput, ServerDisconnectInput, ServerDisconnectOutput, ManifestGenerateInput, ManifestGenerateOutput, ProcedureInfo, PeerConnection, ProcedureAnnounceMessage, ProcedureUpdateMessage, } from "./types.js";
|
|
8
|
-
export { createProcedureHost, httpFace, wsFace, LOCAL_LISTENER_KNOBS, callOperations, faceHandler, operationOfCall, } from "./host/index.js";
|
|
9
|
-
export type { ProcedureHost, ProcedureHostOptions, ProcedureHostFaces, HostListener, HostCollection, HostServerOptions, HostPart, HostDependency, HostCheck, HostPattern, HostController, HostControllerOptions, HostEndpoint, HostInfo, HostKnobs, HostFace, HostFaceContext, HostFaceEndpoint, HostFaceFactory, HostFaceUpgrade, CallDetail, CallOperation, FaceHandler, FaceHandlerOptions, } from "./host/index.js";
|
|
8
|
+
export { createProcedureHost, httpFace, wsFace, LOCAL_LISTENER_KNOBS, callOperations, faceHandler, httpTracker, operationOfCall, } from "./host/index.js";
|
|
9
|
+
export type { ProcedureHost, ProcedureHostOptions, ProcedureHostFaces, HostListener, HostCollection, HostServerOptions, HostPart, HostDependency, HostCheck, HostPattern, HostController, HostControllerOptions, HostEndpoint, HostInfo, HostKnobs, HostFace, HostFaceContext, HostFaceEndpoint, HostFaceFactory, HostFaceUpgrade, CallDetail, CallOperation, FaceHandler, FaceHandlerOptions, HttpTracker, HttpTrackerOptions, } from "./host/index.js";
|
|
10
10
|
export { createPeer, peerHostOptions, PEER_PROFILE, type Peer, type PeerOptions, type PeerEndpoint } from "./peer/index.js";
|
|
11
11
|
export { exposeRule } from "./expose.js";
|
|
12
12
|
export { serverCreateProcedure, getPeer, getActivePeerIds, serverConnectProcedure, serverDisconnectProcedure, manifestGenerateProcedure, } from "./procedures/index.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,YAAY,EACV,aAAa,EACb,eAAe,EACf,mBAAmB,EACnB,wBAAwB,EACxB,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,aAAa,EACb,cAAc,EACd,wBAAwB,EACxB,sBAAsB,GACvB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,mBAAmB,EACnB,QAAQ,EACR,MAAM,EACN,oBAAoB,EACpB,cAAc,EACd,WAAW,EACX,eAAe,GAChB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,aAAa,EACb,oBAAoB,EACpB,kBAAkB,EAClB,YAAY,EACZ,cAAc,EACd,iBAAiB,EACjB,QAAQ,EACR,cAAc,EACd,SAAS,EACT,WAAW,EACX,cAAc,EACd,qBAAqB,EACrB,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,UAAU,EACV,aAAa,EACb,WAAW,EACX,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,YAAY,EAAE,KAAK,IAAI,EAAE,KAAK,WAAW,EAAE,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC5H,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,OAAO,EACL,qBAAqB,EACrB,OAAO,EACP,gBAAgB,EAChB,sBAAsB,EACtB,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,kBAAkB,EAClB,KAAK,iBAAiB,GACvB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,OAAO,EACP,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,KAAK,UAAU,EACf,KAAK,cAAc,GACpB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,0BAA0B,EAC1B,iBAAiB,EACjB,eAAe,GAChB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,UAAU,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,YAAY,EACV,aAAa,EACb,eAAe,EACf,mBAAmB,EACnB,wBAAwB,EACxB,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,aAAa,EACb,cAAc,EACd,wBAAwB,EACxB,sBAAsB,GACvB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,mBAAmB,EACnB,QAAQ,EACR,MAAM,EACN,oBAAoB,EACpB,cAAc,EACd,WAAW,EACX,WAAW,EACX,eAAe,GAChB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,aAAa,EACb,oBAAoB,EACpB,kBAAkB,EAClB,YAAY,EACZ,cAAc,EACd,iBAAiB,EACjB,QAAQ,EACR,cAAc,EACd,SAAS,EACT,WAAW,EACX,cAAc,EACd,qBAAqB,EACrB,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,UAAU,EACV,aAAa,EACb,WAAW,EACX,kBAAkB,EAClB,WAAW,EACX,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,YAAY,EAAE,KAAK,IAAI,EAAE,KAAK,WAAW,EAAE,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC5H,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,OAAO,EACL,qBAAqB,EACrB,OAAO,EACP,gBAAgB,EAChB,sBAAsB,EACtB,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,kBAAkB,EAClB,KAAK,iBAAiB,GACvB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,OAAO,EACP,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,KAAK,UAAU,EACf,KAAK,cAAc,GACpB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,0BAA0B,EAC1B,iBAAiB,EACjB,eAAe,GAChB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,UAAU,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* Exposes procedures and generates manifests.
|
|
6
6
|
*/
|
|
7
7
|
// The procedures host (CLI-7): the parts of a service, and its faces
|
|
8
|
-
export { createProcedureHost, httpFace, wsFace, LOCAL_LISTENER_KNOBS, callOperations, faceHandler, operationOfCall, } from "./host/index.js";
|
|
8
|
+
export { createProcedureHost, httpFace, wsFace, LOCAL_LISTENER_KNOBS, callOperations, faceHandler, httpTracker, operationOfCall, } from "./host/index.js";
|
|
9
9
|
// Peer: a procedures host with a service of its own, for a process that has no service
|
|
10
10
|
export { createPeer, peerHostOptions, PEER_PROFILE } from "./peer/index.js";
|
|
11
11
|
export { exposeRule } from "./expose.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAuBH,qEAAqE;AACrE,OAAO,EACL,mBAAmB,EACnB,QAAQ,EACR,MAAM,EACN,oBAAoB,EACpB,cAAc,EACd,WAAW,EACX,eAAe,GAChB,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAuBH,qEAAqE;AACrE,OAAO,EACL,mBAAmB,EACnB,QAAQ,EACR,MAAM,EACN,oBAAoB,EACpB,cAAc,EACd,WAAW,EACX,WAAW,EACX,eAAe,GAChB,MAAM,iBAAiB,CAAC;AA8BzB,uFAAuF;AACvF,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,YAAY,EAAkD,MAAM,iBAAiB,CAAC;AAC5H,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,aAAa;AACb,OAAO,EACL,qBAAqB,EACrB,OAAO,EACP,gBAAgB,EAChB,sBAAsB,EACtB,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,uBAAuB,CAAC;AAE/B,sBAAsB;AACtB,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,kBAAkB,GAEnB,MAAM,qBAAqB,CAAC;AAE7B,aAAa;AACb,OAAO,EACL,OAAO,EACP,UAAU,EACV,aAAa,EACb,gBAAgB,GAGjB,MAAM,uBAAuB,CAAC;AAE/B,YAAY;AACZ,OAAO,EACL,0BAA0B,EAC1B,iBAAiB,EACjB,eAAe,GAChB,MAAM,sBAAsB,CAAC;AAE9B,eAAe;AACf,OAAO,EAAE,UAAU,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC"}
|