@ic-reactor/candid 3.0.3-beta.4 → 3.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/README.md +33 -1
  2. package/dist/adapter.js +2 -1
  3. package/dist/adapter.js.map +1 -1
  4. package/dist/display-reactor.d.ts +4 -15
  5. package/dist/display-reactor.d.ts.map +1 -1
  6. package/dist/display-reactor.js +22 -8
  7. package/dist/display-reactor.js.map +1 -1
  8. package/dist/index.d.ts +3 -1
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +3 -1
  11. package/dist/index.js.map +1 -1
  12. package/dist/metadata-display-reactor.d.ts +108 -0
  13. package/dist/metadata-display-reactor.d.ts.map +1 -0
  14. package/dist/metadata-display-reactor.js +141 -0
  15. package/dist/metadata-display-reactor.js.map +1 -0
  16. package/dist/reactor.d.ts.map +1 -1
  17. package/dist/reactor.js +9 -5
  18. package/dist/reactor.js.map +1 -1
  19. package/dist/types.d.ts +38 -5
  20. package/dist/types.d.ts.map +1 -1
  21. package/dist/utils.d.ts +4 -4
  22. package/dist/utils.d.ts.map +1 -1
  23. package/dist/utils.js +33 -10
  24. package/dist/utils.js.map +1 -1
  25. package/dist/visitor/arguments/helpers.d.ts +55 -0
  26. package/dist/visitor/arguments/helpers.d.ts.map +1 -0
  27. package/dist/visitor/arguments/helpers.js +123 -0
  28. package/dist/visitor/arguments/helpers.js.map +1 -0
  29. package/dist/visitor/arguments/index.d.ts +101 -0
  30. package/dist/visitor/arguments/index.d.ts.map +1 -0
  31. package/dist/visitor/arguments/index.js +779 -0
  32. package/dist/visitor/arguments/index.js.map +1 -0
  33. package/dist/visitor/arguments/types.d.ts +268 -0
  34. package/dist/visitor/arguments/types.d.ts.map +1 -0
  35. package/dist/visitor/arguments/types.js +26 -0
  36. package/dist/visitor/arguments/types.js.map +1 -0
  37. package/dist/visitor/constants.d.ts +4 -0
  38. package/dist/visitor/constants.d.ts.map +1 -0
  39. package/dist/visitor/constants.js +73 -0
  40. package/dist/visitor/constants.js.map +1 -0
  41. package/dist/visitor/helpers.d.ts +30 -0
  42. package/dist/visitor/helpers.d.ts.map +1 -0
  43. package/dist/visitor/helpers.js +204 -0
  44. package/dist/visitor/helpers.js.map +1 -0
  45. package/dist/visitor/index.d.ts +5 -0
  46. package/dist/visitor/index.d.ts.map +1 -0
  47. package/dist/visitor/index.js +5 -0
  48. package/dist/visitor/index.js.map +1 -0
  49. package/dist/visitor/returns/index.d.ts +38 -0
  50. package/dist/visitor/returns/index.d.ts.map +1 -0
  51. package/dist/visitor/returns/index.js +460 -0
  52. package/dist/visitor/returns/index.js.map +1 -0
  53. package/dist/visitor/returns/types.d.ts +202 -0
  54. package/dist/visitor/returns/types.d.ts.map +1 -0
  55. package/dist/visitor/returns/types.js +2 -0
  56. package/dist/visitor/returns/types.js.map +1 -0
  57. package/dist/visitor/types.d.ts +19 -0
  58. package/dist/visitor/types.d.ts.map +1 -0
  59. package/dist/visitor/types.js +2 -0
  60. package/dist/visitor/types.js.map +1 -0
  61. package/package.json +16 -7
  62. package/src/adapter.ts +446 -0
  63. package/src/constants.ts +11 -0
  64. package/src/display-reactor.ts +337 -0
  65. package/src/index.ts +8 -0
  66. package/src/metadata-display-reactor.ts +230 -0
  67. package/src/reactor.ts +199 -0
  68. package/src/types.ts +127 -0
  69. package/src/utils.ts +60 -0
  70. package/src/visitor/arguments/helpers.ts +153 -0
  71. package/src/visitor/arguments/index.test.ts +1439 -0
  72. package/src/visitor/arguments/index.ts +980 -0
  73. package/src/visitor/arguments/schema.test.ts +324 -0
  74. package/src/visitor/arguments/types.ts +385 -0
  75. package/src/visitor/constants.ts +76 -0
  76. package/src/visitor/helpers.test.ts +274 -0
  77. package/src/visitor/helpers.ts +223 -0
  78. package/src/visitor/index.ts +4 -0
  79. package/src/visitor/returns/index.test.ts +2377 -0
  80. package/src/visitor/returns/index.ts +658 -0
  81. package/src/visitor/returns/types.ts +302 -0
  82. package/src/visitor/types.ts +75 -0
package/README.md CHANGED
@@ -9,6 +9,7 @@ Lightweight adapter for fetching and parsing Candid definitions from Internet Co
9
9
  - **Local Parsing**: Use the optional WASM-based parser for fast, offline Candid compilation
10
10
  - **Remote Fallback**: Falls back to the didjs canister for Candid-to-JavaScript compilation
11
11
  - **Dynamic Reactor**: Includes `CandidReactor` for dynamic IDL fetching and interaction
12
+ - **Dynamic Forms**: Generate rich form metadata with validation schemas using `FieldVisitor`
12
13
  - **Lightweight**: Uses raw `agent.query` calls - no Actor overhead
13
14
  - **ClientManager Compatible**: Seamlessly integrates with `@ic-reactor/core`
14
15
 
@@ -86,6 +87,7 @@ await clientManager.initialize()
86
87
  const reactor = new CandidReactor({
87
88
  canisterId: "ryjl3-tyaaa-aaaaa-aaaba-cai",
88
89
  clientManager,
90
+ name: "my-canister",
89
91
  })
90
92
  await reactor.initialize() // Fetches IDL from network
91
93
 
@@ -93,6 +95,7 @@ await reactor.initialize() // Fetches IDL from network
93
95
  const reactor = new CandidReactor({
94
96
  canisterId: "ryjl3-tyaaa-aaaaa-aaaba-cai",
95
97
  clientManager,
98
+ name: "my-canister",
96
99
  candid: `service : {
97
100
  icrc1_name : () -> (text) query;
98
101
  icrc1_balance_of : (record { owner : principal }) -> (nat) query;
@@ -117,6 +120,7 @@ You can also register individual methods on-the-fly:
117
120
  const reactor = new CandidReactor({
118
121
  canisterId: "ryjl3-tyaaa-aaaaa-aaaba-cai",
119
122
  clientManager,
123
+ name: "my-canister",
120
124
  })
121
125
 
122
126
  // Register a method by its Candid signature
@@ -168,6 +172,33 @@ const cachedBalance = await reactor.fetchQueryDynamic({
168
172
  })
169
173
  ```
170
174
 
175
+ ### FieldVisitor (Dynamic Forms)
176
+
177
+ Generate type-safe, enhanced metadata for dynamic forms from Candid definitions.
178
+
179
+ ```typescript
180
+ import { FieldVisitor } from "@ic-reactor/candid"
181
+
182
+ const visitor = new FieldVisitor()
183
+ const serviceMeta = service.accept(visitor, null)
184
+
185
+ // Access method metadata
186
+ const methodMeta = serviceMeta["icrc1_transfer"]
187
+
188
+ // Detected field formats detected automatically
189
+ const amountField = methodMeta.fields[1] // e.g. "amount"
190
+ console.log(amountField.format) // "token"
191
+ console.log(amountField.inputProps)
192
+ // { type: "text", inputMode: "numeric", pattern: "\\d+", ... }
193
+ ```
194
+
195
+ **Features:**
196
+
197
+ - **Auto-Format Detection**: Identifies `email`, `url`, `uuid`, `timestamp`, `cycle`, `principal`, etc. based on labels.
198
+ - **Enhanced Schemas**: Generates Zod schemas with specific validation (e.g., `z.string().email()`).
199
+ - **Input Props**: Provides ready-to-use HTML attributes (`type="email"`, `pattern`, `min`, `max`) for primitive fields.
200
+ - **Component Hints**: Suggests UI components (`variant-select`, `vector-list`, `blob-upload`).
201
+
171
202
  ### Fetch Raw Candid Source
172
203
 
173
204
  ```typescript
@@ -272,8 +303,9 @@ new CandidReactor(config: CandidReactorParameters)
272
303
 
273
304
  | Parameter | Type | Required | Description |
274
305
  | --------------- | ------------------ | -------- | ------------------------------------------------ |
275
- | `canisterId` | `CanisterId` | Yes | The canister ID to interact with |
306
+ | `name` | `string` | Yes | Name of the canister/reactor |
276
307
  | `clientManager` | `ClientManager` | Yes | Client manager from `@ic-reactor/core` |
308
+ | `canisterId` | `CanisterId` | No | The canister ID (optional if using env vars) |
277
309
  | `candid` | `string` | No | Candid service definition (avoids network fetch) |
278
310
  | `idlFactory` | `InterfaceFactory` | No | IDL factory (if already available) |
279
311
  | `actor` | `A` | No | Existing actor instance |
package/dist/adapter.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { CanisterStatus } from "@icp-sdk/core/agent";
2
2
  import { IDL } from "@icp-sdk/core/candid";
3
3
  import { DEFAULT_IC_DIDJS_ID, DEFAULT_LOCAL_DIDJS_ID } from "./constants";
4
- import { importCandidDefinition, noop } from "./utils";
4
+ import { importCandidDefinition } from "./utils";
5
5
  /**
6
6
  * CandidAdapter provides functionality to fetch and parse Candid definitions
7
7
  * from Internet Computer canisters.
@@ -381,4 +381,5 @@ export class CandidAdapter {
381
381
  return this.validateCandid(candidSource);
382
382
  }
383
383
  }
384
+ const noop = () => { };
384
385
  //# sourceMappingURL=adapter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAA;AAC1C,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAA;AAGhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,OAAO,aAAa;IAgBxB;;;;OAIG;IACH,YAAY,EAAE,aAAa,EAAE,eAAe,EAA2B;QApBvE,8DAA8D;QACvD;;;;;WAAkC;QAEzC,2EAA2E;QACpE;;;;;WAA2B;QAElC,wCAAwC;QAChC;;;;;WAA4B;QAEpC,sDAAsD;QAC9C;;;;mBAAsB,KAAK;WAAA;QAEnC,qDAAqD;QAC9C;;;;mBAA0B,IAAI;WAAA;QAQnC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAA;QAClC,IAAI,CAAC,eAAe,GAAG,eAAe,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAA;QAElE,sEAAsE;QACtE,IAAI,CAAC,WAAW,GAAG,aAAa,CAAC,SAAS,CAAC,GAAG,EAAE;YAC9C,IAAI,CAAC,eAAe,EAAE,CAAC;gBACrB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAA;YACjD,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAED;;OAEG;IACH,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAA;IACjC,CAAC;IAED;;OAEG;IACH,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,YAAY,KAAK,SAAS,CAAA;IACxC,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACI,KAAK,CAAC,UAAU,CAAC,MAAsB;QAC5C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,IAAI,CAAC,YAAY,GAAG,MAAM,CAAA;YAC1B,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAA;YAC/B,OAAM;QACR,CAAC;QAED,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC7B,OAAM,CAAC,wBAAwB;QACjC,CAAC;QAED,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAA;QAE/B,IAAI,CAAC;YACH,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAA;YACjD,IAAI,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE,CAAC;gBAC/B,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAA;YACnC,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,yBAAyB,KAAK,EAAE,CAAC,CAAA;QACnD,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,aAAa;QACzB,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAClD,OAAM;QACR,CAAC;QAED,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAA;QAE/B,IAAI,CAAC;YACH,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAA;YACjD,IAAI,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE,CAAC;gBAC/B,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAA;YACnC,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,qCAAqC;YACrC,IAAI,CAAC,YAAY,GAAG,SAAS,CAAA;QAC/B,CAAC;IACH,CAAC;IAED;;OAEG;IACK,iBAAiB;QACvB,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO;YAC/B,CAAC,CAAC,sBAAsB;YACxB,CAAC,CAAC,mBAAmB,CAAA;IACzB,CAAC;IAED,8EAA8E;IAC9E,gEAAgE;IAChE,8EAA8E;IAE9E;;;;;;;;;;;;OAYG;IACI,KAAK,CAAC,mBAAmB,CAC9B,UAAsB;QAEtB,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAA;YAC7D,OAAO,MAAM,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAA;QACnD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,2BAA2B,UAAU,KAAK,KAAK,EAAE,CAAC,CAAA;QACpE,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;OAaG;IACI,KAAK,CAAC,iBAAiB,CAAC,UAAsB;QACnD,kDAAkD;QAClD,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC,KAAK,CACjE,GAAG,EAAE,CAAC,SAAS,CAChB,CAAA;QAED,IAAI,YAAY,EAAE,CAAC;YACjB,OAAO,YAAY,CAAA;QACrB,CAAC;QAED,gDAAgD;QAChD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,KAAK,CAC/D,GAAG,EAAE,CAAC,SAAS,CAChB,CAAA;QAED,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,WAAW,CAAA;QACpB,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAA;IACpE,CAAC;IAED;;;;;;;OAOG;IACI,KAAK,CAAC,iBAAiB,CAC5B,YAAoB;QAEpB,gDAAgD;QAChD,MAAM,IAAI,CAAC,aAAa,EAAE,CAAA;QAE1B,IAAI,UAA8B,CAAA;QAElC,uDAAuD;QACvD,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,IAAI,CAAC;gBACH,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAA;YAC9C,CAAC;YAAC,MAAM,CAAC;gBACP,qCAAqC;YACvC,CAAC;QACH,CAAC;QAED,4CAA4C;QAC5C,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,UAAU,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAA;QACrD,CAAC;QAED,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAA;QAC3D,CAAC;QAED,OAAO,sBAAsB,CAAC,UAAU,CAAC,CAAA;IAC3C,CAAC;IAED,8EAA8E;IAC9E,+DAA+D;IAC/D,8EAA8E;IAE9E;;;;;OAKG;IACI,KAAK,CAAC,iBAAiB,CAC5B,UAAsB;QAEtB,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC;YAC1C,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,UAAU,EAAE,UAAuB;YACnC,KAAK,EAAE,CAAC,QAAQ,CAAC;SAClB,CAAC,CAAA;QAEF,OAAO,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAuB,CAAA;IACnD,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,gBAAgB,CAAC,UAAsB;QAClD,MAAM,aAAa,GACjB,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAA;QAErE,mDAAmD;QACnD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,EAAE;YACrD,UAAU,EAAE,iCAAiC;YAC7C,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC;SACxB,CAAC,CAAA;QAEF,IAAI,OAAO,IAAI,QAAQ,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;YAC1C,MAAM,CAAC,YAAY,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAE/D,CAAA;YACD,OAAO,YAAY,CAAA;QACrB,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;IAC9D,CAAC;IAED,8EAA8E;IAC9E,+DAA+D;IAC/D,8EAA8E;IAE9E;;;;;;OAMG;IACI,YAAY,CAAC,YAAoB;QACtC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;QAChE,CAAC;QAED,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;IAChD,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,aAAa,CACxB,YAAoB,EACpB,eAAwB;QAExB,MAAM,UAAU,GAAG,eAAe,IAAI,IAAI,CAAC,eAAe,CAAA;QAE1D,mDAAmD;QACnD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,EAAE;YAClD,UAAU,EAAE,WAAW;YACvB,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC;SAC5C,CAAC,CAAA;QAEF,IAAI,OAAO,IAAI,QAAQ,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;YAC1C,MAAM,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAElE,CAAA;YACD,OAAO,MAAM,CAAC,CAAC,CAAC,CAAA;QAClB,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;IAC9D,CAAC;IAED;;;;;;OAMG;IACI,cAAc,CAAC,YAAoB;QACxC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;QAChE,CAAC;QAED,OAAO,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,YAAY,CAAC,CAAA;IACpD,CAAC;IAED,8EAA8E;IAC9E,mDAAmD;IACnD,8EAA8E;IAE9E;;OAEG;IACI,KAAK,CAAC,gBAAgB,CAAC,MAAsB;QAClD,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;IAChC,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,qBAAqB,CAAC,UAAsB;QACvD,OAAO,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAA;IAC3C,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,eAAe,CAC1B,UAAsB;QAEtB,OAAO,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAA;IAC3C,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,cAAc,CAAC,UAAsB;QAChD,OAAO,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAA;IAC1C,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,wBAAwB,CACnC,IAAY;QAEZ,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAA;IACrC,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,YAAY,CACvB,YAAoB,EACpB,eAAwB;QAExB,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,eAAe,CAAC,CAAA;IAC1D,CAAC;IAED;;OAEG;IACI,YAAY,CAAC,YAAoB;QACtC,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAA;IACxC,CAAC;IAED;;OAEG;IACI,WAAW,CAAC,YAAoB;QACrC,OAAO,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAA;IAC1C,CAAC;CACF;AAED,MAAM,IAAI,GAAG,GAAG,EAAE,GAAE,CAAC,CAAA"}
@@ -1,18 +1,6 @@
1
- import type { BaseActor, DisplayReactorParameters } from "@ic-reactor/core";
2
- import type { DynamicMethodOptions } from "./types";
3
- import { DisplayReactor } from "@ic-reactor/core";
1
+ import type { CandidDisplayReactorParameters, DynamicMethodOptions } from "./types";
4
2
  import { CandidAdapter } from "./adapter";
5
- import { IDL } from "@icp-sdk/core/candid";
6
- export interface CandidDisplayReactorParameters<A = BaseActor> extends Omit<DisplayReactorParameters<A>, "idlFactory" | "actor"> {
7
- /** The canister ID. */
8
- canisterId: string;
9
- /** The Candid source code. If not provided, the canister's Candid will be fetched. */
10
- candid?: string;
11
- /** The IDL interface factory. */
12
- idlFactory?: IDL.InterfaceFactory;
13
- /** The actor instance. */
14
- actor?: A;
15
- }
3
+ import { BaseActor, TransformKey, DisplayReactor } from "@ic-reactor/core";
16
4
  /**
17
5
  * CandidDisplayReactor combines the display transformation capabilities of
18
6
  * DisplayReactor with dynamic Candid parsing from CandidReactor.
@@ -61,7 +49,8 @@ export interface CandidDisplayReactorParameters<A = BaseActor> extends Omit<Disp
61
49
  * })
62
50
  * ```
63
51
  */
64
- export declare class CandidDisplayReactor<A = BaseActor> extends DisplayReactor<A> {
52
+ export declare class CandidDisplayReactor<A = BaseActor, T extends TransformKey = "display"> extends DisplayReactor<A, T> {
53
+ readonly transform: T;
65
54
  adapter: CandidAdapter;
66
55
  private candidSource?;
67
56
  constructor(config: CandidDisplayReactorParameters<A>);
@@ -1 +1 @@
1
- {"version":3,"file":"display-reactor.d.ts","sourceRoot":"","sources":["../src/display-reactor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAA;AAC3E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAEnD,OAAO,EACL,cAAc,EAGf,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAA;AAM1C,MAAM,WAAW,8BAA8B,CAAC,CAAC,GAAG,SAAS,CAAE,SAAQ,IAAI,CACzE,wBAAwB,CAAC,CAAC,CAAC,EAC3B,YAAY,GAAG,OAAO,CACvB;IACC,uBAAuB;IACvB,UAAU,EAAE,MAAM,CAAA;IAClB,sFAAsF;IACtF,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,iCAAiC;IACjC,UAAU,CAAC,EAAE,GAAG,CAAC,gBAAgB,CAAA;IACjC,0BAA0B;IAC1B,KAAK,CAAC,EAAE,CAAC,CAAA;CACV;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,qBAAa,oBAAoB,CAAC,CAAC,GAAG,SAAS,CAAE,SAAQ,cAAc,CAAC,CAAC,CAAC;IACjE,OAAO,EAAE,aAAa,CAAA;IAC7B,OAAO,CAAC,YAAY,CAAC,CAAQ;gBAEjB,MAAM,EAAE,8BAA8B,CAAC,CAAC,CAAC;IAqBrD;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACU,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAiBxC;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IA4B1B;;;;;;;;;;;;;;;;;;;OAmBG;IACU,cAAc,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAiCzE;;;;;;;;;;OAUG;IACU,eAAe,CAAC,OAAO,EAAE,oBAAoB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5E;;OAEG;IACI,SAAS,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO;IAI/C;;OAEG;IACI,cAAc,IAAI,MAAM,EAAE;IAQjC;;;;;;;;;;;;OAYG;IACU,WAAW,CAAC,CAAC,GAAG,OAAO,EAClC,OAAO,EAAE,oBAAoB,GAAG;QAAE,IAAI,CAAC,EAAE,OAAO,EAAE,CAAA;KAAE,GACnD,OAAO,CAAC,CAAC,CAAC;IAQb;;;;;;;;;;;;;OAaG;IACU,YAAY,CAAC,CAAC,GAAG,OAAO,EACnC,OAAO,EAAE,oBAAoB,GAAG;QAAE,IAAI,CAAC,EAAE,OAAO,EAAE,CAAA;KAAE,GACnD,OAAO,CAAC,CAAC,CAAC;IAQb;;;;;;;;;;;;;;OAcG;IACU,iBAAiB,CAAC,CAAC,GAAG,OAAO,EACxC,OAAO,EAAE,oBAAoB,GAAG;QAAE,IAAI,CAAC,EAAE,OAAO,EAAE,CAAA;KAAE,GACnD,OAAO,CAAC,CAAC,CAAC;CAOd"}
1
+ {"version":3,"file":"display-reactor.d.ts","sourceRoot":"","sources":["../src/display-reactor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,8BAA8B,EAC9B,oBAAoB,EACrB,MAAM,SAAS,CAAA;AAChB,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAEzC,OAAO,EACL,SAAS,EAET,YAAY,EACZ,cAAc,EAGf,MAAM,kBAAkB,CAAA;AAOzB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,qBAAa,oBAAoB,CAC/B,CAAC,GAAG,SAAS,EACb,CAAC,SAAS,YAAY,GAAG,SAAS,CAClC,SAAQ,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC;IAC5B,SAAgB,SAAS,EAAgB,CAAC,CAAA;IACnC,OAAO,EAAE,aAAa,CAAA;IAC7B,OAAO,CAAC,YAAY,CAAC,CAAQ;gBAEjB,MAAM,EAAE,8BAA8B,CAAC,CAAC,CAAC;IA+BrD;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACU,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAiBxC;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IA4B1B;;;;;;;;;;;;;;;;;;;OAmBG;IACU,cAAc,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAiCzE;;;;;;;;;;OAUG;IACU,eAAe,CAAC,OAAO,EAAE,oBAAoB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5E;;OAEG;IACI,SAAS,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO;IAI/C;;OAEG;IACI,cAAc,IAAI,MAAM,EAAE;IAQjC;;;;;;;;;;;;OAYG;IACU,WAAW,CAAC,CAAC,GAAG,OAAO,EAClC,OAAO,EAAE,oBAAoB,GAAG;QAAE,IAAI,CAAC,EAAE,OAAO,EAAE,CAAA;KAAE,GACnD,OAAO,CAAC,CAAC,CAAC;IAQb;;;;;;;;;;;;;OAaG;IACU,YAAY,CAAC,CAAC,GAAG,OAAO,EACnC,OAAO,EAAE,oBAAoB,GAAG;QAAE,IAAI,CAAC,EAAE,OAAO,EAAE,CAAA;KAAE,GACnD,OAAO,CAAC,CAAC,CAAC;IAQb;;;;;;;;;;;;;;OAcG;IACU,iBAAiB,CAAC,CAAC,GAAG,OAAO,EACxC,OAAO,EAAE,oBAAoB,GAAG;QAAE,IAAI,CAAC,EAAE,OAAO,EAAE,CAAA;KAAE,GACnD,OAAO,CAAC,CAAC,CAAC;CAOd"}
@@ -1,5 +1,5 @@
1
- import { DisplayReactor, didToDisplayCodec, didTypeFromArray, } from "@ic-reactor/core";
2
1
  import { CandidAdapter } from "./adapter";
2
+ import { DisplayReactor, didToDisplayCodec, didTypeFromArray, } from "@ic-reactor/core";
3
3
  import { IDL } from "@icp-sdk/core/candid";
4
4
  // ============================================================================
5
5
  // CandidDisplayReactor
@@ -54,13 +54,22 @@ import { IDL } from "@icp-sdk/core/candid";
54
54
  */
55
55
  export class CandidDisplayReactor extends DisplayReactor {
56
56
  constructor(config) {
57
- // If idlFactory/actor are missing, use a dummy one to satisfy DisplayReactor constructor
58
57
  const superConfig = { ...config };
59
- if (!superConfig.idlFactory && !superConfig.actor) {
60
- // Use `any` for IDL to avoid type compatibility issues across package versions
61
- superConfig.idlFactory = (config) => config.IDL.Service({});
58
+ // If funcClass is provided, build an idlFactory from it
59
+ if (config.funcClass && !superConfig.idlFactory) {
60
+ const { methodName, func } = config.funcClass;
61
+ superConfig.idlFactory = ({ IDL: _IDL }) => _IDL.Service({ [methodName]: func });
62
+ }
63
+ if (!superConfig.idlFactory) {
64
+ superConfig.idlFactory = ({ IDL }) => IDL.Service({});
62
65
  }
63
66
  super(superConfig);
67
+ Object.defineProperty(this, "transform", {
68
+ enumerable: true,
69
+ configurable: true,
70
+ writable: true,
71
+ value: "display"
72
+ });
64
73
  Object.defineProperty(this, "adapter", {
65
74
  enumerable: true,
66
75
  configurable: true,
@@ -74,9 +83,14 @@ export class CandidDisplayReactor extends DisplayReactor {
74
83
  value: void 0
75
84
  });
76
85
  this.candidSource = config.candid;
77
- this.adapter = new CandidAdapter({
78
- clientManager: this.clientManager,
79
- });
86
+ if (config.adapter) {
87
+ this.adapter = config.adapter;
88
+ }
89
+ else {
90
+ this.adapter = new CandidAdapter({
91
+ clientManager: this.clientManager,
92
+ });
93
+ }
80
94
  }
81
95
  // ══════════════════════════════════════════════════════════════════════════
82
96
  // INITIALIZATION
@@ -1 +1 @@
1
- {"version":3,"file":"display-reactor.js","sourceRoot":"","sources":["../src/display-reactor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"display-reactor.js","sourceRoot":"","sources":["../src/display-reactor.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,7 +1,9 @@
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";
6
7
  export * from "./display-reactor";
8
+ export * from "./metadata-display-reactor";
7
9
  //# sourceMappingURL=index.d.ts.map
@@ -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"}
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,7 +1,9 @@
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";
6
7
  export * from "./display-reactor";
8
+ export * from "./metadata-display-reactor";
7
9
  //# sourceMappingURL=index.js.map
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"}
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,108 @@
1
+ import type { ActorMethodReturnType, BaseActor, FunctionName } from "@ic-reactor/core";
2
+ import { CandidDisplayReactor } from "./display-reactor";
3
+ import type { CandidDisplayReactorParameters, DynamicMethodOptions } from "./types";
4
+ import { ArgumentsMeta, ArgumentsServiceMeta } from "./visitor/arguments";
5
+ import { MethodMeta, MethodResult, ServiceMeta } from "./visitor/returns";
6
+ /**
7
+ * MetadataDisplayReactor combines visitor-based metadata generation
8
+ * for both input forms and result display.
9
+ *
10
+ * ## Architecture
11
+ *
12
+ * It extends the base Reactor and adds metadata generation capabilities.
13
+ * Unlike DisplayReactor, it does not use a separate codec for transformation.
14
+ * Instead, it uses the metadata visitor to resolve raw values into display-ready structures.
15
+ *
16
+ * ## Usage
17
+ *
18
+ * ```typescript
19
+ * const reactor = new MetadataDisplayReactor({
20
+ * canisterId: "ryjl3-tyaaa-aaaaa-aaaba-cai",
21
+ * clientManager,
22
+ * name: "ICPLedger",
23
+ * })
24
+ *
25
+ * await reactor.initialize()
26
+ *
27
+ * // Get form metadata
28
+ * const argMeta = reactor.getInputMeta("icrc1_transfer")
29
+ * console.log(argMeta.args) // Field descriptors
30
+ * console.log(argMeta.defaults) // Default values
31
+ *
32
+ * // Get result metadata
33
+ * const resultMeta = reactor.getOutputMeta("icrc1_transfer")
34
+ *
35
+ * // Call with display types
36
+ * const result = await reactor.callMethod({
37
+ * functionName: "icrc1_transfer",
38
+ * args: [{ to: { owner: "aaaaa-aa" }, amount: "1000000" }]
39
+ * })
40
+ * ```
41
+ */
42
+ declare module "@ic-reactor/core" {
43
+ interface TransformArgsRegistry<T> {
44
+ metadata: TransformArgsRegistry<T>["display"];
45
+ }
46
+ interface TransformReturnRegistry<T, A = BaseActor> {
47
+ metadata: MethodResult<A>;
48
+ }
49
+ }
50
+ export declare class MetadataDisplayReactor<A = BaseActor> extends CandidDisplayReactor<A, "metadata"> {
51
+ readonly transform: "metadata";
52
+ private argumentMeta;
53
+ private resultMeta;
54
+ private static argVisitor;
55
+ private static resultVisitor;
56
+ constructor(config: CandidDisplayReactorParameters<A>);
57
+ /**
58
+ * Initializes the reactor by parsing Candid and generating all metadata.
59
+ */
60
+ initialize(): Promise<void>;
61
+ /**
62
+ * Generate all metadata from the service interface using visitors.
63
+ */
64
+ private generateMetadata;
65
+ /**
66
+ * Get input field metadata for a method.
67
+ * Use this to generate input forms.
68
+ *
69
+ * @param methodName The method name to get metadata for
70
+ * @returns ArgumentsMeta containing args, defaults, and validation schema
71
+ */
72
+ getInputMeta<M extends FunctionName<A>>(methodName: M): ArgumentsMeta<A, M> | undefined;
73
+ /**
74
+ * Get output field metadata for a method.
75
+ * Use this to render results.
76
+ *
77
+ * @param methodName The method name to get metadata for
78
+ * @returns MethodMeta containing return schema and resolve function
79
+ */
80
+ getOutputMeta<M extends FunctionName<A>>(methodName: M): MethodMeta<A, M> | undefined;
81
+ /**
82
+ * Get all input metadata for all methods.
83
+ */
84
+ getAllInputMeta(): ArgumentsServiceMeta<A> | null;
85
+ /**
86
+ * Get all output metadata for all methods.
87
+ */
88
+ getAllOutputMeta(): ServiceMeta<A> | null;
89
+ /**
90
+ * Register a dynamic method by its Candid signature.
91
+ * After registration, all DisplayReactor methods work with display type transformations.
92
+ */
93
+ registerMethod(options: DynamicMethodOptions): Promise<void>;
94
+ protected transformResult<M extends FunctionName<A>>(methodName: M, result: ActorMethodReturnType<A[M]>): MethodResult<A>;
95
+ /**
96
+ * Perform a dynamic call and return result with metadata.
97
+ *
98
+ * @param options Method registration and call options
99
+ * @returns Object containing the result and metadata
100
+ */
101
+ callDynamicWithMeta<T = unknown>(options: DynamicMethodOptions & {
102
+ args?: unknown[];
103
+ }): Promise<{
104
+ result: T;
105
+ meta: MethodMeta<A>;
106
+ }>;
107
+ }
108
+ //# sourceMappingURL=metadata-display-reactor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata-display-reactor.d.ts","sourceRoot":"","sources":["../src/metadata-display-reactor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EACrB,SAAS,EACT,YAAY,EACb,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AACxD,OAAO,KAAK,EACV,8BAA8B,EAC9B,oBAAoB,EACrB,MAAM,SAAS,CAAA;AAChB,OAAO,EAEL,aAAa,EACb,oBAAoB,EAErB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACL,UAAU,EACV,YAAY,EAEZ,WAAW,EACZ,MAAM,mBAAmB,CAAA;AAM1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,OAAO,QAAQ,kBAAkB,CAAC;IAChC,UAAU,qBAAqB,CAAC,CAAC;QAC/B,QAAQ,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;KAC9C;IACD,UAAU,uBAAuB,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS;QAChD,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,CAAA;KAC1B;CACF;AAED,qBAAa,sBAAsB,CAAC,CAAC,GAAG,SAAS,CAAE,SAAQ,oBAAoB,CAC7E,CAAC,EACD,UAAU,CACX;IACC,SAAyB,SAAS,EAAG,UAAU,CAAS;IAGxD,OAAO,CAAC,YAAY,CAAuC;IAC3D,OAAO,CAAC,UAAU,CAA8B;IAGhD,OAAO,CAAC,MAAM,CAAC,UAAU,CAAqB;IAC9C,OAAO,CAAC,MAAM,CAAC,aAAa,CAA2B;gBAE3C,MAAM,EAAE,8BAA8B,CAAC,CAAC,CAAC;IAarD;;OAEG;IACmB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAOjD;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAqBxB;;;;;;OAMG;IACI,YAAY,CAAC,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,EAC3C,UAAU,EAAE,CAAC,GACZ,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,SAAS;IAIlC;;;;;;OAMG;IACI,aAAa,CAAC,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,EAC5C,UAAU,EAAE,CAAC,GACZ,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,SAAS;IAI/B;;OAEG;IACI,eAAe,IAAI,oBAAoB,CAAC,CAAC,CAAC,GAAG,IAAI;IAIxD;;OAEG;IACI,gBAAgB,IAAI,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI;IAOhD;;;OAGG;IACmB,cAAc,CAClC,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,IAAI,CAAC;cAUG,eAAe,CAAC,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,EAC1D,UAAU,EAAE,CAAC,EACb,MAAM,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAClC,YAAY,CAAC,CAAC,CAAC;IAclB;;;;;OAKG;IACU,mBAAmB,CAAC,CAAC,GAAG,OAAO,EAC1C,OAAO,EAAE,oBAAoB,GAAG;QAAE,IAAI,CAAC,EAAE,OAAO,EAAE,CAAA;KAAE,GACnD,OAAO,CAAC;QAAE,MAAM,EAAE,CAAC,CAAC;QAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAA;KAAE,CAAC;CAY/C"}
@@ -0,0 +1,141 @@
1
+ import { CandidDisplayReactor } from "./display-reactor";
2
+ import { FieldVisitor, MetadataError, } from "./visitor/arguments";
3
+ import { ResultFieldVisitor, } from "./visitor/returns";
4
+ export class MetadataDisplayReactor extends CandidDisplayReactor {
5
+ constructor(config) {
6
+ super(config);
7
+ Object.defineProperty(this, "transform", {
8
+ enumerable: true,
9
+ configurable: true,
10
+ writable: true,
11
+ value: "metadata"
12
+ });
13
+ // Metadata storage
14
+ Object.defineProperty(this, "argumentMeta", {
15
+ enumerable: true,
16
+ configurable: true,
17
+ writable: true,
18
+ value: null
19
+ });
20
+ Object.defineProperty(this, "resultMeta", {
21
+ enumerable: true,
22
+ configurable: true,
23
+ writable: true,
24
+ value: null
25
+ });
26
+ // If funcClass was provided, metadata is ready immediately
27
+ if (config.funcClass || config.idlFactory) {
28
+ this.generateMetadata();
29
+ }
30
+ }
31
+ // ══════════════════════════════════════════════════════════════════════════
32
+ // INITIALIZATION
33
+ // ══════════════════════════════════════════════════════════════════════════
34
+ /**
35
+ * Initializes the reactor by parsing Candid and generating all metadata.
36
+ */
37
+ async initialize() {
38
+ await super.initialize();
39
+ // Generate metadata using visitors
40
+ this.generateMetadata();
41
+ }
42
+ /**
43
+ * Generate all metadata from the service interface using visitors.
44
+ */
45
+ generateMetadata() {
46
+ const service = this.getServiceInterface();
47
+ if (!service)
48
+ return;
49
+ // Generate argument metadata
50
+ this.argumentMeta = service.accept(MetadataDisplayReactor.argVisitor, null);
51
+ // Generate result metadata
52
+ this.resultMeta = service.accept(MetadataDisplayReactor.resultVisitor, null);
53
+ }
54
+ // ══════════════════════════════════════════════════════════════════════════
55
+ // METADATA ACCESS
56
+ // ══════════════════════════════════════════════════════════════════════════
57
+ /**
58
+ * Get input field metadata for a method.
59
+ * Use this to generate input forms.
60
+ *
61
+ * @param methodName The method name to get metadata for
62
+ * @returns ArgumentsMeta containing args, defaults, and validation schema
63
+ */
64
+ getInputMeta(methodName) {
65
+ return this.argumentMeta?.[methodName];
66
+ }
67
+ /**
68
+ * Get output field metadata for a method.
69
+ * Use this to render results.
70
+ *
71
+ * @param methodName The method name to get metadata for
72
+ * @returns MethodMeta containing return schema and resolve function
73
+ */
74
+ getOutputMeta(methodName) {
75
+ return this.resultMeta?.[methodName];
76
+ }
77
+ /**
78
+ * Get all input metadata for all methods.
79
+ */
80
+ getAllInputMeta() {
81
+ return this.argumentMeta;
82
+ }
83
+ /**
84
+ * Get all output metadata for all methods.
85
+ */
86
+ getAllOutputMeta() {
87
+ return this.resultMeta;
88
+ }
89
+ // ══════════════════════════════════════════════════════════════════════════
90
+ // DYNAMIC METHOD REGISTRATION
91
+ // ══════════════════════════════════════════════════════════════════════════
92
+ /**
93
+ * Register a dynamic method by its Candid signature.
94
+ * After registration, all DisplayReactor methods work with display type transformations.
95
+ */
96
+ async registerMethod(options) {
97
+ await super.registerMethod(options);
98
+ // Regenerate metadata
99
+ this.generateMetadata();
100
+ }
101
+ // ══════════════════════════════════════════════════════════════════════════
102
+ // DYNAMIC CALL SHORTCUTS
103
+ // ══════════════════════════════════════════════════════════════════════════
104
+ transformResult(methodName, result) {
105
+ // Get metadata and generate resolved result
106
+ const meta = this.getOutputMeta(methodName);
107
+ if (!meta) {
108
+ throw new MetadataError(`No output metadata found for method`, String(methodName), "method");
109
+ }
110
+ return meta.resolve(result);
111
+ }
112
+ /**
113
+ * Perform a dynamic call and return result with metadata.
114
+ *
115
+ * @param options Method registration and call options
116
+ * @returns Object containing the result and metadata
117
+ */
118
+ async callDynamicWithMeta(options) {
119
+ await this.registerMethod(options);
120
+ const result = (await this.callMethod({
121
+ functionName: options.functionName,
122
+ args: options.args,
123
+ }));
124
+ const meta = this.getOutputMeta(options.functionName);
125
+ return { result, meta };
126
+ }
127
+ }
128
+ // Visitors (stateless, can be reused)
129
+ Object.defineProperty(MetadataDisplayReactor, "argVisitor", {
130
+ enumerable: true,
131
+ configurable: true,
132
+ writable: true,
133
+ value: new FieldVisitor()
134
+ });
135
+ Object.defineProperty(MetadataDisplayReactor, "resultVisitor", {
136
+ enumerable: true,
137
+ configurable: true,
138
+ writable: true,
139
+ value: new ResultFieldVisitor()
140
+ });
141
+ //# sourceMappingURL=metadata-display-reactor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata-display-reactor.js","sourceRoot":"","sources":["../src/metadata-display-reactor.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AAKxD,OAAO,EACL,YAAY,EAGZ,aAAa,GACd,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAGL,kBAAkB,GAEnB,MAAM,mBAAmB,CAAA;AAmD1B,MAAM,OAAO,sBAAsC,SAAQ,oBAG1D;IAWC,YAAY,MAAyC;QACnD,KAAK,CAAC,MAAM,CAAC,CAAA;QAXU;;;;mBAAY,UAAmB;WAAA;QAExD,mBAAmB;QACX;;;;mBAA+C,IAAI;WAAA;QACnD;;;;mBAAoC,IAAI;WAAA;QAS9C,2DAA2D;QAC3D,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YAC1C,IAAI,CAAC,gBAAgB,EAAE,CAAA;QACzB,CAAC;IACH,CAAC;IAED,6EAA6E;IAC7E,iBAAiB;IACjB,6EAA6E;IAE7E;;OAEG;IACa,KAAK,CAAC,UAAU;QAC9B,MAAM,KAAK,CAAC,UAAU,EAAE,CAAA;QAExB,mCAAmC;QACnC,IAAI,CAAC,gBAAgB,EAAE,CAAA;IACzB,CAAC;IAED;;OAEG;IACK,gBAAgB;QACtB,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAA;QAC1C,IAAI,CAAC,OAAO;YAAE,OAAM;QAEpB,6BAA6B;QAC7B,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,MAAM,CAChC,sBAAsB,CAAC,UAAU,EACjC,IAAW,CACe,CAAA;QAE5B,2BAA2B;QAC3B,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,MAAM,CAC9B,sBAAsB,CAAC,aAAa,EACpC,IAAW,CACM,CAAA;IACrB,CAAC;IAED,6EAA6E;IAC7E,kBAAkB;IAClB,6EAA6E;IAE7E;;;;;;OAMG;IACI,YAAY,CACjB,UAAa;QAEb,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,UAAU,CAAC,CAAA;IACxC,CAAC;IAED;;;;;;OAMG;IACI,aAAa,CAClB,UAAa;QAEb,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,UAAU,CAAC,CAAA;IACtC,CAAC;IAED;;OAEG;IACI,eAAe;QACpB,OAAO,IAAI,CAAC,YAAY,CAAA;IAC1B,CAAC;IAED;;OAEG;IACI,gBAAgB;QACrB,OAAO,IAAI,CAAC,UAAU,CAAA;IACxB,CAAC;IAED,6EAA6E;IAC7E,8BAA8B;IAC9B,6EAA6E;IAC7E;;;OAGG;IACa,KAAK,CAAC,cAAc,CAClC,OAA6B;QAE7B,MAAM,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;QAEnC,sBAAsB;QACtB,IAAI,CAAC,gBAAgB,EAAE,CAAA;IACzB,CAAC;IAED,6EAA6E;IAC7E,yBAAyB;IACzB,6EAA6E;IAC1D,eAAe,CAChC,UAAa,EACb,MAAmC;QAEnC,4CAA4C;QAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAA;QAC3C,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,aAAa,CACrB,qCAAqC,EACrC,MAAM,CAAC,UAAU,CAAC,EAClB,QAAQ,CACT,CAAA;QACH,CAAC;QAED,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IAC7B,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,mBAAmB,CAC9B,OAAoD;QAEpD,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;QAElC,MAAM,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC;YACpC,YAAY,EAAE,OAAO,CAAC,YAAmB;YACzC,IAAI,EAAE,OAAO,CAAC,IAAW;SAC1B,CAAC,CAAM,CAAA;QAER,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,YAAmB,CAAE,CAAA;QAE7D,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;IACzB,CAAC;;AAlJD,sCAAsC;AACvB;;;;WAAa,IAAI,YAAY,EAAE;EAArB,CAAqB;AAC/B;;;;WAAgB,IAAI,kBAAkB,EAAE;EAA3B,CAA2B"}
@@ -1 +1 @@
1
- {"version":3,"file":"reactor.d.ts","sourceRoot":"","sources":["../src/reactor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAqB,MAAM,kBAAkB,CAAA;AACpE,OAAO,KAAK,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAE5E,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAGzC,qBAAa,aAAa,CAAC,CAAC,GAAG,SAAS,CAAE,SAAQ,OAAO,CAAC,CAAC,CAAC;IACnD,OAAO,EAAE,aAAa,CAAA;IAC7B,OAAO,CAAC,YAAY,CAAC,CAAQ;gBAEjB,MAAM,EAAE,uBAAuB;IAgB3C;;;;;OAKG;IACU,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAcxC;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACU,cAAc,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IA8BzE;;OAEG;IACU,eAAe,CAAC,OAAO,EAAE,oBAAoB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5E;;OAEG;IACI,SAAS,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO;IAI/C;;OAEG;IACI,cAAc,IAAI,MAAM,EAAE;IAQjC;;;;;;;;;;;;OAYG;IACU,WAAW,CAAC,CAAC,GAAG,OAAO,EAClC,OAAO,EAAE,oBAAoB,GAAG;QAAE,IAAI,CAAC,EAAE,OAAO,EAAE,CAAA;KAAE,GACnD,OAAO,CAAC,CAAC,CAAC;IAQb;;;;;;;;;;;;OAYG;IACU,YAAY,CAAC,CAAC,GAAG,OAAO,EACnC,OAAO,EAAE,oBAAoB,GAAG;QAAE,IAAI,CAAC,EAAE,OAAO,EAAE,CAAA;KAAE,GACnD,OAAO,CAAC,CAAC,CAAC;IAQb;;;;;;;;;;;;OAYG;IACU,iBAAiB,CAAC,CAAC,GAAG,OAAO,EACxC,OAAO,EAAE,oBAAoB,GAAG;QAAE,IAAI,CAAC,EAAE,OAAO,EAAE,CAAA;KAAE,GACnD,OAAO,CAAC,CAAC,CAAC;CAOd"}
1
+ {"version":3,"file":"reactor.d.ts","sourceRoot":"","sources":["../src/reactor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAqB,MAAM,kBAAkB,CAAA;AACpE,OAAO,KAAK,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAE5E,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAGzC,qBAAa,aAAa,CAAC,CAAC,GAAG,SAAS,CAAE,SAAQ,OAAO,CAAC,CAAC,CAAC;IACnD,OAAO,EAAE,aAAa,CAAA;IAC7B,OAAO,CAAC,YAAY,CAAC,CAAQ;gBAEjB,MAAM,EAAE,uBAAuB;IAmB3C;;;;;OAKG;IACU,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAcxC;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACU,cAAc,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IA8BzE;;OAEG;IACU,eAAe,CAAC,OAAO,EAAE,oBAAoB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5E;;OAEG;IACI,SAAS,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO;IAI/C;;OAEG;IACI,cAAc,IAAI,MAAM,EAAE;IAQjC;;;;;;;;;;;;OAYG;IACU,WAAW,CAAC,CAAC,GAAG,OAAO,EAClC,OAAO,EAAE,oBAAoB,GAAG;QAAE,IAAI,CAAC,EAAE,OAAO,EAAE,CAAA;KAAE,GACnD,OAAO,CAAC,CAAC,CAAC;IAQb;;;;;;;;;;;;OAYG;IACU,YAAY,CAAC,CAAC,GAAG,OAAO,EACnC,OAAO,EAAE,oBAAoB,GAAG;QAAE,IAAI,CAAC,EAAE,OAAO,EAAE,CAAA;KAAE,GACnD,OAAO,CAAC,CAAC,CAAC;IAQb;;;;;;;;;;;;OAYG;IACU,iBAAiB,CAAC,CAAC,GAAG,OAAO,EACxC,OAAO,EAAE,oBAAoB,GAAG;QAAE,IAAI,CAAC,EAAE,OAAO,EAAE,CAAA;KAAE,GACnD,OAAO,CAAC,CAAC,CAAC;CAOd"}
package/dist/reactor.js CHANGED
@@ -3,10 +3,9 @@ import { CandidAdapter } from "./adapter";
3
3
  import { IDL } from "@icp-sdk/core/candid";
4
4
  export class CandidReactor extends Reactor {
5
5
  constructor(config) {
6
- // If idlFactory/actor are missing, use a dummy one to satisfy Reactor constructor
7
6
  const superConfig = { ...config };
8
7
  if (!superConfig.idlFactory) {
9
- superConfig.idlFactory = (config) => config.IDL.Service({});
8
+ superConfig.idlFactory = ({ IDL }) => IDL.Service({});
10
9
  }
11
10
  super(superConfig);
12
11
  Object.defineProperty(this, "adapter", {
@@ -22,9 +21,14 @@ export class CandidReactor extends Reactor {
22
21
  value: void 0
23
22
  });
24
23
  this.candidSource = config.candid;
25
- this.adapter = new CandidAdapter({
26
- clientManager: this.clientManager,
27
- });
24
+ if (config.adapter) {
25
+ this.adapter = config.adapter;
26
+ }
27
+ else {
28
+ this.adapter = new CandidAdapter({
29
+ clientManager: this.clientManager,
30
+ });
31
+ }
28
32
  }
29
33
  /**
30
34
  * Initializes the reactor by parsing the provided Candid string or fetching it from the network.
@@ -1 +1 @@
1
- {"version":3,"file":"reactor.js","sourceRoot":"","sources":["../src/reactor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reactor.js","sourceRoot":"","sources":["../src/reactor.ts"],"names":[],"mappings":"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"}