@ic-reactor/candid 3.0.7-beta.1 → 3.0.8-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 (59) hide show
  1. package/README.md +5 -1
  2. package/dist/display-reactor.d.ts +3 -2
  3. package/dist/display-reactor.d.ts.map +1 -1
  4. package/dist/display-reactor.js +6 -0
  5. package/dist/display-reactor.js.map +1 -1
  6. package/dist/index.d.ts +1 -0
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +1 -0
  9. package/dist/index.js.map +1 -1
  10. package/dist/metadata-display-reactor.d.ts +73 -0
  11. package/dist/metadata-display-reactor.d.ts.map +1 -0
  12. package/dist/metadata-display-reactor.js +128 -0
  13. package/dist/metadata-display-reactor.js.map +1 -0
  14. package/dist/visitor/arguments/index.d.ts +69 -0
  15. package/dist/visitor/arguments/index.d.ts.map +1 -0
  16. package/dist/visitor/arguments/index.js +277 -0
  17. package/dist/visitor/arguments/index.js.map +1 -0
  18. package/dist/visitor/arguments/types.d.ts +92 -0
  19. package/dist/visitor/arguments/types.d.ts.map +1 -0
  20. package/dist/visitor/arguments/types.js +2 -0
  21. package/dist/visitor/arguments/types.js.map +1 -0
  22. package/dist/visitor/constants.d.ts +4 -0
  23. package/dist/visitor/constants.d.ts.map +1 -0
  24. package/dist/visitor/constants.js +61 -0
  25. package/dist/visitor/constants.js.map +1 -0
  26. package/dist/visitor/helpers.d.ts +30 -0
  27. package/dist/visitor/helpers.d.ts.map +1 -0
  28. package/dist/visitor/helpers.js +200 -0
  29. package/dist/visitor/helpers.js.map +1 -0
  30. package/dist/visitor/returns/index.d.ts +76 -0
  31. package/dist/visitor/returns/index.d.ts.map +1 -0
  32. package/dist/visitor/returns/index.js +425 -0
  33. package/dist/visitor/returns/index.js.map +1 -0
  34. package/dist/visitor/returns/types.d.ts +142 -0
  35. package/dist/visitor/returns/types.d.ts.map +1 -0
  36. package/dist/visitor/returns/types.js +2 -0
  37. package/dist/visitor/returns/types.js.map +1 -0
  38. package/dist/visitor/types.d.ts +6 -0
  39. package/dist/visitor/types.d.ts.map +1 -0
  40. package/dist/visitor/types.js +3 -0
  41. package/dist/visitor/types.js.map +1 -0
  42. package/package.json +4 -2
  43. package/src/adapter.ts +446 -0
  44. package/src/constants.ts +11 -0
  45. package/src/display-reactor.ts +332 -0
  46. package/src/index.ts +7 -0
  47. package/src/metadata-display-reactor.ts +184 -0
  48. package/src/reactor.ts +199 -0
  49. package/src/types.ts +107 -0
  50. package/src/utils.ts +28 -0
  51. package/src/visitor/arguments/index.test.ts +882 -0
  52. package/src/visitor/arguments/index.ts +405 -0
  53. package/src/visitor/arguments/types.ts +168 -0
  54. package/src/visitor/constants.ts +62 -0
  55. package/src/visitor/helpers.ts +221 -0
  56. package/src/visitor/returns/index.test.ts +2027 -0
  57. package/src/visitor/returns/index.ts +545 -0
  58. package/src/visitor/returns/types.ts +271 -0
  59. package/src/visitor/types.ts +29 -0
@@ -0,0 +1,277 @@
1
+ import { isQuery } from "../helpers";
2
+ import { IDL } from "../types";
3
+ export * from "./types";
4
+ /**
5
+ * ArgumentFieldVisitor generates metadata for form input fields from Candid IDL types.
6
+ *
7
+ * ## Design Principles
8
+ *
9
+ * 1. **Works with raw IDL types** - generates metadata at initialization time
10
+ * 2. **No value dependencies** - metadata is independent of actual values
11
+ * 3. **Form-framework agnostic** - output can be used with TanStack, React Hook Form, etc.
12
+ * 4. **Efficient** - single traversal, no runtime type checking
13
+ *
14
+ * ## Output Structure
15
+ *
16
+ * Each field has:
17
+ * - `type`: The field type (record, variant, text, number, etc.)
18
+ * - `label`: Human-readable label from Candid
19
+ * - `path`: Dot-notation path for form binding (e.g., "0.owner")
20
+ * - `defaultValue`: Initial value for the form
21
+ * - Type-specific properties (options for variant, fields for record, etc.)
22
+ *
23
+ * @example
24
+ * ```typescript
25
+ * const visitor = new ArgumentFieldVisitor()
26
+ * const serviceMeta = service.accept(visitor, null)
27
+ *
28
+ * // For a specific method
29
+ * const methodMeta = serviceMeta["icrc1_transfer"]
30
+ * // methodMeta.fields = [{ type: "record", fields: [...] }]
31
+ * // methodMeta.defaultValues = [{ to: "", amount: "" }]
32
+ * ```
33
+ */
34
+ export class ArgumentFieldVisitor extends IDL.Visitor {
35
+ constructor() {
36
+ super(...arguments);
37
+ Object.defineProperty(this, "pathStack", {
38
+ enumerable: true,
39
+ configurable: true,
40
+ writable: true,
41
+ value: []
42
+ });
43
+ }
44
+ withPath(path, fn) {
45
+ this.pathStack.push(path);
46
+ try {
47
+ return fn();
48
+ }
49
+ finally {
50
+ this.pathStack.pop();
51
+ }
52
+ }
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;
62
+ }
63
+ // ════════════════════════════════════════════════════════════════════════
64
+ // Service & Function Level
65
+ // ════════════════════════════════════════════════════════════════════════
66
+ visitService(t) {
67
+ const result = {};
68
+ for (const [functionName, func] of t._fields) {
69
+ result[functionName] = func.accept(this, functionName);
70
+ }
71
+ return result;
72
+ }
73
+ visitFunc(t, functionName) {
74
+ const functionType = isQuery(t) ? "query" : "update";
75
+ const fields = t.argTypes.map((arg, index) => {
76
+ return this.withPath(`[${index}]`, () => arg.accept(this, `__arg${index}`));
77
+ });
78
+ const defaultValues = fields.map((field) => this.extractDefaultValue(field));
79
+ return {
80
+ functionType,
81
+ functionName,
82
+ fields,
83
+ defaultValues,
84
+ };
85
+ }
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
+ // ════════════════════════════════════════════════════════════════════════
96
+ // Compound Types
97
+ // ════════════════════════════════════════════════════════════════════════
98
+ visitRecord(_t, fields_, label) {
99
+ const path = this.currentPath();
100
+ const fields = [];
101
+ const defaultValues = {};
102
+ for (const [key, type] of fields_) {
103
+ const field = this.withPath(this.childPath(key), () => type.accept(this, key));
104
+ fields.push(field);
105
+ defaultValues[key] = this.extractDefaultValue(field);
106
+ }
107
+ return {
108
+ type: "record",
109
+ label,
110
+ path,
111
+ fields,
112
+ defaultValues,
113
+ };
114
+ }
115
+ visitVariant(_t, fields_, label) {
116
+ const path = this.currentPath();
117
+ const fields = [];
118
+ const options = [];
119
+ for (const [key, type] of fields_) {
120
+ const field = this.withPath(this.childPath(key), () => type.accept(this, key));
121
+ fields.push(field);
122
+ options.push(key);
123
+ }
124
+ const defaultOption = options[0];
125
+ const defaultValues = {
126
+ [defaultOption]: this.extractDefaultValue(fields[0]),
127
+ };
128
+ return {
129
+ type: "variant",
130
+ label,
131
+ path,
132
+ fields,
133
+ options,
134
+ defaultOption,
135
+ defaultValues,
136
+ };
137
+ }
138
+ visitTuple(_t, components, label) {
139
+ const path = this.currentPath();
140
+ const fields = [];
141
+ const defaultValues = [];
142
+ for (let index = 0; index < components.length; index++) {
143
+ const type = components[index];
144
+ const field = this.withPath(this.childPath(index), () => type.accept(this, `_${index}_`));
145
+ fields.push(field);
146
+ defaultValues.push(this.extractDefaultValue(field));
147
+ }
148
+ return {
149
+ type: "tuple",
150
+ label,
151
+ path,
152
+ fields,
153
+ defaultValues,
154
+ };
155
+ }
156
+ visitOpt(_t, ty, label) {
157
+ const path = this.currentPath();
158
+ const innerField = this.withPath(this.childPath(0), () => ty.accept(this, label));
159
+ return {
160
+ type: "optional",
161
+ label,
162
+ path,
163
+ innerField,
164
+ defaultValue: null,
165
+ };
166
+ }
167
+ visitVec(_t, ty, label) {
168
+ const path = this.currentPath();
169
+ // Check if it's blob (vec nat8)
170
+ const isBlob = ty instanceof IDL.FixedNatClass && ty._bits === 8;
171
+ const itemField = this.withPath(this.childPath(0), () => ty.accept(this, label));
172
+ if (isBlob) {
173
+ return {
174
+ type: "blob",
175
+ label,
176
+ path,
177
+ itemField,
178
+ defaultValue: "",
179
+ };
180
+ }
181
+ return {
182
+ type: "vector",
183
+ label,
184
+ path,
185
+ itemField,
186
+ defaultValue: [],
187
+ };
188
+ }
189
+ visitRec(_t, ty, label) {
190
+ const path = this.currentPath();
191
+ return {
192
+ type: "recursive",
193
+ label,
194
+ path,
195
+ // Lazy extraction to prevent infinite loops
196
+ extract: () => this.withPath(path, () => ty.accept(this, label)),
197
+ };
198
+ }
199
+ // ════════════════════════════════════════════════════════════════════════
200
+ // Primitive Types
201
+ // ════════════════════════════════════════════════════════════════════════
202
+ visitPrincipal(_t, label) {
203
+ return {
204
+ type: "principal",
205
+ label,
206
+ path: this.currentPath(),
207
+ defaultValue: "",
208
+ maxLength: 64,
209
+ minLength: 7,
210
+ };
211
+ }
212
+ visitText(_t, label) {
213
+ return {
214
+ type: "text",
215
+ label,
216
+ path: this.currentPath(),
217
+ defaultValue: "",
218
+ };
219
+ }
220
+ visitBool(_t, label) {
221
+ return {
222
+ type: "boolean",
223
+ label,
224
+ path: this.currentPath(),
225
+ defaultValue: false,
226
+ };
227
+ }
228
+ visitNull(_t, label) {
229
+ return {
230
+ type: "null",
231
+ label,
232
+ path: this.currentPath(),
233
+ defaultValue: null,
234
+ };
235
+ }
236
+ // Numbers - all use string for display format
237
+ visitNumberType(label, candidType) {
238
+ return {
239
+ type: "number",
240
+ label,
241
+ path: this.currentPath(),
242
+ defaultValue: "",
243
+ candidType,
244
+ };
245
+ }
246
+ visitInt(_t, label) {
247
+ return this.visitNumberType(label, "int");
248
+ }
249
+ visitNat(_t, label) {
250
+ return this.visitNumberType(label, "nat");
251
+ }
252
+ visitFloat(_t, label) {
253
+ return this.visitNumberType(label, "float");
254
+ }
255
+ visitFixedInt(t, label) {
256
+ return this.visitNumberType(label, `int${t._bits}`);
257
+ }
258
+ visitFixedNat(t, label) {
259
+ return this.visitNumberType(label, `nat${t._bits}`);
260
+ }
261
+ visitType(_t, label) {
262
+ return {
263
+ type: "unknown",
264
+ label,
265
+ path: this.currentPath(),
266
+ defaultValue: undefined,
267
+ };
268
+ }
269
+ }
270
+ // ════════════════════════════════════════════════════════════════════════════
271
+ // Legacy Exports (for backward compatibility)
272
+ // ════════════════════════════════════════════════════════════════════════════
273
+ /**
274
+ * @deprecated Use ArgumentFieldVisitor instead
275
+ */
276
+ export { ArgumentFieldVisitor as VisitTanstackField };
277
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/visitor/arguments/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,92 @@
1
+ import type { BaseActor, FunctionName, FunctionType } from "@ic-reactor/core";
2
+ export type ArgumentFieldType = "record" | "variant" | "tuple" | "optional" | "vector" | "blob" | "recursive" | "principal" | "number" | "text" | "boolean" | "null" | "unknown";
3
+ export interface ArgumentFieldBase {
4
+ /** The field type */
5
+ type: ArgumentFieldType;
6
+ /** Human-readable label from Candid */
7
+ label: string;
8
+ /** Dot-notation path for form binding (e.g., "0.owner", "[0].to") */
9
+ path: string;
10
+ }
11
+ export interface RecordArgumentField extends ArgumentFieldBase {
12
+ type: "record";
13
+ fields: ArgumentField[];
14
+ defaultValues: Record<string, unknown>;
15
+ }
16
+ export interface VariantArgumentField extends ArgumentFieldBase {
17
+ type: "variant";
18
+ fields: ArgumentField[];
19
+ options: string[];
20
+ defaultOption: string;
21
+ defaultValues: Record<string, unknown>;
22
+ }
23
+ export interface TupleArgumentField extends ArgumentFieldBase {
24
+ type: "tuple";
25
+ fields: ArgumentField[];
26
+ defaultValues: unknown[];
27
+ }
28
+ export interface OptionalArgumentField extends ArgumentFieldBase {
29
+ type: "optional";
30
+ innerField: ArgumentField;
31
+ defaultValue: null;
32
+ }
33
+ export interface VectorArgumentField extends ArgumentFieldBase {
34
+ type: "vector";
35
+ itemField: ArgumentField;
36
+ defaultValue: [];
37
+ }
38
+ export interface BlobArgumentField extends ArgumentFieldBase {
39
+ type: "blob";
40
+ itemField: ArgumentField;
41
+ /** Default is empty hex string */
42
+ defaultValue: string;
43
+ }
44
+ export interface RecursiveArgumentField extends ArgumentFieldBase {
45
+ type: "recursive";
46
+ /** Lazily extract the inner field to prevent infinite loops */
47
+ extract: () => ArgumentField;
48
+ }
49
+ export interface PrincipalArgumentField extends ArgumentFieldBase {
50
+ type: "principal";
51
+ /** Display format: string */
52
+ defaultValue: string;
53
+ maxLength: number;
54
+ minLength: number;
55
+ }
56
+ export interface NumberArgumentField extends ArgumentFieldBase {
57
+ type: "number";
58
+ /** Display format: string (for bigint compatibility) */
59
+ defaultValue: string;
60
+ /** Original Candid type: nat, int, nat64, etc. */
61
+ candidType: string;
62
+ }
63
+ export interface TextArgumentField extends ArgumentFieldBase {
64
+ type: "text";
65
+ defaultValue: string;
66
+ }
67
+ export interface BooleanArgumentField extends ArgumentFieldBase {
68
+ type: "boolean";
69
+ defaultValue: boolean;
70
+ }
71
+ export interface NullArgumentField extends ArgumentFieldBase {
72
+ type: "null";
73
+ defaultValue: null;
74
+ }
75
+ export interface UnknownArgumentField extends ArgumentFieldBase {
76
+ type: "unknown";
77
+ defaultValue: undefined;
78
+ }
79
+ export type ArgumentField = RecordArgumentField | VariantArgumentField | TupleArgumentField | OptionalArgumentField | VectorArgumentField | BlobArgumentField | RecursiveArgumentField | PrincipalArgumentField | NumberArgumentField | TextArgumentField | BooleanArgumentField | NullArgumentField | UnknownArgumentField;
80
+ export interface MethodArgumentsMeta<A = BaseActor, Name extends FunctionName<A> = FunctionName<A>> {
81
+ functionType: FunctionType;
82
+ functionName: Name;
83
+ fields: ArgumentField[];
84
+ defaultValues: unknown[];
85
+ }
86
+ export type ServiceArgumentsMeta<A = BaseActor> = {
87
+ [K in FunctionName<A>]: MethodArgumentsMeta<A, K>;
88
+ };
89
+ export type ArgumentFieldByType<T extends ArgumentFieldType> = Extract<ArgumentField, {
90
+ type: T;
91
+ }>;
92
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/visitor/arguments/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/visitor/arguments/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import type { TextFormat, NumberFormat } from "./returns/types";
2
+ export declare const checkTextFormat: (label?: string) => TextFormat;
3
+ export declare const checkNumberFormat: (label?: string) => NumberFormat;
4
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/visitor/constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AA0C/D,eAAO,MAAM,eAAe,GAAI,QAAQ,MAAM,KAAG,UAYhD,CAAA;AAED,eAAO,MAAM,iBAAiB,GAAI,QAAQ,MAAM,KAAG,YAKlD,CAAA"}
@@ -0,0 +1,61 @@
1
+ const TAMESTAMP_KEYS = [
2
+ "time",
3
+ "date",
4
+ "deadline",
5
+ "timestamp",
6
+ "timestamp_nanos",
7
+ "statusAt",
8
+ "createdAt",
9
+ "updatedAt",
10
+ "deletedAt",
11
+ "validUntil",
12
+ "status_at",
13
+ "created_at",
14
+ "updated_at",
15
+ "deleted_at",
16
+ "valid_until",
17
+ ];
18
+ const TAMESTAMP_KEYS_REGEX = new RegExp(TAMESTAMP_KEYS.map((key) => `^[\\w-]*${key}[\\w-]*$`).join("|"), "i");
19
+ const CYCLE_KEYS = ["cycle", "cycles"];
20
+ const CYCLE_KEYS_REGEX = new RegExp(CYCLE_KEYS.map((key) => `^[\\w-]*${key}[\\w-]*$`).join("|"), "i");
21
+ const EMAIL_KEYS_REGEX = /email|mail/i;
22
+ const PHONE_KEYS_REGEX = /phone|tel|mobile/i;
23
+ const URL_KEYS_REGEX = /url|link|website/i;
24
+ const UUID_KEYS_REGEX = /uuid|guid/i;
25
+ const BITCOIN_KEYS_REGEX = /bitcoin|btc/i;
26
+ const ETHEREUM_KEYS_REGEX = /ethereum|eth/i;
27
+ const ACCOUNT_ID_KEYS_REGEX = /account_id|account_identifier|ledger_account|block_hash|transaction_hash|tx_hash/i;
28
+ const PRINCIPAL_KEYS_REGEX = /canister|principal/i;
29
+ export const checkTextFormat = (label) => {
30
+ if (!label)
31
+ return "plain";
32
+ if (TAMESTAMP_KEYS_REGEX.test(label))
33
+ return "timestamp";
34
+ if (EMAIL_KEYS_REGEX.test(label))
35
+ return "email";
36
+ if (PHONE_KEYS_REGEX.test(label))
37
+ return "phone";
38
+ if (URL_KEYS_REGEX.test(label))
39
+ return "url";
40
+ if (UUID_KEYS_REGEX.test(label))
41
+ return "uuid";
42
+ if (BITCOIN_KEYS_REGEX.test(label))
43
+ return "btc";
44
+ if (ETHEREUM_KEYS_REGEX.test(label))
45
+ return "eth";
46
+ if (ACCOUNT_ID_KEYS_REGEX.test(label))
47
+ return "account-id";
48
+ if (PRINCIPAL_KEYS_REGEX.test(label))
49
+ return "principal";
50
+ return "plain";
51
+ };
52
+ export const checkNumberFormat = (label) => {
53
+ if (!label)
54
+ return "normal";
55
+ if (TAMESTAMP_KEYS_REGEX.test(label))
56
+ return "timestamp";
57
+ if (CYCLE_KEYS_REGEX.test(label))
58
+ return "cycle";
59
+ return "normal";
60
+ };
61
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/visitor/constants.ts"],"names":[],"mappings":"AAEA,MAAM,cAAc,GAAG;IACrB,MAAM;IACN,MAAM;IACN,UAAU;IACV,WAAW;IACX,iBAAiB;IACjB,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,YAAY;IACZ,WAAW;IACX,YAAY;IACZ,YAAY;IACZ,YAAY;IACZ,aAAa;CACd,CAAA;AAED,MAAM,oBAAoB,GAAG,IAAI,MAAM,CACrC,cAAc,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,WAAW,GAAG,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAC/D,GAAG,CACJ,CAAA;AAED,MAAM,UAAU,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;AAEtC,MAAM,gBAAgB,GAAG,IAAI,MAAM,CACjC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,WAAW,GAAG,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAC3D,GAAG,CACJ,CAAA;AAED,MAAM,gBAAgB,GAAG,aAAa,CAAA;AACtC,MAAM,gBAAgB,GAAG,mBAAmB,CAAA;AAC5C,MAAM,cAAc,GAAG,mBAAmB,CAAA;AAC1C,MAAM,eAAe,GAAG,YAAY,CAAA;AACpC,MAAM,kBAAkB,GAAG,cAAc,CAAA;AACzC,MAAM,mBAAmB,GAAG,eAAe,CAAA;AAC3C,MAAM,qBAAqB,GACzB,mFAAmF,CAAA;AACrF,MAAM,oBAAoB,GAAG,qBAAqB,CAAA;AAElD,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAAc,EAAc,EAAE;IAC5D,IAAI,CAAC,KAAK;QAAE,OAAO,OAAO,CAAA;IAC1B,IAAI,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,WAAW,CAAA;IACxD,IAAI,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,OAAO,CAAA;IAChD,IAAI,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,OAAO,CAAA;IAChD,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAA;IAC5C,IAAI,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,MAAM,CAAA;IAC9C,IAAI,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAA;IAChD,IAAI,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAA;IACjD,IAAI,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,YAAY,CAAA;IAC1D,IAAI,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,WAAW,CAAA;IACxD,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,KAAc,EAAgB,EAAE;IAChE,IAAI,CAAC,KAAK;QAAE,OAAO,QAAQ,CAAA;IAC3B,IAAI,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,WAAW,CAAA;IACxD,IAAI,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,OAAO,CAAA;IAChD,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA"}
@@ -0,0 +1,30 @@
1
+ import { IDL } from "./types";
2
+ export declare const extractAndSortArgs: <T extends Record<string, unknown>>(argsObject: T) => Array<T[keyof T]>;
3
+ /**
4
+ * Normalize form state by converting objects with numeric string keys to arrays.
5
+ * TanStack Form sometimes creates { "0": value, "1": value } instead of [value, value]
6
+ * when using indexed field paths like "parent.0.child".
7
+ *
8
+ * This function also handles the variant cleanup case where objects have mixed
9
+ * numeric and named keys (e.g., { "0": old, "Add": current }) by removing
10
+ * orphaned numeric keys.
11
+ *
12
+ * This function recursively processes the form state and fixes these issues.
13
+ */
14
+ export declare const normalizeFormState: <T>(value: T) => T;
15
+ export declare const convertNanoToDate: (nano: bigint) => Date;
16
+ export declare const convertToCycle: (cycles: bigint) => string;
17
+ export declare const convertStringToNumber: (value: string) => number | bigint;
18
+ export declare const validateNumberError: (t: IDL.Type) => (value: string) => string | true;
19
+ export declare const validateError: (t: IDL.Type) => (value: unknown) => string | true;
20
+ export declare function isQuery(func: IDL.FuncClass): boolean;
21
+ export declare function isUrl(str: string): boolean;
22
+ export declare function isImage(str: string): boolean;
23
+ export declare function isUuid(str: string): boolean;
24
+ export declare function isCanisterId(str: string): boolean;
25
+ export declare function isBtcAddress(str: string): boolean;
26
+ export declare function isEthAddress(str: string): boolean;
27
+ export declare function isAccountIdentifier(str: string): boolean;
28
+ export declare function isIsoDate(str: string): boolean;
29
+ export declare function uint8ArrayToHexString(bytes: Uint8Array | number[]): string;
30
+ //# sourceMappingURL=helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/visitor/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,SAAS,CAAA;AAE7B,eAAO,MAAM,kBAAkB,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClE,YAAY,CAAC,KACZ,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAYlB,CAAA;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,kBAAkB,GAAI,CAAC,EAAE,OAAO,CAAC,KAAG,CAgDhD,CAAA;AAED,eAAO,MAAM,iBAAiB,GAAI,MAAM,MAAM,SAE7C,CAAA;AAED,eAAO,MAAM,cAAc,GAAI,QAAQ,MAAM,WAO5C,CAAA;AAED,eAAO,MAAM,qBAAqB,GAAI,OAAO,MAAM,oBAOlD,CAAA;AAED,eAAO,MAAM,mBAAmB,GAAI,GAAG,GAAG,CAAC,IAAI,MACpB,OAAO,MAAM,kBAwBvC,CAAA;AAED,eAAO,MAAM,aAAa,GAAI,GAAG,GAAG,CAAC,IAAI,MACd,OAAO,OAAO,kBAQxC,CAAA;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,SAAS,GAAG,OAAO,CAKpD;AAED,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAG1C;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAgB5C;AAED,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAK3C;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAKjD;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAOjD;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAGjD;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAIxD;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAO9C;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,EAAE,GAAG,MAAM,CAQ1E"}