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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/README.md +33 -1
  2. package/dist/adapter.js +2 -1
  3. package/dist/adapter.js.map +1 -1
  4. package/dist/display-reactor.d.ts +4 -13
  5. package/dist/display-reactor.d.ts.map +1 -1
  6. package/dist/display-reactor.js +22 -8
  7. package/dist/display-reactor.js.map +1 -1
  8. package/dist/index.d.ts +3 -1
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +3 -1
  11. package/dist/index.js.map +1 -1
  12. package/dist/metadata-display-reactor.d.ts +108 -0
  13. package/dist/metadata-display-reactor.d.ts.map +1 -0
  14. package/dist/metadata-display-reactor.js +141 -0
  15. package/dist/metadata-display-reactor.js.map +1 -0
  16. package/dist/reactor.d.ts +1 -1
  17. package/dist/reactor.d.ts.map +1 -1
  18. package/dist/reactor.js +10 -6
  19. package/dist/reactor.js.map +1 -1
  20. package/dist/types.d.ts +38 -7
  21. package/dist/types.d.ts.map +1 -1
  22. package/dist/utils.d.ts +4 -4
  23. package/dist/utils.d.ts.map +1 -1
  24. package/dist/utils.js +33 -10
  25. package/dist/utils.js.map +1 -1
  26. package/dist/visitor/arguments/helpers.d.ts +55 -0
  27. package/dist/visitor/arguments/helpers.d.ts.map +1 -0
  28. package/dist/visitor/arguments/helpers.js +123 -0
  29. package/dist/visitor/arguments/helpers.js.map +1 -0
  30. package/dist/visitor/arguments/index.d.ts +101 -0
  31. package/dist/visitor/arguments/index.d.ts.map +1 -0
  32. package/dist/visitor/arguments/index.js +780 -0
  33. package/dist/visitor/arguments/index.js.map +1 -0
  34. package/dist/visitor/arguments/types.d.ts +270 -0
  35. package/dist/visitor/arguments/types.d.ts.map +1 -0
  36. package/dist/visitor/arguments/types.js +26 -0
  37. package/dist/visitor/arguments/types.js.map +1 -0
  38. package/dist/visitor/constants.d.ts +4 -0
  39. package/dist/visitor/constants.d.ts.map +1 -0
  40. package/dist/visitor/constants.js +73 -0
  41. package/dist/visitor/constants.js.map +1 -0
  42. package/dist/visitor/helpers.d.ts +30 -0
  43. package/dist/visitor/helpers.d.ts.map +1 -0
  44. package/dist/visitor/helpers.js +204 -0
  45. package/dist/visitor/helpers.js.map +1 -0
  46. package/dist/visitor/index.d.ts +5 -0
  47. package/dist/visitor/index.d.ts.map +1 -0
  48. package/dist/visitor/index.js +5 -0
  49. package/dist/visitor/index.js.map +1 -0
  50. package/dist/visitor/returns/index.d.ts +38 -0
  51. package/dist/visitor/returns/index.d.ts.map +1 -0
  52. package/dist/visitor/returns/index.js +460 -0
  53. package/dist/visitor/returns/index.js.map +1 -0
  54. package/dist/visitor/returns/types.d.ts +202 -0
  55. package/dist/visitor/returns/types.d.ts.map +1 -0
  56. package/dist/visitor/returns/types.js +2 -0
  57. package/dist/visitor/returns/types.js.map +1 -0
  58. package/dist/visitor/types.d.ts +19 -0
  59. package/dist/visitor/types.d.ts.map +1 -0
  60. package/dist/visitor/types.js +2 -0
  61. package/dist/visitor/types.js.map +1 -0
  62. package/package.json +16 -7
  63. package/src/adapter.ts +446 -0
  64. package/src/constants.ts +11 -0
  65. package/src/display-reactor.ts +337 -0
  66. package/src/index.ts +8 -0
  67. package/src/metadata-display-reactor.ts +230 -0
  68. package/src/reactor.ts +199 -0
  69. package/src/types.ts +127 -0
  70. package/src/utils.ts +60 -0
  71. package/src/visitor/arguments/helpers.ts +153 -0
  72. package/src/visitor/arguments/index.test.ts +1439 -0
  73. package/src/visitor/arguments/index.ts +981 -0
  74. package/src/visitor/arguments/schema.test.ts +324 -0
  75. package/src/visitor/arguments/types.ts +387 -0
  76. package/src/visitor/constants.ts +76 -0
  77. package/src/visitor/helpers.test.ts +274 -0
  78. package/src/visitor/helpers.ts +223 -0
  79. package/src/visitor/index.ts +4 -0
  80. package/src/visitor/returns/index.test.ts +2377 -0
  81. package/src/visitor/returns/index.ts +658 -0
  82. package/src/visitor/returns/types.ts +302 -0
  83. package/src/visitor/types.ts +75 -0
@@ -0,0 +1,204 @@
1
+ import { Principal } from "@icp-sdk/core/principal";
2
+ export const extractAndSortArgs = (argsObject) => {
3
+ if (!argsObject || typeof argsObject !== "object")
4
+ return [];
5
+ const args = [];
6
+ let index = 0;
7
+ while (Object.prototype.hasOwnProperty.call(argsObject, `arg${index}`)) {
8
+ args.push(argsObject[`arg${index}`]);
9
+ index++;
10
+ }
11
+ return args;
12
+ };
13
+ /**
14
+ * Normalize form state by converting objects with numeric string keys to arrays.
15
+ * TanStack Form sometimes creates { "0": value, "1": value } instead of [value, value]
16
+ * when using indexed field paths like "parent.0.child".
17
+ *
18
+ * This function also handles the variant cleanup case where objects have mixed
19
+ * numeric and named keys (e.g., { "0": old, "Add": current }) by removing
20
+ * orphaned numeric keys.
21
+ *
22
+ * This function recursively processes the form state and fixes these issues.
23
+ */
24
+ export const normalizeFormState = (value) => {
25
+ // Handle null/undefined
26
+ if (value === null || value === undefined) {
27
+ return value;
28
+ }
29
+ // Handle arrays - recursively normalize each element
30
+ if (Array.isArray(value)) {
31
+ return value.map(normalizeFormState);
32
+ }
33
+ // Handle objects
34
+ if (typeof value === "object") {
35
+ const obj = value;
36
+ const keys = Object.keys(obj);
37
+ // Separate numeric and non-numeric keys
38
+ const numericKeys = keys.filter((k) => /^\d+$/.test(k));
39
+ const namedKeys = keys.filter((k) => !/^\d+$/.test(k));
40
+ // Case 1: All keys are numeric - convert to array
41
+ if (numericKeys.length > 0 && namedKeys.length === 0) {
42
+ const sortedNums = numericKeys.map(Number).sort((a, b) => a - b);
43
+ // Check if keys are consecutive starting from 0
44
+ if (sortedNums.every((num, idx) => num === idx)) {
45
+ return sortedNums.map((k) => normalizeFormState(obj[String(k)]));
46
+ }
47
+ }
48
+ // Case 2: Mixed keys (variant case) - keep only named keys, remove orphan numeric keys
49
+ if (numericKeys.length > 0 && namedKeys.length > 0) {
50
+ const result = {};
51
+ for (const key of namedKeys) {
52
+ result[key] = normalizeFormState(obj[key]);
53
+ }
54
+ return result;
55
+ }
56
+ // Case 3: All named keys - recursively normalize all values
57
+ const result = {};
58
+ for (const [key, val] of Object.entries(obj)) {
59
+ result[key] = normalizeFormState(val);
60
+ }
61
+ return result;
62
+ }
63
+ // Return primitives as-is
64
+ return value;
65
+ };
66
+ export const convertNanoToDate = (nano) => {
67
+ return new Date(Number(nano) / 1000000);
68
+ };
69
+ export const convertToCycle = (cycles) => {
70
+ const mcycles = cycles / BigInt(1000000);
71
+ if (mcycles >= BigInt(1000000)) {
72
+ const tcycles = mcycles / BigInt(1000000);
73
+ return `${tcycles.toLocaleString()} T`;
74
+ }
75
+ return `${mcycles.toLocaleString()} M`;
76
+ };
77
+ export const convertStringToNumber = (value) => {
78
+ const bits = value.length;
79
+ if (bits >= 16) {
80
+ return BigInt(value);
81
+ }
82
+ else {
83
+ return Number(value);
84
+ }
85
+ };
86
+ export const validateNumberError = (t) => {
87
+ return function validate(value) {
88
+ if (value === "") {
89
+ return true;
90
+ }
91
+ const bits = value.length;
92
+ if (bits >= 16) {
93
+ try {
94
+ const valueAsBigInt = BigInt(value);
95
+ t.covariant(valueAsBigInt);
96
+ return true;
97
+ }
98
+ catch (error) {
99
+ return error.message || "Failed to convert to BigInt";
100
+ }
101
+ }
102
+ else {
103
+ try {
104
+ const valueAsNumber = Number(value);
105
+ t.covariant(valueAsNumber);
106
+ return true;
107
+ }
108
+ catch (error) {
109
+ return error.message || "Failed to convert to number";
110
+ }
111
+ }
112
+ };
113
+ };
114
+ export const validateError = (t) => {
115
+ return function validate(value) {
116
+ try {
117
+ t.covariant(value);
118
+ return true;
119
+ }
120
+ catch (error) {
121
+ return error.message || "An error occurred";
122
+ }
123
+ };
124
+ };
125
+ export function isQuery(func) {
126
+ return (func.annotations.includes("query") ||
127
+ func.annotations.includes("composite_query"));
128
+ }
129
+ export function isUrl(str) {
130
+ if (typeof str !== "string")
131
+ return false;
132
+ return str.startsWith("http") || str.startsWith("https");
133
+ }
134
+ export function isImage(str) {
135
+ if (typeof str !== "string")
136
+ return false;
137
+ // Check if the string starts with 'data:image' (indicating base64-encoded image)
138
+ if (str.startsWith("data:image")) {
139
+ return true;
140
+ }
141
+ // List of common image file extensions
142
+ const imageExtensions = [".jpg", ".jpeg", ".png", ".gif", ".svg"];
143
+ // Check if the string ends with any of the image extensions (indicating image URL)
144
+ if (imageExtensions.some((ext) => str.endsWith(ext))) {
145
+ return true;
146
+ }
147
+ return false;
148
+ }
149
+ export function isUuid(str) {
150
+ if (typeof str !== "string")
151
+ return false;
152
+ return /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(str);
153
+ }
154
+ export function isPrincipalId(str) {
155
+ if (typeof str !== "string")
156
+ return false;
157
+ try {
158
+ Principal.fromText(str);
159
+ return true;
160
+ }
161
+ catch {
162
+ return false;
163
+ }
164
+ }
165
+ export function isCanisterId(str) {
166
+ if (typeof str !== "string")
167
+ return false;
168
+ if (!isPrincipalId(str))
169
+ return false;
170
+ if (str.length !== 27)
171
+ return false;
172
+ // All canister IDs end with "-cai"
173
+ return str.endsWith("-cai");
174
+ }
175
+ export function isBtcAddress(str) {
176
+ if (typeof str !== "string")
177
+ return false;
178
+ // Bech32 (Mainnet: bc1, Testnet: tb1, Regtest: bcrt1)
179
+ if (/^(bc1|tb1|bcrt1)[a-zA-HJ-NP-Z0-9]{25,60}$/.test(str))
180
+ return true;
181
+ // Base58 (Mainnet: 1/3, Testnet: m/n/2)
182
+ if (/^[13mn2][a-km-zA-HJ-NP-Z1-9]{25,34}$/.test(str))
183
+ return true;
184
+ return false;
185
+ }
186
+ export function isEthAddress(str) {
187
+ if (typeof str !== "string")
188
+ return false;
189
+ return /^0x[a-fA-F0-9]{40}$/.test(str);
190
+ }
191
+ export function isAccountIdentifier(str) {
192
+ if (typeof str !== "string")
193
+ return false;
194
+ // 64 characters hex string (standard for ICP account ids and hashes)
195
+ return /^[a-fA-F0-9]{64}$/.test(str);
196
+ }
197
+ export function isIsoDate(str) {
198
+ if (typeof str !== "string")
199
+ return false;
200
+ // Basic ISO 8601 / RFC 3339 format check
201
+ // YYYY-MM-DDTHH:mm:ss.sssZ (optional milliseconds/nanoseconds and timezone)
202
+ return /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:?\d{2})$/.test(str);
203
+ }
204
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/visitor/helpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export * from "./returns";
2
+ export * from "./arguments";
3
+ export * from "./types";
4
+ export * from "./helpers";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/visitor/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA"}
@@ -0,0 +1,5 @@
1
+ export * from "./returns";
2
+ export * from "./arguments";
3
+ export * from "./types";
4
+ export * from "./helpers";
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/visitor/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA"}
@@ -0,0 +1,38 @@
1
+ import type { ResultNode, MethodMeta, ServiceMeta } from "./types";
2
+ import { IDL } from "@icp-sdk/core/candid";
3
+ import type { BaseActor, FunctionName } from "@ic-reactor/core";
4
+ export * from "./types";
5
+ export declare class ResultFieldVisitor<A = BaseActor> extends IDL.Visitor<string, ResultNode | MethodMeta<A> | ServiceMeta<A>> {
6
+ private codec;
7
+ private recCache;
8
+ private getCodec;
9
+ visitService(t: IDL.ServiceClass): ServiceMeta<A>;
10
+ /**
11
+ * Handle func type when encountered as a service method definition.
12
+ * Returns MethodMeta with information about the method's inputs/outputs.
13
+ * This is public so callers can explicitly request method metadata.
14
+ */
15
+ visitFuncAsMethod(t: IDL.FuncClass, functionName: FunctionName<A>): MethodMeta<A>;
16
+ /**
17
+ * Handle func type when encountered as a data field (e.g., callback in a record).
18
+ * Returns ResultNode that can resolve [Principal, string] data to a func reference.
19
+ */
20
+ visitFunc(_t: IDL.FuncClass, label: string): ResultNode<"func">;
21
+ visitRecord(_t: IDL.RecordClass, fields_: Array<[string, IDL.Type]>, label: string): ResultNode<"record"> | ResultNode<"funcRecord">;
22
+ visitVariant(_t: IDL.VariantClass, fields_: Array<[string, IDL.Type]>, label: string): ResultNode<"variant">;
23
+ visitTuple<T extends IDL.Type[]>(_t: IDL.TupleClass<T>, components: IDL.Type[], label: string): ResultNode<"tuple">;
24
+ visitOpt<T>(_t: IDL.OptClass<T>, ty: IDL.Type<T>, label: string): ResultNode<"optional">;
25
+ visitVec<T>(_t: IDL.VecClass<T>, ty: IDL.Type<T>, label: string): ResultNode<"vector"> | ResultNode<"blob">;
26
+ visitRec<T>(t: IDL.RecClass<T>, ty: IDL.ConstructType<T>, label: string): ResultNode<"recursive">;
27
+ visitPrincipal(t: IDL.PrincipalClass, label: string): ResultNode<"principal">;
28
+ visitText(t: IDL.TextClass, label: string): ResultNode<"text">;
29
+ visitBool(t: IDL.BoolClass, label: string): ResultNode<"boolean">;
30
+ visitNull(t: IDL.NullClass, label: string): ResultNode<"null">;
31
+ visitInt(t: IDL.IntClass, label: string): ResultNode<"number">;
32
+ visitNat(t: IDL.NatClass, label: string): ResultNode<"number">;
33
+ visitFloat(t: IDL.FloatClass, label: string): ResultNode<"number">;
34
+ visitFixedInt(t: IDL.FixedIntClass, label: string): ResultNode<"number">;
35
+ visitFixedNat(t: IDL.FixedNatClass, label: string): ResultNode<"number">;
36
+ visitType<T>(_t: IDL.Type<T>, label: string): ResultNode<"unknown">;
37
+ }
38
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/visitor/returns/index.ts"],"names":[],"mappings":"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"}