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.
- package/dist/cjs/createZeroClient.cjs +5 -1
- package/dist/cjs/createZeroClient.native.js +5 -1
- package/dist/cjs/createZeroClient.native.js.map +1 -1
- package/dist/cjs/generate-helpers.cjs +205 -19
- package/dist/cjs/generate-helpers.native.js +237 -25
- package/dist/cjs/generate-helpers.native.js.map +1 -1
- package/dist/cjs/generate-lite.native.js.map +1 -1
- package/dist/cjs/generate-lite.test.cjs +120 -1
- package/dist/cjs/generate-lite.test.native.js +120 -1
- package/dist/cjs/generate-lite.test.native.js.map +1 -1
- package/dist/cjs/generate.cjs +9 -1
- package/dist/cjs/generate.native.js +9 -1
- package/dist/cjs/generate.native.js.map +1 -1
- package/dist/cjs/generate.test.cjs +87 -0
- package/dist/cjs/generate.test.native.js +87 -0
- package/dist/cjs/generate.test.native.js.map +1 -1
- package/dist/esm/createZeroClient.mjs +5 -1
- package/dist/esm/createZeroClient.mjs.map +1 -1
- package/dist/esm/createZeroClient.native.js +5 -1
- package/dist/esm/createZeroClient.native.js.map +1 -1
- package/dist/esm/generate-helpers.mjs +205 -19
- package/dist/esm/generate-helpers.mjs.map +1 -1
- package/dist/esm/generate-helpers.native.js +237 -25
- package/dist/esm/generate-helpers.native.js.map +1 -1
- package/dist/esm/generate-lite.mjs.map +1 -1
- package/dist/esm/generate-lite.native.js.map +1 -1
- package/dist/esm/generate-lite.test.mjs +120 -1
- package/dist/esm/generate-lite.test.mjs.map +1 -1
- package/dist/esm/generate-lite.test.native.js +120 -1
- package/dist/esm/generate-lite.test.native.js.map +1 -1
- package/dist/esm/generate.mjs +9 -1
- package/dist/esm/generate.mjs.map +1 -1
- package/dist/esm/generate.native.js +9 -1
- package/dist/esm/generate.native.js.map +1 -1
- package/dist/esm/generate.test.mjs +87 -0
- package/dist/esm/generate.test.mjs.map +1 -1
- package/dist/esm/generate.test.native.js +87 -0
- package/dist/esm/generate.test.native.js.map +1 -1
- package/package.json +2 -2
- package/src/createZeroClient.tsx +6 -1
- package/src/generate-helpers.ts +234 -21
- package/src/generate-lite.test.ts +144 -1
- package/src/generate-lite.ts +1 -2
- package/src/generate.test.ts +96 -0
- package/src/generate.ts +11 -3
- package/types/createZeroClient.d.ts.map +1 -1
- package/types/generate-helpers.d.ts.map +1 -1
- package/types/generate-lite.d.ts.map +1 -1
- 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
|
|
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
|
|
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","
|
|
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
|
-
|
|
60
|
-
|
|
61
|
-
|
|
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"
|
|
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
|
-
|
|
56
|
-
if (
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
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 =
|
|
270
|
+
for (var _iterator = intersectionParts[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
71
271
|
var part = _step.value;
|
|
72
|
-
var
|
|
73
|
-
if (!
|
|
74
|
-
|
|
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
|
|
104
|
-
return
|
|
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"
|
|
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) {
|