@ic-reactor/candid 3.0.0-beta.0 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) 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 +179 -0
  5. package/dist/display-reactor.d.ts.map +1 -0
  6. package/dist/display-reactor.js +294 -0
  7. package/dist/display-reactor.js.map +1 -0
  8. package/dist/index.d.ts +4 -1
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +4 -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 +1 -1
  17. package/dist/reactor.d.ts.map +1 -1
  18. package/dist/reactor.js +10 -6
  19. package/dist/reactor.js.map +1 -1
  20. package/dist/types.d.ts +38 -7
  21. package/dist/types.d.ts.map +1 -1
  22. package/dist/utils.d.ts +4 -4
  23. package/dist/utils.d.ts.map +1 -1
  24. package/dist/utils.js +33 -10
  25. package/dist/utils.js.map +1 -1
  26. package/dist/visitor/arguments/helpers.d.ts +55 -0
  27. package/dist/visitor/arguments/helpers.d.ts.map +1 -0
  28. package/dist/visitor/arguments/helpers.js +123 -0
  29. package/dist/visitor/arguments/helpers.js.map +1 -0
  30. package/dist/visitor/arguments/index.d.ts +101 -0
  31. package/dist/visitor/arguments/index.d.ts.map +1 -0
  32. package/dist/visitor/arguments/index.js +779 -0
  33. package/dist/visitor/arguments/index.js.map +1 -0
  34. package/dist/visitor/arguments/types.d.ts +268 -0
  35. package/dist/visitor/arguments/types.d.ts.map +1 -0
  36. package/dist/visitor/arguments/types.js +26 -0
  37. package/dist/visitor/arguments/types.js.map +1 -0
  38. package/dist/visitor/constants.d.ts +4 -0
  39. package/dist/visitor/constants.d.ts.map +1 -0
  40. package/dist/visitor/constants.js +73 -0
  41. package/dist/visitor/constants.js.map +1 -0
  42. package/dist/visitor/helpers.d.ts +30 -0
  43. package/dist/visitor/helpers.d.ts.map +1 -0
  44. package/dist/visitor/helpers.js +204 -0
  45. package/dist/visitor/helpers.js.map +1 -0
  46. package/dist/visitor/index.d.ts +5 -0
  47. package/dist/visitor/index.d.ts.map +1 -0
  48. package/dist/visitor/index.js +5 -0
  49. package/dist/visitor/index.js.map +1 -0
  50. package/dist/visitor/returns/index.d.ts +38 -0
  51. package/dist/visitor/returns/index.d.ts.map +1 -0
  52. package/dist/visitor/returns/index.js +460 -0
  53. package/dist/visitor/returns/index.js.map +1 -0
  54. package/dist/visitor/returns/types.d.ts +202 -0
  55. package/dist/visitor/returns/types.d.ts.map +1 -0
  56. package/dist/visitor/returns/types.js +2 -0
  57. package/dist/visitor/returns/types.js.map +1 -0
  58. package/dist/visitor/types.d.ts +19 -0
  59. package/dist/visitor/types.d.ts.map +1 -0
  60. package/dist/visitor/types.js +2 -0
  61. package/dist/visitor/types.js.map +1 -0
  62. package/package.json +21 -16
  63. package/src/adapter.ts +446 -0
  64. package/src/constants.ts +11 -0
  65. package/src/display-reactor.ts +337 -0
  66. package/src/index.ts +8 -0
  67. package/src/metadata-display-reactor.ts +230 -0
  68. package/src/reactor.ts +199 -0
  69. package/src/types.ts +127 -0
  70. package/src/utils.ts +60 -0
  71. package/src/visitor/arguments/helpers.ts +153 -0
  72. package/src/visitor/arguments/index.test.ts +1439 -0
  73. package/src/visitor/arguments/index.ts +980 -0
  74. package/src/visitor/arguments/schema.test.ts +324 -0
  75. package/src/visitor/arguments/types.ts +385 -0
  76. package/src/visitor/constants.ts +76 -0
  77. package/src/visitor/helpers.test.ts +274 -0
  78. package/src/visitor/helpers.ts +223 -0
  79. package/src/visitor/index.ts +4 -0
  80. package/src/visitor/returns/index.test.ts +2377 -0
  81. package/src/visitor/returns/index.ts +658 -0
  82. package/src/visitor/returns/types.ts +302 -0
  83. 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"}
@@ -0,0 +1,179 @@
1
+ import type { CandidDisplayReactorParameters, DynamicMethodOptions } from "./types";
2
+ import { CandidAdapter } from "./adapter";
3
+ import { BaseActor, TransformKey, DisplayReactor } from "@ic-reactor/core";
4
+ /**
5
+ * CandidDisplayReactor combines the display transformation capabilities of
6
+ * DisplayReactor with dynamic Candid parsing from CandidReactor.
7
+ *
8
+ * This class provides:
9
+ * - **Display transformations**: Automatic type conversion between Candid and
10
+ * display-friendly types (bigint ↔ string, Principal ↔ string, etc.)
11
+ * - **Validation**: Optional argument validation with display types
12
+ * - **Dynamic Candid parsing**: Initialize from Candid source or fetch from network
13
+ * - **Dynamic method registration**: Register methods at runtime with Candid signatures
14
+ *
15
+ * @typeParam A - The actor service type
16
+ *
17
+ * @example
18
+ * ```typescript
19
+ * import { CandidDisplayReactor } from "@ic-reactor/candid"
20
+ *
21
+ * const reactor = new CandidDisplayReactor({
22
+ * clientManager,
23
+ * canisterId: "ryjl3-tyaaa-aaaaa-aaaba-cai",
24
+ * })
25
+ *
26
+ * // Initialize from network (fetches Candid from canister)
27
+ * await reactor.initialize()
28
+ *
29
+ * // Or provide Candid source directly
30
+ * const reactor2 = new CandidDisplayReactor({
31
+ * clientManager,
32
+ * canisterId: "...",
33
+ * candid: `service : { greet : (text) -> (text) query }`
34
+ * })
35
+ * await reactor2.initialize()
36
+ *
37
+ * // Call methods with display types (strings instead of bigint/Principal)
38
+ * const result = await reactor.callMethod({
39
+ * functionName: "transfer",
40
+ * args: [{ to: "aaaaa-aa", amount: "1000000" }] // strings!
41
+ * })
42
+ *
43
+ * // Add validation
44
+ * reactor.registerValidator("transfer", ([input]) => {
45
+ * if (!input.to) {
46
+ * return { success: false, issues: [{ path: ["to"], message: "Required" }] }
47
+ * }
48
+ * return { success: true }
49
+ * })
50
+ * ```
51
+ */
52
+ export declare class CandidDisplayReactor<A = BaseActor, T extends TransformKey = "display"> extends DisplayReactor<A, T> {
53
+ readonly transform: T;
54
+ adapter: CandidAdapter;
55
+ private candidSource?;
56
+ constructor(config: CandidDisplayReactorParameters<A>);
57
+ /**
58
+ * Initializes the reactor by parsing the provided Candid string or fetching it from the network.
59
+ * This updates the internal service definition with the actual canister interface.
60
+ *
61
+ * After initialization, all DisplayReactor methods work with display type transformations.
62
+ *
63
+ * @example
64
+ * ```typescript
65
+ * const reactor = new CandidDisplayReactor({
66
+ * clientManager,
67
+ * canisterId: "ryjl3-tyaaa-aaaaa-aaaba-cai",
68
+ * })
69
+ *
70
+ * // Fetches Candid from the canister and initializes
71
+ * await reactor.initialize()
72
+ *
73
+ * // Now you can call methods with display types
74
+ * const balance = await reactor.callMethod({
75
+ * functionName: "icrc1_balance_of",
76
+ * args: [{ owner: "aaaaa-aa" }] // Principal as string!
77
+ * })
78
+ * ```
79
+ */
80
+ initialize(): Promise<void>;
81
+ /**
82
+ * Re-initialize the display codecs after the service has been updated.
83
+ * This is called automatically after initialize() or registerMethod().
84
+ */
85
+ private reinitializeCodecs;
86
+ /**
87
+ * Register a dynamic method by its Candid signature.
88
+ * After registration, all DisplayReactor methods work with display type transformations.
89
+ *
90
+ * @example
91
+ * ```typescript
92
+ * // Register a method
93
+ * await reactor.registerMethod({
94
+ * functionName: "icrc1_balance_of",
95
+ * candid: "(record { owner : principal }) -> (nat) query"
96
+ * })
97
+ *
98
+ * // Now use with display types!
99
+ * const balance = await reactor.callMethod({
100
+ * functionName: "icrc1_balance_of",
101
+ * args: [{ owner: "aaaaa-aa" }] // Principal as string
102
+ * })
103
+ * // balance is string (not bigint) due to display transformation
104
+ * ```
105
+ */
106
+ registerMethod(options: DynamicMethodOptions): Promise<void>;
107
+ /**
108
+ * Register multiple methods at once.
109
+ *
110
+ * @example
111
+ * ```typescript
112
+ * await reactor.registerMethods([
113
+ * { functionName: "icrc1_balance_of", candid: "(record { owner : principal }) -> (nat) query" },
114
+ * { functionName: "icrc1_transfer", candid: "(record { to : principal; amount : nat }) -> (variant { Ok : nat; Err : text })" }
115
+ * ])
116
+ * ```
117
+ */
118
+ registerMethods(methods: DynamicMethodOptions[]): Promise<void>;
119
+ /**
120
+ * Check if a method is registered (either from initialize or registerMethod).
121
+ */
122
+ hasMethod(functionName: string): boolean;
123
+ /**
124
+ * Get all registered method names.
125
+ */
126
+ getMethodNames(): string[];
127
+ /**
128
+ * Perform a dynamic update call in one step with display type transformations.
129
+ * Registers the method if not already registered, then calls it.
130
+ *
131
+ * @example
132
+ * ```typescript
133
+ * const result = await reactor.callDynamic({
134
+ * functionName: "transfer",
135
+ * candid: "(record { to : principal; amount : nat }) -> (variant { Ok : nat; Err : text })",
136
+ * args: [{ to: "aaaaa-aa", amount: "100" }] // Display types!
137
+ * })
138
+ * ```
139
+ */
140
+ callDynamic<T = unknown>(options: DynamicMethodOptions & {
141
+ args?: unknown[];
142
+ }): Promise<T>;
143
+ /**
144
+ * Perform a dynamic query call in one step with display type transformations.
145
+ * Registers the method if not already registered, then calls it.
146
+ *
147
+ * @example
148
+ * ```typescript
149
+ * const balance = await reactor.queryDynamic({
150
+ * functionName: "icrc1_balance_of",
151
+ * candid: "(record { owner : principal }) -> (nat) query",
152
+ * args: [{ owner: "aaaaa-aa" }] // Display types!
153
+ * })
154
+ * // balance is string (not BigInt)
155
+ * ```
156
+ */
157
+ queryDynamic<T = unknown>(options: DynamicMethodOptions & {
158
+ args?: unknown[];
159
+ }): Promise<T>;
160
+ /**
161
+ * Fetch with dynamic Candid and TanStack Query caching.
162
+ * Registers the method if not already registered, then fetches with caching.
163
+ * Results are transformed to display types.
164
+ *
165
+ * @example
166
+ * ```typescript
167
+ * const balance = await reactor.fetchQueryDynamic({
168
+ * functionName: "icrc1_balance_of",
169
+ * candid: "(record { owner : principal }) -> (nat) query",
170
+ * args: [{ owner: "aaaaa-aa" }]
171
+ * })
172
+ * // Subsequent calls with same args return cached result
173
+ * ```
174
+ */
175
+ fetchQueryDynamic<T = unknown>(options: DynamicMethodOptions & {
176
+ args?: unknown[];
177
+ }): Promise<T>;
178
+ }
179
+ //# sourceMappingURL=display-reactor.d.ts.map
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,294 @@
1
+ import { CandidAdapter } from "./adapter";
2
+ import { DisplayReactor, didToDisplayCodec, didTypeFromArray, } from "@ic-reactor/core";
3
+ import { IDL } from "@icp-sdk/core/candid";
4
+ // ============================================================================
5
+ // CandidDisplayReactor
6
+ // ============================================================================
7
+ /**
8
+ * CandidDisplayReactor combines the display transformation capabilities of
9
+ * DisplayReactor with dynamic Candid parsing from CandidReactor.
10
+ *
11
+ * This class provides:
12
+ * - **Display transformations**: Automatic type conversion between Candid and
13
+ * display-friendly types (bigint ↔ string, Principal ↔ string, etc.)
14
+ * - **Validation**: Optional argument validation with display types
15
+ * - **Dynamic Candid parsing**: Initialize from Candid source or fetch from network
16
+ * - **Dynamic method registration**: Register methods at runtime with Candid signatures
17
+ *
18
+ * @typeParam A - The actor service type
19
+ *
20
+ * @example
21
+ * ```typescript
22
+ * import { CandidDisplayReactor } from "@ic-reactor/candid"
23
+ *
24
+ * const reactor = new CandidDisplayReactor({
25
+ * clientManager,
26
+ * canisterId: "ryjl3-tyaaa-aaaaa-aaaba-cai",
27
+ * })
28
+ *
29
+ * // Initialize from network (fetches Candid from canister)
30
+ * await reactor.initialize()
31
+ *
32
+ * // Or provide Candid source directly
33
+ * const reactor2 = new CandidDisplayReactor({
34
+ * clientManager,
35
+ * canisterId: "...",
36
+ * candid: `service : { greet : (text) -> (text) query }`
37
+ * })
38
+ * await reactor2.initialize()
39
+ *
40
+ * // Call methods with display types (strings instead of bigint/Principal)
41
+ * const result = await reactor.callMethod({
42
+ * functionName: "transfer",
43
+ * args: [{ to: "aaaaa-aa", amount: "1000000" }] // strings!
44
+ * })
45
+ *
46
+ * // Add validation
47
+ * reactor.registerValidator("transfer", ([input]) => {
48
+ * if (!input.to) {
49
+ * return { success: false, issues: [{ path: ["to"], message: "Required" }] }
50
+ * }
51
+ * return { success: true }
52
+ * })
53
+ * ```
54
+ */
55
+ export class CandidDisplayReactor extends DisplayReactor {
56
+ constructor(config) {
57
+ const superConfig = { ...config };
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({});
65
+ }
66
+ super(superConfig);
67
+ Object.defineProperty(this, "transform", {
68
+ enumerable: true,
69
+ configurable: true,
70
+ writable: true,
71
+ value: "display"
72
+ });
73
+ Object.defineProperty(this, "adapter", {
74
+ enumerable: true,
75
+ configurable: true,
76
+ writable: true,
77
+ value: void 0
78
+ });
79
+ Object.defineProperty(this, "candidSource", {
80
+ enumerable: true,
81
+ configurable: true,
82
+ writable: true,
83
+ value: void 0
84
+ });
85
+ this.candidSource = config.candid;
86
+ if (config.adapter) {
87
+ this.adapter = config.adapter;
88
+ }
89
+ else {
90
+ this.adapter = new CandidAdapter({
91
+ clientManager: this.clientManager,
92
+ });
93
+ }
94
+ }
95
+ // ══════════════════════════════════════════════════════════════════════════
96
+ // INITIALIZATION
97
+ // ══════════════════════════════════════════════════════════════════════════
98
+ /**
99
+ * Initializes the reactor by parsing the provided Candid string or fetching it from the network.
100
+ * This updates the internal service definition with the actual canister interface.
101
+ *
102
+ * After initialization, all DisplayReactor methods work with display type transformations.
103
+ *
104
+ * @example
105
+ * ```typescript
106
+ * const reactor = new CandidDisplayReactor({
107
+ * clientManager,
108
+ * canisterId: "ryjl3-tyaaa-aaaaa-aaaba-cai",
109
+ * })
110
+ *
111
+ * // Fetches Candid from the canister and initializes
112
+ * await reactor.initialize()
113
+ *
114
+ * // Now you can call methods with display types
115
+ * const balance = await reactor.callMethod({
116
+ * functionName: "icrc1_balance_of",
117
+ * args: [{ owner: "aaaaa-aa" }] // Principal as string!
118
+ * })
119
+ * ```
120
+ */
121
+ async initialize() {
122
+ let idlFactory;
123
+ if (this.candidSource) {
124
+ const definition = await this.adapter.parseCandidSource(this.candidSource);
125
+ idlFactory = definition.idlFactory;
126
+ }
127
+ else {
128
+ const definition = await this.adapter.getCandidDefinition(this.canisterId);
129
+ idlFactory = definition.idlFactory;
130
+ }
131
+ this.service = idlFactory({ IDL });
132
+ // Re-initialize codecs after service is updated
133
+ this.reinitializeCodecs();
134
+ }
135
+ /**
136
+ * Re-initialize the display codecs after the service has been updated.
137
+ * This is called automatically after initialize() or registerMethod().
138
+ */
139
+ reinitializeCodecs() {
140
+ const fields = this.getServiceInterface()?._fields;
141
+ if (!fields)
142
+ return;
143
+ // Access the private codecs map from DisplayReactor
144
+ const codecs = this.codecs;
145
+ for (const [methodName, funcType] of fields) {
146
+ // Skip if already exists
147
+ if (codecs.has(methodName))
148
+ continue;
149
+ const argsIdlType = didTypeFromArray(funcType.argTypes);
150
+ const retIdlType = didTypeFromArray(funcType.retTypes);
151
+ codecs.set(methodName, {
152
+ args: didToDisplayCodec(argsIdlType),
153
+ result: didToDisplayCodec(retIdlType),
154
+ });
155
+ }
156
+ }
157
+ // ══════════════════════════════════════════════════════════════════════════
158
+ // DYNAMIC METHOD REGISTRATION
159
+ // ══════════════════════════════════════════════════════════════════════════
160
+ /**
161
+ * Register a dynamic method by its Candid signature.
162
+ * After registration, all DisplayReactor methods work with display type transformations.
163
+ *
164
+ * @example
165
+ * ```typescript
166
+ * // Register a method
167
+ * await reactor.registerMethod({
168
+ * functionName: "icrc1_balance_of",
169
+ * candid: "(record { owner : principal }) -> (nat) query"
170
+ * })
171
+ *
172
+ * // Now use with display types!
173
+ * const balance = await reactor.callMethod({
174
+ * functionName: "icrc1_balance_of",
175
+ * args: [{ owner: "aaaaa-aa" }] // Principal as string
176
+ * })
177
+ * // balance is string (not bigint) due to display transformation
178
+ * ```
179
+ */
180
+ async registerMethod(options) {
181
+ const { functionName, candid } = options;
182
+ // Check if method already registered
183
+ const existing = this.service._fields.find(([name]) => name === functionName);
184
+ if (existing)
185
+ return;
186
+ // Parse the Candid signature
187
+ const serviceSource = candid.includes("service :")
188
+ ? candid
189
+ : `service : { ${functionName} : ${candid}; }`;
190
+ const { idlFactory } = await this.adapter.parseCandidSource(serviceSource);
191
+ const parsedService = idlFactory({ IDL });
192
+ const funcField = parsedService._fields.find(([name]) => name === functionName);
193
+ if (!funcField) {
194
+ throw new Error(`Method "${functionName}" not found in the provided Candid signature`);
195
+ }
196
+ // Inject into our service
197
+ this.service._fields.push(funcField);
198
+ // Re-initialize codecs for the new method
199
+ this.reinitializeCodecs();
200
+ }
201
+ /**
202
+ * Register multiple methods at once.
203
+ *
204
+ * @example
205
+ * ```typescript
206
+ * await reactor.registerMethods([
207
+ * { functionName: "icrc1_balance_of", candid: "(record { owner : principal }) -> (nat) query" },
208
+ * { functionName: "icrc1_transfer", candid: "(record { to : principal; amount : nat }) -> (variant { Ok : nat; Err : text })" }
209
+ * ])
210
+ * ```
211
+ */
212
+ async registerMethods(methods) {
213
+ await Promise.all(methods.map((m) => this.registerMethod(m)));
214
+ }
215
+ /**
216
+ * Check if a method is registered (either from initialize or registerMethod).
217
+ */
218
+ hasMethod(functionName) {
219
+ return this.service._fields.some(([name]) => name === functionName);
220
+ }
221
+ /**
222
+ * Get all registered method names.
223
+ */
224
+ getMethodNames() {
225
+ return this.service._fields.map(([name]) => name);
226
+ }
227
+ // ══════════════════════════════════════════════════════════════════════════
228
+ // DYNAMIC CALL SHORTCUTS
229
+ // ══════════════════════════════════════════════════════════════════════════
230
+ /**
231
+ * Perform a dynamic update call in one step with display type transformations.
232
+ * Registers the method if not already registered, then calls it.
233
+ *
234
+ * @example
235
+ * ```typescript
236
+ * const result = await reactor.callDynamic({
237
+ * functionName: "transfer",
238
+ * candid: "(record { to : principal; amount : nat }) -> (variant { Ok : nat; Err : text })",
239
+ * args: [{ to: "aaaaa-aa", amount: "100" }] // Display types!
240
+ * })
241
+ * ```
242
+ */
243
+ async callDynamic(options) {
244
+ await this.registerMethod(options);
245
+ return this.callMethod({
246
+ functionName: options.functionName,
247
+ args: options.args,
248
+ });
249
+ }
250
+ /**
251
+ * Perform a dynamic query call in one step with display type transformations.
252
+ * Registers the method if not already registered, then calls it.
253
+ *
254
+ * @example
255
+ * ```typescript
256
+ * const balance = await reactor.queryDynamic({
257
+ * functionName: "icrc1_balance_of",
258
+ * candid: "(record { owner : principal }) -> (nat) query",
259
+ * args: [{ owner: "aaaaa-aa" }] // Display types!
260
+ * })
261
+ * // balance is string (not BigInt)
262
+ * ```
263
+ */
264
+ async queryDynamic(options) {
265
+ await this.registerMethod(options);
266
+ return this.callMethod({
267
+ functionName: options.functionName,
268
+ args: options.args,
269
+ });
270
+ }
271
+ /**
272
+ * Fetch with dynamic Candid and TanStack Query caching.
273
+ * Registers the method if not already registered, then fetches with caching.
274
+ * Results are transformed to display types.
275
+ *
276
+ * @example
277
+ * ```typescript
278
+ * const balance = await reactor.fetchQueryDynamic({
279
+ * functionName: "icrc1_balance_of",
280
+ * candid: "(record { owner : principal }) -> (nat) query",
281
+ * args: [{ owner: "aaaaa-aa" }]
282
+ * })
283
+ * // Subsequent calls with same args return cached result
284
+ * ```
285
+ */
286
+ async fetchQueryDynamic(options) {
287
+ await this.registerMethod(options);
288
+ return this.fetchQuery({
289
+ functionName: options.functionName,
290
+ args: options.args,
291
+ });
292
+ }
293
+ }
294
+ //# sourceMappingURL=display-reactor.js.map
@@ -0,0 +1 @@
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,6 +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";
7
+ export * from "./display-reactor";
8
+ export * from "./metadata-display-reactor";
6
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"}
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,6 +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";
7
+ export * from "./display-reactor";
8
+ export * from "./metadata-display-reactor";
6
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"}
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"}