@ontahi/react 1.0.0-alpha.12 → 1.0.0-alpha.13

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 (58) hide show
  1. package/README.md +76 -5
  2. package/dist/actions/fetch-operation-bridge-adapter.d.ts.map +1 -1
  3. package/dist/actions/fetch-operation-bridge-adapter.js +30 -13
  4. package/dist/actions/fetch-operation-bridge-adapter.js.map +1 -1
  5. package/dist/actions/operation-bridge.d.ts +2 -0
  6. package/dist/actions/operation-bridge.d.ts.map +1 -1
  7. package/dist/actions/operation-bridge.js.map +1 -1
  8. package/dist/graph/canonical-request-invalidation.d.ts +14 -0
  9. package/dist/graph/canonical-request-invalidation.d.ts.map +1 -0
  10. package/dist/graph/canonical-request-invalidation.js +42 -0
  11. package/dist/graph/canonical-request-invalidation.js.map +1 -0
  12. package/dist/graph/context.d.ts +9 -2
  13. package/dist/graph/context.d.ts.map +1 -1
  14. package/dist/graph/context.js +38 -3
  15. package/dist/graph/context.js.map +1 -1
  16. package/dist/graph/executor.d.ts +18 -1
  17. package/dist/graph/executor.d.ts.map +1 -1
  18. package/dist/graph/executor.js.map +1 -1
  19. package/dist/graph/fetch-graph-client.d.ts +2 -1
  20. package/dist/graph/fetch-graph-client.d.ts.map +1 -1
  21. package/dist/graph/fetch-graph-client.js.map +1 -1
  22. package/dist/graph/fetch-graph-runtime.d.ts.map +1 -1
  23. package/dist/graph/fetch-graph-runtime.js +53 -1
  24. package/dist/graph/fetch-graph-runtime.js.map +1 -1
  25. package/dist/graph/fetch-runtime-transport.d.ts.map +1 -1
  26. package/dist/graph/fetch-runtime-transport.js +1 -0
  27. package/dist/graph/fetch-runtime-transport.js.map +1 -1
  28. package/dist/graph/graph-hooks.d.ts +2 -1
  29. package/dist/graph/graph-hooks.d.ts.map +1 -1
  30. package/dist/graph/graph-hooks.js +161 -62
  31. package/dist/graph/graph-hooks.js.map +1 -1
  32. package/dist/graph/index.d.ts +3 -0
  33. package/dist/graph/index.d.ts.map +1 -1
  34. package/dist/graph/index.js +3 -0
  35. package/dist/graph/index.js.map +1 -1
  36. package/dist/graph/model-command-hooks.d.ts +2 -0
  37. package/dist/graph/model-command-hooks.d.ts.map +1 -0
  38. package/dist/graph/model-command-hooks.js +9 -0
  39. package/dist/graph/model-command-hooks.js.map +1 -0
  40. package/dist/graph/operation-hooks.d.ts.map +1 -1
  41. package/dist/graph/operation-hooks.js +91 -9
  42. package/dist/graph/operation-hooks.js.map +1 -1
  43. package/dist/graph/operation-types.d.ts +1 -0
  44. package/dist/graph/operation-types.d.ts.map +1 -1
  45. package/dist/graph/operation-types.js.map +1 -1
  46. package/dist/graph/runtime-graph-client.d.ts +3 -2
  47. package/dist/graph/runtime-graph-client.d.ts.map +1 -1
  48. package/dist/graph/runtime-graph-client.js +2 -1
  49. package/dist/graph/runtime-graph-client.js.map +1 -1
  50. package/dist/graph/semantic-invalidation.d.ts +27 -0
  51. package/dist/graph/semantic-invalidation.d.ts.map +1 -0
  52. package/dist/graph/semantic-invalidation.js +55 -0
  53. package/dist/graph/semantic-invalidation.js.map +1 -0
  54. package/dist/graph/websocket-runtime-transport.d.ts +5 -2
  55. package/dist/graph/websocket-runtime-transport.d.ts.map +1 -1
  56. package/dist/graph/websocket-runtime-transport.js +160 -46
  57. package/dist/graph/websocket-runtime-transport.js.map +1 -1
  58. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/graph/context.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EACL,sBAAsB,GAOvB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,0BAA0B,EAA0B,MAAM,+BAA+B,CAAC;AAEnG,OAAO,EACL,aAAa,EACb,WAAW,EACX,UAAU,EACV,OAAO,EACP,QAAQ,EACR,oBAAoB,GAErB,MAAM,OAAO,CAAC;AAKf,OAAO,EAAE,sBAAsB,EAA0B,MAAM,yBAAyB,CAAC;AACzF,OAAO,EACL,+BAA+B,GAEhC,MAAM,kCAAkC,CAAC;AAE1C,MAAM,0BAA0B,GAA2C,EAAE,CAAC;AAE9E,MAAM,mBAAmB,GAAG,aAAa,CAAiB,IAAI,CAAC,CAAC;AAChE,MAAM,wBAAwB,GAAG,aAAa,CAAoB,0BAA0B,CAAC,CAAC;AAC9F,MAAM,oBAAoB,GAAG,aAAa,CAAsC,IAAI,CAAC,CAAC;AACtF,MAAM,uBAAuB,GAAG,aAAa,CAA0B,IAAI,CAAC,CAAC;AAC7E,MAAM,uBAAuB,GAAG,aAAa,CAA0B,IAAI,CAAC,CAAC;AAC7E,MAAM,8BAA8B,GAAG,aAAa,CAClD,IAAI,CACL,CAAC;AACF,MAAM,gCAAgC,GAAG,aAAa,CAAmC,IAAI,CAAC,CAAC;AAC/F,MAAM,uCAAuC,GAC3C,aAAa,CAA0C,IAAI,CAAC,CAAC;AAC/D,MAAM,gCAAgC,GAAG,aAAa,CAAmC,IAAI,CAAC,CAAC;AAqB/F,MAAM,UAAU,mBAAmB,CAIjC,EACA,QAAQ,EACR,OAAO,EACP,aAAa,EACb,gBAAgB,EAChB,MAAM,EACN,uBAAuB,EACvB,yBAAyB,EACzB,gCAAgC,EAChC,yBAAyB,EACzB,wBAAwB,GAAG,0BAA0B,EACrD,WAAW,EACX,QAAQ,GAAG,0BAA0B,GACkC;IACvE,MAAM,CAAC,kBAAkB,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,sBAAsB,EAAE,CAAC,CAAC;IACtE,MAAM,CAAC,kBAAkB,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,sBAAsB,EAAE,CAAC,CAAC;IACtE,MAAM,WAAW,GAAG,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,kBAAkB,CAAC,CAAC;IAClF,MAAM,qBAAqB,GAAG,aAAa,IAAI,WAAW,EAAE,aAAa,CAAC;IAC1E,MAAM,wBAAwB,GAAG,gBAAgB,IAAI,WAAW,EAAE,gBAAgB,CAAC;IACnF,MAAM,+BAA+B,GACnC,uBAAuB,IAAI,WAAW,EAAE,uBAAuB,IAAI,EAAE,CAAC;IACxE,MAAM,iCAAiC,GACrC,yBAAyB,IAAI,WAAW,EAAE,yBAAyB,CAAC;IACtE,MAAM,wCAAwC,GAC5C,gCAAgC,IAAI,WAAW,EAAE,gCAAgC,CAAC;IACpF,MAAM,mCAAmC,GACvC,yBAAyB,IAAI,WAAW,EAAE,yBAAyB,CAAC;IACtE,MAAM,gBAAgB,GAAG,WAAW,IAAI,WAAW,EAAE,WAAW,IAAI,kBAAkB,CAAC;IACvF,MAAM,gBAAgB,GAAG,OAAO,CAC9B,GAAG,EAAE,CAAC,IAAI,GAAG,CAAC,+BAA+B,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EACtF,CAAC,+BAA+B,CAAC,CAClC,CAAC;IACF,MAAM,iCAAiC,GAAG,OAAO,CAC/C,GAAG,EAAE,CACH,wBAAwB,CAAC,MAAM,GAAG,CAAC;QACjC,CAAC,CAAC,+BAA+B,CAAC;YAC9B,QAAQ,EAAE,mCAAmC;YAC7C,aAAa,EAAE,qBAAqB;YACpC,eAAe,EAAE,wBAAwB;SAC1C,CAAC;QACJ,CAAC,CAAC,CAAC,mCAAmC,IAAI,IAAI,CAAC,EACnD,CAAC,mCAAmC,EAAE,wBAAwB,EAAE,qBAAqB,CAAC,CACvF,CAAC;IAEF,OAAO,CACL,KAAC,wBAAwB,CAAC,QAAQ,IAAC,KAAK,EAAE,QAAQ,YAChD,KAAC,gCAAgC,CAAC,QAAQ,IAAC,KAAK,EAAE,iCAAiC,YACjF,KAAC,uCAAuC,CAAC,QAAQ,IAC/C,KAAK,EAAE,wCAAwC,IAAI,IAAI,YAEvD,KAAC,gCAAgC,CAAC,QAAQ,IACxC,KAAK,EAAE,iCAAiC,IAAI,IAAI,YAEhD,KAAC,8BAA8B,CAAC,QAAQ,IAAC,KAAK,EAAE,gBAAgB,YAC9D,KAAC,uBAAuB,CAAC,QAAQ,IAAC,KAAK,EAAE,wBAAwB,IAAI,IAAI,YACvE,KAAC,uBAAuB,CAAC,QAAQ,IAAC,KAAK,EAAE,gBAAgB,YACvD,KAAC,oBAAoB,CAAC,QAAQ,IAAC,KAAK,EAAE,qBAAqB,IAAI,IAAI,YACjE,KAAC,mBAAmB,CAAC,QAAQ,IAAC,KAAK,EAAE,OAAO,YACzC,QAAQ,GACoB,GACD,GACC,GACF,GACK,GACA,GACK,GACT,GACV,CACrC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,wBAAwB,CAAC,CAAC;AAE/E,MAAM,UAAU,eAAe;IAC7B,MAAM,OAAO,GAAG,UAAU,CAAC,mBAAmB,CAAC,CAAC;IAEhD,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;IAChF,CAAC;IAED,OAAO,OAAwB,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,MAAM,aAAa,GAAG,UAAU,CAAC,oBAAoB,CAAC,CAAC;IAEvD,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CACb,gFAAgF,CACjF,CAAC;IACJ,CAAC;IAED,OAAO,aAAkE,CAAC;AAC5E,CAAC;AAED,MAAM,UAAU,0BAA0B;IAIxC,OAAO,CAAC,UAAU,CAAC,oBAAoB,CAAC,IAAI,SAAS,CAExC,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,MAAM,6BAA6B,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,uBAAuB,CAAC,IAAI,SAAS,CAAC;AAEpG,MAAM,UAAU,mBAAmB;IACjC,MAAM,SAAS,GAAG,6BAA6B,EAAE,CAAC;IAClD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC,CAAC;IAC/F,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,mBAAmB;IACjC,MAAM,WAAW,GAAG,UAAU,CAAC,uBAAuB,CAAC,CAAC;IAExD,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;IACpF,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,2BAA2B;IACzC,MAAM,WAAW,GAAG,mBAAmB,EAAE,CAAC;IAE1C,0BAA0B,CAAC,WAAW,CAAC,CAAC;IAExC,OAAO,WAAW,CAAC,OAAO,EAAE,CAAC;AAC/B,CAAC;AAED,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,WAA6B,EAAE,EAAE,CAC1E,oBAAoB,CAClB,WAAW,CAAC,SAAS,EACrB,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,OAAO,EACnC,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,OAAO,CACpC,CAAC;AAEJ,MAAM,UAAU,yBAAyB,CAAC,WAAmB;IAC3D,MAAM,QAAQ,GAAG,UAAU,CAAC,8BAA8B,CAAC,CAAC;IAE5D,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC;IAC1F,CAAC;IAED,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAE1C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,+CAA+C,WAAW,GAAG,CAAC,CAAC;IACjF,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,gCAAgC;IAC9C,MAAM,QAAQ,GAAG,UAAU,CAAC,8BAA8B,CAAC,CAAC;IAE5D,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,6EAA6E,CAAC,CAAC;IACjG,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;IAEpC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC7D,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,4BAA4B;IAC1C,MAAM,QAAQ,GAAG,UAAU,CAAC,8BAA8B,CAAC,CAAC;IAC5D,OAAO,QAAQ,KAAK,IAAI,IAAI,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,4BAA4B;IAC1C,MAAM,MAAM,GAAG,UAAU,CAAC,gCAAgC,CAAC,CAAC;IAE5D,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CACb,wGAAwG,CACzG,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,+BAA+B;IAC7C,OAAO,UAAU,CAAC,gCAAgC,CAAC,KAAK,IAAI,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,mCAAmC;IACjD,MAAM,MAAM,GAAG,UAAU,CAAC,uCAAuC,CAAC,CAAC;IAEnE,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CACb,sHAAsH,CACvH,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,MAAM,sCAAsC,GAAG,GAAG,EAAE,CACzD,UAAU,CAAC,uCAAuC,CAAC,KAAK,IAAI,CAAC;AAE/D,MAAM,UAAU,4BAA4B;IAC1C,MAAM,OAAO,GAAG,UAAU,CAAC,gCAAgC,CAAC,CAAC;IAE7D,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CACb,wGAAwG,CACzG,CAAC;IACJ,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,+BAA+B;IAC7C,OAAO,UAAU,CAAC,gCAAgC,CAAC,KAAK,IAAI,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,4BAA4B;IAC1C,MAAM,OAAO,GAAG,UAAU,CAAC,gCAAgC,CAAC,CAAC;IAE7D,OAAO,WAAW,CAChB,CAAC,SAAuC,EAAE,EAAE,CAC1C,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,CAAC,EACvE,CAAC,OAAO,CAAC,CACV,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wCAAwC,CACtD,SAAuC;IAEvC,MAAM,OAAO,GAAG,UAAU,CAAC,gCAAgC,CAAC,CAAC;IAE7D,OAAO,OAAO,EAAE,+BAA+B,EAAE,CAAC,SAAS,CAAC,CAAC;AAC/D,CAAC","sourcesContent":["'use client';\n\nimport {\n createGraphClientCache,\n type GraphClientCache,\n type OperationExecutionAffordance,\n type ReflectedEntityDataReader,\n type ReflectedRelatedEntityDataReader,\n type ReflectedOperationDescriptor,\n type ReflectedOperationInvoker,\n} from '@ontahi/core/data-graph';\nimport { anonymousExecutionIdentity, type ExecutionIdentity } from '@ontahi/core/runtime/identity';\nimport type { RuntimeTransport } from '@ontahi/core/runtime/protocol';\nimport {\n createContext,\n useCallback,\n useContext,\n useMemo,\n useState,\n useSyncExternalStore,\n type ReactNode,\n} from 'react';\n\nimport type { AnyOperationBridgeAdapter } from '../actions/index.js';\n\nimport type { ReactGraphExecutor } from './executor.js';\nimport { createFetchGraphClient, type OntahiGraphClient } from './fetch-graph-client.js';\nimport {\n createReflectedOperationInvoker,\n type ReflectedGraphOperationLike,\n} from './reflected-operation-invoker.js';\n\nconst noReflectedGraphOperations: readonly ReflectedGraphOperationLike[] = [];\n\nconst GraphRuntimeContext = createContext<unknown | null>(null);\nconst ExecutionIdentityContext = createContext<ExecutionIdentity>(anonymousExecutionIdentity);\nconst GraphExecutorContext = createContext<ReactGraphExecutor<any, any> | null>(null);\nconst GraphClientCacheContext = createContext<GraphClientCache | null>(null);\nconst RuntimeTransportContext = createContext<RuntimeTransport | null>(null);\nconst OperationBridgeAdaptersContext = createContext<Map<string, AnyOperationBridgeAdapter> | null>(\n null,\n);\nconst ReflectedEntityDataReaderContext = createContext<ReflectedEntityDataReader | null>(null);\nconst ReflectedRelatedEntityDataReaderContext =\n createContext<ReflectedRelatedEntityDataReader | null>(null);\nconst ReflectedOperationInvokerContext = createContext<ReflectedOperationInvoker | null>(null);\n\nexport type OntahiGraphProviderProps<\n TGraphRuntime = unknown,\n TReadOptions = unknown,\n TCommandOptions = TReadOptions,\n> = {\n children: ReactNode;\n runtime: TGraphRuntime;\n graphExecutor?: ReactGraphExecutor<TReadOptions, TCommandOptions>;\n runtimeTransport?: RuntimeTransport;\n client?: OntahiGraphClient<TReadOptions, TCommandOptions> | false;\n operationBridgeAdapters?: AnyOperationBridgeAdapter[];\n reflectedEntityDataReader?: ReflectedEntityDataReader;\n reflectedRelatedEntityDataReader?: ReflectedRelatedEntityDataReader;\n reflectedOperationInvoker?: ReflectedOperationInvoker;\n reflectedGraphOperations?: readonly ReflectedGraphOperationLike[];\n clientCache?: GraphClientCache;\n identity?: ExecutionIdentity;\n};\n\nexport function OntahiGraphProvider<\n TGraphRuntime = unknown,\n TReadOptions = unknown,\n TCommandOptions = TReadOptions,\n>({\n children,\n runtime,\n graphExecutor,\n runtimeTransport,\n client,\n operationBridgeAdapters,\n reflectedEntityDataReader,\n reflectedRelatedEntityDataReader,\n reflectedOperationInvoker,\n reflectedGraphOperations = noReflectedGraphOperations,\n clientCache,\n identity = anonymousExecutionIdentity,\n}: OntahiGraphProviderProps<TGraphRuntime, TReadOptions, TCommandOptions>) {\n const [defaultGraphClient] = useState(() => createFetchGraphClient());\n const [defaultClientCache] = useState(() => createGraphClientCache());\n const graphClient = client === false ? undefined : (client ?? defaultGraphClient);\n const resolvedGraphExecutor = graphExecutor ?? graphClient?.graphExecutor;\n const resolvedRuntimeTransport = runtimeTransport ?? graphClient?.runtimeTransport;\n const resolvedOperationBridgeAdapters =\n operationBridgeAdapters ?? graphClient?.operationBridgeAdapters ?? [];\n const resolvedReflectedEntityDataReader =\n reflectedEntityDataReader ?? graphClient?.reflectedEntityDataReader;\n const resolvedReflectedRelatedEntityDataReader =\n reflectedRelatedEntityDataReader ?? graphClient?.reflectedRelatedEntityDataReader;\n const configuredReflectedOperationInvoker =\n reflectedOperationInvoker ?? graphClient?.reflectedOperationInvoker;\n const graphClientCache = clientCache ?? graphClient?.clientCache ?? defaultClientCache;\n const bridgeAdapterMap = useMemo(\n () => new Map(resolvedOperationBridgeAdapters.map(adapter => [adapter.name, adapter])),\n [resolvedOperationBridgeAdapters],\n );\n const resolvedReflectedOperationInvoker = useMemo(\n () =>\n reflectedGraphOperations.length > 0\n ? createReflectedOperationInvoker({\n fallback: configuredReflectedOperationInvoker,\n graphExecutor: resolvedGraphExecutor,\n graphOperations: reflectedGraphOperations,\n })\n : (configuredReflectedOperationInvoker ?? null),\n [configuredReflectedOperationInvoker, reflectedGraphOperations, resolvedGraphExecutor],\n );\n\n return (\n <ExecutionIdentityContext.Provider value={identity}>\n <ReflectedOperationInvokerContext.Provider value={resolvedReflectedOperationInvoker}>\n <ReflectedRelatedEntityDataReaderContext.Provider\n value={resolvedReflectedRelatedEntityDataReader ?? null}\n >\n <ReflectedEntityDataReaderContext.Provider\n value={resolvedReflectedEntityDataReader ?? null}\n >\n <OperationBridgeAdaptersContext.Provider value={bridgeAdapterMap}>\n <RuntimeTransportContext.Provider value={resolvedRuntimeTransport ?? null}>\n <GraphClientCacheContext.Provider value={graphClientCache}>\n <GraphExecutorContext.Provider value={resolvedGraphExecutor ?? null}>\n <GraphRuntimeContext.Provider value={runtime}>\n {children}\n </GraphRuntimeContext.Provider>\n </GraphExecutorContext.Provider>\n </GraphClientCacheContext.Provider>\n </RuntimeTransportContext.Provider>\n </OperationBridgeAdaptersContext.Provider>\n </ReflectedEntityDataReaderContext.Provider>\n </ReflectedRelatedEntityDataReaderContext.Provider>\n </ReflectedOperationInvokerContext.Provider>\n </ExecutionIdentityContext.Provider>\n );\n}\n\nexport const useExecutionIdentity = () => useContext(ExecutionIdentityContext);\n\nexport function useGraphRuntime<TGraphRuntime = unknown>() {\n const runtime = useContext(GraphRuntimeContext);\n\n if (runtime === null) {\n throw new Error('useGraphRuntime must be used within an OntahiGraphProvider');\n }\n\n return runtime as TGraphRuntime;\n}\n\nexport function useGraphExecutor<TReadOptions = unknown, TCommandOptions = TReadOptions>() {\n const graphExecutor = useContext(GraphExecutorContext);\n\n if (graphExecutor === null) {\n throw new Error(\n 'useGraphExecutor must be used within an OntahiGraphProvider with graphExecutor',\n );\n }\n\n return graphExecutor as ReactGraphExecutor<TReadOptions, TCommandOptions>;\n}\n\nexport function useGraphExecutorCapability<\n TReadOptions = unknown,\n TCommandOptions = TReadOptions,\n>() {\n return (useContext(GraphExecutorContext) ?? undefined) as\n | ReactGraphExecutor<TReadOptions, TCommandOptions>\n | undefined;\n}\n\nexport const useRuntimeTransportCapability = () => useContext(RuntimeTransportContext) ?? undefined;\n\nexport function useRuntimeTransport() {\n const transport = useRuntimeTransportCapability();\n if (!transport) {\n throw new Error('useRuntimeTransport requires an OntahiGraphProvider with runtimeTransport');\n }\n return transport;\n}\n\nexport function useGraphClientCache() {\n const clientCache = useContext(GraphClientCacheContext);\n\n if (clientCache === null) {\n throw new Error('useGraphClientCache must be used within an OntahiGraphProvider');\n }\n\n return clientCache;\n}\n\nexport function useGraphClientCacheSnapshot() {\n const clientCache = useGraphClientCache();\n\n useGraphClientCacheVersion(clientCache);\n\n return clientCache.inspect();\n}\n\nexport const useGraphClientCacheVersion = (clientCache: GraphClientCache) =>\n useSyncExternalStore(\n clientCache.subscribe,\n () => clientCache.inspect().version,\n () => clientCache.inspect().version,\n );\n\nexport function useOperationBridgeAdapter(adapterName: string) {\n const adapters = useContext(OperationBridgeAdaptersContext);\n\n if (adapters === null) {\n throw new Error('useOperationBridgeAdapter must be used within an OntahiGraphProvider');\n }\n\n const adapter = adapters.get(adapterName);\n\n if (!adapter) {\n throw new Error(`No operation bridge adapter registered for \"${adapterName}\"`);\n }\n\n return adapter;\n}\n\nexport function useDefaultOperationBridgeAdapter() {\n const adapters = useContext(OperationBridgeAdaptersContext);\n\n if (adapters === null) {\n throw new Error('useDefaultOperationBridgeAdapter must be used within an OntahiGraphProvider');\n }\n\n const [adapter] = adapters.values();\n\n if (!adapter) {\n throw new Error('No operation bridge adapter registered.');\n }\n\n return adapter;\n}\n\nexport function useHasOperationBridgeRuntime() {\n const adapters = useContext(OperationBridgeAdaptersContext);\n return adapters !== null && adapters.size > 0;\n}\n\nexport function useReflectedEntityDataReader() {\n const reader = useContext(ReflectedEntityDataReaderContext);\n\n if (reader === null) {\n throw new Error(\n 'useReflectedEntityDataReader must be used within an OntahiGraphProvider with reflectedEntityDataReader',\n );\n }\n\n return reader;\n}\n\nexport function useHasReflectedEntityDataReader() {\n return useContext(ReflectedEntityDataReaderContext) !== null;\n}\n\nexport function useReflectedRelatedEntityDataReader() {\n const reader = useContext(ReflectedRelatedEntityDataReaderContext);\n\n if (reader === null) {\n throw new Error(\n 'useReflectedRelatedEntityDataReader must be used within an OntahiGraphProvider with reflectedRelatedEntityDataReader',\n );\n }\n\n return reader;\n}\n\nexport const useHasReflectedRelatedEntityDataReader = () =>\n useContext(ReflectedRelatedEntityDataReaderContext) !== null;\n\nexport function useReflectedOperationInvoker() {\n const invoker = useContext(ReflectedOperationInvokerContext);\n\n if (invoker === null) {\n throw new Error(\n 'useReflectedOperationInvoker must be used within an OntahiGraphProvider with reflectedOperationInvoker',\n );\n }\n\n return invoker;\n}\n\nexport function useHasReflectedOperationInvoker() {\n return useContext(ReflectedOperationInvokerContext) !== null;\n}\n\nexport function useReflectedOperationSupport() {\n const invoker = useContext(ReflectedOperationInvokerContext);\n\n return useCallback(\n (operation: ReflectedOperationDescriptor) =>\n Boolean(invoker && (invoker.canInvokeOperation?.(operation) ?? true)),\n [invoker],\n );\n}\n\nexport function useReflectedOperationExecutionAffordance(\n operation: ReflectedOperationDescriptor,\n): OperationExecutionAffordance | undefined {\n const invoker = useContext(ReflectedOperationInvokerContext);\n\n return invoker?.getOperationExecutionAffordance?.(operation);\n}\n\nexport type { GraphClientCache };\n"]}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/graph/context.tsx"],"names":[],"mappings":"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","sourcesContent":["'use client';\n\nimport {\n createGraphClientCache,\n type ClientApplication,\n type GraphClientCache,\n type OperationExecutionAffordance,\n type ReflectedEntityDataReader,\n type ReflectedRelatedEntityDataReader,\n type ReflectedOperationDescriptor,\n type ReflectedOperationInvoker,\n} from '@ontahi/core/data-graph';\nimport { anonymousExecutionIdentity, type ExecutionIdentity } from '@ontahi/core/runtime/identity';\nimport {\n subscribeRuntimeProtocolExecutions,\n type RuntimeTransport,\n} from '@ontahi/core/runtime/protocol';\nimport { QueryClientContext } from '@tanstack/react-query';\nimport {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useState,\n useSyncExternalStore,\n type ReactNode,\n} from 'react';\n\nimport type { AnyOperationBridgeAdapter } from '../actions/index.js';\n\nimport type { ReactGraphExecutor } from './executor.js';\nimport { createFetchGraphClient, type OntahiGraphClient } from './fetch-graph-client.js';\nimport {\n createReflectedOperationInvoker,\n type ReflectedGraphOperationLike,\n} from './reflected-operation-invoker.js';\nimport { invalidateSemanticGraphReads } from './semantic-invalidation.js';\n\nconst noReflectedGraphOperations: readonly ReflectedGraphOperationLike[] = [];\n\nconst GraphRuntimeContext = createContext<unknown | null>(null);\nconst ExecutionIdentityContext = createContext<ExecutionIdentity>(anonymousExecutionIdentity);\nconst GraphExecutorContext = createContext<ReactGraphExecutor<any, any> | null>(null);\nconst GraphClientCacheContext = createContext<GraphClientCache | null>(null);\nconst RuntimeTransportContext = createContext<RuntimeTransport | null>(null);\nconst OperationBridgeAdaptersContext = createContext<Map<string, AnyOperationBridgeAdapter> | null>(\n null,\n);\nconst ReflectedEntityDataReaderContext = createContext<ReflectedEntityDataReader | null>(null);\nconst ReflectedRelatedEntityDataReaderContext =\n createContext<ReflectedRelatedEntityDataReader | null>(null);\nconst ReflectedOperationInvokerContext = createContext<ReflectedOperationInvoker | null>(null);\n\nexport type OntahiClientContextValue = {\n readonly application?: ClientApplication;\n readonly clientCache: GraphClientCache;\n readonly identity: ExecutionIdentity;\n readonly runtimeTransport?: RuntimeTransport;\n};\n\nconst OntahiClientContext = createContext<OntahiClientContextValue | undefined>(undefined);\n\nexport type OntahiGraphProviderProps<\n TGraphRuntime = unknown,\n TReadOptions = unknown,\n TCommandOptions = TReadOptions,\n> = {\n children: ReactNode;\n runtime: TGraphRuntime;\n graphExecutor?: ReactGraphExecutor<TReadOptions, TCommandOptions>;\n runtimeTransport?: RuntimeTransport;\n client?: OntahiGraphClient<TReadOptions, TCommandOptions> | false;\n operationBridgeAdapters?: AnyOperationBridgeAdapter[];\n reflectedEntityDataReader?: ReflectedEntityDataReader;\n reflectedRelatedEntityDataReader?: ReflectedRelatedEntityDataReader;\n reflectedOperationInvoker?: ReflectedOperationInvoker;\n reflectedGraphOperations?: readonly ReflectedGraphOperationLike[];\n clientCache?: GraphClientCache;\n identity?: ExecutionIdentity;\n};\n\nexport function OntahiGraphProvider<\n TGraphRuntime = unknown,\n TReadOptions = unknown,\n TCommandOptions = TReadOptions,\n>({\n children,\n runtime,\n graphExecutor,\n runtimeTransport,\n client,\n operationBridgeAdapters,\n reflectedEntityDataReader,\n reflectedRelatedEntityDataReader,\n reflectedOperationInvoker,\n reflectedGraphOperations = noReflectedGraphOperations,\n clientCache,\n identity = anonymousExecutionIdentity,\n}: OntahiGraphProviderProps<TGraphRuntime, TReadOptions, TCommandOptions>) {\n const [defaultGraphClient] = useState(() => createFetchGraphClient());\n const [defaultClientCache] = useState(() => createGraphClientCache());\n const graphClient = client === false ? undefined : (client ?? defaultGraphClient);\n const resolvedGraphExecutor = graphExecutor ?? graphClient?.graphExecutor;\n const resolvedRuntimeTransport = runtimeTransport ?? graphClient?.runtimeTransport;\n const resolvedOperationBridgeAdapters =\n operationBridgeAdapters ?? graphClient?.operationBridgeAdapters ?? [];\n const resolvedReflectedEntityDataReader =\n reflectedEntityDataReader ?? graphClient?.reflectedEntityDataReader;\n const resolvedReflectedRelatedEntityDataReader =\n reflectedRelatedEntityDataReader ?? graphClient?.reflectedRelatedEntityDataReader;\n const configuredReflectedOperationInvoker =\n reflectedOperationInvoker ?? graphClient?.reflectedOperationInvoker;\n const graphClientCache = clientCache ?? graphClient?.clientCache ?? defaultClientCache;\n const clientContext = useMemo<OntahiClientContextValue>(\n () => ({\n ...(graphClient?.application ? { application: graphClient.application } : {}),\n clientCache: graphClientCache,\n identity,\n ...(resolvedRuntimeTransport ? { runtimeTransport: resolvedRuntimeTransport } : {}),\n }),\n [graphClient?.application, graphClientCache, identity, resolvedRuntimeTransport],\n );\n const queryClient = useContext(QueryClientContext);\n const bridgeAdapterMap = useMemo(\n () => new Map(resolvedOperationBridgeAdapters.map(adapter => [adapter.name, adapter])),\n [resolvedOperationBridgeAdapters],\n );\n const resolvedReflectedOperationInvoker = useMemo(\n () =>\n reflectedGraphOperations.length > 0\n ? createReflectedOperationInvoker({\n fallback: configuredReflectedOperationInvoker,\n graphExecutor: resolvedGraphExecutor,\n graphOperations: reflectedGraphOperations,\n })\n : (configuredReflectedOperationInvoker ?? null),\n [configuredReflectedOperationInvoker, reflectedGraphOperations, resolvedGraphExecutor],\n );\n\n useEffect(() => {\n if (!resolvedRuntimeTransport || !queryClient) return;\n return subscribeRuntimeProtocolExecutions(resolvedRuntimeTransport, async ({ metadata }) => {\n await invalidateSemanticGraphReads(queryClient, metadata.committedMutations, {\n ...(metadata.mutationCommitId\n ? {\n causedBy: {\n kind: 'committed-mutations' as const,\n commitIds: [metadata.mutationCommitId],\n overflow: false,\n },\n }\n : {}),\n ...(resolvedRuntimeTransport.causality\n ? {\n associateRefreshes: resolvedRuntimeTransport.causality.associateGraphReadRefreshes,\n }\n : {}),\n });\n return true;\n });\n }, [queryClient, resolvedRuntimeTransport]);\n\n return (\n <OntahiClientContext.Provider value={clientContext}>\n <ExecutionIdentityContext.Provider value={identity}>\n <ReflectedOperationInvokerContext.Provider value={resolvedReflectedOperationInvoker}>\n <ReflectedRelatedEntityDataReaderContext.Provider\n value={resolvedReflectedRelatedEntityDataReader ?? null}\n >\n <ReflectedEntityDataReaderContext.Provider\n value={resolvedReflectedEntityDataReader ?? null}\n >\n <OperationBridgeAdaptersContext.Provider value={bridgeAdapterMap}>\n <RuntimeTransportContext.Provider value={resolvedRuntimeTransport ?? null}>\n <GraphClientCacheContext.Provider value={graphClientCache}>\n <GraphExecutorContext.Provider value={resolvedGraphExecutor ?? null}>\n <GraphRuntimeContext.Provider value={runtime}>\n {children}\n </GraphRuntimeContext.Provider>\n </GraphExecutorContext.Provider>\n </GraphClientCacheContext.Provider>\n </RuntimeTransportContext.Provider>\n </OperationBridgeAdaptersContext.Provider>\n </ReflectedEntityDataReaderContext.Provider>\n </ReflectedRelatedEntityDataReaderContext.Provider>\n </ReflectedOperationInvokerContext.Provider>\n </ExecutionIdentityContext.Provider>\n </OntahiClientContext.Provider>\n );\n}\n\nexport const useOntahiClientContext = () => useContext(OntahiClientContext);\n\nexport const useExecutionIdentity = () => useContext(ExecutionIdentityContext);\n\nexport function useGraphRuntime<TGraphRuntime = unknown>() {\n const runtime = useContext(GraphRuntimeContext);\n\n if (runtime === null) {\n throw new Error('useGraphRuntime must be used within an OntahiGraphProvider');\n }\n\n return runtime as TGraphRuntime;\n}\n\nexport function useGraphExecutor<TReadOptions = unknown, TCommandOptions = TReadOptions>() {\n const graphExecutor = useContext(GraphExecutorContext);\n\n if (graphExecutor === null) {\n throw new Error(\n 'useGraphExecutor must be used within an OntahiGraphProvider with graphExecutor',\n );\n }\n\n return graphExecutor as ReactGraphExecutor<TReadOptions, TCommandOptions>;\n}\n\nexport function useGraphExecutorCapability<\n TReadOptions = unknown,\n TCommandOptions = TReadOptions,\n>() {\n return (useContext(GraphExecutorContext) ?? undefined) as\n | ReactGraphExecutor<TReadOptions, TCommandOptions>\n | undefined;\n}\n\nexport const useRuntimeTransportCapability = () => useContext(RuntimeTransportContext) ?? undefined;\n\nexport function useRuntimeTransport() {\n const transport = useRuntimeTransportCapability();\n if (!transport) {\n throw new Error('useRuntimeTransport requires an OntahiGraphProvider with runtimeTransport');\n }\n return transport;\n}\n\nexport function useGraphClientCache() {\n const clientCache = useContext(GraphClientCacheContext);\n\n if (clientCache === null) {\n throw new Error('useGraphClientCache must be used within an OntahiGraphProvider');\n }\n\n return clientCache;\n}\n\nexport function useGraphClientCacheSnapshot() {\n const clientCache = useGraphClientCache();\n\n useGraphClientCacheVersion(clientCache);\n\n return clientCache.inspect();\n}\n\nexport const useGraphClientCacheVersion = (clientCache: GraphClientCache) =>\n useSyncExternalStore(\n clientCache.subscribe,\n () => clientCache.inspect().version,\n () => clientCache.inspect().version,\n );\n\nexport function useOperationBridgeAdapter(adapterName: string) {\n const adapters = useContext(OperationBridgeAdaptersContext);\n\n if (adapters === null) {\n throw new Error('useOperationBridgeAdapter must be used within an OntahiGraphProvider');\n }\n\n const adapter = adapters.get(adapterName);\n\n if (!adapter) {\n throw new Error(`No operation bridge adapter registered for \"${adapterName}\"`);\n }\n\n return adapter;\n}\n\nexport function useDefaultOperationBridgeAdapter() {\n const adapters = useContext(OperationBridgeAdaptersContext);\n\n if (adapters === null) {\n throw new Error('useDefaultOperationBridgeAdapter must be used within an OntahiGraphProvider');\n }\n\n const [adapter] = adapters.values();\n\n if (!adapter) {\n throw new Error('No operation bridge adapter registered.');\n }\n\n return adapter;\n}\n\nexport function useHasOperationBridgeRuntime() {\n const adapters = useContext(OperationBridgeAdaptersContext);\n return adapters !== null && adapters.size > 0;\n}\n\nexport function useReflectedEntityDataReader() {\n const reader = useContext(ReflectedEntityDataReaderContext);\n\n if (reader === null) {\n throw new Error(\n 'useReflectedEntityDataReader must be used within an OntahiGraphProvider with reflectedEntityDataReader',\n );\n }\n\n return reader;\n}\n\nexport function useHasReflectedEntityDataReader() {\n return useContext(ReflectedEntityDataReaderContext) !== null;\n}\n\nexport function useReflectedRelatedEntityDataReader() {\n const reader = useContext(ReflectedRelatedEntityDataReaderContext);\n\n if (reader === null) {\n throw new Error(\n 'useReflectedRelatedEntityDataReader must be used within an OntahiGraphProvider with reflectedRelatedEntityDataReader',\n );\n }\n\n return reader;\n}\n\nexport const useHasReflectedRelatedEntityDataReader = () =>\n useContext(ReflectedRelatedEntityDataReaderContext) !== null;\n\nexport function useReflectedOperationInvoker() {\n const invoker = useContext(ReflectedOperationInvokerContext);\n\n if (invoker === null) {\n throw new Error(\n 'useReflectedOperationInvoker must be used within an OntahiGraphProvider with reflectedOperationInvoker',\n );\n }\n\n return invoker;\n}\n\nexport function useHasReflectedOperationInvoker() {\n return useContext(ReflectedOperationInvokerContext) !== null;\n}\n\nexport function useReflectedOperationSupport() {\n const invoker = useContext(ReflectedOperationInvokerContext);\n\n return useCallback(\n (operation: ReflectedOperationDescriptor) =>\n Boolean(invoker && (invoker.canInvokeOperation?.(operation) ?? true)),\n [invoker],\n );\n}\n\nexport function useReflectedOperationExecutionAffordance(\n operation: ReflectedOperationDescriptor,\n): OperationExecutionAffordance | undefined {\n const invoker = useContext(ReflectedOperationInvokerContext);\n\n return invoker?.getOperationExecutionAffordance?.(operation);\n}\n\nexport type { GraphClientCache };\n"]}
@@ -1,14 +1,29 @@
1
- import type { GraphCommandSpec, GraphOperationDeclaration, GraphReadExpression, GraphReadIntent, GraphSchemaLike, InferGraphSchemaClientInput, QueryOrView, QuerySpec, ManyToManyRelationshipCommand, OrderedRelationshipCommand, RelationshipCommand, RelationshipCommandResult, EntityMutationCommand, EntityMutationDelta } from '@ontahi/core/data-graph';
1
+ import type { GraphCommandSpec, GraphOperationDeclaration, GraphReadExpression, GraphReadRequest, GraphReadIntent, GraphSchemaLike, InferGraphSchemaClientInput, QueryOrView, QuerySpec, ManyToManyRelationshipCommand, OrderedRelationshipCommand, RelationshipCommand, RelationshipCommandResult, EntityMutationCommand, EntityMutationDelta } from '@ontahi/core/data-graph';
2
+ import type { RuntimeProtocolExecutionMetadata, RuntimeProtocolGraphRefreshCause } from '@ontahi/core/runtime/protocol';
2
3
  import type { QueryKey, UseMutationOptions, UseQueryOptions } from '@tanstack/react-query';
4
+ export type GraphMutationExecution<TResult> = {
5
+ readonly value: TResult;
6
+ readonly metadata?: RuntimeProtocolExecutionMetadata;
7
+ };
3
8
  export interface ReactGraphExecutor<TReadOptions = unknown, TCommandOptions = TReadOptions> {
9
+ associateGraphReadRefreshes?(requests: readonly GraphReadRequest[], causedBy: RuntimeProtocolGraphRefreshCause): void;
4
10
  get<TParams, TResult>(read: QueryOrView<TParams, TResult>, params: TParams, options?: TReadOptions): Promise<TResult | null>;
5
11
  run<TParams, TResult>(read: QueryOrView<TParams, TResult>, params: TParams, options?: TReadOptions): Promise<TResult[]>;
12
+ /** Observe complete-current result snapshots for the same authored Query used by `run`. */
13
+ observe?<TParams, TResult>(read: QueryOrView<TParams, TResult>, params: TParams, options?: TReadOptions, lifecycle?: {
14
+ readonly signal?: AbortSignal;
15
+ }): AsyncIterable<TResult[]>;
6
16
  count<TParams, TResult>(read: QueryOrView<TParams, TResult>, params: TParams, options?: TReadOptions): Promise<number>;
7
17
  runCommand<TResult = void>(command: GraphCommandSpec<any, any, TResult>, options?: TCommandOptions): Promise<TResult>;
18
+ runCommandExecution?<TResult = void>(command: GraphCommandSpec<any, any, TResult>, options?: TCommandOptions): Promise<GraphMutationExecution<TResult>>;
8
19
  runRelationshipCommand?(command: RelationshipCommand, options?: TCommandOptions): Promise<RelationshipCommandResult>;
20
+ runRelationshipCommandExecution?(command: RelationshipCommand, options?: TCommandOptions): Promise<GraphMutationExecution<RelationshipCommandResult>>;
9
21
  runManyToManyRelationshipCommand?(command: ManyToManyRelationshipCommand, options?: TCommandOptions): Promise<RelationshipCommandResult>;
22
+ runManyToManyRelationshipCommandExecution?(command: ManyToManyRelationshipCommand, options?: TCommandOptions): Promise<GraphMutationExecution<RelationshipCommandResult>>;
10
23
  runOrderedRelationshipCommand?(command: OrderedRelationshipCommand, options?: TCommandOptions): Promise<RelationshipCommandResult>;
24
+ runOrderedRelationshipCommandExecution?(command: OrderedRelationshipCommand, options?: TCommandOptions): Promise<GraphMutationExecution<RelationshipCommandResult>>;
11
25
  runEntityMutationCommand?(command: EntityMutationCommand, options?: TCommandOptions): Promise<EntityMutationDelta>;
26
+ runEntityMutationCommandExecution?(command: EntityMutationCommand, options?: TCommandOptions): Promise<GraphMutationExecution<EntityMutationDelta>>;
12
27
  }
13
28
  export type BuildableRead<TResult> = {
14
29
  build: () => QuerySpec<any, TResult>;
@@ -22,6 +37,8 @@ type GraphReadIntentData<TRead, TIntent extends GraphReadIntent> = TIntent exten
22
37
  export type GraphQueryData<TRead, TMode extends GraphQueryMode = 'run'> = TRead extends GraphReadExpression<any, infer TIntent, any> ? GraphReadIntentData<TRead, TIntent> : TMode extends 'get' ? ReadResult<TRead> | null : TMode extends 'run' ? ReadResult<TRead>[] : TMode extends 'count' ? number : boolean;
23
38
  export type GraphQueryOptions<TRead, TMode extends GraphQueryMode = 'run', TReadOptions = unknown> = Omit<UseQueryOptions<GraphQueryData<TRead, TMode>, Error, GraphQueryData<TRead, TMode>, QueryKey>, 'queryKey' | 'queryFn'> & {
24
39
  mode?: TRead extends GraphReadExpression<any, any, any> ? never : TMode;
40
+ /** Keep a many-result Query current until the hook unmounts or its identity changes. */
41
+ observation?: TRead extends GraphReadExpression<any, any, any> ? never : TMode extends 'run' ? 'live' : never;
25
42
  params?: ReadParams<TRead>;
26
43
  queryKey?: QueryKey;
27
44
  runtimeOptions?: TReadOptions;
@@ -1 +1 @@
1
- {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/graph/executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/graph/executor.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/graph/executor.ts"],"names":[],"mappings":"","sourcesContent":["import type {\n GraphCommandSpec,\n GraphOperationDeclaration,\n GraphReadExpression,\n GraphReadIntent,\n GraphSchemaLike,\n InferGraphSchemaClientInput,\n QueryOrView,\n QuerySpec,\n ManyToManyRelationshipCommand,\n OrderedRelationshipCommand,\n RelationshipCommand,\n RelationshipCommandResult,\n EntityMutationCommand,\n EntityMutationDelta,\n} from '@ontahi/core/data-graph';\nimport type { QueryKey, UseMutationOptions, UseQueryOptions } from '@tanstack/react-query';\n\nexport interface ReactGraphExecutor<TReadOptions = unknown, TCommandOptions = TReadOptions> {\n get<TParams, TResult>(\n read: QueryOrView<TParams, TResult>,\n params: TParams,\n options?: TReadOptions,\n ): Promise<TResult | null>;\n run<TParams, TResult>(\n read: QueryOrView<TParams, TResult>,\n params: TParams,\n options?: TReadOptions,\n ): Promise<TResult[]>;\n count<TParams, TResult>(\n read: QueryOrView<TParams, TResult>,\n params: TParams,\n options?: TReadOptions,\n ): Promise<number>;\n runCommand<TResult = void>(\n command: GraphCommandSpec<any, any, TResult>,\n options?: TCommandOptions,\n ): Promise<TResult>;\n runRelationshipCommand?(\n command: RelationshipCommand,\n options?: TCommandOptions,\n ): Promise<RelationshipCommandResult>;\n runManyToManyRelationshipCommand?(\n command: ManyToManyRelationshipCommand,\n options?: TCommandOptions,\n ): Promise<RelationshipCommandResult>;\n runOrderedRelationshipCommand?(\n command: OrderedRelationshipCommand,\n options?: TCommandOptions,\n ): Promise<RelationshipCommandResult>;\n runEntityMutationCommand?(\n command: EntityMutationCommand,\n options?: TCommandOptions,\n ): Promise<EntityMutationDelta>;\n}\n\nexport type BuildableRead<TResult> = {\n build: () => QuerySpec<any, TResult>;\n};\n\ntype PlainGraphReadSource<TResult> = QueryOrView<any, TResult> | BuildableRead<TResult>;\n\nexport type GraphReadSource<TResult = unknown> =\n | PlainGraphReadSource<TResult>\n | GraphReadExpression<PlainGraphReadSource<TResult>, GraphReadIntent, TResult>;\n\nexport type ReadParams<TRead> =\n TRead extends GraphReadExpression<infer TSource, any, any>\n ? ReadParams<TSource>\n : TRead extends QueryOrView<infer TParams, any>\n ? TParams\n : undefined;\n\nexport type ReadResult<TRead> =\n TRead extends GraphReadExpression<any, any, infer TResult>\n ? TResult\n : TRead extends QueryOrView<any, infer TResult>\n ? TResult\n : TRead extends BuildableRead<infer TResult>\n ? TResult\n : never;\n\nexport type GraphQueryMode = 'get' | 'run' | 'count' | 'exists';\n\ntype GraphReadIntentData<TRead, TIntent extends GraphReadIntent> = TIntent extends 'count'\n ? number\n : TIntent extends 'exists'\n ? boolean\n : TIntent extends 'one'\n ? ReadResult<TRead>\n : ReadResult<TRead> | null;\n\nexport type GraphQueryData<TRead, TMode extends GraphQueryMode = 'run'> =\n TRead extends GraphReadExpression<any, infer TIntent, any>\n ? GraphReadIntentData<TRead, TIntent>\n : TMode extends 'get'\n ? ReadResult<TRead> | null\n : TMode extends 'run'\n ? ReadResult<TRead>[]\n : TMode extends 'count'\n ? number\n : boolean;\n\nexport type GraphQueryOptions<\n TRead,\n TMode extends GraphQueryMode = 'run',\n TReadOptions = unknown,\n> = Omit<\n UseQueryOptions<GraphQueryData<TRead, TMode>, Error, GraphQueryData<TRead, TMode>, QueryKey>,\n 'queryKey' | 'queryFn'\n> & {\n mode?: TRead extends GraphReadExpression<any, any, any> ? never : TMode;\n params?: ReadParams<TRead>;\n queryKey?: QueryKey;\n runtimeOptions?: TReadOptions;\n};\n\nexport type CommandLike<TResult> =\n | GraphCommandSpec<any, any, TResult>\n | {\n build: () => GraphCommandSpec<any, any, TResult>;\n };\n\nexport type GraphCommandBuilder<TVariables, TResult> = (\n variables: TVariables,\n) => CommandLike<TResult>;\n\nexport type GraphOperationLike<TVariables, TResult> = GraphOperationDeclaration<\n TVariables,\n CommandLike<TResult>\n> & {\n id: string;\n};\n\nexport type GraphOperationClientInput<TOperation> = TOperation extends {\n input: infer TSchema extends GraphSchemaLike;\n}\n ? InferGraphSchemaClientInput<TSchema>\n : TOperation extends GraphOperationDeclaration<infer TInput, any>\n ? TInput\n : never;\n\nexport type GraphOperationResult<TOperation> = TOperation extends {\n run: (...args: any[]) => CommandLike<infer TResult>;\n}\n ? TResult\n : never;\n\nexport type GraphCommandHookOptions<\n TResult,\n TVariables,\n TContext,\n TCommandOptions = unknown,\n> = Omit<UseMutationOptions<TResult, Error, TVariables, TContext>, 'mutationFn'> & {\n mutationKey?: QueryKey;\n runtimeOptions?: TCommandOptions;\n invalidateQueryKeys?: QueryKey[];\n};\n"]}
1
+ {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/graph/executor.ts"],"names":[],"mappings":"","sourcesContent":["import type {\n GraphCommandSpec,\n GraphOperationDeclaration,\n GraphReadExpression,\n GraphReadRequest,\n GraphReadIntent,\n GraphSchemaLike,\n InferGraphSchemaClientInput,\n QueryOrView,\n QuerySpec,\n ManyToManyRelationshipCommand,\n OrderedRelationshipCommand,\n RelationshipCommand,\n RelationshipCommandResult,\n EntityMutationCommand,\n EntityMutationDelta,\n} from '@ontahi/core/data-graph';\nimport type {\n RuntimeProtocolExecutionMetadata,\n RuntimeProtocolGraphRefreshCause,\n} from '@ontahi/core/runtime/protocol';\nimport type { QueryKey, UseMutationOptions, UseQueryOptions } from '@tanstack/react-query';\n\nexport type GraphMutationExecution<TResult> = {\n readonly value: TResult;\n readonly metadata?: RuntimeProtocolExecutionMetadata;\n};\n\nexport interface ReactGraphExecutor<TReadOptions = unknown, TCommandOptions = TReadOptions> {\n associateGraphReadRefreshes?(\n requests: readonly GraphReadRequest[],\n causedBy: RuntimeProtocolGraphRefreshCause,\n ): void;\n get<TParams, TResult>(\n read: QueryOrView<TParams, TResult>,\n params: TParams,\n options?: TReadOptions,\n ): Promise<TResult | null>;\n run<TParams, TResult>(\n read: QueryOrView<TParams, TResult>,\n params: TParams,\n options?: TReadOptions,\n ): Promise<TResult[]>;\n /** Observe complete-current result snapshots for the same authored Query used by `run`. */\n observe?<TParams, TResult>(\n read: QueryOrView<TParams, TResult>,\n params: TParams,\n options?: TReadOptions,\n lifecycle?: { readonly signal?: AbortSignal },\n ): AsyncIterable<TResult[]>;\n count<TParams, TResult>(\n read: QueryOrView<TParams, TResult>,\n params: TParams,\n options?: TReadOptions,\n ): Promise<number>;\n runCommand<TResult = void>(\n command: GraphCommandSpec<any, any, TResult>,\n options?: TCommandOptions,\n ): Promise<TResult>;\n runCommandExecution?<TResult = void>(\n command: GraphCommandSpec<any, any, TResult>,\n options?: TCommandOptions,\n ): Promise<GraphMutationExecution<TResult>>;\n runRelationshipCommand?(\n command: RelationshipCommand,\n options?: TCommandOptions,\n ): Promise<RelationshipCommandResult>;\n runRelationshipCommandExecution?(\n command: RelationshipCommand,\n options?: TCommandOptions,\n ): Promise<GraphMutationExecution<RelationshipCommandResult>>;\n runManyToManyRelationshipCommand?(\n command: ManyToManyRelationshipCommand,\n options?: TCommandOptions,\n ): Promise<RelationshipCommandResult>;\n runManyToManyRelationshipCommandExecution?(\n command: ManyToManyRelationshipCommand,\n options?: TCommandOptions,\n ): Promise<GraphMutationExecution<RelationshipCommandResult>>;\n runOrderedRelationshipCommand?(\n command: OrderedRelationshipCommand,\n options?: TCommandOptions,\n ): Promise<RelationshipCommandResult>;\n runOrderedRelationshipCommandExecution?(\n command: OrderedRelationshipCommand,\n options?: TCommandOptions,\n ): Promise<GraphMutationExecution<RelationshipCommandResult>>;\n runEntityMutationCommand?(\n command: EntityMutationCommand,\n options?: TCommandOptions,\n ): Promise<EntityMutationDelta>;\n runEntityMutationCommandExecution?(\n command: EntityMutationCommand,\n options?: TCommandOptions,\n ): Promise<GraphMutationExecution<EntityMutationDelta>>;\n}\n\nexport type BuildableRead<TResult> = {\n build: () => QuerySpec<any, TResult>;\n};\n\ntype PlainGraphReadSource<TResult> = QueryOrView<any, TResult> | BuildableRead<TResult>;\n\nexport type GraphReadSource<TResult = unknown> =\n | PlainGraphReadSource<TResult>\n | GraphReadExpression<PlainGraphReadSource<TResult>, GraphReadIntent, TResult>;\n\nexport type ReadParams<TRead> =\n TRead extends GraphReadExpression<infer TSource, any, any>\n ? ReadParams<TSource>\n : TRead extends QueryOrView<infer TParams, any>\n ? TParams\n : undefined;\n\nexport type ReadResult<TRead> =\n TRead extends GraphReadExpression<any, any, infer TResult>\n ? TResult\n : TRead extends QueryOrView<any, infer TResult>\n ? TResult\n : TRead extends BuildableRead<infer TResult>\n ? TResult\n : never;\n\nexport type GraphQueryMode = 'get' | 'run' | 'count' | 'exists';\n\ntype GraphReadIntentData<TRead, TIntent extends GraphReadIntent> = TIntent extends 'count'\n ? number\n : TIntent extends 'exists'\n ? boolean\n : TIntent extends 'one'\n ? ReadResult<TRead>\n : ReadResult<TRead> | null;\n\nexport type GraphQueryData<TRead, TMode extends GraphQueryMode = 'run'> =\n TRead extends GraphReadExpression<any, infer TIntent, any>\n ? GraphReadIntentData<TRead, TIntent>\n : TMode extends 'get'\n ? ReadResult<TRead> | null\n : TMode extends 'run'\n ? ReadResult<TRead>[]\n : TMode extends 'count'\n ? number\n : boolean;\n\nexport type GraphQueryOptions<\n TRead,\n TMode extends GraphQueryMode = 'run',\n TReadOptions = unknown,\n> = Omit<\n UseQueryOptions<GraphQueryData<TRead, TMode>, Error, GraphQueryData<TRead, TMode>, QueryKey>,\n 'queryKey' | 'queryFn'\n> & {\n mode?: TRead extends GraphReadExpression<any, any, any> ? never : TMode;\n /** Keep a many-result Query current until the hook unmounts or its identity changes. */\n observation?: TRead extends GraphReadExpression<any, any, any>\n ? never\n : TMode extends 'run'\n ? 'live'\n : never;\n params?: ReadParams<TRead>;\n queryKey?: QueryKey;\n runtimeOptions?: TReadOptions;\n};\n\nexport type CommandLike<TResult> =\n | GraphCommandSpec<any, any, TResult>\n | {\n build: () => GraphCommandSpec<any, any, TResult>;\n };\n\nexport type GraphCommandBuilder<TVariables, TResult> = (\n variables: TVariables,\n) => CommandLike<TResult>;\n\nexport type GraphOperationLike<TVariables, TResult> = GraphOperationDeclaration<\n TVariables,\n CommandLike<TResult>\n> & {\n id: string;\n};\n\nexport type GraphOperationClientInput<TOperation> = TOperation extends {\n input: infer TSchema extends GraphSchemaLike;\n}\n ? InferGraphSchemaClientInput<TSchema>\n : TOperation extends GraphOperationDeclaration<infer TInput, any>\n ? TInput\n : never;\n\nexport type GraphOperationResult<TOperation> = TOperation extends {\n run: (...args: any[]) => CommandLike<infer TResult>;\n}\n ? TResult\n : never;\n\nexport type GraphCommandHookOptions<\n TResult,\n TVariables,\n TContext,\n TCommandOptions = unknown,\n> = Omit<UseMutationOptions<TResult, Error, TVariables, TContext>, 'mutationFn'> & {\n mutationKey?: QueryKey;\n runtimeOptions?: TCommandOptions;\n invalidateQueryKeys?: QueryKey[];\n};\n"]}
@@ -1,4 +1,4 @@
1
- import type { GraphClientCache, ReflectedEntityDataReader, ReflectedRelatedEntityDataReader, ReflectedOperationInvoker, RemoteDataGraphError, RuntimeBoundDataGraphApi } from '@ontahi/core/data-graph';
1
+ import type { ClientApplication, GraphClientCache, ReflectedEntityDataReader, ReflectedRelatedEntityDataReader, ReflectedOperationInvoker, RemoteDataGraphError, RuntimeBoundDataGraphApi } from '@ontahi/core/data-graph';
2
2
  import type { RuntimeTransport } from '@ontahi/core/runtime/protocol';
3
3
  import { type AnyOperationBridgeAdapter, type FetchOperationBridgeOptions } from '../actions/index.js';
4
4
  import type { ReactGraphExecutor } from './executor.js';
@@ -13,6 +13,7 @@ export type OntahiGraphClient<TReadOptions = unknown, TCommandOptions = TReadOpt
13
13
  graph?: RuntimeBoundDataGraphApi<RemoteDataGraphError, TReadOptions, TCommandOptions, RemoteDataGraphError>;
14
14
  graphExecutor?: ReactGraphExecutor<TReadOptions, TCommandOptions>;
15
15
  clientCache?: GraphClientCache;
16
+ application?: ClientApplication;
16
17
  runtimeTransport?: RuntimeTransport<TReadOptions | TCommandOptions>;
17
18
  operationBridgeAdapters?: AnyOperationBridgeAdapter[];
18
19
  reflectedEntityDataReader?: ReflectedEntityDataReader;
@@ -1 +1 @@
1
- {"version":3,"file":"fetch-graph-client.d.ts","sourceRoot":"","sources":["../../src/graph/fetch-graph-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fetch-graph-client.d.ts","sourceRoot":"","sources":["../../src/graph/fetch-graph-client.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"fetch-graph-client.js","sourceRoot":"","sources":["../../src/graph/fetch-graph-client.ts"],"names":[],"mappings":"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","sourcesContent":["'use client';\n\nimport type {\n GraphClientCache,\n ReflectedEntityDataReader,\n ReflectedEntityDataResult,\n ReflectedRelatedEntityDataReader,\n ReflectedRelatedEntityDataQuery,\n ReflectedOperationInvoker,\n RemoteDataGraphError,\n RuntimeBoundDataGraphApi,\n} from '@ontahi/core/data-graph';\nimport { createGraphClientCache, createRuntimeBoundDataGraphApi } from '@ontahi/core/data-graph';\nimport type { RuntimeTransport } from '@ontahi/core/runtime/protocol';\n\nimport {\n createFetchOperationBridgeAdapter,\n createFetchReflectedOperationInvoker,\n type AnyOperationBridgeAdapter,\n type FetchOperationBridgeOptions,\n} from '../actions/index.js';\n\nimport type { ReactGraphExecutor } from './executor.js';\nimport type { FetchGraphReadExecutorOptions } from './fetch-graph-read-executor.js';\nimport { createFetchGraphReadCapability } from './fetch-graph-runtime.js';\nimport {\n createFetchRuntimeTransport,\n type FetchRuntimeTransportOptions,\n} from './fetch-runtime-transport.js';\n\nexport type FetchReflectedEntityDataReaderOptions = {\n endpoint?: string;\n fetch?: typeof globalThis.fetch;\n};\n\nexport type FetchReflectedRelatedEntityDataReaderOptions = FetchReflectedEntityDataReaderOptions;\n\nexport type OntahiGraphClient<TReadOptions = unknown, TCommandOptions = TReadOptions> = {\n graph?: RuntimeBoundDataGraphApi<\n RemoteDataGraphError,\n TReadOptions,\n TCommandOptions,\n RemoteDataGraphError\n >;\n graphExecutor?: ReactGraphExecutor<TReadOptions, TCommandOptions>;\n clientCache?: GraphClientCache;\n runtimeTransport?: RuntimeTransport<TReadOptions | TCommandOptions>;\n operationBridgeAdapters?: AnyOperationBridgeAdapter[];\n reflectedEntityDataReader?: ReflectedEntityDataReader;\n reflectedRelatedEntityDataReader?: ReflectedRelatedEntityDataReader;\n reflectedOperationInvoker?: ReflectedOperationInvoker;\n};\n\nexport type FetchGraphClient<TOptions = undefined> = OntahiGraphClient<TOptions, TOptions> & {\n graph: RuntimeBoundDataGraphApi<RemoteDataGraphError, TOptions, TOptions, RemoteDataGraphError>;\n graphExecutor: ReactGraphExecutor<TOptions, TOptions>;\n clientCache: GraphClientCache;\n};\n\nexport type FetchGraphClientCompatibilityOptions = {\n operation?: {\n endpoint?: string;\n mountPath?: string;\n };\n graphRead?: {\n endpoint?: string;\n };\n graphCommand?: {\n endpoint?: string;\n };\n};\n\nexport type FetchGraphClientOptions<TOptions = undefined> = {\n compatibility?: FetchGraphClientCompatibilityOptions;\n graphRead?: false | FetchGraphReadExecutorOptions<TOptions>;\n operations?: false | FetchOperationBridgeOptions<TOptions>;\n runtimeTransport?: false | FetchRuntimeTransportOptions<TOptions>;\n reflectedEntityData?: false | FetchReflectedEntityDataReaderOptions;\n reflectedRelatedEntityData?: false | FetchReflectedRelatedEntityDataReaderOptions;\n};\n\nconst DEFAULT_LEGACY_OPERATION_ENDPOINT = '/operations';\nconst DEFAULT_LEGACY_GRAPH_READ_ENDPOINT = '/graph/reads';\nconst DEFAULT_LEGACY_GRAPH_COMMAND_ENDPOINT = '/graph/commands';\nconst DEFAULT_REFLECTED_ENTITY_DATA_ENDPOINT = '/explorer/entities';\nconst DEFAULT_REFLECTED_RELATED_ENTITY_DATA_ENDPOINT = '/explorer/related-entities';\n\nconst postReflectedEntityDataQuery = async (\n endpoint: string,\n query:\n | ReflectedRelatedEntityDataQuery\n | Parameters<ReflectedEntityDataReader['readEntityData']>[0],\n fetchRequest: typeof globalThis.fetch,\n) => {\n const response = await fetchRequest(endpoint, {\n method: 'POST',\n headers: { 'content-type': 'application/json' },\n credentials: 'same-origin',\n body: JSON.stringify(query),\n });\n\n if (!response.ok) {\n throw new Error(`Reflected entity data request failed with status ${response.status}.`);\n }\n\n return response.json() as Promise<ReflectedEntityDataResult>;\n};\n\nexport const createFetchReflectedEntityDataReader = ({\n endpoint = DEFAULT_REFLECTED_ENTITY_DATA_ENDPOINT,\n fetch: fetchRequest = globalThis.fetch,\n}: FetchReflectedEntityDataReaderOptions = {}): ReflectedEntityDataReader => ({\n readEntityData: query => postReflectedEntityDataQuery(endpoint, query, fetchRequest),\n});\n\nexport const createFetchReflectedRelatedEntityDataReader = ({\n endpoint = DEFAULT_REFLECTED_RELATED_ENTITY_DATA_ENDPOINT,\n fetch: fetchRequest = globalThis.fetch,\n}: FetchReflectedRelatedEntityDataReaderOptions = {}): ReflectedRelatedEntityDataReader => ({\n readRelatedEntityData: query => postReflectedEntityDataQuery(endpoint, query, fetchRequest),\n});\n\nexport function createFetchGraphClient<TOptions = undefined>(): FetchGraphClient<TOptions>;\nexport function createFetchGraphClient<TOptions = undefined>(\n options: FetchGraphClientOptions<TOptions> & { graphRead: false },\n): OntahiGraphClient<TOptions, TOptions>;\nexport function createFetchGraphClient<TOptions = undefined>(\n options: FetchGraphClientOptions<TOptions> & {\n graphRead?: FetchGraphReadExecutorOptions<TOptions>;\n },\n): FetchGraphClient<TOptions>;\nexport function createFetchGraphClient<TOptions = undefined>({\n compatibility = {},\n graphRead = {},\n operations = {},\n runtimeTransport = {},\n reflectedEntityData = {},\n reflectedRelatedEntityData = {},\n}: FetchGraphClientOptions<TOptions> = {}): OntahiGraphClient<TOptions, TOptions> {\n const graphReadOptions =\n graphRead === false\n ? undefined\n : {\n ...graphRead,\n ...(compatibility.graphRead === undefined\n ? {}\n : {\n endpoint: compatibility.graphRead.endpoint ?? DEFAULT_LEGACY_GRAPH_READ_ENDPOINT,\n }),\n ...(compatibility.graphCommand === undefined\n ? {}\n : {\n commandEndpoint:\n compatibility.graphCommand.endpoint ?? DEFAULT_LEGACY_GRAPH_COMMAND_ENDPOINT,\n }),\n };\n const clientCache = graphReadOptions ? createGraphClientCache() : undefined;\n const operationOptions = (() => {\n if (operations === false) return undefined;\n if (compatibility.operation === undefined) return operations;\n const { endpoint: _endpoint, mountPath: _mountPath, ...sharedOptions } = operations;\n if (compatibility.operation.endpoint !== undefined) {\n return { ...sharedOptions, endpoint: compatibility.operation.endpoint };\n }\n if (compatibility.operation.mountPath !== undefined) {\n return { ...sharedOptions, mountPath: compatibility.operation.mountPath };\n }\n return { ...sharedOptions, endpoint: DEFAULT_LEGACY_OPERATION_ENDPOINT };\n })();\n const commonTransportRequired =\n (graphReadOptions !== undefined &&\n (graphReadOptions.endpoint === undefined ||\n graphReadOptions.commandEndpoint === undefined)) ||\n (operationOptions !== undefined &&\n operationOptions.endpoint === undefined &&\n operationOptions.mountPath === undefined);\n if (runtimeTransport === false && commonTransportRequired) {\n throw new TypeError(\n 'runtimeTransport cannot be disabled while a common Runtime Protocol family is enabled.',\n );\n }\n const requestId =\n runtimeTransport === false\n ? undefined\n : (runtimeTransport.requestId ?? graphReadOptions?.requestId ?? operationOptions?.requestId);\n const runtimeTransportOptions =\n runtimeTransport === false\n ? undefined\n : {\n ...(graphReadOptions?.fetch ? { fetch: graphReadOptions.fetch } : {}),\n ...(graphReadOptions?.requestInit ? { requestInit: graphReadOptions.requestInit } : {}),\n ...runtimeTransport,\n requestId,\n };\n const resolvedRuntimeTransport =\n runtimeTransportOptions === undefined\n ? undefined\n : createFetchRuntimeTransport<TOptions>(runtimeTransportOptions);\n const graphReadCapability =\n graphReadOptions === undefined\n ? undefined\n : createFetchGraphReadCapability({\n ...graphReadOptions,\n ...(runtimeTransportOptions?.fetch ? { fetch: runtimeTransportOptions.fetch } : {}),\n ...(runtimeTransportOptions?.requestInit\n ? { requestInit: runtimeTransportOptions.requestInit }\n : {}),\n ...(resolvedRuntimeTransport\n ? { runtimeTransport: resolvedRuntimeTransport, requestId }\n : {}),\n });\n const resolvedOperationOptions =\n operationOptions === undefined\n ? undefined\n : {\n ...operationOptions,\n ...(runtimeTransportOptions?.fetch ? { fetch: runtimeTransportOptions.fetch } : {}),\n ...(runtimeTransportOptions?.requestInit\n ? { requestInit: runtimeTransportOptions.requestInit }\n : {}),\n ...(resolvedRuntimeTransport\n ? { runtimeTransport: resolvedRuntimeTransport, requestId }\n : {}),\n };\n\n return {\n ...(graphReadCapability\n ? {\n graph: createRuntimeBoundDataGraphApi(() => graphReadCapability.runtime),\n graphExecutor: graphReadCapability.graphExecutor,\n clientCache: clientCache!,\n }\n : {}),\n ...(resolvedRuntimeTransport ? { runtimeTransport: resolvedRuntimeTransport } : {}),\n ...(resolvedOperationOptions\n ? {\n operationBridgeAdapters: [createFetchOperationBridgeAdapter(resolvedOperationOptions)],\n reflectedOperationInvoker: createFetchReflectedOperationInvoker(resolvedOperationOptions),\n }\n : {}),\n ...(reflectedEntityData === false\n ? {}\n : { reflectedEntityDataReader: createFetchReflectedEntityDataReader(reflectedEntityData) }),\n ...(reflectedRelatedEntityData === false\n ? {}\n : {\n reflectedRelatedEntityDataReader: createFetchReflectedRelatedEntityDataReader(\n reflectedRelatedEntityData,\n ),\n }),\n };\n}\n"]}
1
+ {"version":3,"file":"fetch-graph-client.js","sourceRoot":"","sources":["../../src/graph/fetch-graph-client.ts"],"names":[],"mappings":"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","sourcesContent":["'use client';\n\nimport type {\n ClientApplication,\n GraphClientCache,\n ReflectedEntityDataReader,\n ReflectedEntityDataResult,\n ReflectedRelatedEntityDataReader,\n ReflectedRelatedEntityDataQuery,\n ReflectedOperationInvoker,\n RemoteDataGraphError,\n RuntimeBoundDataGraphApi,\n} from '@ontahi/core/data-graph';\nimport { createGraphClientCache, createRuntimeBoundDataGraphApi } from '@ontahi/core/data-graph';\nimport type { RuntimeTransport } from '@ontahi/core/runtime/protocol';\n\nimport {\n createFetchOperationBridgeAdapter,\n createFetchReflectedOperationInvoker,\n type AnyOperationBridgeAdapter,\n type FetchOperationBridgeOptions,\n} from '../actions/index.js';\n\nimport type { ReactGraphExecutor } from './executor.js';\nimport type { FetchGraphReadExecutorOptions } from './fetch-graph-read-executor.js';\nimport { createFetchGraphReadCapability } from './fetch-graph-runtime.js';\nimport {\n createFetchRuntimeTransport,\n type FetchRuntimeTransportOptions,\n} from './fetch-runtime-transport.js';\n\nexport type FetchReflectedEntityDataReaderOptions = {\n endpoint?: string;\n fetch?: typeof globalThis.fetch;\n};\n\nexport type FetchReflectedRelatedEntityDataReaderOptions = FetchReflectedEntityDataReaderOptions;\n\nexport type OntahiGraphClient<TReadOptions = unknown, TCommandOptions = TReadOptions> = {\n graph?: RuntimeBoundDataGraphApi<\n RemoteDataGraphError,\n TReadOptions,\n TCommandOptions,\n RemoteDataGraphError\n >;\n graphExecutor?: ReactGraphExecutor<TReadOptions, TCommandOptions>;\n clientCache?: GraphClientCache;\n application?: ClientApplication;\n runtimeTransport?: RuntimeTransport<TReadOptions | TCommandOptions>;\n operationBridgeAdapters?: AnyOperationBridgeAdapter[];\n reflectedEntityDataReader?: ReflectedEntityDataReader;\n reflectedRelatedEntityDataReader?: ReflectedRelatedEntityDataReader;\n reflectedOperationInvoker?: ReflectedOperationInvoker;\n};\n\nexport type FetchGraphClient<TOptions = undefined> = OntahiGraphClient<TOptions, TOptions> & {\n graph: RuntimeBoundDataGraphApi<RemoteDataGraphError, TOptions, TOptions, RemoteDataGraphError>;\n graphExecutor: ReactGraphExecutor<TOptions, TOptions>;\n clientCache: GraphClientCache;\n};\n\nexport type FetchGraphClientCompatibilityOptions = {\n operation?: {\n endpoint?: string;\n mountPath?: string;\n };\n graphRead?: {\n endpoint?: string;\n };\n graphCommand?: {\n endpoint?: string;\n };\n};\n\nexport type FetchGraphClientOptions<TOptions = undefined> = {\n compatibility?: FetchGraphClientCompatibilityOptions;\n graphRead?: false | FetchGraphReadExecutorOptions<TOptions>;\n operations?: false | FetchOperationBridgeOptions<TOptions>;\n runtimeTransport?: false | FetchRuntimeTransportOptions<TOptions>;\n reflectedEntityData?: false | FetchReflectedEntityDataReaderOptions;\n reflectedRelatedEntityData?: false | FetchReflectedRelatedEntityDataReaderOptions;\n};\n\nconst DEFAULT_LEGACY_OPERATION_ENDPOINT = '/operations';\nconst DEFAULT_LEGACY_GRAPH_READ_ENDPOINT = '/graph/reads';\nconst DEFAULT_LEGACY_GRAPH_COMMAND_ENDPOINT = '/graph/commands';\nconst DEFAULT_REFLECTED_ENTITY_DATA_ENDPOINT = '/explorer/entities';\nconst DEFAULT_REFLECTED_RELATED_ENTITY_DATA_ENDPOINT = '/explorer/related-entities';\n\nconst postReflectedEntityDataQuery = async (\n endpoint: string,\n query:\n | ReflectedRelatedEntityDataQuery\n | Parameters<ReflectedEntityDataReader['readEntityData']>[0],\n fetchRequest: typeof globalThis.fetch,\n) => {\n const response = await fetchRequest(endpoint, {\n method: 'POST',\n headers: { 'content-type': 'application/json' },\n credentials: 'same-origin',\n body: JSON.stringify(query),\n });\n\n if (!response.ok) {\n throw new Error(`Reflected entity data request failed with status ${response.status}.`);\n }\n\n return response.json() as Promise<ReflectedEntityDataResult>;\n};\n\nexport const createFetchReflectedEntityDataReader = ({\n endpoint = DEFAULT_REFLECTED_ENTITY_DATA_ENDPOINT,\n fetch: fetchRequest = globalThis.fetch,\n}: FetchReflectedEntityDataReaderOptions = {}): ReflectedEntityDataReader => ({\n readEntityData: query => postReflectedEntityDataQuery(endpoint, query, fetchRequest),\n});\n\nexport const createFetchReflectedRelatedEntityDataReader = ({\n endpoint = DEFAULT_REFLECTED_RELATED_ENTITY_DATA_ENDPOINT,\n fetch: fetchRequest = globalThis.fetch,\n}: FetchReflectedRelatedEntityDataReaderOptions = {}): ReflectedRelatedEntityDataReader => ({\n readRelatedEntityData: query => postReflectedEntityDataQuery(endpoint, query, fetchRequest),\n});\n\nexport function createFetchGraphClient<TOptions = undefined>(): FetchGraphClient<TOptions>;\nexport function createFetchGraphClient<TOptions = undefined>(\n options: FetchGraphClientOptions<TOptions> & { graphRead: false },\n): OntahiGraphClient<TOptions, TOptions>;\nexport function createFetchGraphClient<TOptions = undefined>(\n options: FetchGraphClientOptions<TOptions> & {\n graphRead?: FetchGraphReadExecutorOptions<TOptions>;\n },\n): FetchGraphClient<TOptions>;\nexport function createFetchGraphClient<TOptions = undefined>({\n compatibility = {},\n graphRead = {},\n operations = {},\n runtimeTransport = {},\n reflectedEntityData = {},\n reflectedRelatedEntityData = {},\n}: FetchGraphClientOptions<TOptions> = {}): OntahiGraphClient<TOptions, TOptions> {\n const graphReadOptions =\n graphRead === false\n ? undefined\n : {\n ...graphRead,\n ...(compatibility.graphRead === undefined\n ? {}\n : {\n endpoint: compatibility.graphRead.endpoint ?? DEFAULT_LEGACY_GRAPH_READ_ENDPOINT,\n }),\n ...(compatibility.graphCommand === undefined\n ? {}\n : {\n commandEndpoint:\n compatibility.graphCommand.endpoint ?? DEFAULT_LEGACY_GRAPH_COMMAND_ENDPOINT,\n }),\n };\n const clientCache = graphReadOptions ? createGraphClientCache() : undefined;\n const operationOptions = (() => {\n if (operations === false) return undefined;\n if (compatibility.operation === undefined) return operations;\n const { endpoint: _endpoint, mountPath: _mountPath, ...sharedOptions } = operations;\n if (compatibility.operation.endpoint !== undefined) {\n return { ...sharedOptions, endpoint: compatibility.operation.endpoint };\n }\n if (compatibility.operation.mountPath !== undefined) {\n return { ...sharedOptions, mountPath: compatibility.operation.mountPath };\n }\n return { ...sharedOptions, endpoint: DEFAULT_LEGACY_OPERATION_ENDPOINT };\n })();\n const commonTransportRequired =\n (graphReadOptions !== undefined &&\n (graphReadOptions.endpoint === undefined ||\n graphReadOptions.commandEndpoint === undefined)) ||\n (operationOptions !== undefined &&\n operationOptions.endpoint === undefined &&\n operationOptions.mountPath === undefined);\n if (runtimeTransport === false && commonTransportRequired) {\n throw new TypeError(\n 'runtimeTransport cannot be disabled while a common Runtime Protocol family is enabled.',\n );\n }\n const requestId =\n runtimeTransport === false\n ? undefined\n : (runtimeTransport.requestId ?? graphReadOptions?.requestId ?? operationOptions?.requestId);\n const runtimeTransportOptions =\n runtimeTransport === false\n ? undefined\n : {\n ...(graphReadOptions?.fetch ? { fetch: graphReadOptions.fetch } : {}),\n ...(graphReadOptions?.requestInit ? { requestInit: graphReadOptions.requestInit } : {}),\n ...runtimeTransport,\n requestId,\n };\n const resolvedRuntimeTransport =\n runtimeTransportOptions === undefined\n ? undefined\n : createFetchRuntimeTransport<TOptions>(runtimeTransportOptions);\n const graphReadCapability =\n graphReadOptions === undefined\n ? undefined\n : createFetchGraphReadCapability({\n ...graphReadOptions,\n ...(runtimeTransportOptions?.fetch ? { fetch: runtimeTransportOptions.fetch } : {}),\n ...(runtimeTransportOptions?.requestInit\n ? { requestInit: runtimeTransportOptions.requestInit }\n : {}),\n ...(resolvedRuntimeTransport\n ? { runtimeTransport: resolvedRuntimeTransport, requestId }\n : {}),\n });\n const resolvedOperationOptions =\n operationOptions === undefined\n ? undefined\n : {\n ...operationOptions,\n ...(runtimeTransportOptions?.fetch ? { fetch: runtimeTransportOptions.fetch } : {}),\n ...(runtimeTransportOptions?.requestInit\n ? { requestInit: runtimeTransportOptions.requestInit }\n : {}),\n ...(resolvedRuntimeTransport\n ? { runtimeTransport: resolvedRuntimeTransport, requestId }\n : {}),\n };\n\n return {\n ...(graphReadCapability\n ? {\n graph: createRuntimeBoundDataGraphApi(() => graphReadCapability.runtime),\n graphExecutor: graphReadCapability.graphExecutor,\n clientCache: clientCache!,\n }\n : {}),\n ...(resolvedRuntimeTransport ? { runtimeTransport: resolvedRuntimeTransport } : {}),\n ...(resolvedOperationOptions\n ? {\n operationBridgeAdapters: [createFetchOperationBridgeAdapter(resolvedOperationOptions)],\n reflectedOperationInvoker: createFetchReflectedOperationInvoker(resolvedOperationOptions),\n }\n : {}),\n ...(reflectedEntityData === false\n ? {}\n : { reflectedEntityDataReader: createFetchReflectedEntityDataReader(reflectedEntityData) }),\n ...(reflectedRelatedEntityData === false\n ? {}\n : {\n reflectedRelatedEntityDataReader: createFetchReflectedRelatedEntityDataReader(\n reflectedRelatedEntityData,\n ),\n }),\n };\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"fetch-graph-runtime.d.ts","sourceRoot":"","sources":["../../src/graph/fetch-graph-runtime.ts"],"names":[],"mappings":"AAEA,OAAO,EAKL,KAAK,yBAAyB,EAC9B,KAAK,2BAA2B,EAChC,KAAK,qCAAqC,EAC1C,KAAK,oBAAoB,EAIzB,KAAK,6CAA6C,EAClD,KAAK,0CAA0C,EAC/C,KAAK,mCAAmC,EACzC,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAEL,KAAK,gBAAgB,EAEtB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAGxD,MAAM,MAAM,6BAA6B,CAAC,QAAQ,GAAG,SAAS,IAAI;IAChE,mGAAmG;IACnG,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sGAAsG;IACtG,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,QAAQ,KAAK,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAC;IAC3E,gBAAgB,CAAC,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAC;CAC/C,CAAC;AAEF,MAAM,MAAM,iBAAiB,CAAC,QAAQ,GAAG,SAAS,IAAI,yBAAyB,CAC7E,oBAAoB,EACpB,QAAQ,EACR,QAAQ,EACR,oBAAoB,CACrB,GACC,2BAA2B,CAAC,oBAAoB,EAAE,QAAQ,CAAC,CAAC;AAC9D,MAAM,MAAM,wBAAwB,CAAC,QAAQ,GAAG,SAAS,IAAI,mCAAmC,CAC9F,oBAAoB,EACpB,QAAQ,CACT,GACC,6CAA6C,CAAC,oBAAoB,EAAE,QAAQ,CAAC,GAC7E,0CAA0C,CAAC,oBAAoB,EAAE,QAAQ,CAAC,CAAC;AAC7E,MAAM,MAAM,0BAA0B,CAAC,QAAQ,GAAG,SAAS,IACzD,qCAAqC,CAAC,oBAAoB,EAAE,QAAQ,CAAC,CAAC;AAExE,MAAM,MAAM,wBAAwB,CAAC,QAAQ,GAAG,SAAS,IAAI;IAC3D,OAAO,EAAE,iBAAiB,CAAC,QAAQ,CAAC,GAClC,wBAAwB,CAAC,QAAQ,CAAC,GAClC,0BAA0B,CAAC,QAAQ,CAAC,CAAC;IACvC,aAAa,EAAE,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;CACvD,CAAC;AAEF,eAAO,MAAM,8BAA8B,GAAI,QAAQ,GAAG,SAAS,EAAE,gGAOlE,6BAA6B,CAAC,QAAQ,CAAM,KAAG,wBAAwB,CAAC,QAAQ,CAoGlF,CAAC"}
1
+ {"version":3,"file":"fetch-graph-runtime.d.ts","sourceRoot":"","sources":["../../src/graph/fetch-graph-runtime.ts"],"names":[],"mappings":"AAGA,OAAO,EAKL,KAAK,yBAAyB,EAC9B,KAAK,2BAA2B,EAEhC,KAAK,qCAAqC,EAC1C,KAAK,oBAAoB,EAIzB,KAAK,6CAA6C,EAGlD,KAAK,0CAA0C,EAC/C,KAAK,mCAAmC,EAEzC,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAIL,KAAK,gBAAgB,EAEtB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAGxD,MAAM,MAAM,6BAA6B,CAAC,QAAQ,GAAG,SAAS,IAAI;IAChE,mGAAmG;IACnG,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sGAAsG;IACtG,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,QAAQ,KAAK,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAC;IAC3E,gBAAgB,CAAC,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAC;CAC/C,CAAC;AAEF,MAAM,MAAM,iBAAiB,CAAC,QAAQ,GAAG,SAAS,IAAI,yBAAyB,CAC7E,oBAAoB,EACpB,QAAQ,EACR,QAAQ,EACR,oBAAoB,CACrB,GACC,2BAA2B,CAAC,oBAAoB,EAAE,QAAQ,CAAC,CAAC;AAC9D,MAAM,MAAM,wBAAwB,CAAC,QAAQ,GAAG,SAAS,IAAI,mCAAmC,CAC9F,oBAAoB,EACpB,QAAQ,CACT,GACC,6CAA6C,CAAC,oBAAoB,EAAE,QAAQ,CAAC,GAC7E,0CAA0C,CAAC,oBAAoB,EAAE,QAAQ,CAAC,CAAC;AAC7E,MAAM,MAAM,0BAA0B,CAAC,QAAQ,GAAG,SAAS,IACzD,qCAAqC,CAAC,oBAAoB,EAAE,QAAQ,CAAC,CAAC;AAExE,MAAM,MAAM,wBAAwB,CAAC,QAAQ,GAAG,SAAS,IAAI;IAC3D,OAAO,EAAE,iBAAiB,CAAC,QAAQ,CAAC,GAClC,wBAAwB,CAAC,QAAQ,CAAC,GAClC,0BAA0B,CAAC,QAAQ,CAAC,CAAC;IACvC,aAAa,EAAE,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;CACvD,CAAC;AAEF,eAAO,MAAM,8BAA8B,GAAI,QAAQ,GAAG,SAAS,EAAE,gGAOlE,6BAA6B,CAAC,QAAQ,CAAM,KAAG,wBAAwB,CAAC,QAAQ,CAgLlF,CAAC"}
@@ -1,7 +1,8 @@
1
1
  'use client';
2
+ import { Stream } from '@ontahi/core/computation/stream';
2
3
  import { createRemoteDataGraphRuntime, isGraphCommandRejection, isGraphCommandProtocolError, isGraphReadProtocolError, } from '@ontahi/core/data-graph';
3
4
  import { runBrowserEffect } from '@ontahi/core/runtime/browser';
4
- import { createRuntimeProtocolExchange, } from '@ontahi/core/runtime/protocol';
5
+ import { createRuntimeProtocolExchange, createRuntimeProtocolExecutionExchange, } from '@ontahi/core/runtime/protocol';
5
6
  import { createFetchRuntimeTransport } from './fetch-runtime-transport.js';
6
7
  export const createFetchGraphReadCapability = ({ endpoint, commandEndpoint, fetch: fetchRequest = globalThis.fetch, requestId, requestInit, runtimeTransport, } = {}) => {
7
8
  const legacyReadTransport = async (request, options) => {
@@ -54,6 +55,13 @@ export const createFetchGraphReadCapability = ({ endpoint, commandEndpoint, fetc
54
55
  createFetchRuntimeTransport({ fetch: fetchRequest, requestInit }),
55
56
  requestId,
56
57
  });
58
+ const executionExchange = endpoint && commandEndpoint
59
+ ? undefined
60
+ : createRuntimeProtocolExecutionExchange({
61
+ transport: runtimeTransport ??
62
+ createFetchRuntimeTransport({ fetch: fetchRequest, requestInit }),
63
+ requestId,
64
+ });
57
65
  const exchangeOptions = (options) => options === undefined ? undefined : { transportOptions: options };
58
66
  const transport = endpoint
59
67
  ? legacyReadTransport
@@ -72,17 +80,61 @@ export const createFetchGraphReadCapability = ({ endpoint, commandEndpoint, fetc
72
80
  commandTransport,
73
81
  ...(observeTransport ? { observeTransport } : {}),
74
82
  });
83
+ const runtimeCapturingMetadata = (capture) => createRemoteDataGraphRuntime({
84
+ transport,
85
+ commandTransport: commandEndpoint
86
+ ? legacyCommandTransport
87
+ : async (request, options) => {
88
+ const execution = await executionExchange({ family: 'graph.command', body: request }, exchangeOptions(options));
89
+ capture(execution.metadata);
90
+ return execution.body;
91
+ },
92
+ });
93
+ const executeRelationshipWithMetadata = async (command, options) => {
94
+ let metadata;
95
+ const executionRuntime = runtimeCapturingMetadata(value => {
96
+ metadata = value;
97
+ });
98
+ const value = await runBrowserEffect(command.kind === 'many-to-many-relationship-command'
99
+ ? executionRuntime.runManyToManyRelationshipCommand(command, options)
100
+ : command.kind === 'ordered-relationship-command'
101
+ ? executionRuntime.runOrderedRelationshipCommand(command, options)
102
+ : executionRuntime.runRelationshipCommand(command, options));
103
+ return { value, ...(metadata ? { metadata } : {}) };
104
+ };
105
+ const executeEntityMutationWithMetadata = async (command, options) => {
106
+ let metadata;
107
+ const executionRuntime = runtimeCapturingMetadata(value => {
108
+ metadata = value;
109
+ });
110
+ const value = await runBrowserEffect(executionRuntime.runEntityMutationCommand(command, options));
111
+ return { value, ...(metadata ? { metadata } : {}) };
112
+ };
75
113
  return {
76
114
  runtime,
77
115
  graphExecutor: {
116
+ ...(runtimeTransport?.causality
117
+ ? {
118
+ associateGraphReadRefreshes: runtimeTransport.causality.associateGraphReadRefreshes,
119
+ }
120
+ : {}),
78
121
  get: (read, params, options) => runBrowserEffect(runtime.get(read, params, options)),
79
122
  run: (read, params, options) => runBrowserEffect(runtime.run(read, params, options)),
123
+ observe: (read, params, options, lifecycle) => Stream.toAsyncIterable(lifecycle?.signal
124
+ ? runtime
125
+ .observe(read, params, options)
126
+ .pipe(Stream.interruptWhen(Stream.runHead(Stream.fromEventListener(lifecycle.signal, 'abort'))))
127
+ : runtime.observe(read, params, options)),
80
128
  count: (read, params, options) => runBrowserEffect(runtime.count(read, params, options)),
81
129
  runCommand: (command, options) => runBrowserEffect(runtime.runCommand(command, options)),
82
130
  runRelationshipCommand: (command, options) => runBrowserEffect(runtime.runRelationshipCommand(command, options)),
131
+ runRelationshipCommandExecution: executeRelationshipWithMetadata,
83
132
  runManyToManyRelationshipCommand: (command, options) => runBrowserEffect(runtime.runManyToManyRelationshipCommand(command, options)),
133
+ runManyToManyRelationshipCommandExecution: executeRelationshipWithMetadata,
84
134
  runOrderedRelationshipCommand: (command, options) => runBrowserEffect(runtime.runOrderedRelationshipCommand(command, options)),
135
+ runOrderedRelationshipCommandExecution: executeRelationshipWithMetadata,
85
136
  runEntityMutationCommand: (command, options) => runBrowserEffect(runtime.runEntityMutationCommand(command, options)),
137
+ runEntityMutationCommandExecution: executeEntityMutationWithMetadata,
86
138
  },
87
139
  };
88
140
  };
@@ -1 +1 @@
1
- {"version":3,"file":"fetch-graph-runtime.js","sourceRoot":"","sources":["../../src/graph/fetch-graph-runtime.ts"],"names":[],"mappings":"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","sourcesContent":["'use client';\n\nimport {\n createRemoteDataGraphRuntime,\n isGraphCommandRejection,\n isGraphCommandProtocolError,\n isGraphReadProtocolError,\n type DataGraphExecutionRuntime,\n type DataGraphObservationRuntime,\n type EntityMutationCommandExecutionRuntime,\n type RemoteDataGraphError,\n type RemoteGraphCommandTransport,\n type RemoteGraphObservationTransport,\n type RemoteGraphReadTransport,\n type ManyToManyRelationshipCommandExecutionRuntime,\n type OrderedRelationshipCommandExecutionRuntime,\n type RelationshipCommandExecutionRuntime,\n} from '@ontahi/core/data-graph';\nimport { runBrowserEffect } from '@ontahi/core/runtime/browser';\nimport {\n createRuntimeProtocolExchange,\n type RuntimeTransport,\n type RuntimeTransportRequestOptions,\n} from '@ontahi/core/runtime/protocol';\n\nimport type { ReactGraphExecutor } from './executor.js';\nimport { createFetchRuntimeTransport } from './fetch-runtime-transport.js';\n\nexport type FetchGraphReadExecutorOptions<TOptions = undefined> = {\n /** @deprecated Select the legacy Graph Read route through createFetchGraphClient compatibility. */\n endpoint?: string;\n /** @deprecated Select the legacy Graph Command route through createFetchGraphClient compatibility. */\n commandEndpoint?: string;\n fetch?: typeof globalThis.fetch;\n requestId?: () => string;\n requestInit?: (options?: TOptions) => Omit<RequestInit, 'body' | 'method'>;\n runtimeTransport?: RuntimeTransport<TOptions>;\n};\n\nexport type FetchGraphRuntime<TOptions = undefined> = DataGraphExecutionRuntime<\n RemoteDataGraphError,\n TOptions,\n TOptions,\n RemoteDataGraphError\n> &\n DataGraphObservationRuntime<RemoteDataGraphError, TOptions>;\nexport type FetchRelationshipRuntime<TOptions = undefined> = RelationshipCommandExecutionRuntime<\n RemoteDataGraphError,\n TOptions\n> &\n ManyToManyRelationshipCommandExecutionRuntime<RemoteDataGraphError, TOptions> &\n OrderedRelationshipCommandExecutionRuntime<RemoteDataGraphError, TOptions>;\nexport type FetchEntityMutationRuntime<TOptions = undefined> =\n EntityMutationCommandExecutionRuntime<RemoteDataGraphError, TOptions>;\n\nexport type FetchGraphReadCapability<TOptions = undefined> = {\n runtime: FetchGraphRuntime<TOptions> &\n FetchRelationshipRuntime<TOptions> &\n FetchEntityMutationRuntime<TOptions>;\n graphExecutor: ReactGraphExecutor<TOptions, TOptions>;\n};\n\nexport const createFetchGraphReadCapability = <TOptions = undefined>({\n endpoint,\n commandEndpoint,\n fetch: fetchRequest = globalThis.fetch,\n requestId,\n requestInit,\n runtimeTransport,\n}: FetchGraphReadExecutorOptions<TOptions> = {}): FetchGraphReadCapability<TOptions> => {\n const legacyReadTransport: RemoteGraphReadTransport<TOptions> = async (request, options) => {\n const init = requestInit?.(options) ?? {};\n const headers = new Headers(init.headers);\n if (!headers.has('content-type')) headers.set('content-type', 'application/json');\n\n const response = await fetchRequest(endpoint!, {\n ...init,\n method: 'POST',\n headers,\n credentials: init.credentials ?? 'same-origin',\n body: JSON.stringify(request),\n });\n\n try {\n const payload: unknown = await response.json();\n if (!response.ok && !isGraphReadProtocolError(payload)) {\n throw new Error(`Graph read request failed with status ${response.status}.`);\n }\n return payload;\n } catch {\n throw new Error(`Graph read request failed with status ${response.status}.`);\n }\n };\n const legacyCommandTransport: RemoteGraphCommandTransport<TOptions> = async (\n request,\n options,\n ) => {\n const init = requestInit?.(options) ?? {};\n const headers = new Headers(init.headers);\n if (!headers.has('content-type')) headers.set('content-type', 'application/json');\n const response = await fetchRequest(commandEndpoint!, {\n ...init,\n method: 'POST',\n headers,\n credentials: init.credentials ?? 'same-origin',\n body: JSON.stringify(request),\n });\n const payload: unknown = await response.json();\n if (\n !response.ok &&\n !isGraphCommandProtocolError(payload) &&\n !isGraphCommandRejection(payload)\n ) {\n throw new Error(`Graph Command request failed with status ${response.status}.`);\n }\n return payload;\n };\n const exchange =\n endpoint && commandEndpoint\n ? undefined\n : createRuntimeProtocolExchange({\n transport:\n runtimeTransport ??\n createFetchRuntimeTransport<TOptions>({ fetch: fetchRequest, requestInit }),\n requestId,\n });\n const exchangeOptions = (\n options: TOptions | undefined,\n ): RuntimeTransportRequestOptions<TOptions> | undefined =>\n options === undefined ? undefined : { transportOptions: options };\n const transport: RemoteGraphReadTransport<TOptions> = endpoint\n ? legacyReadTransport\n : (request, options) =>\n exchange!({ family: 'graph.read', body: request }, exchangeOptions(options));\n const commandTransport: RemoteGraphCommandTransport<TOptions> = commandEndpoint\n ? legacyCommandTransport\n : (request, options) =>\n exchange!({ family: 'graph.command', body: request }, exchangeOptions(options));\n const observeTransport: RemoteGraphObservationTransport<TOptions> | undefined =\n runtimeTransport?.graph\n ? (request, options, lifecycle) =>\n runtimeTransport.graph!.observe(request, {\n ...exchangeOptions(options),\n signal: lifecycle?.signal,\n })\n : undefined;\n const runtime = createRemoteDataGraphRuntime({\n transport,\n commandTransport,\n ...(observeTransport ? { observeTransport } : {}),\n });\n\n return {\n runtime,\n graphExecutor: {\n get: (read, params, options) => runBrowserEffect(runtime.get(read, params, options)),\n run: (read, params, options) => runBrowserEffect(runtime.run(read, params, options)),\n count: (read, params, options) => runBrowserEffect(runtime.count(read, params, options)),\n runCommand: (command, options) => runBrowserEffect(runtime.runCommand(command, options)),\n runRelationshipCommand: (command, options) =>\n runBrowserEffect(runtime.runRelationshipCommand(command, options)),\n runManyToManyRelationshipCommand: (command, options) =>\n runBrowserEffect(runtime.runManyToManyRelationshipCommand(command, options)),\n runOrderedRelationshipCommand: (command, options) =>\n runBrowserEffect(runtime.runOrderedRelationshipCommand(command, options)),\n runEntityMutationCommand: (command, options) =>\n runBrowserEffect(runtime.runEntityMutationCommand(command, options)),\n },\n };\n};\n"]}
1
+ {"version":3,"file":"fetch-graph-runtime.js","sourceRoot":"","sources":["../../src/graph/fetch-graph-runtime.ts"],"names":[],"mappings":"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","sourcesContent":["'use client';\n\nimport { Stream } from '@ontahi/core/computation/stream';\nimport {\n createRemoteDataGraphRuntime,\n isGraphCommandRejection,\n isGraphCommandProtocolError,\n isGraphReadProtocolError,\n type DataGraphExecutionRuntime,\n type DataGraphObservationRuntime,\n type EntityMutationCommand,\n type EntityMutationCommandExecutionRuntime,\n type RemoteDataGraphError,\n type RemoteGraphCommandTransport,\n type RemoteGraphObservationTransport,\n type RemoteGraphReadTransport,\n type ManyToManyRelationshipCommandExecutionRuntime,\n type ManyToManyRelationshipCommand,\n type OrderedRelationshipCommand,\n type OrderedRelationshipCommandExecutionRuntime,\n type RelationshipCommandExecutionRuntime,\n type RelationshipCommand,\n} from '@ontahi/core/data-graph';\nimport { runBrowserEffect } from '@ontahi/core/runtime/browser';\nimport {\n createRuntimeProtocolExchange,\n createRuntimeProtocolExecutionExchange,\n type RuntimeProtocolExecutionMetadata,\n type RuntimeTransport,\n type RuntimeTransportRequestOptions,\n} from '@ontahi/core/runtime/protocol';\n\nimport type { ReactGraphExecutor } from './executor.js';\nimport { createFetchRuntimeTransport } from './fetch-runtime-transport.js';\n\nexport type FetchGraphReadExecutorOptions<TOptions = undefined> = {\n /** @deprecated Select the legacy Graph Read route through createFetchGraphClient compatibility. */\n endpoint?: string;\n /** @deprecated Select the legacy Graph Command route through createFetchGraphClient compatibility. */\n commandEndpoint?: string;\n fetch?: typeof globalThis.fetch;\n requestId?: () => string;\n requestInit?: (options?: TOptions) => Omit<RequestInit, 'body' | 'method'>;\n runtimeTransport?: RuntimeTransport<TOptions>;\n};\n\nexport type FetchGraphRuntime<TOptions = undefined> = DataGraphExecutionRuntime<\n RemoteDataGraphError,\n TOptions,\n TOptions,\n RemoteDataGraphError\n> &\n DataGraphObservationRuntime<RemoteDataGraphError, TOptions>;\nexport type FetchRelationshipRuntime<TOptions = undefined> = RelationshipCommandExecutionRuntime<\n RemoteDataGraphError,\n TOptions\n> &\n ManyToManyRelationshipCommandExecutionRuntime<RemoteDataGraphError, TOptions> &\n OrderedRelationshipCommandExecutionRuntime<RemoteDataGraphError, TOptions>;\nexport type FetchEntityMutationRuntime<TOptions = undefined> =\n EntityMutationCommandExecutionRuntime<RemoteDataGraphError, TOptions>;\n\nexport type FetchGraphReadCapability<TOptions = undefined> = {\n runtime: FetchGraphRuntime<TOptions> &\n FetchRelationshipRuntime<TOptions> &\n FetchEntityMutationRuntime<TOptions>;\n graphExecutor: ReactGraphExecutor<TOptions, TOptions>;\n};\n\nexport const createFetchGraphReadCapability = <TOptions = undefined>({\n endpoint,\n commandEndpoint,\n fetch: fetchRequest = globalThis.fetch,\n requestId,\n requestInit,\n runtimeTransport,\n}: FetchGraphReadExecutorOptions<TOptions> = {}): FetchGraphReadCapability<TOptions> => {\n const legacyReadTransport: RemoteGraphReadTransport<TOptions> = async (request, options) => {\n const init = requestInit?.(options) ?? {};\n const headers = new Headers(init.headers);\n if (!headers.has('content-type')) headers.set('content-type', 'application/json');\n\n const response = await fetchRequest(endpoint!, {\n ...init,\n method: 'POST',\n headers,\n credentials: init.credentials ?? 'same-origin',\n body: JSON.stringify(request),\n });\n\n try {\n const payload: unknown = await response.json();\n if (!response.ok && !isGraphReadProtocolError(payload)) {\n throw new Error(`Graph read request failed with status ${response.status}.`);\n }\n return payload;\n } catch {\n throw new Error(`Graph read request failed with status ${response.status}.`);\n }\n };\n const legacyCommandTransport: RemoteGraphCommandTransport<TOptions> = async (\n request,\n options,\n ) => {\n const init = requestInit?.(options) ?? {};\n const headers = new Headers(init.headers);\n if (!headers.has('content-type')) headers.set('content-type', 'application/json');\n const response = await fetchRequest(commandEndpoint!, {\n ...init,\n method: 'POST',\n headers,\n credentials: init.credentials ?? 'same-origin',\n body: JSON.stringify(request),\n });\n const payload: unknown = await response.json();\n if (\n !response.ok &&\n !isGraphCommandProtocolError(payload) &&\n !isGraphCommandRejection(payload)\n ) {\n throw new Error(`Graph Command request failed with status ${response.status}.`);\n }\n return payload;\n };\n const exchange =\n endpoint && commandEndpoint\n ? undefined\n : createRuntimeProtocolExchange({\n transport:\n runtimeTransport ??\n createFetchRuntimeTransport<TOptions>({ fetch: fetchRequest, requestInit }),\n requestId,\n });\n const executionExchange =\n endpoint && commandEndpoint\n ? undefined\n : createRuntimeProtocolExecutionExchange({\n transport:\n runtimeTransport ??\n createFetchRuntimeTransport<TOptions>({ fetch: fetchRequest, requestInit }),\n requestId,\n });\n const exchangeOptions = (\n options: TOptions | undefined,\n ): RuntimeTransportRequestOptions<TOptions> | undefined =>\n options === undefined ? undefined : { transportOptions: options };\n const transport: RemoteGraphReadTransport<TOptions> = endpoint\n ? legacyReadTransport\n : (request, options) =>\n exchange!({ family: 'graph.read', body: request }, exchangeOptions(options));\n const commandTransport: RemoteGraphCommandTransport<TOptions> = commandEndpoint\n ? legacyCommandTransport\n : (request, options) =>\n exchange!({ family: 'graph.command', body: request }, exchangeOptions(options));\n const observeTransport: RemoteGraphObservationTransport<TOptions> | undefined =\n runtimeTransport?.graph\n ? (request, options, lifecycle) =>\n runtimeTransport.graph!.observe(request, {\n ...exchangeOptions(options),\n signal: lifecycle?.signal,\n })\n : undefined;\n const runtime = createRemoteDataGraphRuntime({\n transport,\n commandTransport,\n ...(observeTransport ? { observeTransport } : {}),\n });\n const runtimeCapturingMetadata = (\n capture: (metadata: RuntimeProtocolExecutionMetadata | undefined) => void,\n ) =>\n createRemoteDataGraphRuntime({\n transport,\n commandTransport: commandEndpoint\n ? legacyCommandTransport\n : async (request, options) => {\n const execution = await executionExchange!(\n { family: 'graph.command', body: request },\n exchangeOptions(options),\n );\n capture(execution.metadata);\n return execution.body;\n },\n });\n const executeRelationshipWithMetadata = async (\n command: RelationshipCommand | ManyToManyRelationshipCommand | OrderedRelationshipCommand,\n options?: TOptions,\n ) => {\n let metadata: RuntimeProtocolExecutionMetadata | undefined;\n const executionRuntime = runtimeCapturingMetadata(value => {\n metadata = value;\n });\n const value = await runBrowserEffect(\n command.kind === 'many-to-many-relationship-command'\n ? executionRuntime.runManyToManyRelationshipCommand(command, options)\n : command.kind === 'ordered-relationship-command'\n ? executionRuntime.runOrderedRelationshipCommand(command, options)\n : executionRuntime.runRelationshipCommand(command, options),\n );\n return { value, ...(metadata ? { metadata } : {}) };\n };\n const executeEntityMutationWithMetadata = async (\n command: EntityMutationCommand,\n options?: TOptions,\n ) => {\n let metadata: RuntimeProtocolExecutionMetadata | undefined;\n const executionRuntime = runtimeCapturingMetadata(value => {\n metadata = value;\n });\n const value = await runBrowserEffect(\n executionRuntime.runEntityMutationCommand(command, options),\n );\n return { value, ...(metadata ? { metadata } : {}) };\n };\n\n return {\n runtime,\n graphExecutor: {\n ...(runtimeTransport?.causality\n ? {\n associateGraphReadRefreshes: runtimeTransport.causality.associateGraphReadRefreshes,\n }\n : {}),\n get: (read, params, options) => runBrowserEffect(runtime.get(read, params, options)),\n run: (read, params, options) => runBrowserEffect(runtime.run(read, params, options)),\n observe: (read, params, options, lifecycle) =>\n Stream.toAsyncIterable(\n lifecycle?.signal\n ? runtime\n .observe(read, params, options)\n .pipe(\n Stream.interruptWhen(\n Stream.runHead(Stream.fromEventListener(lifecycle.signal, 'abort')),\n ),\n )\n : runtime.observe(read, params, options),\n ),\n count: (read, params, options) => runBrowserEffect(runtime.count(read, params, options)),\n runCommand: (command, options) => runBrowserEffect(runtime.runCommand(command, options)),\n runRelationshipCommand: (command, options) =>\n runBrowserEffect(runtime.runRelationshipCommand(command, options)),\n runRelationshipCommandExecution: executeRelationshipWithMetadata,\n runManyToManyRelationshipCommand: (command, options) =>\n runBrowserEffect(runtime.runManyToManyRelationshipCommand(command, options)),\n runManyToManyRelationshipCommandExecution: executeRelationshipWithMetadata,\n runOrderedRelationshipCommand: (command, options) =>\n runBrowserEffect(runtime.runOrderedRelationshipCommand(command, options)),\n runOrderedRelationshipCommandExecution: executeRelationshipWithMetadata,\n runEntityMutationCommand: (command, options) =>\n runBrowserEffect(runtime.runEntityMutationCommand(command, options)),\n runEntityMutationCommandExecution: executeEntityMutationWithMetadata,\n },\n };\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"fetch-runtime-transport.d.ts","sourceRoot":"","sources":["../../src/graph/fetch-runtime-transport.ts"],"names":[],"mappings":"AAGA,OAAO,EAML,KAAK,qCAAqC,EAE1C,KAAK,gBAAgB,EAEtB,MAAM,+BAA+B,CAAC;AAEvC,MAAM,MAAM,4BAA4B,CAAC,iBAAiB,GAAG,SAAS,IAAI;IACxE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,iBAAiB,KAAK,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAC;IACpF,gBAAgB,CAAC,EAAE;QACjB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,qBAAqB,CAAC,iBAAiB,GAAG,SAAS,IAC7D,gBAAgB,CAAC,iBAAiB,CAAC,GAAG;IACpC,QAAQ,CAAC,gBAAgB,EAAE,qCAAqC,CAAC;CAClE,CAAC;AA4BJ,eAAO,MAAM,2BAA2B,GAAI,iBAAiB,GAAG,SAAS,EAAE,+EAMxE,4BAA4B,CAAC,iBAAiB,CAAM,KAAG,qBAAqB,CAAC,iBAAiB,CAmEhG,CAAC"}
1
+ {"version":3,"file":"fetch-runtime-transport.d.ts","sourceRoot":"","sources":["../../src/graph/fetch-runtime-transport.ts"],"names":[],"mappings":"AAGA,OAAO,EAML,KAAK,qCAAqC,EAE1C,KAAK,gBAAgB,EAEtB,MAAM,+BAA+B,CAAC;AAEvC,MAAM,MAAM,4BAA4B,CAAC,iBAAiB,GAAG,SAAS,IAAI;IACxE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,iBAAiB,KAAK,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAC;IACpF,gBAAgB,CAAC,EAAE;QACjB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,qBAAqB,CAAC,iBAAiB,GAAG,SAAS,IAC7D,gBAAgB,CAAC,iBAAiB,CAAC,GAAG;IACpC,QAAQ,CAAC,gBAAgB,EAAE,qCAAqC,CAAC;CAClE,CAAC;AA4BJ,eAAO,MAAM,2BAA2B,GAAI,iBAAiB,GAAG,SAAS,EAAE,+EAMxE,4BAA4B,CAAC,iBAAiB,CAAM,KAAG,qBAAqB,CAAC,iBAAiB,CAoEhG,CAAC"}
@@ -78,6 +78,7 @@ export const createFetchRuntimeTransport = ({ endpoint = DEFAULT_RUNTIME_ENDPOIN
78
78
  }
79
79
  };
80
80
  return {
81
+ descriptor: { kind: 'fetch' },
81
82
  request,
82
83
  durableOperation: { observe },
83
84
  };
@@ -1 +1 @@
1
- {"version":3,"file":"fetch-runtime-transport.js","sourceRoot":"","sources":["../../src/graph/fetch-runtime-transport.ts"],"names":[],"mappings":"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","sourcesContent":["'use client';\n\nimport type { TaskRunIdentity, TaskSnapshot } from '@ontahi/core/runtime/contracts';\nimport {\n createRuntimeProtocolExchange,\n isRuntimeProtocolError,\n parseDurableOperationProtocolResponse,\n parseRuntimeProtocolResponse,\n toDurableOperationProtocolRequest,\n type DurableOperationObservationCapability,\n type RuntimeProtocolRequestEnvelope,\n type RuntimeTransport,\n type RuntimeTransportRequestOptions,\n} from '@ontahi/core/runtime/protocol';\n\nexport type FetchRuntimeTransportOptions<TTransportOptions = undefined> = {\n endpoint?: string;\n fetch?: typeof globalThis.fetch;\n requestId?: () => string;\n requestInit?: (options?: TTransportOptions) => Omit<RequestInit, 'body' | 'method'>;\n durableOperation?: {\n pollIntervalMs?: number;\n };\n};\n\nexport type FetchRuntimeTransport<TTransportOptions = undefined> =\n RuntimeTransport<TTransportOptions> & {\n readonly durableOperation: DurableOperationObservationCapability;\n };\n\nconst DEFAULT_RUNTIME_ENDPOINT = '/runtime';\nconst DEFAULT_POLL_INTERVAL_MS = 500;\nconst terminalTaskStatuses = new Set(['completed', 'failed', 'cancelled']);\n\nconst waitForNextInspection = (\n intervalMs: number,\n signal: AbortSignal | undefined,\n): Promise<boolean> => {\n if (signal?.aborted) return Promise.resolve(false);\n if (intervalMs === 0) return Promise.resolve(true);\n\n return new Promise(resolve => {\n let settled = false;\n const finish = (shouldContinue: boolean) => {\n if (settled) return;\n settled = true;\n clearTimeout(timeout);\n signal?.removeEventListener('abort', abort);\n resolve(shouldContinue);\n };\n const abort = () => finish(false);\n const timeout = setTimeout(() => finish(true), intervalMs);\n signal?.addEventListener('abort', abort, { once: true });\n });\n};\n\nexport const createFetchRuntimeTransport = <TTransportOptions = undefined>({\n endpoint = DEFAULT_RUNTIME_ENDPOINT,\n fetch: fetchRequest = globalThis.fetch,\n requestId,\n requestInit,\n durableOperation = {},\n}: FetchRuntimeTransportOptions<TTransportOptions> = {}): FetchRuntimeTransport<TTransportOptions> => {\n const pollIntervalMs = durableOperation.pollIntervalMs ?? DEFAULT_POLL_INTERVAL_MS;\n if (!Number.isFinite(pollIntervalMs) || pollIntervalMs < 0) {\n throw new TypeError('Durable Operation poll interval must be a non-negative finite number.');\n }\n\n const request = async (\n runtimeRequest: RuntimeProtocolRequestEnvelope,\n options?: RuntimeTransportRequestOptions<TTransportOptions>,\n ) => {\n const init = requestInit?.(options?.transportOptions) ?? {};\n const headers = new Headers(init.headers);\n if (!headers.has('content-type')) headers.set('content-type', 'application/json');\n const response = await fetchRequest(endpoint, {\n ...init,\n method: 'POST',\n headers,\n credentials: init.credentials ?? 'same-origin',\n body: JSON.stringify(runtimeRequest),\n ...(options?.signal ? { signal: options.signal } : {}),\n });\n const payload: unknown = await response.json().catch(() => null);\n const parsed = parseRuntimeProtocolResponse(payload, runtimeRequest);\n if (!parsed.success) throw new Error(parsed.error.error.message);\n if (!response.ok && !isRuntimeProtocolError(parsed.response)) {\n throw new Error(`Runtime Protocol request failed with status ${response.status}.`);\n }\n return parsed.response;\n };\n const exchange = createRuntimeProtocolExchange({\n transport: { request },\n requestId,\n });\n\n const observe: DurableOperationObservationCapability['observe'] = async function* <TResult>(\n run: TaskRunIdentity,\n options?: RuntimeTransportRequestOptions,\n ): AsyncIterable<TaskSnapshot<TResult>> {\n while (!options?.signal?.aborted) {\n const responseBody = await exchange(\n {\n family: 'durable.operation',\n body: toDurableOperationProtocolRequest(run),\n },\n options?.signal ? { signal: options.signal } : undefined,\n );\n\n const parsed = parseDurableOperationProtocolResponse(responseBody);\n if (!parsed.success) throw new Error(parsed.error.error.message);\n if (parsed.response.kind === 'protocol-error') {\n throw new Error(parsed.response.error.message);\n }\n\n const snapshot = parsed.response.snapshot as TaskSnapshot<TResult>;\n if (snapshot.taskId !== run.taskId || snapshot.runId !== run.runId) {\n throw new Error('Durable Operation snapshot identity does not match the observed run.');\n }\n yield snapshot;\n if (terminalTaskStatuses.has(snapshot.status)) return;\n if (!(await waitForNextInspection(pollIntervalMs, options?.signal))) return;\n }\n };\n\n return {\n request,\n durableOperation: { observe },\n };\n};\n"]}
1
+ {"version":3,"file":"fetch-runtime-transport.js","sourceRoot":"","sources":["../../src/graph/fetch-runtime-transport.ts"],"names":[],"mappings":"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","sourcesContent":["'use client';\n\nimport type { TaskRunIdentity, TaskSnapshot } from '@ontahi/core/runtime/contracts';\nimport {\n createRuntimeProtocolExchange,\n isRuntimeProtocolError,\n parseDurableOperationProtocolResponse,\n parseRuntimeProtocolResponse,\n toDurableOperationProtocolRequest,\n type DurableOperationObservationCapability,\n type RuntimeProtocolRequestEnvelope,\n type RuntimeTransport,\n type RuntimeTransportRequestOptions,\n} from '@ontahi/core/runtime/protocol';\n\nexport type FetchRuntimeTransportOptions<TTransportOptions = undefined> = {\n endpoint?: string;\n fetch?: typeof globalThis.fetch;\n requestId?: () => string;\n requestInit?: (options?: TTransportOptions) => Omit<RequestInit, 'body' | 'method'>;\n durableOperation?: {\n pollIntervalMs?: number;\n };\n};\n\nexport type FetchRuntimeTransport<TTransportOptions = undefined> =\n RuntimeTransport<TTransportOptions> & {\n readonly durableOperation: DurableOperationObservationCapability;\n };\n\nconst DEFAULT_RUNTIME_ENDPOINT = '/runtime';\nconst DEFAULT_POLL_INTERVAL_MS = 500;\nconst terminalTaskStatuses = new Set(['completed', 'failed', 'cancelled']);\n\nconst waitForNextInspection = (\n intervalMs: number,\n signal: AbortSignal | undefined,\n): Promise<boolean> => {\n if (signal?.aborted) return Promise.resolve(false);\n if (intervalMs === 0) return Promise.resolve(true);\n\n return new Promise(resolve => {\n let settled = false;\n const finish = (shouldContinue: boolean) => {\n if (settled) return;\n settled = true;\n clearTimeout(timeout);\n signal?.removeEventListener('abort', abort);\n resolve(shouldContinue);\n };\n const abort = () => finish(false);\n const timeout = setTimeout(() => finish(true), intervalMs);\n signal?.addEventListener('abort', abort, { once: true });\n });\n};\n\nexport const createFetchRuntimeTransport = <TTransportOptions = undefined>({\n endpoint = DEFAULT_RUNTIME_ENDPOINT,\n fetch: fetchRequest = globalThis.fetch,\n requestId,\n requestInit,\n durableOperation = {},\n}: FetchRuntimeTransportOptions<TTransportOptions> = {}): FetchRuntimeTransport<TTransportOptions> => {\n const pollIntervalMs = durableOperation.pollIntervalMs ?? DEFAULT_POLL_INTERVAL_MS;\n if (!Number.isFinite(pollIntervalMs) || pollIntervalMs < 0) {\n throw new TypeError('Durable Operation poll interval must be a non-negative finite number.');\n }\n\n const request = async (\n runtimeRequest: RuntimeProtocolRequestEnvelope,\n options?: RuntimeTransportRequestOptions<TTransportOptions>,\n ) => {\n const init = requestInit?.(options?.transportOptions) ?? {};\n const headers = new Headers(init.headers);\n if (!headers.has('content-type')) headers.set('content-type', 'application/json');\n const response = await fetchRequest(endpoint, {\n ...init,\n method: 'POST',\n headers,\n credentials: init.credentials ?? 'same-origin',\n body: JSON.stringify(runtimeRequest),\n ...(options?.signal ? { signal: options.signal } : {}),\n });\n const payload: unknown = await response.json().catch(() => null);\n const parsed = parseRuntimeProtocolResponse(payload, runtimeRequest);\n if (!parsed.success) throw new Error(parsed.error.error.message);\n if (!response.ok && !isRuntimeProtocolError(parsed.response)) {\n throw new Error(`Runtime Protocol request failed with status ${response.status}.`);\n }\n return parsed.response;\n };\n const exchange = createRuntimeProtocolExchange({\n transport: { request },\n requestId,\n });\n\n const observe: DurableOperationObservationCapability['observe'] = async function* <TResult>(\n run: TaskRunIdentity,\n options?: RuntimeTransportRequestOptions,\n ): AsyncIterable<TaskSnapshot<TResult>> {\n while (!options?.signal?.aborted) {\n const responseBody = await exchange(\n {\n family: 'durable.operation',\n body: toDurableOperationProtocolRequest(run),\n },\n options?.signal ? { signal: options.signal } : undefined,\n );\n\n const parsed = parseDurableOperationProtocolResponse(responseBody);\n if (!parsed.success) throw new Error(parsed.error.error.message);\n if (parsed.response.kind === 'protocol-error') {\n throw new Error(parsed.response.error.message);\n }\n\n const snapshot = parsed.response.snapshot as TaskSnapshot<TResult>;\n if (snapshot.taskId !== run.taskId || snapshot.runId !== run.runId) {\n throw new Error('Durable Operation snapshot identity does not match the observed run.');\n }\n yield snapshot;\n if (terminalTaskStatuses.has(snapshot.status)) return;\n if (!(await waitForNextInspection(pollIntervalMs, options?.signal))) return;\n }\n };\n\n return {\n descriptor: { kind: 'fetch' },\n request,\n durableOperation: { observe },\n };\n};\n"]}
@@ -1,8 +1,9 @@
1
- import { type ManyToManyRelationshipCommand, type OrderedRelationshipCommand, type RelationshipCommandResult } from '@ontahi/core/data-graph';
1
+ import { type EntityMutationCommand, type EntityMutationDelta, type ManyToManyRelationshipCommand, type OrderedRelationshipCommand, type RelationshipCommandResult } from '@ontahi/core/data-graph';
2
2
  import { type UseMutationResult, type UseQueryResult } from '@tanstack/react-query';
3
3
  import type { GraphCommandBuilder, GraphCommandHookOptions, GraphOperationLike, GraphOperationClientInput, GraphOperationResult, GraphQueryData, GraphQueryMode, GraphQueryOptions, GraphReadSource } from './executor.js';
4
4
  export declare function useGraphQuery<TRead extends GraphReadSource<any>, TMode extends GraphQueryMode = 'run', TReadOptions = unknown, TCommandOptions = TReadOptions>(read: TRead, options?: GraphQueryOptions<TRead, TMode, TReadOptions>): UseQueryResult<GraphQueryData<TRead, TMode>, Error>;
5
5
  export declare function useGraphCommand<TVariables, TResult = void, TContext = unknown, TReadOptions = unknown, TCommandOptions = TReadOptions>(buildCommand: GraphCommandBuilder<TVariables, TResult>, options?: GraphCommandHookOptions<TResult, TVariables, TContext, TCommandOptions>): UseMutationResult<TResult, Error, TVariables, TContext>;
6
+ export declare function useEntityMutationCommand<TVariables, TContext = unknown, TReadOptions = unknown, TCommandOptions = TReadOptions>(buildCommand: (variables: TVariables) => EntityMutationCommand, options?: GraphCommandHookOptions<EntityMutationDelta, TVariables, TContext, TCommandOptions>): UseMutationResult<EntityMutationDelta, Error, TVariables, TContext>;
6
7
  export declare function useManyToManyRelationshipCommand<TVariables, TContext = unknown, TReadOptions = unknown, TCommandOptions = TReadOptions>(buildCommand: (variables: TVariables) => ManyToManyRelationshipCommand, options?: GraphCommandHookOptions<RelationshipCommandResult, TVariables, TContext, TCommandOptions>): UseMutationResult<RelationshipCommandResult, Error, TVariables, TContext>;
7
8
  export declare function useOrderedRelationshipCommand<TVariables, TContext = unknown, TReadOptions = unknown, TCommandOptions = TReadOptions>(buildCommand: (variables: TVariables) => OrderedRelationshipCommand, options?: GraphCommandHookOptions<RelationshipCommandResult, TVariables, TContext, TCommandOptions>): UseMutationResult<RelationshipCommandResult, Error, TVariables, TContext>;
8
9
  export declare function useGraphOperation<TOperation extends GraphOperationLike<any, any>, TContext = unknown, TReadOptions = unknown, TCommandOptions = TReadOptions>(operation: TOperation, options?: GraphCommandHookOptions<GraphOperationResult<TOperation>, GraphOperationClientInput<TOperation>, TContext, TCommandOptions>): UseMutationResult<GraphOperationResult<TOperation>, Error, GraphOperationClientInput<TOperation>, TContext>;
@@ -1 +1 @@
1
- {"version":3,"file":"graph-hooks.d.ts","sourceRoot":"","sources":["../../src/graph/graph-hooks.ts"],"names":[],"mappings":"AAEA,OAAO,EASL,KAAK,6BAA6B,EAClC,KAAK,0BAA0B,EAC/B,KAAK,yBAAyB,EAG/B,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAKL,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACpB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,KAAK,EAGV,mBAAmB,EACnB,uBAAuB,EACvB,kBAAkB,EAClB,yBAAyB,EACzB,oBAAoB,EACpB,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,eAAe,EAGhB,MAAM,eAAe,CAAC;AAgEvB,wBAAgB,aAAa,CAC3B,KAAK,SAAS,eAAe,CAAC,GAAG,CAAC,EAClC,KAAK,SAAS,cAAc,GAAG,KAAK,EACpC,YAAY,GAAG,OAAO,EACtB,eAAe,GAAG,YAAY,EAE9B,IAAI,EAAE,KAAK,EACX,OAAO,CAAC,EAAE,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,YAAY,CAAC,GACtD,cAAc,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,CA4CrD;AAED,wBAAgB,eAAe,CAC7B,UAAU,EACV,OAAO,GAAG,IAAI,EACd,QAAQ,GAAG,OAAO,EAClB,YAAY,GAAG,OAAO,EACtB,eAAe,GAAG,YAAY,EAE9B,YAAY,EAAE,mBAAmB,CAAC,UAAU,EAAE,OAAO,CAAC,EACtD,OAAO,CAAC,EAAE,uBAAuB,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,eAAe,CAAC,GAChF,iBAAiB,CAAC,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,CAAC,CAoBzD;AAED,wBAAgB,gCAAgC,CAC9C,UAAU,EACV,QAAQ,GAAG,OAAO,EAClB,YAAY,GAAG,OAAO,EACtB,eAAe,GAAG,YAAY,EAE9B,YAAY,EAAE,CAAC,SAAS,EAAE,UAAU,KAAK,6BAA6B,EACtE,OAAO,CAAC,EAAE,uBAAuB,CAC/B,yBAAyB,EACzB,UAAU,EACV,QAAQ,EACR,eAAe,CAChB,GACA,iBAAiB,CAAC,yBAAyB,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,CAAC,CAuB3E;AAED,wBAAgB,6BAA6B,CAC3C,UAAU,EACV,QAAQ,GAAG,OAAO,EAClB,YAAY,GAAG,OAAO,EACtB,eAAe,GAAG,YAAY,EAE9B,YAAY,EAAE,CAAC,SAAS,EAAE,UAAU,KAAK,0BAA0B,EACnE,OAAO,CAAC,EAAE,uBAAuB,CAC/B,yBAAyB,EACzB,UAAU,EACV,QAAQ,EACR,eAAe,CAChB,GACA,iBAAiB,CAAC,yBAAyB,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,CAAC,CAuB3E;AAED,wBAAgB,iBAAiB,CAC/B,UAAU,SAAS,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,EAC/C,QAAQ,GAAG,OAAO,EAClB,YAAY,GAAG,OAAO,EACtB,eAAe,GAAG,YAAY,EAE9B,SAAS,EAAE,UAAU,EACrB,OAAO,CAAC,EAAE,uBAAuB,CAC/B,oBAAoB,CAAC,UAAU,CAAC,EAChC,yBAAyB,CAAC,UAAU,CAAC,EACrC,QAAQ,EACR,eAAe,CAChB,GACA,iBAAiB,CAClB,oBAAoB,CAAC,UAAU,CAAC,EAChC,KAAK,EACL,yBAAyB,CAAC,UAAU,CAAC,EACrC,QAAQ,CACT,CAiBA"}
1
+ {"version":3,"file":"graph-hooks.d.ts","sourceRoot":"","sources":["../../src/graph/graph-hooks.ts"],"names":[],"mappings":"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"}