@hashgraphonline/standards-sdk 0.1.159 → 0.1.160
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/dist/cjs/hcs-12/validation/schemas.d.ts +4 -4
- package/dist/cjs/hcs-14/index.d.ts +5 -0
- package/dist/cjs/hcs-14/index.d.ts.map +1 -1
- package/dist/cjs/hcs-14/resolvers/aid-dns-web-profile.d.ts +37 -0
- package/dist/cjs/hcs-14/resolvers/aid-dns-web-profile.d.ts.map +1 -0
- package/dist/cjs/hcs-14/resolvers/dns.d.ts +3 -0
- package/dist/cjs/hcs-14/resolvers/dns.d.ts.map +1 -0
- package/dist/cjs/hcs-14/resolvers/hcs-11-profile.d.ts +8 -0
- package/dist/cjs/hcs-14/resolvers/hcs-11-profile.d.ts.map +1 -0
- package/dist/cjs/hcs-14/resolvers/profile-utils.d.ts +9 -0
- package/dist/cjs/hcs-14/resolvers/profile-utils.d.ts.map +1 -0
- package/dist/cjs/hcs-14/resolvers/registry.d.ts +21 -1
- package/dist/cjs/hcs-14/resolvers/registry.d.ts.map +1 -1
- package/dist/cjs/hcs-14/resolvers/types.d.ts +106 -5
- package/dist/cjs/hcs-14/resolvers/types.d.ts.map +1 -1
- package/dist/cjs/hcs-14/resolvers/uaid-did-resolution-profile.d.ts +10 -0
- package/dist/cjs/hcs-14/resolvers/uaid-did-resolution-profile.d.ts.map +1 -0
- package/dist/cjs/hcs-14/resolvers/uaid-dns-web-profile.d.ts +22 -0
- package/dist/cjs/hcs-14/resolvers/uaid-dns-web-profile.d.ts.map +1 -0
- package/dist/cjs/hcs-14/sdk.d.ts +16 -1
- package/dist/cjs/hcs-14/sdk.d.ts.map +1 -1
- package/dist/cjs/inscribe/inscriber.d.ts.map +1 -1
- package/dist/cjs/services/registry-broker/schemas.d.ts +1548 -0
- package/dist/cjs/services/registry-broker/schemas.d.ts.map +1 -1
- package/dist/cjs/standards-sdk.cjs +2 -2
- package/dist/cjs/standards-sdk.cjs.map +1 -1
- package/dist/es/hcs-12/validation/schemas.d.ts +4 -4
- package/dist/es/hcs-14/index.d.ts +5 -0
- package/dist/es/hcs-14/index.d.ts.map +1 -1
- package/dist/es/hcs-14/resolvers/aid-dns-web-profile.d.ts +37 -0
- package/dist/es/hcs-14/resolvers/aid-dns-web-profile.d.ts.map +1 -0
- package/dist/es/hcs-14/resolvers/dns.d.ts +3 -0
- package/dist/es/hcs-14/resolvers/dns.d.ts.map +1 -0
- package/dist/es/hcs-14/resolvers/hcs-11-profile.d.ts +8 -0
- package/dist/es/hcs-14/resolvers/hcs-11-profile.d.ts.map +1 -0
- package/dist/es/hcs-14/resolvers/profile-utils.d.ts +9 -0
- package/dist/es/hcs-14/resolvers/profile-utils.d.ts.map +1 -0
- package/dist/es/hcs-14/resolvers/registry.d.ts +21 -1
- package/dist/es/hcs-14/resolvers/registry.d.ts.map +1 -1
- package/dist/es/hcs-14/resolvers/types.d.ts +106 -5
- package/dist/es/hcs-14/resolvers/types.d.ts.map +1 -1
- package/dist/es/hcs-14/resolvers/uaid-did-resolution-profile.d.ts +10 -0
- package/dist/es/hcs-14/resolvers/uaid-did-resolution-profile.d.ts.map +1 -0
- package/dist/es/hcs-14/resolvers/uaid-dns-web-profile.d.ts +22 -0
- package/dist/es/hcs-14/resolvers/uaid-dns-web-profile.d.ts.map +1 -0
- package/dist/es/hcs-14/sdk.d.ts +16 -1
- package/dist/es/hcs-14/sdk.d.ts.map +1 -1
- package/dist/es/inscribe/inscriber.d.ts.map +1 -1
- package/dist/es/services/registry-broker/schemas.d.ts +1548 -0
- package/dist/es/services/registry-broker/schemas.d.ts.map +1 -1
- package/dist/es/standards-sdk.es.js +96 -83
- package/dist/es/standards-sdk.es.js.map +1 -1
- package/dist/es/standards-sdk.es100.js +41 -224
- package/dist/es/standards-sdk.es100.js.map +1 -1
- package/dist/es/standards-sdk.es101.js +249 -97
- package/dist/es/standards-sdk.es101.js.map +1 -1
- package/dist/es/standards-sdk.es102.js +95 -27
- package/dist/es/standards-sdk.es102.js.map +1 -1
- package/dist/es/standards-sdk.es103.js +97 -80
- package/dist/es/standards-sdk.es103.js.map +1 -1
- package/dist/es/standards-sdk.es104.js +29 -30
- package/dist/es/standards-sdk.es104.js.map +1 -1
- package/dist/es/standards-sdk.es105.js +229 -249
- package/dist/es/standards-sdk.es105.js.map +1 -1
- package/dist/es/standards-sdk.es106.js +103 -468
- package/dist/es/standards-sdk.es106.js.map +1 -1
- package/dist/es/standards-sdk.es107.js +32 -103
- package/dist/es/standards-sdk.es107.js.map +1 -1
- package/dist/es/standards-sdk.es108.js +79 -155
- package/dist/es/standards-sdk.es108.js.map +1 -1
- package/dist/es/standards-sdk.es109.js +28 -31
- package/dist/es/standards-sdk.es109.js.map +1 -1
- package/dist/es/standards-sdk.es11.js +1 -1
- package/dist/es/standards-sdk.es110.js +250 -10
- package/dist/es/standards-sdk.es110.js.map +1 -1
- package/dist/es/standards-sdk.es111.js +451 -115
- package/dist/es/standards-sdk.es111.js.map +1 -1
- package/dist/es/standards-sdk.es112.js +101 -25
- package/dist/es/standards-sdk.es112.js.map +1 -1
- package/dist/es/standards-sdk.es113.js +155 -17
- package/dist/es/standards-sdk.es113.js.map +1 -1
- package/dist/es/standards-sdk.es114.js +29 -155
- package/dist/es/standards-sdk.es114.js.map +1 -1
- package/dist/es/standards-sdk.es115.js +9 -200
- package/dist/es/standards-sdk.es115.js.map +1 -1
- package/dist/es/standards-sdk.es116.js +109 -757
- package/dist/es/standards-sdk.es116.js.map +1 -1
- package/dist/es/standards-sdk.es117.js +27 -11
- package/dist/es/standards-sdk.es117.js.map +1 -1
- package/dist/es/standards-sdk.es118.js +19 -564
- package/dist/es/standards-sdk.es118.js.map +1 -1
- package/dist/es/standards-sdk.es119.js +140 -582
- 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 +202 -12
- package/dist/es/standards-sdk.es120.js.map +1 -1
- package/dist/es/standards-sdk.es121.js +790 -2
- package/dist/es/standards-sdk.es121.js.map +1 -1
- package/dist/es/standards-sdk.es122.js +10 -84
- package/dist/es/standards-sdk.es122.js.map +1 -1
- package/dist/es/standards-sdk.es123.js +567 -40
- package/dist/es/standards-sdk.es123.js.map +1 -1
- package/dist/es/standards-sdk.es124.js +602 -2
- package/dist/es/standards-sdk.es124.js.map +1 -1
- package/dist/es/standards-sdk.es125.js +12 -234
- package/dist/es/standards-sdk.es125.js.map +1 -1
- package/dist/es/standards-sdk.es126.js +2 -1140
- package/dist/es/standards-sdk.es126.js.map +1 -1
- package/dist/es/standards-sdk.es127.js +73 -292
- package/dist/es/standards-sdk.es127.js.map +1 -1
- package/dist/es/standards-sdk.es128.js +36 -418
- package/dist/es/standards-sdk.es128.js.map +1 -1
- package/dist/es/standards-sdk.es129.js +2 -355
- 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 +198 -1079
- package/dist/es/standards-sdk.es130.js.map +1 -1
- package/dist/es/standards-sdk.es131.js +1107 -175
- package/dist/es/standards-sdk.es131.js.map +1 -1
- package/dist/es/standards-sdk.es132.js +218 -1479
- package/dist/es/standards-sdk.es132.js.map +1 -1
- package/dist/es/standards-sdk.es133.js +422 -1236
- package/dist/es/standards-sdk.es133.js.map +1 -1
- package/dist/es/standards-sdk.es134.js +351 -13
- package/dist/es/standards-sdk.es134.js.map +1 -1
- package/dist/es/standards-sdk.es135.js +1102 -73
- package/dist/es/standards-sdk.es135.js.map +1 -1
- package/dist/es/standards-sdk.es136.js +203 -76
- package/dist/es/standards-sdk.es136.js.map +1 -1
- package/dist/es/standards-sdk.es137.js +1459 -785
- package/dist/es/standards-sdk.es137.js.map +1 -1
- package/dist/es/standards-sdk.es138.js +1254 -59
- package/dist/es/standards-sdk.es138.js.map +1 -1
- package/dist/es/standards-sdk.es139.js +14 -156
- 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 +87 -7
- package/dist/es/standards-sdk.es140.js.map +1 -1
- package/dist/es/standards-sdk.es141.js +74 -79
- package/dist/es/standards-sdk.es141.js.map +1 -1
- package/dist/es/standards-sdk.es142.js +889 -61
- package/dist/es/standards-sdk.es142.js.map +1 -1
- package/dist/es/standards-sdk.es143.js +60 -30
- package/dist/es/standards-sdk.es143.js.map +1 -1
- package/dist/es/standards-sdk.es144.js +159 -34
- package/dist/es/standards-sdk.es144.js.map +1 -1
- package/dist/es/standards-sdk.es145.js +7 -28
- package/dist/es/standards-sdk.es145.js.map +1 -1
- package/dist/es/standards-sdk.es146.js +70 -122
- package/dist/es/standards-sdk.es146.js.map +1 -1
- package/dist/es/standards-sdk.es147.js +58 -35
- package/dist/es/standards-sdk.es147.js.map +1 -1
- package/dist/es/standards-sdk.es148.js +30 -12482
- package/dist/es/standards-sdk.es148.js.map +1 -1
- package/dist/es/standards-sdk.es149.js +34 -242
- 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 +41 -172
- package/dist/es/standards-sdk.es150.js.map +1 -1
- package/dist/es/standards-sdk.es151.js +115 -299
- package/dist/es/standards-sdk.es151.js.map +1 -1
- package/dist/es/standards-sdk.es152.js +36 -340
- package/dist/es/standards-sdk.es152.js.map +1 -1
- package/dist/es/standards-sdk.es153.js +12427 -398
- package/dist/es/standards-sdk.es153.js.map +1 -1
- package/dist/es/standards-sdk.es154.js +142 -301
- package/dist/es/standards-sdk.es154.js.map +1 -1
- package/dist/es/standards-sdk.es155.js +310 -64
- package/dist/es/standards-sdk.es155.js.map +1 -1
- package/dist/es/standards-sdk.es156.js +342 -13
- package/dist/es/standards-sdk.es156.js.map +1 -1
- package/dist/es/standards-sdk.es157.js +444 -64
- package/dist/es/standards-sdk.es157.js.map +1 -1
- package/dist/es/standards-sdk.es158.js +330 -55
- package/dist/es/standards-sdk.es158.js.map +1 -1
- package/dist/es/standards-sdk.es159.js +60 -68
- 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 +14 -169
- package/dist/es/standards-sdk.es160.js.map +1 -1
- package/dist/es/standards-sdk.es161.js +179 -159
- package/dist/es/standards-sdk.es161.js.map +1 -1
- package/dist/es/standards-sdk.es162.js +49 -232
- package/dist/es/standards-sdk.es162.js.map +1 -1
- package/dist/es/standards-sdk.es163.js +71 -106
- package/dist/es/standards-sdk.es163.js.map +1 -1
- package/dist/es/standards-sdk.es164.js +70 -115
- package/dist/es/standards-sdk.es164.js.map +1 -1
- package/dist/es/standards-sdk.es165.js +60 -148
- package/dist/es/standards-sdk.es165.js.map +1 -1
- package/dist/es/standards-sdk.es166.js +149 -162
- package/dist/es/standards-sdk.es166.js.map +1 -1
- package/dist/es/standards-sdk.es167.js +195 -112
- package/dist/es/standards-sdk.es167.js.map +1 -1
- package/dist/es/standards-sdk.es168.js +208 -300
- package/dist/es/standards-sdk.es168.js.map +1 -1
- package/dist/es/standards-sdk.es169.js +106 -246
- package/dist/es/standards-sdk.es169.js.map +1 -1
- package/dist/es/standards-sdk.es170.js +107 -97
- package/dist/es/standards-sdk.es170.js.map +1 -1
- package/dist/es/standards-sdk.es171.js +164 -0
- package/dist/es/standards-sdk.es171.js.map +1 -0
- package/dist/es/standards-sdk.es172.js +188 -0
- package/dist/es/standards-sdk.es172.js.map +1 -0
- package/dist/es/standards-sdk.es173.js +142 -0
- package/dist/es/standards-sdk.es173.js.map +1 -0
- package/dist/es/standards-sdk.es174.js +334 -0
- package/dist/es/standards-sdk.es174.js.map +1 -0
- package/dist/es/standards-sdk.es175.js +262 -0
- package/dist/es/standards-sdk.es175.js.map +1 -0
- package/dist/es/standards-sdk.es176.js +119 -0
- package/dist/es/standards-sdk.es176.js.map +1 -0
- package/dist/es/standards-sdk.es18.js +12 -12
- 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.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.es58.js +194 -13
- package/dist/es/standards-sdk.es58.js.map +1 -1
- 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 +100 -192
- package/dist/es/standards-sdk.es60.js.map +1 -1
- package/dist/es/standards-sdk.es61.js +172 -24
- package/dist/es/standards-sdk.es61.js.map +1 -1
- package/dist/es/standards-sdk.es62.js +204 -77
- package/dist/es/standards-sdk.es62.js.map +1 -1
- package/dist/es/standards-sdk.es63.js +130 -3
- package/dist/es/standards-sdk.es63.js.map +1 -1
- package/dist/es/standards-sdk.es64.js +41 -95
- package/dist/es/standards-sdk.es64.js.map +1 -1
- package/dist/es/standards-sdk.es65.js +245 -88
- package/dist/es/standards-sdk.es65.js.map +1 -1
- package/dist/es/standards-sdk.es66.js +32 -17
- package/dist/es/standards-sdk.es66.js.map +1 -1
- package/dist/es/standards-sdk.es67.js +96 -77
- package/dist/es/standards-sdk.es67.js.map +1 -1
- package/dist/es/standards-sdk.es68.js +4 -458
- package/dist/es/standards-sdk.es68.js.map +1 -1
- package/dist/es/standards-sdk.es69.js +72 -295
- package/dist/es/standards-sdk.es69.js.map +1 -1
- package/dist/es/standards-sdk.es7.js +1 -1
- package/dist/es/standards-sdk.es70.js +86 -194
- package/dist/es/standards-sdk.es70.js.map +1 -1
- package/dist/es/standards-sdk.es71.js +16 -69
- package/dist/es/standards-sdk.es71.js.map +1 -1
- package/dist/es/standards-sdk.es72.js +69 -63
- package/dist/es/standards-sdk.es72.js.map +1 -1
- package/dist/es/standards-sdk.es73.js +458 -143
- package/dist/es/standards-sdk.es73.js.map +1 -1
- package/dist/es/standards-sdk.es74.js +298 -43
- package/dist/es/standards-sdk.es74.js.map +1 -1
- package/dist/es/standards-sdk.es75.js +174 -370
- package/dist/es/standards-sdk.es75.js.map +1 -1
- package/dist/es/standards-sdk.es76.js +71 -495
- package/dist/es/standards-sdk.es76.js.map +1 -1
- package/dist/es/standards-sdk.es77.js +71 -365
- package/dist/es/standards-sdk.es77.js.map +1 -1
- package/dist/es/standards-sdk.es78.js +137 -83
- package/dist/es/standards-sdk.es78.js.map +1 -1
- package/dist/es/standards-sdk.es79.js +69 -125
- package/dist/es/standards-sdk.es79.js.map +1 -1
- package/dist/es/standards-sdk.es80.js +402 -6
- package/dist/es/standards-sdk.es80.js.map +1 -1
- package/dist/es/standards-sdk.es81.js +492 -43
- package/dist/es/standards-sdk.es81.js.map +1 -1
- package/dist/es/standards-sdk.es82.js +350 -86
- package/dist/es/standards-sdk.es82.js.map +1 -1
- package/dist/es/standards-sdk.es83.js +88 -347
- package/dist/es/standards-sdk.es83.js.map +1 -1
- package/dist/es/standards-sdk.es84.js +125 -281
- package/dist/es/standards-sdk.es84.js.map +1 -1
- package/dist/es/standards-sdk.es85.js +6 -59
- package/dist/es/standards-sdk.es85.js.map +1 -1
- package/dist/es/standards-sdk.es86.js +43 -45
- package/dist/es/standards-sdk.es86.js.map +1 -1
- package/dist/es/standards-sdk.es87.js +86 -135
- package/dist/es/standards-sdk.es87.js.map +1 -1
- package/dist/es/standards-sdk.es88.js +333 -52
- package/dist/es/standards-sdk.es88.js.map +1 -1
- package/dist/es/standards-sdk.es89.js +277 -26
- package/dist/es/standards-sdk.es89.js.map +1 -1
- package/dist/es/standards-sdk.es9.js +2 -2
- package/dist/es/standards-sdk.es90.js +59 -23
- package/dist/es/standards-sdk.es90.js.map +1 -1
- package/dist/es/standards-sdk.es91.js +26 -217
- package/dist/es/standards-sdk.es91.js.map +1 -1
- package/dist/es/standards-sdk.es92.js +104 -236
- package/dist/es/standards-sdk.es92.js.map +1 -1
- package/dist/es/standards-sdk.es93.js +51 -141
- package/dist/es/standards-sdk.es93.js.map +1 -1
- package/dist/es/standards-sdk.es94.js +22 -137
- package/dist/es/standards-sdk.es94.js.map +1 -1
- package/dist/es/standards-sdk.es95.js +20 -44
- package/dist/es/standards-sdk.es95.js.map +1 -1
- package/dist/es/standards-sdk.es96.js +227 -252
- package/dist/es/standards-sdk.es96.js.map +1 -1
- package/dist/es/standards-sdk.es97.js +248 -68
- package/dist/es/standards-sdk.es97.js.map +1 -1
- package/dist/es/standards-sdk.es98.js +108 -52
- package/dist/es/standards-sdk.es98.js.map +1 -1
- package/dist/es/standards-sdk.es99.js +144 -29
- package/dist/es/standards-sdk.es99.js.map +1 -1
- package/package.json +13 -3
|
@@ -1,7 +1,134 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import { multibaseB58btcDecode } from "./standards-sdk.es162.js";
|
|
2
|
+
const UAID_DID_RESOLUTION_PROFILE_ID = "hcs-14.profile.uaid-did-resolution";
|
|
3
|
+
function decodeSrcDid(src) {
|
|
4
|
+
try {
|
|
5
|
+
const bytes = multibaseB58btcDecode(src);
|
|
6
|
+
const decoded = Buffer.from(bytes).toString("utf8").trim();
|
|
7
|
+
return decoded || null;
|
|
8
|
+
} catch {
|
|
9
|
+
return null;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
function buildHintedService(uaid, params) {
|
|
13
|
+
const proto = params["proto"];
|
|
14
|
+
const nativeId = params["nativeId"];
|
|
15
|
+
const domain = params["domain"];
|
|
16
|
+
if (!proto && !nativeId && !domain) {
|
|
17
|
+
return null;
|
|
18
|
+
}
|
|
19
|
+
return {
|
|
20
|
+
id: `${uaid}#hcs14-hinted-service-1`,
|
|
21
|
+
type: "HintedService",
|
|
22
|
+
serviceEndpoint: {
|
|
23
|
+
source: "uaid-parameters",
|
|
24
|
+
proto,
|
|
25
|
+
nativeId,
|
|
26
|
+
domain
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
function buildErrorProfile(uaid, code, message, details) {
|
|
31
|
+
const error = {
|
|
32
|
+
code,
|
|
33
|
+
message,
|
|
34
|
+
details
|
|
35
|
+
};
|
|
36
|
+
return {
|
|
37
|
+
id: uaid,
|
|
38
|
+
error,
|
|
39
|
+
metadata: {
|
|
40
|
+
profile: UAID_DID_RESOLUTION_PROFILE_ID,
|
|
41
|
+
resolved: false
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
function dedupeAlsoKnownAs(baseDid, existing = []) {
|
|
46
|
+
const values = /* @__PURE__ */ new Set([baseDid, ...existing]);
|
|
47
|
+
return [...values];
|
|
48
|
+
}
|
|
49
|
+
class UaidDidResolutionProfileResolver {
|
|
50
|
+
constructor() {
|
|
51
|
+
this.profile = UAID_DID_RESOLUTION_PROFILE_ID;
|
|
52
|
+
this.meta = {
|
|
53
|
+
id: "hcs-14/uaid-did-resolution",
|
|
54
|
+
didMethods: ["*"],
|
|
55
|
+
displayName: "HCS-14 UAID DID Resolution Profile",
|
|
56
|
+
description: "Resolves uaid:did identifiers to DID Document-compatible output with profile metadata."
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
supports(_uaid, parsed) {
|
|
60
|
+
return parsed.method === "uaid";
|
|
61
|
+
}
|
|
62
|
+
async resolveProfile(uaid, context) {
|
|
63
|
+
const parsed = context.parsedUaid;
|
|
64
|
+
if (parsed.method !== "uaid") {
|
|
65
|
+
return buildErrorProfile(
|
|
66
|
+
uaid,
|
|
67
|
+
"ERR_INVALID_UAID",
|
|
68
|
+
"Identifier is not uaid:did and cannot be resolved by this profile.",
|
|
69
|
+
{ uaid }
|
|
70
|
+
);
|
|
71
|
+
}
|
|
72
|
+
const src = parsed.params["src"];
|
|
73
|
+
const srcDid = src ? decodeSrcDid(src) : null;
|
|
74
|
+
const baseDid = srcDid ?? context.did ?? null;
|
|
75
|
+
if (!baseDid) {
|
|
76
|
+
return buildErrorProfile(
|
|
77
|
+
uaid,
|
|
78
|
+
"ERR_BASE_DID_UNDETERMINED",
|
|
79
|
+
"Unable to determine base DID; provide src parameter or configure method inference.",
|
|
80
|
+
{ uaid }
|
|
81
|
+
);
|
|
82
|
+
}
|
|
83
|
+
const didDocument = context.didDocument && context.didDocument.id === baseDid ? context.didDocument : await context.resolveDid(baseDid);
|
|
84
|
+
if (!didDocument) {
|
|
85
|
+
return buildErrorProfile(
|
|
86
|
+
uaid,
|
|
87
|
+
"ERR_DID_RESOLUTION_FAILED",
|
|
88
|
+
"Base DID resolution failed.",
|
|
89
|
+
{ uaid, baseDid }
|
|
90
|
+
);
|
|
91
|
+
}
|
|
92
|
+
if (!didDocument.id || typeof didDocument.id !== "string") {
|
|
93
|
+
return buildErrorProfile(
|
|
94
|
+
uaid,
|
|
95
|
+
"ERR_DID_DOCUMENT_INVALID",
|
|
96
|
+
"Resolved DID document is malformed.",
|
|
97
|
+
{ uaid, baseDid }
|
|
98
|
+
);
|
|
99
|
+
}
|
|
100
|
+
const baseServices = didDocument.service ?? [];
|
|
101
|
+
const hintedService = buildHintedService(uaid, parsed.params);
|
|
102
|
+
const includeHintedService = baseServices.length === 0 && hintedService !== null;
|
|
103
|
+
const service = includeHintedService ? [...baseServices, hintedService] : baseServices;
|
|
104
|
+
return {
|
|
105
|
+
id: uaid,
|
|
106
|
+
did: baseDid,
|
|
107
|
+
alsoKnownAs: dedupeAlsoKnownAs(baseDid, didDocument.alsoKnownAs),
|
|
108
|
+
verificationMethod: didDocument.verificationMethod,
|
|
109
|
+
authentication: didDocument.authentication,
|
|
110
|
+
assertionMethod: didDocument.assertionMethod,
|
|
111
|
+
service: service.length > 0 ? service : void 0,
|
|
112
|
+
metadata: {
|
|
113
|
+
profile: UAID_DID_RESOLUTION_PROFILE_ID,
|
|
114
|
+
resolved: true,
|
|
115
|
+
baseDid,
|
|
116
|
+
baseDidResolved: true,
|
|
117
|
+
verification: {
|
|
118
|
+
method: "did-resolution",
|
|
119
|
+
assurance: "base-method",
|
|
120
|
+
details: "Validated according to base DID method rules"
|
|
121
|
+
},
|
|
122
|
+
services: {
|
|
123
|
+
copiedFromBaseDidDocument: baseServices.length > 0,
|
|
124
|
+
derivedFromUaidParameters: includeHintedService
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
};
|
|
128
|
+
}
|
|
3
129
|
}
|
|
4
130
|
export {
|
|
5
|
-
|
|
131
|
+
UAID_DID_RESOLUTION_PROFILE_ID,
|
|
132
|
+
UaidDidResolutionProfileResolver
|
|
6
133
|
};
|
|
7
134
|
//# sourceMappingURL=standards-sdk.es63.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standards-sdk.es63.js","sources":["../../src/hcs-
|
|
1
|
+
{"version":3,"file":"standards-sdk.es63.js","sources":["../../src/hcs-14/resolvers/uaid-did-resolution-profile.ts"],"sourcesContent":["import { multibaseB58btcDecode } from '../base58';\nimport type {\n DidResolutionProfile,\n HintedServiceEndpoint,\n ProfileResolutionError,\n UaidProfileResolver,\n UaidProfileResolverContext,\n} from './types';\nimport type { AdapterMeta } from '../adapters/types';\n\nexport const UAID_DID_RESOLUTION_PROFILE_ID =\n 'hcs-14.profile.uaid-did-resolution';\n\nfunction decodeSrcDid(src: string): string | null {\n try {\n const bytes = multibaseB58btcDecode(src);\n const decoded = Buffer.from(bytes).toString('utf8').trim();\n return decoded || null;\n } catch {\n return null;\n }\n}\n\nfunction buildHintedService(\n uaid: string,\n params: Record<string, string>,\n): {\n id: string;\n type: string;\n serviceEndpoint: HintedServiceEndpoint;\n} | null {\n const proto = params['proto'];\n const nativeId = params['nativeId'];\n const domain = params['domain'];\n if (!proto && !nativeId && !domain) {\n return null;\n }\n return {\n id: `${uaid}#hcs14-hinted-service-1`,\n type: 'HintedService',\n serviceEndpoint: {\n source: 'uaid-parameters',\n proto,\n nativeId,\n domain,\n },\n };\n}\n\nfunction buildErrorProfile(\n uaid: string,\n code: string,\n message: string,\n details?: Record<string, unknown>,\n): DidResolutionProfile {\n const error: ProfileResolutionError = {\n code,\n message,\n details,\n };\n\n return {\n id: uaid,\n error,\n metadata: {\n profile: UAID_DID_RESOLUTION_PROFILE_ID,\n resolved: false,\n },\n };\n}\n\nfunction dedupeAlsoKnownAs(baseDid: string, existing: string[] = []): string[] {\n const values = new Set<string>([baseDid, ...existing]);\n return [...values];\n}\n\nexport class UaidDidResolutionProfileResolver implements UaidProfileResolver {\n readonly profile = UAID_DID_RESOLUTION_PROFILE_ID;\n\n readonly meta: AdapterMeta = {\n id: 'hcs-14/uaid-did-resolution',\n didMethods: ['*'],\n displayName: 'HCS-14 UAID DID Resolution Profile',\n description:\n 'Resolves uaid:did identifiers to DID Document-compatible output with profile metadata.',\n };\n\n supports(\n _uaid: string,\n parsed: UaidProfileResolverContext['parsedUaid'],\n ): boolean {\n return parsed.method === 'uaid';\n }\n\n async resolveProfile(\n uaid: string,\n context: UaidProfileResolverContext,\n ): Promise<DidResolutionProfile | null> {\n const parsed = context.parsedUaid;\n if (parsed.method !== 'uaid') {\n return buildErrorProfile(\n uaid,\n 'ERR_INVALID_UAID',\n 'Identifier is not uaid:did and cannot be resolved by this profile.',\n { uaid },\n );\n }\n\n const src = parsed.params['src'];\n const srcDid = src ? decodeSrcDid(src) : null;\n const baseDid = srcDid ?? context.did ?? null;\n\n if (!baseDid) {\n return buildErrorProfile(\n uaid,\n 'ERR_BASE_DID_UNDETERMINED',\n 'Unable to determine base DID; provide src parameter or configure method inference.',\n { uaid },\n );\n }\n\n const didDocument =\n context.didDocument && context.didDocument.id === baseDid\n ? context.didDocument\n : await context.resolveDid(baseDid);\n\n if (!didDocument) {\n return buildErrorProfile(\n uaid,\n 'ERR_DID_RESOLUTION_FAILED',\n 'Base DID resolution failed.',\n { uaid, baseDid },\n );\n }\n\n if (!didDocument.id || typeof didDocument.id !== 'string') {\n return buildErrorProfile(\n uaid,\n 'ERR_DID_DOCUMENT_INVALID',\n 'Resolved DID document is malformed.',\n { uaid, baseDid },\n );\n }\n\n const baseServices = didDocument.service ?? [];\n const hintedService = buildHintedService(uaid, parsed.params);\n const includeHintedService =\n baseServices.length === 0 && hintedService !== null;\n const service = includeHintedService\n ? [...baseServices, hintedService]\n : baseServices;\n\n return {\n id: uaid,\n did: baseDid,\n alsoKnownAs: dedupeAlsoKnownAs(baseDid, didDocument.alsoKnownAs),\n verificationMethod: didDocument.verificationMethod,\n authentication: didDocument.authentication,\n assertionMethod: didDocument.assertionMethod,\n service: service.length > 0 ? service : undefined,\n metadata: {\n profile: UAID_DID_RESOLUTION_PROFILE_ID,\n resolved: true,\n baseDid,\n baseDidResolved: true,\n verification: {\n method: 'did-resolution',\n assurance: 'base-method',\n details: 'Validated according to base DID method rules',\n },\n services: {\n copiedFromBaseDidDocument: baseServices.length > 0,\n derivedFromUaidParameters: includeHintedService,\n },\n },\n };\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1,104 +1,50 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
class HCS5BrowserClient extends HCS5BaseClient {
|
|
7
|
-
constructor(config) {
|
|
8
|
-
super({
|
|
9
|
-
network: config.network,
|
|
10
|
-
logLevel: config.logLevel,
|
|
11
|
-
silent: config.silent,
|
|
12
|
-
logger: void 0,
|
|
13
|
-
operatorId: "0.0.0",
|
|
14
|
-
operatorKey: ""
|
|
15
|
-
});
|
|
16
|
-
this.hwc = config.hwc;
|
|
17
|
-
this.signer = config.signer;
|
|
1
|
+
import { optionalImport } from "./standards-sdk.es163.js";
|
|
2
|
+
let resolveTxtLoader = null;
|
|
3
|
+
function isNoRecordError(error) {
|
|
4
|
+
if (!error || typeof error !== "object") {
|
|
5
|
+
return false;
|
|
18
6
|
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
}
|
|
23
|
-
const accountId = this.hwc.getAccountInfo()?.accountId;
|
|
24
|
-
const signer = this.hwc.dAppConnector?.signers?.find((s) => {
|
|
25
|
-
return s.getAccountId().toString() === accountId;
|
|
26
|
-
});
|
|
27
|
-
if (!signer) {
|
|
28
|
-
throw new Error("No active wallet signer");
|
|
29
|
-
}
|
|
30
|
-
return signer;
|
|
31
|
-
}
|
|
32
|
-
async mint(options) {
|
|
33
|
-
try {
|
|
34
|
-
if (!options.metadataTopicId) {
|
|
35
|
-
return {
|
|
36
|
-
success: false,
|
|
37
|
-
error: "metadataTopicId is required for mint()"
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
const metadata = buildHcs1Hrl(options.metadataTopicId);
|
|
41
|
-
const tx = buildHcs5MintTx({ tokenId: options.tokenId, metadata });
|
|
42
|
-
let result;
|
|
43
|
-
if (options.supplyKey && options.supplyKey instanceof PrivateKey) {
|
|
44
|
-
const signer = this.getSigner();
|
|
45
|
-
await tx.freezeWithSigner(signer);
|
|
46
|
-
const signed = await tx.sign(options.supplyKey);
|
|
47
|
-
result = await this.hwc.executeTransactionWithErrorHandling(
|
|
48
|
-
signed,
|
|
49
|
-
true
|
|
50
|
-
);
|
|
51
|
-
} else {
|
|
52
|
-
result = await this.hwc.executeTransactionWithErrorHandling(
|
|
53
|
-
tx,
|
|
54
|
-
false
|
|
55
|
-
);
|
|
56
|
-
}
|
|
57
|
-
if (result.error) {
|
|
58
|
-
return { success: false, error: result.error };
|
|
59
|
-
}
|
|
60
|
-
const receipt = result.result;
|
|
61
|
-
const serial = receipt.serials?.[0] ? Number(receipt.serials[0].toString()) : void 0;
|
|
62
|
-
return {
|
|
63
|
-
success: true,
|
|
64
|
-
serialNumber: serial,
|
|
65
|
-
transactionId: receipt?.transactionId?.toString?.(),
|
|
66
|
-
metadata
|
|
67
|
-
};
|
|
68
|
-
} catch (e) {
|
|
69
|
-
return { success: false, error: String(e) };
|
|
70
|
-
}
|
|
7
|
+
const code = Reflect.get(error, "code");
|
|
8
|
+
if (typeof code !== "string") {
|
|
9
|
+
return false;
|
|
71
10
|
}
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
};
|
|
81
|
-
const res = await inscribeWithSigner(
|
|
82
|
-
options.inscriptionInput,
|
|
83
|
-
signer,
|
|
84
|
-
inscriptionOptions
|
|
11
|
+
return code === "ENOTFOUND" || code === "ENODATA" || code === "ENOENT" || code === "ENONAME" || code === "NXDOMAIN";
|
|
12
|
+
}
|
|
13
|
+
async function loadResolveTxt() {
|
|
14
|
+
if (!resolveTxtLoader) {
|
|
15
|
+
resolveTxtLoader = (async () => {
|
|
16
|
+
const nodeDnsModule = await optionalImport(
|
|
17
|
+
"node:dns/promises",
|
|
18
|
+
{ preferImport: true }
|
|
85
19
|
);
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
return { success: false, error: "Failed to inscribe content" };
|
|
20
|
+
if (nodeDnsModule?.resolveTxt) {
|
|
21
|
+
return nodeDnsModule.resolveTxt;
|
|
89
22
|
}
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
} catch (e) {
|
|
97
|
-
return { success: false, error: String(e) };
|
|
98
|
-
}
|
|
23
|
+
const dnsModule = await optionalImport(
|
|
24
|
+
"dns/promises",
|
|
25
|
+
{ preferImport: true }
|
|
26
|
+
);
|
|
27
|
+
return dnsModule?.resolveTxt ?? null;
|
|
28
|
+
})();
|
|
99
29
|
}
|
|
30
|
+
return resolveTxtLoader;
|
|
100
31
|
}
|
|
32
|
+
const nodeDnsTxtLookup = async (hostname) => {
|
|
33
|
+
const resolveTxt = await loadResolveTxt();
|
|
34
|
+
if (!resolveTxt) {
|
|
35
|
+
return [];
|
|
36
|
+
}
|
|
37
|
+
try {
|
|
38
|
+
const response = await resolveTxt(hostname);
|
|
39
|
+
return response.map((chunks) => chunks.join(""));
|
|
40
|
+
} catch (error) {
|
|
41
|
+
if (isNoRecordError(error)) {
|
|
42
|
+
return [];
|
|
43
|
+
}
|
|
44
|
+
throw error;
|
|
45
|
+
}
|
|
46
|
+
};
|
|
101
47
|
export {
|
|
102
|
-
|
|
48
|
+
nodeDnsTxtLookup
|
|
103
49
|
};
|
|
104
50
|
//# sourceMappingURL=standards-sdk.es64.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standards-sdk.es64.js","sources":["../../src/hcs-
|
|
1
|
+
{"version":3,"file":"standards-sdk.es64.js","sources":["../../src/hcs-14/resolvers/dns.ts"],"sourcesContent":["import { optionalImport } from '../../utils/dynamic-import';\n\ntype DnsResolveTxt = (hostname: string) => Promise<string[][]>;\n\ntype DnsPromisesModule = {\n resolveTxt?: DnsResolveTxt;\n};\n\nexport type DnsTxtLookup = (hostname: string) => Promise<string[]>;\n\nlet resolveTxtLoader: Promise<DnsResolveTxt | null> | null = null;\n\nfunction isNoRecordError(error: unknown): boolean {\n if (!error || typeof error !== 'object') {\n return false;\n }\n const code = Reflect.get(error, 'code');\n if (typeof code !== 'string') {\n return false;\n }\n return (\n code === 'ENOTFOUND' ||\n code === 'ENODATA' ||\n code === 'ENOENT' ||\n code === 'ENONAME' ||\n code === 'NXDOMAIN'\n );\n}\n\nasync function loadResolveTxt(): Promise<DnsResolveTxt | null> {\n if (!resolveTxtLoader) {\n resolveTxtLoader = (async () => {\n const nodeDnsModule = await optionalImport<DnsPromisesModule>(\n 'node:dns/promises',\n { preferImport: true },\n );\n if (nodeDnsModule?.resolveTxt) {\n return nodeDnsModule.resolveTxt;\n }\n\n const dnsModule = await optionalImport<DnsPromisesModule>(\n 'dns/promises',\n { preferImport: true },\n );\n return dnsModule?.resolveTxt ?? null;\n })();\n }\n\n return resolveTxtLoader;\n}\n\nexport const nodeDnsTxtLookup: DnsTxtLookup = async hostname => {\n const resolveTxt = await loadResolveTxt();\n if (!resolveTxt) {\n return [];\n }\n\n try {\n const response = await resolveTxt(hostname);\n return response.map(chunks => chunks.join(''));\n } catch (error) {\n if (isNoRecordError(error)) {\n return [];\n }\n throw error as Error;\n }\n};\n"],"names":[],"mappings":";AAUA,IAAI,mBAAyD;AAE7D,SAAS,gBAAgB,OAAyB;AAChD,MAAI,CAAC,SAAS,OAAO,UAAU,UAAU;AACvC,WAAO;AAAA,EACT;AACA,QAAM,OAAO,QAAQ,IAAI,OAAO,MAAM;AACtC,MAAI,OAAO,SAAS,UAAU;AAC5B,WAAO;AAAA,EACT;AACA,SACE,SAAS,eACT,SAAS,aACT,SAAS,YACT,SAAS,aACT,SAAS;AAEb;AAEA,eAAe,iBAAgD;AAC7D,MAAI,CAAC,kBAAkB;AACrB,wBAAoB,YAAY;AAC9B,YAAM,gBAAgB,MAAM;AAAA,QAC1B;AAAA,QACA,EAAE,cAAc,KAAA;AAAA,MAAK;AAEvB,UAAI,eAAe,YAAY;AAC7B,eAAO,cAAc;AAAA,MACvB;AAEA,YAAM,YAAY,MAAM;AAAA,QACtB;AAAA,QACA,EAAE,cAAc,KAAA;AAAA,MAAK;AAEvB,aAAO,WAAW,cAAc;AAAA,IAClC,GAAA;AAAA,EACF;AAEA,SAAO;AACT;AAEO,MAAM,mBAAiC,OAAM,aAAY;AAC9D,QAAM,aAAa,MAAM,eAAA;AACzB,MAAI,CAAC,YAAY;AACf,WAAO,CAAA;AAAA,EACT;AAEA,MAAI;AACF,UAAM,WAAW,MAAM,WAAW,QAAQ;AAC1C,WAAO,SAAS,IAAI,CAAA,WAAU,OAAO,KAAK,EAAE,CAAC;AAAA,EAC/C,SAAS,OAAO;AACd,QAAI,gBAAgB,KAAK,GAAG;AAC1B,aAAO,CAAA;AAAA,IACT;AACA,UAAM;AAAA,EACR;AACF;"}
|