@ic-reactor/candid 3.0.16-beta.2 → 3.0.17-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/visitor/returns/index.d.ts +11 -1
- package/dist/visitor/returns/index.d.ts.map +1 -1
- package/dist/visitor/returns/index.js +44 -6
- package/dist/visitor/returns/index.js.map +1 -1
- package/dist/visitor/returns/types.d.ts +9 -2
- package/dist/visitor/returns/types.d.ts.map +1 -1
- package/dist/visitor/types.d.ts +1 -1
- package/dist/visitor/types.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/visitor/returns/index.test.ts +123 -5
- package/src/visitor/returns/index.ts +54 -6
- package/src/visitor/returns/types.ts +14 -3
- package/src/visitor/types.ts +1 -0
|
@@ -7,7 +7,17 @@ export declare class ResultFieldVisitor<A = BaseActor> extends IDL.Visitor<strin
|
|
|
7
7
|
private recCache;
|
|
8
8
|
private getCodec;
|
|
9
9
|
visitService(t: IDL.ServiceClass): ServiceMeta<A>;
|
|
10
|
-
|
|
10
|
+
/**
|
|
11
|
+
* Handle func type when encountered as a service method definition.
|
|
12
|
+
* Returns MethodMeta with information about the method's inputs/outputs.
|
|
13
|
+
* This is public so callers can explicitly request method metadata.
|
|
14
|
+
*/
|
|
15
|
+
visitFuncAsMethod(t: IDL.FuncClass, functionName: FunctionName<A>): MethodMeta<A>;
|
|
16
|
+
/**
|
|
17
|
+
* Handle func type when encountered as a data field (e.g., callback in a record).
|
|
18
|
+
* Returns ResultNode that can resolve [Principal, string] data to a func reference.
|
|
19
|
+
*/
|
|
20
|
+
visitFunc(_t: IDL.FuncClass, label: string): ResultNode<"func">;
|
|
11
21
|
visitRecord(_t: IDL.RecordClass, fields_: Array<[string, IDL.Type]>, label: string): ResultNode<"record">;
|
|
12
22
|
visitVariant(_t: IDL.VariantClass, fields_: Array<[string, IDL.Type]>, label: string): ResultNode<"variant">;
|
|
13
23
|
visitTuple<T extends IDL.Type[]>(_t: IDL.TupleClass<T>, components: IDL.Type[], label: string): ResultNode<"tuple">;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/visitor/returns/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,UAAU,EAGV,UAAU,EACV,WAAW,EAIZ,MAAM,SAAS,CAAA;AAGhB,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAA;AAE1C,OAAO,KAAK,EAEV,SAAS,EACT,YAAY,EAEb,MAAM,kBAAkB,CAAA;AAEzB,cAAc,SAAS,CAAA;AAiDvB,qBAAa,kBAAkB,CAAC,CAAC,GAAG,SAAS,CAAE,SAAQ,GAAG,CAAC,OAAO,CAChE,MAAM,EACN,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAC5C;IACC,OAAO,CAAC,KAAK,CAA4B;IAEzC,OAAO,CAAC,QAAQ,CAAwD;IAExE,OAAO,CAAC,QAAQ;IAiBT,YAAY,CAAC,CAAC,EAAE,GAAG,CAAC,YAAY,GAAG,WAAW,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/visitor/returns/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -70,11 +70,17 @@ export class ResultFieldVisitor extends IDL.Visitor {
|
|
|
70
70
|
visitService(t) {
|
|
71
71
|
const result = {};
|
|
72
72
|
for (const [name, func] of t._fields) {
|
|
73
|
-
|
|
73
|
+
// Process each service method using dedicated method handler
|
|
74
|
+
result[name] = this.visitFuncAsMethod(func, name);
|
|
74
75
|
}
|
|
75
76
|
return result;
|
|
76
77
|
}
|
|
77
|
-
|
|
78
|
+
/**
|
|
79
|
+
* Handle func type when encountered as a service method definition.
|
|
80
|
+
* Returns MethodMeta with information about the method's inputs/outputs.
|
|
81
|
+
* This is public so callers can explicitly request method metadata.
|
|
82
|
+
*/
|
|
83
|
+
visitFuncAsMethod(t, functionName) {
|
|
78
84
|
const functionType = isQuery(t) ? "query" : "update";
|
|
79
85
|
const returns = t.retTypes.map((ret, i) => ret.accept(this, `__ret${i}`));
|
|
80
86
|
return {
|
|
@@ -93,6 +99,38 @@ export class ResultFieldVisitor extends IDL.Visitor {
|
|
|
93
99
|
},
|
|
94
100
|
};
|
|
95
101
|
}
|
|
102
|
+
/**
|
|
103
|
+
* Handle func type when encountered as a data field (e.g., callback in a record).
|
|
104
|
+
* Returns ResultNode that can resolve [Principal, string] data to a func reference.
|
|
105
|
+
*/
|
|
106
|
+
visitFunc(_t, label) {
|
|
107
|
+
const node = {
|
|
108
|
+
type: "func",
|
|
109
|
+
label,
|
|
110
|
+
displayLabel: formatLabel(label),
|
|
111
|
+
candidType: `func`,
|
|
112
|
+
displayType: "func",
|
|
113
|
+
canisterId: "", // placeholder, populated on resolve
|
|
114
|
+
methodName: "", // placeholder, populated on resolve
|
|
115
|
+
resolve(data) {
|
|
116
|
+
// Func values are represented as [Principal, string] tuples
|
|
117
|
+
if (!Array.isArray(data) || data.length !== 2) {
|
|
118
|
+
throw new MetadataError(`Expected func reference [Principal, string], but got ${typeof data}`, label, "func");
|
|
119
|
+
}
|
|
120
|
+
const [principal, methodName] = data;
|
|
121
|
+
const canisterId = typeof principal === "string"
|
|
122
|
+
? principal
|
|
123
|
+
: (principal?.toText?.() ?? String(principal));
|
|
124
|
+
return {
|
|
125
|
+
...node,
|
|
126
|
+
canisterId,
|
|
127
|
+
methodName: String(methodName),
|
|
128
|
+
raw: data,
|
|
129
|
+
};
|
|
130
|
+
},
|
|
131
|
+
};
|
|
132
|
+
return node;
|
|
133
|
+
}
|
|
96
134
|
// ══════════════════════════════════════════════════════════════════════════
|
|
97
135
|
// Compound Types
|
|
98
136
|
// ══════════════════════════════════════════════════════════════════════════
|
|
@@ -152,7 +190,7 @@ export class ResultFieldVisitor extends IDL.Visitor {
|
|
|
152
190
|
selectedValue: {}, // placeholder, populated on resolve
|
|
153
191
|
resolve(data) {
|
|
154
192
|
if (data === null || data === undefined) {
|
|
155
|
-
throw new MetadataError(`Expected variant, but got ${data === null ? "null" : "undefined"}`, label, "variant");
|
|
193
|
+
throw new MetadataError(`Expected variant, but got ${data === null ? "null" : "undefined"}, raw: ${data}`, label, "variant");
|
|
156
194
|
}
|
|
157
195
|
const variantData = data;
|
|
158
196
|
// Support both raw { Selected: value } and transformed { _type: 'Selected', Selected: value }
|
|
@@ -181,8 +219,8 @@ export class ResultFieldVisitor extends IDL.Visitor {
|
|
|
181
219
|
displayType: "array",
|
|
182
220
|
items,
|
|
183
221
|
resolve(data) {
|
|
184
|
-
if (data === null || data === undefined) {
|
|
185
|
-
throw new MetadataError(`Expected tuple, but got ${data === null ? "null" :
|
|
222
|
+
if (data === null || data === undefined || !Array.isArray(data)) {
|
|
223
|
+
throw new MetadataError(`Expected tuple, but got ${data === null ? "null" : typeof data}, raw: ${data}`, label, "tuple");
|
|
186
224
|
}
|
|
187
225
|
const tupleData = data;
|
|
188
226
|
return {
|
|
@@ -257,7 +295,7 @@ export class ResultFieldVisitor extends IDL.Visitor {
|
|
|
257
295
|
items: [], // empty schema placeholder, populated on resolve
|
|
258
296
|
resolve(data) {
|
|
259
297
|
if (data === null || data === undefined || !Array.isArray(data)) {
|
|
260
|
-
throw new MetadataError(`Expected vector, but got ${data === null ? "null" :
|
|
298
|
+
throw new MetadataError(`Expected vector, but got ${data === null ? "null" : typeof data}, raw: ${data}`, label, "vec");
|
|
261
299
|
}
|
|
262
300
|
const vectorData = data;
|
|
263
301
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/visitor/returns/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AACpC,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAYlD,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAC9C,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAA;AAC1C,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAQvE,cAAc,SAAS,CAAA;AAQvB;;GAEG;AACH,SAAS,aAAa,CACpB,IAAO,EACP,KAAa,EACb,UAAkB,EAClB,WAAsC,EACtC,KAAY,EACZ,SAAiB,EAAE;IAEnB,MAAM,IAAI,GAAkB;QAC1B,IAAI;QACJ,KAAK;QACL,YAAY,EAAE,WAAW,CAAC,KAAK,CAAC;QAChC,UAAU;QACV,WAAW;QACX,GAAG,MAAM;QACT,OAAO,CAAC,IAAa;YACnB,IAAI,CAAC;gBACH,OAAO;oBACL,GAAG,IAAI;oBACP,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;oBACzB,GAAG,EAAE,IAAI;iBACoB,CAAA;YACjC,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,MAAM,IAAI,aAAa,CACrB,qBAAqB,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EACjE,KAAK,EACL,UAAU,CACX,CAAA;YACH,CAAC;QACH,CAAC;KAC0B,CAAA;IAC7B,OAAO,IAAI,CAAA;AACb,CAAC;AAED,+EAA+E;AAC/E,kCAAkC;AAClC,+EAA+E;AAE/E,MAAM,OAAO,kBAAkC,SAAQ,GAAG,CAAC,OAG1D;IAHD;;QAIU;;;;mBAAQ,IAAI,mBAAmB,EAAE;WAAA;QAEjC;;;;mBAAW,IAAI,GAAG,EAA8C;WAAA;IA6a1E,CAAC;IA3aS,QAAQ,CAAC,CAAW;QAC1B,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAQ,CAAA;QAC/C,OAAO;YACL,MAAM,EAAE,CAAC,CAAU,EAAE,EAAE;gBACrB,IAAI,CAAC;oBACH,OAAO,OAAO,KAAK,EAAE,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;gBAClE,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,CAAC,CAAA;gBACV,CAAC;YACH,CAAC;SACF,CAAA;IACH,CAAC;IAED,6EAA6E;IAC7E,qBAAqB;IACrB,6EAA6E;IAEtE,YAAY,CAAC,CAAmB;QACrC,MAAM,MAAM,GAAG,EAAoB,CAAA;QACnC,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;YACrC,MAAM,CAAC,IAAuB,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAkB,CAAA;QAC5E,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAEM,SAAS,CACd,CAAgB,EAChB,YAA6B;QAE7B,MAAM,YAAY,GAAiB,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAA;QAClE,MAAM,OAAO,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CACxC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC,CACd,CAAA;QAEjB,OAAO;YACL,YAAY;YACZ,YAAY;YACZ,OAAO;YACP,WAAW,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM;YAC9B,OAAO,EAAE,CACP,IAA+C,EAC9B,EAAE;gBACnB,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,IAAkB,CAAA;gBACpE,OAAO;oBACL,YAAY;oBACZ,YAAY;oBACZ,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC7D,GAAG,EAAE,IAAI;iBACV,CAAA;YACH,CAAC;SACF,CAAA;IACH,CAAC;IAED,6EAA6E;IAC7E,iBAAiB;IACjB,6EAA6E;IAEtE,WAAW,CAChB,EAAmB,EACnB,OAAkC,EAClC,KAAa;QAEb,MAAM,MAAM,GAA+B,EAAE,CAAA;QAC7C,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,OAAO,EAAE,CAAC;YAClC,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAe,CAAA;QACpD,CAAC;QAED,MAAM,IAAI,GAAyB;YACjC,IAAI,EAAE,QAAQ;YACd,KAAK;YACL,YAAY,EAAE,WAAW,CAAC,KAAK,CAAC;YAChC,UAAU,EAAE,QAAQ;YACpB,WAAW,EAAE,QAAQ;YACrB,MAAM;YACN,OAAO,CAAC,IAAa;gBACnB,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;oBACxC,MAAM,IAAI,aAAa,CACrB,4BAA4B,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,EAAE,EAClE,KAAK,EACL,QAAQ,CACT,CAAA;gBACH,CAAC;gBACD,MAAM,UAAU,GAAG,IAA+B,CAAA;gBAClD,MAAM,cAAc,GAAiC,EAAE,CAAA;gBACvD,IAAI,KAAK,GAAG,CAAC,CAAA;gBACb,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;oBAClD,2EAA2E;oBAC3E,MAAM,KAAK,GACT,UAAU,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;oBAErE,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;wBAClD,MAAM,IAAI,aAAa,CACrB,UAAU,GAAG,6BAA6B,EAC1C,GAAG,KAAK,IAAI,GAAG,EAAE,EACjB,QAAQ,CACT,CAAA;oBACH,CAAC;oBAED,cAAc,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;oBAC1C,KAAK,EAAE,CAAA;gBACT,CAAC;gBACD,OAAO,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,EAAE,IAAI,EAAE,CAAA;YACvD,CAAC;SACF,CAAA;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAEM,YAAY,CACjB,EAAoB,EACpB,OAAkC,EAClC,KAAa;QAEb,MAAM,OAAO,GAA+B,EAAE,CAAA;QAC9C,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,OAAO,EAAE,CAAC;YAClC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAe,CAAA;QACrD,CAAC;QACD,MAAM,QAAQ,GACZ,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,IAAI,OAAO,CAAC;YACrC,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,IAAI,OAAO,CAAC,CAAA;QACvC,MAAM,aAAa,GACjB,CAAC,QAAQ;YACT,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,CAAA;QAClE,MAAM,IAAI,GAA0B;YAClC,IAAI,EAAE,SAAS;YACf,KAAK;YACL,YAAY,EAAE,WAAW,CAAC,KAAK,CAAC;YAChC,UAAU,EAAE,SAAS;YACrB,WAAW,EAAE,QAAQ;gBACnB,CAAC,CAAC,QAAQ;gBACV,CAAC,CAAC,aAAa;oBACb,CAAC,CAAC,cAAc;oBAChB,CAAC,CAAC,SAAS;YACf,OAAO;YACP,aAAa,EAAE,EAAgB,EAAE,oCAAoC;YACrE,OAAO,CAAC,IAAa;gBACnB,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;oBACxC,MAAM,IAAI,aAAa,CACrB,6BAA6B,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,EAAE,EACnE,KAAK,EACL,SAAS,CACV,CAAA;gBACH,CAAC;gBACD,MAAM,WAAW,GAAG,IAA+B,CAAA;gBACnD,8FAA8F;gBAC9F,MAAM,QAAQ,GACX,WAAW,CAAC,KAAgB,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAA;gBAC9D,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;gBAEpC,IAAI,CAAC,UAAU,EAAE,CAAC;oBAChB,MAAM,IAAI,aAAa,CACrB,WAAW,QAAQ,2BAA2B,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAC/E,KAAK,EACL,SAAS,CACV,CAAA;gBACH,CAAC;gBACD,OAAO;oBACL,GAAG,IAAI;oBACP,QAAQ;oBACR,aAAa,EAAE,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;oBACxD,GAAG,EAAE,IAAI;iBACV,CAAA;YACH,CAAC;SACF,CAAA;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAEM,UAAU,CACf,EAAqB,EACrB,UAAsB,EACtB,KAAa;QAEb,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAC1B,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAe,CAChD,CAAA;QAED,MAAM,IAAI,GAAwB;YAChC,IAAI,EAAE,OAAO;YACb,KAAK;YACL,YAAY,EAAE,WAAW,CAAC,KAAK,CAAC;YAChC,UAAU,EAAE,OAAO;YACnB,WAAW,EAAE,OAAO;YACpB,KAAK;YACL,OAAO,CAAC,IAAa;gBACnB,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;oBACxC,MAAM,IAAI,aAAa,CACrB,2BAA2B,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,EAAE,EACjE,KAAK,EACL,OAAO,CACR,CAAA;gBACH,CAAC;gBACD,MAAM,SAAS,GAAG,IAAiB,CAAA;gBACnC,OAAO;oBACL,GAAG,IAAI;oBACP,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;oBACzD,GAAG,EAAE,IAAI;iBACV,CAAA;YACH,CAAC;SACF,CAAA;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAEM,QAAQ,CACb,EAAmB,EACnB,EAAe,EACf,KAAa;QAEb,MAAM,KAAK,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAe,CAAA;QAElD,MAAM,IAAI,GAA2B;YACnC,IAAI,EAAE,UAAU;YAChB,KAAK;YACL,YAAY,EAAE,WAAW,CAAC,KAAK,CAAC;YAChC,UAAU,EAAE,KAAK;YACjB,WAAW,EAAE,UAAU;YACvB,KAAK,EAAE,IAAI,EAAE,sBAAsB;YACnC,OAAO,CAAC,IAAa;gBACnB,yDAAyD;gBACzD,wEAAwE;gBACxE,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;oBAClC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;wBACf,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;wBACxB,CAAC,CAAC,IAAI;oBACR,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS;wBACnC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;wBACrB,CAAC,CAAC,IAAI,CAAA;gBAEV,OAAO,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,CAAA;YAChD,CAAC;SACF,CAAA;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAEM,QAAQ,CACb,EAAmB,EACnB,EAAe,EACf,KAAa;QAEb,4BAA4B;QAC5B,IAAI,EAAE,YAAY,GAAG,CAAC,aAAa,IAAI,EAAE,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC;YACtD,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;YAC/B,MAAM,IAAI,GAAuB;gBAC/B,IAAI,EAAE,MAAM;gBACZ,KAAK;gBACL,YAAY,EAAE,WAAW,CAAC,KAAK,CAAC;gBAChC,UAAU,EAAE,MAAM;gBAClB,WAAW,EAAE,QAAQ;gBACrB,MAAM,EAAE,CAAC;gBACT,IAAI,EAAE,EAAE;gBACR,KAAK,EAAE,EAAE,EAAE,iDAAiD;gBAC5D,OAAO,CAAC,IAAa;oBACnB,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAwB,CAAA;oBACvD,OAAO;wBACL,GAAG,IAAI;wBACP,KAAK;wBACL,WAAW,EAAE,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM;wBAC1D,IAAI,EAAE,eAAe,CACnB,MAAM,CACJ,IAAI,YAAY,UAAU;4BACxB,CAAC,CAAC,IAAI;4BACN,CAAC,CAAC,IAAI,UAAU,CAAC,IAAgB,CAAC,CACrC,CACF;wBACD,MAAM,EAAE,KAAK,CAAC,MAAM;wBACpB,GAAG,EAAE,IAAI;qBACV,CAAA;gBACH,CAAC;aACF,CAAA;YACD,OAAO,IAAI,CAAA;QACb,CAAC;QAED,MAAM,UAAU,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAe,CAAA;QAExD,MAAM,IAAI,GAAyB;YACjC,IAAI,EAAE,QAAQ;YACd,KAAK;YACL,YAAY,EAAE,WAAW,CAAC,KAAK,CAAC;YAChC,UAAU,EAAE,KAAK;YACjB,WAAW,EAAE,OAAO;YACpB,KAAK,EAAE,EAAE,EAAE,iDAAiD;YAC5D,OAAO,CAAC,IAAa;gBACnB,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;oBAChE,MAAM,IAAI,aAAa,CACrB,4BAA4B,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,EAAE,EAClE,KAAK,EACL,KAAK,CACN,CAAA;gBACH,CAAC;gBACD,MAAM,UAAU,GAAG,IAAiB,CAAA;gBACpC,OAAO;oBACL,GAAG,IAAI;oBACP,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;oBACnD,GAAG,EAAE,IAAI;iBACV,CAAA;YACH,CAAC;SACF,CAAA;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAEM,QAAQ,CACb,CAAkB,EAClB,EAAwB,EACxB,KAAa;QAEb,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAA6B,CAAA;QACzD,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAA;QACjB,4CAA4C;QAC5C,IAAI,WAAW,GAAsB,IAAI,CAAA;QACzC,MAAM,QAAQ,GAAG,GAAG,EAAE,CACpB,CAAC,WAAW,KAAX,WAAW,GAAK,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAe,EAAC,CAAA;QAExD,MAAM,IAAI,GAA4B;YACpC,IAAI,EAAE,WAAW;YACjB,KAAK;YACL,YAAY,EAAE,WAAW,CAAC,KAAK,CAAC;YAChC,UAAU,EAAE,KAAK;YACjB,WAAW,EAAE,WAAW;YACxB,KAAK,EAAE,EAAgB,EAAE,oCAAoC;YAC7D,OAAO,CAAC,IAAa;gBACnB,OAAO,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAA;YAChE,CAAC;SACF,CAAA;QAED,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;QAC1B,OAAO,IAAI,CAAA;IACb,CAAC;IAED,6EAA6E;IAC7E,6BAA6B;IAC7B,6EAA6E;IAEtE,cAAc,CACnB,CAAqB,EACrB,KAAa;QAEb,OAAO,aAAa,CAClB,WAAW,EACX,KAAK,EACL,WAAW,EACX,QAAQ,EACR,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAChB;YACE,MAAM,EAAE,eAAe,CAAC,KAAK,CAAe;SAC7C,CACF,CAAA;IACH,CAAC;IAEM,SAAS,CAAC,CAAgB,EAAE,KAAa;QAC9C,OAAO,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;YACtE,MAAM,EAAE,eAAe,CAAC,KAAK,CAAe;SAC7C,CAAC,CAAA;IACJ,CAAC;IAEM,SAAS,CAAC,CAAgB,EAAE,KAAa;QAC9C,OAAO,aAAa,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;IAC7E,CAAC;IAEM,SAAS,CAAC,CAAgB,EAAE,KAAa;QAC9C,OAAO,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;IACvE,CAAC;IAEM,QAAQ,CAAC,CAAe,EAAE,KAAa;QAC5C,OAAO,aAAa,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;YACvE,MAAM,EAAE,iBAAiB,CAAC,KAAK,CAAiB;SACjD,CAAC,CAAA;IACJ,CAAC;IAEM,QAAQ,CAAC,CAAe,EAAE,KAAa;QAC5C,OAAO,aAAa,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;YACvE,MAAM,EAAE,iBAAiB,CAAC,KAAK,CAAiB;SACjD,CAAC,CAAA;IACJ,CAAC;IAEM,UAAU,CAAC,CAAiB,EAAE,KAAa;QAChD,OAAO,aAAa,CAClB,QAAQ,EACR,KAAK,EACL,QAAQ,CAAC,CAAC,KAAK,EAAE,EACjB,QAAQ,EACR,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAChB;YACE,MAAM,EAAE,iBAAiB,CAAC,KAAK,CAAiB;SACjD,CACF,CAAA;IACH,CAAC;IAEM,aAAa,CAClB,CAAoB,EACpB,KAAa;QAEb,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAA;QACpB,OAAO,aAAa,CAClB,QAAQ,EACR,KAAK,EACL,MAAM,IAAI,EAAE,EACZ,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAChC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAChB;YACE,MAAM,EAAE,iBAAiB,CAAC,KAAK,CAAiB;SACjD,CACF,CAAA;IACH,CAAC;IAEM,aAAa,CAClB,CAAoB,EACpB,KAAa;QAEb,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAA;QACpB,OAAO,aAAa,CAClB,QAAQ,EACR,KAAK,EACL,MAAM,IAAI,EAAE,EACZ,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAChC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAChB;YACE,MAAM,EAAE,iBAAiB,CAAC,KAAK,CAAiB;SACjD,CACF,CAAA;IACH,CAAC;IAEM,SAAS,CAAI,EAAe,EAAE,KAAa;QAChD,OAAO,aAAa,CAAC,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE;YAC3D,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;SACjB,CAAC,CAAA;IACJ,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/visitor/returns/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@ export type { VisitorDataType, TextFormat, NumberFormat };
|
|
|
5
5
|
* The display type category after transformation.
|
|
6
6
|
* Maps Candid types to JavaScript-friendly display types.
|
|
7
7
|
*/
|
|
8
|
-
export type DisplayType = "string" | "number" | "boolean" | "null" | "object" | "array" | "variant" | "variant-null" | "result" | "nullable" | "recursive" | "blob" | "unknown";
|
|
8
|
+
export type DisplayType = "string" | "number" | "boolean" | "null" | "object" | "array" | "variant" | "variant-null" | "result" | "nullable" | "recursive" | "blob" | "func" | "unknown";
|
|
9
9
|
/**
|
|
10
10
|
* Base properties shared by all result nodes.
|
|
11
11
|
*/
|
|
@@ -93,7 +93,13 @@ interface UnknownNodeExtras {
|
|
|
93
93
|
/** The unknown value */
|
|
94
94
|
value: unknown;
|
|
95
95
|
}
|
|
96
|
-
|
|
96
|
+
interface FuncNodeExtras {
|
|
97
|
+
/** The canister principal of the function reference */
|
|
98
|
+
canisterId: string;
|
|
99
|
+
/** The method name of the function reference */
|
|
100
|
+
methodName: string;
|
|
101
|
+
}
|
|
102
|
+
type NodeTypeExtras<T extends VisitorDataType> = T extends "record" ? RecordNodeExtras : T extends "variant" ? VariantNodeExtras : T extends "tuple" ? TupleNodeExtras : T extends "vector" ? VectorNodeExtras : T extends "optional" ? OptionalNodeExtras : T extends "recursive" ? RecursiveNodeExtras : T extends "blob" ? BlobNodeExtras : T extends "number" ? NumberNodeExtras : T extends "text" ? TextNodeExtras : T extends "principal" ? PrincipalNodeExtras : T extends "boolean" ? BooleanNodeExtras : T extends "null" ? NullNodeExtras : T extends "func" ? FuncNodeExtras : T extends "unknown" ? UnknownNodeExtras : {};
|
|
97
103
|
/**
|
|
98
104
|
* A unified result node that contains both schema and resolved value.
|
|
99
105
|
* When used as schema only, `raw` is undefined.
|
|
@@ -122,6 +128,7 @@ export type NumberNode = ResultNode<"number">;
|
|
|
122
128
|
export type TextNode = ResultNode<"text">;
|
|
123
129
|
export type BooleanNode = ResultNode<"boolean">;
|
|
124
130
|
export type NullNode = ResultNode<"null">;
|
|
131
|
+
export type FuncNode = ResultNode<"func">;
|
|
125
132
|
export type UnknownNode = ResultNode<"unknown">;
|
|
126
133
|
/**
|
|
127
134
|
* Metadata for a single method's return values.
|
|
@@ -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":"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"}
|
package/dist/visitor/types.d.ts
CHANGED
|
@@ -5,7 +5,7 @@ export type AllNumberTypes = IDL.NatClass | IDL.IntClass | IDL.FixedNatClass | I
|
|
|
5
5
|
/**
|
|
6
6
|
* The core Candid type category used across visitors.
|
|
7
7
|
*/
|
|
8
|
-
export type VisitorDataType = "record" | "variant" | "tuple" | "optional" | "vector" | "blob" | "recursive" | "principal" | "number" | "text" | "boolean" | "null" | "unknown";
|
|
8
|
+
export type VisitorDataType = "record" | "variant" | "tuple" | "optional" | "vector" | "blob" | "recursive" | "principal" | "number" | "text" | "boolean" | "null" | "func" | "unknown";
|
|
9
9
|
/**
|
|
10
10
|
* Detected format for text fields based on label heuristics.
|
|
11
11
|
* Used to provide format-specific validation and display.
|
|
@@ -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;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"}
|
|
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,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.
|
|
3
|
+
"version": "3.0.17-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.
|
|
47
|
+
"@ic-reactor/core": "^3.0.17-beta.0"
|
|
48
48
|
},
|
|
49
49
|
"peerDependencies": {
|
|
50
50
|
"zod": "^4.3.5",
|
|
@@ -15,6 +15,7 @@ import type {
|
|
|
15
15
|
PrincipalNode,
|
|
16
16
|
BooleanNode,
|
|
17
17
|
NullNode,
|
|
18
|
+
FuncNode,
|
|
18
19
|
MethodMeta,
|
|
19
20
|
ServiceMeta,
|
|
20
21
|
} from "./types"
|
|
@@ -748,7 +749,7 @@ describe("ResultFieldVisitor", () => {
|
|
|
748
749
|
describe("Function Types", () => {
|
|
749
750
|
it("should handle query function with single return", () => {
|
|
750
751
|
const funcType = IDL.Func([IDL.Principal], [IDL.Nat], ["query"])
|
|
751
|
-
const meta = visitor.
|
|
752
|
+
const meta = visitor.visitFuncAsMethod(funcType, "get_balance")
|
|
752
753
|
|
|
753
754
|
expect(meta.functionType).toBe("query")
|
|
754
755
|
expect(meta.functionName).toBe("get_balance")
|
|
@@ -782,7 +783,7 @@ describe("ResultFieldVisitor", () => {
|
|
|
782
783
|
],
|
|
783
784
|
[]
|
|
784
785
|
)
|
|
785
|
-
const meta = visitor.
|
|
786
|
+
const meta = visitor.visitFuncAsMethod(funcType, "transfer")
|
|
786
787
|
|
|
787
788
|
expect(meta.functionType).toBe("update")
|
|
788
789
|
expect(meta.returnCount).toBe(1)
|
|
@@ -797,7 +798,7 @@ describe("ResultFieldVisitor", () => {
|
|
|
797
798
|
|
|
798
799
|
it("should handle function with multiple returns", () => {
|
|
799
800
|
const funcType = IDL.Func([], [IDL.Text, IDL.Nat, IDL.Bool], ["query"])
|
|
800
|
-
const meta = visitor.
|
|
801
|
+
const meta = visitor.visitFuncAsMethod(funcType, "get_info")
|
|
801
802
|
|
|
802
803
|
expect(meta.returnCount).toBe(3)
|
|
803
804
|
expect(meta.returns).toHaveLength(3)
|
|
@@ -808,11 +809,128 @@ describe("ResultFieldVisitor", () => {
|
|
|
808
809
|
|
|
809
810
|
it("should handle function with no returns", () => {
|
|
810
811
|
const funcType = IDL.Func([IDL.Text], [], [])
|
|
811
|
-
const meta = visitor.
|
|
812
|
+
const meta = visitor.visitFuncAsMethod(funcType, "log")
|
|
812
813
|
|
|
813
814
|
expect(meta.returnCount).toBe(0)
|
|
814
815
|
expect(meta.returns).toHaveLength(0)
|
|
815
816
|
})
|
|
817
|
+
|
|
818
|
+
// Tests for func type as data field (not method definition)
|
|
819
|
+
describe("Func as Data Field", () => {
|
|
820
|
+
it("should handle func type in archived_transactions callback", () => {
|
|
821
|
+
// This mimics the ICRC-1 ledger get_transactions response structure
|
|
822
|
+
// where archived_transactions contains a callback func reference
|
|
823
|
+
const GetBlocksRequest = IDL.Record({
|
|
824
|
+
start: IDL.Nat,
|
|
825
|
+
length: IDL.Nat,
|
|
826
|
+
})
|
|
827
|
+
const TransactionRange = IDL.Record({
|
|
828
|
+
transactions: IDL.Vec(IDL.Nat), // simplified
|
|
829
|
+
})
|
|
830
|
+
const ArchivedRange = IDL.Record({
|
|
831
|
+
callback: IDL.Func([GetBlocksRequest], [TransactionRange], ["query"]),
|
|
832
|
+
start: IDL.Nat,
|
|
833
|
+
length: IDL.Nat,
|
|
834
|
+
})
|
|
835
|
+
const GetTransactionsResponse = IDL.Record({
|
|
836
|
+
first_index: IDL.Nat,
|
|
837
|
+
log_length: IDL.Nat,
|
|
838
|
+
transactions: IDL.Vec(IDL.Nat),
|
|
839
|
+
archived_transactions: IDL.Vec(ArchivedRange),
|
|
840
|
+
})
|
|
841
|
+
|
|
842
|
+
// Create the func return type for get_transactions method
|
|
843
|
+
const funcType = IDL.Func(
|
|
844
|
+
[GetBlocksRequest],
|
|
845
|
+
[GetTransactionsResponse],
|
|
846
|
+
["query"]
|
|
847
|
+
)
|
|
848
|
+
const meta = visitor.visitFuncAsMethod(funcType, "get_transactions")
|
|
849
|
+
|
|
850
|
+
expect(meta.functionType).toBe("query")
|
|
851
|
+
expect(meta.returnCount).toBe(1)
|
|
852
|
+
|
|
853
|
+
// The return should be a record containing archived_transactions
|
|
854
|
+
const returnField = meta.returns[0]
|
|
855
|
+
expect(returnField.type).toBe("record")
|
|
856
|
+
|
|
857
|
+
// Get the archived_transactions field
|
|
858
|
+
const recordField = returnField as RecordNode
|
|
859
|
+
const archivedTxField = recordField.fields["archived_transactions"]
|
|
860
|
+
expect(archivedTxField.type).toBe("vector")
|
|
861
|
+
|
|
862
|
+
// The vector should contain records with a callback func field
|
|
863
|
+
const vecField = archivedTxField as VectorNode
|
|
864
|
+
// Resolve with actual data that mimics the canister response
|
|
865
|
+
const { Principal } = require("@icp-sdk/core/principal")
|
|
866
|
+
const testPrincipal = Principal.fromText("sa4so-piaaa-aaaar-qacnq-cai")
|
|
867
|
+
|
|
868
|
+
const mockResponse = {
|
|
869
|
+
first_index: BigInt(6000),
|
|
870
|
+
log_length: BigInt(7936),
|
|
871
|
+
transactions: [],
|
|
872
|
+
archived_transactions: [
|
|
873
|
+
{
|
|
874
|
+
callback: [testPrincipal, "get_transactions"],
|
|
875
|
+
start: BigInt(1),
|
|
876
|
+
length: BigInt(2),
|
|
877
|
+
},
|
|
878
|
+
],
|
|
879
|
+
}
|
|
880
|
+
|
|
881
|
+
// This should NOT throw an error
|
|
882
|
+
const resolved = meta.resolve(mockResponse)
|
|
883
|
+
expect(resolved.results).toHaveLength(1)
|
|
884
|
+
|
|
885
|
+
const resolvedRecord = resolved.results[0] as RecordNode
|
|
886
|
+
const resolvedArchivedTx = resolvedRecord.fields[
|
|
887
|
+
"archived_transactions"
|
|
888
|
+
] as VectorNode
|
|
889
|
+
expect(resolvedArchivedTx.items).toHaveLength(1)
|
|
890
|
+
|
|
891
|
+
// Check the callback field in the first archived transaction
|
|
892
|
+
const firstArchivedTx = resolvedArchivedTx.items[0] as RecordNode
|
|
893
|
+
expect(firstArchivedTx.fields["callback"]).toBeDefined()
|
|
894
|
+
expect(firstArchivedTx.fields["start"]).toBeDefined()
|
|
895
|
+
expect(firstArchivedTx.fields["length"]).toBeDefined()
|
|
896
|
+
})
|
|
897
|
+
|
|
898
|
+
it("should handle standalone func field in record", () => {
|
|
899
|
+
const callbackFunc = IDL.Func([IDL.Text], [IDL.Bool], ["query"])
|
|
900
|
+
const recordType = IDL.Record({
|
|
901
|
+
name: IDL.Text,
|
|
902
|
+
callback: callbackFunc,
|
|
903
|
+
})
|
|
904
|
+
|
|
905
|
+
const field = visitor.visitRecord(
|
|
906
|
+
recordType,
|
|
907
|
+
[
|
|
908
|
+
["name", IDL.Text],
|
|
909
|
+
["callback", callbackFunc],
|
|
910
|
+
],
|
|
911
|
+
"config"
|
|
912
|
+
)
|
|
913
|
+
|
|
914
|
+
expect(field.type).toBe("record")
|
|
915
|
+
expect(field.fields["callback"]).toBeDefined()
|
|
916
|
+
expect(field.fields["callback"].type).toBe("func")
|
|
917
|
+
|
|
918
|
+
// Resolve with mock data
|
|
919
|
+
const { Principal } = require("@icp-sdk/core/principal")
|
|
920
|
+
const resolved = field.resolve({
|
|
921
|
+
name: "test",
|
|
922
|
+
callback: [Principal.fromText("aaaaa-aa"), "my_method"],
|
|
923
|
+
})
|
|
924
|
+
|
|
925
|
+
expect(resolved.fields["name"].value).toBe("test")
|
|
926
|
+
|
|
927
|
+
// Verify func field was properly resolved
|
|
928
|
+
const callbackResolved = resolved.fields["callback"] as FuncNode
|
|
929
|
+
expect(callbackResolved.type).toBe("func")
|
|
930
|
+
expect(callbackResolved.canisterId).toBe("aaaaa-aa")
|
|
931
|
+
expect(callbackResolved.methodName).toBe("my_method")
|
|
932
|
+
})
|
|
933
|
+
})
|
|
816
934
|
})
|
|
817
935
|
|
|
818
936
|
// ════════════════════════════════════════════════════════════════════════
|
|
@@ -888,7 +1006,7 @@ describe("ResultFieldVisitor", () => {
|
|
|
888
1006
|
[IDL.Nat],
|
|
889
1007
|
["query"]
|
|
890
1008
|
)
|
|
891
|
-
const meta = visitor.
|
|
1009
|
+
const meta = visitor.visitFuncAsMethod(funcType, "icrc1_balance_of")
|
|
892
1010
|
|
|
893
1011
|
expect(meta.functionType).toBe("query")
|
|
894
1012
|
expect(meta.returnCount).toBe(1)
|
|
@@ -100,12 +100,21 @@ export class ResultFieldVisitor<A = BaseActor> extends IDL.Visitor<
|
|
|
100
100
|
public visitService(t: IDL.ServiceClass): ServiceMeta<A> {
|
|
101
101
|
const result = {} as ServiceMeta<A>
|
|
102
102
|
for (const [name, func] of t._fields) {
|
|
103
|
-
|
|
103
|
+
// Process each service method using dedicated method handler
|
|
104
|
+
result[name as FunctionName<A>] = this.visitFuncAsMethod(
|
|
105
|
+
func,
|
|
106
|
+
name as FunctionName<A>
|
|
107
|
+
)
|
|
104
108
|
}
|
|
105
109
|
return result
|
|
106
110
|
}
|
|
107
111
|
|
|
108
|
-
|
|
112
|
+
/**
|
|
113
|
+
* Handle func type when encountered as a service method definition.
|
|
114
|
+
* Returns MethodMeta with information about the method's inputs/outputs.
|
|
115
|
+
* This is public so callers can explicitly request method metadata.
|
|
116
|
+
*/
|
|
117
|
+
public visitFuncAsMethod(
|
|
109
118
|
t: IDL.FuncClass,
|
|
110
119
|
functionName: FunctionName<A>
|
|
111
120
|
): MethodMeta<A> {
|
|
@@ -133,6 +142,45 @@ export class ResultFieldVisitor<A = BaseActor> extends IDL.Visitor<
|
|
|
133
142
|
}
|
|
134
143
|
}
|
|
135
144
|
|
|
145
|
+
/**
|
|
146
|
+
* Handle func type when encountered as a data field (e.g., callback in a record).
|
|
147
|
+
* Returns ResultNode that can resolve [Principal, string] data to a func reference.
|
|
148
|
+
*/
|
|
149
|
+
public visitFunc(_t: IDL.FuncClass, label: string): ResultNode<"func"> {
|
|
150
|
+
const node: ResultNode<"func"> = {
|
|
151
|
+
type: "func",
|
|
152
|
+
label,
|
|
153
|
+
displayLabel: formatLabel(label),
|
|
154
|
+
candidType: `func`,
|
|
155
|
+
displayType: "func",
|
|
156
|
+
canisterId: "", // placeholder, populated on resolve
|
|
157
|
+
methodName: "", // placeholder, populated on resolve
|
|
158
|
+
resolve(data: unknown): ResolvedNode<"func"> {
|
|
159
|
+
// Func values are represented as [Principal, string] tuples
|
|
160
|
+
if (!Array.isArray(data) || data.length !== 2) {
|
|
161
|
+
throw new MetadataError(
|
|
162
|
+
`Expected func reference [Principal, string], but got ${typeof data}`,
|
|
163
|
+
label,
|
|
164
|
+
"func"
|
|
165
|
+
)
|
|
166
|
+
}
|
|
167
|
+
const [principal, methodName] = data
|
|
168
|
+
const canisterId =
|
|
169
|
+
typeof principal === "string"
|
|
170
|
+
? principal
|
|
171
|
+
: (principal?.toText?.() ?? String(principal))
|
|
172
|
+
|
|
173
|
+
return {
|
|
174
|
+
...node,
|
|
175
|
+
canisterId,
|
|
176
|
+
methodName: String(methodName),
|
|
177
|
+
raw: data,
|
|
178
|
+
}
|
|
179
|
+
},
|
|
180
|
+
}
|
|
181
|
+
return node
|
|
182
|
+
}
|
|
183
|
+
|
|
136
184
|
// ══════════════════════════════════════════════════════════════════════════
|
|
137
185
|
// Compound Types
|
|
138
186
|
// ══════════════════════════════════════════════════════════════════════════
|
|
@@ -217,7 +265,7 @@ export class ResultFieldVisitor<A = BaseActor> extends IDL.Visitor<
|
|
|
217
265
|
resolve(data: unknown): ResolvedNode<"variant"> {
|
|
218
266
|
if (data === null || data === undefined) {
|
|
219
267
|
throw new MetadataError(
|
|
220
|
-
`Expected variant, but got ${data === null ? "null" : "undefined"}`,
|
|
268
|
+
`Expected variant, but got ${data === null ? "null" : "undefined"}, raw: ${data}`,
|
|
221
269
|
label,
|
|
222
270
|
"variant"
|
|
223
271
|
)
|
|
@@ -263,9 +311,9 @@ export class ResultFieldVisitor<A = BaseActor> extends IDL.Visitor<
|
|
|
263
311
|
displayType: "array",
|
|
264
312
|
items,
|
|
265
313
|
resolve(data: unknown): ResolvedNode<"tuple"> {
|
|
266
|
-
if (data === null || data === undefined) {
|
|
314
|
+
if (data === null || data === undefined || !Array.isArray(data)) {
|
|
267
315
|
throw new MetadataError(
|
|
268
|
-
`Expected tuple, but got ${data === null ? "null" :
|
|
316
|
+
`Expected tuple, but got ${data === null ? "null" : typeof data}, raw: ${data}`,
|
|
269
317
|
label,
|
|
270
318
|
"tuple"
|
|
271
319
|
)
|
|
@@ -362,7 +410,7 @@ export class ResultFieldVisitor<A = BaseActor> extends IDL.Visitor<
|
|
|
362
410
|
resolve(data: unknown): ResolvedNode<"vector"> {
|
|
363
411
|
if (data === null || data === undefined || !Array.isArray(data)) {
|
|
364
412
|
throw new MetadataError(
|
|
365
|
-
`Expected vector, but got ${data === null ? "null" :
|
|
413
|
+
`Expected vector, but got ${data === null ? "null" : typeof data}, raw: ${data}`,
|
|
366
414
|
label,
|
|
367
415
|
"vec"
|
|
368
416
|
)
|
|
@@ -29,6 +29,7 @@ export type DisplayType =
|
|
|
29
29
|
| "nullable"
|
|
30
30
|
| "recursive"
|
|
31
31
|
| "blob"
|
|
32
|
+
| "func"
|
|
32
33
|
| "unknown"
|
|
33
34
|
|
|
34
35
|
// ════════════════════════════════════════════════════════════════════════════
|
|
@@ -141,6 +142,13 @@ interface UnknownNodeExtras {
|
|
|
141
142
|
value: unknown
|
|
142
143
|
}
|
|
143
144
|
|
|
145
|
+
interface FuncNodeExtras {
|
|
146
|
+
/** The canister principal of the function reference */
|
|
147
|
+
canisterId: string
|
|
148
|
+
/** The method name of the function reference */
|
|
149
|
+
methodName: string
|
|
150
|
+
}
|
|
151
|
+
|
|
144
152
|
type NodeTypeExtras<T extends VisitorDataType> = T extends "record"
|
|
145
153
|
? RecordNodeExtras
|
|
146
154
|
: T extends "variant"
|
|
@@ -165,9 +173,11 @@ type NodeTypeExtras<T extends VisitorDataType> = T extends "record"
|
|
|
165
173
|
? BooleanNodeExtras
|
|
166
174
|
: T extends "null"
|
|
167
175
|
? NullNodeExtras
|
|
168
|
-
: T extends "
|
|
169
|
-
?
|
|
170
|
-
:
|
|
176
|
+
: T extends "func"
|
|
177
|
+
? FuncNodeExtras
|
|
178
|
+
: T extends "unknown"
|
|
179
|
+
? UnknownNodeExtras
|
|
180
|
+
: {}
|
|
171
181
|
|
|
172
182
|
/**
|
|
173
183
|
* A unified result node that contains both schema and resolved value.
|
|
@@ -205,6 +215,7 @@ export type NumberNode = ResultNode<"number">
|
|
|
205
215
|
export type TextNode = ResultNode<"text">
|
|
206
216
|
export type BooleanNode = ResultNode<"boolean">
|
|
207
217
|
export type NullNode = ResultNode<"null">
|
|
218
|
+
export type FuncNode = ResultNode<"func">
|
|
208
219
|
export type UnknownNode = ResultNode<"unknown">
|
|
209
220
|
|
|
210
221
|
// ════════════════════════════════════════════════════════════════════════════
|