@ic-reactor/core 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 +6 -4
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +2 -3
- package/dist/client.js.map +1 -1
- package/dist/display/types.d.ts +4 -2
- package/dist/display/types.d.ts.map +1 -1
- package/dist/display/visitor.d.ts +2 -1
- package/dist/display/visitor.d.ts.map +1 -1
- package/dist/display/visitor.js +146 -121
- 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/reactor.d.ts +17 -1
- package/dist/reactor.d.ts.map +1 -1
- package/dist/reactor.js +60 -44
- package/dist/reactor.js.map +1 -1
- package/dist/types/display-reactor.d.ts +2 -2
- package/dist/types/display-reactor.d.ts.map +1 -1
- package/dist/types/reactor.d.ts +7 -7
- package/dist/types/reactor.d.ts.map +1 -1
- package/dist/types/transform.d.ts +1 -1
- package/dist/types/transform.d.ts.map +1 -1
- package/dist/utils/helper.d.ts +20 -1
- package/dist/utils/helper.d.ts.map +1 -1
- package/dist/utils/helper.js +37 -6
- package/dist/utils/helper.js.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/dist/version.d.ts +1 -1
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +2 -1
- package/dist/version.js.map +1 -1
- package/package.json +7 -6
- package/src/client.ts +571 -0
- package/src/display/helper.ts +92 -0
- package/src/display/index.ts +3 -0
- package/src/display/types.ts +91 -0
- package/src/display/visitor.ts +415 -0
- package/src/display-reactor.ts +361 -0
- package/src/errors/index.ts +246 -0
- package/src/index.ts +8 -0
- package/src/reactor.ts +461 -0
- package/src/types/client.ts +110 -0
- package/src/types/display-reactor.ts +73 -0
- package/src/types/index.ts +6 -0
- package/src/types/reactor.ts +188 -0
- package/src/types/result.ts +50 -0
- package/src/types/transform.ts +29 -0
- package/src/types/variant.ts +39 -0
- package/src/utils/agent.ts +201 -0
- package/src/utils/candid.ts +112 -0
- package/src/utils/constants.ts +12 -0
- package/src/utils/helper.ts +155 -0
- package/src/utils/index.ts +5 -0
- package/src/utils/polling.ts +330 -0
- package/src/utils/zod.ts +56 -0
- package/src/version.ts +5 -0
package/dist/utils/helper.js
CHANGED
|
@@ -22,6 +22,21 @@ export const getProcessEnvNetwork = () => {
|
|
|
22
22
|
else
|
|
23
23
|
return process.env.DFX_NETWORK ?? "ic";
|
|
24
24
|
};
|
|
25
|
+
/**
|
|
26
|
+
* Detect whether the runtime should be considered *development*.
|
|
27
|
+
*
|
|
28
|
+
* Checks in order:
|
|
29
|
+
* - `import.meta.env?.DEV` (Vite / ESM environments)
|
|
30
|
+
* - `process.env.NODE_ENV === 'development'` (Node)
|
|
31
|
+
* - `process.env.DFX_NETWORK === 'local'` (local IC replica)
|
|
32
|
+
*/
|
|
33
|
+
export const isDev = () => {
|
|
34
|
+
const importMetaDev = typeof import.meta !== "undefined" && import.meta.env?.DEV;
|
|
35
|
+
const nodeDev = typeof process !== "undefined" &&
|
|
36
|
+
(process.env.NODE_ENV === "development" ||
|
|
37
|
+
process.env.DFX_NETWORK === "local");
|
|
38
|
+
return Boolean(importMetaDev || nodeDev);
|
|
39
|
+
};
|
|
25
40
|
/**
|
|
26
41
|
* Determines the network type based on the provided hostname.
|
|
27
42
|
*
|
|
@@ -73,17 +88,33 @@ export function extractOkResult(result) {
|
|
|
73
88
|
}
|
|
74
89
|
export const isNullish = (value) => value === null || value === undefined;
|
|
75
90
|
export const nonNullish = (value) => value !== null && value !== undefined;
|
|
91
|
+
/**
|
|
92
|
+
* Converts a Uint8Array or number array to a hex string (without 0x prefix)
|
|
93
|
+
*/
|
|
76
94
|
export const uint8ArrayToHex = (bytes) => {
|
|
77
|
-
|
|
95
|
+
return Array.from(bytes)
|
|
78
96
|
.map((b) => b.toString(16).padStart(2, "0"))
|
|
79
97
|
.join("");
|
|
80
|
-
return `0x${hex}`;
|
|
81
98
|
};
|
|
99
|
+
/**
|
|
100
|
+
* Converts a hex string to Uint8Array (accepts with or without 0x prefix)
|
|
101
|
+
*/
|
|
82
102
|
export const hexToUint8Array = (hex) => {
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
103
|
+
// Normalize: remove 0x prefix if present and filter invalid chars
|
|
104
|
+
const normalized = hex
|
|
105
|
+
.replace(/^0x/i, "")
|
|
106
|
+
.replace(/[^0-9a-f]/gi, "")
|
|
107
|
+
.toLowerCase();
|
|
108
|
+
// Handle odd-length hex strings by padding with leading zero
|
|
109
|
+
const paddedHex = normalized.length % 2 ? `0${normalized}` : normalized;
|
|
110
|
+
return new Uint8Array(paddedHex.match(/.{2}/g)?.map((byte) => parseInt(byte, 16)) ?? []);
|
|
111
|
+
};
|
|
112
|
+
/**
|
|
113
|
+
* Formats hex string with 0x prefix for display purposes
|
|
114
|
+
*/
|
|
115
|
+
export const formatHexDisplay = (hex) => {
|
|
116
|
+
const normalized = hex.replace(/^0x/i, "");
|
|
117
|
+
return `0x${normalized}`;
|
|
87
118
|
};
|
|
88
119
|
/**
|
|
89
120
|
* Converts a JSON-serializable value to a string, handling BigInt values.
|
package/dist/utils/helper.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helper.js","sourceRoot":"","sources":["../../src/utils/helper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAGzC,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAW,EAAE,EAAE;IACzC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACnC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CACzC,CAAA;AACH,CAAC,CAAA;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,EAAE;IACzC,OAAO,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,KAAK,OAAO,CAAA;AAC9E,CAAC,CAAA;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,EAAE;IACvC,IAAI,OAAO,OAAO,KAAK,WAAW;QAAE,OAAO,IAAI,CAAA;;QAC1C,OAAO,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,IAAI,CAAA;AAC7C,CAAC,CAAA;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAClC,QAAgB;IAEhB,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QACxD,OAAO,OAAO,CAAA;IAChB,CAAC;SAAM,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QAChE,OAAO,QAAQ,CAAA;IACjB,CAAC;SAAM,CAAC;QACN,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAAI,MAAS;IAC1C,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC1C,2BAA2B;QAC3B,OAAO,MAAqB,CAAA;IAC9B,CAAC;IAED,qCAAqC;IACrC,IAAI,IAAI,IAAI,MAAM,EAAE,CAAC;QACnB,OAAO,MAAM,CAAC,EAAiB,CAAA;IACjC,CAAC;IACD,uCAAuC;IACvC,IAAI,IAAI,IAAI,MAAM,EAAE,CAAC;QACnB,OAAO,MAAM,CAAC,EAAiB,CAAA;IACjC,CAAC;IAED,4DAA4D;IAC5D,IAAI,KAAK,IAAI,MAAM,EAAE,CAAC;QACpB,MAAM,IAAI,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IACrC,CAAC;IACD,8DAA8D;IAC9D,IAAI,KAAK,IAAI,MAAM,EAAE,CAAC;QACpB,MAAM,IAAI,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IACrC,CAAC;IAED,gCAAgC;IAChC,OAAO,MAAqB,CAAA;AAC9B,CAAC;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,KAAc,EAA6B,EAAE,CACrE,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAA;AAEvC,MAAM,CAAC,MAAM,UAAU,GAAG,CAAI,KAA2B,EAAc,EAAE,CACvE,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAA;AAEvC,MAAM,CAAC,MAAM,eAAe,GAAG,
|
|
1
|
+
{"version":3,"file":"helper.js","sourceRoot":"","sources":["../../src/utils/helper.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/dist/version.d.ts
CHANGED
package/dist/version.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AACA;;GAEG;AACH,eAAO,MAAM,OAAO,QAAU,CAAA"}
|
package/dist/version.js
CHANGED
package/dist/version.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAA"}
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AACzC;;GAEG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ic-reactor/core",
|
|
3
|
-
"version": "3.0.3
|
|
3
|
+
"version": "3.0.3",
|
|
4
4
|
"description": "IC Reactor Core Library",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.js",
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
},
|
|
17
17
|
"files": [
|
|
18
18
|
"dist",
|
|
19
|
+
"src",
|
|
19
20
|
"README.md"
|
|
20
21
|
],
|
|
21
22
|
"repository": {
|
|
@@ -41,10 +42,10 @@
|
|
|
41
42
|
"author": "Behrad Deylami",
|
|
42
43
|
"license": "MIT",
|
|
43
44
|
"dependencies": {
|
|
44
|
-
"
|
|
45
|
-
"zod": "^4.3.5"
|
|
45
|
+
"zod": "^4.3.6"
|
|
46
46
|
},
|
|
47
47
|
"peerDependencies": {
|
|
48
|
+
"zod": "^4.3.5",
|
|
48
49
|
"@icp-sdk/core": "^5.0.0",
|
|
49
50
|
"@icp-sdk/auth": "^5.0.0",
|
|
50
51
|
"@tanstack/query-core": "^5.0.0"
|
|
@@ -63,10 +64,10 @@
|
|
|
63
64
|
"@size-limit/preset-small-lib": "^12.0.0",
|
|
64
65
|
"@tanstack/query-core": "^5.90",
|
|
65
66
|
"@tanstack/react-query": "^5.90",
|
|
66
|
-
"@types/node": "^25.0
|
|
67
|
+
"@types/node": "^25.3.0",
|
|
67
68
|
"fake-indexeddb": "^6.2.5",
|
|
68
69
|
"size-limit": "^12.0.0",
|
|
69
|
-
"vitest": "^4.0.
|
|
70
|
+
"vitest": "^4.0.18"
|
|
70
71
|
},
|
|
71
72
|
"size-limit": [
|
|
72
73
|
{
|
|
@@ -81,6 +82,6 @@
|
|
|
81
82
|
"test": "vitest run",
|
|
82
83
|
"version:sync": "node -e \"const pkg = require('./package.json'); const fs = require('fs'); fs.writeFileSync('./src/version.ts', '/**\\n * Library version - automatically synced from package.json.\\n */\\nexport const VERSION = \\\"' + pkg.version + '\\\"\\n');\"",
|
|
83
84
|
"size": "size-limit",
|
|
84
|
-
"analyze": "size-limit
|
|
85
|
+
"analyze": "size-limit"
|
|
85
86
|
}
|
|
86
87
|
}
|