@spine-event-engine/auth 2.0.0-snapshot.24 → 2.0.0-snapshot.26

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.
@@ -13,8 +13,9 @@
13
13
  */
14
14
  import { clone, create, equals, fromBinary, toBinary } from "@bufbuild/protobuf";
15
15
  import { Code, ConnectError, createClient, } from "@connectrpc/connect";
16
- import { CommandService, QueryService, SubscriptionSchema, SubscriptionService, SubscriptionUpdateSchema, TopicSchema, } from "@spine-event-engine/proto/client";
16
+ import { CommandService, QueryService, AppQuerySchema, SubscriptionSchema, SubscriptionService, SubscriptionUpdateSchema, TopicSchema, } from "@spine-event-engine/proto/client";
17
17
  import { AuthenticationService } from "@spine-event-engine/proto/auth";
18
+ import { ReaderForwarding, } from "@spine-event-engine/core/spi/reader-forwarding";
18
19
  const relayDefaults = {
19
20
  maxMessages: 64,
20
21
  maxBytes: 1_048_576,
@@ -31,6 +32,7 @@ export class SubscriptionUpdateRelay {
31
32
  #closed = false;
32
33
  /**
33
34
  * Creates a bounded FIFO relay.
35
+ *
34
36
  * @param limits The optional message and byte bounds.
35
37
  */
36
38
  constructor(limits = {}) {
@@ -39,6 +41,7 @@ export class SubscriptionUpdateRelay {
39
41
  /**
40
42
  * Copies and validates an update before FIFO admission. Count precedes bytes;
41
43
  * either bound rejects with `ResourceExhausted`.
44
+ *
42
45
  * @param update The update bytes to admit.
43
46
  * @returns Completes after the update is admitted or rejected.
44
47
  */
@@ -86,6 +89,7 @@ export class SubscriptionUpdateRelay {
86
89
  }
87
90
  /**
88
91
  * Throws queued and future consumers, purging bytes.
92
+ *
89
93
  * @param reason The terminal failure reason.
90
94
  */
91
95
  fail(reason) {
@@ -93,6 +97,7 @@ export class SubscriptionUpdateRelay {
93
97
  }
94
98
  /**
95
99
  * Returns the public iterator; `return()` cancels it and purges queued bytes, while `throw()` fails it.
100
+ *
96
101
  * @returns The single public update iterator.
97
102
  */
98
103
  [Symbol.asyncIterator]() {
@@ -108,7 +113,11 @@ export class SubscriptionUpdateRelay {
108
113
  },
109
114
  };
110
115
  }
111
- async #next() {
116
+ /**
117
+ * Dequeues the next native update or waits for stream progress.
118
+ *
119
+ * @returns The next iterator result.
120
+ */ async #next() {
112
121
  const bytes = this.#queue.shift();
113
122
  if (bytes !== undefined) {
114
123
  this.#bytes -= bytes.byteLength;
@@ -129,12 +138,22 @@ export class SubscriptionUpdateRelay {
129
138
  }
130
139
  return new Promise((resolve, reject) => this.#waiters.push({ resolve, reject }));
131
140
  }
132
- #failOverflow(dimension, limit, observed) {
141
+ /**
142
+ * Fails a native update stream after its queue limit is exceeded.
143
+ *
144
+ * @param dimension Subscription limit dimension being checked.
145
+ * @param limit Configured operation bound.
146
+ * @param observed Observed subscription or lifecycle state.
147
+ */ #failOverflow(dimension, limit, observed) {
133
148
  const error = new ConnectError(`subscription relay ${dimension} limit ${String(limit)} exceeded by ${String(observed)}`, Code.ResourceExhausted);
134
149
  this.#finish(error);
135
150
  throw error;
136
151
  }
137
- #finish(reason) {
152
+ /**
153
+ * Completes a native update stream and releases queued listeners.
154
+ *
155
+ * @param reason Failure reason returned to the caller.
156
+ */ #finish(reason) {
138
157
  if (this.#closed) {
139
158
  if (this.#terminal !== undefined || reason === undefined)
140
159
  return;
@@ -181,89 +200,210 @@ const NativeRelayValues = Object.freeze({
181
200
  /**
182
201
  * Native Connect adapter. Post/Read use their matching Command/Query descriptors;
183
202
  * Subscribe/Activate/Cancel/Dispose use the shared Subscription descriptors.
184
- * Every call receives only an admitted AbortSignal, never browser credentials or facts.
203
+ * Native requests carry the admitted cancellation signal and, when an issuer is
204
+ * configured, operation-bound internal headers with detached verified reader
205
+ * facts. Browser credentials and raw transport facts are not forwarded.
185
206
  */
186
207
  export class NativeSubscriptionCreator {
187
208
  #transport;
209
+ #issuer;
210
+ #maxBytes;
188
211
  /**
189
212
  * Creates a native adapter over one Connect transport.
213
+ *
190
214
  * @param transport The native Connect transport.
215
+ * @param forwarding Configured peer proof issuer and existing request-size bound.
191
216
  */
192
- constructor(transport) {
217
+ constructor(transport, forwarding) {
193
218
  this.#transport = transport;
219
+ this.#issuer = forwarding?.issuer;
220
+ this.#maxBytes = forwarding?.maxBytes ?? 4 * 1024 * 1024;
194
221
  }
195
222
  /**
196
223
  * Sends an admitted Post or Read envelope through its matching native descriptor.
224
+ * Removes the backend transport's media type from errors before a gateway serializes them.
225
+ *
197
226
  * @param request The admitted unary request envelope.
198
227
  * @returns The encoded native response.
199
228
  */
200
229
  async forward(request) {
230
+ try {
231
+ const headers = request.reader === undefined ? undefined : await this.readerHeaders(request);
232
+ return await this.#forwardResponse(request, headers);
233
+ }
234
+ catch (error) {
235
+ throw NativeGatewayValues.publicError(error);
236
+ }
237
+ }
238
+ /**
239
+ * Invokes the selected native unary descriptor using admitted headers and cancellation.
240
+ *
241
+ * @param request The canonical operation and wire bytes.
242
+ * @param headers Forwarded verified-reader proof, when configured.
243
+ * @returns Serialized native response bytes.
244
+ */
245
+ async #forwardResponse(request, headers) {
246
+ const options = {
247
+ ...(request.signal === undefined ? {} : { signal: request.signal }),
248
+ ...(headers === undefined ? {} : { headers }),
249
+ };
201
250
  if (request.service === "spine.client.CommandService" && request.method === "Post")
202
- return toBinary(CommandService.method.post.output, await createClient(CommandService, this.#transport).post(fromBinary(CommandService.method.post.input, request.value), ...(request.signal === undefined ? [] : [{ signal: request.signal }])));
251
+ return toBinary(CommandService.method.post.output, await createClient(CommandService, this.#transport).post(fromBinary(CommandService.method.post.input, request.value), options));
203
252
  if (request.service === "spine.client.QueryService" && request.method === "Read")
204
- return toBinary(QueryService.method.read.output, await createClient(QueryService, this.#transport).read(fromBinary(QueryService.method.read.input, request.value), ...(request.signal === undefined ? [] : [{ signal: request.signal }])));
253
+ return toBinary(QueryService.method.read.output, await createClient(QueryService, this.#transport).read(fromBinary(QueryService.method.read.input, request.value), options));
254
+ if (request.service === "spine.client.QueryService" && request.method === "Execute")
255
+ return toBinary(QueryService.method.execute.output, await createClient(QueryService, this.#transport).execute(fromBinary(QueryService.method.execute.input, request.value), options));
205
256
  throw new ConnectError("unsupported native unary operation", Code.Unimplemented);
206
257
  }
258
+ /**
259
+ * Builds peer-authenticated metadata for an admitted unary request.
260
+ *
261
+ * @param request Admitted operation and trusted reader facts.
262
+ * @returns Headers for the configured native forwarding peer.
263
+ */
264
+ async readerHeaders(request) {
265
+ if (request.reader === undefined)
266
+ return undefined;
267
+ if (this.#issuer === undefined) {
268
+ if (request.reader.principal !== undefined || request.reader.authorityFacts !== undefined)
269
+ throw new Error("Authenticated forwarding requires a configured proof issuer.");
270
+ return undefined;
271
+ }
272
+ return ReaderForwarding.seal(request.service, request.method, request.value, request.reader, this.#issuer, this.#maxBytes);
273
+ }
207
274
  /**
208
275
  * Creates a native subscription with the supplied admitted cancellation signal.
276
+ *
209
277
  * @param request The admitted canonical subscription definition.
210
278
  * @param signal The admitted cancellation signal.
211
279
  * @returns The private backend subscription envelope.
212
280
  */
213
281
  async subscribe(request, signal) {
214
- const result = await createClient(SubscriptionService, this.#transport).subscribe(fromBinary(SubscriptionSchema, request.bytes).topic ?? create(TopicSchema), { signal });
215
- return { kind: "backend-subscription-envelope", bytes: toBinary(SubscriptionSchema, result) };
282
+ try {
283
+ const topic = fromBinary(SubscriptionSchema, request.bytes).topic ?? create(TopicSchema);
284
+ const headers = await this.readerHeaders({
285
+ service: "spine.client.SubscriptionService",
286
+ method: "Subscribe",
287
+ value: toBinary(TopicSchema, topic),
288
+ reader: request.reader,
289
+ });
290
+ const result = await createClient(SubscriptionService, this.#transport).subscribe(topic, {
291
+ signal,
292
+ ...(headers === undefined ? {} : { headers }),
293
+ });
294
+ return {
295
+ kind: "backend-subscription-envelope",
296
+ bytes: toBinary(SubscriptionSchema, result),
297
+ ...(request.reader === undefined ? {} : { reader: request.reader }),
298
+ };
299
+ }
300
+ catch (error) {
301
+ throw NativeGatewayValues.publicError(error);
302
+ }
216
303
  }
217
304
  /**
218
305
  * Streams native Activate updates through the supplied asynchronous public-update sink.
306
+ *
219
307
  * @param request The private native subscription envelope and update sink.
220
308
  * @param signal The admitted cancellation signal.
221
309
  * @returns Completes after native activation ends.
222
310
  */
223
311
  async activate(request, signal) {
224
312
  const subscription = fromBinary(SubscriptionSchema, request.wire.bytes);
225
- for await (const update of createClient(SubscriptionService, this.#transport).activate(subscription, { signal })) {
226
- const topic = subscription.topic;
227
- const updateTopic = update.subscription?.topic;
228
- if (update.subscription?.id?.value !== subscription.id?.value ||
229
- topic === undefined ||
230
- updateTopic === undefined ||
231
- !equals(TopicSchema, updateTopic, topic))
232
- throw new Error("Backend child update does not match its subscription.");
233
- await request.updates({
234
- kind: "subscription-update",
235
- bytes: toBinary(SubscriptionUpdateSchema, update),
313
+ try {
314
+ const headers = await this.readerHeaders({
315
+ service: "spine.client.SubscriptionService",
316
+ method: "Activate",
317
+ value: toBinary(SubscriptionSchema, subscription),
318
+ reader: request.wire.reader,
236
319
  });
320
+ for await (const update of createClient(SubscriptionService, this.#transport).activate(subscription, { signal, ...(headers === undefined ? {} : { headers }) })) {
321
+ this.checkUpdate(subscription, update);
322
+ await request.updates({
323
+ kind: "subscription-update",
324
+ bytes: toBinary(SubscriptionUpdateSchema, update),
325
+ });
326
+ }
237
327
  }
328
+ catch (error) {
329
+ throw NativeGatewayValues.publicError(error);
330
+ }
331
+ }
332
+ /**
333
+ * Rejects a child update from a different subscription or Topic.
334
+ *
335
+ * @param subscription The subscription definition being processed.
336
+ * @param update Native subscription update.
337
+ */
338
+ checkUpdate(subscription, update) {
339
+ const topic = subscription.topic;
340
+ const updateTopic = update.subscription?.topic;
341
+ if (update.subscription?.id?.value !== subscription.id?.value ||
342
+ topic === undefined ||
343
+ updateTopic === undefined ||
344
+ !equals(TopicSchema, updateTopic, topic))
345
+ throw new Error("Backend child update does not match its subscription.");
238
346
  }
239
347
  /**
240
348
  * Cancels the native subscription represented by the canonical definition.
349
+ *
241
350
  * @param request The canonical subscription definition.
242
351
  * @param signal The admitted cancellation signal.
243
352
  * @returns Completes after native cancellation ends.
244
353
  */
245
354
  async cancel(request, signal) {
246
- await createClient(SubscriptionService, this.#transport).cancel(fromBinary(SubscriptionSchema, request.wire.bytes), { signal });
355
+ try {
356
+ const subscription = fromBinary(SubscriptionSchema, request.wire.bytes);
357
+ const headers = await this.readerHeaders({
358
+ service: "spine.client.SubscriptionService",
359
+ method: "Cancel",
360
+ value: toBinary(SubscriptionSchema, subscription),
361
+ reader: request.wire.reader,
362
+ });
363
+ await createClient(SubscriptionService, this.#transport).cancel(subscription, {
364
+ signal,
365
+ ...(headers === undefined ? {} : { headers }),
366
+ });
367
+ }
368
+ catch (error) {
369
+ throw NativeGatewayValues.publicError(error);
370
+ }
247
371
  }
248
372
  /**
249
373
  * Performs mandatory native cancellation/disposal compensation for a private envelope.
374
+ *
250
375
  * @param envelope The private backend subscription envelope.
251
376
  * @param signal The admitted cancellation signal.
252
377
  * @returns Completes after native disposal ends.
253
378
  */
254
379
  async dispose(envelope, signal) {
255
- await createClient(SubscriptionService, this.#transport).cancel(fromBinary(SubscriptionSchema, envelope.bytes), { signal });
380
+ try {
381
+ const subscription = fromBinary(SubscriptionSchema, envelope.bytes);
382
+ const headers = await this.readerHeaders({
383
+ service: "spine.client.SubscriptionService",
384
+ method: "Cancel",
385
+ value: toBinary(SubscriptionSchema, subscription),
386
+ reader: envelope.reader,
387
+ });
388
+ await createClient(SubscriptionService, this.#transport).cancel(subscription, {
389
+ signal,
390
+ ...(headers === undefined ? {} : { headers }),
391
+ });
392
+ }
393
+ catch (error) {
394
+ throw NativeGatewayValues.publicError(error);
395
+ }
256
396
  }
257
397
  }
258
398
  /**
259
399
  * Creates native handlers without exposing private envelopes.
260
- *
261
400
  * Unauthenticated requests map to `Unauthenticated`; forbidden or denied requests to
262
401
  * `PermissionDenied`; request/capacity limits to `ResourceExhausted`; busy bindings to `Aborted`;
263
402
  * and unknown operations to `Unimplemented`. Malformed, stale-context, backend-envelope, and other
264
403
  * validation rejections map to `InvalidArgument`. Terminal context/iterator paths abort native
265
404
  * work. Natural completion drains FIFO updates, whereas failure or iterator cancellation purges
266
405
  * them.
406
+ *
267
407
  * @param options The unary, subscription, context, and relay dependencies.
268
408
  * @returns The native Connect service implementations.
269
409
  */
@@ -277,8 +417,23 @@ export function createNativeGatewayServices(options) {
277
417
  },
278
418
  query: {
279
419
  read: async (request, context) => NativeGatewayValues.queryResponse(options, request, context),
420
+ execute: async (request, context) => NativeGatewayValues.appQueryResponse(options, request, context),
280
421
  },
281
- subscription: {
422
+ subscription: NativeGatewayValues.subscriptionService(options),
423
+ };
424
+ }
425
+ /**
426
+ * Converts native Connect gateway inputs, responses, and errors.
427
+ */
428
+ const NativeGatewayValues = Object.freeze({
429
+ /**
430
+ * Binds native subscription handlers to the existing gateway policy.
431
+ *
432
+ * @param options Subscription gateway and request facts.
433
+ * @returns Connect implementation for subscription lifecycle methods.
434
+ */
435
+ subscriptionService(options) {
436
+ return {
282
437
  subscribe: async (request, context) => {
283
438
  const result = await options.subscriptions.handle(NativeGatewayValues.subscriptionRequest("Subscribe", toBinary(TopicSchema, request), context, options.requests));
284
439
  if (result.kind !== "subscribed")
@@ -292,13 +447,25 @@ export function createNativeGatewayServices(options) {
292
447
  throw NativeGatewayValues.gatewayResultError(result);
293
448
  return create(SubscriptionService.method.cancel.output);
294
449
  },
295
- },
296
- };
297
- }
298
- /**
299
- * Converts native Connect gateway inputs, responses, and errors.
300
- */
301
- const NativeGatewayValues = Object.freeze({
450
+ };
451
+ },
452
+ /**
453
+ * Removes backend transport headers before another Connect server serializes the error.
454
+ *
455
+ * @param error The native RPC failure.
456
+ * @returns The original failure with application metadata and details retained.
457
+ */
458
+ publicError(error) {
459
+ if (error instanceof ConnectError)
460
+ for (const header of [
461
+ "content-type",
462
+ "grpc-status",
463
+ "grpc-message",
464
+ "grpc-status-details-bin",
465
+ ])
466
+ error.metadata.delete(header);
467
+ return error;
468
+ },
302
469
  /**
303
470
  * Resolves authenticated context for a public request.
304
471
  *
@@ -364,6 +531,27 @@ const NativeGatewayValues = Object.freeze({
364
531
  throw NativeGatewayValues.unaryError(result);
365
532
  return fromBinary(QueryService.method.read.output, result.value);
366
533
  },
534
+ /**
535
+ * Maps a forwarded application request to its public Execute response.
536
+ *
537
+ * @param options Gateway collaborators for this operation.
538
+ * @param request Complete App Query envelope.
539
+ * @param context Authenticated native request context.
540
+ * @returns The app-node's packed paired response.
541
+ */
542
+ async appQueryResponse(options, request, context) {
543
+ const result = await options.unary.handle({
544
+ service: "spine.client.QueryService",
545
+ method: "Execute",
546
+ value: toBinary(AppQuerySchema, request),
547
+ credential: options.requests.credential(context),
548
+ transport: options.requests.transport(context),
549
+ signal: context.signal,
550
+ });
551
+ if (result.kind === "rejected")
552
+ throw NativeGatewayValues.unaryError(result);
553
+ return fromBinary(QueryService.method.execute.output, result.value);
554
+ },
367
555
  /**
368
556
  * Activates the authenticated subscription stream.
369
557
  *
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/native/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/native/index.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,13 @@
1
1
  import type { IncomingRequest, IncomingRequestInput } from "../index.js";
2
+ /**
3
+ * Converts an accepted wire envelope into authorization request facts.
4
+ */
2
5
  interface IncomingRequestDecoder {
6
+ /**
7
+ * Decodes one accepted wire request.
8
+ * @param input Wire envelope and transport context.
9
+ * @returns Decoded request facts, if valid.
10
+ */
3
11
  decode(input: IncomingRequestInput): IncomingRequest | undefined;
4
12
  }
5
13
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/request/index.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAEzE,UAAU,sBAAsB;IAC9B,MAAM,CAAC,KAAK,EAAE,oBAAoB,GAAG,eAAe,GAAG,SAAS,CAAC;CAClE;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,sBAAsB,CA4D5D,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/request/index.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAEzE;;GAEG;AACH,UAAU,sBAAsB;IAC9B;;;;OAIG;IACH,MAAM,CAAC,KAAK,EAAE,oBAAoB,GAAG,eAAe,GAAG,SAAS,CAAC;CAClE;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,sBAAsB,CAsB5D,CAAC"}
@@ -13,8 +13,8 @@
13
13
  */
14
14
  import { create, fromBinary } from "@bufbuild/protobuf";
15
15
  import { ActorContextSchema, CommandSchema } from "@spine-event-engine/proto";
16
- import { QuerySchema, SubscriptionSchema, TargetSchema, TopicSchema, } from "@spine-event-engine/proto/client";
17
- import { AnyMessages } from "@spine-event-engine/core";
16
+ import { QuerySchema, AppQuerySchema, SubscriptionSchema, TargetSchema, TopicSchema, } from "@spine-event-engine/proto/client";
17
+ import { AnyPacker } from "@spine-event-engine/core";
18
18
  /**
19
19
  * Decodes the public request envelopes accepted by authentication gateways.
20
20
  */
@@ -28,49 +28,12 @@ export const IncomingRequests = Object.freeze({
28
28
  decode(input) {
29
29
  try {
30
30
  switch (input.kind) {
31
- case "command": {
32
- const command = fromBinary(CommandSchema, input.value);
33
- return {
34
- kind: input.kind,
35
- command,
36
- message: command.message === undefined || input.registry === undefined
37
- ? undefined
38
- : AnyMessages.unpackUsing(input.registry, command.message),
39
- messageType: command.message?.typeUrl ?? "",
40
- requestedContext: command.context?.actorContext ?? create(ActorContextSchema),
41
- transport: input.transport,
42
- };
43
- }
44
- case "query": {
45
- const query = fromBinary(QuerySchema, input.value);
46
- return {
47
- kind: input.kind,
48
- query,
49
- target: query.target ?? create(TargetSchema),
50
- requestedContext: query.context ?? create(ActorContextSchema),
51
- transport: input.transport,
52
- };
53
- }
54
- case "subscribe": {
55
- const topic = fromBinary(TopicSchema, input.value);
56
- return {
57
- kind: input.kind,
58
- topic,
59
- target: topic.target ?? create(TargetSchema),
60
- requestedContext: topic.context ?? create(ActorContextSchema),
61
- transport: input.transport,
62
- };
63
- }
31
+ case "command": return IncomingRequestValues.command(input);
32
+ case "query": return IncomingRequestValues.query(input);
33
+ case "app-query": return IncomingRequestValues.appQuery(input);
34
+ case "subscribe": return IncomingRequestValues.subscribe(input);
64
35
  case "activate":
65
- case "cancel": {
66
- const subscription = fromBinary(SubscriptionSchema, input.value);
67
- return {
68
- kind: input.kind,
69
- subscription,
70
- requestedContext: subscription.topic?.context ?? create(ActorContextSchema),
71
- transport: input.transport,
72
- };
73
- }
36
+ case "cancel": return IncomingRequestValues.subscription(input);
74
37
  }
75
38
  }
76
39
  catch {
@@ -78,4 +41,90 @@ export const IncomingRequests = Object.freeze({
78
41
  }
79
42
  },
80
43
  });
44
+ /**
45
+ * Decodes each supported request envelope after the caller selects its kind.
46
+ */
47
+ const IncomingRequestValues = Object.freeze({
48
+ /**
49
+ * Decodes a Command request.
50
+ *
51
+ * @param input Command wire request.
52
+ * @returns Decoded command facts.
53
+ */
54
+ command(input) {
55
+ const command = fromBinary(CommandSchema, input.value);
56
+ return {
57
+ kind: "command",
58
+ command,
59
+ message: command.message === undefined || input.registry === undefined
60
+ ? undefined
61
+ : AnyPacker.tryUnpackUsing(input.registry, command.message),
62
+ messageType: command.message?.typeUrl ?? "",
63
+ requestedContext: command.context?.actorContext ?? create(ActorContextSchema),
64
+ transport: input.transport,
65
+ };
66
+ },
67
+ /**
68
+ * Decodes a Query request.
69
+ *
70
+ * @param input Query wire request.
71
+ * @returns Decoded query facts.
72
+ */
73
+ query(input) {
74
+ const query = fromBinary(QuerySchema, input.value);
75
+ return {
76
+ kind: "query",
77
+ query,
78
+ target: query.target ?? create(TargetSchema),
79
+ requestedContext: query.context ?? create(ActorContextSchema),
80
+ transport: input.transport,
81
+ };
82
+ },
83
+ /**
84
+ * Decodes an App Query without interpreting its domain payload at the gateway.
85
+ *
86
+ * @param input Serialized application query and safe transport facts.
87
+ * @returns Actor context and the original domain request envelope.
88
+ */
89
+ appQuery(input) {
90
+ const query = fromBinary(AppQuerySchema, input.value);
91
+ return {
92
+ kind: "app-query",
93
+ query,
94
+ requestedContext: query.context ?? create(ActorContextSchema),
95
+ transport: input.transport,
96
+ };
97
+ },
98
+ /**
99
+ * Decodes a subscription topic request.
100
+ *
101
+ * @param input Subscription topic wire request.
102
+ * @returns Decoded topic facts.
103
+ */
104
+ subscribe(input) {
105
+ const topic = fromBinary(TopicSchema, input.value);
106
+ return {
107
+ kind: "subscribe",
108
+ topic,
109
+ target: topic.target ?? create(TargetSchema),
110
+ requestedContext: topic.context ?? create(ActorContextSchema),
111
+ transport: input.transport,
112
+ };
113
+ },
114
+ /**
115
+ * Decodes a subscription activation or cancellation request.
116
+ *
117
+ * @param input Subscription activation or cancellation.
118
+ * @returns Decoded subscription facts.
119
+ */
120
+ subscription(input) {
121
+ const subscription = fromBinary(SubscriptionSchema, input.value);
122
+ return {
123
+ kind: input.kind,
124
+ subscription,
125
+ requestedContext: subscription.topic?.context ?? create(ActorContextSchema),
126
+ transport: input.transport,
127
+ };
128
+ },
129
+ });
81
130
  //# sourceMappingURL=index.js.map