@ic-reactor/candid 3.0.12-beta.0 → 3.0.14-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.
@@ -1,149 +1,173 @@
1
1
  import type { BaseActor, FunctionName, FunctionType } from "@ic-reactor/core";
2
2
  import * as z from "zod";
3
- export type ArgumentFieldType = "record" | "variant" | "tuple" | "optional" | "vector" | "blob" | "recursive" | "principal" | "number" | "text" | "boolean" | "null" | "unknown";
4
- export interface FieldUIHints {
5
- /** Placeholder text for the input */
6
- placeholder?: string;
7
- /** Description or help text for the field */
3
+ import type { VisitorDataType, TextFormat, NumberFormat } from "../types";
4
+ export type { TextFormat, NumberFormat };
5
+ export type ArgumentFieldType = VisitorDataType;
6
+ /**
7
+ * Suggested component type for rendering the field.
8
+ * This eliminates the need for switch statements in the frontend.
9
+ */
10
+ export type FieldComponentType = "record-container" | "tuple-container" | "variant-select" | "optional-toggle" | "vector-list" | "blob-upload" | "principal-input" | "text-input" | "number-input" | "boolean-checkbox" | "null-hidden" | "recursive-lazy" | "unknown-fallback";
11
+ /**
12
+ * Input type hints for HTML input elements.
13
+ * Used by primitive fields to suggest the appropriate input type.
14
+ */
15
+ export type InputType = "text" | "number" | "checkbox" | "select" | "file" | "textarea";
16
+ /**
17
+ * Rendering hints for the UI.
18
+ * Eliminates the need for frontend to maintain COMPLEX_TYPES arrays.
19
+ */
20
+ export interface RenderHint {
21
+ /** Whether this field has its own container/card styling (compound types) */
22
+ isCompound: boolean;
23
+ /** Whether this is a leaf input (primitive types) */
24
+ isPrimitive: boolean;
25
+ /** Suggested input type for HTML input elements */
26
+ inputType?: InputType;
27
+ /** Description or help text for the field (derived from Candid) */
8
28
  description?: string;
9
- /** Whether the field is required */
10
- required?: boolean;
11
- /** Whether the field should be disabled */
12
- disabled?: boolean;
13
- /** Additional CSS class names */
14
- className?: string;
15
29
  }
16
- export interface FieldBase<TValue = unknown> {
30
+ /**
31
+ * Pre-computed HTML input props for primitive fields.
32
+ * Can be spread directly onto an input element.
33
+ */
34
+ export interface PrimitiveInputProps {
35
+ /** HTML input type - includes format-specific types */
36
+ type?: "text" | "number" | "checkbox" | "email" | "url" | "tel";
37
+ /** Placeholder text */
38
+ placeholder?: string;
39
+ /** Minimum value for number inputs */
40
+ min?: string | number;
41
+ /** Maximum value for number inputs */
42
+ max?: string | number;
43
+ /** Step value for number inputs */
44
+ step?: string | number;
45
+ /** Pattern for text inputs (e.g., phone numbers) */
46
+ pattern?: string;
47
+ /** Input mode for virtual keyboards */
48
+ inputMode?: "text" | "numeric" | "decimal" | "email" | "tel" | "url";
49
+ /** Autocomplete hint */
50
+ autoComplete?: string;
51
+ /** Whether to check spelling */
52
+ spellCheck?: boolean;
53
+ /** Minimum length for text inputs */
54
+ minLength?: number;
55
+ /** Maximum length for text inputs */
56
+ maxLength?: number;
57
+ }
58
+ interface FieldBase<T extends VisitorDataType = VisitorDataType> {
17
59
  /** The field type */
18
- type: ArgumentFieldType;
19
- /** Human-readable label from Candid */
60
+ type: T;
61
+ /** Raw label from Candid: "__arg0", "_0_" */
20
62
  label: string;
21
- /**
22
- * Form field name path for binding.
23
- * Uses bracket notation for array indices: `[0]`, `args[0].owner`, `tags[1]`
24
- * Compatible with TanStack Form's `form.Field` name prop.
25
- *
26
- * @example
27
- * ```tsx
28
- * <form.Field name={field.name}>
29
- * {(fieldApi) => <input {...} />}
30
- * </form.Field>
31
- * ```
32
- */
63
+ /** Pre-formatted display label for UI rendering */
64
+ displayLabel: string;
65
+ /** Form field name path for binding */
33
66
  name: string;
67
+ /** Suggested component type for rendering this field */
68
+ component: FieldComponentType;
69
+ /** Rendering hints for UI strategy */
70
+ renderHint: RenderHint;
34
71
  /** Zod schema for field validation */
35
72
  schema: z.ZodTypeAny;
36
- /** Default value for the field */
37
- defaultValue: TValue;
38
73
  /** Original Candid type name for reference */
39
- candidType?: string;
40
- /** UI rendering hints */
41
- ui?: FieldUIHints;
74
+ candidType: string;
75
+ }
76
+ /**
77
+ * Blob field size limits.
78
+ */
79
+ export interface BlobLimits {
80
+ /** Maximum bytes when entering as hex (e.g., 512 bytes) */
81
+ maxHexBytes: number;
82
+ /** Maximum file size in bytes (e.g., 2MB ICP limit) */
83
+ maxFileBytes: number;
84
+ /** Maximum hex display length before truncation */
85
+ maxHexDisplayLength: number;
86
+ }
87
+ /**
88
+ * Validation result for blob input.
89
+ */
90
+ export interface BlobValidationResult {
91
+ /** Whether the input is valid */
92
+ valid: boolean;
93
+ /** Error message if invalid */
94
+ error?: string;
42
95
  }
43
- export interface RecordField extends FieldBase<Record<string, unknown>> {
44
- type: "record";
96
+ type FieldExtras<T extends VisitorDataType> = T extends "record" ? {
45
97
  /** Child fields in the record */
46
- fields: Field[];
98
+ fields: FieldNode[];
47
99
  /** Map of field label to its metadata for quick lookup */
48
- fieldMap: Map<string, Field>;
49
- }
50
- export interface VariantField extends FieldBase<Record<string, unknown>> {
51
- type: "variant";
100
+ fieldMap: Map<string, FieldNode>;
101
+ defaultValue: Record<string, unknown>;
102
+ } : T extends "variant" ? {
52
103
  /** All variant option fields */
53
- fields: Field[];
104
+ fields: FieldNode[];
54
105
  /** List of variant option names */
55
106
  options: string[];
56
107
  /** Default selected option */
57
108
  defaultOption: string;
58
109
  /** Map of option name to its field metadata */
59
- optionMap: Map<string, Field>;
60
- /**
61
- * Get default value for a specific option.
62
- * Useful when switching between variant options.
63
- *
64
- * @example
65
- * ```tsx
66
- * const handleOptionChange = (newOption: string) => {
67
- * const newDefault = field.getOptionDefault(newOption)
68
- * fieldApi.handleChange(newDefault)
69
- * }
70
- * ```
71
- */
110
+ optionMap: Map<string, FieldNode>;
111
+ defaultValue: Record<string, unknown>;
112
+ /** Get default value for a specific option */
72
113
  getOptionDefault: (option: string) => Record<string, unknown>;
73
- }
74
- export interface TupleField extends FieldBase<unknown[]> {
75
- type: "tuple";
114
+ /** Get the field for a specific option */
115
+ getField: (option: string) => FieldNode;
116
+ /** Get the currently selected option from a value */
117
+ getSelectedOption: (value: Record<string, unknown>) => string;
118
+ /** Get the selected field from a value */
119
+ getSelectedField: (value: Record<string, unknown>) => FieldNode;
120
+ } : T extends "tuple" ? {
76
121
  /** Tuple element fields in order */
77
- fields: Field[];
78
- }
79
- export interface OptionalField extends FieldBase<null> {
80
- type: "optional";
122
+ fields: FieldNode[];
123
+ defaultValue: unknown[];
124
+ } : T extends "optional" ? {
81
125
  /** The inner field when value is present */
82
- innerField: Field;
83
- /**
84
- * Get default value when enabling the optional.
85
- * Returns the inner field's default value.
86
- *
87
- * @example
88
- * ```tsx
89
- * const handleToggle = (enabled: boolean) => {
90
- * if (enabled) {
91
- * fieldApi.handleChange(field.getInnerDefault())
92
- * } else {
93
- * fieldApi.handleChange(null)
94
- * }
95
- * }
96
- * ```
97
- */
126
+ innerField: FieldNode;
127
+ defaultValue: null;
128
+ /** Get default value when enabling the optional */
98
129
  getInnerDefault: () => unknown;
99
- }
100
- export interface VectorField extends FieldBase<unknown[]> {
101
- type: "vector";
130
+ /** Check if a value represents an enabled optional */
131
+ isEnabled: (value: unknown) => boolean;
132
+ } : T extends "vector" ? {
102
133
  /** Template field for vector items */
103
- itemField: Field;
104
- /**
105
- * Get a new item with default values.
106
- * Used when adding items to the vector.
107
- *
108
- * @example
109
- * ```tsx
110
- * <button onClick={() => fieldApi.pushValue(field.getItemDefault())}>
111
- * Add Item
112
- * </button>
113
- * ```
114
- */
134
+ itemField: FieldNode;
135
+ defaultValue: unknown[];
136
+ /** Get a new item with default values */
115
137
  getItemDefault: () => unknown;
116
- }
117
- export interface BlobField extends FieldBase<string> {
118
- type: "blob";
138
+ /** Create a properly configured item field for a specific index */
139
+ createItemField: (index: number, overrides?: {
140
+ label?: string;
141
+ }) => FieldNode;
142
+ } : T extends "blob" ? {
119
143
  /** Item field for individual bytes (nat8) */
120
- itemField: Field;
144
+ itemField: FieldNode;
121
145
  /** Accepted input formats */
122
146
  acceptedFormats: ("hex" | "base64" | "file")[];
123
- }
124
- export interface RecursiveField extends FieldBase<undefined> {
125
- type: "recursive";
147
+ /** Size limits for blob input */
148
+ limits: BlobLimits;
149
+ /** Normalize hex input */
150
+ normalizeHex: (input: string) => string;
151
+ /** Validate blob input value */
152
+ validateInput: (value: string | Uint8Array) => BlobValidationResult;
153
+ defaultValue: string;
154
+ } : T extends "recursive" ? {
126
155
  /** Type name for the recursive type */
127
156
  typeName: string;
128
157
  /** Lazily extract the inner field to prevent infinite loops */
129
- extract: () => Field;
130
- /**
131
- * Get default value for the recursive type.
132
- * Evaluates the inner type on demand.
133
- */
158
+ extract: () => FieldNode;
159
+ /** Get default value for the recursive type (evaluates lazily) */
134
160
  getInnerDefault: () => unknown;
135
- }
136
- export interface PrincipalField extends FieldBase<string> {
137
- type: "principal";
161
+ defaultValue: undefined;
162
+ } : T extends "principal" ? {
138
163
  maxLength: number;
139
164
  minLength: number;
140
- }
141
- export interface NumberField extends FieldBase<string> {
142
- type: "number";
143
- /**
144
- * Original Candid type: nat, int, nat8, nat16, nat32, nat64, int8, int16, int32, int64, float32, float64
145
- */
146
- candidType: string;
165
+ /** Detected format based on label heuristics */
166
+ format: TextFormat;
167
+ /** Pre-computed HTML input props */
168
+ inputProps: PrimitiveInputProps;
169
+ defaultValue: string;
170
+ } : T extends "number" ? {
147
171
  /** Whether this is an unsigned type */
148
172
  unsigned: boolean;
149
173
  /** Whether this is a floating point type */
@@ -154,54 +178,52 @@ export interface NumberField extends FieldBase<string> {
154
178
  min?: string;
155
179
  /** Maximum value constraint (for bounded types) */
156
180
  max?: string;
157
- }
158
- export interface TextField extends FieldBase<string> {
159
- type: "text";
181
+ /** Detected format based on label heuristics */
182
+ format: NumberFormat;
183
+ /** Pre-computed HTML input props */
184
+ inputProps: PrimitiveInputProps;
185
+ defaultValue: string;
186
+ } : T extends "text" ? {
160
187
  /** Minimum length constraint */
161
188
  minLength?: number;
162
189
  /** Maximum length constraint */
163
190
  maxLength?: number;
164
191
  /** Whether to render as multiline textarea */
165
192
  multiline?: boolean;
166
- }
167
- export interface BooleanField extends FieldBase<boolean> {
168
- type: "boolean";
169
- }
170
- export interface NullField extends FieldBase<null> {
171
- type: "null";
172
- }
173
- export interface UnknownField extends FieldBase<undefined> {
174
- type: "unknown";
175
- }
176
- export type Field = RecordField | VariantField | TupleField | OptionalField | VectorField | BlobField | RecursiveField | PrincipalField | NumberField | TextField | BooleanField | NullField | UnknownField;
193
+ /** Detected format based on label heuristics */
194
+ format: TextFormat;
195
+ /** Pre-computed HTML input props */
196
+ inputProps: PrimitiveInputProps;
197
+ defaultValue: string;
198
+ } : T extends "boolean" ? {
199
+ /** Pre-computed HTML input props */
200
+ inputProps: PrimitiveInputProps;
201
+ defaultValue: boolean;
202
+ } : T extends "null" ? {
203
+ defaultValue: null;
204
+ } : T extends "unknown" ? {
205
+ defaultValue: undefined;
206
+ } : {};
207
+ /**
208
+ * A unified field node that contains all metadata needed for rendering.
209
+ */
210
+ export type FieldNode<T extends VisitorDataType = VisitorDataType> = FieldBase<T> & FieldExtras<T>;
211
+ export type RecordField = FieldNode<"record">;
212
+ export type VariantField = FieldNode<"variant">;
213
+ export type TupleField = FieldNode<"tuple">;
214
+ export type OptionalField = FieldNode<"optional">;
215
+ export type VectorField = FieldNode<"vector">;
216
+ export type BlobField = FieldNode<"blob">;
217
+ export type RecursiveField = FieldNode<"recursive">;
218
+ export type PrincipalField = FieldNode<"principal">;
219
+ export type NumberField = FieldNode<"number">;
220
+ export type TextField = FieldNode<"text">;
221
+ export type BooleanField = FieldNode<"boolean">;
222
+ export type NullField = FieldNode<"null">;
223
+ export type UnknownField = FieldNode<"unknown">;
177
224
  /**
178
225
  * Form metadata for a Candid method.
179
226
  * Contains all information needed to create a TanStack Form instance.
180
- *
181
- * @example
182
- * ```tsx
183
- * import { useForm } from '@tanstack/react-form'
184
- *
185
- * function MethodForm({ meta }: { meta: FormMeta }) {
186
- * const form = useForm({
187
- * ...meta.formOptions,
188
- * onSubmit: async ({ value }) => {
189
- * await actor[meta.functionName](...value)
190
- * }
191
- * })
192
- *
193
- * return (
194
- * <form onSubmit={(e) => { e.preventDefault(); form.handleSubmit() }}>
195
- * {meta.fields.map(field => (
196
- * <form.Field key={field.name} name={field.name}>
197
- * {(fieldApi) => <DynamicInput field={field} fieldApi={fieldApi} />}
198
- * </form.Field>
199
- * ))}
200
- * <button type="submit">Submit</button>
201
- * </form>
202
- * )
203
- * }
204
- * ```
205
227
  */
206
228
  export interface ArgumentsMeta<A = BaseActor, Name extends FunctionName<A> = FunctionName<A>> {
207
229
  /** Whether this is a "query" or "update" function */
@@ -209,7 +231,7 @@ export interface ArgumentsMeta<A = BaseActor, Name extends FunctionName<A> = Fun
209
231
  /** The function name */
210
232
  functionName: Name;
211
233
  /** Argument field definitions for rendering */
212
- fields: Field[];
234
+ fields: FieldNode[];
213
235
  /** Default values for all arguments (as a tuple) */
214
236
  defaultValues: unknown[];
215
237
  /** Combined Zod schema for all arguments */
@@ -240,36 +262,19 @@ export type ArgumentsServiceMeta<A = BaseActor> = {
240
262
  [K in FunctionName<A>]: ArgumentsMeta<A, K>;
241
263
  };
242
264
  /** Extract a specific field type */
243
- export type FieldByType<T extends ArgumentFieldType> = Extract<Field, {
265
+ export type FieldByType<T extends ArgumentFieldType> = Extract<FieldNode, {
244
266
  type: T;
245
267
  }>;
268
+ /**
269
+ * Props type helper for field components.
270
+ * Use this to type your field components for better DX.
271
+ */
272
+ export type FieldProps<T extends ArgumentFieldType> = {
273
+ field: FieldByType<T>;
274
+ renderField?: (child: FieldNode) => React.ReactNode;
275
+ };
246
276
  /** Compound field types that contain other fields */
247
277
  export type CompoundField = RecordField | VariantField | TupleField | OptionalField | VectorField | RecursiveField;
248
278
  /** Primitive field types */
249
279
  export type PrimitiveField = PrincipalField | NumberField | TextField | BooleanField | NullField;
250
- /**
251
- * Type guard for checking specific field types.
252
- *
253
- * @example
254
- * ```tsx
255
- * function FieldInput({ field }: { field: Field }) {
256
- * if (isFieldType(field, 'record')) {
257
- * // field is now typed as RecordField
258
- * return <RecordInput field={field} />
259
- * }
260
- * if (isFieldType(field, 'text')) {
261
- * // field is now typed as TextField
262
- * return <TextInput field={field} />
263
- * }
264
- * // ...
265
- * }
266
- * ```
267
- */
268
- export declare function isFieldType<T extends ArgumentFieldType>(field: Field, type: T): field is FieldByType<T>;
269
- /** Check if a field is a compound type (contains other fields) */
270
- export declare function isCompoundField(field: Field): field is CompoundField;
271
- /** Check if a field is a primitive type */
272
- export declare function isPrimitiveField(field: Field): field is PrimitiveField;
273
- /** Check if a field has children (for iteration) */
274
- export declare function hasChildFields(field: Field): field is RecordField | VariantField | TupleField;
275
280
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/visitor/arguments/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/visitor/arguments/types.ts"],"names":[],"mappings":"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"}
@@ -1,41 +1,2 @@
1
- /**
2
- * Type guard for checking specific field types.
3
- *
4
- * @example
5
- * ```tsx
6
- * function FieldInput({ field }: { field: Field }) {
7
- * if (isFieldType(field, 'record')) {
8
- * // field is now typed as RecordField
9
- * return <RecordInput field={field} />
10
- * }
11
- * if (isFieldType(field, 'text')) {
12
- * // field is now typed as TextField
13
- * return <TextInput field={field} />
14
- * }
15
- * // ...
16
- * }
17
- * ```
18
- */
19
- export function isFieldType(field, type) {
20
- return field.type === type;
21
- }
22
- /** Check if a field is a compound type (contains other fields) */
23
- export function isCompoundField(field) {
24
- return [
25
- "record",
26
- "variant",
27
- "tuple",
28
- "optional",
29
- "vector",
30
- "recursive",
31
- ].includes(field.type);
32
- }
33
- /** Check if a field is a primitive type */
34
- export function isPrimitiveField(field) {
35
- return ["principal", "number", "text", "boolean", "null"].includes(field.type);
36
- }
37
- /** Check if a field has children (for iteration) */
38
- export function hasChildFields(field) {
39
- return "fields" in field && Array.isArray(field.fields);
40
- }
1
+ export {};
41
2
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/visitor/arguments/types.ts"],"names":[],"mappings":"AA0VA;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,WAAW,CACzB,KAAY,EACZ,IAAO;IAEP,OAAO,KAAK,CAAC,IAAI,KAAK,IAAI,CAAA;AAC5B,CAAC;AAED,kEAAkE;AAClE,MAAM,UAAU,eAAe,CAAC,KAAY;IAC1C,OAAO;QACL,QAAQ;QACR,SAAS;QACT,OAAO;QACP,UAAU;QACV,QAAQ;QACR,WAAW;KACZ,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;AACxB,CAAC;AAED,2CAA2C;AAC3C,MAAM,UAAU,gBAAgB,CAAC,KAAY;IAC3C,OAAO,CAAC,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;AAChF,CAAC;AAED,oDAAoD;AACpD,MAAM,UAAU,cAAc,CAC5B,KAAY;IAEZ,OAAO,QAAQ,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO,CAAE,KAAqB,CAAC,MAAM,CAAC,CAAA;AAC1E,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/visitor/arguments/types.ts"],"names":[],"mappings":""}
@@ -1,8 +1,8 @@
1
1
  import type { BaseActor, FunctionName, FunctionType, ActorMethodReturnType } from "@ic-reactor/core";
2
- export type NodeType = "record" | "variant" | "tuple" | "optional" | "vector" | "blob" | "recursive" | "principal" | "number" | "text" | "boolean" | "null" | "unknown";
2
+ import type { VisitorDataType, TextFormat, NumberFormat } from "../types";
3
+ export type { TextFormat, NumberFormat };
4
+ export type NodeType = VisitorDataType;
3
5
  export type DisplayType = "string" | "number" | "boolean" | "null" | "object" | "array" | "variant" | "result" | "nullable" | "recursive" | "blob" | "unknown";
4
- export type NumberFormat = "timestamp" | "cycle" | "value" | "token" | "normal";
5
- export type TextFormat = "plain" | "timestamp" | "uuid" | "url" | "email" | "phone" | "btc" | "eth" | "account-id" | "principal";
6
6
  /**
7
7
  * Base properties shared by all result nodes.
8
8
  */
@@ -99,5 +99,4 @@ export interface ResolvedMethodResult<A = BaseActor> {
99
99
  export type ServiceMeta<A = BaseActor> = {
100
100
  [K in FunctionName<A>]: MethodMeta<A, K>;
101
101
  };
102
- export {};
103
102
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/visitor/returns/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/visitor/returns/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,qBAAqB,EACtB,MAAM,kBAAkB,CAAA;AACzB,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAEzE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,CAAA;AAMxC,MAAM,MAAM,QAAQ,GAAG,eAAe,CAAA;AAEtC,MAAM,MAAM,WAAW,GACnB,QAAQ,GACR,QAAQ,GACR,SAAS,GACT,MAAM,GACN,QAAQ,GACR,OAAO,GACP,SAAS,GACT,QAAQ,GACR,UAAU,GACV,WAAW,GACX,MAAM,GACN,SAAS,CAAA;AAMb;;GAEG;AACH,UAAU,cAAc,CAAC,CAAC,SAAS,QAAQ,GAAG,QAAQ;IACpD,+BAA+B;IAC/B,IAAI,EAAE,CAAC,CAAA;IACP,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAA;IACb,gCAAgC;IAChC,UAAU,EAAE,MAAM,CAAA;IAClB,mDAAmD;IACnD,WAAW,EAAE,WAAW,CAAA;IACxB,0EAA0E;IAC1E,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,oEAAoE;IACpE,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAOD,KAAK,cAAc,CAAC,CAAC,SAAS,QAAQ,IAAI,CAAC,SAAS,QAAQ,GACxD;IAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;CAAE,GACtC,CAAC,SAAS,SAAS,GACjB;IAAE,cAAc,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GACjD,CAAC,SAAS,OAAO,GAAG,QAAQ,GAC1B;IAAE,KAAK,EAAE,UAAU,EAAE,CAAA;CAAE,GACvB,CAAC,SAAS,UAAU,GAClB;IAAE,KAAK,EAAE,UAAU,GAAG,IAAI,CAAA;CAAE,GAC5B,CAAC,SAAS,WAAW,GACnB;IAAE,KAAK,EAAE,UAAU,CAAA;CAAE,GACrB,CAAC,SAAS,MAAM,GACd;IAAE,KAAK,EAAE,MAAM,GAAG,UAAU,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC5D,CAAC,SAAS,QAAQ,GAChB;IAAE,MAAM,EAAE,YAAY,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,GAChD,CAAC,SAAS,MAAM,GAAG,WAAW,GAC5B;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACrC,CAAC,SAAS,SAAS,GACjB;IAAE,KAAK,EAAE,OAAO,CAAA;CAAE,GAClB,CAAC,SAAS,MAAM,GACd;IAAE,KAAK,EAAE,IAAI,CAAA;CAAE,GACf;IAAE,KAAK,EAAE,OAAO,CAAA;CAAE,CAAA;AAExC;;;;;;;;GAQG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,QAAQ,GAAG,QAAQ,IAAI,cAAc,CAAC,CAAC,CAAC,GACvE,cAAc,CAAC,CAAC,CAAC,GAAG;IAClB,oEAAoE;IACpE,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC,CAAA;CACxC,CAAA;AAEH;;GAEG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,QAAQ,GAAG,QAAQ,IAAI,UAAU,CAAC,CAAC,CAAC,GAAG;IACxE,GAAG,EAAE,OAAO,CAAA;CACb,CAAA;AAMD,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAA;AAC7C,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,SAAS,CAAC,CAAA;AAC/C,MAAM,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,CAAC,CAAA;AAC3C,MAAM,MAAM,YAAY,GAAG,UAAU,CAAC,UAAU,CAAC,CAAA;AACjD,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAA;AAC7C,MAAM,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,CAAA;AACzC,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,WAAW,CAAC,CAAA;AACnD,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,WAAW,CAAC,CAAA;AACnD,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAA;AAC7C,MAAM,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,CAAA;AACzC,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,SAAS,CAAC,CAAA;AAC/C,MAAM,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,CAAA;AACzC,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,SAAS,CAAC,CAAA;AAM/C,MAAM,WAAW,UAAU,CACzB,CAAC,GAAG,SAAS,EACb,IAAI,SAAS,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC;IAE9C,YAAY,EAAE,YAAY,CAAA;IAC1B,YAAY,EAAE,IAAI,CAAA;IAClB,OAAO,EAAE,UAAU,EAAE,CAAA;IACrB,WAAW,EAAE,MAAM,CAAA;IACnB;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,qBAAqB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAA;CACvE;AAED,MAAM,WAAW,oBAAoB,CAAC,CAAC,GAAG,SAAS;IACjD,YAAY,EAAE,YAAY,CAAA;IAC1B,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,CAAA;IAC7B,OAAO,EAAE,YAAY,EAAE,CAAA;IACvB,GAAG,EAAE,qBAAqB,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;CAC/C;AAED,MAAM,MAAM,WAAW,CAAC,CAAC,GAAG,SAAS,IAAI;KACtC,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC;CACzC,CAAA"}
@@ -2,4 +2,18 @@ export type FieldType = "functionRecord" | "function" | "record" | "variant" | "
2
2
  export type { Principal } from "@icp-sdk/core/principal";
3
3
  import type { IDL } from "@icp-sdk/core/candid";
4
4
  export type AllNumberTypes = IDL.NatClass | IDL.IntClass | IDL.FixedNatClass | IDL.FixedIntClass | IDL.FloatClass;
5
+ /**
6
+ * The core Candid type category used across visitors.
7
+ */
8
+ export type VisitorDataType = "record" | "variant" | "tuple" | "optional" | "vector" | "blob" | "recursive" | "principal" | "number" | "text" | "boolean" | "null" | "unknown";
9
+ /**
10
+ * Detected format for text fields based on label heuristics.
11
+ * Used to provide format-specific validation and display.
12
+ */
13
+ export type TextFormat = "plain" | "timestamp" | "uuid" | "url" | "email" | "phone" | "btc" | "eth" | "account-id" | "principal" | "cycle";
14
+ /**
15
+ * Detected format for number fields based on label heuristics.
16
+ * Used to provide format-specific validation and display.
17
+ */
18
+ export type NumberFormat = "timestamp" | "cycle" | "value" | "token" | "normal";
5
19
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/visitor/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GACjB,gBAAgB,GAChB,UAAU,GACV,QAAQ,GACR,SAAS,GACT,OAAO,GACP,UAAU,GACV,QAAQ,GACR,OAAO,GACP,MAAM,GACN,YAAY,GACZ,WAAW,GACX,SAAS,GACT,MAAM,GACN,QAAQ,GACR,WAAW,GACX,SAAS,GACT,MAAM,CAAA;AAEV,YAAY,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAExD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAA;AAC/C,MAAM,MAAM,cAAc,GACtB,GAAG,CAAC,QAAQ,GACZ,GAAG,CAAC,QAAQ,GACZ,GAAG,CAAC,aAAa,GACjB,GAAG,CAAC,aAAa,GACjB,GAAG,CAAC,UAAU,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/visitor/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GACjB,gBAAgB,GAChB,UAAU,GACV,QAAQ,GACR,SAAS,GACT,OAAO,GACP,UAAU,GACV,QAAQ,GACR,OAAO,GACP,MAAM,GACN,YAAY,GACZ,WAAW,GACX,SAAS,GACT,MAAM,GACN,QAAQ,GACR,WAAW,GACX,SAAS,GACT,MAAM,CAAA;AAEV,YAAY,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAExD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAA;AAC/C,MAAM,MAAM,cAAc,GACtB,GAAG,CAAC,QAAQ,GACZ,GAAG,CAAC,QAAQ,GACZ,GAAG,CAAC,aAAa,GACjB,GAAG,CAAC,aAAa,GACjB,GAAG,CAAC,UAAU,CAAA;AAMlB;;GAEG;AACH,MAAM,MAAM,eAAe,GACvB,QAAQ,GACR,SAAS,GACT,OAAO,GACP,UAAU,GACV,QAAQ,GACR,MAAM,GACN,WAAW,GACX,WAAW,GACX,QAAQ,GACR,MAAM,GACN,SAAS,GACT,MAAM,GACN,SAAS,CAAA;AAEb;;;GAGG;AACH,MAAM,MAAM,UAAU,GAClB,OAAO,GACP,WAAW,GACX,MAAM,GACN,KAAK,GACL,OAAO,GACP,OAAO,GACP,KAAK,GACL,KAAK,GACL,YAAY,GACZ,WAAW,GACX,OAAO,CAAA;AAEX;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ic-reactor/candid",
3
- "version": "3.0.12-beta.0",
3
+ "version": "3.0.14-beta.0",
4
4
  "description": "IC Reactor Candid Adapter - Fetch and parse Candid definitions from Internet Computer canisters",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",
@@ -44,7 +44,7 @@
44
44
  "dependencies": {
45
45
  "@noble/hashes": "^2.0.1",
46
46
  "zod": "^4.3.5",
47
- "@ic-reactor/core": "^3.0.12-beta.0"
47
+ "@ic-reactor/core": "^3.0.14-beta.0"
48
48
  },
49
49
  "peerDependencies": {
50
50
  "zod": "^4.3.5",
@@ -9,7 +9,7 @@ import type {
9
9
  DynamicMethodOptions,
10
10
  } from "./types"
11
11
  import {
12
- ArgumentFieldVisitor,
12
+ FieldVisitor,
13
13
  ArgumentsMeta,
14
14
  ArgumentsServiceMeta,
15
15
  } from "./visitor/arguments"
@@ -54,7 +54,7 @@ export class MetadataDisplayReactor<A = BaseActor> extends CandidDisplayReactor<
54
54
  private resultMeta: ServiceMeta<A> | null = null
55
55
 
56
56
  // Visitors (stateless, can be reused)
57
- private static argVisitor = new ArgumentFieldVisitor()
57
+ private static argVisitor = new FieldVisitor()
58
58
  private static resultVisitor = new ResultFieldVisitor()
59
59
 
60
60
  constructor(config: CandidDisplayReactorParameters<A>) {