@fragno-dev/example-fragment 0.0.8 → 0.0.9
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/.turbo/turbo-build.log +5 -5
- package/CHANGELOG.md +7 -0
- package/dist/browser/client/react.js +1 -1
- package/dist/browser/client/react.js.map +1 -1
- package/dist/browser/client/solid.js +1 -1
- package/dist/browser/client/solid.js.map +1 -1
- package/dist/browser/client/svelte.js +1 -1
- package/dist/browser/client/svelte.js.map +1 -1
- package/dist/browser/client/vanilla.js +1 -1
- package/dist/browser/client/vanilla.js.map +1 -1
- package/dist/browser/client/vue.js +1 -1
- package/dist/browser/client/vue.js.map +1 -1
- package/dist/browser/index.js +1 -1
- package/dist/browser/{src-DuhdICt1.js → src-DbFcEi-n.js} +4 -4
- package/dist/browser/src-DbFcEi-n.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +3 -3
- package/dist/browser/src-DuhdICt1.js.map +0 -1
package/.turbo/turbo-build.log
CHANGED
|
@@ -12,15 +12,15 @@ rollup
|
|
|
12
12
|
[34mℹ[39m [2mdist/node/[22mindex.d.ts.map [2m0.57 kB[22m [2m│ gzip: 0.28 kB[22m
|
|
13
13
|
[34mℹ[39m [2mdist/node/[22m[32m[1mindex.d.ts[22m[39m [2m1.82 kB[22m [2m│ gzip: 0.62 kB[22m
|
|
14
14
|
[34mℹ[39m 4 files, total: 10.94 kB
|
|
15
|
-
[32m✔[39m Build complete in [
|
|
15
|
+
[32m✔[39m Build complete in [32m15609ms[39m
|
|
16
16
|
[34mℹ[39m [2mdist/browser/[22m[1mclient/solid.js[22m [2m 3.45 kB[22m [2m│ gzip: 1.15 kB[22m
|
|
17
17
|
[34mℹ[39m [2mdist/browser/[22m[1mclient/vanilla.js[22m [2m 3.40 kB[22m [2m│ gzip: 1.12 kB[22m
|
|
18
18
|
[34mℹ[39m [2mdist/browser/[22m[1mclient/svelte.js[22m [2m 3.38 kB[22m [2m│ gzip: 0.99 kB[22m
|
|
19
19
|
[34mℹ[39m [2mdist/browser/[22m[1mclient/vue.js[22m [2m 2.95 kB[22m [2m│ gzip: 1.02 kB[22m
|
|
20
20
|
[34mℹ[39m [2mdist/browser/[22m[1mclient/react.js[22m [2m 2.74 kB[22m [2m│ gzip: 1.01 kB[22m
|
|
21
21
|
[34mℹ[39m [2mdist/browser/[22m[1mindex.js[22m [2m 0.16 kB[22m [2m│ gzip: 0.11 kB[22m
|
|
22
|
-
[34mℹ[39m [2mdist/browser/[22msrc-
|
|
23
|
-
[34mℹ[39m [2mdist/browser/[22msrc-
|
|
22
|
+
[34mℹ[39m [2mdist/browser/[22msrc-DbFcEi-n.js.map [2m112.50 kB[22m [2m│ gzip: 30.37 kB[22m
|
|
23
|
+
[34mℹ[39m [2mdist/browser/[22msrc-DbFcEi-n.js [2m 53.06 kB[22m [2m│ gzip: 13.51 kB[22m
|
|
24
24
|
[34mℹ[39m [2mdist/browser/[22mclient/svelte.js.map [2m 7.34 kB[22m [2m│ gzip: 2.19 kB[22m
|
|
25
25
|
[34mℹ[39m [2mdist/browser/[22mclient/solid.js.map [2m 7.29 kB[22m [2m│ gzip: 2.42 kB[22m
|
|
26
26
|
[34mℹ[39m [2mdist/browser/[22mclient/vanilla.js.map [2m 6.88 kB[22m [2m│ gzip: 2.24 kB[22m
|
|
@@ -38,5 +38,5 @@ rollup
|
|
|
38
38
|
[34mℹ[39m [2mdist/browser/[22m[32m[1mclient/react.d.ts[22m[39m [2m 0.94 kB[22m [2m│ gzip: 0.43 kB[22m
|
|
39
39
|
[34mℹ[39m [2mdist/browser/[22m[32m[1mclient/solid.d.ts[22m[39m [2m 0.94 kB[22m [2m│ gzip: 0.43 kB[22m
|
|
40
40
|
[34mℹ[39m [2mdist/browser/[22m[32m[1mclient/vue.d.ts[22m[39m [2m 0.92 kB[22m [2m│ gzip: 0.42 kB[22m
|
|
41
|
-
[34mℹ[39m 25 files, total: 223.
|
|
42
|
-
[32m✔[39m Build complete in [
|
|
41
|
+
[34mℹ[39m 25 files, total: 223.90 kB
|
|
42
|
+
[32m✔[39m Build complete in [32m16759ms[39m
|
package/CHANGELOG.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as isReadableAtom, i as isMutatorHook, n as createExampleFragmentClients, o as isStore, r as isGetHook } from "../src-
|
|
1
|
+
import { a as isReadableAtom, i as isMutatorHook, n as createExampleFragmentClients, o as isStore, r as isGetHook } from "../src-DbFcEi-n.js";
|
|
2
2
|
import { useCallback, useMemo, useRef, useSyncExternalStore } from "react";
|
|
3
3
|
|
|
4
4
|
//#region ../../node_modules/.bun/nanostores@1.0.1/node_modules/nanostores/listen-keys/index.js
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react.js","names":["listenKeys","$store","keys","listener","keysSet","Set","add","undefined","listen","value","oldValue","changed","has","subscribeKeys","unbind","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","createExampleFragmentClients","FragnoPublicClientConfig","createExampleFragmentClient","config"],"sources":["../../../../../node_modules/.bun/nanostores@1.0.1/node_modules/nanostores/listen-keys/index.js","../../../../../packages/fragno/dist/client/react.js","../../../src/client/react.ts"],"sourcesContent":["export function listenKeys($store, keys, listener) {\n let keysSet = new Set(keys).add(undefined)\n return $store.listen((value, oldValue, changed) => {\n if (keysSet.has(changed)) {\n listener(value, oldValue, changed)\n }\n })\n}\n\nexport function subscribeKeys($store, keys, listener) {\n let unbind = listenKeys($store, keys, listener)\n listener($store.value)\n return unbind\n}\n","import \"../api-DngJDcmO.js\";\nimport \"../route-B4RbOWjd.js\";\nimport { a as isGetHook, c as isReadableAtom, o as isMutatorHook, s as isStore } from \"../client-
|
|
1
|
+
{"version":3,"file":"react.js","names":["listenKeys","$store","keys","listener","keysSet","Set","add","undefined","listen","value","oldValue","changed","has","subscribeKeys","unbind","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","createExampleFragmentClients","FragnoPublicClientConfig","createExampleFragmentClient","config"],"sources":["../../../../../node_modules/.bun/nanostores@1.0.1/node_modules/nanostores/listen-keys/index.js","../../../../../packages/fragno/dist/client/react.js","../../../src/client/react.ts"],"sourcesContent":["export function listenKeys($store, keys, listener) {\n let keysSet = new Set(keys).add(undefined)\n return $store.listen((value, oldValue, changed) => {\n if (keysSet.has(changed)) {\n listener(value, oldValue, changed)\n }\n })\n}\n\nexport function subscribeKeys($store, keys, listener) {\n let unbind = listenKeys($store, keys, listener)\n listener($store.value)\n return unbind\n}\n","import \"../api-DngJDcmO.js\";\nimport \"../route-B4RbOWjd.js\";\nimport { a as isGetHook, c as isReadableAtom, o as isMutatorHook, s as isStore } from \"../client-D5ORmjBP.js\";\nimport { o as hydrateFromWindow } from \"../ssr-CamRrMc0.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 { createExampleFragmentClients } from \"..\";\nimport type { FragnoPublicClientConfig } from \"@fragno-dev/core\";\n\nexport function createExampleFragmentClient(config: FragnoPublicClientConfig = {}) {\n return useFragno(createExampleFragmentClients(config));\n}\n"],"x_google_ignoreList":[0],"mappings":";;;;AAAA,SAAgBA,WAAWC,QAAQC,MAAMC,UAAU;CACjD,IAAIC,UAAU,IAAIC,IAAIH,KAAK,CAACI,IAAIC,OAAU;AAC1C,QAAON,OAAOO,QAAQC,OAAOC,UAAUC,YAAY;AACjD,MAAIP,QAAQQ,IAAID,QAAQ,CACtBR,UAASM,OAAOC,UAAUC,QAAQ;GAEpC;;;;;ACEJ,SAASkB,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,4BAA4BC,SAAmC,EAAE,EAAE;AACjF,QAAOJ,UAAUC,6BAA6BG,OAAO,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as isReadableAtom, i as isMutatorHook, n as createExampleFragmentClients, o as isStore, r as isGetHook, s as atom } from "../src-
|
|
1
|
+
import { a as isReadableAtom, i as isMutatorHook, n as createExampleFragmentClients, o as isStore, r as isGetHook, s as atom } from "../src-DbFcEi-n.js";
|
|
2
2
|
import { createStore, reconcile } from "solid-js/store";
|
|
3
3
|
import { createEffect, onCleanup } from "solid-js";
|
|
4
4
|
|
|
@@ -1 +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","createExampleFragmentClients","FragnoPublicClientConfig","createExampleFragmentClient","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-DngJDcmO.js\";\nimport \"../route-B4RbOWjd.js\";\nimport { a as isGetHook, c as isReadableAtom, o as isMutatorHook, s as isStore } from \"../client-
|
|
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","createExampleFragmentClients","FragnoPublicClientConfig","createExampleFragmentClient","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-DngJDcmO.js\";\nimport \"../route-B4RbOWjd.js\";\nimport { a as isGetHook, c as isReadableAtom, o as isMutatorHook, s as isStore } from \"../client-D5ORmjBP.js\";\nimport \"../ssr-CamRrMc0.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 { createExampleFragmentClients } from \"..\";\nimport type { FragnoPublicClientConfig } from \"@fragno-dev/core\";\n\nexport function createExampleFragmentClient(config: FragnoPublicClientConfig = {}) {\n return useFragno(createExampleFragmentClients(config));\n}\n"],"x_google_ignoreList":[0],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { i as isMutatorHook, n as createExampleFragmentClients, o as isStore, r as isGetHook, s as atom } from "../src-
|
|
1
|
+
import { i as isMutatorHook, n as createExampleFragmentClients, o as isStore, r as isGetHook, s as atom } from "../src-DbFcEi-n.js";
|
|
2
2
|
import { get, writable } from "svelte/store";
|
|
3
3
|
import { onDestroy } from "svelte";
|
|
4
4
|
|
|
@@ -1 +1 @@
|
|
|
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","createExampleFragmentClients","FragnoPublicClientConfig","createExampleFragmentClient","config"],"sources":["../../../../../packages/fragno/dist/client/client.svelte.js","../../../src/client/svelte.ts"],"sourcesContent":["import \"../api-DngJDcmO.js\";\nimport \"../route-B4RbOWjd.js\";\nimport { a as isGetHook, o as isMutatorHook, s as isStore } from \"../client-
|
|
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","createExampleFragmentClients","FragnoPublicClientConfig","createExampleFragmentClient","config"],"sources":["../../../../../packages/fragno/dist/client/client.svelte.js","../../../src/client/svelte.ts"],"sourcesContent":["import \"../api-DngJDcmO.js\";\nimport \"../route-B4RbOWjd.js\";\nimport { a as isGetHook, o as isMutatorHook, s as isStore } from \"../client-D5ORmjBP.js\";\nimport \"../ssr-CamRrMc0.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 { createExampleFragmentClients } from \"..\";\nimport type { FragnoPublicClientConfig } from \"@fragno-dev/core\";\n\nexport function createExampleFragmentClient(config: FragnoPublicClientConfig = {}) {\n return useFragno(createExampleFragmentClients(config));\n}\n"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { i as isMutatorHook, n as createExampleFragmentClients, r as isGetHook } from "../src-
|
|
1
|
+
import { i as isMutatorHook, n as createExampleFragmentClients, r as isGetHook } from "../src-DbFcEi-n.js";
|
|
2
2
|
|
|
3
3
|
//#region ../../packages/fragno/dist/client/vanilla.js
|
|
4
4
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vanilla.js","names":["a","isGetHook","o","isMutatorHook","createAsyncIteratorFromCallback","subscribe","queue","unsubscribe","resolveNext","unsubscribeFunc","value","done","push","length","shift","Promise","resolve","result","createVanillaListeners","hook","path","query","store","listen","callback","loading","error","data","refetch","revalidate","get","Symbol","asyncIterator","createVanillaMutator","mutatorStore","mutate","body","useFragno","clientObj","key","Object","prototype","hasOwnProperty","call","useFragno","createExampleFragmentClients","FragnoPublicClientConfig","createExampleFragmentClient","config"],"sources":["../../../../../packages/fragno/dist/client/vanilla.js","../../../src/client/vanilla.ts"],"sourcesContent":["import \"../api-DngJDcmO.js\";\nimport \"../route-B4RbOWjd.js\";\nimport { a as isGetHook, o as isMutatorHook } from \"../client-
|
|
1
|
+
{"version":3,"file":"vanilla.js","names":["a","isGetHook","o","isMutatorHook","createAsyncIteratorFromCallback","subscribe","queue","unsubscribe","resolveNext","unsubscribeFunc","value","done","push","length","shift","Promise","resolve","result","createVanillaListeners","hook","path","query","store","listen","callback","loading","error","data","refetch","revalidate","get","Symbol","asyncIterator","createVanillaMutator","mutatorStore","mutate","body","useFragno","clientObj","key","Object","prototype","hasOwnProperty","call","useFragno","createExampleFragmentClients","FragnoPublicClientConfig","createExampleFragmentClient","config"],"sources":["../../../../../packages/fragno/dist/client/vanilla.js","../../../src/client/vanilla.ts"],"sourcesContent":["import \"../api-DngJDcmO.js\";\nimport \"../route-B4RbOWjd.js\";\nimport { a as isGetHook, o as isMutatorHook } from \"../client-D5ORmjBP.js\";\nimport \"../ssr-CamRrMc0.js\";\n\n//#region src/util/async.ts\n/**\n* Creates an async iterator from a subscribe function that follows the observable pattern.\n*\n* @template T The type of values produced by the store.\n* @param subscribe A function that subscribes to store updates. It receives a callback to be\n* called on each update, and returns an unsubscribe function.\n* @returns An async generator that yields store values as they are produced.\n*/\nfunction createAsyncIteratorFromCallback(subscribe) {\n\tconst queue = [];\n\tlet unsubscribe = null;\n\tlet resolveNext = null;\n\tconst unsubscribeFunc = subscribe((value) => {\n\t\tif (resolveNext) {\n\t\t\tresolveNext({\n\t\t\t\tvalue,\n\t\t\t\tdone: false\n\t\t\t});\n\t\t\tresolveNext = null;\n\t\t} else queue.push(value);\n\t});\n\tif (typeof unsubscribeFunc === \"function\") unsubscribe = unsubscribeFunc;\n\treturn (async function* () {\n\t\ttry {\n\t\t\twhile (true) if (queue.length > 0) yield queue.shift();\n\t\t\telse yield await new Promise((resolve) => {\n\t\t\t\tresolveNext = (result) => {\n\t\t\t\t\tif (!result.done) resolve(result.value);\n\t\t\t\t};\n\t\t\t});\n\t\t} finally {\n\t\t\tif (unsubscribe) unsubscribe();\n\t\t}\n\t})();\n}\n\n//#endregion\n//#region src/client/vanilla.ts\nfunction createVanillaListeners(hook) {\n\treturn ({ path, query } = {}) => {\n\t\tconst store = hook.store({\n\t\t\tpath,\n\t\t\tquery\n\t\t});\n\t\treturn {\n\t\t\tlisten: (callback) => {\n\t\t\t\treturn store.listen(({ loading, error, data }) => callback({\n\t\t\t\t\tloading,\n\t\t\t\t\terror,\n\t\t\t\t\tdata\n\t\t\t\t}));\n\t\t\t},\n\t\t\tsubscribe: (callback) => {\n\t\t\t\treturn store.subscribe(({ loading, error, data }) => callback({\n\t\t\t\t\tloading,\n\t\t\t\t\terror,\n\t\t\t\t\tdata\n\t\t\t\t}));\n\t\t\t},\n\t\t\trefetch: () => {\n\t\t\t\treturn store.revalidate();\n\t\t\t},\n\t\t\tget: () => {\n\t\t\t\treturn store.get();\n\t\t\t},\n\t\t\t[Symbol.asyncIterator]() {\n\t\t\t\treturn createAsyncIteratorFromCallback((callback) => store.listen(({ loading, error, data }) => callback({\n\t\t\t\t\tloading,\n\t\t\t\t\terror,\n\t\t\t\t\tdata\n\t\t\t\t})));\n\t\t\t}\n\t\t};\n\t};\n}\nfunction createVanillaMutator(hook) {\n\treturn () => {\n\t\tconst store = hook.mutatorStore;\n\t\treturn {\n\t\t\tsubscribe: (callback) => {\n\t\t\t\treturn store.subscribe((value) => {\n\t\t\t\t\tcallback({\n\t\t\t\t\t\tloading: value.loading ?? false,\n\t\t\t\t\t\terror: value.error,\n\t\t\t\t\t\tdata: value.data\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t},\n\t\t\tget: () => {\n\t\t\t\tconst { loading, error, data } = store.get();\n\t\t\t\treturn {\n\t\t\t\t\tloading: loading ?? false,\n\t\t\t\t\terror,\n\t\t\t\t\tdata\n\t\t\t\t};\n\t\t\t},\n\t\t\tmutate: ({ body, path, query }) => {\n\t\t\t\treturn store.mutate({\n\t\t\t\t\tbody,\n\t\t\t\t\tpath,\n\t\t\t\t\tquery\n\t\t\t\t});\n\t\t\t},\n\t\t\t[Symbol.asyncIterator]() {\n\t\t\t\treturn createAsyncIteratorFromCallback((callback) => store.listen((value) => {\n\t\t\t\t\tcallback({\n\t\t\t\t\t\tloading: value.loading ?? false,\n\t\t\t\t\t\terror: value.error,\n\t\t\t\t\t\tdata: value.data\n\t\t\t\t\t});\n\t\t\t\t}));\n\t\t\t}\n\t\t};\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] = createVanillaListeners(hook);\n\t\telse if (isMutatorHook(hook)) result[key] = createVanillaMutator(hook);\n\t\telse result[key] = hook;\n\t}\n\treturn result;\n}\n\n//#endregion\nexport { useFragno };\n//# sourceMappingURL=vanilla.js.map","import { useFragno } from \"@fragno-dev/core/vanilla\";\nimport { createExampleFragmentClients } from \"..\";\nimport type { FragnoPublicClientConfig } from \"@fragno-dev/core\";\n\nexport function createExampleFragmentClient(config: FragnoPublicClientConfig = {}) {\n return useFragno(createExampleFragmentClients(config));\n}\n"],"mappings":";;;;;;;;;;;AAcA,SAASI,gCAAgCC,WAAW;CACnD,MAAMC,QAAQ,EAAE;CAChB,IAAIC,cAAc;CAClB,IAAIC,cAAc;CAClB,MAAMC,kBAAkBJ,WAAWK,UAAU;AAC5C,MAAIF,aAAa;AAChBA,eAAY;IACXE;IACAC,MAAM;IACN,CAAC;AACFH,iBAAc;QACRF,OAAMM,KAAKF,MAAM;GACvB;AACF,KAAI,OAAOD,oBAAoB,WAAYF,eAAcE;AACzD,QAAQ,mBAAmB;AAC1B,MAAI;AACH,UAAO,KAAM,KAAIH,MAAMO,SAAS,EAAG,OAAMP,MAAMQ,OAAO;OACjD,OAAM,MAAM,IAAIC,SAASC,YAAY;AACzCR,mBAAeS,WAAW;AACzB,SAAI,CAACA,OAAON,KAAMK,SAAQC,OAAOP,MAAM;;KAEvC;YACO;AACT,OAAIH,YAAaA,cAAa;;IAE5B;;AAKL,SAASW,uBAAuBC,MAAM;AACrC,SAAQ,EAAEC,MAAMC,UAAU,EAAE,KAAK;EAChC,MAAMC,QAAQH,KAAKG,MAAM;GACxBF;GACAC;GACA,CAAC;AACF,SAAO;GACNE,SAASC,aAAa;AACrB,WAAOF,MAAMC,QAAQ,EAAEE,SAASC,OAAOC,WAAWH,SAAS;KAC1DC;KACAC;KACAC;KACA,CAAC,CAAC;;GAEJtB,YAAYmB,aAAa;AACxB,WAAOF,MAAMjB,WAAW,EAAEoB,SAASC,OAAOC,WAAWH,SAAS;KAC7DC;KACAC;KACAC;KACA,CAAC,CAAC;;GAEJC,eAAe;AACd,WAAON,MAAMO,YAAY;;GAE1BC,WAAW;AACV,WAAOR,MAAMQ,KAAK;;GAEnB,CAACC,OAAOC,iBAAiB;AACxB,WAAO5B,iCAAiCoB,aAAaF,MAAMC,QAAQ,EAAEE,SAASC,OAAOC,WAAWH,SAAS;KACxGC;KACAC;KACAC;KACA,CAAC,CAAC,CAAC;;GAEL;;;AAGH,SAASM,qBAAqBd,MAAM;AACnC,cAAa;EACZ,MAAMG,QAAQH,KAAKe;AACnB,SAAO;GACN7B,YAAYmB,aAAa;AACxB,WAAOF,MAAMjB,WAAWK,UAAU;AACjCc,cAAS;MACRC,SAASf,MAAMe,WAAW;MAC1BC,OAAOhB,MAAMgB;MACbC,MAAMjB,MAAMiB;MACZ,CAAC;MACD;;GAEHG,WAAW;IACV,MAAM,EAAEL,SAASC,OAAOC,SAASL,MAAMQ,KAAK;AAC5C,WAAO;KACNL,SAASA,WAAW;KACpBC;KACAC;KACA;;GAEFQ,SAAS,EAAEC,MAAMhB,MAAMC,YAAY;AAClC,WAAOC,MAAMa,OAAO;KACnBC;KACAhB;KACAC;KACA,CAAC;;GAEH,CAACU,OAAOC,iBAAiB;AACxB,WAAO5B,iCAAiCoB,aAAaF,MAAMC,QAAQb,UAAU;AAC5Ec,cAAS;MACRC,SAASf,MAAMe,WAAW;MAC1BC,OAAOhB,MAAMgB;MACbC,MAAMjB,MAAMiB;MACZ,CAAC;MACD,CAAC;;GAEJ;;;AAGH,SAASU,UAAUC,WAAW;CAC7B,MAAMrB,SAAS,EAAE;AACjB,MAAK,MAAMsB,OAAOD,WAAW;AAC5B,MAAI,CAACE,OAAOC,UAAUC,eAAeC,KAAKL,WAAWC,IAAI,CAAE;EAC3D,MAAMpB,OAAOmB,UAAUC;AACvB,MAAItC,UAAUkB,KAAK,CAAEF,QAAOsB,OAAOrB,uBAAuBC,KAAK;WACtDhB,cAAcgB,KAAK,CAAEF,QAAOsB,OAAON,qBAAqBd,KAAK;MACjEF,QAAOsB,OAAOpB;;AAEpB,QAAOF;;;;;AC9HR,SAAgB8B,4BAA4BC,SAAmC,EAAE,EAAE;AACjF,QAAOJ,UAAUC,6BAA6BG,OAAO,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { i as isMutatorHook, n as createExampleFragmentClients, r as isGetHook, s as atom } from "../src-
|
|
1
|
+
import { i as isMutatorHook, n as createExampleFragmentClients, r as isGetHook, s as atom } from "../src-DbFcEi-n.js";
|
|
2
2
|
import { computed, getCurrentScope, isRef, onScopeDispose, ref, shallowRef, watch } from "vue";
|
|
3
3
|
|
|
4
4
|
//#region ../../packages/fragno/dist/client/vue.js
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vue.js","names":["a","isGetHook","o","isMutatorHook","atom","computed","getCurrentScope","isRef","onScopeDispose","ref","shallowRef","watch","refToAtom","ref$1","value","newVal","set","createVueHook","hook","path","query","pathParams","queryParams","key","Object","entries","v","store","data","loading","error","unsubscribe","subscribe","updatedStoreValue","createVueMutator","useStore","mutatorStore","mutate","args","body","useFragno","clientObj","result","prototype","hasOwnProperty","call","state","useFragno","createExampleFragmentClients","FragnoPublicClientConfig","createExampleFragmentClient","config"],"sources":["../../../../../packages/fragno/dist/client/vue.js","../../../src/client/vue.ts"],"sourcesContent":["import \"../api-DngJDcmO.js\";\nimport \"../route-B4RbOWjd.js\";\nimport { a as isGetHook, o as isMutatorHook } from \"../client-
|
|
1
|
+
{"version":3,"file":"vue.js","names":["a","isGetHook","o","isMutatorHook","atom","computed","getCurrentScope","isRef","onScopeDispose","ref","shallowRef","watch","refToAtom","ref$1","value","newVal","set","createVueHook","hook","path","query","pathParams","queryParams","key","Object","entries","v","store","data","loading","error","unsubscribe","subscribe","updatedStoreValue","createVueMutator","useStore","mutatorStore","mutate","args","body","useFragno","clientObj","result","prototype","hasOwnProperty","call","state","useFragno","createExampleFragmentClients","FragnoPublicClientConfig","createExampleFragmentClient","config"],"sources":["../../../../../packages/fragno/dist/client/vue.js","../../../src/client/vue.ts"],"sourcesContent":["import \"../api-DngJDcmO.js\";\nimport \"../route-B4RbOWjd.js\";\nimport { a as isGetHook, o as isMutatorHook } from \"../client-D5ORmjBP.js\";\nimport \"../ssr-CamRrMc0.js\";\nimport { atom } from \"nanostores\";\nimport { computed, getCurrentScope, isRef, onScopeDispose, ref, shallowRef, watch } from \"vue\";\n\n//#region src/client/vue.ts\n/**\n* Converts a Vue Ref to a NanoStore Atom.\n*\n* This is used to convert Vue refs to atoms, so that we can use them in the store.\n*\n* @private\n*/\nfunction refToAtom(ref$1) {\n\tconst a = atom(ref$1.value);\n\twatch(ref$1, (newVal) => {\n\t\ta.set(newVal);\n\t});\n\treturn a;\n}\nfunction createVueHook(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] = isRef(v) ? refToAtom(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] = isRef(v) ? refToAtom(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 = ref();\n\t\tconst loading = ref();\n\t\tconst error = ref();\n\t\tconst unsubscribe = store.subscribe((updatedStoreValue) => {\n\t\t\tdata.value = updatedStoreValue.data;\n\t\t\tloading.value = updatedStoreValue.loading;\n\t\t\terror.value = updatedStoreValue.error;\n\t\t});\n\t\tif (getCurrentScope()) onScopeDispose(() => {\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 createVueMutator(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] = isRef(v) ? v.value : 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] = isRef(v) ? v.value : v;\n\t\t\t}\n\t\t\treturn store.value.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: computed(() => store.value.loading),\n\t\t\terror: computed(() => store.value.error),\n\t\t\tdata: computed(() => store.value.data)\n\t\t};\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] = createVueHook(hook);\n\t\telse if (isMutatorHook(hook)) result[key] = createVueMutator(hook);\n\t\telse result[key] = hook;\n\t}\n\treturn result;\n}\nfunction useStore(store) {\n\tconst state = shallowRef();\n\tconst unsubscribe = store.subscribe((value) => {\n\t\tstate.value = value;\n\t});\n\tif (getCurrentScope()) onScopeDispose(unsubscribe);\n\treturn state;\n}\n\n//#endregion\nexport { refToAtom, useFragno, useStore };\n//# sourceMappingURL=vue.js.map","import { useFragno } from \"@fragno-dev/core/vue\";\nimport { createExampleFragmentClients } from \"..\";\nimport type { FragnoPublicClientConfig } from \"@fragno-dev/core\";\n\nexport function createExampleFragmentClient(config: FragnoPublicClientConfig = {}) {\n return useFragno(createExampleFragmentClients(config));\n}\n"],"mappings":"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"}
|
package/dist/browser/index.js
CHANGED
|
@@ -974,7 +974,7 @@ const nanoquery = nanoqueryFactory([
|
|
|
974
974
|
]);
|
|
975
975
|
|
|
976
976
|
//#endregion
|
|
977
|
-
//#region ../../packages/fragno/dist/client-
|
|
977
|
+
//#region ../../packages/fragno/dist/client-D5ORmjBP.js
|
|
978
978
|
/**
|
|
979
979
|
* Extract parameter names from a path pattern at runtime.
|
|
980
980
|
* Examples:
|
|
@@ -1633,8 +1633,8 @@ var ClientBuilder = class {
|
|
|
1633
1633
|
this.#invalidateKeys((key) => key.startsWith(prefix));
|
|
1634
1634
|
}
|
|
1635
1635
|
};
|
|
1636
|
-
function createClientBuilder(
|
|
1637
|
-
const definition =
|
|
1636
|
+
function createClientBuilder(fragmentBuilder, publicConfig, routesOrFactories) {
|
|
1637
|
+
const definition = fragmentBuilder.definition;
|
|
1638
1638
|
const routes = resolveRouteFactories({
|
|
1639
1639
|
config: {},
|
|
1640
1640
|
deps: {},
|
|
@@ -1697,4 +1697,4 @@ function createExampleFragmentClients(fragnoConfig) {
|
|
|
1697
1697
|
|
|
1698
1698
|
//#endregion
|
|
1699
1699
|
export { isReadableAtom as a, isMutatorHook as i, createExampleFragmentClients as n, isStore as o, isGetHook as r, atom as s, createExampleFragment as t };
|
|
1700
|
-
//# sourceMappingURL=src-
|
|
1700
|
+
//# sourceMappingURL=src-DbFcEi-n.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"src-DbFcEi-n.js","names":["FragnoApiError","Error","status","code","constructor","message","name","toResponse","Response","json","FragnoApiValidationError","issues","addRoute","route","n","r","t","r","FragnoApiValidationError","getMountRoute","opts","mountRoute","name","endsWith","slice","RequestInputContext","path","method","pathParams","searchParams","body","inputSchema","shouldValidateInput","constructor","config","fromRequest","url","URL","request","clone","json","ReadableStream","fromSSRContext","URLSearchParams","query","rawBody","input","schema","valid","validateInput","#validateInput","Error","FormData","Blob","result","validate","issues","value","ResponseStream","writer","encoder","abortSubscribers","responseReadable","aborted","closed","writable","readable","getWriter","TextEncoder","reader","getReader","push","cancel","pull","controller","done","read","close","enqueue","abort","writeRaw","encode","write","JSON","stringify","sleep","ms","Promise","res","setTimeout","onAbort","listener","forEach","subscriber","mergeHeaders","headerSources","mergedHeaders","Headers","headerSource","key","entries","set","Array","isArray","Object","OutputContext","error","message","code","initOrStatus","headers","Response","status","empty","defaultHeaders","mergedHeaders$1","object","jsonStream","cb","onError","TransformStream","stream","e","console","RequestOutputContext","outputSchema","resolveRouteFactories","context","routesOrFactories","routes","item","factoryRoutes","defineRoute","defineRoutes","create","fn","a","i","n","o","s","t","tasks","resolves","startTask","prevResolves","i","task","cb","endTask","promise","finally","t","allTasks","Promise","resolve","push","cleanTasks","cleanTasks","clean","Symbol","cleanStores","stores","process","env","NODE_ENV","Error","$store","mocked","clean","listenerQueue","lqIndex","QUEUE_ITEMS_PER_LISTENER","epoch","atom","initialValue","listeners","$atom","get","lc","listen","value","listener","push","i","length","splice","index","indexOf","off","notify","oldValue","changedKey","runListenerQueue","set","newValue","subscribe","unbind","process","env","NODE_ENV","readonlyType","store","clean","START","STOP","SET","NOTIFY","MOUNT","UNMOUNT","REVERT_MUTATION","on","object","listener","eventKey","mutateStore","events","eventProps","reduceRight","event","l","shared","push","currentListeners","index","indexOf","splice","length","onStart","$store","runListeners","originListen","listen","arg","lc","starting","onStop","originOff","off","onSet","originSet","set","originSetKey","setKey","changed","changedValue","isAborted","abort","newValue","value","onNotify","originNotify","notify","oldValue","STORE_UNMOUNT_DELAY","onMount","initialize","payload","destroy","args","active","setTimeout","process","env","NODE_ENV","originClean","atom","epoch","onMount","computedStore","stores","cb","batched","Array","isArray","previousArgs","currentEpoch","set","args","map","$store","get","some","arg","i","value","then","t","asyncValue","$computed","undefined","timer","run","clearTimeout","setTimeout","unbinds","listen","unbind","computed","fn","atom","map","initial","$map","setKey","key","value","oldMap","notify","allTasks","stores","SSR_ENABLED","getStores","addStore","store","push","cleanStores","clientInitialData","hydrateFromWindow","window","__FRAGNO_INITIAL_DATA__","Map","console","warn","Array","from","entries","getInitialData","key","has","data","get","delete","listenToStores","listen","getFinalStoreValues","stores$1","storesInitialValue","value","loading","set","a","i","n","o","r","t","createNanoEvents","emit","event","args","callbacks","events","i","length","on","cb","push","filter","map","onStart","onStop","atom","batched","startTask","createNanoEvents","defaultOnErrorRetry","retryCount","Math","random","nanoqueryFactory","isAppVisible","visibilityChangeSubscribe","reconnectChangeSubscribe","nanoquery","cache","Map","fetcher","globalFetcher","globalSettings","events","focus","emit","FOCUS","RECONNECT","_revalidateOnInterval","_errorInvalidateTimeouts","_runningFetches","rewrittenSettings","getCachedValueByKey","key","fromCache","get","cacheHit","expires","getNow","data","error","runFetcher","keyParts","store","settings","set","v","SET_CACHE","setAsLoading","prev","toSet","loading","promise","dedupeTime","cacheLifetime","Infinity","onErrorRetry","now","has","value","cachedValue","cachedError","created","notLoading","finishTask","clearTimeout","res","onError","timer","setTimeout","invalidateKeys","delete","createFetcherStore","keyInput","fetcherSettings","process","env","NODE_ENV","Error","fetcherStore","_","fetcherSymbol","invalidate","revalidate","revalidateKeys","mutate","mutateCache","fetch","resolve","Promise","r","unsub","listen","finally","keysInternalUnsub","prevKey","prevKeyParts","keyUnsub","keyStore","evtUnsubs","firstRun","getKeyStore","subscribe","currentKeys","newKey","currentKeyValue","handleNewListener","revalidateInterval","revalidateOnFocus","revalidateOnReconnect","runRefetcher","setInterval","push","on","cacheKeyChangeHandler","keySelector","testKeyAgainstSelector","INVALIDATE_KEYS","REVALIDATE_KEYS","full","originListen","listener","forEach","fn","clearInterval","iterOverCache","cb","keys","cached","createMutatorStore","mutator","opts","throttleCalls","newMutator","keysToInvalidate","keysToRevalidate","safeKeySet","k","lc","setKey","result","getCacheUpdater","shouldRevalidate","newVal","__unsafeOverruleSettings","console","warn","isSomeKey","$key","keysAsStoresToIndexes","setKeyStoreValue","some","join","i","length","keyOrStore","storesAsArray","$storeKeys","storeValues","partIndex","noop","selector","Array","isArray","includes","Date","getTime","Symbol","name","isServer","window","addEventListener","browserCompat","document","hidden","a","RequestOutputContext","o","RequestInputContext","r","resolveRouteFactories","s","getMountRoute","getInitialData","n","addStore","t","SSR_ENABLED","task","nanoquery","extractPathParams","pathPattern","segments","split","filter","length","names","segment","startsWith","push","slice","buildPath","params","patternSegments","builtSegments","name","value","Error","encodeURIComponent","join","FragnoClientError","code","constructor","message","options","cause","FragnoClientFetchError","fromUnknownFetchError","error","FragnoClientFetchNetworkError","FragnoClientFetchAbortError","FragnoClientUnknownApiError","status","FragnoClientApiError","fromResponse","response","unknown","json","parseContentType","contentType","trimmed","trim","parts","map","part","mediaType","typeParts","type","subtype","toLowerCase","parameters","i","param","equalIndex","indexOf","key","endsWith","createAbortPromise","abortSignal","Promise","_","reject","abortHandler","aborted","addEventListener","once","handleNdjsonStreamingFirstItem","store","body","decoder","TextDecoder","reader","getReader","buffer","firstItem","items","releaseLock","done","race","read","decode","stream","lines","pop","line","jsonObject","JSON","parse","streamingPromise","continueStreaming","parseError","setError","clientError","initialBuffer","lines$1","setData","unwrapAtom","get","unwrapObject","Object","fromEntries","entries","isReadableAtom","lc","notify","off","subscribe","GET_HOOK_SYMBOL","Symbol","MUTATOR_HOOK_SYMBOL","STORE_SYMBOL","buildUrl","config","baseUrl","mountRoute","path","pathParams","queryParams","normalizedPathParams","normalizedQueryParams","searchParams","URLSearchParams","toString","getCacheKey","method","pathParamValues","queryParamValues","keys","sort","isStreamingResponse","headers","isGetHook","hook","isMutatorHook","isStore","obj","ClientBuilder","publicConfig","fragmentConfig","cache","Map","createFetcherStore","createMutatorStore","invalidateKeys","cacheEntries","createStore","createHook","route","routes","find","outputSchema","createRouteQueryHook","createMutator","onInvalidate","createRouteQueryMutator","#createRouteQueryHook","callServerSideHandler","handler","fromSSRContext","executeQuery","window","url","fetch","ok","args","query","fetcher","initialData","d","isStreaming","set","loading","Array","isArray","data","onErrorRetry","dedupeTime","Infinity","#createRouteQueryMutator","invalidate","executeMutateQuery","inputSchema","stringify","mutatorStore","bind","onError","console","mutateQuery","#invalidate","prefix","k","createClientBuilder","fragmentBuilder","routesOrFactories","definition","deps","services","c","f","l","m","p","u","defineFragment","defineRoute","defineRoutes","createFragment","FragnoPublicClientConfig","FragnoPublicConfig","createClientBuilder","z","ExampleFragmentServerConfig","initialData","ExampleRouteConfig","ExampleRouteDeps","serverSideData","value","exampleRoutesFactory","create","deps","method","path","outputSchema","string","handler","queryParameters","inputSchema","object","message","errorCodes","exampleFragmentDefinition","withDependencies","withServices","createExampleFragment","serverConfig","options","config","createExampleFragmentClients","fragnoConfig","b","useHash","createHook","useData","useSampleMutator","createMutator","FragnoRouteConfig"],"sources":["../../../../packages/fragno/dist/api-DngJDcmO.js","../../../../packages/fragno/dist/route-B4RbOWjd.js","../../../../node_modules/.bun/nanostores@1.0.1/node_modules/nanostores/task/index.js","../../../../node_modules/.bun/nanostores@1.0.1/node_modules/nanostores/clean-stores/index.js","../../../../node_modules/.bun/nanostores@1.0.1/node_modules/nanostores/atom/index.js","../../../../node_modules/.bun/nanostores@1.0.1/node_modules/nanostores/lifecycle/index.js","../../../../node_modules/.bun/nanostores@1.0.1/node_modules/nanostores/computed/index.js","../../../../node_modules/.bun/nanostores@1.0.1/node_modules/nanostores/map/index.js","../../../../packages/fragno/dist/ssr-CamRrMc0.js","../../../../node_modules/.bun/nanoevents@9.1.0/node_modules/nanoevents/index.js","../../../../node_modules/.bun/@nanostores+query@0.3.4+e0f9796391ddf78a/node_modules/@nanostores/query/dist/nanoquery.js","../../../../packages/fragno/dist/client-D5ORmjBP.js","../../src/index.ts"],"sourcesContent":["//#region src/api/error.ts\nvar FragnoApiError = class extends Error {\n\t#status;\n\t#code;\n\tconstructor({ message, code }, status) {\n\t\tsuper(message);\n\t\tthis.name = \"FragnoApiError\";\n\t\tthis.#status = status;\n\t\tthis.#code = code;\n\t}\n\tget status() {\n\t\treturn this.#status;\n\t}\n\tget code() {\n\t\treturn this.#code;\n\t}\n\ttoResponse() {\n\t\treturn Response.json({\n\t\t\tmessage: this.message,\n\t\t\tcode: this.code\n\t\t}, { status: this.status });\n\t}\n};\nvar FragnoApiValidationError = class extends FragnoApiError {\n\t#issues;\n\tconstructor(message, issues) {\n\t\tsuper({\n\t\t\tmessage,\n\t\t\tcode: \"FRAGNO_VALIDATION_ERROR\"\n\t\t}, 400);\n\t\tthis.name = \"FragnoApiValidationError\";\n\t\tthis.#issues = issues;\n\t}\n\tget issues() {\n\t\treturn this.#issues;\n\t}\n\ttoResponse() {\n\t\treturn Response.json({\n\t\t\tmessage: this.message,\n\t\t\tissues: this.#issues,\n\t\t\tcode: this.code\n\t\t}, { status: this.status });\n\t}\n};\n\n//#endregion\n//#region src/api/api.ts\nfunction addRoute(route) {\n\treturn route;\n}\n\n//#endregion\nexport { FragnoApiError as n, FragnoApiValidationError as r, addRoute as t };\n//# sourceMappingURL=api-DngJDcmO.js.map","import { r as FragnoApiValidationError } from \"./api-DngJDcmO.js\";\n\n//#region src/api/internal/route.ts\nfunction getMountRoute(opts) {\n\tconst mountRoute = opts.mountRoute ?? `/api/${opts.name}`;\n\tif (mountRoute.endsWith(\"/\")) return mountRoute.slice(0, -1);\n\treturn mountRoute;\n}\n\n//#endregion\n//#region src/api/request-input-context.ts\nvar RequestInputContext = class RequestInputContext {\n\t#path;\n\t#method;\n\t#pathParams;\n\t#searchParams;\n\t#body;\n\t#inputSchema;\n\t#shouldValidateInput;\n\tconstructor(config) {\n\t\tthis.#path = config.path;\n\t\tthis.#method = config.method;\n\t\tthis.#pathParams = config.pathParams;\n\t\tthis.#searchParams = config.searchParams;\n\t\tthis.#body = config.body;\n\t\tthis.#inputSchema = config.inputSchema;\n\t\tthis.#shouldValidateInput = config.shouldValidateInput ?? true;\n\t}\n\t/**\n\t* Create a RequestContext from a Request object for server-side handling\n\t*/\n\tstatic async fromRequest(config) {\n\t\tconst url = new URL(config.request.url);\n\t\tconst request = config.request.clone();\n\t\tconst json = request.body instanceof ReadableStream ? await request.json() : void 0;\n\t\treturn new RequestInputContext({\n\t\t\tmethod: config.method,\n\t\t\tpath: config.path,\n\t\t\tpathParams: config.pathParams,\n\t\t\tsearchParams: url.searchParams,\n\t\t\tbody: json,\n\t\t\tinputSchema: config.inputSchema,\n\t\t\tshouldValidateInput: config.shouldValidateInput\n\t\t});\n\t}\n\t/**\n\t* Create a RequestContext for server-side rendering contexts (no Request object)\n\t*/\n\tstatic fromSSRContext(config) {\n\t\treturn new RequestInputContext({\n\t\t\tmethod: config.method,\n\t\t\tpath: config.path,\n\t\t\tpathParams: config.pathParams,\n\t\t\tsearchParams: config.searchParams ?? new URLSearchParams(),\n\t\t\tbody: \"body\" in config ? config.body : void 0,\n\t\t\tinputSchema: \"inputSchema\" in config ? config.inputSchema : void 0,\n\t\t\tshouldValidateInput: false\n\t\t});\n\t}\n\t/**\n\t* The HTTP method as string (e.g., `GET`, `POST`)\n\t*/\n\tget method() {\n\t\treturn this.#method;\n\t}\n\t/**\n\t* The matched route path (e.g., `/users/:id`)\n\t* @remarks `string`\n\t*/\n\tget path() {\n\t\treturn this.#path;\n\t}\n\t/**\n\t* Extracted path parameters as object (e.g., `{ id: '123' }`)\n\t* @remarks `Record<string, string>`\n\t*/\n\tget pathParams() {\n\t\treturn this.#pathParams;\n\t}\n\t/**\n\t* [URLSearchParams](https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams) object for query parameters\n\t* @remarks `URLSearchParams`\n\t*/\n\tget query() {\n\t\treturn this.#searchParams;\n\t}\n\t/**\n\t* @internal\n\t*/\n\tget rawBody() {\n\t\treturn this.#body;\n\t}\n\t/**\n\t* Input validation context (only if inputSchema is defined)\n\t* @remarks `InputContext`\n\t*/\n\tget input() {\n\t\tif (!this.#inputSchema) return;\n\t\treturn {\n\t\t\tschema: this.#inputSchema,\n\t\t\tvalid: async () => {\n\t\t\t\tif (!this.#shouldValidateInput) return this.#body;\n\t\t\t\treturn this.#validateInput();\n\t\t\t}\n\t\t};\n\t}\n\tasync #validateInput() {\n\t\tif (!this.#inputSchema) throw new Error(\"No input schema defined for this route\");\n\t\tif (this.#body instanceof FormData || this.#body instanceof Blob) throw new Error(\"Schema validation is only supported for JSON data, not FormData or Blob\");\n\t\tconst result = await this.#inputSchema[\"~standard\"].validate(this.#body);\n\t\tif (result.issues) throw new FragnoApiValidationError(\"Validation failed\", result.issues);\n\t\treturn result.value;\n\t}\n};\n\n//#endregion\n//#region src/api/internal/response-stream.ts\nvar ResponseStream = class {\n\t#writer;\n\t#encoder;\n\t#abortSubscribers = [];\n\t#responseReadable;\n\t#aborted = false;\n\t#closed = false;\n\t/**\n\t* Whether the stream has been aborted.\n\t*/\n\tget aborted() {\n\t\treturn this.#aborted;\n\t}\n\t/**\n\t* Whether the stream has been closed normally.\n\t*/\n\tget closed() {\n\t\treturn this.#closed;\n\t}\n\t/**\n\t* The readable stream that the response is piped to.\n\t*/\n\tget responseReadable() {\n\t\treturn this.#responseReadable;\n\t}\n\tconstructor(writable, readable) {\n\t\tthis.#writer = writable.getWriter();\n\t\tthis.#encoder = new TextEncoder();\n\t\tconst reader = readable.getReader();\n\t\tthis.#abortSubscribers.push(async () => {\n\t\t\tawait reader.cancel();\n\t\t});\n\t\tthis.#responseReadable = new ReadableStream({\n\t\t\tasync pull(controller) {\n\t\t\t\tconst { done, value } = await reader.read();\n\t\t\t\tif (done) controller.close();\n\t\t\t\telse controller.enqueue(value);\n\t\t\t},\n\t\t\tcancel: () => {\n\t\t\t\tthis.abort();\n\t\t\t}\n\t\t});\n\t}\n\tasync writeRaw(input) {\n\t\ttry {\n\t\t\tif (typeof input === \"string\") input = this.#encoder.encode(input);\n\t\t\tawait this.#writer.write(input);\n\t\t} catch {}\n\t}\n\twrite(input) {\n\t\treturn this.writeRaw(JSON.stringify(input) + \"\\n\");\n\t}\n\tsleep(ms) {\n\t\treturn new Promise((res) => setTimeout(res, ms));\n\t}\n\tasync close() {\n\t\ttry {\n\t\t\tawait this.#writer.close();\n\t\t} catch {} finally {\n\t\t\tthis.#closed = true;\n\t\t}\n\t}\n\tonAbort(listener) {\n\t\tthis.#abortSubscribers.push(listener);\n\t}\n\t/**\n\t* Abort the stream.\n\t* You can call this method when stream is aborted by external event.\n\t*/\n\tabort() {\n\t\tif (!this.aborted) {\n\t\t\tthis.#aborted = true;\n\t\t\tthis.#abortSubscribers.forEach((subscriber) => subscriber());\n\t\t}\n\t}\n};\n\n//#endregion\n//#region src/api/request-output-context.ts\n/**\n* Utility function to merge headers from multiple sources.\n* Later headers override earlier ones.\n*/\nfunction mergeHeaders(...headerSources) {\n\tconst mergedHeaders = new Headers();\n\tfor (const headerSource of headerSources) {\n\t\tif (!headerSource) continue;\n\t\tif (headerSource instanceof Headers) for (const [key, value] of headerSource.entries()) mergedHeaders.set(key, value);\n\t\telse if (Array.isArray(headerSource)) for (const [key, value] of headerSource) mergedHeaders.set(key, value);\n\t\telse for (const [key, value] of Object.entries(headerSource)) mergedHeaders.set(key, value);\n\t}\n\treturn mergedHeaders;\n}\nvar OutputContext = class {\n\t/**\n\t* Creates an error response.\n\t*\n\t* Shortcut for `throw new FragnoApiError(...)`\n\t*/\n\terror({ message, code }, initOrStatus, headers) {\n\t\tif (typeof initOrStatus === \"undefined\") return Response.json({\n\t\t\tmessage,\n\t\t\tcode\n\t\t}, {\n\t\t\tstatus: 500,\n\t\t\theaders\n\t\t});\n\t\tif (typeof initOrStatus === \"number\") return Response.json({\n\t\t\tmessage,\n\t\t\tcode\n\t\t}, {\n\t\t\tstatus: initOrStatus,\n\t\t\theaders\n\t\t});\n\t\tconst mergedHeaders = mergeHeaders(initOrStatus.headers, headers);\n\t\treturn Response.json({\n\t\t\tmessage,\n\t\t\tcode\n\t\t}, {\n\t\t\tstatus: initOrStatus.status,\n\t\t\theaders: mergedHeaders\n\t\t});\n\t}\n\tempty(initOrStatus, headers) {\n\t\tconst defaultHeaders = {};\n\t\tif (typeof initOrStatus === \"undefined\") {\n\t\t\tconst mergedHeaders$1 = mergeHeaders(defaultHeaders, headers);\n\t\t\treturn Response.json(null, {\n\t\t\t\tstatus: 201,\n\t\t\t\theaders: mergedHeaders$1\n\t\t\t});\n\t\t}\n\t\tif (typeof initOrStatus === \"number\") {\n\t\t\tconst mergedHeaders$1 = mergeHeaders(defaultHeaders, headers);\n\t\t\treturn Response.json(null, {\n\t\t\t\tstatus: initOrStatus,\n\t\t\t\theaders: mergedHeaders$1\n\t\t\t});\n\t\t}\n\t\tconst mergedHeaders = mergeHeaders(defaultHeaders, initOrStatus.headers, headers);\n\t\treturn Response.json(null, {\n\t\t\tstatus: initOrStatus.status,\n\t\t\theaders: mergedHeaders\n\t\t});\n\t}\n\tjson(object, initOrStatus, headers) {\n\t\tif (typeof initOrStatus === \"undefined\") return Response.json(object, {\n\t\t\tstatus: 200,\n\t\t\theaders\n\t\t});\n\t\tif (typeof initOrStatus === \"number\") return Response.json(object, {\n\t\t\tstatus: initOrStatus,\n\t\t\theaders\n\t\t});\n\t\tconst mergedHeaders = mergeHeaders(initOrStatus.headers, headers);\n\t\treturn Response.json(object, {\n\t\t\tstatus: initOrStatus.status,\n\t\t\theaders: mergedHeaders\n\t\t});\n\t}\n\tjsonStream = (cb, { onError, headers } = {}) => {\n\t\tconst defaultHeaders = {\n\t\t\t\"content-type\": \"application/x-ndjson; charset=utf-8\",\n\t\t\t\"transfer-encoding\": \"chunked\",\n\t\t\t\"cache-control\": \"no-cache\"\n\t\t};\n\t\tconst { readable, writable } = new TransformStream();\n\t\tconst stream = new ResponseStream(writable, readable);\n\t\t(async () => {\n\t\t\ttry {\n\t\t\t\tawait cb(stream);\n\t\t\t} catch (e) {\n\t\t\t\tif (e === void 0) {} else if (e instanceof Error && onError) await onError(e, stream);\n\t\t\t\telse console.error(e);\n\t\t\t} finally {\n\t\t\t\tstream.close();\n\t\t\t}\n\t\t})();\n\t\treturn new Response(stream.responseReadable, {\n\t\t\tstatus: 200,\n\t\t\theaders: mergeHeaders(defaultHeaders, headers)\n\t\t});\n\t};\n};\nvar RequestOutputContext = class extends OutputContext {\n\t#outputSchema;\n\tconstructor(outputSchema) {\n\t\tsuper();\n\t\tthis.#outputSchema = outputSchema;\n\t}\n};\n\n//#endregion\n//#region src/api/route.ts\nfunction resolveRouteFactories(context, routesOrFactories) {\n\tconst routes = [];\n\tfor (const item of routesOrFactories) if (typeof item === \"function\") {\n\t\tconst factoryRoutes = item(context);\n\t\troutes.push(...factoryRoutes);\n\t} else routes.push(item);\n\treturn routes;\n}\nfunction defineRoute(config) {\n\treturn config;\n}\nfunction defineRoutes() {\n\treturn { create: (fn) => {\n\t\treturn fn;\n\t} };\n}\n\n//#endregion\nexport { RequestOutputContext as a, OutputContext as i, defineRoutes as n, RequestInputContext as o, resolveRouteFactories as r, getMountRoute as s, defineRoute as t };\n//# sourceMappingURL=route-B4RbOWjd.js.map","let tasks = 0\nlet resolves = []\n\nexport function startTask() {\n tasks += 1\n return () => {\n tasks -= 1\n if (tasks === 0) {\n let prevResolves = resolves\n resolves = []\n for (let i of prevResolves) i()\n }\n }\n}\n\nexport function task(cb) {\n let endTask = startTask()\n let promise = cb().finally(endTask)\n promise.t = true\n return promise\n}\n\nexport function allTasks() {\n if (tasks === 0) {\n return Promise.resolve()\n } else {\n return new Promise(resolve => {\n resolves.push(resolve)\n })\n }\n}\n\nexport function cleanTasks() {\n tasks = 0\n}\n","import { cleanTasks } from '../task/index.js'\n\nexport let clean = Symbol('clean')\n\nexport let cleanStores = (...stores) => {\n if (process.env.NODE_ENV === 'production') {\n throw new Error(\n 'cleanStores() can be used only during development or tests'\n )\n }\n cleanTasks()\n for (let $store of stores) {\n if ($store) {\n if ($store.mocked) delete $store.mocked\n if ($store[clean]) $store[clean]()\n }\n }\n}\n","import { clean } from '../clean-stores/index.js'\n\nlet listenerQueue = []\nlet lqIndex = 0\nconst QUEUE_ITEMS_PER_LISTENER = 4\nexport let epoch = 0\n\nexport let atom = initialValue => {\n let listeners = []\n let $atom = {\n get() {\n if (!$atom.lc) {\n $atom.listen(() => {})()\n }\n return $atom.value\n },\n lc: 0,\n listen(listener) {\n $atom.lc = listeners.push(listener)\n\n return () => {\n for (\n let i = lqIndex + QUEUE_ITEMS_PER_LISTENER;\n i < listenerQueue.length;\n\n ) {\n if (listenerQueue[i] === listener) {\n listenerQueue.splice(i, QUEUE_ITEMS_PER_LISTENER)\n } else {\n i += QUEUE_ITEMS_PER_LISTENER\n }\n }\n\n let index = listeners.indexOf(listener)\n if (~index) {\n listeners.splice(index, 1)\n if (!--$atom.lc) $atom.off()\n }\n }\n },\n notify(oldValue, changedKey) {\n epoch++\n let runListenerQueue = !listenerQueue.length\n for (let listener of listeners) {\n listenerQueue.push(listener, $atom.value, oldValue, changedKey)\n }\n\n if (runListenerQueue) {\n for (\n lqIndex = 0;\n lqIndex < listenerQueue.length;\n lqIndex += QUEUE_ITEMS_PER_LISTENER\n ) {\n listenerQueue[lqIndex](\n listenerQueue[lqIndex + 1],\n listenerQueue[lqIndex + 2],\n listenerQueue[lqIndex + 3]\n )\n }\n listenerQueue.length = 0\n }\n },\n /* It will be called on last listener unsubscribing.\n We will redefine it in onMount and onStop. */\n off() {},\n set(newValue) {\n let oldValue = $atom.value\n if (oldValue !== newValue) {\n $atom.value = newValue\n $atom.notify(oldValue)\n }\n },\n subscribe(listener) {\n let unbind = $atom.listen(listener)\n listener($atom.value)\n return unbind\n },\n value: initialValue\n }\n\n if (process.env.NODE_ENV !== 'production') {\n $atom[clean] = () => {\n listeners = []\n $atom.lc = 0\n $atom.off()\n }\n }\n\n return $atom\n}\n\nexport const readonlyType = store => store\n","import { clean } from '../clean-stores/index.js'\n\nconst START = 0\nconst STOP = 1\nconst SET = 2\nconst NOTIFY = 3\nconst MOUNT = 5\nconst UNMOUNT = 6\nconst REVERT_MUTATION = 10\n\nexport let on = (object, listener, eventKey, mutateStore) => {\n object.events = object.events || {}\n if (!object.events[eventKey + REVERT_MUTATION]) {\n object.events[eventKey + REVERT_MUTATION] = mutateStore(eventProps => {\n // eslint-disable-next-line no-sequences\n object.events[eventKey].reduceRight((event, l) => (l(event), event), {\n shared: {},\n ...eventProps\n })\n })\n }\n object.events[eventKey] = object.events[eventKey] || []\n object.events[eventKey].push(listener)\n return () => {\n let currentListeners = object.events[eventKey]\n let index = currentListeners.indexOf(listener)\n currentListeners.splice(index, 1)\n if (!currentListeners.length) {\n delete object.events[eventKey]\n object.events[eventKey + REVERT_MUTATION]()\n delete object.events[eventKey + REVERT_MUTATION]\n }\n }\n}\n\nexport let onStart = ($store, listener) =>\n on($store, listener, START, runListeners => {\n let originListen = $store.listen\n $store.listen = arg => {\n if (!$store.lc && !$store.starting) {\n $store.starting = true\n runListeners()\n delete $store.starting\n }\n return originListen(arg)\n }\n return () => {\n $store.listen = originListen\n }\n })\n\nexport let onStop = ($store, listener) =>\n on($store, listener, STOP, runListeners => {\n let originOff = $store.off\n $store.off = () => {\n runListeners()\n originOff()\n }\n return () => {\n $store.off = originOff\n }\n })\n\nexport let onSet = ($store, listener) =>\n on($store, listener, SET, runListeners => {\n let originSet = $store.set\n let originSetKey = $store.setKey\n if ($store.setKey) {\n $store.setKey = (changed, changedValue) => {\n let isAborted\n let abort = () => {\n isAborted = true\n }\n\n runListeners({\n abort,\n changed,\n newValue: { ...$store.value, [changed]: changedValue }\n })\n if (!isAborted) return originSetKey(changed, changedValue)\n }\n }\n $store.set = newValue => {\n let isAborted\n let abort = () => {\n isAborted = true\n }\n\n runListeners({ abort, newValue })\n if (!isAborted) return originSet(newValue)\n }\n return () => {\n $store.set = originSet\n $store.setKey = originSetKey\n }\n })\n\nexport let onNotify = ($store, listener) =>\n on($store, listener, NOTIFY, runListeners => {\n let originNotify = $store.notify\n $store.notify = (oldValue, changed) => {\n let isAborted\n let abort = () => {\n isAborted = true\n }\n\n runListeners({ abort, changed, oldValue })\n if (!isAborted) return originNotify(oldValue, changed)\n }\n return () => {\n $store.notify = originNotify\n }\n })\n\nexport let STORE_UNMOUNT_DELAY = 1000\n\nexport let onMount = ($store, initialize) => {\n let listener = payload => {\n let destroy = initialize(payload)\n if (destroy) $store.events[UNMOUNT].push(destroy)\n }\n return on($store, listener, MOUNT, runListeners => {\n let originListen = $store.listen\n $store.listen = (...args) => {\n if (!$store.lc && !$store.active) {\n $store.active = true\n runListeners()\n }\n return originListen(...args)\n }\n\n let originOff = $store.off\n $store.events[UNMOUNT] = []\n $store.off = () => {\n originOff()\n setTimeout(() => {\n if ($store.active && !$store.lc) {\n $store.active = false\n for (let destroy of $store.events[UNMOUNT]) destroy()\n $store.events[UNMOUNT] = []\n }\n }, STORE_UNMOUNT_DELAY)\n }\n\n if (process.env.NODE_ENV !== 'production') {\n let originClean = $store[clean]\n $store[clean] = () => {\n for (let destroy of $store.events[UNMOUNT]) destroy()\n $store.events[UNMOUNT] = []\n $store.active = false\n originClean()\n }\n }\n\n return () => {\n $store.listen = originListen\n $store.off = originOff\n }\n })\n}\n","import { atom, epoch } from '../atom/index.js'\nimport { onMount } from '../lifecycle/index.js'\n\nlet computedStore = (stores, cb, batched) => {\n if (!Array.isArray(stores)) stores = [stores]\n\n let previousArgs\n let currentEpoch\n let set = () => {\n if (currentEpoch === epoch) return\n currentEpoch = epoch\n let args = stores.map($store => $store.get())\n if (!previousArgs || args.some((arg, i) => arg !== previousArgs[i])) {\n previousArgs = args\n let value = cb(...args)\n if (value && value.then && value.t) {\n value.then(asyncValue => {\n if (previousArgs === args) {\n // Prevent a stale set\n $computed.set(asyncValue)\n }\n })\n } else {\n $computed.set(value)\n currentEpoch = epoch\n }\n }\n }\n let $computed = atom(undefined)\n let get = $computed.get\n $computed.get = () => {\n set()\n return get()\n }\n\n let timer\n let run = batched\n ? () => {\n clearTimeout(timer)\n timer = setTimeout(set)\n }\n : set\n\n onMount($computed, () => {\n let unbinds = stores.map($store => $store.listen(run))\n set()\n return () => {\n for (let unbind of unbinds) unbind()\n }\n })\n\n return $computed\n}\n\nexport let computed = (stores, fn) => computedStore(stores, fn)\nexport let batched = (stores, fn) => computedStore(stores, fn, true)\n","import { atom } from '../atom/index.js'\n\nexport let map = (initial = {}) => {\n let $map = atom(initial)\n\n $map.setKey = function (key, value) {\n let oldMap = $map.value\n if (typeof value === 'undefined' && key in $map.value) {\n $map.value = { ...$map.value }\n delete $map.value[key]\n $map.notify(oldMap, key)\n } else if ($map.value[key] !== value) {\n $map.value = {\n ...$map.value,\n [key]: value\n }\n $map.notify(oldMap, key)\n }\n }\n\n return $map\n}\n","import { allTasks } from \"nanostores\";\n\n//#region src/util/ssr.ts\nlet stores = [];\nconst SSR_ENABLED = false;\nfunction getStores() {\n\treturn stores;\n}\nfunction addStore(store) {\n\tstores.push(store);\n}\nfunction cleanStores() {\n\tstores = [];\n}\nlet clientInitialData;\nfunction hydrateFromWindow() {\n\tif (typeof window !== \"undefined\" && window.__FRAGNO_INITIAL_DATA__) {\n\t\tclientInitialData = new Map(window.__FRAGNO_INITIAL_DATA__);\n\t\tdelete window.__FRAGNO_INITIAL_DATA__;\n\t\tconsole.warn(\"hydrateFromWindow\", { clientInitialData: Array.from(clientInitialData.entries()) });\n\t}\n}\nfunction getInitialData(key) {\n\tif (clientInitialData?.has(key)) {\n\t\tconst data = clientInitialData.get(key);\n\t\tclientInitialData.delete(key);\n\t\treturn data;\n\t}\n}\nfunction listenToStores() {\n\tfor (const store of getStores()) store.listen(() => {});\n}\nasync function getFinalStoreValues() {\n\tlistenToStores();\n\tawait allTasks();\n\tconst stores$1 = getStores();\n\tconst storesInitialValue = /* @__PURE__ */ new Map();\n\tfor (const store of stores$1) {\n\t\tconst value = store.get();\n\t\tif (!value || !store.key || value.loading) continue;\n\t\tstoresInitialValue.set(store.key, value.data);\n\t}\n\treturn storesInitialValue;\n}\n\n//#endregion\nexport { getInitialData as a, getFinalStoreValues as i, addStore as n, hydrateFromWindow as o, cleanStores as r, SSR_ENABLED as t };\n//# sourceMappingURL=ssr-CamRrMc0.js.map","export let createNanoEvents = () => ({\n emit(event, ...args) {\n for (\n let callbacks = this.events[event] || [],\n i = 0,\n length = callbacks.length;\n i < length;\n i++\n ) {\n callbacks[i](...args)\n }\n },\n events: {},\n on(event, cb) {\n ;(this.events[event] ||= []).push(cb)\n return () => {\n this.events[event] = this.events[event]?.filter(i => cb !== i)\n }\n }\n})\n","import { map, onStart, onStop, atom, batched, startTask } from 'nanostores';\nimport { createNanoEvents } from 'nanoevents';\n\nfunction defaultOnErrorRetry({ retryCount }) {\n return ~~((Math.random() + 0.5) * (1 << (retryCount < 8 ? retryCount : 8))) * 2e3;\n}\nconst nanoqueryFactory = ([\n isAppVisible,\n visibilityChangeSubscribe,\n reconnectChangeSubscribe\n]) => {\n const nanoquery = ({\n cache = /* @__PURE__ */ new Map(),\n fetcher: globalFetcher,\n ...globalSettings\n } = {}) => {\n const events = createNanoEvents();\n let focus = true;\n visibilityChangeSubscribe(() => {\n focus = isAppVisible();\n focus && events.emit(FOCUS);\n });\n reconnectChangeSubscribe(() => events.emit(RECONNECT));\n const _revalidateOnInterval = /* @__PURE__ */ new Map(), _errorInvalidateTimeouts = /* @__PURE__ */ new Map(), _runningFetches = /* @__PURE__ */ new Map();\n let rewrittenSettings = {};\n const getCachedValueByKey = (key) => {\n const fromCache = cache.get(key);\n if (!fromCache)\n return [];\n const cacheHit = (fromCache.expires || 0) > getNow();\n return cacheHit ? [fromCache.data, fromCache.error] : [];\n };\n const runFetcher = async ([key, keyParts], store, settings) => {\n if (!focus)\n return;\n const set = (v) => {\n if (store.key === key) {\n store.set(v);\n events.emit(SET_CACHE, key, v, true);\n }\n };\n const setAsLoading = (prev) => {\n const toSet = prev === void 0 ? {} : { data: prev };\n set({\n ...toSet,\n ...loading,\n promise: _runningFetches.get(key)\n });\n };\n let {\n dedupeTime = 4e3,\n cacheLifetime = Infinity,\n fetcher,\n onErrorRetry = defaultOnErrorRetry\n } = {\n ...settings,\n ...rewrittenSettings\n };\n if (cacheLifetime < dedupeTime)\n cacheLifetime = dedupeTime;\n const now = getNow();\n if (_runningFetches.has(key)) {\n if (!store.value.loading)\n setAsLoading(getCachedValueByKey(key)[0]);\n return;\n }\n let cachedValue, cachedError;\n const fromCache = cache.get(key);\n if (fromCache?.data !== void 0 || fromCache?.error) {\n [cachedValue, cachedError] = getCachedValueByKey(key);\n if ((fromCache.created || 0) + dedupeTime > now) {\n if (store.value.data != cachedValue || store.value.error != cachedError) {\n set({ ...notLoading, data: cachedValue, error: cachedError });\n }\n return;\n }\n }\n const finishTask = startTask();\n try {\n clearTimeout(_errorInvalidateTimeouts.get(key));\n const promise = fetcher(...keyParts);\n _runningFetches.set(key, promise);\n setAsLoading(cachedValue);\n const res = await promise;\n cache.set(key, {\n data: res,\n created: getNow(),\n expires: getNow() + cacheLifetime\n });\n set({ data: res, ...notLoading });\n } catch (error) {\n settings.onError?.(error);\n const retryCount = (cache.get(key)?.retryCount || 0) + 1;\n cache.set(key, {\n error,\n created: getNow(),\n expires: getNow() + cacheLifetime,\n retryCount\n });\n if (onErrorRetry) {\n const timer = onErrorRetry({\n error,\n key,\n retryCount\n });\n if (timer)\n _errorInvalidateTimeouts.set(\n key,\n setTimeout(() => {\n invalidateKeys(key);\n cache.set(key, { retryCount });\n }, timer)\n );\n }\n set({ data: store.value.data, error, ...notLoading });\n } finally {\n finishTask();\n _runningFetches.delete(key);\n }\n };\n const createFetcherStore = (keyInput, {\n fetcher = globalFetcher,\n ...fetcherSettings\n } = {}) => {\n if (process.env.NODE_ENV !== \"production\" && !fetcher) {\n throw new Error(\n \"You need to set up either global fetcher of fetcher in createFetcherStore\"\n );\n }\n const fetcherStore = map({\n ...notLoading\n }), settings = { ...globalSettings, ...fetcherSettings, fetcher };\n fetcherStore._ = fetcherSymbol;\n fetcherStore.invalidate = () => {\n const { key } = fetcherStore;\n if (key) {\n invalidateKeys(key);\n }\n };\n fetcherStore.revalidate = () => {\n const { key } = fetcherStore;\n if (key) {\n revalidateKeys(key);\n }\n };\n fetcherStore.mutate = (data) => {\n const { key } = fetcherStore;\n if (key) {\n mutateCache(key, data);\n }\n };\n fetcherStore.fetch = async () => {\n let resolve;\n const promise = new Promise((r) => resolve = r);\n const unsub = fetcherStore.listen(({ error, data }) => {\n if (error !== void 0)\n resolve({ error });\n if (data !== void 0)\n resolve({ data });\n });\n return promise.finally(unsub);\n };\n let keysInternalUnsub, prevKey, prevKeyParts, keyUnsub, keyStore;\n let evtUnsubs = [];\n onStart(fetcherStore, () => {\n const firstRun = !keysInternalUnsub;\n [keyStore, keysInternalUnsub] = getKeyStore(keyInput);\n keyUnsub = keyStore.subscribe((currentKeys) => {\n if (currentKeys) {\n const [newKey, keyParts] = currentKeys;\n fetcherStore.key = newKey;\n runFetcher([newKey, keyParts], fetcherStore, settings);\n prevKey = newKey;\n prevKeyParts = keyParts;\n } else {\n fetcherStore.key = prevKey = prevKeyParts = void 0;\n fetcherStore.set({ ...notLoading });\n }\n });\n const currentKeyValue = keyStore.get();\n if (currentKeyValue) {\n [prevKey, prevKeyParts] = currentKeyValue;\n if (firstRun)\n handleNewListener();\n }\n const {\n revalidateInterval = 0,\n revalidateOnFocus,\n revalidateOnReconnect\n } = settings;\n const runRefetcher = () => {\n if (prevKey)\n runFetcher([prevKey, prevKeyParts], fetcherStore, settings);\n };\n if (revalidateInterval > 0) {\n _revalidateOnInterval.set(\n keyInput,\n setInterval(runRefetcher, revalidateInterval)\n );\n }\n if (revalidateOnFocus)\n evtUnsubs.push(events.on(FOCUS, runRefetcher));\n if (revalidateOnReconnect)\n evtUnsubs.push(events.on(RECONNECT, runRefetcher));\n const cacheKeyChangeHandler = (keySelector) => {\n if (prevKey && testKeyAgainstSelector(prevKey, keySelector)) {\n runFetcher([prevKey, prevKeyParts], fetcherStore, settings);\n }\n };\n evtUnsubs.push(\n events.on(INVALIDATE_KEYS, cacheKeyChangeHandler),\n events.on(REVALIDATE_KEYS, cacheKeyChangeHandler),\n events.on(SET_CACHE, (keySelector, data, full) => {\n if (prevKey && testKeyAgainstSelector(prevKey, keySelector) && fetcherStore.value !== data && fetcherStore.value.data !== data) {\n fetcherStore.set(\n full ? data : { data, ...notLoading }\n );\n }\n })\n );\n });\n const handleNewListener = () => {\n if (prevKey && prevKeyParts)\n runFetcher([prevKey, prevKeyParts], fetcherStore, settings);\n };\n const originListen = fetcherStore.listen;\n fetcherStore.listen = (listener) => {\n const unsub = originListen(listener);\n listener(fetcherStore.value);\n handleNewListener();\n return unsub;\n };\n onStop(fetcherStore, () => {\n fetcherStore.value = { ...notLoading };\n keysInternalUnsub?.();\n evtUnsubs.forEach((fn) => fn());\n evtUnsubs = [];\n keyUnsub?.();\n clearInterval(_revalidateOnInterval.get(keyInput));\n });\n return fetcherStore;\n };\n const iterOverCache = (keySelector, cb) => {\n for (const key of cache.keys()) {\n if (testKeyAgainstSelector(key, keySelector))\n cb(key);\n }\n };\n const invalidateKeys = (keySelector) => {\n iterOverCache(keySelector, (key) => {\n cache.delete(key);\n });\n events.emit(INVALIDATE_KEYS, keySelector);\n };\n const revalidateKeys = (keySelector) => {\n iterOverCache(keySelector, (key) => {\n const cached = cache.get(key);\n if (cached) {\n cache.set(key, { ...cached, created: -Infinity });\n }\n });\n events.emit(REVALIDATE_KEYS, keySelector);\n };\n const mutateCache = (keySelector, data) => {\n iterOverCache(keySelector, (key) => {\n if (data === void 0)\n cache.delete(key);\n else {\n cache.set(key, {\n data,\n created: getNow(),\n expires: getNow() + (globalSettings.cacheLifetime ?? 8e3)\n });\n }\n });\n events.emit(SET_CACHE, keySelector, data);\n };\n function createMutatorStore(mutator, opts) {\n const { throttleCalls, onError } = opts ?? {\n throttleCalls: true,\n onError: globalSettings?.onError\n };\n const mutate = async (data) => {\n if (throttleCalls && store.value?.loading)\n return;\n const newMutator = rewrittenSettings.fetcher ?? mutator;\n const keysToInvalidate = [], keysToRevalidate = [];\n const safeKeySet = (k, v) => {\n if (store.lc) {\n store.setKey(k, v);\n }\n };\n try {\n store.set({\n error: void 0,\n data: void 0,\n mutate,\n ...loading\n });\n const result = await newMutator({\n data,\n invalidate: (key) => {\n keysToInvalidate.push(key);\n },\n revalidate: (key) => {\n keysToRevalidate.push(key);\n },\n getCacheUpdater: (key, shouldRevalidate = true) => [\n (newVal) => {\n mutateCache(key, newVal);\n if (shouldRevalidate) {\n keysToRevalidate.push(key);\n }\n },\n cache.get(key)?.data\n ]\n });\n safeKeySet(\"data\", result);\n return result;\n } catch (error) {\n onError?.(error);\n safeKeySet(\"error\", error);\n store.setKey(\"error\", error);\n } finally {\n safeKeySet(\"loading\", false);\n keysToInvalidate.forEach(invalidateKeys);\n keysToRevalidate.forEach(revalidateKeys);\n }\n };\n const store = map({\n mutate,\n ...notLoading\n });\n onStop(\n store,\n () => store.set({ mutate, ...notLoading })\n );\n store.mutate = mutate;\n return store;\n }\n const __unsafeOverruleSettings = (data) => {\n if (process.env.NODE_ENV !== \"test\") {\n console.warn(\n `You should only use __unsafeOverruleSettings in test environment`\n );\n }\n rewrittenSettings = data;\n };\n return [\n createFetcherStore,\n createMutatorStore,\n { __unsafeOverruleSettings, invalidateKeys, revalidateKeys, mutateCache }\n ];\n };\n function isSomeKey(key) {\n return typeof key === \"string\" || typeof key === \"number\" || key === true;\n }\n const getKeyStore = (keys) => {\n if (isSomeKey(keys))\n return [\n atom([\"\" + keys, [keys]]),\n () => {\n }\n ];\n const keyParts = [];\n const $key = atom(null);\n const keysAsStoresToIndexes = /* @__PURE__ */ new Map();\n const setKeyStoreValue = () => {\n if (keyParts.some((v) => v === null || v === void 0 || v === false)) {\n $key.set(null);\n } else {\n $key.set([keyParts.join(\"\"), keyParts]);\n }\n };\n for (let i = 0; i < keys.length; i++) {\n const keyOrStore = keys[i];\n if (isSomeKey(keyOrStore)) {\n keyParts.push(keyOrStore);\n } else {\n keyParts.push(null);\n keysAsStoresToIndexes.set(keyOrStore, i);\n }\n }\n const storesAsArray = [...keysAsStoresToIndexes.keys()];\n const $storeKeys = batched(storesAsArray, (...storeValues) => {\n for (let i = 0; i < storeValues.length; i++) {\n const store = storesAsArray[i], partIndex = keysAsStoresToIndexes.get(store);\n keyParts[partIndex] = store._ === fetcherSymbol ? store.value && \"data\" in store.value ? store.key : null : storeValues[i];\n }\n setKeyStoreValue();\n });\n setKeyStoreValue();\n return [$key, $storeKeys.subscribe(noop)];\n };\n function noop() {\n }\n const FOCUS = 1, RECONNECT = 2, INVALIDATE_KEYS = 3, REVALIDATE_KEYS = 4, SET_CACHE = 5;\n const testKeyAgainstSelector = (key, selector) => {\n if (Array.isArray(selector))\n return selector.includes(key);\n else if (typeof selector === \"function\")\n return selector(key);\n else\n return key === selector;\n };\n const getNow = () => (/* @__PURE__ */ new Date()).getTime();\n const fetcherSymbol = Symbol();\n const loading = { loading: true }, notLoading = { loading: false };\n return nanoquery;\n};\n\nconst subscribe = (name, fn) => {\n const isServer = typeof window === \"undefined\";\n if (!isServer) {\n addEventListener(name, fn);\n }\n};\nconst browserCompat = [\n () => !document.hidden,\n (cb) => subscribe(\"visibilitychange\", cb),\n (cb) => subscribe(\"online\", cb)\n];\n\nconst nanoquery = nanoqueryFactory(browserCompat);\n\nexport { nanoquery, defaultOnErrorRetry as onErrorRetry };\n","import { a as RequestOutputContext, o as RequestInputContext, r as resolveRouteFactories, s as getMountRoute } from \"./route-B4RbOWjd.js\";\nimport { a as getInitialData, n as addStore, t as SSR_ENABLED } from \"./ssr-CamRrMc0.js\";\nimport { task } from \"nanostores\";\nimport { nanoquery } from \"@nanostores/query\";\n\n//#region src/api/internal/path.ts\n/**\n* Extract parameter names from a path pattern at runtime.\n* Examples:\n* - \"/users/:id\" => [\"id\"]\n* - \"/files/**\" => [\"**\"]\n* - \"/files/**:rest\" => [\"rest\"]\n*/\nfunction extractPathParams(pathPattern) {\n\tconst segments = pathPattern.split(\"/\").filter((s) => s.length > 0);\n\tconst names = [];\n\tfor (const segment of segments) {\n\t\tif (segment.startsWith(\":\")) {\n\t\t\tnames.push(segment.slice(1));\n\t\t\tcontinue;\n\t\t}\n\t\tif (segment === \"**\") {\n\t\t\tnames.push(\"**\");\n\t\t\tcontinue;\n\t\t}\n\t\tif (segment.startsWith(\"**:\")) {\n\t\t\tnames.push(segment.slice(3));\n\t\t\tcontinue;\n\t\t}\n\t}\n\treturn names;\n}\n/**\n* Build a concrete path by replacing placeholders in a path pattern with values.\n*\n* Supports the same placeholder syntax as the matcher:\n* - Named parameter \":name\" is URL-encoded as a single segment\n* - Anonymous wildcard \"**\" inserts the remainder as-is (slashes preserved)\n* - Named wildcard \"**:name\" inserts the remainder from the named key\n*\n* Examples:\n* - buildPath(\"/users/:id\", { id: \"123\" }) => \"/users/123\"\n* - buildPath(\"/files/**\", { \"**\": \"a/b\" }) => \"/files/a/b\"\n* - buildPath(\"/files/**:rest\", { rest: \"a/b\" }) => \"/files/a/b\"\n*/\nfunction buildPath(pathPattern, params) {\n\tconst patternSegments = pathPattern.split(\"/\");\n\tconst builtSegments = [];\n\tfor (const segment of patternSegments) {\n\t\tif (segment.length === 0) {\n\t\t\tbuiltSegments.push(\"\");\n\t\t\tcontinue;\n\t\t}\n\t\tif (segment.startsWith(\":\")) {\n\t\t\tconst name = segment.slice(1);\n\t\t\tconst value = params[name];\n\t\t\tif (value === void 0) throw new Error(`Missing value for path parameter :${name}`);\n\t\t\tbuiltSegments.push(encodeURIComponent(value));\n\t\t\tcontinue;\n\t\t}\n\t\tif (segment === \"**\") {\n\t\t\tconst value = params[\"**\"];\n\t\t\tif (value === void 0) throw new Error(\"Missing value for path wildcard **\");\n\t\t\tbuiltSegments.push(value);\n\t\t\tcontinue;\n\t\t}\n\t\tif (segment.startsWith(\"**:\")) {\n\t\t\tconst name = segment.slice(3);\n\t\t\tconst value = params[name];\n\t\t\tif (value === void 0) throw new Error(`Missing value for path wildcard **:${name}`);\n\t\t\tbuiltSegments.push(value);\n\t\t\tcontinue;\n\t\t}\n\t\tbuiltSegments.push(segment);\n\t}\n\treturn builtSegments.join(\"/\");\n}\n\n//#endregion\n//#region src/client/client-error.ts\n/**\n* Base error class for all Fragno client errors.\n*/\nvar FragnoClientError = class extends Error {\n\t#code;\n\tconstructor(message, code, options = {}) {\n\t\tsuper(message, { cause: options.cause });\n\t\tthis.name = \"FragnoClientError\";\n\t\tthis.#code = code;\n\t}\n\tget code() {\n\t\treturn this.#code;\n\t}\n};\nvar FragnoClientFetchError = class extends FragnoClientError {\n\tconstructor(message, code, options = {}) {\n\t\tsuper(message, code, options);\n\t\tthis.name = \"FragnoClientFetchError\";\n\t}\n\tstatic fromUnknownFetchError(error) {\n\t\tif (!(error instanceof Error)) return new FragnoClientFetchNetworkError(\"Network request failed\", { cause: error });\n\t\tif (error.name === \"AbortError\") return new FragnoClientFetchAbortError(\"Request was aborted\", { cause: error });\n\t\treturn new FragnoClientFetchNetworkError(\"Network request failed\", { cause: error });\n\t}\n};\n/**\n* Error thrown when a network request fails (e.g., no internet connection, DNS failure).\n*/\nvar FragnoClientFetchNetworkError = class extends FragnoClientFetchError {\n\tconstructor(message = \"Network request failed\", options = {}) {\n\t\tsuper(message, \"NETWORK_ERROR\", options);\n\t\tthis.name = \"FragnoClientFetchNetworkError\";\n\t}\n};\n/**\n* Error thrown when a request is aborted (e.g., user cancels request, timeout).\n*/\nvar FragnoClientFetchAbortError = class extends FragnoClientFetchError {\n\tconstructor(message = \"Request was aborted\", options = {}) {\n\t\tsuper(message, \"ABORT_ERROR\", options);\n\t\tthis.name = \"FragnoClientFetchAbortError\";\n\t}\n};\n/**\n* Error thrown when the API result is unexpected, e.g. no json is returned.\n*/\nvar FragnoClientUnknownApiError = class extends FragnoClientError {\n\t#status;\n\tconstructor(message = \"Unknown API error\", status, options = {}) {\n\t\tsuper(message, \"UNKNOWN_API_ERROR\", options);\n\t\tthis.name = \"FragnoClientUnknownApiError\";\n\t\tthis.#status = status;\n\t}\n\tget status() {\n\t\treturn this.#status;\n\t}\n};\nvar FragnoClientApiError = class FragnoClientApiError extends FragnoClientError {\n\t#status;\n\tconstructor({ message, code }, status, options = {}) {\n\t\tsuper(message, code, options);\n\t\tthis.name = \"FragnoClientApiError\";\n\t\tthis.#status = status;\n\t}\n\tget status() {\n\t\treturn this.#status;\n\t}\n\t/**\n\t* The error code returned by the API.\n\t*\n\t* The type is `TErrorCode` (the set of known error codes for this route), but may also be a string\n\t* for forward compatibility with future error codes.\n\t*/\n\tget code() {\n\t\treturn super.code;\n\t}\n\tstatic async fromResponse(response) {\n\t\tconst unknown = await response.json();\n\t\tconst status = response.status;\n\t\tif (!(\"message\" in unknown || \"code\" in unknown)) return new FragnoClientUnknownApiError(\"Unknown API error\", status);\n\t\tif (!(typeof unknown.message === \"string\" && typeof unknown.code === \"string\")) return new FragnoClientUnknownApiError(\"Unknown API error\", status);\n\t\treturn new FragnoClientApiError({\n\t\t\tmessage: unknown.message,\n\t\t\tcode: unknown.code\n\t\t}, status);\n\t}\n};\n\n//#endregion\n//#region src/util/content-type.ts\n/**\n* Parses a content-type header string into its components\n*\n* @param contentType - The content-type header value to parse\n* @returns A ParsedContentType object or null if the input is invalid\n*\n* @example\n* ```ts\n* const { type, subtype, mediaType, parameters }\n* = parseContentType(\"application/json; charset=utf-8\");\n* console.assert(type === \"application\");\n* console.assert(subtype === \"json\");\n* console.assert(mediaType === \"application/json\");\n* console.assert(parameters[\"charset\"] === \"utf-8\");\n*/\nfunction parseContentType(contentType) {\n\tif (!contentType || typeof contentType !== \"string\") return null;\n\tconst trimmed = contentType.trim();\n\tif (!trimmed) return null;\n\tconst parts = trimmed.split(\";\").map((part) => part.trim());\n\tconst mediaType = parts[0];\n\tif (!mediaType) return null;\n\tconst typeParts = mediaType.split(\"/\");\n\tif (typeParts.length !== 2) return null;\n\tconst [type, subtype] = typeParts.map((part) => part.trim().toLowerCase());\n\tif (!type || !subtype) return null;\n\tconst parameters = {};\n\tfor (let i = 1; i < parts.length; i++) {\n\t\tconst param = parts[i];\n\t\tconst equalIndex = param.indexOf(\"=\");\n\t\tif (equalIndex > 0) {\n\t\t\tconst key = param.slice(0, equalIndex).trim().toLowerCase();\n\t\t\tlet value = param.slice(equalIndex + 1).trim();\n\t\t\tif (value.startsWith(\"\\\"\") && value.endsWith(\"\\\"\")) value = value.slice(1, -1);\n\t\t\tif (key) parameters[key] = value;\n\t\t}\n\t}\n\treturn {\n\t\ttype,\n\t\tsubtype,\n\t\tmediaType: `${type}/${subtype}`,\n\t\tparameters\n\t};\n}\n\n//#endregion\n//#region src/client/internal/ndjson-streaming.ts\n/**\n* Creates a promise that rejects when the abort signal is triggered\n*/\nfunction createAbortPromise(abortSignal) {\n\treturn new Promise((_, reject) => {\n\t\tconst abortHandler = () => {\n\t\t\treject(new FragnoClientFetchAbortError(\"Operation was aborted\"));\n\t\t};\n\t\tif (abortSignal.aborted) abortHandler();\n\t\telse abortSignal.addEventListener(\"abort\", abortHandler, { once: true });\n\t});\n}\n/**\n* Handles NDJSON streaming responses by returning the first item from the fetcher\n* and then continuing to stream updates via the store's mutate method.\n*\n* This makes it so that we can wait until the first chunk before updating the store, if we did\n* not do this, `loading` would briefly be false before the first item would be populated in the\n* result.\n*\n* @param response - The fetch Response object containing the NDJSON stream\n* @param store - The fetcher store to update with streaming data\n* @param abortSignal - Optional AbortSignal to cancel the streaming operation\n* @returns A promise that resolves to an object containing the first item and a streaming promise\n*/\nasync function handleNdjsonStreamingFirstItem(response, store, options = {}) {\n\tif (!response.body) throw new FragnoClientFetchError(\"Streaming response has no body\", \"NO_BODY\");\n\tconst { abortSignal } = options;\n\tif (abortSignal?.aborted) throw new FragnoClientFetchAbortError(\"Operation was aborted\");\n\tconst decoder = new TextDecoder();\n\tconst reader = response.body.getReader();\n\tlet buffer = \"\";\n\tlet firstItem = null;\n\tconst items = [];\n\ttry {\n\t\twhile (firstItem === null) {\n\t\t\tif (abortSignal?.aborted) {\n\t\t\t\treader.releaseLock();\n\t\t\t\tthrow new FragnoClientFetchAbortError(\"Operation was aborted\");\n\t\t\t}\n\t\t\tconst { done, value } = await (abortSignal ? Promise.race([reader.read(), createAbortPromise(abortSignal)]) : reader.read());\n\t\t\tif (done) break;\n\t\t\tbuffer += decoder.decode(value, { stream: true });\n\t\t\tconst lines = buffer.split(\"\\n\");\n\t\t\tbuffer = lines.pop() || \"\";\n\t\t\tfor (const line of lines) {\n\t\t\t\tif (!line.trim()) continue;\n\t\t\t\ttry {\n\t\t\t\t\tconst jsonObject = JSON.parse(line);\n\t\t\t\t\titems.push(jsonObject);\n\t\t\t\t\tif (firstItem === null) {\n\t\t\t\t\t\tfirstItem = jsonObject;\n\t\t\t\t\t\tconst streamingPromise = continueStreaming(reader, decoder, buffer, items, store, abortSignal);\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tfirstItem,\n\t\t\t\t\t\t\tstreamingPromise\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t} catch (parseError) {\n\t\t\t\t\tthrow new FragnoClientUnknownApiError(\"Failed to parse NDJSON line\", 500, { cause: parseError });\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (firstItem === null) {\n\t\t\treader.releaseLock();\n\t\t\tthrow new FragnoClientUnknownApiError(\"NDJSON stream contained no valid items\", 500);\n\t\t}\n\t\treader.releaseLock();\n\t\tthrow new FragnoClientFetchError(\"Unexpected end of stream processing\", \"NO_BODY\");\n\t} catch (error) {\n\t\tif (error instanceof FragnoClientError) {\n\t\t\tstore?.setError(error);\n\t\t\tthrow error;\n\t\t} else {\n\t\t\tconst clientError = new FragnoClientUnknownApiError(\"Unknown streaming error\", 500, { cause: error });\n\t\t\tstore?.setError(clientError);\n\t\t\tthrow clientError;\n\t\t}\n\t}\n}\n/**\n* Continues streaming the remaining items in the background\n*/\nasync function continueStreaming(reader, decoder, initialBuffer, items, store, abortSignal) {\n\tlet buffer = initialBuffer;\n\ttry {\n\t\twhile (true) {\n\t\t\tif (abortSignal?.aborted) throw new FragnoClientFetchAbortError(\"Operation was aborted\");\n\t\t\tconst { done, value } = await (abortSignal ? Promise.race([reader.read(), createAbortPromise(abortSignal)]) : reader.read());\n\t\t\tif (done) {\n\t\t\t\tif (buffer.trim()) {\n\t\t\t\t\tconst lines$1 = buffer.split(\"\\n\");\n\t\t\t\t\tfor (const line of lines$1) {\n\t\t\t\t\t\tif (!line.trim()) continue;\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tconst jsonObject = JSON.parse(line);\n\t\t\t\t\t\t\titems.push(jsonObject);\n\t\t\t\t\t\t\tstore?.setData([...items]);\n\t\t\t\t\t\t} catch (parseError) {\n\t\t\t\t\t\t\tthrow new FragnoClientUnknownApiError(\"Failed to parse NDJSON line\", 400, { cause: parseError });\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tbuffer += decoder.decode(value, { stream: true });\n\t\t\tconst lines = buffer.split(\"\\n\");\n\t\t\tbuffer = lines.pop() || \"\";\n\t\t\tfor (const line of lines) {\n\t\t\t\tif (!line.trim()) continue;\n\t\t\t\ttry {\n\t\t\t\t\tconst jsonObject = JSON.parse(line);\n\t\t\t\t\titems.push(jsonObject);\n\t\t\t\t\tstore?.setData([...items]);\n\t\t\t\t} catch (parseError) {\n\t\t\t\t\tthrow new FragnoClientUnknownApiError(\"Failed to parse NDJSON line\", 400, { cause: parseError });\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t} catch (error) {\n\t\tif (error instanceof FragnoClientError) store?.setError(error);\n\t\telse {\n\t\t\tconst clientError = new FragnoClientUnknownApiError(\"Unknown streaming error\", 400, { cause: error });\n\t\t\tstore?.setError(clientError);\n\t\t\tthrow clientError;\n\t\t}\n\t\tthrow error;\n\t} finally {\n\t\treader.releaseLock();\n\t}\n\treturn items;\n}\n\n//#endregion\n//#region src/util/nanostores.ts\n/**\n* Normalizes a value that could be a plain value, an Atom, or a Vue Ref to a plain value.\n*/\nfunction unwrapAtom(value) {\n\tif (value && typeof value === \"object\" && \"get\" in value && typeof value.get === \"function\") return value.get();\n\treturn value;\n}\n/**\n* Normalizes an object where values can be plain values, Atoms, or Vue Refs.\n* Returns a new object with all values normalized to plain values.\n*/\nfunction unwrapObject(params) {\n\tif (!params) return;\n\treturn Object.fromEntries(Object.entries(params).map(([key, value]) => [key, unwrapAtom(value)]));\n}\nfunction isReadableAtom(value) {\n\tif (!value) return false;\n\tif (typeof value !== \"object\" || value === null) return false;\n\tif (!(\"get\" in value) || typeof value.get !== \"function\") return false;\n\tif (!(\"lc\" in value) || typeof value.lc !== \"number\") return false;\n\tif (!(\"notify\" in value) || typeof value.notify !== \"function\") return false;\n\tif (!(\"off\" in value) || typeof value.off !== \"function\") return false;\n\tif (!(\"subscribe\" in value) || typeof value.subscribe !== \"function\") return false;\n\tif (!(\"value\" in value)) return false;\n\treturn true;\n}\n\n//#endregion\n//#region src/client/client.ts\n/**\n* Symbols used to identify hook types\n*/\nconst GET_HOOK_SYMBOL = Symbol(\"fragno-get-hook\");\nconst MUTATOR_HOOK_SYMBOL = Symbol(\"fragno-mutator-hook\");\nconst STORE_SYMBOL = Symbol(\"fragno-store\");\nfunction buildUrl(config, params) {\n\tconst { baseUrl = \"\", mountRoute, path } = config;\n\tconst { pathParams, queryParams } = params ?? {};\n\tconst normalizedPathParams = unwrapObject(pathParams);\n\tconst normalizedQueryParams = unwrapObject(queryParams) ?? {};\n\tconst searchParams = new URLSearchParams(normalizedQueryParams);\n\treturn `${baseUrl}${mountRoute}${buildPath(path, normalizedPathParams ?? {})}${searchParams.toString() ? `?${searchParams.toString()}` : \"\"}`;\n}\n/**\n* This method returns an array, which can be passed directly to nanostores.\n*\n* The returned array is always: path, pathParams (In order they appear in the path), queryParams (In alphabetical order)\n* Missing pathParams are replaced with \"<missing>\".\n* @param path\n* @param params\n* @returns\n*/\nfunction getCacheKey(method, path, params) {\n\tif (!params) return [method, path];\n\tconst { pathParams, queryParams } = params;\n\tconst pathParamValues = extractPathParams(path).map((name) => pathParams?.[name] ?? \"<missing>\");\n\tconst queryParamValues = queryParams ? Object.keys(queryParams).sort().map((key) => queryParams[key]) : [];\n\treturn [\n\t\tmethod,\n\t\tpath,\n\t\t...pathParamValues,\n\t\t...queryParamValues\n\t];\n}\nfunction isStreamingResponse(response) {\n\tconst contentType = parseContentType(response.headers.get(\"content-type\"));\n\tif (!contentType) return false;\n\tif (!(response.headers.get(\"transfer-encoding\") === \"chunked\")) return false;\n\tif (contentType.subtype === \"octet-stream\") return \"octet-stream\";\n\tif (contentType.subtype === \"x-ndjson\") return \"ndjson\";\n\treturn false;\n}\nfunction isGetHook(hook) {\n\treturn typeof hook === \"object\" && hook !== null && GET_HOOK_SYMBOL in hook && hook[GET_HOOK_SYMBOL] === true;\n}\nfunction isMutatorHook(hook) {\n\treturn typeof hook === \"object\" && hook !== null && MUTATOR_HOOK_SYMBOL in hook && hook[MUTATOR_HOOK_SYMBOL] === true;\n}\nfunction isStore(obj) {\n\treturn typeof obj === \"object\" && obj !== null && STORE_SYMBOL in obj && obj[STORE_SYMBOL] === true;\n}\nvar ClientBuilder = class {\n\t#publicConfig;\n\t#fragmentConfig;\n\t#cache = /* @__PURE__ */ new Map();\n\t#createFetcherStore;\n\t#createMutatorStore;\n\t#invalidateKeys;\n\tconstructor(publicConfig, fragmentConfig) {\n\t\tthis.#publicConfig = publicConfig;\n\t\tthis.#fragmentConfig = fragmentConfig;\n\t\tconst [createFetcherStore, createMutatorStore, { invalidateKeys }] = nanoquery({ cache: this.#cache });\n\t\tthis.#createFetcherStore = createFetcherStore;\n\t\tthis.#createMutatorStore = createMutatorStore;\n\t\tthis.#invalidateKeys = invalidateKeys;\n\t}\n\tget cacheEntries() {\n\t\treturn Object.fromEntries(this.#cache.entries());\n\t}\n\tcreateStore(obj) {\n\t\treturn {\n\t\t\tobj,\n\t\t\t[STORE_SYMBOL]: true\n\t\t};\n\t}\n\tcreateHook(path, options) {\n\t\tconst route = this.#fragmentConfig.routes.find((r) => r.path === path && r.method === \"GET\" && r.outputSchema !== void 0);\n\t\tif (!route) throw new Error(`Route '${path}' not found or is not a GET route with an output schema.`);\n\t\treturn this.#createRouteQueryHook(route, options);\n\t}\n\tcreateMutator(method, path, onInvalidate) {\n\t\tconst route = this.#fragmentConfig.routes.find((r) => r.method !== \"GET\" && r.path === path && r.method === method);\n\t\tif (!route) throw new Error(`Route '${path}' not found or is a GET route with an input and output schema.`);\n\t\treturn this.#createRouteQueryMutator(route, onInvalidate);\n\t}\n\t#createRouteQueryHook(route, options = {}) {\n\t\tif (route.method !== \"GET\") throw new Error(`Only GET routes are supported for hooks. Route '${route.path}' is a ${route.method} route.`);\n\t\tif (!route.outputSchema) throw new Error(`Output schema is required for GET routes. Route '${route.path}' has no output schema.`);\n\t\tconst baseUrl = this.#publicConfig.baseUrl ?? \"\";\n\t\tconst mountRoute = getMountRoute(this.#fragmentConfig);\n\t\tasync function callServerSideHandler(params) {\n\t\t\tconst { pathParams, queryParams } = params ?? {};\n\t\t\tconst normalizedPathParams = unwrapObject(pathParams);\n\t\t\tconst normalizedQueryParams = unwrapObject(queryParams) ?? {};\n\t\t\tconst searchParams = new URLSearchParams(normalizedQueryParams);\n\t\t\treturn await route.handler(RequestInputContext.fromSSRContext({\n\t\t\t\tmethod: route.method,\n\t\t\t\tpath: route.path,\n\t\t\t\tpathParams: normalizedPathParams,\n\t\t\t\tsearchParams\n\t\t\t}), new RequestOutputContext(route.outputSchema));\n\t\t}\n\t\tasync function executeQuery(params) {\n\t\t\tconst { pathParams, queryParams } = params ?? {};\n\t\t\tif (typeof window === \"undefined\") return task(async () => callServerSideHandler({\n\t\t\t\tpathParams,\n\t\t\t\tqueryParams\n\t\t\t}));\n\t\t\tconst url = buildUrl({\n\t\t\t\tbaseUrl,\n\t\t\t\tmountRoute,\n\t\t\t\tpath: route.path\n\t\t\t}, {\n\t\t\t\tpathParams,\n\t\t\t\tqueryParams\n\t\t\t});\n\t\t\tlet response;\n\t\t\ttry {\n\t\t\t\tresponse = await fetch(url);\n\t\t\t} catch (error) {\n\t\t\t\tthrow FragnoClientFetchError.fromUnknownFetchError(error);\n\t\t\t}\n\t\t\tif (!response.ok) throw await FragnoClientApiError.fromResponse(response);\n\t\t\treturn response;\n\t\t}\n\t\treturn {\n\t\t\troute,\n\t\t\tstore: (args) => {\n\t\t\t\tconst { path, query } = args ?? {};\n\t\t\t\tconst key = getCacheKey(route.method, route.path, {\n\t\t\t\t\tpathParams: path,\n\t\t\t\t\tqueryParams: query\n\t\t\t\t});\n\t\t\t\tconst store = this.#createFetcherStore(key, {\n\t\t\t\t\tfetcher: async () => {\n\t\t\t\t\t\tif (SSR_ENABLED) {\n\t\t\t\t\t\t\tconst initialData = getInitialData(key.map((d) => typeof d === \"string\" ? d : d.get()).join(\"\"));\n\t\t\t\t\t\t\tif (initialData) return initialData;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst response = await executeQuery({\n\t\t\t\t\t\t\tpathParams: path,\n\t\t\t\t\t\t\tqueryParams: query\n\t\t\t\t\t\t});\n\t\t\t\t\t\tconst isStreaming = isStreamingResponse(response);\n\t\t\t\t\t\tif (!isStreaming) return response.json();\n\t\t\t\t\t\tif (typeof window === \"undefined\") return [];\n\t\t\t\t\t\tif (isStreaming === \"ndjson\") {\n\t\t\t\t\t\t\tconst { firstItem } = await handleNdjsonStreamingFirstItem(response, {\n\t\t\t\t\t\t\t\tsetData: (value) => {\n\t\t\t\t\t\t\t\t\tstore.set({\n\t\t\t\t\t\t\t\t\t\t...store.get(),\n\t\t\t\t\t\t\t\t\t\tloading: !(Array.isArray(value) && value.length > 0),\n\t\t\t\t\t\t\t\t\t\tdata: value\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tsetError: (value) => {\n\t\t\t\t\t\t\t\t\tstore.set({\n\t\t\t\t\t\t\t\t\t\t...store.get(),\n\t\t\t\t\t\t\t\t\t\terror: value\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\treturn [firstItem];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (isStreaming === \"octet-stream\") throw new Error(\"Octet-stream streaming is not supported.\");\n\t\t\t\t\t\tthrow new Error(\"Unreachable\");\n\t\t\t\t\t},\n\t\t\t\t\tonErrorRetry: options?.onErrorRetry,\n\t\t\t\t\tdedupeTime: Infinity\n\t\t\t\t});\n\t\t\t\tif (typeof window === \"undefined\") addStore(store);\n\t\t\t\treturn store;\n\t\t\t},\n\t\t\tquery: async (args) => {\n\t\t\t\tconst { path, query } = args ?? {};\n\t\t\t\tconst response = await executeQuery({\n\t\t\t\t\tpathParams: path,\n\t\t\t\t\tqueryParams: query\n\t\t\t\t});\n\t\t\t\tconst isStreaming = isStreamingResponse(response);\n\t\t\t\tif (!isStreaming) return await response.json();\n\t\t\t\tif (isStreaming === \"ndjson\") {\n\t\t\t\t\tconst { streamingPromise } = await handleNdjsonStreamingFirstItem(response);\n\t\t\t\t\treturn await streamingPromise;\n\t\t\t\t}\n\t\t\t\tif (isStreaming === \"octet-stream\") throw new Error(\"Octet-stream streaming is not supported.\");\n\t\t\t\tthrow new Error(\"Unreachable\");\n\t\t\t},\n\t\t\t[GET_HOOK_SYMBOL]: true\n\t\t};\n\t}\n\t#createRouteQueryMutator(route, onInvalidate = (invalidate, params) => invalidate(\"GET\", route.path, params)) {\n\t\tconst method = route.method;\n\t\tconst baseUrl = this.#publicConfig.baseUrl ?? \"\";\n\t\tconst mountRoute = getMountRoute(this.#fragmentConfig);\n\t\tasync function executeMutateQuery({ body, path, query }) {\n\t\t\tif (typeof window === \"undefined\") return task(async () => route.handler(RequestInputContext.fromSSRContext({\n\t\t\t\tinputSchema: route.inputSchema,\n\t\t\t\tmethod,\n\t\t\t\tpath: route.path,\n\t\t\t\tpathParams: path ?? {},\n\t\t\t\tsearchParams: new URLSearchParams(query),\n\t\t\t\tbody\n\t\t\t}), new RequestOutputContext(route.outputSchema)));\n\t\t\tconst url = buildUrl({\n\t\t\t\tbaseUrl,\n\t\t\t\tmountRoute,\n\t\t\t\tpath: route.path\n\t\t\t}, {\n\t\t\t\tpathParams: path,\n\t\t\t\tqueryParams: query\n\t\t\t});\n\t\t\tlet response;\n\t\t\ttry {\n\t\t\t\tresponse = await fetch(url, {\n\t\t\t\t\tmethod,\n\t\t\t\t\tbody: body !== void 0 ? JSON.stringify(body) : void 0\n\t\t\t\t});\n\t\t\t} catch (error) {\n\t\t\t\tthrow FragnoClientFetchError.fromUnknownFetchError(error);\n\t\t\t}\n\t\t\tif (!response.ok) throw await FragnoClientApiError.fromResponse(response);\n\t\t\treturn response;\n\t\t}\n\t\tconst mutatorStore = this.#createMutatorStore(async ({ data }) => {\n\t\t\tif (typeof window === \"undefined\") {}\n\t\t\tconst { body, path, query } = data;\n\t\t\tif (typeof body === \"undefined\" && route.inputSchema !== void 0) throw new Error(\"Body is required.\");\n\t\t\tconst response = await executeMutateQuery({\n\t\t\t\tbody,\n\t\t\t\tpath,\n\t\t\t\tquery\n\t\t\t});\n\t\t\tonInvalidate(this.#invalidate.bind(this), {\n\t\t\t\tpathParams: path ?? {},\n\t\t\t\tqueryParams: query\n\t\t\t});\n\t\t\tif (response.status === 201 || response.status === 204) return;\n\t\t\tconst isStreaming = isStreamingResponse(response);\n\t\t\tif (!isStreaming) return response.json();\n\t\t\tif (typeof window === \"undefined\") return [];\n\t\t\tif (isStreaming === \"ndjson\") {\n\t\t\t\tconst { firstItem } = await handleNdjsonStreamingFirstItem(response, {\n\t\t\t\t\tsetData: (value) => {\n\t\t\t\t\t\tmutatorStore.set({\n\t\t\t\t\t\t\t...mutatorStore.get(),\n\t\t\t\t\t\t\tloading: !(Array.isArray(value) && value.length > 0),\n\t\t\t\t\t\t\tdata: value\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t\tsetError: (value) => {\n\t\t\t\t\t\tmutatorStore.set({\n\t\t\t\t\t\t\t...mutatorStore.get(),\n\t\t\t\t\t\t\terror: value\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\treturn [firstItem];\n\t\t\t}\n\t\t\tif (isStreaming === \"octet-stream\") throw new Error(\"Octet-stream streaming is not supported.\");\n\t\t\tthrow new Error(\"Unreachable\");\n\t\t}, { onError: (error) => {\n\t\t\tconsole.error(\"Error in mutatorStore\", error);\n\t\t} });\n\t\tconst mutateQuery = (async (data) => {\n\t\t\tconst { body, path, query } = data;\n\t\t\tif (typeof body === \"undefined\" && route.inputSchema !== void 0) throw new Error(\"Body is required for mutateQuery\");\n\t\t\tconst response = await executeMutateQuery({\n\t\t\t\tbody,\n\t\t\t\tpath,\n\t\t\t\tquery\n\t\t\t});\n\t\t\tif (response.status === 201 || response.status === 204) return;\n\t\t\tconst isStreaming = isStreamingResponse(response);\n\t\t\tif (!isStreaming) return response.json();\n\t\t\tif (isStreaming === \"ndjson\") {\n\t\t\t\tconst { streamingPromise } = await handleNdjsonStreamingFirstItem(response);\n\t\t\t\treturn await streamingPromise;\n\t\t\t}\n\t\t\tif (isStreaming === \"octet-stream\") throw new Error(\"Octet-stream streaming is not supported for mutations\");\n\t\t\tthrow new Error(\"Unreachable\");\n\t\t});\n\t\treturn {\n\t\t\troute,\n\t\t\tmutateQuery,\n\t\t\tmutatorStore,\n\t\t\t[MUTATOR_HOOK_SYMBOL]: true\n\t\t};\n\t}\n\t#invalidate(method, path, params) {\n\t\tconst prefix = getCacheKey(method, path, {\n\t\t\tpathParams: params?.pathParams,\n\t\t\tqueryParams: params?.queryParams\n\t\t}).map((k) => typeof k === \"string\" ? k : k.get()).join(\"\");\n\t\tthis.#invalidateKeys((key) => key.startsWith(prefix));\n\t}\n};\nfunction createClientBuilder(fragmentBuilder, publicConfig, routesOrFactories) {\n\tconst definition = fragmentBuilder.definition;\n\tconst routes = resolveRouteFactories({\n\t\tconfig: {},\n\t\tdeps: {},\n\t\tservices: {}\n\t}, routesOrFactories);\n\tconst fragmentConfig = {\n\t\tname: definition.name,\n\t\troutes\n\t};\n\tconst mountRoute = publicConfig.mountRoute ?? `/${definition.name}`;\n\treturn new ClientBuilder({\n\t\t...publicConfig,\n\t\tmountRoute\n\t}, fragmentConfig);\n}\n\n//#endregion\nexport { isGetHook as a, isReadableAtom as c, FragnoClientFetchAbortError as d, FragnoClientFetchError as f, getCacheKey as i, FragnoClientApiError as l, FragnoClientUnknownApiError as m, buildUrl as n, isMutatorHook as o, FragnoClientFetchNetworkError as p, createClientBuilder as r, isStore as s, ClientBuilder as t, FragnoClientError as u };\n//# sourceMappingURL=client-D5ORmjBP.js.map","import {\n defineFragment,\n defineRoute,\n defineRoutes,\n createFragment,\n type FragnoPublicClientConfig,\n type FragnoPublicConfig,\n} from \"@fragno-dev/core\";\nimport { createClientBuilder } from \"@fragno-dev/core/client\";\nimport { z } from \"zod\";\n\nimport { readFile } from \"node:fs/promises\";\nimport { platform } from \"node:os\";\nimport { createHash } from \"node:crypto\";\n\nexport interface ExampleFragmentServerConfig {\n initialData?: string;\n}\n\ntype ExampleRouteConfig = {\n initialData: string;\n};\n\ntype ExampleRouteDeps = {\n serverSideData: { value: string };\n};\n\nconst getHashFromHostsFileData = async () => {\n const hostsPath =\n platform() === \"win32\" ? \"C:\\\\Windows\\\\System32\\\\drivers\\\\etc\\\\hosts\" : \"/etc/hosts\";\n\n try {\n const data = await readFile(hostsPath, { encoding: \"utf8\" });\n return createHash(\"sha256\").update(data).digest(\"hex\");\n } catch {\n return null;\n }\n};\n\nconst exampleRoutesFactory = defineRoutes<ExampleRouteConfig, ExampleRouteDeps>().create(\n ({ deps }) => {\n const { serverSideData } = deps;\n\n return [\n defineRoute({\n method: \"GET\",\n path: \"/hash\",\n outputSchema: z.string(),\n handler: async (_, { json }) => {\n const hash = await getHashFromHostsFileData();\n return json(hash ? `The hash of your 'hosts' file is: ${hash}` : \"No hash found :(\");\n },\n }),\n\n defineRoute({\n method: \"GET\",\n path: \"/data\",\n outputSchema: z.string(),\n queryParameters: [\"error\"],\n handler: async ({ query }, { json, error }) => {\n if (query.get(\"error\")) {\n return error(\n {\n message: \"An error was triggered\",\n code: \"TEST_ERROR\",\n },\n 400,\n );\n }\n return json(serverSideData.value);\n },\n }),\n\n defineRoute({\n method: \"POST\",\n path: \"/sample\",\n inputSchema: z.object({ message: z.string() }),\n outputSchema: z.string(),\n errorCodes: [\"MESSAGE_CANNOT_BE_DIGITS_ONLY\"],\n handler: async ({ input }, { json, error }) => {\n const { message } = await input.valid();\n\n if (/^\\d+$/.test(message)) {\n return error(\n {\n message: \"Message cannot be digits only\",\n code: \"MESSAGE_CANNOT_BE_DIGITS_ONLY\",\n },\n 400,\n );\n }\n serverSideData.value = message;\n\n return json(message);\n },\n }),\n ];\n },\n);\n\nconst exampleFragmentDefinition = defineFragment<ExampleFragmentServerConfig>(\"example-fragment\")\n .withDependencies(({ config }) => {\n return {\n serverSideData: { value: config.initialData ?? \"Hello World! This is a server-side data.\" },\n };\n })\n .withServices(({ deps }) => {\n return {\n getData: () => deps.serverSideData.value,\n getHashFromHostsFileData,\n };\n });\n\nexport function createExampleFragment(\n serverConfig: ExampleFragmentServerConfig = {},\n options: FragnoPublicConfig = {},\n) {\n const config: ExampleRouteConfig = {\n initialData: serverConfig.initialData ?? \"Hello World! This is a server-side data.\",\n };\n\n return createFragment(\n exampleFragmentDefinition,\n { ...serverConfig, ...config },\n [exampleRoutesFactory],\n options,\n );\n}\n\nexport function createExampleFragmentClients(fragnoConfig: FragnoPublicClientConfig) {\n const b = createClientBuilder(exampleFragmentDefinition, fragnoConfig, [exampleRoutesFactory]);\n\n return {\n useHash: b.createHook(\"/hash\"),\n useData: b.createHook(\"/data\"),\n useSampleMutator: b.createMutator(\"POST\", \"/sample\"),\n };\n}\nexport type { FragnoRouteConfig } from \"@fragno-dev/core/api\";\n"],"x_google_ignoreList":[2,3,4,5,6,7,9,10],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"fileNames":["../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2023.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2024.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.esnext.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.dom.asynciterable.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.webworker.importscripts.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.scripthost.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2023.array.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2023.collection.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2023.intl.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2024.collection.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2024.object.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2024.promise.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2024.regexp.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2024.string.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.esnext.array.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.esnext.collection.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.esnext.disposable.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.esnext.promise.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.esnext.decorators.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.esnext.iterator.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.esnext.float16.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.esnext.error.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.esnext.sharedmemory.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.esnext.full.d.ts","../../../node_modules/.bun/@standard-schema+spec@1.0.0/node_modules/@standard-schema/spec/dist/index.d.ts","../../../packages/fragno/dist/api-Dcr4_-3g.d.ts","../../../node_modules/.bun/nanostores@1.0.1/node_modules/nanostores/atom/index.d.ts","../../../node_modules/.bun/nanostores@1.0.1/node_modules/nanostores/map/index.d.ts","../../../node_modules/.bun/nanostores@1.0.1/node_modules/nanostores/map-creator/index.d.ts","../../../node_modules/.bun/nanostores@1.0.1/node_modules/nanostores/clean-stores/index.d.ts","../../../node_modules/.bun/nanostores@1.0.1/node_modules/nanostores/task/index.d.ts","../../../node_modules/.bun/nanostores@1.0.1/node_modules/nanostores/computed/index.d.ts","../../../node_modules/.bun/nanostores@1.0.1/node_modules/nanostores/deep-map/path.d.ts","../../../node_modules/.bun/nanostores@1.0.1/node_modules/nanostores/deep-map/index.d.ts","../../../node_modules/.bun/nanostores@1.0.1/node_modules/nanostores/effect/index.d.ts","../../../node_modules/.bun/nanostores@1.0.1/node_modules/nanostores/keep-mount/index.d.ts","../../../node_modules/.bun/nanostores@1.0.1/node_modules/nanostores/lifecycle/index.d.ts","../../../node_modules/.bun/nanostores@1.0.1/node_modules/nanostores/listen-keys/index.d.ts","../../../node_modules/.bun/nanostores@1.0.1/node_modules/nanostores/index.d.ts","../../../node_modules/.bun/@nanostores+query@0.3.4+e0f9796391ddf78a/node_modules/@nanostores/query/dist/platforms/type.d.ts","../../../node_modules/.bun/@nanostores+query@0.3.4+e0f9796391ddf78a/node_modules/@nanostores/query/dist/factory.d.ts","../../../node_modules/.bun/@nanostores+query@0.3.4+e0f9796391ddf78a/node_modules/@nanostores/query/dist/main.d.ts","../../../packages/fragno/dist/fragment-builder-D6-oLYnH.d.ts","../../../packages/fragno/dist/mod.d.ts","../../../packages/fragno/dist/client/client.d.ts","../../../node_modules/.bun/zod@4.1.12/node_modules/zod/v4/core/standard-schema.d.cts","../../../node_modules/.bun/zod@4.1.12/node_modules/zod/v4/core/util.d.cts","../../../node_modules/.bun/zod@4.1.12/node_modules/zod/v4/core/versions.d.cts","../../../node_modules/.bun/zod@4.1.12/node_modules/zod/v4/core/schemas.d.cts","../../../node_modules/.bun/zod@4.1.12/node_modules/zod/v4/core/checks.d.cts","../../../node_modules/.bun/zod@4.1.12/node_modules/zod/v4/core/errors.d.cts","../../../node_modules/.bun/zod@4.1.12/node_modules/zod/v4/core/core.d.cts","../../../node_modules/.bun/zod@4.1.12/node_modules/zod/v4/core/parse.d.cts","../../../node_modules/.bun/zod@4.1.12/node_modules/zod/v4/core/regexes.d.cts","../../../node_modules/.bun/zod@4.1.12/node_modules/zod/v4/locales/ar.d.cts","../../../node_modules/.bun/zod@4.1.12/node_modules/zod/v4/locales/az.d.cts","../../../node_modules/.bun/zod@4.1.12/node_modules/zod/v4/locales/be.d.cts","../../../node_modules/.bun/zod@4.1.12/node_modules/zod/v4/locales/bg.d.cts","../../../node_modules/.bun/zod@4.1.12/node_modules/zod/v4/locales/ca.d.cts","../../../node_modules/.bun/zod@4.1.12/node_modules/zod/v4/locales/cs.d.cts","../../../node_modules/.bun/zod@4.1.12/node_modules/zod/v4/locales/da.d.cts","../../../node_modules/.bun/zod@4.1.12/node_modules/zod/v4/locales/de.d.cts","../../../node_modules/.bun/zod@4.1.12/node_modules/zod/v4/locales/en.d.cts","../../../node_modules/.bun/zod@4.1.12/node_modules/zod/v4/locales/eo.d.cts","../../../node_modules/.bun/zod@4.1.12/node_modules/zod/v4/locales/es.d.cts","../../../node_modules/.bun/zod@4.1.12/node_modules/zod/v4/locales/fa.d.cts","../../../node_modules/.bun/zod@4.1.12/node_modules/zod/v4/locales/fi.d.cts","../../../node_modules/.bun/zod@4.1.12/node_modules/zod/v4/locales/fr.d.cts","../../../node_modules/.bun/zod@4.1.12/node_modules/zod/v4/locales/fr-CA.d.cts","../../../node_modules/.bun/zod@4.1.12/node_modules/zod/v4/locales/he.d.cts","../../../node_modules/.bun/zod@4.1.12/node_modules/zod/v4/locales/hu.d.cts","../../../node_modules/.bun/zod@4.1.12/node_modules/zod/v4/locales/id.d.cts","../../../node_modules/.bun/zod@4.1.12/node_modules/zod/v4/locales/is.d.cts","../../../node_modules/.bun/zod@4.1.12/node_modules/zod/v4/locales/it.d.cts","../../../node_modules/.bun/zod@4.1.12/node_modules/zod/v4/locales/ja.d.cts","../../../node_modules/.bun/zod@4.1.12/node_modules/zod/v4/locales/ka.d.cts","../../../node_modules/.bun/zod@4.1.12/node_modules/zod/v4/locales/kh.d.cts","../../../node_modules/.bun/zod@4.1.12/node_modules/zod/v4/locales/km.d.cts","../../../node_modules/.bun/zod@4.1.12/node_modules/zod/v4/locales/ko.d.cts","../../../node_modules/.bun/zod@4.1.12/node_modules/zod/v4/locales/lt.d.cts","../../../node_modules/.bun/zod@4.1.12/node_modules/zod/v4/locales/mk.d.cts","../../../node_modules/.bun/zod@4.1.12/node_modules/zod/v4/locales/ms.d.cts","../../../node_modules/.bun/zod@4.1.12/node_modules/zod/v4/locales/nl.d.cts","../../../node_modules/.bun/zod@4.1.12/node_modules/zod/v4/locales/no.d.cts","../../../node_modules/.bun/zod@4.1.12/node_modules/zod/v4/locales/ota.d.cts","../../../node_modules/.bun/zod@4.1.12/node_modules/zod/v4/locales/ps.d.cts","../../../node_modules/.bun/zod@4.1.12/node_modules/zod/v4/locales/pl.d.cts","../../../node_modules/.bun/zod@4.1.12/node_modules/zod/v4/locales/pt.d.cts","../../../node_modules/.bun/zod@4.1.12/node_modules/zod/v4/locales/ru.d.cts","../../../node_modules/.bun/zod@4.1.12/node_modules/zod/v4/locales/sl.d.cts","../../../node_modules/.bun/zod@4.1.12/node_modules/zod/v4/locales/sv.d.cts","../../../node_modules/.bun/zod@4.1.12/node_modules/zod/v4/locales/ta.d.cts","../../../node_modules/.bun/zod@4.1.12/node_modules/zod/v4/locales/th.d.cts","../../../node_modules/.bun/zod@4.1.12/node_modules/zod/v4/locales/tr.d.cts","../../../node_modules/.bun/zod@4.1.12/node_modules/zod/v4/locales/ua.d.cts","../../../node_modules/.bun/zod@4.1.12/node_modules/zod/v4/locales/uk.d.cts","../../../node_modules/.bun/zod@4.1.12/node_modules/zod/v4/locales/ur.d.cts","../../../node_modules/.bun/zod@4.1.12/node_modules/zod/v4/locales/vi.d.cts","../../../node_modules/.bun/zod@4.1.12/node_modules/zod/v4/locales/zh-CN.d.cts","../../../node_modules/.bun/zod@4.1.12/node_modules/zod/v4/locales/zh-TW.d.cts","../../../node_modules/.bun/zod@4.1.12/node_modules/zod/v4/locales/yo.d.cts","../../../node_modules/.bun/zod@4.1.12/node_modules/zod/v4/locales/index.d.cts","../../../node_modules/.bun/zod@4.1.12/node_modules/zod/v4/core/registries.d.cts","../../../node_modules/.bun/zod@4.1.12/node_modules/zod/v4/core/doc.d.cts","../../../node_modules/.bun/zod@4.1.12/node_modules/zod/v4/core/api.d.cts","../../../node_modules/.bun/zod@4.1.12/node_modules/zod/v4/core/json-schema.d.cts","../../../node_modules/.bun/zod@4.1.12/node_modules/zod/v4/core/to-json-schema.d.cts","../../../node_modules/.bun/zod@4.1.12/node_modules/zod/v4/core/index.d.cts","../../../node_modules/.bun/zod@4.1.12/node_modules/zod/v4/classic/errors.d.cts","../../../node_modules/.bun/zod@4.1.12/node_modules/zod/v4/classic/parse.d.cts","../../../node_modules/.bun/zod@4.1.12/node_modules/zod/v4/classic/schemas.d.cts","../../../node_modules/.bun/zod@4.1.12/node_modules/zod/v4/classic/checks.d.cts","../../../node_modules/.bun/zod@4.1.12/node_modules/zod/v4/classic/compat.d.cts","../../../node_modules/.bun/zod@4.1.12/node_modules/zod/v4/classic/iso.d.cts","../../../node_modules/.bun/zod@4.1.12/node_modules/zod/v4/classic/coerce.d.cts","../../../node_modules/.bun/zod@4.1.12/node_modules/zod/v4/classic/external.d.cts","../../../node_modules/.bun/zod@4.1.12/node_modules/zod/index.d.cts","../../../packages/fragno/dist/api/api.d.ts","../src/index.ts","../../../node_modules/.bun/@types+react@19.2.0/node_modules/@types/react/global.d.ts","../../../node_modules/.bun/csstype@3.1.3/node_modules/csstype/index.d.ts","../../../node_modules/.bun/@types+react@19.2.0/node_modules/@types/react/index.d.ts","../../../packages/fragno/dist/client/react.d.ts","../src/client/react.ts","../../../node_modules/.bun/solid-js@1.9.9/node_modules/solid-js/types/reactive/scheduler.d.ts","../../../node_modules/.bun/solid-js@1.9.9/node_modules/solid-js/types/jsx.d.ts","../../../node_modules/.bun/solid-js@1.9.9/node_modules/solid-js/types/render/component.d.ts","../../../node_modules/.bun/solid-js@1.9.9/node_modules/solid-js/types/render/flow.d.ts","../../../node_modules/.bun/solid-js@1.9.9/node_modules/solid-js/types/render/Suspense.d.ts","../../../node_modules/.bun/solid-js@1.9.9/node_modules/solid-js/types/render/hydration.d.ts","../../../node_modules/.bun/solid-js@1.9.9/node_modules/solid-js/types/render/index.d.ts","../../../node_modules/.bun/solid-js@1.9.9/node_modules/solid-js/types/reactive/signal.d.ts","../../../node_modules/.bun/solid-js@1.9.9/node_modules/solid-js/types/reactive/observable.d.ts","../../../node_modules/.bun/solid-js@1.9.9/node_modules/solid-js/types/reactive/array.d.ts","../../../node_modules/.bun/solid-js@1.9.9/node_modules/solid-js/types/index.d.ts","../../../packages/fragno/dist/client/solid.d.ts","../src/client/solid.ts","../../../node_modules/.bun/magic-string@0.30.19/node_modules/magic-string/dist/magic-string.es.d.mts","../../../node_modules/.bun/@types+estree@1.0.8/node_modules/@types/estree/index.d.ts","../../../node_modules/.bun/locate-character@3.0.0/node_modules/locate-character/types/index.d.ts","../../../node_modules/.bun/svelte@5.39.8/node_modules/svelte/types/index.d.ts","../../../packages/fragno/dist/client/client.svelte.d.ts","../src/client/svelte.ts","../../../packages/fragno/dist/client/vanilla.d.ts","../src/client/vanilla.ts","../../../node_modules/.bun/@vue+shared@3.5.22/node_modules/@vue/shared/dist/shared.d.ts","../../../node_modules/.bun/@babel+types@7.28.4/node_modules/@babel/types/lib/index.d.ts","../../../node_modules/.bun/@babel+parser@7.28.4/node_modules/@babel/parser/typings/babel-parser.d.ts","../../../node_modules/.bun/@vue+compiler-core@3.5.22/node_modules/@vue/compiler-core/dist/compiler-core.d.ts","../../../node_modules/.bun/@vue+compiler-dom@3.5.22/node_modules/@vue/compiler-dom/dist/compiler-dom.d.ts","../../../node_modules/.bun/@vue+reactivity@3.5.22/node_modules/@vue/reactivity/dist/reactivity.d.ts","../../../node_modules/.bun/@vue+runtime-core@3.5.22/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","../../../node_modules/.bun/@vue+runtime-dom@3.5.22/node_modules/@vue/runtime-dom/dist/runtime-dom.d.ts","../../../node_modules/.bun/vue@3.5.22+e72aefb0f8d0b841/node_modules/vue/dist/vue.d.mts","../../../packages/fragno/dist/client/vue.d.ts","../src/client/vue.ts","../../../node_modules/.bun/@types+node@20.19.19/node_modules/@types/node/compatibility/disposable.d.ts","../../../node_modules/.bun/@types+node@20.19.19/node_modules/@types/node/compatibility/indexable.d.ts","../../../node_modules/.bun/@types+node@20.19.19/node_modules/@types/node/compatibility/iterators.d.ts","../../../node_modules/.bun/@types+node@20.19.19/node_modules/@types/node/compatibility/index.d.ts","../../../node_modules/.bun/@types+node@20.19.19/node_modules/@types/node/globals.typedarray.d.ts","../../../node_modules/.bun/@types+node@20.19.19/node_modules/@types/node/buffer.buffer.d.ts","../../../node_modules/.bun/@types+node@20.19.19/node_modules/@types/node/globals.d.ts","../../../node_modules/.bun/@types+node@20.19.19/node_modules/@types/node/web-globals/abortcontroller.d.ts","../../../node_modules/.bun/@types+node@20.19.19/node_modules/@types/node/web-globals/domexception.d.ts","../../../node_modules/.bun/@types+node@20.19.19/node_modules/@types/node/web-globals/events.d.ts","../../../node_modules/.bun/buffer@6.0.3/node_modules/buffer/index.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/header.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/readable.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/file.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/fetch.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/formdata.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/connector.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/client.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/errors.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/dispatcher.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/global-dispatcher.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/global-origin.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/pool-stats.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/pool.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/handlers.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/balanced-pool.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/agent.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/mock-interceptor.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/mock-agent.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/mock-client.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/mock-pool.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/mock-errors.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/proxy-agent.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/env-http-proxy-agent.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/retry-handler.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/retry-agent.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/api.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/interceptors.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/util.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/cookies.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/patch.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/websocket.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/eventsource.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/filereader.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/diagnostics-channel.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/content-type.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/cache.d.ts","../../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/index.d.ts","../../../node_modules/.bun/@types+node@20.19.19/node_modules/@types/node/web-globals/fetch.d.ts","../../../node_modules/.bun/@types+node@20.19.19/node_modules/@types/node/assert.d.ts","../../../node_modules/.bun/@types+node@20.19.19/node_modules/@types/node/assert/strict.d.ts","../../../node_modules/.bun/@types+node@20.19.19/node_modules/@types/node/async_hooks.d.ts","../../../node_modules/.bun/@types+node@20.19.19/node_modules/@types/node/buffer.d.ts","../../../node_modules/.bun/@types+node@20.19.19/node_modules/@types/node/child_process.d.ts","../../../node_modules/.bun/@types+node@20.19.19/node_modules/@types/node/cluster.d.ts","../../../node_modules/.bun/@types+node@20.19.19/node_modules/@types/node/console.d.ts","../../../node_modules/.bun/@types+node@20.19.19/node_modules/@types/node/constants.d.ts","../../../node_modules/.bun/@types+node@20.19.19/node_modules/@types/node/crypto.d.ts","../../../node_modules/.bun/@types+node@20.19.19/node_modules/@types/node/dgram.d.ts","../../../node_modules/.bun/@types+node@20.19.19/node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/.bun/@types+node@20.19.19/node_modules/@types/node/dns.d.ts","../../../node_modules/.bun/@types+node@20.19.19/node_modules/@types/node/dns/promises.d.ts","../../../node_modules/.bun/@types+node@20.19.19/node_modules/@types/node/domain.d.ts","../../../node_modules/.bun/@types+node@20.19.19/node_modules/@types/node/events.d.ts","../../../node_modules/.bun/@types+node@20.19.19/node_modules/@types/node/fs.d.ts","../../../node_modules/.bun/@types+node@20.19.19/node_modules/@types/node/fs/promises.d.ts","../../../node_modules/.bun/@types+node@20.19.19/node_modules/@types/node/http.d.ts","../../../node_modules/.bun/@types+node@20.19.19/node_modules/@types/node/http2.d.ts","../../../node_modules/.bun/@types+node@20.19.19/node_modules/@types/node/https.d.ts","../../../node_modules/.bun/@types+node@20.19.19/node_modules/@types/node/inspector.generated.d.ts","../../../node_modules/.bun/@types+node@20.19.19/node_modules/@types/node/module.d.ts","../../../node_modules/.bun/@types+node@20.19.19/node_modules/@types/node/net.d.ts","../../../node_modules/.bun/@types+node@20.19.19/node_modules/@types/node/os.d.ts","../../../node_modules/.bun/@types+node@20.19.19/node_modules/@types/node/path.d.ts","../../../node_modules/.bun/@types+node@20.19.19/node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/.bun/@types+node@20.19.19/node_modules/@types/node/process.d.ts","../../../node_modules/.bun/@types+node@20.19.19/node_modules/@types/node/punycode.d.ts","../../../node_modules/.bun/@types+node@20.19.19/node_modules/@types/node/querystring.d.ts","../../../node_modules/.bun/@types+node@20.19.19/node_modules/@types/node/readline.d.ts","../../../node_modules/.bun/@types+node@20.19.19/node_modules/@types/node/readline/promises.d.ts","../../../node_modules/.bun/@types+node@20.19.19/node_modules/@types/node/repl.d.ts","../../../node_modules/.bun/@types+node@20.19.19/node_modules/@types/node/sea.d.ts","../../../node_modules/.bun/@types+node@20.19.19/node_modules/@types/node/stream.d.ts","../../../node_modules/.bun/@types+node@20.19.19/node_modules/@types/node/stream/promises.d.ts","../../../node_modules/.bun/@types+node@20.19.19/node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/.bun/@types+node@20.19.19/node_modules/@types/node/stream/web.d.ts","../../../node_modules/.bun/@types+node@20.19.19/node_modules/@types/node/string_decoder.d.ts","../../../node_modules/.bun/@types+node@20.19.19/node_modules/@types/node/test.d.ts","../../../node_modules/.bun/@types+node@20.19.19/node_modules/@types/node/timers.d.ts","../../../node_modules/.bun/@types+node@20.19.19/node_modules/@types/node/timers/promises.d.ts","../../../node_modules/.bun/@types+node@20.19.19/node_modules/@types/node/tls.d.ts","../../../node_modules/.bun/@types+node@20.19.19/node_modules/@types/node/trace_events.d.ts","../../../node_modules/.bun/@types+node@20.19.19/node_modules/@types/node/tty.d.ts","../../../node_modules/.bun/@types+node@20.19.19/node_modules/@types/node/url.d.ts","../../../node_modules/.bun/@types+node@20.19.19/node_modules/@types/node/util.d.ts","../../../node_modules/.bun/@types+node@20.19.19/node_modules/@types/node/v8.d.ts","../../../node_modules/.bun/@types+node@20.19.19/node_modules/@types/node/vm.d.ts","../../../node_modules/.bun/@types+node@20.19.19/node_modules/@types/node/wasi.d.ts","../../../node_modules/.bun/@types+node@20.19.19/node_modules/@types/node/worker_threads.d.ts","../../../node_modules/.bun/@types+node@20.19.19/node_modules/@types/node/zlib.d.ts","../../../node_modules/.bun/@types+node@20.19.19/node_modules/@types/node/index.d.ts","../../../node_modules/.bun/@types+eslint-config-prettier@6.11.3/node_modules/@types/eslint-config-prettier/index.d.ts","../../../node_modules/.bun/@types+json-schema@7.0.15/node_modules/@types/json-schema/index.d.ts","../../../node_modules/.bun/@types+eslint@9.6.1/node_modules/@types/eslint/use-at-your-own-risk.d.ts","../../../node_modules/.bun/@types+eslint@9.6.1/node_modules/@types/eslint/index.d.ts","../../../node_modules/.bun/@types+eslint-plugin-tailwindcss@3.17.0/node_modules/@types/eslint-plugin-tailwindcss/index.d.ts"],"fileIdsList":[[106,181,185,224,271],[106,181,198,224,271],[106,181,204,224,271],[106,181,206,224,271],[106,181,217,224,271],[106,107,179,180,224,271,276,284,291],[209,224,271],[224,271],[101,102,224,271],[103,224,271],[224,271,323],[201,224,271,321,322],[224,268,271],[224,270,271],[271],[224,271,276,304],[224,271,272,277,282,290,301,312],[224,271,272,273,282,290],[219,220,221,224,271],[224,271,274,313],[224,271,275,276,283,291],[224,271,276,301,309],[224,271,277,279,282,290],[224,270,271,278],[224,271,279,280],[224,271,281,282],[224,270,271,282],[224,271,282,283,284,301,312],[224,271,282,283,284,297,301,304],[224,271,279,282,285,290,301,312],[224,271,282,283,285,286,290,301,309,312],[224,271,285,287,301,309,312],[222,223,224,225,226,227,228,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318],[224,271,282,288],[224,271,289,312,317],[224,271,279,282,290,301],[224,271,291],[224,271,292],[224,270,271,293],[224,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318],[224,271,295],[224,271,296],[224,271,282,297,298],[224,271,297,299,313,315],[224,271,282,301,302,304],[224,271,303,304],[224,271,301,302],[224,271,304],[224,271,305],[224,268,271,301,306],[224,271,282,307,308],[224,271,307,308],[224,271,276,290,301,309],[224,271,310],[224,271,290,311],[224,271,285,296,312],[224,271,276,313],[224,271,301,314],[224,271,289,315],[224,271,316],[224,266,271],[224,266,271,282,284,293,301,304,312,315,317],[224,271,301,318],[182,183,224,271],[208,209,210,224,271],[211,224,271],[208,224,271],[208,213,214,215,224,271],[183,213,214,215,224,271],[90,91,224,271],[89,90,93,224,271],[89,90,95,224,271],[90,224,271],[94,101,224,271],[89,90,91,92,93,94,96,97,98,99,100,224,271],[89,224,271],[187,188,193,194,195,196,224,271],[183,224,271],[194,224,271],[187,188,193,224,271],[188,224,271],[188,194,224,271],[189,190,191,192,224,271],[200,201,202,203,224,271],[224,238,242,271,312],[224,238,271,301,312],[224,233,271],[224,235,238,271,309,312],[224,271,290,309],[224,271,319],[224,233,271,319],[224,235,238,271,290,312],[224,230,231,234,237,271,282,301,312],[224,238,245,271],[224,230,236,271],[224,238,259,260,271],[224,234,238,271,304,312,319],[224,259,271,319],[224,232,233,271,319],[224,238,271],[224,232,233,234,235,236,237,238,239,240,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,260,261,262,263,264,265,271],[224,238,253,271],[224,238,245,246,271],[224,236,238,246,247,271],[224,237,271],[224,230,233,238,271],[224,238,242,246,247,271],[224,242,271],[224,236,238,241,271,312],[224,230,235,238,245,271],[224,271,301],[224,233,238,259,271,317,319],[212,215,224,271],[178,224,271],[170,224,271],[170,173,224,271],[164,170,171,172,173,174,175,176,177,224,271],[170,171,224,271],[170,172,224,271],[109,111,112,113,114,224,271],[109,111,113,114,224,271],[109,111,113,224,271],[108,109,111,112,114,224,271],[109,110,111,112,113,114,115,116,164,165,166,167,168,169,224,271],[111,114,224,271],[108,109,110,112,113,114,224,271],[111,165,168,224,271],[111,112,113,114,224,271],[113,224,271],[117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,224,271],[87,224,271],[88,224,271],[88,105,224,271],[87,88,101,105,203,224,271],[87,88,101,104,105,184,224,271],[87,88,101,105,197,224,271],[87,88,101,105,224,271],[87,88,101,105,216,224,271],[87,88,101,104,224,271]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"27bdc30a0e32783366a5abeda841bc22757c1797de8681bbe81fbc735eeb1c10","impliedFormat":1},{"version":"8fd575e12870e9944c7e1d62e1f5a73fcf23dd8d3a321f2a2c74c20d022283fe","impliedFormat":1},{"version":"2ab096661c711e4a81cc464fa1e6feb929a54f5340b46b0a07ac6bbf857471f0","impliedFormat":1},{"version":"080941d9f9ff9307f7e27a83bcd888b7c8270716c39af943532438932ec1d0b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2e80ee7a49e8ac312cc11b77f1475804bee36b3b2bc896bead8b6e1266befb43","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7a3c8b952931daebdfc7a2897c53c0a1c73624593fa070e46bd537e64dcd20a","affectsGlobalScope":true,"impliedFormat":1},{"version":"80e18897e5884b6723488d4f5652167e7bb5024f946743134ecc4aa4ee731f89","affectsGlobalScope":true,"impliedFormat":1},{"version":"cd034f499c6cdca722b60c04b5b1b78e058487a7085a8e0d6fb50809947ee573","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"8cdf8847677ac7d20486e54dd3fcf09eda95812ac8ace44b4418da1bbbab6eb8","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"df83c2a6c73228b625b0beb6669c7ee2a09c914637e2d35170723ad49c0f5cd4","affectsGlobalScope":true,"impliedFormat":1},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e3c06ea092138bf9fa5e874a1fdbc9d54805d074bee1de31b99a11e2fec239d","affectsGlobalScope":true,"impliedFormat":1},{"version":"87dc0f382502f5bbce5129bdc0aea21e19a3abbc19259e0b43ae038a9fc4e326","affectsGlobalScope":true,"impliedFormat":1},{"version":"b1cb28af0c891c8c96b2d6b7be76bd394fddcfdb4709a20ba05a7c1605eea0f9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2fef54945a13095fdb9b84f705f2b5994597640c46afeb2ce78352fab4cb3279","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac77cb3e8c6d3565793eb90a8373ee8033146315a3dbead3bde8db5eaf5e5ec6","affectsGlobalScope":true,"impliedFormat":1},{"version":"56e4ed5aab5f5920980066a9409bfaf53e6d21d3f8d020c17e4de584d29600ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ece9f17b3866cc077099c73f4983bddbcb1dc7ddb943227f1ec070f529dedd1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a6282c8827e4b9a95f4bf4f5c205673ada31b982f50572d27103df8ceb8013c","affectsGlobalScope":true,"impliedFormat":1},{"version":"1c9319a09485199c1f7b0498f2988d6d2249793ef67edda49d1e584746be9032","affectsGlobalScope":true,"impliedFormat":1},{"version":"e3a2a0cee0f03ffdde24d89660eba2685bfbdeae955a6c67e8c4c9fd28928eeb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811c71eee4aa0ac5f7adf713323a5c41b0cf6c4e17367a34fbce379e12bbf0a4","affectsGlobalScope":true,"impliedFormat":1},{"version":"51ad4c928303041605b4d7ae32e0c1ee387d43a24cd6f1ebf4a2699e1076d4fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"60037901da1a425516449b9a20073aa03386cce92f7a1fd902d7602be3a7c2e9","affectsGlobalScope":true,"impliedFormat":1},{"version":"d4b1d2c51d058fc21ec2629fff7a76249dec2e36e12960ea056e3ef89174080f","affectsGlobalScope":true,"impliedFormat":1},{"version":"22adec94ef7047a6c9d1af3cb96be87a335908bf9ef386ae9fd50eeb37f44c47","affectsGlobalScope":true,"impliedFormat":1},{"version":"196cb558a13d4533a5163286f30b0509ce0210e4b316c56c38d4c0fd2fb38405","affectsGlobalScope":true,"impliedFormat":1},{"version":"73f78680d4c08509933daf80947902f6ff41b6230f94dd002ae372620adb0f60","affectsGlobalScope":true,"impliedFormat":1},{"version":"c5239f5c01bcfa9cd32f37c496cf19c61d69d37e48be9de612b541aac915805b","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"bde31fd423cd93b0eff97197a3f66df7c93e8c0c335cbeb113b7ff1ac35c23f4","impliedFormat":1},{"version":"76af14c3cce62da183aaf30375e3a4613109d16c7f16d30702f16d625a95e62c","impliedFormat":99},"49d173511cae2014ed14fd52358c3331a53179d7c30c386c0863ba2c713b14c5",{"version":"e75861934b956453abb77723352171ca00f00ab55e34502eedfe74fba7c6449f","impliedFormat":99},{"version":"450c3dc5526f8e73bba30f955e9e35e42076f82559e4f3ca733e30a99f608fb6","impliedFormat":99},{"version":"840457a9dca7071b074b79ec4bbb07e26daa4899b1939b3bfdffadca62fb157f","impliedFormat":99},{"version":"0bb96d1b7886f8348ee457c22db99c258f563e6e4371410c8c0137c54f8b6332","impliedFormat":99},{"version":"107dec9919e26cd898658841caac2186b3b10ca2e81ba0ecc9407ac989b0b860","impliedFormat":99},{"version":"a6f32c6ebdf43913196c351ed0152695f0d76dbe8226002e2d6654835e0cb685","impliedFormat":99},{"version":"8560d14dc193327f1792881dc467e70e73a74c0623d68adab861f0848619e6ea","impliedFormat":99},{"version":"bae2f1421563cec434332cb9feedff7fc6b35500717c0e4e8c78c8afbd82be81","impliedFormat":99},{"version":"d225636174c86016bb4902443c3cefb17ac3ad480aed999676848dc74df78751","impliedFormat":99},{"version":"ee10a6b8d4948616a923e953b40dd564d87f4c6c960353a4ab40f9ac5953508a","impliedFormat":99},{"version":"616f4301604d5263a177d9d378a417940ee51f4661dc970c446265139b3dc2d7","impliedFormat":99},{"version":"cc8621f4a86f09a9d63af2008516e3284fa8dee2da7ac3e010a7a344267e9fb9","impliedFormat":99},{"version":"318a5c102f218073bb58800a24742df255fef6b4b8b3ad82a0ce2169983331b4","impliedFormat":99},{"version":"7e189f1cd75b5f014e3f0d13ac820edf0d8b0b0e40f47af7efc8ea9cddfbd4d5","impliedFormat":99},{"version":"58881204c782f30d9878c6ccdfd4b2044169c2dacb554959ee21e0090ecc59af","impliedFormat":99},{"version":"13d6b550c828afb5f0975e26cfd191600c291badcc27d734488b6a48ccd407a6","impliedFormat":99},"409240c943d8062325fdce34b25672539690cf796fda3ab87073733d979e08d5","2d0f38ca5259c7583eba036702ee3e93ccede4b2b9a967f6eaa0297e589be211","90d1a42d72f557db9fecda7fc76fc89fb13a12d0dcc80359a8ae720364faa95c",{"version":"309ebd217636d68cf8784cbc3272c16fb94fb8e969e18b6fe88c35200340aef1","impliedFormat":1},{"version":"f987c74a4b4baf361afbf22a16d230ee490d662f9aa2066853bb7ebbb8611355","impliedFormat":1},{"version":"1ff91526fcdd634148c655ef86e912a273ce6a0239e2505701561f086678262b","impliedFormat":1},{"version":"bd93f6fc4da70275db4def32903eed2be03547a41857142df63ddfebb9a67bdf","impliedFormat":1},{"version":"8d67b13da77316a8a2fabc21d340866ddf8a4b99e76a6c951cc45189142df652","impliedFormat":1},{"version":"7952419455ca298776db0005b9b5b75571d484d526a29bfbdf041652213bce6f","impliedFormat":1},{"version":"21360500b20e0ec570f26f1cbb388c155ede043698970f316969840da4f16465","impliedFormat":1},{"version":"3a819c2928ee06bbcc84e2797fd3558ae2ebb7e0ed8d87f71732fb2e2acc87b4","impliedFormat":1},{"version":"1765e61249cb44bf5064d42bfa06956455bbc74dc05f074d5727e8962592c920","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"26384fb401f582cae1234213c3dc75fdc80e3d728a0a1c55b405be8a0c6dddbe","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"26384fb401f582cae1234213c3dc75fdc80e3d728a0a1c55b405be8a0c6dddbe","impliedFormat":1},{"version":"26384fb401f582cae1234213c3dc75fdc80e3d728a0a1c55b405be8a0c6dddbe","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"26384fb401f582cae1234213c3dc75fdc80e3d728a0a1c55b405be8a0c6dddbe","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"26384fb401f582cae1234213c3dc75fdc80e3d728a0a1c55b405be8a0c6dddbe","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"26384fb401f582cae1234213c3dc75fdc80e3d728a0a1c55b405be8a0c6dddbe","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"26384fb401f582cae1234213c3dc75fdc80e3d728a0a1c55b405be8a0c6dddbe","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"568b463d762d0df07ed10081293715069168ad7cf6308525a3bb93777b127845","impliedFormat":1},{"version":"6e5857f38aa297a859cab4ec891408659218a5a2610cd317b6dcbef9979459cc","impliedFormat":1},{"version":"add0ce7b77ba5b308492fa68f77f24d1ed1d9148534bdf05ac17c30763fc1a79","impliedFormat":1},{"version":"56ccc6238510b913f5e6c21afdc447632873f76748d0b30a87cb313b42f1c196","impliedFormat":1},{"version":"c1a2e05eb6d7ca8d7e4a7f4c93ccf0c2857e842a64c98eaee4d85841ee9855e6","impliedFormat":1},{"version":"85021a58f728318a9c83977a8a3a09196dcfc61345e0b8bbbb39422c1594f36b","impliedFormat":1},{"version":"d91805544905a40fbd639ba1b85f65dc13d6996a07034848d634aa9edb63479e","impliedFormat":1},{"version":"6042774c61ece4ba77b3bf375f15942eb054675b7957882a00c22c0e4fe5865c","impliedFormat":1},{"version":"5a3bd57ed7a9d9afef74c75f77fce79ba3c786401af9810cdf45907c4e93f30e","impliedFormat":1},{"version":"8610f5dc475d74c4b095aafa0c191548bfd43f65802e6da54b5e526202b8cfe0","impliedFormat":1},{"version":"7b9496d2e1664155c3c293e1fbbe2aba288614163c88cb81ed6061905924b8f9","impliedFormat":1},{"version":"e27451b24234dfed45f6cf22112a04955183a99c42a2691fb4936d63cfe42761","impliedFormat":1},{"version":"58d65a2803c3b6629b0e18c8bf1bc883a686fcf0333230dd0151ab6e85b74307","impliedFormat":1},{"version":"e818471014c77c103330aee11f00a7a00b37b35500b53ea6f337aefacd6174c9","impliedFormat":1},{"version":"2fbc91ba70096f93f57e22d1f0af22b707dbb3f9f5692cc4f1200861d3b75d88","impliedFormat":1},{"version":"29f823cbe0166e10e7176a94afe609a24b9e5af3858628c541ff8ce1727023cd","impliedFormat":1},"a61e61a5bf54b2b648fa1f5cb9f7a11eaedb4e72ee53a9f9e5656bd08891de26","5c3e9317fdc658a98e27533f1337af6a7ef7f3f445a4655d1c6abd6a110b0ace",{"version":"170d4db14678c68178ee8a3d5a990d5afb759ecb6ec44dbd885c50f6da6204f6","affectsGlobalScope":true,"impliedFormat":1},{"version":"8a8eb4ebffd85e589a1cc7c178e291626c359543403d58c9cd22b81fab5b1fb9","impliedFormat":1},{"version":"a98cf343ef71e0f5eade35af182579a7ff80d54a1ea8f6a6478a9693837d1d79","impliedFormat":1},"eeed89d366153d25494c7bf4202db841ba6058e1848b4881d32b351a0e24bdbb","dd7778dd6f5ab093ea48c6804c2cc62dcb35e977c913286d3c2d1a8b645b03a2",{"version":"a6d2eb77f390448a229ca63b4adadbcc549d203b8c038f1f7627a118f732969d","impliedFormat":99},{"version":"5ad3e58181b335ff8794bcc3161a1506dbe8cebbce71a15b3dc7bfe56f076679","impliedFormat":99},{"version":"b886cc0d907b31ae7484a85da375bc8ac42f9986ec1e49c9c7c854956b0a928b","impliedFormat":99},{"version":"69029230a28323de141ad3b08350b45468248d1f8cce9fe67e4c9aed7785fb2d","impliedFormat":99},{"version":"8ab288ca80e5f2a9dab19955fcd9e81a244432cd7d256fdb5ea198ed5a44f0a4","impliedFormat":99},{"version":"0caadd121b8965f24d5c647a2ed01f5fc352772e4cea4bbca2ab78adedfdd921","impliedFormat":99},{"version":"b642b6a4b9b670338bc50281a6dd192fb7cc0b2f9d63d38c250bb1f02e828bbc","impliedFormat":99},{"version":"3c52dce9553224361c062550a63e7ea0c60a26352e87e80ce847134ae2e4d782","impliedFormat":99},{"version":"c2e65a549ac9d227a9002d077af67bb1c77557a72bf39a85c4354831879078ed","affectsGlobalScope":true,"impliedFormat":99},{"version":"38f11ad59dfc38750b789f9f250742d0ce0da44e28f790a032cd15665b70f239","impliedFormat":99},{"version":"6e70da1429948b2ca8201ccc248bd2cb77cd6bbc4cf33f639c4b0f8f6a35cbd1","affectsGlobalScope":true,"impliedFormat":99},"9a36bde4f66cf15ecf313f9d064651c150bd31b82cd8ceb7a44f0ae51e035e9d","6b1651a71eaab9d2aae28adffc0623fe4055df0e1a67c50a5f91cb343b8ffcfa",{"version":"2be2227c3810dfd84e46674fd33b8d09a4a28ad9cb633ed536effd411665ea1e","impliedFormat":99},{"version":"151ff381ef9ff8da2da9b9663ebf657eac35c4c9a19183420c05728f31a6761d","impliedFormat":1},{"version":"ecd7b4429a2b12f50ef619043fca298eb99a9b7f9e8edabd60c9bbb7fa8f036b","impliedFormat":99},{"version":"89bcb7697e3d2ff0feaa3a0deeeb428d1e30301139d9fda2b60cd4db03150b71","affectsGlobalScope":true,"impliedFormat":99},"3c7154919f1241f6dc8a48cc924fcc3d357c379fe7e93657101956517675b5dd","a8d4fe218250272a7afdc314d55b1d8d0d4c0740d6e0c2b07b8e5a6be616a694","682a86a4e009b936bb44d19c1dcf7cd2ade3d5152937cc86b5465dcaff3c32ea","c31f2984f5ef470321354b18173a36f001204c851254f72663d369223b31a038",{"version":"f468b74459f1ad4473b36a36d49f2b255f3c6b5d536c81239c2b2971df089eaf","impliedFormat":1},{"version":"a28ac3e717907284b3910b8e9b3f9844a4e0b0a861bea7b923e5adf90f620330","impliedFormat":1},{"version":"82e5a50e17833a10eb091923b7e429dc846d42f1c6161eb6beeb964288d98a15","impliedFormat":1},{"version":"7f108fc2f0dd96e1ce5e6942c555538afc4d836d4e22b60cdbe034caaac7b521","impliedFormat":1},{"version":"cf76e2f59b26aea7c923015783083b4820d6c0d85cda2fec3a0f232aabfc56c3","impliedFormat":1},{"version":"c0d079ee61d0e1c301038fc97965734a8e861759dd5a0016f4e8a974746f6fed","impliedFormat":1},{"version":"6a4b3300d44e138529693c8855072efd7627532b0e6bbe3dcaf6db557dcf24bf","affectsGlobalScope":true,"impliedFormat":1},{"version":"d96dc0d6684d9dc9556cd705054bb4980b0549acab2483be9c137513b2e6eb1a","impliedFormat":1},{"version":"c0191592be8eb7906f99ac4b8798d80a585b94001ea1a5f50d6ce5b0d13a5c62","impliedFormat":99},"8b03f998be3298186fe07ef60b3aceff095828ae899805e007707658a6514226","46680ef084bb0ac04555f60e704a6daad111fde3cfe6282ab0a10c8d5675c601",{"version":"70521b6ab0dcba37539e5303104f29b721bfb2940b2776da4cc818c07e1fefc1","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab41ef1f2cdafb8df48be20cd969d875602483859dc194e9c97c8a576892c052","affectsGlobalScope":true,"impliedFormat":1},{"version":"d153a11543fd884b596587ccd97aebbeed950b26933ee000f94009f1ab142848","affectsGlobalScope":true,"impliedFormat":1},{"version":"21d819c173c0cf7cc3ce57c3276e77fd9a8a01d35a06ad87158781515c9a438a","impliedFormat":1},{"version":"a79e62f1e20467e11a904399b8b18b18c0c6eea6b50c1168bf215356d5bebfaf","affectsGlobalScope":true,"impliedFormat":1},{"version":"49a5a44f2e68241a1d2bd9ec894535797998841c09729e506a7cbfcaa40f2180","affectsGlobalScope":true,"impliedFormat":1},{"version":"2e2e0a2dfc6bfabffacba3cc3395aa8197f30893942a2625bd9923ea34a27a3c","affectsGlobalScope":true,"impliedFormat":1},{"version":"1db0b7dca579049ca4193d034d835f6bfe73096c73663e5ef9a0b5779939f3d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true,"impliedFormat":1},{"version":"f26b11d8d8e4b8028f1c7d618b22274c892e4b0ef5b3678a8ccbad85419aef43","affectsGlobalScope":true,"impliedFormat":1},{"version":"4967529644e391115ca5592184d4b63980569adf60ee685f968fd59ab1557188","impliedFormat":1},{"version":"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","impliedFormat":1},{"version":"763fe0f42b3d79b440a9b6e51e9ba3f3f91352469c1e4b3b67bfa4ff6352f3f4","impliedFormat":1},{"version":"25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","impliedFormat":1},{"version":"c464d66b20788266e5353b48dc4aa6bc0dc4a707276df1e7152ab0c9ae21fad8","impliedFormat":1},{"version":"78d0d27c130d35c60b5e5566c9f1e5be77caf39804636bc1a40133919a949f21","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"1d6e127068ea8e104a912e42fc0a110e2aa5a66a356a917a163e8cf9a65e4a75","impliedFormat":1},{"version":"5ded6427296cdf3b9542de4471d2aa8d3983671d4cac0f4bf9c637208d1ced43","impliedFormat":1},{"version":"7f182617db458e98fc18dfb272d40aa2fff3a353c44a89b2c0ccb3937709bfb5","impliedFormat":1},{"version":"cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","impliedFormat":1},{"version":"385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","impliedFormat":1},{"version":"9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","impliedFormat":1},{"version":"0b8a9268adaf4da35e7fa830c8981cfa22adbbe5b3f6f5ab91f6658899e657a7","impliedFormat":1},{"version":"11396ed8a44c02ab9798b7dca436009f866e8dae3c9c25e8c1fbc396880bf1bb","impliedFormat":1},{"version":"ba7bc87d01492633cb5a0e5da8a4a42a1c86270e7b3d2dea5d156828a84e4882","impliedFormat":1},{"version":"4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","impliedFormat":1},{"version":"c21dc52e277bcfc75fac0436ccb75c204f9e1b3fa5e12729670910639f27343e","impliedFormat":1},{"version":"13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","impliedFormat":1},{"version":"9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","impliedFormat":1},{"version":"4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","impliedFormat":1},{"version":"24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","impliedFormat":1},{"version":"ea0148f897b45a76544ae179784c95af1bd6721b8610af9ffa467a518a086a43","impliedFormat":1},{"version":"24c6a117721e606c9984335f71711877293a9651e44f59f3d21c1ea0856f9cc9","impliedFormat":1},{"version":"dd3273ead9fbde62a72949c97dbec2247ea08e0c6952e701a483d74ef92d6a17","impliedFormat":1},{"version":"405822be75ad3e4d162e07439bac80c6bcc6dbae1929e179cf467ec0b9ee4e2e","impliedFormat":1},{"version":"0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","impliedFormat":1},{"version":"e61be3f894b41b7baa1fbd6a66893f2579bfad01d208b4ff61daef21493ef0a8","impliedFormat":1},{"version":"bd0532fd6556073727d28da0edfd1736417a3f9f394877b6d5ef6ad88fba1d1a","impliedFormat":1},{"version":"89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","impliedFormat":1},{"version":"615ba88d0128ed16bf83ef8ccbb6aff05c3ee2db1cc0f89ab50a4939bfc1943f","impliedFormat":1},{"version":"a4d551dbf8746780194d550c88f26cf937caf8d56f102969a110cfaed4b06656","impliedFormat":1},{"version":"8bd86b8e8f6a6aa6c49b71e14c4ffe1211a0e97c80f08d2c8cc98838006e4b88","impliedFormat":1},{"version":"317e63deeb21ac07f3992f5b50cdca8338f10acd4fbb7257ebf56735bf52ab00","impliedFormat":1},{"version":"4732aec92b20fb28c5fe9ad99521fb59974289ed1e45aecb282616202184064f","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"bf67d53d168abc1298888693338cb82854bdb2e69ef83f8a0092093c2d562107","impliedFormat":1},{"version":"2cbe0621042e2a68c7cbce5dfed3906a1862a16a7d496010636cdbdb91341c0f","affectsGlobalScope":true,"impliedFormat":1},{"version":"e2677634fe27e87348825bb041651e22d50a613e2fdf6a4a3ade971d71bac37e","impliedFormat":1},{"version":"7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","impliedFormat":1},{"version":"8c0bcd6c6b67b4b503c11e91a1fb91522ed585900eab2ab1f61bba7d7caa9d6f","impliedFormat":1},{"version":"567b7f607f400873151d7bc63a049514b53c3c00f5f56e9e95695d93b66a138e","affectsGlobalScope":true,"impliedFormat":1},{"version":"823f9c08700a30e2920a063891df4e357c64333fdba6889522acc5b7ae13fc08","impliedFormat":1},{"version":"84c1930e33d1bb12ad01bcbe11d656f9646bd21b2fb2afd96e8e10615a021aef","impliedFormat":1},{"version":"35ec8b6760fd7138bbf5809b84551e31028fb2ba7b6dc91d95d098bf212ca8b4","affectsGlobalScope":true,"impliedFormat":1},{"version":"5524481e56c48ff486f42926778c0a3cce1cc85dc46683b92b1271865bcf015a","impliedFormat":1},{"version":"4b87f767c7bc841511113c876a6b8bf1fd0cb0b718c888ad84478b372ec486b1","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d04e3640dd9eb67f7f1e5bd3d0bf96c784666f7aefc8ac1537af6f2d38d4c29","impliedFormat":1},{"version":"9d19808c8c291a9010a6c788e8532a2da70f811adb431c97520803e0ec649991","impliedFormat":1},{"version":"2bf469abae4cc9c0f340d4e05d9d26e37f936f9c8ca8f007a6534f109dcc77e4","impliedFormat":1},{"version":"4aacb0dd020eeaef65426153686cc639a78ec2885dc72ad220be1d25f1a439df","impliedFormat":1},{"version":"f0bd7e6d931657b59605c44112eaf8b980ba7f957a5051ed21cb93d978cf2f45","impliedFormat":1},{"version":"1d140fe7e071ea06038b6c5e01fea83f72d9d6d68e0d606a3d824323f5133388","affectsGlobalScope":true,"impliedFormat":1},{"version":"4c21aaa8257d7950a5b75a251d9075b6a371208fc948c9c8402f6690ef3b5b55","impliedFormat":1},{"version":"685657a3ec619ef12aa7f754eee3b28598d3bf9749da89839a72a343fffef5ff","impliedFormat":1},{"version":"0c52340a45f6a46b67d766210f921aed61a5f1defe9e708fa5d3389bdf743d98","impliedFormat":1},{"version":"de735eca2c51dd8b860254e9fdb6d9ec19fe402dfe597c23090841ce3937cfc5","impliedFormat":1},{"version":"fed70ffbe859d54d8c7e1ef8cc2bc38af99b00a273ebb69ac293d2cb656210bd","impliedFormat":1},{"version":"5650cf3dace09e7c25d384e3e6b818b938f68f4e8de96f52d9c5a1b3db068e86","impliedFormat":1},{"version":"1354ca5c38bd3fd3836a68e0f7c9f91f172582ba30ab15bb8c075891b91502b7","affectsGlobalScope":true,"impliedFormat":1},{"version":"5155da3047ef977944d791a2188ff6e6c225f6975cc1910ab7bb6838ab84cede","impliedFormat":1},{"version":"93f437e1398a4f06a984f441f7fa7a9f0535c04399619b5c22e0b87bdee182cb","impliedFormat":1},{"version":"afbe24ab0d74694372baa632ecb28bb375be53f3be53f9b07ecd7fc994907de5","impliedFormat":1},{"version":"e16d218a30f6a6810b57f7e968124eaa08c7bb366133ea34bbf01e7cd6b8c0ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb8692dea24c27821f77e397272d9ed2eda0b95e4a75beb0fdda31081d15a8ae","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e043a1bc8fbf2a255bccf9bf27e0f1caf916c3b0518ea34aa72357c0afd42ec","impliedFormat":1},{"version":"b4f70ec656a11d570e1a9edce07d118cd58d9760239e2ece99306ee9dfe61d02","impliedFormat":1},{"version":"3bc2f1e2c95c04048212c569ed38e338873f6a8593930cf5a7ef24ffb38fc3b6","impliedFormat":1},{"version":"8145e07aad6da5f23f2fcd8c8e4c5c13fb26ee986a79d03b0829b8fce152d8b2","impliedFormat":1},{"version":"f9d9d753d430ed050dc1bf2667a1bab711ccbb1c1507183d794cc195a5b085cc","impliedFormat":1},{"version":"9eece5e586312581ccd106d4853e861aaaa1a39f8e3ea672b8c3847eedd12f6e","impliedFormat":1},{"version":"5b6844ad931dcc1d3aca53268f4bd671428421464b1286746027aede398094f2","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"125d792ec6c0c0f657d758055c494301cc5fdb327d9d9d5960b3f129aff76093","impliedFormat":1},{"version":"0225ecb9ed86bdb7a2c7fd01f1556906902929377b44483dc4b83e03b3ef227d","affectsGlobalScope":true,"impliedFormat":1},{"version":"1851a3b4db78664f83901bb9cac9e45e03a37bb5933cc5bf37e10bb7e91ab4eb","impliedFormat":1},{"version":"5eab9b3dc9b34f185417342436ec3f106898da5f4801992d8ff38ab3aff346b5","impliedFormat":1},{"version":"12ed4559eba17cd977aa0db658d25c4047067444b51acfdcbf38470630642b23","affectsGlobalScope":true,"impliedFormat":1},{"version":"f3ffabc95802521e1e4bcba4c88d8615176dc6e09111d920c7a213bdda6e1d65","impliedFormat":1},{"version":"e31e51c55800014d926e3f74208af49cb7352803619855c89296074d1ecbb524","impliedFormat":1},{"version":"ae56f65caf3be91108707bd8dfbccc2a57a91feb5daabf7165a06a945545ed26","impliedFormat":1},{"version":"a136d5de521da20f31631a0a96bf712370779d1c05b7015d7019a9b2a0446ca9","impliedFormat":1},{"version":"dfb96ba5177b68003deec9e773c47257da5c4c8a74053d8956389d832df72002","affectsGlobalScope":true,"impliedFormat":1},{"version":"92d3070580cf72b4bb80959b7f16ede9a3f39e6f4ef2ac87cfa4561844fdc69f","affectsGlobalScope":true,"impliedFormat":1},{"version":"d3dffd70e6375b872f0b4e152de4ae682d762c61a24881ecc5eb9f04c5caf76f","impliedFormat":1},{"version":"613deebaec53731ff6b74fe1a89f094b708033db6396b601df3e6d5ab0ec0a47","impliedFormat":1},{"version":"d91a7d8b5655c42986f1bdfe2105c4408f472831c8f20cf11a8c3345b6b56c8c","impliedFormat":1},{"version":"ed59add13139f84da271cafd32e2171876b0a0af2f798d0c663e8eeb867732cf","affectsGlobalScope":true,"impliedFormat":1},{"version":"e8a979b8af001c9fc2e774e7809d233c8ca955a28756f52ee5dee88ccb0611d2","impliedFormat":1},{"version":"b1810689b76fd473bd12cc9ee219f8e62f54a7d08019a235d07424afbf074d25","impliedFormat":1},{"version":"ee2d7785dbeed8881d14a147c744a2bcb01667b6748c7c5203142ffdb39e480d","impliedFormat":1},{"version":"f3d8c757e148ad968f0d98697987db363070abada5f503da3c06aefd9d4248c1","impliedFormat":1},{"version":"a4a39b5714adfcadd3bbea6698ca2e942606d833bde62ad5fb6ec55f5e438ff8","impliedFormat":1},{"version":"bbc1d029093135d7d9bfa4b38cbf8761db505026cc458b5e9c8b74f4000e5e75","impliedFormat":1},{"version":"1ff9ea0eb07d4bee8ba8ecc06deec31d6c2dd9cbb96021b208a02f78603f7dd6","impliedFormat":1}],"root":[181,186,199,205,207,218],"options":{"allowImportingTsExtensions":true,"allowJs":false,"composite":true,"declaration":true,"declarationMap":true,"emitDeclarationOnly":false,"esModuleInterop":true,"isolatedDeclarations":false,"jsx":4,"module":99,"noErrorTruncation":true,"noFallthroughCasesInSwitch":true,"noImplicitReturns":true,"noPropertyAccessFromIndexSignature":true,"noUnusedParameters":true,"outDir":"./","rewriteRelativeImportExtensions":true,"rootDir":"..","skipLibCheck":true,"sourceMap":true,"strict":true,"target":99,"verbatimModuleSyntax":true},"referencedMap":[[186,1],[199,2],[205,3],[207,4],[218,5],[181,6],[210,7],[209,8],[103,9],[104,10],[102,8],[87,8],[320,8],[324,11],[323,12],[322,11],[201,8],[321,8],[268,13],[269,13],[270,14],[224,15],[271,16],[272,17],[273,18],[219,8],[222,19],[220,8],[221,8],[274,20],[275,21],[276,22],[277,23],[278,24],[279,25],[280,25],[281,26],[282,27],[283,28],[284,29],[225,8],[223,8],[285,30],[286,31],[287,32],[319,33],[288,34],[289,35],[290,36],[291,37],[292,38],[293,39],[294,40],[295,41],[296,42],[297,43],[298,43],[299,44],[300,8],[301,45],[303,46],[302,47],[304,48],[305,49],[306,50],[307,51],[308,52],[309,53],[310,54],[311,55],[312,56],[313,57],[314,58],[315,59],[316,60],[226,8],[227,8],[228,8],[267,61],[317,62],[318,63],[182,8],[184,64],[211,65],[212,66],[213,67],[214,68],[215,69],[208,8],[229,8],[183,8],[202,8],[200,8],[89,8],[92,70],[94,71],[96,72],[95,73],[97,74],[101,75],[98,70],[99,73],[100,73],[91,73],[90,76],[93,8],[197,77],[188,78],[196,79],[195,79],[187,8],[194,80],[191,81],[189,81],[190,82],[192,79],[193,83],[203,84],[84,8],[85,8],[15,8],[13,8],[14,8],[19,8],[18,8],[2,8],[20,8],[21,8],[22,8],[23,8],[24,8],[25,8],[26,8],[27,8],[3,8],[28,8],[29,8],[4,8],[30,8],[34,8],[31,8],[32,8],[33,8],[35,8],[36,8],[37,8],[5,8],[38,8],[39,8],[40,8],[41,8],[6,8],[45,8],[42,8],[43,8],[44,8],[46,8],[7,8],[47,8],[52,8],[53,8],[48,8],[49,8],[50,8],[51,8],[8,8],[57,8],[54,8],[55,8],[56,8],[58,8],[9,8],[59,8],[60,8],[61,8],[63,8],[62,8],[64,8],[65,8],[10,8],[66,8],[67,8],[68,8],[11,8],[69,8],[70,8],[71,8],[72,8],[73,8],[1,8],[74,8],[75,8],[12,8],[79,8],[77,8],[82,8],[81,8],[86,8],[76,8],[80,8],[78,8],[83,8],[17,8],[16,8],[245,85],[255,86],[244,85],[265,87],[236,88],[235,89],[264,90],[258,91],[263,92],[238,93],[252,94],[237,95],[261,96],[233,97],[232,90],[262,98],[234,99],[239,100],[240,8],[243,100],[230,8],[266,101],[256,102],[247,103],[248,104],[250,105],[246,106],[249,107],[259,90],[241,108],[242,109],[251,110],[231,111],[254,102],[253,100],[257,8],[260,112],[216,113],[179,114],[174,115],[177,116],[175,116],[171,115],[178,117],[176,116],[172,118],[173,119],[167,120],[112,121],[114,122],[166,8],[113,123],[170,124],[168,8],[115,121],[116,8],[165,125],[111,126],[108,8],[169,127],[109,128],[110,8],[117,129],[118,129],[119,129],[120,129],[121,129],[122,129],[123,129],[124,129],[125,129],[126,129],[127,129],[128,129],[129,129],[131,129],[130,129],[132,129],[133,129],[134,129],[164,130],[135,129],[136,129],[137,129],[138,129],[139,129],[140,129],[141,129],[142,129],[143,129],[144,129],[145,129],[146,129],[147,129],[149,129],[148,129],[150,129],[151,129],[152,129],[153,129],[154,129],[155,129],[156,129],[157,129],[158,129],[159,129],[160,129],[163,129],[161,129],[162,129],[88,131],[180,132],[107,133],[204,134],[185,135],[198,136],[206,137],[217,138],[105,139],[106,133]],"affectedFilesPendingEmit":[[186,51],[199,51],[205,51],[207,51],[218,51],[181,51]],"emitSignatures":[181,186,199,205,207,218],"version":"5.9.3"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fragno-dev/example-fragment",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.9",
|
|
4
4
|
"exports": {
|
|
5
5
|
".": {
|
|
6
6
|
"development": {
|
|
@@ -63,7 +63,7 @@
|
|
|
63
63
|
},
|
|
64
64
|
"type": "module",
|
|
65
65
|
"dependencies": {
|
|
66
|
-
"@fragno-dev/core": "0.1.
|
|
66
|
+
"@fragno-dev/core": "0.1.1",
|
|
67
67
|
"zod": "^4.0.5"
|
|
68
68
|
},
|
|
69
69
|
"peerDependencies": {
|
|
@@ -75,7 +75,7 @@
|
|
|
75
75
|
},
|
|
76
76
|
"devDependencies": {
|
|
77
77
|
"@fragno-private/typescript-config": "0.0.1",
|
|
78
|
-
"@fragno-dev/unplugin-fragno": "0.0.
|
|
78
|
+
"@fragno-dev/unplugin-fragno": "0.0.2",
|
|
79
79
|
"@types/node": "^20"
|
|
80
80
|
}
|
|
81
81
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"src-DuhdICt1.js","names":["FragnoApiError","Error","status","code","constructor","message","name","toResponse","Response","json","FragnoApiValidationError","issues","addRoute","route","n","r","t","r","FragnoApiValidationError","getMountRoute","opts","mountRoute","name","endsWith","slice","RequestInputContext","path","method","pathParams","searchParams","body","inputSchema","shouldValidateInput","constructor","config","fromRequest","url","URL","request","clone","json","ReadableStream","fromSSRContext","URLSearchParams","query","rawBody","input","schema","valid","validateInput","#validateInput","Error","FormData","Blob","result","validate","issues","value","ResponseStream","writer","encoder","abortSubscribers","responseReadable","aborted","closed","writable","readable","getWriter","TextEncoder","reader","getReader","push","cancel","pull","controller","done","read","close","enqueue","abort","writeRaw","encode","write","JSON","stringify","sleep","ms","Promise","res","setTimeout","onAbort","listener","forEach","subscriber","mergeHeaders","headerSources","mergedHeaders","Headers","headerSource","key","entries","set","Array","isArray","Object","OutputContext","error","message","code","initOrStatus","headers","Response","status","empty","defaultHeaders","mergedHeaders$1","object","jsonStream","cb","onError","TransformStream","stream","e","console","RequestOutputContext","outputSchema","resolveRouteFactories","context","routesOrFactories","routes","item","factoryRoutes","defineRoute","defineRoutes","create","fn","a","i","n","o","s","t","tasks","resolves","startTask","prevResolves","i","task","cb","endTask","promise","finally","t","allTasks","Promise","resolve","push","cleanTasks","cleanTasks","clean","Symbol","cleanStores","stores","process","env","NODE_ENV","Error","$store","mocked","clean","listenerQueue","lqIndex","QUEUE_ITEMS_PER_LISTENER","epoch","atom","initialValue","listeners","$atom","get","lc","listen","value","listener","push","i","length","splice","index","indexOf","off","notify","oldValue","changedKey","runListenerQueue","set","newValue","subscribe","unbind","process","env","NODE_ENV","readonlyType","store","clean","START","STOP","SET","NOTIFY","MOUNT","UNMOUNT","REVERT_MUTATION","on","object","listener","eventKey","mutateStore","events","eventProps","reduceRight","event","l","shared","push","currentListeners","index","indexOf","splice","length","onStart","$store","runListeners","originListen","listen","arg","lc","starting","onStop","originOff","off","onSet","originSet","set","originSetKey","setKey","changed","changedValue","isAborted","abort","newValue","value","onNotify","originNotify","notify","oldValue","STORE_UNMOUNT_DELAY","onMount","initialize","payload","destroy","args","active","setTimeout","process","env","NODE_ENV","originClean","atom","epoch","onMount","computedStore","stores","cb","batched","Array","isArray","previousArgs","currentEpoch","set","args","map","$store","get","some","arg","i","value","then","t","asyncValue","$computed","undefined","timer","run","clearTimeout","setTimeout","unbinds","listen","unbind","computed","fn","atom","map","initial","$map","setKey","key","value","oldMap","notify","allTasks","stores","SSR_ENABLED","getStores","addStore","store","push","cleanStores","clientInitialData","hydrateFromWindow","window","__FRAGNO_INITIAL_DATA__","Map","console","warn","Array","from","entries","getInitialData","key","has","data","get","delete","listenToStores","listen","getFinalStoreValues","stores$1","storesInitialValue","value","loading","set","a","i","n","o","r","t","createNanoEvents","emit","event","args","callbacks","events","i","length","on","cb","push","filter","map","onStart","onStop","atom","batched","startTask","createNanoEvents","defaultOnErrorRetry","retryCount","Math","random","nanoqueryFactory","isAppVisible","visibilityChangeSubscribe","reconnectChangeSubscribe","nanoquery","cache","Map","fetcher","globalFetcher","globalSettings","events","focus","emit","FOCUS","RECONNECT","_revalidateOnInterval","_errorInvalidateTimeouts","_runningFetches","rewrittenSettings","getCachedValueByKey","key","fromCache","get","cacheHit","expires","getNow","data","error","runFetcher","keyParts","store","settings","set","v","SET_CACHE","setAsLoading","prev","toSet","loading","promise","dedupeTime","cacheLifetime","Infinity","onErrorRetry","now","has","value","cachedValue","cachedError","created","notLoading","finishTask","clearTimeout","res","onError","timer","setTimeout","invalidateKeys","delete","createFetcherStore","keyInput","fetcherSettings","process","env","NODE_ENV","Error","fetcherStore","_","fetcherSymbol","invalidate","revalidate","revalidateKeys","mutate","mutateCache","fetch","resolve","Promise","r","unsub","listen","finally","keysInternalUnsub","prevKey","prevKeyParts","keyUnsub","keyStore","evtUnsubs","firstRun","getKeyStore","subscribe","currentKeys","newKey","currentKeyValue","handleNewListener","revalidateInterval","revalidateOnFocus","revalidateOnReconnect","runRefetcher","setInterval","push","on","cacheKeyChangeHandler","keySelector","testKeyAgainstSelector","INVALIDATE_KEYS","REVALIDATE_KEYS","full","originListen","listener","forEach","fn","clearInterval","iterOverCache","cb","keys","cached","createMutatorStore","mutator","opts","throttleCalls","newMutator","keysToInvalidate","keysToRevalidate","safeKeySet","k","lc","setKey","result","getCacheUpdater","shouldRevalidate","newVal","__unsafeOverruleSettings","console","warn","isSomeKey","$key","keysAsStoresToIndexes","setKeyStoreValue","some","join","i","length","keyOrStore","storesAsArray","$storeKeys","storeValues","partIndex","noop","selector","Array","isArray","includes","Date","getTime","Symbol","name","isServer","window","addEventListener","browserCompat","document","hidden","a","RequestOutputContext","o","RequestInputContext","r","resolveRouteFactories","s","getMountRoute","getInitialData","n","addStore","t","SSR_ENABLED","task","nanoquery","extractPathParams","pathPattern","segments","split","filter","length","names","segment","startsWith","push","slice","buildPath","params","patternSegments","builtSegments","name","value","Error","encodeURIComponent","join","FragnoClientError","code","constructor","message","options","cause","FragnoClientFetchError","fromUnknownFetchError","error","FragnoClientFetchNetworkError","FragnoClientFetchAbortError","FragnoClientUnknownApiError","status","FragnoClientApiError","fromResponse","response","unknown","json","parseContentType","contentType","trimmed","trim","parts","map","part","mediaType","typeParts","type","subtype","toLowerCase","parameters","i","param","equalIndex","indexOf","key","endsWith","createAbortPromise","abortSignal","Promise","_","reject","abortHandler","aborted","addEventListener","once","handleNdjsonStreamingFirstItem","store","body","decoder","TextDecoder","reader","getReader","buffer","firstItem","items","releaseLock","done","race","read","decode","stream","lines","pop","line","jsonObject","JSON","parse","streamingPromise","continueStreaming","parseError","setError","clientError","initialBuffer","lines$1","setData","unwrapAtom","get","unwrapObject","Object","fromEntries","entries","isReadableAtom","lc","notify","off","subscribe","GET_HOOK_SYMBOL","Symbol","MUTATOR_HOOK_SYMBOL","STORE_SYMBOL","buildUrl","config","baseUrl","mountRoute","path","pathParams","queryParams","normalizedPathParams","normalizedQueryParams","searchParams","URLSearchParams","toString","getCacheKey","method","pathParamValues","queryParamValues","keys","sort","isStreamingResponse","headers","isGetHook","hook","isMutatorHook","isStore","obj","ClientBuilder","publicConfig","fragmentConfig","cache","Map","createFetcherStore","createMutatorStore","invalidateKeys","cacheEntries","createStore","createHook","route","routes","find","outputSchema","createRouteQueryHook","createMutator","onInvalidate","createRouteQueryMutator","#createRouteQueryHook","callServerSideHandler","handler","fromSSRContext","executeQuery","window","url","fetch","ok","args","query","fetcher","initialData","d","isStreaming","set","loading","Array","isArray","data","onErrorRetry","dedupeTime","Infinity","#createRouteQueryMutator","invalidate","executeMutateQuery","inputSchema","stringify","mutatorStore","bind","onError","console","mutateQuery","#invalidate","prefix","k","createClientBuilder","fragmentDefinition","routesOrFactories","definition","deps","services","c","f","l","m","p","u","defineFragment","defineRoute","defineRoutes","createFragment","FragnoPublicClientConfig","FragnoPublicConfig","createClientBuilder","z","ExampleFragmentServerConfig","initialData","ExampleRouteConfig","ExampleRouteDeps","serverSideData","value","exampleRoutesFactory","create","deps","method","path","outputSchema","string","handler","queryParameters","inputSchema","object","message","errorCodes","exampleFragmentDefinition","withDependencies","withServices","createExampleFragment","serverConfig","options","config","createExampleFragmentClients","fragnoConfig","b","useHash","createHook","useData","useSampleMutator","createMutator","FragnoRouteConfig"],"sources":["../../../../packages/fragno/dist/api-DngJDcmO.js","../../../../packages/fragno/dist/route-B4RbOWjd.js","../../../../node_modules/.bun/nanostores@1.0.1/node_modules/nanostores/task/index.js","../../../../node_modules/.bun/nanostores@1.0.1/node_modules/nanostores/clean-stores/index.js","../../../../node_modules/.bun/nanostores@1.0.1/node_modules/nanostores/atom/index.js","../../../../node_modules/.bun/nanostores@1.0.1/node_modules/nanostores/lifecycle/index.js","../../../../node_modules/.bun/nanostores@1.0.1/node_modules/nanostores/computed/index.js","../../../../node_modules/.bun/nanostores@1.0.1/node_modules/nanostores/map/index.js","../../../../packages/fragno/dist/ssr-CamRrMc0.js","../../../../node_modules/.bun/nanoevents@9.1.0/node_modules/nanoevents/index.js","../../../../node_modules/.bun/@nanostores+query@0.3.4+e0f9796391ddf78a/node_modules/@nanostores/query/dist/nanoquery.js","../../../../packages/fragno/dist/client-CZCasGGB.js","../../src/index.ts"],"sourcesContent":["//#region src/api/error.ts\nvar FragnoApiError = class extends Error {\n\t#status;\n\t#code;\n\tconstructor({ message, code }, status) {\n\t\tsuper(message);\n\t\tthis.name = \"FragnoApiError\";\n\t\tthis.#status = status;\n\t\tthis.#code = code;\n\t}\n\tget status() {\n\t\treturn this.#status;\n\t}\n\tget code() {\n\t\treturn this.#code;\n\t}\n\ttoResponse() {\n\t\treturn Response.json({\n\t\t\tmessage: this.message,\n\t\t\tcode: this.code\n\t\t}, { status: this.status });\n\t}\n};\nvar FragnoApiValidationError = class extends FragnoApiError {\n\t#issues;\n\tconstructor(message, issues) {\n\t\tsuper({\n\t\t\tmessage,\n\t\t\tcode: \"FRAGNO_VALIDATION_ERROR\"\n\t\t}, 400);\n\t\tthis.name = \"FragnoApiValidationError\";\n\t\tthis.#issues = issues;\n\t}\n\tget issues() {\n\t\treturn this.#issues;\n\t}\n\ttoResponse() {\n\t\treturn Response.json({\n\t\t\tmessage: this.message,\n\t\t\tissues: this.#issues,\n\t\t\tcode: this.code\n\t\t}, { status: this.status });\n\t}\n};\n\n//#endregion\n//#region src/api/api.ts\nfunction addRoute(route) {\n\treturn route;\n}\n\n//#endregion\nexport { FragnoApiError as n, FragnoApiValidationError as r, addRoute as t };\n//# sourceMappingURL=api-DngJDcmO.js.map","import { r as FragnoApiValidationError } from \"./api-DngJDcmO.js\";\n\n//#region src/api/internal/route.ts\nfunction getMountRoute(opts) {\n\tconst mountRoute = opts.mountRoute ?? `/api/${opts.name}`;\n\tif (mountRoute.endsWith(\"/\")) return mountRoute.slice(0, -1);\n\treturn mountRoute;\n}\n\n//#endregion\n//#region src/api/request-input-context.ts\nvar RequestInputContext = class RequestInputContext {\n\t#path;\n\t#method;\n\t#pathParams;\n\t#searchParams;\n\t#body;\n\t#inputSchema;\n\t#shouldValidateInput;\n\tconstructor(config) {\n\t\tthis.#path = config.path;\n\t\tthis.#method = config.method;\n\t\tthis.#pathParams = config.pathParams;\n\t\tthis.#searchParams = config.searchParams;\n\t\tthis.#body = config.body;\n\t\tthis.#inputSchema = config.inputSchema;\n\t\tthis.#shouldValidateInput = config.shouldValidateInput ?? true;\n\t}\n\t/**\n\t* Create a RequestContext from a Request object for server-side handling\n\t*/\n\tstatic async fromRequest(config) {\n\t\tconst url = new URL(config.request.url);\n\t\tconst request = config.request.clone();\n\t\tconst json = request.body instanceof ReadableStream ? await request.json() : void 0;\n\t\treturn new RequestInputContext({\n\t\t\tmethod: config.method,\n\t\t\tpath: config.path,\n\t\t\tpathParams: config.pathParams,\n\t\t\tsearchParams: url.searchParams,\n\t\t\tbody: json,\n\t\t\tinputSchema: config.inputSchema,\n\t\t\tshouldValidateInput: config.shouldValidateInput\n\t\t});\n\t}\n\t/**\n\t* Create a RequestContext for server-side rendering contexts (no Request object)\n\t*/\n\tstatic fromSSRContext(config) {\n\t\treturn new RequestInputContext({\n\t\t\tmethod: config.method,\n\t\t\tpath: config.path,\n\t\t\tpathParams: config.pathParams,\n\t\t\tsearchParams: config.searchParams ?? new URLSearchParams(),\n\t\t\tbody: \"body\" in config ? config.body : void 0,\n\t\t\tinputSchema: \"inputSchema\" in config ? config.inputSchema : void 0,\n\t\t\tshouldValidateInput: false\n\t\t});\n\t}\n\t/**\n\t* The HTTP method as string (e.g., `GET`, `POST`)\n\t*/\n\tget method() {\n\t\treturn this.#method;\n\t}\n\t/**\n\t* The matched route path (e.g., `/users/:id`)\n\t* @remarks `string`\n\t*/\n\tget path() {\n\t\treturn this.#path;\n\t}\n\t/**\n\t* Extracted path parameters as object (e.g., `{ id: '123' }`)\n\t* @remarks `Record<string, string>`\n\t*/\n\tget pathParams() {\n\t\treturn this.#pathParams;\n\t}\n\t/**\n\t* [URLSearchParams](https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams) object for query parameters\n\t* @remarks `URLSearchParams`\n\t*/\n\tget query() {\n\t\treturn this.#searchParams;\n\t}\n\t/**\n\t* @internal\n\t*/\n\tget rawBody() {\n\t\treturn this.#body;\n\t}\n\t/**\n\t* Input validation context (only if inputSchema is defined)\n\t* @remarks `InputContext`\n\t*/\n\tget input() {\n\t\tif (!this.#inputSchema) return;\n\t\treturn {\n\t\t\tschema: this.#inputSchema,\n\t\t\tvalid: async () => {\n\t\t\t\tif (!this.#shouldValidateInput) return this.#body;\n\t\t\t\treturn this.#validateInput();\n\t\t\t}\n\t\t};\n\t}\n\tasync #validateInput() {\n\t\tif (!this.#inputSchema) throw new Error(\"No input schema defined for this route\");\n\t\tif (this.#body instanceof FormData || this.#body instanceof Blob) throw new Error(\"Schema validation is only supported for JSON data, not FormData or Blob\");\n\t\tconst result = await this.#inputSchema[\"~standard\"].validate(this.#body);\n\t\tif (result.issues) throw new FragnoApiValidationError(\"Validation failed\", result.issues);\n\t\treturn result.value;\n\t}\n};\n\n//#endregion\n//#region src/api/internal/response-stream.ts\nvar ResponseStream = class {\n\t#writer;\n\t#encoder;\n\t#abortSubscribers = [];\n\t#responseReadable;\n\t#aborted = false;\n\t#closed = false;\n\t/**\n\t* Whether the stream has been aborted.\n\t*/\n\tget aborted() {\n\t\treturn this.#aborted;\n\t}\n\t/**\n\t* Whether the stream has been closed normally.\n\t*/\n\tget closed() {\n\t\treturn this.#closed;\n\t}\n\t/**\n\t* The readable stream that the response is piped to.\n\t*/\n\tget responseReadable() {\n\t\treturn this.#responseReadable;\n\t}\n\tconstructor(writable, readable) {\n\t\tthis.#writer = writable.getWriter();\n\t\tthis.#encoder = new TextEncoder();\n\t\tconst reader = readable.getReader();\n\t\tthis.#abortSubscribers.push(async () => {\n\t\t\tawait reader.cancel();\n\t\t});\n\t\tthis.#responseReadable = new ReadableStream({\n\t\t\tasync pull(controller) {\n\t\t\t\tconst { done, value } = await reader.read();\n\t\t\t\tif (done) controller.close();\n\t\t\t\telse controller.enqueue(value);\n\t\t\t},\n\t\t\tcancel: () => {\n\t\t\t\tthis.abort();\n\t\t\t}\n\t\t});\n\t}\n\tasync writeRaw(input) {\n\t\ttry {\n\t\t\tif (typeof input === \"string\") input = this.#encoder.encode(input);\n\t\t\tawait this.#writer.write(input);\n\t\t} catch {}\n\t}\n\twrite(input) {\n\t\treturn this.writeRaw(JSON.stringify(input) + \"\\n\");\n\t}\n\tsleep(ms) {\n\t\treturn new Promise((res) => setTimeout(res, ms));\n\t}\n\tasync close() {\n\t\ttry {\n\t\t\tawait this.#writer.close();\n\t\t} catch {} finally {\n\t\t\tthis.#closed = true;\n\t\t}\n\t}\n\tonAbort(listener) {\n\t\tthis.#abortSubscribers.push(listener);\n\t}\n\t/**\n\t* Abort the stream.\n\t* You can call this method when stream is aborted by external event.\n\t*/\n\tabort() {\n\t\tif (!this.aborted) {\n\t\t\tthis.#aborted = true;\n\t\t\tthis.#abortSubscribers.forEach((subscriber) => subscriber());\n\t\t}\n\t}\n};\n\n//#endregion\n//#region src/api/request-output-context.ts\n/**\n* Utility function to merge headers from multiple sources.\n* Later headers override earlier ones.\n*/\nfunction mergeHeaders(...headerSources) {\n\tconst mergedHeaders = new Headers();\n\tfor (const headerSource of headerSources) {\n\t\tif (!headerSource) continue;\n\t\tif (headerSource instanceof Headers) for (const [key, value] of headerSource.entries()) mergedHeaders.set(key, value);\n\t\telse if (Array.isArray(headerSource)) for (const [key, value] of headerSource) mergedHeaders.set(key, value);\n\t\telse for (const [key, value] of Object.entries(headerSource)) mergedHeaders.set(key, value);\n\t}\n\treturn mergedHeaders;\n}\nvar OutputContext = class {\n\t/**\n\t* Creates an error response.\n\t*\n\t* Shortcut for `throw new FragnoApiError(...)`\n\t*/\n\terror({ message, code }, initOrStatus, headers) {\n\t\tif (typeof initOrStatus === \"undefined\") return Response.json({\n\t\t\tmessage,\n\t\t\tcode\n\t\t}, {\n\t\t\tstatus: 500,\n\t\t\theaders\n\t\t});\n\t\tif (typeof initOrStatus === \"number\") return Response.json({\n\t\t\tmessage,\n\t\t\tcode\n\t\t}, {\n\t\t\tstatus: initOrStatus,\n\t\t\theaders\n\t\t});\n\t\tconst mergedHeaders = mergeHeaders(initOrStatus.headers, headers);\n\t\treturn Response.json({\n\t\t\tmessage,\n\t\t\tcode\n\t\t}, {\n\t\t\tstatus: initOrStatus.status,\n\t\t\theaders: mergedHeaders\n\t\t});\n\t}\n\tempty(initOrStatus, headers) {\n\t\tconst defaultHeaders = {};\n\t\tif (typeof initOrStatus === \"undefined\") {\n\t\t\tconst mergedHeaders$1 = mergeHeaders(defaultHeaders, headers);\n\t\t\treturn Response.json(null, {\n\t\t\t\tstatus: 201,\n\t\t\t\theaders: mergedHeaders$1\n\t\t\t});\n\t\t}\n\t\tif (typeof initOrStatus === \"number\") {\n\t\t\tconst mergedHeaders$1 = mergeHeaders(defaultHeaders, headers);\n\t\t\treturn Response.json(null, {\n\t\t\t\tstatus: initOrStatus,\n\t\t\t\theaders: mergedHeaders$1\n\t\t\t});\n\t\t}\n\t\tconst mergedHeaders = mergeHeaders(defaultHeaders, initOrStatus.headers, headers);\n\t\treturn Response.json(null, {\n\t\t\tstatus: initOrStatus.status,\n\t\t\theaders: mergedHeaders\n\t\t});\n\t}\n\tjson(object, initOrStatus, headers) {\n\t\tif (typeof initOrStatus === \"undefined\") return Response.json(object, {\n\t\t\tstatus: 200,\n\t\t\theaders\n\t\t});\n\t\tif (typeof initOrStatus === \"number\") return Response.json(object, {\n\t\t\tstatus: initOrStatus,\n\t\t\theaders\n\t\t});\n\t\tconst mergedHeaders = mergeHeaders(initOrStatus.headers, headers);\n\t\treturn Response.json(object, {\n\t\t\tstatus: initOrStatus.status,\n\t\t\theaders: mergedHeaders\n\t\t});\n\t}\n\tjsonStream = (cb, { onError, headers } = {}) => {\n\t\tconst defaultHeaders = {\n\t\t\t\"content-type\": \"application/x-ndjson; charset=utf-8\",\n\t\t\t\"transfer-encoding\": \"chunked\",\n\t\t\t\"cache-control\": \"no-cache\"\n\t\t};\n\t\tconst { readable, writable } = new TransformStream();\n\t\tconst stream = new ResponseStream(writable, readable);\n\t\t(async () => {\n\t\t\ttry {\n\t\t\t\tawait cb(stream);\n\t\t\t} catch (e) {\n\t\t\t\tif (e === void 0) {} else if (e instanceof Error && onError) await onError(e, stream);\n\t\t\t\telse console.error(e);\n\t\t\t} finally {\n\t\t\t\tstream.close();\n\t\t\t}\n\t\t})();\n\t\treturn new Response(stream.responseReadable, {\n\t\t\tstatus: 200,\n\t\t\theaders: mergeHeaders(defaultHeaders, headers)\n\t\t});\n\t};\n};\nvar RequestOutputContext = class extends OutputContext {\n\t#outputSchema;\n\tconstructor(outputSchema) {\n\t\tsuper();\n\t\tthis.#outputSchema = outputSchema;\n\t}\n};\n\n//#endregion\n//#region src/api/route.ts\nfunction resolveRouteFactories(context, routesOrFactories) {\n\tconst routes = [];\n\tfor (const item of routesOrFactories) if (typeof item === \"function\") {\n\t\tconst factoryRoutes = item(context);\n\t\troutes.push(...factoryRoutes);\n\t} else routes.push(item);\n\treturn routes;\n}\nfunction defineRoute(config) {\n\treturn config;\n}\nfunction defineRoutes() {\n\treturn { create: (fn) => {\n\t\treturn fn;\n\t} };\n}\n\n//#endregion\nexport { RequestOutputContext as a, OutputContext as i, defineRoutes as n, RequestInputContext as o, resolveRouteFactories as r, getMountRoute as s, defineRoute as t };\n//# sourceMappingURL=route-B4RbOWjd.js.map","let tasks = 0\nlet resolves = []\n\nexport function startTask() {\n tasks += 1\n return () => {\n tasks -= 1\n if (tasks === 0) {\n let prevResolves = resolves\n resolves = []\n for (let i of prevResolves) i()\n }\n }\n}\n\nexport function task(cb) {\n let endTask = startTask()\n let promise = cb().finally(endTask)\n promise.t = true\n return promise\n}\n\nexport function allTasks() {\n if (tasks === 0) {\n return Promise.resolve()\n } else {\n return new Promise(resolve => {\n resolves.push(resolve)\n })\n }\n}\n\nexport function cleanTasks() {\n tasks = 0\n}\n","import { cleanTasks } from '../task/index.js'\n\nexport let clean = Symbol('clean')\n\nexport let cleanStores = (...stores) => {\n if (process.env.NODE_ENV === 'production') {\n throw new Error(\n 'cleanStores() can be used only during development or tests'\n )\n }\n cleanTasks()\n for (let $store of stores) {\n if ($store) {\n if ($store.mocked) delete $store.mocked\n if ($store[clean]) $store[clean]()\n }\n }\n}\n","import { clean } from '../clean-stores/index.js'\n\nlet listenerQueue = []\nlet lqIndex = 0\nconst QUEUE_ITEMS_PER_LISTENER = 4\nexport let epoch = 0\n\nexport let atom = initialValue => {\n let listeners = []\n let $atom = {\n get() {\n if (!$atom.lc) {\n $atom.listen(() => {})()\n }\n return $atom.value\n },\n lc: 0,\n listen(listener) {\n $atom.lc = listeners.push(listener)\n\n return () => {\n for (\n let i = lqIndex + QUEUE_ITEMS_PER_LISTENER;\n i < listenerQueue.length;\n\n ) {\n if (listenerQueue[i] === listener) {\n listenerQueue.splice(i, QUEUE_ITEMS_PER_LISTENER)\n } else {\n i += QUEUE_ITEMS_PER_LISTENER\n }\n }\n\n let index = listeners.indexOf(listener)\n if (~index) {\n listeners.splice(index, 1)\n if (!--$atom.lc) $atom.off()\n }\n }\n },\n notify(oldValue, changedKey) {\n epoch++\n let runListenerQueue = !listenerQueue.length\n for (let listener of listeners) {\n listenerQueue.push(listener, $atom.value, oldValue, changedKey)\n }\n\n if (runListenerQueue) {\n for (\n lqIndex = 0;\n lqIndex < listenerQueue.length;\n lqIndex += QUEUE_ITEMS_PER_LISTENER\n ) {\n listenerQueue[lqIndex](\n listenerQueue[lqIndex + 1],\n listenerQueue[lqIndex + 2],\n listenerQueue[lqIndex + 3]\n )\n }\n listenerQueue.length = 0\n }\n },\n /* It will be called on last listener unsubscribing.\n We will redefine it in onMount and onStop. */\n off() {},\n set(newValue) {\n let oldValue = $atom.value\n if (oldValue !== newValue) {\n $atom.value = newValue\n $atom.notify(oldValue)\n }\n },\n subscribe(listener) {\n let unbind = $atom.listen(listener)\n listener($atom.value)\n return unbind\n },\n value: initialValue\n }\n\n if (process.env.NODE_ENV !== 'production') {\n $atom[clean] = () => {\n listeners = []\n $atom.lc = 0\n $atom.off()\n }\n }\n\n return $atom\n}\n\nexport const readonlyType = store => store\n","import { clean } from '../clean-stores/index.js'\n\nconst START = 0\nconst STOP = 1\nconst SET = 2\nconst NOTIFY = 3\nconst MOUNT = 5\nconst UNMOUNT = 6\nconst REVERT_MUTATION = 10\n\nexport let on = (object, listener, eventKey, mutateStore) => {\n object.events = object.events || {}\n if (!object.events[eventKey + REVERT_MUTATION]) {\n object.events[eventKey + REVERT_MUTATION] = mutateStore(eventProps => {\n // eslint-disable-next-line no-sequences\n object.events[eventKey].reduceRight((event, l) => (l(event), event), {\n shared: {},\n ...eventProps\n })\n })\n }\n object.events[eventKey] = object.events[eventKey] || []\n object.events[eventKey].push(listener)\n return () => {\n let currentListeners = object.events[eventKey]\n let index = currentListeners.indexOf(listener)\n currentListeners.splice(index, 1)\n if (!currentListeners.length) {\n delete object.events[eventKey]\n object.events[eventKey + REVERT_MUTATION]()\n delete object.events[eventKey + REVERT_MUTATION]\n }\n }\n}\n\nexport let onStart = ($store, listener) =>\n on($store, listener, START, runListeners => {\n let originListen = $store.listen\n $store.listen = arg => {\n if (!$store.lc && !$store.starting) {\n $store.starting = true\n runListeners()\n delete $store.starting\n }\n return originListen(arg)\n }\n return () => {\n $store.listen = originListen\n }\n })\n\nexport let onStop = ($store, listener) =>\n on($store, listener, STOP, runListeners => {\n let originOff = $store.off\n $store.off = () => {\n runListeners()\n originOff()\n }\n return () => {\n $store.off = originOff\n }\n })\n\nexport let onSet = ($store, listener) =>\n on($store, listener, SET, runListeners => {\n let originSet = $store.set\n let originSetKey = $store.setKey\n if ($store.setKey) {\n $store.setKey = (changed, changedValue) => {\n let isAborted\n let abort = () => {\n isAborted = true\n }\n\n runListeners({\n abort,\n changed,\n newValue: { ...$store.value, [changed]: changedValue }\n })\n if (!isAborted) return originSetKey(changed, changedValue)\n }\n }\n $store.set = newValue => {\n let isAborted\n let abort = () => {\n isAborted = true\n }\n\n runListeners({ abort, newValue })\n if (!isAborted) return originSet(newValue)\n }\n return () => {\n $store.set = originSet\n $store.setKey = originSetKey\n }\n })\n\nexport let onNotify = ($store, listener) =>\n on($store, listener, NOTIFY, runListeners => {\n let originNotify = $store.notify\n $store.notify = (oldValue, changed) => {\n let isAborted\n let abort = () => {\n isAborted = true\n }\n\n runListeners({ abort, changed, oldValue })\n if (!isAborted) return originNotify(oldValue, changed)\n }\n return () => {\n $store.notify = originNotify\n }\n })\n\nexport let STORE_UNMOUNT_DELAY = 1000\n\nexport let onMount = ($store, initialize) => {\n let listener = payload => {\n let destroy = initialize(payload)\n if (destroy) $store.events[UNMOUNT].push(destroy)\n }\n return on($store, listener, MOUNT, runListeners => {\n let originListen = $store.listen\n $store.listen = (...args) => {\n if (!$store.lc && !$store.active) {\n $store.active = true\n runListeners()\n }\n return originListen(...args)\n }\n\n let originOff = $store.off\n $store.events[UNMOUNT] = []\n $store.off = () => {\n originOff()\n setTimeout(() => {\n if ($store.active && !$store.lc) {\n $store.active = false\n for (let destroy of $store.events[UNMOUNT]) destroy()\n $store.events[UNMOUNT] = []\n }\n }, STORE_UNMOUNT_DELAY)\n }\n\n if (process.env.NODE_ENV !== 'production') {\n let originClean = $store[clean]\n $store[clean] = () => {\n for (let destroy of $store.events[UNMOUNT]) destroy()\n $store.events[UNMOUNT] = []\n $store.active = false\n originClean()\n }\n }\n\n return () => {\n $store.listen = originListen\n $store.off = originOff\n }\n })\n}\n","import { atom, epoch } from '../atom/index.js'\nimport { onMount } from '../lifecycle/index.js'\n\nlet computedStore = (stores, cb, batched) => {\n if (!Array.isArray(stores)) stores = [stores]\n\n let previousArgs\n let currentEpoch\n let set = () => {\n if (currentEpoch === epoch) return\n currentEpoch = epoch\n let args = stores.map($store => $store.get())\n if (!previousArgs || args.some((arg, i) => arg !== previousArgs[i])) {\n previousArgs = args\n let value = cb(...args)\n if (value && value.then && value.t) {\n value.then(asyncValue => {\n if (previousArgs === args) {\n // Prevent a stale set\n $computed.set(asyncValue)\n }\n })\n } else {\n $computed.set(value)\n currentEpoch = epoch\n }\n }\n }\n let $computed = atom(undefined)\n let get = $computed.get\n $computed.get = () => {\n set()\n return get()\n }\n\n let timer\n let run = batched\n ? () => {\n clearTimeout(timer)\n timer = setTimeout(set)\n }\n : set\n\n onMount($computed, () => {\n let unbinds = stores.map($store => $store.listen(run))\n set()\n return () => {\n for (let unbind of unbinds) unbind()\n }\n })\n\n return $computed\n}\n\nexport let computed = (stores, fn) => computedStore(stores, fn)\nexport let batched = (stores, fn) => computedStore(stores, fn, true)\n","import { atom } from '../atom/index.js'\n\nexport let map = (initial = {}) => {\n let $map = atom(initial)\n\n $map.setKey = function (key, value) {\n let oldMap = $map.value\n if (typeof value === 'undefined' && key in $map.value) {\n $map.value = { ...$map.value }\n delete $map.value[key]\n $map.notify(oldMap, key)\n } else if ($map.value[key] !== value) {\n $map.value = {\n ...$map.value,\n [key]: value\n }\n $map.notify(oldMap, key)\n }\n }\n\n return $map\n}\n","import { allTasks } from \"nanostores\";\n\n//#region src/util/ssr.ts\nlet stores = [];\nconst SSR_ENABLED = false;\nfunction getStores() {\n\treturn stores;\n}\nfunction addStore(store) {\n\tstores.push(store);\n}\nfunction cleanStores() {\n\tstores = [];\n}\nlet clientInitialData;\nfunction hydrateFromWindow() {\n\tif (typeof window !== \"undefined\" && window.__FRAGNO_INITIAL_DATA__) {\n\t\tclientInitialData = new Map(window.__FRAGNO_INITIAL_DATA__);\n\t\tdelete window.__FRAGNO_INITIAL_DATA__;\n\t\tconsole.warn(\"hydrateFromWindow\", { clientInitialData: Array.from(clientInitialData.entries()) });\n\t}\n}\nfunction getInitialData(key) {\n\tif (clientInitialData?.has(key)) {\n\t\tconst data = clientInitialData.get(key);\n\t\tclientInitialData.delete(key);\n\t\treturn data;\n\t}\n}\nfunction listenToStores() {\n\tfor (const store of getStores()) store.listen(() => {});\n}\nasync function getFinalStoreValues() {\n\tlistenToStores();\n\tawait allTasks();\n\tconst stores$1 = getStores();\n\tconst storesInitialValue = /* @__PURE__ */ new Map();\n\tfor (const store of stores$1) {\n\t\tconst value = store.get();\n\t\tif (!value || !store.key || value.loading) continue;\n\t\tstoresInitialValue.set(store.key, value.data);\n\t}\n\treturn storesInitialValue;\n}\n\n//#endregion\nexport { getInitialData as a, getFinalStoreValues as i, addStore as n, hydrateFromWindow as o, cleanStores as r, SSR_ENABLED as t };\n//# sourceMappingURL=ssr-CamRrMc0.js.map","export let createNanoEvents = () => ({\n emit(event, ...args) {\n for (\n let callbacks = this.events[event] || [],\n i = 0,\n length = callbacks.length;\n i < length;\n i++\n ) {\n callbacks[i](...args)\n }\n },\n events: {},\n on(event, cb) {\n ;(this.events[event] ||= []).push(cb)\n return () => {\n this.events[event] = this.events[event]?.filter(i => cb !== i)\n }\n }\n})\n","import { map, onStart, onStop, atom, batched, startTask } from 'nanostores';\nimport { createNanoEvents } from 'nanoevents';\n\nfunction defaultOnErrorRetry({ retryCount }) {\n return ~~((Math.random() + 0.5) * (1 << (retryCount < 8 ? retryCount : 8))) * 2e3;\n}\nconst nanoqueryFactory = ([\n isAppVisible,\n visibilityChangeSubscribe,\n reconnectChangeSubscribe\n]) => {\n const nanoquery = ({\n cache = /* @__PURE__ */ new Map(),\n fetcher: globalFetcher,\n ...globalSettings\n } = {}) => {\n const events = createNanoEvents();\n let focus = true;\n visibilityChangeSubscribe(() => {\n focus = isAppVisible();\n focus && events.emit(FOCUS);\n });\n reconnectChangeSubscribe(() => events.emit(RECONNECT));\n const _revalidateOnInterval = /* @__PURE__ */ new Map(), _errorInvalidateTimeouts = /* @__PURE__ */ new Map(), _runningFetches = /* @__PURE__ */ new Map();\n let rewrittenSettings = {};\n const getCachedValueByKey = (key) => {\n const fromCache = cache.get(key);\n if (!fromCache)\n return [];\n const cacheHit = (fromCache.expires || 0) > getNow();\n return cacheHit ? [fromCache.data, fromCache.error] : [];\n };\n const runFetcher = async ([key, keyParts], store, settings) => {\n if (!focus)\n return;\n const set = (v) => {\n if (store.key === key) {\n store.set(v);\n events.emit(SET_CACHE, key, v, true);\n }\n };\n const setAsLoading = (prev) => {\n const toSet = prev === void 0 ? {} : { data: prev };\n set({\n ...toSet,\n ...loading,\n promise: _runningFetches.get(key)\n });\n };\n let {\n dedupeTime = 4e3,\n cacheLifetime = Infinity,\n fetcher,\n onErrorRetry = defaultOnErrorRetry\n } = {\n ...settings,\n ...rewrittenSettings\n };\n if (cacheLifetime < dedupeTime)\n cacheLifetime = dedupeTime;\n const now = getNow();\n if (_runningFetches.has(key)) {\n if (!store.value.loading)\n setAsLoading(getCachedValueByKey(key)[0]);\n return;\n }\n let cachedValue, cachedError;\n const fromCache = cache.get(key);\n if (fromCache?.data !== void 0 || fromCache?.error) {\n [cachedValue, cachedError] = getCachedValueByKey(key);\n if ((fromCache.created || 0) + dedupeTime > now) {\n if (store.value.data != cachedValue || store.value.error != cachedError) {\n set({ ...notLoading, data: cachedValue, error: cachedError });\n }\n return;\n }\n }\n const finishTask = startTask();\n try {\n clearTimeout(_errorInvalidateTimeouts.get(key));\n const promise = fetcher(...keyParts);\n _runningFetches.set(key, promise);\n setAsLoading(cachedValue);\n const res = await promise;\n cache.set(key, {\n data: res,\n created: getNow(),\n expires: getNow() + cacheLifetime\n });\n set({ data: res, ...notLoading });\n } catch (error) {\n settings.onError?.(error);\n const retryCount = (cache.get(key)?.retryCount || 0) + 1;\n cache.set(key, {\n error,\n created: getNow(),\n expires: getNow() + cacheLifetime,\n retryCount\n });\n if (onErrorRetry) {\n const timer = onErrorRetry({\n error,\n key,\n retryCount\n });\n if (timer)\n _errorInvalidateTimeouts.set(\n key,\n setTimeout(() => {\n invalidateKeys(key);\n cache.set(key, { retryCount });\n }, timer)\n );\n }\n set({ data: store.value.data, error, ...notLoading });\n } finally {\n finishTask();\n _runningFetches.delete(key);\n }\n };\n const createFetcherStore = (keyInput, {\n fetcher = globalFetcher,\n ...fetcherSettings\n } = {}) => {\n if (process.env.NODE_ENV !== \"production\" && !fetcher) {\n throw new Error(\n \"You need to set up either global fetcher of fetcher in createFetcherStore\"\n );\n }\n const fetcherStore = map({\n ...notLoading\n }), settings = { ...globalSettings, ...fetcherSettings, fetcher };\n fetcherStore._ = fetcherSymbol;\n fetcherStore.invalidate = () => {\n const { key } = fetcherStore;\n if (key) {\n invalidateKeys(key);\n }\n };\n fetcherStore.revalidate = () => {\n const { key } = fetcherStore;\n if (key) {\n revalidateKeys(key);\n }\n };\n fetcherStore.mutate = (data) => {\n const { key } = fetcherStore;\n if (key) {\n mutateCache(key, data);\n }\n };\n fetcherStore.fetch = async () => {\n let resolve;\n const promise = new Promise((r) => resolve = r);\n const unsub = fetcherStore.listen(({ error, data }) => {\n if (error !== void 0)\n resolve({ error });\n if (data !== void 0)\n resolve({ data });\n });\n return promise.finally(unsub);\n };\n let keysInternalUnsub, prevKey, prevKeyParts, keyUnsub, keyStore;\n let evtUnsubs = [];\n onStart(fetcherStore, () => {\n const firstRun = !keysInternalUnsub;\n [keyStore, keysInternalUnsub] = getKeyStore(keyInput);\n keyUnsub = keyStore.subscribe((currentKeys) => {\n if (currentKeys) {\n const [newKey, keyParts] = currentKeys;\n fetcherStore.key = newKey;\n runFetcher([newKey, keyParts], fetcherStore, settings);\n prevKey = newKey;\n prevKeyParts = keyParts;\n } else {\n fetcherStore.key = prevKey = prevKeyParts = void 0;\n fetcherStore.set({ ...notLoading });\n }\n });\n const currentKeyValue = keyStore.get();\n if (currentKeyValue) {\n [prevKey, prevKeyParts] = currentKeyValue;\n if (firstRun)\n handleNewListener();\n }\n const {\n revalidateInterval = 0,\n revalidateOnFocus,\n revalidateOnReconnect\n } = settings;\n const runRefetcher = () => {\n if (prevKey)\n runFetcher([prevKey, prevKeyParts], fetcherStore, settings);\n };\n if (revalidateInterval > 0) {\n _revalidateOnInterval.set(\n keyInput,\n setInterval(runRefetcher, revalidateInterval)\n );\n }\n if (revalidateOnFocus)\n evtUnsubs.push(events.on(FOCUS, runRefetcher));\n if (revalidateOnReconnect)\n evtUnsubs.push(events.on(RECONNECT, runRefetcher));\n const cacheKeyChangeHandler = (keySelector) => {\n if (prevKey && testKeyAgainstSelector(prevKey, keySelector)) {\n runFetcher([prevKey, prevKeyParts], fetcherStore, settings);\n }\n };\n evtUnsubs.push(\n events.on(INVALIDATE_KEYS, cacheKeyChangeHandler),\n events.on(REVALIDATE_KEYS, cacheKeyChangeHandler),\n events.on(SET_CACHE, (keySelector, data, full) => {\n if (prevKey && testKeyAgainstSelector(prevKey, keySelector) && fetcherStore.value !== data && fetcherStore.value.data !== data) {\n fetcherStore.set(\n full ? data : { data, ...notLoading }\n );\n }\n })\n );\n });\n const handleNewListener = () => {\n if (prevKey && prevKeyParts)\n runFetcher([prevKey, prevKeyParts], fetcherStore, settings);\n };\n const originListen = fetcherStore.listen;\n fetcherStore.listen = (listener) => {\n const unsub = originListen(listener);\n listener(fetcherStore.value);\n handleNewListener();\n return unsub;\n };\n onStop(fetcherStore, () => {\n fetcherStore.value = { ...notLoading };\n keysInternalUnsub?.();\n evtUnsubs.forEach((fn) => fn());\n evtUnsubs = [];\n keyUnsub?.();\n clearInterval(_revalidateOnInterval.get(keyInput));\n });\n return fetcherStore;\n };\n const iterOverCache = (keySelector, cb) => {\n for (const key of cache.keys()) {\n if (testKeyAgainstSelector(key, keySelector))\n cb(key);\n }\n };\n const invalidateKeys = (keySelector) => {\n iterOverCache(keySelector, (key) => {\n cache.delete(key);\n });\n events.emit(INVALIDATE_KEYS, keySelector);\n };\n const revalidateKeys = (keySelector) => {\n iterOverCache(keySelector, (key) => {\n const cached = cache.get(key);\n if (cached) {\n cache.set(key, { ...cached, created: -Infinity });\n }\n });\n events.emit(REVALIDATE_KEYS, keySelector);\n };\n const mutateCache = (keySelector, data) => {\n iterOverCache(keySelector, (key) => {\n if (data === void 0)\n cache.delete(key);\n else {\n cache.set(key, {\n data,\n created: getNow(),\n expires: getNow() + (globalSettings.cacheLifetime ?? 8e3)\n });\n }\n });\n events.emit(SET_CACHE, keySelector, data);\n };\n function createMutatorStore(mutator, opts) {\n const { throttleCalls, onError } = opts ?? {\n throttleCalls: true,\n onError: globalSettings?.onError\n };\n const mutate = async (data) => {\n if (throttleCalls && store.value?.loading)\n return;\n const newMutator = rewrittenSettings.fetcher ?? mutator;\n const keysToInvalidate = [], keysToRevalidate = [];\n const safeKeySet = (k, v) => {\n if (store.lc) {\n store.setKey(k, v);\n }\n };\n try {\n store.set({\n error: void 0,\n data: void 0,\n mutate,\n ...loading\n });\n const result = await newMutator({\n data,\n invalidate: (key) => {\n keysToInvalidate.push(key);\n },\n revalidate: (key) => {\n keysToRevalidate.push(key);\n },\n getCacheUpdater: (key, shouldRevalidate = true) => [\n (newVal) => {\n mutateCache(key, newVal);\n if (shouldRevalidate) {\n keysToRevalidate.push(key);\n }\n },\n cache.get(key)?.data\n ]\n });\n safeKeySet(\"data\", result);\n return result;\n } catch (error) {\n onError?.(error);\n safeKeySet(\"error\", error);\n store.setKey(\"error\", error);\n } finally {\n safeKeySet(\"loading\", false);\n keysToInvalidate.forEach(invalidateKeys);\n keysToRevalidate.forEach(revalidateKeys);\n }\n };\n const store = map({\n mutate,\n ...notLoading\n });\n onStop(\n store,\n () => store.set({ mutate, ...notLoading })\n );\n store.mutate = mutate;\n return store;\n }\n const __unsafeOverruleSettings = (data) => {\n if (process.env.NODE_ENV !== \"test\") {\n console.warn(\n `You should only use __unsafeOverruleSettings in test environment`\n );\n }\n rewrittenSettings = data;\n };\n return [\n createFetcherStore,\n createMutatorStore,\n { __unsafeOverruleSettings, invalidateKeys, revalidateKeys, mutateCache }\n ];\n };\n function isSomeKey(key) {\n return typeof key === \"string\" || typeof key === \"number\" || key === true;\n }\n const getKeyStore = (keys) => {\n if (isSomeKey(keys))\n return [\n atom([\"\" + keys, [keys]]),\n () => {\n }\n ];\n const keyParts = [];\n const $key = atom(null);\n const keysAsStoresToIndexes = /* @__PURE__ */ new Map();\n const setKeyStoreValue = () => {\n if (keyParts.some((v) => v === null || v === void 0 || v === false)) {\n $key.set(null);\n } else {\n $key.set([keyParts.join(\"\"), keyParts]);\n }\n };\n for (let i = 0; i < keys.length; i++) {\n const keyOrStore = keys[i];\n if (isSomeKey(keyOrStore)) {\n keyParts.push(keyOrStore);\n } else {\n keyParts.push(null);\n keysAsStoresToIndexes.set(keyOrStore, i);\n }\n }\n const storesAsArray = [...keysAsStoresToIndexes.keys()];\n const $storeKeys = batched(storesAsArray, (...storeValues) => {\n for (let i = 0; i < storeValues.length; i++) {\n const store = storesAsArray[i], partIndex = keysAsStoresToIndexes.get(store);\n keyParts[partIndex] = store._ === fetcherSymbol ? store.value && \"data\" in store.value ? store.key : null : storeValues[i];\n }\n setKeyStoreValue();\n });\n setKeyStoreValue();\n return [$key, $storeKeys.subscribe(noop)];\n };\n function noop() {\n }\n const FOCUS = 1, RECONNECT = 2, INVALIDATE_KEYS = 3, REVALIDATE_KEYS = 4, SET_CACHE = 5;\n const testKeyAgainstSelector = (key, selector) => {\n if (Array.isArray(selector))\n return selector.includes(key);\n else if (typeof selector === \"function\")\n return selector(key);\n else\n return key === selector;\n };\n const getNow = () => (/* @__PURE__ */ new Date()).getTime();\n const fetcherSymbol = Symbol();\n const loading = { loading: true }, notLoading = { loading: false };\n return nanoquery;\n};\n\nconst subscribe = (name, fn) => {\n const isServer = typeof window === \"undefined\";\n if (!isServer) {\n addEventListener(name, fn);\n }\n};\nconst browserCompat = [\n () => !document.hidden,\n (cb) => subscribe(\"visibilitychange\", cb),\n (cb) => subscribe(\"online\", cb)\n];\n\nconst nanoquery = nanoqueryFactory(browserCompat);\n\nexport { nanoquery, defaultOnErrorRetry as onErrorRetry };\n","import { a as RequestOutputContext, o as RequestInputContext, r as resolveRouteFactories, s as getMountRoute } from \"./route-B4RbOWjd.js\";\nimport { a as getInitialData, n as addStore, t as SSR_ENABLED } from \"./ssr-CamRrMc0.js\";\nimport { task } from \"nanostores\";\nimport { nanoquery } from \"@nanostores/query\";\n\n//#region src/api/internal/path.ts\n/**\n* Extract parameter names from a path pattern at runtime.\n* Examples:\n* - \"/users/:id\" => [\"id\"]\n* - \"/files/**\" => [\"**\"]\n* - \"/files/**:rest\" => [\"rest\"]\n*/\nfunction extractPathParams(pathPattern) {\n\tconst segments = pathPattern.split(\"/\").filter((s) => s.length > 0);\n\tconst names = [];\n\tfor (const segment of segments) {\n\t\tif (segment.startsWith(\":\")) {\n\t\t\tnames.push(segment.slice(1));\n\t\t\tcontinue;\n\t\t}\n\t\tif (segment === \"**\") {\n\t\t\tnames.push(\"**\");\n\t\t\tcontinue;\n\t\t}\n\t\tif (segment.startsWith(\"**:\")) {\n\t\t\tnames.push(segment.slice(3));\n\t\t\tcontinue;\n\t\t}\n\t}\n\treturn names;\n}\n/**\n* Build a concrete path by replacing placeholders in a path pattern with values.\n*\n* Supports the same placeholder syntax as the matcher:\n* - Named parameter \":name\" is URL-encoded as a single segment\n* - Anonymous wildcard \"**\" inserts the remainder as-is (slashes preserved)\n* - Named wildcard \"**:name\" inserts the remainder from the named key\n*\n* Examples:\n* - buildPath(\"/users/:id\", { id: \"123\" }) => \"/users/123\"\n* - buildPath(\"/files/**\", { \"**\": \"a/b\" }) => \"/files/a/b\"\n* - buildPath(\"/files/**:rest\", { rest: \"a/b\" }) => \"/files/a/b\"\n*/\nfunction buildPath(pathPattern, params) {\n\tconst patternSegments = pathPattern.split(\"/\");\n\tconst builtSegments = [];\n\tfor (const segment of patternSegments) {\n\t\tif (segment.length === 0) {\n\t\t\tbuiltSegments.push(\"\");\n\t\t\tcontinue;\n\t\t}\n\t\tif (segment.startsWith(\":\")) {\n\t\t\tconst name = segment.slice(1);\n\t\t\tconst value = params[name];\n\t\t\tif (value === void 0) throw new Error(`Missing value for path parameter :${name}`);\n\t\t\tbuiltSegments.push(encodeURIComponent(value));\n\t\t\tcontinue;\n\t\t}\n\t\tif (segment === \"**\") {\n\t\t\tconst value = params[\"**\"];\n\t\t\tif (value === void 0) throw new Error(\"Missing value for path wildcard **\");\n\t\t\tbuiltSegments.push(value);\n\t\t\tcontinue;\n\t\t}\n\t\tif (segment.startsWith(\"**:\")) {\n\t\t\tconst name = segment.slice(3);\n\t\t\tconst value = params[name];\n\t\t\tif (value === void 0) throw new Error(`Missing value for path wildcard **:${name}`);\n\t\t\tbuiltSegments.push(value);\n\t\t\tcontinue;\n\t\t}\n\t\tbuiltSegments.push(segment);\n\t}\n\treturn builtSegments.join(\"/\");\n}\n\n//#endregion\n//#region src/client/client-error.ts\n/**\n* Base error class for all Fragno client errors.\n*/\nvar FragnoClientError = class extends Error {\n\t#code;\n\tconstructor(message, code, options = {}) {\n\t\tsuper(message, { cause: options.cause });\n\t\tthis.name = \"FragnoClientError\";\n\t\tthis.#code = code;\n\t}\n\tget code() {\n\t\treturn this.#code;\n\t}\n};\nvar FragnoClientFetchError = class extends FragnoClientError {\n\tconstructor(message, code, options = {}) {\n\t\tsuper(message, code, options);\n\t\tthis.name = \"FragnoClientFetchError\";\n\t}\n\tstatic fromUnknownFetchError(error) {\n\t\tif (!(error instanceof Error)) return new FragnoClientFetchNetworkError(\"Network request failed\", { cause: error });\n\t\tif (error.name === \"AbortError\") return new FragnoClientFetchAbortError(\"Request was aborted\", { cause: error });\n\t\treturn new FragnoClientFetchNetworkError(\"Network request failed\", { cause: error });\n\t}\n};\n/**\n* Error thrown when a network request fails (e.g., no internet connection, DNS failure).\n*/\nvar FragnoClientFetchNetworkError = class extends FragnoClientFetchError {\n\tconstructor(message = \"Network request failed\", options = {}) {\n\t\tsuper(message, \"NETWORK_ERROR\", options);\n\t\tthis.name = \"FragnoClientFetchNetworkError\";\n\t}\n};\n/**\n* Error thrown when a request is aborted (e.g., user cancels request, timeout).\n*/\nvar FragnoClientFetchAbortError = class extends FragnoClientFetchError {\n\tconstructor(message = \"Request was aborted\", options = {}) {\n\t\tsuper(message, \"ABORT_ERROR\", options);\n\t\tthis.name = \"FragnoClientFetchAbortError\";\n\t}\n};\n/**\n* Error thrown when the API result is unexpected, e.g. no json is returned.\n*/\nvar FragnoClientUnknownApiError = class extends FragnoClientError {\n\t#status;\n\tconstructor(message = \"Unknown API error\", status, options = {}) {\n\t\tsuper(message, \"UNKNOWN_API_ERROR\", options);\n\t\tthis.name = \"FragnoClientUnknownApiError\";\n\t\tthis.#status = status;\n\t}\n\tget status() {\n\t\treturn this.#status;\n\t}\n};\nvar FragnoClientApiError = class FragnoClientApiError extends FragnoClientError {\n\t#status;\n\tconstructor({ message, code }, status, options = {}) {\n\t\tsuper(message, code, options);\n\t\tthis.name = \"FragnoClientApiError\";\n\t\tthis.#status = status;\n\t}\n\tget status() {\n\t\treturn this.#status;\n\t}\n\t/**\n\t* The error code returned by the API.\n\t*\n\t* The type is `TErrorCode` (the set of known error codes for this route), but may also be a string\n\t* for forward compatibility with future error codes.\n\t*/\n\tget code() {\n\t\treturn super.code;\n\t}\n\tstatic async fromResponse(response) {\n\t\tconst unknown = await response.json();\n\t\tconst status = response.status;\n\t\tif (!(\"message\" in unknown || \"code\" in unknown)) return new FragnoClientUnknownApiError(\"Unknown API error\", status);\n\t\tif (!(typeof unknown.message === \"string\" && typeof unknown.code === \"string\")) return new FragnoClientUnknownApiError(\"Unknown API error\", status);\n\t\treturn new FragnoClientApiError({\n\t\t\tmessage: unknown.message,\n\t\t\tcode: unknown.code\n\t\t}, status);\n\t}\n};\n\n//#endregion\n//#region src/util/content-type.ts\n/**\n* Parses a content-type header string into its components\n*\n* @param contentType - The content-type header value to parse\n* @returns A ParsedContentType object or null if the input is invalid\n*\n* @example\n* ```ts\n* const { type, subtype, mediaType, parameters }\n* = parseContentType(\"application/json; charset=utf-8\");\n* console.assert(type === \"application\");\n* console.assert(subtype === \"json\");\n* console.assert(mediaType === \"application/json\");\n* console.assert(parameters[\"charset\"] === \"utf-8\");\n*/\nfunction parseContentType(contentType) {\n\tif (!contentType || typeof contentType !== \"string\") return null;\n\tconst trimmed = contentType.trim();\n\tif (!trimmed) return null;\n\tconst parts = trimmed.split(\";\").map((part) => part.trim());\n\tconst mediaType = parts[0];\n\tif (!mediaType) return null;\n\tconst typeParts = mediaType.split(\"/\");\n\tif (typeParts.length !== 2) return null;\n\tconst [type, subtype] = typeParts.map((part) => part.trim().toLowerCase());\n\tif (!type || !subtype) return null;\n\tconst parameters = {};\n\tfor (let i = 1; i < parts.length; i++) {\n\t\tconst param = parts[i];\n\t\tconst equalIndex = param.indexOf(\"=\");\n\t\tif (equalIndex > 0) {\n\t\t\tconst key = param.slice(0, equalIndex).trim().toLowerCase();\n\t\t\tlet value = param.slice(equalIndex + 1).trim();\n\t\t\tif (value.startsWith(\"\\\"\") && value.endsWith(\"\\\"\")) value = value.slice(1, -1);\n\t\t\tif (key) parameters[key] = value;\n\t\t}\n\t}\n\treturn {\n\t\ttype,\n\t\tsubtype,\n\t\tmediaType: `${type}/${subtype}`,\n\t\tparameters\n\t};\n}\n\n//#endregion\n//#region src/client/internal/ndjson-streaming.ts\n/**\n* Creates a promise that rejects when the abort signal is triggered\n*/\nfunction createAbortPromise(abortSignal) {\n\treturn new Promise((_, reject) => {\n\t\tconst abortHandler = () => {\n\t\t\treject(new FragnoClientFetchAbortError(\"Operation was aborted\"));\n\t\t};\n\t\tif (abortSignal.aborted) abortHandler();\n\t\telse abortSignal.addEventListener(\"abort\", abortHandler, { once: true });\n\t});\n}\n/**\n* Handles NDJSON streaming responses by returning the first item from the fetcher\n* and then continuing to stream updates via the store's mutate method.\n*\n* This makes it so that we can wait until the first chunk before updating the store, if we did\n* not do this, `loading` would briefly be false before the first item would be populated in the\n* result.\n*\n* @param response - The fetch Response object containing the NDJSON stream\n* @param store - The fetcher store to update with streaming data\n* @param abortSignal - Optional AbortSignal to cancel the streaming operation\n* @returns A promise that resolves to an object containing the first item and a streaming promise\n*/\nasync function handleNdjsonStreamingFirstItem(response, store, options = {}) {\n\tif (!response.body) throw new FragnoClientFetchError(\"Streaming response has no body\", \"NO_BODY\");\n\tconst { abortSignal } = options;\n\tif (abortSignal?.aborted) throw new FragnoClientFetchAbortError(\"Operation was aborted\");\n\tconst decoder = new TextDecoder();\n\tconst reader = response.body.getReader();\n\tlet buffer = \"\";\n\tlet firstItem = null;\n\tconst items = [];\n\ttry {\n\t\twhile (firstItem === null) {\n\t\t\tif (abortSignal?.aborted) {\n\t\t\t\treader.releaseLock();\n\t\t\t\tthrow new FragnoClientFetchAbortError(\"Operation was aborted\");\n\t\t\t}\n\t\t\tconst { done, value } = await (abortSignal ? Promise.race([reader.read(), createAbortPromise(abortSignal)]) : reader.read());\n\t\t\tif (done) break;\n\t\t\tbuffer += decoder.decode(value, { stream: true });\n\t\t\tconst lines = buffer.split(\"\\n\");\n\t\t\tbuffer = lines.pop() || \"\";\n\t\t\tfor (const line of lines) {\n\t\t\t\tif (!line.trim()) continue;\n\t\t\t\ttry {\n\t\t\t\t\tconst jsonObject = JSON.parse(line);\n\t\t\t\t\titems.push(jsonObject);\n\t\t\t\t\tif (firstItem === null) {\n\t\t\t\t\t\tfirstItem = jsonObject;\n\t\t\t\t\t\tconst streamingPromise = continueStreaming(reader, decoder, buffer, items, store, abortSignal);\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tfirstItem,\n\t\t\t\t\t\t\tstreamingPromise\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t} catch (parseError) {\n\t\t\t\t\tthrow new FragnoClientUnknownApiError(\"Failed to parse NDJSON line\", 500, { cause: parseError });\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (firstItem === null) {\n\t\t\treader.releaseLock();\n\t\t\tthrow new FragnoClientUnknownApiError(\"NDJSON stream contained no valid items\", 500);\n\t\t}\n\t\treader.releaseLock();\n\t\tthrow new FragnoClientFetchError(\"Unexpected end of stream processing\", \"NO_BODY\");\n\t} catch (error) {\n\t\tif (error instanceof FragnoClientError) {\n\t\t\tstore?.setError(error);\n\t\t\tthrow error;\n\t\t} else {\n\t\t\tconst clientError = new FragnoClientUnknownApiError(\"Unknown streaming error\", 500, { cause: error });\n\t\t\tstore?.setError(clientError);\n\t\t\tthrow clientError;\n\t\t}\n\t}\n}\n/**\n* Continues streaming the remaining items in the background\n*/\nasync function continueStreaming(reader, decoder, initialBuffer, items, store, abortSignal) {\n\tlet buffer = initialBuffer;\n\ttry {\n\t\twhile (true) {\n\t\t\tif (abortSignal?.aborted) throw new FragnoClientFetchAbortError(\"Operation was aborted\");\n\t\t\tconst { done, value } = await (abortSignal ? Promise.race([reader.read(), createAbortPromise(abortSignal)]) : reader.read());\n\t\t\tif (done) {\n\t\t\t\tif (buffer.trim()) {\n\t\t\t\t\tconst lines$1 = buffer.split(\"\\n\");\n\t\t\t\t\tfor (const line of lines$1) {\n\t\t\t\t\t\tif (!line.trim()) continue;\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tconst jsonObject = JSON.parse(line);\n\t\t\t\t\t\t\titems.push(jsonObject);\n\t\t\t\t\t\t\tstore?.setData([...items]);\n\t\t\t\t\t\t} catch (parseError) {\n\t\t\t\t\t\t\tthrow new FragnoClientUnknownApiError(\"Failed to parse NDJSON line\", 400, { cause: parseError });\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tbuffer += decoder.decode(value, { stream: true });\n\t\t\tconst lines = buffer.split(\"\\n\");\n\t\t\tbuffer = lines.pop() || \"\";\n\t\t\tfor (const line of lines) {\n\t\t\t\tif (!line.trim()) continue;\n\t\t\t\ttry {\n\t\t\t\t\tconst jsonObject = JSON.parse(line);\n\t\t\t\t\titems.push(jsonObject);\n\t\t\t\t\tstore?.setData([...items]);\n\t\t\t\t} catch (parseError) {\n\t\t\t\t\tthrow new FragnoClientUnknownApiError(\"Failed to parse NDJSON line\", 400, { cause: parseError });\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t} catch (error) {\n\t\tif (error instanceof FragnoClientError) store?.setError(error);\n\t\telse {\n\t\t\tconst clientError = new FragnoClientUnknownApiError(\"Unknown streaming error\", 400, { cause: error });\n\t\t\tstore?.setError(clientError);\n\t\t\tthrow clientError;\n\t\t}\n\t\tthrow error;\n\t} finally {\n\t\treader.releaseLock();\n\t}\n\treturn items;\n}\n\n//#endregion\n//#region src/util/nanostores.ts\n/**\n* Normalizes a value that could be a plain value, an Atom, or a Vue Ref to a plain value.\n*/\nfunction unwrapAtom(value) {\n\tif (value && typeof value === \"object\" && \"get\" in value && typeof value.get === \"function\") return value.get();\n\treturn value;\n}\n/**\n* Normalizes an object where values can be plain values, Atoms, or Vue Refs.\n* Returns a new object with all values normalized to plain values.\n*/\nfunction unwrapObject(params) {\n\tif (!params) return;\n\treturn Object.fromEntries(Object.entries(params).map(([key, value]) => [key, unwrapAtom(value)]));\n}\nfunction isReadableAtom(value) {\n\tif (!value) return false;\n\tif (typeof value !== \"object\" || value === null) return false;\n\tif (!(\"get\" in value) || typeof value.get !== \"function\") return false;\n\tif (!(\"lc\" in value) || typeof value.lc !== \"number\") return false;\n\tif (!(\"notify\" in value) || typeof value.notify !== \"function\") return false;\n\tif (!(\"off\" in value) || typeof value.off !== \"function\") return false;\n\tif (!(\"subscribe\" in value) || typeof value.subscribe !== \"function\") return false;\n\tif (!(\"value\" in value)) return false;\n\treturn true;\n}\n\n//#endregion\n//#region src/client/client.ts\n/**\n* Symbols used to identify hook types\n*/\nconst GET_HOOK_SYMBOL = Symbol(\"fragno-get-hook\");\nconst MUTATOR_HOOK_SYMBOL = Symbol(\"fragno-mutator-hook\");\nconst STORE_SYMBOL = Symbol(\"fragno-store\");\nfunction buildUrl(config, params) {\n\tconst { baseUrl = \"\", mountRoute, path } = config;\n\tconst { pathParams, queryParams } = params ?? {};\n\tconst normalizedPathParams = unwrapObject(pathParams);\n\tconst normalizedQueryParams = unwrapObject(queryParams) ?? {};\n\tconst searchParams = new URLSearchParams(normalizedQueryParams);\n\treturn `${baseUrl}${mountRoute}${buildPath(path, normalizedPathParams ?? {})}${searchParams.toString() ? `?${searchParams.toString()}` : \"\"}`;\n}\n/**\n* This method returns an array, which can be passed directly to nanostores.\n*\n* The returned array is always: path, pathParams (In order they appear in the path), queryParams (In alphabetical order)\n* Missing pathParams are replaced with \"<missing>\".\n* @param path\n* @param params\n* @returns\n*/\nfunction getCacheKey(method, path, params) {\n\tif (!params) return [method, path];\n\tconst { pathParams, queryParams } = params;\n\tconst pathParamValues = extractPathParams(path).map((name) => pathParams?.[name] ?? \"<missing>\");\n\tconst queryParamValues = queryParams ? Object.keys(queryParams).sort().map((key) => queryParams[key]) : [];\n\treturn [\n\t\tmethod,\n\t\tpath,\n\t\t...pathParamValues,\n\t\t...queryParamValues\n\t];\n}\nfunction isStreamingResponse(response) {\n\tconst contentType = parseContentType(response.headers.get(\"content-type\"));\n\tif (!contentType) return false;\n\tif (!(response.headers.get(\"transfer-encoding\") === \"chunked\")) return false;\n\tif (contentType.subtype === \"octet-stream\") return \"octet-stream\";\n\tif (contentType.subtype === \"x-ndjson\") return \"ndjson\";\n\treturn false;\n}\nfunction isGetHook(hook) {\n\treturn typeof hook === \"object\" && hook !== null && GET_HOOK_SYMBOL in hook && hook[GET_HOOK_SYMBOL] === true;\n}\nfunction isMutatorHook(hook) {\n\treturn typeof hook === \"object\" && hook !== null && MUTATOR_HOOK_SYMBOL in hook && hook[MUTATOR_HOOK_SYMBOL] === true;\n}\nfunction isStore(obj) {\n\treturn typeof obj === \"object\" && obj !== null && STORE_SYMBOL in obj && obj[STORE_SYMBOL] === true;\n}\nvar ClientBuilder = class {\n\t#publicConfig;\n\t#fragmentConfig;\n\t#cache = /* @__PURE__ */ new Map();\n\t#createFetcherStore;\n\t#createMutatorStore;\n\t#invalidateKeys;\n\tconstructor(publicConfig, fragmentConfig) {\n\t\tthis.#publicConfig = publicConfig;\n\t\tthis.#fragmentConfig = fragmentConfig;\n\t\tconst [createFetcherStore, createMutatorStore, { invalidateKeys }] = nanoquery({ cache: this.#cache });\n\t\tthis.#createFetcherStore = createFetcherStore;\n\t\tthis.#createMutatorStore = createMutatorStore;\n\t\tthis.#invalidateKeys = invalidateKeys;\n\t}\n\tget cacheEntries() {\n\t\treturn Object.fromEntries(this.#cache.entries());\n\t}\n\tcreateStore(obj) {\n\t\treturn {\n\t\t\tobj,\n\t\t\t[STORE_SYMBOL]: true\n\t\t};\n\t}\n\tcreateHook(path, options) {\n\t\tconst route = this.#fragmentConfig.routes.find((r) => r.path === path && r.method === \"GET\" && r.outputSchema !== void 0);\n\t\tif (!route) throw new Error(`Route '${path}' not found or is not a GET route with an output schema.`);\n\t\treturn this.#createRouteQueryHook(route, options);\n\t}\n\tcreateMutator(method, path, onInvalidate) {\n\t\tconst route = this.#fragmentConfig.routes.find((r) => r.method !== \"GET\" && r.path === path && r.method === method);\n\t\tif (!route) throw new Error(`Route '${path}' not found or is a GET route with an input and output schema.`);\n\t\treturn this.#createRouteQueryMutator(route, onInvalidate);\n\t}\n\t#createRouteQueryHook(route, options = {}) {\n\t\tif (route.method !== \"GET\") throw new Error(`Only GET routes are supported for hooks. Route '${route.path}' is a ${route.method} route.`);\n\t\tif (!route.outputSchema) throw new Error(`Output schema is required for GET routes. Route '${route.path}' has no output schema.`);\n\t\tconst baseUrl = this.#publicConfig.baseUrl ?? \"\";\n\t\tconst mountRoute = getMountRoute(this.#fragmentConfig);\n\t\tasync function callServerSideHandler(params) {\n\t\t\tconst { pathParams, queryParams } = params ?? {};\n\t\t\tconst normalizedPathParams = unwrapObject(pathParams);\n\t\t\tconst normalizedQueryParams = unwrapObject(queryParams) ?? {};\n\t\t\tconst searchParams = new URLSearchParams(normalizedQueryParams);\n\t\t\treturn await route.handler(RequestInputContext.fromSSRContext({\n\t\t\t\tmethod: route.method,\n\t\t\t\tpath: route.path,\n\t\t\t\tpathParams: normalizedPathParams,\n\t\t\t\tsearchParams\n\t\t\t}), new RequestOutputContext(route.outputSchema));\n\t\t}\n\t\tasync function executeQuery(params) {\n\t\t\tconst { pathParams, queryParams } = params ?? {};\n\t\t\tif (typeof window === \"undefined\") return task(async () => callServerSideHandler({\n\t\t\t\tpathParams,\n\t\t\t\tqueryParams\n\t\t\t}));\n\t\t\tconst url = buildUrl({\n\t\t\t\tbaseUrl,\n\t\t\t\tmountRoute,\n\t\t\t\tpath: route.path\n\t\t\t}, {\n\t\t\t\tpathParams,\n\t\t\t\tqueryParams\n\t\t\t});\n\t\t\tlet response;\n\t\t\ttry {\n\t\t\t\tresponse = await fetch(url);\n\t\t\t} catch (error) {\n\t\t\t\tthrow FragnoClientFetchError.fromUnknownFetchError(error);\n\t\t\t}\n\t\t\tif (!response.ok) throw await FragnoClientApiError.fromResponse(response);\n\t\t\treturn response;\n\t\t}\n\t\treturn {\n\t\t\troute,\n\t\t\tstore: (args) => {\n\t\t\t\tconst { path, query } = args ?? {};\n\t\t\t\tconst key = getCacheKey(route.method, route.path, {\n\t\t\t\t\tpathParams: path,\n\t\t\t\t\tqueryParams: query\n\t\t\t\t});\n\t\t\t\tconst store = this.#createFetcherStore(key, {\n\t\t\t\t\tfetcher: async () => {\n\t\t\t\t\t\tif (SSR_ENABLED) {\n\t\t\t\t\t\t\tconst initialData = getInitialData(key.map((d) => typeof d === \"string\" ? d : d.get()).join(\"\"));\n\t\t\t\t\t\t\tif (initialData) return initialData;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst response = await executeQuery({\n\t\t\t\t\t\t\tpathParams: path,\n\t\t\t\t\t\t\tqueryParams: query\n\t\t\t\t\t\t});\n\t\t\t\t\t\tconst isStreaming = isStreamingResponse(response);\n\t\t\t\t\t\tif (!isStreaming) return response.json();\n\t\t\t\t\t\tif (typeof window === \"undefined\") return [];\n\t\t\t\t\t\tif (isStreaming === \"ndjson\") {\n\t\t\t\t\t\t\tconst { firstItem } = await handleNdjsonStreamingFirstItem(response, {\n\t\t\t\t\t\t\t\tsetData: (value) => {\n\t\t\t\t\t\t\t\t\tstore.set({\n\t\t\t\t\t\t\t\t\t\t...store.get(),\n\t\t\t\t\t\t\t\t\t\tloading: !(Array.isArray(value) && value.length > 0),\n\t\t\t\t\t\t\t\t\t\tdata: value\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tsetError: (value) => {\n\t\t\t\t\t\t\t\t\tstore.set({\n\t\t\t\t\t\t\t\t\t\t...store.get(),\n\t\t\t\t\t\t\t\t\t\terror: value\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\treturn [firstItem];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (isStreaming === \"octet-stream\") throw new Error(\"Octet-stream streaming is not supported.\");\n\t\t\t\t\t\tthrow new Error(\"Unreachable\");\n\t\t\t\t\t},\n\t\t\t\t\tonErrorRetry: options?.onErrorRetry,\n\t\t\t\t\tdedupeTime: Infinity\n\t\t\t\t});\n\t\t\t\tif (typeof window === \"undefined\") addStore(store);\n\t\t\t\treturn store;\n\t\t\t},\n\t\t\tquery: async (args) => {\n\t\t\t\tconst { path, query } = args ?? {};\n\t\t\t\tconst response = await executeQuery({\n\t\t\t\t\tpathParams: path,\n\t\t\t\t\tqueryParams: query\n\t\t\t\t});\n\t\t\t\tconst isStreaming = isStreamingResponse(response);\n\t\t\t\tif (!isStreaming) return await response.json();\n\t\t\t\tif (isStreaming === \"ndjson\") {\n\t\t\t\t\tconst { streamingPromise } = await handleNdjsonStreamingFirstItem(response);\n\t\t\t\t\treturn await streamingPromise;\n\t\t\t\t}\n\t\t\t\tif (isStreaming === \"octet-stream\") throw new Error(\"Octet-stream streaming is not supported.\");\n\t\t\t\tthrow new Error(\"Unreachable\");\n\t\t\t},\n\t\t\t[GET_HOOK_SYMBOL]: true\n\t\t};\n\t}\n\t#createRouteQueryMutator(route, onInvalidate = (invalidate, params) => invalidate(\"GET\", route.path, params)) {\n\t\tconst method = route.method;\n\t\tconst baseUrl = this.#publicConfig.baseUrl ?? \"\";\n\t\tconst mountRoute = getMountRoute(this.#fragmentConfig);\n\t\tasync function executeMutateQuery({ body, path, query }) {\n\t\t\tif (typeof window === \"undefined\") return task(async () => route.handler(RequestInputContext.fromSSRContext({\n\t\t\t\tinputSchema: route.inputSchema,\n\t\t\t\tmethod,\n\t\t\t\tpath: route.path,\n\t\t\t\tpathParams: path ?? {},\n\t\t\t\tsearchParams: new URLSearchParams(query),\n\t\t\t\tbody\n\t\t\t}), new RequestOutputContext(route.outputSchema)));\n\t\t\tconst url = buildUrl({\n\t\t\t\tbaseUrl,\n\t\t\t\tmountRoute,\n\t\t\t\tpath: route.path\n\t\t\t}, {\n\t\t\t\tpathParams: path,\n\t\t\t\tqueryParams: query\n\t\t\t});\n\t\t\tlet response;\n\t\t\ttry {\n\t\t\t\tresponse = await fetch(url, {\n\t\t\t\t\tmethod,\n\t\t\t\t\tbody: body !== void 0 ? JSON.stringify(body) : void 0\n\t\t\t\t});\n\t\t\t} catch (error) {\n\t\t\t\tthrow FragnoClientFetchError.fromUnknownFetchError(error);\n\t\t\t}\n\t\t\tif (!response.ok) throw await FragnoClientApiError.fromResponse(response);\n\t\t\treturn response;\n\t\t}\n\t\tconst mutatorStore = this.#createMutatorStore(async ({ data }) => {\n\t\t\tif (typeof window === \"undefined\") {}\n\t\t\tconst { body, path, query } = data;\n\t\t\tif (typeof body === \"undefined\" && route.inputSchema !== void 0) throw new Error(\"Body is required.\");\n\t\t\tconst response = await executeMutateQuery({\n\t\t\t\tbody,\n\t\t\t\tpath,\n\t\t\t\tquery\n\t\t\t});\n\t\t\tonInvalidate(this.#invalidate.bind(this), {\n\t\t\t\tpathParams: path ?? {},\n\t\t\t\tqueryParams: query\n\t\t\t});\n\t\t\tif (response.status === 201 || response.status === 204) return;\n\t\t\tconst isStreaming = isStreamingResponse(response);\n\t\t\tif (!isStreaming) return response.json();\n\t\t\tif (typeof window === \"undefined\") return [];\n\t\t\tif (isStreaming === \"ndjson\") {\n\t\t\t\tconst { firstItem } = await handleNdjsonStreamingFirstItem(response, {\n\t\t\t\t\tsetData: (value) => {\n\t\t\t\t\t\tmutatorStore.set({\n\t\t\t\t\t\t\t...mutatorStore.get(),\n\t\t\t\t\t\t\tloading: !(Array.isArray(value) && value.length > 0),\n\t\t\t\t\t\t\tdata: value\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t\tsetError: (value) => {\n\t\t\t\t\t\tmutatorStore.set({\n\t\t\t\t\t\t\t...mutatorStore.get(),\n\t\t\t\t\t\t\terror: value\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\treturn [firstItem];\n\t\t\t}\n\t\t\tif (isStreaming === \"octet-stream\") throw new Error(\"Octet-stream streaming is not supported.\");\n\t\t\tthrow new Error(\"Unreachable\");\n\t\t}, { onError: (error) => {\n\t\t\tconsole.error(\"Error in mutatorStore\", error);\n\t\t} });\n\t\tconst mutateQuery = (async (data) => {\n\t\t\tconst { body, path, query } = data;\n\t\t\tif (typeof body === \"undefined\" && route.inputSchema !== void 0) throw new Error(\"Body is required for mutateQuery\");\n\t\t\tconst response = await executeMutateQuery({\n\t\t\t\tbody,\n\t\t\t\tpath,\n\t\t\t\tquery\n\t\t\t});\n\t\t\tif (response.status === 201 || response.status === 204) return;\n\t\t\tconst isStreaming = isStreamingResponse(response);\n\t\t\tif (!isStreaming) return response.json();\n\t\t\tif (isStreaming === \"ndjson\") {\n\t\t\t\tconst { streamingPromise } = await handleNdjsonStreamingFirstItem(response);\n\t\t\t\treturn await streamingPromise;\n\t\t\t}\n\t\t\tif (isStreaming === \"octet-stream\") throw new Error(\"Octet-stream streaming is not supported for mutations\");\n\t\t\tthrow new Error(\"Unreachable\");\n\t\t});\n\t\treturn {\n\t\t\troute,\n\t\t\tmutateQuery,\n\t\t\tmutatorStore,\n\t\t\t[MUTATOR_HOOK_SYMBOL]: true\n\t\t};\n\t}\n\t#invalidate(method, path, params) {\n\t\tconst prefix = getCacheKey(method, path, {\n\t\t\tpathParams: params?.pathParams,\n\t\t\tqueryParams: params?.queryParams\n\t\t}).map((k) => typeof k === \"string\" ? k : k.get()).join(\"\");\n\t\tthis.#invalidateKeys((key) => key.startsWith(prefix));\n\t}\n};\nfunction createClientBuilder(fragmentDefinition, publicConfig, routesOrFactories) {\n\tconst definition = fragmentDefinition.definition;\n\tconst routes = resolveRouteFactories({\n\t\tconfig: {},\n\t\tdeps: {},\n\t\tservices: {}\n\t}, routesOrFactories);\n\tconst fragmentConfig = {\n\t\tname: definition.name,\n\t\troutes\n\t};\n\tconst mountRoute = publicConfig.mountRoute ?? `/${definition.name}`;\n\treturn new ClientBuilder({\n\t\t...publicConfig,\n\t\tmountRoute\n\t}, fragmentConfig);\n}\n\n//#endregion\nexport { isGetHook as a, isReadableAtom as c, FragnoClientFetchAbortError as d, FragnoClientFetchError as f, getCacheKey as i, FragnoClientApiError as l, FragnoClientUnknownApiError as m, buildUrl as n, isMutatorHook as o, FragnoClientFetchNetworkError as p, createClientBuilder as r, isStore as s, ClientBuilder as t, FragnoClientError as u };\n//# sourceMappingURL=client-CZCasGGB.js.map","import {\n defineFragment,\n defineRoute,\n defineRoutes,\n createFragment,\n type FragnoPublicClientConfig,\n type FragnoPublicConfig,\n} from \"@fragno-dev/core\";\nimport { createClientBuilder } from \"@fragno-dev/core/client\";\nimport { z } from \"zod\";\n\nimport { readFile } from \"node:fs/promises\";\nimport { platform } from \"node:os\";\nimport { createHash } from \"node:crypto\";\n\nexport interface ExampleFragmentServerConfig {\n initialData?: string;\n}\n\ntype ExampleRouteConfig = {\n initialData: string;\n};\n\ntype ExampleRouteDeps = {\n serverSideData: { value: string };\n};\n\nconst getHashFromHostsFileData = async () => {\n const hostsPath =\n platform() === \"win32\" ? \"C:\\\\Windows\\\\System32\\\\drivers\\\\etc\\\\hosts\" : \"/etc/hosts\";\n\n try {\n const data = await readFile(hostsPath, { encoding: \"utf8\" });\n return createHash(\"sha256\").update(data).digest(\"hex\");\n } catch {\n return null;\n }\n};\n\nconst exampleRoutesFactory = defineRoutes<ExampleRouteConfig, ExampleRouteDeps>().create(\n ({ deps }) => {\n const { serverSideData } = deps;\n\n return [\n defineRoute({\n method: \"GET\",\n path: \"/hash\",\n outputSchema: z.string(),\n handler: async (_, { json }) => {\n const hash = await getHashFromHostsFileData();\n return json(hash ? `The hash of your 'hosts' file is: ${hash}` : \"No hash found :(\");\n },\n }),\n\n defineRoute({\n method: \"GET\",\n path: \"/data\",\n outputSchema: z.string(),\n queryParameters: [\"error\"],\n handler: async ({ query }, { json, error }) => {\n if (query.get(\"error\")) {\n return error(\n {\n message: \"An error was triggered\",\n code: \"TEST_ERROR\",\n },\n 400,\n );\n }\n return json(serverSideData.value);\n },\n }),\n\n defineRoute({\n method: \"POST\",\n path: \"/sample\",\n inputSchema: z.object({ message: z.string() }),\n outputSchema: z.string(),\n errorCodes: [\"MESSAGE_CANNOT_BE_DIGITS_ONLY\"],\n handler: async ({ input }, { json, error }) => {\n const { message } = await input.valid();\n\n if (/^\\d+$/.test(message)) {\n return error(\n {\n message: \"Message cannot be digits only\",\n code: \"MESSAGE_CANNOT_BE_DIGITS_ONLY\",\n },\n 400,\n );\n }\n serverSideData.value = message;\n\n return json(message);\n },\n }),\n ];\n },\n);\n\nconst exampleFragmentDefinition = defineFragment<ExampleFragmentServerConfig>(\"example-fragment\")\n .withDependencies(({ config }) => {\n return {\n serverSideData: { value: config.initialData ?? \"Hello World! This is a server-side data.\" },\n };\n })\n .withServices(({ deps }) => {\n return {\n getData: () => deps.serverSideData.value,\n getHashFromHostsFileData,\n };\n });\n\nexport function createExampleFragment(\n serverConfig: ExampleFragmentServerConfig = {},\n options: FragnoPublicConfig = {},\n) {\n const config: ExampleRouteConfig = {\n initialData: serverConfig.initialData ?? \"Hello World! This is a server-side data.\",\n };\n\n return createFragment(\n exampleFragmentDefinition,\n { ...serverConfig, ...config },\n [exampleRoutesFactory],\n options,\n );\n}\n\nexport function createExampleFragmentClients(fragnoConfig: FragnoPublicClientConfig) {\n const b = createClientBuilder(exampleFragmentDefinition, fragnoConfig, [exampleRoutesFactory]);\n\n return {\n useHash: b.createHook(\"/hash\"),\n useData: b.createHook(\"/data\"),\n useSampleMutator: b.createMutator(\"POST\", \"/sample\"),\n };\n}\nexport type { FragnoRouteConfig } from \"@fragno-dev/core/api\";\n"],"x_google_ignoreList":[2,3,4,5,6,7,9,10],"mappings":"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"}
|