@powerhousedao/reactor-browser 6.2.2-dev.41 → 6.2.2-dev.43

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/dist/{attachment-service-iRAJvtrC.d.ts → attachment-service-CUGe-Rda.d.ts} +3 -3
  2. package/dist/{attachment-service-iRAJvtrC.d.ts.map → attachment-service-CUGe-Rda.d.ts.map} +1 -1
  3. package/dist/{document-by-id-BPj6Gd7n.js → document-by-id-DWEQI7wn.js} +2 -2
  4. package/dist/document-by-id-DWEQI7wn.js.map +1 -0
  5. package/dist/{document-operations-DvhxGXqI.js → document-operations-D81QJKqH.js} +147 -46
  6. package/dist/document-operations-D81QJKqH.js.map +1 -0
  7. package/dist/{global-DscB9Uo3.d.ts → global-CjrUQWHf.d.ts} +11 -2
  8. package/dist/global-CjrUQWHf.d.ts.map +1 -0
  9. package/dist/{index-CxZDuIq9.d.ts → index-BM9TVt6u.d.ts} +2 -2
  10. package/dist/{index-CxZDuIq9.d.ts.map → index-BM9TVt6u.d.ts.map} +1 -1
  11. package/dist/index.d.ts +75 -7
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.js +157 -5
  14. package/dist/index.js.map +1 -1
  15. package/dist/{relational-DJlbclWB.js → relational-C_0GdGVN.js} +2 -2
  16. package/dist/{relational-DJlbclWB.js.map → relational-C_0GdGVN.js.map} +1 -1
  17. package/dist/src/analytics/index.js +1 -1
  18. package/dist/src/graphql-client/entry.d.ts +2 -2
  19. package/dist/src/graphql-client/entry.js +2 -2
  20. package/dist/src/relational/index.js +1 -1
  21. package/dist/src/renown/index.d.ts +1 -1
  22. package/dist/src/rpc/index.d.ts +3 -1
  23. package/dist/src/rpc/index.d.ts.map +1 -1
  24. package/dist/src/rpc/index.js +19 -5
  25. package/dist/src/rpc/index.js.map +1 -1
  26. package/package.json +9 -9
  27. package/dist/document-by-id-BPj6Gd7n.js.map +0 -1
  28. package/dist/document-operations-DvhxGXqI.js.map +0 -1
  29. package/dist/global-DscB9Uo3.d.ts.map +0 -1
@@ -1,5 +1,5 @@
1
- import { createRelationalDb } from "@powerhousedao/reactor";
2
1
  import { useCallback, useEffect, useMemo, useRef, useState } from "react";
2
+ import { createRelationalDb } from "@powerhousedao/reactor";
3
3
  import { Kysely } from "kysely";
4
4
  import { PGliteDialect } from "kysely-pglite-dialect";
5
5
  import deepEqual from "lodash.isequal";
@@ -132,4 +132,4 @@ function createProcessorQuery(ProcessorClass) {
132
132
  //#endregion
133
133
  export { setPGliteDB as i, useRelationalQuery as n, useRelationalDb as r, createProcessorQuery as t };
134
134
 
135
- //# sourceMappingURL=relational-DJlbclWB.js.map
135
+ //# sourceMappingURL=relational-C_0GdGVN.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"relational-DJlbclWB.js","names":[],"sources":["../src/pglite/usePGlite.ts","../src/relational/hooks/useRelationalDb.ts","../src/relational/hooks/useRelationalQuery.ts","../src/relational/utils/createProcessorQuery.ts"],"sourcesContent":["import type { PGliteWithLive } from \"@electric-sql/pglite/live\";\nimport { useEffect, useState } from \"react\";\n\nexport const PGLITE_UPDATE_EVENT = \"ph:pglite-update\";\n\nexport interface PGliteState {\n db: PGliteWithLive | null;\n isLoading: boolean;\n error: Error | null;\n}\n\nconst defaultPGliteState: PGliteState = {\n db: null,\n isLoading: true,\n error: null,\n};\n\nexport const usePGliteDB = () => {\n const [state, setState] = useState<PGliteState>(\n () => window.powerhouse?.pglite ?? defaultPGliteState,\n );\n\n useEffect(() => {\n const handlePgliteUpdate = () =>\n setState(window.powerhouse?.pglite ?? defaultPGliteState);\n\n window.addEventListener(PGLITE_UPDATE_EVENT, handlePgliteUpdate);\n\n return () =>\n window.removeEventListener(PGLITE_UPDATE_EVENT, handlePgliteUpdate);\n }, []);\n\n return state;\n};\n\nexport function setPGliteDB(pglite: Partial<PGliteState>): void {\n const currentPowerhouse = window.powerhouse ?? {};\n const currentPGliteState = window.powerhouse?.pglite ?? defaultPGliteState;\n\n window.powerhouse = {\n ...currentPowerhouse,\n pglite: {\n ...currentPGliteState,\n ...pglite,\n },\n };\n window.dispatchEvent(new CustomEvent(PGLITE_UPDATE_EVENT));\n}\n\nexport const useSetPGliteDB = () => setPGliteDB;\n\nexport const usePGlite = () => {\n const pglite = usePGliteDB();\n const setPGlite = useSetPGliteDB();\n\n return [pglite, setPGlite];\n};\n","import type { PGlite } from \"@electric-sql/pglite\";\nimport type { LiveNamespace, PGliteWithLive } from \"@electric-sql/pglite/live\";\nimport { createRelationalDb } from \"@powerhousedao/reactor\";\nimport type { IRelationalDb as IRelationalDbCore } from \"@powerhousedao/shared/processors\";\nimport { Kysely } from \"kysely\";\nimport { PGliteDialect } from \"kysely-pglite-dialect\";\nimport { useMemo } from \"react\";\nimport { usePGliteDB } from \"../../pglite/usePGlite.js\";\n\n// Type for Relational DB instance enhanced with live capabilities\nexport type RelationalDbWithLive<Schema> = IRelationalDbCore<Schema> & {\n live: LiveNamespace;\n};\n\ninterface IRelationalDbState<Schema> {\n db: RelationalDbWithLive<Schema> | null;\n isLoading: boolean;\n error: Error | null;\n}\n\n// Custom initializer that creates enhanced Kysely instance with live capabilities\nfunction createRelationalDbWithLive<Schema>(\n pgliteInstance: PGliteWithLive,\n): RelationalDbWithLive<Schema> {\n const baseDb = new Kysely<Schema>({\n dialect: new PGliteDialect(pgliteInstance as unknown as PGlite),\n });\n const relationalDb = createRelationalDb(baseDb);\n\n // Inject the live namespace with proper typing\n const relationalDBWithLive =\n relationalDb as unknown as RelationalDbWithLive<Schema>;\n relationalDBWithLive.live = pgliteInstance.live;\n\n return relationalDBWithLive;\n}\n\nexport const useRelationalDb = <Schema>(): IRelationalDbState<Schema> => {\n const pglite = usePGliteDB();\n\n const relationalDb = useMemo<IRelationalDbState<Schema>>(() => {\n if (!pglite.db || pglite.isLoading || pglite.error) {\n return {\n db: null,\n isLoading: pglite.isLoading,\n error: pglite.error,\n };\n }\n\n const db = createRelationalDbWithLive<Schema>(pglite.db);\n\n return {\n db,\n isLoading: false,\n error: null,\n };\n }, [pglite]);\n\n return relationalDb;\n};\n","import type { LiveQueryResults } from \"@electric-sql/pglite/live\";\nimport type {\n IRelationalQueryBuilder,\n RelationalDbProcessorClass,\n} from \"@powerhousedao/shared/processors\";\nimport { useEffect, useRef, useState } from \"react\";\nimport { useRelationalDb } from \"./useRelationalDb.js\";\n\nexport type QueryCallbackReturnType = {\n sql: string;\n parameters?: readonly unknown[];\n};\n\nexport type useRelationalQueryOptions = {\n // Whether to hash the namespace to avoid namespace size limit. True by default\n hashNamespace?: boolean;\n};\n\nconst MAX_RETRIES = 5;\nconst RETRY_DELAY = 200;\n\nconst isRelationNotExistError = (error: unknown): boolean => {\n const errorMessage =\n error instanceof Error\n ? error.message\n : typeof error === \"string\"\n ? error\n : String(error);\n\n return (\n errorMessage.toLowerCase().includes(\"relation\") &&\n errorMessage.toLowerCase().includes(\"does not exist\")\n );\n};\n\ntype LiveQueryType = {\n unsubscribe: () => void;\n};\n\nexport function useRelationalQuery<Schema, T = unknown, TParams = undefined>(\n ProcessorClass: RelationalDbProcessorClass<Schema>,\n driveId: string,\n queryCallback: (\n db: IRelationalQueryBuilder<Schema>,\n parameters?: TParams,\n ) => QueryCallbackReturnType,\n parameters?: TParams,\n _options?: useRelationalQueryOptions,\n) {\n const [result, setResult] = useState<LiveQueryResults<T> | null>(null);\n const [queryLoading, setQueryLoading] = useState(true);\n const [error, setError] = useState<Error | undefined>(undefined);\n const retryCount = useRef(0);\n const retryTimeoutRef = useRef<NodeJS.Timeout>(null);\n\n const relationalDb = useRelationalDb<Schema>();\n\n const executeLiveQuery = async (\n sql: string,\n queryParameters: readonly unknown[] | undefined,\n retryAttempt = 0,\n ): Promise<LiveQueryType | null> => {\n if (!relationalDb.db) {\n return null;\n }\n\n try {\n const live = await relationalDb.db.live.query<T>(\n sql,\n queryParameters ? [...queryParameters] : [],\n (result) => {\n setResult(result);\n setQueryLoading(false);\n retryCount.current = 0; // Reset retry count on success\n },\n );\n\n return live as LiveQueryType;\n } catch (err: unknown) {\n if (isRelationNotExistError(err) && retryAttempt < MAX_RETRIES) {\n return new Promise((resolve) => {\n retryTimeoutRef.current = setTimeout(() => {\n resolve(executeLiveQuery(sql, queryParameters, retryAttempt + 1));\n }, RETRY_DELAY);\n });\n }\n\n setQueryLoading(false);\n setError(err instanceof Error ? err : new Error(String(err)));\n return null;\n }\n };\n\n useEffect(() => {\n setError(undefined);\n setQueryLoading(true);\n retryCount.current = 0;\n\n if (!relationalDb.db) {\n return;\n }\n\n // Use the processor helper to obtain a typed namespaced query builder\n const db = ProcessorClass.query(driveId, relationalDb.db);\n\n const compiledQuery = queryCallback(db, parameters);\n const { sql, parameters: queryParameters } = compiledQuery;\n\n const liveQueryPromise = executeLiveQuery(sql, queryParameters);\n\n return () => {\n if (retryTimeoutRef.current) {\n clearTimeout(retryTimeoutRef.current);\n }\n void liveQueryPromise.then((live) => {\n if (live?.unsubscribe) {\n live.unsubscribe();\n }\n });\n };\n }, [relationalDb.db, ProcessorClass, driveId, queryCallback, parameters]);\n\n return {\n isLoading: relationalDb.isLoading || queryLoading,\n error: error || relationalDb.error,\n result,\n } as const;\n}\n","import type { LiveQueryResults } from \"@electric-sql/pglite/live\";\nimport type {\n QueryCallbackReturnType,\n useRelationalQueryOptions,\n} from \"@powerhousedao/reactor-browser\";\nimport type {\n IRelationalQueryBuilder,\n RelationalDbProcessorClass,\n} from \"@powerhousedao/shared/processors\";\nimport type { CompiledQuery } from \"kysely\";\nimport deepEqual from \"lodash.isequal\";\nimport { useCallback, useMemo, useRef } from \"react\";\nimport { useRelationalQuery } from \"../hooks/useRelationalQuery.js\";\n\n// Custom hook for parameter memoization\nfunction useStableParams<T>(params: T): T {\n const prevParamsRef = useRef<T>(null);\n\n return useMemo(() => {\n if (!deepEqual(prevParamsRef.current, params)) {\n prevParamsRef.current = params;\n }\n return prevParamsRef.current as T;\n }, [params]);\n}\n\nexport function createProcessorQuery<TSchema>(\n ProcessorClass: RelationalDbProcessorClass<TSchema>,\n) {\n // Overload for queries without parameters\n function useQuery<\n TQueryBuilder extends (\n db: IRelationalQueryBuilder<TSchema>,\n ) => QueryCallbackReturnType,\n >(\n driveId: string,\n queryCallback: TQueryBuilder,\n ): {\n isLoading: boolean;\n error: Error | null;\n result: LiveQueryResults<\n ReturnType<TQueryBuilder> extends CompiledQuery<infer R> ? R : any\n > | null;\n };\n\n // Overload for queries with parameters\n function useQuery<\n TParams,\n TQueryBuilder extends (\n db: IRelationalQueryBuilder<TSchema>,\n parameters: TParams,\n ) => QueryCallbackReturnType,\n >(\n driveId: string,\n queryCallback: TQueryBuilder,\n parameters: TParams,\n options?: useRelationalQueryOptions,\n ): {\n isLoading: boolean;\n error: Error | null;\n result: LiveQueryResults<\n ReturnType<TQueryBuilder> extends CompiledQuery<infer R> ? R : any\n > | null;\n };\n\n function useQuery<\n TParams,\n TQueryBuilder extends (\n db: IRelationalQueryBuilder<TSchema>,\n parameters?: TParams,\n ) => QueryCallbackReturnType,\n >(\n driveId: string,\n queryCallback: TQueryBuilder,\n parameters?: TParams,\n options?: useRelationalQueryOptions,\n ): {\n isLoading: boolean;\n error: Error | null;\n result: LiveQueryResults<\n ReturnType<TQueryBuilder> extends CompiledQuery<infer R> ? R : any\n > | null;\n } {\n type InferredResult =\n ReturnType<TQueryBuilder> extends CompiledQuery<infer R> ? R : any;\n\n // Automatically memoize parameters using deep comparison\n const stableParams = useStableParams(parameters);\n\n // Memoize the callback to prevent infinite loops, updating when parameters change\n const memoizedCallback = useCallback(queryCallback, [stableParams]);\n\n return useRelationalQuery<TSchema, InferredResult, TParams>(\n ProcessorClass,\n driveId,\n memoizedCallback,\n stableParams,\n options,\n ) as {\n isLoading: boolean;\n error: Error | null;\n result: LiveQueryResults<InferredResult> | null;\n };\n }\n\n return useQuery;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"relational-C_0GdGVN.js","names":[],"sources":["../src/pglite/usePGlite.ts","../src/relational/hooks/useRelationalDb.ts","../src/relational/hooks/useRelationalQuery.ts","../src/relational/utils/createProcessorQuery.ts"],"sourcesContent":["import type { PGliteWithLive } from \"@electric-sql/pglite/live\";\nimport { useEffect, useState } from \"react\";\n\nexport const PGLITE_UPDATE_EVENT = \"ph:pglite-update\";\n\nexport interface PGliteState {\n db: PGliteWithLive | null;\n isLoading: boolean;\n error: Error | null;\n}\n\nconst defaultPGliteState: PGliteState = {\n db: null,\n isLoading: true,\n error: null,\n};\n\nexport const usePGliteDB = () => {\n const [state, setState] = useState<PGliteState>(\n () => window.powerhouse?.pglite ?? defaultPGliteState,\n );\n\n useEffect(() => {\n const handlePgliteUpdate = () =>\n setState(window.powerhouse?.pglite ?? defaultPGliteState);\n\n window.addEventListener(PGLITE_UPDATE_EVENT, handlePgliteUpdate);\n\n return () =>\n window.removeEventListener(PGLITE_UPDATE_EVENT, handlePgliteUpdate);\n }, []);\n\n return state;\n};\n\nexport function setPGliteDB(pglite: Partial<PGliteState>): void {\n const currentPowerhouse = window.powerhouse ?? {};\n const currentPGliteState = window.powerhouse?.pglite ?? defaultPGliteState;\n\n window.powerhouse = {\n ...currentPowerhouse,\n pglite: {\n ...currentPGliteState,\n ...pglite,\n },\n };\n window.dispatchEvent(new CustomEvent(PGLITE_UPDATE_EVENT));\n}\n\nexport const useSetPGliteDB = () => setPGliteDB;\n\nexport const usePGlite = () => {\n const pglite = usePGliteDB();\n const setPGlite = useSetPGliteDB();\n\n return [pglite, setPGlite];\n};\n","import type { PGlite } from \"@electric-sql/pglite\";\nimport type { LiveNamespace, PGliteWithLive } from \"@electric-sql/pglite/live\";\nimport { createRelationalDb } from \"@powerhousedao/reactor\";\nimport type { IRelationalDb as IRelationalDbCore } from \"@powerhousedao/shared/processors\";\nimport { Kysely } from \"kysely\";\nimport { PGliteDialect } from \"kysely-pglite-dialect\";\nimport { useMemo } from \"react\";\nimport { usePGliteDB } from \"../../pglite/usePGlite.js\";\n\n// Type for Relational DB instance enhanced with live capabilities\nexport type RelationalDbWithLive<Schema> = IRelationalDbCore<Schema> & {\n live: LiveNamespace;\n};\n\ninterface IRelationalDbState<Schema> {\n db: RelationalDbWithLive<Schema> | null;\n isLoading: boolean;\n error: Error | null;\n}\n\n// Custom initializer that creates enhanced Kysely instance with live capabilities\nfunction createRelationalDbWithLive<Schema>(\n pgliteInstance: PGliteWithLive,\n): RelationalDbWithLive<Schema> {\n const baseDb = new Kysely<Schema>({\n dialect: new PGliteDialect(pgliteInstance as unknown as PGlite),\n });\n const relationalDb = createRelationalDb(baseDb);\n\n // Inject the live namespace with proper typing\n const relationalDBWithLive =\n relationalDb as unknown as RelationalDbWithLive<Schema>;\n relationalDBWithLive.live = pgliteInstance.live;\n\n return relationalDBWithLive;\n}\n\nexport const useRelationalDb = <Schema>(): IRelationalDbState<Schema> => {\n const pglite = usePGliteDB();\n\n const relationalDb = useMemo<IRelationalDbState<Schema>>(() => {\n if (!pglite.db || pglite.isLoading || pglite.error) {\n return {\n db: null,\n isLoading: pglite.isLoading,\n error: pglite.error,\n };\n }\n\n const db = createRelationalDbWithLive<Schema>(pglite.db);\n\n return {\n db,\n isLoading: false,\n error: null,\n };\n }, [pglite]);\n\n return relationalDb;\n};\n","import type { LiveQueryResults } from \"@electric-sql/pglite/live\";\nimport type {\n IRelationalQueryBuilder,\n RelationalDbProcessorClass,\n} from \"@powerhousedao/shared/processors\";\nimport { useEffect, useRef, useState } from \"react\";\nimport { useRelationalDb } from \"./useRelationalDb.js\";\n\nexport type QueryCallbackReturnType = {\n sql: string;\n parameters?: readonly unknown[];\n};\n\nexport type useRelationalQueryOptions = {\n // Whether to hash the namespace to avoid namespace size limit. True by default\n hashNamespace?: boolean;\n};\n\nconst MAX_RETRIES = 5;\nconst RETRY_DELAY = 200;\n\nconst isRelationNotExistError = (error: unknown): boolean => {\n const errorMessage =\n error instanceof Error\n ? error.message\n : typeof error === \"string\"\n ? error\n : String(error);\n\n return (\n errorMessage.toLowerCase().includes(\"relation\") &&\n errorMessage.toLowerCase().includes(\"does not exist\")\n );\n};\n\ntype LiveQueryType = {\n unsubscribe: () => void;\n};\n\nexport function useRelationalQuery<Schema, T = unknown, TParams = undefined>(\n ProcessorClass: RelationalDbProcessorClass<Schema>,\n driveId: string,\n queryCallback: (\n db: IRelationalQueryBuilder<Schema>,\n parameters?: TParams,\n ) => QueryCallbackReturnType,\n parameters?: TParams,\n _options?: useRelationalQueryOptions,\n) {\n const [result, setResult] = useState<LiveQueryResults<T> | null>(null);\n const [queryLoading, setQueryLoading] = useState(true);\n const [error, setError] = useState<Error | undefined>(undefined);\n const retryCount = useRef(0);\n const retryTimeoutRef = useRef<NodeJS.Timeout>(null);\n\n const relationalDb = useRelationalDb<Schema>();\n\n const executeLiveQuery = async (\n sql: string,\n queryParameters: readonly unknown[] | undefined,\n retryAttempt = 0,\n ): Promise<LiveQueryType | null> => {\n if (!relationalDb.db) {\n return null;\n }\n\n try {\n const live = await relationalDb.db.live.query<T>(\n sql,\n queryParameters ? [...queryParameters] : [],\n (result) => {\n setResult(result);\n setQueryLoading(false);\n retryCount.current = 0; // Reset retry count on success\n },\n );\n\n return live as LiveQueryType;\n } catch (err: unknown) {\n if (isRelationNotExistError(err) && retryAttempt < MAX_RETRIES) {\n return new Promise((resolve) => {\n retryTimeoutRef.current = setTimeout(() => {\n resolve(executeLiveQuery(sql, queryParameters, retryAttempt + 1));\n }, RETRY_DELAY);\n });\n }\n\n setQueryLoading(false);\n setError(err instanceof Error ? err : new Error(String(err)));\n return null;\n }\n };\n\n useEffect(() => {\n setError(undefined);\n setQueryLoading(true);\n retryCount.current = 0;\n\n if (!relationalDb.db) {\n return;\n }\n\n // Use the processor helper to obtain a typed namespaced query builder\n const db = ProcessorClass.query(driveId, relationalDb.db);\n\n const compiledQuery = queryCallback(db, parameters);\n const { sql, parameters: queryParameters } = compiledQuery;\n\n const liveQueryPromise = executeLiveQuery(sql, queryParameters);\n\n return () => {\n if (retryTimeoutRef.current) {\n clearTimeout(retryTimeoutRef.current);\n }\n void liveQueryPromise.then((live) => {\n if (live?.unsubscribe) {\n live.unsubscribe();\n }\n });\n };\n }, [relationalDb.db, ProcessorClass, driveId, queryCallback, parameters]);\n\n return {\n isLoading: relationalDb.isLoading || queryLoading,\n error: error || relationalDb.error,\n result,\n } as const;\n}\n","import type { LiveQueryResults } from \"@electric-sql/pglite/live\";\nimport type {\n QueryCallbackReturnType,\n useRelationalQueryOptions,\n} from \"@powerhousedao/reactor-browser\";\nimport type {\n IRelationalQueryBuilder,\n RelationalDbProcessorClass,\n} from \"@powerhousedao/shared/processors\";\nimport type { CompiledQuery } from \"kysely\";\nimport deepEqual from \"lodash.isequal\";\nimport { useCallback, useMemo, useRef } from \"react\";\nimport { useRelationalQuery } from \"../hooks/useRelationalQuery.js\";\n\n// Custom hook for parameter memoization\nfunction useStableParams<T>(params: T): T {\n const prevParamsRef = useRef<T>(null);\n\n return useMemo(() => {\n if (!deepEqual(prevParamsRef.current, params)) {\n prevParamsRef.current = params;\n }\n return prevParamsRef.current as T;\n }, [params]);\n}\n\nexport function createProcessorQuery<TSchema>(\n ProcessorClass: RelationalDbProcessorClass<TSchema>,\n) {\n // Overload for queries without parameters\n function useQuery<\n TQueryBuilder extends (\n db: IRelationalQueryBuilder<TSchema>,\n ) => QueryCallbackReturnType,\n >(\n driveId: string,\n queryCallback: TQueryBuilder,\n ): {\n isLoading: boolean;\n error: Error | null;\n result: LiveQueryResults<\n ReturnType<TQueryBuilder> extends CompiledQuery<infer R> ? R : any\n > | null;\n };\n\n // Overload for queries with parameters\n function useQuery<\n TParams,\n TQueryBuilder extends (\n db: IRelationalQueryBuilder<TSchema>,\n parameters: TParams,\n ) => QueryCallbackReturnType,\n >(\n driveId: string,\n queryCallback: TQueryBuilder,\n parameters: TParams,\n options?: useRelationalQueryOptions,\n ): {\n isLoading: boolean;\n error: Error | null;\n result: LiveQueryResults<\n ReturnType<TQueryBuilder> extends CompiledQuery<infer R> ? R : any\n > | null;\n };\n\n function useQuery<\n TParams,\n TQueryBuilder extends (\n db: IRelationalQueryBuilder<TSchema>,\n parameters?: TParams,\n ) => QueryCallbackReturnType,\n >(\n driveId: string,\n queryCallback: TQueryBuilder,\n parameters?: TParams,\n options?: useRelationalQueryOptions,\n ): {\n isLoading: boolean;\n error: Error | null;\n result: LiveQueryResults<\n ReturnType<TQueryBuilder> extends CompiledQuery<infer R> ? R : any\n > | null;\n } {\n type InferredResult =\n ReturnType<TQueryBuilder> extends CompiledQuery<infer R> ? R : any;\n\n // Automatically memoize parameters using deep comparison\n const stableParams = useStableParams(parameters);\n\n // Memoize the callback to prevent infinite loops, updating when parameters change\n const memoizedCallback = useCallback(queryCallback, [stableParams]);\n\n return useRelationalQuery<TSchema, InferredResult, TParams>(\n ProcessorClass,\n driveId,\n memoizedCallback,\n stableParams,\n options,\n ) as {\n isLoading: boolean;\n error: Error | null;\n result: LiveQueryResults<InferredResult> | null;\n };\n }\n\n return useQuery;\n}\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { t as useDocumentById } from "../../document-by-id-BPj6Gd7n.js";
1
+ import { t as useDocumentById } from "../../document-by-id-DWEQI7wn.js";
2
2
  import { i as getGlobal, n as getAnalyticsStore, t as createAnalyticsStore } from "../../store-DAJq6vSs.js";
3
3
  import { childLogger } from "document-model";
4
4
  import { useEffect } from "react";
@@ -1,4 +1,4 @@
1
- import { rt as IReactorBrowserClient } from "../../global-DscB9Uo3.js";
2
- import { $ as GraphQLRequestOptions, A as useGetDocuments, B as stampAction, C as setDocumentCache, D as useDocuments, E as useDocumentSafe, F as startDocumentChangesSubscription, G as GraphQLReactorProvider, H as MutateDocumentWithOperationsResult, I as subscriptionsUrlFromGraphqlUrl, J as useSwitchboardClient, K as GraphQLReactorProviderProps, L as StaticPackageManager, M as DocumentChangesEventPayload, Mt as DocumentCache, N as DocumentChangesSubscriptionOptions, Nt as addPromiseState, O as useGetDocument, P as makeAuthConnectionParams, Pt as readPromiseState, Q as viewFilterInputFromViewFilter, R as packageFromDocumentModels, T as useDocumentCache, U as MutateDocumentWithOperationsVariables, V as MutateDocumentWithOperationsDocument, W as ReactorOperationFieldsFragmentDoc, X as GraphQLReactorClientOptions, Y as GraphQLReactorClient, Z as isGraphQLReactorClient, a as useDocumentOperations, at as BearerTokenProvider, c as DispatchFn, ct as GetDocumentQueryFields, dt as phDocumentFromGetDocument, et as SubgraphSdkFactory, ft as phDocumentFromMutation, i as DocumentOperationsState, it as subgraphUrlFromGraphqlUrl, j as ConnectionParams, k as useGetDocumentAsync, l as UseDispatchResult, lt as GetDocumentQueryResult, nt as TypedGraphQLDocument, o as useDocumentModelModuleById, ot as ambientRenownTokenProvider, p as setReactorClient, pt as revisionMapFromRevisionsList, q as ensurePHEventHandlers, r as useAttachmentService, rt as describeGraphQLDocument, s as useDocumentModelModules, st as makeAuthMiddleware, tt as SubgraphSdkRegistry, u as useDispatch, ut as RevisionsListSelection, v as useReactorClient, w as useDocument, z as signStampedAction } from "../../attachment-service-iRAJvtrC.js";
1
+ import { rt as IReactorBrowserClient } from "../../global-CjrUQWHf.js";
2
+ import { $ as GraphQLRequestOptions, A as useGetDocuments, B as stampAction, C as setDocumentCache, D as useDocuments, E as useDocumentSafe, F as startDocumentChangesSubscription, G as GraphQLReactorProvider, H as MutateDocumentWithOperationsResult, I as subscriptionsUrlFromGraphqlUrl, J as useSwitchboardClient, K as GraphQLReactorProviderProps, L as StaticPackageManager, M as DocumentChangesEventPayload, Mt as DocumentCache, N as DocumentChangesSubscriptionOptions, Nt as addPromiseState, O as useGetDocument, P as makeAuthConnectionParams, Pt as readPromiseState, Q as viewFilterInputFromViewFilter, R as packageFromDocumentModels, T as useDocumentCache, U as MutateDocumentWithOperationsVariables, V as MutateDocumentWithOperationsDocument, W as ReactorOperationFieldsFragmentDoc, X as GraphQLReactorClientOptions, Y as GraphQLReactorClient, Z as isGraphQLReactorClient, a as useDocumentOperations, at as BearerTokenProvider, c as DispatchFn, ct as GetDocumentQueryFields, dt as phDocumentFromGetDocument, et as SubgraphSdkFactory, ft as phDocumentFromMutation, i as DocumentOperationsState, it as subgraphUrlFromGraphqlUrl, j as ConnectionParams, k as useGetDocumentAsync, l as UseDispatchResult, lt as GetDocumentQueryResult, nt as TypedGraphQLDocument, o as useDocumentModelModuleById, ot as ambientRenownTokenProvider, p as setReactorClient, pt as revisionMapFromRevisionsList, q as ensurePHEventHandlers, r as useAttachmentService, rt as describeGraphQLDocument, s as useDocumentModelModules, st as makeAuthMiddleware, tt as SubgraphSdkRegistry, u as useDispatch, ut as RevisionsListSelection, v as useReactorClient, w as useDocument, z as signStampedAction } from "../../attachment-service-CUGe-Rda.js";
3
3
  import { O as SdkFunctionWrapper } from "../../types-Bitg5Z5j.js";
4
4
  export { BearerTokenProvider, ConnectionParams, type DispatchFn, DocumentCache, DocumentChangesEventPayload, DocumentChangesSubscriptionOptions, type DocumentOperationsState, GetDocumentQueryFields, GetDocumentQueryResult, GraphQLReactorClient, GraphQLReactorClientOptions, GraphQLReactorProvider, GraphQLReactorProviderProps, GraphQLRequestOptions, type IReactorBrowserClient, MutateDocumentWithOperationsDocument, MutateDocumentWithOperationsResult, MutateDocumentWithOperationsVariables, ReactorOperationFieldsFragmentDoc, RevisionsListSelection, SdkFunctionWrapper, StaticPackageManager, SubgraphSdkFactory, SubgraphSdkRegistry, TypedGraphQLDocument, type UseDispatchResult, addPromiseState, ambientRenownTokenProvider, describeGraphQLDocument, ensurePHEventHandlers, isGraphQLReactorClient, makeAuthConnectionParams, makeAuthMiddleware, packageFromDocumentModels, phDocumentFromGetDocument, phDocumentFromMutation, readPromiseState, revisionMapFromRevisionsList, setDocumentCache, setReactorClient, signStampedAction, stampAction, startDocumentChangesSubscription, subgraphUrlFromGraphqlUrl, subscriptionsUrlFromGraphqlUrl, useAttachmentService, useDispatch, useDocument, useDocumentCache, useDocumentModelModuleById, useDocumentModelModules, useDocumentOperations, useDocumentSafe, useDocuments, useGetDocument, useGetDocumentAsync, useGetDocuments, useReactorClient, useSwitchboardClient, viewFilterInputFromViewFilter };
@@ -1,3 +1,3 @@
1
- import { a as setDocumentCache, c as useDocumentSafe, d as useGetDocumentAsync, f as useGetDocuments, h as readPromiseState, l as useDocuments, m as addPromiseState, o as useDocument, p as DocumentCache, r as useDispatch, s as useDocumentCache, u as useGetDocument } from "../../document-by-id-BPj6Gd7n.js";
2
- import { $i as makeAuthMiddleware, Bi as isGraphQLReactorClient, Gi as SubgraphSdkRegistry, Hi as makeAuthConnectionParams, Ji as signStampedAction, K as useReactorClient, Ki as describeGraphQLDocument, Lt as useAttachmentService, Qi as ambientRenownTokenProvider, Ui as startDocumentChangesSubscription, V as setReactorClient, Vi as viewFilterInputFromViewFilter, Wi as subscriptionsUrlFromGraphqlUrl, Xi as MutateDocumentWithOperationsDocument, Yi as stampAction, Zi as ReactorOperationFieldsFragmentDoc, a as ensurePHEventHandlers, c as packageFromDocumentModels, ea as phDocumentFromGetDocument, i as GraphQLReactorProvider, n as useDocumentModelModuleById, na as revisionMapFromRevisionsList, o as useSwitchboardClient, qi as subgraphUrlFromGraphqlUrl, r as useDocumentModelModules, s as StaticPackageManager, t as useDocumentOperations, ta as phDocumentFromMutation, zi as GraphQLReactorClient } from "../../document-operations-DvhxGXqI.js";
1
+ import { a as setDocumentCache, c as useDocumentSafe, d as useGetDocumentAsync, f as useGetDocuments, h as readPromiseState, l as useDocuments, m as addPromiseState, o as useDocument, p as DocumentCache, r as useDispatch, s as useDocumentCache, u as useGetDocument } from "../../document-by-id-DWEQI7wn.js";
2
+ import { $i as makeAuthMiddleware, Bi as isGraphQLReactorClient, Gi as SubgraphSdkRegistry, Hi as makeAuthConnectionParams, Ji as signStampedAction, K as useReactorClient, Ki as describeGraphQLDocument, Lt as useAttachmentService, Qi as ambientRenownTokenProvider, Ui as startDocumentChangesSubscription, V as setReactorClient, Vi as viewFilterInputFromViewFilter, Wi as subscriptionsUrlFromGraphqlUrl, Xi as MutateDocumentWithOperationsDocument, Yi as stampAction, Zi as ReactorOperationFieldsFragmentDoc, a as ensurePHEventHandlers, c as packageFromDocumentModels, ea as phDocumentFromGetDocument, i as GraphQLReactorProvider, n as useDocumentModelModuleById, na as revisionMapFromRevisionsList, o as useSwitchboardClient, qi as subgraphUrlFromGraphqlUrl, r as useDocumentModelModules, s as StaticPackageManager, t as useDocumentOperations, ta as phDocumentFromMutation, zi as GraphQLReactorClient } from "../../document-operations-D81QJKqH.js";
3
3
  export { DocumentCache, GraphQLReactorClient, GraphQLReactorProvider, MutateDocumentWithOperationsDocument, ReactorOperationFieldsFragmentDoc, StaticPackageManager, SubgraphSdkRegistry, addPromiseState, ambientRenownTokenProvider, describeGraphQLDocument, ensurePHEventHandlers, isGraphQLReactorClient, makeAuthConnectionParams, makeAuthMiddleware, packageFromDocumentModels, phDocumentFromGetDocument, phDocumentFromMutation, readPromiseState, revisionMapFromRevisionsList, setDocumentCache, setReactorClient, signStampedAction, stampAction, startDocumentChangesSubscription, subgraphUrlFromGraphqlUrl, subscriptionsUrlFromGraphqlUrl, useAttachmentService, useDispatch, useDocument, useDocumentCache, useDocumentModelModuleById, useDocumentModelModules, useDocumentOperations, useDocumentSafe, useDocuments, useGetDocument, useGetDocumentAsync, useGetDocuments, useReactorClient, useSwitchboardClient, viewFilterInputFromViewFilter };
@@ -1,2 +1,2 @@
1
- import { n as useRelationalQuery, r as useRelationalDb, t as createProcessorQuery } from "../../relational-DJlbclWB.js";
1
+ import { n as useRelationalQuery, r as useRelationalDb, t as createProcessorQuery } from "../../relational-C_0GdGVN.js";
2
2
  export { createProcessorQuery, useRelationalDb, useRelationalQuery };
@@ -1,2 +1,2 @@
1
- import { A as VERIFIABLE_CREDENTIAL_EIP712_TYPE, B as RenownUserButtonMenuItem, C as CREDENTIAL_SUBJECT_TYPE, D as RENOWN_CHAIN_ID, E as ISSUER_TYPE, F as DisconnectIcon, G as RenownAuthButtonProps, H as RenownLoginButton, I as RenownLogo, L as SpinnerIcon, M as initRenownCrypto, N as ChevronDownIcon, O as RENOWN_NETWORK_ID, P as CopyIcon, R as UserIcon, S as CREDENTIAL_SCHEMA_EIP712_TYPE, T as DOMAIN_TYPE, U as RenownLoginButtonProps, V as RenownUserButtonProps, W as RenownAuthButton, X as useRenown, _ as RenownInitialAuth, a as RenownProvider, at as useRenownAuth, b as useRenownInitialAuth, c as RenownProps, d as RenownSessionCookieOptions, et as openRenown, f as RenownSessionCookieState, g as RENOWN_INITIAL_UNKNOWN, h as RENOWN_INITIAL_ANONYMOUS, i as RenownWalletProviderProps, it as RenownAuthStatus, j as initConnectCrypto, k as RENOWN_URL, l as RenownInitOptions, m as useRenownSessionSynced, n as useRenownLoginMethods, nt as RenownAuthAsync, o as RenownProviderProps, ot as useRenownAuthAsync, p as useRenownSessionCookie, r as RenownWalletProvider, rt as RenownAuthResolution, s as Renown, t as RenownLoginMethod, tt as RenownAuth, u as useRenownInit, v as RenownInitialUserProvider, w as CREDENTIAL_TYPES, x as useRenownInitialUser, y as RenownInitialUserProviderProps, z as RenownUserButton } from "../../index-CxZDuIq9.js";
1
+ import { A as VERIFIABLE_CREDENTIAL_EIP712_TYPE, B as RenownUserButtonMenuItem, C as CREDENTIAL_SUBJECT_TYPE, D as RENOWN_CHAIN_ID, E as ISSUER_TYPE, F as DisconnectIcon, G as RenownAuthButtonProps, H as RenownLoginButton, I as RenownLogo, L as SpinnerIcon, M as initRenownCrypto, N as ChevronDownIcon, O as RENOWN_NETWORK_ID, P as CopyIcon, R as UserIcon, S as CREDENTIAL_SCHEMA_EIP712_TYPE, T as DOMAIN_TYPE, U as RenownLoginButtonProps, V as RenownUserButtonProps, W as RenownAuthButton, X as useRenown, _ as RenownInitialAuth, a as RenownProvider, at as useRenownAuth, b as useRenownInitialAuth, c as RenownProps, d as RenownSessionCookieOptions, et as openRenown, f as RenownSessionCookieState, g as RENOWN_INITIAL_UNKNOWN, h as RENOWN_INITIAL_ANONYMOUS, i as RenownWalletProviderProps, it as RenownAuthStatus, j as initConnectCrypto, k as RENOWN_URL, l as RenownInitOptions, m as useRenownSessionSynced, n as useRenownLoginMethods, nt as RenownAuthAsync, o as RenownProviderProps, ot as useRenownAuthAsync, p as useRenownSessionCookie, r as RenownWalletProvider, rt as RenownAuthResolution, s as Renown, t as RenownLoginMethod, tt as RenownAuth, u as useRenownInit, v as RenownInitialUserProvider, w as CREDENTIAL_TYPES, x as useRenownInitialUser, y as RenownInitialUserProviderProps, z as RenownUserButton } from "../../index-BM9TVt6u.js";
2
2
  export { CREDENTIAL_SCHEMA_EIP712_TYPE, CREDENTIAL_SUBJECT_TYPE, CREDENTIAL_TYPES, ChevronDownIcon, CopyIcon, DOMAIN_TYPE, DisconnectIcon, ISSUER_TYPE, RENOWN_CHAIN_ID, RENOWN_INITIAL_ANONYMOUS, RENOWN_INITIAL_UNKNOWN, RENOWN_NETWORK_ID, RENOWN_URL, Renown, RenownAuth, RenownAuthAsync, RenownAuthButton, RenownAuthButtonProps, RenownAuthResolution, RenownAuthStatus, RenownInitOptions, RenownInitialAuth, RenownInitialUserProvider, RenownInitialUserProviderProps, RenownLoginButton, RenownLoginButtonProps, RenownLoginMethod, RenownLogo, RenownProps, RenownProvider, RenownProviderProps, RenownSessionCookieOptions, RenownSessionCookieState, RenownUserButton, RenownUserButtonMenuItem, RenownUserButtonProps, RenownWalletProvider, RenownWalletProviderProps, SpinnerIcon, UserIcon, VERIFIABLE_CREDENTIAL_EIP712_TYPE, initConnectCrypto, initRenownCrypto, openRenown, useRenown, useRenownAuth, useRenownAuthAsync, useRenownInit, useRenownInitialAuth, useRenownInitialUser, useRenownLoginMethods, useRenownSessionCookie, useRenownSessionSynced };
@@ -220,7 +220,7 @@ declare class WorkerPackageLoader implements IDocumentModelLoader {
220
220
  private readonly cdnUrl;
221
221
  private readonly importPackage;
222
222
  private readonly resolvePackages;
223
- private readonly modulesByType;
223
+ private readonly modulesByKey;
224
224
  private readonly loadedSpecs;
225
225
  private readonly failures;
226
226
  constructor(options: WorkerPackageLoaderOptions);
@@ -228,6 +228,8 @@ declare class WorkerPackageLoader implements IDocumentModelLoader {
228
228
  load(documentType: string): Promise<DocumentModelModule>;
229
229
  get models(): DocumentModelModule[];
230
230
  get loadFailures(): PackageLoadFailure[];
231
+ /** The highest registered version for a type, which is what a bare load resolves to. */
232
+ private latestForType;
231
233
  private notLoadedError;
232
234
  private loadPackage;
233
235
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/rpc/client-proxy.ts","../../../src/rpc/op-channel.ts","../../../src/rpc/host-reply.ts","../../../src/rpc/listeners.ts","../../../src/rpc/subscription.ts","../../../src/rpc/live-query-proxy.ts","../../../src/rpc/relational-db-proxy.ts","../../../src/rpc/event-bus-proxy.ts","../../../src/rpc/forwarded-events.ts","../../../src/rpc/connect-reactor.ts","../../../src/rpc/host-server.ts","../../../src/rpc/reactor-host.ts","../../../src/rpc/sync-manager-proxy.ts","../../../src/rpc/worker-package-loader.ts","../../../src/rpc/error-info.ts"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/rpc/client-proxy.ts","../../../src/rpc/op-channel.ts","../../../src/rpc/host-reply.ts","../../../src/rpc/listeners.ts","../../../src/rpc/subscription.ts","../../../src/rpc/live-query-proxy.ts","../../../src/rpc/relational-db-proxy.ts","../../../src/rpc/event-bus-proxy.ts","../../../src/rpc/forwarded-events.ts","../../../src/rpc/connect-reactor.ts","../../../src/rpc/host-server.ts","../../../src/rpc/reactor-host.ts","../../../src/rpc/sync-manager-proxy.ts","../../../src/rpc/worker-package-loader.ts","../../../src/rpc/error-info.ts"],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { t as RegistryClient } from "../../client-Zz_l9QzI.js";
2
+ import { normalizeDocumentModelVersion } from "@powerhousedao/shared/document-model";
2
3
  import { DriveCollectionId, ReactorEventTypes, SyncEventTypes } from "@powerhousedao/reactor";
3
4
  //#region src/rpc/listeners.ts
4
5
  var KeyedListeners = class {
@@ -295,6 +296,7 @@ function createReactorClientProxy(router, options = {}) {
295
296
  if (prop === "subscribe") return subscribe;
296
297
  if (registry) {
297
298
  if (prop === "getDocumentModelModule") return (documentType) => Promise.resolve().then(() => registry.getModule(documentType));
299
+ if (prop === "getDocumentModelModuleForDocument") return (document) => Promise.resolve().then(() => registry.getModule(document.header.documentType, normalizeDocumentModelVersion(document.state.document?.version)));
298
300
  if (prop === "getDocumentModelModules") return (_namespace, paging) => Promise.resolve({
299
301
  results: registry.getAllModules(),
300
302
  options: paging ?? {
@@ -1069,6 +1071,9 @@ function packageName(spec) {
1069
1071
  const at = spec.lastIndexOf("@");
1070
1072
  return at > 0 ? spec.slice(0, at) : spec;
1071
1073
  }
1074
+ function moduleKey(module) {
1075
+ return `${module.documentModel.global.id}@${module.version ?? 1}`;
1076
+ }
1072
1077
  function isDocumentModelModule(value) {
1073
1078
  if (typeof value !== "object" || value === null) return false;
1074
1079
  const candidate = value;
@@ -1078,7 +1083,7 @@ var WorkerPackageLoader = class {
1078
1083
  cdnUrl;
1079
1084
  importPackage;
1080
1085
  resolvePackages;
1081
- modulesByType = /* @__PURE__ */ new Map();
1086
+ modulesByKey = /* @__PURE__ */ new Map();
1082
1087
  loadedSpecs = /* @__PURE__ */ new Set();
1083
1088
  failures = [];
1084
1089
  constructor(options) {
@@ -1092,21 +1097,30 @@ var WorkerPackageLoader = class {
1092
1097
  return this.models;
1093
1098
  }
1094
1099
  async load(documentType) {
1095
- const existing = this.modulesByType.get(documentType);
1100
+ const existing = this.latestForType(documentType);
1096
1101
  if (existing) return existing;
1097
1102
  const packageNames = await this.resolvePackages(documentType);
1098
1103
  const failuresBefore = this.failures.length;
1099
1104
  await Promise.all([...new Set(packageNames)].map((name) => this.loadPackage(name)));
1100
- const loaded = this.modulesByType.get(documentType);
1105
+ const loaded = this.latestForType(documentType);
1101
1106
  if (loaded) return loaded;
1102
1107
  throw this.notLoadedError(documentType, packageNames, this.failures.slice(failuresBefore));
1103
1108
  }
1104
1109
  get models() {
1105
- return [...new Set(this.modulesByType.values())];
1110
+ return [...new Set(this.modulesByKey.values())];
1106
1111
  }
1107
1112
  get loadFailures() {
1108
1113
  return [...this.failures];
1109
1114
  }
1115
+ /** The highest registered version for a type, which is what a bare load resolves to. */
1116
+ latestForType(documentType) {
1117
+ let latest;
1118
+ for (const module of this.modulesByKey.values()) {
1119
+ if (module.documentModel.global.id !== documentType) continue;
1120
+ if (!latest || (module.version ?? 1) > (latest.version ?? 1)) latest = module;
1121
+ }
1122
+ return latest;
1123
+ }
1110
1124
  notLoadedError(documentType, packageNames, failures) {
1111
1125
  if (packageNames.length === 0) return /* @__PURE__ */ new Error(`No package found for document model: ${documentType}`);
1112
1126
  if (failures.length === 0) return /* @__PURE__ */ new Error(`Imported [${packageNames.join(", ")}] but document model not found: ${documentType}`);
@@ -1119,7 +1133,7 @@ var WorkerPackageLoader = class {
1119
1133
  const url = `${this.cdnUrl}/${name}/browser/document-models/index.js`;
1120
1134
  try {
1121
1135
  const namespace = await this.importPackage(url);
1122
- for (const value of Object.values(namespace)) if (isDocumentModelModule(value)) this.modulesByType.set(value.documentModel.global.id, value);
1136
+ for (const value of Object.values(namespace)) if (isDocumentModelModule(value)) this.modulesByKey.set(moduleKey(value), value);
1123
1137
  this.loadedSpecs.add(spec);
1124
1138
  } catch (error) {
1125
1139
  this.failures.push({