@voltro/protocol 0.84.0 → 0.86.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.
Files changed (65) hide show
  1. package/CHANGELOG.md +1215 -0
  2. package/README.md +14 -0
  3. package/THIRD-PARTY-NOTICES.md +5 -89
  4. package/dist/apikey.d.ts +32 -34
  5. package/dist/approval.js +64 -0
  6. package/dist/approvalDescriptors.js +26 -0
  7. package/dist/auth.js +369 -0
  8. package/dist/boundedRing.js +27 -0
  9. package/dist/businessRule.js +11 -0
  10. package/dist/connection.js +73 -0
  11. package/dist/devActivity.js +4 -0
  12. package/dist/errorValue.js +21 -0
  13. package/dist/event.js +104 -0
  14. package/dist/idempotency.js +66 -0
  15. package/dist/identity.js +5 -9
  16. package/dist/index.d.ts +1494 -1366
  17. package/dist/index.js +42 -1411
  18. package/dist/inspect.d.ts +88 -88
  19. package/dist/inspect.js +14 -190
  20. package/dist/inspectBackfill.js +52 -0
  21. package/dist/inspectCommandRejection.js +21 -0
  22. package/dist/inspectProjection.js +133 -0
  23. package/dist/inspectStorageProjection.js +86 -0
  24. package/dist/inspectValueIdentity.js +4 -0
  25. package/dist/inspectWorkflowExecution.js +34 -0
  26. package/dist/inspectWorkflowQueuedStart.js +31 -0
  27. package/dist/jsonSchema.js +54 -0
  28. package/dist/jwt.d.ts +32 -34
  29. package/dist/outbox.js +10 -0
  30. package/dist/pairing.js +75 -0
  31. package/dist/plugin.js +61 -0
  32. package/dist/pluginNaming.js +32 -0
  33. package/dist/procedure.js +262 -0
  34. package/dist/publicApi.js +344 -0
  35. package/dist/reactivityChannel.js +34 -0
  36. package/dist/rest.d.ts +105 -57
  37. package/dist/rest.js +259 -437
  38. package/dist/restFormat.js +163 -0
  39. package/dist/rowEquality.js +31 -0
  40. package/dist/rowPatch.js +182 -0
  41. package/dist/schemaShape.js +67 -0
  42. package/dist/scopes.js +240 -0
  43. package/dist/serverErrorBus.js +15 -0
  44. package/dist/serviceCall.js +14 -0
  45. package/dist/session.d.ts +90 -96
  46. package/dist/session.js +13 -15
  47. package/dist/{sessionHeader-DriTZhmv.js → sessionHeader.js} +1 -1
  48. package/dist/storageAccess.js +14 -0
  49. package/dist/storeErrors.js +66 -0
  50. package/dist/storeScreenshots.js +90 -0
  51. package/dist/strictInput.js +27 -0
  52. package/dist/subscriptionEvent.js +37 -0
  53. package/dist/tenantSelection.js +40 -0
  54. package/dist/time.js +7 -0
  55. package/dist/undo.js +38 -0
  56. package/dist/validation.js +39 -0
  57. package/dist/webSocketGateway.js +10 -0
  58. package/dist/workflow.js +297 -0
  59. package/dist/workflowAccess.js +61 -0
  60. package/dist/workflowRestart.js +45 -0
  61. package/dist/workflowRetry.js +44 -0
  62. package/dist/workflowStartOutcome.js +30 -0
  63. package/package.json +4 -8
  64. package/dist/restFormat-EZ8k9ZcQ.js +0 -304
  65. package/dist/scopes-Di756ENh.js +0 -518
package/dist/rest.d.ts CHANGED
@@ -1,8 +1,9 @@
1
1
  import * as AST from 'effect/SchemaAST';
2
2
  import { DataStore } from '@voltro/database';
3
+ import { Effect } from 'effect';
3
4
  import { Schema } from 'effect';
4
5
 
5
- declare interface ActionProcedureDescriptor<Name extends string, Input extends Schema.Schema.Any, Output extends Schema.Schema.Any, Error extends Schema.Schema.All> {
6
+ declare interface ActionProcedureDescriptor<Name extends string, Input extends Schema.Top, Output extends Schema.Top, Error extends Schema.Top> {
6
7
  readonly kind: 'action';
7
8
  readonly name: Name;
8
9
  readonly input: Input;
@@ -113,7 +114,7 @@ export declare const bytes: (stream: ReadableStream<Uint8Array> | (() => Readabl
113
114
  * Field by field for a struct; the object is returned unchanged for any other
114
115
  * shape (the schema then decides). Unknown keys pass through untouched.
115
116
  */
116
- export declare const coerceQueryObject: (query: unknown, input: Schema.Schema.All) => unknown;
117
+ export declare const coerceQueryObject: (query: unknown, input: Schema.Top) => unknown;
117
118
 
118
119
  /**
119
120
  * Coerce ONE query-string value toward what `ast` (an ENCODED shape) expects.
@@ -144,7 +145,7 @@ export declare const collectPublicApiRoutes: (entries: ReadonlyArray<PublicApiEn
144
145
  declare type DeclaredAccess<Input = unknown> = ReadonlyArray<AnyGuardSpec<Input> | OpenAccessSpec | ServiceAccessSpec>;
145
146
 
146
147
  /** The `_tag` literals a descriptor's `error:` union declares (empty for none). */
147
- export declare const declaredErrorTags: (error: Schema.Schema.All | undefined) => ReadonlySet<string>;
148
+ export declare const declaredErrorTags: (error: Schema.Top | undefined) => ReadonlySet<string>;
148
149
 
149
150
  /**
150
151
  * Identity helper that fixes the descriptor's types (like `defineAction` /
@@ -210,7 +211,7 @@ export declare const encodeRestSuccess: (format: RestFormat, value: unknown, ctx
210
211
 
211
212
  /** The member of an error union that declares `tag`, as a schema of its own —
212
213
  * for the spec's per-status responses. */
213
- export declare const errorMemberSchema: (error: Schema.Schema.All | undefined, tag: string) => Schema.Schema.All | undefined;
214
+ export declare const errorMemberSchema: (error: Schema.Top | undefined, tag: string) => Schema.Top | undefined;
214
215
 
215
216
  /** Normalize the `exposeAsTool` shorthand. `true` is only valid when the
216
217
  * descriptor carries a top-level `description`; callers pass that in. */
@@ -359,7 +360,7 @@ export declare const matchPathParams: (pattern: string, path: string) => Record<
359
360
  * (for example joining a room) must execute once for EACH native connection. */
360
361
  declare type MutationIdempotencyScope = 'subject' | 'connection';
361
362
 
362
- declare interface MutationProcedureDescriptor<Name extends string, Input extends Schema.Schema.Any, Output extends Schema.Schema.Any, Error extends Schema.Schema.All> {
363
+ declare interface MutationProcedureDescriptor<Name extends string, Input extends Schema.Top, Output extends Schema.Top, Error extends Schema.Top> {
363
364
  readonly kind: 'mutation';
364
365
  readonly name: Name;
365
366
  readonly input: Input;
@@ -498,7 +499,7 @@ export declare const pathParamNames: (path: string) => ReadonlyArray<string>;
498
499
  * Requires the plugin to ship the schema as a NAMED export from `module`.
499
500
  */
500
501
  declare interface PluginErrorSchema {
501
- readonly schema: Schema.Schema.All;
502
+ readonly schema: Schema.Top;
502
503
  readonly import: {
503
504
  readonly module: string;
504
505
  readonly name: string;
@@ -589,6 +590,9 @@ declare interface PluginHttpRoute {
589
590
  * handler branches on: exempting `/saml` exempts `POST /saml/anything`.
590
591
  */
591
592
  readonly originGuard?: 'exempt';
593
+ readonly cors?: RestCors;
594
+ /** Bearer-only routes must discard cookie authority before authentication. */
595
+ readonly credentials?: 'bearer';
592
596
  }
593
597
 
594
598
  /**
@@ -827,7 +831,7 @@ export declare interface PublicApiClientConfig {
827
831
  }
828
832
 
829
833
  /** A descriptor kind that can be projected to REST (streams are not, in v1). */
830
- export declare type PublicApiDescriptor = QueryProcedureDescriptor<string, Schema.Schema.Any, Schema.Schema.Any, Schema.Schema.All> | MutationProcedureDescriptor<string, Schema.Schema.Any, Schema.Schema.Any, Schema.Schema.All> | ActionProcedureDescriptor<string, Schema.Schema.Any, Schema.Schema.Any, Schema.Schema.All>;
834
+ export declare type PublicApiDescriptor = QueryProcedureDescriptor<string, Schema.Top, Schema.Top, Schema.Top> | MutationProcedureDescriptor<string, Schema.Top, Schema.Top, Schema.Top> | ActionProcedureDescriptor<string, Schema.Top, Schema.Top, Schema.Top>;
831
835
 
832
836
  /** A descriptor paired with its bound executor, for batch projection at boot. */
833
837
  export declare interface PublicApiEntry {
@@ -1061,7 +1065,7 @@ declare interface QueryCacheConfig {
1061
1065
  readonly scope: 'subject' | 'tenant' | 'global';
1062
1066
  }
1063
1067
 
1064
- declare interface QueryProcedureDescriptor<Name extends string, Input extends Schema.Schema.Any, Output extends Schema.Schema.Any, Error extends Schema.Schema.All> {
1068
+ declare interface QueryProcedureDescriptor<Name extends string, Input extends Schema.Top, Output extends Schema.Top, Error extends Schema.Top> {
1065
1069
  readonly kind: 'query';
1066
1070
  readonly name: Name;
1067
1071
  readonly input: Input;
@@ -1196,7 +1200,18 @@ export declare interface RestByteResponse {
1196
1200
  * headers CDNs purge by. A request that carries a credential (`Authorization`
1197
1201
  * or a cookie) gets `private, no-cache` and no tags, whatever is declared:
1198
1202
  * what a key or a session may see must never land in a shared cache. Every
1199
- * such answer says `Vary: Authorization, Cookie`. Errors are not affected.
1203
+ * such answer says `Vary: Authorization, Cookie`.
1204
+ *
1205
+ * With `audience`, the ANSWER decides instead of the request's cookies: an
1206
+ * answer that is the same for every reader (`'public'`) is shared even when
1207
+ * the request carries cookies (a consent choice, a signed-in reader on a
1208
+ * public page) — the cache serves it to everyone, so it says only
1209
+ * `Vary: Authorization`; an answer for this reader alone (`'private'`: a
1210
+ * members page, a running experiment) is `private, no-store`. A request with
1211
+ * `Authorization` is private either way.
1212
+ *
1213
+ * Any other answer than a 200 (a 404, a 410, a 401) of a route with `cache`
1214
+ * is `private, no-store`: one reader's "not found" can be another's page.
1200
1215
  */
1201
1216
  export declare interface RestCache {
1202
1217
  /** Seconds a cache may serve the answer without asking again. */
@@ -1206,8 +1221,30 @@ export declare interface RestCache {
1206
1221
  /** Purge tags from the answer as it goes on the wire, and the input.
1207
1222
  * A tag with whitespace or a comma is dropped (no header can carry it). */
1208
1223
  readonly tags?: (output: unknown, input: unknown) => ReadonlyArray<string>;
1224
+ /** Who may share the answer, decided by the answer and the reader it was
1225
+ * made for: `'public'` — every reader gets the same, cookies are ignored;
1226
+ * `'private'` — this reader's alone, never shared. Answer `'private'` for
1227
+ * a signed-in `subject` whenever anything in the answer depends on who
1228
+ * reads it. Without it, any cookie makes the answer private. */
1229
+ readonly audience?: (output: unknown, input: unknown, subject: Subject) => 'public' | 'private';
1209
1230
  }
1210
1231
 
1232
+ /** Cross-origin browser access for one route. Origins are exact, including opaque `null`. */
1233
+ export declare interface RestCors {
1234
+ readonly origins: ReadonlyArray<string>;
1235
+ readonly headers?: ReadonlyArray<string>;
1236
+ readonly methods?: ReadonlyArray<RestMethod>;
1237
+ /** Preflight cache lifetime in seconds. */
1238
+ readonly maxAge?: number;
1239
+ readonly exposeHeaders?: ReadonlyArray<string>;
1240
+ }
1241
+
1242
+ /** Shared by the descriptor adapter and listener, including early transport refusals. */
1243
+ export declare const restCorsHeaders: (cors: RestCors | undefined, origin: string | undefined) => Record<string, string>;
1244
+
1245
+ /** Preflight never authenticates, consumes quota, reads a body or executes a handler. */
1246
+ export declare const restCorsPreflight: (cors: RestCors, method: string, headers: Readonly<Record<string, string>>) => PluginHttpRouteResult;
1247
+
1211
1248
  export declare type RestDates = 'iso' | 'epoch-ms';
1212
1249
 
1213
1250
  export declare type RestEnvelope = 'none' | 'data' | 'jsonapi';
@@ -1310,6 +1347,13 @@ export declare type RestNaming = 'camelCase' | 'snake_case';
1310
1347
 
1311
1348
  export declare type RestPagination = 'link-header' | 'body-cursor';
1312
1349
 
1350
+ /** Uses the mounted rate-limit plugin's store, algorithms and dynamic policy. */
1351
+ export declare interface RestRateLimit {
1352
+ readonly limit: number;
1353
+ readonly window: string;
1354
+ readonly by?: 'subject' | 'tenant' | 'apiKey' | 'ip' | 'global';
1355
+ }
1356
+
1313
1357
  /** A schema-encoded REST body with an application-selected HTTP status and
1314
1358
  * response headers. The marker keeps ordinary domain objects unambiguous.
1315
1359
  * `output` still validates/encodes `body`; use `Schema.Void` with a 204 when
@@ -1363,10 +1407,10 @@ export declare interface RestRouteDescriptor<I, O> {
1363
1407
  * before decoding. Omit for routes that take no input. The schema's
1364
1408
  * decoded `Type` flows to the handler's `input`; its `Encoded` is left
1365
1409
  * open (`any`) so any `Schema.Struct(...)` is accepted. */
1366
- readonly input?: Schema.Schema<I, any, never>;
1410
+ readonly input?: Schema.Codec<I, any, never, never>;
1367
1411
  /** Output schema. The handler returns the decoded `Type`; the desugar
1368
1412
  * encodes it to JSON for the `200` response. */
1369
- readonly output: Schema.Schema<O, any, never>;
1413
+ readonly output: Schema.Codec<O, any, never, never>;
1370
1414
  readonly handler: (input: I, ctx: RestRouteContext) => Promise<RestHandlerResult<O>> | RestHandlerResult<O>;
1371
1415
  readonly summary?: string;
1372
1416
  readonly description?: string;
@@ -1408,6 +1452,10 @@ export declare interface RestRouteDescriptor<I, O> {
1408
1452
  */
1409
1453
  readonly version?: `v${number}`;
1410
1454
  readonly guards?: ReadonlyArray<RestGuard>;
1455
+ readonly cors?: RestCors;
1456
+ /** Only an explicit bearer header may authenticate; cookies are removed before auth and context construction. */
1457
+ readonly credentials?: 'bearer';
1458
+ readonly rateLimit?: RestRateLimit;
1411
1459
  /**
1412
1460
  * This route STREAMS (Server-Sent Events) rather than resolving one value — its
1413
1461
  * handler returns `sse(...)`. Declared on the descriptor, not left implicit in
@@ -1462,10 +1510,10 @@ export declare interface RestRouteProjection {
1462
1510
  /** `publicApi.idempotent` — the route honours `Idempotency-Key` (under the
1463
1511
  * app's idempotency binding); a client sends one per attempt. */
1464
1512
  readonly idempotent: boolean;
1465
- readonly input: Schema.Schema.All;
1513
+ readonly input: Schema.Top;
1466
1514
  /** The wire names of the input fields bound from the path. */
1467
1515
  readonly pathParams: ReadonlyArray<string>;
1468
- readonly output: Schema.Schema.All;
1516
+ readonly output: Schema.Top;
1469
1517
  /** The first `source` table, when the procedure declares one. */
1470
1518
  readonly source: string | undefined;
1471
1519
  /** Every failure the operation answers with a typed body, and its status:
@@ -1474,7 +1522,7 @@ export declare interface RestRouteProjection {
1474
1522
  readonly errorResponses: ReadonlyArray<{
1475
1523
  readonly status: number;
1476
1524
  readonly tag: string;
1477
- readonly schema: Schema.Schema.All;
1525
+ readonly schema: Schema.Top;
1478
1526
  }>;
1479
1527
  readonly format: RestFormat;
1480
1528
  }
@@ -1493,6 +1541,8 @@ export declare const restRoutesToHttpRoutes: (routes: ReadonlyArray<RestRouteDes
1493
1541
  * auth subject + the bound DataStore.
1494
1542
  */
1495
1543
  export declare interface RestServeBindings {
1544
+ /** Bound once from the app's mounted rate-limit plugin. */
1545
+ readonly rateLimit?: (policy: RestRateLimit, ctx: RestRouteContext, route: RestRouteDescriptor<any, any>) => Effect.Effect<void, unknown>;
1496
1546
  /** Resolve the calling subject from the request headers. */
1497
1547
  readonly resolveSubject?: (headers: Readonly<Record<string, string>>) => Subject | Promise<Subject>;
1498
1548
  /** The bound framework DataStore. */
@@ -1528,15 +1578,15 @@ export declare interface RestStreamResponse {
1528
1578
 
1529
1579
  /**
1530
1580
  * Rewrite a descriptor's schema into the shape the profile puts on the wire:
1531
- * `timestampMs` (`DateFromNumber`) becomes an RFC 3339 string under
1532
- * `dates: 'iso'`, and every struct's property names become `snake_case` under
1533
- * `naming: 'snake_case'` — as a transformation, so decoding a wire value yields
1534
- * the descriptor's own typed value and encoding the typed value yields the
1535
- * wire form. `JSONSchema.make` of the result documents the wire (a
1536
- * `format: date-time` string, the snake keys). Classes and other opaque
1537
- * transformations pass through unchanged; a struct inside one keeps its keys.
1581
+ * `timestampMs` becomes an RFC 3339 string under `dates: 'iso'`, and every
1582
+ * struct's property names become `snake_case` under `naming: 'snake_case'` —
1583
+ * as an encoding, so decoding a wire value yields the descriptor's own typed
1584
+ * value and encoding the typed value yields the wire form.
1585
+ * `Schema.toJsonSchemaDocument` of the result documents the wire (a
1586
+ * `format: date-time` string, the snake keys). Classes and other opaque codecs
1587
+ * pass through unchanged; a struct inside one keeps its keys.
1538
1588
  */
1539
- export declare const restViewSchema: (schema: Schema.Schema.All, format: RestFormat) => Schema.Schema.All;
1589
+ export declare const restViewSchema: (schema: Schema.Top, format: RestFormat) => Schema.Top;
1540
1590
 
1541
1591
  /**
1542
1592
  * Whether `path` is one the route declared. The underlying router folds case
@@ -1602,33 +1652,31 @@ export declare const sse: (subscribe: (emit: (chunk: string) => void) => () => v
1602
1652
  * the protocol requires — a raw `\n` inside one would truncate the event. */
1603
1653
  export declare const sseFrame: (event: string, data: unknown) => string;
1604
1654
 
1605
- declare const Subject: Schema.Union<[Schema.Struct<{
1606
- type: Schema.Literal<["user"]>;
1607
- id: typeof Schema.String;
1608
- tenantId: typeof Schema.String;
1609
- scopes: Schema.optional<Schema.Array$<typeof Schema.String>>;
1610
- metadata: Schema.optional<Schema.Record$<typeof Schema.String, typeof Schema.Unknown>>;
1655
+ declare const Subject: Schema.Union<readonly [Schema.Struct<{
1656
+ readonly type: Schema.Literal<"user">;
1657
+ readonly id: Schema.String;
1658
+ readonly tenantId: Schema.String;
1659
+ readonly scopes: Schema.optional<Schema.$Array<Schema.String>>;
1660
+ readonly metadata: Schema.optional<Schema.$Record<Schema.String, Schema.Unknown>>;
1611
1661
  }>, Schema.Struct<{
1612
- type: Schema.Literal<["apiKey"]>;
1613
- id: typeof Schema.String;
1614
- tenantId: typeof Schema.String;
1615
- scopes: Schema.optional<Schema.Array$<typeof Schema.String>>;
1616
- metadata: Schema.optional<Schema.Record$<typeof Schema.String, typeof Schema.Unknown>>;
1662
+ readonly type: Schema.Literal<"apiKey">;
1663
+ readonly id: Schema.String;
1664
+ readonly tenantId: Schema.String;
1665
+ readonly scopes: Schema.optional<Schema.$Array<Schema.String>>;
1666
+ readonly metadata: Schema.optional<Schema.$Record<Schema.String, Schema.Unknown>>;
1617
1667
  }>, Schema.Struct<{
1618
- type: Schema.Literal<["serviceAccount"]>;
1619
- id: typeof Schema.String;
1620
- tenantId: typeof Schema.String;
1668
+ readonly type: Schema.Literal<"serviceAccount">;
1669
+ readonly id: Schema.String;
1670
+ readonly tenantId: Schema.String;
1621
1671
  /** Application actor used for audit columns; null means machine work with
1622
1672
  * no application actor. Identity only, never a permission grant. */
1623
- auditActorId: Schema.optionalWith<Schema.NullOr<typeof Schema.String>, {
1624
- exact: true;
1625
- }>;
1626
- scopes: Schema.optional<Schema.Array$<typeof Schema.String>>;
1627
- metadata: Schema.optional<Schema.Record$<typeof Schema.String, typeof Schema.Unknown>>;
1673
+ readonly auditActorId: Schema.optionalKey<Schema.NullOr<Schema.String>>;
1674
+ readonly scopes: Schema.optional<Schema.$Array<Schema.String>>;
1675
+ readonly metadata: Schema.optional<Schema.$Record<Schema.String, Schema.Unknown>>;
1628
1676
  }>, Schema.Struct<{
1629
- type: Schema.Literal<["anonymous"]>;
1630
- id: typeof Schema.Null;
1631
- tenantId: Schema.NullOr<typeof Schema.String>;
1677
+ readonly type: Schema.Literal<"anonymous">;
1678
+ readonly id: Schema.Null;
1679
+ readonly tenantId: Schema.NullOr<Schema.String>;
1632
1680
  /**
1633
1681
  * Set when this caller PRESENTED a credential and it was rejected — an
1634
1682
  * expired token above all. Absent when they presented none.
@@ -1645,21 +1693,21 @@ declare const Subject: Schema.Union<[Schema.Struct<{
1645
1693
  * must not break an `openAccess` procedure that needs no session at all. The
1646
1694
  * fact travels, and only a guard that actually refuses spends it.
1647
1695
  */
1648
- credentialRejected: Schema.optional<typeof Schema.String>;
1696
+ readonly credentialRejected: Schema.optional<Schema.String>;
1649
1697
  }>, Schema.Struct<{
1650
- type: Schema.Literal<["system"]>;
1651
- id: typeof Schema.String;
1652
- tenantId: typeof Schema.Null;
1653
- scopes: Schema.optional<Schema.Array$<typeof Schema.String>>;
1654
- metadata: Schema.optional<Schema.Record$<typeof Schema.String, typeof Schema.Unknown>>;
1698
+ readonly type: Schema.Literal<"system">;
1699
+ readonly id: Schema.String;
1700
+ readonly tenantId: Schema.Null;
1701
+ readonly scopes: Schema.optional<Schema.$Array<Schema.String>>;
1702
+ readonly metadata: Schema.optional<Schema.$Record<Schema.String, Schema.Unknown>>;
1655
1703
  }>, Schema.Struct<{
1656
- type: Schema.Literal<["service"]>;
1657
- id: typeof Schema.String;
1704
+ readonly type: Schema.Literal<"service">;
1705
+ readonly id: Schema.String;
1658
1706
  /** The calling app's name, as the callee lists it in `serviceCallers`. */
1659
- service: typeof Schema.String;
1660
- tenantId: typeof Schema.Null;
1661
- scopes: Schema.optional<Schema.Array$<typeof Schema.String>>;
1662
- metadata: Schema.optional<Schema.Record$<typeof Schema.String, typeof Schema.Unknown>>;
1707
+ readonly service: Schema.String;
1708
+ readonly tenantId: Schema.Null;
1709
+ readonly scopes: Schema.optional<Schema.$Array<Schema.String>>;
1710
+ readonly metadata: Schema.optional<Schema.$Record<Schema.String, Schema.Unknown>>;
1663
1711
  }>]>;
1664
1712
 
1665
1713
  declare type Subject = typeof Subject.Type;
@@ -1737,7 +1785,7 @@ declare interface UpdateTarget<Input = unknown, Row = unknown, Item = Record<str
1737
1785
  export declare const wireExample: (example: {
1738
1786
  readonly request?: unknown;
1739
1787
  readonly response?: unknown;
1740
- }, wireInput: Schema.Schema.All, wireOutput: Schema.Schema.All) => {
1788
+ }, wireInput: Schema.Top, wireOutput: Schema.Top) => {
1741
1789
  readonly request?: unknown;
1742
1790
  readonly response?: unknown;
1743
1791
  };