@atproto/identity 0.0.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.
Files changed (65) hide show
  1. package/README.md +3 -0
  2. package/babel.config.js +3 -0
  3. package/build.js +23 -0
  4. package/dist/atp-did.d.ts +14 -0
  5. package/dist/atproto-data.d.ts +7 -0
  6. package/dist/base-resolver.d.ts +16 -0
  7. package/dist/did/atproto-data.d.ts +8 -0
  8. package/dist/did/base-resolver.d.ts +15 -0
  9. package/dist/did/did-resolver.d.ts +8 -0
  10. package/dist/did/index.d.ts +5 -0
  11. package/dist/did/logger.d.ts +2 -0
  12. package/dist/did/memory-cache.d.ts +17 -0
  13. package/dist/did/plc-resolver.d.ts +9 -0
  14. package/dist/did/web-resolver.d.ts +9 -0
  15. package/dist/did-cache.d.ts +8 -0
  16. package/dist/errors.d.ts +21 -0
  17. package/dist/handle/index.d.ts +8 -0
  18. package/dist/id-resolver.d.ts +8 -0
  19. package/dist/identity-resolver.d.ts +8 -0
  20. package/dist/index.d.ts +5 -0
  21. package/dist/index.js +28963 -0
  22. package/dist/index.js.map +7 -0
  23. package/dist/logger.d.ts +2 -0
  24. package/dist/memory-cache.d.ts +18 -0
  25. package/dist/plc-resolver.d.ts +9 -0
  26. package/dist/resolver.d.ts +9 -0
  27. package/dist/src/atp-did.d.ts +14 -0
  28. package/dist/src/errors.d.ts +5 -0
  29. package/dist/src/index.d.ts +4 -0
  30. package/dist/src/logger.d.ts +2 -0
  31. package/dist/src/plc/resolver.d.ts +6 -0
  32. package/dist/src/plc-resolver.d.ts +6 -0
  33. package/dist/src/resolver.d.ts +14 -0
  34. package/dist/src/web/db.d.ts +17 -0
  35. package/dist/src/web/resolver.d.ts +6 -0
  36. package/dist/src/web/server.d.ts +18 -0
  37. package/dist/src/web-resolver.d.ts +6 -0
  38. package/dist/tsconfig.build.tsbuildinfo +1 -0
  39. package/dist/types.d.ts +124 -0
  40. package/dist/web-resolver.d.ts +10 -0
  41. package/jest.config.js +6 -0
  42. package/package.json +40 -0
  43. package/src/did/atproto-data.ts +120 -0
  44. package/src/did/base-resolver.ts +91 -0
  45. package/src/did/did-resolver.ts +33 -0
  46. package/src/did/index.ts +5 -0
  47. package/src/did/memory-cache.ts +55 -0
  48. package/src/did/plc-resolver.ts +27 -0
  49. package/src/did/web-resolver.ts +45 -0
  50. package/src/errors.ts +29 -0
  51. package/src/handle/index.ts +60 -0
  52. package/src/id-resolver.ts +14 -0
  53. package/src/index.ts +5 -0
  54. package/src/types.ts +64 -0
  55. package/test.env +2 -0
  56. package/test.log +4816 -0
  57. package/tests/did-cache.test.ts +103 -0
  58. package/tests/did-resolver.test.ts +116 -0
  59. package/tests/handle-resolver.test.ts +65 -0
  60. package/tests/web/db.ts +65 -0
  61. package/tests/web/server.ts +105 -0
  62. package/tsconfig.build.json +4 -0
  63. package/tsconfig.build.tsbuildinfo +1 -0
  64. package/tsconfig.json +13 -0
  65. package/update-pkg.js +14 -0
@@ -0,0 +1,2 @@
1
+ export declare const logger: import("pino").default.Logger<import("pino").default.LoggerOptions>;
2
+ export default logger;
@@ -0,0 +1,18 @@
1
+ import { DidCache } from './did-cache';
2
+ import { CacheResult, DidDocument } from './types';
3
+ declare type CacheVal = {
4
+ doc: DidDocument;
5
+ updatedAt: number;
6
+ };
7
+ export declare class MemoryCache extends DidCache {
8
+ staleTTL: number;
9
+ maxTTL: number;
10
+ constructor(staleTTL?: number, maxTTL?: number);
11
+ cache: Map<string, CacheVal>;
12
+ cacheDid(did: string, doc: DidDocument): Promise<void>;
13
+ refreshCache(did: string, getDoc: () => Promise<DidDocument | null>): Promise<void>;
14
+ checkCache(did: string): Promise<CacheResult | null>;
15
+ clearEntry(did: string): Promise<void>;
16
+ clear(): Promise<void>;
17
+ }
18
+ export {};
@@ -0,0 +1,9 @@
1
+ import BaseResolver from './base-resolver';
2
+ import { PlcResolverOpts } from './types';
3
+ import { DidCache } from './did-cache';
4
+ export declare class DidPlcResolver extends BaseResolver {
5
+ opts: PlcResolverOpts;
6
+ cache?: DidCache | undefined;
7
+ constructor(opts: PlcResolverOpts, cache?: DidCache | undefined);
8
+ resolveDidNoCheck(did: string): Promise<unknown>;
9
+ }
@@ -0,0 +1,9 @@
1
+ import { DidResolverOpts } from './types';
2
+ import BaseResolver from './base-resolver';
3
+ import { DidCache } from './did-cache';
4
+ export declare class DidResolver extends BaseResolver {
5
+ methods: Record<string, BaseResolver>;
6
+ constructor(opts?: Partial<DidResolverOpts>, cache?: DidCache);
7
+ resolveDidNoCheck(did: string): Promise<unknown>;
8
+ }
9
+ export default DidResolver;
@@ -0,0 +1,14 @@
1
+ import { DIDDocument } from 'did-resolver';
2
+ export declare type AtpData = {
3
+ did: string;
4
+ signingKey: string;
5
+ recoveryKey: string;
6
+ handle: string;
7
+ atpPds: string;
8
+ };
9
+ export declare const getDid: (doc: DIDDocument) => string;
10
+ export declare const getKey: (doc: DIDDocument, id: string) => string | undefined;
11
+ export declare const getHandle: (doc: DIDDocument) => string | undefined;
12
+ export declare const getAtpPds: (doc: DIDDocument) => string | undefined;
13
+ export declare const parseToAtpDocument: (doc: DIDDocument) => Partial<AtpData>;
14
+ export declare const ensureAtpDocument: (doc: DIDDocument) => AtpData;
@@ -0,0 +1,5 @@
1
+ import { DIDResolutionResult } from 'did-resolver';
2
+ export declare const error: (errorType: string) => DIDResolutionResult;
3
+ export declare const notFound: () => DIDResolutionResult;
4
+ export declare const invalidDid: () => DIDResolutionResult;
5
+ export declare const unsupported: () => DIDResolutionResult;
@@ -0,0 +1,4 @@
1
+ export * as web from './web-resolver';
2
+ export * as plc from './plc-resolver';
3
+ export * from './resolver';
4
+ export * from './atp-did';
@@ -0,0 +1,2 @@
1
+ export declare const logger: import("pino").default.Logger<import("pino").default.LoggerOptions>;
2
+ export default logger;
@@ -0,0 +1,6 @@
1
+ import { DIDResolver } from 'did-resolver';
2
+ export declare type PlcResolverOptions = {
3
+ timeout: number;
4
+ plcUrl: string;
5
+ };
6
+ export declare const makeResolver: (opts: PlcResolverOptions) => DIDResolver;
@@ -0,0 +1,6 @@
1
+ import { DIDResolver } from 'did-resolver';
2
+ export declare type PlcResolverOptions = {
3
+ timeout: number;
4
+ plcUrl: string;
5
+ };
6
+ export declare const makeResolver: (opts: PlcResolverOptions) => DIDResolver;
@@ -0,0 +1,14 @@
1
+ import { Resolver, DIDDocument, DIDResolutionOptions, DIDResolutionResult } from 'did-resolver';
2
+ import * as atpDid from './atp-did';
3
+ export declare type DidResolverOptions = {
4
+ timeout: number;
5
+ plcUrl: string;
6
+ };
7
+ export declare class DidResolver {
8
+ resolver: Resolver;
9
+ constructor(opts?: Partial<DidResolverOptions>);
10
+ resolveDid(did: string, options?: DIDResolutionOptions): Promise<DIDResolutionResult>;
11
+ ensureResolveDid(did: string, options?: DIDResolutionOptions): Promise<DIDDocument>;
12
+ resolveAtpData(did: string): Promise<atpDid.AtpData>;
13
+ }
14
+ export declare const resolver: DidResolver;
@@ -0,0 +1,17 @@
1
+ import { DIDDocument } from 'did-resolver';
2
+ interface DidStore {
3
+ put(key: string, val: string): Promise<void>;
4
+ del(key: string): Promise<void>;
5
+ get(key: string): Promise<string>;
6
+ }
7
+ export declare class DidWebDb {
8
+ private store;
9
+ constructor(store: DidStore);
10
+ static persistent(location?: string): DidWebDb;
11
+ static memory(): DidWebDb;
12
+ put(didPath: string, didDoc: DIDDocument): Promise<void>;
13
+ get(didPath: string): Promise<DIDDocument | null>;
14
+ has(didPath: string): Promise<boolean>;
15
+ del(didPath: string): Promise<void>;
16
+ }
17
+ export default DidWebDb;
@@ -0,0 +1,6 @@
1
+ import { DIDResolver } from 'did-resolver';
2
+ export declare const DOC_PATH = "/.well-known/did.json";
3
+ export declare type WebResolverOptions = {
4
+ timeout: number;
5
+ };
6
+ export declare const makeResolver: (opts: WebResolverOptions) => DIDResolver;
@@ -0,0 +1,18 @@
1
+ /// <reference types="node" />
2
+ import express from 'express';
3
+ import http from 'http';
4
+ import { DIDDocument } from 'did-resolver';
5
+ import DidWebDb from './db';
6
+ export declare class DidWebServer {
7
+ port: number;
8
+ private _db;
9
+ _app: express.Application;
10
+ _httpServer: http.Server | null;
11
+ constructor(_app: express.Application, _db: DidWebDb, port: number);
12
+ static create(db: DidWebDb, port: number): DidWebServer;
13
+ getByPath(didPath?: string): Promise<DIDDocument | null>;
14
+ getById(did?: string): Promise<DIDDocument | null>;
15
+ put(didDoc: DIDDocument): Promise<void>;
16
+ delete(didOrDoc: string | DIDDocument): Promise<void>;
17
+ close(): Promise<void>;
18
+ }
@@ -0,0 +1,6 @@
1
+ import { DIDResolver } from 'did-resolver';
2
+ export declare const DOC_PATH = "/.well-known/did.json";
3
+ export declare type WebResolverOptions = {
4
+ timeout: number;
5
+ };
6
+ export declare const makeResolver: (opts: WebResolverOptions) => DIDResolver;
@@ -0,0 +1 @@
1
+ {"program":{"fileNames":["../../../node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/typescript/lib/lib.esnext.d.ts","../../../node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../node_modules/typescript/lib/lib.webworker.d.ts","../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../node_modules/did-resolver/lib/resolver.d.ts","../../../node_modules/one-webcrypto/index.d.ts","../../../node_modules/uint8arrays/types/src/compare.d.ts","../../../node_modules/uint8arrays/types/src/concat.d.ts","../../../node_modules/uint8arrays/types/src/equals.d.ts","../../../node_modules/multiformats/types/src/bases/interface.d.ts","../../../node_modules/multiformats/types/src/bases/base.d.ts","../../../node_modules/uint8arrays/types/src/util/bases.d.ts","../../../node_modules/uint8arrays/types/src/from-string.d.ts","../../../node_modules/uint8arrays/types/src/to-string.d.ts","../../../node_modules/uint8arrays/types/src/xor.d.ts","../../../node_modules/uint8arrays/types/src/index.d.ts","../../crypto/src/random.ts","../../crypto/src/aes.ts","../../crypto/src/const.ts","../../../node_modules/big-integer/biginteger.d.ts","../../crypto/src/p256/encoding.ts","../../../node_modules/@noble/secp256k1/lib/index.d.ts","../../crypto/src/secp256k1/encoding.ts","../../../node_modules/@ucans/core/dist/types/plugins.d.ts","../../../node_modules/@ucans/core/dist/types/capability/super-user.d.ts","../../../node_modules/@ucans/core/dist/types/capability/ability.d.ts","../../../node_modules/@ucans/core/dist/types/capability/resource-pointer.d.ts","../../../node_modules/@ucans/core/dist/types/capability/index.d.ts","../../../node_modules/@ucans/core/dist/types/semver.d.ts","../../../node_modules/@ucans/core/dist/types/attenuation.d.ts","../../../node_modules/@ucans/core/dist/types/types.d.ts","../../../node_modules/@ucans/core/dist/types/token.d.ts","../../../node_modules/@ucans/core/dist/types/verify.d.ts","../../../node_modules/@ucans/core/dist/types/builder.d.ts","../../../node_modules/@ucans/core/dist/types/store.d.ts","../../../node_modules/@ucans/core/dist/types/util.d.ts","../../../node_modules/@ucans/core/dist/types/index.d.ts","../../crypto/src/p256/operations.ts","../../crypto/src/p256/plugin.ts","../../crypto/src/secp256k1/operations.ts","../../crypto/src/secp256k1/plugin.ts","../../crypto/src/plugins.ts","../../crypto/src/did.ts","../../crypto/src/multibase.ts","../../../node_modules/multiformats/types/src/hashes/interface.d.ts","../../../node_modules/multiformats/types/src/hashes/digest.d.ts","../../../node_modules/multiformats/types/src/hashes/hasher.d.ts","../../../node_modules/multiformats/types/src/hashes/sha2.d.ts","../../crypto/src/sha.ts","../../crypto/src/verify.ts","../../crypto/src/p256/keypair.ts","../../crypto/src/secp256k1/keypair.ts","../../crypto/src/index.ts","../src/atp-did.ts","../src/errors.ts","../node_modules/axios/index.d.ts","../src/web-resolver.ts","../src/plc-resolver.ts","../../common/src/check.ts","../../common/src/util.ts","../../common/src/tid.ts","../../../node_modules/multiformats/types/src/cid.d.ts","../../../node_modules/multiformats/types/src/varint.d.ts","../../../node_modules/multiformats/types/src/bytes.d.ts","../../../node_modules/multiformats/types/src/index.d.ts","../../../node_modules/multiformats/types/src/codecs/interface.d.ts","../../../node_modules/multiformats/types/src/block.d.ts","../../../node_modules/multiformats/types/src/codecs/raw.d.ts","../../../node_modules/@ipld/dag-cbor/types/index.d.ts","../../common/src/blocks.ts","../../../node_modules/@types/node/ts4.8/assert.d.ts","../../../node_modules/@types/node/ts4.8/assert/strict.d.ts","../../../node_modules/@types/node/ts4.8/globals.d.ts","../../../node_modules/@types/node/ts4.8/async_hooks.d.ts","../../../node_modules/@types/node/ts4.8/buffer.d.ts","../../../node_modules/@types/node/ts4.8/child_process.d.ts","../../../node_modules/@types/node/ts4.8/cluster.d.ts","../../../node_modules/@types/node/ts4.8/console.d.ts","../../../node_modules/@types/node/ts4.8/constants.d.ts","../../../node_modules/@types/node/ts4.8/crypto.d.ts","../../../node_modules/@types/node/ts4.8/dgram.d.ts","../../../node_modules/@types/node/ts4.8/diagnostics_channel.d.ts","../../../node_modules/@types/node/ts4.8/dns.d.ts","../../../node_modules/@types/node/ts4.8/dns/promises.d.ts","../../../node_modules/@types/node/ts4.8/domain.d.ts","../../../node_modules/@types/node/ts4.8/dom-events.d.ts","../../../node_modules/@types/node/ts4.8/events.d.ts","../../../node_modules/@types/node/ts4.8/fs.d.ts","../../../node_modules/@types/node/ts4.8/fs/promises.d.ts","../../../node_modules/@types/node/ts4.8/http.d.ts","../../../node_modules/@types/node/ts4.8/http2.d.ts","../../../node_modules/@types/node/ts4.8/https.d.ts","../../../node_modules/@types/node/ts4.8/inspector.d.ts","../../../node_modules/@types/node/ts4.8/module.d.ts","../../../node_modules/@types/node/ts4.8/net.d.ts","../../../node_modules/@types/node/ts4.8/os.d.ts","../../../node_modules/@types/node/ts4.8/path.d.ts","../../../node_modules/@types/node/ts4.8/perf_hooks.d.ts","../../../node_modules/@types/node/ts4.8/process.d.ts","../../../node_modules/@types/node/ts4.8/punycode.d.ts","../../../node_modules/@types/node/ts4.8/querystring.d.ts","../../../node_modules/@types/node/ts4.8/readline.d.ts","../../../node_modules/@types/node/ts4.8/readline/promises.d.ts","../../../node_modules/@types/node/ts4.8/repl.d.ts","../../../node_modules/@types/node/ts4.8/stream.d.ts","../../../node_modules/@types/node/ts4.8/stream/promises.d.ts","../../../node_modules/@types/node/ts4.8/stream/consumers.d.ts","../../../node_modules/@types/node/ts4.8/stream/web.d.ts","../../../node_modules/@types/node/ts4.8/string_decoder.d.ts","../../../node_modules/@types/node/ts4.8/test.d.ts","../../../node_modules/@types/node/ts4.8/timers.d.ts","../../../node_modules/@types/node/ts4.8/timers/promises.d.ts","../../../node_modules/@types/node/ts4.8/tls.d.ts","../../../node_modules/@types/node/ts4.8/trace_events.d.ts","../../../node_modules/@types/node/ts4.8/tty.d.ts","../../../node_modules/@types/node/ts4.8/url.d.ts","../../../node_modules/@types/node/ts4.8/util.d.ts","../../../node_modules/@types/node/ts4.8/v8.d.ts","../../../node_modules/@types/node/ts4.8/vm.d.ts","../../../node_modules/@types/node/ts4.8/wasi.d.ts","../../../node_modules/@types/node/ts4.8/worker_threads.d.ts","../../../node_modules/@types/node/ts4.8/zlib.d.ts","../../../node_modules/@types/node/ts4.8/globals.global.d.ts","../../../node_modules/@types/node/ts4.8/index.d.ts","../../../node_modules/pino-abstract-transport/index.d.ts","../../../node_modules/pino-pretty/index.d.ts","../../../node_modules/pino-std-serializers/index.d.ts","../../../node_modules/sonic-boom/types/index.d.ts","../../../node_modules/pino/pino.d.ts","../../common/src/logger.ts","../../../node_modules/zod/lib/helpers/typealiases.d.ts","../../../node_modules/zod/lib/helpers/util.d.ts","../../../node_modules/zod/lib/zoderror.d.ts","../../../node_modules/zod/lib/locales/en.d.ts","../../../node_modules/zod/lib/errors.d.ts","../../../node_modules/zod/lib/helpers/parseutil.d.ts","../../../node_modules/zod/lib/helpers/enumutil.d.ts","../../../node_modules/zod/lib/helpers/errorutil.d.ts","../../../node_modules/zod/lib/helpers/partialutil.d.ts","../../../node_modules/zod/lib/types.d.ts","../../../node_modules/zod/lib/external.d.ts","../../../node_modules/zod/lib/index.d.ts","../../../node_modules/zod/index.d.ts","../../common/src/types.ts","../../common/src/streams.ts","../../common/src/index.ts","../src/logger.ts","../src/resolver.ts","../src/index.ts","../../../node_modules/@babel/types/lib/index.d.ts","../../../node_modules/@types/babel__generator/index.d.ts","../../../node_modules/@babel/parser/typings/babel-parser.d.ts","../../../node_modules/@types/babel__template/index.d.ts","../../../node_modules/@types/babel__traverse/index.d.ts","../../../node_modules/@types/babel__core/index.d.ts","../../../node_modules/@types/bn.js/index.d.ts","../../../node_modules/@types/connect/index.d.ts","../../../node_modules/@types/body-parser/index.d.ts","../../../node_modules/@types/cors/index.d.ts","../../../node_modules/@types/elliptic/index.d.ts","../../../node_modules/@types/range-parser/index.d.ts","../../../node_modules/@types/qs/index.d.ts","../../../node_modules/@types/express-serve-static-core/index.d.ts","../../../node_modules/@types/mime/mime.d.ts","../../../node_modules/@types/mime/index.d.ts","../../../node_modules/@types/serve-static/index.d.ts","../../../node_modules/@types/express/index.d.ts","../../../node_modules/@types/graceful-fs/index.d.ts","../../../node_modules/@types/http-errors/index.d.ts","../../../node_modules/@types/istanbul-lib-coverage/index.d.ts","../../../node_modules/@types/istanbul-lib-report/index.d.ts","../../../node_modules/@types/istanbul-reports/index.d.ts","../../../node_modules/@jest/expect-utils/build/index.d.ts","../../../node_modules/chalk/index.d.ts","../../../node_modules/@sinclair/typebox/typebox.d.ts","../../../node_modules/@jest/schemas/build/index.d.ts","../../../node_modules/pretty-format/build/index.d.ts","../../../node_modules/jest-diff/build/index.d.ts","../../../node_modules/jest-matcher-utils/build/index.d.ts","../../../node_modules/expect/build/index.d.ts","../../../node_modules/@types/jest/index.d.ts","../../../node_modules/@types/json-schema/index.d.ts","../../../node_modules/@types/jsonwebtoken/index.d.ts","../../../node_modules/@types/minimatch/index.d.ts","../../../node_modules/@types/minimist/index.d.ts","../../../node_modules/@types/nodemailer/lib/dkim/index.d.ts","../../../node_modules/@types/nodemailer/lib/mailer/mail-message.d.ts","../../../node_modules/@types/nodemailer/lib/xoauth2/index.d.ts","../../../node_modules/@types/nodemailer/lib/mailer/index.d.ts","../../../node_modules/@types/nodemailer/lib/mime-node/index.d.ts","../../../node_modules/@types/nodemailer/lib/smtp-connection/index.d.ts","../../../node_modules/@types/nodemailer/lib/shared/index.d.ts","../../../node_modules/@types/nodemailer/lib/json-transport/index.d.ts","../../../node_modules/@types/nodemailer/lib/sendmail-transport/index.d.ts","../../../node_modules/@types/nodemailer/lib/ses-transport/index.d.ts","../../../node_modules/@types/nodemailer/lib/smtp-pool/index.d.ts","../../../node_modules/@types/nodemailer/lib/smtp-transport/index.d.ts","../../../node_modules/@types/nodemailer/lib/stream-transport/index.d.ts","../../../node_modules/@types/nodemailer/index.d.ts","../../../node_modules/@types/normalize-package-data/index.d.ts","../../../node_modules/@types/parse-json/index.d.ts","../../../node_modules/pg-types/index.d.ts","../../../node_modules/pg-protocol/dist/messages.d.ts","../../../node_modules/pg-protocol/dist/serializer.d.ts","../../../node_modules/pg-protocol/dist/parser.d.ts","../../../node_modules/pg-protocol/dist/index.d.ts","../../../node_modules/@types/pg/index.d.ts","../../../node_modules/@types/prettier/index.d.ts","../../../node_modules/@types/sharp/index.d.ts","../../../node_modules/@types/stack-utils/index.d.ts","../../../node_modules/@types/yargs-parser/index.d.ts","../../../node_modules/@types/yargs/index.d.ts","../../../node_modules/@types/node/util.d.ts","../../../node_modules/@types/node/index.d.ts","../../../node_modules/@types/node/http.d.ts","../../../node_modules/@types/node/events.d.ts","../../../node_modules/@types/node/fs.d.ts","../../../node_modules/@types/node/stream.d.ts","../../../node_modules/@types/node/net.d.ts","../../../node_modules/@types/node/url.d.ts","../../../node_modules/@types/node/tls.d.ts","../../../node_modules/@types/node/worker_threads.d.ts"],"fileInfos":[{"version":"f20c05dbfe50a208301d2a1da37b9931bce0466eb5a1f4fe240971b4ecc82b67","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","e6b724280c694a9f588847f754198fb96c43d805f065c3a5b28bbc9594541c84","1fc5ab7a764205c68fa10d381b08417795fc73111d6dd16b5b1ed36badb743d9","746d62152361558ea6d6115cf0da4dd10ede041d14882ede3568bce5dc4b4f1f","d11a03592451da2d1065e09e61f4e2a9bf68f780f4f6623c18b57816a9679d17","aea179452def8a6152f98f63b191b84e7cbd69b0e248c91e61fb2e52328abe8c",{"version":"9b087de7268e4efc5f215347a62656663933d63c0b1d7b624913240367b999ea","affectsGlobalScope":true},{"version":"3260e3386d9535b804205bdddb5618a9a27735bd22927f48ad54363abcd23d45","affectsGlobalScope":true},{"version":"adb09ec0a64fc17dbbc4a228b3b18aa5f01db3440a6b0cbb02354df58674d584","affectsGlobalScope":true},{"version":"adb996790133eb33b33aadb9c09f15c2c575e71fb57a62de8bf74dbf59ec7dfb","affectsGlobalScope":true},{"version":"8cc8c5a3bac513368b0157f3d8b31cfdcfe78b56d3724f30f80ed9715e404af8","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"0d5f52b3174bee6edb81260ebcd792692c32c81fd55499d69531496f3f2b25e7","affectsGlobalScope":true},{"version":"55f400eec64d17e888e278f4def2f254b41b89515d3b88ad75d5e05f019daddd","affectsGlobalScope":true},{"version":"181f1784c6c10b751631b24ce60c7f78b20665db4550b335be179217bacc0d5f","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"75ec0bdd727d887f1b79ed6619412ea72ba3c81d92d0787ccb64bab18d261f14","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"81cac4cbc92c0c839c70f8ffb94eb61e2d32dc1c3cf6d95844ca099463cf37ea","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"09aa50414b80c023553090e2f53827f007a301bc34b0495bfb2c3c08ab9ad1eb","affectsGlobalScope":true},{"version":"d7f680a43f8cd12a6b6122c07c54ba40952b0c8aa140dcfcf32eb9e6cb028596","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"775d9c9fd150d5de79e0450f35bc8b8f94ae64e3eb5da12725ff2a649dccc777","affectsGlobalScope":true},{"version":"b248e32ca52e8f5571390a4142558ae4f203ae2f94d5bac38a3084d529ef4e58","affectsGlobalScope":true},{"version":"6c55633c733c8378db65ac3da7a767c3cf2cf3057f0565a9124a16a3a2019e87","affectsGlobalScope":true},{"version":"fb4416144c1bf0323ccbc9afb0ab289c07312214e8820ad17d709498c865a3fe","affectsGlobalScope":true},{"version":"5b0ca94ec819d68d33da516306c15297acec88efeb0ae9e2b39f71dbd9685ef7","affectsGlobalScope":true},{"version":"34c839eaaa6d78c8674ae2c37af2236dee6831b13db7b4ef4df3ec889a04d4f2","affectsGlobalScope":true},{"version":"34478567f8a80171f88f2f30808beb7da15eac0538ae91282dd33dce928d98ed","affectsGlobalScope":true},{"version":"ab7d58e6161a550ff92e5aff755dc37fe896245348332cd5f1e1203479fe0ed1","affectsGlobalScope":true},{"version":"6bda95ea27a59a276e46043b7065b55bd4b316c25e70e29b572958fa77565d43","affectsGlobalScope":true},{"version":"aedb8de1abb2ff1095c153854a6df7deae4a5709c37297f9d6e9948b6806fa66","affectsGlobalScope":true},{"version":"a4da0551fd39b90ca7ce5f68fb55d4dc0c1396d589b612e1902f68ee090aaada","affectsGlobalScope":true},{"version":"11ffe3c281f375fff9ffdde8bbec7669b4dd671905509079f866f2354a788064","affectsGlobalScope":true},{"version":"52d1bb7ab7a3306fd0375c8bff560feed26ed676a5b0457fa8027b563aecb9a4","affectsGlobalScope":true},"899ae98cd217a34bd53b8aefbd51599610165cd27462ece4f7f46508cb8aeda1","59a8559f80757b01df8020ff87833a5c2ad6c59e894eddd49cc97622dbef465f","90cf3b12cd05d01c42193be1cd25af2c8dbef608ae143e5eaacf73cdb99840d2","4e37a214f2cd5a350affba5580d1d7c01ca83da6393ef2c13a66d74fc7b95eac","3157fa89ebde7e5d5499da49d8ae13e523c1de12d5c1285251c17b7672887b1e","930446bf32192f698b78f8ea4b309d8c2cfe02ab5ad78e4db907417405ebf5e7","729b819a6779d842c3a6908ba4ed93d9fe50e2533d989f05f55a4811b3dd9910","e47d9ea931ddade1deee3946884e8dc7aafbf4af74f9ecb85ef77c895100bd39","0841c3aed9354ad025302d5c7cde53916825047646e559d918b62a31500aebe7","7c515715da56f17e695e2c3611cf073d2cebfd417497652b35f9042b7235d5b2","a4942fc385f0368be5a50d7e7280c5c6ad47b082a9eaa0284042c89ce2df9e08","91072b0ddd41ce84a3c85f36cf927f2e7b1724f7ce71accf16715d99bafc113a","cb27a790684e806760b7beb581ef3edff3a77297f64af026603806f6918ff1e4","d7aed3509ea44d62d69f3f3ec8585d6eeaa566d850cc5d0f10c469f81a263696","b86a270598e5424a18bffef7ceadb47d90cba86f0c38e9dfe830cee5b3bc86ec","0656964e2e4e36418ad53e23aebdaa2ee3c4311a8c6ef94db68ee3ecbafd0227","6815c0bc452def44dde51380d4469e8e74a28c4eea685f32c8e9e5f6436e2809","32d21255d0e9e84cf7ec2b6619667f272dd2bf24ab65da803fd0550d978d207e","0fdc843a9a032a1e06dee90d94a488b79de13bb5c56e2f7f842c1f07d257a7a4","121af4f79ad3fbfaab73691f49993c8fe7cbde1070ccf89437f3ba55a48ed6b2","cdbadf00293a858195c3dcfaaf2b961569a3f027718f35020ce3ac8fdd41b8b1","71f362fdc93d1353f8b3f0fd4e4f57ccdd981ee14b283c863803b4870c0fc025","e4442df4980530388fec1176eb3428edb97d7cf25c2e32b3d90873bf6df77068","67e6016a03261e460b9d09b49e6ae948cefdb3a537efc4addd7b6a4e95868908","22b4fa161da217c21e187936b3cbc50c4e96e0bc948e0b3be47d6b7ae167f1a8","1eae169dd0e79a18f4619b215f47ef7aa153fe12ab6d9f5a23f35ffa02fb1bc9","1af7c4b2383db57a24454a4a5b8ec3804322d3f51c2e564ded379813e9c32a9a","de71b3e44a3638cef985a877c15568389a8883380f17e817b1290f1276ec4534","091a86032c6979b663b4f8321526e7aece845ae9e74507973eb4163f827f9101","4431cf4410d8ce7167cae0437f9d414b204e4bc516272ef958a0c1b4506c0c34","b999ceba7b16e9bc59d649b2d8c0c7c2c0b483d5b8fb537096109b33f55d2e78","2c795056013d90c0dd01d5b4e33df6c5cc9799abfe2753e6edf438849a61b2d8","e68dc51e279de76cbf4e7590e05de0ca65071479cc88809bad9c0d35a3b2583c","68ff080d443d7c071d8e98bc0c2a2b7da93a001134e2c828bd629348e817bf7e","81360552fcba984ebc4282ba26d3f954e3b6f78ca5e4b5b18b37ba2f4f2ad26f","e2f57308de18bd25a5592fc9a053bce9c310cac2d6aa5b987379c677eecce8c1","7c5ca8f3cdf144e34fc2883aa41cf917851aa2fa8b48956304d85ebbc94f95cf","dba391c789c85b1d249eb24656e6524d1a0b9a203dca53848365db60a7fcc1fa","2b1c6ff010741ea7928a30985fac52dde420004c4de5b4e123c80db59305811c","1067fc5c43383e77af47043ef8c1591b16e0cae0246a0df3c996d4e49e2e871b","5d3e07dbeabff37885262d9b4bd21c3185d95a09a268ab795f81135046a32bf4","853c5447ea8851049c1d008e130d23030d9fe3b5a8405a0ae7e55b00e173692d","ba0b552579e1bbafd93208f9bc84a61838148bd17f22a8ea55c46eea9c895e7a","2f686fbec43c87bc9b9c3d0e237f780e0e822d2c3a9a25fc99a16030a294b764","74ded0a999b6ee4086ef522b2d21e284f371fdad35c8854552cac8373be9917f","ec8d395c7bd2429646d7bbcefbed1e41bcc4c1593ae414881c93a7168c1657d5","c83579aa7675e2f5fc8fc165c2f388a7cb5d28671505700bdd21e00bf86a91be","4ee7bc8cc4fa77895dd67116799d817669fbd64b7717964a79249edbda00d040","114264aec122d0eae64a1ddba9437cb1bc1d78b774f3a92c0d0f1422e9fea9e1",{"version":"b7a9196d4305ff728c0122bcb9bbf842269bfab11b52a4e511bf2695f913e9c4","signature":"80a96bfe404fd418203469b601639950089652eff0016a83d451970c813a582f"},{"version":"b17f361e1df7932937364f06c135faf3fd2486a4467071004fba83378afa6ffb","signature":"21e6aa412623b925d8e883a4077e5c10bb693f8854bd3c64192b8c531299cf31"},"644c59289eb29590d65062c5b64dda9ef2797ce120071265a9099436f0d41a16",{"version":"79039d021ac053ee6cd6cf06f035333b16e048f298d007402fd4cec10d22a697","signature":"681a5a5dca1da8cb41f90db4b8a79811823bef84bb42f0d60abd0b898e5abe04"},{"version":"d3dad5da531330438c0161f40466b2f709b204a7335013e106cf1b125e79d389","signature":"848145c7bf0f135e944518d5d56a6a16e86406286cc7d008cb1f0b5c31fe238a"},"cb917ce33e6748b02f26f78b00838a77eb5aeedb63914cc60ff74d4d46fe0d2a","f14b59e2caa9ae4d7443b0960ca463bc03dd23c219d3690b57b05d7e3275d1e7","a4c7f74586dafdf53d17e7b022bec236b43c3a52aef698db104ea45faab2af72","7d309fbde13b5e30eff77c07a28b66451b0b50b83564d0cfa6a2a52c8b69aae6","87b44430497cae7542bbd5ac2fb6663df6a465dea7a46be58a49cd9416530439","32b67d761db3999f1e482d0add405b695d3ec5607e07ae4c963a96334c331814","1428847d803b8342711c0b22208df4f83590cce15ef2c8f36ba53cea24f4616d","6bea75e2b9873f7c123ffef3edf16e7c49ff7cefd2756543d51786fb354c3211","ebb7adfc90de5d2001075bfc4b8e2530c7649d1cd219d75589b45cba22d06782","7b684ae75736b26fddc21144deda04c3ae391f95f8eb241ceb23b27096f76963","2cb05bc199aa0aedcedced658aa99b423c2f7e56f11bd301adb6415e8c464696","52aa4cb8a16a1632f7e48beb792744ee02c90c6dbbc1d0cafcf2c9bd7936f2ed","7e771891adaa85b690266bc37bd6eb43bc57eecc4b54693ead36467e7369952a","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"02873d070f9cb79f50833fbf4a9a27ac578a2edf8ddb8421eba1b37faba83bfb","affectsGlobalScope":true},"21a167fec8f933752fb8157f06d28fab6817af3ad9b0bdb1908a10762391eab9",{"version":"c0db280fa6b09d7b8d6720a19a47f485956a41ee0e6914f1b704033eb69c6058","affectsGlobalScope":true},"0c0cee62cb619aed81133b904f644515ba3064487002a7da83fd8aa07b1b4abd","5a94487653355b56018122d92392beb2e5f4a6c63ba5cef83bbe1c99775ef713",{"version":"d5135ad93b33adcce80b18f8065087934cdc1730d63db58562edcf017e1aad9b","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","afcc1c426b76db7ec80e563d4fb0ba9e6bcc6e63c2d7e9342e649dc56d26347f","bb9c4ffa5e6290c6980b63c815cdd1625876dadb2efaf77edbe82984be93e55e","489532ff54b714f0e0939947a1c560e516d3ae93d51d639ab02e907a0e950114","f30bb836526d930a74593f7b0f5c1c46d10856415a8f69e5e2fc3db80371e362","14b5aa23c5d0ae1907bc696ac7b6915d88f7d85799cc0dc2dcf98fbce2c5a67c","5c439dafdc09abe4d6c260a96b822fa0ba5be7203c71a63ab1f1423cd9e838ea",{"version":"6b526a5ec4a401ca7c26cfe6a48e641d8f30af76673bad3b06a1b4504594a960","affectsGlobalScope":true},{"version":"816ad2e607a96de5bcac7d437f843f5afd8957f1fa5eefa6bba8e4ed7ca8fd84","affectsGlobalScope":true},"cec36af22f514322f870e81d30675c78df82ae8bf4863f5fd4e4424c040c678d","d903fafe96674bc0b2ac38a5be4a8fc07b14c2548d1cdb165a80ea24c44c0c54","b01a80007e448d035a16c74b5c95a5405b2e81b12fabcf18b75aa9eb9ef28990","04eb6578a588d6a46f50299b55f30e3a04ef27d0c5a46c57d8fcc211cd530faa","dbe5aa5a5dd8bd1c6a8d11b1310c3f0cdabaacc78a37b394a8c7b14faeb5fb84","2c828a5405191d006115ab34e191b8474bc6c86ffdc401d1a9864b1b6e088a58",{"version":"e8b18c6385ff784228a6f369694fcf1a6b475355ba89090a88de13587a9391d5","affectsGlobalScope":true},"d4ac44f01d42f541631c5fc88d0ed8efac29a3a3ad9a745d9fd58f8b61ed132e","7c013aa892414a7fdcfd861ae524a668eaa3ede8c7c0acafaf611948122c8d93","b0973c3cbcdc59b37bf477731d468696ecaf442593ec51bab497a613a580fe30",{"version":"4989e92ba5b69b182d2caaea6295af52b7dc73a4f7a2e336a676722884e7139d","affectsGlobalScope":true},{"version":"b3624aed92dab6da8484280d3cb3e2f4130ec3f4ef3f8201c95144ae9e898bb6","affectsGlobalScope":true},"5153a2fd150e46ce57bb3f8db1318d33f6ad3261ed70ceeff92281c0608c74a3","210d54cd652ec0fec8c8916e4af59bb341065576ecda039842f9ffb2e908507c","36b03690b628eab08703d63f04eaa89c5df202e5f1edf3989f13ad389cd2c091","0effadd232a20498b11308058e334d3339cc5bf8c4c858393e38d9d4c0013dcf","25846d43937c672bab7e8195f3d881f93495df712ee901860effc109918938cc","3163f47436da41706c6e2b3c1511f3b7cce9f9f3905b2f3e01246c48b4ba7d14","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff","69ee23dd0d215b09907ad30d23f88b7790c93329d1faf31d7835552a10cf7cbf","44b8b584a338b190a59f4f6929d072431950c7bd92ec2694821c11bce180c8a5","23b89798789dffbd437c0c423f5d02d11f9736aea73d6abf16db4f812ff36eda","213fc4f2b172d8beb74b77d7c1b41488d67348066d185e4263470cbb010cd6e8",{"version":"970a90f76d4d219ad60819d61f5994514087ba94c985647a3474a5a3d12714ed","affectsGlobalScope":true},"664d8f2d59164f2e08c543981453893bc7e003e4dfd29651ce09db13e9457980","4c8525f256873c7ba3135338c647eaf0ca7115a1a2805ae2d0056629461186ce","3c13ef48634e7b5012fcf7e8fce7496352c2d779a7201389ca96a2a81ee4314d","5d0a25ec910fa36595f85a67ac992d7a53dd4064a1ba6aea1c9f14ab73a023f2",{"version":"f0900cd5d00fe1263ff41201fb8073dbeb984397e4af3b8002a5c207a30bdc33","affectsGlobalScope":true},{"version":"f7db71191aa7aac5d6bc927ed6e7075c2763d22c7238227ec0c63c8cf5cb6a8b","affectsGlobalScope":true},"06d7c42d256f0ce6afe1b2b6cfbc97ab391f29dadb00dd0ae8e8f23f5bc916c3","ec4bd1b200670fb567920db572d6701ed42a9641d09c4ff6869768c8f81b404c","e59a892d87e72733e2a9ca21611b9beb52977be2696c7ba4b216cbbb9a48f5aa",{"version":"da26af7362f53d122283bc69fed862b9a9fe27e01bc6a69d1d682e0e5a4df3e6","affectsGlobalScope":true},"8a300fa9b698845a1f9c41ecbe2c5966634582a8e2020d51abcace9b55aa959e",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"652ee9c5103e89102d87bc20d167a02a0e3e5e53665674466c8cfea8a9e418c7","0d47fc0aed3e69968b3e168c4f2afba7f02fe81b7d40f34c5fbe4c8ed14222ac","955081e7442259cc2cbf0f7f122bc2fa10387c3c5298a8bd4cd402dbcefce4cf","043e933c8127f2215f940035bfac94354b82a49f419bb77af0045f0c57e6a05e","9d9f4da63084ac107eddda8b4ea92d7ee443e0c86601e8c844943b82fd3ef6f8","bde15a4b72e85c0816548fe37f82ae6fe9a6238e5b60ebe9a9449f9293e2d456","dacf98eb56a73c300285659e07ecc8ca9289c99a506e94ad9685d4728cc1561a","9afae14803f3b7343ed6d193173008715c1fa3421a353a818c805244ed737a84","bb98c05ae5cb9bd7cb7ad76fe517251a661787a6f24337b842f47faf393f79c7","a93bf95f7009c90e7d1edb092560d4052e3ebbe9b9ad2d796bcd95dc4306825c","8485b6da53ec35637d072e516631d25dae53984500de70a6989058f24354666f","ebe80346928736532e4a822154eb77f57ef3389dbe2b3ba4e571366a15448ef2","c2cb3c8ff388781258ea9ddbcd8a947f751bddd6886e1d3b3ea09ddaa895df80","f672c876c1a04a223cf2023b3d91e8a52bb1544c576b81bf64a8fec82be9969c","014b34d4c2ef27191fdf3feabb6557ec92127f813910725b6e79ed9a49e466b6","72efc3e8cee3cb13144cb63bb8aacf28f918439a2ff222de89e0e5d7ba9c7170","b61efb129c7011068cb4ccbbd86d5741ac82653476b09f46d3d06dd99b5b687e","2b7961486503fa279a4f1a52928d8c31fc6558c335b750878721467210552dd7","d1f62988c7e8e8650f7ed39520a766648155abbf75dd89f60e24f069433301d4","5568d7c32e5cf5f35e092649f4e5e168c3114c800b1d7545b7ae5e0415704802","ae7ec9add53f145824f5e169d2c798b3507bebd9326eb3709036a868d2144db6","b97b3071f36975c893f9dd28a0d113482891fd402d3ac787bded362d7d35af67","1953fb9bcb47ec55e148a074c8cf5a5f960560a16733638b3ad9617263b47e17",{"version":"25612592421667faa6b09e01471026d56f5385d13c085432570731d7d8805f69","signature":"25d0df9893c6c7f0421353081826302fdd9d0fe32880e50cdbf20c868b8ade89"},{"version":"30104c99ee146450e7d75d02f283e2dd9aa9c896e44508066323b471f68626b5","signature":"fa19de50ca6ce6a2bba3ced8af537108368ebbec24e2c056b2ad7560cc206e64"},{"version":"9da2a621f41ee9efbe4dcb05864c0caa75e2288dfeab5747d52651e93cf0bdca","signature":"0d1ea23658b19a536b9f1b6bfe626eef94fd360fa136a195bfde15edb21a44f4"},"c561efdf5ba0b62619745d4761fe2d9756f23db972e039367d15922fed67fd2f","cc957354aa3c94c9961ebf46282cfde1e81d107fc5785a61f62c67f1dd3ac2eb","7ec238b220ea991b6643e24191b1f552a65956d5f6de4c6144e700b9985265d8","93de1c6dab503f053efe8d304cb522bb3a89feab8c98f307a674a4fae04773e9","dae3d1adc67ac3dbd1cd471889301339ec439837b5df565982345be20c8fca9a","5426e62886b7be7806312d31a00e8f7dccd6fe63ba9bbefe99ee2eab29cc48a3","01f7828047b5c6703d3c601473618b448f5506a88fcac852638b0715c3abf4eb","6d829824ead8999f87b6df21200df3c6150391b894b4e80662caa462bd48d073","afc559c1b93df37c25aef6b3dfa2d64325b0e112e887ee18bf7e6f4ec383fc90","6fbd58e4015b9ae31ea977d4d549eb24a1102cc798b57ec5d70868b542c06612","b8a427b9fe88504a6fb092e21adfe272d144394a2ced7f9e4adc3de7efa6e216","16d51f964ec125ad2024cf03f0af444b3bc3ec3614d9345cc54d09bab45c9a4c","ba601641fac98c229ccd4a303f747de376d761babb33229bb7153bed9356c9cc",{"version":"ae3fe461989bbd951344efc1f1fe932360ce7392e6126bdb225a82a1bbaf15ee","affectsGlobalScope":true},"5b9ecf7da4d71cf3832dbb8336150fa924631811f488ad4690c2dfec2b4fb1d7","951c85f75aac041dddbedfedf565886a7b494e29ec1532e2a9b4a6180560b50e","f47887b61c6cf2f48746980390d6cb5b8013518951d912cfb37fe748071942be","15c88bfd1b8dc7231ff828ae8df5d955bae5ebca4cf2bcb417af5821e52299ae","3ebae8c00411116a66fca65b08228ea0cf0b72724701f9b854442100aab55aba","f463d61cf39c3a6a5f96cdf7adfdb72a0b1d663f7b5d5b6dd042adba835430c2","8b06ac3faeacb8484d84ddb44571d8f410697f98d7bfa86c0fda60373a9f5215","7eb06594824ada538b1d8b48c3925a83e7db792f47a081a62cf3e5c4e23cf0ee","f5638f7c2f12a9a1a57b5c41b3c1ea7db3876c003bab68e6a57afd6bcc169af0","763e521cf114b80e0dd0e21ca49b9f8ae62e8999555a5e7bade8ce36b33001c2","0d14fa22c41fdc7277e6f71473b20ebc07f40f00e38875142335d5b63cdfc9d2","3e6bbb0883148627ca0854a9f62d820aaf1a0f1842f5568176721fef156b8f23","ffcc5500e77223169833fc6eb59b3a507944a1f89574e0a1276b0ea7fc22c4a4","22f13de9e2fe5f0f4724797abd3d34a1cdd6e47ef81fc4933fea3b8bf4ad524b","e3ba509d3dce019b3190ceb2f3fc88e2610ab717122dabd91a9efaa37804040d","cda0cb09b995489b7f4c57f168cd31b83dcbaa7aad49612734fb3c9c73f6e4f2","f72f8428f3c1caa22e9c247d046603b85b442c0dae7b77a7a0bc092c18867cb7",{"version":"195f63105abc03e72b6a176e3e34dfb5ac932b55db378fdc7874b1617e24b465","affectsGlobalScope":true},"f3e604694b624fa3f83f6684185452992088f5efb2cf136b62474aa106d6f1b6","bb4ed283cfb3db7ec1d4bb79c37f5e96d39b340f1f4de995c4b0b836c8d5fa05","8841e2aa774b89bd23302dede20663306dc1b9902431ac64b24be8b8d0e3f649","209e814e8e71aec74f69686a9506dd7610b97ab59dcee9446266446f72a76d05","bb654d426b82e0846cd4bd7de91d637039ecdfd63c94447373490178f80846fe","db90f54098b237753ac9c846e39cd49aa538dcad07a2e1c68a138f3c0f8e621d","92ad68795c32309fb43576cacb38bd2677deeed38f5730dcd4a8c5e65463ae15","4b16417aab5a4b276fd4a7db95120a8c7b4d49a6d68ddfe075e9f46dcbf22f00","eecb2ea10a1500dcc6bdeff14be1fb43806f63a9b8562e16e1b4fc8baa8dfa8d","221a6ab66d611349faaf80af49c7a34d95623787610fd153fed4da0811abdcae","f3d84d6f83cf131e4db335dc8100898adbeb01dd4cf4e2fe695ab220eac98be4","6521aaade4e1d23cbc4b665083b004aeaca23f3347ba2422f88d1828968a0056","e79130cf2ba010f2b79747bf43b086252ad041b130768331a1144c0a86185877","e9709ed827c40789c669736fc78e2ab603605e8e81325d1e6d7a5eb451810dd0","dafce7a7b279977940b6b4b50017625e4f922f73094433d2875994bdc0b27e87","6fc76efbb61d3336833ef44ff3f37552667f26c2a73b368f3b4b259f19f2c234","479496e5bb48f2f5e981ef646665bc09fd9ab080e86e9ea882ca4369411604af","6c559dee3c6251c261b67df08e01d4cbc89cbd7a63300150c636705733cebfff","6fa0008bf91a4cc9c8963bace4bba0bd6865cbfa29c3e3ccc461155660fb113a","2b8264b2fefd7367e0f20e2c04eed5d3038831fe00f5efbc110ff0131aab899b","f60e3e3060207ac982da13363181fd7ee4beecc19a7c569f0d6bb034331066c2","17230b34bb564a3a2e36f9d3985372ccab4ad1722df2c43f7c5c2b553f68e5db","87ed0f84f0691d5c724b23159db96342e6b04ac69201b02c65936f4281ce1fbe","13868c5792808236b17dfe2803eafce911ea4d09d3b2fda95391891a494f988f","0dfe35191a04e8f9dc7caeb9f52f2ee07402736563d12cbccd15fb5f31ac877f","fa5c2d3fcd8e227e180815df0a0903ed4b116400452af8a75ac5b68e5e1de9da","93c4fc5b5237c09bc9ed65cb8f0dc1d89034406ab40500b89701341994897142","9adb78bae51a473d33f40da9bdb50c0e491d1cc7a5db776665853effa0cd3374","b0d10e46cfe3f6c476b69af02eaa38e4ccc7430221ce3109ae84bb9fb8282298","70e9a18da08294f75bf23e46c7d69e67634c0765d355887b9b41f0d959e1426e","28288f5e5f8b7b895ed2abe6359c1da3e0d14a64b5aef985071285671f347c01"],"options":{"allowSyntheticDefaultImports":true,"composite":true,"declaration":true,"emitDeclarationOnly":true,"emitDecoratorMetadata":true,"esModuleInterop":true,"experimentalDecorators":true,"jsx":1,"module":1,"noImplicitAny":false,"outDir":"./","removeComments":true,"skipLibCheck":true,"sourceMap":true,"strict":true,"strictPropertyInitialization":false,"target":7},"fileIdsList":[[169,202],[169],[118,169],[169,227],[169,202,203,204,205,206],[169,202,204],[169,176],[142,169,176,209],[142,169,176],[142,169],[169,208],[139,142,169,176,213,214],[169,210,214,215,218],[140,169,176],[169,222],[169,223],[169,229,232],[169,216],[169,217],[123,169],[126,169],[127,132,160,169],[128,139,140,147,157,168,169],[128,129,139,147,169],[130,169],[131,132,140,148,169],[132,157,165,169],[133,135,139,147,169],[134,169],[135,136,169],[139,169],[137,139,169],[139,140,141,157,168,169],[139,140,141,154,157,160,169],[169,173],[142,147,157,168,169],[139,140,142,143,147,157,165,168,169],[142,144,157,165,168,169],[123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175],[139,145,169],[146,168,169],[135,139,147,157,169],[148,169],[149,169],[126,150,169],[151,167,169,173],[152,169],[153,169],[139,154,155,169],[154,156,169,171],[127,139,157,158,159,160,169],[127,157,159,169],[157,158,169],[160,169],[161,169],[139,163,164,169],[163,164,169],[132,147,157,165,169],[166,169],[147,167,169],[127,142,153,168,169],[132,169],[157,169,170],[169,171],[169,172],[127,132,139,141,150,157,168,169,171,173],[157,169,174],[169,176,239,241,245,246,247,248,249,250],[157,169,176],[139,169,176,239,241,242,244,251],[139,147,157,168,169,176,238,239,240,242,243,244,251],[157,169,176,241,242],[157,169,176,241,243],[169,176,239,241,242,244,251],[157,169,176,243],[139,147,157,165,169,176,240,242,244],[139,169,176,239,241,242,243,244,251],[139,157,169,176,239,240,241,242,243,244,251],[139,157,169,176,239,241,242,244,251],[142,157,169,176,244],[139,157,165,169,176,254,255,258,259],[142,169,176,217],[169,263],[76,77,78,79,80,83,169],[76,83,169],[77,169],[77,78,79,169],[76,78,79,80,82,83,84,85,86,87,88,169],[76,82,83,169],[76,80,83,169],[64,80,81,82,169],[76,80,82,83,169],[169,225,231],[169,229],[169,226,230],[62,169],[97,117,118,169],[62,97,169],[97,169],[97,98,169],[99,169],[98,99,114,115,116,169],[169,176,255,256,257],[157,169,176,255],[157,169,176,177,181],[139,169,173,178,179,180],[169,228],[139,169,176],[64,169],[59,60,61,65,66,67,169],[62,63,169],[169,194],[169,185,186],[169,183,184,185,187,188,192],[169,184,185],[169,193],[169,185],[169,183,184,185,188,189,190,191],[169,183,184,194],[100,114,117,119,120,121,169],[111,112,113,122,169,182,196,197],[169,181],[157,169],[112,169],[114,169,195],[58,68,69,169],[68,71,73,75,94,169],[69,70,71,89,91,93,95,96,101,102,103,104,169],[68,169],[68,72,169],[58,68,71,89,90,95,169],[58,71,95,169],[71,89,90,169],[91,93,169],[58,66,68,169],[74,169],[68,71,74,89,95,169],[71,74,95,169],[71,89,92,169],[68,100,132,157,169],[94,95,169],[57,105,169],[57,169],[106,109,110,169,200],[169,198],[57,107,108,169],[57,106,109,110,169,199],[202],[118],[227],[265],[202,203,204,205,206],[202,204],[265,266],[209,266,267],[266,267],[267],[208,265],[213,214,266,267,268],[210,214,215,218],[266,269],[222],[223],[229,232],[266],[216],[217],[239,241,245,246,247,248,249,250,266],[266,270],[239,241,242,244,251,266,268],[238,239,240,242,243,244,251,266,268,270,271,272],[241,242,266,270],[241,243,266,270],[239,241,242,244,251,266],[243,266,270],[240,242,244,266,268,270,271,273],[239,241,242,243,244,251,266,268],[239,240,241,242,243,244,251,266,268,270],[239,241,242,244,251,266,268,270],[244,266,267,270],[254,255,258,259,266,268,270,273],[217,266,267],[263],[225,231],[229],[226,230],[62],[97,117,118],[62,97],[97],[97,98],[99],[98,99,114,115,116],[255,256,257,266],[255,266,270],[177,181,266,270],[178,179,180,268,274],[228],[266,268],[64],[59,60,61,65,66,67],[62,63],[194],[185,186],[183,184,185,187,188,192],[184,185],[193],[185],[183,184,185,188,189,190,191],[183,184,194],[181],[112],[58,68,69],[68,71,73,75,94],[68],[68,72,265],[58,71,95],[91,93,265],[58,66,68],[74,265],[71,74,95],[57],[106,109,110,200],[57,106]],"referencedMap":[[204,1],[202,2],[121,3],[225,2],[228,4],[74,2],[227,2],[207,5],[203,1],[205,6],[206,1],[208,7],[210,8],[209,9],[211,10],[212,11],[215,12],[219,13],[220,14],[221,2],[222,2],[223,15],[224,16],[233,17],[234,2],[235,7],[217,18],[216,19],[236,2],[237,2],[123,20],[124,20],[126,21],[127,22],[128,23],[129,24],[130,25],[131,26],[132,27],[133,28],[134,29],[135,30],[136,30],[138,31],[137,32],[139,31],[140,33],[141,34],[125,35],[175,2],[142,36],[143,37],[144,38],[176,39],[145,40],[146,41],[147,42],[148,43],[149,44],[150,45],[151,46],[152,47],[153,48],[154,49],[155,49],[156,50],[157,51],[159,52],[158,53],[160,54],[161,55],[162,2],[163,56],[164,57],[165,58],[166,59],[167,60],[168,61],[169,62],[170,63],[171,64],[172,65],[173,66],[174,67],[251,68],[238,69],[245,70],[241,71],[239,72],[242,73],[246,74],[247,70],[244,75],[243,76],[248,77],[249,78],[250,79],[240,80],[252,2],[253,2],[259,81],[260,2],[214,2],[213,2],[218,82],[261,69],[262,2],[263,2],[264,83],[82,84],[86,85],[78,86],[80,87],[79,86],[77,2],[89,88],[76,2],[81,2],[87,89],[84,90],[83,91],[88,2],[85,92],[72,2],[226,2],[57,2],[232,93],[230,94],[231,95],[63,96],[62,2],[119,97],[116,2],[114,98],[118,2],[120,3],[98,99],[99,100],[97,2],[100,101],[117,102],[115,2],[58,2],[258,103],[255,7],[257,104],[256,7],[254,2],[177,69],[178,105],[179,9],[181,106],[229,107],[180,108],[11,2],[12,2],[15,2],[14,2],[2,2],[16,2],[17,2],[18,2],[19,2],[20,2],[21,2],[22,2],[23,2],[3,2],[4,2],[27,2],[24,2],[25,2],[26,2],[28,2],[29,2],[30,2],[5,2],[31,2],[32,2],[33,2],[34,2],[6,2],[35,2],[36,2],[37,2],[38,2],[7,2],[39,2],[44,2],[45,2],[40,2],[41,2],[42,2],[43,2],[8,2],[49,2],[46,2],[47,2],[48,2],[50,2],[9,2],[51,2],[52,2],[53,2],[54,2],[55,2],[1,2],[10,2],[56,2],[13,2],[59,2],[60,2],[61,2],[65,109],[68,110],[66,109],[64,111],[67,2],[195,112],[187,113],[193,114],[189,2],[190,2],[188,115],[191,112],[183,2],[184,2],[194,116],[186,117],[192,118],[185,119],[122,120],[111,2],[198,121],[182,122],[197,123],[113,124],[196,125],[112,2],[70,126],[71,2],[95,127],[105,128],[96,129],[73,130],[103,131],[90,132],[91,133],[94,134],[69,135],[75,136],[104,137],[92,138],[93,139],[101,140],[102,141],[108,2],[106,142],[107,143],[201,144],[199,145],[110,146],[200,147],[109,146]],"exportedModulesMap":[[204,148],[121,149],[228,150],[74,151],[207,152],[203,148],[205,153],[206,148],[208,154],[210,155],[209,156],[211,157],[212,158],[215,159],[219,160],[220,161],[223,162],[224,163],[233,164],[235,165],[217,166],[216,167],[123,20],[124,20],[126,21],[127,22],[128,23],[129,24],[130,25],[131,26],[132,27],[133,28],[134,29],[135,30],[136,30],[138,31],[137,32],[139,31],[140,33],[141,34],[125,35],[175,2],[142,36],[143,37],[144,38],[176,39],[145,40],[146,41],[147,42],[148,43],[149,44],[150,45],[151,46],[152,47],[153,48],[154,49],[155,49],[156,50],[157,51],[159,52],[158,53],[160,54],[161,55],[162,2],[163,56],[164,57],[165,58],[166,59],[167,60],[168,61],[169,62],[170,63],[171,64],[172,65],[173,66],[174,67],[251,168],[238,169],[245,170],[241,171],[239,172],[242,173],[246,174],[247,170],[244,175],[243,176],[248,177],[249,178],[250,179],[240,180],[259,181],[218,182],[261,69],[264,183],[82,84],[86,85],[78,86],[80,87],[79,86],[77,2],[89,88],[76,2],[81,2],[87,89],[84,90],[83,91],[88,2],[85,92],[232,184],[230,185],[231,186],[63,187],[119,188],[114,189],[120,149],[98,190],[99,191],[100,192],[117,193],[258,194],[255,165],[257,195],[256,165],[177,169],[178,196],[179,156],[181,197],[229,198],[180,199],[65,200],[68,201],[66,200],[64,202],[195,203],[187,204],[193,205],[188,206],[191,203],[194,207],[186,208],[192,209],[185,210],[122,120],[111,2],[198,121],[182,211],[197,123],[113,212],[196,125],[112,2],[70,213],[71,151],[95,214],[105,128],[96,215],[73,216],[103,131],[90,217],[91,133],[94,218],[69,219],[75,220],[104,137],[92,221],[93,139],[101,140],[102,141],[108,2],[106,222],[107,222],[201,223],[199,211],[110,222],[200,224],[109,222]],"semanticDiagnosticsPerFile":[204,202,121,225,228,74,227,207,203,205,206,208,210,209,211,212,215,219,220,221,222,223,224,233,234,235,217,216,236,237,123,124,126,127,128,129,130,131,132,133,134,135,136,138,137,139,140,141,125,175,142,143,144,176,145,146,147,148,149,150,151,152,153,154,155,156,157,159,158,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,251,238,245,241,239,242,246,247,244,243,248,249,250,240,252,253,259,260,214,213,218,261,262,263,264,82,86,78,80,79,77,89,76,81,87,84,83,88,85,72,226,57,232,230,231,63,62,119,116,114,118,120,98,99,97,100,117,115,58,258,255,257,256,254,177,178,179,181,229,180,11,12,15,14,2,16,17,18,19,20,21,22,23,3,4,27,24,25,26,28,29,30,5,31,32,33,34,6,35,36,37,38,7,39,44,45,40,41,42,43,8,49,46,47,48,50,9,51,52,53,54,55,1,10,56,13,59,60,61,65,68,66,64,67,195,187,193,189,190,188,191,183,184,194,186,192,185,122,111,198,182,197,113,196,112,70,71,95,105,96,73,103,90,91,94,69,75,104,92,93,101,102,108,106,107,201,199,110,200,109],"latestChangedDtsFile":"./src/resolver.d.ts"},"version":"4.8.4"}
@@ -0,0 +1,124 @@
1
+ import * as z from 'zod';
2
+ export declare type IdentityResolverOpts = {
3
+ timeout?: number;
4
+ plcUrl?: string;
5
+ didCache?: DidCache;
6
+ };
7
+ export declare type HandleResolverOpts = {
8
+ timeout?: number;
9
+ };
10
+ export declare type DidResolverOpts = {
11
+ timeout?: number;
12
+ plcUrl?: string;
13
+ didCache?: DidCache;
14
+ };
15
+ export declare type AtprotoData = {
16
+ did: string;
17
+ signingKey: string;
18
+ handle: string;
19
+ pds: string;
20
+ };
21
+ export declare type CacheResult = {
22
+ did: string;
23
+ doc: DidDocument;
24
+ updatedAt: number;
25
+ stale: boolean;
26
+ };
27
+ export interface DidCache {
28
+ cacheDid(did: string, doc: DidDocument): Promise<void>;
29
+ checkCache(did: string): Promise<CacheResult | null>;
30
+ refreshCache(did: string, getDoc: () => Promise<DidDocument | null>): Promise<void>;
31
+ clearEntry(did: string): Promise<void>;
32
+ clear(): Promise<void>;
33
+ }
34
+ export declare const verificationMethod: z.ZodObject<{
35
+ id: z.ZodString;
36
+ type: z.ZodString;
37
+ controller: z.ZodString;
38
+ publicKeyMultibase: z.ZodOptional<z.ZodString>;
39
+ }, "strip", z.ZodTypeAny, {
40
+ id: string;
41
+ type: string;
42
+ controller: string;
43
+ publicKeyMultibase?: string | undefined;
44
+ }, {
45
+ id: string;
46
+ type: string;
47
+ controller: string;
48
+ publicKeyMultibase?: string | undefined;
49
+ }>;
50
+ export declare const service: z.ZodObject<{
51
+ id: z.ZodString;
52
+ type: z.ZodString;
53
+ serviceEndpoint: z.ZodUnion<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodUnknown>]>;
54
+ }, "strip", z.ZodTypeAny, {
55
+ id: string;
56
+ type: string;
57
+ serviceEndpoint: (string | Record<string, unknown>) & (string | Record<string, unknown> | undefined);
58
+ }, {
59
+ id: string;
60
+ type: string;
61
+ serviceEndpoint: (string | Record<string, unknown>) & (string | Record<string, unknown> | undefined);
62
+ }>;
63
+ export declare const didDocument: z.ZodObject<{
64
+ id: z.ZodString;
65
+ alsoKnownAs: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
66
+ verificationMethod: z.ZodOptional<z.ZodArray<z.ZodObject<{
67
+ id: z.ZodString;
68
+ type: z.ZodString;
69
+ controller: z.ZodString;
70
+ publicKeyMultibase: z.ZodOptional<z.ZodString>;
71
+ }, "strip", z.ZodTypeAny, {
72
+ id: string;
73
+ type: string;
74
+ controller: string;
75
+ publicKeyMultibase?: string | undefined;
76
+ }, {
77
+ id: string;
78
+ type: string;
79
+ controller: string;
80
+ publicKeyMultibase?: string | undefined;
81
+ }>, "many">>;
82
+ service: z.ZodOptional<z.ZodArray<z.ZodObject<{
83
+ id: z.ZodString;
84
+ type: z.ZodString;
85
+ serviceEndpoint: z.ZodUnion<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodUnknown>]>;
86
+ }, "strip", z.ZodTypeAny, {
87
+ id: string;
88
+ type: string;
89
+ serviceEndpoint: (string | Record<string, unknown>) & (string | Record<string, unknown> | undefined);
90
+ }, {
91
+ id: string;
92
+ type: string;
93
+ serviceEndpoint: (string | Record<string, unknown>) & (string | Record<string, unknown> | undefined);
94
+ }>, "many">>;
95
+ }, "strip", z.ZodTypeAny, {
96
+ id: string;
97
+ alsoKnownAs?: string[] | undefined;
98
+ verificationMethod?: {
99
+ id: string;
100
+ type: string;
101
+ controller: string;
102
+ publicKeyMultibase?: string | undefined;
103
+ }[] | undefined;
104
+ service?: {
105
+ id: string;
106
+ type: string;
107
+ serviceEndpoint: (string | Record<string, unknown>) & (string | Record<string, unknown> | undefined);
108
+ }[] | undefined;
109
+ }, {
110
+ id: string;
111
+ alsoKnownAs?: string[] | undefined;
112
+ verificationMethod?: {
113
+ id: string;
114
+ type: string;
115
+ controller: string;
116
+ publicKeyMultibase?: string | undefined;
117
+ }[] | undefined;
118
+ service?: {
119
+ id: string;
120
+ type: string;
121
+ serviceEndpoint: (string | Record<string, unknown>) & (string | Record<string, unknown> | undefined);
122
+ }[] | undefined;
123
+ }>;
124
+ export declare type DidDocument = z.infer<typeof didDocument>;
@@ -0,0 +1,10 @@
1
+ import BaseResolver from './base-resolver';
2
+ import { WebResolverOpts } from './types';
3
+ import { DidCache } from './did-cache';
4
+ export declare const DOC_PATH = "/.well-known/did.json";
5
+ export declare class DidWebResolver extends BaseResolver {
6
+ opts: WebResolverOpts;
7
+ cache?: DidCache | undefined;
8
+ constructor(opts: WebResolverOpts, cache?: DidCache | undefined);
9
+ resolveDidNoCheck(did: string): Promise<unknown>;
10
+ }
package/jest.config.js ADDED
@@ -0,0 +1,6 @@
1
+ const base = require('../../jest.config.base.js')
2
+
3
+ module.exports = {
4
+ ...base,
5
+ displayName: 'Identity'
6
+ }
package/package.json ADDED
@@ -0,0 +1,40 @@
1
+ {
2
+ "name": "@atproto/identity",
3
+ "version": "0.0.1",
4
+ "main": "dist/index.js",
5
+ "license": "MIT",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "https://github.com/bluesky-social/atproto.git",
9
+ "directory": "packages/identity"
10
+ },
11
+ "scripts": {
12
+ "test": "jest",
13
+ "test:log": "cat test.log | pino-pretty",
14
+ "prettier": "prettier --check src/ tests/",
15
+ "prettier:fix": "prettier --write src/ tests/",
16
+ "lint": "eslint . --ext .ts,.tsx",
17
+ "lint:fix": "yarn lint --fix",
18
+ "verify": "run-p prettier lint",
19
+ "verify:fix": "yarn prettier:fix && yarn lint:fix",
20
+ "build": "node ./build.js",
21
+ "postbuild": "tsc --build tsconfig.build.json",
22
+ "update-main-to-dist": "node ./update-pkg.js --update-main-to-dist",
23
+ "update-main-to-src": "node ./update-pkg.js --update-main-to-src",
24
+ "prepublish": "npm run update-main-to-dist",
25
+ "postpublish": "npm run update-main-to-src"
26
+ },
27
+ "dependencies": {
28
+ "@atproto/common-web": "*",
29
+ "@atproto/crypto": "*",
30
+ "axios": "^0.27.2",
31
+ "zod": "^3.21.4"
32
+ },
33
+ "devDependencies": {
34
+ "@did-plc/lib": "^0.0.1",
35
+ "@did-plc/server": "^0.0.1",
36
+ "cors": "^2.8.5",
37
+ "express": "^4.18.2",
38
+ "get-port": "^6.1.2"
39
+ }
40
+ }
@@ -0,0 +1,120 @@
1
+ import * as crypto from '@atproto/crypto'
2
+ import { DidDocument, AtprotoData } from '../types'
3
+
4
+ export const getDid = (doc: DidDocument): string => {
5
+ const id = doc.id
6
+ if (typeof id !== 'string') {
7
+ throw new Error('No `id` on document')
8
+ }
9
+ return id
10
+ }
11
+
12
+ export const getKey = (doc: DidDocument): string | undefined => {
13
+ let keys = doc.verificationMethod
14
+ if (!keys) return undefined
15
+ if (typeof keys !== 'object') return undefined
16
+ if (!Array.isArray(keys)) {
17
+ keys = [keys]
18
+ }
19
+ const found = keys.find((key) => key.id === '#atproto')
20
+ if (!found) return undefined
21
+
22
+ // @TODO support jwk
23
+ // should we be surfacing errors here or returning undefined?
24
+ if (!found.publicKeyMultibase) return undefined
25
+ const keyBytes = crypto.multibaseToBytes(found.publicKeyMultibase)
26
+ let didKey: string | undefined = undefined
27
+ if (found.type === 'EcdsaSecp256r1VerificationKey2019') {
28
+ didKey = crypto.formatDidKey(crypto.P256_JWT_ALG, keyBytes)
29
+ } else if (found.type === 'EcdsaSecp256k1VerificationKey2019') {
30
+ didKey = crypto.formatDidKey(crypto.SECP256K1_JWT_ALG, keyBytes)
31
+ }
32
+ return didKey
33
+ }
34
+
35
+ export const getHandle = (doc: DidDocument): string | undefined => {
36
+ const aka = doc.alsoKnownAs
37
+ if (!aka) return undefined
38
+ const found = aka.find((name) => name.startsWith('at://'))
39
+ if (!found) return undefined
40
+ // strip off at:// prefix
41
+ return found.slice(5)
42
+ }
43
+
44
+ export const getPds = (doc: DidDocument): string | undefined => {
45
+ let services = doc.service
46
+ if (!services) return undefined
47
+ if (typeof services !== 'object') return undefined
48
+ if (!Array.isArray(services)) {
49
+ services = [services]
50
+ }
51
+ const found = services.find((service) => service.id === '#atproto_pds')
52
+ if (!found) return undefined
53
+ if (found.type !== 'AtprotoPersonalDataServer') {
54
+ return undefined
55
+ }
56
+ if (typeof found.serviceEndpoint !== 'string') {
57
+ return undefined
58
+ }
59
+ validateUrl(found.serviceEndpoint)
60
+ return found.serviceEndpoint
61
+ }
62
+
63
+ export const getFeedGen = (doc: DidDocument): string | undefined => {
64
+ let services = doc.service
65
+ if (!services) return undefined
66
+ if (typeof services !== 'object') return undefined
67
+ if (!Array.isArray(services)) {
68
+ services = [services]
69
+ }
70
+ const found = services.find((service) => service.id === '#bsky_fg')
71
+ if (!found) return undefined
72
+ if (found.type !== 'BskyFeedGenerator') {
73
+ return undefined
74
+ }
75
+ if (typeof found.serviceEndpoint !== 'string') {
76
+ return undefined
77
+ }
78
+ validateUrl(found.serviceEndpoint)
79
+ return found.serviceEndpoint
80
+ }
81
+
82
+ export const parseToAtprotoDocument = (
83
+ doc: DidDocument,
84
+ ): Partial<AtprotoData> => {
85
+ const did = getDid(doc)
86
+ return {
87
+ did,
88
+ signingKey: getKey(doc),
89
+ handle: getHandle(doc),
90
+ pds: getPds(doc),
91
+ }
92
+ }
93
+
94
+ export const ensureAtpDocument = (doc: DidDocument): AtprotoData => {
95
+ const { did, signingKey, handle, pds } = parseToAtprotoDocument(doc)
96
+ if (!did) {
97
+ throw new Error(`Could not parse id from doc: ${doc}`)
98
+ }
99
+ if (!signingKey) {
100
+ throw new Error(`Could not parse signingKey from doc: ${doc}`)
101
+ }
102
+ if (!handle) {
103
+ throw new Error(`Could not parse handle from doc: ${doc}`)
104
+ }
105
+ if (!pds) {
106
+ throw new Error(`Could not parse pds from doc: ${doc}`)
107
+ }
108
+ return { did, signingKey, handle, pds }
109
+ }
110
+
111
+ // Check protocol and hostname to prevent potential SSRF
112
+ const validateUrl = (url: string) => {
113
+ const { hostname, protocol } = new URL(url)
114
+ if (!['http:', 'https:'].includes(protocol)) {
115
+ throw new Error('Invalid pds protocol')
116
+ }
117
+ if (!hostname) {
118
+ throw new Error('Invalid pds hostname')
119
+ }
120
+ }