@atproto-labs/did-resolver 0.1.3 → 0.1.5
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 +16 -0
- package/dist/methods/plc.d.ts.map +1 -1
- package/dist/methods/web.d.ts +4 -1
- package/dist/methods/web.d.ts.map +1 -1
- package/dist/methods/web.js +13 -3
- package/dist/methods/web.js.map +1 -1
- package/package.json +4 -4
- package/src/methods/web.ts +14 -1
- package/tsconfig.build.tsbuildinfo +1 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# @atproto-labs/did-resolver
|
|
2
2
|
|
|
3
|
+
## 0.1.5
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#2874](https://github.com/bluesky-social/atproto/pull/2874) [`7f26b1765`](https://github.com/bluesky-social/atproto/commit/7f26b176526b9856a8f61faca6f065f0afd43abf) Thanks [@matthieusieben](https://github.com/matthieusieben)! - Add "allowHttp" did:web method option
|
|
8
|
+
|
|
9
|
+
- Updated dependencies [[`9d40ccbb6`](https://github.com/bluesky-social/atproto/commit/9d40ccbb69103fae9aae7e3cec31e9b3116f3ba2)]:
|
|
10
|
+
- @atproto/did@0.1.3
|
|
11
|
+
|
|
12
|
+
## 0.1.4
|
|
13
|
+
|
|
14
|
+
### Patch Changes
|
|
15
|
+
|
|
16
|
+
- Updated dependencies [[`a07b21151`](https://github.com/bluesky-social/atproto/commit/a07b21151f1850340c4b7797ebb11521b1a6cdf3), [`a07b21151`](https://github.com/bluesky-social/atproto/commit/a07b21151f1850340c4b7797ebb11521b1a6cdf3), [`a07b21151`](https://github.com/bluesky-social/atproto/commit/a07b21151f1850340c4b7797ebb11521b1a6cdf3)]:
|
|
17
|
+
- @atproto-labs/fetch@0.1.1
|
|
18
|
+
|
|
3
19
|
## 0.1.3
|
|
4
20
|
|
|
5
21
|
### Patch Changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plc.d.ts","sourceRoot":"","sources":["../../src/methods/plc.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EAKN,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EAAE,GAAG,EAAsC,MAAM,cAAc,CAAA;AAEtE,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAQ/D,MAAM,MAAM,mBAAmB,GAAG;IAChC;;OAEG;IACH,KAAK,CAAC,EAAE,KAAK,CAAA;IAEb;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,GAAG,GAAG,CAAA;CAC/B,CAAA;AAED,qBAAa,YAAa,YAAW,SAAS,CAAC,KAAK,CAAC;IACnD,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;IAExC,SAAgB,eAAe,EAAE,GAAG,CAAA;gBAExB,OAAO,CAAC,EAAE,mBAAmB;IAOnC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,EAAE,iBAAiB
|
|
1
|
+
{"version":3,"file":"plc.d.ts","sourceRoot":"","sources":["../../src/methods/plc.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EAKN,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EAAE,GAAG,EAAsC,MAAM,cAAc,CAAA;AAEtE,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAQ/D,MAAM,MAAM,mBAAmB,GAAG;IAChC;;OAEG;IACH,KAAK,CAAC,EAAE,KAAK,CAAA;IAEb;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,GAAG,GAAG,CAAA;CAC/B,CAAA;AAED,qBAAa,YAAa,YAAW,SAAS,CAAC,KAAK,CAAC;IACnD,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;IAExC,SAAgB,eAAe,EAAE,GAAG,CAAA;gBAExB,OAAO,CAAC,EAAE,mBAAmB;IAOnC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,EAAE,iBAAiB;;;;;;;;;;;;;;wBAc+2W,CAAC;8BAAiE,CAAC;;;;;;wBAA4N,CAAC;8BAAiE,CAAC;;;CAD5wX"}
|
package/dist/methods/web.d.ts
CHANGED
|
@@ -3,10 +3,13 @@ import { Did } from '@atproto/did';
|
|
|
3
3
|
import { DidMethod, ResolveDidOptions } from '../did-method.js';
|
|
4
4
|
export type DidWebMethodOptions = {
|
|
5
5
|
fetch?: Fetch;
|
|
6
|
+
/** @default true */
|
|
7
|
+
allowHttp?: boolean;
|
|
6
8
|
};
|
|
7
9
|
export declare class DidWebMethod implements DidMethod<'web'> {
|
|
8
10
|
protected readonly fetch: Fetch<unknown>;
|
|
9
|
-
|
|
11
|
+
protected readonly allowHttp: boolean;
|
|
12
|
+
constructor({ fetch, allowHttp, }?: DidWebMethodOptions);
|
|
10
13
|
resolve(did: Did<'web'>, options?: ResolveDidOptions): Promise<{
|
|
11
14
|
id: `did:${string}:${string}`;
|
|
12
15
|
'@context': "https://www.w3.org/ns/did/v1" | [string, ...string[]];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web.d.ts","sourceRoot":"","sources":["../../src/methods/web.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,EAIN,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EAAE,GAAG,EAAqC,MAAM,cAAc,CAAA;AAErE,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAQ/D,MAAM,MAAM,mBAAmB,GAAG;IAChC,KAAK,CAAC,EAAE,KAAK,CAAA;
|
|
1
|
+
{"version":3,"file":"web.d.ts","sourceRoot":"","sources":["../../src/methods/web.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,EAIN,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EAAE,GAAG,EAAqC,MAAM,cAAc,CAAA;AAErE,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAQ/D,MAAM,MAAM,mBAAmB,GAAG;IAChC,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,oBAAoB;IACpB,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB,CAAA;AAED,qBAAa,YAAa,YAAW,SAAS,CAAC,KAAK,CAAC;IACnD,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;IACxC,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;gBAEzB,EACV,KAAwB,EACxB,SAAgB,GACjB,GAAE,mBAAwB;IAKrB,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,EAAE,iBAAiB;;;;;;;;;;;;;;wBAwC2gV,CAAC;8BAAiE,CAAC;;;;;;wBAA4N,CAAC;8BAAiE,CAAC;;;CApBx6V;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,OAarD"}
|
package/dist/methods/web.js
CHANGED
|
@@ -1,22 +1,33 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.DidWebMethod = void 0;
|
|
4
|
+
exports.buildDidWebDocumentUrl = buildDidWebDocumentUrl;
|
|
4
5
|
const fetch_1 = require("@atproto-labs/fetch");
|
|
5
6
|
const pipe_1 = require("@atproto-labs/pipe");
|
|
6
7
|
const did_1 = require("@atproto/did");
|
|
7
8
|
const fetchSuccessHandler = (0, pipe_1.pipe)((0, fetch_1.fetchOkProcessor)(), (0, fetch_1.fetchJsonProcessor)(/^application\/(did\+ld\+)?json$/), (0, fetch_1.fetchJsonZodProcessor)(did_1.didDocumentValidator));
|
|
8
9
|
class DidWebMethod {
|
|
9
|
-
constructor({ fetch = globalThis.fetch } = {}) {
|
|
10
|
+
constructor({ fetch = globalThis.fetch, allowHttp = true, } = {}) {
|
|
10
11
|
Object.defineProperty(this, "fetch", {
|
|
11
12
|
enumerable: true,
|
|
12
13
|
configurable: true,
|
|
13
14
|
writable: true,
|
|
14
15
|
value: void 0
|
|
15
16
|
});
|
|
17
|
+
Object.defineProperty(this, "allowHttp", {
|
|
18
|
+
enumerable: true,
|
|
19
|
+
configurable: true,
|
|
20
|
+
writable: true,
|
|
21
|
+
value: void 0
|
|
22
|
+
});
|
|
16
23
|
this.fetch = (0, fetch_1.bindFetch)(fetch);
|
|
24
|
+
this.allowHttp = allowHttp;
|
|
17
25
|
}
|
|
18
26
|
async resolve(did, options) {
|
|
19
27
|
const didDocumentUrl = buildDidWebDocumentUrl(did);
|
|
28
|
+
if (!this.allowHttp && didDocumentUrl.protocol === 'http:') {
|
|
29
|
+
throw new Error(`Cannot resolve DID document for localhost: ${didDocumentUrl}`);
|
|
30
|
+
}
|
|
20
31
|
// Note we do not explicitly check for "localhost" here. Instead, we rely on
|
|
21
32
|
// the injected 'fetch' function to handle the URL. If the URL is
|
|
22
33
|
// "localhost", or resolves to a private IP address, the fetch function is
|
|
@@ -46,5 +57,4 @@ function buildDidWebDocumentUrl(did) {
|
|
|
46
57
|
return new URL(`${url.pathname}/did.json`, url);
|
|
47
58
|
}
|
|
48
59
|
}
|
|
49
|
-
exports.buildDidWebDocumentUrl = buildDidWebDocumentUrl;
|
|
50
60
|
//# sourceMappingURL=web.js.map
|
package/dist/methods/web.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web.js","sourceRoot":"","sources":["../../src/methods/web.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"web.js","sourceRoot":"","sources":["../../src/methods/web.ts"],"names":[],"mappings":";;;AA8DA,wDAaC;AA3ED,+CAM4B;AAC5B,6CAAyC;AACzC,sCAAqE;AAIrE,MAAM,mBAAmB,GAAG,IAAA,WAAI,EAC9B,IAAA,wBAAgB,GAAE,EAClB,IAAA,0BAAkB,EAAC,iCAAiC,CAAC,EACrD,IAAA,6BAAqB,EAAC,0BAAoB,CAAC,CAC5C,CAAA;AAQD,MAAa,YAAY;IAIvB,YAAY,EACV,KAAK,GAAG,UAAU,CAAC,KAAK,EACxB,SAAS,GAAG,IAAI,MACO,EAAE;QANR;;;;;WAAqB;QACrB;;;;;WAAkB;QAMnC,IAAI,CAAC,KAAK,GAAG,IAAA,iBAAS,EAAC,KAAK,CAAC,CAAA;QAC7B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;IAC5B,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,GAAe,EAAE,OAA2B;QACxD,MAAM,cAAc,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAA;QAElD,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,cAAc,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;YAC3D,MAAM,IAAI,KAAK,CACb,8CAA8C,cAAc,EAAE,CAC/D,CAAA;QACH,CAAC;QAED,4EAA4E;QAC5E,iEAAiE;QACjE,0EAA0E;QAC1E,+BAA+B;QAE/B,OAAO,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE;YAChC,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,EAAE,MAAM,EAAE,0CAA0C,EAAE;YAC/D,MAAM,EAAE,OAAO,EAAE,MAAM;SACxB,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA;IAC9B,CAAC;CACF;AAhCD,oCAgCC;AAED;;;GAGG;AACH,SAAgB,sBAAsB,CAAC,GAAe;IACpD,MAAM,GAAG,GAAG,IAAA,iBAAW,EAAC,GAAG,CAAC,CAAA,CAAC,mCAAmC;IAEhE,2EAA2E;IAC3E,8EAA8E;IAC9E,gCAAgC;IAEhC,yDAAyD;IACzD,IAAI,GAAG,CAAC,QAAQ,KAAK,GAAG,EAAE,CAAC;QACzB,OAAO,IAAI,GAAG,CAAC,uBAAuB,EAAE,GAAG,CAAC,CAAA;IAC9C,CAAC;SAAM,CAAC;QACN,OAAO,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,QAAQ,WAAW,EAAE,GAAG,CAAC,CAAA;IACjD,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atproto-labs/did-resolver",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.5",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "DID resolution and verification library",
|
|
6
6
|
"keywords": [
|
|
@@ -25,14 +25,14 @@
|
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
27
|
"zod": "^3.23.8",
|
|
28
|
-
"@atproto-labs/fetch": "0.1.
|
|
28
|
+
"@atproto-labs/fetch": "0.1.1",
|
|
29
29
|
"@atproto-labs/pipe": "0.1.0",
|
|
30
30
|
"@atproto-labs/simple-store": "0.1.1",
|
|
31
31
|
"@atproto-labs/simple-store-memory": "0.1.1",
|
|
32
|
-
"@atproto/did": "0.1.
|
|
32
|
+
"@atproto/did": "0.1.3"
|
|
33
33
|
},
|
|
34
34
|
"devDependencies": {
|
|
35
|
-
"typescript": "^5.
|
|
35
|
+
"typescript": "^5.6.3"
|
|
36
36
|
},
|
|
37
37
|
"scripts": {
|
|
38
38
|
"build": "tsc --build tsconfig.build.json"
|
package/src/methods/web.ts
CHANGED
|
@@ -18,18 +18,31 @@ const fetchSuccessHandler = pipe(
|
|
|
18
18
|
|
|
19
19
|
export type DidWebMethodOptions = {
|
|
20
20
|
fetch?: Fetch
|
|
21
|
+
/** @default true */
|
|
22
|
+
allowHttp?: boolean
|
|
21
23
|
}
|
|
22
24
|
|
|
23
25
|
export class DidWebMethod implements DidMethod<'web'> {
|
|
24
26
|
protected readonly fetch: Fetch<unknown>
|
|
27
|
+
protected readonly allowHttp: boolean
|
|
25
28
|
|
|
26
|
-
constructor({
|
|
29
|
+
constructor({
|
|
30
|
+
fetch = globalThis.fetch,
|
|
31
|
+
allowHttp = true,
|
|
32
|
+
}: DidWebMethodOptions = {}) {
|
|
27
33
|
this.fetch = bindFetch(fetch)
|
|
34
|
+
this.allowHttp = allowHttp
|
|
28
35
|
}
|
|
29
36
|
|
|
30
37
|
async resolve(did: Did<'web'>, options?: ResolveDidOptions) {
|
|
31
38
|
const didDocumentUrl = buildDidWebDocumentUrl(did)
|
|
32
39
|
|
|
40
|
+
if (!this.allowHttp && didDocumentUrl.protocol === 'http:') {
|
|
41
|
+
throw new Error(
|
|
42
|
+
`Cannot resolve DID document for localhost: ${didDocumentUrl}`,
|
|
43
|
+
)
|
|
44
|
+
}
|
|
45
|
+
|
|
33
46
|
// Note we do not explicitly check for "localhost" here. Instead, we rely on
|
|
34
47
|
// the injected 'fetch' function to handle the URL. If the URL is
|
|
35
48
|
// "localhost", or resolves to a private IP address, the fetch function is
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"root":["./src/did-cache-memory.ts","./src/did-cache.ts","./src/did-method.ts","./src/did-resolver-base.ts","./src/did-resolver-common.ts","./src/did-resolver.ts","./src/index.ts","./src/methods.ts","./src/util.ts","./src/methods/plc.ts","./src/methods/web.ts"],"version":"5.6.3"}
|