@powerhousedao/reactor-browser 6.2.3-dev.0 → 6.2.3-dev.10
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.
- package/dist/{attachment-service-KFFLBEuD.d.ts → attachment-service-BW1v0OAT.d.ts} +45 -9
- package/dist/attachment-service-BW1v0OAT.d.ts.map +1 -0
- package/dist/{client-BIHN_UyR.d.ts → client-CxJD0Ck2.d.ts} +2 -2
- package/dist/{client-BIHN_UyR.d.ts.map → client-CxJD0Ck2.d.ts.map} +1 -1
- package/dist/{client-D66jVnot.js → client-D4bkR4pH.js} +114 -1
- package/dist/client-D4bkR4pH.js.map +1 -0
- package/dist/{client-B8ezRmBB.js → client-DjK30EQ-.js} +14 -2
- package/dist/client-DjK30EQ-.js.map +1 -0
- package/dist/{document-by-id-BSZqTN66.js → document-by-id-B4FIzG1w.js} +4 -2
- package/dist/{document-by-id-BSZqTN66.js.map → document-by-id-B4FIzG1w.js.map} +1 -1
- package/dist/{document-model-modules-DfQBNGc-.js → document-model-modules-bTP87nyr.js} +35 -35
- package/dist/{document-model-modules-DfQBNGc-.js.map → document-model-modules-bTP87nyr.js.map} +1 -1
- package/dist/{document-operations-CBExT76y.js → document-operations-Cm4EtaZs.js} +69 -10
- package/dist/document-operations-Cm4EtaZs.js.map +1 -0
- package/dist/{global-1rvI8VdA.d.ts → global-CgCouXuH.d.ts} +4 -3
- package/dist/{global-1rvI8VdA.d.ts.map → global-CgCouXuH.d.ts.map} +1 -1
- package/dist/{index-BE3wBHLP.d.ts → index-CBjFO54H.d.ts} +4 -3
- package/dist/{index-BE3wBHLP.d.ts.map → index-CBjFO54H.d.ts.map} +1 -1
- package/dist/index.d.ts +50 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +44 -13
- package/dist/index.js.map +1 -1
- package/dist/{relational-D4sxGPz7.js → relational-D1RB45sA.js} +2 -2
- package/dist/{relational-D4sxGPz7.js.map → relational-D1RB45sA.js.map} +1 -1
- package/dist/{renown-BIEv6bSI.js → renown-rqK8sokh.js} +20 -5
- package/dist/renown-rqK8sokh.js.map +1 -0
- package/dist/src/ai/index.js +2 -2
- package/dist/src/analytics/index.js +1 -1
- package/dist/src/graphql/client.d.ts +2 -2
- package/dist/src/graphql/client.js +1 -1
- package/dist/src/graphql-client/entry.d.ts +4 -4
- package/dist/src/graphql-client/entry.js +4 -4
- package/dist/src/relational/index.js +1 -1
- package/dist/src/renown/index.d.ts +2 -2
- package/dist/src/renown/index.js +2 -2
- package/dist/src/rpc/index.d.ts.map +1 -1
- package/dist/src/rpc/index.js +3 -1
- package/dist/src/rpc/index.js.map +1 -1
- package/dist/{switchboard-D4-_jwk-.js → switchboard-CaXQ4-5Q.js} +4 -4
- package/dist/{switchboard-D4-_jwk-.js.map → switchboard-CaXQ4-5Q.js.map} +1 -1
- package/dist/{types-Dcv1ZLoW.d.ts → types-N3Jy6Nry.d.ts} +72 -2
- package/dist/types-N3Jy6Nry.d.ts.map +1 -0
- package/package.json +9 -9
- package/dist/attachment-service-KFFLBEuD.d.ts.map +0 -1
- package/dist/client-B8ezRmBB.js.map +0 -1
- package/dist/client-D66jVnot.js.map +0 -1
- package/dist/document-operations-CBExT76y.js.map +0 -1
- package/dist/renown-BIEv6bSI.js.map +0 -1
- package/dist/types-Dcv1ZLoW.d.ts.map +0 -1
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { a as PHGlobal$1, b as IPackagesListener, ct as PromiseWithState, d as UsePHGlobalValue$1, ot as IDocumentCache, rt as IReactorBrowserClient$1, st as PromiseState, u as SetPHGlobalValue$1, v as IPackageListerUnsubscribe, x as PackageManagerInstallResult, y as IPackageManager } from "./global-
|
|
1
|
+
import { a as PHGlobal$1, b as IPackagesListener, ct as PromiseWithState, d as UsePHGlobalValue$1, ot as IDocumentCache, rt as IReactorBrowserClient$1, st as PromiseState, u as SetPHGlobalValue$1, v as IPackageListerUnsubscribe, x as PackageManagerInstallResult, y as IPackageManager } from "./global-CgCouXuH.js";
|
|
2
2
|
import { t as PGlite } from "./pglite-CntadC_p-9NDG14dS.js";
|
|
3
|
-
import { A as ViewFilterInput, C as GetDocumentQuery, D as PropagationMode$1, E as PhDocumentFieldsFragment, O as Scalars, S as GetDocumentOperationsQuery, b as DocumentChangesSubscription, c as ReactorGraphQLClient, g as ActionInput, k as SdkFunctionWrapper } from "./types-
|
|
3
|
+
import { A as ViewFilterInput, C as GetDocumentQuery, D as PropagationMode$1, E as PhDocumentFieldsFragment, O as Scalars, S as GetDocumentOperationsQuery, b as DocumentChangesSubscription, c as ReactorGraphQLClient, g as ActionInput, k as SdkFunctionWrapper } from "./types-N3Jy6Nry.js";
|
|
4
4
|
import { Action, DocumentModelLib, DocumentModelModule, Operation, PHDocument } from "document-model";
|
|
5
5
|
import { Action as Action$1, DocumentModelModule as DocumentModelModule$1, DocumentOperations, ISigner, Operation as Operation$1, PHBaseState, PHDocument as PHDocument$1, PHDocumentHeader } from "@powerhousedao/shared/document-model";
|
|
6
|
-
import { ReactNode } from "react";
|
|
7
6
|
import * as _powerhousedao_reactor0 from "@powerhousedao/reactor";
|
|
8
7
|
import { Database, DocumentChangeEvent, DocumentModelSource, IDocumentModelRegistry, ISyncManager, OperationFilter, PagedResults, PagingOptions, PropagationMode, SearchFilter, ViewFilter } from "@powerhousedao/reactor";
|
|
8
|
+
import { ReactNode } from "react";
|
|
9
9
|
import { GraphQLClient, Variables } from "graphql-request";
|
|
10
10
|
import * as graphql from "graphql";
|
|
11
11
|
import { DocumentNode } from "graphql";
|
|
@@ -392,6 +392,8 @@ declare class GraphQLReactorClient implements IReactorBrowserClient$1 {
|
|
|
392
392
|
private realtimeStarted;
|
|
393
393
|
private realtimeGeneration;
|
|
394
394
|
private realtimeErrorLogged;
|
|
395
|
+
/** Whether the last socket died because the Switchboard refused its credentials. */
|
|
396
|
+
private realtimeRefusedCredentials;
|
|
395
397
|
constructor(options: GraphQLReactorClientOptions);
|
|
396
398
|
get<TDocument extends PHDocument>(identifier: string, view?: ViewFilter, signal?: AbortSignal): Promise<TDocument>;
|
|
397
399
|
getOperations(documentIdentifier: string, view?: ViewFilter, filter?: OperationFilter, paging?: PagingOptions, signal?: AbortSignal): Promise<PagedResults<Operation>>;
|
|
@@ -500,15 +502,39 @@ declare class GraphQLReactorClient implements IReactorBrowserClient$1 {
|
|
|
500
502
|
* Gives up on a failed socket so that a later subscriber can try again.
|
|
501
503
|
*
|
|
502
504
|
* `graphql-ws` retries on its own and only reports here once it has given up,
|
|
503
|
-
* or once the
|
|
504
|
-
*
|
|
505
|
-
*
|
|
506
|
-
*
|
|
505
|
+
* or once the Switchboard refused the credentials the socket carried - which
|
|
506
|
+
* `shouldRetry` declines to retry at all. Keeping the dead stop function
|
|
507
|
+
* would make every later `subscribe` a no-op, so realtime would stay off for
|
|
508
|
+
* the life of the page even after the user signs in.
|
|
509
|
+
*
|
|
510
|
+
* Why it died is recorded: a refusal is undone by a credential change and
|
|
511
|
+
* nothing else, and {@link notifyCredentialsChanged} acts only on that.
|
|
507
512
|
*
|
|
508
513
|
* The generation stamp discards a report from a socket that has already been
|
|
509
514
|
* replaced or disposed.
|
|
510
515
|
*/
|
|
511
516
|
private handleRealtimeFailure;
|
|
517
|
+
/**
|
|
518
|
+
* Reopens realtime after a sign-in, a sign-out or a token swap.
|
|
519
|
+
*
|
|
520
|
+
* Call it whenever the credentials this client authenticates with change.
|
|
521
|
+
*
|
|
522
|
+
* A live socket is replaced. `connectionParams` are resolved once, when the
|
|
523
|
+
* socket opens, so a socket keeps presenting the credentials it was opened
|
|
524
|
+
* with until something closes it - and a sign-out closes nothing. That left
|
|
525
|
+
* a signed-out tab still receiving the previous identity's document changes,
|
|
526
|
+
* on a shared machine, for as long as the socket happened to survive.
|
|
527
|
+
*
|
|
528
|
+
* A refused socket is reopened, for the same reason from the other side:
|
|
529
|
+
* otherwise it stays closed until an unrelated component happens to
|
|
530
|
+
* `subscribe`, so signing in leaves realtime off with nothing said - the
|
|
531
|
+
* state `handleRealtimeFailure` resets to avoid.
|
|
532
|
+
*
|
|
533
|
+
* A socket that died for any other reason is left alone: a network failure
|
|
534
|
+
* is not something a new token fixes, and reopening one here would turn a
|
|
535
|
+
* credential change into a reconnect loop.
|
|
536
|
+
*/
|
|
537
|
+
notifyCredentialsChanged(): void;
|
|
512
538
|
/** Closes the socket and lets a later subscriber open a new one. */
|
|
513
539
|
private teardownRealtime;
|
|
514
540
|
/** Maps a server event onto the client-side event and emits it. */
|
|
@@ -789,6 +815,7 @@ declare class StaticPackageManager implements IPackageManager {
|
|
|
789
815
|
subscribe(_handler: IPackagesListener): IPackageListerUnsubscribe;
|
|
790
816
|
getPackageSource(_packageName: string): RegistryPackageSource | null;
|
|
791
817
|
getPackageVersion(_packageName: string): string | undefined;
|
|
818
|
+
getPackageSpec(_packageName: string): string | undefined;
|
|
792
819
|
getRegistryPackages(): {
|
|
793
820
|
name: string;
|
|
794
821
|
version: string | undefined;
|
|
@@ -844,6 +871,15 @@ type DocumentChangesSubscriptionOptions = {
|
|
|
844
871
|
*/
|
|
845
872
|
onError: (error: unknown) => void;
|
|
846
873
|
};
|
|
874
|
+
/**
|
|
875
|
+
* Whether a socket failure is the Switchboard refusing the credentials sent.
|
|
876
|
+
*
|
|
877
|
+
* Keyed on the close reason, not the code: both refusals close 4403, because
|
|
878
|
+
* `connectionParams` is resolved per connect and a reconnect carrying a fresh
|
|
879
|
+
* token genuinely succeeds. What the reason adds is that *this* attempt cannot
|
|
880
|
+
* be fixed by repeating it.
|
|
881
|
+
*/
|
|
882
|
+
declare function isAuthRefusalClose(error: unknown): boolean;
|
|
847
883
|
/**
|
|
848
884
|
* Opens one `documentChanges` subscription and feeds every event to `onEvent`.
|
|
849
885
|
*
|
|
@@ -1058,5 +1094,5 @@ declare const setAttachmentService: SetPHGlobalValue<IAttachmentService>;
|
|
|
1058
1094
|
/** Registers the attachmentService window event handler */
|
|
1059
1095
|
declare const addAttachmentServiceEventHandler: AddPHGlobalEventHandler;
|
|
1060
1096
|
//#endregion
|
|
1061
|
-
export {
|
|
1062
|
-
//# sourceMappingURL=attachment-service-
|
|
1097
|
+
export { GraphQLReactorClientOptions as $, useGetDocuments as A, RemoteDocumentData as At, resolveDocumentModelModule as B, setDocumentCache as C, IRemoteClient as Ct, useDocuments as D, RemoteControllerGraphQLClient as Dt, useDocumentSafe as E, PushResult as Et, makeAuthConnectionParams as F, DocumentCache as Ft, MutateDocumentWithOperationsResult as G, signStampedAction as H, startDocumentChangesSubscription as I, addPromiseState as It, GraphQLReactorProvider as J, MutateDocumentWithOperationsVariables as K, subscriptionsUrlFromGraphqlUrl as L, readPromiseState as Lt, DocumentChangesEventPayload as M, RemoteOperationResultPage as Mt, DocumentChangesSubscriptionOptions as N, SyncStatus$1 as Nt, useGetDocument as O, RemoteControllerOptions as Ot, isAuthRefusalClose as P, TrackedAction as Pt, GraphQLReactorClient as Q, StaticPackageManager as R, addDocumentCacheEventHandler as S, GetOperationsResult as St, useDocumentCache as T, MergeHandler as Tt, stampAction as U, prepareSignedActions as V, MutateDocumentWithOperationsDocument as W, ensurePHEventHandlers as X, GraphQLReactorProviderProps as Y, useSwitchboardClient as Z, usePGlite as _, ConflictInfo as _t, useDocumentOperations as a, TypedGraphQLDocument as at, useSync as b, GetDocumentResult as bt, DispatchFn as c, BearerTokenProvider as ct, addReactorClientEventHandler as d, GetDocumentQueryFields as dt, isGraphQLReactorClient as et, addReactorClientModuleEventHandler as f, GetDocumentQueryResult as ft, useModelRegistry as g, revisionMapFromRevisionsList as gt, useDatabase as h, phDocumentFromMutation as ht, DocumentOperationsState as i, SubgraphSdkRegistry as it, ConnectionParams as j, RemoteOperation as jt, useGetDocumentAsync as k, RemoteDocumentChangeEvent as kt, UseDispatchResult as l, ambientRenownTokenProvider as lt, setReactorClientModule as m, phDocumentFromGetDocument as mt, setAttachmentService as n, GraphQLRequestOptions as nt, useDocumentModelModuleById as o, describeGraphQLDocument as ot, setReactorClient as p, RevisionsListSelection as pt, ReactorOperationFieldsFragmentDoc as q, useAttachmentService as r, SubgraphSdkFactory as rt, useDocumentModelModules as s, subgraphUrlFromGraphqlUrl as st, addAttachmentServiceEventHandler as t, viewFilterInputFromViewFilter as tt, useDispatch as u, makeAuthMiddleware as ut, useReactorClient as v, ConflictStrategy as vt, useDocument as w, IRemoteController as wt, useSyncList as x, GetDocumentWithOperationsResult as xt, useReactorClientModule as y, DocumentChangeListener as yt, packageFromDocumentModels as z };
|
|
1098
|
+
//# sourceMappingURL=attachment-service-BW1v0OAT.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attachment-service-BW1v0OAT.d.ts","names":[],"sources":["../src/document-cache.ts","../src/remote-controller/types.ts","../src/graphql-client/adapter.ts","../src/graphql-client/auth.ts","../src/graphql-client/subgraph.ts","../src/graphql-client/graphql-reactor-client.ts","../src/graphql-client/graphql-reactor-provider.tsx","../src/graphql-client/operations.ts","../src/graphql-client/signing.ts","../src/graphql-client/static-package-manager.ts","../src/graphql-client/subscriptions.ts","../src/hooks/document-cache.ts","../src/hooks/reactor.ts","../src/hooks/dispatch.ts","../src/hooks/document-model-modules.ts","../src/hooks/document-operations.ts","../src/hooks/attachment-service.ts"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { c as ReactorGraphQLClient, k as SdkFunctionWrapper } from "./types-
|
|
1
|
+
import { c as ReactorGraphQLClient, k as SdkFunctionWrapper } from "./types-N3Jy6Nry.js";
|
|
2
2
|
import { GraphQLClient } from "graphql-request";
|
|
3
3
|
|
|
4
4
|
//#region src/graphql/client.d.ts
|
|
@@ -11,4 +11,4 @@ import { GraphQLClient } from "graphql-request";
|
|
|
11
11
|
declare function createClient(urlOrGQLClient: string | GraphQLClient, middleware?: SdkFunctionWrapper): ReactorGraphQLClient;
|
|
12
12
|
//#endregion
|
|
13
13
|
export { createClient as t };
|
|
14
|
-
//# sourceMappingURL=client-
|
|
14
|
+
//# sourceMappingURL=client-CxJD0Ck2.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-
|
|
1
|
+
{"version":3,"file":"client-CxJD0Ck2.d.ts","names":[],"sources":["../src/graphql/client.ts"],"mappings":";;;;AA4BA;;;;;;AAAA,iBAAgB,YAAA,CACd,cAAA,WAAyB,aAAA,EACzB,UAAA,GAAa,kBAAA,GACZ,oBAAA"}
|
|
@@ -31,6 +31,16 @@ const PhDocumentFieldsFragmentDoc = gql`
|
|
|
31
31
|
lastModifiedAtUtcIso
|
|
32
32
|
}
|
|
33
33
|
`;
|
|
34
|
+
const DocumentRelationshipFieldsFragmentDoc = gql`
|
|
35
|
+
fragment DocumentRelationshipFields on DocumentRelationship {
|
|
36
|
+
sourceId
|
|
37
|
+
targetId
|
|
38
|
+
relationshipType
|
|
39
|
+
metadata
|
|
40
|
+
createdAt
|
|
41
|
+
updatedAt
|
|
42
|
+
}
|
|
43
|
+
`;
|
|
34
44
|
const GetDocumentModelsDocument = gql`
|
|
35
45
|
query GetDocumentModels($namespace: String, $paging: PagingInput) {
|
|
36
46
|
documentModels(namespace: $namespace, paging: $paging) {
|
|
@@ -159,6 +169,54 @@ const GetDocumentIncomingRelationshipsDocument = gql`
|
|
|
159
169
|
}
|
|
160
170
|
${PhDocumentFieldsFragmentDoc}
|
|
161
171
|
`;
|
|
172
|
+
const GetDocumentOutgoingRelationshipEdgesDocument = gql`
|
|
173
|
+
query GetDocumentOutgoingRelationshipEdges(
|
|
174
|
+
$sourceIdentifier: String!
|
|
175
|
+
$relationshipType: String
|
|
176
|
+
$view: ViewFilterInput
|
|
177
|
+
$paging: PagingInput
|
|
178
|
+
) {
|
|
179
|
+
documentOutgoingRelationshipEdges(
|
|
180
|
+
sourceIdentifier: $sourceIdentifier
|
|
181
|
+
relationshipType: $relationshipType
|
|
182
|
+
view: $view
|
|
183
|
+
paging: $paging
|
|
184
|
+
) {
|
|
185
|
+
items {
|
|
186
|
+
...DocumentRelationshipFields
|
|
187
|
+
}
|
|
188
|
+
totalCount
|
|
189
|
+
hasNextPage
|
|
190
|
+
hasPreviousPage
|
|
191
|
+
cursor
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
${DocumentRelationshipFieldsFragmentDoc}
|
|
195
|
+
`;
|
|
196
|
+
const GetDocumentIncomingRelationshipEdgesDocument = gql`
|
|
197
|
+
query GetDocumentIncomingRelationshipEdges(
|
|
198
|
+
$targetIdentifier: String!
|
|
199
|
+
$relationshipType: String
|
|
200
|
+
$view: ViewFilterInput
|
|
201
|
+
$paging: PagingInput
|
|
202
|
+
) {
|
|
203
|
+
documentIncomingRelationshipEdges(
|
|
204
|
+
targetIdentifier: $targetIdentifier
|
|
205
|
+
relationshipType: $relationshipType
|
|
206
|
+
view: $view
|
|
207
|
+
paging: $paging
|
|
208
|
+
) {
|
|
209
|
+
items {
|
|
210
|
+
...DocumentRelationshipFields
|
|
211
|
+
}
|
|
212
|
+
totalCount
|
|
213
|
+
hasNextPage
|
|
214
|
+
hasPreviousPage
|
|
215
|
+
cursor
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
${DocumentRelationshipFieldsFragmentDoc}
|
|
219
|
+
`;
|
|
162
220
|
const FindDocumentsDocument = gql`
|
|
163
221
|
query FindDocuments(
|
|
164
222
|
$search: SearchFilterInput
|
|
@@ -349,12 +407,34 @@ const AddRelationshipDocument = gql`
|
|
|
349
407
|
$sourceIdentifier: String!
|
|
350
408
|
$targetIdentifier: String!
|
|
351
409
|
$relationshipType: String!
|
|
410
|
+
$metadata: JSONObject
|
|
352
411
|
$branch: String
|
|
353
412
|
) {
|
|
354
413
|
addRelationship(
|
|
355
414
|
sourceIdentifier: $sourceIdentifier
|
|
356
415
|
targetIdentifier: $targetIdentifier
|
|
357
416
|
relationshipType: $relationshipType
|
|
417
|
+
metadata: $metadata
|
|
418
|
+
branch: $branch
|
|
419
|
+
) {
|
|
420
|
+
...PHDocumentFields
|
|
421
|
+
}
|
|
422
|
+
}
|
|
423
|
+
${PhDocumentFieldsFragmentDoc}
|
|
424
|
+
`;
|
|
425
|
+
const UpdateRelationshipDocument = gql`
|
|
426
|
+
mutation UpdateRelationship(
|
|
427
|
+
$sourceIdentifier: String!
|
|
428
|
+
$targetIdentifier: String!
|
|
429
|
+
$relationshipType: String!
|
|
430
|
+
$metadata: JSONObject
|
|
431
|
+
$branch: String
|
|
432
|
+
) {
|
|
433
|
+
updateRelationship(
|
|
434
|
+
sourceIdentifier: $sourceIdentifier
|
|
435
|
+
targetIdentifier: $targetIdentifier
|
|
436
|
+
relationshipType: $relationshipType
|
|
437
|
+
metadata: $metadata
|
|
358
438
|
branch: $branch
|
|
359
439
|
) {
|
|
360
440
|
...PHDocumentFields
|
|
@@ -589,6 +669,28 @@ function getSdk(client, withWrapper = defaultWrapper) {
|
|
|
589
669
|
signal
|
|
590
670
|
}), "GetDocumentIncomingRelationships", "query", variables);
|
|
591
671
|
},
|
|
672
|
+
GetDocumentOutgoingRelationshipEdges(variables, requestHeaders, signal) {
|
|
673
|
+
return withWrapper((wrappedRequestHeaders) => client.request({
|
|
674
|
+
document: GetDocumentOutgoingRelationshipEdgesDocument,
|
|
675
|
+
variables,
|
|
676
|
+
requestHeaders: {
|
|
677
|
+
...requestHeaders,
|
|
678
|
+
...wrappedRequestHeaders
|
|
679
|
+
},
|
|
680
|
+
signal
|
|
681
|
+
}), "GetDocumentOutgoingRelationshipEdges", "query", variables);
|
|
682
|
+
},
|
|
683
|
+
GetDocumentIncomingRelationshipEdges(variables, requestHeaders, signal) {
|
|
684
|
+
return withWrapper((wrappedRequestHeaders) => client.request({
|
|
685
|
+
document: GetDocumentIncomingRelationshipEdgesDocument,
|
|
686
|
+
variables,
|
|
687
|
+
requestHeaders: {
|
|
688
|
+
...requestHeaders,
|
|
689
|
+
...wrappedRequestHeaders
|
|
690
|
+
},
|
|
691
|
+
signal
|
|
692
|
+
}), "GetDocumentIncomingRelationshipEdges", "query", variables);
|
|
693
|
+
},
|
|
592
694
|
FindDocuments(variables, requestHeaders, signal) {
|
|
593
695
|
return withWrapper((wrappedRequestHeaders) => client.request({
|
|
594
696
|
document: FindDocumentsDocument,
|
|
@@ -710,6 +812,17 @@ function getSdk(client, withWrapper = defaultWrapper) {
|
|
|
710
812
|
signal
|
|
711
813
|
}), "AddRelationship", "mutation", variables);
|
|
712
814
|
},
|
|
815
|
+
UpdateRelationship(variables, requestHeaders, signal) {
|
|
816
|
+
return withWrapper((wrappedRequestHeaders) => client.request({
|
|
817
|
+
document: UpdateRelationshipDocument,
|
|
818
|
+
variables,
|
|
819
|
+
requestHeaders: {
|
|
820
|
+
...requestHeaders,
|
|
821
|
+
...wrappedRequestHeaders
|
|
822
|
+
},
|
|
823
|
+
signal
|
|
824
|
+
}), "UpdateRelationship", "mutation", variables);
|
|
825
|
+
},
|
|
713
826
|
RemoveRelationship(variables, requestHeaders, signal) {
|
|
714
827
|
return withWrapper((wrappedRequestHeaders) => client.request({
|
|
715
828
|
document: RemoveRelationshipDocument,
|
|
@@ -931,4 +1044,4 @@ function createClient(urlOrGQLClient, middleware) {
|
|
|
931
1044
|
//#endregion
|
|
932
1045
|
export { PhDocumentFieldsFragmentDoc as a, GetDocumentWithOperationsDocument as i, DocumentChangeType as n, PropagationMode as o, DocumentChangesDocument as r, createClient as t };
|
|
933
1046
|
|
|
934
|
-
//# sourceMappingURL=client-
|
|
1047
|
+
//# sourceMappingURL=client-D4bkR4pH.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client-D4bkR4pH.js","names":[],"sources":["../src/graphql/gen/schema.ts","../src/graphql/batch-queries.ts","../src/graphql/client.ts"],"sourcesContent":["import type { GraphQLClient, RequestOptions } from \"graphql-request\";\nimport { gql } from \"graphql-tag\";\nexport type Maybe<T> = T | null | undefined;\nexport type InputMaybe<T> = T | null | undefined;\nexport type Exact<T extends { [key: string]: unknown }> = {\n [K in keyof T]: T[K];\n};\nexport type MakeOptional<T, K extends keyof T> = Omit<T, K> & {\n [SubKey in K]?: Maybe<T[SubKey]>;\n};\nexport type MakeMaybe<T, K extends keyof T> = Omit<T, K> & {\n [SubKey in K]: Maybe<T[SubKey]>;\n};\nexport type MakeEmpty<\n T extends { [key: string]: unknown },\n K extends keyof T,\n> = { [_ in K]?: never };\nexport type Incremental<T> =\n | T\n | {\n [P in keyof T]?: P extends \" $fragmentName\" | \"__typename\" ? T[P] : never;\n };\ntype GraphQLClientRequestHeaders = RequestOptions[\"requestHeaders\"];\n/** All built-in and custom scalars, mapped to their actual values */\nexport type Scalars = {\n ID: { input: string; output: string };\n String: { input: string; output: string };\n Boolean: { input: boolean; output: boolean };\n Int: { input: number; output: number };\n Float: { input: number; output: number };\n DateTime: { input: string | Date; output: string | Date };\n JSONObject: { input: NonNullable<unknown>; output: NonNullable<unknown> };\n};\n\nexport type Action = {\n readonly context?: Maybe<ActionContext>;\n readonly id: Scalars[\"String\"][\"output\"];\n readonly input: Scalars[\"JSONObject\"][\"output\"];\n readonly scope: Scalars[\"String\"][\"output\"];\n readonly timestampUtcMs: Scalars[\"String\"][\"output\"];\n readonly type: Scalars[\"String\"][\"output\"];\n};\n\n/**\n * One operation an authorization preflight predicts a verdict for.\n *\n * `input` is what a conditional grant reads, so a candidate standing for a\n * filled-in form carries that form's input. Omitting it predicts the verdict an\n * empty input earns, not the verdict the filled-in form will get.\n */\nexport type ActionCandidateInput = {\n readonly input?: InputMaybe<Scalars[\"JSONObject\"][\"input\"]>;\n readonly scope: Scalars[\"String\"][\"input\"];\n readonly type: Scalars[\"String\"][\"input\"];\n};\n\nexport type ActionContext = {\n readonly signer?: Maybe<ReactorSigner>;\n};\n\n/**\n * An action's context, as a caller submits it.\n *\n * Declares every field `ActionContext` carries, because an input object rejects a\n * field it does not declare: an action stamped with the head it applies to - which\n * is what a signing client sends - is refused outright if these are missing, and\n * that refusal is a whole-request one, not a per-field one.\n *\n * `prevOpHash` and `prevOpIndex` are the scope head the action was composed\n * against. They are recorded rather than enforced; a signature is verified from\n * the params carried in its own tuple, which do not include them.\n */\nexport type ActionContextInput = {\n /** Covers replay of an operation that would otherwise be a no-op. */\n readonly nonce?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n /** The hash of the state the action applies to. */\n readonly prevOpHash?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n /** The index of the last operation in the scope the action applies to. */\n readonly prevOpIndex?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n readonly signer?: InputMaybe<ReactorSignerInput>;\n};\n\n/**\n * One candidate's predicted verdict. `reason` carries the refusal a DENY is\n * recorded with, and is null on an ALLOW.\n */\nexport type ActionEvaluation = {\n readonly decision: AuthDecision;\n readonly reason?: Maybe<Scalars[\"String\"][\"output\"]>;\n};\n\n/**\n * The predicted verdicts for a set of candidates, in the order they were given,\n * with the aggregates a caller branches on.\n *\n * The aggregates are redundant -- a verdict is binary -- and all four are returned\n * so a caller reads the one its question is phrased in rather than negating\n * another. Over no candidates every aggregate is false: nothing is allowed and\n * nothing is denied.\n */\nexport type ActionEvaluations = {\n readonly allAllowed: Scalars[\"Boolean\"][\"output\"];\n readonly allDenied: Scalars[\"Boolean\"][\"output\"];\n readonly anyAllowed: Scalars[\"Boolean\"][\"output\"];\n readonly anyDenied: Scalars[\"Boolean\"][\"output\"];\n readonly evaluations: ReadonlyArray<ActionEvaluation>;\n};\n\nexport type ActionInput = {\n readonly context?: InputMaybe<ActionContextInput>;\n readonly id: Scalars[\"String\"][\"input\"];\n readonly input: Scalars[\"JSONObject\"][\"input\"];\n readonly scope: Scalars[\"String\"][\"input\"];\n readonly timestampUtcMs: Scalars[\"String\"][\"input\"];\n readonly type: Scalars[\"String\"][\"input\"];\n};\n\nexport enum AuthDecision {\n Allow = \"ALLOW\",\n Deny = \"DENY\",\n}\n\nexport type ChannelMeta = {\n readonly id: Scalars[\"String\"][\"output\"];\n};\n\nexport type ChannelMetaInput = {\n readonly id: Scalars[\"String\"][\"input\"];\n};\n\nexport type DeadLetterInfo = {\n readonly branch: Scalars[\"String\"][\"output\"];\n readonly documentId: Scalars[\"String\"][\"output\"];\n readonly error: Scalars[\"String\"][\"output\"];\n /**\n * How the origin classified the failure. A peer needs this to mirror the origin's\n * quarantine decision; without it a held auth operation would freeze the document\n * on the peer side while the origin kept syncing.\n */\n readonly errorType?: Maybe<Scalars[\"String\"][\"output\"]>;\n readonly jobId: Scalars[\"String\"][\"output\"];\n readonly operationCount: Scalars[\"Int\"][\"output\"];\n readonly scopes: ReadonlyArray<Scalars[\"String\"][\"output\"]>;\n};\n\nexport type DocumentChangeContext = {\n readonly childId?: Maybe<Scalars[\"String\"][\"output\"]>;\n readonly parentId?: Maybe<Scalars[\"String\"][\"output\"]>;\n};\n\nexport type DocumentChangeEvent = {\n readonly context?: Maybe<DocumentChangeContext>;\n readonly documents: ReadonlyArray<PhDocument>;\n readonly type: DocumentChangeType;\n};\n\nexport enum DocumentChangeType {\n ChildAdded = \"CHILD_ADDED\",\n ChildRemoved = \"CHILD_REMOVED\",\n Created = \"CREATED\",\n Deleted = \"DELETED\",\n ParentAdded = \"PARENT_ADDED\",\n ParentRemoved = \"PARENT_REMOVED\",\n Updated = \"UPDATED\",\n}\n\nexport type DocumentModelGlobalState = {\n readonly id: Scalars[\"String\"][\"output\"];\n readonly name: Scalars[\"String\"][\"output\"];\n readonly namespace?: Maybe<Scalars[\"String\"][\"output\"]>;\n readonly specification: Scalars[\"JSONObject\"][\"output\"];\n readonly version?: Maybe<Scalars[\"String\"][\"output\"]>;\n};\n\nexport type DocumentModelResultPage = {\n readonly cursor?: Maybe<Scalars[\"String\"][\"output\"]>;\n readonly hasNextPage: Scalars[\"Boolean\"][\"output\"];\n readonly hasPreviousPage: Scalars[\"Boolean\"][\"output\"];\n readonly items: ReadonlyArray<DocumentModelGlobalState>;\n readonly totalCount: Scalars[\"Int\"][\"output\"];\n};\n\nexport type DocumentOperationsFilterInput = {\n readonly actionTypes?: InputMaybe<ReadonlyArray<Scalars[\"String\"][\"input\"]>>;\n readonly branch?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n readonly scopes?: InputMaybe<ReadonlyArray<Scalars[\"String\"][\"input\"]>>;\n readonly sinceRevision?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n readonly timestampFrom?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n readonly timestampTo?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n};\n\nexport type DocumentRelationship = {\n readonly createdAt: Scalars[\"DateTime\"][\"output\"];\n readonly metadata?: Maybe<Scalars[\"JSONObject\"][\"output\"]>;\n readonly relationshipType: Scalars[\"String\"][\"output\"];\n readonly sourceId: Scalars[\"String\"][\"output\"];\n readonly targetId: Scalars[\"String\"][\"output\"];\n readonly updatedAt: Scalars[\"DateTime\"][\"output\"];\n};\n\nexport type DocumentRelationshipResultPage = {\n readonly cursor?: Maybe<Scalars[\"String\"][\"output\"]>;\n readonly hasNextPage: Scalars[\"Boolean\"][\"output\"];\n readonly hasPreviousPage: Scalars[\"Boolean\"][\"output\"];\n readonly items: ReadonlyArray<DocumentRelationship>;\n readonly totalCount: Scalars[\"Int\"][\"output\"];\n};\n\nexport type DocumentWithChildren = {\n readonly childIds: ReadonlyArray<Scalars[\"String\"][\"output\"]>;\n readonly document: PhDocument;\n};\n\nexport type JobChangeEvent = {\n readonly error?: Maybe<Scalars[\"String\"][\"output\"]>;\n readonly jobId: Scalars[\"String\"][\"output\"];\n /**\n * What the job produced, once it has produced anything. Nullable for the same\n * reason as `JobInfo.result`: a job that has not written yet has produced\n * nothing, and an empty object would claim otherwise.\n */\n readonly result?: Maybe<Scalars[\"JSONObject\"][\"output\"]>;\n readonly status: Scalars[\"String\"][\"output\"];\n};\n\nexport type JobInfo = {\n readonly completedAt?: Maybe<Scalars[\"DateTime\"][\"output\"]>;\n readonly createdAt: Scalars[\"DateTime\"][\"output\"];\n readonly error?: Maybe<Scalars[\"String\"][\"output\"]>;\n readonly id: Scalars[\"String\"][\"output\"];\n /**\n * What the job produced, once it has produced anything. Null until then, which\n * is the state every job is in when it is handed back from a submission.\n */\n readonly result?: Maybe<Scalars[\"JSONObject\"][\"output\"]>;\n readonly status: Scalars[\"String\"][\"output\"];\n};\n\nexport type MoveRelationshipResult = {\n readonly source: PhDocument;\n readonly target: PhDocument;\n};\n\nexport type Mutation = {\n readonly addRelationship: PhDocument;\n readonly createDocument: PhDocument;\n readonly createEmptyDocument: PhDocument;\n readonly deleteDocument: Scalars[\"Boolean\"][\"output\"];\n readonly deleteDocuments: Scalars[\"Boolean\"][\"output\"];\n /**\n * Applies actions to a document and waits for the result.\n *\n * Each action is coerced against `ActionInput`, so one missing a field the wire\n * declares is refused before any work starts. The id in particular: it is hashed\n * into the operation id and replay dedupes by it, so an action without one is\n * stored under an operation id shared by every id-less operation on the same\n * document, scope and branch.\n *\n * Named for `IReactorClient.execute`, which this is the wire form of. `branch`\n * defaults to `main`.\n */\n readonly execute: PhDocument;\n /**\n * Submits actions to a document and returns the job that will apply them.\n *\n * Coerced exactly as `execute` is, so a malformed action is refused here rather\n * than surfacing later as a failed job. Returns the job rather than only its id,\n * so a caller has the status and the creation time it would otherwise have to\n * ask for; `result` is null until the job produces one.\n */\n readonly executeAsync: JobInfo;\n readonly moveRelationship: MoveRelationshipResult;\n /** @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. */\n readonly mutateDocument: PhDocument;\n /** @deprecated Use executeAsync, which is typed and returns the job rather than only its id. */\n readonly mutateDocumentAsync: Scalars[\"String\"][\"output\"];\n readonly pushSyncEnvelopes: Scalars[\"Boolean\"][\"output\"];\n readonly removeRelationship: PhDocument;\n readonly renameDocument: PhDocument;\n readonly setPreferredEditor: PhDocument;\n readonly touchChannel: TouchChannelResult;\n readonly updateRelationship: PhDocument;\n};\n\nexport type MutationAddRelationshipArgs = {\n branch?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n metadata?: InputMaybe<Scalars[\"JSONObject\"][\"input\"]>;\n relationshipType: Scalars[\"String\"][\"input\"];\n sourceIdentifier: Scalars[\"String\"][\"input\"];\n targetIdentifier: Scalars[\"String\"][\"input\"];\n};\n\nexport type MutationCreateDocumentArgs = {\n document: Scalars[\"JSONObject\"][\"input\"];\n parentIdentifier?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n};\n\nexport type MutationCreateEmptyDocumentArgs = {\n documentType: Scalars[\"String\"][\"input\"];\n parentIdentifier?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n};\n\nexport type MutationDeleteDocumentArgs = {\n identifier: Scalars[\"String\"][\"input\"];\n propagate?: InputMaybe<PropagationMode>;\n};\n\nexport type MutationDeleteDocumentsArgs = {\n identifiers: ReadonlyArray<Scalars[\"String\"][\"input\"]>;\n propagate?: InputMaybe<PropagationMode>;\n};\n\nexport type MutationExecuteArgs = {\n actions: ReadonlyArray<ActionInput>;\n branch?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n documentIdentifier: Scalars[\"String\"][\"input\"];\n};\n\nexport type MutationExecuteAsyncArgs = {\n actions: ReadonlyArray<ActionInput>;\n branch?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n documentIdentifier: Scalars[\"String\"][\"input\"];\n};\n\nexport type MutationMoveRelationshipArgs = {\n branch?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n relationshipType: Scalars[\"String\"][\"input\"];\n sourceParentIdentifier: Scalars[\"String\"][\"input\"];\n targetIdentifier: Scalars[\"String\"][\"input\"];\n targetParentIdentifier: Scalars[\"String\"][\"input\"];\n};\n\nexport type MutationMutateDocumentArgs = {\n actions: ReadonlyArray<Scalars[\"JSONObject\"][\"input\"]>;\n documentIdentifier: Scalars[\"String\"][\"input\"];\n view?: InputMaybe<ViewFilterInput>;\n};\n\nexport type MutationMutateDocumentAsyncArgs = {\n actions: ReadonlyArray<Scalars[\"JSONObject\"][\"input\"]>;\n documentIdentifier: Scalars[\"String\"][\"input\"];\n view?: InputMaybe<ViewFilterInput>;\n};\n\nexport type MutationPushSyncEnvelopesArgs = {\n envelopes: ReadonlyArray<SyncEnvelopeInput>;\n};\n\nexport type MutationRemoveRelationshipArgs = {\n branch?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n relationshipType: Scalars[\"String\"][\"input\"];\n sourceIdentifier: Scalars[\"String\"][\"input\"];\n targetIdentifier: Scalars[\"String\"][\"input\"];\n};\n\nexport type MutationRenameDocumentArgs = {\n branch?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n documentIdentifier: Scalars[\"String\"][\"input\"];\n name: Scalars[\"String\"][\"input\"];\n};\n\nexport type MutationSetPreferredEditorArgs = {\n branch?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n documentIdentifier: Scalars[\"String\"][\"input\"];\n preferredEditor?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n};\n\nexport type MutationTouchChannelArgs = {\n input: TouchChannelInput;\n};\n\nexport type MutationUpdateRelationshipArgs = {\n branch?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n metadata?: InputMaybe<Scalars[\"JSONObject\"][\"input\"]>;\n relationshipType: Scalars[\"String\"][\"input\"];\n sourceIdentifier: Scalars[\"String\"][\"input\"];\n targetIdentifier: Scalars[\"String\"][\"input\"];\n};\n\nexport type OperationContext = {\n readonly branch: Scalars[\"String\"][\"output\"];\n readonly documentId: Scalars[\"String\"][\"output\"];\n readonly documentType: Scalars[\"String\"][\"output\"];\n readonly ordinal: Scalars[\"Int\"][\"output\"];\n readonly scope: Scalars[\"String\"][\"output\"];\n};\n\nexport type OperationContextInput = {\n readonly branch: Scalars[\"String\"][\"input\"];\n readonly documentId: Scalars[\"String\"][\"input\"];\n readonly documentType: Scalars[\"String\"][\"input\"];\n readonly ordinal: Scalars[\"Int\"][\"input\"];\n readonly scope: Scalars[\"String\"][\"input\"];\n};\n\nexport type OperationInput = {\n readonly action: ActionInput;\n readonly deniedReason?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n readonly error?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n readonly hash: Scalars[\"String\"][\"input\"];\n readonly id?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n readonly index: Scalars[\"Int\"][\"input\"];\n readonly skip: Scalars[\"Int\"][\"input\"];\n readonly timestampUtcMs: Scalars[\"String\"][\"input\"];\n};\n\nexport type OperationWithContext = {\n readonly context: OperationContext;\n readonly operation: ReactorOperation;\n};\n\nexport type OperationWithContextInput = {\n readonly context: OperationContextInput;\n readonly operation: OperationInput;\n};\n\nexport type OperationsFilterInput = {\n readonly actionTypes?: InputMaybe<ReadonlyArray<Scalars[\"String\"][\"input\"]>>;\n readonly branch?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n readonly documentId: Scalars[\"String\"][\"input\"];\n readonly scopes?: InputMaybe<ReadonlyArray<Scalars[\"String\"][\"input\"]>>;\n readonly sinceRevision?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n readonly timestampFrom?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n readonly timestampTo?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n};\n\nexport type PhDocument = {\n readonly createdAtUtcIso: Scalars[\"DateTime\"][\"output\"];\n readonly documentType: Scalars[\"String\"][\"output\"];\n readonly id: Scalars[\"String\"][\"output\"];\n readonly lastModifiedAtUtcIso: Scalars[\"DateTime\"][\"output\"];\n readonly name: Scalars[\"String\"][\"output\"];\n readonly operations?: Maybe<ReactorOperationResultPage>;\n readonly preferredEditor?: Maybe<Scalars[\"String\"][\"output\"]>;\n readonly revisionsList: ReadonlyArray<Revision>;\n readonly slug?: Maybe<Scalars[\"String\"][\"output\"]>;\n readonly state: Scalars[\"JSONObject\"][\"output\"];\n};\n\nexport type PhDocumentOperationsArgs = {\n filter?: InputMaybe<DocumentOperationsFilterInput>;\n paging?: InputMaybe<PagingInput>;\n};\n\nexport type PhDocumentResultPage = {\n readonly cursor?: Maybe<Scalars[\"String\"][\"output\"]>;\n readonly hasNextPage: Scalars[\"Boolean\"][\"output\"];\n readonly hasPreviousPage: Scalars[\"Boolean\"][\"output\"];\n readonly items: ReadonlyArray<PhDocument>;\n readonly totalCount: Scalars[\"Int\"][\"output\"];\n};\n\nexport type PagingInput = {\n readonly cursor?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n readonly limit?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n readonly offset?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n};\n\nexport type PollSyncEnvelopesResult = {\n readonly ackOrdinal: Scalars[\"Int\"][\"output\"];\n readonly deadLetters: ReadonlyArray<DeadLetterInfo>;\n readonly envelopes: ReadonlyArray<SyncEnvelope>;\n readonly hasMore: Scalars[\"Boolean\"][\"output\"];\n};\n\nexport enum PropagationMode {\n Cascade = \"CASCADE\",\n Orphan = \"ORPHAN\",\n}\n\nexport type Query = {\n readonly document?: Maybe<DocumentWithChildren>;\n readonly documentIncomingRelationshipEdges: DocumentRelationshipResultPage;\n readonly documentIncomingRelationships: PhDocumentResultPage;\n readonly documentModels: DocumentModelResultPage;\n readonly documentOperations: ReactorOperationResultPage;\n readonly documentOutgoingRelationshipEdges: DocumentRelationshipResultPage;\n readonly documentOutgoingRelationships: PhDocumentResultPage;\n /**\n * Predicts whether the calling subject would be admitted to execute each of a\n * set of candidate operations, without submitting any of them. A UI asks this to\n * disable a control rather than offer an action that fails on submit.\n *\n * The answer is a prediction, not a promise:\n *\n * - Real admission compiles an append condition over everything it read and the\n * store enforces it at write time. A preflight reads no future, so a policy\n * change landing between this answer and the submit changes the verdict. The\n * submit path stays the only authority.\n * - The verdict is evaluated at the stream heads, so it is correct for a\n * candidate about to be submitted. A backdated submission is out of contract;\n * the reactor decides that one by position.\n * - A candidate whose verdict depends on its input has to carry that input, since\n * a conditional grant reads it.\n *\n * The subject is the authenticated caller and cannot be named in the request:\n * answering for an arbitrary subject would disclose what a policy grants\n * somebody else. It carries both the caller's address and the did:key of the app\n * instance whose token authenticated the request, so a policy naming either\n * matches the same principal the write path presents.\n *\n * Requires the reactor's authEnforcement feature flag. Without it the reactor\n * holds no decision model, so this fails with extensions.code\n * AUTH_EVALUATION_UNSUPPORTED rather than guessing.\n */\n readonly evaluateActions: ActionEvaluations;\n readonly findDocuments: PhDocumentResultPage;\n readonly jobStatus?: Maybe<JobInfo>;\n /**\n * Polls for sync envelopes from a channel.\n *\n * An operation stored before the API required an action id cannot be\n * represented by this schema, and rather than serving a partial response beside\n * a bare non-null violation, this fails with extensions.code\n * MALFORMED_STORED_OPERATION naming the operation. That code means the failure\n * is worth polling through: the document holding the operation needs repairing,\n * but the channel serves every other document, and a peer that stopped polling\n * would stop receiving those too.\n */\n readonly pollSyncEnvelopes: PollSyncEnvelopesResult;\n};\n\nexport type QueryDocumentArgs = {\n identifier: Scalars[\"String\"][\"input\"];\n view?: InputMaybe<ViewFilterInput>;\n};\n\nexport type QueryDocumentIncomingRelationshipEdgesArgs = {\n paging?: InputMaybe<PagingInput>;\n relationshipType?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n targetIdentifier: Scalars[\"String\"][\"input\"];\n view?: InputMaybe<ViewFilterInput>;\n};\n\nexport type QueryDocumentIncomingRelationshipsArgs = {\n paging?: InputMaybe<PagingInput>;\n relationshipType: Scalars[\"String\"][\"input\"];\n targetIdentifier: Scalars[\"String\"][\"input\"];\n view?: InputMaybe<ViewFilterInput>;\n};\n\nexport type QueryDocumentModelsArgs = {\n namespace?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n paging?: InputMaybe<PagingInput>;\n};\n\nexport type QueryDocumentOperationsArgs = {\n filter: OperationsFilterInput;\n paging?: InputMaybe<PagingInput>;\n};\n\nexport type QueryDocumentOutgoingRelationshipEdgesArgs = {\n paging?: InputMaybe<PagingInput>;\n relationshipType?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n sourceIdentifier: Scalars[\"String\"][\"input\"];\n view?: InputMaybe<ViewFilterInput>;\n};\n\nexport type QueryDocumentOutgoingRelationshipsArgs = {\n paging?: InputMaybe<PagingInput>;\n relationshipType: Scalars[\"String\"][\"input\"];\n sourceIdentifier: Scalars[\"String\"][\"input\"];\n view?: InputMaybe<ViewFilterInput>;\n};\n\nexport type QueryEvaluateActionsArgs = {\n branch?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n candidates: ReadonlyArray<ActionCandidateInput>;\n documentIdentifier: Scalars[\"String\"][\"input\"];\n};\n\nexport type QueryFindDocumentsArgs = {\n paging?: InputMaybe<PagingInput>;\n search?: InputMaybe<SearchFilterInput>;\n view?: InputMaybe<ViewFilterInput>;\n};\n\nexport type QueryJobStatusArgs = {\n jobId: Scalars[\"String\"][\"input\"];\n};\n\nexport type QueryPollSyncEnvelopesArgs = {\n channelId: Scalars[\"String\"][\"input\"];\n outboxAck: Scalars[\"Int\"][\"input\"];\n outboxLatest: Scalars[\"Int\"][\"input\"];\n};\n\nexport type ReactorOperation = {\n readonly action: Action;\n readonly deniedReason?: Maybe<Scalars[\"String\"][\"output\"]>;\n readonly error?: Maybe<Scalars[\"String\"][\"output\"]>;\n readonly hash: Scalars[\"String\"][\"output\"];\n readonly id?: Maybe<Scalars[\"String\"][\"output\"]>;\n readonly index: Scalars[\"Int\"][\"output\"];\n readonly skip: Scalars[\"Int\"][\"output\"];\n readonly timestampUtcMs: Scalars[\"String\"][\"output\"];\n};\n\nexport type ReactorOperationResultPage = {\n readonly cursor?: Maybe<Scalars[\"String\"][\"output\"]>;\n readonly hasNextPage: Scalars[\"Boolean\"][\"output\"];\n readonly hasPreviousPage: Scalars[\"Boolean\"][\"output\"];\n readonly items: ReadonlyArray<ReactorOperation>;\n readonly totalCount: Scalars[\"Int\"][\"output\"];\n};\n\nexport type ReactorSigner = {\n readonly app?: Maybe<ReactorSignerApp>;\n readonly signatures: ReadonlyArray<Scalars[\"String\"][\"output\"]>;\n readonly user?: Maybe<ReactorSignerUser>;\n};\n\nexport type ReactorSignerApp = {\n readonly key: Scalars[\"String\"][\"output\"];\n readonly name: Scalars[\"String\"][\"output\"];\n};\n\nexport type ReactorSignerAppInput = {\n readonly key: Scalars[\"String\"][\"input\"];\n readonly name: Scalars[\"String\"][\"input\"];\n};\n\nexport type ReactorSignerInput = {\n readonly app?: InputMaybe<ReactorSignerAppInput>;\n readonly signatures: ReadonlyArray<Scalars[\"String\"][\"input\"]>;\n readonly user?: InputMaybe<ReactorSignerUserInput>;\n};\n\nexport type ReactorSignerUser = {\n readonly address: Scalars[\"String\"][\"output\"];\n readonly chainId: Scalars[\"Int\"][\"output\"];\n readonly networkId: Scalars[\"String\"][\"output\"];\n};\n\nexport type ReactorSignerUserInput = {\n readonly address: Scalars[\"String\"][\"input\"];\n readonly chainId: Scalars[\"Int\"][\"input\"];\n readonly networkId: Scalars[\"String\"][\"input\"];\n};\n\nexport type RemoteCursor = {\n readonly cursorOrdinal: Scalars[\"Int\"][\"output\"];\n readonly lastSyncedAtUtcMs?: Maybe<Scalars[\"String\"][\"output\"]>;\n readonly remoteName: Scalars[\"String\"][\"output\"];\n};\n\nexport type RemoteCursorInput = {\n readonly cursorOrdinal: Scalars[\"Int\"][\"input\"];\n readonly lastSyncedAtUtcMs?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n readonly remoteName: Scalars[\"String\"][\"input\"];\n};\n\nexport type RemoteFilterInput = {\n readonly branch: Scalars[\"String\"][\"input\"];\n readonly documentId: ReadonlyArray<Scalars[\"String\"][\"input\"]>;\n readonly scope: ReadonlyArray<Scalars[\"String\"][\"input\"]>;\n};\n\nexport type Revision = {\n readonly revision: Scalars[\"Int\"][\"output\"];\n readonly scope: Scalars[\"String\"][\"output\"];\n};\n\nexport type SearchFilterInput = {\n readonly identifiers?: InputMaybe<ReadonlyArray<Scalars[\"String\"][\"input\"]>>;\n readonly parentId?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n readonly type?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n};\n\nexport type Subscription = {\n readonly documentChanges: DocumentChangeEvent;\n readonly jobChanges: JobChangeEvent;\n};\n\nexport type SubscriptionDocumentChangesArgs = {\n search?: InputMaybe<SearchFilterInput>;\n view?: InputMaybe<ViewFilterInput>;\n};\n\nexport type SubscriptionJobChangesArgs = {\n jobId: Scalars[\"String\"][\"input\"];\n};\n\nexport type SyncEnvelope = {\n readonly channelMeta: ChannelMeta;\n readonly cursor?: Maybe<RemoteCursor>;\n readonly dependsOn?: Maybe<ReadonlyArray<Scalars[\"String\"][\"output\"]>>;\n readonly key?: Maybe<Scalars[\"String\"][\"output\"]>;\n readonly operations?: Maybe<ReadonlyArray<OperationWithContext>>;\n readonly type: SyncEnvelopeType;\n};\n\nexport type SyncEnvelopeInput = {\n readonly channelMeta: ChannelMetaInput;\n readonly cursor?: InputMaybe<RemoteCursorInput>;\n readonly dependsOn?: InputMaybe<ReadonlyArray<Scalars[\"String\"][\"input\"]>>;\n readonly key?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n readonly operations?: InputMaybe<ReadonlyArray<OperationWithContextInput>>;\n readonly type: SyncEnvelopeType;\n};\n\nexport enum SyncEnvelopeType {\n Ack = \"ACK\",\n Operations = \"OPERATIONS\",\n}\n\nexport type TouchChannelInput = {\n readonly collectionId: Scalars[\"String\"][\"input\"];\n readonly filter: RemoteFilterInput;\n readonly id: Scalars[\"String\"][\"input\"];\n readonly name: Scalars[\"String\"][\"input\"];\n readonly sinceTimestampUtcMs: Scalars[\"String\"][\"input\"];\n};\n\nexport type TouchChannelResult = {\n readonly ackOrdinal: Scalars[\"Int\"][\"output\"];\n readonly success: Scalars[\"Boolean\"][\"output\"];\n};\n\nexport type ViewFilterInput = {\n readonly branch?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n readonly scopes?: InputMaybe<ReadonlyArray<Scalars[\"String\"][\"input\"]>>;\n};\n\nexport type PhDocumentFieldsFragment = {\n readonly id: string;\n readonly slug?: string | null | undefined;\n readonly name: string;\n readonly documentType: string;\n readonly state: NonNullable<unknown>;\n readonly createdAtUtcIso: string | Date;\n readonly lastModifiedAtUtcIso: string | Date;\n readonly revisionsList: ReadonlyArray<{\n readonly scope: string;\n readonly revision: number;\n }>;\n};\n\nexport type DocumentRelationshipFieldsFragment = {\n readonly sourceId: string;\n readonly targetId: string;\n readonly relationshipType: string;\n readonly metadata?: NonNullable<unknown> | null | undefined;\n readonly createdAt: string | Date;\n readonly updatedAt: string | Date;\n};\n\nexport type GetDocumentModelsQueryVariables = Exact<{\n namespace?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n paging?: InputMaybe<PagingInput>;\n}>;\n\nexport type GetDocumentModelsQuery = {\n readonly documentModels: {\n readonly totalCount: number;\n readonly hasNextPage: boolean;\n readonly hasPreviousPage: boolean;\n readonly cursor?: string | null | undefined;\n readonly items: ReadonlyArray<{\n readonly id: string;\n readonly name: string;\n readonly namespace?: string | null | undefined;\n readonly version?: string | null | undefined;\n readonly specification: NonNullable<unknown>;\n }>;\n };\n};\n\nexport type GetDocumentQueryVariables = Exact<{\n identifier: Scalars[\"String\"][\"input\"];\n view?: InputMaybe<ViewFilterInput>;\n}>;\n\nexport type GetDocumentQuery = {\n readonly document?:\n | {\n readonly childIds: ReadonlyArray<string>;\n readonly document: {\n readonly id: string;\n readonly slug?: string | null | undefined;\n readonly name: string;\n readonly documentType: string;\n readonly state: NonNullable<unknown>;\n readonly createdAtUtcIso: string | Date;\n readonly lastModifiedAtUtcIso: string | Date;\n readonly revisionsList: ReadonlyArray<{\n readonly scope: string;\n readonly revision: number;\n }>;\n };\n }\n | null\n | undefined;\n};\n\nexport type GetDocumentWithOperationsQueryVariables = Exact<{\n identifier: Scalars[\"String\"][\"input\"];\n view?: InputMaybe<ViewFilterInput>;\n operationsFilter?: InputMaybe<DocumentOperationsFilterInput>;\n operationsPaging?: InputMaybe<PagingInput>;\n}>;\n\nexport type GetDocumentWithOperationsQuery = {\n readonly document?:\n | {\n readonly childIds: ReadonlyArray<string>;\n readonly document: {\n readonly id: string;\n readonly slug?: string | null | undefined;\n readonly name: string;\n readonly documentType: string;\n readonly state: NonNullable<unknown>;\n readonly createdAtUtcIso: string | Date;\n readonly lastModifiedAtUtcIso: string | Date;\n readonly operations?:\n | {\n readonly totalCount: number;\n readonly hasNextPage: boolean;\n readonly hasPreviousPage: boolean;\n readonly cursor?: string | null | undefined;\n readonly items: ReadonlyArray<{\n readonly index: number;\n readonly timestampUtcMs: string;\n readonly hash: string;\n readonly skip: number;\n readonly error?: string | null | undefined;\n readonly deniedReason?: string | null | undefined;\n readonly id?: string | null | undefined;\n readonly action: {\n readonly id: string;\n readonly type: string;\n readonly timestampUtcMs: string;\n readonly input: NonNullable<unknown>;\n readonly scope: string;\n readonly context?:\n | {\n readonly signer?:\n | {\n readonly signatures: ReadonlyArray<string>;\n readonly user?:\n | {\n readonly address: string;\n readonly networkId: string;\n readonly chainId: number;\n }\n | null\n | undefined;\n readonly app?:\n | {\n readonly name: string;\n readonly key: string;\n }\n | null\n | undefined;\n }\n | null\n | undefined;\n }\n | null\n | undefined;\n };\n }>;\n }\n | null\n | undefined;\n readonly revisionsList: ReadonlyArray<{\n readonly scope: string;\n readonly revision: number;\n }>;\n };\n }\n | null\n | undefined;\n};\n\nexport type GetDocumentOutgoingRelationshipsQueryVariables = Exact<{\n sourceIdentifier: Scalars[\"String\"][\"input\"];\n relationshipType: Scalars[\"String\"][\"input\"];\n view?: InputMaybe<ViewFilterInput>;\n paging?: InputMaybe<PagingInput>;\n}>;\n\nexport type GetDocumentOutgoingRelationshipsQuery = {\n readonly documentOutgoingRelationships: {\n readonly totalCount: number;\n readonly hasNextPage: boolean;\n readonly hasPreviousPage: boolean;\n readonly cursor?: string | null | undefined;\n readonly items: ReadonlyArray<{\n readonly id: string;\n readonly slug?: string | null | undefined;\n readonly name: string;\n readonly documentType: string;\n readonly state: NonNullable<unknown>;\n readonly createdAtUtcIso: string | Date;\n readonly lastModifiedAtUtcIso: string | Date;\n readonly revisionsList: ReadonlyArray<{\n readonly scope: string;\n readonly revision: number;\n }>;\n }>;\n };\n};\n\nexport type GetDocumentIncomingRelationshipsQueryVariables = Exact<{\n targetIdentifier: Scalars[\"String\"][\"input\"];\n relationshipType: Scalars[\"String\"][\"input\"];\n view?: InputMaybe<ViewFilterInput>;\n paging?: InputMaybe<PagingInput>;\n}>;\n\nexport type GetDocumentIncomingRelationshipsQuery = {\n readonly documentIncomingRelationships: {\n readonly totalCount: number;\n readonly hasNextPage: boolean;\n readonly hasPreviousPage: boolean;\n readonly cursor?: string | null | undefined;\n readonly items: ReadonlyArray<{\n readonly id: string;\n readonly slug?: string | null | undefined;\n readonly name: string;\n readonly documentType: string;\n readonly state: NonNullable<unknown>;\n readonly createdAtUtcIso: string | Date;\n readonly lastModifiedAtUtcIso: string | Date;\n readonly revisionsList: ReadonlyArray<{\n readonly scope: string;\n readonly revision: number;\n }>;\n }>;\n };\n};\n\nexport type GetDocumentOutgoingRelationshipEdgesQueryVariables = Exact<{\n sourceIdentifier: Scalars[\"String\"][\"input\"];\n relationshipType?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n view?: InputMaybe<ViewFilterInput>;\n paging?: InputMaybe<PagingInput>;\n}>;\n\nexport type GetDocumentOutgoingRelationshipEdgesQuery = {\n readonly documentOutgoingRelationshipEdges: {\n readonly totalCount: number;\n readonly hasNextPage: boolean;\n readonly hasPreviousPage: boolean;\n readonly cursor?: string | null | undefined;\n readonly items: ReadonlyArray<{\n readonly sourceId: string;\n readonly targetId: string;\n readonly relationshipType: string;\n readonly metadata?: NonNullable<unknown> | null | undefined;\n readonly createdAt: string | Date;\n readonly updatedAt: string | Date;\n }>;\n };\n};\n\nexport type GetDocumentIncomingRelationshipEdgesQueryVariables = Exact<{\n targetIdentifier: Scalars[\"String\"][\"input\"];\n relationshipType?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n view?: InputMaybe<ViewFilterInput>;\n paging?: InputMaybe<PagingInput>;\n}>;\n\nexport type GetDocumentIncomingRelationshipEdgesQuery = {\n readonly documentIncomingRelationshipEdges: {\n readonly totalCount: number;\n readonly hasNextPage: boolean;\n readonly hasPreviousPage: boolean;\n readonly cursor?: string | null | undefined;\n readonly items: ReadonlyArray<{\n readonly sourceId: string;\n readonly targetId: string;\n readonly relationshipType: string;\n readonly metadata?: NonNullable<unknown> | null | undefined;\n readonly createdAt: string | Date;\n readonly updatedAt: string | Date;\n }>;\n };\n};\n\nexport type FindDocumentsQueryVariables = Exact<{\n search?: InputMaybe<SearchFilterInput>;\n view?: InputMaybe<ViewFilterInput>;\n paging?: InputMaybe<PagingInput>;\n}>;\n\nexport type FindDocumentsQuery = {\n readonly findDocuments: {\n readonly totalCount: number;\n readonly hasNextPage: boolean;\n readonly hasPreviousPage: boolean;\n readonly cursor?: string | null | undefined;\n readonly items: ReadonlyArray<{\n readonly id: string;\n readonly slug?: string | null | undefined;\n readonly name: string;\n readonly documentType: string;\n readonly state: NonNullable<unknown>;\n readonly createdAtUtcIso: string | Date;\n readonly lastModifiedAtUtcIso: string | Date;\n readonly revisionsList: ReadonlyArray<{\n readonly scope: string;\n readonly revision: number;\n }>;\n }>;\n };\n};\n\nexport type GetDocumentOperationsQueryVariables = Exact<{\n filter: OperationsFilterInput;\n paging?: InputMaybe<PagingInput>;\n}>;\n\nexport type GetDocumentOperationsQuery = {\n readonly documentOperations: {\n readonly totalCount: number;\n readonly hasNextPage: boolean;\n readonly hasPreviousPage: boolean;\n readonly cursor?: string | null | undefined;\n readonly items: ReadonlyArray<{\n readonly index: number;\n readonly timestampUtcMs: string;\n readonly hash: string;\n readonly skip: number;\n readonly error?: string | null | undefined;\n readonly deniedReason?: string | null | undefined;\n readonly id?: string | null | undefined;\n readonly action: {\n readonly id: string;\n readonly type: string;\n readonly timestampUtcMs: string;\n readonly input: NonNullable<unknown>;\n readonly scope: string;\n readonly context?:\n | {\n readonly signer?:\n | {\n readonly signatures: ReadonlyArray<string>;\n readonly user?:\n | {\n readonly address: string;\n readonly networkId: string;\n readonly chainId: number;\n }\n | null\n | undefined;\n readonly app?:\n | { readonly name: string; readonly key: string }\n | null\n | undefined;\n }\n | null\n | undefined;\n }\n | null\n | undefined;\n };\n }>;\n };\n};\n\nexport type GetJobStatusQueryVariables = Exact<{\n jobId: Scalars[\"String\"][\"input\"];\n}>;\n\nexport type GetJobStatusQuery = {\n readonly jobStatus?:\n | {\n readonly id: string;\n readonly status: string;\n readonly result?: NonNullable<unknown> | null | undefined;\n readonly error?: string | null | undefined;\n readonly createdAt: string | Date;\n readonly completedAt?: string | Date | null | undefined;\n }\n | null\n | undefined;\n};\n\nexport type EvaluateActionsQueryVariables = Exact<{\n documentIdentifier: Scalars[\"String\"][\"input\"];\n branch?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n candidates: ReadonlyArray<ActionCandidateInput>;\n}>;\n\nexport type EvaluateActionsQuery = {\n readonly evaluateActions: {\n readonly allAllowed: boolean;\n readonly anyAllowed: boolean;\n readonly allDenied: boolean;\n readonly anyDenied: boolean;\n readonly evaluations: ReadonlyArray<{\n readonly decision: AuthDecision;\n readonly reason?: string | null | undefined;\n }>;\n };\n};\n\nexport type CreateDocumentMutationVariables = Exact<{\n document: Scalars[\"JSONObject\"][\"input\"];\n parentIdentifier?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n}>;\n\nexport type CreateDocumentMutation = {\n readonly createDocument: {\n readonly id: string;\n readonly slug?: string | null | undefined;\n readonly name: string;\n readonly documentType: string;\n readonly state: NonNullable<unknown>;\n readonly createdAtUtcIso: string | Date;\n readonly lastModifiedAtUtcIso: string | Date;\n readonly revisionsList: ReadonlyArray<{\n readonly scope: string;\n readonly revision: number;\n }>;\n };\n};\n\nexport type CreateEmptyDocumentMutationVariables = Exact<{\n documentType: Scalars[\"String\"][\"input\"];\n parentIdentifier?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n}>;\n\nexport type CreateEmptyDocumentMutation = {\n readonly createEmptyDocument: {\n readonly id: string;\n readonly slug?: string | null | undefined;\n readonly name: string;\n readonly documentType: string;\n readonly state: NonNullable<unknown>;\n readonly createdAtUtcIso: string | Date;\n readonly lastModifiedAtUtcIso: string | Date;\n readonly revisionsList: ReadonlyArray<{\n readonly scope: string;\n readonly revision: number;\n }>;\n };\n};\n\nexport type MutateDocumentMutationVariables = Exact<{\n documentIdentifier: Scalars[\"String\"][\"input\"];\n actions: ReadonlyArray<ActionInput>;\n branch?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n}>;\n\nexport type MutateDocumentMutation = {\n readonly mutateDocument: {\n readonly id: string;\n readonly slug?: string | null | undefined;\n readonly name: string;\n readonly documentType: string;\n readonly state: NonNullable<unknown>;\n readonly createdAtUtcIso: string | Date;\n readonly lastModifiedAtUtcIso: string | Date;\n readonly revisionsList: ReadonlyArray<{\n readonly scope: string;\n readonly revision: number;\n }>;\n };\n};\n\nexport type MutateDocumentAsyncMutationVariables = Exact<{\n documentIdentifier: Scalars[\"String\"][\"input\"];\n actions: ReadonlyArray<ActionInput>;\n branch?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n}>;\n\nexport type MutateDocumentAsyncMutation = {\n readonly mutateDocumentAsync: {\n readonly id: string;\n readonly status: string;\n readonly result?: NonNullable<unknown> | null | undefined;\n readonly error?: string | null | undefined;\n readonly createdAt: string | Date;\n readonly completedAt?: string | Date | null | undefined;\n };\n};\n\nexport type RenameDocumentMutationVariables = Exact<{\n documentIdentifier: Scalars[\"String\"][\"input\"];\n name: Scalars[\"String\"][\"input\"];\n branch?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n}>;\n\nexport type RenameDocumentMutation = {\n readonly renameDocument: {\n readonly id: string;\n readonly slug?: string | null | undefined;\n readonly name: string;\n readonly documentType: string;\n readonly state: NonNullable<unknown>;\n readonly createdAtUtcIso: string | Date;\n readonly lastModifiedAtUtcIso: string | Date;\n readonly revisionsList: ReadonlyArray<{\n readonly scope: string;\n readonly revision: number;\n }>;\n };\n};\n\nexport type SetPreferredEditorMutationVariables = Exact<{\n documentIdentifier: Scalars[\"String\"][\"input\"];\n preferredEditor?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n branch?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n}>;\n\nexport type SetPreferredEditorMutation = {\n readonly setPreferredEditor: {\n readonly id: string;\n readonly slug?: string | null | undefined;\n readonly name: string;\n readonly documentType: string;\n readonly state: NonNullable<unknown>;\n readonly createdAtUtcIso: string | Date;\n readonly lastModifiedAtUtcIso: string | Date;\n readonly revisionsList: ReadonlyArray<{\n readonly scope: string;\n readonly revision: number;\n }>;\n };\n};\n\nexport type AddRelationshipMutationVariables = Exact<{\n sourceIdentifier: Scalars[\"String\"][\"input\"];\n targetIdentifier: Scalars[\"String\"][\"input\"];\n relationshipType: Scalars[\"String\"][\"input\"];\n metadata?: InputMaybe<Scalars[\"JSONObject\"][\"input\"]>;\n branch?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n}>;\n\nexport type AddRelationshipMutation = {\n readonly addRelationship: {\n readonly id: string;\n readonly slug?: string | null | undefined;\n readonly name: string;\n readonly documentType: string;\n readonly state: NonNullable<unknown>;\n readonly createdAtUtcIso: string | Date;\n readonly lastModifiedAtUtcIso: string | Date;\n readonly revisionsList: ReadonlyArray<{\n readonly scope: string;\n readonly revision: number;\n }>;\n };\n};\n\nexport type UpdateRelationshipMutationVariables = Exact<{\n sourceIdentifier: Scalars[\"String\"][\"input\"];\n targetIdentifier: Scalars[\"String\"][\"input\"];\n relationshipType: Scalars[\"String\"][\"input\"];\n metadata?: InputMaybe<Scalars[\"JSONObject\"][\"input\"]>;\n branch?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n}>;\n\nexport type UpdateRelationshipMutation = {\n readonly updateRelationship: {\n readonly id: string;\n readonly slug?: string | null | undefined;\n readonly name: string;\n readonly documentType: string;\n readonly state: NonNullable<unknown>;\n readonly createdAtUtcIso: string | Date;\n readonly lastModifiedAtUtcIso: string | Date;\n readonly revisionsList: ReadonlyArray<{\n readonly scope: string;\n readonly revision: number;\n }>;\n };\n};\n\nexport type RemoveRelationshipMutationVariables = Exact<{\n sourceIdentifier: Scalars[\"String\"][\"input\"];\n targetIdentifier: Scalars[\"String\"][\"input\"];\n relationshipType: Scalars[\"String\"][\"input\"];\n branch?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n}>;\n\nexport type RemoveRelationshipMutation = {\n readonly removeRelationship: {\n readonly id: string;\n readonly slug?: string | null | undefined;\n readonly name: string;\n readonly documentType: string;\n readonly state: NonNullable<unknown>;\n readonly createdAtUtcIso: string | Date;\n readonly lastModifiedAtUtcIso: string | Date;\n readonly revisionsList: ReadonlyArray<{\n readonly scope: string;\n readonly revision: number;\n }>;\n };\n};\n\nexport type MoveRelationshipMutationVariables = Exact<{\n sourceParentIdentifier: Scalars[\"String\"][\"input\"];\n targetParentIdentifier: Scalars[\"String\"][\"input\"];\n targetIdentifier: Scalars[\"String\"][\"input\"];\n relationshipType: Scalars[\"String\"][\"input\"];\n branch?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n}>;\n\nexport type MoveRelationshipMutation = {\n readonly moveRelationship: {\n readonly source: {\n readonly id: string;\n readonly slug?: string | null | undefined;\n readonly name: string;\n readonly documentType: string;\n readonly state: NonNullable<unknown>;\n readonly createdAtUtcIso: string | Date;\n readonly lastModifiedAtUtcIso: string | Date;\n readonly revisionsList: ReadonlyArray<{\n readonly scope: string;\n readonly revision: number;\n }>;\n };\n readonly target: {\n readonly id: string;\n readonly slug?: string | null | undefined;\n readonly name: string;\n readonly documentType: string;\n readonly state: NonNullable<unknown>;\n readonly createdAtUtcIso: string | Date;\n readonly lastModifiedAtUtcIso: string | Date;\n readonly revisionsList: ReadonlyArray<{\n readonly scope: string;\n readonly revision: number;\n }>;\n };\n };\n};\n\nexport type DeleteDocumentMutationVariables = Exact<{\n identifier: Scalars[\"String\"][\"input\"];\n propagate?: InputMaybe<PropagationMode>;\n}>;\n\nexport type DeleteDocumentMutation = { readonly deleteDocument: boolean };\n\nexport type DeleteDocumentsMutationVariables = Exact<{\n identifiers: ReadonlyArray<Scalars[\"String\"][\"input\"]>;\n propagate?: InputMaybe<PropagationMode>;\n}>;\n\nexport type DeleteDocumentsMutation = { readonly deleteDocuments: boolean };\n\nexport type DocumentChangesSubscriptionVariables = Exact<{\n search?: InputMaybe<SearchFilterInput>;\n view?: InputMaybe<ViewFilterInput>;\n}>;\n\nexport type DocumentChangesSubscription = {\n readonly documentChanges: {\n readonly type: DocumentChangeType;\n readonly documents: ReadonlyArray<{\n readonly id: string;\n readonly slug?: string | null | undefined;\n readonly name: string;\n readonly documentType: string;\n readonly state: NonNullable<unknown>;\n readonly createdAtUtcIso: string | Date;\n readonly lastModifiedAtUtcIso: string | Date;\n readonly revisionsList: ReadonlyArray<{\n readonly scope: string;\n readonly revision: number;\n }>;\n }>;\n readonly context?:\n | {\n readonly parentId?: string | null | undefined;\n readonly childId?: string | null | undefined;\n }\n | null\n | undefined;\n };\n};\n\nexport type JobChangesSubscriptionVariables = Exact<{\n jobId: Scalars[\"String\"][\"input\"];\n}>;\n\nexport type JobChangesSubscription = {\n readonly jobChanges: {\n readonly jobId: string;\n readonly status: string;\n readonly result?: NonNullable<unknown> | null | undefined;\n readonly error?: string | null | undefined;\n };\n};\n\nexport type PollSyncEnvelopesQueryVariables = Exact<{\n channelId: Scalars[\"String\"][\"input\"];\n outboxAck: Scalars[\"Int\"][\"input\"];\n outboxLatest: Scalars[\"Int\"][\"input\"];\n}>;\n\nexport type PollSyncEnvelopesQuery = {\n readonly pollSyncEnvelopes: {\n readonly ackOrdinal: number;\n readonly hasMore: boolean;\n readonly envelopes: ReadonlyArray<{\n readonly type: SyncEnvelopeType;\n readonly key?: string | null | undefined;\n readonly dependsOn?: ReadonlyArray<string> | null | undefined;\n readonly channelMeta: { readonly id: string };\n readonly operations?:\n | ReadonlyArray<{\n readonly operation: {\n readonly index: number;\n readonly timestampUtcMs: string;\n readonly hash: string;\n readonly skip: number;\n readonly error?: string | null | undefined;\n readonly deniedReason?: string | null | undefined;\n readonly id?: string | null | undefined;\n readonly action: {\n readonly id: string;\n readonly type: string;\n readonly timestampUtcMs: string;\n readonly input: NonNullable<unknown>;\n readonly scope: string;\n readonly context?:\n | {\n readonly signer?:\n | {\n readonly signatures: ReadonlyArray<string>;\n readonly user?:\n | {\n readonly address: string;\n readonly networkId: string;\n readonly chainId: number;\n }\n | null\n | undefined;\n readonly app?:\n | { readonly name: string; readonly key: string }\n | null\n | undefined;\n }\n | null\n | undefined;\n }\n | null\n | undefined;\n };\n };\n readonly context: {\n readonly documentId: string;\n readonly documentType: string;\n readonly scope: string;\n readonly branch: string;\n };\n }>\n | null\n | undefined;\n readonly cursor?:\n | {\n readonly remoteName: string;\n readonly cursorOrdinal: number;\n readonly lastSyncedAtUtcMs?: string | null | undefined;\n }\n | null\n | undefined;\n }>;\n readonly deadLetters: ReadonlyArray<{\n readonly documentId: string;\n readonly error: string;\n readonly errorType?: string | null | undefined;\n }>;\n };\n};\n\nexport type TouchChannelMutationVariables = Exact<{\n input: TouchChannelInput;\n}>;\n\nexport type TouchChannelMutation = {\n readonly touchChannel: {\n readonly success: boolean;\n readonly ackOrdinal: number;\n };\n};\n\nexport type PushSyncEnvelopesMutationVariables = Exact<{\n envelopes: ReadonlyArray<SyncEnvelopeInput>;\n}>;\n\nexport type PushSyncEnvelopesMutation = { readonly pushSyncEnvelopes: boolean };\n\nexport const PhDocumentFieldsFragmentDoc = gql`\n fragment PHDocumentFields on PHDocument {\n id\n slug\n name\n documentType\n state\n revisionsList {\n scope\n revision\n }\n createdAtUtcIso\n lastModifiedAtUtcIso\n }\n`;\nexport const DocumentRelationshipFieldsFragmentDoc = gql`\n fragment DocumentRelationshipFields on DocumentRelationship {\n sourceId\n targetId\n relationshipType\n metadata\n createdAt\n updatedAt\n }\n`;\nexport const GetDocumentModelsDocument = gql`\n query GetDocumentModels($namespace: String, $paging: PagingInput) {\n documentModels(namespace: $namespace, paging: $paging) {\n items {\n id\n name\n namespace\n version\n specification\n }\n totalCount\n hasNextPage\n hasPreviousPage\n cursor\n }\n }\n`;\nexport const GetDocumentDocument = gql`\n query GetDocument($identifier: String!, $view: ViewFilterInput) {\n document(identifier: $identifier, view: $view) {\n document {\n ...PHDocumentFields\n }\n childIds\n }\n }\n ${PhDocumentFieldsFragmentDoc}\n`;\nexport const GetDocumentWithOperationsDocument = gql`\n query GetDocumentWithOperations(\n $identifier: String!\n $view: ViewFilterInput\n $operationsFilter: DocumentOperationsFilterInput\n $operationsPaging: PagingInput\n ) {\n document(identifier: $identifier, view: $view) {\n document {\n ...PHDocumentFields\n operations(filter: $operationsFilter, paging: $operationsPaging) {\n items {\n index\n timestampUtcMs\n hash\n skip\n error\n deniedReason\n id\n action {\n id\n type\n timestampUtcMs\n input\n scope\n context {\n signer {\n user {\n address\n networkId\n chainId\n }\n app {\n name\n key\n }\n signatures\n }\n }\n }\n }\n totalCount\n hasNextPage\n hasPreviousPage\n cursor\n }\n }\n childIds\n }\n }\n ${PhDocumentFieldsFragmentDoc}\n`;\nexport const GetDocumentOutgoingRelationshipsDocument = gql`\n query GetDocumentOutgoingRelationships(\n $sourceIdentifier: String!\n $relationshipType: String!\n $view: ViewFilterInput\n $paging: PagingInput\n ) {\n documentOutgoingRelationships(\n sourceIdentifier: $sourceIdentifier\n relationshipType: $relationshipType\n view: $view\n paging: $paging\n ) {\n items {\n ...PHDocumentFields\n }\n totalCount\n hasNextPage\n hasPreviousPage\n cursor\n }\n }\n ${PhDocumentFieldsFragmentDoc}\n`;\nexport const GetDocumentIncomingRelationshipsDocument = gql`\n query GetDocumentIncomingRelationships(\n $targetIdentifier: String!\n $relationshipType: String!\n $view: ViewFilterInput\n $paging: PagingInput\n ) {\n documentIncomingRelationships(\n targetIdentifier: $targetIdentifier\n relationshipType: $relationshipType\n view: $view\n paging: $paging\n ) {\n items {\n ...PHDocumentFields\n }\n totalCount\n hasNextPage\n hasPreviousPage\n cursor\n }\n }\n ${PhDocumentFieldsFragmentDoc}\n`;\nexport const GetDocumentOutgoingRelationshipEdgesDocument = gql`\n query GetDocumentOutgoingRelationshipEdges(\n $sourceIdentifier: String!\n $relationshipType: String\n $view: ViewFilterInput\n $paging: PagingInput\n ) {\n documentOutgoingRelationshipEdges(\n sourceIdentifier: $sourceIdentifier\n relationshipType: $relationshipType\n view: $view\n paging: $paging\n ) {\n items {\n ...DocumentRelationshipFields\n }\n totalCount\n hasNextPage\n hasPreviousPage\n cursor\n }\n }\n ${DocumentRelationshipFieldsFragmentDoc}\n`;\nexport const GetDocumentIncomingRelationshipEdgesDocument = gql`\n query GetDocumentIncomingRelationshipEdges(\n $targetIdentifier: String!\n $relationshipType: String\n $view: ViewFilterInput\n $paging: PagingInput\n ) {\n documentIncomingRelationshipEdges(\n targetIdentifier: $targetIdentifier\n relationshipType: $relationshipType\n view: $view\n paging: $paging\n ) {\n items {\n ...DocumentRelationshipFields\n }\n totalCount\n hasNextPage\n hasPreviousPage\n cursor\n }\n }\n ${DocumentRelationshipFieldsFragmentDoc}\n`;\nexport const FindDocumentsDocument = gql`\n query FindDocuments(\n $search: SearchFilterInput\n $view: ViewFilterInput\n $paging: PagingInput\n ) {\n findDocuments(search: $search, view: $view, paging: $paging) {\n items {\n ...PHDocumentFields\n }\n totalCount\n hasNextPage\n hasPreviousPage\n cursor\n }\n }\n ${PhDocumentFieldsFragmentDoc}\n`;\nexport const GetDocumentOperationsDocument = gql`\n query GetDocumentOperations(\n $filter: OperationsFilterInput!\n $paging: PagingInput\n ) {\n documentOperations(filter: $filter, paging: $paging) {\n items {\n index\n timestampUtcMs\n hash\n skip\n error\n deniedReason\n id\n action {\n id\n type\n timestampUtcMs\n input\n scope\n context {\n signer {\n user {\n address\n networkId\n chainId\n }\n app {\n name\n key\n }\n signatures\n }\n }\n }\n }\n totalCount\n hasNextPage\n hasPreviousPage\n cursor\n }\n }\n`;\nexport const GetJobStatusDocument = gql`\n query GetJobStatus($jobId: String!) {\n jobStatus(jobId: $jobId) {\n id\n status\n result\n error\n createdAt\n completedAt\n }\n }\n`;\nexport const EvaluateActionsDocument = gql`\n query EvaluateActions(\n $documentIdentifier: String!\n $branch: String\n $candidates: [ActionCandidateInput!]!\n ) {\n evaluateActions(\n documentIdentifier: $documentIdentifier\n branch: $branch\n candidates: $candidates\n ) {\n evaluations {\n decision\n reason\n }\n allAllowed\n anyAllowed\n allDenied\n anyDenied\n }\n }\n`;\nexport const CreateDocumentDocument = gql`\n mutation CreateDocument($document: JSONObject!, $parentIdentifier: String) {\n createDocument(document: $document, parentIdentifier: $parentIdentifier) {\n ...PHDocumentFields\n }\n }\n ${PhDocumentFieldsFragmentDoc}\n`;\nexport const CreateEmptyDocumentDocument = gql`\n mutation CreateEmptyDocument(\n $documentType: String!\n $parentIdentifier: String\n ) {\n createEmptyDocument(\n documentType: $documentType\n parentIdentifier: $parentIdentifier\n ) {\n ...PHDocumentFields\n }\n }\n ${PhDocumentFieldsFragmentDoc}\n`;\nexport const MutateDocumentDocument = gql`\n mutation MutateDocument(\n $documentIdentifier: String!\n $actions: [ActionInput!]!\n $branch: String\n ) {\n mutateDocument: execute(\n documentIdentifier: $documentIdentifier\n actions: $actions\n branch: $branch\n ) {\n ...PHDocumentFields\n }\n }\n ${PhDocumentFieldsFragmentDoc}\n`;\nexport const MutateDocumentAsyncDocument = gql`\n mutation MutateDocumentAsync(\n $documentIdentifier: String!\n $actions: [ActionInput!]!\n $branch: String\n ) {\n mutateDocumentAsync: executeAsync(\n documentIdentifier: $documentIdentifier\n actions: $actions\n branch: $branch\n ) {\n id\n status\n result\n error\n createdAt\n completedAt\n }\n }\n`;\nexport const RenameDocumentDocument = gql`\n mutation RenameDocument(\n $documentIdentifier: String!\n $name: String!\n $branch: String\n ) {\n renameDocument(\n documentIdentifier: $documentIdentifier\n name: $name\n branch: $branch\n ) {\n ...PHDocumentFields\n }\n }\n ${PhDocumentFieldsFragmentDoc}\n`;\nexport const SetPreferredEditorDocument = gql`\n mutation SetPreferredEditor(\n $documentIdentifier: String!\n $preferredEditor: String\n $branch: String\n ) {\n setPreferredEditor(\n documentIdentifier: $documentIdentifier\n preferredEditor: $preferredEditor\n branch: $branch\n ) {\n ...PHDocumentFields\n }\n }\n ${PhDocumentFieldsFragmentDoc}\n`;\nexport const AddRelationshipDocument = gql`\n mutation AddRelationship(\n $sourceIdentifier: String!\n $targetIdentifier: String!\n $relationshipType: String!\n $metadata: JSONObject\n $branch: String\n ) {\n addRelationship(\n sourceIdentifier: $sourceIdentifier\n targetIdentifier: $targetIdentifier\n relationshipType: $relationshipType\n metadata: $metadata\n branch: $branch\n ) {\n ...PHDocumentFields\n }\n }\n ${PhDocumentFieldsFragmentDoc}\n`;\nexport const UpdateRelationshipDocument = gql`\n mutation UpdateRelationship(\n $sourceIdentifier: String!\n $targetIdentifier: String!\n $relationshipType: String!\n $metadata: JSONObject\n $branch: String\n ) {\n updateRelationship(\n sourceIdentifier: $sourceIdentifier\n targetIdentifier: $targetIdentifier\n relationshipType: $relationshipType\n metadata: $metadata\n branch: $branch\n ) {\n ...PHDocumentFields\n }\n }\n ${PhDocumentFieldsFragmentDoc}\n`;\nexport const RemoveRelationshipDocument = gql`\n mutation RemoveRelationship(\n $sourceIdentifier: String!\n $targetIdentifier: String!\n $relationshipType: String!\n $branch: String\n ) {\n removeRelationship(\n sourceIdentifier: $sourceIdentifier\n targetIdentifier: $targetIdentifier\n relationshipType: $relationshipType\n branch: $branch\n ) {\n ...PHDocumentFields\n }\n }\n ${PhDocumentFieldsFragmentDoc}\n`;\nexport const MoveRelationshipDocument = gql`\n mutation MoveRelationship(\n $sourceParentIdentifier: String!\n $targetParentIdentifier: String!\n $targetIdentifier: String!\n $relationshipType: String!\n $branch: String\n ) {\n moveRelationship(\n sourceParentIdentifier: $sourceParentIdentifier\n targetParentIdentifier: $targetParentIdentifier\n targetIdentifier: $targetIdentifier\n relationshipType: $relationshipType\n branch: $branch\n ) {\n source {\n ...PHDocumentFields\n }\n target {\n ...PHDocumentFields\n }\n }\n }\n ${PhDocumentFieldsFragmentDoc}\n`;\nexport const DeleteDocumentDocument = gql`\n mutation DeleteDocument($identifier: String!, $propagate: PropagationMode) {\n deleteDocument(identifier: $identifier, propagate: $propagate)\n }\n`;\nexport const DeleteDocumentsDocument = gql`\n mutation DeleteDocuments(\n $identifiers: [String!]!\n $propagate: PropagationMode\n ) {\n deleteDocuments(identifiers: $identifiers, propagate: $propagate)\n }\n`;\nexport const DocumentChangesDocument = gql`\n subscription DocumentChanges(\n $search: SearchFilterInput\n $view: ViewFilterInput\n ) {\n documentChanges(search: $search, view: $view) {\n type\n documents {\n ...PHDocumentFields\n }\n context {\n parentId\n childId\n }\n }\n }\n ${PhDocumentFieldsFragmentDoc}\n`;\nexport const JobChangesDocument = gql`\n subscription JobChanges($jobId: String!) {\n jobChanges(jobId: $jobId) {\n jobId\n status\n result\n error\n }\n }\n`;\nexport const PollSyncEnvelopesDocument = gql`\n query PollSyncEnvelopes(\n $channelId: String!\n $outboxAck: Int!\n $outboxLatest: Int!\n ) {\n pollSyncEnvelopes(\n channelId: $channelId\n outboxAck: $outboxAck\n outboxLatest: $outboxLatest\n ) {\n envelopes {\n type\n channelMeta {\n id\n }\n operations {\n operation {\n index\n timestampUtcMs\n hash\n skip\n error\n deniedReason\n id\n action {\n id\n type\n timestampUtcMs\n input\n scope\n context {\n signer {\n user {\n address\n networkId\n chainId\n }\n app {\n name\n key\n }\n signatures\n }\n }\n }\n }\n context {\n documentId\n documentType\n scope\n branch\n }\n }\n cursor {\n remoteName\n cursorOrdinal\n lastSyncedAtUtcMs\n }\n key\n dependsOn\n }\n ackOrdinal\n deadLetters {\n documentId\n error\n errorType\n }\n hasMore\n }\n }\n`;\nexport const TouchChannelDocument = gql`\n mutation TouchChannel($input: TouchChannelInput!) {\n touchChannel(input: $input) {\n success\n ackOrdinal\n }\n }\n`;\nexport const PushSyncEnvelopesDocument = gql`\n mutation PushSyncEnvelopes($envelopes: [SyncEnvelopeInput!]!) {\n pushSyncEnvelopes(envelopes: $envelopes)\n }\n`;\n\nexport type SdkFunctionWrapper = <T>(\n action: (requestHeaders?: Record<string, string>) => Promise<T>,\n operationName: string,\n operationType?: string,\n variables?: any,\n) => Promise<T>;\n\nconst defaultWrapper: SdkFunctionWrapper = (\n action,\n _operationName,\n _operationType,\n _variables,\n) => action();\n\nexport function getSdk(\n client: GraphQLClient,\n withWrapper: SdkFunctionWrapper = defaultWrapper,\n) {\n return {\n GetDocumentModels(\n variables?: GetDocumentModelsQueryVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n signal?: RequestInit[\"signal\"],\n ): Promise<GetDocumentModelsQuery> {\n return withWrapper(\n (wrappedRequestHeaders) =>\n client.request<GetDocumentModelsQuery>({\n document: GetDocumentModelsDocument,\n variables,\n requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders },\n signal,\n }),\n \"GetDocumentModels\",\n \"query\",\n variables,\n );\n },\n GetDocument(\n variables: GetDocumentQueryVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n signal?: RequestInit[\"signal\"],\n ): Promise<GetDocumentQuery> {\n return withWrapper(\n (wrappedRequestHeaders) =>\n client.request<GetDocumentQuery>({\n document: GetDocumentDocument,\n variables,\n requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders },\n signal,\n }),\n \"GetDocument\",\n \"query\",\n variables,\n );\n },\n GetDocumentWithOperations(\n variables: GetDocumentWithOperationsQueryVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n signal?: RequestInit[\"signal\"],\n ): Promise<GetDocumentWithOperationsQuery> {\n return withWrapper(\n (wrappedRequestHeaders) =>\n client.request<GetDocumentWithOperationsQuery>({\n document: GetDocumentWithOperationsDocument,\n variables,\n requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders },\n signal,\n }),\n \"GetDocumentWithOperations\",\n \"query\",\n variables,\n );\n },\n GetDocumentOutgoingRelationships(\n variables: GetDocumentOutgoingRelationshipsQueryVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n signal?: RequestInit[\"signal\"],\n ): Promise<GetDocumentOutgoingRelationshipsQuery> {\n return withWrapper(\n (wrappedRequestHeaders) =>\n client.request<GetDocumentOutgoingRelationshipsQuery>({\n document: GetDocumentOutgoingRelationshipsDocument,\n variables,\n requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders },\n signal,\n }),\n \"GetDocumentOutgoingRelationships\",\n \"query\",\n variables,\n );\n },\n GetDocumentIncomingRelationships(\n variables: GetDocumentIncomingRelationshipsQueryVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n signal?: RequestInit[\"signal\"],\n ): Promise<GetDocumentIncomingRelationshipsQuery> {\n return withWrapper(\n (wrappedRequestHeaders) =>\n client.request<GetDocumentIncomingRelationshipsQuery>({\n document: GetDocumentIncomingRelationshipsDocument,\n variables,\n requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders },\n signal,\n }),\n \"GetDocumentIncomingRelationships\",\n \"query\",\n variables,\n );\n },\n GetDocumentOutgoingRelationshipEdges(\n variables: GetDocumentOutgoingRelationshipEdgesQueryVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n signal?: RequestInit[\"signal\"],\n ): Promise<GetDocumentOutgoingRelationshipEdgesQuery> {\n return withWrapper(\n (wrappedRequestHeaders) =>\n client.request<GetDocumentOutgoingRelationshipEdgesQuery>({\n document: GetDocumentOutgoingRelationshipEdgesDocument,\n variables,\n requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders },\n signal,\n }),\n \"GetDocumentOutgoingRelationshipEdges\",\n \"query\",\n variables,\n );\n },\n GetDocumentIncomingRelationshipEdges(\n variables: GetDocumentIncomingRelationshipEdgesQueryVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n signal?: RequestInit[\"signal\"],\n ): Promise<GetDocumentIncomingRelationshipEdgesQuery> {\n return withWrapper(\n (wrappedRequestHeaders) =>\n client.request<GetDocumentIncomingRelationshipEdgesQuery>({\n document: GetDocumentIncomingRelationshipEdgesDocument,\n variables,\n requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders },\n signal,\n }),\n \"GetDocumentIncomingRelationshipEdges\",\n \"query\",\n variables,\n );\n },\n FindDocuments(\n variables?: FindDocumentsQueryVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n signal?: RequestInit[\"signal\"],\n ): Promise<FindDocumentsQuery> {\n return withWrapper(\n (wrappedRequestHeaders) =>\n client.request<FindDocumentsQuery>({\n document: FindDocumentsDocument,\n variables,\n requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders },\n signal,\n }),\n \"FindDocuments\",\n \"query\",\n variables,\n );\n },\n GetDocumentOperations(\n variables: GetDocumentOperationsQueryVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n signal?: RequestInit[\"signal\"],\n ): Promise<GetDocumentOperationsQuery> {\n return withWrapper(\n (wrappedRequestHeaders) =>\n client.request<GetDocumentOperationsQuery>({\n document: GetDocumentOperationsDocument,\n variables,\n requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders },\n signal,\n }),\n \"GetDocumentOperations\",\n \"query\",\n variables,\n );\n },\n GetJobStatus(\n variables: GetJobStatusQueryVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n signal?: RequestInit[\"signal\"],\n ): Promise<GetJobStatusQuery> {\n return withWrapper(\n (wrappedRequestHeaders) =>\n client.request<GetJobStatusQuery>({\n document: GetJobStatusDocument,\n variables,\n requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders },\n signal,\n }),\n \"GetJobStatus\",\n \"query\",\n variables,\n );\n },\n EvaluateActions(\n variables: EvaluateActionsQueryVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n signal?: RequestInit[\"signal\"],\n ): Promise<EvaluateActionsQuery> {\n return withWrapper(\n (wrappedRequestHeaders) =>\n client.request<EvaluateActionsQuery>({\n document: EvaluateActionsDocument,\n variables,\n requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders },\n signal,\n }),\n \"EvaluateActions\",\n \"query\",\n variables,\n );\n },\n CreateDocument(\n variables: CreateDocumentMutationVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n signal?: RequestInit[\"signal\"],\n ): Promise<CreateDocumentMutation> {\n return withWrapper(\n (wrappedRequestHeaders) =>\n client.request<CreateDocumentMutation>({\n document: CreateDocumentDocument,\n variables,\n requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders },\n signal,\n }),\n \"CreateDocument\",\n \"mutation\",\n variables,\n );\n },\n CreateEmptyDocument(\n variables: CreateEmptyDocumentMutationVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n signal?: RequestInit[\"signal\"],\n ): Promise<CreateEmptyDocumentMutation> {\n return withWrapper(\n (wrappedRequestHeaders) =>\n client.request<CreateEmptyDocumentMutation>({\n document: CreateEmptyDocumentDocument,\n variables,\n requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders },\n signal,\n }),\n \"CreateEmptyDocument\",\n \"mutation\",\n variables,\n );\n },\n MutateDocument(\n variables: MutateDocumentMutationVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n signal?: RequestInit[\"signal\"],\n ): Promise<MutateDocumentMutation> {\n return withWrapper(\n (wrappedRequestHeaders) =>\n client.request<MutateDocumentMutation>({\n document: MutateDocumentDocument,\n variables,\n requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders },\n signal,\n }),\n \"MutateDocument\",\n \"mutation\",\n variables,\n );\n },\n MutateDocumentAsync(\n variables: MutateDocumentAsyncMutationVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n signal?: RequestInit[\"signal\"],\n ): Promise<MutateDocumentAsyncMutation> {\n return withWrapper(\n (wrappedRequestHeaders) =>\n client.request<MutateDocumentAsyncMutation>({\n document: MutateDocumentAsyncDocument,\n variables,\n requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders },\n signal,\n }),\n \"MutateDocumentAsync\",\n \"mutation\",\n variables,\n );\n },\n RenameDocument(\n variables: RenameDocumentMutationVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n signal?: RequestInit[\"signal\"],\n ): Promise<RenameDocumentMutation> {\n return withWrapper(\n (wrappedRequestHeaders) =>\n client.request<RenameDocumentMutation>({\n document: RenameDocumentDocument,\n variables,\n requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders },\n signal,\n }),\n \"RenameDocument\",\n \"mutation\",\n variables,\n );\n },\n SetPreferredEditor(\n variables: SetPreferredEditorMutationVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n signal?: RequestInit[\"signal\"],\n ): Promise<SetPreferredEditorMutation> {\n return withWrapper(\n (wrappedRequestHeaders) =>\n client.request<SetPreferredEditorMutation>({\n document: SetPreferredEditorDocument,\n variables,\n requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders },\n signal,\n }),\n \"SetPreferredEditor\",\n \"mutation\",\n variables,\n );\n },\n AddRelationship(\n variables: AddRelationshipMutationVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n signal?: RequestInit[\"signal\"],\n ): Promise<AddRelationshipMutation> {\n return withWrapper(\n (wrappedRequestHeaders) =>\n client.request<AddRelationshipMutation>({\n document: AddRelationshipDocument,\n variables,\n requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders },\n signal,\n }),\n \"AddRelationship\",\n \"mutation\",\n variables,\n );\n },\n UpdateRelationship(\n variables: UpdateRelationshipMutationVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n signal?: RequestInit[\"signal\"],\n ): Promise<UpdateRelationshipMutation> {\n return withWrapper(\n (wrappedRequestHeaders) =>\n client.request<UpdateRelationshipMutation>({\n document: UpdateRelationshipDocument,\n variables,\n requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders },\n signal,\n }),\n \"UpdateRelationship\",\n \"mutation\",\n variables,\n );\n },\n RemoveRelationship(\n variables: RemoveRelationshipMutationVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n signal?: RequestInit[\"signal\"],\n ): Promise<RemoveRelationshipMutation> {\n return withWrapper(\n (wrappedRequestHeaders) =>\n client.request<RemoveRelationshipMutation>({\n document: RemoveRelationshipDocument,\n variables,\n requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders },\n signal,\n }),\n \"RemoveRelationship\",\n \"mutation\",\n variables,\n );\n },\n MoveRelationship(\n variables: MoveRelationshipMutationVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n signal?: RequestInit[\"signal\"],\n ): Promise<MoveRelationshipMutation> {\n return withWrapper(\n (wrappedRequestHeaders) =>\n client.request<MoveRelationshipMutation>({\n document: MoveRelationshipDocument,\n variables,\n requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders },\n signal,\n }),\n \"MoveRelationship\",\n \"mutation\",\n variables,\n );\n },\n DeleteDocument(\n variables: DeleteDocumentMutationVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n signal?: RequestInit[\"signal\"],\n ): Promise<DeleteDocumentMutation> {\n return withWrapper(\n (wrappedRequestHeaders) =>\n client.request<DeleteDocumentMutation>({\n document: DeleteDocumentDocument,\n variables,\n requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders },\n signal,\n }),\n \"DeleteDocument\",\n \"mutation\",\n variables,\n );\n },\n DeleteDocuments(\n variables: DeleteDocumentsMutationVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n signal?: RequestInit[\"signal\"],\n ): Promise<DeleteDocumentsMutation> {\n return withWrapper(\n (wrappedRequestHeaders) =>\n client.request<DeleteDocumentsMutation>({\n document: DeleteDocumentsDocument,\n variables,\n requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders },\n signal,\n }),\n \"DeleteDocuments\",\n \"mutation\",\n variables,\n );\n },\n DocumentChanges(\n variables?: DocumentChangesSubscriptionVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n signal?: RequestInit[\"signal\"],\n ): Promise<DocumentChangesSubscription> {\n return withWrapper(\n (wrappedRequestHeaders) =>\n client.request<DocumentChangesSubscription>({\n document: DocumentChangesDocument,\n variables,\n requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders },\n signal,\n }),\n \"DocumentChanges\",\n \"subscription\",\n variables,\n );\n },\n JobChanges(\n variables: JobChangesSubscriptionVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n signal?: RequestInit[\"signal\"],\n ): Promise<JobChangesSubscription> {\n return withWrapper(\n (wrappedRequestHeaders) =>\n client.request<JobChangesSubscription>({\n document: JobChangesDocument,\n variables,\n requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders },\n signal,\n }),\n \"JobChanges\",\n \"subscription\",\n variables,\n );\n },\n PollSyncEnvelopes(\n variables: PollSyncEnvelopesQueryVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n signal?: RequestInit[\"signal\"],\n ): Promise<PollSyncEnvelopesQuery> {\n return withWrapper(\n (wrappedRequestHeaders) =>\n client.request<PollSyncEnvelopesQuery>({\n document: PollSyncEnvelopesDocument,\n variables,\n requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders },\n signal,\n }),\n \"PollSyncEnvelopes\",\n \"query\",\n variables,\n );\n },\n TouchChannel(\n variables: TouchChannelMutationVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n signal?: RequestInit[\"signal\"],\n ): Promise<TouchChannelMutation> {\n return withWrapper(\n (wrappedRequestHeaders) =>\n client.request<TouchChannelMutation>({\n document: TouchChannelDocument,\n variables,\n requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders },\n signal,\n }),\n \"TouchChannel\",\n \"mutation\",\n variables,\n );\n },\n PushSyncEnvelopes(\n variables: PushSyncEnvelopesMutationVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n signal?: RequestInit[\"signal\"],\n ): Promise<PushSyncEnvelopesMutation> {\n return withWrapper(\n (wrappedRequestHeaders) =>\n client.request<PushSyncEnvelopesMutation>({\n document: PushSyncEnvelopesDocument,\n variables,\n requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders },\n signal,\n }),\n \"PushSyncEnvelopes\",\n \"mutation\",\n variables,\n );\n },\n };\n}\nexport type Sdk = ReturnType<typeof getSdk>;\n","import {\n GetDocumentDocument,\n GetDocumentOperationsDocument,\n type OperationsFilterInput,\n type PagingInput,\n type ViewFilterInput,\n} from \"./gen/schema.js\";\n\n/** Get the source string from a GraphQL document (string or DocumentNode). */\nfunction getDocumentSource(doc: unknown): string {\n return typeof doc === \"string\"\n ? doc\n : ((doc as { loc?: { source: { body: string } } }).loc?.source.body ?? \"\");\n}\n\n/**\n * Extract the inner selection set of a named field from a GraphQL document source.\n * Returns the `{ ... }` block including braces.\n */\nfunction extractSelectionSet(\n doc: unknown,\n fieldName: string,\n fallback: string,\n): string {\n const source = getDocumentSource(doc);\n\n const regex = new RegExp(\n `${fieldName}\\\\([^)]*\\\\)\\\\s*(\\\\{[\\\\s\\\\S]*\\\\})\\\\s*\\\\}`,\n );\n return regex.exec(source)?.[1] ?? fallback;\n}\n\n/**\n * Extract the query body and any fragment definitions from a GraphQL document.\n * Returns { body, fragments } where body is the content inside the query `{ ... }`\n * and fragments are any trailing fragment definitions.\n */\nfunction extractQueryParts(\n doc: unknown,\n fallbackBody: string,\n): { body: string; fragments: string } {\n const source = getDocumentSource(doc);\n\n // Match the query body: everything between the first `{` and its closing `}`\n // before any fragment definitions\n const queryMatch = /^[^{]*\\{([\\s\\S]*?)\\}\\s*(fragment[\\s\\S]*)?$/.exec(source);\n const body = queryMatch?.[1]?.trim() ?? fallbackBody;\n const fragments = queryMatch?.[2]?.trim() ?? \"\";\n\n return { body, fragments };\n}\n\nconst operationsSelectionSet = extractSelectionSet(\n GetDocumentOperationsDocument,\n \"documentOperations\",\n \"{ items { index } }\",\n);\n\nconst documentParts = extractQueryParts(\n GetDocumentDocument,\n \"document(identifier: $identifier) { document { id name documentType state revisionsList { scope revision } createdAtUtcIso lastModifiedAtUtcIso } childIds }\",\n);\n\n/**\n * Build a single GraphQL query that fetches documentOperations for\n * multiple filters using aliases. Each filter gets its own alias\n * (`scope_0`, `scope_1`, …) so all scopes are fetched in one HTTP request.\n */\nexport function buildBatchOperationsQuery(\n filters: OperationsFilterInput[],\n pagings: (PagingInput | undefined | null)[],\n) {\n const varDefs = filters\n .flatMap((_, i) => [\n `$filter_${i}: OperationsFilterInput!`,\n `$paging_${i}: PagingInput`,\n ])\n .join(\", \");\n\n const fields = filters\n .map(\n (_, i) =>\n `scope_${i}: documentOperations(filter: $filter_${i}, paging: $paging_${i}) ${operationsSelectionSet}`,\n )\n .join(\"\\n \");\n\n const query = `query BatchGetDocumentOperations(${varDefs}) {\n ${fields}\n }`;\n\n const variables: Record<string, unknown> = {};\n for (let i = 0; i < filters.length; i++) {\n variables[`filter_${i}`] = filters[i];\n variables[`paging_${i}`] = pagings[i] ?? null;\n }\n\n return { query, variables };\n}\n\n/**\n * Build a single GraphQL query that fetches a document AND\n * documentOperations for multiple filters, all in one HTTP request.\n */\nexport function buildBatchDocumentWithOperationsQuery(\n identifier: string,\n view: ViewFilterInput | undefined,\n filters: OperationsFilterInput[],\n pagings: (PagingInput | undefined)[],\n) {\n const docVarDefs = \"$identifier: String!, $view: ViewFilterInput\";\n const opsVarDefs = filters\n .flatMap((_, i) => [\n `$filter_${i}: OperationsFilterInput!`,\n `$paging_${i}: PagingInput`,\n ])\n .join(\", \");\n\n const opsFields = filters\n .map(\n (_, i) =>\n `scope_${i}: documentOperations(filter: $filter_${i}, paging: $paging_${i}) ${operationsSelectionSet}`,\n )\n .join(\"\\n \");\n\n const query = `query BatchGetDocumentWithOperations(${docVarDefs}, ${opsVarDefs}) {\n ${documentParts.body}\n ${opsFields}\n }\n ${documentParts.fragments}`;\n\n const variables: Record<string, unknown> = {\n identifier,\n view: view ?? null,\n };\n for (let i = 0; i < filters.length; i++) {\n variables[`filter_${i}`] = filters[i];\n variables[`paging_${i}`] = pagings[i] ?? null;\n }\n\n return { query, variables };\n}\n","import { GraphQLClient, type Variables } from \"graphql-request\";\nimport {\n buildBatchDocumentWithOperationsQuery,\n buildBatchOperationsQuery,\n} from \"./batch-queries.js\";\nimport {\n getSdk,\n type GetDocumentOperationsQuery,\n type GetDocumentQuery,\n type OperationsFilterInput,\n type PagingInput,\n type SdkFunctionWrapper,\n type ViewFilterInput,\n} from \"./gen/schema.js\";\nimport type { ReactorGraphQLClient, RunDocumentOptions } from \"./types.js\";\n\nexport type { ReactorGraphQLClient, RunDocumentOptions } from \"./types.js\";\n\ntype DocumentOperationsPage = GetDocumentOperationsQuery[\"documentOperations\"];\n\ntype DocumentResult = NonNullable<GetDocumentQuery[\"document\"]>;\n\n/**\n * Creates a GraphQL client for the Reactor Subgraph API.\n * @param urlOrGQLClient The URL of the GraphQL API or a GraphQL client instance.\n * @param middleware An optional middleware function to wrap the GraphQL client calls.\n * @returns A GraphQL client for the Reactor Subgraph API.\n */\nexport function createClient(\n urlOrGQLClient: string | GraphQLClient,\n middleware?: SdkFunctionWrapper,\n): ReactorGraphQLClient {\n const client =\n typeof urlOrGQLClient === \"string\"\n ? new GraphQLClient(urlOrGQLClient)\n : urlOrGQLClient;\n\n // The hand-written batch methods below call `client.request` directly,\n // bypassing the middleware that `getSdk` applies. Wrap them in the same\n // shape so auth/logging/tracing middleware runs for batch calls too.\n const runWithMiddleware = async <T>(\n operationName: string,\n run: (requestHeaders?: Record<string, string>) => Promise<T>,\n operationType = \"query\",\n variables?: Variables,\n ): Promise<T> => {\n if (!middleware) return run();\n return middleware(run, operationName, operationType, variables);\n };\n\n return {\n ...getSdk(client, middleware),\n\n /**\n * Run a hand-authored GraphQL document through the same transport and\n * middleware as the generated SDK methods.\n */\n async RunDocument<TData>(options: RunDocumentOptions): Promise<TData> {\n const { document, variables, signal } = options;\n return runWithMiddleware<TData>(\n options.operationName,\n (wrappedRequestHeaders) =>\n client.request<TData>({\n document,\n variables,\n requestHeaders: {\n ...options.requestHeaders,\n ...wrappedRequestHeaders,\n },\n signal,\n }),\n options.operationType,\n variables,\n );\n },\n\n /**\n * Fetch documentOperations for multiple filters in a single HTTP request\n * using GraphQL aliases. Each filter has its own paging parameters.\n * Returns one result page per filter, in order.\n */\n async BatchGetDocumentOperations(\n filters: OperationsFilterInput[],\n pagings: (PagingInput | undefined | null)[],\n ): Promise<DocumentOperationsPage[]> {\n const { query, variables } = buildBatchOperationsQuery(filters, pagings);\n const data = await runWithMiddleware(\n \"BatchGetDocumentOperations\",\n (requestHeaders) =>\n client.request<Record<string, DocumentOperationsPage>>(\n query,\n variables,\n requestHeaders,\n ),\n );\n return filters.map((_, i) => data[`scope_${i}`]);\n },\n\n /**\n * Fetch a document AND documentOperations for multiple filters\n * in a single HTTP request. Combines GetDocument + BatchGetDocumentOperations.\n */\n async BatchGetDocumentWithOperations(\n identifier: string,\n view: ViewFilterInput | undefined,\n filters: OperationsFilterInput[],\n pagings: (PagingInput | undefined)[],\n ): Promise<{\n document: DocumentResult | null;\n operations: DocumentOperationsPage[];\n }> {\n const { query, variables } = buildBatchDocumentWithOperationsQuery(\n identifier,\n view,\n filters,\n pagings,\n );\n const data = await runWithMiddleware(\n \"BatchGetDocumentWithOperations\",\n (requestHeaders) =>\n client.request<\n Record<string, unknown> & { document?: DocumentResult }\n >(query, variables, requestHeaders),\n );\n return {\n document: data.document ?? null,\n operations: filters.map(\n (_, i) => data[`scope_${i}`] as DocumentOperationsPage,\n ),\n };\n },\n };\n}\n"],"mappings":"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"}
|
|
@@ -40,6 +40,18 @@ async function getPackagesByDocumentType(registryUrl, documentType) {
|
|
|
40
40
|
if (!res.ok) throw new Error(`Registry error: HTTP ${res.status}`);
|
|
41
41
|
return await res.json();
|
|
42
42
|
}
|
|
43
|
+
/**
|
|
44
|
+
* Fetch full metadata (versions + dist-tags) for one package from the
|
|
45
|
+
* single-package endpoint. Returns null when the package no longer exists
|
|
46
|
+
* upstream.
|
|
47
|
+
*/
|
|
48
|
+
async function getPackageInfo(registryUrl, name) {
|
|
49
|
+
const encodedName = encodeURIComponent(name);
|
|
50
|
+
const res = await fetch(`${trimTrailingSlash(registryUrl)}/packages/${encodedName}`);
|
|
51
|
+
if (res.status === 404) return null;
|
|
52
|
+
if (!res.ok) throw new Error(`Registry error: HTTP ${res.status}`);
|
|
53
|
+
return await res.json();
|
|
54
|
+
}
|
|
43
55
|
//#endregion
|
|
44
56
|
//#region src/registry/client.ts
|
|
45
57
|
function cdnUrlToApiUrl(cdnUrl) {
|
|
@@ -73,6 +85,6 @@ var RegistryClient = class {
|
|
|
73
85
|
}
|
|
74
86
|
};
|
|
75
87
|
//#endregion
|
|
76
|
-
export {
|
|
88
|
+
export { getPackagesByDocumentType as a, getPackages as i, getPackageInfo as n, getPackagesForDocumentType as o, getPackagePage as r, trimTrailingSlash as s, RegistryClient as t };
|
|
77
89
|
|
|
78
|
-
//# sourceMappingURL=client-
|
|
90
|
+
//# sourceMappingURL=client-DjK30EQ-.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client-DjK30EQ-.js","names":[],"sources":["../src/registry/fetchers.ts","../src/registry/client.ts"],"sourcesContent":["import type { PackageInfo, PackagePage } from \"@powerhousedao/shared/registry\";\n\n// Strip a trailing \"/\" so we don't emit `http://host//packages` when a user\n// writes `packageRegistryUrl: \"http://host/\"`. Verdaccio's own web backend\n// 404s on the doubled slash, which cascades into an empty registry list and\n// masks the real install flow.\nexport function trimTrailingSlash(url: string): string {\n return url.endsWith(\"/\") ? url.slice(0, -1) : url;\n}\n\nexport async function getPackages(registryUrl: string) {\n const res = await fetch(`${trimTrailingSlash(registryUrl)}/packages`);\n if (!res.ok) throw new Error(`Registry error: HTTP ${res.status}`);\n const data = (await res.json()) as PackageInfo[];\n return data;\n}\n\n/**\n * Fetch one page of the registry listing (trimmed items). Backed by the\n * paginated `GET /packages?limit=&offset=&search=` mode. Used by the Package\n * Manager's Available tab for infinite scroll + server-side search.\n */\nexport async function getPackagePage(\n registryUrl: string,\n params: { limit: number; offset: number; search?: string },\n): Promise<PackagePage> {\n const query = new URLSearchParams({\n limit: String(params.limit),\n offset: String(params.offset),\n });\n if (params.search) query.set(\"search\", params.search);\n const res = await fetch(\n `${trimTrailingSlash(registryUrl)}/packages?${query.toString()}`,\n );\n if (!res.ok) throw new Error(`Registry error: HTTP ${res.status}`);\n return (await res.json()) as PackagePage;\n}\n\n/**\n * Fetch full package info for every package exposing a given document type,\n * via the legacy `?documentType=` filter (returns full PackageInfo objects,\n * not just names). Used by the MissingPackageModal to offer installs without\n * loading the entire paginated listing.\n */\nexport async function getPackagesForDocumentType(\n registryUrl: string,\n documentType: string,\n): Promise<PackageInfo[]> {\n const encodedType = encodeURIComponent(documentType);\n const res = await fetch(\n `${trimTrailingSlash(registryUrl)}/packages?documentType=${encodedType}`,\n );\n if (!res.ok) throw new Error(`Registry error: HTTP ${res.status}`);\n return (await res.json()) as PackageInfo[];\n}\n\nexport async function getPackagesByDocumentType(\n registryUrl: string,\n documentType: string,\n): Promise<string[]> {\n const encodedType = encodeURIComponent(documentType);\n const res = await fetch(\n `${trimTrailingSlash(registryUrl)}/packages/by-document-type?type=${encodedType}`,\n );\n if (!res.ok) throw new Error(`Registry error: HTTP ${res.status}`);\n return (await res.json()) as string[];\n}\n\n/**\n * Fetch full metadata (versions + dist-tags) for one package from the\n * single-package endpoint. Returns null when the package no longer exists\n * upstream.\n */\nexport async function getPackageInfo(\n registryUrl: string,\n name: string,\n): Promise<PackageInfo | null> {\n const encodedName = encodeURIComponent(name);\n const res = await fetch(\n `${trimTrailingSlash(registryUrl)}/packages/${encodedName}`,\n );\n if (res.status === 404) return null;\n if (!res.ok) throw new Error(`Registry error: HTTP ${res.status}`);\n return (await res.json()) as PackageInfo;\n}\n","import type { PackageInfo } from \"@powerhousedao/shared/registry\";\nimport { getPackages, getPackagesByDocumentType } from \"./fetchers.js\";\nimport type { PublishEvent } from \"./types.js\";\n\nfunction cdnUrlToApiUrl(cdnUrl: string): string {\n return cdnUrl.replace(/\\/-\\/cdn\\/?$/, \"\");\n}\nexport class RegistryClient {\n readonly apiUrl: string;\n\n constructor(cdnUrl: string) {\n this.apiUrl = cdnUrlToApiUrl(cdnUrl);\n }\n\n async getPackages(): Promise<PackageInfo[]> {\n const data = await getPackages(this.apiUrl);\n return data;\n }\n\n async getPackagesByDocumentType(documentType: string): Promise<string[]> {\n return await getPackagesByDocumentType(this.apiUrl, documentType);\n }\n\n async searchPackages(query: string): Promise<PackageInfo[]> {\n const packages = await this.getPackages();\n if (!query) return packages;\n const lowerQuery = query.toLowerCase();\n // Match on package name only (not description).\n return packages.filter((pkg) =>\n pkg.name.toLowerCase().includes(lowerQuery),\n );\n }\n\n onPublish(callback: (event: PublishEvent) => void): () => void {\n const eventSource = new EventSource(`${this.apiUrl}/-/events`);\n\n eventSource.addEventListener(\"publish\", (e: MessageEvent<string>) => {\n const data = JSON.parse(e.data) as PublishEvent;\n callback(data);\n });\n\n return () => {\n eventSource.close();\n };\n }\n}\n"],"mappings":";AAMA,SAAgB,kBAAkB,KAAqB;AACrD,QAAO,IAAI,SAAS,IAAI,GAAG,IAAI,MAAM,GAAG,GAAG,GAAG;;AAGhD,eAAsB,YAAY,aAAqB;CACrD,MAAM,MAAM,MAAM,MAAM,GAAG,kBAAkB,YAAY,CAAC,WAAW;AACrE,KAAI,CAAC,IAAI,GAAI,OAAM,IAAI,MAAM,wBAAwB,IAAI,SAAS;AAElE,QADc,MAAM,IAAI,MAAM;;;;;;;AAShC,eAAsB,eACpB,aACA,QACsB;CACtB,MAAM,QAAQ,IAAI,gBAAgB;EAChC,OAAO,OAAO,OAAO,MAAM;EAC3B,QAAQ,OAAO,OAAO,OAAO;EAC9B,CAAC;AACF,KAAI,OAAO,OAAQ,OAAM,IAAI,UAAU,OAAO,OAAO;CACrD,MAAM,MAAM,MAAM,MAChB,GAAG,kBAAkB,YAAY,CAAC,YAAY,MAAM,UAAU,GAC/D;AACD,KAAI,CAAC,IAAI,GAAI,OAAM,IAAI,MAAM,wBAAwB,IAAI,SAAS;AAClE,QAAQ,MAAM,IAAI,MAAM;;;;;;;;AAS1B,eAAsB,2BACpB,aACA,cACwB;CACxB,MAAM,cAAc,mBAAmB,aAAa;CACpD,MAAM,MAAM,MAAM,MAChB,GAAG,kBAAkB,YAAY,CAAC,yBAAyB,cAC5D;AACD,KAAI,CAAC,IAAI,GAAI,OAAM,IAAI,MAAM,wBAAwB,IAAI,SAAS;AAClE,QAAQ,MAAM,IAAI,MAAM;;AAG1B,eAAsB,0BACpB,aACA,cACmB;CACnB,MAAM,cAAc,mBAAmB,aAAa;CACpD,MAAM,MAAM,MAAM,MAChB,GAAG,kBAAkB,YAAY,CAAC,kCAAkC,cACrE;AACD,KAAI,CAAC,IAAI,GAAI,OAAM,IAAI,MAAM,wBAAwB,IAAI,SAAS;AAClE,QAAQ,MAAM,IAAI,MAAM;;;;;;;AAQ1B,eAAsB,eACpB,aACA,MAC6B;CAC7B,MAAM,cAAc,mBAAmB,KAAK;CAC5C,MAAM,MAAM,MAAM,MAChB,GAAG,kBAAkB,YAAY,CAAC,YAAY,cAC/C;AACD,KAAI,IAAI,WAAW,IAAK,QAAO;AAC/B,KAAI,CAAC,IAAI,GAAI,OAAM,IAAI,MAAM,wBAAwB,IAAI,SAAS;AAClE,QAAQ,MAAM,IAAI,MAAM;;;;AC/E1B,SAAS,eAAe,QAAwB;AAC9C,QAAO,OAAO,QAAQ,gBAAgB,GAAG;;AAE3C,IAAa,iBAAb,MAA4B;CAC1B;CAEA,YAAY,QAAgB;AAC1B,OAAK,SAAS,eAAe,OAAO;;CAGtC,MAAM,cAAsC;AAE1C,SADa,MAAM,YAAY,KAAK,OAAO;;CAI7C,MAAM,0BAA0B,cAAyC;AACvE,SAAO,MAAM,0BAA0B,KAAK,QAAQ,aAAa;;CAGnE,MAAM,eAAe,OAAuC;EAC1D,MAAM,WAAW,MAAM,KAAK,aAAa;AACzC,MAAI,CAAC,MAAO,QAAO;EACnB,MAAM,aAAa,MAAM,aAAa;AAEtC,SAAO,SAAS,QAAQ,QACtB,IAAI,KAAK,aAAa,CAAC,SAAS,WAAW,CAC5C;;CAGH,UAAU,UAAqD;EAC7D,MAAM,cAAc,IAAI,YAAY,GAAG,KAAK,OAAO,WAAW;AAE9D,cAAY,iBAAiB,YAAY,MAA4B;AAEnE,YADa,KAAK,MAAM,EAAE,KAAK,CACjB;IACd;AAEF,eAAa;AACX,eAAY,OAAO"}
|