@allternit/ix 0.1.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.
- package/README.md +320 -0
- package/dist/adapters/json-render.d.ts +211 -0
- package/dist/adapters/json-render.d.ts.bak +211 -0
- package/dist/adapters/json-render.d.ts.map +1 -0
- package/dist/adapters/json-render.js +576 -0
- package/dist/adapters/json-render.js.bak +576 -0
- package/dist/adapters/json-render.js.map +1 -0
- package/dist/catalog/registry.d.ts +65 -0
- package/dist/catalog/registry.d.ts.bak +65 -0
- package/dist/catalog/registry.d.ts.map +1 -0
- package/dist/catalog/registry.js +388 -0
- package/dist/catalog/registry.js.bak +388 -0
- package/dist/catalog/registry.js.map +1 -0
- package/dist/collab/capsule-registry.d.ts +114 -0
- package/dist/collab/capsule-registry.d.ts.bak +114 -0
- package/dist/collab/capsule-registry.d.ts.map +1 -0
- package/dist/collab/capsule-registry.js +271 -0
- package/dist/collab/capsule-registry.js.bak +271 -0
- package/dist/collab/capsule-registry.js.map +1 -0
- package/dist/collab/index.d.ts +21 -0
- package/dist/collab/index.d.ts.bak +21 -0
- package/dist/collab/index.d.ts.map +1 -0
- package/dist/collab/index.js +32 -0
- package/dist/collab/index.js.bak +32 -0
- package/dist/collab/index.js.map +1 -0
- package/dist/collab/visual-editor.d.ts +199 -0
- package/dist/collab/visual-editor.d.ts.bak +199 -0
- package/dist/collab/visual-editor.d.ts.map +1 -0
- package/dist/collab/visual-editor.js +259 -0
- package/dist/collab/visual-editor.js.bak +259 -0
- package/dist/collab/visual-editor.js.map +1 -0
- package/dist/collab/yjs-adapter.d.ts +95 -0
- package/dist/collab/yjs-adapter.d.ts.bak +95 -0
- package/dist/collab/yjs-adapter.d.ts.map +1 -0
- package/dist/collab/yjs-adapter.js +282 -0
- package/dist/collab/yjs-adapter.js.bak +282 -0
- package/dist/collab/yjs-adapter.js.map +1 -0
- package/dist/collab/yjs-client.d.ts +101 -0
- package/dist/collab/yjs-client.d.ts.bak +101 -0
- package/dist/collab/yjs-client.d.ts.map +1 -0
- package/dist/collab/yjs-client.js +193 -0
- package/dist/collab/yjs-client.js.bak +193 -0
- package/dist/collab/yjs-client.js.map +1 -0
- package/dist/collab/yjs-protocols.d.ts +128 -0
- package/dist/collab/yjs-protocols.d.ts.bak +128 -0
- package/dist/collab/yjs-protocols.d.ts.map +1 -0
- package/dist/collab/yjs-protocols.js +245 -0
- package/dist/collab/yjs-protocols.js.bak +245 -0
- package/dist/collab/yjs-protocols.js.map +1 -0
- package/dist/collab/yjs-types.d.ts +201 -0
- package/dist/collab/yjs-types.d.ts.bak +201 -0
- package/dist/collab/yjs-types.d.ts.map +1 -0
- package/dist/collab/yjs-types.js +45 -0
- package/dist/collab/yjs-types.js.bak +45 -0
- package/dist/collab/yjs-types.js.map +1 -0
- package/dist/index.d.ts +38 -0
- package/dist/index.d.ts.bak +38 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +48 -0
- package/dist/index.js.bak +48 -0
- package/dist/index.js.map +1 -0
- package/dist/pipeline/llm-to-ix.d.ts +249 -0
- package/dist/pipeline/llm-to-ix.d.ts.bak +249 -0
- package/dist/pipeline/llm-to-ix.d.ts.map +1 -0
- package/dist/pipeline/llm-to-ix.js +992 -0
- package/dist/pipeline/llm-to-ix.js.bak +992 -0
- package/dist/pipeline/llm-to-ix.js.map +1 -0
- package/dist/react/index.d.ts +18 -0
- package/dist/react/index.d.ts.bak +18 -0
- package/dist/react/index.d.ts.map +1 -0
- package/dist/react/index.js +18 -0
- package/dist/react/index.js.bak +18 -0
- package/dist/react/index.js.map +1 -0
- package/dist/react/renderer.d.ts +47 -0
- package/dist/react/renderer.d.ts.bak +47 -0
- package/dist/react/renderer.d.ts.map +1 -0
- package/dist/react/renderer.js +420 -0
- package/dist/react/renderer.js.bak +420 -0
- package/dist/react/renderer.js.map +1 -0
- package/dist/renderer/renderer.d.ts +55 -0
- package/dist/renderer/renderer.d.ts.bak +55 -0
- package/dist/renderer/renderer.d.ts.map +1 -0
- package/dist/renderer/renderer.js +232 -0
- package/dist/renderer/renderer.js.bak +232 -0
- package/dist/renderer/renderer.js.map +1 -0
- package/dist/runtime/capsule-runtime.d.ts +227 -0
- package/dist/runtime/capsule-runtime.d.ts.bak +227 -0
- package/dist/runtime/capsule-runtime.d.ts.map +1 -0
- package/dist/runtime/capsule-runtime.js +563 -0
- package/dist/runtime/capsule-runtime.js.bak +563 -0
- package/dist/runtime/capsule-runtime.js.map +1 -0
- package/dist/runtime/policy-gates.d.ts +116 -0
- package/dist/runtime/policy-gates.d.ts.bak +116 -0
- package/dist/runtime/policy-gates.d.ts.map +1 -0
- package/dist/runtime/policy-gates.js +317 -0
- package/dist/runtime/policy-gates.js.bak +317 -0
- package/dist/runtime/policy-gates.js.map +1 -0
- package/dist/schema/ui-ir.d.ts +26 -0
- package/dist/schema/ui-ir.d.ts.bak +26 -0
- package/dist/schema/ui-ir.d.ts.map +1 -0
- package/dist/schema/ui-ir.js +51 -0
- package/dist/schema/ui-ir.js.bak +51 -0
- package/dist/schema/ui-ir.js.map +1 -0
- package/dist/sdk/api.d.ts +101 -0
- package/dist/sdk/api.d.ts.bak +101 -0
- package/dist/sdk/api.d.ts.map +1 -0
- package/dist/sdk/api.js +177 -0
- package/dist/sdk/api.js.bak +177 -0
- package/dist/sdk/api.js.map +1 -0
- package/dist/sdk/index.d.ts +9 -0
- package/dist/sdk/index.d.ts.bak +9 -0
- package/dist/sdk/index.d.ts.map +1 -0
- package/dist/sdk/index.js +10 -0
- package/dist/sdk/index.js.bak +10 -0
- package/dist/sdk/index.js.map +1 -0
- package/dist/sdk/react.d.ts +63 -0
- package/dist/sdk/react.d.ts.bak +63 -0
- package/dist/sdk/react.d.ts.map +1 -0
- package/dist/sdk/react.js +161 -0
- package/dist/sdk/react.js.bak +161 -0
- package/dist/sdk/react.js.map +1 -0
- package/dist/state/index.d.ts +8 -0
- package/dist/state/index.d.ts.bak +8 -0
- package/dist/state/index.d.ts.map +1 -0
- package/dist/state/index.js +8 -0
- package/dist/state/index.js.bak +8 -0
- package/dist/state/index.js.map +1 -0
- package/dist/state/patch.d.ts +73 -0
- package/dist/state/patch.d.ts.bak +73 -0
- package/dist/state/patch.d.ts.map +1 -0
- package/dist/state/patch.js +437 -0
- package/dist/state/patch.js.bak +437 -0
- package/dist/state/patch.js.map +1 -0
- package/dist/state/store.d.ts +50 -0
- package/dist/state/store.d.ts.bak +50 -0
- package/dist/state/store.d.ts.map +1 -0
- package/dist/state/store.js +246 -0
- package/dist/state/store.js.bak +246 -0
- package/dist/state/store.js.map +1 -0
- package/dist/svelte/index.d.ts +15 -0
- package/dist/svelte/index.d.ts.bak +15 -0
- package/dist/svelte/index.d.ts.map +1 -0
- package/dist/svelte/index.js +15 -0
- package/dist/svelte/index.js.bak +15 -0
- package/dist/svelte/index.js.map +1 -0
- package/dist/svelte/renderer.d.ts +35 -0
- package/dist/svelte/renderer.d.ts.bak +35 -0
- package/dist/svelte/renderer.d.ts.map +1 -0
- package/dist/svelte/renderer.js +317 -0
- package/dist/svelte/renderer.js.bak +317 -0
- package/dist/svelte/renderer.js.map +1 -0
- package/dist/types/index.d.ts +349 -0
- package/dist/types/index.d.ts.bak +349 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +152 -0
- package/dist/types/index.js.bak +152 -0
- package/dist/types/index.js.map +1 -0
- package/dist/vue/index.d.ts +18 -0
- package/dist/vue/index.d.ts.bak +18 -0
- package/dist/vue/index.d.ts.map +1 -0
- package/dist/vue/index.js +18 -0
- package/dist/vue/index.js.bak +18 -0
- package/dist/vue/index.js.map +1 -0
- package/dist/vue/renderer.d.ts +46 -0
- package/dist/vue/renderer.d.ts.bak +46 -0
- package/dist/vue/renderer.d.ts.map +1 -0
- package/dist/vue/renderer.js +302 -0
- package/dist/vue/renderer.js.bak +302 -0
- package/dist/vue/renderer.js.map +1 -0
- package/package.json +72 -0
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* A2R-IX React SDK
|
|
4
|
+
*
|
|
5
|
+
* React hooks and components for A2R-IX integration.
|
|
6
|
+
*/
|
|
7
|
+
import { useState, useEffect, useCallback, useRef, createContext, useContext } from 'react';
|
|
8
|
+
import { createReactRenderer } from '../react/renderer';
|
|
9
|
+
import { IXCapsuleClient } from './api';
|
|
10
|
+
const IXContext = createContext(null);
|
|
11
|
+
/**
|
|
12
|
+
* Hook to use IX context
|
|
13
|
+
*/
|
|
14
|
+
export function useIX() {
|
|
15
|
+
const context = useContext(IXContext);
|
|
16
|
+
if (!context) {
|
|
17
|
+
throw new Error('useIX must be used within IXProvider');
|
|
18
|
+
}
|
|
19
|
+
return context;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* IX Provider component
|
|
23
|
+
*/
|
|
24
|
+
export function IXProvider({ config, capsuleId: initialCapsuleId, ui, children }) {
|
|
25
|
+
const [client] = useState(() => createIXClient(config));
|
|
26
|
+
const [capsuleId, setCapsuleId] = useState(initialCapsuleId || null);
|
|
27
|
+
const [state, setState] = useState({});
|
|
28
|
+
const eventHandlerRef = useRef();
|
|
29
|
+
// Create capsule if UI provided and no capsuleId
|
|
30
|
+
useEffect(() => {
|
|
31
|
+
if (!capsuleId && ui) {
|
|
32
|
+
client.createCapsule({ ui }).then((response) => {
|
|
33
|
+
setCapsuleId(response.capsule_id);
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
}, [client, capsuleId, ui]);
|
|
37
|
+
// Set up event handler
|
|
38
|
+
useEffect(() => {
|
|
39
|
+
eventHandlerRef.current = (event) => {
|
|
40
|
+
if (event.event_type === 'state-change' && event.state_update) {
|
|
41
|
+
setState((prev) => ({ ...prev, ...event.state_update }));
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
}, []);
|
|
45
|
+
// Update config onEvent handler
|
|
46
|
+
useEffect(() => {
|
|
47
|
+
const originalOnEvent = config.onEvent;
|
|
48
|
+
config.onEvent = (event) => {
|
|
49
|
+
eventHandlerRef.current?.(event);
|
|
50
|
+
originalOnEvent?.(event);
|
|
51
|
+
};
|
|
52
|
+
}, [config]);
|
|
53
|
+
// Fetch initial state
|
|
54
|
+
useEffect(() => {
|
|
55
|
+
if (capsuleId) {
|
|
56
|
+
client.getCapsule(capsuleId).then((capsule) => {
|
|
57
|
+
setState(capsule.state);
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
}, [client, capsuleId]);
|
|
61
|
+
// Cleanup on unmount
|
|
62
|
+
useEffect(() => {
|
|
63
|
+
return () => {
|
|
64
|
+
client.dispose();
|
|
65
|
+
};
|
|
66
|
+
}, [client]);
|
|
67
|
+
const dispatch = useCallback((actionId, params) => {
|
|
68
|
+
if (capsuleId) {
|
|
69
|
+
client.dispatchAction(capsuleId, { action_id: actionId, params });
|
|
70
|
+
}
|
|
71
|
+
}, [client, capsuleId]);
|
|
72
|
+
const applyPatch = useCallback((patch) => {
|
|
73
|
+
if (capsuleId) {
|
|
74
|
+
client.applyPatch(capsuleId, patch);
|
|
75
|
+
}
|
|
76
|
+
}, [client, capsuleId]);
|
|
77
|
+
const value = {
|
|
78
|
+
client,
|
|
79
|
+
capsuleId,
|
|
80
|
+
state,
|
|
81
|
+
dispatch,
|
|
82
|
+
applyPatch,
|
|
83
|
+
};
|
|
84
|
+
return (_jsx(IXContext.Provider, { value: value, children: children }));
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* IX Renderer component
|
|
88
|
+
*
|
|
89
|
+
* Renders an IX capsule UI using the React renderer.
|
|
90
|
+
*/
|
|
91
|
+
export function IXRenderer({ capsuleId: propCapsuleId, components }) {
|
|
92
|
+
const ix = useIX();
|
|
93
|
+
const capsuleId = propCapsuleId || ix.capsuleId;
|
|
94
|
+
const [ui, setUi] = useState(null);
|
|
95
|
+
const rendererRef = useRef(null);
|
|
96
|
+
// Create renderer
|
|
97
|
+
useEffect(() => {
|
|
98
|
+
rendererRef.current = createReactRenderer({
|
|
99
|
+
components,
|
|
100
|
+
stateStore: {
|
|
101
|
+
get: (path) => (path ? ix.state[path] : ix.state),
|
|
102
|
+
set: (path, value) => {
|
|
103
|
+
ix.applyPatch([{ op: 'replace', path: `/${path.replace(/\./g, '/')}`, value }]);
|
|
104
|
+
},
|
|
105
|
+
subscribe: () => () => { },
|
|
106
|
+
batch: () => { },
|
|
107
|
+
snapshot: () => ix.state,
|
|
108
|
+
restore: () => { },
|
|
109
|
+
reset: () => { },
|
|
110
|
+
compute: () => { },
|
|
111
|
+
bind: () => { },
|
|
112
|
+
getBindings: () => [],
|
|
113
|
+
},
|
|
114
|
+
onEvent: (name, payload) => {
|
|
115
|
+
ix.dispatch(name, payload);
|
|
116
|
+
},
|
|
117
|
+
});
|
|
118
|
+
return () => {
|
|
119
|
+
rendererRef.current = null;
|
|
120
|
+
};
|
|
121
|
+
}, [ix, components]);
|
|
122
|
+
// Fetch UI when capsuleId changes
|
|
123
|
+
useEffect(() => {
|
|
124
|
+
if (capsuleId && ix.client) {
|
|
125
|
+
ix.client.getCapsule(capsuleId).then((capsule) => {
|
|
126
|
+
setUi(capsule.ui);
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
}, [capsuleId, ix.client]);
|
|
130
|
+
if (!ui || !rendererRef.current) {
|
|
131
|
+
return null;
|
|
132
|
+
}
|
|
133
|
+
const { UIRoot: UIRootComponent } = rendererRef.current;
|
|
134
|
+
return _jsx(UIRootComponent, { root: ui });
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Hook to use IX capsule state
|
|
138
|
+
*/
|
|
139
|
+
export function useIXState(path) {
|
|
140
|
+
const ix = useIX();
|
|
141
|
+
const value = ix.state[path];
|
|
142
|
+
const setValue = useCallback((newValue) => {
|
|
143
|
+
ix.applyPatch([{ op: 'replace', path: `/${path.replace(/\./g, '/')}`, value: newValue }]);
|
|
144
|
+
}, [ix, path]);
|
|
145
|
+
return [value, setValue];
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Hook to dispatch IX actions
|
|
149
|
+
*/
|
|
150
|
+
export function useIXAction(actionId) {
|
|
151
|
+
const ix = useIX();
|
|
152
|
+
return useCallback((params) => {
|
|
153
|
+
ix.dispatch(actionId, params);
|
|
154
|
+
}, [ix, actionId]);
|
|
155
|
+
}
|
|
156
|
+
// Helper function
|
|
157
|
+
function createIXClient(config) {
|
|
158
|
+
return new IXCapsuleClient(config);
|
|
159
|
+
}
|
|
160
|
+
export { IXCapsuleClient };
|
|
161
|
+
//# sourceMappingURL=react.js.map
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* A2R-IX React SDK
|
|
4
|
+
*
|
|
5
|
+
* React hooks and components for A2R-IX integration.
|
|
6
|
+
*/
|
|
7
|
+
import { useState, useEffect, useCallback, useRef, createContext, useContext } from 'react';
|
|
8
|
+
import { createReactRenderer } from '../react/renderer';
|
|
9
|
+
import { IXCapsuleClient } from './api';
|
|
10
|
+
const IXContext = createContext(null);
|
|
11
|
+
/**
|
|
12
|
+
* Hook to use IX context
|
|
13
|
+
*/
|
|
14
|
+
export function useIX() {
|
|
15
|
+
const context = useContext(IXContext);
|
|
16
|
+
if (!context) {
|
|
17
|
+
throw new Error('useIX must be used within IXProvider');
|
|
18
|
+
}
|
|
19
|
+
return context;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* IX Provider component
|
|
23
|
+
*/
|
|
24
|
+
export function IXProvider({ config, capsuleId: initialCapsuleId, ui, children }) {
|
|
25
|
+
const [client] = useState(() => createIXClient(config));
|
|
26
|
+
const [capsuleId, setCapsuleId] = useState(initialCapsuleId || null);
|
|
27
|
+
const [state, setState] = useState({});
|
|
28
|
+
const eventHandlerRef = useRef();
|
|
29
|
+
// Create capsule if UI provided and no capsuleId
|
|
30
|
+
useEffect(() => {
|
|
31
|
+
if (!capsuleId && ui) {
|
|
32
|
+
client.createCapsule({ ui }).then((response) => {
|
|
33
|
+
setCapsuleId(response.capsule_id);
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
}, [client, capsuleId, ui]);
|
|
37
|
+
// Set up event handler
|
|
38
|
+
useEffect(() => {
|
|
39
|
+
eventHandlerRef.current = (event) => {
|
|
40
|
+
if (event.event_type === 'state-change' && event.state_update) {
|
|
41
|
+
setState((prev) => ({ ...prev, ...event.state_update }));
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
}, []);
|
|
45
|
+
// Update config onEvent handler
|
|
46
|
+
useEffect(() => {
|
|
47
|
+
const originalOnEvent = config.onEvent;
|
|
48
|
+
config.onEvent = (event) => {
|
|
49
|
+
eventHandlerRef.current?.(event);
|
|
50
|
+
originalOnEvent?.(event);
|
|
51
|
+
};
|
|
52
|
+
}, [config]);
|
|
53
|
+
// Fetch initial state
|
|
54
|
+
useEffect(() => {
|
|
55
|
+
if (capsuleId) {
|
|
56
|
+
client.getCapsule(capsuleId).then((capsule) => {
|
|
57
|
+
setState(capsule.state);
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
}, [client, capsuleId]);
|
|
61
|
+
// Cleanup on unmount
|
|
62
|
+
useEffect(() => {
|
|
63
|
+
return () => {
|
|
64
|
+
client.dispose();
|
|
65
|
+
};
|
|
66
|
+
}, [client]);
|
|
67
|
+
const dispatch = useCallback((actionId, params) => {
|
|
68
|
+
if (capsuleId) {
|
|
69
|
+
client.dispatchAction(capsuleId, { action_id: actionId, params });
|
|
70
|
+
}
|
|
71
|
+
}, [client, capsuleId]);
|
|
72
|
+
const applyPatch = useCallback((patch) => {
|
|
73
|
+
if (capsuleId) {
|
|
74
|
+
client.applyPatch(capsuleId, patch);
|
|
75
|
+
}
|
|
76
|
+
}, [client, capsuleId]);
|
|
77
|
+
const value = {
|
|
78
|
+
client,
|
|
79
|
+
capsuleId,
|
|
80
|
+
state,
|
|
81
|
+
dispatch,
|
|
82
|
+
applyPatch,
|
|
83
|
+
};
|
|
84
|
+
return (_jsx(IXContext.Provider, { value: value, children: children }));
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* IX Renderer component
|
|
88
|
+
*
|
|
89
|
+
* Renders an IX capsule UI using the React renderer.
|
|
90
|
+
*/
|
|
91
|
+
export function IXRenderer({ capsuleId: propCapsuleId, components }) {
|
|
92
|
+
const ix = useIX();
|
|
93
|
+
const capsuleId = propCapsuleId || ix.capsuleId;
|
|
94
|
+
const [ui, setUi] = useState(null);
|
|
95
|
+
const rendererRef = useRef(null);
|
|
96
|
+
// Create renderer
|
|
97
|
+
useEffect(() => {
|
|
98
|
+
rendererRef.current = createReactRenderer({
|
|
99
|
+
components,
|
|
100
|
+
stateStore: {
|
|
101
|
+
get: (path) => (path ? ix.state[path] : ix.state),
|
|
102
|
+
set: (path, value) => {
|
|
103
|
+
ix.applyPatch([{ op: 'replace', path: `/${path.replace(/\./g, '/')}`, value }]);
|
|
104
|
+
},
|
|
105
|
+
subscribe: () => () => { },
|
|
106
|
+
batch: () => { },
|
|
107
|
+
snapshot: () => ix.state,
|
|
108
|
+
restore: () => { },
|
|
109
|
+
reset: () => { },
|
|
110
|
+
compute: () => { },
|
|
111
|
+
bind: () => { },
|
|
112
|
+
getBindings: () => [],
|
|
113
|
+
},
|
|
114
|
+
onEvent: (name, payload) => {
|
|
115
|
+
ix.dispatch(name, payload);
|
|
116
|
+
},
|
|
117
|
+
});
|
|
118
|
+
return () => {
|
|
119
|
+
rendererRef.current = null;
|
|
120
|
+
};
|
|
121
|
+
}, [ix, components]);
|
|
122
|
+
// Fetch UI when capsuleId changes
|
|
123
|
+
useEffect(() => {
|
|
124
|
+
if (capsuleId && ix.client) {
|
|
125
|
+
ix.client.getCapsule(capsuleId).then((capsule) => {
|
|
126
|
+
setUi(capsule.ui);
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
}, [capsuleId, ix.client]);
|
|
130
|
+
if (!ui || !rendererRef.current) {
|
|
131
|
+
return null;
|
|
132
|
+
}
|
|
133
|
+
const { UIRoot: UIRootComponent } = rendererRef.current;
|
|
134
|
+
return _jsx(UIRootComponent, { root: ui });
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Hook to use IX capsule state
|
|
138
|
+
*/
|
|
139
|
+
export function useIXState(path) {
|
|
140
|
+
const ix = useIX();
|
|
141
|
+
const value = ix.state[path];
|
|
142
|
+
const setValue = useCallback((newValue) => {
|
|
143
|
+
ix.applyPatch([{ op: 'replace', path: `/${path.replace(/\./g, '/')}`, value: newValue }]);
|
|
144
|
+
}, [ix, path]);
|
|
145
|
+
return [value, setValue];
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Hook to dispatch IX actions
|
|
149
|
+
*/
|
|
150
|
+
export function useIXAction(actionId) {
|
|
151
|
+
const ix = useIX();
|
|
152
|
+
return useCallback((params) => {
|
|
153
|
+
ix.dispatch(actionId, params);
|
|
154
|
+
}, [ix, actionId]);
|
|
155
|
+
}
|
|
156
|
+
// Helper function
|
|
157
|
+
function createIXClient(config) {
|
|
158
|
+
return new IXCapsuleClient(config);
|
|
159
|
+
}
|
|
160
|
+
export { IXCapsuleClient };
|
|
161
|
+
//# sourceMappingURL=react.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react.js","sourceRoot":"","sources":["../../src/sdk/react.tsx"],"names":[],"mappings":";AAAA;;;;GAIG;AAEH,OAAc,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAGnG,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAmD,MAAM,OAAO,CAAC;AAWzF,MAAM,SAAS,GAAG,aAAa,CAAwB,IAAI,CAAC,CAAC;AAE7D;;GAEG;AACH,MAAM,UAAU,KAAK;IACnB,MAAM,OAAO,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;IACtC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAC1D,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAgBD;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,EAAE,EAAE,QAAQ,EAAmB;IAC/F,MAAM,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;IACxD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAgB,gBAAgB,IAAI,IAAI,CAAC,CAAC;IACpF,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAA0B,EAAE,CAAC,CAAC;IAChE,MAAM,eAAe,GAAG,MAAM,EAAmC,CAAC;IAElE,iDAAiD;IACjD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,SAAS,IAAI,EAAE,EAAE,CAAC;YACrB,MAAM,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;gBAC7C,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YACpC,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;IAE5B,uBAAuB;IACvB,SAAS,CAAC,GAAG,EAAE;QACb,eAAe,CAAC,OAAO,GAAG,CAAC,KAAqB,EAAE,EAAE;YAClD,IAAI,KAAK,CAAC,UAAU,KAAK,cAAc,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;gBAC9D,QAAQ,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,gCAAgC;IAChC,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,eAAe,GAAG,MAAM,CAAC,OAAO,CAAC;QACvC,MAAM,CAAC,OAAO,GAAG,CAAC,KAAqB,EAAE,EAAE;YACzC,eAAe,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;YACjC,eAAe,EAAE,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb,sBAAsB;IACtB,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC5C,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC1B,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;IAExB,qBAAqB;IACrB,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,GAAG,EAAE;YACV,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,QAAgB,EAAE,MAAgC,EAAE,EAAE;QAClF,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,CAAC,cAAc,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;QACpE,CAAC;IACH,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;IAExB,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,KAAgB,EAAE,EAAE;QAClD,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACtC,CAAC;IACH,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;IAExB,MAAM,KAAK,GAAmB;QAC5B,MAAM;QACN,SAAS;QACT,KAAK;QACL,QAAQ;QACR,UAAU;KACX,CAAC;IAEF,OAAO,CACL,KAAC,SAAS,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YAC7B,QAAQ,GACU,CACtB,CAAC;AACJ,CAAC;AAYD;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,EAAmB;IAClF,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACnB,MAAM,SAAS,GAAG,aAAa,IAAI,EAAE,CAAC,SAAS,CAAC;IAChD,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAClD,MAAM,WAAW,GAAG,MAAM,CAAgD,IAAI,CAAC,CAAC;IAEhF,kBAAkB;IAClB,SAAS,CAAC,GAAG,EAAE;QACb,WAAW,CAAC,OAAO,GAAG,mBAAmB,CAAC;YACxC,UAAU;YACV,UAAU,EAAE;gBACV,GAAG,EAAE,CAAK,IAAY,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAkB;gBAC9E,GAAG,EAAE,CAAK,IAAY,EAAE,KAAQ,EAAE,EAAE;oBAClC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,KAAK,EAAiD,CAAC,CAAC,CAAC;gBACjI,CAAC;gBACD,SAAS,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,GAAE,CAAC;gBACzB,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC;gBACf,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK;gBACxB,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC;gBACjB,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC;gBACf,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC;gBACjB,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;gBACd,WAAW,EAAE,GAAG,EAAE,CAAC,EAAE;aACtB;YACD,OAAO,EAAE,CAAC,IAAY,EAAE,OAAgB,EAAE,EAAE;gBAC1C,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAkC,CAAC,CAAC;YACxD,CAAC;SACF,CAAC,CAAC;QAEH,OAAO,GAAG,EAAE;YACV,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC;QAC7B,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC;IAErB,kCAAkC;IAClC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,SAAS,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;YAC3B,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC/C,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACpB,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAE3B,IAAI,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG,WAAW,CAAC,OAAO,CAAC;IACxD,OAAO,KAAC,eAAe,IAAC,IAAI,EAAE,EAAE,GAAI,CAAC;AACvC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAI,IAAY;IACxC,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACnB,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAkB,CAAC;IAE9C,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,QAAW,EAAE,EAAE;QAC3C,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAiD,CAAC,CAAC,CAAC;IAC3I,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;IAEf,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,QAAgB;IAC1C,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IAEnB,OAAO,WAAW,CAAC,CAAC,MAAgC,EAAE,EAAE;QACtD,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAChC,CAAC,EAAE,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC;AACrB,CAAC;AAED,kBAAkB;AAClB,SAAS,cAAc,CAAC,MAA6B;IACnD,OAAO,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC;AACrC,CAAC;AAID,OAAO,EAAE,eAAe,EAAE,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* State Module
|
|
3
|
+
*
|
|
4
|
+
* JSON Patch engine (RFC 6902) and state store for A2R-IX.
|
|
5
|
+
*/
|
|
6
|
+
export { createStateStore, getStateStore, clearStateStore, type StateStore, type StateStoreConfig, } from './store';
|
|
7
|
+
export { applyPatch, applyPatchToStore, applyOperation, generatePatch, invertPatch, validatePatch, validateOperation, getValueAtPath, setValueAtPath, decodeJsonPointer, encodeJsonPointer, type JSONPatch, type JSONPatchOperation, type PatchResult, } from './patch';
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* State Module
|
|
3
|
+
*
|
|
4
|
+
* JSON Patch engine (RFC 6902) and state store for A2R-IX.
|
|
5
|
+
*/
|
|
6
|
+
export { createStateStore, getStateStore, clearStateStore, type StateStore, type StateStoreConfig, } from './store';
|
|
7
|
+
export { applyPatch, applyPatchToStore, applyOperation, generatePatch, invertPatch, validatePatch, validateOperation, getValueAtPath, setValueAtPath, decodeJsonPointer, encodeJsonPointer, type JSONPatch, type JSONPatchOperation, type PatchResult, } from './patch';
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/state/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,KAAK,UAAU,EACf,KAAK,gBAAgB,GACtB,MAAM,SAAS,CAAC;AAEjB,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,KAAK,SAAS,EACd,KAAK,kBAAkB,EACvB,KAAK,WAAW,GACjB,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* State Module
|
|
3
|
+
*
|
|
4
|
+
* JSON Patch engine (RFC 6902) and state store for A2R-IX.
|
|
5
|
+
*/
|
|
6
|
+
export { createStateStore, getStateStore, clearStateStore, } from './store';
|
|
7
|
+
export { applyPatch, applyPatchToStore, applyOperation, generatePatch, invertPatch, validatePatch, validateOperation, getValueAtPath, setValueAtPath, decodeJsonPointer, encodeJsonPointer, } from './patch';
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* State Module
|
|
3
|
+
*
|
|
4
|
+
* JSON Patch engine (RFC 6902) and state store for A2R-IX.
|
|
5
|
+
*/
|
|
6
|
+
export { createStateStore, getStateStore, clearStateStore, } from './store';
|
|
7
|
+
export { applyPatch, applyPatchToStore, applyOperation, generatePatch, invertPatch, validatePatch, validateOperation, getValueAtPath, setValueAtPath, decodeJsonPointer, encodeJsonPointer, } from './patch';
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/state/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,eAAe,GAGhB,MAAM,SAAS,CAAC;AAEjB,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,iBAAiB,GAIlB,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JSON Patch Engine (RFC 6902)
|
|
3
|
+
*
|
|
4
|
+
* Implements JSON Patch operations for state synchronization.
|
|
5
|
+
*/
|
|
6
|
+
import type { StateStore } from './store';
|
|
7
|
+
export interface JSONPatchOperation {
|
|
8
|
+
op: 'add' | 'remove' | 'replace' | 'move' | 'copy' | 'test';
|
|
9
|
+
path: string;
|
|
10
|
+
value?: unknown;
|
|
11
|
+
from?: string;
|
|
12
|
+
}
|
|
13
|
+
export type JSONPatch = JSONPatchOperation[];
|
|
14
|
+
export interface PatchResult {
|
|
15
|
+
success: boolean;
|
|
16
|
+
operations: JSONPatchOperation[];
|
|
17
|
+
failedAt?: number;
|
|
18
|
+
error?: string;
|
|
19
|
+
newState?: Record<string, unknown>;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* JSON Pointer helpers
|
|
23
|
+
*/
|
|
24
|
+
export declare function decodeJsonPointer(pointer: string): string[];
|
|
25
|
+
export declare function encodeJsonPointer(segments: string[]): string;
|
|
26
|
+
/**
|
|
27
|
+
* Get value at JSON Pointer path
|
|
28
|
+
*/
|
|
29
|
+
export declare function getValueAtPath(obj: unknown, pointer: string): unknown;
|
|
30
|
+
/**
|
|
31
|
+
* Set value at JSON Pointer path
|
|
32
|
+
*/
|
|
33
|
+
export declare function setValueAtPath(obj: unknown, pointer: string, value: unknown, operation: 'add' | 'replace' | 'remove'): unknown;
|
|
34
|
+
/**
|
|
35
|
+
* Apply single patch operation
|
|
36
|
+
*/
|
|
37
|
+
export declare function applyOperation(state: Record<string, unknown>, operation: JSONPatchOperation): {
|
|
38
|
+
success: boolean;
|
|
39
|
+
newState: Record<string, unknown>;
|
|
40
|
+
error?: string;
|
|
41
|
+
};
|
|
42
|
+
/**
|
|
43
|
+
* Apply JSON Patch to state
|
|
44
|
+
*/
|
|
45
|
+
export declare function applyPatch(state: Record<string, unknown>, patch: JSONPatch): PatchResult;
|
|
46
|
+
/**
|
|
47
|
+
* Apply patch to state store
|
|
48
|
+
*/
|
|
49
|
+
export declare function applyPatchToStore(store: StateStore, patch: JSONPatch): PatchResult;
|
|
50
|
+
/**
|
|
51
|
+
* Generate JSON Patch from two objects (diff)
|
|
52
|
+
*/
|
|
53
|
+
export declare function generatePatch(from: unknown, to: unknown, path?: string): JSONPatch;
|
|
54
|
+
/**
|
|
55
|
+
* Invert a patch for undo functionality
|
|
56
|
+
*/
|
|
57
|
+
export declare function invertPatch(patch: JSONPatch, state: Record<string, unknown>): JSONPatch;
|
|
58
|
+
/**
|
|
59
|
+
* Validate patch operation
|
|
60
|
+
*/
|
|
61
|
+
export declare function validateOperation(op: JSONPatchOperation): {
|
|
62
|
+
valid: boolean;
|
|
63
|
+
error?: string;
|
|
64
|
+
};
|
|
65
|
+
/**
|
|
66
|
+
* Validate entire patch
|
|
67
|
+
*/
|
|
68
|
+
export declare function validatePatch(patch: JSONPatch): {
|
|
69
|
+
valid: boolean;
|
|
70
|
+
error?: string;
|
|
71
|
+
index?: number;
|
|
72
|
+
};
|
|
73
|
+
//# sourceMappingURL=patch.d.ts.map
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JSON Patch Engine (RFC 6902)
|
|
3
|
+
*
|
|
4
|
+
* Implements JSON Patch operations for state synchronization.
|
|
5
|
+
*/
|
|
6
|
+
import type { StateStore } from './store';
|
|
7
|
+
export interface JSONPatchOperation {
|
|
8
|
+
op: 'add' | 'remove' | 'replace' | 'move' | 'copy' | 'test';
|
|
9
|
+
path: string;
|
|
10
|
+
value?: unknown;
|
|
11
|
+
from?: string;
|
|
12
|
+
}
|
|
13
|
+
export type JSONPatch = JSONPatchOperation[];
|
|
14
|
+
export interface PatchResult {
|
|
15
|
+
success: boolean;
|
|
16
|
+
operations: JSONPatchOperation[];
|
|
17
|
+
failedAt?: number;
|
|
18
|
+
error?: string;
|
|
19
|
+
newState?: Record<string, unknown>;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* JSON Pointer helpers
|
|
23
|
+
*/
|
|
24
|
+
export declare function decodeJsonPointer(pointer: string): string[];
|
|
25
|
+
export declare function encodeJsonPointer(segments: string[]): string;
|
|
26
|
+
/**
|
|
27
|
+
* Get value at JSON Pointer path
|
|
28
|
+
*/
|
|
29
|
+
export declare function getValueAtPath(obj: unknown, pointer: string): unknown;
|
|
30
|
+
/**
|
|
31
|
+
* Set value at JSON Pointer path
|
|
32
|
+
*/
|
|
33
|
+
export declare function setValueAtPath(obj: unknown, pointer: string, value: unknown, operation: 'add' | 'replace' | 'remove'): unknown;
|
|
34
|
+
/**
|
|
35
|
+
* Apply single patch operation
|
|
36
|
+
*/
|
|
37
|
+
export declare function applyOperation(state: Record<string, unknown>, operation: JSONPatchOperation): {
|
|
38
|
+
success: boolean;
|
|
39
|
+
newState: Record<string, unknown>;
|
|
40
|
+
error?: string;
|
|
41
|
+
};
|
|
42
|
+
/**
|
|
43
|
+
* Apply JSON Patch to state
|
|
44
|
+
*/
|
|
45
|
+
export declare function applyPatch(state: Record<string, unknown>, patch: JSONPatch): PatchResult;
|
|
46
|
+
/**
|
|
47
|
+
* Apply patch to state store
|
|
48
|
+
*/
|
|
49
|
+
export declare function applyPatchToStore(store: StateStore, patch: JSONPatch): PatchResult;
|
|
50
|
+
/**
|
|
51
|
+
* Generate JSON Patch from two objects (diff)
|
|
52
|
+
*/
|
|
53
|
+
export declare function generatePatch(from: unknown, to: unknown, path?: string): JSONPatch;
|
|
54
|
+
/**
|
|
55
|
+
* Invert a patch for undo functionality
|
|
56
|
+
*/
|
|
57
|
+
export declare function invertPatch(patch: JSONPatch, state: Record<string, unknown>): JSONPatch;
|
|
58
|
+
/**
|
|
59
|
+
* Validate patch operation
|
|
60
|
+
*/
|
|
61
|
+
export declare function validateOperation(op: JSONPatchOperation): {
|
|
62
|
+
valid: boolean;
|
|
63
|
+
error?: string;
|
|
64
|
+
};
|
|
65
|
+
/**
|
|
66
|
+
* Validate entire patch
|
|
67
|
+
*/
|
|
68
|
+
export declare function validatePatch(patch: JSONPatch): {
|
|
69
|
+
valid: boolean;
|
|
70
|
+
error?: string;
|
|
71
|
+
index?: number;
|
|
72
|
+
};
|
|
73
|
+
//# sourceMappingURL=patch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"patch.d.ts","sourceRoot":"","sources":["../../src/state/patch.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,KAAK,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IAC5D,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,SAAS,GAAG,kBAAkB,EAAE,CAAC;AAE7C,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,kBAAkB,EAAE,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAU3D;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAM5D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAqBrE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,OAAO,EACZ,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,OAAO,EACd,SAAS,EAAE,KAAK,GAAG,SAAS,GAAG,QAAQ,GACtC,OAAO,CAkET;AA2DD;;GAEG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,SAAS,EAAE,kBAAkB,GAC5B;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAgFzE;AAED;;GAEG;AACH,wBAAgB,UAAU,CACxB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,KAAK,EAAE,SAAS,GACf,WAAW,CAwBb;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,GAAG,WAAW,CAelF;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,SAAK,GAAG,SAAS,CAoE9E;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAmDvF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,kBAAkB,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAsB5F;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAQlG"}
|