@hashgraphonline/standards-sdk 0.1.160 → 0.1.162
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-14/index.d.ts +1 -0
- package/dist/cjs/hcs-14/index.d.ts.map +1 -1
- package/dist/cjs/hcs-14/resolvers/aid-dns-web-profile.d.ts +1 -0
- package/dist/cjs/hcs-14/resolvers/aid-dns-web-profile.d.ts.map +1 -1
- package/dist/cjs/hcs-14/resolvers/ans-dns-web-profile-utils.d.ts +23 -0
- package/dist/cjs/hcs-14/resolvers/ans-dns-web-profile-utils.d.ts.map +1 -0
- package/dist/cjs/hcs-14/resolvers/ans-dns-web-profile.d.ts +32 -0
- package/dist/cjs/hcs-14/resolvers/ans-dns-web-profile.d.ts.map +1 -0
- package/dist/cjs/hcs-14/resolvers/hcs-11-profile.d.ts +1 -0
- package/dist/cjs/hcs-14/resolvers/hcs-11-profile.d.ts.map +1 -1
- package/dist/cjs/hcs-14/resolvers/hiero.d.ts +1 -0
- package/dist/cjs/hcs-14/resolvers/hiero.d.ts.map +1 -1
- package/dist/cjs/hcs-14/resolvers/registry.d.ts +39 -1
- package/dist/cjs/hcs-14/resolvers/registry.d.ts.map +1 -1
- package/dist/cjs/hcs-14/resolvers/types.d.ts +52 -0
- package/dist/cjs/hcs-14/resolvers/types.d.ts.map +1 -1
- package/dist/cjs/hcs-14/resolvers/uaid-did-resolution-profile.d.ts +1 -0
- package/dist/cjs/hcs-14/resolvers/uaid-did-resolution-profile.d.ts.map +1 -1
- package/dist/cjs/hcs-14/resolvers/uaid-dns-web-profile.d.ts +1 -0
- package/dist/cjs/hcs-14/resolvers/uaid-dns-web-profile.d.ts.map +1 -1
- package/dist/cjs/hcs-14/sdk.d.ts +46 -13
- package/dist/cjs/hcs-14/sdk.d.ts.map +1 -1
- package/dist/cjs/standards-sdk.cjs +3 -3
- package/dist/cjs/standards-sdk.cjs.map +1 -1
- package/dist/es/hcs-14/index.d.ts +1 -0
- package/dist/es/hcs-14/index.d.ts.map +1 -1
- package/dist/es/hcs-14/resolvers/aid-dns-web-profile.d.ts +1 -0
- package/dist/es/hcs-14/resolvers/aid-dns-web-profile.d.ts.map +1 -1
- package/dist/es/hcs-14/resolvers/ans-dns-web-profile-utils.d.ts +23 -0
- package/dist/es/hcs-14/resolvers/ans-dns-web-profile-utils.d.ts.map +1 -0
- package/dist/es/hcs-14/resolvers/ans-dns-web-profile.d.ts +32 -0
- package/dist/es/hcs-14/resolvers/ans-dns-web-profile.d.ts.map +1 -0
- package/dist/es/hcs-14/resolvers/hcs-11-profile.d.ts +1 -0
- package/dist/es/hcs-14/resolvers/hcs-11-profile.d.ts.map +1 -1
- package/dist/es/hcs-14/resolvers/hiero.d.ts +1 -0
- package/dist/es/hcs-14/resolvers/hiero.d.ts.map +1 -1
- package/dist/es/hcs-14/resolvers/registry.d.ts +39 -1
- package/dist/es/hcs-14/resolvers/registry.d.ts.map +1 -1
- package/dist/es/hcs-14/resolvers/types.d.ts +52 -0
- package/dist/es/hcs-14/resolvers/types.d.ts.map +1 -1
- package/dist/es/hcs-14/resolvers/uaid-did-resolution-profile.d.ts +1 -0
- package/dist/es/hcs-14/resolvers/uaid-did-resolution-profile.d.ts.map +1 -1
- package/dist/es/hcs-14/resolvers/uaid-dns-web-profile.d.ts +1 -0
- package/dist/es/hcs-14/resolvers/uaid-dns-web-profile.d.ts.map +1 -1
- package/dist/es/hcs-14/sdk.d.ts +46 -13
- package/dist/es/hcs-14/sdk.d.ts.map +1 -1
- package/dist/es/standards-sdk.es.js +97 -90
- package/dist/es/standards-sdk.es.js.map +1 -1
- package/dist/es/standards-sdk.es100.js +151 -43
- package/dist/es/standards-sdk.es100.js.map +1 -1
- package/dist/es/standards-sdk.es101.js +114 -234
- package/dist/es/standards-sdk.es101.js.map +1 -1
- package/dist/es/standards-sdk.es102.js +43 -96
- package/dist/es/standards-sdk.es102.js.map +1 -1
- package/dist/es/standards-sdk.es103.js +244 -80
- package/dist/es/standards-sdk.es103.js.map +1 -1
- package/dist/es/standards-sdk.es104.js +101 -29
- package/dist/es/standards-sdk.es104.js.map +1 -1
- package/dist/es/standards-sdk.es105.js +94 -225
- package/dist/es/standards-sdk.es105.js.map +1 -1
- package/dist/es/standards-sdk.es106.js +29 -112
- package/dist/es/standards-sdk.es106.js.map +1 -1
- package/dist/es/standards-sdk.es107.js +224 -26
- package/dist/es/standards-sdk.es107.js.map +1 -1
- package/dist/es/standards-sdk.es108.js +109 -80
- package/dist/es/standards-sdk.es108.js.map +1 -1
- package/dist/es/standards-sdk.es109.js +29 -26
- 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 +80 -248
- package/dist/es/standards-sdk.es110.js.map +1 -1
- package/dist/es/standards-sdk.es111.js +28 -475
- package/dist/es/standards-sdk.es111.js.map +1 -1
- package/dist/es/standards-sdk.es112.js +244 -97
- package/dist/es/standards-sdk.es112.js.map +1 -1
- package/dist/es/standards-sdk.es113.js +451 -133
- package/dist/es/standards-sdk.es113.js.map +1 -1
- package/dist/es/standards-sdk.es114.js +98 -27
- package/dist/es/standards-sdk.es114.js.map +1 -1
- package/dist/es/standards-sdk.es115.js +156 -8
- package/dist/es/standards-sdk.es115.js.map +1 -1
- package/dist/es/standards-sdk.es116.js +31 -139
- package/dist/es/standards-sdk.es116.js.map +1 -1
- package/dist/es/standards-sdk.es117.js +10 -27
- package/dist/es/standards-sdk.es117.js.map +1 -1
- package/dist/es/standards-sdk.es118.js +139 -19
- package/dist/es/standards-sdk.es118.js.map +1 -1
- package/dist/es/standards-sdk.es119.js +27 -158
- 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 +16 -197
- package/dist/es/standards-sdk.es120.js.map +1 -1
- package/dist/es/standards-sdk.es121.js +133 -763
- package/dist/es/standards-sdk.es121.js.map +1 -1
- package/dist/es/standards-sdk.es122.js +200 -10
- package/dist/es/standards-sdk.es122.js.map +1 -1
- package/dist/es/standards-sdk.es123.js +762 -539
- package/dist/es/standards-sdk.es123.js.map +1 -1
- package/dist/es/standards-sdk.es124.js +10 -599
- package/dist/es/standards-sdk.es124.js.map +1 -1
- package/dist/es/standards-sdk.es125.js +567 -13
- package/dist/es/standards-sdk.es125.js.map +1 -1
- package/dist/es/standards-sdk.es126.js +602 -2
- package/dist/es/standards-sdk.es126.js.map +1 -1
- package/dist/es/standards-sdk.es127.js +12 -86
- package/dist/es/standards-sdk.es127.js.map +1 -1
- package/dist/es/standards-sdk.es128.js +2 -40
- package/dist/es/standards-sdk.es128.js.map +1 -1
- package/dist/es/standards-sdk.es129.js +87 -2
- 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 +37 -232
- package/dist/es/standards-sdk.es130.js.map +1 -1
- package/dist/es/standards-sdk.es131.js +2 -1140
- package/dist/es/standards-sdk.es131.js.map +1 -1
- package/dist/es/standards-sdk.es132.js +213 -284
- package/dist/es/standards-sdk.es132.js.map +1 -1
- package/dist/es/standards-sdk.es133.js +1138 -420
- package/dist/es/standards-sdk.es133.js.map +1 -1
- package/dist/es/standards-sdk.es134.js +301 -350
- package/dist/es/standards-sdk.es134.js.map +1 -1
- package/dist/es/standards-sdk.es135.js +417 -1111
- package/dist/es/standards-sdk.es135.js.map +1 -1
- package/dist/es/standards-sdk.es136.js +348 -201
- package/dist/es/standards-sdk.es136.js.map +1 -1
- package/dist/es/standards-sdk.es137.js +1029 -1480
- package/dist/es/standards-sdk.es137.js.map +1 -1
- package/dist/es/standards-sdk.es138.js +207 -1254
- package/dist/es/standards-sdk.es138.js.map +1 -1
- package/dist/es/standards-sdk.es139.js +1564 -14
- 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 +1253 -85
- package/dist/es/standards-sdk.es140.js.map +1 -1
- package/dist/es/standards-sdk.es141.js +15 -79
- package/dist/es/standards-sdk.es141.js.map +1 -1
- package/dist/es/standards-sdk.es142.js +83 -889
- package/dist/es/standards-sdk.es142.js.map +1 -1
- package/dist/es/standards-sdk.es143.js +73 -52
- package/dist/es/standards-sdk.es143.js.map +1 -1
- package/dist/es/standards-sdk.es144.js +877 -143
- package/dist/es/standards-sdk.es144.js.map +1 -1
- package/dist/es/standards-sdk.es145.js +60 -7
- package/dist/es/standards-sdk.es145.js.map +1 -1
- package/dist/es/standards-sdk.es146.js +138 -65
- package/dist/es/standards-sdk.es146.js.map +1 -1
- package/dist/es/standards-sdk.es147.js +7 -65
- package/dist/es/standards-sdk.es147.js.map +1 -1
- package/dist/es/standards-sdk.es148.js +86 -30
- package/dist/es/standards-sdk.es148.js.map +1 -1
- package/dist/es/standards-sdk.es149.js +65 -34
- 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 +30 -41
- package/dist/es/standards-sdk.es150.js.map +1 -1
- package/dist/es/standards-sdk.es151.js +34 -138
- package/dist/es/standards-sdk.es151.js.map +1 -1
- package/dist/es/standards-sdk.es152.js +48 -42
- package/dist/es/standards-sdk.es152.js.map +1 -1
- package/dist/es/standards-sdk.es153.js +106 -12450
- package/dist/es/standards-sdk.es153.js.map +1 -1
- package/dist/es/standards-sdk.es154.js +38 -168
- package/dist/es/standards-sdk.es154.js.map +1 -1
- package/dist/es/standards-sdk.es155.js +12423 -263
- package/dist/es/standards-sdk.es155.js.map +1 -1
- package/dist/es/standards-sdk.es156.js +13 -342
- package/dist/es/standards-sdk.es156.js.map +1 -1
- package/dist/es/standards-sdk.es157.js +55 -452
- package/dist/es/standards-sdk.es157.js.map +1 -1
- package/dist/es/standards-sdk.es158.js +70 -317
- package/dist/es/standards-sdk.es158.js.map +1 -1
- package/dist/es/standards-sdk.es159.js +70 -65
- package/dist/es/standards-sdk.es159.js.map +1 -1
- package/dist/es/standards-sdk.es16.js +4 -4
- package/dist/es/standards-sdk.es160.js +197 -14
- package/dist/es/standards-sdk.es160.js.map +1 -1
- package/dist/es/standards-sdk.es161.js +60 -229
- package/dist/es/standards-sdk.es161.js.map +1 -1
- package/dist/es/standards-sdk.es162.js +237 -51
- package/dist/es/standards-sdk.es162.js.map +1 -1
- package/dist/es/standards-sdk.es163.js +160 -72
- package/dist/es/standards-sdk.es163.js.map +1 -1
- package/dist/es/standards-sdk.es164.js +312 -71
- package/dist/es/standards-sdk.es164.js.map +1 -1
- package/dist/es/standards-sdk.es165.js +337 -64
- package/dist/es/standards-sdk.es165.js.map +1 -1
- package/dist/es/standards-sdk.es166.js +436 -155
- package/dist/es/standards-sdk.es166.js.map +1 -1
- package/dist/es/standards-sdk.es167.js +319 -210
- package/dist/es/standards-sdk.es167.js.map +1 -1
- package/dist/es/standards-sdk.es168.js +68 -231
- package/dist/es/standards-sdk.es168.js.map +1 -1
- package/dist/es/standards-sdk.es169.js +154 -101
- package/dist/es/standards-sdk.es169.js.map +1 -1
- package/dist/es/standards-sdk.es170.js +200 -104
- package/dist/es/standards-sdk.es170.js.map +1 -1
- package/dist/es/standards-sdk.es171.js +225 -147
- package/dist/es/standards-sdk.es171.js.map +1 -1
- package/dist/es/standards-sdk.es172.js +100 -166
- package/dist/es/standards-sdk.es172.js.map +1 -1
- package/dist/es/standards-sdk.es173.js +110 -123
- package/dist/es/standards-sdk.es173.js.map +1 -1
- package/dist/es/standards-sdk.es174.js +122 -292
- package/dist/es/standards-sdk.es174.js.map +1 -1
- package/dist/es/standards-sdk.es175.js +166 -240
- package/dist/es/standards-sdk.es175.js.map +1 -1
- package/dist/es/standards-sdk.es176.js +125 -102
- package/dist/es/standards-sdk.es176.js.map +1 -1
- package/dist/es/standards-sdk.es177.js +334 -0
- package/dist/es/standards-sdk.es177.js.map +1 -0
- package/dist/es/standards-sdk.es178.js +262 -0
- package/dist/es/standards-sdk.es178.js.map +1 -0
- package/dist/es/standards-sdk.es179.js +119 -0
- package/dist/es/standards-sdk.es179.js.map +1 -0
- package/dist/es/standards-sdk.es18.js +11 -11
- package/dist/es/standards-sdk.es19.js +8 -8
- 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 +11 -11
- 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 +5 -5
- 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 +39 -231
- package/dist/es/standards-sdk.es58.js.map +1 -1
- package/dist/es/standards-sdk.es59.js +328 -35
- package/dist/es/standards-sdk.es59.js.map +1 -1
- package/dist/es/standards-sdk.es6.js +2 -2
- package/dist/es/standards-sdk.es60.js +33 -101
- package/dist/es/standards-sdk.es60.js.map +1 -1
- package/dist/es/standards-sdk.es61.js +87 -156
- package/dist/es/standards-sdk.es61.js.map +1 -1
- package/dist/es/standards-sdk.es62.js +126 -153
- package/dist/es/standards-sdk.es62.js.map +1 -1
- package/dist/es/standards-sdk.es63.js +234 -81
- package/dist/es/standards-sdk.es63.js.map +1 -1
- package/dist/es/standards-sdk.es64.js +244 -39
- package/dist/es/standards-sdk.es64.js.map +1 -1
- package/dist/es/standards-sdk.es65.js +122 -247
- package/dist/es/standards-sdk.es65.js.map +1 -1
- package/dist/es/standards-sdk.es66.js +41 -28
- package/dist/es/standards-sdk.es66.js.map +1 -1
- package/dist/es/standards-sdk.es67.js +266 -90
- package/dist/es/standards-sdk.es67.js.map +1 -1
- package/dist/es/standards-sdk.es68.js +33 -3
- package/dist/es/standards-sdk.es68.js.map +1 -1
- package/dist/es/standards-sdk.es69.js +84 -89
- 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 +3 -99
- package/dist/es/standards-sdk.es70.js.map +1 -1
- package/dist/es/standards-sdk.es71.js +99 -17
- package/dist/es/standards-sdk.es71.js.map +1 -1
- package/dist/es/standards-sdk.es72.js +100 -77
- package/dist/es/standards-sdk.es72.js.map +1 -1
- package/dist/es/standards-sdk.es73.js +19 -458
- package/dist/es/standards-sdk.es73.js.map +1 -1
- package/dist/es/standards-sdk.es74.js +77 -324
- package/dist/es/standards-sdk.es74.js.map +1 -1
- package/dist/es/standards-sdk.es75.js +420 -170
- package/dist/es/standards-sdk.es75.js.map +1 -1
- package/dist/es/standards-sdk.es76.js +323 -71
- package/dist/es/standards-sdk.es76.js.map +1 -1
- package/dist/es/standards-sdk.es77.js +208 -71
- package/dist/es/standards-sdk.es77.js.map +1 -1
- package/dist/es/standards-sdk.es78.js +67 -138
- package/dist/es/standards-sdk.es78.js.map +1 -1
- package/dist/es/standards-sdk.es79.js +71 -69
- package/dist/es/standards-sdk.es79.js.map +1 -1
- package/dist/es/standards-sdk.es80.js +132 -393
- package/dist/es/standards-sdk.es80.js.map +1 -1
- package/dist/es/standards-sdk.es81.js +44 -471
- package/dist/es/standards-sdk.es81.js.map +1 -1
- package/dist/es/standards-sdk.es82.js +361 -322
- package/dist/es/standards-sdk.es82.js.map +1 -1
- package/dist/es/standards-sdk.es83.js +495 -88
- package/dist/es/standards-sdk.es83.js.map +1 -1
- package/dist/es/standards-sdk.es84.js +365 -125
- package/dist/es/standards-sdk.es84.js.map +1 -1
- package/dist/es/standards-sdk.es85.js +88 -7
- package/dist/es/standards-sdk.es85.js.map +1 -1
- package/dist/es/standards-sdk.es86.js +125 -47
- package/dist/es/standards-sdk.es86.js.map +1 -1
- package/dist/es/standards-sdk.es87.js +6 -99
- package/dist/es/standards-sdk.es87.js.map +1 -1
- package/dist/es/standards-sdk.es88.js +43 -344
- package/dist/es/standards-sdk.es88.js.map +1 -1
- package/dist/es/standards-sdk.es89.js +73 -253
- 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 +340 -53
- package/dist/es/standards-sdk.es90.js.map +1 -1
- package/dist/es/standards-sdk.es91.js +280 -48
- package/dist/es/standards-sdk.es91.js.map +1 -1
- package/dist/es/standards-sdk.es92.js +54 -143
- package/dist/es/standards-sdk.es92.js.map +1 -1
- package/dist/es/standards-sdk.es93.js +44 -62
- package/dist/es/standards-sdk.es93.js.map +1 -1
- package/dist/es/standards-sdk.es94.js +140 -20
- package/dist/es/standards-sdk.es94.js.map +1 -1
- package/dist/es/standards-sdk.es95.js +65 -23
- package/dist/es/standards-sdk.es95.js.map +1 -1
- package/dist/es/standards-sdk.es96.js +26 -236
- package/dist/es/standards-sdk.es96.js.map +1 -1
- package/dist/es/standards-sdk.es97.js +23 -280
- package/dist/es/standards-sdk.es97.js.map +1 -1
- package/dist/es/standards-sdk.es98.js +229 -146
- package/dist/es/standards-sdk.es98.js.map +1 -1
- package/dist/es/standards-sdk.es99.js +254 -117
- package/dist/es/standards-sdk.es99.js.map +1 -1
- package/package.json +8 -1
|
@@ -1,185 +1,116 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
details
|
|
9
|
-
};
|
|
10
|
-
return {
|
|
11
|
-
id: uaid,
|
|
12
|
-
error,
|
|
13
|
-
metadata: {
|
|
14
|
-
profile: AID_DNS_WEB_PROFILE_ID,
|
|
15
|
-
resolved: false
|
|
16
|
-
}
|
|
17
|
-
};
|
|
1
|
+
import { HCS11Client } from "./standards-sdk.es27.js";
|
|
2
|
+
import { parseHederaCaip10 } from "./standards-sdk.es57.js";
|
|
3
|
+
function toHcs11Network(network) {
|
|
4
|
+
if (network === "mainnet" || network === "testnet") {
|
|
5
|
+
return network;
|
|
6
|
+
}
|
|
7
|
+
return null;
|
|
18
8
|
}
|
|
19
|
-
function
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
9
|
+
function parseNativeIdNetworkAndAccount(nativeId) {
|
|
10
|
+
try {
|
|
11
|
+
const parsed = parseHederaCaip10(nativeId);
|
|
12
|
+
const network = toHcs11Network(parsed.network);
|
|
13
|
+
if (!network) {
|
|
14
|
+
return null;
|
|
15
|
+
}
|
|
16
|
+
return { network, accountId: parsed.accountId };
|
|
17
|
+
} catch (_error) {
|
|
18
|
+
return null;
|
|
26
19
|
}
|
|
27
|
-
|
|
28
|
-
|
|
20
|
+
}
|
|
21
|
+
function getDidNetworkAndAccount(did, context) {
|
|
22
|
+
const nativeId = context?.parsedUaid?.params["nativeId"];
|
|
23
|
+
if (nativeId) {
|
|
24
|
+
const resolvedNativeId = parseNativeIdNetworkAndAccount(nativeId);
|
|
25
|
+
if (resolvedNativeId) {
|
|
26
|
+
return resolvedNativeId;
|
|
27
|
+
}
|
|
29
28
|
}
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
} catch {
|
|
34
|
-
return { code: "ERR_ENDPOINT_INVALID" };
|
|
29
|
+
const didMatch = did.match(/^did:hedera:(mainnet|testnet):(.+)$/);
|
|
30
|
+
if (!didMatch) {
|
|
31
|
+
return null;
|
|
35
32
|
}
|
|
36
|
-
const
|
|
37
|
-
if (!
|
|
38
|
-
return
|
|
33
|
+
const network = toHcs11Network(didMatch[1]);
|
|
34
|
+
if (!network) {
|
|
35
|
+
return null;
|
|
39
36
|
}
|
|
40
37
|
return {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
protocol,
|
|
44
|
-
endpoint: parsedUrl.toString(),
|
|
45
|
-
publicKey: fields["k"],
|
|
46
|
-
keyId: fields["i"]
|
|
47
|
-
}
|
|
38
|
+
network,
|
|
39
|
+
accountId: didMatch[2]
|
|
48
40
|
};
|
|
49
41
|
}
|
|
50
|
-
function
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
function verificationMethodForLevel(verificationLevel) {
|
|
54
|
-
if (verificationLevel === "cryptographic") {
|
|
55
|
-
return "aid-pka";
|
|
56
|
-
}
|
|
57
|
-
if (verificationLevel === "metadata") {
|
|
58
|
-
return "metadata-match";
|
|
42
|
+
function buildHcs10Service(id, network, accountId, topicInfo) {
|
|
43
|
+
if (!topicInfo) {
|
|
44
|
+
return null;
|
|
59
45
|
}
|
|
60
|
-
return
|
|
46
|
+
return {
|
|
47
|
+
id: `${id}#hcs10`,
|
|
48
|
+
type: "HCS10Service",
|
|
49
|
+
serviceEndpoint: {
|
|
50
|
+
network,
|
|
51
|
+
accountId,
|
|
52
|
+
inboundTopicId: topicInfo.inboundTopic || void 0,
|
|
53
|
+
outboundTopicId: topicInfo.outboundTopic || void 0,
|
|
54
|
+
profileTopicId: topicInfo.profileTopicId || void 0
|
|
55
|
+
}
|
|
56
|
+
};
|
|
61
57
|
}
|
|
62
|
-
class
|
|
63
|
-
constructor(
|
|
64
|
-
this.
|
|
58
|
+
class HCS11ProfileResolver {
|
|
59
|
+
constructor() {
|
|
60
|
+
this.adapterKind = "did-profile-resolver";
|
|
65
61
|
this.meta = {
|
|
66
|
-
id: "
|
|
67
|
-
didMethods: ["
|
|
68
|
-
|
|
69
|
-
|
|
62
|
+
id: "hedera/hcs11-profile-resolver",
|
|
63
|
+
didMethods: ["hedera"],
|
|
64
|
+
caip2Networks: ["hedera:mainnet", "hedera:testnet"],
|
|
65
|
+
caip10Namespaces: ["hedera"],
|
|
66
|
+
displayName: "Hedera (HCS-11 Profile Resolver)",
|
|
67
|
+
description: "Resolves HCS-11 protocol profiles and HCS-10 service metadata for did:hedera identifiers."
|
|
70
68
|
};
|
|
71
|
-
this.dnsLookup = options.dnsLookup ?? nodeDnsTxtLookup;
|
|
72
|
-
this.supportedSchemes = new Set(
|
|
73
|
-
(options.supportedUriSchemes ?? ["https", "http", "wss", "ws"]).map(
|
|
74
|
-
(scheme) => scheme.toLowerCase()
|
|
75
|
-
)
|
|
76
|
-
);
|
|
77
|
-
this.metadataVerifier = options.metadataVerifier;
|
|
78
|
-
this.cryptographicVerifier = options.cryptographicVerifier;
|
|
79
69
|
}
|
|
80
|
-
supports(
|
|
81
|
-
|
|
82
|
-
return false;
|
|
83
|
-
}
|
|
84
|
-
const nativeId = parsed.params["nativeId"];
|
|
85
|
-
return !!nativeId && isFqdn(nativeId);
|
|
70
|
+
supports(did) {
|
|
71
|
+
return /^did:hedera:(mainnet|testnet):/.test(did);
|
|
86
72
|
}
|
|
87
|
-
async resolveProfile(
|
|
88
|
-
const
|
|
89
|
-
if (
|
|
90
|
-
return null;
|
|
91
|
-
}
|
|
92
|
-
const nativeId = parsed.params["nativeId"];
|
|
93
|
-
if (!nativeId || !isFqdn(nativeId)) {
|
|
73
|
+
async resolveProfile(did, context) {
|
|
74
|
+
const networkAndAccount = getDidNetworkAndAccount(did, context);
|
|
75
|
+
if (!networkAndAccount) {
|
|
94
76
|
return null;
|
|
95
77
|
}
|
|
96
|
-
const
|
|
97
|
-
const
|
|
98
|
-
|
|
99
|
-
|
|
78
|
+
const { network, accountId } = networkAndAccount;
|
|
79
|
+
const client = new HCS11Client({
|
|
80
|
+
network,
|
|
81
|
+
auth: { operatorId: accountId },
|
|
82
|
+
silent: true
|
|
83
|
+
});
|
|
84
|
+
const fetched = await client.fetchProfileByAccountId(accountId, network);
|
|
85
|
+
if (!fetched.success || !fetched.profile) {
|
|
100
86
|
return null;
|
|
101
87
|
}
|
|
102
|
-
const
|
|
103
|
-
|
|
88
|
+
const subjectId = context?.uaid ?? did;
|
|
89
|
+
const existingServices = context?.didDocument?.service ?? [];
|
|
90
|
+
const hcs10Service = buildHcs10Service(
|
|
91
|
+
subjectId,
|
|
92
|
+
network,
|
|
93
|
+
accountId,
|
|
94
|
+
fetched.topicInfo
|
|
104
95
|
);
|
|
105
|
-
const
|
|
106
|
-
(result) => "record" in result
|
|
107
|
-
).map((result) => result.record);
|
|
108
|
-
if (validRecords.length === 0) {
|
|
109
|
-
const endpointInvalid = parsedRecords.some(
|
|
110
|
-
(result) => !("record" in result) && result.code === "ERR_ENDPOINT_INVALID"
|
|
111
|
-
);
|
|
112
|
-
return buildErrorProfile(
|
|
113
|
-
uaid,
|
|
114
|
-
endpointInvalid ? "ERR_ENDPOINT_INVALID" : "ERR_INVALID_AID_RECORD",
|
|
115
|
-
endpointInvalid ? "AID DNS record endpoint URI is invalid or unsupported." : "AID DNS TXT payload is malformed or unsupported.",
|
|
116
|
-
{ dnsName }
|
|
117
|
-
);
|
|
118
|
-
}
|
|
119
|
-
const selectedRecord = [...validRecords].sort(
|
|
120
|
-
(a, b) => deterministicRecordKey(a).localeCompare(deterministicRecordKey(b))
|
|
121
|
-
)[0];
|
|
122
|
-
const verificationInput = {
|
|
123
|
-
uaid,
|
|
124
|
-
protocol: selectedRecord.protocol,
|
|
125
|
-
endpoint: selectedRecord.endpoint,
|
|
126
|
-
record: selectedRecord
|
|
127
|
-
};
|
|
128
|
-
let verificationLevel = "none";
|
|
129
|
-
if (this.metadataVerifier) {
|
|
130
|
-
const metadataVerified = await this.metadataVerifier(verificationInput);
|
|
131
|
-
if (!metadataVerified) {
|
|
132
|
-
return buildErrorProfile(
|
|
133
|
-
uaid,
|
|
134
|
-
"ERR_VERIFICATION_FAILED",
|
|
135
|
-
"AID metadata verification failed.",
|
|
136
|
-
{ dnsName }
|
|
137
|
-
);
|
|
138
|
-
}
|
|
139
|
-
verificationLevel = "metadata";
|
|
140
|
-
}
|
|
141
|
-
if (selectedRecord.publicKey && this.cryptographicVerifier) {
|
|
142
|
-
const cryptographicVerified = await this.cryptographicVerifier(verificationInput);
|
|
143
|
-
if (!cryptographicVerified) {
|
|
144
|
-
return buildErrorProfile(
|
|
145
|
-
uaid,
|
|
146
|
-
"ERR_VERIFICATION_FAILED",
|
|
147
|
-
"AID cryptographic verification failed.",
|
|
148
|
-
{ dnsName }
|
|
149
|
-
);
|
|
150
|
-
}
|
|
151
|
-
verificationLevel = "cryptographic";
|
|
152
|
-
}
|
|
153
|
-
const did = context.did ?? void 0;
|
|
154
|
-
const alsoKnownAs = did ? [did] : void 0;
|
|
96
|
+
const service = hcs10Service ? [...existingServices, hcs10Service] : existingServices;
|
|
155
97
|
return {
|
|
156
|
-
id:
|
|
98
|
+
id: subjectId,
|
|
157
99
|
did,
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
{
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
100
|
+
service: service.length > 0 ? service : void 0,
|
|
101
|
+
profiles: {
|
|
102
|
+
hcs11: {
|
|
103
|
+
protocol: "hcs-11",
|
|
104
|
+
network,
|
|
105
|
+
accountId,
|
|
106
|
+
profile: fetched.profile,
|
|
107
|
+
topicInfo: fetched.topicInfo
|
|
164
108
|
}
|
|
165
|
-
],
|
|
166
|
-
metadata: {
|
|
167
|
-
profile: AID_DNS_WEB_PROFILE_ID,
|
|
168
|
-
resolved: true,
|
|
169
|
-
endpoint: selectedRecord.endpoint,
|
|
170
|
-
protocol: selectedRecord.protocol,
|
|
171
|
-
verification: {
|
|
172
|
-
level: verificationLevel,
|
|
173
|
-
method: verificationMethodForLevel(verificationLevel)
|
|
174
|
-
},
|
|
175
|
-
verificationLevel,
|
|
176
|
-
precedenceSource: "dns"
|
|
177
109
|
}
|
|
178
110
|
};
|
|
179
111
|
}
|
|
180
112
|
}
|
|
181
113
|
export {
|
|
182
|
-
|
|
183
|
-
AidDnsWebProfileResolver
|
|
114
|
+
HCS11ProfileResolver
|
|
184
115
|
};
|
|
185
116
|
//# sourceMappingURL=standards-sdk.es61.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standards-sdk.es61.js","sources":["../../src/hcs-14/resolvers/aid-dns-web-profile.ts"],"sourcesContent":["import type {\n DidResolutionProfile,\n ProfileResolutionError,\n UaidProfileResolver,\n UaidProfileResolverContext,\n} from './types';\nimport type { AdapterMeta } from '../adapters/types';\nimport { nodeDnsTxtLookup, type DnsTxtLookup } from './dns';\nimport { isFqdn, normalizeDomain, parseSemicolonFields } from './profile-utils';\n\nexport const AID_DNS_WEB_PROFILE_ID = 'hcs-14.profile.aid-dns-web';\n\ninterface AidDnsRecord {\n version: string;\n protocol: string;\n endpoint: string;\n publicKey?: string;\n keyId?: string;\n}\n\ninterface AidDnsRecordParseError {\n code: 'ERR_INVALID_AID_RECORD' | 'ERR_ENDPOINT_INVALID';\n}\n\ninterface AidDnsRecordParseSuccess {\n record: AidDnsRecord;\n}\n\ntype AidDnsRecordParseResult =\n | AidDnsRecordParseError\n | AidDnsRecordParseSuccess;\n\ninterface AidDnsVerificationInput {\n uaid: string;\n protocol: string;\n endpoint: string;\n record: AidDnsRecord;\n}\n\ntype AidDnsVerification = (input: AidDnsVerificationInput) => Promise<boolean>;\n\nexport interface AidDnsWebResolverOptions {\n dnsLookup?: DnsTxtLookup;\n supportedUriSchemes?: string[];\n metadataVerifier?: AidDnsVerification;\n cryptographicVerifier?: AidDnsVerification;\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: AID_DNS_WEB_PROFILE_ID,\n resolved: false,\n },\n };\n}\n\nfunction parseRecord(\n rawRecord: string,\n supportedSchemes: Set<string>,\n): AidDnsRecordParseResult {\n const fields = parseSemicolonFields(rawRecord);\n const version = fields['v'];\n const protocol = fields['p'] ?? fields['proto'];\n const endpoint = fields['u'];\n\n if (!version || !protocol || !endpoint) {\n return { code: 'ERR_INVALID_AID_RECORD' };\n }\n if (!version.toLowerCase().startsWith('aid')) {\n return { code: 'ERR_INVALID_AID_RECORD' };\n }\n\n let parsedUrl: URL;\n try {\n parsedUrl = new URL(endpoint);\n } catch {\n return { code: 'ERR_ENDPOINT_INVALID' };\n }\n\n const scheme = parsedUrl.protocol.replace(/:$/, '').toLowerCase();\n if (!supportedSchemes.has(scheme)) {\n return { code: 'ERR_ENDPOINT_INVALID' };\n }\n\n return {\n record: {\n version,\n protocol,\n endpoint: parsedUrl.toString(),\n publicKey: fields['k'],\n keyId: fields['i'],\n },\n };\n}\n\nfunction deterministicRecordKey(record: AidDnsRecord): string {\n return `${record.protocol}|${record.endpoint}|${record.publicKey ?? ''}|${record.keyId ?? ''}`;\n}\n\nfunction verificationMethodForLevel(\n verificationLevel: 'none' | 'metadata' | 'cryptographic',\n): 'aid-pka' | 'metadata-match' | undefined {\n if (verificationLevel === 'cryptographic') {\n return 'aid-pka';\n }\n if (verificationLevel === 'metadata') {\n return 'metadata-match';\n }\n return undefined;\n}\n\nexport class AidDnsWebProfileResolver implements UaidProfileResolver {\n readonly profile = AID_DNS_WEB_PROFILE_ID;\n\n readonly meta: AdapterMeta = {\n id: 'hcs-14/aid-dns-web',\n didMethods: ['*'],\n displayName: 'HCS-14 AID DNS/Web Profile',\n description:\n 'Resolves uaid:aid identifiers via _agent.<nativeId> DNS TXT records and protocol endpoint hints.',\n };\n\n private readonly dnsLookup: DnsTxtLookup;\n private readonly supportedSchemes: Set<string>;\n private readonly metadataVerifier?: AidDnsVerification;\n private readonly cryptographicVerifier?: AidDnsVerification;\n\n constructor(options: AidDnsWebResolverOptions = {}) {\n this.dnsLookup = options.dnsLookup ?? nodeDnsTxtLookup;\n this.supportedSchemes = new Set(\n (options.supportedUriSchemes ?? ['https', 'http', 'wss', 'ws']).map(\n scheme => scheme.toLowerCase(),\n ),\n );\n this.metadataVerifier = options.metadataVerifier;\n this.cryptographicVerifier = options.cryptographicVerifier;\n }\n\n supports(\n _uaid: string,\n parsed: UaidProfileResolverContext['parsedUaid'],\n ): boolean {\n if (parsed.method !== 'aid') {\n return false;\n }\n const nativeId = parsed.params['nativeId'];\n return !!nativeId && isFqdn(nativeId);\n }\n\n async resolveProfile(\n uaid: string,\n context: UaidProfileResolverContext,\n ): Promise<DidResolutionProfile | null> {\n const parsed = context.parsedUaid;\n if (parsed.method !== 'aid') {\n return null;\n }\n\n const nativeId = parsed.params['nativeId'];\n if (!nativeId || !isFqdn(nativeId)) {\n return null;\n }\n\n const normalizedNativeId = normalizeDomain(nativeId);\n const dnsName = `_agent.${normalizedNativeId}`;\n const txtRecords = await this.dnsLookup(dnsName);\n if (txtRecords.length === 0) {\n return null;\n }\n\n const parsedRecords = txtRecords.map(record =>\n parseRecord(record, this.supportedSchemes),\n );\n const validRecords = parsedRecords\n .filter(\n (result): result is AidDnsRecordParseSuccess => 'record' in result,\n )\n .map(result => result.record);\n\n if (validRecords.length === 0) {\n const endpointInvalid = parsedRecords.some(\n result =>\n !('record' in result) && result.code === 'ERR_ENDPOINT_INVALID',\n );\n return buildErrorProfile(\n uaid,\n endpointInvalid ? 'ERR_ENDPOINT_INVALID' : 'ERR_INVALID_AID_RECORD',\n endpointInvalid\n ? 'AID DNS record endpoint URI is invalid or unsupported.'\n : 'AID DNS TXT payload is malformed or unsupported.',\n { dnsName },\n );\n }\n\n const selectedRecord = [...validRecords].sort((a, b) =>\n deterministicRecordKey(a).localeCompare(deterministicRecordKey(b)),\n )[0];\n\n const verificationInput: AidDnsVerificationInput = {\n uaid,\n protocol: selectedRecord.protocol,\n endpoint: selectedRecord.endpoint,\n record: selectedRecord,\n };\n\n let verificationLevel: 'none' | 'metadata' | 'cryptographic' = 'none';\n\n if (this.metadataVerifier) {\n const metadataVerified = await this.metadataVerifier(verificationInput);\n if (!metadataVerified) {\n return buildErrorProfile(\n uaid,\n 'ERR_VERIFICATION_FAILED',\n 'AID metadata verification failed.',\n { dnsName },\n );\n }\n verificationLevel = 'metadata';\n }\n\n if (selectedRecord.publicKey && this.cryptographicVerifier) {\n const cryptographicVerified =\n await this.cryptographicVerifier(verificationInput);\n if (!cryptographicVerified) {\n return buildErrorProfile(\n uaid,\n 'ERR_VERIFICATION_FAILED',\n 'AID cryptographic verification failed.',\n { dnsName },\n );\n }\n verificationLevel = 'cryptographic';\n }\n\n const did = context.did ?? undefined;\n const alsoKnownAs = did ? [did] : undefined;\n\n return {\n id: uaid,\n did,\n alsoKnownAs,\n service: [\n {\n id: `${uaid}#aid-endpoint`,\n type: 'AIDService',\n serviceEndpoint: selectedRecord.endpoint,\n },\n ],\n metadata: {\n profile: AID_DNS_WEB_PROFILE_ID,\n resolved: true,\n endpoint: selectedRecord.endpoint,\n protocol: selectedRecord.protocol,\n verification: {\n level: verificationLevel,\n method: verificationMethodForLevel(verificationLevel),\n },\n verificationLevel,\n precedenceSource: 'dns',\n },\n };\n }\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"standards-sdk.es61.js","sources":["../../src/hcs-14/resolvers/hcs-11-profile.ts"],"sourcesContent":["import { HCS11Client } from '../../hcs-11/client';\nimport { parseHederaCaip10 } from '../caip';\nimport type {\n DidProfileResolver,\n DidProfileResolverContext,\n DidResolutionProfile,\n DidService,\n} from './types';\nimport type { AdapterMeta } from '../adapters/types';\n\ntype Hcs11Network = 'mainnet' | 'testnet';\n\nfunction toHcs11Network(network: string): Hcs11Network | null {\n if (network === 'mainnet' || network === 'testnet') {\n return network;\n }\n return null;\n}\n\nfunction parseNativeIdNetworkAndAccount(\n nativeId: string,\n): { network: Hcs11Network; accountId: string } | null {\n try {\n const parsed = parseHederaCaip10(nativeId);\n const network = toHcs11Network(parsed.network);\n if (!network) {\n return null;\n }\n return { network, accountId: parsed.accountId };\n } catch (_error) {\n return null;\n }\n}\n\nfunction getDidNetworkAndAccount(\n did: string,\n context?: DidProfileResolverContext,\n): { network: Hcs11Network; accountId: string } | null {\n const nativeId = context?.parsedUaid?.params['nativeId'];\n if (nativeId) {\n const resolvedNativeId = parseNativeIdNetworkAndAccount(nativeId);\n if (resolvedNativeId) {\n return resolvedNativeId;\n }\n }\n\n const didMatch = did.match(/^did:hedera:(mainnet|testnet):(.+)$/);\n if (!didMatch) {\n return null;\n }\n\n const network = toHcs11Network(didMatch[1]);\n if (!network) {\n return null;\n }\n\n return {\n network,\n accountId: didMatch[2],\n };\n}\n\nfunction buildHcs10Service(\n id: string,\n network: Hcs11Network,\n accountId: string,\n topicInfo?: {\n inboundTopic: string;\n outboundTopic: string;\n profileTopicId: string;\n },\n): DidService | null {\n if (!topicInfo) {\n return null;\n }\n\n return {\n id: `${id}#hcs10`,\n type: 'HCS10Service',\n serviceEndpoint: {\n network,\n accountId,\n inboundTopicId: topicInfo.inboundTopic || undefined,\n outboundTopicId: topicInfo.outboundTopic || undefined,\n profileTopicId: topicInfo.profileTopicId || undefined,\n },\n };\n}\n\nexport class HCS11ProfileResolver implements DidProfileResolver {\n readonly adapterKind: 'did-profile-resolver' = 'did-profile-resolver';\n readonly meta: AdapterMeta = {\n id: 'hedera/hcs11-profile-resolver',\n didMethods: ['hedera'],\n caip2Networks: ['hedera:mainnet', 'hedera:testnet'],\n caip10Namespaces: ['hedera'],\n displayName: 'Hedera (HCS-11 Profile Resolver)',\n description:\n 'Resolves HCS-11 protocol profiles and HCS-10 service metadata for did:hedera identifiers.',\n };\n\n supports(did: string): boolean {\n return /^did:hedera:(mainnet|testnet):/.test(did);\n }\n\n async resolveProfile(\n did: string,\n context?: DidProfileResolverContext,\n ): Promise<DidResolutionProfile | null> {\n const networkAndAccount = getDidNetworkAndAccount(did, context);\n if (!networkAndAccount) {\n return null;\n }\n\n const { network, accountId } = networkAndAccount;\n const client = new HCS11Client({\n network,\n auth: { operatorId: accountId },\n silent: true,\n });\n const fetched = await client.fetchProfileByAccountId(accountId, network);\n if (!fetched.success || !fetched.profile) {\n return null;\n }\n\n const subjectId = context?.uaid ?? did;\n const existingServices = context?.didDocument?.service ?? [];\n const hcs10Service = buildHcs10Service(\n subjectId,\n network,\n accountId,\n fetched.topicInfo,\n );\n const service = hcs10Service\n ? [...existingServices, hcs10Service]\n : existingServices;\n\n return {\n id: subjectId,\n did,\n service: service.length > 0 ? service : undefined,\n profiles: {\n hcs11: {\n protocol: 'hcs-11',\n network,\n accountId,\n profile: fetched.profile,\n topicInfo: fetched.topicInfo,\n },\n },\n };\n }\n}\n"],"names":[],"mappings":";;AAYA,SAAS,eAAe,SAAsC;AAC5D,MAAI,YAAY,aAAa,YAAY,WAAW;AAClD,WAAO;AAAA,EACT;AACA,SAAO;AACT;AAEA,SAAS,+BACP,UACqD;AACrD,MAAI;AACF,UAAM,SAAS,kBAAkB,QAAQ;AACzC,UAAM,UAAU,eAAe,OAAO,OAAO;AAC7C,QAAI,CAAC,SAAS;AACZ,aAAO;AAAA,IACT;AACA,WAAO,EAAE,SAAS,WAAW,OAAO,UAAA;AAAA,EACtC,SAAS,QAAQ;AACf,WAAO;AAAA,EACT;AACF;AAEA,SAAS,wBACP,KACA,SACqD;AACrD,QAAM,WAAW,SAAS,YAAY,OAAO,UAAU;AACvD,MAAI,UAAU;AACZ,UAAM,mBAAmB,+BAA+B,QAAQ;AAChE,QAAI,kBAAkB;AACpB,aAAO;AAAA,IACT;AAAA,EACF;AAEA,QAAM,WAAW,IAAI,MAAM,qCAAqC;AAChE,MAAI,CAAC,UAAU;AACb,WAAO;AAAA,EACT;AAEA,QAAM,UAAU,eAAe,SAAS,CAAC,CAAC;AAC1C,MAAI,CAAC,SAAS;AACZ,WAAO;AAAA,EACT;AAEA,SAAO;AAAA,IACL;AAAA,IACA,WAAW,SAAS,CAAC;AAAA,EAAA;AAEzB;AAEA,SAAS,kBACP,IACA,SACA,WACA,WAKmB;AACnB,MAAI,CAAC,WAAW;AACd,WAAO;AAAA,EACT;AAEA,SAAO;AAAA,IACL,IAAI,GAAG,EAAE;AAAA,IACT,MAAM;AAAA,IACN,iBAAiB;AAAA,MACf;AAAA,MACA;AAAA,MACA,gBAAgB,UAAU,gBAAgB;AAAA,MAC1C,iBAAiB,UAAU,iBAAiB;AAAA,MAC5C,gBAAgB,UAAU,kBAAkB;AAAA,IAAA;AAAA,EAC9C;AAEJ;AAEO,MAAM,qBAAmD;AAAA,EAAzD,cAAA;AACL,SAAS,cAAsC;AAC/C,SAAS,OAAoB;AAAA,MAC3B,IAAI;AAAA,MACJ,YAAY,CAAC,QAAQ;AAAA,MACrB,eAAe,CAAC,kBAAkB,gBAAgB;AAAA,MAClD,kBAAkB,CAAC,QAAQ;AAAA,MAC3B,aAAa;AAAA,MACb,aACE;AAAA,IAAA;AAAA,EACJ;AAAA,EAEA,SAAS,KAAsB;AAC7B,WAAO,iCAAiC,KAAK,GAAG;AAAA,EAClD;AAAA,EAEA,MAAM,eACJ,KACA,SACsC;AACtC,UAAM,oBAAoB,wBAAwB,KAAK,OAAO;AAC9D,QAAI,CAAC,mBAAmB;AACtB,aAAO;AAAA,IACT;AAEA,UAAM,EAAE,SAAS,UAAA,IAAc;AAC/B,UAAM,SAAS,IAAI,YAAY;AAAA,MAC7B;AAAA,MACA,MAAM,EAAE,YAAY,UAAA;AAAA,MACpB,QAAQ;AAAA,IAAA,CACT;AACD,UAAM,UAAU,MAAM,OAAO,wBAAwB,WAAW,OAAO;AACvE,QAAI,CAAC,QAAQ,WAAW,CAAC,QAAQ,SAAS;AACxC,aAAO;AAAA,IACT;AAEA,UAAM,YAAY,SAAS,QAAQ;AACnC,UAAM,mBAAmB,SAAS,aAAa,WAAW,CAAA;AAC1D,UAAM,eAAe;AAAA,MACnB;AAAA,MACA;AAAA,MACA;AAAA,MACA,QAAQ;AAAA,IAAA;AAEV,UAAM,UAAU,eACZ,CAAC,GAAG,kBAAkB,YAAY,IAClC;AAEJ,WAAO;AAAA,MACL,IAAI;AAAA,MACJ;AAAA,MACA,SAAS,QAAQ,SAAS,IAAI,UAAU;AAAA,MACxC,UAAU;AAAA,QACR,OAAO;AAAA,UACL,UAAU;AAAA,UACV;AAAA,UACA;AAAA,UACA,SAAS,QAAQ;AAAA,UACjB,WAAW,QAAQ;AAAA,QAAA;AAAA,MACrB;AAAA,IACF;AAAA,EAEJ;AACF;"}
|
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
import { nodeDnsTxtLookup } from "./standards-sdk.
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
import { UAID_DID_RESOLUTION_PROFILE_ID } from "./standards-sdk.es63.js";
|
|
5
|
-
const UAID_DNS_WEB_PROFILE_ID = "hcs-14.profile.uaid-dns-web";
|
|
1
|
+
import { nodeDnsTxtLookup } from "./standards-sdk.es66.js";
|
|
2
|
+
import { isFqdn, normalizeDomain, parseSemicolonFields } from "./standards-sdk.es159.js";
|
|
3
|
+
const AID_DNS_WEB_PROFILE_ID = "hcs-14.profile.aid-dns-web";
|
|
6
4
|
function buildErrorProfile(uaid, code, message, details) {
|
|
7
5
|
const error = {
|
|
8
6
|
code,
|
|
@@ -13,100 +11,75 @@ function buildErrorProfile(uaid, code, message, details) {
|
|
|
13
11
|
id: uaid,
|
|
14
12
|
error,
|
|
15
13
|
metadata: {
|
|
16
|
-
profile:
|
|
14
|
+
profile: AID_DNS_WEB_PROFILE_ID,
|
|
17
15
|
resolved: false
|
|
18
16
|
}
|
|
19
17
|
};
|
|
20
18
|
}
|
|
21
|
-
function
|
|
22
|
-
const
|
|
23
|
-
const
|
|
24
|
-
|
|
25
|
-
|
|
19
|
+
function parseRecord(rawRecord, supportedSchemes) {
|
|
20
|
+
const fields = parseSemicolonFields(rawRecord);
|
|
21
|
+
const version = fields["v"];
|
|
22
|
+
const protocol = fields["p"] ?? fields["proto"];
|
|
23
|
+
const endpoint = fields["u"];
|
|
24
|
+
if (!version || !protocol || !endpoint) {
|
|
25
|
+
return { code: "ERR_INVALID_AID_RECORD" };
|
|
26
26
|
}
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
next["domain"] = normalizeDomain(domain);
|
|
27
|
+
if (!version.toLowerCase().startsWith("aid")) {
|
|
28
|
+
return { code: "ERR_INVALID_AID_RECORD" };
|
|
30
29
|
}
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
const uid = fields["uid"];
|
|
37
|
-
const proto = fields["proto"];
|
|
38
|
-
const nativeId = fields["nativeId"];
|
|
39
|
-
if (target !== "aid" && target !== "did") {
|
|
40
|
-
return null;
|
|
41
|
-
}
|
|
42
|
-
if (!id || !uid || !proto || !nativeId) {
|
|
43
|
-
return null;
|
|
44
|
-
}
|
|
45
|
-
if (normalizeDomain(nativeId) !== queriedNativeId) {
|
|
46
|
-
return null;
|
|
30
|
+
let parsedUrl;
|
|
31
|
+
try {
|
|
32
|
+
parsedUrl = new URL(endpoint);
|
|
33
|
+
} catch {
|
|
34
|
+
return { code: "ERR_ENDPOINT_INVALID" };
|
|
47
35
|
}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
const did = fields["did"];
|
|
52
|
-
if (did && (target !== "did" || !did.startsWith("did:"))) {
|
|
53
|
-
return null;
|
|
54
|
-
}
|
|
55
|
-
const params = {
|
|
56
|
-
uid,
|
|
57
|
-
proto,
|
|
58
|
-
nativeId
|
|
59
|
-
};
|
|
60
|
-
if (fields["registry"]) {
|
|
61
|
-
params["registry"] = fields["registry"];
|
|
62
|
-
}
|
|
63
|
-
if (fields["domain"]) {
|
|
64
|
-
params["domain"] = fields["domain"];
|
|
65
|
-
}
|
|
66
|
-
if (fields["src"]) {
|
|
67
|
-
params["src"] = fields["src"];
|
|
36
|
+
const scheme = parsedUrl.protocol.replace(/:$/, "").toLowerCase();
|
|
37
|
+
if (!supportedSchemes.has(scheme)) {
|
|
38
|
+
return { code: "ERR_ENDPOINT_INVALID" };
|
|
68
39
|
}
|
|
69
40
|
return {
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
src: fields["src"],
|
|
78
|
-
did,
|
|
79
|
-
memo: fields["m"],
|
|
80
|
-
reconstructedUaid: buildCanonicalUaid(
|
|
81
|
-
target,
|
|
82
|
-
id,
|
|
83
|
-
canonicalizeNativeDomainParams(params)
|
|
84
|
-
)
|
|
41
|
+
record: {
|
|
42
|
+
version,
|
|
43
|
+
protocol,
|
|
44
|
+
endpoint: parsedUrl.toString(),
|
|
45
|
+
publicKey: fields["k"],
|
|
46
|
+
keyId: fields["i"]
|
|
47
|
+
}
|
|
85
48
|
};
|
|
86
49
|
}
|
|
87
|
-
function
|
|
88
|
-
|
|
89
|
-
|
|
50
|
+
function deterministicRecordKey(record) {
|
|
51
|
+
return `${record.protocol}|${record.endpoint}|${record.publicKey ?? ""}|${record.keyId ?? ""}`;
|
|
52
|
+
}
|
|
53
|
+
function verificationMethodForLevel(verificationLevel) {
|
|
54
|
+
if (verificationLevel === "cryptographic") {
|
|
55
|
+
return "aid-pka";
|
|
56
|
+
}
|
|
57
|
+
if (verificationLevel === "metadata") {
|
|
58
|
+
return "metadata-match";
|
|
90
59
|
}
|
|
91
|
-
return
|
|
60
|
+
return void 0;
|
|
92
61
|
}
|
|
93
|
-
class
|
|
62
|
+
class AidDnsWebProfileResolver {
|
|
94
63
|
constructor(options = {}) {
|
|
95
|
-
this.
|
|
64
|
+
this.adapterKind = "uaid-profile-resolver";
|
|
65
|
+
this.profile = AID_DNS_WEB_PROFILE_ID;
|
|
96
66
|
this.meta = {
|
|
97
|
-
id: "hcs-14/
|
|
67
|
+
id: "hcs-14/aid-dns-web",
|
|
98
68
|
didMethods: ["*"],
|
|
99
|
-
displayName: "HCS-14
|
|
100
|
-
description: "
|
|
69
|
+
displayName: "HCS-14 AID DNS/Web Profile",
|
|
70
|
+
description: "Resolves uaid:aid identifiers via _agent.<nativeId> DNS TXT records and protocol endpoint hints."
|
|
101
71
|
};
|
|
102
72
|
this.dnsLookup = options.dnsLookup ?? nodeDnsTxtLookup;
|
|
103
|
-
this.
|
|
104
|
-
|
|
105
|
-
|
|
73
|
+
this.supportedSchemes = new Set(
|
|
74
|
+
(options.supportedUriSchemes ?? ["https", "http", "wss", "ws"]).map(
|
|
75
|
+
(scheme) => scheme.toLowerCase()
|
|
76
|
+
)
|
|
77
|
+
);
|
|
78
|
+
this.metadataVerifier = options.metadataVerifier;
|
|
79
|
+
this.cryptographicVerifier = options.cryptographicVerifier;
|
|
106
80
|
}
|
|
107
81
|
supports(_uaid, parsed) {
|
|
108
|
-
|
|
109
|
-
if (target !== "aid" && target !== "did") {
|
|
82
|
+
if (parsed.method !== "aid") {
|
|
110
83
|
return false;
|
|
111
84
|
}
|
|
112
85
|
const nativeId = parsed.params["nativeId"];
|
|
@@ -114,113 +87,113 @@ class UaidDnsWebProfileResolver {
|
|
|
114
87
|
}
|
|
115
88
|
async resolveProfile(uaid, context) {
|
|
116
89
|
const parsed = context.parsedUaid;
|
|
90
|
+
if (parsed.method !== "aid") {
|
|
91
|
+
return buildErrorProfile(
|
|
92
|
+
uaid,
|
|
93
|
+
"ERR_NOT_APPLICABLE",
|
|
94
|
+
"AID DNS/Web profile only applies to uaid:aid identifiers."
|
|
95
|
+
);
|
|
96
|
+
}
|
|
117
97
|
const nativeId = parsed.params["nativeId"];
|
|
118
98
|
if (!nativeId || !isFqdn(nativeId)) {
|
|
119
|
-
return
|
|
99
|
+
return buildErrorProfile(
|
|
100
|
+
uaid,
|
|
101
|
+
"ERR_NOT_APPLICABLE",
|
|
102
|
+
"AID DNS/Web profile requires an FQDN nativeId."
|
|
103
|
+
);
|
|
120
104
|
}
|
|
121
105
|
const normalizedNativeId = normalizeDomain(nativeId);
|
|
122
|
-
const dnsName = `
|
|
123
|
-
const inputCanonical = buildCanonicalUaid(
|
|
124
|
-
uaidTargetFromParsed(parsed),
|
|
125
|
-
parsed.id,
|
|
126
|
-
canonicalizeNativeDomainParams(parsed.params)
|
|
127
|
-
);
|
|
106
|
+
const dnsName = `_agent.${normalizedNativeId}`;
|
|
128
107
|
const txtRecords = await this.dnsLookup(dnsName);
|
|
129
108
|
if (txtRecords.length === 0) {
|
|
130
|
-
return null;
|
|
131
|
-
}
|
|
132
|
-
const parsedRecords = txtRecords.map((record) => parseSemicolonFields(record)).map((fields) => validateRecordFields(fields, normalizedNativeId));
|
|
133
|
-
const validRecords = parsedRecords.filter(
|
|
134
|
-
(record) => record !== null
|
|
135
|
-
);
|
|
136
|
-
if (validRecords.length === 0) {
|
|
137
109
|
return buildErrorProfile(
|
|
138
110
|
uaid,
|
|
139
|
-
"
|
|
140
|
-
"DNS TXT
|
|
111
|
+
"ERR_NO_DNS_RECORD",
|
|
112
|
+
"No AID DNS TXT record was found for the requested nativeId.",
|
|
141
113
|
{ dnsName }
|
|
142
114
|
);
|
|
143
115
|
}
|
|
144
|
-
const
|
|
145
|
-
(record) =>
|
|
116
|
+
const parsedRecords = txtRecords.map(
|
|
117
|
+
(record) => parseRecord(record, this.supportedSchemes)
|
|
146
118
|
);
|
|
147
|
-
|
|
119
|
+
const validRecords = parsedRecords.filter(
|
|
120
|
+
(result) => "record" in result
|
|
121
|
+
).map((result) => result.record);
|
|
122
|
+
if (validRecords.length === 0) {
|
|
123
|
+
const endpointInvalid = parsedRecords.some(
|
|
124
|
+
(result) => !("record" in result) && result.code === "ERR_ENDPOINT_INVALID"
|
|
125
|
+
);
|
|
148
126
|
return buildErrorProfile(
|
|
149
127
|
uaid,
|
|
150
|
-
"
|
|
151
|
-
"DNS
|
|
152
|
-
{
|
|
153
|
-
dnsName,
|
|
154
|
-
inputCanonical
|
|
155
|
-
}
|
|
128
|
+
endpointInvalid ? "ERR_ENDPOINT_INVALID" : "ERR_INVALID_AID_RECORD",
|
|
129
|
+
endpointInvalid ? "AID DNS record endpoint URI is invalid or unsupported." : "AID DNS TXT payload is malformed or unsupported.",
|
|
130
|
+
{ dnsName }
|
|
156
131
|
);
|
|
157
132
|
}
|
|
158
|
-
const
|
|
159
|
-
(a, b) => a.
|
|
133
|
+
const selectedRecord = [...validRecords].sort(
|
|
134
|
+
(a, b) => deterministicRecordKey(a).localeCompare(deterministicRecordKey(b))
|
|
160
135
|
)[0];
|
|
161
|
-
const
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
136
|
+
const verificationInput = {
|
|
137
|
+
uaid,
|
|
138
|
+
protocol: selectedRecord.protocol,
|
|
139
|
+
endpoint: selectedRecord.endpoint,
|
|
140
|
+
record: selectedRecord
|
|
141
|
+
};
|
|
142
|
+
let verificationLevel = "none";
|
|
143
|
+
if (this.metadataVerifier) {
|
|
144
|
+
const metadataVerified = await this.metadataVerifier(verificationInput);
|
|
145
|
+
if (!metadataVerified) {
|
|
146
|
+
return buildErrorProfile(
|
|
147
|
+
uaid,
|
|
148
|
+
"ERR_VERIFICATION_FAILED",
|
|
149
|
+
"AID metadata verification failed.",
|
|
150
|
+
{ dnsName }
|
|
169
151
|
);
|
|
170
|
-
if (!followup) {
|
|
171
|
-
continue;
|
|
172
|
-
}
|
|
173
|
-
if (followup.error || followup.metadata?.resolved === false) {
|
|
174
|
-
return buildErrorProfile(
|
|
175
|
-
uaid,
|
|
176
|
-
"ERR_FOLLOWUP_RESOLUTION_FAILED",
|
|
177
|
-
"Follow-up profile resolution failed after successful DNS binding.",
|
|
178
|
-
{
|
|
179
|
-
followupProfileId,
|
|
180
|
-
dnsName
|
|
181
|
-
}
|
|
182
|
-
);
|
|
183
|
-
}
|
|
184
|
-
return {
|
|
185
|
-
...followup,
|
|
186
|
-
metadata: {
|
|
187
|
-
...followup.metadata,
|
|
188
|
-
profile: UAID_DNS_WEB_PROFILE_ID,
|
|
189
|
-
resolved: true,
|
|
190
|
-
verificationLevel,
|
|
191
|
-
reconstructedUaid: selected.reconstructedUaid,
|
|
192
|
-
selectedFollowupProfile: followupProfileId,
|
|
193
|
-
resolutionMode: "full-resolution"
|
|
194
|
-
}
|
|
195
|
-
};
|
|
196
152
|
}
|
|
153
|
+
verificationLevel = "metadata";
|
|
197
154
|
}
|
|
198
|
-
if (this.
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
155
|
+
if (selectedRecord.publicKey && this.cryptographicVerifier) {
|
|
156
|
+
const cryptographicVerified = await this.cryptographicVerifier(verificationInput);
|
|
157
|
+
if (!cryptographicVerified) {
|
|
158
|
+
return buildErrorProfile(
|
|
159
|
+
uaid,
|
|
160
|
+
"ERR_VERIFICATION_FAILED",
|
|
161
|
+
"AID cryptographic verification failed.",
|
|
162
|
+
{ dnsName }
|
|
163
|
+
);
|
|
164
|
+
}
|
|
165
|
+
verificationLevel = "cryptographic";
|
|
205
166
|
}
|
|
206
|
-
const did =
|
|
167
|
+
const did = context.did ?? void 0;
|
|
207
168
|
const alsoKnownAs = did ? [did] : void 0;
|
|
208
169
|
return {
|
|
209
170
|
id: uaid,
|
|
210
171
|
did,
|
|
211
172
|
alsoKnownAs,
|
|
173
|
+
service: [
|
|
174
|
+
{
|
|
175
|
+
id: `${uaid}#aid-endpoint`,
|
|
176
|
+
type: "AIDService",
|
|
177
|
+
serviceEndpoint: selectedRecord.endpoint
|
|
178
|
+
}
|
|
179
|
+
],
|
|
212
180
|
metadata: {
|
|
213
|
-
profile:
|
|
181
|
+
profile: AID_DNS_WEB_PROFILE_ID,
|
|
214
182
|
resolved: true,
|
|
215
|
-
|
|
183
|
+
endpoint: selectedRecord.endpoint,
|
|
184
|
+
protocol: selectedRecord.protocol,
|
|
185
|
+
verification: {
|
|
186
|
+
level: verificationLevel,
|
|
187
|
+
method: verificationMethodForLevel(verificationLevel)
|
|
188
|
+
},
|
|
216
189
|
verificationLevel,
|
|
217
|
-
|
|
190
|
+
precedenceSource: "dns"
|
|
218
191
|
}
|
|
219
192
|
};
|
|
220
193
|
}
|
|
221
194
|
}
|
|
222
195
|
export {
|
|
223
|
-
|
|
224
|
-
|
|
196
|
+
AID_DNS_WEB_PROFILE_ID,
|
|
197
|
+
AidDnsWebProfileResolver
|
|
225
198
|
};
|
|
226
199
|
//# sourceMappingURL=standards-sdk.es62.js.map
|