@ic-reactor/candid 3.0.11-beta.1 → 3.0.12-beta.0
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/display-reactor.d.ts +1 -2
- package/dist/display-reactor.d.ts.map +1 -1
- package/dist/display-reactor.js +1 -1
- package/dist/display-reactor.js.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/metadata-display-reactor.d.ts +3 -3
- package/dist/metadata-display-reactor.d.ts.map +1 -1
- package/dist/visitor/arguments/index.d.ts +58 -39
- package/dist/visitor/arguments/index.d.ts.map +1 -1
- package/dist/visitor/arguments/index.js +273 -81
- package/dist/visitor/arguments/index.js.map +1 -1
- package/dist/visitor/arguments/types.d.ts +228 -45
- package/dist/visitor/arguments/types.d.ts.map +1 -1
- package/dist/visitor/arguments/types.js +40 -1
- package/dist/visitor/arguments/types.js.map +1 -1
- package/dist/visitor/helpers.d.ts +1 -1
- package/dist/visitor/helpers.d.ts.map +1 -1
- package/dist/visitor/returns/index.d.ts +3 -3
- package/dist/visitor/returns/index.d.ts.map +1 -1
- package/dist/visitor/returns/index.js +54 -15
- package/dist/visitor/returns/index.js.map +1 -1
- package/dist/visitor/types.d.ts +2 -3
- package/dist/visitor/types.d.ts.map +1 -1
- package/dist/visitor/types.js +1 -2
- package/dist/visitor/types.js.map +1 -1
- package/package.json +6 -3
- package/src/display-reactor.ts +4 -6
- package/src/index.ts +0 -1
- package/src/metadata-display-reactor.ts +6 -6
- package/src/visitor/arguments/README.md +230 -0
- package/src/visitor/arguments/index.test.ts +144 -51
- package/src/visitor/arguments/index.ts +351 -146
- package/src/visitor/arguments/schema.test.ts +215 -0
- package/src/visitor/arguments/types.ts +287 -61
- package/src/visitor/helpers.ts +1 -1
- package/src/visitor/returns/index.test.ts +163 -1
- package/src/visitor/returns/index.ts +62 -16
- package/src/visitor/types.ts +2 -3
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { isQuery } from "../helpers";
|
|
2
|
-
import { IDL } from "
|
|
2
|
+
import { IDL } from "@icp-sdk/core/candid";
|
|
3
|
+
import { Principal } from "@icp-sdk/core/principal";
|
|
4
|
+
import * as z from "zod";
|
|
3
5
|
export * from "./types";
|
|
4
6
|
/**
|
|
5
7
|
* ArgumentFieldVisitor generates metadata for form input fields from Candid IDL types.
|
|
@@ -10,55 +12,81 @@ export * from "./types";
|
|
|
10
12
|
* 2. **No value dependencies** - metadata is independent of actual values
|
|
11
13
|
* 3. **Form-framework agnostic** - output can be used with TanStack, React Hook Form, etc.
|
|
12
14
|
* 4. **Efficient** - single traversal, no runtime type checking
|
|
15
|
+
* 5. **TanStack Form optimized** - name paths compatible with TanStack Form patterns
|
|
13
16
|
*
|
|
14
17
|
* ## Output Structure
|
|
15
18
|
*
|
|
16
19
|
* Each field has:
|
|
17
20
|
* - `type`: The field type (record, variant, text, number, etc.)
|
|
18
21
|
* - `label`: Human-readable label from Candid
|
|
19
|
-
* - `
|
|
22
|
+
* - `name`: TanStack Form compatible path (e.g., "[0]", "[0].owner", "tags[1]")
|
|
20
23
|
* - `defaultValue`: Initial value for the form
|
|
24
|
+
* - `schema`: Zod schema for validation
|
|
21
25
|
* - Type-specific properties (options for variant, fields for record, etc.)
|
|
26
|
+
* - Helper methods for dynamic forms (getOptionDefault, getItemDefault, etc.)
|
|
27
|
+
*
|
|
28
|
+
* ## Usage with TanStack Form
|
|
22
29
|
*
|
|
23
30
|
* @example
|
|
24
31
|
* ```typescript
|
|
32
|
+
* import { useForm } from '@tanstack/react-form'
|
|
33
|
+
* import { ArgumentFieldVisitor } from '@ic-reactor/candid'
|
|
34
|
+
*
|
|
25
35
|
* const visitor = new ArgumentFieldVisitor()
|
|
26
36
|
* const serviceMeta = service.accept(visitor, null)
|
|
27
|
-
*
|
|
28
|
-
* // For a specific method
|
|
29
37
|
* const methodMeta = serviceMeta["icrc1_transfer"]
|
|
30
|
-
*
|
|
31
|
-
*
|
|
38
|
+
*
|
|
39
|
+
* const form = useForm({
|
|
40
|
+
* defaultValues: methodMeta.defaultValue,
|
|
41
|
+
* validators: { onBlur: methodMeta.schema },
|
|
42
|
+
* onSubmit: async ({ value }) => {
|
|
43
|
+
* await actor.icrc1_transfer(...value)
|
|
44
|
+
* }
|
|
45
|
+
* })
|
|
46
|
+
*
|
|
47
|
+
* // Render fields dynamically
|
|
48
|
+
* methodMeta.fields.map((field, index) => (
|
|
49
|
+
* <form.Field key={index} name={field.name}>
|
|
50
|
+
* {(fieldApi) => <DynamicInput field={field} fieldApi={fieldApi} />}
|
|
51
|
+
* </form.Field>
|
|
52
|
+
* ))
|
|
32
53
|
* ```
|
|
33
54
|
*/
|
|
34
55
|
export class ArgumentFieldVisitor extends IDL.Visitor {
|
|
35
56
|
constructor() {
|
|
36
57
|
super(...arguments);
|
|
37
|
-
Object.defineProperty(this, "
|
|
58
|
+
Object.defineProperty(this, "recursiveSchemas", {
|
|
59
|
+
enumerable: true,
|
|
60
|
+
configurable: true,
|
|
61
|
+
writable: true,
|
|
62
|
+
value: new Map()
|
|
63
|
+
});
|
|
64
|
+
Object.defineProperty(this, "nameStack", {
|
|
38
65
|
enumerable: true,
|
|
39
66
|
configurable: true,
|
|
40
67
|
writable: true,
|
|
41
68
|
value: []
|
|
42
69
|
});
|
|
43
70
|
}
|
|
44
|
-
|
|
45
|
-
|
|
71
|
+
/**
|
|
72
|
+
* Execute function with a name segment pushed onto the stack.
|
|
73
|
+
* Automatically manages stack cleanup.
|
|
74
|
+
*/
|
|
75
|
+
withName(name, fn) {
|
|
76
|
+
this.nameStack.push(name);
|
|
46
77
|
try {
|
|
47
78
|
return fn();
|
|
48
79
|
}
|
|
49
80
|
finally {
|
|
50
|
-
this.
|
|
81
|
+
this.nameStack.pop();
|
|
51
82
|
}
|
|
52
83
|
}
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
return parent ? `${parent}[${key}]` : String(key);
|
|
60
|
-
}
|
|
61
|
-
return parent ? `${parent}.${key}` : key;
|
|
84
|
+
/**
|
|
85
|
+
* Get the current full name path for form binding.
|
|
86
|
+
* Returns empty string for root level.
|
|
87
|
+
*/
|
|
88
|
+
currentName() {
|
|
89
|
+
return this.nameStack.join("");
|
|
62
90
|
}
|
|
63
91
|
// ════════════════════════════════════════════════════════════════════════
|
|
64
92
|
// Service & Function Level
|
|
@@ -72,206 +100,370 @@ export class ArgumentFieldVisitor extends IDL.Visitor {
|
|
|
72
100
|
}
|
|
73
101
|
visitFunc(t, functionName) {
|
|
74
102
|
const functionType = isQuery(t) ? "query" : "update";
|
|
103
|
+
const argCount = t.argTypes.length;
|
|
75
104
|
const fields = t.argTypes.map((arg, index) => {
|
|
76
|
-
return this.
|
|
105
|
+
return this.withName(`[${index}]`, () => arg.accept(this, `__arg${index}`));
|
|
77
106
|
});
|
|
78
|
-
const defaultValues = fields.map((field) =>
|
|
107
|
+
const defaultValues = fields.map((field) => field.defaultValue);
|
|
108
|
+
// Handle empty args case for schema
|
|
109
|
+
// For no-arg functions, use an empty array schema
|
|
110
|
+
// For functions with args, use a proper tuple schema
|
|
111
|
+
const schema = argCount === 0
|
|
112
|
+
? z.tuple([])
|
|
113
|
+
: z.tuple(fields.map((field) => field.schema));
|
|
79
114
|
return {
|
|
80
115
|
functionType,
|
|
81
116
|
functionName,
|
|
82
117
|
fields,
|
|
83
|
-
defaultValues,
|
|
118
|
+
defaultValues: defaultValues,
|
|
119
|
+
schema,
|
|
120
|
+
argCount,
|
|
121
|
+
isNoArgs: argCount === 0,
|
|
84
122
|
};
|
|
85
123
|
}
|
|
86
|
-
extractDefaultValue(field) {
|
|
87
|
-
if ("defaultValue" in field) {
|
|
88
|
-
return field.defaultValue;
|
|
89
|
-
}
|
|
90
|
-
if ("defaultValues" in field) {
|
|
91
|
-
return field.defaultValues;
|
|
92
|
-
}
|
|
93
|
-
return undefined;
|
|
94
|
-
}
|
|
95
124
|
// ════════════════════════════════════════════════════════════════════════
|
|
96
125
|
// Compound Types
|
|
97
126
|
// ════════════════════════════════════════════════════════════════════════
|
|
98
127
|
visitRecord(_t, fields_, label) {
|
|
99
|
-
const
|
|
128
|
+
const name = this.currentName();
|
|
100
129
|
const fields = [];
|
|
101
|
-
const
|
|
130
|
+
const fieldMap = new Map();
|
|
131
|
+
const defaultValue = {};
|
|
132
|
+
const schemaShape = {};
|
|
102
133
|
for (const [key, type] of fields_) {
|
|
103
|
-
const field = this.
|
|
134
|
+
const field = this.withName(name ? `.${key}` : key, () => type.accept(this, key));
|
|
104
135
|
fields.push(field);
|
|
105
|
-
|
|
136
|
+
fieldMap.set(key, field);
|
|
137
|
+
defaultValue[key] = field.defaultValue;
|
|
138
|
+
schemaShape[key] = field.schema;
|
|
106
139
|
}
|
|
140
|
+
const schema = z.object(schemaShape);
|
|
107
141
|
return {
|
|
108
142
|
type: "record",
|
|
109
143
|
label,
|
|
110
|
-
|
|
144
|
+
name,
|
|
111
145
|
fields,
|
|
112
|
-
|
|
146
|
+
fieldMap,
|
|
147
|
+
defaultValue,
|
|
148
|
+
schema,
|
|
149
|
+
candidType: "record",
|
|
113
150
|
};
|
|
114
151
|
}
|
|
115
152
|
visitVariant(_t, fields_, label) {
|
|
116
|
-
const
|
|
153
|
+
const name = this.currentName();
|
|
117
154
|
const fields = [];
|
|
118
155
|
const options = [];
|
|
156
|
+
const optionMap = new Map();
|
|
157
|
+
const variantSchemas = [];
|
|
119
158
|
for (const [key, type] of fields_) {
|
|
120
|
-
const field = this.
|
|
159
|
+
const field = this.withName(`.${key}`, () => type.accept(this, key));
|
|
121
160
|
fields.push(field);
|
|
122
161
|
options.push(key);
|
|
162
|
+
optionMap.set(key, field);
|
|
163
|
+
variantSchemas.push(z.object({ [key]: field.schema }));
|
|
123
164
|
}
|
|
124
165
|
const defaultOption = options[0];
|
|
125
|
-
const
|
|
126
|
-
|
|
166
|
+
const firstField = fields[0];
|
|
167
|
+
const defaultValue = {
|
|
168
|
+
[defaultOption]: firstField.defaultValue,
|
|
169
|
+
};
|
|
170
|
+
const schema = z.union(variantSchemas);
|
|
171
|
+
// Helper to get default value for any option
|
|
172
|
+
const getOptionDefault = (option) => {
|
|
173
|
+
const optField = optionMap.get(option);
|
|
174
|
+
if (!optField) {
|
|
175
|
+
throw new Error(`Unknown variant option: ${option}`);
|
|
176
|
+
}
|
|
177
|
+
return { [option]: optField.defaultValue };
|
|
127
178
|
};
|
|
128
179
|
return {
|
|
129
180
|
type: "variant",
|
|
130
181
|
label,
|
|
131
|
-
|
|
182
|
+
name,
|
|
132
183
|
fields,
|
|
133
184
|
options,
|
|
134
185
|
defaultOption,
|
|
135
|
-
|
|
186
|
+
optionMap,
|
|
187
|
+
defaultValue,
|
|
188
|
+
schema,
|
|
189
|
+
getOptionDefault,
|
|
190
|
+
candidType: "variant",
|
|
136
191
|
};
|
|
137
192
|
}
|
|
138
193
|
visitTuple(_t, components, label) {
|
|
139
|
-
const
|
|
194
|
+
const name = this.currentName();
|
|
140
195
|
const fields = [];
|
|
141
|
-
const
|
|
196
|
+
const defaultValue = [];
|
|
197
|
+
const schemas = [];
|
|
142
198
|
for (let index = 0; index < components.length; index++) {
|
|
143
199
|
const type = components[index];
|
|
144
|
-
const field = this.
|
|
200
|
+
const field = this.withName(`[${index}]`, () => type.accept(this, `_${index}_`));
|
|
145
201
|
fields.push(field);
|
|
146
|
-
|
|
202
|
+
defaultValue.push(field.defaultValue);
|
|
203
|
+
schemas.push(field.schema);
|
|
147
204
|
}
|
|
205
|
+
const schema = z.tuple(schemas);
|
|
148
206
|
return {
|
|
149
207
|
type: "tuple",
|
|
150
208
|
label,
|
|
151
|
-
|
|
209
|
+
name,
|
|
152
210
|
fields,
|
|
153
|
-
|
|
211
|
+
defaultValue,
|
|
212
|
+
schema,
|
|
213
|
+
candidType: "tuple",
|
|
154
214
|
};
|
|
155
215
|
}
|
|
156
216
|
visitOpt(_t, ty, label) {
|
|
157
|
-
const
|
|
158
|
-
|
|
217
|
+
const name = this.currentName();
|
|
218
|
+
// For optional, the inner field keeps the same name path
|
|
219
|
+
// because the value replaces null directly (not nested)
|
|
220
|
+
const innerField = ty.accept(this, label);
|
|
221
|
+
const schema = z.union([
|
|
222
|
+
innerField.schema,
|
|
223
|
+
z.null(),
|
|
224
|
+
z.undefined().transform(() => null),
|
|
225
|
+
z.literal("").transform(() => null),
|
|
226
|
+
]);
|
|
227
|
+
// Helper to get the inner default when enabling the optional
|
|
228
|
+
const getInnerDefault = () => innerField.defaultValue;
|
|
159
229
|
return {
|
|
160
230
|
type: "optional",
|
|
161
231
|
label,
|
|
162
|
-
|
|
232
|
+
name,
|
|
163
233
|
innerField,
|
|
164
234
|
defaultValue: null,
|
|
235
|
+
schema,
|
|
236
|
+
getInnerDefault,
|
|
237
|
+
candidType: "opt",
|
|
165
238
|
};
|
|
166
239
|
}
|
|
167
240
|
visitVec(_t, ty, label) {
|
|
168
|
-
const
|
|
241
|
+
const name = this.currentName();
|
|
169
242
|
// Check if it's blob (vec nat8)
|
|
170
243
|
const isBlob = ty instanceof IDL.FixedNatClass && ty._bits === 8;
|
|
171
|
-
|
|
244
|
+
// Item field uses [0] as template path
|
|
245
|
+
const itemField = this.withName("[0]", () => ty.accept(this, `${label}_item`));
|
|
172
246
|
if (isBlob) {
|
|
247
|
+
const schema = z.union([
|
|
248
|
+
z.string(),
|
|
249
|
+
z.array(z.number()),
|
|
250
|
+
z.instanceof(Uint8Array),
|
|
251
|
+
]);
|
|
173
252
|
return {
|
|
174
253
|
type: "blob",
|
|
175
254
|
label,
|
|
176
|
-
|
|
255
|
+
name,
|
|
177
256
|
itemField,
|
|
178
257
|
defaultValue: "",
|
|
258
|
+
schema,
|
|
259
|
+
acceptedFormats: ["hex", "base64", "file"],
|
|
260
|
+
candidType: "blob",
|
|
179
261
|
};
|
|
180
262
|
}
|
|
263
|
+
const schema = z.array(itemField.schema);
|
|
264
|
+
// Helper to get a new item with default values
|
|
265
|
+
const getItemDefault = () => itemField.defaultValue;
|
|
181
266
|
return {
|
|
182
267
|
type: "vector",
|
|
183
268
|
label,
|
|
184
|
-
|
|
269
|
+
name,
|
|
185
270
|
itemField,
|
|
186
271
|
defaultValue: [],
|
|
272
|
+
schema,
|
|
273
|
+
getItemDefault,
|
|
274
|
+
candidType: "vec",
|
|
187
275
|
};
|
|
188
276
|
}
|
|
189
277
|
visitRec(_t, ty, label) {
|
|
190
|
-
const
|
|
278
|
+
const name = this.currentName();
|
|
279
|
+
const typeName = ty.name || "RecursiveType";
|
|
280
|
+
let schema;
|
|
281
|
+
if (this.recursiveSchemas.has(typeName)) {
|
|
282
|
+
schema = this.recursiveSchemas.get(typeName);
|
|
283
|
+
}
|
|
284
|
+
else {
|
|
285
|
+
schema = z.lazy(() => ty.accept(this, label).schema);
|
|
286
|
+
this.recursiveSchemas.set(typeName, schema);
|
|
287
|
+
}
|
|
288
|
+
// Lazy extraction to prevent infinite loops
|
|
289
|
+
const extract = () => this.withName(name, () => ty.accept(this, label));
|
|
290
|
+
// Helper to get inner default (evaluates lazily)
|
|
291
|
+
const getInnerDefault = () => extract().defaultValue;
|
|
191
292
|
return {
|
|
192
293
|
type: "recursive",
|
|
193
294
|
label,
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
extract
|
|
295
|
+
name,
|
|
296
|
+
typeName,
|
|
297
|
+
extract,
|
|
298
|
+
defaultValue: undefined,
|
|
299
|
+
schema,
|
|
300
|
+
getInnerDefault,
|
|
301
|
+
candidType: "rec",
|
|
197
302
|
};
|
|
198
303
|
}
|
|
199
304
|
// ════════════════════════════════════════════════════════════════════════
|
|
200
305
|
// Primitive Types
|
|
201
306
|
// ════════════════════════════════════════════════════════════════════════
|
|
202
307
|
visitPrincipal(_t, label) {
|
|
308
|
+
const schema = z.custom((val) => {
|
|
309
|
+
if (val instanceof Principal)
|
|
310
|
+
return true;
|
|
311
|
+
if (typeof val === "string") {
|
|
312
|
+
try {
|
|
313
|
+
Principal.fromText(val);
|
|
314
|
+
return true;
|
|
315
|
+
}
|
|
316
|
+
catch {
|
|
317
|
+
return false;
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
return false;
|
|
321
|
+
}, {
|
|
322
|
+
message: "Invalid Principal format",
|
|
323
|
+
});
|
|
203
324
|
return {
|
|
204
325
|
type: "principal",
|
|
205
326
|
label,
|
|
206
|
-
|
|
327
|
+
name: this.currentName(),
|
|
207
328
|
defaultValue: "",
|
|
208
329
|
maxLength: 64,
|
|
209
330
|
minLength: 7,
|
|
331
|
+
schema,
|
|
332
|
+
candidType: "principal",
|
|
333
|
+
ui: {
|
|
334
|
+
placeholder: "aaaaa-aa or full principal ID",
|
|
335
|
+
},
|
|
210
336
|
};
|
|
211
337
|
}
|
|
212
338
|
visitText(_t, label) {
|
|
213
339
|
return {
|
|
214
340
|
type: "text",
|
|
215
341
|
label,
|
|
216
|
-
|
|
342
|
+
name: this.currentName(),
|
|
217
343
|
defaultValue: "",
|
|
344
|
+
schema: z.string().min(1, "Required"),
|
|
345
|
+
candidType: "text",
|
|
346
|
+
ui: {
|
|
347
|
+
placeholder: "Enter text...",
|
|
348
|
+
},
|
|
218
349
|
};
|
|
219
350
|
}
|
|
220
351
|
visitBool(_t, label) {
|
|
221
352
|
return {
|
|
222
353
|
type: "boolean",
|
|
223
354
|
label,
|
|
224
|
-
|
|
355
|
+
name: this.currentName(),
|
|
225
356
|
defaultValue: false,
|
|
357
|
+
schema: z.boolean(),
|
|
358
|
+
candidType: "bool",
|
|
226
359
|
};
|
|
227
360
|
}
|
|
228
361
|
visitNull(_t, label) {
|
|
229
362
|
return {
|
|
230
363
|
type: "null",
|
|
231
364
|
label,
|
|
232
|
-
|
|
365
|
+
name: this.currentName(),
|
|
233
366
|
defaultValue: null,
|
|
367
|
+
schema: z.null(),
|
|
368
|
+
candidType: "null",
|
|
234
369
|
};
|
|
235
370
|
}
|
|
236
|
-
//
|
|
237
|
-
|
|
371
|
+
// ════════════════════════════════════════════════════════════════════════
|
|
372
|
+
// Number Types with Constraints
|
|
373
|
+
// ════════════════════════════════════════════════════════════════════════
|
|
374
|
+
visitNumberType(label, candidType, options) {
|
|
375
|
+
let schema = z.string().min(1, "Required");
|
|
376
|
+
if (options.isFloat) {
|
|
377
|
+
schema = schema.refine((val) => !isNaN(Number(val)), "Must be a number");
|
|
378
|
+
}
|
|
379
|
+
else if (options.unsigned) {
|
|
380
|
+
schema = schema.regex(/^\d+$/, "Must be a positive number");
|
|
381
|
+
}
|
|
382
|
+
else {
|
|
383
|
+
schema = schema.regex(/^-?\d+$/, "Must be a number");
|
|
384
|
+
}
|
|
385
|
+
// Use "text" type for large numbers (BigInt) to ensure precision and better UI handling
|
|
386
|
+
// Standard number input has issues with large integers
|
|
387
|
+
const isBigInt = !options.isFloat && (!options.bits || options.bits > 32);
|
|
388
|
+
const type = isBigInt ? "text" : "number";
|
|
389
|
+
if (type === "text") {
|
|
390
|
+
return {
|
|
391
|
+
type: "text",
|
|
392
|
+
label,
|
|
393
|
+
name: this.currentName(),
|
|
394
|
+
defaultValue: "",
|
|
395
|
+
candidType,
|
|
396
|
+
schema,
|
|
397
|
+
ui: {
|
|
398
|
+
placeholder: options.unsigned ? "e.g. 100000" : "e.g. -100000",
|
|
399
|
+
},
|
|
400
|
+
};
|
|
401
|
+
}
|
|
238
402
|
return {
|
|
239
403
|
type: "number",
|
|
240
404
|
label,
|
|
241
|
-
|
|
405
|
+
name: this.currentName(),
|
|
242
406
|
defaultValue: "",
|
|
243
407
|
candidType,
|
|
408
|
+
schema: schema,
|
|
409
|
+
...options,
|
|
410
|
+
ui: {
|
|
411
|
+
placeholder: options.isFloat ? "0.0" : "0",
|
|
412
|
+
},
|
|
244
413
|
};
|
|
245
414
|
}
|
|
246
415
|
visitInt(_t, label) {
|
|
247
|
-
return this.visitNumberType(label, "int"
|
|
416
|
+
return this.visitNumberType(label, "int", {
|
|
417
|
+
unsigned: false,
|
|
418
|
+
isFloat: false,
|
|
419
|
+
});
|
|
248
420
|
}
|
|
249
421
|
visitNat(_t, label) {
|
|
250
|
-
return this.visitNumberType(label, "nat"
|
|
422
|
+
return this.visitNumberType(label, "nat", {
|
|
423
|
+
unsigned: true,
|
|
424
|
+
isFloat: false,
|
|
425
|
+
});
|
|
251
426
|
}
|
|
252
|
-
visitFloat(
|
|
253
|
-
return this.visitNumberType(label,
|
|
427
|
+
visitFloat(t, label) {
|
|
428
|
+
return this.visitNumberType(label, `float${t._bits}`, {
|
|
429
|
+
unsigned: false,
|
|
430
|
+
isFloat: true,
|
|
431
|
+
bits: t._bits,
|
|
432
|
+
});
|
|
254
433
|
}
|
|
255
434
|
visitFixedInt(t, label) {
|
|
256
|
-
|
|
435
|
+
const bits = t._bits;
|
|
436
|
+
// Calculate min/max for signed integers
|
|
437
|
+
const max = (BigInt(2) ** BigInt(bits - 1) - BigInt(1)).toString();
|
|
438
|
+
const min = (-(BigInt(2) ** BigInt(bits - 1))).toString();
|
|
439
|
+
return this.visitNumberType(label, `int${bits}`, {
|
|
440
|
+
unsigned: false,
|
|
441
|
+
isFloat: false,
|
|
442
|
+
bits,
|
|
443
|
+
min,
|
|
444
|
+
max,
|
|
445
|
+
});
|
|
257
446
|
}
|
|
258
447
|
visitFixedNat(t, label) {
|
|
259
|
-
|
|
448
|
+
const bits = t._bits;
|
|
449
|
+
// Calculate max for unsigned integers
|
|
450
|
+
const max = (BigInt(2) ** BigInt(bits) - BigInt(1)).toString();
|
|
451
|
+
return this.visitNumberType(label, `nat${bits}`, {
|
|
452
|
+
unsigned: true,
|
|
453
|
+
isFloat: false,
|
|
454
|
+
bits,
|
|
455
|
+
min: "0",
|
|
456
|
+
max,
|
|
457
|
+
});
|
|
260
458
|
}
|
|
261
459
|
visitType(_t, label) {
|
|
262
460
|
return {
|
|
263
461
|
type: "unknown",
|
|
264
462
|
label,
|
|
265
|
-
|
|
463
|
+
name: this.currentName(),
|
|
266
464
|
defaultValue: undefined,
|
|
465
|
+
schema: z.any(),
|
|
267
466
|
};
|
|
268
467
|
}
|
|
269
468
|
}
|
|
270
|
-
// ════════════════════════════════════════════════════════════════════════════
|
|
271
|
-
// Legacy Exports (for backward compatibility)
|
|
272
|
-
// ════════════════════════════════════════════════════════════════════════════
|
|
273
|
-
/**
|
|
274
|
-
* @deprecated Use ArgumentFieldVisitor instead
|
|
275
|
-
*/
|
|
276
|
-
export { ArgumentFieldVisitor as VisitTanstackField };
|
|
277
469
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/visitor/arguments/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/visitor/arguments/index.ts"],"names":[],"mappings":"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"}
|