@ic-reactor/core 2.0.0 → 3.0.0-beta.1
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/client.d.ts +161 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +499 -0
- package/dist/client.js.map +1 -0
- package/dist/display/helper.d.ts +10 -0
- package/dist/display/helper.d.ts.map +1 -0
- package/dist/display/helper.js +67 -0
- package/dist/display/helper.js.map +1 -0
- package/dist/display/index.d.ts +4 -0
- package/dist/display/index.d.ts.map +1 -0
- package/dist/display/index.js +4 -0
- package/dist/display/index.js.map +1 -0
- package/dist/display/types.d.ts +31 -0
- package/dist/display/types.d.ts.map +1 -0
- package/dist/display/types.js +2 -0
- package/dist/display/types.js.map +1 -0
- package/dist/display/visitor.d.ts +28 -0
- package/dist/display/visitor.d.ts.map +1 -0
- package/dist/display/visitor.js +318 -0
- package/dist/display/visitor.js.map +1 -0
- package/dist/display-reactor.d.ts +245 -0
- package/dist/display-reactor.d.ts.map +1 -0
- package/dist/display-reactor.js +331 -0
- package/dist/display-reactor.js.map +1 -0
- package/dist/errors/index.d.ts +118 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/index.js +204 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/index.d.ts +9 -8
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +9 -47
- package/dist/index.js.map +1 -0
- package/dist/reactor.d.ts +133 -0
- package/dist/reactor.d.ts.map +1 -0
- package/dist/reactor.js +325 -0
- package/dist/reactor.js.map +1 -0
- package/dist/types/client.d.ts +89 -0
- package/dist/types/client.d.ts.map +1 -0
- package/dist/types/client.js +2 -0
- package/dist/types/client.js.map +1 -0
- package/dist/types/index.d.ts +6 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +6 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/reactor.d.ts +117 -0
- package/dist/types/reactor.d.ts.map +1 -0
- package/dist/types/reactor.js +2 -0
- package/dist/types/reactor.js.map +1 -0
- package/dist/types/result.d.ts +48 -0
- package/dist/types/result.d.ts.map +1 -0
- package/dist/types/result.js +2 -0
- package/dist/types/result.js.map +1 -0
- package/dist/types/transform.d.ts +7 -0
- package/dist/types/transform.d.ts.map +1 -0
- package/dist/types/transform.js +2 -0
- package/dist/types/transform.js.map +1 -0
- package/dist/types/variant.d.ts +18 -0
- package/dist/types/variant.d.ts.map +1 -0
- package/dist/types/variant.js +2 -0
- package/dist/types/variant.js.map +1 -0
- package/dist/utils/agent.d.ts +30 -1
- package/dist/utils/agent.d.ts.map +1 -0
- package/dist/utils/agent.js +118 -16
- package/dist/utils/agent.js.map +1 -0
- package/dist/utils/candid.d.ts +39 -1
- package/dist/utils/candid.d.ts.map +1 -0
- package/dist/utils/candid.js +76 -16
- package/dist/utils/candid.js.map +1 -0
- package/dist/utils/constants.d.ts +3 -4
- package/dist/utils/constants.d.ts.map +1 -0
- package/dist/utils/constants.js +7 -11
- package/dist/utils/constants.js.map +1 -0
- package/dist/utils/helper.d.ts +16 -39
- package/dist/utils/helper.d.ts.map +1 -0
- package/dist/utils/helper.js +53 -155
- package/dist/utils/helper.js.map +1 -0
- package/dist/utils/index.d.ts +4 -5
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +5 -49
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/polling.d.ts +176 -0
- package/dist/utils/polling.d.ts.map +1 -0
- package/dist/utils/polling.js +170 -0
- package/dist/utils/polling.js.map +1 -0
- package/dist/version.d.ts +5 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +5 -0
- package/dist/version.js.map +1 -0
- package/package.json +65 -39
- package/LICENSE.md +0 -8
- package/README.md +0 -283
- package/dist/classes/actor/index.d.ts +0 -34
- package/dist/classes/actor/index.js +0 -245
- package/dist/classes/actor/types.d.ts +0 -113
- package/dist/classes/actor/types.js +0 -2
- package/dist/classes/adapter/index.d.ts +0 -19
- package/dist/classes/adapter/index.js +0 -140
- package/dist/classes/adapter/types.d.ts +0 -14
- package/dist/classes/adapter/types.js +0 -2
- package/dist/classes/agent/index.d.ts +0 -36
- package/dist/classes/agent/index.js +0 -218
- package/dist/classes/agent/types.d.ts +0 -87
- package/dist/classes/agent/types.js +0 -2
- package/dist/classes/index.d.ts +0 -3
- package/dist/classes/index.js +0 -19
- package/dist/classes/types.d.ts +0 -15
- package/dist/classes/types.js +0 -20
- package/dist/createActorManager.d.ts +0 -12
- package/dist/createActorManager.js +0 -17
- package/dist/createAgentManager.d.ts +0 -12
- package/dist/createAgentManager.js +0 -17
- package/dist/createCandidAdapter.d.ts +0 -11
- package/dist/createCandidAdapter.js +0 -16
- package/dist/createReactorCore.d.ts +0 -10
- package/dist/createReactorCore.js +0 -112
- package/dist/createReactorStore.d.ts +0 -11
- package/dist/createReactorStore.js +0 -31
- package/dist/types.d.ts +0 -96
- package/dist/types.js +0 -17
- package/dist/utils/hash.d.ts +0 -12
- package/dist/utils/hash.js +0 -70
- package/dist/utils/principal.d.ts +0 -1
- package/dist/utils/principal.js +0 -17
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { NullishType } from "../display/types";
|
|
2
|
+
/**
|
|
3
|
+
* Interface representing the generic shape of an API error.
|
|
4
|
+
*/
|
|
5
|
+
export interface ApiError {
|
|
6
|
+
code: string;
|
|
7
|
+
message: NullishType<string>;
|
|
8
|
+
details: NullishType<Map<string, string>>;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Error thrown when there's an issue calling the canister.
|
|
12
|
+
* This includes network errors, agent errors, canister not found, etc.
|
|
13
|
+
*/
|
|
14
|
+
export declare class CallError extends Error {
|
|
15
|
+
readonly cause?: unknown;
|
|
16
|
+
constructor(message: string, cause?: unknown);
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Error thrown when the canister returns an Err result.
|
|
20
|
+
* The `err` property contains the typed error value from the canister.
|
|
21
|
+
*
|
|
22
|
+
* It also supports accessing `code`, `message`, and `details` directly
|
|
23
|
+
* if the error object follows the common API error format or is a variant.
|
|
24
|
+
*
|
|
25
|
+
* @typeParam E - The type of the error value from the canister
|
|
26
|
+
*/
|
|
27
|
+
export declare class CanisterError<E = unknown> extends Error {
|
|
28
|
+
/** The raw error value from the canister */
|
|
29
|
+
readonly err: E;
|
|
30
|
+
/** The error code, extracted from the error object or variant key */
|
|
31
|
+
readonly code: string;
|
|
32
|
+
/** Optional error details Map */
|
|
33
|
+
readonly details: NullishType<Map<string, string>>;
|
|
34
|
+
constructor(err: E);
|
|
35
|
+
/**
|
|
36
|
+
* Type guard to check if an error object follows the API error format.
|
|
37
|
+
*/
|
|
38
|
+
static isApiError(error: unknown): error is ApiError;
|
|
39
|
+
/**
|
|
40
|
+
* Factory method to create a CanisterError from any error.
|
|
41
|
+
* If the input is already a CanisterError, it returns it.
|
|
42
|
+
* If it's an API error shape, it wraps it.
|
|
43
|
+
* Otherwise, it creates a new CanisterError with an "UNKNOWN_ERROR" code.
|
|
44
|
+
*/
|
|
45
|
+
static create(error: unknown, message?: string): CanisterError;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Type guard to check if an error is a CanisterError.
|
|
49
|
+
* Preserves the generic type E from the input when used in type narrowing.
|
|
50
|
+
*
|
|
51
|
+
* @example
|
|
52
|
+
* ```typescript
|
|
53
|
+
* // err is typed as CanisterError<TransferError> | CallError
|
|
54
|
+
* if (isCanisterError(err)) {
|
|
55
|
+
* // err.err is typed as TransferError (preserved!)
|
|
56
|
+
* console.log(err.err)
|
|
57
|
+
* }
|
|
58
|
+
* ```
|
|
59
|
+
*/
|
|
60
|
+
export declare function isCanisterError<E>(error: CanisterError<E> | CallError): error is CanisterError<E>;
|
|
61
|
+
export declare function isCanisterError(error: unknown): error is CanisterError<unknown>;
|
|
62
|
+
/**
|
|
63
|
+
* Type guard to check if an error is a CallError
|
|
64
|
+
*/
|
|
65
|
+
export declare function isCallError(error: unknown): error is CallError;
|
|
66
|
+
/**
|
|
67
|
+
* Represents a single validation issue
|
|
68
|
+
*/
|
|
69
|
+
export interface ValidationIssue {
|
|
70
|
+
/** Path to the invalid field (e.g., ["to", "amount"]) */
|
|
71
|
+
path: (string | number)[];
|
|
72
|
+
/** Human-readable error message */
|
|
73
|
+
message: string;
|
|
74
|
+
/** Validation code (e.g., "required", "min_length") */
|
|
75
|
+
code?: string;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Error thrown when argument validation fails before calling the canister.
|
|
79
|
+
* Contains detailed information about which fields failed validation.
|
|
80
|
+
*
|
|
81
|
+
* @example
|
|
82
|
+
* ```typescript
|
|
83
|
+
* try {
|
|
84
|
+
* await reactor.callMethod({
|
|
85
|
+
* functionName: "transfer",
|
|
86
|
+
* args: [{ to: "", amount: -100 }],
|
|
87
|
+
* })
|
|
88
|
+
* } catch (error) {
|
|
89
|
+
* if (isValidationError(error)) {
|
|
90
|
+
* console.log(error.issues)
|
|
91
|
+
* // [
|
|
92
|
+
* // { path: ["to"], message: "Recipient is required" },
|
|
93
|
+
* // { path: ["amount"], message: "Amount must be positive" }
|
|
94
|
+
* // ]
|
|
95
|
+
* }
|
|
96
|
+
* }
|
|
97
|
+
* ```
|
|
98
|
+
*/
|
|
99
|
+
export declare class ValidationError extends Error {
|
|
100
|
+
/** Array of validation issues */
|
|
101
|
+
readonly issues: ValidationIssue[];
|
|
102
|
+
/** The method name that failed validation */
|
|
103
|
+
readonly methodName: string;
|
|
104
|
+
constructor(methodName: string, issues: ValidationIssue[]);
|
|
105
|
+
/**
|
|
106
|
+
* Get issues for a specific field path
|
|
107
|
+
*/
|
|
108
|
+
getIssuesForPath(path: string): ValidationIssue[];
|
|
109
|
+
/**
|
|
110
|
+
* Check if a specific field has errors
|
|
111
|
+
*/
|
|
112
|
+
hasErrorForPath(path: string): boolean;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Type guard to check if an error is a ValidationError
|
|
116
|
+
*/
|
|
117
|
+
export declare function isValidationError(error: unknown): error is ValidationError;
|
|
118
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAE9C;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;IAC5B,OAAO,EAAE,WAAW,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;CAC1C;AAED;;;GAGG;AACH,qBAAa,SAAU,SAAQ,KAAK;IAClC,SAAgB,KAAK,CAAC,EAAE,OAAO,CAAA;gBAEnB,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO;CAU7C;AAED;;;;;;;;GAQG;AACH,qBAAa,aAAa,CAAC,CAAC,GAAG,OAAO,CAAE,SAAQ,KAAK;IACnD,4CAA4C;IAC5C,SAAgB,GAAG,EAAE,CAAC,CAAA;IACtB,qEAAqE;IACrE,SAAgB,IAAI,EAAE,MAAM,CAAA;IAC5B,iCAAiC;IACjC,SAAgB,OAAO,EAAE,WAAW,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;gBAE7C,GAAG,EAAE,CAAC;IAsDlB;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,QAAQ;IAQpD;;;;;OAKG;IACH,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,aAAa;CAkB/D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAC/B,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,SAAS,GAClC,KAAK,IAAI,aAAa,CAAC,CAAC,CAAC,CAAA;AAC5B,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,aAAa,CAAC,OAAO,CAAC,CAAA;AAOhF;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,SAAS,CAE9D;AAMD;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,yDAAyD;IACzD,IAAI,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;IACzB,mCAAmC;IACnC,OAAO,EAAE,MAAM,CAAA;IACf,uDAAuD;IACvD,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,eAAgB,SAAQ,KAAK;IACxC,iCAAiC;IACjC,SAAgB,MAAM,EAAE,eAAe,EAAE,CAAA;IACzC,6CAA6C;IAC7C,SAAgB,UAAU,EAAE,MAAM,CAAA;gBAEtB,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE;IAazD;;OAEG;IACH,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,EAAE;IAIjD;;OAEG;IACH,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;CAGvC;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,eAAe,CAE1E"}
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Error thrown when there's an issue calling the canister.
|
|
3
|
+
* This includes network errors, agent errors, canister not found, etc.
|
|
4
|
+
*/
|
|
5
|
+
export class CallError extends Error {
|
|
6
|
+
constructor(message, cause) {
|
|
7
|
+
super(message);
|
|
8
|
+
Object.defineProperty(this, "cause", {
|
|
9
|
+
enumerable: true,
|
|
10
|
+
configurable: true,
|
|
11
|
+
writable: true,
|
|
12
|
+
value: void 0
|
|
13
|
+
});
|
|
14
|
+
this.name = "CallError";
|
|
15
|
+
this.cause = cause;
|
|
16
|
+
// Maintains proper stack trace for where our error was thrown
|
|
17
|
+
if (Error.captureStackTrace) {
|
|
18
|
+
Error.captureStackTrace(this, CallError);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Error thrown when the canister returns an Err result.
|
|
24
|
+
* The `err` property contains the typed error value from the canister.
|
|
25
|
+
*
|
|
26
|
+
* It also supports accessing `code`, `message`, and `details` directly
|
|
27
|
+
* if the error object follows the common API error format or is a variant.
|
|
28
|
+
*
|
|
29
|
+
* @typeParam E - The type of the error value from the canister
|
|
30
|
+
*/
|
|
31
|
+
export class CanisterError extends Error {
|
|
32
|
+
constructor(err) {
|
|
33
|
+
let code;
|
|
34
|
+
let message;
|
|
35
|
+
let details = undefined;
|
|
36
|
+
let isApiShape = false;
|
|
37
|
+
if (typeof err === "object" && err !== null) {
|
|
38
|
+
// 1. Check for structured ApiError shape (has code)
|
|
39
|
+
if ("code" in err && typeof err.code === "string") {
|
|
40
|
+
code = err.code;
|
|
41
|
+
isApiShape = true;
|
|
42
|
+
if ("message" in err && typeof err.message === "string") {
|
|
43
|
+
message = err.message;
|
|
44
|
+
}
|
|
45
|
+
if ("details" in err) {
|
|
46
|
+
details = err.details;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
// 2. Check for ic-reactor transformed variant shape (_type)
|
|
50
|
+
else if ("_type" in err && typeof err._type === "string") {
|
|
51
|
+
code = err._type;
|
|
52
|
+
}
|
|
53
|
+
// 3. Simple variant check (single key object)
|
|
54
|
+
else {
|
|
55
|
+
const keys = Object.keys(err);
|
|
56
|
+
if (keys.length === 1) {
|
|
57
|
+
code = keys[0];
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
const finalCode = code ?? "UNKNOWN_ERROR";
|
|
62
|
+
const finalMessage = message ??
|
|
63
|
+
(typeof err === "object" && err !== null
|
|
64
|
+
? JSON.stringify(err, (_, v) => (typeof v === "bigint" ? v.toString() : v), 2)
|
|
65
|
+
: String(err));
|
|
66
|
+
super(isApiShape ? finalMessage : `Canister Error: ${finalMessage}`);
|
|
67
|
+
/** The raw error value from the canister */
|
|
68
|
+
Object.defineProperty(this, "err", {
|
|
69
|
+
enumerable: true,
|
|
70
|
+
configurable: true,
|
|
71
|
+
writable: true,
|
|
72
|
+
value: void 0
|
|
73
|
+
});
|
|
74
|
+
/** The error code, extracted from the error object or variant key */
|
|
75
|
+
Object.defineProperty(this, "code", {
|
|
76
|
+
enumerable: true,
|
|
77
|
+
configurable: true,
|
|
78
|
+
writable: true,
|
|
79
|
+
value: void 0
|
|
80
|
+
});
|
|
81
|
+
/** Optional error details Map */
|
|
82
|
+
Object.defineProperty(this, "details", {
|
|
83
|
+
enumerable: true,
|
|
84
|
+
configurable: true,
|
|
85
|
+
writable: true,
|
|
86
|
+
value: void 0
|
|
87
|
+
});
|
|
88
|
+
this.name = "CanisterError";
|
|
89
|
+
this.err = err;
|
|
90
|
+
this.code = finalCode;
|
|
91
|
+
this.details = details;
|
|
92
|
+
// Maintains proper stack trace for where our error was thrown
|
|
93
|
+
if (Error.captureStackTrace) {
|
|
94
|
+
Error.captureStackTrace(this, CanisterError);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Type guard to check if an error object follows the API error format.
|
|
99
|
+
*/
|
|
100
|
+
static isApiError(error) {
|
|
101
|
+
if (typeof error !== "object" || error === null) {
|
|
102
|
+
return false;
|
|
103
|
+
}
|
|
104
|
+
return "code" in error && "message" in error && "details" in error;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Factory method to create a CanisterError from any error.
|
|
108
|
+
* If the input is already a CanisterError, it returns it.
|
|
109
|
+
* If it's an API error shape, it wraps it.
|
|
110
|
+
* Otherwise, it creates a new CanisterError with an "UNKNOWN_ERROR" code.
|
|
111
|
+
*/
|
|
112
|
+
static create(error, message) {
|
|
113
|
+
if (error instanceof CanisterError) {
|
|
114
|
+
return error;
|
|
115
|
+
}
|
|
116
|
+
if (CanisterError.isApiError(error)) {
|
|
117
|
+
return new CanisterError(error);
|
|
118
|
+
}
|
|
119
|
+
return new CanisterError({
|
|
120
|
+
code: "UNKNOWN_ERROR",
|
|
121
|
+
message: error instanceof Error
|
|
122
|
+
? error.message
|
|
123
|
+
: message || "An unknown error occurred",
|
|
124
|
+
details: undefined,
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
export function isCanisterError(error) {
|
|
129
|
+
return error instanceof CanisterError;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Type guard to check if an error is a CallError
|
|
133
|
+
*/
|
|
134
|
+
export function isCallError(error) {
|
|
135
|
+
return error instanceof CallError;
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Error thrown when argument validation fails before calling the canister.
|
|
139
|
+
* Contains detailed information about which fields failed validation.
|
|
140
|
+
*
|
|
141
|
+
* @example
|
|
142
|
+
* ```typescript
|
|
143
|
+
* try {
|
|
144
|
+
* await reactor.callMethod({
|
|
145
|
+
* functionName: "transfer",
|
|
146
|
+
* args: [{ to: "", amount: -100 }],
|
|
147
|
+
* })
|
|
148
|
+
* } catch (error) {
|
|
149
|
+
* if (isValidationError(error)) {
|
|
150
|
+
* console.log(error.issues)
|
|
151
|
+
* // [
|
|
152
|
+
* // { path: ["to"], message: "Recipient is required" },
|
|
153
|
+
* // { path: ["amount"], message: "Amount must be positive" }
|
|
154
|
+
* // ]
|
|
155
|
+
* }
|
|
156
|
+
* }
|
|
157
|
+
* ```
|
|
158
|
+
*/
|
|
159
|
+
export class ValidationError extends Error {
|
|
160
|
+
constructor(methodName, issues) {
|
|
161
|
+
const messages = issues.map((i) => i.message).join(", ");
|
|
162
|
+
super(`Validation failed for "${methodName}": ${messages}`);
|
|
163
|
+
/** Array of validation issues */
|
|
164
|
+
Object.defineProperty(this, "issues", {
|
|
165
|
+
enumerable: true,
|
|
166
|
+
configurable: true,
|
|
167
|
+
writable: true,
|
|
168
|
+
value: void 0
|
|
169
|
+
});
|
|
170
|
+
/** The method name that failed validation */
|
|
171
|
+
Object.defineProperty(this, "methodName", {
|
|
172
|
+
enumerable: true,
|
|
173
|
+
configurable: true,
|
|
174
|
+
writable: true,
|
|
175
|
+
value: void 0
|
|
176
|
+
});
|
|
177
|
+
this.name = "ValidationError";
|
|
178
|
+
this.methodName = methodName;
|
|
179
|
+
this.issues = issues;
|
|
180
|
+
// Maintains proper stack trace for where our error was thrown
|
|
181
|
+
if (Error.captureStackTrace) {
|
|
182
|
+
Error.captureStackTrace(this, ValidationError);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Get issues for a specific field path
|
|
187
|
+
*/
|
|
188
|
+
getIssuesForPath(path) {
|
|
189
|
+
return this.issues.filter((issue) => issue.path.includes(path));
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Check if a specific field has errors
|
|
193
|
+
*/
|
|
194
|
+
hasErrorForPath(path) {
|
|
195
|
+
return this.issues.some((issue) => issue.path.includes(path));
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Type guard to check if an error is a ValidationError
|
|
200
|
+
*/
|
|
201
|
+
export function isValidationError(error) {
|
|
202
|
+
return error instanceof ValidationError;
|
|
203
|
+
}
|
|
204
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
export * from "./
|
|
2
|
-
export * from "./
|
|
3
|
-
export * from "./
|
|
4
|
-
export * from "./
|
|
5
|
-
export * from "./
|
|
6
|
-
export *
|
|
7
|
-
export *
|
|
8
|
-
export *
|
|
1
|
+
export * from "./reactor";
|
|
2
|
+
export * from "./client";
|
|
3
|
+
export * from "./utils";
|
|
4
|
+
export * from "./display";
|
|
5
|
+
export * from "./display-reactor";
|
|
6
|
+
export * from "./types";
|
|
7
|
+
export * from "./errors";
|
|
8
|
+
export * from "./version";
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,mBAAmB,CAAA;AACjC,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -1,47 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
19
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
20
|
-
};
|
|
21
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
22
|
-
var ownKeys = function(o) {
|
|
23
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
24
|
-
var ar = [];
|
|
25
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
26
|
-
return ar;
|
|
27
|
-
};
|
|
28
|
-
return ownKeys(o);
|
|
29
|
-
};
|
|
30
|
-
return function (mod) {
|
|
31
|
-
if (mod && mod.__esModule) return mod;
|
|
32
|
-
var result = {};
|
|
33
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
34
|
-
__setModuleDefault(result, mod);
|
|
35
|
-
return result;
|
|
36
|
-
};
|
|
37
|
-
})();
|
|
38
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.utils = exports.types = exports.classes = void 0;
|
|
40
|
-
__exportStar(require("./createReactorCore"), exports);
|
|
41
|
-
__exportStar(require("./createReactorStore"), exports);
|
|
42
|
-
__exportStar(require("./createCandidAdapter"), exports);
|
|
43
|
-
__exportStar(require("./createActorManager"), exports);
|
|
44
|
-
__exportStar(require("./createAgentManager"), exports);
|
|
45
|
-
exports.classes = __importStar(require("./classes"));
|
|
46
|
-
exports.types = __importStar(require("./types"));
|
|
47
|
-
exports.utils = __importStar(require("./utils"));
|
|
1
|
+
export * from "./reactor";
|
|
2
|
+
export * from "./client";
|
|
3
|
+
export * from "./utils";
|
|
4
|
+
export * from "./display";
|
|
5
|
+
export * from "./display-reactor";
|
|
6
|
+
export * from "./types";
|
|
7
|
+
export * from "./errors";
|
|
8
|
+
export * from "./version";
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,mBAAmB,CAAA;AACjC,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import type { CallConfig, PollingOptions, ReadStateOptions } from "@icp-sdk/core/agent";
|
|
2
|
+
import type { ClientManager } from "./client";
|
|
3
|
+
import type { QueryKey, FetchQueryOptions } from "@tanstack/query-core";
|
|
4
|
+
import type { ReactorParameters, BaseActor, ActorMethodParameters, ActorMethodReturnType, FunctionName, TransformKey, ReactorArgs, ReactorReturnOk, ReactorQueryParams, ReactorCallParams } from "./types/reactor";
|
|
5
|
+
import { IDL } from "@icp-sdk/core/candid";
|
|
6
|
+
import { Principal } from "@icp-sdk/core/principal";
|
|
7
|
+
/**
|
|
8
|
+
* Reactor class for interacting with IC canisters.
|
|
9
|
+
*
|
|
10
|
+
* This class provides core functionality for:
|
|
11
|
+
* - Direct agent calls using agent.call() and agent.query()
|
|
12
|
+
* - Query caching with TanStack Query integration
|
|
13
|
+
* - Method calls with result unwrapping
|
|
14
|
+
*
|
|
15
|
+
* @typeParam A - The actor service type
|
|
16
|
+
* @typeParam T - The type transformation to apply (default: candid = raw Candid types)
|
|
17
|
+
*/
|
|
18
|
+
export declare class Reactor<A = BaseActor, T extends TransformKey = "candid"> {
|
|
19
|
+
/** Phantom type brand for inference - never assigned at runtime */
|
|
20
|
+
readonly _actor: A;
|
|
21
|
+
readonly transform: T;
|
|
22
|
+
clientManager: ClientManager;
|
|
23
|
+
name: string;
|
|
24
|
+
canisterId: Principal;
|
|
25
|
+
service: IDL.ServiceClass;
|
|
26
|
+
pollingOptions: PollingOptions;
|
|
27
|
+
constructor(config: ReactorParameters<A>);
|
|
28
|
+
protected verifyCanister(): void;
|
|
29
|
+
/**
|
|
30
|
+
* Get the service interface (IDL.ServiceClass) for this reactor.
|
|
31
|
+
* Useful for introspection and codec generation.
|
|
32
|
+
* @returns The service interface
|
|
33
|
+
*/
|
|
34
|
+
getServiceInterface(): IDL.ServiceClass;
|
|
35
|
+
/**
|
|
36
|
+
* Get the function class for a specific method.
|
|
37
|
+
* @param methodName - The name of the method
|
|
38
|
+
* @returns The function class or null if not found
|
|
39
|
+
*/
|
|
40
|
+
protected getFuncClass<M extends FunctionName<A>>(methodName: M): IDL.FuncClass | null;
|
|
41
|
+
/**
|
|
42
|
+
* Check if a method is a query method (query or composite_query).
|
|
43
|
+
*/
|
|
44
|
+
protected isQueryMethod<M extends FunctionName<A>>(methodName: M): boolean;
|
|
45
|
+
/**
|
|
46
|
+
* Transform arguments before calling the method.
|
|
47
|
+
* Default implementation returns arguments as-is.
|
|
48
|
+
*/
|
|
49
|
+
protected transformArgs<M extends FunctionName<A>>(_methodName: M, args?: ReactorArgs<A, M, T>): ActorMethodParameters<A[M]>;
|
|
50
|
+
/**
|
|
51
|
+
* Transform the result after calling the method.
|
|
52
|
+
* Default implementation extracts Ok value from Result types.
|
|
53
|
+
*/
|
|
54
|
+
protected transformResult<M extends FunctionName<A>>(_methodName: M, result: ActorMethodReturnType<A[M]>): ReactorReturnOk<A, M, T>;
|
|
55
|
+
generateQueryKey<M extends FunctionName<A>>(params: ReactorQueryParams<A, M, T>): QueryKey;
|
|
56
|
+
getQueryOptions<M extends FunctionName<A>>(params: ReactorCallParams<A, M, T>): FetchQueryOptions<ReactorReturnOk<A, M, T>>;
|
|
57
|
+
/**
|
|
58
|
+
* Invalidate cached queries for this canister.
|
|
59
|
+
* This will mark matching queries as stale and trigger a refetch for any active queries.
|
|
60
|
+
*
|
|
61
|
+
* @param params - Optional parameters to filter the invalidation
|
|
62
|
+
*
|
|
63
|
+
* @example
|
|
64
|
+
* ```typescript
|
|
65
|
+
* // Invalidate all queries for this canister
|
|
66
|
+
* reactor.invalidateQueries()
|
|
67
|
+
*
|
|
68
|
+
* // Invalidate only 'getUser' queries
|
|
69
|
+
* reactor.invalidateQueries({ functionName: 'getUser' })
|
|
70
|
+
*
|
|
71
|
+
* // Invalidate 'getUser' query for specific user
|
|
72
|
+
* reactor.invalidateQueries({ functionName: 'getUser', args: ['user-1'] })
|
|
73
|
+
* ```
|
|
74
|
+
*/
|
|
75
|
+
invalidateQueries<M extends FunctionName<A>>(params?: Partial<ReactorQueryParams<A, M, T>>): void;
|
|
76
|
+
/**
|
|
77
|
+
* Call a canister method directly using agent.call() or agent.query().
|
|
78
|
+
* This is the recommended approach for interacting with canisters.
|
|
79
|
+
*
|
|
80
|
+
* @example
|
|
81
|
+
* ```typescript
|
|
82
|
+
* // Query method
|
|
83
|
+
* const result = await reactor.callMethod({
|
|
84
|
+
* functionName: 'greet',
|
|
85
|
+
* args: ['world'],
|
|
86
|
+
* });
|
|
87
|
+
*
|
|
88
|
+
* // Update method with options
|
|
89
|
+
* const result = await reactor.callMethod({
|
|
90
|
+
* functionName: 'transfer',
|
|
91
|
+
* args: [{ to: principal, amount: 100n }],
|
|
92
|
+
* callConfig: { effectiveCanisterId: principal },
|
|
93
|
+
* });
|
|
94
|
+
* ```
|
|
95
|
+
*/
|
|
96
|
+
callMethod<M extends FunctionName<A>>(params: Omit<ReactorCallParams<A, M, T>, "queryKey">): Promise<ReactorReturnOk<A, M, T>>;
|
|
97
|
+
/**
|
|
98
|
+
* Fetch data from the canister and cache it using React Query.
|
|
99
|
+
* This method ensures the data is in the cache and returns it.
|
|
100
|
+
*/
|
|
101
|
+
fetchQuery<M extends FunctionName<A>>(params: ReactorCallParams<A, M, T>): Promise<ReactorReturnOk<A, M, T>>;
|
|
102
|
+
/**
|
|
103
|
+
* Get the current data from the cache without fetching.
|
|
104
|
+
*/
|
|
105
|
+
getQueryData<M extends FunctionName<A>>(params: ReactorQueryParams<A, M, T>): ReactorReturnOk<A, M, T> | undefined;
|
|
106
|
+
/**
|
|
107
|
+
* Execute a query call using agent.query()
|
|
108
|
+
*/
|
|
109
|
+
protected executeQuery(methodName: string, arg: Uint8Array, callConfig?: CallConfig): Promise<Uint8Array>;
|
|
110
|
+
/**
|
|
111
|
+
* Execute an update call using agent.call()
|
|
112
|
+
*/
|
|
113
|
+
protected executeCall(methodName: string, arg: Uint8Array, callConfig?: CallConfig): Promise<Uint8Array>;
|
|
114
|
+
/**
|
|
115
|
+
* Get the subnet ID for this canister.
|
|
116
|
+
*/
|
|
117
|
+
subnetId(): Promise<Principal>;
|
|
118
|
+
/**
|
|
119
|
+
* Get the subnet state for this canister.
|
|
120
|
+
*/
|
|
121
|
+
subnetState(options: ReadStateOptions): Promise<import("@icp-sdk/core/agent").ReadStateResponse>;
|
|
122
|
+
/**
|
|
123
|
+
* Get the query client from clientManager.
|
|
124
|
+
* This is the recommended way to access the query client for direct queries.
|
|
125
|
+
*/
|
|
126
|
+
get queryClient(): import("@tanstack/query-core").QueryClient;
|
|
127
|
+
/**
|
|
128
|
+
* Get the agent from clientManager.
|
|
129
|
+
* This is the recommended way to access the agent for direct calls.
|
|
130
|
+
*/
|
|
131
|
+
get agent(): import("@icp-sdk/core/agent").HttpAgent;
|
|
132
|
+
}
|
|
133
|
+
//# sourceMappingURL=reactor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reactor.d.ts","sourceRoot":"","sources":["../src/reactor.ts"],"names":[],"mappings":"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"}
|