@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.
- package/README.md +1 -0
- package/dist/browser/hcs-11/client.d.ts.map +1 -1
- package/dist/browser/hcs-21/sdk.d.ts.map +1 -1
- package/dist/browser/hcs-27/base-client.d.ts +41 -0
- package/dist/browser/hcs-27/base-client.d.ts.map +1 -0
- package/dist/browser/hcs-27/index.d.ts +6 -0
- package/dist/browser/hcs-27/index.d.ts.map +1 -0
- package/dist/browser/hcs-27/memos.d.ts +5 -0
- package/dist/browser/hcs-27/memos.d.ts.map +1 -0
- package/dist/browser/hcs-27/merkle.d.ts +23 -0
- package/dist/browser/hcs-27/merkle.d.ts.map +1 -0
- package/dist/browser/hcs-27/sdk.d.ts +23 -0
- package/dist/browser/hcs-27/sdk.d.ts.map +1 -0
- package/dist/browser/hcs-27/types.d.ts +1611 -0
- package/dist/browser/hcs-27/types.d.ts.map +1 -0
- package/dist/browser/index.d.ts +1 -0
- package/dist/browser/index.d.ts.map +1 -1
- package/dist/browser/standards-sdk.browser.js +29 -5
- package/dist/browser/standards-sdk.browser.js.map +1 -1
- package/dist/browser/utils/key-type-detector.d.ts.map +1 -1
- package/dist/cjs/hcs-11/client.d.ts.map +1 -1
- package/dist/cjs/hcs-21/sdk.d.ts.map +1 -1
- package/dist/cjs/hcs-27/base-client.d.ts +41 -0
- package/dist/cjs/hcs-27/base-client.d.ts.map +1 -0
- package/dist/cjs/hcs-27/index.d.ts +6 -0
- package/dist/cjs/hcs-27/index.d.ts.map +1 -0
- package/dist/cjs/hcs-27/memos.d.ts +5 -0
- package/dist/cjs/hcs-27/memos.d.ts.map +1 -0
- package/dist/cjs/hcs-27/merkle.d.ts +23 -0
- package/dist/cjs/hcs-27/merkle.d.ts.map +1 -0
- package/dist/cjs/hcs-27/sdk.d.ts +23 -0
- package/dist/cjs/hcs-27/sdk.d.ts.map +1 -0
- package/dist/cjs/hcs-27/types.d.ts +1611 -0
- package/dist/cjs/hcs-27/types.d.ts.map +1 -0
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/standards-sdk.cjs +2 -2
- package/dist/cjs/standards-sdk.cjs.map +1 -1
- package/dist/cjs/utils/key-type-detector.d.ts.map +1 -1
- package/dist/es/hcs-11/client.d.ts.map +1 -1
- package/dist/es/hcs-21/sdk.d.ts.map +1 -1
- package/dist/es/hcs-27/base-client.d.ts +41 -0
- package/dist/es/hcs-27/base-client.d.ts.map +1 -0
- package/dist/es/hcs-27/index.d.ts +6 -0
- package/dist/es/hcs-27/index.d.ts.map +1 -0
- package/dist/es/hcs-27/memos.d.ts +5 -0
- package/dist/es/hcs-27/memos.d.ts.map +1 -0
- package/dist/es/hcs-27/merkle.d.ts +23 -0
- package/dist/es/hcs-27/merkle.d.ts.map +1 -0
- package/dist/es/hcs-27/sdk.d.ts +23 -0
- package/dist/es/hcs-27/sdk.d.ts.map +1 -0
- package/dist/es/hcs-27/types.d.ts +1611 -0
- package/dist/es/hcs-27/types.d.ts.map +1 -0
- package/dist/es/index.d.ts +1 -0
- package/dist/es/index.d.ts.map +1 -1
- package/dist/es/standards-sdk.es.js +67 -38
- package/dist/es/standards-sdk.es.js.map +1 -1
- package/dist/es/standards-sdk.es101.js +2 -2
- package/dist/es/standards-sdk.es103.js +2 -2
- package/dist/es/standards-sdk.es104.js +1 -1
- package/dist/es/standards-sdk.es106.js +1 -1
- package/dist/es/standards-sdk.es108.js +2 -2
- package/dist/es/standards-sdk.es11.js +1 -1
- package/dist/es/standards-sdk.es110.js +1 -1
- package/dist/es/standards-sdk.es111.js +2 -2
- package/dist/es/standards-sdk.es112.js +151 -234
- package/dist/es/standards-sdk.es112.js.map +1 -1
- package/dist/es/standards-sdk.es113.js +20 -471
- package/dist/es/standards-sdk.es113.js.map +1 -1
- package/dist/es/standards-sdk.es114.js +263 -104
- package/dist/es/standards-sdk.es114.js.map +1 -1
- package/dist/es/standards-sdk.es115.js +167 -138
- package/dist/es/standards-sdk.es115.js.map +1 -1
- package/dist/es/standards-sdk.es116.js +315 -29
- package/dist/es/standards-sdk.es116.js.map +1 -1
- package/dist/es/standards-sdk.es117.js +250 -10
- package/dist/es/standards-sdk.es117.js.map +1 -1
- package/dist/es/standards-sdk.es118.js +448 -152
- package/dist/es/standards-sdk.es118.js.map +1 -1
- package/dist/es/standards-sdk.es119.js +101 -25
- package/dist/es/standards-sdk.es119.js.map +1 -1
- package/dist/es/standards-sdk.es12.js +1 -1
- package/dist/es/standards-sdk.es120.js +155 -17
- package/dist/es/standards-sdk.es120.js.map +1 -1
- package/dist/es/standards-sdk.es121.js +29 -155
- package/dist/es/standards-sdk.es121.js.map +1 -1
- package/dist/es/standards-sdk.es122.js +9 -200
- package/dist/es/standards-sdk.es122.js.map +1 -1
- package/dist/es/standards-sdk.es123.js +146 -754
- package/dist/es/standards-sdk.es123.js.map +1 -1
- package/dist/es/standards-sdk.es124.js +27 -11
- package/dist/es/standards-sdk.es124.js.map +1 -1
- package/dist/es/standards-sdk.es125.js +19 -564
- package/dist/es/standards-sdk.es125.js.map +1 -1
- package/dist/es/standards-sdk.es126.js +140 -582
- package/dist/es/standards-sdk.es126.js.map +1 -1
- package/dist/es/standards-sdk.es127.js +202 -12
- package/dist/es/standards-sdk.es127.js.map +1 -1
- package/dist/es/standards-sdk.es128.js +790 -2
- package/dist/es/standards-sdk.es128.js.map +1 -1
- package/dist/es/standards-sdk.es129.js +10 -84
- package/dist/es/standards-sdk.es129.js.map +1 -1
- package/dist/es/standards-sdk.es13.js +1 -1
- package/dist/es/standards-sdk.es130.js +567 -40
- package/dist/es/standards-sdk.es130.js.map +1 -1
- package/dist/es/standards-sdk.es131.js +626 -2
- package/dist/es/standards-sdk.es131.js.map +1 -1
- package/dist/es/standards-sdk.es132.js +12 -234
- package/dist/es/standards-sdk.es132.js.map +1 -1
- package/dist/es/standards-sdk.es133.js +2 -1140
- package/dist/es/standards-sdk.es133.js.map +1 -1
- package/dist/es/standards-sdk.es134.js +73 -292
- package/dist/es/standards-sdk.es134.js.map +1 -1
- package/dist/es/standards-sdk.es135.js +36 -418
- package/dist/es/standards-sdk.es135.js.map +1 -1
- package/dist/es/standards-sdk.es136.js +2 -355
- package/dist/es/standards-sdk.es136.js.map +1 -1
- package/dist/es/standards-sdk.es137.js +198 -1079
- package/dist/es/standards-sdk.es137.js.map +1 -1
- package/dist/es/standards-sdk.es138.js +1107 -175
- package/dist/es/standards-sdk.es138.js.map +1 -1
- package/dist/es/standards-sdk.es139.js +218 -1479
- package/dist/es/standards-sdk.es139.js.map +1 -1
- package/dist/es/standards-sdk.es14.js +1 -1
- package/dist/es/standards-sdk.es140.js +422 -1500
- package/dist/es/standards-sdk.es140.js.map +1 -1
- package/dist/es/standards-sdk.es141.js +351 -13
- package/dist/es/standards-sdk.es141.js.map +1 -1
- package/dist/es/standards-sdk.es142.js +1102 -73
- package/dist/es/standards-sdk.es142.js.map +1 -1
- package/dist/es/standards-sdk.es143.js +203 -76
- package/dist/es/standards-sdk.es143.js.map +1 -1
- package/dist/es/standards-sdk.es144.js +1459 -830
- package/dist/es/standards-sdk.es144.js.map +1 -1
- package/dist/es/standards-sdk.es145.js +1499 -59
- package/dist/es/standards-sdk.es145.js.map +1 -1
- package/dist/es/standards-sdk.es146.js +14 -156
- package/dist/es/standards-sdk.es146.js.map +1 -1
- package/dist/es/standards-sdk.es147.js +87 -7
- package/dist/es/standards-sdk.es147.js.map +1 -1
- package/dist/es/standards-sdk.es148.js +74 -79
- package/dist/es/standards-sdk.es148.js.map +1 -1
- package/dist/es/standards-sdk.es149.js +934 -61
- package/dist/es/standards-sdk.es149.js.map +1 -1
- package/dist/es/standards-sdk.es15.js +1 -1
- package/dist/es/standards-sdk.es150.js +60 -30
- package/dist/es/standards-sdk.es150.js.map +1 -1
- package/dist/es/standards-sdk.es151.js +159 -34
- package/dist/es/standards-sdk.es151.js.map +1 -1
- package/dist/es/standards-sdk.es152.js +7 -48
- package/dist/es/standards-sdk.es152.js.map +1 -1
- package/dist/es/standards-sdk.es153.js +70 -122
- package/dist/es/standards-sdk.es153.js.map +1 -1
- package/dist/es/standards-sdk.es154.js +58 -35
- package/dist/es/standards-sdk.es154.js.map +1 -1
- package/dist/es/standards-sdk.es155.js +30 -56
- package/dist/es/standards-sdk.es155.js.map +1 -1
- package/dist/es/standards-sdk.es156.js +34 -84
- package/dist/es/standards-sdk.es156.js.map +1 -1
- package/dist/es/standards-sdk.es157.js +48 -81
- package/dist/es/standards-sdk.es157.js.map +1 -1
- package/dist/es/standards-sdk.es158.js +124 -186
- package/dist/es/standards-sdk.es158.js.map +1 -1
- package/dist/es/standards-sdk.es159.js +34 -12474
- package/dist/es/standards-sdk.es159.js.map +1 -1
- package/dist/es/standards-sdk.es16.js +5 -5
- package/dist/es/standards-sdk.es160.js +12477 -12
- package/dist/es/standards-sdk.es160.js.map +1 -1
- package/dist/es/standards-sdk.es161.js +51 -68
- package/dist/es/standards-sdk.es161.js.map +1 -1
- package/dist/es/standards-sdk.es162.js +67 -533
- package/dist/es/standards-sdk.es162.js.map +1 -1
- package/dist/es/standards-sdk.es163.js +70 -161
- package/dist/es/standards-sdk.es163.js.map +1 -1
- package/dist/es/standards-sdk.es164.js +187 -309
- package/dist/es/standards-sdk.es164.js.map +1 -1
- package/dist/es/standards-sdk.es165.js +13 -342
- package/dist/es/standards-sdk.es165.js.map +1 -1
- package/dist/es/standards-sdk.es166.js +538 -441
- package/dist/es/standards-sdk.es166.js.map +1 -1
- package/dist/es/standards-sdk.es167.js +142 -301
- package/dist/es/standards-sdk.es167.js.map +1 -1
- package/dist/es/standards-sdk.es168.js +310 -64
- package/dist/es/standards-sdk.es168.js.map +1 -1
- package/dist/es/standards-sdk.es169.js +332 -158
- package/dist/es/standards-sdk.es169.js.map +1 -1
- package/dist/es/standards-sdk.es170.js +441 -210
- package/dist/es/standards-sdk.es170.js.map +1 -1
- package/dist/es/standards-sdk.es171.js +314 -222
- package/dist/es/standards-sdk.es171.js.map +1 -1
- package/dist/es/standards-sdk.es172.js +65 -108
- package/dist/es/standards-sdk.es172.js.map +1 -1
- package/dist/es/standards-sdk.es173.js +61 -114
- package/dist/es/standards-sdk.es173.js.map +1 -1
- package/dist/es/standards-sdk.es174.js +151 -140
- package/dist/es/standards-sdk.es174.js.map +1 -1
- package/dist/es/standards-sdk.es175.js +193 -156
- package/dist/es/standards-sdk.es175.js.map +1 -1
- package/dist/es/standards-sdk.es176.js +221 -121
- package/dist/es/standards-sdk.es176.js.map +1 -1
- package/dist/es/standards-sdk.es177.js +81 -293
- package/dist/es/standards-sdk.es177.js.map +1 -1
- package/dist/es/standards-sdk.es178.js +114 -247
- package/dist/es/standards-sdk.es178.js.map +1 -1
- package/dist/es/standards-sdk.es179.js +119 -110
- package/dist/es/standards-sdk.es179.js.map +1 -1
- package/dist/es/standards-sdk.es18.js +12 -12
- package/dist/es/standards-sdk.es180.js +188 -0
- package/dist/es/standards-sdk.es180.js.map +1 -0
- package/dist/es/standards-sdk.es181.js +142 -0
- package/dist/es/standards-sdk.es181.js.map +1 -0
- package/dist/es/standards-sdk.es182.js +334 -0
- package/dist/es/standards-sdk.es182.js.map +1 -0
- package/dist/es/standards-sdk.es183.js +262 -0
- package/dist/es/standards-sdk.es183.js.map +1 -0
- package/dist/es/standards-sdk.es184.js +155 -0
- package/dist/es/standards-sdk.es184.js.map +1 -0
- package/dist/es/standards-sdk.es19.js +9 -9
- package/dist/es/standards-sdk.es2.js +2 -2
- package/dist/es/standards-sdk.es20.js +1 -1
- package/dist/es/standards-sdk.es21.js +1 -1
- package/dist/es/standards-sdk.es22.js +1 -1
- package/dist/es/standards-sdk.es23.js +1 -1
- package/dist/es/standards-sdk.es24.js +1 -1
- package/dist/es/standards-sdk.es25.js +1 -1
- package/dist/es/standards-sdk.es26.js +1 -1
- package/dist/es/standards-sdk.es27.js +12 -12
- package/dist/es/standards-sdk.es27.js.map +1 -1
- package/dist/es/standards-sdk.es30.js +2 -2
- package/dist/es/standards-sdk.es31.js +4 -4
- package/dist/es/standards-sdk.es32.js +1 -1
- package/dist/es/standards-sdk.es35.js +6 -6
- package/dist/es/standards-sdk.es36.js +4 -4
- package/dist/es/standards-sdk.es37.js +2 -2
- package/dist/es/standards-sdk.es38.js +2 -2
- package/dist/es/standards-sdk.es39.js +1 -1
- package/dist/es/standards-sdk.es4.js +2 -2
- package/dist/es/standards-sdk.es40.js +1 -1
- package/dist/es/standards-sdk.es41.js +2 -2
- package/dist/es/standards-sdk.es46.js +1 -1
- package/dist/es/standards-sdk.es5.js +2 -2
- package/dist/es/standards-sdk.es51.js +1 -1
- package/dist/es/standards-sdk.es53.js +1 -1
- package/dist/es/standards-sdk.es56.js +2 -2
- package/dist/es/standards-sdk.es59.js +1 -1
- package/dist/es/standards-sdk.es6.js +2 -2
- package/dist/es/standards-sdk.es60.js +1 -1
- package/dist/es/standards-sdk.es62.js +1 -1
- package/dist/es/standards-sdk.es63.js +2 -2
- package/dist/es/standards-sdk.es64.js +1 -1
- package/dist/es/standards-sdk.es65.js +1 -1
- package/dist/es/standards-sdk.es66.js +1 -1
- package/dist/es/standards-sdk.es67.js +7 -7
- package/dist/es/standards-sdk.es69.js +1 -1
- package/dist/es/standards-sdk.es7.js +1 -1
- package/dist/es/standards-sdk.es71.js +2 -2
- package/dist/es/standards-sdk.es72.js +3 -3
- package/dist/es/standards-sdk.es75.js +5 -5
- package/dist/es/standards-sdk.es76.js +3 -3
- package/dist/es/standards-sdk.es77.js +2 -2
- package/dist/es/standards-sdk.es78.js +1 -1
- package/dist/es/standards-sdk.es81.js +2 -2
- package/dist/es/standards-sdk.es83.js +2 -2
- package/dist/es/standards-sdk.es84.js +4 -4
- package/dist/es/standards-sdk.es85.js +1 -1
- package/dist/es/standards-sdk.es88.js +1 -1
- package/dist/es/standards-sdk.es89.js +2 -2
- package/dist/es/standards-sdk.es9.js +2 -2
- package/dist/es/standards-sdk.es90.js +4 -4
- package/dist/es/standards-sdk.es90.js.map +1 -1
- package/dist/es/standards-sdk.es94.js +3 -3
- package/dist/es/standards-sdk.es96.js +2 -2
- package/dist/es/standards-sdk.es98.js +1 -1
- package/dist/es/standards-sdk.es99.js +3 -3
- package/dist/es/utils/key-type-detector.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1,255 +1,172 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
const
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
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
|
-
|
|
35
|
-
|
|
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
|
-
|
|
38
|
-
|
|
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
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
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
|
|
50
|
-
const
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
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
|
|
106
|
-
|
|
107
|
-
|
|
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
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
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
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
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
|
|
128
|
-
const
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
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
|
|
140
|
-
p: z.literal(
|
|
72
|
+
const hcs27CheckpointMessageSchema = z.object({
|
|
73
|
+
p: z.literal("hcs-27"),
|
|
141
74
|
op: z.literal("register"),
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
m: z.string().max(
|
|
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
|
-
|
|
210
|
-
if (!hasSkillMd) {
|
|
82
|
+
if (typeof value.metadata === "string" && !value.metadata_digest) {
|
|
211
83
|
ctx.addIssue({
|
|
212
84
|
code: z.ZodIssueCode.custom,
|
|
213
|
-
message:
|
|
214
|
-
path: ["
|
|
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
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
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
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
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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"}
|