@assistant-ui/store 0.2.11 → 0.2.12
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/dist/AuiIf.d.ts +19 -15
- package/dist/AuiIf.d.ts.map +1 -1
- package/dist/AuiIf.js +27 -24
- package/dist/AuiIf.js.map +1 -1
- package/dist/Derived.d.ts +15 -11
- package/dist/Derived.d.ts.map +1 -1
- package/dist/Derived.js +24 -20
- package/dist/Derived.js.map +1 -1
- package/dist/RenderChildrenWithAccessor.d.ts +13 -6
- package/dist/RenderChildrenWithAccessor.d.ts.map +1 -1
- package/dist/RenderChildrenWithAccessor.js +42 -48
- package/dist/RenderChildrenWithAccessor.js.map +1 -1
- package/dist/attachTransformScopes.d.ts +11 -10
- package/dist/attachTransformScopes.d.ts.map +1 -1
- package/dist/attachTransformScopes.js +20 -23
- package/dist/attachTransformScopes.js.map +1 -1
- package/dist/index.d.ts +15 -16
- package/dist/index.js +14 -18
- package/dist/tapClientList.d.ts +26 -23
- package/dist/tapClientList.d.ts.map +1 -1
- package/dist/tapClientList.js +66 -63
- package/dist/tapClientList.js.map +1 -1
- package/dist/tapClientLookup.d.ts +14 -11
- package/dist/tapClientLookup.d.ts.map +1 -1
- package/dist/tapClientLookup.js +31 -37
- package/dist/tapClientLookup.js.map +1 -1
- package/dist/tapClientResource.d.ts +12 -9
- package/dist/tapClientResource.d.ts.map +1 -1
- package/dist/tapClientResource.js +92 -104
- package/dist/tapClientResource.js.map +1 -1
- package/dist/types/client.d.ts +50 -42
- package/dist/types/client.d.ts.map +1 -1
- package/dist/types/client.js +0 -2
- package/dist/types/events.d.ts +23 -24
- package/dist/types/events.d.ts.map +1 -1
- package/dist/types/events.js +13 -6
- package/dist/types/events.js.map +1 -1
- package/dist/useAui.d.ts +17 -15
- package/dist/useAui.d.ts.map +1 -1
- package/dist/useAui.js +176 -191
- package/dist/useAui.js.map +1 -1
- package/dist/useAuiEvent.d.ts +6 -2
- package/dist/useAuiEvent.d.ts.map +1 -1
- package/dist/useAuiEvent.js +59 -47
- package/dist/useAuiEvent.js.map +1 -1
- package/dist/useAuiState.d.ts +6 -2
- package/dist/useAuiState.d.ts.map +1 -1
- package/dist/useAuiState.js +44 -42
- package/dist/useAuiState.js.map +1 -1
- package/dist/utils/BaseProxyHandler.d.ts +19 -16
- package/dist/utils/BaseProxyHandler.d.ts.map +1 -1
- package/dist/utils/BaseProxyHandler.js +46 -43
- package/dist/utils/BaseProxyHandler.js.map +1 -1
- package/dist/utils/NotificationManager.d.ts +13 -9
- package/dist/utils/NotificationManager.d.ts.map +1 -1
- package/dist/utils/NotificationManager.js +69 -82
- package/dist/utils/NotificationManager.js.map +1 -1
- package/dist/utils/proxied-assistant-state.d.ts +8 -4
- package/dist/utils/proxied-assistant-state.d.ts.map +1 -1
- package/dist/utils/proxied-assistant-state.js +28 -26
- package/dist/utils/proxied-assistant-state.js.map +1 -1
- package/dist/utils/react-assistant-context.d.ts +15 -10
- package/dist/utils/react-assistant-context.d.ts.map +1 -1
- package/dist/utils/react-assistant-context.js +69 -67
- package/dist/utils/react-assistant-context.js.map +1 -1
- package/dist/utils/splitClients.d.ts +12 -8
- package/dist/utils/splitClients.d.ts.map +1 -1
- package/dist/utils/splitClients.js +39 -43
- package/dist/utils/splitClients.js.map +1 -1
- package/dist/utils/tap-assistant-context.d.ts +17 -14
- package/dist/utils/tap-assistant-context.d.ts.map +1 -1
- package/dist/utils/tap-assistant-context.js +18 -15
- package/dist/utils/tap-assistant-context.js.map +1 -1
- package/dist/utils/tap-client-stack-context.d.ts +10 -6
- package/dist/utils/tap-client-stack-context.d.ts.map +1 -1
- package/dist/utils/tap-client-stack-context.js +22 -19
- package/dist/utils/tap-client-stack-context.js.map +1 -1
- package/dist/wrapperResource.d.ts +6 -2
- package/dist/wrapperResource.d.ts.map +1 -1
- package/dist/wrapperResource.js +12 -9
- package/dist/wrapperResource.js.map +1 -1
- package/package.json +7 -7
- package/src/types/client.ts +1 -2
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/types/client.js.map +0 -1
package/dist/types/client.d.ts
CHANGED
|
@@ -1,14 +1,28 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
1
|
+
import { AssistantEventCallback, AssistantEventName, AssistantEventSelector } from "./events.js";
|
|
2
|
+
import { ResourceElement } from "@assistant-ui/tap";
|
|
3
|
+
|
|
4
|
+
//#region src/types/client.d.ts
|
|
3
5
|
/**
|
|
4
6
|
* Base type for methods that can be called on a client.
|
|
5
7
|
*/
|
|
6
|
-
|
|
7
|
-
|
|
8
|
+
interface ClientMethods {
|
|
9
|
+
[key: string | symbol]: (...args: any[]) => any;
|
|
8
10
|
}
|
|
9
11
|
type ClientMetaType = {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
+
source: ClientNames;
|
|
13
|
+
query: Record<string, unknown>;
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Schema of a client in the assistant system.
|
|
17
|
+
* @template TState - The state type for this client
|
|
18
|
+
* @template TMethods - The methods available on this client
|
|
19
|
+
* @template TMeta - Source/query metadata (optional)
|
|
20
|
+
* @template TEvents - Events that this client can emit (optional)
|
|
21
|
+
*/
|
|
22
|
+
type ClientSchema<TMethods extends ClientMethods = ClientMethods, TMeta extends ClientMetaType = never, TEvents extends Record<string, unknown> = never> = {
|
|
23
|
+
methods: TMethods;
|
|
24
|
+
meta?: TMeta;
|
|
25
|
+
events?: TEvents;
|
|
12
26
|
};
|
|
13
27
|
/**
|
|
14
28
|
* Module augmentation interface for assistant-ui store type extensions.
|
|
@@ -39,25 +53,22 @@ type ClientMetaType = {
|
|
|
39
53
|
* }
|
|
40
54
|
* ```
|
|
41
55
|
*/
|
|
42
|
-
|
|
43
|
-
}
|
|
56
|
+
interface ScopeRegistry {}
|
|
44
57
|
type ClientEventsType<K extends ClientNames> = Record<`${K}.${string}`, unknown>;
|
|
45
58
|
type ClientError<E extends string> = {
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
59
|
+
methods: Record<E, () => E>;
|
|
60
|
+
meta: {
|
|
61
|
+
source: ClientNames;
|
|
62
|
+
query: Record<E, E>;
|
|
63
|
+
};
|
|
64
|
+
events: Record<`${E}.`, E>;
|
|
52
65
|
};
|
|
53
66
|
type ValidateClient<K extends keyof ScopeRegistry> = ScopeRegistry[K] extends {
|
|
54
|
-
|
|
67
|
+
methods: ClientMethods;
|
|
55
68
|
} ? "meta" extends keyof ScopeRegistry[K] ? ScopeRegistry[K]["meta"] extends ClientMetaType ? "events" extends keyof ScopeRegistry[K] ? ScopeRegistry[K]["events"] extends ClientEventsType<K> ? ScopeRegistry[K] : ClientError<`ERROR: ${K & string} has invalid events type`> : ScopeRegistry[K] : ClientError<`ERROR: ${K & string} has invalid meta type`> : "events" extends keyof ScopeRegistry[K] ? ScopeRegistry[K]["events"] extends ClientEventsType<K> ? ScopeRegistry[K] : ClientError<`ERROR: ${K & string} has invalid events type`> : ScopeRegistry[K] : ClientError<`ERROR: ${K & string} has invalid methods type`>;
|
|
56
69
|
type ClientSchemas = keyof ScopeRegistry extends never ? {
|
|
57
|
-
|
|
58
|
-
} : {
|
|
59
|
-
[K in keyof ScopeRegistry]: ValidateClient<K>;
|
|
60
|
-
};
|
|
70
|
+
"ERROR: No clients were defined": ClientError<"ERROR: No clients were defined">;
|
|
71
|
+
} : { [K in keyof ScopeRegistry]: ValidateClient<K> };
|
|
61
72
|
/**
|
|
62
73
|
* Output type that client resources return (just methods).
|
|
63
74
|
*
|
|
@@ -72,44 +83,41 @@ type ClientSchemas = keyof ScopeRegistry extends never ? {
|
|
|
72
83
|
* });
|
|
73
84
|
* ```
|
|
74
85
|
*/
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
86
|
+
type ClientOutput<K extends ClientNames> = ClientSchemas[K]["methods"] & ClientMethods;
|
|
87
|
+
type ClientNames = keyof ClientSchemas extends infer U ? U : never;
|
|
88
|
+
type ClientEvents<K extends ClientNames> = "events" extends keyof ClientSchemas[K] ? ClientSchemas[K]["events"] extends ClientEventsType<K> ? ClientSchemas[K]["events"] : never : never;
|
|
89
|
+
type ClientMeta<K extends ClientNames> = "meta" extends keyof ClientSchemas[K] ? Pick<ClientSchemas[K]["meta"] extends ClientMetaType ? ClientSchemas[K]["meta"] : never, "source" | "query"> : never;
|
|
90
|
+
type ClientElement<K extends ClientNames> = ResourceElement<ClientOutput<K>>;
|
|
80
91
|
/**
|
|
81
92
|
* Unsubscribe function type.
|
|
82
93
|
*/
|
|
83
|
-
|
|
94
|
+
type Unsubscribe = () => void;
|
|
84
95
|
/**
|
|
85
96
|
* State type extracted from all clients via their getState() methods.
|
|
86
97
|
*/
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
} ? S : never;
|
|
91
|
-
};
|
|
98
|
+
type AssistantState = { [K in ClientNames]: ClientSchemas[K]["methods"] extends {
|
|
99
|
+
getState: () => infer S;
|
|
100
|
+
} ? S : never };
|
|
92
101
|
/**
|
|
93
102
|
* Type for a client accessor - a function that returns the methods,
|
|
94
103
|
* with source/query metadata attached (derived from meta).
|
|
95
104
|
*/
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
105
|
+
type AssistantClientAccessor<K extends ClientNames> = (() => ClientSchemas[K]["methods"]) & (ClientMeta<K> | {
|
|
106
|
+
source: "root";
|
|
107
|
+
query: Record<string, never>;
|
|
99
108
|
} | {
|
|
100
|
-
|
|
101
|
-
|
|
109
|
+
source: null;
|
|
110
|
+
query: null;
|
|
102
111
|
}) & {
|
|
103
|
-
|
|
112
|
+
name: K;
|
|
104
113
|
};
|
|
105
114
|
/**
|
|
106
115
|
* The assistant client type with all registered clients.
|
|
107
116
|
*/
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
subscribe(listener: () => void): Unsubscribe;
|
|
112
|
-
on<TEvent extends AssistantEventName>(selector: AssistantEventSelector<TEvent>, callback: AssistantEventCallback<TEvent>): Unsubscribe;
|
|
117
|
+
type AssistantClient = { [K in ClientNames]: AssistantClientAccessor<K> } & {
|
|
118
|
+
subscribe(listener: () => void): Unsubscribe;
|
|
119
|
+
on<TEvent extends AssistantEventName>(selector: AssistantEventSelector<TEvent>, callback: AssistantEventCallback<TEvent>): Unsubscribe;
|
|
113
120
|
};
|
|
114
|
-
|
|
121
|
+
//#endregion
|
|
122
|
+
export { AssistantClient, AssistantClientAccessor, AssistantState, ClientElement, ClientEvents, ClientMeta, ClientMethods, ClientNames, ClientOutput, ClientSchema, ScopeRegistry, Unsubscribe };
|
|
115
123
|
//# sourceMappingURL=client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","
|
|
1
|
+
{"version":3,"file":"client.d.ts","names":[],"sources":["../../src/types/client.ts"],"mappings":";;;;;;AAUA;UAAiB,aAAA;EAAA,CACd,GAAA,wBAA2B,IAAI;AAAA;AAAA,KAG7B,cAAA;EAAmB,MAAA,EAAQ,WAAA;EAAa,KAAA,EAAO,MAAM;AAAA;;;;;;;AAAA;KAS9C,YAAA,kBACO,aAAA,GAAgB,aAAA,gBACnB,cAAA,0BACE,MAAA;EAEhB,OAAA,EAAS,QAAA;EACT,IAAA,GAAO,KAAA;EACP,MAAA,GAAS,OAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;AAAO;AAiClB;;;;AAA8B;AAAG;;UAAhB,aAAA;AAAA,KAEZ,gBAAA,WAA2B,WAAA,IAAe,MAAA,IAC1C,CAAA;AAAA,KAIA,WAAA;EACH,OAAA,EAAS,MAAA,CAAO,CAAA,QAAS,CAAA;EACzB,IAAA;IAAQ,MAAA,EAAQ,WAAA;IAAa,KAAA,EAAO,MAAA,CAAO,CAAA,EAAG,CAAA;EAAA;EAC9C,MAAA,EAAQ,MAAA,IAAU,CAAA,KAAM,CAAA;AAAA;AAAA,KAGrB,cAAA,iBAA+B,aAAA,IAAiB,aAAA,CAAc,CAAA;EACjE,OAAA,EAAS,aAAA;AAAA,yBAEc,aAAA,CAAc,CAAA,IACjC,aAAA,CAAc,CAAA,kBAAmB,cAAA,0BACR,aAAA,CAAc,CAAA,IACnC,aAAA,CAAc,CAAA,oBAAqB,gBAAA,CAAiB,CAAA,IAClD,aAAA,CAAc,CAAA,IACd,WAAA,WAAsB,CAAA,uCACxB,aAAA,CAAc,CAAA,IAChB,WAAA,WAAsB,CAAA,4DACD,aAAA,CAAc,CAAA,IACnC,aAAA,CAAc,CAAA,oBAAqB,gBAAA,CAAiB,CAAA,IAClD,aAAA,CAAc,CAAA,IACd,WAAA,WAAsB,CAAA,uCACxB,aAAA,CAAc,CAAA,IAClB,WAAA,WAAsB,CAAA;AAAA,KAErB,aAAA,SAAsB,aAAA;EAErB,gCAAA,EAAkC,WAAA;AAAA,kBAEtB,aAAA,GAAgB,cAAA,CAAe,CAAA;;;;;;;;;;;;;;;KAgBrC,YAAA,WAAuB,WAAA,IAAe,aAAA,CAAc,CAAA,eAC9D,aAAA;AAAA,KAEU,WAAA,SAAoB,aAAa,mBAAmB,CAAA;AAAA,KAEpD,YAAA,WAAuB,WAAA,2BACV,aAAA,CAAc,CAAA,IACjC,aAAA,CAAc,CAAA,oBAAqB,gBAAA,CAAiB,CAAA,IAClD,aAAA,CAAc,CAAA;AAAA,KAIV,UAAA,WAAqB,WAAA,yBACV,aAAA,CAAc,CAAA,IAC/B,IAAA,CACE,aAAA,CAAc,CAAA,kBAAmB,cAAA,GAC7B,aAAA,CAAc,CAAA;AAAA,KAMd,aAAA,WAAwB,WAAA,IAAe,eAAA,CACjD,YAAA,CAAa,CAAA;;;;KAMH,WAAA;;;AAtEe;KA2Ef,cAAA,WACJ,WAAA,GAAc,aAAA,CAAc,CAAA;EAChC,QAAA;AAAA,IAEE,CAAA;;;;;KAQM,uBAAA,WAAkC,WAAA,WACrC,aAAA,CAAc,CAAA,iBAEf,UAAA,CAAW,CAAA;EACT,MAAA;EAAgB,KAAA,EAAO,MAAA;AAAA;EACvB,MAAA;EAAc,KAAA;AAAA;EACd,IAAA,EAAM,CAAA;AAAA;;;;KAKJ,eAAA,WACJ,WAAA,GAAc,uBAAA,CAAwB,CAAA;EAE5C,SAAA,CAAU,QAAA,eAAuB,WAAA;EACjC,EAAA,gBAAkB,kBAAA,EAChB,QAAA,EAAU,sBAAA,CAAuB,MAAA,GACjC,QAAA,EAAU,sBAAA,CAAuB,MAAA,IAChC,WAAA;AAAA"}
|
package/dist/types/client.js
CHANGED
package/dist/types/events.d.ts
CHANGED
|
@@ -1,33 +1,32 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
}[ClientNames]>;
|
|
6
|
-
type WildcardPayload = {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
export type AssistantEventPayload = ClientEventMap & {
|
|
13
|
-
"*": WildcardPayload;
|
|
1
|
+
import { AssistantClientAccessor, ClientEvents, ClientNames } from "./client.js";
|
|
2
|
+
|
|
3
|
+
//#region src/types/events.d.ts
|
|
4
|
+
type UnionToIntersection<U> = (U extends unknown ? (x: U) => void : never) extends ((x: infer I) => void) ? I : never;
|
|
5
|
+
type ClientEventMap = UnionToIntersection<{ [K in ClientNames]: ClientEvents<K> }[ClientNames]>;
|
|
6
|
+
type WildcardPayload = { [K in keyof ClientEventMap]: {
|
|
7
|
+
event: K;
|
|
8
|
+
payload: ClientEventMap[K];
|
|
9
|
+
} }[keyof ClientEventMap];
|
|
10
|
+
type AssistantEventPayload = ClientEventMap & {
|
|
11
|
+
"*": WildcardPayload;
|
|
14
12
|
};
|
|
15
|
-
|
|
13
|
+
type AssistantEventName = keyof AssistantEventPayload;
|
|
16
14
|
type EventSource<T extends AssistantEventName> = T extends `${infer Source}.${string}` ? Source : never;
|
|
17
15
|
type ParentOf<K extends ClientNames> = AssistantClientAccessor<K> extends {
|
|
18
|
-
|
|
16
|
+
source: infer S;
|
|
19
17
|
} ? S extends ClientNames ? S : never : never;
|
|
20
18
|
type AncestorsOf<K extends ClientNames, Seen extends ClientNames = never> = K extends Seen ? never : ParentOf<K> extends never ? never : ParentOf<K> | AncestorsOf<ParentOf<K>, Seen | K>;
|
|
21
19
|
/** Valid scopes: `"*"` | event source | ancestors of event source */
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
20
|
+
type AssistantEventScope<TEvent extends AssistantEventName> = "*" | EventSource<TEvent> | (EventSource<TEvent> extends ClientNames ? AncestorsOf<EventSource<TEvent>> : never);
|
|
21
|
+
type AssistantEventSelector<TEvent extends AssistantEventName> = TEvent | {
|
|
22
|
+
scope: AssistantEventScope<TEvent>;
|
|
23
|
+
event: TEvent;
|
|
26
24
|
};
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
25
|
+
declare const normalizeEventSelector: <TEvent extends AssistantEventName>(selector: AssistantEventSelector<TEvent>) => {
|
|
26
|
+
scope: AssistantEventScope<TEvent>;
|
|
27
|
+
event: TEvent;
|
|
30
28
|
};
|
|
31
|
-
|
|
32
|
-
|
|
29
|
+
type AssistantEventCallback<TEvent extends AssistantEventName> = (payload: AssistantEventPayload[TEvent]) => void;
|
|
30
|
+
//#endregion
|
|
31
|
+
export { AssistantEventCallback, AssistantEventName, AssistantEventPayload, AssistantEventScope, AssistantEventSelector, normalizeEventSelector };
|
|
33
32
|
//# sourceMappingURL=events.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.d.ts","
|
|
1
|
+
{"version":3,"file":"events.d.ts","names":[],"sources":["../../src/types/events.ts"],"mappings":";;;KAOK,mBAAA,OACH,CAAA,oBACK,CAAA,EAAG,CAAC,6BAEA,CAAA,sBACP,CAAA;AAAA,KAGC,cAAA,GAAiB,mBAAA,SACZ,WAAA,GAAc,YAAA,CAAa,CAAA,IAAK,WAAA;AAAA,KAKrC,eAAA,iBACS,cAAA;EAAmB,KAAA,EAAO,CAAA;EAAG,OAAA,EAAS,cAAA,CAAe,CAAA;AAAA,UAC3D,cAAA;AAAA,KAEI,qBAAA,GAAwB,cAAA;EAAmB,GAAA,EAAK,eAAe;AAAA;AAAA,KAE/D,kBAAA,SAA2B,qBAAqB;AAAA,KAEvD,WAAA,WAAsB,kBAAA,IACzB,CAAC,uCAAuC,MAAA;AAAA,KAIrC,QAAA,WAAmB,WAAA,IACtB,uBAAA,CAAwB,CAAA;EAAa,MAAA;AAAA,IACjC,CAAA,SAAU,WAAA,GACR,CAAA;AAAA,KAIH,WAAA,WACO,WAAA,eACG,WAAA,YACX,CAAA,SAAU,IAAA,WAEV,QAAA,CAAS,CAAA,0BAEP,QAAA,CAAS,CAAA,IAAK,WAAA,CAAY,QAAA,CAAS,CAAA,GAAI,IAAA,GAAO,CAAA;;KAGxC,mBAAA,gBAAmC,kBAAA,UAE3C,WAAA,CAAY,MAAA,KACX,WAAA,CAAY,MAAA,UAAgB,WAAA,GACzB,WAAA,CAAY,WAAA,CAAY,MAAA;AAAA,KAKpB,sBAAA,gBAAsC,kBAAA,IAC9C,MAAA;EACE,KAAA,EAAO,mBAAA,CAAoB,MAAA;EAAS,KAAA,EAAO,MAAA;AAAA;AAAA,cAEpC,sBAAA,kBAAyC,kBAAA,EACpD,QAAA,EAAU,sBAAA,CAAuB,MAAA;;;;KASvB,sBAAA,gBAAsC,kBAAA,KAChD,OAAA,EAAS,qBAAA,CAAsB,MAAA"}
|
package/dist/types/events.js
CHANGED
|
@@ -1,8 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
//#region src/types/events.ts
|
|
2
|
+
const normalizeEventSelector = (selector) => {
|
|
3
|
+
if (typeof selector === "string") return {
|
|
4
|
+
scope: selector.split(".")[0],
|
|
5
|
+
event: selector
|
|
6
|
+
};
|
|
7
|
+
return {
|
|
8
|
+
scope: selector.scope,
|
|
9
|
+
event: selector.event
|
|
10
|
+
};
|
|
7
11
|
};
|
|
12
|
+
//#endregion
|
|
13
|
+
export { normalizeEventSelector };
|
|
14
|
+
|
|
8
15
|
//# sourceMappingURL=events.js.map
|
package/dist/types/events.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.js","
|
|
1
|
+
{"version":3,"file":"events.js","names":[],"sources":["../../src/types/events.ts"],"sourcesContent":["import type {\n AssistantClientAccessor,\n ClientEvents,\n ClientNames,\n} from \"./client\";\n\n// --- Event Map Construction ---\ntype UnionToIntersection<U> = (\n U extends unknown\n ? (x: U) => void\n : never\n) extends (x: infer I) => void\n ? I\n : never;\n\ntype ClientEventMap = UnionToIntersection<\n { [K in ClientNames]: ClientEvents<K> }[ClientNames]\n>;\n\n// --- Core Types ---\n\ntype WildcardPayload = {\n [K in keyof ClientEventMap]: { event: K; payload: ClientEventMap[K] };\n}[keyof ClientEventMap];\n\nexport type AssistantEventPayload = ClientEventMap & { \"*\": WildcardPayload };\n\nexport type AssistantEventName = keyof AssistantEventPayload;\n\ntype EventSource<T extends AssistantEventName> =\n T extends `${infer Source}.${string}` ? Source : never;\n\n// --- Scoping ---\n\ntype ParentOf<K extends ClientNames> =\n AssistantClientAccessor<K> extends { source: infer S }\n ? S extends ClientNames\n ? S\n : never\n : never;\n\ntype AncestorsOf<\n K extends ClientNames,\n Seen extends ClientNames = never,\n> = K extends Seen\n ? never\n : ParentOf<K> extends never\n ? never\n : ParentOf<K> | AncestorsOf<ParentOf<K>, Seen | K>;\n\n/** Valid scopes: `\"*\"` | event source | ancestors of event source */\nexport type AssistantEventScope<TEvent extends AssistantEventName> =\n | \"*\"\n | EventSource<TEvent>\n | (EventSource<TEvent> extends ClientNames\n ? AncestorsOf<EventSource<TEvent>>\n : never);\n\n// --- Selection & Callbacks ---\n\nexport type AssistantEventSelector<TEvent extends AssistantEventName> =\n | TEvent\n | { scope: AssistantEventScope<TEvent>; event: TEvent };\n\nexport const normalizeEventSelector = <TEvent extends AssistantEventName>(\n selector: AssistantEventSelector<TEvent>,\n) => {\n if (typeof selector === \"string\") {\n const source = selector.split(\".\")[0] as AssistantEventScope<TEvent>;\n return { scope: source, event: selector };\n }\n return { scope: selector.scope, event: selector.event };\n};\n\nexport type AssistantEventCallback<TEvent extends AssistantEventName> = (\n payload: AssistantEventPayload[TEvent],\n) => void;\n"],"mappings":";AAgEA,MAAa,0BACX,aACG;CACH,IAAI,OAAO,aAAa,UAEtB,OAAO;EAAE,OADM,SAAS,MAAM,GAAG,EAAE;EACX,OAAO;CAAS;CAE1C,OAAO;EAAE,OAAO,SAAS;EAAO,OAAO,SAAS;CAAM;AACxD"}
|
package/dist/useAui.d.ts
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
1
|
+
import { AssistantClient, ClientElement, ClientNames } from "./types/client.js";
|
|
2
|
+
import { DerivedElement } from "./Derived.js";
|
|
3
|
+
|
|
4
|
+
//#region src/useAui.d.ts
|
|
3
5
|
/**
|
|
4
6
|
* Resource that creates an extended AssistantClient.
|
|
5
7
|
*/
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
8
|
+
declare const AssistantClientResource: (props: {
|
|
9
|
+
parent: AssistantClient;
|
|
10
|
+
clients: useAui.Props;
|
|
9
11
|
}) => import("@assistant-ui/tap").ResourceElement<AssistantClient, {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
+
parent: AssistantClient;
|
|
13
|
+
clients: useAui.Props;
|
|
12
14
|
}>;
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
[K in ClientNames]?: ClientElement<K> | DerivedElement<K>;
|
|
16
|
-
};
|
|
15
|
+
declare namespace useAui {
|
|
16
|
+
type Props = { [K in ClientNames]?: ClientElement<K> | DerivedElement<K> };
|
|
17
17
|
}
|
|
18
18
|
/**
|
|
19
19
|
* Returns the current `AssistantClient` from context.
|
|
@@ -50,7 +50,7 @@ export declare namespace useAui {
|
|
|
50
50
|
* );
|
|
51
51
|
* ```
|
|
52
52
|
*/
|
|
53
|
-
|
|
53
|
+
declare function useAui(): AssistantClient;
|
|
54
54
|
/**
|
|
55
55
|
* Extends the parent `AssistantClient` with additional scopes.
|
|
56
56
|
*
|
|
@@ -72,11 +72,13 @@ export declare function useAui(): AssistantClient;
|
|
|
72
72
|
* const role = useAuiState((s) => s.message.role);
|
|
73
73
|
* ```
|
|
74
74
|
*/
|
|
75
|
-
|
|
75
|
+
declare function useAui(clients: useAui.Props): AssistantClient;
|
|
76
76
|
/**
|
|
77
77
|
* Extends an explicit parent `AssistantClient` with additional scopes.
|
|
78
78
|
*/
|
|
79
|
-
|
|
80
|
-
|
|
79
|
+
declare function useAui(clients: useAui.Props, config: {
|
|
80
|
+
parent: null | AssistantClient;
|
|
81
81
|
}): AssistantClient;
|
|
82
|
+
//#endregion
|
|
83
|
+
export { AssistantClientResource, useAui };
|
|
82
84
|
//# sourceMappingURL=useAui.d.ts.map
|
package/dist/useAui.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAui.d.ts","
|
|
1
|
+
{"version":3,"file":"useAui.d.ts","names":[],"sources":["../src/useAui.ts"],"mappings":";;;;;;AA6SA;cAAa,uBAAA,GAAuB,KAAA;UAKxB,eAAA;WACC,MAAA,CAAO,KAAA;AAAA;UADR,eAAA;WACC,MAAA,CAAO,KAAA;AAAA;AAAA,kBA0DH,MAAA;EAAA,KACH,KAAA,WACJ,WAAA,IAAe,aAAA,CAAc,CAAA,IAAK,cAAA,CAAe,CAAA;AAAA;;;;;;;;;;;;AA5DlC;AA0DzB;;;;;;;;;;;;;;;;;;AAE4D;AAuC5D;;;;iBAAgB,MAAA,CAAA,GAAU,eAAe;AAsBzC;;;;;;;;;AAA8D;AAI9D;;;;;;;;;;;AAJA,iBAAgB,MAAA,CAAO,OAAA,EAAS,MAAA,CAAO,KAAA,GAAQ,eAAe;;;;iBAI9C,MAAA,CACd,OAAA,EAAS,MAAA,CAAO,KAAA,EAChB,MAAA;EAAU,MAAA,SAAe,eAAA;AAAA,IACxB,eAAA"}
|