@atproto-labs/identity-resolver 0.1.17 → 0.1.18
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/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# @atproto-labs/identity-resolver
|
|
2
2
|
|
|
3
|
+
## 0.1.18
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#3933](https://github.com/bluesky-social/atproto/pull/3933) [`192f3ab89`](https://github.com/bluesky-social/atproto/commit/192f3ab89c943216683541f42cc1332e9c305eee) Thanks [@matthieusieben](https://github.com/matthieusieben)! - Return atproto handle in identity resolution result
|
|
8
|
+
|
|
3
9
|
## 0.1.17
|
|
4
10
|
|
|
5
11
|
### Patch Changes
|
|
@@ -3,6 +3,7 @@ import { AtprotoIdentityDidMethods, HandleResolver, ResolveHandleOptions, Resolv
|
|
|
3
3
|
export type ResolvedIdentity = {
|
|
4
4
|
did: NonNullable<ResolvedHandle>;
|
|
5
5
|
pds: URL;
|
|
6
|
+
handle?: string;
|
|
6
7
|
};
|
|
7
8
|
export type ResolveIdentityOptions = ResolveDidOptions & ResolveHandleOptions;
|
|
8
9
|
export declare class IdentityResolver {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identity-resolver.d.ts","sourceRoot":"","sources":["../src/identity-resolver.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,WAAW,EACX,WAAW,EAEX,iBAAiB,EAClB,MAAM,4BAA4B,CAAA;AACnC,OAAO,EACL,yBAAyB,EACzB,cAAc,EACd,oBAAoB,EACpB,cAAc,EAEf,MAAM,+BAA+B,CAAA;AAEtC,MAAM,MAAM,gBAAgB,GAAG;IAC7B,GAAG,EAAE,WAAW,CAAC,cAAc,CAAC,CAAA;IAChC,GAAG,EAAE,GAAG,CAAA;
|
|
1
|
+
{"version":3,"file":"identity-resolver.d.ts","sourceRoot":"","sources":["../src/identity-resolver.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,WAAW,EACX,WAAW,EAEX,iBAAiB,EAClB,MAAM,4BAA4B,CAAA;AACnC,OAAO,EACL,yBAAyB,EACzB,cAAc,EACd,oBAAoB,EACpB,cAAc,EAEf,MAAM,+BAA+B,CAAA;AAEtC,MAAM,MAAM,gBAAgB,GAAG;IAC7B,GAAG,EAAE,WAAW,CAAC,cAAc,CAAC,CAAA;IAChC,GAAG,EAAE,GAAG,CAAA;IACR,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,sBAAsB,GAAG,iBAAiB,GAAG,oBAAoB,CAAA;AAE7E,qBAAa,gBAAgB;IAEzB,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,yBAAyB,CAAC;IAC5D,QAAQ,CAAC,cAAc,EAAE,cAAc;gBAD9B,WAAW,EAAE,WAAW,CAAC,yBAAyB,CAAC,EACnD,cAAc,EAAE,cAAc;IAG5B,OAAO,CAClB,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,sBAAsB,GAC/B,OAAO,CAAC,gBAAgB,CAAC;IAuBf,kBAAkB,CAC7B,GAAG,EAAE,WAAW,CAAC,cAAc,CAAC,EAChC,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,WAAW,CAAC,yBAAyB,CAAC,CAAC;IAIrC,qBAAqB,CAChC,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,WAAW,CAAC,yBAAyB,CAAC,CAAC;CAyBnD"}
|
|
@@ -29,6 +29,7 @@ class IdentityResolver {
|
|
|
29
29
|
return {
|
|
30
30
|
did: document.id,
|
|
31
31
|
pds: new URL(service.serviceEndpoint),
|
|
32
|
+
handle: extractHandle(document),
|
|
32
33
|
};
|
|
33
34
|
}
|
|
34
35
|
async getDocumentFromDid(did, options) {
|
|
@@ -52,6 +53,18 @@ class IdentityResolver {
|
|
|
52
53
|
}
|
|
53
54
|
}
|
|
54
55
|
exports.IdentityResolver = IdentityResolver;
|
|
56
|
+
function extractHandle(document) {
|
|
57
|
+
if (document.alsoKnownAs) {
|
|
58
|
+
for (const h of document.alsoKnownAs) {
|
|
59
|
+
if (h.startsWith('at://')) {
|
|
60
|
+
const handle = h.slice(5);
|
|
61
|
+
if ((0, syntax_1.isValidHandle)(handle))
|
|
62
|
+
return handle;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
return undefined;
|
|
67
|
+
}
|
|
55
68
|
function isAtprotoPersonalDataServerService(s) {
|
|
56
69
|
return (typeof s.serviceEndpoint === 'string' &&
|
|
57
70
|
s.type === 'AtprotoPersonalDataServer' &&
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identity-resolver.js","sourceRoot":"","sources":["../src/identity-resolver.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"identity-resolver.js","sourceRoot":"","sources":["../src/identity-resolver.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/identity-resolver.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { normalizeAndEnsureValidHandle } from '@atproto/syntax'
|
|
1
|
+
import { isValidHandle, normalizeAndEnsureValidHandle } from '@atproto/syntax'
|
|
2
2
|
import {
|
|
3
3
|
Did,
|
|
4
4
|
DidDocument,
|
|
@@ -17,6 +17,7 @@ import {
|
|
|
17
17
|
export type ResolvedIdentity = {
|
|
18
18
|
did: NonNullable<ResolvedHandle>
|
|
19
19
|
pds: URL
|
|
20
|
+
handle?: string
|
|
20
21
|
}
|
|
21
22
|
|
|
22
23
|
export type ResolveIdentityOptions = ResolveDidOptions & ResolveHandleOptions
|
|
@@ -49,6 +50,7 @@ export class IdentityResolver {
|
|
|
49
50
|
return {
|
|
50
51
|
did: document.id,
|
|
51
52
|
pds: new URL(service.serviceEndpoint),
|
|
53
|
+
handle: extractHandle(document),
|
|
52
54
|
}
|
|
53
55
|
}
|
|
54
56
|
|
|
@@ -89,6 +91,21 @@ export class IdentityResolver {
|
|
|
89
91
|
}
|
|
90
92
|
}
|
|
91
93
|
|
|
94
|
+
function extractHandle(
|
|
95
|
+
document: DidDocument<AtprotoIdentityDidMethods>,
|
|
96
|
+
): string | undefined {
|
|
97
|
+
if (document.alsoKnownAs) {
|
|
98
|
+
for (const h of document.alsoKnownAs) {
|
|
99
|
+
if (h.startsWith('at://')) {
|
|
100
|
+
const handle = h.slice(5)
|
|
101
|
+
if (isValidHandle(handle)) return handle
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
return undefined
|
|
107
|
+
}
|
|
108
|
+
|
|
92
109
|
function isAtprotoPersonalDataServerService<M extends string>(
|
|
93
110
|
this: DidDocument<M>,
|
|
94
111
|
s: DidService,
|