@fragno-dev/stripe 1.0.0 → 2.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -122,7 +122,7 @@ declare function createStripeFragmentClient(config?: FragnoPublicClientConfig):
122
122
  createdAt: zod619.ZodDate;
123
123
  updatedAt: zod619.ZodDate;
124
124
  }, zod_v4_core48.$strip>>;
125
- }, zod_v4_core48.$strip>, string, string>;
125
+ }, zod_v4_core48.$strip>, "UNAUTHORIZED", string>;
126
126
  useBillingPortal: _fragno_dev_core_react0.FragnoReactMutator<_fragno_dev_core_api5.NonGetHTTPMethod, "/portal", zod619.ZodObject<{
127
127
  returnUrl: zod619.ZodURL;
128
128
  }, zod_v4_core48.$strip> | undefined, zod619.ZodObject<{
@@ -1 +1 @@
1
- {"version":3,"file":"react.d.ts","names":[],"sources":["../../../../src/client/react.ts"],"sourcesContent":[],"mappings":";;;;;;;iBAIgB,0BAAA,UAAmC;;;UAA6B,MAAA,CAAA;;;MAAhE,aAAA,oBAA0B,kBAAA;MAAA,OAAA,kBAAA;MAAS,QAAA,oBAAA,mBAAA,kBAAA,CAAA;MAA6B,OAAA,oBAAA,gBAAA"}
1
+ {"version":3,"file":"react.d.ts","names":[],"sources":["../../../../src/client/react.ts"],"sourcesContent":[],"mappings":";;;;;;;iBAKgB,0BAAA,UAAmC;;;UAA6B,MAAA,CAAA;;;MAAhE,aAAA,oBAA0B,kBAAA;MAAA,OAAA,kBAAA;MAAS,QAAA,oBAAA,mBAAA,kBAAA,CAAA;MAA6B,OAAA,oBAAA,gBAAA"}
@@ -1,7 +1,7 @@
1
- import { createStripeFragmentClients, isGetHook, isMutatorHook, isReadableAtom, isStore } from "../src-Cw3xL5oQ.js";
2
- import { useCallback, useMemo, useRef, useSyncExternalStore } from "react";
1
+ import { createStripeFragmentClients, isGetHook, isMutatorHook, isReadableAtom, isStore } from "../src-D6VWnvEs.js";
2
+ import { useCallback, useEffect, useMemo, useRef, useSyncExternalStore } from "react";
3
3
 
4
- //#region ../../node_modules/.pnpm/nanostores@1.1.0/node_modules/nanostores/listen-keys/index.js
4
+ //#region ../../node_modules/.pnpm/nanostores@1.2.0/node_modules/nanostores/listen-keys/index.js
5
5
  function listenKeys($store, keys, listener) {
6
6
  let keysSet = new Set(keys).add(void 0);
7
7
  return $store.listen((value, oldValue, changed) => {
@@ -28,17 +28,109 @@ function createReactMutator(hook) {
28
28
  return useStore(useMemo(() => hook.mutatorStore, [hook]));
29
29
  };
30
30
  }
31
- function createReactStore(hook) {
32
- if (isReadableAtom(hook.obj)) return () => useStore(hook.obj);
33
- return () => {
34
- const result = {};
35
- for (const key in hook.obj) {
36
- if (!Object.prototype.hasOwnProperty.call(hook.obj, key)) continue;
37
- const value = hook.obj[key];
38
- if (isReadableAtom(value)) result[key] = useStore(value);
39
- else result[key] = value;
31
+ const isPlainObject = (value) => {
32
+ if (!value || typeof value !== "object") return false;
33
+ const prototype = Object.getPrototypeOf(value);
34
+ return prototype === Object.prototype || prototype === null;
35
+ };
36
+ const areStoreFactoryValuesEqual = (left, right) => {
37
+ if (Object.is(left, right)) return true;
38
+ if (Array.isArray(left) && Array.isArray(right)) return left.length === right.length && left.every((value, index) => areStoreFactoryValuesEqual(value, right[index]));
39
+ if (left instanceof Date && right instanceof Date) return left.getTime() === right.getTime();
40
+ if (isReadableAtom(left) || isReadableAtom(right)) return left === right;
41
+ if (typeof left === "function" || typeof right === "function") return left === right;
42
+ if (isPlainObject(left) && isPlainObject(right)) {
43
+ const leftKeys = Object.keys(left).sort();
44
+ const rightKeys = Object.keys(right).sort();
45
+ return leftKeys.length === rightKeys.length && leftKeys.every((key, index) => key === rightKeys[index] && areStoreFactoryValuesEqual(left[key], right[key]));
46
+ }
47
+ return false;
48
+ };
49
+ const areStoreFactoryArgsEqual = (left, right) => left.length === right.length && left.every((value, index) => areStoreFactoryValuesEqual(value, right[index]));
50
+ const getStoreDisposer = (value) => {
51
+ const disposer = value[Symbol.dispose];
52
+ return typeof disposer === "function" ? disposer.bind(value) : void 0;
53
+ };
54
+ const createReactStoreObjectView = (value, getAtomValue) => {
55
+ const atomValues = /* @__PURE__ */ new Map();
56
+ const boundMethods = /* @__PURE__ */ new Map();
57
+ return new Proxy(value, { get(target, property, _receiver) {
58
+ const propertyValue = Reflect.get(target, property, target);
59
+ if (isReadableAtom(propertyValue)) {
60
+ if (atomValues.has(propertyValue)) return atomValues.get(propertyValue);
61
+ const atomValue = getAtomValue(propertyValue);
62
+ atomValues.set(propertyValue, atomValue);
63
+ return atomValue;
40
64
  }
41
- return result;
65
+ if (typeof propertyValue === "function") {
66
+ if (boundMethods.has(property)) return boundMethods.get(property);
67
+ const boundMethod = propertyValue.bind(target);
68
+ boundMethods.set(property, boundMethod);
69
+ return boundMethod;
70
+ }
71
+ return propertyValue;
72
+ } });
73
+ };
74
+ function unwrapReactStoreValueOnServer(value) {
75
+ if (isReadableAtom(value)) return value.get();
76
+ return createReactStoreObjectView(value, (store) => store.get());
77
+ }
78
+ function unwrapReactStoreValue(value) {
79
+ if (isReadableAtom(value)) return useStore(value);
80
+ const atomEntries = Object.keys(value).flatMap((key) => {
81
+ const fieldValue = value[key];
82
+ return isReadableAtom(fieldValue) ? [[key, fieldValue]] : [];
83
+ });
84
+ const snapshotRef = useRef(atomEntries.map(([, store]) => store.get()));
85
+ const getSnapshot = () => {
86
+ const nextSnapshot = atomEntries.map(([, store]) => store.get());
87
+ const previousSnapshot = snapshotRef.current;
88
+ if (previousSnapshot.length === nextSnapshot.length && previousSnapshot.every((entry, index) => Object.is(entry, nextSnapshot[index]))) return previousSnapshot;
89
+ snapshotRef.current = nextSnapshot;
90
+ return nextSnapshot;
91
+ };
92
+ const atomValues = useSyncExternalStore((onStoreChange) => {
93
+ const unsubscribes = atomEntries.map(([, store]) => store.listen(onStoreChange));
94
+ return () => {
95
+ for (const unsubscribe of unsubscribes) unsubscribe();
96
+ };
97
+ }, getSnapshot, getSnapshot);
98
+ return useMemo(() => createReactStoreObjectView(value, (store) => {
99
+ const atomIndex = atomEntries.findIndex(([, entryStore]) => entryStore === store);
100
+ return atomIndex === -1 ? store.get() : atomValues[atomIndex];
101
+ }), [
102
+ value,
103
+ atomEntries,
104
+ atomValues
105
+ ]);
106
+ }
107
+ function createReactStore(hook) {
108
+ return (...args) => {
109
+ const stableArgsRef = useRef(args);
110
+ const pendingDisposalsRef = useRef(/* @__PURE__ */ new Map());
111
+ if (!areStoreFactoryArgsEqual(stableArgsRef.current, args)) stableArgsRef.current = args;
112
+ const value = useMemo(() => {
113
+ if ("factory" in hook) return hook.factory(...stableArgsRef.current);
114
+ return hook.obj;
115
+ }, [hook, stableArgsRef.current]);
116
+ useEffect(() => {
117
+ const disposer = getStoreDisposer(value);
118
+ const pendingTimeout = pendingDisposalsRef.current.get(value);
119
+ if (pendingTimeout !== void 0) {
120
+ clearTimeout(pendingTimeout);
121
+ pendingDisposalsRef.current.delete(value);
122
+ }
123
+ return () => {
124
+ if (!disposer) return;
125
+ const timeoutId = setTimeout(() => {
126
+ pendingDisposalsRef.current.delete(value);
127
+ disposer();
128
+ }, 0);
129
+ pendingDisposalsRef.current.set(value, timeoutId);
130
+ };
131
+ }, [value]);
132
+ if (typeof window === "undefined") return unwrapReactStoreValueOnServer(value);
133
+ return unwrapReactStoreValue(value);
42
134
  };
43
135
  }
44
136
  function useFragno(clientObj) {
@@ -1 +1 @@
1
- {"version":3,"file":"react.js","names":["listenKeys","$store","keys","listener","keysSet","Set","add","undefined","listen","value","oldValue","changed","has","subscribeKeys","unbind","hydrateFromWindow","isReadableAtom","isGetHook","isMutatorHook","isStore","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","createStripeFragmentClients","FragnoPublicClientConfig","createStripeFragmentClient","config"],"sources":["../../../../../node_modules/.pnpm/nanostores@1.1.0/node_modules/nanostores/listen-keys/index.js","../../../../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 { hydrateFromWindow } from \"../util/ssr.js\";\nimport { isReadableAtom } from \"../util/nanostores.js\";\nimport { isGetHook, isMutatorHook, isStore } from \"./client.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 { createStripeFragmentClients } from \"..\";\nimport type { FragnoPublicClientConfig } from \"@fragno-dev/core/client\";\n\nexport function createStripeFragmentClient(config: FragnoPublicClientConfig = {}) {\n return useFragno(createStripeFragmentClients(config));\n}\n"],"x_google_ignoreList":[0],"mappings":";;;;AAAA,SAAgBA,WAAWC,QAAQC,MAAMC,UAAU;CACjD,IAAIC,UAAU,IAAIC,IAAIH,MAAMI,WAAc;AAC1C,QAAOL,OAAOO,OAAO,CAACC,OAAOC,UAAUC,YAAY;AACjD,MAAIP,QAAQQ,IAAID,QAAQ,CACtBR,UAASM,OAAOC,UAAUC,QAAQ;CAErC,EAAC;AACJ;;;;ACAA,SAASc,gBAAgBC,MAAM;AAC9B,QAAO,CAAC,EAAEC,MAAMC,OAAO,GAAG,CAAE,MAAK;EAChC,MAAMC,kBAAkBF,OAAOG,OAAOC,OAAOJ,KAAK,GAAG,CAAE;EACvD,MAAMK,mBAAmBJ,QAAQE,OAAOC,OAAOH,MAAM,GAAG,CAAE;EAC1D,MAAMK,QAAQX,QAAQ,MAAMI,KAAKO,MAAM;GACtCN;GACAC;EACA,EAAC,EAAE,CAACF,MAAM,GAAG,CAAC,GAAGG,iBAAiB,GAAGG,gBAAiB,CAAC,EAAC;AACzD,aAAWE,WAAW,YAAa,QAAOD,MAAME,KAAK;AACrD,SAAOC,SAASH,MAAM;CACtB;AACF;AACA,SAASI,mBAAmBX,MAAM;AACjC,QAAO,MAAM;AACZ,SAAOU,SAASd,QAAQ,MAAMI,KAAKY,cAAc,CAACZ,IAAK,EAAC,CAAC;CACzD;AACF;AACA,SAASa,iBAAiBb,MAAM;AAC/B,KAAIV,eAAeU,KAAKc,IAAI,CAAE,QAAO,MAAMJ,SAASV,KAAKc,IAAI;AAC7D,QAAO,MAAM;EACZ,MAAMC,SAAS,CAAE;AACjB,OAAK,MAAMC,OAAOhB,KAAKc,KAAK;AAC3B,QAAKV,OAAOa,UAAUC,eAAeC,KAAKnB,KAAKc,KAAKE,IAAI,CAAE;GAC1D,MAAMI,QAAQpB,KAAKc,IAAIE;AACvB,OAAI1B,eAAe8B,MAAM,CAAEL,QAAOC,OAAON,SAASU,MAAM;OACnDL,QAAOC,OAAOI;EACpB;AACA,SAAOL;CACP;AACF;AACA,SAASM,UAAUC,WAAW;CAC7B,MAAMP,SAAS,CAAE;AACjB,MAAK,MAAMC,OAAOM,WAAW;AAC5B,OAAKlB,OAAOa,UAAUC,eAAeC,KAAKG,WAAWN,IAAI,CAAE;EAC3D,MAAMhB,OAAOsB,UAAUN;AACvB,MAAIzB,UAAUS,KAAK,CAAEe,QAAOC,OAAOjB,gBAAgBC,KAAK;WAC/CR,cAAcQ,KAAK,CAAEe,QAAOC,OAAOL,mBAAmBX,KAAK;WAC3DP,QAAQO,KAAK,CAAEe,QAAOC,OAAOH,iBAAiBb,KAAK;MACvDe,QAAOC,OAAOhB;CACpB;AACA,QAAOe;AACR;AACA,SAASL,SAASH,OAAOgB,UAAU,CAAE,GAAE;CACtC,MAAMC,cAAc3B,OAAOU,MAAME,KAAK,CAAC;CACvC,MAAM,EAAEgB,MAAMC,OAAO,CAACnB,OAAOkB,IAAI,GAAG,GAAGF;CACvC,MAAMI,YAAYhC,YAAaiC,cAAa;EAC3C,MAAMC,aAAcT,WAAU;AAC7B,OAAII,YAAYM,YAAYV,MAAO;AACnCI,eAAYM,UAAUV;AACtBQ,aAAU;EACV;AACDC,aAAWtB,MAAMa,MAAM;AACvB,MAAIK,MAAMM,OAAQ,QAAOrC,WAAWa,OAAOkB,MAAMI,WAAW;AAC5D,SAAOtB,MAAMyB,OAAOH,WAAW;CAC/B,GAAEH,KAAK;CACR,MAAMjB,MAAMA,MAAMe,YAAYM;AAC9B,QAAOhC,qBAAqB6B,WAAWlB,KAAK,MAAM;AACjD,SAAOA,KAAK;CACZ,EAAC;AACH;;;;AC9DA,SAAgB6B,2BAA2BC,SAAmC,CAAE,GAAE;AAChF,QAAOJ,UAAUC,4BAA4BG,OAAO,CAAC;AACvD"}
1
+ {"version":3,"file":"react.js","names":["listenKeys","$store","keys","listener","keysSet","Set","add","undefined","listen","value","oldValue","changed","has","subscribeKeys","unbind","isReadableAtom","hydrateFromWindow","isGetHook","isMutatorHook","isStore","listenKeys","useCallback","useEffect","useMemo","useRef","useSyncExternalStore","createReactHook","hook","path","query","pathParamValues","Object","values","queryParamValues","store","window","get","useStore","createReactMutator","mutatorStore","isPlainObject","value","prototype","getPrototypeOf","areStoreFactoryValuesEqual","left","right","is","Array","isArray","length","every","index","Date","getTime","leftKeys","keys","sort","rightKeys","key","areStoreFactoryArgsEqual","getStoreDisposer","disposer","Symbol","dispose","bind","createReactStoreObjectView","getAtomValue","atomValues","Map","boundMethods","Proxy","target","property","_receiver","propertyValue","Reflect","has","atomValue","set","boundMethod","unwrapReactStoreValueOnServer","unwrapReactStoreValue","atomEntries","flatMap","fieldValue","snapshotRef","map","getSnapshot","nextSnapshot","previousSnapshot","current","entry","onStoreChange","unsubscribes","listen","unsubscribe","atomIndex","findIndex","entryStore","createReactStore","args","stableArgsRef","pendingDisposalsRef","factory","obj","pendingTimeout","clearTimeout","delete","timeoutId","setTimeout","useFragno","clientObj","result","hasOwnProperty","call","options","deps","subscribe","onChange","emitChange","FragnoHydrator","children","FragnoPublicClientConfig","useFragno","createStripeFragmentClients","createStripeFragmentClient","config"],"sources":["../../../../../node_modules/.pnpm/nanostores@1.2.0/node_modules/nanostores/listen-keys/index.js","../../../../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 { isReadableAtom } from \"../util/nanostores.js\";\nimport { hydrateFromWindow } from \"../util/ssr.js\";\nimport { isGetHook, isMutatorHook, isStore } from \"./client.js\";\nimport { listenKeys } from \"nanostores\";\nimport { useCallback, useEffect, 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}\nconst isPlainObject = (value) => {\n\tif (!value || typeof value !== \"object\") return false;\n\tconst prototype = Object.getPrototypeOf(value);\n\treturn prototype === Object.prototype || prototype === null;\n};\nconst areStoreFactoryValuesEqual = (left, right) => {\n\tif (Object.is(left, right)) return true;\n\tif (Array.isArray(left) && Array.isArray(right)) return left.length === right.length && left.every((value, index) => areStoreFactoryValuesEqual(value, right[index]));\n\tif (left instanceof Date && right instanceof Date) return left.getTime() === right.getTime();\n\tif (isReadableAtom(left) || isReadableAtom(right)) return left === right;\n\tif (typeof left === \"function\" || typeof right === \"function\") return left === right;\n\tif (isPlainObject(left) && isPlainObject(right)) {\n\t\tconst leftKeys = Object.keys(left).sort();\n\t\tconst rightKeys = Object.keys(right).sort();\n\t\treturn leftKeys.length === rightKeys.length && leftKeys.every((key, index) => key === rightKeys[index] && areStoreFactoryValuesEqual(left[key], right[key]));\n\t}\n\treturn false;\n};\nconst areStoreFactoryArgsEqual = (left, right) => left.length === right.length && left.every((value, index) => areStoreFactoryValuesEqual(value, right[index]));\nconst getStoreDisposer = (value) => {\n\tconst disposer = value[Symbol.dispose];\n\treturn typeof disposer === \"function\" ? disposer.bind(value) : void 0;\n};\nconst createReactStoreObjectView = (value, getAtomValue) => {\n\tconst atomValues = /* @__PURE__ */ new Map();\n\tconst boundMethods = /* @__PURE__ */ new Map();\n\treturn new Proxy(value, { get(target, property, _receiver) {\n\t\tconst propertyValue = Reflect.get(target, property, target);\n\t\tif (isReadableAtom(propertyValue)) {\n\t\t\tif (atomValues.has(propertyValue)) return atomValues.get(propertyValue);\n\t\t\tconst atomValue = getAtomValue(propertyValue);\n\t\t\tatomValues.set(propertyValue, atomValue);\n\t\t\treturn atomValue;\n\t\t}\n\t\tif (typeof propertyValue === \"function\") {\n\t\t\tif (boundMethods.has(property)) return boundMethods.get(property);\n\t\t\tconst boundMethod = propertyValue.bind(target);\n\t\t\tboundMethods.set(property, boundMethod);\n\t\t\treturn boundMethod;\n\t\t}\n\t\treturn propertyValue;\n\t} });\n};\nfunction unwrapReactStoreValueOnServer(value) {\n\tif (isReadableAtom(value)) return value.get();\n\treturn createReactStoreObjectView(value, (store) => store.get());\n}\nfunction unwrapReactStoreValue(value) {\n\tif (isReadableAtom(value)) return useStore(value);\n\tconst atomEntries = Object.keys(value).flatMap((key) => {\n\t\tconst fieldValue = value[key];\n\t\treturn isReadableAtom(fieldValue) ? [[key, fieldValue]] : [];\n\t});\n\tconst snapshotRef = useRef(atomEntries.map(([, store]) => store.get()));\n\tconst getSnapshot = () => {\n\t\tconst nextSnapshot = atomEntries.map(([, store]) => store.get());\n\t\tconst previousSnapshot = snapshotRef.current;\n\t\tif (previousSnapshot.length === nextSnapshot.length && previousSnapshot.every((entry, index) => Object.is(entry, nextSnapshot[index]))) return previousSnapshot;\n\t\tsnapshotRef.current = nextSnapshot;\n\t\treturn nextSnapshot;\n\t};\n\tconst atomValues = useSyncExternalStore((onStoreChange) => {\n\t\tconst unsubscribes = atomEntries.map(([, store]) => store.listen(onStoreChange));\n\t\treturn () => {\n\t\t\tfor (const unsubscribe of unsubscribes) unsubscribe();\n\t\t};\n\t}, getSnapshot, getSnapshot);\n\treturn useMemo(() => createReactStoreObjectView(value, (store) => {\n\t\tconst atomIndex = atomEntries.findIndex(([, entryStore]) => entryStore === store);\n\t\treturn atomIndex === -1 ? store.get() : atomValues[atomIndex];\n\t}), [\n\t\tvalue,\n\t\tatomEntries,\n\t\tatomValues\n\t]);\n}\nfunction createReactStore(hook) {\n\treturn ((...args) => {\n\t\tconst stableArgsRef = useRef(args);\n\t\tconst pendingDisposalsRef = useRef(/* @__PURE__ */ new Map());\n\t\tif (!areStoreFactoryArgsEqual(stableArgsRef.current, args)) stableArgsRef.current = args;\n\t\tconst value = useMemo(() => {\n\t\t\tif (\"factory\" in hook) return hook.factory(...stableArgsRef.current);\n\t\t\treturn hook.obj;\n\t\t}, [hook, stableArgsRef.current]);\n\t\tuseEffect(() => {\n\t\t\tconst disposer = getStoreDisposer(value);\n\t\t\tconst pendingTimeout = pendingDisposalsRef.current.get(value);\n\t\t\tif (pendingTimeout !== void 0) {\n\t\t\t\tclearTimeout(pendingTimeout);\n\t\t\t\tpendingDisposalsRef.current.delete(value);\n\t\t\t}\n\t\t\treturn () => {\n\t\t\t\tif (!disposer) return;\n\t\t\t\tconst timeoutId = setTimeout(() => {\n\t\t\t\t\tpendingDisposalsRef.current.delete(value);\n\t\t\t\t\tdisposer();\n\t\t\t\t}, 0);\n\t\t\t\tpendingDisposalsRef.current.set(value, timeoutId);\n\t\t\t};\n\t\t}, [value]);\n\t\tif (typeof window === \"undefined\") return unwrapReactStoreValueOnServer(value);\n\t\treturn unwrapReactStoreValue(value);\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 type { FragnoPublicClientConfig } from \"@fragno-dev/core/client\";\nimport { useFragno } from \"@fragno-dev/core/react\";\n\nimport { createStripeFragmentClients } from \"..\";\n\nexport function createStripeFragmentClient(config: FragnoPublicClientConfig = {}) {\n return useFragno(createStripeFragmentClients(config));\n}\n"],"x_google_ignoreList":[0],"mappings":"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"}
@@ -122,7 +122,7 @@ declare function createStripeFragmentClient(config?: FragnoPublicClientConfig):
122
122
  createdAt: zod819.ZodDate;
123
123
  updatedAt: zod819.ZodDate;
124
124
  }, zod_v4_core63.$strip>>;
125
- }, zod_v4_core63.$strip>, string, string>;
125
+ }, zod_v4_core63.$strip>, "UNAUTHORIZED", string>;
126
126
  useBillingPortal: _fragno_dev_core_solid0.FragnoSolidMutator<_fragno_dev_core_api8.NonGetHTTPMethod, "/portal", zod819.ZodObject<{
127
127
  returnUrl: zod819.ZodURL;
128
128
  }, zod_v4_core63.$strip> | undefined, zod819.ZodObject<{
@@ -1 +1 @@
1
- {"version":3,"file":"solid.d.ts","names":[],"sources":["../../../../src/client/solid.ts"],"sourcesContent":[],"mappings":";;;;;;;iBAIgB,0BAAA,UAAmC;;;UAA6B,MAAA,CAAA;;;MAAhE,aAAA,oBAA0B,kBAAA;MAAA,OAAA,kBAAA;MAAS,QAAA,oBAAA,mBAAA,kBAAA,CAAA;MAA6B,OAAA,oBAAA,gBAAA"}
1
+ {"version":3,"file":"solid.d.ts","names":[],"sources":["../../../../src/client/solid.ts"],"sourcesContent":[],"mappings":";;;;;;;iBAKgB,0BAAA,UAAmC;;;UAA6B,MAAA,CAAA;;;MAAhE,aAAA,oBAA0B,kBAAA;MAAA,OAAA,kBAAA;MAAS,QAAA,oBAAA,mBAAA,kBAAA,CAAA;MAA6B,OAAA,oBAAA,gBAAA"}
@@ -1,8 +1,8 @@
1
- import { atom, createStripeFragmentClients, isGetHook, isMutatorHook, isReadableAtom, isStore } from "../src-Cw3xL5oQ.js";
2
- import { createStore, reconcile } from "solid-js/store";
1
+ import { atom, createStripeFragmentClients, isGetHook, isMutatorHook, isReadableAtom, isStore } from "../src-D6VWnvEs.js";
3
2
  import { createEffect, onCleanup } from "solid-js";
3
+ import { createStore, reconcile } from "solid-js/store";
4
4
 
5
- //#region ../../node_modules/.pnpm/@nanostores+solid@1.1.1_nanostores@1.1.0_solid-js@1.9.10/node_modules/@nanostores/solid/dist/index.js
5
+ //#region ../../node_modules/.pnpm/@nanostores+solid@1.1.1_nanostores@1.2.0_solid-js@1.9.10/node_modules/@nanostores/solid/dist/index.js
6
6
  function m(e, o = {}) {
7
7
  let t = e.listen(() => {}), [r, s] = createStore({ value: e.get() }), n = e.subscribe((i) => {
8
8
  s("value", reconcile(i, o));
@@ -86,16 +86,30 @@ function createSolidMutator(hook) {
86
86
  };
87
87
  };
88
88
  }
89
- function createSolidStore(hook) {
90
- if (isReadableAtom(hook.obj)) return m(hook.obj);
89
+ function unwrapSolidStoreValue(value) {
90
+ if (isReadableAtom(value)) return m(value);
91
91
  const result = {};
92
- for (const key in hook.obj) {
93
- if (!Object.prototype.hasOwnProperty.call(hook.obj, key)) continue;
94
- const value = hook.obj[key];
95
- if (isReadableAtom(value)) result[key] = m(value);
96
- else result[key] = value;
92
+ for (const key in value) {
93
+ if (!Object.prototype.hasOwnProperty.call(value, key)) continue;
94
+ const fieldValue = value[key];
95
+ if (isReadableAtom(fieldValue)) result[key] = m(fieldValue);
96
+ else result[key] = fieldValue;
97
+ }
98
+ return result;
99
+ }
100
+ function createSolidStore(hook) {
101
+ if ("obj" in hook) {
102
+ if (isReadableAtom(hook.obj)) return m(hook.obj);
103
+ return () => unwrapSolidStoreValue(hook.obj);
97
104
  }
98
- return () => result;
105
+ return (...args) => {
106
+ const value = hook.factory(...args);
107
+ const disposer = value[Symbol.dispose];
108
+ if (typeof disposer === "function") onCleanup(() => {
109
+ disposer.call(value);
110
+ });
111
+ return unwrapSolidStoreValue(value);
112
+ };
99
113
  }
100
114
  function useFragno(clientObj) {
101
115
  const result = {};
@@ -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","isReadableAtom","isGetHook","isMutatorHook","isStore","atom","useStore","createEffect","isAccessor","value","accessorToAtom","accessor","a","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","createStripeFragmentClients","FragnoPublicClientConfig","createStripeFragmentClient","config"],"sources":["../../../../../node_modules/.pnpm/@nanostores+solid@1.1.1_nanostores@1.1.0_solid-js@1.9.10/node_modules/@nanostores/solid/dist/index.js","../../../../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 { isReadableAtom } from \"../util/nanostores.js\";\nimport { isGetHook, isMutatorHook, isStore } from \"./client.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 { createStripeFragmentClients } from \"..\";\nimport type { FragnoPublicClientConfig } from \"@fragno-dev/core/client\";\n\nexport function createStripeFragmentClient(config: FragnoPublicClientConfig = {}) {\n return useFragno(createStripeFragmentClients(config));\n}\n"],"x_google_ignoreList":[0],"mappings":"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"}
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","isReadableAtom","isGetHook","isMutatorHook","isStore","atom","createEffect","onCleanup","useStore","isAccessor","value","accessorToAtom","accessor","a","set","createSolidHook","hook","path","query","pathParams","queryParams","key","Object","entries","v","storeValue","store","data","loading","error","createSolidMutator","mutatorStore","mutate","args","body","unwrapSolidStoreValue","result","prototype","hasOwnProperty","call","fieldValue","createSolidStore","obj","factory","disposer","Symbol","dispose","useFragno","clientObj","FragnoPublicClientConfig","useFragno","createStripeFragmentClients","createStripeFragmentClient","config"],"sources":["../../../../../node_modules/.pnpm/@nanostores+solid@1.1.1_nanostores@1.2.0_solid-js@1.9.10/node_modules/@nanostores/solid/dist/index.js","../../../../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 { isReadableAtom } from \"../util/nanostores.js\";\nimport { isGetHook, isMutatorHook, isStore } from \"./client.js\";\nimport { atom } from \"nanostores\";\nimport { createEffect, onCleanup } from \"solid-js\";\nimport { useStore } from \"@nanostores/solid\";\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 unwrapSolidStoreValue(value) {\n\tif (isReadableAtom(value)) return useStore(value);\n\tconst result = {};\n\tfor (const key in value) {\n\t\tif (!Object.prototype.hasOwnProperty.call(value, key)) continue;\n\t\tconst fieldValue = value[key];\n\t\tif (isReadableAtom(fieldValue)) result[key] = useStore(fieldValue);\n\t\telse result[key] = fieldValue;\n\t}\n\treturn result;\n}\nfunction createSolidStore(hook) {\n\tif (\"obj\" in hook) {\n\t\tif (isReadableAtom(hook.obj)) return useStore(hook.obj);\n\t\treturn (() => unwrapSolidStoreValue(hook.obj));\n\t}\n\treturn ((...args) => {\n\t\tconst value = hook.factory(...args);\n\t\tconst disposer = value[Symbol.dispose];\n\t\tif (typeof disposer === \"function\") onCleanup(() => {\n\t\t\tdisposer.call(value);\n\t\t});\n\t\treturn unwrapSolidStoreValue(value);\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] = 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 type { FragnoPublicClientConfig } from \"@fragno-dev/core/client\";\nimport { useFragno } from \"@fragno-dev/core/solid\";\n\nimport { createStripeFragmentClients } from \"..\";\n\nexport function createStripeFragmentClient(config: FragnoPublicClientConfig = {}) {\n return useFragno(createStripeFragmentClients(config));\n}\n"],"x_google_ignoreList":[0],"mappings":"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"}
@@ -122,7 +122,7 @@ declare function createStripeFragmentClient(config?: FragnoPublicClientConfig):
122
122
  createdAt: zod1019.ZodDate;
123
123
  updatedAt: zod1019.ZodDate;
124
124
  }, zod_v4_core78.$strip>>;
125
- }, zod_v4_core78.$strip>, string, string>;
125
+ }, zod_v4_core78.$strip>, "UNAUTHORIZED", string>;
126
126
  useBillingPortal: _fragno_dev_core_svelte0.FragnoSvelteMutator<_fragno_dev_core_api11.NonGetHTTPMethod, "/portal", zod1019.ZodObject<{
127
127
  returnUrl: zod1019.ZodURL;
128
128
  }, zod_v4_core78.$strip> | undefined, zod1019.ZodObject<{
@@ -1 +1 @@
1
- {"version":3,"file":"svelte.d.ts","names":[],"sources":["../../../../src/client/svelte.ts"],"sourcesContent":[],"mappings":";;;;;;;iBAIgB,0BAAA,UAAmC;;;UAA6B,OAAA,CAAA;;;MAAhE,aAAA,qBAA0B,mBAAA;MAAA,OAAA,mBAAA;MAAS,QAAA,qBAAA,oBAAA,mBAAA,CAAA;MAA6B,OAAA,qBAAA,iBAAA"}
1
+ {"version":3,"file":"svelte.d.ts","names":[],"sources":["../../../../src/client/svelte.ts"],"sourcesContent":[],"mappings":";;;;;;;iBAKgB,0BAAA,UAAmC;;;UAA6B,OAAA,CAAA;;;MAAhE,aAAA,qBAA0B,mBAAA;MAAA,OAAA,mBAAA;MAAS,QAAA,qBAAA,oBAAA,mBAAA,CAAA;MAA6B,OAAA,qBAAA,iBAAA"}
@@ -1,6 +1,6 @@
1
- import { atom, createStripeFragmentClients, isGetHook, isMutatorHook, isStore } from "../src-Cw3xL5oQ.js";
2
- import { get, writable } from "svelte/store";
1
+ import { atom, createStripeFragmentClients, isGetHook, isMutatorHook, isStore } from "../src-D6VWnvEs.js";
3
2
  import { onDestroy } from "svelte";
3
+ import { get, writable } from "svelte/store";
4
4
 
5
5
  //#region ../fragno/dist/client/client.svelte.js
6
6
  function isReadable(value) {
@@ -99,7 +99,15 @@ function createSvelteMutator(hook) {
99
99
  };
100
100
  }
101
101
  function createSvelteStore(hook) {
102
- return hook.obj;
102
+ if ("obj" in hook) return hook.obj;
103
+ return (...args) => {
104
+ const value = hook.factory(...args);
105
+ const disposer = value[Symbol.dispose];
106
+ if (typeof disposer === "function") onDestroy(() => {
107
+ disposer.call(value);
108
+ });
109
+ return value;
110
+ };
103
111
  }
104
112
  function useFragno(clientObj) {
105
113
  const result = {};
@@ -1 +1 @@
1
- {"version":3,"file":"svelte.js","names":["isGetHook","isMutatorHook","isStore","atom","get","writable","onDestroy","isReadable","value","isCallable","readableToAtom","a","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","createStripeFragmentClients","FragnoPublicClientConfig","createStripeFragmentClient","config"],"sources":["../../../../fragno/dist/client/client.svelte.js","../../../src/client/svelte.ts"],"sourcesContent":["import { isGetHook, isMutatorHook, isStore } from \"./client.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 { createStripeFragmentClients } from \"..\";\nimport type { FragnoPublicClientConfig } from \"@fragno-dev/core/client\";\n\nexport function createStripeFragmentClient(config: FragnoPublicClientConfig = {}) {\n return useFragno(createStripeFragmentClients(config));\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"svelte.js","names":["isGetHook","isMutatorHook","isStore","atom","onDestroy","get","writable","isReadable","value","isCallable","readableToAtom","a","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","factory","disposer","Symbol","dispose","call","useFragno","clientObj","result","prototype","hasOwnProperty","FragnoPublicClientConfig","useFragno","createStripeFragmentClients","createStripeFragmentClient","config"],"sources":["../../../../fragno/dist/client/client.svelte.js","../../../src/client/svelte.ts"],"sourcesContent":["import { isGetHook, isMutatorHook, isStore } from \"./client.js\";\nimport { atom } from \"nanostores\";\nimport { onDestroy } from \"svelte\";\nimport { get, writable } from \"svelte/store\";\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\tif (\"obj\" in hook) return hook.obj;\n\treturn ((...args) => {\n\t\tconst value = hook.factory(...args);\n\t\tconst disposer = value[Symbol.dispose];\n\t\tif (typeof disposer === \"function\") onDestroy(() => {\n\t\t\tdisposer.call(value);\n\t\t});\n\t\treturn value;\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] = 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 type { FragnoPublicClientConfig } from \"@fragno-dev/core/client\";\nimport { useFragno } from \"@fragno-dev/core/svelte\";\n\nimport { createStripeFragmentClients } from \"..\";\n\nexport function createStripeFragmentClient(config: FragnoPublicClientConfig = {}) {\n return useFragno(createStripeFragmentClients(config));\n}\n"],"mappings":"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"}
@@ -122,7 +122,7 @@ declare function createStripeFragmentClient(config?: FragnoPublicClientConfig):
122
122
  createdAt: zod1219.ZodDate;
123
123
  updatedAt: zod1219.ZodDate;
124
124
  }, zod_v4_core93.$strip>>;
125
- }, zod_v4_core93.$strip>, string, string>;
125
+ }, zod_v4_core93.$strip>, "UNAUTHORIZED", string>;
126
126
  useBillingPortal: _fragno_dev_core_vanilla0.FragnoVanillaMutator<_fragno_dev_core_api14.NonGetHTTPMethod, "/portal", zod1219.ZodObject<{
127
127
  returnUrl: zod1219.ZodURL;
128
128
  }, zod_v4_core93.$strip> | undefined, zod1219.ZodObject<{
@@ -1 +1 @@
1
- {"version":3,"file":"vanilla.d.ts","names":[],"sources":["../../../../src/client/vanilla.ts"],"sourcesContent":[],"mappings":";;;;;;;iBAIgB,0BAAA,UAAmC;;;UAA6B,OAAA,CAAA;;;MAAhE,aAAA,qBAA0B,mBAAA;MAAA,OAAA,mBAAA;MAAS,QAAA,qBAAA,oBAAA,mBAAA,CAAA;MAA6B,OAAA,qBAAA,iBAAA"}
1
+ {"version":3,"file":"vanilla.d.ts","names":[],"sources":["../../../../src/client/vanilla.ts"],"sourcesContent":[],"mappings":";;;;;;;iBAKgB,0BAAA,UAAmC;;;UAA6B,OAAA,CAAA;;;MAAhE,aAAA,qBAA0B,mBAAA;MAAA,OAAA,mBAAA;MAAS,QAAA,qBAAA,oBAAA,mBAAA,CAAA;MAA6B,OAAA,qBAAA,iBAAA"}
@@ -1,4 +1,4 @@
1
- import { createStripeFragmentClients, isGetHook, isMutatorHook } from "../src-Cw3xL5oQ.js";
1
+ import { createStripeFragmentClients, isGetHook, isMutatorHook, isStore } from "../src-D6VWnvEs.js";
2
2
 
3
3
  //#region ../fragno/dist/util/async.js
4
4
  /**
@@ -116,6 +116,25 @@ function createVanillaMutator(hook) {
116
116
  };
117
117
  };
118
118
  }
119
+ const getStoreDisposer = (value) => {
120
+ const disposer = value[Symbol.dispose];
121
+ return typeof disposer === "function" ? disposer.bind(value) : void 0;
122
+ };
123
+ function createVanillaStore(hook) {
124
+ if ("obj" in hook) return hook.obj;
125
+ return (...args) => {
126
+ const value = hook.factory(...args);
127
+ const disposer = getStoreDisposer(value);
128
+ if (!disposer) return value;
129
+ Object.defineProperty(value, "destroy", {
130
+ value: disposer,
131
+ enumerable: false,
132
+ configurable: true,
133
+ writable: true
134
+ });
135
+ return value;
136
+ };
137
+ }
119
138
  function useFragno(clientObj) {
120
139
  const result = {};
121
140
  for (const key in clientObj) {
@@ -123,6 +142,7 @@ function useFragno(clientObj) {
123
142
  const hook = clientObj[key];
124
143
  if (isGetHook(hook)) result[key] = createVanillaListeners(hook);
125
144
  else if (isMutatorHook(hook)) result[key] = createVanillaMutator(hook);
145
+ else if (isStore(hook)) result[key] = createVanillaStore(hook);
126
146
  else result[key] = hook;
127
147
  }
128
148
  return result;
@@ -1 +1 @@
1
- {"version":3,"file":"vanilla.js","names":["createAsyncIteratorFromCallback","subscribe","queue","unsubscribe","resolveNext","unsubscribeFunc","value","done","push","length","shift","Promise","resolve","result","isGetHook","isMutatorHook","createAsyncIteratorFromCallback","createVanillaListeners","hook","path","query","store","listen","callback","loading","error","data","subscribe","refetch","revalidate","get","Symbol","asyncIterator","createVanillaMutator","mutatorStore","value","mutate","body","useFragno","clientObj","result","key","Object","prototype","hasOwnProperty","call","useFragno","createStripeFragmentClients","FragnoPublicClientConfig","createStripeFragmentClient","config"],"sources":["../../../../fragno/dist/util/async.js","../../../../fragno/dist/client/vanilla.js","../../../src/client/vanilla.ts"],"sourcesContent":["//#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\nexport { createAsyncIteratorFromCallback };\n//# sourceMappingURL=async.js.map","import { isGetHook, isMutatorHook } from \"./client.js\";\nimport { createAsyncIteratorFromCallback } from \"../util/async.js\";\n\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 { createStripeFragmentClients } from \"..\";\nimport type { FragnoPublicClientConfig } from \"@fragno-dev/core/client\";\n\nexport function createStripeFragmentClient(config: FragnoPublicClientConfig = {}) {\n return useFragno(createStripeFragmentClients(config));\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"vanilla.js","names":["createAsyncIteratorFromCallback","subscribe","queue","unsubscribe","resolveNext","unsubscribeFunc","value","done","push","length","shift","Promise","resolve","result","isGetHook","isMutatorHook","isStore","createAsyncIteratorFromCallback","createVanillaListeners","hook","path","query","store","listen","callback","loading","error","data","subscribe","refetch","revalidate","get","Symbol","asyncIterator","createVanillaMutator","mutatorStore","value","mutate","body","getStoreDisposer","disposer","dispose","bind","createVanillaStore","obj","args","factory","Object","defineProperty","enumerable","configurable","writable","useFragno","clientObj","result","key","prototype","hasOwnProperty","call","FragnoPublicClientConfig","useFragno","createStripeFragmentClients","createStripeFragmentClient","config"],"sources":["../../../../fragno/dist/util/async.js","../../../../fragno/dist/client/vanilla.js","../../../src/client/vanilla.ts"],"sourcesContent":["//#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\nexport { createAsyncIteratorFromCallback };\n//# sourceMappingURL=async.js.map","import { isGetHook, isMutatorHook, isStore } from \"./client.js\";\nimport { createAsyncIteratorFromCallback } from \"../util/async.js\";\n\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}\nconst getStoreDisposer = (value) => {\n\tconst disposer = value[Symbol.dispose];\n\treturn typeof disposer === \"function\" ? disposer.bind(value) : void 0;\n};\nfunction createVanillaStore(hook) {\n\tif (\"obj\" in hook) return hook.obj;\n\treturn ((...args) => {\n\t\tconst value = hook.factory(...args);\n\t\tconst disposer = getStoreDisposer(value);\n\t\tif (!disposer) return value;\n\t\tObject.defineProperty(value, \"destroy\", {\n\t\t\tvalue: disposer,\n\t\t\tenumerable: false,\n\t\t\tconfigurable: true,\n\t\t\twritable: true\n\t\t});\n\t\treturn value;\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 if (isStore(hook)) result[key] = createVanillaStore(hook);\n\t\telse result[key] = hook;\n\t}\n\treturn result;\n}\n\n//#endregion\nexport { useFragno };\n//# sourceMappingURL=vanilla.js.map","import type { FragnoPublicClientConfig } from \"@fragno-dev/core/client\";\nimport { useFragno } from \"@fragno-dev/core/vanilla\";\n\nimport { createStripeFragmentClients } from \"..\";\n\nexport function createStripeFragmentClient(config: FragnoPublicClientConfig = {}) {\n return useFragno(createStripeFragmentClients(config));\n}\n"],"mappings":"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"}
@@ -122,7 +122,7 @@ declare function createStripeFragmentClient(config?: FragnoPublicClientConfig):
122
122
  createdAt: zod0.ZodDate;
123
123
  updatedAt: zod0.ZodDate;
124
124
  }, zod_v4_core0.$strip>>;
125
- }, zod_v4_core0.$strip>, string, string>;
125
+ }, zod_v4_core0.$strip>, "UNAUTHORIZED", string>;
126
126
  useBillingPortal: _fragno_dev_core_vue0.FragnoVueMutator<_fragno_dev_core_api0.NonGetHTTPMethod, "/portal", zod0.ZodObject<{
127
127
  returnUrl: zod0.ZodURL;
128
128
  }, zod_v4_core0.$strip> | undefined, zod0.ZodObject<{
@@ -1 +1 @@
1
- {"version":3,"file":"vue.d.ts","names":[],"sources":["../../../../src/client/vue.ts"],"sourcesContent":[],"mappings":";;;;;;;iBAIgB,0BAAA,UAAmC;;;UAA6B,IAAA,CAAA;;;MAAhE,aAAA,kBAA0B,gBAAA;MAAA,OAAA,gBAAA;MAAS,QAAA,kBAAA,iBAAA,gBAAA,CAAA;MAA6B,OAAA,kBAAA,cAAA"}
1
+ {"version":3,"file":"vue.d.ts","names":[],"sources":["../../../../src/client/vue.ts"],"sourcesContent":[],"mappings":";;;;;;;iBAKgB,0BAAA,UAAmC;;;UAA6B,IAAA,CAAA;;;MAAhE,aAAA,kBAA0B,gBAAA;MAAA,OAAA,gBAAA;MAAS,QAAA,kBAAA,iBAAA,gBAAA,CAAA;MAA6B,OAAA,kBAAA,cAAA"}
@@ -1,4 +1,4 @@
1
- import { atom, createStripeFragmentClients, isGetHook, isMutatorHook } from "../src-Cw3xL5oQ.js";
1
+ import { atom, createStripeFragmentClients, isGetHook, isMutatorHook, isReadableAtom, isStore } from "../src-D6VWnvEs.js";
2
2
  import { computed, getCurrentScope, isRef, onScopeDispose, ref, shallowRef, watch } from "vue";
3
3
 
4
4
  //#region ../fragno/dist/client/vue.js
@@ -79,6 +79,27 @@ function createVueMutator(hook) {
79
79
  };
80
80
  };
81
81
  }
82
+ function unwrapVueStoreValue(value) {
83
+ if (isReadableAtom(value)) return useStore(value);
84
+ const result = {};
85
+ for (const key in value) {
86
+ if (!Object.prototype.hasOwnProperty.call(value, key)) continue;
87
+ const fieldValue = value[key];
88
+ if (isReadableAtom(fieldValue)) result[key] = useStore(fieldValue);
89
+ else result[key] = fieldValue;
90
+ }
91
+ return result;
92
+ }
93
+ function createVueStore(hook) {
94
+ return (...args) => {
95
+ const value = "factory" in hook ? hook.factory(...args) : hook.obj;
96
+ const disposer = value[Symbol.dispose];
97
+ if (typeof disposer === "function" && getCurrentScope()) onScopeDispose(() => {
98
+ disposer.call(value);
99
+ });
100
+ return unwrapVueStoreValue(value);
101
+ };
102
+ }
82
103
  function useFragno(clientObj) {
83
104
  const result = {};
84
105
  for (const key in clientObj) {
@@ -86,6 +107,7 @@ function useFragno(clientObj) {
86
107
  const hook = clientObj[key];
87
108
  if (isGetHook(hook)) result[key] = createVueHook(hook);
88
109
  else if (isMutatorHook(hook)) result[key] = createVueMutator(hook);
110
+ else if (isStore(hook)) result[key] = createVueStore(hook);
89
111
  else result[key] = hook;
90
112
  }
91
113
  return result;
@@ -1 +1 @@
1
- {"version":3,"file":"vue.js","names":["isGetHook","isMutatorHook","atom","computed","computed$1","getCurrentScope","isRef","onScopeDispose","ref","shallowRef","watch","refToAtom","ref$1","a","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","createStripeFragmentClients","FragnoPublicClientConfig","createStripeFragmentClient","config"],"sources":["../../../../fragno/dist/client/vue.js","../../../src/client/vue.ts"],"sourcesContent":["import { isGetHook, isMutatorHook } from \"./client.js\";\nimport { atom } from \"nanostores\";\nimport { computed as computed$1, 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$1(() => store.value.loading),\n\t\t\terror: computed$1(() => store.value.error),\n\t\t\tdata: computed$1(() => 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 { createStripeFragmentClients } from \"..\";\nimport type { FragnoPublicClientConfig } from \"@fragno-dev/core/client\";\n\nexport function createStripeFragmentClient(config: FragnoPublicClientConfig = {}) {\n return useFragno(createStripeFragmentClients(config));\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"vue.js","names":["isReadableAtom","isGetHook","isMutatorHook","isStore","atom","computed","computed$1","getCurrentScope","isRef","onScopeDispose","ref","shallowRef","watch","refToAtom","ref$1","a","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","unwrapVueStoreValue","result","prototype","hasOwnProperty","call","fieldValue","createVueStore","factory","obj","disposer","Symbol","dispose","useFragno","clientObj","state","FragnoPublicClientConfig","useFragno","createStripeFragmentClients","createStripeFragmentClient","config"],"sources":["../../../../fragno/dist/client/vue.js","../../../src/client/vue.ts"],"sourcesContent":["import { isReadableAtom } from \"../util/nanostores.js\";\nimport { isGetHook, isMutatorHook, isStore } from \"./client.js\";\nimport { atom } from \"nanostores\";\nimport { computed as computed$1, 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$1(() => store.value.loading),\n\t\t\terror: computed$1(() => store.value.error),\n\t\t\tdata: computed$1(() => store.value.data)\n\t\t};\n\t};\n}\nfunction unwrapVueStoreValue(value) {\n\tif (isReadableAtom(value)) return useStore(value);\n\tconst result = {};\n\tfor (const key in value) {\n\t\tif (!Object.prototype.hasOwnProperty.call(value, key)) continue;\n\t\tconst fieldValue = value[key];\n\t\tif (isReadableAtom(fieldValue)) result[key] = useStore(fieldValue);\n\t\telse result[key] = fieldValue;\n\t}\n\treturn result;\n}\nfunction createVueStore(hook) {\n\treturn ((...args) => {\n\t\tconst value = \"factory\" in hook ? hook.factory(...args) : hook.obj;\n\t\tconst disposer = value[Symbol.dispose];\n\t\tif (typeof disposer === \"function\" && getCurrentScope()) onScopeDispose(() => {\n\t\t\tdisposer.call(value);\n\t\t});\n\t\treturn unwrapVueStoreValue(value);\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 if (isStore(hook)) result[key] = createVueStore(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 type { FragnoPublicClientConfig } from \"@fragno-dev/core/client\";\nimport { useFragno } from \"@fragno-dev/core/vue\";\n\nimport { createStripeFragmentClients } from \"..\";\n\nexport function createStripeFragmentClient(config: FragnoPublicClientConfig = {}) {\n return useFragno(createStripeFragmentClients(config));\n}\n"],"mappings":"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"}