@hashgraphonline/standards-sdk 0.1.168 → 0.1.170

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 (276) hide show
  1. package/README.md +1 -0
  2. package/dist/browser/hcs-11/client.d.ts.map +1 -1
  3. package/dist/browser/hcs-21/sdk.d.ts.map +1 -1
  4. package/dist/browser/hcs-27/base-client.d.ts +41 -0
  5. package/dist/browser/hcs-27/base-client.d.ts.map +1 -0
  6. package/dist/browser/hcs-27/index.d.ts +6 -0
  7. package/dist/browser/hcs-27/index.d.ts.map +1 -0
  8. package/dist/browser/hcs-27/memos.d.ts +5 -0
  9. package/dist/browser/hcs-27/memos.d.ts.map +1 -0
  10. package/dist/browser/hcs-27/merkle.d.ts +23 -0
  11. package/dist/browser/hcs-27/merkle.d.ts.map +1 -0
  12. package/dist/browser/hcs-27/sdk.d.ts +23 -0
  13. package/dist/browser/hcs-27/sdk.d.ts.map +1 -0
  14. package/dist/browser/hcs-27/types.d.ts +1611 -0
  15. package/dist/browser/hcs-27/types.d.ts.map +1 -0
  16. package/dist/browser/index.d.ts +1 -0
  17. package/dist/browser/index.d.ts.map +1 -1
  18. package/dist/browser/standards-sdk.browser.js +29 -5
  19. package/dist/browser/standards-sdk.browser.js.map +1 -1
  20. package/dist/browser/utils/key-type-detector.d.ts.map +1 -1
  21. package/dist/cjs/hcs-11/client.d.ts.map +1 -1
  22. package/dist/cjs/hcs-21/sdk.d.ts.map +1 -1
  23. package/dist/cjs/hcs-27/base-client.d.ts +41 -0
  24. package/dist/cjs/hcs-27/base-client.d.ts.map +1 -0
  25. package/dist/cjs/hcs-27/index.d.ts +6 -0
  26. package/dist/cjs/hcs-27/index.d.ts.map +1 -0
  27. package/dist/cjs/hcs-27/memos.d.ts +5 -0
  28. package/dist/cjs/hcs-27/memos.d.ts.map +1 -0
  29. package/dist/cjs/hcs-27/merkle.d.ts +23 -0
  30. package/dist/cjs/hcs-27/merkle.d.ts.map +1 -0
  31. package/dist/cjs/hcs-27/sdk.d.ts +23 -0
  32. package/dist/cjs/hcs-27/sdk.d.ts.map +1 -0
  33. package/dist/cjs/hcs-27/types.d.ts +1611 -0
  34. package/dist/cjs/hcs-27/types.d.ts.map +1 -0
  35. package/dist/cjs/index.d.ts +1 -0
  36. package/dist/cjs/index.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/key-type-detector.d.ts.map +1 -1
  40. package/dist/es/hcs-11/client.d.ts.map +1 -1
  41. package/dist/es/hcs-21/sdk.d.ts.map +1 -1
  42. package/dist/es/hcs-27/base-client.d.ts +41 -0
  43. package/dist/es/hcs-27/base-client.d.ts.map +1 -0
  44. package/dist/es/hcs-27/index.d.ts +6 -0
  45. package/dist/es/hcs-27/index.d.ts.map +1 -0
  46. package/dist/es/hcs-27/memos.d.ts +5 -0
  47. package/dist/es/hcs-27/memos.d.ts.map +1 -0
  48. package/dist/es/hcs-27/merkle.d.ts +23 -0
  49. package/dist/es/hcs-27/merkle.d.ts.map +1 -0
  50. package/dist/es/hcs-27/sdk.d.ts +23 -0
  51. package/dist/es/hcs-27/sdk.d.ts.map +1 -0
  52. package/dist/es/hcs-27/types.d.ts +1611 -0
  53. package/dist/es/hcs-27/types.d.ts.map +1 -0
  54. package/dist/es/index.d.ts +1 -0
  55. package/dist/es/index.d.ts.map +1 -1
  56. package/dist/es/standards-sdk.es.js +67 -38
  57. package/dist/es/standards-sdk.es.js.map +1 -1
  58. package/dist/es/standards-sdk.es101.js +2 -2
  59. package/dist/es/standards-sdk.es103.js +2 -2
  60. package/dist/es/standards-sdk.es104.js +1 -1
  61. package/dist/es/standards-sdk.es106.js +1 -1
  62. package/dist/es/standards-sdk.es108.js +2 -2
  63. package/dist/es/standards-sdk.es11.js +1 -1
  64. package/dist/es/standards-sdk.es110.js +1 -1
  65. package/dist/es/standards-sdk.es111.js +2 -2
  66. package/dist/es/standards-sdk.es112.js +151 -234
  67. package/dist/es/standards-sdk.es112.js.map +1 -1
  68. package/dist/es/standards-sdk.es113.js +20 -471
  69. package/dist/es/standards-sdk.es113.js.map +1 -1
  70. package/dist/es/standards-sdk.es114.js +263 -104
  71. package/dist/es/standards-sdk.es114.js.map +1 -1
  72. package/dist/es/standards-sdk.es115.js +167 -138
  73. package/dist/es/standards-sdk.es115.js.map +1 -1
  74. package/dist/es/standards-sdk.es116.js +315 -29
  75. package/dist/es/standards-sdk.es116.js.map +1 -1
  76. package/dist/es/standards-sdk.es117.js +250 -10
  77. package/dist/es/standards-sdk.es117.js.map +1 -1
  78. package/dist/es/standards-sdk.es118.js +448 -152
  79. package/dist/es/standards-sdk.es118.js.map +1 -1
  80. package/dist/es/standards-sdk.es119.js +101 -25
  81. package/dist/es/standards-sdk.es119.js.map +1 -1
  82. package/dist/es/standards-sdk.es12.js +1 -1
  83. package/dist/es/standards-sdk.es120.js +155 -17
  84. package/dist/es/standards-sdk.es120.js.map +1 -1
  85. package/dist/es/standards-sdk.es121.js +29 -155
  86. package/dist/es/standards-sdk.es121.js.map +1 -1
  87. package/dist/es/standards-sdk.es122.js +9 -200
  88. package/dist/es/standards-sdk.es122.js.map +1 -1
  89. package/dist/es/standards-sdk.es123.js +146 -754
  90. package/dist/es/standards-sdk.es123.js.map +1 -1
  91. package/dist/es/standards-sdk.es124.js +27 -11
  92. package/dist/es/standards-sdk.es124.js.map +1 -1
  93. package/dist/es/standards-sdk.es125.js +19 -564
  94. package/dist/es/standards-sdk.es125.js.map +1 -1
  95. package/dist/es/standards-sdk.es126.js +140 -582
  96. package/dist/es/standards-sdk.es126.js.map +1 -1
  97. package/dist/es/standards-sdk.es127.js +202 -12
  98. package/dist/es/standards-sdk.es127.js.map +1 -1
  99. package/dist/es/standards-sdk.es128.js +790 -2
  100. package/dist/es/standards-sdk.es128.js.map +1 -1
  101. package/dist/es/standards-sdk.es129.js +10 -84
  102. package/dist/es/standards-sdk.es129.js.map +1 -1
  103. package/dist/es/standards-sdk.es13.js +1 -1
  104. package/dist/es/standards-sdk.es130.js +567 -40
  105. package/dist/es/standards-sdk.es130.js.map +1 -1
  106. package/dist/es/standards-sdk.es131.js +626 -2
  107. package/dist/es/standards-sdk.es131.js.map +1 -1
  108. package/dist/es/standards-sdk.es132.js +12 -234
  109. package/dist/es/standards-sdk.es132.js.map +1 -1
  110. package/dist/es/standards-sdk.es133.js +2 -1140
  111. package/dist/es/standards-sdk.es133.js.map +1 -1
  112. package/dist/es/standards-sdk.es134.js +73 -292
  113. package/dist/es/standards-sdk.es134.js.map +1 -1
  114. package/dist/es/standards-sdk.es135.js +36 -418
  115. package/dist/es/standards-sdk.es135.js.map +1 -1
  116. package/dist/es/standards-sdk.es136.js +2 -355
  117. package/dist/es/standards-sdk.es136.js.map +1 -1
  118. package/dist/es/standards-sdk.es137.js +198 -1079
  119. package/dist/es/standards-sdk.es137.js.map +1 -1
  120. package/dist/es/standards-sdk.es138.js +1107 -175
  121. package/dist/es/standards-sdk.es138.js.map +1 -1
  122. package/dist/es/standards-sdk.es139.js +218 -1479
  123. package/dist/es/standards-sdk.es139.js.map +1 -1
  124. package/dist/es/standards-sdk.es14.js +1 -1
  125. package/dist/es/standards-sdk.es140.js +422 -1500
  126. package/dist/es/standards-sdk.es140.js.map +1 -1
  127. package/dist/es/standards-sdk.es141.js +351 -13
  128. package/dist/es/standards-sdk.es141.js.map +1 -1
  129. package/dist/es/standards-sdk.es142.js +1102 -73
  130. package/dist/es/standards-sdk.es142.js.map +1 -1
  131. package/dist/es/standards-sdk.es143.js +203 -76
  132. package/dist/es/standards-sdk.es143.js.map +1 -1
  133. package/dist/es/standards-sdk.es144.js +1459 -830
  134. package/dist/es/standards-sdk.es144.js.map +1 -1
  135. package/dist/es/standards-sdk.es145.js +1499 -59
  136. package/dist/es/standards-sdk.es145.js.map +1 -1
  137. package/dist/es/standards-sdk.es146.js +14 -156
  138. package/dist/es/standards-sdk.es146.js.map +1 -1
  139. package/dist/es/standards-sdk.es147.js +87 -7
  140. package/dist/es/standards-sdk.es147.js.map +1 -1
  141. package/dist/es/standards-sdk.es148.js +74 -79
  142. package/dist/es/standards-sdk.es148.js.map +1 -1
  143. package/dist/es/standards-sdk.es149.js +934 -61
  144. package/dist/es/standards-sdk.es149.js.map +1 -1
  145. package/dist/es/standards-sdk.es15.js +1 -1
  146. package/dist/es/standards-sdk.es150.js +60 -30
  147. package/dist/es/standards-sdk.es150.js.map +1 -1
  148. package/dist/es/standards-sdk.es151.js +159 -34
  149. package/dist/es/standards-sdk.es151.js.map +1 -1
  150. package/dist/es/standards-sdk.es152.js +7 -48
  151. package/dist/es/standards-sdk.es152.js.map +1 -1
  152. package/dist/es/standards-sdk.es153.js +70 -122
  153. package/dist/es/standards-sdk.es153.js.map +1 -1
  154. package/dist/es/standards-sdk.es154.js +58 -35
  155. package/dist/es/standards-sdk.es154.js.map +1 -1
  156. package/dist/es/standards-sdk.es155.js +30 -56
  157. package/dist/es/standards-sdk.es155.js.map +1 -1
  158. package/dist/es/standards-sdk.es156.js +34 -84
  159. package/dist/es/standards-sdk.es156.js.map +1 -1
  160. package/dist/es/standards-sdk.es157.js +48 -81
  161. package/dist/es/standards-sdk.es157.js.map +1 -1
  162. package/dist/es/standards-sdk.es158.js +124 -186
  163. package/dist/es/standards-sdk.es158.js.map +1 -1
  164. package/dist/es/standards-sdk.es159.js +34 -12474
  165. package/dist/es/standards-sdk.es159.js.map +1 -1
  166. package/dist/es/standards-sdk.es16.js +5 -5
  167. package/dist/es/standards-sdk.es160.js +12477 -12
  168. package/dist/es/standards-sdk.es160.js.map +1 -1
  169. package/dist/es/standards-sdk.es161.js +51 -68
  170. package/dist/es/standards-sdk.es161.js.map +1 -1
  171. package/dist/es/standards-sdk.es162.js +67 -533
  172. package/dist/es/standards-sdk.es162.js.map +1 -1
  173. package/dist/es/standards-sdk.es163.js +70 -161
  174. package/dist/es/standards-sdk.es163.js.map +1 -1
  175. package/dist/es/standards-sdk.es164.js +187 -309
  176. package/dist/es/standards-sdk.es164.js.map +1 -1
  177. package/dist/es/standards-sdk.es165.js +13 -342
  178. package/dist/es/standards-sdk.es165.js.map +1 -1
  179. package/dist/es/standards-sdk.es166.js +538 -441
  180. package/dist/es/standards-sdk.es166.js.map +1 -1
  181. package/dist/es/standards-sdk.es167.js +142 -301
  182. package/dist/es/standards-sdk.es167.js.map +1 -1
  183. package/dist/es/standards-sdk.es168.js +310 -64
  184. package/dist/es/standards-sdk.es168.js.map +1 -1
  185. package/dist/es/standards-sdk.es169.js +332 -158
  186. package/dist/es/standards-sdk.es169.js.map +1 -1
  187. package/dist/es/standards-sdk.es170.js +441 -210
  188. package/dist/es/standards-sdk.es170.js.map +1 -1
  189. package/dist/es/standards-sdk.es171.js +314 -222
  190. package/dist/es/standards-sdk.es171.js.map +1 -1
  191. package/dist/es/standards-sdk.es172.js +65 -108
  192. package/dist/es/standards-sdk.es172.js.map +1 -1
  193. package/dist/es/standards-sdk.es173.js +61 -114
  194. package/dist/es/standards-sdk.es173.js.map +1 -1
  195. package/dist/es/standards-sdk.es174.js +151 -140
  196. package/dist/es/standards-sdk.es174.js.map +1 -1
  197. package/dist/es/standards-sdk.es175.js +193 -156
  198. package/dist/es/standards-sdk.es175.js.map +1 -1
  199. package/dist/es/standards-sdk.es176.js +221 -121
  200. package/dist/es/standards-sdk.es176.js.map +1 -1
  201. package/dist/es/standards-sdk.es177.js +81 -293
  202. package/dist/es/standards-sdk.es177.js.map +1 -1
  203. package/dist/es/standards-sdk.es178.js +114 -247
  204. package/dist/es/standards-sdk.es178.js.map +1 -1
  205. package/dist/es/standards-sdk.es179.js +119 -110
  206. package/dist/es/standards-sdk.es179.js.map +1 -1
  207. package/dist/es/standards-sdk.es18.js +12 -12
  208. package/dist/es/standards-sdk.es180.js +188 -0
  209. package/dist/es/standards-sdk.es180.js.map +1 -0
  210. package/dist/es/standards-sdk.es181.js +142 -0
  211. package/dist/es/standards-sdk.es181.js.map +1 -0
  212. package/dist/es/standards-sdk.es182.js +334 -0
  213. package/dist/es/standards-sdk.es182.js.map +1 -0
  214. package/dist/es/standards-sdk.es183.js +262 -0
  215. package/dist/es/standards-sdk.es183.js.map +1 -0
  216. package/dist/es/standards-sdk.es184.js +155 -0
  217. package/dist/es/standards-sdk.es184.js.map +1 -0
  218. package/dist/es/standards-sdk.es19.js +9 -9
  219. package/dist/es/standards-sdk.es2.js +2 -2
  220. package/dist/es/standards-sdk.es20.js +1 -1
  221. package/dist/es/standards-sdk.es21.js +1 -1
  222. package/dist/es/standards-sdk.es22.js +1 -1
  223. package/dist/es/standards-sdk.es23.js +1 -1
  224. package/dist/es/standards-sdk.es24.js +1 -1
  225. package/dist/es/standards-sdk.es25.js +1 -1
  226. package/dist/es/standards-sdk.es26.js +1 -1
  227. package/dist/es/standards-sdk.es27.js +12 -12
  228. package/dist/es/standards-sdk.es27.js.map +1 -1
  229. package/dist/es/standards-sdk.es30.js +2 -2
  230. package/dist/es/standards-sdk.es31.js +4 -4
  231. package/dist/es/standards-sdk.es32.js +1 -1
  232. package/dist/es/standards-sdk.es35.js +6 -6
  233. package/dist/es/standards-sdk.es36.js +4 -4
  234. package/dist/es/standards-sdk.es37.js +2 -2
  235. package/dist/es/standards-sdk.es38.js +2 -2
  236. package/dist/es/standards-sdk.es39.js +1 -1
  237. package/dist/es/standards-sdk.es4.js +2 -2
  238. package/dist/es/standards-sdk.es40.js +1 -1
  239. package/dist/es/standards-sdk.es41.js +2 -2
  240. package/dist/es/standards-sdk.es46.js +1 -1
  241. package/dist/es/standards-sdk.es5.js +2 -2
  242. package/dist/es/standards-sdk.es51.js +1 -1
  243. package/dist/es/standards-sdk.es53.js +1 -1
  244. package/dist/es/standards-sdk.es56.js +2 -2
  245. package/dist/es/standards-sdk.es59.js +1 -1
  246. package/dist/es/standards-sdk.es6.js +2 -2
  247. package/dist/es/standards-sdk.es60.js +1 -1
  248. package/dist/es/standards-sdk.es62.js +1 -1
  249. package/dist/es/standards-sdk.es63.js +2 -2
  250. package/dist/es/standards-sdk.es64.js +1 -1
  251. package/dist/es/standards-sdk.es65.js +1 -1
  252. package/dist/es/standards-sdk.es66.js +1 -1
  253. package/dist/es/standards-sdk.es67.js +7 -7
  254. package/dist/es/standards-sdk.es69.js +1 -1
  255. package/dist/es/standards-sdk.es7.js +1 -1
  256. package/dist/es/standards-sdk.es71.js +2 -2
  257. package/dist/es/standards-sdk.es72.js +3 -3
  258. package/dist/es/standards-sdk.es75.js +5 -5
  259. package/dist/es/standards-sdk.es76.js +3 -3
  260. package/dist/es/standards-sdk.es77.js +2 -2
  261. package/dist/es/standards-sdk.es78.js +1 -1
  262. package/dist/es/standards-sdk.es81.js +2 -2
  263. package/dist/es/standards-sdk.es83.js +2 -2
  264. package/dist/es/standards-sdk.es84.js +4 -4
  265. package/dist/es/standards-sdk.es85.js +1 -1
  266. package/dist/es/standards-sdk.es88.js +1 -1
  267. package/dist/es/standards-sdk.es89.js +2 -2
  268. package/dist/es/standards-sdk.es9.js +2 -2
  269. package/dist/es/standards-sdk.es90.js +4 -4
  270. package/dist/es/standards-sdk.es90.js.map +1 -1
  271. package/dist/es/standards-sdk.es94.js +3 -3
  272. package/dist/es/standards-sdk.es96.js +2 -2
  273. package/dist/es/standards-sdk.es98.js +1 -1
  274. package/dist/es/standards-sdk.es99.js +3 -3
  275. package/dist/es/utils/key-type-detector.d.ts.map +1 -1
  276. package/package.json +1 -1
@@ -1,255 +1,172 @@
1
1
  import { z } from "zod";
2
- const HCS26_PROTOCOL = "hcs-26";
3
- const hcs26TopicTypeEnumSchema = z.union([
4
- z.literal(0),
5
- // discovery
6
- z.literal(1),
7
- // version
8
- z.literal(2)
9
- // reputation (optional)
10
- ]);
11
- const hcs26OperationEnumSchema = z.union([
12
- z.literal(0),
13
- // register
14
- z.literal(1),
15
- // update
16
- z.literal(2),
17
- // delete
18
- z.literal(3)
19
- // migrate
20
- ]);
21
- const topicIdSchema = z.string().regex(/^[0-9]+\.[0-9]+\.[0-9]+$/);
22
- const hcs1HrlSchema = z.string().regex(/^hcs:\/\/1\/[0-9]+\.[0-9]+\.[0-9]+$/);
23
- const decentralizedAssetUriSchema = z.string().regex(
24
- /^(hcs:\/\/1\/[0-9]+\.[0-9]+\.[0-9]+|ipfs:\/\/\S+|ar:\/\/\S+|ord:\/\/\S+)$/
25
- );
26
- const semverSchema = z.string().regex(
27
- /^v?(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-([0-9A-Za-z.-]+))?(?:\+[0-9A-Za-z.-]+)?$/
28
- );
29
- function validateNormalizedRelativePath(pathRaw) {
30
- const path = pathRaw.trim();
31
- if (!path) {
32
- throw new Error("Path must be non-empty");
2
+ const canonicalUintSchema = z.string().regex(/^(0|[1-9]\d*)$/);
3
+ function isStrictBase64Url(value) {
4
+ if (!/^[A-Za-z0-9_-]+$/.test(value)) {
5
+ return false;
33
6
  }
34
- if (path.startsWith("/")) {
35
- throw new Error("Path must be relative");
7
+ try {
8
+ const normalized = value + "=".repeat((4 - value.length % 4) % 4);
9
+ const decoded = Buffer.from(normalized, "base64url");
10
+ return decoded.length > 0 && decoded.toString("base64url") === value;
11
+ } catch {
12
+ return false;
36
13
  }
37
- if (path.includes("\\")) {
38
- throw new Error('Path must use "/" separators');
14
+ }
15
+ function isStrictBase64(value) {
16
+ if (!/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(
17
+ value
18
+ )) {
19
+ return false;
39
20
  }
40
- const segments = path.split("/");
41
- for (const segment of segments) {
42
- if (!segment || segment === "." || segment === "..") {
43
- throw new Error(
44
- 'Path must be normalized (no ".", "..", or empty segments)'
45
- );
46
- }
21
+ try {
22
+ return Buffer.from(value, "base64").toString("base64") === value;
23
+ } catch {
24
+ return false;
47
25
  }
48
26
  }
49
- const hcs1HrlOptionalSchema = z.string().regex(/^hcs:\/\/1\/[0-9]+\.[0-9]+\.[0-9]+$/).optional();
50
- const discoveryMetadataAuthorSchema = z.union([
51
- z.string().min(1),
52
- z.object({
53
- name: z.string().min(1),
54
- contact: z.string().min(1).optional(),
55
- url: z.string().url().optional()
56
- }).passthrough()
57
- ]);
58
- const hcs26DiscoveryMetadataSchema = z.object({
59
- name: z.string().min(1),
60
- description: z.string().min(1),
61
- author: discoveryMetadataAuthorSchema,
62
- license: z.string().min(1),
63
- tags: z.array(
64
- z.union([
65
- z.number().int().positive(),
66
- z.string().regex(/^(0|[1-9]\d*)$/).transform((value) => Number.parseInt(value, 10))
67
- ])
68
- ).optional(),
69
- homepage: z.string().url().optional(),
70
- icon: z.union([z.string().url(), decentralizedAssetUriSchema]).optional(),
71
- icon_hcs1: hcs1HrlOptionalSchema,
72
- languages: z.array(z.string().min(1)).optional(),
73
- capabilities: z.array(z.string().min(1)).optional(),
74
- repo: z.string().url().optional(),
75
- commit: z.string().regex(/^[0-9a-f]{7,64}$/i, "commit must be a git commit SHA").optional()
76
- }).passthrough();
77
- const hcs26DiscoveryMetadataPatchSchema = hcs26DiscoveryMetadataSchema.partial().passthrough();
78
- const hcs26DiscoveryRegisterSchema = z.object({
79
- p: z.literal(HCS26_PROTOCOL),
80
- op: z.literal("register"),
81
- t_id: topicIdSchema,
82
- account_id: z.string().min(1),
83
- metadata: z.union([hcs26DiscoveryMetadataSchema, hcs1HrlSchema]),
84
- m: z.string().max(500).optional(),
85
- sequence_number: z.number().int().optional()
86
- }).passthrough();
87
- const hcs26DiscoveryRegisterLegacySchema = z.object({
88
- p: z.literal(HCS26_PROTOCOL),
89
- op: z.literal("register"),
90
- version_registry: topicIdSchema,
91
- publisher: z.string().min(1),
92
- metadata: z.union([hcs26DiscoveryMetadataSchema, hcs1HrlSchema]),
93
- m: z.string().max(500).optional(),
94
- sequence_number: z.number().int().optional()
95
- }).passthrough();
96
- const hcs26DiscoveryUpdateSchema = z.object({
97
- p: z.literal(HCS26_PROTOCOL),
98
- op: z.literal("update"),
99
- uid: z.string().min(1),
100
- account_id: z.string().min(1).optional(),
101
- metadata: z.union([hcs26DiscoveryMetadataPatchSchema, hcs1HrlSchema]).optional(),
102
- m: z.string().max(500).optional(),
103
- sequence_number: z.number().int().optional()
27
+ const base64UrlSchema = z.string().min(1).refine(isStrictBase64Url, "must be base64url");
28
+ const base64Schema = z.string().min(1).refine(isStrictBase64, "must be base64");
29
+ const hcs27RootCommitmentSchema = z.object({
30
+ treeSize: canonicalUintSchema,
31
+ rootHashB64u: base64UrlSchema
104
32
  }).passthrough();
105
- const hcs26DiscoveryUpdateLegacySchema = z.object({
106
- p: z.literal(HCS26_PROTOCOL),
107
- op: z.literal("update"),
108
- uid: z.string().min(1),
109
- publisher: z.string().min(1).optional(),
110
- metadata: z.union([hcs26DiscoveryMetadataPatchSchema, hcs1HrlSchema]).optional(),
111
- m: z.string().max(500).optional(),
112
- sequence_number: z.number().int().optional()
33
+ const hcs27PreviousCommitmentSchema = z.object({
34
+ treeSize: canonicalUintSchema,
35
+ rootHashB64u: base64UrlSchema
113
36
  }).passthrough();
114
- const hcs26DiscoveryDeleteSchema = z.object({
115
- p: z.literal(HCS26_PROTOCOL),
116
- op: z.literal("delete"),
117
- uid: z.string().min(1),
118
- m: z.string().max(500).optional(),
119
- sequence_number: z.number().int().optional()
37
+ const hcs27SignatureSchema = z.object({
38
+ alg: z.string().min(1),
39
+ kid: z.string().min(1),
40
+ b64u: base64UrlSchema
120
41
  }).passthrough();
121
- const hcs26DiscoveryMigrateSchema = z.object({
122
- p: z.literal(HCS26_PROTOCOL),
123
- op: z.literal("migrate"),
124
- m: z.string().max(500).optional(),
125
- sequence_number: z.number().int().optional()
42
+ const hcs27CheckpointMetadataBaseSchema = z.object({
43
+ type: z.literal("ans-checkpoint-v1"),
44
+ stream: z.object({
45
+ registry: z.string().min(1),
46
+ log_id: z.string().min(1)
47
+ }).passthrough(),
48
+ log: z.object({
49
+ alg: z.literal("sha-256"),
50
+ leaf: z.string().min(1),
51
+ merkle: z.literal("rfc9162")
52
+ }).passthrough(),
53
+ root: hcs27RootCommitmentSchema,
54
+ prev: hcs27PreviousCommitmentSchema.optional(),
55
+ sig: hcs27SignatureSchema.optional()
126
56
  }).passthrough();
127
- const checksumSchema = z.string().regex(/^sha256:[0-9a-f]{64}$/);
128
- const hcs26VersionRegisterSchema = z.object({
129
- p: z.literal(HCS26_PROTOCOL),
130
- op: z.literal("register"),
131
- skill_uid: z.number().int().positive(),
132
- version: semverSchema,
133
- t_id: topicIdSchema,
134
- checksum: checksumSchema.optional(),
135
- status: z.enum(["active", "deprecated", "yanked"]).optional(),
136
- m: z.string().max(500).optional(),
137
- sequence_number: z.number().int().optional()
57
+ const hcs27CheckpointMetadataSchema = hcs27CheckpointMetadataBaseSchema.superRefine((value, ctx) => {
58
+ const rootTreeSize = BigInt(value.root.treeSize);
59
+ const prevTreeSize = value.prev ? BigInt(value.prev.treeSize) : void 0;
60
+ if (prevTreeSize !== void 0 && prevTreeSize > rootTreeSize) {
61
+ ctx.addIssue({
62
+ code: z.ZodIssueCode.custom,
63
+ message: "metadata.prev.treeSize must be <= metadata.root.treeSize",
64
+ path: ["prev", "treeSize"]
65
+ });
66
+ }
67
+ });
68
+ const hcs27MetadataDigestSchema = z.object({
69
+ alg: z.literal("sha-256"),
70
+ b64u: base64UrlSchema
138
71
  }).passthrough();
139
- const hcs26VersionRegisterLegacySchema = z.object({
140
- p: z.literal(HCS26_PROTOCOL),
72
+ const hcs27CheckpointMessageSchema = z.object({
73
+ p: z.literal("hcs-27"),
141
74
  op: z.literal("register"),
142
- skill_uid: z.number().int().positive(),
143
- version: semverSchema,
144
- manifest_hcs1: hcs1HrlSchema,
145
- checksum: checksumSchema.optional(),
146
- status: z.enum(["active", "deprecated", "yanked"]).optional(),
147
- m: z.string().max(500).optional(),
148
- sequence_number: z.number().int().optional()
149
- }).passthrough();
150
- const hcs26VersionUpdateSchema = z.object({
151
- p: z.literal(HCS26_PROTOCOL),
152
- op: z.literal("update"),
153
- uid: z.string().min(1),
154
- status: z.enum(["active", "deprecated", "yanked"]).optional(),
155
- m: z.string().max(500).optional(),
156
- sequence_number: z.number().int().optional()
157
- }).passthrough();
158
- const hcs26VersionDeleteSchema = z.object({
159
- p: z.literal(HCS26_PROTOCOL),
160
- op: z.literal("delete"),
161
- uid: z.string().min(1),
162
- m: z.string().max(500).optional(),
163
- sequence_number: z.number().int().optional()
164
- }).passthrough();
165
- const hcs26VersionMigrateSchema = z.object({
166
- p: z.literal(HCS26_PROTOCOL),
167
- op: z.literal("migrate"),
168
- m: z.string().max(500).optional(),
169
- sequence_number: z.number().int().optional()
170
- }).passthrough();
171
- const hcs26ManifestFileSchema = z.object({
172
- path: z.string().min(1).superRefine((value, ctx) => {
173
- try {
174
- validateNormalizedRelativePath(value);
175
- } catch (error) {
176
- const message = error instanceof Error ? error.message : String(error);
177
- ctx.addIssue({ code: z.ZodIssueCode.custom, message });
178
- }
179
- }),
180
- hrl: hcs1HrlSchema,
181
- sha256: z.string().regex(/^[0-9a-f]{64}$/),
182
- mime: z.string().min(1)
183
- }).passthrough();
184
- const hcs26SkillManifestSchema = z.object({
185
- name: z.string().min(1),
186
- description: z.string().min(1),
187
- version: semverSchema,
188
- license: z.string().min(1),
189
- author: discoveryMetadataAuthorSchema,
190
- tags: z.array(
191
- z.union([
192
- z.number().int().positive(),
193
- z.string().regex(/^(0|[1-9]\d*)$/).transform((value) => Number.parseInt(value, 10))
194
- ])
195
- ).optional(),
196
- homepage: z.string().url().optional(),
197
- languages: z.array(z.string().min(1)).optional(),
198
- repo: z.string().url().optional(),
199
- commit: z.string().regex(/^[0-9a-f]{7,64}$/i, "commit must be a git commit SHA").optional(),
200
- entrypoints: z.array(
201
- z.object({
202
- path: z.string().min(1),
203
- language: z.string().min(1),
204
- args: z.array(z.string()).optional()
205
- }).passthrough()
206
- ).optional(),
207
- files: z.array(hcs26ManifestFileSchema).min(1)
75
+ metadata: z.union([
76
+ hcs27CheckpointMetadataBaseSchema,
77
+ z.string().regex(/^hcs:\/\/1\/\d+\.\d+\.\d+$/)
78
+ ]),
79
+ metadata_digest: hcs27MetadataDigestSchema.optional(),
80
+ m: z.string().max(299).optional()
208
81
  }).passthrough().superRefine((value, ctx) => {
209
- const hasSkillMd = value.files.some((file) => file.path === "SKILL.md");
210
- if (!hasSkillMd) {
82
+ if (typeof value.metadata === "string" && !value.metadata_digest) {
211
83
  ctx.addIssue({
212
84
  code: z.ZodIssueCode.custom,
213
- message: 'SKILL.md must be present in the manifest files list with path "SKILL.md".',
214
- path: ["files"]
85
+ message: "metadata_digest is required when metadata is an HCS-1 reference",
86
+ path: ["metadata_digest"]
215
87
  });
216
88
  }
217
89
  });
218
- const hcs26DiscoveryMessageSchema = z.union([
219
- hcs26DiscoveryRegisterSchema,
220
- hcs26DiscoveryRegisterLegacySchema,
221
- hcs26DiscoveryUpdateSchema,
222
- hcs26DiscoveryUpdateLegacySchema,
223
- hcs26DiscoveryDeleteSchema,
224
- hcs26DiscoveryMigrateSchema
225
- ]);
226
- const hcs26VersionMessageSchema = z.union([
227
- hcs26VersionRegisterSchema,
228
- hcs26VersionRegisterLegacySchema,
229
- hcs26VersionUpdateSchema,
230
- hcs26VersionDeleteSchema,
231
- hcs26VersionMigrateSchema
232
- ]);
90
+ const hcs27InclusionProofSchema = z.object({
91
+ leafHash: z.string().regex(/^(?:[0-9a-f]{2})+$/i),
92
+ leafIndex: canonicalUintSchema,
93
+ treeSize: canonicalUintSchema,
94
+ path: z.array(base64Schema),
95
+ rootHash: base64Schema,
96
+ rootSignature: z.string().optional(),
97
+ treeVersion: z.literal(1)
98
+ }).passthrough();
99
+ const hcs27ConsistencyProofSchema = z.object({
100
+ oldTreeSize: canonicalUintSchema,
101
+ newTreeSize: canonicalUintSchema,
102
+ oldRootHash: z.string(),
103
+ newRootHash: z.string(),
104
+ consistencyPath: z.array(base64Schema),
105
+ treeVersion: z.literal(1)
106
+ }).passthrough();
107
+ function toHCS27CheckpointMetadata(value) {
108
+ const { type, stream, log, root, prev, sig } = value;
109
+ if (!type || !stream || !log || !root) {
110
+ throw new Error("Invalid HCS-27 checkpoint metadata");
111
+ }
112
+ return {
113
+ type,
114
+ stream: {
115
+ registry: stream.registry,
116
+ log_id: stream.log_id
117
+ },
118
+ log: {
119
+ alg: log.alg,
120
+ leaf: log.leaf,
121
+ merkle: log.merkle
122
+ },
123
+ root: {
124
+ treeSize: root.treeSize,
125
+ rootHashB64u: root.rootHashB64u
126
+ },
127
+ ...prev ? {
128
+ prev: {
129
+ treeSize: prev.treeSize,
130
+ rootHashB64u: prev.rootHashB64u
131
+ }
132
+ } : {},
133
+ ...sig ? {
134
+ sig: {
135
+ alg: sig.alg,
136
+ kid: sig.kid,
137
+ b64u: sig.b64u
138
+ }
139
+ } : {}
140
+ };
141
+ }
142
+ function toHCS27CheckpointMessage(value) {
143
+ const { p, op, metadata, metadata_digest: metadataDigest, m } = value;
144
+ if (!p || !op || !metadata) {
145
+ throw new Error("Invalid HCS-27 checkpoint message");
146
+ }
147
+ return {
148
+ p,
149
+ op,
150
+ metadata: typeof metadata === "string" ? metadata : toHCS27CheckpointMetadata(metadata),
151
+ ...metadataDigest ? {
152
+ metadata_digest: {
153
+ alg: metadataDigest.alg,
154
+ b64u: metadataDigest.b64u
155
+ }
156
+ } : {},
157
+ ...m ? { m } : {}
158
+ };
159
+ }
233
160
  export {
234
- HCS26_PROTOCOL,
235
- hcs26DiscoveryDeleteSchema,
236
- hcs26DiscoveryMessageSchema,
237
- hcs26DiscoveryMetadataPatchSchema,
238
- hcs26DiscoveryMetadataSchema,
239
- hcs26DiscoveryMigrateSchema,
240
- hcs26DiscoveryRegisterLegacySchema,
241
- hcs26DiscoveryRegisterSchema,
242
- hcs26DiscoveryUpdateLegacySchema,
243
- hcs26DiscoveryUpdateSchema,
244
- hcs26ManifestFileSchema,
245
- hcs26OperationEnumSchema,
246
- hcs26SkillManifestSchema,
247
- hcs26TopicTypeEnumSchema,
248
- hcs26VersionDeleteSchema,
249
- hcs26VersionMessageSchema,
250
- hcs26VersionMigrateSchema,
251
- hcs26VersionRegisterLegacySchema,
252
- hcs26VersionRegisterSchema,
253
- hcs26VersionUpdateSchema
161
+ hcs27CheckpointMessageSchema,
162
+ hcs27CheckpointMetadataSchema,
163
+ hcs27ConsistencyProofSchema,
164
+ hcs27InclusionProofSchema,
165
+ hcs27MetadataDigestSchema,
166
+ hcs27PreviousCommitmentSchema,
167
+ hcs27RootCommitmentSchema,
168
+ hcs27SignatureSchema,
169
+ toHCS27CheckpointMessage,
170
+ toHCS27CheckpointMetadata
254
171
  };
255
172
  //# sourceMappingURL=standards-sdk.es112.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"standards-sdk.es112.js","sources":["../../src/hcs-26/types.ts"],"sourcesContent":["import { z } from 'zod';\nimport type { NetworkType } from '../utils/types';\n\nexport type HCS26Network = NetworkType;\n\nexport const HCS26_PROTOCOL = 'hcs-26' as const;\n\nexport const hcs26TopicTypeEnumSchema = z.union([\n z.literal(0), // discovery\n z.literal(1), // version\n z.literal(2), // reputation (optional)\n]);\n\nexport type Hcs26TopicTypeEnum = z.infer<typeof hcs26TopicTypeEnumSchema>;\n\nexport const hcs26OperationEnumSchema = z.union([\n z.literal(0), // register\n z.literal(1), // update\n z.literal(2), // delete\n z.literal(3), // migrate\n]);\n\nexport type Hcs26OperationEnum = z.infer<typeof hcs26OperationEnumSchema>;\n\nconst topicIdSchema = z.string().regex(/^[0-9]+\\.[0-9]+\\.[0-9]+$/);\nconst hcs1HrlSchema = z.string().regex(/^hcs:\\/\\/1\\/[0-9]+\\.[0-9]+\\.[0-9]+$/);\n\nconst decentralizedAssetUriSchema = z\n .string()\n .regex(\n /^(hcs:\\/\\/1\\/[0-9]+\\.[0-9]+\\.[0-9]+|ipfs:\\/\\/\\S+|ar:\\/\\/\\S+|ord:\\/\\/\\S+)$/,\n );\n\nconst semverSchema = z\n .string()\n .regex(\n /^v?(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-([0-9A-Za-z.-]+))?(?:\\+[0-9A-Za-z.-]+)?$/,\n );\n\nfunction validateNormalizedRelativePath(pathRaw: string): void {\n const path = pathRaw.trim();\n if (!path) {\n throw new Error('Path must be non-empty');\n }\n if (path.startsWith('/')) {\n throw new Error('Path must be relative');\n }\n if (path.includes('\\\\')) {\n throw new Error('Path must use \"/\" separators');\n }\n const segments = path.split('/');\n for (const segment of segments) {\n if (!segment || segment === '.' || segment === '..') {\n throw new Error(\n 'Path must be normalized (no \".\", \"..\", or empty segments)',\n );\n }\n }\n}\n\nconst hcs1HrlOptionalSchema = z\n .string()\n .regex(/^hcs:\\/\\/1\\/[0-9]+\\.[0-9]+\\.[0-9]+$/)\n .optional();\n\nconst discoveryMetadataAuthorSchema = z.union([\n z.string().min(1),\n z\n .object({\n name: z.string().min(1),\n contact: z.string().min(1).optional(),\n url: z.string().url().optional(),\n })\n .passthrough(),\n]);\n\nexport const hcs26DiscoveryMetadataSchema = z\n .object({\n name: z.string().min(1),\n description: z.string().min(1),\n author: discoveryMetadataAuthorSchema,\n license: z.string().min(1),\n tags: z\n .array(\n z.union([\n z.number().int().positive(),\n z\n .string()\n .regex(/^(0|[1-9]\\d*)$/)\n .transform(value => Number.parseInt(value, 10)),\n ]),\n )\n .optional(),\n homepage: z.string().url().optional(),\n icon: z.union([z.string().url(), decentralizedAssetUriSchema]).optional(),\n icon_hcs1: hcs1HrlOptionalSchema,\n languages: z.array(z.string().min(1)).optional(),\n capabilities: z.array(z.string().min(1)).optional(),\n repo: z.string().url().optional(),\n commit: z\n .string()\n .regex(/^[0-9a-f]{7,64}$/i, 'commit must be a git commit SHA')\n .optional(),\n })\n .passthrough();\n\nexport const hcs26DiscoveryMetadataPatchSchema = hcs26DiscoveryMetadataSchema\n .partial()\n .passthrough();\n\nexport const hcs26DiscoveryRegisterSchema = z\n .object({\n p: z.literal(HCS26_PROTOCOL),\n op: z.literal('register'),\n t_id: topicIdSchema,\n account_id: z.string().min(1),\n metadata: z.union([hcs26DiscoveryMetadataSchema, hcs1HrlSchema]),\n m: z.string().max(500).optional(),\n sequence_number: z.number().int().optional(),\n })\n .passthrough();\n\nexport type Hcs26DiscoveryRegister = z.infer<\n typeof hcs26DiscoveryRegisterSchema\n>;\n\nexport const hcs26DiscoveryRegisterLegacySchema = z\n .object({\n p: z.literal(HCS26_PROTOCOL),\n op: z.literal('register'),\n version_registry: topicIdSchema,\n publisher: z.string().min(1),\n metadata: z.union([hcs26DiscoveryMetadataSchema, hcs1HrlSchema]),\n m: z.string().max(500).optional(),\n sequence_number: z.number().int().optional(),\n })\n .passthrough();\n\nexport type Hcs26DiscoveryRegisterLegacy = z.infer<\n typeof hcs26DiscoveryRegisterLegacySchema\n>;\n\nexport const hcs26DiscoveryUpdateSchema = z\n .object({\n p: z.literal(HCS26_PROTOCOL),\n op: z.literal('update'),\n uid: z.string().min(1),\n account_id: z.string().min(1).optional(),\n metadata: z\n .union([hcs26DiscoveryMetadataPatchSchema, hcs1HrlSchema])\n .optional(),\n m: z.string().max(500).optional(),\n sequence_number: z.number().int().optional(),\n })\n .passthrough();\n\nexport type Hcs26DiscoveryUpdate = z.infer<typeof hcs26DiscoveryUpdateSchema>;\n\nexport const hcs26DiscoveryUpdateLegacySchema = z\n .object({\n p: z.literal(HCS26_PROTOCOL),\n op: z.literal('update'),\n uid: z.string().min(1),\n publisher: z.string().min(1).optional(),\n metadata: z\n .union([hcs26DiscoveryMetadataPatchSchema, hcs1HrlSchema])\n .optional(),\n m: z.string().max(500).optional(),\n sequence_number: z.number().int().optional(),\n })\n .passthrough();\n\nexport type Hcs26DiscoveryUpdateLegacy = z.infer<\n typeof hcs26DiscoveryUpdateLegacySchema\n>;\n\nexport const hcs26DiscoveryDeleteSchema = z\n .object({\n p: z.literal(HCS26_PROTOCOL),\n op: z.literal('delete'),\n uid: z.string().min(1),\n m: z.string().max(500).optional(),\n sequence_number: z.number().int().optional(),\n })\n .passthrough();\n\nexport type Hcs26DiscoveryDelete = z.infer<typeof hcs26DiscoveryDeleteSchema>;\n\nexport const hcs26DiscoveryMigrateSchema = z\n .object({\n p: z.literal(HCS26_PROTOCOL),\n op: z.literal('migrate'),\n m: z.string().max(500).optional(),\n sequence_number: z.number().int().optional(),\n })\n .passthrough();\n\nexport type Hcs26DiscoveryMigrate = z.infer<typeof hcs26DiscoveryMigrateSchema>;\n\nconst checksumSchema = z.string().regex(/^sha256:[0-9a-f]{64}$/);\n\nexport const hcs26VersionRegisterSchema = z\n .object({\n p: z.literal(HCS26_PROTOCOL),\n op: z.literal('register'),\n skill_uid: z.number().int().positive(),\n version: semverSchema,\n t_id: topicIdSchema,\n checksum: checksumSchema.optional(),\n status: z.enum(['active', 'deprecated', 'yanked']).optional(),\n m: z.string().max(500).optional(),\n sequence_number: z.number().int().optional(),\n })\n .passthrough();\n\nexport type Hcs26VersionRegister = z.infer<typeof hcs26VersionRegisterSchema>;\n\nexport const hcs26VersionRegisterLegacySchema = z\n .object({\n p: z.literal(HCS26_PROTOCOL),\n op: z.literal('register'),\n skill_uid: z.number().int().positive(),\n version: semverSchema,\n manifest_hcs1: hcs1HrlSchema,\n checksum: checksumSchema.optional(),\n status: z.enum(['active', 'deprecated', 'yanked']).optional(),\n m: z.string().max(500).optional(),\n sequence_number: z.number().int().optional(),\n })\n .passthrough();\n\nexport type Hcs26VersionRegisterLegacy = z.infer<\n typeof hcs26VersionRegisterLegacySchema\n>;\n\nexport const hcs26VersionUpdateSchema = z\n .object({\n p: z.literal(HCS26_PROTOCOL),\n op: z.literal('update'),\n uid: z.string().min(1),\n status: z.enum(['active', 'deprecated', 'yanked']).optional(),\n m: z.string().max(500).optional(),\n sequence_number: z.number().int().optional(),\n })\n .passthrough();\n\nexport type Hcs26VersionUpdate = z.infer<typeof hcs26VersionUpdateSchema>;\n\nexport const hcs26VersionDeleteSchema = z\n .object({\n p: z.literal(HCS26_PROTOCOL),\n op: z.literal('delete'),\n uid: z.string().min(1),\n m: z.string().max(500).optional(),\n sequence_number: z.number().int().optional(),\n })\n .passthrough();\n\nexport type Hcs26VersionDelete = z.infer<typeof hcs26VersionDeleteSchema>;\n\nexport const hcs26VersionMigrateSchema = z\n .object({\n p: z.literal(HCS26_PROTOCOL),\n op: z.literal('migrate'),\n m: z.string().max(500).optional(),\n sequence_number: z.number().int().optional(),\n })\n .passthrough();\n\nexport type Hcs26VersionMigrate = z.infer<typeof hcs26VersionMigrateSchema>;\n\nexport const hcs26ManifestFileSchema = z\n .object({\n path: z\n .string()\n .min(1)\n .superRefine((value, ctx) => {\n try {\n validateNormalizedRelativePath(value);\n } catch (error) {\n const message =\n error instanceof Error ? error.message : String(error);\n ctx.addIssue({ code: z.ZodIssueCode.custom, message });\n }\n }),\n hrl: hcs1HrlSchema,\n sha256: z.string().regex(/^[0-9a-f]{64}$/),\n mime: z.string().min(1),\n })\n .passthrough();\n\nexport type Hcs26ManifestFile = z.infer<typeof hcs26ManifestFileSchema>;\n\nexport const hcs26SkillManifestSchema = z\n .object({\n name: z.string().min(1),\n description: z.string().min(1),\n version: semverSchema,\n license: z.string().min(1),\n author: discoveryMetadataAuthorSchema,\n tags: z\n .array(\n z.union([\n z.number().int().positive(),\n z\n .string()\n .regex(/^(0|[1-9]\\d*)$/)\n .transform(value => Number.parseInt(value, 10)),\n ]),\n )\n .optional(),\n homepage: z.string().url().optional(),\n languages: z.array(z.string().min(1)).optional(),\n repo: z.string().url().optional(),\n commit: z\n .string()\n .regex(/^[0-9a-f]{7,64}$/i, 'commit must be a git commit SHA')\n .optional(),\n entrypoints: z\n .array(\n z\n .object({\n path: z.string().min(1),\n language: z.string().min(1),\n args: z.array(z.string()).optional(),\n })\n .passthrough(),\n )\n .optional(),\n files: z.array(hcs26ManifestFileSchema).min(1),\n })\n .passthrough()\n .superRefine((value, ctx) => {\n const hasSkillMd = value.files.some(file => file.path === 'SKILL.md');\n if (!hasSkillMd) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message:\n 'SKILL.md must be present in the manifest files list with path \"SKILL.md\".',\n path: ['files'],\n });\n }\n });\n\nexport type Hcs26SkillManifest = z.infer<typeof hcs26SkillManifestSchema>;\n\nexport const hcs26DiscoveryMessageSchema = z.union([\n hcs26DiscoveryRegisterSchema,\n hcs26DiscoveryRegisterLegacySchema,\n hcs26DiscoveryUpdateSchema,\n hcs26DiscoveryUpdateLegacySchema,\n hcs26DiscoveryDeleteSchema,\n hcs26DiscoveryMigrateSchema,\n]);\n\nexport type Hcs26DiscoveryMessage = z.infer<typeof hcs26DiscoveryMessageSchema>;\n\nexport const hcs26VersionMessageSchema = z.union([\n hcs26VersionRegisterSchema,\n hcs26VersionRegisterLegacySchema,\n hcs26VersionUpdateSchema,\n hcs26VersionDeleteSchema,\n hcs26VersionMigrateSchema,\n]);\n\nexport type Hcs26VersionMessage = z.infer<typeof hcs26VersionMessageSchema>;\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"standards-sdk.es112.js","sources":["../../src/hcs-27/types.ts"],"sourcesContent":["import {\n AccountId,\n Client,\n KeyList,\n PrivateKey,\n PublicKey,\n TransactionReceipt,\n} from '@hashgraph/sdk';\nimport { z } from 'zod';\nimport type { MirrorNodeConfig } from '../services/mirror-node';\nimport type { ILogger } from '../utils/logger';\nimport type { NetworkType } from '../utils/types';\n\nconst canonicalUintSchema = z.string().regex(/^(0|[1-9]\\d*)$/);\n\nfunction isStrictBase64Url(value: string): boolean {\n if (!/^[A-Za-z0-9_-]+$/.test(value)) {\n return false;\n }\n\n try {\n const normalized = value + '='.repeat((4 - (value.length % 4)) % 4);\n const decoded = Buffer.from(normalized, 'base64url');\n return decoded.length > 0 && decoded.toString('base64url') === value;\n } catch {\n return false;\n }\n}\n\nfunction isStrictBase64(value: string): boolean {\n if (\n !/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(\n value,\n )\n ) {\n return false;\n }\n\n try {\n return Buffer.from(value, 'base64').toString('base64') === value;\n } catch {\n return false;\n }\n}\n\nconst base64UrlSchema = z\n .string()\n .min(1)\n .refine(isStrictBase64Url, 'must be base64url');\n\nconst base64Schema = z.string().min(1).refine(isStrictBase64, 'must be base64');\n\nexport interface HCS27StreamId {\n registry: string;\n log_id: string;\n}\n\nexport interface HCS27LogProfile {\n alg: string;\n leaf: string;\n merkle: string;\n}\n\nexport interface HCS27RootCommitment {\n treeSize: string;\n rootHashB64u: string;\n}\n\nexport interface HCS27PreviousCommitment {\n treeSize: string;\n rootHashB64u: string;\n}\n\nexport interface HCS27Signature {\n alg: string;\n kid: string;\n b64u: string;\n}\n\nexport interface HCS27CheckpointMetadata {\n type: 'ans-checkpoint-v1';\n stream: HCS27StreamId;\n log: HCS27LogProfile;\n root: HCS27RootCommitment;\n prev?: HCS27PreviousCommitment;\n sig?: HCS27Signature;\n}\n\nexport interface HCS27MetadataDigest {\n alg: 'sha-256';\n b64u: string;\n}\n\nexport interface HCS27CheckpointMessage {\n p: 'hcs-27';\n op: 'register';\n metadata: HCS27CheckpointMetadata | string;\n metadata_digest?: HCS27MetadataDigest;\n m?: string;\n}\n\nexport interface HCS27CheckpointRecord {\n topicId: string;\n sequence: number;\n consensusTimestamp: string;\n payer?: string;\n message: HCS27CheckpointMessage;\n effectiveMetadata: HCS27CheckpointMetadata;\n}\n\nexport interface HCS27InclusionProof {\n leafHash: string;\n leafIndex: string;\n treeSize: string;\n path: string[];\n rootHash: string;\n rootSignature?: string;\n treeVersion: 1;\n}\n\nexport interface HCS27ConsistencyProof {\n oldTreeSize: string;\n newTreeSize: string;\n oldRootHash: string;\n newRootHash: string;\n consistencyPath: string[];\n treeVersion: 1;\n}\n\nexport interface HCS27TopicMemo {\n indexedFlag: number;\n ttlSeconds: number;\n topicType: number;\n}\n\nexport type HCS27TopicKey = boolean | string | PublicKey | KeyList | PrivateKey;\n\nexport interface HCS27CreateCheckpointTopicOptions {\n ttl?: number;\n adminKey?: HCS27TopicKey;\n submitKey?: HCS27TopicKey;\n transactionMemo?: string;\n}\n\nexport interface HCS27CreateCheckpointTopicResult {\n topicId: string;\n transactionId: string;\n}\n\nexport interface HCS27PublishCheckpointResult {\n transactionId: string;\n sequenceNumber: number;\n receipt: TransactionReceipt;\n}\n\nexport interface HCS27ClientConfig {\n network: NetworkType;\n logger?: ILogger;\n mirrorNode?: MirrorNodeConfig;\n cdnEndpoint?: string;\n}\n\nexport interface SDKHCS27ClientConfig extends HCS27ClientConfig {\n operatorId: string | AccountId;\n operatorKey: string | PrivateKey;\n keyType?: 'ed25519' | 'ecdsa';\n client?: Client;\n}\n\nexport const hcs27RootCommitmentSchema = z\n .object({\n treeSize: canonicalUintSchema,\n rootHashB64u: base64UrlSchema,\n })\n .passthrough();\n\nexport const hcs27PreviousCommitmentSchema = z\n .object({\n treeSize: canonicalUintSchema,\n rootHashB64u: base64UrlSchema,\n })\n .passthrough();\n\nexport const hcs27SignatureSchema = z\n .object({\n alg: z.string().min(1),\n kid: z.string().min(1),\n b64u: base64UrlSchema,\n })\n .passthrough();\n\nconst hcs27CheckpointMetadataBaseSchema = z\n .object({\n type: z.literal('ans-checkpoint-v1'),\n stream: z\n .object({\n registry: z.string().min(1),\n log_id: z.string().min(1),\n })\n .passthrough(),\n log: z\n .object({\n alg: z.literal('sha-256'),\n leaf: z.string().min(1),\n merkle: z.literal('rfc9162'),\n })\n .passthrough(),\n root: hcs27RootCommitmentSchema,\n prev: hcs27PreviousCommitmentSchema.optional(),\n sig: hcs27SignatureSchema.optional(),\n })\n .passthrough();\n\nexport const hcs27CheckpointMetadataSchema =\n hcs27CheckpointMetadataBaseSchema.superRefine((value, ctx) => {\n const rootTreeSize = BigInt(value.root.treeSize);\n const prevTreeSize = value.prev ? BigInt(value.prev.treeSize) : undefined;\n if (prevTreeSize !== undefined && prevTreeSize > rootTreeSize) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: 'metadata.prev.treeSize must be <= metadata.root.treeSize',\n path: ['prev', 'treeSize'],\n });\n }\n });\n\nexport const hcs27MetadataDigestSchema = z\n .object({\n alg: z.literal('sha-256'),\n b64u: base64UrlSchema,\n })\n .passthrough();\n\nexport const hcs27CheckpointMessageSchema = z\n .object({\n p: z.literal('hcs-27'),\n op: z.literal('register'),\n metadata: z.union([\n hcs27CheckpointMetadataBaseSchema,\n z.string().regex(/^hcs:\\/\\/1\\/\\d+\\.\\d+\\.\\d+$/),\n ]),\n metadata_digest: hcs27MetadataDigestSchema.optional(),\n m: z.string().max(299).optional(),\n })\n .passthrough()\n .superRefine((value, ctx) => {\n if (typeof value.metadata === 'string' && !value.metadata_digest) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message:\n 'metadata_digest is required when metadata is an HCS-1 reference',\n path: ['metadata_digest'],\n });\n }\n });\n\nexport const hcs27InclusionProofSchema = z\n .object({\n leafHash: z.string().regex(/^(?:[0-9a-f]{2})+$/i),\n leafIndex: canonicalUintSchema,\n treeSize: canonicalUintSchema,\n path: z.array(base64Schema),\n rootHash: base64Schema,\n rootSignature: z.string().optional(),\n treeVersion: z.literal(1),\n })\n .passthrough();\n\nexport const hcs27ConsistencyProofSchema = z\n .object({\n oldTreeSize: canonicalUintSchema,\n newTreeSize: canonicalUintSchema,\n oldRootHash: z.string(),\n newRootHash: z.string(),\n consistencyPath: z.array(base64Schema),\n treeVersion: z.literal(1),\n })\n .passthrough();\n\nexport type HCS27ValidatedCheckpointMessage = z.infer<\n typeof hcs27CheckpointMessageSchema\n>;\n\nexport function toHCS27CheckpointMetadata(\n value: z.output<typeof hcs27CheckpointMetadataBaseSchema>,\n): HCS27CheckpointMetadata {\n const { type, stream, log, root, prev, sig } = value;\n if (!type || !stream || !log || !root) {\n throw new Error('Invalid HCS-27 checkpoint metadata');\n }\n\n return {\n type,\n stream: {\n registry: stream.registry,\n log_id: stream.log_id,\n },\n log: {\n alg: log.alg,\n leaf: log.leaf,\n merkle: log.merkle,\n },\n root: {\n treeSize: root.treeSize,\n rootHashB64u: root.rootHashB64u,\n },\n ...(prev\n ? {\n prev: {\n treeSize: prev.treeSize,\n rootHashB64u: prev.rootHashB64u,\n },\n }\n : {}),\n ...(sig\n ? {\n sig: {\n alg: sig.alg,\n kid: sig.kid,\n b64u: sig.b64u,\n },\n }\n : {}),\n };\n}\n\nexport function toHCS27CheckpointMessage(\n value: z.output<typeof hcs27CheckpointMessageSchema>,\n): HCS27CheckpointMessage {\n const { p, op, metadata, metadata_digest: metadataDigest, m } = value;\n if (!p || !op || !metadata) {\n throw new Error('Invalid HCS-27 checkpoint message');\n }\n\n return {\n p,\n op,\n metadata:\n typeof metadata === 'string'\n ? metadata\n : toHCS27CheckpointMetadata(metadata),\n ...(metadataDigest\n ? {\n metadata_digest: {\n alg: metadataDigest.alg,\n b64u: metadataDigest.b64u,\n },\n }\n : {}),\n ...(m ? { m } : {}),\n };\n}\n"],"names":[],"mappings":"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"}