@powerhousedao/reactor-browser 6.2.0-dev.17 → 6.2.0-dev.19

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.
@@ -1 +1 @@
1
- {"version":3,"file":"document-by-id-BrIy0iHX.js","names":[],"sources":["../src/actions/queue.ts","../src/actions/sign.ts","../src/actions/dispatch.ts","../src/global/core.ts","../src/analytics/store.ts","../src/document-cache.ts","../src/hooks/document-cache.ts","../src/hooks/dispatch.ts","../src/hooks/document-by-id.ts"],"sourcesContent":["import type { FileUploadProgressCallback } from \"@powerhousedao/reactor-browser\";\nimport type {\n Action,\n DocumentOperations,\n Operation,\n PHDocument,\n} from \"@powerhousedao/shared/document-model\";\nimport { logger } from \"document-model\";\n\nexport async function queueActions(\n document: PHDocument | undefined,\n actionOrActions: Action[] | Action | undefined,\n) {\n if (!document) {\n throw new Error(\"No document provided\");\n }\n if (!actionOrActions) {\n throw new Error(\"No actions provided\");\n }\n const actions = Array.isArray(actionOrActions)\n ? actionOrActions\n : [actionOrActions];\n\n if (actions.length === 0) {\n throw new Error(\"No actions provided\");\n }\n\n const reactorClient = window.ph?.reactorClient;\n if (!reactorClient) {\n throw new Error(\"ReactorClient not initialized\");\n }\n\n return await reactorClient.execute(document.header.id, \"main\", actions);\n}\n\nexport async function queueOperations(\n documentId: string,\n operationOrOperations: Operation[] | Operation | undefined,\n) {\n if (!documentId) {\n throw new Error(\"No documentId provided\");\n }\n if (!operationOrOperations) {\n throw new Error(\"No operations provided\");\n }\n const operations = Array.isArray(operationOrOperations)\n ? operationOrOperations\n : [operationOrOperations];\n\n if (operations.length === 0) {\n throw new Error(\"No operations provided\");\n }\n\n const reactorClient = window.ph?.reactorClient;\n if (!reactorClient) {\n throw new Error(\"ReactorClient not initialized\");\n }\n\n const actions = operations.map((op) => op.action);\n return await reactorClient.execute(documentId, \"main\", actions);\n}\n\nexport function deduplicateOperations(\n existingOperations: Record<string, Operation[]>,\n operationsToDeduplicate: Operation[],\n) {\n // make a set of all the operation indices for each scope to avoid duplicates\n const operationIndicesByScope = {} as Record<string, Set<number>>;\n for (const scope of Object.keys(existingOperations)) {\n operationIndicesByScope[scope] = new Set(\n existingOperations[scope].map((op) => op.index),\n );\n }\n\n const newOperations: Operation[] = [];\n\n for (const operation of operationsToDeduplicate) {\n const scope = operation.action.scope;\n const index = operation.index;\n if (operationIndicesByScope[scope].has(index)) {\n const duplicatedExistingOperation = existingOperations[scope].find(\n (op) => op.index === index,\n );\n const duplicatedNewOperation = newOperations.find(\n (op) => op.index === index,\n );\n console.warn(\"skipping duplicate operation\");\n if (duplicatedExistingOperation) {\n console.warn(\n \"duplicate existing operation\",\n duplicatedExistingOperation,\n );\n }\n if (duplicatedNewOperation) {\n console.warn(\"duplicate new operation\", duplicatedNewOperation);\n }\n continue;\n }\n newOperations.push(operation);\n operationIndicesByScope[scope].add(index);\n }\n\n const uniqueOperationIds = new Set<string>();\n const operationsDedupedById: Operation[] = [];\n\n for (const [scope, operations] of Object.entries(existingOperations)) {\n for (const operation of operations) {\n const id = operation.id;\n if (!id) {\n console.warn(\"skipping operation with no id\", operation);\n continue;\n }\n if (uniqueOperationIds.has(id)) {\n console.warn(\n \"skipping existing operation with duplicate id in scope\",\n scope,\n operation,\n );\n continue;\n }\n uniqueOperationIds.add(id);\n }\n }\n\n for (const operation of newOperations) {\n const id = operation.id;\n if (!id) {\n console.warn(\"skipping operation with no id\", operation);\n continue;\n }\n if (uniqueOperationIds.has(id)) {\n console.warn(\n \"skipping new operation with duplicate id in scope\",\n operation.action.scope,\n operation,\n );\n continue;\n }\n uniqueOperationIds.add(id);\n operationsDedupedById.push(operation);\n }\n return operationsDedupedById;\n}\n\nexport async function uploadOperations(\n documentId: string,\n allOperations: DocumentOperations,\n pushOperations: (\n documentId: string,\n operations: Operation[],\n ) => Promise<PHDocument | undefined>,\n options?: {\n operationsLimit?: number;\n onProgress?: FileUploadProgressCallback;\n },\n) {\n const operationsLimit = options?.operationsLimit || 50;\n const onProgress = options?.onProgress;\n\n logger.verbose(\n `uploadDocumentOperations(documentId:${documentId}, ops: ${Object.keys(allOperations).join(\",\")}, limit:${operationsLimit})`,\n );\n\n // Calculate total operations for progress tracking\n const allOperationsArray = Object.values(allOperations).filter(\n (ops): ops is Operation[] => ops !== undefined,\n );\n const totalOperations = allOperationsArray.reduce(\n (total, operations) => total + operations.length,\n 0,\n );\n let uploadedOperations = 0;\n\n for (const operations of allOperationsArray) {\n for (let i = 0; i < operations.length; i += operationsLimit) {\n logger.verbose(\n `uploadDocumentOperations:for(i:${i}, ops:${operations.length}, limit:${operationsLimit}): START`,\n );\n const chunk = operations.slice(i, i + operationsLimit);\n const operation = chunk.at(-1);\n if (!operation) {\n break;\n }\n const scope = operation.action.scope;\n\n await pushOperations(documentId, chunk);\n\n uploadedOperations += chunk.length;\n\n // Report progress\n if (onProgress) {\n const progress = Math.round(\n (uploadedOperations / totalOperations) * 100,\n );\n onProgress({\n stage: \"uploading\",\n progress,\n totalOperations,\n uploadedOperations,\n });\n }\n\n logger.verbose(\n `uploadDocumentOperations:for:waitForUpdate(${documentId}:${scope} rev ${operation.index}): NEXT`,\n );\n }\n }\n\n logger.verbose(\n `uploadDocumentOperations:for:waitForUpdate(${documentId}): END`,\n );\n}\n","import type { Action, PHDocument } from \"@powerhousedao/shared/document-model\";\nimport {\n buildSignedAction,\n type ActionSigner,\n} from \"@powerhousedao/shared/document-model\";\nimport { logger } from \"document-model\";\n\nexport async function signAction(action: Action, document: PHDocument) {\n const reactor = window.ph?.reactorClient;\n if (!reactor) return action;\n\n const documentModelModule = await reactor.getDocumentModelModule(\n document.header.documentType,\n );\n const reducer = documentModelModule.reducer;\n const renown = window.ph?.renown;\n if (!renown?.user) return action;\n if (!action.context?.signer) return action;\n\n const actionSigner = action.context.signer;\n const unsafeSignedAction = await buildSignedAction(\n action,\n reducer,\n document,\n actionSigner,\n renown.crypto.sign,\n );\n\n // TODO: this is super dangerous and is caused by the `buildSignedAction` function returning an `Operation` instead of an `Action`\n return unsafeSignedAction as unknown as Action;\n}\n\nexport function addActionContext(action: Action) {\n const renown = window.ph?.renown;\n if (!renown?.user) return action;\n\n const signer: ActionSigner = {\n app: {\n name: \"Connect\",\n key: renown.did,\n },\n user: {\n address: renown.user.address,\n networkId: renown.user.networkId,\n chainId: renown.user.chainId,\n },\n signatures: [],\n };\n\n return {\n context: { signer },\n ...action,\n };\n}\n\nasync function makeSignedActionWithContext(\n action: Action | undefined,\n document: PHDocument | undefined,\n) {\n if (!action) {\n logger.error(\"No action found\");\n return;\n }\n if (!document) {\n logger.error(\"No document found\");\n return;\n }\n const signedAction = await signAction(action, document);\n const signedActionWithContext = addActionContext(signedAction);\n return signedActionWithContext;\n}\n\nexport async function makeSignedActionsWithContext(\n actionOrActions: Action[] | Action | undefined,\n document: PHDocument | undefined,\n) {\n if (!actionOrActions) {\n logger.error(\"No actions found\");\n return;\n }\n const actions = Array.isArray(actionOrActions)\n ? actionOrActions\n : [actionOrActions];\n\n const signedActionsWithContext = await Promise.all(\n actions.map((action) => makeSignedActionWithContext(action, document)),\n );\n return signedActionsWithContext.filter((a) => a !== undefined);\n}\n","import type { Action, PHDocument } from \"@powerhousedao/shared/document-model\";\nimport { logger } from \"document-model\";\nimport { queueActions } from \"./queue.js\";\nimport { makeSignedActionsWithContext } from \"./sign.js\";\n\nasync function getDocument(\n documentId: string,\n): Promise<PHDocument | undefined> {\n try {\n return await window.ph?.reactorClient?.get(documentId);\n } catch (error) {\n logger.debug(`Failed to get document with id ${documentId}:`, error);\n return undefined;\n }\n}\n\nfunction getActionErrors(result: PHDocument, actions: Action[]) {\n return actions.reduce((errors, a) => {\n const scopeOperations = result.operations[a.scope];\n if (!scopeOperations) {\n return errors;\n }\n const op = scopeOperations.findLast((op) => op.action.id === a.id);\n\n if (op?.error) {\n errors.push(new Error(op.error));\n }\n return errors;\n }, new Array<Error>());\n}\n\n/**\n * Dispatches actions to a document.\n * @param actionOrActions - The action or actions to dispatch.\n * @param document - The document to dispatch actions to.\n * @param onErrors - Callback invoked with any errors that occurred during action execution.\n * @returns The updated document, or undefined if the dispatch failed.\n */\nexport async function dispatchActions<TDocument = PHDocument, TAction = Action>(\n actionOrActions: TAction[] | TAction | undefined,\n document: TDocument | undefined,\n onErrors?: (errors: Error[]) => void,\n onSuccess?: (result: PHDocument) => void,\n): Promise<PHDocument | undefined>;\n/**\n * Dispatches actions to a document.\n * @param actionOrActions - The action or actions to dispatch.\n * @param documentId - The ID of the document to dispatch actions to.\n * @param onErrors - Callback invoked with any errors that occurred during action execution.\n * @returns The updated document, or undefined if the dispatch failed.\n */\nexport async function dispatchActions(\n actionOrActions: Action[] | Action | undefined,\n documentId: string,\n onErrors?: (errors: Error[]) => void,\n onSuccess?: (result: PHDocument) => void,\n): Promise<PHDocument | undefined>;\nexport async function dispatchActions(\n actionOrActions: Action[] | Action | undefined,\n documentOrDocumentId: PHDocument | string | undefined,\n onErrors?: (errors: Error[]) => void,\n onSuccess?: (result: PHDocument) => void,\n): Promise<PHDocument | undefined> {\n const document =\n typeof documentOrDocumentId === \"string\"\n ? await getDocument(documentOrDocumentId)\n : documentOrDocumentId;\n\n if (!document) {\n logger.error(\n `Document with id ${JSON.stringify(documentOrDocumentId)} not found`,\n );\n return;\n }\n\n const signedActionsWithContext = await makeSignedActionsWithContext(\n actionOrActions,\n document,\n );\n if (!signedActionsWithContext) {\n logger.error(\"No signed actions with context found\");\n return;\n }\n const result = await queueActions(document, signedActionsWithContext);\n\n if (onErrors && result) {\n const errors = getActionErrors(result, signedActionsWithContext);\n if (errors.length) {\n onErrors(errors);\n }\n }\n\n if (onSuccess && result) {\n onSuccess(result);\n }\n\n return result;\n}\n","import type { PowerhouseGlobal } from \"./types.js\";\n\nexport function getGlobal<K extends keyof PowerhouseGlobal>(\n namespace: K,\n): PowerhouseGlobal[K] | undefined {\n if (typeof window === \"undefined\") return undefined;\n return window.powerhouse?.[namespace];\n}\n\nexport function setGlobal<K extends keyof PowerhouseGlobal>(\n namespace: K,\n value: PowerhouseGlobal[K],\n): void {\n if (typeof window === \"undefined\") return;\n window.powerhouse = window.powerhouse || {};\n window.powerhouse[namespace] = value;\n}\n\nexport function clearGlobal(namespace: keyof PowerhouseGlobal): void {\n if (typeof window === \"undefined\") return;\n\n if (window.powerhouse?.[namespace]) {\n delete window.powerhouse[namespace];\n if (Object.keys(window.powerhouse).length === 0) {\n delete window.powerhouse;\n }\n }\n}\n","import type { BrowserAnalyticsStoreOptions } from \"@powerhousedao/analytics-engine-browser\";\nimport { BrowserAnalyticsStore } from \"@powerhousedao/analytics-engine-browser\";\nimport type { IAnalyticsStore } from \"@powerhousedao/analytics-engine-core\";\nimport { AnalyticsQueryEngine } from \"@powerhousedao/analytics-engine-core\";\nimport { getGlobal } from \"../global/core.js\";\n\nexport type CreateStoreOptions = BrowserAnalyticsStoreOptions;\n\nexport async function createAnalyticsStore(options: CreateStoreOptions) {\n const store = new BrowserAnalyticsStore(options);\n await store.init();\n\n const engine = new AnalyticsQueryEngine(store);\n return {\n store,\n engine,\n options,\n };\n}\n\nexport async function getAnalyticsStore(): Promise<IAnalyticsStore | null> {\n const globalAnalytics = await getGlobal(\"analytics\");\n\n return globalAnalytics?.store ?? null;\n}\n","import {\n DocumentChangeType,\n type DocumentChangeEvent,\n type IReactorClient,\n} from \"@powerhousedao/reactor\";\nimport type { PHDocument } from \"@powerhousedao/shared/document-model\";\nimport type {\n FulfilledPromise,\n IDocumentCache,\n PromiseState,\n PromiseWithState,\n RejectedPromise,\n} from \"./types/documents.js\";\n\nexport function addPromiseState<T>(promise: Promise<T>): PromiseWithState<T> {\n if (\"status\" in promise) {\n return promise as PromiseWithState<T>;\n }\n\n const promiseWithState = promise as PromiseWithState<T>;\n promiseWithState.status = \"pending\";\n promiseWithState.then(\n (value) => {\n promiseWithState.status = \"fulfilled\";\n (promiseWithState as FulfilledPromise<T>).value = value;\n },\n (reason) => {\n promiseWithState.status = \"rejected\";\n (promiseWithState as RejectedPromise<T>).reason = reason;\n // Re-throw to preserve unhandled rejection behavior\n // This allows React's error boundaries to catch the error\n throw reason;\n },\n );\n\n return promiseWithState;\n}\n\nexport function readPromiseState<T>(\n promise: Promise<T> | PromiseWithState<T>,\n): PromiseState<T> {\n return \"status\" in promise ? promise : { status: \"pending\" };\n}\n\n/**\n * Resolves an array of document promises using `Promise.allSettled`,\n * returning only the fulfilled values. A single missing/rejected\n * document does not poison the whole batch. Rejected entries are\n * logged at warn level so developers can see dangling references.\n */\nfunction fulfilledOnly(promises: Promise<PHDocument>[]): Promise<PHDocument[]> {\n return Promise.allSettled(promises).then((results) => {\n const documents: PHDocument[] = [];\n for (const result of results) {\n if (result.status === \"fulfilled\") {\n documents.push(result.value);\n } else {\n console.warn(\n \"[DocumentCache] Skipped unavailable document:\",\n result.reason,\n );\n }\n }\n return documents;\n });\n}\n\n/**\n * Document cache implementation that uses the new ReactorClient API.\n *\n * This cache subscribes to document change events via IReactorClient.subscribe()\n * and automatically updates the cache when documents are created, updated, or deleted.\n */\nexport class DocumentCache implements IDocumentCache {\n private documents = new Map<string, PromiseWithState<PHDocument>>();\n private batchPromises = new Map<\n string,\n { promises: Promise<PHDocument>[]; promise: Promise<PHDocument[]> }\n >();\n private listeners = new Map<string, (() => void)[]>();\n private unsubscribe: (() => void) | null = null;\n\n constructor(private client: IReactorClient) {\n this.unsubscribe = client.subscribe({}, (event: DocumentChangeEvent) => {\n this.handleDocumentChange(event);\n });\n }\n\n private handleDocumentChange(event: DocumentChangeEvent): void {\n if (event.type === DocumentChangeType.Deleted) {\n const documentId = event.context?.childId;\n if (documentId) {\n this.handleDocumentDeleted(documentId);\n }\n } else if (event.type === DocumentChangeType.Updated) {\n for (const doc of event.documents) {\n this.handleDocumentUpdated(doc.header.id).catch(console.warn);\n }\n }\n }\n\n private handleDocumentDeleted(documentId: string): void {\n const listeners = this.listeners.get(documentId);\n this.documents.delete(documentId);\n this.invalidateBatchesContaining(documentId);\n if (listeners) {\n listeners.forEach((listener) => listener());\n }\n this.listeners.delete(documentId);\n }\n\n private async handleDocumentUpdated(documentId: string): Promise<void> {\n if (this.documents.has(documentId)) {\n await this.get(documentId, true);\n const listeners = this.listeners.get(documentId);\n if (listeners) {\n listeners.forEach((listener) => listener());\n }\n }\n }\n\n private invalidateBatchesContaining(documentId: string): void {\n for (const key of this.batchPromises.keys()) {\n if (key.split(\",\").includes(documentId)) {\n this.batchPromises.delete(key);\n }\n }\n }\n\n get(id: string, refetch?: boolean): Promise<PHDocument> {\n const currentData = this.documents.get(id);\n if (currentData) {\n if (currentData.status === \"pending\") {\n return currentData;\n }\n if (!refetch) {\n return currentData;\n }\n }\n\n const documentPromise = this.client.get(id);\n this.documents.set(id, addPromiseState(documentPromise));\n return documentPromise;\n }\n\n getBatch(ids: string[]): Promise<PHDocument[]> {\n const key = ids.join(\",\");\n const cached = this.batchPromises.get(key);\n\n const hasDeletedDocuments = ids.some((id) => !this.documents.has(id));\n const currentPromises = ids.map((id) => this.get(id));\n\n if (hasDeletedDocuments) {\n const batchPromise = fulfilledOnly(currentPromises);\n this.batchPromises.set(key, {\n promises: currentPromises,\n promise: batchPromise,\n });\n return batchPromise;\n }\n\n if (cached) {\n const samePromises = currentPromises.every(\n (p, i) => p === cached.promises[i],\n );\n if (samePromises) {\n return cached.promise;\n }\n }\n\n const states = currentPromises.map((p) =>\n readPromiseState(p as PromiseWithState<PHDocument>),\n );\n const allSettled = states.every((s) => s.status !== \"pending\");\n\n if (allSettled) {\n const values = states\n .filter(\n (s): s is { status: \"fulfilled\"; value: PHDocument } =>\n s.status === \"fulfilled\",\n )\n .map((s) => s.value);\n const batchPromise = Promise.resolve(values) as PromiseWithState<\n PHDocument[]\n >;\n batchPromise.status = \"fulfilled\";\n (batchPromise as FulfilledPromise<PHDocument[]>).value = values;\n\n this.batchPromises.set(key, {\n promises: currentPromises,\n promise: batchPromise,\n });\n return batchPromise;\n }\n\n if (cached) {\n return cached.promise;\n }\n\n const batchPromise = fulfilledOnly(currentPromises);\n this.batchPromises.set(key, {\n promises: currentPromises,\n promise: batchPromise,\n });\n return batchPromise;\n }\n\n subscribe(id: string | string[], callback: () => void): () => void {\n const ids = Array.isArray(id) ? id : [id];\n for (const docId of ids) {\n const listeners = this.listeners.get(docId) ?? [];\n this.listeners.set(docId, [...listeners, callback]);\n }\n return () => {\n for (const docId of ids) {\n const listeners = this.listeners.get(docId) ?? [];\n this.listeners.set(\n docId,\n listeners.filter((listener) => listener !== callback),\n );\n }\n };\n }\n\n /**\n * Disposes of the cache and unsubscribes from document change events.\n */\n dispose(): void {\n if (this.unsubscribe) {\n this.unsubscribe();\n this.unsubscribe = null;\n }\n }\n}\n","import type { PHDocument } from \"@powerhousedao/shared/document-model\";\nimport { use, useCallback, useSyncExternalStore } from \"react\";\nimport { readPromiseState } from \"../document-cache.js\";\nimport type { IDocumentCache } from \"../types/documents.js\";\nimport type { SetPHGlobalValue, UsePHGlobalValue } from \"../types/global.js\";\nimport { makePHEventFunctions } from \"./make-ph-event-functions.js\";\n\nconst documentEventFunctions = makePHEventFunctions(\"documentCache\");\n\n/** Returns all documents in the reactor. */\nexport const useDocumentCache: UsePHGlobalValue<IDocumentCache> =\n documentEventFunctions.useValue;\n\n/** Sets all of the documents in the reactor. */\nexport const setDocumentCache: SetPHGlobalValue<IDocumentCache> =\n documentEventFunctions.setValue;\n\n/** Adds an event handler for all of the documents in the reactor. */\nexport const addDocumentCacheEventHandler =\n documentEventFunctions.addEventHandler;\n\n/**\n * Reads the state of a document promise and converts it to a query state object.\n * @param promise - The document promise to read\n * @returns An object containing the status, data, error, and isPending flag\n */\nfunction getDocumentQueryState(promise: Promise<PHDocument>) {\n const state = readPromiseState(promise);\n switch (state.status) {\n case \"pending\":\n return {\n status: \"pending\",\n isPending: true,\n error: undefined,\n data: undefined,\n } as const;\n case \"fulfilled\":\n return {\n status: \"success\",\n isPending: false,\n error: undefined,\n data: state.value,\n } as const;\n case \"rejected\":\n return {\n status: \"error\",\n isPending: false,\n error: state.reason,\n data: undefined,\n } as const;\n }\n}\n\n/**\n * Retrieves a document from the reactor and subscribes to changes using React Suspense.\n * This hook will suspend rendering while the document is loading.\n * @param id - The document ID to retrieve, or null/undefined to skip retrieval\n * @returns The document if found, or undefined if id is null/undefined\n */\nexport function useDocument(id: string | null | undefined) {\n const documentCache = useDocumentCache();\n const document = useSyncExternalStore(\n (cb) => (id && documentCache ? documentCache.subscribe(id, cb) : () => {}),\n () => (id ? documentCache?.get(id) : undefined),\n );\n return document ? use(document) : undefined;\n}\n\n/**\n * Retrieves a document from the reactor and subscribes to changes without\n * suspending or throwing. Use this when the ID might be stale (e.g., a\n * previously selected node that has since been deleted) and the consumer\n * wants to render a placeholder instead of crashing.\n *\n * Unlike {@link useGetDocumentAsync}, this hook subscribes to cache\n * updates, so the returned state stays in sync with reactor changes.\n *\n * @param id - The document ID to retrieve, or null/undefined to skip retrieval\n * @returns An object containing:\n * - status: \"initial\" | \"pending\" | \"success\" | \"error\"\n * - data: The document if successfully loaded\n * - isPending: Whether the document is currently loading\n * - error: Any error that occurred during loading (e.g., document not found)\n * - reload: Function to force a refetch, or undefined when no id is supplied\n */\nexport function useDocumentSafe(id: string | null | undefined) {\n const documentCache = useDocumentCache();\n const promise = useSyncExternalStore(\n (cb) => (id && documentCache ? documentCache.subscribe(id, cb) : () => {}),\n () => (id ? documentCache?.get(id) : undefined),\n );\n\n if (!promise || !documentCache || !id) {\n return {\n status: \"initial\",\n isPending: false,\n error: undefined,\n data: undefined,\n reload: undefined,\n } as const;\n }\n\n const state = getDocumentQueryState(promise);\n return { ...state, reload: () => documentCache.get(id, true) } as const;\n}\n\n/**\n * Retrieves multiple documents from the reactor using React Suspense.\n * This hook will suspend rendering while any of the documents are loading.\n *\n * Uses getBatch from the document cache which handles promise caching internally,\n * ensuring stable references for useSyncExternalStore.\n *\n * @param ids - Array of document IDs to retrieve, or null/undefined to skip retrieval\n * @returns An array of documents if found, or empty array if ids is null/undefined\n */\nexport function useDocuments(ids: string[] | null | undefined) {\n const documentCache = useDocumentCache();\n\n const documents = useSyncExternalStore(\n (cb) =>\n ids?.length && documentCache\n ? documentCache.subscribe(ids, cb)\n : () => {},\n () =>\n ids?.length && documentCache ? documentCache.getBatch(ids) : undefined,\n );\n\n return documents ? use(documents) : [];\n}\n\n/**\n * Returns a function to retrieve a document from the cache.\n * The returned function fetches and returns a document by ID.\n * @returns A function that takes a document ID and returns a Promise of the document\n */\nexport function useGetDocument() {\n const documentCache = useDocumentCache();\n\n return useCallback(\n (id: string) => {\n if (!documentCache) {\n return Promise.reject(new Error(\"Document cache not initialized\"));\n }\n return documentCache.get(id);\n },\n [documentCache],\n );\n}\n\n/**\n * Returns a function to retrieve multiple documents from the cache.\n * The returned function fetches and returns documents by their IDs.\n * @returns A function that takes an array of document IDs and returns a Promise of the documents\n */\nexport function useGetDocuments() {\n const documentCache = useDocumentCache();\n\n return useCallback(\n (ids: string[]) => {\n if (!documentCache) {\n return Promise.reject(new Error(\"Document cache not initialized\"));\n }\n return documentCache.getBatch(ids);\n },\n [documentCache],\n );\n}\n\n/**\n * Retrieves a document from the reactor without suspending rendering.\n * Returns the current state of the document loading operation.\n * @param id - The document ID to retrieve, or null/undefined to skip retrieval\n * @returns An object containing:\n * - status: \"initial\" | \"pending\" | \"success\" | \"error\"\n * - data: The document if successfully loaded\n * - isPending: Boolean indicating if the document is currently loading\n * - error: Any error that occurred during loading\n * - reload: Function to force reload the document from cache\n */\nexport function useGetDocumentAsync(id: string | null | undefined) {\n const documentCache = useDocumentCache();\n if (!id || !documentCache) {\n return {\n status: \"initial\",\n data: undefined,\n isPending: false,\n error: undefined,\n reload: undefined,\n } as const;\n }\n\n const promise = documentCache.get(id);\n const state = getDocumentQueryState(promise);\n\n return { ...state, reload: () => documentCache.get(id, true) } as const;\n}\n","import type { Action, PHDocument } from \"@powerhousedao/shared/document-model\";\nimport { logger } from \"document-model\";\nimport { dispatchActions } from \"../actions/dispatch.js\";\n\n/**\n * Returns a dispatch function for dispatching actions to a document.\n * Used internally by other hooks to provide action dispatching capabilities.\n * @param document - The document to dispatch actions to.\n * @returns A tuple containing the document and a dispatch function.\n */\nexport type DispatchFn<TAction> = (\n actionOrActions: TAction[] | TAction | undefined,\n onErrors?: (errors: Error[]) => void,\n onSuccess?: (result: PHDocument) => void,\n) => void;\n\nexport type UseDispatchResult<TDocument, TAction> = readonly [\n TDocument | undefined,\n DispatchFn<TAction>,\n];\n\nexport function useDispatch<TDocument = PHDocument, TAction = Action>(\n document: TDocument | undefined,\n): UseDispatchResult<TDocument, TAction> {\n /**\n * Dispatches actions to the document.\n * @param actionOrActions - The action or actions to dispatch.\n * @param onErrors - Callback invoked with any errors that occurred during action execution.\n */\n function dispatch(\n actionOrActions: TAction[] | TAction | undefined,\n onErrors?: (errors: Error[]) => void,\n onSuccess?: (result: PHDocument) => void,\n ) {\n dispatchActions(actionOrActions, document, onErrors, onSuccess).catch(\n logger.error,\n );\n }\n return [document, dispatch] as const;\n}\n","import type { Action, PHDocument } from \"@powerhousedao/shared/document-model\";\nimport { useDispatch, type UseDispatchResult } from \"./dispatch.js\";\nimport { useDocument, useDocuments } from \"./document-cache.js\";\n\n/** Returns a document by id. */\nexport function useDocumentById(\n id: string | null | undefined,\n): UseDispatchResult<PHDocument, Action> {\n const document = useDocument(id);\n const [, dispatch] = useDispatch<PHDocument, Action>(document);\n return [document, dispatch] as const;\n}\n\n/** Returns documents by ids. */\nexport function useDocumentsByIds(ids: string[] | null | undefined) {\n return useDocuments(ids);\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"document-by-id-dLYFX-xz.js","names":[],"sources":["../src/actions/queue.ts","../src/actions/sign.ts","../src/actions/dispatch.ts","../src/global/core.ts","../src/analytics/store.ts","../src/document-cache.ts","../src/hooks/document-cache.ts","../src/hooks/dispatch.ts","../src/hooks/document-by-id.ts"],"sourcesContent":["import type { FileUploadProgressCallback } from \"@powerhousedao/reactor-browser\";\nimport type {\n Action,\n DocumentOperations,\n Operation,\n PHDocument,\n} from \"@powerhousedao/shared/document-model\";\nimport { logger } from \"document-model\";\n\nexport async function queueActions(\n document: PHDocument | undefined,\n actionOrActions: Action[] | Action | undefined,\n) {\n if (!document) {\n throw new Error(\"No document provided\");\n }\n if (!actionOrActions) {\n throw new Error(\"No actions provided\");\n }\n const actions = Array.isArray(actionOrActions)\n ? actionOrActions\n : [actionOrActions];\n\n if (actions.length === 0) {\n throw new Error(\"No actions provided\");\n }\n\n const reactorClient = window.ph?.reactorClient;\n if (!reactorClient) {\n throw new Error(\"ReactorClient not initialized\");\n }\n\n return await reactorClient.execute(document.header.id, \"main\", actions);\n}\n\nexport async function queueOperations(\n documentId: string,\n operationOrOperations: Operation[] | Operation | undefined,\n) {\n if (!documentId) {\n throw new Error(\"No documentId provided\");\n }\n if (!operationOrOperations) {\n throw new Error(\"No operations provided\");\n }\n const operations = Array.isArray(operationOrOperations)\n ? operationOrOperations\n : [operationOrOperations];\n\n if (operations.length === 0) {\n throw new Error(\"No operations provided\");\n }\n\n const reactorClient = window.ph?.reactorClient;\n if (!reactorClient) {\n throw new Error(\"ReactorClient not initialized\");\n }\n\n const actions = operations.map((op) => op.action);\n return await reactorClient.execute(documentId, \"main\", actions);\n}\n\nexport function deduplicateOperations(\n existingOperations: Record<string, Operation[]>,\n operationsToDeduplicate: Operation[],\n) {\n // make a set of all the operation indices for each scope to avoid duplicates\n const operationIndicesByScope = {} as Record<string, Set<number>>;\n for (const scope of Object.keys(existingOperations)) {\n operationIndicesByScope[scope] = new Set(\n existingOperations[scope].map((op) => op.index),\n );\n }\n\n const newOperations: Operation[] = [];\n\n for (const operation of operationsToDeduplicate) {\n const scope = operation.action.scope;\n const index = operation.index;\n if (operationIndicesByScope[scope].has(index)) {\n const duplicatedExistingOperation = existingOperations[scope].find(\n (op) => op.index === index,\n );\n const duplicatedNewOperation = newOperations.find(\n (op) => op.index === index,\n );\n console.warn(\"skipping duplicate operation\");\n if (duplicatedExistingOperation) {\n console.warn(\n \"duplicate existing operation\",\n duplicatedExistingOperation,\n );\n }\n if (duplicatedNewOperation) {\n console.warn(\"duplicate new operation\", duplicatedNewOperation);\n }\n continue;\n }\n newOperations.push(operation);\n operationIndicesByScope[scope].add(index);\n }\n\n const uniqueOperationIds = new Set<string>();\n const operationsDedupedById: Operation[] = [];\n\n for (const [scope, operations] of Object.entries(existingOperations)) {\n for (const operation of operations) {\n const id = operation.id;\n if (!id) {\n console.warn(\"skipping operation with no id\", operation);\n continue;\n }\n if (uniqueOperationIds.has(id)) {\n console.warn(\n \"skipping existing operation with duplicate id in scope\",\n scope,\n operation,\n );\n continue;\n }\n uniqueOperationIds.add(id);\n }\n }\n\n for (const operation of newOperations) {\n const id = operation.id;\n if (!id) {\n console.warn(\"skipping operation with no id\", operation);\n continue;\n }\n if (uniqueOperationIds.has(id)) {\n console.warn(\n \"skipping new operation with duplicate id in scope\",\n operation.action.scope,\n operation,\n );\n continue;\n }\n uniqueOperationIds.add(id);\n operationsDedupedById.push(operation);\n }\n return operationsDedupedById;\n}\n\nexport async function uploadOperations(\n documentId: string,\n allOperations: DocumentOperations,\n pushOperations: (\n documentId: string,\n operations: Operation[],\n ) => Promise<PHDocument | undefined>,\n options?: {\n operationsLimit?: number;\n onProgress?: FileUploadProgressCallback;\n },\n) {\n const operationsLimit = options?.operationsLimit || 50;\n const onProgress = options?.onProgress;\n\n logger.verbose(\n `uploadDocumentOperations(documentId:${documentId}, ops: ${Object.keys(allOperations).join(\",\")}, limit:${operationsLimit})`,\n );\n\n // Calculate total operations for progress tracking\n const allOperationsArray = Object.values(allOperations).filter(\n (ops): ops is Operation[] => ops !== undefined,\n );\n const totalOperations = allOperationsArray.reduce(\n (total, operations) => total + operations.length,\n 0,\n );\n let uploadedOperations = 0;\n\n for (const operations of allOperationsArray) {\n for (let i = 0; i < operations.length; i += operationsLimit) {\n logger.verbose(\n `uploadDocumentOperations:for(i:${i}, ops:${operations.length}, limit:${operationsLimit}): START`,\n );\n const chunk = operations.slice(i, i + operationsLimit);\n const operation = chunk.at(-1);\n if (!operation) {\n break;\n }\n const scope = operation.action.scope;\n\n await pushOperations(documentId, chunk);\n\n uploadedOperations += chunk.length;\n\n // Report progress\n if (onProgress) {\n const progress = Math.round(\n (uploadedOperations / totalOperations) * 100,\n );\n onProgress({\n stage: \"uploading\",\n progress,\n totalOperations,\n uploadedOperations,\n });\n }\n\n logger.verbose(\n `uploadDocumentOperations:for:waitForUpdate(${documentId}:${scope} rev ${operation.index}): NEXT`,\n );\n }\n }\n\n logger.verbose(\n `uploadDocumentOperations:for:waitForUpdate(${documentId}): END`,\n );\n}\n","import type { Action, PHDocument } from \"@powerhousedao/shared/document-model\";\nimport {\n buildSignedAction,\n type ActionSigner,\n} from \"@powerhousedao/shared/document-model\";\nimport { logger } from \"document-model\";\n\nexport async function signAction(action: Action, document: PHDocument) {\n const reactor = window.ph?.reactorClient;\n if (!reactor) return action;\n\n const documentModelModule = await reactor.getDocumentModelModule(\n document.header.documentType,\n );\n const reducer = documentModelModule.reducer;\n const renown = window.ph?.renown;\n if (!renown?.user) return action;\n if (!action.context?.signer) return action;\n\n const actionSigner = action.context.signer;\n const unsafeSignedAction = await buildSignedAction(\n action,\n reducer,\n document,\n actionSigner,\n renown.crypto.sign,\n );\n\n // TODO: this is super dangerous and is caused by the `buildSignedAction` function returning an `Operation` instead of an `Action`\n return unsafeSignedAction as unknown as Action;\n}\n\nexport function addActionContext(action: Action) {\n const renown = window.ph?.renown;\n if (!renown?.user) return action;\n\n const signer: ActionSigner = {\n app: {\n name: \"Connect\",\n key: renown.did,\n },\n user: {\n address: renown.user.address,\n networkId: renown.user.networkId,\n chainId: renown.user.chainId,\n },\n signatures: [],\n };\n\n return {\n context: { signer },\n ...action,\n };\n}\n\nasync function makeSignedActionWithContext(\n action: Action | undefined,\n document: PHDocument | undefined,\n) {\n if (!action) {\n logger.error(\"No action found\");\n return;\n }\n if (!document) {\n logger.error(\"No document found\");\n return;\n }\n const signedAction = await signAction(action, document);\n const signedActionWithContext = addActionContext(signedAction);\n return signedActionWithContext;\n}\n\nexport async function makeSignedActionsWithContext(\n actionOrActions: Action[] | Action | undefined,\n document: PHDocument | undefined,\n) {\n if (!actionOrActions) {\n logger.error(\"No actions found\");\n return;\n }\n const actions = Array.isArray(actionOrActions)\n ? actionOrActions\n : [actionOrActions];\n\n const signedActionsWithContext = await Promise.all(\n actions.map((action) => makeSignedActionWithContext(action, document)),\n );\n return signedActionsWithContext.filter((a) => a !== undefined);\n}\n","import type { Action, PHDocument } from \"@powerhousedao/shared/document-model\";\nimport { logger } from \"document-model\";\nimport { queueActions } from \"./queue.js\";\nimport { makeSignedActionsWithContext } from \"./sign.js\";\n\nasync function getDocument(\n documentId: string,\n): Promise<PHDocument | undefined> {\n try {\n return await window.ph?.reactorClient?.get(documentId);\n } catch (error) {\n logger.debug(`Failed to get document with id ${documentId}:`, error);\n return undefined;\n }\n}\n\nfunction getActionErrors(result: PHDocument, actions: Action[]) {\n return actions.reduce((errors, a) => {\n const scopeOperations = result.operations[a.scope];\n if (!scopeOperations) {\n return errors;\n }\n const op = scopeOperations.findLast((op) => op.action.id === a.id);\n\n if (op?.error) {\n errors.push(new Error(op.error));\n }\n return errors;\n }, new Array<Error>());\n}\n\n/**\n * Dispatches actions to a document.\n * @param actionOrActions - The action or actions to dispatch.\n * @param document - The document to dispatch actions to.\n * @param onErrors - Callback invoked with any errors that occurred during action execution.\n * @returns The updated document, or undefined if the dispatch failed.\n */\nexport async function dispatchActions<TDocument = PHDocument, TAction = Action>(\n actionOrActions: TAction[] | TAction | undefined,\n document: TDocument | undefined,\n onErrors?: (errors: Error[]) => void,\n onSuccess?: (result: PHDocument) => void,\n): Promise<PHDocument | undefined>;\n/**\n * Dispatches actions to a document.\n * @param actionOrActions - The action or actions to dispatch.\n * @param documentId - The ID of the document to dispatch actions to.\n * @param onErrors - Callback invoked with any errors that occurred during action execution.\n * @returns The updated document, or undefined if the dispatch failed.\n */\nexport async function dispatchActions(\n actionOrActions: Action[] | Action | undefined,\n documentId: string,\n onErrors?: (errors: Error[]) => void,\n onSuccess?: (result: PHDocument) => void,\n): Promise<PHDocument | undefined>;\nexport async function dispatchActions(\n actionOrActions: Action[] | Action | undefined,\n documentOrDocumentId: PHDocument | string | undefined,\n onErrors?: (errors: Error[]) => void,\n onSuccess?: (result: PHDocument) => void,\n): Promise<PHDocument | undefined> {\n const document =\n typeof documentOrDocumentId === \"string\"\n ? await getDocument(documentOrDocumentId)\n : documentOrDocumentId;\n\n if (!document) {\n logger.error(\n `Document with id ${JSON.stringify(documentOrDocumentId)} not found`,\n );\n return;\n }\n\n const signedActionsWithContext = await makeSignedActionsWithContext(\n actionOrActions,\n document,\n );\n if (!signedActionsWithContext) {\n logger.error(\"No signed actions with context found\");\n return;\n }\n const result = await queueActions(document, signedActionsWithContext);\n\n if (onErrors && result) {\n const errors = getActionErrors(result, signedActionsWithContext);\n if (errors.length) {\n onErrors(errors);\n }\n }\n\n if (onSuccess && result) {\n onSuccess(result);\n }\n\n return result;\n}\n","import type { PowerhouseGlobal } from \"./types.js\";\n\nexport function getGlobal<K extends keyof PowerhouseGlobal>(\n namespace: K,\n): PowerhouseGlobal[K] | undefined {\n if (typeof window === \"undefined\") return undefined;\n return window.powerhouse?.[namespace];\n}\n\nexport function setGlobal<K extends keyof PowerhouseGlobal>(\n namespace: K,\n value: PowerhouseGlobal[K],\n): void {\n if (typeof window === \"undefined\") return;\n window.powerhouse = window.powerhouse || {};\n window.powerhouse[namespace] = value;\n}\n\nexport function clearGlobal(namespace: keyof PowerhouseGlobal): void {\n if (typeof window === \"undefined\") return;\n\n if (window.powerhouse?.[namespace]) {\n delete window.powerhouse[namespace];\n if (Object.keys(window.powerhouse).length === 0) {\n delete window.powerhouse;\n }\n }\n}\n","import type { BrowserAnalyticsStoreOptions } from \"@powerhousedao/analytics-engine-browser\";\nimport { BrowserAnalyticsStore } from \"@powerhousedao/analytics-engine-browser\";\nimport type { IAnalyticsStore } from \"@powerhousedao/analytics-engine-core\";\nimport { AnalyticsQueryEngine } from \"@powerhousedao/analytics-engine-core\";\nimport { getGlobal } from \"../global/core.js\";\n\nexport type CreateStoreOptions = BrowserAnalyticsStoreOptions;\n\nexport async function createAnalyticsStore(options: CreateStoreOptions) {\n const store = new BrowserAnalyticsStore(options);\n await store.init();\n\n const engine = new AnalyticsQueryEngine(store);\n return {\n store,\n engine,\n options,\n };\n}\n\nexport async function getAnalyticsStore(): Promise<IAnalyticsStore | null> {\n const globalAnalytics = await getGlobal(\"analytics\");\n\n return globalAnalytics?.store ?? null;\n}\n","import {\n DocumentChangeType,\n type DocumentChangeEvent,\n type IReactorClient,\n} from \"@powerhousedao/reactor\";\nimport type { PHDocument } from \"@powerhousedao/shared/document-model\";\nimport type {\n FulfilledPromise,\n IDocumentCache,\n PromiseState,\n PromiseWithState,\n RejectedPromise,\n} from \"./types/documents.js\";\n\nexport function addPromiseState<T>(promise: Promise<T>): PromiseWithState<T> {\n if (\"status\" in promise) {\n return promise as PromiseWithState<T>;\n }\n\n const promiseWithState = promise as PromiseWithState<T>;\n promiseWithState.status = \"pending\";\n promiseWithState.then(\n (value) => {\n promiseWithState.status = \"fulfilled\";\n (promiseWithState as FulfilledPromise<T>).value = value;\n },\n (reason) => {\n promiseWithState.status = \"rejected\";\n (promiseWithState as RejectedPromise<T>).reason = reason;\n // Re-throw to preserve unhandled rejection behavior\n // This allows React's error boundaries to catch the error\n throw reason;\n },\n );\n\n return promiseWithState;\n}\n\nexport function readPromiseState<T>(\n promise: Promise<T> | PromiseWithState<T>,\n): PromiseState<T> {\n return \"status\" in promise ? promise : { status: \"pending\" };\n}\n\n/**\n * Resolves an array of document promises using `Promise.allSettled`,\n * returning only the fulfilled values. A single missing/rejected\n * document does not poison the whole batch. Rejected entries are\n * logged at warn level so developers can see dangling references.\n */\nfunction fulfilledOnly(promises: Promise<PHDocument>[]): Promise<PHDocument[]> {\n return Promise.allSettled(promises).then((results) => {\n const documents: PHDocument[] = [];\n for (const result of results) {\n if (result.status === \"fulfilled\") {\n documents.push(result.value);\n } else {\n console.warn(\n \"[DocumentCache] Skipped unavailable document:\",\n result.reason,\n );\n }\n }\n return documents;\n });\n}\n\n/**\n * Document cache implementation that uses the new ReactorClient API.\n *\n * This cache subscribes to document change events via IReactorClient.subscribe()\n * and automatically updates the cache when documents are created, updated, or deleted.\n */\nexport class DocumentCache implements IDocumentCache {\n private documents = new Map<string, PromiseWithState<PHDocument>>();\n private batchPromises = new Map<\n string,\n { promises: Promise<PHDocument>[]; promise: Promise<PHDocument[]> }\n >();\n private listeners = new Map<string, (() => void)[]>();\n private unsubscribe: (() => void) | null = null;\n\n constructor(private client: IReactorClient) {\n this.unsubscribe = client.subscribe({}, (event: DocumentChangeEvent) => {\n this.handleDocumentChange(event);\n });\n }\n\n private handleDocumentChange(event: DocumentChangeEvent): void {\n if (event.type === DocumentChangeType.Deleted) {\n const documentId = event.context?.childId;\n if (documentId) {\n this.handleDocumentDeleted(documentId);\n }\n } else if (event.type === DocumentChangeType.Updated) {\n for (const doc of event.documents) {\n this.handleDocumentUpdated(doc.header.id).catch(console.warn);\n }\n }\n }\n\n private handleDocumentDeleted(documentId: string): void {\n const listeners = this.listeners.get(documentId);\n this.documents.delete(documentId);\n this.invalidateBatchesContaining(documentId);\n if (listeners) {\n listeners.forEach((listener) => listener());\n }\n this.listeners.delete(documentId);\n }\n\n private async handleDocumentUpdated(documentId: string): Promise<void> {\n if (this.documents.has(documentId)) {\n await this.get(documentId, true);\n const listeners = this.listeners.get(documentId);\n if (listeners) {\n listeners.forEach((listener) => listener());\n }\n }\n }\n\n private invalidateBatchesContaining(documentId: string): void {\n for (const key of this.batchPromises.keys()) {\n if (key.split(\",\").includes(documentId)) {\n this.batchPromises.delete(key);\n }\n }\n }\n\n get(id: string, refetch?: boolean): Promise<PHDocument> {\n const currentData = this.documents.get(id);\n if (currentData) {\n if (currentData.status === \"pending\") {\n return currentData;\n }\n if (!refetch) {\n return currentData;\n }\n }\n\n const documentPromise = this.client.get(id);\n this.documents.set(id, addPromiseState(documentPromise));\n return documentPromise;\n }\n\n getBatch(ids: string[]): Promise<PHDocument[]> {\n const key = ids.join(\",\");\n const cached = this.batchPromises.get(key);\n\n const hasDeletedDocuments = ids.some((id) => !this.documents.has(id));\n const currentPromises = ids.map((id) => this.get(id));\n\n if (hasDeletedDocuments) {\n const batchPromise = fulfilledOnly(currentPromises);\n this.batchPromises.set(key, {\n promises: currentPromises,\n promise: batchPromise,\n });\n return batchPromise;\n }\n\n if (cached) {\n const samePromises = currentPromises.every(\n (p, i) => p === cached.promises[i],\n );\n if (samePromises) {\n return cached.promise;\n }\n }\n\n const states = currentPromises.map((p) =>\n readPromiseState(p as PromiseWithState<PHDocument>),\n );\n const allSettled = states.every((s) => s.status !== \"pending\");\n\n if (allSettled) {\n const values = states\n .filter(\n (s): s is { status: \"fulfilled\"; value: PHDocument } =>\n s.status === \"fulfilled\",\n )\n .map((s) => s.value);\n const batchPromise = Promise.resolve(values) as PromiseWithState<\n PHDocument[]\n >;\n batchPromise.status = \"fulfilled\";\n (batchPromise as FulfilledPromise<PHDocument[]>).value = values;\n\n this.batchPromises.set(key, {\n promises: currentPromises,\n promise: batchPromise,\n });\n return batchPromise;\n }\n\n if (cached) {\n return cached.promise;\n }\n\n const batchPromise = fulfilledOnly(currentPromises);\n this.batchPromises.set(key, {\n promises: currentPromises,\n promise: batchPromise,\n });\n return batchPromise;\n }\n\n subscribe(id: string | string[], callback: () => void): () => void {\n const ids = Array.isArray(id) ? id : [id];\n for (const docId of ids) {\n const listeners = this.listeners.get(docId) ?? [];\n this.listeners.set(docId, [...listeners, callback]);\n }\n return () => {\n for (const docId of ids) {\n const listeners = this.listeners.get(docId) ?? [];\n this.listeners.set(\n docId,\n listeners.filter((listener) => listener !== callback),\n );\n }\n };\n }\n\n /**\n * Disposes of the cache and unsubscribes from document change events.\n */\n dispose(): void {\n if (this.unsubscribe) {\n this.unsubscribe();\n this.unsubscribe = null;\n }\n }\n}\n","import type { PHDocument } from \"@powerhousedao/shared/document-model\";\nimport { use, useCallback, useSyncExternalStore } from \"react\";\nimport { readPromiseState } from \"../document-cache.js\";\nimport type { IDocumentCache } from \"../types/documents.js\";\nimport type { SetPHGlobalValue, UsePHGlobalValue } from \"../types/global.js\";\nimport { makePHEventFunctions } from \"./make-ph-event-functions.js\";\n\nconst documentEventFunctions = makePHEventFunctions(\"documentCache\");\n\n/** Returns all documents in the reactor. */\nexport const useDocumentCache: UsePHGlobalValue<IDocumentCache> =\n documentEventFunctions.useValue;\n\n/** Sets all of the documents in the reactor. */\nexport const setDocumentCache: SetPHGlobalValue<IDocumentCache> =\n documentEventFunctions.setValue;\n\n/** Adds an event handler for all of the documents in the reactor. */\nexport const addDocumentCacheEventHandler =\n documentEventFunctions.addEventHandler;\n\n/**\n * Reads the state of a document promise and converts it to a query state object.\n * @param promise - The document promise to read\n * @returns An object containing the status, data, error, and isPending flag\n */\nfunction getDocumentQueryState(promise: Promise<PHDocument>) {\n const state = readPromiseState(promise);\n switch (state.status) {\n case \"pending\":\n return {\n status: \"pending\",\n isPending: true,\n error: undefined,\n data: undefined,\n } as const;\n case \"fulfilled\":\n return {\n status: \"success\",\n isPending: false,\n error: undefined,\n data: state.value,\n } as const;\n case \"rejected\":\n return {\n status: \"error\",\n isPending: false,\n error: state.reason,\n data: undefined,\n } as const;\n }\n}\n\n/**\n * Retrieves a document from the reactor and subscribes to changes using React Suspense.\n * This hook will suspend rendering while the document is loading.\n * @param id - The document ID to retrieve, or null/undefined to skip retrieval\n * @returns The document if found, or undefined if id is null/undefined\n */\nexport function useDocument(id: string | null | undefined) {\n const documentCache = useDocumentCache();\n const document = useSyncExternalStore(\n (cb) => (id && documentCache ? documentCache.subscribe(id, cb) : () => {}),\n () => (id ? documentCache?.get(id) : undefined),\n );\n return document ? use(document) : undefined;\n}\n\n/**\n * Retrieves a document from the reactor and subscribes to changes without\n * suspending or throwing. Use this when the ID might be stale (e.g., a\n * previously selected node that has since been deleted) and the consumer\n * wants to render a placeholder instead of crashing.\n *\n * Unlike {@link useGetDocumentAsync}, this hook subscribes to cache\n * updates, so the returned state stays in sync with reactor changes.\n *\n * @param id - The document ID to retrieve, or null/undefined to skip retrieval\n * @returns An object containing:\n * - status: \"initial\" | \"pending\" | \"success\" | \"error\"\n * - data: The document if successfully loaded\n * - isPending: Whether the document is currently loading\n * - error: Any error that occurred during loading (e.g., document not found)\n * - reload: Function to force a refetch, or undefined when no id is supplied\n */\nexport function useDocumentSafe(id: string | null | undefined) {\n const documentCache = useDocumentCache();\n const promise = useSyncExternalStore(\n (cb) => (id && documentCache ? documentCache.subscribe(id, cb) : () => {}),\n () => (id ? documentCache?.get(id) : undefined),\n );\n\n if (!promise || !documentCache || !id) {\n return {\n status: \"initial\",\n isPending: false,\n error: undefined,\n data: undefined,\n reload: undefined,\n } as const;\n }\n\n const state = getDocumentQueryState(promise);\n return { ...state, reload: () => documentCache.get(id, true) } as const;\n}\n\n/**\n * Retrieves multiple documents from the reactor using React Suspense.\n * This hook will suspend rendering while any of the documents are loading.\n *\n * Uses getBatch from the document cache which handles promise caching internally,\n * ensuring stable references for useSyncExternalStore.\n *\n * @param ids - Array of document IDs to retrieve, or null/undefined to skip retrieval\n * @returns An array of documents if found, or empty array if ids is null/undefined\n */\nexport function useDocuments(ids: string[] | null | undefined) {\n const documentCache = useDocumentCache();\n\n const documents = useSyncExternalStore(\n (cb) =>\n ids?.length && documentCache\n ? documentCache.subscribe(ids, cb)\n : () => {},\n () =>\n ids?.length && documentCache ? documentCache.getBatch(ids) : undefined,\n );\n\n return documents ? use(documents) : [];\n}\n\n/**\n * Returns a function to retrieve a document from the cache.\n * The returned function fetches and returns a document by ID.\n * @returns A function that takes a document ID and returns a Promise of the document\n */\nexport function useGetDocument() {\n const documentCache = useDocumentCache();\n\n return useCallback(\n (id: string) => {\n if (!documentCache) {\n return Promise.reject(new Error(\"Document cache not initialized\"));\n }\n return documentCache.get(id);\n },\n [documentCache],\n );\n}\n\n/**\n * Returns a function to retrieve multiple documents from the cache.\n * The returned function fetches and returns documents by their IDs.\n * @returns A function that takes an array of document IDs and returns a Promise of the documents\n */\nexport function useGetDocuments() {\n const documentCache = useDocumentCache();\n\n return useCallback(\n (ids: string[]) => {\n if (!documentCache) {\n return Promise.reject(new Error(\"Document cache not initialized\"));\n }\n return documentCache.getBatch(ids);\n },\n [documentCache],\n );\n}\n\n/**\n * Retrieves a document from the reactor without suspending rendering.\n * Returns the current state of the document loading operation.\n * @param id - The document ID to retrieve, or null/undefined to skip retrieval\n * @returns An object containing:\n * - status: \"initial\" | \"pending\" | \"success\" | \"error\"\n * - data: The document if successfully loaded\n * - isPending: Boolean indicating if the document is currently loading\n * - error: Any error that occurred during loading\n * - reload: Function to force reload the document from cache\n */\nexport function useGetDocumentAsync(id: string | null | undefined) {\n const documentCache = useDocumentCache();\n if (!id || !documentCache) {\n return {\n status: \"initial\",\n data: undefined,\n isPending: false,\n error: undefined,\n reload: undefined,\n } as const;\n }\n\n const promise = documentCache.get(id);\n const state = getDocumentQueryState(promise);\n\n return { ...state, reload: () => documentCache.get(id, true) } as const;\n}\n","import type { Action, PHDocument } from \"@powerhousedao/shared/document-model\";\nimport { logger } from \"document-model\";\nimport { dispatchActions } from \"../actions/dispatch.js\";\n\n/**\n * Returns a dispatch function for dispatching actions to a document.\n * Used internally by other hooks to provide action dispatching capabilities.\n * @param document - The document to dispatch actions to.\n * @returns A tuple containing the document and a dispatch function.\n */\nexport type DispatchFn<TAction> = (\n actionOrActions: TAction[] | TAction | undefined,\n onErrors?: (errors: Error[]) => void,\n onSuccess?: (result: PHDocument) => void,\n) => void;\n\nexport type UseDispatchResult<TDocument, TAction> = readonly [\n TDocument | undefined,\n DispatchFn<TAction>,\n];\n\nexport function useDispatch<TDocument = PHDocument, TAction = Action>(\n document: TDocument | undefined,\n): UseDispatchResult<TDocument, TAction> {\n /**\n * Dispatches actions to the document.\n * @param actionOrActions - The action or actions to dispatch.\n * @param onErrors - Callback invoked with any errors that occurred during action execution.\n */\n function dispatch(\n actionOrActions: TAction[] | TAction | undefined,\n onErrors?: (errors: Error[]) => void,\n onSuccess?: (result: PHDocument) => void,\n ) {\n dispatchActions(actionOrActions, document, onErrors, onSuccess).catch(\n logger.error,\n );\n }\n return [document, dispatch] as const;\n}\n","import type { Action, PHDocument } from \"@powerhousedao/shared/document-model\";\nimport { useDispatch, type UseDispatchResult } from \"./dispatch.js\";\nimport { useDocument, useDocuments } from \"./document-cache.js\";\n\n/** Returns a document by id. */\nexport function useDocumentById(\n id: string | null | undefined,\n): UseDispatchResult<PHDocument, Action> {\n const document = useDocument(id);\n const [, dispatch] = useDispatch<PHDocument, Action>(document);\n return [document, dispatch] as const;\n}\n\n/** Returns documents by ids. */\nexport function useDocumentsByIds(ids: string[] | null | undefined) {\n return useDocuments(ids);\n}\n"],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -527,6 +527,8 @@ type PHModal = {
527
527
  } | {
528
528
  type: "missingPackage";
529
529
  documentType: string;
530
+ } | {
531
+ type: "driveAuthRequired";
530
532
  };
531
533
  //#endregion
532
534
  //#region src/types/package-discovery.d.ts
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../src/actions/dispatch.ts","../src/actions/document.ts","../src/actions/drive.ts","../src/constants.ts","../src/types/documents.ts","../src/document-cache.ts","../src/document-model.ts","../src/global/types.ts","../src/global/core.ts","../src/graphql/adapters.ts","../src/graphql/fetchers.ts","../src/graphql/graphql-client-document-cache.ts","../src/graphql/mutators.ts","../src/hooks/add-ph-event-handlers.ts","../src/hooks/allowed-document-model-modules.ts","../src/hooks/child-nodes.ts","../src/hooks/config/connect.ts","../src/hooks/config/editor.ts","../src/hooks/config/set-config-by-key.ts","../src/hooks/config/set-config-by-object.ts","../src/hooks/config/use-value-by-key.ts","../src/hooks/config/utils.ts","../src/types/config.ts","../src/types/modals.ts","../src/types/package-discovery.ts","../src/types/timeline.ts","../src/types/toast.ts","../src/types/vetra.ts","../src/hooks/node-drag-and-drop.ts","../src/types/global.ts","../src/hooks/document-cache.ts","../src/hooks/drives.ts","../src/hooks/loading.ts","../src/hooks/reactor.ts","../src/hooks/connection-state.ts","../src/hooks/renown.ts","../src/hooks/dispatch.ts","../src/hooks/document-by-id.ts","../src/hooks/document-model-modules.ts","../src/hooks/document-of-type.ts","../src/hooks/document-operations.ts","../src/hooks/document-types.ts","../src/hooks/download-document.ts","../src/hooks/drive-by-id.ts","../src/hooks/editor-modules.ts","../src/hooks/features.ts","../src/hooks/file-drag-and-drop.ts","../src/hooks/folder-by-id.ts","../src/hooks/graphql-reactor-client.ts","../src/hooks/init-graphql-reactor-client.ts","../src/hooks/items-in-selected-drive.ts","../src/hooks/items-in-selected-folder.ts","../src/hooks/make-ph-event-functions.ts","../src/hooks/modals.ts","../src/hooks/node-actions.ts","../src/hooks/node-by-id.ts","../src/hooks/node-path.ts","../src/hooks/package-discovery.ts","../src/hooks/parent-folder.ts","../src/hooks/revision-history.ts","../src/hooks/selected-document.ts","../src/hooks/selected-drive.ts","../src/hooks/selected-folder.ts","../src/hooks/set-selected-node.ts","../src/hooks/selected-node.ts","../src/hooks/selected-timeline-item.ts","../src/hooks/subgraph-modules.ts","../src/hooks/supported-document-types.ts","../src/hooks/theme.ts","../src/hooks/timeline-revision.ts","../src/hooks/toast.ts","../src/hooks/use-drive-system-info.ts","../src/hooks/use-editor-file-drop.ts","../src/hooks/use-get-switchboard-link.ts","../src/types/upload.ts","../src/hooks/use-on-drop-file.ts","../src/hooks/user-permissions.ts","../src/hooks/vetra-packages.ts","../src/hooks/attachment-service.ts","../src/hooks/use-attachments.ts","../src/pglite/drop.ts","../src/reactor.ts","../src/registry/types.ts","../src/registry/client.ts","../src/registry/fetchers.ts","../src/remote-controller/types.ts","../src/remote-controller/action-tracker.ts","../src/remote-controller/remote-client.ts","../src/remote-controller/remote-controller.ts","../src/remote-controller/utils.ts","../src/storage/base-storage.ts","../src/storage/local-storage.ts","../src/storage/types.ts","../src/types/reactor.ts","../src/types/processor-host-module.ts","../src/utils/documents.ts","../src/utils/drives.ts","../src/utils/download-document.ts","../src/utils/get-revision-from-date.ts","../src/utils/nodes.ts","../src/utils/switchboard.ts","../src/utils/url.ts","../src/utils/user.ts","../src/utils/validate-document.ts"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../src/actions/dispatch.ts","../src/actions/document.ts","../src/actions/drive.ts","../src/constants.ts","../src/types/documents.ts","../src/document-cache.ts","../src/document-model.ts","../src/global/types.ts","../src/global/core.ts","../src/graphql/adapters.ts","../src/graphql/fetchers.ts","../src/graphql/graphql-client-document-cache.ts","../src/graphql/mutators.ts","../src/hooks/add-ph-event-handlers.ts","../src/hooks/allowed-document-model-modules.ts","../src/hooks/child-nodes.ts","../src/hooks/config/connect.ts","../src/hooks/config/editor.ts","../src/hooks/config/set-config-by-key.ts","../src/hooks/config/set-config-by-object.ts","../src/hooks/config/use-value-by-key.ts","../src/hooks/config/utils.ts","../src/types/config.ts","../src/types/modals.ts","../src/types/package-discovery.ts","../src/types/timeline.ts","../src/types/toast.ts","../src/types/vetra.ts","../src/hooks/node-drag-and-drop.ts","../src/types/global.ts","../src/hooks/document-cache.ts","../src/hooks/drives.ts","../src/hooks/loading.ts","../src/hooks/reactor.ts","../src/hooks/connection-state.ts","../src/hooks/renown.ts","../src/hooks/dispatch.ts","../src/hooks/document-by-id.ts","../src/hooks/document-model-modules.ts","../src/hooks/document-of-type.ts","../src/hooks/document-operations.ts","../src/hooks/document-types.ts","../src/hooks/download-document.ts","../src/hooks/drive-by-id.ts","../src/hooks/editor-modules.ts","../src/hooks/features.ts","../src/hooks/file-drag-and-drop.ts","../src/hooks/folder-by-id.ts","../src/hooks/graphql-reactor-client.ts","../src/hooks/init-graphql-reactor-client.ts","../src/hooks/items-in-selected-drive.ts","../src/hooks/items-in-selected-folder.ts","../src/hooks/make-ph-event-functions.ts","../src/hooks/modals.ts","../src/hooks/node-actions.ts","../src/hooks/node-by-id.ts","../src/hooks/node-path.ts","../src/hooks/package-discovery.ts","../src/hooks/parent-folder.ts","../src/hooks/revision-history.ts","../src/hooks/selected-document.ts","../src/hooks/selected-drive.ts","../src/hooks/selected-folder.ts","../src/hooks/set-selected-node.ts","../src/hooks/selected-node.ts","../src/hooks/selected-timeline-item.ts","../src/hooks/subgraph-modules.ts","../src/hooks/supported-document-types.ts","../src/hooks/theme.ts","../src/hooks/timeline-revision.ts","../src/hooks/toast.ts","../src/hooks/use-drive-system-info.ts","../src/hooks/use-editor-file-drop.ts","../src/hooks/use-get-switchboard-link.ts","../src/types/upload.ts","../src/hooks/use-on-drop-file.ts","../src/hooks/user-permissions.ts","../src/hooks/vetra-packages.ts","../src/hooks/attachment-service.ts","../src/hooks/use-attachments.ts","../src/pglite/drop.ts","../src/reactor.ts","../src/registry/types.ts","../src/registry/client.ts","../src/registry/fetchers.ts","../src/remote-controller/types.ts","../src/remote-controller/action-tracker.ts","../src/remote-controller/remote-client.ts","../src/remote-controller/remote-controller.ts","../src/remote-controller/utils.ts","../src/storage/base-storage.ts","../src/storage/local-storage.ts","../src/storage/types.ts","../src/types/reactor.ts","../src/types/processor-host-module.ts","../src/utils/documents.ts","../src/utils/drives.ts","../src/utils/download-document.ts","../src/utils/get-revision-from-date.ts","../src/utils/nodes.ts","../src/utils/switchboard.ts","../src/utils/url.ts","../src/utils/user.ts","../src/utils/validate-document.ts"],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,16 +1,16 @@
1
- import { C as queueOperations, S as queueActions, _ as getAnalyticsStore, a as setDocumentCache, b as setGlobal, c as useDocumentSafe, d as useGetDocumentAsync, f as useGetDocuments, g as createAnalyticsStore, h as readPromiseState, i as addDocumentCacheEventHandler, l as useDocuments, m as addPromiseState, n as useDocumentsByIds, o as useDocument, p as DocumentCache, r as useDispatch, s as useDocumentCache, t as useDocumentById, u as useGetDocument, v as clearGlobal, w as uploadOperations, x as dispatchActions, y as getGlobal } from "./document-by-id-BrIy0iHX.js";
2
- import { n as GetDocumentWithOperationsDocument, r as PropagationMode, t as createClient } from "./client-CvgFU1Dv.js";
3
- import { t as makePHEventFunctions } from "./make-ph-event-functions-DwiD1zH9.js";
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-Dzmo1gJD.js";
1
+ import { C as queueOperations, S as queueActions, _ as getAnalyticsStore, a as setDocumentCache, b as setGlobal, c as useDocumentSafe, d as useGetDocumentAsync, f as useGetDocuments, g as createAnalyticsStore, h as readPromiseState, i as addDocumentCacheEventHandler, l as useDocuments, m as addPromiseState, n as useDocumentsByIds, o as useDocument, p as DocumentCache, r as useDispatch, s as useDocumentCache, t as useDocumentById, u as useGetDocument, v as clearGlobal, w as uploadOperations, x as dispatchActions, y as getGlobal } from "./document-by-id-dLYFX-xz.js";
2
+ import { t as makePHEventFunctions } from "./make-ph-event-functions-BHoLPif5.js";
3
+ import { n as GetDocumentWithOperationsDocument, r as PropagationMode, t as createClient } from "./client-_Gh2Uf0E.js";
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-AB7PunGY.js";
5
5
  import { n as useRelationalQuery, r as useRelationalDb, t as createProcessorQuery } from "./relational-4_LVwp8p.js";
6
6
  import { documentModelDocumentModelModule, logger } from "document-model";
7
7
  import { baseLoadFromInput, baseLoadFromInputVersioned, baseSaveToFileHandle, createPresignedHeader, createZip, documentModelDocumentType, generateId, replayDocumentVersioned, setName, validateInitialState, validateModules, validateStateSchemaName } from "@powerhousedao/shared/document-model";
8
8
  import { DriveDocumentSchema, addFolder as addFolder$1, copyNode, driveCreateDocument, driveDocumentModelModule, generateNodesCopy, handleTargetNameCollisions, isFileNode, isFolderNode, moveNode, setAvailableOffline, setDriveIcon, setDriveName, setSharingType, updateNode } from "@powerhousedao/shared/document-drive";
9
9
  import { allPass, conditional, constant, filter, find, forEach, forEachObj, funnel, hasAtLeast, isArray, isDefined, isIncludedIn, isNot, isStrictEqual, isString, isTruthy, last, map, mapToObj, once, pipe, prop, split, unique } from "remeda";
10
10
  import { ChannelScheme, DocumentChangeType, DocumentChangeType as DocumentChangeType$1, DocumentIntegrityService, DriveCollectionId, DriveCollectionId as DriveCollectionId$1, DuplicateManifestError, DuplicateModuleError, GqlRequestChannel, InMemoryQueue, IntervalPollTimer, ModuleNotFoundError, PollBehavior, PropagationMode as PropagationMode$1, REACTOR_SCHEMA, REACTOR_SCHEMA as REACTOR_SCHEMA$1, ReactorBuilder, ReactorClientBuilder, RelationalDbProcessor, SyncOperationStatus, SyncStatus, driveIdFromUrl, parseDriveUrl } from "@powerhousedao/reactor";
11
+ import { useCallback, useEffect, useMemo, useRef, useState, useSyncExternalStore } from "react";
11
12
  import { reactorDriveDocumentModelModule } from "@powerhousedao/reactor-drive";
12
13
  import { z } from "zod";
13
- import { useCallback, useEffect, useMemo, useRef, useState, useSyncExternalStore } from "react";
14
14
  import slug from "slug";
15
15
  import normalizeException from "normalize-exception";
16
16
  import * as lzString from "lz-string";
@@ -543,8 +543,48 @@ async function copyNode$1(driveId, src, target) {
543
543
  return await queueActions(drive, copyNodesInput.map((copyNodeInput) => copyNode(copyNodeInput)));
544
544
  }
545
545
  //#endregion
546
+ //#region src/hooks/modals.ts
547
+ const modalEventFunctions = makePHEventFunctions("modal");
548
+ /** Returns the current modal */
549
+ const usePHModal = modalEventFunctions.useValue;
550
+ /** Sets the current modal */
551
+ const setPHModal = modalEventFunctions.setValue;
552
+ /** Adds an event handler for the modal */
553
+ const addModalEventHandler = modalEventFunctions.addEventHandler;
554
+ /** Shows a modal */
555
+ function showPHModal(modal) {
556
+ setPHModal(modal);
557
+ }
558
+ /** Closes the current modal */
559
+ function closePHModal() {
560
+ setPHModal(void 0);
561
+ }
562
+ /** Shows the create document modal */
563
+ function showCreateDocumentModal(documentType) {
564
+ setPHModal({
565
+ type: "createDocument",
566
+ documentType
567
+ });
568
+ }
569
+ /** Shows the delete node modal */
570
+ function showDeleteNodeModal(nodeOrId) {
571
+ setPHModal({
572
+ type: "deleteItem",
573
+ id: typeof nodeOrId === "string" ? nodeOrId : nodeOrId.id
574
+ });
575
+ }
576
+ //#endregion
546
577
  //#region src/actions/drive.ts
547
578
  const DEFAULT_INITIAL_SYNC_TIMEOUT_MS = 3e4;
579
+ /**
580
+ * A drive add failed because the switchboard rejected the (anonymous or
581
+ * unverified) caller — Forbidden/Unauthorized — rather than a transient
582
+ * reachability error. Drives the login prompt.
583
+ */
584
+ function isDriveAuthError(error) {
585
+ const message = error instanceof Error ? error.message : String(error);
586
+ return /forbidden|unauthorized|insufficient permissions|\b401\b|\b403\b/i.test(message);
587
+ }
548
588
  const inFlightRemoteRegistrations = /* @__PURE__ */ new Map();
549
589
  /**
550
590
  * Resolves once a document with the given id is queryable through the
@@ -612,15 +652,20 @@ async function addRemoteDrive(url, driveId, options) {
612
652
  const resolvedDriveId = driveId ?? driveInfo.id;
613
653
  const collectionId = DriveCollectionId$1.forDrive(resolvedDriveId);
614
654
  const inFlight = inFlightRemoteRegistrations.get(collectionId.key);
615
- if (inFlight) await inFlight;
616
- else if (!sync.list().find((remote) => remote.collectionId.equals(collectionId))) {
617
- const remoteName = crypto.randomUUID();
618
- const registration = sync.add(remoteName, collectionId, {
619
- type: "gql",
620
- parameters: { url: driveInfo.graphqlEndpoint }
621
- }, void 0, options?.pollBehavior ? { pollBehavior: options.pollBehavior } : void 0).finally(() => inFlightRemoteRegistrations.delete(collectionId.key));
622
- inFlightRemoteRegistrations.set(collectionId.key, registration);
623
- await registration;
655
+ try {
656
+ if (inFlight) await inFlight;
657
+ else if (!sync.list().find((remote) => remote.collectionId.equals(collectionId))) {
658
+ const remoteName = crypto.randomUUID();
659
+ const registration = sync.add(remoteName, collectionId, {
660
+ type: "gql",
661
+ parameters: { url: driveInfo.graphqlEndpoint }
662
+ }, void 0, options?.pollBehavior ? { pollBehavior: options.pollBehavior } : void 0).finally(() => inFlightRemoteRegistrations.delete(collectionId.key));
663
+ inFlightRemoteRegistrations.set(collectionId.key, registration);
664
+ await registration;
665
+ }
666
+ } catch (error) {
667
+ if (isDriveAuthError(error)) showPHModal({ type: "driveAuthRequired" });
668
+ throw error;
624
669
  }
625
670
  if (options?.awaitInitialSync) await waitForDocumentReady(reactorClient, resolvedDriveId, {
626
671
  timeoutMs: options.initialSyncTimeoutMs,
@@ -1558,37 +1603,6 @@ const useGraphQLReactorClient = graphQLReactorClientEventFunctions.useValue;
1558
1603
  const setGraphQLReactorClient = graphQLReactorClientEventFunctions.setValue;
1559
1604
  const addGraphQLReactorClientEventHandler = graphQLReactorClientEventFunctions.addEventHandler;
1560
1605
  //#endregion
1561
- //#region src/hooks/modals.ts
1562
- const modalEventFunctions = makePHEventFunctions("modal");
1563
- /** Returns the current modal */
1564
- const usePHModal = modalEventFunctions.useValue;
1565
- /** Sets the current modal */
1566
- const setPHModal = modalEventFunctions.setValue;
1567
- /** Adds an event handler for the modal */
1568
- const addModalEventHandler = modalEventFunctions.addEventHandler;
1569
- /** Shows a modal */
1570
- function showPHModal(modal) {
1571
- setPHModal(modal);
1572
- }
1573
- /** Closes the current modal */
1574
- function closePHModal() {
1575
- setPHModal(void 0);
1576
- }
1577
- /** Shows the create document modal */
1578
- function showCreateDocumentModal(documentType) {
1579
- setPHModal({
1580
- type: "createDocument",
1581
- documentType
1582
- });
1583
- }
1584
- /** Shows the delete node modal */
1585
- function showDeleteNodeModal(nodeOrId) {
1586
- setPHModal({
1587
- type: "deleteItem",
1588
- id: typeof nodeOrId === "string" ? nodeOrId : nodeOrId.id
1589
- });
1590
- }
1591
- //#endregion
1592
1606
  //#region src/hooks/package-discovery.ts
1593
1607
  const packageDiscoveryFunctions = makePHEventFunctions("packageDiscoveryService");
1594
1608
  const usePackageDiscoveryService = packageDiscoveryFunctions.useValue;