@fragno-dev/stripe 2.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.
@@ -1,7 +1,7 @@
1
1
  import * as zod619 from "zod";
2
2
  import * as zod_v4_core48 from "zod/v4/core";
3
3
  import * as _fragno_dev_core_react0 from "@fragno-dev/core/react";
4
- import * as _fragno_dev_core_api6 from "@fragno-dev/core/api";
4
+ import * as _fragno_dev_core_api5 from "@fragno-dev/core/api";
5
5
  import { FragnoPublicClientConfig } from "@fragno-dev/core/client";
6
6
 
7
7
  //#region src/client/react.d.ts
@@ -122,14 +122,14 @@ 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>;
126
- useBillingPortal: _fragno_dev_core_react0.FragnoReactMutator<_fragno_dev_core_api6.NonGetHTTPMethod, "/portal", zod619.ZodObject<{
125
+ }, zod_v4_core48.$strip>, "UNAUTHORIZED", string>;
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<{
129
129
  url: zod619.ZodURL;
130
130
  redirect: zod619.ZodBoolean;
131
131
  }, zod_v4_core48.$strip> | undefined, "NO_STRIPE_CUSTOMER_FOR_ENTITY", string>;
132
- upgradeSubscription: _fragno_dev_core_react0.FragnoReactMutator<_fragno_dev_core_api6.NonGetHTTPMethod, "/subscription/upgrade", zod619.ZodObject<{
132
+ upgradeSubscription: _fragno_dev_core_react0.FragnoReactMutator<_fragno_dev_core_api5.NonGetHTTPMethod, "/subscription/upgrade", zod619.ZodObject<{
133
133
  priceId: zod619.ZodString;
134
134
  quantity: zod619.ZodNumber;
135
135
  successUrl: zod619.ZodURL;
@@ -142,7 +142,7 @@ declare function createStripeFragmentClient(config?: FragnoPublicClientConfig):
142
142
  redirect: zod619.ZodBoolean;
143
143
  sessionId: zod619.ZodOptional<zod619.ZodString>;
144
144
  }, zod_v4_core48.$strip> | undefined, "MISSING_CUSTOMER_INFO" | "SUBSCRIPTION_NOT_FOUND" | "CUSTOMER_SUBSCRIPTION_MISMATCH" | "UPGRADE_HAS_NO_EFFECT" | "SUBSCRIPTION_UPDATE_NOT_ALLOWED" | "SUBSCRIPTION_UPDATE_PROMO_CODE_NOT_ALLOWED" | "PROMOTION_CODE_CUSTOMER_NOT_FIRST_TIME" | "MULTIPLE_ACTIVE_SUBSCRIPTIONS" | "NO_ACTIVE_SUBSCRIPTIONS", string>;
145
- cancelSubscription: _fragno_dev_core_react0.FragnoReactMutator<_fragno_dev_core_api6.NonGetHTTPMethod, "/subscription/cancel", zod619.ZodObject<{
145
+ cancelSubscription: _fragno_dev_core_react0.FragnoReactMutator<_fragno_dev_core_api5.NonGetHTTPMethod, "/subscription/cancel", zod619.ZodObject<{
146
146
  returnUrl: zod619.ZodURL;
147
147
  subscriptionId: zod619.ZodOptional<zod619.ZodString>;
148
148
  }, 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-D1l5aeYY.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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"}
@@ -1,6 +1,6 @@
1
1
  import * as zod819 from "zod";
2
2
  import * as zod_v4_core63 from "zod/v4/core";
3
- import * as _fragno_dev_core_api9 from "@fragno-dev/core/api";
3
+ import * as _fragno_dev_core_api8 from "@fragno-dev/core/api";
4
4
  import { FragnoPublicClientConfig } from "@fragno-dev/core/client";
5
5
  import * as _fragno_dev_core_solid0 from "@fragno-dev/core/solid";
6
6
 
@@ -122,14 +122,14 @@ 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>;
126
- useBillingPortal: _fragno_dev_core_solid0.FragnoSolidMutator<_fragno_dev_core_api9.NonGetHTTPMethod, "/portal", zod819.ZodObject<{
125
+ }, zod_v4_core63.$strip>, "UNAUTHORIZED", string>;
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<{
129
129
  url: zod819.ZodURL;
130
130
  redirect: zod819.ZodBoolean;
131
131
  }, zod_v4_core63.$strip> | undefined, "NO_STRIPE_CUSTOMER_FOR_ENTITY", string>;
132
- upgradeSubscription: _fragno_dev_core_solid0.FragnoSolidMutator<_fragno_dev_core_api9.NonGetHTTPMethod, "/subscription/upgrade", zod819.ZodObject<{
132
+ upgradeSubscription: _fragno_dev_core_solid0.FragnoSolidMutator<_fragno_dev_core_api8.NonGetHTTPMethod, "/subscription/upgrade", zod819.ZodObject<{
133
133
  priceId: zod819.ZodString;
134
134
  quantity: zod819.ZodNumber;
135
135
  successUrl: zod819.ZodURL;
@@ -142,7 +142,7 @@ declare function createStripeFragmentClient(config?: FragnoPublicClientConfig):
142
142
  redirect: zod819.ZodBoolean;
143
143
  sessionId: zod819.ZodOptional<zod819.ZodString>;
144
144
  }, zod_v4_core63.$strip> | undefined, "MISSING_CUSTOMER_INFO" | "SUBSCRIPTION_NOT_FOUND" | "CUSTOMER_SUBSCRIPTION_MISMATCH" | "UPGRADE_HAS_NO_EFFECT" | "SUBSCRIPTION_UPDATE_NOT_ALLOWED" | "SUBSCRIPTION_UPDATE_PROMO_CODE_NOT_ALLOWED" | "PROMOTION_CODE_CUSTOMER_NOT_FIRST_TIME" | "MULTIPLE_ACTIVE_SUBSCRIPTIONS" | "NO_ACTIVE_SUBSCRIPTIONS", string>;
145
- cancelSubscription: _fragno_dev_core_solid0.FragnoSolidMutator<_fragno_dev_core_api9.NonGetHTTPMethod, "/subscription/cancel", zod819.ZodObject<{
145
+ cancelSubscription: _fragno_dev_core_solid0.FragnoSolidMutator<_fragno_dev_core_api8.NonGetHTTPMethod, "/subscription/cancel", zod819.ZodObject<{
146
146
  returnUrl: zod819.ZodURL;
147
147
  subscriptionId: zod819.ZodOptional<zod819.ZodString>;
148
148
  }, 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-D1l5aeYY.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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"}
@@ -1,6 +1,6 @@
1
1
  import * as zod1019 from "zod";
2
2
  import * as zod_v4_core78 from "zod/v4/core";
3
- import * as _fragno_dev_core_api12 from "@fragno-dev/core/api";
3
+ import * as _fragno_dev_core_api11 from "@fragno-dev/core/api";
4
4
  import { FragnoPublicClientConfig } from "@fragno-dev/core/client";
5
5
  import * as _fragno_dev_core_svelte0 from "@fragno-dev/core/svelte";
6
6
 
@@ -122,14 +122,14 @@ 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>;
126
- useBillingPortal: _fragno_dev_core_svelte0.FragnoSvelteMutator<_fragno_dev_core_api12.NonGetHTTPMethod, "/portal", zod1019.ZodObject<{
125
+ }, zod_v4_core78.$strip>, "UNAUTHORIZED", string>;
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<{
129
129
  url: zod1019.ZodURL;
130
130
  redirect: zod1019.ZodBoolean;
131
131
  }, zod_v4_core78.$strip> | undefined, "NO_STRIPE_CUSTOMER_FOR_ENTITY", string>;
132
- upgradeSubscription: _fragno_dev_core_svelte0.FragnoSvelteMutator<_fragno_dev_core_api12.NonGetHTTPMethod, "/subscription/upgrade", zod1019.ZodObject<{
132
+ upgradeSubscription: _fragno_dev_core_svelte0.FragnoSvelteMutator<_fragno_dev_core_api11.NonGetHTTPMethod, "/subscription/upgrade", zod1019.ZodObject<{
133
133
  priceId: zod1019.ZodString;
134
134
  quantity: zod1019.ZodNumber;
135
135
  successUrl: zod1019.ZodURL;
@@ -142,7 +142,7 @@ declare function createStripeFragmentClient(config?: FragnoPublicClientConfig):
142
142
  redirect: zod1019.ZodBoolean;
143
143
  sessionId: zod1019.ZodOptional<zod1019.ZodString>;
144
144
  }, zod_v4_core78.$strip> | undefined, "MISSING_CUSTOMER_INFO" | "SUBSCRIPTION_NOT_FOUND" | "CUSTOMER_SUBSCRIPTION_MISMATCH" | "UPGRADE_HAS_NO_EFFECT" | "SUBSCRIPTION_UPDATE_NOT_ALLOWED" | "SUBSCRIPTION_UPDATE_PROMO_CODE_NOT_ALLOWED" | "PROMOTION_CODE_CUSTOMER_NOT_FIRST_TIME" | "MULTIPLE_ACTIVE_SUBSCRIPTIONS" | "NO_ACTIVE_SUBSCRIPTIONS", string>;
145
- cancelSubscription: _fragno_dev_core_svelte0.FragnoSvelteMutator<_fragno_dev_core_api12.NonGetHTTPMethod, "/subscription/cancel", zod1019.ZodObject<{
145
+ cancelSubscription: _fragno_dev_core_svelte0.FragnoSvelteMutator<_fragno_dev_core_api11.NonGetHTTPMethod, "/subscription/cancel", zod1019.ZodObject<{
146
146
  returnUrl: zod1019.ZodURL;
147
147
  subscriptionId: zod1019.ZodOptional<zod1019.ZodString>;
148
148
  }, 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-D1l5aeYY.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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"}
@@ -1,6 +1,6 @@
1
1
  import * as zod1219 from "zod";
2
2
  import * as zod_v4_core93 from "zod/v4/core";
3
- import * as _fragno_dev_core_api15 from "@fragno-dev/core/api";
3
+ import * as _fragno_dev_core_api14 from "@fragno-dev/core/api";
4
4
  import { FragnoPublicClientConfig } from "@fragno-dev/core/client";
5
5
  import * as _fragno_dev_core_vanilla0 from "@fragno-dev/core/vanilla";
6
6
 
@@ -122,14 +122,14 @@ 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>;
126
- useBillingPortal: _fragno_dev_core_vanilla0.FragnoVanillaMutator<_fragno_dev_core_api15.NonGetHTTPMethod, "/portal", zod1219.ZodObject<{
125
+ }, zod_v4_core93.$strip>, "UNAUTHORIZED", string>;
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<{
129
129
  url: zod1219.ZodURL;
130
130
  redirect: zod1219.ZodBoolean;
131
131
  }, zod_v4_core93.$strip> | undefined, "NO_STRIPE_CUSTOMER_FOR_ENTITY", string>;
132
- upgradeSubscription: _fragno_dev_core_vanilla0.FragnoVanillaMutator<_fragno_dev_core_api15.NonGetHTTPMethod, "/subscription/upgrade", zod1219.ZodObject<{
132
+ upgradeSubscription: _fragno_dev_core_vanilla0.FragnoVanillaMutator<_fragno_dev_core_api14.NonGetHTTPMethod, "/subscription/upgrade", zod1219.ZodObject<{
133
133
  priceId: zod1219.ZodString;
134
134
  quantity: zod1219.ZodNumber;
135
135
  successUrl: zod1219.ZodURL;
@@ -142,7 +142,7 @@ declare function createStripeFragmentClient(config?: FragnoPublicClientConfig):
142
142
  redirect: zod1219.ZodBoolean;
143
143
  sessionId: zod1219.ZodOptional<zod1219.ZodString>;
144
144
  }, zod_v4_core93.$strip> | undefined, "MISSING_CUSTOMER_INFO" | "SUBSCRIPTION_NOT_FOUND" | "CUSTOMER_SUBSCRIPTION_MISMATCH" | "UPGRADE_HAS_NO_EFFECT" | "SUBSCRIPTION_UPDATE_NOT_ALLOWED" | "SUBSCRIPTION_UPDATE_PROMO_CODE_NOT_ALLOWED" | "PROMOTION_CODE_CUSTOMER_NOT_FIRST_TIME" | "MULTIPLE_ACTIVE_SUBSCRIPTIONS" | "NO_ACTIVE_SUBSCRIPTIONS", string>;
145
- cancelSubscription: _fragno_dev_core_vanilla0.FragnoVanillaMutator<_fragno_dev_core_api15.NonGetHTTPMethod, "/subscription/cancel", zod1219.ZodObject<{
145
+ cancelSubscription: _fragno_dev_core_vanilla0.FragnoVanillaMutator<_fragno_dev_core_api14.NonGetHTTPMethod, "/subscription/cancel", zod1219.ZodObject<{
146
146
  returnUrl: zod1219.ZodURL;
147
147
  subscriptionId: zod1219.ZodOptional<zod1219.ZodString>;
148
148
  }, 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-D1l5aeYY.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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"}