@fragno-dev/forms 0.1.0 → 0.1.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 zod671 from "zod";
2
2
  import * as zod_v4_core41 from "zod/v4/core";
3
3
  import * as _fragno_dev_core_react0 from "@fragno-dev/core/react";
4
- import * as _fragno_dev_core_api10 from "@fragno-dev/core/api";
4
+ import * as _fragno_dev_core_api9 from "@fragno-dev/core/api";
5
5
  import * as _standard_schema_spec33 from "@standard-schema/spec";
6
6
  import { FragnoPublicClientConfig } from "@fragno-dev/core/client";
7
7
 
@@ -24,7 +24,7 @@ declare function createFormsClient(config?: FragnoPublicClientConfig): {
24
24
  createdAt: zod671.ZodDate;
25
25
  updatedAt: zod671.ZodDate;
26
26
  }, zod_v4_core41.$strip>, "NOT_FOUND", string>;
27
- useSubmitForm: _fragno_dev_core_react0.FragnoReactMutator<_fragno_dev_core_api10.NonGetHTTPMethod, "/:slug/submit", zod671.ZodObject<{
27
+ useSubmitForm: _fragno_dev_core_react0.FragnoReactMutator<_fragno_dev_core_api9.NonGetHTTPMethod, "/:slug/submit", zod671.ZodObject<{
28
28
  data: zod671.ZodRecord<zod671.ZodString, zod671.ZodUnknown>;
29
29
  securityToken: zod671.ZodOptional<zod671.ZodString>;
30
30
  }, zod_v4_core41.$strip> | undefined, zod671.ZodString | undefined, "NOT_FOUND" | "VALIDATION_ERROR" | "FORM_NOT_OPEN", string>;
@@ -62,19 +62,19 @@ declare function createFormsClient(config?: FragnoPublicClientConfig): {
62
62
  createdAt: zod671.ZodDate;
63
63
  updatedAt: zod671.ZodDate;
64
64
  }, zod_v4_core41.$strip>, "NOT_FOUND", string>;
65
- useCreateForm: _fragno_dev_core_react0.FragnoReactMutator<_fragno_dev_core_api10.NonGetHTTPMethod, "/admin/forms", _standard_schema_spec33.StandardSchemaV1<unknown, unknown> | zod671.ZodObject<{
65
+ useCreateForm: _fragno_dev_core_react0.FragnoReactMutator<_fragno_dev_core_api9.NonGetHTTPMethod, "/admin/forms", zod671.ZodObject<{
66
+ title: zod671.ZodString;
67
+ description: zod671.ZodOptional<zod671.ZodNullable<zod671.ZodString>>;
68
+ slug: zod671.ZodString;
66
69
  status: zod671.ZodEnum<{
67
70
  draft: "draft";
68
71
  open: "open";
69
72
  closed: "closed";
70
73
  static: "static";
71
74
  }>;
72
- title: zod671.ZodString;
73
- description: zod671.ZodOptional<zod671.ZodNullable<zod671.ZodString>>;
74
- slug: zod671.ZodString;
75
75
  dataSchema: zod671.ZodRecord<zod671.ZodString, zod671.ZodUnknown>;
76
76
  uiSchema: zod671.ZodOptional<zod671.ZodRecord<zod671.ZodString, zod671.ZodUnknown>>;
77
- }, zod_v4_core41.$strip> | undefined, zod671.ZodString | zod671.ZodArray<zod671.ZodObject<{
77
+ }, zod_v4_core41.$strip> | _standard_schema_spec33.StandardSchemaV1<unknown, unknown> | undefined, zod671.ZodString | zod671.ZodArray<zod671.ZodObject<{
78
78
  id: zod671.ZodString;
79
79
  title: zod671.ZodString;
80
80
  description: zod671.ZodOptional<zod671.ZodNullable<zod671.ZodString>>;
@@ -91,19 +91,19 @@ declare function createFormsClient(config?: FragnoPublicClientConfig): {
91
91
  createdAt: zod671.ZodDate;
92
92
  updatedAt: zod671.ZodDate;
93
93
  }, zod_v4_core41.$strip>> | undefined, string, string>;
94
- useUpdateForm: _fragno_dev_core_react0.FragnoReactMutator<_fragno_dev_core_api10.NonGetHTTPMethod, "/admin/forms/:id", _standard_schema_spec33.StandardSchemaV1<unknown, unknown> | zod671.ZodObject<{
94
+ useUpdateForm: _fragno_dev_core_react0.FragnoReactMutator<_fragno_dev_core_api9.NonGetHTTPMethod, "/admin/forms/:id", zod671.ZodObject<{
95
+ title: zod671.ZodOptional<zod671.ZodString>;
96
+ description: zod671.ZodOptional<zod671.ZodOptional<zod671.ZodNullable<zod671.ZodString>>>;
97
+ slug: zod671.ZodOptional<zod671.ZodString>;
95
98
  status: zod671.ZodOptional<zod671.ZodEnum<{
96
99
  draft: "draft";
97
100
  open: "open";
98
101
  closed: "closed";
99
102
  static: "static";
100
103
  }>>;
101
- title: zod671.ZodOptional<zod671.ZodString>;
102
- description: zod671.ZodOptional<zod671.ZodOptional<zod671.ZodNullable<zod671.ZodString>>>;
103
- slug: zod671.ZodOptional<zod671.ZodString>;
104
104
  dataSchema: zod671.ZodOptional<zod671.ZodRecord<zod671.ZodString, zod671.ZodUnknown>>;
105
105
  uiSchema: zod671.ZodOptional<zod671.ZodOptional<zod671.ZodRecord<zod671.ZodString, zod671.ZodUnknown>>>;
106
- }, zod_v4_core41.$strip> | undefined, _standard_schema_spec33.StandardSchemaV1<unknown, unknown> | zod671.ZodObject<{
106
+ }, zod_v4_core41.$strip> | _standard_schema_spec33.StandardSchemaV1<unknown, unknown> | undefined, zod671.ZodObject<{
107
107
  id: zod671.ZodString;
108
108
  title: zod671.ZodString;
109
109
  description: zod671.ZodOptional<zod671.ZodNullable<zod671.ZodString>>;
@@ -119,20 +119,20 @@ declare function createFormsClient(config?: FragnoPublicClientConfig): {
119
119
  version: zod671.ZodNumber;
120
120
  createdAt: zod671.ZodDate;
121
121
  updatedAt: zod671.ZodDate;
122
- }, zod_v4_core41.$strip> | undefined, "NOT_FOUND" | "INVALID_JSON_SCHEMA" | "STATIC_FORM_READ_ONLY", string>;
123
- useDeleteForm: _fragno_dev_core_react0.FragnoReactMutator<_fragno_dev_core_api10.NonGetHTTPMethod, "/admin/forms/:id", _standard_schema_spec33.StandardSchemaV1<unknown, unknown> | zod671.ZodObject<{
122
+ }, zod_v4_core41.$strip> | _standard_schema_spec33.StandardSchemaV1<unknown, unknown> | undefined, "NOT_FOUND" | "INVALID_JSON_SCHEMA" | "STATIC_FORM_READ_ONLY", string>;
123
+ useDeleteForm: _fragno_dev_core_react0.FragnoReactMutator<_fragno_dev_core_api9.NonGetHTTPMethod, "/admin/forms/:id", zod671.ZodObject<{
124
+ title: zod671.ZodOptional<zod671.ZodString>;
125
+ description: zod671.ZodOptional<zod671.ZodOptional<zod671.ZodNullable<zod671.ZodString>>>;
126
+ slug: zod671.ZodOptional<zod671.ZodString>;
124
127
  status: zod671.ZodOptional<zod671.ZodEnum<{
125
128
  draft: "draft";
126
129
  open: "open";
127
130
  closed: "closed";
128
131
  static: "static";
129
132
  }>>;
130
- title: zod671.ZodOptional<zod671.ZodString>;
131
- description: zod671.ZodOptional<zod671.ZodOptional<zod671.ZodNullable<zod671.ZodString>>>;
132
- slug: zod671.ZodOptional<zod671.ZodString>;
133
133
  dataSchema: zod671.ZodOptional<zod671.ZodRecord<zod671.ZodString, zod671.ZodUnknown>>;
134
134
  uiSchema: zod671.ZodOptional<zod671.ZodOptional<zod671.ZodRecord<zod671.ZodString, zod671.ZodUnknown>>>;
135
- }, zod_v4_core41.$strip> | undefined, _standard_schema_spec33.StandardSchemaV1<unknown, unknown> | zod671.ZodObject<{
135
+ }, zod_v4_core41.$strip> | _standard_schema_spec33.StandardSchemaV1<unknown, unknown> | undefined, zod671.ZodObject<{
136
136
  id: zod671.ZodString;
137
137
  title: zod671.ZodString;
138
138
  description: zod671.ZodOptional<zod671.ZodNullable<zod671.ZodString>>;
@@ -148,7 +148,7 @@ declare function createFormsClient(config?: FragnoPublicClientConfig): {
148
148
  version: zod671.ZodNumber;
149
149
  createdAt: zod671.ZodDate;
150
150
  updatedAt: zod671.ZodDate;
151
- }, zod_v4_core41.$strip> | undefined, "NOT_FOUND" | "INVALID_JSON_SCHEMA" | "STATIC_FORM_READ_ONLY", string>;
151
+ }, zod_v4_core41.$strip> | _standard_schema_spec33.StandardSchemaV1<unknown, unknown> | undefined, "NOT_FOUND" | "INVALID_JSON_SCHEMA" | "STATIC_FORM_READ_ONLY", string>;
152
152
  useSubmissions: _fragno_dev_core_react0.FragnoReactHook<"GET", "/admin/forms/:id/submissions", zod671.ZodArray<zod671.ZodObject<{
153
153
  id: zod671.ZodString;
154
154
  formId: zod671.ZodNullable<zod671.ZodString>;
@@ -167,7 +167,7 @@ declare function createFormsClient(config?: FragnoPublicClientConfig): {
167
167
  ip: zod671.ZodNullable<zod671.ZodString>;
168
168
  userAgent: zod671.ZodNullable<zod671.ZodString>;
169
169
  }, zod_v4_core41.$strip>, "NOT_FOUND", string>;
170
- useDeleteSubmission: _fragno_dev_core_react0.FragnoReactMutator<_fragno_dev_core_api10.NonGetHTTPMethod, "/admin/submissions/:id", _standard_schema_spec33.StandardSchemaV1<unknown, unknown> | undefined, _standard_schema_spec33.StandardSchemaV1<unknown, unknown> | zod671.ZodObject<{
170
+ useDeleteSubmission: _fragno_dev_core_react0.FragnoReactMutator<_fragno_dev_core_api9.NonGetHTTPMethod, "/admin/submissions/:id", _standard_schema_spec33.StandardSchemaV1<unknown, unknown> | undefined, _standard_schema_spec33.StandardSchemaV1<unknown, unknown> | zod671.ZodObject<{
171
171
  id: zod671.ZodString;
172
172
  formId: zod671.ZodNullable<zod671.ZodString>;
173
173
  formVersion: zod671.ZodNumber;
@@ -1 +1 @@
1
- {"version":3,"file":"react.d.ts","names":[],"sources":["../../../../src/client/react.ts"],"sourcesContent":[],"mappings":";;;;;;;;iBAIgB,iBAAA,UAA0B;;QAA6B,MAAA,CAAA;;;;;MAAvD,KAAA,EAAA,OAAiB;MAAA,IAAA,EAAA,MAAA;MAAS,MAAA,EAAA,QAAA;MAA6B,MAAA,EAAA,QAAA"}
1
+ {"version":3,"file":"react.d.ts","names":[],"sources":["../../../../src/client/react.ts"],"sourcesContent":[],"mappings":";;;;;;;;iBAKgB,iBAAA,UAA0B;;QAA6B,MAAA,CAAA;;;;;MAAvD,KAAA,EAAA,OAAiB;MAAA,IAAA,EAAA,MAAA;MAAS,MAAA,EAAA,QAAA;MAA6B,MAAA,EAAA,QAAA"}
@@ -1,7 +1,7 @@
1
- import { createFormsClients, isGetHook, isMutatorHook, isReadableAtom, isStore } from "../src-BBaSaf29.js";
2
- import { useCallback, useMemo, useRef, useSyncExternalStore } from "react";
1
+ import { createFormsClients, isGetHook, isMutatorHook, isReadableAtom, isStore } from "../src-BNcd9ogF.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","createFormsClients","FragnoPublicClientConfig","createFormsClient","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 { createFormsClients } from \"..\";\nimport type { FragnoPublicClientConfig } from \"@fragno-dev/core/client\";\n\nexport function createFormsClient(config: FragnoPublicClientConfig = {}) {\n return useFragno(createFormsClients(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,kBAAkBC,SAAmC,CAAE,GAAE;AACvE,QAAOJ,UAAUC,mBAAmBG,OAAO,CAAC;AAC9C"}
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","createFormsClients","createFormsClient","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 { createFormsClients } from \"..\";\n\nexport function createFormsClient(config: FragnoPublicClientConfig = {}) {\n return useFragno(createFormsClients(config));\n}\n"],"x_google_ignoreList":[0],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import * as zod883 from "zod";
2
2
  import * as zod_v4_core54 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 * as _standard_schema_spec40 from "@standard-schema/spec";
5
5
  import { FragnoPublicClientConfig } from "@fragno-dev/core/client";
6
6
  import * as _fragno_dev_core_solid0 from "@fragno-dev/core/solid";
@@ -24,7 +24,7 @@ declare function createFormsClient(config?: FragnoPublicClientConfig): {
24
24
  createdAt: zod883.ZodDate;
25
25
  updatedAt: zod883.ZodDate;
26
26
  }, zod_v4_core54.$strip>, "NOT_FOUND", string>;
27
- useSubmitForm: _fragno_dev_core_solid0.FragnoSolidMutator<_fragno_dev_core_api15.NonGetHTTPMethod, "/:slug/submit", zod883.ZodObject<{
27
+ useSubmitForm: _fragno_dev_core_solid0.FragnoSolidMutator<_fragno_dev_core_api14.NonGetHTTPMethod, "/:slug/submit", zod883.ZodObject<{
28
28
  data: zod883.ZodRecord<zod883.ZodString, zod883.ZodUnknown>;
29
29
  securityToken: zod883.ZodOptional<zod883.ZodString>;
30
30
  }, zod_v4_core54.$strip> | undefined, zod883.ZodString | undefined, "NOT_FOUND" | "VALIDATION_ERROR" | "FORM_NOT_OPEN", string>;
@@ -62,19 +62,19 @@ declare function createFormsClient(config?: FragnoPublicClientConfig): {
62
62
  createdAt: zod883.ZodDate;
63
63
  updatedAt: zod883.ZodDate;
64
64
  }, zod_v4_core54.$strip>, "NOT_FOUND", string>;
65
- useCreateForm: _fragno_dev_core_solid0.FragnoSolidMutator<_fragno_dev_core_api15.NonGetHTTPMethod, "/admin/forms", _standard_schema_spec40.StandardSchemaV1<unknown, unknown> | zod883.ZodObject<{
65
+ useCreateForm: _fragno_dev_core_solid0.FragnoSolidMutator<_fragno_dev_core_api14.NonGetHTTPMethod, "/admin/forms", zod883.ZodObject<{
66
+ title: zod883.ZodString;
67
+ description: zod883.ZodOptional<zod883.ZodNullable<zod883.ZodString>>;
68
+ slug: zod883.ZodString;
66
69
  status: zod883.ZodEnum<{
67
70
  draft: "draft";
68
71
  open: "open";
69
72
  closed: "closed";
70
73
  static: "static";
71
74
  }>;
72
- title: zod883.ZodString;
73
- description: zod883.ZodOptional<zod883.ZodNullable<zod883.ZodString>>;
74
- slug: zod883.ZodString;
75
75
  dataSchema: zod883.ZodRecord<zod883.ZodString, zod883.ZodUnknown>;
76
76
  uiSchema: zod883.ZodOptional<zod883.ZodRecord<zod883.ZodString, zod883.ZodUnknown>>;
77
- }, zod_v4_core54.$strip> | undefined, zod883.ZodString | zod883.ZodArray<zod883.ZodObject<{
77
+ }, zod_v4_core54.$strip> | _standard_schema_spec40.StandardSchemaV1<unknown, unknown> | undefined, zod883.ZodString | zod883.ZodArray<zod883.ZodObject<{
78
78
  id: zod883.ZodString;
79
79
  title: zod883.ZodString;
80
80
  description: zod883.ZodOptional<zod883.ZodNullable<zod883.ZodString>>;
@@ -91,19 +91,19 @@ declare function createFormsClient(config?: FragnoPublicClientConfig): {
91
91
  createdAt: zod883.ZodDate;
92
92
  updatedAt: zod883.ZodDate;
93
93
  }, zod_v4_core54.$strip>> | undefined, string, string>;
94
- useUpdateForm: _fragno_dev_core_solid0.FragnoSolidMutator<_fragno_dev_core_api15.NonGetHTTPMethod, "/admin/forms/:id", _standard_schema_spec40.StandardSchemaV1<unknown, unknown> | zod883.ZodObject<{
94
+ useUpdateForm: _fragno_dev_core_solid0.FragnoSolidMutator<_fragno_dev_core_api14.NonGetHTTPMethod, "/admin/forms/:id", zod883.ZodObject<{
95
+ title: zod883.ZodOptional<zod883.ZodString>;
96
+ description: zod883.ZodOptional<zod883.ZodOptional<zod883.ZodNullable<zod883.ZodString>>>;
97
+ slug: zod883.ZodOptional<zod883.ZodString>;
95
98
  status: zod883.ZodOptional<zod883.ZodEnum<{
96
99
  draft: "draft";
97
100
  open: "open";
98
101
  closed: "closed";
99
102
  static: "static";
100
103
  }>>;
101
- title: zod883.ZodOptional<zod883.ZodString>;
102
- description: zod883.ZodOptional<zod883.ZodOptional<zod883.ZodNullable<zod883.ZodString>>>;
103
- slug: zod883.ZodOptional<zod883.ZodString>;
104
104
  dataSchema: zod883.ZodOptional<zod883.ZodRecord<zod883.ZodString, zod883.ZodUnknown>>;
105
105
  uiSchema: zod883.ZodOptional<zod883.ZodOptional<zod883.ZodRecord<zod883.ZodString, zod883.ZodUnknown>>>;
106
- }, zod_v4_core54.$strip> | undefined, _standard_schema_spec40.StandardSchemaV1<unknown, unknown> | zod883.ZodObject<{
106
+ }, zod_v4_core54.$strip> | _standard_schema_spec40.StandardSchemaV1<unknown, unknown> | undefined, zod883.ZodObject<{
107
107
  id: zod883.ZodString;
108
108
  title: zod883.ZodString;
109
109
  description: zod883.ZodOptional<zod883.ZodNullable<zod883.ZodString>>;
@@ -119,20 +119,20 @@ declare function createFormsClient(config?: FragnoPublicClientConfig): {
119
119
  version: zod883.ZodNumber;
120
120
  createdAt: zod883.ZodDate;
121
121
  updatedAt: zod883.ZodDate;
122
- }, zod_v4_core54.$strip> | undefined, "NOT_FOUND" | "INVALID_JSON_SCHEMA" | "STATIC_FORM_READ_ONLY", string>;
123
- useDeleteForm: _fragno_dev_core_solid0.FragnoSolidMutator<_fragno_dev_core_api15.NonGetHTTPMethod, "/admin/forms/:id", _standard_schema_spec40.StandardSchemaV1<unknown, unknown> | zod883.ZodObject<{
122
+ }, zod_v4_core54.$strip> | _standard_schema_spec40.StandardSchemaV1<unknown, unknown> | undefined, "NOT_FOUND" | "INVALID_JSON_SCHEMA" | "STATIC_FORM_READ_ONLY", string>;
123
+ useDeleteForm: _fragno_dev_core_solid0.FragnoSolidMutator<_fragno_dev_core_api14.NonGetHTTPMethod, "/admin/forms/:id", zod883.ZodObject<{
124
+ title: zod883.ZodOptional<zod883.ZodString>;
125
+ description: zod883.ZodOptional<zod883.ZodOptional<zod883.ZodNullable<zod883.ZodString>>>;
126
+ slug: zod883.ZodOptional<zod883.ZodString>;
124
127
  status: zod883.ZodOptional<zod883.ZodEnum<{
125
128
  draft: "draft";
126
129
  open: "open";
127
130
  closed: "closed";
128
131
  static: "static";
129
132
  }>>;
130
- title: zod883.ZodOptional<zod883.ZodString>;
131
- description: zod883.ZodOptional<zod883.ZodOptional<zod883.ZodNullable<zod883.ZodString>>>;
132
- slug: zod883.ZodOptional<zod883.ZodString>;
133
133
  dataSchema: zod883.ZodOptional<zod883.ZodRecord<zod883.ZodString, zod883.ZodUnknown>>;
134
134
  uiSchema: zod883.ZodOptional<zod883.ZodOptional<zod883.ZodRecord<zod883.ZodString, zod883.ZodUnknown>>>;
135
- }, zod_v4_core54.$strip> | undefined, _standard_schema_spec40.StandardSchemaV1<unknown, unknown> | zod883.ZodObject<{
135
+ }, zod_v4_core54.$strip> | _standard_schema_spec40.StandardSchemaV1<unknown, unknown> | undefined, zod883.ZodObject<{
136
136
  id: zod883.ZodString;
137
137
  title: zod883.ZodString;
138
138
  description: zod883.ZodOptional<zod883.ZodNullable<zod883.ZodString>>;
@@ -148,7 +148,7 @@ declare function createFormsClient(config?: FragnoPublicClientConfig): {
148
148
  version: zod883.ZodNumber;
149
149
  createdAt: zod883.ZodDate;
150
150
  updatedAt: zod883.ZodDate;
151
- }, zod_v4_core54.$strip> | undefined, "NOT_FOUND" | "INVALID_JSON_SCHEMA" | "STATIC_FORM_READ_ONLY", string>;
151
+ }, zod_v4_core54.$strip> | _standard_schema_spec40.StandardSchemaV1<unknown, unknown> | undefined, "NOT_FOUND" | "INVALID_JSON_SCHEMA" | "STATIC_FORM_READ_ONLY", string>;
152
152
  useSubmissions: _fragno_dev_core_solid0.FragnoSolidHook<"GET", "/admin/forms/:id/submissions", zod883.ZodArray<zod883.ZodObject<{
153
153
  id: zod883.ZodString;
154
154
  formId: zod883.ZodNullable<zod883.ZodString>;
@@ -167,7 +167,7 @@ declare function createFormsClient(config?: FragnoPublicClientConfig): {
167
167
  ip: zod883.ZodNullable<zod883.ZodString>;
168
168
  userAgent: zod883.ZodNullable<zod883.ZodString>;
169
169
  }, zod_v4_core54.$strip>, "NOT_FOUND", string>;
170
- useDeleteSubmission: _fragno_dev_core_solid0.FragnoSolidMutator<_fragno_dev_core_api15.NonGetHTTPMethod, "/admin/submissions/:id", _standard_schema_spec40.StandardSchemaV1<unknown, unknown> | undefined, _standard_schema_spec40.StandardSchemaV1<unknown, unknown> | zod883.ZodObject<{
170
+ useDeleteSubmission: _fragno_dev_core_solid0.FragnoSolidMutator<_fragno_dev_core_api14.NonGetHTTPMethod, "/admin/submissions/:id", _standard_schema_spec40.StandardSchemaV1<unknown, unknown> | undefined, _standard_schema_spec40.StandardSchemaV1<unknown, unknown> | zod883.ZodObject<{
171
171
  id: zod883.ZodString;
172
172
  formId: zod883.ZodNullable<zod883.ZodString>;
173
173
  formVersion: zod883.ZodNumber;
@@ -1 +1 @@
1
- {"version":3,"file":"solid.d.ts","names":[],"sources":["../../../../src/client/solid.ts"],"sourcesContent":[],"mappings":";;;;;;;;iBAIgB,iBAAA,UAA0B;;QAA6B,MAAA,CAAA;;;;;MAAvD,KAAA,EAAA,OAAiB;MAAA,IAAA,EAAA,MAAA;MAAS,MAAA,EAAA,QAAA;MAA6B,MAAA,EAAA,QAAA"}
1
+ {"version":3,"file":"solid.d.ts","names":[],"sources":["../../../../src/client/solid.ts"],"sourcesContent":[],"mappings":";;;;;;;;iBAKgB,iBAAA,UAA0B;;QAA6B,MAAA,CAAA;;;;;MAAvD,KAAA,EAAA,OAAiB;MAAA,IAAA,EAAA,MAAA;MAAS,MAAA,EAAA,QAAA;MAA6B,MAAA,EAAA,QAAA"}
@@ -1,8 +1,8 @@
1
- import { atom, createFormsClients, isGetHook, isMutatorHook, isReadableAtom, isStore } from "../src-BBaSaf29.js";
2
- import { createStore, reconcile } from "solid-js/store";
1
+ import { atom, createFormsClients, isGetHook, isMutatorHook, isReadableAtom, isStore } from "../src-BNcd9ogF.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","createFormsClients","FragnoPublicClientConfig","createFormsClient","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 { createFormsClients } from \"..\";\nimport type { FragnoPublicClientConfig } from \"@fragno-dev/core/client\";\n\nexport function createFormsClient(config: FragnoPublicClientConfig = {}) {\n return useFragno(createFormsClients(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","createFormsClients","createFormsClient","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 { createFormsClients } from \"..\";\n\nexport function createFormsClient(config: FragnoPublicClientConfig = {}) {\n return useFragno(createFormsClients(config));\n}\n"],"x_google_ignoreList":[0],"mappings":"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"}