@vef-framework-react/core 2.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 +15 -0
- package/dist/cjs/_internal/_rolldown/runtime.cjs +1 -0
- package/dist/cjs/ai/index.cjs +1 -0
- package/dist/cjs/api/client.cjs +1 -0
- package/dist/cjs/api/constants.cjs +1 -0
- package/dist/cjs/api/helpers.cjs +1 -0
- package/dist/cjs/api/index.cjs +1 -0
- package/dist/cjs/auth/helpers.cjs +1 -0
- package/dist/cjs/auth/index.cjs +1 -0
- package/dist/cjs/context/api-client.cjs +1 -0
- package/dist/cjs/context/app.cjs +1 -0
- package/dist/cjs/context/context-selector.cjs +1 -0
- package/dist/cjs/context/disabled.cjs +1 -0
- package/dist/cjs/context/index.cjs +1 -0
- package/dist/cjs/dnd/index.cjs +1 -0
- package/dist/cjs/http/client.cjs +1 -0
- package/dist/cjs/http/constants.cjs +1 -0
- package/dist/cjs/http/errors.cjs +1 -0
- package/dist/cjs/http/helpers.cjs +1 -0
- package/dist/cjs/http/index.cjs +1 -0
- package/dist/cjs/immer/index.cjs +1 -0
- package/dist/cjs/index.cjs +1 -0
- package/dist/cjs/motion/features.cjs +1 -0
- package/dist/cjs/motion/index.cjs +1 -0
- package/dist/cjs/motion/motion-provider.cjs +1 -0
- package/dist/cjs/query/constants.cjs +1 -0
- package/dist/cjs/query/helpers.cjs +1 -0
- package/dist/cjs/query/hooks.cjs +1 -0
- package/dist/cjs/query/index.cjs +1 -0
- package/dist/cjs/sse/client.cjs +1 -0
- package/dist/cjs/sse/helpers.cjs +1 -0
- package/dist/cjs/sse/index.cjs +1 -0
- package/dist/cjs/state/index.cjs +1 -0
- package/dist/cjs/state-machine/index.cjs +1 -0
- package/dist/cjs/store/bound.cjs +1 -0
- package/dist/cjs/store/index.cjs +1 -0
- package/dist/cjs/store/unbound.cjs +1 -0
- package/dist/cjs/store/use-deep.cjs +1 -0
- package/dist/es/ai/index.js +3 -0
- package/dist/es/api/client.js +74 -0
- package/dist/es/api/constants.js +14 -0
- package/dist/es/api/helpers.js +8 -0
- package/dist/es/api/index.js +4 -0
- package/dist/es/auth/helpers.js +10 -0
- package/dist/es/auth/index.js +2 -0
- package/dist/es/context/api-client.js +23 -0
- package/dist/es/context/app.js +9 -0
- package/dist/es/context/context-selector.js +40 -0
- package/dist/es/context/disabled.js +10 -0
- package/dist/es/context/index.js +5 -0
- package/dist/es/dnd/index.js +8 -0
- package/dist/es/http/client.js +187 -0
- package/dist/es/http/constants.js +5 -0
- package/dist/es/http/errors.js +11 -0
- package/dist/es/http/helpers.js +9 -0
- package/dist/es/http/index.js +5 -0
- package/dist/es/immer/index.js +6 -0
- package/dist/es/index.js +27 -0
- package/dist/es/motion/features.js +3 -0
- package/dist/es/motion/index.js +5 -0
- package/dist/es/motion/motion-provider.js +24 -0
- package/dist/es/query/constants.js +5 -0
- package/dist/es/query/helpers.js +41 -0
- package/dist/es/query/hooks.js +26 -0
- package/dist/es/query/index.js +4 -0
- package/dist/es/sse/client.js +121 -0
- package/dist/es/sse/helpers.js +8 -0
- package/dist/es/sse/index.js +3 -0
- package/dist/es/state/index.js +3 -0
- package/dist/es/state-machine/index.js +14 -0
- package/dist/es/store/bound.js +20 -0
- package/dist/es/store/index.js +6 -0
- package/dist/es/store/unbound.js +44 -0
- package/dist/es/store/use-deep.js +13 -0
- package/dist/types/src/ai/index.d.ts +6 -0
- package/dist/types/src/api/client.d.ts +55 -0
- package/dist/types/src/api/constants.d.ts +12 -0
- package/dist/types/src/api/helpers.d.ts +9 -0
- package/dist/types/src/api/index.d.ts +4 -0
- package/dist/types/src/api/types.d.ts +48 -0
- package/dist/types/src/auth/helpers.d.ts +11 -0
- package/dist/types/src/auth/index.d.ts +2 -0
- package/dist/types/src/auth/types.d.ts +1 -0
- package/dist/types/src/common/index.d.ts +1 -0
- package/dist/types/src/common/types.d.ts +98 -0
- package/dist/types/src/context/api-client.d.ts +17 -0
- package/dist/types/src/context/app.d.ts +12 -0
- package/dist/types/src/context/context-selector.d.ts +32 -0
- package/dist/types/src/context/disabled.d.ts +9 -0
- package/dist/types/src/context/index.d.ts +6 -0
- package/dist/types/src/context/types.d.ts +26 -0
- package/dist/types/src/dnd/index.d.ts +8 -0
- package/dist/types/src/http/client.d.ts +112 -0
- package/dist/types/src/http/constants.d.ts +24 -0
- package/dist/types/src/http/errors.d.ts +14 -0
- package/dist/types/src/http/helpers.d.ts +17 -0
- package/dist/types/src/http/index.d.ts +5 -0
- package/dist/types/src/http/types.d.ts +101 -0
- package/dist/types/src/immer/index.d.ts +2 -0
- package/dist/types/src/index.d.ts +16 -0
- package/dist/types/src/motion/features.d.ts +1 -0
- package/dist/types/src/motion/index.d.ts +4 -0
- package/dist/types/src/motion/motion-provider.d.ts +10 -0
- package/dist/types/src/query/constants.d.ts +1 -0
- package/dist/types/src/query/helpers.d.ts +7 -0
- package/dist/types/src/query/hooks.d.ts +27 -0
- package/dist/types/src/query/index.d.ts +4 -0
- package/dist/types/src/query/types.d.ts +51 -0
- package/dist/types/src/sse/client.d.ts +16 -0
- package/dist/types/src/sse/helpers.d.ts +9 -0
- package/dist/types/src/sse/index.d.ts +3 -0
- package/dist/types/src/sse/types.d.ts +98 -0
- package/dist/types/src/state/index.d.ts +1 -0
- package/dist/types/src/state-machine/index.d.ts +15 -0
- package/dist/types/src/store/bound.d.ts +28 -0
- package/dist/types/src/store/index.d.ts +5 -0
- package/dist/types/src/store/types.d.ts +50 -0
- package/dist/types/src/store/unbound.d.ts +26 -0
- package/dist/types/src/store/use-deep.d.ts +8 -0
- package/package.json +79 -0
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { SseClientOptions } from './types';
|
|
2
|
+
import { SseClient } from './client';
|
|
3
|
+
/**
|
|
4
|
+
* Create an SSE client instance (factory).
|
|
5
|
+
*
|
|
6
|
+
* @param options - SSE client options.
|
|
7
|
+
* @returns SSE client instance.
|
|
8
|
+
*/
|
|
9
|
+
export declare function createSseClient(options: SseClientOptions): SseClient;
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { Awaitable, MaybeUndefined } from '@vef-framework-react/shared';
|
|
2
|
+
import { AuthTokens } from '../http';
|
|
3
|
+
/**
|
|
4
|
+
* SSE client options.
|
|
5
|
+
*/
|
|
6
|
+
export interface SseClientOptions {
|
|
7
|
+
/**
|
|
8
|
+
* Retrieve auth tokens (optional, used to auto-inject Authorization header).
|
|
9
|
+
*/
|
|
10
|
+
getAuthTokens?: () => Awaitable<MaybeUndefined<Readonly<Pick<AuthTokens, "accessToken">>>>;
|
|
11
|
+
/**
|
|
12
|
+
* Whether to enable automatic retries.
|
|
13
|
+
*
|
|
14
|
+
* @default true
|
|
15
|
+
*/
|
|
16
|
+
enableRetry?: boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Maximum retry attempts.
|
|
19
|
+
*
|
|
20
|
+
* @default 3
|
|
21
|
+
*/
|
|
22
|
+
maxRetries?: number;
|
|
23
|
+
/**
|
|
24
|
+
* Optional error message handler.
|
|
25
|
+
*/
|
|
26
|
+
showErrorMessage?: (message: string) => void;
|
|
27
|
+
/**
|
|
28
|
+
* Callback when token expires (401 response).
|
|
29
|
+
* Return true if token was refreshed and request should be retried.
|
|
30
|
+
* Return false to abort the request.
|
|
31
|
+
*/
|
|
32
|
+
onTokenExpired?: () => Awaitable<boolean>;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* SSE request configuration.
|
|
36
|
+
*/
|
|
37
|
+
export interface SseRequestConfig {
|
|
38
|
+
/**
|
|
39
|
+
* Request URL.
|
|
40
|
+
*/
|
|
41
|
+
url: string;
|
|
42
|
+
/**
|
|
43
|
+
* HTTP method.
|
|
44
|
+
*
|
|
45
|
+
* @default "POST"
|
|
46
|
+
*/
|
|
47
|
+
method?: "GET" | "POST" | "PUT" | "DELETE";
|
|
48
|
+
/**
|
|
49
|
+
* Request headers.
|
|
50
|
+
*/
|
|
51
|
+
headers?: Record<string, string>;
|
|
52
|
+
/**
|
|
53
|
+
* Request body (POST/PUT only).
|
|
54
|
+
*/
|
|
55
|
+
body?: string | object;
|
|
56
|
+
/**
|
|
57
|
+
* AbortSignal for canceling the request.
|
|
58
|
+
*/
|
|
59
|
+
signal?: AbortSignal;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* SSE message event.
|
|
63
|
+
*/
|
|
64
|
+
export interface SseMessageEvent {
|
|
65
|
+
/**
|
|
66
|
+
* Event ID.
|
|
67
|
+
*/
|
|
68
|
+
id?: string;
|
|
69
|
+
/**
|
|
70
|
+
* Event type.
|
|
71
|
+
*/
|
|
72
|
+
event?: string;
|
|
73
|
+
/**
|
|
74
|
+
* Message data.
|
|
75
|
+
*/
|
|
76
|
+
data: string;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* SSE event handlers.
|
|
80
|
+
*/
|
|
81
|
+
export interface SseEventHandlers {
|
|
82
|
+
/**
|
|
83
|
+
* Connection opened callback.
|
|
84
|
+
*/
|
|
85
|
+
onOpen?: (response: Response) => Awaitable<void>;
|
|
86
|
+
/**
|
|
87
|
+
* Message received callback.
|
|
88
|
+
*/
|
|
89
|
+
onMessage: (event: SseMessageEvent) => void;
|
|
90
|
+
/**
|
|
91
|
+
* Error callback.
|
|
92
|
+
*/
|
|
93
|
+
onError?: (error: Error) => void;
|
|
94
|
+
/**
|
|
95
|
+
* Connection closed callback.
|
|
96
|
+
*/
|
|
97
|
+
onClose?: () => void;
|
|
98
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { atom, Provider as AtomStoreProvider, createStore as createAtomStore, getDefaultStore as getDefaultAtomStore, useAtom, useStore as useAtomStore, useAtomValue, useSetAtom, type Atom, type Getter as AtomGetter, type Setter as AtomSetter, type ExtractAtomArgs, type ExtractAtomResult, type ExtractAtomValue, type PrimitiveAtom, type SetStateAction, type WritableAtom } from 'jotai';
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ActorOptions, AnyActorLogic, ConditionalRequired, IsNotNever, RequiredActorOptionsKeys, SnapshotFrom, Actor } from 'xstate';
|
|
2
|
+
/**
|
|
3
|
+
* Custom hook for creating and using an XState actor with state selection.
|
|
4
|
+
* Combines actor creation with selector-based state subscription.
|
|
5
|
+
*
|
|
6
|
+
* @param logic - The actor logic (state machine or other actor logic)
|
|
7
|
+
* @param selector - Function to select specific data from the actor's snapshot
|
|
8
|
+
* @param options - Optional actor configuration options
|
|
9
|
+
* @returns A tuple containing [selectedState, sendFunction, actorRef]
|
|
10
|
+
*/
|
|
11
|
+
export declare function useActor<TLogic extends AnyActorLogic, TSelected>(logic: TLogic, selector: (snapshot: SnapshotFrom<TLogic>) => TSelected, ...[options]: ConditionalRequired<[
|
|
12
|
+
options?: ActorOptions<TLogic> & Record<RequiredActorOptionsKeys<TLogic>, unknown>
|
|
13
|
+
], IsNotNever<RequiredActorOptionsKeys<TLogic>>>): [TSelected, Actor<TLogic>["send"], Actor<TLogic>];
|
|
14
|
+
export { useActorRef } from '@xstate/react';
|
|
15
|
+
export { Actor, createActor, createMachine, assign as updateContext, type ActorLogic, type ActorOptions, type AnyActorLogic, type AnyMachineSnapshot, type AnyStateMachine, type MachineConfig, type MachineContext, type MachineSnapshot, type RequiredActorOptionsKeys, type SnapshotFrom, type StateMachine } from 'xstate';
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { StateCreator } from 'zustand';
|
|
2
|
+
import { PersistenceOptions, UseBoundStore, UseBoundStoreWithPersist } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* Create a store with the given initializer
|
|
5
|
+
*
|
|
6
|
+
* @param initializer - The initializer for the store
|
|
7
|
+
* @returns The store
|
|
8
|
+
*/
|
|
9
|
+
export declare function createStore<TState extends {
|
|
10
|
+
name: string;
|
|
11
|
+
}>(initializer: StateCreator<TState, [
|
|
12
|
+
["zustand/subscribeWithSelector", never],
|
|
13
|
+
["zustand/immer", never]
|
|
14
|
+
], [
|
|
15
|
+
]>): UseBoundStore<TState>;
|
|
16
|
+
/**
|
|
17
|
+
* Create a persisted store with the given initializer and persistence options
|
|
18
|
+
*
|
|
19
|
+
* @param initializer - The initializer for the store
|
|
20
|
+
* @param persistenceOptions - The persistence options for the store
|
|
21
|
+
* @returns The store
|
|
22
|
+
*/
|
|
23
|
+
export declare function createPersistedStore<TState>(initializer: StateCreator<TState, [
|
|
24
|
+
["zustand/subscribeWithSelector", never],
|
|
25
|
+
["zustand/persist", unknown],
|
|
26
|
+
["zustand/immer", never]
|
|
27
|
+
], [
|
|
28
|
+
]>, persistenceOptions: PersistenceOptions<TState, unknown>): UseBoundStoreWithPersist<TState>;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { createPersistedStore, createStore } from './bound';
|
|
2
|
+
export type * from './types';
|
|
3
|
+
export { createComponentStore, type ComponentStoreResult as ReturnedComponentStoreResult, type UseStore } from './unbound';
|
|
4
|
+
export { useDeep } from './use-deep';
|
|
5
|
+
export { useShallow } from 'zustand/shallow';
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { If, IsNever } from '@vef-framework-react/shared';
|
|
2
|
+
import { PropsWithChildren } from 'react';
|
|
3
|
+
import { Mutate, StateCreator, StoreApi, UseBoundStore as UseBoundStoreInternal } from 'zustand';
|
|
4
|
+
export type SliceStateCreator<TState, TSlice, TPersist extends boolean = false> = StateCreator<TState, [
|
|
5
|
+
[
|
|
6
|
+
"zustand/subscribeWithSelector",
|
|
7
|
+
never
|
|
8
|
+
],
|
|
9
|
+
If<TPersist, ["zustand/persist", unknown], never>,
|
|
10
|
+
[
|
|
11
|
+
"zustand/immer",
|
|
12
|
+
never
|
|
13
|
+
]
|
|
14
|
+
], [
|
|
15
|
+
If<TPersist, never, ["zustand/immer", never]>
|
|
16
|
+
], TSlice>;
|
|
17
|
+
export type UnboundStore<TState> = Mutate<StoreApi<TState>, [["zustand/subscribeWithSelector", never], ["zustand/immer", never]]>;
|
|
18
|
+
export type UseBoundStore<TState> = UseBoundStoreInternal<Mutate<StoreApi<TState>, [["zustand/subscribeWithSelector", never], ["zustand/immer", never]]>>;
|
|
19
|
+
export type UseBoundStoreWithPersist<TState> = UseBoundStoreInternal<Mutate<StoreApi<TState>, [["zustand/subscribeWithSelector", never], ["zustand/persist", unknown], ["zustand/immer", never]]>>;
|
|
20
|
+
/**
|
|
21
|
+
* The options for the persistence
|
|
22
|
+
*/
|
|
23
|
+
export interface PersistenceOptions<TState, TSelectedState = TState> {
|
|
24
|
+
/**
|
|
25
|
+
* The unique name of the store
|
|
26
|
+
*/
|
|
27
|
+
name: string;
|
|
28
|
+
/**
|
|
29
|
+
* The storage type of the store
|
|
30
|
+
*/
|
|
31
|
+
storage?: "local" | "session";
|
|
32
|
+
/**
|
|
33
|
+
* The selector of the store
|
|
34
|
+
*/
|
|
35
|
+
selector?: (state: TState) => TSelectedState;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* The props of the store provider
|
|
39
|
+
*/
|
|
40
|
+
export type StoreProviderProps<TInitialState> = PropsWithChildren<If<IsNever<TInitialState>, {
|
|
41
|
+
/**
|
|
42
|
+
* The initial state of the store
|
|
43
|
+
*/
|
|
44
|
+
initialState?: never;
|
|
45
|
+
}, {
|
|
46
|
+
/**
|
|
47
|
+
* The initial state of the store
|
|
48
|
+
*/
|
|
49
|
+
initialState: TInitialState;
|
|
50
|
+
}>>;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { ComponentType } from 'react';
|
|
2
|
+
import { StateCreator } from 'zustand';
|
|
3
|
+
import { StoreProviderProps, UnboundStore } from './types';
|
|
4
|
+
/**
|
|
5
|
+
* Hook signature for accessing store state with optional selector
|
|
6
|
+
*/
|
|
7
|
+
export interface UseStore<in out TState> {
|
|
8
|
+
(): TState;
|
|
9
|
+
<TSelected>(selector: (state: TState) => TSelected): NoInfer<TSelected>;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Result type returned by createComponentStore
|
|
13
|
+
*/
|
|
14
|
+
export interface ComponentStoreResult<TState, TInitialState extends Partial<TState> = never> {
|
|
15
|
+
StoreProvider: ComponentType<StoreProviderProps<TInitialState>>;
|
|
16
|
+
useStoreApi: <TStrictState extends TState = TState>() => UnboundStore<TStrictState>;
|
|
17
|
+
useStore: UseStore<TState>;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Creates a component-scoped store with React Context
|
|
21
|
+
*
|
|
22
|
+
* @param name - The name of the store (used for context display name and error messages)
|
|
23
|
+
* @param initializer - The Zustand state initializer function
|
|
24
|
+
* @returns Object containing StoreProvider, useStoreApi, and useStore
|
|
25
|
+
*/
|
|
26
|
+
export declare function createComponentStore<TState, TInitialState extends Partial<TState> = never>(name: string, initializer: StateCreator<TState, [["zustand/subscribeWithSelector", never], ["zustand/immer", never]], []>): ComponentStoreResult<TState, TInitialState>;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Creates a memoized selector that uses deep equality comparison.
|
|
3
|
+
* Returns the previous value if deeply equal to prevent unnecessary re-renders.
|
|
4
|
+
*
|
|
5
|
+
* @param selector - The selector function to memoize
|
|
6
|
+
* @returns A memoized selector function
|
|
7
|
+
*/
|
|
8
|
+
export declare function useDeep<TState, TSelected>(selector: (state: TState) => TSelected): (state: TState) => TSelected;
|
package/package.json
ADDED
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@vef-framework-react/core",
|
|
3
|
+
"type": "module",
|
|
4
|
+
"version": "2.1.0",
|
|
5
|
+
"private": false,
|
|
6
|
+
"description": "Core features for VEF framework",
|
|
7
|
+
"author": {
|
|
8
|
+
"name": "Venus",
|
|
9
|
+
"email": "iweixiaopeng@163.com",
|
|
10
|
+
"url": "https://github.com/ilxqx"
|
|
11
|
+
},
|
|
12
|
+
"license": "Apache-2.0",
|
|
13
|
+
"homepage": "https://vef.ilxqx.com",
|
|
14
|
+
"keywords": [
|
|
15
|
+
"vef",
|
|
16
|
+
"framework",
|
|
17
|
+
"react",
|
|
18
|
+
"core"
|
|
19
|
+
],
|
|
20
|
+
"sideEffects": false,
|
|
21
|
+
"exports": {
|
|
22
|
+
".": {
|
|
23
|
+
"vef": "./src/index.ts",
|
|
24
|
+
"import": {
|
|
25
|
+
"types": "./dist/types/index.d.ts",
|
|
26
|
+
"default": "./dist/es/index.js"
|
|
27
|
+
},
|
|
28
|
+
"require": {
|
|
29
|
+
"types": "./dist/types/index.d.ts",
|
|
30
|
+
"default": "./dist/cjs/index.cjs"
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
"./package.json": "./package.json"
|
|
34
|
+
},
|
|
35
|
+
"main": "dist/cjs/index.cjs",
|
|
36
|
+
"module": "dist/es/index.js",
|
|
37
|
+
"types": "dist/types/index.d.ts",
|
|
38
|
+
"files": [
|
|
39
|
+
"dist"
|
|
40
|
+
],
|
|
41
|
+
"engines": {
|
|
42
|
+
"node": ">=22.x"
|
|
43
|
+
},
|
|
44
|
+
"publishConfig": {
|
|
45
|
+
"access": "public"
|
|
46
|
+
},
|
|
47
|
+
"peerDependencies": {
|
|
48
|
+
"react": ">=19"
|
|
49
|
+
},
|
|
50
|
+
"dependencies": {
|
|
51
|
+
"@dnd-kit/abstract": "^0.3.2",
|
|
52
|
+
"@dnd-kit/dom": "^0.3.2",
|
|
53
|
+
"@dnd-kit/helpers": "^0.3.2",
|
|
54
|
+
"@dnd-kit/react": "^0.3.2",
|
|
55
|
+
"@emotion/react": "^11.14.0",
|
|
56
|
+
"@hello-pangea/dnd": "^18.0.1",
|
|
57
|
+
"@microsoft/fetch-event-source": "^2.0.1",
|
|
58
|
+
"@tanstack/react-query": "^5.95.2",
|
|
59
|
+
"@xstate/react": "^6.1.0",
|
|
60
|
+
"ai": "6.0.138",
|
|
61
|
+
"axios": "^1.13.6",
|
|
62
|
+
"clsx": "^2.1.1",
|
|
63
|
+
"immer": "^11.1.4",
|
|
64
|
+
"jotai": "^2.19.0",
|
|
65
|
+
"motion": "^12.38.0",
|
|
66
|
+
"use-immer": "^0.11.0",
|
|
67
|
+
"xstate": "^5.29.0",
|
|
68
|
+
"zustand": "^5.0.12",
|
|
69
|
+
"@vef-framework-react/shared": "2.1.0"
|
|
70
|
+
},
|
|
71
|
+
"devDependencies": {
|
|
72
|
+
"react": "^19.2.4"
|
|
73
|
+
},
|
|
74
|
+
"scripts": {
|
|
75
|
+
"clean": "rimraf dist",
|
|
76
|
+
"typecheck": "tsc --noEmit",
|
|
77
|
+
"build": "vite build"
|
|
78
|
+
}
|
|
79
|
+
}
|