@ic-reactor/core 3.0.7-beta.2 → 3.0.8-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/display/types.d.ts +1 -1
- package/dist/display/types.d.ts.map +1 -1
- package/dist/display/visitor.d.ts.map +1 -1
- package/dist/display/visitor.js +6 -2
- package/dist/display/visitor.js.map +1 -1
- package/dist/display-reactor.d.ts +9 -41
- package/dist/display-reactor.d.ts.map +1 -1
- package/dist/display-reactor.js +5 -41
- package/dist/display-reactor.js.map +1 -1
- package/dist/types/reactor.d.ts +4 -5
- package/dist/types/reactor.d.ts.map +1 -1
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/zod.d.ts +34 -0
- package/dist/utils/zod.d.ts.map +1 -0
- package/dist/utils/zod.js +39 -0
- package/dist/utils/zod.js.map +1 -0
- package/package.json +1 -1
- package/src/display/types.ts +1 -1
- package/src/display/visitor.ts +8 -3
- package/src/display-reactor.ts +19 -67
- package/src/types/reactor.ts +8 -4
- package/src/utils/index.ts +1 -0
- package/src/utils/zod.ts +56 -0
package/dist/display/types.d.ts
CHANGED
|
@@ -20,7 +20,7 @@ type AsOptional<T> = T extends [infer U] ? NullishType<DisplayOf<U>> : never;
|
|
|
20
20
|
export type BlobType = Uint8Array | number[] | string;
|
|
21
21
|
export type NullishType<T> = T | null | undefined;
|
|
22
22
|
export type DisplayCommonType<T> = T extends string ? string : T extends bigint ? string : T extends number ? number : T extends boolean ? boolean : T;
|
|
23
|
-
export type DisplayOf<T> = IsOptionalType<T> extends true ? AsOptional<T> : IsBlobType<T> extends true ? BlobType : IsCandidVariant<T> extends true ? VariantUnionOf<T> : T extends Array<[string, infer B]> ?
|
|
23
|
+
export type DisplayOf<T> = IsOptionalType<T> extends true ? AsOptional<T> : IsBlobType<T> extends true ? BlobType : IsCandidVariant<T> extends true ? VariantUnionOf<T> : T extends Array<[string, infer B]> ? Record<string, DisplayOf<B>> : T extends (infer U)[] ? DisplayOf<U>[] : T extends null ? null : T extends Principal ? string : T extends object ? AsObject<T> : DisplayCommonType<T>;
|
|
24
24
|
export type DisplayCodec<TC = unknown, TD = DisplayOf<TC>> = z.ZodCodec<z.ZodType<TC>, z.ZodType<TD>>;
|
|
25
25
|
export interface ActorDisplayCodec<TC = unknown, TD = DisplayOf<TC>> {
|
|
26
26
|
codec: DisplayCodec<TC, TD>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/display/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,KAAK,EACV,cAAc,EACd,UAAU,EACV,YAAY,EACb,MAAM,oBAAoB,CAAA;AAC3B,OAAO,KAAK,EACV,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EAChB,MAAM,kBAAkB,CAAA;AAEzB,KAAK,UAAU,CAAC,CAAC,IACf,CAAC,SAAS,MAAM,CAAC,MAAM,CAAC,SAAS,gBAAgB,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,GACtD;IAAE,KAAK,EAAE,CAAC,CAAA;CAAE,GAAG,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,IAAI,GACjD,EAAE,GACF;KAAG,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CAAE,CAAC,GACtD,KAAK,CAAA;AAEX,KAAK,cAAc,CAAC,CAAC,IACnB,YAAY,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,GAC3B,CAAC,SAAS,GAAG,EAAE,GACb;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,CAAC,MAAM,CAAC,GAC5C,KAAK,GACP,KAAK,CAAA;AAEX,KAAK,cAAc,CAAC,QAAQ,EAAE,QAAQ,IAAI,MAAM,QAAQ,SAAS,KAAK,GAClE,QAAQ,GACR,MAAM,QAAQ,SAAS,KAAK,GAC1B,QAAQ,GACR,QAAQ,GAAG,QAAQ,CAAA;AAEzB,KAAK,QAAQ,CAAC,CAAC,IAAI,cAAc,CAC/B;KACG,CAAC,IAAI,MAAM,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,GAAG,KAAK,GAAG,CAAC,GAAG,SAAS,CACxE,CAAC,CAAC,CAAC,CAAC,CACL;CACF,EACD;KACG,CAAC,IAAI,MAAM,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,SAAS,CACzE,CAAC,CAAC,CAAC,CAAC,CACL;CACF,CACF,CAAA;AAED,KAAK,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAA;AAE5E,MAAM,MAAM,QAAQ,GAAG,UAAU,GAAG,MAAM,EAAE,GAAG,MAAM,CAAA;AAErD,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,SAAS,CAAA;AAEjD,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,GAC/C,MAAM,GACN,CAAC,SAAS,MAAM,GACd,MAAM,GACN,CAAC,SAAS,MAAM,GACd,MAAM,GACN,CAAC,SAAS,OAAO,GACf,OAAO,GACP,CAAC,CAAA;AAEX,MAAM,MAAM,SAAS,CAAC,CAAC,IACrB,cAAc,CAAC,CAAC,CAAC,SAAS,IAAI,GAC1B,UAAU,CAAC,CAAC,CAAC,GACb,UAAU,CAAC,CAAC,CAAC,SAAS,IAAI,GACxB,QAAQ,GACR,eAAe,CAAC,CAAC,CAAC,SAAS,IAAI,GAC7B,cAAc,CAAC,CAAC,CAAC,GACjB,CAAC,SAAS,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,GAChC,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/display/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"visitor.d.ts","sourceRoot":"","sources":["../../src/display/visitor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AACxB,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAA;AAU1C,qBAAa,mBAAoB,SAAQ,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,UAAU,CAAC;IACzE,OAAO,CAAC,SAAS,CAAwC;IAEzD,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,GAAG,CAAC,CAAC,UAAU;IAIzD,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,GAAG,CAAC,CAAC,UAAU;IAIvE,UAAU,CAAC,EAAE,EAAE,GAAG,CAAC,UAAU,EAAE,KAAK,EAAE,OAAO,GAAG,CAAC,CAAC,UAAU;IAI5D,SAAS,CAAC,EAAE,EAAE,GAAG,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,GAAG,CAAC,CAAC,UAAU;IAI1D,SAAS,CAAC,EAAE,EAAE,GAAG,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,GAAG,CAAC,CAAC,UAAU;IAI1D,aAAa,CAAC,EAAE,EAAE,GAAG,CAAC,aAAa,EAAE,KAAK,EAAE,OAAO,GAAG,CAAC,CAAC,UAAU;IAIlE,SAAS,CAAC,EAAE,EAAE,GAAG,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,GAAG,CAAC,CAAC,UAAU;IAI1D,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,GAAG,CAAC,CAAC,UAAU;IAIpE,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,GAAG,CAAC,CAAC,UAAU;IAWxD,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,GAAG,CAAC,CAAC,UAAU;IAWxD,UAAU,CAAC,EAAE,EAAE,GAAG,CAAC,UAAU,EAAE,KAAK,EAAE,OAAO,GAAG,CAAC,CAAC,UAAU;IAI5D,aAAa,CAAC,CAAC,EAAE,GAAG,CAAC,aAAa,EAAE,KAAK,EAAE,OAAO,GAAG,CAAC,CAAC,UAAU;IAmBjE,aAAa,CAAC,CAAC,EAAE,GAAG,CAAC,aAAa,EAAE,KAAK,EAAE,OAAO,GAAG,CAAC,CAAC,UAAU;IAiBjE,cAAc,CAAC,EAAE,EAAE,GAAG,CAAC,cAAc,EAAE,KAAK,EAAE,OAAO,GAAG,CAAC,CAAC,UAAU;IAiBpE,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,GAAG,CAAC,CAAC,UAAU;IAIvE,QAAQ,CAAC,CAAC,EACR,EAAE,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EACnB,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EACrB,KAAK,EAAE,OAAO,GACb,CAAC,CAAC,UAAU;
|
|
1
|
+
{"version":3,"file":"visitor.d.ts","sourceRoot":"","sources":["../../src/display/visitor.ts"],"names":[],"mappings":"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"}
|
package/dist/display/visitor.js
CHANGED
|
@@ -135,10 +135,14 @@ export class DisplayCodecVisitor extends IDL.Visitor {
|
|
|
135
135
|
decode: (val) => {
|
|
136
136
|
if (!Array.isArray(val))
|
|
137
137
|
return val;
|
|
138
|
-
return
|
|
138
|
+
return Object.fromEntries(val.map((elem) => elemCodec.decode(elem)));
|
|
139
139
|
},
|
|
140
140
|
encode: (val) => {
|
|
141
|
-
|
|
141
|
+
// If already array, encode elements directly
|
|
142
|
+
if (Array.isArray(val)) {
|
|
143
|
+
return val.map((elem) => elemCodec.encode(elem));
|
|
144
|
+
}
|
|
145
|
+
const entries = val && typeof val === "object" ? Object.entries(val) : val;
|
|
142
146
|
if (!Array.isArray(entries))
|
|
143
147
|
return entries;
|
|
144
148
|
return entries.map((elem) => elemCodec.encode(elem));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"visitor.js","sourceRoot":"","sources":["../../src/display/visitor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"visitor.js","sourceRoot":"","sources":["../../src/display/visitor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Reactor } from "./reactor";
|
|
2
|
-
import { ActorMethodParameters, ActorMethodReturnType, FunctionName, ReactorArgs, ReactorReturnOk, ActorMethodCodecs, BaseActor } from "./types/reactor";
|
|
3
|
-
import { DisplayReactorParameters, DisplayValidator, ValidationResult
|
|
2
|
+
import { ActorMethodParameters, ActorMethodReturnType, FunctionName, ReactorArgs, ReactorReturnOk, ActorMethodCodecs, BaseActor, TransformKey } from "./types/reactor";
|
|
3
|
+
import { DisplayReactorParameters, DisplayValidator, ValidationResult } from "./types/display-reactor";
|
|
4
4
|
/**
|
|
5
5
|
* DisplayReactor provides automatic type transformations between Candid and
|
|
6
6
|
* display-friendly types, plus optional argument validation.
|
|
@@ -46,8 +46,8 @@ import { DisplayReactorParameters, DisplayValidator, ValidationResult, Validator
|
|
|
46
46
|
* })
|
|
47
47
|
* ```
|
|
48
48
|
*/
|
|
49
|
-
export declare class DisplayReactor<A = BaseActor> extends Reactor<A,
|
|
50
|
-
readonly transform
|
|
49
|
+
export declare class DisplayReactor<A = BaseActor, T extends TransformKey = "display"> extends Reactor<A, T> {
|
|
50
|
+
readonly transform: T;
|
|
51
51
|
private codecs;
|
|
52
52
|
private validators;
|
|
53
53
|
constructor(config: DisplayReactorParameters<A>);
|
|
@@ -116,7 +116,7 @@ export declare class DisplayReactor<A = BaseActor> extends Reactor<A, "display">
|
|
|
116
116
|
* }
|
|
117
117
|
* ```
|
|
118
118
|
*/
|
|
119
|
-
validate<M extends FunctionName<A>>(methodName: M, args: ReactorArgs<A, M,
|
|
119
|
+
validate<M extends FunctionName<A>>(methodName: M, args: ReactorArgs<A, M, T>): Promise<ValidationResult>;
|
|
120
120
|
/**
|
|
121
121
|
* Call a method with async validation support.
|
|
122
122
|
* Use this instead of callMethod() when you have async validators.
|
|
@@ -143,52 +143,20 @@ export declare class DisplayReactor<A = BaseActor> extends Reactor<A, "display">
|
|
|
143
143
|
*/
|
|
144
144
|
callMethodWithValidation<M extends FunctionName<A>>(params: {
|
|
145
145
|
functionName: M;
|
|
146
|
-
args?: ReactorArgs<A, M,
|
|
146
|
+
args?: ReactorArgs<A, M, T>;
|
|
147
147
|
callConfig?: Parameters<Reactor<A, "display">["callMethod"]>[0]["callConfig"];
|
|
148
|
-
}): Promise<ReactorReturnOk<A, M,
|
|
148
|
+
}): Promise<ReactorReturnOk<A, M, T>>;
|
|
149
149
|
/**
|
|
150
150
|
* Transform arguments before calling the actor method.
|
|
151
151
|
* 1. Validates display-type args (if validator registered)
|
|
152
152
|
* 2. Converts Display → Candid
|
|
153
153
|
*/
|
|
154
|
-
protected transformArgs<M extends FunctionName<A>>(methodName: M, args?: ReactorArgs<A, M,
|
|
154
|
+
protected transformArgs<M extends FunctionName<A>>(methodName: M, args?: ReactorArgs<A, M, T>): ActorMethodParameters<A[M]>;
|
|
155
155
|
/**
|
|
156
156
|
* Transform the result after calling the actor method.
|
|
157
157
|
* Always extracts the Ok value from Result types (throws CanisterError on Err).
|
|
158
158
|
* Also converts Candid → Display format.
|
|
159
159
|
*/
|
|
160
|
-
protected transformResult<M extends FunctionName<A>>(methodName: M, result: ActorMethodReturnType<A[M]>): ReactorReturnOk<A, M,
|
|
160
|
+
protected transformResult<M extends FunctionName<A>>(methodName: M, result: ActorMethodReturnType<A[M]>): ReactorReturnOk<A, M, T>;
|
|
161
161
|
}
|
|
162
|
-
/**
|
|
163
|
-
* Create a validator from a Zod schema.
|
|
164
|
-
* This is a utility function to easily integrate Zod schemas as validators.
|
|
165
|
-
*
|
|
166
|
-
* @param schema - A Zod schema to validate against
|
|
167
|
-
* @returns A Validator function compatible with DisplayReactor
|
|
168
|
-
*
|
|
169
|
-
* @example
|
|
170
|
-
* ```typescript
|
|
171
|
-
* import { z } from "zod"
|
|
172
|
-
* import { fromZodSchema } from "@ic-reactor/core"
|
|
173
|
-
*
|
|
174
|
-
* const transferSchema = z.object({
|
|
175
|
-
* to: z.string().min(1, "Recipient is required"),
|
|
176
|
-
* amount: z.string().regex(/^\d+$/, "Must be a valid number"),
|
|
177
|
-
* })
|
|
178
|
-
*
|
|
179
|
-
* reactor.registerValidator("transfer", fromZodSchema(transferSchema))
|
|
180
|
-
* ```
|
|
181
|
-
*/
|
|
182
|
-
export declare function fromZodSchema<T>(schema: {
|
|
183
|
-
safeParse: (data: unknown) => {
|
|
184
|
-
success: boolean;
|
|
185
|
-
error?: {
|
|
186
|
-
issues: Array<{
|
|
187
|
-
path: (string | number)[];
|
|
188
|
-
message: string;
|
|
189
|
-
code?: string;
|
|
190
|
-
}>;
|
|
191
|
-
};
|
|
192
|
-
};
|
|
193
|
-
}): Validator<T[]>;
|
|
194
162
|
//# sourceMappingURL=display-reactor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"display-reactor.d.ts","sourceRoot":"","sources":["../src/display-reactor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAQnC,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,YAAY,EACZ,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,SAAS,
|
|
1
|
+
{"version":3,"file":"display-reactor.d.ts","sourceRoot":"","sources":["../src/display-reactor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAQnC,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,YAAY,EACZ,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,SAAS,EACT,YAAY,EACb,MAAM,iBAAiB,CAAA;AAGxB,OAAO,EACL,wBAAwB,EACxB,gBAAgB,EAChB,gBAAgB,EAEjB,MAAM,yBAAyB,CAAA;AAMhC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,qBAAa,cAAc,CACzB,CAAC,GAAG,SAAS,EACb,CAAC,SAAS,YAAY,GAAG,SAAS,CAClC,SAAQ,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;IACrB,SAAgB,SAAS,EAAgB,CAAC,CAAA;IAC1C,OAAO,CAAC,MAAM,CAGD;IACb,OAAO,CAAC,UAAU,CAAyC;gBAE/C,MAAM,EAAE,wBAAwB,CAAC,CAAC,CAAC;IAc/C;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA0BxB;;;;;OAKG;IACI,QAAQ,CAAC,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,EACvC,UAAU,EAAE,CAAC,GACZ,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI;IAajC;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,iBAAiB,CAAC,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,EACzC,UAAU,EAAE,CAAC,EACb,SAAS,EAAE,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,GAChC,IAAI;IAIP;;OAEG;IACH,mBAAmB,CAAC,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,GAAG,IAAI;IAInE;;OAEG;IACH,YAAY,CAAC,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,GAAG,OAAO;IAI/D;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACG,QAAQ,CAAC,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,EACtC,UAAU,EAAE,CAAC,EACb,IAAI,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GACzB,OAAO,CAAC,gBAAgB,CAAC;IAS5B;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACG,wBAAwB,CAAC,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE;QAChE,YAAY,EAAE,CAAC,CAAA;QACf,IAAI,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;QAC3B,UAAU,CAAC,EAAE,UAAU,CACrB,OAAO,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,YAAY,CAAC,CACpC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAA;KACnB,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IA8BrC;;;;OAIG;IACH,SAAS,CAAC,aAAa,CAAC,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,EAC/C,UAAU,EAAE,CAAC,EACb,IAAI,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAC1B,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAuC9B;;;;OAIG;IACH,SAAS,CAAC,eAAe,CAAC,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,EACjD,UAAU,EAAE,CAAC,EACb,MAAM,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAClC,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;CAgB5B"}
|
package/dist/display-reactor.js
CHANGED
|
@@ -230,6 +230,7 @@ export class DisplayReactor extends Reactor {
|
|
|
230
230
|
this.validators.delete(params.functionName);
|
|
231
231
|
}
|
|
232
232
|
try {
|
|
233
|
+
// @ts-ignore
|
|
233
234
|
return await this.callMethod(params);
|
|
234
235
|
}
|
|
235
236
|
finally {
|
|
@@ -250,8 +251,9 @@ export class DisplayReactor extends Reactor {
|
|
|
250
251
|
transformArgs(methodName, args) {
|
|
251
252
|
// 1. Validate FIRST (on display types)
|
|
252
253
|
const validator = this.validators.get(methodName);
|
|
253
|
-
|
|
254
|
-
|
|
254
|
+
const displayArgs = args;
|
|
255
|
+
if (validator && displayArgs) {
|
|
256
|
+
const result = validator(displayArgs);
|
|
255
257
|
// Handle Promise (async validator)
|
|
256
258
|
if (result &&
|
|
257
259
|
typeof result.then === "function") {
|
|
@@ -266,7 +268,7 @@ export class DisplayReactor extends Reactor {
|
|
|
266
268
|
// 2. THEN transform: Display → Candid
|
|
267
269
|
if (this.codecs.has(methodName)) {
|
|
268
270
|
const codec = this.codecs.get(methodName);
|
|
269
|
-
return transformArgsWithCodec(codec.args,
|
|
271
|
+
return transformArgsWithCodec(codec.args, displayArgs);
|
|
270
272
|
}
|
|
271
273
|
if (!args) {
|
|
272
274
|
return [];
|
|
@@ -290,42 +292,4 @@ export class DisplayReactor extends Reactor {
|
|
|
290
292
|
return extractOkResult(transformedResult);
|
|
291
293
|
}
|
|
292
294
|
}
|
|
293
|
-
// ============================================================================
|
|
294
|
-
// Zod Integration Helper
|
|
295
|
-
// ============================================================================
|
|
296
|
-
/**
|
|
297
|
-
* Create a validator from a Zod schema.
|
|
298
|
-
* This is a utility function to easily integrate Zod schemas as validators.
|
|
299
|
-
*
|
|
300
|
-
* @param schema - A Zod schema to validate against
|
|
301
|
-
* @returns A Validator function compatible with DisplayReactor
|
|
302
|
-
*
|
|
303
|
-
* @example
|
|
304
|
-
* ```typescript
|
|
305
|
-
* import { z } from "zod"
|
|
306
|
-
* import { fromZodSchema } from "@ic-reactor/core"
|
|
307
|
-
*
|
|
308
|
-
* const transferSchema = z.object({
|
|
309
|
-
* to: z.string().min(1, "Recipient is required"),
|
|
310
|
-
* amount: z.string().regex(/^\d+$/, "Must be a valid number"),
|
|
311
|
-
* })
|
|
312
|
-
*
|
|
313
|
-
* reactor.registerValidator("transfer", fromZodSchema(transferSchema))
|
|
314
|
-
* ```
|
|
315
|
-
*/
|
|
316
|
-
export function fromZodSchema(schema) {
|
|
317
|
-
return (args) => {
|
|
318
|
-
// Validate the first argument (common IC pattern)
|
|
319
|
-
const result = schema.safeParse(args[0]);
|
|
320
|
-
if (result.success) {
|
|
321
|
-
return { success: true };
|
|
322
|
-
}
|
|
323
|
-
const issues = result.error.issues.map((issue) => ({
|
|
324
|
-
path: issue.path,
|
|
325
|
-
message: issue.message,
|
|
326
|
-
code: issue.code,
|
|
327
|
-
}));
|
|
328
|
-
return { success: false, issues };
|
|
329
|
-
};
|
|
330
|
-
}
|
|
331
295
|
//# sourceMappingURL=display-reactor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"display-reactor.js","sourceRoot":"","sources":["../src/display-reactor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,wBAAwB,EACxB,gBAAgB,GAEjB,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"display-reactor.js","sourceRoot":"","sources":["../src/display-reactor.ts"],"names":[],"mappings":"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"}
|
package/dist/types/reactor.d.ts
CHANGED
|
@@ -60,14 +60,14 @@ export interface TransformArgsRegistry<T> {
|
|
|
60
60
|
* }
|
|
61
61
|
* ```
|
|
62
62
|
*/
|
|
63
|
-
export interface TransformReturnRegistry<T> {
|
|
63
|
+
export interface TransformReturnRegistry<T, A = BaseActor> {
|
|
64
64
|
candid: T;
|
|
65
65
|
display: DisplayOf<T>;
|
|
66
66
|
}
|
|
67
67
|
/**
|
|
68
68
|
* Helper type to transform args array elements using ToDisplay
|
|
69
69
|
*/
|
|
70
|
-
type AsDisplayArgs<T> = T extends readonly unknown[] ? {
|
|
70
|
+
export type AsDisplayArgs<T> = T extends readonly unknown[] ? {
|
|
71
71
|
[K in keyof T]: DisplayOf<T[K]>;
|
|
72
72
|
} : DisplayOf<T>;
|
|
73
73
|
/**
|
|
@@ -84,8 +84,8 @@ export type ReactorArgs<A, M extends FunctionName<A>, Transform extends Transfor
|
|
|
84
84
|
* Apply return type transformation based on the transform key.
|
|
85
85
|
* Looks up the transform in TransformReturnRegistry.
|
|
86
86
|
*/
|
|
87
|
-
export type ReactorReturnOk<A, M extends FunctionName<A>, Transform extends TransformKey = "candid"> = TransformReturnRegistry<OkResult<ActorMethodReturnType<A[M]
|
|
88
|
-
export type ReactorReturnErr<A, M extends FunctionName<A>, Transform extends TransformKey = "candid"> = CanisterError<TransformReturnRegistry<ErrResult<ActorMethodReturnType<A[M]
|
|
87
|
+
export type ReactorReturnOk<A, M extends FunctionName<A>, Transform extends TransformKey = "candid"> = TransformReturnRegistry<OkResult<ActorMethodReturnType<A[M]>>, A>[Transform];
|
|
88
|
+
export type ReactorReturnErr<A, M extends FunctionName<A>, Transform extends TransformKey = "candid"> = CanisterError<TransformReturnRegistry<ErrResult<ActorMethodReturnType<A[M]>>, A>[Transform]> | CallError;
|
|
89
89
|
/**
|
|
90
90
|
* Helper type for actor method codecs returend by getCodec
|
|
91
91
|
*/
|
|
@@ -109,5 +109,4 @@ export interface ReactorQueryParams<A, M extends FunctionName<A>, T extends Tran
|
|
|
109
109
|
export interface ReactorCallParams<A, M extends FunctionName<A>, T extends TransformKey = "candid"> extends ReactorQueryParams<A, M, T> {
|
|
110
110
|
callConfig?: CallConfig;
|
|
111
111
|
}
|
|
112
|
-
export {};
|
|
113
112
|
//# sourceMappingURL=reactor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reactor.d.ts","sourceRoot":"","sources":["../../src/types/reactor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,aAAa,EACb,UAAU,EACV,cAAc,EACf,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAC9C,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AACnD,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAE9D,MAAM,WAAW,gBAAgB;IAC/B,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;CACrC;AAED,MAAM,MAAM,SAAS,CAAC,CAAC,GAAG,gBAAgB,IAAI,aAAa,CAAC,CAAC,CAAC,CAAA;AAE9D,MAAM,MAAM,YAAY,CAAC,CAAC,GAAG,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAA;AAElE,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,QAAQ,CAAA;AAE7C,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,SAAS,CAAA;AAI3C,MAAM,MAAM,qBAAqB,CAAC,CAAC,IACjC,CAAC,SAAS,WAAW,CAAC,MAAM,IAAI,EAAE,GAAG,CAAC,GAAG,IAAI,GAAG,KAAK,CAAA;AAIvD,MAAM,MAAM,qBAAqB,CAAC,CAAC,IACjC,CAAC,SAAS,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,GAAG,GAAG,KAAK,CAAA;AAErD,MAAM,WAAW,iBAAiB;IAChC,aAAa,EAAE,aAAa,CAAA;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,CAAA;IAC7B,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,cAAc,CAAC,EAAE,cAAc,CAAA;CAChC;AAED,MAAM,MAAM,eAAe,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI;IAClD,CAAC,GAAG,IAAI,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC5E,WAAW,EAAE,CACX,OAAO,CAAC,EAAE,UAAU,KACjB,CACH,GAAG,IAAI,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KACjC,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;CAC1C,CAAA;AAED;;;;;;;;;;;;;GAaG;AACH;;GAEG;AACH,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,CAAC,MAAM,CAAC,CAAC,GAClD,CAAC,GACD,CAAC,SAAS,SAAS,EAAE,GACnB,IAAI,GACJ,CAAC,CAAA;AAEP,MAAM,WAAW,qBAAqB,CAAC,CAAC;IACtC,MAAM,EAAE,CAAC,CAAA;IACT,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,CAAA;CAC1B;AAED;;;;;;;;;;;;GAYG;
|
|
1
|
+
{"version":3,"file":"reactor.d.ts","sourceRoot":"","sources":["../../src/types/reactor.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,aAAa,CAAA;AAC3B,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,aAAa,CAAA;AAC3B,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,OAAO,CAAA"}
|
package/dist/utils/index.js
CHANGED
package/dist/utils/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,aAAa,CAAA;AAC3B,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,aAAa,CAAA;AAC3B,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,OAAO,CAAA"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Validator } from "../types";
|
|
2
|
+
/**
|
|
3
|
+
* Create a validator from a Zod schema.
|
|
4
|
+
* This is a utility function to easily integrate Zod schemas as validators.
|
|
5
|
+
*
|
|
6
|
+
* @param schema - A Zod schema to validate against
|
|
7
|
+
* @returns A Validator function compatible with DisplayReactor
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```typescript
|
|
11
|
+
* import { z } from "zod"
|
|
12
|
+
* import { fromZodSchema } from "@ic-reactor/core"
|
|
13
|
+
*
|
|
14
|
+
* const transferSchema = z.object({
|
|
15
|
+
* to: z.string().min(1, "Recipient is required"),
|
|
16
|
+
* amount: z.string().regex(/^\d+$/, "Must be a valid number"),
|
|
17
|
+
* })
|
|
18
|
+
*
|
|
19
|
+
* reactor.registerValidator("transfer", fromZodSchema(transferSchema))
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
export declare function fromZodSchema<T>(schema: {
|
|
23
|
+
safeParse: (data: unknown) => {
|
|
24
|
+
success: boolean;
|
|
25
|
+
error?: {
|
|
26
|
+
issues: Array<{
|
|
27
|
+
path: (string | number)[];
|
|
28
|
+
message: string;
|
|
29
|
+
code?: string;
|
|
30
|
+
}>;
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
}): Validator<T[]>;
|
|
34
|
+
//# sourceMappingURL=zod.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zod.d.ts","sourceRoot":"","sources":["../../src/utils/zod.ts"],"names":[],"mappings":"AAKA,OAAO,EAAoB,SAAS,EAAE,MAAM,UAAU,CAAA;AAEtD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE;IACvC,SAAS,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK;QAC5B,OAAO,EAAE,OAAO,CAAA;QAChB,KAAK,CAAC,EAAE;YACN,MAAM,EAAE,KAAK,CAAC;gBACZ,IAAI,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;gBACzB,OAAO,EAAE,MAAM,CAAA;gBACf,IAAI,CAAC,EAAE,MAAM,CAAA;aACd,CAAC,CAAA;SACH,CAAA;KACF,CAAA;CACF,GAAG,SAAS,CAAC,CAAC,EAAE,CAAC,CAiBjB"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
// ============================================================================
|
|
2
|
+
// Zod Integration Helper
|
|
3
|
+
// ============================================================================
|
|
4
|
+
/**
|
|
5
|
+
* Create a validator from a Zod schema.
|
|
6
|
+
* This is a utility function to easily integrate Zod schemas as validators.
|
|
7
|
+
*
|
|
8
|
+
* @param schema - A Zod schema to validate against
|
|
9
|
+
* @returns A Validator function compatible with DisplayReactor
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```typescript
|
|
13
|
+
* import { z } from "zod"
|
|
14
|
+
* import { fromZodSchema } from "@ic-reactor/core"
|
|
15
|
+
*
|
|
16
|
+
* const transferSchema = z.object({
|
|
17
|
+
* to: z.string().min(1, "Recipient is required"),
|
|
18
|
+
* amount: z.string().regex(/^\d+$/, "Must be a valid number"),
|
|
19
|
+
* })
|
|
20
|
+
*
|
|
21
|
+
* reactor.registerValidator("transfer", fromZodSchema(transferSchema))
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
export function fromZodSchema(schema) {
|
|
25
|
+
return (args) => {
|
|
26
|
+
// Validate the first argument (common IC pattern)
|
|
27
|
+
const result = schema.safeParse(args[0]);
|
|
28
|
+
if (result.success) {
|
|
29
|
+
return { success: true };
|
|
30
|
+
}
|
|
31
|
+
const issues = result.error.issues.map((issue) => ({
|
|
32
|
+
path: issue.path,
|
|
33
|
+
message: issue.message,
|
|
34
|
+
code: issue.code,
|
|
35
|
+
}));
|
|
36
|
+
return { success: false, issues };
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=zod.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zod.js","sourceRoot":"","sources":["../../src/utils/zod.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,yBAAyB;AACzB,+EAA+E;AAK/E;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,aAAa,CAAI,MAWhC;IACC,OAAO,CAAC,IAAS,EAAoB,EAAE;QACrC,kDAAkD;QAClD,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;QAExC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;QAC1B,CAAC;QAED,MAAM,MAAM,GAAsB,MAAM,CAAC,KAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACrE,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,IAAI,EAAE,KAAK,CAAC,IAAI;SACjB,CAAC,CAAC,CAAA;QAEH,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAA;IACnC,CAAC,CAAA;AACH,CAAC"}
|
package/package.json
CHANGED
package/src/display/types.ts
CHANGED
package/src/display/visitor.ts
CHANGED
|
@@ -163,12 +163,17 @@ export class DisplayCodecVisitor extends IDL.Visitor<unknown, z.ZodTypeAny> {
|
|
|
163
163
|
return z.codec(z.any(), z.any(), {
|
|
164
164
|
decode: (val) => {
|
|
165
165
|
if (!Array.isArray(val)) return val
|
|
166
|
-
return
|
|
167
|
-
val.map((elem) => elemCodec.decode(elem)) as [string,
|
|
166
|
+
return Object.fromEntries(
|
|
167
|
+
val.map((elem) => elemCodec.decode(elem)) as [string, any][]
|
|
168
168
|
)
|
|
169
169
|
},
|
|
170
170
|
encode: (val) => {
|
|
171
|
-
|
|
171
|
+
// If already array, encode elements directly
|
|
172
|
+
if (Array.isArray(val)) {
|
|
173
|
+
return val.map((elem) => elemCodec.encode(elem))
|
|
174
|
+
}
|
|
175
|
+
const entries =
|
|
176
|
+
val && typeof val === "object" ? Object.entries(val) : val
|
|
172
177
|
if (!Array.isArray(entries)) return entries
|
|
173
178
|
return entries.map((elem) => elemCodec.encode(elem))
|
|
174
179
|
},
|
package/src/display-reactor.ts
CHANGED
|
@@ -14,9 +14,10 @@ import {
|
|
|
14
14
|
ReactorReturnOk,
|
|
15
15
|
ActorMethodCodecs,
|
|
16
16
|
BaseActor,
|
|
17
|
+
TransformKey,
|
|
17
18
|
} from "./types/reactor"
|
|
18
19
|
import { extractOkResult } from "./utils/helper"
|
|
19
|
-
import { ValidationError
|
|
20
|
+
import { ValidationError } from "./errors"
|
|
20
21
|
import {
|
|
21
22
|
DisplayReactorParameters,
|
|
22
23
|
DisplayValidator,
|
|
@@ -73,8 +74,11 @@ import {
|
|
|
73
74
|
* })
|
|
74
75
|
* ```
|
|
75
76
|
*/
|
|
76
|
-
export class DisplayReactor<
|
|
77
|
-
|
|
77
|
+
export class DisplayReactor<
|
|
78
|
+
A = BaseActor,
|
|
79
|
+
T extends TransformKey = "display",
|
|
80
|
+
> extends Reactor<A, T> {
|
|
81
|
+
public readonly transform = "display" as T
|
|
78
82
|
private codecs: Map<
|
|
79
83
|
string,
|
|
80
84
|
{ args: ActorDisplayCodec; result: ActorDisplayCodec }
|
|
@@ -213,7 +217,7 @@ export class DisplayReactor<A = BaseActor> extends Reactor<A, "display"> {
|
|
|
213
217
|
*/
|
|
214
218
|
async validate<M extends FunctionName<A>>(
|
|
215
219
|
methodName: M,
|
|
216
|
-
args: ReactorArgs<A, M,
|
|
220
|
+
args: ReactorArgs<A, M, T>
|
|
217
221
|
): Promise<ValidationResult> {
|
|
218
222
|
const validator = this.validators.get(methodName)
|
|
219
223
|
if (!validator) {
|
|
@@ -249,11 +253,11 @@ export class DisplayReactor<A = BaseActor> extends Reactor<A, "display"> {
|
|
|
249
253
|
*/
|
|
250
254
|
async callMethodWithValidation<M extends FunctionName<A>>(params: {
|
|
251
255
|
functionName: M
|
|
252
|
-
args?: ReactorArgs<A, M,
|
|
256
|
+
args?: ReactorArgs<A, M, T>
|
|
253
257
|
callConfig?: Parameters<
|
|
254
258
|
Reactor<A, "display">["callMethod"]
|
|
255
259
|
>[0]["callConfig"]
|
|
256
|
-
}): Promise<ReactorReturnOk<A, M,
|
|
260
|
+
}): Promise<ReactorReturnOk<A, M, T>> {
|
|
257
261
|
// Run async validation first (on display types)
|
|
258
262
|
if (params.args) {
|
|
259
263
|
const result = await this.validate(params.functionName, params.args)
|
|
@@ -269,6 +273,7 @@ export class DisplayReactor<A = BaseActor> extends Reactor<A, "display"> {
|
|
|
269
273
|
}
|
|
270
274
|
|
|
271
275
|
try {
|
|
276
|
+
// @ts-ignore
|
|
272
277
|
return await this.callMethod(params)
|
|
273
278
|
} finally {
|
|
274
279
|
// Restore validator
|
|
@@ -289,13 +294,14 @@ export class DisplayReactor<A = BaseActor> extends Reactor<A, "display"> {
|
|
|
289
294
|
*/
|
|
290
295
|
protected transformArgs<M extends FunctionName<A>>(
|
|
291
296
|
methodName: M,
|
|
292
|
-
args?: ReactorArgs<A, M,
|
|
297
|
+
args?: ReactorArgs<A, M, T>
|
|
293
298
|
): ActorMethodParameters<A[M]> {
|
|
294
299
|
// 1. Validate FIRST (on display types)
|
|
295
300
|
const validator = this.validators.get(methodName)
|
|
301
|
+
const displayArgs = args as unknown as ReactorArgs<A, M, "display">
|
|
296
302
|
|
|
297
|
-
if (validator &&
|
|
298
|
-
const result = validator(
|
|
303
|
+
if (validator && displayArgs) {
|
|
304
|
+
const result = validator(displayArgs)
|
|
299
305
|
|
|
300
306
|
// Handle Promise (async validator)
|
|
301
307
|
if (
|
|
@@ -319,7 +325,7 @@ export class DisplayReactor<A = BaseActor> extends Reactor<A, "display"> {
|
|
|
319
325
|
const codec = this.codecs.get(methodName)!
|
|
320
326
|
return transformArgsWithCodec<ActorMethodParameters<A[M]>>(
|
|
321
327
|
codec.args,
|
|
322
|
-
|
|
328
|
+
displayArgs
|
|
323
329
|
)
|
|
324
330
|
}
|
|
325
331
|
if (!args) {
|
|
@@ -336,7 +342,7 @@ export class DisplayReactor<A = BaseActor> extends Reactor<A, "display"> {
|
|
|
336
342
|
protected transformResult<M extends FunctionName<A>>(
|
|
337
343
|
methodName: M,
|
|
338
344
|
result: ActorMethodReturnType<A[M]>
|
|
339
|
-
): ReactorReturnOk<A, M,
|
|
345
|
+
): ReactorReturnOk<A, M, T> {
|
|
340
346
|
let transformedResult = result
|
|
341
347
|
// 1. Apply display transformation to the FULL result
|
|
342
348
|
if (this.codecs.has(methodName)) {
|
|
@@ -346,64 +352,10 @@ export class DisplayReactor<A = BaseActor> extends Reactor<A, "display"> {
|
|
|
346
352
|
|
|
347
353
|
// 2. Extract Ok value from the TRANSFORMED (or raw) result
|
|
348
354
|
// This handles { ok: T } / { err: E } from Motoko/Rust canisters
|
|
349
|
-
return extractOkResult(transformedResult) as ReactorReturnOk<
|
|
355
|
+
return extractOkResult(transformedResult) as unknown as ReactorReturnOk<
|
|
350
356
|
A,
|
|
351
357
|
M,
|
|
352
|
-
|
|
358
|
+
T
|
|
353
359
|
>
|
|
354
360
|
}
|
|
355
361
|
}
|
|
356
|
-
|
|
357
|
-
// ============================================================================
|
|
358
|
-
// Zod Integration Helper
|
|
359
|
-
// ============================================================================
|
|
360
|
-
|
|
361
|
-
/**
|
|
362
|
-
* Create a validator from a Zod schema.
|
|
363
|
-
* This is a utility function to easily integrate Zod schemas as validators.
|
|
364
|
-
*
|
|
365
|
-
* @param schema - A Zod schema to validate against
|
|
366
|
-
* @returns A Validator function compatible with DisplayReactor
|
|
367
|
-
*
|
|
368
|
-
* @example
|
|
369
|
-
* ```typescript
|
|
370
|
-
* import { z } from "zod"
|
|
371
|
-
* import { fromZodSchema } from "@ic-reactor/core"
|
|
372
|
-
*
|
|
373
|
-
* const transferSchema = z.object({
|
|
374
|
-
* to: z.string().min(1, "Recipient is required"),
|
|
375
|
-
* amount: z.string().regex(/^\d+$/, "Must be a valid number"),
|
|
376
|
-
* })
|
|
377
|
-
*
|
|
378
|
-
* reactor.registerValidator("transfer", fromZodSchema(transferSchema))
|
|
379
|
-
* ```
|
|
380
|
-
*/
|
|
381
|
-
export function fromZodSchema<T>(schema: {
|
|
382
|
-
safeParse: (data: unknown) => {
|
|
383
|
-
success: boolean
|
|
384
|
-
error?: {
|
|
385
|
-
issues: Array<{
|
|
386
|
-
path: (string | number)[]
|
|
387
|
-
message: string
|
|
388
|
-
code?: string
|
|
389
|
-
}>
|
|
390
|
-
}
|
|
391
|
-
}
|
|
392
|
-
}): Validator<T[]> {
|
|
393
|
-
return (args: T[]): ValidationResult => {
|
|
394
|
-
// Validate the first argument (common IC pattern)
|
|
395
|
-
const result = schema.safeParse(args[0])
|
|
396
|
-
|
|
397
|
-
if (result.success) {
|
|
398
|
-
return { success: true }
|
|
399
|
-
}
|
|
400
|
-
|
|
401
|
-
const issues: ValidationIssue[] = result.error!.issues.map((issue) => ({
|
|
402
|
-
path: issue.path,
|
|
403
|
-
message: issue.message,
|
|
404
|
-
code: issue.code,
|
|
405
|
-
}))
|
|
406
|
-
|
|
407
|
-
return { success: false, issues }
|
|
408
|
-
}
|
|
409
|
-
}
|
package/src/types/reactor.ts
CHANGED
|
@@ -91,7 +91,8 @@ export interface TransformArgsRegistry<T> {
|
|
|
91
91
|
* }
|
|
92
92
|
* ```
|
|
93
93
|
*/
|
|
94
|
-
|
|
94
|
+
// @ts-expect-error - A is used in module augmentation
|
|
95
|
+
export interface TransformReturnRegistry<T, A = BaseActor> {
|
|
95
96
|
candid: T
|
|
96
97
|
display: DisplayOf<T>
|
|
97
98
|
}
|
|
@@ -99,7 +100,7 @@ export interface TransformReturnRegistry<T> {
|
|
|
99
100
|
/**
|
|
100
101
|
* Helper type to transform args array elements using ToDisplay
|
|
101
102
|
*/
|
|
102
|
-
type AsDisplayArgs<T> = T extends readonly unknown[]
|
|
103
|
+
export type AsDisplayArgs<T> = T extends readonly unknown[]
|
|
103
104
|
? { [K in keyof T]: DisplayOf<T[K]> }
|
|
104
105
|
: DisplayOf<T>
|
|
105
106
|
|
|
@@ -127,7 +128,7 @@ export type ReactorReturnOk<
|
|
|
127
128
|
A,
|
|
128
129
|
M extends FunctionName<A>,
|
|
129
130
|
Transform extends TransformKey = "candid",
|
|
130
|
-
> = TransformReturnRegistry<OkResult<ActorMethodReturnType<A[M]
|
|
131
|
+
> = TransformReturnRegistry<OkResult<ActorMethodReturnType<A[M]>>, A>[Transform]
|
|
131
132
|
|
|
132
133
|
export type ReactorReturnErr<
|
|
133
134
|
A,
|
|
@@ -135,7 +136,10 @@ export type ReactorReturnErr<
|
|
|
135
136
|
Transform extends TransformKey = "candid",
|
|
136
137
|
> =
|
|
137
138
|
| CanisterError<
|
|
138
|
-
TransformReturnRegistry<
|
|
139
|
+
TransformReturnRegistry<
|
|
140
|
+
ErrResult<ActorMethodReturnType<A[M]>>,
|
|
141
|
+
A
|
|
142
|
+
>[Transform]
|
|
139
143
|
>
|
|
140
144
|
| CallError
|
|
141
145
|
|
package/src/utils/index.ts
CHANGED
package/src/utils/zod.ts
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
// ============================================================================
|
|
2
|
+
// Zod Integration Helper
|
|
3
|
+
// ============================================================================
|
|
4
|
+
|
|
5
|
+
import { ValidationIssue } from "../errors"
|
|
6
|
+
import { ValidationResult, Validator } from "../types"
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Create a validator from a Zod schema.
|
|
10
|
+
* This is a utility function to easily integrate Zod schemas as validators.
|
|
11
|
+
*
|
|
12
|
+
* @param schema - A Zod schema to validate against
|
|
13
|
+
* @returns A Validator function compatible with DisplayReactor
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```typescript
|
|
17
|
+
* import { z } from "zod"
|
|
18
|
+
* import { fromZodSchema } from "@ic-reactor/core"
|
|
19
|
+
*
|
|
20
|
+
* const transferSchema = z.object({
|
|
21
|
+
* to: z.string().min(1, "Recipient is required"),
|
|
22
|
+
* amount: z.string().regex(/^\d+$/, "Must be a valid number"),
|
|
23
|
+
* })
|
|
24
|
+
*
|
|
25
|
+
* reactor.registerValidator("transfer", fromZodSchema(transferSchema))
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
export function fromZodSchema<T>(schema: {
|
|
29
|
+
safeParse: (data: unknown) => {
|
|
30
|
+
success: boolean
|
|
31
|
+
error?: {
|
|
32
|
+
issues: Array<{
|
|
33
|
+
path: (string | number)[]
|
|
34
|
+
message: string
|
|
35
|
+
code?: string
|
|
36
|
+
}>
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}): Validator<T[]> {
|
|
40
|
+
return (args: T[]): ValidationResult => {
|
|
41
|
+
// Validate the first argument (common IC pattern)
|
|
42
|
+
const result = schema.safeParse(args[0])
|
|
43
|
+
|
|
44
|
+
if (result.success) {
|
|
45
|
+
return { success: true }
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
const issues: ValidationIssue[] = result.error!.issues.map((issue) => ({
|
|
49
|
+
path: issue.path,
|
|
50
|
+
message: issue.message,
|
|
51
|
+
code: issue.code,
|
|
52
|
+
}))
|
|
53
|
+
|
|
54
|
+
return { success: false, issues }
|
|
55
|
+
}
|
|
56
|
+
}
|