@fragno-dev/chatno 0.0.6 → 0.0.7

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.
Files changed (36) hide show
  1. package/.turbo/turbo-build.log +32 -28
  2. package/CHANGELOG.md +9 -0
  3. package/dist/browser/client/react.d.ts +3 -3
  4. package/dist/browser/client/react.d.ts.map +1 -1
  5. package/dist/browser/client/react.js +66 -2
  6. package/dist/browser/client/react.js.map +1 -1
  7. package/dist/browser/client/solid.d.ts +14 -0
  8. package/dist/browser/client/solid.d.ts.map +1 -0
  9. package/dist/browser/client/solid.js +122 -0
  10. package/dist/browser/client/solid.js.map +1 -0
  11. package/dist/browser/client/svelte.d.ts +3 -3
  12. package/dist/browser/client/svelte.d.ts.map +1 -1
  13. package/dist/browser/client/svelte.js +117 -2
  14. package/dist/browser/client/svelte.js.map +1 -1
  15. package/dist/browser/client/vanilla.d.ts +5 -5
  16. package/dist/browser/client/vanilla.d.ts.map +1 -1
  17. package/dist/browser/client/vanilla.js +127 -2
  18. package/dist/browser/client/vanilla.js.map +1 -1
  19. package/dist/browser/client/vue.d.ts +5 -5
  20. package/dist/browser/client/vue.d.ts.map +1 -1
  21. package/dist/browser/client/vue.js +102 -2
  22. package/dist/browser/client/vue.js.map +1 -1
  23. package/dist/browser/index.d.ts +4 -4
  24. package/dist/browser/index.d.ts.map +1 -1
  25. package/dist/browser/index.js +1 -1
  26. package/dist/browser/src-DBY5sKUM.js +1525 -0
  27. package/dist/browser/src-DBY5sKUM.js.map +1 -0
  28. package/dist/node/index.d.ts.map +1 -1
  29. package/dist/tsconfig.tsbuildinfo +1 -0
  30. package/package.json +18 -5
  31. package/src/client/solid.ts +7 -0
  32. package/tsdown.config.ts +2 -0
  33. package/.turbo/turbo-types$colon$check.log +0 -1
  34. package/dist/browser/src-DITyQUrz.js +0 -119
  35. package/dist/browser/src-DITyQUrz.js.map +0 -1
  36. package/src/message-service.ts +0 -18
@@ -1,10 +1,10 @@
1
1
  $ tsdown
2
- ℹ tsdown v0.15.6 powered by rolldown v1.0.0-beta.41
2
+ ℹ tsdown v0.15.9 powered by rolldown v1.0.0-beta.44
3
3
  rollup
4
- ℹ Using tsdown config: /home/runner/work/fragno/fragno/packages/chatno/tsdown.config.ts
4
+ ℹ Using tsdown config: /home/runner/work/fragno/fragno/example-fragments/chatno/tsdown.config.ts
5
5
  ℹ entry: src/index.ts
6
6
  ℹ tsconfig: tsconfig.json
7
- ℹ entry: src/index.ts, src/client/react.ts, src/client/svelte.ts, src/client/vanilla.ts, src/client/vue.ts
7
+ ℹ entry: src/index.ts, src/client/react.ts, src/client/solid.ts, src/client/svelte.ts, src/client/vanilla.ts, src/client/vue.ts
8
8
  ℹ tsconfig: tsconfig.json
9
9
  ℹ Build start
10
10
  ℹ dist/node/index.js 2.42 kB │ gzip: 1.06 kB
@@ -13,28 +13,32 @@ rollup
13
13
  ℹ dist/node/server/chatno-api.js 3.21 kB │ gzip: 1.06 kB
14
14
  ℹ dist/node/index.d.ts.map 0.40 kB │ gzip: 0.23 kB
15
15
  ℹ dist/node/index.d.ts 2.83 kB │ gzip: 0.89 kB
16
- ℹ 6 files, total: 20.34 kB
17
- ✔ Build complete in 9160ms
18
- ℹ dist/browser/client/vanilla.js  0.32 kB │ gzip: 0.21 kB
19
- ℹ dist/browser/client/svelte.js  0.32 kB │ gzip: 0.21 kB
20
- ℹ dist/browser/client/react.js  0.31 kB │ gzip: 0.21 kB
21
- ℹ dist/browser/client/vue.js  0.31 kB │ gzip: 0.21 kB
22
- ℹ dist/browser/index.js  0.12 kB │ gzip: 0.09 kB
23
- ℹ dist/browser/src-DITyQUrz.js.map 12.00 kB │ gzip: 3.59 kB
24
- ℹ dist/browser/src-DITyQUrz.js  3.62 kB │ gzip: 1.24 kB
25
- ℹ dist/browser/client/vanilla.js.map  0.59 kB │ gzip: 0.31 kB
26
- ℹ dist/browser/client/svelte.js.map  0.59 kB │ gzip: 0.31 kB
27
- ℹ dist/browser/client/react.js.map  0.59 kB │ gzip: 0.31 kB
28
- ℹ dist/browser/client/vue.js.map  0.58 kB │ gzip: 0.31 kB
29
- ℹ dist/browser/index.d.ts.map  0.40 kB │ gzip: 0.23 kB
30
- ℹ dist/browser/client/svelte.d.ts.map  0.27 kB │ gzip: 0.19 kB
31
- ℹ dist/browser/client/vanilla.d.ts.map  0.24 kB │ gzip: 0.18 kB
32
- ℹ dist/browser/client/react.d.ts.map  0.23 kB │ gzip: 0.18 kB
33
- ℹ dist/browser/client/vue.d.ts.map  0.23 kB │ gzip: 0.18 kB
34
- ℹ dist/browser/index.d.ts  2.83 kB │ gzip: 0.89 kB
35
- ℹ dist/browser/client/vanilla.d.ts  0.62 kB │ gzip: 0.32 kB
36
- ℹ dist/browser/client/react.d.ts  0.61 kB │ gzip: 0.32 kB
37
- ℹ dist/browser/client/vue.d.ts  0.61 kB │ gzip: 0.32 kB
38
- ℹ dist/browser/client/svelte.d.ts  0.51 kB │ gzip: 0.29 kB
39
- ℹ 21 files, total: 25.89 kB
40
- ✔ Build complete in 9188ms
16
+ ℹ 6 files, total: 20.35 kB
17
+ ✔ Build complete in 19924ms
18
+ ℹ dist/browser/client/solid.js  3.44 kB │ gzip: 1.15 kB
19
+ ℹ dist/browser/client/svelte.js  3.37 kB │ gzip: 0.99 kB
20
+ ℹ dist/browser/client/vanilla.js  3.36 kB │ gzip: 1.12 kB
21
+ ℹ dist/browser/client/vue.js  2.96 kB │ gzip: 1.02 kB
22
+ ℹ dist/browser/client/react.js  2.42 kB │ gzip: 0.90 kB
23
+ ℹ dist/browser/index.js  0.13 kB │ gzip: 0.10 kB
24
+ ℹ dist/browser/src-DBY5sKUM.js.map 102.37 kB │ gzip: 27.44 kB
25
+ ℹ dist/browser/src-DBY5sKUM.js  48.62 kB │ gzip: 12.50 kB
26
+ ℹ dist/browser/client/svelte.js.map  7.30 kB │ gzip: 2.18 kB
27
+ ℹ dist/browser/client/solid.js.map  7.25 kB │ gzip: 2.41 kB
28
+ ℹ dist/browser/client/vanilla.js.map  6.83 kB │ gzip: 2.23 kB
29
+ ℹ dist/browser/client/vue.js.map  6.28 kB │ gzip: 2.12 kB
30
+ ℹ dist/browser/client/react.js.map  5.46 kB │ gzip: 1.97 kB
31
+ ℹ dist/browser/index.d.ts.map  0.40 kB │ gzip: 0.23 kB
32
+ ℹ dist/browser/client/svelte.d.ts.map  0.28 kB │ gzip: 0.19 kB
33
+ ℹ dist/browser/client/solid.d.ts.map  0.28 kB │ gzip: 0.19 kB
34
+ ℹ dist/browser/client/vanilla.d.ts.map  0.24 kB │ gzip: 0.18 kB
35
+ ℹ dist/browser/client/react.d.ts.map  0.24 kB │ gzip: 0.18 kB
36
+ ℹ dist/browser/client/vue.d.ts.map  0.24 kB │ gzip: 0.18 kB
37
+ ℹ dist/browser/index.d.ts  2.83 kB │ gzip: 0.89 kB
38
+ ℹ dist/browser/client/vanilla.d.ts  0.62 kB │ gzip: 0.32 kB
39
+ ℹ dist/browser/client/react.d.ts  0.61 kB │ gzip: 0.32 kB
40
+ ℹ dist/browser/client/vue.d.ts  0.61 kB │ gzip: 0.32 kB
41
+ ℹ dist/browser/client/svelte.d.ts  0.51 kB │ gzip: 0.29 kB
42
+ ℹ dist/browser/client/solid.d.ts  0.49 kB │ gzip: 0.29 kB
43
+ ℹ 25 files, total: 207.13 kB
44
+ ✔ Build complete in 21045ms
package/CHANGELOG.md CHANGED
@@ -1,5 +1,14 @@
1
1
  # @fragno-dev/chatno
2
2
 
3
+ ## 0.0.7
4
+
5
+ ### Patch Changes
6
+
7
+ - c1483c6: Support for SolidJS and SolidStart
8
+ - Updated dependencies [1fa71f3]
9
+ - Updated dependencies [c1483c6]
10
+ - @fragno-dev/core@0.0.7
11
+
3
12
  ## 0.0.6
4
13
 
5
14
  ### Patch Changes
@@ -1,12 +1,12 @@
1
1
  import { FragnoPublicClientConfig } from "@fragno-dev/core";
2
- import * as nanostores3 from "nanostores";
2
+ import * as nanostores1 from "nanostores";
3
3
  import * as _fragno_dev_core_react0 from "@fragno-dev/core/react";
4
4
 
5
5
  //#region src/client/react.d.ts
6
6
  declare function createChatnoClient(config?: FragnoPublicClientConfig): {
7
7
  useSendMessage: _fragno_dev_core_react0.FragnoReactStore<{
8
- readonly response: nanostores3.ReadableAtom<string>;
9
- readonly responseLoading: nanostores3.ReadableAtom<boolean | undefined>;
8
+ readonly response: nanostores1.ReadableAtom<string>;
9
+ readonly responseLoading: nanostores1.ReadableAtom<boolean | undefined>;
10
10
  readonly sendMessage: (message: string) => void;
11
11
  }>;
12
12
  };
@@ -1 +1 @@
1
- {"version":3,"file":"react.d.ts","names":[],"sources":["../../../src/client/react.ts"],"sourcesContent":[],"mappings":";;;;;iBAIgB,kBAAA,UAA2B;;uBAA6B,WAAA,CAAA;;IAAxD,SAAA,WAAkB,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,GAAA,IAAA;EAAA,CAAA,CAAA"}
1
+ {"version":3,"file":"react.d.ts","names":[],"sources":["../../../src/client/react.ts"],"sourcesContent":[],"mappings":";;;;;iBAIgB,kBAAA,UAA2B;;uBAA6B,WAAA,CAAA;;IAAxD,SAAA,WAAkB,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,GAAA,IAAA;EAAS,CAAA,CAAA;CAA6B"}
@@ -1,6 +1,70 @@
1
- import { createChatnoClients } from "../src-DITyQUrz.js";
2
- import { useFragno } from "@fragno-dev/core/react";
1
+ import { a as isReadableAtom, i as isMutatorHook, n as createChatnoClients, o as isStore, r as isGetHook } from "../src-DBY5sKUM.js";
2
+ import { listenKeys } from "nanostores";
3
+ import { useCallback, useMemo, useRef, useSyncExternalStore } from "react";
3
4
 
5
+ //#region ../../packages/fragno/dist/client/react.js
6
+ function createReactHook(hook) {
7
+ return ({ path, query } = {}) => {
8
+ const pathParamValues = path ? Object.values(path) : [];
9
+ const queryParamValues = query ? Object.values(query) : [];
10
+ const store = useMemo(() => hook.store({
11
+ path,
12
+ query
13
+ }), [hook, ...[...pathParamValues, ...queryParamValues]]);
14
+ if (typeof window === "undefined") return store.get();
15
+ return useStore(store);
16
+ };
17
+ }
18
+ function createReactMutator(hook) {
19
+ return () => {
20
+ return useStore(useMemo(() => hook.mutatorStore, [hook]));
21
+ };
22
+ }
23
+ function createReactStore(hook) {
24
+ if (isReadableAtom(hook.obj)) return () => useStore(hook.obj);
25
+ return () => {
26
+ const result = {};
27
+ for (const key in hook.obj) {
28
+ if (!Object.prototype.hasOwnProperty.call(hook.obj, key)) continue;
29
+ const value = hook.obj[key];
30
+ if (isReadableAtom(value)) result[key] = useStore(value);
31
+ else result[key] = value;
32
+ }
33
+ return result;
34
+ };
35
+ }
36
+ function useFragno(clientObj) {
37
+ const result = {};
38
+ for (const key in clientObj) {
39
+ if (!Object.prototype.hasOwnProperty.call(clientObj, key)) continue;
40
+ const hook = clientObj[key];
41
+ if (isGetHook(hook)) result[key] = createReactHook(hook);
42
+ else if (isMutatorHook(hook)) result[key] = createReactMutator(hook);
43
+ else if (isStore(hook)) result[key] = createReactStore(hook);
44
+ else result[key] = hook;
45
+ }
46
+ return result;
47
+ }
48
+ function useStore(store, options = {}) {
49
+ const snapshotRef = useRef(store.get());
50
+ const { keys, deps = [store, keys] } = options;
51
+ const subscribe = useCallback((onChange) => {
52
+ const emitChange = (value) => {
53
+ if (snapshotRef.current === value) return;
54
+ snapshotRef.current = value;
55
+ onChange();
56
+ };
57
+ emitChange(store.value);
58
+ if (keys?.length) return listenKeys(store, keys, emitChange);
59
+ return store.listen(emitChange);
60
+ }, deps);
61
+ const get = () => snapshotRef.current;
62
+ return useSyncExternalStore(subscribe, get, () => {
63
+ return get();
64
+ });
65
+ }
66
+
67
+ //#endregion
4
68
  //#region src/client/react.ts
5
69
  function createChatnoClient(config = {}) {
6
70
  return useFragno(createChatnoClients(config));
@@ -1 +1 @@
1
- {"version":3,"file":"react.js","names":["useFragno","createChatnoClients","FragnoPublicClientConfig","createChatnoClient","config"],"sources":["../../../src/client/react.ts"],"sourcesContent":["import { useFragno } from \"@fragno-dev/core/react\";\nimport { createChatnoClients } from \"..\";\nimport type { FragnoPublicClientConfig } from \"@fragno-dev/core\";\n\nexport function createChatnoClient(config: FragnoPublicClientConfig = {}) {\n return useFragno(createChatnoClients(config));\n}\n"],"mappings":";;;;AAIA,SAAgBG,mBAAmBC,SAAmC,EAAE,EAAE;AACxE,QAAOJ,UAAUC,oBAAoBG,OAAO,CAAC"}
1
+ {"version":3,"file":"react.js","names":["a","isGetHook","c","isReadableAtom","o","isMutatorHook","s","isStore","hydrateFromWindow","listenKeys","useCallback","useMemo","useRef","useSyncExternalStore","createReactHook","hook","path","query","pathParamValues","Object","values","queryParamValues","store","window","get","useStore","createReactMutator","mutatorStore","createReactStore","obj","result","key","prototype","hasOwnProperty","call","value","useFragno","clientObj","options","snapshotRef","keys","deps","subscribe","onChange","emitChange","current","length","listen","FragnoHydrator","children","useFragno","createChatnoClients","FragnoPublicClientConfig","createChatnoClient","config"],"sources":["../../../../../packages/fragno/dist/client/react.js","../../../src/client/react.ts"],"sourcesContent":["import \"../api-DuzjjCT4.js\";\nimport \"../route-Dq62lXqB.js\";\nimport { a as isGetHook, c as isReadableAtom, o as isMutatorHook, s as isStore } from \"../client-C_Oc8hpD.js\";\nimport { o as hydrateFromWindow } from \"../ssr-BAhbA_3q.js\";\nimport { listenKeys } from \"nanostores\";\nimport { useCallback, useMemo, useRef, useSyncExternalStore } from \"react\";\n\n//#region src/client/react.ts\nfunction createReactHook(hook) {\n\treturn ({ path, query } = {}) => {\n\t\tconst pathParamValues = path ? Object.values(path) : [];\n\t\tconst queryParamValues = query ? Object.values(query) : [];\n\t\tconst store = useMemo(() => hook.store({\n\t\t\tpath,\n\t\t\tquery\n\t\t}), [hook, ...[...pathParamValues, ...queryParamValues]]);\n\t\tif (typeof window === \"undefined\") return store.get();\n\t\treturn useStore(store);\n\t};\n}\nfunction createReactMutator(hook) {\n\treturn () => {\n\t\treturn useStore(useMemo(() => hook.mutatorStore, [hook]));\n\t};\n}\nfunction createReactStore(hook) {\n\tif (isReadableAtom(hook.obj)) return () => useStore(hook.obj);\n\treturn () => {\n\t\tconst result = {};\n\t\tfor (const key in hook.obj) {\n\t\t\tif (!Object.prototype.hasOwnProperty.call(hook.obj, key)) continue;\n\t\t\tconst value = hook.obj[key];\n\t\t\tif (isReadableAtom(value)) result[key] = useStore(value);\n\t\t\telse result[key] = value;\n\t\t}\n\t\treturn result;\n\t};\n}\nfunction useFragno(clientObj) {\n\tconst result = {};\n\tfor (const key in clientObj) {\n\t\tif (!Object.prototype.hasOwnProperty.call(clientObj, key)) continue;\n\t\tconst hook = clientObj[key];\n\t\tif (isGetHook(hook)) result[key] = createReactHook(hook);\n\t\telse if (isMutatorHook(hook)) result[key] = createReactMutator(hook);\n\t\telse if (isStore(hook)) result[key] = createReactStore(hook);\n\t\telse result[key] = hook;\n\t}\n\treturn result;\n}\nfunction useStore(store, options = {}) {\n\tconst snapshotRef = useRef(store.get());\n\tconst { keys, deps = [store, keys] } = options;\n\tconst subscribe = useCallback((onChange) => {\n\t\tconst emitChange = (value) => {\n\t\t\tif (snapshotRef.current === value) return;\n\t\t\tsnapshotRef.current = value;\n\t\t\tonChange();\n\t\t};\n\t\temitChange(store.value);\n\t\tif (keys?.length) return listenKeys(store, keys, emitChange);\n\t\treturn store.listen(emitChange);\n\t}, deps);\n\tconst get = () => snapshotRef.current;\n\treturn useSyncExternalStore(subscribe, get, () => {\n\t\treturn get();\n\t});\n}\nfunction FragnoHydrator({ children }) {\n\tuseMemo(() => {\n\t\thydrateFromWindow();\n\t}, []);\n\treturn children;\n}\n\n//#endregion\nexport { FragnoHydrator, useFragno, useStore };\n//# sourceMappingURL=react.js.map","import { useFragno } from \"@fragno-dev/core/react\";\nimport { createChatnoClients } from \"..\";\nimport type { FragnoPublicClientConfig } from \"@fragno-dev/core\";\n\nexport function createChatnoClient(config: FragnoPublicClientConfig = {}) {\n return useFragno(createChatnoClients(config));\n}\n"],"mappings":";;;;;AAQA,SAASc,gBAAgBC,MAAM;AAC9B,SAAQ,EAAEC,MAAMC,UAAU,EAAE,KAAK;EAChC,MAAMC,kBAAkBF,OAAOG,OAAOC,OAAOJ,KAAK,GAAG,EAAE;EACvD,MAAMK,mBAAmBJ,QAAQE,OAAOC,OAAOH,MAAM,GAAG,EAAE;EAC1D,MAAMK,QAAQX,cAAcI,KAAKO,MAAM;GACtCN;GACAC;GACA,CAAC,EAAE,CAACF,MAAM,GAAG,CAAC,GAAGG,iBAAiB,GAAGG,iBAAiB,CAAC,CAAC;AACzD,MAAI,OAAOE,WAAW,YAAa,QAAOD,MAAME,KAAK;AACrD,SAAOC,SAASH,MAAM;;;AAGxB,SAASI,mBAAmBX,MAAM;AACjC,cAAa;AACZ,SAAOU,SAASd,cAAcI,KAAKY,cAAc,CAACZ,KAAK,CAAC,CAAC;;;AAG3D,SAASa,iBAAiBb,MAAM;AAC/B,KAAIZ,eAAeY,KAAKc,IAAI,CAAE,cAAaJ,SAASV,KAAKc,IAAI;AAC7D,cAAa;EACZ,MAAMC,SAAS,EAAE;AACjB,OAAK,MAAMC,OAAOhB,KAAKc,KAAK;AAC3B,OAAI,CAACV,OAAOa,UAAUC,eAAeC,KAAKnB,KAAKc,KAAKE,IAAI,CAAE;GAC1D,MAAMI,QAAQpB,KAAKc,IAAIE;AACvB,OAAI5B,eAAegC,MAAM,CAAEL,QAAOC,OAAON,SAASU,MAAM;OACnDL,QAAOC,OAAOI;;AAEpB,SAAOL;;;AAGT,SAASM,UAAUC,WAAW;CAC7B,MAAMP,SAAS,EAAE;AACjB,MAAK,MAAMC,OAAOM,WAAW;AAC5B,MAAI,CAAClB,OAAOa,UAAUC,eAAeC,KAAKG,WAAWN,IAAI,CAAE;EAC3D,MAAMhB,OAAOsB,UAAUN;AACvB,MAAI9B,UAAUc,KAAK,CAAEe,QAAOC,OAAOjB,gBAAgBC,KAAK;WAC/CV,cAAcU,KAAK,CAAEe,QAAOC,OAAOL,mBAAmBX,KAAK;WAC3DR,QAAQQ,KAAK,CAAEe,QAAOC,OAAOH,iBAAiBb,KAAK;MACvDe,QAAOC,OAAOhB;;AAEpB,QAAOe;;AAER,SAASL,SAASH,OAAOgB,UAAU,EAAE,EAAE;CACtC,MAAMC,cAAc3B,OAAOU,MAAME,KAAK,CAAC;CACvC,MAAM,EAAEgB,MAAMC,OAAO,CAACnB,OAAOkB,KAAI,KAAMF;CACvC,MAAMI,YAAYhC,aAAaiC,aAAa;EAC3C,MAAMC,cAAcT,UAAU;AAC7B,OAAII,YAAYM,YAAYV,MAAO;AACnCI,eAAYM,UAAUV;AACtBQ,aAAU;;AAEXC,aAAWtB,MAAMa,MAAM;AACvB,MAAIK,MAAMM,OAAQ,QAAOrC,WAAWa,OAAOkB,MAAMI,WAAW;AAC5D,SAAOtB,MAAMyB,OAAOH,WAAW;IAC7BH,KAAK;CACR,MAAMjB,YAAYe,YAAYM;AAC9B,QAAOhC,qBAAqB6B,WAAWlB,WAAW;AACjD,SAAOA,KAAK;GACX;;;;;AC9DH,SAAgB6B,mBAAmBC,SAAmC,EAAE,EAAE;AACxE,QAAOJ,UAAUC,oBAAoBG,OAAO,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { FragnoPublicClientConfig } from "@fragno-dev/core";
2
+ import * as solid_js0 from "solid-js";
3
+
4
+ //#region src/client/solid.d.ts
5
+ declare function createChatnoClient(config?: FragnoPublicClientConfig): {
6
+ useSendMessage: () => {
7
+ readonly response: solid_js0.Accessor<string>;
8
+ readonly responseLoading: solid_js0.Accessor<boolean | undefined>;
9
+ readonly sendMessage: (message: string) => void;
10
+ };
11
+ };
12
+ //#endregion
13
+ export { createChatnoClient };
14
+ //# sourceMappingURL=solid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solid.d.ts","names":[],"sources":["../../../src/client/solid.ts"],"sourcesContent":[],"mappings":";;;;iBAIgB,kBAAA,UAA2B;;uBAA6B,SAAA,CAAA;IAAxD,SAAA,eAAkB,oBAAA,CAAA,OAAA,GAAA,SAAA,CAAA;IAAS,SAAA,WAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,GAAA,IAAA;EAA6B,CAAA"}
@@ -0,0 +1,122 @@
1
+ import { a as isReadableAtom, i as isMutatorHook, n as createChatnoClients, o as isStore, r as isGetHook } from "../src-DBY5sKUM.js";
2
+ import { atom } from "nanostores";
3
+ import { createStore, reconcile } from "solid-js/store";
4
+ import { createEffect, onCleanup } from "solid-js";
5
+
6
+ //#region ../../node_modules/.bun/@nanostores+solid@1.1.1+9136909fcbbc49e5/node_modules/@nanostores/solid/dist/index.js
7
+ function m(e, o = {}) {
8
+ let t = e.listen(() => {}), [r, s] = createStore({ value: e.get() }), n = e.subscribe((i) => {
9
+ s("value", reconcile(i, o));
10
+ });
11
+ return onCleanup(() => n()), t(), () => r.value;
12
+ }
13
+
14
+ //#endregion
15
+ //#region ../../packages/fragno/dist/client/solid.js
16
+ /**
17
+ * Type guard to check if a value is a SolidJS Accessor.
18
+ *
19
+ * @private
20
+ */
21
+ function isAccessor(value) {
22
+ return typeof value === "function";
23
+ }
24
+ /**
25
+ * Converts a SolidJS Accessor to a NanoStore Atom.
26
+ *
27
+ * This is used to convert SolidJS accessors to atoms, so that we can use them in the store.
28
+ *
29
+ * @private
30
+ */
31
+ function accessorToAtom(accessor) {
32
+ const a = atom(accessor());
33
+ createEffect(() => {
34
+ a.set(accessor());
35
+ });
36
+ return a;
37
+ }
38
+ function createSolidHook(hook) {
39
+ return ({ path, query } = {}) => {
40
+ const pathParams = {};
41
+ const queryParams = {};
42
+ for (const [key, value] of Object.entries(path ?? {})) {
43
+ const v = value;
44
+ pathParams[key] = isAccessor(v) ? accessorToAtom(v) : v;
45
+ }
46
+ for (const [key, value] of Object.entries(query ?? {})) {
47
+ const v = value;
48
+ queryParams[key] = isAccessor(v) ? accessorToAtom(v) : v;
49
+ }
50
+ const storeValue = m(hook.store({
51
+ path: pathParams,
52
+ query: queryParams
53
+ }));
54
+ return {
55
+ data: () => storeValue().data,
56
+ loading: () => storeValue().loading,
57
+ error: () => storeValue().error
58
+ };
59
+ };
60
+ }
61
+ function createSolidMutator(hook) {
62
+ return () => {
63
+ const store = m(hook.mutatorStore);
64
+ const mutate = async (args) => {
65
+ const { body, path, query } = args;
66
+ const pathParams = {};
67
+ const queryParams = {};
68
+ for (const [key, value] of Object.entries(path ?? {})) {
69
+ const v = value;
70
+ pathParams[key] = isAccessor(v) ? v() : v;
71
+ }
72
+ for (const [key, value] of Object.entries(query ?? {})) {
73
+ const v = value;
74
+ queryParams[key] = isAccessor(v) ? v() : v;
75
+ }
76
+ return hook.mutatorStore.mutate({
77
+ body,
78
+ path: pathParams,
79
+ query: queryParams
80
+ });
81
+ };
82
+ return {
83
+ mutate,
84
+ data: () => store().data,
85
+ loading: () => store().loading,
86
+ error: () => store().error
87
+ };
88
+ };
89
+ }
90
+ function createSolidStore(hook) {
91
+ if (isReadableAtom(hook.obj)) return m(hook.obj);
92
+ const result = {};
93
+ for (const key in hook.obj) {
94
+ if (!Object.prototype.hasOwnProperty.call(hook.obj, key)) continue;
95
+ const value = hook.obj[key];
96
+ if (isReadableAtom(value)) result[key] = m(value);
97
+ else result[key] = value;
98
+ }
99
+ return () => result;
100
+ }
101
+ function useFragno(clientObj) {
102
+ const result = {};
103
+ for (const key in clientObj) {
104
+ if (!Object.prototype.hasOwnProperty.call(clientObj, key)) continue;
105
+ const hook = clientObj[key];
106
+ if (isGetHook(hook)) result[key] = createSolidHook(hook);
107
+ else if (isMutatorHook(hook)) result[key] = createSolidMutator(hook);
108
+ else if (isStore(hook)) result[key] = createSolidStore(hook);
109
+ else result[key] = hook;
110
+ }
111
+ return result;
112
+ }
113
+
114
+ //#endregion
115
+ //#region src/client/solid.ts
116
+ function createChatnoClient(config = {}) {
117
+ return useFragno(createChatnoClients(config));
118
+ }
119
+
120
+ //#endregion
121
+ export { createChatnoClient };
122
+ //# sourceMappingURL=solid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solid.js","names":["createStore","c","reconcile","u","onCleanup","S","m","e","o","t","listen","r","s","value","get","n","subscribe","i","useStore","a","isGetHook","c","isReadableAtom","o","isMutatorHook","s","isStore","atom","useStore","createEffect","isAccessor","value","accessorToAtom","accessor","set","createSolidHook","hook","path","query","pathParams","queryParams","key","Object","entries","v","storeValue","store","data","loading","error","createSolidMutator","mutatorStore","mutate","args","body","createSolidStore","obj","result","prototype","hasOwnProperty","call","useFragno","clientObj","useFragno","createChatnoClients","FragnoPublicClientConfig","createChatnoClient","config"],"sources":["../../../../../node_modules/.bun/@nanostores+solid@1.1.1+9136909fcbbc49e5/node_modules/@nanostores/solid/dist/index.js","../../../../../packages/fragno/dist/client/solid.js","../../../src/client/solid.ts"],"sourcesContent":["import{createStore as c,reconcile as u}from\"solid-js/store\";import{onCleanup as S}from\"solid-js\";function m(e,o={}){let t=e.listen(()=>{}),[r,s]=c({value:e.get()}),n=e.subscribe(i=>{s(\"value\",u(i,o))});return S(()=>n()),t(),()=>r.value}export{m as useStore};\n","import \"../api-DuzjjCT4.js\";\nimport \"../route-Dq62lXqB.js\";\nimport { a as isGetHook, c as isReadableAtom, o as isMutatorHook, s as isStore } from \"../client-C_Oc8hpD.js\";\nimport \"../ssr-BAhbA_3q.js\";\nimport { atom } from \"nanostores\";\nimport { useStore } from \"@nanostores/solid\";\nimport { createEffect } from \"solid-js\";\n\n//#region src/client/solid.ts\n/**\n* Type guard to check if a value is a SolidJS Accessor.\n*\n* @private\n*/\nfunction isAccessor(value) {\n\treturn typeof value === \"function\";\n}\n/**\n* Converts a SolidJS Accessor to a NanoStore Atom.\n*\n* This is used to convert SolidJS accessors to atoms, so that we can use them in the store.\n*\n* @private\n*/\nfunction accessorToAtom(accessor) {\n\tconst a = atom(accessor());\n\tcreateEffect(() => {\n\t\ta.set(accessor());\n\t});\n\treturn a;\n}\nfunction createSolidHook(hook) {\n\treturn ({ path, query } = {}) => {\n\t\tconst pathParams = {};\n\t\tconst queryParams = {};\n\t\tfor (const [key, value] of Object.entries(path ?? {})) {\n\t\t\tconst v = value;\n\t\t\tpathParams[key] = isAccessor(v) ? accessorToAtom(v) : v;\n\t\t}\n\t\tfor (const [key, value] of Object.entries(query ?? {})) {\n\t\t\tconst v = value;\n\t\t\tqueryParams[key] = isAccessor(v) ? accessorToAtom(v) : v;\n\t\t}\n\t\tconst storeValue = useStore(hook.store({\n\t\t\tpath: pathParams,\n\t\t\tquery: queryParams\n\t\t}));\n\t\treturn {\n\t\t\tdata: () => storeValue().data,\n\t\t\tloading: () => storeValue().loading,\n\t\t\terror: () => storeValue().error\n\t\t};\n\t};\n}\nfunction createSolidMutator(hook) {\n\treturn () => {\n\t\tconst store = useStore(hook.mutatorStore);\n\t\tconst mutate = async (args) => {\n\t\t\tconst { body, path, query } = args;\n\t\t\tconst pathParams = {};\n\t\t\tconst queryParams = {};\n\t\t\tfor (const [key, value] of Object.entries(path ?? {})) {\n\t\t\t\tconst v = value;\n\t\t\t\tpathParams[key] = isAccessor(v) ? v() : v;\n\t\t\t}\n\t\t\tfor (const [key, value] of Object.entries(query ?? {})) {\n\t\t\t\tconst v = value;\n\t\t\t\tqueryParams[key] = isAccessor(v) ? v() : v;\n\t\t\t}\n\t\t\treturn hook.mutatorStore.mutate({\n\t\t\t\tbody,\n\t\t\t\tpath: pathParams,\n\t\t\t\tquery: queryParams\n\t\t\t});\n\t\t};\n\t\treturn {\n\t\t\tmutate,\n\t\t\tdata: () => store().data,\n\t\t\tloading: () => store().loading,\n\t\t\terror: () => store().error\n\t\t};\n\t};\n}\nfunction createSolidStore(hook) {\n\tif (isReadableAtom(hook.obj)) return useStore(hook.obj);\n\tconst result = {};\n\tfor (const key in hook.obj) {\n\t\tif (!Object.prototype.hasOwnProperty.call(hook.obj, key)) continue;\n\t\tconst value = hook.obj[key];\n\t\tif (isReadableAtom(value)) result[key] = useStore(value);\n\t\telse result[key] = value;\n\t}\n\treturn () => result;\n}\nfunction useFragno(clientObj) {\n\tconst result = {};\n\tfor (const key in clientObj) {\n\t\tif (!Object.prototype.hasOwnProperty.call(clientObj, key)) continue;\n\t\tconst hook = clientObj[key];\n\t\tif (isGetHook(hook)) result[key] = createSolidHook(hook);\n\t\telse if (isMutatorHook(hook)) result[key] = createSolidMutator(hook);\n\t\telse if (isStore(hook)) result[key] = createSolidStore(hook);\n\t\telse result[key] = hook;\n\t}\n\treturn result;\n}\n\n//#endregion\nexport { accessorToAtom, isAccessor, useFragno };\n//# sourceMappingURL=solid.js.map","import { useFragno } from \"@fragno-dev/core/solid\";\nimport { createChatnoClients } from \"..\";\nimport type { FragnoPublicClientConfig } from \"@fragno-dev/core\";\n\nexport function createChatnoClient(config: FragnoPublicClientConfig = {}) {\n return useFragno(createChatnoClients(config));\n}\n"],"x_google_ignoreList":[0],"mappings":"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"}
@@ -1,11 +1,11 @@
1
1
  import { FragnoPublicClientConfig } from "@fragno-dev/core";
2
- import * as nanostores5 from "nanostores";
2
+ import * as nanostores3 from "nanostores";
3
3
 
4
4
  //#region src/client/svelte.d.ts
5
5
  declare function createChatnoClient(config?: FragnoPublicClientConfig): {
6
6
  useSendMessage: {
7
- readonly response: nanostores5.ReadableAtom<string>;
8
- readonly responseLoading: nanostores5.ReadableAtom<boolean | undefined>;
7
+ readonly response: nanostores3.ReadableAtom<string>;
8
+ readonly responseLoading: nanostores3.ReadableAtom<boolean | undefined>;
9
9
  readonly sendMessage: (message: string) => void;
10
10
  };
11
11
  };
@@ -1 +1 @@
1
- {"version":3,"file":"svelte.d.ts","names":[],"sources":["../../../src/client/svelte.ts"],"sourcesContent":[],"mappings":";;;;iBAIgB,kBAAA,UAA2B;;uBAA6B,WAAA,CAAA;IAAxD,SAAA,eAAkB,0BAAA,CAAA,OAAA,GAAA,SAAA,CAAA;IAAA,SAAA,WAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,GAAA,IAAA"}
1
+ {"version":3,"file":"svelte.d.ts","names":[],"sources":["../../../src/client/svelte.ts"],"sourcesContent":[],"mappings":";;;;iBAIgB,kBAAA,UAA2B;;uBAA6B,WAAA,CAAA;IAAxD,SAAA,eAAkB,0BAAA,CAAA,OAAA,GAAA,SAAA,CAAA;IAAS,SAAA,WAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,GAAA,IAAA;EAA6B,CAAA"}
@@ -1,6 +1,121 @@
1
- import { createChatnoClients } from "../src-DITyQUrz.js";
2
- import { useFragno } from "@fragno-dev/core/svelte";
1
+ import { i as isMutatorHook, n as createChatnoClients, o as isStore, r as isGetHook } from "../src-DBY5sKUM.js";
2
+ import { atom } from "nanostores";
3
+ import { get, writable } from "svelte/store";
4
+ import { onDestroy } from "svelte";
3
5
 
6
+ //#region ../../packages/fragno/dist/client/client.svelte.js
7
+ function isReadable(value) {
8
+ return typeof value === "object" && value !== null && "subscribe" in value;
9
+ }
10
+ function isCallable(value) {
11
+ return typeof value === "function";
12
+ }
13
+ function readableToAtom(value) {
14
+ const a = atom(get(value));
15
+ value.subscribe((newVal) => {
16
+ a.set(newVal);
17
+ });
18
+ return a;
19
+ }
20
+ function runeToAtom(value) {
21
+ const a = atom(value());
22
+ $effect(() => {
23
+ a.set(value());
24
+ });
25
+ return a;
26
+ }
27
+ function createSvelteHook(hook) {
28
+ return ({ path, query } = {}) => {
29
+ const pathParams = {};
30
+ const queryParams = {};
31
+ for (const [key, value] of Object.entries(path ?? {})) {
32
+ const v = value;
33
+ if (isCallable(v)) pathParams[key] = runeToAtom(v);
34
+ else pathParams[key] = isReadable(v) ? readableToAtom(v) : v;
35
+ }
36
+ for (const [key, value] of Object.entries(query ?? {})) {
37
+ const v = value;
38
+ if (isCallable(v)) queryParams[key] = runeToAtom(v);
39
+ else queryParams[key] = isReadable(v) ? readableToAtom(v) : v;
40
+ }
41
+ const store = hook.store({
42
+ path: pathParams,
43
+ query: queryParams
44
+ });
45
+ const data = writable(void 0);
46
+ const loading = writable(false);
47
+ const error = writable(void 0);
48
+ const unsubscribe = store.subscribe((updatedStoreValue) => {
49
+ data.set(updatedStoreValue.data);
50
+ loading.set(updatedStoreValue.loading);
51
+ error.set(updatedStoreValue.error);
52
+ });
53
+ onDestroy(() => {
54
+ unsubscribe();
55
+ });
56
+ return {
57
+ data,
58
+ loading,
59
+ error
60
+ };
61
+ };
62
+ }
63
+ function createSvelteMutator(hook) {
64
+ return () => {
65
+ const data = writable(void 0);
66
+ const loading = writable(void 0);
67
+ const error = writable(void 0);
68
+ const unsubscribe = hook.mutatorStore.subscribe((storeValue) => {
69
+ data.set(storeValue.data);
70
+ loading.set(storeValue.loading);
71
+ error.set(storeValue.error);
72
+ });
73
+ onDestroy(() => {
74
+ unsubscribe();
75
+ });
76
+ const mutate = async (args) => {
77
+ const { body, path, query } = args;
78
+ const pathParams = {};
79
+ const queryParams = {};
80
+ for (const [key, value] of Object.entries(path ?? {})) {
81
+ const v = value;
82
+ pathParams[key] = isReadable(v) ? readableToAtom(v) : v;
83
+ }
84
+ for (const [key, value] of Object.entries(query ?? {})) {
85
+ const v = value;
86
+ queryParams[key] = isReadable(v) ? readableToAtom(v) : v;
87
+ }
88
+ return hook.mutatorStore.mutate({
89
+ body,
90
+ path: pathParams,
91
+ query: queryParams
92
+ });
93
+ };
94
+ return {
95
+ mutate,
96
+ loading,
97
+ error,
98
+ data
99
+ };
100
+ };
101
+ }
102
+ function createSvelteStore(hook) {
103
+ return hook.obj;
104
+ }
105
+ function useFragno(clientObj) {
106
+ const result = {};
107
+ for (const key in clientObj) {
108
+ if (!Object.prototype.hasOwnProperty.call(clientObj, key)) continue;
109
+ const hook = clientObj[key];
110
+ if (isGetHook(hook)) result[key] = createSvelteHook(hook);
111
+ else if (isMutatorHook(hook)) result[key] = createSvelteMutator(hook);
112
+ else if (isStore(hook)) result[key] = createSvelteStore(hook);
113
+ else result[key] = hook;
114
+ }
115
+ return result;
116
+ }
117
+
118
+ //#endregion
4
119
  //#region src/client/svelte.ts
5
120
  function createChatnoClient(config = {}) {
6
121
  return useFragno(createChatnoClients(config));
@@ -1 +1 @@
1
- {"version":3,"file":"svelte.js","names":["useFragno","createChatnoClients","FragnoPublicClientConfig","createChatnoClient","config"],"sources":["../../../src/client/svelte.ts"],"sourcesContent":["import { useFragno } from \"@fragno-dev/core/svelte\";\nimport { createChatnoClients } from \"..\";\nimport type { FragnoPublicClientConfig } from \"@fragno-dev/core\";\n\nexport function createChatnoClient(config: FragnoPublicClientConfig = {}) {\n return useFragno(createChatnoClients(config));\n}\n"],"mappings":";;;;AAIA,SAAgBG,mBAAmBC,SAAmC,EAAE,EAAE;AACxE,QAAOJ,UAAUC,oBAAoBG,OAAO,CAAC"}
1
+ {"version":3,"file":"svelte.js","names":["a","isGetHook","o","isMutatorHook","s","isStore","atom","get","writable","onDestroy","isReadable","value","isCallable","readableToAtom","subscribe","newVal","set","runeToAtom","$effect","createSvelteHook","hook","path","query","pathParams","queryParams","key","Object","entries","v","store","data","loading","error","unsubscribe","updatedStoreValue","createSvelteMutator","mutatorStore","storeValue","mutate","args","body","createSvelteStore","obj","useFragno","clientObj","result","prototype","hasOwnProperty","call","useFragno","createChatnoClients","FragnoPublicClientConfig","createChatnoClient","config"],"sources":["../../../../../packages/fragno/dist/client/client.svelte.js","../../../src/client/svelte.ts"],"sourcesContent":["import \"../api-DuzjjCT4.js\";\nimport \"../route-Dq62lXqB.js\";\nimport { a as isGetHook, o as isMutatorHook, s as isStore } from \"../client-C_Oc8hpD.js\";\nimport \"../ssr-BAhbA_3q.js\";\nimport { atom } from \"nanostores\";\nimport { get, writable } from \"svelte/store\";\nimport { onDestroy } from \"svelte\";\n\n//#region src/client/client.svelte.ts\nfunction isReadable(value) {\n\treturn typeof value === \"object\" && value !== null && \"subscribe\" in value;\n}\nfunction isCallable(value) {\n\treturn typeof value === \"function\";\n}\nfunction readableToAtom(value) {\n\tconst a = atom(get(value));\n\tvalue.subscribe((newVal) => {\n\t\ta.set(newVal);\n\t});\n\treturn a;\n}\nfunction runeToAtom(value) {\n\tconst a = atom(value());\n\t$effect(() => {\n\t\ta.set(value());\n\t});\n\treturn a;\n}\nfunction createSvelteHook(hook) {\n\treturn ({ path, query } = {}) => {\n\t\tconst pathParams = {};\n\t\tconst queryParams = {};\n\t\tfor (const [key, value] of Object.entries(path ?? {})) {\n\t\t\tconst v = value;\n\t\t\tif (isCallable(v)) pathParams[key] = runeToAtom(v);\n\t\t\telse pathParams[key] = isReadable(v) ? readableToAtom(v) : v;\n\t\t}\n\t\tfor (const [key, value] of Object.entries(query ?? {})) {\n\t\t\tconst v = value;\n\t\t\tif (isCallable(v)) queryParams[key] = runeToAtom(v);\n\t\t\telse queryParams[key] = isReadable(v) ? readableToAtom(v) : v;\n\t\t}\n\t\tconst store = hook.store({\n\t\t\tpath: pathParams,\n\t\t\tquery: queryParams\n\t\t});\n\t\tconst data = writable(void 0);\n\t\tconst loading = writable(false);\n\t\tconst error = writable(void 0);\n\t\tconst unsubscribe = store.subscribe((updatedStoreValue) => {\n\t\t\tdata.set(updatedStoreValue.data);\n\t\t\tloading.set(updatedStoreValue.loading);\n\t\t\terror.set(updatedStoreValue.error);\n\t\t});\n\t\tonDestroy(() => {\n\t\t\tunsubscribe();\n\t\t});\n\t\treturn {\n\t\t\tdata,\n\t\t\tloading,\n\t\t\terror\n\t\t};\n\t};\n}\nfunction createSvelteMutator(hook) {\n\treturn () => {\n\t\tconst data = writable(void 0);\n\t\tconst loading = writable(void 0);\n\t\tconst error = writable(void 0);\n\t\tconst unsubscribe = hook.mutatorStore.subscribe((storeValue) => {\n\t\t\tdata.set(storeValue.data);\n\t\t\tloading.set(storeValue.loading);\n\t\t\terror.set(storeValue.error);\n\t\t});\n\t\tonDestroy(() => {\n\t\t\tunsubscribe();\n\t\t});\n\t\tconst mutate = async (args) => {\n\t\t\tconst { body, path, query } = args;\n\t\t\tconst pathParams = {};\n\t\t\tconst queryParams = {};\n\t\t\tfor (const [key, value] of Object.entries(path ?? {})) {\n\t\t\t\tconst v = value;\n\t\t\t\tpathParams[key] = isReadable(v) ? readableToAtom(v) : v;\n\t\t\t}\n\t\t\tfor (const [key, value] of Object.entries(query ?? {})) {\n\t\t\t\tconst v = value;\n\t\t\t\tqueryParams[key] = isReadable(v) ? readableToAtom(v) : v;\n\t\t\t}\n\t\t\treturn hook.mutatorStore.mutate({\n\t\t\t\tbody,\n\t\t\t\tpath: pathParams,\n\t\t\t\tquery: queryParams\n\t\t\t});\n\t\t};\n\t\treturn {\n\t\t\tmutate,\n\t\t\tloading,\n\t\t\terror,\n\t\t\tdata\n\t\t};\n\t};\n}\nfunction createSvelteStore(hook) {\n\treturn hook.obj;\n}\nfunction useFragno(clientObj) {\n\tconst result = {};\n\tfor (const key in clientObj) {\n\t\tif (!Object.prototype.hasOwnProperty.call(clientObj, key)) continue;\n\t\tconst hook = clientObj[key];\n\t\tif (isGetHook(hook)) result[key] = createSvelteHook(hook);\n\t\telse if (isMutatorHook(hook)) result[key] = createSvelteMutator(hook);\n\t\telse if (isStore(hook)) result[key] = createSvelteStore(hook);\n\t\telse result[key] = hook;\n\t}\n\treturn result;\n}\n\n//#endregion\nexport { createSvelteStore, readableToAtom, runeToAtom, useFragno };\n//# sourceMappingURL=client.svelte.js.map","import { useFragno } from \"@fragno-dev/core/svelte\";\nimport { createChatnoClients } from \"..\";\nimport type { FragnoPublicClientConfig } from \"@fragno-dev/core\";\n\nexport function createChatnoClient(config: FragnoPublicClientConfig = {}) {\n return useFragno(createChatnoClients(config));\n}\n"],"mappings":";;;;;;AASA,SAASU,WAAWC,OAAO;AAC1B,QAAO,OAAOA,UAAU,YAAYA,UAAU,QAAQ,eAAeA;;AAEtE,SAASC,WAAWD,OAAO;AAC1B,QAAO,OAAOA,UAAU;;AAEzB,SAASE,eAAeF,OAAO;CAC9B,MAAMX,IAAIM,KAAKC,IAAII,MAAM,CAAC;AAC1BA,OAAMG,WAAWC,WAAW;AAC3Bf,IAAEgB,IAAID,OAAO;GACZ;AACF,QAAOf;;AAER,SAASiB,WAAWN,OAAO;CAC1B,MAAMX,IAAIM,KAAKK,OAAO,CAAC;AACvBO,eAAc;AACblB,IAAEgB,IAAIL,OAAO,CAAC;GACb;AACF,QAAOX;;AAER,SAASmB,iBAAiBC,MAAM;AAC/B,SAAQ,EAAEC,MAAMC,UAAU,EAAE,KAAK;EAChC,MAAMC,aAAa,EAAE;EACrB,MAAMC,cAAc,EAAE;AACtB,OAAK,MAAM,CAACC,KAAKd,UAAUe,OAAOC,QAAQN,QAAQ,EAAE,CAAC,EAAE;GACtD,MAAMO,IAAIjB;AACV,OAAIC,WAAWgB,EAAE,CAAEL,YAAWE,OAAOR,WAAWW,EAAE;OAC7CL,YAAWE,OAAOf,WAAWkB,EAAE,GAAGf,eAAee,EAAE,GAAGA;;AAE5D,OAAK,MAAM,CAACH,KAAKd,UAAUe,OAAOC,QAAQL,SAAS,EAAE,CAAC,EAAE;GACvD,MAAMM,IAAIjB;AACV,OAAIC,WAAWgB,EAAE,CAAEJ,aAAYC,OAAOR,WAAWW,EAAE;OAC9CJ,aAAYC,OAAOf,WAAWkB,EAAE,GAAGf,eAAee,EAAE,GAAGA;;EAE7D,MAAMC,QAAQT,KAAKS,MAAM;GACxBR,MAAME;GACND,OAAOE;GACP,CAAC;EACF,MAAMM,OAAOtB,SAAS,KAAK,EAAE;EAC7B,MAAMuB,UAAUvB,SAAS,MAAM;EAC/B,MAAMwB,QAAQxB,SAAS,KAAK,EAAE;EAC9B,MAAMyB,cAAcJ,MAAMf,WAAWoB,sBAAsB;AAC1DJ,QAAKd,IAAIkB,kBAAkBJ,KAAK;AAChCC,WAAQf,IAAIkB,kBAAkBH,QAAQ;AACtCC,SAAMhB,IAAIkB,kBAAkBF,MAAM;IACjC;AACFvB,kBAAgB;AACfwB,gBAAa;IACZ;AACF,SAAO;GACNH;GACAC;GACAC;GACA;;;AAGH,SAASG,oBAAoBf,MAAM;AAClC,cAAa;EACZ,MAAMU,OAAOtB,SAAS,KAAK,EAAE;EAC7B,MAAMuB,UAAUvB,SAAS,KAAK,EAAE;EAChC,MAAMwB,QAAQxB,SAAS,KAAK,EAAE;EAC9B,MAAMyB,cAAcb,KAAKgB,aAAatB,WAAWuB,eAAe;AAC/DP,QAAKd,IAAIqB,WAAWP,KAAK;AACzBC,WAAQf,IAAIqB,WAAWN,QAAQ;AAC/BC,SAAMhB,IAAIqB,WAAWL,MAAM;IAC1B;AACFvB,kBAAgB;AACfwB,gBAAa;IACZ;EACF,MAAMK,SAAS,OAAOC,SAAS;GAC9B,MAAM,EAAEC,MAAMnB,MAAMC,UAAUiB;GAC9B,MAAMhB,aAAa,EAAE;GACrB,MAAMC,cAAc,EAAE;AACtB,QAAK,MAAM,CAACC,KAAKd,UAAUe,OAAOC,QAAQN,QAAQ,EAAE,CAAC,EAAE;IACtD,MAAMO,IAAIjB;AACVY,eAAWE,OAAOf,WAAWkB,EAAE,GAAGf,eAAee,EAAE,GAAGA;;AAEvD,QAAK,MAAM,CAACH,KAAKd,UAAUe,OAAOC,QAAQL,SAAS,EAAE,CAAC,EAAE;IACvD,MAAMM,IAAIjB;AACVa,gBAAYC,OAAOf,WAAWkB,EAAE,GAAGf,eAAee,EAAE,GAAGA;;AAExD,UAAOR,KAAKgB,aAAaE,OAAO;IAC/BE;IACAnB,MAAME;IACND,OAAOE;IACP,CAAC;;AAEH,SAAO;GACNc;GACAP;GACAC;GACAF;GACA;;;AAGH,SAASW,kBAAkBrB,MAAM;AAChC,QAAOA,KAAKsB;;AAEb,SAASC,UAAUC,WAAW;CAC7B,MAAMC,SAAS,EAAE;AACjB,MAAK,MAAMpB,OAAOmB,WAAW;AAC5B,MAAI,CAAClB,OAAOoB,UAAUC,eAAeC,KAAKJ,WAAWnB,IAAI,CAAE;EAC3D,MAAML,OAAOwB,UAAUnB;AACvB,MAAIxB,UAAUmB,KAAK,CAAEyB,QAAOpB,OAAON,iBAAiBC,KAAK;WAChDjB,cAAciB,KAAK,CAAEyB,QAAOpB,OAAOU,oBAAoBf,KAAK;WAC5Df,QAAQe,KAAK,CAAEyB,QAAOpB,OAAOgB,kBAAkBrB,KAAK;MACxDyB,QAAOpB,OAAOL;;AAEpB,QAAOyB;;;;;ACjHR,SAAgBO,mBAAmBC,SAAmC,EAAE,EAAE;AACxE,QAAOJ,UAAUC,oBAAoBG,OAAO,CAAC"}
@@ -1,12 +1,12 @@
1
1
  import { FragnoPublicClientConfig } from "@fragno-dev/core";
2
- import * as _fragno_dev_core_client1 from "@fragno-dev/core/client";
3
- import * as nanostores7 from "nanostores";
2
+ import * as nanostores5 from "nanostores";
3
+ import * as _fragno_dev_core_client0 from "@fragno-dev/core/client";
4
4
 
5
5
  //#region src/client/vanilla.d.ts
6
6
  declare function createChatnoClient(config?: FragnoPublicClientConfig): {
7
- useSendMessage: _fragno_dev_core_client1.FragnoStoreData<{
8
- readonly response: nanostores7.ReadableAtom<string>;
9
- readonly responseLoading: nanostores7.ReadableAtom<boolean | undefined>;
7
+ useSendMessage: _fragno_dev_core_client0.FragnoStoreData<{
8
+ readonly response: nanostores5.ReadableAtom<string>;
9
+ readonly responseLoading: nanostores5.ReadableAtom<boolean | undefined>;
10
10
  readonly sendMessage: (message: string) => void;
11
11
  }>;
12
12
  };
@@ -1 +1 @@
1
- {"version":3,"file":"vanilla.d.ts","names":[],"sources":["../../../src/client/vanilla.ts"],"sourcesContent":[],"mappings":";;;;;iBAIgB,kBAAA,UAA2B;;uBAA6B,WAAA,CAAA;;IAAxD,SAAA,WAAkB,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,GAAA,IAAA;EAAA,CAAA,CAAA"}
1
+ {"version":3,"file":"vanilla.d.ts","names":[],"sources":["../../../src/client/vanilla.ts"],"sourcesContent":[],"mappings":";;;;;iBAIgB,kBAAA,UAA2B;;uBAA6B,WAAA,CAAA;;IAAxD,SAAA,WAAkB,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,GAAA,IAAA;EAAS,CAAA,CAAA;CAA6B"}