@atproto-labs/handle-resolver 0.2.0 → 0.3.1

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,24 @@
1
1
  # @atproto-labs/handle-resolver
2
2
 
3
+ ## 0.3.1
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies [[`f9dc9aa4c`](https://github.com/bluesky-social/atproto/commit/f9dc9aa4c9eaf2f82d140fbf011a9015e7f1a00d), [`f9dc9aa4c`](https://github.com/bluesky-social/atproto/commit/f9dc9aa4c9eaf2f82d140fbf011a9015e7f1a00d), [`f9dc9aa4c`](https://github.com/bluesky-social/atproto/commit/f9dc9aa4c9eaf2f82d140fbf011a9015e7f1a00d), [`f9dc9aa4c`](https://github.com/bluesky-social/atproto/commit/f9dc9aa4c9eaf2f82d140fbf011a9015e7f1a00d), [`f9dc9aa4c`](https://github.com/bluesky-social/atproto/commit/f9dc9aa4c9eaf2f82d140fbf011a9015e7f1a00d), [`f9dc9aa4c`](https://github.com/bluesky-social/atproto/commit/f9dc9aa4c9eaf2f82d140fbf011a9015e7f1a00d)]:
8
+ - @atproto/did@0.2.0
9
+ - @atproto-labs/simple-store@0.3.0
10
+ - @atproto-labs/simple-store-memory@0.1.4
11
+
12
+ ## 0.3.0
13
+
14
+ ### Minor Changes
15
+
16
+ - [#3977](https://github.com/bluesky-social/atproto/pull/3977) [`9dac8b0c6`](https://github.com/bluesky-social/atproto/commit/9dac8b0c600520ecb0066ac104787b27668dea47) Thanks [@matthieusieben](https://github.com/matthieusieben)! - Use `HandleResolverError` instances instead of `TypeError`
17
+
18
+ ### Patch Changes
19
+
20
+ - [#3977](https://github.com/bluesky-social/atproto/pull/3977) [`9dac8b0c6`](https://github.com/bluesky-social/atproto/commit/9dac8b0c600520ecb0066ac104787b27668dea47) Thanks [@matthieusieben](https://github.com/matthieusieben)! - Export `asResolvedHandle` utility
21
+
3
22
  ## 0.2.0
4
23
 
5
24
  ### Minor Changes
@@ -1 +1 @@
1
- {"version":3,"file":"atproto-doh-handle-resolver.d.ts","sourceRoot":"","sources":["../src/atproto-doh-handle-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,4BAA4B,EAC7B,MAAM,8BAA8B,CAAA;AAErC,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAE3C,MAAM,MAAM,+BAA+B,GAAG,IAAI,CAChD,4BAA4B,EAC5B,YAAY,GAAG,oBAAoB,CACpC,GAAG;IACF,WAAW,EAAE,MAAM,GAAG,GAAG,CAAA;CAC1B,CAAA;AAED,qBAAa,wBACX,SAAQ,qBACR,YAAW,cAAc;gBAEb,OAAO,EAAE,+BAA+B;CAOrD"}
1
+ {"version":3,"file":"atproto-doh-handle-resolver.d.ts","sourceRoot":"","sources":["../src/atproto-doh-handle-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,4BAA4B,EAC7B,MAAM,8BAA8B,CAAA;AAGrC,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAE3C,MAAM,MAAM,+BAA+B,GAAG,IAAI,CAChD,4BAA4B,EAC5B,YAAY,GAAG,oBAAoB,CACpC,GAAG;IACF,WAAW,EAAE,MAAM,GAAG,GAAG,CAAA;CAC1B,CAAA;AAED,qBAAa,wBACX,SAAQ,qBACR,YAAW,cAAc;gBAEb,OAAO,EAAE,+BAA+B;CAOrD"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AtprotoDohHandleResolver = void 0;
4
4
  const atproto_handle_resolver_js_1 = require("./atproto-handle-resolver.js");
5
+ const handle_resolver_error_js_1 = require("./handle-resolver-error.js");
5
6
  class AtprotoDohHandleResolver extends atproto_handle_resolver_js_1.AtprotoHandleResolver {
6
7
  constructor(options) {
7
8
  super({
@@ -36,10 +37,10 @@ function dohResolveTxtFactory({ dohEndpoint, fetch = globalThis.fetch, }) {
36
37
  const message = contentType?.startsWith('text/plain')
37
38
  ? await response.text()
38
39
  : `Failed to resolve ${hostname}`;
39
- throw new TypeError(message);
40
+ throw new handle_resolver_error_js_1.HandleResolverError(message);
40
41
  }
41
42
  else if (contentType?.match(/application\/(dns-)?json/i) == null) {
42
- throw new TypeError('Unexpected response from DoH server');
43
+ throw new handle_resolver_error_js_1.HandleResolverError('Unexpected response from DoH server');
43
44
  }
44
45
  const result = asResult(await response.json());
45
46
  return result.Answer?.filter(isAnswerTxt).map(extractTxtData) ?? null;
@@ -72,7 +73,7 @@ function isResult(result) {
72
73
  function asResult(result) {
73
74
  if (isResult(result))
74
75
  return result;
75
- throw new TypeError('Invalid DoH response');
76
+ throw new handle_resolver_error_js_1.HandleResolverError('Invalid DoH response');
76
77
  }
77
78
  function isArrayOf(value, predicate) {
78
79
  return Array.isArray(value) && value.every(predicate);
@@ -1 +1 @@
1
- {"version":3,"file":"atproto-doh-handle-resolver.js","sourceRoot":"","sources":["../src/atproto-doh-handle-resolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"atproto-doh-handle-resolver.js","sourceRoot":"","sources":["../src/atproto-doh-handle-resolver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare class HandleResolverError extends Error {
2
+ name: string;
3
+ }
4
+ //# sourceMappingURL=handle-resolver-error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handle-resolver-error.d.ts","sourceRoot":"","sources":["../src/handle-resolver-error.ts"],"names":[],"mappings":"AAAA,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,IAAI,SAAwB;CAC7B"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HandleResolverError = void 0;
4
+ class HandleResolverError extends Error {
5
+ constructor() {
6
+ super(...arguments);
7
+ Object.defineProperty(this, "name", {
8
+ enumerable: true,
9
+ configurable: true,
10
+ writable: true,
11
+ value: 'HandleResolverError'
12
+ });
13
+ }
14
+ }
15
+ exports.HandleResolverError = HandleResolverError;
16
+ //# sourceMappingURL=handle-resolver-error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handle-resolver-error.js","sourceRoot":"","sources":["../src/handle-resolver-error.ts"],"names":[],"mappings":";;;AAAA,MAAa,mBAAoB,SAAQ,KAAK;IAA9C;;QACE;;;;mBAAO,qBAAqB;WAAA;IAC9B,CAAC;CAAA;AAFD,kDAEC"}
package/dist/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ export * from './handle-resolver-error.js';
1
2
  export * from './types.js';
2
3
  export * from './xrpc-handle-resolver.js';
3
4
  export * from './atproto-doh-handle-resolver.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAG1B,cAAc,2BAA2B,CAAA;AACzC,cAAc,kCAAkC,CAAA;AAChD,cAAc,8BAA8B,CAAA;AAG5C,cAAc,6BAA6B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAA;AAC1C,cAAc,YAAY,CAAA;AAG1B,cAAc,2BAA2B,CAAA;AACzC,cAAc,kCAAkC,CAAA;AAChD,cAAc,8BAA8B,CAAA;AAG5C,cAAc,6BAA6B,CAAA"}
package/dist/index.js CHANGED
@@ -14,6 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./handle-resolver-error.js"), exports);
17
18
  __exportStar(require("./types.js"), exports);
18
19
  // Main Handle Resolvers strategies
19
20
  __exportStar(require("./xrpc-handle-resolver.js"), exports);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA0B;AAE1B,mCAAmC;AACnC,4DAAyC;AACzC,mEAAgD;AAChD,+DAA4C;AAE5C,kCAAkC;AAClC,8DAA2C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6DAA0C;AAC1C,6CAA0B;AAE1B,mCAAmC;AACnC,4DAAyC;AACzC,mEAAgD;AAChD,+DAA4C;AAE5C,kCAAkC;AAClC,8DAA2C"}
package/dist/types.d.ts CHANGED
@@ -12,6 +12,7 @@ export type ResolvedHandle = null | AtprotoDid;
12
12
  * @see {@link https://atproto.com/specs/did#blessed-did-methods}
13
13
  */
14
14
  export declare function isResolvedHandle<T>(value: T): value is T & ResolvedHandle;
15
+ export declare function asResolvedHandle(value: string): ResolvedHandle;
15
16
  export interface HandleResolver {
16
17
  /**
17
18
  * @returns the DID that corresponds to the given handle, or `null` if no DID
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAgB,MAAM,cAAc,CAAA;AACvD,YAAY,EAAE,UAAU,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAA;AAEzE,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,IAAI,GAAG,UAAU,CAAA;AAE9C;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,cAAc,CAEzE;AAED,MAAM,WAAW,cAAc;IAC7B;;;;;;OAMG;IACH,OAAO,CACL,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,cAAc,CAAC,CAAA;CAC3B"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAgB,MAAM,cAAc,CAAA;AACvD,YAAY,EAAE,UAAU,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAA;AAEzE,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,IAAI,GAAG,UAAU,CAAA;AAE9C;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,cAAc,CAEzE;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,CAE9D;AAED,MAAM,WAAW,cAAc;IAC7B;;;;;;OAMG;IACH,OAAO,CACL,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,cAAc,CAAC,CAAA;CAC3B"}
package/dist/types.js CHANGED
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.isResolvedHandle = isResolvedHandle;
4
+ exports.asResolvedHandle = asResolvedHandle;
4
5
  const did_1 = require("@atproto/did");
5
6
  /**
6
7
  * @see {@link https://atproto.com/specs/did#blessed-did-methods}
@@ -8,4 +9,7 @@ const did_1 = require("@atproto/did");
8
9
  function isResolvedHandle(value) {
9
10
  return value === null || (0, did_1.isAtprotoDid)(value);
10
11
  }
12
+ function asResolvedHandle(value) {
13
+ return isResolvedHandle(value) ? value : null;
14
+ }
11
15
  //# sourceMappingURL=types.js.map
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;AAgBA,4CAEC;AAlBD,sCAAuD;AAavD;;GAEG;AACH,SAAgB,gBAAgB,CAAI,KAAQ;IAC1C,OAAO,KAAK,KAAK,IAAI,IAAI,IAAA,kBAAY,EAAC,KAAK,CAAC,CAAA;AAC9C,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;AAgBA,4CAEC;AAED,4CAEC;AAtBD,sCAAuD;AAavD;;GAEG;AACH,SAAgB,gBAAgB,CAAI,KAAQ;IAC1C,OAAO,KAAK,KAAK,IAAI,IAAI,IAAA,kBAAY,EAAC,KAAK,CAAC,CAAA;AAC9C,CAAC;AAED,SAAgB,gBAAgB,CAAC,KAAa;IAC5C,OAAO,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAA;AAC/C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"xrpc-handle-resolver.d.ts","sourceRoot":"","sources":["../src/xrpc-handle-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,cAAc,EAEf,MAAM,YAAY,CAAA;AAEnB,eAAO,MAAM,eAAe;;;;;;;;;EAG1B,CAAA;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC;;;;;OAKG;IACH,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAA;CAChC,CAAA;AAED,qBAAa,kBAAmB,YAAW,cAAc;IACvD;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAA;IAClC,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,UAAU,CAAC,KAAK,CAAA;gBAErC,OAAO,EAAE,GAAG,GAAG,MAAM,EAAE,OAAO,CAAC,EAAE,yBAAyB;IAKzD,OAAO,CAClB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,cAAc,CAAC;CAyC3B"}
1
+ {"version":3,"file":"xrpc-handle-resolver.d.ts","sourceRoot":"","sources":["../src/xrpc-handle-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,cAAc,EAEf,MAAM,YAAY,CAAA;AAEnB,eAAO,MAAM,eAAe;;;;;;;;;EAG1B,CAAA;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC;;;;;OAKG;IACH,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAA;CAChC,CAAA;AAED,qBAAa,kBAAmB,YAAW,cAAc;IACvD;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAA;IAClC,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,UAAU,CAAC,KAAK,CAAA;gBAErC,OAAO,EAAE,GAAG,GAAG,MAAM,EAAE,OAAO,CAAC,EAAE,yBAAyB;IAKzD,OAAO,CAClB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,cAAc,CAAC;CAmD3B"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.XrpcHandleResolver = exports.xrpcErrorSchema = void 0;
4
4
  const zod_1 = require("zod");
5
+ const handle_resolver_error_js_1 = require("./handle-resolver-error.js");
5
6
  const types_js_1 = require("./types.js");
6
7
  exports.xrpcErrorSchema = zod_1.z.object({
7
8
  error: zod_1.z.string(),
@@ -42,18 +43,21 @@ class XrpcHandleResolver {
42
43
  // - 200 OK with { did: NonNullable<ResolvedHandle> }
43
44
  // Any other response is considered unexpected behavior an should throw an error.
44
45
  if (response.status === 400) {
45
- const data = exports.xrpcErrorSchema.parse(payload);
46
+ const { error, data } = exports.xrpcErrorSchema.safeParse(payload);
47
+ if (error) {
48
+ throw new handle_resolver_error_js_1.HandleResolverError(`Invalid response from resolveHandle method: ${error.message}`, { cause: error });
49
+ }
46
50
  if (data.error === 'InvalidRequest' &&
47
51
  data.message === 'Unable to resolve handle') {
48
52
  return null;
49
53
  }
50
54
  }
51
55
  if (!response.ok) {
52
- throw new TypeError('Invalid response from resolveHandle method');
56
+ throw new handle_resolver_error_js_1.HandleResolverError('Invalid status code from resolveHandle method');
53
57
  }
54
58
  const value = payload?.did;
55
59
  if (!(0, types_js_1.isResolvedHandle)(value)) {
56
- throw new TypeError('Invalid DID returned from resolveHandle method');
60
+ throw new handle_resolver_error_js_1.HandleResolverError('Invalid DID returned from resolveHandle method');
57
61
  }
58
62
  return value;
59
63
  }
@@ -1 +1 @@
1
- {"version":3,"file":"xrpc-handle-resolver.js","sourceRoot":"","sources":["../src/xrpc-handle-resolver.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AACvB,yCAKmB;AAEN,QAAA,eAAe,GAAG,OAAC,CAAC,MAAM,CAAC;IACtC,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE;IACjB,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC/B,CAAC,CAAA;AAYF,MAAa,kBAAkB;IAQ7B,YAAY,OAAqB,EAAE,OAAmC;QAPtE;;;WAGG;QACgB;;;;;WAAe;QACf;;;;;WAA8B;QAG/C,IAAI,CAAC,UAAU,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAA;QAClC,IAAI,CAAC,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,UAAU,CAAC,KAAK,CAAA;IACjD,CAAC;IAEM,KAAK,CAAC,OAAO,CAClB,MAAc,EACd,OAA8B;QAE9B,MAAM,GAAG,GAAG,IAAI,GAAG,CACjB,0CAA0C,EAC1C,IAAI,CAAC,UAAU,CAChB,CAAA;QACD,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;QAEtC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE;YAChD,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;YAChD,MAAM,EAAE,OAAO,EAAE,MAAM;YACvB,QAAQ,EAAE,OAAO;SAClB,CAAC,CAAA;QACF,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;QAErC,gCAAgC;QAChC,0FAA0F;QAC1F,qDAAqD;QACrD,iFAAiF;QAEjF,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC5B,MAAM,IAAI,GAAG,uBAAe,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YAC3C,IACE,IAAI,CAAC,KAAK,KAAK,gBAAgB;gBAC/B,IAAI,CAAC,OAAO,KAAK,0BAA0B,EAC3C,CAAC;gBACD,OAAO,IAAI,CAAA;YACb,CAAC;QACH,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,SAAS,CAAC,4CAA4C,CAAC,CAAA;QACnE,CAAC;QAED,MAAM,KAAK,GAAY,OAAO,EAAE,GAAG,CAAA;QAEnC,IAAI,CAAC,IAAA,2BAAgB,EAAC,KAAK,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,SAAS,CAAC,gDAAgD,CAAC,CAAA;QACvE,CAAC;QAED,OAAO,KAAK,CAAA;IACd,CAAC;CACF;AAzDD,gDAyDC"}
1
+ {"version":3,"file":"xrpc-handle-resolver.js","sourceRoot":"","sources":["../src/xrpc-handle-resolver.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AACvB,yEAAgE;AAChE,yCAKmB;AAEN,QAAA,eAAe,GAAG,OAAC,CAAC,MAAM,CAAC;IACtC,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE;IACjB,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC/B,CAAC,CAAA;AAYF,MAAa,kBAAkB;IAQ7B,YAAY,OAAqB,EAAE,OAAmC;QAPtE;;;WAGG;QACgB;;;;;WAAe;QACf;;;;;WAA8B;QAG/C,IAAI,CAAC,UAAU,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAA;QAClC,IAAI,CAAC,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,UAAU,CAAC,KAAK,CAAA;IACjD,CAAC;IAEM,KAAK,CAAC,OAAO,CAClB,MAAc,EACd,OAA8B;QAE9B,MAAM,GAAG,GAAG,IAAI,GAAG,CACjB,0CAA0C,EAC1C,IAAI,CAAC,UAAU,CAChB,CAAA;QACD,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;QAEtC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE;YAChD,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;YAChD,MAAM,EAAE,OAAO,EAAE,MAAM;YACvB,QAAQ,EAAE,OAAO;SAClB,CAAC,CAAA;QACF,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;QAErC,gCAAgC;QAChC,0FAA0F;QAC1F,qDAAqD;QACrD,iFAAiF;QAEjF,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC5B,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,uBAAe,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;YAC1D,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,IAAI,8CAAmB,CAC3B,+CAA+C,KAAK,CAAC,OAAO,EAAE,EAC9D,EAAE,KAAK,EAAE,KAAK,EAAE,CACjB,CAAA;YACH,CAAC;YACD,IACE,IAAI,CAAC,KAAK,KAAK,gBAAgB;gBAC/B,IAAI,CAAC,OAAO,KAAK,0BAA0B,EAC3C,CAAC;gBACD,OAAO,IAAI,CAAA;YACb,CAAC;QACH,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,8CAAmB,CAC3B,+CAA+C,CAChD,CAAA;QACH,CAAC;QAED,MAAM,KAAK,GAAY,OAAO,EAAE,GAAG,CAAA;QAEnC,IAAI,CAAC,IAAA,2BAAgB,EAAC,KAAK,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,8CAAmB,CAC3B,gDAAgD,CACjD,CAAA;QACH,CAAC;QAED,OAAO,KAAK,CAAA;IACd,CAAC;CACF;AAnED,gDAmEC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atproto-labs/handle-resolver",
3
- "version": "0.2.0",
3
+ "version": "0.3.1",
4
4
  "license": "MIT",
5
5
  "description": "Isomorphic ATProto handle to DID resolver",
6
6
  "keywords": [
@@ -29,9 +29,9 @@
29
29
  },
30
30
  "dependencies": {
31
31
  "zod": "^3.23.8",
32
- "@atproto-labs/simple-store": "0.2.0",
33
- "@atproto-labs/simple-store-memory": "0.1.3",
34
- "@atproto/did": "0.1.5"
32
+ "@atproto-labs/simple-store": "0.3.0",
33
+ "@atproto-labs/simple-store-memory": "0.1.4",
34
+ "@atproto/did": "0.2.0"
35
35
  },
36
36
  "devDependencies": {
37
37
  "typescript": "^5.6.3"
@@ -2,6 +2,7 @@ import {
2
2
  AtprotoHandleResolver,
3
3
  AtprotoHandleResolverOptions,
4
4
  } from './atproto-handle-resolver.js'
5
+ import { HandleResolverError } from './handle-resolver-error.js'
5
6
  import { ResolveTxt } from './internal-resolvers/dns-handle-resolver.js'
6
7
  import { HandleResolver } from './types.js'
7
8
 
@@ -53,9 +54,9 @@ function dohResolveTxtFactory({
53
54
  const message = contentType?.startsWith('text/plain')
54
55
  ? await response.text()
55
56
  : `Failed to resolve ${hostname}`
56
- throw new TypeError(message)
57
+ throw new HandleResolverError(message)
57
58
  } else if (contentType?.match(/application\/(dns-)?json/i) == null) {
58
- throw new TypeError('Unexpected response from DoH server')
59
+ throw new HandleResolverError('Unexpected response from DoH server')
59
60
  }
60
61
 
61
62
  const result = asResult(await response.json())
@@ -87,7 +88,7 @@ function isResult(result: unknown): result is Result {
87
88
  }
88
89
  function asResult(result: unknown): Result {
89
90
  if (isResult(result)) return result
90
- throw new TypeError('Invalid DoH response')
91
+ throw new HandleResolverError('Invalid DoH response')
91
92
  }
92
93
 
93
94
  function isArrayOf<T>(
@@ -0,0 +1,3 @@
1
+ export class HandleResolverError extends Error {
2
+ name = 'HandleResolverError'
3
+ }
package/src/index.ts CHANGED
@@ -1,3 +1,4 @@
1
+ export * from './handle-resolver-error.js'
1
2
  export * from './types.js'
2
3
 
3
4
  // Main Handle Resolvers strategies
package/src/types.ts CHANGED
@@ -18,6 +18,10 @@ export function isResolvedHandle<T>(value: T): value is T & ResolvedHandle {
18
18
  return value === null || isAtprotoDid(value)
19
19
  }
20
20
 
21
+ export function asResolvedHandle(value: string): ResolvedHandle {
22
+ return isResolvedHandle(value) ? value : null
23
+ }
24
+
21
25
  export interface HandleResolver {
22
26
  /**
23
27
  * @returns the DID that corresponds to the given handle, or `null` if no DID
@@ -1,4 +1,5 @@
1
1
  import { z } from 'zod'
2
+ import { HandleResolverError } from './handle-resolver-error.js'
2
3
  import {
3
4
  HandleResolver,
4
5
  ResolveHandleOptions,
@@ -57,7 +58,13 @@ export class XrpcHandleResolver implements HandleResolver {
57
58
  // Any other response is considered unexpected behavior an should throw an error.
58
59
 
59
60
  if (response.status === 400) {
60
- const data = xrpcErrorSchema.parse(payload)
61
+ const { error, data } = xrpcErrorSchema.safeParse(payload)
62
+ if (error) {
63
+ throw new HandleResolverError(
64
+ `Invalid response from resolveHandle method: ${error.message}`,
65
+ { cause: error },
66
+ )
67
+ }
61
68
  if (
62
69
  data.error === 'InvalidRequest' &&
63
70
  data.message === 'Unable to resolve handle'
@@ -67,13 +74,17 @@ export class XrpcHandleResolver implements HandleResolver {
67
74
  }
68
75
 
69
76
  if (!response.ok) {
70
- throw new TypeError('Invalid response from resolveHandle method')
77
+ throw new HandleResolverError(
78
+ 'Invalid status code from resolveHandle method',
79
+ )
71
80
  }
72
81
 
73
82
  const value: unknown = payload?.did
74
83
 
75
84
  if (!isResolvedHandle(value)) {
76
- throw new TypeError('Invalid DID returned from resolveHandle method')
85
+ throw new HandleResolverError(
86
+ 'Invalid DID returned from resolveHandle method',
87
+ )
77
88
  }
78
89
 
79
90
  return value
@@ -1 +1 @@
1
- {"root":["./src/atproto-doh-handle-resolver.ts","./src/atproto-handle-resolver.ts","./src/cached-handle-resolver.ts","./src/index.ts","./src/types.ts","./src/xrpc-handle-resolver.ts","./src/internal-resolvers/dns-handle-resolver.ts","./src/internal-resolvers/well-known-handler-resolver.ts"],"version":"5.8.2"}
1
+ {"root":["./src/atproto-doh-handle-resolver.ts","./src/atproto-handle-resolver.ts","./src/cached-handle-resolver.ts","./src/handle-resolver-error.ts","./src/index.ts","./src/types.ts","./src/xrpc-handle-resolver.ts","./src/internal-resolvers/dns-handle-resolver.ts","./src/internal-resolvers/well-known-handler-resolver.ts"],"version":"5.8.2"}