@ontahi/react 1.0.0-alpha.8 → 1.0.0-alpha.9

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 (45) hide show
  1. package/README.md +35 -6
  2. package/dist/actions/fetch-operation-bridge-adapter.d.ts +0 -1
  3. package/dist/actions/fetch-operation-bridge-adapter.d.ts.map +1 -1
  4. package/dist/actions/fetch-operation-bridge-adapter.js +15 -19
  5. package/dist/actions/fetch-operation-bridge-adapter.js.map +1 -1
  6. package/dist/actions/operation-bridge-adapter.d.ts +0 -2
  7. package/dist/actions/operation-bridge-adapter.d.ts.map +1 -1
  8. package/dist/actions/operation-bridge-adapter.js +0 -1
  9. package/dist/actions/operation-bridge-adapter.js.map +1 -1
  10. package/dist/actions/operation-bridge.d.ts +1 -2
  11. package/dist/actions/operation-bridge.d.ts.map +1 -1
  12. package/dist/actions/operation-bridge.js.map +1 -1
  13. package/dist/graph/context.d.ts +8 -3
  14. package/dist/graph/context.d.ts.map +1 -1
  15. package/dist/graph/context.js +20 -2
  16. package/dist/graph/context.js.map +1 -1
  17. package/dist/graph/executor.d.ts +2 -1
  18. package/dist/graph/executor.d.ts.map +1 -1
  19. package/dist/graph/executor.js.map +1 -1
  20. package/dist/graph/fetch-graph-client.d.ts +9 -1
  21. package/dist/graph/fetch-graph-client.d.ts.map +1 -1
  22. package/dist/graph/fetch-graph-client.js +27 -15
  23. package/dist/graph/fetch-graph-client.js.map +1 -1
  24. package/dist/graph/fetch-graph-runtime.d.ts +3 -2
  25. package/dist/graph/fetch-graph-runtime.d.ts.map +1 -1
  26. package/dist/graph/fetch-graph-runtime.js +1 -0
  27. package/dist/graph/fetch-graph-runtime.js.map +1 -1
  28. package/dist/graph/fetch-runtime-transport.d.ts +15 -0
  29. package/dist/graph/fetch-runtime-transport.d.ts.map +1 -0
  30. package/dist/graph/fetch-runtime-transport.js +89 -0
  31. package/dist/graph/fetch-runtime-transport.js.map +1 -0
  32. package/dist/graph/index.d.ts +1 -0
  33. package/dist/graph/index.d.ts.map +1 -1
  34. package/dist/graph/index.js +1 -0
  35. package/dist/graph/index.js.map +1 -1
  36. package/dist/graph/operation-hooks.d.ts.map +1 -1
  37. package/dist/graph/operation-hooks.js +41 -21
  38. package/dist/graph/operation-hooks.js.map +1 -1
  39. package/dist/graph/operation-types.d.ts +1 -3
  40. package/dist/graph/operation-types.d.ts.map +1 -1
  41. package/dist/graph/operation-types.js.map +1 -1
  42. package/dist/graph/reflected-operation-invoker.d.ts.map +1 -1
  43. package/dist/graph/reflected-operation-invoker.js +41 -3
  44. package/dist/graph/reflected-operation-invoker.js.map +1 -1
  45. package/package.json +2 -2
package/README.md CHANGED
@@ -51,9 +51,10 @@ const first = useGraphQuery(openTodos.first());
51
51
  ```
52
52
 
53
53
  `OntahiGraphProvider` installs a conventional same-origin Fetch client by default. It connects
54
- graph reads to `/graph/reads`, Operations and task snapshots to `/operations`, and reflected
55
- Explorer data to `/explorer/entities`. These capabilities are lazy: declaring the provider does
56
- not issue a request until the application uses one of them.
54
+ graph reads to `/graph/reads`, Operations to `/operations`, Durable Operation observation to the
55
+ Runtime Protocol at `/runtime`, and reflected Explorer data to `/explorer/entities`. These
56
+ capabilities are lazy: declaring the provider does not issue a request until the application uses
57
+ one of them.
57
58
 
58
59
  Hosts can replace any individual capability through the existing provider props, install a
59
60
  configured client with `client={createFetchGraphClient(...)}`, or set `client={false}` for a fully
@@ -99,6 +100,34 @@ await completeVisible.executeAsync();
99
100
  The bound invocation always uses the latest render input. Passing the Operation declaration itself
100
101
  keeps the lower-level reusable mutation form, where each execution supplies its input.
101
102
 
102
- The Fetch executor sends only the canonical graph-read request. Credentials and other trusted
103
- request state remain in Fetch initialization and are never embedded in the Query AST. Remote
104
- Commands remain unsupported until the graph Command protocol and its policy boundary are defined.
103
+ Durable Operations use the same invocation bridge to start a run, then observe its lifecycle
104
+ through Runtime Transport:
105
+
106
+ ```tsx
107
+ const completeAll = useDurableOperation(TodoItem.domain.completeAll);
108
+
109
+ await completeAll.executeAsync();
110
+ // completeAll.status/progress/finalValue follow the accepted run.
111
+ ```
112
+
113
+ The hook consumes an asynchronous snapshot sequence and does not choose polling or push. The
114
+ conventional Fetch Runtime Transport implements that sequence with versioned
115
+ `durable.operation.inspect` requests and owns the polling cadence:
116
+
117
+ ```ts
118
+ const client = createFetchGraphClient({
119
+ runtimeTransport: {
120
+ endpoint: '/runtime/ontahi/runtime',
121
+ durableOperation: { pollIntervalMs: 750 },
122
+ },
123
+ });
124
+ ```
125
+
126
+ Hosts can replace `runtimeTransport` independently on `OntahiGraphProvider`; a future push-capable
127
+ transport can yield the same snapshots without changing the hook.
128
+
129
+ The Fetch executor sends only canonical graph-read and graph-Command requests. Credentials and
130
+ other trusted request state remain in Fetch initialization and are never embedded in a Query AST or
131
+ Command. The executor supports policy-bounded Relationship Commands and identity-scoped Entity
132
+ Mutation Commands; `useGraphExecutorCapability()` lets optional reflective UI discover whether the
133
+ host installed that execution surface without making it mandatory for read-only hosts.
@@ -3,7 +3,6 @@ import type * as OperationBridge from './operation-bridge.js';
3
3
  export type FetchOperationBridgeOptions = {
4
4
  mountPath?: string;
5
5
  endpoint?: string;
6
- taskEndpoint?: string;
7
6
  };
8
7
  export declare const createFetchReflectedOperationInvoker: (options?: FetchOperationBridgeOptions) => ReflectedOperationInvoker;
9
8
  export declare const createFetchOperationBridgeAdapter: (options?: FetchOperationBridgeOptions) => OperationBridge.AnyOperationBridgeAdapter;
@@ -1 +1 @@
1
- {"version":3,"file":"fetch-operation-bridge-adapter.d.ts","sourceRoot":"","sources":["../../src/actions/fetch-operation-bridge-adapter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,yBAAyB,EAC1B,MAAM,yBAAyB,CAAC;AAiBjC,OAAO,KAAK,KAAK,eAAe,MAAM,uBAAuB,CAAC;AAI9D,MAAM,MAAM,2BAA2B,GAAG;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AA6GF,eAAO,MAAM,oCAAoC,GAC/C,UAAS,2BAAgC,KACxC,yBAsBF,CAAC;AAEF,eAAO,MAAM,iCAAiC,GAC5C,UAAS,2BAAgC,KACxC,eAAe,CAAC,yBA+ClB,CAAC"}
1
+ {"version":3,"file":"fetch-operation-bridge-adapter.d.ts","sourceRoot":"","sources":["../../src/actions/fetch-operation-bridge-adapter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,yBAAyB,EAC1B,MAAM,yBAAyB,CAAC;AAcjC,OAAO,KAAK,KAAK,eAAe,MAAM,uBAAuB,CAAC;AAI9D,MAAM,MAAM,2BAA2B,GAAG;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAwFF,eAAO,MAAM,oCAAoC,GAC/C,UAAS,2BAAgC,KACxC,yBAoCF,CAAC;AAEF,eAAO,MAAM,iCAAiC,GAC5C,UAAS,2BAAgC,KACxC,eAAe,CAAC,yBAyClB,CAAC"}
@@ -1,4 +1,5 @@
1
1
  'use client';
2
+ import { resolveOperationExecutionAffordance } from '@ontahi/core/data-graph';
2
3
  import { isOperationInvocationProtocolResponse, } from '@ontahi/core/runtime/operation-invocation';
3
4
  import { useMemo } from 'react';
4
5
  import { attachOperationBridgeActionRuntime, toOperationInvocationResult, unwrapOperationInvocationValue, } from './operation-bridge.js';
@@ -11,16 +12,6 @@ const normalizeMountPath = (value) => {
11
12
  const mountedEndpoint = (mountPath, endpoint) => `${normalizeMountPath(mountPath)}/${endpoint}`;
12
13
  const operationEndpoint = (options) => options.endpoint ??
13
14
  (options.mountPath ? mountedEndpoint(options.mountPath, 'operations') : DEFAULT_ENDPOINT);
14
- const operationTaskEndpoint = (options) => options.taskEndpoint ??
15
- (options.mountPath ? mountedEndpoint(options.mountPath, 'operations/tasks') : undefined);
16
- const fetchTaskSnapshot = async (endpoint, ref) => {
17
- const response = await fetch(`${endpoint}/${encodeURIComponent(ref.taskId)}/${encodeURIComponent(ref.runId)}`, { credentials: 'same-origin' });
18
- const payload = await response.json().catch(() => null);
19
- if (!response.ok || typeof payload !== 'object' || payload === null) {
20
- throw new Error(`Task snapshot request failed with status ${response.status}.`);
21
- }
22
- return payload;
23
- };
24
15
  const attachFetchBridgeRuntime = (operation, action) => attachOperationBridgeActionRuntime(operation, action, {
25
16
  requiresAuth: operation.authority !== 'server' ? false : operation.exposure !== 'bridge',
26
17
  });
@@ -65,10 +56,21 @@ const createFetchPermissionAction = (endpoint, operation) => (input) => postBrid
65
56
  });
66
57
  export const createFetchReflectedOperationInvoker = (options = {}) => {
67
58
  const endpoint = operationEndpoint(options);
59
+ const canInvokeOperation = operation => operation.kind === undefined
60
+ ? operation.exposure === undefined || operation.exposure === 'bridge'
61
+ : operation.kind !== 'graph' && operation.exposure === 'bridge';
68
62
  return {
69
- canInvokeOperation: operation => operation.kind === undefined
70
- ? operation.exposure === undefined || operation.exposure === 'bridge'
71
- : operation.kind !== 'graph' && operation.exposure === 'bridge',
63
+ canInvokeOperation,
64
+ getOperationExecutionAffordance: operation => resolveOperationExecutionAffordance(operation, {
65
+ ...(canInvokeOperation(operation)
66
+ ? {
67
+ bridge: {
68
+ authority: operation.authority ?? 'server',
69
+ bridge: 'fetch',
70
+ },
71
+ }
72
+ : {}),
73
+ }),
72
74
  invokeOperation: async ({ input, operationId, view, }) => toOperationInvocationResult(await postBridgeRequest(endpoint, {
73
75
  kind: 'invoke',
74
76
  operationId,
@@ -79,15 +81,9 @@ export const createFetchReflectedOperationInvoker = (options = {}) => {
79
81
  };
80
82
  export const createFetchOperationBridgeAdapter = (options = {}) => {
81
83
  const endpoint = operationEndpoint(options);
82
- const taskEndpoint = operationTaskEndpoint(options);
83
84
  const buildRuntimeAction = (operation) => createFetchBridgeAction(endpoint, operation);
84
85
  return {
85
86
  name: 'fetch',
86
- ...(taskEndpoint
87
- ? {
88
- getTaskSnapshot: (ref) => fetchTaskSnapshot(taskEndpoint, ref),
89
- }
90
- : {}),
91
87
  useBridgeAction: operation => useMemo(() => buildRuntimeAction(operation), [operation]),
92
88
  useBridgeMutation: (operation, options) => {
93
89
  const action = useMemo(() => buildRuntimeAction(operation), [operation]);
@@ -1 +1 @@
1
- {"version":3,"file":"fetch-operation-bridge-adapter.js","sourceRoot":"","sources":["../../src/actions/fetch-operation-bridge-adapter.ts"],"names":[],"mappings":"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","sourcesContent":["'use client';\n\nimport type {\n ReflectedOperationInvocation,\n ReflectedOperationInvoker,\n} from '@ontahi/core/data-graph';\nimport type {\n OperationInvocationResult,\n TaskRunIdentity,\n TaskSnapshot,\n} from '@ontahi/core/runtime/contracts';\nimport {\n isOperationInvocationProtocolResponse,\n type OperationInvocationRequest,\n} from '@ontahi/core/runtime/operation-invocation';\nimport { useMemo } from 'react';\n\nimport {\n attachOperationBridgeActionRuntime,\n toOperationInvocationResult,\n unwrapOperationInvocationValue,\n} from './operation-bridge.js';\nimport type * as OperationBridge from './operation-bridge.js';\nimport { useServerMutation, useServerQuery } from './react-query.js';\nimport type { ActionResultLike } from './use-action.js';\n\nexport type FetchOperationBridgeOptions = {\n mountPath?: string;\n endpoint?: string;\n taskEndpoint?: string;\n};\n\nconst DEFAULT_ENDPOINT = '/api/data-graph/domain-operations';\n\nconst normalizeMountPath = (value: string) => {\n const path = value.startsWith('/') ? value : `/${value}`;\n return path === '/' ? '' : path.replace(/\\/+$/, '');\n};\n\nconst mountedEndpoint = (mountPath: string, endpoint: string) =>\n `${normalizeMountPath(mountPath)}/${endpoint}`;\n\nconst operationEndpoint = (options: FetchOperationBridgeOptions) =>\n options.endpoint ??\n (options.mountPath ? mountedEndpoint(options.mountPath, 'operations') : DEFAULT_ENDPOINT);\n\nconst operationTaskEndpoint = (options: FetchOperationBridgeOptions) =>\n options.taskEndpoint ??\n (options.mountPath ? mountedEndpoint(options.mountPath, 'operations/tasks') : undefined);\n\nconst fetchTaskSnapshot = async <TResult>(\n endpoint: string,\n ref: TaskRunIdentity,\n): Promise<TaskSnapshot<TResult>> => {\n const response = await fetch(\n `${endpoint}/${encodeURIComponent(ref.taskId)}/${encodeURIComponent(ref.runId)}`,\n { credentials: 'same-origin' },\n );\n const payload: unknown = await response.json().catch(() => null);\n\n if (!response.ok || typeof payload !== 'object' || payload === null) {\n throw new Error(`Task snapshot request failed with status ${response.status}.`);\n }\n\n return payload as TaskSnapshot<TResult>;\n};\n\nconst attachFetchBridgeRuntime = <TInput, TData>(\n operation: OperationBridge.BridgedOperationLike<TInput, TData>,\n action: OperationBridge.OperationBridgeAction<TInput, TData>,\n) =>\n attachOperationBridgeActionRuntime(operation, action, {\n requiresAuth: operation.authority !== 'server' ? false : operation.exposure !== 'bridge',\n });\n\nconst postBridgeRequest = async <TData>(\n endpoint: string,\n request: OperationInvocationRequest,\n): Promise<ActionResultLike & { data?: TData }> => {\n const response = await fetch(endpoint, {\n method: 'POST',\n headers: {\n 'content-type': 'application/json',\n },\n credentials: 'same-origin',\n body: JSON.stringify(request),\n });\n const payload: unknown = await response.json().catch(() => null);\n\n if (!isOperationInvocationProtocolResponse(payload)) {\n return {\n serverError: response.ok\n ? 'Graph bridge returned an invalid response.'\n : `Graph bridge request failed with status ${response.status}.`,\n };\n }\n\n if (payload.kind === 'protocol-error') {\n return { serverError: payload.error.message };\n }\n\n if (request.kind === 'invoke' && payload.kind === 'invocation-result') {\n return { data: payload.result as TData };\n }\n\n if (request.kind === 'check-permission' && payload.kind === 'permission-result') {\n return { data: payload.result as TData };\n }\n\n return { serverError: 'Graph bridge returned an invalid response.' };\n};\n\nconst createFetchBridgeAction = <TInput, TData>(\n endpoint: string,\n operation: OperationBridge.BridgedOperationLike<TInput, TData>,\n): OperationBridge.OperationBridgeAction<TInput, TData> =>\n attachFetchBridgeRuntime(operation, (input: TInput) =>\n postBridgeRequest<OperationInvocationResult<TData>>(endpoint, {\n kind: 'invoke',\n operationId: operation.id,\n input,\n ...(operation.view ? { view: operation.view } : {}),\n }),\n ) as OperationBridge.OperationBridgeAction<TInput, TData>;\n\nconst createFetchPermissionAction =\n <TInput, TData>(\n endpoint: string,\n operation: OperationBridge.BridgedOperationLike<TInput, TData>,\n ): ((\n input: TInput,\n ) => Promise<OperationBridge.OperationBridgeActionResult<OperationBridge.GraphPermission>>) =>\n (input: TInput) =>\n postBridgeRequest<OperationBridge.GraphPermission>(endpoint, {\n kind: 'check-permission',\n operationId: operation.id,\n input,\n });\n\nexport const createFetchReflectedOperationInvoker = (\n options: FetchOperationBridgeOptions = {},\n): ReflectedOperationInvoker => {\n const endpoint = operationEndpoint(options);\n\n return {\n canInvokeOperation: operation =>\n operation.kind === undefined\n ? operation.exposure === undefined || operation.exposure === 'bridge'\n : operation.kind !== 'graph' && operation.exposure === 'bridge',\n invokeOperation: async <TInput = unknown, TData = unknown>({\n input,\n operationId,\n view,\n }: ReflectedOperationInvocation<TInput>) =>\n toOperationInvocationResult<TData>(\n await postBridgeRequest<OperationInvocationResult<TData>>(endpoint, {\n kind: 'invoke',\n operationId,\n input,\n ...(view ? { view } : {}),\n }),\n ),\n };\n};\n\nexport const createFetchOperationBridgeAdapter = (\n options: FetchOperationBridgeOptions = {},\n): OperationBridge.AnyOperationBridgeAdapter => {\n const endpoint = operationEndpoint(options);\n const taskEndpoint = operationTaskEndpoint(options);\n const buildRuntimeAction = <TInput, TData>(\n operation: OperationBridge.BridgedOperationLike<TInput, TData>,\n ) => createFetchBridgeAction(endpoint, operation);\n\n return {\n name: 'fetch',\n ...(taskEndpoint\n ? {\n getTaskSnapshot: (ref: TaskRunIdentity) => fetchTaskSnapshot(taskEndpoint, ref),\n }\n : {}),\n useBridgeAction: operation =>\n useMemo(\n () => buildRuntimeAction(operation) as OperationBridge.OperationBridgeAction<any, any>,\n [operation],\n ) as OperationBridge.OperationBridgeAction<any, any>,\n useBridgeMutation: (operation, options) => {\n const action = useMemo(() => buildRuntimeAction(operation), [operation]);\n\n return useServerMutation(\n action as OperationBridge.OperationBridgeAction<unknown, unknown>,\n options as Parameters<\n typeof useServerMutation<OperationBridge.OperationBridgeAction<unknown, unknown>>\n >[1],\n ) as ReturnType<typeof useServerMutation<OperationBridge.OperationBridgeAction<any, any>>>;\n },\n useBridgeQuery: (operation, args) => {\n const action = useMemo(() => buildRuntimeAction(operation), [operation]);\n\n return useServerQuery({\n action: action as OperationBridge.OperationBridgeAction<unknown, unknown>,\n input: args.input as unknown,\n key: args.key,\n select: unwrapOperationInvocationValue,\n }) as any;\n },\n usePermission: (operation, input, args) =>\n useServerQuery({\n enabled: args?.enabled,\n action: createFetchPermissionAction(endpoint, operation),\n input,\n key: args?.queryKey ?? ['graph-permission', operation.id, input],\n }),\n };\n};\n"]}
1
+ {"version":3,"file":"fetch-operation-bridge-adapter.js","sourceRoot":"","sources":["../../src/actions/fetch-operation-bridge-adapter.ts"],"names":[],"mappings":"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","sourcesContent":["'use client';\n\nimport type {\n ReflectedOperationInvocation,\n ReflectedOperationInvoker,\n} from '@ontahi/core/data-graph';\nimport { resolveOperationExecutionAffordance } from '@ontahi/core/data-graph';\nimport type { OperationInvocationResult } from '@ontahi/core/runtime/contracts';\nimport {\n isOperationInvocationProtocolResponse,\n type OperationInvocationRequest,\n} from '@ontahi/core/runtime/operation-invocation';\nimport { useMemo } from 'react';\n\nimport {\n attachOperationBridgeActionRuntime,\n toOperationInvocationResult,\n unwrapOperationInvocationValue,\n} from './operation-bridge.js';\nimport type * as OperationBridge from './operation-bridge.js';\nimport { useServerMutation, useServerQuery } from './react-query.js';\nimport type { ActionResultLike } from './use-action.js';\n\nexport type FetchOperationBridgeOptions = {\n mountPath?: string;\n endpoint?: string;\n};\n\nconst DEFAULT_ENDPOINT = '/api/data-graph/domain-operations';\n\nconst normalizeMountPath = (value: string) => {\n const path = value.startsWith('/') ? value : `/${value}`;\n return path === '/' ? '' : path.replace(/\\/+$/, '');\n};\n\nconst mountedEndpoint = (mountPath: string, endpoint: string) =>\n `${normalizeMountPath(mountPath)}/${endpoint}`;\n\nconst operationEndpoint = (options: FetchOperationBridgeOptions) =>\n options.endpoint ??\n (options.mountPath ? mountedEndpoint(options.mountPath, 'operations') : DEFAULT_ENDPOINT);\n\nconst attachFetchBridgeRuntime = <TInput, TData>(\n operation: OperationBridge.BridgedOperationLike<TInput, TData>,\n action: OperationBridge.OperationBridgeAction<TInput, TData>,\n) =>\n attachOperationBridgeActionRuntime(operation, action, {\n requiresAuth: operation.authority !== 'server' ? false : operation.exposure !== 'bridge',\n });\n\nconst postBridgeRequest = async <TData>(\n endpoint: string,\n request: OperationInvocationRequest,\n): Promise<ActionResultLike & { data?: TData }> => {\n const response = await fetch(endpoint, {\n method: 'POST',\n headers: {\n 'content-type': 'application/json',\n },\n credentials: 'same-origin',\n body: JSON.stringify(request),\n });\n const payload: unknown = await response.json().catch(() => null);\n\n if (!isOperationInvocationProtocolResponse(payload)) {\n return {\n serverError: response.ok\n ? 'Graph bridge returned an invalid response.'\n : `Graph bridge request failed with status ${response.status}.`,\n };\n }\n\n if (payload.kind === 'protocol-error') {\n return { serverError: payload.error.message };\n }\n\n if (request.kind === 'invoke' && payload.kind === 'invocation-result') {\n return { data: payload.result as TData };\n }\n\n if (request.kind === 'check-permission' && payload.kind === 'permission-result') {\n return { data: payload.result as TData };\n }\n\n return { serverError: 'Graph bridge returned an invalid response.' };\n};\n\nconst createFetchBridgeAction = <TInput, TData>(\n endpoint: string,\n operation: OperationBridge.BridgedOperationLike<TInput, TData>,\n): OperationBridge.OperationBridgeAction<TInput, TData> =>\n attachFetchBridgeRuntime(operation, (input: TInput) =>\n postBridgeRequest<OperationInvocationResult<TData>>(endpoint, {\n kind: 'invoke',\n operationId: operation.id,\n input,\n ...(operation.view ? { view: operation.view } : {}),\n }),\n ) as OperationBridge.OperationBridgeAction<TInput, TData>;\n\nconst createFetchPermissionAction =\n <TInput, TData>(\n endpoint: string,\n operation: OperationBridge.BridgedOperationLike<TInput, TData>,\n ): ((\n input: TInput,\n ) => Promise<OperationBridge.OperationBridgeActionResult<OperationBridge.GraphPermission>>) =>\n (input: TInput) =>\n postBridgeRequest<OperationBridge.GraphPermission>(endpoint, {\n kind: 'check-permission',\n operationId: operation.id,\n input,\n });\n\nexport const createFetchReflectedOperationInvoker = (\n options: FetchOperationBridgeOptions = {},\n): ReflectedOperationInvoker => {\n const endpoint = operationEndpoint(options);\n const canInvokeOperation: NonNullable<\n ReflectedOperationInvoker['canInvokeOperation']\n > = operation =>\n operation.kind === undefined\n ? operation.exposure === undefined || operation.exposure === 'bridge'\n : operation.kind !== 'graph' && operation.exposure === 'bridge';\n\n return {\n canInvokeOperation,\n getOperationExecutionAffordance: operation =>\n resolveOperationExecutionAffordance(operation, {\n ...(canInvokeOperation(operation)\n ? {\n bridge: {\n authority: operation.authority ?? 'server',\n bridge: 'fetch',\n },\n }\n : {}),\n }),\n invokeOperation: async <TInput = unknown, TData = unknown>({\n input,\n operationId,\n view,\n }: ReflectedOperationInvocation<TInput>) =>\n toOperationInvocationResult<TData>(\n await postBridgeRequest<OperationInvocationResult<TData>>(endpoint, {\n kind: 'invoke',\n operationId,\n input,\n ...(view ? { view } : {}),\n }),\n ),\n };\n};\n\nexport const createFetchOperationBridgeAdapter = (\n options: FetchOperationBridgeOptions = {},\n): OperationBridge.AnyOperationBridgeAdapter => {\n const endpoint = operationEndpoint(options);\n const buildRuntimeAction = <TInput, TData>(\n operation: OperationBridge.BridgedOperationLike<TInput, TData>,\n ) => createFetchBridgeAction(endpoint, operation);\n\n return {\n name: 'fetch',\n useBridgeAction: operation =>\n useMemo(\n () => buildRuntimeAction(operation) as OperationBridge.OperationBridgeAction<any, any>,\n [operation],\n ) as OperationBridge.OperationBridgeAction<any, any>,\n useBridgeMutation: (operation, options) => {\n const action = useMemo(() => buildRuntimeAction(operation), [operation]);\n\n return useServerMutation(\n action as OperationBridge.OperationBridgeAction<unknown, unknown>,\n options as Parameters<\n typeof useServerMutation<OperationBridge.OperationBridgeAction<unknown, unknown>>\n >[1],\n ) as ReturnType<typeof useServerMutation<OperationBridge.OperationBridgeAction<any, any>>>;\n },\n useBridgeQuery: (operation, args) => {\n const action = useMemo(() => buildRuntimeAction(operation), [operation]);\n\n return useServerQuery({\n action: action as OperationBridge.OperationBridgeAction<unknown, unknown>,\n input: args.input as unknown,\n key: args.key,\n select: unwrapOperationInvocationValue,\n }) as any;\n },\n usePermission: (operation, input, args) =>\n useServerQuery({\n enabled: args?.enabled,\n action: createFetchPermissionAction(endpoint, operation),\n input,\n key: args?.queryKey ?? ['graph-permission', operation.id, input],\n }),\n };\n};\n"]}
@@ -1,7 +1,5 @@
1
- import type { TaskRunIdentity, TaskSnapshot } from '@ontahi/core/runtime/contracts';
2
1
  import { type AnyOperationBridgeAdapter, type CheckDomainOperationPermissionBridgeAction, type RunDomainOperationBridgeAction } from './operation-bridge.js';
3
2
  export declare const createNextActionOperationBridgeAdapter: (bridgeAction: RunDomainOperationBridgeAction, options?: {
4
3
  checkPermissionAction?: CheckDomainOperationPermissionBridgeAction;
5
- getTaskSnapshot?: <TResult = unknown>(ref: TaskRunIdentity) => Promise<TaskSnapshot<TResult>>;
6
4
  }) => AnyOperationBridgeAdapter;
7
5
  //# sourceMappingURL=operation-bridge-adapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"operation-bridge-adapter.d.ts","sourceRoot":"","sources":["../../src/actions/operation-bridge-adapter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAGpF,OAAO,EAIL,KAAK,yBAAyB,EAE9B,KAAK,0CAA0C,EAE/C,KAAK,8BAA8B,EACpC,MAAM,uBAAuB,CAAC;AAuB/B,eAAO,MAAM,sCAAsC,GACjD,cAAc,8BAA8B,EAC5C,UAAU;IACR,qBAAqB,CAAC,EAAE,0CAA0C,CAAC;IACnE,eAAe,CAAC,EAAE,CAAC,OAAO,GAAG,OAAO,EAAE,GAAG,EAAE,eAAe,KAAK,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;CAC/F,KACA,yBA+CF,CAAC"}
1
+ {"version":3,"file":"operation-bridge-adapter.d.ts","sourceRoot":"","sources":["../../src/actions/operation-bridge-adapter.ts"],"names":[],"mappings":"AAIA,OAAO,EAIL,KAAK,yBAAyB,EAE9B,KAAK,0CAA0C,EAE/C,KAAK,8BAA8B,EACpC,MAAM,uBAAuB,CAAC;AAuB/B,eAAO,MAAM,sCAAsC,GACjD,cAAc,8BAA8B,EAC5C,UAAU;IACR,qBAAqB,CAAC,EAAE,0CAA0C,CAAC;CACpE,KACA,yBA8CF,CAAC"}
@@ -10,7 +10,6 @@ export const createNextActionOperationBridgeAdapter = (bridgeAction, options) =>
10
10
  const buildRuntimeAction = (operation) => createRuntimeBridgeAction(bridgeAction, operation);
11
11
  return {
12
12
  name: 'next-action',
13
- getTaskSnapshot: options?.getTaskSnapshot,
14
13
  useBridgeAction: operation => useMemo(() => buildRuntimeAction(operation), [operation]),
15
14
  useBridgeMutation: (operation, options) => {
16
15
  const action = useMemo(() => buildRuntimeAction(operation), [operation]);
@@ -1 +1 @@
1
- {"version":3,"file":"operation-bridge-adapter.js","sourceRoot":"","sources":["../../src/actions/operation-bridge-adapter.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAGb,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEhC,OAAO,EACL,kCAAkC,EAClC,iCAAiC,EACjC,8BAA8B,GAM/B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAErE,MAAM,6BAA6B,GAAG,CACpC,SAA8C,EAC9C,MAA4C,EAC5C,EAAE,CACF,kCAAkC,CAAC,SAAS,EAAE,MAAM,EAAE;IACpD,YAAY,EAAE,SAAS,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,KAAK,QAAQ;CACzF,CAAC,CAAC;AAEL,MAAM,yBAAyB,GAAG,CAChC,YAA4C,EAC5C,SAA8C,EACR,EAAE,CACxC,6BAA6B,CAC3B,SAAS,EACT,iCAAiC,CAAC,YAAY,EAAE,SAAS,CAGxD,CACsC,CAAC;AAE5C,MAAM,CAAC,MAAM,sCAAsC,GAAG,CACpD,YAA4C,EAC5C,OAGC,EAC0B,EAAE;IAC7B,MAAM,kBAAkB,GAAG,CAAgB,SAA8C,EAAE,EAAE,CAC3F,yBAAyB,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;IAErD,OAAO;QACL,IAAI,EAAE,aAAa;QACnB,eAAe,EAAE,OAAO,EAAE,eAAe;QACzC,eAAe,EAAE,SAAS,CAAC,EAAE,CAC3B,OAAO,CACL,GAAG,EAAE,CAAC,kBAAkB,CAAC,SAAS,CAAoC,EACtE,CAAC,SAAS,CAAC,CACuB;QACtC,iBAAiB,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE;YACxC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;YAEzE,OAAO,iBAAiB,CACtB,MAAiD,EACjD,OAA2F,CACnB,CAAC;QAC7E,CAAC;QACD,cAAc,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE;YAClC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;YAEzE,OAAO,cAAc,CAAC;gBACpB,MAAM,EAAE,MAAiD;gBACzD,KAAK,EAAE,IAAI,CAAC,KAAgB;gBAC5B,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,MAAM,EAAE,8BAA8B;aACvC,CAAQ,CAAC;QACZ,CAAC;QACD,aAAa,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CACxC,cAAc,CAAC;YACb,OAAO,EAAE,IAAI,EAAE,OAAO;YACtB,MAAM,EAAE,KAAK,EAAE,MAAiB,EAAE,EAAE;gBAClC,IAAI,CAAC,OAAO,EAAE,qBAAqB,EAAE,CAAC;oBACpC,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;gBACvE,CAAC;gBAED,OAAO,OAAO,CAAC,qBAAqB,CAAC;oBACnC,WAAW,EAAE,SAAS,CAAC,EAAE;oBACzB,KAAK;iBACN,CAAC,CAAC;YACL,CAAC;YACD,KAAK,EAAE,SAAS;YAChB,GAAG,EAAE,IAAI,EAAE,QAAQ,IAAI,CAAC,kBAAkB,EAAE,SAAS,CAAC,EAAE,EAAE,KAAK,CAAC;SACjE,CAAC;KACL,CAAC;AACJ,CAAC,CAAC","sourcesContent":["'use client';\n\nimport type { TaskRunIdentity, TaskSnapshot } from '@ontahi/core/runtime/contracts';\nimport { useMemo } from 'react';\n\nimport {\n attachOperationBridgeActionRuntime,\n createDomainOperationBridgeAction,\n unwrapOperationInvocationValue,\n type AnyOperationBridgeAdapter,\n type BridgedOperationLike,\n type CheckDomainOperationPermissionBridgeAction,\n type OperationBridgeAction,\n type RunDomainOperationBridgeAction,\n} from './operation-bridge.js';\nimport { useServerMutation, useServerQuery } from './react-query.js';\n\nconst attachNextActionBridgeRuntime = <TInput, TData>(\n operation: BridgedOperationLike<TInput, TData>,\n action: OperationBridgeAction<TInput, TData>,\n) =>\n attachOperationBridgeActionRuntime(operation, action, {\n requiresAuth: operation.authority !== 'server' ? false : operation.exposure !== 'bridge',\n });\n\nconst createRuntimeBridgeAction = <TInput, TData>(\n bridgeAction: RunDomainOperationBridgeAction,\n operation: BridgedOperationLike<TInput, TData>,\n): OperationBridgeAction<TInput, TData> =>\n attachNextActionBridgeRuntime(\n operation,\n createDomainOperationBridgeAction(bridgeAction, operation) as OperationBridgeAction<\n TInput,\n TData\n >,\n ) as OperationBridgeAction<TInput, TData>;\n\nexport const createNextActionOperationBridgeAdapter = (\n bridgeAction: RunDomainOperationBridgeAction,\n options?: {\n checkPermissionAction?: CheckDomainOperationPermissionBridgeAction;\n getTaskSnapshot?: <TResult = unknown>(ref: TaskRunIdentity) => Promise<TaskSnapshot<TResult>>;\n },\n): AnyOperationBridgeAdapter => {\n const buildRuntimeAction = <TInput, TData>(operation: BridgedOperationLike<TInput, TData>) =>\n createRuntimeBridgeAction(bridgeAction, operation);\n\n return {\n name: 'next-action',\n getTaskSnapshot: options?.getTaskSnapshot,\n useBridgeAction: operation =>\n useMemo(\n () => buildRuntimeAction(operation) as OperationBridgeAction<any, any>,\n [operation],\n ) as OperationBridgeAction<any, any>,\n useBridgeMutation: (operation, options) => {\n const action = useMemo(() => buildRuntimeAction(operation), [operation]);\n\n return useServerMutation(\n action as OperationBridgeAction<unknown, unknown>,\n options as Parameters<typeof useServerMutation<OperationBridgeAction<unknown, unknown>>>[1],\n ) as ReturnType<typeof useServerMutation<OperationBridgeAction<any, any>>>;\n },\n useBridgeQuery: (operation, args) => {\n const action = useMemo(() => buildRuntimeAction(operation), [operation]);\n\n return useServerQuery({\n action: action as OperationBridgeAction<unknown, unknown>,\n input: args.input as unknown,\n key: args.key,\n select: unwrapOperationInvocationValue,\n }) as any;\n },\n usePermission: (operation, input, args) =>\n useServerQuery({\n enabled: args?.enabled,\n action: async (_input: undefined) => {\n if (!options?.checkPermissionAction) {\n throw new Error('No operation permission bridge action registered.');\n }\n\n return options.checkPermissionAction({\n operationId: operation.id,\n input,\n });\n },\n input: undefined,\n key: args?.queryKey ?? ['graph-permission', operation.id, input],\n }),\n };\n};\n"]}
1
+ {"version":3,"file":"operation-bridge-adapter.js","sourceRoot":"","sources":["../../src/actions/operation-bridge-adapter.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEhC,OAAO,EACL,kCAAkC,EAClC,iCAAiC,EACjC,8BAA8B,GAM/B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAErE,MAAM,6BAA6B,GAAG,CACpC,SAA8C,EAC9C,MAA4C,EAC5C,EAAE,CACF,kCAAkC,CAAC,SAAS,EAAE,MAAM,EAAE;IACpD,YAAY,EAAE,SAAS,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,KAAK,QAAQ;CACzF,CAAC,CAAC;AAEL,MAAM,yBAAyB,GAAG,CAChC,YAA4C,EAC5C,SAA8C,EACR,EAAE,CACxC,6BAA6B,CAC3B,SAAS,EACT,iCAAiC,CAAC,YAAY,EAAE,SAAS,CAGxD,CACsC,CAAC;AAE5C,MAAM,CAAC,MAAM,sCAAsC,GAAG,CACpD,YAA4C,EAC5C,OAEC,EAC0B,EAAE;IAC7B,MAAM,kBAAkB,GAAG,CAAgB,SAA8C,EAAE,EAAE,CAC3F,yBAAyB,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;IAErD,OAAO;QACL,IAAI,EAAE,aAAa;QACnB,eAAe,EAAE,SAAS,CAAC,EAAE,CAC3B,OAAO,CACL,GAAG,EAAE,CAAC,kBAAkB,CAAC,SAAS,CAAoC,EACtE,CAAC,SAAS,CAAC,CACuB;QACtC,iBAAiB,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE;YACxC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;YAEzE,OAAO,iBAAiB,CACtB,MAAiD,EACjD,OAA2F,CACnB,CAAC;QAC7E,CAAC;QACD,cAAc,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE;YAClC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;YAEzE,OAAO,cAAc,CAAC;gBACpB,MAAM,EAAE,MAAiD;gBACzD,KAAK,EAAE,IAAI,CAAC,KAAgB;gBAC5B,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,MAAM,EAAE,8BAA8B;aACvC,CAAQ,CAAC;QACZ,CAAC;QACD,aAAa,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CACxC,cAAc,CAAC;YACb,OAAO,EAAE,IAAI,EAAE,OAAO;YACtB,MAAM,EAAE,KAAK,EAAE,MAAiB,EAAE,EAAE;gBAClC,IAAI,CAAC,OAAO,EAAE,qBAAqB,EAAE,CAAC;oBACpC,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;gBACvE,CAAC;gBAED,OAAO,OAAO,CAAC,qBAAqB,CAAC;oBACnC,WAAW,EAAE,SAAS,CAAC,EAAE;oBACzB,KAAK;iBACN,CAAC,CAAC;YACL,CAAC;YACD,KAAK,EAAE,SAAS;YAChB,GAAG,EAAE,IAAI,EAAE,QAAQ,IAAI,CAAC,kBAAkB,EAAE,SAAS,CAAC,EAAE,EAAE,KAAK,CAAC;SACjE,CAAC;KACL,CAAC;AACJ,CAAC,CAAC","sourcesContent":["'use client';\n\nimport { useMemo } from 'react';\n\nimport {\n attachOperationBridgeActionRuntime,\n createDomainOperationBridgeAction,\n unwrapOperationInvocationValue,\n type AnyOperationBridgeAdapter,\n type BridgedOperationLike,\n type CheckDomainOperationPermissionBridgeAction,\n type OperationBridgeAction,\n type RunDomainOperationBridgeAction,\n} from './operation-bridge.js';\nimport { useServerMutation, useServerQuery } from './react-query.js';\n\nconst attachNextActionBridgeRuntime = <TInput, TData>(\n operation: BridgedOperationLike<TInput, TData>,\n action: OperationBridgeAction<TInput, TData>,\n) =>\n attachOperationBridgeActionRuntime(operation, action, {\n requiresAuth: operation.authority !== 'server' ? false : operation.exposure !== 'bridge',\n });\n\nconst createRuntimeBridgeAction = <TInput, TData>(\n bridgeAction: RunDomainOperationBridgeAction,\n operation: BridgedOperationLike<TInput, TData>,\n): OperationBridgeAction<TInput, TData> =>\n attachNextActionBridgeRuntime(\n operation,\n createDomainOperationBridgeAction(bridgeAction, operation) as OperationBridgeAction<\n TInput,\n TData\n >,\n ) as OperationBridgeAction<TInput, TData>;\n\nexport const createNextActionOperationBridgeAdapter = (\n bridgeAction: RunDomainOperationBridgeAction,\n options?: {\n checkPermissionAction?: CheckDomainOperationPermissionBridgeAction;\n },\n): AnyOperationBridgeAdapter => {\n const buildRuntimeAction = <TInput, TData>(operation: BridgedOperationLike<TInput, TData>) =>\n createRuntimeBridgeAction(bridgeAction, operation);\n\n return {\n name: 'next-action',\n useBridgeAction: operation =>\n useMemo(\n () => buildRuntimeAction(operation) as OperationBridgeAction<any, any>,\n [operation],\n ) as OperationBridgeAction<any, any>,\n useBridgeMutation: (operation, options) => {\n const action = useMemo(() => buildRuntimeAction(operation), [operation]);\n\n return useServerMutation(\n action as OperationBridgeAction<unknown, unknown>,\n options as Parameters<typeof useServerMutation<OperationBridgeAction<unknown, unknown>>>[1],\n ) as ReturnType<typeof useServerMutation<OperationBridgeAction<any, any>>>;\n },\n useBridgeQuery: (operation, args) => {\n const action = useMemo(() => buildRuntimeAction(operation), [operation]);\n\n return useServerQuery({\n action: action as OperationBridgeAction<unknown, unknown>,\n input: args.input as unknown,\n key: args.key,\n select: unwrapOperationInvocationValue,\n }) as any;\n },\n usePermission: (operation, input, args) =>\n useServerQuery({\n enabled: args?.enabled,\n action: async (_input: undefined) => {\n if (!options?.checkPermissionAction) {\n throw new Error('No operation permission bridge action registered.');\n }\n\n return options.checkPermissionAction({\n operationId: operation.id,\n input,\n });\n },\n input: undefined,\n key: args?.queryKey ?? ['graph-permission', operation.id, input],\n }),\n };\n};\n"]}
@@ -1,6 +1,6 @@
1
1
  import type { ClientDomainOperationDeclaration, EntityViewAst } from '@ontahi/core/data-graph';
2
2
  import { type ActionQueryKey } from '@ontahi/core/runtime/actions';
3
- import type { OperationInvocationResult, TaskRunIdentity, TaskSnapshot } from '@ontahi/core/runtime/contracts';
3
+ import type { OperationInvocationResult } from '@ontahi/core/runtime/contracts';
4
4
  import type { QueryKey, UseQueryResult } from '@tanstack/react-query';
5
5
  import type { ActionResultLike, UseActionOptions, UseActionResult } from './use-action.js';
6
6
  export type { OperationInvocationResult };
@@ -51,7 +51,6 @@ export type CheckDomainOperationPermissionBridgeAction = (input: {
51
51
  }) => Promise<OperationBridgeActionResult<GraphPermission>>;
52
52
  export type OperationBridgeAdapter<TAdapterName extends string = string> = {
53
53
  name: TAdapterName;
54
- getTaskSnapshot?: <TResult = unknown>(ref: TaskRunIdentity) => Promise<TaskSnapshot<TResult>>;
55
54
  useBridgeAction: <TInput, TData>(operation: BridgedOperationLike<TInput, TData>) => OperationBridgeAction<TInput, TData>;
56
55
  useBridgeMutation: <TInput, TData>(operation: BridgedOperationLike<TInput, TData>, options?: UseActionOptions<OperationBridgeAction<TInput, TData>> & {
57
56
  invalidateOnSuccess?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"operation-bridge.d.ts","sourceRoot":"","sources":["../../src/actions/operation-bridge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"operation-bridge.d.ts","sourceRoot":"","sources":["../../src/actions/operation-bridge.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"operation-bridge.js","sourceRoot":"","sources":["../../src/actions/operation-bridge.ts"],"names":[],"mappings":"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","sourcesContent":["'use client';\n\nimport type {\n ClientDomainOperationDeclaration,\n EntityViewAst,\n QueryKeySegment,\n} from '@ontahi/core/data-graph';\nimport {\n attachActionRuntime,\n getActionErrorMessage,\n hasActionError,\n type ActionQueryKey,\n} from '@ontahi/core/runtime/actions';\nimport type {\n OperationInvocationResult,\n TaskRunIdentity,\n TaskSnapshot,\n} from '@ontahi/core/runtime/contracts';\nimport { isRecord } from '@ontahi/core/value/object';\nimport type { QueryKey, UseQueryResult } from '@tanstack/react-query';\n\nimport type { ActionResultLike, UseActionOptions, UseActionResult } from './use-action.js';\n\nexport type { OperationInvocationResult };\n\nexport type OperationBridgeActionResult<TData> = Omit<ActionResultLike, 'data'> & {\n data?: TData;\n};\n\nexport type OperationBridgeAction<TInput, TData> = (\n input: TInput,\n) => Promise<OperationBridgeActionResult<OperationInvocationResult<TData>>>;\n\nexport type OperationInvocationFailure<TFailure = unknown> = Exclude<\n OperationInvocationResult<unknown, TFailure>,\n { ok: true }\n>;\n\nexport class OperationInvocationResultError<TFailure = unknown> extends Error {\n readonly name = 'OperationInvocationResultError';\n declare readonly cause?: unknown;\n\n constructor(readonly result: OperationInvocationFailure<TFailure>) {\n super(result.message);\n if (result.kind === 'failed') {\n Object.defineProperty(this, 'cause', {\n configurable: true,\n value: result.failure,\n });\n }\n }\n\n toJSON() {\n return {\n name: this.name,\n message: this.message,\n ...(this.cause === undefined ? {} : { cause: this.cause }),\n result: this.result,\n };\n }\n}\n\nexport const isOperationInvocationResult = <TData = unknown, TFailure = unknown>(\n value: unknown,\n): value is OperationInvocationResult<TData, TFailure> =>\n isRecord(value) && typeof value.ok === 'boolean' && typeof value.kind === 'string';\n\nexport const operationBridgeErrored = (message: string): OperationInvocationResult => ({\n ok: false,\n kind: 'errored',\n executed: 'unknown',\n message,\n});\n\nexport const toOperationInvocationResult = <TData>(\n result: OperationBridgeActionResult<OperationInvocationResult<TData>>,\n): OperationInvocationResult<TData> => {\n if (hasActionError(result)) {\n return operationBridgeErrored(\n getActionErrorMessage(result),\n ) as OperationInvocationResult<TData>;\n }\n\n if (isOperationInvocationResult<TData>(result.data)) {\n return result.data;\n }\n\n if ('data' in result) {\n return {\n ok: true,\n kind: 'success',\n value: result.data as TData,\n };\n }\n\n return operationBridgeErrored(\n 'Graph operation bridge returned an invalid response.',\n ) as OperationInvocationResult<TData>;\n};\n\nexport const unwrapOperationInvocationValue = <TData>(\n result: OperationInvocationResult<TData>,\n): TData => {\n if (result.ok) {\n return result.value;\n }\n\n throw new OperationInvocationResultError(result);\n};\n\nexport type BridgedOperationLike<TInput, TData> = ClientDomainOperationDeclaration<\n TInput,\n TData\n> & {\n id: string;\n entityName: string;\n name: string;\n view?: EntityViewAst;\n};\n\nexport type RunDomainOperationBridgeAction = (input: {\n operationId: string;\n input: unknown;\n view?: EntityViewAst;\n}) => Promise<ActionResultLike>;\n\nexport type GraphPermission =\n | {\n allowed: true;\n }\n | {\n allowed: false;\n reason: string;\n message: string;\n };\n\nexport type CheckDomainOperationPermissionBridgeAction = (input: {\n operationId: string;\n input: unknown;\n}) => Promise<OperationBridgeActionResult<GraphPermission>>;\n\nexport type OperationBridgeAdapter<TAdapterName extends string = string> = {\n name: TAdapterName;\n getTaskSnapshot?: <TResult = unknown>(ref: TaskRunIdentity) => Promise<TaskSnapshot<TResult>>;\n useBridgeAction: <TInput, TData>(\n operation: BridgedOperationLike<TInput, TData>,\n ) => OperationBridgeAction<TInput, TData>;\n useBridgeMutation: <TInput, TData>(\n operation: BridgedOperationLike<TInput, TData>,\n options?: UseActionOptions<OperationBridgeAction<TInput, TData>> & {\n invalidateOnSuccess?: boolean;\n },\n ) => UseActionResult<OperationBridgeAction<TInput, TData>>;\n useBridgeQuery: <TInput, TData>(\n operation: BridgedOperationLike<TInput, TData>,\n args: {\n input: TInput;\n key: QueryKey;\n },\n ) => UseQueryResult<TData, Error>;\n usePermission: <TInput, TData>(\n operation: BridgedOperationLike<TInput, TData>,\n input: TInput,\n options?: {\n enabled?: boolean;\n queryKey?: QueryKey;\n },\n ) => UseQueryResult<GraphPermission, Error>;\n};\n\nexport type AnyOperationBridgeAdapter = OperationBridgeAdapter<string>;\n\nexport const resolveOperationBridgeQuerySpec = <TInput, TData>(\n operation: BridgedOperationLike<TInput, TData>,\n) => [operation.entityName, operation.name, ...(operation.bridge?.query ?? [])] as const;\n\nconst resolveOperationBridgeQueryKeySegment = <TInput, TData>(\n segment: QueryKeySegment<TInput>,\n operation: BridgedOperationLike<TInput, TData>,\n input: TInput,\n) =>\n typeof segment === 'function'\n ? segment(input, {\n input,\n operation,\n })\n : segment;\n\nexport const resolveOperationBridgeQueryKey = <TInput, TData>(\n operation: BridgedOperationLike<TInput, TData>,\n input: TInput,\n): ActionQueryKey => {\n return [\n operation.entityName,\n operation.name,\n ...(operation.view ? [operation.view] : []),\n ...(operation.bridge?.query?.map(segment =>\n resolveOperationBridgeQueryKeySegment(segment, operation, input),\n ) ?? []),\n ];\n};\n\nexport const resolveOperationBridgeInvalidationQueryKeys = <TInput, TData>(\n operation: BridgedOperationLike<TInput, TData>,\n input: TInput,\n): ActionQueryKey[] => {\n return (\n operation.bridge?.invalidate?.map(querySpec =>\n querySpec.map(segment => resolveOperationBridgeQueryKeySegment(segment, operation, input)),\n ) ?? []\n );\n};\n\nexport const createDomainOperationBridgeAction =\n <TInput, TData>(\n bridgeAction: RunDomainOperationBridgeAction,\n operation: BridgedOperationLike<TInput, TData>,\n ): OperationBridgeAction<TInput, TData> =>\n (input: TInput) =>\n bridgeAction({\n operationId: operation.id,\n input,\n ...(operation.view ? { view: operation.view } : {}),\n }) as Promise<OperationBridgeActionResult<OperationInvocationResult<TData>>>;\n\nexport const attachOperationBridgeActionRuntime = <TInput, TData>(\n operation: BridgedOperationLike<TInput, TData>,\n action: OperationBridgeAction<TInput, TData>,\n options: {\n requiresAuth: boolean;\n },\n) =>\n attachActionRuntime(action, {\n feature: operation.entityName,\n actionName: operation.name,\n requiresAuth: options.requiresAuth,\n queryKeyPrefix: [operation.entityName, operation.name] as const,\n getQueryKey: input => resolveOperationBridgeQueryKey(operation, input as TInput),\n getAffectedQueryKeys: ({ input }) =>\n resolveOperationBridgeInvalidationQueryKeys(operation, input as TInput),\n });\n"]}
1
+ {"version":3,"file":"operation-bridge.js","sourceRoot":"","sources":["../../src/actions/operation-bridge.ts"],"names":[],"mappings":"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","sourcesContent":["'use client';\n\nimport type {\n ClientDomainOperationDeclaration,\n EntityViewAst,\n QueryKeySegment,\n} from '@ontahi/core/data-graph';\nimport {\n attachActionRuntime,\n getActionErrorMessage,\n hasActionError,\n type ActionQueryKey,\n} from '@ontahi/core/runtime/actions';\nimport type { OperationInvocationResult } from '@ontahi/core/runtime/contracts';\nimport { isRecord } from '@ontahi/core/value/object';\nimport type { QueryKey, UseQueryResult } from '@tanstack/react-query';\n\nimport type { ActionResultLike, UseActionOptions, UseActionResult } from './use-action.js';\n\nexport type { OperationInvocationResult };\n\nexport type OperationBridgeActionResult<TData> = Omit<ActionResultLike, 'data'> & {\n data?: TData;\n};\n\nexport type OperationBridgeAction<TInput, TData> = (\n input: TInput,\n) => Promise<OperationBridgeActionResult<OperationInvocationResult<TData>>>;\n\nexport type OperationInvocationFailure<TFailure = unknown> = Exclude<\n OperationInvocationResult<unknown, TFailure>,\n { ok: true }\n>;\n\nexport class OperationInvocationResultError<TFailure = unknown> extends Error {\n readonly name = 'OperationInvocationResultError';\n declare readonly cause?: unknown;\n\n constructor(readonly result: OperationInvocationFailure<TFailure>) {\n super(result.message);\n if (result.kind === 'failed') {\n Object.defineProperty(this, 'cause', {\n configurable: true,\n value: result.failure,\n });\n }\n }\n\n toJSON() {\n return {\n name: this.name,\n message: this.message,\n ...(this.cause === undefined ? {} : { cause: this.cause }),\n result: this.result,\n };\n }\n}\n\nexport const isOperationInvocationResult = <TData = unknown, TFailure = unknown>(\n value: unknown,\n): value is OperationInvocationResult<TData, TFailure> =>\n isRecord(value) && typeof value.ok === 'boolean' && typeof value.kind === 'string';\n\nexport const operationBridgeErrored = (message: string): OperationInvocationResult => ({\n ok: false,\n kind: 'errored',\n executed: 'unknown',\n message,\n});\n\nexport const toOperationInvocationResult = <TData>(\n result: OperationBridgeActionResult<OperationInvocationResult<TData>>,\n): OperationInvocationResult<TData> => {\n if (hasActionError(result)) {\n return operationBridgeErrored(\n getActionErrorMessage(result),\n ) as OperationInvocationResult<TData>;\n }\n\n if (isOperationInvocationResult<TData>(result.data)) {\n return result.data;\n }\n\n if ('data' in result) {\n return {\n ok: true,\n kind: 'success',\n value: result.data as TData,\n };\n }\n\n return operationBridgeErrored(\n 'Graph operation bridge returned an invalid response.',\n ) as OperationInvocationResult<TData>;\n};\n\nexport const unwrapOperationInvocationValue = <TData>(\n result: OperationInvocationResult<TData>,\n): TData => {\n if (result.ok) {\n return result.value;\n }\n\n throw new OperationInvocationResultError(result);\n};\n\nexport type BridgedOperationLike<TInput, TData> = ClientDomainOperationDeclaration<\n TInput,\n TData\n> & {\n id: string;\n entityName: string;\n name: string;\n view?: EntityViewAst;\n};\n\nexport type RunDomainOperationBridgeAction = (input: {\n operationId: string;\n input: unknown;\n view?: EntityViewAst;\n}) => Promise<ActionResultLike>;\n\nexport type GraphPermission =\n | {\n allowed: true;\n }\n | {\n allowed: false;\n reason: string;\n message: string;\n };\n\nexport type CheckDomainOperationPermissionBridgeAction = (input: {\n operationId: string;\n input: unknown;\n}) => Promise<OperationBridgeActionResult<GraphPermission>>;\n\nexport type OperationBridgeAdapter<TAdapterName extends string = string> = {\n name: TAdapterName;\n useBridgeAction: <TInput, TData>(\n operation: BridgedOperationLike<TInput, TData>,\n ) => OperationBridgeAction<TInput, TData>;\n useBridgeMutation: <TInput, TData>(\n operation: BridgedOperationLike<TInput, TData>,\n options?: UseActionOptions<OperationBridgeAction<TInput, TData>> & {\n invalidateOnSuccess?: boolean;\n },\n ) => UseActionResult<OperationBridgeAction<TInput, TData>>;\n useBridgeQuery: <TInput, TData>(\n operation: BridgedOperationLike<TInput, TData>,\n args: {\n input: TInput;\n key: QueryKey;\n },\n ) => UseQueryResult<TData, Error>;\n usePermission: <TInput, TData>(\n operation: BridgedOperationLike<TInput, TData>,\n input: TInput,\n options?: {\n enabled?: boolean;\n queryKey?: QueryKey;\n },\n ) => UseQueryResult<GraphPermission, Error>;\n};\n\nexport type AnyOperationBridgeAdapter = OperationBridgeAdapter<string>;\n\nexport const resolveOperationBridgeQuerySpec = <TInput, TData>(\n operation: BridgedOperationLike<TInput, TData>,\n) => [operation.entityName, operation.name, ...(operation.bridge?.query ?? [])] as const;\n\nconst resolveOperationBridgeQueryKeySegment = <TInput, TData>(\n segment: QueryKeySegment<TInput>,\n operation: BridgedOperationLike<TInput, TData>,\n input: TInput,\n) =>\n typeof segment === 'function'\n ? segment(input, {\n input,\n operation,\n })\n : segment;\n\nexport const resolveOperationBridgeQueryKey = <TInput, TData>(\n operation: BridgedOperationLike<TInput, TData>,\n input: TInput,\n): ActionQueryKey => {\n return [\n operation.entityName,\n operation.name,\n ...(operation.view ? [operation.view] : []),\n ...(operation.bridge?.query?.map(segment =>\n resolveOperationBridgeQueryKeySegment(segment, operation, input),\n ) ?? []),\n ];\n};\n\nexport const resolveOperationBridgeInvalidationQueryKeys = <TInput, TData>(\n operation: BridgedOperationLike<TInput, TData>,\n input: TInput,\n): ActionQueryKey[] => {\n return (\n operation.bridge?.invalidate?.map(querySpec =>\n querySpec.map(segment => resolveOperationBridgeQueryKeySegment(segment, operation, input)),\n ) ?? []\n );\n};\n\nexport const createDomainOperationBridgeAction =\n <TInput, TData>(\n bridgeAction: RunDomainOperationBridgeAction,\n operation: BridgedOperationLike<TInput, TData>,\n ): OperationBridgeAction<TInput, TData> =>\n (input: TInput) =>\n bridgeAction({\n operationId: operation.id,\n input,\n ...(operation.view ? { view: operation.view } : {}),\n }) as Promise<OperationBridgeActionResult<OperationInvocationResult<TData>>>;\n\nexport const attachOperationBridgeActionRuntime = <TInput, TData>(\n operation: BridgedOperationLike<TInput, TData>,\n action: OperationBridgeAction<TInput, TData>,\n options: {\n requiresAuth: boolean;\n },\n) =>\n attachActionRuntime(action, {\n feature: operation.entityName,\n actionName: operation.name,\n requiresAuth: options.requiresAuth,\n queryKeyPrefix: [operation.entityName, operation.name] as const,\n getQueryKey: input => resolveOperationBridgeQueryKey(operation, input as TInput),\n getAffectedQueryKeys: ({ input }) =>\n resolveOperationBridgeInvalidationQueryKeys(operation, input as TInput),\n });\n"]}
@@ -1,5 +1,6 @@
1
- import { type GraphClientCache, type ReflectedEntityDataReader, type ReflectedRelatedEntityDataReader, type ReflectedOperationDescriptor, type ReflectedOperationInvoker } from '@ontahi/core/data-graph';
1
+ import { type GraphClientCache, type OperationExecutionAffordance, type ReflectedEntityDataReader, type ReflectedRelatedEntityDataReader, type ReflectedOperationDescriptor, type ReflectedOperationInvoker } from '@ontahi/core/data-graph';
2
2
  import { type ExecutionIdentity } from '@ontahi/core/runtime/identity';
3
+ import type { RuntimeTransport } from '@ontahi/core/runtime/protocol';
3
4
  import { type ReactNode } from 'react';
4
5
  import type { AnyOperationBridgeAdapter } from '../actions/index.js';
5
6
  import type { ReactGraphExecutor } from './executor.js';
@@ -9,20 +10,23 @@ export type OntahiGraphProviderProps<TGraphRuntime = unknown, TReadOptions = unk
9
10
  children: ReactNode;
10
11
  runtime: TGraphRuntime;
11
12
  graphExecutor?: ReactGraphExecutor<TReadOptions, TCommandOptions>;
13
+ runtimeTransport?: RuntimeTransport;
12
14
  client?: OntahiGraphClient<TReadOptions, TCommandOptions> | false;
13
15
  operationBridgeAdapters?: AnyOperationBridgeAdapter[];
14
16
  reflectedEntityDataReader?: ReflectedEntityDataReader;
15
- /** Explicit host capability; unlike entity reads, this has no OntahiGraphClient fallback. */
16
17
  reflectedRelatedEntityDataReader?: ReflectedRelatedEntityDataReader;
17
18
  reflectedOperationInvoker?: ReflectedOperationInvoker;
18
19
  reflectedGraphOperations?: readonly ReflectedGraphOperationLike[];
19
20
  clientCache?: GraphClientCache;
20
21
  identity?: ExecutionIdentity;
21
22
  };
22
- export declare function OntahiGraphProvider<TGraphRuntime = unknown, TReadOptions = unknown, TCommandOptions = TReadOptions>({ children, runtime, graphExecutor, client, operationBridgeAdapters, reflectedEntityDataReader, reflectedRelatedEntityDataReader, reflectedOperationInvoker, reflectedGraphOperations, clientCache, identity, }: OntahiGraphProviderProps<TGraphRuntime, TReadOptions, TCommandOptions>): import("react/jsx-runtime").JSX.Element;
23
+ export declare function OntahiGraphProvider<TGraphRuntime = unknown, TReadOptions = unknown, TCommandOptions = TReadOptions>({ children, runtime, graphExecutor, runtimeTransport, client, operationBridgeAdapters, reflectedEntityDataReader, reflectedRelatedEntityDataReader, reflectedOperationInvoker, reflectedGraphOperations, clientCache, identity, }: OntahiGraphProviderProps<TGraphRuntime, TReadOptions, TCommandOptions>): import("react/jsx-runtime").JSX.Element;
23
24
  export declare const useExecutionIdentity: () => ExecutionIdentity;
24
25
  export declare function useGraphRuntime<TGraphRuntime = unknown>(): TGraphRuntime;
25
26
  export declare function useGraphExecutor<TReadOptions = unknown, TCommandOptions = TReadOptions>(): ReactGraphExecutor<TReadOptions, TCommandOptions>;
27
+ export declare function useGraphExecutorCapability<TReadOptions = unknown, TCommandOptions = TReadOptions>(): ReactGraphExecutor<TReadOptions, TCommandOptions> | undefined;
28
+ export declare const useRuntimeTransportCapability: () => RuntimeTransport | undefined;
29
+ export declare function useRuntimeTransport(): RuntimeTransport;
26
30
  export declare function useGraphClientCache(): {
27
31
  clear: () => void;
28
32
  denormalizeOutput: <TValue>(descriptor: import("@ontahi/core/data-graph").GraphOutputDescriptor | undefined, value: TValue) => TValue;
@@ -50,5 +54,6 @@ export declare const useHasReflectedRelatedEntityDataReader: () => boolean;
50
54
  export declare function useReflectedOperationInvoker(): ReflectedOperationInvoker;
51
55
  export declare function useHasReflectedOperationInvoker(): boolean;
52
56
  export declare function useReflectedOperationSupport(): (operation: ReflectedOperationDescriptor) => boolean;
57
+ export declare function useReflectedOperationExecutionAffordance(operation: ReflectedOperationDescriptor): OperationExecutionAffordance | undefined;
53
58
  export type { GraphClientCache };
54
59
  //# sourceMappingURL=context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/graph/context.tsx"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,yBAAyB,EAC9B,KAAK,gCAAgC,EACrC,KAAK,4BAA4B,EACjC,KAAK,yBAAyB,EAC/B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAA8B,KAAK,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACnG,OAAO,EAOL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAErE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAA0B,KAAK,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACzF,OAAO,EAEL,KAAK,2BAA2B,EACjC,MAAM,kCAAkC,CAAC;AAgB1C,MAAM,MAAM,wBAAwB,CAClC,aAAa,GAAG,OAAO,EACvB,YAAY,GAAG,OAAO,EACtB,eAAe,GAAG,YAAY,IAC5B;IACF,QAAQ,EAAE,SAAS,CAAC;IACpB,OAAO,EAAE,aAAa,CAAC;IACvB,aAAa,CAAC,EAAE,kBAAkB,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;IAClE,MAAM,CAAC,EAAE,iBAAiB,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,KAAK,CAAC;IAClE,uBAAuB,CAAC,EAAE,yBAAyB,EAAE,CAAC;IACtD,yBAAyB,CAAC,EAAE,yBAAyB,CAAC;IACtD,6FAA6F;IAC7F,gCAAgC,CAAC,EAAE,gCAAgC,CAAC;IACpE,yBAAyB,CAAC,EAAE,yBAAyB,CAAC;IACtD,wBAAwB,CAAC,EAAE,SAAS,2BAA2B,EAAE,CAAC;IAClE,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,QAAQ,CAAC,EAAE,iBAAiB,CAAC;CAC9B,CAAC;AAEF,wBAAgB,mBAAmB,CACjC,aAAa,GAAG,OAAO,EACvB,YAAY,GAAG,OAAO,EACtB,eAAe,GAAG,YAAY,EAC9B,EACA,QAAQ,EACR,OAAO,EACP,aAAa,EACb,MAAM,EACN,uBAAuB,EACvB,yBAAyB,EACzB,gCAAgC,EAChC,yBAAyB,EACzB,wBAAqD,EACrD,WAAW,EACX,QAAqC,GACtC,EAAE,wBAAwB,CAAC,aAAa,EAAE,YAAY,EAAE,eAAe,CAAC,2CAmDxE;AAED,eAAO,MAAM,oBAAoB,yBAA6C,CAAC;AAE/E,wBAAgB,eAAe,CAAC,aAAa,GAAG,OAAO,KAOnC,aAAa,CAChC;AAED,wBAAgB,gBAAgB,CAAC,YAAY,GAAG,OAAO,EAAE,eAAe,GAAG,YAAY,KAS7D,kBAAkB,CAAC,YAAY,EAAE,eAAe,CAAC,CAC1E;AAED,wBAAgB,mBAAmB;;;;;;;;;;;;;;EAQlC;AAED,wBAAgB,2BAA2B,+DAM1C;AAED,eAAO,MAAM,0BAA0B,GAAI,aAAa,gBAAgB,WAKrE,CAAC;AAEJ,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,MAAM,6BAc5D;AAED,wBAAgB,gCAAgC,8BAc/C;AAED,wBAAgB,4BAA4B,YAG3C;AAED,wBAAgB,4BAA4B,8BAU3C;AAED,wBAAgB,+BAA+B,YAE9C;AAED,wBAAgB,mCAAmC,qCAUlD;AAED,eAAO,MAAM,sCAAsC,eACW,CAAC;AAE/D,wBAAgB,4BAA4B,8BAU3C;AAED,wBAAgB,+BAA+B,YAE9C;AAED,wBAAgB,4BAA4B,gBAI5B,4BAA4B,aAI3C;AAED,YAAY,EAAE,gBAAgB,EAAE,CAAC"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/graph/context.tsx"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,4BAA4B,EACjC,KAAK,yBAAyB,EAC9B,KAAK,gCAAgC,EACrC,KAAK,4BAA4B,EACjC,KAAK,yBAAyB,EAC/B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAA8B,KAAK,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACnG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAOL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAErE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAA0B,KAAK,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACzF,OAAO,EAEL,KAAK,2BAA2B,EACjC,MAAM,kCAAkC,CAAC;AAiB1C,MAAM,MAAM,wBAAwB,CAClC,aAAa,GAAG,OAAO,EACvB,YAAY,GAAG,OAAO,EACtB,eAAe,GAAG,YAAY,IAC5B;IACF,QAAQ,EAAE,SAAS,CAAC;IACpB,OAAO,EAAE,aAAa,CAAC;IACvB,aAAa,CAAC,EAAE,kBAAkB,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;IAClE,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,MAAM,CAAC,EAAE,iBAAiB,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,KAAK,CAAC;IAClE,uBAAuB,CAAC,EAAE,yBAAyB,EAAE,CAAC;IACtD,yBAAyB,CAAC,EAAE,yBAAyB,CAAC;IACtD,gCAAgC,CAAC,EAAE,gCAAgC,CAAC;IACpE,yBAAyB,CAAC,EAAE,yBAAyB,CAAC;IACtD,wBAAwB,CAAC,EAAE,SAAS,2BAA2B,EAAE,CAAC;IAClE,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,QAAQ,CAAC,EAAE,iBAAiB,CAAC;CAC9B,CAAC;AAEF,wBAAgB,mBAAmB,CACjC,aAAa,GAAG,OAAO,EACvB,YAAY,GAAG,OAAO,EACtB,eAAe,GAAG,YAAY,EAC9B,EACA,QAAQ,EACR,OAAO,EACP,aAAa,EACb,gBAAgB,EAChB,MAAM,EACN,uBAAuB,EACvB,yBAAyB,EACzB,gCAAgC,EAChC,yBAAyB,EACzB,wBAAqD,EACrD,WAAW,EACX,QAAqC,GACtC,EAAE,wBAAwB,CAAC,aAAa,EAAE,YAAY,EAAE,eAAe,CAAC,2CAwDxE;AAED,eAAO,MAAM,oBAAoB,yBAA6C,CAAC;AAE/E,wBAAgB,eAAe,CAAC,aAAa,GAAG,OAAO,KAOnC,aAAa,CAChC;AAED,wBAAgB,gBAAgB,CAAC,YAAY,GAAG,OAAO,EAAE,eAAe,GAAG,YAAY,KAS7D,kBAAkB,CAAC,YAAY,EAAE,eAAe,CAAC,CAC1E;AAED,wBAAgB,0BAA0B,CACxC,YAAY,GAAG,OAAO,EACtB,eAAe,GAAG,YAAY,KAG1B,kBAAkB,CAAC,YAAY,EAAE,eAAe,CAAC,GACjD,SAAS,CACd;AAED,eAAO,MAAM,6BAA6B,oCAAyD,CAAC;AAEpG,wBAAgB,mBAAmB,qBAMlC;AAED,wBAAgB,mBAAmB;;;;;;;;;;;;;;EAQlC;AAED,wBAAgB,2BAA2B,+DAM1C;AAED,eAAO,MAAM,0BAA0B,GAAI,aAAa,gBAAgB,WAKrE,CAAC;AAEJ,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,MAAM,6BAc5D;AAED,wBAAgB,gCAAgC,8BAc/C;AAED,wBAAgB,4BAA4B,YAG3C;AAED,wBAAgB,4BAA4B,8BAU3C;AAED,wBAAgB,+BAA+B,YAE9C;AAED,wBAAgB,mCAAmC,qCAUlD;AAED,eAAO,MAAM,sCAAsC,eACW,CAAC;AAE/D,wBAAgB,4BAA4B,8BAU3C;AAED,wBAAgB,+BAA+B,YAE9C;AAED,wBAAgB,4BAA4B,gBAI5B,4BAA4B,aAI3C;AAED,wBAAgB,wCAAwC,CACtD,SAAS,EAAE,4BAA4B,GACtC,4BAA4B,GAAG,SAAS,CAI1C;AAED,YAAY,EAAE,gBAAgB,EAAE,CAAC"}
@@ -10,17 +10,20 @@ const GraphRuntimeContext = createContext(null);
10
10
  const ExecutionIdentityContext = createContext(anonymousExecutionIdentity);
11
11
  const GraphExecutorContext = createContext(null);
12
12
  const GraphClientCacheContext = createContext(null);
13
+ const RuntimeTransportContext = createContext(null);
13
14
  const OperationBridgeAdaptersContext = createContext(null);
14
15
  const ReflectedEntityDataReaderContext = createContext(null);
15
16
  const ReflectedRelatedEntityDataReaderContext = createContext(null);
16
17
  const ReflectedOperationInvokerContext = createContext(null);
17
- export function OntahiGraphProvider({ children, runtime, graphExecutor, client, operationBridgeAdapters, reflectedEntityDataReader, reflectedRelatedEntityDataReader, reflectedOperationInvoker, reflectedGraphOperations = noReflectedGraphOperations, clientCache, identity = anonymousExecutionIdentity, }) {
18
+ export function OntahiGraphProvider({ children, runtime, graphExecutor, runtimeTransport, client, operationBridgeAdapters, reflectedEntityDataReader, reflectedRelatedEntityDataReader, reflectedOperationInvoker, reflectedGraphOperations = noReflectedGraphOperations, clientCache, identity = anonymousExecutionIdentity, }) {
18
19
  const [defaultGraphClient] = useState(() => createFetchGraphClient());
19
20
  const [defaultClientCache] = useState(() => createGraphClientCache());
20
21
  const graphClient = client === false ? undefined : (client ?? defaultGraphClient);
21
22
  const resolvedGraphExecutor = graphExecutor ?? graphClient?.graphExecutor;
23
+ const resolvedRuntimeTransport = runtimeTransport ?? graphClient?.runtimeTransport;
22
24
  const resolvedOperationBridgeAdapters = operationBridgeAdapters ?? graphClient?.operationBridgeAdapters ?? [];
23
25
  const resolvedReflectedEntityDataReader = reflectedEntityDataReader ?? graphClient?.reflectedEntityDataReader;
26
+ const resolvedReflectedRelatedEntityDataReader = reflectedRelatedEntityDataReader ?? graphClient?.reflectedRelatedEntityDataReader;
24
27
  const configuredReflectedOperationInvoker = reflectedOperationInvoker ?? graphClient?.reflectedOperationInvoker;
25
28
  const graphClientCache = clientCache ?? defaultClientCache;
26
29
  const bridgeAdapterMap = useMemo(() => new Map(resolvedOperationBridgeAdapters.map(adapter => [adapter.name, adapter])), [resolvedOperationBridgeAdapters]);
@@ -31,7 +34,7 @@ export function OntahiGraphProvider({ children, runtime, graphExecutor, client,
31
34
  graphOperations: reflectedGraphOperations,
32
35
  })
33
36
  : (configuredReflectedOperationInvoker ?? null), [configuredReflectedOperationInvoker, reflectedGraphOperations, resolvedGraphExecutor]);
34
- return (_jsx(ExecutionIdentityContext.Provider, { value: identity, children: _jsx(ReflectedOperationInvokerContext.Provider, { value: resolvedReflectedOperationInvoker, children: _jsx(ReflectedRelatedEntityDataReaderContext.Provider, { value: reflectedRelatedEntityDataReader ?? null, children: _jsx(ReflectedEntityDataReaderContext.Provider, { value: resolvedReflectedEntityDataReader ?? null, children: _jsx(OperationBridgeAdaptersContext.Provider, { value: bridgeAdapterMap, children: _jsx(GraphClientCacheContext.Provider, { value: graphClientCache, children: _jsx(GraphExecutorContext.Provider, { value: resolvedGraphExecutor ?? null, children: _jsx(GraphRuntimeContext.Provider, { value: runtime, children: children }) }) }) }) }) }) }) }));
37
+ return (_jsx(ExecutionIdentityContext.Provider, { value: identity, children: _jsx(ReflectedOperationInvokerContext.Provider, { value: resolvedReflectedOperationInvoker, children: _jsx(ReflectedRelatedEntityDataReaderContext.Provider, { value: resolvedReflectedRelatedEntityDataReader ?? null, children: _jsx(ReflectedEntityDataReaderContext.Provider, { value: resolvedReflectedEntityDataReader ?? null, children: _jsx(OperationBridgeAdaptersContext.Provider, { value: bridgeAdapterMap, children: _jsx(RuntimeTransportContext.Provider, { value: resolvedRuntimeTransport ?? null, children: _jsx(GraphClientCacheContext.Provider, { value: graphClientCache, children: _jsx(GraphExecutorContext.Provider, { value: resolvedGraphExecutor ?? null, children: _jsx(GraphRuntimeContext.Provider, { value: runtime, children: children }) }) }) }) }) }) }) }) }));
35
38
  }
36
39
  export const useExecutionIdentity = () => useContext(ExecutionIdentityContext);
37
40
  export function useGraphRuntime() {
@@ -48,6 +51,17 @@ export function useGraphExecutor() {
48
51
  }
49
52
  return graphExecutor;
50
53
  }
54
+ export function useGraphExecutorCapability() {
55
+ return (useContext(GraphExecutorContext) ?? undefined);
56
+ }
57
+ export const useRuntimeTransportCapability = () => useContext(RuntimeTransportContext) ?? undefined;
58
+ export function useRuntimeTransport() {
59
+ const transport = useRuntimeTransportCapability();
60
+ if (!transport) {
61
+ throw new Error('useRuntimeTransport requires an OntahiGraphProvider with runtimeTransport');
62
+ }
63
+ return transport;
64
+ }
51
65
  export function useGraphClientCache() {
52
66
  const clientCache = useContext(GraphClientCacheContext);
53
67
  if (clientCache === null) {
@@ -119,4 +133,8 @@ export function useReflectedOperationSupport() {
119
133
  const invoker = useContext(ReflectedOperationInvokerContext);
120
134
  return useCallback((operation) => Boolean(invoker && (invoker.canInvokeOperation?.(operation) ?? true)), [invoker]);
121
135
  }
136
+ export function useReflectedOperationExecutionAffordance(operation) {
137
+ const invoker = useContext(ReflectedOperationInvokerContext);
138
+ return invoker?.getOperationExecutionAffordance?.(operation);
139
+ }
122
140
  //# sourceMappingURL=context.js.map
@@ -1 +1 @@
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 GraphClientCache,\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 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 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 client?: OntahiGraphClient<TReadOptions, TCommandOptions> | false;\n operationBridgeAdapters?: AnyOperationBridgeAdapter[];\n reflectedEntityDataReader?: ReflectedEntityDataReader;\n /** Explicit host capability; unlike entity reads, this has no OntahiGraphClient fallback. */\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 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 resolvedOperationBridgeAdapters =\n operationBridgeAdapters ?? graphClient?.operationBridgeAdapters ?? [];\n const resolvedReflectedEntityDataReader =\n reflectedEntityDataReader ?? graphClient?.reflectedEntityDataReader;\n const configuredReflectedOperationInvoker =\n reflectedOperationInvoker ?? graphClient?.reflectedOperationInvoker;\n const graphClientCache = 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={reflectedRelatedEntityDataReader ?? null}\n >\n <ReflectedEntityDataReaderContext.Provider\n value={resolvedReflectedEntityDataReader ?? null}\n >\n <OperationBridgeAdaptersContext.Provider value={bridgeAdapterMap}>\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 </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 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 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 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 ?? 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,4 +1,4 @@
1
- import type { GraphCommandSpec, GraphOperationDeclaration, GraphReadExpression, GraphReadIntent, GraphSchemaLike, InferGraphSchemaClientInput, QueryOrView, QuerySpec, ManyToManyRelationshipCommand, RelationshipCommand, RelationshipCommandResult } from '@ontahi/core/data-graph';
1
+ import type { GraphCommandSpec, GraphOperationDeclaration, GraphReadExpression, GraphReadIntent, GraphSchemaLike, InferGraphSchemaClientInput, QueryOrView, QuerySpec, ManyToManyRelationshipCommand, RelationshipCommand, RelationshipCommandResult, EntityMutationCommand, EntityMutationDelta } from '@ontahi/core/data-graph';
2
2
  import type { QueryKey, UseMutationOptions, UseQueryOptions } from '@tanstack/react-query';
3
3
  export interface ReactGraphExecutor<TReadOptions = unknown, TCommandOptions = TReadOptions> {
4
4
  get<TParams, TResult>(read: QueryOrView<TParams, TResult>, params: TParams, options?: TReadOptions): Promise<TResult | null>;
@@ -7,6 +7,7 @@ export interface ReactGraphExecutor<TReadOptions = unknown, TCommandOptions = TR
7
7
  runCommand<TResult = void>(command: GraphCommandSpec<any, any, TResult>, options?: TCommandOptions): Promise<TResult>;
8
8
  runRelationshipCommand?(command: RelationshipCommand, options?: TCommandOptions): Promise<RelationshipCommandResult>;
9
9
  runManyToManyRelationshipCommand?(command: ManyToManyRelationshipCommand, options?: TCommandOptions): Promise<RelationshipCommandResult>;
10
+ runEntityMutationCommand?(command: EntityMutationCommand, options?: TCommandOptions): Promise<EntityMutationDelta>;
10
11
  }
11
12
  export type BuildableRead<TResult> = {
12
13
  build: () => QuerySpec<any, TResult>;
@@ -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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"}