@procedures/client 0.3.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +68 -0
- package/README.md +62 -7
- package/dist/.tsbuildinfo +1 -1
- package/dist/adapters/http/client/transport.d.ts +2 -1
- package/dist/adapters/http/client/transport.d.ts.map +1 -1
- package/dist/adapters/http/client/transport.js +9 -2
- package/dist/adapters/http/client/transport.js.map +1 -1
- package/dist/adapters/http/server/transport.d.ts +3 -1
- package/dist/adapters/http/server/transport.d.ts.map +1 -1
- package/dist/adapters/http/server/transport.js +8 -6
- package/dist/adapters/http/server/transport.js.map +1 -1
- package/dist/adapters/local/client/transport.d.ts +2 -1
- package/dist/adapters/local/client/transport.d.ts.map +1 -1
- package/dist/adapters/local/client/transport.js +12 -4
- package/dist/adapters/local/client/transport.js.map +1 -1
- package/dist/adapters/local/client/types.d.ts +6 -0
- package/dist/adapters/local/client/types.d.ts.map +1 -1
- package/dist/adapters/local/client/types.js.map +1 -1
- package/dist/adapters/sequence.d.ts +36 -0
- package/dist/adapters/sequence.d.ts.map +1 -0
- package/dist/adapters/sequence.js +55 -0
- package/dist/adapters/sequence.js.map +1 -0
- package/dist/adapters/websocket/client/node.d.ts +30 -0
- package/dist/adapters/websocket/client/node.d.ts.map +1 -0
- package/dist/adapters/websocket/client/node.js +32 -0
- package/dist/adapters/websocket/client/node.js.map +1 -0
- package/dist/adapters/websocket/client/transport.d.ts +39 -1
- package/dist/adapters/websocket/client/transport.d.ts.map +1 -1
- package/dist/adapters/websocket/client/transport.js +119 -16
- package/dist/adapters/websocket/client/transport.js.map +1 -1
- package/dist/adapters/websocket/client/types.d.ts +15 -5
- package/dist/adapters/websocket/client/types.d.ts.map +1 -1
- package/dist/adapters/websocket/client/types.js.map +1 -1
- package/dist/adapters/websocket/server/transport.d.ts +22 -1
- package/dist/adapters/websocket/server/transport.d.ts.map +1 -1
- package/dist/adapters/websocket/server/transport.js +29 -1
- package/dist/adapters/websocket/server/transport.js.map +1 -1
- package/dist/adapters/websocket/server/types.d.ts +6 -0
- package/dist/adapters/websocket/server/types.d.ts.map +1 -1
- package/dist/adapters/websocket/shared/rpc.d.ts +4 -3
- package/dist/adapters/websocket/shared/rpc.d.ts.map +1 -1
- package/dist/adapters/websocket/shared/rpc.js +18 -9
- package/dist/adapters/websocket/shared/rpc.js.map +1 -1
- package/dist/browser.d.ts +3 -0
- package/dist/browser.d.ts.map +1 -1
- package/dist/browser.js +4 -0
- package/dist/browser.js.map +1 -1
- package/dist/client/errors/http-errors.d.ts.map +1 -1
- package/dist/client/errors/http-errors.js +6 -0
- package/dist/client/errors/http-errors.js.map +1 -1
- package/dist/client/errors/index.d.ts +1 -1
- package/dist/client/errors/index.js +1 -1
- package/dist/client/errors/registry.d.ts +2 -1
- package/dist/client/errors/registry.d.ts.map +1 -1
- package/dist/client/errors/registry.js +73 -22
- package/dist/client/errors/registry.js.map +1 -1
- package/dist/client/middleware/rate-limit.d.ts.map +1 -1
- package/dist/client/middleware/rate-limit.js +0 -1
- package/dist/client/middleware/rate-limit.js.map +1 -1
- package/dist/client/middleware/timeout.d.ts.map +1 -1
- package/dist/client/middleware/timeout.js +2 -9
- package/dist/client/middleware/timeout.js.map +1 -1
- package/dist/events/index.d.ts +4 -0
- package/dist/events/index.d.ts.map +1 -1
- package/dist/events/index.js +3 -0
- package/dist/events/index.js.map +1 -1
- package/dist/events/publisher.d.ts +95 -0
- package/dist/events/publisher.d.ts.map +1 -0
- package/dist/events/publisher.js +268 -0
- package/dist/events/publisher.js.map +1 -0
- package/dist/events/remote.d.ts +164 -0
- package/dist/events/remote.d.ts.map +1 -0
- package/dist/events/remote.js +250 -0
- package/dist/events/remote.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/node.d.ts +11 -0
- package/dist/node.d.ts.map +1 -0
- package/dist/node.js +10 -0
- package/dist/node.js.map +1 -0
- package/dist/procedures/collection/index.d.ts +1 -1
- package/dist/procedures/collection/index.d.ts.map +1 -1
- package/dist/procedures/collection/index.js.map +1 -1
- package/dist/procedures/collection/procedures.d.ts.map +1 -1
- package/dist/procedures/collection/procedures.js +6 -1
- package/dist/procedures/collection/procedures.js.map +1 -1
- package/dist/procedures/collection/schemas.d.ts +16 -1
- package/dist/procedures/collection/schemas.d.ts.map +1 -1
- package/dist/procedures/collection/schemas.js +13 -2
- package/dist/procedures/collection/schemas.js.map +1 -1
- package/dist/procedures/collection/storage.d.ts +14 -2
- package/dist/procedures/collection/storage.d.ts.map +1 -1
- package/dist/procedures/core/array.d.ts +1 -1
- package/dist/procedures/core/array.d.ts.map +1 -1
- package/dist/procedures/core/array.js +56 -15
- package/dist/procedures/core/array.js.map +1 -1
- package/dist/procedures/core/index.d.ts.map +1 -1
- package/dist/procedures/core/index.js +9 -2
- package/dist/procedures/core/index.js.map +1 -1
- package/dist/procedures/core/logic.js +1 -1
- package/dist/procedures/core/logic.js.map +1 -1
- package/dist/procedures/core/math.d.ts.map +1 -1
- package/dist/procedures/core/math.js +5 -1
- package/dist/procedures/core/math.js.map +1 -1
- package/dist/procedures/core/meta.d.ts.map +1 -1
- package/dist/procedures/core/meta.js +41 -7
- package/dist/procedures/core/meta.js.map +1 -1
- package/dist/procedures/core/type.d.ts.map +1 -1
- package/dist/procedures/core/type.js +4 -2
- package/dist/procedures/core/type.js.map +1 -1
- package/dist/procedures/discovery.d.ts +4 -6
- package/dist/procedures/discovery.d.ts.map +1 -1
- package/dist/procedures/discovery.js +4 -6
- package/dist/procedures/discovery.js.map +1 -1
- package/dist/procedures/invoke.d.ts +4 -2
- package/dist/procedures/invoke.d.ts.map +1 -1
- package/dist/procedures/invoke.js +1 -1
- package/dist/procedures/invoke.js.map +1 -1
- package/dist/procedures/ref.d.ts +4 -2
- package/dist/procedures/ref.d.ts.map +1 -1
- package/dist/procedures/ref.js +2 -1
- package/dist/procedures/ref.js.map +1 -1
- package/dist/protocol.d.ts +10 -3
- package/dist/protocol.d.ts.map +1 -1
- package/dist/protocol.js +13 -2
- package/dist/protocol.js.map +1 -1
- package/dist/server/host-policy.d.ts +11 -0
- package/dist/server/host-policy.d.ts.map +1 -1
- package/dist/server/host-policy.js +5 -0
- package/dist/server/host-policy.js.map +1 -1
- package/dist/server/procedure-server.d.ts +26 -3
- package/dist/server/procedure-server.d.ts.map +1 -1
- package/dist/server/procedure-server.js +38 -6
- package/dist/server/procedure-server.js.map +1 -1
- package/package.json +7 -6
- package/src/adapters/http/client/transport.ts +9 -2
- package/src/adapters/http/server/transport.ts +8 -6
- package/src/adapters/local/client/transport.ts +12 -4
- package/src/adapters/local/client/types.ts +7 -0
- package/src/adapters/sequence.ts +55 -0
- package/src/adapters/websocket/client/node.ts +34 -0
- package/src/adapters/websocket/client/transport.ts +128 -16
- package/src/adapters/websocket/client/types.ts +16 -5
- package/src/adapters/websocket/server/transport.ts +43 -1
- package/src/adapters/websocket/server/types.ts +7 -0
- package/src/adapters/websocket/shared/rpc.ts +19 -9
- package/src/browser.ts +15 -0
- package/src/client/errors/README.md +2 -0
- package/src/client/errors/http-errors.ts +5 -0
- package/src/client/errors/index.ts +1 -1
- package/src/client/errors/registry.ts +80 -22
- package/src/client/middleware/rate-limit.ts +0 -2
- package/src/client/middleware/timeout.ts +2 -9
- package/src/events/index.ts +16 -0
- package/src/events/publisher.ts +314 -0
- package/src/events/remote.ts +369 -0
- package/src/index.ts +4 -0
- package/src/node.ts +11 -0
- package/src/procedures/collection/index.ts +1 -0
- package/src/procedures/collection/procedures.ts +6 -1
- package/src/procedures/collection/schemas.ts +28 -2
- package/src/procedures/collection/storage.ts +14 -2
- package/src/procedures/core/array.ts +53 -16
- package/src/procedures/core/index.ts +9 -2
- package/src/procedures/core/logic.ts +1 -1
- package/src/procedures/core/math.ts +5 -1
- package/src/procedures/core/meta.ts +43 -7
- package/src/procedures/core/type.ts +4 -2
- package/src/procedures/discovery.ts +4 -6
- package/src/procedures/invoke.ts +4 -2
- package/src/procedures/ref.ts +4 -2
- package/src/protocol.ts +16 -3
- package/src/server/host-policy.ts +14 -0
- package/src/server/procedure-server.ts +45 -8
- package/dist/procedures/cli/announce.d.ts +0 -67
- package/dist/procedures/cli/announce.d.ts.map +0 -1
- package/dist/procedures/cli/announce.js +0 -392
- package/dist/procedures/cli/announce.js.map +0 -1
- package/dist/procedures/cli/discover.d.ts +0 -66
- package/dist/procedures/cli/discover.d.ts.map +0 -1
- package/dist/procedures/cli/discover.js +0 -310
- package/dist/procedures/cli/discover.js.map +0 -1
- package/dist/procedures/cli/index.d.ts +0 -13
- package/dist/procedures/cli/index.d.ts.map +0 -1
- package/dist/procedures/cli/index.js +0 -203
- package/dist/procedures/cli/index.js.map +0 -1
- package/dist/procedures/cli/init.d.ts +0 -17
- package/dist/procedures/cli/init.d.ts.map +0 -1
- package/dist/procedures/cli/init.js +0 -336
- package/dist/procedures/cli/init.js.map +0 -1
- package/src/procedures/cli/announce.ts +0 -470
- package/src/procedures/cli/discover.ts +0 -390
- package/src/procedures/cli/index.ts +0 -231
- package/src/procedures/cli/init.ts +0 -370
package/dist/protocol.js
CHANGED
|
@@ -13,8 +13,9 @@ export const PROTOCOL_VERSION = 1;
|
|
|
13
13
|
export const PROTOCOL_HEADER = "Procedures-Protocol";
|
|
14
14
|
/**
|
|
15
15
|
* The error codes of the protocol, on each face (HTTP, WebSocket, MCP, local). An error that a
|
|
16
|
-
* handler throws with its own `code` keeps it
|
|
17
|
-
* the status
|
|
16
|
+
* handler throws with its own `code` keeps it, for a value and for a stream (`errorCodeOf`). The
|
|
17
|
+
* HTTP status follows the code: the status of this list, the status of `ERROR_REGISTRY` for
|
|
18
|
+
* another known code, or 500.
|
|
18
19
|
*/
|
|
19
20
|
export const ERROR_CODES = {
|
|
20
21
|
NOT_FOUND: { http: 404, retryable: false, meaning: "No procedure has the path, or the host does not expose it" },
|
|
@@ -38,11 +39,21 @@ export const ERROR_CODES = {
|
|
|
38
39
|
UNAVAILABLE: { http: 503, retryable: true, meaning: "The server cannot take the call now: it stops, or it is busy" },
|
|
39
40
|
CONNECTION_CLOSED: { http: 503, retryable: true, meaning: "The connection closed before the call left" },
|
|
40
41
|
CONNECTION_NOT_FOUND: { http: 404, retryable: false, meaning: "The server has no connection with this id" },
|
|
42
|
+
TOPIC_NOT_FOUND: { http: 404, retryable: false, meaning: "The topic rule of the host has no topic with this name" },
|
|
41
43
|
};
|
|
42
44
|
/** True when a code is an error code of the protocol. */
|
|
43
45
|
export function isProtocolErrorCode(code) {
|
|
44
46
|
return typeof code === "string" && Object.prototype.hasOwnProperty.call(ERROR_CODES, code);
|
|
45
47
|
}
|
|
48
|
+
/**
|
|
49
|
+
* The code of an error that a handler or an invocation throws, on each face: its own code when
|
|
50
|
+
* it is a string, or `HANDLER_ERROR`. An invocation error has a code of this list. Before, a
|
|
51
|
+
* value lost the own code of a handler error, and a stream kept it (roadmap R30).
|
|
52
|
+
*/
|
|
53
|
+
export function errorCodeOf(error) {
|
|
54
|
+
const code = error?.code;
|
|
55
|
+
return typeof code === "string" ? code : "HANDLER_ERROR";
|
|
56
|
+
}
|
|
46
57
|
/** The HTTP status of an error code, or undefined for a code that is not in the list. */
|
|
47
58
|
export function httpStatusOf(code) {
|
|
48
59
|
return isProtocolErrorCode(code) ? ERROR_CODES[code].http : undefined;
|
package/dist/protocol.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,iEAAiE;AACjE,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAElC,iFAAiF;AACjF,MAAM,CAAC,MAAM,eAAe,GAAG,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,6 +14,8 @@
|
|
|
14
14
|
* - `token`, `browser`: the checks of the network transports (`client-server` applies them).
|
|
15
15
|
* - `capability`, `readOnly`, `clearanceOrder`, `resources`, `admitItem`: the capability of each
|
|
16
16
|
* call and what the host gives for it (CAPABILITIES-2026-10).
|
|
17
|
+
* - `events`: the remote events of the host (`documentation/EVENTS.md`). The server pins
|
|
18
|
+
* `events.subscribe` with this topic rule, and its procedures get the bus as `ctx.bus`.
|
|
17
19
|
*/
|
|
18
20
|
import type { Capability, ClearanceOrder, ProcedurePath, ResourcesOf } from "../procedures/types.js";
|
|
19
21
|
import type { AdmitItem, Interceptor, Invocation } from "../procedures/invoke.js";
|
|
@@ -21,6 +23,7 @@ import type { ServerRequest } from "./types.js";
|
|
|
21
23
|
import type { BrowserGuardOptions } from "./browser-guard.js";
|
|
22
24
|
import type { ProcedureRegistry } from "../procedures/registry.js";
|
|
23
25
|
import type { ProcedureServerOptions } from "./procedure-server.js";
|
|
26
|
+
import type { EventPublisherOptions } from "../events/publisher.js";
|
|
24
27
|
import { type Duration } from "../duration.js";
|
|
25
28
|
/** The procedures of a host that are tools: namespaces (first path segments), less some keys. */
|
|
26
29
|
export interface ToolSurface {
|
|
@@ -61,6 +64,12 @@ export interface HostPolicyOptions {
|
|
|
61
64
|
resources?: ((invocation: Invocation) => ResourcesOf) | undefined;
|
|
62
65
|
/** The filter of the output that leaves the host. */
|
|
63
66
|
admitItem?: AdmitItem | undefined;
|
|
67
|
+
/**
|
|
68
|
+
* The remote events of the host (`documentation/EVENTS.md`): the topic rule, with an optional
|
|
69
|
+
* bus, `allow` function and buffer. The default bus is the global bus, which is also the default
|
|
70
|
+
* `ctx.bus`. Without this option, the host does not serve `events.subscribe`.
|
|
71
|
+
*/
|
|
72
|
+
events?: EventPublisherOptions | undefined;
|
|
64
73
|
}
|
|
65
74
|
/** What a host lets its callers do. */
|
|
66
75
|
export interface HostPolicy {
|
|
@@ -74,6 +83,8 @@ export interface HostPolicy {
|
|
|
74
83
|
readonly clearanceOrder: ClearanceOrder | undefined;
|
|
75
84
|
readonly resources: ((invocation: Invocation) => ResourcesOf) | undefined;
|
|
76
85
|
readonly admitItem: AdmitItem | undefined;
|
|
86
|
+
/** The remote events: each server of the policy makes its own publisher from these options. */
|
|
87
|
+
readonly events: EventPublisherOptions | undefined;
|
|
77
88
|
}
|
|
78
89
|
/** This function builds the policy of a host from its options. */
|
|
79
90
|
export declare function hostPolicy(options?: HostPolicyOptions): HostPolicy;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"host-policy.d.ts","sourceRoot":"","sources":["../../src/server/host-policy.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"host-policy.d.ts","sourceRoot":"","sources":["../../src/server/host-policy.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,6 +14,8 @@
|
|
|
14
14
|
* - `token`, `browser`: the checks of the network transports (`client-server` applies them).
|
|
15
15
|
* - `capability`, `readOnly`, `clearanceOrder`, `resources`, `admitItem`: the capability of each
|
|
16
16
|
* call and what the host gives for it (CAPABILITIES-2026-10).
|
|
17
|
+
* - `events`: the remote events of the host (`documentation/EVENTS.md`). The server pins
|
|
18
|
+
* `events.subscribe` with this topic rule, and its procedures get the bus as `ctx.bus`.
|
|
17
19
|
*/
|
|
18
20
|
import { narrowCapability } from "../procedures/capability.js";
|
|
19
21
|
import { timeoutInterceptor } from "../procedures/interceptors.js";
|
|
@@ -86,6 +88,7 @@ export function hostPolicy(options = {}) {
|
|
|
86
88
|
clearanceOrder: options.clearanceOrder,
|
|
87
89
|
resources: options.resources,
|
|
88
90
|
admitItem: options.admitItem,
|
|
91
|
+
events: options.events,
|
|
89
92
|
};
|
|
90
93
|
}
|
|
91
94
|
/** The options of a `ProcedureServer` that serves a registry under a policy. */
|
|
@@ -102,6 +105,8 @@ export function procedureServerOptions(policy, registry) {
|
|
|
102
105
|
...(policy.clearanceOrder ? { clearanceOrder: policy.clearanceOrder } : {}),
|
|
103
106
|
...(policy.resources ? { resources: policy.resources } : {}),
|
|
104
107
|
...(policy.admitItem ? { admitItem: policy.admitItem } : {}),
|
|
108
|
+
// The remote events: the server makes its publisher and pins events.subscribe (EVENTS.md)
|
|
109
|
+
...(policy.events ? { events: policy.events } : {}),
|
|
105
110
|
};
|
|
106
111
|
}
|
|
107
112
|
//# sourceMappingURL=host-policy.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"host-policy.js","sourceRoot":"","sources":["../../src/server/host-policy.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"host-policy.js","sourceRoot":"","sources":["../../src/server/host-policy.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,6 +13,7 @@ import type { Capability, ClearanceOrder, ResourcesOf } from "../procedures/type
|
|
|
13
13
|
import { type IdempotencyOptions } from "../procedures/idempotency.js";
|
|
14
14
|
import { type Duration } from "../duration.js";
|
|
15
15
|
import type { CollectionStorage } from "../procedures/collection/storage.js";
|
|
16
|
+
import { EventPublisher, type EventPublisherOptions } from "../events/publisher.js";
|
|
16
17
|
/**
|
|
17
18
|
* Storage configuration for a collection.
|
|
18
19
|
*/
|
|
@@ -91,6 +92,13 @@ export interface ProcedureServerOptions extends ServerOptions {
|
|
|
91
92
|
* `request.principal`.
|
|
92
93
|
*/
|
|
93
94
|
authenticate?: ((request: ServerRequest<unknown>) => Principal | undefined | Promise<Principal | undefined>) | undefined;
|
|
95
|
+
/**
|
|
96
|
+
* The remote events of the server (`documentation/EVENTS.md`): a bus and its topic rule, or an
|
|
97
|
+
* `EventPublisher`. The server pins the procedure `events.subscribe`, outside its registry, so a
|
|
98
|
+
* peer can subscribe to the topics. The procedures of the server get this bus as `ctx.bus`.
|
|
99
|
+
* `stop()` ends each subscription first, with `UNAVAILABLE`.
|
|
100
|
+
*/
|
|
101
|
+
events?: EventPublisherOptions | EventPublisher | undefined;
|
|
94
102
|
}
|
|
95
103
|
/**
|
|
96
104
|
* The metadata key of a stream response whose procedure declares `stream: { unbounded: true }`.
|
|
@@ -117,7 +125,8 @@ export interface StopOptions {
|
|
|
117
125
|
}
|
|
118
126
|
/**
|
|
119
127
|
* The error response of a failed invocation. An invocation error keeps its code
|
|
120
|
-
* (VALIDATION_ERROR, NOT_EXPOSED, ABORTED and so on). An error of the handler
|
|
128
|
+
* (VALIDATION_ERROR, NOT_EXPOSED, ABORTED and so on). An error of the handler keeps its own code
|
|
129
|
+
* when it is a string, as for a stream (`WIRE-PROTOCOL.md`). Without a code, it is HANDLER_ERROR.
|
|
121
130
|
*/
|
|
122
131
|
export declare function errorResponse(id: string, error: unknown): ServerResponse<unknown>;
|
|
123
132
|
/**
|
|
@@ -180,6 +189,8 @@ export declare class ProcedureServer extends Server implements RepositoryProvide
|
|
|
180
189
|
private readonly authenticate;
|
|
181
190
|
/** The functions that `stop()` waits on: each one runs when no call is in flight */
|
|
182
191
|
private idleWaiters;
|
|
192
|
+
/** The publisher of the remote events, from the option `events`, or undefined. */
|
|
193
|
+
readonly publisher: EventPublisher | undefined;
|
|
183
194
|
constructor(options?: ProcedureServerOptions);
|
|
184
195
|
/**
|
|
185
196
|
* Get storage for a collection.
|
|
@@ -314,11 +325,23 @@ export declare class ProcedureServer extends Server implements RepositoryProvide
|
|
|
314
325
|
getRegistry(): ProcedureRegistry;
|
|
315
326
|
hasProcedure(path: ProcedurePath): boolean;
|
|
316
327
|
/**
|
|
317
|
-
*
|
|
328
|
+
* This function publishes an event on the bus of the server: the bus of the option `events`, or
|
|
329
|
+
* the global bus. Each subscription of the topic gets it (`documentation/EVENTS.md`).
|
|
330
|
+
*
|
|
331
|
+
* @param topic - The topic: a channel of the bus
|
|
332
|
+
* @param data - The data of the event. It crosses the wire as JSON.
|
|
333
|
+
*/
|
|
334
|
+
publish<T>(topic: string, data: T): void;
|
|
335
|
+
/**
|
|
336
|
+
* This method closes each storage one time, also a storage of two collections, and removes the
|
|
337
|
+
* storages from the server. A closed storage rejects each operation, so the server does not keep
|
|
338
|
+
* it. Before a new `start()`, give the storages again with `useStorage()`.
|
|
318
339
|
*/
|
|
319
340
|
closeStorages(): Promise<void>;
|
|
320
341
|
/**
|
|
321
|
-
*
|
|
342
|
+
* This method stops the server, then closes the storages and removes them (`closeStorages()`).
|
|
343
|
+
* The server can start again, with new storages from `useStorage()`. Before, a server that
|
|
344
|
+
* started again used the closed storages.
|
|
322
345
|
*/
|
|
323
346
|
stop(options?: StopOptions): Promise<void>;
|
|
324
347
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"procedure-server.d.ts","sourceRoot":"","sources":["../../src/server/procedure-server.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAElG,OAAO,KAAK,EACV,YAAY,EACZ,aAAa,EACb,kBAAkB,EAClB,eAAe,EAChB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,iBAAiB,EAAsB,MAAM,2BAA2B,CAAC;AAElF,OAAO,EAAoC,KAAK,SAAS,EAAE,KAAK,WAAW,EAAE,KAAK,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC9H,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAEtF,OAAO,EAAoD,KAAK,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AACzH,OAAO,EAAc,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;
|
|
1
|
+
{"version":3,"file":"procedure-server.d.ts","sourceRoot":"","sources":["../../src/server/procedure-server.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,6 +14,9 @@ import { TIMEOUT_METADATA_KEY, effectsOf, narrowCapability } from "../procedures
|
|
|
14
14
|
import { IdempotencyCache, idempotencyKeyOf, isRepeatable } from "../procedures/idempotency.js";
|
|
15
15
|
import { optionalMs } from "../duration.js";
|
|
16
16
|
import { TIMER_DEFAULTS } from "../timers.js";
|
|
17
|
+
import { errorCodeOf } from "../protocol.js";
|
|
18
|
+
import { EventPublisher } from "../events/publisher.js";
|
|
19
|
+
import { getGlobalEventBus } from "../events/bus.js";
|
|
17
20
|
/**
|
|
18
21
|
* The metadata key of a stream response whose procedure declares `stream: { unbounded: true }`.
|
|
19
22
|
* Its value is "unbounded".
|
|
@@ -77,7 +80,8 @@ function withRequestTimeout(capability, request, order) {
|
|
|
77
80
|
}
|
|
78
81
|
/**
|
|
79
82
|
* The error response of a failed invocation. An invocation error keeps its code
|
|
80
|
-
* (VALIDATION_ERROR, NOT_EXPOSED, ABORTED and so on). An error of the handler
|
|
83
|
+
* (VALIDATION_ERROR, NOT_EXPOSED, ABORTED and so on). An error of the handler keeps its own code
|
|
84
|
+
* when it is a string, as for a stream (`WIRE-PROTOCOL.md`). Without a code, it is HANDLER_ERROR.
|
|
81
85
|
*/
|
|
82
86
|
export function errorResponse(id, error) {
|
|
83
87
|
// An error that says it is retryable stays retryable: before, every error lost the flag
|
|
@@ -94,7 +98,7 @@ export function errorResponse(id, error) {
|
|
|
94
98
|
id,
|
|
95
99
|
status: {
|
|
96
100
|
type: "error",
|
|
97
|
-
code: error
|
|
101
|
+
code: errorCodeOf(error),
|
|
98
102
|
message: error instanceof Error ? error.message : String(error),
|
|
99
103
|
retryable: typeof retryable === "boolean" ? retryable : false,
|
|
100
104
|
},
|
|
@@ -164,6 +168,8 @@ export class ProcedureServer extends Server {
|
|
|
164
168
|
authenticate;
|
|
165
169
|
/** The functions that `stop()` waits on: each one runs when no call is in flight */
|
|
166
170
|
idleWaiters = [];
|
|
171
|
+
/** The publisher of the remote events, from the option `events`, or undefined. */
|
|
172
|
+
publisher;
|
|
167
173
|
constructor(options = {}) {
|
|
168
174
|
super(options);
|
|
169
175
|
this.procedureRegistry = options.registry ?? PROCEDURE_REGISTRY;
|
|
@@ -179,6 +185,10 @@ export class ProcedureServer extends Server {
|
|
|
179
185
|
this.idempotency = options.idempotency === false ? undefined : new IdempotencyCache(options.idempotency ?? {});
|
|
180
186
|
this.token = options.token;
|
|
181
187
|
this.authenticate = options.authenticate;
|
|
188
|
+
// The remote events: the server pins events.subscribe, as it pins host.health (EVENTS.md)
|
|
189
|
+
this.publisher = options.events instanceof EventPublisher ? options.events : options.events ? new EventPublisher(options.events) : undefined;
|
|
190
|
+
if (this.publisher)
|
|
191
|
+
this.registerProcedure(this.publisher.procedure);
|
|
182
192
|
// Configure collections
|
|
183
193
|
if (options.collections) {
|
|
184
194
|
for (const [name, storage] of Object.entries(options.collections)) {
|
|
@@ -484,6 +494,8 @@ export class ProcedureServer extends Server {
|
|
|
484
494
|
clearanceOrder,
|
|
485
495
|
resources,
|
|
486
496
|
admitItem,
|
|
497
|
+
// The bus of the remote events is the bus of the procedures (EVENTS.md)
|
|
498
|
+
...(this.publisher ? { bus: this.publisher.bus } : {}),
|
|
487
499
|
});
|
|
488
500
|
if (output.kind === "stream") {
|
|
489
501
|
// The faces that collect a stream read this mark (roadmap R15)
|
|
@@ -554,20 +566,40 @@ export class ProcedureServer extends Server {
|
|
|
554
566
|
return this.resolveProcedure(pathToMethod(path)) !== undefined;
|
|
555
567
|
}
|
|
556
568
|
/**
|
|
557
|
-
*
|
|
569
|
+
* This function publishes an event on the bus of the server: the bus of the option `events`, or
|
|
570
|
+
* the global bus. Each subscription of the topic gets it (`documentation/EVENTS.md`).
|
|
571
|
+
*
|
|
572
|
+
* @param topic - The topic: a channel of the bus
|
|
573
|
+
* @param data - The data of the event. It crosses the wire as JSON.
|
|
574
|
+
*/
|
|
575
|
+
publish(topic, data) {
|
|
576
|
+
(this.publisher?.bus ?? getGlobalEventBus()).emit(topic, data);
|
|
577
|
+
}
|
|
578
|
+
/**
|
|
579
|
+
* This method closes each storage one time, also a storage of two collections, and removes the
|
|
580
|
+
* storages from the server. A closed storage rejects each operation, so the server does not keep
|
|
581
|
+
* it. Before a new `start()`, give the storages again with `useStorage()`.
|
|
558
582
|
*/
|
|
559
583
|
async closeStorages() {
|
|
560
|
-
const
|
|
561
|
-
|
|
584
|
+
const storages = new Set(this.storages.values());
|
|
585
|
+
this.storages.clear();
|
|
586
|
+
const results = await Promise.allSettled(Array.from(storages, (storage) => storage.close()));
|
|
587
|
+
const failed = results.find((result) => result.status === "rejected");
|
|
588
|
+
if (failed)
|
|
589
|
+
throw failed.reason;
|
|
562
590
|
}
|
|
563
591
|
/**
|
|
564
|
-
*
|
|
592
|
+
* This method stops the server, then closes the storages and removes them (`closeStorages()`).
|
|
593
|
+
* The server can start again, with new storages from `useStorage()`. Before, a server that
|
|
594
|
+
* started again used the closed storages.
|
|
565
595
|
*/
|
|
566
596
|
async stop(options = {}) {
|
|
567
597
|
const graceMs = optionalMs(options.grace, "grace") ?? TIMER_DEFAULTS.server.stopGraceMs;
|
|
568
598
|
// A graceful stop: new calls get UNAVAILABLE, and the calls in flight have the grace time
|
|
569
599
|
// to end (roadmap R14). Before, the transports aborted every call at once.
|
|
570
600
|
this.draining = true;
|
|
601
|
+
// A subscription has no end: it ends now, with a retryable UNAVAILABLE (EVENTS.md)
|
|
602
|
+
this.publisher?.end();
|
|
571
603
|
if (graceMs > 0 && this.inFlight > 0) {
|
|
572
604
|
await new Promise((resolve) => {
|
|
573
605
|
const timer = setTimeout(resolve, graceMs);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"procedure-server.js","sourceRoot":"","sources":["../../src/server/procedure-server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"procedure-server.js","sourceRoot":"","sources":["../../src/server/procedure-server.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/client",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.5.0",
|
|
5
5
|
"description": "Procedures as data for TypeScript: define typed procedures once and call them in process, over HTTP, WebSocket, the CLI or MCP. Streaming, middleware, retries, caching and a JSON program format.",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"rpc",
|
|
@@ -43,6 +43,10 @@
|
|
|
43
43
|
"types": "./dist/browser.d.ts",
|
|
44
44
|
"import": "./dist/browser.js"
|
|
45
45
|
},
|
|
46
|
+
"./node": {
|
|
47
|
+
"types": "./dist/node.d.ts",
|
|
48
|
+
"import": "./dist/node.js"
|
|
49
|
+
},
|
|
46
50
|
"./register": {
|
|
47
51
|
"types": "./dist/register.d.ts",
|
|
48
52
|
"import": "./dist/register.js"
|
|
@@ -68,9 +72,6 @@
|
|
|
68
72
|
"import": "./dist/server/index.js"
|
|
69
73
|
}
|
|
70
74
|
},
|
|
71
|
-
"bin": {
|
|
72
|
-
"client-registry": "./dist/procedures/cli/index.js"
|
|
73
|
-
},
|
|
74
75
|
"files": [
|
|
75
76
|
"dist",
|
|
76
77
|
"src",
|
|
@@ -90,9 +91,9 @@
|
|
|
90
91
|
"provenance": true
|
|
91
92
|
},
|
|
92
93
|
"dependencies": {
|
|
93
|
-
"@mark1russell7/algebra": "^0.
|
|
94
|
+
"@mark1russell7/algebra": "^0.7.0",
|
|
94
95
|
"@mark1russell7/quantity": "^0.2.0",
|
|
95
|
-
"@mark1russell7/service": "^0.4.
|
|
96
|
+
"@mark1russell7/service": "^0.4.1",
|
|
96
97
|
"ws": "^8.18.3",
|
|
97
98
|
"zod": "^4.6.5"
|
|
98
99
|
},
|
|
@@ -13,6 +13,7 @@ import type {
|
|
|
13
13
|
|
|
14
14
|
import type { HttpTransportOptions } from "./types.js";
|
|
15
15
|
import { DELIVERY_METADATA_KEY, RETRY_AFTER_METADATA_KEY, isNotSentError } from "../../../client/middleware/items.js";
|
|
16
|
+
import { StreamSequence, itemMetadata } from "../../sequence.js";
|
|
16
17
|
|
|
17
18
|
/**
|
|
18
19
|
* The wait that an error response asks for, in milliseconds: `retryAfterMs` of the body of the
|
|
@@ -224,7 +225,8 @@ export class HttpTransport implements Transport {
|
|
|
224
225
|
/**
|
|
225
226
|
* The items of an NDJSON stream response: `{"type":"item"}` lines, then `{"type":"done"}`,
|
|
226
227
|
* or an `{"type":"error"}` line. A stream that ends without one of the last two is an error
|
|
227
|
-
* that a retry can repair (the connection broke).
|
|
228
|
+
* that a retry can repair (the connection broke). An `item` or a `done` line whose `seq` is not
|
|
229
|
+
* above the last one gives nothing. The item after a gap has `stream-gap` in its metadata.
|
|
228
230
|
*/
|
|
229
231
|
private async *readNdjson<TRes>(
|
|
230
232
|
id: string,
|
|
@@ -235,6 +237,7 @@ export class HttpTransport implements Transport {
|
|
|
235
237
|
): AsyncGenerator<ResponseItem<TRes>, void, undefined> {
|
|
236
238
|
const reader = body.getReader();
|
|
237
239
|
const decoder = new TextDecoder();
|
|
240
|
+
const order = new StreamSequence();
|
|
238
241
|
let buffer = "";
|
|
239
242
|
try {
|
|
240
243
|
for (;;) {
|
|
@@ -248,12 +251,16 @@ export class HttpTransport implements Transport {
|
|
|
248
251
|
if (!line) continue;
|
|
249
252
|
const frame = JSON.parse(line) as {
|
|
250
253
|
type: string;
|
|
254
|
+
seq?: unknown;
|
|
251
255
|
payload?: unknown;
|
|
252
256
|
error?: { code?: string; message?: string; retryable?: boolean };
|
|
253
257
|
};
|
|
254
258
|
onFirstItem();
|
|
259
|
+
// A duplicate or a late line: its item came before, or the delivery is at most once
|
|
260
|
+
const gap = frame.type === "item" || frame.type === "done" ? order.next(frame.seq, id) : 0;
|
|
261
|
+
if (gap < 0) continue;
|
|
255
262
|
if (frame.type === "item") {
|
|
256
|
-
yield { id, status: { type: "success", code: 200 }, payload: frame.payload as TRes, metadata };
|
|
263
|
+
yield { id, status: { type: "success", code: 200 }, payload: frame.payload as TRes, metadata: itemMetadata(metadata, gap) };
|
|
257
264
|
} else if (frame.type === "done") {
|
|
258
265
|
onEnd();
|
|
259
266
|
return;
|
|
@@ -17,7 +17,7 @@ import type { HttpServerTransportOptions } from "./types.js";
|
|
|
17
17
|
import { createPatternServerUrlStrategy } from "./strategies.js";
|
|
18
18
|
import { checkBrowserRequest, type BrowserGuardOptions } from "../../../server/browser-guard.js";
|
|
19
19
|
import { bearerOf, withoutSecretHeaders } from "../../../server/request-auth.js";
|
|
20
|
-
import { PROTOCOL_HEADER, PROTOCOL_VERSION, httpStatusOf, protocolVersionOf } from "../../../protocol.js";
|
|
20
|
+
import { PROTOCOL_HEADER, PROTOCOL_VERSION, errorCodeOf, httpStatusOf, protocolVersionOf } from "../../../protocol.js";
|
|
21
21
|
|
|
22
22
|
/** The media type of a stream response: one JSON value on each line. */
|
|
23
23
|
const NDJSON = "application/x-ndjson";
|
|
@@ -42,10 +42,9 @@ class BodyError extends Error {
|
|
|
42
42
|
|
|
43
43
|
/** The code and message of a thrown error, with its retryable flag (deep dive TRN-7). */
|
|
44
44
|
function errorOf(error: unknown): { code: string; message: string; retryable: boolean } {
|
|
45
|
-
const code = (error as { code?: unknown } | undefined)?.code;
|
|
46
45
|
const retryable = (error as { retryable?: unknown } | undefined)?.retryable;
|
|
47
46
|
return {
|
|
48
|
-
code:
|
|
47
|
+
code: errorCodeOf(error),
|
|
49
48
|
message: error instanceof Error ? error.message : String(error),
|
|
50
49
|
retryable: typeof retryable === "boolean" ? retryable : false,
|
|
51
50
|
};
|
|
@@ -349,7 +348,9 @@ export class HttpServerTransport implements ServerTransport {
|
|
|
349
348
|
* Send a stream response.
|
|
350
349
|
*
|
|
351
350
|
* A client that accepts `application/x-ndjson` gets one JSON line for each item
|
|
352
|
-
* (`{"type":"item","payload":...}`), then `{"type":"done"
|
|
351
|
+
* (`{"type":"item","seq":1,"payload":...}`), then `{"type":"done","seq":...}`, or
|
|
352
|
+
* `{"type":"error","error":...}`. The `seq` of the lines counts from 1, as in the `stream`
|
|
353
|
+
* frames of WebSocket.
|
|
353
354
|
* Another client (curl, a browser fetch without the header) gets the last item as plain JSON,
|
|
354
355
|
* the "sponge" mode, so a streaming procedure does not change its response format.
|
|
355
356
|
*/
|
|
@@ -415,17 +416,18 @@ export class HttpServerTransport implements ServerTransport {
|
|
|
415
416
|
res.end(JSON.stringify({ type: "error", error: { code: "ABORTED", message: "The server stopped the request", retryable: true } }) + "\n");
|
|
416
417
|
}
|
|
417
418
|
};
|
|
419
|
+
let seq = 0;
|
|
418
420
|
try {
|
|
419
421
|
for await (const item of stream) {
|
|
420
422
|
if (signal.aborted) break;
|
|
421
|
-
await write(res, JSON.stringify({ type: "item", payload: item }) + "\n", signal);
|
|
423
|
+
await write(res, JSON.stringify({ type: "item", seq: ++seq, payload: item }) + "\n", signal);
|
|
422
424
|
if (signal.aborted) break;
|
|
423
425
|
}
|
|
424
426
|
if (signal.aborted) {
|
|
425
427
|
endAborted();
|
|
426
428
|
return;
|
|
427
429
|
}
|
|
428
|
-
res.end(JSON.stringify({ type: "done" }) + "\n");
|
|
430
|
+
res.end(JSON.stringify({ type: "done", seq: ++seq }) + "\n");
|
|
429
431
|
} catch (error) {
|
|
430
432
|
if (signal.aborted) {
|
|
431
433
|
endAborted();
|
|
@@ -14,6 +14,8 @@ import { TIMEOUT_METADATA_KEY } from "../../../client/deadline.js";
|
|
|
14
14
|
import { narrowCapability } from "../../../procedures/capability.js";
|
|
15
15
|
import type { Capability, ClearanceOrder } from "../../../procedures/types.js";
|
|
16
16
|
import { methodToPath } from "../../../server/method.js";
|
|
17
|
+
import { errorCodeOf } from "../../../protocol.js";
|
|
18
|
+
import type { EventPublisher } from "../../../events/publisher.js";
|
|
17
19
|
|
|
18
20
|
/** The value of `untilAborted` when the signal aborts first. */
|
|
19
21
|
const ABORTED: unique symbol = Symbol("aborted");
|
|
@@ -88,6 +90,7 @@ export class LocalTransport implements Transport {
|
|
|
88
90
|
private readonly interceptors: readonly Interceptor[] | undefined;
|
|
89
91
|
private readonly capability: Capability | undefined;
|
|
90
92
|
private readonly clearanceOrder: ClearanceOrder | undefined;
|
|
93
|
+
private readonly events: EventPublisher | undefined;
|
|
91
94
|
|
|
92
95
|
constructor(options: LocalTransportOptions = {}) {
|
|
93
96
|
this.throwOnMissing = options.throwOnMissing !== false;
|
|
@@ -95,6 +98,7 @@ export class LocalTransport implements Transport {
|
|
|
95
98
|
this.interceptors = options.interceptors;
|
|
96
99
|
this.capability = options.capability;
|
|
97
100
|
this.clearanceOrder = options.clearanceOrder;
|
|
101
|
+
this.events = options.events;
|
|
98
102
|
|
|
99
103
|
// Register pre-configured handlers. A key without a version ("users.get") gets the
|
|
100
104
|
// empty version, as methodKey() makes it: before, such a key was never found.
|
|
@@ -133,10 +137,12 @@ export class LocalTransport implements Transport {
|
|
|
133
137
|
return this.handlers.has(methodKey(method)) || this.procedureFor(method) !== undefined;
|
|
134
138
|
}
|
|
135
139
|
|
|
136
|
-
/** The procedure of the registry at the path of a method. */
|
|
140
|
+
/** The procedure of the registry at the path of a method, or `events.subscribe` of the publisher. */
|
|
137
141
|
private procedureFor(method: Method): AnyProcedure | undefined {
|
|
142
|
+
const path = methodToPath(method);
|
|
143
|
+
if (this.events && path.join(".") === "events.subscribe") return this.events.procedure;
|
|
138
144
|
if (!this.registry) return undefined;
|
|
139
|
-
return this.registry.get(
|
|
145
|
+
return this.registry.get(path);
|
|
140
146
|
}
|
|
141
147
|
|
|
142
148
|
/**
|
|
@@ -187,6 +193,7 @@ export class LocalTransport implements Transport {
|
|
|
187
193
|
...(this.interceptors ? { interceptors: this.interceptors } : {}),
|
|
188
194
|
...(capability ? { capability } : {}),
|
|
189
195
|
...(this.clearanceOrder ? { clearanceOrder: this.clearanceOrder } : {}),
|
|
196
|
+
...(this.events ? { bus: this.events.bus } : {}),
|
|
190
197
|
}), message.signal);
|
|
191
198
|
if (output === ABORTED) {
|
|
192
199
|
// The caller stops waiting at once, as over HTTP and WebSocket (the conformance suite
|
|
@@ -223,8 +230,9 @@ export class LocalTransport implements Transport {
|
|
|
223
230
|
yield successItem<TRes>(message.id, item);
|
|
224
231
|
}
|
|
225
232
|
} catch (error) {
|
|
226
|
-
// The handler threw, or the invocation failed (its code: VALIDATION_ERROR, ABORTED and so
|
|
227
|
-
|
|
233
|
+
// The handler threw, or the invocation failed (its code: VALIDATION_ERROR, ABORTED and so
|
|
234
|
+
// on). A handler error keeps its own code, as on the other faces (WIRE-PROTOCOL.md).
|
|
235
|
+
const code = errorCodeOf(error);
|
|
228
236
|
const item = errorItem<TRes>(message.id, code, error instanceof Error ? error.message : "Unknown error");
|
|
229
237
|
// The reason of a FORBIDDEN error travels on each face (roadmap R25)
|
|
230
238
|
if (error instanceof InvocationError && error.reason) item.metadata = { reason: error.reason };
|