on-zero 0.4.6 → 0.4.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/dist/cjs/createZeroClient.cjs +5 -1
  2. package/dist/cjs/createZeroClient.native.js +5 -1
  3. package/dist/cjs/createZeroClient.native.js.map +1 -1
  4. package/dist/cjs/generate-helpers.cjs +205 -19
  5. package/dist/cjs/generate-helpers.native.js +237 -25
  6. package/dist/cjs/generate-helpers.native.js.map +1 -1
  7. package/dist/cjs/generate-lite.native.js.map +1 -1
  8. package/dist/cjs/generate-lite.test.cjs +120 -1
  9. package/dist/cjs/generate-lite.test.native.js +120 -1
  10. package/dist/cjs/generate-lite.test.native.js.map +1 -1
  11. package/dist/cjs/generate.cjs +9 -1
  12. package/dist/cjs/generate.native.js +9 -1
  13. package/dist/cjs/generate.native.js.map +1 -1
  14. package/dist/cjs/generate.test.cjs +87 -0
  15. package/dist/cjs/generate.test.native.js +87 -0
  16. package/dist/cjs/generate.test.native.js.map +1 -1
  17. package/dist/esm/createZeroClient.mjs +5 -1
  18. package/dist/esm/createZeroClient.mjs.map +1 -1
  19. package/dist/esm/createZeroClient.native.js +5 -1
  20. package/dist/esm/createZeroClient.native.js.map +1 -1
  21. package/dist/esm/generate-helpers.mjs +205 -19
  22. package/dist/esm/generate-helpers.mjs.map +1 -1
  23. package/dist/esm/generate-helpers.native.js +237 -25
  24. package/dist/esm/generate-helpers.native.js.map +1 -1
  25. package/dist/esm/generate-lite.mjs.map +1 -1
  26. package/dist/esm/generate-lite.native.js.map +1 -1
  27. package/dist/esm/generate-lite.test.mjs +120 -1
  28. package/dist/esm/generate-lite.test.mjs.map +1 -1
  29. package/dist/esm/generate-lite.test.native.js +120 -1
  30. package/dist/esm/generate-lite.test.native.js.map +1 -1
  31. package/dist/esm/generate.mjs +9 -1
  32. package/dist/esm/generate.mjs.map +1 -1
  33. package/dist/esm/generate.native.js +9 -1
  34. package/dist/esm/generate.native.js.map +1 -1
  35. package/dist/esm/generate.test.mjs +87 -0
  36. package/dist/esm/generate.test.mjs.map +1 -1
  37. package/dist/esm/generate.test.native.js +87 -0
  38. package/dist/esm/generate.test.native.js.map +1 -1
  39. package/package.json +2 -2
  40. package/src/createZeroClient.tsx +6 -1
  41. package/src/generate-helpers.ts +234 -21
  42. package/src/generate-lite.test.ts +144 -1
  43. package/src/generate-lite.ts +1 -2
  44. package/src/generate.test.ts +96 -0
  45. package/src/generate.ts +11 -3
  46. package/types/createZeroClient.d.ts.map +1 -1
  47. package/types/generate-helpers.d.ts.map +1 -1
  48. package/types/generate-lite.d.ts.map +1 -1
  49. package/types/generate.d.ts.map +1 -1
@@ -42,6 +42,10 @@ var import_where = require("./where.cjs");
42
42
  var import_zeroRunner = require("./zeroRunner.cjs");
43
43
  var import_zql = require("./zql.cjs");
44
44
  var import_jsx_runtime = require("react/jsx-runtime");
45
+ function getZeroProxyValue(instance, key) {
46
+ const value = Reflect.get(instance, key, instance);
47
+ return typeof value === "function" ? value.bind(instance) : value;
48
+ }
45
49
  function createZeroClient({
46
50
  schema,
47
51
  models,
@@ -112,7 +116,7 @@ function createZeroClient({
112
116
  if (latestZeroInstance === null) {
113
117
  throw new Error(`Zero instance not initialized. Ensure ZeroProvider is mounted before accessing 'zero'.`);
114
118
  }
115
- return Reflect.get(latestZeroInstance, key, latestZeroInstance);
119
+ return getZeroProxyValue(latestZeroInstance, key);
116
120
  }
117
121
  });
118
122
  const zeroEvents = (0, import_helpers.createEmitter)("zero", null);
@@ -44,6 +44,10 @@ var import_state = require("./state.native.js");
44
44
  var import_where = require("./where.native.js");
45
45
  var import_zeroRunner = require("./zeroRunner.native.js");
46
46
  var import_zql = require("./zql.native.js");
47
+ function getZeroProxyValue(instance, key) {
48
+ var value = Reflect.get(instance, key, instance);
49
+ return typeof value === "function" ? value.bind(instance) : value;
50
+ }
47
51
  function createZeroClient(param) {
48
52
  var {
49
53
  schema,
@@ -188,7 +192,7 @@ function createZeroClient(param) {
188
192
  if (latestZeroInstance === null) {
189
193
  throw new Error(`Zero instance not initialized. Ensure ZeroProvider is mounted before accessing 'zero'.`);
190
194
  }
191
- return Reflect.get(latestZeroInstance, key, latestZeroInstance);
195
+ return getZeroProxyValue(latestZeroInstance, key);
192
196
  }
193
197
  });
194
198
  var zeroEvents = (0, import_helpers.createEmitter)("zero", null);
@@ -1 +1 @@
1
- {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","createZeroClient_exports","__export","createZeroClient","module","exports","import_jsx_runtime","require","import_zero","import_react","import_helpers","import_react2","import_createPermissions","import_createUseQuery","import_createMutators","import_getAuth","import_modelRegistry","import_queryRegistry","import_resolveQuery","import_run","import_state","import_where","import_zeroRunner","import_zql","param","schema","models","groupedQueries","permissionStrategy","setSchema","getEnvironment","setEnvironment","permissionsHelpers","createPermissions","environment","wrappedNamespaces","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Object","entries","Symbol","iterator","_step","next","done","namespace","queries","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_loop","name","fn","_step1","registerQuery","defineQuery","param2","args","_iterator1","err","return","permissionCheckFns","createPermissionCheckFn","table","perm","getMutationsPermissions","base","zql","objOrId","where","eb","cmpLit","one","rawPerm","getRawWhere","setEvaluatingPermission","buildPermissionQuery","getAuth","e","and","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_loop1","_step2","_iterator2","getAllMutationsPermissions","customQueries","defineQueries","setCustomQueries","DisabledContext","createContext","latestZeroInstance","zero","Proxy","get","_","key","Error","Reflect","zeroEvents","createEmitter","AuthDataContext","useQuery","createUseQuery","usePermission","enabled","arguments","length","debug","disableMode","useContext","lastRef","useRef","tableStr","checkFn","auth","_uid","id","data","status","Boolean","console","info","result","type","current","ProvideZero","children","authData","authDataIn","disable","props","setAuthData","mutators","useMemo","createMutators","can","jsx","Provider","jsxs","ZeroProvider","kvStore","SetZeroInstance","ConnectionMonitor"],"sources":["../../src/createZeroClient.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","createZeroClient_exports","__export","createZeroClient","module","exports","import_jsx_runtime","require","import_zero","import_react","import_helpers","import_react2","import_createPermissions","import_createUseQuery","import_createMutators","import_getAuth","import_modelRegistry","import_queryRegistry","import_resolveQuery","import_run","import_state","import_where","import_zeroRunner","import_zql","getZeroProxyValue","instance","key","Reflect","get","bind","param","schema","models","groupedQueries","permissionStrategy","setSchema","getEnvironment","setEnvironment","permissionsHelpers","createPermissions","environment","wrappedNamespaces","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Object","entries","Symbol","iterator","_step","next","done","namespace","queries","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_loop","name","fn","_step1","registerQuery","defineQuery","param2","args","_iterator1","err","return","permissionCheckFns","createPermissionCheckFn","table","perm","getMutationsPermissions","base","zql","objOrId","where","eb","cmpLit","one","rawPerm","getRawWhere","setEvaluatingPermission","buildPermissionQuery","getAuth","e","and","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_loop1","_step2","_iterator2","getAllMutationsPermissions","customQueries","defineQueries","setCustomQueries","DisabledContext","createContext","latestZeroInstance","zero","Proxy","_","Error","zeroEvents","createEmitter","AuthDataContext","useQuery","createUseQuery","usePermission","enabled","arguments","length","debug","disableMode","useContext","lastRef","useRef","tableStr","checkFn","auth","_uid","id","data","status","Boolean","console","info","result","type","current","ProvideZero","children","authData","authDataIn","disable","props","setAuthData","mutators","useMemo","createMutators","can","jsx","Provider","jsxs","ZeroProvider","kvStore","SetZeroInstance","ConnectionMonitor"],"sources":["../../src/createZeroClient.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -48,36 +48,218 @@ function formatObjectKey(name) {
48
48
  function getModelImportName(name) {
49
49
  return name === "user" ? "userPublic" : name;
50
50
  }
51
+ function splitTopLevelTypeUnion(type) {
52
+ const parts = [];
53
+ let depth = 0;
54
+ let start = 0;
55
+ let quote = null;
56
+ for (let i = 0; i < type.length; i++) {
57
+ const char = type[i];
58
+ if (quote) {
59
+ if (char === "\\") {
60
+ i++;
61
+ continue;
62
+ }
63
+ if (char === quote) quote = null;
64
+ continue;
65
+ }
66
+ if (char === '"' || char === "'" || char === "`") {
67
+ quote = char;
68
+ continue;
69
+ }
70
+ if (char === "<" || char === "(" || char === "{" || char === "[") {
71
+ depth++;
72
+ continue;
73
+ }
74
+ if (char === ">" || char === ")" || char === "}" || char === "]") {
75
+ depth = Math.max(0, depth - 1);
76
+ continue;
77
+ }
78
+ if (char === "|" && depth === 0) {
79
+ parts.push(type.slice(start, i).trim());
80
+ start = i + 1;
81
+ }
82
+ }
83
+ parts.push(type.slice(start).trim());
84
+ return parts.filter(Boolean);
85
+ }
86
+ function splitTopLevelTypeIntersection(type) {
87
+ const parts = [];
88
+ let depth = 0;
89
+ let start = 0;
90
+ let quote = null;
91
+ for (let i = 0; i < type.length; i++) {
92
+ const char = type[i];
93
+ if (quote) {
94
+ if (char === "\\") {
95
+ i++;
96
+ continue;
97
+ }
98
+ if (char === quote) quote = null;
99
+ continue;
100
+ }
101
+ if (char === '"' || char === "'" || char === "`") {
102
+ quote = char;
103
+ continue;
104
+ }
105
+ if (char === "<" || char === "(" || char === "{" || char === "[") {
106
+ depth++;
107
+ continue;
108
+ }
109
+ if (char === ">" || char === ")" || char === "}" || char === "]") {
110
+ depth = Math.max(0, depth - 1);
111
+ continue;
112
+ }
113
+ if (char === "&" && depth === 0 && type[i - 1] !== "&" && type[i + 1] !== "&") {
114
+ parts.push(type.slice(start, i).trim());
115
+ start = i + 1;
116
+ }
117
+ }
118
+ parts.push(type.slice(start).trim());
119
+ return parts.filter(Boolean);
120
+ }
121
+ function stripTypeComments(type) {
122
+ let out = "";
123
+ let quote = null;
124
+ for (let i = 0; i < type.length; i++) {
125
+ const char = type[i];
126
+ const next = type[i + 1];
127
+ if (quote) {
128
+ out += char;
129
+ if (char === "\\") {
130
+ if (next) {
131
+ out += next;
132
+ i++;
133
+ }
134
+ continue;
135
+ }
136
+ if (char === quote) quote = null;
137
+ continue;
138
+ }
139
+ if (char === '"' || char === "'" || char === "`") {
140
+ quote = char;
141
+ out += char;
142
+ continue;
143
+ }
144
+ if (char === "/" && next === "/") {
145
+ while (i < type.length && type[i] !== "\n") i++;
146
+ if (i < type.length) out += "\n";
147
+ continue;
148
+ }
149
+ if (char === "/" && next === "*") {
150
+ i += 2;
151
+ while (i < type.length && !(type[i] === "*" && type[i + 1] === "/")) i++;
152
+ i++;
153
+ continue;
154
+ }
155
+ out += char;
156
+ }
157
+ return out;
158
+ }
159
+ function nextNonWhitespace(type, start) {
160
+ for (let i = start; i < type.length; i++) {
161
+ const char = type[i];
162
+ if (char && !/\s/.test(char)) return char;
163
+ }
164
+ return void 0;
165
+ }
166
+ function splitTopLevelObjectEntries(type) {
167
+ const parts = [];
168
+ let depth = 0;
169
+ let start = 0;
170
+ let quote = null;
171
+ for (let i = 0; i < type.length; i++) {
172
+ const char = type[i];
173
+ if (quote) {
174
+ if (char === "\\") {
175
+ i++;
176
+ continue;
177
+ }
178
+ if (char === quote) quote = null;
179
+ continue;
180
+ }
181
+ if (char === '"' || char === "'" || char === "`") {
182
+ quote = char;
183
+ continue;
184
+ }
185
+ if (char === "<" || char === "(" || char === "{" || char === "[") {
186
+ depth++;
187
+ continue;
188
+ }
189
+ if (char === ">" || char === ")" || char === "}" || char === "]") {
190
+ depth = Math.max(0, depth - 1);
191
+ continue;
192
+ }
193
+ if (depth === 0 && (char === ";" || char === "," || char === "\n" && type.slice(start, i).includes(":") && !["|", "&"].includes(nextNonWhitespace(type, i + 1) ?? ""))) {
194
+ parts.push(type.slice(start, i).trim());
195
+ start = i + 1;
196
+ }
197
+ }
198
+ parts.push(type.slice(start).trim());
199
+ return parts.filter(Boolean);
200
+ }
201
+ function parseInlineObjectEntries(type) {
202
+ if (!type.startsWith("{") || !type.endsWith("}")) return void 0;
203
+ const inner = type.slice(1, -1).trim();
204
+ if (!inner) return [];
205
+ const entries = [];
206
+ for (const part of splitTopLevelObjectEntries(inner)) {
207
+ const trimmed = part.trim().replace(/[;,]\s*$/, "");
208
+ if (!trimmed || trimmed.startsWith("[")) continue;
209
+ const match = trimmed.match(/^(?:readonly\s+)?(\w+)(\?)?:\s*(.+)$/s);
210
+ if (!match) continue;
211
+ const [, name, opt, typeStr] = match;
212
+ const parsed = parseTypeString(typeStr.trim());
213
+ if (!parsed) return null;
214
+ let val = parsed;
215
+ if (opt) val = `v.optional(${val})`;
216
+ entries.push(`${formatObjectKey(name)}: ${val}`);
217
+ }
218
+ return entries;
219
+ }
51
220
  function parseTypeString(type) {
52
- type = type.trim();
221
+ type = stripTypeComments(type.trim()).trim();
222
+ const unionParts = splitTopLevelTypeUnion(type);
223
+ if (unionParts.length > 1) {
224
+ const hasNull = unionParts.includes("null");
225
+ const hasUndefined = unionParts.includes("undefined") || unionParts.includes("void");
226
+ const valueParts = unionParts.filter(part => part !== "null" && part !== "undefined" && part !== "void");
227
+ if (valueParts.length === 0) return hasNull ? "v.null_()" : "v.void_()";
228
+ const parsedParts = valueParts.map(part => parseTypeString(part));
229
+ if (parsedParts.some(part => !part)) return null;
230
+ let val = parsedParts.length === 1 ? parsedParts[0] : `v.union([${parsedParts.join(", ")}])`;
231
+ if (hasNull) val = `v.nullable(${val})`;
232
+ if (hasUndefined) val = `v.optional(${val})`;
233
+ return val;
234
+ }
235
+ const intersectionParts = splitTopLevelTypeIntersection(type);
236
+ if (intersectionParts.length > 1) {
237
+ const entries = [];
238
+ for (const part of intersectionParts) {
239
+ const objectEntries2 = parseInlineObjectEntries(part);
240
+ if (!objectEntries2) return null;
241
+ entries.push(...objectEntries2);
242
+ }
243
+ if (entries.length === 0) return "v.object({})";
244
+ return `v.object({
245
+ ${entries.join(",\n ")},
246
+ })`;
247
+ }
53
248
  if (type === "string") return "v.string()";
54
249
  if (type === "number") return "v.number()";
55
250
  if (type === "boolean") return "v.boolean()";
56
251
  if (type === "void" || type === "undefined") return "v.void_()";
57
252
  if (type === "null") return "v.null_()";
58
253
  if (type === "any" || type === "unknown") return "v.unknown()";
59
- if (type.startsWith("{") && type.endsWith("}")) {
60
- const inner = type.slice(1, -1).trim();
61
- if (!inner) return "v.object({})";
62
- const normalized = inner.replace(/\n/g, "; ").replace(/;\s*;/g, ";");
63
- const entries = [];
64
- for (const part of normalized.split(";")) {
65
- const trimmed = part.trim().replace(/,\s*$/, "");
66
- if (!trimmed) continue;
67
- const match = trimmed.match(/^(?:readonly\s+)?(\w+)(\?)?:\s*(.+)$/);
68
- if (!match) continue;
69
- const [, name, opt, typeStr] = match;
70
- const parsed = parseTypeString(typeStr.trim());
71
- if (!parsed) return null;
72
- let val = parsed;
73
- if (opt) val = `v.optional(${val})`;
74
- entries.push(`${formatObjectKey(name)}: ${val}`);
75
- }
254
+ const objectEntries = parseInlineObjectEntries(type);
255
+ if (objectEntries) {
256
+ const entries = objectEntries;
76
257
  if (entries.length === 0) return "v.object({})";
77
258
  return `v.object({
78
259
  ${entries.join(",\n ")},
79
260
  })`;
80
261
  }
262
+ if (objectEntries === null) return null;
81
263
  if (type.endsWith("[]")) {
82
264
  const inner = parseTypeString(type.slice(0, -2).trim());
83
265
  return inner ? `v.array(${inner})` : null;
@@ -322,10 +504,14 @@ function generateSyncedMutationsFile(modelMutations) {
322
504
  }
323
505
  for (const mut of model.custom) {
324
506
  if (model.hasCRUD && ["insert", "update", "delete", "upsert"].includes(mut.name)) continue;
325
- if (mut.paramType === "void" || !mut.valibotCode) {
507
+ if (mut.paramType === "void") {
326
508
  entries.push(` ${mut.name}: v.void_(),`);
327
509
  continue;
328
510
  }
511
+ if (!mut.valibotCode) {
512
+ entries.push(` ${mut.name}: v.unknown(),`);
513
+ continue;
514
+ }
329
515
  entries.push(` ${mut.name}: ${extractValibotExpression(mut.valibotCode)},`);
330
516
  }
331
517
  return ` ${model.modelName}: {
@@ -50,35 +50,228 @@ function formatObjectKey(name) {
50
50
  function getModelImportName(name) {
51
51
  return name === "user" ? "userPublic" : name;
52
52
  }
53
+ function splitTopLevelTypeUnion(type) {
54
+ var parts = [];
55
+ var depth = 0;
56
+ var start = 0;
57
+ var quote = null;
58
+ for (var i = 0; i < type.length; i++) {
59
+ var char = type[i];
60
+ if (quote) {
61
+ if (char === "\\") {
62
+ i++;
63
+ continue;
64
+ }
65
+ if (char === quote) quote = null;
66
+ continue;
67
+ }
68
+ if (char === '"' || char === "'" || char === "`") {
69
+ quote = char;
70
+ continue;
71
+ }
72
+ if (char === "<" || char === "(" || char === "{" || char === "[") {
73
+ depth++;
74
+ continue;
75
+ }
76
+ if (char === ">" || char === ")" || char === "}" || char === "]") {
77
+ depth = Math.max(0, depth - 1);
78
+ continue;
79
+ }
80
+ if (char === "|" && depth === 0) {
81
+ parts.push(type.slice(start, i).trim());
82
+ start = i + 1;
83
+ }
84
+ }
85
+ parts.push(type.slice(start).trim());
86
+ return parts.filter(Boolean);
87
+ }
88
+ function splitTopLevelTypeIntersection(type) {
89
+ var parts = [];
90
+ var depth = 0;
91
+ var start = 0;
92
+ var quote = null;
93
+ for (var i = 0; i < type.length; i++) {
94
+ var char = type[i];
95
+ if (quote) {
96
+ if (char === "\\") {
97
+ i++;
98
+ continue;
99
+ }
100
+ if (char === quote) quote = null;
101
+ continue;
102
+ }
103
+ if (char === '"' || char === "'" || char === "`") {
104
+ quote = char;
105
+ continue;
106
+ }
107
+ if (char === "<" || char === "(" || char === "{" || char === "[") {
108
+ depth++;
109
+ continue;
110
+ }
111
+ if (char === ">" || char === ")" || char === "}" || char === "]") {
112
+ depth = Math.max(0, depth - 1);
113
+ continue;
114
+ }
115
+ if (char === "&" && depth === 0 && type[i - 1] !== "&" && type[i + 1] !== "&") {
116
+ parts.push(type.slice(start, i).trim());
117
+ start = i + 1;
118
+ }
119
+ }
120
+ parts.push(type.slice(start).trim());
121
+ return parts.filter(Boolean);
122
+ }
123
+ function stripTypeComments(type) {
124
+ var out = "";
125
+ var quote = null;
126
+ for (var i = 0; i < type.length; i++) {
127
+ var char = type[i];
128
+ var next = type[i + 1];
129
+ if (quote) {
130
+ out += char;
131
+ if (char === "\\") {
132
+ if (next) {
133
+ out += next;
134
+ i++;
135
+ }
136
+ continue;
137
+ }
138
+ if (char === quote) quote = null;
139
+ continue;
140
+ }
141
+ if (char === '"' || char === "'" || char === "`") {
142
+ quote = char;
143
+ out += char;
144
+ continue;
145
+ }
146
+ if (char === "/" && next === "/") {
147
+ while (i < type.length && type[i] !== "\n") i++;
148
+ if (i < type.length) out += "\n";
149
+ continue;
150
+ }
151
+ if (char === "/" && next === "*") {
152
+ i += 2;
153
+ while (i < type.length && !(type[i] === "*" && type[i + 1] === "/")) i++;
154
+ i++;
155
+ continue;
156
+ }
157
+ out += char;
158
+ }
159
+ return out;
160
+ }
161
+ function nextNonWhitespace(type, start) {
162
+ for (var i = start; i < type.length; i++) {
163
+ var char = type[i];
164
+ if (char && !/\s/.test(char)) return char;
165
+ }
166
+ return void 0;
167
+ }
168
+ function splitTopLevelObjectEntries(type) {
169
+ var parts = [];
170
+ var depth = 0;
171
+ var start = 0;
172
+ var quote = null;
173
+ for (var i = 0; i < type.length; i++) {
174
+ var char = type[i];
175
+ if (quote) {
176
+ if (char === "\\") {
177
+ i++;
178
+ continue;
179
+ }
180
+ if (char === quote) quote = null;
181
+ continue;
182
+ }
183
+ if (char === '"' || char === "'" || char === "`") {
184
+ quote = char;
185
+ continue;
186
+ }
187
+ if (char === "<" || char === "(" || char === "{" || char === "[") {
188
+ depth++;
189
+ continue;
190
+ }
191
+ if (char === ">" || char === ")" || char === "}" || char === "]") {
192
+ depth = Math.max(0, depth - 1);
193
+ continue;
194
+ }
195
+ var _nextNonWhitespace;
196
+ if (depth === 0 && (char === ";" || char === "," || char === "\n" && type.slice(start, i).includes(":") && !["|", "&"].includes((_nextNonWhitespace = nextNonWhitespace(type, i + 1)) !== null && _nextNonWhitespace !== void 0 ? _nextNonWhitespace : ""))) {
197
+ parts.push(type.slice(start, i).trim());
198
+ start = i + 1;
199
+ }
200
+ }
201
+ parts.push(type.slice(start).trim());
202
+ return parts.filter(Boolean);
203
+ }
204
+ function parseInlineObjectEntries(type) {
205
+ if (!type.startsWith("{") || !type.endsWith("}")) return void 0;
206
+ var inner = type.slice(1, -1).trim();
207
+ if (!inner) return [];
208
+ var entries = [];
209
+ var _iteratorNormalCompletion = true,
210
+ _didIteratorError = false,
211
+ _iteratorError = void 0;
212
+ try {
213
+ for (var _iterator = splitTopLevelObjectEntries(inner)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
214
+ var part = _step.value;
215
+ var trimmed = part.trim().replace(/[;,]\s*$/, "");
216
+ if (!trimmed || trimmed.startsWith("[")) continue;
217
+ var match = trimmed.match(RegExp("^(?:readonly\\s+)?(\\w+)(\\?)?:\\s*(.+)$", "s"));
218
+ if (!match) continue;
219
+ var [, name, opt, typeStr] = match;
220
+ var parsed = parseTypeString(typeStr.trim());
221
+ if (!parsed) return null;
222
+ var val = parsed;
223
+ if (opt) val = `v.optional(${val})`;
224
+ entries.push(`${formatObjectKey(name)}: ${val}`);
225
+ }
226
+ } catch (err) {
227
+ _didIteratorError = true;
228
+ _iteratorError = err;
229
+ } finally {
230
+ try {
231
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
232
+ _iterator.return();
233
+ }
234
+ } finally {
235
+ if (_didIteratorError) {
236
+ throw _iteratorError;
237
+ }
238
+ }
239
+ }
240
+ return entries;
241
+ }
53
242
  function parseTypeString(type) {
54
- type = type.trim();
55
- if (type === "string") return "v.string()";
56
- if (type === "number") return "v.number()";
57
- if (type === "boolean") return "v.boolean()";
58
- if (type === "void" || type === "undefined") return "v.void_()";
59
- if (type === "null") return "v.null_()";
60
- if (type === "any" || type === "unknown") return "v.unknown()";
61
- if (type.startsWith("{") && type.endsWith("}")) {
62
- var inner = type.slice(1, -1).trim();
63
- if (!inner) return "v.object({})";
64
- var normalized = inner.replace(/\n/g, "; ").replace(/;\s*;/g, ";");
243
+ type = stripTypeComments(type.trim()).trim();
244
+ var unionParts = splitTopLevelTypeUnion(type);
245
+ if (unionParts.length > 1) {
246
+ var hasNull = unionParts.includes("null");
247
+ var hasUndefined = unionParts.includes("undefined") || unionParts.includes("void");
248
+ var valueParts = unionParts.filter(function (part2) {
249
+ return part2 !== "null" && part2 !== "undefined" && part2 !== "void";
250
+ });
251
+ if (valueParts.length === 0) return hasNull ? "v.null_()" : "v.void_()";
252
+ var parsedParts = valueParts.map(function (part2) {
253
+ return parseTypeString(part2);
254
+ });
255
+ if (parsedParts.some(function (part2) {
256
+ return !part2;
257
+ })) return null;
258
+ var val = parsedParts.length === 1 ? parsedParts[0] : `v.union([${parsedParts.join(", ")}])`;
259
+ if (hasNull) val = `v.nullable(${val})`;
260
+ if (hasUndefined) val = `v.optional(${val})`;
261
+ return val;
262
+ }
263
+ var intersectionParts = splitTopLevelTypeIntersection(type);
264
+ if (intersectionParts.length > 1) {
65
265
  var entries = [];
66
266
  var _iteratorNormalCompletion = true,
67
267
  _didIteratorError = false,
68
268
  _iteratorError = void 0;
69
269
  try {
70
- for (var _iterator = normalized.split(";")[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
270
+ for (var _iterator = intersectionParts[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
71
271
  var part = _step.value;
72
- var trimmed = part.trim().replace(/,\s*$/, "");
73
- if (!trimmed) continue;
74
- var match = trimmed.match(/^(?:readonly\s+)?(\w+)(\?)?:\s*(.+)$/);
75
- if (!match) continue;
76
- var [, name, opt, typeStr] = match;
77
- var parsed = parseTypeString(typeStr.trim());
78
- if (!parsed) return null;
79
- var val = parsed;
80
- if (opt) val = `v.optional(${val})`;
81
- entries.push(`${formatObjectKey(name)}: ${val}`);
272
+ var objectEntries = parseInlineObjectEntries(part);
273
+ if (!objectEntries) return null;
274
+ entries.push(...objectEntries);
82
275
  }
83
276
  } catch (err) {
84
277
  _didIteratorError = true;
@@ -99,9 +292,24 @@ function parseTypeString(type) {
99
292
  ${entries.join(",\n ")},
100
293
  })`;
101
294
  }
295
+ if (type === "string") return "v.string()";
296
+ if (type === "number") return "v.number()";
297
+ if (type === "boolean") return "v.boolean()";
298
+ if (type === "void" || type === "undefined") return "v.void_()";
299
+ if (type === "null") return "v.null_()";
300
+ if (type === "any" || type === "unknown") return "v.unknown()";
301
+ var objectEntries1 = parseInlineObjectEntries(type);
302
+ if (objectEntries1) {
303
+ var entries1 = objectEntries1;
304
+ if (entries1.length === 0) return "v.object({})";
305
+ return `v.object({
306
+ ${entries1.join(",\n ")},
307
+ })`;
308
+ }
309
+ if (objectEntries1 === null) return null;
102
310
  if (type.endsWith("[]")) {
103
- var inner1 = parseTypeString(type.slice(0, -2).trim());
104
- return inner1 ? `v.array(${inner1})` : null;
311
+ var inner = parseTypeString(type.slice(0, -2).trim());
312
+ return inner ? `v.array(${inner})` : null;
105
313
  }
106
314
  return null;
107
315
  }
@@ -450,10 +658,14 @@ function generateSyncedMutationsFile(modelMutations) {
450
658
  for (var _iterator = model.custom[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
451
659
  var mut = _step.value;
452
660
  if (model.hasCRUD && ["insert", "update", "delete", "upsert"].includes(mut.name)) continue;
453
- if (mut.paramType === "void" || !mut.valibotCode) {
661
+ if (mut.paramType === "void") {
454
662
  entries.push(` ${mut.name}: v.void_(),`);
455
663
  continue;
456
664
  }
665
+ if (!mut.valibotCode) {
666
+ entries.push(` ${mut.name}: v.unknown(),`);
667
+ continue;
668
+ }
457
669
  entries.push(` ${mut.name}: ${extractValibotExpression(mut.valibotCode)},`);
458
670
  }
459
671
  } catch (err) {