@procedures/client 0.8.0 → 0.8.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.
Files changed (188) hide show
  1. package/CHANGELOG.md +58 -0
  2. package/README.md +95 -8
  3. package/dist/.tsbuildinfo +1 -1
  4. package/dist/adapters/http/client/transport.d.ts +4 -0
  5. package/dist/adapters/http/client/transport.d.ts.map +1 -1
  6. package/dist/adapters/http/client/transport.js +11 -1
  7. package/dist/adapters/http/client/transport.js.map +1 -1
  8. package/dist/adapters/http/client/types.d.ts +19 -0
  9. package/dist/adapters/http/client/types.d.ts.map +1 -1
  10. package/dist/adapters/http/server/cors.d.ts +64 -0
  11. package/dist/adapters/http/server/cors.d.ts.map +1 -0
  12. package/dist/adapters/http/server/cors.js +113 -0
  13. package/dist/adapters/http/server/cors.js.map +1 -0
  14. package/dist/adapters/http/server/handler.d.ts +136 -0
  15. package/dist/adapters/http/server/handler.d.ts.map +1 -0
  16. package/dist/adapters/http/server/handler.js +495 -0
  17. package/dist/adapters/http/server/handler.js.map +1 -0
  18. package/dist/adapters/http/server/strategies.d.ts +14 -5
  19. package/dist/adapters/http/server/strategies.d.ts.map +1 -1
  20. package/dist/adapters/http/server/strategies.js.map +1 -1
  21. package/dist/adapters/http/server/transport.d.ts +30 -46
  22. package/dist/adapters/http/server/transport.d.ts.map +1 -1
  23. package/dist/adapters/http/server/transport.js +48 -432
  24. package/dist/adapters/http/server/transport.js.map +1 -1
  25. package/dist/adapters/http/server/types.d.ts +13 -0
  26. package/dist/adapters/http/server/types.d.ts.map +1 -1
  27. package/dist/adapters/websocket/server/transport.d.ts +46 -1
  28. package/dist/adapters/websocket/server/transport.d.ts.map +1 -1
  29. package/dist/adapters/websocket/server/transport.js +152 -15
  30. package/dist/adapters/websocket/server/transport.js.map +1 -1
  31. package/dist/adapters/websocket/server/types.d.ts +10 -3
  32. package/dist/adapters/websocket/server/types.d.ts.map +1 -1
  33. package/dist/adapters/websocket/server/upgrade-router.d.ts +28 -0
  34. package/dist/adapters/websocket/server/upgrade-router.d.ts.map +1 -0
  35. package/dist/adapters/websocket/server/upgrade-router.js +62 -0
  36. package/dist/adapters/websocket/server/upgrade-router.js.map +1 -0
  37. package/dist/adapters/websocket/server/upgrade.d.ts +68 -0
  38. package/dist/adapters/websocket/server/upgrade.d.ts.map +1 -0
  39. package/dist/adapters/websocket/server/upgrade.js +49 -0
  40. package/dist/adapters/websocket/server/upgrade.js.map +1 -0
  41. package/dist/adapters/websocket/shared/rpc.d.ts +2 -0
  42. package/dist/adapters/websocket/shared/rpc.d.ts.map +1 -1
  43. package/dist/adapters/websocket/shared/rpc.js +8 -2
  44. package/dist/adapters/websocket/shared/rpc.js.map +1 -1
  45. package/dist/browser.d.ts +12 -4
  46. package/dist/browser.d.ts.map +1 -1
  47. package/dist/browser.js +11 -2
  48. package/dist/browser.js.map +1 -1
  49. package/dist/client/client.d.ts +43 -0
  50. package/dist/client/client.d.ts.map +1 -1
  51. package/dist/client/client.js +69 -1
  52. package/dist/client/client.js.map +1 -1
  53. package/dist/events/publisher.d.ts +14 -0
  54. package/dist/events/publisher.d.ts.map +1 -1
  55. package/dist/events/publisher.js +42 -4
  56. package/dist/events/publisher.js.map +1 -1
  57. package/dist/events/rows.d.ts +31 -0
  58. package/dist/events/rows.d.ts.map +1 -0
  59. package/dist/events/rows.js +39 -0
  60. package/dist/events/rows.js.map +1 -0
  61. package/dist/index.d.ts +1 -1
  62. package/dist/index.d.ts.map +1 -1
  63. package/dist/index.js +1 -1
  64. package/dist/index.js.map +1 -1
  65. package/dist/node.d.ts +14 -0
  66. package/dist/node.d.ts.map +1 -1
  67. package/dist/node.js +9 -0
  68. package/dist/node.js.map +1 -1
  69. package/dist/procedures/capability.d.ts +6 -0
  70. package/dist/procedures/capability.d.ts.map +1 -1
  71. package/dist/procedures/capability.js +25 -0
  72. package/dist/procedures/capability.js.map +1 -1
  73. package/dist/procedures/collection/changes.d.ts +94 -0
  74. package/dist/procedures/collection/changes.d.ts.map +1 -0
  75. package/dist/procedures/collection/changes.js +182 -0
  76. package/dist/procedures/collection/changes.js.map +1 -0
  77. package/dist/procedures/collection/index.d.ts +8 -3
  78. package/dist/procedures/collection/index.d.ts.map +1 -1
  79. package/dist/procedures/collection/index.js +6 -1
  80. package/dist/procedures/collection/index.js.map +1 -1
  81. package/dist/procedures/collection/procedures.d.ts +39 -2
  82. package/dist/procedures/collection/procedures.d.ts.map +1 -1
  83. package/dist/procedures/collection/procedures.js +111 -8
  84. package/dist/procedures/collection/procedures.js.map +1 -1
  85. package/dist/procedures/collection/query.d.ts +246 -0
  86. package/dist/procedures/collection/query.d.ts.map +1 -0
  87. package/dist/procedures/collection/query.js +854 -0
  88. package/dist/procedures/collection/query.js.map +1 -0
  89. package/dist/procedures/collection/schemas.d.ts +50 -0
  90. package/dist/procedures/collection/schemas.d.ts.map +1 -1
  91. package/dist/procedures/collection/schemas.js +144 -6
  92. package/dist/procedures/collection/schemas.js.map +1 -1
  93. package/dist/procedures/collection/storage.d.ts +58 -6
  94. package/dist/procedures/collection/storage.d.ts.map +1 -1
  95. package/dist/procedures/collection/storage.js +23 -0
  96. package/dist/procedures/collection/storage.js.map +1 -1
  97. package/dist/procedures/elicit.d.ts +190 -0
  98. package/dist/procedures/elicit.d.ts.map +1 -0
  99. package/dist/procedures/elicit.js +127 -0
  100. package/dist/procedures/elicit.js.map +1 -0
  101. package/dist/procedures/hints.d.ts +43 -0
  102. package/dist/procedures/hints.d.ts.map +1 -0
  103. package/dist/procedures/hints.js +74 -0
  104. package/dist/procedures/hints.js.map +1 -0
  105. package/dist/procedures/index.d.ts +9 -2
  106. package/dist/procedures/index.d.ts.map +1 -1
  107. package/dist/procedures/index.js +5 -1
  108. package/dist/procedures/index.js.map +1 -1
  109. package/dist/procedures/invoke.d.ts +20 -0
  110. package/dist/procedures/invoke.d.ts.map +1 -1
  111. package/dist/procedures/invoke.js +13 -0
  112. package/dist/procedures/invoke.js.map +1 -1
  113. package/dist/procedures/progress.d.ts +24 -0
  114. package/dist/procedures/progress.d.ts.map +1 -0
  115. package/dist/procedures/progress.js +11 -0
  116. package/dist/procedures/progress.js.map +1 -0
  117. package/dist/procedures/registry.d.ts.map +1 -1
  118. package/dist/procedures/registry.js +5 -0
  119. package/dist/procedures/registry.js.map +1 -1
  120. package/dist/procedures/types.d.ts +42 -0
  121. package/dist/procedures/types.d.ts.map +1 -1
  122. package/dist/procedures/types.js.map +1 -1
  123. package/dist/procedures/untrusted.d.ts +28 -0
  124. package/dist/procedures/untrusted.d.ts.map +1 -0
  125. package/dist/procedures/untrusted.js +32 -0
  126. package/dist/procedures/untrusted.js.map +1 -0
  127. package/dist/server/browser-guard.d.ts +12 -2
  128. package/dist/server/browser-guard.d.ts.map +1 -1
  129. package/dist/server/browser-guard.js +43 -6
  130. package/dist/server/browser-guard.js.map +1 -1
  131. package/dist/server/host-policy.d.ts +10 -1
  132. package/dist/server/host-policy.d.ts.map +1 -1
  133. package/dist/server/host-policy.js +5 -0
  134. package/dist/server/host-policy.js.map +1 -1
  135. package/dist/server/index.d.ts +1 -1
  136. package/dist/server/index.d.ts.map +1 -1
  137. package/dist/server/index.js.map +1 -1
  138. package/dist/server/procedure-server.d.ts +38 -6
  139. package/dist/server/procedure-server.d.ts.map +1 -1
  140. package/dist/server/procedure-server.js +65 -13
  141. package/dist/server/procedure-server.js.map +1 -1
  142. package/dist/server/request-auth.d.ts +51 -4
  143. package/dist/server/request-auth.d.ts.map +1 -1
  144. package/dist/server/request-auth.js +116 -5
  145. package/dist/server/request-auth.js.map +1 -1
  146. package/dist/server/types.d.ts +73 -5
  147. package/dist/server/types.d.ts.map +1 -1
  148. package/dist/server/types.js.map +1 -1
  149. package/package.json +5 -1
  150. package/src/adapters/http/client/transport.ts +11 -1
  151. package/src/adapters/http/client/types.ts +22 -0
  152. package/src/adapters/http/server/cors.ts +144 -0
  153. package/src/adapters/http/server/handler.ts +624 -0
  154. package/src/adapters/http/server/strategies.ts +16 -6
  155. package/src/adapters/http/server/transport.ts +55 -478
  156. package/src/adapters/http/server/types.ts +15 -0
  157. package/src/adapters/websocket/server/transport.ts +166 -16
  158. package/src/adapters/websocket/server/types.ts +11 -3
  159. package/src/adapters/websocket/server/upgrade-router.ts +77 -0
  160. package/src/adapters/websocket/server/upgrade.ts +88 -0
  161. package/src/adapters/websocket/shared/rpc.ts +9 -2
  162. package/src/browser.ts +79 -2
  163. package/src/client/client.ts +83 -1
  164. package/src/events/publisher.ts +48 -4
  165. package/src/events/rows.ts +48 -0
  166. package/src/index.ts +1 -1
  167. package/src/node.ts +21 -0
  168. package/src/procedures/capability.ts +21 -0
  169. package/src/procedures/collection/changes.ts +245 -0
  170. package/src/procedures/collection/index.ts +53 -1
  171. package/src/procedures/collection/procedures.ts +163 -7
  172. package/src/procedures/collection/query.ts +1009 -0
  173. package/src/procedures/collection/schemas.ts +196 -7
  174. package/src/procedures/collection/storage.ts +78 -6
  175. package/src/procedures/elicit.ts +320 -0
  176. package/src/procedures/hints.ts +91 -0
  177. package/src/procedures/index.ts +78 -2
  178. package/src/procedures/invoke.ts +29 -0
  179. package/src/procedures/progress.ts +25 -0
  180. package/src/procedures/registry.ts +4 -0
  181. package/src/procedures/types.ts +49 -0
  182. package/src/procedures/untrusted.ts +50 -0
  183. package/src/server/browser-guard.ts +48 -6
  184. package/src/server/host-policy.ts +13 -1
  185. package/src/server/index.ts +3 -0
  186. package/src/server/procedure-server.ts +82 -14
  187. package/src/server/request-auth.ts +128 -6
  188. package/src/server/types.ts +82 -5
@@ -33,8 +33,10 @@ import { SCHEMA_REGISTRY } from "./validation/middleware.js";
33
33
  import { buildResponse, toMiddlewareContext } from "./call-types.js";
34
34
  import { RouteResolver } from "./route-resolver.js";
35
35
  import { BatchExecutor } from "./batch-executor.js";
36
+ import { remoteEvents, subscribeRemote, } from "../events/remote.js";
36
37
  import { narrowCapability } from "../procedures/capability.js";
37
- import { TIMEOUT_METADATA_KEY, absorbTimeout, writeRemainingTime } from "./deadline.js";
38
+ import { DEADLINE_METADATA_KEY, TIMEOUT_METADATA_KEY, absorbTimeout, writeRemainingTime } from "./deadline.js";
39
+ import { ms } from "../duration.js";
38
40
  import { PROCEDURE_REGISTRY } from "../procedures/registry.js";
39
41
  import { validateSchema } from "../procedures/schema.js";
40
42
  import { InvocationError, invokeProcedure, outputItems, outputValue, } from "../procedures/invoke.js";
@@ -101,6 +103,11 @@ function callerOf(options) {
101
103
  caller.signal = options.signal;
102
104
  return caller;
103
105
  }
106
+ /**
107
+ * The timeouts of a subscription: none. The timeout middleware takes 0 as "no timeout", so the
108
+ * timeouts of the client do not end a subscription, which has no end (roadmap CLI-15).
109
+ */
110
+ const NO_SUBSCRIPTION_TIMEOUT = Object.freeze({ overall: ms(0), perAttempt: ms(0) });
104
111
  /**
105
112
  * Generate a unique message ID.
106
113
  */
@@ -152,6 +159,8 @@ export class Client {
152
159
  throwOnError;
153
160
  /** The bus of the local procedures. Undefined: the global bus. */
154
161
  bus;
162
+ /** The transport of the subscriptions through the middleware, made at the first subscription */
163
+ subscriptionTransport;
155
164
  /** The interceptors of the local invocations (roadmap 1.2) */
156
165
  interceptors = [];
157
166
  /** The capability of the local invocations (CAPABILITIES-2026-10). Undefined: no limits. */
@@ -625,6 +634,65 @@ export class Client {
625
634
  yield item.payload;
626
635
  }
627
636
  }
637
+ /**
638
+ * This method subscribes to topics of the event bus of the server (`documentation/EVENTS.md`).
639
+ * The call of `events.subscribe` goes through the middleware and the context of this client, as
640
+ * `stream()` does. Thus a token of the auth middleware goes with it. The subscriber resubscribes
641
+ * after a failure that a retry can repair, and the subscribers of the same topics share one call.
642
+ *
643
+ * A subscription has no deadline: the timeouts of the client (its timeout middleware, the
644
+ * `timeout` of its context and a `procedure-timeout` of its metadata) do not apply to it. For a
645
+ * deadline, give it in the metadata of the options, for example
646
+ * `{ metadata: { timeout: { overall: minutes(5) } } }`.
647
+ *
648
+ * @param topics - One topic, or a list of 1 to 64 topics
649
+ * @param handler - The handler of each event. A promise that it gives holds the next event.
650
+ * @param options - `onSubscribed`, `onError`, a signal, the metadata of the call, the resubscribe rules
651
+ * @returns The unsubscribe function, with the `ready` promise of the first confirmation
652
+ *
653
+ * @example
654
+ * ```typescript
655
+ * const unsubscribe = client.subscribe("collections.users", (event) => console.log(event));
656
+ * await unsubscribe.ready;
657
+ * unsubscribe();
658
+ * ```
659
+ */
660
+ subscribe(topics, handler, options = {}) {
661
+ return subscribeRemote(this.eventTransport(), topics, handler, options);
662
+ }
663
+ /**
664
+ * This method gives the events of topics of the event bus of the server as an async iterator,
665
+ * through the middleware of this client. A `break` or the signal ends the subscription. As for
666
+ * `subscribe()`, the timeouts of the client do not apply: the metadata of the options can give one.
667
+ *
668
+ * @param topics - One topic, or a list of 1 to 64 topics
669
+ * @param options - A signal, `onSubscribed`, the metadata of the call, the resubscribe rules
670
+ */
671
+ events(topics, options = {}) {
672
+ return remoteEvents(this.eventTransport(), topics, options);
673
+ }
674
+ /**
675
+ * The transport of the subscriptions of this client: each call goes through the middleware, with
676
+ * the context of the client in its metadata. The subscriptions of one client share it, so they
677
+ * share their calls. The timeouts and the deadline of the client stay out: only the metadata of
678
+ * the subscription can give them.
679
+ */
680
+ eventTransport() {
681
+ if (!this.subscriptionTransport) {
682
+ const send = (message) => {
683
+ const metadata = { ...this.defaultMetadata, ...this.getEffectiveContext() };
684
+ delete metadata["timeout"];
685
+ delete metadata[TIMEOUT_METADATA_KEY];
686
+ delete metadata[DEADLINE_METADATA_KEY];
687
+ metadata["timeout"] = NO_SUBSCRIPTION_TIMEOUT;
688
+ Object.assign(metadata, message.metadata);
689
+ absorbTimeout(metadata);
690
+ return this.composeMiddleware()({ message: { ...message, metadata } });
691
+ };
692
+ this.subscriptionTransport = { send };
693
+ }
694
+ return this.subscriptionTransport;
695
+ }
628
696
  /**
629
697
  * Compose middleware chain using universal middleware composition.
630
698
  *
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client/client.ts"],"names":[],"mappings":"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"}
@@ -8,11 +8,17 @@
8
8
  *
9
9
  * - The topic rule (`topics`) is the expose rule of the topics. A topic outside it gives
10
10
  * `TOPIC_NOT_FOUND`.
11
+ * - `reads` gives the resources that a subscriber of a topic reads. The capability of the call
12
+ * must permit them, as for a procedure that reads them (roadmap CLI-15). By default, a topic
13
+ * `collections.<name>` reads `collection:<name>`.
11
14
  * - `allow` examines each topic with the capability of the call. A refusal gives `FORBIDDEN` with
12
15
  * the reason `topic-not-allowed`.
13
16
  * - The procedure declares that it reads the resource `events`, so the capability of the host
14
17
  * applies to it as to each procedure.
15
18
  *
19
+ * - A value with rows (`withRows()`) reaches each subscriber through the output filter of its host
20
+ * (`ctx.admit`): each row passes the filter, and the subscriber gets only the admitted rows.
21
+ *
16
22
  * The delivery is at most once. The queue of a subscription holds at most `buffer` events. When
17
23
  * it is full, the publisher drops the oldest event, and the next event tells the number of lost
18
24
  * events (`dropped`). The bus never waits for a subscriber.
@@ -53,6 +59,13 @@ export interface EventPublisherOptions {
53
59
  * @default 1024
54
60
  */
55
61
  buffer?: number | undefined;
62
+ /**
63
+ * The resources that a subscriber of a topic reads (roadmap CLI-15). The publisher refuses a
64
+ * topic whose reads the capability of the call does not permit, as for a procedure that reads
65
+ * them: `FORBIDDEN` with the reason `effects-exceeded`.
66
+ * @default `collectionTopicReads`: a topic `collections.<name>` reads `collection:<name>`
67
+ */
68
+ reads?: ((topic: string) => readonly string[]) | undefined;
56
69
  }
57
70
  /** This function gives the test of a topic rule. */
58
71
  export declare function topicMatcher(rule: TopicRule): (topic: string) => boolean;
@@ -74,6 +87,7 @@ export declare class EventPublisher {
74
87
  readonly procedure: AnyProcedure;
75
88
  private readonly known;
76
89
  private readonly allow;
90
+ private readonly reads;
77
91
  private readonly buffer;
78
92
  private readonly open;
79
93
  constructor(options: EventPublisherOptions);
@@ -1 +1 @@
1
- {"version":3,"file":"publisher.d.ts","sourceRoot":"","sources":["../../src/events/publisher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAKH,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAoB,MAAM,wBAAwB,CAAC;AACzF,OAAO,KAAK,EAAE,QAAQ,EAAe,MAAM,YAAY,CAAC;AAIxD,2DAA2D;AAC3D,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAE1C,gDAAgD;AAChD,eAAO,MAAM,gBAAgB,MAAM,CAAC;AAEpC;;;GAGG;AACH,MAAM,MAAM,SAAS,GAAG,SAAS,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC;AAEzE,2DAA2D;AAC3D,MAAM,WAAW,SAAS;IACxB,yFAAyF;IACzF,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,wFAAwF;IACxF,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACtD;AAED,0CAA0C;AAC1C,MAAM,WAAW,qBAAqB;IACpC,mGAAmG;IACnG,GAAG,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC3B,iGAAiG;IACjG,MAAM,EAAE,SAAS,CAAC;IAClB;;;;OAIG;IACH,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,KAAK,OAAO,CAAC,GAAG,SAAS,CAAC;IAClE;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7B;AAED,oDAAoD;AACpD,wBAAgB,YAAY,CAAC,IAAI,EAAE,SAAS,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAWxE;AA4KD;;;;;;;;;;GAUG;AACH,qBAAa,cAAc;IACzB,2CAA2C;IAC3C,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IACvB,gGAAgG;IAChG,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAC;IACjC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA6B;IACnD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAiC;IACvD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAgC;IAErD,YAAY,OAAO,EAAE,qBAAqB,EAgBzC;IAED,2FAA2F;IAC3F,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,CAEvC;IAED,wCAAwC;IACxC,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED;;;OAGG;IACH,GAAG,IAAI,IAAI,CAEV;IAED;;;OAGG;IACH,OAAO,CAAC,SAAS;CAiBlB"}
1
+ {"version":3,"file":"publisher.d.ts","sourceRoot":"","sources":["../../src/events/publisher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAOH,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAoB,MAAM,wBAAwB,CAAC;AACzF,OAAO,KAAK,EAAE,QAAQ,EAAe,MAAM,YAAY,CAAC;AAKxD,2DAA2D;AAC3D,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAE1C,gDAAgD;AAChD,eAAO,MAAM,gBAAgB,MAAM,CAAC;AAEpC;;;GAGG;AACH,MAAM,MAAM,SAAS,GAAG,SAAS,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC;AAEzE,2DAA2D;AAC3D,MAAM,WAAW,SAAS;IACxB,yFAAyF;IACzF,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,wFAAwF;IACxF,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACtD;AAED,0CAA0C;AAC1C,MAAM,WAAW,qBAAqB;IACpC,mGAAmG;IACnG,GAAG,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC3B,iGAAiG;IACjG,MAAM,EAAE,SAAS,CAAC;IAClB;;;;OAIG;IACH,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,KAAK,OAAO,CAAC,GAAG,SAAS,CAAC;IAClE;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B;;;;;OAKG;IACH,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,SAAS,MAAM,EAAE,CAAC,GAAG,SAAS,CAAC;CAC5D;AAOD,oDAAoD;AACpD,wBAAgB,YAAY,CAAC,IAAI,EAAE,SAAS,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAWxE;AA0LD;;;;;;;;;;GAUG;AACH,qBAAa,cAAc;IACzB,2CAA2C;IAC3C,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IACvB,gGAAgG;IAChG,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAC;IACjC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA6B;IACnD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAiC;IACvD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAuC;IAC7D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAgC;IAErD,YAAY,OAAO,EAAE,qBAAqB,EAiBzC;IAED,2FAA2F;IAC3F,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,CAEvC;IAED,wCAAwC;IACxC,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED;;;OAGG;IACH,GAAG,IAAI,IAAI,CAEV;IAED;;;OAGG;IACH,OAAO,CAAC,SAAS;CAwBlB"}
@@ -8,11 +8,17 @@
8
8
  *
9
9
  * - The topic rule (`topics`) is the expose rule of the topics. A topic outside it gives
10
10
  * `TOPIC_NOT_FOUND`.
11
+ * - `reads` gives the resources that a subscriber of a topic reads. The capability of the call
12
+ * must permit them, as for a procedure that reads them (roadmap CLI-15). By default, a topic
13
+ * `collections.<name>` reads `collection:<name>`.
11
14
  * - `allow` examines each topic with the capability of the call. A refusal gives `FORBIDDEN` with
12
15
  * the reason `topic-not-allowed`.
13
16
  * - The procedure declares that it reads the resource `events`, so the capability of the host
14
17
  * applies to it as to each procedure.
15
18
  *
19
+ * - A value with rows (`withRows()`) reaches each subscriber through the output filter of its host
20
+ * (`ctx.admit`): each row passes the filter, and the subscriber gets only the admitted rows.
21
+ *
16
22
  * The delivery is at most once. The queue of a subscription holds at most `buffer` events. When
17
23
  * it is full, the publisher drops the oldest event, and the next event tells the number of lost
18
24
  * events (`dropped`). The bus never waits for a subscriber.
@@ -20,12 +26,19 @@
20
26
  import { z } from "zod";
21
27
  import { createProcedure } from "../procedures/define.js";
22
28
  import { InvocationError } from "../procedures/invoke.js";
29
+ import { capabilityRefusal } from "../procedures/capability.js";
30
+ import { collectionTopicReads } from "../procedures/collection/changes.js";
23
31
  import { getGlobalEventBus } from "./bus.js";
24
32
  import { EVENTS_SUBSCRIBE_PATH } from "./remote.js";
33
+ import { admittedValue, rowsOf } from "./rows.js";
25
34
  /** The number of topics that one subscription can name. */
26
35
  export const MAX_SUBSCRIPTION_TOPICS = 64;
27
36
  /** The number of characters of a topic name. */
28
37
  export const MAX_TOPIC_LENGTH = 256;
38
+ /** A procedure that reads resources, for the admission of a topic under a capability. */
39
+ function topicReader(reads) {
40
+ return { path: [...EVENTS_SUBSCRIBE_PATH], metadata: { effects: { reads: [...reads], writes: [] } } };
41
+ }
29
42
  /** This function gives the test of a topic rule. */
30
43
  export function topicMatcher(rule) {
31
44
  if (typeof rule === "function")
@@ -87,6 +100,7 @@ class TopicSubscription {
87
100
  buffer;
88
101
  signal;
89
102
  onClose;
103
+ admit;
90
104
  confirmation;
91
105
  queue = [];
92
106
  seq = 0;
@@ -95,10 +109,13 @@ class TopicSubscription {
95
109
  closed = false;
96
110
  failure;
97
111
  unsubscribes;
98
- constructor(bus, topics, buffer, signal, onClose) {
112
+ constructor(bus, topics, buffer, signal, onClose,
113
+ /** The output filter of the host for this subscriber: each row of a value passes it */
114
+ admit) {
99
115
  this.buffer = buffer;
100
116
  this.signal = signal;
101
117
  this.onClose = onClose;
118
+ this.admit = admit;
102
119
  this.confirmation = { type: "subscribed", topics };
103
120
  // Before, clear() removed the listeners, and the subscriber saw no end (EVENTS.md)
104
121
  this.unsubscribes = topics.map((topic) => bus.on(topic, (data) => this.push(topic, data), { onClear: () => this.fail(clearedError(topic), { keepQueue: true }) }));
@@ -119,7 +136,7 @@ class TopicSubscription {
119
136
  const waiter = this.waiter;
120
137
  if (waiter && this.queue.length === 0) {
121
138
  this.waiter = undefined;
122
- waiter.resolve({ value: this.withDropped(event), done: false });
139
+ waiter.resolve(this.deliver(event));
123
140
  return;
124
141
  }
125
142
  if (this.queue.length >= this.buffer) {
@@ -129,6 +146,16 @@ class TopicSubscription {
129
146
  }
130
147
  this.queue.push(event);
131
148
  }
149
+ /**
150
+ * The item of an event for the subscriber. The rows of its data pass the output filter of the
151
+ * host for this subscriber, and the subscriber gets only the admitted rows.
152
+ */
153
+ deliver(event) {
154
+ const item = this.withDropped(event);
155
+ if (!this.admit || !rowsOf(item.data))
156
+ return Promise.resolve({ value: item, done: false });
157
+ return admittedValue(item.data, this.admit).then((data) => ({ value: { ...item, data }, done: false }));
158
+ }
132
159
  /** The event with the number of events that the publisher dropped before it. */
133
160
  withDropped(event) {
134
161
  if (this.dropped === 0)
@@ -145,7 +172,7 @@ class TopicSubscription {
145
172
  }
146
173
  const event = this.queue.shift();
147
174
  if (event)
148
- return Promise.resolve({ value: this.withDropped(event), done: false });
175
+ return this.deliver(event);
149
176
  if (this.failure !== undefined) {
150
177
  const failure = this.failure;
151
178
  this.failure = undefined;
@@ -221,12 +248,14 @@ export class EventPublisher {
221
248
  procedure;
222
249
  known;
223
250
  allow;
251
+ reads;
224
252
  buffer;
225
253
  open = new Set();
226
254
  constructor(options) {
227
255
  this.bus = options.bus ?? getGlobalEventBus();
228
256
  this.known = topicMatcher(options.topics);
229
257
  this.allow = options.allow;
258
+ this.reads = options.reads ?? collectionTopicReads;
230
259
  this.buffer = Math.max(1, Math.floor(options.buffer ?? 1024));
231
260
  this.procedure = createProcedure()
232
261
  .path([...EVENTS_SUBSCRIBE_PATH])
@@ -266,6 +295,15 @@ export class EventPublisher {
266
295
  if (!this.known(topic))
267
296
  throw new TopicNotFoundError(`The host has no topic "${topic}"`);
268
297
  }
298
+ // A subscriber of a topic reads its resources: the capability of the call must permit them
299
+ for (const topic of unique) {
300
+ const reads = this.reads(topic);
301
+ if (reads.length === 0)
302
+ continue;
303
+ const refusal = capabilityRefusal(topicReader(reads), ctx.capability);
304
+ if (refusal)
305
+ throw new InvocationError("FORBIDDEN", `The topic "${topic}": ${refusal.message}`, ctx.path, refusal.reason);
306
+ }
269
307
  if (this.allow) {
270
308
  const call = { capability: ctx.capability, metadata: ctx.metadata };
271
309
  for (const topic of unique) {
@@ -274,7 +312,7 @@ export class EventPublisher {
274
312
  }
275
313
  }
276
314
  }
277
- const subscription = new TopicSubscription(this.bus, unique, this.buffer, ctx.signal, (closed) => this.open.delete(closed));
315
+ const subscription = new TopicSubscription(this.bus, unique, this.buffer, ctx.signal, (closed) => this.open.delete(closed), ctx.admit);
278
316
  this.open.add(subscription);
279
317
  return subscription.closeIfAborted();
280
318
  }
@@ -1 +1 @@
1
- {"version":3,"file":"publisher.js","sourceRoot":"","sources":["../../src/events/publisher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"publisher.js","sourceRoot":"","sources":["../../src/events/publisher.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * The rows of a published value (roadmap CLI-15).
3
+ *
4
+ * A value on the bus can hold rows of data: the values of a collection change event, for example.
5
+ * The publisher of the remote events gives each row to the output filter of the host (`admitItem`)
6
+ * for each subscriber, and each subscriber gets only the rows that its filter admits. Thus a row
7
+ * reaches a subscriber only through the same filter as a read.
8
+ *
9
+ * The rows are on a symbol key, so they stay in this process: JSON does not take them.
10
+ */
11
+ /** The rows of a published value, and the function that makes the value of the admitted rows. */
12
+ export interface PublishedRows {
13
+ /** The rows that the output filter examines, one at a time. */
14
+ readonly rows: readonly unknown[];
15
+ /** This function gives the value for a subscriber: `admitted[i]` tells if row `i` stays. */
16
+ keep(admitted: readonly boolean[]): unknown;
17
+ }
18
+ /**
19
+ * This function gives the value with its rows, for the filter of each subscriber. The rows are not
20
+ * enumerable: a copy or a comparison of the value does not see them.
21
+ */
22
+ export declare function withRows<T extends object>(value: T, rows: PublishedRows): T;
23
+ /** The rows of a published value, or undefined for a value without rows. */
24
+ export declare function rowsOf(value: unknown): PublishedRows | undefined;
25
+ /**
26
+ * The value of a published value for one subscriber: each row passes the filter, and the value
27
+ * keeps the admitted rows. An error of the filter refuses the row. Without rows or a filter, the
28
+ * value stays as it is.
29
+ */
30
+ export declare function admittedValue(value: unknown, admit: ((item: unknown) => Promise<boolean>) | undefined): Promise<unknown>;
31
+ //# sourceMappingURL=rows.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rows.d.ts","sourceRoot":"","sources":["../../src/events/rows.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,iGAAiG;AACjG,MAAM,WAAW,aAAa;IAC5B,+DAA+D;IAC/D,QAAQ,CAAC,IAAI,EAAE,SAAS,OAAO,EAAE,CAAC;IAClC,4FAA4F;IAC5F,IAAI,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,GAAG,OAAO,CAAC;CAC7C;AAKD;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,GAAG,CAAC,CAE3E;AAED,4EAA4E;AAC5E,wBAAgB,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,aAAa,GAAG,SAAS,CAIhE;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,CAK9H"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * The rows of a published value (roadmap CLI-15).
3
+ *
4
+ * A value on the bus can hold rows of data: the values of a collection change event, for example.
5
+ * The publisher of the remote events gives each row to the output filter of the host (`admitItem`)
6
+ * for each subscriber, and each subscriber gets only the rows that its filter admits. Thus a row
7
+ * reaches a subscriber only through the same filter as a read.
8
+ *
9
+ * The rows are on a symbol key, so they stay in this process: JSON does not take them.
10
+ */
11
+ /** The key of the rows of a published value. */
12
+ const ROWS = Symbol.for("procedures.publishedRows");
13
+ /**
14
+ * This function gives the value with its rows, for the filter of each subscriber. The rows are not
15
+ * enumerable: a copy or a comparison of the value does not see them.
16
+ */
17
+ export function withRows(value, rows) {
18
+ return Object.defineProperty(value, ROWS, { value: rows, enumerable: false });
19
+ }
20
+ /** The rows of a published value, or undefined for a value without rows. */
21
+ export function rowsOf(value) {
22
+ if (typeof value !== "object" || value === null)
23
+ return undefined;
24
+ const rows = value[ROWS];
25
+ return typeof rows === "object" && rows !== null ? rows : undefined;
26
+ }
27
+ /**
28
+ * The value of a published value for one subscriber: each row passes the filter, and the value
29
+ * keeps the admitted rows. An error of the filter refuses the row. Without rows or a filter, the
30
+ * value stays as it is.
31
+ */
32
+ export async function admittedValue(value, admit) {
33
+ const rows = rowsOf(value);
34
+ if (!rows || !admit)
35
+ return value;
36
+ const admitted = await Promise.all(rows.rows.map((row) => admit(row).catch(() => false)));
37
+ return rows.keep(admitted);
38
+ }
39
+ //# sourceMappingURL=rows.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rows.js","sourceRoot":"","sources":["../../src/events/rows.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAUH,gDAAgD;AAChD,MAAM,IAAI,GAAkB,MAAM,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;AAEnE;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAmB,KAAQ,EAAE,IAAmB;IACtE,OAAO,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;AAChF,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,MAAM,CAAC,KAAc;IACnC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IAClE,MAAM,IAAI,GAAI,KAA8B,CAAC,IAAI,CAAC,CAAC;IACnD,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,CAAC,CAAC,CAAE,IAAsB,CAAC,CAAC,CAAC,SAAS,CAAC;AACzF,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,KAAc,EAAE,KAAwD;IAC1G,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3B,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IAClC,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC1F,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC7B,CAAC"}
package/dist/index.d.ts CHANGED
@@ -15,7 +15,7 @@ export * from "./browser.js";
15
15
  export { HttpServerTransport, defaultServerUrlStrategy, rpcServerUrlStrategy, } from "./server/index.js";
16
16
  export type { HttpServerTransportOptions, HttpUrlStrategy, } from "./server/index.js";
17
17
  export { WebSocketServerTransport } from "./server/index.js";
18
- export { checkBrowserRequest, isLoopbackHost, isLoopbackAddress, hostNameOf } from "./server/browser-guard.js";
18
+ export { checkBrowserRequest, hasAmbientCredentials, isLoopbackHost, isLoopbackAddress, hostNameOf } from "./server/browser-guard.js";
19
19
  export type { BrowserGuardOptions, GuardedRequest, GuardResult } from "./server/browser-guard.js";
20
20
  export type { WebSocketServerTransportOptions, WebSocketAuthHandler, WebSocketConnectionHandler, WebSocketMessage, } from "./server/index.js";
21
21
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,cAAc,cAAc,CAAC;AAK7B,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,0BAA0B,EAC1B,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC/G,YAAY,EAAE,mBAAmB,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAClG,YAAY,EACV,+BAA+B,EAC/B,oBAAoB,EACpB,0BAA0B,EAC1B,gBAAgB,GACjB,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,cAAc,cAAc,CAAC;AAK7B,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,0BAA0B,EAC1B,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,cAAc,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACtI,YAAY,EAAE,mBAAmB,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAClG,YAAY,EACV,+BAA+B,EAC/B,oBAAoB,EACpB,0BAA0B,EAC1B,gBAAgB,GACjB,MAAM,mBAAmB,CAAC"}
package/dist/index.js CHANGED
@@ -17,5 +17,5 @@ export * from "./browser.js";
17
17
  // ============================================================================
18
18
  export { HttpServerTransport, defaultServerUrlStrategy, rpcServerUrlStrategy, } from "./server/index.js";
19
19
  export { WebSocketServerTransport } from "./server/index.js";
20
- export { checkBrowserRequest, isLoopbackHost, isLoopbackAddress, hostNameOf } from "./server/browser-guard.js";
20
+ export { checkBrowserRequest, hasAmbientCredentials, isLoopbackHost, isLoopbackAddress, hostNameOf } from "./server/browser-guard.js";
21
21
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,cAAc,cAAc,CAAC;AAE7B,+EAA+E;AAC/E,gCAAgC;AAChC,+EAA+E;AAC/E,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAK3B,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,cAAc,cAAc,CAAC;AAE7B,+EAA+E;AAC/E,gCAAgC;AAChC,+EAA+E;AAC/E,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAK3B,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,cAAc,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC"}
package/dist/node.d.ts CHANGED
@@ -9,9 +9,23 @@
9
9
  * This entry also exports `writeNdjsonStream`: the writer of an NDJSON stream response of wire
10
10
  * protocol v1, for a `ServerResponse` of `node:http`. `HttpServerTransport` uses it, so a server
11
11
  * without Express writes the same bytes.
12
+ *
13
+ * The procedure faces of Node, without a framework (CLI-3): `procedureHandler(server, options)`
14
+ * gives a request handler `(req, res) => boolean`, and `upgradeHandler(server, options)` gives an
15
+ * upgrade handler `(req, socket, head) => boolean`. Each one takes the requests of its path and
16
+ * gives `false` for the others, so the routes of the application share the listener.
12
17
  */
13
18
  export { WebSocketTransport } from "./adapters/websocket/client/node.js";
14
19
  export type { WebSocketTransportOptions, WebSocketClass } from "./adapters/websocket/client/types.js";
15
20
  export { writeNdjsonStream } from "./adapters/http/server/ndjson.js";
16
21
  export type { WriteNdjsonStreamOptions, NdjsonError } from "./adapters/http/server/ndjson.js";
22
+ export { procedureHandler } from "./adapters/http/server/handler.js";
23
+ export type { ProcedureHandlerOptions, NodeProcedureHandler, NodeUrlStrategy, UrlRequest } from "./adapters/http/server/handler.js";
24
+ export type { CorsOptions } from "./adapters/http/server/cors.js";
25
+ export type { RoutedRequest } from "./adapters/http/server/strategies.js";
26
+ export { defaultServerUrlStrategy, rpcServerUrlStrategy } from "./adapters/http/server/strategies.js";
27
+ export { upgradeHandler } from "./adapters/websocket/server/upgrade.js";
28
+ export type { UpgradeHandlerOptions, NodeUpgradeHandler } from "./adapters/websocket/server/upgrade.js";
29
+ export { WebSocketServerTransport } from "./adapters/websocket/server/transport.js";
30
+ export type { WebSocketServerTransportOptions, WebSocketAuthHandler, WebSocketConnectionHandler, WebSocketMessage, TrackedConnection, ConnectionEventHandler, } from "./adapters/websocket/server/types.js";
17
31
  //# sourceMappingURL=node.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,YAAY,EAAE,yBAAyB,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AACtG,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,YAAY,EAAE,wBAAwB,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC"}
1
+ {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,YAAY,EAAE,yBAAyB,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AACtG,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,YAAY,EAAE,wBAAwB,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC9F,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,YAAY,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AACpI,YAAY,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAClE,YAAY,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AACtG,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AACxE,YAAY,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AACxG,OAAO,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAC;AACpF,YAAY,EACV,+BAA+B,EAC/B,oBAAoB,EACpB,0BAA0B,EAC1B,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,sCAAsC,CAAC"}
package/dist/node.js CHANGED
@@ -9,7 +9,16 @@
9
9
  * This entry also exports `writeNdjsonStream`: the writer of an NDJSON stream response of wire
10
10
  * protocol v1, for a `ServerResponse` of `node:http`. `HttpServerTransport` uses it, so a server
11
11
  * without Express writes the same bytes.
12
+ *
13
+ * The procedure faces of Node, without a framework (CLI-3): `procedureHandler(server, options)`
14
+ * gives a request handler `(req, res) => boolean`, and `upgradeHandler(server, options)` gives an
15
+ * upgrade handler `(req, socket, head) => boolean`. Each one takes the requests of its path and
16
+ * gives `false` for the others, so the routes of the application share the listener.
12
17
  */
13
18
  export { WebSocketTransport } from "./adapters/websocket/client/node.js";
14
19
  export { writeNdjsonStream } from "./adapters/http/server/ndjson.js";
20
+ export { procedureHandler } from "./adapters/http/server/handler.js";
21
+ export { defaultServerUrlStrategy, rpcServerUrlStrategy } from "./adapters/http/server/strategies.js";
22
+ export { upgradeHandler } from "./adapters/websocket/server/upgrade.js";
23
+ export { WebSocketServerTransport } from "./adapters/websocket/server/transport.js";
15
24
  //# sourceMappingURL=node.js.map
package/dist/node.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"node.js","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAEzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC"}
1
+ {"version":3,"file":"node.js","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAEzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAErE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAIrE,OAAO,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AACtG,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAExE,OAAO,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAC"}
@@ -54,6 +54,12 @@ export declare function toolHints(procedure: AnyProcedure): ToolHints;
54
54
  * the intersection. The deadline is the earlier one. Two different clearances need an order.
55
55
  */
56
56
  export declare function narrowCapability<C>(current: Capability<C> | undefined, request: CapabilityRequest<C> | undefined, order?: ClearanceOrder<C>, now?: number): Capability<C>;
57
+ /**
58
+ * This function joins two requests for a narrower capability into one request that asks for
59
+ * both: the meet of the clearances, the intersection of the effects and the shorter time. Two
60
+ * different clearances need an order.
61
+ */
62
+ export declare function joinNarrowing<C>(first: CapabilityRequest<C>, second: CapabilityRequest<C>, order?: ClearanceOrder<C>): CapabilityRequest<C>;
57
63
  /** The reason of a refusal. */
58
64
  export type CapabilityRefusalReason = "effects-undeclared" | "effects-exceeded" | "clearance" | "deadline";
59
65
  /** A refused invocation: the reason and a message for the caller. */