@ic-reactor/candid 3.0.3-beta.5 → 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.
- package/README.md +33 -1
- package/dist/adapter.js +2 -1
- package/dist/adapter.js.map +1 -1
- package/dist/display-reactor.d.ts +4 -15
- package/dist/display-reactor.d.ts.map +1 -1
- package/dist/display-reactor.js +22 -8
- package/dist/display-reactor.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/metadata-display-reactor.d.ts +108 -0
- package/dist/metadata-display-reactor.d.ts.map +1 -0
- package/dist/metadata-display-reactor.js +141 -0
- package/dist/metadata-display-reactor.js.map +1 -0
- package/dist/reactor.d.ts.map +1 -1
- package/dist/reactor.js +9 -5
- package/dist/reactor.js.map +1 -1
- package/dist/types.d.ts +38 -5
- package/dist/types.d.ts.map +1 -1
- package/dist/utils.d.ts +4 -4
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +33 -10
- package/dist/utils.js.map +1 -1
- package/dist/visitor/arguments/helpers.d.ts +55 -0
- package/dist/visitor/arguments/helpers.d.ts.map +1 -0
- package/dist/visitor/arguments/helpers.js +123 -0
- package/dist/visitor/arguments/helpers.js.map +1 -0
- package/dist/visitor/arguments/index.d.ts +101 -0
- package/dist/visitor/arguments/index.d.ts.map +1 -0
- package/dist/visitor/arguments/index.js +779 -0
- package/dist/visitor/arguments/index.js.map +1 -0
- package/dist/visitor/arguments/types.d.ts +268 -0
- package/dist/visitor/arguments/types.d.ts.map +1 -0
- package/dist/visitor/arguments/types.js +26 -0
- package/dist/visitor/arguments/types.js.map +1 -0
- package/dist/visitor/constants.d.ts +4 -0
- package/dist/visitor/constants.d.ts.map +1 -0
- package/dist/visitor/constants.js +73 -0
- package/dist/visitor/constants.js.map +1 -0
- package/dist/visitor/helpers.d.ts +30 -0
- package/dist/visitor/helpers.d.ts.map +1 -0
- package/dist/visitor/helpers.js +204 -0
- package/dist/visitor/helpers.js.map +1 -0
- package/dist/visitor/index.d.ts +5 -0
- package/dist/visitor/index.d.ts.map +1 -0
- package/dist/visitor/index.js +5 -0
- package/dist/visitor/index.js.map +1 -0
- package/dist/visitor/returns/index.d.ts +38 -0
- package/dist/visitor/returns/index.d.ts.map +1 -0
- package/dist/visitor/returns/index.js +460 -0
- package/dist/visitor/returns/index.js.map +1 -0
- package/dist/visitor/returns/types.d.ts +202 -0
- package/dist/visitor/returns/types.d.ts.map +1 -0
- package/dist/visitor/returns/types.js +2 -0
- package/dist/visitor/returns/types.js.map +1 -0
- package/dist/visitor/types.d.ts +19 -0
- package/dist/visitor/types.d.ts.map +1 -0
- package/dist/visitor/types.js +2 -0
- package/dist/visitor/types.js.map +1 -0
- package/package.json +16 -7
- package/src/adapter.ts +446 -0
- package/src/constants.ts +11 -0
- package/src/display-reactor.ts +337 -0
- package/src/index.ts +8 -0
- package/src/metadata-display-reactor.ts +230 -0
- package/src/reactor.ts +199 -0
- package/src/types.ts +127 -0
- package/src/utils.ts +60 -0
- package/src/visitor/arguments/helpers.ts +153 -0
- package/src/visitor/arguments/index.test.ts +1439 -0
- package/src/visitor/arguments/index.ts +980 -0
- package/src/visitor/arguments/schema.test.ts +324 -0
- package/src/visitor/arguments/types.ts +385 -0
- package/src/visitor/constants.ts +76 -0
- package/src/visitor/helpers.test.ts +274 -0
- package/src/visitor/helpers.ts +223 -0
- package/src/visitor/index.ts +4 -0
- package/src/visitor/returns/index.test.ts +2377 -0
- package/src/visitor/returns/index.ts +658 -0
- package/src/visitor/returns/types.ts +302 -0
- 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
|
-
| `
|
|
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
|
|
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
|
package/dist/adapter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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,
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +1,6 @@
|
|
|
1
|
-
import type {
|
|
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 {
|
|
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,
|
|
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"}
|
package/dist/display-reactor.js
CHANGED
|
@@ -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
|
-
|
|
60
|
-
|
|
61
|
-
|
|
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
|
-
|
|
78
|
-
|
|
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":"
|
|
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
|
|
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
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,
|
|
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
|
|
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,
|
|
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":"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"}
|
package/dist/reactor.d.ts.map
CHANGED
|
@@ -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;
|
|
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 = (
|
|
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
|
-
|
|
26
|
-
|
|
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.
|
package/dist/reactor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reactor.js","sourceRoot":"","sources":["../src/reactor.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAA;AAE1C,MAAM,OAAO,aAA6B,SAAQ,OAAU;IAI1D,YAAY,MAA+B;QACzC,
|
|
1
|
+
{"version":3,"file":"reactor.js","sourceRoot":"","sources":["../src/reactor.ts"],"names":[],"mappings":"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"}
|