@hashgraphonline/standards-sdk 0.1.157 → 0.1.159

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 (275) hide show
  1. package/dist/cjs/hcs-12/validation/schemas.d.ts +2 -2
  2. package/dist/cjs/hcs-17/types.d.ts +4 -4
  3. package/dist/cjs/hcs-2/types.d.ts +20 -20
  4. package/dist/cjs/hcs-20/types.d.ts +8 -8
  5. package/dist/cjs/hcs-26/base-client.d.ts +83 -0
  6. package/dist/cjs/hcs-26/base-client.d.ts.map +1 -0
  7. package/dist/cjs/hcs-26/browser.d.ts +11 -0
  8. package/dist/cjs/hcs-26/browser.d.ts.map +1 -0
  9. package/dist/cjs/hcs-26/index.d.ts +7 -0
  10. package/dist/cjs/hcs-26/index.d.ts.map +1 -0
  11. package/dist/cjs/hcs-26/memos.d.ts +28 -0
  12. package/dist/cjs/hcs-26/memos.d.ts.map +1 -0
  13. package/dist/cjs/hcs-26/resolver.d.ts +60 -0
  14. package/dist/cjs/hcs-26/resolver.d.ts.map +1 -0
  15. package/dist/cjs/hcs-26/sdk.d.ts +10 -0
  16. package/dist/cjs/hcs-26/sdk.d.ts.map +1 -0
  17. package/dist/cjs/hcs-26/types.d.ts +2752 -0
  18. package/dist/cjs/hcs-26/types.d.ts.map +1 -0
  19. package/dist/cjs/index.d.ts +1 -0
  20. package/dist/cjs/index.d.ts.map +1 -1
  21. package/dist/cjs/inscribe/inscriber.d.ts +1 -1
  22. package/dist/cjs/inscribe/inscriber.d.ts.map +1 -1
  23. package/dist/cjs/inscribe/inscription-cost.d.ts +12 -0
  24. package/dist/cjs/inscribe/inscription-cost.d.ts.map +1 -0
  25. package/dist/cjs/inscribe/types.d.ts +5 -1
  26. package/dist/cjs/inscribe/types.d.ts.map +1 -1
  27. package/dist/cjs/services/registry-broker/client/base-client.d.ts +19 -1
  28. package/dist/cjs/services/registry-broker/client/base-client.d.ts.map +1 -1
  29. package/dist/cjs/services/registry-broker/client/skills.d.ts +20 -1
  30. package/dist/cjs/services/registry-broker/client/skills.d.ts.map +1 -1
  31. package/dist/cjs/services/registry-broker/schemas.d.ts +2515 -86
  32. package/dist/cjs/services/registry-broker/schemas.d.ts.map +1 -1
  33. package/dist/cjs/services/registry-broker/types.d.ts +21 -3
  34. package/dist/cjs/services/registry-broker/types.d.ts.map +1 -1
  35. package/dist/cjs/services/types.d.ts +2 -1
  36. package/dist/cjs/services/types.d.ts.map +1 -1
  37. package/dist/cjs/standards-sdk.cjs +2 -2
  38. package/dist/cjs/standards-sdk.cjs.map +1 -1
  39. package/dist/cjs/utils/crypto-abstraction.d.ts.map +1 -1
  40. package/dist/es/hcs-12/validation/schemas.d.ts +2 -2
  41. package/dist/es/hcs-17/types.d.ts +4 -4
  42. package/dist/es/hcs-2/types.d.ts +20 -20
  43. package/dist/es/hcs-20/types.d.ts +8 -8
  44. package/dist/es/hcs-26/base-client.d.ts +83 -0
  45. package/dist/es/hcs-26/base-client.d.ts.map +1 -0
  46. package/dist/es/hcs-26/browser.d.ts +11 -0
  47. package/dist/es/hcs-26/browser.d.ts.map +1 -0
  48. package/dist/es/hcs-26/index.d.ts +7 -0
  49. package/dist/es/hcs-26/index.d.ts.map +1 -0
  50. package/dist/es/hcs-26/memos.d.ts +28 -0
  51. package/dist/es/hcs-26/memos.d.ts.map +1 -0
  52. package/dist/es/hcs-26/resolver.d.ts +60 -0
  53. package/dist/es/hcs-26/resolver.d.ts.map +1 -0
  54. package/dist/es/hcs-26/sdk.d.ts +10 -0
  55. package/dist/es/hcs-26/sdk.d.ts.map +1 -0
  56. package/dist/es/hcs-26/types.d.ts +2752 -0
  57. package/dist/es/hcs-26/types.d.ts.map +1 -0
  58. package/dist/es/index.d.ts +1 -0
  59. package/dist/es/index.d.ts.map +1 -1
  60. package/dist/es/inscribe/inscriber.d.ts +1 -1
  61. package/dist/es/inscribe/inscriber.d.ts.map +1 -1
  62. package/dist/es/inscribe/inscription-cost.d.ts +12 -0
  63. package/dist/es/inscribe/inscription-cost.d.ts.map +1 -0
  64. package/dist/es/inscribe/types.d.ts +5 -1
  65. package/dist/es/inscribe/types.d.ts.map +1 -1
  66. package/dist/es/services/registry-broker/client/base-client.d.ts +19 -1
  67. package/dist/es/services/registry-broker/client/base-client.d.ts.map +1 -1
  68. package/dist/es/services/registry-broker/client/skills.d.ts +20 -1
  69. package/dist/es/services/registry-broker/client/skills.d.ts.map +1 -1
  70. package/dist/es/services/registry-broker/schemas.d.ts +2515 -86
  71. package/dist/es/services/registry-broker/schemas.d.ts.map +1 -1
  72. package/dist/es/services/registry-broker/types.d.ts +21 -3
  73. package/dist/es/services/registry-broker/types.d.ts.map +1 -1
  74. package/dist/es/services/types.d.ts +2 -1
  75. package/dist/es/services/types.d.ts.map +1 -1
  76. package/dist/es/standards-sdk.es.js +70 -32
  77. package/dist/es/standards-sdk.es.js.map +1 -1
  78. package/dist/es/standards-sdk.es101.js +2 -2
  79. package/dist/es/standards-sdk.es103.js +1 -1
  80. package/dist/es/standards-sdk.es104.js +2 -2
  81. package/dist/es/standards-sdk.es105.js +247 -137
  82. package/dist/es/standards-sdk.es105.js.map +1 -1
  83. package/dist/es/standards-sdk.es106.js +477 -28
  84. package/dist/es/standards-sdk.es106.js.map +1 -1
  85. package/dist/es/standards-sdk.es107.js +103 -20
  86. package/dist/es/standards-sdk.es107.js.map +1 -1
  87. package/dist/es/standards-sdk.es108.js +141 -141
  88. package/dist/es/standards-sdk.es108.js.map +1 -1
  89. package/dist/es/standards-sdk.es109.js +31 -200
  90. package/dist/es/standards-sdk.es109.js.map +1 -1
  91. package/dist/es/standards-sdk.es11.js +1 -1
  92. package/dist/es/standards-sdk.es110.js +9 -787
  93. package/dist/es/standards-sdk.es110.js.map +1 -1
  94. package/dist/es/standards-sdk.es111.js +140 -11
  95. package/dist/es/standards-sdk.es111.js.map +1 -1
  96. package/dist/es/standards-sdk.es112.js +29 -567
  97. package/dist/es/standards-sdk.es112.js.map +1 -1
  98. package/dist/es/standards-sdk.es113.js +17 -597
  99. package/dist/es/standards-sdk.es113.js.map +1 -1
  100. package/dist/es/standards-sdk.es114.js +159 -12
  101. package/dist/es/standards-sdk.es114.js.map +1 -1
  102. package/dist/es/standards-sdk.es115.js +203 -2
  103. package/dist/es/standards-sdk.es115.js.map +1 -1
  104. package/dist/es/standards-sdk.es116.js +774 -71
  105. package/dist/es/standards-sdk.es116.js.map +1 -1
  106. package/dist/es/standards-sdk.es117.js +11 -38
  107. package/dist/es/standards-sdk.es117.js.map +1 -1
  108. package/dist/es/standards-sdk.es118.js +567 -2
  109. package/dist/es/standards-sdk.es118.js.map +1 -1
  110. package/dist/es/standards-sdk.es119.js +576 -205
  111. package/dist/es/standards-sdk.es119.js.map +1 -1
  112. package/dist/es/standards-sdk.es12.js +1 -1
  113. package/dist/es/standards-sdk.es120.js +12 -1139
  114. package/dist/es/standards-sdk.es120.js.map +1 -1
  115. package/dist/es/standards-sdk.es121.js +2 -306
  116. package/dist/es/standards-sdk.es121.js.map +1 -1
  117. package/dist/es/standards-sdk.es122.js +83 -418
  118. package/dist/es/standards-sdk.es122.js.map +1 -1
  119. package/dist/es/standards-sdk.es123.js +36 -351
  120. package/dist/es/standards-sdk.es123.js.map +1 -1
  121. package/dist/es/standards-sdk.es124.js +2 -1117
  122. package/dist/es/standards-sdk.es124.js.map +1 -1
  123. package/dist/es/standards-sdk.es125.js +215 -188
  124. package/dist/es/standards-sdk.es125.js.map +1 -1
  125. package/dist/es/standards-sdk.es126.js +1055 -1482
  126. package/dist/es/standards-sdk.es126.js.map +1 -1
  127. package/dist/es/standards-sdk.es127.js +306 -1138
  128. package/dist/es/standards-sdk.es127.js.map +1 -1
  129. package/dist/es/standards-sdk.es128.js +419 -14
  130. package/dist/es/standards-sdk.es128.js.map +1 -1
  131. package/dist/es/standards-sdk.es129.js +350 -82
  132. package/dist/es/standards-sdk.es129.js.map +1 -1
  133. package/dist/es/standards-sdk.es13.js +1 -1
  134. package/dist/es/standards-sdk.es130.js +1107 -72
  135. package/dist/es/standards-sdk.es130.js.map +1 -1
  136. package/dist/es/standards-sdk.es131.js +181 -845
  137. package/dist/es/standards-sdk.es131.js.map +1 -1
  138. package/dist/es/standards-sdk.es132.js +1558 -51
  139. package/dist/es/standards-sdk.es132.js.map +1 -1
  140. package/dist/es/standards-sdk.es133.js +1236 -159
  141. package/dist/es/standards-sdk.es133.js.map +1 -1
  142. package/dist/es/standards-sdk.es134.js +17 -7
  143. package/dist/es/standards-sdk.es134.js.map +1 -1
  144. package/dist/es/standards-sdk.es135.js +79 -78
  145. package/dist/es/standards-sdk.es135.js.map +1 -1
  146. package/dist/es/standards-sdk.es136.js +75 -59
  147. package/dist/es/standards-sdk.es136.js.map +1 -1
  148. package/dist/es/standards-sdk.es137.js +893 -30
  149. package/dist/es/standards-sdk.es137.js.map +1 -1
  150. package/dist/es/standards-sdk.es138.js +60 -34
  151. package/dist/es/standards-sdk.es138.js.map +1 -1
  152. package/dist/es/standards-sdk.es139.js +159 -28
  153. package/dist/es/standards-sdk.es139.js.map +1 -1
  154. package/dist/es/standards-sdk.es14.js +1 -1
  155. package/dist/es/standards-sdk.es140.js +7 -138
  156. package/dist/es/standards-sdk.es140.js.map +1 -1
  157. package/dist/es/standards-sdk.es141.js +80 -36
  158. package/dist/es/standards-sdk.es141.js.map +1 -1
  159. package/dist/es/standards-sdk.es142.js +58 -49
  160. package/dist/es/standards-sdk.es142.js.map +1 -1
  161. package/dist/es/standards-sdk.es143.js +30 -84
  162. package/dist/es/standards-sdk.es143.js.map +1 -1
  163. package/dist/es/standards-sdk.es144.js +34 -12320
  164. package/dist/es/standards-sdk.es144.js.map +1 -1
  165. package/dist/es/standards-sdk.es145.js +28 -17
  166. package/dist/es/standards-sdk.es145.js.map +1 -1
  167. package/dist/es/standards-sdk.es146.js +118 -152
  168. package/dist/es/standards-sdk.es146.js.map +1 -1
  169. package/dist/es/standards-sdk.es147.js +34 -314
  170. package/dist/es/standards-sdk.es147.js.map +1 -1
  171. package/dist/es/standards-sdk.es148.js +12426 -290
  172. package/dist/es/standards-sdk.es148.js.map +1 -1
  173. package/dist/es/standards-sdk.es149.js +231 -442
  174. package/dist/es/standards-sdk.es149.js.map +1 -1
  175. package/dist/es/standards-sdk.es15.js +1 -1
  176. package/dist/es/standards-sdk.es150.js +142 -301
  177. package/dist/es/standards-sdk.es150.js.map +1 -1
  178. package/dist/es/standards-sdk.es151.js +310 -64
  179. package/dist/es/standards-sdk.es151.js.map +1 -1
  180. package/dist/es/standards-sdk.es152.js +332 -158
  181. package/dist/es/standards-sdk.es152.js.map +1 -1
  182. package/dist/es/standards-sdk.es153.js +441 -210
  183. package/dist/es/standards-sdk.es153.js.map +1 -1
  184. package/dist/es/standards-sdk.es154.js +314 -222
  185. package/dist/es/standards-sdk.es154.js.map +1 -1
  186. package/dist/es/standards-sdk.es155.js +65 -108
  187. package/dist/es/standards-sdk.es155.js.map +1 -1
  188. package/dist/es/standards-sdk.es156.js +14 -123
  189. package/dist/es/standards-sdk.es156.js.map +1 -1
  190. package/dist/es/standards-sdk.es157.js +60 -148
  191. package/dist/es/standards-sdk.es157.js.map +1 -1
  192. package/dist/es/standards-sdk.es158.js +47 -176
  193. package/dist/es/standards-sdk.es158.js.map +1 -1
  194. package/dist/es/standards-sdk.es159.js +65 -120
  195. package/dist/es/standards-sdk.es159.js.map +1 -1
  196. package/dist/es/standards-sdk.es16.js +5 -5
  197. package/dist/es/standards-sdk.es160.js +147 -306
  198. package/dist/es/standards-sdk.es160.js.map +1 -1
  199. package/dist/es/standards-sdk.es161.js +205 -242
  200. package/dist/es/standards-sdk.es161.js.map +1 -1
  201. package/dist/es/standards-sdk.es162.js +233 -110
  202. package/dist/es/standards-sdk.es162.js.map +1 -1
  203. package/dist/es/standards-sdk.es163.js +84 -78
  204. package/dist/es/standards-sdk.es163.js.map +1 -1
  205. package/dist/es/standards-sdk.es164.js +129 -0
  206. package/dist/es/standards-sdk.es164.js.map +1 -0
  207. package/dist/es/standards-sdk.es165.js +164 -0
  208. package/dist/es/standards-sdk.es165.js.map +1 -0
  209. package/dist/es/standards-sdk.es166.js +188 -0
  210. package/dist/es/standards-sdk.es166.js.map +1 -0
  211. package/dist/es/standards-sdk.es167.js +142 -0
  212. package/dist/es/standards-sdk.es167.js.map +1 -0
  213. package/dist/es/standards-sdk.es168.js +334 -0
  214. package/dist/es/standards-sdk.es168.js.map +1 -0
  215. package/dist/es/standards-sdk.es169.js +262 -0
  216. package/dist/es/standards-sdk.es169.js.map +1 -0
  217. package/dist/es/standards-sdk.es170.js +119 -0
  218. package/dist/es/standards-sdk.es170.js.map +1 -0
  219. package/dist/es/standards-sdk.es18.js +12 -12
  220. package/dist/es/standards-sdk.es19.js +9 -9
  221. package/dist/es/standards-sdk.es2.js +2 -2
  222. package/dist/es/standards-sdk.es20.js +1 -1
  223. package/dist/es/standards-sdk.es21.js +1 -1
  224. package/dist/es/standards-sdk.es22.js +1 -1
  225. package/dist/es/standards-sdk.es23.js +1 -1
  226. package/dist/es/standards-sdk.es24.js +1 -1
  227. package/dist/es/standards-sdk.es25.js +1 -1
  228. package/dist/es/standards-sdk.es26.js +1 -1
  229. package/dist/es/standards-sdk.es27.js +12 -12
  230. package/dist/es/standards-sdk.es30.js +2 -2
  231. package/dist/es/standards-sdk.es31.js +4 -4
  232. package/dist/es/standards-sdk.es32.js +1 -1
  233. package/dist/es/standards-sdk.es35.js +6 -6
  234. package/dist/es/standards-sdk.es36.js +4 -4
  235. package/dist/es/standards-sdk.es37.js +2 -2
  236. package/dist/es/standards-sdk.es38.js +2 -2
  237. package/dist/es/standards-sdk.es39.js +1 -1
  238. package/dist/es/standards-sdk.es4.js +2 -2
  239. package/dist/es/standards-sdk.es40.js +1 -1
  240. package/dist/es/standards-sdk.es41.js +2 -2
  241. package/dist/es/standards-sdk.es46.js +1 -1
  242. package/dist/es/standards-sdk.es5.js +2 -2
  243. package/dist/es/standards-sdk.es51.js +1 -1
  244. package/dist/es/standards-sdk.es53.js +1 -1
  245. package/dist/es/standards-sdk.es56.js +2 -2
  246. package/dist/es/standards-sdk.es58.js +1 -1
  247. package/dist/es/standards-sdk.es59.js +1 -1
  248. package/dist/es/standards-sdk.es6.js +2 -2
  249. package/dist/es/standards-sdk.es60.js +7 -7
  250. package/dist/es/standards-sdk.es62.js +1 -1
  251. package/dist/es/standards-sdk.es64.js +2 -2
  252. package/dist/es/standards-sdk.es65.js +3 -3
  253. package/dist/es/standards-sdk.es68.js +2 -2
  254. package/dist/es/standards-sdk.es69.js +3 -3
  255. package/dist/es/standards-sdk.es7.js +1 -1
  256. package/dist/es/standards-sdk.es70.js +2 -2
  257. package/dist/es/standards-sdk.es71.js +1 -1
  258. package/dist/es/standards-sdk.es74.js +2 -2
  259. package/dist/es/standards-sdk.es76.js +2 -2
  260. package/dist/es/standards-sdk.es77.js +4 -4
  261. package/dist/es/standards-sdk.es78.js +1 -1
  262. package/dist/es/standards-sdk.es81.js +1 -1
  263. package/dist/es/standards-sdk.es82.js +2 -2
  264. package/dist/es/standards-sdk.es83.js +4 -4
  265. package/dist/es/standards-sdk.es87.js +3 -3
  266. package/dist/es/standards-sdk.es89.js +2 -2
  267. package/dist/es/standards-sdk.es9.js +2 -2
  268. package/dist/es/standards-sdk.es91.js +1 -1
  269. package/dist/es/standards-sdk.es92.js +3 -3
  270. package/dist/es/standards-sdk.es94.js +2 -2
  271. package/dist/es/standards-sdk.es96.js +2 -2
  272. package/dist/es/standards-sdk.es97.js +1 -1
  273. package/dist/es/standards-sdk.es99.js +1 -1
  274. package/dist/es/utils/crypto-abstraction.d.ts.map +1 -1
  275. package/package.json +5 -4
@@ -1,206 +1,37 @@
1
- import axios from "axios";
2
- import { Logger } from "./standards-sdk.es105.js";
3
- import { HederaMirrorNode } from "./standards-sdk.es126.js";
4
- import "path";
5
- import "buffer";
6
- import "crypto";
7
- import "@noble/curves/secp256k1.js";
8
- import "./standards-sdk.es127.js";
9
- import "./standards-sdk.es129.js";
10
- import "zod";
11
- class HRLResolver {
12
- constructor(logLevel = "info") {
13
- this.defaultEndpoint = "https://kiloscribe.com/api/inscription-cdn";
14
- this.logger = Logger.getInstance({
15
- level: logLevel,
16
- module: "HRLResolver"
1
+ import { getSkillVerificationStatus } from "./standards-sdk.es149.js";
2
+ import { HCS26BaseClient } from "./standards-sdk.es108.js";
3
+ function mapVerification(status) {
4
+ const pendingRequest = status.pendingRequest ?? void 0;
5
+ return {
6
+ name: status.name,
7
+ verified: status.verified,
8
+ previouslyVerified: status.previouslyVerified,
9
+ ...pendingRequest ? { pendingRequest } : {}
10
+ };
11
+ }
12
+ function createRegistryBrokerVerificationProvider(client) {
13
+ return {
14
+ async getSkillVerificationStatus(params) {
15
+ const status = await getSkillVerificationStatus(client, {
16
+ name: params.name
17
+ });
18
+ return mapVerification(status);
19
+ }
20
+ };
21
+ }
22
+ class HCS26Client extends HCS26BaseClient {
23
+ constructor(config) {
24
+ const provider = config.verificationProvider ?? (config.registryBrokerClient ? createRegistryBrokerVerificationProvider(config.registryBrokerClient) : void 0);
25
+ super({
26
+ network: config.network,
27
+ logger: config.logger,
28
+ mirrorNode: config.mirrorNode,
29
+ verificationProvider: provider
17
30
  });
18
31
  }
19
- /**
20
- * Determines if a MIME type represents binary content
21
- */
22
- isBinaryContentType(mimeType) {
23
- const binaryTypes = [
24
- "image/",
25
- "audio/",
26
- "video/",
27
- "application/octet-stream",
28
- "application/pdf",
29
- "application/zip",
30
- "application/gzip",
31
- "application/x-binary",
32
- "application/vnd.ms-",
33
- "application/x-msdownload",
34
- "application/x-shockwave-flash",
35
- "font/",
36
- "application/wasm"
37
- ];
38
- return binaryTypes.some((prefix) => mimeType.startsWith(prefix));
39
- }
40
- /**
41
- * Parses an HRL string into its components
42
- */
43
- parseHRL(hrl) {
44
- if (!hrl) {
45
- return null;
46
- }
47
- const hrlPattern = /^hcs:\/\/(\d+)\/([0-9]+\.[0-9]+\.[0-9]+)$/;
48
- const match = hrl.match(hrlPattern);
49
- if (!match) {
50
- return null;
51
- }
52
- return {
53
- standard: match[1],
54
- topicId: match[2]
55
- };
56
- }
57
- /**
58
- * Validates if a string is a valid HRL
59
- */
60
- isValidHRL(hrl) {
61
- if (!hrl || typeof hrl !== "string") {
62
- return false;
63
- }
64
- const parsed = this.parseHRL(hrl);
65
- if (!parsed) {
66
- return false;
67
- }
68
- const topicIdPattern = /^[0-9]+\.[0-9]+\.[0-9]+$/;
69
- if (!topicIdPattern.test(parsed.topicId)) {
70
- return false;
71
- }
72
- return true;
73
- }
74
- /**
75
- * Validates if a string is a valid topic ID
76
- */
77
- isValidTopicId(topicId) {
78
- const topicIdPattern = /^[0-9]+\.[0-9]+\.[0-9]+$/;
79
- return topicIdPattern.test(topicId);
80
- }
81
- /**
82
- * Resolves content from either an HRL or a topic ID
83
- * If a topic ID is provided, it queries the topic memo to determine the HCS standard
84
- */
85
- async resolve(hrlOrTopicId, options) {
86
- if (this.isValidHRL(hrlOrTopicId)) {
87
- return this.resolveHRL(hrlOrTopicId, options);
88
- }
89
- if (!this.isValidTopicId(hrlOrTopicId)) {
90
- throw new Error(`Invalid HRL or topic ID format: ${hrlOrTopicId}`);
91
- }
92
- try {
93
- const mirrorNode = new HederaMirrorNode(options.network, this.logger);
94
- const topicInfo = await mirrorNode.getTopicInfo(hrlOrTopicId);
95
- const memo = topicInfo?.memo || "";
96
- let standard = "1";
97
- if (memo) {
98
- const hcsMatch = memo.match(/^hcs-(\d+)/);
99
- if (hcsMatch && hcsMatch[1]) {
100
- standard = hcsMatch[1];
101
- }
102
- }
103
- const hrl = `hcs://${standard}/${hrlOrTopicId}`;
104
- return this.resolveHRL(hrl, options);
105
- } catch (error) {
106
- this.logger.error(
107
- `Failed to get topic info for ${hrlOrTopicId}: ${error.message}`
108
- );
109
- const hrl = `hcs://1/${hrlOrTopicId}`;
110
- return this.resolveHRL(hrl, options);
111
- }
112
- }
113
- async getContentWithType(hrl, options) {
114
- if (!this.isValidHRL(hrl)) {
115
- return {
116
- content: hrl,
117
- contentType: "text/plain",
118
- isBinary: false
119
- };
120
- }
121
- try {
122
- const result = await this.resolveHRL(hrl, options);
123
- return {
124
- content: result.content,
125
- contentType: result.contentType,
126
- isBinary: result.isBinary
127
- };
128
- } catch (e) {
129
- const error = e;
130
- const logMessage = `Error resolving HRL for content and type: ${error.message}`;
131
- this.logger.error(logMessage);
132
- throw new Error(logMessage);
133
- }
134
- }
135
- /**
136
- * Resolves HRL content with proper content type detection
137
- */
138
- async resolveHRL(hrl, options) {
139
- const parsed = this.parseHRL(hrl);
140
- if (!parsed) {
141
- throw new Error(`Invalid HRL format: ${hrl}`);
142
- }
143
- const { standard, topicId } = parsed;
144
- this.logger.debug(
145
- `Resolving HRL reference: standard=${standard}, topicId=${topicId}`
146
- );
147
- try {
148
- const cdnEndpoint = options.cdnEndpoint || this.defaultEndpoint;
149
- const cdnUrl = `${cdnEndpoint}/${topicId}?network=${options.network}`;
150
- this.logger.debug(`Fetching content from CDN: ${cdnUrl}`);
151
- const headResponse = await axios.head(cdnUrl);
152
- const contentType = headResponse.headers["content-type"] || "";
153
- const isBinary = this.isBinaryContentType(contentType);
154
- if (isBinary || options.returnRaw) {
155
- const response2 = await axios.get(cdnUrl, {
156
- responseType: "arraybuffer"
157
- });
158
- return {
159
- content: response2.data,
160
- contentType,
161
- topicId,
162
- isBinary: true
163
- };
164
- }
165
- if (contentType === "application/json") {
166
- const response2 = await axios.get(cdnUrl, {
167
- responseType: "json"
168
- });
169
- if (!response2.data) {
170
- throw new Error(`Failed to fetch content from topic: ${topicId}`);
171
- }
172
- return {
173
- content: response2.data,
174
- contentType,
175
- topicId,
176
- isBinary: false
177
- };
178
- }
179
- const response = await axios.get(cdnUrl);
180
- if (!response.data) {
181
- throw new Error(`Failed to fetch content from topic: ${topicId}`);
182
- }
183
- let content;
184
- if (typeof response.data === "object") {
185
- content = response.data.content || response.data.text || JSON.stringify(response.data);
186
- } else {
187
- content = response.data;
188
- }
189
- return {
190
- content,
191
- contentType,
192
- topicId,
193
- isBinary: false
194
- };
195
- } catch (e) {
196
- const error = e;
197
- const logMessage = `Error resolving HRL reference: ${error.message}`;
198
- this.logger.error(logMessage);
199
- throw new Error(logMessage);
200
- }
201
- }
202
32
  }
203
33
  export {
204
- HRLResolver
34
+ HCS26Client,
35
+ createRegistryBrokerVerificationProvider
205
36
  };
206
37
  //# sourceMappingURL=standards-sdk.es109.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"standards-sdk.es109.js","sources":["../../src/utils/hrl-resolver.ts"],"sourcesContent":["import axios from 'axios';\nimport { Logger, LogLevel, ILogger } from './logger';\nimport { NetworkType } from './types';\nimport { HederaMirrorNode } from '../services';\n\n/**\n * Options for HRL resolution\n */\nexport interface HRLResolutionOptions {\n network: NetworkType;\n returnRaw?: boolean;\n cdnEndpoint?: string;\n}\n\n/**\n * Result of an HRL resolution operation\n */\nexport interface HRLResolutionResult {\n content: string | ArrayBuffer;\n contentType: string;\n topicId: string;\n isBinary: boolean;\n}\n\nexport interface ContentWithType {\n content: string | ArrayBuffer;\n contentType: string;\n isBinary: boolean;\n}\n\n/**\n * Utility class for resolving Hedera Resource Locators across the SDK\n */\nexport class HRLResolver {\n private logger: ILogger;\n private defaultEndpoint = 'https://kiloscribe.com/api/inscription-cdn';\n\n constructor(logLevel: LogLevel = 'info') {\n this.logger = Logger.getInstance({\n level: logLevel,\n module: 'HRLResolver',\n });\n }\n\n /**\n * Determines if a MIME type represents binary content\n */\n private isBinaryContentType(mimeType: string): boolean {\n const binaryTypes = [\n 'image/',\n 'audio/',\n 'video/',\n 'application/octet-stream',\n 'application/pdf',\n 'application/zip',\n 'application/gzip',\n 'application/x-binary',\n 'application/vnd.ms-',\n 'application/x-msdownload',\n 'application/x-shockwave-flash',\n 'font/',\n 'application/wasm',\n ];\n\n return binaryTypes.some(prefix => mimeType.startsWith(prefix));\n }\n\n /**\n * Parses an HRL string into its components\n */\n public parseHRL(hrl: string): { standard: string; topicId: string } | null {\n if (!hrl) {\n return null;\n }\n\n const hrlPattern = /^hcs:\\/\\/(\\d+)\\/([0-9]+\\.[0-9]+\\.[0-9]+)$/;\n const match = hrl.match(hrlPattern);\n\n if (!match) {\n return null;\n }\n\n return {\n standard: match[1],\n topicId: match[2],\n };\n }\n\n /**\n * Validates if a string is a valid HRL\n */\n public isValidHRL(hrl: string): boolean {\n if (!hrl || typeof hrl !== 'string') {\n return false;\n }\n\n const parsed = this.parseHRL(hrl);\n if (!parsed) {\n return false;\n }\n\n const topicIdPattern = /^[0-9]+\\.[0-9]+\\.[0-9]+$/;\n if (!topicIdPattern.test(parsed.topicId)) {\n return false;\n }\n\n return true;\n }\n\n /**\n * Validates if a string is a valid topic ID\n */\n public isValidTopicId(topicId: string): boolean {\n const topicIdPattern = /^[0-9]+\\.[0-9]+\\.[0-9]+$/;\n return topicIdPattern.test(topicId);\n }\n\n /**\n * Resolves content from either an HRL or a topic ID\n * If a topic ID is provided, it queries the topic memo to determine the HCS standard\n */\n public async resolve(\n hrlOrTopicId: string,\n options: HRLResolutionOptions,\n ): Promise<HRLResolutionResult> {\n if (this.isValidHRL(hrlOrTopicId)) {\n return this.resolveHRL(hrlOrTopicId, options);\n }\n\n if (!this.isValidTopicId(hrlOrTopicId)) {\n throw new Error(`Invalid HRL or topic ID format: ${hrlOrTopicId}`);\n }\n\n try {\n const mirrorNode = new HederaMirrorNode(options.network, this.logger);\n const topicInfo = await mirrorNode.getTopicInfo(hrlOrTopicId);\n const memo = topicInfo?.memo || '';\n\n let standard = '1';\n if (memo) {\n const hcsMatch = memo.match(/^hcs-(\\d+)/);\n if (hcsMatch && hcsMatch[1]) {\n standard = hcsMatch[1];\n }\n }\n\n const hrl = `hcs://${standard}/${hrlOrTopicId}`;\n return this.resolveHRL(hrl, options);\n } catch (error: any) {\n this.logger.error(\n `Failed to get topic info for ${hrlOrTopicId}: ${error.message}`,\n );\n const hrl = `hcs://1/${hrlOrTopicId}`;\n return this.resolveHRL(hrl, options);\n }\n }\n\n public async getContentWithType(\n hrl: string,\n options: HRLResolutionOptions,\n ): Promise<ContentWithType> {\n if (!this.isValidHRL(hrl)) {\n return {\n content: hrl,\n contentType: 'text/plain',\n isBinary: false,\n };\n }\n\n try {\n const result = await this.resolveHRL(hrl, options);\n return {\n content: result.content,\n contentType: result.contentType,\n isBinary: result.isBinary,\n };\n } catch (e: any) {\n const error = e as Error;\n const logMessage = `Error resolving HRL for content and type: ${error.message}`;\n this.logger.error(logMessage);\n throw new Error(logMessage);\n }\n }\n\n /**\n * Resolves HRL content with proper content type detection\n */\n public async resolveHRL(\n hrl: string,\n options: HRLResolutionOptions,\n ): Promise<HRLResolutionResult> {\n const parsed = this.parseHRL(hrl);\n\n if (!parsed) {\n throw new Error(`Invalid HRL format: ${hrl}`);\n }\n\n const { standard, topicId } = parsed;\n\n this.logger.debug(\n `Resolving HRL reference: standard=${standard}, topicId=${topicId}`,\n );\n\n try {\n const cdnEndpoint = options.cdnEndpoint || this.defaultEndpoint;\n const cdnUrl = `${cdnEndpoint}/${topicId}?network=${options.network}`;\n\n this.logger.debug(`Fetching content from CDN: ${cdnUrl}`);\n const headResponse = await axios.head(cdnUrl);\n const contentType = headResponse.headers['content-type'] || '';\n const isBinary = this.isBinaryContentType(contentType);\n\n if (isBinary || options.returnRaw) {\n const response = await axios.get(cdnUrl, {\n responseType: 'arraybuffer',\n });\n\n return {\n content: response.data,\n contentType,\n topicId,\n isBinary: true,\n };\n }\n\n if (contentType === 'application/json') {\n const response = await axios.get(cdnUrl, {\n responseType: 'json',\n });\n\n if (!response.data) {\n throw new Error(`Failed to fetch content from topic: ${topicId}`);\n }\n\n return {\n content: response.data,\n contentType,\n topicId,\n isBinary: false,\n };\n }\n\n const response = await axios.get(cdnUrl);\n\n if (!response.data) {\n throw new Error(`Failed to fetch content from topic: ${topicId}`);\n }\n\n let content: string;\n\n if (typeof response.data === 'object') {\n content =\n response.data.content ||\n response.data.text ||\n JSON.stringify(response.data);\n } else {\n content = response.data;\n }\n\n return {\n content,\n contentType,\n topicId,\n isBinary: false,\n };\n } catch (e: any) {\n const error = e as Error;\n const logMessage = `Error resolving HRL reference: ${error.message}`;\n this.logger.error(logMessage);\n throw new Error(logMessage);\n }\n }\n}\n"],"names":["response"],"mappings":";;;;;;;;;;AAiCO,MAAM,YAAY;AAAA,EAIvB,YAAY,WAAqB,QAAQ;AAFzC,SAAQ,kBAAkB;AAGxB,SAAK,SAAS,OAAO,YAAY;AAAA,MAC/B,OAAO;AAAA,MACP,QAAQ;AAAA,IAAA,CACT;AAAA,EACH;AAAA;AAAA;AAAA;AAAA,EAKQ,oBAAoB,UAA2B;AACrD,UAAM,cAAc;AAAA,MAClB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAGF,WAAO,YAAY,KAAK,CAAA,WAAU,SAAS,WAAW,MAAM,CAAC;AAAA,EAC/D;AAAA;AAAA;AAAA;AAAA,EAKO,SAAS,KAA2D;AACzE,QAAI,CAAC,KAAK;AACR,aAAO;AAAA,IACT;AAEA,UAAM,aAAa;AACnB,UAAM,QAAQ,IAAI,MAAM,UAAU;AAElC,QAAI,CAAC,OAAO;AACV,aAAO;AAAA,IACT;AAEA,WAAO;AAAA,MACL,UAAU,MAAM,CAAC;AAAA,MACjB,SAAS,MAAM,CAAC;AAAA,IAAA;AAAA,EAEpB;AAAA;AAAA;AAAA;AAAA,EAKO,WAAW,KAAsB;AACtC,QAAI,CAAC,OAAO,OAAO,QAAQ,UAAU;AACnC,aAAO;AAAA,IACT;AAEA,UAAM,SAAS,KAAK,SAAS,GAAG;AAChC,QAAI,CAAC,QAAQ;AACX,aAAO;AAAA,IACT;AAEA,UAAM,iBAAiB;AACvB,QAAI,CAAC,eAAe,KAAK,OAAO,OAAO,GAAG;AACxC,aAAO;AAAA,IACT;AAEA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKO,eAAe,SAA0B;AAC9C,UAAM,iBAAiB;AACvB,WAAO,eAAe,KAAK,OAAO;AAAA,EACpC;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAa,QACX,cACA,SAC8B;AAC9B,QAAI,KAAK,WAAW,YAAY,GAAG;AACjC,aAAO,KAAK,WAAW,cAAc,OAAO;AAAA,IAC9C;AAEA,QAAI,CAAC,KAAK,eAAe,YAAY,GAAG;AACtC,YAAM,IAAI,MAAM,mCAAmC,YAAY,EAAE;AAAA,IACnE;AAEA,QAAI;AACF,YAAM,aAAa,IAAI,iBAAiB,QAAQ,SAAS,KAAK,MAAM;AACpE,YAAM,YAAY,MAAM,WAAW,aAAa,YAAY;AAC5D,YAAM,OAAO,WAAW,QAAQ;AAEhC,UAAI,WAAW;AACf,UAAI,MAAM;AACR,cAAM,WAAW,KAAK,MAAM,YAAY;AACxC,YAAI,YAAY,SAAS,CAAC,GAAG;AAC3B,qBAAW,SAAS,CAAC;AAAA,QACvB;AAAA,MACF;AAEA,YAAM,MAAM,SAAS,QAAQ,IAAI,YAAY;AAC7C,aAAO,KAAK,WAAW,KAAK,OAAO;AAAA,IACrC,SAAS,OAAY;AACnB,WAAK,OAAO;AAAA,QACV,gCAAgC,YAAY,KAAK,MAAM,OAAO;AAAA,MAAA;AAEhE,YAAM,MAAM,WAAW,YAAY;AACnC,aAAO,KAAK,WAAW,KAAK,OAAO;AAAA,IACrC;AAAA,EACF;AAAA,EAEA,MAAa,mBACX,KACA,SAC0B;AAC1B,QAAI,CAAC,KAAK,WAAW,GAAG,GAAG;AACzB,aAAO;AAAA,QACL,SAAS;AAAA,QACT,aAAa;AAAA,QACb,UAAU;AAAA,MAAA;AAAA,IAEd;AAEA,QAAI;AACF,YAAM,SAAS,MAAM,KAAK,WAAW,KAAK,OAAO;AACjD,aAAO;AAAA,QACL,SAAS,OAAO;AAAA,QAChB,aAAa,OAAO;AAAA,QACpB,UAAU,OAAO;AAAA,MAAA;AAAA,IAErB,SAAS,GAAQ;AACf,YAAM,QAAQ;AACd,YAAM,aAAa,6CAA6C,MAAM,OAAO;AAC7E,WAAK,OAAO,MAAM,UAAU;AAC5B,YAAM,IAAI,MAAM,UAAU;AAAA,IAC5B;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,MAAa,WACX,KACA,SAC8B;AAC9B,UAAM,SAAS,KAAK,SAAS,GAAG;AAEhC,QAAI,CAAC,QAAQ;AACX,YAAM,IAAI,MAAM,uBAAuB,GAAG,EAAE;AAAA,IAC9C;AAEA,UAAM,EAAE,UAAU,QAAA,IAAY;AAE9B,SAAK,OAAO;AAAA,MACV,qCAAqC,QAAQ,aAAa,OAAO;AAAA,IAAA;AAGnE,QAAI;AACF,YAAM,cAAc,QAAQ,eAAe,KAAK;AAChD,YAAM,SAAS,GAAG,WAAW,IAAI,OAAO,YAAY,QAAQ,OAAO;AAEnE,WAAK,OAAO,MAAM,8BAA8B,MAAM,EAAE;AACxD,YAAM,eAAe,MAAM,MAAM,KAAK,MAAM;AAC5C,YAAM,cAAc,aAAa,QAAQ,cAAc,KAAK;AAC5D,YAAM,WAAW,KAAK,oBAAoB,WAAW;AAErD,UAAI,YAAY,QAAQ,WAAW;AACjC,cAAMA,YAAW,MAAM,MAAM,IAAI,QAAQ;AAAA,UACvC,cAAc;AAAA,QAAA,CACf;AAED,eAAO;AAAA,UACL,SAASA,UAAS;AAAA,UAClB;AAAA,UACA;AAAA,UACA,UAAU;AAAA,QAAA;AAAA,MAEd;AAEA,UAAI,gBAAgB,oBAAoB;AACtC,cAAMA,YAAW,MAAM,MAAM,IAAI,QAAQ;AAAA,UACvC,cAAc;AAAA,QAAA,CACf;AAED,YAAI,CAACA,UAAS,MAAM;AAClB,gBAAM,IAAI,MAAM,uCAAuC,OAAO,EAAE;AAAA,QAClE;AAEA,eAAO;AAAA,UACL,SAASA,UAAS;AAAA,UAClB;AAAA,UACA;AAAA,UACA,UAAU;AAAA,QAAA;AAAA,MAEd;AAEA,YAAM,WAAW,MAAM,MAAM,IAAI,MAAM;AAEvC,UAAI,CAAC,SAAS,MAAM;AAClB,cAAM,IAAI,MAAM,uCAAuC,OAAO,EAAE;AAAA,MAClE;AAEA,UAAI;AAEJ,UAAI,OAAO,SAAS,SAAS,UAAU;AACrC,kBACE,SAAS,KAAK,WACd,SAAS,KAAK,QACd,KAAK,UAAU,SAAS,IAAI;AAAA,MAChC,OAAO;AACL,kBAAU,SAAS;AAAA,MACrB;AAEA,aAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,QACA,UAAU;AAAA,MAAA;AAAA,IAEd,SAAS,GAAQ;AACf,YAAM,QAAQ;AACd,YAAM,aAAa,kCAAkC,MAAM,OAAO;AAClE,WAAK,OAAO,MAAM,UAAU;AAC5B,YAAM,IAAI,MAAM,UAAU;AAAA,IAC5B;AAAA,EACF;AACF;"}
1
+ {"version":3,"file":"standards-sdk.es109.js","sources":["../../src/hcs-26/sdk.ts"],"sourcesContent":["import type { RegistryBrokerClient } from '../services/registry-broker/client/base-client';\nimport { getSkillVerificationStatus } from '../services/registry-broker/client/skills';\nimport type { SkillVerificationStatusResponse } from '../services/registry-broker/types';\nimport {\n HCS26BaseClient,\n type HCS26ClientConfig,\n type HCS26SkillVerificationProvider,\n type HCS26SkillVerificationStatus,\n} from './base-client';\n\nexport interface SDKHCS26ClientConfig extends HCS26ClientConfig {\n registryBrokerClient?: RegistryBrokerClient;\n}\n\nfunction mapVerification(\n status: SkillVerificationStatusResponse,\n): HCS26SkillVerificationStatus {\n const pendingRequest = status.pendingRequest ?? undefined;\n return {\n name: status.name,\n verified: status.verified,\n previouslyVerified: status.previouslyVerified,\n ...(pendingRequest ? { pendingRequest } : {}),\n };\n}\n\nexport function createRegistryBrokerVerificationProvider(\n client: RegistryBrokerClient,\n): HCS26SkillVerificationProvider {\n return {\n async getSkillVerificationStatus(params: { name: string }) {\n const status = await getSkillVerificationStatus(client, {\n name: params.name,\n });\n return mapVerification(status);\n },\n };\n}\n\nexport class HCS26Client extends HCS26BaseClient {\n constructor(config: SDKHCS26ClientConfig) {\n const provider =\n config.verificationProvider ??\n (config.registryBrokerClient\n ? createRegistryBrokerVerificationProvider(config.registryBrokerClient)\n : undefined);\n\n super({\n network: config.network,\n logger: config.logger,\n mirrorNode: config.mirrorNode,\n verificationProvider: provider,\n });\n }\n}\n"],"names":[],"mappings":";;AAcA,SAAS,gBACP,QAC8B;AAC9B,QAAM,iBAAiB,OAAO,kBAAkB;AAChD,SAAO;AAAA,IACL,MAAM,OAAO;AAAA,IACb,UAAU,OAAO;AAAA,IACjB,oBAAoB,OAAO;AAAA,IAC3B,GAAI,iBAAiB,EAAE,mBAAmB,CAAA;AAAA,EAAC;AAE/C;AAEO,SAAS,yCACd,QACgC;AAChC,SAAO;AAAA,IACL,MAAM,2BAA2B,QAA0B;AACzD,YAAM,SAAS,MAAM,2BAA2B,QAAQ;AAAA,QACtD,MAAM,OAAO;AAAA,MAAA,CACd;AACD,aAAO,gBAAgB,MAAM;AAAA,IAC/B;AAAA,EAAA;AAEJ;AAEO,MAAM,oBAAoB,gBAAgB;AAAA,EAC/C,YAAY,QAA8B;AACxC,UAAM,WACJ,OAAO,yBACN,OAAO,uBACJ,yCAAyC,OAAO,oBAAoB,IACpE;AAEN,UAAM;AAAA,MACJ,SAAS,OAAO;AAAA,MAChB,QAAQ,OAAO;AAAA,MACf,YAAY,OAAO;AAAA,MACnB,sBAAsB;AAAA,IAAA,CACvB;AAAA,EACH;AACF;"}
@@ -1,6 +1,6 @@
1
1
  import { PublicKey, PrivateKey } from "@hashgraph/sdk";
2
2
  import { HCS7BaseClient } from "./standards-sdk.es9.js";
3
- import { createNodeOperatorContext } from "./standards-sdk.es140.js";
3
+ import { createNodeOperatorContext } from "./standards-sdk.es146.js";
4
4
  import { buildHcs7CreateRegistryTx, buildHcs7SubmitMessageTx } from "./standards-sdk.es12.js";
5
5
  class HCS7Client extends HCS7BaseClient {
6
6
  constructor(config) {