@atproto/identity 0.4.3 → 0.4.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,22 @@
1
1
  # @atproto/identity
2
2
 
3
+ ## 0.4.5
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies [[`1abfd74ec`](https://github.com/bluesky-social/atproto/commit/1abfd74ec7114e5d8e2411f7a4fa10bdce97e277)]:
8
+ - @atproto/crypto@0.4.3
9
+
10
+ ## 0.4.4
11
+
12
+ ### Patch Changes
13
+
14
+ - [#3177](https://github.com/bluesky-social/atproto/pull/3177) [`72eba67af`](https://github.com/bluesky-social/atproto/commit/72eba67af1af8320b5400bcb9319d5c3c8407d99) Thanks [@matthieusieben](https://github.com/matthieusieben)! - Remove dependency on Axios
15
+
16
+ - Updated dependencies [[`72eba67af`](https://github.com/bluesky-social/atproto/commit/72eba67af1af8320b5400bcb9319d5c3c8407d99), [`72eba67af`](https://github.com/bluesky-social/atproto/commit/72eba67af1af8320b5400bcb9319d5c3c8407d99)]:
17
+ - @atproto/common-web@0.3.2
18
+ - @atproto/crypto@0.4.2
19
+
3
20
  ## 0.4.3
4
21
 
5
22
  ### Patch Changes
@@ -1,5 +1,5 @@
1
- import BaseResolver from './base-resolver';
2
1
  import { DidCache } from '../types';
2
+ import BaseResolver from './base-resolver';
3
3
  export declare class DidPlcResolver extends BaseResolver {
4
4
  plcUrl: string;
5
5
  timeout: number;
@@ -1 +1 @@
1
- {"version":3,"file":"plc-resolver.d.ts","sourceRoot":"","sources":["../../src/did/plc-resolver.ts"],"names":[],"mappings":"AACA,OAAO,YAAY,MAAM,iBAAiB,CAAA;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AAEnC,qBAAa,cAAe,SAAQ,YAAY;IAErC,MAAM,EAAE,MAAM;IACd,OAAO,EAAE,MAAM;IACf,KAAK,CAAC,EAAE,QAAQ;gBAFhB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,QAAQ,YAAA;IAKnB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAapD"}
1
+ {"version":3,"file":"plc-resolver.d.ts","sourceRoot":"","sources":["../../src/did/plc-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AACnC,OAAO,YAAY,MAAM,iBAAiB,CAAA;AAG1C,qBAAa,cAAe,SAAQ,YAAY;IAErC,MAAM,EAAE,MAAM;IACd,OAAO,EAAE,MAAM;IACf,KAAK,CAAC,EAAE,QAAQ;gBAFhB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,QAAQ,YAAA;IAKnB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAmBpD"}
@@ -1,34 +1,11 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
26
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
4
  };
28
5
  Object.defineProperty(exports, "__esModule", { value: true });
29
6
  exports.DidPlcResolver = void 0;
30
- const axios_1 = __importStar(require("axios"));
31
7
  const base_resolver_1 = __importDefault(require("./base-resolver"));
8
+ const util_1 = require("./util");
32
9
  class DidPlcResolver extends base_resolver_1.default {
33
10
  constructor(plcUrl, timeout, cache) {
34
11
  super(cache);
@@ -52,18 +29,21 @@ class DidPlcResolver extends base_resolver_1.default {
52
29
  });
53
30
  }
54
31
  async resolveNoCheck(did) {
55
- try {
56
- const res = await axios_1.default.get(`${this.plcUrl}/${encodeURIComponent(did)}`, {
57
- timeout: this.timeout,
32
+ return (0, util_1.timed)(this.timeout, async (signal) => {
33
+ const url = new URL(`/${encodeURIComponent(did)}`, this.plcUrl);
34
+ const res = await fetch(url, {
35
+ redirect: 'error',
36
+ headers: { accept: 'application/did+ld+json,application/json' },
37
+ signal,
58
38
  });
59
- return res.data;
60
- }
61
- catch (err) {
62
- if (err instanceof axios_1.AxiosError && err.response?.status === 404) {
63
- return null; // Positively not found, versus due to e.g. network error
39
+ // Positively not found, versus due to e.g. network error
40
+ if (res.status === 404)
41
+ return null;
42
+ if (!res.ok) {
43
+ throw Object.assign(new Error(res.statusText), { status: res.status });
64
44
  }
65
- throw err;
66
- }
45
+ return res.json();
46
+ });
67
47
  }
68
48
  }
69
49
  exports.DidPlcResolver = DidPlcResolver;
@@ -1 +1 @@
1
- {"version":3,"file":"plc-resolver.js","sourceRoot":"","sources":["../../src/did/plc-resolver.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAyC;AACzC,oEAA0C;AAG1C,MAAa,cAAe,SAAQ,uBAAY;IAC9C,YACS,MAAc,EACd,OAAe,EACf,KAAgB;QAEvB,KAAK,CAAC,KAAK,CAAC,CAAA;QAJZ;;;;mBAAO,MAAM;WAAQ;QACrB;;;;mBAAO,OAAO;WAAQ;QACtB;;;;mBAAO,KAAK;WAAW;IAGzB,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,GAAW;QAC9B,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,eAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,kBAAkB,CAAC,GAAG,CAAC,EAAE,EAAE;gBACvE,OAAO,EAAE,IAAI,CAAC,OAAO;aACtB,CAAC,CAAA;YACF,OAAO,GAAG,CAAC,IAAI,CAAA;QACjB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,kBAAU,IAAI,GAAG,CAAC,QAAQ,EAAE,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC9D,OAAO,IAAI,CAAA,CAAC,yDAAyD;YACvE,CAAC;YACD,MAAM,GAAG,CAAA;QACX,CAAC;IACH,CAAC;CACF;AAtBD,wCAsBC"}
1
+ {"version":3,"file":"plc-resolver.js","sourceRoot":"","sources":["../../src/did/plc-resolver.ts"],"names":[],"mappings":";;;;;;AACA,oEAA0C;AAC1C,iCAA8B;AAE9B,MAAa,cAAe,SAAQ,uBAAY;IAC9C,YACS,MAAc,EACd,OAAe,EACf,KAAgB;QAEvB,KAAK,CAAC,KAAK,CAAC,CAAA;QAJZ;;;;mBAAO,MAAM;WAAQ;QACrB;;;;mBAAO,OAAO;WAAQ;QACtB;;;;mBAAO,KAAK;WAAW;IAGzB,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,GAAW;QAC9B,OAAO,IAAA,YAAK,EAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;YAC1C,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,kBAAkB,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;YAC/D,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBAC3B,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,EAAE,MAAM,EAAE,0CAA0C,EAAE;gBAC/D,MAAM;aACP,CAAC,CAAA;YAEF,yDAAyD;YACzD,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG;gBAAE,OAAO,IAAI,CAAA;YAEnC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;gBACZ,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAA;YACxE,CAAC;YAED,OAAO,GAAG,CAAC,IAAI,EAAE,CAAA;QACnB,CAAC,CAAC,CAAA;IACJ,CAAC;CACF;AA5BD,wCA4BC"}
@@ -0,0 +1,2 @@
1
+ export declare function timed<F extends (signal: AbortSignal) => unknown>(ms: number, fn: F): Promise<Awaited<ReturnType<F>>>;
2
+ //# sourceMappingURL=util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../src/did/util.ts"],"names":[],"mappings":"AAAA,wBAAsB,KAAK,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,WAAW,KAAK,OAAO,EACpE,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,CAAC,GACJ,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAWjC"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.timed = timed;
4
+ async function timed(ms, fn) {
5
+ const abortController = new AbortController();
6
+ const timer = setTimeout(() => abortController.abort(), ms);
7
+ const signal = abortController.signal;
8
+ try {
9
+ return (await fn(signal));
10
+ }
11
+ finally {
12
+ clearTimeout(timer);
13
+ abortController.abort();
14
+ }
15
+ }
16
+ //# sourceMappingURL=util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/did/util.ts"],"names":[],"mappings":";;AAAA,sBAcC;AAdM,KAAK,UAAU,KAAK,CACzB,EAAU,EACV,EAAK;IAEL,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAA;IAC7C,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,CAAA;IAC3D,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAA;IAErC,IAAI,CAAC;QACH,OAAO,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAA2B,CAAA;IACrD,CAAC;YAAS,CAAC;QACT,YAAY,CAAC,KAAK,CAAC,CAAA;QACnB,eAAe,CAAC,KAAK,EAAE,CAAA;IACzB,CAAC;AACH,CAAC"}
@@ -1,5 +1,5 @@
1
- import BaseResolver from './base-resolver';
2
1
  import { DidCache } from '../types';
2
+ import BaseResolver from './base-resolver';
3
3
  export declare const DOC_PATH = "/.well-known/did.json";
4
4
  export declare class DidWebResolver extends BaseResolver {
5
5
  timeout: number;
@@ -1 +1 @@
1
- {"version":3,"file":"web-resolver.d.ts","sourceRoot":"","sources":["../../src/did/web-resolver.ts"],"names":[],"mappings":"AACA,OAAO,YAAY,MAAM,iBAAiB,CAAA;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AAGnC,eAAO,MAAM,QAAQ,0BAA0B,CAAA;AAE/C,qBAAa,cAAe,SAAQ,YAAY;IAErC,OAAO,EAAE,MAAM;IACf,KAAK,CAAC,EAAE,QAAQ;gBADhB,OAAO,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,QAAQ,YAAA;IAKnB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAgCpD"}
1
+ {"version":3,"file":"web-resolver.d.ts","sourceRoot":"","sources":["../../src/did/web-resolver.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AACnC,OAAO,YAAY,MAAM,iBAAiB,CAAA;AAG1C,eAAO,MAAM,QAAQ,0BAA0B,CAAA;AAE/C,qBAAa,cAAe,SAAQ,YAAY;IAErC,OAAO,EAAE,MAAM;IACf,KAAK,CAAC,EAAE,QAAQ;gBADhB,OAAO,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,QAAQ,YAAA;IAKnB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAgCpD"}
@@ -1,35 +1,12 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
26
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
4
  };
28
5
  Object.defineProperty(exports, "__esModule", { value: true });
29
6
  exports.DidWebResolver = exports.DOC_PATH = void 0;
30
- const axios_1 = __importStar(require("axios"));
31
- const base_resolver_1 = __importDefault(require("./base-resolver"));
32
7
  const errors_1 = require("../errors");
8
+ const base_resolver_1 = __importDefault(require("./base-resolver"));
9
+ const util_1 = require("./util");
33
10
  exports.DOC_PATH = '/.well-known/did.json';
34
11
  class DidWebResolver extends base_resolver_1.default {
35
12
  constructor(timeout, cache) {
@@ -66,19 +43,17 @@ class DidWebResolver extends base_resolver_1.default {
66
43
  if (url.hostname === 'localhost') {
67
44
  url.protocol = 'http';
68
45
  }
69
- try {
70
- const res = await axios_1.default.get(url.toString(), {
71
- responseType: 'json',
72
- timeout: this.timeout,
46
+ return (0, util_1.timed)(this.timeout, async (signal) => {
47
+ const res = await fetch(url, {
48
+ signal,
49
+ redirect: 'error',
50
+ headers: { accept: 'application/did+ld+json,application/json' },
73
51
  });
74
- return res.data;
75
- }
76
- catch (err) {
77
- if (err instanceof axios_1.AxiosError && err.response) {
78
- return null; // Positively not found, versus due to e.g. network error
79
- }
80
- throw err;
81
- }
52
+ // Positively not found, versus due to e.g. network error
53
+ if (!res.ok)
54
+ return null;
55
+ return res.json();
56
+ });
82
57
  }
83
58
  }
84
59
  exports.DidWebResolver = DidWebResolver;
@@ -1 +1 @@
1
- {"version":3,"file":"web-resolver.js","sourceRoot":"","sources":["../../src/did/web-resolver.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAyC;AACzC,oEAA0C;AAE1C,sCAA+E;AAElE,QAAA,QAAQ,GAAG,uBAAuB,CAAA;AAE/C,MAAa,cAAe,SAAQ,uBAAY;IAC9C,YACS,OAAe,EACf,KAAgB;QAEvB,KAAK,CAAC,KAAK,CAAC,CAAA;QAHZ;;;;mBAAO,OAAO;WAAQ;QACtB;;;;mBAAO,KAAK;WAAW;IAGzB,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,GAAW;QAC9B,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAClD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAA;QACzD,IAAI,IAAY,CAAA;QAChB,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,MAAM,IAAI,gCAAuB,CAAC,GAAG,CAAC,CAAA;QACxC,CAAC;aAAM,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,gBAAQ,CAAA;QAC5B,CAAC;aAAM,CAAC;YACN,sEAAsE;YACtE,sCAAsC;YACtC,MAAM,IAAI,mCAA0B,CAAC,GAAG,CAAC,CAAA;QAC3C,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC,CAAA;QACtC,IAAI,GAAG,CAAC,QAAQ,KAAK,WAAW,EAAE,CAAC;YACjC,GAAG,CAAC,QAAQ,GAAG,MAAM,CAAA;QACvB,CAAC;QAED,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,eAAK,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE;gBAC1C,YAAY,EAAE,MAAM;gBACpB,OAAO,EAAE,IAAI,CAAC,OAAO;aACtB,CAAC,CAAA;YACF,OAAO,GAAG,CAAC,IAAI,CAAA;QACjB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,kBAAU,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;gBAC9C,OAAO,IAAI,CAAA,CAAC,yDAAyD;YACvE,CAAC;YACD,MAAM,GAAG,CAAA;QACX,CAAC;IACH,CAAC;CACF;AAxCD,wCAwCC"}
1
+ {"version":3,"file":"web-resolver.js","sourceRoot":"","sources":["../../src/did/web-resolver.ts"],"names":[],"mappings":";;;;;;AAAA,sCAA+E;AAE/E,oEAA0C;AAC1C,iCAA8B;AAEjB,QAAA,QAAQ,GAAG,uBAAuB,CAAA;AAE/C,MAAa,cAAe,SAAQ,uBAAY;IAC9C,YACS,OAAe,EACf,KAAgB;QAEvB,KAAK,CAAC,KAAK,CAAC,CAAA;QAHZ;;;;mBAAO,OAAO;WAAQ;QACtB;;;;mBAAO,KAAK;WAAW;IAGzB,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,GAAW;QAC9B,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAClD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAA;QACzD,IAAI,IAAY,CAAA;QAChB,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,MAAM,IAAI,gCAAuB,CAAC,GAAG,CAAC,CAAA;QACxC,CAAC;aAAM,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,gBAAQ,CAAA;QAC5B,CAAC;aAAM,CAAC;YACN,sEAAsE;YACtE,sCAAsC;YACtC,MAAM,IAAI,mCAA0B,CAAC,GAAG,CAAC,CAAA;QAC3C,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC,CAAA;QACtC,IAAI,GAAG,CAAC,QAAQ,KAAK,WAAW,EAAE,CAAC;YACjC,GAAG,CAAC,QAAQ,GAAG,MAAM,CAAA;QACvB,CAAC;QAED,OAAO,IAAA,YAAK,EAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;YAC1C,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBAC3B,MAAM;gBACN,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,EAAE,MAAM,EAAE,0CAA0C,EAAE;aAChE,CAAC,CAAA;YAEF,yDAAyD;YACzD,IAAI,CAAC,GAAG,CAAC,EAAE;gBAAE,OAAO,IAAI,CAAA;YAExB,OAAO,GAAG,CAAC,IAAI,EAAE,CAAA;QACnB,CAAC,CAAC,CAAA;IACJ,CAAC;CACF;AAxCD,wCAwCC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atproto/identity",
3
- "version": "0.4.3",
3
+ "version": "0.4.5",
4
4
  "license": "MIT",
5
5
  "description": "Library for decentralized identities in atproto using DIDs and handles",
6
6
  "keywords": [
@@ -17,9 +17,8 @@
17
17
  "main": "dist/index.js",
18
18
  "types": "dist/index.d.ts",
19
19
  "dependencies": {
20
- "axios": "^0.27.2",
21
- "@atproto/common-web": "^0.3.1",
22
- "@atproto/crypto": "^0.4.2"
20
+ "@atproto/common-web": "^0.3.2",
21
+ "@atproto/crypto": "^0.4.3"
23
22
  },
24
23
  "devDependencies": {
25
24
  "@did-plc/lib": "^0.0.1",
@@ -1,6 +1,6 @@
1
- import axios, { AxiosError } from 'axios'
2
- import BaseResolver from './base-resolver'
3
1
  import { DidCache } from '../types'
2
+ import BaseResolver from './base-resolver'
3
+ import { timed } from './util'
4
4
 
5
5
  export class DidPlcResolver extends BaseResolver {
6
6
  constructor(
@@ -12,16 +12,22 @@ export class DidPlcResolver extends BaseResolver {
12
12
  }
13
13
 
14
14
  async resolveNoCheck(did: string): Promise<unknown> {
15
- try {
16
- const res = await axios.get(`${this.plcUrl}/${encodeURIComponent(did)}`, {
17
- timeout: this.timeout,
15
+ return timed(this.timeout, async (signal) => {
16
+ const url = new URL(`/${encodeURIComponent(did)}`, this.plcUrl)
17
+ const res = await fetch(url, {
18
+ redirect: 'error',
19
+ headers: { accept: 'application/did+ld+json,application/json' },
20
+ signal,
18
21
  })
19
- return res.data
20
- } catch (err) {
21
- if (err instanceof AxiosError && err.response?.status === 404) {
22
- return null // Positively not found, versus due to e.g. network error
22
+
23
+ // Positively not found, versus due to e.g. network error
24
+ if (res.status === 404) return null
25
+
26
+ if (!res.ok) {
27
+ throw Object.assign(new Error(res.statusText), { status: res.status })
23
28
  }
24
- throw err
25
- }
29
+
30
+ return res.json()
31
+ })
26
32
  }
27
33
  }
@@ -0,0 +1,15 @@
1
+ export async function timed<F extends (signal: AbortSignal) => unknown>(
2
+ ms: number,
3
+ fn: F,
4
+ ): Promise<Awaited<ReturnType<F>>> {
5
+ const abortController = new AbortController()
6
+ const timer = setTimeout(() => abortController.abort(), ms)
7
+ const signal = abortController.signal
8
+
9
+ try {
10
+ return (await fn(signal)) as Awaited<ReturnType<F>>
11
+ } finally {
12
+ clearTimeout(timer)
13
+ abortController.abort()
14
+ }
15
+ }
@@ -1,7 +1,7 @@
1
- import axios, { AxiosError } from 'axios'
2
- import BaseResolver from './base-resolver'
3
- import { DidCache } from '../types'
4
1
  import { PoorlyFormattedDidError, UnsupportedDidWebPathError } from '../errors'
2
+ import { DidCache } from '../types'
3
+ import BaseResolver from './base-resolver'
4
+ import { timed } from './util'
5
5
 
6
6
  export const DOC_PATH = '/.well-known/did.json'
7
7
 
@@ -32,17 +32,17 @@ export class DidWebResolver extends BaseResolver {
32
32
  url.protocol = 'http'
33
33
  }
34
34
 
35
- try {
36
- const res = await axios.get(url.toString(), {
37
- responseType: 'json',
38
- timeout: this.timeout,
35
+ return timed(this.timeout, async (signal) => {
36
+ const res = await fetch(url, {
37
+ signal,
38
+ redirect: 'error',
39
+ headers: { accept: 'application/did+ld+json,application/json' },
39
40
  })
40
- return res.data
41
- } catch (err) {
42
- if (err instanceof AxiosError && err.response) {
43
- return null // Positively not found, versus due to e.g. network error
44
- }
45
- throw err
46
- }
41
+
42
+ // Positively not found, versus due to e.g. network error
43
+ if (!res.ok) return null
44
+
45
+ return res.json()
46
+ })
47
47
  }
48
48
  }
@@ -1 +1 @@
1
- {"root":["./src/errors.ts","./src/id-resolver.ts","./src/index.ts","./src/types.ts","./src/did/atproto-data.ts","./src/did/base-resolver.ts","./src/did/did-resolver.ts","./src/did/index.ts","./src/did/memory-cache.ts","./src/did/plc-resolver.ts","./src/did/web-resolver.ts","./src/handle/index.ts"],"version":"5.6.3"}
1
+ {"root":["./src/errors.ts","./src/id-resolver.ts","./src/index.ts","./src/types.ts","./src/did/atproto-data.ts","./src/did/base-resolver.ts","./src/did/did-resolver.ts","./src/did/index.ts","./src/did/memory-cache.ts","./src/did/plc-resolver.ts","./src/did/util.ts","./src/did/web-resolver.ts","./src/handle/index.ts"],"version":"5.6.3"}