@powerhousedao/reactor-browser 6.0.0-dev.213 → 6.0.0-dev.215

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/index.js CHANGED
@@ -1,12 +1,14 @@
1
1
  import { C as uploadOperations, S as queueOperations, _ as clearGlobal, a as setDocumentCache, b as dispatchActions, c as useDocuments, d as useGetDocuments, f as DocumentCache, g as getAnalyticsStore, h as createAnalyticsStore, i as addDocumentCacheEventHandler, l as useGetDocument, m as readPromiseState, n as useDocumentsByIds, o as useDocument, p as addPromiseState, r as useDispatch, s as useDocumentCache, t as useDocumentById, u as useGetDocumentAsync, v as getGlobal, x as queueActions, y as setGlobal } from "./document-by-id-CDLUqru5.js";
2
- import { n as PropagationMode, t as createClient } from "./client-_Vpu9aN7.js";
2
+ import { n as GetDocumentWithOperationsDocument, r as PropagationMode, t as createClient } from "./client-DfoxBz8A.js";
3
3
  import { t as makePHEventFunctions } from "./make-ph-event-functions-Cr4GqOTT.js";
4
4
  import { A as useLoginStatus, C as RENOWN_CHAIN_ID, D as addRenownEventHandler, E as VERIFIABLE_CREDENTIAL_EIP712_TYPE, F as setLoading, I as useLoading, M as useUser, N as addLoadingEventHandler, O as setRenown, P as loading, S as ISSUER_TYPE, T as RENOWN_URL, _ as openRenown, a as RenownAuthButton, b as CREDENTIAL_TYPES, c as ChevronDownIcon, d as RenownLogo, f as SpinnerIcon, g as logout, h as login, i as initRenownCrypto, j as useRenown, k as useDid, l as CopyIcon, m as useRenownAuth, n as useRenownInit, o as RenownUserButton, p as UserIcon, r as initConnectCrypto, s as RenownLoginButton, t as Renown, u as DisconnectIcon, v as CREDENTIAL_SCHEMA_EIP712_TYPE, w as RENOWN_NETWORK_ID, x as DOMAIN_TYPE, y as CREDENTIAL_SUBJECT_TYPE } from "./renown-CV_45Xc1.js";
5
5
  import { n as useRelationalQuery, r as useRelationalDb, t as createProcessorQuery } from "./relational-jwreqDwz.js";
6
6
  import { documentModelDocumentModelModule, logger } from "document-model";
7
7
  import { baseLoadFromInput, baseSaveToFileHandle, createPresignedHeader, createZip, documentModelDocumentType, generateId, replayDocument, setName, validateInitialState, validateModules, validateStateSchemaName } from "@powerhousedao/shared/document-model";
8
- import { addFolder as addFolder$1, copyNode, driveCreateDocument, generateNodesCopy, handleTargetNameCollisions, isFileNode, isFolderNode, moveNode, setAvailableOffline, setSharingType, updateNode } from "@powerhousedao/shared/document-drive";
8
+ import { DriveDocumentSchema, addFolder as addFolder$1, copyNode, driveCreateDocument, generateNodesCopy, handleTargetNameCollisions, isFileNode, isFolderNode, moveNode, setAvailableOffline, setSharingType, updateNode } from "@powerhousedao/shared/document-drive";
9
9
  import { ChannelScheme, DocumentChangeType, DocumentIntegrityService, DuplicateManifestError, DuplicateModuleError, GqlRequestChannel, InMemoryQueue, IntervalPollTimer, ModuleNotFoundError, REACTOR_SCHEMA, REACTOR_SCHEMA as REACTOR_SCHEMA$1, ReactorBuilder, ReactorClientBuilder, RelationalDbProcessor, SyncOperationStatus, SyncStatus, driveCollectionId, driveCollectionId as driveCollectionId$1, driveIdFromUrl, parseDriveUrl } from "@powerhousedao/reactor";
10
+ import { filter, forEach, forEachObj, funnel, isIncludedIn, isStrictEqual, isTruthy, map, mapToObj, pipe, prop, unique } from "remeda";
11
+ import { z } from "zod";
10
12
  import { useCallback, useEffect, useMemo, useRef, useState, useSyncExternalStore } from "react";
11
13
  import slug from "slug";
12
14
  import * as lzString from "lz-string";
@@ -554,6 +556,277 @@ const COMMON_PACKAGE_ID = "powerhouse/common";
554
556
  const baseDocumentModelsMap = { DocumentModel: documentModelDocumentModelModule };
555
557
  const baseDocumentModels = Object.values(baseDocumentModelsMap);
556
558
  //#endregion
559
+ //#region src/graphql/adapters.ts
560
+ function phDocumentFromQuery(document, documentSchema) {
561
+ const phDocument = {
562
+ header: phDocumentHeaderFromQuery(document),
563
+ state: phDocumentStateFromQuery(document),
564
+ initialState: phDocumentStateFromQuery(document),
565
+ operations: phDocumentOperationsFromGetDocumentWithOperationsQuery(document),
566
+ clipboard: []
567
+ };
568
+ if (documentSchema !== void 0) documentSchema.parse(phDocument);
569
+ return phDocument;
570
+ }
571
+ function phDocumentsFromQuery(items, documentSchema) {
572
+ return pipe(items, map((document) => phDocumentFromQuery(document, documentSchema)));
573
+ }
574
+ function phDocumentHeaderFromQuery(queryDocument) {
575
+ return {
576
+ branch: "main",
577
+ id: queryDocument.id,
578
+ name: queryDocument.name,
579
+ documentType: queryDocument.documentType,
580
+ createdAtUtcIso: queryDocument.createdAtUtcIso instanceof Date ? queryDocument.createdAtUtcIso.toUTCString() : queryDocument.createdAtUtcIso,
581
+ lastModifiedAtUtcIso: queryDocument.lastModifiedAtUtcIso instanceof Date ? queryDocument.lastModifiedAtUtcIso.toUTCString() : queryDocument.lastModifiedAtUtcIso,
582
+ slug: queryDocument.slug ?? ""
583
+ };
584
+ }
585
+ function phDocumentStateFromQuery(queryDocument, documentSchema) {
586
+ if (documentSchema !== void 0) return documentSchema.shape.state.parse(queryDocument.state);
587
+ return queryDocument.state;
588
+ }
589
+ function phDocumentOperationsFromGetDocumentWithOperationsQuery(queryDocument) {
590
+ if (queryDocument.operations === null || queryDocument.operations === void 0) return { global: [] };
591
+ return { global: [...queryDocument.operations.items] };
592
+ }
593
+ function identifierFromMutateDocumentOperationVariables(variables) {
594
+ return z.object({ documentIdentifier: z.string() }).parse(variables).documentIdentifier;
595
+ }
596
+ //#endregion
597
+ //#region src/graphql/constants.ts
598
+ const DEFAULT_DRIVE_ID = "powerhouse";
599
+ const DEFAULT_SWITCHBOARD_URL = "http://localhost:4001/graphql";
600
+ const graphqlEventsToSyncDrive = [
601
+ "CreateEmptyDocument",
602
+ "CreateDocument",
603
+ "AddChildren",
604
+ "RemoveChildren",
605
+ "MoveChildren",
606
+ "DeleteDocument",
607
+ "DeleteDocuments"
608
+ ];
609
+ const graphqlDocumentEvents = [
610
+ "MutateDocument",
611
+ "MutateDocumentAsync",
612
+ "DeleteDocument"
613
+ ];
614
+ const graphqlDocumentsEvents = ["DeleteDocuments"];
615
+ //#endregion
616
+ //#region src/graphql/fetchers.ts
617
+ async function reactorGraphqlFetchDocument(identifier, documentSchema) {
618
+ const client = window.ph?.reactorGraphQLClient;
619
+ if (!client) throw new Error("Please call `useInitReactorGraphqlClient` to use its functions");
620
+ try {
621
+ const document = (await client.GetDocument({ identifier })).document?.document;
622
+ if (!document) return void 0;
623
+ return phDocumentFromQuery(document, documentSchema);
624
+ } catch (error) {
625
+ return;
626
+ }
627
+ }
628
+ async function reactorGraphqlBatchFetchDocuments(identifiers) {
629
+ if (!window.ph?.reactorGraphQLClient) throw new Error("Please call `useInitReactorGraphqlClient` to use its functions");
630
+ const promises = map(identifiers, (identifier) => reactorGraphqlFetchDocument(identifier));
631
+ return await Promise.all(promises);
632
+ }
633
+ //#endregion
634
+ //#region src/graphql/batch.ts
635
+ /**
636
+ * A reference implementation for an async batching utility function built on
637
+ * top of the `funnel` general purpose execution utility function. It will
638
+ * accumulate all params passed to an async `call` method within the defined
639
+ * burst duration and then use an async executor to process them in one
640
+ * invocation. It then extracts an individual result for each call which is
641
+ * used to resolve the original call.
642
+ *
643
+ * This allows synchronizing multiple async calls while keeping each call site
644
+ * isolated from the rest (for example, as react components).
645
+ *
646
+ * This reference implementation can be copied into your project as-is, or you
647
+ * can use it as the basis for a more complex implementation with additional
648
+ * features.
649
+ *
650
+ * @param callback - The main function that takes a batch and returns an
651
+ * aggregated response. The typing for the it's parameters will derive the
652
+ * typing for the extractor and the `call` method.
653
+ * @param extractor - A function that takes the aggregated response and extracts
654
+ * from it the result for each individual call. The function is called with both
655
+ * the index in the batch, and the params passed to the `call` method. This
656
+ * allows handling APIs that return batch results as both objects and arrays.
657
+ * @param maxBurstDurationMs - The period of time where the batcher would
658
+ * collect params before triggering the executor. When set to 0 the batcher
659
+ * does not incur any additional delays to the execution and would trigger at
660
+ * the next tick, just like a regular async function would. This is also the
661
+ * default value.
662
+ * @returns A Funnel object with the `call` method augmented to support async
663
+ * response.
664
+ */
665
+ function batch(callback, extractor, maxBurstDurationMs = 0) {
666
+ const batchFunnel = funnel((requests) => {
667
+ callback(requests.map(({ params }) => params)).then((response) => {
668
+ for (const [index, { params, promiseCallbacks: [resolve, reject] }] of requests.entries()) try {
669
+ resolve(extractor(response, index, ...params));
670
+ } catch (error) {
671
+ reject(error);
672
+ }
673
+ }).catch((error) => {
674
+ for (const { promiseCallbacks: [, reject] } of requests) reject(error);
675
+ });
676
+ }, {
677
+ reducer: (requests, request) => [...requests ?? [], request],
678
+ maxBurstDurationMs,
679
+ triggerAt: "end"
680
+ });
681
+ return {
682
+ ...batchFunnel,
683
+ call: (...params) => new Promise((...promiseCallbacks) => {
684
+ batchFunnel.call({
685
+ promiseCallbacks,
686
+ params
687
+ });
688
+ })
689
+ };
690
+ }
691
+ //#endregion
692
+ //#region src/graphql/document-fetcher.ts
693
+ function makeDocumentsById(documents = []) {
694
+ return pipe(documents, filter(isTruthy), mapToObj((document) => [document.header.id, document]));
695
+ }
696
+ var DocumentFetcher = class {
697
+ batchGetDocuments;
698
+ constructor() {
699
+ this.batchGetDocuments = batch(async (requests) => {
700
+ return makeDocumentsById(await reactorGraphqlBatchFetchDocuments(unique(map(requests, ([id]) => id))));
701
+ }, (documentsById, _, id) => {
702
+ return prop(documentsById, id);
703
+ });
704
+ }
705
+ get(id) {
706
+ return this.batchGetDocuments.call(id);
707
+ }
708
+ getBatch(ids) {
709
+ return Promise.all(map(ids, (id) => this.get(id)));
710
+ }
711
+ };
712
+ //#endregion
713
+ //#region src/graphql/graphql-client-document-cache.ts
714
+ var GraphQLClientDocumentCache = class {
715
+ fetcher;
716
+ documents = /* @__PURE__ */ new Map();
717
+ batchPromises = /* @__PURE__ */ new Map();
718
+ listeners = /* @__PURE__ */ new Map();
719
+ constructor() {
720
+ this.fetcher = new DocumentFetcher();
721
+ window.addEventListener("MutateDocument", (event) => {
722
+ this.handleDocumentMutated(event.detail.identifier).catch(console.error);
723
+ });
724
+ window.addEventListener("MutateDocumentAsync", (event) => {
725
+ this.handleDocumentMutated(event.detail.identifier).catch(console.error);
726
+ });
727
+ }
728
+ get(id, refetch) {
729
+ const current = this.documents.get(id);
730
+ if (current) {
731
+ if (current.status === "pending") return current;
732
+ if (!refetch) return current;
733
+ }
734
+ const promise = addPromiseState(this.fetcher.get(id).then((document) => {
735
+ this.invalidateBatchesContaining(id);
736
+ return document;
737
+ }));
738
+ this.documents.set(id, promise);
739
+ return promise;
740
+ }
741
+ getBatch(ids) {
742
+ const key = ids.join(",");
743
+ const cached = this.batchPromises.get(key);
744
+ const currentPromises = ids.map((id) => this.get(id));
745
+ if (cached) {
746
+ if (currentPromises.every((promise, index) => promise === cached.promises[index])) return cached.promise;
747
+ }
748
+ const states = currentPromises.map((promise) => readPromiseState(promise));
749
+ if (states.every((state) => state.status === "fulfilled")) {
750
+ const values = states.map((state) => state.value);
751
+ const batchPromise = Promise.resolve(values);
752
+ batchPromise.status = "fulfilled";
753
+ batchPromise.value = values;
754
+ this.batchPromises.set(key, {
755
+ promises: currentPromises,
756
+ promise: batchPromise
757
+ });
758
+ return batchPromise;
759
+ }
760
+ const batchPromise = addPromiseState(Promise.all(currentPromises));
761
+ this.batchPromises.set(key, {
762
+ promises: currentPromises,
763
+ promise: batchPromise
764
+ });
765
+ return batchPromise;
766
+ }
767
+ invalidateBatchesContaining(documentId) {
768
+ for (const key of this.batchPromises.keys()) if (key.split(",").includes(documentId)) this.batchPromises.delete(key);
769
+ }
770
+ subscribe(id, callback) {
771
+ const ids = Array.isArray(id) ? id : [id];
772
+ for (const documentId of ids) {
773
+ const listeners = this.listeners.get(documentId) ?? [];
774
+ this.listeners.set(documentId, [...listeners, callback]);
775
+ }
776
+ return () => {
777
+ for (const documentId of ids) {
778
+ const listeners = this.listeners.get(documentId) ?? [];
779
+ this.listeners.set(documentId, listeners.filter((listener) => listener !== callback));
780
+ }
781
+ };
782
+ }
783
+ notify(id) {
784
+ const listeners = this.listeners.get(id) ?? [];
785
+ for (const listener of listeners) listener();
786
+ }
787
+ async handleDocumentMutated(id) {
788
+ this.invalidateBatchesContaining(id);
789
+ await this.get(id);
790
+ this.notify(id);
791
+ }
792
+ handleDocumentDeleted(id) {
793
+ this.documents.delete(id);
794
+ this.invalidateBatchesContaining(id);
795
+ this.notify(id);
796
+ }
797
+ handleDocumentsDeleted(ids) {
798
+ forEach(ids, (id) => this.handleDocumentDeleted(id));
799
+ }
800
+ };
801
+ //#endregion
802
+ //#region src/graphql/mutators.ts
803
+ async function reactorGraphqlCreateDocument(document, parentIdentifier = DEFAULT_DRIVE_ID) {
804
+ const client = window.ph?.reactorGraphQLClient;
805
+ if (!client) throw new Error("Please call `useInitReactorGraphqlClient` to use its functions");
806
+ return await client.CreateDocument({
807
+ document,
808
+ parentIdentifier
809
+ });
810
+ }
811
+ async function reactorGraphqlDeleteDocument(identifier) {
812
+ const client = window.ph?.reactorGraphQLClient;
813
+ if (!client) throw new Error("Please call `useInitReactorGraphqlClient` to use its functions");
814
+ return await client.DeleteDocument({ identifier });
815
+ }
816
+ async function reactorGraphqlDeleteDocuments(identifiers) {
817
+ const client = window.ph?.reactorGraphQLClient;
818
+ if (!client) throw new Error("Please call `useInitReactorGraphqlClient` to use its functions");
819
+ return await client.DeleteDocuments({ identifiers });
820
+ }
821
+ async function reactorGraphqlMutateDocument(documentIdentifier, ...actions) {
822
+ const client = window.ph?.reactorGraphQLClient;
823
+ if (!client) throw new Error("Please call `useInitReactorGraphqlClient` to use its functions");
824
+ return await client.MutateDocument({
825
+ documentIdentifier,
826
+ actions
827
+ });
828
+ }
829
+ //#endregion
557
830
  //#region src/hooks/config/editor.ts
558
831
  const isExternalControlsEnabledEventFunctions = makePHEventFunctions("isExternalControlsEnabled");
559
832
  /** Sets whether external controls are enabled for a given editor. */
@@ -807,12 +1080,6 @@ const useFeatures = featuresEventFunctions.useValue;
807
1080
  const setFeatures = featuresEventFunctions.setValue;
808
1081
  const addFeaturesEventHandler = featuresEventFunctions.addEventHandler;
809
1082
  //#endregion
810
- //#region src/hooks/package-discovery.ts
811
- const packageDiscoveryFunctions = makePHEventFunctions("packageDiscoveryService");
812
- const usePackageDiscoveryService = packageDiscoveryFunctions.useValue;
813
- const setPackageDiscoveryService = packageDiscoveryFunctions.setValue;
814
- const addPackageDiscoveryServiceEventHandler = packageDiscoveryFunctions.addEventHandler;
815
- //#endregion
816
1083
  //#region src/hooks/drives.ts
817
1084
  const drivesEventFunctions = makePHEventFunctions("drives");
818
1085
  /** Returns all of the drives in the reactor */
@@ -822,6 +1089,12 @@ const setDrives = drivesEventFunctions.setValue;
822
1089
  /** Adds an event handler for the drives */
823
1090
  const addDrivesEventHandler = drivesEventFunctions.addEventHandler;
824
1091
  //#endregion
1092
+ //#region src/hooks/graphql-reactor-client.ts
1093
+ const graphQLReactorClientEventFunctions = makePHEventFunctions("reactorGraphQLClient");
1094
+ const useGraphQLReactorClient = graphQLReactorClientEventFunctions.useValue;
1095
+ const setGraphQLReactorClient = graphQLReactorClientEventFunctions.setValue;
1096
+ const addGraphQLReactorClientEventHandler = graphQLReactorClientEventFunctions.addEventHandler;
1097
+ //#endregion
825
1098
  //#region src/hooks/modals.ts
826
1099
  const modalEventFunctions = makePHEventFunctions("modal");
827
1100
  /** Returns the current modal */
@@ -853,6 +1126,12 @@ function showDeleteNodeModal(nodeOrId) {
853
1126
  });
854
1127
  }
855
1128
  //#endregion
1129
+ //#region src/hooks/package-discovery.ts
1130
+ const packageDiscoveryFunctions = makePHEventFunctions("packageDiscoveryService");
1131
+ const usePackageDiscoveryService = packageDiscoveryFunctions.useValue;
1132
+ const setPackageDiscoveryService = packageDiscoveryFunctions.setValue;
1133
+ const addPackageDiscoveryServiceEventHandler = packageDiscoveryFunctions.addEventHandler;
1134
+ //#endregion
856
1135
  //#region src/hooks/reactor.ts
857
1136
  const reactorClientModuleEventFunctions = makePHEventFunctions("reactorClientModule");
858
1137
  const reactorClientEventFunctions = makePHEventFunctions("reactorClient");
@@ -1158,15 +1437,9 @@ function updateReactorClientUpgradeManifests(packages) {
1158
1437
  }
1159
1438
  //#endregion
1160
1439
  //#region src/hooks/add-ph-event-handlers.ts
1161
- const phGlobalEventHandlerRegisterFunctions = {
1440
+ const commonGlobalEventHandlerFunctions = {
1162
1441
  loading: addLoadingEventHandler,
1163
- reactorClientModule: addReactorClientModuleEventHandler,
1164
- reactorClient: addReactorClientEventHandler,
1165
- features: addFeaturesEventHandler,
1166
- modal: addModalEventHandler,
1167
- renown: addRenownEventHandler,
1168
1442
  drives: addDrivesEventHandler,
1169
- documentCache: addDocumentCacheEventHandler,
1170
1443
  selectedDriveId: () => {
1171
1444
  addSelectedDriveIdEventHandler();
1172
1445
  addSetSelectedDriveOnPopStateEventHandler();
@@ -1176,6 +1449,16 @@ const phGlobalEventHandlerRegisterFunctions = {
1176
1449
  addSelectedNodeIdEventHandler();
1177
1450
  addSetSelectedNodeOnPopStateEventHandler();
1178
1451
  },
1452
+ documentCache: addDocumentCacheEventHandler,
1453
+ reactorGraphQLClient: addGraphQLReactorClientEventHandler
1454
+ };
1455
+ const phGlobalEventHandlerRegisterFunctions = {
1456
+ ...commonGlobalEventHandlerFunctions,
1457
+ reactorClientModule: addReactorClientModuleEventHandler,
1458
+ reactorClient: addReactorClientEventHandler,
1459
+ features: addFeaturesEventHandler,
1460
+ modal: addModalEventHandler,
1461
+ renown: addRenownEventHandler,
1179
1462
  vetraPackageManager: addVetraPackageManagerEventHandler,
1180
1463
  packageDiscoveryService: addPackageDiscoveryServiceEventHandler,
1181
1464
  selectedTimelineRevision: addSelectedTimelineRevisionEventHandler,
@@ -1233,7 +1516,10 @@ const phGlobalEventHandlerRegisterFunctions = {
1233
1516
  toast: addToastEventHandler
1234
1517
  };
1235
1518
  function addPHEventHandlers() {
1236
- for (const fn of Object.values(phGlobalEventHandlerRegisterFunctions)) fn();
1519
+ callEventHandlerRegisterFunctions(phGlobalEventHandlerRegisterFunctions);
1520
+ }
1521
+ function callEventHandlerRegisterFunctions(registerFunctions) {
1522
+ forEachObj(registerFunctions, (fn) => fn());
1237
1523
  }
1238
1524
  //#endregion
1239
1525
  //#region src/hooks/document-model-modules.ts
@@ -1583,6 +1869,61 @@ function useFolderById(id) {
1583
1869
  return useFolderNodesInSelectedDrive()?.find((n) => n.id === id);
1584
1870
  }
1585
1871
  //#endregion
1872
+ //#region src/graphql/events.ts
1873
+ function dispatchGraphQLClientDocumentEvent(operationName, identifier) {
1874
+ const event = new CustomEvent(operationName, { detail: { identifier } });
1875
+ window.dispatchEvent(event);
1876
+ }
1877
+ //#endregion
1878
+ //#region src/graphql/document-cache-client-middleware.ts
1879
+ const documentCacheClientMiddleware = async (action, operationName, operationType, variables) => {
1880
+ console.log({
1881
+ operationName,
1882
+ operationType,
1883
+ variables
1884
+ });
1885
+ const result = await action();
1886
+ if (isIncludedIn(operationName, graphqlEventsToSyncDrive)) window.dispatchEvent(new CustomEvent(operationName));
1887
+ if (isStrictEqual(operationName, "MutateDocument")) dispatchGraphQLClientDocumentEvent(operationName, identifierFromMutateDocumentOperationVariables(variables));
1888
+ return result;
1889
+ };
1890
+ //#endregion
1891
+ //#region src/hooks/init-graphql-reactor-client.ts
1892
+ function useInitReactorGraphqlClient(switchboardUrl = DEFAULT_SWITCHBOARD_URL, driveId = DEFAULT_DRIVE_ID) {
1893
+ const [hasInit, setHasInit] = useState(false);
1894
+ useEffect(() => {
1895
+ if (hasInit) return;
1896
+ initGraphQLReactorClientWithDocumentCache(switchboardUrl, driveId).then(() => setHasInit(true)).catch(console.error);
1897
+ }, [hasInit]);
1898
+ return hasInit;
1899
+ }
1900
+ async function reactorGraphqlFetchDrive(identifier) {
1901
+ const client = window.ph?.reactorGraphQLClient;
1902
+ if (!client) throw new Error("Please call `useInitReactorGraphqlClient` to use its functions");
1903
+ const result = await client.GetDocument({ identifier });
1904
+ if (!result.document?.document) throw new Error("Could not fetch drive with id: " + identifier);
1905
+ return phDocumentFromQuery(result.document.document, DriveDocumentSchema);
1906
+ }
1907
+ async function reactorGraphqlSyncDrive(driveId) {
1908
+ if (!window.ph?.reactorGraphQLClient) throw new Error("Please call `useInitReactorGraphqlClient` to use its functions");
1909
+ const drive = await reactorGraphqlFetchDrive(driveId);
1910
+ setDrives([drive]);
1911
+ setSelectedDrive(drive);
1912
+ }
1913
+ async function initGraphQLReactorClientWithDocumentCache(switchboardUrl, driveId) {
1914
+ if (!window.ph) window.ph = {};
1915
+ callEventHandlerRegisterFunctions(commonGlobalEventHandlerFunctions);
1916
+ setGraphQLReactorClient(createClient(switchboardUrl, documentCacheClientMiddleware));
1917
+ await reactorGraphqlSyncDrive(driveId);
1918
+ setSelectedNode(void 0);
1919
+ setDocumentCache(new GraphQLClientDocumentCache());
1920
+ forEach(graphqlEventsToSyncDrive, (name) => {
1921
+ window.addEventListener(name, () => {
1922
+ reactorGraphqlSyncDrive(driveId).catch(console.error);
1923
+ });
1924
+ });
1925
+ }
1926
+ //#endregion
1586
1927
  //#region src/hooks/items-in-selected-folder.ts
1587
1928
  /** Returns the nodes in the selected folder. */
1588
1929
  function useNodesInSelectedFolder() {
@@ -1751,6 +2092,74 @@ function useSubgraphModules() {
1751
2092
  return useVetraPackages().flatMap((pkg) => pkg.subgraphs || []);
1752
2093
  }
1753
2094
  //#endregion
2095
+ //#region src/hooks/use-drive-system-info.ts
2096
+ function deriveSystemUrl(channelUrl) {
2097
+ try {
2098
+ const url = new URL(channelUrl);
2099
+ url.pathname = "/graphql/system";
2100
+ url.search = "";
2101
+ url.hash = "";
2102
+ return url.toString();
2103
+ } catch {
2104
+ return null;
2105
+ }
2106
+ }
2107
+ const cache = /* @__PURE__ */ new Map();
2108
+ function useDriveSystemInfo(drive) {
2109
+ const remotes = useSyncList();
2110
+ const driveId = drive?.header.id;
2111
+ const systemUrl = useMemo(() => {
2112
+ if (!driveId) return null;
2113
+ const channelUrl = (remotes.find((r) => r.collectionId === driveCollectionId$1("main", driveId))?.channel)?.config.url;
2114
+ if (typeof channelUrl !== "string") return null;
2115
+ return deriveSystemUrl(channelUrl);
2116
+ }, [remotes, driveId]);
2117
+ const [state, setState] = useState(() => systemUrl ? cache.get(systemUrl) ?? { status: "loading" } : { status: "local" });
2118
+ useEffect(() => {
2119
+ if (!systemUrl) {
2120
+ setState({ status: "local" });
2121
+ return;
2122
+ }
2123
+ const cached = cache.get(systemUrl);
2124
+ if (cached && cached.status !== "loading") {
2125
+ setState(cached);
2126
+ return;
2127
+ }
2128
+ setState({ status: "loading" });
2129
+ cache.set(systemUrl, { status: "loading" });
2130
+ const controller = new AbortController();
2131
+ fetch(systemUrl, {
2132
+ method: "POST",
2133
+ headers: { "Content-Type": "application/json" },
2134
+ body: JSON.stringify({ query: "{ system { version gitHash } }" }),
2135
+ signal: controller.signal
2136
+ }).then(async (res) => {
2137
+ const json = await res.json();
2138
+ if (json.errors?.length) throw new Error(json.errors.map((e) => e.message).join("; "));
2139
+ const sys = json.data?.system;
2140
+ if (!sys) throw new Error("Missing system in response");
2141
+ const next = {
2142
+ status: "ready",
2143
+ version: sys.version,
2144
+ gitHash: sys.gitHash,
2145
+ host: new URL(systemUrl).host
2146
+ };
2147
+ cache.set(systemUrl, next);
2148
+ setState(next);
2149
+ }).catch((err) => {
2150
+ if (controller.signal.aborted) return;
2151
+ const next = {
2152
+ status: "error",
2153
+ message: err instanceof Error ? err.message : String(err)
2154
+ };
2155
+ cache.set(systemUrl, next);
2156
+ setState(next);
2157
+ });
2158
+ return () => controller.abort();
2159
+ }, [systemUrl]);
2160
+ return state;
2161
+ }
2162
+ //#endregion
1754
2163
  //#region src/utils/drives.ts
1755
2164
  const syncStatusToUI = {
1756
2165
  [SyncStatus.Synced]: "SUCCESS",
@@ -1863,25 +2272,13 @@ function getSwitchboardGatewayUrlFromDriveUrl(driveUrl) {
1863
2272
  return urlParts.join("/");
1864
2273
  }
1865
2274
  function getDocumentGraphqlQuery() {
1866
- return `query getDocument($documentId: String!) {
1867
- document(id: $documentId) {
1868
- id
1869
- documentType
1870
- createdAtUtcIso
1871
- lastModifiedAtUtcIso
1872
- name
1873
- revision
1874
- stateJSON
1875
- }
1876
- }`;
1877
- }
1878
- function buildDocumentSubgraphQuery(driveUrl, documentId, authToken) {
1879
- const driveSlug = getSlugFromDriveUrl(driveUrl);
2275
+ const loc = GetDocumentWithOperationsDocument.loc;
2276
+ if (!loc) throw new Error("GetDocumentWithOperationsDocument is misconfigured, loc is missing.");
2277
+ return loc.source.body;
2278
+ }
2279
+ function buildDocumentSubgraphQuery(identifier, authToken) {
1880
2280
  const query = getDocumentGraphqlQuery();
1881
- const variables = {
1882
- documentId,
1883
- driveId: driveSlug
1884
- };
2281
+ const variables = { identifier };
1885
2282
  const headers = authToken ? { Authorization: `Bearer ${authToken}` } : void 0;
1886
2283
  const payload = {
1887
2284
  document: query.trim(),
@@ -1890,8 +2287,8 @@ function buildDocumentSubgraphQuery(driveUrl, documentId, authToken) {
1890
2287
  if (headers) payload.headers = JSON.stringify(headers);
1891
2288
  return lzString.compressToEncodedURIComponent(JSON.stringify(payload));
1892
2289
  }
1893
- function buildDocumentSubgraphUrl(driveUrl, documentId, authToken) {
1894
- return `${driveUrl}?explorerURLState=${buildDocumentSubgraphQuery(driveUrl, documentId, authToken)}`;
2290
+ function buildDocumentSubgraphUrl(driveUrl, identifier, authToken) {
2291
+ return `${driveUrl}?explorerURLState=${buildDocumentSubgraphQuery(identifier, authToken)}`;
1895
2292
  }
1896
2293
  //#endregion
1897
2294
  //#region src/hooks/use-get-switchboard-link.ts
@@ -2843,6 +3240,6 @@ var BrowserLocalStorage = class extends BaseStorage {
2843
3240
  }
2844
3241
  };
2845
3242
  //#endregion
2846
- export { ActionTracker, BaseStorage, BrowserLocalStorage, COMMON_PACKAGE_ID, CREDENTIAL_SCHEMA_EIP712_TYPE, CREDENTIAL_SUBJECT_TYPE, CREDENTIAL_TYPES, ChannelScheme, ChevronDownIcon, ConflictError, CopyIcon, DEFAULT_DRIVE_EDITOR_ID, DOMAIN_TYPE, DisconnectIcon, DocumentCache, DocumentChangeType, DocumentIntegrityService, GqlRequestChannel, ISSUER_TYPE, InMemoryQueue, IntervalPollTimer, PropagationMode, REACTOR_SCHEMA, RENOWN_CHAIN_ID, RENOWN_NETWORK_ID, RENOWN_URL, ReactorBuilder, ReactorClientBuilder, RegistryClient, RelationalDbProcessor, RemoteClient, RemoteDocumentController, Renown, RenownAuthButton, RenownLoginButton, RenownLogo, RenownUserButton, SpinnerIcon, SyncOperationStatus, UserIcon, VERIFIABLE_CREDENTIAL_EIP712_TYPE, addAllowListEventHandler, addAllowedDocumentTypesEventHandler, addAnalyticsDatabaseNameEventHandler, addBasePathEventHandler, addCliVersionEventHandler, addDefaultDrivesUrlEventHandler, addDisabledEditorsEventHandler, addDocument, addDocumentCacheEventHandler, addDrive, addDrivesEventHandler, addDrivesPreserveStrategyEventHandler, addEnabledEditorsEventHandler, addFeaturesEventHandler, addFileUploadOperationsChunkSizeEventHandler, addFolder, addGaTrackingIdEventHandler, addIsAddCloudDrivesEnabledEventHandler, addIsAddDriveEnabledEventHandler, addIsAddLocalDrivesEnabledEventHandler, addIsAddPublicDrivesEnabledEventHandler, addIsAnalyticsDatabaseWorkerEnabledEventHandler, addIsAnalyticsEnabledEventHandler, addIsAnalyticsExternalProcessorsEnabledEventHandler, addIsCloudDrivesEnabledEventHandler, addIsDeleteCloudDrivesEnabledEventHandler, addIsDeleteLocalDrivesEnabledEventHandler, addIsDeletePublicDrivesEnabledEventHandler, addIsDiffAnalyticsEnabledEventHandler, addIsDocumentModelSelectionSettingsEnabledEventHandler, addIsDragAndDropEnabledEventHandler, addIsDriveAnalyticsEnabledEventHandler, addIsEditorDebugModeEnabledEventHandler, addIsEditorReadModeEnabledEventHandler, addIsExternalControlsEnabledEventHandler, addIsExternalPackagesEnabledEventHandler, addIsExternalProcessorsEnabledEventHandler, addIsExternalRelationalProcessorsEnabledEventHandler, addIsLocalDrivesEnabledEventHandler, addIsPublicDrivesEnabledEventHandler, addIsRelationalProcessorsEnabledEventHandler, addIsSentryTracingEnabledEventHandler, addLoadingEventHandler, addLocalDrivesEnabledEventHandler, addLogLevelEventHandler, addModalEventHandler, addPHEventHandlers, addPackageDiscoveryServiceEventHandler, addPromiseState, addReactorClientEventHandler, addReactorClientModuleEventHandler, addRemoteDrive, addRenownChainIdEventHandler, addRenownEventHandler, addRenownNetworkIdEventHandler, addRenownUrlEventHandler, addRequiresHardRefreshEventHandler, addResetSelectedNodeEventHandler, addRevisionHistoryVisibleEventHandler, addRouterBasenameEventHandler, addSelectedDriveIdEventHandler, addSelectedNodeIdEventHandler, addSelectedTimelineItemEventHandler, addSelectedTimelineRevisionEventHandler, addSentryDsnEventHandler, addSentryEnvEventHandler, addSentryReleaseEventHandler, addSetSelectedDriveOnPopStateEventHandler, addSetSelectedNodeOnPopStateEventHandler, addStudioModeEventHandler, addToastEventHandler, addVersionCheckIntervalEventHandler, addVersionEventHandler, addVetraPackageManagerEventHandler, addWarnOutdatedAppEventHandler, baseDocumentModels, baseDocumentModelsMap, buildDocumentSubgraphQuery, buildDocumentSubgraphUrl, callGlobalSetterForKey, clearGlobal, closePHModal, convertRemoteOperations, createAnalyticsStore, createClient, createProcessorQuery, createUrlWithPreservedParams, deleteDrive, deleteNode, dispatchActions, driveCollectionId, driveIdFromUrl, dropAllReactorStorage, exportDocument, exportFile, extractDriveIdFromPath, extractDriveIdFromSlug, extractDriveSlugFromPath, extractNodeIdFromPath, extractNodeIdFromSlug, extractNodeSlugFromPath, findUuid, getAnalyticsStore, getDocumentGraphqlQuery, getDriveIdBySlug, getDrives, getGlobal, getPackages, getPackagesByDocumentType, getPathWithoutBase, getRevisionFromDate, getSlugFromDriveUrl, getSwitchboardGatewayUrlFromDriveUrl, getSyncStatus, getSyncStatusSync, getUserPermissions, hideRevisionHistory, initConnectCrypto, initRenownCrypto, isDocumentTypeSupported, isExternalControlsEnabledEventFunctions, isFileNodeKind, isFolderNodeKind, loading, login, logout, makeDriveUrlComponent, makeNodeSlug, makePHEventFunctions, openRenown, parseDriveUrl, phAppConfigHooks, phAppConfigSetters, phDocumentEditorConfigHooks, phDocumentEditorConfigSetters, phGlobalConfigHooks, phGlobalConfigSetters, readPromiseState, refreshReactorData, refreshReactorDataClient, renameDrive, renameDriveNode, resolveUrlPathname, setAllowList, setAllowedDocumentTypes, setAnalyticsDatabaseName, setBasePath, setCliVersion, setDefaultDrivesUrl, setDefaultPHGlobalConfig, setDisabledEditors, setDocumentCache, setDriveAvailableOffline, setDriveSharingType, setDrives, setDrivesPreserveStrategy, setEnabledEditors, setFeatures, setFileUploadOperationsChunkSize, setGaTrackingId, setGlobal, setIsAddCloudDrivesEnabled, setIsAddDriveEnabled, setIsAddLocalDrivesEnabled, setIsAddPublicDrivesEnabled, setIsAnalyticsDatabaseWorkerEnabled, setIsAnalyticsEnabled, setIsAnalyticsExternalProcessorsEnabled, setIsCloudDrivesEnabled, setIsDeleteCloudDrivesEnabled, setIsDeleteLocalDrivesEnabled, setIsDeletePublicDrivesEnabled, setIsDiffAnalyticsEnabled, setIsDocumentModelSelectionSettingsEnabled, setIsDragAndDropEnabled, setIsDriveAnalyticsEnabled, setIsEditorDebugModeEnabled, setIsEditorReadModeEnabled, setIsExternalControlsEnabled, setIsExternalPackagesEnabled, setIsExternalProcessorsEnabled, setIsExternalRelationalProcessorsEnabled, setIsLocalDrivesEnabled, setIsPublicDrivesEnabled, setIsRelationalProcessorsEnabled, setIsSentryTracingEnabled, setLoading, setLocalDrivesEnabled, setLogLevel, setPHAppConfig, setPHAppConfigByKey, setPHDocumentEditorConfig, setPHDocumentEditorConfigByKey, setPHGlobalConfig, setPHGlobalConfigByKey, setPHModal, setPHToast, setPackageDiscoveryService, setReactorClient, setReactorClientModule, setRenown, setRenownChainId, setRenownNetworkId, setRenownUrl, setRequiresHardRefresh, setRevisionHistoryVisible, setRouterBasename, setSelectedDrive, setSelectedNode, setSelectedTimelineItem, setSelectedTimelineRevision, setSentryDsn, setSentryEnv, setSentryRelease, setStudioMode, setVersion, setVersionCheckInterval, setVetraPackageManager, setWarnOutdatedApp, showCreateDocumentModal, showDeleteNodeModal, showPHModal, showRevisionHistory, sortNodesByName, truncateAllTables, useAllowList, useAllowedDocumentModelModules, useAllowedDocumentTypes, useAnalyticsDatabaseName, useAppModuleById, useAppModules, useBasePath, useCliVersion, useConnectionState, useConnectionStates, useDatabase, useDefaultAppModule, useDefaultDrivesUrl, useDid, useDisabledEditors, useDispatch, useDocument, useDocumentById, useDocumentCache, useDocumentModelModuleById, useDocumentModelModules, useDocumentOfType, useDocumentOperations, useDocumentTypes, useDocumentTypesInSelectedDrive, useDocuments, useDocumentsByIds, useDocumentsInSelectedDrive, useDocumentsInSelectedFolder, useDriveById, useDrives, useDrivesPreserveStrategy, useEditorModuleById, useEditorModules, useEditorModulesForDocumentType, useEnabledEditors, useFallbackEditorModule, useFeatures, useFileNodesInSelectedDrive, useFileNodesInSelectedFolder, useFileUploadOperationsChunkSize, useFolderById, useFolderNodesInSelectedDrive, useFolderNodesInSelectedFolder, useGaTrackingId, useGetDocument, useGetDocumentAsync, useGetDocuments, useGetSwitchboardLink, useIsAddCloudDrivesEnabled, useIsAddDriveEnabled, useIsAddLocalDrivesEnabled, useIsAddPublicDrivesEnabled, useIsAnalyticsDatabaseWorkerEnabled, useIsAnalyticsEnabled, useIsAnalyticsExternalProcessorsEnabled, useIsCloudDrivesEnabled, useIsDeleteCloudDrivesEnabled, useIsDeleteLocalDrivesEnabled, useIsDeletePublicDrivesEnabled, useIsDiffAnalyticsEnabled, useIsDocumentModelSelectionSettingsEnabled, useIsDragAndDropEnabled, useIsDriveAnalyticsEnabled, useIsEditorDebugModeEnabled, useIsEditorReadModeEnabled, useIsExternalControlsEnabled, useIsExternalPackagesEnabled, useIsExternalProcessorsEnabled, useIsExternalRelationalProcessorsEnabled, useIsLocalDrivesEnabled, useIsPublicDrivesEnabled, useIsRelationalProcessorsEnabled, useIsSentryTracingEnabled, useLoading, useLocalDrivesEnabled, useLogLevel, useLoginStatus, useModelRegistry, useNodeActions, useNodeById, useNodeParentFolderById, useNodePathById, useNodesInSelectedDrive, useNodesInSelectedDriveOrFolder, useNodesInSelectedFolder, useOnDropFile, usePGlite, usePHAppConfigByKey, usePHDocumentEditorConfigByKey, usePHGlobalConfigByKey, usePHModal, usePHToast, usePackageDiscoveryService, useParentFolderForSelectedNode, useReactorClient, useReactorClientModule, useRelationalDb, useRelationalQuery, useRenown, useRenownAuth, useRenownChainId, useRenownInit, useRenownNetworkId, useRenownUrl, useRequiresHardRefresh, useResetPHGlobalConfig, useRevisionHistoryVisible, useRouterBasename, useSelectedDocument, useSelectedDocumentId, useSelectedDocumentOfType, useSelectedDocumentSafe, useSelectedDrive, useSelectedDriveId, useSelectedDriveSafe, useSelectedFolder, useSelectedNode, useSelectedNodePath, useSelectedTimelineItem, useSelectedTimelineRevision, useSentryDsn, useSentryEnv, useSentryRelease, useSetDefaultPHGlobalConfig, useSetPHAppConfig, useSetPHDocumentEditorConfig, useSetPHGlobalConfig, useStudioMode, useSubgraphModules, useSupportedDocumentTypesInReactor, useSync, useSyncList, useUser, useUserPermissions, useVersion, useVersionCheckInterval, useVetraPackageManager, useVetraPackages, useWarnOutdatedApp, validateDocument };
3243
+ export { ActionTracker, BaseStorage, BrowserLocalStorage, COMMON_PACKAGE_ID, CREDENTIAL_SCHEMA_EIP712_TYPE, CREDENTIAL_SUBJECT_TYPE, CREDENTIAL_TYPES, ChannelScheme, ChevronDownIcon, ConflictError, CopyIcon, DEFAULT_DRIVE_EDITOR_ID, DEFAULT_DRIVE_ID, DEFAULT_SWITCHBOARD_URL, DOMAIN_TYPE, DisconnectIcon, DocumentCache, DocumentChangeType, DocumentIntegrityService, GqlRequestChannel, GraphQLClientDocumentCache, ISSUER_TYPE, InMemoryQueue, IntervalPollTimer, PropagationMode, REACTOR_SCHEMA, RENOWN_CHAIN_ID, RENOWN_NETWORK_ID, RENOWN_URL, ReactorBuilder, ReactorClientBuilder, RegistryClient, RelationalDbProcessor, RemoteClient, RemoteDocumentController, Renown, RenownAuthButton, RenownLoginButton, RenownLogo, RenownUserButton, SpinnerIcon, SyncOperationStatus, UserIcon, VERIFIABLE_CREDENTIAL_EIP712_TYPE, addAllowListEventHandler, addAllowedDocumentTypesEventHandler, addAnalyticsDatabaseNameEventHandler, addBasePathEventHandler, addCliVersionEventHandler, addDefaultDrivesUrlEventHandler, addDisabledEditorsEventHandler, addDocument, addDocumentCacheEventHandler, addDrive, addDrivesEventHandler, addDrivesPreserveStrategyEventHandler, addEnabledEditorsEventHandler, addFeaturesEventHandler, addFileUploadOperationsChunkSizeEventHandler, addFolder, addGaTrackingIdEventHandler, addGraphQLReactorClientEventHandler, addIsAddCloudDrivesEnabledEventHandler, addIsAddDriveEnabledEventHandler, addIsAddLocalDrivesEnabledEventHandler, addIsAddPublicDrivesEnabledEventHandler, addIsAnalyticsDatabaseWorkerEnabledEventHandler, addIsAnalyticsEnabledEventHandler, addIsAnalyticsExternalProcessorsEnabledEventHandler, addIsCloudDrivesEnabledEventHandler, addIsDeleteCloudDrivesEnabledEventHandler, addIsDeleteLocalDrivesEnabledEventHandler, addIsDeletePublicDrivesEnabledEventHandler, addIsDiffAnalyticsEnabledEventHandler, addIsDocumentModelSelectionSettingsEnabledEventHandler, addIsDragAndDropEnabledEventHandler, addIsDriveAnalyticsEnabledEventHandler, addIsEditorDebugModeEnabledEventHandler, addIsEditorReadModeEnabledEventHandler, addIsExternalControlsEnabledEventHandler, addIsExternalPackagesEnabledEventHandler, addIsExternalProcessorsEnabledEventHandler, addIsExternalRelationalProcessorsEnabledEventHandler, addIsLocalDrivesEnabledEventHandler, addIsPublicDrivesEnabledEventHandler, addIsRelationalProcessorsEnabledEventHandler, addIsSentryTracingEnabledEventHandler, addLoadingEventHandler, addLocalDrivesEnabledEventHandler, addLogLevelEventHandler, addModalEventHandler, addPHEventHandlers, addPackageDiscoveryServiceEventHandler, addPromiseState, addReactorClientEventHandler, addReactorClientModuleEventHandler, addRemoteDrive, addRenownChainIdEventHandler, addRenownEventHandler, addRenownNetworkIdEventHandler, addRenownUrlEventHandler, addRequiresHardRefreshEventHandler, addResetSelectedNodeEventHandler, addRevisionHistoryVisibleEventHandler, addRouterBasenameEventHandler, addSelectedDriveIdEventHandler, addSelectedNodeIdEventHandler, addSelectedTimelineItemEventHandler, addSelectedTimelineRevisionEventHandler, addSentryDsnEventHandler, addSentryEnvEventHandler, addSentryReleaseEventHandler, addSetSelectedDriveOnPopStateEventHandler, addSetSelectedNodeOnPopStateEventHandler, addStudioModeEventHandler, addToastEventHandler, addVersionCheckIntervalEventHandler, addVersionEventHandler, addVetraPackageManagerEventHandler, addWarnOutdatedAppEventHandler, baseDocumentModels, baseDocumentModelsMap, buildDocumentSubgraphQuery, buildDocumentSubgraphUrl, callEventHandlerRegisterFunctions, callGlobalSetterForKey, clearGlobal, closePHModal, commonGlobalEventHandlerFunctions, convertRemoteOperations, createAnalyticsStore, createClient, createProcessorQuery, createUrlWithPreservedParams, deleteDrive, deleteNode, deriveSystemUrl, dispatchActions, driveCollectionId, driveIdFromUrl, dropAllReactorStorage, exportDocument, exportFile, extractDriveIdFromPath, extractDriveIdFromSlug, extractDriveSlugFromPath, extractNodeIdFromPath, extractNodeIdFromSlug, extractNodeSlugFromPath, findUuid, getAnalyticsStore, getDocumentGraphqlQuery, getDriveIdBySlug, getDrives, getGlobal, getPackages, getPackagesByDocumentType, getPathWithoutBase, getRevisionFromDate, getSlugFromDriveUrl, getSwitchboardGatewayUrlFromDriveUrl, getSyncStatus, getSyncStatusSync, getUserPermissions, graphqlDocumentEvents, graphqlDocumentsEvents, graphqlEventsToSyncDrive, hideRevisionHistory, identifierFromMutateDocumentOperationVariables, initConnectCrypto, initRenownCrypto, isDocumentTypeSupported, isExternalControlsEnabledEventFunctions, isFileNodeKind, isFolderNodeKind, loading, login, logout, makeDriveUrlComponent, makeNodeSlug, makePHEventFunctions, openRenown, parseDriveUrl, phAppConfigHooks, phAppConfigSetters, phDocumentEditorConfigHooks, phDocumentEditorConfigSetters, phDocumentFromQuery, phDocumentsFromQuery, phGlobalConfigHooks, phGlobalConfigSetters, reactorGraphqlBatchFetchDocuments, reactorGraphqlCreateDocument, reactorGraphqlDeleteDocument, reactorGraphqlDeleteDocuments, reactorGraphqlFetchDocument, reactorGraphqlMutateDocument, readPromiseState, refreshReactorData, refreshReactorDataClient, renameDrive, renameDriveNode, resolveUrlPathname, setAllowList, setAllowedDocumentTypes, setAnalyticsDatabaseName, setBasePath, setCliVersion, setDefaultDrivesUrl, setDefaultPHGlobalConfig, setDisabledEditors, setDocumentCache, setDriveAvailableOffline, setDriveSharingType, setDrives, setDrivesPreserveStrategy, setEnabledEditors, setFeatures, setFileUploadOperationsChunkSize, setGaTrackingId, setGlobal, setGraphQLReactorClient, setIsAddCloudDrivesEnabled, setIsAddDriveEnabled, setIsAddLocalDrivesEnabled, setIsAddPublicDrivesEnabled, setIsAnalyticsDatabaseWorkerEnabled, setIsAnalyticsEnabled, setIsAnalyticsExternalProcessorsEnabled, setIsCloudDrivesEnabled, setIsDeleteCloudDrivesEnabled, setIsDeleteLocalDrivesEnabled, setIsDeletePublicDrivesEnabled, setIsDiffAnalyticsEnabled, setIsDocumentModelSelectionSettingsEnabled, setIsDragAndDropEnabled, setIsDriveAnalyticsEnabled, setIsEditorDebugModeEnabled, setIsEditorReadModeEnabled, setIsExternalControlsEnabled, setIsExternalPackagesEnabled, setIsExternalProcessorsEnabled, setIsExternalRelationalProcessorsEnabled, setIsLocalDrivesEnabled, setIsPublicDrivesEnabled, setIsRelationalProcessorsEnabled, setIsSentryTracingEnabled, setLoading, setLocalDrivesEnabled, setLogLevel, setPHAppConfig, setPHAppConfigByKey, setPHDocumentEditorConfig, setPHDocumentEditorConfigByKey, setPHGlobalConfig, setPHGlobalConfigByKey, setPHModal, setPHToast, setPackageDiscoveryService, setReactorClient, setReactorClientModule, setRenown, setRenownChainId, setRenownNetworkId, setRenownUrl, setRequiresHardRefresh, setRevisionHistoryVisible, setRouterBasename, setSelectedDrive, setSelectedDriveId, setSelectedNode, setSelectedTimelineItem, setSelectedTimelineRevision, setSentryDsn, setSentryEnv, setSentryRelease, setStudioMode, setVersion, setVersionCheckInterval, setVetraPackageManager, setWarnOutdatedApp, showCreateDocumentModal, showDeleteNodeModal, showPHModal, showRevisionHistory, sortNodesByName, truncateAllTables, useAllowList, useAllowedDocumentModelModules, useAllowedDocumentTypes, useAnalyticsDatabaseName, useAppModuleById, useAppModules, useBasePath, useCliVersion, useConnectionState, useConnectionStates, useDatabase, useDefaultAppModule, useDefaultDrivesUrl, useDid, useDisabledEditors, useDispatch, useDocument, useDocumentById, useDocumentCache, useDocumentModelModuleById, useDocumentModelModules, useDocumentOfType, useDocumentOperations, useDocumentTypes, useDocumentTypesInSelectedDrive, useDocuments, useDocumentsByIds, useDocumentsInSelectedDrive, useDocumentsInSelectedFolder, useDriveById, useDriveSystemInfo, useDrives, useDrivesPreserveStrategy, useEditorModuleById, useEditorModules, useEditorModulesForDocumentType, useEnabledEditors, useFallbackEditorModule, useFeatures, useFileNodesInSelectedDrive, useFileNodesInSelectedFolder, useFileUploadOperationsChunkSize, useFolderById, useFolderNodesInSelectedDrive, useFolderNodesInSelectedFolder, useGaTrackingId, useGetDocument, useGetDocumentAsync, useGetDocuments, useGetSwitchboardLink, useGraphQLReactorClient, useInitReactorGraphqlClient, useIsAddCloudDrivesEnabled, useIsAddDriveEnabled, useIsAddLocalDrivesEnabled, useIsAddPublicDrivesEnabled, useIsAnalyticsDatabaseWorkerEnabled, useIsAnalyticsEnabled, useIsAnalyticsExternalProcessorsEnabled, useIsCloudDrivesEnabled, useIsDeleteCloudDrivesEnabled, useIsDeleteLocalDrivesEnabled, useIsDeletePublicDrivesEnabled, useIsDiffAnalyticsEnabled, useIsDocumentModelSelectionSettingsEnabled, useIsDragAndDropEnabled, useIsDriveAnalyticsEnabled, useIsEditorDebugModeEnabled, useIsEditorReadModeEnabled, useIsExternalControlsEnabled, useIsExternalPackagesEnabled, useIsExternalProcessorsEnabled, useIsExternalRelationalProcessorsEnabled, useIsLocalDrivesEnabled, useIsPublicDrivesEnabled, useIsRelationalProcessorsEnabled, useIsSentryTracingEnabled, useLoading, useLocalDrivesEnabled, useLogLevel, useLoginStatus, useModelRegistry, useNodeActions, useNodeById, useNodeParentFolderById, useNodePathById, useNodesInSelectedDrive, useNodesInSelectedDriveOrFolder, useNodesInSelectedFolder, useOnDropFile, usePGlite, usePHAppConfigByKey, usePHDocumentEditorConfigByKey, usePHGlobalConfigByKey, usePHModal, usePHToast, usePackageDiscoveryService, useParentFolderForSelectedNode, useReactorClient, useReactorClientModule, useRelationalDb, useRelationalQuery, useRenown, useRenownAuth, useRenownChainId, useRenownInit, useRenownNetworkId, useRenownUrl, useRequiresHardRefresh, useResetPHGlobalConfig, useRevisionHistoryVisible, useRouterBasename, useSelectedDocument, useSelectedDocumentId, useSelectedDocumentOfType, useSelectedDocumentSafe, useSelectedDrive, useSelectedDriveId, useSelectedDriveSafe, useSelectedFolder, useSelectedNode, useSelectedNodePath, useSelectedTimelineItem, useSelectedTimelineRevision, useSentryDsn, useSentryEnv, useSentryRelease, useSetDefaultPHGlobalConfig, useSetPHAppConfig, useSetPHDocumentEditorConfig, useSetPHGlobalConfig, useStudioMode, useSubgraphModules, useSupportedDocumentTypesInReactor, useSync, useSyncList, useUser, useUserPermissions, useVersion, useVersionCheckInterval, useVetraPackageManager, useVetraPackages, useWarnOutdatedApp, validateDocument };
2847
3244
 
2848
3245
  //# sourceMappingURL=index.js.map