@assistant-ui/store 0.0.6 → 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 +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 +20 -0
- package/dist/useAui.d.ts.map +1 -0
- package/dist/{useAssistantClient.js → useAui.js} +65 -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/{useAssistantEvent.js → useAuiEvent.js} +4 -4
- 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 +3 -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 +13 -1
- 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 +2 -2
- 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} +95 -52
- package/src/{useAssistantEvent.ts → useAuiEvent.ts} +3 -3
- package/src/{useAssistantState.tsx → useAuiState.tsx} +5 -7
- package/src/utils/NotificationManager.ts +3 -2
- package/src/utils/StoreResource.ts +3 -5
- package/src/utils/react-assistant-context.tsx +9 -8
- package/src/utils/splitClients.ts +22 -7
- 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.map +0 -1
- package/dist/useAssistantState.d.ts.map +0 -1
- package/dist/useAssistantState.js.map +0 -1
- package/src/AssistantIf.tsx +0 -17
package/README.md
CHANGED
|
@@ -6,7 +6,7 @@ Tap-based state management with React Context integration.
|
|
|
6
6
|
|
|
7
7
|
```typescript
|
|
8
8
|
import { resource, tapState } from "@assistant-ui/tap";
|
|
9
|
-
import {
|
|
9
|
+
import { useAui, useAuiState, AuiProvider, type ClientOutput } from "@assistant-ui/store";
|
|
10
10
|
|
|
11
11
|
// 1. Define client type
|
|
12
12
|
declare module "@assistant-ui/store" {
|
|
@@ -23,13 +23,13 @@ const CounterClient = resource((): ClientOutput<"counter"> => {
|
|
|
23
23
|
|
|
24
24
|
// 3. Use in React
|
|
25
25
|
function App() {
|
|
26
|
-
const aui =
|
|
27
|
-
return <
|
|
26
|
+
const aui = useAui({ counter: CounterClient() });
|
|
27
|
+
return <AuiProvider value={aui}><Counter /></AuiProvider>;
|
|
28
28
|
}
|
|
29
29
|
|
|
30
30
|
function Counter() {
|
|
31
|
-
const count =
|
|
32
|
-
const aui =
|
|
31
|
+
const count = useAuiState(({ counter }) => counter.count);
|
|
32
|
+
const aui = useAui();
|
|
33
33
|
return <button onClick={() => aui.counter().increment()}>{count}</button>;
|
|
34
34
|
}
|
|
35
35
|
```
|
|
@@ -52,7 +52,7 @@ declare module "@assistant-ui/store" {
|
|
|
52
52
|
|
|
53
53
|
**Derived Clients**: Access nested clients from parents.
|
|
54
54
|
```typescript
|
|
55
|
-
|
|
55
|
+
useAui({
|
|
56
56
|
item: Derived({ source: "list", query: { index: 0 }, get: (aui) => aui.list().item({ index: 0 }) }),
|
|
57
57
|
});
|
|
58
58
|
```
|
|
@@ -62,19 +62,19 @@ useAssistantClient({
|
|
|
62
62
|
const emit = tapAssistantEmit();
|
|
63
63
|
emit("myClient.updated", { id: "123" });
|
|
64
64
|
|
|
65
|
-
|
|
65
|
+
useAuiEvent("myClient.updated", (p) => console.log(p.id));
|
|
66
66
|
```
|
|
67
67
|
|
|
68
68
|
## API
|
|
69
69
|
|
|
70
70
|
| Hook/Component | Description |
|
|
71
71
|
|----------------|-------------|
|
|
72
|
-
| `
|
|
73
|
-
| `
|
|
74
|
-
| `
|
|
75
|
-
| `
|
|
76
|
-
| `
|
|
77
|
-
| `
|
|
72
|
+
| `useAui()` | Get client from context |
|
|
73
|
+
| `useAui(clients)` | Create/extend client |
|
|
74
|
+
| `useAuiState(selector)` | Subscribe to state |
|
|
75
|
+
| `useAuiEvent(event, cb)` | Subscribe to events |
|
|
76
|
+
| `AuiProvider` | Provide client to tree |
|
|
77
|
+
| `AuiIf` | Conditional rendering |
|
|
78
78
|
|
|
79
79
|
| Tap Utility | Description |
|
|
80
80
|
|-------------|-------------|
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import type { FC, PropsWithChildren } from "react";
|
|
2
2
|
import type { AssistantState } from "./types/client.js";
|
|
3
|
-
export declare namespace
|
|
3
|
+
export declare namespace AuiIf {
|
|
4
4
|
type Props = PropsWithChildren<{
|
|
5
|
-
condition:
|
|
5
|
+
condition: AuiIf.Condition;
|
|
6
6
|
}>;
|
|
7
7
|
type Condition = (state: AssistantState) => boolean;
|
|
8
8
|
}
|
|
9
|
-
export declare const
|
|
10
|
-
//# sourceMappingURL=
|
|
9
|
+
export declare const AuiIf: FC<AuiIf.Props>;
|
|
10
|
+
//# sourceMappingURL=AuiIf.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AuiIf.d.ts","sourceRoot":"","sources":["../src/AuiIf.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAE,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAEnD,OAAO,KAAK,EAAE,cAAc,EAAE,0BAAuB;AAErD,yBAAiB,KAAK,CAAC;IACrB,KAAY,KAAK,GAAG,iBAAiB,CAAC;QAAE,SAAS,EAAE,KAAK,CAAC,SAAS,CAAA;KAAE,CAAC,CAAC;IACtE,KAAY,SAAS,GAAG,CAAC,KAAK,EAAE,cAAc,KAAK,OAAO,CAAC;CAC5D;AAED,eAAO,MAAM,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAGjC,CAAC"}
|
package/dist/AuiIf.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AuiIf.js","sourceRoot":"","sources":["../src/AuiIf.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAGb,OAAO,EAAE,WAAW,EAAE,yBAAsB;AAQ5C,MAAM,CAAC,MAAM,KAAK,GAAoB,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE;IAChE,MAAM,MAAM,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;IACtC,OAAO,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;AAClC,CAAC,CAAC;AAEF,KAAK,CAAC,WAAW,GAAG,OAAO,CAAC"}
|
package/dist/Derived.d.ts
CHANGED
|
@@ -10,7 +10,7 @@ import type { AssistantClient, ClientNames, AssistantClientAccessor, ClientMeta
|
|
|
10
10
|
*
|
|
11
11
|
* @example
|
|
12
12
|
* ```typescript
|
|
13
|
-
* const aui =
|
|
13
|
+
* const aui = useAui({
|
|
14
14
|
* message: Derived({
|
|
15
15
|
* source: "thread",
|
|
16
16
|
* query: { index: 0 },
|
|
@@ -19,7 +19,7 @@ import type { AssistantClient, ClientNames, AssistantClientAccessor, ClientMeta
|
|
|
19
19
|
* });
|
|
20
20
|
* ```
|
|
21
21
|
*/
|
|
22
|
-
export declare const Derived: <K extends ClientNames>(
|
|
22
|
+
export declare const Derived: <K extends ClientNames>(props: Derived.Props<K>) => ResourceElement<null, Derived.Props<K>>;
|
|
23
23
|
export type DerivedElement<K extends ClientNames> = ResourceElement<null, Derived.Props<K>>;
|
|
24
24
|
export declare namespace Derived {
|
|
25
25
|
/**
|
package/dist/Derived.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Derived.d.ts","sourceRoot":"","sources":["../src/Derived.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,KAAK,EACV,eAAe,EACf,WAAW,EACX,uBAAuB,EACvB,UAAU,EACX,0BAAuB;AAExB;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,OAAO,GACjB,CAAC,SAAS,WAAW,
|
|
1
|
+
{"version":3,"file":"Derived.d.ts","sourceRoot":"","sources":["../src/Derived.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,KAAK,EACV,eAAe,EACf,WAAW,EACX,uBAAuB,EACvB,UAAU,EACX,0BAAuB;AAExB;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,OAAO,GACjB,CAAC,SAAS,WAAW,qEAGvB,CAAC;AAEF,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,WAAW,IAAI,eAAe,CACjE,IAAI,EACJ,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CACjB,CAAC;AAEF,yBAAiB,OAAO,CAAC;IACvB;;OAEG;IACH,KAAY,KAAK,CAAC,CAAC,SAAS,WAAW,IAAI;QACzC,GAAG,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,UAAU,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC;KAC1E,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG;QAAE,OAAO,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,UAAU,CAAC,CAAC,CAAC,CAAA;KAAE,CAAC,CAAC;CAC/E"}
|
package/dist/Derived.js
CHANGED
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export {
|
|
3
|
-
export {
|
|
4
|
-
export {
|
|
5
|
-
export {
|
|
1
|
+
export { useAui } from "./useAui.js";
|
|
2
|
+
export { useAuiState } from "./useAuiState.js";
|
|
3
|
+
export { useAuiEvent } from "./useAuiEvent.js";
|
|
4
|
+
export { AuiIf } from "./AuiIf.js";
|
|
5
|
+
export { AuiProvider } from "./utils/react-assistant-context.js";
|
|
6
6
|
export { Derived } from "./Derived.js";
|
|
7
7
|
export { attachDefaultPeers } from "./attachDefaultPeers.js";
|
|
8
8
|
export { tapAssistantClientRef, tapAssistantEmit, } from "./utils/tap-assistant-context.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,oBAAiB;AAClC,OAAO,EAAE,WAAW,EAAE,yBAAsB;AAC5C,OAAO,EAAE,WAAW,EAAE,yBAAsB;AAG5C,OAAO,EAAE,KAAK,EAAE,mBAAgB;AAChC,OAAO,EAAE,WAAW,EAAE,2CAAwC;AAG9D,OAAO,EAAE,OAAO,EAAE,qBAAkB;AACpC,OAAO,EAAE,kBAAkB,EAAE,gCAA6B;AAG1D,OAAO,EACL,qBAAqB,EACrB,gBAAgB,GACjB,yCAAsC;AACvC,OAAO,EAAE,iBAAiB,EAAE,+BAA4B;AACxD,OAAO,EAAE,eAAe,EAAE,6BAA0B;AACpD,OAAO,EAAE,aAAa,EAAE,2BAAwB;AAGhD,YAAY,EACV,cAAc,EACd,YAAY,EACZ,eAAe,EACf,cAAc,GACf,0BAAuB;AACxB,YAAY,EACV,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,mBAAmB,GACpB,0BAAuB;AACxB,YAAY,EAAE,YAAY,EAAE,gCAA6B"}
|
package/dist/index.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
// hooks
|
|
2
|
-
export {
|
|
3
|
-
export {
|
|
4
|
-
export {
|
|
2
|
+
export { useAui } from "./useAui.js";
|
|
3
|
+
export { useAuiState } from "./useAuiState.js";
|
|
4
|
+
export { useAuiEvent } from "./useAuiEvent.js";
|
|
5
5
|
// components
|
|
6
|
-
export {
|
|
7
|
-
export {
|
|
6
|
+
export { AuiIf } from "./AuiIf.js";
|
|
7
|
+
export { AuiProvider } from "./utils/react-assistant-context.js";
|
|
8
8
|
// resources
|
|
9
9
|
export { Derived } from "./Derived.js";
|
|
10
10
|
export { attachDefaultPeers } from "./attachDefaultPeers.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,QAAQ;AACR,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,QAAQ;AACR,OAAO,EAAE,MAAM,EAAE,oBAAiB;AAClC,OAAO,EAAE,WAAW,EAAE,yBAAsB;AAC5C,OAAO,EAAE,WAAW,EAAE,yBAAsB;AAE5C,aAAa;AACb,OAAO,EAAE,KAAK,EAAE,mBAAgB;AAChC,OAAO,EAAE,WAAW,EAAE,2CAAwC;AAE9D,YAAY;AACZ,OAAO,EAAE,OAAO,EAAE,qBAAkB;AACpC,OAAO,EAAE,kBAAkB,EAAE,gCAA6B;AAE1D,YAAY;AACZ,OAAO,EACL,qBAAqB,EACrB,gBAAgB,GACjB,yCAAsC;AACvC,OAAO,EAAE,iBAAiB,EAAE,+BAA4B;AACxD,OAAO,EAAE,eAAe,EAAE,6BAA0B;AACpD,OAAO,EAAE,aAAa,EAAE,2BAAwB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tapClientList.d.ts","sourceRoot":"","sources":["../src/tapClientList.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE/D,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,0BAAuB;
|
|
1
|
+
{"version":3,"file":"tapClientList.d.ts","sourceRoot":"","sources":["../src/tapClientList.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE/D,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,0BAAuB;AAuBpE,eAAO,MAAM,aAAa,GAAI,KAAK,EAAE,MAAM,EAAE,QAAQ,SAAS,aAAa,EACzE,OAAO,aAAa,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,KAClD;IACD,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,EAAE,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,KAAK,QAAQ,CAAC;IAC/D,GAAG,EAAE,CAAC,WAAW,EAAE,KAAK,KAAK,IAAI,CAAC;CAqEnC,CAAC;AAEF,yBAAiB,aAAa,CAAC;IAC7B,KAAY,aAAa,CAAC,KAAK,IAAI;QACjC,GAAG,EAAE,MAAM,CAAC;QACZ,cAAc,EAAE,MAAM,KAAK,CAAC;QAC5B,MAAM,EAAE,MAAM,IAAI,CAAC;KACpB,CAAC;IAEF,KAAY,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,SAAS,aAAa,IAAI;QACjE,aAAa,EAAE,KAAK,EAAE,CAAC;QACvB,MAAM,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,MAAM,CAAC;QAChC,QAAQ,EAAE,qBAAqB,CAC7B,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,EAChC,aAAa,CAAC,KAAK,CAAC,CACrB,CAAC;KACH,CAAC;CACH"}
|
package/dist/tapClientList.js
CHANGED
|
@@ -1,29 +1,28 @@
|
|
|
1
|
-
import { tapState } from "@assistant-ui/tap";
|
|
1
|
+
import { tapConst, tapState, withKey } from "@assistant-ui/tap";
|
|
2
2
|
import { tapClientLookup } from "./tapClientLookup.js";
|
|
3
3
|
const createProps = (key, data, remove) => {
|
|
4
|
-
let initialData = { data };
|
|
5
4
|
return {
|
|
6
5
|
key,
|
|
7
6
|
getInitialData: () => {
|
|
8
|
-
if (!
|
|
9
|
-
throw new Error("getInitialData may only be called
|
|
7
|
+
if (!data.hasData) {
|
|
8
|
+
throw new Error("getInitialData may only be called during initial render");
|
|
10
9
|
}
|
|
11
|
-
|
|
12
|
-
initialData = undefined;
|
|
13
|
-
return data;
|
|
10
|
+
return data.data;
|
|
14
11
|
},
|
|
15
12
|
remove,
|
|
16
13
|
};
|
|
17
14
|
};
|
|
18
15
|
export const tapClientList = (props) => {
|
|
19
16
|
const { initialValues, getKey, resource: Resource } = props;
|
|
17
|
+
const initialDataHandles = tapConst(() => [], []);
|
|
20
18
|
const [items, setItems] = tapState(() => {
|
|
21
19
|
const entries = [];
|
|
22
20
|
for (const data of initialValues) {
|
|
23
21
|
const key = getKey(data);
|
|
22
|
+
const handle = { data, hasData: true };
|
|
24
23
|
entries.push([
|
|
25
24
|
key,
|
|
26
|
-
createProps(key,
|
|
25
|
+
createProps(key, handle, () => {
|
|
27
26
|
setItems((items) => {
|
|
28
27
|
const newItems = { ...items };
|
|
29
28
|
delete newItems[key];
|
|
@@ -31,19 +30,26 @@ export const tapClientList = (props) => {
|
|
|
31
30
|
});
|
|
32
31
|
}),
|
|
33
32
|
]);
|
|
33
|
+
initialDataHandles.push(handle);
|
|
34
34
|
}
|
|
35
35
|
return Object.fromEntries(entries);
|
|
36
36
|
});
|
|
37
|
-
const lookup = tapClientLookup(items, Resource, [Resource]);
|
|
37
|
+
const lookup = tapClientLookup(() => Object.values(items).map((props) => withKey(props.key, Resource(props))), [items, Resource]);
|
|
38
|
+
initialDataHandles.forEach((handle) => {
|
|
39
|
+
handle.data = undefined;
|
|
40
|
+
handle.hasData = false;
|
|
41
|
+
});
|
|
38
42
|
const add = (data) => {
|
|
39
43
|
const key = getKey(data);
|
|
40
44
|
setItems((items) => {
|
|
41
45
|
if (key in items) {
|
|
42
46
|
throw new Error(`Tried to add item with a key ${key} that already exists`);
|
|
43
47
|
}
|
|
48
|
+
const handle = { data, hasData: true };
|
|
49
|
+
initialDataHandles.push(handle);
|
|
44
50
|
return {
|
|
45
51
|
...items,
|
|
46
|
-
[key]: createProps(key,
|
|
52
|
+
[key]: createProps(key, handle, () => {
|
|
47
53
|
setItems((items) => {
|
|
48
54
|
const newItems = { ...items };
|
|
49
55
|
delete newItems[key];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tapClientList.js","sourceRoot":"","sources":["../src/tapClientList.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"tapClientList.js","sourceRoot":"","sources":["../src/tapClientList.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { ResourceElement } from "@assistant-ui/tap";
|
|
1
|
+
import { type ResourceElement } from "@assistant-ui/tap";
|
|
2
2
|
import type { ClientMethods, ClientOutputOf } from "./types/client.js";
|
|
3
|
-
export declare
|
|
3
|
+
export declare function tapClientLookup<TState, TMethods extends ClientMethods>(getElements: () => readonly ResourceElement<ClientOutputOf<TState, TMethods>>[], getElementsDeps: readonly unknown[]): {
|
|
4
4
|
state: TState[];
|
|
5
5
|
get: (lookup: {
|
|
6
6
|
index: number;
|
|
7
7
|
} | {
|
|
8
|
-
key:
|
|
8
|
+
key: string;
|
|
9
9
|
}) => TMethods;
|
|
10
10
|
};
|
|
11
11
|
//# sourceMappingURL=tapClientLookup.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tapClientLookup.d.ts","sourceRoot":"","sources":["../src/tapClientLookup.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"tapClientLookup.d.ts","sourceRoot":"","sources":["../src/tapClientLookup.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,eAAe,EACrB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,0BAAuB;AAkBpE,wBAAgB,eAAe,CAAC,MAAM,EAAE,QAAQ,SAAS,aAAa,EACpE,WAAW,EAAE,MAAM,SAAS,eAAe,CACzC,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,CACjC,EAAE,EACH,eAAe,EAAE,SAAS,OAAO,EAAE,GAClC;IACD,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,EAAE,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,KAAK,QAAQ,CAAC;CAChE,CA2CA"}
|
package/dist/tapClientLookup.js
CHANGED
|
@@ -1,15 +1,27 @@
|
|
|
1
|
-
import { tapMemo, tapResources } from "@assistant-ui/tap";
|
|
1
|
+
import { tapInlineResource, tapMemo, tapResources, } from "@assistant-ui/tap";
|
|
2
2
|
import { ClientResource } from "./tapClientResource.js";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
import { wrapperResource } from "./wrapperResource.js";
|
|
4
|
+
const ClientResourceWithKey = wrapperResource((el) => {
|
|
5
|
+
if (el.key === undefined) {
|
|
6
|
+
throw new Error("tapClientResource: Element has no key");
|
|
7
|
+
}
|
|
8
|
+
return tapInlineResource(ClientResource(el));
|
|
9
|
+
});
|
|
10
|
+
export function tapClientLookup(getElements, getElementsDeps) {
|
|
11
|
+
const resources = tapResources(() => getElements().map((el) => ClientResourceWithKey(el)),
|
|
12
|
+
// biome-ignore lint/correctness/useExhaustiveDependencies: getElementsDeps is passed through from caller
|
|
13
|
+
getElementsDeps);
|
|
14
|
+
const keys = tapMemo(() => Object.keys(resources), [resources]);
|
|
15
|
+
// For arrays, track element key -> index mapping
|
|
16
|
+
const keyToIndex = tapMemo(() => {
|
|
17
|
+
return resources.reduce((acc, resource, index) => {
|
|
18
|
+
acc[resource.key] = index;
|
|
19
|
+
return acc;
|
|
20
|
+
}, {});
|
|
21
|
+
}, [resources]);
|
|
6
22
|
const state = tapMemo(() => {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
result[i] = resources[keys[i]].state;
|
|
10
|
-
}
|
|
11
|
-
return result;
|
|
12
|
-
}, [keys, resources]);
|
|
23
|
+
return resources.map((r) => r.state);
|
|
24
|
+
}, [resources]);
|
|
13
25
|
return {
|
|
14
26
|
state,
|
|
15
27
|
get: (lookup) => {
|
|
@@ -17,14 +29,14 @@ export const tapClientLookup = (map, getElement, getElementDeps) => {
|
|
|
17
29
|
if (lookup.index < 0 || lookup.index >= keys.length) {
|
|
18
30
|
throw new Error(`tapClientLookup: Index ${lookup.index} out of bounds (length: ${keys.length})`);
|
|
19
31
|
}
|
|
20
|
-
return resources[
|
|
32
|
+
return resources[lookup.index].methods;
|
|
21
33
|
}
|
|
22
|
-
const
|
|
23
|
-
if (
|
|
24
|
-
throw new Error(`tapClientLookup: Key "${
|
|
34
|
+
const index = keyToIndex[lookup.key];
|
|
35
|
+
if (index === undefined) {
|
|
36
|
+
throw new Error(`tapClientLookup: Key "${lookup.key}" not found`);
|
|
25
37
|
}
|
|
26
|
-
return
|
|
38
|
+
return resources[index].methods;
|
|
27
39
|
},
|
|
28
40
|
};
|
|
29
|
-
}
|
|
41
|
+
}
|
|
30
42
|
//# sourceMappingURL=tapClientLookup.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tapClientLookup.js","sourceRoot":"","sources":["../src/tapClientLookup.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"tapClientLookup.js","sourceRoot":"","sources":["../src/tapClientLookup.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,OAAO,EACP,YAAY,GAEb,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,cAAc,EAAE,+BAA4B;AACrD,OAAO,EAAE,eAAe,EAAE,6BAA0B;AAEpD,MAAM,qBAAqB,GAAG,eAAe,CAC3C,CACE,EAAqD,EACrD,EAAE;IACF,IAAI,EAAE,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IAC3D,CAAC;IACD,OAAO,iBAAiB,CAAC,cAAc,CAAC,EAAE,CAAC,CAGf,CAAC;AAC/B,CAAC,CACF,CAAC;AAEF,MAAM,UAAU,eAAe,CAC7B,WAEG,EACH,eAAmC;IAKnC,MAAM,SAAS,GAAG,YAAY,CAC5B,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC;IAC1D,yGAAyG;IACzG,eAAe,CAChB,CAAC;IAEF,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAEhE,iDAAiD;IACjD,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE;QAC9B,OAAO,SAAS,CAAC,MAAM,CACrB,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE;YACvB,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YAC1B,OAAO,GAAG,CAAC;QACb,CAAC,EACD,EAA4B,CAC7B,CAAC;IACJ,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAEhB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,EAAE;QACzB,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAEhB,OAAO;QACL,KAAK;QACL,GAAG,EAAE,CAAC,MAA2C,EAAE,EAAE;YACnD,IAAI,OAAO,IAAI,MAAM,EAAE,CAAC;gBACtB,IAAI,MAAM,CAAC,KAAK,GAAG,CAAC,IAAI,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;oBACpD,MAAM,IAAI,KAAK,CACb,0BAA0B,MAAM,CAAC,KAAK,2BAA2B,IAAI,CAAC,MAAM,GAAG,CAChF,CAAC;gBACJ,CAAC;gBACD,OAAO,SAAS,CAAC,MAAM,CAAC,KAAK,CAAE,CAAC,OAAO,CAAC;YAC1C,CAAC;YAED,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACrC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,MAAM,IAAI,KAAK,CAAC,yBAAyB,MAAM,CAAC,GAAG,aAAa,CAAC,CAAC;YACpE,CAAC;YACD,OAAO,SAAS,CAAC,KAAK,CAAE,CAAC,OAAO,CAAC;QACnC,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -19,6 +19,10 @@ export declare const getClientState: (client: ClientMethods) => unknown;
|
|
|
19
19
|
* });
|
|
20
20
|
* ```
|
|
21
21
|
*/
|
|
22
|
-
export declare const ClientResource: <TState, TMethods extends ClientMethods>(props: ResourceElement<ClientOutputOf<TState, TMethods>>) => ResourceElement<ClientOutputOf<TState, TMethods
|
|
23
|
-
|
|
22
|
+
export declare const ClientResource: <TState, TMethods extends ClientMethods>(props: ResourceElement<ClientOutputOf<TState, TMethods>>) => ResourceElement<ClientOutputOf<TState, TMethods> & {
|
|
23
|
+
key: string | number | undefined;
|
|
24
|
+
}, ResourceElement<ClientOutputOf<TState, TMethods>>>;
|
|
25
|
+
export declare const tapClientResource: <TState, TMethods extends ClientMethods>(element: ResourceElement<ClientOutputOf<TState, TMethods>>) => ClientOutputOf<TState, TMethods> & {
|
|
26
|
+
key: string | number | undefined;
|
|
27
|
+
};
|
|
24
28
|
//# sourceMappingURL=tapClientResource.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tapClientResource.d.ts","sourceRoot":"","sources":["../src/tapClientResource.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,eAAe,
|
|
1
|
+
{"version":3,"file":"tapClientResource.d.ts","sourceRoot":"","sources":["../src/tapClientResource.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,eAAe,EAGrB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,0BAAuB;AAsBpE,eAAO,MAAM,cAAc,GAAI,QAAQ,aAAa,YASnD,CAAC;AA+DF;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,cAAc,GACxB,MAAM,EAAE,QAAQ,SAAS,aAAa;SAGhC,MAAM,GAAG,MAAM,GAAG,SAAS;qDA2BnC,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,MAAM,EAAE,QAAQ,SAAS,aAAa,EACtE,SAAS,eAAe,CAAC,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;SA9BnD,MAAM,GAAG,MAAM,GAAG,SAAS;CAiCnC,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { tapEffect, tapMemo, tapRef, tapResource,
|
|
1
|
+
import { tapEffect, tapMemo, tapRef, tapResource, tapInlineResource, } from "@assistant-ui/tap";
|
|
2
2
|
import { tapClientStack, tapWithClientStack, SYMBOL_CLIENT_INDEX, } from "./utils/tap-client-stack-context.js";
|
|
3
3
|
import { BaseProxyHandler, handleIntrospectionProp, } from "./utils/BaseProxyHandler.js";
|
|
4
|
+
import { wrapperResource } from "./wrapperResource.js";
|
|
4
5
|
/**
|
|
5
6
|
* Symbol used internally to get state from ClientProxy.
|
|
6
7
|
* This allows getState() to be optional in the user-facing client.
|
|
@@ -25,6 +26,8 @@ function getOrCreateProxyFn(prop) {
|
|
|
25
26
|
const method = this[SYMBOL_GET_OUTPUT].methods[prop];
|
|
26
27
|
if (!method)
|
|
27
28
|
throw new Error(`Method "${String(prop)}" is not implemented.`);
|
|
29
|
+
if (typeof method !== "function")
|
|
30
|
+
throw new Error(`"${String(prop)}" is not a function.`);
|
|
28
31
|
return method(...args);
|
|
29
32
|
};
|
|
30
33
|
fieldAccessFns.set(prop, template);
|
|
@@ -47,7 +50,10 @@ class ClientProxyHandler extends BaseProxyHandler {
|
|
|
47
50
|
const introspection = handleIntrospectionProp(prop, "ClientProxy");
|
|
48
51
|
if (introspection !== false)
|
|
49
52
|
return introspection;
|
|
50
|
-
|
|
53
|
+
const value = this.outputRef.current.methods[prop];
|
|
54
|
+
if (typeof value === "function")
|
|
55
|
+
return getOrCreateProxyFn(prop);
|
|
56
|
+
return value;
|
|
51
57
|
}
|
|
52
58
|
ownKeys() {
|
|
53
59
|
return Object.keys(this.outputRef.current.methods);
|
|
@@ -78,10 +84,10 @@ class ClientProxyHandler extends BaseProxyHandler {
|
|
|
78
84
|
* });
|
|
79
85
|
* ```
|
|
80
86
|
*/
|
|
81
|
-
export const ClientResource =
|
|
87
|
+
export const ClientResource = wrapperResource((element) => {
|
|
82
88
|
const valueRef = tapRef(null);
|
|
83
89
|
const index = tapClientStack().length;
|
|
84
|
-
const methods = tapMemo(() => new Proxy({}, new ClientProxyHandler(valueRef, index)), []);
|
|
90
|
+
const methods = tapMemo(() => new Proxy({}, new ClientProxyHandler(valueRef, index)), [index]);
|
|
85
91
|
const value = tapWithClientStack(methods, () => tapResource(element));
|
|
86
92
|
if (!valueRef.current) {
|
|
87
93
|
valueRef.current = value;
|
|
@@ -89,7 +95,7 @@ export const ClientResource = resource((element) => {
|
|
|
89
95
|
tapEffect(() => {
|
|
90
96
|
valueRef.current = value;
|
|
91
97
|
});
|
|
92
|
-
return { methods, state: value.state };
|
|
98
|
+
return { methods, state: value.state, key: element.key };
|
|
93
99
|
});
|
|
94
100
|
export const tapClientResource = (element) => {
|
|
95
101
|
return tapInlineResource(ClientResource(element));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tapClientResource.js","sourceRoot":"","sources":["../src/tapClientResource.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,OAAO,EACP,MAAM,EAEN,WAAW,EACX,
|
|
1
|
+
{"version":3,"file":"tapClientResource.js","sourceRoot":"","sources":["../src/tapClientResource.ts"],"names":[],"mappings":"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"}
|
package/dist/types/client.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ import type { AssistantEventName, AssistantEventCallback, AssistantEventSelector
|
|
|
4
4
|
* Base type for methods that can be called on a client.
|
|
5
5
|
*/
|
|
6
6
|
export interface ClientMethods {
|
|
7
|
-
[key: string | symbol]: (...args: any[]) => any;
|
|
7
|
+
[key: string | symbol]: ((...args: any[]) => any) | ClientMethods;
|
|
8
8
|
}
|
|
9
9
|
type ClientMetaType = {
|
|
10
10
|
source: ClientNames;
|
|
@@ -103,7 +103,9 @@ export type AssistantClientAccessor<K extends ClientNames> = (() => ClientSchema
|
|
|
103
103
|
} | {
|
|
104
104
|
source: null;
|
|
105
105
|
query: null;
|
|
106
|
-
})
|
|
106
|
+
}) & {
|
|
107
|
+
name: K;
|
|
108
|
+
};
|
|
107
109
|
/**
|
|
108
110
|
* The assistant client type with all registered clients.
|
|
109
111
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/types/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EACV,kBAAkB,EAClB,sBAAsB,EACtB,sBAAsB,EACvB,oBAAiB;AAElB;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/types/client.ts"],"names":[],"mappings":"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"}
|
package/dist/useAui.d.ts
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { AssistantClient, ClientNames, ClientElement } from "./types/client.js";
|
|
2
|
+
import { DerivedElement } from "./Derived.js";
|
|
3
|
+
/**
|
|
4
|
+
* Resource that creates an extended AssistantClient.
|
|
5
|
+
*/
|
|
6
|
+
export declare const AssistantClientResource: (props: {
|
|
7
|
+
parent: AssistantClient;
|
|
8
|
+
clients: useAui.Props;
|
|
9
|
+
}) => import("@assistant-ui/tap").ResourceElement<AssistantClient, {
|
|
10
|
+
parent: AssistantClient;
|
|
11
|
+
clients: useAui.Props;
|
|
12
|
+
}>;
|
|
13
|
+
export declare namespace useAui {
|
|
14
|
+
type Props = {
|
|
15
|
+
[K in ClientNames]?: ClientElement<K> | DerivedElement<K>;
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
export declare function useAui(): AssistantClient;
|
|
19
|
+
export declare function useAui(clients: useAui.Props): AssistantClient;
|
|
20
|
+
//# sourceMappingURL=useAui.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useAui.d.ts","sourceRoot":"","sources":["../src/useAui.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAK,EACV,eAAe,EAEf,WAAW,EACX,aAAa,EAEd,0BAAuB;AACxB,OAAO,EAAW,cAAc,EAAE,qBAAkB;AAqQpD;;GAEG;AACH,eAAO,MAAM,uBAAuB;YAKxB,eAAe;aACd,MAAM,CAAC,KAAK;;YADb,eAAe;aACd,MAAM,CAAC,KAAK;EAwDxB,CAAC;AAEF,yBAAiB,MAAM,CAAC;IACtB,KAAY,KAAK,GAAG;SACjB,CAAC,IAAI,WAAW,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC;KAC1D,CAAC;CACH;AAED,wBAAgB,MAAM,IAAI,eAAe,CAAC;AAC1C,wBAAgB,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,GAAG,eAAe,CAAC"}
|