@ic-reactor/candid 3.0.9-beta.0 → 3.0.10-beta.1

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,224 +1,100 @@
1
1
  import type { BaseActor, FunctionName, FunctionType, ActorMethodReturnType } from "@ic-reactor/core";
2
- export type ResultFieldType = "record" | "variant" | "tuple" | "optional" | "vector" | "blob" | "recursive" | "principal" | "number" | "text" | "boolean" | "null" | "unknown";
2
+ export type NodeType = "record" | "variant" | "tuple" | "optional" | "vector" | "blob" | "recursive" | "principal" | "number" | "text" | "boolean" | "null" | "unknown";
3
3
  export type DisplayType = "string" | "number" | "boolean" | "null" | "object" | "array" | "variant" | "result" | "nullable" | "recursive" | "unknown";
4
- /**
5
- * Number-specific formatting hints derived from field names.
6
- */
7
4
  export type NumberFormat = "timestamp" | "cycle" | "value" | "token" | "normal";
8
- /**
9
- * Text-specific formatting hints derived from field names.
10
- */
11
5
  export type TextFormat = "plain" | "timestamp" | "uuid" | "url" | "email" | "phone" | "btc" | "eth" | "account-id" | "principal";
12
6
  /**
13
- * Display hints for UI rendering.
7
+ * Base properties shared by all result nodes.
14
8
  */
15
- export type DisplayHint = "copyable" | "linkable" | "truncate" | "hex" | "code" | "none";
16
- export interface ResultFieldBase<Type extends ResultFieldType = ResultFieldType> {
9
+ interface ResultNodeBase<T extends NodeType = NodeType> {
17
10
  /** The Candid type category */
18
- type: Type;
19
- /** Human-readable label from Candid */
11
+ type: T;
12
+ /** Human-readable label */
20
13
  label: string;
21
14
  /** Original Candid type name */
22
15
  candidType: string;
23
16
  /** What it becomes after display transformation */
24
17
  displayType: DisplayType;
25
- /**
26
- * Combine metadata with value to create a render-ready tree.
27
- * This allows "zipping" the static schema with dynamic runtime data.
28
- */
29
- resolve(value: unknown): ResultFieldWithValue<Type>;
30
- }
31
- export interface RecordResultField extends ResultFieldBase<"record"> {
32
- type: "record";
33
- displayType: "object";
34
- fields: ResultField[];
35
- }
36
- export interface VariantResultField extends ResultFieldBase<"variant"> {
37
- type: "variant";
38
- displayType: "variant" | "result";
39
- options: string[];
40
- optionFields: ResultField[];
41
- }
42
- export interface TupleResultField extends ResultFieldBase<"tuple"> {
43
- type: "tuple";
44
- displayType: "array";
45
- fields: ResultField[];
46
- }
47
- export interface OptionalResultField extends ResultFieldBase<"optional"> {
48
- type: "optional";
49
- displayType: "nullable";
50
- innerField: ResultField;
51
- }
52
- export interface VectorResultField extends ResultFieldBase<"vector"> {
53
- type: "vector";
54
- displayType: "array";
55
- itemField: ResultField;
56
- }
57
- export interface BlobResultField extends ResultFieldBase<"blob"> {
58
- type: "blob";
59
- displayType: "string";
60
- displayHint: "hex";
61
- }
62
- export interface RecursiveResultField extends ResultFieldBase {
63
- type: "recursive";
64
- displayType: "recursive";
65
- typeName: string;
66
- /** Lazily extract the inner field to prevent infinite loops */
67
- extract: () => ResultField;
68
- }
69
- export interface PrincipalResultField extends ResultFieldBase<"principal"> {
70
- type: "principal";
71
- displayType: "string";
72
- textFormat: TextFormat;
73
- }
74
- export interface NumberResultField extends ResultFieldBase<"number"> {
75
- type: "number";
76
- displayType: "string" | "number";
77
- numberFormat: NumberFormat;
78
- }
79
- export interface TextResultField extends ResultFieldBase<"text"> {
80
- type: "text";
81
- displayType: "string";
82
- textFormat: TextFormat;
83
- }
84
- export interface BooleanResultField extends ResultFieldBase<"boolean"> {
85
- type: "boolean";
86
- displayType: "boolean";
87
- }
88
- export interface NullResultField extends ResultFieldBase<"null"> {
89
- type: "null";
90
- displayType: "null";
91
- }
92
- export interface UnknownResultField extends ResultFieldBase<"unknown"> {
93
- type: "unknown";
94
- displayType: "unknown";
95
- }
96
- export type ResultField = RecordResultField | VariantResultField | TupleResultField | OptionalResultField | VectorResultField | BlobResultField | RecursiveResultField | PrincipalResultField | NumberResultField | TextResultField | BooleanResultField | NullResultField | UnknownResultField;
97
- export interface RecordResultWithValue<V = unknown> {
98
- field: RecordResultField;
99
- value: Record<string, ResultFieldWithValue>;
100
- raw: V;
101
- }
102
- export interface VariantResultWithValue<V = unknown> {
103
- field: VariantResultField;
104
- value: {
105
- option: string;
106
- value: ResultFieldWithValue;
107
- };
108
- raw: V;
109
- }
110
- export interface TupleResultWithValue<V = unknown> {
111
- field: TupleResultField;
112
- value: ResultFieldWithValue[];
113
- raw: V;
114
- }
115
- export interface OptionalResultWithValue<V = unknown> {
116
- field: OptionalResultField;
117
- value: ResultFieldWithValue | null;
118
- raw: V;
119
- }
120
- export interface VectorResultWithValue<V = unknown> {
121
- field: VectorResultField;
122
- value: ResultFieldWithValue[];
123
- raw: V;
124
- }
125
- export interface BlobResultWithValue<V = unknown> {
126
- field: BlobResultField;
127
- value: string;
128
- raw: V;
129
- }
130
- export interface RecursiveResultWithValue<V = unknown> {
131
- field: RecursiveResultField;
132
- value: ResultFieldWithValue;
133
- raw: V;
134
- }
135
- export interface PrincipalResultWithValue<V = unknown> {
136
- field: PrincipalResultField;
18
+ /** Original raw value before transformation (present after resolution) */
19
+ raw?: unknown;
20
+ }
21
+ type NodeTypeExtras<T extends NodeType> = T extends "record" ? {
22
+ fields: Record<string, ResultNode>;
23
+ } : T extends "variant" ? {
24
+ selectedOption: ResultNode;
25
+ selected?: string;
26
+ } : T extends "tuple" | "vector" ? {
27
+ items: ResultNode[];
28
+ } : T extends "optional" ? {
29
+ value: ResultNode | null;
30
+ } : T extends "recursive" ? {
31
+ inner: ResultNode;
32
+ } : T extends "blob" ? {
137
33
  value: string;
138
- raw: V;
139
- }
140
- export interface NumberResultWithValue<V = unknown> {
141
- field: NumberResultField;
34
+ } : T extends "number" ? {
35
+ format: NumberFormat;
142
36
  value: string | number;
143
- raw: V;
144
- }
145
- export interface TextResultWithValue<V = unknown> {
146
- field: TextResultField;
37
+ } : T extends "text" | "principal" ? {
38
+ format: TextFormat;
147
39
  value: string;
148
- raw: V;
149
- }
150
- export interface BooleanResultWithValue<V = unknown> {
151
- field: BooleanResultField;
40
+ } : T extends "boolean" ? {
152
41
  value: boolean;
153
- raw: V;
154
- }
155
- export interface NullResultWithValue<V = unknown> {
156
- field: NullResultField;
42
+ } : T extends "null" ? {
157
43
  value: null;
158
- raw: V;
159
- }
160
- export interface UnknownResultWithValue<V = unknown> {
161
- field: UnknownResultField;
44
+ } : {
162
45
  value: unknown;
163
- raw: V;
164
- }
165
- /**
166
- * Mapping from ResultFieldType string to the corresponding *ResultWithValue interface.
167
- */
168
- export type ResultWithValueMap<V = unknown> = {
169
- record: RecordResultWithValue<V>;
170
- variant: VariantResultWithValue<V>;
171
- tuple: TupleResultWithValue<V>;
172
- optional: OptionalResultWithValue<V>;
173
- vector: VectorResultWithValue<V>;
174
- blob: BlobResultWithValue<V>;
175
- recursive: RecursiveResultWithValue<V>;
176
- principal: PrincipalResultWithValue<V>;
177
- number: NumberResultWithValue<V>;
178
- text: TextResultWithValue<V>;
179
- boolean: BooleanResultWithValue<V>;
180
- null: NullResultWithValue<V>;
181
- unknown: UnknownResultWithValue<V>;
182
46
  };
183
47
  /**
184
- * A result field paired with its transformed value for rendering.
185
- * Can contain nested resolved fields for compound types.
48
+ * A unified result node that contains both schema and resolved value.
49
+ * When used as schema only, `raw` is undefined.
50
+ * When resolved, `raw` contains the original data.
186
51
  *
187
- * It is a discriminated union of all specific result types.
52
+ * Compound types (record, variant, tuple, optional, vector) store
53
+ * resolved children directly in their structure fields.
54
+ * Primitive types store the display value in `value`.
188
55
  */
189
- export type ResultFieldWithValue<P = unknown, V = unknown> = P extends ResultFieldType ? ResultWithValueMap<V>[P] : ResultWithValueMap<V>[ResultFieldType];
56
+ export type ResultNode<T extends NodeType = NodeType> = ResultNodeBase<T> & NodeTypeExtras<T> & {
57
+ /** Resolve this node with a value, returning a new resolved node */
58
+ resolve(data: unknown): ResolvedNode<T>;
59
+ value?: unknown;
60
+ };
190
61
  /**
191
- * Resolved method result containing metadata and resolved field values.
192
- * This is the output of `generateMetadata()`.
62
+ * A resolved node has `raw` populated and children resolved.
193
63
  */
194
- export interface ResolvedMethodResult<A = BaseActor> {
195
- functionType: FunctionType;
196
- functionName: FunctionName<A>;
197
- results: ResultFieldWithValue[];
198
- raw: ActorMethodReturnType<A[FunctionName<A>]>;
199
- }
200
- export interface MethodResultMeta<A = BaseActor, Name extends FunctionName<A> = FunctionName<A>> {
64
+ export type ResolvedNode<T extends NodeType = NodeType> = ResultNode<T> & {
65
+ raw: unknown;
66
+ };
67
+ export type RecordNode = ResultNode<"record">;
68
+ export type VariantNode = ResultNode<"variant">;
69
+ export type TupleNode = ResultNode<"tuple">;
70
+ export type OptionalNode = ResultNode<"optional">;
71
+ export type VectorNode = ResultNode<"vector">;
72
+ export type BlobNode = ResultNode<"blob">;
73
+ export type RecursiveNode = ResultNode<"recursive">;
74
+ export type PrincipalNode = ResultNode<"principal">;
75
+ export type NumberNode = ResultNode<"number">;
76
+ export type TextNode = ResultNode<"text">;
77
+ export type BooleanNode = ResultNode<"boolean">;
78
+ export type NullNode = ResultNode<"null">;
79
+ export type UnknownNode = ResultNode<"unknown">;
80
+ export interface MethodMeta<A = BaseActor, Name extends FunctionName<A> = FunctionName<A>> {
201
81
  functionType: FunctionType;
202
82
  functionName: Name;
203
- resultFields: ResultField[];
83
+ returns: ResultNode[];
204
84
  returnCount: number;
205
85
  /**
206
- * Generate metadata by resolving each result field with its corresponding display value.
207
- * This "zips" the static schema with dynamic runtime data for easy rendering.
208
- *
209
- * @param data - Array of display-transformed return values from the canister method call
210
- * @returns Resolved method result with metadata attached to each value
211
- *
212
- * @example
213
- * ```ts
214
- * const result = await reactor.callMethod({ functionName: "myMethod", args: [] })
215
- * const resolved = methodMeta.generateMetadata(result)
216
- * // resolved.results contains fields with their display values for rendering
217
- * ```
86
+ * Resolve the method result schema with actual return data.
218
87
  */
219
- generateMetadata(data: ActorMethodReturnType<A[Name]>): ResolvedMethodResult<A>;
88
+ resolve(data: ActorMethodReturnType<A[Name]>): ResolvedMethodResult<A>;
89
+ }
90
+ export interface ResolvedMethodResult<A = BaseActor> {
91
+ functionType: FunctionType;
92
+ functionName: FunctionName<A>;
93
+ results: ResolvedNode[];
94
+ raw: ActorMethodReturnType<A[FunctionName<A>]>;
220
95
  }
221
- export type ServiceResultMeta<A = BaseActor> = {
222
- [K in FunctionName<A>]: MethodResultMeta<A, K>;
96
+ export type ServiceMeta<A = BaseActor> = {
97
+ [K in FunctionName<A>]: MethodMeta<A, K>;
223
98
  };
99
+ export {};
224
100
  //# 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;AAMzB,MAAM,MAAM,QAAQ,GAChB,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,MAAM,MAAM,WAAW,GACnB,QAAQ,GACR,QAAQ,GACR,SAAS,GACT,MAAM,GACN,QAAQ,GACR,OAAO,GACP,SAAS,GACT,QAAQ,GACR,UAAU,GACV,WAAW,GACX,SAAS,CAAA;AAEb,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAA;AAC/E,MAAM,MAAM,UAAU,GAClB,OAAO,GACP,WAAW,GACX,MAAM,GACN,KAAK,GACL,OAAO,GACP,OAAO,GACP,KAAK,GACL,KAAK,GACL,YAAY,GACZ,WAAW,CAAA;AAMf;;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;CACd;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,CAAA;CAAE,GACjB,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;IACvC,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB,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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ic-reactor/candid",
3
- "version": "3.0.9-beta.0",
3
+ "version": "3.0.10-beta.1",
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",
@@ -43,7 +43,7 @@
43
43
  "license": "MIT",
44
44
  "dependencies": {
45
45
  "@noble/hashes": "^1.8.0",
46
- "@ic-reactor/core": "^3.0.9-beta.0"
46
+ "@ic-reactor/core": "^3.0.10-beta.1"
47
47
  },
48
48
  "peerDependencies": {
49
49
  "@icp-sdk/core": "^5.0.0"
package/src/index.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  export * from "./adapter"
2
2
  export * from "./types"
3
3
  export * from "./visitor"
4
+ export type { ResolvedNode } from "./visitor/returns/types"
4
5
  export * from "./constants"
5
6
  export * from "./utils"
6
7
  export * from "./reactor"
@@ -14,10 +14,10 @@ import {
14
14
  ServiceArgumentsMeta,
15
15
  } from "./visitor/arguments"
16
16
  import {
17
- MethodResultMeta,
17
+ MethodMeta,
18
18
  ResolvedMethodResult,
19
19
  ResultFieldVisitor,
20
- ServiceResultMeta,
20
+ ServiceMeta,
21
21
  } from "./visitor/returns"
22
22
 
23
23
  // ============================================================================
@@ -51,7 +51,7 @@ export class MetadataDisplayReactor<A = BaseActor> extends CandidDisplayReactor<
51
51
 
52
52
  // Metadata storage
53
53
  private argumentMeta: ServiceArgumentsMeta<A> | null = null
54
- private resultMeta: ServiceResultMeta<A> | null = null
54
+ private resultMeta: ServiceMeta<A> | null = null
55
55
 
56
56
  // Visitors (stateless, can be reused)
57
57
  private static argVisitor = new ArgumentFieldVisitor()
@@ -92,7 +92,7 @@ export class MetadataDisplayReactor<A = BaseActor> extends CandidDisplayReactor<
92
92
  this.resultMeta = service.accept(
93
93
  MetadataDisplayReactor.resultVisitor,
94
94
  null as any
95
- ) as ServiceResultMeta<A>
95
+ ) as ServiceMeta<A>
96
96
  }
97
97
 
98
98
  // ══════════════════════════════════════════════════════════════════════════
@@ -114,7 +114,7 @@ export class MetadataDisplayReactor<A = BaseActor> extends CandidDisplayReactor<
114
114
  */
115
115
  public getResultMeta<M extends FunctionName<A>>(
116
116
  methodName: M
117
- ): MethodResultMeta<A, M> | undefined {
117
+ ): MethodMeta<A, M> | undefined {
118
118
  return this.resultMeta?.[methodName]
119
119
  }
120
120
 
@@ -128,7 +128,7 @@ export class MetadataDisplayReactor<A = BaseActor> extends CandidDisplayReactor<
128
128
  /**
129
129
  * Get all result metadata.
130
130
  */
131
- public getAllResultMeta(): ServiceResultMeta<A> | null {
131
+ public getAllResultMeta(): ServiceMeta<A> | null {
132
132
  return this.resultMeta
133
133
  }
134
134
 
@@ -161,7 +161,7 @@ export class MetadataDisplayReactor<A = BaseActor> extends CandidDisplayReactor<
161
161
  throw new Error(`No metadata found for method "${methodName}"`)
162
162
  }
163
163
 
164
- return meta.generateMetadata(result) as ResolvedMethodResult<A>
164
+ return meta.resolve(result)
165
165
  }
166
166
 
167
167
  /**
@@ -169,7 +169,7 @@ export class MetadataDisplayReactor<A = BaseActor> extends CandidDisplayReactor<
169
169
  */
170
170
  public async callDynamicWithMeta<T = unknown>(
171
171
  options: DynamicMethodOptions & { args?: unknown[] }
172
- ): Promise<{ result: T; meta: MethodResultMeta<A> }> {
172
+ ): Promise<{ result: T; meta: MethodMeta<A> }> {
173
173
  await this.registerMethod(options)
174
174
 
175
175
  const result = (await this.callMethod({