@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.
Files changed (40) hide show
  1. package/dist/display-reactor.d.ts +1 -2
  2. package/dist/display-reactor.d.ts.map +1 -1
  3. package/dist/display-reactor.js +1 -1
  4. package/dist/display-reactor.js.map +1 -1
  5. package/dist/index.d.ts +0 -1
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js.map +1 -1
  8. package/dist/metadata-display-reactor.d.ts +3 -3
  9. package/dist/metadata-display-reactor.d.ts.map +1 -1
  10. package/dist/visitor/arguments/index.d.ts +58 -39
  11. package/dist/visitor/arguments/index.d.ts.map +1 -1
  12. package/dist/visitor/arguments/index.js +273 -81
  13. package/dist/visitor/arguments/index.js.map +1 -1
  14. package/dist/visitor/arguments/types.d.ts +228 -45
  15. package/dist/visitor/arguments/types.d.ts.map +1 -1
  16. package/dist/visitor/arguments/types.js +40 -1
  17. package/dist/visitor/arguments/types.js.map +1 -1
  18. package/dist/visitor/helpers.d.ts +1 -1
  19. package/dist/visitor/helpers.d.ts.map +1 -1
  20. package/dist/visitor/returns/index.d.ts +3 -3
  21. package/dist/visitor/returns/index.d.ts.map +1 -1
  22. package/dist/visitor/returns/index.js +54 -15
  23. package/dist/visitor/returns/index.js.map +1 -1
  24. package/dist/visitor/types.d.ts +2 -3
  25. package/dist/visitor/types.d.ts.map +1 -1
  26. package/dist/visitor/types.js +1 -2
  27. package/dist/visitor/types.js.map +1 -1
  28. package/package.json +6 -3
  29. package/src/display-reactor.ts +4 -6
  30. package/src/index.ts +0 -1
  31. package/src/metadata-display-reactor.ts +6 -6
  32. package/src/visitor/arguments/README.md +230 -0
  33. package/src/visitor/arguments/index.test.ts +144 -51
  34. package/src/visitor/arguments/index.ts +351 -146
  35. package/src/visitor/arguments/schema.test.ts +215 -0
  36. package/src/visitor/arguments/types.ts +287 -61
  37. package/src/visitor/helpers.ts +1 -1
  38. package/src/visitor/returns/index.test.ts +163 -1
  39. package/src/visitor/returns/index.ts +62 -16
  40. package/src/visitor/types.ts +2 -3
@@ -1,5 +1,7 @@
1
1
  import { isQuery } from "../helpers";
2
- import { IDL } from "../types";
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
- * - `path`: Dot-notation path for form binding (e.g., "0.owner")
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
- * // methodMeta.fields = [{ type: "record", fields: [...] }]
31
- * // methodMeta.defaultValues = [{ to: "", amount: "" }]
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, "pathStack", {
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
- withPath(path, fn) {
45
- this.pathStack.push(path);
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.pathStack.pop();
81
+ this.nameStack.pop();
51
82
  }
52
83
  }
53
- currentPath() {
54
- return this.pathStack[this.pathStack.length - 1] ?? "";
55
- }
56
- childPath(key) {
57
- const parent = this.currentPath();
58
- if (typeof key === "number") {
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.withPath(`[${index}]`, () => arg.accept(this, `__arg${index}`));
105
+ return this.withName(`[${index}]`, () => arg.accept(this, `__arg${index}`));
77
106
  });
78
- const defaultValues = fields.map((field) => this.extractDefaultValue(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 path = this.currentPath();
128
+ const name = this.currentName();
100
129
  const fields = [];
101
- const defaultValues = {};
130
+ const fieldMap = new Map();
131
+ const defaultValue = {};
132
+ const schemaShape = {};
102
133
  for (const [key, type] of fields_) {
103
- const field = this.withPath(this.childPath(key), () => type.accept(this, key));
134
+ const field = this.withName(name ? `.${key}` : key, () => type.accept(this, key));
104
135
  fields.push(field);
105
- defaultValues[key] = this.extractDefaultValue(field);
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
- path,
144
+ name,
111
145
  fields,
112
- defaultValues,
146
+ fieldMap,
147
+ defaultValue,
148
+ schema,
149
+ candidType: "record",
113
150
  };
114
151
  }
115
152
  visitVariant(_t, fields_, label) {
116
- const path = this.currentPath();
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.withPath(this.childPath(key), () => type.accept(this, key));
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 defaultValues = {
126
- [defaultOption]: this.extractDefaultValue(fields[0]),
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
- path,
182
+ name,
132
183
  fields,
133
184
  options,
134
185
  defaultOption,
135
- defaultValues,
186
+ optionMap,
187
+ defaultValue,
188
+ schema,
189
+ getOptionDefault,
190
+ candidType: "variant",
136
191
  };
137
192
  }
138
193
  visitTuple(_t, components, label) {
139
- const path = this.currentPath();
194
+ const name = this.currentName();
140
195
  const fields = [];
141
- const defaultValues = [];
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.withPath(this.childPath(index), () => type.accept(this, `_${index}_`));
200
+ const field = this.withName(`[${index}]`, () => type.accept(this, `_${index}_`));
145
201
  fields.push(field);
146
- defaultValues.push(this.extractDefaultValue(field));
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
- path,
209
+ name,
152
210
  fields,
153
- defaultValues,
211
+ defaultValue,
212
+ schema,
213
+ candidType: "tuple",
154
214
  };
155
215
  }
156
216
  visitOpt(_t, ty, label) {
157
- const path = this.currentPath();
158
- const innerField = this.withPath(this.childPath(0), () => ty.accept(this, label));
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
- path,
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 path = this.currentPath();
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
- const itemField = this.withPath(this.childPath(0), () => ty.accept(this, label));
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
- path,
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
- path,
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 path = this.currentPath();
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
- path,
195
- // Lazy extraction to prevent infinite loops
196
- extract: () => this.withPath(path, () => ty.accept(this, label)),
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
- path: this.currentPath(),
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
- path: this.currentPath(),
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
- path: this.currentPath(),
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
- path: this.currentPath(),
365
+ name: this.currentName(),
233
366
  defaultValue: null,
367
+ schema: z.null(),
368
+ candidType: "null",
234
369
  };
235
370
  }
236
- // Numbers - all use string for display format
237
- visitNumberType(label, candidType) {
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
- path: this.currentPath(),
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(_t, label) {
253
- return this.visitNumberType(label, "float");
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
- return this.visitNumberType(label, `int${t._bits}`);
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
- return this.visitNumberType(label, `nat${t._bits}`);
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
- path: this.currentPath(),
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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"}