@buoy-gg/jotai 3.0.2 → 4.0.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/lib/commonjs/jotai/sync/jotaiSyncAdapter.js +46 -0
- package/lib/commonjs/jotai/utils/jotaiStateStore.js +18 -2
- package/lib/commonjs/jotai/utils/watchAtoms.js +7 -2
- package/lib/module/jotai/sync/jotaiSyncAdapter.js +46 -1
- package/lib/module/jotai/utils/jotaiStateStore.js +18 -2
- package/lib/module/jotai/utils/watchAtoms.js +7 -2
- package/lib/typescript/jotai/sync/jotaiSyncAdapter.d.ts +19 -0
- package/lib/typescript/jotai/sync/jotaiSyncAdapter.d.ts.map +1 -1
- package/lib/typescript/jotai/types/index.d.ts +2 -0
- package/lib/typescript/jotai/types/index.d.ts.map +1 -1
- package/lib/typescript/jotai/utils/jotaiStateStore.d.ts +6 -1
- package/lib/typescript/jotai/utils/jotaiStateStore.d.ts.map +1 -1
- package/lib/typescript/jotai/utils/watchAtoms.d.ts +2 -0
- package/lib/typescript/jotai/utils/watchAtoms.d.ts.map +1 -1
- package/package.json +3 -3
|
@@ -33,6 +33,52 @@ const jotaiSyncAdapter = exports.jotaiSyncAdapter = {
|
|
|
33
33
|
actions: {
|
|
34
34
|
clearEvents: () => {
|
|
35
35
|
_jotaiStateStore.jotaiStateStore.clearAtomChanges();
|
|
36
|
+
},
|
|
37
|
+
/**
|
|
38
|
+
* Compact current-value reader for a remote driver (MCP/LLM): registered
|
|
39
|
+
* atoms with light metadata; each atom's `currentValue` stays on the device
|
|
40
|
+
* unless `includeValues` is set. `writable` tells the caller which atoms
|
|
41
|
+
* can be set via `setAtom`.
|
|
42
|
+
*/
|
|
43
|
+
listAtoms: params => {
|
|
44
|
+
const {
|
|
45
|
+
includeValues = false,
|
|
46
|
+
limit
|
|
47
|
+
} = params ?? {};
|
|
48
|
+
const all = _jotaiStateStore.jotaiStateStore.getAtoms();
|
|
49
|
+
const capped = typeof limit === "number" && limit > 0 ? all.slice(0, limit) : all;
|
|
50
|
+
const atoms = capped.map(a => {
|
|
51
|
+
let value;
|
|
52
|
+
if (includeValues) {
|
|
53
|
+
try {
|
|
54
|
+
value = a.getValue();
|
|
55
|
+
} catch {
|
|
56
|
+
value = undefined;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
return {
|
|
60
|
+
label: a.label,
|
|
61
|
+
changes: a.changeCount,
|
|
62
|
+
writable: typeof a.setValue === "function",
|
|
63
|
+
...(includeValues ? {
|
|
64
|
+
currentValue: value
|
|
65
|
+
} : {})
|
|
66
|
+
};
|
|
67
|
+
});
|
|
68
|
+
return {
|
|
69
|
+
atoms,
|
|
70
|
+
total: all.length,
|
|
71
|
+
returned: atoms.length,
|
|
72
|
+
includedValues: includeValues
|
|
73
|
+
};
|
|
74
|
+
},
|
|
75
|
+
/** Write a value to a writable atom (throws for unknown/read-only atoms). */
|
|
76
|
+
setAtom: params => {
|
|
77
|
+
const {
|
|
78
|
+
label,
|
|
79
|
+
value
|
|
80
|
+
} = params;
|
|
81
|
+
_jotaiStateStore.jotaiStateStore.setAtomValue(label, value);
|
|
36
82
|
}
|
|
37
83
|
}
|
|
38
84
|
};
|
|
@@ -303,17 +303,33 @@ class JotaiStateStore {
|
|
|
303
303
|
|
|
304
304
|
// ---- Atom Registry ----
|
|
305
305
|
|
|
306
|
-
registerAtom(label, getValue) {
|
|
306
|
+
registerAtom(label, getValue, setValue) {
|
|
307
307
|
if (this.atoms.has(label)) return;
|
|
308
308
|
const atomInfo = {
|
|
309
309
|
label,
|
|
310
310
|
changeCount: 0,
|
|
311
311
|
color: getAtomColor(label),
|
|
312
|
-
getValue
|
|
312
|
+
getValue,
|
|
313
|
+
setValue
|
|
313
314
|
};
|
|
314
315
|
this.atoms.set(label, atomInfo);
|
|
315
316
|
this.notifyAtomListeners();
|
|
316
317
|
}
|
|
318
|
+
|
|
319
|
+
/**
|
|
320
|
+
* Write a value to a registered atom (remote write from the dashboard/MCP).
|
|
321
|
+
* Throws if the atom is unknown or read-only (derived atoms have no setter).
|
|
322
|
+
*/
|
|
323
|
+
setAtomValue(label, value) {
|
|
324
|
+
const atom = this.atoms.get(label);
|
|
325
|
+
if (!atom) {
|
|
326
|
+
throw new Error(`Atom "${label}" is not registered`);
|
|
327
|
+
}
|
|
328
|
+
if (!atom.setValue) {
|
|
329
|
+
throw new Error(`Atom "${label}" is read-only (derived) — cannot set`);
|
|
330
|
+
}
|
|
331
|
+
atom.setValue(value);
|
|
332
|
+
}
|
|
317
333
|
unregisterAtom(label) {
|
|
318
334
|
this.atoms.delete(label);
|
|
319
335
|
this.notifyAtomListeners();
|
|
@@ -60,14 +60,19 @@ function watchAtoms(store, atoms, options) {
|
|
|
60
60
|
prevValue = undefined;
|
|
61
61
|
}
|
|
62
62
|
|
|
63
|
-
// Register the atom for the browser view
|
|
63
|
+
// Register the atom for the browser view. A setter is captured only when
|
|
64
|
+
// the store supports `set` (writable atoms); read-only/derived atoms throw
|
|
65
|
+
// at set time and are reported as read-only.
|
|
66
|
+
const setter = store.set ? value => {
|
|
67
|
+
store.set(atom, value);
|
|
68
|
+
} : undefined;
|
|
64
69
|
_jotaiStateStore.jotaiStateStore.registerAtom(label, () => {
|
|
65
70
|
try {
|
|
66
71
|
return store.get(atom);
|
|
67
72
|
} catch {
|
|
68
73
|
return undefined;
|
|
69
74
|
}
|
|
70
|
-
});
|
|
75
|
+
}, setter);
|
|
71
76
|
|
|
72
77
|
// Record initial value
|
|
73
78
|
if (enabled) {
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import { jotaiStateStore } from "../utils/jotaiStateStore";
|
|
4
|
-
|
|
5
4
|
/**
|
|
6
5
|
* Sync adapter for the jotai tool, consumed by @buoy-gg/external-sync's
|
|
7
6
|
* `useExternalSync` (structurally matches its ToolSyncAdapter interface so
|
|
@@ -30,6 +29,52 @@ export const jotaiSyncAdapter = {
|
|
|
30
29
|
actions: {
|
|
31
30
|
clearEvents: () => {
|
|
32
31
|
jotaiStateStore.clearAtomChanges();
|
|
32
|
+
},
|
|
33
|
+
/**
|
|
34
|
+
* Compact current-value reader for a remote driver (MCP/LLM): registered
|
|
35
|
+
* atoms with light metadata; each atom's `currentValue` stays on the device
|
|
36
|
+
* unless `includeValues` is set. `writable` tells the caller which atoms
|
|
37
|
+
* can be set via `setAtom`.
|
|
38
|
+
*/
|
|
39
|
+
listAtoms: params => {
|
|
40
|
+
const {
|
|
41
|
+
includeValues = false,
|
|
42
|
+
limit
|
|
43
|
+
} = params ?? {};
|
|
44
|
+
const all = jotaiStateStore.getAtoms();
|
|
45
|
+
const capped = typeof limit === "number" && limit > 0 ? all.slice(0, limit) : all;
|
|
46
|
+
const atoms = capped.map(a => {
|
|
47
|
+
let value;
|
|
48
|
+
if (includeValues) {
|
|
49
|
+
try {
|
|
50
|
+
value = a.getValue();
|
|
51
|
+
} catch {
|
|
52
|
+
value = undefined;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return {
|
|
56
|
+
label: a.label,
|
|
57
|
+
changes: a.changeCount,
|
|
58
|
+
writable: typeof a.setValue === "function",
|
|
59
|
+
...(includeValues ? {
|
|
60
|
+
currentValue: value
|
|
61
|
+
} : {})
|
|
62
|
+
};
|
|
63
|
+
});
|
|
64
|
+
return {
|
|
65
|
+
atoms,
|
|
66
|
+
total: all.length,
|
|
67
|
+
returned: atoms.length,
|
|
68
|
+
includedValues: includeValues
|
|
69
|
+
};
|
|
70
|
+
},
|
|
71
|
+
/** Write a value to a writable atom (throws for unknown/read-only atoms). */
|
|
72
|
+
setAtom: params => {
|
|
73
|
+
const {
|
|
74
|
+
label,
|
|
75
|
+
value
|
|
76
|
+
} = params;
|
|
77
|
+
jotaiStateStore.setAtomValue(label, value);
|
|
33
78
|
}
|
|
34
79
|
}
|
|
35
80
|
};
|
|
@@ -299,17 +299,33 @@ class JotaiStateStore {
|
|
|
299
299
|
|
|
300
300
|
// ---- Atom Registry ----
|
|
301
301
|
|
|
302
|
-
registerAtom(label, getValue) {
|
|
302
|
+
registerAtom(label, getValue, setValue) {
|
|
303
303
|
if (this.atoms.has(label)) return;
|
|
304
304
|
const atomInfo = {
|
|
305
305
|
label,
|
|
306
306
|
changeCount: 0,
|
|
307
307
|
color: getAtomColor(label),
|
|
308
|
-
getValue
|
|
308
|
+
getValue,
|
|
309
|
+
setValue
|
|
309
310
|
};
|
|
310
311
|
this.atoms.set(label, atomInfo);
|
|
311
312
|
this.notifyAtomListeners();
|
|
312
313
|
}
|
|
314
|
+
|
|
315
|
+
/**
|
|
316
|
+
* Write a value to a registered atom (remote write from the dashboard/MCP).
|
|
317
|
+
* Throws if the atom is unknown or read-only (derived atoms have no setter).
|
|
318
|
+
*/
|
|
319
|
+
setAtomValue(label, value) {
|
|
320
|
+
const atom = this.atoms.get(label);
|
|
321
|
+
if (!atom) {
|
|
322
|
+
throw new Error(`Atom "${label}" is not registered`);
|
|
323
|
+
}
|
|
324
|
+
if (!atom.setValue) {
|
|
325
|
+
throw new Error(`Atom "${label}" is read-only (derived) — cannot set`);
|
|
326
|
+
}
|
|
327
|
+
atom.setValue(value);
|
|
328
|
+
}
|
|
313
329
|
unregisterAtom(label) {
|
|
314
330
|
this.atoms.delete(label);
|
|
315
331
|
this.notifyAtomListeners();
|
|
@@ -55,14 +55,19 @@ export function watchAtoms(store, atoms, options) {
|
|
|
55
55
|
prevValue = undefined;
|
|
56
56
|
}
|
|
57
57
|
|
|
58
|
-
// Register the atom for the browser view
|
|
58
|
+
// Register the atom for the browser view. A setter is captured only when
|
|
59
|
+
// the store supports `set` (writable atoms); read-only/derived atoms throw
|
|
60
|
+
// at set time and are reported as read-only.
|
|
61
|
+
const setter = store.set ? value => {
|
|
62
|
+
store.set(atom, value);
|
|
63
|
+
} : undefined;
|
|
59
64
|
jotaiStateStore.registerAtom(label, () => {
|
|
60
65
|
try {
|
|
61
66
|
return store.get(atom);
|
|
62
67
|
} catch {
|
|
63
68
|
return undefined;
|
|
64
69
|
}
|
|
65
|
-
});
|
|
70
|
+
}, setter);
|
|
66
71
|
|
|
67
72
|
// Record initial value
|
|
68
73
|
if (enabled) {
|
|
@@ -18,6 +18,25 @@ export declare const jotaiSyncAdapter: {
|
|
|
18
18
|
subscribe: (onChange: () => void) => () => void;
|
|
19
19
|
actions: {
|
|
20
20
|
clearEvents: () => void;
|
|
21
|
+
/**
|
|
22
|
+
* Compact current-value reader for a remote driver (MCP/LLM): registered
|
|
23
|
+
* atoms with light metadata; each atom's `currentValue` stays on the device
|
|
24
|
+
* unless `includeValues` is set. `writable` tells the caller which atoms
|
|
25
|
+
* can be set via `setAtom`.
|
|
26
|
+
*/
|
|
27
|
+
listAtoms: (params: unknown) => {
|
|
28
|
+
atoms: {
|
|
29
|
+
currentValue?: unknown;
|
|
30
|
+
label: string;
|
|
31
|
+
changes: number;
|
|
32
|
+
writable: boolean;
|
|
33
|
+
}[];
|
|
34
|
+
total: number;
|
|
35
|
+
returned: number;
|
|
36
|
+
includedValues: boolean;
|
|
37
|
+
};
|
|
38
|
+
/** Write a value to a writable atom (throws for unknown/read-only atoms). */
|
|
39
|
+
setAtom: (params: unknown) => void;
|
|
21
40
|
};
|
|
22
41
|
};
|
|
23
42
|
//# sourceMappingURL=jotaiSyncAdapter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jotaiSyncAdapter.d.ts","sourceRoot":"","sources":["../../../../src/jotai/sync/jotaiSyncAdapter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"jotaiSyncAdapter.d.ts","sourceRoot":"","sources":["../../../../src/jotai/sync/jotaiSyncAdapter.ts"],"names":[],"mappings":"AAcA;;;;;;;;;;GAUG;AACH,eAAO,MAAM,gBAAgB;;;;;;0BAML,MAAM,IAAI;;;QAY9B;;;;;WAKG;4BACiB,OAAO;;;;;;;;;;;QA6B3B,6EAA6E;0BAC3D,OAAO;;CAK5B,CAAC"}
|
|
@@ -30,6 +30,8 @@ export interface JotaiAtomInfo {
|
|
|
30
30
|
changeCount: number;
|
|
31
31
|
color: string;
|
|
32
32
|
getValue: () => unknown;
|
|
33
|
+
/** Writes a value to the atom (only present for writable atoms). */
|
|
34
|
+
setValue?: (value: unknown) => void;
|
|
33
35
|
}
|
|
34
36
|
/**
|
|
35
37
|
* Serializable snapshot of a tracked atom — registry metadata plus current
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/jotai/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAC1B,OAAO,GACP,SAAS,CAAC;AAEd;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,EAAE,OAAO,CAAC;IAGxB,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/jotai/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAC1B,OAAO,GACP,SAAS,CAAC;AAEd;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,EAAE,OAAO,CAAC;IAGxB,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,OAAO,CAAC;IACxB,oEAAoE;IACpE,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CACrC;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,OAAO,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,UAAU,CAAC,EAAE,CAAC,UAAU,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3C,2BAA2B,CAAC,EAAE,OAAO,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,qDAAqD;IACrD,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB"}
|
|
@@ -49,7 +49,12 @@ declare class JotaiStateStore {
|
|
|
49
49
|
* freezes the mirror.
|
|
50
50
|
*/
|
|
51
51
|
replaceFromSnapshot(changes: JotaiAtomChange[], atomSnapshots: JotaiAtomSnapshot[]): void;
|
|
52
|
-
registerAtom(label: string, getValue: () => unknown): void;
|
|
52
|
+
registerAtom(label: string, getValue: () => unknown, setValue?: (value: unknown) => void): void;
|
|
53
|
+
/**
|
|
54
|
+
* Write a value to a registered atom (remote write from the dashboard/MCP).
|
|
55
|
+
* Throws if the atom is unknown or read-only (derived atoms have no setter).
|
|
56
|
+
*/
|
|
57
|
+
setAtomValue(label: string, value: unknown): void;
|
|
53
58
|
unregisterAtom(label: string): void;
|
|
54
59
|
getAtoms(): JotaiAtomInfo[];
|
|
55
60
|
getAtom(label: string): JotaiAtomInfo | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jotaiStateStore.d.ts","sourceRoot":"","sources":["../../../../src/jotai/utils/jotaiStateStore.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,WAAW,EACX,kBAAkB,EACnB,MAAM,UAAU,CAAC;AAiJlB,cAAM,eAAe;IACnB,OAAO,CAAC,WAAW,CAAyB;IAC5C,OAAO,CAAC,KAAK,CAAyC;IACtD,OAAO,CAAC,SAAS,CAAwD;IACzE,OAAO,CAAC,aAAa,CAAoD;IACzE,OAAO,CAAC,cAAc,CAA8B;IACpD,OAAO,CAAC,UAAU,CAAO;IACzB,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,iBAAiB,CAAS;IAIlC,aAAa,CAAC,MAAM,EAAE;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,OAAO,CAAC;QACnB,SAAS,EAAE,OAAO,CAAC;QACnB,QAAQ,CAAC,EAAE,kBAAkB,CAAC;KAC/B,GAAG,IAAI;IAsCR,cAAc,IAAI,eAAe,EAAE;IAInC,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAI1D,gBAAgB,IAAI,IAAI;IAgBxB;;;OAGG;IACH,OAAO,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;IASzC;;;;OAIG;IACH,cAAc,IAAI,IAAI;IAItB,uEAAuE;IACvE,mBAAmB,IAAI,OAAO;IAI9B;;;;OAIG;IACH,gBAAgB,IAAI,iBAAiB,EAAE;IAiBvC;;;;;OAKG;IACH,mBAAmB,CACjB,OAAO,EAAE,eAAe,EAAE,EAC1B,aAAa,EAAE,iBAAiB,EAAE,GACjC,IAAI;IAuBP,YAAY,
|
|
1
|
+
{"version":3,"file":"jotaiStateStore.d.ts","sourceRoot":"","sources":["../../../../src/jotai/utils/jotaiStateStore.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,WAAW,EACX,kBAAkB,EACnB,MAAM,UAAU,CAAC;AAiJlB,cAAM,eAAe;IACnB,OAAO,CAAC,WAAW,CAAyB;IAC5C,OAAO,CAAC,KAAK,CAAyC;IACtD,OAAO,CAAC,SAAS,CAAwD;IACzE,OAAO,CAAC,aAAa,CAAoD;IACzE,OAAO,CAAC,cAAc,CAA8B;IACpD,OAAO,CAAC,UAAU,CAAO;IACzB,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,iBAAiB,CAAS;IAIlC,aAAa,CAAC,MAAM,EAAE;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,OAAO,CAAC;QACnB,SAAS,EAAE,OAAO,CAAC;QACnB,QAAQ,CAAC,EAAE,kBAAkB,CAAC;KAC/B,GAAG,IAAI;IAsCR,cAAc,IAAI,eAAe,EAAE;IAInC,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAI1D,gBAAgB,IAAI,IAAI;IAgBxB;;;OAGG;IACH,OAAO,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;IASzC;;;;OAIG;IACH,cAAc,IAAI,IAAI;IAItB,uEAAuE;IACvE,mBAAmB,IAAI,OAAO;IAI9B;;;;OAIG;IACH,gBAAgB,IAAI,iBAAiB,EAAE;IAiBvC;;;;;OAKG;IACH,mBAAmB,CACjB,OAAO,EAAE,eAAe,EAAE,EAC1B,aAAa,EAAE,iBAAiB,EAAE,GACjC,IAAI;IAuBP,YAAY,CACV,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,OAAO,EACvB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAClC,IAAI;IAeP;;;OAGG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAWjD,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKnC,QAAQ,IAAI,aAAa,EAAE;IAI3B,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAIjD,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAMnC,iBAAiB,CAAC,MAAM,EAAE,WAAW,GAAG,eAAe,EAAE;IA4BzD,QAAQ;;;;;;IAYR,mBAAmB,IAAI,MAAM,EAAE;IAM/B,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIlC,UAAU,IAAI,OAAO;IAIrB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAUhC,SAAS,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,eAAe,EAAE,KAAK,IAAI,GAAG,MAAM,IAAI;IAKrE,gBAAgB,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,IAAI,GAAG,MAAM,IAAI;IAKxE,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,mBAAmB;CAI5B;AAED,eAAO,MAAM,eAAe,iBAAwB,CAAC"}
|
|
@@ -14,6 +14,8 @@ type AnyAtom = Atom<unknown>;
|
|
|
14
14
|
interface JotaiStoreAPI {
|
|
15
15
|
get: <Value>(atom: Atom<Value>) => Value;
|
|
16
16
|
sub: (atom: AnyAtom, listener: () => void) => () => void;
|
|
17
|
+
/** Write to a writable atom. Present on real Jotai stores; used for remote set. */
|
|
18
|
+
set?: (atom: AnyAtom, ...args: unknown[]) => unknown;
|
|
17
19
|
}
|
|
18
20
|
/**
|
|
19
21
|
* Watch a set of Jotai atoms for value changes.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"watchAtoms.d.ts","sourceRoot":"","sources":["../../../../src/jotai/utils/watchAtoms.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAElC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAElD,+DAA+D;AAC/D,KAAK,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;AAE7B,mFAAmF;AACnF,UAAU,aAAa;IACrB,GAAG,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC;IACzC,GAAG,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,KAAK,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"watchAtoms.d.ts","sourceRoot":"","sources":["../../../../src/jotai/utils/watchAtoms.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAElC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAElD,+DAA+D;AAC/D,KAAK,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;AAE7B,mFAAmF;AACnF,UAAU,aAAa;IACrB,GAAG,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC;IACzC,GAAG,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,KAAK,MAAM,IAAI,CAAC;IACzD,mFAAmF;IACnF,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC;CACtD;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,UAAU,CACxB,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,OAAO,CAAC,EAAE,iBAAiB,GAC1B,MAAM,IAAI,CAwEZ;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,OAAO,CAAC,EAAE,iBAAiB,GAC1B,MAAM,IAAI,CA2BZ;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED,YAAY,EAAE,aAAa,EAAE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@buoy-gg/jotai",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.0.2",
|
|
4
4
|
"description": "Jotai atom DevTools for React Native",
|
|
5
5
|
"main": "lib/commonjs/index.js",
|
|
6
6
|
"module": "lib/module/index.js",
|
|
@@ -26,8 +26,8 @@
|
|
|
26
26
|
],
|
|
27
27
|
"sideEffects": false,
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@buoy-gg/shared-ui": "
|
|
30
|
-
"@buoy-gg/license": "
|
|
29
|
+
"@buoy-gg/shared-ui": "4.0.2",
|
|
30
|
+
"@buoy-gg/license": "4.0.2"
|
|
31
31
|
},
|
|
32
32
|
"peerDependencies": {
|
|
33
33
|
"jotai": ">=2.0.0",
|