@ontahi/react 0.1.0-alpha.0

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 (68) hide show
  1. package/LICENSE +201 -0
  2. package/NOTICE +4 -0
  3. package/README.md +12 -0
  4. package/dist/actions/fetch-operation-bridge-adapter.d.ts +10 -0
  5. package/dist/actions/fetch-operation-bridge-adapter.d.ts.map +1 -0
  6. package/dist/actions/fetch-operation-bridge-adapter.js +111 -0
  7. package/dist/actions/fetch-operation-bridge-adapter.js.map +1 -0
  8. package/dist/actions/index.d.ts +6 -0
  9. package/dist/actions/index.d.ts.map +1 -0
  10. package/dist/actions/index.js +6 -0
  11. package/dist/actions/index.js.map +1 -0
  12. package/dist/actions/operation-bridge-adapter.d.ts +7 -0
  13. package/dist/actions/operation-bridge-adapter.d.ts.map +1 -0
  14. package/dist/actions/operation-bridge-adapter.js +44 -0
  15. package/dist/actions/operation-bridge-adapter.js.map +1 -0
  16. package/dist/actions/operation-bridge.d.ts +69 -0
  17. package/dist/actions/operation-bridge.d.ts.map +1 -0
  18. package/dist/actions/operation-bridge.js +72 -0
  19. package/dist/actions/operation-bridge.js.map +1 -0
  20. package/dist/actions/react-query.d.ts +25 -0
  21. package/dist/actions/react-query.d.ts.map +1 -0
  22. package/dist/actions/react-query.js +71 -0
  23. package/dist/actions/react-query.js.map +1 -0
  24. package/dist/actions/use-action.d.ts +46 -0
  25. package/dist/actions/use-action.d.ts.map +1 -0
  26. package/dist/actions/use-action.js +112 -0
  27. package/dist/actions/use-action.js.map +1 -0
  28. package/dist/graph/context.d.ts +45 -0
  29. package/dist/graph/context.d.ts.map +1 -0
  30. package/dist/graph/context.js +103 -0
  31. package/dist/graph/context.js.map +1 -0
  32. package/dist/graph/executor.d.ts +41 -0
  33. package/dist/graph/executor.d.ts.map +1 -0
  34. package/dist/graph/executor.js +2 -0
  35. package/dist/graph/executor.js.map +1 -0
  36. package/dist/graph/graph-hooks.d.ts +6 -0
  37. package/dist/graph/graph-hooks.d.ts.map +1 -0
  38. package/dist/graph/graph-hooks.js +61 -0
  39. package/dist/graph/graph-hooks.js.map +1 -0
  40. package/dist/graph/index.d.ts +9 -0
  41. package/dist/graph/index.d.ts.map +1 -0
  42. package/dist/graph/index.js +10 -0
  43. package/dist/graph/index.js.map +1 -0
  44. package/dist/graph/operation-cache.d.ts +5 -0
  45. package/dist/graph/operation-cache.d.ts.map +1 -0
  46. package/dist/graph/operation-cache.js +17 -0
  47. package/dist/graph/operation-cache.js.map +1 -0
  48. package/dist/graph/operation-hooks.d.ts +20 -0
  49. package/dist/graph/operation-hooks.d.ts.map +1 -0
  50. package/dist/graph/operation-hooks.js +360 -0
  51. package/dist/graph/operation-hooks.js.map +1 -0
  52. package/dist/graph/operation-types.d.ts +113 -0
  53. package/dist/graph/operation-types.d.ts.map +1 -0
  54. package/dist/graph/operation-types.js +2 -0
  55. package/dist/graph/operation-types.js.map +1 -0
  56. package/dist/graph/reflected-entity-data-hooks.d.ts +8 -0
  57. package/dist/graph/reflected-entity-data-hooks.d.ts.map +1 -0
  58. package/dist/graph/reflected-entity-data-hooks.js +17 -0
  59. package/dist/graph/reflected-entity-data-hooks.js.map +1 -0
  60. package/dist/graph/reflected-operation-invoker.d.ts +12 -0
  61. package/dist/graph/reflected-operation-invoker.d.ts.map +1 -0
  62. package/dist/graph/reflected-operation-invoker.js +42 -0
  63. package/dist/graph/reflected-operation-invoker.js.map +1 -0
  64. package/dist/index.d.ts +2 -0
  65. package/dist/index.d.ts.map +1 -0
  66. package/dist/index.js +2 -0
  67. package/dist/index.js.map +1 -0
  68. package/package.json +80 -0
@@ -0,0 +1,113 @@
1
+ import type { ClientDomainOperationDeclaration as ClientOperationDeclaration, DurableOperationMetadata, GraphSchemaParseResult, GraphSchemaLike, GraphSchemaValidationIssue, GraphClientCache, OperationInputSchema, ReflectedOperationDescriptor } from '@ontahi/core/data-graph';
2
+ import type { TaskRunRef, TaskSnapshot } from '@ontahi/core/runtime/contracts';
3
+ import type { InfiniteData, QueryKey, UseInfiniteQueryOptions, UseQueryOptions } from '@tanstack/react-query';
4
+ import type { OperationInvocationFailure, OperationInvocationResult } from '../actions/index.js';
5
+ export type { GraphClientCache };
6
+ export type ClientOperationLike<TInput = unknown, TData = unknown> = ClientOperationDeclaration<TInput, TData> & {
7
+ id: string;
8
+ entityName: string;
9
+ name: string;
10
+ };
11
+ export type ClientSchemaOperationLike<TInput = unknown, TData = unknown> = Omit<ClientOperationDeclaration<any, any>, '__clientTypes'> & {
12
+ id: string;
13
+ entityName: string;
14
+ name: string;
15
+ input: OperationInputSchema<GraphSchemaLike, TInput>;
16
+ __clientTypes?: {
17
+ input: TInput;
18
+ output: TData;
19
+ };
20
+ };
21
+ export type ReflectedOperationLike<TInput = unknown, TData = unknown> = ReflectedOperationDescriptor<TInput, TData>;
22
+ export type DurableOperationLike<TInput = unknown, TResult = unknown> = ClientOperationLike<TInput, TResult> & {
23
+ durable: DurableOperationMetadata<TInput, TResult>;
24
+ };
25
+ export type DurableOperationHookResult<TInput, TResult> = OperationHookResult<TInput, TaskRunRef> & {
26
+ durable: DurableOperationMetadata<TInput, TResult>;
27
+ snapshot: TaskSnapshot<TResult> | undefined;
28
+ progress: TaskSnapshot<TResult>['progress'];
29
+ finalValue: TResult | undefined;
30
+ runError: TaskSnapshot<TResult>['error'];
31
+ isQueued: boolean;
32
+ isRunning: boolean;
33
+ isCompleted: boolean;
34
+ isFailed: boolean;
35
+ isCancelled: boolean;
36
+ isRefreshingRun: boolean;
37
+ };
38
+ export type MaybePromise<T> = T | Promise<T>;
39
+ export type OperationHookOptions<TInput, TData> = {
40
+ onExecute?: (args: {
41
+ input: TInput;
42
+ }) => MaybePromise<unknown>;
43
+ onSuccess?: (args: {
44
+ input: TInput;
45
+ value: TData;
46
+ result: Extract<OperationInvocationResult<TData>, {
47
+ ok: true;
48
+ }>;
49
+ }) => MaybePromise<unknown>;
50
+ onError?: (args: {
51
+ input: TInput;
52
+ error: OperationInvocationFailure;
53
+ result: OperationInvocationFailure;
54
+ }) => MaybePromise<unknown>;
55
+ onSettled?: (args: {
56
+ input: TInput;
57
+ result: OperationInvocationResult<TData>;
58
+ }) => MaybePromise<unknown>;
59
+ invalidateOnSuccess?: boolean;
60
+ };
61
+ export type DurableOperationHookOptions<TInput> = OperationHookOptions<TInput, TaskRunRef> & {
62
+ pollIntervalMs?: number;
63
+ };
64
+ export type OperationInputArgs<TInput> = [TInput] extends [void] ? [] : [input: TInput];
65
+ export type OperationHookResult<TInput, TData> = {
66
+ execute: (...args: OperationInputArgs<TInput>) => void;
67
+ executeAsync: (...args: OperationInputArgs<TInput>) => Promise<OperationInvocationResult<TData>>;
68
+ input: TInput | undefined;
69
+ result: OperationInvocationResult<TData> | undefined;
70
+ value: TData | undefined;
71
+ reset: () => void;
72
+ status: 'idle' | 'executing' | 'hasSucceeded' | 'hasErrored';
73
+ isIdle: boolean;
74
+ isExecuting: boolean;
75
+ isTransitioning: boolean;
76
+ isPending: boolean;
77
+ hasSucceeded: boolean;
78
+ hasErrored: boolean;
79
+ };
80
+ export type OperationInputController<TInput> = {
81
+ /** The editable public input, before schema normalization. */
82
+ draft: TInput;
83
+ setDraft: (next: TInput | ((current: TInput) => TInput)) => void;
84
+ setField: <TField extends keyof TInput>(field: TField, value: TInput[TField]) => void;
85
+ reset: (next?: TInput) => void;
86
+ /** The complete validation result for the current draft. */
87
+ validation: GraphSchemaParseResult<TInput>;
88
+ issues: GraphSchemaValidationIssue[];
89
+ issue: (path: string | ReadonlyArray<string | number>) => GraphSchemaValidationIssue | undefined;
90
+ isValid: boolean;
91
+ /** The parsed and normalized input, available only while the draft is valid. */
92
+ value: TInput | undefined;
93
+ };
94
+ export type OperationInputHookResult<TInput, TData> = Omit<OperationHookResult<TInput, TData>, 'execute' | 'executeAsync' | 'input'> & {
95
+ execute: () => void;
96
+ executeAsync: () => Promise<OperationInvocationResult<TData>>;
97
+ input: OperationInputController<TInput>;
98
+ lastInput: TInput | undefined;
99
+ };
100
+ export type OperationRunner<TInput, TData> = (input: TInput) => Promise<OperationInvocationResult<TData>>;
101
+ export type OperationQueryOptions<TData> = Omit<UseQueryOptions<unknown, Error, TData, QueryKey>, 'placeholderData' | 'queryFn' | 'queryKey' | 'select'> & {
102
+ placeholderData?: TData | ((previousData: TData | undefined) => TData | undefined);
103
+ };
104
+ export type OperationInfinitePageParamResolver<TData, TPageParam> = (page: TData, pages: TData[], pageParam: TPageParam, allPageParams: TPageParam[]) => TPageParam | null | undefined;
105
+ export type OperationInfiniteQueryOptions<TInput, TData, TPageParam> = Omit<UseInfiniteQueryOptions<unknown, Error, InfiniteData<TData, TPageParam>, QueryKey, TPageParam>, 'getNextPageParam' | 'getPreviousPageParam' | 'queryFn' | 'queryKey' | 'select'> & {
106
+ getPageInput: (args: {
107
+ input: TInput;
108
+ pageParam: TPageParam;
109
+ }) => TInput;
110
+ getNextPageParam: OperationInfinitePageParamResolver<TData, TPageParam>;
111
+ getPreviousPageParam?: OperationInfinitePageParamResolver<TData, TPageParam>;
112
+ };
113
+ //# sourceMappingURL=operation-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operation-types.d.ts","sourceRoot":"","sources":["../../src/graph/operation-types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=operation-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operation-types.js","sourceRoot":"","sources":["../../src/graph/operation-types.ts"],"names":[],"mappings":"","sourcesContent":["import type {\n ClientDomainOperationDeclaration as ClientOperationDeclaration,\n DurableOperationMetadata,\n GraphSchemaParseResult,\n GraphSchemaLike,\n GraphSchemaValidationIssue,\n GraphClientCache,\n OperationInputSchema,\n ReflectedOperationDescriptor,\n} from '@ontahi/core/data-graph';\nimport type { TaskRunRef, TaskSnapshot } from '@ontahi/core/runtime/contracts';\nimport type {\n InfiniteData,\n QueryKey,\n UseInfiniteQueryOptions,\n UseQueryOptions,\n} from '@tanstack/react-query';\n\nimport type { OperationInvocationFailure, OperationInvocationResult } from '../actions/index.js';\n\nexport type { GraphClientCache };\n\nexport type ClientOperationLike<TInput = unknown, TData = unknown> = ClientOperationDeclaration<\n TInput,\n TData\n> & {\n id: string;\n entityName: string;\n name: string;\n};\n\nexport type ClientSchemaOperationLike<TInput = unknown, TData = unknown> = Omit<\n ClientOperationDeclaration<any, any>,\n '__clientTypes'\n> & {\n id: string;\n entityName: string;\n name: string;\n input: OperationInputSchema<GraphSchemaLike, TInput>;\n __clientTypes?: {\n input: TInput;\n output: TData;\n };\n};\n\nexport type ReflectedOperationLike<\n TInput = unknown,\n TData = unknown,\n> = ReflectedOperationDescriptor<TInput, TData>;\n\nexport type DurableOperationLike<TInput = unknown, TResult = unknown> = ClientOperationLike<\n TInput,\n TResult\n> & {\n durable: DurableOperationMetadata<TInput, TResult>;\n};\n\nexport type DurableOperationHookResult<TInput, TResult> = OperationHookResult<\n TInput,\n TaskRunRef\n> & {\n durable: DurableOperationMetadata<TInput, TResult>;\n snapshot: TaskSnapshot<TResult> | undefined;\n progress: TaskSnapshot<TResult>['progress'];\n finalValue: TResult | undefined;\n runError: TaskSnapshot<TResult>['error'];\n isQueued: boolean;\n isRunning: boolean;\n isCompleted: boolean;\n isFailed: boolean;\n isCancelled: boolean;\n isRefreshingRun: boolean;\n};\n\nexport type MaybePromise<T> = T | Promise<T>;\n\nexport type OperationHookOptions<TInput, TData> = {\n onExecute?: (args: { input: TInput }) => MaybePromise<unknown>;\n onSuccess?: (args: {\n input: TInput;\n value: TData;\n result: Extract<OperationInvocationResult<TData>, { ok: true }>;\n }) => MaybePromise<unknown>;\n onError?: (args: {\n input: TInput;\n error: OperationInvocationFailure;\n result: OperationInvocationFailure;\n }) => MaybePromise<unknown>;\n onSettled?: (args: {\n input: TInput;\n result: OperationInvocationResult<TData>;\n }) => MaybePromise<unknown>;\n invalidateOnSuccess?: boolean;\n};\n\nexport type DurableOperationHookOptions<TInput> = OperationHookOptions<TInput, TaskRunRef> & {\n pollIntervalMs?: number;\n};\n\nexport type OperationInputArgs<TInput> = [TInput] extends [void] ? [] : [input: TInput];\n\nexport type OperationHookResult<TInput, TData> = {\n execute: (...args: OperationInputArgs<TInput>) => void;\n executeAsync: (...args: OperationInputArgs<TInput>) => Promise<OperationInvocationResult<TData>>;\n input: TInput | undefined;\n result: OperationInvocationResult<TData> | undefined;\n value: TData | undefined;\n reset: () => void;\n status: 'idle' | 'executing' | 'hasSucceeded' | 'hasErrored';\n isIdle: boolean;\n isExecuting: boolean;\n isTransitioning: boolean;\n isPending: boolean;\n hasSucceeded: boolean;\n hasErrored: boolean;\n};\n\nexport type OperationInputController<TInput> = {\n /** The editable public input, before schema normalization. */\n draft: TInput;\n setDraft: (next: TInput | ((current: TInput) => TInput)) => void;\n setField: <TField extends keyof TInput>(field: TField, value: TInput[TField]) => void;\n reset: (next?: TInput) => void;\n /** The complete validation result for the current draft. */\n validation: GraphSchemaParseResult<TInput>;\n issues: GraphSchemaValidationIssue[];\n issue: (path: string | ReadonlyArray<string | number>) => GraphSchemaValidationIssue | undefined;\n isValid: boolean;\n /** The parsed and normalized input, available only while the draft is valid. */\n value: TInput | undefined;\n};\n\nexport type OperationInputHookResult<TInput, TData> = Omit<\n OperationHookResult<TInput, TData>,\n 'execute' | 'executeAsync' | 'input'\n> & {\n execute: () => void;\n executeAsync: () => Promise<OperationInvocationResult<TData>>;\n input: OperationInputController<TInput>;\n lastInput: TInput | undefined;\n};\n\nexport type OperationRunner<TInput, TData> = (\n input: TInput,\n) => Promise<OperationInvocationResult<TData>>;\n\nexport type OperationQueryOptions<TData> = Omit<\n UseQueryOptions<unknown, Error, TData, QueryKey>,\n 'placeholderData' | 'queryFn' | 'queryKey' | 'select'\n> & {\n placeholderData?: TData | ((previousData: TData | undefined) => TData | undefined);\n};\n\nexport type OperationInfinitePageParamResolver<TData, TPageParam> = (\n page: TData,\n pages: TData[],\n pageParam: TPageParam,\n allPageParams: TPageParam[],\n) => TPageParam | null | undefined;\n\nexport type OperationInfiniteQueryOptions<TInput, TData, TPageParam> = Omit<\n UseInfiniteQueryOptions<unknown, Error, InfiniteData<TData, TPageParam>, QueryKey, TPageParam>,\n 'getNextPageParam' | 'getPreviousPageParam' | 'queryFn' | 'queryKey' | 'select'\n> & {\n getPageInput: (args: { input: TInput; pageParam: TPageParam }) => TInput;\n getNextPageParam: OperationInfinitePageParamResolver<TData, TPageParam>;\n getPreviousPageParam?: OperationInfinitePageParamResolver<TData, TPageParam>;\n};\n"]}
@@ -0,0 +1,8 @@
1
+ import type { ReflectedEntityDataQuery, ReflectedEntityDataResult } from '@ontahi/core/data-graph';
2
+ import { type QueryKey, type UseQueryOptions, type UseQueryResult } from '@tanstack/react-query';
3
+ export declare const getReflectedEntityDataQueryKey: (query: ReflectedEntityDataQuery) => QueryKey;
4
+ export type ReflectedEntityDataQueryOptions = Omit<UseQueryOptions<ReflectedEntityDataResult, Error, ReflectedEntityDataResult, QueryKey>, 'queryFn' | 'queryKey'> & {
5
+ queryKey?: QueryKey;
6
+ };
7
+ export declare function useReflectedEntityDataQuery(query: ReflectedEntityDataQuery, options?: ReflectedEntityDataQueryOptions): UseQueryResult<ReflectedEntityDataResult, Error>;
8
+ //# sourceMappingURL=reflected-entity-data-hooks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reflected-entity-data-hooks.d.ts","sourceRoot":"","sources":["../../src/graph/reflected-entity-data-hooks.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACnG,OAAO,EAEL,KAAK,QAAQ,EACb,KAAK,eAAe,EACpB,KAAK,cAAc,EACpB,MAAM,uBAAuB,CAAC;AAI/B,eAAO,MAAM,8BAA8B,GAAI,OAAO,wBAAwB,KAAG,QAIhF,CAAC;AAEF,MAAM,MAAM,+BAA+B,GAAG,IAAI,CAChD,eAAe,CAAC,yBAAyB,EAAE,KAAK,EAAE,yBAAyB,EAAE,QAAQ,CAAC,EACtF,SAAS,GAAG,UAAU,CACvB,GAAG;IACF,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB,CAAC;AAEF,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,wBAAwB,EAC/B,OAAO,CAAC,EAAE,+BAA+B,GACxC,cAAc,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAQlD"}
@@ -0,0 +1,17 @@
1
+ 'use client';
2
+ import { useQuery, } from '@tanstack/react-query';
3
+ import { useReflectedEntityDataReader } from './context.js';
4
+ export const getReflectedEntityDataQueryKey = (query) => [
5
+ 'graph',
6
+ 'reflected-entity-data',
7
+ query,
8
+ ];
9
+ export function useReflectedEntityDataQuery(query, options) {
10
+ const reader = useReflectedEntityDataReader();
11
+ return useQuery({
12
+ ...options,
13
+ queryKey: options?.queryKey ?? getReflectedEntityDataQueryKey(query),
14
+ queryFn: () => reader.readEntityData(query),
15
+ });
16
+ }
17
+ //# sourceMappingURL=reflected-entity-data-hooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reflected-entity-data-hooks.js","sourceRoot":"","sources":["../../src/graph/reflected-entity-data-hooks.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAGb,OAAO,EACL,QAAQ,GAIT,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,4BAA4B,EAAE,MAAM,cAAc,CAAC;AAE5D,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,KAA+B,EAAY,EAAE,CAAC;IAC3F,OAAO;IACP,uBAAuB;IACvB,KAAK;CACN,CAAC;AASF,MAAM,UAAU,2BAA2B,CACzC,KAA+B,EAC/B,OAAyC;IAEzC,MAAM,MAAM,GAAG,4BAA4B,EAAE,CAAC;IAE9C,OAAO,QAAQ,CAAC;QACd,GAAG,OAAO;QACV,QAAQ,EAAE,OAAO,EAAE,QAAQ,IAAI,8BAA8B,CAAC,KAAK,CAAC;QACpE,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC;KAC5C,CAAC,CAAC;AACL,CAAC","sourcesContent":["'use client';\n\nimport type { ReflectedEntityDataQuery, ReflectedEntityDataResult } from '@ontahi/core/data-graph';\nimport {\n useQuery,\n type QueryKey,\n type UseQueryOptions,\n type UseQueryResult,\n} from '@tanstack/react-query';\n\nimport { useReflectedEntityDataReader } from './context.js';\n\nexport const getReflectedEntityDataQueryKey = (query: ReflectedEntityDataQuery): QueryKey => [\n 'graph',\n 'reflected-entity-data',\n query,\n];\n\nexport type ReflectedEntityDataQueryOptions = Omit<\n UseQueryOptions<ReflectedEntityDataResult, Error, ReflectedEntityDataResult, QueryKey>,\n 'queryFn' | 'queryKey'\n> & {\n queryKey?: QueryKey;\n};\n\nexport function useReflectedEntityDataQuery(\n query: ReflectedEntityDataQuery,\n options?: ReflectedEntityDataQueryOptions,\n): UseQueryResult<ReflectedEntityDataResult, Error> {\n const reader = useReflectedEntityDataReader();\n\n return useQuery({\n ...options,\n queryKey: options?.queryKey ?? getReflectedEntityDataQueryKey(query),\n queryFn: () => reader.readEntityData(query),\n });\n}\n"]}
@@ -0,0 +1,12 @@
1
+ import { type GraphOperationDeclaration, type ReflectedOperationInvoker } from '@ontahi/core/data-graph';
2
+ import type { CommandLike, ReactGraphExecutor } from './executor.js';
3
+ export type ReflectedGraphOperationLike = GraphOperationDeclaration<any, CommandLike<any>> & {
4
+ id: string;
5
+ };
6
+ export type CreateReflectedOperationInvokerOptions = {
7
+ graphExecutor?: ReactGraphExecutor<any, any>;
8
+ graphOperations?: readonly ReflectedGraphOperationLike[];
9
+ fallback?: ReflectedOperationInvoker;
10
+ };
11
+ export declare const createReflectedOperationInvoker: ({ fallback, graphExecutor, graphOperations, }: CreateReflectedOperationInvokerOptions) => ReflectedOperationInvoker;
12
+ //# sourceMappingURL=reflected-operation-invoker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reflected-operation-invoker.d.ts","sourceRoot":"","sources":["../../src/graph/reflected-operation-invoker.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,yBAAyB,EAE9B,KAAK,yBAAyB,EAC/B,MAAM,yBAAyB,CAAC;AAQjC,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAErE,MAAM,MAAM,2BAA2B,GAAG,yBAAyB,CAAC,GAAG,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG;IAC3F,EAAE,EAAE,MAAM,CAAC;CACZ,CAAC;AAEF,MAAM,MAAM,sCAAsC,GAAG;IACnD,aAAa,CAAC,EAAE,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC7C,eAAe,CAAC,EAAE,SAAS,2BAA2B,EAAE,CAAC;IACzD,QAAQ,CAAC,EAAE,yBAAyB,CAAC;CACtC,CAAC;AAaF,eAAO,MAAM,+BAA+B,GAAI,+CAI7C,sCAAsC,KAAG,yBA8C3C,CAAC"}
@@ -0,0 +1,42 @@
1
+ 'use client';
2
+ import { safeParseUnknownGraphSchema, } from '@ontahi/core/data-graph';
3
+ import { operationInputInvalid, operationRejected, toOperationValidationIssues, } from '@ontahi/core/runtime/contracts';
4
+ const resolveGraphCommand = (command) => 'build' in command ? command.build() : command;
5
+ const invocationErrored = (error) => ({
6
+ ok: false,
7
+ kind: 'errored',
8
+ executed: 'unknown',
9
+ message: error instanceof Error ? error.message : 'Graph operation execution failed.',
10
+ ...(error instanceof Error ? { errorType: error.name } : {}),
11
+ });
12
+ export const createReflectedOperationInvoker = ({ fallback, graphExecutor, graphOperations = [], }) => {
13
+ const graphOperationsById = new Map(graphOperations.map(operation => [operation.id, operation]));
14
+ return {
15
+ canInvokeOperation: operation => (Boolean(graphExecutor) && graphOperationsById.has(operation.id)) ||
16
+ Boolean(fallback && (fallback.canInvokeOperation?.(operation) ?? true)),
17
+ invokeOperation: async (invocation) => {
18
+ const { input, operation, operationId } = invocation;
19
+ const graphOperation = graphOperationsById.get(operationId);
20
+ if (!graphOperation || !graphExecutor) {
21
+ if (fallback) {
22
+ return fallback.invokeOperation(invocation);
23
+ }
24
+ return operationRejected('operation_not_available', `No reflected runtime can execute ${operationId}.`);
25
+ }
26
+ try {
27
+ const parsedInput = graphOperation.input
28
+ ? safeParseUnknownGraphSchema(graphOperation.input, input)
29
+ : { success: true, data: input };
30
+ if (!parsedInput.success) {
31
+ return operationInputInvalid('Operation input does not match its declared schema.', toOperationValidationIssues({ issues: parsedInput.issues }));
32
+ }
33
+ const value = await graphExecutor.runCommand(resolveGraphCommand(graphOperation.run(parsedInput.data)));
34
+ return { ok: true, kind: 'success', value: value };
35
+ }
36
+ catch (error) {
37
+ return invocationErrored(error);
38
+ }
39
+ },
40
+ };
41
+ };
42
+ //# sourceMappingURL=reflected-operation-invoker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reflected-operation-invoker.js","sourceRoot":"","sources":["../../src/graph/reflected-operation-invoker.ts"],"names":[],"mappings":"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","sourcesContent":["'use client';\n\nimport {\n safeParseUnknownGraphSchema,\n type GraphOperationDeclaration,\n type ReflectedOperationInvocation,\n type ReflectedOperationInvoker,\n} from '@ontahi/core/data-graph';\nimport {\n operationInputInvalid,\n operationRejected,\n toOperationValidationIssues,\n type OperationInvocationResult,\n} from '@ontahi/core/runtime/contracts';\n\nimport type { CommandLike, ReactGraphExecutor } from './executor.js';\n\nexport type ReflectedGraphOperationLike = GraphOperationDeclaration<any, CommandLike<any>> & {\n id: string;\n};\n\nexport type CreateReflectedOperationInvokerOptions = {\n graphExecutor?: ReactGraphExecutor<any, any>;\n graphOperations?: readonly ReflectedGraphOperationLike[];\n fallback?: ReflectedOperationInvoker;\n};\n\nconst resolveGraphCommand = (command: CommandLike<unknown>) =>\n 'build' in command ? command.build() : command;\n\nconst invocationErrored = (error: unknown): OperationInvocationResult => ({\n ok: false,\n kind: 'errored',\n executed: 'unknown',\n message: error instanceof Error ? error.message : 'Graph operation execution failed.',\n ...(error instanceof Error ? { errorType: error.name } : {}),\n});\n\nexport const createReflectedOperationInvoker = ({\n fallback,\n graphExecutor,\n graphOperations = [],\n}: CreateReflectedOperationInvokerOptions): ReflectedOperationInvoker => {\n const graphOperationsById = new Map(graphOperations.map(operation => [operation.id, operation]));\n\n return {\n canInvokeOperation: operation =>\n (Boolean(graphExecutor) && graphOperationsById.has(operation.id)) ||\n Boolean(fallback && (fallback.canInvokeOperation?.(operation) ?? true)),\n invokeOperation: async <TInput = unknown, TData = unknown>(\n invocation: ReflectedOperationInvocation<TInput>,\n ): Promise<OperationInvocationResult<TData>> => {\n const { input, operation, operationId } = invocation;\n const graphOperation = graphOperationsById.get(operationId);\n\n if (!graphOperation || !graphExecutor) {\n if (fallback) {\n return fallback.invokeOperation<TInput, TData>(invocation);\n }\n\n return operationRejected(\n 'operation_not_available',\n `No reflected runtime can execute ${operationId}.`,\n );\n }\n\n try {\n const parsedInput = graphOperation.input\n ? safeParseUnknownGraphSchema(graphOperation.input, input)\n : { success: true as const, data: input };\n\n if (!parsedInput.success) {\n return operationInputInvalid(\n 'Operation input does not match its declared schema.',\n toOperationValidationIssues({ issues: parsedInput.issues }),\n );\n }\n\n const value = await graphExecutor.runCommand(\n resolveGraphCommand(graphOperation.run(parsedInput.data as never)),\n );\n\n return { ok: true, kind: 'success', value: value as TData };\n } catch (error) {\n return invocationErrored(error) as OperationInvocationResult<TData>;\n }\n },\n };\n};\n"]}
@@ -0,0 +1,2 @@
1
+ export * from './actions/index.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,2 @@
1
+ export * from './actions/index.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC","sourcesContent":["export * from './actions/index.js';\n"]}
package/package.json ADDED
@@ -0,0 +1,80 @@
1
+ {
2
+ "name": "@ontahi/react",
3
+ "version": "0.1.0-alpha.0",
4
+ "description": "Non-visual React hooks and bridge adapters for Ontahi applications",
5
+ "homepage": "https://github.com/javifernandes/ontahi/tree/main/packages/react",
6
+ "license": "Apache-2.0",
7
+ "author": "Javier Fernandes",
8
+ "repository": {
9
+ "type": "git",
10
+ "url": "git+https://github.com/javifernandes/ontahi.git",
11
+ "directory": "packages/react"
12
+ },
13
+ "files": [
14
+ "dist",
15
+ "LICENSE",
16
+ "NOTICE"
17
+ ],
18
+ "type": "module",
19
+ "main": "dist/index.js",
20
+ "types": "dist/index.d.ts",
21
+ "exports": {
22
+ ".": {
23
+ "types": "./dist/index.d.ts",
24
+ "import": "./dist/index.js",
25
+ "require": "./dist/index.js"
26
+ },
27
+ "./actions": {
28
+ "types": "./dist/actions/index.d.ts",
29
+ "import": "./dist/actions/index.js",
30
+ "require": "./dist/actions/index.js"
31
+ },
32
+ "./graph": {
33
+ "types": "./dist/graph/index.d.ts",
34
+ "import": "./dist/graph/index.js",
35
+ "require": "./dist/graph/index.js"
36
+ }
37
+ },
38
+ "publishConfig": {
39
+ "access": "public",
40
+ "provenance": true
41
+ },
42
+ "dependencies": {
43
+ "@ontahi/core": "0.1.0-alpha.0"
44
+ },
45
+ "devDependencies": {
46
+ "@tanstack/react-query": "^5.51.0",
47
+ "@testing-library/react": "^16.3.2",
48
+ "@types/node": "^20.0.0",
49
+ "@types/react": "^18.3.0",
50
+ "@types/react-dom": "^18.3.0",
51
+ "@vitest/coverage-v8": "^4.0.18",
52
+ "jsdom": "^28.1.0",
53
+ "react-dom": "^18.3.0",
54
+ "typescript": "^5.0.0",
55
+ "vitest": "^4.0.18"
56
+ },
57
+ "peerDependencies": {
58
+ "@tanstack/react-query": "^5.51.0",
59
+ "@types/react": "^18.3.0 || ^19.0.0",
60
+ "react": "^18.3.0 || ^19.0.0"
61
+ },
62
+ "peerDependenciesMeta": {
63
+ "@types/react": {
64
+ "optional": true
65
+ }
66
+ },
67
+ "engines": {
68
+ "node": ">=20.19.0"
69
+ },
70
+ "scripts": {
71
+ "build": "pnpm exec tsc -p tsconfig.build.json",
72
+ "build:watch": "pnpm exec tsc -p tsconfig.build.json --watch",
73
+ "test": "pnpm exec vitest run",
74
+ "test:coverage": "pnpm exec vitest run --coverage",
75
+ "test:watch": "pnpm exec vitest",
76
+ "typecheck": "pnpm exec tsc -p tsconfig.json",
77
+ "lint": "pnpm exec eslint \"src/**/*.{ts,tsx}\" \"test/**/*.{ts,tsx}\" --max-warnings 0",
78
+ "lint:fix": "pnpm exec eslint \"src/**/*.{ts,tsx}\" \"test/**/*.{ts,tsx}\" --fix --max-warnings 0"
79
+ }
80
+ }