@assistant-ui/store 0.0.6 → 0.1.2
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 +13 -13
- package/dist/{AssistantIf.d.ts → AuiIf.d.ts} +4 -4
- package/dist/AuiIf.d.ts.map +1 -0
- package/dist/AuiIf.js +8 -0
- package/dist/AuiIf.js.map +1 -0
- package/dist/Derived.d.ts +2 -2
- package/dist/Derived.d.ts.map +1 -1
- package/dist/Derived.js +1 -1
- package/dist/index.d.ts +5 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -5
- package/dist/index.js.map +1 -1
- package/dist/tapClientList.d.ts.map +1 -1
- package/dist/tapClientList.js +16 -10
- package/dist/tapClientList.js.map +1 -1
- package/dist/tapClientLookup.d.ts +3 -3
- package/dist/tapClientLookup.d.ts.map +1 -1
- package/dist/tapClientLookup.js +28 -16
- package/dist/tapClientLookup.js.map +1 -1
- package/dist/tapClientResource.d.ts +6 -2
- package/dist/tapClientResource.d.ts.map +1 -1
- package/dist/tapClientResource.js +11 -5
- package/dist/tapClientResource.js.map +1 -1
- package/dist/types/client.d.ts +4 -2
- package/dist/types/client.d.ts.map +1 -1
- package/dist/useAui.d.ts +23 -0
- package/dist/useAui.d.ts.map +1 -0
- package/dist/{useAssistantClient.js → useAui.js} +72 -35
- package/dist/useAui.js.map +1 -0
- package/dist/useAuiEvent.d.ts +3 -0
- package/dist/useAuiEvent.d.ts.map +1 -0
- package/dist/useAuiEvent.js +11 -0
- package/dist/useAuiEvent.js.map +1 -0
- package/dist/{useAssistantState.d.ts → useAuiState.d.ts} +4 -4
- package/dist/useAuiState.d.ts.map +1 -0
- package/dist/{useAssistantState.js → useAuiState.js} +6 -6
- package/dist/useAuiState.js.map +1 -0
- package/dist/utils/NotificationManager.d.ts +1 -1
- package/dist/utils/NotificationManager.d.ts.map +1 -1
- package/dist/utils/NotificationManager.js +6 -2
- package/dist/utils/NotificationManager.js.map +1 -1
- package/dist/utils/StoreResource.d.ts +1 -1
- package/dist/utils/StoreResource.d.ts.map +1 -1
- package/dist/utils/StoreResource.js +2 -4
- package/dist/utils/StoreResource.js.map +1 -1
- package/dist/utils/react-assistant-context.d.ts +5 -5
- package/dist/utils/react-assistant-context.d.ts.map +1 -1
- package/dist/utils/react-assistant-context.js +6 -6
- package/dist/utils/react-assistant-context.js.map +1 -1
- package/dist/utils/splitClients.d.ts +2 -20
- package/dist/utils/splitClients.d.ts.map +1 -1
- package/dist/utils/splitClients.js +35 -6
- package/dist/utils/splitClients.js.map +1 -1
- package/dist/utils/tap-assistant-context.d.ts.map +1 -1
- package/dist/utils/tap-assistant-context.js +3 -3
- package/dist/utils/tap-assistant-context.js.map +1 -1
- package/dist/utils/tap-client-stack-context.js +3 -3
- package/dist/utils/tap-client-stack-context.js.map +1 -1
- package/dist/wrapperResource.d.ts +3 -0
- package/dist/wrapperResource.d.ts.map +1 -0
- package/dist/wrapperResource.js +11 -0
- package/dist/wrapperResource.js.map +1 -0
- package/package.json +4 -3
- package/src/AuiIf.tsx +17 -0
- package/src/Derived.ts +1 -1
- package/src/index.ts +5 -5
- package/src/tapClientList.ts +27 -14
- package/src/tapClientLookup.ts +53 -33
- package/src/tapClientResource.ts +12 -6
- package/src/types/client.ts +2 -2
- package/src/{useAssistantClient.tsx → useAui.tsx} +109 -50
- package/src/{useAssistantEvent.ts → useAuiEvent.ts} +9 -5
- package/src/{useAssistantState.tsx → useAuiState.tsx} +5 -7
- package/src/utils/NotificationManager.ts +6 -2
- package/src/utils/StoreResource.ts +3 -5
- package/src/utils/react-assistant-context.tsx +9 -8
- package/src/utils/splitClients.ts +62 -17
- package/src/utils/tap-assistant-context.ts +5 -6
- package/src/utils/tap-client-stack-context.ts +4 -4
- package/src/wrapperResource.ts +17 -0
- package/dist/AssistantIf.d.ts.map +0 -1
- package/dist/AssistantIf.js +0 -8
- package/dist/AssistantIf.js.map +0 -1
- package/dist/useAssistantClient.d.ts +0 -17
- package/dist/useAssistantClient.d.ts.map +0 -1
- package/dist/useAssistantClient.js.map +0 -1
- package/dist/useAssistantEvent.d.ts +0 -3
- package/dist/useAssistantEvent.d.ts.map +0 -1
- package/dist/useAssistantEvent.js +0 -10
- package/dist/useAssistantEvent.js.map +0 -1
- package/dist/useAssistantState.d.ts.map +0 -1
- package/dist/useAssistantState.js.map +0 -1
- package/src/AssistantIf.tsx +0 -17
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { useResource } from "@assistant-ui/tap/react";
|
|
3
|
-
import { resource, tapMemo, tapResources, tapEffectEvent, tapInlineResource, tapEffect, tapRef, tapResource, } from "@assistant-ui/tap";
|
|
3
|
+
import { resource, tapMemo, tapResources, tapEffectEvent, tapInlineResource, tapEffect, tapRef, tapResource, withKey, } from "@assistant-ui/tap";
|
|
4
4
|
import { StoreResource } from "./utils/StoreResource.js";
|
|
5
5
|
import { useAssistantContextValue, DefaultAssistantClient, createRootAssistantClient, } from "./utils/react-assistant-context.js";
|
|
6
|
-
import {
|
|
6
|
+
import { tapSplitClients, } from "./utils/splitClients.js";
|
|
7
7
|
import { normalizeEventSelector, } from "./types/events.js";
|
|
8
8
|
import { NotificationManager } from "./utils/NotificationManager.js";
|
|
9
9
|
import { withAssistantTapContextProvider } from "./utils/tap-assistant-context.js";
|
|
@@ -12,38 +12,55 @@ import { getClientIndex } from "./utils/tap-client-stack-context.js";
|
|
|
12
12
|
import { PROXIED_ASSISTANT_STATE_SYMBOL, createProxiedAssistantState, } from "./utils/proxied-assistant-state.js";
|
|
13
13
|
const RootClientResource = resource(({ element, emit, clientRef, }) => {
|
|
14
14
|
const { methods, state } = withAssistantTapContextProvider({ clientRef, emit }, () => tapClientResource(element));
|
|
15
|
-
return tapMemo(() => ({ methods }), [state]);
|
|
15
|
+
return tapMemo(() => ({ state, methods }), [methods, state]);
|
|
16
16
|
});
|
|
17
|
-
const RootClientAccessorResource = resource(({ element, notifications, clientRef, }) => {
|
|
17
|
+
const RootClientAccessorResource = resource(({ element, notifications, clientRef, name, }) => {
|
|
18
18
|
const store = tapInlineResource(StoreResource(RootClientResource({ element, emit: notifications.emit, clientRef })));
|
|
19
19
|
tapEffect(() => {
|
|
20
20
|
return store.subscribe(notifications.notifySubscribers);
|
|
21
21
|
}, [store, notifications]);
|
|
22
22
|
return tapMemo(() => {
|
|
23
|
-
const clientFunction = () => store.
|
|
24
|
-
clientFunction
|
|
25
|
-
|
|
23
|
+
const clientFunction = () => store.getValue().methods;
|
|
24
|
+
Object.defineProperties(clientFunction, {
|
|
25
|
+
source: {
|
|
26
|
+
value: "root",
|
|
27
|
+
writable: false,
|
|
28
|
+
},
|
|
29
|
+
query: {
|
|
30
|
+
value: {},
|
|
31
|
+
writable: false,
|
|
32
|
+
},
|
|
33
|
+
name: {
|
|
34
|
+
value: name,
|
|
35
|
+
configurable: true,
|
|
36
|
+
},
|
|
37
|
+
});
|
|
26
38
|
return clientFunction;
|
|
27
|
-
}, [store]);
|
|
39
|
+
}, [store, name]);
|
|
28
40
|
});
|
|
29
41
|
const NoOpRootClientsAccessorsResource = resource(() => {
|
|
30
|
-
return tapMemo(() => ({
|
|
42
|
+
return tapMemo(() => ({
|
|
43
|
+
clients: [],
|
|
44
|
+
subscribe: undefined,
|
|
45
|
+
on: undefined,
|
|
46
|
+
}), []);
|
|
31
47
|
});
|
|
32
48
|
const RootClientsAccessorsResource = resource(({ clients: inputClients, clientRef, }) => {
|
|
33
49
|
const notifications = tapInlineResource(NotificationManager());
|
|
34
50
|
tapEffect(() => clientRef.parent.subscribe(notifications.notifySubscribers), [clientRef, notifications]);
|
|
35
|
-
const results = tapResources(
|
|
36
|
-
element:
|
|
51
|
+
const results = tapResources(() => Object.keys(inputClients).map((key) => withKey(key, RootClientAccessorResource({
|
|
52
|
+
element: inputClients[key],
|
|
37
53
|
notifications,
|
|
38
54
|
clientRef,
|
|
39
|
-
|
|
55
|
+
name: key,
|
|
56
|
+
}))), [inputClients, notifications, clientRef]);
|
|
40
57
|
return tapMemo(() => {
|
|
41
58
|
return {
|
|
42
59
|
clients: results,
|
|
43
60
|
subscribe: notifications.subscribe,
|
|
44
61
|
on: function (selector, callback) {
|
|
45
62
|
if (!this) {
|
|
46
|
-
throw new Error("const { on } =
|
|
63
|
+
throw new Error("const { on } = useAui() is not supported. Use aui.on() instead.");
|
|
47
64
|
}
|
|
48
65
|
const { scope, event } = normalizeEventSelector(selector);
|
|
49
66
|
if (scope !== "*") {
|
|
@@ -85,7 +102,7 @@ const getMeta = (props, clientRef, memo) => {
|
|
|
85
102
|
memo.dep = props;
|
|
86
103
|
return meta;
|
|
87
104
|
};
|
|
88
|
-
const DerivedClientAccessorResource = resource(({ element, clientRef, }) => {
|
|
105
|
+
const DerivedClientAccessorResource = resource(({ element, clientRef, name, }) => {
|
|
89
106
|
const get = tapEffectEvent(() => element.props);
|
|
90
107
|
return tapMemo(() => {
|
|
91
108
|
const clientFunction = () => get().get(clientRef.current);
|
|
@@ -97,55 +114,75 @@ const DerivedClientAccessorResource = resource(({ element, clientRef, }) => {
|
|
|
97
114
|
query: {
|
|
98
115
|
get: () => getMeta(get(), clientRef, metaMemo).query,
|
|
99
116
|
},
|
|
117
|
+
name: {
|
|
118
|
+
value: name,
|
|
119
|
+
configurable: true,
|
|
120
|
+
},
|
|
100
121
|
});
|
|
101
122
|
return clientFunction;
|
|
102
|
-
}, [clientRef]);
|
|
123
|
+
}, [clientRef, name]);
|
|
103
124
|
});
|
|
104
125
|
const DerivedClientsAccessorsResource = resource(({ clients, clientRef, }) => {
|
|
105
|
-
return tapResources(
|
|
106
|
-
element:
|
|
126
|
+
return tapResources(() => Object.keys(clients).map((key) => withKey(key, DerivedClientAccessorResource({
|
|
127
|
+
element: clients[key],
|
|
107
128
|
clientRef,
|
|
108
|
-
|
|
129
|
+
name: key,
|
|
130
|
+
}))), [clients, clientRef]);
|
|
109
131
|
});
|
|
110
132
|
/**
|
|
111
133
|
* Resource that creates an extended AssistantClient.
|
|
112
134
|
*/
|
|
113
|
-
export const AssistantClientResource = resource(({
|
|
114
|
-
const { rootClients, derivedClients } =
|
|
135
|
+
export const AssistantClientResource = resource(({ parent, clients, }) => {
|
|
136
|
+
const { rootClients, derivedClients } = tapSplitClients(clients, parent);
|
|
115
137
|
const clientRef = tapRef({
|
|
116
|
-
parent:
|
|
138
|
+
parent: parent,
|
|
117
139
|
current: null,
|
|
118
140
|
}).current;
|
|
141
|
+
tapEffect(() => {
|
|
142
|
+
// if (clientRef.current && clientRef.current !== client)
|
|
143
|
+
// throw new Error("clientRef.current !== client");
|
|
144
|
+
clientRef.current = client;
|
|
145
|
+
});
|
|
119
146
|
const rootFields = tapResource(Object.keys(rootClients).length > 0
|
|
120
147
|
? RootClientsAccessorsResource({ clients: rootClients, clientRef })
|
|
121
148
|
: NoOpRootClientsAccessorsResource());
|
|
122
149
|
const derivedFields = tapInlineResource(DerivedClientsAccessorsResource({ clients: derivedClients, clientRef }));
|
|
123
150
|
const client = tapMemo(() => {
|
|
124
151
|
// Swap DefaultAssistantClient -> createRootAssistantClient at root to change error message
|
|
125
|
-
const proto =
|
|
152
|
+
const proto = parent === DefaultAssistantClient
|
|
126
153
|
? createRootAssistantClient()
|
|
127
|
-
:
|
|
154
|
+
: parent;
|
|
128
155
|
const client = Object.create(proto);
|
|
129
|
-
Object.assign(client,
|
|
130
|
-
subscribe: rootFields.subscribe ??
|
|
131
|
-
on: rootFields.on ??
|
|
156
|
+
Object.assign(client, {
|
|
157
|
+
subscribe: rootFields.subscribe ?? parent.subscribe,
|
|
158
|
+
on: rootFields.on ?? parent.on,
|
|
132
159
|
[PROXIED_ASSISTANT_STATE_SYMBOL]: createProxiedAssistantState(client),
|
|
133
160
|
});
|
|
161
|
+
for (const field of rootFields.clients) {
|
|
162
|
+
client[field.name] = field;
|
|
163
|
+
}
|
|
164
|
+
for (const field of derivedFields) {
|
|
165
|
+
client[field.name] = field;
|
|
166
|
+
}
|
|
134
167
|
return client;
|
|
135
|
-
}, [
|
|
168
|
+
}, [parent, rootFields, derivedFields]);
|
|
136
169
|
if (clientRef.current === null) {
|
|
137
170
|
clientRef.current = client;
|
|
138
171
|
}
|
|
139
|
-
tapEffect(() => {
|
|
140
|
-
clientRef.current = client;
|
|
141
|
-
});
|
|
142
172
|
return client;
|
|
143
173
|
});
|
|
144
|
-
|
|
145
|
-
|
|
174
|
+
/** @deprecated This API is highly experimental and may be changed in a minor release */
|
|
175
|
+
export function useAui(clients, { parent } = {
|
|
176
|
+
parent: useAssistantContextValue(),
|
|
177
|
+
}) {
|
|
146
178
|
if (clients) {
|
|
147
|
-
return useResource(AssistantClientResource({
|
|
179
|
+
return useResource(AssistantClientResource({
|
|
180
|
+
parent: parent ?? DefaultAssistantClient,
|
|
181
|
+
clients,
|
|
182
|
+
}));
|
|
148
183
|
}
|
|
149
|
-
|
|
184
|
+
if (parent === null)
|
|
185
|
+
throw new Error("received null parent, this usage is not allowed");
|
|
186
|
+
return parent;
|
|
150
187
|
}
|
|
151
|
-
//# sourceMappingURL=
|
|
188
|
+
//# sourceMappingURL=useAui.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useAui.js","sourceRoot":"","sources":["../src/useAui.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { AssistantEventName, AssistantEventCallback, AssistantEventSelector } from "./types/events.js";
|
|
2
|
+
export declare const useAuiEvent: <TEvent extends AssistantEventName>(selector: AssistantEventSelector<TEvent>, callback: AssistantEventCallback<TEvent>) => void;
|
|
3
|
+
//# sourceMappingURL=useAuiEvent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useAuiEvent.d.ts","sourceRoot":"","sources":["../src/useAuiEvent.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,kBAAkB,EAClB,sBAAsB,EACtB,sBAAsB,EACvB,0BAAuB;AAGxB,eAAO,MAAM,WAAW,GAAI,MAAM,SAAS,kBAAkB,EAC3D,UAAU,sBAAsB,CAAC,MAAM,CAAC,EACxC,UAAU,sBAAsB,CAAC,MAAM,CAAC,SAUzC,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { useEffect } from "react";
|
|
2
|
+
import { useEffectEvent } from "use-effect-event";
|
|
3
|
+
import { useAui } from "./useAui.js";
|
|
4
|
+
import { normalizeEventSelector } from "./types/events.js";
|
|
5
|
+
export const useAuiEvent = (selector, callback) => {
|
|
6
|
+
const aui = useAui();
|
|
7
|
+
const callbackRef = useEffectEvent(callback);
|
|
8
|
+
const { scope, event } = normalizeEventSelector(selector);
|
|
9
|
+
useEffect(() => aui.on({ scope, event }, callbackRef), [aui, scope, event, callbackRef]);
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=useAuiEvent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useAuiEvent.js","sourceRoot":"","sources":["../src/useAuiEvent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,oBAAiB;AAMlC,OAAO,EAAE,sBAAsB,EAAE,0BAAuB;AAExD,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,QAAwC,EACxC,QAAwC,EACxC,EAAE;IACF,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC;IACrB,MAAM,WAAW,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IAE7C,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IAC1D,SAAS,CACP,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,WAAW,CAAC,EAC3C,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,CACjC,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -7,12 +7,12 @@ import type { AssistantState } from "./types/client.js";
|
|
|
7
7
|
*
|
|
8
8
|
* @example
|
|
9
9
|
* ```typescript
|
|
10
|
-
* const aui =
|
|
10
|
+
* const aui = useAui({
|
|
11
11
|
* foo: RootScope({ ... }),
|
|
12
12
|
* });
|
|
13
13
|
*
|
|
14
|
-
* const bar =
|
|
14
|
+
* const bar = useAuiState((state) => state.foo.bar);
|
|
15
15
|
* ```
|
|
16
16
|
*/
|
|
17
|
-
export declare const
|
|
18
|
-
//# sourceMappingURL=
|
|
17
|
+
export declare const useAuiState: <T>(selector: (state: AssistantState) => T) => T;
|
|
18
|
+
//# sourceMappingURL=useAuiState.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useAuiState.d.ts","sourceRoot":"","sources":["../src/useAuiState.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,0BAAuB;AAIrD;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,WAAW,GAAI,CAAC,EAAG,UAAU,CAAC,KAAK,EAAE,cAAc,KAAK,CAAC,KAAG,CAmBxE,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { useSyncExternalStore, useDebugValue } from "react";
|
|
2
|
-
import {
|
|
2
|
+
import { useAui } from "./useAui.js";
|
|
3
3
|
import { getProxiedAssistantState } from "./utils/proxied-assistant-state.js";
|
|
4
4
|
/**
|
|
5
5
|
* Hook to access a slice of the assistant state with automatic subscription
|
|
@@ -9,15 +9,15 @@ import { getProxiedAssistantState } from "./utils/proxied-assistant-state.js";
|
|
|
9
9
|
*
|
|
10
10
|
* @example
|
|
11
11
|
* ```typescript
|
|
12
|
-
* const aui =
|
|
12
|
+
* const aui = useAui({
|
|
13
13
|
* foo: RootScope({ ... }),
|
|
14
14
|
* });
|
|
15
15
|
*
|
|
16
|
-
* const bar =
|
|
16
|
+
* const bar = useAuiState((state) => state.foo.bar);
|
|
17
17
|
* ```
|
|
18
18
|
*/
|
|
19
|
-
export const
|
|
20
|
-
const aui =
|
|
19
|
+
export const useAuiState = (selector) => {
|
|
20
|
+
const aui = useAui();
|
|
21
21
|
const proxiedState = getProxiedAssistantState(aui);
|
|
22
22
|
const slice = useSyncExternalStore(aui.subscribe, () => selector(proxiedState), () => selector(proxiedState));
|
|
23
23
|
if (slice === proxiedState) {
|
|
@@ -26,4 +26,4 @@ export const useAssistantState = (selector) => {
|
|
|
26
26
|
useDebugValue(slice);
|
|
27
27
|
return slice;
|
|
28
28
|
};
|
|
29
|
-
//# sourceMappingURL=
|
|
29
|
+
//# sourceMappingURL=useAuiState.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useAuiState.js","sourceRoot":"","sources":["../src/useAuiState.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAE5D,OAAO,EAAE,MAAM,EAAE,oBAAiB;AAClC,OAAO,EAAE,wBAAwB,EAAE,2CAAwC;AAE3E;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAK,QAAsC,EAAK,EAAE;IAC3E,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC;IACrB,MAAM,YAAY,GAAG,wBAAwB,CAAC,GAAG,CAAC,CAAC;IAEnD,MAAM,KAAK,GAAG,oBAAoB,CAChC,GAAG,CAAC,SAAS,EACb,GAAG,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,EAC5B,GAAG,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,CAC7B,CAAC;IAEF,IAAI,KAAK,KAAK,YAAY,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CACb,oGAAoG,CACrG,CAAC;IACJ,CAAC;IAED,aAAa,CAAC,KAAK,CAAC,CAAC;IAErB,OAAO,KAAK,CAAC;AACf,CAAC,CAAC"}
|
|
@@ -7,5 +7,5 @@ export type NotificationManager = {
|
|
|
7
7
|
subscribe(callback: () => void): Unsubscribe;
|
|
8
8
|
notifySubscribers(): void;
|
|
9
9
|
};
|
|
10
|
-
export declare const NotificationManager: import("@assistant-ui/tap").
|
|
10
|
+
export declare const NotificationManager: () => import("@assistant-ui/tap").ResourceElement<NotificationManager, undefined>;
|
|
11
11
|
//# sourceMappingURL=NotificationManager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NotificationManager.d.ts","sourceRoot":"","sources":["../../src/utils/NotificationManager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,sCAAmC;AAC9D,OAAO,KAAK,EACV,kBAAkB,EAClB,qBAAqB,EACtB,2BAAwB;AACzB,OAAO,EAAE,WAAW,EAAE,2BAAwB;
|
|
1
|
+
{"version":3,"file":"NotificationManager.d.ts","sourceRoot":"","sources":["../../src/utils/NotificationManager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,sCAAmC;AAC9D,OAAO,KAAK,EACV,kBAAkB,EAClB,qBAAqB,EACtB,2BAAwB;AACzB,OAAO,EAAE,WAAW,EAAE,2BAAwB;AAK9C,MAAM,MAAM,mBAAmB,GAAG;IAChC,EAAE,CAAC,MAAM,SAAS,kBAAkB,EAClC,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,CACR,OAAO,EAAE,qBAAqB,CAAC,MAAM,CAAC,EACtC,WAAW,EAAE,WAAW,KACrB,IAAI,GACR,WAAW,CAAC;IACf,IAAI,CAAC,MAAM,SAAS,OAAO,CAAC,kBAAkB,EAAE,GAAG,CAAC,EAClD,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,qBAAqB,CAAC,MAAM,CAAC,EACtC,WAAW,EAAE,WAAW,GACvB,IAAI,CAAC;IACR,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,WAAW,CAAC;IAC7C,iBAAiB,IAAI,IAAI,CAAC;CAC3B,CAAC;AAEF,eAAO,MAAM,mBAAmB,mFAqF9B,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { resource
|
|
1
|
+
import { resource } from "@assistant-ui/tap";
|
|
2
|
+
import { tapConst } from "@assistant-ui/tap";
|
|
2
3
|
export const NotificationManager = resource(() => {
|
|
3
|
-
return
|
|
4
|
+
return tapConst(() => {
|
|
4
5
|
const listeners = new Map();
|
|
5
6
|
const wildcardListeners = new Set();
|
|
6
7
|
const subscribers = new Set();
|
|
@@ -55,6 +56,9 @@ export const NotificationManager = resource(() => {
|
|
|
55
56
|
throw errors[0];
|
|
56
57
|
}
|
|
57
58
|
else {
|
|
59
|
+
for (const error of errors) {
|
|
60
|
+
console.error(error);
|
|
61
|
+
}
|
|
58
62
|
throw new AggregateError(errors, "Errors occurred during event emission");
|
|
59
63
|
}
|
|
60
64
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NotificationManager.js","sourceRoot":"","sources":["../../src/utils/NotificationManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"NotificationManager.js","sourceRoot":"","sources":["../../src/utils/NotificationManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAO7C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAqB7C,MAAM,CAAC,MAAM,mBAAmB,GAAG,QAAQ,CAAC,GAAwB,EAAE;IACpE,OAAO,QAAQ,CAAC,GAAG,EAAE;QACnB,MAAM,SAAS,GAAG,IAAI,GAAG,EAAiC,CAAC;QAC3D,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAoB,CAAC;QACtD,MAAM,WAAW,GAAG,IAAI,GAAG,EAAc,CAAC;QAE1C,OAAO;YACL,EAAE,CAAC,KAAK,EAAE,QAAQ;gBAChB,MAAM,EAAE,GAAG,QAA4B,CAAC;gBACxC,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;oBAClB,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBAC1B,OAAO,GAAG,EAAE,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAC5C,CAAC;gBAED,IAAI,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBAC/B,IAAI,CAAC,GAAG,EAAE,CAAC;oBACT,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;oBAChB,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;gBAC5B,CAAC;gBACD,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAEZ,OAAO,GAAG,EAAE;oBACV,GAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oBAChB,IAAI,GAAI,CAAC,IAAI,KAAK,CAAC;wBAAE,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC/C,CAAC,CAAC;YACJ,CAAC;YAED,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW;gBAC9B,MAAM,cAAc,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBAC5C,IAAI,CAAC,cAAc,IAAI,iBAAiB,CAAC,IAAI,KAAK,CAAC;oBAAE,OAAO;gBAE5D,cAAc,CAAC,GAAG,EAAE;oBAClB,MAAM,MAAM,GAAG,EAAE,CAAC;oBAClB,IAAI,cAAc,EAAE,CAAC;wBACnB,KAAK,MAAM,EAAE,IAAI,cAAc,EAAE,CAAC;4BAChC,IAAI,CAAC;gCACH,EAAE,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;4BAC3B,CAAC;4BAAC,OAAO,CAAC,EAAE,CAAC;gCACX,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;4BACjB,CAAC;wBACH,CAAC;oBACH,CAAC;oBACD,IAAI,iBAAiB,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;wBAC/B,MAAM,OAAO,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;wBACnC,KAAK,MAAM,EAAE,IAAI,iBAAiB,EAAE,CAAC;4BACnC,IAAI,CAAC;gCACH,EAAE,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;4BAC3B,CAAC;4BAAC,OAAO,CAAC,EAAE,CAAC;gCACX,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;4BACjB,CAAC;wBACH,CAAC;oBACH,CAAC;oBAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACtB,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;4BACxB,MAAM,MAAM,CAAC,CAAC,CAAC,CAAC;wBAClB,CAAC;6BAAM,CAAC;4BACN,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gCAC3B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;4BACvB,CAAC;4BACD,MAAM,IAAI,cAAc,CACtB,MAAM,EACN,uCAAuC,CACxC,CAAC;wBACJ,CAAC;oBACH,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;YAED,SAAS,CAAC,QAAQ;gBAChB,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAC1B,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC5C,CAAC;YAED,iBAAiB;gBACf,KAAK,MAAM,EAAE,IAAI,WAAW,EAAE,CAAC;oBAC7B,IAAI,CAAC;wBACH,EAAE,EAAE,CAAC;oBACP,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC;wBACX,OAAO,CAAC,KAAK,CAAC,gDAAgD,EAAE,CAAC,CAAC,CAAC;oBACrE,CAAC;gBACH,CAAC;YACH,CAAC;SACF,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;AACT,CAAC,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StoreResource.d.ts","sourceRoot":"","sources":["../../src/utils/StoreResource.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,eAAe,EAIhB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,WAAW,EAAE,2BAAwB;AAE9C,MAAM,WAAW,KAAK,CAAC,MAAM;IAC3B;;OAEG;IACH,QAAQ,IAAI,MAAM,CAAC;IAEnB;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,WAAW,CAAC;CAC9C;AAED,eAAO,MAAM,aAAa,GACvB,MAAM,
|
|
1
|
+
{"version":3,"file":"StoreResource.d.ts","sourceRoot":"","sources":["../../src/utils/StoreResource.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,eAAe,EAIhB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,WAAW,EAAE,2BAAwB;AAE9C,MAAM,WAAW,KAAK,CAAC,MAAM;IAC3B;;OAEG;IACH,QAAQ,IAAI,MAAM,CAAC;IAEnB;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,WAAW,CAAC;CAC9C;AAED,eAAO,MAAM,aAAa,GACvB,MAAM,4FAWR,CAAC"}
|
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
import { tapEffect, resource, createResource, tapState, } from "@assistant-ui/tap";
|
|
2
2
|
export const StoreResource = resource((element) => {
|
|
3
3
|
const [handle] = tapState(() => createResource(element, { mount: false }));
|
|
4
|
-
tapEffect(() =>
|
|
5
|
-
return handle.unmount;
|
|
6
|
-
}, [handle]);
|
|
4
|
+
tapEffect(() => handle.unmount, [handle]);
|
|
7
5
|
tapEffect(() => {
|
|
8
6
|
handle.render(element);
|
|
9
|
-
}
|
|
7
|
+
});
|
|
10
8
|
return handle;
|
|
11
9
|
});
|
|
12
10
|
//# sourceMappingURL=StoreResource.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StoreResource.js","sourceRoot":"","sources":["../../src/utils/StoreResource.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EAET,QAAQ,EACR,cAAc,EACd,QAAQ,GACT,MAAM,mBAAmB,CAAC;AAe3B,MAAM,CAAC,MAAM,aAAa,GAAG,QAAQ,CACnC,CAAS,OAAgC,EAAiB,EAAE;IAC1D,MAAM,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IAE3E,SAAS,CAAC,GAAG,EAAE
|
|
1
|
+
{"version":3,"file":"StoreResource.js","sourceRoot":"","sources":["../../src/utils/StoreResource.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EAET,QAAQ,EACR,cAAc,EACd,QAAQ,GACT,MAAM,mBAAmB,CAAC;AAe3B,MAAM,CAAC,MAAM,aAAa,GAAG,QAAQ,CACnC,CAAS,OAAgC,EAAiB,EAAE;IAC1D,MAAM,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IAE3E,SAAS,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAE1C,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACzB,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC,CACF,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import type { AssistantClient } from "../types/client.js";
|
|
3
|
-
/** Default context value - throws "wrap in
|
|
3
|
+
/** Default context value - throws "wrap in AuiProvider" error */
|
|
4
4
|
export declare const DefaultAssistantClient: AssistantClient;
|
|
5
5
|
/** Root prototype for created clients - throws "scope not defined" error */
|
|
6
6
|
export declare const createRootAssistantClient: () => AssistantClient;
|
|
@@ -10,13 +10,13 @@ export declare const useAssistantContextValue: () => AssistantClient;
|
|
|
10
10
|
*
|
|
11
11
|
* @example
|
|
12
12
|
* ```typescript
|
|
13
|
-
* <
|
|
13
|
+
* <AuiProvider value={aui}>
|
|
14
14
|
* <YourApp />
|
|
15
|
-
* </
|
|
15
|
+
* </AuiProvider>
|
|
16
16
|
* ```
|
|
17
17
|
*/
|
|
18
|
-
export declare const
|
|
19
|
-
|
|
18
|
+
export declare const AuiProvider: ({ value, children, }: {
|
|
19
|
+
value: AssistantClient;
|
|
20
20
|
children: React.ReactNode;
|
|
21
21
|
}) => React.ReactElement;
|
|
22
22
|
//# sourceMappingURL=react-assistant-context.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react-assistant-context.d.ts","sourceRoot":"","sources":["../../src/utils/react-assistant-context.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoC,MAAM,OAAO,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAA2B,2BAAwB;AAmDhF,
|
|
1
|
+
{"version":3,"file":"react-assistant-context.d.ts","sourceRoot":"","sources":["../../src/utils/react-assistant-context.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoC,MAAM,OAAO,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAA2B,2BAAwB;AAmDhF,iEAAiE;AACjE,eAAO,MAAM,sBAAsB,EAAE,eAIlC,CAAC;AAMJ,4EAA4E;AAC5E,eAAO,MAAM,yBAAyB,QAAO,eAUzC,CAAC;AAOL,eAAO,MAAM,wBAAwB,QAAO,eAE3C,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,WAAW,GAAI,sBAGzB;IACD,KAAK,EAAE,eAAe,CAAC;IACvB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,KAAG,KAAK,CAAC,YAMT,CAAC"}
|
|
@@ -22,7 +22,7 @@ class DefaultAssistantClientProxyHandler extends BaseProxyHandler {
|
|
|
22
22
|
const introspection = handleIntrospectionProp(prop, "DefaultAssistantClient");
|
|
23
23
|
if (introspection !== false)
|
|
24
24
|
return introspection;
|
|
25
|
-
return createErrorClientField(
|
|
25
|
+
return createErrorClientField("You are using a component or hook that requires an AuiProvider. Wrap your component in an <AuiProvider> component.");
|
|
26
26
|
}
|
|
27
27
|
ownKeys() {
|
|
28
28
|
return ["subscribe", "on", PROXIED_ASSISTANT_STATE_SYMBOL];
|
|
@@ -33,7 +33,7 @@ class DefaultAssistantClientProxyHandler extends BaseProxyHandler {
|
|
|
33
33
|
prop === PROXIED_ASSISTANT_STATE_SYMBOL);
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
|
-
/** Default context value - throws "wrap in
|
|
36
|
+
/** Default context value - throws "wrap in AuiProvider" error */
|
|
37
37
|
export const DefaultAssistantClient = new Proxy({}, new DefaultAssistantClientProxyHandler());
|
|
38
38
|
const DefaultAssistantClientProxiedAssistantState = createProxiedAssistantState(DefaultAssistantClient);
|
|
39
39
|
/** Root prototype for created clients - throws "scope not defined" error */
|
|
@@ -57,12 +57,12 @@ export const useAssistantContextValue = () => {
|
|
|
57
57
|
*
|
|
58
58
|
* @example
|
|
59
59
|
* ```typescript
|
|
60
|
-
* <
|
|
60
|
+
* <AuiProvider value={aui}>
|
|
61
61
|
* <YourApp />
|
|
62
|
-
* </
|
|
62
|
+
* </AuiProvider>
|
|
63
63
|
* ```
|
|
64
64
|
*/
|
|
65
|
-
export const
|
|
66
|
-
return (_jsx(AssistantContext.Provider, { value:
|
|
65
|
+
export const AuiProvider = ({ value, children, }) => {
|
|
66
|
+
return (_jsx(AssistantContext.Provider, { value: value, children: children }));
|
|
67
67
|
};
|
|
68
68
|
//# sourceMappingURL=react-assistant-context.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react-assistant-context.js","sourceRoot":"","sources":["../../src/utils/react-assistant-context.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAEzD,OAAO,EACL,2BAA2B,EAC3B,8BAA8B,GAC/B,qCAAkC;AACnC,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,8BAA2B;AAE/E,MAAM,eAAe,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC;AAEvC,MAAM,sBAAsB,GAAG,CAC7B,OAAe,EACiB,EAAE;IAClC,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE;QACf,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC,CAAmC,CAAC;IACrC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC;IACjB,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC;IAChB,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC;AAEF,MAAM,kCACJ,SAAQ,gBAAgB;IAGxB,GAAG,CAAC,CAAU,EAAE,IAAqB;QACnC,IAAI,IAAI,KAAK,WAAW;YAAE,OAAO,eAAe,CAAC;QACjD,IAAI,IAAI,KAAK,IAAI;YAAE,OAAO,eAAe,CAAC;QAC1C,IAAI,IAAI,KAAK,8BAA8B;YACzC,OAAO,2CAA2C,CAAC;QACrD,MAAM,aAAa,GAAG,uBAAuB,CAC3C,IAAI,EACJ,wBAAwB,CACzB,CAAC;QACF,IAAI,aAAa,KAAK,KAAK;YAAE,OAAO,aAAa,CAAC;QAClD,OAAO,sBAAsB,CAC3B,
|
|
1
|
+
{"version":3,"file":"react-assistant-context.js","sourceRoot":"","sources":["../../src/utils/react-assistant-context.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAEzD,OAAO,EACL,2BAA2B,EAC3B,8BAA8B,GAC/B,qCAAkC;AACnC,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,8BAA2B;AAE/E,MAAM,eAAe,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC;AAEvC,MAAM,sBAAsB,GAAG,CAC7B,OAAe,EACiB,EAAE;IAClC,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE;QACf,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC,CAAmC,CAAC;IACrC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC;IACjB,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC;IAChB,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC;AAEF,MAAM,kCACJ,SAAQ,gBAAgB;IAGxB,GAAG,CAAC,CAAU,EAAE,IAAqB;QACnC,IAAI,IAAI,KAAK,WAAW;YAAE,OAAO,eAAe,CAAC;QACjD,IAAI,IAAI,KAAK,IAAI;YAAE,OAAO,eAAe,CAAC;QAC1C,IAAI,IAAI,KAAK,8BAA8B;YACzC,OAAO,2CAA2C,CAAC;QACrD,MAAM,aAAa,GAAG,uBAAuB,CAC3C,IAAI,EACJ,wBAAwB,CACzB,CAAC;QACF,IAAI,aAAa,KAAK,KAAK;YAAE,OAAO,aAAa,CAAC;QAClD,OAAO,sBAAsB,CAC3B,oHAAoH,CACrH,CAAC;IACJ,CAAC;IAED,OAAO;QACL,OAAO,CAAC,WAAW,EAAE,IAAI,EAAE,8BAA8B,CAAC,CAAC;IAC7D,CAAC;IAED,GAAG,CAAC,CAAU,EAAE,IAAqB;QACnC,OAAO,CACL,IAAI,KAAK,WAAW;YACpB,IAAI,KAAK,IAAI;YACb,IAAI,KAAK,8BAA8B,CACxC,CAAC;IACJ,CAAC;CACF;AACD,iEAAiE;AACjE,MAAM,CAAC,MAAM,sBAAsB,GACjC,IAAI,KAAK,CACP,EAAqB,EACrB,IAAI,kCAAkC,EAAE,CACzC,CAAC;AAEJ,MAAM,2CAA2C,GAAG,2BAA2B,CAC7E,sBAAsB,CACvB,CAAC;AAEF,4EAA4E;AAC5E,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAoB,EAAE,CAC7D,IAAI,KAAK,CAAkB,EAAqB,EAAE;IAChD,GAAG,CAAC,CAAkB,EAAE,IAAqB;QAC3C,MAAM,aAAa,GAAG,uBAAuB,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;QACvE,IAAI,aAAa,KAAK,KAAK;YAAE,OAAO,aAAa,CAAC;QAElD,OAAO,sBAAsB,CAC3B,sCAAsC,MAAM,CAAC,IAAI,CAAC,aAAa,CAChE,CAAC;IACJ,CAAC;CACF,CAAC,CAAC;AAEL;;GAEG;AACH,MAAM,gBAAgB,GAAG,aAAa,CAAkB,sBAAsB,CAAC,CAAC;AAEhF,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAoB,EAAE;IAC5D,OAAO,UAAU,CAAC,gBAAgB,CAAC,CAAC;AACtC,CAAC,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAC1B,KAAK,EACL,QAAQ,GAIT,EAAsB,EAAE;IACvB,OAAO,CACL,KAAC,gBAAgB,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YACpC,QAAQ,GACiB,CAC7B,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1,27 +1,9 @@
|
|
|
1
1
|
import { DerivedElement } from "../Derived.js";
|
|
2
2
|
import type { AssistantClient, ClientElement, ClientNames } from "../types/client.js";
|
|
3
|
-
import type {
|
|
3
|
+
import type { useAui } from "../useAui.js";
|
|
4
4
|
export type RootClients = Partial<Record<ClientNames, ClientElement<ClientNames>>>;
|
|
5
5
|
export type DerivedClients = Partial<Record<ClientNames, DerivedElement<ClientNames>>>;
|
|
6
|
-
|
|
7
|
-
* Splits a clients object into root clients and derived clients.
|
|
8
|
-
*
|
|
9
|
-
* @param clients - The clients input object to split
|
|
10
|
-
* @returns An object with { rootClients, derivedClients }
|
|
11
|
-
*
|
|
12
|
-
* @example
|
|
13
|
-
* ```typescript
|
|
14
|
-
* const clients = {
|
|
15
|
-
* foo: RootClient({ ... }),
|
|
16
|
-
* bar: Derived({ ... }),
|
|
17
|
-
* };
|
|
18
|
-
*
|
|
19
|
-
* const { rootClients, derivedClients } = splitClients(clients);
|
|
20
|
-
* // rootClients = { foo: ... }
|
|
21
|
-
* // derivedClients = { bar: ... }
|
|
22
|
-
* ```
|
|
23
|
-
*/
|
|
24
|
-
export declare function splitClients(clients: useAssistantClient.Props, baseClient: AssistantClient): {
|
|
6
|
+
export declare const tapSplitClients: (clients: useAui.Props, baseClient: AssistantClient) => {
|
|
25
7
|
rootClients: Partial<Record<"ERROR: No clients were defined", ClientElement<"ERROR: No clients were defined">>>;
|
|
26
8
|
derivedClients: Partial<Record<"ERROR: No clients were defined", DerivedElement<"ERROR: No clients were defined">>>;
|
|
27
9
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"splitClients.d.ts","sourceRoot":"","sources":["../../src/utils/splitClients.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,cAAc,EAAE,sBAAmB;AACrD,OAAO,KAAK,EACV,eAAe,EACf,aAAa,EACb,WAAW,EACZ,2BAAwB;AAEzB,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"splitClients.d.ts","sourceRoot":"","sources":["../../src/utils/splitClients.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,cAAc,EAAE,sBAAmB;AACrD,OAAO,KAAK,EACV,eAAe,EACf,aAAa,EACb,WAAW,EACZ,2BAAwB;AAEzB,OAAO,KAAK,EAAE,MAAM,EAAE,qBAAkB;AAGxC,MAAM,MAAM,WAAW,GAAG,OAAO,CAC/B,MAAM,CAAC,WAAW,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC,CAChD,CAAC;AACF,MAAM,MAAM,cAAc,GAAG,OAAO,CAClC,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC,CACjD,CAAC;AAwGF,eAAO,MAAM,eAAe,GAC1B,SAAS,MAAM,CAAC,KAAK,EACrB,YAAY,eAAe;;;CAQ5B,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Derived } from "../Derived.js";
|
|
2
2
|
import { getDefaultPeers } from "../attachDefaultPeers.js";
|
|
3
|
+
import { tapMemo } from "@assistant-ui/tap";
|
|
3
4
|
/**
|
|
4
5
|
* Splits a clients object into root clients and derived clients.
|
|
5
6
|
*
|
|
@@ -18,7 +19,7 @@ import { getDefaultPeers } from "../attachDefaultPeers.js";
|
|
|
18
19
|
* // derivedClients = { bar: ... }
|
|
19
20
|
* ```
|
|
20
21
|
*/
|
|
21
|
-
|
|
22
|
+
function splitClients(clients, baseClient) {
|
|
22
23
|
const rootClients = {};
|
|
23
24
|
const derivedClients = {};
|
|
24
25
|
for (const [key, clientElement] of Object.entries(clients)) {
|
|
@@ -29,11 +30,31 @@ export function splitClients(clients, baseClient) {
|
|
|
29
30
|
rootClients[key] = clientElement;
|
|
30
31
|
}
|
|
31
32
|
}
|
|
32
|
-
|
|
33
|
+
// Recursively gather all default peers, flattening nested ones
|
|
34
|
+
const gatherDefaultPeers = (clientElement, visited = new Set()) => {
|
|
35
|
+
// Prevent infinite loops
|
|
36
|
+
if (visited.has(clientElement))
|
|
37
|
+
return [];
|
|
38
|
+
visited.add(clientElement);
|
|
33
39
|
const defaultPeers = getDefaultPeers(clientElement.type);
|
|
34
40
|
if (!defaultPeers)
|
|
35
|
-
|
|
41
|
+
return [];
|
|
42
|
+
const result = [];
|
|
36
43
|
for (const [key, peerElement] of Object.entries(defaultPeers)) {
|
|
44
|
+
result.push([key, peerElement]);
|
|
45
|
+
// If this peer is a root client with its own default peers, recursively gather them
|
|
46
|
+
if (peerElement.type !== (Derived)) {
|
|
47
|
+
const nestedPeers = gatherDefaultPeers(peerElement, visited);
|
|
48
|
+
result.push(...nestedPeers);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return result;
|
|
52
|
+
};
|
|
53
|
+
// Apply flattened default peers for each root client
|
|
54
|
+
for (const [_clientKey, clientElement] of Object.entries(rootClients)) {
|
|
55
|
+
const allPeers = gatherDefaultPeers(clientElement);
|
|
56
|
+
for (const [key, peerElement] of allPeers) {
|
|
57
|
+
// Skip if already exists (first wins)
|
|
37
58
|
if (key in rootClients ||
|
|
38
59
|
key in derivedClients ||
|
|
39
60
|
baseClient[key].source !== null)
|
|
@@ -43,12 +64,20 @@ export function splitClients(clients, baseClient) {
|
|
|
43
64
|
}
|
|
44
65
|
else {
|
|
45
66
|
rootClients[key] = peerElement;
|
|
46
|
-
const subDefaultPeers = getDefaultPeers(peerElement.type);
|
|
47
|
-
if (subDefaultPeers)
|
|
48
|
-
throw new Error(`Nested default peers are not supported. Client "${clientKey}" has default peers, but its peer "${key}" also has default peers.`);
|
|
49
67
|
}
|
|
50
68
|
}
|
|
51
69
|
}
|
|
52
70
|
return { rootClients, derivedClients };
|
|
53
71
|
}
|
|
72
|
+
const tapShallowMemoObject = (object) => {
|
|
73
|
+
// biome-ignore lint/correctness/useExhaustiveDependencies: shallow memo
|
|
74
|
+
return tapMemo(() => object, [...Object.entries(object).flat()]);
|
|
75
|
+
};
|
|
76
|
+
export const tapSplitClients = (clients, baseClient) => {
|
|
77
|
+
const { rootClients, derivedClients } = splitClients(clients, baseClient);
|
|
78
|
+
return {
|
|
79
|
+
rootClients: tapShallowMemoObject(rootClients),
|
|
80
|
+
derivedClients: tapShallowMemoObject(derivedClients),
|
|
81
|
+
};
|
|
82
|
+
};
|
|
54
83
|
//# sourceMappingURL=splitClients.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"splitClients.js","sourceRoot":"","sources":["../../src/utils/splitClients.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAkB,sBAAmB;AAMrD,OAAO,EAAE,eAAe,EAAE,iCAA8B;
|
|
1
|
+
{"version":3,"file":"splitClients.js","sourceRoot":"","sources":["../../src/utils/splitClients.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tap-assistant-context.d.ts","sourceRoot":"","sources":["../../src/utils/tap-assistant-context.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,kBAAkB,EAClB,qBAAqB,EACtB,2BAAwB;AACzB,OAAO,KAAK,EAAE,eAAe,EAAE,2BAAwB;AACvD,OAAO,EAAkB,KAAK,WAAW,EAAE,sCAAmC;AAE9E,KAAK,MAAM,GAAG,CAAC,MAAM,SAAS,OAAO,CAAC,kBAAkB,EAAE,GAAG,CAAC,EAC5D,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,qBAAqB,CAAC,MAAM,CAAC,EACtC,WAAW,EAAE,WAAW,KACrB,IAAI,CAAC;AAEV,MAAM,MAAM,wBAAwB,GAAG;IACrC,SAAS,EAAE;QAAE,MAAM,EAAE,eAAe,CAAC;QAAC,OAAO,EAAE,eAAe,GAAG,IAAI,CAAA;KAAE,CAAC;IACxE,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;
|
|
1
|
+
{"version":3,"file":"tap-assistant-context.d.ts","sourceRoot":"","sources":["../../src/utils/tap-assistant-context.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,kBAAkB,EAClB,qBAAqB,EACtB,2BAAwB;AACzB,OAAO,KAAK,EAAE,eAAe,EAAE,2BAAwB;AACvD,OAAO,EAAkB,KAAK,WAAW,EAAE,sCAAmC;AAE9E,KAAK,MAAM,GAAG,CAAC,MAAM,SAAS,OAAO,CAAC,kBAAkB,EAAE,GAAG,CAAC,EAC5D,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,qBAAqB,CAAC,MAAM,CAAC,EACtC,WAAW,EAAE,WAAW,KACrB,IAAI,CAAC;AAEV,MAAM,MAAM,wBAAwB,GAAG;IACrC,SAAS,EAAE;QAAE,MAAM,EAAE,eAAe,CAAC;QAAC,OAAO,EAAE,eAAe,GAAG,IAAI,CAAA;KAAE,CAAC;IACxE,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAKF,eAAO,MAAM,+BAA+B,GAAI,OAAO,EACrD,OAAO,wBAAwB,EAC/B,IAAI,MAAM,OAAO,YAGlB,CAAC;AASF,eAAO,MAAM,qBAAqB;YArBX,eAAe;aAAW,eAAe,GAAG,IAAI;CAuBtE,CAAC;AAEF,eAAO,MAAM,gBAAgB,SAKxB,MAAM,SAAS,OAAO,CAAC,kBAAkB,EAAE,GAAG,CAAC,SACvC,MAAM,WACJ,qBAAqB,CAAC,MAAM,CAAC,SAK3C,CAAC"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { createResourceContext, tap, withContextProvider, tapEffectEvent, } from "@assistant-ui/tap";
|
|
2
2
|
import { tapClientStack } from "./tap-client-stack-context.js";
|
|
3
|
-
const AssistantTapContext =
|
|
3
|
+
const AssistantTapContext = createResourceContext(null);
|
|
4
4
|
export const withAssistantTapContextProvider = (value, fn) => {
|
|
5
5
|
return withContextProvider(AssistantTapContext, value, fn);
|
|
6
6
|
};
|
|
7
7
|
const tapAssistantTapContext = () => {
|
|
8
|
-
const ctx =
|
|
8
|
+
const ctx = tap(AssistantTapContext);
|
|
9
9
|
if (!ctx)
|
|
10
10
|
throw new Error("AssistantTapContext is not available");
|
|
11
11
|
return ctx;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tap-assistant-context.js","sourceRoot":"","sources":["../../src/utils/tap-assistant-context.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"tap-assistant-context.js","sourceRoot":"","sources":["../../src/utils/tap-assistant-context.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,GAAG,EACH,mBAAmB,EACnB,cAAc,GACf,MAAM,mBAAmB,CAAC;AAM3B,OAAO,EAAE,cAAc,EAAoB,sCAAmC;AAa9E,MAAM,mBAAmB,GACvB,qBAAqB,CAAkC,IAAI,CAAC,CAAC;AAE/D,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAC7C,KAA+B,EAC/B,EAAiB,EACjB,EAAE;IACF,OAAO,mBAAmB,CAAC,mBAAmB,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;AAC7D,CAAC,CAAC;AAEF,MAAM,sBAAsB,GAAG,GAAG,EAAE;IAClC,MAAM,GAAG,GAAG,GAAG,CAAC,mBAAmB,CAAC,CAAC;IACrC,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAElE,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,EAAE;IACxC,OAAO,sBAAsB,EAAE,CAAC,SAAS,CAAC;AAC5C,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,EAAE;IACnC,MAAM,EAAE,IAAI,EAAE,GAAG,sBAAsB,EAAE,CAAC;IAC1C,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IAErC,OAAO,cAAc,CACnB,CACE,KAAa,EACb,OAAsC,EACtC,EAAE;QACF,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;IACpC,CAAC,CACF,CAAC;AACJ,CAAC,CAAC"}
|