@ic-reactor/candid 3.0.8-beta.1 → 3.0.9-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/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
- export { CandidAdapter } from "./adapter";
1
+ export * from "./adapter";
2
2
  export * from "./types";
3
+ export * from "./visitor";
3
4
  export * from "./constants";
4
5
  export * from "./utils";
5
6
  export * from "./reactor";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AACzC,cAAc,SAAS,CAAA;AACvB,cAAc,aAAa,CAAA;AAC3B,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,mBAAmB,CAAA;AACjC,cAAc,4BAA4B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,mBAAmB,CAAA;AACjC,cAAc,4BAA4B,CAAA"}
package/dist/index.js CHANGED
@@ -1,5 +1,6 @@
1
- export { CandidAdapter } from "./adapter";
1
+ export * from "./adapter";
2
2
  export * from "./types";
3
+ export * from "./visitor";
3
4
  export * from "./constants";
4
5
  export * from "./utils";
5
6
  export * from "./reactor";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AACzC,cAAc,SAAS,CAAA;AACvB,cAAc,aAAa,CAAA;AAC3B,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,mBAAmB,CAAA;AACjC,cAAc,4BAA4B,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,mBAAmB,CAAA;AACjC,cAAc,4BAA4B,CAAA"}
@@ -0,0 +1,5 @@
1
+ export * from "./returns";
2
+ export * from "./arguments";
3
+ export * from "./types";
4
+ export * from "./helpers";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/visitor/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA"}
@@ -0,0 +1,5 @@
1
+ export * from "./returns";
2
+ export * from "./arguments";
3
+ export * from "./types";
4
+ export * from "./helpers";
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/visitor/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/visitor/returns/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/visitor/returns/index.ts"],"names":[],"mappings":"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"}
@@ -111,8 +111,8 @@ export class ResultFieldVisitor extends IDL.Visitor {
111
111
  fields,
112
112
  resolve(value) {
113
113
  const record = value;
114
- if (record == null) {
115
- return { field, value: null, raw: value };
114
+ if (!record) {
115
+ throw new Error(`Expected record for field ${label}, but got ${value}`);
116
116
  }
117
117
  const resolvedFields = {};
118
118
  for (const f of fields) {
@@ -142,13 +142,13 @@ export class ResultFieldVisitor extends IDL.Visitor {
142
142
  optionFields,
143
143
  resolve(value) {
144
144
  if (value == null) {
145
- return { field, value: null, raw: value };
145
+ throw new Error(`Expected variant for field ${label}, but got null`);
146
146
  }
147
147
  const variant = value;
148
148
  const optionsInValue = Object.keys(variant);
149
149
  const activeOption = optionsInValue.find((opt) => options.includes(opt));
150
150
  if (!activeOption) {
151
- return { field, value: null, raw: value };
151
+ throw new Error(`Expected variant option for field ${label}, but got none`);
152
152
  }
153
153
  const activeValue = variant[activeOption];
154
154
  const optionIndex = options.indexOf(activeOption);
@@ -185,7 +185,7 @@ export class ResultFieldVisitor extends IDL.Visitor {
185
185
  resolve(value) {
186
186
  const tuple = value;
187
187
  if (tuple == null) {
188
- return { field, value: null, raw: value };
188
+ throw new Error(`Expected tuple for field ${label}, but got null`);
189
189
  }
190
190
  const resolvedItems = fields.map((f, index) => f.resolve(tuple[index]));
191
191
  return { field, value: resolvedItems, raw: value };
@@ -241,7 +241,7 @@ export class ResultFieldVisitor extends IDL.Visitor {
241
241
  resolve(value) {
242
242
  const vec = value;
243
243
  if (vec == null) {
244
- return { field, value: null, raw: value };
244
+ throw new Error(`Expected vector for field ${label}, but got null`);
245
245
  }
246
246
  const resolvedItems = vec.map((item) => itemField.resolve(item));
247
247
  return { field, value: resolvedItems, raw: value };
@@ -263,7 +263,7 @@ export class ResultFieldVisitor extends IDL.Visitor {
263
263
  resolve(value) {
264
264
  // Extract the inner field and resolve with it
265
265
  const innerField = field.extract();
266
- return innerField.resolve(value);
266
+ return innerField.resolve(value); // Resolve to union type
267
267
  },
268
268
  };
269
269
  return field;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/visitor/returns/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/visitor/returns/index.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { BaseActor, FunctionName, DisplayOf, FunctionType, ActorMethodReturnType } from "@ic-reactor/core";
1
+ import type { BaseActor, FunctionName, FunctionType, ActorMethodReturnType } from "@ic-reactor/core";
2
2
  export type ResultFieldType = "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
4
  /**
@@ -13,9 +13,9 @@ export type TextFormat = "plain" | "timestamp" | "uuid" | "url" | "email" | "pho
13
13
  * Display hints for UI rendering.
14
14
  */
15
15
  export type DisplayHint = "copyable" | "linkable" | "truncate" | "hex" | "code" | "none";
16
- export interface ResultFieldBase {
16
+ export interface ResultFieldBase<Type extends ResultFieldType = ResultFieldType> {
17
17
  /** The Candid type category */
18
- type: ResultFieldType;
18
+ type: Type;
19
19
  /** Human-readable label from Candid */
20
20
  label: string;
21
21
  /** Original Candid type name */
@@ -26,35 +26,35 @@ export interface ResultFieldBase {
26
26
  * Combine metadata with value to create a render-ready tree.
27
27
  * This allows "zipping" the static schema with dynamic runtime data.
28
28
  */
29
- resolve(value: unknown): ResultFieldWithValue;
29
+ resolve(value: unknown): ResultFieldWithValue<Type>;
30
30
  }
31
- export interface RecordResultField extends ResultFieldBase {
31
+ export interface RecordResultField extends ResultFieldBase<"record"> {
32
32
  type: "record";
33
33
  displayType: "object";
34
34
  fields: ResultField[];
35
35
  }
36
- export interface VariantResultField extends ResultFieldBase {
36
+ export interface VariantResultField extends ResultFieldBase<"variant"> {
37
37
  type: "variant";
38
38
  displayType: "variant" | "result";
39
39
  options: string[];
40
40
  optionFields: ResultField[];
41
41
  }
42
- export interface TupleResultField extends ResultFieldBase {
42
+ export interface TupleResultField extends ResultFieldBase<"tuple"> {
43
43
  type: "tuple";
44
44
  displayType: "array";
45
45
  fields: ResultField[];
46
46
  }
47
- export interface OptionalResultField extends ResultFieldBase {
47
+ export interface OptionalResultField extends ResultFieldBase<"optional"> {
48
48
  type: "optional";
49
49
  displayType: "nullable";
50
50
  innerField: ResultField;
51
51
  }
52
- export interface VectorResultField extends ResultFieldBase {
52
+ export interface VectorResultField extends ResultFieldBase<"vector"> {
53
53
  type: "vector";
54
54
  displayType: "array";
55
55
  itemField: ResultField;
56
56
  }
57
- export interface BlobResultField extends ResultFieldBase {
57
+ export interface BlobResultField extends ResultFieldBase<"blob"> {
58
58
  type: "blob";
59
59
  displayType: "string";
60
60
  displayHint: "hex";
@@ -66,43 +66,127 @@ export interface RecursiveResultField extends ResultFieldBase {
66
66
  /** Lazily extract the inner field to prevent infinite loops */
67
67
  extract: () => ResultField;
68
68
  }
69
- export interface PrincipalResultField extends ResultFieldBase {
69
+ export interface PrincipalResultField extends ResultFieldBase<"principal"> {
70
70
  type: "principal";
71
71
  displayType: "string";
72
72
  textFormat: TextFormat;
73
73
  }
74
- export interface NumberResultField extends ResultFieldBase {
74
+ export interface NumberResultField extends ResultFieldBase<"number"> {
75
75
  type: "number";
76
76
  displayType: "string" | "number";
77
77
  numberFormat: NumberFormat;
78
78
  }
79
- export interface TextResultField extends ResultFieldBase {
79
+ export interface TextResultField extends ResultFieldBase<"text"> {
80
80
  type: "text";
81
81
  displayType: "string";
82
82
  textFormat: TextFormat;
83
83
  }
84
- export interface BooleanResultField extends ResultFieldBase {
84
+ export interface BooleanResultField extends ResultFieldBase<"boolean"> {
85
85
  type: "boolean";
86
86
  displayType: "boolean";
87
87
  }
88
- export interface NullResultField extends ResultFieldBase {
88
+ export interface NullResultField extends ResultFieldBase<"null"> {
89
89
  type: "null";
90
90
  displayType: "null";
91
91
  }
92
- export interface UnknownResultField extends ResultFieldBase {
92
+ export interface UnknownResultField extends ResultFieldBase<"unknown"> {
93
93
  type: "unknown";
94
94
  displayType: "unknown";
95
95
  }
96
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;
137
+ value: string;
138
+ raw: V;
139
+ }
140
+ export interface NumberResultWithValue<V = unknown> {
141
+ field: NumberResultField;
142
+ value: string | number;
143
+ raw: V;
144
+ }
145
+ export interface TextResultWithValue<V = unknown> {
146
+ field: TextResultField;
147
+ value: string;
148
+ raw: V;
149
+ }
150
+ export interface BooleanResultWithValue<V = unknown> {
151
+ field: BooleanResultField;
152
+ value: boolean;
153
+ raw: V;
154
+ }
155
+ export interface NullResultWithValue<V = unknown> {
156
+ field: NullResultField;
157
+ value: null;
158
+ raw: V;
159
+ }
160
+ export interface UnknownResultWithValue<V = unknown> {
161
+ field: UnknownResultField;
162
+ 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
+ };
97
183
  /**
98
184
  * A result field paired with its transformed value for rendering.
99
185
  * Can contain nested resolved fields for compound types.
186
+ *
187
+ * It is a discriminated union of all specific result types.
100
188
  */
101
- export interface ResultFieldWithValue<T = unknown> {
102
- field: ResultField;
103
- value: DisplayOf<T>;
104
- raw: T;
105
- }
189
+ export type ResultFieldWithValue<P = unknown, V = unknown> = P extends ResultFieldType ? ResultWithValueMap<V>[P] : ResultWithValueMap<V>[ResultFieldType];
106
190
  /**
107
191
  * Resolved method result containing metadata and resolved field values.
108
192
  * This is the output of `generateMetadata()`.
@@ -137,7 +221,4 @@ export interface MethodResultMeta<A = BaseActor, Name extends FunctionName<A> =
137
221
  export type ServiceResultMeta<A = BaseActor> = {
138
222
  [K in FunctionName<A>]: MethodResultMeta<A, K>;
139
223
  };
140
- export type ResultFieldByType<T extends ResultFieldType> = Extract<ResultField, {
141
- type: T;
142
- }>;
143
224
  //# 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":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ic-reactor/candid",
3
- "version": "3.0.8-beta.1",
3
+ "version": "3.0.9-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",
@@ -43,7 +43,7 @@
43
43
  "license": "MIT",
44
44
  "dependencies": {
45
45
  "@noble/hashes": "^1.8.0",
46
- "@ic-reactor/core": "^3.0.8-beta.1"
46
+ "@ic-reactor/core": "^3.0.9-beta.0"
47
47
  },
48
48
  "peerDependencies": {
49
49
  "@icp-sdk/core": "^5.0.0"
package/src/index.ts CHANGED
@@ -1,5 +1,6 @@
1
- export { CandidAdapter } from "./adapter"
1
+ export * from "./adapter"
2
2
  export * from "./types"
3
+ export * from "./visitor"
3
4
  export * from "./constants"
4
5
  export * from "./utils"
5
6
  export * from "./reactor"
@@ -0,0 +1,4 @@
1
+ export * from "./returns"
2
+ export * from "./arguments"
3
+ export * from "./types"
4
+ export * from "./helpers"
@@ -1273,8 +1273,9 @@ describe("ResultFieldVisitor", () => {
1273
1273
  "user"
1274
1274
  )
1275
1275
 
1276
- const resolved = field.resolve(null)
1277
- expect(resolved.value).toBe(null)
1276
+ expect(() => field.resolve(null)).toThrow(
1277
+ "Expected record for field user, but got null"
1278
+ )
1278
1279
  })
1279
1280
  })
1280
1281
 
@@ -1338,8 +1339,9 @@ describe("ResultFieldVisitor", () => {
1338
1339
  "choice"
1339
1340
  )
1340
1341
 
1341
- const resolved = field.resolve(null)
1342
- expect(resolved.value).toBe(null)
1342
+ expect(() => field.resolve(null)).toThrow(
1343
+ "Expected variant for field choice, but got null"
1344
+ )
1343
1345
  })
1344
1346
  })
1345
1347
 
@@ -1369,8 +1371,9 @@ describe("ResultFieldVisitor", () => {
1369
1371
  const tupleType = IDL.Tuple(IDL.Text, IDL.Nat)
1370
1372
  const field = visitor.visitTuple(tupleType, [IDL.Text, IDL.Nat], "pair")
1371
1373
 
1372
- const resolved = field.resolve(null)
1373
- expect(resolved.value).toBe(null)
1374
+ expect(() => field.resolve(null)).toThrow(
1375
+ "Expected tuple for field pair, but got null"
1376
+ )
1374
1377
  })
1375
1378
  })
1376
1379
 
@@ -1432,8 +1435,9 @@ describe("ResultFieldVisitor", () => {
1432
1435
  const vecType = IDL.Vec(IDL.Text)
1433
1436
  const field = visitor.visitVec(vecType, IDL.Text, "items")
1434
1437
 
1435
- const resolved = field.resolve(null)
1436
- expect(resolved.value).toBe(null)
1438
+ expect(() => field.resolve(null)).toThrow(
1439
+ "Expected vector for field items, but got null"
1440
+ )
1437
1441
  })
1438
1442
  })
1439
1443
 
@@ -164,10 +164,12 @@ export class ResultFieldVisitor<A = BaseActor> extends IDL.Visitor<
164
164
  candidType: "record",
165
165
  displayType: "object",
166
166
  fields,
167
- resolve(value: unknown): ResultFieldWithValue {
167
+ resolve(value: unknown): ResultFieldWithValue<"record"> {
168
168
  const record = value as Record<string, unknown> | null | undefined
169
- if (record == null) {
170
- return { field, value: null, raw: value }
169
+ if (!record) {
170
+ throw new Error(
171
+ `Expected record for field ${label}, but got ${value}`
172
+ )
171
173
  }
172
174
 
173
175
  const resolvedFields: Record<string, ResultFieldWithValue> = {}
@@ -205,9 +207,9 @@ export class ResultFieldVisitor<A = BaseActor> extends IDL.Visitor<
205
207
  displayType,
206
208
  options,
207
209
  optionFields,
208
- resolve(value: unknown): ResultFieldWithValue {
210
+ resolve(value: unknown): ResultFieldWithValue<"variant"> {
209
211
  if (value == null) {
210
- return { field, value: null, raw: value }
212
+ throw new Error(`Expected variant for field ${label}, but got null`)
211
213
  }
212
214
 
213
215
  const variant = value as Record<string, unknown>
@@ -215,7 +217,9 @@ export class ResultFieldVisitor<A = BaseActor> extends IDL.Visitor<
215
217
  const activeOption = optionsInValue.find((opt) => options.includes(opt))
216
218
 
217
219
  if (!activeOption) {
218
- return { field, value: null, raw: value }
220
+ throw new Error(
221
+ `Expected variant option for field ${label}, but got none`
222
+ )
219
223
  }
220
224
 
221
225
  const activeValue = variant[activeOption]
@@ -261,10 +265,10 @@ export class ResultFieldVisitor<A = BaseActor> extends IDL.Visitor<
261
265
  candidType: "tuple",
262
266
  displayType: "array",
263
267
  fields,
264
- resolve(value: unknown): ResultFieldWithValue {
268
+ resolve(value: unknown): ResultFieldWithValue<"tuple"> {
265
269
  const tuple = value as unknown[] | null | undefined
266
270
  if (tuple == null) {
267
- return { field, value: null, raw: value }
271
+ throw new Error(`Expected tuple for field ${label}, but got null`)
268
272
  }
269
273
 
270
274
  const resolvedItems = fields.map((f, index) => f.resolve(tuple[index]))
@@ -288,7 +292,7 @@ export class ResultFieldVisitor<A = BaseActor> extends IDL.Visitor<
288
292
  candidType: "opt",
289
293
  displayType: "nullable",
290
294
  innerField,
291
- resolve(value: unknown): ResultFieldWithValue {
295
+ resolve(value: unknown): ResultFieldWithValue<"optional"> {
292
296
  const opt = value as [unknown] | [] | null | undefined
293
297
  if (opt == null || opt.length === 0) {
294
298
  return { field, value: null, raw: value }
@@ -314,7 +318,7 @@ export class ResultFieldVisitor<A = BaseActor> extends IDL.Visitor<
314
318
  candidType: "blob",
315
319
  displayType: "string", // Transformed to hex string
316
320
  displayHint: "hex",
317
- resolve(value: unknown): ResultFieldWithValue {
321
+ resolve(value: unknown): ResultFieldWithValue<"blob"> {
318
322
  return {
319
323
  field: blobField,
320
324
  value: codec.decode(value),
@@ -333,10 +337,10 @@ export class ResultFieldVisitor<A = BaseActor> extends IDL.Visitor<
333
337
  candidType: "vec",
334
338
  displayType: "array",
335
339
  itemField,
336
- resolve(value: unknown): ResultFieldWithValue {
340
+ resolve(value: unknown): ResultFieldWithValue<"vector"> {
337
341
  const vec = value as unknown[] | null | undefined
338
342
  if (vec == null) {
339
- return { field, value: null, raw: value }
343
+ throw new Error(`Expected vector for field ${label}, but got null`)
340
344
  }
341
345
 
342
346
  const resolvedItems = vec.map((item) => itemField.resolve(item))
@@ -366,7 +370,7 @@ export class ResultFieldVisitor<A = BaseActor> extends IDL.Visitor<
366
370
  resolve(value: unknown): ResultFieldWithValue {
367
371
  // Extract the inner field and resolve with it
368
372
  const innerField = field.extract()
369
- return innerField.resolve(value)
373
+ return innerField.resolve(value) // Resolve to union type
370
374
  },
371
375
  }
372
376
 
@@ -388,7 +392,7 @@ export class ResultFieldVisitor<A = BaseActor> extends IDL.Visitor<
388
392
  candidType: "principal",
389
393
  displayType: "string", // Principal.toText()
390
394
  textFormat: checkTextFormat(label),
391
- resolve(value: unknown): ResultFieldWithValue {
395
+ resolve(value: unknown): ResultFieldWithValue<"principal"> {
392
396
  return {
393
397
  field,
394
398
  value: codec.decode(value),
@@ -408,7 +412,7 @@ export class ResultFieldVisitor<A = BaseActor> extends IDL.Visitor<
408
412
  candidType: "text",
409
413
  displayType: "string",
410
414
  textFormat: checkTextFormat(label),
411
- resolve(value: unknown): ResultFieldWithValue {
415
+ resolve(value: unknown): ResultFieldWithValue<"text"> {
412
416
  return { field, value: codec.decode(value), raw: value }
413
417
  },
414
418
  }
@@ -423,7 +427,7 @@ export class ResultFieldVisitor<A = BaseActor> extends IDL.Visitor<
423
427
  label,
424
428
  candidType: "bool",
425
429
  displayType: "boolean",
426
- resolve(value: unknown): ResultFieldWithValue {
430
+ resolve(value: unknown): ResultFieldWithValue<"boolean"> {
427
431
  return { field, value: codec.decode(value), raw: value }
428
432
  },
429
433
  }
@@ -438,7 +442,7 @@ export class ResultFieldVisitor<A = BaseActor> extends IDL.Visitor<
438
442
  label,
439
443
  candidType: "null",
440
444
  displayType: "null",
441
- resolve(value: unknown): ResultFieldWithValue {
445
+ resolve(value: unknown): ResultFieldWithValue<"null"> {
442
446
  return { field, value: codec.decode(value), raw: value }
443
447
  },
444
448
  }
@@ -455,7 +459,7 @@ export class ResultFieldVisitor<A = BaseActor> extends IDL.Visitor<
455
459
  candidType: "int",
456
460
  displayType: "string", // BigInt → string
457
461
  numberFormat: checkNumberFormat(label),
458
- resolve(value: unknown): ResultFieldWithValue {
462
+ resolve(value: unknown): ResultFieldWithValue<"number"> {
459
463
  return { field, value: codec.decode(value), raw: value }
460
464
  },
461
465
  }
@@ -471,7 +475,7 @@ export class ResultFieldVisitor<A = BaseActor> extends IDL.Visitor<
471
475
  candidType: "nat",
472
476
  displayType: "string", // BigInt → string
473
477
  numberFormat: checkNumberFormat(label),
474
- resolve(value: unknown): ResultFieldWithValue {
478
+ resolve(value: unknown): ResultFieldWithValue<"number"> {
475
479
  return { field, value: codec.decode(value), raw: value }
476
480
  },
477
481
  }
@@ -487,7 +491,7 @@ export class ResultFieldVisitor<A = BaseActor> extends IDL.Visitor<
487
491
  candidType: `float${t._bits}`,
488
492
  displayType: "number", // Floats stay as numbers
489
493
  numberFormat: checkNumberFormat(label),
490
- resolve(value: unknown): ResultFieldWithValue {
494
+ resolve(value: unknown): ResultFieldWithValue<"number"> {
491
495
  return { field, value: codec.decode(value), raw: value }
492
496
  },
493
497
  }
@@ -504,7 +508,7 @@ export class ResultFieldVisitor<A = BaseActor> extends IDL.Visitor<
504
508
  candidType: `int${bits}`,
505
509
  displayType: bits <= 32 ? "number" : "string", // int64 → string
506
510
  numberFormat: checkNumberFormat(label),
507
- resolve(value: unknown): ResultFieldWithValue {
511
+ resolve(value: unknown): ResultFieldWithValue<"number"> {
508
512
  return {
509
513
  field,
510
514
  value: codec.decode(value),
@@ -525,7 +529,7 @@ export class ResultFieldVisitor<A = BaseActor> extends IDL.Visitor<
525
529
  candidType: `nat${bits}`,
526
530
  displayType: bits <= 32 ? "number" : "string", // nat64 → string
527
531
  numberFormat: checkNumberFormat(label),
528
- resolve(value: unknown): ResultFieldWithValue {
532
+ resolve(value: unknown): ResultFieldWithValue<"number"> {
529
533
  return {
530
534
  field,
531
535
  value: codec.decode(value),
@@ -543,7 +547,7 @@ export class ResultFieldVisitor<A = BaseActor> extends IDL.Visitor<
543
547
  label,
544
548
  candidType: "unknown",
545
549
  displayType: "unknown",
546
- resolve(value: unknown): ResultFieldWithValue {
550
+ resolve(value: unknown): ResultFieldWithValue<"unknown"> {
547
551
  return { field, value, raw: value }
548
552
  },
549
553
  }
@@ -1,7 +1,6 @@
1
1
  import type {
2
2
  BaseActor,
3
3
  FunctionName,
4
- DisplayOf,
5
4
  FunctionType,
6
5
  ActorMethodReturnType,
7
6
  } from "@ic-reactor/core"
@@ -81,9 +80,11 @@ export type DisplayHint =
81
80
  // Base Field Interface
82
81
  // ════════════════════════════════════════════════════════════════════════════
83
82
 
84
- export interface ResultFieldBase {
83
+ export interface ResultFieldBase<
84
+ Type extends ResultFieldType = ResultFieldType,
85
+ > {
85
86
  /** The Candid type category */
86
- type: ResultFieldType
87
+ type: Type
87
88
  /** Human-readable label from Candid */
88
89
  label: string
89
90
  /** Original Candid type name */
@@ -94,45 +95,45 @@ export interface ResultFieldBase {
94
95
  * Combine metadata with value to create a render-ready tree.
95
96
  * This allows "zipping" the static schema with dynamic runtime data.
96
97
  */
97
- resolve(value: unknown): ResultFieldWithValue
98
+ resolve(value: unknown): ResultFieldWithValue<Type>
98
99
  }
99
100
 
100
101
  // ════════════════════════════════════════════════════════════════════════════
101
102
  // Compound Types
102
103
  // ════════════════════════════════════════════════════════════════════════════
103
104
 
104
- export interface RecordResultField extends ResultFieldBase {
105
+ export interface RecordResultField extends ResultFieldBase<"record"> {
105
106
  type: "record"
106
107
  displayType: "object"
107
108
  fields: ResultField[]
108
109
  }
109
110
 
110
- export interface VariantResultField extends ResultFieldBase {
111
+ export interface VariantResultField extends ResultFieldBase<"variant"> {
111
112
  type: "variant"
112
113
  displayType: "variant" | "result"
113
114
  options: string[]
114
115
  optionFields: ResultField[]
115
116
  }
116
117
 
117
- export interface TupleResultField extends ResultFieldBase {
118
+ export interface TupleResultField extends ResultFieldBase<"tuple"> {
118
119
  type: "tuple"
119
120
  displayType: "array"
120
121
  fields: ResultField[]
121
122
  }
122
123
 
123
- export interface OptionalResultField extends ResultFieldBase {
124
+ export interface OptionalResultField extends ResultFieldBase<"optional"> {
124
125
  type: "optional"
125
126
  displayType: "nullable"
126
127
  innerField: ResultField
127
128
  }
128
129
 
129
- export interface VectorResultField extends ResultFieldBase {
130
+ export interface VectorResultField extends ResultFieldBase<"vector"> {
130
131
  type: "vector"
131
132
  displayType: "array"
132
133
  itemField: ResultField
133
134
  }
134
135
 
135
- export interface BlobResultField extends ResultFieldBase {
136
+ export interface BlobResultField extends ResultFieldBase<"blob"> {
136
137
  type: "blob"
137
138
  displayType: "string"
138
139
  displayHint: "hex"
@@ -150,35 +151,35 @@ export interface RecursiveResultField extends ResultFieldBase {
150
151
  // Primitive Types
151
152
  // ════════════════════════════════════════════════════════════════════════════
152
153
 
153
- export interface PrincipalResultField extends ResultFieldBase {
154
+ export interface PrincipalResultField extends ResultFieldBase<"principal"> {
154
155
  type: "principal"
155
156
  displayType: "string"
156
157
  textFormat: TextFormat
157
158
  }
158
159
 
159
- export interface NumberResultField extends ResultFieldBase {
160
+ export interface NumberResultField extends ResultFieldBase<"number"> {
160
161
  type: "number"
161
162
  displayType: "string" | "number"
162
163
  numberFormat: NumberFormat
163
164
  }
164
165
 
165
- export interface TextResultField extends ResultFieldBase {
166
+ export interface TextResultField extends ResultFieldBase<"text"> {
166
167
  type: "text"
167
168
  displayType: "string"
168
169
  textFormat: TextFormat
169
170
  }
170
171
 
171
- export interface BooleanResultField extends ResultFieldBase {
172
+ export interface BooleanResultField extends ResultFieldBase<"boolean"> {
172
173
  type: "boolean"
173
174
  displayType: "boolean"
174
175
  }
175
176
 
176
- export interface NullResultField extends ResultFieldBase {
177
+ export interface NullResultField extends ResultFieldBase<"null"> {
177
178
  type: "null"
178
179
  displayType: "null"
179
180
  }
180
181
 
181
- export interface UnknownResultField extends ResultFieldBase {
182
+ export interface UnknownResultField extends ResultFieldBase<"unknown"> {
182
183
  type: "unknown"
183
184
  displayType: "unknown"
184
185
  }
@@ -203,18 +204,123 @@ export type ResultField =
203
204
  | UnknownResultField
204
205
 
205
206
  // ════════════════════════════════════════════════════════════════════════════
206
- // Helper Types for Rendering
207
+ // Result Field With Value Interfaces
208
+ // ════════════════════════════════════════════════════════════════════════════
209
+
210
+ export interface RecordResultWithValue<V = unknown> {
211
+ field: RecordResultField
212
+ value: Record<string, ResultFieldWithValue>
213
+ raw: V
214
+ }
215
+
216
+ export interface VariantResultWithValue<V = unknown> {
217
+ field: VariantResultField
218
+ value: { option: string; value: ResultFieldWithValue }
219
+ raw: V
220
+ }
221
+
222
+ export interface TupleResultWithValue<V = unknown> {
223
+ field: TupleResultField
224
+ value: ResultFieldWithValue[]
225
+ raw: V
226
+ }
227
+
228
+ export interface OptionalResultWithValue<V = unknown> {
229
+ field: OptionalResultField
230
+ value: ResultFieldWithValue | null
231
+ raw: V
232
+ }
233
+
234
+ export interface VectorResultWithValue<V = unknown> {
235
+ field: VectorResultField
236
+ value: ResultFieldWithValue[]
237
+ raw: V
238
+ }
239
+
240
+ export interface BlobResultWithValue<V = unknown> {
241
+ field: BlobResultField
242
+ value: string
243
+ raw: V
244
+ }
245
+
246
+ export interface RecursiveResultWithValue<V = unknown> {
247
+ field: RecursiveResultField
248
+ // Resolves to the specific inner type which is also a ResultFieldWithValue
249
+ value: ResultFieldWithValue
250
+ raw: V
251
+ }
252
+
253
+ export interface PrincipalResultWithValue<V = unknown> {
254
+ field: PrincipalResultField
255
+ value: string
256
+ raw: V
257
+ }
258
+
259
+ export interface NumberResultWithValue<V = unknown> {
260
+ field: NumberResultField
261
+ value: string | number
262
+ raw: V
263
+ }
264
+
265
+ export interface TextResultWithValue<V = unknown> {
266
+ field: TextResultField
267
+ value: string
268
+ raw: V
269
+ }
270
+
271
+ export interface BooleanResultWithValue<V = unknown> {
272
+ field: BooleanResultField
273
+ value: boolean
274
+ raw: V
275
+ }
276
+
277
+ export interface NullResultWithValue<V = unknown> {
278
+ field: NullResultField
279
+ value: null
280
+ raw: V
281
+ }
282
+
283
+ export interface UnknownResultWithValue<V = unknown> {
284
+ field: UnknownResultField
285
+ value: unknown
286
+ raw: V
287
+ }
288
+
289
+ // ════════════════════════════════════════════════════════════════════════════
290
+ // Maps and Helper Types
207
291
  // ════════════════════════════════════════════════════════════════════════════
208
292
 
293
+ /**
294
+ * Mapping from ResultFieldType string to the corresponding *ResultWithValue interface.
295
+ */
296
+ export type ResultWithValueMap<V = unknown> = {
297
+ record: RecordResultWithValue<V>
298
+ variant: VariantResultWithValue<V>
299
+ tuple: TupleResultWithValue<V>
300
+ optional: OptionalResultWithValue<V>
301
+ vector: VectorResultWithValue<V>
302
+ blob: BlobResultWithValue<V>
303
+ recursive: RecursiveResultWithValue<V>
304
+ principal: PrincipalResultWithValue<V>
305
+ number: NumberResultWithValue<V>
306
+ text: TextResultWithValue<V>
307
+ boolean: BooleanResultWithValue<V>
308
+ null: NullResultWithValue<V>
309
+ unknown: UnknownResultWithValue<V>
310
+ }
311
+
209
312
  /**
210
313
  * A result field paired with its transformed value for rendering.
211
314
  * Can contain nested resolved fields for compound types.
315
+ *
316
+ * It is a discriminated union of all specific result types.
212
317
  */
213
- export interface ResultFieldWithValue<T = unknown> {
214
- field: ResultField
215
- value: DisplayOf<T>
216
- raw: T
217
- }
318
+ export type ResultFieldWithValue<
319
+ P = unknown,
320
+ V = unknown,
321
+ > = P extends ResultFieldType
322
+ ? ResultWithValueMap<V>[P]
323
+ : ResultWithValueMap<V>[ResultFieldType]
218
324
 
219
325
  // ════════════════════════════════════════════════════════════════════════════
220
326
  // Method & Service Level
@@ -261,12 +367,3 @@ export interface MethodResultMeta<
261
367
  export type ServiceResultMeta<A = BaseActor> = {
262
368
  [K in FunctionName<A>]: MethodResultMeta<A, K>
263
369
  }
264
-
265
- // ════════════════════════════════════════════════════════════════════════════
266
- // Type Utilities
267
- // ════════════════════════════════════════════════════════════════════════════
268
-
269
- export type ResultFieldByType<T extends ResultFieldType> = Extract<
270
- ResultField,
271
- { type: T }
272
- >