@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 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;;;;;;;;;;;;;;;;;;;;;;;;;CAa3D"}
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"}
@@ -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
- constructor({ fetch }?: DidWebMethodOptions);
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;CACd,CAAA;AAED,qBAAa,YAAa,YAAW,SAAS,CAAC,KAAK,CAAC;IACnD,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;gBAE5B,EAAE,KAAwB,EAAE,GAAE,mBAAwB;IAI5D,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,EAAE,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;CAc3D;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,OAarD"}
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"}
@@ -1,22 +1,33 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.buildDidWebDocumentUrl = exports.DidWebMethod = void 0;
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
@@ -1 +1 @@
1
- {"version":3,"file":"web.js","sourceRoot":"","sources":["../../src/methods/web.ts"],"names":[],"mappings":";;;AAAA,+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;AAMD,MAAa,YAAY;IAGvB,YAAY,EAAE,KAAK,GAAG,UAAU,CAAC,KAAK,KAA0B,EAAE;QAF/C;;;;;WAAqB;QAGtC,IAAI,CAAC,KAAK,GAAG,IAAA,iBAAS,EAAC,KAAK,CAAC,CAAA;IAC/B,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,GAAe,EAAE,OAA2B;QACxD,MAAM,cAAc,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAA;QAElD,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;AArBD,oCAqBC;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;AAbD,wDAaC"}
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",
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.0",
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.2"
32
+ "@atproto/did": "0.1.3"
33
33
  },
34
34
  "devDependencies": {
35
- "typescript": "^5.3.3"
35
+ "typescript": "^5.6.3"
36
36
  },
37
37
  "scripts": {
38
38
  "build": "tsc --build tsconfig.build.json"
@@ -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({ fetch = globalThis.fetch }: DidWebMethodOptions = {}) {
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"}