@powerhousedao/reactor-api 6.2.3-dev.5 → 6.2.3-dev.50

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 (45) hide show
  1. package/README.md +7 -2
  2. package/dist/{adapter-gateway-apollo-CxJNBVyD.mjs → adapter-gateway-apollo-B54G_cXT.mjs} +15 -13
  3. package/dist/{adapter-gateway-apollo-CxJNBVyD.mjs.map → adapter-gateway-apollo-B54G_cXT.mjs.map} +1 -1
  4. package/dist/{adapter-gateway-apollo-DowrX6E_.mjs → adapter-gateway-apollo-D2DNlPY0.mjs} +3 -3
  5. package/dist/{adapter-gateway-mercurius-CZVy88Za.mjs → adapter-gateway-mercurius-rbKlwF9m.mjs} +4 -4
  6. package/dist/{adapter-gateway-mercurius-CZVy88Za.mjs.map → adapter-gateway-mercurius-rbKlwF9m.mjs.map} +1 -1
  7. package/dist/{adapter-gateway-stitching-CaZjvRzx.mjs → adapter-gateway-stitching-Dzv10u8D.mjs} +15 -10
  8. package/dist/{adapter-gateway-stitching-CaZjvRzx.mjs.map → adapter-gateway-stitching-Dzv10u8D.mjs.map} +1 -1
  9. package/dist/{adapter-http-express-B39rPhqH.mjs → adapter-http-express-P0t-mdMV.mjs} +10 -10
  10. package/dist/adapter-http-express-P0t-mdMV.mjs.map +1 -0
  11. package/dist/{adapter-http-fastify-BwXO6rqE.mjs → adapter-http-fastify-D0OP5q9K.mjs} +13 -12
  12. package/dist/adapter-http-fastify-D0OP5q9K.mjs.map +1 -0
  13. package/dist/index.d.mts +1621 -604
  14. package/dist/index.d.mts.map +1 -1
  15. package/dist/index.mjs +2622 -617
  16. package/dist/index.mjs.map +1 -1
  17. package/dist/pglite-node-Ow9i5Rb4.mjs +573 -0
  18. package/dist/pglite-node-Ow9i5Rb4.mjs.map +1 -0
  19. package/dist/rolldown-runtime-8H4AJuhK.mjs +16 -0
  20. package/dist/run-node-handler-CQjyjOuN.mjs +52 -0
  21. package/dist/run-node-handler-CQjyjOuN.mjs.map +1 -0
  22. package/dist/src/packages/https-hooks.d.mts +4 -4
  23. package/dist/src/packages/https-hooks.d.mts.map +1 -1
  24. package/dist/src/packages/https-hooks.mjs +2 -2
  25. package/dist/src/packages/https-hooks.mjs.map +1 -1
  26. package/dist/src/packages/vite-loader.d.mts +19 -9
  27. package/dist/src/packages/vite-loader.d.mts.map +1 -1
  28. package/dist/src/packages/vite-loader.mjs +114 -50
  29. package/dist/src/packages/vite-loader.mjs.map +1 -1
  30. package/dist/src/pglite/pglite-node.d.mts +130 -0
  31. package/dist/src/pglite/pglite-node.d.mts.map +1 -0
  32. package/dist/src/pglite/pglite-node.mjs +4 -0
  33. package/dist/{utils-XWVecaNn.mjs → subgraph-extraction-DTFoN_bS.mjs} +266 -11
  34. package/dist/subgraph-extraction-DTFoN_bS.mjs.map +1 -0
  35. package/dist/{types-DcYyNcHJ.d.mts → types-DlTiz6AA.d.mts} +27 -4
  36. package/dist/types-DlTiz6AA.d.mts.map +1 -0
  37. package/dist/{websocket-DncAB9XK.mjs → websocket-_SH5aBcy.mjs} +3 -3
  38. package/dist/{websocket-DncAB9XK.mjs.map → websocket-_SH5aBcy.mjs.map} +1 -1
  39. package/package.json +24 -19
  40. package/dist/adapter-http-express-B39rPhqH.mjs.map +0 -1
  41. package/dist/adapter-http-fastify-BwXO6rqE.mjs.map +0 -1
  42. package/dist/path-normalize-BOQwY9wR.mjs +0 -23
  43. package/dist/path-normalize-BOQwY9wR.mjs.map +0 -1
  44. package/dist/types-DcYyNcHJ.d.mts.map +0 -1
  45. package/dist/utils-XWVecaNn.mjs.map +0 -1
package/dist/index.d.mts CHANGED
@@ -1,15 +1,14 @@
1
- import { i as IPackageManagerOptions, n as IPackageLoaderOptions, r as IPackageManager, s as PackageManagerResult, t as IPackageLoader } from "./types-DcYyNcHJ.mjs";
1
+ import { a as IPackagePieceSource, c as PackageManagerResult, i as IPackageManagerOptions, l as PackagePiece, n as IPackageLoaderOptions, r as IPackageManager, t as IPackageLoader, u as PackagePieceEntry } from "./types-DlTiz6AA.mjs";
2
2
  import { IAnalyticsStore } from "@powerhousedao/analytics-engine-core";
3
3
  import { AnalyticsModel } from "@powerhousedao/analytics-engine-graphql";
4
- import * as graphql from "graphql";
5
- import { DocumentNode, GraphQLResolveInfo, GraphQLScalarType, GraphQLScalarTypeConfig, GraphQLSchema } from "graphql";
6
- import { AttachmentRef, IDocumentModelLoader, IDocumentModelRegistry, IDriveClient, IReactorClient, IReactorProcessorHostModuleBase, IRelationalDb, ISyncManager, InProcessReactorClientModule, ParsedDriveUrl, ProcessorFactoryBuilder as ProcessorFactoryBuilder$1, SyncScopeGate, driveIdFromUrl, parseDriveUrl } from "@powerhousedao/reactor";
4
+ import { DocumentNode, GraphQLError, GraphQLResolveInfo, GraphQLScalarType, GraphQLScalarTypeConfig, GraphQLSchema } from "graphql";
5
+ import { AttachmentRef, DocumentModelSource, IDocumentModelLoader, IDocumentModelRegistry, IDriveClient, IReactorClient, IReactorProcessorHostModuleBase, IRelationalDb, ISyncManager, InProcessReactorClientModule, ParsedDriveUrl, ProcessorFactoryBuilder as ProcessorFactoryBuilder$1, SyncScopeGate, driveIdFromUrl, parseDriveUrl } from "@powerhousedao/reactor";
6
+ import { AuthSubject, DocumentModelGlobalState as DocumentModelGlobalState$1, DocumentModelModule, Operation, PHDocument, UpgradeManifest } from "@powerhousedao/shared/document-model";
7
7
  import { ILogger } from "document-model";
8
8
  import { GraphQLResolverMap, GraphQLSchemaModule } from "@apollo/subgraph";
9
- import { AuthSubject, DocumentModelGlobalState as DocumentModelGlobalState$1, DocumentModelModule, Operation, PHDocument, UpgradeManifest } from "@powerhousedao/shared/document-model";
10
9
  import * as z$1 from "zod";
11
10
  import { DocumentDriveDocument, DocumentDriveGlobalState } from "@powerhousedao/shared/document-drive";
12
- import { AttachmentBuildResult, AttachmentReferenceIndexBuildResult, IAttachmentReferenceReader, IAttachmentReferenceWriter } from "@powerhousedao/reactor-attachments";
11
+ import { AttachmentBuildResult, AttachmentDownloadOptions, AttachmentDownloadTarget, AttachmentDownloadTargetOptions, AttachmentHeader, AttachmentReferenceIndexBuildResult, AttachmentResponse, AttachmentStatOptions, IAttachmentReferenceReader, IAttachmentReferenceWriter, IAttachmentService, IAttachmentUpload, ReserveAttachmentOptions } from "@powerhousedao/reactor-attachments";
13
12
  import { IAttachmentClient } from "@powerhousedao/reactor-attachments/client";
14
13
  import { WebSocketServer } from "ws";
15
14
  import { AuthorizerResult, IHttpScope, IRelationalDb as IRelationalDb$1, IWebhookEndpoints, IWebhookScope, NodeRouteSpec, ProcessorApp, ProcessorFactory, RouteActor, RouteAuth, RouteAuthorizer, RouteBody, RouteContext, RouteHandler, RouteMethod, RouteOptions, RouteSpec, RouteTransport, RouteUser, RouteUser as RouteUser$1, ScopedRouteHandle, WebhookEndpointInfo, WebhookField, WebhookHashAlgorithm, WebhookPolicy, WebhookReply, WebhookRequest, WebhookScheme, WebhookSignatureEncoding, WebhookSpec, WebhookVerification } from "@powerhousedao/shared/processors";
@@ -22,7 +21,6 @@ import { Context as Context$1, GqlDocument as GqlDocument$1, GqlDriveDocument as
22
21
  import { IncomingHttpHeaders } from "http";
23
22
  import { Pool } from "pg";
24
23
  import { PHReactorRenown } from "@powerhousedao/shared/clis";
25
-
26
24
  //#region src/utils/db.d.ts
27
25
  /**
28
26
  * Permission levels for documents:
@@ -30,23 +28,23 @@ import { PHReactorRenown } from "@powerhousedao/shared/clis";
30
28
  * - WRITE: Can push updates and modify the document
31
29
  * - ADMIN: Can manage document permissions and settings
32
30
  */
33
- type DocumentPermissionLevel = "READ" | "WRITE" | "ADMIN";
31
+ export type DocumentPermissionLevel = "READ" | "WRITE" | "ADMIN";
34
32
  /**
35
33
  * Database schema for document permissions
36
34
  */
37
- interface DocumentProtectionTable {
35
+ export interface DocumentProtectionTable {
38
36
  documentId: string;
39
37
  protected: boolean;
40
38
  ownerAddress: string | null;
41
39
  createdAt: Date;
42
40
  updatedAt: Date;
43
41
  }
44
- interface DocumentPermissionDatabase {
42
+ export interface DocumentPermissionDatabase {
45
43
  DocumentPermission: DocumentPermissionTable;
46
44
  OperationUserPermission: OperationUserPermissionTable;
47
45
  DocumentProtection: DocumentProtectionTable;
48
46
  }
49
- interface DocumentPermissionTable {
47
+ export interface DocumentPermissionTable {
50
48
  id: Generated<number>;
51
49
  documentId: string;
52
50
  userAddress: string;
@@ -55,7 +53,7 @@ interface DocumentPermissionTable {
55
53
  createdAt: Date;
56
54
  updatedAt: Date;
57
55
  }
58
- interface OperationUserPermissionTable {
56
+ export interface OperationUserPermissionTable {
59
57
  id: Generated<number>;
60
58
  documentId: string;
61
59
  operationType: string;
@@ -64,26 +62,27 @@ interface OperationUserPermissionTable {
64
62
  createdAt: Date;
65
63
  }
66
64
  type Db = Kysely<any>;
67
- declare const PGLITE_UTC_PARSERS: {
65
+ export declare const PGLITE_UTC_PARSERS: {
68
66
  readonly 1114: (value: string) => Date;
69
67
  };
68
+ export declare function isPostgresConnectionString(connectionString: string): boolean;
70
69
  /**
71
70
  * Optional factory used by callers (e.g. Switchboard) to inject a
72
71
  * version-specific PGLite instance — e.g. `pglite-legacy-02` when an existing
73
72
  * data dir was created with an older PG major. Wire-compatible with the
74
73
  * current PGLite class for the surface knex-pglite uses.
75
74
  */
76
- type PgliteFactory = (connectionString: string | undefined) => PGlite;
77
- interface DbClient {
75
+ export type PgliteFactory = (connectionString: string | undefined) => PGlite;
76
+ export interface DbClient {
78
77
  db: Db;
79
78
  knex: Knex;
80
79
  pglite: PGlite | undefined;
81
80
  }
82
- declare function getDbClient(connectionString?: string | undefined, pgliteFactory?: PgliteFactory): DbClient;
83
- declare const initAnalyticsStoreSql: string[];
81
+ export declare function getDbClient(connectionString?: string | undefined, pgliteFactory?: PgliteFactory): DbClient;
82
+ export declare const initAnalyticsStoreSql: string[];
84
83
  //#endregion
85
84
  //#region src/services/document-permission.service.d.ts
86
- interface DocumentPermissionEntry {
85
+ export interface DocumentPermissionEntry {
87
86
  documentId: string;
88
87
  userAddress: string;
89
88
  permission: DocumentPermissionLevel;
@@ -91,7 +90,7 @@ interface DocumentPermissionEntry {
91
90
  createdAt: Date;
92
91
  updatedAt: Date;
93
92
  }
94
- interface OperationUserPermissionEntry {
93
+ export interface OperationUserPermissionEntry {
95
94
  documentId: string;
96
95
  operationType: string;
97
96
  userAddress: string;
@@ -102,11 +101,11 @@ interface OperationUserPermissionEntry {
102
101
  * Function type for getting parent document IDs
103
102
  * This is injected to avoid circular dependencies with the reactor client
104
103
  */
105
- type GetParentIdsFn = (documentId: string) => Promise<string[]>;
104
+ export type GetParentIdsFn = (documentId: string) => Promise<string[]>;
106
105
  /**
107
106
  * Configuration for the DocumentPermissionService
108
107
  */
109
- interface DocumentPermissionConfig {
108
+ export interface DocumentPermissionConfig {
110
109
  defaultProtection: boolean;
111
110
  }
112
111
  /**
@@ -120,7 +119,7 @@ interface DocumentPermissionConfig {
120
119
  * Operation permissions:
121
120
  * - Users can be granted permission to execute specific operations
122
121
  */
123
- declare class DocumentPermissionService {
122
+ export declare class DocumentPermissionService {
124
123
  private readonly db;
125
124
  readonly config: DocumentPermissionConfig;
126
125
  constructor(db: Kysely<DocumentPermissionDatabase>, config?: DocumentPermissionConfig);
@@ -148,7 +147,18 @@ declare class DocumentPermissionService {
148
147
  /**
149
148
  * Delete all permissions for a document (used when deleting a document)
150
149
  */
151
- deleteAllDocumentPermissions(documentId: string): Promise<void>;
150
+ deleteAllDocumentPermissions(documentId: string): Promise<{
151
+ DocumentPermission: number;
152
+ OperationUserPermission: number;
153
+ }>;
154
+ /** Delete a document's protection row, which names its owner. */
155
+ deleteDocumentProtection(documentId: string): Promise<number>;
156
+ /** Every row that names the address, for a subject access request. */
157
+ rowsForAddress(address: string): Promise<{
158
+ permissions: DocumentPermissionEntry[];
159
+ operationPermissions: OperationUserPermissionEntry[];
160
+ ownedDocumentIds: string[];
161
+ }>;
152
162
  /**
153
163
  * Grant a user permission to execute an operation on a document
154
164
  */
@@ -230,7 +240,7 @@ type CanonicalDocumentId = string & {
230
240
  * always safe for the data fetch: the canonical id when resolved, or the raw
231
241
  * identifier when the check was skipped for a policy-wide caller.
232
242
  */
233
- declare class AuthorizedDocumentHandle {
243
+ export declare class AuthorizedDocumentHandle {
234
244
  readonly fetchIdentifier: string;
235
245
  readonly isResolved: boolean;
236
246
  private constructor();
@@ -239,12 +249,12 @@ declare class AuthorizedDocumentHandle {
239
249
  /** The verified canonical id; throws when resolution was skipped. */
240
250
  canonicalId(): CanonicalDocumentId;
241
251
  }
242
- declare const AuthorizationPolicy: {
252
+ export declare const AuthorizationPolicy: {
243
253
  readonly OPEN: "OPEN";
244
254
  readonly ADMIN_ONLY: "ADMIN_ONLY";
245
255
  readonly DOCUMENT_PERMISSIONS: "DOCUMENT_PERMISSIONS";
246
256
  };
247
- type AuthorizationPolicy = (typeof AuthorizationPolicy)[keyof typeof AuthorizationPolicy];
257
+ export type AuthorizationPolicy = (typeof AuthorizationPolicy)[keyof typeof AuthorizationPolicy];
248
258
  interface AuthorizationConfig {
249
259
  admins: string[];
250
260
  defaultProtection: boolean;
@@ -288,32 +298,32 @@ interface IAuthorizationService {
288
298
  }
289
299
  //#endregion
290
300
  //#region src/graphql/gateway/types.d.ts
291
- type TlsOptions = {
301
+ export type TlsOptions = {
292
302
  keyPath: string;
293
303
  certPath: string;
294
304
  } | {
295
305
  cert: Buffer | string;
296
306
  key: Buffer | string;
297
307
  } | true;
298
- type GatewayContextFactory<TContext = unknown> = (request: Request) => Promise<TContext>;
308
+ export type GatewayContextFactory<TContext = unknown> = (request: Request) => Promise<TContext>;
299
309
  /** Under graphql-ws this is `ctx.extra`, created once per socket. */
300
- type WsConnection = object;
301
- type WsContextFactory<TContext = unknown> = (connectionParams: Record<string, unknown>, connection: WsConnection) => Promise<TContext>;
302
- type WsConnectHandler = (connectionParams: Record<string, unknown>, connection: WsConnection) => Promise<boolean>;
303
- type WsHandlers<TContext = unknown> = {
310
+ export type WsConnection = object;
311
+ export type WsContextFactory<TContext = unknown> = (connectionParams: Record<string, unknown>, connection: WsConnection) => Promise<TContext>;
312
+ export type WsConnectHandler = (connectionParams: Record<string, unknown>, connection: WsConnection) => Promise<boolean>;
313
+ export type WsHandlers<TContext = unknown> = {
304
314
  onConnect: WsConnectHandler;
305
315
  context: WsContextFactory<TContext>;
306
316
  };
307
317
  /** No authenticated caller resolved, and REQUIRE_AUTHENTICATED_CALLER wants one. */
308
- declare const WS_CLOSE_REASON_AUTHENTICATION_REQUIRED = "authentication-required";
318
+ export declare const WS_CLOSE_REASON_AUTHENTICATION_REQUIRED = "authentication-required";
309
319
  /** A bearer was sent and could not be verified. */
310
- declare const WS_CLOSE_REASON_BEARER_REJECTED = "bearer-rejected";
320
+ export declare const WS_CLOSE_REASON_BEARER_REJECTED = "bearer-rejected";
311
321
  /** Every reason a refusal closes with, for a client matching on the set. */
312
- declare const WS_AUTH_CLOSE_REASONS: readonly ["authentication-required", "bearer-rejected"];
313
- type WsDisposer = {
322
+ export declare const WS_AUTH_CLOSE_REASONS: readonly ["authentication-required", "bearer-rejected"];
323
+ export type WsDisposer = {
314
324
  dispose: () => void | Promise<void>;
315
325
  };
316
- type FetchHandler = (request: Request) => Promise<Response>;
326
+ export type FetchHandler = (request: Request) => Promise<Response>;
317
327
  /**
318
328
  * Handle to a route registered directly on the adapter. Packages hot-reload,
319
329
  * so every registration is reversible; disposing a route that is already gone
@@ -329,7 +339,7 @@ type FetchHandler = (request: Request) => Promise<Response>;
329
339
  * which also carries the public URL the route answers on — at this layer there
330
340
  * is no namespace to build one from and no knowledge of the host's origin.
331
341
  */
332
- interface AdapterRouteHandle {
342
+ export interface AdapterRouteHandle {
333
343
  dispose(): void;
334
344
  }
335
345
  /**
@@ -338,7 +348,7 @@ interface AdapterRouteHandle {
338
348
  * federation adapters treat it as a service to call over HTTP, while the
339
349
  * stitching adapter merges its typeDefs and resolvers in-process.
340
350
  */
341
- type SubgraphDefinition = {
351
+ export type SubgraphDefinition = {
342
352
  name: string;
343
353
  typeDefs: DocumentNode;
344
354
  url: string;
@@ -351,7 +361,7 @@ type SubgraphDefinition = {
351
361
  */
352
362
  resolvers?: Record<string, unknown>;
353
363
  };
354
- interface IGatewayAdapter<TContext = unknown> {
364
+ export interface IGatewayAdapter<TContext = unknown> {
355
365
  /** One-time startup. */
356
366
  start(httpServer: http.Server): Promise<void>;
357
367
  /**
@@ -381,8 +391,8 @@ interface IGatewayAdapter<TContext = unknown> {
381
391
  * Methods a node route may bind. OPTIONS is excluded: the framework's CORS
382
392
  * plugin owns preflight, and a duplicate registration conflicts at startup.
383
393
  */
384
- type HttpMethod = "DELETE" | "GET" | "HEAD" | "PATCH" | "POST" | "PUT";
385
- interface NodeRouteOptions {
394
+ export type HttpMethod = "DELETE" | "GET" | "HEAD" | "PATCH" | "POST" | "PUT";
395
+ export interface NodeRouteOptions {
386
396
  /** Serve sub-paths too, not just an exact path match. */
387
397
  prefix?: boolean;
388
398
  /**
@@ -398,7 +408,7 @@ interface NodeRouteOptions {
398
408
  */
399
409
  rawBody?: boolean;
400
410
  }
401
- interface IHttpAdapter {
411
+ export interface IHttpAdapter {
402
412
  /** Set up CORS and body-parser equivalent middleware. */
403
413
  setupMiddleware(config: {
404
414
  corsOptions?: CorsOptions;
@@ -413,7 +423,8 @@ interface IHttpAdapter {
413
423
  * replaces the previous one (last write wins).
414
424
  */
415
425
  mount(path: string, handler: FetchHandler, options?: {
416
- prefix?: boolean; /** @deprecated Misleading name: this always meant *prefix*, not exact. */
426
+ prefix?: boolean;
427
+ /** @deprecated Misleading name: this always meant *prefix*, not exact. */
417
428
  exact?: boolean;
418
429
  }): AdapterRouteHandle;
419
430
  /**
@@ -423,9 +434,10 @@ interface IHttpAdapter {
423
434
  getRoute(path: string, handler: (request: Request) => Response | Promise<Response>): AdapterRouteHandle;
424
435
  /**
425
436
  * Start listening on the given port. Returns the underlying http.Server
426
- * so callers can attach WebSocket servers.
437
+ * so callers can attach WebSocket servers. Without `host` it binds the
438
+ * wildcard address.
427
439
  */
428
- listen(port: number, tls?: TlsOptions): Promise<http.Server>;
440
+ listen(port: number, tls?: TlsOptions, host?: string): Promise<http.Server>;
429
441
  /**
430
442
  * Mount a raw Connect/Express-compatible middleware function (e.g. Vite dev
431
443
  * server middleware). The implementation is adapter-specific; for Express this
@@ -454,12 +466,12 @@ interface IHttpAdapter {
454
466
  }
455
467
  //#endregion
456
468
  //#region src/services/auth.service.d.ts
457
- type CredentialVerifier = (params: {
469
+ export type CredentialVerifier = (params: {
458
470
  address: string;
459
471
  chainId: number;
460
472
  appId: string;
461
473
  }) => Promise<boolean>;
462
- interface AuthConfig {
474
+ export interface AuthConfig {
463
475
  /**
464
476
  * Whether the authorization policy enforces anything: it selects `ADMIN_ONLY`
465
477
  * over `OPEN`, and it is what `AuthContext.auth_enabled` reports to callers
@@ -492,13 +504,13 @@ interface AuthConfig {
492
504
  * `@powerhousedao/shared/processors` as `RouteUser`, so a route handler and a
493
505
  * resolver agree on it without either package redeclaring it.
494
506
  */
495
- type User = RouteUser$1;
496
- interface AuthContext {
507
+ export type User = RouteUser$1;
508
+ export interface AuthContext {
497
509
  user?: User;
498
510
  admins: string[];
499
511
  auth_enabled: boolean;
500
512
  }
501
- declare class AuthService {
513
+ export declare class AuthService {
502
514
  private readonly config;
503
515
  private readonly credentialCache;
504
516
  constructor(config: AuthConfig);
@@ -577,9 +589,9 @@ interface IWebhookStore {
577
589
  seen(token: string, key: string, ttlSeconds: number): Promise<boolean>;
578
590
  }
579
591
  /** Opaque and unguessable: the URL is a bearer capability held by a third party. */
580
- declare function newWebhookToken(): string;
592
+ export declare function newWebhookToken(): string;
581
593
  /** Relational implementation, over the reactor's own database. */
582
- declare class RelationalWebhookStore implements IWebhookStore {
594
+ export declare class RelationalWebhookStore implements IWebhookStore {
583
595
  #private;
584
596
  private readonly relationalDb;
585
597
  constructor(relationalDb: IRelationalDb$1);
@@ -591,7 +603,7 @@ declare class RelationalWebhookStore implements IWebhookStore {
591
603
  seen(token: string, key: string, ttlSeconds: number): Promise<boolean>;
592
604
  }
593
605
  /** In-memory store, for hosts with no relational database and for tests. */
594
- declare class MemoryWebhookStore implements IWebhookStore {
606
+ export declare class MemoryWebhookStore implements IWebhookStore {
595
607
  #private;
596
608
  init(): Promise<void>;
597
609
  ensure(namespace: string, endpoint: string, ownerKey: string): Promise<WebhookEndpointRow>;
@@ -603,7 +615,7 @@ declare class MemoryWebhookStore implements IWebhookStore {
603
615
  //#endregion
604
616
  //#region src/http/webhook-service.d.ts
605
617
  /** The flat, token-addressed path family. */
606
- declare const WEBHOOK_SEGMENT = "webhooks";
618
+ export declare const WEBHOOK_SEGMENT = "webhooks";
607
619
  interface WebhookServiceOptions {
608
620
  store: IWebhookStore;
609
621
  basePath?: string;
@@ -612,13 +624,9 @@ interface WebhookServiceOptions {
612
624
  }
613
625
  /** One host route for `/webhooks/:token`, dispatching by token. The flat path leaks
614
626
  * neither package nor document; the namespace lives in the token record, which is also what stops one package's token reaching another's handler. */
615
- declare class WebhookService {
627
+ export declare class WebhookService {
616
628
  #private;
617
- constructor({
618
- store,
619
- basePath,
620
- publicUrl
621
- }: WebhookServiceOptions);
629
+ constructor({ store, basePath, publicUrl }: WebhookServiceOptions);
622
630
  /** The scope the endpoint family serves from, handed over once the route service exists;
623
631
  * separate from the constructor only because that service takes this one as an option. */
624
632
  attach(scope: IHttpScope): void;
@@ -637,9 +645,9 @@ declare class WebhookService {
637
645
  //#endregion
638
646
  //#region src/http/route-service.d.ts
639
647
  /** The segment package routes live under, inside the host's base path. */
640
- declare const PACKAGE_ROUTE_SEGMENT = "api";
648
+ export declare const PACKAGE_ROUTE_SEGMENT = "api";
641
649
  /** The namespace core's own subgraphs and services register under. */
642
- declare const CORE_PACKAGE_NAME = "@powerhousedao/reactor-api";
650
+ export declare const CORE_PACKAGE_NAME = "@powerhousedao/reactor-api";
643
651
  interface HttpRouteServiceOptions {
644
652
  httpAdapter: IHttpAdapter;
645
653
  /** Absent on a host with no webhook store; `scope.webhooks` then refuses. */
@@ -656,16 +664,9 @@ interface HttpRouteServiceOptions {
656
664
  }
657
665
  /** Owns the URL space packages serve from, handing each a scope bound to its own namespace. The prefix nests inside
658
666
  * the host's base path (`<basePath>/api`), so core collisions are prevented by URL shape, not a reserved-name list. */
659
- declare class HttpRouteService {
667
+ export declare class HttpRouteService {
660
668
  #private;
661
- constructor({
662
- httpAdapter,
663
- basePath,
664
- authService,
665
- webhooks,
666
- publicUrl,
667
- trustProxy
668
- }: HttpRouteServiceOptions);
669
+ constructor({ httpAdapter, basePath, authService, webhooks, publicUrl, trustProxy }: HttpRouteServiceOptions);
669
670
  /** The absolute path packages are mounted under. */
670
671
  get prefix(): string;
671
672
  /** The scope for a package; idempotent per name, so a reload cannot accumulate namespaces. Throws when two packages
@@ -683,18 +684,18 @@ declare class HttpRouteService {
683
684
  }
684
685
  //#endregion
685
686
  //#region src/http/namespace.d.ts
686
- declare class InvalidNamespaceError extends Error {}
687
+ export declare class InvalidNamespaceError extends Error {}
687
688
  /**
688
689
  * Turns a package name into the path segments it occupies.
689
690
  * `@powerhousedao/workflow` → ["@powerhousedao", "workflow"]
690
691
  * `document-model` → ["document-model"]
691
692
  */
692
- declare function namespaceSegments(packageName: string): string[];
693
+ export declare function namespaceSegments(packageName: string): string[];
693
694
  /**
694
695
  * The path a package's routes hang off, relative to the package prefix.
695
696
  * Scoped names occupy two segments — the addressing unpkg and jsdelivr use.
696
697
  */
697
- declare function namespacePath(packageName: string): string;
698
+ export declare function namespacePath(packageName: string): string;
698
699
  /**
699
700
  * Resolves the npm name a package is routed under from the key the package
700
701
  * manager holds it by. That key is the specifier as configured, which is not
@@ -707,7 +708,7 @@ declare function namespacePath(packageName: string): string;
707
708
  * Deriving a URL segment straight from the key would give a developer's home
708
709
  * directory a route namespace, so the path form is resolved rather than slugged.
709
710
  */
710
- declare function resolvePackageName(key: string, readPackageJsonName?: (dir: string) => string | undefined): string;
711
+ export declare function resolvePackageName(key: string, readPackageJsonName?: (dir: string) => string | undefined): string;
711
712
  /**
712
713
  * A mount path the host named for one of its own route groups.
713
714
  *
@@ -722,7 +723,7 @@ declare function resolvePackageName(key: string, readPackageJsonName?: (dir: str
722
723
  * routes unpredictable relative to each other. Returns the normalized path,
723
724
  * with a leading and no trailing slash.
724
725
  */
725
- declare function assertHostMountPath(path: string): string;
726
+ export declare function assertHostMountPath(path: string): string;
726
727
  //#endregion
727
728
  //#region src/http/webhook-verify.d.ts
728
729
  type VerifyResult = {
@@ -733,20 +734,206 @@ type VerifyResult = {
733
734
  };
734
735
  /** Verifies a delivery against the configured scheme; `raw` must be the exact bytes
735
736
  * received. The reason is for the log only: callers answer a fixed 401, so a probing sender learns nothing from the body. */
736
- declare function verifyWebhook(options: {
737
+ export declare function verifyWebhook(options: {
737
738
  verification: WebhookVerification;
738
739
  headers: Record<string, string>;
739
740
  raw: Buffer;
740
741
  now?: Date;
741
742
  }): VerifyResult;
742
- declare function redactHeaders(headers: Record<string, string>, extra?: string): Record<string, string>;
743
+ export declare function redactHeaders(headers: Record<string, string>, extra?: string): Record<string, string>;
743
744
  /** JSON and form bodies become objects; anything else stays decoded text, so a verified
744
745
  * XML or CSV payload is still reachable downstream. */
745
- declare function parseWebhookBody(raw: Buffer, contentType?: string): unknown;
746
+ export declare function parseWebhookBody(raw: Buffer, contentType?: string): unknown;
747
+ //#endregion
748
+ //#region src/services/canonical-document-id.d.ts
749
+ /**
750
+ * Raised when a caller-supplied identifier cannot be resolved to a canonical
751
+ * document id. Carries no detail on purpose: resolution failures must not act
752
+ * as a document-existence oracle, so consumers map this to their generic
753
+ * fail-closed response.
754
+ */
755
+ export declare class CanonicalDocumentIdResolutionError extends Error {
756
+ constructor();
757
+ }
758
+ export type CanonicalDocumentIdResolver = (identifier: string) => Promise<CanonicalDocumentId>;
759
+ /**
760
+ * The sanctioned string-to-CanonicalDocumentId cast: both the GraphQL layer
761
+ * and server routes must resolve caller identifiers through this helper so
762
+ * decision and data layers always agree on the subject document.
763
+ */
764
+ export declare function createCanonicalDocumentIdResolver(client: Pick<IReactorClient, "resolveIdOrSlug">): CanonicalDocumentIdResolver;
765
+ //#endregion
766
+ //#region src/services/attachment-access.service.d.ts
767
+ /**
768
+ * Whether the active Reactor composition hosts the attachment-reference
769
+ * projection. Reported by the client initializer: the built-in stack always
770
+ * registers it, while a caller-provided Reactor may lack the live
771
+ * registration capability. Consumers of reference evidence must fail closed
772
+ * when it is unavailable.
773
+ */
774
+ export type AttachmentReferenceProjectionCapability = {
775
+ status: "available";
776
+ } | {
777
+ status: "unavailable";
778
+ reason: "live-read-model-registration-unsupported" | "in-process-reactor-module-unavailable" | "initializer-did-not-report";
779
+ };
780
+ /**
781
+ * Outcome of an attachment read authorization. `denied` intentionally covers
782
+ * both an unreadable document and an absent document/ref relationship so the
783
+ * route layer cannot leak which check failed. `projection-unavailable` means
784
+ * the reference index is not being maintained in this composition; it is
785
+ * returned before any document-authorization or reference lookup runs.
786
+ */
787
+ export type AttachmentAccessResult = {
788
+ kind: "allowed";
789
+ documentId: CanonicalDocumentId;
790
+ ref: AttachmentRef;
791
+ } | {
792
+ kind: "denied";
793
+ } | {
794
+ kind: "projection-unavailable";
795
+ };
796
+ export interface AttachmentAccessRequest {
797
+ documentId: string;
798
+ attachmentRef: string;
799
+ userAddress?: string;
800
+ /**
801
+ * The `did:key` of the app instance whose token authenticated the caller.
802
+ * A policy subject is an address AND a key — a grant can name either, and a
803
+ * document's creator is recorded by key — so a decision made from the address
804
+ * alone answers a narrower question than the one being asked.
805
+ */
806
+ appKey?: string;
807
+ }
808
+ /** The reactor's read gate, as the attachment facade consults it. */
809
+ export type AttachmentReadGate = Pick<IReactorClient, "isServed" | "get">;
810
+ /**
811
+ * Which scopes of a document a subject may read, asked by document id.
812
+ *
813
+ * Structural on purpose: the composition that has a policy model to enforce
814
+ * supplies `SyncScopeGate`, and one that does not supplies nothing at all.
815
+ */
816
+ export interface IDocumentScopeGate {
817
+ scopePredicateById(documentId: string, subject: {
818
+ address?: string;
819
+ key?: string;
820
+ }, branch: string, signal?: AbortSignal): Promise<(scope: string) => boolean>;
821
+ }
822
+ export type AttachmentCallerResult = {
823
+ kind: "admitted";
824
+ } | {
825
+ kind: "unauthenticated";
826
+ };
827
+ export interface AttachmentCallerRequest {
828
+ intent: "read" | "write";
829
+ userAddress?: string;
830
+ appKey?: string;
831
+ }
832
+ export interface IAttachmentAccessService {
833
+ canReadAttachment(request: AttachmentAccessRequest): Promise<AttachmentAccessResult>;
834
+ /** Whether this caller may use attachments at all, before any document decides. */
835
+ admitCaller(request: AttachmentCallerRequest): Promise<AttachmentCallerResult>;
836
+ }
837
+ export interface AttachmentAccessServiceOptions {
838
+ /** Refuse writes from a caller with no address. Default `true`. */
839
+ refuseAnonymousWrites?: boolean;
840
+ /** Refuse reads from a caller with no address. Default `false`. */
841
+ refuseAnonymousReads?: boolean;
842
+ }
843
+ /**
844
+ * Composes document authorization with the projected document/ref
845
+ * relationship. Order is fixed: validate ref, resolve the canonical document
846
+ * id, decide the read, check the reactor's read gate serves the document, then
847
+ * check the reference index and that the subject may read a scope whose
848
+ * operations reference the attachment. A denied document never reaches the
849
+ * reference reader, and the facade never touches attachment metadata, storage
850
+ * backends, or presigners.
851
+ *
852
+ * The named document decides alone: an attachment several documents reference
853
+ * is readable through each of them on that document's own terms.
854
+ *
855
+ * The read is decided by the document's own policy when this composition has a
856
+ * model to enforce it with, and by the host's permission tables when it does
857
+ * not. That is not a preference between two equivalent answers: a host running
858
+ * document policies keeps no rows in the permission tables, so asking them
859
+ * about such a document returns whatever the host-wide policy says — under
860
+ * `OPEN`, `true`, for everyone. Serving bytes on that answer hands the file to
861
+ * anyone who learns its hash, which the document's own state may well have told
862
+ * them. Both are kept because they are the two halves of one rule: an
863
+ * attachment is readable by whoever may read the document that references it,
864
+ * and each composition can only express that in its own terms. The caller
865
+ * decision mirrors the routes' `requireAuth`.
866
+ */
867
+ export declare class AttachmentAccessService implements IAttachmentAccessService {
868
+ private readonly resolveCanonicalId;
869
+ private readonly authorization;
870
+ private readonly references;
871
+ private readonly projection;
872
+ private readonly readGate;
873
+ /**
874
+ * Absent below auth enforcement, where there is no policy model to
875
+ * evaluate; the host's permission tables decide alone, exactly as before.
876
+ */
877
+ private readonly scopeGate?;
878
+ private readonly options;
879
+ constructor(resolveCanonicalId: CanonicalDocumentIdResolver, authorization: IAuthorizationService, references: IAttachmentReferenceReader, projection: AttachmentReferenceProjectionCapability, readGate: AttachmentReadGate,
880
+ /**
881
+ * Absent below auth enforcement, where there is no policy model to
882
+ * evaluate; the host's permission tables decide alone, exactly as before.
883
+ */
884
+ scopeGate?: IDocumentScopeGate | undefined, options?: AttachmentAccessServiceOptions);
885
+ admitCaller(request: AttachmentCallerRequest): Promise<AttachmentCallerResult>;
886
+ canReadAttachment(request: AttachmentAccessRequest): Promise<AttachmentAccessResult>;
887
+ /**
888
+ * Whether the caller may read the state the reference lives in.
889
+ *
890
+ * A failure here is rethrown rather than turned into a denial. A read side
891
+ * that is down must not read as a policy: a denial nobody can distinguish
892
+ * from a refusal is one nobody investigates, and the route answers 500 for a
893
+ * reason.
894
+ */
895
+ private canReadDocument;
896
+ }
897
+ //#endregion
898
+ //#region src/services/authorized-attachment.service.d.ts
899
+ /** The reference index is not maintained in this composition. */
900
+ export declare class AttachmentAccessUnavailable extends Error {
901
+ constructor();
902
+ }
903
+ /** The access decision itself failed; the cause is logged, not surfaced. */
904
+ export declare class AttachmentAccessFailed extends Error {
905
+ constructor(cause: unknown);
906
+ }
907
+ /** An `IAttachmentService` whose reads and writes are decided for one subject. */
908
+ export declare class AuthorizedAttachmentService implements IAttachmentService {
909
+ private readonly inner;
910
+ private readonly access;
911
+ private readonly subject;
912
+ private readonly logger;
913
+ constructor(inner: IAttachmentService, access: IAttachmentAccessService, subject: AuthSubject, logger: ILogger);
914
+ /** Hash-first only: an upload-first handle can send after it expires. */
915
+ reserve(options: ReserveAttachmentOptions): Promise<IAttachmentUpload>;
916
+ stat(ref: AttachmentRef, options?: AttachmentStatOptions): Promise<AttachmentHeader>;
917
+ get(ref: AttachmentRef, options?: AbortSignal | AttachmentDownloadOptions): Promise<AttachmentResponse>;
918
+ getDownloadTarget(ref: AttachmentRef, options: AttachmentDownloadTargetOptions): Promise<AttachmentDownloadTarget>;
919
+ private decideRead;
920
+ private admit;
921
+ private accessFailed;
922
+ }
923
+ export interface IAttachmentClientProvider {
924
+ forSubject(subject: AuthSubject): IAttachmentClient;
925
+ }
926
+ export declare class AttachmentClientProvider implements IAttachmentClientProvider {
927
+ private readonly service;
928
+ private readonly access;
929
+ private readonly logger;
930
+ constructor(service: IAttachmentService, access: IAttachmentAccessService, logger: ILogger);
931
+ forSubject(subject: AuthSubject): IAttachmentClient;
932
+ }
746
933
  //#endregion
747
934
  //#region src/graphql/types.d.ts
748
- type SubgraphClass = typeof BaseSubgraph;
749
- type Context = {
935
+ export type SubgraphClass = typeof BaseSubgraph;
936
+ export type Context = {
750
937
  driveId?: string;
751
938
  document?: PHDocument;
752
939
  headers: IncomingHttpHeaders;
@@ -754,11 +941,12 @@ type Context = {
754
941
  user?: {
755
942
  address: string;
756
943
  chainId: number;
757
- networkId: string; /** The did:key of the app instance that issued this request's token. */
944
+ networkId: string;
945
+ /** The did:key of the app instance that issued this request's token. */
758
946
  appKey: string;
759
947
  };
760
948
  };
761
- type ISubgraph = {
949
+ export type ISubgraph = {
762
950
  name: string;
763
951
  /**
764
952
  * @deprecated The GraphQL manager mounts every subgraph under its own base
@@ -776,7 +964,7 @@ type ISubgraph = {
776
964
  onSetup?: () => Promise<void>;
777
965
  onDisconnect?: () => Promise<void>;
778
966
  };
779
- type SubgraphArgs = {
967
+ export type SubgraphArgs = {
780
968
  reactorClient: IReactorClient;
781
969
  /**
782
970
  * The subgraph's package's slice of the HTTP surface, for serving REST
@@ -796,6 +984,11 @@ type SubgraphArgs = {
796
984
  * to the host's permission tables alone.
797
985
  */
798
986
  syncServingGate?: SyncScopeGate;
987
+ /**
988
+ * Attachments as the request's caller may use them. Bind per request with
989
+ * `BaseSubgraph.attachmentsFor(ctx)`.
990
+ */
991
+ attachments?: IAttachmentClientProvider;
799
992
  /**
800
993
  * The host's base path, injected by the GraphQL manager when it constructs
801
994
  * a subgraph. Subgraph code may read it, but routing ignores it: every
@@ -803,7 +996,7 @@ type SubgraphArgs = {
803
996
  */
804
997
  path?: string;
805
998
  };
806
- type GqlSigner = {
999
+ export type GqlSigner = {
807
1000
  user: {
808
1001
  address: string;
809
1002
  networkId: string;
@@ -815,19 +1008,19 @@ type GqlSigner = {
815
1008
  };
816
1009
  signatures: string[];
817
1010
  };
818
- type GqlOperationContext = {
1011
+ export type GqlOperationContext = {
819
1012
  signer: GqlSigner | undefined;
820
1013
  };
821
- type GqlSignerUser = {
1014
+ export type GqlSignerUser = {
822
1015
  address: string;
823
1016
  networkId: string;
824
1017
  chainId: number;
825
1018
  };
826
- type GqlSignerApp = {
1019
+ export type GqlSignerApp = {
827
1020
  name: string;
828
1021
  key: string;
829
1022
  };
830
- type GqlOperation = {
1023
+ export type GqlOperation = {
831
1024
  id: string;
832
1025
  type: string;
833
1026
  index: number;
@@ -838,7 +1031,7 @@ type GqlOperation = {
838
1031
  error: string | undefined;
839
1032
  context: GqlOperationContext;
840
1033
  };
841
- type GqlDocument = {
1034
+ export type GqlDocument = {
842
1035
  __typename?: string;
843
1036
  id: string;
844
1037
  name: string;
@@ -851,7 +1044,7 @@ type GqlDocument = {
851
1044
  state: unknown;
852
1045
  initialState: unknown;
853
1046
  };
854
- type GqlDriveDocument = GqlDocument & {
1047
+ export type GqlDriveDocument = GqlDocument & {
855
1048
  meta: {
856
1049
  preferredEditor?: string;
857
1050
  };
@@ -861,7 +1054,12 @@ type GqlDriveDocument = GqlDocument & {
861
1054
  };
862
1055
  //#endregion
863
1056
  //#region src/graphql/base-subgraph.d.ts
864
- declare class BaseSubgraph implements ISubgraph$1 {
1057
+ /**
1058
+ * The subject a request reads as: its address and the app key its token
1059
+ * carries. Anonymous is an empty subject, never the host's signer.
1060
+ */
1061
+ export declare function callerSubject(user: Context["user"]): AuthSubject;
1062
+ export declare class BaseSubgraph implements ISubgraph$1 {
865
1063
  #private;
866
1064
  name: string;
867
1065
  path: string;
@@ -877,6 +1075,12 @@ declare class BaseSubgraph implements ISubgraph$1 {
877
1075
  authorizationService: IAuthorizationService;
878
1076
  syncServingGate?: SyncScopeGate;
879
1077
  constructor(args: SubgraphArgs$1);
1078
+ /**
1079
+ * An attachment client bound to this request's caller, memoized per request.
1080
+ *
1081
+ * @throws Error when the host provides no attachment client to subgraphs.
1082
+ */
1083
+ attachmentsFor(ctx: Context): IAttachmentClient;
880
1084
  onSetup(): Promise<void>;
881
1085
  onDisconnect(): Promise<void>;
882
1086
  /**
@@ -913,6 +1117,8 @@ declare class BaseSubgraph implements ISubgraph$1 {
913
1117
  * carries the same key. Anonymous callers supply neither.
914
1118
  */
915
1119
  protected viewSubject(ctx: Context): AuthSubject;
1120
+ /** Whether a listing would serve the document to the caller; fails closed. */
1121
+ protected servesDocument(documentId: string, ctx: Context): Promise<boolean>;
916
1122
  /**
917
1123
  * Asserts read access, resolving a slug first. Returns a handle whose
918
1124
  * `fetchIdentifier` the caller reuses for the data fetch; a denial throws.
@@ -931,16 +1137,24 @@ declare class BaseSubgraph implements ISubgraph$1 {
931
1137
  }
932
1138
  //#endregion
933
1139
  //#region src/graphql/analytics-subgraph.d.ts
934
- declare class AnalyticsSubgraph extends BaseSubgraph {
1140
+ export declare class AnalyticsSubgraph extends BaseSubgraph {
1141
+ #private;
935
1142
  analyticsStore: IAnalyticsStore;
936
1143
  analyticsModel: AnalyticsModel;
937
1144
  name: string;
938
- typeDefs: graphql.DocumentNode;
1145
+ typeDefs: import("graphql").DocumentNode;
1146
+ /**
1147
+ * Every analytics field hangs off `Query.analytics`, so gating it gates them
1148
+ * all. Series are aggregates a processor built from many documents and carry
1149
+ * no document to decide on, so only a caller with policy-wide read (anyone
1150
+ * under OPEN, an admin otherwise) may read them.
1151
+ */
939
1152
  resolvers: GraphQLResolverMap<Context$1>;
940
1153
  constructor(args: SubgraphArgs$1);
941
1154
  }
942
- //#endregion
943
- //#region src/graphql/auth/resolvers.d.ts
1155
+ declare namespace resolvers_d_exports {
1156
+ export { DocumentAccessInfo, DocumentProtectionInfo, OperationPermissionsInfo, OperationUserPermission, canExecuteOperation, documentAccess, documentProtection, grantDocumentPermission, grantOperationPermission, operationPermissions, revokeDocumentPermission, revokeOperationPermission, setDocumentProtection, transferDocumentOwnership, userDocumentPermissions };
1157
+ }
944
1158
  type DocumentAccessInfo = {
945
1159
  documentId: string;
946
1160
  permissions: Array<{
@@ -952,6 +1166,33 @@ type DocumentAccessInfo = {
952
1166
  updatedAt: Date;
953
1167
  }>;
954
1168
  };
1169
+ declare function documentAccess(service: DocumentPermissionService, authorizationService: IAuthorizationService, args: {
1170
+ documentId: CanonicalDocumentId;
1171
+ }, userAddress: string | undefined): Promise<DocumentAccessInfo>;
1172
+ declare function userDocumentPermissions(service: DocumentPermissionService, userAddress: string): Promise<Array<{
1173
+ documentId: string;
1174
+ userAddress: string;
1175
+ permission: DocumentPermissionLevel;
1176
+ grantedBy: string;
1177
+ createdAt: Date;
1178
+ updatedAt: Date;
1179
+ }>>;
1180
+ declare function grantDocumentPermission(service: DocumentPermissionService, authorizationService: IAuthorizationService, args: {
1181
+ documentId: CanonicalDocumentId;
1182
+ userAddress: string;
1183
+ permission: DocumentPermissionLevel;
1184
+ }, grantedByAddress: string | undefined): Promise<{
1185
+ documentId: string;
1186
+ userAddress: string;
1187
+ permission: DocumentPermissionLevel;
1188
+ grantedBy: string;
1189
+ createdAt: Date;
1190
+ updatedAt: Date;
1191
+ }>;
1192
+ declare function revokeDocumentPermission(service: DocumentPermissionService, authorizationService: IAuthorizationService, args: {
1193
+ documentId: CanonicalDocumentId;
1194
+ userAddress: string;
1195
+ }, revokedByAddress: string | undefined): Promise<boolean>;
955
1196
  type OperationUserPermission = {
956
1197
  documentId: string;
957
1198
  operationType: string;
@@ -964,13 +1205,46 @@ type OperationPermissionsInfo = {
964
1205
  operationType: string;
965
1206
  userPermissions: OperationUserPermission[];
966
1207
  };
1208
+ declare function operationPermissions(service: DocumentPermissionService, authorizationService: IAuthorizationService, args: {
1209
+ documentId: CanonicalDocumentId;
1210
+ operationType: string;
1211
+ }, userAddress: string | undefined): Promise<OperationPermissionsInfo>;
1212
+ declare function canExecuteOperation(authorizationService: IAuthorizationService, args: {
1213
+ documentId: CanonicalDocumentId;
1214
+ operationType: string;
1215
+ }, userAddress: string | undefined): Promise<boolean>;
1216
+ declare function grantOperationPermission(service: DocumentPermissionService, authorizationService: IAuthorizationService, args: {
1217
+ documentId: CanonicalDocumentId;
1218
+ operationType: string;
1219
+ userAddress: string;
1220
+ }, grantedByAddress: string | undefined): Promise<OperationUserPermission>;
1221
+ declare function revokeOperationPermission(service: DocumentPermissionService, authorizationService: IAuthorizationService, args: {
1222
+ documentId: CanonicalDocumentId;
1223
+ operationType: string;
1224
+ userAddress: string;
1225
+ }, revokedByAddress: string | undefined): Promise<boolean>;
967
1226
  type DocumentProtectionInfo = {
968
1227
  documentId: string;
969
1228
  protected: boolean;
970
1229
  ownerAddress: string | null;
971
1230
  };
1231
+ declare function documentProtection(service: DocumentPermissionService, authorizationService: IAuthorizationService, args: {
1232
+ documentId: CanonicalDocumentId;
1233
+ }, userAddress: string | undefined): Promise<DocumentProtectionInfo>;
1234
+ declare function setDocumentProtection(service: DocumentPermissionService, authorizationService: IAuthorizationService, args: {
1235
+ documentId: CanonicalDocumentId;
1236
+ protected: boolean;
1237
+ }, userAddress: string | undefined): Promise<DocumentProtectionInfo>;
1238
+ declare function transferDocumentOwnership(service: DocumentPermissionService, authorizationService: IAuthorizationService, args: {
1239
+ documentId: CanonicalDocumentId;
1240
+ newOwnerAddress: string;
1241
+ }, userAddress: string | undefined): Promise<DocumentProtectionInfo>;
972
1242
  //#endregion
973
1243
  //#region src/graphql/auth/subgraph.d.ts
1244
+ type DocumentArgs = {
1245
+ documentIdOrSlug?: string | null;
1246
+ documentId?: string | null;
1247
+ };
974
1248
  /**
975
1249
  * Auth Subgraph - handles all document permission and authorization operations
976
1250
  *
@@ -980,17 +1254,16 @@ type DocumentProtectionInfo = {
980
1254
  * - Document protection and ownership
981
1255
  * - Operation-level permissions (fine-grained operation control)
982
1256
  */
983
- declare class AuthSubgraph extends BaseSubgraph {
1257
+ export declare class AuthSubgraph extends BaseSubgraph {
1258
+ #private;
984
1259
  private logger;
985
1260
  constructor(args: SubgraphArgs);
986
1261
  name: string;
987
1262
  hasSubscriptions: boolean;
988
- typeDefs: graphql.DocumentNode;
1263
+ typeDefs: import("graphql").DocumentNode;
989
1264
  resolvers: {
990
1265
  Query: {
991
- documentAccess: (_parent: unknown, args: {
992
- documentId: string;
993
- }, ctx: {
1266
+ documentAccess: (_parent: unknown, args: DocumentArgs, ctx: {
994
1267
  user?: {
995
1268
  address: string;
996
1269
  };
@@ -1007,49 +1280,42 @@ declare class AuthSubgraph extends BaseSubgraph {
1007
1280
  createdAt: Date;
1008
1281
  updatedAt: Date;
1009
1282
  }[]>;
1010
- operationPermissions: (_parent: unknown, args: {
1011
- documentId: string;
1283
+ operationPermissions: (_parent: unknown, args: DocumentArgs & {
1012
1284
  operationType: string;
1013
1285
  }, ctx: {
1014
1286
  user?: {
1015
1287
  address: string;
1016
1288
  };
1017
1289
  }) => Promise<OperationPermissionsInfo>;
1018
- canExecuteOperation: (_parent: unknown, args: {
1019
- documentId: string;
1290
+ canExecuteOperation: (_parent: unknown, args: DocumentArgs & {
1020
1291
  operationType: string;
1021
1292
  }, ctx: {
1022
1293
  user?: {
1023
1294
  address: string;
1024
1295
  };
1025
1296
  }) => Promise<boolean>;
1026
- documentProtection: (_parent: unknown, args: {
1027
- documentId: string;
1028
- }, ctx: {
1297
+ documentProtection: (_parent: unknown, args: DocumentArgs, ctx: {
1029
1298
  user?: {
1030
1299
  address: string;
1031
1300
  };
1032
1301
  }) => Promise<DocumentProtectionInfo>;
1033
1302
  };
1034
1303
  Mutation: {
1035
- setDocumentProtection: (_parent: unknown, args: {
1036
- documentId: string;
1304
+ setDocumentProtection: (_parent: unknown, args: DocumentArgs & {
1037
1305
  protected: boolean;
1038
1306
  }, ctx: {
1039
1307
  user?: {
1040
1308
  address: string;
1041
1309
  };
1042
1310
  }) => Promise<DocumentProtectionInfo>;
1043
- transferDocumentOwnership: (_parent: unknown, args: {
1044
- documentId: string;
1311
+ transferDocumentOwnership: (_parent: unknown, args: DocumentArgs & {
1045
1312
  newOwnerAddress: string;
1046
1313
  }, ctx: {
1047
1314
  user?: {
1048
1315
  address: string;
1049
1316
  };
1050
1317
  }) => Promise<DocumentProtectionInfo>;
1051
- grantDocumentPermission: (_parent: unknown, args: {
1052
- documentId: string;
1318
+ grantDocumentPermission: (_parent: unknown, args: DocumentArgs & {
1053
1319
  userAddress: string;
1054
1320
  permission: string;
1055
1321
  }, ctx: {
@@ -1064,16 +1330,14 @@ declare class AuthSubgraph extends BaseSubgraph {
1064
1330
  createdAt: Date;
1065
1331
  updatedAt: Date;
1066
1332
  }>;
1067
- revokeDocumentPermission: (_parent: unknown, args: {
1068
- documentId: string;
1333
+ revokeDocumentPermission: (_parent: unknown, args: DocumentArgs & {
1069
1334
  userAddress: string;
1070
1335
  }, ctx: {
1071
1336
  user?: {
1072
1337
  address: string;
1073
1338
  };
1074
1339
  }) => Promise<boolean>;
1075
- grantOperationPermission: (_parent: unknown, args: {
1076
- documentId: string;
1340
+ grantOperationPermission: (_parent: unknown, args: DocumentArgs & {
1077
1341
  operationType: string;
1078
1342
  userAddress: string;
1079
1343
  }, ctx: {
@@ -1081,8 +1345,7 @@ declare class AuthSubgraph extends BaseSubgraph {
1081
1345
  address: string;
1082
1346
  };
1083
1347
  }) => Promise<OperationUserPermission>;
1084
- revokeOperationPermission: (_parent: unknown, args: {
1085
- documentId: string;
1348
+ revokeOperationPermission: (_parent: unknown, args: DocumentArgs & {
1086
1349
  operationType: string;
1087
1350
  userAddress: string;
1088
1351
  }, ctx: {
@@ -1096,19 +1359,19 @@ declare class AuthSubgraph extends BaseSubgraph {
1096
1359
  }
1097
1360
  //#endregion
1098
1361
  //#region src/graphql/gateway/auth-middleware.d.ts
1099
- type AuthFetchMiddleware = (handler: FetchHandler) => FetchHandler;
1362
+ export type AuthFetchMiddleware = (handler: FetchHandler) => FetchHandler;
1100
1363
  /** Internal — only `graphql-manager.ts` should call this. */
1101
- declare function getAuthContext(request: globalThis.Request): AuthContext | undefined;
1102
- declare function createAuthFetchMiddleware(authService: AuthService): AuthFetchMiddleware;
1364
+ export declare function getAuthContext(request: globalThis.Request): AuthContext | undefined;
1365
+ export declare function createAuthFetchMiddleware(authService: AuthService): AuthFetchMiddleware;
1103
1366
  //#endregion
1104
1367
  //#region src/graphql/gateway/factory.d.ts
1105
- type GatewayAdapterType = "apollo" | "mercurius" | "stitching";
1106
- type HttpAdapterType = "express" | "fastify";
1107
- declare function createGatewayAdapter(type: GatewayAdapterType, logger: ILogger): Promise<IGatewayAdapter<Context>>;
1108
- type HttpAdapterSetup = {
1368
+ export type GatewayAdapterType = "apollo" | "mercurius" | "stitching";
1369
+ export type HttpAdapterType = "express" | "fastify";
1370
+ export declare function createGatewayAdapter(type: GatewayAdapterType, logger: ILogger): Promise<IGatewayAdapter<Context>>;
1371
+ export type HttpAdapterSetup = {
1109
1372
  adapter: IHttpAdapter;
1110
1373
  };
1111
- declare function createHttpAdapter(type: HttpAdapterType): Promise<HttpAdapterSetup>;
1374
+ export declare function createHttpAdapter(type: HttpAdapterType): Promise<HttpAdapterSetup>;
1112
1375
  //#endregion
1113
1376
  //#region src/graphql/gateway/drive-ownership-cache.d.ts
1114
1377
  /**
@@ -1136,33 +1399,43 @@ declare class DriveOwnershipCache {
1136
1399
  type RequireAuthFetchMiddleware = (handler: FetchHandler) => FetchHandler;
1137
1400
  //#endregion
1138
1401
  //#region src/graphql/graphql-manager.d.ts
1139
- type GraphqlManagerFeatureFlags = {
1402
+ export type GraphqlManagerFeatureFlags = {
1140
1403
  enableDocumentModelSubgraphs?: boolean;
1141
1404
  };
1142
- declare function createWsAuthHandlers(opts: {
1143
- authService?: AuthService; /** Whether anonymous callers are refused; read at call time, not at build time. */
1405
+ /** Dependencies and settings for a {@link GraphQLManager}. */
1406
+ export type GraphQLManagerOptions = {
1407
+ path: string;
1408
+ httpServer: http.Server;
1409
+ wsServer: WebSocketServer;
1410
+ reactorClient: IReactorClient;
1411
+ relationalDb: IRelationalDb;
1412
+ analyticsStore: IAnalyticsStore;
1413
+ syncManager: ISyncManager;
1414
+ logger: ILogger;
1415
+ httpAdapter: IHttpAdapter;
1416
+ gatewayAdapter: IGatewayAdapter<Context$1>;
1417
+ authService?: AuthService;
1418
+ documentPermissionService?: DocumentPermissionService;
1419
+ /** Defaults to every flag on. */
1420
+ featureFlags?: GraphqlManagerFeatureFlags;
1421
+ /** Defaults to 4001. */
1422
+ port?: number;
1423
+ authorizationService: IAuthorizationService;
1424
+ /** Resolvers dispatch to it for reactor-drive parents. */
1425
+ reactorDriveClient?: IDriveClient;
1426
+ syncServingGate?: SyncScopeGate;
1427
+ httpRoutes?: HttpRouteService;
1428
+ attachments?: IAttachmentClientProvider;
1429
+ };
1430
+ export declare function createWsAuthHandlers(opts: {
1431
+ authService?: AuthService;
1432
+ /** Whether anonymous callers are refused; read at call time, not at build time. */
1144
1433
  requireAuthenticatedCaller: () => boolean;
1145
1434
  logger: ILogger;
1146
1435
  buildContext: (connectionParams: Record<string, unknown>, user?: User) => Context$1;
1147
1436
  }): WsHandlers<Context$1>;
1148
- declare class GraphQLManager {
1437
+ export declare class GraphQLManager {
1149
1438
  #private;
1150
- private readonly path;
1151
- private readonly httpServer;
1152
- private readonly wsServer;
1153
- private readonly reactorClient;
1154
- private readonly relationalDb;
1155
- private readonly analyticsStore;
1156
- private readonly syncManager;
1157
- private readonly logger;
1158
- private readonly httpAdapter;
1159
- private readonly gatewayAdapter;
1160
- private readonly authService?;
1161
- private readonly documentPermissionService?;
1162
- private readonly featureFlags;
1163
- private readonly port;
1164
- private readonly syncServingGate?;
1165
- private readonly httpRoutes?;
1166
1439
  private initialized;
1167
1440
  private coreSubgraphsMap;
1168
1441
  private contextFields;
@@ -1174,8 +1447,8 @@ declare class GraphQLManager {
1174
1447
  private readonly subgraphHandlerCache;
1175
1448
  /** subgraphPath → the http adapter handle of its mounted route. */
1176
1449
  private readonly subgraphRouteHandles;
1177
- /** Handle of the currently mounted supergraph SSE route, if any. */
1178
- private sseRouteHandle;
1450
+ /** Mounted SSE routes, keyed by path: the supergraph's and each subgraph's. */
1451
+ private readonly sseRouteHandles;
1179
1452
  /**
1180
1453
  * Package name → the subgraph instances registered from it, keyed by
1181
1454
  * subgraph name. Tracks the package association so that removed packages
@@ -1189,7 +1462,24 @@ declare class GraphQLManager {
1189
1462
  */
1190
1463
  readonly reactorDriveClient?: IDriveClient;
1191
1464
  private readonly authorizationService;
1192
- constructor(path: string, httpServer: http.Server, wsServer: WebSocketServer, reactorClient: IReactorClient, relationalDb: IRelationalDb, analyticsStore: IAnalyticsStore, syncManager: ISyncManager, logger: ILogger, httpAdapter: IHttpAdapter, gatewayAdapter: IGatewayAdapter<Context$1>, authService?: AuthService | undefined, documentPermissionService?: DocumentPermissionService | undefined, featureFlags?: GraphqlManagerFeatureFlags, port?: number, authorizationService?: IAuthorizationService, reactorDriveClient?: IDriveClient, syncServingGate?: SyncScopeGate | undefined, httpRoutes?: HttpRouteService | undefined);
1465
+ private readonly path;
1466
+ private readonly httpServer;
1467
+ private readonly wsServer;
1468
+ private readonly reactorClient;
1469
+ private readonly relationalDb;
1470
+ private readonly analyticsStore;
1471
+ private readonly syncManager;
1472
+ private readonly logger;
1473
+ private readonly httpAdapter;
1474
+ private readonly gatewayAdapter;
1475
+ private readonly authService?;
1476
+ private readonly documentPermissionService?;
1477
+ private readonly featureFlags;
1478
+ private readonly port;
1479
+ private readonly syncServingGate?;
1480
+ private readonly httpRoutes?;
1481
+ private readonly attachments?;
1482
+ constructor(options: GraphQLManagerOptions);
1193
1483
  init(coreSubgraphs: SubgraphClass$1[], authMiddleware?: AuthFetchMiddleware, requireAuthMiddleware?: RequireAuthFetchMiddleware): Promise<void>;
1194
1484
  /**
1195
1485
  * Regenerate document model subgraphs when models are dynamically loaded.
@@ -1256,21 +1546,21 @@ declare class GraphQLManager {
1256
1546
  }
1257
1547
  //#endregion
1258
1548
  //#region src/services/package-storage.d.ts
1259
- interface InstalledPackageInfo {
1549
+ export interface InstalledPackageInfo {
1260
1550
  name: string;
1261
1551
  version?: string;
1262
1552
  registryUrl: string;
1263
1553
  installedAt: Date;
1264
1554
  documentTypes: string[];
1265
1555
  }
1266
- interface IPackageStorage {
1556
+ export interface IPackageStorage {
1267
1557
  get(name: string): Promise<InstalledPackageInfo | undefined>;
1268
1558
  getAll(): Promise<InstalledPackageInfo[]>;
1269
1559
  set(name: string, info: InstalledPackageInfo): Promise<void>;
1270
1560
  delete(name: string): Promise<boolean>;
1271
1561
  has(name: string): Promise<boolean>;
1272
1562
  }
1273
- declare class InMemoryPackageStorage implements IPackageStorage {
1563
+ export declare class InMemoryPackageStorage implements IPackageStorage {
1274
1564
  private packages;
1275
1565
  get(name: string): Promise<InstalledPackageInfo | undefined>;
1276
1566
  getAll(): Promise<InstalledPackageInfo[]>;
@@ -1279,101 +1569,48 @@ declare class InMemoryPackageStorage implements IPackageStorage {
1279
1569
  has(name: string): Promise<boolean>;
1280
1570
  }
1281
1571
  //#endregion
1282
- //#region src/services/canonical-document-id.d.ts
1283
- /**
1284
- * Raised when a caller-supplied identifier cannot be resolved to a canonical
1285
- * document id. Carries no detail on purpose: resolution failures must not act
1286
- * as a document-existence oracle, so consumers map this to their generic
1287
- * fail-closed response.
1288
- */
1289
- declare class CanonicalDocumentIdResolutionError extends Error {
1290
- constructor();
1291
- }
1292
- type CanonicalDocumentIdResolver = (identifier: string) => Promise<CanonicalDocumentId>;
1293
- /**
1294
- * The sanctioned string-to-CanonicalDocumentId cast: both the GraphQL layer
1295
- * and server routes must resolve caller identifiers through this helper so
1296
- * decision and data layers always agree on the subject document.
1297
- */
1298
- declare function createCanonicalDocumentIdResolver(client: Pick<IReactorClient, "resolveIdOrSlug">): CanonicalDocumentIdResolver;
1299
- //#endregion
1300
- //#region src/services/attachment-access.service.d.ts
1301
- /**
1302
- * Whether the active Reactor composition hosts the attachment-reference
1303
- * projection. Reported by the client initializer: the built-in stack always
1304
- * registers it, while a caller-provided Reactor may lack the live
1305
- * registration capability. Consumers of reference evidence must fail closed
1306
- * when it is unavailable.
1307
- */
1308
- type AttachmentReferenceProjectionCapability = {
1309
- status: "available";
1310
- } | {
1311
- status: "unavailable";
1312
- reason: "live-read-model-registration-unsupported" | "in-process-reactor-module-unavailable" | "initializer-did-not-report";
1313
- };
1314
- /**
1315
- * Outcome of an attachment read authorization. `denied` intentionally covers
1316
- * both an unreadable document and an absent document/ref relationship so the
1317
- * route layer cannot leak which check failed. `projection-unavailable` means
1318
- * the reference index is not being maintained in this composition; it is
1319
- * returned before any document-authorization or reference lookup runs.
1320
- */
1321
- type AttachmentAccessResult = {
1322
- kind: "allowed";
1323
- documentId: CanonicalDocumentId;
1324
- ref: AttachmentRef;
1325
- } | {
1326
- kind: "denied";
1327
- } | {
1328
- kind: "projection-unavailable";
1329
- };
1330
- interface AttachmentAccessRequest {
1331
- documentId: string;
1332
- attachmentRef: string;
1333
- userAddress?: string;
1334
- }
1335
- interface IAttachmentAccessService {
1336
- canReadAttachment(request: AttachmentAccessRequest): Promise<AttachmentAccessResult>;
1337
- }
1338
- /**
1339
- * Composes document authorization with the projected document/ref
1340
- * relationship. Order is fixed: validate ref, resolve the canonical document
1341
- * id, check `canRead`, then check the reference index. A denied document
1342
- * never reaches the reference reader, and the facade never touches
1343
- * attachment metadata, storage backends, or presigners.
1344
- */
1345
- declare class AttachmentAccessService implements IAttachmentAccessService {
1346
- private readonly resolveCanonicalId;
1347
- private readonly authorization;
1348
- private readonly references;
1349
- private readonly projection;
1350
- constructor(resolveCanonicalId: CanonicalDocumentIdResolver, authorization: IAuthorizationService, references: IAttachmentReferenceReader, projection: AttachmentReferenceProjectionCapability);
1351
- canReadAttachment(request: AttachmentAccessRequest): Promise<AttachmentAccessResult>;
1352
- }
1353
- //#endregion
1354
1572
  //#region src/types.d.ts
1355
1573
  /**
1356
1574
  * Module hosts pass to processor factories: the reactor-level module plus the
1357
1575
  * attachment client, which shared and reactor cannot name.
1358
1576
  */
1359
- interface IProcessorHostModule extends IReactorProcessorHostModuleBase {
1577
+ export interface IProcessorHostModule extends IReactorProcessorHostModuleBase {
1360
1578
  attachments: IAttachmentClient;
1361
1579
  }
1362
1580
  /** @deprecated Use `IProcessorHostModule`. */
1363
- type IReactorProcessorHostModule = IProcessorHostModule;
1364
- type ReadinessGate = {
1581
+ export type IReactorProcessorHostModule = IProcessorHostModule;
1582
+ export type ReadinessGate = {
1365
1583
  isReady: () => boolean;
1366
1584
  markReady: () => void;
1367
1585
  };
1368
- type API = {
1369
- httpAdapter: IHttpAdapter; /** Hands each package a namespaced slice of the HTTP surface. */
1586
+ export type API = {
1587
+ httpAdapter: IHttpAdapter;
1588
+ /** Hands each package a namespaced slice of the HTTP surface. */
1370
1589
  httpRoutes: HttpRouteService;
1371
1590
  graphqlManager: GraphQLManager$1;
1372
1591
  packages: IPackageManager;
1373
1592
  attachments: AttachmentBuildResult;
1374
- attachmentReferenceIndex: AttachmentReferenceIndexBuildResult; /** Document-authorized attachment read decisions; see AttachmentAccessService. */
1593
+ attachmentReferenceIndex: AttachmentReferenceIndexBuildResult;
1594
+ /** Document-authorized attachment read decisions; see AttachmentAccessService. */
1375
1595
  attachmentAccess: IAttachmentAccessService;
1596
+ /** Caller-bound attachment clients for subgraphs the host constructs itself. */
1597
+ attachmentClientProvider: IAttachmentClientProvider;
1376
1598
  authService: AuthService | undefined;
1599
+ /**
1600
+ * Whether this deployment refuses anonymous callers
1601
+ * (`REQUIRE_AUTHENTICATED_CALLER`). Carried here because routes mounted
1602
+ * straight on the HTTP adapter never pass the GraphQL fetch chain, so its
1603
+ * require-auth middleware cannot reach them: a host-composed route reads the
1604
+ * resolved value from the API rather than the environment, so one variable
1605
+ * cannot end up half applied.
1606
+ */
1607
+ requireAuthenticatedCaller: boolean;
1608
+ /** The service the subgraphs decide with, for a component the host composes
1609
+ * after boot: it must authorize with this one, not one of its own. */
1610
+ authorizationService: IAuthorizationService;
1611
+ /** The read-model relational store, for the same host-composed component:
1612
+ * its tables belong in this database and nothing else hands one over. */
1613
+ relationalDb: IRelationalDb$1;
1377
1614
  /**
1378
1615
  * Releases resources owned by the API: shuts down the GraphQL gateway,
1379
1616
  * closes WebSocket and HTTP servers, destroys knex pools, and closes any
@@ -1383,25 +1620,75 @@ type API = {
1383
1620
  */
1384
1621
  dispose: () => Promise<void>;
1385
1622
  };
1386
- type ReactorModule = {
1623
+ export type ReactorModule = {
1387
1624
  analyticsStore: IAnalyticsStore;
1388
1625
  relationalDb: IRelationalDb$1;
1389
1626
  };
1390
1627
  /** @deprecated Use `ProcessorFactory`. */
1391
- type ProcessorDriveFactory = ProcessorFactory;
1628
+ export type ProcessorDriveFactory = ProcessorFactory;
1392
1629
  /** Builds a per-drive factory from the host module (e.g. vetra `processorFactory`). */
1393
- type ProcessorFactoryBuilder = ProcessorFactoryBuilder$1<IProcessorHostModule>;
1630
+ export type ProcessorFactoryBuilder = ProcessorFactoryBuilder$1<IProcessorHostModule>;
1394
1631
  /** Multiple initializers per package name (e.g. Switchboard `processors` option). */
1395
- type Processor = ProcessorFactoryBuilder[];
1632
+ export type Processor = ProcessorFactoryBuilder[];
1633
+ //#endregion
1634
+ //#region src/packages/registry-cache.d.ts
1635
+ /** Entry files a registry package's node build is served from, CDN-relative. */
1636
+ declare const PACKAGE_ENTRIES: {
1637
+ readonly documentModels: "node/document-models/index.mjs";
1638
+ readonly subgraphs: "node/subgraphs/index.mjs";
1639
+ readonly processors: "node/processors/index.mjs";
1640
+ };
1641
+ type PackageEntryKind = keyof typeof PACKAGE_ENTRIES;
1642
+ type CachedRegistryPackage = {
1643
+ name: string;
1644
+ version: string;
1645
+ dir: string;
1646
+ /** Absolute entry files inside `dir`, for the entries the package serves. */
1647
+ entries: Partial<Record<PackageEntryKind, string>>;
1648
+ source: "cache" | "download";
1649
+ };
1650
+ type RegistryPackageCacheOptions = {
1651
+ registryUrl: string;
1652
+ cacheDir?: string;
1653
+ logger?: ILogger;
1654
+ fetchTimeoutMs?: number;
1655
+ };
1656
+ declare class RegistryPackageCache {
1657
+ readonly cacheDir: string;
1658
+ private readonly registryUrl;
1659
+ private readonly logger;
1660
+ private readonly fetchTimeoutMs;
1661
+ private readonly inFlight;
1662
+ private readonly verified;
1663
+ constructor(options: RegistryPackageCacheOptions);
1664
+ /** Base URL every file of `name@version` is fetched under. */
1665
+ baseUrl(name: string, version: string): string;
1666
+ entryDir(name: string, version: string): string;
1667
+ /** Complete cached versions of `name`, newest-agnostic. */
1668
+ cachedVersions(name: string): Promise<string[]>;
1669
+ ensurePackage(name: string, version: string): Promise<CachedRegistryPackage>;
1670
+ private resolveEntry;
1671
+ /** The manifest when every listed file is present and hashes to it. */
1672
+ private verify;
1673
+ private discard;
1674
+ private fill;
1675
+ private download;
1676
+ private dependenciesOf;
1677
+ private fetchBounded;
1678
+ private linkBareImports;
1679
+ }
1396
1680
  //#endregion
1397
1681
  //#region src/packages/http-loader.d.ts
1398
- interface HttpPackageLoaderOptions {
1682
+ export interface HttpPackageLoaderOptions {
1399
1683
  registryUrl: string;
1684
+ /** Where document-model graphs are cached; `<cwd>/.ph/registry-packages` by default. */
1685
+ cacheDir?: string;
1400
1686
  }
1401
- interface HttpPackageLoaderLogger {
1687
+ export interface HttpPackageLoaderLogger {
1402
1688
  info: (msg: string) => void;
1403
1689
  error: (msg: string, err: unknown) => void;
1404
1690
  }
1691
+ export declare function piecesBaseUrl(registryUrl: string, packageName: string, version: string): string;
1405
1692
  type SubgraphsExport = Record<string, SubgraphClass$1>;
1406
1693
  /**
1407
1694
  * Extract subgraph classes from the imported subgraphs/index.mjs module shape.
@@ -1409,11 +1696,13 @@ type SubgraphsExport = Record<string, SubgraphClass$1>;
1409
1696
  * The published bundle uses `export * as Foo from "./file"`, which Node turns
1410
1697
  * into `{ Foo: <namespace>, … }`. The inner namespace's keys come from the
1411
1698
  * source file's named exports — typically `Subgraph` / `default` / the class
1412
- * name itself — so the shape varies. Flatten one level and keep callables.
1699
+ * name itself — so the shape varies.
1413
1700
  *
1414
- * Exported for direct unit testing against synthetic module shapes.
1701
+ * Delegates to the unified acceptance rule every package loader shares
1702
+ * (`extractSubgraphs`), kept as an export because it is part of the package's
1703
+ * public API and is unit-tested directly against synthetic module shapes.
1415
1704
  */
1416
- declare function extractSubgraphsFromModule(module: Record<string, SubgraphsExport>): SubgraphClass$1[];
1705
+ export declare function extractSubgraphsFromModule(module: Record<string, SubgraphsExport>): SubgraphClass$1[];
1417
1706
  /**
1418
1707
  * Loads document models, subgraphs, and processors from an HTTP registry.
1419
1708
  * Uses Node.js module loader hooks to import directly from HTTP URLs.
@@ -1422,11 +1711,13 @@ declare function extractSubgraphsFromModule(module: Record<string, SubgraphsExpo
1422
1711
  * import { register } from "node:module";
1423
1712
  * register("@powerhousedao/reactor-api/https-hooks", import.meta.url);
1424
1713
  */
1425
- declare class HttpPackageLoader implements IPackageLoader {
1714
+ export declare class HttpPackageLoader implements IPackageLoader {
1426
1715
  private readonly registryUrl;
1427
1716
  private readonly logger;
1428
1717
  readonly name = "HttpPackageLoader";
1429
1718
  readonly documentModelLoader: HttpDocumentModelLoader;
1719
+ readonly cache: RegistryPackageCache;
1720
+ private readonly versions;
1430
1721
  constructor(options: HttpPackageLoaderOptions);
1431
1722
  /**
1432
1723
  * Load document models from a package in the HTTP registry.
@@ -1436,33 +1727,42 @@ declare class HttpPackageLoader implements IPackageLoader {
1436
1727
  * Parse a package specifier like "@scope/pkg@tag" into name and optional tag.
1437
1728
  */
1438
1729
  private parsePackageSpec;
1730
+ resolveVersion(packageSpec: string): Promise<string | undefined>;
1731
+ private lookUpVersion;
1732
+ /** Caches the pinned version of `packageSpec` on disk. */
1733
+ cachePackage(packageSpec: string): Promise<CachedRegistryPackage>;
1734
+ /** One entry module of the package, plus the cached file it came from. */
1735
+ importEntry(packageSpec: string, kind: PackageEntryKind): Promise<{
1736
+ module: Record<string, unknown>;
1737
+ filePath?: string;
1738
+ }>;
1739
+ importDocumentModels(packageSpec: string): Promise<{
1740
+ module: Record<string, unknown>;
1741
+ filePath?: string;
1742
+ }>;
1439
1743
  loadDocumentModels(packageSpec: string): Promise<DocumentModelModule[]>;
1440
1744
  loadUpgradeManifests(packageSpec: string): Promise<UpgradeManifest<readonly number[]>[]>;
1441
1745
  loadSubgraphs(packageSpec: string): Promise<SubgraphClass$1[]>;
1442
1746
  loadProcessors(packageSpec: string): Promise<ProcessorFactoryBuilder | null>;
1747
+ loadPieces(packageSpec: string): Promise<PackagePieceEntry[]>;
1443
1748
  /**
1444
1749
  * Load document models from multiple packages.
1445
1750
  * Continues loading even if some packages fail.
1446
1751
  */
1447
1752
  loadPackages(packageNames: string[], logger?: HttpPackageLoaderLogger): Promise<DocumentModelModule[]>;
1448
- private isValidPackageName;
1753
+ packageVersion(packageSpec: string): Promise<string | undefined>;
1449
1754
  }
1450
- /**
1451
- * Returns live modules (host-only sources): dynamically loaded models are
1452
- * registered on the host registry but never reach executor worker threads.
1453
- * Making them worker-executable means returning an importable source here
1454
- * (the CDN URL as a package specifier, given process-wide https hooks).
1455
- */
1456
- declare class HttpDocumentModelLoader implements IDocumentModelLoader {
1755
+ export declare class HttpDocumentModelLoader implements IDocumentModelLoader {
1457
1756
  private readonly loader;
1458
1757
  private readonly logger;
1459
1758
  private readonly documentTypeCache;
1460
1759
  private readonly packageModulesCache;
1760
+ private readonly packageFileCache;
1461
1761
  private onModelLoaded?;
1462
1762
  constructor(loader: HttpPackageLoader);
1463
1763
  setOnModelLoaded(callback: (model: DocumentModelModule) => void): void;
1464
1764
  clearCache(): void;
1465
- load(documentType: string): Promise<DocumentModelModule>;
1765
+ load(documentType: string): Promise<DocumentModelSource>;
1466
1766
  private findPackageByDocumentType;
1467
1767
  getLoadedPackages(): string[];
1468
1768
  getPackageModules(packageName: string): DocumentModelModule[] | undefined;
@@ -1470,18 +1770,18 @@ declare class HttpDocumentModelLoader implements IDocumentModelLoader {
1470
1770
  }
1471
1771
  //#endregion
1472
1772
  //#region src/services/package-management.service.d.ts
1473
- interface InstallPackageResult {
1773
+ export interface InstallPackageResult {
1474
1774
  package: InstalledPackageInfo;
1475
1775
  documentModelsLoaded: number;
1476
1776
  }
1477
- interface PackageManagementServiceOptions {
1777
+ export interface PackageManagementServiceOptions {
1478
1778
  storage?: IPackageStorage;
1479
1779
  defaultRegistryUrl?: string;
1480
1780
  httpLoader?: HttpPackageLoader;
1481
1781
  documentModelRegistry?: IDocumentModelRegistry;
1482
1782
  packageManager?: IPackageManager;
1483
1783
  }
1484
- declare class PackageManagementService {
1784
+ export declare class PackageManagementService {
1485
1785
  private readonly storage;
1486
1786
  private readonly defaultRegistryUrl?;
1487
1787
  private readonly httpLoader?;
@@ -1504,13 +1804,13 @@ declare class PackageManagementService {
1504
1804
  interface PackagesSubgraphArgs extends SubgraphArgs {
1505
1805
  packageManagementService: PackageManagementService;
1506
1806
  }
1507
- declare class PackagesSubgraph extends BaseSubgraph {
1807
+ export declare class PackagesSubgraph extends BaseSubgraph {
1508
1808
  private logger;
1509
1809
  private packageManagementService;
1510
1810
  constructor(args: PackagesSubgraphArgs);
1511
1811
  name: string;
1512
1812
  hasSubscriptions: boolean;
1513
- typeDefs: graphql.DocumentNode;
1813
+ typeDefs: import("graphql").DocumentNode;
1514
1814
  resolvers: {
1515
1815
  Query: {
1516
1816
  Packages: () => {};
@@ -1566,7 +1866,7 @@ declare class PackagesSubgraph extends BaseSubgraph {
1566
1866
  * `{ document, variables, headers? }` with `variables` and `headers`
1567
1867
  * already JSON-stringified.
1568
1868
  */
1569
- interface ExplorerUrlState {
1869
+ export interface ExplorerUrlState {
1570
1870
  /** The GraphQL query to prefill in GraphiQL. */
1571
1871
  query: string;
1572
1872
  /** JSON-stringified variables, as stored in the payload. */
@@ -1578,24 +1878,24 @@ interface ExplorerUrlState {
1578
1878
  * Decodes an `explorerURLState` URL parameter. Returns `null` for anything
1579
1879
  * that is not a valid lz-compressed payload with a non-empty `document`.
1580
1880
  */
1581
- declare function decodeExplorerUrlState(encoded: string): ExplorerUrlState | null;
1582
- declare function renderGraphqlPlayground(url: string, query?: string, headers?: Record<string, string>, variables?: string): string;
1881
+ export declare function decodeExplorerUrlState(encoded: string): ExplorerUrlState | null;
1882
+ export declare function renderGraphqlPlayground(url: string, query?: string, headers?: Record<string, string>, variables?: string): string;
1583
1883
  //#endregion
1584
1884
  //#region src/graphql/reactor/gen/graphql.d.ts
1585
- type Maybe<T> = T | null | undefined;
1586
- type InputMaybe<T> = T | null | undefined;
1587
- type Exact<T extends {
1885
+ export type Maybe<T> = T | null | undefined;
1886
+ export type InputMaybe<T> = T | null | undefined;
1887
+ export type Exact<T extends {
1588
1888
  [key: string]: unknown;
1589
- }> = { [K in keyof T]: T[K] };
1590
- type MakeOptional<T, K extends keyof T> = Omit<T, K> & { [SubKey in K]?: Maybe<T[SubKey]> };
1591
- type MakeMaybe<T, K extends keyof T> = Omit<T, K> & { [SubKey in K]: Maybe<T[SubKey]> };
1592
- type MakeEmpty<T extends {
1889
+ }> = { [K in keyof T]: T[K]; };
1890
+ export type MakeOptional<T, K extends keyof T> = Omit<T, K> & { [SubKey in K]?: Maybe<T[SubKey]>; };
1891
+ export type MakeMaybe<T, K extends keyof T> = Omit<T, K> & { [SubKey in K]: Maybe<T[SubKey]>; };
1892
+ export type MakeEmpty<T extends {
1593
1893
  [key: string]: unknown;
1594
- }, K extends keyof T> = { [_ in K]?: never };
1595
- type Incremental<T> = T | { [P in keyof T]?: P extends " $fragmentName" | "__typename" ? T[P] : never };
1596
- type RequireFields<T, K extends keyof T> = Omit<T, K> & { [P in K]-?: NonNullable<T[P]> };
1894
+ }, K extends keyof T> = { [_ in K]?: never; };
1895
+ export type Incremental<T> = T | { [P in keyof T]?: P extends " $fragmentName" | "__typename" ? T[P] : never; };
1896
+ export type RequireFields<T, K extends keyof T> = Omit<T, K> & { [P in K]-?: NonNullable<T[P]>; };
1597
1897
  /** All built-in and custom scalars, mapped to their actual values */
1598
- type Scalars = {
1898
+ export type Scalars = {
1599
1899
  ID: {
1600
1900
  input: string;
1601
1901
  output: string;
@@ -1625,7 +1925,7 @@ type Scalars = {
1625
1925
  output: NonNullable<unknown>;
1626
1926
  };
1627
1927
  };
1628
- type Action = {
1928
+ export type Action = {
1629
1929
  readonly context?: Maybe<ActionContext>;
1630
1930
  readonly id: Scalars["String"]["output"];
1631
1931
  readonly input: Scalars["JSONObject"]["output"];
@@ -1640,12 +1940,12 @@ type Action = {
1640
1940
  * filled-in form carries that form's input. Omitting it predicts the verdict an
1641
1941
  * empty input earns, not the verdict the filled-in form will get.
1642
1942
  */
1643
- type ActionCandidateInput = {
1943
+ export type ActionCandidateInput = {
1644
1944
  readonly input?: InputMaybe<Scalars["JSONObject"]["input"]>;
1645
1945
  readonly scope: Scalars["String"]["input"];
1646
1946
  readonly type: Scalars["String"]["input"];
1647
1947
  };
1648
- type ActionContext = {
1948
+ export type ActionContext = {
1649
1949
  readonly signer?: Maybe<ReactorSigner>;
1650
1950
  };
1651
1951
  /**
@@ -1660,9 +1960,12 @@ type ActionContext = {
1660
1960
  * against. They are recorded rather than enforced; a signature is verified from
1661
1961
  * the params carried in its own tuple, which do not include them.
1662
1962
  */
1663
- type ActionContextInput = {
1664
- /** Covers replay of an operation that would otherwise be a no-op. */readonly nonce?: InputMaybe<Scalars["String"]["input"]>; /** The hash of the state the action applies to. */
1665
- readonly prevOpHash?: InputMaybe<Scalars["String"]["input"]>; /** The index of the last operation in the scope the action applies to. */
1963
+ export type ActionContextInput = {
1964
+ /** Covers replay of an operation that would otherwise be a no-op. */
1965
+ readonly nonce?: InputMaybe<Scalars["String"]["input"]>;
1966
+ /** The hash of the state the action applies to. */
1967
+ readonly prevOpHash?: InputMaybe<Scalars["String"]["input"]>;
1968
+ /** The index of the last operation in the scope the action applies to. */
1666
1969
  readonly prevOpIndex?: InputMaybe<Scalars["Int"]["input"]>;
1667
1970
  readonly signer?: InputMaybe<ReactorSignerInput>;
1668
1971
  };
@@ -1670,7 +1973,7 @@ type ActionContextInput = {
1670
1973
  * One candidate's predicted verdict. `reason` carries the refusal a DENY is
1671
1974
  * recorded with, and is null on an ALLOW.
1672
1975
  */
1673
- type ActionEvaluation = {
1976
+ export type ActionEvaluation = {
1674
1977
  readonly decision: AuthDecision;
1675
1978
  readonly reason?: Maybe<Scalars["String"]["output"]>;
1676
1979
  };
@@ -1683,14 +1986,14 @@ type ActionEvaluation = {
1683
1986
  * another. Over no candidates every aggregate is false: nothing is allowed and
1684
1987
  * nothing is denied.
1685
1988
  */
1686
- type ActionEvaluations = {
1989
+ export type ActionEvaluations = {
1687
1990
  readonly allAllowed: Scalars["Boolean"]["output"];
1688
1991
  readonly allDenied: Scalars["Boolean"]["output"];
1689
1992
  readonly anyAllowed: Scalars["Boolean"]["output"];
1690
1993
  readonly anyDenied: Scalars["Boolean"]["output"];
1691
1994
  readonly evaluations: ReadonlyArray<ActionEvaluation>;
1692
1995
  };
1693
- type ActionInput = {
1996
+ export type ActionInput = {
1694
1997
  readonly context?: InputMaybe<ActionContextInput>;
1695
1998
  readonly id: Scalars["String"]["input"];
1696
1999
  readonly input: Scalars["JSONObject"]["input"];
@@ -1698,17 +2001,52 @@ type ActionInput = {
1698
2001
  readonly timestampUtcMs: Scalars["String"]["input"];
1699
2002
  readonly type: Scalars["String"]["input"];
1700
2003
  };
1701
- declare enum AuthDecision {
2004
+ export declare enum AuthDecision {
1702
2005
  Allow = "ALLOW",
1703
2006
  Deny = "DENY"
1704
2007
  }
1705
- type ChannelMeta = {
2008
+ /**
2009
+ * The outcome of a batch mutation, one entry per job the request named. The wire
2010
+ * shape of `BatchExecutionResult` (`{ jobs }`), keyed on each entry by the plan
2011
+ * key rather than by position so the client can rebuild the record. The batch is
2012
+ * not atomic: each job commits on its own and a failed job releases its
2013
+ * dependents, so each entry's status says what happened to that job, and
2014
+ * re-submitting re-applies the jobs that succeeded.
2015
+ */
2016
+ export type BatchExecutionResult = {
2017
+ readonly jobs: ReadonlyArray<BatchJobResult>;
2018
+ };
2019
+ /**
2020
+ * One job's outcome within a batch, pairing the plan key the caller gave with the
2021
+ * job that applied it. Mirrors one entry of the `Record<string, JobInfo>` that
2022
+ * `IReactor.executeBatch` returns (packages/reactor/src/core/types.ts).
2023
+ */
2024
+ export type BatchJobResult = {
2025
+ readonly job: JobInfo;
2026
+ readonly key: Scalars["String"]["output"];
2027
+ };
2028
+ export type ChannelMeta = {
1706
2029
  readonly id: Scalars["String"]["output"];
1707
2030
  };
1708
- type ChannelMetaInput = {
2031
+ export type ChannelMetaInput = {
1709
2032
  readonly id: Scalars["String"]["input"];
1710
2033
  };
1711
- type DeadLetterInfo = {
2034
+ export type ConsistencyCoordinate = {
2035
+ readonly branch: Scalars["String"]["output"];
2036
+ readonly documentId: Scalars["String"]["output"];
2037
+ readonly operationIndex: Scalars["Int"]["output"];
2038
+ readonly scope: Scalars["String"]["output"];
2039
+ };
2040
+ /**
2041
+ * The write positions a job reached, for read-after-write. Only meaningful once
2042
+ * the job has completed.
2043
+ */
2044
+ export type ConsistencyToken = {
2045
+ readonly coordinates: ReadonlyArray<ConsistencyCoordinate>;
2046
+ readonly createdAtUtcIso: Scalars["String"]["output"];
2047
+ readonly version: Scalars["Int"]["output"];
2048
+ };
2049
+ export type DeadLetterInfo = {
1712
2050
  readonly branch: Scalars["String"]["output"];
1713
2051
  readonly documentId: Scalars["String"]["output"];
1714
2052
  readonly error: Scalars["String"]["output"];
@@ -1722,16 +2060,16 @@ type DeadLetterInfo = {
1722
2060
  readonly operationCount: Scalars["Int"]["output"];
1723
2061
  readonly scopes: ReadonlyArray<Scalars["String"]["output"]>;
1724
2062
  };
1725
- type DocumentChangeContext = {
2063
+ export type DocumentChangeContext = {
1726
2064
  readonly childId?: Maybe<Scalars["String"]["output"]>;
1727
2065
  readonly parentId?: Maybe<Scalars["String"]["output"]>;
1728
2066
  };
1729
- type DocumentChangeEvent = {
2067
+ export type DocumentChangeEvent = {
1730
2068
  readonly context?: Maybe<DocumentChangeContext>;
1731
2069
  readonly documents: ReadonlyArray<PhDocument>;
1732
2070
  readonly type: DocumentChangeType;
1733
2071
  };
1734
- declare enum DocumentChangeType {
2072
+ export declare enum DocumentChangeType {
1735
2073
  ChildAdded = "CHILD_ADDED",
1736
2074
  ChildRemoved = "CHILD_REMOVED",
1737
2075
  Created = "CREATED",
@@ -1740,21 +2078,20 @@ declare enum DocumentChangeType {
1740
2078
  ParentRemoved = "PARENT_REMOVED",
1741
2079
  Updated = "UPDATED"
1742
2080
  }
1743
- type DocumentModelGlobalState = {
2081
+ export type DocumentModelGlobalState = {
1744
2082
  readonly id: Scalars["String"]["output"];
1745
2083
  readonly name: Scalars["String"]["output"];
1746
2084
  readonly namespace?: Maybe<Scalars["String"]["output"]>;
1747
2085
  readonly specification: Scalars["JSONObject"]["output"];
1748
2086
  readonly version?: Maybe<Scalars["String"]["output"]>;
1749
2087
  };
1750
- type DocumentModelResultPage = {
2088
+ export type DocumentModelResultPage = {
1751
2089
  readonly cursor?: Maybe<Scalars["String"]["output"]>;
1752
2090
  readonly hasNextPage: Scalars["Boolean"]["output"];
1753
2091
  readonly hasPreviousPage: Scalars["Boolean"]["output"];
1754
2092
  readonly items: ReadonlyArray<DocumentModelGlobalState>;
1755
- readonly totalCount: Scalars["Int"]["output"];
1756
2093
  };
1757
- type DocumentOperationsFilterInput = {
2094
+ export type DocumentOperationsFilterInput = {
1758
2095
  readonly actionTypes?: InputMaybe<ReadonlyArray<Scalars["String"]["input"]>>;
1759
2096
  readonly branch?: InputMaybe<Scalars["String"]["input"]>;
1760
2097
  readonly scopes?: InputMaybe<ReadonlyArray<Scalars["String"]["input"]>>;
@@ -1762,21 +2099,75 @@ type DocumentOperationsFilterInput = {
1762
2099
  readonly timestampFrom?: InputMaybe<Scalars["String"]["input"]>;
1763
2100
  readonly timestampTo?: InputMaybe<Scalars["String"]["input"]>;
1764
2101
  };
1765
- type DocumentWithChildren = {
2102
+ export type DocumentRelationship = {
2103
+ readonly createdAt: Scalars["DateTime"]["output"];
2104
+ readonly metadata?: Maybe<Scalars["JSONObject"]["output"]>;
2105
+ readonly relationshipType: Scalars["String"]["output"];
2106
+ readonly sourceId: Scalars["String"]["output"];
2107
+ readonly targetId: Scalars["String"]["output"];
2108
+ readonly updatedAt: Scalars["DateTime"]["output"];
2109
+ };
2110
+ export type DocumentRelationshipResultPage = {
2111
+ readonly cursor?: Maybe<Scalars["String"]["output"]>;
2112
+ readonly hasNextPage: Scalars["Boolean"]["output"];
2113
+ readonly hasPreviousPage: Scalars["Boolean"]["output"];
2114
+ readonly items: ReadonlyArray<DocumentRelationship>;
2115
+ };
2116
+ export type DocumentWithChildren = {
1766
2117
  readonly childIds: ReadonlyArray<Scalars["String"]["output"]>;
1767
2118
  readonly document: PhDocument;
1768
2119
  };
1769
- type JobChangeEvent = {
2120
+ /**
2121
+ * One mutation job of a batch, mirroring the reactor's `ExecutionJobPlan`
2122
+ * (packages/reactor/src/core/types.ts). The batch runs its jobs in dependency
2123
+ * order only, not atomically: each job commits on its own with no batch rollback,
2124
+ * and a failed job still releases its dependents.
2125
+ *
2126
+ * `documentIdOrSlug` is the document the job's actions apply to -- an id that does
2127
+ * not yet exist when the job's actions create it. `actions` are coerced against
2128
+ * `ActionInput` and passed through exactly as `execute` does, so a client-signed
2129
+ * action keeps its signature. `scope` is the single scope every action in the job
2130
+ * shares, and `dependsOn` names the plan keys this job is ordered after. `branch`
2131
+ * defaults to `main`.
2132
+ */
2133
+ export type ExecutionJobInput = {
2134
+ readonly actions: ReadonlyArray<ActionInput>;
2135
+ readonly branch?: InputMaybe<Scalars["String"]["input"]>;
2136
+ readonly dependsOn: ReadonlyArray<Scalars["String"]["input"]>;
2137
+ readonly documentIdOrSlug: Scalars["String"]["input"];
2138
+ readonly key: Scalars["String"]["input"];
2139
+ readonly scope: Scalars["String"]["input"];
2140
+ };
2141
+ /** The batch a job was submitted in. */
2142
+ export type JobBatchMeta = {
2143
+ readonly batchId: Scalars["String"]["output"];
2144
+ readonly batchJobIds: ReadonlyArray<Scalars["String"]["output"]>;
2145
+ };
2146
+ export type JobChangeEvent = {
1770
2147
  readonly error?: Maybe<Scalars["String"]["output"]>;
1771
2148
  readonly jobId: Scalars["String"]["output"];
1772
- readonly result: Scalars["JSONObject"]["output"];
2149
+ /**
2150
+ * What the job produced, once it has produced anything. Nullable for the same
2151
+ * reason as `JobInfo.result`: a job that has not written yet has produced
2152
+ * nothing, and an empty object would claim otherwise.
2153
+ */
2154
+ readonly result?: Maybe<Scalars["JSONObject"]["output"]>;
1773
2155
  readonly status: Scalars["String"]["output"];
1774
2156
  };
1775
- type JobInfo = {
2157
+ export type JobInfo = {
1776
2158
  readonly completedAt?: Maybe<Scalars["DateTime"]["output"]>;
2159
+ readonly consistencyToken: ConsistencyToken;
1777
2160
  readonly createdAt: Scalars["DateTime"]["output"];
2161
+ /**
2162
+ * The document the job operates on. Empty for a job this server does not know,
2163
+ * which then comes back FAILED with "Job not found".
2164
+ */
2165
+ readonly documentId: Scalars["String"]["output"];
1778
2166
  readonly error?: Maybe<Scalars["String"]["output"]>;
2167
+ /** The error's class name, such as `DocumentAlreadyExistsError`, when it failed. */
2168
+ readonly errorName?: Maybe<Scalars["String"]["output"]>;
1779
2169
  readonly id: Scalars["String"]["output"];
2170
+ readonly meta: JobBatchMeta;
1780
2171
  /**
1781
2172
  * What the job produced, once it has produced anything. Null until then, which
1782
2173
  * is the state every job is in when it is handed back from a submission.
@@ -1784,11 +2175,11 @@ type JobInfo = {
1784
2175
  readonly result?: Maybe<Scalars["JSONObject"]["output"]>;
1785
2176
  readonly status: Scalars["String"]["output"];
1786
2177
  };
1787
- type MoveRelationshipResult = {
2178
+ export type MoveRelationshipResult = {
1788
2179
  readonly source: PhDocument;
1789
2180
  readonly target: PhDocument;
1790
2181
  };
1791
- type Mutation = {
2182
+ export type Mutation = {
1792
2183
  readonly addRelationship: PhDocument;
1793
2184
  readonly createDocument: PhDocument;
1794
2185
  readonly createEmptyDocument: PhDocument;
@@ -1816,101 +2207,154 @@ type Mutation = {
1816
2207
  * ask for; `result` is null until the job produces one.
1817
2208
  */
1818
2209
  readonly executeAsync: JobInfo;
1819
- readonly moveRelationship: MoveRelationshipResult; /** @deprecated Use execute. Actions here are untyped, so a malformed one is refused by a hand-written check rather than by the schema, and `view.scopes` is accepted but ignored. */
1820
- readonly mutateDocument: PhDocument; /** @deprecated Use executeAsync, which is typed and returns the job rather than only its id. */
2210
+ /**
2211
+ * Applies multiple mutation jobs in dependency order and waits for all of them,
2212
+ * the wire form of `IReactorClient.executeBatch`. Each job's actions are coerced
2213
+ * against `ActionInput` exactly as `execute` is, so client-signed actions pass
2214
+ * through unchanged, and `dependsOn` orders the jobs. It is synchronous: the jobs
2215
+ * are applied and awaited before the result returns, so every returned `JobInfo`
2216
+ * is a completed one rather than the pending receipt the in-process reactor hands
2217
+ * back. A batch is ordering, not a transaction: each job commits on its own, and
2218
+ * a failed job still releases the jobs that depend on it, so any job, before or
2219
+ * after a failure, may have committed. A failed job is therefore returned as a
2220
+ * FAILED entry with its `error` and `errorName`, beside the final state of every
2221
+ * other job, rather than failing the mutation. The mutation itself fails only
2222
+ * when no job state can be reported.
2223
+ *
2224
+ * A job carrying `CREATE_DOCUMENT` must be the batch's only job, with the create
2225
+ * as its first action naming the job's document. Its other actions may only be
2226
+ * an `UPGRADE_DOCUMENT` of the new document and `ADD_RELATIONSHIP`s targeting
2227
+ * it. It is authorized like `createDocument`: write on every source of those
2228
+ * relationships, or the right to create when there is none.
2229
+ */
2230
+ readonly executeBatch: BatchExecutionResult;
2231
+ readonly moveRelationship: MoveRelationshipResult;
2232
+ /** @deprecated Use execute. Actions here are untyped, so a malformed one is refused by a hand-written check rather than by the schema, and `view.scopes` is accepted but ignored. */
2233
+ readonly mutateDocument: PhDocument;
2234
+ /** @deprecated Use executeAsync, which is typed and returns the job rather than only its id. */
1821
2235
  readonly mutateDocumentAsync: Scalars["String"]["output"];
1822
2236
  readonly pushSyncEnvelopes: Scalars["Boolean"]["output"];
1823
2237
  readonly removeRelationship: PhDocument;
1824
2238
  readonly renameDocument: PhDocument;
1825
2239
  readonly setPreferredEditor: PhDocument;
1826
2240
  readonly touchChannel: TouchChannelResult;
2241
+ readonly updateRelationship: PhDocument;
1827
2242
  };
1828
- type MutationAddRelationshipArgs = {
2243
+ export type MutationAddRelationshipArgs = {
1829
2244
  branch?: InputMaybe<Scalars["String"]["input"]>;
2245
+ metadata?: InputMaybe<Scalars["JSONObject"]["input"]>;
1830
2246
  relationshipType: Scalars["String"]["input"];
1831
- sourceIdentifier: Scalars["String"]["input"];
1832
- targetIdentifier: Scalars["String"]["input"];
2247
+ sourceIdOrSlug?: InputMaybe<Scalars["String"]["input"]>;
2248
+ sourceIdentifier?: InputMaybe<Scalars["String"]["input"]>;
2249
+ targetIdOrSlug?: InputMaybe<Scalars["String"]["input"]>;
2250
+ targetIdentifier?: InputMaybe<Scalars["String"]["input"]>;
1833
2251
  };
1834
- type MutationCreateDocumentArgs = {
2252
+ export type MutationCreateDocumentArgs = {
1835
2253
  document: Scalars["JSONObject"]["input"];
2254
+ parentIdOrSlug?: InputMaybe<Scalars["String"]["input"]>;
1836
2255
  parentIdentifier?: InputMaybe<Scalars["String"]["input"]>;
1837
2256
  };
1838
- type MutationCreateEmptyDocumentArgs = {
2257
+ export type MutationCreateEmptyDocumentArgs = {
1839
2258
  documentType: Scalars["String"]["input"];
2259
+ parentIdOrSlug?: InputMaybe<Scalars["String"]["input"]>;
1840
2260
  parentIdentifier?: InputMaybe<Scalars["String"]["input"]>;
1841
2261
  };
1842
- type MutationDeleteDocumentArgs = {
1843
- identifier: Scalars["String"]["input"];
2262
+ export type MutationDeleteDocumentArgs = {
2263
+ idOrSlug?: InputMaybe<Scalars["String"]["input"]>;
2264
+ identifier?: InputMaybe<Scalars["String"]["input"]>;
1844
2265
  propagate?: InputMaybe<PropagationMode>;
1845
2266
  };
1846
- type MutationDeleteDocumentsArgs = {
1847
- identifiers: ReadonlyArray<Scalars["String"]["input"]>;
2267
+ export type MutationDeleteDocumentsArgs = {
2268
+ identifiers?: InputMaybe<ReadonlyArray<Scalars["String"]["input"]>>;
2269
+ idsOrSlugs?: InputMaybe<ReadonlyArray<Scalars["String"]["input"]>>;
1848
2270
  propagate?: InputMaybe<PropagationMode>;
1849
2271
  };
1850
- type MutationExecuteArgs = {
2272
+ export type MutationExecuteArgs = {
1851
2273
  actions: ReadonlyArray<ActionInput>;
1852
2274
  branch?: InputMaybe<Scalars["String"]["input"]>;
1853
- documentIdentifier: Scalars["String"]["input"];
2275
+ documentIdOrSlug?: InputMaybe<Scalars["String"]["input"]>;
2276
+ documentIdentifier?: InputMaybe<Scalars["String"]["input"]>;
1854
2277
  };
1855
- type MutationExecuteAsyncArgs = {
2278
+ export type MutationExecuteAsyncArgs = {
1856
2279
  actions: ReadonlyArray<ActionInput>;
1857
2280
  branch?: InputMaybe<Scalars["String"]["input"]>;
1858
- documentIdentifier: Scalars["String"]["input"];
2281
+ documentIdOrSlug?: InputMaybe<Scalars["String"]["input"]>;
2282
+ documentIdentifier?: InputMaybe<Scalars["String"]["input"]>;
1859
2283
  };
1860
- type MutationMoveRelationshipArgs = {
2284
+ export type MutationExecuteBatchArgs = {
2285
+ jobs: ReadonlyArray<ExecutionJobInput>;
2286
+ };
2287
+ export type MutationMoveRelationshipArgs = {
1861
2288
  branch?: InputMaybe<Scalars["String"]["input"]>;
1862
2289
  relationshipType: Scalars["String"]["input"];
1863
- sourceParentIdentifier: Scalars["String"]["input"];
1864
- targetIdentifier: Scalars["String"]["input"];
1865
- targetParentIdentifier: Scalars["String"]["input"];
1866
- };
1867
- type MutationMutateDocumentArgs = {
2290
+ sourceParentIdOrSlug?: InputMaybe<Scalars["String"]["input"]>;
2291
+ sourceParentIdentifier?: InputMaybe<Scalars["String"]["input"]>;
2292
+ targetIdOrSlug?: InputMaybe<Scalars["String"]["input"]>;
2293
+ targetIdentifier?: InputMaybe<Scalars["String"]["input"]>;
2294
+ targetParentIdOrSlug?: InputMaybe<Scalars["String"]["input"]>;
2295
+ targetParentIdentifier?: InputMaybe<Scalars["String"]["input"]>;
2296
+ };
2297
+ export type MutationMutateDocumentArgs = {
1868
2298
  actions: ReadonlyArray<Scalars["JSONObject"]["input"]>;
1869
2299
  documentIdentifier: Scalars["String"]["input"];
1870
2300
  view?: InputMaybe<ViewFilterInput>;
1871
2301
  };
1872
- type MutationMutateDocumentAsyncArgs = {
2302
+ export type MutationMutateDocumentAsyncArgs = {
1873
2303
  actions: ReadonlyArray<Scalars["JSONObject"]["input"]>;
1874
2304
  documentIdentifier: Scalars["String"]["input"];
1875
2305
  view?: InputMaybe<ViewFilterInput>;
1876
2306
  };
1877
- type MutationPushSyncEnvelopesArgs = {
2307
+ export type MutationPushSyncEnvelopesArgs = {
1878
2308
  envelopes: ReadonlyArray<SyncEnvelopeInput>;
2309
+ peerManifestRevision?: InputMaybe<Scalars["String"]["input"]>;
1879
2310
  };
1880
- type MutationRemoveRelationshipArgs = {
2311
+ export type MutationRemoveRelationshipArgs = {
1881
2312
  branch?: InputMaybe<Scalars["String"]["input"]>;
1882
2313
  relationshipType: Scalars["String"]["input"];
1883
- sourceIdentifier: Scalars["String"]["input"];
1884
- targetIdentifier: Scalars["String"]["input"];
2314
+ sourceIdOrSlug?: InputMaybe<Scalars["String"]["input"]>;
2315
+ sourceIdentifier?: InputMaybe<Scalars["String"]["input"]>;
2316
+ targetIdOrSlug?: InputMaybe<Scalars["String"]["input"]>;
2317
+ targetIdentifier?: InputMaybe<Scalars["String"]["input"]>;
1885
2318
  };
1886
- type MutationRenameDocumentArgs = {
2319
+ export type MutationRenameDocumentArgs = {
1887
2320
  branch?: InputMaybe<Scalars["String"]["input"]>;
1888
- documentIdentifier: Scalars["String"]["input"];
2321
+ documentIdOrSlug?: InputMaybe<Scalars["String"]["input"]>;
2322
+ documentIdentifier?: InputMaybe<Scalars["String"]["input"]>;
1889
2323
  name: Scalars["String"]["input"];
1890
2324
  };
1891
- type MutationSetPreferredEditorArgs = {
2325
+ export type MutationSetPreferredEditorArgs = {
1892
2326
  branch?: InputMaybe<Scalars["String"]["input"]>;
1893
- documentIdentifier: Scalars["String"]["input"];
2327
+ documentIdOrSlug?: InputMaybe<Scalars["String"]["input"]>;
2328
+ documentIdentifier?: InputMaybe<Scalars["String"]["input"]>;
1894
2329
  preferredEditor?: InputMaybe<Scalars["String"]["input"]>;
1895
2330
  };
1896
- type MutationTouchChannelArgs = {
2331
+ export type MutationTouchChannelArgs = {
1897
2332
  input: TouchChannelInput;
1898
2333
  };
1899
- type OperationContext = {
2334
+ export type MutationUpdateRelationshipArgs = {
2335
+ branch?: InputMaybe<Scalars["String"]["input"]>;
2336
+ metadata?: InputMaybe<Scalars["JSONObject"]["input"]>;
2337
+ relationshipType: Scalars["String"]["input"];
2338
+ sourceIdOrSlug?: InputMaybe<Scalars["String"]["input"]>;
2339
+ sourceIdentifier?: InputMaybe<Scalars["String"]["input"]>;
2340
+ targetIdOrSlug?: InputMaybe<Scalars["String"]["input"]>;
2341
+ targetIdentifier?: InputMaybe<Scalars["String"]["input"]>;
2342
+ };
2343
+ export type OperationContext = {
1900
2344
  readonly branch: Scalars["String"]["output"];
1901
2345
  readonly documentId: Scalars["String"]["output"];
1902
2346
  readonly documentType: Scalars["String"]["output"];
1903
2347
  readonly ordinal: Scalars["Int"]["output"];
1904
2348
  readonly scope: Scalars["String"]["output"];
1905
2349
  };
1906
- type OperationContextInput = {
2350
+ export type OperationContextInput = {
1907
2351
  readonly branch: Scalars["String"]["input"];
1908
2352
  readonly documentId: Scalars["String"]["input"];
1909
2353
  readonly documentType: Scalars["String"]["input"];
1910
2354
  readonly ordinal: Scalars["Int"]["input"];
1911
2355
  readonly scope: Scalars["String"]["input"];
1912
2356
  };
1913
- type OperationInput = {
2357
+ export type OperationInput = {
1914
2358
  readonly action: ActionInput;
1915
2359
  readonly deniedReason?: InputMaybe<Scalars["String"]["input"]>;
1916
2360
  readonly error?: InputMaybe<Scalars["String"]["input"]>;
@@ -1920,66 +2364,89 @@ type OperationInput = {
1920
2364
  readonly skip: Scalars["Int"]["input"];
1921
2365
  readonly timestampUtcMs: Scalars["String"]["input"];
1922
2366
  };
1923
- type OperationWithContext = {
2367
+ export type OperationWithContext = {
1924
2368
  readonly context: OperationContext;
1925
2369
  readonly operation: ReactorOperation;
1926
2370
  };
1927
- type OperationWithContextInput = {
2371
+ export type OperationWithContextInput = {
1928
2372
  readonly context: OperationContextInput;
1929
2373
  readonly operation: OperationInput;
1930
2374
  };
1931
- type OperationsFilterInput = {
2375
+ export type OperationsFilterInput = {
1932
2376
  readonly actionTypes?: InputMaybe<ReadonlyArray<Scalars["String"]["input"]>>;
1933
2377
  readonly branch?: InputMaybe<Scalars["String"]["input"]>;
1934
- readonly documentId: Scalars["String"]["input"];
2378
+ /** @deprecated Use documentIdOrSlug. */
2379
+ readonly documentId?: InputMaybe<Scalars["String"]["input"]>;
2380
+ readonly documentIdOrSlug?: InputMaybe<Scalars["String"]["input"]>;
1935
2381
  readonly scopes?: InputMaybe<ReadonlyArray<Scalars["String"]["input"]>>;
1936
2382
  readonly sinceRevision?: InputMaybe<Scalars["Int"]["input"]>;
1937
2383
  readonly timestampFrom?: InputMaybe<Scalars["String"]["input"]>;
1938
2384
  readonly timestampTo?: InputMaybe<Scalars["String"]["input"]>;
1939
2385
  };
1940
- type PhDocument = {
2386
+ export type PhDocument = {
1941
2387
  readonly createdAtUtcIso: Scalars["DateTime"]["output"];
1942
2388
  readonly documentType: Scalars["String"]["output"];
1943
2389
  readonly id: Scalars["String"]["output"];
1944
2390
  readonly lastModifiedAtUtcIso: Scalars["DateTime"]["output"];
2391
+ readonly meta?: Maybe<Scalars["JSONObject"]["output"]>;
1945
2392
  readonly name: Scalars["String"]["output"];
1946
2393
  readonly operations?: Maybe<ReactorOperationResultPage>;
1947
2394
  readonly preferredEditor?: Maybe<Scalars["String"]["output"]>;
2395
+ readonly protocolVersions?: Maybe<Scalars["JSONObject"]["output"]>;
1948
2396
  readonly revisionsList: ReadonlyArray<Revision>;
1949
2397
  readonly slug?: Maybe<Scalars["String"]["output"]>;
1950
2398
  readonly state: Scalars["JSONObject"]["output"];
1951
2399
  };
1952
- type PhDocumentOperationsArgs = {
2400
+ export type PhDocumentOperationsArgs = {
1953
2401
  filter?: InputMaybe<DocumentOperationsFilterInput>;
1954
2402
  paging?: InputMaybe<PagingInput>;
1955
2403
  };
1956
- type PhDocumentResultPage = {
2404
+ export type PhDocumentResultPage = {
1957
2405
  readonly cursor?: Maybe<Scalars["String"]["output"]>;
1958
2406
  readonly hasNextPage: Scalars["Boolean"]["output"];
1959
2407
  readonly hasPreviousPage: Scalars["Boolean"]["output"];
1960
2408
  readonly items: ReadonlyArray<PhDocument>;
1961
- readonly totalCount: Scalars["Int"]["output"];
1962
2409
  };
1963
- type PagingInput = {
2410
+ export type PagingInput = {
1964
2411
  readonly cursor?: InputMaybe<Scalars["String"]["input"]>;
1965
2412
  readonly limit?: InputMaybe<Scalars["Int"]["input"]>;
1966
2413
  readonly offset?: InputMaybe<Scalars["Int"]["input"]>;
1967
2414
  };
1968
- type PollSyncEnvelopesResult = {
2415
+ export type PeerAgreement = {
2416
+ readonly collectionId: Scalars["String"]["output"];
2417
+ readonly limitedBy: ReadonlyArray<PeerAgreementLimit>;
2418
+ readonly local: Scalars["JSONObject"]["output"];
2419
+ readonly members: ReadonlyArray<PeerAgreementMember>;
2420
+ };
2421
+ export type PeerAgreementLimit = {
2422
+ readonly protocol: Scalars["String"]["output"];
2423
+ readonly remoteNames: ReadonlyArray<Scalars["String"]["output"]>;
2424
+ };
2425
+ export type PeerAgreementMember = {
2426
+ readonly announced: Scalars["Boolean"]["output"];
2427
+ readonly features: Scalars["JSONObject"]["output"];
2428
+ readonly protocols: Scalars["JSONObject"]["output"];
2429
+ readonly remoteName: Scalars["String"]["output"];
2430
+ };
2431
+ export type PollSyncEnvelopesResult = {
1969
2432
  readonly ackOrdinal: Scalars["Int"]["output"];
1970
2433
  readonly deadLetters: ReadonlyArray<DeadLetterInfo>;
1971
2434
  readonly envelopes: ReadonlyArray<SyncEnvelope>;
1972
2435
  readonly hasMore: Scalars["Boolean"]["output"];
2436
+ readonly manifestRevision?: Maybe<Scalars["String"]["output"]>;
2437
+ readonly peerManifestRevision?: Maybe<Scalars["String"]["output"]>;
1973
2438
  };
1974
- declare enum PropagationMode {
2439
+ export declare enum PropagationMode {
1975
2440
  Cascade = "CASCADE",
1976
2441
  Orphan = "ORPHAN"
1977
2442
  }
1978
- type Query = {
2443
+ export type Query = {
1979
2444
  readonly document?: Maybe<DocumentWithChildren>;
2445
+ readonly documentIncomingRelationshipEdges: DocumentRelationshipResultPage;
1980
2446
  readonly documentIncomingRelationships: PhDocumentResultPage;
1981
2447
  readonly documentModels: DocumentModelResultPage;
1982
2448
  readonly documentOperations: ReactorOperationResultPage;
2449
+ readonly documentOutgoingRelationshipEdges: DocumentRelationshipResultPage;
1983
2450
  readonly documentOutgoingRelationships: PhDocumentResultPage;
1984
2451
  /**
1985
2452
  * Predicts whether the calling subject would be admitted to execute each of a
@@ -2011,6 +2478,7 @@ type Query = {
2011
2478
  readonly evaluateActions: ActionEvaluations;
2012
2479
  readonly findDocuments: PhDocumentResultPage;
2013
2480
  readonly jobStatus?: Maybe<JobInfo>;
2481
+ readonly peerAgreement: PeerAgreement;
2014
2482
  /**
2015
2483
  * Polls for sync envelopes from a channel.
2016
2484
  *
@@ -2023,50 +2491,78 @@ type Query = {
2023
2491
  * would stop receiving those too.
2024
2492
  */
2025
2493
  readonly pollSyncEnvelopes: PollSyncEnvelopesResult;
2494
+ readonly syncHolds: ReadonlyArray<SyncHold>;
2026
2495
  };
2027
- type QueryDocumentArgs = {
2028
- identifier: Scalars["String"]["input"];
2496
+ export type QueryDocumentArgs = {
2497
+ idOrSlug?: InputMaybe<Scalars["String"]["input"]>;
2498
+ identifier?: InputMaybe<Scalars["String"]["input"]>;
2029
2499
  view?: InputMaybe<ViewFilterInput>;
2030
2500
  };
2031
- type QueryDocumentIncomingRelationshipsArgs = {
2501
+ export type QueryDocumentIncomingRelationshipEdgesArgs = {
2502
+ paging?: InputMaybe<PagingInput>;
2503
+ relationshipType?: InputMaybe<Scalars["String"]["input"]>;
2504
+ targetIdOrSlug?: InputMaybe<Scalars["String"]["input"]>;
2505
+ targetIdentifier?: InputMaybe<Scalars["String"]["input"]>;
2506
+ view?: InputMaybe<ViewFilterInput>;
2507
+ };
2508
+ export type QueryDocumentIncomingRelationshipsArgs = {
2032
2509
  paging?: InputMaybe<PagingInput>;
2033
2510
  relationshipType: Scalars["String"]["input"];
2034
- targetIdentifier: Scalars["String"]["input"];
2511
+ targetIdOrSlug?: InputMaybe<Scalars["String"]["input"]>;
2512
+ targetIdentifier?: InputMaybe<Scalars["String"]["input"]>;
2035
2513
  view?: InputMaybe<ViewFilterInput>;
2036
2514
  };
2037
- type QueryDocumentModelsArgs = {
2515
+ export type QueryDocumentModelsArgs = {
2038
2516
  namespace?: InputMaybe<Scalars["String"]["input"]>;
2039
2517
  paging?: InputMaybe<PagingInput>;
2040
2518
  };
2041
- type QueryDocumentOperationsArgs = {
2519
+ export type QueryDocumentOperationsArgs = {
2042
2520
  filter: OperationsFilterInput;
2043
2521
  paging?: InputMaybe<PagingInput>;
2044
2522
  };
2045
- type QueryDocumentOutgoingRelationshipsArgs = {
2523
+ export type QueryDocumentOutgoingRelationshipEdgesArgs = {
2524
+ paging?: InputMaybe<PagingInput>;
2525
+ relationshipType?: InputMaybe<Scalars["String"]["input"]>;
2526
+ sourceIdOrSlug?: InputMaybe<Scalars["String"]["input"]>;
2527
+ sourceIdentifier?: InputMaybe<Scalars["String"]["input"]>;
2528
+ view?: InputMaybe<ViewFilterInput>;
2529
+ };
2530
+ export type QueryDocumentOutgoingRelationshipsArgs = {
2046
2531
  paging?: InputMaybe<PagingInput>;
2047
2532
  relationshipType: Scalars["String"]["input"];
2048
- sourceIdentifier: Scalars["String"]["input"];
2533
+ sourceIdOrSlug?: InputMaybe<Scalars["String"]["input"]>;
2534
+ sourceIdentifier?: InputMaybe<Scalars["String"]["input"]>;
2049
2535
  view?: InputMaybe<ViewFilterInput>;
2050
2536
  };
2051
- type QueryEvaluateActionsArgs = {
2537
+ export type QueryEvaluateActionsArgs = {
2052
2538
  branch?: InputMaybe<Scalars["String"]["input"]>;
2053
2539
  candidates: ReadonlyArray<ActionCandidateInput>;
2054
- documentIdentifier: Scalars["String"]["input"];
2540
+ documentIdOrSlug?: InputMaybe<Scalars["String"]["input"]>;
2541
+ documentIdentifier?: InputMaybe<Scalars["String"]["input"]>;
2055
2542
  };
2056
- type QueryFindDocumentsArgs = {
2543
+ export type QueryFindDocumentsArgs = {
2057
2544
  paging?: InputMaybe<PagingInput>;
2058
2545
  search?: InputMaybe<SearchFilterInput>;
2059
2546
  view?: InputMaybe<ViewFilterInput>;
2060
2547
  };
2061
- type QueryJobStatusArgs = {
2548
+ export type QueryJobStatusArgs = {
2062
2549
  jobId: Scalars["String"]["input"];
2063
2550
  };
2064
- type QueryPollSyncEnvelopesArgs = {
2551
+ export type QueryPeerAgreementArgs = {
2552
+ collectionId: Scalars["String"]["input"];
2553
+ };
2554
+ export type QueryPollSyncEnvelopesArgs = {
2065
2555
  channelId: Scalars["String"]["input"];
2556
+ manifestRevision?: InputMaybe<Scalars["String"]["input"]>;
2066
2557
  outboxAck: Scalars["Int"]["input"];
2067
2558
  outboxLatest: Scalars["Int"]["input"];
2559
+ refusals?: InputMaybe<ReadonlyArray<SyncRefusalInput>>;
2560
+ };
2561
+ export type QuerySyncHoldsArgs = {
2562
+ documentId?: InputMaybe<Scalars["String"]["input"]>;
2563
+ remoteName?: InputMaybe<Scalars["String"]["input"]>;
2068
2564
  };
2069
- type ReactorOperation = {
2565
+ export type ReactorOperation = {
2070
2566
  readonly action: Action;
2071
2567
  readonly deniedReason?: Maybe<Scalars["String"]["output"]>;
2072
2568
  readonly error?: Maybe<Scalars["String"]["output"]>;
@@ -2076,77 +2572,77 @@ type ReactorOperation = {
2076
2572
  readonly skip: Scalars["Int"]["output"];
2077
2573
  readonly timestampUtcMs: Scalars["String"]["output"];
2078
2574
  };
2079
- type ReactorOperationResultPage = {
2575
+ export type ReactorOperationResultPage = {
2080
2576
  readonly cursor?: Maybe<Scalars["String"]["output"]>;
2081
2577
  readonly hasNextPage: Scalars["Boolean"]["output"];
2082
2578
  readonly hasPreviousPage: Scalars["Boolean"]["output"];
2083
2579
  readonly items: ReadonlyArray<ReactorOperation>;
2084
- readonly totalCount: Scalars["Int"]["output"];
2085
2580
  };
2086
- type ReactorSigner = {
2581
+ export type ReactorSigner = {
2087
2582
  readonly app?: Maybe<ReactorSignerApp>;
2088
2583
  readonly signatures: ReadonlyArray<Scalars["String"]["output"]>;
2089
2584
  readonly user?: Maybe<ReactorSignerUser>;
2090
2585
  };
2091
- type ReactorSignerApp = {
2586
+ export type ReactorSignerApp = {
2092
2587
  readonly key: Scalars["String"]["output"];
2093
2588
  readonly name: Scalars["String"]["output"];
2094
2589
  };
2095
- type ReactorSignerAppInput = {
2590
+ export type ReactorSignerAppInput = {
2096
2591
  readonly key: Scalars["String"]["input"];
2097
2592
  readonly name: Scalars["String"]["input"];
2098
2593
  };
2099
- type ReactorSignerInput = {
2594
+ export type ReactorSignerInput = {
2100
2595
  readonly app?: InputMaybe<ReactorSignerAppInput>;
2101
2596
  readonly signatures: ReadonlyArray<Scalars["String"]["input"]>;
2102
2597
  readonly user?: InputMaybe<ReactorSignerUserInput>;
2103
2598
  };
2104
- type ReactorSignerUser = {
2599
+ export type ReactorSignerUser = {
2105
2600
  readonly address: Scalars["String"]["output"];
2106
2601
  readonly chainId: Scalars["Int"]["output"];
2107
2602
  readonly networkId: Scalars["String"]["output"];
2108
2603
  };
2109
- type ReactorSignerUserInput = {
2604
+ export type ReactorSignerUserInput = {
2110
2605
  readonly address: Scalars["String"]["input"];
2111
2606
  readonly chainId: Scalars["Int"]["input"];
2112
2607
  readonly networkId: Scalars["String"]["input"];
2113
2608
  };
2114
- type RemoteCursor = {
2609
+ export type RemoteCursor = {
2115
2610
  readonly cursorOrdinal: Scalars["Int"]["output"];
2116
2611
  readonly lastSyncedAtUtcMs?: Maybe<Scalars["String"]["output"]>;
2117
2612
  readonly remoteName: Scalars["String"]["output"];
2118
2613
  };
2119
- type RemoteCursorInput = {
2614
+ export type RemoteCursorInput = {
2120
2615
  readonly cursorOrdinal: Scalars["Int"]["input"];
2121
2616
  readonly lastSyncedAtUtcMs?: InputMaybe<Scalars["String"]["input"]>;
2122
2617
  readonly remoteName: Scalars["String"]["input"];
2123
2618
  };
2124
- type RemoteFilterInput = {
2619
+ export type RemoteFilterInput = {
2125
2620
  readonly branch: Scalars["String"]["input"];
2126
2621
  readonly documentId: ReadonlyArray<Scalars["String"]["input"]>;
2127
2622
  readonly scope: ReadonlyArray<Scalars["String"]["input"]>;
2128
2623
  };
2129
- type Revision = {
2624
+ export type Revision = {
2130
2625
  readonly revision: Scalars["Int"]["output"];
2131
2626
  readonly scope: Scalars["String"]["output"];
2132
2627
  };
2133
- type SearchFilterInput = {
2628
+ export type SearchFilterInput = {
2629
+ /** @deprecated Ignored. Filter by type or parentId. */
2134
2630
  readonly identifiers?: InputMaybe<ReadonlyArray<Scalars["String"]["input"]>>;
2135
2631
  readonly parentId?: InputMaybe<Scalars["String"]["input"]>;
2136
2632
  readonly type?: InputMaybe<Scalars["String"]["input"]>;
2137
2633
  };
2138
- type Subscription = {
2634
+ export type Subscription = {
2139
2635
  readonly documentChanges: DocumentChangeEvent;
2140
2636
  readonly jobChanges: JobChangeEvent;
2141
2637
  };
2142
- type SubscriptionDocumentChangesArgs = {
2638
+ export type SubscriptionDocumentChangesArgs = {
2143
2639
  search?: InputMaybe<SearchFilterInput>;
2144
2640
  view?: InputMaybe<ViewFilterInput>;
2145
2641
  };
2146
- type SubscriptionJobChangesArgs = {
2642
+ export type SubscriptionJobChangesArgs = {
2147
2643
  jobId: Scalars["String"]["input"];
2148
2644
  };
2149
- type SyncEnvelope = {
2645
+ export type SyncEnvelope = {
2150
2646
  readonly channelMeta: ChannelMeta;
2151
2647
  readonly cursor?: Maybe<RemoteCursor>;
2152
2648
  readonly dependsOn?: Maybe<ReadonlyArray<Scalars["String"]["output"]>>;
@@ -2154,7 +2650,7 @@ type SyncEnvelope = {
2154
2650
  readonly operations?: Maybe<ReadonlyArray<OperationWithContext>>;
2155
2651
  readonly type: SyncEnvelopeType;
2156
2652
  };
2157
- type SyncEnvelopeInput = {
2653
+ export type SyncEnvelopeInput = {
2158
2654
  readonly channelMeta: ChannelMetaInput;
2159
2655
  readonly cursor?: InputMaybe<RemoteCursorInput>;
2160
2656
  readonly dependsOn?: InputMaybe<ReadonlyArray<Scalars["String"]["input"]>>;
@@ -2162,30 +2658,51 @@ type SyncEnvelopeInput = {
2162
2658
  readonly operations?: InputMaybe<ReadonlyArray<OperationWithContextInput>>;
2163
2659
  readonly type: SyncEnvelopeType;
2164
2660
  };
2165
- declare enum SyncEnvelopeType {
2661
+ export declare enum SyncEnvelopeType {
2166
2662
  Ack = "ACK",
2167
2663
  Operations = "OPERATIONS"
2168
2664
  }
2169
- type TouchChannelInput = {
2665
+ export type SyncHold = {
2666
+ readonly branch: Scalars["String"]["output"];
2667
+ readonly documentId: Scalars["String"]["output"];
2668
+ readonly heldAtUtcMs: Scalars["String"]["output"];
2669
+ readonly reason: SyncHoldReason;
2670
+ readonly remoteName: Scalars["String"]["output"];
2671
+ };
2672
+ export type SyncHoldReason = {
2673
+ readonly peerSupports: ReadonlyArray<Scalars["Int"]["output"]>;
2674
+ readonly protocol: Scalars["String"]["output"];
2675
+ readonly version: Scalars["Int"]["output"];
2676
+ };
2677
+ export type SyncRefusalInput = {
2678
+ readonly branch: Scalars["String"]["input"];
2679
+ readonly documentId: Scalars["String"]["input"];
2680
+ readonly kind?: InputMaybe<Scalars["String"]["input"]>;
2681
+ };
2682
+ export type TouchChannelInput = {
2170
2683
  readonly collectionId: Scalars["String"]["input"];
2171
2684
  readonly filter: RemoteFilterInput;
2172
2685
  readonly id: Scalars["String"]["input"];
2686
+ readonly manifest?: InputMaybe<Scalars["JSONObject"]["input"]>;
2173
2687
  readonly name: Scalars["String"]["input"];
2174
2688
  readonly sinceTimestampUtcMs: Scalars["String"]["input"];
2175
2689
  };
2176
- type TouchChannelResult = {
2690
+ export type TouchChannelResult = {
2177
2691
  readonly ackOrdinal: Scalars["Int"]["output"];
2692
+ readonly manifest?: Maybe<Scalars["JSONObject"]["output"]>;
2178
2693
  readonly success: Scalars["Boolean"]["output"];
2179
2694
  };
2180
- type ViewFilterInput = {
2695
+ export type ViewFilterInput = {
2181
2696
  readonly branch?: InputMaybe<Scalars["String"]["input"]>;
2182
2697
  readonly scopes?: InputMaybe<ReadonlyArray<Scalars["String"]["input"]>>;
2183
2698
  };
2184
- type PhDocumentFieldsFragment = {
2699
+ export type PhDocumentFieldsFragment = {
2185
2700
  readonly id: string;
2186
2701
  readonly slug?: string | null | undefined;
2187
2702
  readonly name: string;
2188
2703
  readonly documentType: string;
2704
+ readonly meta?: NonNullable<unknown> | null | undefined;
2705
+ readonly protocolVersions?: NonNullable<unknown> | null | undefined;
2189
2706
  readonly state: NonNullable<unknown>;
2190
2707
  readonly createdAtUtcIso: string | Date;
2191
2708
  readonly lastModifiedAtUtcIso: string | Date;
@@ -2194,13 +2711,20 @@ type PhDocumentFieldsFragment = {
2194
2711
  readonly revision: number;
2195
2712
  }>;
2196
2713
  };
2197
- type GetDocumentModelsQueryVariables = Exact<{
2714
+ export type DocumentRelationshipFieldsFragment = {
2715
+ readonly sourceId: string;
2716
+ readonly targetId: string;
2717
+ readonly relationshipType: string;
2718
+ readonly metadata?: NonNullable<unknown> | null | undefined;
2719
+ readonly createdAt: string | Date;
2720
+ readonly updatedAt: string | Date;
2721
+ };
2722
+ export type GetDocumentModelsQueryVariables = Exact<{
2198
2723
  namespace?: InputMaybe<Scalars["String"]["input"]>;
2199
2724
  paging?: InputMaybe<PagingInput>;
2200
2725
  }>;
2201
- type GetDocumentModelsQuery = {
2726
+ export type GetDocumentModelsQuery = {
2202
2727
  readonly documentModels: {
2203
- readonly totalCount: number;
2204
2728
  readonly hasNextPage: boolean;
2205
2729
  readonly hasPreviousPage: boolean;
2206
2730
  readonly cursor?: string | null | undefined;
@@ -2213,11 +2737,11 @@ type GetDocumentModelsQuery = {
2213
2737
  }>;
2214
2738
  };
2215
2739
  };
2216
- type GetDocumentQueryVariables = Exact<{
2740
+ export type GetDocumentQueryVariables = Exact<{
2217
2741
  identifier: Scalars["String"]["input"];
2218
2742
  view?: InputMaybe<ViewFilterInput>;
2219
2743
  }>;
2220
- type GetDocumentQuery = {
2744
+ export type GetDocumentQuery = {
2221
2745
  readonly document?: {
2222
2746
  readonly childIds: ReadonlyArray<string>;
2223
2747
  readonly document: {
@@ -2225,6 +2749,8 @@ type GetDocumentQuery = {
2225
2749
  readonly slug?: string | null | undefined;
2226
2750
  readonly name: string;
2227
2751
  readonly documentType: string;
2752
+ readonly meta?: NonNullable<unknown> | null | undefined;
2753
+ readonly protocolVersions?: NonNullable<unknown> | null | undefined;
2228
2754
  readonly state: NonNullable<unknown>;
2229
2755
  readonly createdAtUtcIso: string | Date;
2230
2756
  readonly lastModifiedAtUtcIso: string | Date;
@@ -2235,13 +2761,13 @@ type GetDocumentQuery = {
2235
2761
  };
2236
2762
  } | null | undefined;
2237
2763
  };
2238
- type GetDocumentWithOperationsQueryVariables = Exact<{
2764
+ export type GetDocumentWithOperationsQueryVariables = Exact<{
2239
2765
  identifier: Scalars["String"]["input"];
2240
2766
  view?: InputMaybe<ViewFilterInput>;
2241
2767
  operationsFilter?: InputMaybe<DocumentOperationsFilterInput>;
2242
2768
  operationsPaging?: InputMaybe<PagingInput>;
2243
2769
  }>;
2244
- type GetDocumentWithOperationsQuery = {
2770
+ export type GetDocumentWithOperationsQuery = {
2245
2771
  readonly document?: {
2246
2772
  readonly childIds: ReadonlyArray<string>;
2247
2773
  readonly document: {
@@ -2249,11 +2775,12 @@ type GetDocumentWithOperationsQuery = {
2249
2775
  readonly slug?: string | null | undefined;
2250
2776
  readonly name: string;
2251
2777
  readonly documentType: string;
2778
+ readonly meta?: NonNullable<unknown> | null | undefined;
2779
+ readonly protocolVersions?: NonNullable<unknown> | null | undefined;
2252
2780
  readonly state: NonNullable<unknown>;
2253
2781
  readonly createdAtUtcIso: string | Date;
2254
2782
  readonly lastModifiedAtUtcIso: string | Date;
2255
2783
  readonly operations?: {
2256
- readonly totalCount: number;
2257
2784
  readonly hasNextPage: boolean;
2258
2785
  readonly hasPreviousPage: boolean;
2259
2786
  readonly cursor?: string | null | undefined;
@@ -2295,15 +2822,14 @@ type GetDocumentWithOperationsQuery = {
2295
2822
  };
2296
2823
  } | null | undefined;
2297
2824
  };
2298
- type GetDocumentOutgoingRelationshipsQueryVariables = Exact<{
2825
+ export type GetDocumentOutgoingRelationshipsQueryVariables = Exact<{
2299
2826
  sourceIdentifier: Scalars["String"]["input"];
2300
2827
  relationshipType: Scalars["String"]["input"];
2301
2828
  view?: InputMaybe<ViewFilterInput>;
2302
2829
  paging?: InputMaybe<PagingInput>;
2303
2830
  }>;
2304
- type GetDocumentOutgoingRelationshipsQuery = {
2831
+ export type GetDocumentOutgoingRelationshipsQuery = {
2305
2832
  readonly documentOutgoingRelationships: {
2306
- readonly totalCount: number;
2307
2833
  readonly hasNextPage: boolean;
2308
2834
  readonly hasPreviousPage: boolean;
2309
2835
  readonly cursor?: string | null | undefined;
@@ -2312,6 +2838,8 @@ type GetDocumentOutgoingRelationshipsQuery = {
2312
2838
  readonly slug?: string | null | undefined;
2313
2839
  readonly name: string;
2314
2840
  readonly documentType: string;
2841
+ readonly meta?: NonNullable<unknown> | null | undefined;
2842
+ readonly protocolVersions?: NonNullable<unknown> | null | undefined;
2315
2843
  readonly state: NonNullable<unknown>;
2316
2844
  readonly createdAtUtcIso: string | Date;
2317
2845
  readonly lastModifiedAtUtcIso: string | Date;
@@ -2322,15 +2850,14 @@ type GetDocumentOutgoingRelationshipsQuery = {
2322
2850
  }>;
2323
2851
  };
2324
2852
  };
2325
- type GetDocumentIncomingRelationshipsQueryVariables = Exact<{
2853
+ export type GetDocumentIncomingRelationshipsQueryVariables = Exact<{
2326
2854
  targetIdentifier: Scalars["String"]["input"];
2327
2855
  relationshipType: Scalars["String"]["input"];
2328
2856
  view?: InputMaybe<ViewFilterInput>;
2329
2857
  paging?: InputMaybe<PagingInput>;
2330
2858
  }>;
2331
- type GetDocumentIncomingRelationshipsQuery = {
2859
+ export type GetDocumentIncomingRelationshipsQuery = {
2332
2860
  readonly documentIncomingRelationships: {
2333
- readonly totalCount: number;
2334
2861
  readonly hasNextPage: boolean;
2335
2862
  readonly hasPreviousPage: boolean;
2336
2863
  readonly cursor?: string | null | undefined;
@@ -2339,6 +2866,8 @@ type GetDocumentIncomingRelationshipsQuery = {
2339
2866
  readonly slug?: string | null | undefined;
2340
2867
  readonly name: string;
2341
2868
  readonly documentType: string;
2869
+ readonly meta?: NonNullable<unknown> | null | undefined;
2870
+ readonly protocolVersions?: NonNullable<unknown> | null | undefined;
2342
2871
  readonly state: NonNullable<unknown>;
2343
2872
  readonly createdAtUtcIso: string | Date;
2344
2873
  readonly lastModifiedAtUtcIso: string | Date;
@@ -2349,14 +2878,55 @@ type GetDocumentIncomingRelationshipsQuery = {
2349
2878
  }>;
2350
2879
  };
2351
2880
  };
2352
- type FindDocumentsQueryVariables = Exact<{
2881
+ export type GetDocumentOutgoingRelationshipEdgesQueryVariables = Exact<{
2882
+ sourceIdentifier: Scalars["String"]["input"];
2883
+ relationshipType?: InputMaybe<Scalars["String"]["input"]>;
2884
+ view?: InputMaybe<ViewFilterInput>;
2885
+ paging?: InputMaybe<PagingInput>;
2886
+ }>;
2887
+ export type GetDocumentOutgoingRelationshipEdgesQuery = {
2888
+ readonly documentOutgoingRelationshipEdges: {
2889
+ readonly hasNextPage: boolean;
2890
+ readonly hasPreviousPage: boolean;
2891
+ readonly cursor?: string | null | undefined;
2892
+ readonly items: ReadonlyArray<{
2893
+ readonly sourceId: string;
2894
+ readonly targetId: string;
2895
+ readonly relationshipType: string;
2896
+ readonly metadata?: NonNullable<unknown> | null | undefined;
2897
+ readonly createdAt: string | Date;
2898
+ readonly updatedAt: string | Date;
2899
+ }>;
2900
+ };
2901
+ };
2902
+ export type GetDocumentIncomingRelationshipEdgesQueryVariables = Exact<{
2903
+ targetIdentifier: Scalars["String"]["input"];
2904
+ relationshipType?: InputMaybe<Scalars["String"]["input"]>;
2905
+ view?: InputMaybe<ViewFilterInput>;
2906
+ paging?: InputMaybe<PagingInput>;
2907
+ }>;
2908
+ export type GetDocumentIncomingRelationshipEdgesQuery = {
2909
+ readonly documentIncomingRelationshipEdges: {
2910
+ readonly hasNextPage: boolean;
2911
+ readonly hasPreviousPage: boolean;
2912
+ readonly cursor?: string | null | undefined;
2913
+ readonly items: ReadonlyArray<{
2914
+ readonly sourceId: string;
2915
+ readonly targetId: string;
2916
+ readonly relationshipType: string;
2917
+ readonly metadata?: NonNullable<unknown> | null | undefined;
2918
+ readonly createdAt: string | Date;
2919
+ readonly updatedAt: string | Date;
2920
+ }>;
2921
+ };
2922
+ };
2923
+ export type FindDocumentsQueryVariables = Exact<{
2353
2924
  search?: InputMaybe<SearchFilterInput>;
2354
2925
  view?: InputMaybe<ViewFilterInput>;
2355
2926
  paging?: InputMaybe<PagingInput>;
2356
2927
  }>;
2357
- type FindDocumentsQuery = {
2928
+ export type FindDocumentsQuery = {
2358
2929
  readonly findDocuments: {
2359
- readonly totalCount: number;
2360
2930
  readonly hasNextPage: boolean;
2361
2931
  readonly hasPreviousPage: boolean;
2362
2932
  readonly cursor?: string | null | undefined;
@@ -2365,6 +2935,8 @@ type FindDocumentsQuery = {
2365
2935
  readonly slug?: string | null | undefined;
2366
2936
  readonly name: string;
2367
2937
  readonly documentType: string;
2938
+ readonly meta?: NonNullable<unknown> | null | undefined;
2939
+ readonly protocolVersions?: NonNullable<unknown> | null | undefined;
2368
2940
  readonly state: NonNullable<unknown>;
2369
2941
  readonly createdAtUtcIso: string | Date;
2370
2942
  readonly lastModifiedAtUtcIso: string | Date;
@@ -2375,13 +2947,12 @@ type FindDocumentsQuery = {
2375
2947
  }>;
2376
2948
  };
2377
2949
  };
2378
- type GetDocumentOperationsQueryVariables = Exact<{
2950
+ export type GetDocumentOperationsQueryVariables = Exact<{
2379
2951
  filter: OperationsFilterInput;
2380
2952
  paging?: InputMaybe<PagingInput>;
2381
2953
  }>;
2382
- type GetDocumentOperationsQuery = {
2954
+ export type GetDocumentOperationsQuery = {
2383
2955
  readonly documentOperations: {
2384
- readonly totalCount: number;
2385
2956
  readonly hasNextPage: boolean;
2386
2957
  readonly hasPreviousPage: boolean;
2387
2958
  readonly cursor?: string | null | undefined;
@@ -2417,25 +2988,65 @@ type GetDocumentOperationsQuery = {
2417
2988
  }>;
2418
2989
  };
2419
2990
  };
2420
- type GetJobStatusQueryVariables = Exact<{
2991
+ export type JobInfoFieldsFragment = {
2992
+ readonly id: string;
2993
+ readonly documentId: string;
2994
+ readonly status: string;
2995
+ readonly result?: NonNullable<unknown> | null | undefined;
2996
+ readonly error?: string | null | undefined;
2997
+ readonly errorName?: string | null | undefined;
2998
+ readonly createdAt: string | Date;
2999
+ readonly completedAt?: string | Date | null | undefined;
3000
+ readonly consistencyToken: {
3001
+ readonly version: number;
3002
+ readonly createdAtUtcIso: string;
3003
+ readonly coordinates: ReadonlyArray<{
3004
+ readonly documentId: string;
3005
+ readonly scope: string;
3006
+ readonly branch: string;
3007
+ readonly operationIndex: number;
3008
+ }>;
3009
+ };
3010
+ readonly meta: {
3011
+ readonly batchId: string;
3012
+ readonly batchJobIds: ReadonlyArray<string>;
3013
+ };
3014
+ };
3015
+ export type GetJobStatusQueryVariables = Exact<{
2421
3016
  jobId: Scalars["String"]["input"];
2422
3017
  }>;
2423
- type GetJobStatusQuery = {
3018
+ export type GetJobStatusQuery = {
2424
3019
  readonly jobStatus?: {
2425
3020
  readonly id: string;
3021
+ readonly documentId: string;
2426
3022
  readonly status: string;
2427
3023
  readonly result?: NonNullable<unknown> | null | undefined;
2428
3024
  readonly error?: string | null | undefined;
3025
+ readonly errorName?: string | null | undefined;
2429
3026
  readonly createdAt: string | Date;
2430
3027
  readonly completedAt?: string | Date | null | undefined;
3028
+ readonly consistencyToken: {
3029
+ readonly version: number;
3030
+ readonly createdAtUtcIso: string;
3031
+ readonly coordinates: ReadonlyArray<{
3032
+ readonly documentId: string;
3033
+ readonly scope: string;
3034
+ readonly branch: string;
3035
+ readonly operationIndex: number;
3036
+ }>;
3037
+ };
3038
+ readonly meta: {
3039
+ readonly batchId: string;
3040
+ readonly batchJobIds: ReadonlyArray<string>;
3041
+ };
2431
3042
  } | null | undefined;
2432
3043
  };
2433
- type EvaluateActionsQueryVariables = Exact<{
3044
+ export type EvaluateActionsQueryVariables = Exact<{
2434
3045
  documentIdentifier: Scalars["String"]["input"];
2435
3046
  branch?: InputMaybe<Scalars["String"]["input"]>;
2436
3047
  candidates: ReadonlyArray<ActionCandidateInput>;
2437
3048
  }>;
2438
- type EvaluateActionsQuery = {
3049
+ export type EvaluateActionsQuery = {
2439
3050
  readonly evaluateActions: {
2440
3051
  readonly allAllowed: boolean;
2441
3052
  readonly anyAllowed: boolean;
@@ -2447,16 +3058,18 @@ type EvaluateActionsQuery = {
2447
3058
  }>;
2448
3059
  };
2449
3060
  };
2450
- type CreateDocumentMutationVariables = Exact<{
3061
+ export type CreateDocumentMutationVariables = Exact<{
2451
3062
  document: Scalars["JSONObject"]["input"];
2452
3063
  parentIdentifier?: InputMaybe<Scalars["String"]["input"]>;
2453
3064
  }>;
2454
- type CreateDocumentMutation = {
3065
+ export type CreateDocumentMutation = {
2455
3066
  readonly createDocument: {
2456
3067
  readonly id: string;
2457
3068
  readonly slug?: string | null | undefined;
2458
3069
  readonly name: string;
2459
3070
  readonly documentType: string;
3071
+ readonly meta?: NonNullable<unknown> | null | undefined;
3072
+ readonly protocolVersions?: NonNullable<unknown> | null | undefined;
2460
3073
  readonly state: NonNullable<unknown>;
2461
3074
  readonly createdAtUtcIso: string | Date;
2462
3075
  readonly lastModifiedAtUtcIso: string | Date;
@@ -2466,16 +3079,18 @@ type CreateDocumentMutation = {
2466
3079
  }>;
2467
3080
  };
2468
3081
  };
2469
- type CreateEmptyDocumentMutationVariables = Exact<{
3082
+ export type CreateEmptyDocumentMutationVariables = Exact<{
2470
3083
  documentType: Scalars["String"]["input"];
2471
3084
  parentIdentifier?: InputMaybe<Scalars["String"]["input"]>;
2472
3085
  }>;
2473
- type CreateEmptyDocumentMutation = {
3086
+ export type CreateEmptyDocumentMutation = {
2474
3087
  readonly createEmptyDocument: {
2475
3088
  readonly id: string;
2476
3089
  readonly slug?: string | null | undefined;
2477
3090
  readonly name: string;
2478
3091
  readonly documentType: string;
3092
+ readonly meta?: NonNullable<unknown> | null | undefined;
3093
+ readonly protocolVersions?: NonNullable<unknown> | null | undefined;
2479
3094
  readonly state: NonNullable<unknown>;
2480
3095
  readonly createdAtUtcIso: string | Date;
2481
3096
  readonly lastModifiedAtUtcIso: string | Date;
@@ -2485,17 +3100,19 @@ type CreateEmptyDocumentMutation = {
2485
3100
  }>;
2486
3101
  };
2487
3102
  };
2488
- type MutateDocumentMutationVariables = Exact<{
3103
+ export type MutateDocumentMutationVariables = Exact<{
2489
3104
  documentIdentifier: Scalars["String"]["input"];
2490
3105
  actions: ReadonlyArray<ActionInput>;
2491
3106
  branch?: InputMaybe<Scalars["String"]["input"]>;
2492
3107
  }>;
2493
- type MutateDocumentMutation = {
3108
+ export type MutateDocumentMutation = {
2494
3109
  readonly mutateDocument: {
2495
3110
  readonly id: string;
2496
3111
  readonly slug?: string | null | undefined;
2497
3112
  readonly name: string;
2498
3113
  readonly documentType: string;
3114
+ readonly meta?: NonNullable<unknown> | null | undefined;
3115
+ readonly protocolVersions?: NonNullable<unknown> | null | undefined;
2499
3116
  readonly state: NonNullable<unknown>;
2500
3117
  readonly createdAtUtcIso: string | Date;
2501
3118
  readonly lastModifiedAtUtcIso: string | Date;
@@ -2505,32 +3122,84 @@ type MutateDocumentMutation = {
2505
3122
  }>;
2506
3123
  };
2507
3124
  };
2508
- type MutateDocumentAsyncMutationVariables = Exact<{
3125
+ export type MutateDocumentAsyncMutationVariables = Exact<{
2509
3126
  documentIdentifier: Scalars["String"]["input"];
2510
3127
  actions: ReadonlyArray<ActionInput>;
2511
3128
  branch?: InputMaybe<Scalars["String"]["input"]>;
2512
3129
  }>;
2513
- type MutateDocumentAsyncMutation = {
3130
+ export type MutateDocumentAsyncMutation = {
2514
3131
  readonly mutateDocumentAsync: {
2515
3132
  readonly id: string;
3133
+ readonly documentId: string;
2516
3134
  readonly status: string;
2517
3135
  readonly result?: NonNullable<unknown> | null | undefined;
2518
3136
  readonly error?: string | null | undefined;
3137
+ readonly errorName?: string | null | undefined;
2519
3138
  readonly createdAt: string | Date;
2520
3139
  readonly completedAt?: string | Date | null | undefined;
3140
+ readonly consistencyToken: {
3141
+ readonly version: number;
3142
+ readonly createdAtUtcIso: string;
3143
+ readonly coordinates: ReadonlyArray<{
3144
+ readonly documentId: string;
3145
+ readonly scope: string;
3146
+ readonly branch: string;
3147
+ readonly operationIndex: number;
3148
+ }>;
3149
+ };
3150
+ readonly meta: {
3151
+ readonly batchId: string;
3152
+ readonly batchJobIds: ReadonlyArray<string>;
3153
+ };
3154
+ };
3155
+ };
3156
+ export type ExecuteBatchMutationVariables = Exact<{
3157
+ jobs: ReadonlyArray<ExecutionJobInput>;
3158
+ }>;
3159
+ export type ExecuteBatchMutation = {
3160
+ readonly executeBatch: {
3161
+ readonly jobs: ReadonlyArray<{
3162
+ readonly key: string;
3163
+ readonly job: {
3164
+ readonly id: string;
3165
+ readonly documentId: string;
3166
+ readonly status: string;
3167
+ readonly result?: NonNullable<unknown> | null | undefined;
3168
+ readonly error?: string | null | undefined;
3169
+ readonly errorName?: string | null | undefined;
3170
+ readonly createdAt: string | Date;
3171
+ readonly completedAt?: string | Date | null | undefined;
3172
+ readonly consistencyToken: {
3173
+ readonly version: number;
3174
+ readonly createdAtUtcIso: string;
3175
+ readonly coordinates: ReadonlyArray<{
3176
+ readonly documentId: string;
3177
+ readonly scope: string;
3178
+ readonly branch: string;
3179
+ readonly operationIndex: number;
3180
+ }>;
3181
+ };
3182
+ readonly meta: {
3183
+ readonly batchId: string;
3184
+ readonly batchJobIds: ReadonlyArray<string>;
3185
+ };
3186
+ };
3187
+ }>;
2521
3188
  };
2522
3189
  };
2523
- type RenameDocumentMutationVariables = Exact<{
3190
+ export type RenameDocumentMutationVariables = Exact<{
2524
3191
  documentIdentifier: Scalars["String"]["input"];
2525
3192
  name: Scalars["String"]["input"];
2526
3193
  branch?: InputMaybe<Scalars["String"]["input"]>;
2527
3194
  }>;
2528
- type RenameDocumentMutation = {
3195
+ export type RenameDocumentMutation = {
2529
3196
  readonly renameDocument: {
2530
3197
  readonly id: string;
2531
3198
  readonly slug?: string | null | undefined;
2532
3199
  readonly name: string;
2533
3200
  readonly documentType: string;
3201
+ readonly meta?: NonNullable<unknown> | null | undefined;
3202
+ readonly protocolVersions?: NonNullable<unknown> | null | undefined;
2534
3203
  readonly state: NonNullable<unknown>;
2535
3204
  readonly createdAtUtcIso: string | Date;
2536
3205
  readonly lastModifiedAtUtcIso: string | Date;
@@ -2540,17 +3209,19 @@ type RenameDocumentMutation = {
2540
3209
  }>;
2541
3210
  };
2542
3211
  };
2543
- type SetPreferredEditorMutationVariables = Exact<{
3212
+ export type SetPreferredEditorMutationVariables = Exact<{
2544
3213
  documentIdentifier: Scalars["String"]["input"];
2545
3214
  preferredEditor?: InputMaybe<Scalars["String"]["input"]>;
2546
3215
  branch?: InputMaybe<Scalars["String"]["input"]>;
2547
3216
  }>;
2548
- type SetPreferredEditorMutation = {
3217
+ export type SetPreferredEditorMutation = {
2549
3218
  readonly setPreferredEditor: {
2550
3219
  readonly id: string;
2551
3220
  readonly slug?: string | null | undefined;
2552
3221
  readonly name: string;
2553
3222
  readonly documentType: string;
3223
+ readonly meta?: NonNullable<unknown> | null | undefined;
3224
+ readonly protocolVersions?: NonNullable<unknown> | null | undefined;
2554
3225
  readonly state: NonNullable<unknown>;
2555
3226
  readonly createdAtUtcIso: string | Date;
2556
3227
  readonly lastModifiedAtUtcIso: string | Date;
@@ -2560,18 +3231,21 @@ type SetPreferredEditorMutation = {
2560
3231
  }>;
2561
3232
  };
2562
3233
  };
2563
- type AddRelationshipMutationVariables = Exact<{
3234
+ export type AddRelationshipMutationVariables = Exact<{
2564
3235
  sourceIdentifier: Scalars["String"]["input"];
2565
3236
  targetIdentifier: Scalars["String"]["input"];
2566
3237
  relationshipType: Scalars["String"]["input"];
3238
+ metadata?: InputMaybe<Scalars["JSONObject"]["input"]>;
2567
3239
  branch?: InputMaybe<Scalars["String"]["input"]>;
2568
3240
  }>;
2569
- type AddRelationshipMutation = {
3241
+ export type AddRelationshipMutation = {
2570
3242
  readonly addRelationship: {
2571
3243
  readonly id: string;
2572
3244
  readonly slug?: string | null | undefined;
2573
3245
  readonly name: string;
2574
3246
  readonly documentType: string;
3247
+ readonly meta?: NonNullable<unknown> | null | undefined;
3248
+ readonly protocolVersions?: NonNullable<unknown> | null | undefined;
2575
3249
  readonly state: NonNullable<unknown>;
2576
3250
  readonly createdAtUtcIso: string | Date;
2577
3251
  readonly lastModifiedAtUtcIso: string | Date;
@@ -2581,18 +3255,44 @@ type AddRelationshipMutation = {
2581
3255
  }>;
2582
3256
  };
2583
3257
  };
2584
- type RemoveRelationshipMutationVariables = Exact<{
3258
+ export type UpdateRelationshipMutationVariables = Exact<{
2585
3259
  sourceIdentifier: Scalars["String"]["input"];
2586
3260
  targetIdentifier: Scalars["String"]["input"];
2587
3261
  relationshipType: Scalars["String"]["input"];
3262
+ metadata?: InputMaybe<Scalars["JSONObject"]["input"]>;
2588
3263
  branch?: InputMaybe<Scalars["String"]["input"]>;
2589
3264
  }>;
2590
- type RemoveRelationshipMutation = {
3265
+ export type UpdateRelationshipMutation = {
3266
+ readonly updateRelationship: {
3267
+ readonly id: string;
3268
+ readonly slug?: string | null | undefined;
3269
+ readonly name: string;
3270
+ readonly documentType: string;
3271
+ readonly meta?: NonNullable<unknown> | null | undefined;
3272
+ readonly protocolVersions?: NonNullable<unknown> | null | undefined;
3273
+ readonly state: NonNullable<unknown>;
3274
+ readonly createdAtUtcIso: string | Date;
3275
+ readonly lastModifiedAtUtcIso: string | Date;
3276
+ readonly revisionsList: ReadonlyArray<{
3277
+ readonly scope: string;
3278
+ readonly revision: number;
3279
+ }>;
3280
+ };
3281
+ };
3282
+ export type RemoveRelationshipMutationVariables = Exact<{
3283
+ sourceIdentifier: Scalars["String"]["input"];
3284
+ targetIdentifier: Scalars["String"]["input"];
3285
+ relationshipType: Scalars["String"]["input"];
3286
+ branch?: InputMaybe<Scalars["String"]["input"]>;
3287
+ }>;
3288
+ export type RemoveRelationshipMutation = {
2591
3289
  readonly removeRelationship: {
2592
3290
  readonly id: string;
2593
3291
  readonly slug?: string | null | undefined;
2594
3292
  readonly name: string;
2595
3293
  readonly documentType: string;
3294
+ readonly meta?: NonNullable<unknown> | null | undefined;
3295
+ readonly protocolVersions?: NonNullable<unknown> | null | undefined;
2596
3296
  readonly state: NonNullable<unknown>;
2597
3297
  readonly createdAtUtcIso: string | Date;
2598
3298
  readonly lastModifiedAtUtcIso: string | Date;
@@ -2602,20 +3302,22 @@ type RemoveRelationshipMutation = {
2602
3302
  }>;
2603
3303
  };
2604
3304
  };
2605
- type MoveRelationshipMutationVariables = Exact<{
3305
+ export type MoveRelationshipMutationVariables = Exact<{
2606
3306
  sourceParentIdentifier: Scalars["String"]["input"];
2607
3307
  targetParentIdentifier: Scalars["String"]["input"];
2608
3308
  targetIdentifier: Scalars["String"]["input"];
2609
3309
  relationshipType: Scalars["String"]["input"];
2610
3310
  branch?: InputMaybe<Scalars["String"]["input"]>;
2611
3311
  }>;
2612
- type MoveRelationshipMutation = {
3312
+ export type MoveRelationshipMutation = {
2613
3313
  readonly moveRelationship: {
2614
3314
  readonly source: {
2615
3315
  readonly id: string;
2616
3316
  readonly slug?: string | null | undefined;
2617
3317
  readonly name: string;
2618
3318
  readonly documentType: string;
3319
+ readonly meta?: NonNullable<unknown> | null | undefined;
3320
+ readonly protocolVersions?: NonNullable<unknown> | null | undefined;
2619
3321
  readonly state: NonNullable<unknown>;
2620
3322
  readonly createdAtUtcIso: string | Date;
2621
3323
  readonly lastModifiedAtUtcIso: string | Date;
@@ -2629,6 +3331,8 @@ type MoveRelationshipMutation = {
2629
3331
  readonly slug?: string | null | undefined;
2630
3332
  readonly name: string;
2631
3333
  readonly documentType: string;
3334
+ readonly meta?: NonNullable<unknown> | null | undefined;
3335
+ readonly protocolVersions?: NonNullable<unknown> | null | undefined;
2632
3336
  readonly state: NonNullable<unknown>;
2633
3337
  readonly createdAtUtcIso: string | Date;
2634
3338
  readonly lastModifiedAtUtcIso: string | Date;
@@ -2639,25 +3343,25 @@ type MoveRelationshipMutation = {
2639
3343
  };
2640
3344
  };
2641
3345
  };
2642
- type DeleteDocumentMutationVariables = Exact<{
3346
+ export type DeleteDocumentMutationVariables = Exact<{
2643
3347
  identifier: Scalars["String"]["input"];
2644
3348
  propagate?: InputMaybe<PropagationMode>;
2645
3349
  }>;
2646
- type DeleteDocumentMutation = {
3350
+ export type DeleteDocumentMutation = {
2647
3351
  readonly deleteDocument: boolean;
2648
3352
  };
2649
- type DeleteDocumentsMutationVariables = Exact<{
3353
+ export type DeleteDocumentsMutationVariables = Exact<{
2650
3354
  identifiers: ReadonlyArray<Scalars["String"]["input"]>;
2651
3355
  propagate?: InputMaybe<PropagationMode>;
2652
3356
  }>;
2653
- type DeleteDocumentsMutation = {
3357
+ export type DeleteDocumentsMutation = {
2654
3358
  readonly deleteDocuments: boolean;
2655
3359
  };
2656
- type DocumentChangesSubscriptionVariables = Exact<{
3360
+ export type DocumentChangesSubscriptionVariables = Exact<{
2657
3361
  search?: InputMaybe<SearchFilterInput>;
2658
3362
  view?: InputMaybe<ViewFilterInput>;
2659
3363
  }>;
2660
- type DocumentChangesSubscription = {
3364
+ export type DocumentChangesSubscription = {
2661
3365
  readonly documentChanges: {
2662
3366
  readonly type: DocumentChangeType;
2663
3367
  readonly documents: ReadonlyArray<{
@@ -2665,6 +3369,8 @@ type DocumentChangesSubscription = {
2665
3369
  readonly slug?: string | null | undefined;
2666
3370
  readonly name: string;
2667
3371
  readonly documentType: string;
3372
+ readonly meta?: NonNullable<unknown> | null | undefined;
3373
+ readonly protocolVersions?: NonNullable<unknown> | null | undefined;
2668
3374
  readonly state: NonNullable<unknown>;
2669
3375
  readonly createdAtUtcIso: string | Date;
2670
3376
  readonly lastModifiedAtUtcIso: string | Date;
@@ -2679,26 +3385,30 @@ type DocumentChangesSubscription = {
2679
3385
  } | null | undefined;
2680
3386
  };
2681
3387
  };
2682
- type JobChangesSubscriptionVariables = Exact<{
3388
+ export type JobChangesSubscriptionVariables = Exact<{
2683
3389
  jobId: Scalars["String"]["input"];
2684
3390
  }>;
2685
- type JobChangesSubscription = {
3391
+ export type JobChangesSubscription = {
2686
3392
  readonly jobChanges: {
2687
3393
  readonly jobId: string;
2688
3394
  readonly status: string;
2689
- readonly result: NonNullable<unknown>;
3395
+ readonly result?: NonNullable<unknown> | null | undefined;
2690
3396
  readonly error?: string | null | undefined;
2691
3397
  };
2692
3398
  };
2693
- type PollSyncEnvelopesQueryVariables = Exact<{
3399
+ export type PollSyncEnvelopesQueryVariables = Exact<{
2694
3400
  channelId: Scalars["String"]["input"];
2695
3401
  outboxAck: Scalars["Int"]["input"];
2696
3402
  outboxLatest: Scalars["Int"]["input"];
3403
+ manifestRevision?: InputMaybe<Scalars["String"]["input"]>;
3404
+ refusals?: InputMaybe<ReadonlyArray<SyncRefusalInput>>;
2697
3405
  }>;
2698
- type PollSyncEnvelopesQuery = {
3406
+ export type PollSyncEnvelopesQuery = {
2699
3407
  readonly pollSyncEnvelopes: {
2700
3408
  readonly ackOrdinal: number;
2701
3409
  readonly hasMore: boolean;
3410
+ readonly manifestRevision?: string | null | undefined;
3411
+ readonly peerManifestRevision?: string | null | undefined;
2702
3412
  readonly envelopes: ReadonlyArray<{
2703
3413
  readonly type: SyncEnvelopeType;
2704
3414
  readonly key?: string | null | undefined;
@@ -2757,47 +3467,49 @@ type PollSyncEnvelopesQuery = {
2757
3467
  }>;
2758
3468
  };
2759
3469
  };
2760
- type TouchChannelMutationVariables = Exact<{
3470
+ export type TouchChannelMutationVariables = Exact<{
2761
3471
  input: TouchChannelInput;
2762
3472
  }>;
2763
- type TouchChannelMutation = {
3473
+ export type TouchChannelMutation = {
2764
3474
  readonly touchChannel: {
2765
3475
  readonly success: boolean;
2766
3476
  readonly ackOrdinal: number;
3477
+ readonly manifest?: NonNullable<unknown> | null | undefined;
2767
3478
  };
2768
3479
  };
2769
- type PushSyncEnvelopesMutationVariables = Exact<{
3480
+ export type PushSyncEnvelopesMutationVariables = Exact<{
2770
3481
  envelopes: ReadonlyArray<SyncEnvelopeInput>;
3482
+ peerManifestRevision?: InputMaybe<Scalars["String"]["input"]>;
2771
3483
  }>;
2772
- type PushSyncEnvelopesMutation = {
3484
+ export type PushSyncEnvelopesMutation = {
2773
3485
  readonly pushSyncEnvelopes: boolean;
2774
3486
  };
2775
- type WithIndex<TObject> = TObject & Record<string, any>;
2776
- type ResolversObject<TObject> = WithIndex<TObject>;
2777
- type ResolverTypeWrapper<T> = Promise<T> | T;
2778
- type ResolverWithResolve<TResult, TParent, TContext, TArgs> = {
3487
+ export type WithIndex<TObject> = TObject & Record<string, any>;
3488
+ export type ResolversObject<TObject> = WithIndex<TObject>;
3489
+ export type ResolverTypeWrapper<T> = Promise<T> | T;
3490
+ export type ResolverWithResolve<TResult, TParent, TContext, TArgs> = {
2779
3491
  resolve: ResolverFn<TResult, TParent, TContext, TArgs>;
2780
3492
  };
2781
- type Resolver<TResult, TParent = Record<PropertyKey, never>, TContext = Record<PropertyKey, never>, TArgs = Record<PropertyKey, never>> = ResolverFn<TResult, TParent, TContext, TArgs> | ResolverWithResolve<TResult, TParent, TContext, TArgs>;
2782
- type ResolverFn<TResult, TParent, TContext, TArgs> = (parent: TParent, args: TArgs, context: TContext, info: GraphQLResolveInfo) => Promise<TResult> | TResult;
2783
- type SubscriptionSubscribeFn<TResult, TParent, TContext, TArgs> = (parent: TParent, args: TArgs, context: TContext, info: GraphQLResolveInfo) => AsyncIterable<TResult> | Promise<AsyncIterable<TResult>>;
2784
- type SubscriptionResolveFn<TResult, TParent, TContext, TArgs> = (parent: TParent, args: TArgs, context: TContext, info: GraphQLResolveInfo) => TResult | Promise<TResult>;
2785
- interface SubscriptionSubscriberObject<TResult, TKey extends string, TParent, TContext, TArgs> {
2786
- subscribe: SubscriptionSubscribeFn<{ [key in TKey]: TResult }, TParent, TContext, TArgs>;
2787
- resolve?: SubscriptionResolveFn<TResult, { [key in TKey]: TResult }, TContext, TArgs>;
3493
+ export type Resolver<TResult, TParent = Record<PropertyKey, never>, TContext = Record<PropertyKey, never>, TArgs = Record<PropertyKey, never>> = ResolverFn<TResult, TParent, TContext, TArgs> | ResolverWithResolve<TResult, TParent, TContext, TArgs>;
3494
+ export type ResolverFn<TResult, TParent, TContext, TArgs> = (parent: TParent, args: TArgs, context: TContext, info: GraphQLResolveInfo) => Promise<TResult> | TResult;
3495
+ export type SubscriptionSubscribeFn<TResult, TParent, TContext, TArgs> = (parent: TParent, args: TArgs, context: TContext, info: GraphQLResolveInfo) => AsyncIterable<TResult> | Promise<AsyncIterable<TResult>>;
3496
+ export type SubscriptionResolveFn<TResult, TParent, TContext, TArgs> = (parent: TParent, args: TArgs, context: TContext, info: GraphQLResolveInfo) => TResult | Promise<TResult>;
3497
+ export interface SubscriptionSubscriberObject<TResult, TKey extends string, TParent, TContext, TArgs> {
3498
+ subscribe: SubscriptionSubscribeFn<{ [key in TKey]: TResult; }, TParent, TContext, TArgs>;
3499
+ resolve?: SubscriptionResolveFn<TResult, { [key in TKey]: TResult; }, TContext, TArgs>;
2788
3500
  }
2789
- interface SubscriptionResolverObject<TResult, TParent, TContext, TArgs> {
3501
+ export interface SubscriptionResolverObject<TResult, TParent, TContext, TArgs> {
2790
3502
  subscribe: SubscriptionSubscribeFn<any, TParent, TContext, TArgs>;
2791
3503
  resolve: SubscriptionResolveFn<TResult, any, TContext, TArgs>;
2792
3504
  }
2793
- type SubscriptionObject<TResult, TKey extends string, TParent, TContext, TArgs> = SubscriptionSubscriberObject<TResult, TKey, TParent, TContext, TArgs> | SubscriptionResolverObject<TResult, TParent, TContext, TArgs>;
2794
- type SubscriptionResolver<TResult, TKey extends string, TParent = Record<PropertyKey, never>, TContext = Record<PropertyKey, never>, TArgs = Record<PropertyKey, never>> = ((...args: any[]) => SubscriptionObject<TResult, TKey, TParent, TContext, TArgs>) | SubscriptionObject<TResult, TKey, TParent, TContext, TArgs>;
2795
- type TypeResolveFn<TTypes, TParent = Record<PropertyKey, never>, TContext = Record<PropertyKey, never>> = (parent: TParent, context: TContext, info: GraphQLResolveInfo) => Maybe<TTypes> | Promise<Maybe<TTypes>>;
2796
- type IsTypeOfResolverFn<T = Record<PropertyKey, never>, TContext = Record<PropertyKey, never>> = (obj: T, context: TContext, info: GraphQLResolveInfo) => boolean | Promise<boolean>;
2797
- type NextResolverFn<T> = () => Promise<T>;
2798
- type DirectiveResolverFn<TResult = Record<PropertyKey, never>, TParent = Record<PropertyKey, never>, TContext = Record<PropertyKey, never>, TArgs = Record<PropertyKey, never>> = (next: NextResolverFn<TResult>, parent: TParent, args: TArgs, context: TContext, info: GraphQLResolveInfo) => TResult | Promise<TResult>;
3505
+ export type SubscriptionObject<TResult, TKey extends string, TParent, TContext, TArgs> = SubscriptionSubscriberObject<TResult, TKey, TParent, TContext, TArgs> | SubscriptionResolverObject<TResult, TParent, TContext, TArgs>;
3506
+ export type SubscriptionResolver<TResult, TKey extends string, TParent = Record<PropertyKey, never>, TContext = Record<PropertyKey, never>, TArgs = Record<PropertyKey, never>> = ((...args: any[]) => SubscriptionObject<TResult, TKey, TParent, TContext, TArgs>) | SubscriptionObject<TResult, TKey, TParent, TContext, TArgs>;
3507
+ export type TypeResolveFn<TTypes, TParent = Record<PropertyKey, never>, TContext = Record<PropertyKey, never>> = (parent: TParent, context: TContext, info: GraphQLResolveInfo) => Maybe<TTypes> | Promise<Maybe<TTypes>>;
3508
+ export type IsTypeOfResolverFn<T = Record<PropertyKey, never>, TContext = Record<PropertyKey, never>> = (obj: T, context: TContext, info: GraphQLResolveInfo) => boolean | Promise<boolean>;
3509
+ export type NextResolverFn<T> = () => Promise<T>;
3510
+ export type DirectiveResolverFn<TResult = Record<PropertyKey, never>, TParent = Record<PropertyKey, never>, TContext = Record<PropertyKey, never>, TArgs = Record<PropertyKey, never>> = (next: NextResolverFn<TResult>, parent: TParent, args: TArgs, context: TContext, info: GraphQLResolveInfo) => TResult | Promise<TResult>;
2799
3511
  /** Mapping between all available schema types and the resolvers types */
2800
- type ResolversTypes = ResolversObject<{
3512
+ export type ResolversTypes = ResolversObject<{
2801
3513
  Action: ResolverTypeWrapper<Action>;
2802
3514
  ActionCandidateInput: ActionCandidateInput;
2803
3515
  ActionContext: ResolverTypeWrapper<ActionContext>;
@@ -2806,9 +3518,13 @@ type ResolversTypes = ResolversObject<{
2806
3518
  ActionEvaluations: ResolverTypeWrapper<ActionEvaluations>;
2807
3519
  ActionInput: ActionInput;
2808
3520
  AuthDecision: AuthDecision;
3521
+ BatchExecutionResult: ResolverTypeWrapper<BatchExecutionResult>;
3522
+ BatchJobResult: ResolverTypeWrapper<BatchJobResult>;
2809
3523
  Boolean: ResolverTypeWrapper<Scalars["Boolean"]["output"]>;
2810
3524
  ChannelMeta: ResolverTypeWrapper<ChannelMeta>;
2811
3525
  ChannelMetaInput: ChannelMetaInput;
3526
+ ConsistencyCoordinate: ResolverTypeWrapper<ConsistencyCoordinate>;
3527
+ ConsistencyToken: ResolverTypeWrapper<ConsistencyToken>;
2812
3528
  DateTime: ResolverTypeWrapper<Scalars["DateTime"]["output"]>;
2813
3529
  DeadLetterInfo: ResolverTypeWrapper<DeadLetterInfo>;
2814
3530
  DocumentChangeContext: ResolverTypeWrapper<DocumentChangeContext>;
@@ -2817,9 +3533,13 @@ type ResolversTypes = ResolversObject<{
2817
3533
  DocumentModelGlobalState: ResolverTypeWrapper<DocumentModelGlobalState>;
2818
3534
  DocumentModelResultPage: ResolverTypeWrapper<DocumentModelResultPage>;
2819
3535
  DocumentOperationsFilterInput: DocumentOperationsFilterInput;
3536
+ DocumentRelationship: ResolverTypeWrapper<DocumentRelationship>;
3537
+ DocumentRelationshipResultPage: ResolverTypeWrapper<DocumentRelationshipResultPage>;
2820
3538
  DocumentWithChildren: ResolverTypeWrapper<DocumentWithChildren>;
3539
+ ExecutionJobInput: ExecutionJobInput;
2821
3540
  Int: ResolverTypeWrapper<Scalars["Int"]["output"]>;
2822
3541
  JSONObject: ResolverTypeWrapper<Scalars["JSONObject"]["output"]>;
3542
+ JobBatchMeta: ResolverTypeWrapper<JobBatchMeta>;
2823
3543
  JobChangeEvent: ResolverTypeWrapper<JobChangeEvent>;
2824
3544
  JobInfo: ResolverTypeWrapper<JobInfo>;
2825
3545
  MoveRelationshipResult: ResolverTypeWrapper<MoveRelationshipResult>;
@@ -2833,6 +3553,9 @@ type ResolversTypes = ResolversObject<{
2833
3553
  PHDocument: ResolverTypeWrapper<PhDocument>;
2834
3554
  PHDocumentResultPage: ResolverTypeWrapper<PhDocumentResultPage>;
2835
3555
  PagingInput: PagingInput;
3556
+ PeerAgreement: ResolverTypeWrapper<PeerAgreement>;
3557
+ PeerAgreementLimit: ResolverTypeWrapper<PeerAgreementLimit>;
3558
+ PeerAgreementMember: ResolverTypeWrapper<PeerAgreementMember>;
2836
3559
  PollSyncEnvelopesResult: ResolverTypeWrapper<PollSyncEnvelopesResult>;
2837
3560
  PropagationMode: PropagationMode;
2838
3561
  Query: ResolverTypeWrapper<Record<PropertyKey, never>>;
@@ -2854,12 +3577,15 @@ type ResolversTypes = ResolversObject<{
2854
3577
  SyncEnvelope: ResolverTypeWrapper<SyncEnvelope>;
2855
3578
  SyncEnvelopeInput: SyncEnvelopeInput;
2856
3579
  SyncEnvelopeType: SyncEnvelopeType;
3580
+ SyncHold: ResolverTypeWrapper<SyncHold>;
3581
+ SyncHoldReason: ResolverTypeWrapper<SyncHoldReason>;
3582
+ SyncRefusalInput: SyncRefusalInput;
2857
3583
  TouchChannelInput: TouchChannelInput;
2858
3584
  TouchChannelResult: ResolverTypeWrapper<TouchChannelResult>;
2859
3585
  ViewFilterInput: ViewFilterInput;
2860
3586
  }>;
2861
3587
  /** Mapping between all available schema types and the resolvers parents */
2862
- type ResolversParentTypes = ResolversObject<{
3588
+ export type ResolversParentTypes = ResolversObject<{
2863
3589
  Action: Action;
2864
3590
  ActionCandidateInput: ActionCandidateInput;
2865
3591
  ActionContext: ActionContext;
@@ -2867,9 +3593,13 @@ type ResolversParentTypes = ResolversObject<{
2867
3593
  ActionEvaluation: ActionEvaluation;
2868
3594
  ActionEvaluations: ActionEvaluations;
2869
3595
  ActionInput: ActionInput;
3596
+ BatchExecutionResult: BatchExecutionResult;
3597
+ BatchJobResult: BatchJobResult;
2870
3598
  Boolean: Scalars["Boolean"]["output"];
2871
3599
  ChannelMeta: ChannelMeta;
2872
3600
  ChannelMetaInput: ChannelMetaInput;
3601
+ ConsistencyCoordinate: ConsistencyCoordinate;
3602
+ ConsistencyToken: ConsistencyToken;
2873
3603
  DateTime: Scalars["DateTime"]["output"];
2874
3604
  DeadLetterInfo: DeadLetterInfo;
2875
3605
  DocumentChangeContext: DocumentChangeContext;
@@ -2877,9 +3607,13 @@ type ResolversParentTypes = ResolversObject<{
2877
3607
  DocumentModelGlobalState: DocumentModelGlobalState;
2878
3608
  DocumentModelResultPage: DocumentModelResultPage;
2879
3609
  DocumentOperationsFilterInput: DocumentOperationsFilterInput;
3610
+ DocumentRelationship: DocumentRelationship;
3611
+ DocumentRelationshipResultPage: DocumentRelationshipResultPage;
2880
3612
  DocumentWithChildren: DocumentWithChildren;
3613
+ ExecutionJobInput: ExecutionJobInput;
2881
3614
  Int: Scalars["Int"]["output"];
2882
3615
  JSONObject: Scalars["JSONObject"]["output"];
3616
+ JobBatchMeta: JobBatchMeta;
2883
3617
  JobChangeEvent: JobChangeEvent;
2884
3618
  JobInfo: JobInfo;
2885
3619
  MoveRelationshipResult: MoveRelationshipResult;
@@ -2893,6 +3627,9 @@ type ResolversParentTypes = ResolversObject<{
2893
3627
  PHDocument: PhDocument;
2894
3628
  PHDocumentResultPage: PhDocumentResultPage;
2895
3629
  PagingInput: PagingInput;
3630
+ PeerAgreement: PeerAgreement;
3631
+ PeerAgreementLimit: PeerAgreementLimit;
3632
+ PeerAgreementMember: PeerAgreementMember;
2896
3633
  PollSyncEnvelopesResult: PollSyncEnvelopesResult;
2897
3634
  Query: Record<PropertyKey, never>;
2898
3635
  ReactorOperation: ReactorOperation;
@@ -2912,11 +3649,14 @@ type ResolversParentTypes = ResolversObject<{
2912
3649
  Subscription: Record<PropertyKey, never>;
2913
3650
  SyncEnvelope: SyncEnvelope;
2914
3651
  SyncEnvelopeInput: SyncEnvelopeInput;
3652
+ SyncHold: SyncHold;
3653
+ SyncHoldReason: SyncHoldReason;
3654
+ SyncRefusalInput: SyncRefusalInput;
2915
3655
  TouchChannelInput: TouchChannelInput;
2916
3656
  TouchChannelResult: TouchChannelResult;
2917
3657
  ViewFilterInput: ViewFilterInput;
2918
3658
  }>;
2919
- type ActionResolvers<ContextType = Context, ParentType extends ResolversParentTypes["Action"] = ResolversParentTypes["Action"]> = ResolversObject<{
3659
+ export type ActionResolvers<ContextType = Context, ParentType extends ResolversParentTypes["Action"] = ResolversParentTypes["Action"]> = ResolversObject<{
2920
3660
  context?: Resolver<Maybe<ResolversTypes["ActionContext"]>, ParentType, ContextType>;
2921
3661
  id?: Resolver<ResolversTypes["String"], ParentType, ContextType>;
2922
3662
  input?: Resolver<ResolversTypes["JSONObject"], ParentType, ContextType>;
@@ -2924,27 +3664,45 @@ type ActionResolvers<ContextType = Context, ParentType extends ResolversParentTy
2924
3664
  timestampUtcMs?: Resolver<ResolversTypes["String"], ParentType, ContextType>;
2925
3665
  type?: Resolver<ResolversTypes["String"], ParentType, ContextType>;
2926
3666
  }>;
2927
- type ActionContextResolvers<ContextType = Context, ParentType extends ResolversParentTypes["ActionContext"] = ResolversParentTypes["ActionContext"]> = ResolversObject<{
3667
+ export type ActionContextResolvers<ContextType = Context, ParentType extends ResolversParentTypes["ActionContext"] = ResolversParentTypes["ActionContext"]> = ResolversObject<{
2928
3668
  signer?: Resolver<Maybe<ResolversTypes["ReactorSigner"]>, ParentType, ContextType>;
2929
3669
  }>;
2930
- type ActionEvaluationResolvers<ContextType = Context, ParentType extends ResolversParentTypes["ActionEvaluation"] = ResolversParentTypes["ActionEvaluation"]> = ResolversObject<{
3670
+ export type ActionEvaluationResolvers<ContextType = Context, ParentType extends ResolversParentTypes["ActionEvaluation"] = ResolversParentTypes["ActionEvaluation"]> = ResolversObject<{
2931
3671
  decision?: Resolver<ResolversTypes["AuthDecision"], ParentType, ContextType>;
2932
3672
  reason?: Resolver<Maybe<ResolversTypes["String"]>, ParentType, ContextType>;
2933
3673
  }>;
2934
- type ActionEvaluationsResolvers<ContextType = Context, ParentType extends ResolversParentTypes["ActionEvaluations"] = ResolversParentTypes["ActionEvaluations"]> = ResolversObject<{
3674
+ export type ActionEvaluationsResolvers<ContextType = Context, ParentType extends ResolversParentTypes["ActionEvaluations"] = ResolversParentTypes["ActionEvaluations"]> = ResolversObject<{
2935
3675
  allAllowed?: Resolver<ResolversTypes["Boolean"], ParentType, ContextType>;
2936
3676
  allDenied?: Resolver<ResolversTypes["Boolean"], ParentType, ContextType>;
2937
3677
  anyAllowed?: Resolver<ResolversTypes["Boolean"], ParentType, ContextType>;
2938
3678
  anyDenied?: Resolver<ResolversTypes["Boolean"], ParentType, ContextType>;
2939
3679
  evaluations?: Resolver<ReadonlyArray<ResolversTypes["ActionEvaluation"]>, ParentType, ContextType>;
2940
3680
  }>;
2941
- type ChannelMetaResolvers<ContextType = Context, ParentType extends ResolversParentTypes["ChannelMeta"] = ResolversParentTypes["ChannelMeta"]> = ResolversObject<{
3681
+ export type BatchExecutionResultResolvers<ContextType = Context, ParentType extends ResolversParentTypes["BatchExecutionResult"] = ResolversParentTypes["BatchExecutionResult"]> = ResolversObject<{
3682
+ jobs?: Resolver<ReadonlyArray<ResolversTypes["BatchJobResult"]>, ParentType, ContextType>;
3683
+ }>;
3684
+ export type BatchJobResultResolvers<ContextType = Context, ParentType extends ResolversParentTypes["BatchJobResult"] = ResolversParentTypes["BatchJobResult"]> = ResolversObject<{
3685
+ job?: Resolver<ResolversTypes["JobInfo"], ParentType, ContextType>;
3686
+ key?: Resolver<ResolversTypes["String"], ParentType, ContextType>;
3687
+ }>;
3688
+ export type ChannelMetaResolvers<ContextType = Context, ParentType extends ResolversParentTypes["ChannelMeta"] = ResolversParentTypes["ChannelMeta"]> = ResolversObject<{
2942
3689
  id?: Resolver<ResolversTypes["String"], ParentType, ContextType>;
2943
3690
  }>;
2944
- interface DateTimeScalarConfig extends GraphQLScalarTypeConfig<ResolversTypes["DateTime"], any> {
3691
+ export type ConsistencyCoordinateResolvers<ContextType = Context, ParentType extends ResolversParentTypes["ConsistencyCoordinate"] = ResolversParentTypes["ConsistencyCoordinate"]> = ResolversObject<{
3692
+ branch?: Resolver<ResolversTypes["String"], ParentType, ContextType>;
3693
+ documentId?: Resolver<ResolversTypes["String"], ParentType, ContextType>;
3694
+ operationIndex?: Resolver<ResolversTypes["Int"], ParentType, ContextType>;
3695
+ scope?: Resolver<ResolversTypes["String"], ParentType, ContextType>;
3696
+ }>;
3697
+ export type ConsistencyTokenResolvers<ContextType = Context, ParentType extends ResolversParentTypes["ConsistencyToken"] = ResolversParentTypes["ConsistencyToken"]> = ResolversObject<{
3698
+ coordinates?: Resolver<ReadonlyArray<ResolversTypes["ConsistencyCoordinate"]>, ParentType, ContextType>;
3699
+ createdAtUtcIso?: Resolver<ResolversTypes["String"], ParentType, ContextType>;
3700
+ version?: Resolver<ResolversTypes["Int"], ParentType, ContextType>;
3701
+ }>;
3702
+ export interface DateTimeScalarConfig extends GraphQLScalarTypeConfig<ResolversTypes["DateTime"], any> {
2945
3703
  name: "DateTime";
2946
3704
  }
2947
- type DeadLetterInfoResolvers<ContextType = Context, ParentType extends ResolversParentTypes["DeadLetterInfo"] = ResolversParentTypes["DeadLetterInfo"]> = ResolversObject<{
3705
+ export type DeadLetterInfoResolvers<ContextType = Context, ParentType extends ResolversParentTypes["DeadLetterInfo"] = ResolversParentTypes["DeadLetterInfo"]> = ResolversObject<{
2948
3706
  branch?: Resolver<ResolversTypes["String"], ParentType, ContextType>;
2949
3707
  documentId?: Resolver<ResolversTypes["String"], ParentType, ContextType>;
2950
3708
  error?: Resolver<ResolversTypes["String"], ParentType, ContextType>;
@@ -2953,119 +3711,165 @@ type DeadLetterInfoResolvers<ContextType = Context, ParentType extends Resolvers
2953
3711
  operationCount?: Resolver<ResolversTypes["Int"], ParentType, ContextType>;
2954
3712
  scopes?: Resolver<ReadonlyArray<ResolversTypes["String"]>, ParentType, ContextType>;
2955
3713
  }>;
2956
- type DocumentChangeContextResolvers<ContextType = Context, ParentType extends ResolversParentTypes["DocumentChangeContext"] = ResolversParentTypes["DocumentChangeContext"]> = ResolversObject<{
3714
+ export type DocumentChangeContextResolvers<ContextType = Context, ParentType extends ResolversParentTypes["DocumentChangeContext"] = ResolversParentTypes["DocumentChangeContext"]> = ResolversObject<{
2957
3715
  childId?: Resolver<Maybe<ResolversTypes["String"]>, ParentType, ContextType>;
2958
3716
  parentId?: Resolver<Maybe<ResolversTypes["String"]>, ParentType, ContextType>;
2959
3717
  }>;
2960
- type DocumentChangeEventResolvers<ContextType = Context, ParentType extends ResolversParentTypes["DocumentChangeEvent"] = ResolversParentTypes["DocumentChangeEvent"]> = ResolversObject<{
3718
+ export type DocumentChangeEventResolvers<ContextType = Context, ParentType extends ResolversParentTypes["DocumentChangeEvent"] = ResolversParentTypes["DocumentChangeEvent"]> = ResolversObject<{
2961
3719
  context?: Resolver<Maybe<ResolversTypes["DocumentChangeContext"]>, ParentType, ContextType>;
2962
3720
  documents?: Resolver<ReadonlyArray<ResolversTypes["PHDocument"]>, ParentType, ContextType>;
2963
3721
  type?: Resolver<ResolversTypes["DocumentChangeType"], ParentType, ContextType>;
2964
3722
  }>;
2965
- type DocumentModelGlobalStateResolvers<ContextType = Context, ParentType extends ResolversParentTypes["DocumentModelGlobalState"] = ResolversParentTypes["DocumentModelGlobalState"]> = ResolversObject<{
3723
+ export type DocumentModelGlobalStateResolvers<ContextType = Context, ParentType extends ResolversParentTypes["DocumentModelGlobalState"] = ResolversParentTypes["DocumentModelGlobalState"]> = ResolversObject<{
2966
3724
  id?: Resolver<ResolversTypes["String"], ParentType, ContextType>;
2967
3725
  name?: Resolver<ResolversTypes["String"], ParentType, ContextType>;
2968
3726
  namespace?: Resolver<Maybe<ResolversTypes["String"]>, ParentType, ContextType>;
2969
3727
  specification?: Resolver<ResolversTypes["JSONObject"], ParentType, ContextType>;
2970
3728
  version?: Resolver<Maybe<ResolversTypes["String"]>, ParentType, ContextType>;
2971
3729
  }>;
2972
- type DocumentModelResultPageResolvers<ContextType = Context, ParentType extends ResolversParentTypes["DocumentModelResultPage"] = ResolversParentTypes["DocumentModelResultPage"]> = ResolversObject<{
3730
+ export type DocumentModelResultPageResolvers<ContextType = Context, ParentType extends ResolversParentTypes["DocumentModelResultPage"] = ResolversParentTypes["DocumentModelResultPage"]> = ResolversObject<{
2973
3731
  cursor?: Resolver<Maybe<ResolversTypes["String"]>, ParentType, ContextType>;
2974
3732
  hasNextPage?: Resolver<ResolversTypes["Boolean"], ParentType, ContextType>;
2975
3733
  hasPreviousPage?: Resolver<ResolversTypes["Boolean"], ParentType, ContextType>;
2976
3734
  items?: Resolver<ReadonlyArray<ResolversTypes["DocumentModelGlobalState"]>, ParentType, ContextType>;
2977
- totalCount?: Resolver<ResolversTypes["Int"], ParentType, ContextType>;
2978
3735
  }>;
2979
- type DocumentWithChildrenResolvers<ContextType = Context, ParentType extends ResolversParentTypes["DocumentWithChildren"] = ResolversParentTypes["DocumentWithChildren"]> = ResolversObject<{
3736
+ export type DocumentRelationshipResolvers<ContextType = Context, ParentType extends ResolversParentTypes["DocumentRelationship"] = ResolversParentTypes["DocumentRelationship"]> = ResolversObject<{
3737
+ createdAt?: Resolver<ResolversTypes["DateTime"], ParentType, ContextType>;
3738
+ metadata?: Resolver<Maybe<ResolversTypes["JSONObject"]>, ParentType, ContextType>;
3739
+ relationshipType?: Resolver<ResolversTypes["String"], ParentType, ContextType>;
3740
+ sourceId?: Resolver<ResolversTypes["String"], ParentType, ContextType>;
3741
+ targetId?: Resolver<ResolversTypes["String"], ParentType, ContextType>;
3742
+ updatedAt?: Resolver<ResolversTypes["DateTime"], ParentType, ContextType>;
3743
+ }>;
3744
+ export type DocumentRelationshipResultPageResolvers<ContextType = Context, ParentType extends ResolversParentTypes["DocumentRelationshipResultPage"] = ResolversParentTypes["DocumentRelationshipResultPage"]> = ResolversObject<{
3745
+ cursor?: Resolver<Maybe<ResolversTypes["String"]>, ParentType, ContextType>;
3746
+ hasNextPage?: Resolver<ResolversTypes["Boolean"], ParentType, ContextType>;
3747
+ hasPreviousPage?: Resolver<ResolversTypes["Boolean"], ParentType, ContextType>;
3748
+ items?: Resolver<ReadonlyArray<ResolversTypes["DocumentRelationship"]>, ParentType, ContextType>;
3749
+ }>;
3750
+ export type DocumentWithChildrenResolvers<ContextType = Context, ParentType extends ResolversParentTypes["DocumentWithChildren"] = ResolversParentTypes["DocumentWithChildren"]> = ResolversObject<{
2980
3751
  childIds?: Resolver<ReadonlyArray<ResolversTypes["String"]>, ParentType, ContextType>;
2981
3752
  document?: Resolver<ResolversTypes["PHDocument"], ParentType, ContextType>;
2982
3753
  }>;
2983
- interface JsonObjectScalarConfig extends GraphQLScalarTypeConfig<ResolversTypes["JSONObject"], any> {
3754
+ export interface JsonObjectScalarConfig extends GraphQLScalarTypeConfig<ResolversTypes["JSONObject"], any> {
2984
3755
  name: "JSONObject";
2985
3756
  }
2986
- type JobChangeEventResolvers<ContextType = Context, ParentType extends ResolversParentTypes["JobChangeEvent"] = ResolversParentTypes["JobChangeEvent"]> = ResolversObject<{
3757
+ export type JobBatchMetaResolvers<ContextType = Context, ParentType extends ResolversParentTypes["JobBatchMeta"] = ResolversParentTypes["JobBatchMeta"]> = ResolversObject<{
3758
+ batchId?: Resolver<ResolversTypes["String"], ParentType, ContextType>;
3759
+ batchJobIds?: Resolver<ReadonlyArray<ResolversTypes["String"]>, ParentType, ContextType>;
3760
+ }>;
3761
+ export type JobChangeEventResolvers<ContextType = Context, ParentType extends ResolversParentTypes["JobChangeEvent"] = ResolversParentTypes["JobChangeEvent"]> = ResolversObject<{
2987
3762
  error?: Resolver<Maybe<ResolversTypes["String"]>, ParentType, ContextType>;
2988
3763
  jobId?: Resolver<ResolversTypes["String"], ParentType, ContextType>;
2989
- result?: Resolver<ResolversTypes["JSONObject"], ParentType, ContextType>;
3764
+ result?: Resolver<Maybe<ResolversTypes["JSONObject"]>, ParentType, ContextType>;
2990
3765
  status?: Resolver<ResolversTypes["String"], ParentType, ContextType>;
2991
3766
  }>;
2992
- type JobInfoResolvers<ContextType = Context, ParentType extends ResolversParentTypes["JobInfo"] = ResolversParentTypes["JobInfo"]> = ResolversObject<{
3767
+ export type JobInfoResolvers<ContextType = Context, ParentType extends ResolversParentTypes["JobInfo"] = ResolversParentTypes["JobInfo"]> = ResolversObject<{
2993
3768
  completedAt?: Resolver<Maybe<ResolversTypes["DateTime"]>, ParentType, ContextType>;
3769
+ consistencyToken?: Resolver<ResolversTypes["ConsistencyToken"], ParentType, ContextType>;
2994
3770
  createdAt?: Resolver<ResolversTypes["DateTime"], ParentType, ContextType>;
3771
+ documentId?: Resolver<ResolversTypes["String"], ParentType, ContextType>;
2995
3772
  error?: Resolver<Maybe<ResolversTypes["String"]>, ParentType, ContextType>;
3773
+ errorName?: Resolver<Maybe<ResolversTypes["String"]>, ParentType, ContextType>;
2996
3774
  id?: Resolver<ResolversTypes["String"], ParentType, ContextType>;
3775
+ meta?: Resolver<ResolversTypes["JobBatchMeta"], ParentType, ContextType>;
2997
3776
  result?: Resolver<Maybe<ResolversTypes["JSONObject"]>, ParentType, ContextType>;
2998
3777
  status?: Resolver<ResolversTypes["String"], ParentType, ContextType>;
2999
3778
  }>;
3000
- type MoveRelationshipResultResolvers<ContextType = Context, ParentType extends ResolversParentTypes["MoveRelationshipResult"] = ResolversParentTypes["MoveRelationshipResult"]> = ResolversObject<{
3779
+ export type MoveRelationshipResultResolvers<ContextType = Context, ParentType extends ResolversParentTypes["MoveRelationshipResult"] = ResolversParentTypes["MoveRelationshipResult"]> = ResolversObject<{
3001
3780
  source?: Resolver<ResolversTypes["PHDocument"], ParentType, ContextType>;
3002
3781
  target?: Resolver<ResolversTypes["PHDocument"], ParentType, ContextType>;
3003
3782
  }>;
3004
- type MutationResolvers<ContextType = Context, ParentType extends ResolversParentTypes["Mutation"] = ResolversParentTypes["Mutation"]> = ResolversObject<{
3005
- addRelationship?: Resolver<ResolversTypes["PHDocument"], ParentType, ContextType, RequireFields<MutationAddRelationshipArgs, "relationshipType" | "sourceIdentifier" | "targetIdentifier">>;
3783
+ export type MutationResolvers<ContextType = Context, ParentType extends ResolversParentTypes["Mutation"] = ResolversParentTypes["Mutation"]> = ResolversObject<{
3784
+ addRelationship?: Resolver<ResolversTypes["PHDocument"], ParentType, ContextType, RequireFields<MutationAddRelationshipArgs, "relationshipType">>;
3006
3785
  createDocument?: Resolver<ResolversTypes["PHDocument"], ParentType, ContextType, RequireFields<MutationCreateDocumentArgs, "document">>;
3007
3786
  createEmptyDocument?: Resolver<ResolversTypes["PHDocument"], ParentType, ContextType, RequireFields<MutationCreateEmptyDocumentArgs, "documentType">>;
3008
- deleteDocument?: Resolver<ResolversTypes["Boolean"], ParentType, ContextType, RequireFields<MutationDeleteDocumentArgs, "identifier">>;
3009
- deleteDocuments?: Resolver<ResolversTypes["Boolean"], ParentType, ContextType, RequireFields<MutationDeleteDocumentsArgs, "identifiers">>;
3010
- execute?: Resolver<ResolversTypes["PHDocument"], ParentType, ContextType, RequireFields<MutationExecuteArgs, "actions" | "documentIdentifier">>;
3011
- executeAsync?: Resolver<ResolversTypes["JobInfo"], ParentType, ContextType, RequireFields<MutationExecuteAsyncArgs, "actions" | "documentIdentifier">>;
3012
- moveRelationship?: Resolver<ResolversTypes["MoveRelationshipResult"], ParentType, ContextType, RequireFields<MutationMoveRelationshipArgs, "relationshipType" | "sourceParentIdentifier" | "targetIdentifier" | "targetParentIdentifier">>;
3787
+ deleteDocument?: Resolver<ResolversTypes["Boolean"], ParentType, ContextType, Partial<MutationDeleteDocumentArgs>>;
3788
+ deleteDocuments?: Resolver<ResolversTypes["Boolean"], ParentType, ContextType, Partial<MutationDeleteDocumentsArgs>>;
3789
+ execute?: Resolver<ResolversTypes["PHDocument"], ParentType, ContextType, RequireFields<MutationExecuteArgs, "actions">>;
3790
+ executeAsync?: Resolver<ResolversTypes["JobInfo"], ParentType, ContextType, RequireFields<MutationExecuteAsyncArgs, "actions">>;
3791
+ executeBatch?: Resolver<ResolversTypes["BatchExecutionResult"], ParentType, ContextType, RequireFields<MutationExecuteBatchArgs, "jobs">>;
3792
+ moveRelationship?: Resolver<ResolversTypes["MoveRelationshipResult"], ParentType, ContextType, RequireFields<MutationMoveRelationshipArgs, "relationshipType">>;
3013
3793
  mutateDocument?: Resolver<ResolversTypes["PHDocument"], ParentType, ContextType, RequireFields<MutationMutateDocumentArgs, "actions" | "documentIdentifier">>;
3014
3794
  mutateDocumentAsync?: Resolver<ResolversTypes["String"], ParentType, ContextType, RequireFields<MutationMutateDocumentAsyncArgs, "actions" | "documentIdentifier">>;
3015
3795
  pushSyncEnvelopes?: Resolver<ResolversTypes["Boolean"], ParentType, ContextType, RequireFields<MutationPushSyncEnvelopesArgs, "envelopes">>;
3016
- removeRelationship?: Resolver<ResolversTypes["PHDocument"], ParentType, ContextType, RequireFields<MutationRemoveRelationshipArgs, "relationshipType" | "sourceIdentifier" | "targetIdentifier">>;
3017
- renameDocument?: Resolver<ResolversTypes["PHDocument"], ParentType, ContextType, RequireFields<MutationRenameDocumentArgs, "documentIdentifier" | "name">>;
3018
- setPreferredEditor?: Resolver<ResolversTypes["PHDocument"], ParentType, ContextType, RequireFields<MutationSetPreferredEditorArgs, "documentIdentifier">>;
3796
+ removeRelationship?: Resolver<ResolversTypes["PHDocument"], ParentType, ContextType, RequireFields<MutationRemoveRelationshipArgs, "relationshipType">>;
3797
+ renameDocument?: Resolver<ResolversTypes["PHDocument"], ParentType, ContextType, RequireFields<MutationRenameDocumentArgs, "name">>;
3798
+ setPreferredEditor?: Resolver<ResolversTypes["PHDocument"], ParentType, ContextType, Partial<MutationSetPreferredEditorArgs>>;
3019
3799
  touchChannel?: Resolver<ResolversTypes["TouchChannelResult"], ParentType, ContextType, RequireFields<MutationTouchChannelArgs, "input">>;
3800
+ updateRelationship?: Resolver<ResolversTypes["PHDocument"], ParentType, ContextType, RequireFields<MutationUpdateRelationshipArgs, "relationshipType">>;
3020
3801
  }>;
3021
- type OperationContextResolvers<ContextType = Context, ParentType extends ResolversParentTypes["OperationContext"] = ResolversParentTypes["OperationContext"]> = ResolversObject<{
3802
+ export type OperationContextResolvers<ContextType = Context, ParentType extends ResolversParentTypes["OperationContext"] = ResolversParentTypes["OperationContext"]> = ResolversObject<{
3022
3803
  branch?: Resolver<ResolversTypes["String"], ParentType, ContextType>;
3023
3804
  documentId?: Resolver<ResolversTypes["String"], ParentType, ContextType>;
3024
3805
  documentType?: Resolver<ResolversTypes["String"], ParentType, ContextType>;
3025
3806
  ordinal?: Resolver<ResolversTypes["Int"], ParentType, ContextType>;
3026
3807
  scope?: Resolver<ResolversTypes["String"], ParentType, ContextType>;
3027
3808
  }>;
3028
- type OperationWithContextResolvers<ContextType = Context, ParentType extends ResolversParentTypes["OperationWithContext"] = ResolversParentTypes["OperationWithContext"]> = ResolversObject<{
3809
+ export type OperationWithContextResolvers<ContextType = Context, ParentType extends ResolversParentTypes["OperationWithContext"] = ResolversParentTypes["OperationWithContext"]> = ResolversObject<{
3029
3810
  context?: Resolver<ResolversTypes["OperationContext"], ParentType, ContextType>;
3030
3811
  operation?: Resolver<ResolversTypes["ReactorOperation"], ParentType, ContextType>;
3031
3812
  }>;
3032
- type PhDocumentResolvers<ContextType = Context, ParentType extends ResolversParentTypes["PHDocument"] = ResolversParentTypes["PHDocument"]> = ResolversObject<{
3813
+ export type PhDocumentResolvers<ContextType = Context, ParentType extends ResolversParentTypes["PHDocument"] = ResolversParentTypes["PHDocument"]> = ResolversObject<{
3033
3814
  createdAtUtcIso?: Resolver<ResolversTypes["DateTime"], ParentType, ContextType>;
3034
3815
  documentType?: Resolver<ResolversTypes["String"], ParentType, ContextType>;
3035
3816
  id?: Resolver<ResolversTypes["String"], ParentType, ContextType>;
3036
3817
  lastModifiedAtUtcIso?: Resolver<ResolversTypes["DateTime"], ParentType, ContextType>;
3818
+ meta?: Resolver<Maybe<ResolversTypes["JSONObject"]>, ParentType, ContextType>;
3037
3819
  name?: Resolver<ResolversTypes["String"], ParentType, ContextType>;
3038
3820
  operations?: Resolver<Maybe<ResolversTypes["ReactorOperationResultPage"]>, ParentType, ContextType, Partial<PhDocumentOperationsArgs>>;
3039
3821
  preferredEditor?: Resolver<Maybe<ResolversTypes["String"]>, ParentType, ContextType>;
3822
+ protocolVersions?: Resolver<Maybe<ResolversTypes["JSONObject"]>, ParentType, ContextType>;
3040
3823
  revisionsList?: Resolver<ReadonlyArray<ResolversTypes["Revision"]>, ParentType, ContextType>;
3041
3824
  slug?: Resolver<Maybe<ResolversTypes["String"]>, ParentType, ContextType>;
3042
3825
  state?: Resolver<ResolversTypes["JSONObject"], ParentType, ContextType>;
3043
3826
  }>;
3044
- type PhDocumentResultPageResolvers<ContextType = Context, ParentType extends ResolversParentTypes["PHDocumentResultPage"] = ResolversParentTypes["PHDocumentResultPage"]> = ResolversObject<{
3827
+ export type PhDocumentResultPageResolvers<ContextType = Context, ParentType extends ResolversParentTypes["PHDocumentResultPage"] = ResolversParentTypes["PHDocumentResultPage"]> = ResolversObject<{
3045
3828
  cursor?: Resolver<Maybe<ResolversTypes["String"]>, ParentType, ContextType>;
3046
3829
  hasNextPage?: Resolver<ResolversTypes["Boolean"], ParentType, ContextType>;
3047
3830
  hasPreviousPage?: Resolver<ResolversTypes["Boolean"], ParentType, ContextType>;
3048
3831
  items?: Resolver<ReadonlyArray<ResolversTypes["PHDocument"]>, ParentType, ContextType>;
3049
- totalCount?: Resolver<ResolversTypes["Int"], ParentType, ContextType>;
3050
3832
  }>;
3051
- type PollSyncEnvelopesResultResolvers<ContextType = Context, ParentType extends ResolversParentTypes["PollSyncEnvelopesResult"] = ResolversParentTypes["PollSyncEnvelopesResult"]> = ResolversObject<{
3833
+ export type PeerAgreementResolvers<ContextType = Context, ParentType extends ResolversParentTypes["PeerAgreement"] = ResolversParentTypes["PeerAgreement"]> = ResolversObject<{
3834
+ collectionId?: Resolver<ResolversTypes["String"], ParentType, ContextType>;
3835
+ limitedBy?: Resolver<ReadonlyArray<ResolversTypes["PeerAgreementLimit"]>, ParentType, ContextType>;
3836
+ local?: Resolver<ResolversTypes["JSONObject"], ParentType, ContextType>;
3837
+ members?: Resolver<ReadonlyArray<ResolversTypes["PeerAgreementMember"]>, ParentType, ContextType>;
3838
+ }>;
3839
+ export type PeerAgreementLimitResolvers<ContextType = Context, ParentType extends ResolversParentTypes["PeerAgreementLimit"] = ResolversParentTypes["PeerAgreementLimit"]> = ResolversObject<{
3840
+ protocol?: Resolver<ResolversTypes["String"], ParentType, ContextType>;
3841
+ remoteNames?: Resolver<ReadonlyArray<ResolversTypes["String"]>, ParentType, ContextType>;
3842
+ }>;
3843
+ export type PeerAgreementMemberResolvers<ContextType = Context, ParentType extends ResolversParentTypes["PeerAgreementMember"] = ResolversParentTypes["PeerAgreementMember"]> = ResolversObject<{
3844
+ announced?: Resolver<ResolversTypes["Boolean"], ParentType, ContextType>;
3845
+ features?: Resolver<ResolversTypes["JSONObject"], ParentType, ContextType>;
3846
+ protocols?: Resolver<ResolversTypes["JSONObject"], ParentType, ContextType>;
3847
+ remoteName?: Resolver<ResolversTypes["String"], ParentType, ContextType>;
3848
+ }>;
3849
+ export type PollSyncEnvelopesResultResolvers<ContextType = Context, ParentType extends ResolversParentTypes["PollSyncEnvelopesResult"] = ResolversParentTypes["PollSyncEnvelopesResult"]> = ResolversObject<{
3052
3850
  ackOrdinal?: Resolver<ResolversTypes["Int"], ParentType, ContextType>;
3053
3851
  deadLetters?: Resolver<ReadonlyArray<ResolversTypes["DeadLetterInfo"]>, ParentType, ContextType>;
3054
3852
  envelopes?: Resolver<ReadonlyArray<ResolversTypes["SyncEnvelope"]>, ParentType, ContextType>;
3055
3853
  hasMore?: Resolver<ResolversTypes["Boolean"], ParentType, ContextType>;
3854
+ manifestRevision?: Resolver<Maybe<ResolversTypes["String"]>, ParentType, ContextType>;
3855
+ peerManifestRevision?: Resolver<Maybe<ResolversTypes["String"]>, ParentType, ContextType>;
3056
3856
  }>;
3057
- type QueryResolvers<ContextType = Context, ParentType extends ResolversParentTypes["Query"] = ResolversParentTypes["Query"]> = ResolversObject<{
3058
- document?: Resolver<Maybe<ResolversTypes["DocumentWithChildren"]>, ParentType, ContextType, RequireFields<QueryDocumentArgs, "identifier">>;
3059
- documentIncomingRelationships?: Resolver<ResolversTypes["PHDocumentResultPage"], ParentType, ContextType, RequireFields<QueryDocumentIncomingRelationshipsArgs, "relationshipType" | "targetIdentifier">>;
3857
+ export type QueryResolvers<ContextType = Context, ParentType extends ResolversParentTypes["Query"] = ResolversParentTypes["Query"]> = ResolversObject<{
3858
+ document?: Resolver<Maybe<ResolversTypes["DocumentWithChildren"]>, ParentType, ContextType, Partial<QueryDocumentArgs>>;
3859
+ documentIncomingRelationshipEdges?: Resolver<ResolversTypes["DocumentRelationshipResultPage"], ParentType, ContextType, Partial<QueryDocumentIncomingRelationshipEdgesArgs>>;
3860
+ documentIncomingRelationships?: Resolver<ResolversTypes["PHDocumentResultPage"], ParentType, ContextType, RequireFields<QueryDocumentIncomingRelationshipsArgs, "relationshipType">>;
3060
3861
  documentModels?: Resolver<ResolversTypes["DocumentModelResultPage"], ParentType, ContextType, Partial<QueryDocumentModelsArgs>>;
3061
3862
  documentOperations?: Resolver<ResolversTypes["ReactorOperationResultPage"], ParentType, ContextType, RequireFields<QueryDocumentOperationsArgs, "filter">>;
3062
- documentOutgoingRelationships?: Resolver<ResolversTypes["PHDocumentResultPage"], ParentType, ContextType, RequireFields<QueryDocumentOutgoingRelationshipsArgs, "relationshipType" | "sourceIdentifier">>;
3063
- evaluateActions?: Resolver<ResolversTypes["ActionEvaluations"], ParentType, ContextType, RequireFields<QueryEvaluateActionsArgs, "candidates" | "documentIdentifier">>;
3863
+ documentOutgoingRelationshipEdges?: Resolver<ResolversTypes["DocumentRelationshipResultPage"], ParentType, ContextType, Partial<QueryDocumentOutgoingRelationshipEdgesArgs>>;
3864
+ documentOutgoingRelationships?: Resolver<ResolversTypes["PHDocumentResultPage"], ParentType, ContextType, RequireFields<QueryDocumentOutgoingRelationshipsArgs, "relationshipType">>;
3865
+ evaluateActions?: Resolver<ResolversTypes["ActionEvaluations"], ParentType, ContextType, RequireFields<QueryEvaluateActionsArgs, "candidates">>;
3064
3866
  findDocuments?: Resolver<ResolversTypes["PHDocumentResultPage"], ParentType, ContextType, Partial<QueryFindDocumentsArgs>>;
3065
3867
  jobStatus?: Resolver<Maybe<ResolversTypes["JobInfo"]>, ParentType, ContextType, RequireFields<QueryJobStatusArgs, "jobId">>;
3868
+ peerAgreement?: Resolver<ResolversTypes["PeerAgreement"], ParentType, ContextType, RequireFields<QueryPeerAgreementArgs, "collectionId">>;
3066
3869
  pollSyncEnvelopes?: Resolver<ResolversTypes["PollSyncEnvelopesResult"], ParentType, ContextType, RequireFields<QueryPollSyncEnvelopesArgs, "channelId" | "outboxAck" | "outboxLatest">>;
3870
+ syncHolds?: Resolver<ReadonlyArray<ResolversTypes["SyncHold"]>, ParentType, ContextType, Partial<QuerySyncHoldsArgs>>;
3067
3871
  }>;
3068
- type ReactorOperationResolvers<ContextType = Context, ParentType extends ResolversParentTypes["ReactorOperation"] = ResolversParentTypes["ReactorOperation"]> = ResolversObject<{
3872
+ export type ReactorOperationResolvers<ContextType = Context, ParentType extends ResolversParentTypes["ReactorOperation"] = ResolversParentTypes["ReactorOperation"]> = ResolversObject<{
3069
3873
  action?: Resolver<ResolversTypes["Action"], ParentType, ContextType>;
3070
3874
  deniedReason?: Resolver<Maybe<ResolversTypes["String"]>, ParentType, ContextType>;
3071
3875
  error?: Resolver<Maybe<ResolversTypes["String"]>, ParentType, ContextType>;
@@ -3075,41 +3879,40 @@ type ReactorOperationResolvers<ContextType = Context, ParentType extends Resolve
3075
3879
  skip?: Resolver<ResolversTypes["Int"], ParentType, ContextType>;
3076
3880
  timestampUtcMs?: Resolver<ResolversTypes["String"], ParentType, ContextType>;
3077
3881
  }>;
3078
- type ReactorOperationResultPageResolvers<ContextType = Context, ParentType extends ResolversParentTypes["ReactorOperationResultPage"] = ResolversParentTypes["ReactorOperationResultPage"]> = ResolversObject<{
3882
+ export type ReactorOperationResultPageResolvers<ContextType = Context, ParentType extends ResolversParentTypes["ReactorOperationResultPage"] = ResolversParentTypes["ReactorOperationResultPage"]> = ResolversObject<{
3079
3883
  cursor?: Resolver<Maybe<ResolversTypes["String"]>, ParentType, ContextType>;
3080
3884
  hasNextPage?: Resolver<ResolversTypes["Boolean"], ParentType, ContextType>;
3081
3885
  hasPreviousPage?: Resolver<ResolversTypes["Boolean"], ParentType, ContextType>;
3082
3886
  items?: Resolver<ReadonlyArray<ResolversTypes["ReactorOperation"]>, ParentType, ContextType>;
3083
- totalCount?: Resolver<ResolversTypes["Int"], ParentType, ContextType>;
3084
3887
  }>;
3085
- type ReactorSignerResolvers<ContextType = Context, ParentType extends ResolversParentTypes["ReactorSigner"] = ResolversParentTypes["ReactorSigner"]> = ResolversObject<{
3888
+ export type ReactorSignerResolvers<ContextType = Context, ParentType extends ResolversParentTypes["ReactorSigner"] = ResolversParentTypes["ReactorSigner"]> = ResolversObject<{
3086
3889
  app?: Resolver<Maybe<ResolversTypes["ReactorSignerApp"]>, ParentType, ContextType>;
3087
3890
  signatures?: Resolver<ReadonlyArray<ResolversTypes["String"]>, ParentType, ContextType>;
3088
3891
  user?: Resolver<Maybe<ResolversTypes["ReactorSignerUser"]>, ParentType, ContextType>;
3089
3892
  }>;
3090
- type ReactorSignerAppResolvers<ContextType = Context, ParentType extends ResolversParentTypes["ReactorSignerApp"] = ResolversParentTypes["ReactorSignerApp"]> = ResolversObject<{
3893
+ export type ReactorSignerAppResolvers<ContextType = Context, ParentType extends ResolversParentTypes["ReactorSignerApp"] = ResolversParentTypes["ReactorSignerApp"]> = ResolversObject<{
3091
3894
  key?: Resolver<ResolversTypes["String"], ParentType, ContextType>;
3092
3895
  name?: Resolver<ResolversTypes["String"], ParentType, ContextType>;
3093
3896
  }>;
3094
- type ReactorSignerUserResolvers<ContextType = Context, ParentType extends ResolversParentTypes["ReactorSignerUser"] = ResolversParentTypes["ReactorSignerUser"]> = ResolversObject<{
3897
+ export type ReactorSignerUserResolvers<ContextType = Context, ParentType extends ResolversParentTypes["ReactorSignerUser"] = ResolversParentTypes["ReactorSignerUser"]> = ResolversObject<{
3095
3898
  address?: Resolver<ResolversTypes["String"], ParentType, ContextType>;
3096
3899
  chainId?: Resolver<ResolversTypes["Int"], ParentType, ContextType>;
3097
3900
  networkId?: Resolver<ResolversTypes["String"], ParentType, ContextType>;
3098
3901
  }>;
3099
- type RemoteCursorResolvers<ContextType = Context, ParentType extends ResolversParentTypes["RemoteCursor"] = ResolversParentTypes["RemoteCursor"]> = ResolversObject<{
3902
+ export type RemoteCursorResolvers<ContextType = Context, ParentType extends ResolversParentTypes["RemoteCursor"] = ResolversParentTypes["RemoteCursor"]> = ResolversObject<{
3100
3903
  cursorOrdinal?: Resolver<ResolversTypes["Int"], ParentType, ContextType>;
3101
3904
  lastSyncedAtUtcMs?: Resolver<Maybe<ResolversTypes["String"]>, ParentType, ContextType>;
3102
3905
  remoteName?: Resolver<ResolversTypes["String"], ParentType, ContextType>;
3103
3906
  }>;
3104
- type RevisionResolvers<ContextType = Context, ParentType extends ResolversParentTypes["Revision"] = ResolversParentTypes["Revision"]> = ResolversObject<{
3907
+ export type RevisionResolvers<ContextType = Context, ParentType extends ResolversParentTypes["Revision"] = ResolversParentTypes["Revision"]> = ResolversObject<{
3105
3908
  revision?: Resolver<ResolversTypes["Int"], ParentType, ContextType>;
3106
3909
  scope?: Resolver<ResolversTypes["String"], ParentType, ContextType>;
3107
3910
  }>;
3108
- type SubscriptionResolvers<ContextType = Context, ParentType extends ResolversParentTypes["Subscription"] = ResolversParentTypes["Subscription"]> = ResolversObject<{
3911
+ export type SubscriptionResolvers<ContextType = Context, ParentType extends ResolversParentTypes["Subscription"] = ResolversParentTypes["Subscription"]> = ResolversObject<{
3109
3912
  documentChanges?: SubscriptionResolver<ResolversTypes["DocumentChangeEvent"], "documentChanges", ParentType, ContextType, Partial<SubscriptionDocumentChangesArgs>>;
3110
3913
  jobChanges?: SubscriptionResolver<ResolversTypes["JobChangeEvent"], "jobChanges", ParentType, ContextType, RequireFields<SubscriptionJobChangesArgs, "jobId">>;
3111
3914
  }>;
3112
- type SyncEnvelopeResolvers<ContextType = Context, ParentType extends ResolversParentTypes["SyncEnvelope"] = ResolversParentTypes["SyncEnvelope"]> = ResolversObject<{
3915
+ export type SyncEnvelopeResolvers<ContextType = Context, ParentType extends ResolversParentTypes["SyncEnvelope"] = ResolversParentTypes["SyncEnvelope"]> = ResolversObject<{
3113
3916
  channelMeta?: Resolver<ResolversTypes["ChannelMeta"], ParentType, ContextType>;
3114
3917
  cursor?: Resolver<Maybe<ResolversTypes["RemoteCursor"]>, ParentType, ContextType>;
3115
3918
  dependsOn?: Resolver<Maybe<ReadonlyArray<ResolversTypes["String"]>>, ParentType, ContextType>;
@@ -3117,24 +3920,44 @@ type SyncEnvelopeResolvers<ContextType = Context, ParentType extends ResolversPa
3117
3920
  operations?: Resolver<Maybe<ReadonlyArray<ResolversTypes["OperationWithContext"]>>, ParentType, ContextType>;
3118
3921
  type?: Resolver<ResolversTypes["SyncEnvelopeType"], ParentType, ContextType>;
3119
3922
  }>;
3120
- type TouchChannelResultResolvers<ContextType = Context, ParentType extends ResolversParentTypes["TouchChannelResult"] = ResolversParentTypes["TouchChannelResult"]> = ResolversObject<{
3923
+ export type SyncHoldResolvers<ContextType = Context, ParentType extends ResolversParentTypes["SyncHold"] = ResolversParentTypes["SyncHold"]> = ResolversObject<{
3924
+ branch?: Resolver<ResolversTypes["String"], ParentType, ContextType>;
3925
+ documentId?: Resolver<ResolversTypes["String"], ParentType, ContextType>;
3926
+ heldAtUtcMs?: Resolver<ResolversTypes["String"], ParentType, ContextType>;
3927
+ reason?: Resolver<ResolversTypes["SyncHoldReason"], ParentType, ContextType>;
3928
+ remoteName?: Resolver<ResolversTypes["String"], ParentType, ContextType>;
3929
+ }>;
3930
+ export type SyncHoldReasonResolvers<ContextType = Context, ParentType extends ResolversParentTypes["SyncHoldReason"] = ResolversParentTypes["SyncHoldReason"]> = ResolversObject<{
3931
+ peerSupports?: Resolver<ReadonlyArray<ResolversTypes["Int"]>, ParentType, ContextType>;
3932
+ protocol?: Resolver<ResolversTypes["String"], ParentType, ContextType>;
3933
+ version?: Resolver<ResolversTypes["Int"], ParentType, ContextType>;
3934
+ }>;
3935
+ export type TouchChannelResultResolvers<ContextType = Context, ParentType extends ResolversParentTypes["TouchChannelResult"] = ResolversParentTypes["TouchChannelResult"]> = ResolversObject<{
3121
3936
  ackOrdinal?: Resolver<ResolversTypes["Int"], ParentType, ContextType>;
3937
+ manifest?: Resolver<Maybe<ResolversTypes["JSONObject"]>, ParentType, ContextType>;
3122
3938
  success?: Resolver<ResolversTypes["Boolean"], ParentType, ContextType>;
3123
3939
  }>;
3124
- type Resolvers<ContextType = Context> = ResolversObject<{
3940
+ export type Resolvers<ContextType = Context> = ResolversObject<{
3125
3941
  Action?: ActionResolvers<ContextType>;
3126
3942
  ActionContext?: ActionContextResolvers<ContextType>;
3127
3943
  ActionEvaluation?: ActionEvaluationResolvers<ContextType>;
3128
3944
  ActionEvaluations?: ActionEvaluationsResolvers<ContextType>;
3945
+ BatchExecutionResult?: BatchExecutionResultResolvers<ContextType>;
3946
+ BatchJobResult?: BatchJobResultResolvers<ContextType>;
3129
3947
  ChannelMeta?: ChannelMetaResolvers<ContextType>;
3948
+ ConsistencyCoordinate?: ConsistencyCoordinateResolvers<ContextType>;
3949
+ ConsistencyToken?: ConsistencyTokenResolvers<ContextType>;
3130
3950
  DateTime?: GraphQLScalarType;
3131
3951
  DeadLetterInfo?: DeadLetterInfoResolvers<ContextType>;
3132
3952
  DocumentChangeContext?: DocumentChangeContextResolvers<ContextType>;
3133
3953
  DocumentChangeEvent?: DocumentChangeEventResolvers<ContextType>;
3134
3954
  DocumentModelGlobalState?: DocumentModelGlobalStateResolvers<ContextType>;
3135
3955
  DocumentModelResultPage?: DocumentModelResultPageResolvers<ContextType>;
3956
+ DocumentRelationship?: DocumentRelationshipResolvers<ContextType>;
3957
+ DocumentRelationshipResultPage?: DocumentRelationshipResultPageResolvers<ContextType>;
3136
3958
  DocumentWithChildren?: DocumentWithChildrenResolvers<ContextType>;
3137
3959
  JSONObject?: GraphQLScalarType;
3960
+ JobBatchMeta?: JobBatchMetaResolvers<ContextType>;
3138
3961
  JobChangeEvent?: JobChangeEventResolvers<ContextType>;
3139
3962
  JobInfo?: JobInfoResolvers<ContextType>;
3140
3963
  MoveRelationshipResult?: MoveRelationshipResultResolvers<ContextType>;
@@ -3143,6 +3966,9 @@ type Resolvers<ContextType = Context> = ResolversObject<{
3143
3966
  OperationWithContext?: OperationWithContextResolvers<ContextType>;
3144
3967
  PHDocument?: PhDocumentResolvers<ContextType>;
3145
3968
  PHDocumentResultPage?: PhDocumentResultPageResolvers<ContextType>;
3969
+ PeerAgreement?: PeerAgreementResolvers<ContextType>;
3970
+ PeerAgreementLimit?: PeerAgreementLimitResolvers<ContextType>;
3971
+ PeerAgreementMember?: PeerAgreementMemberResolvers<ContextType>;
3146
3972
  PollSyncEnvelopesResult?: PollSyncEnvelopesResultResolvers<ContextType>;
3147
3973
  Query?: QueryResolvers<ContextType>;
3148
3974
  ReactorOperation?: ReactorOperationResolvers<ContextType>;
@@ -3154,68 +3980,80 @@ type Resolvers<ContextType = Context> = ResolversObject<{
3154
3980
  Revision?: RevisionResolvers<ContextType>;
3155
3981
  Subscription?: SubscriptionResolvers<ContextType>;
3156
3982
  SyncEnvelope?: SyncEnvelopeResolvers<ContextType>;
3983
+ SyncHold?: SyncHoldResolvers<ContextType>;
3984
+ SyncHoldReason?: SyncHoldReasonResolvers<ContextType>;
3157
3985
  TouchChannelResult?: TouchChannelResultResolvers<ContextType>;
3158
3986
  }>;
3159
- type Properties<T> = Required<{ [K in keyof T]: z$1.ZodType<T[K]> }>;
3987
+ type Properties<T> = Required<{ [K in keyof T]: z$1.ZodType<T[K]>; }>;
3160
3988
  type definedNonNullAny = {};
3161
- declare const isDefinedNonNullAny: (v: any) => v is definedNonNullAny;
3162
- declare const definedNonNullAnySchema: z$1.ZodAny & z$1.ZodType<definedNonNullAny, any, z$1.core.$ZodTypeInternals<definedNonNullAny, any>>;
3163
- declare const AuthDecisionSchema: z$1.ZodEnum<typeof AuthDecision>;
3164
- declare const DocumentChangeTypeSchema: z$1.ZodEnum<typeof DocumentChangeType>;
3165
- declare const PropagationModeSchema: z$1.ZodEnum<typeof PropagationMode>;
3166
- declare const SyncEnvelopeTypeSchema: z$1.ZodEnum<typeof SyncEnvelopeType>;
3167
- declare function ActionCandidateInputSchema(): z$1.ZodObject<Properties<ActionCandidateInput>>;
3168
- declare function ActionContextInputSchema(): z$1.ZodObject<Properties<ActionContextInput>>;
3169
- declare function ActionInputSchema(): z$1.ZodObject<Properties<ActionInput>>;
3170
- declare function ChannelMetaInputSchema(): z$1.ZodObject<Properties<ChannelMetaInput>>;
3171
- declare function DocumentOperationsFilterInputSchema(): z$1.ZodObject<Properties<DocumentOperationsFilterInput>>;
3172
- declare function OperationContextInputSchema(): z$1.ZodObject<Properties<OperationContextInput>>;
3173
- declare function OperationInputSchema(): z$1.ZodObject<Properties<OperationInput>>;
3174
- declare function OperationWithContextInputSchema(): z$1.ZodObject<Properties<OperationWithContextInput>>;
3175
- declare function OperationsFilterInputSchema(): z$1.ZodObject<Properties<OperationsFilterInput>>;
3176
- declare function PagingInputSchema(): z$1.ZodObject<Properties<PagingInput>>;
3177
- declare function ReactorSignerAppInputSchema(): z$1.ZodObject<Properties<ReactorSignerAppInput>>;
3178
- declare function ReactorSignerInputSchema(): z$1.ZodObject<Properties<ReactorSignerInput>>;
3179
- declare function ReactorSignerUserInputSchema(): z$1.ZodObject<Properties<ReactorSignerUserInput>>;
3180
- declare function RemoteCursorInputSchema(): z$1.ZodObject<Properties<RemoteCursorInput>>;
3181
- declare function RemoteFilterInputSchema(): z$1.ZodObject<Properties<RemoteFilterInput>>;
3182
- declare function SearchFilterInputSchema(): z$1.ZodObject<Properties<SearchFilterInput>>;
3183
- declare function SyncEnvelopeInputSchema(): z$1.ZodObject<Properties<SyncEnvelopeInput>>;
3184
- declare function TouchChannelInputSchema(): z$1.ZodObject<Properties<TouchChannelInput>>;
3185
- declare function ViewFilterInputSchema(): z$1.ZodObject<Properties<ViewFilterInput>>;
3186
- declare const PhDocumentFieldsFragmentDoc: DocumentNode;
3187
- declare const GetDocumentModelsDocument: DocumentNode;
3188
- declare const GetDocumentDocument: DocumentNode;
3189
- declare const GetDocumentWithOperationsDocument: DocumentNode;
3190
- declare const GetDocumentOutgoingRelationshipsDocument: DocumentNode;
3191
- declare const GetDocumentIncomingRelationshipsDocument: DocumentNode;
3192
- declare const FindDocumentsDocument: DocumentNode;
3193
- declare const GetDocumentOperationsDocument: DocumentNode;
3194
- declare const GetJobStatusDocument: DocumentNode;
3195
- declare const EvaluateActionsDocument: DocumentNode;
3196
- declare const CreateDocumentDocument: DocumentNode;
3197
- declare const CreateEmptyDocumentDocument: DocumentNode;
3198
- declare const MutateDocumentDocument: DocumentNode;
3199
- declare const MutateDocumentAsyncDocument: DocumentNode;
3200
- declare const RenameDocumentDocument: DocumentNode;
3201
- declare const SetPreferredEditorDocument: DocumentNode;
3202
- declare const AddRelationshipDocument: DocumentNode;
3203
- declare const RemoveRelationshipDocument: DocumentNode;
3204
- declare const MoveRelationshipDocument: DocumentNode;
3205
- declare const DeleteDocumentDocument: DocumentNode;
3206
- declare const DeleteDocumentsDocument: DocumentNode;
3207
- declare const DocumentChangesDocument: DocumentNode;
3208
- declare const JobChangesDocument: DocumentNode;
3209
- declare const PollSyncEnvelopesDocument: DocumentNode;
3210
- declare const TouchChannelDocument: DocumentNode;
3211
- declare const PushSyncEnvelopesDocument: DocumentNode;
3212
- type Requester<C = {}> = <R, V>(doc: DocumentNode, vars?: V, options?: C) => Promise<R> | AsyncIterable<R>;
3213
- declare function getSdk<C>(requester: Requester<C>): {
3989
+ export declare const isDefinedNonNullAny: (v: any) => v is definedNonNullAny;
3990
+ export declare const definedNonNullAnySchema: z$1.ZodAny & z$1.ZodType<definedNonNullAny, any, z$1.core.$ZodTypeInternals<definedNonNullAny, any>>;
3991
+ export declare const AuthDecisionSchema: z$1.ZodEnum<typeof AuthDecision>;
3992
+ export declare const DocumentChangeTypeSchema: z$1.ZodEnum<typeof DocumentChangeType>;
3993
+ export declare const PropagationModeSchema: z$1.ZodEnum<typeof PropagationMode>;
3994
+ export declare const SyncEnvelopeTypeSchema: z$1.ZodEnum<typeof SyncEnvelopeType>;
3995
+ export declare function ActionCandidateInputSchema(): z$1.ZodObject<Properties<ActionCandidateInput>>;
3996
+ export declare function ActionContextInputSchema(): z$1.ZodObject<Properties<ActionContextInput>>;
3997
+ export declare function ActionInputSchema(): z$1.ZodObject<Properties<ActionInput>>;
3998
+ export declare function ChannelMetaInputSchema(): z$1.ZodObject<Properties<ChannelMetaInput>>;
3999
+ export declare function DocumentOperationsFilterInputSchema(): z$1.ZodObject<Properties<DocumentOperationsFilterInput>>;
4000
+ export declare function ExecutionJobInputSchema(): z$1.ZodObject<Properties<ExecutionJobInput>>;
4001
+ export declare function OperationContextInputSchema(): z$1.ZodObject<Properties<OperationContextInput>>;
4002
+ export declare function OperationInputSchema(): z$1.ZodObject<Properties<OperationInput>>;
4003
+ export declare function OperationWithContextInputSchema(): z$1.ZodObject<Properties<OperationWithContextInput>>;
4004
+ export declare function OperationsFilterInputSchema(): z$1.ZodObject<Properties<OperationsFilterInput>>;
4005
+ export declare function PagingInputSchema(): z$1.ZodObject<Properties<PagingInput>>;
4006
+ export declare function ReactorSignerAppInputSchema(): z$1.ZodObject<Properties<ReactorSignerAppInput>>;
4007
+ export declare function ReactorSignerInputSchema(): z$1.ZodObject<Properties<ReactorSignerInput>>;
4008
+ export declare function ReactorSignerUserInputSchema(): z$1.ZodObject<Properties<ReactorSignerUserInput>>;
4009
+ export declare function RemoteCursorInputSchema(): z$1.ZodObject<Properties<RemoteCursorInput>>;
4010
+ export declare function RemoteFilterInputSchema(): z$1.ZodObject<Properties<RemoteFilterInput>>;
4011
+ export declare function SearchFilterInputSchema(): z$1.ZodObject<Properties<SearchFilterInput>>;
4012
+ export declare function SyncEnvelopeInputSchema(): z$1.ZodObject<Properties<SyncEnvelopeInput>>;
4013
+ export declare function SyncRefusalInputSchema(): z$1.ZodObject<Properties<SyncRefusalInput>>;
4014
+ export declare function TouchChannelInputSchema(): z$1.ZodObject<Properties<TouchChannelInput>>;
4015
+ export declare function ViewFilterInputSchema(): z$1.ZodObject<Properties<ViewFilterInput>>;
4016
+ export declare const PhDocumentFieldsFragmentDoc: DocumentNode;
4017
+ export declare const DocumentRelationshipFieldsFragmentDoc: DocumentNode;
4018
+ export declare const JobInfoFieldsFragmentDoc: DocumentNode;
4019
+ export declare const GetDocumentModelsDocument: DocumentNode;
4020
+ export declare const GetDocumentDocument: DocumentNode;
4021
+ export declare const GetDocumentWithOperationsDocument: DocumentNode;
4022
+ export declare const GetDocumentOutgoingRelationshipsDocument: DocumentNode;
4023
+ export declare const GetDocumentIncomingRelationshipsDocument: DocumentNode;
4024
+ export declare const GetDocumentOutgoingRelationshipEdgesDocument: DocumentNode;
4025
+ export declare const GetDocumentIncomingRelationshipEdgesDocument: DocumentNode;
4026
+ export declare const FindDocumentsDocument: DocumentNode;
4027
+ export declare const GetDocumentOperationsDocument: DocumentNode;
4028
+ export declare const GetJobStatusDocument: DocumentNode;
4029
+ export declare const EvaluateActionsDocument: DocumentNode;
4030
+ export declare const CreateDocumentDocument: DocumentNode;
4031
+ export declare const CreateEmptyDocumentDocument: DocumentNode;
4032
+ export declare const MutateDocumentDocument: DocumentNode;
4033
+ export declare const MutateDocumentAsyncDocument: DocumentNode;
4034
+ export declare const ExecuteBatchDocument: DocumentNode;
4035
+ export declare const RenameDocumentDocument: DocumentNode;
4036
+ export declare const SetPreferredEditorDocument: DocumentNode;
4037
+ export declare const AddRelationshipDocument: DocumentNode;
4038
+ export declare const UpdateRelationshipDocument: DocumentNode;
4039
+ export declare const RemoveRelationshipDocument: DocumentNode;
4040
+ export declare const MoveRelationshipDocument: DocumentNode;
4041
+ export declare const DeleteDocumentDocument: DocumentNode;
4042
+ export declare const DeleteDocumentsDocument: DocumentNode;
4043
+ export declare const DocumentChangesDocument: DocumentNode;
4044
+ export declare const JobChangesDocument: DocumentNode;
4045
+ export declare const PollSyncEnvelopesDocument: DocumentNode;
4046
+ export declare const TouchChannelDocument: DocumentNode;
4047
+ export declare const PushSyncEnvelopesDocument: DocumentNode;
4048
+ export type Requester<C = {}> = <R, V>(doc: DocumentNode, vars?: V, options?: C) => Promise<R> | AsyncIterable<R>;
4049
+ export declare function getSdk<C>(requester: Requester<C>): {
3214
4050
  GetDocumentModels(variables?: GetDocumentModelsQueryVariables, options?: C): Promise<GetDocumentModelsQuery>;
3215
4051
  GetDocument(variables: GetDocumentQueryVariables, options?: C): Promise<GetDocumentQuery>;
3216
4052
  GetDocumentWithOperations(variables: GetDocumentWithOperationsQueryVariables, options?: C): Promise<GetDocumentWithOperationsQuery>;
3217
4053
  GetDocumentOutgoingRelationships(variables: GetDocumentOutgoingRelationshipsQueryVariables, options?: C): Promise<GetDocumentOutgoingRelationshipsQuery>;
3218
4054
  GetDocumentIncomingRelationships(variables: GetDocumentIncomingRelationshipsQueryVariables, options?: C): Promise<GetDocumentIncomingRelationshipsQuery>;
4055
+ GetDocumentOutgoingRelationshipEdges(variables: GetDocumentOutgoingRelationshipEdgesQueryVariables, options?: C): Promise<GetDocumentOutgoingRelationshipEdgesQuery>;
4056
+ GetDocumentIncomingRelationshipEdges(variables: GetDocumentIncomingRelationshipEdgesQueryVariables, options?: C): Promise<GetDocumentIncomingRelationshipEdgesQuery>;
3219
4057
  FindDocuments(variables?: FindDocumentsQueryVariables, options?: C): Promise<FindDocumentsQuery>;
3220
4058
  GetDocumentOperations(variables: GetDocumentOperationsQueryVariables, options?: C): Promise<GetDocumentOperationsQuery>;
3221
4059
  GetJobStatus(variables: GetJobStatusQueryVariables, options?: C): Promise<GetJobStatusQuery>;
@@ -3224,9 +4062,11 @@ declare function getSdk<C>(requester: Requester<C>): {
3224
4062
  CreateEmptyDocument(variables: CreateEmptyDocumentMutationVariables, options?: C): Promise<CreateEmptyDocumentMutation>;
3225
4063
  MutateDocument(variables: MutateDocumentMutationVariables, options?: C): Promise<MutateDocumentMutation>;
3226
4064
  MutateDocumentAsync(variables: MutateDocumentAsyncMutationVariables, options?: C): Promise<MutateDocumentAsyncMutation>;
4065
+ ExecuteBatch(variables: ExecuteBatchMutationVariables, options?: C): Promise<ExecuteBatchMutation>;
3227
4066
  RenameDocument(variables: RenameDocumentMutationVariables, options?: C): Promise<RenameDocumentMutation>;
3228
4067
  SetPreferredEditor(variables: SetPreferredEditorMutationVariables, options?: C): Promise<SetPreferredEditorMutation>;
3229
4068
  AddRelationship(variables: AddRelationshipMutationVariables, options?: C): Promise<AddRelationshipMutation>;
4069
+ UpdateRelationship(variables: UpdateRelationshipMutationVariables, options?: C): Promise<UpdateRelationshipMutation>;
3230
4070
  RemoveRelationship(variables: RemoveRelationshipMutationVariables, options?: C): Promise<RemoveRelationshipMutation>;
3231
4071
  MoveRelationship(variables: MoveRelationshipMutationVariables, options?: C): Promise<MoveRelationshipMutation>;
3232
4072
  DeleteDocument(variables: DeleteDocumentMutationVariables, options?: C): Promise<DeleteDocumentMutation>;
@@ -3237,13 +4077,13 @@ declare function getSdk<C>(requester: Requester<C>): {
3237
4077
  TouchChannel(variables: TouchChannelMutationVariables, options?: C): Promise<TouchChannelMutation>;
3238
4078
  PushSyncEnvelopes(variables: PushSyncEnvelopesMutationVariables, options?: C): Promise<PushSyncEnvelopesMutation>;
3239
4079
  };
3240
- type Sdk = ReturnType<typeof getSdk>;
4080
+ export type Sdk = ReturnType<typeof getSdk>;
3241
4081
  //#endregion
3242
4082
  //#region src/graphql/reactor/requester.d.ts
3243
4083
  type FetchLike = (input: URL | string, init: RequestInit) => Promise<Response>;
3244
4084
  //#endregion
3245
4085
  //#region src/graphql/reactor/factory.d.ts
3246
- declare function createReactorGraphQLClient(url: string, fetchImpl?: FetchLike, headers?: Record<string, string>): {
4086
+ export declare function createReactorGraphQLClient(url: string, fetchImpl?: FetchLike, headers?: Record<string, string>): {
3247
4087
  GetDocumentModels(variables?: Exact<{
3248
4088
  namespace?: InputMaybe<Scalars["String"]["input"]>;
3249
4089
  paging?: InputMaybe<PagingInput>;
@@ -3270,6 +4110,18 @@ declare function createReactorGraphQLClient(url: string, fetchImpl?: FetchLike,
3270
4110
  view?: InputMaybe<ViewFilterInput>;
3271
4111
  paging?: InputMaybe<PagingInput>;
3272
4112
  }>, options?: {} | undefined): Promise<GetDocumentIncomingRelationshipsQuery>;
4113
+ GetDocumentOutgoingRelationshipEdges(variables: Exact<{
4114
+ sourceIdentifier: Scalars["String"]["input"];
4115
+ relationshipType?: InputMaybe<Scalars["String"]["input"]>;
4116
+ view?: InputMaybe<ViewFilterInput>;
4117
+ paging?: InputMaybe<PagingInput>;
4118
+ }>, options?: {} | undefined): Promise<GetDocumentOutgoingRelationshipEdgesQuery>;
4119
+ GetDocumentIncomingRelationshipEdges(variables: Exact<{
4120
+ targetIdentifier: Scalars["String"]["input"];
4121
+ relationshipType?: InputMaybe<Scalars["String"]["input"]>;
4122
+ view?: InputMaybe<ViewFilterInput>;
4123
+ paging?: InputMaybe<PagingInput>;
4124
+ }>, options?: {} | undefined): Promise<GetDocumentIncomingRelationshipEdgesQuery>;
3273
4125
  FindDocuments(variables?: Exact<{
3274
4126
  search?: InputMaybe<SearchFilterInput>;
3275
4127
  view?: InputMaybe<ViewFilterInput>;
@@ -3305,6 +4157,9 @@ declare function createReactorGraphQLClient(url: string, fetchImpl?: FetchLike,
3305
4157
  actions: ReadonlyArray<ActionInput>;
3306
4158
  branch?: InputMaybe<Scalars["String"]["input"]>;
3307
4159
  }>, options?: {} | undefined): Promise<MutateDocumentAsyncMutation>;
4160
+ ExecuteBatch(variables: Exact<{
4161
+ jobs: ReadonlyArray<ExecutionJobInput>;
4162
+ }>, options?: {} | undefined): Promise<ExecuteBatchMutation>;
3308
4163
  RenameDocument(variables: Exact<{
3309
4164
  documentIdentifier: Scalars["String"]["input"];
3310
4165
  name: Scalars["String"]["input"];
@@ -3319,8 +4174,16 @@ declare function createReactorGraphQLClient(url: string, fetchImpl?: FetchLike,
3319
4174
  sourceIdentifier: Scalars["String"]["input"];
3320
4175
  targetIdentifier: Scalars["String"]["input"];
3321
4176
  relationshipType: Scalars["String"]["input"];
4177
+ metadata?: InputMaybe<Scalars["JSONObject"]["input"]>;
3322
4178
  branch?: InputMaybe<Scalars["String"]["input"]>;
3323
4179
  }>, options?: {} | undefined): Promise<AddRelationshipMutation>;
4180
+ UpdateRelationship(variables: Exact<{
4181
+ sourceIdentifier: Scalars["String"]["input"];
4182
+ targetIdentifier: Scalars["String"]["input"];
4183
+ relationshipType: Scalars["String"]["input"];
4184
+ metadata?: InputMaybe<Scalars["JSONObject"]["input"]>;
4185
+ branch?: InputMaybe<Scalars["String"]["input"]>;
4186
+ }>, options?: {} | undefined): Promise<UpdateRelationshipMutation>;
3324
4187
  RemoveRelationship(variables: Exact<{
3325
4188
  sourceIdentifier: Scalars["String"]["input"];
3326
4189
  targetIdentifier: Scalars["String"]["input"];
@@ -3353,40 +4216,59 @@ declare function createReactorGraphQLClient(url: string, fetchImpl?: FetchLike,
3353
4216
  channelId: Scalars["String"]["input"];
3354
4217
  outboxAck: Scalars["Int"]["input"];
3355
4218
  outboxLatest: Scalars["Int"]["input"];
4219
+ manifestRevision?: InputMaybe<Scalars["String"]["input"]>;
4220
+ refusals?: InputMaybe<ReadonlyArray<SyncRefusalInput>>;
3356
4221
  }>, options?: {} | undefined): Promise<PollSyncEnvelopesQuery>;
3357
4222
  TouchChannel(variables: Exact<{
3358
4223
  input: TouchChannelInput;
3359
4224
  }>, options?: {} | undefined): Promise<TouchChannelMutation>;
3360
4225
  PushSyncEnvelopes(variables: Exact<{
3361
4226
  envelopes: ReadonlyArray<SyncEnvelopeInput>;
4227
+ peerManifestRevision?: InputMaybe<Scalars["String"]["input"]>;
3362
4228
  }>, options?: {} | undefined): Promise<PushSyncEnvelopesMutation>;
3363
4229
  };
3364
4230
  //#endregion
3365
4231
  //#region src/graphql/reactor/subgraph.d.ts
3366
- declare class ReactorSubgraph extends BaseSubgraph {
4232
+ export declare class ReactorSubgraph extends BaseSubgraph {
3367
4233
  #private;
3368
4234
  private logger;
3369
4235
  constructor(args: SubgraphArgs);
3370
4236
  name: string;
3371
4237
  hasSubscriptions: boolean;
4238
+ private get documentChanges();
3372
4239
  /**
3373
4240
  * Check operation-level permissions for an array of actions.
3374
4241
  * Delegates to base assertCanExecuteOperation for each action.
3375
4242
  */
3376
4243
  private assertCanExecuteOperations;
3377
- typeDefs: graphql.DocumentNode;
4244
+ /**
4245
+ * Drops the relationship edges whose far-end document the caller cannot read.
4246
+ *
4247
+ * An edge names two documents, so returning it discloses the far end's id. The
4248
+ * document-shaped relationship queries already withhold far-end documents the
4249
+ * caller cannot read; the edge-shaped queries have to withhold the same ones,
4250
+ * or they become a way to enumerate around that check. Supreme admins read
4251
+ * everything, so the per-edge check is skipped for them.
4252
+ *
4253
+ * The cursor describes where to resume in the underlying unfiltered stream,
4254
+ * so it is left as it came. A filtered page is therefore often shorter than
4255
+ * the requested limit, and that is the stream continuing rather than a sign
4256
+ * it ended.
4257
+ */
4258
+ private filterRelationshipEdges;
4259
+ typeDefs: import("graphql").DocumentNode;
3378
4260
  resolvers: Resolvers;
3379
4261
  onSetup(): Promise<void>;
3380
4262
  }
3381
4263
  //#endregion
3382
4264
  //#region src/graphql/system/env/index.d.ts
3383
- declare const ADMIN_USERS: string[];
4265
+ export declare const ADMIN_USERS: string[];
3384
4266
  //#endregion
3385
4267
  //#region src/graphql/system/subgraph.d.ts
3386
- declare class SystemSubgraph extends BaseSubgraph {
4268
+ export declare class SystemSubgraph extends BaseSubgraph {
3387
4269
  name: string;
3388
4270
  hasSubscriptions: boolean;
3389
- typeDefs: graphql.DocumentNode;
4271
+ typeDefs: import("graphql").DocumentNode;
3390
4272
  resolvers: {
3391
4273
  Query: {
3392
4274
  system: () => {
@@ -3399,28 +4281,85 @@ declare class SystemSubgraph extends BaseSubgraph {
3399
4281
  }
3400
4282
  //#endregion
3401
4283
  //#region src/graphql/system/version.d.ts
3402
- declare function getVersion(): string;
3403
- declare function getGitHash(): string;
3404
- declare function getGitUrl(): string | null;
4284
+ export declare function getVersion(): string;
4285
+ export declare function getGitHash(): string;
4286
+ export declare function getGitUrl(): string | null;
3405
4287
  //#endregion
3406
4288
  //#region src/graphql/utils.d.ts
3407
- declare function isSubgraphClass(candidate: unknown): candidate is SubgraphClass$1;
3408
- declare function buildGraphqlOperations(operations: Operation[], skip: number, first: number): GqlOperation$1[];
3409
- declare function buildGraphqlOperation(operation: Operation): GqlOperation$1;
3410
- declare function buildGraphQlDocument(doc: PHDocument): GqlDocument$1;
3411
- declare function buildGraphQlDriveDocument(doc: DocumentDriveDocument): GqlDriveDocument$1;
4289
+ export declare function isSubgraphClass(candidate: unknown): candidate is SubgraphClass$1;
4290
+ export declare function buildGraphqlOperations(operations: Operation[], skip: number, first: number): GqlOperation$1[];
4291
+ export declare function buildGraphqlOperation(operation: Operation): GqlOperation$1;
4292
+ export declare function buildGraphQlDocument(doc: PHDocument): GqlDocument$1;
4293
+ export declare function buildGraphQlDriveDocument(doc: DocumentDriveDocument): GqlDriveDocument$1;
4294
+ //#endregion
4295
+ //#region src/graphql/errors.d.ts
4296
+ /** Caller (authenticated or anonymous) lacks permission for the document. */
4297
+ export declare class ForbiddenError extends GraphQLError {
4298
+ constructor(detail?: string);
4299
+ }
4300
+ /** Anonymous caller on an action that requires logging in. */
4301
+ export declare class AuthenticationRequiredError extends GraphQLError {
4302
+ constructor(detail?: string);
4303
+ }
4304
+ /**
4305
+ * The reactor holds no decision model, so no authorization preflight can be
4306
+ * answered.
4307
+ *
4308
+ * Distinct from a denial, and deliberately so: a caller that cannot get a
4309
+ * prediction should render its controls as it did before it asked and let the
4310
+ * submit path refuse. Reading this as a denial would disable every control on a
4311
+ * switchboard running without authEnforcement. The code is what a client
4312
+ * branches on, since the message is not a contract.
4313
+ */
4314
+ export declare class AuthEvaluationUnsupportedError extends GraphQLError {
4315
+ constructor();
4316
+ }
4317
+ /**
4318
+ * A stored operation cannot be represented in the schema, so it is reported
4319
+ * rather than served.
4320
+ *
4321
+ * The schema declares an action's id, type, timestamp, input and scope
4322
+ * non-null; an operation written before the API rejected an action without an
4323
+ * id violates that. Left to the executor, the missing value nullifies the
4324
+ * action, which bubbles up through the non-null chain until it nullifies the
4325
+ * envelope's whole operation list, and the caller receives a partial response
4326
+ * beside "Cannot return null for non-nullable field Action.id" - which says
4327
+ * nothing about which operation, and which a sync client can only read as a
4328
+ * permanent GraphQL rejection, stopping its poll timer for good.
4329
+ *
4330
+ * Thrown instead, with a code that says the failure is worth polling through:
4331
+ * the document holding the operation needs repairing, but the channel serves
4332
+ * every other document, and a peer that stopped polling would stop receiving
4333
+ * those too. The code is what a client branches on, since the message is not a
4334
+ * contract.
4335
+ */
4336
+ export declare class MalformedStoredOperationError extends GraphQLError {
4337
+ constructor(detail: string);
4338
+ }
4339
+ /**
4340
+ * The marker refusals a poll carried were not recorded, so the poll fails.
4341
+ * The code is recoverable: the client keeps polling and reports them again.
4342
+ */
4343
+ export declare class RefusalNotRecordedError extends GraphQLError {
4344
+ constructor(cause: unknown);
4345
+ }
3412
4346
  //#endregion
3413
4347
  //#region src/packages/import-loader.d.ts
3414
4348
  /**
3415
4349
  * This class is used to load packages using the import keyword.
3416
4350
  */
3417
- declare class ImportPackageLoader implements IPackageLoader {
4351
+ export declare class ImportPackageLoader implements IPackageLoader {
4352
+ private readonly hostDir;
3418
4353
  private readonly logger;
3419
4354
  readonly name = "ImportPackageLoader";
4355
+ constructor(hostDir?: string);
4356
+ private readonly reportedUnbuilt;
3420
4357
  loadDocumentModels(identifier: string): Promise<DocumentModelModule[]>;
3421
4358
  loadUpgradeManifests(identifier: string): Promise<UpgradeManifest<readonly number[]>[]>;
3422
4359
  loadSubgraphs(identifier: string): Promise<SubgraphClass$1[]>;
3423
4360
  loadProcessors(identifier: string): Promise<ProcessorFactoryBuilder | null>;
4361
+ loadPieces(identifier: string): Promise<PackagePieceEntry[]>;
4362
+ private reportUnbuilt;
3424
4363
  }
3425
4364
  //#endregion
3426
4365
  //#region src/packages/package-manager.d.ts
@@ -3436,10 +4375,10 @@ declare class ImportPackageLoader implements IPackageLoader {
3436
4375
  * either bare (`'pkg'`) or as a subpath (`'pkg/subgraphs'`), since loaders
3437
4376
  * import sub-entries like `${pkg}/subgraphs` / `${pkg}/document-models`.
3438
4377
  */
3439
- declare function isExpectedLoaderMiss(error: unknown, pkg: string): boolean;
3440
- declare function getUniqueDocumentModels(...documentModels: readonly (readonly DocumentModelModule<any>[])[]): DocumentModelModule[];
3441
- declare function getUniqueUpgradeManifests(...upgradeManifests: readonly (readonly UpgradeManifest<readonly number[]>[])[]): UpgradeManifest<readonly number[]>[];
3442
- declare class PackageManager implements IPackageManager {
4378
+ export declare function isExpectedLoaderMiss(error: unknown, pkg: string, subPath?: string): boolean;
4379
+ export declare function getUniqueDocumentModels(...documentModels: readonly (readonly DocumentModelModule<any>[])[]): DocumentModelModule[];
4380
+ export declare function getUniqueUpgradeManifests(...upgradeManifests: readonly (readonly UpgradeManifest<readonly number[]>[])[]): UpgradeManifest<readonly number[]>[];
4381
+ export declare class PackageManager implements IPackageManager {
3443
4382
  protected options: IPackageManagerOptions;
3444
4383
  private readonly logger;
3445
4384
  private loaders;
@@ -3447,6 +4386,7 @@ declare class PackageManager implements IPackageManager {
3447
4386
  private upgradeManifestsMap;
3448
4387
  private subgraphsMap;
3449
4388
  private processorMap;
4389
+ private piecesMap;
3450
4390
  private configWatcher;
3451
4391
  private debouncedUpdateCallbacks;
3452
4392
  private eventEmitter;
@@ -3459,10 +4399,12 @@ declare class PackageManager implements IPackageManager {
3459
4399
  private loadUpgradeManifests;
3460
4400
  private loadSubgraphs;
3461
4401
  private loadProcessors;
4402
+ private loadPieces;
3462
4403
  private maybeWarnAllLoadersFailed;
3463
4404
  private updateDocumentModelsForPackage;
3464
4405
  private updateSubgraphsForPackage;
3465
4406
  private updateProcessorsForPackage;
4407
+ private updatePiecesForPackage;
3466
4408
  /** Debounced per key so repeated subscribePackages calls reuse one timer. */
3467
4409
  private getDebouncedUpdateCallback;
3468
4410
  private subscribePackages;
@@ -3472,6 +4414,9 @@ declare class PackageManager implements IPackageManager {
3472
4414
  private updatePackagesMap;
3473
4415
  private updateSubgraphsMap;
3474
4416
  private updateProcessorsMap;
4417
+ private updatePiecesMap;
4418
+ /** The pieces every loaded package ships, keyed by the package. */
4419
+ getPieces(): Map<string, PackagePieceEntry[]>;
3475
4420
  /**
3476
4421
  * Remove `pkg` from all package maps and emit the change events, tearing
3477
4422
  * down everything the package registered (subgraphs, processors, document
@@ -3482,28 +4427,57 @@ declare class PackageManager implements IPackageManager {
3482
4427
  onDocumentModelsChange(handler: (documentModels: Record<string, DocumentModelModule[]>) => void): void;
3483
4428
  onSubgraphsChange(handler: (subgraphs: Map<string, SubgraphClass$1[]>) => void): void;
3484
4429
  onProcessorsChange(handler: (processors: Map<string, Processor$1>) => void): void;
4430
+ onPiecesChange(handler: (pieces: Map<string, PackagePieceEntry[]>) => void): void;
3485
4431
  }
3486
4432
  //#endregion
4433
+ //#region src/packages/subgraph-extraction.d.ts
4434
+ /**
4435
+ * The one acceptance rule for a package's `subgraphs` module.
4436
+ *
4437
+ * All three package loaders (vite, import, http) consume the same generated
4438
+ * `subgraphs/index` file, and each used to apply its own rule — the vite
4439
+ * loader required a namespace whose alias equalled the class name inside it,
4440
+ * the http loader took any function one level deep, and the import loader
4441
+ * took every nested value. An export that registered under one loader could
4442
+ * silently vanish under another (the codegen-does-not-register-subgraphs
4443
+ * report). This is now the single rule they all share:
4444
+ *
4445
+ * - an export that is itself a subgraph class is accepted (named or default
4446
+ * export of the class);
4447
+ * - any subgraph class among the values of an exported object is accepted
4448
+ * (a `export * as Alias from ...` namespace under any alias, or a
4449
+ * default-exported object of classes);
4450
+ * - everything else — constants, configs, functions and classes that do not
4451
+ * extend BaseSubgraph — is dropped.
4452
+ *
4453
+ * Codegen emits `export * as <ClassName> from "./<dir>/index.js"`
4454
+ * (makeSubgraphsIndexFile in packages/codegen), which the namespace branch
4455
+ * accepts regardless of the alias; hand-written packages may re-export a
4456
+ * class directly, which the direct branch accepts. A class reached through
4457
+ * both branches is returned once.
4458
+ */
4459
+ export declare function extractSubgraphs(namespace: Record<string, unknown>): SubgraphClass$1[];
4460
+ //#endregion
3487
4461
  //#region src/services/renown-config.d.ts
3488
4462
  /** Where the credential check reads from: a remote Renown or Switchboard
3489
4463
  * instance, or this switchboard's own renown read model. */
3490
- type RenownSource = NonNullable<PHReactorRenown["source"]>;
4464
+ export type RenownSource = NonNullable<PHReactorRenown["source"]>;
3491
4465
  /** The `auth.renown` config block: which Renown instance to authenticate
3492
4466
  * against, before env overrides are applied. */
3493
- type RenownConfig = PHReactorRenown;
4467
+ export type RenownConfig = PHReactorRenown;
3494
4468
  /** Resolved renown coordinates. `url` also drives this reactor's own identity,
3495
4469
  * so it stays meaningful when `source` is "self". */
3496
- type ResolvedRenownConfig = {
4470
+ export type ResolvedRenownConfig = {
3497
4471
  source: RenownSource;
3498
4472
  url: string | undefined;
3499
4473
  switchboardUrl: string | undefined;
3500
4474
  };
3501
4475
  /** Reading credentials from this reactor's own read model needs a host-supplied
3502
4476
  * verifier: core has no idea which subgraph serves that read model. */
3503
- declare function assertCredentialVerifierForSource(source: RenownSource, hasVerifier: boolean): void;
4477
+ export declare function assertCredentialVerifierForSource(source: RenownSource, hasVerifier: boolean): void;
3504
4478
  /** Resolve `auth.renown`; RENOWN_SOURCE / RENOWN_URL / SWITCHBOARD_URL win
3505
4479
  * over the config file, which wins over the SDK defaults. */
3506
- declare function resolveRenownConfig(configured: RenownConfig | undefined, env: NodeJS.ProcessEnv, logger: ILogger): ResolvedRenownConfig;
4480
+ export declare function resolveRenownConfig(configured: RenownConfig | undefined, env: NodeJS.ProcessEnv, logger: ILogger): ResolvedRenownConfig;
3507
4481
  //#endregion
3508
4482
  //#region src/server.d.ts
3509
4483
  type Options = {
@@ -3529,6 +4503,19 @@ type Options = {
3529
4503
  * request. Off by default; `REQUIRE_AUTHENTICATED_CALLER` overrides.
3530
4504
  * Requires identity resolution to be on — refused at boot without it. */
3531
4505
  requireAuthenticatedCaller?: boolean;
4506
+ /** Mounted paths that stay reachable anonymously while
4507
+ * `requireAuthenticatedCaller` is on, for a flow that runs before
4508
+ * sign-in. Matched against the request's pathname in full, never as a
4509
+ * prefix. `REQUIRE_AUTHENTICATED_CALLER_EXEMPT_PATHS` overrides, as a
4510
+ * comma-separated list. Each entry is a hole in the floor: only ever name
4511
+ * a path serving operations that are safe without a caller. */
4512
+ requireAuthenticatedCallerExemptPaths?: string[];
4513
+ /** Decide an attachment read with the referencing document's own policy
4514
+ * instead of the host permission tables. Off by default;
4515
+ * `ATTACHMENT_READS_FOLLOW_DOCUMENT_POLICY` overrides. Requires auth
4516
+ * enforcement, which is what supplies the model — refused at boot
4517
+ * without it. */
4518
+ attachmentReadsFollowDocumentPolicy?: boolean;
3532
4519
  };
3533
4520
  /** Renown coordinates the host already resolved, used verbatim instead of
3534
4521
  * resolving `auth.renown` and the env again (which would warn twice). */
@@ -3566,13 +4553,13 @@ type ProcessorInitializer = ProcessorFactoryBuilder;
3566
4553
  * Doc-perms require auth: with auth off no `user` is ever resolved, so every
3567
4554
  * authorization check fails closed. Refuse to boot rather than run broken.
3568
4555
  */
3569
- declare function assertAuthRequiredForDocumentPermissions(authEnabled: boolean, documentPermissionsRequested: boolean): void;
4556
+ export declare function assertAuthRequiredForDocumentPermissions(authEnabled: boolean, documentPermissionsRequested: boolean): void;
3570
4557
  /**
3571
4558
  * Refuses SKIP_CREDENTIAL_VERIFICATION at boot outside tests or an explicit
3572
4559
  * opt-in: it removes the only binding between a token's claimed address and its
3573
4560
  * signing key. Fail-closed — unset NODE_ENV counts as production.
3574
4561
  */
3575
- declare function assertSkipCredentialVerificationAllowed(resolvesCallerIdentity: boolean, skipCredentialVerification: boolean, env: NodeJS.ProcessEnv): void;
4562
+ export declare function assertSkipCredentialVerificationAllowed(resolvesCallerIdentity: boolean, skipCredentialVerification: boolean, env: NodeJS.ProcessEnv): void;
3576
4563
  /**
3577
4564
  * Requiring an authenticated caller requires identity resolution to exist at
3578
4565
  * all: with neither AUTH_ENABLED nor RESOLVE_CALLER_IDENTITY the middleware
@@ -3580,14 +4567,22 @@ declare function assertSkipCredentialVerificationAllowed(resolvesCallerIdentity:
3580
4567
  * require-authenticated-caller middleware would reject every caller —
3581
4568
  * authenticated ones included. Refuse to boot rather than run broken.
3582
4569
  */
3583
- declare function assertRequireAuthenticatedCallerAllowed(requireAuthenticatedCaller: boolean, resolvesCallerIdentity: boolean): void;
4570
+ export declare function assertRequireAuthenticatedCallerAllowed(requireAuthenticatedCaller: boolean, resolvesCallerIdentity: boolean, exemptPaths?: readonly string[]): void;
4571
+ /**
4572
+ * Deciding an attachment read by the document's policy needs a policy model to
4573
+ * decide with, and that is what auth enforcement supplies. Without one there is
4574
+ * nothing to consult, so the setting would silently leave the permission tables
4575
+ * in charge — configuration that describes a protection the server is not
4576
+ * applying, which is worse than no configuration at all. Refuse instead.
4577
+ */
4578
+ export declare function assertAttachmentPolicyReadsAllowed(attachmentReadsFollowDocumentPolicy: boolean, hasDecisionModel: boolean): void;
3584
4579
  /**
3585
4580
  * The GraphiQL explorer page's mount prefix. `path.posix.join` normalizes the
3586
4581
  * join with `basePath` — a naive template literal would produce `//explorer`
3587
4582
  * for the default `/` basePath, which express compiles into a route that only
3588
4583
  * matches `//explorer`, leaving `GET /explorer` a 404.
3589
4584
  */
3590
- declare function getExplorerPrefix(basePath: string): string;
4585
+ export declare function getExplorerPrefix(basePath: string): string;
3591
4586
  /**
3592
4587
  * Initializes and starts the API server using an initializer function.
3593
4588
  * This function first loads packages to get document models, then calls the initializer function
@@ -3603,47 +4598,68 @@ declare function getExplorerPrefix(basePath: string): string;
3603
4598
  * alongside the reactor module so resolvers can dispatch reactor-drive parent
3604
4599
  * ops to it; legacy switchboards omit it.
3605
4600
  */
3606
- interface ClientInitializerResult {
4601
+ export interface ClientInitializerResult {
3607
4602
  module: InProcessReactorClientModule;
3608
4603
  reactorDriveClient?: IDriveClient;
3609
4604
  attachmentReferenceProjection?: AttachmentReferenceProjectionCapability;
3610
4605
  }
3611
- interface ClientInitializerDependencies {
4606
+ export interface ClientInitializerDependencies {
3612
4607
  attachmentReferenceWriter: IAttachmentReferenceWriter;
3613
4608
  /** Upgrade manifests exported by the loaded packages, one per type. */
3614
4609
  upgradeManifests: UpgradeManifest<readonly number[]>[];
3615
4610
  }
3616
- declare function initializeAndStartAPI(clientInitializer: (documentModels: DocumentModelModule[], dependencies: ClientInitializerDependencies) => Promise<ClientInitializerResult>, options: Options, processorApp: ProcessorApp): Promise<API & {
4611
+ export declare function initializeAndStartAPI(clientInitializer: (documentModels: DocumentModelModule[], dependencies: ClientInitializerDependencies) => Promise<ClientInitializerResult>, options: Options, processorApp: ProcessorApp): Promise<API & {
3617
4612
  client: IReactorClient;
3618
4613
  syncManager: ISyncManager;
3619
4614
  documentModelRegistry: IDocumentModelRegistry;
3620
4615
  readiness: ReadinessGate;
3621
4616
  attachmentReferenceProjection: AttachmentReferenceProjectionCapability;
3622
4617
  packageManager: PackageManager;
4618
+ /** Set under DOCUMENT_PERMISSIONS; the privacy add-on erases through it. */
4619
+ documentPermissionService: DocumentPermissionService | undefined;
3623
4620
  }>;
3624
4621
  //#endregion
3625
4622
  //#region src/services/renown-credential-verifier.d.ts
3626
- interface RenownCredentialVerifierConfig {
4623
+ export interface RenownCredentialVerifierConfig {
3627
4624
  renownUrl?: string;
3628
4625
  switchboardUrl?: string;
3629
4626
  }
3630
- declare function createRenownCredentialVerifier(config?: RenownCredentialVerifierConfig): Promise<CredentialVerifier>;
4627
+ export declare function createRenownCredentialVerifier(config?: RenownCredentialVerifierConfig): Promise<CredentialVerifier>;
4628
+ //#endregion
4629
+ //#region src/services/privacy-permissions.d.ts
4630
+ /** One permission row naming an address, as reactor-privacy discloses it. */
4631
+ export type PrivacyPermissionRow = {
4632
+ table: string;
4633
+ column: string;
4634
+ documentId: string | null;
4635
+ detail?: Record<string, unknown>;
4636
+ };
4637
+ /**
4638
+ * reactor-privacy's permission lookup and eraser, over this host's
4639
+ * DocumentPermissionService. Typed structurally on the privacy side.
4640
+ */
4641
+ export declare class PrivacyPermissionAdapter {
4642
+ private readonly service;
4643
+ constructor(service: DocumentPermissionService);
4644
+ rowsForAddress(address: string): Promise<PrivacyPermissionRow[]>;
4645
+ erasePermissions(documentId: string): Promise<Record<string, number>>;
4646
+ }
3631
4647
  //#endregion
3632
4648
  //#region src/utils/create-schema.d.ts
3633
- declare const buildSubgraphSchemaModule: (documentModels: DocumentModelModule[], resolvers: GraphQLResolverMap<Context$1>, typeDefs: DocumentNode) => GraphQLSchemaModule;
3634
- declare const createSchema: (documentModels: DocumentModelModule[], resolvers: GraphQLResolverMap<Context$1>, typeDefs: DocumentNode) => graphql.GraphQLSchema;
4649
+ export declare const buildSubgraphSchemaModule: (documentModels: DocumentModelModule[], resolvers: GraphQLResolverMap<Context$1>, typeDefs: DocumentNode) => GraphQLSchemaModule;
4650
+ export declare const createSchema: (documentModels: DocumentModelModule[], resolvers: GraphQLResolverMap<Context$1>, typeDefs: DocumentNode) => import("graphql").GraphQLSchema;
3635
4651
  /**
3636
4652
  * Create a merged GraphQL schema from multiple subgraph modules.
3637
4653
  * Uses buildSubgraphSchema's array overload to combine type definitions
3638
4654
  * and resolvers from multiple subgraphs into a single executable schema.
3639
4655
  */
3640
- declare const createMergedSchema: (modules: GraphQLSchemaModule[]) => graphql.GraphQLSchema;
3641
- declare function getDocumentModelSchemaName(documentModel: DocumentModelGlobalState$1): string;
3642
- declare const getDocumentModelTypeDefs: (documentModels: DocumentModelModule[], typeDefs: DocumentNode) => DocumentNode;
4656
+ export declare const createMergedSchema: (modules: GraphQLSchemaModule[]) => import("graphql").GraphQLSchema;
4657
+ export declare function getDocumentModelSchemaName(documentModel: DocumentModelGlobalState$1): string;
4658
+ export declare const getDocumentModelTypeDefs: (documentModels: DocumentModelModule[], typeDefs: DocumentNode) => DocumentNode;
3643
4659
  /**
3644
4660
  * Options for generating document model GraphQL schemas.
3645
4661
  */
3646
- interface DocumentModelSchemaOptions {
4662
+ export interface DocumentModelSchemaOptions {
3647
4663
  /**
3648
4664
  * When true, generates new API patterns:
3649
4665
  * - Mutations return full document objects (MutationResult type)
@@ -3660,7 +4676,8 @@ interface DocumentModelSchemaOptions {
3660
4676
  * @param options - Schema generation options
3661
4677
  * @returns GraphQL DocumentNode
3662
4678
  */
3663
- declare function generateDocumentModelSchema(documentModel: DocumentModelGlobalState$1, options?: DocumentModelSchemaOptions): DocumentNode;
4679
+ export declare function generateDocumentModelSchema(documentModel: DocumentModelGlobalState$1, options?: DocumentModelSchemaOptions): DocumentNode;
3664
4680
  //#endregion
3665
- export { ADMIN_USERS, API, Action, ActionCandidateInput, ActionCandidateInputSchema, ActionContext, ActionContextInput, ActionContextInputSchema, ActionContextResolvers, ActionEvaluation, ActionEvaluationResolvers, ActionEvaluations, ActionEvaluationsResolvers, ActionInput, ActionInputSchema, ActionResolvers, AdapterRouteHandle, AddRelationshipDocument, AddRelationshipMutation, AddRelationshipMutationVariables, AnalyticsSubgraph, AttachmentAccessRequest, AttachmentAccessResult, AttachmentAccessService, type AttachmentReferenceProjectionCapability, AuthConfig, AuthContext, AuthDecision, AuthDecisionSchema, AuthFetchMiddleware, AuthService, AuthSubgraph, type AuthorizationConfig, AuthorizationPolicy, AuthorizedDocumentHandle, type AuthorizerResult, BaseSubgraph, CORE_PACKAGE_NAME, type CanonicalDocumentId, CanonicalDocumentIdResolutionError, CanonicalDocumentIdResolver, ChannelMeta, ChannelMetaInput, ChannelMetaInputSchema, ChannelMetaResolvers, ClientInitializerDependencies, ClientInitializerResult, Context, CreateDocumentDocument, CreateDocumentMutation, CreateDocumentMutationVariables, CreateEmptyDocumentDocument, CreateEmptyDocumentMutation, CreateEmptyDocumentMutationVariables, CredentialVerifier, DateTimeScalarConfig, DbClient, DeadLetterInfo, DeadLetterInfoResolvers, DeleteDocumentDocument, DeleteDocumentMutation, DeleteDocumentMutationVariables, DeleteDocumentsDocument, DeleteDocumentsMutation, DeleteDocumentsMutationVariables, DirectiveResolverFn, DocumentChangeContext, DocumentChangeContextResolvers, DocumentChangeEvent, DocumentChangeEventResolvers, DocumentChangeType, DocumentChangeTypeSchema, DocumentChangesDocument, DocumentChangesSubscription, DocumentChangesSubscriptionVariables, DocumentModelGlobalState, DocumentModelGlobalStateResolvers, DocumentModelResultPage, DocumentModelResultPageResolvers, DocumentModelSchemaOptions, DocumentOperationsFilterInput, DocumentOperationsFilterInputSchema, DocumentPermissionConfig, DocumentPermissionDatabase, DocumentPermissionEntry, DocumentPermissionLevel, DocumentPermissionService, DocumentPermissionTable, DocumentProtectionTable, DocumentWithChildren, DocumentWithChildrenResolvers, EvaluateActionsDocument, EvaluateActionsQuery, EvaluateActionsQueryVariables, Exact, ExplorerUrlState, FetchHandler, FindDocumentsDocument, FindDocumentsQuery, FindDocumentsQueryVariables, GatewayAdapterType, GatewayContextFactory, GetDocumentDocument, GetDocumentIncomingRelationshipsDocument, GetDocumentIncomingRelationshipsQuery, GetDocumentIncomingRelationshipsQueryVariables, GetDocumentModelsDocument, GetDocumentModelsQuery, GetDocumentModelsQueryVariables, GetDocumentOperationsDocument, GetDocumentOperationsQuery, GetDocumentOperationsQueryVariables, GetDocumentOutgoingRelationshipsDocument, GetDocumentOutgoingRelationshipsQuery, GetDocumentOutgoingRelationshipsQueryVariables, GetDocumentQuery, GetDocumentQueryVariables, GetDocumentWithOperationsDocument, GetDocumentWithOperationsQuery, GetDocumentWithOperationsQueryVariables, GetJobStatusDocument, GetJobStatusQuery, GetJobStatusQueryVariables, GetParentIdsFn, GqlDocument, GqlDriveDocument, GqlOperation, GqlOperationContext, GqlSigner, GqlSignerApp, GqlSignerUser, GraphQLManager, GraphqlManagerFeatureFlags, HttpAdapterSetup, HttpAdapterType, HttpDocumentModelLoader, HttpMethod, HttpPackageLoader, HttpPackageLoaderLogger, HttpPackageLoaderOptions, HttpRouteService, type HttpRouteServiceOptions, IAttachmentAccessService, type IAuthorizationService, IGatewayAdapter, IHttpAdapter, type IHttpScope, type IPackageLoader, type IPackageLoaderOptions, IPackageStorage, IProcessorHostModule, IReactorProcessorHostModule, ISubgraph, type IWebhookEndpoints, type IWebhookScope, type IWebhookStore, ImportPackageLoader, InMemoryPackageStorage, Incremental, InputMaybe, InstallPackageResult, InstalledPackageInfo, InvalidNamespaceError, IsTypeOfResolverFn, JobChangeEvent, JobChangeEventResolvers, JobChangesDocument, JobChangesSubscription, JobChangesSubscriptionVariables, JobInfo, JobInfoResolvers, JsonObjectScalarConfig, MakeEmpty, MakeMaybe, MakeOptional, Maybe, MemoryWebhookStore, MoveRelationshipDocument, MoveRelationshipMutation, MoveRelationshipMutationVariables, MoveRelationshipResult, MoveRelationshipResultResolvers, MutateDocumentAsyncDocument, MutateDocumentAsyncMutation, MutateDocumentAsyncMutationVariables, MutateDocumentDocument, MutateDocumentMutation, MutateDocumentMutationVariables, Mutation, MutationAddRelationshipArgs, MutationCreateDocumentArgs, MutationCreateEmptyDocumentArgs, MutationDeleteDocumentArgs, MutationDeleteDocumentsArgs, MutationExecuteArgs, MutationExecuteAsyncArgs, MutationMoveRelationshipArgs, MutationMutateDocumentArgs, MutationMutateDocumentAsyncArgs, MutationPushSyncEnvelopesArgs, MutationRemoveRelationshipArgs, MutationRenameDocumentArgs, MutationResolvers, MutationSetPreferredEditorArgs, MutationTouchChannelArgs, NextResolverFn, NodeRouteOptions, type NodeRouteSpec, OperationContext, OperationContextInput, OperationContextInputSchema, OperationContextResolvers, OperationInput, OperationInputSchema, OperationUserPermissionEntry, OperationUserPermissionTable, OperationWithContext, OperationWithContextInput, OperationWithContextInputSchema, OperationWithContextResolvers, OperationsFilterInput, OperationsFilterInputSchema, PACKAGE_ROUTE_SEGMENT, PGLITE_UTC_PARSERS, PackageManagementService, PackageManagementServiceOptions, PackageManager, PackagesSubgraph, type PackagesSubgraphArgs, PagingInput, PagingInputSchema, type ParsedDriveUrl, PgliteFactory, PhDocument, PhDocumentFieldsFragment, PhDocumentFieldsFragmentDoc, PhDocumentOperationsArgs, PhDocumentResolvers, PhDocumentResultPage, PhDocumentResultPageResolvers, PollSyncEnvelopesDocument, PollSyncEnvelopesQuery, PollSyncEnvelopesQueryVariables, PollSyncEnvelopesResult, PollSyncEnvelopesResultResolvers, Processor, ProcessorDriveFactory, ProcessorFactoryBuilder, PropagationMode, PropagationModeSchema, PushSyncEnvelopesDocument, PushSyncEnvelopesMutation, PushSyncEnvelopesMutationVariables, Query, QueryDocumentArgs, QueryDocumentIncomingRelationshipsArgs, QueryDocumentModelsArgs, QueryDocumentOperationsArgs, QueryDocumentOutgoingRelationshipsArgs, QueryEvaluateActionsArgs, QueryFindDocumentsArgs, QueryJobStatusArgs, QueryPollSyncEnvelopesArgs, QueryResolvers, ReactorModule, ReactorOperation, ReactorOperationResolvers, ReactorOperationResultPage, ReactorOperationResultPageResolvers, ReactorSigner, ReactorSignerApp, ReactorSignerAppInput, ReactorSignerAppInputSchema, ReactorSignerAppResolvers, ReactorSignerInput, ReactorSignerInputSchema, ReactorSignerResolvers, ReactorSignerUser, ReactorSignerUserInput, ReactorSignerUserInputSchema, ReactorSignerUserResolvers, ReactorSubgraph, ReadinessGate, RelationalWebhookStore, RemoteCursor, RemoteCursorInput, RemoteCursorInputSchema, RemoteCursorResolvers, RemoteFilterInput, RemoteFilterInputSchema, RemoveRelationshipDocument, RemoveRelationshipMutation, RemoveRelationshipMutationVariables, RenameDocumentDocument, RenameDocumentMutation, RenameDocumentMutationVariables, RenownConfig, RenownCredentialVerifierConfig, RenownSource, Requester, RequireFields, ResolvedRenownConfig, Resolver, ResolverFn, ResolverTypeWrapper, ResolverWithResolve, Resolvers, ResolversObject, ResolversParentTypes, ResolversTypes, Revision, RevisionResolvers, type RouteActor, type RouteAuth, type RouteAuthorizer, type RouteBody, type RouteContext, type RouteHandler, type RouteMethod, type RouteOptions, type RouteSpec, type RouteTransport, type RouteUser, Scalars, type ScopedRouteHandle, Sdk, SearchFilterInput, SearchFilterInputSchema, SetPreferredEditorDocument, SetPreferredEditorMutation, SetPreferredEditorMutationVariables, SubgraphArgs, SubgraphClass, SubgraphDefinition, Subscription, SubscriptionDocumentChangesArgs, SubscriptionJobChangesArgs, SubscriptionObject, SubscriptionResolveFn, SubscriptionResolver, SubscriptionResolverObject, SubscriptionResolvers, SubscriptionSubscribeFn, SubscriptionSubscriberObject, SyncEnvelope, SyncEnvelopeInput, SyncEnvelopeInputSchema, SyncEnvelopeResolvers, SyncEnvelopeType, SyncEnvelopeTypeSchema, SystemSubgraph, TlsOptions, TouchChannelDocument, TouchChannelInput, TouchChannelInputSchema, TouchChannelMutation, TouchChannelMutationVariables, TouchChannelResult, TouchChannelResultResolvers, TypeResolveFn, User, ViewFilterInput, ViewFilterInputSchema, WEBHOOK_SEGMENT, WS_AUTH_CLOSE_REASONS, WS_CLOSE_REASON_AUTHENTICATION_REQUIRED, WS_CLOSE_REASON_BEARER_REJECTED, type WebhookEndpointInfo, type WebhookEndpointRow, type WebhookField, type WebhookHashAlgorithm, type WebhookPolicy, type WebhookReply, type WebhookRequest, type WebhookScheme, WebhookService, type WebhookSignatureEncoding, type WebhookSpec, type WebhookVerification, WithIndex, WsConnectHandler, WsConnection, WsContextFactory, WsDisposer, WsHandlers, assertAuthRequiredForDocumentPermissions, assertCredentialVerifierForSource, assertHostMountPath, assertRequireAuthenticatedCallerAllowed, assertSkipCredentialVerificationAllowed, buildGraphQlDocument, buildGraphQlDriveDocument, buildGraphqlOperation, buildGraphqlOperations, buildSubgraphSchemaModule, createAuthFetchMiddleware, createCanonicalDocumentIdResolver, createGatewayAdapter, createHttpAdapter, createMergedSchema, createReactorGraphQLClient, createRenownCredentialVerifier, createSchema, createWsAuthHandlers, decodeExplorerUrlState, definedNonNullAnySchema, driveIdFromUrl, extractSubgraphsFromModule, generateDocumentModelSchema, getAuthContext, getDbClient, getDocumentModelSchemaName, getDocumentModelTypeDefs, getExplorerPrefix, getGitHash, getGitUrl, getSdk, getUniqueDocumentModels, getUniqueUpgradeManifests, getVersion, initAnalyticsStoreSql, initializeAndStartAPI, isDefinedNonNullAny, isExpectedLoaderMiss, isSubgraphClass, namespacePath, namespaceSegments, newWebhookToken, parseDriveUrl, parseWebhookBody, redactHeaders, renderGraphqlPlayground, resolvePackageName, resolveRenownConfig, verifyWebhook };
4681
+ export { type AuthorizationConfig, type AuthorizerResult, type CanonicalDocumentId, type HttpRouteServiceOptions, type IAuthorizationService, type IHttpScope, type IPackageLoader, type IPackageLoaderOptions, type IPackagePieceSource, type IWebhookEndpoints, type IWebhookScope, type IWebhookStore, type NodeRouteSpec, type PackagePiece, type PackagePieceEntry, type PackagesSubgraphArgs, type ParsedDriveUrl, type RouteActor, type RouteAuth, type RouteAuthorizer, type RouteBody, type RouteContext, type RouteHandler, type RouteMethod, type RouteOptions, type RouteSpec, type RouteTransport, type RouteUser, type ScopedRouteHandle, type WebhookEndpointInfo, type WebhookEndpointRow, type WebhookField, type WebhookHashAlgorithm, type WebhookPolicy, type WebhookReply, type WebhookRequest, type WebhookScheme, type WebhookSignatureEncoding, type WebhookSpec, type WebhookVerification, driveIdFromUrl, parseDriveUrl };
4682
+ export {};
3666
4683
  //# sourceMappingURL=index.d.mts.map