@atproto-labs/handle-resolver-node 0.2.13 → 0.2.15
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 +13 -0
- package/dist/atproto-handle-resolver-node.d.ts +9 -1
- package/dist/atproto-handle-resolver-node.d.ts.map +1 -1
- package/dist/atproto-handle-resolver-node.js +7 -7
- package/dist/atproto-handle-resolver-node.js.map +1 -1
- package/dist/create-handle-resolver-node.d.ts +9 -0
- package/dist/create-handle-resolver-node.d.ts.map +1 -0
- package/dist/create-handle-resolver-node.js +10 -0
- package/dist/create-handle-resolver-node.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# @atproto-labs/handle-resolver-node
|
|
2
2
|
|
|
3
|
+
## 0.2.15
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#5687](https://github.com/bluesky-social/atproto/pull/5687) [`943170b`](https://github.com/bluesky-social/atproto/commit/943170bd390705fbb16920688f8f09ec7078a59b) Thanks [@matthieusieben](https://github.com/matthieusieben)! - Allow speficying a custom `safeFetch` option. The `fetch` option will only be used if no `safeFetch` is provided.
|
|
8
|
+
|
|
9
|
+
## 0.2.14
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- Updated dependencies [[`0e60f3f`](https://github.com/bluesky-social/atproto/commit/0e60f3f007cbd9812975489f0da19bf7613da831)]:
|
|
14
|
+
- @atproto-labs/fetch-node@0.4.3
|
|
15
|
+
|
|
3
16
|
## 0.2.13
|
|
4
17
|
|
|
5
18
|
### Patch Changes
|
|
@@ -13,8 +13,16 @@ export type AtprotoHandleResolverNodeOptions = {
|
|
|
13
13
|
* adds SSRF protection.
|
|
14
14
|
*
|
|
15
15
|
* @default `globalThis.fetch`
|
|
16
|
+
* @note Ignored if {@link AtprotoHandleResolverNodeOptions.safeFetch safeFetch} is provided.
|
|
16
17
|
*/
|
|
17
18
|
fetch?: Fetch;
|
|
19
|
+
/**
|
|
20
|
+
* Allows to provide a custom safe fetch function, which will be used for HTTP
|
|
21
|
+
* requests with SSRF protection and other safety measures applied.
|
|
22
|
+
*
|
|
23
|
+
* @default `safeFetchWrap({ fetch, timeout: 3000, ssrfProtection: true, responseMaxSize: 10 * 1048 })`
|
|
24
|
+
*/
|
|
25
|
+
safeFetch?: Fetch;
|
|
18
26
|
/**
|
|
19
27
|
* Optional observability hook, invoked when handle resolution fails for a
|
|
20
28
|
* non-abort reason (network error, SSRF block, non-2xx response, etc.). The
|
|
@@ -25,6 +33,6 @@ export type AtprotoHandleResolverNodeOptions = {
|
|
|
25
33
|
onError?: HandleResolverErrorHandler;
|
|
26
34
|
};
|
|
27
35
|
export declare class AtprotoHandleResolverNode extends AtprotoHandleResolver implements HandleResolver {
|
|
28
|
-
constructor({ fetch, fallbackNameservers, onError, }?: AtprotoHandleResolverNodeOptions);
|
|
36
|
+
constructor({ fetch, safeFetch, fallbackNameservers, onError, }?: AtprotoHandleResolverNodeOptions);
|
|
29
37
|
}
|
|
30
38
|
//# sourceMappingURL=atproto-handle-resolver-node.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"atproto-handle-resolver-node.d.ts","sourceRoot":"","sources":["../src/atproto-handle-resolver-node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,KAAK,EAAiB,MAAM,0BAA0B,CAAA;AACpE,OAAO,EACL,qBAAqB,EACrB,KAAK,cAAc,EACnB,KAAK,0BAA0B,EAChC,MAAM,+BAA+B,CAAA;AAMtC,MAAM,MAAM,gCAAgC,GAAG;IAC7C;;;OAGG;IACH,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAA;IAE9B
|
|
1
|
+
{"version":3,"file":"atproto-handle-resolver-node.d.ts","sourceRoot":"","sources":["../src/atproto-handle-resolver-node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,KAAK,EAAiB,MAAM,0BAA0B,CAAA;AACpE,OAAO,EACL,qBAAqB,EACrB,KAAK,cAAc,EACnB,KAAK,0BAA0B,EAChC,MAAM,+BAA+B,CAAA;AAMtC,MAAM,MAAM,gCAAgC,GAAG;IAC7C;;;OAGG;IACH,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAA;IAE9B;;;;;;;;OAQG;IACH,KAAK,CAAC,EAAE,KAAK,CAAA;IAEb;;;;;OAKG;IACH,SAAS,CAAC,EAAE,KAAK,CAAA;IAEjB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,0BAA0B,CAAA;CACrC,CAAA;AAED,qBAAa,yBACX,SAAQ,qBACR,YAAW,cAAc;IAEzB,YAAY,EACV,KAAwB,EACxB,SAKE,EACF,mBAAmB,EACnB,OAAO,GACR,GAAE,gCAAqC,EASvC;CACF"}
|
|
@@ -2,14 +2,14 @@ import { safeFetchWrap } from '@atproto-labs/fetch-node';
|
|
|
2
2
|
import { AtprotoHandleResolver, } from '@atproto-labs/handle-resolver';
|
|
3
3
|
import { nodeResolveTxtDefault, nodeResolveTxtFactory, } from './node-resolve-txt-factory.js';
|
|
4
4
|
export class AtprotoHandleResolverNode extends AtprotoHandleResolver {
|
|
5
|
-
constructor({ fetch = globalThis.fetch,
|
|
5
|
+
constructor({ fetch = globalThis.fetch, safeFetch = safeFetchWrap({
|
|
6
|
+
fetch,
|
|
7
|
+
timeout: 3000, // 3 seconds
|
|
8
|
+
ssrfProtection: true,
|
|
9
|
+
responseMaxSize: 10 * 1048, // DID are max 2048 characters, 10kb for safety
|
|
10
|
+
}), fallbackNameservers, onError, } = {}) {
|
|
6
11
|
super({
|
|
7
|
-
fetch:
|
|
8
|
-
fetch,
|
|
9
|
-
timeout: 3000, // 3 seconds
|
|
10
|
-
ssrfProtection: true,
|
|
11
|
-
responseMaxSize: 10 * 1048, // DID are max 2048 characters, 10kb for safety
|
|
12
|
-
}),
|
|
12
|
+
fetch: safeFetch,
|
|
13
13
|
resolveTxt: nodeResolveTxtDefault,
|
|
14
14
|
resolveTxtFallback: fallbackNameservers?.length
|
|
15
15
|
? nodeResolveTxtFactory(fallbackNameservers)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"atproto-handle-resolver-node.js","sourceRoot":"","sources":["../src/atproto-handle-resolver-node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,aAAa,EAAE,MAAM,0BAA0B,CAAA;AACpE,OAAO,EACL,qBAAqB,GAGtB,MAAM,+BAA+B,CAAA;AACtC,OAAO,EACL,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,+BAA+B,CAAA;
|
|
1
|
+
{"version":3,"file":"atproto-handle-resolver-node.js","sourceRoot":"","sources":["../src/atproto-handle-resolver-node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,aAAa,EAAE,MAAM,0BAA0B,CAAA;AACpE,OAAO,EACL,qBAAqB,GAGtB,MAAM,+BAA+B,CAAA;AACtC,OAAO,EACL,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,+BAA+B,CAAA;AAsCtC,MAAM,OAAO,yBACX,SAAQ,qBAAqB;IAG7B,YAAY,EACV,KAAK,GAAG,UAAU,CAAC,KAAK,EACxB,SAAS,GAAG,aAAa,CAAC;QACxB,KAAK;QACL,OAAO,EAAE,IAAI,EAAE,YAAY;QAC3B,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,EAAE,GAAG,IAAI,EAAE,+CAA+C;KAC5E,CAAC,EACF,mBAAmB,EACnB,OAAO,GACR,GAAqC,EAAE;QACtC,KAAK,CAAC;YACJ,KAAK,EAAE,SAAS;YAChB,UAAU,EAAE,qBAAqB;YACjC,kBAAkB,EAAE,mBAAmB,EAAE,MAAM;gBAC7C,CAAC,CAAC,qBAAqB,CAAC,mBAAmB,CAAC;gBAC5C,CAAC,CAAC,SAAS;YACb,OAAO;SACR,CAAC,CAAA;IACJ,CAAC;CACF","sourcesContent":["import { type Fetch, safeFetchWrap } from '@atproto-labs/fetch-node'\nimport {\n AtprotoHandleResolver,\n type HandleResolver,\n type HandleResolverErrorHandler,\n} from '@atproto-labs/handle-resolver'\nimport {\n nodeResolveTxtDefault,\n nodeResolveTxtFactory,\n} from './node-resolve-txt-factory.js'\n\nexport type AtprotoHandleResolverNodeOptions = {\n /**\n * List of backup nameservers to use in case the primary ones fail. Will\n * default to no fallback nameservers.\n */\n fallbackNameservers?: string[]\n\n /**\n * Fetch function to use for HTTP requests. Allows customizing the request\n * behavior, e.g. adding headers, setting a timeout, mocking, etc. The\n * provided fetch function will be wrapped with a safeFetchWrap function that\n * adds SSRF protection.\n *\n * @default `globalThis.fetch`\n * @note Ignored if {@link AtprotoHandleResolverNodeOptions.safeFetch safeFetch} is provided.\n */\n fetch?: Fetch\n\n /**\n * Allows to provide a custom safe fetch function, which will be used for HTTP\n * requests with SSRF protection and other safety measures applied.\n *\n * @default `safeFetchWrap({ fetch, timeout: 3000, ssrfProtection: true, responseMaxSize: 10 * 1048 })`\n */\n safeFetch?: Fetch\n\n /**\n * Optional observability hook, invoked when handle resolution fails for a\n * non-abort reason (network error, SSRF block, non-2xx response, etc.). The\n * resolver still returns `null`; this only exposes the cause for logging or\n * telemetry. Handy for diagnosing why a handle fails to resolve, e.g. when a\n * PDS sits behind a firewall that trips SSRF protection.\n */\n onError?: HandleResolverErrorHandler\n}\n\nexport class AtprotoHandleResolverNode\n extends AtprotoHandleResolver\n implements HandleResolver\n{\n constructor({\n fetch = globalThis.fetch,\n safeFetch = safeFetchWrap({\n fetch,\n timeout: 3000, // 3 seconds\n ssrfProtection: true,\n responseMaxSize: 10 * 1048, // DID are max 2048 characters, 10kb for safety\n }),\n fallbackNameservers,\n onError,\n }: AtprotoHandleResolverNodeOptions = {}) {\n super({\n fetch: safeFetch,\n resolveTxt: nodeResolveTxtDefault,\n resolveTxtFallback: fallbackNameservers?.length\n ? nodeResolveTxtFactory(fallbackNameservers)\n : undefined,\n onError,\n })\n }\n}\n"]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { CachedHandleResolver, type HandleCache, type HandleCacheErrorHandler, type HandleResolver } from '@atproto-labs/handle-resolver';
|
|
2
|
+
import { type AtprotoHandleResolverNodeOptions } from './atproto-handle-resolver-node.js';
|
|
3
|
+
export type CreateHandleResolverNodeOptions = {
|
|
4
|
+
handleResolver?: HandleResolver;
|
|
5
|
+
handleCache?: HandleCache;
|
|
6
|
+
onHandleCacheError?: HandleCacheErrorHandler;
|
|
7
|
+
} & Partial<AtprotoHandleResolverNodeOptions>;
|
|
8
|
+
export declare function createHandleResolverNode(options: CreateHandleResolverNodeOptions): CachedHandleResolver;
|
|
9
|
+
//# sourceMappingURL=create-handle-resolver-node.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-handle-resolver-node.d.ts","sourceRoot":"","sources":["../src/create-handle-resolver-node.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,KAAK,WAAW,EAChB,KAAK,uBAAuB,EAC5B,KAAK,cAAc,EACpB,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAEL,KAAK,gCAAgC,EACtC,MAAM,mCAAmC,CAAA;AAE1C,MAAM,MAAM,+BAA+B,GAAG;IAC5C,cAAc,CAAC,EAAE,cAAc,CAAA;IAC/B,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,kBAAkB,CAAC,EAAE,uBAAuB,CAAA;CAC7C,GAAG,OAAO,CAAC,gCAAgC,CAAC,CAAA;AAE7C,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,+BAA+B,wBAazC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { CachedHandleResolver, } from '@atproto-labs/handle-resolver';
|
|
2
|
+
import { AtprotoHandleResolverNode, } from './atproto-handle-resolver-node.js';
|
|
3
|
+
export function createHandleResolverNode(options) {
|
|
4
|
+
const { handleResolver, handleCache, onHandleCacheError } = options;
|
|
5
|
+
if (handleResolver instanceof CachedHandleResolver && !handleCache) {
|
|
6
|
+
return handleResolver;
|
|
7
|
+
}
|
|
8
|
+
return new CachedHandleResolver(handleResolver ?? new AtprotoHandleResolverNode(options), handleCache, onHandleCacheError);
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=create-handle-resolver-node.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-handle-resolver-node.js","sourceRoot":"","sources":["../src/create-handle-resolver-node.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,GAIrB,MAAM,+BAA+B,CAAA;AACtC,OAAO,EACL,yBAAyB,GAE1B,MAAM,mCAAmC,CAAA;AAQ1C,MAAM,UAAU,wBAAwB,CACtC,OAAwC;IAExC,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,kBAAkB,EAAE,GAAG,OAAO,CAAA;IAEnE,IAAI,cAAc,YAAY,oBAAoB,IAAI,CAAC,WAAW,EAAE,CAAC;QACnE,OAAO,cAAc,CAAA;IACvB,CAAC;IAED,OAAO,IAAI,oBAAoB,CAC7B,cAAc,IAAI,IAAI,yBAAyB,CAAC,OAAO,CAAC,EACxD,WAAW,EACX,kBAAkB,CACnB,CAAA;AACH,CAAC","sourcesContent":["import {\n CachedHandleResolver,\n type HandleCache,\n type HandleCacheErrorHandler,\n type HandleResolver,\n} from '@atproto-labs/handle-resolver'\nimport {\n AtprotoHandleResolverNode,\n type AtprotoHandleResolverNodeOptions,\n} from './atproto-handle-resolver-node.js'\n\nexport type CreateHandleResolverNodeOptions = {\n handleResolver?: HandleResolver\n handleCache?: HandleCache\n onHandleCacheError?: HandleCacheErrorHandler\n} & Partial<AtprotoHandleResolverNodeOptions>\n\nexport function createHandleResolverNode(\n options: CreateHandleResolverNodeOptions,\n) {\n const { handleResolver, handleCache, onHandleCacheError } = options\n\n if (handleResolver instanceof CachedHandleResolver && !handleCache) {\n return handleResolver\n }\n\n return new CachedHandleResolver(\n handleResolver ?? new AtprotoHandleResolverNode(options),\n handleCache,\n onHandleCacheError,\n )\n}\n"]}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mCAAmC,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mCAAmC,CAAA;AACjD,cAAc,kCAAkC,CAAA"}
|
package/dist/index.js
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mCAAmC,CAAA","sourcesContent":["export * from './atproto-handle-resolver-node.js'\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mCAAmC,CAAA;AACjD,cAAc,kCAAkC,CAAA","sourcesContent":["export * from './atproto-handle-resolver-node.js'\nexport * from './create-handle-resolver-node.js'\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atproto-labs/handle-resolver-node",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.15",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "Node specific ATProto handle to DID resolver",
|
|
6
6
|
"keywords": [
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"node": ">=22"
|
|
32
32
|
},
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@atproto-labs/fetch-node": "^0.4.
|
|
34
|
+
"@atproto-labs/fetch-node": "^0.4.3",
|
|
35
35
|
"@atproto-labs/handle-resolver": "^0.4.10",
|
|
36
36
|
"@atproto/did": "^0.5.6"
|
|
37
37
|
},
|