@hashgraphonline/standards-sdk 0.1.141-canary.3 → 0.1.141-canary.31

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 (241) hide show
  1. package/README.md +13 -1
  2. package/dist/cjs/hcs-16/base-client.d.ts.map +1 -1
  3. package/dist/cjs/hcs-17/types.d.ts.map +1 -1
  4. package/dist/cjs/hcs-20/sdk.d.ts.map +1 -1
  5. package/dist/cjs/hcs-20/types.d.ts +9 -8
  6. package/dist/cjs/hcs-20/types.d.ts.map +1 -1
  7. package/dist/cjs/hcs-21/base-client.d.ts +4 -3
  8. package/dist/cjs/hcs-21/base-client.d.ts.map +1 -1
  9. package/dist/cjs/hcs-21/index.d.ts +1 -0
  10. package/dist/cjs/hcs-21/index.d.ts.map +1 -1
  11. package/dist/cjs/hcs-21/sdk.d.ts +51 -0
  12. package/dist/cjs/hcs-21/sdk.d.ts.map +1 -1
  13. package/dist/cjs/hcs-21/tx.d.ts.map +1 -1
  14. package/dist/cjs/hcs-21/types.d.ts +135 -64
  15. package/dist/cjs/hcs-21/types.d.ts.map +1 -1
  16. package/dist/cjs/hcs-21/verify.d.ts +6 -0
  17. package/dist/cjs/hcs-21/verify.d.ts.map +1 -0
  18. package/dist/cjs/inscribe/inscriber.d.ts +1 -0
  19. package/dist/cjs/inscribe/inscriber.d.ts.map +1 -1
  20. package/dist/cjs/inscribe/quote-cache.d.ts.map +1 -1
  21. package/dist/cjs/services/registry-broker/client.d.ts +4 -3
  22. package/dist/cjs/services/registry-broker/client.d.ts.map +1 -1
  23. package/dist/cjs/services/registry-broker/private-key-signer.d.ts.map +1 -1
  24. package/dist/cjs/services/registry-broker/schemas.d.ts +38 -38
  25. package/dist/cjs/services/registry-broker/schemas.d.ts.map +1 -1
  26. package/dist/cjs/standards-sdk.cjs +2 -2
  27. package/dist/cjs/standards-sdk.cjs.map +1 -1
  28. package/dist/cjs/utils/dynamic-import.d.ts +1 -0
  29. package/dist/cjs/utils/dynamic-import.d.ts.map +1 -1
  30. package/dist/es/hcs-16/base-client.d.ts.map +1 -1
  31. package/dist/es/hcs-17/types.d.ts.map +1 -1
  32. package/dist/es/hcs-20/sdk.d.ts.map +1 -1
  33. package/dist/es/hcs-20/types.d.ts +9 -8
  34. package/dist/es/hcs-20/types.d.ts.map +1 -1
  35. package/dist/es/hcs-21/base-client.d.ts +4 -3
  36. package/dist/es/hcs-21/base-client.d.ts.map +1 -1
  37. package/dist/es/hcs-21/index.d.ts +1 -0
  38. package/dist/es/hcs-21/index.d.ts.map +1 -1
  39. package/dist/es/hcs-21/sdk.d.ts +51 -0
  40. package/dist/es/hcs-21/sdk.d.ts.map +1 -1
  41. package/dist/es/hcs-21/tx.d.ts.map +1 -1
  42. package/dist/es/hcs-21/types.d.ts +135 -64
  43. package/dist/es/hcs-21/types.d.ts.map +1 -1
  44. package/dist/es/hcs-21/verify.d.ts +6 -0
  45. package/dist/es/hcs-21/verify.d.ts.map +1 -0
  46. package/dist/es/inscribe/inscriber.d.ts +1 -0
  47. package/dist/es/inscribe/inscriber.d.ts.map +1 -1
  48. package/dist/es/inscribe/quote-cache.d.ts.map +1 -1
  49. package/dist/es/services/registry-broker/client.d.ts +4 -3
  50. package/dist/es/services/registry-broker/client.d.ts.map +1 -1
  51. package/dist/es/services/registry-broker/private-key-signer.d.ts.map +1 -1
  52. package/dist/es/services/registry-broker/schemas.d.ts +38 -38
  53. package/dist/es/services/registry-broker/schemas.d.ts.map +1 -1
  54. package/dist/es/standards-sdk.es.js +58 -50
  55. package/dist/es/standards-sdk.es.js.map +1 -1
  56. package/dist/es/standards-sdk.es10.js +2 -2
  57. package/dist/es/standards-sdk.es100.js +26 -229
  58. package/dist/es/standards-sdk.es100.js.map +1 -1
  59. package/dist/es/standards-sdk.es101.js +228 -109
  60. package/dist/es/standards-sdk.es101.js.map +1 -1
  61. package/dist/es/standards-sdk.es102.js +94 -15
  62. package/dist/es/standards-sdk.es102.js.map +1 -1
  63. package/dist/es/standards-sdk.es103.js +30 -80
  64. package/dist/es/standards-sdk.es103.js.map +1 -1
  65. package/dist/es/standards-sdk.es104.js +80 -27
  66. package/dist/es/standards-sdk.es104.js.map +1 -1
  67. package/dist/es/standards-sdk.es105.js +25 -136
  68. package/dist/es/standards-sdk.es105.js.map +1 -1
  69. package/dist/es/standards-sdk.es106.js +140 -27
  70. package/dist/es/standards-sdk.es106.js.map +1 -1
  71. package/dist/es/standards-sdk.es107.js +27 -20
  72. package/dist/es/standards-sdk.es107.js.map +1 -1
  73. package/dist/es/standards-sdk.es108.js +18 -156
  74. package/dist/es/standards-sdk.es108.js.map +1 -1
  75. package/dist/es/standards-sdk.es109.js +148 -196
  76. package/dist/es/standards-sdk.es109.js.map +1 -1
  77. package/dist/es/standards-sdk.es110.js +160 -747
  78. package/dist/es/standards-sdk.es110.js.map +1 -1
  79. package/dist/es/standards-sdk.es111.js +786 -9
  80. package/dist/es/standards-sdk.es111.js.map +1 -1
  81. package/dist/es/standards-sdk.es112.js +13 -567
  82. package/dist/es/standards-sdk.es112.js.map +1 -1
  83. package/dist/es/standards-sdk.es113.js +541 -576
  84. package/dist/es/standards-sdk.es113.js.map +1 -1
  85. package/dist/es/standards-sdk.es114.js +601 -12
  86. package/dist/es/standards-sdk.es114.js.map +1 -1
  87. package/dist/es/standards-sdk.es115.js +13 -2
  88. package/dist/es/standards-sdk.es115.js.map +1 -1
  89. package/dist/es/standards-sdk.es116.js +2 -83
  90. package/dist/es/standards-sdk.es116.js.map +1 -1
  91. package/dist/es/standards-sdk.es117.js +80 -36
  92. package/dist/es/standards-sdk.es117.js.map +1 -1
  93. package/dist/es/standards-sdk.es118.js +39 -2
  94. package/dist/es/standards-sdk.es118.js.map +1 -1
  95. package/dist/es/standards-sdk.es119.js +2 -223
  96. package/dist/es/standards-sdk.es119.js.map +1 -1
  97. package/dist/es/standards-sdk.es12.js +1 -1
  98. package/dist/es/standards-sdk.es120.js +193 -1110
  99. package/dist/es/standards-sdk.es120.js.map +1 -1
  100. package/dist/es/standards-sdk.es121.js +1059 -225
  101. package/dist/es/standards-sdk.es121.js.map +1 -1
  102. package/dist/es/standards-sdk.es122.js +303 -419
  103. package/dist/es/standards-sdk.es122.js.map +1 -1
  104. package/dist/es/standards-sdk.es123.js +418 -351
  105. package/dist/es/standards-sdk.es123.js.map +1 -1
  106. package/dist/es/standards-sdk.es124.js +348 -785
  107. package/dist/es/standards-sdk.es124.js.map +1 -1
  108. package/dist/es/standards-sdk.es125.js +767 -183
  109. package/dist/es/standards-sdk.es125.js.map +1 -1
  110. package/dist/es/standards-sdk.es126.js +153 -1512
  111. package/dist/es/standards-sdk.es126.js.map +1 -1
  112. package/dist/es/standards-sdk.es127.js +1373 -1977
  113. package/dist/es/standards-sdk.es127.js.map +1 -1
  114. package/dist/es/standards-sdk.es128.js +2211 -50
  115. package/dist/es/standards-sdk.es128.js.map +1 -1
  116. package/dist/es/standards-sdk.es129.js +59 -79
  117. package/dist/es/standards-sdk.es129.js.map +1 -1
  118. package/dist/es/standards-sdk.es13.js +1 -1
  119. package/dist/es/standards-sdk.es130.js +80 -152
  120. package/dist/es/standards-sdk.es130.js.map +1 -1
  121. package/dist/es/standards-sdk.es131.js +159 -7
  122. package/dist/es/standards-sdk.es131.js.map +1 -1
  123. package/dist/es/standards-sdk.es132.js +7 -86
  124. package/dist/es/standards-sdk.es132.js.map +1 -1
  125. package/dist/es/standards-sdk.es133.js +65 -44
  126. package/dist/es/standards-sdk.es133.js.map +1 -1
  127. package/dist/es/standards-sdk.es134.js +65 -28
  128. package/dist/es/standards-sdk.es134.js.map +1 -1
  129. package/dist/es/standards-sdk.es135.js +69 -125
  130. package/dist/es/standards-sdk.es135.js.map +1 -1
  131. package/dist/es/standards-sdk.es136.js +28 -42
  132. package/dist/es/standards-sdk.es136.js.map +1 -1
  133. package/dist/es/standards-sdk.es137.js +138 -760
  134. package/dist/es/standards-sdk.es137.js.map +1 -1
  135. package/dist/es/standards-sdk.es138.js +766 -56
  136. package/dist/es/standards-sdk.es138.js.map +1 -1
  137. package/dist/es/standards-sdk.es139.js +36 -58
  138. package/dist/es/standards-sdk.es139.js.map +1 -1
  139. package/dist/es/standards-sdk.es14.js +1 -1
  140. package/dist/es/standards-sdk.es140.js +12 -12269
  141. package/dist/es/standards-sdk.es140.js.map +1 -1
  142. package/dist/es/standards-sdk.es147.js +12269 -12
  143. package/dist/es/standards-sdk.es147.js.map +1 -1
  144. package/dist/es/standards-sdk.es148.js +59 -0
  145. package/dist/es/standards-sdk.es148.js.map +1 -0
  146. package/dist/es/standards-sdk.es15.js +1 -1
  147. package/dist/es/standards-sdk.es16.js +1 -1
  148. package/dist/es/standards-sdk.es17.js +5 -10
  149. package/dist/es/standards-sdk.es17.js.map +1 -1
  150. package/dist/es/standards-sdk.es19.js +12 -16
  151. package/dist/es/standards-sdk.es19.js.map +1 -1
  152. package/dist/es/standards-sdk.es2.js +26 -72
  153. package/dist/es/standards-sdk.es2.js.map +1 -1
  154. package/dist/es/standards-sdk.es20.js +9 -13
  155. package/dist/es/standards-sdk.es20.js.map +1 -1
  156. package/dist/es/standards-sdk.es21.js +1 -1
  157. package/dist/es/standards-sdk.es22.js +1 -1
  158. package/dist/es/standards-sdk.es23.js +1 -1
  159. package/dist/es/standards-sdk.es24.js +1 -1
  160. package/dist/es/standards-sdk.es25.js +1 -1
  161. package/dist/es/standards-sdk.es26.js +1 -1
  162. package/dist/es/standards-sdk.es27.js +1 -1
  163. package/dist/es/standards-sdk.es28.js +12 -16
  164. package/dist/es/standards-sdk.es28.js.map +1 -1
  165. package/dist/es/standards-sdk.es3.js +2 -2
  166. package/dist/es/standards-sdk.es31.js +2 -2
  167. package/dist/es/standards-sdk.es32.js +4 -4
  168. package/dist/es/standards-sdk.es33.js +1 -1
  169. package/dist/es/standards-sdk.es36.js +7 -12
  170. package/dist/es/standards-sdk.es36.js.map +1 -1
  171. package/dist/es/standards-sdk.es37.js +4 -4
  172. package/dist/es/standards-sdk.es38.js +2 -2
  173. package/dist/es/standards-sdk.es39.js +2 -2
  174. package/dist/es/standards-sdk.es40.js +1 -1
  175. package/dist/es/standards-sdk.es41.js +1 -1
  176. package/dist/es/standards-sdk.es42.js +2 -2
  177. package/dist/es/standards-sdk.es47.js +1 -1
  178. package/dist/es/standards-sdk.es5.js +2 -2
  179. package/dist/es/standards-sdk.es52.js +1 -1
  180. package/dist/es/standards-sdk.es54.js +1 -1
  181. package/dist/es/standards-sdk.es57.js +2 -2
  182. package/dist/es/standards-sdk.es59.js +1 -1
  183. package/dist/es/standards-sdk.es6.js +2 -2
  184. package/dist/es/standards-sdk.es60.js +1 -1
  185. package/dist/es/standards-sdk.es61.js +7 -11
  186. package/dist/es/standards-sdk.es61.js.map +1 -1
  187. package/dist/es/standards-sdk.es63.js +1 -1
  188. package/dist/es/standards-sdk.es65.js +2 -2
  189. package/dist/es/standards-sdk.es66.js +3 -3
  190. package/dist/es/standards-sdk.es69.js +2 -2
  191. package/dist/es/standards-sdk.es7.js +2 -2
  192. package/dist/es/standards-sdk.es70.js +3 -3
  193. package/dist/es/standards-sdk.es71.js +2 -2
  194. package/dist/es/standards-sdk.es72.js +1 -1
  195. package/dist/es/standards-sdk.es73.js.map +1 -1
  196. package/dist/es/standards-sdk.es75.js +2 -2
  197. package/dist/es/standards-sdk.es77.js +5 -3
  198. package/dist/es/standards-sdk.es77.js.map +1 -1
  199. package/dist/es/standards-sdk.es78.js +4 -10
  200. package/dist/es/standards-sdk.es78.js.map +1 -1
  201. package/dist/es/standards-sdk.es79.js +1 -1
  202. package/dist/es/standards-sdk.es8.js +1 -1
  203. package/dist/es/standards-sdk.es80.js +26 -15
  204. package/dist/es/standards-sdk.es80.js.map +1 -1
  205. package/dist/es/standards-sdk.es82.js +12 -4
  206. package/dist/es/standards-sdk.es82.js.map +1 -1
  207. package/dist/es/standards-sdk.es83.js +7 -6
  208. package/dist/es/standards-sdk.es83.js.map +1 -1
  209. package/dist/es/standards-sdk.es84.js +161 -5
  210. package/dist/es/standards-sdk.es84.js.map +1 -1
  211. package/dist/es/standards-sdk.es86.js +55 -21
  212. package/dist/es/standards-sdk.es86.js.map +1 -1
  213. package/dist/es/standards-sdk.es87.js +22 -75
  214. package/dist/es/standards-sdk.es87.js.map +1 -1
  215. package/dist/es/standards-sdk.es88.js +45 -30
  216. package/dist/es/standards-sdk.es88.js.map +1 -1
  217. package/dist/es/standards-sdk.es89.js +57 -22
  218. package/dist/es/standards-sdk.es89.js.map +1 -1
  219. package/dist/es/standards-sdk.es90.js +28 -23
  220. package/dist/es/standards-sdk.es90.js.map +1 -1
  221. package/dist/es/standards-sdk.es91.js +23 -167
  222. package/dist/es/standards-sdk.es91.js.map +1 -1
  223. package/dist/es/standards-sdk.es92.js +158 -119
  224. package/dist/es/standards-sdk.es92.js.map +1 -1
  225. package/dist/es/standards-sdk.es93.js +68 -95
  226. package/dist/es/standards-sdk.es93.js.map +1 -1
  227. package/dist/es/standards-sdk.es94.js +136 -119
  228. package/dist/es/standards-sdk.es94.js.map +1 -1
  229. package/dist/es/standards-sdk.es95.js +139 -39
  230. package/dist/es/standards-sdk.es95.js.map +1 -1
  231. package/dist/es/standards-sdk.es96.js +42 -257
  232. package/dist/es/standards-sdk.es96.js.map +1 -1
  233. package/dist/es/standards-sdk.es97.js +243 -80
  234. package/dist/es/standards-sdk.es97.js.map +1 -1
  235. package/dist/es/standards-sdk.es98.js +47 -48
  236. package/dist/es/standards-sdk.es98.js.map +1 -1
  237. package/dist/es/standards-sdk.es99.js +100 -28
  238. package/dist/es/standards-sdk.es99.js.map +1 -1
  239. package/dist/es/utils/dynamic-import.d.ts +1 -0
  240. package/dist/es/utils/dynamic-import.d.ts.map +1 -1
  241. package/package.json +3 -3
@@ -1,5 +1,16 @@
1
- const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
1
+ function getTopicId(inscription) {
2
+ if (!inscription || typeof inscription !== "object") return void 0;
3
+ const obj = inscription;
4
+ const direct = obj.topicId || obj.topic_id;
5
+ if (typeof direct === "string" && direct.trim()) return direct;
6
+ const rec = obj;
7
+ const t1 = rec["topicId"];
8
+ if (typeof t1 === "string" && t1.trim()) return t1;
9
+ const t2 = rec["topic_id"];
10
+ if (typeof t2 === "string" && t2.trim()) return t2;
11
+ return void 0;
12
+ }
2
13
  export {
3
- sleep
14
+ getTopicId
4
15
  };
5
16
  //# sourceMappingURL=standards-sdk.es115.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"standards-sdk.es115.js","sources":["../../src/utils/sleep.ts"],"sourcesContent":["export const sleep = (ms: number) =>\n new Promise(resolve => setTimeout(resolve, ms));\n"],"names":[],"mappings":"AAAO,MAAM,QAAQ,CAAC,OACpB,IAAI,QAAQ,CAAA,YAAW,WAAW,SAAS,EAAE,CAAC;"}
1
+ {"version":3,"file":"standards-sdk.es115.js","sources":["../../src/utils/topic-id-utils.ts"],"sourcesContent":["/**\n * Utility functions for safely handling topic ID properties that may use different naming conventions\n */\n\n/**\n * Safely extracts topic ID from an inscription result object that may have either `topicId` or `topic_id`\n * @param inscription - The inscription result object\n * @returns The topic ID string or undefined if not found\n */\ntype TopicIdCarrier =\n | { topicId?: string; topic_id?: string }\n | Record<string, unknown>\n | null\n | undefined;\n\nexport function getTopicId(inscription: unknown): string | undefined {\n if (!inscription || typeof inscription !== 'object') return undefined;\n const obj = inscription as TopicIdCarrier;\n const direct =\n (obj as { topicId?: string }).topicId ||\n (obj as { topic_id?: string }).topic_id;\n if (typeof direct === 'string' && direct.trim()) return direct;\n const rec = obj as Record<string, unknown>;\n const t1 = rec['topicId'];\n if (typeof t1 === 'string' && t1.trim()) return t1;\n const t2 = rec['topic_id'];\n if (typeof t2 === 'string' && t2.trim()) return t2;\n return undefined;\n}\n"],"names":[],"mappings":"AAeO,SAAS,WAAW,aAA0C;AACnE,MAAI,CAAC,eAAe,OAAO,gBAAgB,SAAU,QAAO;AAC5D,QAAM,MAAM;AACZ,QAAM,SACH,IAA6B,WAC7B,IAA8B;AACjC,MAAI,OAAO,WAAW,YAAY,OAAO,KAAA,EAAQ,QAAO;AACxD,QAAM,MAAM;AACZ,QAAM,KAAK,IAAI,SAAS;AACxB,MAAI,OAAO,OAAO,YAAY,GAAG,KAAA,EAAQ,QAAO;AAChD,QAAM,KAAK,IAAI,UAAU;AACzB,MAAI,OAAO,OAAO,YAAY,GAAG,KAAA,EAAQ,QAAO;AAChD,SAAO;AACT;"}
@@ -1,86 +1,5 @@
1
- class NodeHashAdapter {
2
- constructor(nodeHash) {
3
- this.nodeHash = nodeHash;
4
- }
5
- update(data) {
6
- this.nodeHash.update(data);
7
- return this;
8
- }
9
- digest(encoding) {
10
- return this.nodeHash.digest(encoding);
11
- }
12
- }
13
- class WebHashAdapter {
14
- constructor(algorithm) {
15
- this.algorithm = algorithm;
16
- this.data = [];
17
- }
18
- update(data) {
19
- const bytes = typeof data === "string" ? new TextEncoder().encode(data) : new Uint8Array(data);
20
- this.data.push(bytes);
21
- return this;
22
- }
23
- async digest(encoding) {
24
- const combined = this.concatenateArrays(this.data);
25
- const bufferView = new Uint8Array(combined).buffer;
26
- const hashBuffer = await crypto.subtle.digest(
27
- this.mapAlgorithm(this.algorithm),
28
- bufferView
29
- );
30
- if (encoding === "hex") {
31
- return Array.from(new Uint8Array(hashBuffer)).map((b) => b.toString(16).padStart(2, "0")).join("");
32
- }
33
- return Buffer.from(hashBuffer);
34
- }
35
- concatenateArrays(arrays) {
36
- const totalLength = arrays.reduce((sum, arr) => sum + arr.length, 0);
37
- const result = new Uint8Array(totalLength);
38
- let offset = 0;
39
- for (const arr of arrays) {
40
- result.set(arr, offset);
41
- offset += arr.length;
42
- }
43
- return result;
44
- }
45
- mapAlgorithm(algorithm) {
46
- const algorithmMap = {
47
- sha256: "SHA-256",
48
- sha384: "SHA-384",
49
- sha1: "SHA-1",
50
- sha512: "SHA-512"
51
- };
52
- return algorithmMap[algorithm.toLowerCase()] || "SHA-256";
53
- }
54
- }
55
- class FallbackHashAdapter {
56
- constructor(algorithm) {
57
- this.algorithm = algorithm;
58
- this.data = [];
59
- }
60
- update(data) {
61
- const buffer = typeof data === "string" ? Buffer.from(data) : data;
62
- this.data.push(buffer);
63
- return this;
64
- }
65
- digest(encoding) {
66
- const combined = Buffer.concat(this.data);
67
- const hash = this.simpleHash(combined);
68
- if (encoding === "hex") {
69
- return hash.toString(16).padStart(8, "0");
70
- }
71
- return hash.toString();
72
- }
73
- simpleHash(buffer) {
74
- let hash = 0;
75
- for (let i = 0; i < buffer.length; i++) {
76
- hash = (hash << 5) - hash + buffer[i] & 4294967295;
77
- }
78
- return Math.abs(hash);
79
- }
80
- }
1
+ const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
81
2
  export {
82
- FallbackHashAdapter,
83
- NodeHashAdapter,
84
- WebHashAdapter
3
+ sleep
85
4
  };
86
5
  //# sourceMappingURL=standards-sdk.es116.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"standards-sdk.es116.js","sources":["../../src/utils/hash-adapter.ts"],"sourcesContent":["/**\n * Hash Adapter Interface\n *\n * Provides a unified interface for hash operations across different\n * crypto implementations (Node.js crypto, WebCrypto, fallback).\n */\n\n/**\n * Common interface for hash operations\n */\nexport interface HashAdapter {\n update(data: Buffer | string): HashAdapter;\n digest(encoding?: string): string | Buffer | Promise<string | Buffer>;\n}\n\n/**\n * Node.js crypto hash adapter\n */\nexport class NodeHashAdapter implements HashAdapter {\n constructor(private nodeHash: any) {}\n\n update(data: Buffer | string): HashAdapter {\n this.nodeHash.update(data);\n return this;\n }\n\n digest(encoding?: string): string | Buffer {\n return this.nodeHash.digest(encoding);\n }\n}\n\n/**\n * WebCrypto hash adapter\n */\nexport class WebHashAdapter implements HashAdapter {\n private data: Uint8Array[] = [];\n\n constructor(private algorithm: string) {}\n\n update(data: Buffer | string): HashAdapter {\n const bytes =\n typeof data === 'string'\n ? new TextEncoder().encode(data)\n : new Uint8Array(data);\n this.data.push(bytes);\n return this;\n }\n\n async digest(encoding?: string): Promise<string | Buffer> {\n const combined = this.concatenateArrays(this.data);\n const bufferView = new Uint8Array(combined).buffer;\n const hashBuffer = await crypto.subtle.digest(\n this.mapAlgorithm(this.algorithm),\n bufferView,\n );\n\n if (encoding === 'hex') {\n return Array.from(new Uint8Array(hashBuffer))\n .map(b => b.toString(16).padStart(2, '0'))\n .join('');\n }\n\n return Buffer.from(hashBuffer);\n }\n\n private concatenateArrays(arrays: Uint8Array[]): Uint8Array {\n const totalLength = arrays.reduce((sum, arr) => sum + arr.length, 0);\n const result = new Uint8Array(totalLength);\n let offset = 0;\n\n for (const arr of arrays) {\n result.set(arr, offset);\n offset += arr.length;\n }\n\n return result;\n }\n\n private mapAlgorithm(algorithm: string): string {\n const algorithmMap: Record<string, string> = {\n sha256: 'SHA-256',\n sha384: 'SHA-384',\n sha1: 'SHA-1',\n sha512: 'SHA-512',\n };\n\n return algorithmMap[algorithm.toLowerCase()] || 'SHA-256';\n }\n}\n\n/**\n * Fallback hash adapter for SSR environments\n */\nexport class FallbackHashAdapter implements HashAdapter {\n private data: Buffer[] = [];\n\n constructor(private algorithm: string) {}\n\n update(data: Buffer | string): HashAdapter {\n const buffer = typeof data === 'string' ? Buffer.from(data) : data;\n this.data.push(buffer);\n return this;\n }\n\n digest(encoding?: string): string {\n const combined = Buffer.concat(this.data);\n const hash = this.simpleHash(combined);\n\n if (encoding === 'hex') {\n return hash.toString(16).padStart(8, '0');\n }\n\n return hash.toString();\n }\n\n private simpleHash(buffer: Buffer): number {\n let hash = 0;\n for (let i = 0; i < buffer.length; i++) {\n hash = ((hash << 5) - hash + buffer[i]) & 0xffffffff;\n }\n return Math.abs(hash);\n }\n}\n"],"names":[],"mappings":"AAkBO,MAAM,gBAAuC;AAAA,EAClD,YAAoB,UAAe;AAAf,SAAA,WAAA;AAAA,EAAgB;AAAA,EAEpC,OAAO,MAAoC;AACzC,SAAK,SAAS,OAAO,IAAI;AACzB,WAAO;AAAA,EACT;AAAA,EAEA,OAAO,UAAoC;AACzC,WAAO,KAAK,SAAS,OAAO,QAAQ;AAAA,EACtC;AACF;AAKO,MAAM,eAAsC;AAAA,EAGjD,YAAoB,WAAmB;AAAnB,SAAA,YAAA;AAFpB,SAAQ,OAAqB,CAAA;AAAA,EAEW;AAAA,EAExC,OAAO,MAAoC;AACzC,UAAM,QACJ,OAAO,SAAS,WACZ,IAAI,cAAc,OAAO,IAAI,IAC7B,IAAI,WAAW,IAAI;AACzB,SAAK,KAAK,KAAK,KAAK;AACpB,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,OAAO,UAA6C;AACxD,UAAM,WAAW,KAAK,kBAAkB,KAAK,IAAI;AACjD,UAAM,aAAa,IAAI,WAAW,QAAQ,EAAE;AAC5C,UAAM,aAAa,MAAM,OAAO,OAAO;AAAA,MACrC,KAAK,aAAa,KAAK,SAAS;AAAA,MAChC;AAAA,IAAA;AAGF,QAAI,aAAa,OAAO;AACtB,aAAO,MAAM,KAAK,IAAI,WAAW,UAAU,CAAC,EACzC,IAAI,CAAA,MAAK,EAAE,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG,CAAC,EACxC,KAAK,EAAE;AAAA,IACZ;AAEA,WAAO,OAAO,KAAK,UAAU;AAAA,EAC/B;AAAA,EAEQ,kBAAkB,QAAkC;AAC1D,UAAM,cAAc,OAAO,OAAO,CAAC,KAAK,QAAQ,MAAM,IAAI,QAAQ,CAAC;AACnE,UAAM,SAAS,IAAI,WAAW,WAAW;AACzC,QAAI,SAAS;AAEb,eAAW,OAAO,QAAQ;AACxB,aAAO,IAAI,KAAK,MAAM;AACtB,gBAAU,IAAI;AAAA,IAChB;AAEA,WAAO;AAAA,EACT;AAAA,EAEQ,aAAa,WAA2B;AAC9C,UAAM,eAAuC;AAAA,MAC3C,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,QAAQ;AAAA,IAAA;AAGV,WAAO,aAAa,UAAU,YAAA,CAAa,KAAK;AAAA,EAClD;AACF;AAKO,MAAM,oBAA2C;AAAA,EAGtD,YAAoB,WAAmB;AAAnB,SAAA,YAAA;AAFpB,SAAQ,OAAiB,CAAA;AAAA,EAEe;AAAA,EAExC,OAAO,MAAoC;AACzC,UAAM,SAAS,OAAO,SAAS,WAAW,OAAO,KAAK,IAAI,IAAI;AAC9D,SAAK,KAAK,KAAK,MAAM;AACrB,WAAO;AAAA,EACT;AAAA,EAEA,OAAO,UAA2B;AAChC,UAAM,WAAW,OAAO,OAAO,KAAK,IAAI;AACxC,UAAM,OAAO,KAAK,WAAW,QAAQ;AAErC,QAAI,aAAa,OAAO;AACtB,aAAO,KAAK,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG;AAAA,IAC1C;AAEA,WAAO,KAAK,SAAA;AAAA,EACd;AAAA,EAEQ,WAAW,QAAwB;AACzC,QAAI,OAAO;AACX,aAAS,IAAI,GAAG,IAAI,OAAO,QAAQ,KAAK;AACtC,cAAS,QAAQ,KAAK,OAAO,OAAO,CAAC,IAAK;AAAA,IAC5C;AACA,WAAO,KAAK,IAAI,IAAI;AAAA,EACtB;AACF;"}
1
+ {"version":3,"file":"standards-sdk.es116.js","sources":["../../src/utils/sleep.ts"],"sourcesContent":["export const sleep = (ms: number) =>\n new Promise(resolve => setTimeout(resolve, ms));\n"],"names":[],"mappings":"AAAO,MAAM,QAAQ,CAAC,OACpB,IAAI,QAAQ,CAAA,YAAW,WAAW,SAAS,EAAE,CAAC;"}
@@ -1,42 +1,86 @@
1
- function detectCryptoEnvironment() {
2
- const isSSR = typeof window === "undefined";
3
- let hasNodeCrypto = false;
4
- let hasWebCrypto = false;
5
- try {
6
- hasNodeCrypto = typeof require !== "undefined" && typeof process !== "undefined" && !!process.versions?.node;
7
- } catch {
8
- hasNodeCrypto = false;
9
- }
10
- try {
11
- hasWebCrypto = typeof crypto !== "undefined" && typeof crypto.subtle !== "undefined" && !isSSR;
12
- } catch {
13
- hasWebCrypto = false;
14
- }
15
- let preferredAPI;
16
- if (hasNodeCrypto && isSSR) {
17
- preferredAPI = "node";
18
- } else if (hasWebCrypto && !isSSR) {
19
- preferredAPI = "web";
20
- } else {
21
- preferredAPI = "none";
22
- }
23
- return {
24
- hasNodeCrypto,
25
- hasWebCrypto,
26
- isSSR,
27
- preferredAPI
28
- };
1
+ class NodeHashAdapter {
2
+ constructor(nodeHash) {
3
+ this.nodeHash = nodeHash;
4
+ }
5
+ update(data) {
6
+ this.nodeHash.update(data);
7
+ return this;
8
+ }
9
+ digest(encoding) {
10
+ return this.nodeHash.digest(encoding);
11
+ }
29
12
  }
30
- function isCryptoAvailable() {
31
- const env = detectCryptoEnvironment();
32
- return env.preferredAPI !== "none";
13
+ class WebHashAdapter {
14
+ constructor(algorithm) {
15
+ this.algorithm = algorithm;
16
+ this.data = [];
17
+ }
18
+ update(data) {
19
+ const bytes = typeof data === "string" ? new TextEncoder().encode(data) : new Uint8Array(data);
20
+ this.data.push(bytes);
21
+ return this;
22
+ }
23
+ async digest(encoding) {
24
+ const combined = this.concatenateArrays(this.data);
25
+ const bufferView = new Uint8Array(combined).buffer;
26
+ const hashBuffer = await crypto.subtle.digest(
27
+ this.mapAlgorithm(this.algorithm),
28
+ bufferView
29
+ );
30
+ if (encoding === "hex") {
31
+ return Array.from(new Uint8Array(hashBuffer)).map((b) => b.toString(16).padStart(2, "0")).join("");
32
+ }
33
+ return Buffer.from(hashBuffer);
34
+ }
35
+ concatenateArrays(arrays) {
36
+ const totalLength = arrays.reduce((sum, arr) => sum + arr.length, 0);
37
+ const result = new Uint8Array(totalLength);
38
+ let offset = 0;
39
+ for (const arr of arrays) {
40
+ result.set(arr, offset);
41
+ offset += arr.length;
42
+ }
43
+ return result;
44
+ }
45
+ mapAlgorithm(algorithm) {
46
+ const algorithmMap = {
47
+ sha256: "SHA-256",
48
+ sha384: "SHA-384",
49
+ sha1: "SHA-1",
50
+ sha512: "SHA-512"
51
+ };
52
+ return algorithmMap[algorithm.toLowerCase()] || "SHA-256";
53
+ }
33
54
  }
34
- function isSSREnvironment() {
35
- return typeof window === "undefined";
55
+ class FallbackHashAdapter {
56
+ constructor(algorithm) {
57
+ this.algorithm = algorithm;
58
+ this.data = [];
59
+ }
60
+ update(data) {
61
+ const buffer = typeof data === "string" ? Buffer.from(data) : data;
62
+ this.data.push(buffer);
63
+ return this;
64
+ }
65
+ digest(encoding) {
66
+ const combined = Buffer.concat(this.data);
67
+ const hash = this.simpleHash(combined);
68
+ if (encoding === "hex") {
69
+ return hash.toString(16).padStart(8, "0");
70
+ }
71
+ return hash.toString();
72
+ }
73
+ simpleHash(buffer) {
74
+ let hash = 0;
75
+ for (let i = 0; i < buffer.length; i++) {
76
+ hash = (hash << 5) - hash + buffer[i] & 4294967295;
77
+ }
78
+ return Math.abs(hash);
79
+ }
36
80
  }
37
81
  export {
38
- detectCryptoEnvironment,
39
- isCryptoAvailable,
40
- isSSREnvironment
82
+ FallbackHashAdapter,
83
+ NodeHashAdapter,
84
+ WebHashAdapter
41
85
  };
42
86
  //# sourceMappingURL=standards-sdk.es117.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"standards-sdk.es117.js","sources":["../../src/utils/crypto-env.ts"],"sourcesContent":["/**\n * Crypto Environment Detection Utility\n *\n * Detects available cryptographic APIs and determines the best\n * crypto implementation for the current environment (Node.js, browser, or SSR).\n */\n\nexport interface CryptoEnvironment {\n hasNodeCrypto: boolean;\n hasWebCrypto: boolean;\n isSSR: boolean;\n preferredAPI: 'node' | 'web' | 'none';\n}\n\n/**\n * Detect current cryptographic environment\n */\nexport function detectCryptoEnvironment(): CryptoEnvironment {\n const isSSR = typeof window === 'undefined';\n\n let hasNodeCrypto = false;\n let hasWebCrypto = false;\n\n try {\n hasNodeCrypto =\n typeof require !== 'undefined' &&\n typeof process !== 'undefined' &&\n !!process.versions?.node;\n } catch {\n hasNodeCrypto = false;\n }\n\n try {\n hasWebCrypto =\n typeof crypto !== 'undefined' &&\n typeof crypto.subtle !== 'undefined' &&\n !isSSR;\n } catch {\n hasWebCrypto = false;\n }\n\n let preferredAPI: 'node' | 'web' | 'none';\n\n if (hasNodeCrypto && isSSR) {\n preferredAPI = 'node';\n } else if (hasWebCrypto && !isSSR) {\n preferredAPI = 'web';\n } else {\n preferredAPI = 'none';\n }\n\n return {\n hasNodeCrypto,\n hasWebCrypto,\n isSSR,\n preferredAPI,\n };\n}\n\n/**\n * Check if crypto operations are available\n */\nexport function isCryptoAvailable(): boolean {\n const env = detectCryptoEnvironment();\n return env.preferredAPI !== 'none';\n}\n\n/**\n * Check if running in server-side rendering context\n */\nexport function isSSREnvironment(): boolean {\n return typeof window === 'undefined';\n}\n"],"names":[],"mappings":"AAiBO,SAAS,0BAA6C;AAC3D,QAAM,QAAQ,OAAO,WAAW;AAEhC,MAAI,gBAAgB;AACpB,MAAI,eAAe;AAEnB,MAAI;AACF,oBACE,OAAO,YAAY,eACnB,OAAO,YAAY,eACnB,CAAC,CAAC,QAAQ,UAAU;AAAA,EACxB,QAAQ;AACN,oBAAgB;AAAA,EAClB;AAEA,MAAI;AACF,mBACE,OAAO,WAAW,eAClB,OAAO,OAAO,WAAW,eACzB,CAAC;AAAA,EACL,QAAQ;AACN,mBAAe;AAAA,EACjB;AAEA,MAAI;AAEJ,MAAI,iBAAiB,OAAO;AAC1B,mBAAe;AAAA,EACjB,WAAW,gBAAgB,CAAC,OAAO;AACjC,mBAAe;AAAA,EACjB,OAAO;AACL,mBAAe;AAAA,EACjB;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;AAKO,SAAS,oBAA6B;AAC3C,QAAM,MAAM,wBAAA;AACZ,SAAO,IAAI,iBAAiB;AAC9B;AAKO,SAAS,mBAA4B;AAC1C,SAAO,OAAO,WAAW;AAC3B;"}
1
+ {"version":3,"file":"standards-sdk.es117.js","sources":["../../src/utils/hash-adapter.ts"],"sourcesContent":["/**\n * Hash Adapter Interface\n *\n * Provides a unified interface for hash operations across different\n * crypto implementations (Node.js crypto, WebCrypto, fallback).\n */\n\n/**\n * Common interface for hash operations\n */\nexport interface HashAdapter {\n update(data: Buffer | string): HashAdapter;\n digest(encoding?: string): string | Buffer | Promise<string | Buffer>;\n}\n\n/**\n * Node.js crypto hash adapter\n */\nexport class NodeHashAdapter implements HashAdapter {\n constructor(private nodeHash: any) {}\n\n update(data: Buffer | string): HashAdapter {\n this.nodeHash.update(data);\n return this;\n }\n\n digest(encoding?: string): string | Buffer {\n return this.nodeHash.digest(encoding);\n }\n}\n\n/**\n * WebCrypto hash adapter\n */\nexport class WebHashAdapter implements HashAdapter {\n private data: Uint8Array[] = [];\n\n constructor(private algorithm: string) {}\n\n update(data: Buffer | string): HashAdapter {\n const bytes =\n typeof data === 'string'\n ? new TextEncoder().encode(data)\n : new Uint8Array(data);\n this.data.push(bytes);\n return this;\n }\n\n async digest(encoding?: string): Promise<string | Buffer> {\n const combined = this.concatenateArrays(this.data);\n const bufferView = new Uint8Array(combined).buffer;\n const hashBuffer = await crypto.subtle.digest(\n this.mapAlgorithm(this.algorithm),\n bufferView,\n );\n\n if (encoding === 'hex') {\n return Array.from(new Uint8Array(hashBuffer))\n .map(b => b.toString(16).padStart(2, '0'))\n .join('');\n }\n\n return Buffer.from(hashBuffer);\n }\n\n private concatenateArrays(arrays: Uint8Array[]): Uint8Array {\n const totalLength = arrays.reduce((sum, arr) => sum + arr.length, 0);\n const result = new Uint8Array(totalLength);\n let offset = 0;\n\n for (const arr of arrays) {\n result.set(arr, offset);\n offset += arr.length;\n }\n\n return result;\n }\n\n private mapAlgorithm(algorithm: string): string {\n const algorithmMap: Record<string, string> = {\n sha256: 'SHA-256',\n sha384: 'SHA-384',\n sha1: 'SHA-1',\n sha512: 'SHA-512',\n };\n\n return algorithmMap[algorithm.toLowerCase()] || 'SHA-256';\n }\n}\n\n/**\n * Fallback hash adapter for SSR environments\n */\nexport class FallbackHashAdapter implements HashAdapter {\n private data: Buffer[] = [];\n\n constructor(private algorithm: string) {}\n\n update(data: Buffer | string): HashAdapter {\n const buffer = typeof data === 'string' ? Buffer.from(data) : data;\n this.data.push(buffer);\n return this;\n }\n\n digest(encoding?: string): string {\n const combined = Buffer.concat(this.data);\n const hash = this.simpleHash(combined);\n\n if (encoding === 'hex') {\n return hash.toString(16).padStart(8, '0');\n }\n\n return hash.toString();\n }\n\n private simpleHash(buffer: Buffer): number {\n let hash = 0;\n for (let i = 0; i < buffer.length; i++) {\n hash = ((hash << 5) - hash + buffer[i]) & 0xffffffff;\n }\n return Math.abs(hash);\n }\n}\n"],"names":[],"mappings":"AAkBO,MAAM,gBAAuC;AAAA,EAClD,YAAoB,UAAe;AAAf,SAAA,WAAA;AAAA,EAAgB;AAAA,EAEpC,OAAO,MAAoC;AACzC,SAAK,SAAS,OAAO,IAAI;AACzB,WAAO;AAAA,EACT;AAAA,EAEA,OAAO,UAAoC;AACzC,WAAO,KAAK,SAAS,OAAO,QAAQ;AAAA,EACtC;AACF;AAKO,MAAM,eAAsC;AAAA,EAGjD,YAAoB,WAAmB;AAAnB,SAAA,YAAA;AAFpB,SAAQ,OAAqB,CAAA;AAAA,EAEW;AAAA,EAExC,OAAO,MAAoC;AACzC,UAAM,QACJ,OAAO,SAAS,WACZ,IAAI,cAAc,OAAO,IAAI,IAC7B,IAAI,WAAW,IAAI;AACzB,SAAK,KAAK,KAAK,KAAK;AACpB,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,OAAO,UAA6C;AACxD,UAAM,WAAW,KAAK,kBAAkB,KAAK,IAAI;AACjD,UAAM,aAAa,IAAI,WAAW,QAAQ,EAAE;AAC5C,UAAM,aAAa,MAAM,OAAO,OAAO;AAAA,MACrC,KAAK,aAAa,KAAK,SAAS;AAAA,MAChC;AAAA,IAAA;AAGF,QAAI,aAAa,OAAO;AACtB,aAAO,MAAM,KAAK,IAAI,WAAW,UAAU,CAAC,EACzC,IAAI,CAAA,MAAK,EAAE,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG,CAAC,EACxC,KAAK,EAAE;AAAA,IACZ;AAEA,WAAO,OAAO,KAAK,UAAU;AAAA,EAC/B;AAAA,EAEQ,kBAAkB,QAAkC;AAC1D,UAAM,cAAc,OAAO,OAAO,CAAC,KAAK,QAAQ,MAAM,IAAI,QAAQ,CAAC;AACnE,UAAM,SAAS,IAAI,WAAW,WAAW;AACzC,QAAI,SAAS;AAEb,eAAW,OAAO,QAAQ;AACxB,aAAO,IAAI,KAAK,MAAM;AACtB,gBAAU,IAAI;AAAA,IAChB;AAEA,WAAO;AAAA,EACT;AAAA,EAEQ,aAAa,WAA2B;AAC9C,UAAM,eAAuC;AAAA,MAC3C,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,QAAQ;AAAA,IAAA;AAGV,WAAO,aAAa,UAAU,YAAA,CAAa,KAAK;AAAA,EAClD;AACF;AAKO,MAAM,oBAA2C;AAAA,EAGtD,YAAoB,WAAmB;AAAnB,SAAA,YAAA;AAFpB,SAAQ,OAAiB,CAAA;AAAA,EAEe;AAAA,EAExC,OAAO,MAAoC;AACzC,UAAM,SAAS,OAAO,SAAS,WAAW,OAAO,KAAK,IAAI,IAAI;AAC9D,SAAK,KAAK,KAAK,MAAM;AACrB,WAAO;AAAA,EACT;AAAA,EAEA,OAAO,UAA2B;AAChC,UAAM,WAAW,OAAO,OAAO,KAAK,IAAI;AACxC,UAAM,OAAO,KAAK,WAAW,QAAQ;AAErC,QAAI,aAAa,OAAO;AACtB,aAAO,KAAK,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG;AAAA,IAC1C;AAEA,WAAO,KAAK,SAAA;AAAA,EACd;AAAA,EAEQ,WAAW,QAAwB;AACzC,QAAI,OAAO;AACX,aAAS,IAAI,GAAG,IAAI,OAAO,QAAQ,KAAK;AACtC,cAAS,QAAQ,KAAK,OAAO,OAAO,CAAC,IAAK;AAAA,IAC5C;AACA,WAAO,KAAK,IAAI,IAAI;AAAA,EACtB;AACF;"}
@@ -1,5 +1,42 @@
1
- const isBrowser = typeof window !== "undefined" && typeof window.document !== "undefined";
1
+ function detectCryptoEnvironment() {
2
+ const isSSR = typeof window === "undefined";
3
+ let hasNodeCrypto = false;
4
+ let hasWebCrypto = false;
5
+ try {
6
+ hasNodeCrypto = typeof require !== "undefined" && typeof process !== "undefined" && !!process.versions?.node;
7
+ } catch {
8
+ hasNodeCrypto = false;
9
+ }
10
+ try {
11
+ hasWebCrypto = typeof crypto !== "undefined" && typeof crypto.subtle !== "undefined" && !isSSR;
12
+ } catch {
13
+ hasWebCrypto = false;
14
+ }
15
+ let preferredAPI;
16
+ if (hasNodeCrypto && isSSR) {
17
+ preferredAPI = "node";
18
+ } else if (hasWebCrypto && !isSSR) {
19
+ preferredAPI = "web";
20
+ } else {
21
+ preferredAPI = "none";
22
+ }
23
+ return {
24
+ hasNodeCrypto,
25
+ hasWebCrypto,
26
+ isSSR,
27
+ preferredAPI
28
+ };
29
+ }
30
+ function isCryptoAvailable() {
31
+ const env = detectCryptoEnvironment();
32
+ return env.preferredAPI !== "none";
33
+ }
34
+ function isSSREnvironment() {
35
+ return typeof window === "undefined";
36
+ }
2
37
  export {
3
- isBrowser
38
+ detectCryptoEnvironment,
39
+ isCryptoAvailable,
40
+ isSSREnvironment
4
41
  };
5
42
  //# sourceMappingURL=standards-sdk.es118.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"standards-sdk.es118.js","sources":["../../src/utils/is-browser.ts"],"sourcesContent":["/**\n * Determines if the current environment is a browser\n */\nexport const isBrowser =\n typeof window !== 'undefined' && typeof window.document !== 'undefined';\n"],"names":[],"mappings":"AAGO,MAAM,YACX,OAAO,WAAW,eAAe,OAAO,OAAO,aAAa;"}
1
+ {"version":3,"file":"standards-sdk.es118.js","sources":["../../src/utils/crypto-env.ts"],"sourcesContent":["/**\n * Crypto Environment Detection Utility\n *\n * Detects available cryptographic APIs and determines the best\n * crypto implementation for the current environment (Node.js, browser, or SSR).\n */\n\nexport interface CryptoEnvironment {\n hasNodeCrypto: boolean;\n hasWebCrypto: boolean;\n isSSR: boolean;\n preferredAPI: 'node' | 'web' | 'none';\n}\n\n/**\n * Detect current cryptographic environment\n */\nexport function detectCryptoEnvironment(): CryptoEnvironment {\n const isSSR = typeof window === 'undefined';\n\n let hasNodeCrypto = false;\n let hasWebCrypto = false;\n\n try {\n hasNodeCrypto =\n typeof require !== 'undefined' &&\n typeof process !== 'undefined' &&\n !!process.versions?.node;\n } catch {\n hasNodeCrypto = false;\n }\n\n try {\n hasWebCrypto =\n typeof crypto !== 'undefined' &&\n typeof crypto.subtle !== 'undefined' &&\n !isSSR;\n } catch {\n hasWebCrypto = false;\n }\n\n let preferredAPI: 'node' | 'web' | 'none';\n\n if (hasNodeCrypto && isSSR) {\n preferredAPI = 'node';\n } else if (hasWebCrypto && !isSSR) {\n preferredAPI = 'web';\n } else {\n preferredAPI = 'none';\n }\n\n return {\n hasNodeCrypto,\n hasWebCrypto,\n isSSR,\n preferredAPI,\n };\n}\n\n/**\n * Check if crypto operations are available\n */\nexport function isCryptoAvailable(): boolean {\n const env = detectCryptoEnvironment();\n return env.preferredAPI !== 'none';\n}\n\n/**\n * Check if running in server-side rendering context\n */\nexport function isSSREnvironment(): boolean {\n return typeof window === 'undefined';\n}\n"],"names":[],"mappings":"AAiBO,SAAS,0BAA6C;AAC3D,QAAM,QAAQ,OAAO,WAAW;AAEhC,MAAI,gBAAgB;AACpB,MAAI,eAAe;AAEnB,MAAI;AACF,oBACE,OAAO,YAAY,eACnB,OAAO,YAAY,eACnB,CAAC,CAAC,QAAQ,UAAU;AAAA,EACxB,QAAQ;AACN,oBAAgB;AAAA,EAClB;AAEA,MAAI;AACF,mBACE,OAAO,WAAW,eAClB,OAAO,OAAO,WAAW,eACzB,CAAC;AAAA,EACL,QAAQ;AACN,mBAAe;AAAA,EACjB;AAEA,MAAI;AAEJ,MAAI,iBAAiB,OAAO;AAC1B,mBAAe;AAAA,EACjB,WAAW,gBAAgB,CAAC,OAAO;AACjC,mBAAe;AAAA,EACjB,OAAO;AACL,mBAAe;AAAA,EACjB;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;AAKO,SAAS,oBAA6B;AAC3C,QAAM,MAAM,wBAAA;AACZ,SAAO,IAAI,iBAAiB;AAC9B;AAKO,SAAS,mBAA4B;AAC1C,SAAO,OAAO,WAAW;AAC3B;"}
@@ -1,226 +1,5 @@
1
- import { detectCryptoEnvironment } from "./standards-sdk.es117.js";
2
- import { NodeHashAdapter, WebHashAdapter, FallbackHashAdapter } from "./standards-sdk.es116.js";
3
- class NodeHmacAdapter {
4
- constructor(nodeHmac) {
5
- this.nodeHmac = nodeHmac;
6
- }
7
- update(data) {
8
- this.nodeHmac.update(data);
9
- return this;
10
- }
11
- digest(encoding) {
12
- return this.nodeHmac.digest(encoding);
13
- }
14
- }
15
- class WebHmacAdapter {
16
- constructor(key, algorithm = "sha256") {
17
- this.key = key;
18
- this.algorithm = algorithm;
19
- this.data = [];
20
- }
21
- update(data) {
22
- this.data.push(data);
23
- return this;
24
- }
25
- async digest(encoding) {
26
- const combined = Buffer.concat(this.data);
27
- const keyBytes = new Uint8Array(this.key);
28
- const keyBuffer = await crypto.subtle.importKey(
29
- "raw",
30
- keyBytes,
31
- { name: "HMAC", hash: this.mapAlgorithm(this.algorithm) },
32
- false,
33
- ["sign"]
34
- );
35
- const signature = await crypto.subtle.sign(
36
- "HMAC",
37
- keyBuffer,
38
- new Uint8Array(combined)
39
- );
40
- if (encoding === "hex") {
41
- return Array.from(new Uint8Array(signature)).map((b) => b.toString(16).padStart(2, "0")).join("");
42
- }
43
- return Buffer.from(signature);
44
- }
45
- mapAlgorithm(algorithm) {
46
- const algorithmMap = {
47
- sha256: "SHA-256",
48
- sha1: "SHA-1",
49
- sha512: "SHA-512"
50
- };
51
- return algorithmMap[algorithm.toLowerCase()] || "SHA-256";
52
- }
53
- }
54
- class FallbackHmacAdapter {
55
- constructor(key, algorithm = "sha256") {
56
- this.key = key;
57
- this.algorithm = algorithm;
58
- this.data = [];
59
- }
60
- update(data) {
61
- this.data.push(data);
62
- return this;
63
- }
64
- digest(encoding) {
65
- const combined = Buffer.concat(this.data);
66
- const hash2 = this.simpleHmac(combined, this.key);
67
- if (encoding === "hex") {
68
- return hash2.toString(16).padStart(8, "0");
69
- }
70
- return hash2.toString();
71
- }
72
- simpleHmac(data, key) {
73
- let hash2 = 0;
74
- for (let i = 0; i < data.length; i++) {
75
- const keyByte = key[i % key.length];
76
- hash2 = (hash2 << 5) - hash2 + data[i] + keyByte & 4294967295;
77
- }
78
- return Math.abs(hash2);
79
- }
80
- }
81
- class NodeCryptoAdapter {
82
- constructor() {
83
- try {
84
- const moduleName = "crypto";
85
- this.crypto = require(moduleName);
86
- } catch (error) {
87
- throw new Error("Node.js crypto module not available");
88
- }
89
- }
90
- createHash(algorithm) {
91
- return new NodeHashAdapter(this.crypto.createHash(algorithm));
92
- }
93
- createHmac(algorithm, key) {
94
- return new NodeHmacAdapter(this.crypto.createHmac(algorithm, key));
95
- }
96
- async pbkdf2(password, salt, iterations, keylen, digest) {
97
- return new Promise((resolve, reject) => {
98
- this.crypto.pbkdf2(
99
- password,
100
- salt,
101
- iterations,
102
- keylen,
103
- digest,
104
- (err, derivedKey) => {
105
- if (err) reject(err);
106
- else resolve(derivedKey);
107
- }
108
- );
109
- });
110
- }
111
- timingSafeEqual(a, b) {
112
- return this.crypto.timingSafeEqual(a, b);
113
- }
114
- }
115
- class WebCryptoAdapter {
116
- createHash(algorithm) {
117
- return new WebHashAdapter(algorithm);
118
- }
119
- createHmac(algorithm, key) {
120
- return new WebHmacAdapter(key, algorithm);
121
- }
122
- async pbkdf2(password, salt, iterations, keylen, digest) {
123
- const encoder = new TextEncoder();
124
- const keyMaterial = await crypto.subtle.importKey(
125
- "raw",
126
- encoder.encode(password),
127
- { name: "PBKDF2" },
128
- false,
129
- ["deriveBits"]
130
- );
131
- const derivedBits = await crypto.subtle.deriveBits(
132
- {
133
- name: "PBKDF2",
134
- salt: new Uint8Array(salt),
135
- iterations,
136
- hash: this.mapDigest(digest)
137
- },
138
- keyMaterial,
139
- keylen * 8
140
- );
141
- return Buffer.from(derivedBits);
142
- }
143
- timingSafeEqual(a, b) {
144
- if (a.length !== b.length) return false;
145
- let result = 0;
146
- for (let i = 0; i < a.length; i++) {
147
- result |= a[i] ^ b[i];
148
- }
149
- return result === 0;
150
- }
151
- mapDigest(digest) {
152
- const digestMap = {
153
- sha256: "SHA-256",
154
- sha1: "SHA-1",
155
- sha512: "SHA-512"
156
- };
157
- return digestMap[digest.toLowerCase()] || "SHA-256";
158
- }
159
- }
160
- class FallbackCryptoAdapter {
161
- createHash(algorithm) {
162
- return new FallbackHashAdapter(algorithm);
163
- }
164
- createHmac(algorithm, key) {
165
- return new FallbackHmacAdapter(key, algorithm);
166
- }
167
- async pbkdf2(password, salt, iterations, keylen, digest) {
168
- const encoder = new TextEncoder();
169
- const passwordBuffer = Buffer.from(encoder.encode(password));
170
- let result = Buffer.alloc(keylen);
171
- for (let i = 0; i < iterations; i++) {
172
- const combined = Buffer.concat([passwordBuffer, salt, Buffer.from([i])]);
173
- let hash2 = 0;
174
- for (let j = 0; j < combined.length; j++) {
175
- hash2 = (hash2 << 5) - hash2 + combined[j] & 4294967295;
176
- }
177
- result[i % keylen] ^= hash2 & 255;
178
- }
179
- return result;
180
- }
181
- timingSafeEqual(a, b) {
182
- if (a.length !== b.length) return false;
183
- let result = 0;
184
- for (let i = 0; i < a.length; i++) {
185
- result |= a[i] ^ b[i];
186
- }
187
- return result === 0;
188
- }
189
- }
190
- function getCryptoAdapter() {
191
- const env = detectCryptoEnvironment();
192
- switch (env.preferredAPI) {
193
- case "node":
194
- try {
195
- return new NodeCryptoAdapter();
196
- } catch {
197
- return new FallbackCryptoAdapter();
198
- }
199
- case "web":
200
- return new WebCryptoAdapter();
201
- case "none":
202
- default:
203
- return new FallbackCryptoAdapter();
204
- }
205
- }
206
- async function hash(content, algorithm = "sha256") {
207
- const adapter = getCryptoAdapter();
208
- const hasher = adapter.createHash(algorithm);
209
- const buffer = typeof content === "string" ? Buffer.from(content) : content;
210
- const result = hasher.update(buffer).digest("hex");
211
- if (result instanceof Promise) {
212
- return await result;
213
- }
214
- return result;
215
- }
1
+ const isBrowser = typeof window !== "undefined" && typeof window.document !== "undefined";
216
2
  export {
217
- FallbackCryptoAdapter,
218
- FallbackHmacAdapter,
219
- NodeCryptoAdapter,
220
- NodeHmacAdapter,
221
- WebCryptoAdapter,
222
- WebHmacAdapter,
223
- getCryptoAdapter,
224
- hash
3
+ isBrowser
225
4
  };
226
5
  //# sourceMappingURL=standards-sdk.es119.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"standards-sdk.es119.js","sources":["../../src/utils/crypto-abstraction.ts"],"sourcesContent":["/**\n * Crypto Abstraction Layer\n *\n * Provides a unified interface for cryptographic operations that works\n * across Node.js, browser, and SSR environments.\n */\n\nimport { detectCryptoEnvironment } from './crypto-env';\nimport {\n HashAdapter,\n NodeHashAdapter,\n WebHashAdapter,\n FallbackHashAdapter,\n} from './hash-adapter';\n\n/**\n * HMAC Adapter interface\n */\nexport interface HmacAdapter {\n update(data: Buffer): HmacAdapter;\n digest(encoding?: string): string | Buffer | Promise<string | Buffer>;\n}\n\n/**\n * Node.js HMAC adapter\n */\nexport class NodeHmacAdapter implements HmacAdapter {\n constructor(private nodeHmac: any) {}\n\n update(data: Buffer): HmacAdapter {\n this.nodeHmac.update(data);\n return this;\n }\n\n digest(encoding?: string): string | Buffer {\n return this.nodeHmac.digest(encoding);\n }\n}\n\n/**\n * WebCrypto HMAC adapter\n */\nexport class WebHmacAdapter implements HmacAdapter {\n private data: Buffer[] = [];\n\n constructor(\n private key: Buffer,\n private algorithm: string = 'sha256',\n ) {}\n\n update(data: Buffer): HmacAdapter {\n this.data.push(data);\n return this;\n }\n\n async digest(encoding?: string): Promise<string | Buffer> {\n const combined = Buffer.concat(this.data);\n const keyBytes = new Uint8Array(this.key);\n const keyBuffer = await crypto.subtle.importKey(\n 'raw',\n keyBytes,\n { name: 'HMAC', hash: this.mapAlgorithm(this.algorithm) },\n false,\n ['sign'],\n );\n\n const signature = await crypto.subtle.sign(\n 'HMAC',\n keyBuffer,\n new Uint8Array(combined),\n );\n\n if (encoding === 'hex') {\n return Array.from(new Uint8Array(signature))\n .map(b => b.toString(16).padStart(2, '0'))\n .join('');\n }\n\n return Buffer.from(signature);\n }\n\n private mapAlgorithm(algorithm: string): string {\n const algorithmMap: Record<string, string> = {\n sha256: 'SHA-256',\n sha1: 'SHA-1',\n sha512: 'SHA-512',\n };\n\n return algorithmMap[algorithm.toLowerCase()] || 'SHA-256';\n }\n}\n\n/**\n * Fallback HMAC adapter\n */\nexport class FallbackHmacAdapter implements HmacAdapter {\n private data: Buffer[] = [];\n\n constructor(\n private key: Buffer,\n private algorithm: string = 'sha256',\n ) {}\n\n update(data: Buffer): HmacAdapter {\n this.data.push(data);\n return this;\n }\n\n digest(encoding?: string): string {\n const combined = Buffer.concat(this.data);\n const hash = this.simpleHmac(combined, this.key);\n\n if (encoding === 'hex') {\n return hash.toString(16).padStart(8, '0');\n }\n\n return hash.toString();\n }\n\n private simpleHmac(data: Buffer, key: Buffer): number {\n let hash = 0;\n for (let i = 0; i < data.length; i++) {\n const keyByte = key[i % key.length];\n hash = ((hash << 5) - hash + data[i] + keyByte) & 0xffffffff;\n }\n return Math.abs(hash);\n }\n}\n\n/**\n * Main crypto adapter interface\n */\nexport interface CryptoAdapter {\n createHash(algorithm: string): HashAdapter;\n createHmac(algorithm: string, key: Buffer): HmacAdapter;\n pbkdf2(\n password: string,\n salt: Buffer,\n iterations: number,\n keylen: number,\n digest: string,\n ): Promise<Buffer>;\n timingSafeEqual(a: Buffer, b: Buffer): boolean;\n}\n\ndeclare const require: any;\n\n/**\n * Node.js crypto adapter\n */\nexport class NodeCryptoAdapter implements CryptoAdapter {\n private crypto: any;\n\n constructor() {\n try {\n const moduleName = 'cry' + 'pto';\n this.crypto = require(moduleName);\n } catch (error) {\n throw new Error('Node.js crypto module not available');\n }\n }\n\n createHash(algorithm: string): HashAdapter {\n return new NodeHashAdapter(this.crypto.createHash(algorithm));\n }\n\n createHmac(algorithm: string, key: Buffer): HmacAdapter {\n return new NodeHmacAdapter(this.crypto.createHmac(algorithm, key));\n }\n\n async pbkdf2(\n password: string,\n salt: Buffer,\n iterations: number,\n keylen: number,\n digest: string,\n ): Promise<Buffer> {\n return new Promise((resolve, reject) => {\n this.crypto.pbkdf2(\n password,\n salt,\n iterations,\n keylen,\n digest,\n (err: any, derivedKey: Buffer) => {\n if (err) reject(err);\n else resolve(derivedKey);\n },\n );\n });\n }\n\n timingSafeEqual(a: Buffer, b: Buffer): boolean {\n return this.crypto.timingSafeEqual(a, b);\n }\n}\n\n/**\n * WebCrypto adapter\n */\nexport class WebCryptoAdapter implements CryptoAdapter {\n createHash(algorithm: string): HashAdapter {\n return new WebHashAdapter(algorithm);\n }\n\n createHmac(algorithm: string, key: Buffer): HmacAdapter {\n return new WebHmacAdapter(key, algorithm);\n }\n\n async pbkdf2(\n password: string,\n salt: Buffer,\n iterations: number,\n keylen: number,\n digest: string,\n ): Promise<Buffer> {\n const encoder = new TextEncoder();\n const keyMaterial = await crypto.subtle.importKey(\n 'raw',\n encoder.encode(password),\n { name: 'PBKDF2' },\n false,\n ['deriveBits'],\n );\n\n const derivedBits = await crypto.subtle.deriveBits(\n {\n name: 'PBKDF2',\n salt: new Uint8Array(salt),\n iterations: iterations,\n hash: this.mapDigest(digest),\n },\n keyMaterial,\n keylen * 8,\n );\n\n return Buffer.from(derivedBits);\n }\n\n timingSafeEqual(a: Buffer, b: Buffer): boolean {\n if (a.length !== b.length) return false;\n\n let result = 0;\n for (let i = 0; i < a.length; i++) {\n result |= a[i] ^ b[i];\n }\n return result === 0;\n }\n\n private mapDigest(digest: string): string {\n const digestMap: Record<string, string> = {\n sha256: 'SHA-256',\n sha1: 'SHA-1',\n sha512: 'SHA-512',\n };\n\n return digestMap[digest.toLowerCase()] || 'SHA-256';\n }\n}\n\n/**\n * Fallback crypto adapter for SSR\n */\nexport class FallbackCryptoAdapter implements CryptoAdapter {\n createHash(algorithm: string): HashAdapter {\n return new FallbackHashAdapter(algorithm);\n }\n\n createHmac(algorithm: string, key: Buffer): HmacAdapter {\n return new FallbackHmacAdapter(key, algorithm);\n }\n\n async pbkdf2(\n password: string,\n salt: Buffer,\n iterations: number,\n keylen: number,\n digest: string,\n ): Promise<Buffer> {\n const encoder = new TextEncoder();\n const passwordBuffer = Buffer.from(encoder.encode(password));\n let result = Buffer.alloc(keylen);\n\n for (let i = 0; i < iterations; i++) {\n const combined = Buffer.concat([passwordBuffer, salt, Buffer.from([i])]);\n let hash = 0;\n for (let j = 0; j < combined.length; j++) {\n hash = ((hash << 5) - hash + combined[j]) & 0xffffffff;\n }\n result[i % keylen] ^= hash & 0xff;\n }\n\n return result;\n }\n\n timingSafeEqual(a: Buffer, b: Buffer): boolean {\n if (a.length !== b.length) return false;\n\n let result = 0;\n for (let i = 0; i < a.length; i++) {\n result |= a[i] ^ b[i];\n }\n return result === 0;\n }\n}\n\n/**\n * Get appropriate crypto adapter for current environment\n */\nexport function getCryptoAdapter(): CryptoAdapter {\n const env = detectCryptoEnvironment();\n\n switch (env.preferredAPI) {\n case 'node':\n try {\n return new NodeCryptoAdapter();\n } catch {\n return new FallbackCryptoAdapter();\n }\n case 'web':\n return new WebCryptoAdapter();\n case 'none':\n default:\n return new FallbackCryptoAdapter();\n }\n}\n\n/**\n * Convenience function for simple hash operations\n */\nexport async function hash(\n content: Buffer | string,\n algorithm: string = 'sha256',\n): Promise<string> {\n const adapter = getCryptoAdapter();\n const hasher = adapter.createHash(algorithm);\n const buffer = typeof content === 'string' ? Buffer.from(content) : content;\n const result = hasher.update(buffer).digest('hex');\n\n if (result instanceof Promise) {\n return (await result) as string;\n }\n\n return result as string;\n}\n"],"names":["hash"],"mappings":"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"}
1
+ {"version":3,"file":"standards-sdk.es119.js","sources":["../../src/utils/is-browser.ts"],"sourcesContent":["/**\n * Determines if the current environment is a browser\n */\nexport const isBrowser =\n typeof window !== 'undefined' && typeof window.document !== 'undefined';\n"],"names":[],"mappings":"AAGO,MAAM,YACX,OAAO,WAAW,eAAe,OAAO,OAAO,aAAa;"}
@@ -1,6 +1,6 @@
1
1
  import { PublicKey, PrivateKey } from "@hashgraph/sdk";
2
2
  import { HCS7BaseClient } from "./standards-sdk.es10.js";
3
- import { createNodeOperatorContext } from "./standards-sdk.es135.js";
3
+ import { createNodeOperatorContext } from "./standards-sdk.es137.js";
4
4
  import { buildHcs7CreateRegistryTx, buildHcs7SubmitMessageTx } from "./standards-sdk.es13.js";
5
5
  class HCS7Client extends HCS7BaseClient {
6
6
  constructor(config) {