@powerhousedao/reactor-api 6.2.3-dev.3 → 6.2.3-dev.31

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 (43) hide show
  1. package/README.md +7 -2
  2. package/dist/{adapter-gateway-apollo-Cn9E96GF.mjs → adapter-gateway-apollo-B54G_cXT.mjs} +18 -17
  3. package/dist/adapter-gateway-apollo-B54G_cXT.mjs.map +1 -0
  4. package/dist/{adapter-gateway-apollo-C_RdohOv.mjs → adapter-gateway-apollo-D2DNlPY0.mjs} +3 -3
  5. package/dist/{adapter-gateway-mercurius-CjaUcMgX.mjs → adapter-gateway-mercurius-rbKlwF9m.mjs} +7 -6
  6. package/dist/adapter-gateway-mercurius-rbKlwF9m.mjs.map +1 -0
  7. package/dist/{adapter-gateway-stitching-HmWjRMhm.mjs → adapter-gateway-stitching-Dzv10u8D.mjs} +18 -14
  8. package/dist/adapter-gateway-stitching-Dzv10u8D.mjs.map +1 -0
  9. package/dist/{adapter-http-express-B39rPhqH.mjs → adapter-http-express-CWqziB1p.mjs} +7 -7
  10. package/dist/adapter-http-express-CWqziB1p.mjs.map +1 -0
  11. package/dist/{adapter-http-fastify-BwXO6rqE.mjs → adapter-http-fastify-CYZQ6FFv.mjs} +10 -9
  12. package/dist/adapter-http-fastify-CYZQ6FFv.mjs.map +1 -0
  13. package/dist/index.d.mts +865 -453
  14. package/dist/index.d.mts.map +1 -1
  15. package/dist/index.mjs +1160 -320
  16. package/dist/index.mjs.map +1 -1
  17. package/dist/{utils-XWVecaNn.mjs → pieces-WWMZBM0n.mjs} +146 -9
  18. package/dist/pieces-WWMZBM0n.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 +10 -6
  27. package/dist/src/packages/vite-loader.d.mts.map +1 -1
  28. package/dist/src/packages/vite-loader.mjs +71 -9
  29. package/dist/src/packages/vite-loader.mjs.map +1 -1
  30. package/dist/{types-DcYyNcHJ.d.mts → types-CuSz_zv6.d.mts} +26 -3
  31. package/dist/types-CuSz_zv6.d.mts.map +1 -0
  32. package/dist/{websocket-DncAB9XK.mjs → websocket-_SH5aBcy.mjs} +3 -3
  33. package/dist/{websocket-DncAB9XK.mjs.map → websocket-_SH5aBcy.mjs.map} +1 -1
  34. package/package.json +18 -18
  35. package/dist/adapter-gateway-apollo-Cn9E96GF.mjs.map +0 -1
  36. package/dist/adapter-gateway-mercurius-CjaUcMgX.mjs.map +0 -1
  37. package/dist/adapter-gateway-stitching-HmWjRMhm.mjs.map +0 -1
  38. package/dist/adapter-http-express-B39rPhqH.mjs.map +0 -1
  39. package/dist/adapter-http-fastify-BwXO6rqE.mjs.map +0 -1
  40. package/dist/path-normalize-BOQwY9wR.mjs +0 -23
  41. package/dist/path-normalize-BOQwY9wR.mjs.map +0 -1
  42. package/dist/types-DcYyNcHJ.d.mts.map +0 -1
  43. package/dist/utils-XWVecaNn.mjs.map +0 -1
package/dist/index.d.mts CHANGED
@@ -1,8 +1,7 @@
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-CuSz_zv6.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";
4
+ import { DocumentNode, GraphQLError, GraphQLResolveInfo, GraphQLScalarType, GraphQLScalarTypeConfig, GraphQLSchema } from "graphql";
6
5
  import { AttachmentRef, IDocumentModelLoader, IDocumentModelRegistry, IDriveClient, IReactorClient, IReactorProcessorHostModuleBase, IRelationalDb, ISyncManager, InProcessReactorClientModule, ParsedDriveUrl, ProcessorFactoryBuilder as ProcessorFactoryBuilder$1, SyncScopeGate, driveIdFromUrl, parseDriveUrl } from "@powerhousedao/reactor";
7
6
  import { ILogger } from "document-model";
8
7
  import { GraphQLResolverMap, GraphQLSchemaModule } from "@apollo/subgraph";
@@ -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,7 +62,7 @@ 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
  };
70
68
  /**
@@ -73,17 +71,17 @@ declare const PGLITE_UTC_PARSERS: {
73
71
  * data dir was created with an older PG major. Wire-compatible with the
74
72
  * current PGLite class for the surface knex-pglite uses.
75
73
  */
76
- type PgliteFactory = (connectionString: string | undefined) => PGlite;
77
- interface DbClient {
74
+ export type PgliteFactory = (connectionString: string | undefined) => PGlite;
75
+ export interface DbClient {
78
76
  db: Db;
79
77
  knex: Knex;
80
78
  pglite: PGlite | undefined;
81
79
  }
82
- declare function getDbClient(connectionString?: string | undefined, pgliteFactory?: PgliteFactory): DbClient;
83
- declare const initAnalyticsStoreSql: string[];
80
+ export declare function getDbClient(connectionString?: string | undefined, pgliteFactory?: PgliteFactory): DbClient;
81
+ export declare const initAnalyticsStoreSql: string[];
84
82
  //#endregion
85
83
  //#region src/services/document-permission.service.d.ts
86
- interface DocumentPermissionEntry {
84
+ export interface DocumentPermissionEntry {
87
85
  documentId: string;
88
86
  userAddress: string;
89
87
  permission: DocumentPermissionLevel;
@@ -91,7 +89,7 @@ interface DocumentPermissionEntry {
91
89
  createdAt: Date;
92
90
  updatedAt: Date;
93
91
  }
94
- interface OperationUserPermissionEntry {
92
+ export interface OperationUserPermissionEntry {
95
93
  documentId: string;
96
94
  operationType: string;
97
95
  userAddress: string;
@@ -102,11 +100,11 @@ interface OperationUserPermissionEntry {
102
100
  * Function type for getting parent document IDs
103
101
  * This is injected to avoid circular dependencies with the reactor client
104
102
  */
105
- type GetParentIdsFn = (documentId: string) => Promise<string[]>;
103
+ export type GetParentIdsFn = (documentId: string) => Promise<string[]>;
106
104
  /**
107
105
  * Configuration for the DocumentPermissionService
108
106
  */
109
- interface DocumentPermissionConfig {
107
+ export interface DocumentPermissionConfig {
110
108
  defaultProtection: boolean;
111
109
  }
112
110
  /**
@@ -120,7 +118,7 @@ interface DocumentPermissionConfig {
120
118
  * Operation permissions:
121
119
  * - Users can be granted permission to execute specific operations
122
120
  */
123
- declare class DocumentPermissionService {
121
+ export declare class DocumentPermissionService {
124
122
  private readonly db;
125
123
  readonly config: DocumentPermissionConfig;
126
124
  constructor(db: Kysely<DocumentPermissionDatabase>, config?: DocumentPermissionConfig);
@@ -230,7 +228,7 @@ type CanonicalDocumentId = string & {
230
228
  * always safe for the data fetch: the canonical id when resolved, or the raw
231
229
  * identifier when the check was skipped for a policy-wide caller.
232
230
  */
233
- declare class AuthorizedDocumentHandle {
231
+ export declare class AuthorizedDocumentHandle {
234
232
  readonly fetchIdentifier: string;
235
233
  readonly isResolved: boolean;
236
234
  private constructor();
@@ -239,12 +237,12 @@ declare class AuthorizedDocumentHandle {
239
237
  /** The verified canonical id; throws when resolution was skipped. */
240
238
  canonicalId(): CanonicalDocumentId;
241
239
  }
242
- declare const AuthorizationPolicy: {
240
+ export declare const AuthorizationPolicy: {
243
241
  readonly OPEN: "OPEN";
244
242
  readonly ADMIN_ONLY: "ADMIN_ONLY";
245
243
  readonly DOCUMENT_PERMISSIONS: "DOCUMENT_PERMISSIONS";
246
244
  };
247
- type AuthorizationPolicy = (typeof AuthorizationPolicy)[keyof typeof AuthorizationPolicy];
245
+ export type AuthorizationPolicy = (typeof AuthorizationPolicy)[keyof typeof AuthorizationPolicy];
248
246
  interface AuthorizationConfig {
249
247
  admins: string[];
250
248
  defaultProtection: boolean;
@@ -288,19 +286,32 @@ interface IAuthorizationService {
288
286
  }
289
287
  //#endregion
290
288
  //#region src/graphql/gateway/types.d.ts
291
- type TlsOptions = {
289
+ export type TlsOptions = {
292
290
  keyPath: string;
293
291
  certPath: string;
294
292
  } | {
295
293
  cert: Buffer | string;
296
294
  key: Buffer | string;
297
295
  } | true;
298
- type GatewayContextFactory<TContext = unknown> = (request: Request) => Promise<TContext>;
299
- type WsContextFactory<TContext = unknown> = (connectionParams: Record<string, unknown>) => Promise<TContext>;
300
- type WsDisposer = {
296
+ export type GatewayContextFactory<TContext = unknown> = (request: Request) => Promise<TContext>;
297
+ /** Under graphql-ws this is `ctx.extra`, created once per socket. */
298
+ export type WsConnection = object;
299
+ export type WsContextFactory<TContext = unknown> = (connectionParams: Record<string, unknown>, connection: WsConnection) => Promise<TContext>;
300
+ export type WsConnectHandler = (connectionParams: Record<string, unknown>, connection: WsConnection) => Promise<boolean>;
301
+ export type WsHandlers<TContext = unknown> = {
302
+ onConnect: WsConnectHandler;
303
+ context: WsContextFactory<TContext>;
304
+ };
305
+ /** No authenticated caller resolved, and REQUIRE_AUTHENTICATED_CALLER wants one. */
306
+ export declare const WS_CLOSE_REASON_AUTHENTICATION_REQUIRED = "authentication-required";
307
+ /** A bearer was sent and could not be verified. */
308
+ export declare const WS_CLOSE_REASON_BEARER_REJECTED = "bearer-rejected";
309
+ /** Every reason a refusal closes with, for a client matching on the set. */
310
+ export declare const WS_AUTH_CLOSE_REASONS: readonly ["authentication-required", "bearer-rejected"];
311
+ export type WsDisposer = {
301
312
  dispose: () => void | Promise<void>;
302
313
  };
303
- type FetchHandler = (request: Request) => Promise<Response>;
314
+ export type FetchHandler = (request: Request) => Promise<Response>;
304
315
  /**
305
316
  * Handle to a route registered directly on the adapter. Packages hot-reload,
306
317
  * so every registration is reversible; disposing a route that is already gone
@@ -316,7 +327,7 @@ type FetchHandler = (request: Request) => Promise<Response>;
316
327
  * which also carries the public URL the route answers on — at this layer there
317
328
  * is no namespace to build one from and no knowledge of the host's origin.
318
329
  */
319
- interface AdapterRouteHandle {
330
+ export interface AdapterRouteHandle {
320
331
  dispose(): void;
321
332
  }
322
333
  /**
@@ -325,7 +336,7 @@ interface AdapterRouteHandle {
325
336
  * federation adapters treat it as a service to call over HTTP, while the
326
337
  * stitching adapter merges its typeDefs and resolvers in-process.
327
338
  */
328
- type SubgraphDefinition = {
339
+ export type SubgraphDefinition = {
329
340
  name: string;
330
341
  typeDefs: DocumentNode;
331
342
  url: string;
@@ -338,7 +349,7 @@ type SubgraphDefinition = {
338
349
  */
339
350
  resolvers?: Record<string, unknown>;
340
351
  };
341
- interface IGatewayAdapter<TContext = unknown> {
352
+ export interface IGatewayAdapter<TContext = unknown> {
342
353
  /** One-time startup. */
343
354
  start(httpServer: http.Server): Promise<void>;
344
355
  /**
@@ -360,16 +371,16 @@ interface IGatewayAdapter<TContext = unknown> {
360
371
  * been called yet, or after stop().
361
372
  */
362
373
  updateSupergraph(): Promise<void>;
363
- /** Attach WebSocket subscriptions. Returns a disposer. */
364
- attachWebSocket(wsServer: WebSocketServer, schema: GraphQLSchema, contextFactory: WsContextFactory<TContext>): WsDisposer;
374
+ /** Without `onConnect`, refusing would mean throwing: an unretryable 4500. */
375
+ attachWebSocket(wsServer: WebSocketServer, schema: GraphQLSchema, handlers: WsHandlers<TContext>): WsDisposer;
365
376
  stop(): Promise<void>;
366
377
  }
367
378
  /**
368
379
  * Methods a node route may bind. OPTIONS is excluded: the framework's CORS
369
380
  * plugin owns preflight, and a duplicate registration conflicts at startup.
370
381
  */
371
- type HttpMethod = "DELETE" | "GET" | "HEAD" | "PATCH" | "POST" | "PUT";
372
- interface NodeRouteOptions {
382
+ export type HttpMethod = "DELETE" | "GET" | "HEAD" | "PATCH" | "POST" | "PUT";
383
+ export interface NodeRouteOptions {
373
384
  /** Serve sub-paths too, not just an exact path match. */
374
385
  prefix?: boolean;
375
386
  /**
@@ -385,7 +396,7 @@ interface NodeRouteOptions {
385
396
  */
386
397
  rawBody?: boolean;
387
398
  }
388
- interface IHttpAdapter {
399
+ export interface IHttpAdapter {
389
400
  /** Set up CORS and body-parser equivalent middleware. */
390
401
  setupMiddleware(config: {
391
402
  corsOptions?: CorsOptions;
@@ -400,7 +411,8 @@ interface IHttpAdapter {
400
411
  * replaces the previous one (last write wins).
401
412
  */
402
413
  mount(path: string, handler: FetchHandler, options?: {
403
- prefix?: boolean; /** @deprecated Misleading name: this always meant *prefix*, not exact. */
414
+ prefix?: boolean;
415
+ /** @deprecated Misleading name: this always meant *prefix*, not exact. */
404
416
  exact?: boolean;
405
417
  }): AdapterRouteHandle;
406
418
  /**
@@ -410,9 +422,10 @@ interface IHttpAdapter {
410
422
  getRoute(path: string, handler: (request: Request) => Response | Promise<Response>): AdapterRouteHandle;
411
423
  /**
412
424
  * Start listening on the given port. Returns the underlying http.Server
413
- * so callers can attach WebSocket servers.
425
+ * so callers can attach WebSocket servers. Without `host` it binds the
426
+ * wildcard address.
414
427
  */
415
- listen(port: number, tls?: TlsOptions): Promise<http.Server>;
428
+ listen(port: number, tls?: TlsOptions, host?: string): Promise<http.Server>;
416
429
  /**
417
430
  * Mount a raw Connect/Express-compatible middleware function (e.g. Vite dev
418
431
  * server middleware). The implementation is adapter-specific; for Express this
@@ -441,12 +454,12 @@ interface IHttpAdapter {
441
454
  }
442
455
  //#endregion
443
456
  //#region src/services/auth.service.d.ts
444
- type CredentialVerifier = (params: {
457
+ export type CredentialVerifier = (params: {
445
458
  address: string;
446
459
  chainId: number;
447
460
  appId: string;
448
461
  }) => Promise<boolean>;
449
- interface AuthConfig {
462
+ export interface AuthConfig {
450
463
  /**
451
464
  * Whether the authorization policy enforces anything: it selects `ADMIN_ONLY`
452
465
  * over `OPEN`, and it is what `AuthContext.auth_enabled` reports to callers
@@ -479,13 +492,13 @@ interface AuthConfig {
479
492
  * `@powerhousedao/shared/processors` as `RouteUser`, so a route handler and a
480
493
  * resolver agree on it without either package redeclaring it.
481
494
  */
482
- type User = RouteUser$1;
483
- interface AuthContext {
495
+ export type User = RouteUser$1;
496
+ export interface AuthContext {
484
497
  user?: User;
485
498
  admins: string[];
486
499
  auth_enabled: boolean;
487
500
  }
488
- declare class AuthService {
501
+ export declare class AuthService {
489
502
  private readonly config;
490
503
  private readonly credentialCache;
491
504
  constructor(config: AuthConfig);
@@ -502,6 +515,7 @@ declare class AuthService {
502
515
  * middleware that must enforce authentication on every request.
503
516
  */
504
517
  verifyBearer(authorization: string | undefined): Promise<AuthContext | globalThis.Response>;
518
+ /** Throws only for a bearer that is present and unusable, as HTTP 401s it. */
505
519
  authenticateWebSocketConnection(connectionParams: Record<string, unknown>): Promise<User | null>;
506
520
  /**
507
521
  * Verify the auth bearer token
@@ -563,9 +577,9 @@ interface IWebhookStore {
563
577
  seen(token: string, key: string, ttlSeconds: number): Promise<boolean>;
564
578
  }
565
579
  /** Opaque and unguessable: the URL is a bearer capability held by a third party. */
566
- declare function newWebhookToken(): string;
580
+ export declare function newWebhookToken(): string;
567
581
  /** Relational implementation, over the reactor's own database. */
568
- declare class RelationalWebhookStore implements IWebhookStore {
582
+ export declare class RelationalWebhookStore implements IWebhookStore {
569
583
  #private;
570
584
  private readonly relationalDb;
571
585
  constructor(relationalDb: IRelationalDb$1);
@@ -577,7 +591,7 @@ declare class RelationalWebhookStore implements IWebhookStore {
577
591
  seen(token: string, key: string, ttlSeconds: number): Promise<boolean>;
578
592
  }
579
593
  /** In-memory store, for hosts with no relational database and for tests. */
580
- declare class MemoryWebhookStore implements IWebhookStore {
594
+ export declare class MemoryWebhookStore implements IWebhookStore {
581
595
  #private;
582
596
  init(): Promise<void>;
583
597
  ensure(namespace: string, endpoint: string, ownerKey: string): Promise<WebhookEndpointRow>;
@@ -589,7 +603,7 @@ declare class MemoryWebhookStore implements IWebhookStore {
589
603
  //#endregion
590
604
  //#region src/http/webhook-service.d.ts
591
605
  /** The flat, token-addressed path family. */
592
- declare const WEBHOOK_SEGMENT = "webhooks";
606
+ export declare const WEBHOOK_SEGMENT = "webhooks";
593
607
  interface WebhookServiceOptions {
594
608
  store: IWebhookStore;
595
609
  basePath?: string;
@@ -598,13 +612,9 @@ interface WebhookServiceOptions {
598
612
  }
599
613
  /** One host route for `/webhooks/:token`, dispatching by token. The flat path leaks
600
614
  * neither package nor document; the namespace lives in the token record, which is also what stops one package's token reaching another's handler. */
601
- declare class WebhookService {
615
+ export declare class WebhookService {
602
616
  #private;
603
- constructor({
604
- store,
605
- basePath,
606
- publicUrl
607
- }: WebhookServiceOptions);
617
+ constructor({ store, basePath, publicUrl }: WebhookServiceOptions);
608
618
  /** The scope the endpoint family serves from, handed over once the route service exists;
609
619
  * separate from the constructor only because that service takes this one as an option. */
610
620
  attach(scope: IHttpScope): void;
@@ -623,9 +633,9 @@ declare class WebhookService {
623
633
  //#endregion
624
634
  //#region src/http/route-service.d.ts
625
635
  /** The segment package routes live under, inside the host's base path. */
626
- declare const PACKAGE_ROUTE_SEGMENT = "api";
636
+ export declare const PACKAGE_ROUTE_SEGMENT = "api";
627
637
  /** The namespace core's own subgraphs and services register under. */
628
- declare const CORE_PACKAGE_NAME = "@powerhousedao/reactor-api";
638
+ export declare const CORE_PACKAGE_NAME = "@powerhousedao/reactor-api";
629
639
  interface HttpRouteServiceOptions {
630
640
  httpAdapter: IHttpAdapter;
631
641
  /** Absent on a host with no webhook store; `scope.webhooks` then refuses. */
@@ -642,16 +652,9 @@ interface HttpRouteServiceOptions {
642
652
  }
643
653
  /** Owns the URL space packages serve from, handing each a scope bound to its own namespace. The prefix nests inside
644
654
  * the host's base path (`<basePath>/api`), so core collisions are prevented by URL shape, not a reserved-name list. */
645
- declare class HttpRouteService {
655
+ export declare class HttpRouteService {
646
656
  #private;
647
- constructor({
648
- httpAdapter,
649
- basePath,
650
- authService,
651
- webhooks,
652
- publicUrl,
653
- trustProxy
654
- }: HttpRouteServiceOptions);
657
+ constructor({ httpAdapter, basePath, authService, webhooks, publicUrl, trustProxy }: HttpRouteServiceOptions);
655
658
  /** The absolute path packages are mounted under. */
656
659
  get prefix(): string;
657
660
  /** The scope for a package; idempotent per name, so a reload cannot accumulate namespaces. Throws when two packages
@@ -669,18 +672,18 @@ declare class HttpRouteService {
669
672
  }
670
673
  //#endregion
671
674
  //#region src/http/namespace.d.ts
672
- declare class InvalidNamespaceError extends Error {}
675
+ export declare class InvalidNamespaceError extends Error {}
673
676
  /**
674
677
  * Turns a package name into the path segments it occupies.
675
678
  * `@powerhousedao/workflow` → ["@powerhousedao", "workflow"]
676
679
  * `document-model` → ["document-model"]
677
680
  */
678
- declare function namespaceSegments(packageName: string): string[];
681
+ export declare function namespaceSegments(packageName: string): string[];
679
682
  /**
680
683
  * The path a package's routes hang off, relative to the package prefix.
681
684
  * Scoped names occupy two segments — the addressing unpkg and jsdelivr use.
682
685
  */
683
- declare function namespacePath(packageName: string): string;
686
+ export declare function namespacePath(packageName: string): string;
684
687
  /**
685
688
  * Resolves the npm name a package is routed under from the key the package
686
689
  * manager holds it by. That key is the specifier as configured, which is not
@@ -693,7 +696,7 @@ declare function namespacePath(packageName: string): string;
693
696
  * Deriving a URL segment straight from the key would give a developer's home
694
697
  * directory a route namespace, so the path form is resolved rather than slugged.
695
698
  */
696
- declare function resolvePackageName(key: string, readPackageJsonName?: (dir: string) => string | undefined): string;
699
+ export declare function resolvePackageName(key: string, readPackageJsonName?: (dir: string) => string | undefined): string;
697
700
  /**
698
701
  * A mount path the host named for one of its own route groups.
699
702
  *
@@ -708,7 +711,7 @@ declare function resolvePackageName(key: string, readPackageJsonName?: (dir: str
708
711
  * routes unpredictable relative to each other. Returns the normalized path,
709
712
  * with a leading and no trailing slash.
710
713
  */
711
- declare function assertHostMountPath(path: string): string;
714
+ export declare function assertHostMountPath(path: string): string;
712
715
  //#endregion
713
716
  //#region src/http/webhook-verify.d.ts
714
717
  type VerifyResult = {
@@ -719,20 +722,20 @@ type VerifyResult = {
719
722
  };
720
723
  /** Verifies a delivery against the configured scheme; `raw` must be the exact bytes
721
724
  * received. The reason is for the log only: callers answer a fixed 401, so a probing sender learns nothing from the body. */
722
- declare function verifyWebhook(options: {
725
+ export declare function verifyWebhook(options: {
723
726
  verification: WebhookVerification;
724
727
  headers: Record<string, string>;
725
728
  raw: Buffer;
726
729
  now?: Date;
727
730
  }): VerifyResult;
728
- declare function redactHeaders(headers: Record<string, string>, extra?: string): Record<string, string>;
731
+ export declare function redactHeaders(headers: Record<string, string>, extra?: string): Record<string, string>;
729
732
  /** JSON and form bodies become objects; anything else stays decoded text, so a verified
730
733
  * XML or CSV payload is still reachable downstream. */
731
- declare function parseWebhookBody(raw: Buffer, contentType?: string): unknown;
734
+ export declare function parseWebhookBody(raw: Buffer, contentType?: string): unknown;
732
735
  //#endregion
733
736
  //#region src/graphql/types.d.ts
734
- type SubgraphClass = typeof BaseSubgraph;
735
- type Context = {
737
+ export type SubgraphClass = typeof BaseSubgraph;
738
+ export type Context = {
736
739
  driveId?: string;
737
740
  document?: PHDocument;
738
741
  headers: IncomingHttpHeaders;
@@ -740,11 +743,12 @@ type Context = {
740
743
  user?: {
741
744
  address: string;
742
745
  chainId: number;
743
- networkId: string; /** The did:key of the app instance that issued this request's token. */
746
+ networkId: string;
747
+ /** The did:key of the app instance that issued this request's token. */
744
748
  appKey: string;
745
749
  };
746
750
  };
747
- type ISubgraph = {
751
+ export type ISubgraph = {
748
752
  name: string;
749
753
  /**
750
754
  * @deprecated The GraphQL manager mounts every subgraph under its own base
@@ -762,7 +766,7 @@ type ISubgraph = {
762
766
  onSetup?: () => Promise<void>;
763
767
  onDisconnect?: () => Promise<void>;
764
768
  };
765
- type SubgraphArgs = {
769
+ export type SubgraphArgs = {
766
770
  reactorClient: IReactorClient;
767
771
  /**
768
772
  * The subgraph's package's slice of the HTTP surface, for serving REST
@@ -789,7 +793,7 @@ type SubgraphArgs = {
789
793
  */
790
794
  path?: string;
791
795
  };
792
- type GqlSigner = {
796
+ export type GqlSigner = {
793
797
  user: {
794
798
  address: string;
795
799
  networkId: string;
@@ -801,19 +805,19 @@ type GqlSigner = {
801
805
  };
802
806
  signatures: string[];
803
807
  };
804
- type GqlOperationContext = {
808
+ export type GqlOperationContext = {
805
809
  signer: GqlSigner | undefined;
806
810
  };
807
- type GqlSignerUser = {
811
+ export type GqlSignerUser = {
808
812
  address: string;
809
813
  networkId: string;
810
814
  chainId: number;
811
815
  };
812
- type GqlSignerApp = {
816
+ export type GqlSignerApp = {
813
817
  name: string;
814
818
  key: string;
815
819
  };
816
- type GqlOperation = {
820
+ export type GqlOperation = {
817
821
  id: string;
818
822
  type: string;
819
823
  index: number;
@@ -824,7 +828,7 @@ type GqlOperation = {
824
828
  error: string | undefined;
825
829
  context: GqlOperationContext;
826
830
  };
827
- type GqlDocument = {
831
+ export type GqlDocument = {
828
832
  __typename?: string;
829
833
  id: string;
830
834
  name: string;
@@ -837,7 +841,7 @@ type GqlDocument = {
837
841
  state: unknown;
838
842
  initialState: unknown;
839
843
  };
840
- type GqlDriveDocument = GqlDocument & {
844
+ export type GqlDriveDocument = GqlDocument & {
841
845
  meta: {
842
846
  preferredEditor?: string;
843
847
  };
@@ -847,7 +851,12 @@ type GqlDriveDocument = GqlDocument & {
847
851
  };
848
852
  //#endregion
849
853
  //#region src/graphql/base-subgraph.d.ts
850
- declare class BaseSubgraph implements ISubgraph$1 {
854
+ /**
855
+ * The subject a request reads as: its address and the app key its token
856
+ * carries. Anonymous is an empty subject, never the host's signer.
857
+ */
858
+ export declare function callerSubject(user: Context["user"]): AuthSubject;
859
+ export declare class BaseSubgraph implements ISubgraph$1 {
851
860
  #private;
852
861
  name: string;
853
862
  path: string;
@@ -899,6 +908,8 @@ declare class BaseSubgraph implements ISubgraph$1 {
899
908
  * carries the same key. Anonymous callers supply neither.
900
909
  */
901
910
  protected viewSubject(ctx: Context): AuthSubject;
911
+ /** Whether a listing would serve the document to the caller; fails closed. */
912
+ protected servesDocument(documentId: string, ctx: Context): Promise<boolean>;
902
913
  /**
903
914
  * Asserts read access, resolving a slug first. Returns a handle whose
904
915
  * `fetchIdentifier` the caller reuses for the data fetch; a denial throws.
@@ -917,16 +928,24 @@ declare class BaseSubgraph implements ISubgraph$1 {
917
928
  }
918
929
  //#endregion
919
930
  //#region src/graphql/analytics-subgraph.d.ts
920
- declare class AnalyticsSubgraph extends BaseSubgraph {
931
+ export declare class AnalyticsSubgraph extends BaseSubgraph {
932
+ #private;
921
933
  analyticsStore: IAnalyticsStore;
922
934
  analyticsModel: AnalyticsModel;
923
935
  name: string;
924
- typeDefs: graphql.DocumentNode;
936
+ typeDefs: import("graphql").DocumentNode;
937
+ /**
938
+ * Every analytics field hangs off `Query.analytics`, so gating it gates them
939
+ * all. Series are aggregates a processor built from many documents and carry
940
+ * no document to decide on, so only a caller with policy-wide read (anyone
941
+ * under OPEN, an admin otherwise) may read them.
942
+ */
925
943
  resolvers: GraphQLResolverMap<Context$1>;
926
944
  constructor(args: SubgraphArgs$1);
927
945
  }
928
- //#endregion
929
- //#region src/graphql/auth/resolvers.d.ts
946
+ declare namespace resolvers_d_exports {
947
+ export { DocumentAccessInfo, DocumentProtectionInfo, OperationPermissionsInfo, OperationUserPermission, canExecuteOperation, documentAccess, documentProtection, grantDocumentPermission, grantOperationPermission, operationPermissions, revokeDocumentPermission, revokeOperationPermission, setDocumentProtection, transferDocumentOwnership, userDocumentPermissions };
948
+ }
930
949
  type DocumentAccessInfo = {
931
950
  documentId: string;
932
951
  permissions: Array<{
@@ -938,6 +957,33 @@ type DocumentAccessInfo = {
938
957
  updatedAt: Date;
939
958
  }>;
940
959
  };
960
+ declare function documentAccess(service: DocumentPermissionService, authorizationService: IAuthorizationService, args: {
961
+ documentId: CanonicalDocumentId;
962
+ }, userAddress: string | undefined): Promise<DocumentAccessInfo>;
963
+ declare function userDocumentPermissions(service: DocumentPermissionService, userAddress: string): Promise<Array<{
964
+ documentId: string;
965
+ userAddress: string;
966
+ permission: DocumentPermissionLevel;
967
+ grantedBy: string;
968
+ createdAt: Date;
969
+ updatedAt: Date;
970
+ }>>;
971
+ declare function grantDocumentPermission(service: DocumentPermissionService, authorizationService: IAuthorizationService, args: {
972
+ documentId: CanonicalDocumentId;
973
+ userAddress: string;
974
+ permission: DocumentPermissionLevel;
975
+ }, grantedByAddress: string | undefined): Promise<{
976
+ documentId: string;
977
+ userAddress: string;
978
+ permission: DocumentPermissionLevel;
979
+ grantedBy: string;
980
+ createdAt: Date;
981
+ updatedAt: Date;
982
+ }>;
983
+ declare function revokeDocumentPermission(service: DocumentPermissionService, authorizationService: IAuthorizationService, args: {
984
+ documentId: CanonicalDocumentId;
985
+ userAddress: string;
986
+ }, revokedByAddress: string | undefined): Promise<boolean>;
941
987
  type OperationUserPermission = {
942
988
  documentId: string;
943
989
  operationType: string;
@@ -950,11 +996,40 @@ type OperationPermissionsInfo = {
950
996
  operationType: string;
951
997
  userPermissions: OperationUserPermission[];
952
998
  };
999
+ declare function operationPermissions(service: DocumentPermissionService, authorizationService: IAuthorizationService, args: {
1000
+ documentId: CanonicalDocumentId;
1001
+ operationType: string;
1002
+ }, userAddress: string | undefined): Promise<OperationPermissionsInfo>;
1003
+ declare function canExecuteOperation(authorizationService: IAuthorizationService, args: {
1004
+ documentId: CanonicalDocumentId;
1005
+ operationType: string;
1006
+ }, userAddress: string | undefined): Promise<boolean>;
1007
+ declare function grantOperationPermission(service: DocumentPermissionService, authorizationService: IAuthorizationService, args: {
1008
+ documentId: CanonicalDocumentId;
1009
+ operationType: string;
1010
+ userAddress: string;
1011
+ }, grantedByAddress: string | undefined): Promise<OperationUserPermission>;
1012
+ declare function revokeOperationPermission(service: DocumentPermissionService, authorizationService: IAuthorizationService, args: {
1013
+ documentId: CanonicalDocumentId;
1014
+ operationType: string;
1015
+ userAddress: string;
1016
+ }, revokedByAddress: string | undefined): Promise<boolean>;
953
1017
  type DocumentProtectionInfo = {
954
1018
  documentId: string;
955
1019
  protected: boolean;
956
1020
  ownerAddress: string | null;
957
1021
  };
1022
+ declare function documentProtection(service: DocumentPermissionService, authorizationService: IAuthorizationService, args: {
1023
+ documentId: CanonicalDocumentId;
1024
+ }, userAddress: string | undefined): Promise<DocumentProtectionInfo>;
1025
+ declare function setDocumentProtection(service: DocumentPermissionService, authorizationService: IAuthorizationService, args: {
1026
+ documentId: CanonicalDocumentId;
1027
+ protected: boolean;
1028
+ }, userAddress: string | undefined): Promise<DocumentProtectionInfo>;
1029
+ declare function transferDocumentOwnership(service: DocumentPermissionService, authorizationService: IAuthorizationService, args: {
1030
+ documentId: CanonicalDocumentId;
1031
+ newOwnerAddress: string;
1032
+ }, userAddress: string | undefined): Promise<DocumentProtectionInfo>;
958
1033
  //#endregion
959
1034
  //#region src/graphql/auth/subgraph.d.ts
960
1035
  /**
@@ -966,12 +1041,12 @@ type DocumentProtectionInfo = {
966
1041
  * - Document protection and ownership
967
1042
  * - Operation-level permissions (fine-grained operation control)
968
1043
  */
969
- declare class AuthSubgraph extends BaseSubgraph {
1044
+ export declare class AuthSubgraph extends BaseSubgraph {
970
1045
  private logger;
971
1046
  constructor(args: SubgraphArgs);
972
1047
  name: string;
973
1048
  hasSubscriptions: boolean;
974
- typeDefs: graphql.DocumentNode;
1049
+ typeDefs: import("graphql").DocumentNode;
975
1050
  resolvers: {
976
1051
  Query: {
977
1052
  documentAccess: (_parent: unknown, args: {
@@ -1082,19 +1157,19 @@ declare class AuthSubgraph extends BaseSubgraph {
1082
1157
  }
1083
1158
  //#endregion
1084
1159
  //#region src/graphql/gateway/auth-middleware.d.ts
1085
- type AuthFetchMiddleware = (handler: FetchHandler) => FetchHandler;
1160
+ export type AuthFetchMiddleware = (handler: FetchHandler) => FetchHandler;
1086
1161
  /** Internal — only `graphql-manager.ts` should call this. */
1087
- declare function getAuthContext(request: globalThis.Request): AuthContext | undefined;
1088
- declare function createAuthFetchMiddleware(authService: AuthService): AuthFetchMiddleware;
1162
+ export declare function getAuthContext(request: globalThis.Request): AuthContext | undefined;
1163
+ export declare function createAuthFetchMiddleware(authService: AuthService): AuthFetchMiddleware;
1089
1164
  //#endregion
1090
1165
  //#region src/graphql/gateway/factory.d.ts
1091
- type GatewayAdapterType = "apollo" | "mercurius" | "stitching";
1092
- type HttpAdapterType = "express" | "fastify";
1093
- declare function createGatewayAdapter(type: GatewayAdapterType, logger: ILogger): Promise<IGatewayAdapter<Context>>;
1094
- type HttpAdapterSetup = {
1166
+ export type GatewayAdapterType = "apollo" | "mercurius" | "stitching";
1167
+ export type HttpAdapterType = "express" | "fastify";
1168
+ export declare function createGatewayAdapter(type: GatewayAdapterType, logger: ILogger): Promise<IGatewayAdapter<Context>>;
1169
+ export type HttpAdapterSetup = {
1095
1170
  adapter: IHttpAdapter;
1096
1171
  };
1097
- declare function createHttpAdapter(type: HttpAdapterType): Promise<HttpAdapterSetup>;
1172
+ export declare function createHttpAdapter(type: HttpAdapterType): Promise<HttpAdapterSetup>;
1098
1173
  //#endregion
1099
1174
  //#region src/graphql/gateway/drive-ownership-cache.d.ts
1100
1175
  /**
@@ -1122,10 +1197,17 @@ declare class DriveOwnershipCache {
1122
1197
  type RequireAuthFetchMiddleware = (handler: FetchHandler) => FetchHandler;
1123
1198
  //#endregion
1124
1199
  //#region src/graphql/graphql-manager.d.ts
1125
- type GraphqlManagerFeatureFlags = {
1200
+ export type GraphqlManagerFeatureFlags = {
1126
1201
  enableDocumentModelSubgraphs?: boolean;
1127
1202
  };
1128
- declare class GraphQLManager {
1203
+ export declare function createWsAuthHandlers(opts: {
1204
+ authService?: AuthService;
1205
+ /** Whether anonymous callers are refused; read at call time, not at build time. */
1206
+ requireAuthenticatedCaller: () => boolean;
1207
+ logger: ILogger;
1208
+ buildContext: (connectionParams: Record<string, unknown>, user?: User) => Context$1;
1209
+ }): WsHandlers<Context$1>;
1210
+ export declare class GraphQLManager {
1129
1211
  #private;
1130
1212
  private readonly path;
1131
1213
  private readonly httpServer;
@@ -1154,8 +1236,8 @@ declare class GraphQLManager {
1154
1236
  private readonly subgraphHandlerCache;
1155
1237
  /** subgraphPath → the http adapter handle of its mounted route. */
1156
1238
  private readonly subgraphRouteHandles;
1157
- /** Handle of the currently mounted supergraph SSE route, if any. */
1158
- private sseRouteHandle;
1239
+ /** Mounted SSE routes, keyed by path: the supergraph's and each subgraph's. */
1240
+ private readonly sseRouteHandles;
1159
1241
  /**
1160
1242
  * Package name → the subgraph instances registered from it, keyed by
1161
1243
  * subgraph name. Tracks the package association so that removed packages
@@ -1236,21 +1318,21 @@ declare class GraphQLManager {
1236
1318
  }
1237
1319
  //#endregion
1238
1320
  //#region src/services/package-storage.d.ts
1239
- interface InstalledPackageInfo {
1321
+ export interface InstalledPackageInfo {
1240
1322
  name: string;
1241
1323
  version?: string;
1242
1324
  registryUrl: string;
1243
1325
  installedAt: Date;
1244
1326
  documentTypes: string[];
1245
1327
  }
1246
- interface IPackageStorage {
1328
+ export interface IPackageStorage {
1247
1329
  get(name: string): Promise<InstalledPackageInfo | undefined>;
1248
1330
  getAll(): Promise<InstalledPackageInfo[]>;
1249
1331
  set(name: string, info: InstalledPackageInfo): Promise<void>;
1250
1332
  delete(name: string): Promise<boolean>;
1251
1333
  has(name: string): Promise<boolean>;
1252
1334
  }
1253
- declare class InMemoryPackageStorage implements IPackageStorage {
1335
+ export declare class InMemoryPackageStorage implements IPackageStorage {
1254
1336
  private packages;
1255
1337
  get(name: string): Promise<InstalledPackageInfo | undefined>;
1256
1338
  getAll(): Promise<InstalledPackageInfo[]>;
@@ -1266,16 +1348,16 @@ declare class InMemoryPackageStorage implements IPackageStorage {
1266
1348
  * as a document-existence oracle, so consumers map this to their generic
1267
1349
  * fail-closed response.
1268
1350
  */
1269
- declare class CanonicalDocumentIdResolutionError extends Error {
1351
+ export declare class CanonicalDocumentIdResolutionError extends Error {
1270
1352
  constructor();
1271
1353
  }
1272
- type CanonicalDocumentIdResolver = (identifier: string) => Promise<CanonicalDocumentId>;
1354
+ export type CanonicalDocumentIdResolver = (identifier: string) => Promise<CanonicalDocumentId>;
1273
1355
  /**
1274
1356
  * The sanctioned string-to-CanonicalDocumentId cast: both the GraphQL layer
1275
1357
  * and server routes must resolve caller identifiers through this helper so
1276
1358
  * decision and data layers always agree on the subject document.
1277
1359
  */
1278
- declare function createCanonicalDocumentIdResolver(client: Pick<IReactorClient, "resolveIdOrSlug">): CanonicalDocumentIdResolver;
1360
+ export declare function createCanonicalDocumentIdResolver(client: Pick<IReactorClient, "resolveIdOrSlug">): CanonicalDocumentIdResolver;
1279
1361
  //#endregion
1280
1362
  //#region src/services/attachment-access.service.d.ts
1281
1363
  /**
@@ -1285,7 +1367,7 @@ declare function createCanonicalDocumentIdResolver(client: Pick<IReactorClient,
1285
1367
  * registration capability. Consumers of reference evidence must fail closed
1286
1368
  * when it is unavailable.
1287
1369
  */
1288
- type AttachmentReferenceProjectionCapability = {
1370
+ export type AttachmentReferenceProjectionCapability = {
1289
1371
  status: "available";
1290
1372
  } | {
1291
1373
  status: "unavailable";
@@ -1298,7 +1380,7 @@ type AttachmentReferenceProjectionCapability = {
1298
1380
  * the reference index is not being maintained in this composition; it is
1299
1381
  * returned before any document-authorization or reference lookup runs.
1300
1382
  */
1301
- type AttachmentAccessResult = {
1383
+ export type AttachmentAccessResult = {
1302
1384
  kind: "allowed";
1303
1385
  documentId: CanonicalDocumentId;
1304
1386
  ref: AttachmentRef;
@@ -1307,28 +1389,85 @@ type AttachmentAccessResult = {
1307
1389
  } | {
1308
1390
  kind: "projection-unavailable";
1309
1391
  };
1310
- interface AttachmentAccessRequest {
1392
+ export interface AttachmentAccessRequest {
1311
1393
  documentId: string;
1312
1394
  attachmentRef: string;
1313
1395
  userAddress?: string;
1396
+ /**
1397
+ * The `did:key` of the app instance whose token authenticated the caller.
1398
+ * A policy subject is an address AND a key — a grant can name either, and a
1399
+ * document's creator is recorded by key — so a decision made from the address
1400
+ * alone answers a narrower question than the one being asked.
1401
+ */
1402
+ appKey?: string;
1403
+ }
1404
+ /** The reactor's read gate, as the attachment facade consults it. */
1405
+ export type AttachmentReadGate = Pick<IReactorClient, "isServed" | "get">;
1406
+ /**
1407
+ * Which scopes of a document a subject may read, asked by document id.
1408
+ *
1409
+ * Structural on purpose: the composition that has a policy model to enforce
1410
+ * supplies `SyncScopeGate`, and one that does not supplies nothing at all.
1411
+ */
1412
+ export interface IDocumentScopeGate {
1413
+ scopePredicateById(documentId: string, subject: {
1414
+ address?: string;
1415
+ key?: string;
1416
+ }, branch: string, signal?: AbortSignal): Promise<(scope: string) => boolean>;
1314
1417
  }
1315
- interface IAttachmentAccessService {
1418
+ export interface IAttachmentAccessService {
1316
1419
  canReadAttachment(request: AttachmentAccessRequest): Promise<AttachmentAccessResult>;
1317
1420
  }
1318
1421
  /**
1319
1422
  * Composes document authorization with the projected document/ref
1320
1423
  * relationship. Order is fixed: validate ref, resolve the canonical document
1321
- * id, check `canRead`, then check the reference index. A denied document
1322
- * never reaches the reference reader, and the facade never touches
1323
- * attachment metadata, storage backends, or presigners.
1424
+ * id, decide the read, check the reactor's read gate serves the document, then
1425
+ * check the reference index and that the subject may read a scope whose
1426
+ * operations reference the attachment. A denied document never reaches the
1427
+ * reference reader, and the facade never touches attachment metadata, storage
1428
+ * backends, or presigners.
1429
+ *
1430
+ * The named document decides alone: an attachment several documents reference
1431
+ * is readable through each of them on that document's own terms.
1432
+ *
1433
+ * The read is decided by the document's own policy when this composition has a
1434
+ * model to enforce it with, and by the host's permission tables when it does
1435
+ * not. That is not a preference between two equivalent answers: a host running
1436
+ * document policies keeps no rows in the permission tables, so asking them
1437
+ * about such a document returns whatever the host-wide policy says — under
1438
+ * `OPEN`, `true`, for everyone. Serving bytes on that answer hands the file to
1439
+ * anyone who learns its hash, which the document's own state may well have told
1440
+ * them. Both are kept because they are the two halves of one rule: an
1441
+ * attachment is readable by whoever may read the document that references it,
1442
+ * and each composition can only express that in its own terms.
1324
1443
  */
1325
- declare class AttachmentAccessService implements IAttachmentAccessService {
1444
+ export declare class AttachmentAccessService implements IAttachmentAccessService {
1326
1445
  private readonly resolveCanonicalId;
1327
1446
  private readonly authorization;
1328
1447
  private readonly references;
1329
1448
  private readonly projection;
1330
- constructor(resolveCanonicalId: CanonicalDocumentIdResolver, authorization: IAuthorizationService, references: IAttachmentReferenceReader, projection: AttachmentReferenceProjectionCapability);
1449
+ private readonly readGate;
1450
+ /**
1451
+ * Absent below auth enforcement, where there is no policy model to
1452
+ * evaluate; the host's permission tables decide alone, exactly as before.
1453
+ */
1454
+ private readonly scopeGate?;
1455
+ constructor(resolveCanonicalId: CanonicalDocumentIdResolver, authorization: IAuthorizationService, references: IAttachmentReferenceReader, projection: AttachmentReferenceProjectionCapability, readGate: AttachmentReadGate,
1456
+ /**
1457
+ * Absent below auth enforcement, where there is no policy model to
1458
+ * evaluate; the host's permission tables decide alone, exactly as before.
1459
+ */
1460
+ scopeGate?: IDocumentScopeGate | undefined);
1331
1461
  canReadAttachment(request: AttachmentAccessRequest): Promise<AttachmentAccessResult>;
1462
+ /**
1463
+ * Whether the caller may read the state the reference lives in.
1464
+ *
1465
+ * A failure here is rethrown rather than turned into a denial. A read side
1466
+ * that is down must not read as a policy: a denial nobody can distinguish
1467
+ * from a refusal is one nobody investigates, and the route answers 500 for a
1468
+ * reason.
1469
+ */
1470
+ private canReadDocument;
1332
1471
  }
1333
1472
  //#endregion
1334
1473
  //#region src/types.d.ts
@@ -1336,24 +1475,41 @@ declare class AttachmentAccessService implements IAttachmentAccessService {
1336
1475
  * Module hosts pass to processor factories: the reactor-level module plus the
1337
1476
  * attachment client, which shared and reactor cannot name.
1338
1477
  */
1339
- interface IProcessorHostModule extends IReactorProcessorHostModuleBase {
1478
+ export interface IProcessorHostModule extends IReactorProcessorHostModuleBase {
1340
1479
  attachments: IAttachmentClient;
1341
1480
  }
1342
1481
  /** @deprecated Use `IProcessorHostModule`. */
1343
- type IReactorProcessorHostModule = IProcessorHostModule;
1344
- type ReadinessGate = {
1482
+ export type IReactorProcessorHostModule = IProcessorHostModule;
1483
+ export type ReadinessGate = {
1345
1484
  isReady: () => boolean;
1346
1485
  markReady: () => void;
1347
1486
  };
1348
- type API = {
1349
- httpAdapter: IHttpAdapter; /** Hands each package a namespaced slice of the HTTP surface. */
1487
+ export type API = {
1488
+ httpAdapter: IHttpAdapter;
1489
+ /** Hands each package a namespaced slice of the HTTP surface. */
1350
1490
  httpRoutes: HttpRouteService;
1351
1491
  graphqlManager: GraphQLManager$1;
1352
1492
  packages: IPackageManager;
1353
1493
  attachments: AttachmentBuildResult;
1354
- attachmentReferenceIndex: AttachmentReferenceIndexBuildResult; /** Document-authorized attachment read decisions; see AttachmentAccessService. */
1494
+ attachmentReferenceIndex: AttachmentReferenceIndexBuildResult;
1495
+ /** Document-authorized attachment read decisions; see AttachmentAccessService. */
1355
1496
  attachmentAccess: IAttachmentAccessService;
1356
1497
  authService: AuthService | undefined;
1498
+ /**
1499
+ * Whether this deployment refuses anonymous callers
1500
+ * (`REQUIRE_AUTHENTICATED_CALLER`). Carried here because routes mounted
1501
+ * straight on the HTTP adapter never pass the GraphQL fetch chain, so its
1502
+ * require-auth middleware cannot reach them: a host-composed route reads the
1503
+ * resolved value from the API rather than the environment, so one variable
1504
+ * cannot end up half applied.
1505
+ */
1506
+ requireAuthenticatedCaller: boolean;
1507
+ /** The service the subgraphs decide with, for a component the host composes
1508
+ * after boot: it must authorize with this one, not one of its own. */
1509
+ authorizationService: IAuthorizationService;
1510
+ /** The read-model relational store, for the same host-composed component:
1511
+ * its tables belong in this database and nothing else hands one over. */
1512
+ relationalDb: IRelationalDb$1;
1357
1513
  /**
1358
1514
  * Releases resources owned by the API: shuts down the GraphQL gateway,
1359
1515
  * closes WebSocket and HTTP servers, destroys knex pools, and closes any
@@ -1363,25 +1519,26 @@ type API = {
1363
1519
  */
1364
1520
  dispose: () => Promise<void>;
1365
1521
  };
1366
- type ReactorModule = {
1522
+ export type ReactorModule = {
1367
1523
  analyticsStore: IAnalyticsStore;
1368
1524
  relationalDb: IRelationalDb$1;
1369
1525
  };
1370
1526
  /** @deprecated Use `ProcessorFactory`. */
1371
- type ProcessorDriveFactory = ProcessorFactory;
1527
+ export type ProcessorDriveFactory = ProcessorFactory;
1372
1528
  /** Builds a per-drive factory from the host module (e.g. vetra `processorFactory`). */
1373
- type ProcessorFactoryBuilder = ProcessorFactoryBuilder$1<IProcessorHostModule>;
1529
+ export type ProcessorFactoryBuilder = ProcessorFactoryBuilder$1<IProcessorHostModule>;
1374
1530
  /** Multiple initializers per package name (e.g. Switchboard `processors` option). */
1375
- type Processor = ProcessorFactoryBuilder[];
1531
+ export type Processor = ProcessorFactoryBuilder[];
1376
1532
  //#endregion
1377
1533
  //#region src/packages/http-loader.d.ts
1378
- interface HttpPackageLoaderOptions {
1534
+ export interface HttpPackageLoaderOptions {
1379
1535
  registryUrl: string;
1380
1536
  }
1381
- interface HttpPackageLoaderLogger {
1537
+ export interface HttpPackageLoaderLogger {
1382
1538
  info: (msg: string) => void;
1383
1539
  error: (msg: string, err: unknown) => void;
1384
1540
  }
1541
+ export declare function piecesBaseUrl(registryUrl: string, packageName: string, version: string): string;
1385
1542
  type SubgraphsExport = Record<string, SubgraphClass$1>;
1386
1543
  /**
1387
1544
  * Extract subgraph classes from the imported subgraphs/index.mjs module shape.
@@ -1393,7 +1550,7 @@ type SubgraphsExport = Record<string, SubgraphClass$1>;
1393
1550
  *
1394
1551
  * Exported for direct unit testing against synthetic module shapes.
1395
1552
  */
1396
- declare function extractSubgraphsFromModule(module: Record<string, SubgraphsExport>): SubgraphClass$1[];
1553
+ export declare function extractSubgraphsFromModule(module: Record<string, SubgraphsExport>): SubgraphClass$1[];
1397
1554
  /**
1398
1555
  * Loads document models, subgraphs, and processors from an HTTP registry.
1399
1556
  * Uses Node.js module loader hooks to import directly from HTTP URLs.
@@ -1402,7 +1559,7 @@ declare function extractSubgraphsFromModule(module: Record<string, SubgraphsExpo
1402
1559
  * import { register } from "node:module";
1403
1560
  * register("@powerhousedao/reactor-api/https-hooks", import.meta.url);
1404
1561
  */
1405
- declare class HttpPackageLoader implements IPackageLoader {
1562
+ export declare class HttpPackageLoader implements IPackageLoader {
1406
1563
  private readonly registryUrl;
1407
1564
  private readonly logger;
1408
1565
  readonly name = "HttpPackageLoader";
@@ -1420,11 +1577,13 @@ declare class HttpPackageLoader implements IPackageLoader {
1420
1577
  loadUpgradeManifests(packageSpec: string): Promise<UpgradeManifest<readonly number[]>[]>;
1421
1578
  loadSubgraphs(packageSpec: string): Promise<SubgraphClass$1[]>;
1422
1579
  loadProcessors(packageSpec: string): Promise<ProcessorFactoryBuilder | null>;
1580
+ loadPieces(packageSpec: string): Promise<PackagePieceEntry[]>;
1423
1581
  /**
1424
1582
  * Load document models from multiple packages.
1425
1583
  * Continues loading even if some packages fail.
1426
1584
  */
1427
1585
  loadPackages(packageNames: string[], logger?: HttpPackageLoaderLogger): Promise<DocumentModelModule[]>;
1586
+ packageVersion(packageSpec: string): Promise<string | undefined>;
1428
1587
  private isValidPackageName;
1429
1588
  }
1430
1589
  /**
@@ -1433,7 +1592,7 @@ declare class HttpPackageLoader implements IPackageLoader {
1433
1592
  * Making them worker-executable means returning an importable source here
1434
1593
  * (the CDN URL as a package specifier, given process-wide https hooks).
1435
1594
  */
1436
- declare class HttpDocumentModelLoader implements IDocumentModelLoader {
1595
+ export declare class HttpDocumentModelLoader implements IDocumentModelLoader {
1437
1596
  private readonly loader;
1438
1597
  private readonly logger;
1439
1598
  private readonly documentTypeCache;
@@ -1450,18 +1609,18 @@ declare class HttpDocumentModelLoader implements IDocumentModelLoader {
1450
1609
  }
1451
1610
  //#endregion
1452
1611
  //#region src/services/package-management.service.d.ts
1453
- interface InstallPackageResult {
1612
+ export interface InstallPackageResult {
1454
1613
  package: InstalledPackageInfo;
1455
1614
  documentModelsLoaded: number;
1456
1615
  }
1457
- interface PackageManagementServiceOptions {
1616
+ export interface PackageManagementServiceOptions {
1458
1617
  storage?: IPackageStorage;
1459
1618
  defaultRegistryUrl?: string;
1460
1619
  httpLoader?: HttpPackageLoader;
1461
1620
  documentModelRegistry?: IDocumentModelRegistry;
1462
1621
  packageManager?: IPackageManager;
1463
1622
  }
1464
- declare class PackageManagementService {
1623
+ export declare class PackageManagementService {
1465
1624
  private readonly storage;
1466
1625
  private readonly defaultRegistryUrl?;
1467
1626
  private readonly httpLoader?;
@@ -1484,13 +1643,13 @@ declare class PackageManagementService {
1484
1643
  interface PackagesSubgraphArgs extends SubgraphArgs {
1485
1644
  packageManagementService: PackageManagementService;
1486
1645
  }
1487
- declare class PackagesSubgraph extends BaseSubgraph {
1646
+ export declare class PackagesSubgraph extends BaseSubgraph {
1488
1647
  private logger;
1489
1648
  private packageManagementService;
1490
1649
  constructor(args: PackagesSubgraphArgs);
1491
1650
  name: string;
1492
1651
  hasSubscriptions: boolean;
1493
- typeDefs: graphql.DocumentNode;
1652
+ typeDefs: import("graphql").DocumentNode;
1494
1653
  resolvers: {
1495
1654
  Query: {
1496
1655
  Packages: () => {};
@@ -1546,7 +1705,7 @@ declare class PackagesSubgraph extends BaseSubgraph {
1546
1705
  * `{ document, variables, headers? }` with `variables` and `headers`
1547
1706
  * already JSON-stringified.
1548
1707
  */
1549
- interface ExplorerUrlState {
1708
+ export interface ExplorerUrlState {
1550
1709
  /** The GraphQL query to prefill in GraphiQL. */
1551
1710
  query: string;
1552
1711
  /** JSON-stringified variables, as stored in the payload. */
@@ -1558,24 +1717,24 @@ interface ExplorerUrlState {
1558
1717
  * Decodes an `explorerURLState` URL parameter. Returns `null` for anything
1559
1718
  * that is not a valid lz-compressed payload with a non-empty `document`.
1560
1719
  */
1561
- declare function decodeExplorerUrlState(encoded: string): ExplorerUrlState | null;
1562
- declare function renderGraphqlPlayground(url: string, query?: string, headers?: Record<string, string>, variables?: string): string;
1720
+ export declare function decodeExplorerUrlState(encoded: string): ExplorerUrlState | null;
1721
+ export declare function renderGraphqlPlayground(url: string, query?: string, headers?: Record<string, string>, variables?: string): string;
1563
1722
  //#endregion
1564
1723
  //#region src/graphql/reactor/gen/graphql.d.ts
1565
- type Maybe<T> = T | null | undefined;
1566
- type InputMaybe<T> = T | null | undefined;
1567
- type Exact<T extends {
1724
+ export type Maybe<T> = T | null | undefined;
1725
+ export type InputMaybe<T> = T | null | undefined;
1726
+ export type Exact<T extends {
1568
1727
  [key: string]: unknown;
1569
- }> = { [K in keyof T]: T[K] };
1570
- type MakeOptional<T, K extends keyof T> = Omit<T, K> & { [SubKey in K]?: Maybe<T[SubKey]> };
1571
- type MakeMaybe<T, K extends keyof T> = Omit<T, K> & { [SubKey in K]: Maybe<T[SubKey]> };
1572
- type MakeEmpty<T extends {
1728
+ }> = { [K in keyof T]: T[K]; };
1729
+ export type MakeOptional<T, K extends keyof T> = Omit<T, K> & { [SubKey in K]?: Maybe<T[SubKey]>; };
1730
+ export type MakeMaybe<T, K extends keyof T> = Omit<T, K> & { [SubKey in K]: Maybe<T[SubKey]>; };
1731
+ export type MakeEmpty<T extends {
1573
1732
  [key: string]: unknown;
1574
- }, K extends keyof T> = { [_ in K]?: never };
1575
- type Incremental<T> = T | { [P in keyof T]?: P extends " $fragmentName" | "__typename" ? T[P] : never };
1576
- type RequireFields<T, K extends keyof T> = Omit<T, K> & { [P in K]-?: NonNullable<T[P]> };
1733
+ }, K extends keyof T> = { [_ in K]?: never; };
1734
+ export type Incremental<T> = T | { [P in keyof T]?: P extends " $fragmentName" | "__typename" ? T[P] : never; };
1735
+ export type RequireFields<T, K extends keyof T> = Omit<T, K> & { [P in K]-?: NonNullable<T[P]>; };
1577
1736
  /** All built-in and custom scalars, mapped to their actual values */
1578
- type Scalars = {
1737
+ export type Scalars = {
1579
1738
  ID: {
1580
1739
  input: string;
1581
1740
  output: string;
@@ -1605,7 +1764,7 @@ type Scalars = {
1605
1764
  output: NonNullable<unknown>;
1606
1765
  };
1607
1766
  };
1608
- type Action = {
1767
+ export type Action = {
1609
1768
  readonly context?: Maybe<ActionContext>;
1610
1769
  readonly id: Scalars["String"]["output"];
1611
1770
  readonly input: Scalars["JSONObject"]["output"];
@@ -1620,12 +1779,12 @@ type Action = {
1620
1779
  * filled-in form carries that form's input. Omitting it predicts the verdict an
1621
1780
  * empty input earns, not the verdict the filled-in form will get.
1622
1781
  */
1623
- type ActionCandidateInput = {
1782
+ export type ActionCandidateInput = {
1624
1783
  readonly input?: InputMaybe<Scalars["JSONObject"]["input"]>;
1625
1784
  readonly scope: Scalars["String"]["input"];
1626
1785
  readonly type: Scalars["String"]["input"];
1627
1786
  };
1628
- type ActionContext = {
1787
+ export type ActionContext = {
1629
1788
  readonly signer?: Maybe<ReactorSigner>;
1630
1789
  };
1631
1790
  /**
@@ -1640,9 +1799,12 @@ type ActionContext = {
1640
1799
  * against. They are recorded rather than enforced; a signature is verified from
1641
1800
  * the params carried in its own tuple, which do not include them.
1642
1801
  */
1643
- type ActionContextInput = {
1644
- /** 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. */
1645
- readonly prevOpHash?: InputMaybe<Scalars["String"]["input"]>; /** The index of the last operation in the scope the action applies to. */
1802
+ export type ActionContextInput = {
1803
+ /** Covers replay of an operation that would otherwise be a no-op. */
1804
+ readonly nonce?: InputMaybe<Scalars["String"]["input"]>;
1805
+ /** The hash of the state the action applies to. */
1806
+ readonly prevOpHash?: InputMaybe<Scalars["String"]["input"]>;
1807
+ /** The index of the last operation in the scope the action applies to. */
1646
1808
  readonly prevOpIndex?: InputMaybe<Scalars["Int"]["input"]>;
1647
1809
  readonly signer?: InputMaybe<ReactorSignerInput>;
1648
1810
  };
@@ -1650,7 +1812,7 @@ type ActionContextInput = {
1650
1812
  * One candidate's predicted verdict. `reason` carries the refusal a DENY is
1651
1813
  * recorded with, and is null on an ALLOW.
1652
1814
  */
1653
- type ActionEvaluation = {
1815
+ export type ActionEvaluation = {
1654
1816
  readonly decision: AuthDecision;
1655
1817
  readonly reason?: Maybe<Scalars["String"]["output"]>;
1656
1818
  };
@@ -1663,14 +1825,14 @@ type ActionEvaluation = {
1663
1825
  * another. Over no candidates every aggregate is false: nothing is allowed and
1664
1826
  * nothing is denied.
1665
1827
  */
1666
- type ActionEvaluations = {
1828
+ export type ActionEvaluations = {
1667
1829
  readonly allAllowed: Scalars["Boolean"]["output"];
1668
1830
  readonly allDenied: Scalars["Boolean"]["output"];
1669
1831
  readonly anyAllowed: Scalars["Boolean"]["output"];
1670
1832
  readonly anyDenied: Scalars["Boolean"]["output"];
1671
1833
  readonly evaluations: ReadonlyArray<ActionEvaluation>;
1672
1834
  };
1673
- type ActionInput = {
1835
+ export type ActionInput = {
1674
1836
  readonly context?: InputMaybe<ActionContextInput>;
1675
1837
  readonly id: Scalars["String"]["input"];
1676
1838
  readonly input: Scalars["JSONObject"]["input"];
@@ -1678,17 +1840,17 @@ type ActionInput = {
1678
1840
  readonly timestampUtcMs: Scalars["String"]["input"];
1679
1841
  readonly type: Scalars["String"]["input"];
1680
1842
  };
1681
- declare enum AuthDecision {
1843
+ export declare enum AuthDecision {
1682
1844
  Allow = "ALLOW",
1683
1845
  Deny = "DENY"
1684
1846
  }
1685
- type ChannelMeta = {
1847
+ export type ChannelMeta = {
1686
1848
  readonly id: Scalars["String"]["output"];
1687
1849
  };
1688
- type ChannelMetaInput = {
1850
+ export type ChannelMetaInput = {
1689
1851
  readonly id: Scalars["String"]["input"];
1690
1852
  };
1691
- type DeadLetterInfo = {
1853
+ export type DeadLetterInfo = {
1692
1854
  readonly branch: Scalars["String"]["output"];
1693
1855
  readonly documentId: Scalars["String"]["output"];
1694
1856
  readonly error: Scalars["String"]["output"];
@@ -1702,16 +1864,16 @@ type DeadLetterInfo = {
1702
1864
  readonly operationCount: Scalars["Int"]["output"];
1703
1865
  readonly scopes: ReadonlyArray<Scalars["String"]["output"]>;
1704
1866
  };
1705
- type DocumentChangeContext = {
1867
+ export type DocumentChangeContext = {
1706
1868
  readonly childId?: Maybe<Scalars["String"]["output"]>;
1707
1869
  readonly parentId?: Maybe<Scalars["String"]["output"]>;
1708
1870
  };
1709
- type DocumentChangeEvent = {
1871
+ export type DocumentChangeEvent = {
1710
1872
  readonly context?: Maybe<DocumentChangeContext>;
1711
1873
  readonly documents: ReadonlyArray<PhDocument>;
1712
1874
  readonly type: DocumentChangeType;
1713
1875
  };
1714
- declare enum DocumentChangeType {
1876
+ export declare enum DocumentChangeType {
1715
1877
  ChildAdded = "CHILD_ADDED",
1716
1878
  ChildRemoved = "CHILD_REMOVED",
1717
1879
  Created = "CREATED",
@@ -1720,21 +1882,20 @@ declare enum DocumentChangeType {
1720
1882
  ParentRemoved = "PARENT_REMOVED",
1721
1883
  Updated = "UPDATED"
1722
1884
  }
1723
- type DocumentModelGlobalState = {
1885
+ export type DocumentModelGlobalState = {
1724
1886
  readonly id: Scalars["String"]["output"];
1725
1887
  readonly name: Scalars["String"]["output"];
1726
1888
  readonly namespace?: Maybe<Scalars["String"]["output"]>;
1727
1889
  readonly specification: Scalars["JSONObject"]["output"];
1728
1890
  readonly version?: Maybe<Scalars["String"]["output"]>;
1729
1891
  };
1730
- type DocumentModelResultPage = {
1892
+ export type DocumentModelResultPage = {
1731
1893
  readonly cursor?: Maybe<Scalars["String"]["output"]>;
1732
1894
  readonly hasNextPage: Scalars["Boolean"]["output"];
1733
1895
  readonly hasPreviousPage: Scalars["Boolean"]["output"];
1734
1896
  readonly items: ReadonlyArray<DocumentModelGlobalState>;
1735
- readonly totalCount: Scalars["Int"]["output"];
1736
1897
  };
1737
- type DocumentOperationsFilterInput = {
1898
+ export type DocumentOperationsFilterInput = {
1738
1899
  readonly actionTypes?: InputMaybe<ReadonlyArray<Scalars["String"]["input"]>>;
1739
1900
  readonly branch?: InputMaybe<Scalars["String"]["input"]>;
1740
1901
  readonly scopes?: InputMaybe<ReadonlyArray<Scalars["String"]["input"]>>;
@@ -1742,17 +1903,36 @@ type DocumentOperationsFilterInput = {
1742
1903
  readonly timestampFrom?: InputMaybe<Scalars["String"]["input"]>;
1743
1904
  readonly timestampTo?: InputMaybe<Scalars["String"]["input"]>;
1744
1905
  };
1745
- type DocumentWithChildren = {
1906
+ export type DocumentRelationship = {
1907
+ readonly createdAt: Scalars["DateTime"]["output"];
1908
+ readonly metadata?: Maybe<Scalars["JSONObject"]["output"]>;
1909
+ readonly relationshipType: Scalars["String"]["output"];
1910
+ readonly sourceId: Scalars["String"]["output"];
1911
+ readonly targetId: Scalars["String"]["output"];
1912
+ readonly updatedAt: Scalars["DateTime"]["output"];
1913
+ };
1914
+ export type DocumentRelationshipResultPage = {
1915
+ readonly cursor?: Maybe<Scalars["String"]["output"]>;
1916
+ readonly hasNextPage: Scalars["Boolean"]["output"];
1917
+ readonly hasPreviousPage: Scalars["Boolean"]["output"];
1918
+ readonly items: ReadonlyArray<DocumentRelationship>;
1919
+ };
1920
+ export type DocumentWithChildren = {
1746
1921
  readonly childIds: ReadonlyArray<Scalars["String"]["output"]>;
1747
1922
  readonly document: PhDocument;
1748
1923
  };
1749
- type JobChangeEvent = {
1924
+ export type JobChangeEvent = {
1750
1925
  readonly error?: Maybe<Scalars["String"]["output"]>;
1751
1926
  readonly jobId: Scalars["String"]["output"];
1752
- readonly result: Scalars["JSONObject"]["output"];
1927
+ /**
1928
+ * What the job produced, once it has produced anything. Nullable for the same
1929
+ * reason as `JobInfo.result`: a job that has not written yet has produced
1930
+ * nothing, and an empty object would claim otherwise.
1931
+ */
1932
+ readonly result?: Maybe<Scalars["JSONObject"]["output"]>;
1753
1933
  readonly status: Scalars["String"]["output"];
1754
1934
  };
1755
- type JobInfo = {
1935
+ export type JobInfo = {
1756
1936
  readonly completedAt?: Maybe<Scalars["DateTime"]["output"]>;
1757
1937
  readonly createdAt: Scalars["DateTime"]["output"];
1758
1938
  readonly error?: Maybe<Scalars["String"]["output"]>;
@@ -1764,11 +1944,11 @@ type JobInfo = {
1764
1944
  readonly result?: Maybe<Scalars["JSONObject"]["output"]>;
1765
1945
  readonly status: Scalars["String"]["output"];
1766
1946
  };
1767
- type MoveRelationshipResult = {
1947
+ export type MoveRelationshipResult = {
1768
1948
  readonly source: PhDocument;
1769
1949
  readonly target: PhDocument;
1770
1950
  };
1771
- type Mutation = {
1951
+ export type Mutation = {
1772
1952
  readonly addRelationship: PhDocument;
1773
1953
  readonly createDocument: PhDocument;
1774
1954
  readonly createEmptyDocument: PhDocument;
@@ -1796,101 +1976,112 @@ type Mutation = {
1796
1976
  * ask for; `result` is null until the job produces one.
1797
1977
  */
1798
1978
  readonly executeAsync: JobInfo;
1799
- 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. */
1800
- readonly mutateDocument: PhDocument; /** @deprecated Use executeAsync, which is typed and returns the job rather than only its id. */
1979
+ readonly moveRelationship: MoveRelationshipResult;
1980
+ /** @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. */
1981
+ readonly mutateDocument: PhDocument;
1982
+ /** @deprecated Use executeAsync, which is typed and returns the job rather than only its id. */
1801
1983
  readonly mutateDocumentAsync: Scalars["String"]["output"];
1802
1984
  readonly pushSyncEnvelopes: Scalars["Boolean"]["output"];
1803
1985
  readonly removeRelationship: PhDocument;
1804
1986
  readonly renameDocument: PhDocument;
1805
1987
  readonly setPreferredEditor: PhDocument;
1806
1988
  readonly touchChannel: TouchChannelResult;
1989
+ readonly updateRelationship: PhDocument;
1807
1990
  };
1808
- type MutationAddRelationshipArgs = {
1991
+ export type MutationAddRelationshipArgs = {
1809
1992
  branch?: InputMaybe<Scalars["String"]["input"]>;
1993
+ metadata?: InputMaybe<Scalars["JSONObject"]["input"]>;
1810
1994
  relationshipType: Scalars["String"]["input"];
1811
1995
  sourceIdentifier: Scalars["String"]["input"];
1812
1996
  targetIdentifier: Scalars["String"]["input"];
1813
1997
  };
1814
- type MutationCreateDocumentArgs = {
1998
+ export type MutationCreateDocumentArgs = {
1815
1999
  document: Scalars["JSONObject"]["input"];
1816
2000
  parentIdentifier?: InputMaybe<Scalars["String"]["input"]>;
1817
2001
  };
1818
- type MutationCreateEmptyDocumentArgs = {
2002
+ export type MutationCreateEmptyDocumentArgs = {
1819
2003
  documentType: Scalars["String"]["input"];
1820
2004
  parentIdentifier?: InputMaybe<Scalars["String"]["input"]>;
1821
2005
  };
1822
- type MutationDeleteDocumentArgs = {
2006
+ export type MutationDeleteDocumentArgs = {
1823
2007
  identifier: Scalars["String"]["input"];
1824
2008
  propagate?: InputMaybe<PropagationMode>;
1825
2009
  };
1826
- type MutationDeleteDocumentsArgs = {
2010
+ export type MutationDeleteDocumentsArgs = {
1827
2011
  identifiers: ReadonlyArray<Scalars["String"]["input"]>;
1828
2012
  propagate?: InputMaybe<PropagationMode>;
1829
2013
  };
1830
- type MutationExecuteArgs = {
2014
+ export type MutationExecuteArgs = {
1831
2015
  actions: ReadonlyArray<ActionInput>;
1832
2016
  branch?: InputMaybe<Scalars["String"]["input"]>;
1833
2017
  documentIdentifier: Scalars["String"]["input"];
1834
2018
  };
1835
- type MutationExecuteAsyncArgs = {
2019
+ export type MutationExecuteAsyncArgs = {
1836
2020
  actions: ReadonlyArray<ActionInput>;
1837
2021
  branch?: InputMaybe<Scalars["String"]["input"]>;
1838
2022
  documentIdentifier: Scalars["String"]["input"];
1839
2023
  };
1840
- type MutationMoveRelationshipArgs = {
2024
+ export type MutationMoveRelationshipArgs = {
1841
2025
  branch?: InputMaybe<Scalars["String"]["input"]>;
1842
2026
  relationshipType: Scalars["String"]["input"];
1843
2027
  sourceParentIdentifier: Scalars["String"]["input"];
1844
2028
  targetIdentifier: Scalars["String"]["input"];
1845
2029
  targetParentIdentifier: Scalars["String"]["input"];
1846
2030
  };
1847
- type MutationMutateDocumentArgs = {
2031
+ export type MutationMutateDocumentArgs = {
1848
2032
  actions: ReadonlyArray<Scalars["JSONObject"]["input"]>;
1849
2033
  documentIdentifier: Scalars["String"]["input"];
1850
2034
  view?: InputMaybe<ViewFilterInput>;
1851
2035
  };
1852
- type MutationMutateDocumentAsyncArgs = {
2036
+ export type MutationMutateDocumentAsyncArgs = {
1853
2037
  actions: ReadonlyArray<Scalars["JSONObject"]["input"]>;
1854
2038
  documentIdentifier: Scalars["String"]["input"];
1855
2039
  view?: InputMaybe<ViewFilterInput>;
1856
2040
  };
1857
- type MutationPushSyncEnvelopesArgs = {
2041
+ export type MutationPushSyncEnvelopesArgs = {
1858
2042
  envelopes: ReadonlyArray<SyncEnvelopeInput>;
1859
2043
  };
1860
- type MutationRemoveRelationshipArgs = {
2044
+ export type MutationRemoveRelationshipArgs = {
1861
2045
  branch?: InputMaybe<Scalars["String"]["input"]>;
1862
2046
  relationshipType: Scalars["String"]["input"];
1863
2047
  sourceIdentifier: Scalars["String"]["input"];
1864
2048
  targetIdentifier: Scalars["String"]["input"];
1865
2049
  };
1866
- type MutationRenameDocumentArgs = {
2050
+ export type MutationRenameDocumentArgs = {
1867
2051
  branch?: InputMaybe<Scalars["String"]["input"]>;
1868
2052
  documentIdentifier: Scalars["String"]["input"];
1869
2053
  name: Scalars["String"]["input"];
1870
2054
  };
1871
- type MutationSetPreferredEditorArgs = {
2055
+ export type MutationSetPreferredEditorArgs = {
1872
2056
  branch?: InputMaybe<Scalars["String"]["input"]>;
1873
2057
  documentIdentifier: Scalars["String"]["input"];
1874
2058
  preferredEditor?: InputMaybe<Scalars["String"]["input"]>;
1875
2059
  };
1876
- type MutationTouchChannelArgs = {
2060
+ export type MutationTouchChannelArgs = {
1877
2061
  input: TouchChannelInput;
1878
2062
  };
1879
- type OperationContext = {
2063
+ export type MutationUpdateRelationshipArgs = {
2064
+ branch?: InputMaybe<Scalars["String"]["input"]>;
2065
+ metadata?: InputMaybe<Scalars["JSONObject"]["input"]>;
2066
+ relationshipType: Scalars["String"]["input"];
2067
+ sourceIdentifier: Scalars["String"]["input"];
2068
+ targetIdentifier: Scalars["String"]["input"];
2069
+ };
2070
+ export type OperationContext = {
1880
2071
  readonly branch: Scalars["String"]["output"];
1881
2072
  readonly documentId: Scalars["String"]["output"];
1882
2073
  readonly documentType: Scalars["String"]["output"];
1883
2074
  readonly ordinal: Scalars["Int"]["output"];
1884
2075
  readonly scope: Scalars["String"]["output"];
1885
2076
  };
1886
- type OperationContextInput = {
2077
+ export type OperationContextInput = {
1887
2078
  readonly branch: Scalars["String"]["input"];
1888
2079
  readonly documentId: Scalars["String"]["input"];
1889
2080
  readonly documentType: Scalars["String"]["input"];
1890
2081
  readonly ordinal: Scalars["Int"]["input"];
1891
2082
  readonly scope: Scalars["String"]["input"];
1892
2083
  };
1893
- type OperationInput = {
2084
+ export type OperationInput = {
1894
2085
  readonly action: ActionInput;
1895
2086
  readonly deniedReason?: InputMaybe<Scalars["String"]["input"]>;
1896
2087
  readonly error?: InputMaybe<Scalars["String"]["input"]>;
@@ -1900,15 +2091,15 @@ type OperationInput = {
1900
2091
  readonly skip: Scalars["Int"]["input"];
1901
2092
  readonly timestampUtcMs: Scalars["String"]["input"];
1902
2093
  };
1903
- type OperationWithContext = {
2094
+ export type OperationWithContext = {
1904
2095
  readonly context: OperationContext;
1905
2096
  readonly operation: ReactorOperation;
1906
2097
  };
1907
- type OperationWithContextInput = {
2098
+ export type OperationWithContextInput = {
1908
2099
  readonly context: OperationContextInput;
1909
2100
  readonly operation: OperationInput;
1910
2101
  };
1911
- type OperationsFilterInput = {
2102
+ export type OperationsFilterInput = {
1912
2103
  readonly actionTypes?: InputMaybe<ReadonlyArray<Scalars["String"]["input"]>>;
1913
2104
  readonly branch?: InputMaybe<Scalars["String"]["input"]>;
1914
2105
  readonly documentId: Scalars["String"]["input"];
@@ -1917,7 +2108,7 @@ type OperationsFilterInput = {
1917
2108
  readonly timestampFrom?: InputMaybe<Scalars["String"]["input"]>;
1918
2109
  readonly timestampTo?: InputMaybe<Scalars["String"]["input"]>;
1919
2110
  };
1920
- type PhDocument = {
2111
+ export type PhDocument = {
1921
2112
  readonly createdAtUtcIso: Scalars["DateTime"]["output"];
1922
2113
  readonly documentType: Scalars["String"]["output"];
1923
2114
  readonly id: Scalars["String"]["output"];
@@ -1929,37 +2120,38 @@ type PhDocument = {
1929
2120
  readonly slug?: Maybe<Scalars["String"]["output"]>;
1930
2121
  readonly state: Scalars["JSONObject"]["output"];
1931
2122
  };
1932
- type PhDocumentOperationsArgs = {
2123
+ export type PhDocumentOperationsArgs = {
1933
2124
  filter?: InputMaybe<DocumentOperationsFilterInput>;
1934
2125
  paging?: InputMaybe<PagingInput>;
1935
2126
  };
1936
- type PhDocumentResultPage = {
2127
+ export type PhDocumentResultPage = {
1937
2128
  readonly cursor?: Maybe<Scalars["String"]["output"]>;
1938
2129
  readonly hasNextPage: Scalars["Boolean"]["output"];
1939
2130
  readonly hasPreviousPage: Scalars["Boolean"]["output"];
1940
2131
  readonly items: ReadonlyArray<PhDocument>;
1941
- readonly totalCount: Scalars["Int"]["output"];
1942
2132
  };
1943
- type PagingInput = {
2133
+ export type PagingInput = {
1944
2134
  readonly cursor?: InputMaybe<Scalars["String"]["input"]>;
1945
2135
  readonly limit?: InputMaybe<Scalars["Int"]["input"]>;
1946
2136
  readonly offset?: InputMaybe<Scalars["Int"]["input"]>;
1947
2137
  };
1948
- type PollSyncEnvelopesResult = {
2138
+ export type PollSyncEnvelopesResult = {
1949
2139
  readonly ackOrdinal: Scalars["Int"]["output"];
1950
2140
  readonly deadLetters: ReadonlyArray<DeadLetterInfo>;
1951
2141
  readonly envelopes: ReadonlyArray<SyncEnvelope>;
1952
2142
  readonly hasMore: Scalars["Boolean"]["output"];
1953
2143
  };
1954
- declare enum PropagationMode {
2144
+ export declare enum PropagationMode {
1955
2145
  Cascade = "CASCADE",
1956
2146
  Orphan = "ORPHAN"
1957
2147
  }
1958
- type Query = {
2148
+ export type Query = {
1959
2149
  readonly document?: Maybe<DocumentWithChildren>;
2150
+ readonly documentIncomingRelationshipEdges: DocumentRelationshipResultPage;
1960
2151
  readonly documentIncomingRelationships: PhDocumentResultPage;
1961
2152
  readonly documentModels: DocumentModelResultPage;
1962
2153
  readonly documentOperations: ReactorOperationResultPage;
2154
+ readonly documentOutgoingRelationshipEdges: DocumentRelationshipResultPage;
1963
2155
  readonly documentOutgoingRelationships: PhDocumentResultPage;
1964
2156
  /**
1965
2157
  * Predicts whether the calling subject would be admitted to execute each of a
@@ -2004,49 +2196,61 @@ type Query = {
2004
2196
  */
2005
2197
  readonly pollSyncEnvelopes: PollSyncEnvelopesResult;
2006
2198
  };
2007
- type QueryDocumentArgs = {
2199
+ export type QueryDocumentArgs = {
2008
2200
  identifier: Scalars["String"]["input"];
2009
2201
  view?: InputMaybe<ViewFilterInput>;
2010
2202
  };
2011
- type QueryDocumentIncomingRelationshipsArgs = {
2203
+ export type QueryDocumentIncomingRelationshipEdgesArgs = {
2204
+ paging?: InputMaybe<PagingInput>;
2205
+ relationshipType?: InputMaybe<Scalars["String"]["input"]>;
2206
+ targetIdentifier: Scalars["String"]["input"];
2207
+ view?: InputMaybe<ViewFilterInput>;
2208
+ };
2209
+ export type QueryDocumentIncomingRelationshipsArgs = {
2012
2210
  paging?: InputMaybe<PagingInput>;
2013
2211
  relationshipType: Scalars["String"]["input"];
2014
2212
  targetIdentifier: Scalars["String"]["input"];
2015
2213
  view?: InputMaybe<ViewFilterInput>;
2016
2214
  };
2017
- type QueryDocumentModelsArgs = {
2215
+ export type QueryDocumentModelsArgs = {
2018
2216
  namespace?: InputMaybe<Scalars["String"]["input"]>;
2019
2217
  paging?: InputMaybe<PagingInput>;
2020
2218
  };
2021
- type QueryDocumentOperationsArgs = {
2219
+ export type QueryDocumentOperationsArgs = {
2022
2220
  filter: OperationsFilterInput;
2023
2221
  paging?: InputMaybe<PagingInput>;
2024
2222
  };
2025
- type QueryDocumentOutgoingRelationshipsArgs = {
2223
+ export type QueryDocumentOutgoingRelationshipEdgesArgs = {
2224
+ paging?: InputMaybe<PagingInput>;
2225
+ relationshipType?: InputMaybe<Scalars["String"]["input"]>;
2226
+ sourceIdentifier: Scalars["String"]["input"];
2227
+ view?: InputMaybe<ViewFilterInput>;
2228
+ };
2229
+ export type QueryDocumentOutgoingRelationshipsArgs = {
2026
2230
  paging?: InputMaybe<PagingInput>;
2027
2231
  relationshipType: Scalars["String"]["input"];
2028
2232
  sourceIdentifier: Scalars["String"]["input"];
2029
2233
  view?: InputMaybe<ViewFilterInput>;
2030
2234
  };
2031
- type QueryEvaluateActionsArgs = {
2235
+ export type QueryEvaluateActionsArgs = {
2032
2236
  branch?: InputMaybe<Scalars["String"]["input"]>;
2033
2237
  candidates: ReadonlyArray<ActionCandidateInput>;
2034
2238
  documentIdentifier: Scalars["String"]["input"];
2035
2239
  };
2036
- type QueryFindDocumentsArgs = {
2240
+ export type QueryFindDocumentsArgs = {
2037
2241
  paging?: InputMaybe<PagingInput>;
2038
2242
  search?: InputMaybe<SearchFilterInput>;
2039
2243
  view?: InputMaybe<ViewFilterInput>;
2040
2244
  };
2041
- type QueryJobStatusArgs = {
2245
+ export type QueryJobStatusArgs = {
2042
2246
  jobId: Scalars["String"]["input"];
2043
2247
  };
2044
- type QueryPollSyncEnvelopesArgs = {
2248
+ export type QueryPollSyncEnvelopesArgs = {
2045
2249
  channelId: Scalars["String"]["input"];
2046
2250
  outboxAck: Scalars["Int"]["input"];
2047
2251
  outboxLatest: Scalars["Int"]["input"];
2048
2252
  };
2049
- type ReactorOperation = {
2253
+ export type ReactorOperation = {
2050
2254
  readonly action: Action;
2051
2255
  readonly deniedReason?: Maybe<Scalars["String"]["output"]>;
2052
2256
  readonly error?: Maybe<Scalars["String"]["output"]>;
@@ -2056,77 +2260,76 @@ type ReactorOperation = {
2056
2260
  readonly skip: Scalars["Int"]["output"];
2057
2261
  readonly timestampUtcMs: Scalars["String"]["output"];
2058
2262
  };
2059
- type ReactorOperationResultPage = {
2263
+ export type ReactorOperationResultPage = {
2060
2264
  readonly cursor?: Maybe<Scalars["String"]["output"]>;
2061
2265
  readonly hasNextPage: Scalars["Boolean"]["output"];
2062
2266
  readonly hasPreviousPage: Scalars["Boolean"]["output"];
2063
2267
  readonly items: ReadonlyArray<ReactorOperation>;
2064
- readonly totalCount: Scalars["Int"]["output"];
2065
2268
  };
2066
- type ReactorSigner = {
2269
+ export type ReactorSigner = {
2067
2270
  readonly app?: Maybe<ReactorSignerApp>;
2068
2271
  readonly signatures: ReadonlyArray<Scalars["String"]["output"]>;
2069
2272
  readonly user?: Maybe<ReactorSignerUser>;
2070
2273
  };
2071
- type ReactorSignerApp = {
2274
+ export type ReactorSignerApp = {
2072
2275
  readonly key: Scalars["String"]["output"];
2073
2276
  readonly name: Scalars["String"]["output"];
2074
2277
  };
2075
- type ReactorSignerAppInput = {
2278
+ export type ReactorSignerAppInput = {
2076
2279
  readonly key: Scalars["String"]["input"];
2077
2280
  readonly name: Scalars["String"]["input"];
2078
2281
  };
2079
- type ReactorSignerInput = {
2282
+ export type ReactorSignerInput = {
2080
2283
  readonly app?: InputMaybe<ReactorSignerAppInput>;
2081
2284
  readonly signatures: ReadonlyArray<Scalars["String"]["input"]>;
2082
2285
  readonly user?: InputMaybe<ReactorSignerUserInput>;
2083
2286
  };
2084
- type ReactorSignerUser = {
2287
+ export type ReactorSignerUser = {
2085
2288
  readonly address: Scalars["String"]["output"];
2086
2289
  readonly chainId: Scalars["Int"]["output"];
2087
2290
  readonly networkId: Scalars["String"]["output"];
2088
2291
  };
2089
- type ReactorSignerUserInput = {
2292
+ export type ReactorSignerUserInput = {
2090
2293
  readonly address: Scalars["String"]["input"];
2091
2294
  readonly chainId: Scalars["Int"]["input"];
2092
2295
  readonly networkId: Scalars["String"]["input"];
2093
2296
  };
2094
- type RemoteCursor = {
2297
+ export type RemoteCursor = {
2095
2298
  readonly cursorOrdinal: Scalars["Int"]["output"];
2096
2299
  readonly lastSyncedAtUtcMs?: Maybe<Scalars["String"]["output"]>;
2097
2300
  readonly remoteName: Scalars["String"]["output"];
2098
2301
  };
2099
- type RemoteCursorInput = {
2302
+ export type RemoteCursorInput = {
2100
2303
  readonly cursorOrdinal: Scalars["Int"]["input"];
2101
2304
  readonly lastSyncedAtUtcMs?: InputMaybe<Scalars["String"]["input"]>;
2102
2305
  readonly remoteName: Scalars["String"]["input"];
2103
2306
  };
2104
- type RemoteFilterInput = {
2307
+ export type RemoteFilterInput = {
2105
2308
  readonly branch: Scalars["String"]["input"];
2106
2309
  readonly documentId: ReadonlyArray<Scalars["String"]["input"]>;
2107
2310
  readonly scope: ReadonlyArray<Scalars["String"]["input"]>;
2108
2311
  };
2109
- type Revision = {
2312
+ export type Revision = {
2110
2313
  readonly revision: Scalars["Int"]["output"];
2111
2314
  readonly scope: Scalars["String"]["output"];
2112
2315
  };
2113
- type SearchFilterInput = {
2316
+ export type SearchFilterInput = {
2114
2317
  readonly identifiers?: InputMaybe<ReadonlyArray<Scalars["String"]["input"]>>;
2115
2318
  readonly parentId?: InputMaybe<Scalars["String"]["input"]>;
2116
2319
  readonly type?: InputMaybe<Scalars["String"]["input"]>;
2117
2320
  };
2118
- type Subscription = {
2321
+ export type Subscription = {
2119
2322
  readonly documentChanges: DocumentChangeEvent;
2120
2323
  readonly jobChanges: JobChangeEvent;
2121
2324
  };
2122
- type SubscriptionDocumentChangesArgs = {
2325
+ export type SubscriptionDocumentChangesArgs = {
2123
2326
  search?: InputMaybe<SearchFilterInput>;
2124
2327
  view?: InputMaybe<ViewFilterInput>;
2125
2328
  };
2126
- type SubscriptionJobChangesArgs = {
2329
+ export type SubscriptionJobChangesArgs = {
2127
2330
  jobId: Scalars["String"]["input"];
2128
2331
  };
2129
- type SyncEnvelope = {
2332
+ export type SyncEnvelope = {
2130
2333
  readonly channelMeta: ChannelMeta;
2131
2334
  readonly cursor?: Maybe<RemoteCursor>;
2132
2335
  readonly dependsOn?: Maybe<ReadonlyArray<Scalars["String"]["output"]>>;
@@ -2134,7 +2337,7 @@ type SyncEnvelope = {
2134
2337
  readonly operations?: Maybe<ReadonlyArray<OperationWithContext>>;
2135
2338
  readonly type: SyncEnvelopeType;
2136
2339
  };
2137
- type SyncEnvelopeInput = {
2340
+ export type SyncEnvelopeInput = {
2138
2341
  readonly channelMeta: ChannelMetaInput;
2139
2342
  readonly cursor?: InputMaybe<RemoteCursorInput>;
2140
2343
  readonly dependsOn?: InputMaybe<ReadonlyArray<Scalars["String"]["input"]>>;
@@ -2142,26 +2345,26 @@ type SyncEnvelopeInput = {
2142
2345
  readonly operations?: InputMaybe<ReadonlyArray<OperationWithContextInput>>;
2143
2346
  readonly type: SyncEnvelopeType;
2144
2347
  };
2145
- declare enum SyncEnvelopeType {
2348
+ export declare enum SyncEnvelopeType {
2146
2349
  Ack = "ACK",
2147
2350
  Operations = "OPERATIONS"
2148
2351
  }
2149
- type TouchChannelInput = {
2352
+ export type TouchChannelInput = {
2150
2353
  readonly collectionId: Scalars["String"]["input"];
2151
2354
  readonly filter: RemoteFilterInput;
2152
2355
  readonly id: Scalars["String"]["input"];
2153
2356
  readonly name: Scalars["String"]["input"];
2154
2357
  readonly sinceTimestampUtcMs: Scalars["String"]["input"];
2155
2358
  };
2156
- type TouchChannelResult = {
2359
+ export type TouchChannelResult = {
2157
2360
  readonly ackOrdinal: Scalars["Int"]["output"];
2158
2361
  readonly success: Scalars["Boolean"]["output"];
2159
2362
  };
2160
- type ViewFilterInput = {
2363
+ export type ViewFilterInput = {
2161
2364
  readonly branch?: InputMaybe<Scalars["String"]["input"]>;
2162
2365
  readonly scopes?: InputMaybe<ReadonlyArray<Scalars["String"]["input"]>>;
2163
2366
  };
2164
- type PhDocumentFieldsFragment = {
2367
+ export type PhDocumentFieldsFragment = {
2165
2368
  readonly id: string;
2166
2369
  readonly slug?: string | null | undefined;
2167
2370
  readonly name: string;
@@ -2174,13 +2377,20 @@ type PhDocumentFieldsFragment = {
2174
2377
  readonly revision: number;
2175
2378
  }>;
2176
2379
  };
2177
- type GetDocumentModelsQueryVariables = Exact<{
2380
+ export type DocumentRelationshipFieldsFragment = {
2381
+ readonly sourceId: string;
2382
+ readonly targetId: string;
2383
+ readonly relationshipType: string;
2384
+ readonly metadata?: NonNullable<unknown> | null | undefined;
2385
+ readonly createdAt: string | Date;
2386
+ readonly updatedAt: string | Date;
2387
+ };
2388
+ export type GetDocumentModelsQueryVariables = Exact<{
2178
2389
  namespace?: InputMaybe<Scalars["String"]["input"]>;
2179
2390
  paging?: InputMaybe<PagingInput>;
2180
2391
  }>;
2181
- type GetDocumentModelsQuery = {
2392
+ export type GetDocumentModelsQuery = {
2182
2393
  readonly documentModels: {
2183
- readonly totalCount: number;
2184
2394
  readonly hasNextPage: boolean;
2185
2395
  readonly hasPreviousPage: boolean;
2186
2396
  readonly cursor?: string | null | undefined;
@@ -2193,11 +2403,11 @@ type GetDocumentModelsQuery = {
2193
2403
  }>;
2194
2404
  };
2195
2405
  };
2196
- type GetDocumentQueryVariables = Exact<{
2406
+ export type GetDocumentQueryVariables = Exact<{
2197
2407
  identifier: Scalars["String"]["input"];
2198
2408
  view?: InputMaybe<ViewFilterInput>;
2199
2409
  }>;
2200
- type GetDocumentQuery = {
2410
+ export type GetDocumentQuery = {
2201
2411
  readonly document?: {
2202
2412
  readonly childIds: ReadonlyArray<string>;
2203
2413
  readonly document: {
@@ -2215,13 +2425,13 @@ type GetDocumentQuery = {
2215
2425
  };
2216
2426
  } | null | undefined;
2217
2427
  };
2218
- type GetDocumentWithOperationsQueryVariables = Exact<{
2428
+ export type GetDocumentWithOperationsQueryVariables = Exact<{
2219
2429
  identifier: Scalars["String"]["input"];
2220
2430
  view?: InputMaybe<ViewFilterInput>;
2221
2431
  operationsFilter?: InputMaybe<DocumentOperationsFilterInput>;
2222
2432
  operationsPaging?: InputMaybe<PagingInput>;
2223
2433
  }>;
2224
- type GetDocumentWithOperationsQuery = {
2434
+ export type GetDocumentWithOperationsQuery = {
2225
2435
  readonly document?: {
2226
2436
  readonly childIds: ReadonlyArray<string>;
2227
2437
  readonly document: {
@@ -2233,7 +2443,6 @@ type GetDocumentWithOperationsQuery = {
2233
2443
  readonly createdAtUtcIso: string | Date;
2234
2444
  readonly lastModifiedAtUtcIso: string | Date;
2235
2445
  readonly operations?: {
2236
- readonly totalCount: number;
2237
2446
  readonly hasNextPage: boolean;
2238
2447
  readonly hasPreviousPage: boolean;
2239
2448
  readonly cursor?: string | null | undefined;
@@ -2275,15 +2484,14 @@ type GetDocumentWithOperationsQuery = {
2275
2484
  };
2276
2485
  } | null | undefined;
2277
2486
  };
2278
- type GetDocumentOutgoingRelationshipsQueryVariables = Exact<{
2487
+ export type GetDocumentOutgoingRelationshipsQueryVariables = Exact<{
2279
2488
  sourceIdentifier: Scalars["String"]["input"];
2280
2489
  relationshipType: Scalars["String"]["input"];
2281
2490
  view?: InputMaybe<ViewFilterInput>;
2282
2491
  paging?: InputMaybe<PagingInput>;
2283
2492
  }>;
2284
- type GetDocumentOutgoingRelationshipsQuery = {
2493
+ export type GetDocumentOutgoingRelationshipsQuery = {
2285
2494
  readonly documentOutgoingRelationships: {
2286
- readonly totalCount: number;
2287
2495
  readonly hasNextPage: boolean;
2288
2496
  readonly hasPreviousPage: boolean;
2289
2497
  readonly cursor?: string | null | undefined;
@@ -2302,15 +2510,14 @@ type GetDocumentOutgoingRelationshipsQuery = {
2302
2510
  }>;
2303
2511
  };
2304
2512
  };
2305
- type GetDocumentIncomingRelationshipsQueryVariables = Exact<{
2513
+ export type GetDocumentIncomingRelationshipsQueryVariables = Exact<{
2306
2514
  targetIdentifier: Scalars["String"]["input"];
2307
2515
  relationshipType: Scalars["String"]["input"];
2308
2516
  view?: InputMaybe<ViewFilterInput>;
2309
2517
  paging?: InputMaybe<PagingInput>;
2310
2518
  }>;
2311
- type GetDocumentIncomingRelationshipsQuery = {
2519
+ export type GetDocumentIncomingRelationshipsQuery = {
2312
2520
  readonly documentIncomingRelationships: {
2313
- readonly totalCount: number;
2314
2521
  readonly hasNextPage: boolean;
2315
2522
  readonly hasPreviousPage: boolean;
2316
2523
  readonly cursor?: string | null | undefined;
@@ -2329,14 +2536,55 @@ type GetDocumentIncomingRelationshipsQuery = {
2329
2536
  }>;
2330
2537
  };
2331
2538
  };
2332
- type FindDocumentsQueryVariables = Exact<{
2539
+ export type GetDocumentOutgoingRelationshipEdgesQueryVariables = Exact<{
2540
+ sourceIdentifier: Scalars["String"]["input"];
2541
+ relationshipType?: InputMaybe<Scalars["String"]["input"]>;
2542
+ view?: InputMaybe<ViewFilterInput>;
2543
+ paging?: InputMaybe<PagingInput>;
2544
+ }>;
2545
+ export type GetDocumentOutgoingRelationshipEdgesQuery = {
2546
+ readonly documentOutgoingRelationshipEdges: {
2547
+ readonly hasNextPage: boolean;
2548
+ readonly hasPreviousPage: boolean;
2549
+ readonly cursor?: string | null | undefined;
2550
+ readonly items: ReadonlyArray<{
2551
+ readonly sourceId: string;
2552
+ readonly targetId: string;
2553
+ readonly relationshipType: string;
2554
+ readonly metadata?: NonNullable<unknown> | null | undefined;
2555
+ readonly createdAt: string | Date;
2556
+ readonly updatedAt: string | Date;
2557
+ }>;
2558
+ };
2559
+ };
2560
+ export type GetDocumentIncomingRelationshipEdgesQueryVariables = Exact<{
2561
+ targetIdentifier: Scalars["String"]["input"];
2562
+ relationshipType?: InputMaybe<Scalars["String"]["input"]>;
2563
+ view?: InputMaybe<ViewFilterInput>;
2564
+ paging?: InputMaybe<PagingInput>;
2565
+ }>;
2566
+ export type GetDocumentIncomingRelationshipEdgesQuery = {
2567
+ readonly documentIncomingRelationshipEdges: {
2568
+ readonly hasNextPage: boolean;
2569
+ readonly hasPreviousPage: boolean;
2570
+ readonly cursor?: string | null | undefined;
2571
+ readonly items: ReadonlyArray<{
2572
+ readonly sourceId: string;
2573
+ readonly targetId: string;
2574
+ readonly relationshipType: string;
2575
+ readonly metadata?: NonNullable<unknown> | null | undefined;
2576
+ readonly createdAt: string | Date;
2577
+ readonly updatedAt: string | Date;
2578
+ }>;
2579
+ };
2580
+ };
2581
+ export type FindDocumentsQueryVariables = Exact<{
2333
2582
  search?: InputMaybe<SearchFilterInput>;
2334
2583
  view?: InputMaybe<ViewFilterInput>;
2335
2584
  paging?: InputMaybe<PagingInput>;
2336
2585
  }>;
2337
- type FindDocumentsQuery = {
2586
+ export type FindDocumentsQuery = {
2338
2587
  readonly findDocuments: {
2339
- readonly totalCount: number;
2340
2588
  readonly hasNextPage: boolean;
2341
2589
  readonly hasPreviousPage: boolean;
2342
2590
  readonly cursor?: string | null | undefined;
@@ -2355,13 +2603,12 @@ type FindDocumentsQuery = {
2355
2603
  }>;
2356
2604
  };
2357
2605
  };
2358
- type GetDocumentOperationsQueryVariables = Exact<{
2606
+ export type GetDocumentOperationsQueryVariables = Exact<{
2359
2607
  filter: OperationsFilterInput;
2360
2608
  paging?: InputMaybe<PagingInput>;
2361
2609
  }>;
2362
- type GetDocumentOperationsQuery = {
2610
+ export type GetDocumentOperationsQuery = {
2363
2611
  readonly documentOperations: {
2364
- readonly totalCount: number;
2365
2612
  readonly hasNextPage: boolean;
2366
2613
  readonly hasPreviousPage: boolean;
2367
2614
  readonly cursor?: string | null | undefined;
@@ -2397,10 +2644,10 @@ type GetDocumentOperationsQuery = {
2397
2644
  }>;
2398
2645
  };
2399
2646
  };
2400
- type GetJobStatusQueryVariables = Exact<{
2647
+ export type GetJobStatusQueryVariables = Exact<{
2401
2648
  jobId: Scalars["String"]["input"];
2402
2649
  }>;
2403
- type GetJobStatusQuery = {
2650
+ export type GetJobStatusQuery = {
2404
2651
  readonly jobStatus?: {
2405
2652
  readonly id: string;
2406
2653
  readonly status: string;
@@ -2410,12 +2657,12 @@ type GetJobStatusQuery = {
2410
2657
  readonly completedAt?: string | Date | null | undefined;
2411
2658
  } | null | undefined;
2412
2659
  };
2413
- type EvaluateActionsQueryVariables = Exact<{
2660
+ export type EvaluateActionsQueryVariables = Exact<{
2414
2661
  documentIdentifier: Scalars["String"]["input"];
2415
2662
  branch?: InputMaybe<Scalars["String"]["input"]>;
2416
2663
  candidates: ReadonlyArray<ActionCandidateInput>;
2417
2664
  }>;
2418
- type EvaluateActionsQuery = {
2665
+ export type EvaluateActionsQuery = {
2419
2666
  readonly evaluateActions: {
2420
2667
  readonly allAllowed: boolean;
2421
2668
  readonly anyAllowed: boolean;
@@ -2427,11 +2674,11 @@ type EvaluateActionsQuery = {
2427
2674
  }>;
2428
2675
  };
2429
2676
  };
2430
- type CreateDocumentMutationVariables = Exact<{
2677
+ export type CreateDocumentMutationVariables = Exact<{
2431
2678
  document: Scalars["JSONObject"]["input"];
2432
2679
  parentIdentifier?: InputMaybe<Scalars["String"]["input"]>;
2433
2680
  }>;
2434
- type CreateDocumentMutation = {
2681
+ export type CreateDocumentMutation = {
2435
2682
  readonly createDocument: {
2436
2683
  readonly id: string;
2437
2684
  readonly slug?: string | null | undefined;
@@ -2446,11 +2693,11 @@ type CreateDocumentMutation = {
2446
2693
  }>;
2447
2694
  };
2448
2695
  };
2449
- type CreateEmptyDocumentMutationVariables = Exact<{
2696
+ export type CreateEmptyDocumentMutationVariables = Exact<{
2450
2697
  documentType: Scalars["String"]["input"];
2451
2698
  parentIdentifier?: InputMaybe<Scalars["String"]["input"]>;
2452
2699
  }>;
2453
- type CreateEmptyDocumentMutation = {
2700
+ export type CreateEmptyDocumentMutation = {
2454
2701
  readonly createEmptyDocument: {
2455
2702
  readonly id: string;
2456
2703
  readonly slug?: string | null | undefined;
@@ -2465,12 +2712,12 @@ type CreateEmptyDocumentMutation = {
2465
2712
  }>;
2466
2713
  };
2467
2714
  };
2468
- type MutateDocumentMutationVariables = Exact<{
2715
+ export type MutateDocumentMutationVariables = Exact<{
2469
2716
  documentIdentifier: Scalars["String"]["input"];
2470
2717
  actions: ReadonlyArray<ActionInput>;
2471
2718
  branch?: InputMaybe<Scalars["String"]["input"]>;
2472
2719
  }>;
2473
- type MutateDocumentMutation = {
2720
+ export type MutateDocumentMutation = {
2474
2721
  readonly mutateDocument: {
2475
2722
  readonly id: string;
2476
2723
  readonly slug?: string | null | undefined;
@@ -2485,12 +2732,12 @@ type MutateDocumentMutation = {
2485
2732
  }>;
2486
2733
  };
2487
2734
  };
2488
- type MutateDocumentAsyncMutationVariables = Exact<{
2735
+ export type MutateDocumentAsyncMutationVariables = Exact<{
2489
2736
  documentIdentifier: Scalars["String"]["input"];
2490
2737
  actions: ReadonlyArray<ActionInput>;
2491
2738
  branch?: InputMaybe<Scalars["String"]["input"]>;
2492
2739
  }>;
2493
- type MutateDocumentAsyncMutation = {
2740
+ export type MutateDocumentAsyncMutation = {
2494
2741
  readonly mutateDocumentAsync: {
2495
2742
  readonly id: string;
2496
2743
  readonly status: string;
@@ -2500,12 +2747,12 @@ type MutateDocumentAsyncMutation = {
2500
2747
  readonly completedAt?: string | Date | null | undefined;
2501
2748
  };
2502
2749
  };
2503
- type RenameDocumentMutationVariables = Exact<{
2750
+ export type RenameDocumentMutationVariables = Exact<{
2504
2751
  documentIdentifier: Scalars["String"]["input"];
2505
2752
  name: Scalars["String"]["input"];
2506
2753
  branch?: InputMaybe<Scalars["String"]["input"]>;
2507
2754
  }>;
2508
- type RenameDocumentMutation = {
2755
+ export type RenameDocumentMutation = {
2509
2756
  readonly renameDocument: {
2510
2757
  readonly id: string;
2511
2758
  readonly slug?: string | null | undefined;
@@ -2520,12 +2767,12 @@ type RenameDocumentMutation = {
2520
2767
  }>;
2521
2768
  };
2522
2769
  };
2523
- type SetPreferredEditorMutationVariables = Exact<{
2770
+ export type SetPreferredEditorMutationVariables = Exact<{
2524
2771
  documentIdentifier: Scalars["String"]["input"];
2525
2772
  preferredEditor?: InputMaybe<Scalars["String"]["input"]>;
2526
2773
  branch?: InputMaybe<Scalars["String"]["input"]>;
2527
2774
  }>;
2528
- type SetPreferredEditorMutation = {
2775
+ export type SetPreferredEditorMutation = {
2529
2776
  readonly setPreferredEditor: {
2530
2777
  readonly id: string;
2531
2778
  readonly slug?: string | null | undefined;
@@ -2540,13 +2787,14 @@ type SetPreferredEditorMutation = {
2540
2787
  }>;
2541
2788
  };
2542
2789
  };
2543
- type AddRelationshipMutationVariables = Exact<{
2790
+ export type AddRelationshipMutationVariables = Exact<{
2544
2791
  sourceIdentifier: Scalars["String"]["input"];
2545
2792
  targetIdentifier: Scalars["String"]["input"];
2546
2793
  relationshipType: Scalars["String"]["input"];
2794
+ metadata?: InputMaybe<Scalars["JSONObject"]["input"]>;
2547
2795
  branch?: InputMaybe<Scalars["String"]["input"]>;
2548
2796
  }>;
2549
- type AddRelationshipMutation = {
2797
+ export type AddRelationshipMutation = {
2550
2798
  readonly addRelationship: {
2551
2799
  readonly id: string;
2552
2800
  readonly slug?: string | null | undefined;
@@ -2561,13 +2809,35 @@ type AddRelationshipMutation = {
2561
2809
  }>;
2562
2810
  };
2563
2811
  };
2564
- type RemoveRelationshipMutationVariables = Exact<{
2812
+ export type UpdateRelationshipMutationVariables = Exact<{
2565
2813
  sourceIdentifier: Scalars["String"]["input"];
2566
2814
  targetIdentifier: Scalars["String"]["input"];
2567
2815
  relationshipType: Scalars["String"]["input"];
2816
+ metadata?: InputMaybe<Scalars["JSONObject"]["input"]>;
2568
2817
  branch?: InputMaybe<Scalars["String"]["input"]>;
2569
2818
  }>;
2570
- type RemoveRelationshipMutation = {
2819
+ export type UpdateRelationshipMutation = {
2820
+ readonly updateRelationship: {
2821
+ readonly id: string;
2822
+ readonly slug?: string | null | undefined;
2823
+ readonly name: string;
2824
+ readonly documentType: string;
2825
+ readonly state: NonNullable<unknown>;
2826
+ readonly createdAtUtcIso: string | Date;
2827
+ readonly lastModifiedAtUtcIso: string | Date;
2828
+ readonly revisionsList: ReadonlyArray<{
2829
+ readonly scope: string;
2830
+ readonly revision: number;
2831
+ }>;
2832
+ };
2833
+ };
2834
+ export type RemoveRelationshipMutationVariables = Exact<{
2835
+ sourceIdentifier: Scalars["String"]["input"];
2836
+ targetIdentifier: Scalars["String"]["input"];
2837
+ relationshipType: Scalars["String"]["input"];
2838
+ branch?: InputMaybe<Scalars["String"]["input"]>;
2839
+ }>;
2840
+ export type RemoveRelationshipMutation = {
2571
2841
  readonly removeRelationship: {
2572
2842
  readonly id: string;
2573
2843
  readonly slug?: string | null | undefined;
@@ -2582,14 +2852,14 @@ type RemoveRelationshipMutation = {
2582
2852
  }>;
2583
2853
  };
2584
2854
  };
2585
- type MoveRelationshipMutationVariables = Exact<{
2855
+ export type MoveRelationshipMutationVariables = Exact<{
2586
2856
  sourceParentIdentifier: Scalars["String"]["input"];
2587
2857
  targetParentIdentifier: Scalars["String"]["input"];
2588
2858
  targetIdentifier: Scalars["String"]["input"];
2589
2859
  relationshipType: Scalars["String"]["input"];
2590
2860
  branch?: InputMaybe<Scalars["String"]["input"]>;
2591
2861
  }>;
2592
- type MoveRelationshipMutation = {
2862
+ export type MoveRelationshipMutation = {
2593
2863
  readonly moveRelationship: {
2594
2864
  readonly source: {
2595
2865
  readonly id: string;
@@ -2619,25 +2889,25 @@ type MoveRelationshipMutation = {
2619
2889
  };
2620
2890
  };
2621
2891
  };
2622
- type DeleteDocumentMutationVariables = Exact<{
2892
+ export type DeleteDocumentMutationVariables = Exact<{
2623
2893
  identifier: Scalars["String"]["input"];
2624
2894
  propagate?: InputMaybe<PropagationMode>;
2625
2895
  }>;
2626
- type DeleteDocumentMutation = {
2896
+ export type DeleteDocumentMutation = {
2627
2897
  readonly deleteDocument: boolean;
2628
2898
  };
2629
- type DeleteDocumentsMutationVariables = Exact<{
2899
+ export type DeleteDocumentsMutationVariables = Exact<{
2630
2900
  identifiers: ReadonlyArray<Scalars["String"]["input"]>;
2631
2901
  propagate?: InputMaybe<PropagationMode>;
2632
2902
  }>;
2633
- type DeleteDocumentsMutation = {
2903
+ export type DeleteDocumentsMutation = {
2634
2904
  readonly deleteDocuments: boolean;
2635
2905
  };
2636
- type DocumentChangesSubscriptionVariables = Exact<{
2906
+ export type DocumentChangesSubscriptionVariables = Exact<{
2637
2907
  search?: InputMaybe<SearchFilterInput>;
2638
2908
  view?: InputMaybe<ViewFilterInput>;
2639
2909
  }>;
2640
- type DocumentChangesSubscription = {
2910
+ export type DocumentChangesSubscription = {
2641
2911
  readonly documentChanges: {
2642
2912
  readonly type: DocumentChangeType;
2643
2913
  readonly documents: ReadonlyArray<{
@@ -2659,23 +2929,23 @@ type DocumentChangesSubscription = {
2659
2929
  } | null | undefined;
2660
2930
  };
2661
2931
  };
2662
- type JobChangesSubscriptionVariables = Exact<{
2932
+ export type JobChangesSubscriptionVariables = Exact<{
2663
2933
  jobId: Scalars["String"]["input"];
2664
2934
  }>;
2665
- type JobChangesSubscription = {
2935
+ export type JobChangesSubscription = {
2666
2936
  readonly jobChanges: {
2667
2937
  readonly jobId: string;
2668
2938
  readonly status: string;
2669
- readonly result: NonNullable<unknown>;
2939
+ readonly result?: NonNullable<unknown> | null | undefined;
2670
2940
  readonly error?: string | null | undefined;
2671
2941
  };
2672
2942
  };
2673
- type PollSyncEnvelopesQueryVariables = Exact<{
2943
+ export type PollSyncEnvelopesQueryVariables = Exact<{
2674
2944
  channelId: Scalars["String"]["input"];
2675
2945
  outboxAck: Scalars["Int"]["input"];
2676
2946
  outboxLatest: Scalars["Int"]["input"];
2677
2947
  }>;
2678
- type PollSyncEnvelopesQuery = {
2948
+ export type PollSyncEnvelopesQuery = {
2679
2949
  readonly pollSyncEnvelopes: {
2680
2950
  readonly ackOrdinal: number;
2681
2951
  readonly hasMore: boolean;
@@ -2737,47 +3007,47 @@ type PollSyncEnvelopesQuery = {
2737
3007
  }>;
2738
3008
  };
2739
3009
  };
2740
- type TouchChannelMutationVariables = Exact<{
3010
+ export type TouchChannelMutationVariables = Exact<{
2741
3011
  input: TouchChannelInput;
2742
3012
  }>;
2743
- type TouchChannelMutation = {
3013
+ export type TouchChannelMutation = {
2744
3014
  readonly touchChannel: {
2745
3015
  readonly success: boolean;
2746
3016
  readonly ackOrdinal: number;
2747
3017
  };
2748
3018
  };
2749
- type PushSyncEnvelopesMutationVariables = Exact<{
3019
+ export type PushSyncEnvelopesMutationVariables = Exact<{
2750
3020
  envelopes: ReadonlyArray<SyncEnvelopeInput>;
2751
3021
  }>;
2752
- type PushSyncEnvelopesMutation = {
3022
+ export type PushSyncEnvelopesMutation = {
2753
3023
  readonly pushSyncEnvelopes: boolean;
2754
3024
  };
2755
- type WithIndex<TObject> = TObject & Record<string, any>;
2756
- type ResolversObject<TObject> = WithIndex<TObject>;
2757
- type ResolverTypeWrapper<T> = Promise<T> | T;
2758
- type ResolverWithResolve<TResult, TParent, TContext, TArgs> = {
3025
+ export type WithIndex<TObject> = TObject & Record<string, any>;
3026
+ export type ResolversObject<TObject> = WithIndex<TObject>;
3027
+ export type ResolverTypeWrapper<T> = Promise<T> | T;
3028
+ export type ResolverWithResolve<TResult, TParent, TContext, TArgs> = {
2759
3029
  resolve: ResolverFn<TResult, TParent, TContext, TArgs>;
2760
3030
  };
2761
- 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>;
2762
- type ResolverFn<TResult, TParent, TContext, TArgs> = (parent: TParent, args: TArgs, context: TContext, info: GraphQLResolveInfo) => Promise<TResult> | TResult;
2763
- type SubscriptionSubscribeFn<TResult, TParent, TContext, TArgs> = (parent: TParent, args: TArgs, context: TContext, info: GraphQLResolveInfo) => AsyncIterable<TResult> | Promise<AsyncIterable<TResult>>;
2764
- type SubscriptionResolveFn<TResult, TParent, TContext, TArgs> = (parent: TParent, args: TArgs, context: TContext, info: GraphQLResolveInfo) => TResult | Promise<TResult>;
2765
- interface SubscriptionSubscriberObject<TResult, TKey extends string, TParent, TContext, TArgs> {
2766
- subscribe: SubscriptionSubscribeFn<{ [key in TKey]: TResult }, TParent, TContext, TArgs>;
2767
- resolve?: SubscriptionResolveFn<TResult, { [key in TKey]: TResult }, TContext, TArgs>;
3031
+ 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>;
3032
+ export type ResolverFn<TResult, TParent, TContext, TArgs> = (parent: TParent, args: TArgs, context: TContext, info: GraphQLResolveInfo) => Promise<TResult> | TResult;
3033
+ export type SubscriptionSubscribeFn<TResult, TParent, TContext, TArgs> = (parent: TParent, args: TArgs, context: TContext, info: GraphQLResolveInfo) => AsyncIterable<TResult> | Promise<AsyncIterable<TResult>>;
3034
+ export type SubscriptionResolveFn<TResult, TParent, TContext, TArgs> = (parent: TParent, args: TArgs, context: TContext, info: GraphQLResolveInfo) => TResult | Promise<TResult>;
3035
+ export interface SubscriptionSubscriberObject<TResult, TKey extends string, TParent, TContext, TArgs> {
3036
+ subscribe: SubscriptionSubscribeFn<{ [key in TKey]: TResult; }, TParent, TContext, TArgs>;
3037
+ resolve?: SubscriptionResolveFn<TResult, { [key in TKey]: TResult; }, TContext, TArgs>;
2768
3038
  }
2769
- interface SubscriptionResolverObject<TResult, TParent, TContext, TArgs> {
3039
+ export interface SubscriptionResolverObject<TResult, TParent, TContext, TArgs> {
2770
3040
  subscribe: SubscriptionSubscribeFn<any, TParent, TContext, TArgs>;
2771
3041
  resolve: SubscriptionResolveFn<TResult, any, TContext, TArgs>;
2772
3042
  }
2773
- type SubscriptionObject<TResult, TKey extends string, TParent, TContext, TArgs> = SubscriptionSubscriberObject<TResult, TKey, TParent, TContext, TArgs> | SubscriptionResolverObject<TResult, TParent, TContext, TArgs>;
2774
- 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>;
2775
- type TypeResolveFn<TTypes, TParent = Record<PropertyKey, never>, TContext = Record<PropertyKey, never>> = (parent: TParent, context: TContext, info: GraphQLResolveInfo) => Maybe<TTypes> | Promise<Maybe<TTypes>>;
2776
- type IsTypeOfResolverFn<T = Record<PropertyKey, never>, TContext = Record<PropertyKey, never>> = (obj: T, context: TContext, info: GraphQLResolveInfo) => boolean | Promise<boolean>;
2777
- type NextResolverFn<T> = () => Promise<T>;
2778
- 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>;
3043
+ export type SubscriptionObject<TResult, TKey extends string, TParent, TContext, TArgs> = SubscriptionSubscriberObject<TResult, TKey, TParent, TContext, TArgs> | SubscriptionResolverObject<TResult, TParent, TContext, TArgs>;
3044
+ 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>;
3045
+ export type TypeResolveFn<TTypes, TParent = Record<PropertyKey, never>, TContext = Record<PropertyKey, never>> = (parent: TParent, context: TContext, info: GraphQLResolveInfo) => Maybe<TTypes> | Promise<Maybe<TTypes>>;
3046
+ export type IsTypeOfResolverFn<T = Record<PropertyKey, never>, TContext = Record<PropertyKey, never>> = (obj: T, context: TContext, info: GraphQLResolveInfo) => boolean | Promise<boolean>;
3047
+ export type NextResolverFn<T> = () => Promise<T>;
3048
+ 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>;
2779
3049
  /** Mapping between all available schema types and the resolvers types */
2780
- type ResolversTypes = ResolversObject<{
3050
+ export type ResolversTypes = ResolversObject<{
2781
3051
  Action: ResolverTypeWrapper<Action>;
2782
3052
  ActionCandidateInput: ActionCandidateInput;
2783
3053
  ActionContext: ResolverTypeWrapper<ActionContext>;
@@ -2797,6 +3067,8 @@ type ResolversTypes = ResolversObject<{
2797
3067
  DocumentModelGlobalState: ResolverTypeWrapper<DocumentModelGlobalState>;
2798
3068
  DocumentModelResultPage: ResolverTypeWrapper<DocumentModelResultPage>;
2799
3069
  DocumentOperationsFilterInput: DocumentOperationsFilterInput;
3070
+ DocumentRelationship: ResolverTypeWrapper<DocumentRelationship>;
3071
+ DocumentRelationshipResultPage: ResolverTypeWrapper<DocumentRelationshipResultPage>;
2800
3072
  DocumentWithChildren: ResolverTypeWrapper<DocumentWithChildren>;
2801
3073
  Int: ResolverTypeWrapper<Scalars["Int"]["output"]>;
2802
3074
  JSONObject: ResolverTypeWrapper<Scalars["JSONObject"]["output"]>;
@@ -2839,7 +3111,7 @@ type ResolversTypes = ResolversObject<{
2839
3111
  ViewFilterInput: ViewFilterInput;
2840
3112
  }>;
2841
3113
  /** Mapping between all available schema types and the resolvers parents */
2842
- type ResolversParentTypes = ResolversObject<{
3114
+ export type ResolversParentTypes = ResolversObject<{
2843
3115
  Action: Action;
2844
3116
  ActionCandidateInput: ActionCandidateInput;
2845
3117
  ActionContext: ActionContext;
@@ -2857,6 +3129,8 @@ type ResolversParentTypes = ResolversObject<{
2857
3129
  DocumentModelGlobalState: DocumentModelGlobalState;
2858
3130
  DocumentModelResultPage: DocumentModelResultPage;
2859
3131
  DocumentOperationsFilterInput: DocumentOperationsFilterInput;
3132
+ DocumentRelationship: DocumentRelationship;
3133
+ DocumentRelationshipResultPage: DocumentRelationshipResultPage;
2860
3134
  DocumentWithChildren: DocumentWithChildren;
2861
3135
  Int: Scalars["Int"]["output"];
2862
3136
  JSONObject: Scalars["JSONObject"]["output"];
@@ -2896,7 +3170,7 @@ type ResolversParentTypes = ResolversObject<{
2896
3170
  TouchChannelResult: TouchChannelResult;
2897
3171
  ViewFilterInput: ViewFilterInput;
2898
3172
  }>;
2899
- type ActionResolvers<ContextType = Context, ParentType extends ResolversParentTypes["Action"] = ResolversParentTypes["Action"]> = ResolversObject<{
3173
+ export type ActionResolvers<ContextType = Context, ParentType extends ResolversParentTypes["Action"] = ResolversParentTypes["Action"]> = ResolversObject<{
2900
3174
  context?: Resolver<Maybe<ResolversTypes["ActionContext"]>, ParentType, ContextType>;
2901
3175
  id?: Resolver<ResolversTypes["String"], ParentType, ContextType>;
2902
3176
  input?: Resolver<ResolversTypes["JSONObject"], ParentType, ContextType>;
@@ -2904,27 +3178,27 @@ type ActionResolvers<ContextType = Context, ParentType extends ResolversParentTy
2904
3178
  timestampUtcMs?: Resolver<ResolversTypes["String"], ParentType, ContextType>;
2905
3179
  type?: Resolver<ResolversTypes["String"], ParentType, ContextType>;
2906
3180
  }>;
2907
- type ActionContextResolvers<ContextType = Context, ParentType extends ResolversParentTypes["ActionContext"] = ResolversParentTypes["ActionContext"]> = ResolversObject<{
3181
+ export type ActionContextResolvers<ContextType = Context, ParentType extends ResolversParentTypes["ActionContext"] = ResolversParentTypes["ActionContext"]> = ResolversObject<{
2908
3182
  signer?: Resolver<Maybe<ResolversTypes["ReactorSigner"]>, ParentType, ContextType>;
2909
3183
  }>;
2910
- type ActionEvaluationResolvers<ContextType = Context, ParentType extends ResolversParentTypes["ActionEvaluation"] = ResolversParentTypes["ActionEvaluation"]> = ResolversObject<{
3184
+ export type ActionEvaluationResolvers<ContextType = Context, ParentType extends ResolversParentTypes["ActionEvaluation"] = ResolversParentTypes["ActionEvaluation"]> = ResolversObject<{
2911
3185
  decision?: Resolver<ResolversTypes["AuthDecision"], ParentType, ContextType>;
2912
3186
  reason?: Resolver<Maybe<ResolversTypes["String"]>, ParentType, ContextType>;
2913
3187
  }>;
2914
- type ActionEvaluationsResolvers<ContextType = Context, ParentType extends ResolversParentTypes["ActionEvaluations"] = ResolversParentTypes["ActionEvaluations"]> = ResolversObject<{
3188
+ export type ActionEvaluationsResolvers<ContextType = Context, ParentType extends ResolversParentTypes["ActionEvaluations"] = ResolversParentTypes["ActionEvaluations"]> = ResolversObject<{
2915
3189
  allAllowed?: Resolver<ResolversTypes["Boolean"], ParentType, ContextType>;
2916
3190
  allDenied?: Resolver<ResolversTypes["Boolean"], ParentType, ContextType>;
2917
3191
  anyAllowed?: Resolver<ResolversTypes["Boolean"], ParentType, ContextType>;
2918
3192
  anyDenied?: Resolver<ResolversTypes["Boolean"], ParentType, ContextType>;
2919
3193
  evaluations?: Resolver<ReadonlyArray<ResolversTypes["ActionEvaluation"]>, ParentType, ContextType>;
2920
3194
  }>;
2921
- type ChannelMetaResolvers<ContextType = Context, ParentType extends ResolversParentTypes["ChannelMeta"] = ResolversParentTypes["ChannelMeta"]> = ResolversObject<{
3195
+ export type ChannelMetaResolvers<ContextType = Context, ParentType extends ResolversParentTypes["ChannelMeta"] = ResolversParentTypes["ChannelMeta"]> = ResolversObject<{
2922
3196
  id?: Resolver<ResolversTypes["String"], ParentType, ContextType>;
2923
3197
  }>;
2924
- interface DateTimeScalarConfig extends GraphQLScalarTypeConfig<ResolversTypes["DateTime"], any> {
3198
+ export interface DateTimeScalarConfig extends GraphQLScalarTypeConfig<ResolversTypes["DateTime"], any> {
2925
3199
  name: "DateTime";
2926
3200
  }
2927
- type DeadLetterInfoResolvers<ContextType = Context, ParentType extends ResolversParentTypes["DeadLetterInfo"] = ResolversParentTypes["DeadLetterInfo"]> = ResolversObject<{
3201
+ export type DeadLetterInfoResolvers<ContextType = Context, ParentType extends ResolversParentTypes["DeadLetterInfo"] = ResolversParentTypes["DeadLetterInfo"]> = ResolversObject<{
2928
3202
  branch?: Resolver<ResolversTypes["String"], ParentType, ContextType>;
2929
3203
  documentId?: Resolver<ResolversTypes["String"], ParentType, ContextType>;
2930
3204
  error?: Resolver<ResolversTypes["String"], ParentType, ContextType>;
@@ -2933,43 +3207,56 @@ type DeadLetterInfoResolvers<ContextType = Context, ParentType extends Resolvers
2933
3207
  operationCount?: Resolver<ResolversTypes["Int"], ParentType, ContextType>;
2934
3208
  scopes?: Resolver<ReadonlyArray<ResolversTypes["String"]>, ParentType, ContextType>;
2935
3209
  }>;
2936
- type DocumentChangeContextResolvers<ContextType = Context, ParentType extends ResolversParentTypes["DocumentChangeContext"] = ResolversParentTypes["DocumentChangeContext"]> = ResolversObject<{
3210
+ export type DocumentChangeContextResolvers<ContextType = Context, ParentType extends ResolversParentTypes["DocumentChangeContext"] = ResolversParentTypes["DocumentChangeContext"]> = ResolversObject<{
2937
3211
  childId?: Resolver<Maybe<ResolversTypes["String"]>, ParentType, ContextType>;
2938
3212
  parentId?: Resolver<Maybe<ResolversTypes["String"]>, ParentType, ContextType>;
2939
3213
  }>;
2940
- type DocumentChangeEventResolvers<ContextType = Context, ParentType extends ResolversParentTypes["DocumentChangeEvent"] = ResolversParentTypes["DocumentChangeEvent"]> = ResolversObject<{
3214
+ export type DocumentChangeEventResolvers<ContextType = Context, ParentType extends ResolversParentTypes["DocumentChangeEvent"] = ResolversParentTypes["DocumentChangeEvent"]> = ResolversObject<{
2941
3215
  context?: Resolver<Maybe<ResolversTypes["DocumentChangeContext"]>, ParentType, ContextType>;
2942
3216
  documents?: Resolver<ReadonlyArray<ResolversTypes["PHDocument"]>, ParentType, ContextType>;
2943
3217
  type?: Resolver<ResolversTypes["DocumentChangeType"], ParentType, ContextType>;
2944
3218
  }>;
2945
- type DocumentModelGlobalStateResolvers<ContextType = Context, ParentType extends ResolversParentTypes["DocumentModelGlobalState"] = ResolversParentTypes["DocumentModelGlobalState"]> = ResolversObject<{
3219
+ export type DocumentModelGlobalStateResolvers<ContextType = Context, ParentType extends ResolversParentTypes["DocumentModelGlobalState"] = ResolversParentTypes["DocumentModelGlobalState"]> = ResolversObject<{
2946
3220
  id?: Resolver<ResolversTypes["String"], ParentType, ContextType>;
2947
3221
  name?: Resolver<ResolversTypes["String"], ParentType, ContextType>;
2948
3222
  namespace?: Resolver<Maybe<ResolversTypes["String"]>, ParentType, ContextType>;
2949
3223
  specification?: Resolver<ResolversTypes["JSONObject"], ParentType, ContextType>;
2950
3224
  version?: Resolver<Maybe<ResolversTypes["String"]>, ParentType, ContextType>;
2951
3225
  }>;
2952
- type DocumentModelResultPageResolvers<ContextType = Context, ParentType extends ResolversParentTypes["DocumentModelResultPage"] = ResolversParentTypes["DocumentModelResultPage"]> = ResolversObject<{
3226
+ export type DocumentModelResultPageResolvers<ContextType = Context, ParentType extends ResolversParentTypes["DocumentModelResultPage"] = ResolversParentTypes["DocumentModelResultPage"]> = ResolversObject<{
2953
3227
  cursor?: Resolver<Maybe<ResolversTypes["String"]>, ParentType, ContextType>;
2954
3228
  hasNextPage?: Resolver<ResolversTypes["Boolean"], ParentType, ContextType>;
2955
3229
  hasPreviousPage?: Resolver<ResolversTypes["Boolean"], ParentType, ContextType>;
2956
3230
  items?: Resolver<ReadonlyArray<ResolversTypes["DocumentModelGlobalState"]>, ParentType, ContextType>;
2957
- totalCount?: Resolver<ResolversTypes["Int"], ParentType, ContextType>;
2958
3231
  }>;
2959
- type DocumentWithChildrenResolvers<ContextType = Context, ParentType extends ResolversParentTypes["DocumentWithChildren"] = ResolversParentTypes["DocumentWithChildren"]> = ResolversObject<{
3232
+ export type DocumentRelationshipResolvers<ContextType = Context, ParentType extends ResolversParentTypes["DocumentRelationship"] = ResolversParentTypes["DocumentRelationship"]> = ResolversObject<{
3233
+ createdAt?: Resolver<ResolversTypes["DateTime"], ParentType, ContextType>;
3234
+ metadata?: Resolver<Maybe<ResolversTypes["JSONObject"]>, ParentType, ContextType>;
3235
+ relationshipType?: Resolver<ResolversTypes["String"], ParentType, ContextType>;
3236
+ sourceId?: Resolver<ResolversTypes["String"], ParentType, ContextType>;
3237
+ targetId?: Resolver<ResolversTypes["String"], ParentType, ContextType>;
3238
+ updatedAt?: Resolver<ResolversTypes["DateTime"], ParentType, ContextType>;
3239
+ }>;
3240
+ export type DocumentRelationshipResultPageResolvers<ContextType = Context, ParentType extends ResolversParentTypes["DocumentRelationshipResultPage"] = ResolversParentTypes["DocumentRelationshipResultPage"]> = ResolversObject<{
3241
+ cursor?: Resolver<Maybe<ResolversTypes["String"]>, ParentType, ContextType>;
3242
+ hasNextPage?: Resolver<ResolversTypes["Boolean"], ParentType, ContextType>;
3243
+ hasPreviousPage?: Resolver<ResolversTypes["Boolean"], ParentType, ContextType>;
3244
+ items?: Resolver<ReadonlyArray<ResolversTypes["DocumentRelationship"]>, ParentType, ContextType>;
3245
+ }>;
3246
+ export type DocumentWithChildrenResolvers<ContextType = Context, ParentType extends ResolversParentTypes["DocumentWithChildren"] = ResolversParentTypes["DocumentWithChildren"]> = ResolversObject<{
2960
3247
  childIds?: Resolver<ReadonlyArray<ResolversTypes["String"]>, ParentType, ContextType>;
2961
3248
  document?: Resolver<ResolversTypes["PHDocument"], ParentType, ContextType>;
2962
3249
  }>;
2963
- interface JsonObjectScalarConfig extends GraphQLScalarTypeConfig<ResolversTypes["JSONObject"], any> {
3250
+ export interface JsonObjectScalarConfig extends GraphQLScalarTypeConfig<ResolversTypes["JSONObject"], any> {
2964
3251
  name: "JSONObject";
2965
3252
  }
2966
- type JobChangeEventResolvers<ContextType = Context, ParentType extends ResolversParentTypes["JobChangeEvent"] = ResolversParentTypes["JobChangeEvent"]> = ResolversObject<{
3253
+ export type JobChangeEventResolvers<ContextType = Context, ParentType extends ResolversParentTypes["JobChangeEvent"] = ResolversParentTypes["JobChangeEvent"]> = ResolversObject<{
2967
3254
  error?: Resolver<Maybe<ResolversTypes["String"]>, ParentType, ContextType>;
2968
3255
  jobId?: Resolver<ResolversTypes["String"], ParentType, ContextType>;
2969
- result?: Resolver<ResolversTypes["JSONObject"], ParentType, ContextType>;
3256
+ result?: Resolver<Maybe<ResolversTypes["JSONObject"]>, ParentType, ContextType>;
2970
3257
  status?: Resolver<ResolversTypes["String"], ParentType, ContextType>;
2971
3258
  }>;
2972
- type JobInfoResolvers<ContextType = Context, ParentType extends ResolversParentTypes["JobInfo"] = ResolversParentTypes["JobInfo"]> = ResolversObject<{
3259
+ export type JobInfoResolvers<ContextType = Context, ParentType extends ResolversParentTypes["JobInfo"] = ResolversParentTypes["JobInfo"]> = ResolversObject<{
2973
3260
  completedAt?: Resolver<Maybe<ResolversTypes["DateTime"]>, ParentType, ContextType>;
2974
3261
  createdAt?: Resolver<ResolversTypes["DateTime"], ParentType, ContextType>;
2975
3262
  error?: Resolver<Maybe<ResolversTypes["String"]>, ParentType, ContextType>;
@@ -2977,11 +3264,11 @@ type JobInfoResolvers<ContextType = Context, ParentType extends ResolversParentT
2977
3264
  result?: Resolver<Maybe<ResolversTypes["JSONObject"]>, ParentType, ContextType>;
2978
3265
  status?: Resolver<ResolversTypes["String"], ParentType, ContextType>;
2979
3266
  }>;
2980
- type MoveRelationshipResultResolvers<ContextType = Context, ParentType extends ResolversParentTypes["MoveRelationshipResult"] = ResolversParentTypes["MoveRelationshipResult"]> = ResolversObject<{
3267
+ export type MoveRelationshipResultResolvers<ContextType = Context, ParentType extends ResolversParentTypes["MoveRelationshipResult"] = ResolversParentTypes["MoveRelationshipResult"]> = ResolversObject<{
2981
3268
  source?: Resolver<ResolversTypes["PHDocument"], ParentType, ContextType>;
2982
3269
  target?: Resolver<ResolversTypes["PHDocument"], ParentType, ContextType>;
2983
3270
  }>;
2984
- type MutationResolvers<ContextType = Context, ParentType extends ResolversParentTypes["Mutation"] = ResolversParentTypes["Mutation"]> = ResolversObject<{
3271
+ export type MutationResolvers<ContextType = Context, ParentType extends ResolversParentTypes["Mutation"] = ResolversParentTypes["Mutation"]> = ResolversObject<{
2985
3272
  addRelationship?: Resolver<ResolversTypes["PHDocument"], ParentType, ContextType, RequireFields<MutationAddRelationshipArgs, "relationshipType" | "sourceIdentifier" | "targetIdentifier">>;
2986
3273
  createDocument?: Resolver<ResolversTypes["PHDocument"], ParentType, ContextType, RequireFields<MutationCreateDocumentArgs, "document">>;
2987
3274
  createEmptyDocument?: Resolver<ResolversTypes["PHDocument"], ParentType, ContextType, RequireFields<MutationCreateEmptyDocumentArgs, "documentType">>;
@@ -2997,19 +3284,20 @@ type MutationResolvers<ContextType = Context, ParentType extends ResolversParent
2997
3284
  renameDocument?: Resolver<ResolversTypes["PHDocument"], ParentType, ContextType, RequireFields<MutationRenameDocumentArgs, "documentIdentifier" | "name">>;
2998
3285
  setPreferredEditor?: Resolver<ResolversTypes["PHDocument"], ParentType, ContextType, RequireFields<MutationSetPreferredEditorArgs, "documentIdentifier">>;
2999
3286
  touchChannel?: Resolver<ResolversTypes["TouchChannelResult"], ParentType, ContextType, RequireFields<MutationTouchChannelArgs, "input">>;
3287
+ updateRelationship?: Resolver<ResolversTypes["PHDocument"], ParentType, ContextType, RequireFields<MutationUpdateRelationshipArgs, "relationshipType" | "sourceIdentifier" | "targetIdentifier">>;
3000
3288
  }>;
3001
- type OperationContextResolvers<ContextType = Context, ParentType extends ResolversParentTypes["OperationContext"] = ResolversParentTypes["OperationContext"]> = ResolversObject<{
3289
+ export type OperationContextResolvers<ContextType = Context, ParentType extends ResolversParentTypes["OperationContext"] = ResolversParentTypes["OperationContext"]> = ResolversObject<{
3002
3290
  branch?: Resolver<ResolversTypes["String"], ParentType, ContextType>;
3003
3291
  documentId?: Resolver<ResolversTypes["String"], ParentType, ContextType>;
3004
3292
  documentType?: Resolver<ResolversTypes["String"], ParentType, ContextType>;
3005
3293
  ordinal?: Resolver<ResolversTypes["Int"], ParentType, ContextType>;
3006
3294
  scope?: Resolver<ResolversTypes["String"], ParentType, ContextType>;
3007
3295
  }>;
3008
- type OperationWithContextResolvers<ContextType = Context, ParentType extends ResolversParentTypes["OperationWithContext"] = ResolversParentTypes["OperationWithContext"]> = ResolversObject<{
3296
+ export type OperationWithContextResolvers<ContextType = Context, ParentType extends ResolversParentTypes["OperationWithContext"] = ResolversParentTypes["OperationWithContext"]> = ResolversObject<{
3009
3297
  context?: Resolver<ResolversTypes["OperationContext"], ParentType, ContextType>;
3010
3298
  operation?: Resolver<ResolversTypes["ReactorOperation"], ParentType, ContextType>;
3011
3299
  }>;
3012
- type PhDocumentResolvers<ContextType = Context, ParentType extends ResolversParentTypes["PHDocument"] = ResolversParentTypes["PHDocument"]> = ResolversObject<{
3300
+ export type PhDocumentResolvers<ContextType = Context, ParentType extends ResolversParentTypes["PHDocument"] = ResolversParentTypes["PHDocument"]> = ResolversObject<{
3013
3301
  createdAtUtcIso?: Resolver<ResolversTypes["DateTime"], ParentType, ContextType>;
3014
3302
  documentType?: Resolver<ResolversTypes["String"], ParentType, ContextType>;
3015
3303
  id?: Resolver<ResolversTypes["String"], ParentType, ContextType>;
@@ -3021,31 +3309,32 @@ type PhDocumentResolvers<ContextType = Context, ParentType extends ResolversPare
3021
3309
  slug?: Resolver<Maybe<ResolversTypes["String"]>, ParentType, ContextType>;
3022
3310
  state?: Resolver<ResolversTypes["JSONObject"], ParentType, ContextType>;
3023
3311
  }>;
3024
- type PhDocumentResultPageResolvers<ContextType = Context, ParentType extends ResolversParentTypes["PHDocumentResultPage"] = ResolversParentTypes["PHDocumentResultPage"]> = ResolversObject<{
3312
+ export type PhDocumentResultPageResolvers<ContextType = Context, ParentType extends ResolversParentTypes["PHDocumentResultPage"] = ResolversParentTypes["PHDocumentResultPage"]> = ResolversObject<{
3025
3313
  cursor?: Resolver<Maybe<ResolversTypes["String"]>, ParentType, ContextType>;
3026
3314
  hasNextPage?: Resolver<ResolversTypes["Boolean"], ParentType, ContextType>;
3027
3315
  hasPreviousPage?: Resolver<ResolversTypes["Boolean"], ParentType, ContextType>;
3028
3316
  items?: Resolver<ReadonlyArray<ResolversTypes["PHDocument"]>, ParentType, ContextType>;
3029
- totalCount?: Resolver<ResolversTypes["Int"], ParentType, ContextType>;
3030
3317
  }>;
3031
- type PollSyncEnvelopesResultResolvers<ContextType = Context, ParentType extends ResolversParentTypes["PollSyncEnvelopesResult"] = ResolversParentTypes["PollSyncEnvelopesResult"]> = ResolversObject<{
3318
+ export type PollSyncEnvelopesResultResolvers<ContextType = Context, ParentType extends ResolversParentTypes["PollSyncEnvelopesResult"] = ResolversParentTypes["PollSyncEnvelopesResult"]> = ResolversObject<{
3032
3319
  ackOrdinal?: Resolver<ResolversTypes["Int"], ParentType, ContextType>;
3033
3320
  deadLetters?: Resolver<ReadonlyArray<ResolversTypes["DeadLetterInfo"]>, ParentType, ContextType>;
3034
3321
  envelopes?: Resolver<ReadonlyArray<ResolversTypes["SyncEnvelope"]>, ParentType, ContextType>;
3035
3322
  hasMore?: Resolver<ResolversTypes["Boolean"], ParentType, ContextType>;
3036
3323
  }>;
3037
- type QueryResolvers<ContextType = Context, ParentType extends ResolversParentTypes["Query"] = ResolversParentTypes["Query"]> = ResolversObject<{
3324
+ export type QueryResolvers<ContextType = Context, ParentType extends ResolversParentTypes["Query"] = ResolversParentTypes["Query"]> = ResolversObject<{
3038
3325
  document?: Resolver<Maybe<ResolversTypes["DocumentWithChildren"]>, ParentType, ContextType, RequireFields<QueryDocumentArgs, "identifier">>;
3326
+ documentIncomingRelationshipEdges?: Resolver<ResolversTypes["DocumentRelationshipResultPage"], ParentType, ContextType, RequireFields<QueryDocumentIncomingRelationshipEdgesArgs, "targetIdentifier">>;
3039
3327
  documentIncomingRelationships?: Resolver<ResolversTypes["PHDocumentResultPage"], ParentType, ContextType, RequireFields<QueryDocumentIncomingRelationshipsArgs, "relationshipType" | "targetIdentifier">>;
3040
3328
  documentModels?: Resolver<ResolversTypes["DocumentModelResultPage"], ParentType, ContextType, Partial<QueryDocumentModelsArgs>>;
3041
3329
  documentOperations?: Resolver<ResolversTypes["ReactorOperationResultPage"], ParentType, ContextType, RequireFields<QueryDocumentOperationsArgs, "filter">>;
3330
+ documentOutgoingRelationshipEdges?: Resolver<ResolversTypes["DocumentRelationshipResultPage"], ParentType, ContextType, RequireFields<QueryDocumentOutgoingRelationshipEdgesArgs, "sourceIdentifier">>;
3042
3331
  documentOutgoingRelationships?: Resolver<ResolversTypes["PHDocumentResultPage"], ParentType, ContextType, RequireFields<QueryDocumentOutgoingRelationshipsArgs, "relationshipType" | "sourceIdentifier">>;
3043
3332
  evaluateActions?: Resolver<ResolversTypes["ActionEvaluations"], ParentType, ContextType, RequireFields<QueryEvaluateActionsArgs, "candidates" | "documentIdentifier">>;
3044
3333
  findDocuments?: Resolver<ResolversTypes["PHDocumentResultPage"], ParentType, ContextType, Partial<QueryFindDocumentsArgs>>;
3045
3334
  jobStatus?: Resolver<Maybe<ResolversTypes["JobInfo"]>, ParentType, ContextType, RequireFields<QueryJobStatusArgs, "jobId">>;
3046
3335
  pollSyncEnvelopes?: Resolver<ResolversTypes["PollSyncEnvelopesResult"], ParentType, ContextType, RequireFields<QueryPollSyncEnvelopesArgs, "channelId" | "outboxAck" | "outboxLatest">>;
3047
3336
  }>;
3048
- type ReactorOperationResolvers<ContextType = Context, ParentType extends ResolversParentTypes["ReactorOperation"] = ResolversParentTypes["ReactorOperation"]> = ResolversObject<{
3337
+ export type ReactorOperationResolvers<ContextType = Context, ParentType extends ResolversParentTypes["ReactorOperation"] = ResolversParentTypes["ReactorOperation"]> = ResolversObject<{
3049
3338
  action?: Resolver<ResolversTypes["Action"], ParentType, ContextType>;
3050
3339
  deniedReason?: Resolver<Maybe<ResolversTypes["String"]>, ParentType, ContextType>;
3051
3340
  error?: Resolver<Maybe<ResolversTypes["String"]>, ParentType, ContextType>;
@@ -3055,41 +3344,40 @@ type ReactorOperationResolvers<ContextType = Context, ParentType extends Resolve
3055
3344
  skip?: Resolver<ResolversTypes["Int"], ParentType, ContextType>;
3056
3345
  timestampUtcMs?: Resolver<ResolversTypes["String"], ParentType, ContextType>;
3057
3346
  }>;
3058
- type ReactorOperationResultPageResolvers<ContextType = Context, ParentType extends ResolversParentTypes["ReactorOperationResultPage"] = ResolversParentTypes["ReactorOperationResultPage"]> = ResolversObject<{
3347
+ export type ReactorOperationResultPageResolvers<ContextType = Context, ParentType extends ResolversParentTypes["ReactorOperationResultPage"] = ResolversParentTypes["ReactorOperationResultPage"]> = ResolversObject<{
3059
3348
  cursor?: Resolver<Maybe<ResolversTypes["String"]>, ParentType, ContextType>;
3060
3349
  hasNextPage?: Resolver<ResolversTypes["Boolean"], ParentType, ContextType>;
3061
3350
  hasPreviousPage?: Resolver<ResolversTypes["Boolean"], ParentType, ContextType>;
3062
3351
  items?: Resolver<ReadonlyArray<ResolversTypes["ReactorOperation"]>, ParentType, ContextType>;
3063
- totalCount?: Resolver<ResolversTypes["Int"], ParentType, ContextType>;
3064
3352
  }>;
3065
- type ReactorSignerResolvers<ContextType = Context, ParentType extends ResolversParentTypes["ReactorSigner"] = ResolversParentTypes["ReactorSigner"]> = ResolversObject<{
3353
+ export type ReactorSignerResolvers<ContextType = Context, ParentType extends ResolversParentTypes["ReactorSigner"] = ResolversParentTypes["ReactorSigner"]> = ResolversObject<{
3066
3354
  app?: Resolver<Maybe<ResolversTypes["ReactorSignerApp"]>, ParentType, ContextType>;
3067
3355
  signatures?: Resolver<ReadonlyArray<ResolversTypes["String"]>, ParentType, ContextType>;
3068
3356
  user?: Resolver<Maybe<ResolversTypes["ReactorSignerUser"]>, ParentType, ContextType>;
3069
3357
  }>;
3070
- type ReactorSignerAppResolvers<ContextType = Context, ParentType extends ResolversParentTypes["ReactorSignerApp"] = ResolversParentTypes["ReactorSignerApp"]> = ResolversObject<{
3358
+ export type ReactorSignerAppResolvers<ContextType = Context, ParentType extends ResolversParentTypes["ReactorSignerApp"] = ResolversParentTypes["ReactorSignerApp"]> = ResolversObject<{
3071
3359
  key?: Resolver<ResolversTypes["String"], ParentType, ContextType>;
3072
3360
  name?: Resolver<ResolversTypes["String"], ParentType, ContextType>;
3073
3361
  }>;
3074
- type ReactorSignerUserResolvers<ContextType = Context, ParentType extends ResolversParentTypes["ReactorSignerUser"] = ResolversParentTypes["ReactorSignerUser"]> = ResolversObject<{
3362
+ export type ReactorSignerUserResolvers<ContextType = Context, ParentType extends ResolversParentTypes["ReactorSignerUser"] = ResolversParentTypes["ReactorSignerUser"]> = ResolversObject<{
3075
3363
  address?: Resolver<ResolversTypes["String"], ParentType, ContextType>;
3076
3364
  chainId?: Resolver<ResolversTypes["Int"], ParentType, ContextType>;
3077
3365
  networkId?: Resolver<ResolversTypes["String"], ParentType, ContextType>;
3078
3366
  }>;
3079
- type RemoteCursorResolvers<ContextType = Context, ParentType extends ResolversParentTypes["RemoteCursor"] = ResolversParentTypes["RemoteCursor"]> = ResolversObject<{
3367
+ export type RemoteCursorResolvers<ContextType = Context, ParentType extends ResolversParentTypes["RemoteCursor"] = ResolversParentTypes["RemoteCursor"]> = ResolversObject<{
3080
3368
  cursorOrdinal?: Resolver<ResolversTypes["Int"], ParentType, ContextType>;
3081
3369
  lastSyncedAtUtcMs?: Resolver<Maybe<ResolversTypes["String"]>, ParentType, ContextType>;
3082
3370
  remoteName?: Resolver<ResolversTypes["String"], ParentType, ContextType>;
3083
3371
  }>;
3084
- type RevisionResolvers<ContextType = Context, ParentType extends ResolversParentTypes["Revision"] = ResolversParentTypes["Revision"]> = ResolversObject<{
3372
+ export type RevisionResolvers<ContextType = Context, ParentType extends ResolversParentTypes["Revision"] = ResolversParentTypes["Revision"]> = ResolversObject<{
3085
3373
  revision?: Resolver<ResolversTypes["Int"], ParentType, ContextType>;
3086
3374
  scope?: Resolver<ResolversTypes["String"], ParentType, ContextType>;
3087
3375
  }>;
3088
- type SubscriptionResolvers<ContextType = Context, ParentType extends ResolversParentTypes["Subscription"] = ResolversParentTypes["Subscription"]> = ResolversObject<{
3376
+ export type SubscriptionResolvers<ContextType = Context, ParentType extends ResolversParentTypes["Subscription"] = ResolversParentTypes["Subscription"]> = ResolversObject<{
3089
3377
  documentChanges?: SubscriptionResolver<ResolversTypes["DocumentChangeEvent"], "documentChanges", ParentType, ContextType, Partial<SubscriptionDocumentChangesArgs>>;
3090
3378
  jobChanges?: SubscriptionResolver<ResolversTypes["JobChangeEvent"], "jobChanges", ParentType, ContextType, RequireFields<SubscriptionJobChangesArgs, "jobId">>;
3091
3379
  }>;
3092
- type SyncEnvelopeResolvers<ContextType = Context, ParentType extends ResolversParentTypes["SyncEnvelope"] = ResolversParentTypes["SyncEnvelope"]> = ResolversObject<{
3380
+ export type SyncEnvelopeResolvers<ContextType = Context, ParentType extends ResolversParentTypes["SyncEnvelope"] = ResolversParentTypes["SyncEnvelope"]> = ResolversObject<{
3093
3381
  channelMeta?: Resolver<ResolversTypes["ChannelMeta"], ParentType, ContextType>;
3094
3382
  cursor?: Resolver<Maybe<ResolversTypes["RemoteCursor"]>, ParentType, ContextType>;
3095
3383
  dependsOn?: Resolver<Maybe<ReadonlyArray<ResolversTypes["String"]>>, ParentType, ContextType>;
@@ -3097,11 +3385,11 @@ type SyncEnvelopeResolvers<ContextType = Context, ParentType extends ResolversPa
3097
3385
  operations?: Resolver<Maybe<ReadonlyArray<ResolversTypes["OperationWithContext"]>>, ParentType, ContextType>;
3098
3386
  type?: Resolver<ResolversTypes["SyncEnvelopeType"], ParentType, ContextType>;
3099
3387
  }>;
3100
- type TouchChannelResultResolvers<ContextType = Context, ParentType extends ResolversParentTypes["TouchChannelResult"] = ResolversParentTypes["TouchChannelResult"]> = ResolversObject<{
3388
+ export type TouchChannelResultResolvers<ContextType = Context, ParentType extends ResolversParentTypes["TouchChannelResult"] = ResolversParentTypes["TouchChannelResult"]> = ResolversObject<{
3101
3389
  ackOrdinal?: Resolver<ResolversTypes["Int"], ParentType, ContextType>;
3102
3390
  success?: Resolver<ResolversTypes["Boolean"], ParentType, ContextType>;
3103
3391
  }>;
3104
- type Resolvers<ContextType = Context> = ResolversObject<{
3392
+ export type Resolvers<ContextType = Context> = ResolversObject<{
3105
3393
  Action?: ActionResolvers<ContextType>;
3106
3394
  ActionContext?: ActionContextResolvers<ContextType>;
3107
3395
  ActionEvaluation?: ActionEvaluationResolvers<ContextType>;
@@ -3113,6 +3401,8 @@ type Resolvers<ContextType = Context> = ResolversObject<{
3113
3401
  DocumentChangeEvent?: DocumentChangeEventResolvers<ContextType>;
3114
3402
  DocumentModelGlobalState?: DocumentModelGlobalStateResolvers<ContextType>;
3115
3403
  DocumentModelResultPage?: DocumentModelResultPageResolvers<ContextType>;
3404
+ DocumentRelationship?: DocumentRelationshipResolvers<ContextType>;
3405
+ DocumentRelationshipResultPage?: DocumentRelationshipResultPageResolvers<ContextType>;
3116
3406
  DocumentWithChildren?: DocumentWithChildrenResolvers<ContextType>;
3117
3407
  JSONObject?: GraphQLScalarType;
3118
3408
  JobChangeEvent?: JobChangeEventResolvers<ContextType>;
@@ -3136,66 +3426,72 @@ type Resolvers<ContextType = Context> = ResolversObject<{
3136
3426
  SyncEnvelope?: SyncEnvelopeResolvers<ContextType>;
3137
3427
  TouchChannelResult?: TouchChannelResultResolvers<ContextType>;
3138
3428
  }>;
3139
- type Properties<T> = Required<{ [K in keyof T]: z$1.ZodType<T[K]> }>;
3429
+ type Properties<T> = Required<{ [K in keyof T]: z$1.ZodType<T[K]>; }>;
3140
3430
  type definedNonNullAny = {};
3141
- declare const isDefinedNonNullAny: (v: any) => v is definedNonNullAny;
3142
- declare const definedNonNullAnySchema: z$1.ZodAny & z$1.ZodType<definedNonNullAny, any, z$1.core.$ZodTypeInternals<definedNonNullAny, any>>;
3143
- declare const AuthDecisionSchema: z$1.ZodEnum<typeof AuthDecision>;
3144
- declare const DocumentChangeTypeSchema: z$1.ZodEnum<typeof DocumentChangeType>;
3145
- declare const PropagationModeSchema: z$1.ZodEnum<typeof PropagationMode>;
3146
- declare const SyncEnvelopeTypeSchema: z$1.ZodEnum<typeof SyncEnvelopeType>;
3147
- declare function ActionCandidateInputSchema(): z$1.ZodObject<Properties<ActionCandidateInput>>;
3148
- declare function ActionContextInputSchema(): z$1.ZodObject<Properties<ActionContextInput>>;
3149
- declare function ActionInputSchema(): z$1.ZodObject<Properties<ActionInput>>;
3150
- declare function ChannelMetaInputSchema(): z$1.ZodObject<Properties<ChannelMetaInput>>;
3151
- declare function DocumentOperationsFilterInputSchema(): z$1.ZodObject<Properties<DocumentOperationsFilterInput>>;
3152
- declare function OperationContextInputSchema(): z$1.ZodObject<Properties<OperationContextInput>>;
3153
- declare function OperationInputSchema(): z$1.ZodObject<Properties<OperationInput>>;
3154
- declare function OperationWithContextInputSchema(): z$1.ZodObject<Properties<OperationWithContextInput>>;
3155
- declare function OperationsFilterInputSchema(): z$1.ZodObject<Properties<OperationsFilterInput>>;
3156
- declare function PagingInputSchema(): z$1.ZodObject<Properties<PagingInput>>;
3157
- declare function ReactorSignerAppInputSchema(): z$1.ZodObject<Properties<ReactorSignerAppInput>>;
3158
- declare function ReactorSignerInputSchema(): z$1.ZodObject<Properties<ReactorSignerInput>>;
3159
- declare function ReactorSignerUserInputSchema(): z$1.ZodObject<Properties<ReactorSignerUserInput>>;
3160
- declare function RemoteCursorInputSchema(): z$1.ZodObject<Properties<RemoteCursorInput>>;
3161
- declare function RemoteFilterInputSchema(): z$1.ZodObject<Properties<RemoteFilterInput>>;
3162
- declare function SearchFilterInputSchema(): z$1.ZodObject<Properties<SearchFilterInput>>;
3163
- declare function SyncEnvelopeInputSchema(): z$1.ZodObject<Properties<SyncEnvelopeInput>>;
3164
- declare function TouchChannelInputSchema(): z$1.ZodObject<Properties<TouchChannelInput>>;
3165
- declare function ViewFilterInputSchema(): z$1.ZodObject<Properties<ViewFilterInput>>;
3166
- declare const PhDocumentFieldsFragmentDoc: DocumentNode;
3167
- declare const GetDocumentModelsDocument: DocumentNode;
3168
- declare const GetDocumentDocument: DocumentNode;
3169
- declare const GetDocumentWithOperationsDocument: DocumentNode;
3170
- declare const GetDocumentOutgoingRelationshipsDocument: DocumentNode;
3171
- declare const GetDocumentIncomingRelationshipsDocument: DocumentNode;
3172
- declare const FindDocumentsDocument: DocumentNode;
3173
- declare const GetDocumentOperationsDocument: DocumentNode;
3174
- declare const GetJobStatusDocument: DocumentNode;
3175
- declare const EvaluateActionsDocument: DocumentNode;
3176
- declare const CreateDocumentDocument: DocumentNode;
3177
- declare const CreateEmptyDocumentDocument: DocumentNode;
3178
- declare const MutateDocumentDocument: DocumentNode;
3179
- declare const MutateDocumentAsyncDocument: DocumentNode;
3180
- declare const RenameDocumentDocument: DocumentNode;
3181
- declare const SetPreferredEditorDocument: DocumentNode;
3182
- declare const AddRelationshipDocument: DocumentNode;
3183
- declare const RemoveRelationshipDocument: DocumentNode;
3184
- declare const MoveRelationshipDocument: DocumentNode;
3185
- declare const DeleteDocumentDocument: DocumentNode;
3186
- declare const DeleteDocumentsDocument: DocumentNode;
3187
- declare const DocumentChangesDocument: DocumentNode;
3188
- declare const JobChangesDocument: DocumentNode;
3189
- declare const PollSyncEnvelopesDocument: DocumentNode;
3190
- declare const TouchChannelDocument: DocumentNode;
3191
- declare const PushSyncEnvelopesDocument: DocumentNode;
3192
- type Requester<C = {}> = <R, V>(doc: DocumentNode, vars?: V, options?: C) => Promise<R> | AsyncIterable<R>;
3193
- declare function getSdk<C>(requester: Requester<C>): {
3431
+ export declare const isDefinedNonNullAny: (v: any) => v is definedNonNullAny;
3432
+ export declare const definedNonNullAnySchema: z$1.ZodAny & z$1.ZodType<definedNonNullAny, any, z$1.core.$ZodTypeInternals<definedNonNullAny, any>>;
3433
+ export declare const AuthDecisionSchema: z$1.ZodEnum<typeof AuthDecision>;
3434
+ export declare const DocumentChangeTypeSchema: z$1.ZodEnum<typeof DocumentChangeType>;
3435
+ export declare const PropagationModeSchema: z$1.ZodEnum<typeof PropagationMode>;
3436
+ export declare const SyncEnvelopeTypeSchema: z$1.ZodEnum<typeof SyncEnvelopeType>;
3437
+ export declare function ActionCandidateInputSchema(): z$1.ZodObject<Properties<ActionCandidateInput>>;
3438
+ export declare function ActionContextInputSchema(): z$1.ZodObject<Properties<ActionContextInput>>;
3439
+ export declare function ActionInputSchema(): z$1.ZodObject<Properties<ActionInput>>;
3440
+ export declare function ChannelMetaInputSchema(): z$1.ZodObject<Properties<ChannelMetaInput>>;
3441
+ export declare function DocumentOperationsFilterInputSchema(): z$1.ZodObject<Properties<DocumentOperationsFilterInput>>;
3442
+ export declare function OperationContextInputSchema(): z$1.ZodObject<Properties<OperationContextInput>>;
3443
+ export declare function OperationInputSchema(): z$1.ZodObject<Properties<OperationInput>>;
3444
+ export declare function OperationWithContextInputSchema(): z$1.ZodObject<Properties<OperationWithContextInput>>;
3445
+ export declare function OperationsFilterInputSchema(): z$1.ZodObject<Properties<OperationsFilterInput>>;
3446
+ export declare function PagingInputSchema(): z$1.ZodObject<Properties<PagingInput>>;
3447
+ export declare function ReactorSignerAppInputSchema(): z$1.ZodObject<Properties<ReactorSignerAppInput>>;
3448
+ export declare function ReactorSignerInputSchema(): z$1.ZodObject<Properties<ReactorSignerInput>>;
3449
+ export declare function ReactorSignerUserInputSchema(): z$1.ZodObject<Properties<ReactorSignerUserInput>>;
3450
+ export declare function RemoteCursorInputSchema(): z$1.ZodObject<Properties<RemoteCursorInput>>;
3451
+ export declare function RemoteFilterInputSchema(): z$1.ZodObject<Properties<RemoteFilterInput>>;
3452
+ export declare function SearchFilterInputSchema(): z$1.ZodObject<Properties<SearchFilterInput>>;
3453
+ export declare function SyncEnvelopeInputSchema(): z$1.ZodObject<Properties<SyncEnvelopeInput>>;
3454
+ export declare function TouchChannelInputSchema(): z$1.ZodObject<Properties<TouchChannelInput>>;
3455
+ export declare function ViewFilterInputSchema(): z$1.ZodObject<Properties<ViewFilterInput>>;
3456
+ export declare const PhDocumentFieldsFragmentDoc: DocumentNode;
3457
+ export declare const DocumentRelationshipFieldsFragmentDoc: DocumentNode;
3458
+ export declare const GetDocumentModelsDocument: DocumentNode;
3459
+ export declare const GetDocumentDocument: DocumentNode;
3460
+ export declare const GetDocumentWithOperationsDocument: DocumentNode;
3461
+ export declare const GetDocumentOutgoingRelationshipsDocument: DocumentNode;
3462
+ export declare const GetDocumentIncomingRelationshipsDocument: DocumentNode;
3463
+ export declare const GetDocumentOutgoingRelationshipEdgesDocument: DocumentNode;
3464
+ export declare const GetDocumentIncomingRelationshipEdgesDocument: DocumentNode;
3465
+ export declare const FindDocumentsDocument: DocumentNode;
3466
+ export declare const GetDocumentOperationsDocument: DocumentNode;
3467
+ export declare const GetJobStatusDocument: DocumentNode;
3468
+ export declare const EvaluateActionsDocument: DocumentNode;
3469
+ export declare const CreateDocumentDocument: DocumentNode;
3470
+ export declare const CreateEmptyDocumentDocument: DocumentNode;
3471
+ export declare const MutateDocumentDocument: DocumentNode;
3472
+ export declare const MutateDocumentAsyncDocument: DocumentNode;
3473
+ export declare const RenameDocumentDocument: DocumentNode;
3474
+ export declare const SetPreferredEditorDocument: DocumentNode;
3475
+ export declare const AddRelationshipDocument: DocumentNode;
3476
+ export declare const UpdateRelationshipDocument: DocumentNode;
3477
+ export declare const RemoveRelationshipDocument: DocumentNode;
3478
+ export declare const MoveRelationshipDocument: DocumentNode;
3479
+ export declare const DeleteDocumentDocument: DocumentNode;
3480
+ export declare const DeleteDocumentsDocument: DocumentNode;
3481
+ export declare const DocumentChangesDocument: DocumentNode;
3482
+ export declare const JobChangesDocument: DocumentNode;
3483
+ export declare const PollSyncEnvelopesDocument: DocumentNode;
3484
+ export declare const TouchChannelDocument: DocumentNode;
3485
+ export declare const PushSyncEnvelopesDocument: DocumentNode;
3486
+ export type Requester<C = {}> = <R, V>(doc: DocumentNode, vars?: V, options?: C) => Promise<R> | AsyncIterable<R>;
3487
+ export declare function getSdk<C>(requester: Requester<C>): {
3194
3488
  GetDocumentModels(variables?: GetDocumentModelsQueryVariables, options?: C): Promise<GetDocumentModelsQuery>;
3195
3489
  GetDocument(variables: GetDocumentQueryVariables, options?: C): Promise<GetDocumentQuery>;
3196
3490
  GetDocumentWithOperations(variables: GetDocumentWithOperationsQueryVariables, options?: C): Promise<GetDocumentWithOperationsQuery>;
3197
3491
  GetDocumentOutgoingRelationships(variables: GetDocumentOutgoingRelationshipsQueryVariables, options?: C): Promise<GetDocumentOutgoingRelationshipsQuery>;
3198
3492
  GetDocumentIncomingRelationships(variables: GetDocumentIncomingRelationshipsQueryVariables, options?: C): Promise<GetDocumentIncomingRelationshipsQuery>;
3493
+ GetDocumentOutgoingRelationshipEdges(variables: GetDocumentOutgoingRelationshipEdgesQueryVariables, options?: C): Promise<GetDocumentOutgoingRelationshipEdgesQuery>;
3494
+ GetDocumentIncomingRelationshipEdges(variables: GetDocumentIncomingRelationshipEdgesQueryVariables, options?: C): Promise<GetDocumentIncomingRelationshipEdgesQuery>;
3199
3495
  FindDocuments(variables?: FindDocumentsQueryVariables, options?: C): Promise<FindDocumentsQuery>;
3200
3496
  GetDocumentOperations(variables: GetDocumentOperationsQueryVariables, options?: C): Promise<GetDocumentOperationsQuery>;
3201
3497
  GetJobStatus(variables: GetJobStatusQueryVariables, options?: C): Promise<GetJobStatusQuery>;
@@ -3207,6 +3503,7 @@ declare function getSdk<C>(requester: Requester<C>): {
3207
3503
  RenameDocument(variables: RenameDocumentMutationVariables, options?: C): Promise<RenameDocumentMutation>;
3208
3504
  SetPreferredEditor(variables: SetPreferredEditorMutationVariables, options?: C): Promise<SetPreferredEditorMutation>;
3209
3505
  AddRelationship(variables: AddRelationshipMutationVariables, options?: C): Promise<AddRelationshipMutation>;
3506
+ UpdateRelationship(variables: UpdateRelationshipMutationVariables, options?: C): Promise<UpdateRelationshipMutation>;
3210
3507
  RemoveRelationship(variables: RemoveRelationshipMutationVariables, options?: C): Promise<RemoveRelationshipMutation>;
3211
3508
  MoveRelationship(variables: MoveRelationshipMutationVariables, options?: C): Promise<MoveRelationshipMutation>;
3212
3509
  DeleteDocument(variables: DeleteDocumentMutationVariables, options?: C): Promise<DeleteDocumentMutation>;
@@ -3217,13 +3514,13 @@ declare function getSdk<C>(requester: Requester<C>): {
3217
3514
  TouchChannel(variables: TouchChannelMutationVariables, options?: C): Promise<TouchChannelMutation>;
3218
3515
  PushSyncEnvelopes(variables: PushSyncEnvelopesMutationVariables, options?: C): Promise<PushSyncEnvelopesMutation>;
3219
3516
  };
3220
- type Sdk = ReturnType<typeof getSdk>;
3517
+ export type Sdk = ReturnType<typeof getSdk>;
3221
3518
  //#endregion
3222
3519
  //#region src/graphql/reactor/requester.d.ts
3223
3520
  type FetchLike = (input: URL | string, init: RequestInit) => Promise<Response>;
3224
3521
  //#endregion
3225
3522
  //#region src/graphql/reactor/factory.d.ts
3226
- declare function createReactorGraphQLClient(url: string, fetchImpl?: FetchLike, headers?: Record<string, string>): {
3523
+ export declare function createReactorGraphQLClient(url: string, fetchImpl?: FetchLike, headers?: Record<string, string>): {
3227
3524
  GetDocumentModels(variables?: Exact<{
3228
3525
  namespace?: InputMaybe<Scalars["String"]["input"]>;
3229
3526
  paging?: InputMaybe<PagingInput>;
@@ -3250,6 +3547,18 @@ declare function createReactorGraphQLClient(url: string, fetchImpl?: FetchLike,
3250
3547
  view?: InputMaybe<ViewFilterInput>;
3251
3548
  paging?: InputMaybe<PagingInput>;
3252
3549
  }>, options?: {} | undefined): Promise<GetDocumentIncomingRelationshipsQuery>;
3550
+ GetDocumentOutgoingRelationshipEdges(variables: Exact<{
3551
+ sourceIdentifier: Scalars["String"]["input"];
3552
+ relationshipType?: InputMaybe<Scalars["String"]["input"]>;
3553
+ view?: InputMaybe<ViewFilterInput>;
3554
+ paging?: InputMaybe<PagingInput>;
3555
+ }>, options?: {} | undefined): Promise<GetDocumentOutgoingRelationshipEdgesQuery>;
3556
+ GetDocumentIncomingRelationshipEdges(variables: Exact<{
3557
+ targetIdentifier: Scalars["String"]["input"];
3558
+ relationshipType?: InputMaybe<Scalars["String"]["input"]>;
3559
+ view?: InputMaybe<ViewFilterInput>;
3560
+ paging?: InputMaybe<PagingInput>;
3561
+ }>, options?: {} | undefined): Promise<GetDocumentIncomingRelationshipEdgesQuery>;
3253
3562
  FindDocuments(variables?: Exact<{
3254
3563
  search?: InputMaybe<SearchFilterInput>;
3255
3564
  view?: InputMaybe<ViewFilterInput>;
@@ -3299,8 +3608,16 @@ declare function createReactorGraphQLClient(url: string, fetchImpl?: FetchLike,
3299
3608
  sourceIdentifier: Scalars["String"]["input"];
3300
3609
  targetIdentifier: Scalars["String"]["input"];
3301
3610
  relationshipType: Scalars["String"]["input"];
3611
+ metadata?: InputMaybe<Scalars["JSONObject"]["input"]>;
3302
3612
  branch?: InputMaybe<Scalars["String"]["input"]>;
3303
3613
  }>, options?: {} | undefined): Promise<AddRelationshipMutation>;
3614
+ UpdateRelationship(variables: Exact<{
3615
+ sourceIdentifier: Scalars["String"]["input"];
3616
+ targetIdentifier: Scalars["String"]["input"];
3617
+ relationshipType: Scalars["String"]["input"];
3618
+ metadata?: InputMaybe<Scalars["JSONObject"]["input"]>;
3619
+ branch?: InputMaybe<Scalars["String"]["input"]>;
3620
+ }>, options?: {} | undefined): Promise<UpdateRelationshipMutation>;
3304
3621
  RemoveRelationship(variables: Exact<{
3305
3622
  sourceIdentifier: Scalars["String"]["input"];
3306
3623
  targetIdentifier: Scalars["String"]["input"];
@@ -3343,30 +3660,46 @@ declare function createReactorGraphQLClient(url: string, fetchImpl?: FetchLike,
3343
3660
  };
3344
3661
  //#endregion
3345
3662
  //#region src/graphql/reactor/subgraph.d.ts
3346
- declare class ReactorSubgraph extends BaseSubgraph {
3663
+ export declare class ReactorSubgraph extends BaseSubgraph {
3347
3664
  #private;
3348
3665
  private logger;
3349
3666
  constructor(args: SubgraphArgs);
3350
3667
  name: string;
3351
3668
  hasSubscriptions: boolean;
3669
+ private get documentChanges();
3352
3670
  /**
3353
3671
  * Check operation-level permissions for an array of actions.
3354
3672
  * Delegates to base assertCanExecuteOperation for each action.
3355
3673
  */
3356
3674
  private assertCanExecuteOperations;
3357
- typeDefs: graphql.DocumentNode;
3675
+ /**
3676
+ * Drops the relationship edges whose far-end document the caller cannot read.
3677
+ *
3678
+ * An edge names two documents, so returning it discloses the far end's id. The
3679
+ * document-shaped relationship queries already withhold far-end documents the
3680
+ * caller cannot read; the edge-shaped queries have to withhold the same ones,
3681
+ * or they become a way to enumerate around that check. Supreme admins read
3682
+ * everything, so the per-edge check is skipped for them.
3683
+ *
3684
+ * The cursor describes where to resume in the underlying unfiltered stream,
3685
+ * so it is left as it came. A filtered page is therefore often shorter than
3686
+ * the requested limit, and that is the stream continuing rather than a sign
3687
+ * it ended.
3688
+ */
3689
+ private filterRelationshipEdges;
3690
+ typeDefs: import("graphql").DocumentNode;
3358
3691
  resolvers: Resolvers;
3359
3692
  onSetup(): Promise<void>;
3360
3693
  }
3361
3694
  //#endregion
3362
3695
  //#region src/graphql/system/env/index.d.ts
3363
- declare const ADMIN_USERS: string[];
3696
+ export declare const ADMIN_USERS: string[];
3364
3697
  //#endregion
3365
3698
  //#region src/graphql/system/subgraph.d.ts
3366
- declare class SystemSubgraph extends BaseSubgraph {
3699
+ export declare class SystemSubgraph extends BaseSubgraph {
3367
3700
  name: string;
3368
3701
  hasSubscriptions: boolean;
3369
- typeDefs: graphql.DocumentNode;
3702
+ typeDefs: import("graphql").DocumentNode;
3370
3703
  resolvers: {
3371
3704
  Query: {
3372
3705
  system: () => {
@@ -3379,28 +3712,78 @@ declare class SystemSubgraph extends BaseSubgraph {
3379
3712
  }
3380
3713
  //#endregion
3381
3714
  //#region src/graphql/system/version.d.ts
3382
- declare function getVersion(): string;
3383
- declare function getGitHash(): string;
3384
- declare function getGitUrl(): string | null;
3715
+ export declare function getVersion(): string;
3716
+ export declare function getGitHash(): string;
3717
+ export declare function getGitUrl(): string | null;
3385
3718
  //#endregion
3386
3719
  //#region src/graphql/utils.d.ts
3387
- declare function isSubgraphClass(candidate: unknown): candidate is SubgraphClass$1;
3388
- declare function buildGraphqlOperations(operations: Operation[], skip: number, first: number): GqlOperation$1[];
3389
- declare function buildGraphqlOperation(operation: Operation): GqlOperation$1;
3390
- declare function buildGraphQlDocument(doc: PHDocument): GqlDocument$1;
3391
- declare function buildGraphQlDriveDocument(doc: DocumentDriveDocument): GqlDriveDocument$1;
3720
+ export declare function isSubgraphClass(candidate: unknown): candidate is SubgraphClass$1;
3721
+ export declare function buildGraphqlOperations(operations: Operation[], skip: number, first: number): GqlOperation$1[];
3722
+ export declare function buildGraphqlOperation(operation: Operation): GqlOperation$1;
3723
+ export declare function buildGraphQlDocument(doc: PHDocument): GqlDocument$1;
3724
+ export declare function buildGraphQlDriveDocument(doc: DocumentDriveDocument): GqlDriveDocument$1;
3725
+ //#endregion
3726
+ //#region src/graphql/errors.d.ts
3727
+ /** Caller (authenticated or anonymous) lacks permission for the document. */
3728
+ export declare class ForbiddenError extends GraphQLError {
3729
+ constructor(detail?: string);
3730
+ }
3731
+ /** Anonymous caller on an action that requires logging in. */
3732
+ export declare class AuthenticationRequiredError extends GraphQLError {
3733
+ constructor(detail?: string);
3734
+ }
3735
+ /**
3736
+ * The reactor holds no decision model, so no authorization preflight can be
3737
+ * answered.
3738
+ *
3739
+ * Distinct from a denial, and deliberately so: a caller that cannot get a
3740
+ * prediction should render its controls as it did before it asked and let the
3741
+ * submit path refuse. Reading this as a denial would disable every control on a
3742
+ * switchboard running without authEnforcement. The code is what a client
3743
+ * branches on, since the message is not a contract.
3744
+ */
3745
+ export declare class AuthEvaluationUnsupportedError extends GraphQLError {
3746
+ constructor();
3747
+ }
3748
+ /**
3749
+ * A stored operation cannot be represented in the schema, so it is reported
3750
+ * rather than served.
3751
+ *
3752
+ * The schema declares an action's id, type, timestamp, input and scope
3753
+ * non-null; an operation written before the API rejected an action without an
3754
+ * id violates that. Left to the executor, the missing value nullifies the
3755
+ * action, which bubbles up through the non-null chain until it nullifies the
3756
+ * envelope's whole operation list, and the caller receives a partial response
3757
+ * beside "Cannot return null for non-nullable field Action.id" - which says
3758
+ * nothing about which operation, and which a sync client can only read as a
3759
+ * permanent GraphQL rejection, stopping its poll timer for good.
3760
+ *
3761
+ * Thrown instead, with a code that says the failure is worth polling through:
3762
+ * the document holding the operation needs repairing, but the channel serves
3763
+ * every other document, and a peer that stopped polling would stop receiving
3764
+ * those too. The code is what a client branches on, since the message is not a
3765
+ * contract.
3766
+ */
3767
+ export declare class MalformedStoredOperationError extends GraphQLError {
3768
+ constructor(detail: string);
3769
+ }
3392
3770
  //#endregion
3393
3771
  //#region src/packages/import-loader.d.ts
3394
3772
  /**
3395
3773
  * This class is used to load packages using the import keyword.
3396
3774
  */
3397
- declare class ImportPackageLoader implements IPackageLoader {
3775
+ export declare class ImportPackageLoader implements IPackageLoader {
3776
+ private readonly hostDir;
3398
3777
  private readonly logger;
3399
3778
  readonly name = "ImportPackageLoader";
3779
+ constructor(hostDir?: string);
3780
+ private readonly reportedUnbuilt;
3400
3781
  loadDocumentModels(identifier: string): Promise<DocumentModelModule[]>;
3401
3782
  loadUpgradeManifests(identifier: string): Promise<UpgradeManifest<readonly number[]>[]>;
3402
3783
  loadSubgraphs(identifier: string): Promise<SubgraphClass$1[]>;
3403
3784
  loadProcessors(identifier: string): Promise<ProcessorFactoryBuilder | null>;
3785
+ loadPieces(identifier: string): Promise<PackagePieceEntry[]>;
3786
+ private reportUnbuilt;
3404
3787
  }
3405
3788
  //#endregion
3406
3789
  //#region src/packages/package-manager.d.ts
@@ -3416,10 +3799,10 @@ declare class ImportPackageLoader implements IPackageLoader {
3416
3799
  * either bare (`'pkg'`) or as a subpath (`'pkg/subgraphs'`), since loaders
3417
3800
  * import sub-entries like `${pkg}/subgraphs` / `${pkg}/document-models`.
3418
3801
  */
3419
- declare function isExpectedLoaderMiss(error: unknown, pkg: string): boolean;
3420
- declare function getUniqueDocumentModels(...documentModels: readonly (readonly DocumentModelModule<any>[])[]): DocumentModelModule[];
3421
- declare function getUniqueUpgradeManifests(...upgradeManifests: readonly (readonly UpgradeManifest<readonly number[]>[])[]): UpgradeManifest<readonly number[]>[];
3422
- declare class PackageManager implements IPackageManager {
3802
+ export declare function isExpectedLoaderMiss(error: unknown, pkg: string, subPath?: string): boolean;
3803
+ export declare function getUniqueDocumentModels(...documentModels: readonly (readonly DocumentModelModule<any>[])[]): DocumentModelModule[];
3804
+ export declare function getUniqueUpgradeManifests(...upgradeManifests: readonly (readonly UpgradeManifest<readonly number[]>[])[]): UpgradeManifest<readonly number[]>[];
3805
+ export declare class PackageManager implements IPackageManager {
3423
3806
  protected options: IPackageManagerOptions;
3424
3807
  private readonly logger;
3425
3808
  private loaders;
@@ -3427,6 +3810,7 @@ declare class PackageManager implements IPackageManager {
3427
3810
  private upgradeManifestsMap;
3428
3811
  private subgraphsMap;
3429
3812
  private processorMap;
3813
+ private piecesMap;
3430
3814
  private configWatcher;
3431
3815
  private debouncedUpdateCallbacks;
3432
3816
  private eventEmitter;
@@ -3439,10 +3823,12 @@ declare class PackageManager implements IPackageManager {
3439
3823
  private loadUpgradeManifests;
3440
3824
  private loadSubgraphs;
3441
3825
  private loadProcessors;
3826
+ private loadPieces;
3442
3827
  private maybeWarnAllLoadersFailed;
3443
3828
  private updateDocumentModelsForPackage;
3444
3829
  private updateSubgraphsForPackage;
3445
3830
  private updateProcessorsForPackage;
3831
+ private updatePiecesForPackage;
3446
3832
  /** Debounced per key so repeated subscribePackages calls reuse one timer. */
3447
3833
  private getDebouncedUpdateCallback;
3448
3834
  private subscribePackages;
@@ -3452,6 +3838,9 @@ declare class PackageManager implements IPackageManager {
3452
3838
  private updatePackagesMap;
3453
3839
  private updateSubgraphsMap;
3454
3840
  private updateProcessorsMap;
3841
+ private updatePiecesMap;
3842
+ /** The pieces every loaded package ships, keyed by the package. */
3843
+ getPieces(): Map<string, PackagePieceEntry[]>;
3455
3844
  /**
3456
3845
  * Remove `pkg` from all package maps and emit the change events, tearing
3457
3846
  * down everything the package registered (subgraphs, processors, document
@@ -3462,28 +3851,29 @@ declare class PackageManager implements IPackageManager {
3462
3851
  onDocumentModelsChange(handler: (documentModels: Record<string, DocumentModelModule[]>) => void): void;
3463
3852
  onSubgraphsChange(handler: (subgraphs: Map<string, SubgraphClass$1[]>) => void): void;
3464
3853
  onProcessorsChange(handler: (processors: Map<string, Processor$1>) => void): void;
3854
+ onPiecesChange(handler: (pieces: Map<string, PackagePieceEntry[]>) => void): void;
3465
3855
  }
3466
3856
  //#endregion
3467
3857
  //#region src/services/renown-config.d.ts
3468
3858
  /** Where the credential check reads from: a remote Renown or Switchboard
3469
3859
  * instance, or this switchboard's own renown read model. */
3470
- type RenownSource = NonNullable<PHReactorRenown["source"]>;
3860
+ export type RenownSource = NonNullable<PHReactorRenown["source"]>;
3471
3861
  /** The `auth.renown` config block: which Renown instance to authenticate
3472
3862
  * against, before env overrides are applied. */
3473
- type RenownConfig = PHReactorRenown;
3863
+ export type RenownConfig = PHReactorRenown;
3474
3864
  /** Resolved renown coordinates. `url` also drives this reactor's own identity,
3475
3865
  * so it stays meaningful when `source` is "self". */
3476
- type ResolvedRenownConfig = {
3866
+ export type ResolvedRenownConfig = {
3477
3867
  source: RenownSource;
3478
3868
  url: string | undefined;
3479
3869
  switchboardUrl: string | undefined;
3480
3870
  };
3481
3871
  /** Reading credentials from this reactor's own read model needs a host-supplied
3482
3872
  * verifier: core has no idea which subgraph serves that read model. */
3483
- declare function assertCredentialVerifierForSource(source: RenownSource, hasVerifier: boolean): void;
3873
+ export declare function assertCredentialVerifierForSource(source: RenownSource, hasVerifier: boolean): void;
3484
3874
  /** Resolve `auth.renown`; RENOWN_SOURCE / RENOWN_URL / SWITCHBOARD_URL win
3485
3875
  * over the config file, which wins over the SDK defaults. */
3486
- declare function resolveRenownConfig(configured: RenownConfig | undefined, env: NodeJS.ProcessEnv, logger: ILogger): ResolvedRenownConfig;
3876
+ export declare function resolveRenownConfig(configured: RenownConfig | undefined, env: NodeJS.ProcessEnv, logger: ILogger): ResolvedRenownConfig;
3487
3877
  //#endregion
3488
3878
  //#region src/server.d.ts
3489
3879
  type Options = {
@@ -3509,6 +3899,19 @@ type Options = {
3509
3899
  * request. Off by default; `REQUIRE_AUTHENTICATED_CALLER` overrides.
3510
3900
  * Requires identity resolution to be on — refused at boot without it. */
3511
3901
  requireAuthenticatedCaller?: boolean;
3902
+ /** Mounted paths that stay reachable anonymously while
3903
+ * `requireAuthenticatedCaller` is on, for a flow that runs before
3904
+ * sign-in. Matched against the request's pathname in full, never as a
3905
+ * prefix. `REQUIRE_AUTHENTICATED_CALLER_EXEMPT_PATHS` overrides, as a
3906
+ * comma-separated list. Each entry is a hole in the floor: only ever name
3907
+ * a path serving operations that are safe without a caller. */
3908
+ requireAuthenticatedCallerExemptPaths?: string[];
3909
+ /** Decide an attachment read with the referencing document's own policy
3910
+ * instead of the host permission tables. Off by default;
3911
+ * `ATTACHMENT_READS_FOLLOW_DOCUMENT_POLICY` overrides. Requires auth
3912
+ * enforcement, which is what supplies the model — refused at boot
3913
+ * without it. */
3914
+ attachmentReadsFollowDocumentPolicy?: boolean;
3512
3915
  };
3513
3916
  /** Renown coordinates the host already resolved, used verbatim instead of
3514
3917
  * resolving `auth.renown` and the env again (which would warn twice). */
@@ -3546,13 +3949,13 @@ type ProcessorInitializer = ProcessorFactoryBuilder;
3546
3949
  * Doc-perms require auth: with auth off no `user` is ever resolved, so every
3547
3950
  * authorization check fails closed. Refuse to boot rather than run broken.
3548
3951
  */
3549
- declare function assertAuthRequiredForDocumentPermissions(authEnabled: boolean, documentPermissionsRequested: boolean): void;
3952
+ export declare function assertAuthRequiredForDocumentPermissions(authEnabled: boolean, documentPermissionsRequested: boolean): void;
3550
3953
  /**
3551
3954
  * Refuses SKIP_CREDENTIAL_VERIFICATION at boot outside tests or an explicit
3552
3955
  * opt-in: it removes the only binding between a token's claimed address and its
3553
3956
  * signing key. Fail-closed — unset NODE_ENV counts as production.
3554
3957
  */
3555
- declare function assertSkipCredentialVerificationAllowed(resolvesCallerIdentity: boolean, skipCredentialVerification: boolean, env: NodeJS.ProcessEnv): void;
3958
+ export declare function assertSkipCredentialVerificationAllowed(resolvesCallerIdentity: boolean, skipCredentialVerification: boolean, env: NodeJS.ProcessEnv): void;
3556
3959
  /**
3557
3960
  * Requiring an authenticated caller requires identity resolution to exist at
3558
3961
  * all: with neither AUTH_ENABLED nor RESOLVE_CALLER_IDENTITY the middleware
@@ -3560,14 +3963,22 @@ declare function assertSkipCredentialVerificationAllowed(resolvesCallerIdentity:
3560
3963
  * require-authenticated-caller middleware would reject every caller —
3561
3964
  * authenticated ones included. Refuse to boot rather than run broken.
3562
3965
  */
3563
- declare function assertRequireAuthenticatedCallerAllowed(requireAuthenticatedCaller: boolean, resolvesCallerIdentity: boolean): void;
3966
+ export declare function assertRequireAuthenticatedCallerAllowed(requireAuthenticatedCaller: boolean, resolvesCallerIdentity: boolean, exemptPaths?: readonly string[]): void;
3967
+ /**
3968
+ * Deciding an attachment read by the document's policy needs a policy model to
3969
+ * decide with, and that is what auth enforcement supplies. Without one there is
3970
+ * nothing to consult, so the setting would silently leave the permission tables
3971
+ * in charge — configuration that describes a protection the server is not
3972
+ * applying, which is worse than no configuration at all. Refuse instead.
3973
+ */
3974
+ export declare function assertAttachmentPolicyReadsAllowed(attachmentReadsFollowDocumentPolicy: boolean, hasDecisionModel: boolean): void;
3564
3975
  /**
3565
3976
  * The GraphiQL explorer page's mount prefix. `path.posix.join` normalizes the
3566
3977
  * join with `basePath` — a naive template literal would produce `//explorer`
3567
3978
  * for the default `/` basePath, which express compiles into a route that only
3568
3979
  * matches `//explorer`, leaving `GET /explorer` a 404.
3569
3980
  */
3570
- declare function getExplorerPrefix(basePath: string): string;
3981
+ export declare function getExplorerPrefix(basePath: string): string;
3571
3982
  /**
3572
3983
  * Initializes and starts the API server using an initializer function.
3573
3984
  * This function first loads packages to get document models, then calls the initializer function
@@ -3583,17 +3994,17 @@ declare function getExplorerPrefix(basePath: string): string;
3583
3994
  * alongside the reactor module so resolvers can dispatch reactor-drive parent
3584
3995
  * ops to it; legacy switchboards omit it.
3585
3996
  */
3586
- interface ClientInitializerResult {
3997
+ export interface ClientInitializerResult {
3587
3998
  module: InProcessReactorClientModule;
3588
3999
  reactorDriveClient?: IDriveClient;
3589
4000
  attachmentReferenceProjection?: AttachmentReferenceProjectionCapability;
3590
4001
  }
3591
- interface ClientInitializerDependencies {
4002
+ export interface ClientInitializerDependencies {
3592
4003
  attachmentReferenceWriter: IAttachmentReferenceWriter;
3593
4004
  /** Upgrade manifests exported by the loaded packages, one per type. */
3594
4005
  upgradeManifests: UpgradeManifest<readonly number[]>[];
3595
4006
  }
3596
- declare function initializeAndStartAPI(clientInitializer: (documentModels: DocumentModelModule[], dependencies: ClientInitializerDependencies) => Promise<ClientInitializerResult>, options: Options, processorApp: ProcessorApp): Promise<API & {
4007
+ export declare function initializeAndStartAPI(clientInitializer: (documentModels: DocumentModelModule[], dependencies: ClientInitializerDependencies) => Promise<ClientInitializerResult>, options: Options, processorApp: ProcessorApp): Promise<API & {
3597
4008
  client: IReactorClient;
3598
4009
  syncManager: ISyncManager;
3599
4010
  documentModelRegistry: IDocumentModelRegistry;
@@ -3603,27 +4014,27 @@ declare function initializeAndStartAPI(clientInitializer: (documentModels: Docum
3603
4014
  }>;
3604
4015
  //#endregion
3605
4016
  //#region src/services/renown-credential-verifier.d.ts
3606
- interface RenownCredentialVerifierConfig {
4017
+ export interface RenownCredentialVerifierConfig {
3607
4018
  renownUrl?: string;
3608
4019
  switchboardUrl?: string;
3609
4020
  }
3610
- declare function createRenownCredentialVerifier(config?: RenownCredentialVerifierConfig): Promise<CredentialVerifier>;
4021
+ export declare function createRenownCredentialVerifier(config?: RenownCredentialVerifierConfig): Promise<CredentialVerifier>;
3611
4022
  //#endregion
3612
4023
  //#region src/utils/create-schema.d.ts
3613
- declare const buildSubgraphSchemaModule: (documentModels: DocumentModelModule[], resolvers: GraphQLResolverMap<Context$1>, typeDefs: DocumentNode) => GraphQLSchemaModule;
3614
- declare const createSchema: (documentModels: DocumentModelModule[], resolvers: GraphQLResolverMap<Context$1>, typeDefs: DocumentNode) => graphql.GraphQLSchema;
4024
+ export declare const buildSubgraphSchemaModule: (documentModels: DocumentModelModule[], resolvers: GraphQLResolverMap<Context$1>, typeDefs: DocumentNode) => GraphQLSchemaModule;
4025
+ export declare const createSchema: (documentModels: DocumentModelModule[], resolvers: GraphQLResolverMap<Context$1>, typeDefs: DocumentNode) => import("graphql").GraphQLSchema;
3615
4026
  /**
3616
4027
  * Create a merged GraphQL schema from multiple subgraph modules.
3617
4028
  * Uses buildSubgraphSchema's array overload to combine type definitions
3618
4029
  * and resolvers from multiple subgraphs into a single executable schema.
3619
4030
  */
3620
- declare const createMergedSchema: (modules: GraphQLSchemaModule[]) => graphql.GraphQLSchema;
3621
- declare function getDocumentModelSchemaName(documentModel: DocumentModelGlobalState$1): string;
3622
- declare const getDocumentModelTypeDefs: (documentModels: DocumentModelModule[], typeDefs: DocumentNode) => DocumentNode;
4031
+ export declare const createMergedSchema: (modules: GraphQLSchemaModule[]) => import("graphql").GraphQLSchema;
4032
+ export declare function getDocumentModelSchemaName(documentModel: DocumentModelGlobalState$1): string;
4033
+ export declare const getDocumentModelTypeDefs: (documentModels: DocumentModelModule[], typeDefs: DocumentNode) => DocumentNode;
3623
4034
  /**
3624
4035
  * Options for generating document model GraphQL schemas.
3625
4036
  */
3626
- interface DocumentModelSchemaOptions {
4037
+ export interface DocumentModelSchemaOptions {
3627
4038
  /**
3628
4039
  * When true, generates new API patterns:
3629
4040
  * - Mutations return full document objects (MutationResult type)
@@ -3640,7 +4051,8 @@ interface DocumentModelSchemaOptions {
3640
4051
  * @param options - Schema generation options
3641
4052
  * @returns GraphQL DocumentNode
3642
4053
  */
3643
- declare function generateDocumentModelSchema(documentModel: DocumentModelGlobalState$1, options?: DocumentModelSchemaOptions): DocumentNode;
4054
+ export declare function generateDocumentModelSchema(documentModel: DocumentModelGlobalState$1, options?: DocumentModelSchemaOptions): DocumentNode;
3644
4055
  //#endregion
3645
- 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, type WebhookEndpointInfo, type WebhookEndpointRow, type WebhookField, type WebhookHashAlgorithm, type WebhookPolicy, type WebhookReply, type WebhookRequest, type WebhookScheme, WebhookService, type WebhookSignatureEncoding, type WebhookSpec, type WebhookVerification, WithIndex, WsContextFactory, WsDisposer, assertAuthRequiredForDocumentPermissions, assertCredentialVerifierForSource, assertHostMountPath, assertRequireAuthenticatedCallerAllowed, assertSkipCredentialVerificationAllowed, buildGraphQlDocument, buildGraphQlDriveDocument, buildGraphqlOperation, buildGraphqlOperations, buildSubgraphSchemaModule, createAuthFetchMiddleware, createCanonicalDocumentIdResolver, createGatewayAdapter, createHttpAdapter, createMergedSchema, createReactorGraphQLClient, createRenownCredentialVerifier, createSchema, 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 };
4056
+ 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 };
4057
+ export {};
3646
4058
  //# sourceMappingURL=index.d.mts.map