@atproto/api 0.3.0 → 0.3.2
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/dist/client/index.d.ts +67 -0
- package/dist/client/lexicons.d.ts +385 -0
- package/dist/client/types/app/bsky/actor/defs.d.ts +2 -0
- package/dist/client/types/app/bsky/feed/generator.d.ts +1 -0
- package/dist/client/types/app/bsky/graph/defs.d.ts +42 -0
- package/dist/client/types/app/bsky/graph/getList.d.ts +23 -0
- package/dist/client/types/app/bsky/graph/getListMutes.d.ts +21 -0
- package/dist/client/types/app/bsky/graph/getLists.d.ts +22 -0
- package/dist/client/types/app/bsky/graph/list.d.ts +14 -0
- package/dist/client/types/app/bsky/graph/listitem.d.ts +9 -0
- package/dist/client/types/app/bsky/graph/muteActorList.d.ts +17 -0
- package/dist/client/types/app/bsky/graph/unmuteActorList.d.ts +17 -0
- package/dist/index.js +1547 -268
- package/dist/index.js.map +4 -4
- package/package.json +1 -1
- package/src/client/index.ts +200 -0
- package/src/client/lexicons.ts +386 -0
- package/src/client/types/app/bsky/actor/defs.ts +2 -0
- package/src/client/types/app/bsky/graph/defs.ts +95 -0
- package/src/client/types/app/bsky/graph/getList.ts +40 -0
- package/src/client/types/app/bsky/graph/getListMutes.ts +38 -0
- package/src/client/types/app/bsky/graph/getLists.ts +39 -0
- package/src/client/types/app/bsky/graph/list.ts +32 -0
- package/src/client/types/app/bsky/graph/listitem.ts +27 -0
- package/src/client/types/app/bsky/graph/muteActorList.ts +32 -0
- package/src/client/types/app/bsky/graph/unmuteActorList.ts +32 -0
- package/tsconfig.build.tsbuildinfo +1 -1
package/dist/index.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../../node_modules/iso-datestring-validator/dist/index.js", "../src/index.ts", "../../common-web/src/check.ts", "../../../node_modules/multiformats/esm/vendor/varint.js", "../../../node_modules/multiformats/esm/src/varint.js", "../../../node_modules/multiformats/esm/src/bytes.js", "../../../node_modules/multiformats/esm/src/hashes/digest.js", "../../../node_modules/multiformats/esm/src/bases/base58.js", "../../../node_modules/multiformats/esm/vendor/base-x.js", "../../../node_modules/multiformats/esm/src/bases/base.js", "../../../node_modules/multiformats/esm/src/bases/base32.js", "../../../node_modules/multiformats/esm/src/cid.js", "../../../node_modules/multiformats/esm/src/bases/identity.js", "../../../node_modules/multiformats/esm/src/bases/base2.js", "../../../node_modules/multiformats/esm/src/bases/base8.js", "../../../node_modules/multiformats/esm/src/bases/base10.js", "../../../node_modules/multiformats/esm/src/bases/base16.js", "../../../node_modules/multiformats/esm/src/bases/base36.js", "../../../node_modules/multiformats/esm/src/bases/base64.js", "../../../node_modules/multiformats/esm/src/bases/base256emoji.js", "../../../node_modules/multiformats/esm/src/hashes/sha2-browser.js", "../../../node_modules/multiformats/esm/src/hashes/hasher.js", "../../../node_modules/multiformats/esm/src/hashes/identity.js", "../../../node_modules/multiformats/esm/src/codecs/json.js", "../../../node_modules/multiformats/esm/src/basics.js", "../../../node_modules/uint8arrays/esm/src/util/bases.js", "../../../node_modules/uint8arrays/esm/src/from-string.js", "../../../node_modules/uint8arrays/esm/src/to-string.js", "../../common-web/src/ipld.ts", "../../../node_modules/zod/lib/index.mjs", "../../common-web/src/types.ts", "../../common-web/src/times.ts", "../../common-web/src/strings.ts", "../../identifier/src/reserved.ts", "../../identifier/src/handle.ts", "../../identifier/src/did.ts", "../../nsid/src/index.ts", "../../uri/src/validation.ts", "../../uri/src/index.ts", "../../lexicon/src/types.ts", "../../lexicon/src/validators/formats.ts", "../../lexicon/src/validators/primitives.ts", "../../lexicon/src/blob-refs.ts", "../../lexicon/src/validators/blob.ts", "../../lexicon/src/validators/complex.ts", "../../lexicon/src/util.ts", "../../lexicon/src/validators/xrpc.ts", "../../lexicon/src/validation.ts", "../../lexicon/src/lexicons.ts", "../../lexicon/src/serialize.ts", "../../xrpc/src/types.ts", "../../xrpc/src/util.ts", "../../xrpc/src/client.ts", "../../xrpc/src/index.ts", "../src/client/lexicons.ts", "../src/client/types/com/atproto/admin/disableAccountInvites.ts", "../src/client/types/com/atproto/admin/disableInviteCodes.ts", "../src/client/types/com/atproto/admin/enableAccountInvites.ts", "../src/client/types/com/atproto/admin/getInviteCodes.ts", "../src/client/types/com/atproto/admin/getModerationAction.ts", "../src/client/types/com/atproto/admin/getModerationActions.ts", "../src/client/types/com/atproto/admin/getModerationReport.ts", "../src/client/types/com/atproto/admin/getModerationReports.ts", "../src/client/types/com/atproto/admin/getRecord.ts", "../src/client/types/com/atproto/admin/getRepo.ts", "../src/client/types/com/atproto/admin/resolveModerationReports.ts", "../src/client/types/com/atproto/admin/reverseModerationAction.ts", "../src/client/types/com/atproto/admin/searchRepos.ts", "../src/client/types/com/atproto/admin/takeModerationAction.ts", "../src/client/types/com/atproto/admin/updateAccountEmail.ts", "../src/client/types/com/atproto/admin/updateAccountHandle.ts", "../src/client/types/com/atproto/identity/resolveHandle.ts", "../src/client/types/com/atproto/identity/updateHandle.ts", "../src/client/types/com/atproto/label/queryLabels.ts", "../src/client/types/com/atproto/moderation/createReport.ts", "../src/client/types/com/atproto/repo/applyWrites.ts", "../src/client/util.ts", "../src/client/types/com/atproto/repo/createRecord.ts", "../src/client/types/com/atproto/repo/deleteRecord.ts", "../src/client/types/com/atproto/repo/describeRepo.ts", "../src/client/types/com/atproto/repo/getRecord.ts", "../src/client/types/com/atproto/repo/listRecords.ts", "../src/client/types/com/atproto/repo/putRecord.ts", "../src/client/types/com/atproto/repo/rebaseRepo.ts", "../src/client/types/com/atproto/repo/uploadBlob.ts", "../src/client/types/com/atproto/server/createAccount.ts", "../src/client/types/com/atproto/server/createAppPassword.ts", "../src/client/types/com/atproto/server/createInviteCode.ts", "../src/client/types/com/atproto/server/createInviteCodes.ts", "../src/client/types/com/atproto/server/createSession.ts", "../src/client/types/com/atproto/server/deleteAccount.ts", "../src/client/types/com/atproto/server/deleteSession.ts", "../src/client/types/com/atproto/server/describeServer.ts", "../src/client/types/com/atproto/server/getAccountInviteCodes.ts", "../src/client/types/com/atproto/server/getSession.ts", "../src/client/types/com/atproto/server/listAppPasswords.ts", "../src/client/types/com/atproto/server/refreshSession.ts", "../src/client/types/com/atproto/server/requestAccountDelete.ts", "../src/client/types/com/atproto/server/requestPasswordReset.ts", "../src/client/types/com/atproto/server/resetPassword.ts", "../src/client/types/com/atproto/server/revokeAppPassword.ts", "../src/client/types/com/atproto/sync/getBlob.ts", "../src/client/types/com/atproto/sync/getBlocks.ts", "../src/client/types/com/atproto/sync/getCheckout.ts", "../src/client/types/com/atproto/sync/getCommitPath.ts", "../src/client/types/com/atproto/sync/getHead.ts", "../src/client/types/com/atproto/sync/getRecord.ts", "../src/client/types/com/atproto/sync/getRepo.ts", "../src/client/types/com/atproto/sync/listBlobs.ts", "../src/client/types/com/atproto/sync/listRepos.ts", "../src/client/types/com/atproto/sync/notifyOfUpdate.ts", "../src/client/types/com/atproto/sync/requestCrawl.ts", "../src/client/types/app/bsky/actor/getProfile.ts", "../src/client/types/app/bsky/actor/getProfiles.ts", "../src/client/types/app/bsky/actor/getSuggestions.ts", "../src/client/types/app/bsky/actor/searchActors.ts", "../src/client/types/app/bsky/actor/searchActorsTypeahead.ts", "../src/client/types/app/bsky/feed/getAuthorFeed.ts", "../src/client/types/app/bsky/feed/getLikes.ts", "../src/client/types/app/bsky/feed/getPostThread.ts", "../src/client/types/app/bsky/feed/getPosts.ts", "../src/client/types/app/bsky/feed/getRepostedBy.ts", "../src/client/types/app/bsky/feed/getTimeline.ts", "../src/client/types/app/bsky/graph/getBlocks.ts", "../src/client/types/app/bsky/graph/getFollowers.ts", "../src/client/types/app/bsky/graph/getFollows.ts", "../src/client/types/app/bsky/graph/getMutes.ts", "../src/client/types/app/bsky/graph/muteActor.ts", "../src/client/types/app/bsky/graph/unmuteActor.ts", "../src/client/types/app/bsky/notification/getUnreadCount.ts", "../src/client/types/app/bsky/notification/listNotifications.ts", "../src/client/types/app/bsky/notification/updateSeen.ts", "../src/client/types/app/bsky/unspecced/getPopular.ts", "../src/client/types/com/atproto/admin/defs.ts", "../src/client/types/com/atproto/label/defs.ts", "../src/client/types/com/atproto/label/subscribeLabels.ts", "../src/client/types/com/atproto/moderation/defs.ts", "../src/client/types/com/atproto/repo/strongRef.ts", "../src/client/types/com/atproto/server/defs.ts", "../src/client/types/com/atproto/sync/subscribeRepos.ts", "../src/client/types/app/bsky/actor/defs.ts", "../src/client/types/app/bsky/actor/profile.ts", "../src/client/types/app/bsky/embed/external.ts", "../src/client/types/app/bsky/embed/images.ts", "../src/client/types/app/bsky/embed/record.ts", "../src/client/types/app/bsky/embed/recordWithMedia.ts", "../src/client/types/app/bsky/feed/defs.ts", "../src/client/types/app/bsky/feed/like.ts", "../src/client/types/app/bsky/feed/post.ts", "../src/client/types/app/bsky/feed/repost.ts", "../src/client/types/app/bsky/graph/block.ts", "../src/client/types/app/bsky/graph/follow.ts", "../src/client/types/app/bsky/richtext/facet.ts", "../src/client/index.ts", "../src/agent.ts", "../src/rich-text/unicode.ts", "../src/rich-text/sanitization.ts", "../src/rich-text/detection.ts", "../src/rich-text/rich-text.ts", "../src/bsky-agent.ts"],
|
|
4
|
-
"sourcesContent": ["(()=>{\"use strict\";var e={d:(t,r)=>{for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})}},t={};function r(e,t){return void 0===t&&(t=\"-\"),new RegExp(\"^(?!0{4}\"+t+\"0{2}\"+t+\"0{2})((?=[0-9]{4}\"+t+\"(((0[^2])|1[0-2])|02(?=\"+t+\"(([0-1][0-9])|2[0-8])))\"+t+\"[0-9]{2})|(?=((([13579][26])|([2468][048])|(0[48]))0{2})|([0-9]{2}((((0|[2468])[48])|[2468][048])|([13579][26])))\"+t+\"02\"+t+\"29))([0-9]{4})\"+t+\"(?!((0[469])|11)\"+t+\"31)((0[1,3-9]|1[0-2])|(02(?!\"+t+\"3)))\"+t+\"(0[1-9]|[1-2][0-9]|3[0-1])$\").test(e)}function n(e){var t=/\\D/.exec(e);return t?t[0]:\"\"}function i(e,t,r){void 0===t&&(t=\":\"),void 0===r&&(r=!1);var i=new RegExp(\"^([0-1]|2(?=([0-3])|4\"+t+\"00))[0-9]\"+t+\"[0-5][0-9](\"+t+\"([0-5]|6(?=0))[0-9])?(.[0-9]{1,9})?$\");if(!r||!/[Z+\\-]/.test(e))return i.test(e);if(/Z$/.test(e))return i.test(e.replace(\"Z\",\"\"));var o=e.includes(\"+\"),a=e.split(/[+-]/),u=a[0],d=a[1];return i.test(u)&&function(e,t,r){return void 0===r&&(r=\":\"),new RegExp(t?\"^(0(?!(2\"+r+\"4)|0\"+r+\"3)|1(?=([0-1]|2(?=\"+r+\"[04])|[34](?=\"+r+\"0))))([03469](?=\"+r+\"[03])|[17](?=\"+r+\"0)|2(?=\"+r+\"[04])|5(?=\"+r+\"[034])|8(?=\"+r+\"[04]))\"+r+\"([03](?=0)|4(?=5))[05]$\":\"^(0(?=[^0])|1(?=[0-2]))([39](?=\"+r+\"[03])|[0-24-8](?=\"+r+\"00))\"+r+\"[03]0$\").test(e)}(d,o,n(d))}function o(e){var t=e.split(\"T\"),o=t[0],a=t[1],u=r(o,n(o));if(!a)return!1;var d,s=(d=a.match(/([^Z+\\-\\d])(?=\\d+\\1)/),Array.isArray(d)?d[0]:\"\");return u&&i(a,s,!0)}function a(e,t){return void 0===t&&(t=\"-\"),new RegExp(\"^[0-9]{4}\"+t+\"(0(?=[^0])|1(?=[0-2]))[0-9]$\").test(e)}e.r(t),e.d(t,{isValidDate:()=>r,isValidISODateString:()=>o,isValidTime:()=>i,isValidYearMonth:()=>a});var u=exports;for(var d in t)u[d]=t[d];t.__esModule&&Object.defineProperty(u,\"__esModule\",{value:!0})})();", "export { AtUri } from '@atproto/uri'\nexport {\n BlobRef,\n lexToJson,\n stringifyLex,\n jsonToLex,\n jsonStringToLex,\n} from '@atproto/lexicon'\nexport * from './types'\nexport * from './client'\nexport * from './agent'\nexport * from './rich-text/rich-text'\nexport * from './rich-text/sanitization'\nexport * from './rich-text/unicode'\nexport { BskyAgent } from './bsky-agent'\nexport { AtpAgent as default } from './agent'\n", "import { ZodError } from 'zod'\n\nexport interface Checkable<T> {\n parse: (obj: unknown) => T\n safeParse: (\n obj: unknown,\n ) => { success: true; data: T } | { success: false; error: ZodError }\n}\n\nexport interface Def<T> {\n name: string\n schema: Checkable<T>\n}\n\nexport const is = <T>(obj: unknown, def: Checkable<T>): obj is T => {\n return def.safeParse(obj).success\n}\n\nexport const assure = <T>(def: Checkable<T>, obj: unknown): T => {\n return def.parse(obj)\n}\n\nexport const isObject = (obj: unknown): obj is Record<string, unknown> => {\n return typeof obj === 'object' && obj !== null\n}\n", "var encode_1 = encode;\nvar MSB = 128, REST = 127, MSBALL = ~REST, INT = Math.pow(2, 31);\nfunction encode(num, out, offset) {\n out = out || [];\n offset = offset || 0;\n var oldOffset = offset;\n while (num >= INT) {\n out[offset++] = num & 255 | MSB;\n num /= 128;\n }\n while (num & MSBALL) {\n out[offset++] = num & 255 | MSB;\n num >>>= 7;\n }\n out[offset] = num | 0;\n encode.bytes = offset - oldOffset + 1;\n return out;\n}\nvar decode = read;\nvar MSB$1 = 128, REST$1 = 127;\nfunction read(buf, offset) {\n var res = 0, offset = offset || 0, shift = 0, counter = offset, b, l = buf.length;\n do {\n if (counter >= l) {\n read.bytes = 0;\n throw new RangeError('Could not decode varint');\n }\n b = buf[counter++];\n res += shift < 28 ? (b & REST$1) << shift : (b & REST$1) * Math.pow(2, shift);\n shift += 7;\n } while (b >= MSB$1);\n read.bytes = counter - offset;\n return res;\n}\nvar N1 = Math.pow(2, 7);\nvar N2 = Math.pow(2, 14);\nvar N3 = Math.pow(2, 21);\nvar N4 = Math.pow(2, 28);\nvar N5 = Math.pow(2, 35);\nvar N6 = Math.pow(2, 42);\nvar N7 = Math.pow(2, 49);\nvar N8 = Math.pow(2, 56);\nvar N9 = Math.pow(2, 63);\nvar length = function (value) {\n return value < N1 ? 1 : value < N2 ? 2 : value < N3 ? 3 : value < N4 ? 4 : value < N5 ? 5 : value < N6 ? 6 : value < N7 ? 7 : value < N8 ? 8 : value < N9 ? 9 : 10;\n};\nvar varint = {\n encode: encode_1,\n decode: decode,\n encodingLength: length\n};\nvar _brrp_varint = varint;\nexport default _brrp_varint;", "import varint from '../vendor/varint.js';\nexport const decode = (data, offset = 0) => {\n const code = varint.decode(data, offset);\n return [\n code,\n varint.decode.bytes\n ];\n};\nexport const encodeTo = (int, target, offset = 0) => {\n varint.encode(int, target, offset);\n return target;\n};\nexport const encodingLength = int => {\n return varint.encodingLength(int);\n};", "const empty = new Uint8Array(0);\nconst toHex = d => d.reduce((hex, byte) => hex + byte.toString(16).padStart(2, '0'), '');\nconst fromHex = hex => {\n const hexes = hex.match(/../g);\n return hexes ? new Uint8Array(hexes.map(b => parseInt(b, 16))) : empty;\n};\nconst equals = (aa, bb) => {\n if (aa === bb)\n return true;\n if (aa.byteLength !== bb.byteLength) {\n return false;\n }\n for (let ii = 0; ii < aa.byteLength; ii++) {\n if (aa[ii] !== bb[ii]) {\n return false;\n }\n }\n return true;\n};\nconst coerce = o => {\n if (o instanceof Uint8Array && o.constructor.name === 'Uint8Array')\n return o;\n if (o instanceof ArrayBuffer)\n return new Uint8Array(o);\n if (ArrayBuffer.isView(o)) {\n return new Uint8Array(o.buffer, o.byteOffset, o.byteLength);\n }\n throw new Error('Unknown type, must be binary type');\n};\nconst isBinary = o => o instanceof ArrayBuffer || ArrayBuffer.isView(o);\nconst fromString = str => new TextEncoder().encode(str);\nconst toString = b => new TextDecoder().decode(b);\nexport {\n equals,\n coerce,\n isBinary,\n fromHex,\n toHex,\n fromString,\n toString,\n empty\n};", "import {\n coerce,\n equals as equalBytes\n} from '../bytes.js';\nimport * as varint from '../varint.js';\nexport const create = (code, digest) => {\n const size = digest.byteLength;\n const sizeOffset = varint.encodingLength(code);\n const digestOffset = sizeOffset + varint.encodingLength(size);\n const bytes = new Uint8Array(digestOffset + size);\n varint.encodeTo(code, bytes, 0);\n varint.encodeTo(size, bytes, sizeOffset);\n bytes.set(digest, digestOffset);\n return new Digest(code, size, digest, bytes);\n};\nexport const decode = multihash => {\n const bytes = coerce(multihash);\n const [code, sizeOffset] = varint.decode(bytes);\n const [size, digestOffset] = varint.decode(bytes.subarray(sizeOffset));\n const digest = bytes.subarray(sizeOffset + digestOffset);\n if (digest.byteLength !== size) {\n throw new Error('Incorrect length');\n }\n return new Digest(code, size, digest, bytes);\n};\nexport const equals = (a, b) => {\n if (a === b) {\n return true;\n } else {\n return a.code === b.code && a.size === b.size && equalBytes(a.bytes, b.bytes);\n }\n};\nexport class Digest {\n constructor(code, size, digest, bytes) {\n this.code = code;\n this.size = size;\n this.digest = digest;\n this.bytes = bytes;\n }\n}", "import { baseX } from './base.js';\nexport const base58btc = baseX({\n name: 'base58btc',\n prefix: 'z',\n alphabet: '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'\n});\nexport const base58flickr = baseX({\n name: 'base58flickr',\n prefix: 'Z',\n alphabet: '123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ'\n});", "function base(ALPHABET, name) {\n if (ALPHABET.length >= 255) {\n throw new TypeError('Alphabet too long');\n }\n var BASE_MAP = new Uint8Array(256);\n for (var j = 0; j < BASE_MAP.length; j++) {\n BASE_MAP[j] = 255;\n }\n for (var i = 0; i < ALPHABET.length; i++) {\n var x = ALPHABET.charAt(i);\n var xc = x.charCodeAt(0);\n if (BASE_MAP[xc] !== 255) {\n throw new TypeError(x + ' is ambiguous');\n }\n BASE_MAP[xc] = i;\n }\n var BASE = ALPHABET.length;\n var LEADER = ALPHABET.charAt(0);\n var FACTOR = Math.log(BASE) / Math.log(256);\n var iFACTOR = Math.log(256) / Math.log(BASE);\n function encode(source) {\n if (source instanceof Uint8Array);\n else if (ArrayBuffer.isView(source)) {\n source = new Uint8Array(source.buffer, source.byteOffset, source.byteLength);\n } else if (Array.isArray(source)) {\n source = Uint8Array.from(source);\n }\n if (!(source instanceof Uint8Array)) {\n throw new TypeError('Expected Uint8Array');\n }\n if (source.length === 0) {\n return '';\n }\n var zeroes = 0;\n var length = 0;\n var pbegin = 0;\n var pend = source.length;\n while (pbegin !== pend && source[pbegin] === 0) {\n pbegin++;\n zeroes++;\n }\n var size = (pend - pbegin) * iFACTOR + 1 >>> 0;\n var b58 = new Uint8Array(size);\n while (pbegin !== pend) {\n var carry = source[pbegin];\n var i = 0;\n for (var it1 = size - 1; (carry !== 0 || i < length) && it1 !== -1; it1--, i++) {\n carry += 256 * b58[it1] >>> 0;\n b58[it1] = carry % BASE >>> 0;\n carry = carry / BASE >>> 0;\n }\n if (carry !== 0) {\n throw new Error('Non-zero carry');\n }\n length = i;\n pbegin++;\n }\n var it2 = size - length;\n while (it2 !== size && b58[it2] === 0) {\n it2++;\n }\n var str = LEADER.repeat(zeroes);\n for (; it2 < size; ++it2) {\n str += ALPHABET.charAt(b58[it2]);\n }\n return str;\n }\n function decodeUnsafe(source) {\n if (typeof source !== 'string') {\n throw new TypeError('Expected String');\n }\n if (source.length === 0) {\n return new Uint8Array();\n }\n var psz = 0;\n if (source[psz] === ' ') {\n return;\n }\n var zeroes = 0;\n var length = 0;\n while (source[psz] === LEADER) {\n zeroes++;\n psz++;\n }\n var size = (source.length - psz) * FACTOR + 1 >>> 0;\n var b256 = new Uint8Array(size);\n while (source[psz]) {\n var carry = BASE_MAP[source.charCodeAt(psz)];\n if (carry === 255) {\n return;\n }\n var i = 0;\n for (var it3 = size - 1; (carry !== 0 || i < length) && it3 !== -1; it3--, i++) {\n carry += BASE * b256[it3] >>> 0;\n b256[it3] = carry % 256 >>> 0;\n carry = carry / 256 >>> 0;\n }\n if (carry !== 0) {\n throw new Error('Non-zero carry');\n }\n length = i;\n psz++;\n }\n if (source[psz] === ' ') {\n return;\n }\n var it4 = size - length;\n while (it4 !== size && b256[it4] === 0) {\n it4++;\n }\n var vch = new Uint8Array(zeroes + (size - it4));\n var j = zeroes;\n while (it4 !== size) {\n vch[j++] = b256[it4++];\n }\n return vch;\n }\n function decode(string) {\n var buffer = decodeUnsafe(string);\n if (buffer) {\n return buffer;\n }\n throw new Error(`Non-${ name } character`);\n }\n return {\n encode: encode,\n decodeUnsafe: decodeUnsafe,\n decode: decode\n };\n}\nvar src = base;\nvar _brrp__multiformats_scope_baseX = src;\nexport default _brrp__multiformats_scope_baseX;", "import basex from '../../vendor/base-x.js';\nimport { coerce } from '../bytes.js';\nclass Encoder {\n constructor(name, prefix, baseEncode) {\n this.name = name;\n this.prefix = prefix;\n this.baseEncode = baseEncode;\n }\n encode(bytes) {\n if (bytes instanceof Uint8Array) {\n return `${ this.prefix }${ this.baseEncode(bytes) }`;\n } else {\n throw Error('Unknown type, must be binary type');\n }\n }\n}\nclass Decoder {\n constructor(name, prefix, baseDecode) {\n this.name = name;\n this.prefix = prefix;\n if (prefix.codePointAt(0) === undefined) {\n throw new Error('Invalid prefix character');\n }\n this.prefixCodePoint = prefix.codePointAt(0);\n this.baseDecode = baseDecode;\n }\n decode(text) {\n if (typeof text === 'string') {\n if (text.codePointAt(0) !== this.prefixCodePoint) {\n throw Error(`Unable to decode multibase string ${ JSON.stringify(text) }, ${ this.name } decoder only supports inputs prefixed with ${ this.prefix }`);\n }\n return this.baseDecode(text.slice(this.prefix.length));\n } else {\n throw Error('Can only multibase decode strings');\n }\n }\n or(decoder) {\n return or(this, decoder);\n }\n}\nclass ComposedDecoder {\n constructor(decoders) {\n this.decoders = decoders;\n }\n or(decoder) {\n return or(this, decoder);\n }\n decode(input) {\n const prefix = input[0];\n const decoder = this.decoders[prefix];\n if (decoder) {\n return decoder.decode(input);\n } else {\n throw RangeError(`Unable to decode multibase string ${ JSON.stringify(input) }, only inputs prefixed with ${ Object.keys(this.decoders) } are supported`);\n }\n }\n}\nexport const or = (left, right) => new ComposedDecoder({\n ...left.decoders || { [left.prefix]: left },\n ...right.decoders || { [right.prefix]: right }\n});\nexport class Codec {\n constructor(name, prefix, baseEncode, baseDecode) {\n this.name = name;\n this.prefix = prefix;\n this.baseEncode = baseEncode;\n this.baseDecode = baseDecode;\n this.encoder = new Encoder(name, prefix, baseEncode);\n this.decoder = new Decoder(name, prefix, baseDecode);\n }\n encode(input) {\n return this.encoder.encode(input);\n }\n decode(input) {\n return this.decoder.decode(input);\n }\n}\nexport const from = ({name, prefix, encode, decode}) => new Codec(name, prefix, encode, decode);\nexport const baseX = ({prefix, name, alphabet}) => {\n const {encode, decode} = basex(alphabet, name);\n return from({\n prefix,\n name,\n encode,\n decode: text => coerce(decode(text))\n });\n};\nconst decode = (string, alphabet, bitsPerChar, name) => {\n const codes = {};\n for (let i = 0; i < alphabet.length; ++i) {\n codes[alphabet[i]] = i;\n }\n let end = string.length;\n while (string[end - 1] === '=') {\n --end;\n }\n const out = new Uint8Array(end * bitsPerChar / 8 | 0);\n let bits = 0;\n let buffer = 0;\n let written = 0;\n for (let i = 0; i < end; ++i) {\n const value = codes[string[i]];\n if (value === undefined) {\n throw new SyntaxError(`Non-${ name } character`);\n }\n buffer = buffer << bitsPerChar | value;\n bits += bitsPerChar;\n if (bits >= 8) {\n bits -= 8;\n out[written++] = 255 & buffer >> bits;\n }\n }\n if (bits >= bitsPerChar || 255 & buffer << 8 - bits) {\n throw new SyntaxError('Unexpected end of data');\n }\n return out;\n};\nconst encode = (data, alphabet, bitsPerChar) => {\n const pad = alphabet[alphabet.length - 1] === '=';\n const mask = (1 << bitsPerChar) - 1;\n let out = '';\n let bits = 0;\n let buffer = 0;\n for (let i = 0; i < data.length; ++i) {\n buffer = buffer << 8 | data[i];\n bits += 8;\n while (bits > bitsPerChar) {\n bits -= bitsPerChar;\n out += alphabet[mask & buffer >> bits];\n }\n }\n if (bits) {\n out += alphabet[mask & buffer << bitsPerChar - bits];\n }\n if (pad) {\n while (out.length * bitsPerChar & 7) {\n out += '=';\n }\n }\n return out;\n};\nexport const rfc4648 = ({name, prefix, bitsPerChar, alphabet}) => {\n return from({\n prefix,\n name,\n encode(input) {\n return encode(input, alphabet, bitsPerChar);\n },\n decode(input) {\n return decode(input, alphabet, bitsPerChar, name);\n }\n });\n};", "import { rfc4648 } from './base.js';\nexport const base32 = rfc4648({\n prefix: 'b',\n name: 'base32',\n alphabet: 'abcdefghijklmnopqrstuvwxyz234567',\n bitsPerChar: 5\n});\nexport const base32upper = rfc4648({\n prefix: 'B',\n name: 'base32upper',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567',\n bitsPerChar: 5\n});\nexport const base32pad = rfc4648({\n prefix: 'c',\n name: 'base32pad',\n alphabet: 'abcdefghijklmnopqrstuvwxyz234567=',\n bitsPerChar: 5\n});\nexport const base32padupper = rfc4648({\n prefix: 'C',\n name: 'base32padupper',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=',\n bitsPerChar: 5\n});\nexport const base32hex = rfc4648({\n prefix: 'v',\n name: 'base32hex',\n alphabet: '0123456789abcdefghijklmnopqrstuv',\n bitsPerChar: 5\n});\nexport const base32hexupper = rfc4648({\n prefix: 'V',\n name: 'base32hexupper',\n alphabet: '0123456789ABCDEFGHIJKLMNOPQRSTUV',\n bitsPerChar: 5\n});\nexport const base32hexpad = rfc4648({\n prefix: 't',\n name: 'base32hexpad',\n alphabet: '0123456789abcdefghijklmnopqrstuv=',\n bitsPerChar: 5\n});\nexport const base32hexpadupper = rfc4648({\n prefix: 'T',\n name: 'base32hexpadupper',\n alphabet: '0123456789ABCDEFGHIJKLMNOPQRSTUV=',\n bitsPerChar: 5\n});\nexport const base32z = rfc4648({\n prefix: 'h',\n name: 'base32z',\n alphabet: 'ybndrfg8ejkmcpqxot1uwisza345h769',\n bitsPerChar: 5\n});", "import * as varint from './varint.js';\nimport * as Digest from './hashes/digest.js';\nimport { base58btc } from './bases/base58.js';\nimport { base32 } from './bases/base32.js';\nimport { coerce } from './bytes.js';\nexport class CID {\n constructor(version, code, multihash, bytes) {\n this.code = code;\n this.version = version;\n this.multihash = multihash;\n this.bytes = bytes;\n this.byteOffset = bytes.byteOffset;\n this.byteLength = bytes.byteLength;\n this.asCID = this;\n this._baseCache = new Map();\n Object.defineProperties(this, {\n byteOffset: hidden,\n byteLength: hidden,\n code: readonly,\n version: readonly,\n multihash: readonly,\n bytes: readonly,\n _baseCache: hidden,\n asCID: hidden\n });\n }\n toV0() {\n switch (this.version) {\n case 0: {\n return this;\n }\n default: {\n const {code, multihash} = this;\n if (code !== DAG_PB_CODE) {\n throw new Error('Cannot convert a non dag-pb CID to CIDv0');\n }\n if (multihash.code !== SHA_256_CODE) {\n throw new Error('Cannot convert non sha2-256 multihash CID to CIDv0');\n }\n return CID.createV0(multihash);\n }\n }\n }\n toV1() {\n switch (this.version) {\n case 0: {\n const {code, digest} = this.multihash;\n const multihash = Digest.create(code, digest);\n return CID.createV1(this.code, multihash);\n }\n case 1: {\n return this;\n }\n default: {\n throw Error(`Can not convert CID version ${ this.version } to version 0. This is a bug please report`);\n }\n }\n }\n equals(other) {\n return other && this.code === other.code && this.version === other.version && Digest.equals(this.multihash, other.multihash);\n }\n toString(base) {\n const {bytes, version, _baseCache} = this;\n switch (version) {\n case 0:\n return toStringV0(bytes, _baseCache, base || base58btc.encoder);\n default:\n return toStringV1(bytes, _baseCache, base || base32.encoder);\n }\n }\n toJSON() {\n return {\n code: this.code,\n version: this.version,\n hash: this.multihash.bytes\n };\n }\n get [Symbol.toStringTag]() {\n return 'CID';\n }\n [Symbol.for('nodejs.util.inspect.custom')]() {\n return 'CID(' + this.toString() + ')';\n }\n static isCID(value) {\n deprecate(/^0\\.0/, IS_CID_DEPRECATION);\n return !!(value && (value[cidSymbol] || value.asCID === value));\n }\n get toBaseEncodedString() {\n throw new Error('Deprecated, use .toString()');\n }\n get codec() {\n throw new Error('\"codec\" property is deprecated, use integer \"code\" property instead');\n }\n get buffer() {\n throw new Error('Deprecated .buffer property, use .bytes to get Uint8Array instead');\n }\n get multibaseName() {\n throw new Error('\"multibaseName\" property is deprecated');\n }\n get prefix() {\n throw new Error('\"prefix\" property is deprecated');\n }\n static asCID(value) {\n if (value instanceof CID) {\n return value;\n } else if (value != null && value.asCID === value) {\n const {version, code, multihash, bytes} = value;\n return new CID(version, code, multihash, bytes || encodeCID(version, code, multihash.bytes));\n } else if (value != null && value[cidSymbol] === true) {\n const {version, multihash, code} = value;\n const digest = Digest.decode(multihash);\n return CID.create(version, code, digest);\n } else {\n return null;\n }\n }\n static create(version, code, digest) {\n if (typeof code !== 'number') {\n throw new Error('String codecs are no longer supported');\n }\n switch (version) {\n case 0: {\n if (code !== DAG_PB_CODE) {\n throw new Error(`Version 0 CID must use dag-pb (code: ${ DAG_PB_CODE }) block encoding`);\n } else {\n return new CID(version, code, digest, digest.bytes);\n }\n }\n case 1: {\n const bytes = encodeCID(version, code, digest.bytes);\n return new CID(version, code, digest, bytes);\n }\n default: {\n throw new Error('Invalid version');\n }\n }\n }\n static createV0(digest) {\n return CID.create(0, DAG_PB_CODE, digest);\n }\n static createV1(code, digest) {\n return CID.create(1, code, digest);\n }\n static decode(bytes) {\n const [cid, remainder] = CID.decodeFirst(bytes);\n if (remainder.length) {\n throw new Error('Incorrect length');\n }\n return cid;\n }\n static decodeFirst(bytes) {\n const specs = CID.inspectBytes(bytes);\n const prefixSize = specs.size - specs.multihashSize;\n const multihashBytes = coerce(bytes.subarray(prefixSize, prefixSize + specs.multihashSize));\n if (multihashBytes.byteLength !== specs.multihashSize) {\n throw new Error('Incorrect length');\n }\n const digestBytes = multihashBytes.subarray(specs.multihashSize - specs.digestSize);\n const digest = new Digest.Digest(specs.multihashCode, specs.digestSize, digestBytes, multihashBytes);\n const cid = specs.version === 0 ? CID.createV0(digest) : CID.createV1(specs.codec, digest);\n return [\n cid,\n bytes.subarray(specs.size)\n ];\n }\n static inspectBytes(initialBytes) {\n let offset = 0;\n const next = () => {\n const [i, length] = varint.decode(initialBytes.subarray(offset));\n offset += length;\n return i;\n };\n let version = next();\n let codec = DAG_PB_CODE;\n if (version === 18) {\n version = 0;\n offset = 0;\n } else if (version === 1) {\n codec = next();\n }\n if (version !== 0 && version !== 1) {\n throw new RangeError(`Invalid CID version ${ version }`);\n }\n const prefixSize = offset;\n const multihashCode = next();\n const digestSize = next();\n const size = offset + digestSize;\n const multihashSize = size - prefixSize;\n return {\n version,\n codec,\n multihashCode,\n digestSize,\n multihashSize,\n size\n };\n }\n static parse(source, base) {\n const [prefix, bytes] = parseCIDtoBytes(source, base);\n const cid = CID.decode(bytes);\n cid._baseCache.set(prefix, source);\n return cid;\n }\n}\nconst parseCIDtoBytes = (source, base) => {\n switch (source[0]) {\n case 'Q': {\n const decoder = base || base58btc;\n return [\n base58btc.prefix,\n decoder.decode(`${ base58btc.prefix }${ source }`)\n ];\n }\n case base58btc.prefix: {\n const decoder = base || base58btc;\n return [\n base58btc.prefix,\n decoder.decode(source)\n ];\n }\n case base32.prefix: {\n const decoder = base || base32;\n return [\n base32.prefix,\n decoder.decode(source)\n ];\n }\n default: {\n if (base == null) {\n throw Error('To parse non base32 or base58btc encoded CID multibase decoder must be provided');\n }\n return [\n source[0],\n base.decode(source)\n ];\n }\n }\n};\nconst toStringV0 = (bytes, cache, base) => {\n const {prefix} = base;\n if (prefix !== base58btc.prefix) {\n throw Error(`Cannot string encode V0 in ${ base.name } encoding`);\n }\n const cid = cache.get(prefix);\n if (cid == null) {\n const cid = base.encode(bytes).slice(1);\n cache.set(prefix, cid);\n return cid;\n } else {\n return cid;\n }\n};\nconst toStringV1 = (bytes, cache, base) => {\n const {prefix} = base;\n const cid = cache.get(prefix);\n if (cid == null) {\n const cid = base.encode(bytes);\n cache.set(prefix, cid);\n return cid;\n } else {\n return cid;\n }\n};\nconst DAG_PB_CODE = 112;\nconst SHA_256_CODE = 18;\nconst encodeCID = (version, code, multihash) => {\n const codeOffset = varint.encodingLength(version);\n const hashOffset = codeOffset + varint.encodingLength(code);\n const bytes = new Uint8Array(hashOffset + multihash.byteLength);\n varint.encodeTo(version, bytes, 0);\n varint.encodeTo(code, bytes, codeOffset);\n bytes.set(multihash, hashOffset);\n return bytes;\n};\nconst cidSymbol = Symbol.for('@ipld/js-cid/CID');\nconst readonly = {\n writable: false,\n configurable: false,\n enumerable: true\n};\nconst hidden = {\n writable: false,\n enumerable: false,\n configurable: false\n};\nconst version = '0.0.0-dev';\nconst deprecate = (range, message) => {\n if (range.test(version)) {\n console.warn(message);\n } else {\n throw new Error(message);\n }\n};\nconst IS_CID_DEPRECATION = `CID.isCID(v) is deprecated and will be removed in the next major release.\nFollowing code pattern:\n\nif (CID.isCID(value)) {\n doSomethingWithCID(value)\n}\n\nIs replaced with:\n\nconst cid = CID.asCID(value)\nif (cid) {\n // Make sure to use cid instead of value\n doSomethingWithCID(cid)\n}\n`;", "import { from } from './base.js';\nimport {\n fromString,\n toString\n} from '../bytes.js';\nexport const identity = from({\n prefix: '\\0',\n name: 'identity',\n encode: buf => toString(buf),\n decode: str => fromString(str)\n});", "import { rfc4648 } from './base.js';\nexport const base2 = rfc4648({\n prefix: '0',\n name: 'base2',\n alphabet: '01',\n bitsPerChar: 1\n});", "import { rfc4648 } from './base.js';\nexport const base8 = rfc4648({\n prefix: '7',\n name: 'base8',\n alphabet: '01234567',\n bitsPerChar: 3\n});", "import { baseX } from './base.js';\nexport const base10 = baseX({\n prefix: '9',\n name: 'base10',\n alphabet: '0123456789'\n});", "import { rfc4648 } from './base.js';\nexport const base16 = rfc4648({\n prefix: 'f',\n name: 'base16',\n alphabet: '0123456789abcdef',\n bitsPerChar: 4\n});\nexport const base16upper = rfc4648({\n prefix: 'F',\n name: 'base16upper',\n alphabet: '0123456789ABCDEF',\n bitsPerChar: 4\n});", "import { baseX } from './base.js';\nexport const base36 = baseX({\n prefix: 'k',\n name: 'base36',\n alphabet: '0123456789abcdefghijklmnopqrstuvwxyz'\n});\nexport const base36upper = baseX({\n prefix: 'K',\n name: 'base36upper',\n alphabet: '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'\n});", "import { rfc4648 } from './base.js';\nexport const base64 = rfc4648({\n prefix: 'm',\n name: 'base64',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',\n bitsPerChar: 6\n});\nexport const base64pad = rfc4648({\n prefix: 'M',\n name: 'base64pad',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=',\n bitsPerChar: 6\n});\nexport const base64url = rfc4648({\n prefix: 'u',\n name: 'base64url',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_',\n bitsPerChar: 6\n});\nexport const base64urlpad = rfc4648({\n prefix: 'U',\n name: 'base64urlpad',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=',\n bitsPerChar: 6\n});", "import { from } from './base.js';\nconst alphabet = Array.from('\\uD83D\\uDE80\\uD83E\\uDE90\\u2604\\uD83D\\uDEF0\\uD83C\\uDF0C\\uD83C\\uDF11\\uD83C\\uDF12\\uD83C\\uDF13\\uD83C\\uDF14\\uD83C\\uDF15\\uD83C\\uDF16\\uD83C\\uDF17\\uD83C\\uDF18\\uD83C\\uDF0D\\uD83C\\uDF0F\\uD83C\\uDF0E\\uD83D\\uDC09\\u2600\\uD83D\\uDCBB\\uD83D\\uDDA5\\uD83D\\uDCBE\\uD83D\\uDCBF\\uD83D\\uDE02\\u2764\\uD83D\\uDE0D\\uD83E\\uDD23\\uD83D\\uDE0A\\uD83D\\uDE4F\\uD83D\\uDC95\\uD83D\\uDE2D\\uD83D\\uDE18\\uD83D\\uDC4D\\uD83D\\uDE05\\uD83D\\uDC4F\\uD83D\\uDE01\\uD83D\\uDD25\\uD83E\\uDD70\\uD83D\\uDC94\\uD83D\\uDC96\\uD83D\\uDC99\\uD83D\\uDE22\\uD83E\\uDD14\\uD83D\\uDE06\\uD83D\\uDE44\\uD83D\\uDCAA\\uD83D\\uDE09\\u263A\\uD83D\\uDC4C\\uD83E\\uDD17\\uD83D\\uDC9C\\uD83D\\uDE14\\uD83D\\uDE0E\\uD83D\\uDE07\\uD83C\\uDF39\\uD83E\\uDD26\\uD83C\\uDF89\\uD83D\\uDC9E\\u270C\\u2728\\uD83E\\uDD37\\uD83D\\uDE31\\uD83D\\uDE0C\\uD83C\\uDF38\\uD83D\\uDE4C\\uD83D\\uDE0B\\uD83D\\uDC97\\uD83D\\uDC9A\\uD83D\\uDE0F\\uD83D\\uDC9B\\uD83D\\uDE42\\uD83D\\uDC93\\uD83E\\uDD29\\uD83D\\uDE04\\uD83D\\uDE00\\uD83D\\uDDA4\\uD83D\\uDE03\\uD83D\\uDCAF\\uD83D\\uDE48\\uD83D\\uDC47\\uD83C\\uDFB6\\uD83D\\uDE12\\uD83E\\uDD2D\\u2763\\uD83D\\uDE1C\\uD83D\\uDC8B\\uD83D\\uDC40\\uD83D\\uDE2A\\uD83D\\uDE11\\uD83D\\uDCA5\\uD83D\\uDE4B\\uD83D\\uDE1E\\uD83D\\uDE29\\uD83D\\uDE21\\uD83E\\uDD2A\\uD83D\\uDC4A\\uD83E\\uDD73\\uD83D\\uDE25\\uD83E\\uDD24\\uD83D\\uDC49\\uD83D\\uDC83\\uD83D\\uDE33\\u270B\\uD83D\\uDE1A\\uD83D\\uDE1D\\uD83D\\uDE34\\uD83C\\uDF1F\\uD83D\\uDE2C\\uD83D\\uDE43\\uD83C\\uDF40\\uD83C\\uDF37\\uD83D\\uDE3B\\uD83D\\uDE13\\u2B50\\u2705\\uD83E\\uDD7A\\uD83C\\uDF08\\uD83D\\uDE08\\uD83E\\uDD18\\uD83D\\uDCA6\\u2714\\uD83D\\uDE23\\uD83C\\uDFC3\\uD83D\\uDC90\\u2639\\uD83C\\uDF8A\\uD83D\\uDC98\\uD83D\\uDE20\\u261D\\uD83D\\uDE15\\uD83C\\uDF3A\\uD83C\\uDF82\\uD83C\\uDF3B\\uD83D\\uDE10\\uD83D\\uDD95\\uD83D\\uDC9D\\uD83D\\uDE4A\\uD83D\\uDE39\\uD83D\\uDDE3\\uD83D\\uDCAB\\uD83D\\uDC80\\uD83D\\uDC51\\uD83C\\uDFB5\\uD83E\\uDD1E\\uD83D\\uDE1B\\uD83D\\uDD34\\uD83D\\uDE24\\uD83C\\uDF3C\\uD83D\\uDE2B\\u26BD\\uD83E\\uDD19\\u2615\\uD83C\\uDFC6\\uD83E\\uDD2B\\uD83D\\uDC48\\uD83D\\uDE2E\\uD83D\\uDE46\\uD83C\\uDF7B\\uD83C\\uDF43\\uD83D\\uDC36\\uD83D\\uDC81\\uD83D\\uDE32\\uD83C\\uDF3F\\uD83E\\uDDE1\\uD83C\\uDF81\\u26A1\\uD83C\\uDF1E\\uD83C\\uDF88\\u274C\\u270A\\uD83D\\uDC4B\\uD83D\\uDE30\\uD83E\\uDD28\\uD83D\\uDE36\\uD83E\\uDD1D\\uD83D\\uDEB6\\uD83D\\uDCB0\\uD83C\\uDF53\\uD83D\\uDCA2\\uD83E\\uDD1F\\uD83D\\uDE41\\uD83D\\uDEA8\\uD83D\\uDCA8\\uD83E\\uDD2C\\u2708\\uD83C\\uDF80\\uD83C\\uDF7A\\uD83E\\uDD13\\uD83D\\uDE19\\uD83D\\uDC9F\\uD83C\\uDF31\\uD83D\\uDE16\\uD83D\\uDC76\\uD83E\\uDD74\\u25B6\\u27A1\\u2753\\uD83D\\uDC8E\\uD83D\\uDCB8\\u2B07\\uD83D\\uDE28\\uD83C\\uDF1A\\uD83E\\uDD8B\\uD83D\\uDE37\\uD83D\\uDD7A\\u26A0\\uD83D\\uDE45\\uD83D\\uDE1F\\uD83D\\uDE35\\uD83D\\uDC4E\\uD83E\\uDD32\\uD83E\\uDD20\\uD83E\\uDD27\\uD83D\\uDCCC\\uD83D\\uDD35\\uD83D\\uDC85\\uD83E\\uDDD0\\uD83D\\uDC3E\\uD83C\\uDF52\\uD83D\\uDE17\\uD83E\\uDD11\\uD83C\\uDF0A\\uD83E\\uDD2F\\uD83D\\uDC37\\u260E\\uD83D\\uDCA7\\uD83D\\uDE2F\\uD83D\\uDC86\\uD83D\\uDC46\\uD83C\\uDFA4\\uD83D\\uDE47\\uD83C\\uDF51\\u2744\\uD83C\\uDF34\\uD83D\\uDCA3\\uD83D\\uDC38\\uD83D\\uDC8C\\uD83D\\uDCCD\\uD83E\\uDD40\\uD83E\\uDD22\\uD83D\\uDC45\\uD83D\\uDCA1\\uD83D\\uDCA9\\uD83D\\uDC50\\uD83D\\uDCF8\\uD83D\\uDC7B\\uD83E\\uDD10\\uD83E\\uDD2E\\uD83C\\uDFBC\\uD83E\\uDD75\\uD83D\\uDEA9\\uD83C\\uDF4E\\uD83C\\uDF4A\\uD83D\\uDC7C\\uD83D\\uDC8D\\uD83D\\uDCE3\\uD83E\\uDD42');\nconst alphabetBytesToChars = alphabet.reduce((p, c, i) => {\n p[i] = c;\n return p;\n}, []);\nconst alphabetCharsToBytes = alphabet.reduce((p, c, i) => {\n p[c.codePointAt(0)] = i;\n return p;\n}, []);\nfunction encode(data) {\n return data.reduce((p, c) => {\n p += alphabetBytesToChars[c];\n return p;\n }, '');\n}\nfunction decode(str) {\n const byts = [];\n for (const char of str) {\n const byt = alphabetCharsToBytes[char.codePointAt(0)];\n if (byt === undefined) {\n throw new Error(`Non-base256emoji character: ${ char }`);\n }\n byts.push(byt);\n }\n return new Uint8Array(byts);\n}\nexport const base256emoji = from({\n prefix: '\\uD83D\\uDE80',\n name: 'base256emoji',\n encode,\n decode\n});", "import { from } from './hasher.js';\nconst sha = name => async data => new Uint8Array(await crypto.subtle.digest(name, data));\nexport const sha256 = from({\n name: 'sha2-256',\n code: 18,\n encode: sha('SHA-256')\n});\nexport const sha512 = from({\n name: 'sha2-512',\n code: 19,\n encode: sha('SHA-512')\n});", "import * as Digest from './digest.js';\nexport const from = ({name, code, encode}) => new Hasher(name, code, encode);\nexport class Hasher {\n constructor(name, code, encode) {\n this.name = name;\n this.code = code;\n this.encode = encode;\n }\n digest(input) {\n if (input instanceof Uint8Array) {\n const result = this.encode(input);\n return result instanceof Uint8Array ? Digest.create(this.code, result) : result.then(digest => Digest.create(this.code, digest));\n } else {\n throw Error('Unknown type, must be binary type');\n }\n }\n}", "import { coerce } from '../bytes.js';\nimport * as Digest from './digest.js';\nconst code = 0;\nconst name = 'identity';\nconst encode = coerce;\nconst digest = input => Digest.create(code, encode(input));\nexport const identity = {\n code,\n name,\n encode,\n digest\n};", "const textEncoder = new TextEncoder();\nconst textDecoder = new TextDecoder();\nexport const name = 'json';\nexport const code = 512;\nexport const encode = node => textEncoder.encode(JSON.stringify(node));\nexport const decode = data => JSON.parse(textDecoder.decode(data));", "import * as identityBase from './bases/identity.js';\nimport * as base2 from './bases/base2.js';\nimport * as base8 from './bases/base8.js';\nimport * as base10 from './bases/base10.js';\nimport * as base16 from './bases/base16.js';\nimport * as base32 from './bases/base32.js';\nimport * as base36 from './bases/base36.js';\nimport * as base58 from './bases/base58.js';\nimport * as base64 from './bases/base64.js';\nimport * as base256emoji from './bases/base256emoji.js';\nimport * as sha2 from './hashes/sha2.js';\nimport * as identity from './hashes/identity.js';\nimport * as raw from './codecs/raw.js';\nimport * as json from './codecs/json.js';\nimport {\n CID,\n hasher,\n digest,\n varint,\n bytes\n} from './index.js';\nconst bases = {\n ...identityBase,\n ...base2,\n ...base8,\n ...base10,\n ...base16,\n ...base32,\n ...base36,\n ...base58,\n ...base64,\n ...base256emoji\n};\nconst hashes = {\n ...sha2,\n ...identity\n};\nconst codecs = {\n raw,\n json\n};\nexport {\n CID,\n hasher,\n digest,\n varint,\n bytes,\n hashes,\n bases,\n codecs\n};", "import { bases } from 'multiformats/basics';\nfunction createCodec(name, prefix, encode, decode) {\n return {\n name,\n prefix,\n encoder: {\n name,\n prefix,\n encode\n },\n decoder: { decode }\n };\n}\nconst string = createCodec('utf8', 'u', buf => {\n const decoder = new TextDecoder('utf8');\n return 'u' + decoder.decode(buf);\n}, str => {\n const encoder = new TextEncoder();\n return encoder.encode(str.substring(1));\n});\nconst ascii = createCodec('ascii', 'a', buf => {\n let string = 'a';\n for (let i = 0; i < buf.length; i++) {\n string += String.fromCharCode(buf[i]);\n }\n return string;\n}, str => {\n str = str.substring(1);\n const buf = new Uint8Array(str.length);\n for (let i = 0; i < str.length; i++) {\n buf[i] = str.charCodeAt(i);\n }\n return buf;\n});\nconst BASES = {\n utf8: string,\n 'utf-8': string,\n hex: bases.base16,\n latin1: ascii,\n ascii: ascii,\n binary: ascii,\n ...bases\n};\nexport default BASES;", "import bases from './util/bases.js';\nexport function fromString(string, encoding = 'utf8') {\n const base = bases[encoding];\n if (!base) {\n throw new Error(`Unsupported encoding \"${ encoding }\"`);\n }\n return base.decoder.decode(`${ base.prefix }${ string }`);\n}", "import bases from './util/bases.js';\nexport function toString(array, encoding = 'utf8') {\n const base = bases[encoding];\n if (!base) {\n throw new Error(`Unsupported encoding \"${ encoding }\"`);\n }\n return base.encoder.encode(array).substring(1);\n}", "import { CID } from 'multiformats/cid'\nimport * as ui8 from 'uint8arrays'\n\nexport type JsonValue =\n | boolean\n | number\n | string\n | null\n | undefined\n | unknown\n | Array<JsonValue>\n | { [key: string]: JsonValue }\n\nexport type IpldValue =\n | JsonValue\n | CID\n | Uint8Array\n | Array<IpldValue>\n | { [key: string]: IpldValue }\n\n// @NOTE avoiding use of check.is() here only because it makes\n// these implementations slow, and they often live in hot paths.\n\nexport const jsonToIpld = (val: JsonValue): IpldValue => {\n // walk arrays\n if (Array.isArray(val)) {\n return val.map((item) => jsonToIpld(item))\n }\n // objects\n if (val && typeof val === 'object') {\n // check for dag json values\n if (typeof val['$link'] === 'string' && Object.keys(val).length === 1) {\n return CID.parse(val['$link'])\n }\n if (typeof val['$bytes'] === 'string' && Object.keys(val).length === 1) {\n return ui8.fromString(val['$bytes'], 'base64')\n }\n // walk plain objects\n const toReturn = {}\n for (const key of Object.keys(val)) {\n toReturn[key] = jsonToIpld(val[key])\n }\n return toReturn\n }\n // pass through\n return val\n}\n\nexport const ipldToJson = (val: IpldValue): JsonValue => {\n // walk arrays\n if (Array.isArray(val)) {\n return val.map((item) => ipldToJson(item))\n }\n // objects\n if (val && typeof val === 'object') {\n // convert bytes\n if (val instanceof Uint8Array) {\n return {\n $bytes: ui8.toString(val, 'base64'),\n }\n }\n // convert cids\n if (CID.asCID(val)) {\n return {\n $link: (val as CID).toString(),\n }\n }\n // walk plain objects\n const toReturn = {}\n for (const key of Object.keys(val)) {\n toReturn[key] = ipldToJson(val[key])\n }\n return toReturn\n }\n // pass through\n return val as JsonValue\n}\n\nexport const ipldEquals = (a: IpldValue, b: IpldValue): boolean => {\n // walk arrays\n if (Array.isArray(a) && Array.isArray(b)) {\n if (a.length !== b.length) return false\n for (let i = 0; i < a.length; i++) {\n if (!ipldEquals(a[i], b[i])) return false\n }\n return true\n }\n // objects\n if (a && b && typeof a === 'object' && typeof b === 'object') {\n // check bytes\n if (a instanceof Uint8Array && b instanceof Uint8Array) {\n return ui8.equals(a, b)\n }\n // check cids\n if (CID.asCID(a) && CID.asCID(b)) {\n return CID.asCID(a)?.equals(CID.asCID(b))\n }\n // walk plain objects\n if (Object.keys(a).length !== Object.keys(b).length) return false\n for (const key of Object.keys(a)) {\n if (!ipldEquals(a[key], b[key])) return false\n }\n return true\n }\n return a === b\n}\n", "var util;\n(function (util) {\n util.assertEqual = (val) => val;\n function assertIs(_arg) { }\n util.assertIs = assertIs;\n function assertNever(_x) {\n throw new Error();\n }\n util.assertNever = assertNever;\n util.arrayToEnum = (items) => {\n const obj = {};\n for (const item of items) {\n obj[item] = item;\n }\n return obj;\n };\n util.getValidEnumValues = (obj) => {\n const validKeys = util.objectKeys(obj).filter((k) => typeof obj[obj[k]] !== \"number\");\n const filtered = {};\n for (const k of validKeys) {\n filtered[k] = obj[k];\n }\n return util.objectValues(filtered);\n };\n util.objectValues = (obj) => {\n return util.objectKeys(obj).map(function (e) {\n return obj[e];\n });\n };\n util.objectKeys = typeof Object.keys === \"function\" // eslint-disable-line ban/ban\n ? (obj) => Object.keys(obj) // eslint-disable-line ban/ban\n : (object) => {\n const keys = [];\n for (const key in object) {\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n keys.push(key);\n }\n }\n return keys;\n };\n util.find = (arr, checker) => {\n for (const item of arr) {\n if (checker(item))\n return item;\n }\n return undefined;\n };\n util.isInteger = typeof Number.isInteger === \"function\"\n ? (val) => Number.isInteger(val) // eslint-disable-line ban/ban\n : (val) => typeof val === \"number\" && isFinite(val) && Math.floor(val) === val;\n function joinValues(array, separator = \" | \") {\n return array\n .map((val) => (typeof val === \"string\" ? `'${val}'` : val))\n .join(separator);\n }\n util.joinValues = joinValues;\n util.jsonStringifyReplacer = (_, value) => {\n if (typeof value === \"bigint\") {\n return value.toString();\n }\n return value;\n };\n})(util || (util = {}));\nconst ZodParsedType = util.arrayToEnum([\n \"string\",\n \"nan\",\n \"number\",\n \"integer\",\n \"float\",\n \"boolean\",\n \"date\",\n \"bigint\",\n \"symbol\",\n \"function\",\n \"undefined\",\n \"null\",\n \"array\",\n \"object\",\n \"unknown\",\n \"promise\",\n \"void\",\n \"never\",\n \"map\",\n \"set\",\n]);\nconst getParsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"undefined\":\n return ZodParsedType.undefined;\n case \"string\":\n return ZodParsedType.string;\n case \"number\":\n return isNaN(data) ? ZodParsedType.nan : ZodParsedType.number;\n case \"boolean\":\n return ZodParsedType.boolean;\n case \"function\":\n return ZodParsedType.function;\n case \"bigint\":\n return ZodParsedType.bigint;\n case \"object\":\n if (Array.isArray(data)) {\n return ZodParsedType.array;\n }\n if (data === null) {\n return ZodParsedType.null;\n }\n if (data.then &&\n typeof data.then === \"function\" &&\n data.catch &&\n typeof data.catch === \"function\") {\n return ZodParsedType.promise;\n }\n if (typeof Map !== \"undefined\" && data instanceof Map) {\n return ZodParsedType.map;\n }\n if (typeof Set !== \"undefined\" && data instanceof Set) {\n return ZodParsedType.set;\n }\n if (typeof Date !== \"undefined\" && data instanceof Date) {\n return ZodParsedType.date;\n }\n return ZodParsedType.object;\n default:\n return ZodParsedType.unknown;\n }\n};\n\nconst ZodIssueCode = util.arrayToEnum([\n \"invalid_type\",\n \"invalid_literal\",\n \"custom\",\n \"invalid_union\",\n \"invalid_union_discriminator\",\n \"invalid_enum_value\",\n \"unrecognized_keys\",\n \"invalid_arguments\",\n \"invalid_return_type\",\n \"invalid_date\",\n \"invalid_string\",\n \"too_small\",\n \"too_big\",\n \"invalid_intersection_types\",\n \"not_multiple_of\",\n]);\nconst quotelessJson = (obj) => {\n const json = JSON.stringify(obj, null, 2);\n return json.replace(/\"([^\"]+)\":/g, \"$1:\");\n};\nclass ZodError extends Error {\n constructor(issues) {\n super();\n this.issues = [];\n this.addIssue = (sub) => {\n this.issues = [...this.issues, sub];\n };\n this.addIssues = (subs = []) => {\n this.issues = [...this.issues, ...subs];\n };\n const actualProto = new.target.prototype;\n if (Object.setPrototypeOf) {\n // eslint-disable-next-line ban/ban\n Object.setPrototypeOf(this, actualProto);\n }\n else {\n this.__proto__ = actualProto;\n }\n this.name = \"ZodError\";\n this.issues = issues;\n }\n get errors() {\n return this.issues;\n }\n format(_mapper) {\n const mapper = _mapper ||\n function (issue) {\n return issue.message;\n };\n const fieldErrors = { _errors: [] };\n const processError = (error) => {\n for (const issue of error.issues) {\n if (issue.code === \"invalid_union\") {\n issue.unionErrors.map(processError);\n }\n else if (issue.code === \"invalid_return_type\") {\n processError(issue.returnTypeError);\n }\n else if (issue.code === \"invalid_arguments\") {\n processError(issue.argumentsError);\n }\n else if (issue.path.length === 0) {\n fieldErrors._errors.push(mapper(issue));\n }\n else {\n let curr = fieldErrors;\n let i = 0;\n while (i < issue.path.length) {\n const el = issue.path[i];\n const terminal = i === issue.path.length - 1;\n if (!terminal) {\n curr[el] = curr[el] || { _errors: [] };\n // if (typeof el === \"string\") {\n // curr[el] = curr[el] || { _errors: [] };\n // } else if (typeof el === \"number\") {\n // const errorArray: any = [];\n // errorArray._errors = [];\n // curr[el] = curr[el] || errorArray;\n // }\n }\n else {\n curr[el] = curr[el] || { _errors: [] };\n curr[el]._errors.push(mapper(issue));\n }\n curr = curr[el];\n i++;\n }\n }\n }\n };\n processError(this);\n return fieldErrors;\n }\n toString() {\n return this.message;\n }\n get message() {\n return JSON.stringify(this.issues, util.jsonStringifyReplacer, 2);\n }\n get isEmpty() {\n return this.issues.length === 0;\n }\n flatten(mapper = (issue) => issue.message) {\n const fieldErrors = {};\n const formErrors = [];\n for (const sub of this.issues) {\n if (sub.path.length > 0) {\n fieldErrors[sub.path[0]] = fieldErrors[sub.path[0]] || [];\n fieldErrors[sub.path[0]].push(mapper(sub));\n }\n else {\n formErrors.push(mapper(sub));\n }\n }\n return { formErrors, fieldErrors };\n }\n get formErrors() {\n return this.flatten();\n }\n}\nZodError.create = (issues) => {\n const error = new ZodError(issues);\n return error;\n};\n\nconst errorMap = (issue, _ctx) => {\n let message;\n switch (issue.code) {\n case ZodIssueCode.invalid_type:\n if (issue.received === ZodParsedType.undefined) {\n message = \"Required\";\n }\n else {\n message = `Expected ${issue.expected}, received ${issue.received}`;\n }\n break;\n case ZodIssueCode.invalid_literal:\n message = `Invalid literal value, expected ${JSON.stringify(issue.expected, util.jsonStringifyReplacer)}`;\n break;\n case ZodIssueCode.unrecognized_keys:\n message = `Unrecognized key(s) in object: ${util.joinValues(issue.keys, \", \")}`;\n break;\n case ZodIssueCode.invalid_union:\n message = `Invalid input`;\n break;\n case ZodIssueCode.invalid_union_discriminator:\n message = `Invalid discriminator value. Expected ${util.joinValues(issue.options)}`;\n break;\n case ZodIssueCode.invalid_enum_value:\n message = `Invalid enum value. Expected ${util.joinValues(issue.options)}, received '${issue.received}'`;\n break;\n case ZodIssueCode.invalid_arguments:\n message = `Invalid function arguments`;\n break;\n case ZodIssueCode.invalid_return_type:\n message = `Invalid function return type`;\n break;\n case ZodIssueCode.invalid_date:\n message = `Invalid date`;\n break;\n case ZodIssueCode.invalid_string:\n if (typeof issue.validation === \"object\") {\n if (\"startsWith\" in issue.validation) {\n message = `Invalid input: must start with \"${issue.validation.startsWith}\"`;\n }\n else if (\"endsWith\" in issue.validation) {\n message = `Invalid input: must end with \"${issue.validation.endsWith}\"`;\n }\n else {\n util.assertNever(issue.validation);\n }\n }\n else if (issue.validation !== \"regex\") {\n message = `Invalid ${issue.validation}`;\n }\n else {\n message = \"Invalid\";\n }\n break;\n case ZodIssueCode.too_small:\n if (issue.type === \"array\")\n message = `Array must contain ${issue.inclusive ? `at least` : `more than`} ${issue.minimum} element(s)`;\n else if (issue.type === \"string\")\n message = `String must contain ${issue.inclusive ? `at least` : `over`} ${issue.minimum} character(s)`;\n else if (issue.type === \"number\")\n message = `Number must be greater than ${issue.inclusive ? `or equal to ` : ``}${issue.minimum}`;\n else if (issue.type === \"date\")\n message = `Date must be greater than ${issue.inclusive ? `or equal to ` : ``}${new Date(issue.minimum)}`;\n else\n message = \"Invalid input\";\n break;\n case ZodIssueCode.too_big:\n if (issue.type === \"array\")\n message = `Array must contain ${issue.inclusive ? `at most` : `less than`} ${issue.maximum} element(s)`;\n else if (issue.type === \"string\")\n message = `String must contain ${issue.inclusive ? `at most` : `under`} ${issue.maximum} character(s)`;\n else if (issue.type === \"number\")\n message = `Number must be less than ${issue.inclusive ? `or equal to ` : ``}${issue.maximum}`;\n else if (issue.type === \"date\")\n message = `Date must be smaller than ${issue.inclusive ? `or equal to ` : ``}${new Date(issue.maximum)}`;\n else\n message = \"Invalid input\";\n break;\n case ZodIssueCode.custom:\n message = `Invalid input`;\n break;\n case ZodIssueCode.invalid_intersection_types:\n message = `Intersection results could not be merged`;\n break;\n case ZodIssueCode.not_multiple_of:\n message = `Number must be a multiple of ${issue.multipleOf}`;\n break;\n default:\n message = _ctx.defaultError;\n util.assertNever(issue);\n }\n return { message };\n};\n\nlet overrideErrorMap = errorMap;\nfunction setErrorMap(map) {\n overrideErrorMap = map;\n}\nfunction getErrorMap() {\n return overrideErrorMap;\n}\n\nconst makeIssue = (params) => {\n const { data, path, errorMaps, issueData } = params;\n const fullPath = [...path, ...(issueData.path || [])];\n const fullIssue = {\n ...issueData,\n path: fullPath,\n };\n let errorMessage = \"\";\n const maps = errorMaps\n .filter((m) => !!m)\n .slice()\n .reverse();\n for (const map of maps) {\n errorMessage = map(fullIssue, { data, defaultError: errorMessage }).message;\n }\n return {\n ...issueData,\n path: fullPath,\n message: issueData.message || errorMessage,\n };\n};\nconst EMPTY_PATH = [];\nfunction addIssueToContext(ctx, issueData) {\n const issue = makeIssue({\n issueData: issueData,\n data: ctx.data,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap,\n ctx.schemaErrorMap,\n getErrorMap(),\n errorMap,\n ].filter((x) => !!x),\n });\n ctx.common.issues.push(issue);\n}\nclass ParseStatus {\n constructor() {\n this.value = \"valid\";\n }\n dirty() {\n if (this.value === \"valid\")\n this.value = \"dirty\";\n }\n abort() {\n if (this.value !== \"aborted\")\n this.value = \"aborted\";\n }\n static mergeArray(status, results) {\n const arrayValue = [];\n for (const s of results) {\n if (s.status === \"aborted\")\n return INVALID;\n if (s.status === \"dirty\")\n status.dirty();\n arrayValue.push(s.value);\n }\n return { status: status.value, value: arrayValue };\n }\n static async mergeObjectAsync(status, pairs) {\n const syncPairs = [];\n for (const pair of pairs) {\n syncPairs.push({\n key: await pair.key,\n value: await pair.value,\n });\n }\n return ParseStatus.mergeObjectSync(status, syncPairs);\n }\n static mergeObjectSync(status, pairs) {\n const finalObject = {};\n for (const pair of pairs) {\n const { key, value } = pair;\n if (key.status === \"aborted\")\n return INVALID;\n if (value.status === \"aborted\")\n return INVALID;\n if (key.status === \"dirty\")\n status.dirty();\n if (value.status === \"dirty\")\n status.dirty();\n if (typeof value.value !== \"undefined\" || pair.alwaysSet) {\n finalObject[key.value] = value.value;\n }\n }\n return { status: status.value, value: finalObject };\n }\n}\nconst INVALID = Object.freeze({\n status: \"aborted\",\n});\nconst DIRTY = (value) => ({ status: \"dirty\", value });\nconst OK = (value) => ({ status: \"valid\", value });\nconst isAborted = (x) => x.status === \"aborted\";\nconst isDirty = (x) => x.status === \"dirty\";\nconst isValid = (x) => x.status === \"valid\";\nconst isAsync = (x) => typeof Promise !== undefined && x instanceof Promise;\n\nvar errorUtil;\n(function (errorUtil) {\n errorUtil.errToObj = (message) => typeof message === \"string\" ? { message } : message || {};\n errorUtil.toString = (message) => typeof message === \"string\" ? message : message === null || message === void 0 ? void 0 : message.message;\n})(errorUtil || (errorUtil = {}));\n\nclass ParseInputLazyPath {\n constructor(parent, value, path, key) {\n this.parent = parent;\n this.data = value;\n this._path = path;\n this._key = key;\n }\n get path() {\n return this._path.concat(this._key);\n }\n}\nconst handleResult = (ctx, result) => {\n if (isValid(result)) {\n return { success: true, data: result.value };\n }\n else {\n if (!ctx.common.issues.length) {\n throw new Error(\"Validation failed but no issues detected.\");\n }\n const error = new ZodError(ctx.common.issues);\n return { success: false, error };\n }\n};\nfunction processCreateParams(params) {\n if (!params)\n return {};\n const { errorMap, invalid_type_error, required_error, description } = params;\n if (errorMap && (invalid_type_error || required_error)) {\n throw new Error(`Can't use \"invalid_type_error\" or \"required_error\" in conjunction with custom error map.`);\n }\n if (errorMap)\n return { errorMap: errorMap, description };\n const customMap = (iss, ctx) => {\n if (iss.code !== \"invalid_type\")\n return { message: ctx.defaultError };\n if (typeof ctx.data === \"undefined\") {\n return { message: required_error !== null && required_error !== void 0 ? required_error : ctx.defaultError };\n }\n return { message: invalid_type_error !== null && invalid_type_error !== void 0 ? invalid_type_error : ctx.defaultError };\n };\n return { errorMap: customMap, description };\n}\nclass ZodType {\n constructor(def) {\n /** Alias of safeParseAsync */\n this.spa = this.safeParseAsync;\n this.superRefine = this._refinement;\n this._def = def;\n this.parse = this.parse.bind(this);\n this.safeParse = this.safeParse.bind(this);\n this.parseAsync = this.parseAsync.bind(this);\n this.safeParseAsync = this.safeParseAsync.bind(this);\n this.spa = this.spa.bind(this);\n this.refine = this.refine.bind(this);\n this.refinement = this.refinement.bind(this);\n this.superRefine = this.superRefine.bind(this);\n this.optional = this.optional.bind(this);\n this.nullable = this.nullable.bind(this);\n this.nullish = this.nullish.bind(this);\n this.array = this.array.bind(this);\n this.promise = this.promise.bind(this);\n this.or = this.or.bind(this);\n this.and = this.and.bind(this);\n this.transform = this.transform.bind(this);\n this.default = this.default.bind(this);\n this.describe = this.describe.bind(this);\n this.isNullable = this.isNullable.bind(this);\n this.isOptional = this.isOptional.bind(this);\n }\n get description() {\n return this._def.description;\n }\n _getType(input) {\n return getParsedType(input.data);\n }\n _getOrReturnCtx(input, ctx) {\n return (ctx || {\n common: input.parent.common,\n data: input.data,\n parsedType: getParsedType(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent,\n });\n }\n _processInputParams(input) {\n return {\n status: new ParseStatus(),\n ctx: {\n common: input.parent.common,\n data: input.data,\n parsedType: getParsedType(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent,\n },\n };\n }\n _parseSync(input) {\n const result = this._parse(input);\n if (isAsync(result)) {\n throw new Error(\"Synchronous parse encountered promise.\");\n }\n return result;\n }\n _parseAsync(input) {\n const result = this._parse(input);\n return Promise.resolve(result);\n }\n parse(data, params) {\n const result = this.safeParse(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n safeParse(data, params) {\n var _a;\n const ctx = {\n common: {\n issues: [],\n async: (_a = params === null || params === void 0 ? void 0 : params.async) !== null && _a !== void 0 ? _a : false,\n contextualErrorMap: params === null || params === void 0 ? void 0 : params.errorMap,\n },\n path: (params === null || params === void 0 ? void 0 : params.path) || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n const result = this._parseSync({ data, path: ctx.path, parent: ctx });\n return handleResult(ctx, result);\n }\n async parseAsync(data, params) {\n const result = await this.safeParseAsync(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n async safeParseAsync(data, params) {\n const ctx = {\n common: {\n issues: [],\n contextualErrorMap: params === null || params === void 0 ? void 0 : params.errorMap,\n async: true,\n },\n path: (params === null || params === void 0 ? void 0 : params.path) || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n const maybeAsyncResult = this._parse({ data, path: [], parent: ctx });\n const result = await (isAsync(maybeAsyncResult)\n ? maybeAsyncResult\n : Promise.resolve(maybeAsyncResult));\n return handleResult(ctx, result);\n }\n refine(check, message) {\n const getIssueProperties = (val) => {\n if (typeof message === \"string\" || typeof message === \"undefined\") {\n return { message };\n }\n else if (typeof message === \"function\") {\n return message(val);\n }\n else {\n return message;\n }\n };\n return this._refinement((val, ctx) => {\n const result = check(val);\n const setError = () => ctx.addIssue({\n code: ZodIssueCode.custom,\n ...getIssueProperties(val),\n });\n if (typeof Promise !== \"undefined\" && result instanceof Promise) {\n return result.then((data) => {\n if (!data) {\n setError();\n return false;\n }\n else {\n return true;\n }\n });\n }\n if (!result) {\n setError();\n return false;\n }\n else {\n return true;\n }\n });\n }\n refinement(check, refinementData) {\n return this._refinement((val, ctx) => {\n if (!check(val)) {\n ctx.addIssue(typeof refinementData === \"function\"\n ? refinementData(val, ctx)\n : refinementData);\n return false;\n }\n else {\n return true;\n }\n });\n }\n _refinement(refinement) {\n return new ZodEffects({\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"refinement\", refinement },\n });\n }\n optional() {\n return ZodOptional.create(this);\n }\n nullable() {\n return ZodNullable.create(this);\n }\n nullish() {\n return this.optional().nullable();\n }\n array() {\n return ZodArray.create(this);\n }\n promise() {\n return ZodPromise.create(this);\n }\n or(option) {\n return ZodUnion.create([this, option]);\n }\n and(incoming) {\n return ZodIntersection.create(this, incoming);\n }\n transform(transform) {\n return new ZodEffects({\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"transform\", transform },\n });\n }\n default(def) {\n const defaultValueFunc = typeof def === \"function\" ? def : () => def;\n return new ZodDefault({\n innerType: this,\n defaultValue: defaultValueFunc,\n typeName: ZodFirstPartyTypeKind.ZodDefault,\n });\n }\n brand() {\n return new ZodBranded({\n typeName: ZodFirstPartyTypeKind.ZodBranded,\n type: this,\n ...processCreateParams(undefined),\n });\n }\n describe(description) {\n const This = this.constructor;\n return new This({\n ...this._def,\n description,\n });\n }\n isOptional() {\n return this.safeParse(undefined).success;\n }\n isNullable() {\n return this.safeParse(null).success;\n }\n}\nconst cuidRegex = /^c[^\\s-]{8,}$/i;\nconst uuidRegex = /^([a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[a-f0-9]{4}-[a-f0-9]{12}|00000000-0000-0000-0000-000000000000)$/i;\n// from https://stackoverflow.com/a/46181/1550155\n// old version: too slow, didn't support unicode\n// const emailRegex = /^((([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))$/i;\n// eslint-disable-next-line\nconst emailRegex = /^(([^<>()[\\]\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@(([^<>()[\\]\\.,;:\\s@\\\"]+\\.)+[^<>()[\\]\\.,;:\\s@\\\"]{2,})$/i;\nclass ZodString extends ZodType {\n constructor() {\n super(...arguments);\n this._regex = (regex, validation, message) => this.refinement((data) => regex.test(data), {\n validation,\n code: ZodIssueCode.invalid_string,\n ...errorUtil.errToObj(message),\n });\n /**\n * @deprecated Use z.string().min(1) instead.\n * @see {@link ZodString.min}\n */\n this.nonempty = (message) => this.min(1, errorUtil.errToObj(message));\n this.trim = () => new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"trim\" }],\n });\n }\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.string) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.string,\n received: ctx.parsedType,\n }\n //\n );\n return INVALID;\n }\n const status = new ParseStatus();\n let ctx = undefined;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.length < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"string\",\n inclusive: true,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n if (input.data.length > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"string\",\n inclusive: true,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"email\") {\n if (!emailRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"email\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"uuid\") {\n if (!uuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"uuid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cuid\") {\n if (!cuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cuid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"url\") {\n try {\n new URL(input.data);\n }\n catch (_a) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"url\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"regex\") {\n check.regex.lastIndex = 0;\n const testResult = check.regex.test(input.data);\n if (!testResult) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"regex\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"trim\") {\n input.data = input.data.trim();\n }\n else if (check.kind === \"startsWith\") {\n if (!input.data.startsWith(check.value)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { startsWith: check.value },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"endsWith\") {\n if (!input.data.endsWith(check.value)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { endsWith: check.value },\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n _addCheck(check) {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n email(message) {\n return this._addCheck({ kind: \"email\", ...errorUtil.errToObj(message) });\n }\n url(message) {\n return this._addCheck({ kind: \"url\", ...errorUtil.errToObj(message) });\n }\n uuid(message) {\n return this._addCheck({ kind: \"uuid\", ...errorUtil.errToObj(message) });\n }\n cuid(message) {\n return this._addCheck({ kind: \"cuid\", ...errorUtil.errToObj(message) });\n }\n regex(regex, message) {\n return this._addCheck({\n kind: \"regex\",\n regex: regex,\n ...errorUtil.errToObj(message),\n });\n }\n startsWith(value, message) {\n return this._addCheck({\n kind: \"startsWith\",\n value: value,\n ...errorUtil.errToObj(message),\n });\n }\n endsWith(value, message) {\n return this._addCheck({\n kind: \"endsWith\",\n value: value,\n ...errorUtil.errToObj(message),\n });\n }\n min(minLength, message) {\n return this._addCheck({\n kind: \"min\",\n value: minLength,\n ...errorUtil.errToObj(message),\n });\n }\n max(maxLength, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxLength,\n ...errorUtil.errToObj(message),\n });\n }\n length(len, message) {\n return this.min(len, message).max(len, message);\n }\n get isEmail() {\n return !!this._def.checks.find((ch) => ch.kind === \"email\");\n }\n get isURL() {\n return !!this._def.checks.find((ch) => ch.kind === \"url\");\n }\n get isUUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"uuid\");\n }\n get isCUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"cuid\");\n }\n get minLength() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxLength() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n}\nZodString.create = (params) => {\n return new ZodString({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodString,\n ...processCreateParams(params),\n });\n};\n// https://stackoverflow.com/questions/3966484/why-does-modulus-operator-return-fractional-number-in-javascript/31711034#31711034\nfunction floatSafeRemainder(val, step) {\n const valDecCount = (val.toString().split(\".\")[1] || \"\").length;\n const stepDecCount = (step.toString().split(\".\")[1] || \"\").length;\n const decCount = valDecCount > stepDecCount ? valDecCount : stepDecCount;\n const valInt = parseInt(val.toFixed(decCount).replace(\".\", \"\"));\n const stepInt = parseInt(step.toFixed(decCount).replace(\".\", \"\"));\n return (valInt % stepInt) / Math.pow(10, decCount);\n}\nclass ZodNumber extends ZodType {\n constructor() {\n super(...arguments);\n this.min = this.gte;\n this.max = this.lte;\n this.step = this.multipleOf;\n }\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.number) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.number,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n let ctx = undefined;\n const status = new ParseStatus();\n for (const check of this._def.checks) {\n if (check.kind === \"int\") {\n if (!util.isInteger(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: \"integer\",\n received: \"float\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"min\") {\n const tooSmall = check.inclusive\n ? input.data < check.value\n : input.data <= check.value;\n if (tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n const tooBig = check.inclusive\n ? input.data > check.value\n : input.data >= check.value;\n if (tooBig) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"multipleOf\") {\n if (floatSafeRemainder(input.data, check.value) !== 0) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_multiple_of,\n multipleOf: check.value,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n gte(value, message) {\n return this.setLimit(\"min\", value, true, errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, errorUtil.toString(message));\n }\n setLimit(kind, value, inclusive, message) {\n return new ZodNumber({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind,\n value,\n inclusive,\n message: errorUtil.toString(message),\n },\n ],\n });\n }\n _addCheck(check) {\n return new ZodNumber({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n int(message) {\n return this._addCheck({\n kind: \"int\",\n message: errorUtil.toString(message),\n });\n }\n positive(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n nonpositive(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value: value,\n message: errorUtil.toString(message),\n });\n }\n get minValue() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxValue() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n get isInt() {\n return !!this._def.checks.find((ch) => ch.kind === \"int\");\n }\n}\nZodNumber.create = (params) => {\n return new ZodNumber({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodNumber,\n ...processCreateParams(params),\n });\n};\nclass ZodBigInt extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.bigint) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.bigint,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodBigInt.create = (params) => {\n return new ZodBigInt({\n typeName: ZodFirstPartyTypeKind.ZodBigInt,\n ...processCreateParams(params),\n });\n};\nclass ZodBoolean extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.boolean) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.boolean,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodBoolean.create = (params) => {\n return new ZodBoolean({\n typeName: ZodFirstPartyTypeKind.ZodBoolean,\n ...processCreateParams(params),\n });\n};\nclass ZodDate extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.date) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.date,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (isNaN(input.data.getTime())) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_date,\n });\n return INVALID;\n }\n const status = new ParseStatus();\n let ctx = undefined;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.getTime() < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n message: check.message,\n inclusive: true,\n minimum: check.value,\n type: \"date\",\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n if (input.data.getTime() > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n message: check.message,\n inclusive: true,\n maximum: check.value,\n type: \"date\",\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return {\n status: status.value,\n value: new Date(input.data.getTime()),\n };\n }\n _addCheck(check) {\n return new ZodDate({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n min(minDate, message) {\n return this._addCheck({\n kind: \"min\",\n value: minDate.getTime(),\n message: errorUtil.toString(message),\n });\n }\n max(maxDate, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxDate.getTime(),\n message: errorUtil.toString(message),\n });\n }\n get minDate() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min != null ? new Date(min) : null;\n }\n get maxDate() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max != null ? new Date(max) : null;\n }\n}\nZodDate.create = (params) => {\n return new ZodDate({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodDate,\n ...processCreateParams(params),\n });\n};\nclass ZodUndefined extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.undefined,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodUndefined.create = (params) => {\n return new ZodUndefined({\n typeName: ZodFirstPartyTypeKind.ZodUndefined,\n ...processCreateParams(params),\n });\n};\nclass ZodNull extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.null) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.null,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodNull.create = (params) => {\n return new ZodNull({\n typeName: ZodFirstPartyTypeKind.ZodNull,\n ...processCreateParams(params),\n });\n};\nclass ZodAny extends ZodType {\n constructor() {\n super(...arguments);\n // to prevent instances of other classes from extending ZodAny. this causes issues with catchall in ZodObject.\n this._any = true;\n }\n _parse(input) {\n return OK(input.data);\n }\n}\nZodAny.create = (params) => {\n return new ZodAny({\n typeName: ZodFirstPartyTypeKind.ZodAny,\n ...processCreateParams(params),\n });\n};\nclass ZodUnknown extends ZodType {\n constructor() {\n super(...arguments);\n // required\n this._unknown = true;\n }\n _parse(input) {\n return OK(input.data);\n }\n}\nZodUnknown.create = (params) => {\n return new ZodUnknown({\n typeName: ZodFirstPartyTypeKind.ZodUnknown,\n ...processCreateParams(params),\n });\n};\nclass ZodNever extends ZodType {\n _parse(input) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.never,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n}\nZodNever.create = (params) => {\n return new ZodNever({\n typeName: ZodFirstPartyTypeKind.ZodNever,\n ...processCreateParams(params),\n });\n};\nclass ZodVoid extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.void,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodVoid.create = (params) => {\n return new ZodVoid({\n typeName: ZodFirstPartyTypeKind.ZodVoid,\n ...processCreateParams(params),\n });\n};\nclass ZodArray extends ZodType {\n _parse(input) {\n const { ctx, status } = this._processInputParams(input);\n const def = this._def;\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (def.minLength !== null) {\n if (ctx.data.length < def.minLength.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: def.minLength.value,\n type: \"array\",\n inclusive: true,\n message: def.minLength.message,\n });\n status.dirty();\n }\n }\n if (def.maxLength !== null) {\n if (ctx.data.length > def.maxLength.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: def.maxLength.value,\n type: \"array\",\n inclusive: true,\n message: def.maxLength.message,\n });\n status.dirty();\n }\n }\n if (ctx.common.async) {\n return Promise.all(ctx.data.map((item, i) => {\n return def.type._parseAsync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n })).then((result) => {\n return ParseStatus.mergeArray(status, result);\n });\n }\n const result = ctx.data.map((item, i) => {\n return def.type._parseSync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n });\n return ParseStatus.mergeArray(status, result);\n }\n get element() {\n return this._def.type;\n }\n min(minLength, message) {\n return new ZodArray({\n ...this._def,\n minLength: { value: minLength, message: errorUtil.toString(message) },\n });\n }\n max(maxLength, message) {\n return new ZodArray({\n ...this._def,\n maxLength: { value: maxLength, message: errorUtil.toString(message) },\n });\n }\n length(len, message) {\n return this.min(len, message).max(len, message);\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nZodArray.create = (schema, params) => {\n return new ZodArray({\n type: schema,\n minLength: null,\n maxLength: null,\n typeName: ZodFirstPartyTypeKind.ZodArray,\n ...processCreateParams(params),\n });\n};\n/////////////////////////////////////////\n/////////////////////////////////////////\n////////// //////////\n////////// ZodObject //////////\n////////// //////////\n/////////////////////////////////////////\n/////////////////////////////////////////\nvar objectUtil;\n(function (objectUtil) {\n objectUtil.mergeShapes = (first, second) => {\n return {\n ...first,\n ...second,\n };\n };\n})(objectUtil || (objectUtil = {}));\nconst AugmentFactory = (def) => (augmentation) => {\n return new ZodObject({\n ...def,\n shape: () => ({\n ...def.shape(),\n ...augmentation,\n }),\n });\n};\nfunction deepPartialify(schema) {\n if (schema instanceof ZodObject) {\n const newShape = {};\n for (const key in schema.shape) {\n const fieldSchema = schema.shape[key];\n newShape[key] = ZodOptional.create(deepPartialify(fieldSchema));\n }\n return new ZodObject({\n ...schema._def,\n shape: () => newShape,\n });\n }\n else if (schema instanceof ZodArray) {\n return ZodArray.create(deepPartialify(schema.element));\n }\n else if (schema instanceof ZodOptional) {\n return ZodOptional.create(deepPartialify(schema.unwrap()));\n }\n else if (schema instanceof ZodNullable) {\n return ZodNullable.create(deepPartialify(schema.unwrap()));\n }\n else if (schema instanceof ZodTuple) {\n return ZodTuple.create(schema.items.map((item) => deepPartialify(item)));\n }\n else {\n return schema;\n }\n}\nclass ZodObject extends ZodType {\n constructor() {\n super(...arguments);\n this._cached = null;\n /**\n * @deprecated In most cases, this is no longer needed - unknown properties are now silently stripped.\n * If you want to pass through unknown properties, use `.passthrough()` instead.\n */\n this.nonstrict = this.passthrough;\n this.augment = AugmentFactory(this._def);\n this.extend = AugmentFactory(this._def);\n }\n _getCached() {\n if (this._cached !== null)\n return this._cached;\n const shape = this._def.shape();\n const keys = util.objectKeys(shape);\n return (this._cached = { shape, keys });\n }\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.object) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const { status, ctx } = this._processInputParams(input);\n const { shape, keys: shapeKeys } = this._getCached();\n const extraKeys = [];\n if (!(this._def.catchall instanceof ZodNever &&\n this._def.unknownKeys === \"strip\")) {\n for (const key in ctx.data) {\n if (!shapeKeys.includes(key)) {\n extraKeys.push(key);\n }\n }\n }\n const pairs = [];\n for (const key of shapeKeys) {\n const keyValidator = shape[key];\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: keyValidator._parse(new ParseInputLazyPath(ctx, value, ctx.path, key)),\n alwaysSet: key in ctx.data,\n });\n }\n if (this._def.catchall instanceof ZodNever) {\n const unknownKeys = this._def.unknownKeys;\n if (unknownKeys === \"passthrough\") {\n for (const key of extraKeys) {\n pairs.push({\n key: { status: \"valid\", value: key },\n value: { status: \"valid\", value: ctx.data[key] },\n });\n }\n }\n else if (unknownKeys === \"strict\") {\n if (extraKeys.length > 0) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.unrecognized_keys,\n keys: extraKeys,\n });\n status.dirty();\n }\n }\n else if (unknownKeys === \"strip\") ;\n else {\n throw new Error(`Internal ZodObject error: invalid unknownKeys value.`);\n }\n }\n else {\n // run catchall validation\n const catchall = this._def.catchall;\n for (const key of extraKeys) {\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: catchall._parse(new ParseInputLazyPath(ctx, value, ctx.path, key) //, ctx.child(key), value, getParsedType(value)\n ),\n alwaysSet: key in ctx.data,\n });\n }\n }\n if (ctx.common.async) {\n return Promise.resolve()\n .then(async () => {\n const syncPairs = [];\n for (const pair of pairs) {\n const key = await pair.key;\n syncPairs.push({\n key,\n value: await pair.value,\n alwaysSet: pair.alwaysSet,\n });\n }\n return syncPairs;\n })\n .then((syncPairs) => {\n return ParseStatus.mergeObjectSync(status, syncPairs);\n });\n }\n else {\n return ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get shape() {\n return this._def.shape();\n }\n strict(message) {\n errorUtil.errToObj;\n return new ZodObject({\n ...this._def,\n unknownKeys: \"strict\",\n ...(message !== undefined\n ? {\n errorMap: (issue, ctx) => {\n var _a, _b, _c, _d;\n const defaultError = (_c = (_b = (_a = this._def).errorMap) === null || _b === void 0 ? void 0 : _b.call(_a, issue, ctx).message) !== null && _c !== void 0 ? _c : ctx.defaultError;\n if (issue.code === \"unrecognized_keys\")\n return {\n message: (_d = errorUtil.errToObj(message).message) !== null && _d !== void 0 ? _d : defaultError,\n };\n return {\n message: defaultError,\n };\n },\n }\n : {}),\n });\n }\n strip() {\n return new ZodObject({\n ...this._def,\n unknownKeys: \"strip\",\n });\n }\n passthrough() {\n return new ZodObject({\n ...this._def,\n unknownKeys: \"passthrough\",\n });\n }\n setKey(key, schema) {\n return this.augment({ [key]: schema });\n }\n /**\n * Prior to zod@1.0.12 there was a bug in the\n * inferred type of merged objects. Please\n * upgrade if you are experiencing issues.\n */\n merge(merging) {\n // const mergedShape = objectUtil.mergeShapes(\n // this._def.shape(),\n // merging._def.shape()\n // );\n const merged = new ZodObject({\n unknownKeys: merging._def.unknownKeys,\n catchall: merging._def.catchall,\n shape: () => objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n });\n return merged;\n }\n catchall(index) {\n return new ZodObject({\n ...this._def,\n catchall: index,\n });\n }\n pick(mask) {\n const shape = {};\n util.objectKeys(mask).map((key) => {\n // only add to shape if key corresponds to an element of the current shape\n if (this.shape[key])\n shape[key] = this.shape[key];\n });\n return new ZodObject({\n ...this._def,\n shape: () => shape,\n });\n }\n omit(mask) {\n const shape = {};\n util.objectKeys(this.shape).map((key) => {\n if (util.objectKeys(mask).indexOf(key) === -1) {\n shape[key] = this.shape[key];\n }\n });\n return new ZodObject({\n ...this._def,\n shape: () => shape,\n });\n }\n deepPartial() {\n return deepPartialify(this);\n }\n partial(mask) {\n const newShape = {};\n if (mask) {\n util.objectKeys(this.shape).map((key) => {\n if (util.objectKeys(mask).indexOf(key) === -1) {\n newShape[key] = this.shape[key];\n }\n else {\n newShape[key] = this.shape[key].optional();\n }\n });\n return new ZodObject({\n ...this._def,\n shape: () => newShape,\n });\n }\n else {\n for (const key in this.shape) {\n const fieldSchema = this.shape[key];\n newShape[key] = fieldSchema.optional();\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => newShape,\n });\n }\n required() {\n const newShape = {};\n for (const key in this.shape) {\n const fieldSchema = this.shape[key];\n let newField = fieldSchema;\n while (newField instanceof ZodOptional) {\n newField = newField._def.innerType;\n }\n newShape[key] = newField;\n }\n return new ZodObject({\n ...this._def,\n shape: () => newShape,\n });\n }\n keyof() {\n return createZodEnum(util.objectKeys(this.shape));\n }\n}\nZodObject.create = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nZodObject.strictCreate = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strict\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nZodObject.lazycreate = (shape, params) => {\n return new ZodObject({\n shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nclass ZodUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const options = this._def.options;\n function handleResults(results) {\n // return first issue-free validation if it exists\n for (const result of results) {\n if (result.result.status === \"valid\") {\n return result.result;\n }\n }\n for (const result of results) {\n if (result.result.status === \"dirty\") {\n // add issues from dirty option\n ctx.common.issues.push(...result.ctx.common.issues);\n return result.result;\n }\n }\n // return invalid\n const unionErrors = results.map((result) => new ZodError(result.ctx.common.issues));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors,\n });\n return INVALID;\n }\n if (ctx.common.async) {\n return Promise.all(options.map(async (option) => {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n parent: null,\n };\n return {\n result: await option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx,\n }),\n ctx: childCtx,\n };\n })).then(handleResults);\n }\n else {\n let dirty = undefined;\n const issues = [];\n for (const option of options) {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n parent: null,\n };\n const result = option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx,\n });\n if (result.status === \"valid\") {\n return result;\n }\n else if (result.status === \"dirty\" && !dirty) {\n dirty = { result, ctx: childCtx };\n }\n if (childCtx.common.issues.length) {\n issues.push(childCtx.common.issues);\n }\n }\n if (dirty) {\n ctx.common.issues.push(...dirty.ctx.common.issues);\n return dirty.result;\n }\n const unionErrors = issues.map((issues) => new ZodError(issues));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors,\n });\n return INVALID;\n }\n }\n get options() {\n return this._def.options;\n }\n}\nZodUnion.create = (types, params) => {\n return new ZodUnion({\n options: types,\n typeName: ZodFirstPartyTypeKind.ZodUnion,\n ...processCreateParams(params),\n });\n};\nclass ZodDiscriminatedUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const discriminator = this.discriminator;\n const discriminatorValue = ctx.data[discriminator];\n const option = this.options.get(discriminatorValue);\n if (!option) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union_discriminator,\n options: this.validDiscriminatorValues,\n path: [discriminator],\n });\n return INVALID;\n }\n if (ctx.common.async) {\n return option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n }\n else {\n return option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n }\n }\n get discriminator() {\n return this._def.discriminator;\n }\n get validDiscriminatorValues() {\n return Array.from(this.options.keys());\n }\n get options() {\n return this._def.options;\n }\n /**\n * The constructor of the discriminated union schema. Its behaviour is very similar to that of the normal z.union() constructor.\n * However, it only allows a union of objects, all of which need to share a discriminator property. This property must\n * have a different value for each object in the union.\n * @param discriminator the name of the discriminator property\n * @param types an array of object schemas\n * @param params\n */\n static create(discriminator, types, params) {\n // Get all the valid discriminator values\n const options = new Map();\n try {\n types.forEach((type) => {\n const discriminatorValue = type.shape[discriminator].value;\n options.set(discriminatorValue, type);\n });\n }\n catch (e) {\n throw new Error(\"The discriminator value could not be extracted from all the provided schemas\");\n }\n // Assert that all the discriminator values are unique\n if (options.size !== types.length) {\n throw new Error(\"Some of the discriminator values are not unique\");\n }\n return new ZodDiscriminatedUnion({\n typeName: ZodFirstPartyTypeKind.ZodDiscriminatedUnion,\n discriminator,\n options,\n ...processCreateParams(params),\n });\n }\n}\nfunction mergeValues(a, b) {\n const aType = getParsedType(a);\n const bType = getParsedType(b);\n if (a === b) {\n return { valid: true, data: a };\n }\n else if (aType === ZodParsedType.object && bType === ZodParsedType.object) {\n const bKeys = util.objectKeys(b);\n const sharedKeys = util\n .objectKeys(a)\n .filter((key) => bKeys.indexOf(key) !== -1);\n const newObj = { ...a, ...b };\n for (const key of sharedKeys) {\n const sharedValue = mergeValues(a[key], b[key]);\n if (!sharedValue.valid) {\n return { valid: false };\n }\n newObj[key] = sharedValue.data;\n }\n return { valid: true, data: newObj };\n }\n else if (aType === ZodParsedType.array && bType === ZodParsedType.array) {\n if (a.length !== b.length) {\n return { valid: false };\n }\n const newArray = [];\n for (let index = 0; index < a.length; index++) {\n const itemA = a[index];\n const itemB = b[index];\n const sharedValue = mergeValues(itemA, itemB);\n if (!sharedValue.valid) {\n return { valid: false };\n }\n newArray.push(sharedValue.data);\n }\n return { valid: true, data: newArray };\n }\n else if (aType === ZodParsedType.date &&\n bType === ZodParsedType.date &&\n +a === +b) {\n return { valid: true, data: a };\n }\n else {\n return { valid: false };\n }\n}\nclass ZodIntersection extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const handleParsed = (parsedLeft, parsedRight) => {\n if (isAborted(parsedLeft) || isAborted(parsedRight)) {\n return INVALID;\n }\n const merged = mergeValues(parsedLeft.value, parsedRight.value);\n if (!merged.valid) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_intersection_types,\n });\n return INVALID;\n }\n if (isDirty(parsedLeft) || isDirty(parsedRight)) {\n status.dirty();\n }\n return { status: status.value, value: merged.data };\n };\n if (ctx.common.async) {\n return Promise.all([\n this._def.left._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }),\n this._def.right._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }),\n ]).then(([left, right]) => handleParsed(left, right));\n }\n else {\n return handleParsed(this._def.left._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }), this._def.right._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }));\n }\n }\n}\nZodIntersection.create = (left, right, params) => {\n return new ZodIntersection({\n left: left,\n right: right,\n typeName: ZodFirstPartyTypeKind.ZodIntersection,\n ...processCreateParams(params),\n });\n};\nclass ZodTuple extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (ctx.data.length < this._def.items.length) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: this._def.items.length,\n inclusive: true,\n type: \"array\",\n });\n return INVALID;\n }\n const rest = this._def.rest;\n if (!rest && ctx.data.length > this._def.items.length) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: this._def.items.length,\n inclusive: true,\n type: \"array\",\n });\n status.dirty();\n }\n const items = ctx.data\n .map((item, itemIndex) => {\n const schema = this._def.items[itemIndex] || this._def.rest;\n if (!schema)\n return null;\n return schema._parse(new ParseInputLazyPath(ctx, item, ctx.path, itemIndex));\n })\n .filter((x) => !!x); // filter nulls\n if (ctx.common.async) {\n return Promise.all(items).then((results) => {\n return ParseStatus.mergeArray(status, results);\n });\n }\n else {\n return ParseStatus.mergeArray(status, items);\n }\n }\n get items() {\n return this._def.items;\n }\n rest(rest) {\n return new ZodTuple({\n ...this._def,\n rest,\n });\n }\n}\nZodTuple.create = (schemas, params) => {\n if (!Array.isArray(schemas)) {\n throw new Error(\"You must pass an array of schemas to z.tuple([ ... ])\");\n }\n return new ZodTuple({\n items: schemas,\n typeName: ZodFirstPartyTypeKind.ZodTuple,\n rest: null,\n ...processCreateParams(params),\n });\n};\nclass ZodRecord extends ZodType {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const pairs = [];\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n for (const key in ctx.data) {\n pairs.push({\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, key)),\n value: valueType._parse(new ParseInputLazyPath(ctx, ctx.data[key], ctx.path, key)),\n });\n }\n if (ctx.common.async) {\n return ParseStatus.mergeObjectAsync(status, pairs);\n }\n else {\n return ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get element() {\n return this._def.valueType;\n }\n static create(first, second, third) {\n if (second instanceof ZodType) {\n return new ZodRecord({\n keyType: first,\n valueType: second,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(third),\n });\n }\n return new ZodRecord({\n keyType: ZodString.create(),\n valueType: first,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(second),\n });\n }\n}\nclass ZodMap extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.map) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.map,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n const pairs = [...ctx.data.entries()].map(([key, value], index) => {\n return {\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, [index, \"key\"])),\n value: valueType._parse(new ParseInputLazyPath(ctx, value, ctx.path, [index, \"value\"])),\n };\n });\n if (ctx.common.async) {\n const finalMap = new Map();\n return Promise.resolve().then(async () => {\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n });\n }\n else {\n const finalMap = new Map();\n for (const pair of pairs) {\n const key = pair.key;\n const value = pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n }\n }\n}\nZodMap.create = (keyType, valueType, params) => {\n return new ZodMap({\n valueType,\n keyType,\n typeName: ZodFirstPartyTypeKind.ZodMap,\n ...processCreateParams(params),\n });\n};\nclass ZodSet extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.set) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.set,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const def = this._def;\n if (def.minSize !== null) {\n if (ctx.data.size < def.minSize.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: def.minSize.value,\n type: \"set\",\n inclusive: true,\n message: def.minSize.message,\n });\n status.dirty();\n }\n }\n if (def.maxSize !== null) {\n if (ctx.data.size > def.maxSize.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: def.maxSize.value,\n type: \"set\",\n inclusive: true,\n message: def.maxSize.message,\n });\n status.dirty();\n }\n }\n const valueType = this._def.valueType;\n function finalizeSet(elements) {\n const parsedSet = new Set();\n for (const element of elements) {\n if (element.status === \"aborted\")\n return INVALID;\n if (element.status === \"dirty\")\n status.dirty();\n parsedSet.add(element.value);\n }\n return { status: status.value, value: parsedSet };\n }\n const elements = [...ctx.data.values()].map((item, i) => valueType._parse(new ParseInputLazyPath(ctx, item, ctx.path, i)));\n if (ctx.common.async) {\n return Promise.all(elements).then((elements) => finalizeSet(elements));\n }\n else {\n return finalizeSet(elements);\n }\n }\n min(minSize, message) {\n return new ZodSet({\n ...this._def,\n minSize: { value: minSize, message: errorUtil.toString(message) },\n });\n }\n max(maxSize, message) {\n return new ZodSet({\n ...this._def,\n maxSize: { value: maxSize, message: errorUtil.toString(message) },\n });\n }\n size(size, message) {\n return this.min(size, message).max(size, message);\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nZodSet.create = (valueType, params) => {\n return new ZodSet({\n valueType,\n minSize: null,\n maxSize: null,\n typeName: ZodFirstPartyTypeKind.ZodSet,\n ...processCreateParams(params),\n });\n};\nclass ZodFunction extends ZodType {\n constructor() {\n super(...arguments);\n this.validate = this.implement;\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.function) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.function,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n function makeArgsIssue(args, error) {\n return makeIssue({\n data: args,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap,\n ctx.schemaErrorMap,\n getErrorMap(),\n errorMap,\n ].filter((x) => !!x),\n issueData: {\n code: ZodIssueCode.invalid_arguments,\n argumentsError: error,\n },\n });\n }\n function makeReturnsIssue(returns, error) {\n return makeIssue({\n data: returns,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap,\n ctx.schemaErrorMap,\n getErrorMap(),\n errorMap,\n ].filter((x) => !!x),\n issueData: {\n code: ZodIssueCode.invalid_return_type,\n returnTypeError: error,\n },\n });\n }\n const params = { errorMap: ctx.common.contextualErrorMap };\n const fn = ctx.data;\n if (this._def.returns instanceof ZodPromise) {\n return OK(async (...args) => {\n const error = new ZodError([]);\n const parsedArgs = await this._def.args\n .parseAsync(args, params)\n .catch((e) => {\n error.addIssue(makeArgsIssue(args, e));\n throw error;\n });\n const result = await fn(...parsedArgs);\n const parsedReturns = await this._def.returns._def.type\n .parseAsync(result, params)\n .catch((e) => {\n error.addIssue(makeReturnsIssue(result, e));\n throw error;\n });\n return parsedReturns;\n });\n }\n else {\n return OK((...args) => {\n const parsedArgs = this._def.args.safeParse(args, params);\n if (!parsedArgs.success) {\n throw new ZodError([makeArgsIssue(args, parsedArgs.error)]);\n }\n const result = fn(...parsedArgs.data);\n const parsedReturns = this._def.returns.safeParse(result, params);\n if (!parsedReturns.success) {\n throw new ZodError([makeReturnsIssue(result, parsedReturns.error)]);\n }\n return parsedReturns.data;\n });\n }\n }\n parameters() {\n return this._def.args;\n }\n returnType() {\n return this._def.returns;\n }\n args(...items) {\n return new ZodFunction({\n ...this._def,\n args: ZodTuple.create(items).rest(ZodUnknown.create()),\n });\n }\n returns(returnType) {\n return new ZodFunction({\n ...this._def,\n returns: returnType,\n });\n }\n implement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n strictImplement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n static create(args, returns, params) {\n return new ZodFunction({\n args: (args\n ? args\n : ZodTuple.create([]).rest(ZodUnknown.create())),\n returns: returns || ZodUnknown.create(),\n typeName: ZodFirstPartyTypeKind.ZodFunction,\n ...processCreateParams(params),\n });\n }\n}\nclass ZodLazy extends ZodType {\n get schema() {\n return this._def.getter();\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const lazySchema = this._def.getter();\n return lazySchema._parse({ data: ctx.data, path: ctx.path, parent: ctx });\n }\n}\nZodLazy.create = (getter, params) => {\n return new ZodLazy({\n getter: getter,\n typeName: ZodFirstPartyTypeKind.ZodLazy,\n ...processCreateParams(params),\n });\n};\nclass ZodLiteral extends ZodType {\n _parse(input) {\n if (input.data !== this._def.value) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_literal,\n expected: this._def.value,\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n get value() {\n return this._def.value;\n }\n}\nZodLiteral.create = (value, params) => {\n return new ZodLiteral({\n value: value,\n typeName: ZodFirstPartyTypeKind.ZodLiteral,\n ...processCreateParams(params),\n });\n};\nfunction createZodEnum(values, params) {\n return new ZodEnum({\n values: values,\n typeName: ZodFirstPartyTypeKind.ZodEnum,\n ...processCreateParams(params),\n });\n}\nclass ZodEnum extends ZodType {\n _parse(input) {\n if (typeof input.data !== \"string\") {\n const ctx = this._getOrReturnCtx(input);\n const expectedValues = this._def.values;\n addIssueToContext(ctx, {\n expected: util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodIssueCode.invalid_type,\n });\n return INVALID;\n }\n if (this._def.values.indexOf(input.data) === -1) {\n const ctx = this._getOrReturnCtx(input);\n const expectedValues = this._def.values;\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_enum_value,\n options: expectedValues,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n get options() {\n return this._def.values;\n }\n get enum() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n get Values() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n get Enum() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n}\nZodEnum.create = createZodEnum;\nclass ZodNativeEnum extends ZodType {\n _parse(input) {\n const nativeEnumValues = util.getValidEnumValues(this._def.values);\n const ctx = this._getOrReturnCtx(input);\n if (ctx.parsedType !== ZodParsedType.string &&\n ctx.parsedType !== ZodParsedType.number) {\n const expectedValues = util.objectValues(nativeEnumValues);\n addIssueToContext(ctx, {\n expected: util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodIssueCode.invalid_type,\n });\n return INVALID;\n }\n if (nativeEnumValues.indexOf(input.data) === -1) {\n const expectedValues = util.objectValues(nativeEnumValues);\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_enum_value,\n options: expectedValues,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n get enum() {\n return this._def.values;\n }\n}\nZodNativeEnum.create = (values, params) => {\n return new ZodNativeEnum({\n values: values,\n typeName: ZodFirstPartyTypeKind.ZodNativeEnum,\n ...processCreateParams(params),\n });\n};\nclass ZodPromise extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.promise &&\n ctx.common.async === false) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.promise,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const promisified = ctx.parsedType === ZodParsedType.promise\n ? ctx.data\n : Promise.resolve(ctx.data);\n return OK(promisified.then((data) => {\n return this._def.type.parseAsync(data, {\n path: ctx.path,\n errorMap: ctx.common.contextualErrorMap,\n });\n }));\n }\n}\nZodPromise.create = (schema, params) => {\n return new ZodPromise({\n type: schema,\n typeName: ZodFirstPartyTypeKind.ZodPromise,\n ...processCreateParams(params),\n });\n};\nclass ZodEffects extends ZodType {\n innerType() {\n return this._def.schema;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const effect = this._def.effect || null;\n if (effect.type === \"preprocess\") {\n const processed = effect.transform(ctx.data);\n if (ctx.common.async) {\n return Promise.resolve(processed).then((processed) => {\n return this._def.schema._parseAsync({\n data: processed,\n path: ctx.path,\n parent: ctx,\n });\n });\n }\n else {\n return this._def.schema._parseSync({\n data: processed,\n path: ctx.path,\n parent: ctx,\n });\n }\n }\n const checkCtx = {\n addIssue: (arg) => {\n addIssueToContext(ctx, arg);\n if (arg.fatal) {\n status.abort();\n }\n else {\n status.dirty();\n }\n },\n get path() {\n return ctx.path;\n },\n };\n checkCtx.addIssue = checkCtx.addIssue.bind(checkCtx);\n if (effect.type === \"refinement\") {\n const executeRefinement = (acc\n // effect: RefinementEffect<any>\n ) => {\n const result = effect.refinement(acc, checkCtx);\n if (ctx.common.async) {\n return Promise.resolve(result);\n }\n if (result instanceof Promise) {\n throw new Error(\"Async refinement encountered during synchronous parse operation. Use .parseAsync instead.\");\n }\n return acc;\n };\n if (ctx.common.async === false) {\n const inner = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inner.status === \"aborted\")\n return INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n // return value is ignored\n executeRefinement(inner.value);\n return { status: status.value, value: inner.value };\n }\n else {\n return this._def.schema\n ._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx })\n .then((inner) => {\n if (inner.status === \"aborted\")\n return INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n return executeRefinement(inner.value).then(() => {\n return { status: status.value, value: inner.value };\n });\n });\n }\n }\n if (effect.type === \"transform\") {\n if (ctx.common.async === false) {\n const base = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n // if (base.status === \"aborted\") return INVALID;\n // if (base.status === \"dirty\") {\n // return { status: \"dirty\", value: base.value };\n // }\n if (!isValid(base))\n return base;\n const result = effect.transform(base.value, checkCtx);\n if (result instanceof Promise) {\n throw new Error(`Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.`);\n }\n return { status: status.value, value: result };\n }\n else {\n return this._def.schema\n ._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx })\n .then((base) => {\n if (!isValid(base))\n return base;\n // if (base.status === \"aborted\") return INVALID;\n // if (base.status === \"dirty\") {\n // return { status: \"dirty\", value: base.value };\n // }\n return Promise.resolve(effect.transform(base.value, checkCtx)).then((result) => ({ status: status.value, value: result }));\n });\n }\n }\n util.assertNever(effect);\n }\n}\nZodEffects.create = (schema, effect, params) => {\n return new ZodEffects({\n schema,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect,\n ...processCreateParams(params),\n });\n};\nZodEffects.createWithPreprocess = (preprocess, schema, params) => {\n return new ZodEffects({\n schema,\n effect: { type: \"preprocess\", transform: preprocess },\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n ...processCreateParams(params),\n });\n};\nclass ZodOptional extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.undefined) {\n return OK(undefined);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodOptional.create = (type, params) => {\n return new ZodOptional({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodOptional,\n ...processCreateParams(params),\n });\n};\nclass ZodNullable extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.null) {\n return OK(null);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodNullable.create = (type, params) => {\n return new ZodNullable({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodNullable,\n ...processCreateParams(params),\n });\n};\nclass ZodDefault extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n let data = ctx.data;\n if (ctx.parsedType === ZodParsedType.undefined) {\n data = this._def.defaultValue();\n }\n return this._def.innerType._parse({\n data,\n path: ctx.path,\n parent: ctx,\n });\n }\n removeDefault() {\n return this._def.innerType;\n }\n}\nZodDefault.create = (type, params) => {\n return new ZodOptional({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodOptional,\n ...processCreateParams(params),\n });\n};\nclass ZodNaN extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.nan) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.nan,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n}\nZodNaN.create = (params) => {\n return new ZodNaN({\n typeName: ZodFirstPartyTypeKind.ZodNaN,\n ...processCreateParams(params),\n });\n};\nconst BRAND = Symbol(\"zod_brand\");\nclass ZodBranded extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const data = ctx.data;\n return this._def.type._parse({\n data,\n path: ctx.path,\n parent: ctx,\n });\n }\n unwrap() {\n return this._def.type;\n }\n}\nconst custom = (check, params = {}, fatal) => {\n if (check)\n return ZodAny.create().superRefine((data, ctx) => {\n if (!check(data)) {\n const p = typeof params === \"function\" ? params(data) : params;\n const p2 = typeof p === \"string\" ? { message: p } : p;\n ctx.addIssue({ code: \"custom\", ...p2, fatal });\n }\n });\n return ZodAny.create();\n};\nconst late = {\n object: ZodObject.lazycreate,\n};\nvar ZodFirstPartyTypeKind;\n(function (ZodFirstPartyTypeKind) {\n ZodFirstPartyTypeKind[\"ZodString\"] = \"ZodString\";\n ZodFirstPartyTypeKind[\"ZodNumber\"] = \"ZodNumber\";\n ZodFirstPartyTypeKind[\"ZodNaN\"] = \"ZodNaN\";\n ZodFirstPartyTypeKind[\"ZodBigInt\"] = \"ZodBigInt\";\n ZodFirstPartyTypeKind[\"ZodBoolean\"] = \"ZodBoolean\";\n ZodFirstPartyTypeKind[\"ZodDate\"] = \"ZodDate\";\n ZodFirstPartyTypeKind[\"ZodUndefined\"] = \"ZodUndefined\";\n ZodFirstPartyTypeKind[\"ZodNull\"] = \"ZodNull\";\n ZodFirstPartyTypeKind[\"ZodAny\"] = \"ZodAny\";\n ZodFirstPartyTypeKind[\"ZodUnknown\"] = \"ZodUnknown\";\n ZodFirstPartyTypeKind[\"ZodNever\"] = \"ZodNever\";\n ZodFirstPartyTypeKind[\"ZodVoid\"] = \"ZodVoid\";\n ZodFirstPartyTypeKind[\"ZodArray\"] = \"ZodArray\";\n ZodFirstPartyTypeKind[\"ZodObject\"] = \"ZodObject\";\n ZodFirstPartyTypeKind[\"ZodUnion\"] = \"ZodUnion\";\n ZodFirstPartyTypeKind[\"ZodDiscriminatedUnion\"] = \"ZodDiscriminatedUnion\";\n ZodFirstPartyTypeKind[\"ZodIntersection\"] = \"ZodIntersection\";\n ZodFirstPartyTypeKind[\"ZodTuple\"] = \"ZodTuple\";\n ZodFirstPartyTypeKind[\"ZodRecord\"] = \"ZodRecord\";\n ZodFirstPartyTypeKind[\"ZodMap\"] = \"ZodMap\";\n ZodFirstPartyTypeKind[\"ZodSet\"] = \"ZodSet\";\n ZodFirstPartyTypeKind[\"ZodFunction\"] = \"ZodFunction\";\n ZodFirstPartyTypeKind[\"ZodLazy\"] = \"ZodLazy\";\n ZodFirstPartyTypeKind[\"ZodLiteral\"] = \"ZodLiteral\";\n ZodFirstPartyTypeKind[\"ZodEnum\"] = \"ZodEnum\";\n ZodFirstPartyTypeKind[\"ZodEffects\"] = \"ZodEffects\";\n ZodFirstPartyTypeKind[\"ZodNativeEnum\"] = \"ZodNativeEnum\";\n ZodFirstPartyTypeKind[\"ZodOptional\"] = \"ZodOptional\";\n ZodFirstPartyTypeKind[\"ZodNullable\"] = \"ZodNullable\";\n ZodFirstPartyTypeKind[\"ZodDefault\"] = \"ZodDefault\";\n ZodFirstPartyTypeKind[\"ZodPromise\"] = \"ZodPromise\";\n ZodFirstPartyTypeKind[\"ZodBranded\"] = \"ZodBranded\";\n})(ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {}));\n// new approach that works for abstract classes\n// but required TS 4.4+\n// abstract class Class {\n// constructor(..._: any[]) {}\n// }\n// const instanceOfType = <T extends typeof Class>(\nconst instanceOfType = (cls, params = {\n message: `Input not instance of ${cls.name}`,\n}) => custom((data) => data instanceof cls, params, true);\nconst stringType = ZodString.create;\nconst numberType = ZodNumber.create;\nconst nanType = ZodNaN.create;\nconst bigIntType = ZodBigInt.create;\nconst booleanType = ZodBoolean.create;\nconst dateType = ZodDate.create;\nconst undefinedType = ZodUndefined.create;\nconst nullType = ZodNull.create;\nconst anyType = ZodAny.create;\nconst unknownType = ZodUnknown.create;\nconst neverType = ZodNever.create;\nconst voidType = ZodVoid.create;\nconst arrayType = ZodArray.create;\nconst objectType = ZodObject.create;\nconst strictObjectType = ZodObject.strictCreate;\nconst unionType = ZodUnion.create;\nconst discriminatedUnionType = ZodDiscriminatedUnion.create;\nconst intersectionType = ZodIntersection.create;\nconst tupleType = ZodTuple.create;\nconst recordType = ZodRecord.create;\nconst mapType = ZodMap.create;\nconst setType = ZodSet.create;\nconst functionType = ZodFunction.create;\nconst lazyType = ZodLazy.create;\nconst literalType = ZodLiteral.create;\nconst enumType = ZodEnum.create;\nconst nativeEnumType = ZodNativeEnum.create;\nconst promiseType = ZodPromise.create;\nconst effectsType = ZodEffects.create;\nconst optionalType = ZodOptional.create;\nconst nullableType = ZodNullable.create;\nconst preprocessType = ZodEffects.createWithPreprocess;\nconst ostring = () => stringType().optional();\nconst onumber = () => numberType().optional();\nconst oboolean = () => booleanType().optional();\nconst NEVER = INVALID;\n\nvar mod = /*#__PURE__*/Object.freeze({\n __proto__: null,\n getParsedType: getParsedType,\n ZodParsedType: ZodParsedType,\n defaultErrorMap: errorMap,\n setErrorMap: setErrorMap,\n getErrorMap: getErrorMap,\n makeIssue: makeIssue,\n EMPTY_PATH: EMPTY_PATH,\n addIssueToContext: addIssueToContext,\n ParseStatus: ParseStatus,\n INVALID: INVALID,\n DIRTY: DIRTY,\n OK: OK,\n isAborted: isAborted,\n isDirty: isDirty,\n isValid: isValid,\n isAsync: isAsync,\n ZodType: ZodType,\n ZodString: ZodString,\n ZodNumber: ZodNumber,\n ZodBigInt: ZodBigInt,\n ZodBoolean: ZodBoolean,\n ZodDate: ZodDate,\n ZodUndefined: ZodUndefined,\n ZodNull: ZodNull,\n ZodAny: ZodAny,\n ZodUnknown: ZodUnknown,\n ZodNever: ZodNever,\n ZodVoid: ZodVoid,\n ZodArray: ZodArray,\n get objectUtil () { return objectUtil; },\n ZodObject: ZodObject,\n ZodUnion: ZodUnion,\n ZodDiscriminatedUnion: ZodDiscriminatedUnion,\n ZodIntersection: ZodIntersection,\n ZodTuple: ZodTuple,\n ZodRecord: ZodRecord,\n ZodMap: ZodMap,\n ZodSet: ZodSet,\n ZodFunction: ZodFunction,\n ZodLazy: ZodLazy,\n ZodLiteral: ZodLiteral,\n ZodEnum: ZodEnum,\n ZodNativeEnum: ZodNativeEnum,\n ZodPromise: ZodPromise,\n ZodEffects: ZodEffects,\n ZodTransformer: ZodEffects,\n ZodOptional: ZodOptional,\n ZodNullable: ZodNullable,\n ZodDefault: ZodDefault,\n ZodNaN: ZodNaN,\n BRAND: BRAND,\n ZodBranded: ZodBranded,\n custom: custom,\n Schema: ZodType,\n ZodSchema: ZodType,\n late: late,\n get ZodFirstPartyTypeKind () { return ZodFirstPartyTypeKind; },\n any: anyType,\n array: arrayType,\n bigint: bigIntType,\n boolean: booleanType,\n date: dateType,\n discriminatedUnion: discriminatedUnionType,\n effect: effectsType,\n 'enum': enumType,\n 'function': functionType,\n 'instanceof': instanceOfType,\n intersection: intersectionType,\n lazy: lazyType,\n literal: literalType,\n map: mapType,\n nan: nanType,\n nativeEnum: nativeEnumType,\n never: neverType,\n 'null': nullType,\n nullable: nullableType,\n number: numberType,\n object: objectType,\n oboolean: oboolean,\n onumber: onumber,\n optional: optionalType,\n ostring: ostring,\n preprocess: preprocessType,\n promise: promiseType,\n record: recordType,\n set: setType,\n strictObject: strictObjectType,\n string: stringType,\n transformer: effectsType,\n tuple: tupleType,\n 'undefined': undefinedType,\n union: unionType,\n unknown: unknownType,\n 'void': voidType,\n NEVER: NEVER,\n ZodIssueCode: ZodIssueCode,\n quotelessJson: quotelessJson,\n ZodError: ZodError\n});\n\nexport { BRAND, DIRTY, EMPTY_PATH, INVALID, NEVER, OK, ParseStatus, ZodType as Schema, ZodAny, ZodArray, ZodBigInt, ZodBoolean, ZodBranded, ZodDate, ZodDefault, ZodDiscriminatedUnion, ZodEffects, ZodEnum, ZodError, ZodFirstPartyTypeKind, ZodFunction, ZodIntersection, ZodIssueCode, ZodLazy, ZodLiteral, ZodMap, ZodNaN, ZodNativeEnum, ZodNever, ZodNull, ZodNullable, ZodNumber, ZodObject, ZodOptional, ZodParsedType, ZodPromise, ZodRecord, ZodType as ZodSchema, ZodSet, ZodString, ZodEffects as ZodTransformer, ZodTuple, ZodType, ZodUndefined, ZodUnion, ZodUnknown, ZodVoid, addIssueToContext, anyType as any, arrayType as array, bigIntType as bigint, booleanType as boolean, custom, dateType as date, mod as default, errorMap as defaultErrorMap, discriminatedUnionType as discriminatedUnion, effectsType as effect, enumType as enum, functionType as function, getErrorMap, getParsedType, instanceOfType as instanceof, intersectionType as intersection, isAborted, isAsync, isDirty, isValid, late, lazyType as lazy, literalType as literal, makeIssue, mapType as map, nanType as nan, nativeEnumType as nativeEnum, neverType as never, nullType as null, nullableType as nullable, numberType as number, objectType as object, objectUtil, oboolean, onumber, optionalType as optional, ostring, preprocessType as preprocess, promiseType as promise, quotelessJson, recordType as record, setType as set, setErrorMap, strictObjectType as strictObject, stringType as string, effectsType as transformer, tupleType as tuple, undefinedType as undefined, unionType as union, unknownType as unknown, voidType as void, mod as z };\n", "import { CID } from 'multiformats/cid'\nimport { z } from 'zod'\nimport { Def } from './check'\n\nconst cidSchema = z\n .any()\n .refine((obj: unknown) => CID.asCID(obj) !== null, {\n message: 'Not a CID',\n })\n .transform((obj: unknown) => CID.asCID(obj) as CID)\n\nexport const schema = {\n cid: cidSchema,\n bytes: z.instanceof(Uint8Array),\n string: z.string(),\n array: z.array(z.unknown()),\n map: z.record(z.string(), z.unknown()),\n unknown: z.unknown(),\n}\n\nexport const def = {\n cid: {\n name: 'cid',\n schema: schema.cid,\n } as Def<CID>,\n bytes: {\n name: 'bytes',\n schema: schema.bytes,\n } as Def<Uint8Array>,\n string: {\n name: 'string',\n schema: schema.string,\n } as Def<string>,\n map: {\n name: 'map',\n schema: schema.map,\n } as Def<Record<string, unknown>>,\n unknown: {\n name: 'unknown',\n schema: schema.unknown,\n } as Def<unknown>,\n}\n\nexport type ArrayEl<A> = A extends readonly (infer T)[] ? T : never\n\nexport type NotEmptyArray<T> = [T, ...T[]]\n", "export const SECOND = 1000\nexport const MINUTE = SECOND * 60\nexport const HOUR = MINUTE * 60\nexport const DAY = HOUR * 24\n", "import * as ui8 from 'uint8arrays'\n\n// counts the number of bytes in a utf8 string\nexport const utf8Len = (str: string): number => {\n return new TextEncoder().encode(str).byteLength\n}\n\n// counts the number of graphemes (user-displayed characters) in a string\nexport const graphemeLen = (str: string): number => {\n return [...new Intl.Segmenter().segment(str)].length\n}\n\nexport const utf8ToB64Url = (utf8: string): string => {\n return ui8.toString(ui8.fromString(utf8, 'utf8'), 'base64url')\n}\n\nexport const b64UrlToUtf8 = (b64: string): string => {\n return ui8.toString(ui8.fromString(b64, 'base64url'), 'utf8')\n}\n", "const atpSpecific = [\n 'at',\n 'atp',\n 'plc',\n 'pds',\n 'did',\n 'repo',\n 'tid',\n 'nsid',\n 'xrpc',\n 'lex',\n 'lexicon',\n 'bsky',\n 'bluesky',\n 'handle',\n]\n\n// naively pulled from: https://radwebhosting.com/client_area/knowledgebase/196/List-of-Banned-Subdomain-Prefixes.html\nconst commonlyReserved = [\n 'about',\n 'abuse',\n 'access',\n 'account',\n 'accounts',\n 'acme',\n 'activate',\n 'activities',\n 'activity',\n 'ad',\n 'add',\n 'address',\n 'adm',\n 'admanager',\n 'admin',\n 'administration',\n 'administrator',\n 'administrators',\n 'admins',\n 'ads',\n 'adsense',\n 'adult',\n 'advertising',\n 'adwords',\n 'affiliate',\n 'affiliatepage',\n 'affiliates',\n 'afp',\n 'ajax',\n 'all',\n 'alpha',\n 'analysis',\n 'analytics',\n 'android',\n 'anon',\n 'anonymous',\n 'answer',\n 'answers',\n 'ap',\n 'api',\n 'apis',\n 'app',\n 'appengine',\n 'appnews',\n 'apps',\n 'archive',\n 'archives',\n 'article',\n 'asdf',\n 'asset',\n 'assets',\n 'auth',\n 'authentication',\n 'avatar',\n 'backup',\n 'bank',\n 'banner',\n 'banners',\n 'base',\n 'beginners',\n 'beta',\n 'billing',\n 'bin',\n 'binaries',\n 'binary',\n 'blackberry',\n 'blog',\n 'blogs',\n 'blogsearch',\n 'board',\n 'book',\n 'bookmark',\n 'bookmarks',\n 'books',\n 'bot',\n 'bots',\n 'bug',\n 'bugs',\n 'business',\n 'buy',\n 'buzz',\n 'cache',\n 'calendar',\n 'call',\n 'campaign',\n 'cancel',\n 'captcha',\n 'career',\n 'careers',\n 'cart',\n 'catalog',\n 'catalogs',\n 'categories',\n 'category',\n 'cdn',\n 'cgi',\n 'cgi-bin',\n 'changelog',\n 'chart',\n 'charts',\n 'chat',\n 'check',\n 'checked',\n 'checking',\n 'checkout',\n 'client',\n 'cliente',\n 'clients',\n 'clients1',\n 'cnarne',\n 'code',\n 'comercial',\n 'comment',\n 'comments',\n 'communities',\n 'community',\n 'company',\n 'compare',\n 'compras',\n 'config',\n 'configuration',\n 'confirm',\n 'confirmation',\n 'connect',\n 'contact',\n 'contacts',\n 'contactus',\n 'contact-us',\n 'contact_us',\n 'content',\n 'contest',\n 'contribute',\n 'contributor',\n 'contributors',\n 'coppa',\n 'copyright',\n 'copyrights',\n 'core',\n 'corp',\n 'countries',\n 'country',\n 'cpanel',\n 'create',\n 'css',\n 'cssproxy',\n 'customise',\n 'customize',\n 'dashboard',\n 'data',\n 'db',\n 'default',\n 'delete',\n 'demo',\n 'design',\n 'designer',\n 'desktop',\n 'destroy',\n 'dev',\n 'devel',\n 'developer',\n 'developers',\n 'devs',\n 'diagram',\n 'diary',\n 'dict',\n 'dictionary',\n 'die',\n 'dir',\n 'directory',\n 'direct_messages',\n 'direct-messages',\n 'dist',\n 'diversity',\n 'dl',\n 'dmca',\n 'doc',\n 'docs',\n 'documentation',\n 'documentations',\n 'documents',\n 'domain',\n 'domains',\n 'donate',\n 'download',\n 'downloads',\n 'e',\n 'e-mail',\n 'earth',\n 'ecommerce',\n 'edit',\n 'edits',\n 'editor',\n 'edu',\n 'education',\n 'email',\n 'embed',\n 'embedded',\n 'employment',\n 'employments',\n 'empty',\n 'enable',\n 'encrypted',\n 'end',\n 'engine',\n 'enterprise',\n 'enterprises',\n 'entries',\n 'entry',\n 'error',\n 'errorlog',\n 'errors',\n 'eval',\n 'event',\n 'example',\n 'examplecommunity',\n 'exampleopenid',\n 'examplesyn',\n 'examplesyndicated',\n 'exampleusername',\n 'exchange',\n 'exit',\n 'explore',\n 'faq',\n 'faqs',\n 'favorite',\n 'favorites',\n 'favourite',\n 'favourites',\n 'feature',\n 'features',\n 'feed',\n 'feedback',\n 'feedburner',\n 'feedproxy',\n 'feeds',\n 'file',\n 'files',\n 'finance',\n 'folder',\n 'folders',\n 'first',\n 'following',\n 'forgot',\n 'form',\n 'forms',\n 'forum',\n 'forums',\n 'founder',\n 'free',\n 'friend',\n 'friends',\n 'ftp',\n 'fuck',\n 'fun',\n 'fusion',\n 'gadget',\n 'gadgets',\n 'game',\n 'games',\n 'gears',\n 'general',\n 'geographic',\n 'get',\n 'gettingstarted',\n 'gift',\n 'gifts',\n 'gist',\n 'git',\n 'github',\n 'gmail',\n 'go',\n 'golang',\n 'goto',\n 'gov',\n 'graph',\n 'graphs',\n 'group',\n 'groups',\n 'guest',\n 'guests',\n 'guide',\n 'guides',\n 'hack',\n 'hacks',\n 'head',\n 'help',\n 'home',\n 'homepage',\n 'host',\n 'hosting',\n 'hostmaster',\n 'hostname',\n 'howto',\n 'how-to',\n 'how_to',\n 'html',\n 'htrnl',\n 'http',\n 'httpd',\n 'https',\n 'i',\n 'iamges',\n 'icon',\n 'icons',\n 'id',\n 'idea',\n 'ideas',\n 'im',\n 'image',\n 'images',\n 'img',\n 'imap',\n 'inbox',\n 'inboxes',\n 'index',\n 'indexes',\n 'info',\n 'information',\n 'inquiry',\n 'intranet',\n 'investor',\n 'investors',\n 'invitation',\n 'invitations',\n 'invite',\n 'invoice',\n 'invoices',\n 'imac',\n 'ios',\n 'ipad',\n 'iphone',\n 'irc',\n 'irnages',\n 'irng',\n 'is',\n 'issue',\n 'issues',\n 'it',\n 'item',\n 'items',\n 'java',\n 'javascript',\n 'job',\n 'jobs',\n 'join',\n 'js',\n 'json',\n 'jump',\n 'kb',\n 'knowledge-base',\n 'knowledgebase',\n 'lab',\n 'labs',\n 'language',\n 'languages',\n 'last',\n 'ldap_status',\n 'ldap-status',\n 'ldapstatus',\n 'legal',\n 'license',\n 'licenses',\n 'link',\n 'links',\n 'linux',\n 'list',\n 'lists',\n 'livejournal',\n 'lj',\n 'local',\n 'locale',\n 'location',\n 'log',\n 'log-in',\n 'log-out',\n 'login',\n 'logout',\n 'logs',\n 'log_in',\n 'log_out',\n 'm',\n 'mac',\n 'macos',\n 'macosx',\n 'mac-os',\n 'mac-os-x',\n 'mac_os_x',\n 'mail',\n 'mailer',\n 'mailing',\n 'main',\n 'maintenance',\n 'manage',\n 'manager',\n 'manual',\n 'map',\n 'maps',\n 'marketing',\n 'master',\n 'me',\n 'media',\n 'member',\n 'members',\n 'memories',\n 'memory',\n 'merchandise',\n 'message',\n 'messages',\n 'messenger',\n 'mg',\n 'microblog',\n 'microblogs',\n 'mine',\n 'mis',\n 'misc',\n 'mms',\n 'mob',\n 'mobile',\n 'model',\n 'models',\n 'money',\n 'movie',\n 'movies',\n 'mp3',\n 'mp4',\n 'msg',\n 'msn',\n 'music',\n 'mx',\n 'my',\n 'mymme',\n 'mysql',\n 'name',\n 'named',\n 'nan',\n 'navi',\n 'navigation',\n 'net',\n 'network',\n 'networks',\n 'new',\n 'news',\n 'newsletter',\n 'nick',\n 'nickname',\n 'nil',\n 'none',\n 'notes',\n 'noticias',\n 'notification',\n 'notifications',\n 'notify',\n 'ns',\n 'ns1',\n 'ns2',\n 'ns3',\n 'ns4',\n 'ns5',\n 'null',\n 'oauth',\n 'oauth-clients',\n 'oauth_clients',\n 'ocsp',\n 'offer',\n 'offers',\n 'official',\n 'old',\n 'online',\n 'openid',\n 'operator',\n 'option',\n 'options',\n 'order',\n 'orders',\n 'org',\n 'organization',\n 'organizations',\n 'other',\n 'overview',\n 'owner',\n 'owners',\n 'p0rn',\n 'pack',\n 'page',\n 'pager',\n 'pages',\n 'paid',\n 'panel',\n 'partner',\n 'partnerpage',\n 'partners',\n 'password',\n 'patch',\n 'pay',\n 'payment',\n 'people',\n 'perl',\n 'person',\n 'phone',\n 'photo',\n 'photoalbum',\n 'photos',\n 'php',\n 'phpmyadmin',\n 'phppgadmin',\n 'phpredisadmin',\n 'pic',\n 'pics',\n 'picture',\n 'pictures',\n 'ping',\n 'pixel',\n 'places',\n 'plan',\n 'plans',\n 'plugin',\n 'plugins',\n 'podcasts',\n 'policies',\n 'policy',\n 'pop',\n 'pop3',\n 'popular',\n 'porn',\n 'portal',\n 'portals',\n 'post',\n 'postfix',\n 'postmaster',\n 'posts',\n 'pr',\n 'pr0n',\n 'premium',\n 'press',\n 'price',\n 'pricing',\n 'principles',\n 'print',\n 'privacy',\n 'privacy-policy',\n 'privacypolicy',\n 'privacy_policy',\n 'private',\n 'prod',\n 'product',\n 'production',\n 'products',\n 'profile',\n 'profiles',\n 'project',\n 'projects',\n 'promo',\n 'promotions',\n 'proxies',\n 'proxy',\n 'pub',\n 'public',\n 'purchase',\n 'purpose',\n 'put',\n 'python',\n 'queries',\n 'query',\n 'radio',\n 'random',\n 'ranking',\n 'read',\n 'reader',\n 'readme',\n 'recent',\n 'recruit',\n 'recruitment',\n 'redirect',\n 'register',\n 'registration',\n 'release',\n 'remove',\n 'replies',\n 'report',\n 'reports',\n 'repositories',\n 'repository',\n 'req',\n 'request',\n 'requests',\n 'research',\n 'reset',\n 'resolve',\n 'resolver',\n 'review',\n 'rnail',\n 'rnicrosoft',\n 'roc',\n 'root',\n 'rss',\n 'ruby',\n 'rule',\n 'sag',\n 'sale',\n 'sales',\n 'sample',\n 'samples',\n 'sandbox',\n 'save',\n 'scholar',\n 'school',\n 'schools',\n 'script',\n 'scripts',\n 'search',\n 'secure',\n 'security',\n 'self',\n 'seminars',\n 'send',\n 'server',\n 'server-info',\n 'server_info',\n 'server-status',\n 'server_status',\n 'servers',\n 'service',\n 'services',\n 'session',\n 'sessions',\n 'setting',\n 'settings',\n 'setup',\n 'share',\n 'shop',\n 'shopping',\n 'shortcut',\n 'shortcuts',\n 'show',\n 'sign-in',\n 'sign-up',\n 'signin',\n 'signout',\n 'signup',\n 'sign_in',\n 'sign_up',\n 'site',\n 'sitemap',\n 'sitemaps',\n 'sitenews',\n 'sites',\n 'sketchup',\n 'sky',\n 'slash',\n 'slashinvoice',\n 'slut',\n 'smartphone',\n 'sms',\n 'smtp',\n 'soap',\n 'software',\n 'sorry',\n 'source',\n 'spec',\n 'special',\n 'spreadsheet',\n 'spreadsheets',\n 'sql',\n 'src',\n 'srntp',\n 'ssh',\n 'ssl',\n 'ssladmin',\n 'ssladministrator',\n 'sslwebmaster',\n 'ssytem',\n 'staff',\n 'stage',\n 'staging',\n 'start',\n 'stat',\n 'state',\n 'static',\n 'statistics',\n 'stats',\n 'status',\n 'store',\n 'stores',\n 'stories',\n 'style',\n 'styleguide',\n 'styles',\n 'stylesheet',\n 'stylesheets',\n 'subdomain',\n 'subscribe',\n 'subscription',\n 'subscriptions',\n 'suggest',\n 'suggestqueries',\n 'support',\n 'survey',\n 'surveys',\n 'surveytool',\n 'svn',\n 'swf',\n 'syn',\n 'sync',\n 'syndicated',\n 'sys',\n 'sysadmin',\n 'sysadministrator',\n 'sysadmins',\n 'system',\n 'tablet',\n 'tablets',\n 'tag',\n 'tags',\n 'talk',\n 'talkgadget',\n 'task',\n 'tasks',\n 'team',\n 'teams',\n 'tech',\n 'telnet',\n 'term',\n 'terms',\n 'terms-of-service',\n 'termsofservice',\n 'terms_of_service',\n 'test',\n 'testing',\n 'tests',\n 'text',\n 'theme',\n 'themes',\n 'thread',\n 'threads',\n 'ticket',\n 'tickets',\n 'tmp',\n 'todo',\n 'to-do',\n 'to_do',\n 'toml',\n 'tool',\n 'toolbar',\n 'toolbars',\n 'tools',\n 'top',\n 'topic',\n 'topics',\n 'tos',\n 'tour',\n 'trac',\n 'translate',\n 'trace',\n 'translation',\n 'translations',\n 'translator',\n 'trends',\n 'tutorial',\n 'tux',\n 'tv',\n 'twitter',\n 'txt',\n 'ul',\n 'undef',\n 'unfollow',\n 'unsubscribe',\n 'update',\n 'updates',\n 'upgrade',\n 'upgrades',\n 'upi',\n 'upload',\n 'uploads',\n 'url',\n 'usage',\n 'user',\n 'username',\n 'usernames',\n 'users',\n 'uuid',\n 'validation',\n 'validations',\n 'ver',\n 'version',\n 'video',\n 'videos',\n 'video-stats',\n 'visitor',\n 'visitors',\n 'voice',\n 'volunteer',\n 'volunteers',\n 'w',\n 'watch',\n 'wave',\n 'weather',\n 'web',\n 'webdisk',\n 'webhook',\n 'webhooks',\n 'webmail',\n 'webmaster',\n 'webmasters',\n 'webrnail',\n 'website',\n 'websites',\n 'welcome',\n 'whm',\n 'whois',\n 'widget',\n 'widgets',\n 'wifi',\n 'wiki',\n 'wikis',\n 'win',\n 'windows',\n 'word',\n 'work',\n 'works',\n 'workshop',\n 'wpad',\n 'ww',\n 'wws',\n 'www',\n 'wwws',\n 'wwww',\n 'xfn',\n 'xhtml',\n 'xhtrnl',\n 'xml',\n 'xmpp',\n 'xpg',\n 'xxx',\n 'yaml',\n 'year',\n 'yml',\n 'you',\n 'yourdomain',\n 'yourname',\n 'yoursite',\n 'yourusername',\n]\n\nconst famousAccounts = [\n // reserving some large twitter accounts (top 100 by followers according to wikidata dump)\n '10ronaldinho',\n '3gerardpique',\n 'adele',\n 'akshaykumar',\n 'aliaa08',\n 'aliciakeys',\n 'amitshah',\n 'andresiniesta8',\n 'anushkasharma',\n 'arianagrande',\n 'arrahman',\n 'arvindkejriwal',\n 'avrillavigne',\n 'barackobama',\n 'bbcbreaking',\n 'bbcworld',\n 'beingsalmankhan',\n 'billgates',\n 'britneyspears',\n 'brunomars',\n 'bts_bighit',\n 'bts_twt',\n 'championsleague',\n 'chrisbrown',\n 'cnnbrk',\n 'coldplay',\n 'conanobrien',\n 'cristiano',\n 'danieltosh',\n 'davidguetta',\n 'ddlovato',\n 'deepikapadukone',\n 'drake',\n 'elisapie',\n 'ellendegeneres',\n 'elonmusk',\n 'eminem',\n 'emmawatson',\n 'fcbarcelona',\n 'foxnews',\n 'harry_styles',\n 'hillaryclinton',\n 'iamsrk',\n 'ihrithik',\n 'imvkohli',\n 'instagram',\n 'jimmyfallon',\n 'jlo',\n 'joebiden',\n 'jtimberlake',\n 'justinbieber',\n 'kaka',\n 'kanyewest',\n 'katyperry',\n 'kendalljenner',\n 'kevinhart4real',\n 'khloekardashian',\n 'kimkardashian',\n 'kingjames',\n 'kourtneykardash',\n 'kyliejenner',\n 'ladygaga',\n 'liampayne',\n 'liltunechi',\n 'manutd',\n 'mariahcarey',\n 'mileycyrus',\n 'mohamadalarefe',\n 'narendramodi',\n 'nasa',\n 'nba',\n 'neymarjr',\n 'nfl',\n 'niallofficial',\n 'nickiminaj',\n 'npr',\n 'nytimes',\n 'onedirection',\n 'oprah',\n 'pink',\n 'pitbull',\n 'playstation',\n 'pmoindia',\n 'premierleague',\n 'priyankachopra',\n 'realdonaldtrump',\n 'ricky_martin',\n 'rihanna',\n 'sachin_rt',\n 'selenagomez',\n 'shakira',\n 'shawnmendes',\n 'sportscenter',\n 'srbachchan',\n 'subhisharma100',\n 'taylorswift13',\n 'theeconomist',\n 'twitter',\n 'virendersehwag',\n 'whitehouse45',\n 'wizkhalifa',\n 'youtube',\n 'zaynmalik',\n\n // some top instagram (https://en.wikipedia.org/wiki/List_of_most-followed_Instagram_accounts)\n 'beyonce',\n 'billieeilish',\n 'leomessi',\n 'natgeo',\n 'nike',\n 'snoopdogg',\n 'taylorswift',\n 'therock',\n\n // ... and a couple more prominent accounts, subjectively\n '10downingstreet',\n 'aoc',\n 'carterjwm',\n 'dril',\n 'gretathunberg',\n 'kamalaharris',\n 'kremlinrussia_e',\n 'potus',\n 'rondesantisfl',\n 'ukraine',\n 'washingtonpost',\n 'yousuck2020',\n 'zelenskyyua',\n\n // top japan-specific accounts\n 'akiko_lawson',\n 'ariyoshihiroiki',\n 'asahi',\n 'dozle_official',\n 'famima_now',\n 'ff_xiv_jp',\n 'fujitv',\n 'gigazine',\n 'hajimesyacho',\n 'hikakin',\n 'jocx',\n 'jotx',\n 'kiyo_saiore',\n 'mainichi',\n 'matsu_bouzu',\n 'naomiosaka',\n 'nhk',\n 'nikkei',\n 'nintendo',\n 'ntv',\n 'oowareware1945',\n 'pamyurin',\n 'poke_times',\n 'rolaworld',\n 'seikintv',\n 'starbucksjapan',\n 'tbs',\n 'tbs_pr',\n 'tvasahi',\n 'tvtokyo',\n 'yokoono',\n 'yomiuri_online',\n\n // top brazil-specific accounts\n 'brasildefato',\n 'claudialeitte',\n 'correio',\n 'em_com',\n 'estadao',\n 'folha',\n 'gazetadopovo',\n 'ivetesangalo',\n 'jairbolsonaro',\n 'jornaldobrasil',\n 'jornaloglobo',\n 'lucianohuck',\n 'lulaoficial',\n 'marcosmion',\n 'paulocoelho',\n 'portalr7',\n 'rede_globo',\n 'zerohora',\n]\n\nexport const reservedSubdomains: Record<string, boolean> = [\n ...atpSpecific,\n ...commonlyReserved,\n ...famousAccounts,\n].reduce((acc, cur) => {\n return {\n ...acc,\n [cur]: true,\n }\n}, {})\n", "import { reservedSubdomains } from './reserved'\n\nexport * from './resolve'\n\n// Currently these are registration-time restrictions, not protocol-level\n// restrictions. We have a couple accounts in the wild that we need to clean up\n// before hard-disallow.\n// See also: https://en.wikipedia.org/wiki/Top-level_domain#Reserved_domains\nconst DISALLOWED_TLDS = [\n '.local',\n '.arpa',\n '.invalid',\n '.localhost',\n '.internal',\n // policy could concievably change on \".onion\" some day\n '.onion',\n // NOTE: .test is allowed in testing and devopment. In practical terms\n // \"should\" \"never\" actually resolve and get registered in production\n]\n\n// Handle constraints, in English:\n// - must be a possible domain name\n// - RFC-1035 is commonly referenced, but has been updated. eg, RFC-3696,\n// section 2. and RFC-3986, section 3. can now have leading numbers (eg,\n// 4chan.org)\n// - \"labels\" (sub-names) are made of ASCII letters, digits, hyphens\n// - can not start or end with a hyphen\n// - TLD (last component) should not start with a digit\n// - can't end with a hyphen (can end with digit)\n// - each segment must be between 1 and 63 characters (not including any periods)\n// - overall length can't be more than 253 characters\n// - separated by (ASCII) periods; does not start or end with period\n// - case insensitive\n// - domains (handles) are equal if they are the same lower-case\n// - punycode allowed for internationalization\n// - no whitespace, null bytes, joining chars, etc\n// - does not validate whether domain or TLD exists, or is a reserved or\n// special TLD (eg, .onion or .local)\n// - does not validate punycode\nexport const ensureValidHandle = (handle: string): void => {\n // check that all chars are boring ASCII\n if (!/^[a-zA-Z0-9.-]*$/.test(handle)) {\n throw new InvalidHandleError(\n 'Disallowed characters in handle (ASCII letters, digits, dashes, periods only)',\n )\n }\n\n if (handle.length > 253) {\n throw new InvalidHandleError('Handle is too long (253 chars max)')\n }\n const labels = handle.split('.')\n if (labels.length < 2) {\n throw new InvalidHandleError('Handle domain needs at least two parts')\n }\n for (let i = 0; i < labels.length; i++) {\n const l = labels[i]\n if (l.length < 1) {\n throw new InvalidHandleError('Handle parts can not be empty')\n }\n if (l.length > 63) {\n throw new InvalidHandleError('Handle part too long (max 63 chars)')\n }\n if (l.endsWith('-') || l.startsWith('-')) {\n throw new InvalidHandleError(\n 'Handle parts can not start or end with hyphens',\n )\n }\n if (i + 1 == labels.length && !/^[a-zA-Z]/.test(l)) {\n throw new InvalidHandleError(\n 'Handle final component (TLD) must start with ASCII letter',\n )\n }\n }\n}\n\n// simple regex translation of above constraints\nexport const ensureValidHandleRegex = (handle: string): void => {\n if (\n !/^([a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?$/.test(\n handle,\n )\n ) {\n throw new InvalidHandleError(\"Handle didn't validate via regex\")\n }\n if (handle.length > 253) {\n throw new InvalidHandleError('Handle is too long (253 chars max)')\n }\n}\n\nexport const normalizeHandle = (handle: string): string => {\n return handle.toLowerCase()\n}\n\nexport const normalizeAndEnsureValidHandle = (handle: string): string => {\n const normalized = normalizeHandle(handle)\n ensureValidHandle(normalized)\n return normalized\n}\n\nexport const isValidHandle = (handle: string): boolean => {\n try {\n ensureValidHandle(handle)\n } catch (err) {\n if (err instanceof InvalidHandleError) {\n return false\n }\n throw err\n }\n return true\n}\n\nexport const ensureHandleServiceConstraints = (\n handle: string,\n availableUserDomains: string[],\n reserved = reservedSubdomains,\n): void => {\n const disallowedTld = DISALLOWED_TLDS.find((domain) =>\n handle.endsWith(domain),\n )\n if (disallowedTld) {\n throw new DisallowedDomainError('Handle TLD is invalid or disallowed')\n }\n const supportedDomain = availableUserDomains.find((domain) =>\n handle.endsWith(domain),\n )\n if (!supportedDomain) {\n throw new UnsupportedDomainError('Not a supported handle domain')\n }\n const front = handle.slice(0, handle.length - supportedDomain.length)\n if (front.indexOf('.') > -1) {\n throw new InvalidHandleError('Invalid characters in handle')\n }\n if (front.length < 3) {\n throw new InvalidHandleError('Handle too short')\n }\n if (handle.length > 30) {\n throw new InvalidHandleError('Handle too long')\n }\n if (reserved[front]) {\n throw new ReservedHandleError('Reserved handle')\n }\n}\n\nexport const fulfillsHandleServiceConstraints = (\n handle: string,\n availableUserDomains: string[],\n reserved = reservedSubdomains,\n): boolean => {\n try {\n ensureHandleServiceConstraints(handle, availableUserDomains, reserved)\n } catch (err) {\n if (\n err instanceof InvalidHandleError ||\n err instanceof ReservedHandleError ||\n err instanceof UnsupportedDomainError ||\n err instanceof DisallowedDomainError\n ) {\n return false\n }\n throw err\n }\n return true\n}\n\nexport class InvalidHandleError extends Error {}\nexport class ReservedHandleError extends Error {}\nexport class UnsupportedDomainError extends Error {}\nexport class DisallowedDomainError extends Error {}\n", "// Human-readable constraints:\n// - valid W3C DID (https://www.w3.org/TR/did-core/#did-syntax)\n// - entire URI is ASCII: [a-zA-Z0-9._:%-]\n// - always starts \"did:\" (lower-case)\n// - method name is one or more lower-case letters, followed by \":\"\n// - remaining identifier can have any of the above chars, but can not end in \":\"\n// - it seems that a bunch of \":\" can be included, and don't need spaces between\n// - \"%\" is used only for \"percent encoding\" and must be followed by two hex characters (and thus can't end in \"%\")\n// - query (\"?\") and fragment (\"#\") stuff is defined for \"DID URIs\", but not as part of identifier itself\n// - \"The current specification does not take a position on the maximum length of a DID\"\n// - in current atproto, only allowing did:plc and did:web. But not *forcing* this at lexicon layer\n// - hard length limit of 8KBytes\n// - not going to validate \"percent encoding\" here\nexport const ensureValidDid = (did: string): void => {\n // check that all chars are boring ASCII\n if (!/^[a-zA-Z0-9._:%-]*$/.test(did)) {\n throw new InvalidDidError(\n 'Disallowed characters in DID (ASCII letters, digits, and a couple other characters only)',\n )\n }\n\n const parts = did.split(':')\n if (parts.length < 3) {\n throw new InvalidDidError(\n 'DID requires prefix, method, and method-specific content',\n )\n }\n\n if (parts[0] != 'did') {\n throw new InvalidDidError('DID requires \"did:\" prefix')\n }\n\n if (!/^[a-z]+$/.test(parts[1])) {\n throw new InvalidDidError('DID method must be lower-case letters')\n }\n\n if (did.endsWith(':') || did.endsWith('%')) {\n throw new InvalidDidError('DID can not end with \":\" or \"%\"')\n }\n\n if (did.length > 8 * 1024) {\n throw new InvalidDidError('DID is far too long')\n }\n}\n\nexport const ensureValidDidRegex = (did: string): void => {\n // simple regex to enforce most constraints via just regex and length.\n // hand wrote this regex based on above constraints\n if (!/^did:[a-z]+:[a-zA-Z0-9._:%-]*[a-zA-Z0-9._-]$/.test(did)) {\n throw new InvalidDidError(\"DID didn't validate via regex\")\n }\n\n if (did.length > 8 * 1024) {\n throw new InvalidDidError('DID is far too long')\n }\n}\n\nexport class InvalidDidError extends Error {}\n", "/*\nGrammar:\n\nalpha = \"a\" / \"b\" / \"c\" / \"d\" / \"e\" / \"f\" / \"g\" / \"h\" / \"i\" / \"j\" / \"k\" / \"l\" / \"m\" / \"n\" / \"o\" / \"p\" / \"q\" / \"r\" / \"s\" / \"t\" / \"u\" / \"v\" / \"w\" / \"x\" / \"y\" / \"z\" / \"A\" / \"B\" / \"C\" / \"D\" / \"E\" / \"F\" / \"G\" / \"H\" / \"I\" / \"J\" / \"K\" / \"L\" / \"M\" / \"N\" / \"O\" / \"P\" / \"Q\" / \"R\" / \"S\" / \"T\" / \"U\" / \"V\" / \"W\" / \"X\" / \"Y\" / \"Z\"\nnumber = \"1\" / \"2\" / \"3\" / \"4\" / \"5\" / \"6\" / \"7\" / \"8\" / \"9\" / \"0\"\ndelim = \".\"\nsegment = alpha *( alpha / number / \"-\" )\nauthority = segment *( delim segment )\nname = segment\nnsid = authority delim name\nnsid-ns = authority delim \"*\"\n\n*/\n\nexport class NSID {\n segments: string[] = []\n\n static parse(nsid: string): NSID {\n return new NSID(nsid)\n }\n\n static create(authority: string, name: string): NSID {\n const segments = [...authority.split('.').reverse(), name].join('.')\n return new NSID(segments)\n }\n\n static isValid(nsid: string): boolean {\n try {\n NSID.parse(nsid)\n return true\n } catch (e) {\n return false\n }\n }\n\n constructor(nsid: string) {\n ensureValidNsid(nsid)\n this.segments = nsid.split('.')\n }\n\n get authority() {\n return this.segments\n .slice(0, this.segments.length - 1)\n .reverse()\n .join('.')\n }\n\n get name() {\n return this.segments.at(this.segments.length - 1)\n }\n\n toString() {\n return this.segments.join('.')\n }\n}\n\n// Human readable constraints on NSID:\n// - a valid domain in reversed notation. which means the same as a loose domain!\nexport const ensureValidNsid = (nsid: string): void => {\n // to handle nsid-ns\n const split = nsid.split('.')\n const toCheck =\n split.at(-1) === '*' ? split.slice(0, -1).join('.') : split.join('.')\n\n // check that all chars are boring ASCII\n if (!/^[a-zA-Z0-9.-]*$/.test(toCheck)) {\n throw new InvalidNsidError(\n 'Disallowed characters in NSID (ASCII letters, digits, dashes, periods only)',\n )\n }\n\n if (toCheck.length > 253 + 1 + 128) {\n throw new InvalidNsidError('NSID is too long (382 chars max)')\n }\n const labels = toCheck.split('.')\n if (split.length < 3) {\n throw new InvalidNsidError('NSID needs at least three parts')\n }\n for (let i = 0; i < labels.length; i++) {\n const l = labels[i]\n if (l.length < 1) {\n throw new InvalidNsidError('NSID parts can not be empty')\n }\n if (l.length > 63 && i + 1 < labels.length) {\n throw new InvalidNsidError('NSID domain part too long (max 63 chars)')\n }\n if (l.length > 128 && i + 1 == labels.length) {\n throw new InvalidNsidError('NSID name part too long (max 128 chars)')\n }\n if (l.endsWith('-')) {\n throw new InvalidNsidError('NSID parts can not end with hyphen')\n }\n if (!/^[a-zA-Z]/.test(l)) {\n throw new InvalidNsidError('NSID parts must start with ASCII letter')\n }\n }\n}\n\n// nsid-ns is not handled in regex yet\nexport const ensureValidNsidRegex = (nsid: string): void => {\n // simple regex to enforce most constraints via just regex and length.\n // hand wrote this regex based on above constraints\n if (\n !/^[a-zA-Z]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(\\.[a-zA-Z]([a-zA-Z0-9-]{0,126}[a-zA-Z0-9])?)$/.test(\n nsid,\n )\n ) {\n throw new InvalidNsidError(\"NSID didn't validate via regex\")\n }\n if (nsid.length > 253 + 1 + 128) {\n throw new InvalidNsidError('NSID is too long (382 chars max)')\n }\n}\n\nexport class InvalidNsidError extends Error {}\n", "import * as id from '@atproto/identifier'\nimport * as nsid from '@atproto/nsid'\n\n// Human-readable constraints on ATURI:\n// - following regular URLs, a 8KByte hard total length limit\n// - follows ATURI docs on website\n// - all ASCII characters, no whitespace. non-ASCII could be URL-encoded\n// - starts \"at://\"\n// - \"authority\" is a valid DID or a valid handle\n// - optionally, follow \"authority\" with \"/\" and valid NSID as start of path\n// - optionally, if NSID given, follow that with \"/\" and rkey\n// - rkey path component can include URL-encoded (\"percent encoded\"), or:\n// ALPHA / DIGIT / \"-\" / \".\" / \"_\" / \"~\" / \":\" / \"@\" / \"!\" / \"$\" / \"&\" / \"'\" / \"(\" / \")\" / \"*\" / \"+\" / \",\" / \";\" / \"=\"\n// [a-zA-Z0-9._~:@!$&'\\(\\)*+,;=-]\n// - rkey must have at least one char\n// - regardless of path component, a fragment can follow as \"#\" and then a JSON pointer (RFC-6901)\nexport const ensureValidAtUri = (uri: string) => {\n // JSON pointer is pretty different from rest of URI, so split that out first\n const uriParts = uri.split('#')\n if (uriParts.length > 2) {\n throw new Error('ATURI can have at most one \"#\", separating fragment out')\n }\n const fragmentPart = uriParts[1] || null\n uri = uriParts[0]\n\n // check that all chars are boring ASCII\n if (!/^[a-zA-Z0-9._~:@!$&')(*+,;=%/-]*$/.test(uri)) {\n throw new Error('Disallowed characters in ATURI (ASCII)')\n }\n\n const parts = uri.split('/')\n if (parts.length >= 3 && (parts[0] != 'at:' || parts[1].length != 0)) {\n throw new Error('ATURI must start with \"at://\"')\n }\n if (parts.length < 3) {\n throw new Error('ATURI requires at least method and authority sections')\n }\n\n try {\n id.ensureValidHandle(parts[2])\n } catch {\n try {\n id.ensureValidDid(parts[2])\n } catch {\n throw new Error('ATURI authority must be a valid handle or DID')\n }\n }\n\n if (parts.length >= 4) {\n if (parts[3].length == 0) {\n throw new Error(\n 'ATURI can not have a slash after authority without a path segment',\n )\n }\n try {\n nsid.ensureValidNsid(parts[3])\n } catch {\n throw new Error(\n 'ATURI requires first path segment (if supplied) to be valid NSID',\n )\n }\n }\n\n if (parts.length >= 5) {\n if (parts[4].length == 0) {\n throw new Error(\n 'ATURI can not have a slash after collection, unless record key is provided',\n )\n }\n // would validate rkey here, but there are basically no constraints!\n }\n\n if (parts.length >= 6) {\n throw new Error(\n 'ATURI path can have at most two parts, and no trailing slash',\n )\n }\n\n if (uriParts.length >= 2 && fragmentPart == null) {\n throw new Error('ATURI fragment must be non-empty and start with slash')\n }\n\n if (fragmentPart != null) {\n if (fragmentPart.length == 0 || fragmentPart[0] != '/') {\n throw new Error('ATURI fragment must be non-empty and start with slash')\n }\n // NOTE: enforcing *some* checks here for sanity. Eg, at least no whitespace\n if (!/^\\/[a-zA-Z0-9._~:@!$&')(*+,;=%[\\]/-]*$/.test(fragmentPart)) {\n throw new Error('Disallowed characters in ATURI fragment (ASCII)')\n }\n }\n\n if (uri.length > 8 * 1024) {\n throw new Error('ATURI is far too long')\n }\n}\n\nexport const ensureValidAtUriRegex = (uri: string): void => {\n // simple regex to enforce most constraints via just regex and length.\n // hand wrote this regex based on above constraints. whew!\n const aturiRegex =\n /^at:\\/\\/(?<authority>[a-zA-Z0-9._:%-]+)(\\/(?<collection>[a-zA-Z0-9-.]+)(\\/(?<rkey>[a-zA-Z0-9._~:@!$&%')(*+,;=-]+))?)?(#(?<fragment>\\/[a-zA-Z0-9._~:@!$&%')(*+,;=\\-[\\]/\\\\]*))?$/\n const rm = uri.match(aturiRegex)\n if (!rm || !rm.groups) {\n throw new Error(\"ATURI didn't validate via regex\")\n }\n const groups = rm.groups\n\n try {\n id.ensureValidHandleRegex(groups.authority)\n } catch {\n try {\n id.ensureValidDidRegex(groups.authority)\n } catch {\n throw new Error('ATURI authority must be a valid handle or DID')\n }\n }\n\n if (groups.collection) {\n try {\n nsid.ensureValidNsidRegex(groups.collection)\n } catch {\n throw new Error('ATURI collection path segment must be a valid NSID')\n }\n }\n\n if (uri.length > 8 * 1024) {\n throw new Error('ATURI is far too long')\n }\n}\n", "export * from './validation'\n\nexport const ATP_URI_REGEX =\n // proto- --did-------------- --name---------------- --path---- --query-- --hash--\n /^(at:\\/\\/)?((?:did:[a-z0-9:%-]+)|(?:[a-z0-9][a-z0-9.:-]*))(\\/[^?#\\s]*)?(\\?[^#\\s]+)?(#[^\\s]+)?$/i\n// --path----- --query-- --hash--\nconst RELATIVE_REGEX = /^(\\/[^?#\\s]*)?(\\?[^#\\s]+)?(#[^\\s]+)?$/i\n\nexport class AtUri {\n hash: string\n host: string\n pathname: string\n searchParams: URLSearchParams\n\n constructor(uri: string, base?: string) {\n let parsed\n if (base) {\n parsed = parse(base)\n if (!parsed) {\n throw new Error(`Invalid at uri: ${base}`)\n }\n const relativep = parseRelative(uri)\n if (!relativep) {\n throw new Error(`Invalid path: ${uri}`)\n }\n Object.assign(parsed, relativep)\n } else {\n parsed = parse(uri)\n if (!parsed) {\n throw new Error(`Invalid at uri: ${uri}`)\n }\n }\n\n this.hash = parsed.hash\n this.host = parsed.host\n this.pathname = parsed.pathname\n this.searchParams = parsed.searchParams\n }\n\n static make(handleOrDid: string, collection?: string, rkey?: string) {\n let str = handleOrDid\n if (collection) str += '/' + collection\n if (rkey) str += '/' + rkey\n return new AtUri(str)\n }\n\n get protocol() {\n return 'at:'\n }\n\n get origin() {\n return `at://${this.host}`\n }\n\n get hostname() {\n return this.host\n }\n\n set hostname(v: string) {\n this.host = v\n }\n\n get search() {\n return this.searchParams.toString()\n }\n\n set search(v: string) {\n this.searchParams = new URLSearchParams(v)\n }\n\n get collection() {\n return this.pathname.split('/').filter(Boolean)[0] || ''\n }\n\n set collection(v: string) {\n const parts = this.pathname.split('/').filter(Boolean)\n parts[0] = v\n this.pathname = parts.join('/')\n }\n\n get rkey() {\n return this.pathname.split('/').filter(Boolean)[1] || ''\n }\n\n set rkey(v: string) {\n const parts = this.pathname.split('/').filter(Boolean)\n if (!parts[0]) parts[0] = 'undefined'\n parts[1] = v\n this.pathname = parts.join('/')\n }\n\n get href() {\n return this.toString()\n }\n\n toString() {\n let path = this.pathname || '/'\n if (!path.startsWith('/')) {\n path = `/${path}`\n }\n let qs = this.searchParams.toString()\n if (qs && !qs.startsWith('?')) {\n qs = `?${qs}`\n }\n let hash = this.hash\n if (hash && !hash.startsWith('#')) {\n hash = `#${hash}`\n }\n return `at://${this.host}${path}${qs}${hash}`\n }\n}\n\nfunction parse(str: string) {\n const match = ATP_URI_REGEX.exec(str)\n if (match) {\n return {\n hash: match[5] || '',\n host: match[2] || '',\n pathname: match[3] || '',\n searchParams: new URLSearchParams(match[4] || ''),\n }\n }\n return undefined\n}\n\nfunction parseRelative(str: string) {\n const match = RELATIVE_REGEX.exec(str)\n if (match) {\n return {\n hash: match[3] || '',\n pathname: match[1] || '',\n searchParams: new URLSearchParams(match[2] || ''),\n }\n }\n return undefined\n}\n", "import { z } from 'zod'\nimport { NSID } from '@atproto/nsid'\n\n// primitives\n// =\n\nexport const lexBoolean = z.object({\n type: z.literal('boolean'),\n description: z.string().optional(),\n default: z.boolean().optional(),\n const: z.boolean().optional(),\n})\nexport type LexBoolean = z.infer<typeof lexBoolean>\n\nexport const lexInteger = z.object({\n type: z.literal('integer'),\n description: z.string().optional(),\n default: z.number().int().optional(),\n minimum: z.number().int().optional(),\n maximum: z.number().int().optional(),\n enum: z.number().int().array().optional(),\n const: z.number().int().optional(),\n})\nexport type LexInteger = z.infer<typeof lexInteger>\n\nexport const lexStringFormat = z.enum([\n 'datetime',\n 'uri',\n 'at-uri',\n 'did',\n 'handle',\n 'at-identifier',\n 'nsid',\n 'cid',\n])\nexport type LexStringFormat = z.infer<typeof lexStringFormat>\n\nexport const lexString = z.object({\n type: z.literal('string'),\n format: lexStringFormat.optional(),\n description: z.string().optional(),\n default: z.string().optional(),\n minLength: z.number().int().optional(),\n maxLength: z.number().int().optional(),\n minGraphemes: z.number().int().optional(),\n maxGraphemes: z.number().int().optional(),\n enum: z.string().array().optional(),\n const: z.string().optional(),\n knownValues: z.string().array().optional(),\n})\nexport type LexString = z.infer<typeof lexString>\n\nexport const lexUnknown = z.object({\n type: z.literal('unknown'),\n description: z.string().optional(),\n})\nexport type LexUnknown = z.infer<typeof lexUnknown>\n\nexport const lexPrimitive = z.discriminatedUnion('type', [\n lexBoolean,\n lexInteger,\n lexString,\n lexUnknown,\n])\nexport type LexPrimitive = z.infer<typeof lexPrimitive>\n\n// ipld types\n// =\n\nexport const lexBytes = z.object({\n type: z.literal('bytes'),\n description: z.string().optional(),\n maxLength: z.number().optional(),\n minLength: z.number().optional(),\n})\nexport type LexBytes = z.infer<typeof lexBytes>\n\nexport const lexCidLink = z.object({\n type: z.literal('cid-link'),\n description: z.string().optional(),\n})\nexport type LexCidLink = z.infer<typeof lexCidLink>\n\nexport const lexIpldType = z.discriminatedUnion('type', [lexBytes, lexCidLink])\nexport type LexIpldType = z.infer<typeof lexIpldType>\n\n// references\n// =\n\nexport const lexRef = z.object({\n type: z.literal('ref'),\n description: z.string().optional(),\n ref: z.string(),\n})\nexport type LexRef = z.infer<typeof lexRef>\n\nexport const lexRefUnion = z.object({\n type: z.literal('union'),\n description: z.string().optional(),\n refs: z.string().array(),\n closed: z.boolean().optional(),\n})\nexport type LexRefUnion = z.infer<typeof lexRefUnion>\n\nexport const lexRefVariant = z.discriminatedUnion('type', [lexRef, lexRefUnion])\nexport type LexRefVariant = z.infer<typeof lexRefVariant>\n\n// blobs\n// =\n\nexport const lexBlob = z.object({\n type: z.literal('blob'),\n description: z.string().optional(),\n accept: z.string().array().optional(),\n maxSize: z.number().optional(),\n})\nexport type LexBlob = z.infer<typeof lexBlob>\n\n// complex types\n// =\n\nexport const lexArray = z.object({\n type: z.literal('array'),\n description: z.string().optional(),\n items: z.union([lexPrimitive, lexIpldType, lexBlob, lexRefVariant]),\n minLength: z.number().int().optional(),\n maxLength: z.number().int().optional(),\n})\nexport type LexArray = z.infer<typeof lexArray>\n\nexport const lexPrimitiveArray = lexArray.merge(\n z.object({\n items: lexPrimitive,\n }),\n)\nexport type LexPrimitiveArray = z.infer<typeof lexPrimitiveArray>\n\nexport const lexToken = z.object({\n type: z.literal('token'),\n description: z.string().optional(),\n})\nexport type LexToken = z.infer<typeof lexToken>\n\nexport const lexObject = z.object({\n type: z.literal('object'),\n description: z.string().optional(),\n required: z.string().array().optional(),\n nullable: z.string().array().optional(),\n properties: z\n .record(\n z.union([lexRefVariant, lexIpldType, lexArray, lexBlob, lexPrimitive]),\n )\n .optional(),\n})\nexport type LexObject = z.infer<typeof lexObject>\n\n// xrpc\n// =\n\nexport const lexXrpcParameters = z.object({\n type: z.literal('params'),\n description: z.string().optional(),\n required: z.string().array().optional(),\n properties: z.record(z.union([lexPrimitive, lexPrimitiveArray])),\n})\nexport type LexXrpcParameters = z.infer<typeof lexXrpcParameters>\n\nexport const lexXrpcBody = z.object({\n description: z.string().optional(),\n encoding: z.string(),\n schema: z.union([lexRefVariant, lexObject]).optional(),\n})\nexport type LexXrpcBody = z.infer<typeof lexXrpcBody>\n\nexport const lexXrpcSubscriptionMessage = z.object({\n description: z.string().optional(),\n schema: z.union([lexRefVariant, lexObject]).optional(),\n})\nexport type LexXrpcSubscriptionMessage = z.infer<\n typeof lexXrpcSubscriptionMessage\n>\n\nexport const lexXrpcError = z.object({\n name: z.string(),\n description: z.string().optional(),\n})\nexport type LexXrpcError = z.infer<typeof lexXrpcError>\n\nexport const lexXrpcQuery = z.object({\n type: z.literal('query'),\n description: z.string().optional(),\n parameters: lexXrpcParameters.optional(),\n output: lexXrpcBody.optional(),\n errors: lexXrpcError.array().optional(),\n})\nexport type LexXrpcQuery = z.infer<typeof lexXrpcQuery>\n\nexport const lexXrpcProcedure = z.object({\n type: z.literal('procedure'),\n description: z.string().optional(),\n parameters: lexXrpcParameters.optional(),\n input: lexXrpcBody.optional(),\n output: lexXrpcBody.optional(),\n errors: lexXrpcError.array().optional(),\n})\nexport type LexXrpcProcedure = z.infer<typeof lexXrpcProcedure>\n\nexport const lexXrpcSubscription = z.object({\n type: z.literal('subscription'),\n description: z.string().optional(),\n parameters: lexXrpcParameters.optional(),\n message: lexXrpcSubscriptionMessage.optional(),\n infos: lexXrpcError.array().optional(),\n errors: lexXrpcError.array().optional(),\n})\nexport type LexXrpcSubscription = z.infer<typeof lexXrpcSubscription>\n\n// database\n// =\n\nexport const lexRecord = z.object({\n type: z.literal('record'),\n description: z.string().optional(),\n key: z.string().optional(),\n record: lexObject,\n})\nexport type LexRecord = z.infer<typeof lexRecord>\n\n// core\n// =\n\nexport const lexUserType = z.discriminatedUnion('type', [\n lexRecord,\n\n lexXrpcQuery,\n lexXrpcProcedure,\n lexXrpcSubscription,\n\n lexBlob,\n\n lexArray,\n lexToken,\n lexObject,\n\n lexBoolean,\n lexInteger,\n lexString,\n lexBytes,\n lexCidLink,\n lexUnknown,\n])\nexport type LexUserType = z.infer<typeof lexUserType>\n\nexport const lexiconDoc = z\n .object({\n lexicon: z.literal(1),\n id: z.string().refine((v: string) => NSID.isValid(v), {\n message: 'Must be a valid NSID',\n }),\n revision: z.number().optional(),\n description: z.string().optional(),\n defs: z.record(lexUserType),\n })\n .superRefine((doc: LexiconDoc, ctx) => {\n for (const defId in doc.defs) {\n const def = doc.defs[defId]\n if (\n defId !== 'main' &&\n (def.type === 'record' ||\n def.type === 'procedure' ||\n def.type === 'query' ||\n def.type === 'subscription')\n ) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Records, procedures, queries, and subscriptions must be the main definition.`,\n })\n }\n }\n })\nexport type LexiconDoc = z.infer<typeof lexiconDoc>\n\n// helpers\n// =\n\nexport function isValidLexiconDoc(v: unknown): v is LexiconDoc {\n return lexiconDoc.safeParse(v).success\n}\n\nexport function isObj(obj: unknown): obj is Record<string, unknown> {\n return obj !== null && typeof obj === 'object'\n}\n\nexport function hasProp<K extends PropertyKey>(\n data: object,\n prop: K,\n): data is Record<K, unknown> {\n return prop in data\n}\n\nexport const discriminatedObject = z.object({ $type: z.string() })\nexport type DiscriminatedObject = z.infer<typeof discriminatedObject>\nexport function isDiscriminatedObject(\n value: unknown,\n): value is DiscriminatedObject {\n return discriminatedObject.safeParse(value).success\n}\n\nexport class LexiconDocMalformedError extends Error {\n constructor(\n message: string,\n public schemaDef: unknown,\n public issues?: z.ZodIssue[],\n ) {\n super(message)\n this.schemaDef = schemaDef\n this.issues = issues\n }\n}\n\nexport type ValidationResult =\n | {\n success: true\n value: unknown\n }\n | {\n success: false\n error: ValidationError\n }\n\nexport class ValidationError extends Error {}\nexport class InvalidLexiconError extends Error {}\nexport class LexiconDefNotFoundError extends Error {}\n", "import { ensureValidAtUri } from '@atproto/uri'\nimport { isValidISODateString } from 'iso-datestring-validator'\nimport { CID } from 'multiformats/cid'\nimport { ValidationResult, ValidationError } from '../types'\nimport { ensureValidDid, ensureValidHandle } from '@atproto/identifier'\nimport { ensureValidNsid } from '@atproto/nsid'\n\nexport function datetime(path: string, value: string): ValidationResult {\n try {\n if (!isValidISODateString(value)) {\n throw new Error()\n }\n } catch {\n return {\n success: false,\n error: new ValidationError(\n `${path} must be an iso8601 formatted datetime`,\n ),\n }\n }\n return { success: true, value }\n}\n\nexport function uri(path: string, value: string): ValidationResult {\n const isUri = value.match(/^\\w+:(?:\\/\\/)?[^\\s/][^\\s]*$/) !== null\n if (!isUri) {\n return {\n success: false,\n error: new ValidationError(`${path} must be a uri`),\n }\n }\n return { success: true, value }\n}\n\nexport function atUri(path: string, value: string): ValidationResult {\n try {\n ensureValidAtUri(value)\n } catch {\n return {\n success: false,\n error: new ValidationError(`${path} must be a valid at-uri`),\n }\n }\n return { success: true, value }\n}\n\nexport function did(path: string, value: string): ValidationResult {\n try {\n ensureValidDid(value)\n } catch {\n return {\n success: false,\n error: new ValidationError(`${path} must be a valid did`),\n }\n }\n return { success: true, value }\n}\n\nexport function handle(path: string, value: string): ValidationResult {\n try {\n ensureValidHandle(value)\n } catch {\n return {\n success: false,\n error: new ValidationError(`${path} must be a valid handle`),\n }\n }\n return { success: true, value }\n}\n\nexport function atIdentifier(path: string, value: string): ValidationResult {\n const isDid = did(path, value)\n if (!isDid.success) {\n const isHandle = handle(path, value)\n if (!isHandle.success) {\n return {\n success: false,\n error: new ValidationError(`${path} must be a valid did or a handle`),\n }\n }\n }\n return { success: true, value }\n}\n\nexport function nsid(path: string, value: string): ValidationResult {\n try {\n ensureValidNsid(value)\n } catch {\n return {\n success: false,\n error: new ValidationError(`${path} must be a valid nsid`),\n }\n }\n return { success: true, value }\n}\n\nexport function cid(path: string, value: string): ValidationResult {\n try {\n CID.parse(value)\n } catch {\n return {\n success: false,\n error: new ValidationError(`${path} must be a cid string`),\n }\n }\n return { success: true, value }\n}\n", "import { utf8Len, graphemeLen } from '@atproto/common-web'\nimport { CID } from 'multiformats/cid'\nimport { Lexicons } from '../lexicons'\nimport * as formats from './formats'\nimport {\n LexUserType,\n LexBoolean,\n LexInteger,\n LexString,\n ValidationResult,\n ValidationError,\n LexBytes,\n} from '../types'\n\nexport function validate(\n lexicons: Lexicons,\n path: string,\n def: LexUserType,\n value: unknown,\n): ValidationResult {\n switch (def.type) {\n case 'boolean':\n return boolean(lexicons, path, def, value)\n case 'integer':\n return integer(lexicons, path, def, value)\n case 'string':\n return string(lexicons, path, def, value)\n case 'bytes':\n return bytes(lexicons, path, def, value)\n case 'cid-link':\n return cidLink(lexicons, path, def, value)\n case 'unknown':\n return unknown(lexicons, path, def, value)\n default:\n return {\n success: false,\n error: new ValidationError(`Unexpected lexicon type: ${def.type}`),\n }\n }\n}\n\nexport function boolean(\n lexicons: Lexicons,\n path: string,\n def: LexUserType,\n value: unknown,\n): ValidationResult {\n def = def as LexBoolean\n\n // type\n const type = typeof value\n if (type === 'undefined') {\n if (typeof def.default === 'boolean') {\n return { success: true, value: def.default }\n }\n return {\n success: false,\n error: new ValidationError(`${path} must be a boolean`),\n }\n } else if (type !== 'boolean') {\n return {\n success: false,\n error: new ValidationError(`${path} must be a boolean`),\n }\n }\n\n // const\n if (typeof def.const === 'boolean') {\n if (value !== def.const) {\n return {\n success: false,\n error: new ValidationError(`${path} must be ${def.const}`),\n }\n }\n }\n\n return { success: true, value }\n}\n\nexport function integer(\n lexicons: Lexicons,\n path: string,\n def: LexUserType,\n value: unknown,\n): ValidationResult {\n def = def as LexInteger\n\n // type\n const type = typeof value\n if (type === 'undefined') {\n if (typeof def.default === 'number') {\n return { success: true, value: def.default }\n }\n return {\n success: false,\n error: new ValidationError(`${path} must be an integer`),\n }\n } else if (!Number.isInteger(value)) {\n return {\n success: false,\n error: new ValidationError(`${path} must be an integer`),\n }\n }\n\n // const\n if (typeof def.const === 'number') {\n if (value !== def.const) {\n return {\n success: false,\n error: new ValidationError(`${path} must be ${def.const}`),\n }\n }\n }\n\n // enum\n if (Array.isArray(def.enum)) {\n if (!def.enum.includes(value as number)) {\n return {\n success: false,\n error: new ValidationError(\n `${path} must be one of (${def.enum.join('|')})`,\n ),\n }\n }\n }\n\n // maximum\n if (typeof def.maximum === 'number') {\n if ((value as number) > def.maximum) {\n return {\n success: false,\n error: new ValidationError(\n `${path} can not be greater than ${def.maximum}`,\n ),\n }\n }\n }\n\n // minimum\n if (typeof def.minimum === 'number') {\n if ((value as number) < def.minimum) {\n return {\n success: false,\n error: new ValidationError(\n `${path} can not be less than ${def.minimum}`,\n ),\n }\n }\n }\n\n return { success: true, value }\n}\n\nexport function string(\n lexicons: Lexicons,\n path: string,\n def: LexUserType,\n value: unknown,\n): ValidationResult {\n def = def as LexString\n\n // type\n if (typeof value === 'undefined') {\n if (typeof def.default === 'string') {\n return { success: true, value: def.default }\n }\n return {\n success: false,\n error: new ValidationError(`${path} must be a string`),\n }\n } else if (typeof value !== 'string') {\n return {\n success: false,\n error: new ValidationError(`${path} must be a string`),\n }\n }\n\n // const\n if (typeof def.const === 'string') {\n if (value !== def.const) {\n return {\n success: false,\n error: new ValidationError(`${path} must be ${def.const}`),\n }\n }\n }\n\n // enum\n if (Array.isArray(def.enum)) {\n if (!def.enum.includes(value as string)) {\n return {\n success: false,\n error: new ValidationError(\n `${path} must be one of (${def.enum.join('|')})`,\n ),\n }\n }\n }\n\n // maxLength\n if (typeof def.maxLength === 'number') {\n if (utf8Len(value) > def.maxLength) {\n return {\n success: false,\n error: new ValidationError(\n `${path} must not be longer than ${def.maxLength} characters`,\n ),\n }\n }\n }\n\n // minLength\n if (typeof def.minLength === 'number') {\n if (utf8Len(value) < def.minLength) {\n return {\n success: false,\n error: new ValidationError(\n `${path} must not be shorter than ${def.minLength} characters`,\n ),\n }\n }\n }\n\n // maxGraphemes\n if (typeof def.maxGraphemes === 'number') {\n if (graphemeLen(value) > def.maxGraphemes) {\n return {\n success: false,\n error: new ValidationError(\n `${path} must not be longer than ${def.maxGraphemes} graphemes`,\n ),\n }\n }\n }\n\n // minGraphemes\n if (typeof def.minGraphemes === 'number') {\n if (graphemeLen(value) < def.minGraphemes) {\n return {\n success: false,\n error: new ValidationError(\n `${path} must not be shorter than ${def.minGraphemes} graphemes`,\n ),\n }\n }\n }\n\n if (typeof def.format === 'string') {\n switch (def.format) {\n case 'datetime':\n return formats.datetime(path, value)\n case 'uri':\n return formats.uri(path, value)\n case 'at-uri':\n return formats.atUri(path, value)\n case 'did':\n return formats.did(path, value)\n case 'handle':\n return formats.handle(path, value)\n case 'at-identifier':\n return formats.atIdentifier(path, value)\n case 'nsid':\n return formats.nsid(path, value)\n case 'cid':\n return formats.cid(path, value)\n }\n }\n\n return { success: true, value }\n}\n\nexport function bytes(\n lexicons: Lexicons,\n path: string,\n def: LexUserType,\n value: unknown,\n): ValidationResult {\n def = def as LexBytes\n\n if (!value || !(value instanceof Uint8Array)) {\n return {\n success: false,\n error: new ValidationError(`${path} must be a byte array`),\n }\n }\n\n // maxLength\n if (typeof def.maxLength === 'number') {\n if (value.byteLength > def.maxLength) {\n return {\n success: false,\n error: new ValidationError(\n `${path} must not be larger than ${def.maxLength} bytes`,\n ),\n }\n }\n }\n\n // minLength\n if (typeof def.minLength === 'number') {\n if (value.byteLength < def.minLength) {\n return {\n success: false,\n error: new ValidationError(\n `${path} must not be smaller than ${def.minLength} bytes`,\n ),\n }\n }\n }\n\n return { success: true, value }\n}\n\nexport function cidLink(\n lexicons: Lexicons,\n path: string,\n def: LexUserType,\n value: unknown,\n): ValidationResult {\n if (CID.asCID(value) === null) {\n return {\n success: false,\n error: new ValidationError(`${path} must be a CID`),\n }\n }\n\n return { success: true, value }\n}\n\nexport function unknown(\n lexicons: Lexicons,\n path: string,\n def: LexUserType,\n value: unknown,\n): ValidationResult {\n // type\n if (!value || typeof value !== 'object') {\n return {\n success: false,\n error: new ValidationError(`${path} must be an object`),\n }\n }\n\n return { success: true, value }\n}\n", "import { check, ipldToJson, schema } from '@atproto/common-web'\nimport { CID } from 'multiformats/cid'\nimport { z } from 'zod'\n\nexport const typedJsonBlobRef = z\n .object({\n $type: z.literal('blob'),\n ref: schema.cid,\n mimeType: z.string(),\n size: z.number(),\n })\n .strict()\nexport type TypedJsonBlobRef = z.infer<typeof typedJsonBlobRef>\n\nexport const untypedJsonBlobRef = z\n .object({\n cid: z.string(),\n mimeType: z.string(),\n })\n .strict()\nexport type UntypedJsonBlobRef = z.infer<typeof untypedJsonBlobRef>\n\nexport const jsonBlobRef = z.union([typedJsonBlobRef, untypedJsonBlobRef])\nexport type JsonBlobRef = z.infer<typeof jsonBlobRef>\n\nexport class BlobRef {\n public original: JsonBlobRef\n\n constructor(\n public ref: CID,\n public mimeType: string,\n public size: number,\n original?: JsonBlobRef,\n ) {\n this.original = original ?? {\n $type: 'blob',\n ref,\n mimeType,\n size,\n }\n }\n\n static asBlobRef(obj: unknown): BlobRef | null {\n if (check.is(obj, jsonBlobRef)) {\n return BlobRef.fromJsonRef(obj)\n }\n return null\n }\n\n static fromJsonRef(json: JsonBlobRef): BlobRef {\n if (check.is(json, typedJsonBlobRef)) {\n return new BlobRef(json.ref, json.mimeType, json.size)\n } else {\n return new BlobRef(CID.parse(json.cid), json.mimeType, -1, json)\n }\n }\n\n ipld(): TypedJsonBlobRef {\n return {\n $type: 'blob',\n ref: this.ref,\n mimeType: this.mimeType,\n size: this.size,\n }\n }\n\n toJSON() {\n return ipldToJson(this.ipld())\n }\n}\n", "import { BlobRef } from '../blob-refs'\nimport { Lexicons } from '../lexicons'\nimport { LexUserType, ValidationResult, ValidationError } from '../types'\n\nexport function blob(\n lexicons: Lexicons,\n path: string,\n def: LexUserType,\n value: unknown,\n): ValidationResult {\n // check\n if (!value || !(value instanceof BlobRef)) {\n return {\n success: false,\n error: new ValidationError(`${path} should be a blob ref`),\n }\n }\n return { success: true, value }\n}\n", "import { Lexicons } from '../lexicons'\nimport {\n LexArray,\n LexObject,\n LexUserType,\n ValidationResult,\n ValidationError,\n} from '../types'\nimport { validateOneOf } from '../util'\n\nimport * as Primitives from './primitives'\nimport * as Blob from './blob'\n\nexport function validate(\n lexicons: Lexicons,\n path: string,\n def: LexUserType,\n value: unknown,\n): ValidationResult {\n switch (def.type) {\n case 'boolean':\n return Primitives.boolean(lexicons, path, def, value)\n case 'integer':\n return Primitives.integer(lexicons, path, def, value)\n case 'string':\n return Primitives.string(lexicons, path, def, value)\n case 'bytes':\n return Primitives.bytes(lexicons, path, def, value)\n case 'cid-link':\n return Primitives.cidLink(lexicons, path, def, value)\n case 'unknown':\n return Primitives.unknown(lexicons, path, def, value)\n case 'object':\n return object(lexicons, path, def, value)\n case 'array':\n return array(lexicons, path, def, value)\n case 'blob':\n return Blob.blob(lexicons, path, def, value)\n default:\n return {\n success: false,\n error: new ValidationError(`Unexpected lexicon type: ${def.type}`),\n }\n }\n}\n\nexport function array(\n lexicons: Lexicons,\n path: string,\n def: LexArray,\n value: unknown,\n): ValidationResult {\n // type\n if (!Array.isArray(value)) {\n return {\n success: false,\n error: new ValidationError(`${path} must be an array`),\n }\n }\n\n // maxLength\n if (typeof def.maxLength === 'number') {\n if ((value as Array<unknown>).length > def.maxLength) {\n return {\n success: false,\n error: new ValidationError(\n `${path} must not have more than ${def.maxLength} elements`,\n ),\n }\n }\n }\n\n // minLength\n if (typeof def.minLength === 'number') {\n if ((value as Array<unknown>).length < def.minLength) {\n return {\n success: false,\n error: new ValidationError(\n `${path} must not have fewer than ${def.minLength} elements`,\n ),\n }\n }\n }\n\n // items\n const itemsDef = def.items\n for (let i = 0; i < (value as Array<unknown>).length; i++) {\n const itemValue = value[i]\n const itemPath = `${path}/${i}`\n const res = validateOneOf(lexicons, itemPath, itemsDef, itemValue)\n if (!res.success) {\n return res\n }\n }\n\n return { success: true, value }\n}\n\nexport function object(\n lexicons: Lexicons,\n path: string,\n def: LexUserType,\n value: unknown,\n): ValidationResult {\n def = def as LexObject\n\n // type\n if (!value || typeof value !== 'object') {\n return {\n success: false,\n error: new ValidationError(`${path} must be an object`),\n }\n }\n\n const requiredProps = new Set(def.required)\n const nullableProps = new Set(def.nullable)\n\n // properties\n let resultValue = value\n if (typeof def.properties === 'object') {\n for (const key in def.properties) {\n if (value[key] === null && nullableProps.has(key)) {\n continue\n }\n const propDef = def.properties[key]\n const propPath = `${path}/${key}`\n const validated = validateOneOf(lexicons, propPath, propDef, value[key])\n const propValue = validated.success ? validated.value : value[key]\n const propIsUndefined = typeof propValue === 'undefined'\n // Return error for bad validation, giving required rule precedence\n if (propIsUndefined && requiredProps.has(key)) {\n return {\n success: false,\n error: new ValidationError(`${path} must have the property \"${key}\"`),\n }\n } else if (!propIsUndefined && !validated.success) {\n return validated\n }\n // Adjust value based on e.g. applied defaults, cloning shallowly if there was a changed value\n if (propValue !== value[key]) {\n if (resultValue === value) {\n // Lazy shallow clone\n resultValue = { ...value }\n }\n resultValue[key] = propValue\n }\n }\n }\n\n return { success: true, value: resultValue }\n}\n", "import { Lexicons } from './lexicons'\nimport * as ComplexValidators from './validators/complex'\nimport {\n LexUserType,\n LexRefVariant,\n ValidationError,\n ValidationResult,\n isDiscriminatedObject,\n} from './types'\n\nexport function toLexUri(str: string, baseUri?: string): string {\n if (str.startsWith('lex:')) {\n return str\n }\n if (str.startsWith('#')) {\n if (!baseUri) {\n throw new Error(`Unable to resolve uri without anchor: ${str}`)\n }\n return `${baseUri}${str}`\n }\n return `lex:${str}`\n}\n\nexport function validateOneOf(\n lexicons: Lexicons,\n path: string,\n def: LexRefVariant | LexUserType,\n value: unknown,\n mustBeObj = false, // this is the only type constraint we need currently (used by xrpc body schema validators)\n): ValidationResult {\n let error\n\n let concreteDefs\n if (def.type === 'union') {\n if (!isDiscriminatedObject(value)) {\n return {\n success: false,\n error: new ValidationError(\n `${path} must be an object which includes the \"$type\" property`,\n ),\n }\n }\n if (!def.refs.includes(toLexUri(value.$type))) {\n if (def.closed) {\n return {\n success: false,\n error: new ValidationError(\n `${path} $type must be one of ${def.refs.join(', ')}`,\n ),\n }\n }\n return { success: true, value }\n } else {\n concreteDefs = toConcreteTypes(lexicons, {\n type: 'ref',\n ref: value.$type,\n })\n }\n } else {\n concreteDefs = toConcreteTypes(lexicons, def)\n }\n\n for (const concreteDef of concreteDefs) {\n const result = mustBeObj\n ? ComplexValidators.object(lexicons, path, concreteDef, value)\n : ComplexValidators.validate(lexicons, path, concreteDef, value)\n if (result.success) {\n return result\n }\n error ??= result.error\n }\n if (concreteDefs.length > 1) {\n return {\n success: false,\n error: new ValidationError(\n `${path} did not match any of the expected definitions`,\n ),\n }\n }\n return { success: false, error }\n}\n\nexport function assertValidOneOf(\n lexicons: Lexicons,\n path: string,\n def: LexRefVariant | LexUserType,\n value: unknown,\n mustBeObj = false,\n) {\n const res = validateOneOf(lexicons, path, def, value, mustBeObj)\n if (!res.success) throw res.error\n return res.value\n}\n\nexport function toConcreteTypes(\n lexicons: Lexicons,\n def: LexRefVariant | LexUserType,\n): LexUserType[] {\n if (def.type === 'ref') {\n return [lexicons.getDefOrThrow(def.ref)]\n } else if (def.type === 'union') {\n return def.refs.map((ref) => lexicons.getDefOrThrow(ref)).flat()\n } else {\n return [def]\n }\n}\n", "import { Lexicons } from '../lexicons'\nimport { LexXrpcParameters, ValidationResult, ValidationError } from '../types'\n\nimport * as PrimitiveValidators from './primitives'\nimport { array } from './complex'\n\nexport function params(\n lexicons: Lexicons,\n path: string,\n def: LexXrpcParameters,\n val: unknown,\n): ValidationResult {\n // type\n const value = val && typeof val === 'object' ? val : {}\n\n const requiredProps = new Set(def.required ?? [])\n\n // properties\n let resultValue = value\n if (typeof def.properties === 'object') {\n for (const key in def.properties) {\n const propDef = def.properties[key]\n const validated =\n propDef.type === 'array'\n ? array(lexicons, key, propDef, value[key])\n : PrimitiveValidators.validate(lexicons, key, propDef, value[key])\n const propValue = validated.success ? validated.value : value[key]\n const propIsUndefined = typeof propValue === 'undefined'\n // Return error for bad validation, giving required rule precedence\n if (propIsUndefined && requiredProps.has(key)) {\n return {\n success: false,\n error: new ValidationError(`${path} must have the property \"${key}\"`),\n }\n } else if (!propIsUndefined && !validated.success) {\n return validated\n }\n // Adjust value based on e.g. applied defaults, cloning shallowly if there was a changed value\n if (propValue !== value[key]) {\n if (resultValue === value) {\n // Lazy shallow clone\n resultValue = { ...value }\n }\n resultValue[key] = propValue\n }\n }\n }\n\n return { success: true, value: resultValue }\n}\n", "import { Lexicons } from './lexicons'\nimport {\n LexRecord,\n LexXrpcProcedure,\n LexXrpcQuery,\n LexXrpcSubscription,\n} from './types'\nimport { assertValidOneOf } from './util'\n\nimport * as ComplexValidators from './validators/complex'\nimport * as XrpcValidators from './validators/xrpc'\n\nexport function assertValidRecord(\n lexicons: Lexicons,\n def: LexRecord,\n value: unknown,\n) {\n const res = ComplexValidators.object(lexicons, 'Record', def.record, value)\n if (!res.success) throw res.error\n return res.value\n}\n\nexport function assertValidXrpcParams(\n lexicons: Lexicons,\n def: LexXrpcProcedure | LexXrpcQuery | LexXrpcSubscription,\n value: unknown,\n) {\n if (def.parameters) {\n const res = XrpcValidators.params(lexicons, 'Params', def.parameters, value)\n if (!res.success) throw res.error\n return res.value\n }\n}\n\nexport function assertValidXrpcInput(\n lexicons: Lexicons,\n def: LexXrpcProcedure,\n value: unknown,\n) {\n if (def.input?.schema) {\n // loop: all input schema definitions\n return assertValidOneOf(lexicons, 'Input', def.input.schema, value, true)\n }\n}\n\nexport function assertValidXrpcOutput(\n lexicons: Lexicons,\n def: LexXrpcProcedure | LexXrpcQuery,\n value: unknown,\n) {\n if (def.output?.schema) {\n // loop: all output schema definitions\n return assertValidOneOf(lexicons, 'Output', def.output.schema, value, true)\n }\n}\n\nexport function assertValidXrpcMessage(\n lexicons: Lexicons,\n def: LexXrpcSubscription,\n value: unknown,\n) {\n if (def.message?.schema) {\n // loop: all output schema definitions\n return assertValidOneOf(\n lexicons,\n 'Message',\n def.message.schema,\n value,\n true,\n )\n }\n}\n", "import { ZodError } from 'zod'\nimport {\n LexiconDoc,\n lexiconDoc,\n LexRecord,\n LexXrpcProcedure,\n LexXrpcQuery,\n LexUserType,\n LexiconDocMalformedError,\n LexiconDefNotFoundError,\n InvalidLexiconError,\n ValidationResult,\n ValidationError,\n isObj,\n hasProp,\n LexXrpcSubscription,\n} from './types'\nimport {\n assertValidRecord,\n assertValidXrpcParams,\n assertValidXrpcInput,\n assertValidXrpcOutput,\n assertValidXrpcMessage,\n} from './validation'\nimport { toLexUri } from './util'\nimport * as ComplexValidators from './validators/complex'\n\n/**\n * A collection of compiled lexicons.\n */\nexport class Lexicons {\n docs: Map<string, LexiconDoc> = new Map()\n defs: Map<string, LexUserType> = new Map()\n\n constructor(docs?: unknown[]) {\n if (docs?.length) {\n for (const doc of docs) {\n this.add(doc)\n }\n }\n }\n\n /**\n * Add a lexicon doc.\n */\n add(doc: unknown): void {\n try {\n lexiconDoc.parse(doc)\n } catch (e) {\n if (e instanceof ZodError) {\n throw new LexiconDocMalformedError(\n `Failed to parse schema definition ${\n (doc as Record<string, string>).id\n }`,\n doc,\n e.issues,\n )\n } else {\n throw e\n }\n }\n const validatedDoc = doc as LexiconDoc\n const uri = toLexUri(validatedDoc.id)\n if (this.docs.has(uri)) {\n throw new Error(`${uri} has already been registered`)\n }\n\n // WARNING\n // mutates the object\n // -prf\n resolveRefUris(validatedDoc, uri)\n\n this.docs.set(uri, validatedDoc)\n for (const [defUri, def] of iterDefs(validatedDoc)) {\n this.defs.set(defUri, def)\n }\n }\n\n /**\n * Remove a lexicon doc.\n */\n remove(uri: string) {\n uri = toLexUri(uri)\n const doc = this.docs.get(uri)\n if (!doc) {\n throw new Error(`Unable to remove \"${uri}\": does not exist`)\n }\n for (const [defUri, _def] of iterDefs(doc)) {\n this.defs.delete(defUri)\n }\n this.docs.delete(uri)\n }\n\n /**\n * Get a lexicon doc.\n */\n get(uri: string): LexiconDoc | undefined {\n uri = toLexUri(uri)\n return this.docs.get(uri)\n }\n\n /**\n * Get a definition.\n */\n getDef(uri: string): LexUserType | undefined {\n uri = toLexUri(uri)\n return this.defs.get(uri)\n }\n\n /**\n * Get a def, throw if not found. Throws on not found.\n */\n getDefOrThrow(uri: string, types?: string[]): LexUserType {\n const def = this.getDef(uri)\n if (!def) {\n throw new LexiconDefNotFoundError(`Lexicon not found: ${uri}`)\n }\n if (types && !types.includes(def.type)) {\n throw new InvalidLexiconError(\n `Not a ${types.join(' or ')} lexicon: ${uri}`,\n )\n }\n return def\n }\n\n /**\n * Validate a record or object.\n */\n validate(lexUri: string, value: unknown): ValidationResult {\n lexUri = toLexUri(lexUri)\n const def = this.getDefOrThrow(lexUri, ['record', 'object'])\n if (!isObj(value)) {\n throw new ValidationError(`Value must be an object`)\n }\n if (def.type === 'record') {\n return ComplexValidators.object(this, 'Record', def.record, value)\n } else if (def.type === 'object') {\n return ComplexValidators.object(this, 'Object', def, value)\n } else {\n // shouldnt happen\n throw new InvalidLexiconError('Definition must be a record or object')\n }\n }\n\n /**\n * Validate a record and throw on any error.\n */\n assertValidRecord(lexUri: string, value: unknown) {\n lexUri = toLexUri(lexUri)\n const def = this.getDefOrThrow(lexUri, ['record'])\n if (!isObj(value)) {\n throw new ValidationError(`Record must be an object`)\n }\n if (!hasProp(value, '$type') || typeof value.$type !== 'string') {\n throw new ValidationError(`Record/$type must be a string`)\n }\n const $type = (value as Record<string, string>).$type || ''\n if (toLexUri($type) !== lexUri) {\n throw new ValidationError(\n `Invalid $type: must be ${lexUri}, got ${$type}`,\n )\n }\n return assertValidRecord(this, def as LexRecord, value)\n }\n\n /**\n * Validate xrpc query params and throw on any error.\n */\n assertValidXrpcParams(lexUri: string, value: unknown) {\n lexUri = toLexUri(lexUri)\n const def = this.getDefOrThrow(lexUri, [\n 'query',\n 'procedure',\n 'subscription',\n ])\n return assertValidXrpcParams(\n this,\n def as LexXrpcProcedure | LexXrpcQuery | LexXrpcSubscription,\n value,\n )\n }\n\n /**\n * Validate xrpc input body and throw on any error.\n */\n assertValidXrpcInput(lexUri: string, value: unknown) {\n lexUri = toLexUri(lexUri)\n const def = this.getDefOrThrow(lexUri, ['procedure'])\n return assertValidXrpcInput(this, def as LexXrpcProcedure, value)\n }\n\n /**\n * Validate xrpc output body and throw on any error.\n */\n assertValidXrpcOutput(lexUri: string, value: unknown) {\n lexUri = toLexUri(lexUri)\n const def = this.getDefOrThrow(lexUri, ['query', 'procedure'])\n return assertValidXrpcOutput(\n this,\n def as LexXrpcProcedure | LexXrpcQuery,\n value,\n )\n }\n\n /**\n * Validate xrpc subscription message and throw on any error.\n */\n assertValidXrpcMessage<T = unknown>(lexUri: string, value: unknown): T {\n lexUri = toLexUri(lexUri)\n const def = this.getDefOrThrow(lexUri, ['subscription'])\n return assertValidXrpcMessage(this, def as LexXrpcSubscription, value) as T\n }\n\n /**\n * Resolve a lex uri given a ref\n */\n resolveLexUri(lexUri: string, ref: string) {\n lexUri = toLexUri(lexUri)\n return toLexUri(ref, lexUri)\n }\n}\n\nfunction* iterDefs(doc: LexiconDoc): Generator<[string, LexUserType]> {\n for (const defId in doc.defs) {\n yield [`lex:${doc.id}#${defId}`, doc.defs[defId]]\n if (defId === 'main') {\n yield [`lex:${doc.id}`, doc.defs[defId]]\n }\n }\n}\n\n// WARNING\n// this method mutates objects\n// -prf\nfunction resolveRefUris(obj: any, baseUri: string): any {\n for (const k in obj) {\n if (obj.type === 'ref') {\n obj.ref = toLexUri(obj.ref, baseUri)\n } else if (obj.type === 'union') {\n obj.refs = obj.refs.map((ref) => toLexUri(ref, baseUri))\n } else if (Array.isArray(obj[k])) {\n obj[k] = obj[k].map((item: any) => {\n if (typeof item === 'string') {\n return item.startsWith('#') ? toLexUri(item, baseUri) : item\n } else if (item && typeof item === 'object') {\n return resolveRefUris(item, baseUri)\n }\n return item\n })\n } else if (obj[k] && typeof obj[k] === 'object') {\n obj[k] = resolveRefUris(obj[k], baseUri)\n }\n }\n return obj\n}\n", "import {\n check,\n IpldValue,\n ipldToJson,\n jsonToIpld,\n JsonValue,\n} from '@atproto/common-web'\nimport { CID } from 'multiformats/cid'\nimport { BlobRef, jsonBlobRef } from './blob-refs'\n\nexport type LexValue =\n | IpldValue\n | BlobRef\n | Array<LexValue>\n | { [key: string]: LexValue }\n\nexport type RepoRecord = Record<string, LexValue>\n\n// @NOTE avoiding use of check.is() here only because it makes\n// these implementations slow, and they often live in hot paths.\n\nexport const lexToIpld = (val: LexValue): IpldValue => {\n // walk arrays\n if (Array.isArray(val)) {\n return val.map((item) => lexToIpld(item))\n }\n // objects\n if (val && typeof val === 'object') {\n // convert blobs, leaving the original encoding so that we don't change CIDs on re-encode\n if (val instanceof BlobRef) {\n return val.original\n }\n // retain cids & bytes\n if (CID.asCID(val) || val instanceof Uint8Array) {\n return val\n }\n // walk plain objects\n const toReturn = {}\n for (const key of Object.keys(val)) {\n toReturn[key] = lexToIpld(val[key])\n }\n return toReturn\n }\n // pass through\n return val\n}\n\nexport const ipldToLex = (val: IpldValue): LexValue => {\n // map arrays\n if (Array.isArray(val)) {\n return val.map((item) => ipldToLex(item))\n }\n // objects\n if (val && typeof val === 'object') {\n // convert blobs, using hints to avoid expensive is() check\n if (\n (val['$type'] === 'blob' ||\n (typeof val['cid'] === 'string' &&\n typeof val['mimeType'] === 'string')) &&\n check.is(val, jsonBlobRef)\n ) {\n return BlobRef.fromJsonRef(val)\n }\n // retain cids, bytes\n if (CID.asCID(val) || val instanceof Uint8Array) {\n return val\n }\n // map plain objects\n const toReturn = {}\n for (const key of Object.keys(val)) {\n toReturn[key] = ipldToLex(val[key])\n }\n return toReturn\n }\n // pass through\n return val\n}\n\nexport const lexToJson = (val: LexValue): JsonValue => {\n return ipldToJson(lexToIpld(val))\n}\n\nexport const stringifyLex = (val: LexValue): string => {\n return JSON.stringify(lexToJson(val))\n}\n\nexport const jsonToLex = (val: JsonValue): LexValue => {\n return ipldToLex(jsonToIpld(val))\n}\n\nexport const jsonStringToLex = (val: string): LexValue => {\n return jsonToLex(JSON.parse(val))\n}\n", "import { z } from 'zod'\nimport { ValidationError } from '@atproto/lexicon'\n\nexport type QueryParams = Record<string, any>\nexport type Headers = Record<string, string>\n\nexport interface CallOptions {\n encoding?: string\n headers?: Headers\n}\n\nexport interface FetchHandlerResponse {\n status: number\n headers: Headers\n body: ArrayBuffer | undefined\n}\n\nexport type FetchHandler = (\n httpUri: string,\n httpMethod: string,\n httpHeaders: Headers,\n httpReqBody: any,\n) => Promise<FetchHandlerResponse>\n\nexport const errorResponseBody = z.object({\n error: z.string().optional(),\n message: z.string().optional(),\n})\nexport type ErrorResponseBody = z.infer<typeof errorResponseBody>\n\nexport enum ResponseType {\n Unknown = 1,\n InvalidResponse = 2,\n Success = 200,\n InvalidRequest = 400,\n AuthRequired = 401,\n Forbidden = 403,\n XRPCNotSupported = 404,\n PayloadTooLarge = 413,\n RateLimitExceeded = 429,\n InternalServerError = 500,\n MethodNotImplemented = 501,\n UpstreamFailure = 502,\n NotEnoughResouces = 503,\n UpstreamTimeout = 504,\n}\n\nexport const ResponseTypeNames = {\n [ResponseType.InvalidResponse]: 'InvalidResponse',\n [ResponseType.Success]: 'Success',\n [ResponseType.InvalidRequest]: 'InvalidRequest',\n [ResponseType.AuthRequired]: 'AuthenticationRequired',\n [ResponseType.Forbidden]: 'Forbidden',\n [ResponseType.XRPCNotSupported]: 'XRPCNotSupported',\n [ResponseType.PayloadTooLarge]: 'PayloadTooLarge',\n [ResponseType.RateLimitExceeded]: 'RateLimitExceeded',\n [ResponseType.InternalServerError]: 'InternalServerError',\n [ResponseType.MethodNotImplemented]: 'MethodNotImplemented',\n [ResponseType.UpstreamFailure]: 'UpstreamFailure',\n [ResponseType.NotEnoughResouces]: 'NotEnoughResouces',\n [ResponseType.UpstreamTimeout]: 'UpstreamTimeout',\n}\n\nexport const ResponseTypeStrings = {\n [ResponseType.InvalidResponse]: 'Invalid Response',\n [ResponseType.Success]: 'Success',\n [ResponseType.InvalidRequest]: 'Invalid Request',\n [ResponseType.AuthRequired]: 'Authentication Required',\n [ResponseType.Forbidden]: 'Forbidden',\n [ResponseType.XRPCNotSupported]: 'XRPC Not Supported',\n [ResponseType.PayloadTooLarge]: 'Payload Too Large',\n [ResponseType.RateLimitExceeded]: 'Rate Limit Exceeded',\n [ResponseType.InternalServerError]: 'Internal Server Error',\n [ResponseType.MethodNotImplemented]: 'Method Not Implemented',\n [ResponseType.UpstreamFailure]: 'Upstream Failure',\n [ResponseType.NotEnoughResouces]: 'Not Enough Resouces',\n [ResponseType.UpstreamTimeout]: 'Upstream Timeout',\n}\n\nexport class XRPCResponse {\n success = true\n\n constructor(public data: any, public headers: Headers) {}\n}\n\nexport class XRPCError extends Error {\n success = false\n\n constructor(\n public status: ResponseType,\n public error?: string,\n message?: string,\n ) {\n super(message || error || ResponseTypeStrings[status])\n if (!this.error) {\n this.error = ResponseTypeNames[status]\n }\n }\n}\n\nexport class XRPCInvalidResponseError extends XRPCError {\n constructor(\n public lexiconNsid: string,\n public validationError: ValidationError,\n public responseBody: unknown,\n ) {\n super(\n ResponseType.InvalidResponse,\n ResponseTypeStrings[ResponseType.InvalidResponse],\n `The server gave an invalid response and may be out of date.`,\n )\n }\n}\n", "import {\n jsonStringToLex,\n LexXrpcProcedure,\n LexXrpcQuery,\n stringifyLex,\n} from '@atproto/lexicon'\nimport {\n CallOptions,\n Headers,\n QueryParams,\n ResponseType,\n XRPCError,\n} from './types'\n\nexport function getMethodSchemaHTTPMethod(\n schema: LexXrpcProcedure | LexXrpcQuery,\n) {\n if (schema.type === 'procedure') {\n return 'post'\n }\n return 'get'\n}\n\nexport function constructMethodCallUri(\n nsid: string,\n schema: LexXrpcProcedure | LexXrpcQuery,\n serviceUri: URL,\n params?: QueryParams,\n): string {\n const uri = new URL(serviceUri)\n uri.pathname = `/xrpc/${nsid}`\n\n // given parameters\n if (params) {\n for (const [key, value] of Object.entries(params)) {\n const paramSchema = schema.parameters?.properties?.[key]\n if (!paramSchema) {\n throw new Error(`Invalid query parameter: ${key}`)\n }\n if (value !== undefined) {\n if (paramSchema.type === 'array') {\n const vals: typeof value[] = []\n vals.concat(value).forEach((val) => {\n uri.searchParams.append(\n key,\n encodeQueryParam(paramSchema.items.type, val),\n )\n })\n } else {\n uri.searchParams.set(key, encodeQueryParam(paramSchema.type, value))\n }\n }\n }\n }\n\n return uri.toString()\n}\n\nexport function encodeQueryParam(\n type:\n | 'string'\n | 'float'\n | 'integer'\n | 'boolean'\n | 'datetime'\n | 'array'\n | 'unknown',\n value: any,\n): string {\n if (type === 'string' || type === 'unknown') {\n return String(value)\n }\n if (type === 'float') {\n return String(Number(value))\n } else if (type === 'integer') {\n return String(Number(value) | 0)\n } else if (type === 'boolean') {\n return value ? 'true' : 'false'\n } else if (type === 'datetime') {\n if (value instanceof Date) {\n return value.toISOString()\n }\n return String(value)\n }\n throw new Error(`Unsupported query param type: ${type}`)\n}\n\nexport function constructMethodCallHeaders(\n schema: LexXrpcProcedure | LexXrpcQuery,\n data?: any,\n opts?: CallOptions,\n): Headers {\n const headers: Headers = opts?.headers || {}\n if (schema.type === 'procedure') {\n if (opts?.encoding) {\n headers['Content-Type'] = opts.encoding\n }\n if (data && typeof data === 'object') {\n if (!headers['Content-Type']) {\n headers['Content-Type'] = 'application/json'\n }\n }\n }\n return headers\n}\n\nexport function encodeMethodCallBody(\n headers: Headers,\n data?: any,\n): ArrayBuffer | undefined {\n if (!headers['Content-Type'] || typeof data === 'undefined') {\n return undefined\n }\n if (data instanceof ArrayBuffer) {\n return data\n }\n if (headers['Content-Type'].startsWith('text/')) {\n return new TextEncoder().encode(data.toString())\n }\n if (headers['Content-Type'].startsWith('application/json')) {\n return new TextEncoder().encode(stringifyLex(data))\n }\n return data\n}\n\nexport function httpResponseCodeToEnum(status: number): ResponseType {\n let resCode: ResponseType\n if (status in ResponseType) {\n resCode = status\n } else if (status >= 100 && status < 200) {\n resCode = ResponseType.XRPCNotSupported\n } else if (status >= 200 && status < 300) {\n resCode = ResponseType.Success\n } else if (status >= 300 && status < 400) {\n resCode = ResponseType.XRPCNotSupported\n } else if (status >= 400 && status < 500) {\n resCode = ResponseType.InvalidRequest\n } else {\n resCode = ResponseType.InternalServerError\n }\n return resCode\n}\n\nexport function httpResponseBodyParse(\n mimeType: string | null,\n data: ArrayBuffer | undefined,\n): any {\n if (mimeType) {\n if (mimeType.includes('application/json') && data?.byteLength) {\n try {\n const str = new TextDecoder().decode(data)\n return jsonStringToLex(str)\n } catch (e) {\n throw new XRPCError(\n ResponseType.InvalidResponse,\n `Failed to parse response body: ${String(e)}`,\n )\n }\n }\n if (mimeType.startsWith('text/') && data?.byteLength) {\n try {\n return new TextDecoder().decode(data)\n } catch (e) {\n throw new XRPCError(\n ResponseType.InvalidResponse,\n `Failed to parse response body: ${String(e)}`,\n )\n }\n }\n }\n if (data instanceof ArrayBuffer) {\n return new Uint8Array(data)\n }\n return data\n}\n", "import { Lexicons, ValidationError } from '@atproto/lexicon'\nimport {\n getMethodSchemaHTTPMethod,\n constructMethodCallUri,\n constructMethodCallHeaders,\n encodeMethodCallBody,\n httpResponseCodeToEnum,\n httpResponseBodyParse,\n} from './util'\nimport {\n FetchHandler,\n FetchHandlerResponse,\n Headers,\n CallOptions,\n QueryParams,\n ResponseType,\n errorResponseBody,\n ErrorResponseBody,\n XRPCResponse,\n XRPCError,\n XRPCInvalidResponseError,\n} from './types'\n\nexport class Client {\n fetch: FetchHandler = defaultFetchHandler\n lex = new Lexicons()\n\n // method calls\n //\n\n async call(\n serviceUri: string | URL,\n methodNsid: string,\n params?: QueryParams,\n data?: unknown,\n opts?: CallOptions,\n ) {\n return this.service(serviceUri).call(methodNsid, params, data, opts)\n }\n\n service(serviceUri: string | URL) {\n return new ServiceClient(this, serviceUri)\n }\n\n // schemas\n // =\n\n addLexicon(doc: unknown) {\n this.lex.add(doc)\n }\n\n addLexicons(docs: unknown[]) {\n for (const doc of docs) {\n this.addLexicon(doc)\n }\n }\n\n removeLexicon(uri: string) {\n this.lex.remove(uri)\n }\n}\n\nexport class ServiceClient {\n baseClient: Client\n uri: URL\n headers: Record<string, string> = {}\n\n constructor(baseClient: Client, serviceUri: string | URL) {\n this.baseClient = baseClient\n this.uri = typeof serviceUri === 'string' ? new URL(serviceUri) : serviceUri\n }\n\n setHeader(key: string, value: string): void {\n this.headers[key] = value\n }\n\n unsetHeader(key: string): void {\n delete this.headers[key]\n }\n\n async call(\n methodNsid: string,\n params?: QueryParams,\n data?: unknown,\n opts?: CallOptions,\n ) {\n const def = this.baseClient.lex.getDefOrThrow(methodNsid)\n if (!def || (def.type !== 'query' && def.type !== 'procedure')) {\n throw new Error(\n `Invalid lexicon: ${methodNsid}. Must be a query or procedure.`,\n )\n }\n\n const httpMethod = getMethodSchemaHTTPMethod(def)\n const httpUri = constructMethodCallUri(methodNsid, def, this.uri, params)\n const httpHeaders = constructMethodCallHeaders(def, data, {\n headers: {\n ...this.headers,\n ...opts?.headers,\n },\n encoding: opts?.encoding,\n })\n\n const res = await this.baseClient.fetch(\n httpUri,\n httpMethod,\n httpHeaders,\n data,\n )\n\n const resCode = httpResponseCodeToEnum(res.status)\n if (resCode === ResponseType.Success) {\n try {\n this.baseClient.lex.assertValidXrpcOutput(methodNsid, res.body)\n } catch (e: any) {\n if (e instanceof ValidationError) {\n throw new XRPCInvalidResponseError(methodNsid, e, res.body)\n } else {\n throw e\n }\n }\n return new XRPCResponse(res.body, res.headers)\n } else {\n if (res.body && isErrorResponseBody(res.body)) {\n throw new XRPCError(resCode, res.body.error, res.body.message)\n } else {\n throw new XRPCError(resCode)\n }\n }\n }\n}\n\nexport async function defaultFetchHandler(\n httpUri: string,\n httpMethod: string,\n httpHeaders: Headers,\n httpReqBody: unknown,\n): Promise<FetchHandlerResponse> {\n try {\n // The duplex field is now required for streaming bodies, but not yet reflected\n // anywhere in docs or types. See whatwg/fetch#1438, nodejs/node#46221.\n const reqInit: RequestInit & { duplex: string } = {\n method: httpMethod,\n headers: httpHeaders,\n body: encodeMethodCallBody(httpHeaders, httpReqBody),\n duplex: 'half',\n }\n const res = await fetch(httpUri, reqInit)\n const resBody = await res.arrayBuffer()\n return {\n status: res.status,\n headers: Object.fromEntries(res.headers.entries()),\n body: httpResponseBodyParse(res.headers.get('content-type'), resBody),\n }\n } catch (e) {\n throw new XRPCError(ResponseType.Unknown, String(e))\n }\n}\n\nfunction isErrorResponseBody(v: unknown): v is ErrorResponseBody {\n return errorResponseBody.safeParse(v).success\n}\n", "export * from './types'\nexport * from './client'\n\nimport { Client } from './client'\nconst defaultInst = new Client()\nexport default defaultInst\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { LexiconDoc, Lexicons } from '@atproto/lexicon'\n\nexport const schemaDict = {\n ComAtprotoAdminDefs: {\n lexicon: 1,\n id: 'com.atproto.admin.defs',\n defs: {\n actionView: {\n type: 'object',\n required: [\n 'id',\n 'action',\n 'subject',\n 'subjectBlobCids',\n 'reason',\n 'createdBy',\n 'createdAt',\n 'resolvedReportIds',\n ],\n properties: {\n id: {\n type: 'integer',\n },\n action: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.defs#actionType',\n },\n subject: {\n type: 'union',\n refs: [\n 'lex:com.atproto.admin.defs#repoRef',\n 'lex:com.atproto.repo.strongRef',\n ],\n },\n subjectBlobCids: {\n type: 'array',\n items: {\n type: 'string',\n },\n },\n createLabelVals: {\n type: 'array',\n items: {\n type: 'string',\n },\n },\n negateLabelVals: {\n type: 'array',\n items: {\n type: 'string',\n },\n },\n reason: {\n type: 'string',\n },\n createdBy: {\n type: 'string',\n format: 'did',\n },\n createdAt: {\n type: 'string',\n format: 'datetime',\n },\n reversal: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.defs#actionReversal',\n },\n resolvedReportIds: {\n type: 'array',\n items: {\n type: 'integer',\n },\n },\n },\n },\n actionViewDetail: {\n type: 'object',\n required: [\n 'id',\n 'action',\n 'subject',\n 'subjectBlobs',\n 'reason',\n 'createdBy',\n 'createdAt',\n 'resolvedReports',\n ],\n properties: {\n id: {\n type: 'integer',\n },\n action: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.defs#actionType',\n },\n subject: {\n type: 'union',\n refs: [\n 'lex:com.atproto.admin.defs#repoView',\n 'lex:com.atproto.admin.defs#recordView',\n ],\n },\n subjectBlobs: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.defs#blobView',\n },\n },\n createLabelVals: {\n type: 'array',\n items: {\n type: 'string',\n },\n },\n negateLabelVals: {\n type: 'array',\n items: {\n type: 'string',\n },\n },\n reason: {\n type: 'string',\n },\n createdBy: {\n type: 'string',\n format: 'did',\n },\n createdAt: {\n type: 'string',\n format: 'datetime',\n },\n reversal: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.defs#actionReversal',\n },\n resolvedReports: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.defs#reportView',\n },\n },\n },\n },\n actionViewCurrent: {\n type: 'object',\n required: ['id', 'action'],\n properties: {\n id: {\n type: 'integer',\n },\n action: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.defs#actionType',\n },\n },\n },\n actionReversal: {\n type: 'object',\n required: ['reason', 'createdBy', 'createdAt'],\n properties: {\n reason: {\n type: 'string',\n },\n createdBy: {\n type: 'string',\n format: 'did',\n },\n createdAt: {\n type: 'string',\n format: 'datetime',\n },\n },\n },\n actionType: {\n type: 'string',\n knownValues: [\n 'lex:com.atproto.admin.defs#takedown',\n 'lex:com.atproto.admin.defs#flag',\n 'lex:com.atproto.admin.defs#acknowledge',\n 'lex:com.atproto.admin.defs#escalate',\n ],\n },\n takedown: {\n type: 'token',\n description:\n 'Moderation action type: Takedown. Indicates that content should not be served by the PDS.',\n },\n flag: {\n type: 'token',\n description:\n 'Moderation action type: Flag. Indicates that the content was reviewed and considered to violate PDS rules, but may still be served.',\n },\n acknowledge: {\n type: 'token',\n description:\n 'Moderation action type: Acknowledge. Indicates that the content was reviewed and not considered to violate PDS rules.',\n },\n escalate: {\n type: 'token',\n description:\n 'Moderation action type: Escalate. Indicates that the content has been flagged for additional review.',\n },\n reportView: {\n type: 'object',\n required: [\n 'id',\n 'reasonType',\n 'subject',\n 'reportedBy',\n 'createdAt',\n 'resolvedByActionIds',\n ],\n properties: {\n id: {\n type: 'integer',\n },\n reasonType: {\n type: 'ref',\n ref: 'lex:com.atproto.moderation.defs#reasonType',\n },\n reason: {\n type: 'string',\n },\n subject: {\n type: 'union',\n refs: [\n 'lex:com.atproto.admin.defs#repoRef',\n 'lex:com.atproto.repo.strongRef',\n ],\n },\n reportedBy: {\n type: 'string',\n format: 'did',\n },\n createdAt: {\n type: 'string',\n format: 'datetime',\n },\n resolvedByActionIds: {\n type: 'array',\n items: {\n type: 'integer',\n },\n },\n },\n },\n reportViewDetail: {\n type: 'object',\n required: [\n 'id',\n 'reasonType',\n 'subject',\n 'reportedBy',\n 'createdAt',\n 'resolvedByActions',\n ],\n properties: {\n id: {\n type: 'integer',\n },\n reasonType: {\n type: 'ref',\n ref: 'lex:com.atproto.moderation.defs#reasonType',\n },\n reason: {\n type: 'string',\n },\n subject: {\n type: 'union',\n refs: [\n 'lex:com.atproto.admin.defs#repoView',\n 'lex:com.atproto.admin.defs#recordView',\n ],\n },\n reportedBy: {\n type: 'string',\n format: 'did',\n },\n createdAt: {\n type: 'string',\n format: 'datetime',\n },\n resolvedByActions: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.defs#actionView',\n },\n },\n },\n },\n repoView: {\n type: 'object',\n required: [\n 'did',\n 'handle',\n 'relatedRecords',\n 'indexedAt',\n 'moderation',\n ],\n properties: {\n did: {\n type: 'string',\n format: 'did',\n },\n handle: {\n type: 'string',\n format: 'handle',\n },\n email: {\n type: 'string',\n },\n relatedRecords: {\n type: 'array',\n items: {\n type: 'unknown',\n },\n },\n indexedAt: {\n type: 'string',\n format: 'datetime',\n },\n moderation: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.defs#moderation',\n },\n invitedBy: {\n type: 'ref',\n ref: 'lex:com.atproto.server.defs#inviteCode',\n },\n invitesDisabled: {\n type: 'boolean',\n },\n },\n },\n repoViewDetail: {\n type: 'object',\n required: [\n 'did',\n 'handle',\n 'relatedRecords',\n 'indexedAt',\n 'moderation',\n ],\n properties: {\n did: {\n type: 'string',\n format: 'did',\n },\n handle: {\n type: 'string',\n format: 'handle',\n },\n email: {\n type: 'string',\n },\n relatedRecords: {\n type: 'array',\n items: {\n type: 'unknown',\n },\n },\n indexedAt: {\n type: 'string',\n format: 'datetime',\n },\n moderation: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.defs#moderationDetail',\n },\n labels: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:com.atproto.label.defs#label',\n },\n },\n invitedBy: {\n type: 'ref',\n ref: 'lex:com.atproto.server.defs#inviteCode',\n },\n invites: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:com.atproto.server.defs#inviteCode',\n },\n },\n invitesDisabled: {\n type: 'boolean',\n },\n },\n },\n repoRef: {\n type: 'object',\n required: ['did'],\n properties: {\n did: {\n type: 'string',\n format: 'did',\n },\n },\n },\n recordView: {\n type: 'object',\n required: [\n 'uri',\n 'cid',\n 'value',\n 'blobCids',\n 'indexedAt',\n 'moderation',\n 'repo',\n ],\n properties: {\n uri: {\n type: 'string',\n format: 'at-uri',\n },\n cid: {\n type: 'string',\n format: 'cid',\n },\n value: {\n type: 'unknown',\n },\n blobCids: {\n type: 'array',\n items: {\n type: 'string',\n format: 'cid',\n },\n },\n indexedAt: {\n type: 'string',\n format: 'datetime',\n },\n moderation: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.defs#moderation',\n },\n repo: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.defs#repoView',\n },\n },\n },\n recordViewDetail: {\n type: 'object',\n required: [\n 'uri',\n 'cid',\n 'value',\n 'blobs',\n 'indexedAt',\n 'moderation',\n 'repo',\n ],\n properties: {\n uri: {\n type: 'string',\n format: 'at-uri',\n },\n cid: {\n type: 'string',\n format: 'cid',\n },\n value: {\n type: 'unknown',\n },\n blobs: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.defs#blobView',\n },\n },\n labels: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:com.atproto.label.defs#label',\n },\n },\n indexedAt: {\n type: 'string',\n format: 'datetime',\n },\n moderation: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.defs#moderationDetail',\n },\n repo: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.defs#repoView',\n },\n },\n },\n moderation: {\n type: 'object',\n required: [],\n properties: {\n currentAction: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.defs#actionViewCurrent',\n },\n },\n },\n moderationDetail: {\n type: 'object',\n required: ['actions', 'reports'],\n properties: {\n currentAction: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.defs#actionViewCurrent',\n },\n actions: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.defs#actionView',\n },\n },\n reports: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.defs#reportView',\n },\n },\n },\n },\n blobView: {\n type: 'object',\n required: ['cid', 'mimeType', 'size', 'createdAt'],\n properties: {\n cid: {\n type: 'string',\n format: 'cid',\n },\n mimeType: {\n type: 'string',\n },\n size: {\n type: 'integer',\n },\n createdAt: {\n type: 'string',\n format: 'datetime',\n },\n details: {\n type: 'union',\n refs: [\n 'lex:com.atproto.admin.defs#imageDetails',\n 'lex:com.atproto.admin.defs#videoDetails',\n ],\n },\n moderation: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.defs#moderation',\n },\n },\n },\n imageDetails: {\n type: 'object',\n required: ['width', 'height'],\n properties: {\n width: {\n type: 'integer',\n },\n height: {\n type: 'integer',\n },\n },\n },\n videoDetails: {\n type: 'object',\n required: ['width', 'height', 'length'],\n properties: {\n width: {\n type: 'integer',\n },\n height: {\n type: 'integer',\n },\n length: {\n type: 'integer',\n },\n },\n },\n },\n },\n ComAtprotoAdminDisableAccountInvites: {\n lexicon: 1,\n id: 'com.atproto.admin.disableAccountInvites',\n defs: {\n main: {\n type: 'procedure',\n description:\n 'Disable an account from receiving new invite codes, but does not invalidate existing codes',\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['account'],\n properties: {\n account: {\n type: 'string',\n format: 'did',\n },\n },\n },\n },\n },\n },\n },\n ComAtprotoAdminDisableInviteCodes: {\n lexicon: 1,\n id: 'com.atproto.admin.disableInviteCodes',\n defs: {\n main: {\n type: 'procedure',\n description:\n 'Disable some set of codes and/or all codes associated with a set of users',\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n properties: {\n codes: {\n type: 'array',\n items: {\n type: 'string',\n },\n },\n accounts: {\n type: 'array',\n items: {\n type: 'string',\n },\n },\n },\n },\n },\n },\n },\n },\n ComAtprotoAdminEnableAccountInvites: {\n lexicon: 1,\n id: 'com.atproto.admin.enableAccountInvites',\n defs: {\n main: {\n type: 'procedure',\n description: 'Re-enable an accounts ability to receive invite codes',\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['account'],\n properties: {\n account: {\n type: 'string',\n format: 'did',\n },\n },\n },\n },\n },\n },\n },\n ComAtprotoAdminGetInviteCodes: {\n lexicon: 1,\n id: 'com.atproto.admin.getInviteCodes',\n defs: {\n main: {\n type: 'query',\n description: 'Admin view of invite codes',\n parameters: {\n type: 'params',\n properties: {\n sort: {\n type: 'string',\n knownValues: ['recent', 'usage'],\n default: 'recent',\n },\n limit: {\n type: 'integer',\n minimum: 1,\n maximum: 500,\n default: 100,\n },\n cursor: {\n type: 'string',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['codes'],\n properties: {\n cursor: {\n type: 'string',\n },\n codes: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:com.atproto.server.defs#inviteCode',\n },\n },\n },\n },\n },\n },\n },\n },\n ComAtprotoAdminGetModerationAction: {\n lexicon: 1,\n id: 'com.atproto.admin.getModerationAction',\n defs: {\n main: {\n type: 'query',\n description: 'View details about a moderation action.',\n parameters: {\n type: 'params',\n required: ['id'],\n properties: {\n id: {\n type: 'integer',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.defs#actionViewDetail',\n },\n },\n },\n },\n },\n ComAtprotoAdminGetModerationActions: {\n lexicon: 1,\n id: 'com.atproto.admin.getModerationActions',\n defs: {\n main: {\n type: 'query',\n description: 'List moderation actions related to a subject.',\n parameters: {\n type: 'params',\n properties: {\n subject: {\n type: 'string',\n },\n limit: {\n type: 'integer',\n minimum: 1,\n maximum: 100,\n default: 50,\n },\n cursor: {\n type: 'string',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['actions'],\n properties: {\n cursor: {\n type: 'string',\n },\n actions: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.defs#actionView',\n },\n },\n },\n },\n },\n },\n },\n },\n ComAtprotoAdminGetModerationReport: {\n lexicon: 1,\n id: 'com.atproto.admin.getModerationReport',\n defs: {\n main: {\n type: 'query',\n description: 'View details about a moderation report.',\n parameters: {\n type: 'params',\n required: ['id'],\n properties: {\n id: {\n type: 'integer',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.defs#reportViewDetail',\n },\n },\n },\n },\n },\n ComAtprotoAdminGetModerationReports: {\n lexicon: 1,\n id: 'com.atproto.admin.getModerationReports',\n defs: {\n main: {\n type: 'query',\n description: 'List moderation reports related to a subject.',\n parameters: {\n type: 'params',\n properties: {\n subject: {\n type: 'string',\n },\n resolved: {\n type: 'boolean',\n },\n limit: {\n type: 'integer',\n minimum: 1,\n maximum: 100,\n default: 50,\n },\n cursor: {\n type: 'string',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['reports'],\n properties: {\n cursor: {\n type: 'string',\n },\n reports: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.defs#reportView',\n },\n },\n },\n },\n },\n },\n },\n },\n ComAtprotoAdminGetRecord: {\n lexicon: 1,\n id: 'com.atproto.admin.getRecord',\n defs: {\n main: {\n type: 'query',\n description: 'View details about a record.',\n parameters: {\n type: 'params',\n required: ['uri'],\n properties: {\n uri: {\n type: 'string',\n format: 'at-uri',\n },\n cid: {\n type: 'string',\n format: 'cid',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.defs#recordViewDetail',\n },\n },\n },\n },\n },\n ComAtprotoAdminGetRepo: {\n lexicon: 1,\n id: 'com.atproto.admin.getRepo',\n defs: {\n main: {\n type: 'query',\n description: 'View details about a repository.',\n parameters: {\n type: 'params',\n required: ['did'],\n properties: {\n did: {\n type: 'string',\n format: 'did',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.defs#repoViewDetail',\n },\n },\n },\n },\n },\n ComAtprotoAdminResolveModerationReports: {\n lexicon: 1,\n id: 'com.atproto.admin.resolveModerationReports',\n defs: {\n main: {\n type: 'procedure',\n description: 'Resolve moderation reports by an action.',\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['actionId', 'reportIds', 'createdBy'],\n properties: {\n actionId: {\n type: 'integer',\n },\n reportIds: {\n type: 'array',\n items: {\n type: 'integer',\n },\n },\n createdBy: {\n type: 'string',\n format: 'did',\n },\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.defs#actionView',\n },\n },\n },\n },\n },\n ComAtprotoAdminReverseModerationAction: {\n lexicon: 1,\n id: 'com.atproto.admin.reverseModerationAction',\n defs: {\n main: {\n type: 'procedure',\n description: 'Reverse a moderation action.',\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['id', 'reason', 'createdBy'],\n properties: {\n id: {\n type: 'integer',\n },\n reason: {\n type: 'string',\n },\n createdBy: {\n type: 'string',\n format: 'did',\n },\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.defs#actionView',\n },\n },\n },\n },\n },\n ComAtprotoAdminSearchRepos: {\n lexicon: 1,\n id: 'com.atproto.admin.searchRepos',\n defs: {\n main: {\n type: 'query',\n description: 'Find repositories based on a search term.',\n parameters: {\n type: 'params',\n properties: {\n term: {\n type: 'string',\n },\n invitedBy: {\n type: 'string',\n },\n limit: {\n type: 'integer',\n minimum: 1,\n maximum: 100,\n default: 50,\n },\n cursor: {\n type: 'string',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['repos'],\n properties: {\n cursor: {\n type: 'string',\n },\n repos: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.defs#repoView',\n },\n },\n },\n },\n },\n },\n },\n },\n ComAtprotoAdminTakeModerationAction: {\n lexicon: 1,\n id: 'com.atproto.admin.takeModerationAction',\n defs: {\n main: {\n type: 'procedure',\n description: 'Take a moderation action on a repo.',\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['action', 'subject', 'reason', 'createdBy'],\n properties: {\n action: {\n type: 'string',\n knownValues: [\n 'com.atproto.admin.defs#takedown',\n 'com.atproto.admin.defs#flag',\n 'com.atproto.admin.defs#acknowledge',\n ],\n },\n subject: {\n type: 'union',\n refs: [\n 'lex:com.atproto.admin.defs#repoRef',\n 'lex:com.atproto.repo.strongRef',\n ],\n },\n subjectBlobCids: {\n type: 'array',\n items: {\n type: 'string',\n format: 'cid',\n },\n },\n createLabelVals: {\n type: 'array',\n items: {\n type: 'string',\n },\n },\n negateLabelVals: {\n type: 'array',\n items: {\n type: 'string',\n },\n },\n reason: {\n type: 'string',\n },\n createdBy: {\n type: 'string',\n format: 'did',\n },\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.defs#actionView',\n },\n },\n errors: [\n {\n name: 'SubjectHasAction',\n },\n ],\n },\n },\n },\n ComAtprotoAdminUpdateAccountEmail: {\n lexicon: 1,\n id: 'com.atproto.admin.updateAccountEmail',\n defs: {\n main: {\n type: 'procedure',\n description: \"Administrative action to update an account's email\",\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['account', 'email'],\n properties: {\n account: {\n type: 'string',\n format: 'at-identifier',\n description: 'The handle or DID of the repo.',\n },\n email: {\n type: 'string',\n },\n },\n },\n },\n },\n },\n },\n ComAtprotoAdminUpdateAccountHandle: {\n lexicon: 1,\n id: 'com.atproto.admin.updateAccountHandle',\n defs: {\n main: {\n type: 'procedure',\n description: \"Administrative action to update an account's handle\",\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['did', 'handle'],\n properties: {\n did: {\n type: 'string',\n format: 'did',\n },\n handle: {\n type: 'string',\n format: 'handle',\n },\n },\n },\n },\n },\n },\n },\n ComAtprotoIdentityResolveHandle: {\n lexicon: 1,\n id: 'com.atproto.identity.resolveHandle',\n defs: {\n main: {\n type: 'query',\n description: 'Provides the DID of a repo.',\n parameters: {\n type: 'params',\n properties: {\n handle: {\n type: 'string',\n format: 'handle',\n description:\n \"The handle to resolve. If not supplied, will resolve the host's own handle.\",\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['did'],\n properties: {\n did: {\n type: 'string',\n format: 'did',\n },\n },\n },\n },\n },\n },\n },\n ComAtprotoIdentityUpdateHandle: {\n lexicon: 1,\n id: 'com.atproto.identity.updateHandle',\n defs: {\n main: {\n type: 'procedure',\n description: 'Updates the handle of the account',\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['handle'],\n properties: {\n handle: {\n type: 'string',\n format: 'handle',\n },\n },\n },\n },\n },\n },\n },\n ComAtprotoLabelDefs: {\n lexicon: 1,\n id: 'com.atproto.label.defs',\n defs: {\n label: {\n type: 'object',\n description: 'Metadata tag on an atproto resource (eg, repo or record)',\n required: ['src', 'uri', 'val', 'cts'],\n properties: {\n src: {\n type: 'string',\n format: 'did',\n description: 'DID of the actor who created this label',\n },\n uri: {\n type: 'string',\n format: 'uri',\n description:\n 'AT URI of the record, repository (account), or other resource which this label applies to',\n },\n cid: {\n type: 'string',\n format: 'cid',\n description:\n \"optionally, CID specifying the specific version of 'uri' resource this label applies to\",\n },\n val: {\n type: 'string',\n maxLength: 128,\n description:\n 'the short string name of the value or type of this label',\n },\n neg: {\n type: 'boolean',\n description:\n 'if true, this is a negation label, overwriting a previous label',\n },\n cts: {\n type: 'string',\n format: 'datetime',\n description: 'timestamp when this label was created',\n },\n },\n },\n },\n },\n ComAtprotoLabelQueryLabels: {\n lexicon: 1,\n id: 'com.atproto.label.queryLabels',\n defs: {\n main: {\n type: 'query',\n description: 'Find labels relevant to the provided URI patterns.',\n parameters: {\n type: 'params',\n required: ['uriPatterns'],\n properties: {\n uriPatterns: {\n type: 'array',\n items: {\n type: 'string',\n },\n description:\n \"List of AT URI patterns to match (boolean 'OR'). Each may be a prefix (ending with '*'; will match inclusive of the string leading to '*'), or a full URI\",\n },\n sources: {\n type: 'array',\n items: {\n type: 'string',\n format: 'did',\n },\n description: 'Optional list of label sources (DIDs) to filter on',\n },\n limit: {\n type: 'integer',\n minimum: 1,\n maximum: 250,\n default: 50,\n },\n cursor: {\n type: 'string',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['labels'],\n properties: {\n cursor: {\n type: 'string',\n },\n labels: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:com.atproto.label.defs#label',\n },\n },\n },\n },\n },\n },\n },\n },\n ComAtprotoLabelSubscribeLabels: {\n lexicon: 1,\n id: 'com.atproto.label.subscribeLabels',\n defs: {\n main: {\n type: 'subscription',\n description: 'Subscribe to label updates',\n parameters: {\n type: 'params',\n properties: {\n cursor: {\n type: 'integer',\n description: 'The last known event to backfill from.',\n },\n },\n },\n message: {\n schema: {\n type: 'union',\n refs: [\n 'lex:com.atproto.label.subscribeLabels#labels',\n 'lex:com.atproto.label.subscribeLabels#info',\n ],\n },\n },\n errors: [\n {\n name: 'FutureCursor',\n },\n ],\n },\n labels: {\n type: 'object',\n required: ['seq', 'labels'],\n properties: {\n seq: {\n type: 'integer',\n },\n labels: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:com.atproto.label.defs#label',\n },\n },\n },\n },\n info: {\n type: 'object',\n required: ['name'],\n properties: {\n name: {\n type: 'string',\n knownValues: ['OutdatedCursor'],\n },\n message: {\n type: 'string',\n },\n },\n },\n },\n },\n ComAtprotoModerationCreateReport: {\n lexicon: 1,\n id: 'com.atproto.moderation.createReport',\n defs: {\n main: {\n type: 'procedure',\n description: 'Report a repo or a record.',\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['reasonType', 'subject'],\n properties: {\n reasonType: {\n type: 'ref',\n ref: 'lex:com.atproto.moderation.defs#reasonType',\n },\n reason: {\n type: 'string',\n },\n subject: {\n type: 'union',\n refs: [\n 'lex:com.atproto.admin.defs#repoRef',\n 'lex:com.atproto.repo.strongRef',\n ],\n },\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: [\n 'id',\n 'reasonType',\n 'subject',\n 'reportedBy',\n 'createdAt',\n ],\n properties: {\n id: {\n type: 'integer',\n },\n reasonType: {\n type: 'ref',\n ref: 'lex:com.atproto.moderation.defs#reasonType',\n },\n reason: {\n type: 'string',\n },\n subject: {\n type: 'union',\n refs: [\n 'lex:com.atproto.admin.defs#repoRef',\n 'lex:com.atproto.repo.strongRef',\n ],\n },\n reportedBy: {\n type: 'string',\n format: 'did',\n },\n createdAt: {\n type: 'string',\n format: 'datetime',\n },\n },\n },\n },\n },\n },\n },\n ComAtprotoModerationDefs: {\n lexicon: 1,\n id: 'com.atproto.moderation.defs',\n defs: {\n reasonType: {\n type: 'string',\n knownValues: [\n 'com.atproto.moderation.defs#reasonSpam',\n 'com.atproto.moderation.defs#reasonViolation',\n 'com.atproto.moderation.defs#reasonMisleading',\n 'com.atproto.moderation.defs#reasonSexual',\n 'com.atproto.moderation.defs#reasonRude',\n 'com.atproto.moderation.defs#reasonOther',\n ],\n },\n reasonSpam: {\n type: 'token',\n description: 'Spam: frequent unwanted promotion, replies, mentions',\n },\n reasonViolation: {\n type: 'token',\n description: 'Direct violation of server rules, laws, terms of service',\n },\n reasonMisleading: {\n type: 'token',\n description: 'Misleading identity, affiliation, or content',\n },\n reasonSexual: {\n type: 'token',\n description: 'Unwanted or mis-labeled sexual content',\n },\n reasonRude: {\n type: 'token',\n description:\n 'Rude, harassing, explicit, or otherwise unwelcoming behavior',\n },\n reasonOther: {\n type: 'token',\n description: 'Other: reports not falling under another report category',\n },\n },\n },\n ComAtprotoRepoApplyWrites: {\n lexicon: 1,\n id: 'com.atproto.repo.applyWrites',\n defs: {\n main: {\n type: 'procedure',\n description:\n 'Apply a batch transaction of creates, updates, and deletes.',\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['repo', 'writes'],\n properties: {\n repo: {\n type: 'string',\n format: 'at-identifier',\n description: 'The handle or DID of the repo.',\n },\n validate: {\n type: 'boolean',\n default: true,\n description: 'Validate the records?',\n },\n writes: {\n type: 'array',\n items: {\n type: 'union',\n refs: [\n 'lex:com.atproto.repo.applyWrites#create',\n 'lex:com.atproto.repo.applyWrites#update',\n 'lex:com.atproto.repo.applyWrites#delete',\n ],\n closed: true,\n },\n },\n swapCommit: {\n type: 'string',\n format: 'cid',\n },\n },\n },\n },\n errors: [\n {\n name: 'InvalidSwap',\n },\n ],\n },\n create: {\n type: 'object',\n description: 'Create a new record.',\n required: ['action', 'collection', 'value'],\n properties: {\n collection: {\n type: 'string',\n format: 'nsid',\n },\n rkey: {\n type: 'string',\n },\n value: {\n type: 'unknown',\n },\n },\n },\n update: {\n type: 'object',\n description: 'Update an existing record.',\n required: ['action', 'collection', 'rkey', 'value'],\n properties: {\n collection: {\n type: 'string',\n format: 'nsid',\n },\n rkey: {\n type: 'string',\n },\n value: {\n type: 'unknown',\n },\n },\n },\n delete: {\n type: 'object',\n description: 'Delete an existing record.',\n required: ['action', 'collection', 'rkey'],\n properties: {\n collection: {\n type: 'string',\n format: 'nsid',\n },\n rkey: {\n type: 'string',\n },\n },\n },\n },\n },\n ComAtprotoRepoCreateRecord: {\n lexicon: 1,\n id: 'com.atproto.repo.createRecord',\n defs: {\n main: {\n type: 'procedure',\n description: 'Create a new record.',\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['repo', 'collection', 'record'],\n properties: {\n repo: {\n type: 'string',\n format: 'at-identifier',\n description: 'The handle or DID of the repo.',\n },\n collection: {\n type: 'string',\n format: 'nsid',\n description: 'The NSID of the record collection.',\n },\n rkey: {\n type: 'string',\n description: 'The key of the record.',\n },\n validate: {\n type: 'boolean',\n default: true,\n description: 'Validate the record?',\n },\n record: {\n type: 'unknown',\n description: 'The record to create.',\n },\n swapCommit: {\n type: 'string',\n format: 'cid',\n description:\n 'Compare and swap with the previous commit by cid.',\n },\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['uri', 'cid'],\n properties: {\n uri: {\n type: 'string',\n format: 'at-uri',\n },\n cid: {\n type: 'string',\n format: 'cid',\n },\n },\n },\n },\n errors: [\n {\n name: 'InvalidSwap',\n },\n ],\n },\n },\n },\n ComAtprotoRepoDeleteRecord: {\n lexicon: 1,\n id: 'com.atproto.repo.deleteRecord',\n defs: {\n main: {\n type: 'procedure',\n description: \"Delete a record, or ensure it doesn't exist.\",\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['repo', 'collection', 'rkey'],\n properties: {\n repo: {\n type: 'string',\n format: 'at-identifier',\n description: 'The handle or DID of the repo.',\n },\n collection: {\n type: 'string',\n format: 'nsid',\n description: 'The NSID of the record collection.',\n },\n rkey: {\n type: 'string',\n description: 'The key of the record.',\n },\n swapRecord: {\n type: 'string',\n format: 'cid',\n description:\n 'Compare and swap with the previous record by cid.',\n },\n swapCommit: {\n type: 'string',\n format: 'cid',\n description:\n 'Compare and swap with the previous commit by cid.',\n },\n },\n },\n },\n errors: [\n {\n name: 'InvalidSwap',\n },\n ],\n },\n },\n },\n ComAtprotoRepoDescribeRepo: {\n lexicon: 1,\n id: 'com.atproto.repo.describeRepo',\n defs: {\n main: {\n type: 'query',\n description:\n 'Get information about the repo, including the list of collections.',\n parameters: {\n type: 'params',\n required: ['repo'],\n properties: {\n repo: {\n type: 'string',\n format: 'at-identifier',\n description: 'The handle or DID of the repo.',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: [\n 'handle',\n 'did',\n 'didDoc',\n 'collections',\n 'handleIsCorrect',\n ],\n properties: {\n handle: {\n type: 'string',\n format: 'handle',\n },\n did: {\n type: 'string',\n format: 'did',\n },\n didDoc: {\n type: 'unknown',\n },\n collections: {\n type: 'array',\n items: {\n type: 'string',\n format: 'nsid',\n },\n },\n handleIsCorrect: {\n type: 'boolean',\n },\n },\n },\n },\n },\n },\n },\n ComAtprotoRepoGetRecord: {\n lexicon: 1,\n id: 'com.atproto.repo.getRecord',\n defs: {\n main: {\n type: 'query',\n description: 'Get a record.',\n parameters: {\n type: 'params',\n required: ['repo', 'collection', 'rkey'],\n properties: {\n repo: {\n type: 'string',\n format: 'at-identifier',\n description: 'The handle or DID of the repo.',\n },\n collection: {\n type: 'string',\n format: 'nsid',\n description: 'The NSID of the record collection.',\n },\n rkey: {\n type: 'string',\n description: 'The key of the record.',\n },\n cid: {\n type: 'string',\n format: 'cid',\n description:\n 'The CID of the version of the record. If not specified, then return the most recent version.',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['uri', 'value'],\n properties: {\n uri: {\n type: 'string',\n format: 'at-uri',\n },\n cid: {\n type: 'string',\n format: 'cid',\n },\n value: {\n type: 'unknown',\n },\n },\n },\n },\n },\n },\n },\n ComAtprotoRepoListRecords: {\n lexicon: 1,\n id: 'com.atproto.repo.listRecords',\n defs: {\n main: {\n type: 'query',\n description: 'List a range of records in a collection.',\n parameters: {\n type: 'params',\n required: ['repo', 'collection'],\n properties: {\n repo: {\n type: 'string',\n format: 'at-identifier',\n description: 'The handle or DID of the repo.',\n },\n collection: {\n type: 'string',\n format: 'nsid',\n description: 'The NSID of the record type.',\n },\n limit: {\n type: 'integer',\n minimum: 1,\n maximum: 100,\n default: 50,\n description: 'The number of records to return.',\n },\n cursor: {\n type: 'string',\n },\n rkeyStart: {\n type: 'string',\n description:\n 'DEPRECATED: The lowest sort-ordered rkey to start from (exclusive)',\n },\n rkeyEnd: {\n type: 'string',\n description:\n 'DEPRECATED: The highest sort-ordered rkey to stop at (exclusive)',\n },\n reverse: {\n type: 'boolean',\n description: 'Reverse the order of the returned records?',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['records'],\n properties: {\n cursor: {\n type: 'string',\n },\n records: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:com.atproto.repo.listRecords#record',\n },\n },\n },\n },\n },\n },\n record: {\n type: 'object',\n required: ['uri', 'cid', 'value'],\n properties: {\n uri: {\n type: 'string',\n format: 'at-uri',\n },\n cid: {\n type: 'string',\n format: 'cid',\n },\n value: {\n type: 'unknown',\n },\n },\n },\n },\n },\n ComAtprotoRepoPutRecord: {\n lexicon: 1,\n id: 'com.atproto.repo.putRecord',\n defs: {\n main: {\n type: 'procedure',\n description: 'Write a record, creating or updating it as needed.',\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['repo', 'collection', 'rkey', 'record'],\n nullable: ['swapRecord'],\n properties: {\n repo: {\n type: 'string',\n format: 'at-identifier',\n description: 'The handle or DID of the repo.',\n },\n collection: {\n type: 'string',\n format: 'nsid',\n description: 'The NSID of the record collection.',\n },\n rkey: {\n type: 'string',\n description: 'The key of the record.',\n },\n validate: {\n type: 'boolean',\n default: true,\n description: 'Validate the record?',\n },\n record: {\n type: 'unknown',\n description: 'The record to write.',\n },\n swapRecord: {\n type: 'string',\n format: 'cid',\n description:\n 'Compare and swap with the previous record by cid.',\n },\n swapCommit: {\n type: 'string',\n format: 'cid',\n description:\n 'Compare and swap with the previous commit by cid.',\n },\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['uri', 'cid'],\n properties: {\n uri: {\n type: 'string',\n format: 'at-uri',\n },\n cid: {\n type: 'string',\n format: 'cid',\n },\n },\n },\n },\n errors: [\n {\n name: 'InvalidSwap',\n },\n ],\n },\n },\n },\n ComAtprotoRepoRebaseRepo: {\n lexicon: 1,\n id: 'com.atproto.repo.rebaseRepo',\n defs: {\n main: {\n type: 'procedure',\n description: 'Simple rebase of repo that deletes history',\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['repo'],\n properties: {\n repo: {\n type: 'string',\n format: 'at-identifier',\n description: 'The handle or DID of the repo.',\n },\n swapCommit: {\n type: 'string',\n format: 'cid',\n description:\n 'Compare and swap with the previous commit by cid.',\n },\n },\n },\n },\n errors: [\n {\n name: 'InvalidSwap',\n },\n ],\n },\n },\n },\n ComAtprotoRepoStrongRef: {\n lexicon: 1,\n id: 'com.atproto.repo.strongRef',\n description: 'A URI with a content-hash fingerprint.',\n defs: {\n main: {\n type: 'object',\n required: ['uri', 'cid'],\n properties: {\n uri: {\n type: 'string',\n format: 'at-uri',\n },\n cid: {\n type: 'string',\n format: 'cid',\n },\n },\n },\n },\n },\n ComAtprotoRepoUploadBlob: {\n lexicon: 1,\n id: 'com.atproto.repo.uploadBlob',\n defs: {\n main: {\n type: 'procedure',\n description:\n 'Upload a new blob to be added to repo in a later request.',\n input: {\n encoding: '*/*',\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['blob'],\n properties: {\n blob: {\n type: 'blob',\n },\n },\n },\n },\n },\n },\n },\n ComAtprotoServerCreateAccount: {\n lexicon: 1,\n id: 'com.atproto.server.createAccount',\n defs: {\n main: {\n type: 'procedure',\n description: 'Create an account.',\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['handle', 'email', 'password'],\n properties: {\n email: {\n type: 'string',\n },\n handle: {\n type: 'string',\n format: 'handle',\n },\n inviteCode: {\n type: 'string',\n },\n password: {\n type: 'string',\n },\n recoveryKey: {\n type: 'string',\n },\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['accessJwt', 'refreshJwt', 'handle', 'did'],\n properties: {\n accessJwt: {\n type: 'string',\n },\n refreshJwt: {\n type: 'string',\n },\n handle: {\n type: 'string',\n format: 'handle',\n },\n did: {\n type: 'string',\n format: 'did',\n },\n },\n },\n },\n errors: [\n {\n name: 'InvalidHandle',\n },\n {\n name: 'InvalidPassword',\n },\n {\n name: 'InvalidInviteCode',\n },\n {\n name: 'HandleNotAvailable',\n },\n {\n name: 'UnsupportedDomain',\n },\n ],\n },\n },\n },\n ComAtprotoServerCreateAppPassword: {\n lexicon: 1,\n id: 'com.atproto.server.createAppPassword',\n defs: {\n main: {\n type: 'procedure',\n description: 'Create an app-specific password.',\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['name'],\n properties: {\n name: {\n type: 'string',\n },\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'ref',\n ref: 'lex:com.atproto.server.createAppPassword#appPassword',\n },\n },\n errors: [\n {\n name: 'AccountTakedown',\n },\n ],\n },\n appPassword: {\n type: 'object',\n required: ['name', 'password', 'createdAt'],\n properties: {\n name: {\n type: 'string',\n },\n password: {\n type: 'string',\n },\n createdAt: {\n type: 'string',\n format: 'datetime',\n },\n },\n },\n },\n },\n ComAtprotoServerCreateInviteCode: {\n lexicon: 1,\n id: 'com.atproto.server.createInviteCode',\n defs: {\n main: {\n type: 'procedure',\n description: 'Create an invite code.',\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['useCount'],\n properties: {\n useCount: {\n type: 'integer',\n },\n forAccount: {\n type: 'string',\n format: 'did',\n },\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['code'],\n properties: {\n code: {\n type: 'string',\n },\n },\n },\n },\n },\n },\n },\n ComAtprotoServerCreateInviteCodes: {\n lexicon: 1,\n id: 'com.atproto.server.createInviteCodes',\n defs: {\n main: {\n type: 'procedure',\n description: 'Create an invite code.',\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['codeCount', 'useCount'],\n properties: {\n codeCount: {\n type: 'integer',\n default: 1,\n },\n useCount: {\n type: 'integer',\n },\n forAccounts: {\n type: 'array',\n items: {\n type: 'string',\n format: 'did',\n },\n },\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['codes'],\n properties: {\n codes: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:com.atproto.server.createInviteCodes#accountCodes',\n },\n },\n },\n },\n },\n },\n accountCodes: {\n type: 'object',\n required: ['account', 'codes'],\n properties: {\n account: {\n type: 'string',\n },\n codes: {\n type: 'array',\n items: {\n type: 'string',\n },\n },\n },\n },\n },\n },\n ComAtprotoServerCreateSession: {\n lexicon: 1,\n id: 'com.atproto.server.createSession',\n defs: {\n main: {\n type: 'procedure',\n description: 'Create an authentication session.',\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['identifier', 'password'],\n properties: {\n identifier: {\n type: 'string',\n description:\n 'Handle or other identifier supported by the server for the authenticating user.',\n },\n password: {\n type: 'string',\n },\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['accessJwt', 'refreshJwt', 'handle', 'did'],\n properties: {\n accessJwt: {\n type: 'string',\n },\n refreshJwt: {\n type: 'string',\n },\n handle: {\n type: 'string',\n format: 'handle',\n },\n did: {\n type: 'string',\n format: 'did',\n },\n email: {\n type: 'string',\n },\n },\n },\n },\n errors: [\n {\n name: 'AccountTakedown',\n },\n ],\n },\n },\n },\n ComAtprotoServerDefs: {\n lexicon: 1,\n id: 'com.atproto.server.defs',\n defs: {\n inviteCode: {\n type: 'object',\n required: [\n 'code',\n 'available',\n 'disabled',\n 'forAccount',\n 'createdBy',\n 'createdAt',\n 'uses',\n ],\n properties: {\n code: {\n type: 'string',\n },\n available: {\n type: 'integer',\n },\n disabled: {\n type: 'boolean',\n },\n forAccount: {\n type: 'string',\n },\n createdBy: {\n type: 'string',\n },\n createdAt: {\n type: 'string',\n format: 'datetime',\n },\n uses: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:com.atproto.server.defs#inviteCodeUse',\n },\n },\n },\n },\n inviteCodeUse: {\n type: 'object',\n required: ['usedBy', 'usedAt'],\n properties: {\n usedBy: {\n type: 'string',\n format: 'did',\n },\n usedAt: {\n type: 'string',\n format: 'datetime',\n },\n },\n },\n },\n },\n ComAtprotoServerDeleteAccount: {\n lexicon: 1,\n id: 'com.atproto.server.deleteAccount',\n defs: {\n main: {\n type: 'procedure',\n description: 'Delete a user account with a token and password.',\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['did', 'password', 'token'],\n properties: {\n did: {\n type: 'string',\n format: 'did',\n },\n password: {\n type: 'string',\n },\n token: {\n type: 'string',\n },\n },\n },\n },\n errors: [\n {\n name: 'ExpiredToken',\n },\n {\n name: 'InvalidToken',\n },\n ],\n },\n },\n },\n ComAtprotoServerDeleteSession: {\n lexicon: 1,\n id: 'com.atproto.server.deleteSession',\n defs: {\n main: {\n type: 'procedure',\n description: 'Delete the current session.',\n },\n },\n },\n ComAtprotoServerDescribeServer: {\n lexicon: 1,\n id: 'com.atproto.server.describeServer',\n defs: {\n main: {\n type: 'query',\n description:\n \"Get a document describing the service's accounts configuration.\",\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['availableUserDomains'],\n properties: {\n inviteCodeRequired: {\n type: 'boolean',\n },\n availableUserDomains: {\n type: 'array',\n items: {\n type: 'string',\n },\n },\n links: {\n type: 'ref',\n ref: 'lex:com.atproto.server.describeServer#links',\n },\n },\n },\n },\n },\n links: {\n type: 'object',\n properties: {\n privacyPolicy: {\n type: 'string',\n },\n termsOfService: {\n type: 'string',\n },\n },\n },\n },\n },\n ComAtprotoServerGetAccountInviteCodes: {\n lexicon: 1,\n id: 'com.atproto.server.getAccountInviteCodes',\n defs: {\n main: {\n type: 'query',\n description: 'Get all invite codes for a given account',\n parameters: {\n type: 'params',\n properties: {\n includeUsed: {\n type: 'boolean',\n default: true,\n },\n createAvailable: {\n type: 'boolean',\n default: true,\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['codes'],\n properties: {\n codes: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:com.atproto.server.defs#inviteCode',\n },\n },\n },\n },\n },\n errors: [\n {\n name: 'DuplicateCreate',\n },\n ],\n },\n },\n },\n ComAtprotoServerGetSession: {\n lexicon: 1,\n id: 'com.atproto.server.getSession',\n defs: {\n main: {\n type: 'query',\n description: 'Get information about the current session.',\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['handle', 'did'],\n properties: {\n handle: {\n type: 'string',\n format: 'handle',\n },\n did: {\n type: 'string',\n format: 'did',\n },\n email: {\n type: 'string',\n },\n },\n },\n },\n },\n },\n },\n ComAtprotoServerListAppPasswords: {\n lexicon: 1,\n id: 'com.atproto.server.listAppPasswords',\n defs: {\n main: {\n type: 'query',\n description: 'List all app-specific passwords.',\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['passwords'],\n properties: {\n passwords: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:com.atproto.server.listAppPasswords#appPassword',\n },\n },\n },\n },\n },\n errors: [\n {\n name: 'AccountTakedown',\n },\n ],\n },\n appPassword: {\n type: 'object',\n required: ['name', 'createdAt'],\n properties: {\n name: {\n type: 'string',\n },\n createdAt: {\n type: 'string',\n format: 'datetime',\n },\n },\n },\n },\n },\n ComAtprotoServerRefreshSession: {\n lexicon: 1,\n id: 'com.atproto.server.refreshSession',\n defs: {\n main: {\n type: 'procedure',\n description: 'Refresh an authentication session.',\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['accessJwt', 'refreshJwt', 'handle', 'did'],\n properties: {\n accessJwt: {\n type: 'string',\n },\n refreshJwt: {\n type: 'string',\n },\n handle: {\n type: 'string',\n format: 'handle',\n },\n did: {\n type: 'string',\n format: 'did',\n },\n },\n },\n },\n errors: [\n {\n name: 'AccountTakedown',\n },\n ],\n },\n },\n },\n ComAtprotoServerRequestAccountDelete: {\n lexicon: 1,\n id: 'com.atproto.server.requestAccountDelete',\n defs: {\n main: {\n type: 'procedure',\n description: 'Initiate a user account deletion via email.',\n },\n },\n },\n ComAtprotoServerRequestPasswordReset: {\n lexicon: 1,\n id: 'com.atproto.server.requestPasswordReset',\n defs: {\n main: {\n type: 'procedure',\n description: 'Initiate a user account password reset via email.',\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['email'],\n properties: {\n email: {\n type: 'string',\n },\n },\n },\n },\n },\n },\n },\n ComAtprotoServerResetPassword: {\n lexicon: 1,\n id: 'com.atproto.server.resetPassword',\n defs: {\n main: {\n type: 'procedure',\n description: 'Reset a user account password using a token.',\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['token', 'password'],\n properties: {\n token: {\n type: 'string',\n },\n password: {\n type: 'string',\n },\n },\n },\n },\n errors: [\n {\n name: 'ExpiredToken',\n },\n {\n name: 'InvalidToken',\n },\n ],\n },\n },\n },\n ComAtprotoServerRevokeAppPassword: {\n lexicon: 1,\n id: 'com.atproto.server.revokeAppPassword',\n defs: {\n main: {\n type: 'procedure',\n description: 'Revoke an app-specific password by name.',\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['name'],\n properties: {\n name: {\n type: 'string',\n },\n },\n },\n },\n },\n },\n },\n ComAtprotoSyncGetBlob: {\n lexicon: 1,\n id: 'com.atproto.sync.getBlob',\n defs: {\n main: {\n type: 'query',\n description: 'Get a blob associated with a given repo.',\n parameters: {\n type: 'params',\n required: ['did', 'cid'],\n properties: {\n did: {\n type: 'string',\n format: 'did',\n description: 'The DID of the repo.',\n },\n cid: {\n type: 'string',\n format: 'cid',\n description: 'The CID of the blob to fetch',\n },\n },\n },\n output: {\n encoding: '*/*',\n },\n },\n },\n },\n ComAtprotoSyncGetBlocks: {\n lexicon: 1,\n id: 'com.atproto.sync.getBlocks',\n defs: {\n main: {\n type: 'query',\n description: 'Gets blocks from a given repo.',\n parameters: {\n type: 'params',\n required: ['did', 'cids'],\n properties: {\n did: {\n type: 'string',\n format: 'did',\n description: 'The DID of the repo.',\n },\n cids: {\n type: 'array',\n items: {\n type: 'string',\n format: 'cid',\n },\n },\n },\n },\n output: {\n encoding: 'application/vnd.ipld.car',\n },\n },\n },\n },\n ComAtprotoSyncGetCheckout: {\n lexicon: 1,\n id: 'com.atproto.sync.getCheckout',\n defs: {\n main: {\n type: 'query',\n description: 'Gets the repo state.',\n parameters: {\n type: 'params',\n required: ['did'],\n properties: {\n did: {\n type: 'string',\n format: 'did',\n description: 'The DID of the repo.',\n },\n commit: {\n type: 'string',\n format: 'cid',\n description:\n 'The commit to get the checkout from. Defaults to current HEAD.',\n },\n },\n },\n output: {\n encoding: 'application/vnd.ipld.car',\n },\n },\n },\n },\n ComAtprotoSyncGetCommitPath: {\n lexicon: 1,\n id: 'com.atproto.sync.getCommitPath',\n defs: {\n main: {\n type: 'query',\n description: 'Gets the path of repo commits',\n parameters: {\n type: 'params',\n required: ['did'],\n properties: {\n did: {\n type: 'string',\n format: 'did',\n description: 'The DID of the repo.',\n },\n latest: {\n type: 'string',\n format: 'cid',\n description: 'The most recent commit',\n },\n earliest: {\n type: 'string',\n format: 'cid',\n description: 'The earliest commit to start from',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['commits'],\n properties: {\n commits: {\n type: 'array',\n items: {\n type: 'string',\n format: 'cid',\n },\n },\n },\n },\n },\n },\n },\n },\n ComAtprotoSyncGetHead: {\n lexicon: 1,\n id: 'com.atproto.sync.getHead',\n defs: {\n main: {\n type: 'query',\n description: 'Gets the current HEAD CID of a repo.',\n parameters: {\n type: 'params',\n required: ['did'],\n properties: {\n did: {\n type: 'string',\n format: 'did',\n description: 'The DID of the repo.',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['root'],\n properties: {\n root: {\n type: 'string',\n format: 'cid',\n },\n },\n },\n },\n },\n },\n },\n ComAtprotoSyncGetRecord: {\n lexicon: 1,\n id: 'com.atproto.sync.getRecord',\n defs: {\n main: {\n type: 'query',\n description:\n 'Gets blocks needed for existence or non-existence of record.',\n parameters: {\n type: 'params',\n required: ['did', 'collection', 'rkey'],\n properties: {\n did: {\n type: 'string',\n format: 'did',\n description: 'The DID of the repo.',\n },\n collection: {\n type: 'string',\n format: 'nsid',\n },\n rkey: {\n type: 'string',\n },\n commit: {\n type: 'string',\n format: 'cid',\n description: 'An optional past commit CID.',\n },\n },\n },\n output: {\n encoding: 'application/vnd.ipld.car',\n },\n },\n },\n },\n ComAtprotoSyncGetRepo: {\n lexicon: 1,\n id: 'com.atproto.sync.getRepo',\n defs: {\n main: {\n type: 'query',\n description: 'Gets the repo state.',\n parameters: {\n type: 'params',\n required: ['did'],\n properties: {\n did: {\n type: 'string',\n format: 'did',\n description: 'The DID of the repo.',\n },\n earliest: {\n type: 'string',\n format: 'cid',\n description:\n 'The earliest commit in the commit range (not inclusive)',\n },\n latest: {\n type: 'string',\n format: 'cid',\n description: 'The latest commit in the commit range (inclusive)',\n },\n },\n },\n output: {\n encoding: 'application/vnd.ipld.car',\n },\n },\n },\n },\n ComAtprotoSyncListBlobs: {\n lexicon: 1,\n id: 'com.atproto.sync.listBlobs',\n defs: {\n main: {\n type: 'query',\n description: 'List blob cids for some range of commits',\n parameters: {\n type: 'params',\n required: ['did'],\n properties: {\n did: {\n type: 'string',\n format: 'did',\n description: 'The DID of the repo.',\n },\n latest: {\n type: 'string',\n format: 'cid',\n description: 'The most recent commit',\n },\n earliest: {\n type: 'string',\n format: 'cid',\n description: 'The earliest commit to start from',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['cids'],\n properties: {\n cids: {\n type: 'array',\n items: {\n type: 'string',\n format: 'cid',\n },\n },\n },\n },\n },\n },\n },\n },\n ComAtprotoSyncListRepos: {\n lexicon: 1,\n id: 'com.atproto.sync.listRepos',\n defs: {\n main: {\n type: 'query',\n description: 'List dids and root cids of hosted repos',\n parameters: {\n type: 'params',\n properties: {\n limit: {\n type: 'integer',\n minimum: 1,\n maximum: 1000,\n default: 500,\n },\n cursor: {\n type: 'string',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['repos'],\n properties: {\n cursor: {\n type: 'string',\n },\n repos: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:com.atproto.sync.listRepos#repo',\n },\n },\n },\n },\n },\n },\n repo: {\n type: 'object',\n required: ['did', 'head'],\n properties: {\n did: {\n type: 'string',\n format: 'did',\n },\n head: {\n type: 'string',\n format: 'cid',\n },\n },\n },\n },\n },\n ComAtprotoSyncNotifyOfUpdate: {\n lexicon: 1,\n id: 'com.atproto.sync.notifyOfUpdate',\n defs: {\n main: {\n type: 'query',\n description:\n 'Notify a crawling service of a recent update. Often when a long break between updates causes the connection with the crawling service to break.',\n parameters: {\n type: 'params',\n required: ['hostname'],\n properties: {\n hostname: {\n type: 'string',\n description:\n 'Hostname of the service that is notifying of update.',\n },\n },\n },\n },\n },\n },\n ComAtprotoSyncRequestCrawl: {\n lexicon: 1,\n id: 'com.atproto.sync.requestCrawl',\n defs: {\n main: {\n type: 'query',\n description: 'Request a service to persistently crawl hosted repos.',\n parameters: {\n type: 'params',\n required: ['hostname'],\n properties: {\n hostname: {\n type: 'string',\n description:\n 'Hostname of the service that is requesting to be crawled.',\n },\n },\n },\n },\n },\n },\n ComAtprotoSyncSubscribeRepos: {\n lexicon: 1,\n id: 'com.atproto.sync.subscribeRepos',\n defs: {\n main: {\n type: 'subscription',\n description: 'Subscribe to repo updates',\n parameters: {\n type: 'params',\n properties: {\n cursor: {\n type: 'integer',\n description: 'The last known event to backfill from.',\n },\n },\n },\n message: {\n schema: {\n type: 'union',\n refs: [\n 'lex:com.atproto.sync.subscribeRepos#commit',\n 'lex:com.atproto.sync.subscribeRepos#handle',\n 'lex:com.atproto.sync.subscribeRepos#migrate',\n 'lex:com.atproto.sync.subscribeRepos#tombstone',\n 'lex:com.atproto.sync.subscribeRepos#info',\n ],\n },\n },\n errors: [\n {\n name: 'FutureCursor',\n },\n ],\n },\n commit: {\n type: 'object',\n required: [\n 'seq',\n 'rebase',\n 'tooBig',\n 'repo',\n 'commit',\n 'prev',\n 'blocks',\n 'ops',\n 'blobs',\n 'time',\n ],\n nullable: ['prev'],\n properties: {\n seq: {\n type: 'integer',\n },\n rebase: {\n type: 'boolean',\n },\n tooBig: {\n type: 'boolean',\n },\n repo: {\n type: 'string',\n format: 'did',\n },\n commit: {\n type: 'cid-link',\n },\n prev: {\n type: 'cid-link',\n },\n blocks: {\n type: 'bytes',\n description: 'CAR file containing relevant blocks',\n maxLength: 1000000,\n },\n ops: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:com.atproto.sync.subscribeRepos#repoOp',\n },\n maxLength: 200,\n },\n blobs: {\n type: 'array',\n items: {\n type: 'cid-link',\n },\n },\n time: {\n type: 'string',\n format: 'datetime',\n },\n },\n },\n handle: {\n type: 'object',\n required: ['seq', 'did', 'handle', 'time'],\n properties: {\n seq: {\n type: 'integer',\n },\n did: {\n type: 'string',\n format: 'did',\n },\n handle: {\n type: 'string',\n format: 'handle',\n },\n time: {\n type: 'string',\n format: 'datetime',\n },\n },\n },\n migrate: {\n type: 'object',\n required: ['seq', 'did', 'migrateTo', 'time'],\n nullable: ['migrateTo'],\n properties: {\n seq: {\n type: 'integer',\n },\n did: {\n type: 'string',\n format: 'did',\n },\n migrateTo: {\n type: 'string',\n },\n time: {\n type: 'string',\n format: 'datetime',\n },\n },\n },\n tombstone: {\n type: 'object',\n required: ['seq', 'did', 'time'],\n properties: {\n seq: {\n type: 'integer',\n },\n did: {\n type: 'string',\n format: 'did',\n },\n time: {\n type: 'string',\n format: 'datetime',\n },\n },\n },\n info: {\n type: 'object',\n required: ['name'],\n properties: {\n name: {\n type: 'string',\n knownValues: ['OutdatedCursor'],\n },\n message: {\n type: 'string',\n },\n },\n },\n repoOp: {\n type: 'object',\n required: ['action', 'path', 'cid'],\n nullable: ['cid'],\n properties: {\n action: {\n type: 'string',\n knownValues: ['create', 'update', 'delete'],\n },\n path: {\n type: 'string',\n },\n cid: {\n type: 'cid-link',\n },\n },\n },\n },\n },\n AppBskyActorDefs: {\n lexicon: 1,\n id: 'app.bsky.actor.defs',\n description: 'A reference to an actor in the network.',\n defs: {\n profileViewBasic: {\n type: 'object',\n required: ['did', 'handle'],\n properties: {\n did: {\n type: 'string',\n format: 'did',\n },\n handle: {\n type: 'string',\n format: 'handle',\n },\n displayName: {\n type: 'string',\n maxGraphemes: 64,\n maxLength: 640,\n },\n avatar: {\n type: 'string',\n },\n viewer: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.defs#viewerState',\n },\n labels: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:com.atproto.label.defs#label',\n },\n },\n },\n },\n profileView: {\n type: 'object',\n required: ['did', 'handle'],\n properties: {\n did: {\n type: 'string',\n format: 'did',\n },\n handle: {\n type: 'string',\n format: 'handle',\n },\n displayName: {\n type: 'string',\n maxGraphemes: 64,\n maxLength: 640,\n },\n description: {\n type: 'string',\n maxGraphemes: 256,\n maxLength: 2560,\n },\n avatar: {\n type: 'string',\n },\n indexedAt: {\n type: 'string',\n format: 'datetime',\n },\n viewer: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.defs#viewerState',\n },\n labels: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:com.atproto.label.defs#label',\n },\n },\n },\n },\n profileViewDetailed: {\n type: 'object',\n required: ['did', 'handle'],\n properties: {\n did: {\n type: 'string',\n format: 'did',\n },\n handle: {\n type: 'string',\n format: 'handle',\n },\n displayName: {\n type: 'string',\n maxGraphemes: 64,\n maxLength: 640,\n },\n description: {\n type: 'string',\n maxGraphemes: 256,\n maxLength: 2560,\n },\n avatar: {\n type: 'string',\n },\n banner: {\n type: 'string',\n },\n followersCount: {\n type: 'integer',\n },\n followsCount: {\n type: 'integer',\n },\n postsCount: {\n type: 'integer',\n },\n indexedAt: {\n type: 'string',\n format: 'datetime',\n },\n viewer: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.defs#viewerState',\n },\n labels: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:com.atproto.label.defs#label',\n },\n },\n },\n },\n viewerState: {\n type: 'object',\n properties: {\n muted: {\n type: 'boolean',\n },\n blockedBy: {\n type: 'boolean',\n },\n blocking: {\n type: 'string',\n format: 'at-uri',\n },\n following: {\n type: 'string',\n format: 'at-uri',\n },\n followedBy: {\n type: 'string',\n format: 'at-uri',\n },\n },\n },\n },\n },\n AppBskyActorGetProfile: {\n lexicon: 1,\n id: 'app.bsky.actor.getProfile',\n defs: {\n main: {\n type: 'query',\n parameters: {\n type: 'params',\n required: ['actor'],\n properties: {\n actor: {\n type: 'string',\n format: 'at-identifier',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.defs#profileViewDetailed',\n },\n },\n },\n },\n },\n AppBskyActorGetProfiles: {\n lexicon: 1,\n id: 'app.bsky.actor.getProfiles',\n defs: {\n main: {\n type: 'query',\n parameters: {\n type: 'params',\n required: ['actors'],\n properties: {\n actors: {\n type: 'array',\n items: {\n type: 'string',\n format: 'at-identifier',\n },\n maxLength: 25,\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['profiles'],\n properties: {\n profiles: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.defs#profileViewDetailed',\n },\n },\n },\n },\n },\n },\n },\n },\n AppBskyActorGetSuggestions: {\n lexicon: 1,\n id: 'app.bsky.actor.getSuggestions',\n defs: {\n main: {\n type: 'query',\n description:\n 'Get a list of actors suggested for following. Used in discovery UIs.',\n parameters: {\n type: 'params',\n properties: {\n limit: {\n type: 'integer',\n minimum: 1,\n maximum: 100,\n default: 50,\n },\n cursor: {\n type: 'string',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['actors'],\n properties: {\n cursor: {\n type: 'string',\n },\n actors: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.defs#profileView',\n },\n },\n },\n },\n },\n },\n },\n },\n AppBskyActorProfile: {\n lexicon: 1,\n id: 'app.bsky.actor.profile',\n defs: {\n main: {\n type: 'record',\n key: 'literal:self',\n record: {\n type: 'object',\n properties: {\n displayName: {\n type: 'string',\n maxGraphemes: 64,\n maxLength: 640,\n },\n description: {\n type: 'string',\n maxGraphemes: 256,\n maxLength: 2560,\n },\n avatar: {\n type: 'blob',\n accept: ['image/png', 'image/jpeg'],\n maxSize: 1000000,\n },\n banner: {\n type: 'blob',\n accept: ['image/png', 'image/jpeg'],\n maxSize: 1000000,\n },\n },\n },\n },\n },\n },\n AppBskyActorSearchActors: {\n lexicon: 1,\n id: 'app.bsky.actor.searchActors',\n defs: {\n main: {\n type: 'query',\n description: 'Find actors matching search criteria.',\n parameters: {\n type: 'params',\n properties: {\n term: {\n type: 'string',\n },\n limit: {\n type: 'integer',\n minimum: 1,\n maximum: 100,\n default: 50,\n },\n cursor: {\n type: 'string',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['actors'],\n properties: {\n cursor: {\n type: 'string',\n },\n actors: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.defs#profileView',\n },\n },\n },\n },\n },\n },\n },\n },\n AppBskyActorSearchActorsTypeahead: {\n lexicon: 1,\n id: 'app.bsky.actor.searchActorsTypeahead',\n defs: {\n main: {\n type: 'query',\n description: 'Find actor suggestions for a search term.',\n parameters: {\n type: 'params',\n properties: {\n term: {\n type: 'string',\n },\n limit: {\n type: 'integer',\n minimum: 1,\n maximum: 100,\n default: 50,\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['actors'],\n properties: {\n actors: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.defs#profileViewBasic',\n },\n },\n },\n },\n },\n },\n },\n },\n AppBskyEmbedExternal: {\n lexicon: 1,\n id: 'app.bsky.embed.external',\n description:\n 'A representation of some externally linked content, embedded in another form of content',\n defs: {\n main: {\n type: 'object',\n required: ['external'],\n properties: {\n external: {\n type: 'ref',\n ref: 'lex:app.bsky.embed.external#external',\n },\n },\n },\n external: {\n type: 'object',\n required: ['uri', 'title', 'description'],\n properties: {\n uri: {\n type: 'string',\n format: 'uri',\n },\n title: {\n type: 'string',\n },\n description: {\n type: 'string',\n },\n thumb: {\n type: 'blob',\n accept: ['image/*'],\n maxSize: 1000000,\n },\n },\n },\n view: {\n type: 'object',\n required: ['external'],\n properties: {\n external: {\n type: 'ref',\n ref: 'lex:app.bsky.embed.external#viewExternal',\n },\n },\n },\n viewExternal: {\n type: 'object',\n required: ['uri', 'title', 'description'],\n properties: {\n uri: {\n type: 'string',\n format: 'uri',\n },\n title: {\n type: 'string',\n },\n description: {\n type: 'string',\n },\n thumb: {\n type: 'string',\n },\n },\n },\n },\n },\n AppBskyEmbedImages: {\n lexicon: 1,\n id: 'app.bsky.embed.images',\n description: 'A set of images embedded in some other form of content',\n defs: {\n main: {\n type: 'object',\n required: ['images'],\n properties: {\n images: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.embed.images#image',\n },\n maxLength: 4,\n },\n },\n },\n image: {\n type: 'object',\n required: ['image', 'alt'],\n properties: {\n image: {\n type: 'blob',\n accept: ['image/*'],\n maxSize: 1000000,\n },\n alt: {\n type: 'string',\n },\n },\n },\n view: {\n type: 'object',\n required: ['images'],\n properties: {\n images: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.embed.images#viewImage',\n },\n maxLength: 4,\n },\n },\n },\n viewImage: {\n type: 'object',\n required: ['thumb', 'fullsize', 'alt'],\n properties: {\n thumb: {\n type: 'string',\n },\n fullsize: {\n type: 'string',\n },\n alt: {\n type: 'string',\n },\n },\n },\n },\n },\n AppBskyEmbedRecord: {\n lexicon: 1,\n id: 'app.bsky.embed.record',\n description:\n 'A representation of a record embedded in another form of content',\n defs: {\n main: {\n type: 'object',\n required: ['record'],\n properties: {\n record: {\n type: 'ref',\n ref: 'lex:com.atproto.repo.strongRef',\n },\n },\n },\n view: {\n type: 'object',\n required: ['record'],\n properties: {\n record: {\n type: 'union',\n refs: [\n 'lex:app.bsky.embed.record#viewRecord',\n 'lex:app.bsky.embed.record#viewNotFound',\n 'lex:app.bsky.embed.record#viewBlocked',\n ],\n },\n },\n },\n viewRecord: {\n type: 'object',\n required: ['uri', 'cid', 'author', 'value', 'indexedAt'],\n properties: {\n uri: {\n type: 'string',\n format: 'at-uri',\n },\n cid: {\n type: 'string',\n format: 'cid',\n },\n author: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.defs#profileViewBasic',\n },\n value: {\n type: 'unknown',\n },\n labels: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:com.atproto.label.defs#label',\n },\n },\n embeds: {\n type: 'array',\n items: {\n type: 'union',\n refs: [\n 'lex:app.bsky.embed.images#view',\n 'lex:app.bsky.embed.external#view',\n 'lex:app.bsky.embed.record#view',\n 'lex:app.bsky.embed.recordWithMedia#view',\n ],\n },\n },\n indexedAt: {\n type: 'string',\n format: 'datetime',\n },\n },\n },\n viewNotFound: {\n type: 'object',\n required: ['uri'],\n properties: {\n uri: {\n type: 'string',\n format: 'at-uri',\n },\n },\n },\n viewBlocked: {\n type: 'object',\n required: ['uri'],\n properties: {\n uri: {\n type: 'string',\n format: 'at-uri',\n },\n },\n },\n },\n },\n AppBskyEmbedRecordWithMedia: {\n lexicon: 1,\n id: 'app.bsky.embed.recordWithMedia',\n description:\n 'A representation of a record embedded in another form of content, alongside other compatible embeds',\n defs: {\n main: {\n type: 'object',\n required: ['record', 'media'],\n properties: {\n record: {\n type: 'ref',\n ref: 'lex:app.bsky.embed.record',\n },\n media: {\n type: 'union',\n refs: ['lex:app.bsky.embed.images', 'lex:app.bsky.embed.external'],\n },\n },\n },\n view: {\n type: 'object',\n required: ['record', 'media'],\n properties: {\n record: {\n type: 'ref',\n ref: 'lex:app.bsky.embed.record#view',\n },\n media: {\n type: 'union',\n refs: [\n 'lex:app.bsky.embed.images#view',\n 'lex:app.bsky.embed.external#view',\n ],\n },\n },\n },\n },\n },\n AppBskyFeedDefs: {\n lexicon: 1,\n id: 'app.bsky.feed.defs',\n defs: {\n postView: {\n type: 'object',\n required: ['uri', 'cid', 'author', 'record', 'indexedAt'],\n properties: {\n uri: {\n type: 'string',\n format: 'at-uri',\n },\n cid: {\n type: 'string',\n format: 'cid',\n },\n author: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.defs#profileViewBasic',\n },\n record: {\n type: 'unknown',\n },\n embed: {\n type: 'union',\n refs: [\n 'lex:app.bsky.embed.images#view',\n 'lex:app.bsky.embed.external#view',\n 'lex:app.bsky.embed.record#view',\n 'lex:app.bsky.embed.recordWithMedia#view',\n ],\n },\n replyCount: {\n type: 'integer',\n },\n repostCount: {\n type: 'integer',\n },\n likeCount: {\n type: 'integer',\n },\n indexedAt: {\n type: 'string',\n format: 'datetime',\n },\n viewer: {\n type: 'ref',\n ref: 'lex:app.bsky.feed.defs#viewerState',\n },\n labels: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:com.atproto.label.defs#label',\n },\n },\n },\n },\n viewerState: {\n type: 'object',\n properties: {\n repost: {\n type: 'string',\n format: 'at-uri',\n },\n like: {\n type: 'string',\n format: 'at-uri',\n },\n },\n },\n feedViewPost: {\n type: 'object',\n required: ['post'],\n properties: {\n post: {\n type: 'ref',\n ref: 'lex:app.bsky.feed.defs#postView',\n },\n reply: {\n type: 'ref',\n ref: 'lex:app.bsky.feed.defs#replyRef',\n },\n reason: {\n type: 'union',\n refs: ['lex:app.bsky.feed.defs#reasonRepost'],\n },\n },\n },\n replyRef: {\n type: 'object',\n required: ['root', 'parent'],\n properties: {\n root: {\n type: 'ref',\n ref: 'lex:app.bsky.feed.defs#postView',\n },\n parent: {\n type: 'ref',\n ref: 'lex:app.bsky.feed.defs#postView',\n },\n },\n },\n reasonRepost: {\n type: 'object',\n required: ['by', 'indexedAt'],\n properties: {\n by: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.defs#profileViewBasic',\n },\n indexedAt: {\n type: 'string',\n format: 'datetime',\n },\n },\n },\n threadViewPost: {\n type: 'object',\n required: ['post'],\n properties: {\n post: {\n type: 'ref',\n ref: 'lex:app.bsky.feed.defs#postView',\n },\n parent: {\n type: 'union',\n refs: [\n 'lex:app.bsky.feed.defs#threadViewPost',\n 'lex:app.bsky.feed.defs#notFoundPost',\n 'lex:app.bsky.feed.defs#blockedPost',\n ],\n },\n replies: {\n type: 'array',\n items: {\n type: 'union',\n refs: [\n 'lex:app.bsky.feed.defs#threadViewPost',\n 'lex:app.bsky.feed.defs#notFoundPost',\n 'lex:app.bsky.feed.defs#blockedPost',\n ],\n },\n },\n },\n },\n notFoundPost: {\n type: 'object',\n required: ['uri', 'notFound'],\n properties: {\n uri: {\n type: 'string',\n format: 'at-uri',\n },\n notFound: {\n type: 'boolean',\n const: true,\n },\n },\n },\n blockedPost: {\n type: 'object',\n required: ['uri', 'blocked'],\n properties: {\n uri: {\n type: 'string',\n format: 'at-uri',\n },\n blocked: {\n type: 'boolean',\n const: true,\n },\n },\n },\n },\n },\n AppBskyFeedGetAuthorFeed: {\n lexicon: 1,\n id: 'app.bsky.feed.getAuthorFeed',\n defs: {\n main: {\n type: 'query',\n description: \"A view of an actor's feed.\",\n parameters: {\n type: 'params',\n required: ['actor'],\n properties: {\n actor: {\n type: 'string',\n format: 'at-identifier',\n },\n limit: {\n type: 'integer',\n minimum: 1,\n maximum: 100,\n default: 50,\n },\n cursor: {\n type: 'string',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['feed'],\n properties: {\n cursor: {\n type: 'string',\n },\n feed: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.feed.defs#feedViewPost',\n },\n },\n },\n },\n },\n errors: [\n {\n name: 'BlockedActor',\n },\n {\n name: 'BlockedByActor',\n },\n ],\n },\n },\n },\n AppBskyFeedGetLikes: {\n lexicon: 1,\n id: 'app.bsky.feed.getLikes',\n defs: {\n main: {\n type: 'query',\n parameters: {\n type: 'params',\n required: ['uri'],\n properties: {\n uri: {\n type: 'string',\n format: 'at-uri',\n },\n cid: {\n type: 'string',\n format: 'cid',\n },\n limit: {\n type: 'integer',\n minimum: 1,\n maximum: 100,\n default: 50,\n },\n cursor: {\n type: 'string',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['uri', 'likes'],\n properties: {\n uri: {\n type: 'string',\n format: 'at-uri',\n },\n cid: {\n type: 'string',\n format: 'cid',\n },\n cursor: {\n type: 'string',\n },\n likes: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.feed.getLikes#like',\n },\n },\n },\n },\n },\n },\n like: {\n type: 'object',\n required: ['indexedAt', 'createdAt', 'actor'],\n properties: {\n indexedAt: {\n type: 'string',\n format: 'datetime',\n },\n createdAt: {\n type: 'string',\n format: 'datetime',\n },\n actor: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.defs#profileView',\n },\n },\n },\n },\n },\n AppBskyFeedGetPostThread: {\n lexicon: 1,\n id: 'app.bsky.feed.getPostThread',\n defs: {\n main: {\n type: 'query',\n parameters: {\n type: 'params',\n required: ['uri'],\n properties: {\n uri: {\n type: 'string',\n format: 'at-uri',\n },\n depth: {\n type: 'integer',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['thread'],\n properties: {\n thread: {\n type: 'union',\n refs: [\n 'lex:app.bsky.feed.defs#threadViewPost',\n 'lex:app.bsky.feed.defs#notFoundPost',\n 'lex:app.bsky.feed.defs#blockedPost',\n ],\n },\n },\n },\n },\n errors: [\n {\n name: 'NotFound',\n },\n ],\n },\n },\n },\n AppBskyFeedGetPosts: {\n lexicon: 1,\n id: 'app.bsky.feed.getPosts',\n defs: {\n main: {\n type: 'query',\n description: \"A view of an actor's feed.\",\n parameters: {\n type: 'params',\n required: ['uris'],\n properties: {\n uris: {\n type: 'array',\n items: {\n type: 'string',\n format: 'at-uri',\n },\n maxLength: 25,\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['posts'],\n properties: {\n posts: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.feed.defs#postView',\n },\n },\n },\n },\n },\n },\n },\n },\n AppBskyFeedGetRepostedBy: {\n lexicon: 1,\n id: 'app.bsky.feed.getRepostedBy',\n defs: {\n main: {\n type: 'query',\n parameters: {\n type: 'params',\n required: ['uri'],\n properties: {\n uri: {\n type: 'string',\n format: 'at-uri',\n },\n cid: {\n type: 'string',\n format: 'cid',\n },\n limit: {\n type: 'integer',\n minimum: 1,\n maximum: 100,\n default: 50,\n },\n cursor: {\n type: 'string',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['uri', 'repostedBy'],\n properties: {\n uri: {\n type: 'string',\n format: 'at-uri',\n },\n cid: {\n type: 'string',\n format: 'cid',\n },\n cursor: {\n type: 'string',\n },\n repostedBy: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.defs#profileView',\n },\n },\n },\n },\n },\n },\n },\n },\n AppBskyFeedGetTimeline: {\n lexicon: 1,\n id: 'app.bsky.feed.getTimeline',\n defs: {\n main: {\n type: 'query',\n description: \"A view of the user's home timeline.\",\n parameters: {\n type: 'params',\n properties: {\n algorithm: {\n type: 'string',\n },\n limit: {\n type: 'integer',\n minimum: 1,\n maximum: 100,\n default: 50,\n },\n cursor: {\n type: 'string',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['feed'],\n properties: {\n cursor: {\n type: 'string',\n },\n feed: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.feed.defs#feedViewPost',\n },\n },\n },\n },\n },\n },\n },\n },\n AppBskyFeedLike: {\n lexicon: 1,\n id: 'app.bsky.feed.like',\n defs: {\n main: {\n type: 'record',\n key: 'tid',\n record: {\n type: 'object',\n required: ['subject', 'createdAt'],\n properties: {\n subject: {\n type: 'ref',\n ref: 'lex:com.atproto.repo.strongRef',\n },\n createdAt: {\n type: 'string',\n format: 'datetime',\n },\n },\n },\n },\n },\n },\n AppBskyFeedPost: {\n lexicon: 1,\n id: 'app.bsky.feed.post',\n defs: {\n main: {\n type: 'record',\n key: 'tid',\n record: {\n type: 'object',\n required: ['text', 'createdAt'],\n properties: {\n text: {\n type: 'string',\n maxLength: 3000,\n maxGraphemes: 300,\n },\n entities: {\n type: 'array',\n description: 'Deprecated: replaced by app.bsky.richtext.facet.',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.feed.post#entity',\n },\n },\n facets: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.richtext.facet',\n },\n },\n reply: {\n type: 'ref',\n ref: 'lex:app.bsky.feed.post#replyRef',\n },\n embed: {\n type: 'union',\n refs: [\n 'lex:app.bsky.embed.images',\n 'lex:app.bsky.embed.external',\n 'lex:app.bsky.embed.record',\n 'lex:app.bsky.embed.recordWithMedia',\n ],\n },\n createdAt: {\n type: 'string',\n format: 'datetime',\n },\n },\n },\n },\n replyRef: {\n type: 'object',\n required: ['root', 'parent'],\n properties: {\n root: {\n type: 'ref',\n ref: 'lex:com.atproto.repo.strongRef',\n },\n parent: {\n type: 'ref',\n ref: 'lex:com.atproto.repo.strongRef',\n },\n },\n },\n entity: {\n type: 'object',\n description: 'Deprecated: use facets instead.',\n required: ['index', 'type', 'value'],\n properties: {\n index: {\n type: 'ref',\n ref: 'lex:app.bsky.feed.post#textSlice',\n },\n type: {\n type: 'string',\n description: \"Expected values are 'mention' and 'link'.\",\n },\n value: {\n type: 'string',\n },\n },\n },\n textSlice: {\n type: 'object',\n description:\n 'Deprecated. Use app.bsky.richtext instead -- A text segment. Start is inclusive, end is exclusive. Indices are for utf16-encoded strings.',\n required: ['start', 'end'],\n properties: {\n start: {\n type: 'integer',\n minimum: 0,\n },\n end: {\n type: 'integer',\n minimum: 0,\n },\n },\n },\n },\n },\n AppBskyFeedRepost: {\n lexicon: 1,\n id: 'app.bsky.feed.repost',\n defs: {\n main: {\n type: 'record',\n key: 'tid',\n record: {\n type: 'object',\n required: ['subject', 'createdAt'],\n properties: {\n subject: {\n type: 'ref',\n ref: 'lex:com.atproto.repo.strongRef',\n },\n createdAt: {\n type: 'string',\n format: 'datetime',\n },\n },\n },\n },\n },\n },\n AppBskyGraphBlock: {\n lexicon: 1,\n id: 'app.bsky.graph.block',\n defs: {\n main: {\n type: 'record',\n description: 'A block.',\n key: 'tid',\n record: {\n type: 'object',\n required: ['subject', 'createdAt'],\n properties: {\n subject: {\n type: 'string',\n format: 'did',\n },\n createdAt: {\n type: 'string',\n format: 'datetime',\n },\n },\n },\n },\n },\n },\n AppBskyGraphFollow: {\n lexicon: 1,\n id: 'app.bsky.graph.follow',\n defs: {\n main: {\n type: 'record',\n description: 'A social follow.',\n key: 'tid',\n record: {\n type: 'object',\n required: ['subject', 'createdAt'],\n properties: {\n subject: {\n type: 'string',\n format: 'did',\n },\n createdAt: {\n type: 'string',\n format: 'datetime',\n },\n },\n },\n },\n },\n },\n AppBskyGraphGetBlocks: {\n lexicon: 1,\n id: 'app.bsky.graph.getBlocks',\n defs: {\n main: {\n type: 'query',\n description: \"Who is the requester's account blocking?\",\n parameters: {\n type: 'params',\n properties: {\n limit: {\n type: 'integer',\n minimum: 1,\n maximum: 100,\n default: 50,\n },\n cursor: {\n type: 'string',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['blocks'],\n properties: {\n cursor: {\n type: 'string',\n },\n blocks: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.defs#profileView',\n },\n },\n },\n },\n },\n },\n },\n },\n AppBskyGraphGetFollowers: {\n lexicon: 1,\n id: 'app.bsky.graph.getFollowers',\n defs: {\n main: {\n type: 'query',\n description: 'Who is following an actor?',\n parameters: {\n type: 'params',\n required: ['actor'],\n properties: {\n actor: {\n type: 'string',\n format: 'at-identifier',\n },\n limit: {\n type: 'integer',\n minimum: 1,\n maximum: 100,\n default: 50,\n },\n cursor: {\n type: 'string',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['subject', 'followers'],\n properties: {\n subject: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.defs#profileView',\n },\n cursor: {\n type: 'string',\n },\n followers: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.defs#profileView',\n },\n },\n },\n },\n },\n },\n },\n },\n AppBskyGraphGetFollows: {\n lexicon: 1,\n id: 'app.bsky.graph.getFollows',\n defs: {\n main: {\n type: 'query',\n description: 'Who is an actor following?',\n parameters: {\n type: 'params',\n required: ['actor'],\n properties: {\n actor: {\n type: 'string',\n format: 'at-identifier',\n },\n limit: {\n type: 'integer',\n minimum: 1,\n maximum: 100,\n default: 50,\n },\n cursor: {\n type: 'string',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['subject', 'follows'],\n properties: {\n subject: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.defs#profileView',\n },\n cursor: {\n type: 'string',\n },\n follows: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.defs#profileView',\n },\n },\n },\n },\n },\n },\n },\n },\n AppBskyGraphGetMutes: {\n lexicon: 1,\n id: 'app.bsky.graph.getMutes',\n defs: {\n main: {\n type: 'query',\n description: 'Who does the viewer mute?',\n parameters: {\n type: 'params',\n properties: {\n limit: {\n type: 'integer',\n minimum: 1,\n maximum: 100,\n default: 50,\n },\n cursor: {\n type: 'string',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['mutes'],\n properties: {\n cursor: {\n type: 'string',\n },\n mutes: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.defs#profileView',\n },\n },\n },\n },\n },\n },\n },\n },\n AppBskyGraphMuteActor: {\n lexicon: 1,\n id: 'app.bsky.graph.muteActor',\n defs: {\n main: {\n type: 'procedure',\n description: 'Mute an actor by did or handle.',\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['actor'],\n properties: {\n actor: {\n type: 'string',\n format: 'at-identifier',\n },\n },\n },\n },\n },\n },\n },\n AppBskyGraphUnmuteActor: {\n lexicon: 1,\n id: 'app.bsky.graph.unmuteActor',\n defs: {\n main: {\n type: 'procedure',\n description: 'Unmute an actor by did or handle.',\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['actor'],\n properties: {\n actor: {\n type: 'string',\n format: 'at-identifier',\n },\n },\n },\n },\n },\n },\n },\n AppBskyNotificationGetUnreadCount: {\n lexicon: 1,\n id: 'app.bsky.notification.getUnreadCount',\n defs: {\n main: {\n type: 'query',\n parameters: {\n type: 'params',\n properties: {\n seenAt: {\n type: 'string',\n format: 'datetime',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['count'],\n properties: {\n count: {\n type: 'integer',\n },\n },\n },\n },\n },\n },\n },\n AppBskyNotificationListNotifications: {\n lexicon: 1,\n id: 'app.bsky.notification.listNotifications',\n defs: {\n main: {\n type: 'query',\n parameters: {\n type: 'params',\n properties: {\n limit: {\n type: 'integer',\n minimum: 1,\n maximum: 100,\n default: 50,\n },\n cursor: {\n type: 'string',\n },\n seenAt: {\n type: 'string',\n format: 'datetime',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['notifications'],\n properties: {\n cursor: {\n type: 'string',\n },\n notifications: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.notification.listNotifications#notification',\n },\n },\n },\n },\n },\n },\n notification: {\n type: 'object',\n required: [\n 'uri',\n 'cid',\n 'author',\n 'reason',\n 'record',\n 'isRead',\n 'indexedAt',\n ],\n properties: {\n uri: {\n type: 'string',\n format: 'at-uri',\n },\n cid: {\n type: 'string',\n format: 'cid',\n },\n author: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.defs#profileView',\n },\n reason: {\n type: 'string',\n description:\n \"Expected values are 'like', 'repost', 'follow', 'mention', 'reply', and 'quote'.\",\n knownValues: [\n 'like',\n 'repost',\n 'follow',\n 'mention',\n 'reply',\n 'quote',\n ],\n },\n reasonSubject: {\n type: 'string',\n format: 'at-uri',\n },\n record: {\n type: 'unknown',\n },\n isRead: {\n type: 'boolean',\n },\n indexedAt: {\n type: 'string',\n format: 'datetime',\n },\n labels: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:com.atproto.label.defs#label',\n },\n },\n },\n },\n },\n },\n AppBskyNotificationUpdateSeen: {\n lexicon: 1,\n id: 'app.bsky.notification.updateSeen',\n defs: {\n main: {\n type: 'procedure',\n description: 'Notify server that the user has seen notifications.',\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['seenAt'],\n properties: {\n seenAt: {\n type: 'string',\n format: 'datetime',\n },\n },\n },\n },\n },\n },\n },\n AppBskyRichtextFacet: {\n lexicon: 1,\n id: 'app.bsky.richtext.facet',\n defs: {\n main: {\n type: 'object',\n required: ['index', 'features'],\n properties: {\n index: {\n type: 'ref',\n ref: 'lex:app.bsky.richtext.facet#byteSlice',\n },\n features: {\n type: 'array',\n items: {\n type: 'union',\n refs: [\n 'lex:app.bsky.richtext.facet#mention',\n 'lex:app.bsky.richtext.facet#link',\n ],\n },\n },\n },\n },\n mention: {\n type: 'object',\n description: 'A facet feature for actor mentions.',\n required: ['did'],\n properties: {\n did: {\n type: 'string',\n format: 'did',\n },\n },\n },\n link: {\n type: 'object',\n description: 'A facet feature for links.',\n required: ['uri'],\n properties: {\n uri: {\n type: 'string',\n format: 'uri',\n },\n },\n },\n byteSlice: {\n type: 'object',\n description:\n 'A text segment. Start is inclusive, end is exclusive. Indices are for utf8-encoded strings.',\n required: ['byteStart', 'byteEnd'],\n properties: {\n byteStart: {\n type: 'integer',\n minimum: 0,\n },\n byteEnd: {\n type: 'integer',\n minimum: 0,\n },\n },\n },\n },\n },\n AppBskyUnspeccedGetPopular: {\n lexicon: 1,\n id: 'app.bsky.unspecced.getPopular',\n defs: {\n main: {\n type: 'query',\n description: 'An unspecced view of globally popular items',\n parameters: {\n type: 'params',\n properties: {\n includeNsfw: {\n type: 'boolean',\n default: false,\n },\n limit: {\n type: 'integer',\n minimum: 1,\n maximum: 100,\n default: 50,\n },\n cursor: {\n type: 'string',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['feed'],\n properties: {\n cursor: {\n type: 'string',\n },\n feed: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.feed.defs#feedViewPost',\n },\n },\n },\n },\n },\n },\n },\n },\n}\nexport const schemas: LexiconDoc[] = Object.values(schemaDict) as LexiconDoc[]\nexport const lexicons: Lexicons = new Lexicons(schemas)\nexport const ids = {\n ComAtprotoAdminDefs: 'com.atproto.admin.defs',\n ComAtprotoAdminDisableAccountInvites:\n 'com.atproto.admin.disableAccountInvites',\n ComAtprotoAdminDisableInviteCodes: 'com.atproto.admin.disableInviteCodes',\n ComAtprotoAdminEnableAccountInvites: 'com.atproto.admin.enableAccountInvites',\n ComAtprotoAdminGetInviteCodes: 'com.atproto.admin.getInviteCodes',\n ComAtprotoAdminGetModerationAction: 'com.atproto.admin.getModerationAction',\n ComAtprotoAdminGetModerationActions: 'com.atproto.admin.getModerationActions',\n ComAtprotoAdminGetModerationReport: 'com.atproto.admin.getModerationReport',\n ComAtprotoAdminGetModerationReports: 'com.atproto.admin.getModerationReports',\n ComAtprotoAdminGetRecord: 'com.atproto.admin.getRecord',\n ComAtprotoAdminGetRepo: 'com.atproto.admin.getRepo',\n ComAtprotoAdminResolveModerationReports:\n 'com.atproto.admin.resolveModerationReports',\n ComAtprotoAdminReverseModerationAction:\n 'com.atproto.admin.reverseModerationAction',\n ComAtprotoAdminSearchRepos: 'com.atproto.admin.searchRepos',\n ComAtprotoAdminTakeModerationAction: 'com.atproto.admin.takeModerationAction',\n ComAtprotoAdminUpdateAccountEmail: 'com.atproto.admin.updateAccountEmail',\n ComAtprotoAdminUpdateAccountHandle: 'com.atproto.admin.updateAccountHandle',\n ComAtprotoIdentityResolveHandle: 'com.atproto.identity.resolveHandle',\n ComAtprotoIdentityUpdateHandle: 'com.atproto.identity.updateHandle',\n ComAtprotoLabelDefs: 'com.atproto.label.defs',\n ComAtprotoLabelQueryLabels: 'com.atproto.label.queryLabels',\n ComAtprotoLabelSubscribeLabels: 'com.atproto.label.subscribeLabels',\n ComAtprotoModerationCreateReport: 'com.atproto.moderation.createReport',\n ComAtprotoModerationDefs: 'com.atproto.moderation.defs',\n ComAtprotoRepoApplyWrites: 'com.atproto.repo.applyWrites',\n ComAtprotoRepoCreateRecord: 'com.atproto.repo.createRecord',\n ComAtprotoRepoDeleteRecord: 'com.atproto.repo.deleteRecord',\n ComAtprotoRepoDescribeRepo: 'com.atproto.repo.describeRepo',\n ComAtprotoRepoGetRecord: 'com.atproto.repo.getRecord',\n ComAtprotoRepoListRecords: 'com.atproto.repo.listRecords',\n ComAtprotoRepoPutRecord: 'com.atproto.repo.putRecord',\n ComAtprotoRepoRebaseRepo: 'com.atproto.repo.rebaseRepo',\n ComAtprotoRepoStrongRef: 'com.atproto.repo.strongRef',\n ComAtprotoRepoUploadBlob: 'com.atproto.repo.uploadBlob',\n ComAtprotoServerCreateAccount: 'com.atproto.server.createAccount',\n ComAtprotoServerCreateAppPassword: 'com.atproto.server.createAppPassword',\n ComAtprotoServerCreateInviteCode: 'com.atproto.server.createInviteCode',\n ComAtprotoServerCreateInviteCodes: 'com.atproto.server.createInviteCodes',\n ComAtprotoServerCreateSession: 'com.atproto.server.createSession',\n ComAtprotoServerDefs: 'com.atproto.server.defs',\n ComAtprotoServerDeleteAccount: 'com.atproto.server.deleteAccount',\n ComAtprotoServerDeleteSession: 'com.atproto.server.deleteSession',\n ComAtprotoServerDescribeServer: 'com.atproto.server.describeServer',\n ComAtprotoServerGetAccountInviteCodes:\n 'com.atproto.server.getAccountInviteCodes',\n ComAtprotoServerGetSession: 'com.atproto.server.getSession',\n ComAtprotoServerListAppPasswords: 'com.atproto.server.listAppPasswords',\n ComAtprotoServerRefreshSession: 'com.atproto.server.refreshSession',\n ComAtprotoServerRequestAccountDelete:\n 'com.atproto.server.requestAccountDelete',\n ComAtprotoServerRequestPasswordReset:\n 'com.atproto.server.requestPasswordReset',\n ComAtprotoServerResetPassword: 'com.atproto.server.resetPassword',\n ComAtprotoServerRevokeAppPassword: 'com.atproto.server.revokeAppPassword',\n ComAtprotoSyncGetBlob: 'com.atproto.sync.getBlob',\n ComAtprotoSyncGetBlocks: 'com.atproto.sync.getBlocks',\n ComAtprotoSyncGetCheckout: 'com.atproto.sync.getCheckout',\n ComAtprotoSyncGetCommitPath: 'com.atproto.sync.getCommitPath',\n ComAtprotoSyncGetHead: 'com.atproto.sync.getHead',\n ComAtprotoSyncGetRecord: 'com.atproto.sync.getRecord',\n ComAtprotoSyncGetRepo: 'com.atproto.sync.getRepo',\n ComAtprotoSyncListBlobs: 'com.atproto.sync.listBlobs',\n ComAtprotoSyncListRepos: 'com.atproto.sync.listRepos',\n ComAtprotoSyncNotifyOfUpdate: 'com.atproto.sync.notifyOfUpdate',\n ComAtprotoSyncRequestCrawl: 'com.atproto.sync.requestCrawl',\n ComAtprotoSyncSubscribeRepos: 'com.atproto.sync.subscribeRepos',\n AppBskyActorDefs: 'app.bsky.actor.defs',\n AppBskyActorGetProfile: 'app.bsky.actor.getProfile',\n AppBskyActorGetProfiles: 'app.bsky.actor.getProfiles',\n AppBskyActorGetSuggestions: 'app.bsky.actor.getSuggestions',\n AppBskyActorProfile: 'app.bsky.actor.profile',\n AppBskyActorSearchActors: 'app.bsky.actor.searchActors',\n AppBskyActorSearchActorsTypeahead: 'app.bsky.actor.searchActorsTypeahead',\n AppBskyEmbedExternal: 'app.bsky.embed.external',\n AppBskyEmbedImages: 'app.bsky.embed.images',\n AppBskyEmbedRecord: 'app.bsky.embed.record',\n AppBskyEmbedRecordWithMedia: 'app.bsky.embed.recordWithMedia',\n AppBskyFeedDefs: 'app.bsky.feed.defs',\n AppBskyFeedGetAuthorFeed: 'app.bsky.feed.getAuthorFeed',\n AppBskyFeedGetLikes: 'app.bsky.feed.getLikes',\n AppBskyFeedGetPostThread: 'app.bsky.feed.getPostThread',\n AppBskyFeedGetPosts: 'app.bsky.feed.getPosts',\n AppBskyFeedGetRepostedBy: 'app.bsky.feed.getRepostedBy',\n AppBskyFeedGetTimeline: 'app.bsky.feed.getTimeline',\n AppBskyFeedLike: 'app.bsky.feed.like',\n AppBskyFeedPost: 'app.bsky.feed.post',\n AppBskyFeedRepost: 'app.bsky.feed.repost',\n AppBskyGraphBlock: 'app.bsky.graph.block',\n AppBskyGraphFollow: 'app.bsky.graph.follow',\n AppBskyGraphGetBlocks: 'app.bsky.graph.getBlocks',\n AppBskyGraphGetFollowers: 'app.bsky.graph.getFollowers',\n AppBskyGraphGetFollows: 'app.bsky.graph.getFollows',\n AppBskyGraphGetMutes: 'app.bsky.graph.getMutes',\n AppBskyGraphMuteActor: 'app.bsky.graph.muteActor',\n AppBskyGraphUnmuteActor: 'app.bsky.graph.unmuteActor',\n AppBskyNotificationGetUnreadCount: 'app.bsky.notification.getUnreadCount',\n AppBskyNotificationListNotifications:\n 'app.bsky.notification.listNotifications',\n AppBskyNotificationUpdateSeen: 'app.bsky.notification.updateSeen',\n AppBskyRichtextFacet: 'app.bsky.richtext.facet',\n AppBskyUnspeccedGetPopular: 'app.bsky.unspecced.getPopular',\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n account: string\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: 'application/json'\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n codes?: string[]\n accounts?: string[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: 'application/json'\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n account: string\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: 'application/json'\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as ComAtprotoServerDefs from '../server/defs'\n\nexport interface QueryParams {\n sort?: 'recent' | 'usage' | (string & {})\n limit?: number\n cursor?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n cursor?: string\n codes: ComAtprotoServerDefs.InviteCode[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as ComAtprotoAdminDefs from './defs'\n\nexport interface QueryParams {\n id: number\n}\n\nexport type InputSchema = undefined\nexport type OutputSchema = ComAtprotoAdminDefs.ActionViewDetail\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as ComAtprotoAdminDefs from './defs'\n\nexport interface QueryParams {\n subject?: string\n limit?: number\n cursor?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n cursor?: string\n actions: ComAtprotoAdminDefs.ActionView[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as ComAtprotoAdminDefs from './defs'\n\nexport interface QueryParams {\n id: number\n}\n\nexport type InputSchema = undefined\nexport type OutputSchema = ComAtprotoAdminDefs.ReportViewDetail\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as ComAtprotoAdminDefs from './defs'\n\nexport interface QueryParams {\n subject?: string\n resolved?: boolean\n limit?: number\n cursor?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n cursor?: string\n reports: ComAtprotoAdminDefs.ReportView[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as ComAtprotoAdminDefs from './defs'\n\nexport interface QueryParams {\n uri: string\n cid?: string\n}\n\nexport type InputSchema = undefined\nexport type OutputSchema = ComAtprotoAdminDefs.RecordViewDetail\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as ComAtprotoAdminDefs from './defs'\n\nexport interface QueryParams {\n did: string\n}\n\nexport type InputSchema = undefined\nexport type OutputSchema = ComAtprotoAdminDefs.RepoViewDetail\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as ComAtprotoAdminDefs from './defs'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n actionId: number\n reportIds: number[]\n createdBy: string\n [k: string]: unknown\n}\n\nexport type OutputSchema = ComAtprotoAdminDefs.ActionView\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: 'application/json'\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as ComAtprotoAdminDefs from './defs'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n id: number\n reason: string\n createdBy: string\n [k: string]: unknown\n}\n\nexport type OutputSchema = ComAtprotoAdminDefs.ActionView\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: 'application/json'\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as ComAtprotoAdminDefs from './defs'\n\nexport interface QueryParams {\n term?: string\n invitedBy?: string\n limit?: number\n cursor?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n cursor?: string\n repos: ComAtprotoAdminDefs.RepoView[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as ComAtprotoAdminDefs from './defs'\nimport * as ComAtprotoRepoStrongRef from '../repo/strongRef'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n action:\n | 'com.atproto.admin.defs#takedown'\n | 'com.atproto.admin.defs#flag'\n | 'com.atproto.admin.defs#acknowledge'\n | (string & {})\n subject:\n | ComAtprotoAdminDefs.RepoRef\n | ComAtprotoRepoStrongRef.Main\n | { $type: string; [k: string]: unknown }\n subjectBlobCids?: string[]\n createLabelVals?: string[]\n negateLabelVals?: string[]\n reason: string\n createdBy: string\n [k: string]: unknown\n}\n\nexport type OutputSchema = ComAtprotoAdminDefs.ActionView\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: 'application/json'\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport class SubjectHasActionError extends XRPCError {\n constructor(src: XRPCError) {\n super(src.status, src.error, src.message)\n }\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n if (e.error === 'SubjectHasAction') return new SubjectHasActionError(e)\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n /** The handle or DID of the repo. */\n account: string\n email: string\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: 'application/json'\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n did: string\n handle: string\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: 'application/json'\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {\n /** The handle to resolve. If not supplied, will resolve the host's own handle. */\n handle?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n did: string\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n handle: string\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: 'application/json'\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as ComAtprotoLabelDefs from './defs'\n\nexport interface QueryParams {\n /** List of AT URI patterns to match (boolean 'OR'). Each may be a prefix (ending with '*'; will match inclusive of the string leading to '*'), or a full URI */\n uriPatterns: string[]\n /** Optional list of label sources (DIDs) to filter on */\n sources?: string[]\n limit?: number\n cursor?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n cursor?: string\n labels: ComAtprotoLabelDefs.Label[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as ComAtprotoModerationDefs from './defs'\nimport * as ComAtprotoAdminDefs from '../admin/defs'\nimport * as ComAtprotoRepoStrongRef from '../repo/strongRef'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n reasonType: ComAtprotoModerationDefs.ReasonType\n reason?: string\n subject:\n | ComAtprotoAdminDefs.RepoRef\n | ComAtprotoRepoStrongRef.Main\n | { $type: string; [k: string]: unknown }\n [k: string]: unknown\n}\n\nexport interface OutputSchema {\n id: number\n reasonType: ComAtprotoModerationDefs.ReasonType\n reason?: string\n subject:\n | ComAtprotoAdminDefs.RepoRef\n | ComAtprotoRepoStrongRef.Main\n | { $type: string; [k: string]: unknown }\n reportedBy: string\n createdAt: string\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: 'application/json'\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n /** The handle or DID of the repo. */\n repo: string\n /** Validate the records? */\n validate?: boolean\n writes: (Create | Update | Delete)[]\n swapCommit?: string\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: 'application/json'\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n}\n\nexport class InvalidSwapError extends XRPCError {\n constructor(src: XRPCError) {\n super(src.status, src.error, src.message)\n }\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n if (e.error === 'InvalidSwap') return new InvalidSwapError(e)\n }\n return e\n}\n\n/** Create a new record. */\nexport interface Create {\n collection: string\n rkey?: string\n value: {}\n [k: string]: unknown\n}\n\nexport function isCreate(v: unknown): v is Create {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.repo.applyWrites#create'\n )\n}\n\nexport function validateCreate(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.repo.applyWrites#create', v)\n}\n\n/** Update an existing record. */\nexport interface Update {\n collection: string\n rkey: string\n value: {}\n [k: string]: unknown\n}\n\nexport function isUpdate(v: unknown): v is Update {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.repo.applyWrites#update'\n )\n}\n\nexport function validateUpdate(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.repo.applyWrites#update', v)\n}\n\n/** Delete an existing record. */\nexport interface Delete {\n collection: string\n rkey: string\n [k: string]: unknown\n}\n\nexport function isDelete(v: unknown): v is Delete {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.repo.applyWrites#delete'\n )\n}\n\nexport function validateDelete(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.repo.applyWrites#delete', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nexport function isObj(v: unknown): v is Record<string, unknown> {\n return typeof v === 'object' && v !== null\n}\n\nexport function hasProp<K extends PropertyKey>(\n data: object,\n prop: K,\n): data is Record<K, unknown> {\n return prop in data\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n /** The handle or DID of the repo. */\n repo: string\n /** The NSID of the record collection. */\n collection: string\n /** The key of the record. */\n rkey?: string\n /** Validate the record? */\n validate?: boolean\n /** The record to create. */\n record: {}\n /** Compare and swap with the previous commit by cid. */\n swapCommit?: string\n [k: string]: unknown\n}\n\nexport interface OutputSchema {\n uri: string\n cid: string\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: 'application/json'\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport class InvalidSwapError extends XRPCError {\n constructor(src: XRPCError) {\n super(src.status, src.error, src.message)\n }\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n if (e.error === 'InvalidSwap') return new InvalidSwapError(e)\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n /** The handle or DID of the repo. */\n repo: string\n /** The NSID of the record collection. */\n collection: string\n /** The key of the record. */\n rkey: string\n /** Compare and swap with the previous record by cid. */\n swapRecord?: string\n /** Compare and swap with the previous commit by cid. */\n swapCommit?: string\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: 'application/json'\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n}\n\nexport class InvalidSwapError extends XRPCError {\n constructor(src: XRPCError) {\n super(src.status, src.error, src.message)\n }\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n if (e.error === 'InvalidSwap') return new InvalidSwapError(e)\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {\n /** The handle or DID of the repo. */\n repo: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n handle: string\n did: string\n didDoc: {}\n collections: string[]\n handleIsCorrect: boolean\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {\n /** The handle or DID of the repo. */\n repo: string\n /** The NSID of the record collection. */\n collection: string\n /** The key of the record. */\n rkey: string\n /** The CID of the version of the record. If not specified, then return the most recent version. */\n cid?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n uri: string\n cid?: string\n value: {}\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {\n /** The handle or DID of the repo. */\n repo: string\n /** The NSID of the record type. */\n collection: string\n /** The number of records to return. */\n limit?: number\n cursor?: string\n /** DEPRECATED: The lowest sort-ordered rkey to start from (exclusive) */\n rkeyStart?: string\n /** DEPRECATED: The highest sort-ordered rkey to stop at (exclusive) */\n rkeyEnd?: string\n /** Reverse the order of the returned records? */\n reverse?: boolean\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n cursor?: string\n records: Record[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n\nexport interface Record {\n uri: string\n cid: string\n value: {}\n [k: string]: unknown\n}\n\nexport function isRecord(v: unknown): v is Record {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.repo.listRecords#record'\n )\n}\n\nexport function validateRecord(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.repo.listRecords#record', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n /** The handle or DID of the repo. */\n repo: string\n /** The NSID of the record collection. */\n collection: string\n /** The key of the record. */\n rkey: string\n /** Validate the record? */\n validate?: boolean\n /** The record to write. */\n record: {}\n /** Compare and swap with the previous record by cid. */\n swapRecord?: string | null\n /** Compare and swap with the previous commit by cid. */\n swapCommit?: string\n [k: string]: unknown\n}\n\nexport interface OutputSchema {\n uri: string\n cid: string\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: 'application/json'\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport class InvalidSwapError extends XRPCError {\n constructor(src: XRPCError) {\n super(src.status, src.error, src.message)\n }\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n if (e.error === 'InvalidSwap') return new InvalidSwapError(e)\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n /** The handle or DID of the repo. */\n repo: string\n /** Compare and swap with the previous commit by cid. */\n swapCommit?: string\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: 'application/json'\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n}\n\nexport class InvalidSwapError extends XRPCError {\n constructor(src: XRPCError) {\n super(src.status, src.error, src.message)\n }\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n if (e.error === 'InvalidSwap') return new InvalidSwapError(e)\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {}\n\nexport type InputSchema = string | Uint8Array\n\nexport interface OutputSchema {\n blob: BlobRef\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: string\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n email: string\n handle: string\n inviteCode?: string\n password: string\n recoveryKey?: string\n [k: string]: unknown\n}\n\nexport interface OutputSchema {\n accessJwt: string\n refreshJwt: string\n handle: string\n did: string\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: 'application/json'\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport class InvalidHandleError extends XRPCError {\n constructor(src: XRPCError) {\n super(src.status, src.error, src.message)\n }\n}\n\nexport class InvalidPasswordError extends XRPCError {\n constructor(src: XRPCError) {\n super(src.status, src.error, src.message)\n }\n}\n\nexport class InvalidInviteCodeError extends XRPCError {\n constructor(src: XRPCError) {\n super(src.status, src.error, src.message)\n }\n}\n\nexport class HandleNotAvailableError extends XRPCError {\n constructor(src: XRPCError) {\n super(src.status, src.error, src.message)\n }\n}\n\nexport class UnsupportedDomainError extends XRPCError {\n constructor(src: XRPCError) {\n super(src.status, src.error, src.message)\n }\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n if (e.error === 'InvalidHandle') return new InvalidHandleError(e)\n if (e.error === 'InvalidPassword') return new InvalidPasswordError(e)\n if (e.error === 'InvalidInviteCode') return new InvalidInviteCodeError(e)\n if (e.error === 'HandleNotAvailable') return new HandleNotAvailableError(e)\n if (e.error === 'UnsupportedDomain') return new UnsupportedDomainError(e)\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n name: string\n [k: string]: unknown\n}\n\nexport type OutputSchema = AppPassword\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: 'application/json'\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport class AccountTakedownError extends XRPCError {\n constructor(src: XRPCError) {\n super(src.status, src.error, src.message)\n }\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n if (e.error === 'AccountTakedown') return new AccountTakedownError(e)\n }\n return e\n}\n\nexport interface AppPassword {\n name: string\n password: string\n createdAt: string\n [k: string]: unknown\n}\n\nexport function isAppPassword(v: unknown): v is AppPassword {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.server.createAppPassword#appPassword'\n )\n}\n\nexport function validateAppPassword(v: unknown): ValidationResult {\n return lexicons.validate(\n 'com.atproto.server.createAppPassword#appPassword',\n v,\n )\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n useCount: number\n forAccount?: string\n [k: string]: unknown\n}\n\nexport interface OutputSchema {\n code: string\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: 'application/json'\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n codeCount: number\n useCount: number\n forAccounts?: string[]\n [k: string]: unknown\n}\n\nexport interface OutputSchema {\n codes: AccountCodes[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: 'application/json'\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n\nexport interface AccountCodes {\n account: string\n codes: string[]\n [k: string]: unknown\n}\n\nexport function isAccountCodes(v: unknown): v is AccountCodes {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.server.createInviteCodes#accountCodes'\n )\n}\n\nexport function validateAccountCodes(v: unknown): ValidationResult {\n return lexicons.validate(\n 'com.atproto.server.createInviteCodes#accountCodes',\n v,\n )\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n /** Handle or other identifier supported by the server for the authenticating user. */\n identifier: string\n password: string\n [k: string]: unknown\n}\n\nexport interface OutputSchema {\n accessJwt: string\n refreshJwt: string\n handle: string\n did: string\n email?: string\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: 'application/json'\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport class AccountTakedownError extends XRPCError {\n constructor(src: XRPCError) {\n super(src.status, src.error, src.message)\n }\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n if (e.error === 'AccountTakedown') return new AccountTakedownError(e)\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n did: string\n password: string\n token: string\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: 'application/json'\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n}\n\nexport class ExpiredTokenError extends XRPCError {\n constructor(src: XRPCError) {\n super(src.status, src.error, src.message)\n }\n}\n\nexport class InvalidTokenError extends XRPCError {\n constructor(src: XRPCError) {\n super(src.status, src.error, src.message)\n }\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n if (e.error === 'ExpiredToken') return new ExpiredTokenError(e)\n if (e.error === 'InvalidToken') return new InvalidTokenError(e)\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {}\n\nexport type InputSchema = undefined\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n inviteCodeRequired?: boolean\n availableUserDomains: string[]\n links?: Links\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n\nexport interface Links {\n privacyPolicy?: string\n termsOfService?: string\n [k: string]: unknown\n}\n\nexport function isLinks(v: unknown): v is Links {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.server.describeServer#links'\n )\n}\n\nexport function validateLinks(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.server.describeServer#links', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as ComAtprotoServerDefs from './defs'\n\nexport interface QueryParams {\n includeUsed?: boolean\n createAvailable?: boolean\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n codes: ComAtprotoServerDefs.InviteCode[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport class DuplicateCreateError extends XRPCError {\n constructor(src: XRPCError) {\n super(src.status, src.error, src.message)\n }\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n if (e.error === 'DuplicateCreate') return new DuplicateCreateError(e)\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n handle: string\n did: string\n email?: string\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n passwords: AppPassword[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport class AccountTakedownError extends XRPCError {\n constructor(src: XRPCError) {\n super(src.status, src.error, src.message)\n }\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n if (e.error === 'AccountTakedown') return new AccountTakedownError(e)\n }\n return e\n}\n\nexport interface AppPassword {\n name: string\n createdAt: string\n [k: string]: unknown\n}\n\nexport function isAppPassword(v: unknown): v is AppPassword {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.server.listAppPasswords#appPassword'\n )\n}\n\nexport function validateAppPassword(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.server.listAppPasswords#appPassword', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n accessJwt: string\n refreshJwt: string\n handle: string\n did: string\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport class AccountTakedownError extends XRPCError {\n constructor(src: XRPCError) {\n super(src.status, src.error, src.message)\n }\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n if (e.error === 'AccountTakedown') return new AccountTakedownError(e)\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {}\n\nexport type InputSchema = undefined\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n email: string\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: 'application/json'\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n token: string\n password: string\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: 'application/json'\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n}\n\nexport class ExpiredTokenError extends XRPCError {\n constructor(src: XRPCError) {\n super(src.status, src.error, src.message)\n }\n}\n\nexport class InvalidTokenError extends XRPCError {\n constructor(src: XRPCError) {\n super(src.status, src.error, src.message)\n }\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n if (e.error === 'ExpiredToken') return new ExpiredTokenError(e)\n if (e.error === 'InvalidToken') return new InvalidTokenError(e)\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n name: string\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: 'application/json'\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {\n /** The DID of the repo. */\n did: string\n /** The CID of the blob to fetch */\n cid: string\n}\n\nexport type InputSchema = undefined\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: Uint8Array\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {\n /** The DID of the repo. */\n did: string\n cids: string[]\n}\n\nexport type InputSchema = undefined\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: Uint8Array\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {\n /** The DID of the repo. */\n did: string\n /** The commit to get the checkout from. Defaults to current HEAD. */\n commit?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: Uint8Array\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {\n /** The DID of the repo. */\n did: string\n /** The most recent commit */\n latest?: string\n /** The earliest commit to start from */\n earliest?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n commits: string[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {\n /** The DID of the repo. */\n did: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n root: string\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {\n /** The DID of the repo. */\n did: string\n collection: string\n rkey: string\n /** An optional past commit CID. */\n commit?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: Uint8Array\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {\n /** The DID of the repo. */\n did: string\n /** The earliest commit in the commit range (not inclusive) */\n earliest?: string\n /** The latest commit in the commit range (inclusive) */\n latest?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: Uint8Array\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {\n /** The DID of the repo. */\n did: string\n /** The most recent commit */\n latest?: string\n /** The earliest commit to start from */\n earliest?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n cids: string[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {\n limit?: number\n cursor?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n cursor?: string\n repos: Repo[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n\nexport interface Repo {\n did: string\n head: string\n [k: string]: unknown\n}\n\nexport function isRepo(v: unknown): v is Repo {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.sync.listRepos#repo'\n )\n}\n\nexport function validateRepo(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.sync.listRepos#repo', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {\n /** Hostname of the service that is notifying of update. */\n hostname: string\n}\n\nexport type InputSchema = undefined\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {\n /** Hostname of the service that is requesting to be crawled. */\n hostname: string\n}\n\nexport type InputSchema = undefined\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as AppBskyActorDefs from './defs'\n\nexport interface QueryParams {\n actor: string\n}\n\nexport type InputSchema = undefined\nexport type OutputSchema = AppBskyActorDefs.ProfileViewDetailed\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as AppBskyActorDefs from './defs'\n\nexport interface QueryParams {\n actors: string[]\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n profiles: AppBskyActorDefs.ProfileViewDetailed[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as AppBskyActorDefs from './defs'\n\nexport interface QueryParams {\n limit?: number\n cursor?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n cursor?: string\n actors: AppBskyActorDefs.ProfileView[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as AppBskyActorDefs from './defs'\n\nexport interface QueryParams {\n term?: string\n limit?: number\n cursor?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n cursor?: string\n actors: AppBskyActorDefs.ProfileView[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as AppBskyActorDefs from './defs'\n\nexport interface QueryParams {\n term?: string\n limit?: number\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n actors: AppBskyActorDefs.ProfileViewBasic[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as AppBskyFeedDefs from './defs'\n\nexport interface QueryParams {\n actor: string\n limit?: number\n cursor?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n cursor?: string\n feed: AppBskyFeedDefs.FeedViewPost[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport class BlockedActorError extends XRPCError {\n constructor(src: XRPCError) {\n super(src.status, src.error, src.message)\n }\n}\n\nexport class BlockedByActorError extends XRPCError {\n constructor(src: XRPCError) {\n super(src.status, src.error, src.message)\n }\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n if (e.error === 'BlockedActor') return new BlockedActorError(e)\n if (e.error === 'BlockedByActor') return new BlockedByActorError(e)\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as AppBskyActorDefs from '../actor/defs'\n\nexport interface QueryParams {\n uri: string\n cid?: string\n limit?: number\n cursor?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n uri: string\n cid?: string\n cursor?: string\n likes: Like[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n\nexport interface Like {\n indexedAt: string\n createdAt: string\n actor: AppBskyActorDefs.ProfileView\n [k: string]: unknown\n}\n\nexport function isLike(v: unknown): v is Like {\n return (\n isObj(v) && hasProp(v, '$type') && v.$type === 'app.bsky.feed.getLikes#like'\n )\n}\n\nexport function validateLike(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.feed.getLikes#like', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as AppBskyFeedDefs from './defs'\n\nexport interface QueryParams {\n uri: string\n depth?: number\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n thread:\n | AppBskyFeedDefs.ThreadViewPost\n | AppBskyFeedDefs.NotFoundPost\n | AppBskyFeedDefs.BlockedPost\n | { $type: string; [k: string]: unknown }\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport class NotFoundError extends XRPCError {\n constructor(src: XRPCError) {\n super(src.status, src.error, src.message)\n }\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n if (e.error === 'NotFound') return new NotFoundError(e)\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as AppBskyFeedDefs from './defs'\n\nexport interface QueryParams {\n uris: string[]\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n posts: AppBskyFeedDefs.PostView[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as AppBskyActorDefs from '../actor/defs'\n\nexport interface QueryParams {\n uri: string\n cid?: string\n limit?: number\n cursor?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n uri: string\n cid?: string\n cursor?: string\n repostedBy: AppBskyActorDefs.ProfileView[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as AppBskyFeedDefs from './defs'\n\nexport interface QueryParams {\n algorithm?: string\n limit?: number\n cursor?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n cursor?: string\n feed: AppBskyFeedDefs.FeedViewPost[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as AppBskyActorDefs from '../actor/defs'\n\nexport interface QueryParams {\n limit?: number\n cursor?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n cursor?: string\n blocks: AppBskyActorDefs.ProfileView[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as AppBskyActorDefs from '../actor/defs'\n\nexport interface QueryParams {\n actor: string\n limit?: number\n cursor?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n subject: AppBskyActorDefs.ProfileView\n cursor?: string\n followers: AppBskyActorDefs.ProfileView[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as AppBskyActorDefs from '../actor/defs'\n\nexport interface QueryParams {\n actor: string\n limit?: number\n cursor?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n subject: AppBskyActorDefs.ProfileView\n cursor?: string\n follows: AppBskyActorDefs.ProfileView[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as AppBskyActorDefs from '../actor/defs'\n\nexport interface QueryParams {\n limit?: number\n cursor?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n cursor?: string\n mutes: AppBskyActorDefs.ProfileView[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n actor: string\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: 'application/json'\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n actor: string\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: 'application/json'\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {\n seenAt?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n count: number\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as AppBskyActorDefs from '../actor/defs'\nimport * as ComAtprotoLabelDefs from '../../../com/atproto/label/defs'\n\nexport interface QueryParams {\n limit?: number\n cursor?: string\n seenAt?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n cursor?: string\n notifications: Notification[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n\nexport interface Notification {\n uri: string\n cid: string\n author: AppBskyActorDefs.ProfileView\n /** Expected values are 'like', 'repost', 'follow', 'mention', 'reply', and 'quote'. */\n reason:\n | 'like'\n | 'repost'\n | 'follow'\n | 'mention'\n | 'reply'\n | 'quote'\n | (string & {})\n reasonSubject?: string\n record: {}\n isRead: boolean\n indexedAt: string\n labels?: ComAtprotoLabelDefs.Label[]\n [k: string]: unknown\n}\n\nexport function isNotification(v: unknown): v is Notification {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'app.bsky.notification.listNotifications#notification'\n )\n}\n\nexport function validateNotification(v: unknown): ValidationResult {\n return lexicons.validate(\n 'app.bsky.notification.listNotifications#notification',\n v,\n )\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n seenAt: string\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: 'application/json'\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as AppBskyFeedDefs from '../feed/defs'\n\nexport interface QueryParams {\n includeNsfw?: boolean\n limit?: number\n cursor?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n cursor?: string\n feed: AppBskyFeedDefs.FeedViewPost[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as ComAtprotoRepoStrongRef from '../repo/strongRef'\nimport * as ComAtprotoModerationDefs from '../moderation/defs'\nimport * as ComAtprotoServerDefs from '../server/defs'\nimport * as ComAtprotoLabelDefs from '../label/defs'\n\nexport interface ActionView {\n id: number\n action: ActionType\n subject:\n | RepoRef\n | ComAtprotoRepoStrongRef.Main\n | { $type: string; [k: string]: unknown }\n subjectBlobCids: string[]\n createLabelVals?: string[]\n negateLabelVals?: string[]\n reason: string\n createdBy: string\n createdAt: string\n reversal?: ActionReversal\n resolvedReportIds: number[]\n [k: string]: unknown\n}\n\nexport function isActionView(v: unknown): v is ActionView {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.admin.defs#actionView'\n )\n}\n\nexport function validateActionView(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.admin.defs#actionView', v)\n}\n\nexport interface ActionViewDetail {\n id: number\n action: ActionType\n subject: RepoView | RecordView | { $type: string; [k: string]: unknown }\n subjectBlobs: BlobView[]\n createLabelVals?: string[]\n negateLabelVals?: string[]\n reason: string\n createdBy: string\n createdAt: string\n reversal?: ActionReversal\n resolvedReports: ReportView[]\n [k: string]: unknown\n}\n\nexport function isActionViewDetail(v: unknown): v is ActionViewDetail {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.admin.defs#actionViewDetail'\n )\n}\n\nexport function validateActionViewDetail(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.admin.defs#actionViewDetail', v)\n}\n\nexport interface ActionViewCurrent {\n id: number\n action: ActionType\n [k: string]: unknown\n}\n\nexport function isActionViewCurrent(v: unknown): v is ActionViewCurrent {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.admin.defs#actionViewCurrent'\n )\n}\n\nexport function validateActionViewCurrent(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.admin.defs#actionViewCurrent', v)\n}\n\nexport interface ActionReversal {\n reason: string\n createdBy: string\n createdAt: string\n [k: string]: unknown\n}\n\nexport function isActionReversal(v: unknown): v is ActionReversal {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.admin.defs#actionReversal'\n )\n}\n\nexport function validateActionReversal(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.admin.defs#actionReversal', v)\n}\n\nexport type ActionType =\n | 'lex:com.atproto.admin.defs#takedown'\n | 'lex:com.atproto.admin.defs#flag'\n | 'lex:com.atproto.admin.defs#acknowledge'\n | 'lex:com.atproto.admin.defs#escalate'\n | (string & {})\n\n/** Moderation action type: Takedown. Indicates that content should not be served by the PDS. */\nexport const TAKEDOWN = 'com.atproto.admin.defs#takedown'\n/** Moderation action type: Flag. Indicates that the content was reviewed and considered to violate PDS rules, but may still be served. */\nexport const FLAG = 'com.atproto.admin.defs#flag'\n/** Moderation action type: Acknowledge. Indicates that the content was reviewed and not considered to violate PDS rules. */\nexport const ACKNOWLEDGE = 'com.atproto.admin.defs#acknowledge'\n/** Moderation action type: Escalate. Indicates that the content has been flagged for additional review. */\nexport const ESCALATE = 'com.atproto.admin.defs#escalate'\n\nexport interface ReportView {\n id: number\n reasonType: ComAtprotoModerationDefs.ReasonType\n reason?: string\n subject:\n | RepoRef\n | ComAtprotoRepoStrongRef.Main\n | { $type: string; [k: string]: unknown }\n reportedBy: string\n createdAt: string\n resolvedByActionIds: number[]\n [k: string]: unknown\n}\n\nexport function isReportView(v: unknown): v is ReportView {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.admin.defs#reportView'\n )\n}\n\nexport function validateReportView(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.admin.defs#reportView', v)\n}\n\nexport interface ReportViewDetail {\n id: number\n reasonType: ComAtprotoModerationDefs.ReasonType\n reason?: string\n subject: RepoView | RecordView | { $type: string; [k: string]: unknown }\n reportedBy: string\n createdAt: string\n resolvedByActions: ActionView[]\n [k: string]: unknown\n}\n\nexport function isReportViewDetail(v: unknown): v is ReportViewDetail {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.admin.defs#reportViewDetail'\n )\n}\n\nexport function validateReportViewDetail(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.admin.defs#reportViewDetail', v)\n}\n\nexport interface RepoView {\n did: string\n handle: string\n email?: string\n relatedRecords: {}[]\n indexedAt: string\n moderation: Moderation\n invitedBy?: ComAtprotoServerDefs.InviteCode\n invitesDisabled?: boolean\n [k: string]: unknown\n}\n\nexport function isRepoView(v: unknown): v is RepoView {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.admin.defs#repoView'\n )\n}\n\nexport function validateRepoView(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.admin.defs#repoView', v)\n}\n\nexport interface RepoViewDetail {\n did: string\n handle: string\n email?: string\n relatedRecords: {}[]\n indexedAt: string\n moderation: ModerationDetail\n labels?: ComAtprotoLabelDefs.Label[]\n invitedBy?: ComAtprotoServerDefs.InviteCode\n invites?: ComAtprotoServerDefs.InviteCode[]\n invitesDisabled?: boolean\n [k: string]: unknown\n}\n\nexport function isRepoViewDetail(v: unknown): v is RepoViewDetail {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.admin.defs#repoViewDetail'\n )\n}\n\nexport function validateRepoViewDetail(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.admin.defs#repoViewDetail', v)\n}\n\nexport interface RepoRef {\n did: string\n [k: string]: unknown\n}\n\nexport function isRepoRef(v: unknown): v is RepoRef {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.admin.defs#repoRef'\n )\n}\n\nexport function validateRepoRef(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.admin.defs#repoRef', v)\n}\n\nexport interface RecordView {\n uri: string\n cid: string\n value: {}\n blobCids: string[]\n indexedAt: string\n moderation: Moderation\n repo: RepoView\n [k: string]: unknown\n}\n\nexport function isRecordView(v: unknown): v is RecordView {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.admin.defs#recordView'\n )\n}\n\nexport function validateRecordView(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.admin.defs#recordView', v)\n}\n\nexport interface RecordViewDetail {\n uri: string\n cid: string\n value: {}\n blobs: BlobView[]\n labels?: ComAtprotoLabelDefs.Label[]\n indexedAt: string\n moderation: ModerationDetail\n repo: RepoView\n [k: string]: unknown\n}\n\nexport function isRecordViewDetail(v: unknown): v is RecordViewDetail {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.admin.defs#recordViewDetail'\n )\n}\n\nexport function validateRecordViewDetail(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.admin.defs#recordViewDetail', v)\n}\n\nexport interface Moderation {\n currentAction?: ActionViewCurrent\n [k: string]: unknown\n}\n\nexport function isModeration(v: unknown): v is Moderation {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.admin.defs#moderation'\n )\n}\n\nexport function validateModeration(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.admin.defs#moderation', v)\n}\n\nexport interface ModerationDetail {\n currentAction?: ActionViewCurrent\n actions: ActionView[]\n reports: ReportView[]\n [k: string]: unknown\n}\n\nexport function isModerationDetail(v: unknown): v is ModerationDetail {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.admin.defs#moderationDetail'\n )\n}\n\nexport function validateModerationDetail(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.admin.defs#moderationDetail', v)\n}\n\nexport interface BlobView {\n cid: string\n mimeType: string\n size: number\n createdAt: string\n details?:\n | ImageDetails\n | VideoDetails\n | { $type: string; [k: string]: unknown }\n moderation?: Moderation\n [k: string]: unknown\n}\n\nexport function isBlobView(v: unknown): v is BlobView {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.admin.defs#blobView'\n )\n}\n\nexport function validateBlobView(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.admin.defs#blobView', v)\n}\n\nexport interface ImageDetails {\n width: number\n height: number\n [k: string]: unknown\n}\n\nexport function isImageDetails(v: unknown): v is ImageDetails {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.admin.defs#imageDetails'\n )\n}\n\nexport function validateImageDetails(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.admin.defs#imageDetails', v)\n}\n\nexport interface VideoDetails {\n width: number\n height: number\n length: number\n [k: string]: unknown\n}\n\nexport function isVideoDetails(v: unknown): v is VideoDetails {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.admin.defs#videoDetails'\n )\n}\n\nexport function validateVideoDetails(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.admin.defs#videoDetails', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\n/** Metadata tag on an atproto resource (eg, repo or record) */\nexport interface Label {\n /** DID of the actor who created this label */\n src: string\n /** AT URI of the record, repository (account), or other resource which this label applies to */\n uri: string\n /** optionally, CID specifying the specific version of 'uri' resource this label applies to */\n cid?: string\n /** the short string name of the value or type of this label */\n val: string\n /** if true, this is a negation label, overwriting a previous label */\n neg?: boolean\n /** timestamp when this label was created */\n cts: string\n [k: string]: unknown\n}\n\nexport function isLabel(v: unknown): v is Label {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.label.defs#label'\n )\n}\n\nexport function validateLabel(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.label.defs#label', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as ComAtprotoLabelDefs from './defs'\n\nexport interface Labels {\n seq: number\n labels: ComAtprotoLabelDefs.Label[]\n [k: string]: unknown\n}\n\nexport function isLabels(v: unknown): v is Labels {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.label.subscribeLabels#labels'\n )\n}\n\nexport function validateLabels(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.label.subscribeLabels#labels', v)\n}\n\nexport interface Info {\n name: 'OutdatedCursor' | (string & {})\n message?: string\n [k: string]: unknown\n}\n\nexport function isInfo(v: unknown): v is Info {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.label.subscribeLabels#info'\n )\n}\n\nexport function validateInfo(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.label.subscribeLabels#info', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport type ReasonType =\n | 'com.atproto.moderation.defs#reasonSpam'\n | 'com.atproto.moderation.defs#reasonViolation'\n | 'com.atproto.moderation.defs#reasonMisleading'\n | 'com.atproto.moderation.defs#reasonSexual'\n | 'com.atproto.moderation.defs#reasonRude'\n | 'com.atproto.moderation.defs#reasonOther'\n | (string & {})\n\n/** Spam: frequent unwanted promotion, replies, mentions */\nexport const REASONSPAM = 'com.atproto.moderation.defs#reasonSpam'\n/** Direct violation of server rules, laws, terms of service */\nexport const REASONVIOLATION = 'com.atproto.moderation.defs#reasonViolation'\n/** Misleading identity, affiliation, or content */\nexport const REASONMISLEADING = 'com.atproto.moderation.defs#reasonMisleading'\n/** Unwanted or mis-labeled sexual content */\nexport const REASONSEXUAL = 'com.atproto.moderation.defs#reasonSexual'\n/** Rude, harassing, explicit, or otherwise unwelcoming behavior */\nexport const REASONRUDE = 'com.atproto.moderation.defs#reasonRude'\n/** Other: reports not falling under another report category */\nexport const REASONOTHER = 'com.atproto.moderation.defs#reasonOther'\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface Main {\n uri: string\n cid: string\n [k: string]: unknown\n}\n\nexport function isMain(v: unknown): v is Main {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n (v.$type === 'com.atproto.repo.strongRef#main' ||\n v.$type === 'com.atproto.repo.strongRef')\n )\n}\n\nexport function validateMain(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.repo.strongRef#main', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface InviteCode {\n code: string\n available: number\n disabled: boolean\n forAccount: string\n createdBy: string\n createdAt: string\n uses: InviteCodeUse[]\n [k: string]: unknown\n}\n\nexport function isInviteCode(v: unknown): v is InviteCode {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.server.defs#inviteCode'\n )\n}\n\nexport function validateInviteCode(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.server.defs#inviteCode', v)\n}\n\nexport interface InviteCodeUse {\n usedBy: string\n usedAt: string\n [k: string]: unknown\n}\n\nexport function isInviteCodeUse(v: unknown): v is InviteCodeUse {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.server.defs#inviteCodeUse'\n )\n}\n\nexport function validateInviteCodeUse(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.server.defs#inviteCodeUse', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface Commit {\n seq: number\n rebase: boolean\n tooBig: boolean\n repo: string\n commit: CID\n prev: CID | null\n /** CAR file containing relevant blocks */\n blocks: Uint8Array\n ops: RepoOp[]\n blobs: CID[]\n time: string\n [k: string]: unknown\n}\n\nexport function isCommit(v: unknown): v is Commit {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.sync.subscribeRepos#commit'\n )\n}\n\nexport function validateCommit(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.sync.subscribeRepos#commit', v)\n}\n\nexport interface Handle {\n seq: number\n did: string\n handle: string\n time: string\n [k: string]: unknown\n}\n\nexport function isHandle(v: unknown): v is Handle {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.sync.subscribeRepos#handle'\n )\n}\n\nexport function validateHandle(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.sync.subscribeRepos#handle', v)\n}\n\nexport interface Migrate {\n seq: number\n did: string\n migrateTo: string | null\n time: string\n [k: string]: unknown\n}\n\nexport function isMigrate(v: unknown): v is Migrate {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.sync.subscribeRepos#migrate'\n )\n}\n\nexport function validateMigrate(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.sync.subscribeRepos#migrate', v)\n}\n\nexport interface Tombstone {\n seq: number\n did: string\n time: string\n [k: string]: unknown\n}\n\nexport function isTombstone(v: unknown): v is Tombstone {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.sync.subscribeRepos#tombstone'\n )\n}\n\nexport function validateTombstone(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.sync.subscribeRepos#tombstone', v)\n}\n\nexport interface Info {\n name: 'OutdatedCursor' | (string & {})\n message?: string\n [k: string]: unknown\n}\n\nexport function isInfo(v: unknown): v is Info {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.sync.subscribeRepos#info'\n )\n}\n\nexport function validateInfo(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.sync.subscribeRepos#info', v)\n}\n\nexport interface RepoOp {\n action: 'create' | 'update' | 'delete' | (string & {})\n path: string\n cid: CID | null\n [k: string]: unknown\n}\n\nexport function isRepoOp(v: unknown): v is RepoOp {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.sync.subscribeRepos#repoOp'\n )\n}\n\nexport function validateRepoOp(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.sync.subscribeRepos#repoOp', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as ComAtprotoLabelDefs from '../../../com/atproto/label/defs'\n\nexport interface ProfileViewBasic {\n did: string\n handle: string\n displayName?: string\n avatar?: string\n viewer?: ViewerState\n labels?: ComAtprotoLabelDefs.Label[]\n [k: string]: unknown\n}\n\nexport function isProfileViewBasic(v: unknown): v is ProfileViewBasic {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'app.bsky.actor.defs#profileViewBasic'\n )\n}\n\nexport function validateProfileViewBasic(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.actor.defs#profileViewBasic', v)\n}\n\nexport interface ProfileView {\n did: string\n handle: string\n displayName?: string\n description?: string\n avatar?: string\n indexedAt?: string\n viewer?: ViewerState\n labels?: ComAtprotoLabelDefs.Label[]\n [k: string]: unknown\n}\n\nexport function isProfileView(v: unknown): v is ProfileView {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'app.bsky.actor.defs#profileView'\n )\n}\n\nexport function validateProfileView(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.actor.defs#profileView', v)\n}\n\nexport interface ProfileViewDetailed {\n did: string\n handle: string\n displayName?: string\n description?: string\n avatar?: string\n banner?: string\n followersCount?: number\n followsCount?: number\n postsCount?: number\n indexedAt?: string\n viewer?: ViewerState\n labels?: ComAtprotoLabelDefs.Label[]\n [k: string]: unknown\n}\n\nexport function isProfileViewDetailed(v: unknown): v is ProfileViewDetailed {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'app.bsky.actor.defs#profileViewDetailed'\n )\n}\n\nexport function validateProfileViewDetailed(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.actor.defs#profileViewDetailed', v)\n}\n\nexport interface ViewerState {\n muted?: boolean\n blockedBy?: boolean\n blocking?: string\n following?: string\n followedBy?: string\n [k: string]: unknown\n}\n\nexport function isViewerState(v: unknown): v is ViewerState {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'app.bsky.actor.defs#viewerState'\n )\n}\n\nexport function validateViewerState(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.actor.defs#viewerState', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface Record {\n displayName?: string\n description?: string\n avatar?: BlobRef\n banner?: BlobRef\n [k: string]: unknown\n}\n\nexport function isRecord(v: unknown): v is Record {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n (v.$type === 'app.bsky.actor.profile#main' ||\n v.$type === 'app.bsky.actor.profile')\n )\n}\n\nexport function validateRecord(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.actor.profile#main', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface Main {\n external: External\n [k: string]: unknown\n}\n\nexport function isMain(v: unknown): v is Main {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n (v.$type === 'app.bsky.embed.external#main' ||\n v.$type === 'app.bsky.embed.external')\n )\n}\n\nexport function validateMain(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.embed.external#main', v)\n}\n\nexport interface External {\n uri: string\n title: string\n description: string\n thumb?: BlobRef\n [k: string]: unknown\n}\n\nexport function isExternal(v: unknown): v is External {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'app.bsky.embed.external#external'\n )\n}\n\nexport function validateExternal(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.embed.external#external', v)\n}\n\nexport interface View {\n external: ViewExternal\n [k: string]: unknown\n}\n\nexport function isView(v: unknown): v is View {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'app.bsky.embed.external#view'\n )\n}\n\nexport function validateView(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.embed.external#view', v)\n}\n\nexport interface ViewExternal {\n uri: string\n title: string\n description: string\n thumb?: string\n [k: string]: unknown\n}\n\nexport function isViewExternal(v: unknown): v is ViewExternal {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'app.bsky.embed.external#viewExternal'\n )\n}\n\nexport function validateViewExternal(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.embed.external#viewExternal', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface Main {\n images: Image[]\n [k: string]: unknown\n}\n\nexport function isMain(v: unknown): v is Main {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n (v.$type === 'app.bsky.embed.images#main' ||\n v.$type === 'app.bsky.embed.images')\n )\n}\n\nexport function validateMain(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.embed.images#main', v)\n}\n\nexport interface Image {\n image: BlobRef\n alt: string\n [k: string]: unknown\n}\n\nexport function isImage(v: unknown): v is Image {\n return (\n isObj(v) && hasProp(v, '$type') && v.$type === 'app.bsky.embed.images#image'\n )\n}\n\nexport function validateImage(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.embed.images#image', v)\n}\n\nexport interface View {\n images: ViewImage[]\n [k: string]: unknown\n}\n\nexport function isView(v: unknown): v is View {\n return (\n isObj(v) && hasProp(v, '$type') && v.$type === 'app.bsky.embed.images#view'\n )\n}\n\nexport function validateView(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.embed.images#view', v)\n}\n\nexport interface ViewImage {\n thumb: string\n fullsize: string\n alt: string\n [k: string]: unknown\n}\n\nexport function isViewImage(v: unknown): v is ViewImage {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'app.bsky.embed.images#viewImage'\n )\n}\n\nexport function validateViewImage(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.embed.images#viewImage', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as ComAtprotoRepoStrongRef from '../../../com/atproto/repo/strongRef'\nimport * as AppBskyActorDefs from '../actor/defs'\nimport * as ComAtprotoLabelDefs from '../../../com/atproto/label/defs'\nimport * as AppBskyEmbedImages from './images'\nimport * as AppBskyEmbedExternal from './external'\nimport * as AppBskyEmbedRecordWithMedia from './recordWithMedia'\n\nexport interface Main {\n record: ComAtprotoRepoStrongRef.Main\n [k: string]: unknown\n}\n\nexport function isMain(v: unknown): v is Main {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n (v.$type === 'app.bsky.embed.record#main' ||\n v.$type === 'app.bsky.embed.record')\n )\n}\n\nexport function validateMain(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.embed.record#main', v)\n}\n\nexport interface View {\n record:\n | ViewRecord\n | ViewNotFound\n | ViewBlocked\n | { $type: string; [k: string]: unknown }\n [k: string]: unknown\n}\n\nexport function isView(v: unknown): v is View {\n return (\n isObj(v) && hasProp(v, '$type') && v.$type === 'app.bsky.embed.record#view'\n )\n}\n\nexport function validateView(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.embed.record#view', v)\n}\n\nexport interface ViewRecord {\n uri: string\n cid: string\n author: AppBskyActorDefs.ProfileViewBasic\n value: {}\n labels?: ComAtprotoLabelDefs.Label[]\n embeds?: (\n | AppBskyEmbedImages.View\n | AppBskyEmbedExternal.View\n | View\n | AppBskyEmbedRecordWithMedia.View\n | { $type: string; [k: string]: unknown }\n )[]\n indexedAt: string\n [k: string]: unknown\n}\n\nexport function isViewRecord(v: unknown): v is ViewRecord {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'app.bsky.embed.record#viewRecord'\n )\n}\n\nexport function validateViewRecord(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.embed.record#viewRecord', v)\n}\n\nexport interface ViewNotFound {\n uri: string\n [k: string]: unknown\n}\n\nexport function isViewNotFound(v: unknown): v is ViewNotFound {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'app.bsky.embed.record#viewNotFound'\n )\n}\n\nexport function validateViewNotFound(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.embed.record#viewNotFound', v)\n}\n\nexport interface ViewBlocked {\n uri: string\n [k: string]: unknown\n}\n\nexport function isViewBlocked(v: unknown): v is ViewBlocked {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'app.bsky.embed.record#viewBlocked'\n )\n}\n\nexport function validateViewBlocked(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.embed.record#viewBlocked', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as AppBskyEmbedRecord from './record'\nimport * as AppBskyEmbedImages from './images'\nimport * as AppBskyEmbedExternal from './external'\n\nexport interface Main {\n record: AppBskyEmbedRecord.Main\n media:\n | AppBskyEmbedImages.Main\n | AppBskyEmbedExternal.Main\n | { $type: string; [k: string]: unknown }\n [k: string]: unknown\n}\n\nexport function isMain(v: unknown): v is Main {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n (v.$type === 'app.bsky.embed.recordWithMedia#main' ||\n v.$type === 'app.bsky.embed.recordWithMedia')\n )\n}\n\nexport function validateMain(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.embed.recordWithMedia#main', v)\n}\n\nexport interface View {\n record: AppBskyEmbedRecord.View\n media:\n | AppBskyEmbedImages.View\n | AppBskyEmbedExternal.View\n | { $type: string; [k: string]: unknown }\n [k: string]: unknown\n}\n\nexport function isView(v: unknown): v is View {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'app.bsky.embed.recordWithMedia#view'\n )\n}\n\nexport function validateView(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.embed.recordWithMedia#view', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as AppBskyActorDefs from '../actor/defs'\nimport * as AppBskyEmbedImages from '../embed/images'\nimport * as AppBskyEmbedExternal from '../embed/external'\nimport * as AppBskyEmbedRecord from '../embed/record'\nimport * as AppBskyEmbedRecordWithMedia from '../embed/recordWithMedia'\nimport * as ComAtprotoLabelDefs from '../../../com/atproto/label/defs'\n\nexport interface PostView {\n uri: string\n cid: string\n author: AppBskyActorDefs.ProfileViewBasic\n record: {}\n embed?:\n | AppBskyEmbedImages.View\n | AppBskyEmbedExternal.View\n | AppBskyEmbedRecord.View\n | AppBskyEmbedRecordWithMedia.View\n | { $type: string; [k: string]: unknown }\n replyCount?: number\n repostCount?: number\n likeCount?: number\n indexedAt: string\n viewer?: ViewerState\n labels?: ComAtprotoLabelDefs.Label[]\n [k: string]: unknown\n}\n\nexport function isPostView(v: unknown): v is PostView {\n return (\n isObj(v) && hasProp(v, '$type') && v.$type === 'app.bsky.feed.defs#postView'\n )\n}\n\nexport function validatePostView(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.feed.defs#postView', v)\n}\n\nexport interface ViewerState {\n repost?: string\n like?: string\n [k: string]: unknown\n}\n\nexport function isViewerState(v: unknown): v is ViewerState {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'app.bsky.feed.defs#viewerState'\n )\n}\n\nexport function validateViewerState(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.feed.defs#viewerState', v)\n}\n\nexport interface FeedViewPost {\n post: PostView\n reply?: ReplyRef\n reason?: ReasonRepost | { $type: string; [k: string]: unknown }\n [k: string]: unknown\n}\n\nexport function isFeedViewPost(v: unknown): v is FeedViewPost {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'app.bsky.feed.defs#feedViewPost'\n )\n}\n\nexport function validateFeedViewPost(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.feed.defs#feedViewPost', v)\n}\n\nexport interface ReplyRef {\n root: PostView\n parent: PostView\n [k: string]: unknown\n}\n\nexport function isReplyRef(v: unknown): v is ReplyRef {\n return (\n isObj(v) && hasProp(v, '$type') && v.$type === 'app.bsky.feed.defs#replyRef'\n )\n}\n\nexport function validateReplyRef(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.feed.defs#replyRef', v)\n}\n\nexport interface ReasonRepost {\n by: AppBskyActorDefs.ProfileViewBasic\n indexedAt: string\n [k: string]: unknown\n}\n\nexport function isReasonRepost(v: unknown): v is ReasonRepost {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'app.bsky.feed.defs#reasonRepost'\n )\n}\n\nexport function validateReasonRepost(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.feed.defs#reasonRepost', v)\n}\n\nexport interface ThreadViewPost {\n post: PostView\n parent?:\n | ThreadViewPost\n | NotFoundPost\n | BlockedPost\n | { $type: string; [k: string]: unknown }\n replies?: (\n | ThreadViewPost\n | NotFoundPost\n | BlockedPost\n | { $type: string; [k: string]: unknown }\n )[]\n [k: string]: unknown\n}\n\nexport function isThreadViewPost(v: unknown): v is ThreadViewPost {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'app.bsky.feed.defs#threadViewPost'\n )\n}\n\nexport function validateThreadViewPost(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.feed.defs#threadViewPost', v)\n}\n\nexport interface NotFoundPost {\n uri: string\n notFound: true\n [k: string]: unknown\n}\n\nexport function isNotFoundPost(v: unknown): v is NotFoundPost {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'app.bsky.feed.defs#notFoundPost'\n )\n}\n\nexport function validateNotFoundPost(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.feed.defs#notFoundPost', v)\n}\n\nexport interface BlockedPost {\n uri: string\n blocked: true\n [k: string]: unknown\n}\n\nexport function isBlockedPost(v: unknown): v is BlockedPost {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'app.bsky.feed.defs#blockedPost'\n )\n}\n\nexport function validateBlockedPost(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.feed.defs#blockedPost', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as ComAtprotoRepoStrongRef from '../../../com/atproto/repo/strongRef'\n\nexport interface Record {\n subject: ComAtprotoRepoStrongRef.Main\n createdAt: string\n [k: string]: unknown\n}\n\nexport function isRecord(v: unknown): v is Record {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n (v.$type === 'app.bsky.feed.like#main' || v.$type === 'app.bsky.feed.like')\n )\n}\n\nexport function validateRecord(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.feed.like#main', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as AppBskyRichtextFacet from '../richtext/facet'\nimport * as AppBskyEmbedImages from '../embed/images'\nimport * as AppBskyEmbedExternal from '../embed/external'\nimport * as AppBskyEmbedRecord from '../embed/record'\nimport * as AppBskyEmbedRecordWithMedia from '../embed/recordWithMedia'\nimport * as ComAtprotoRepoStrongRef from '../../../com/atproto/repo/strongRef'\n\nexport interface Record {\n text: string\n /** Deprecated: replaced by app.bsky.richtext.facet. */\n entities?: Entity[]\n facets?: AppBskyRichtextFacet.Main[]\n reply?: ReplyRef\n embed?:\n | AppBskyEmbedImages.Main\n | AppBskyEmbedExternal.Main\n | AppBskyEmbedRecord.Main\n | AppBskyEmbedRecordWithMedia.Main\n | { $type: string; [k: string]: unknown }\n createdAt: string\n [k: string]: unknown\n}\n\nexport function isRecord(v: unknown): v is Record {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n (v.$type === 'app.bsky.feed.post#main' || v.$type === 'app.bsky.feed.post')\n )\n}\n\nexport function validateRecord(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.feed.post#main', v)\n}\n\nexport interface ReplyRef {\n root: ComAtprotoRepoStrongRef.Main\n parent: ComAtprotoRepoStrongRef.Main\n [k: string]: unknown\n}\n\nexport function isReplyRef(v: unknown): v is ReplyRef {\n return (\n isObj(v) && hasProp(v, '$type') && v.$type === 'app.bsky.feed.post#replyRef'\n )\n}\n\nexport function validateReplyRef(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.feed.post#replyRef', v)\n}\n\n/** Deprecated: use facets instead. */\nexport interface Entity {\n index: TextSlice\n /** Expected values are 'mention' and 'link'. */\n type: string\n value: string\n [k: string]: unknown\n}\n\nexport function isEntity(v: unknown): v is Entity {\n return (\n isObj(v) && hasProp(v, '$type') && v.$type === 'app.bsky.feed.post#entity'\n )\n}\n\nexport function validateEntity(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.feed.post#entity', v)\n}\n\n/** Deprecated. Use app.bsky.richtext instead -- A text segment. Start is inclusive, end is exclusive. Indices are for utf16-encoded strings. */\nexport interface TextSlice {\n start: number\n end: number\n [k: string]: unknown\n}\n\nexport function isTextSlice(v: unknown): v is TextSlice {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'app.bsky.feed.post#textSlice'\n )\n}\n\nexport function validateTextSlice(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.feed.post#textSlice', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as ComAtprotoRepoStrongRef from '../../../com/atproto/repo/strongRef'\n\nexport interface Record {\n subject: ComAtprotoRepoStrongRef.Main\n createdAt: string\n [k: string]: unknown\n}\n\nexport function isRecord(v: unknown): v is Record {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n (v.$type === 'app.bsky.feed.repost#main' ||\n v.$type === 'app.bsky.feed.repost')\n )\n}\n\nexport function validateRecord(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.feed.repost#main', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface Record {\n subject: string\n createdAt: string\n [k: string]: unknown\n}\n\nexport function isRecord(v: unknown): v is Record {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n (v.$type === 'app.bsky.graph.block#main' ||\n v.$type === 'app.bsky.graph.block')\n )\n}\n\nexport function validateRecord(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.graph.block#main', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface Record {\n subject: string\n createdAt: string\n [k: string]: unknown\n}\n\nexport function isRecord(v: unknown): v is Record {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n (v.$type === 'app.bsky.graph.follow#main' ||\n v.$type === 'app.bsky.graph.follow')\n )\n}\n\nexport function validateRecord(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.graph.follow#main', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface Main {\n index: ByteSlice\n features: (Mention | Link | { $type: string; [k: string]: unknown })[]\n [k: string]: unknown\n}\n\nexport function isMain(v: unknown): v is Main {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n (v.$type === 'app.bsky.richtext.facet#main' ||\n v.$type === 'app.bsky.richtext.facet')\n )\n}\n\nexport function validateMain(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.richtext.facet#main', v)\n}\n\n/** A facet feature for actor mentions. */\nexport interface Mention {\n did: string\n [k: string]: unknown\n}\n\nexport function isMention(v: unknown): v is Mention {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'app.bsky.richtext.facet#mention'\n )\n}\n\nexport function validateMention(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.richtext.facet#mention', v)\n}\n\n/** A facet feature for links. */\nexport interface Link {\n uri: string\n [k: string]: unknown\n}\n\nexport function isLink(v: unknown): v is Link {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'app.bsky.richtext.facet#link'\n )\n}\n\nexport function validateLink(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.richtext.facet#link', v)\n}\n\n/** A text segment. Start is inclusive, end is exclusive. Indices are for utf8-encoded strings. */\nexport interface ByteSlice {\n byteStart: number\n byteEnd: number\n [k: string]: unknown\n}\n\nexport function isByteSlice(v: unknown): v is ByteSlice {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'app.bsky.richtext.facet#byteSlice'\n )\n}\n\nexport function validateByteSlice(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.richtext.facet#byteSlice', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport {\n Client as XrpcClient,\n ServiceClient as XrpcServiceClient,\n} from '@atproto/xrpc'\nimport { schemas } from './lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as ComAtprotoAdminDefs from './types/com/atproto/admin/defs'\nimport * as ComAtprotoAdminDisableAccountInvites from './types/com/atproto/admin/disableAccountInvites'\nimport * as ComAtprotoAdminDisableInviteCodes from './types/com/atproto/admin/disableInviteCodes'\nimport * as ComAtprotoAdminEnableAccountInvites from './types/com/atproto/admin/enableAccountInvites'\nimport * as ComAtprotoAdminGetInviteCodes from './types/com/atproto/admin/getInviteCodes'\nimport * as ComAtprotoAdminGetModerationAction from './types/com/atproto/admin/getModerationAction'\nimport * as ComAtprotoAdminGetModerationActions from './types/com/atproto/admin/getModerationActions'\nimport * as ComAtprotoAdminGetModerationReport from './types/com/atproto/admin/getModerationReport'\nimport * as ComAtprotoAdminGetModerationReports from './types/com/atproto/admin/getModerationReports'\nimport * as ComAtprotoAdminGetRecord from './types/com/atproto/admin/getRecord'\nimport * as ComAtprotoAdminGetRepo from './types/com/atproto/admin/getRepo'\nimport * as ComAtprotoAdminResolveModerationReports from './types/com/atproto/admin/resolveModerationReports'\nimport * as ComAtprotoAdminReverseModerationAction from './types/com/atproto/admin/reverseModerationAction'\nimport * as ComAtprotoAdminSearchRepos from './types/com/atproto/admin/searchRepos'\nimport * as ComAtprotoAdminTakeModerationAction from './types/com/atproto/admin/takeModerationAction'\nimport * as ComAtprotoAdminUpdateAccountEmail from './types/com/atproto/admin/updateAccountEmail'\nimport * as ComAtprotoAdminUpdateAccountHandle from './types/com/atproto/admin/updateAccountHandle'\nimport * as ComAtprotoIdentityResolveHandle from './types/com/atproto/identity/resolveHandle'\nimport * as ComAtprotoIdentityUpdateHandle from './types/com/atproto/identity/updateHandle'\nimport * as ComAtprotoLabelDefs from './types/com/atproto/label/defs'\nimport * as ComAtprotoLabelQueryLabels from './types/com/atproto/label/queryLabels'\nimport * as ComAtprotoLabelSubscribeLabels from './types/com/atproto/label/subscribeLabels'\nimport * as ComAtprotoModerationCreateReport from './types/com/atproto/moderation/createReport'\nimport * as ComAtprotoModerationDefs from './types/com/atproto/moderation/defs'\nimport * as ComAtprotoRepoApplyWrites from './types/com/atproto/repo/applyWrites'\nimport * as ComAtprotoRepoCreateRecord from './types/com/atproto/repo/createRecord'\nimport * as ComAtprotoRepoDeleteRecord from './types/com/atproto/repo/deleteRecord'\nimport * as ComAtprotoRepoDescribeRepo from './types/com/atproto/repo/describeRepo'\nimport * as ComAtprotoRepoGetRecord from './types/com/atproto/repo/getRecord'\nimport * as ComAtprotoRepoListRecords from './types/com/atproto/repo/listRecords'\nimport * as ComAtprotoRepoPutRecord from './types/com/atproto/repo/putRecord'\nimport * as ComAtprotoRepoRebaseRepo from './types/com/atproto/repo/rebaseRepo'\nimport * as ComAtprotoRepoStrongRef from './types/com/atproto/repo/strongRef'\nimport * as ComAtprotoRepoUploadBlob from './types/com/atproto/repo/uploadBlob'\nimport * as ComAtprotoServerCreateAccount from './types/com/atproto/server/createAccount'\nimport * as ComAtprotoServerCreateAppPassword from './types/com/atproto/server/createAppPassword'\nimport * as ComAtprotoServerCreateInviteCode from './types/com/atproto/server/createInviteCode'\nimport * as ComAtprotoServerCreateInviteCodes from './types/com/atproto/server/createInviteCodes'\nimport * as ComAtprotoServerCreateSession from './types/com/atproto/server/createSession'\nimport * as ComAtprotoServerDefs from './types/com/atproto/server/defs'\nimport * as ComAtprotoServerDeleteAccount from './types/com/atproto/server/deleteAccount'\nimport * as ComAtprotoServerDeleteSession from './types/com/atproto/server/deleteSession'\nimport * as ComAtprotoServerDescribeServer from './types/com/atproto/server/describeServer'\nimport * as ComAtprotoServerGetAccountInviteCodes from './types/com/atproto/server/getAccountInviteCodes'\nimport * as ComAtprotoServerGetSession from './types/com/atproto/server/getSession'\nimport * as ComAtprotoServerListAppPasswords from './types/com/atproto/server/listAppPasswords'\nimport * as ComAtprotoServerRefreshSession from './types/com/atproto/server/refreshSession'\nimport * as ComAtprotoServerRequestAccountDelete from './types/com/atproto/server/requestAccountDelete'\nimport * as ComAtprotoServerRequestPasswordReset from './types/com/atproto/server/requestPasswordReset'\nimport * as ComAtprotoServerResetPassword from './types/com/atproto/server/resetPassword'\nimport * as ComAtprotoServerRevokeAppPassword from './types/com/atproto/server/revokeAppPassword'\nimport * as ComAtprotoSyncGetBlob from './types/com/atproto/sync/getBlob'\nimport * as ComAtprotoSyncGetBlocks from './types/com/atproto/sync/getBlocks'\nimport * as ComAtprotoSyncGetCheckout from './types/com/atproto/sync/getCheckout'\nimport * as ComAtprotoSyncGetCommitPath from './types/com/atproto/sync/getCommitPath'\nimport * as ComAtprotoSyncGetHead from './types/com/atproto/sync/getHead'\nimport * as ComAtprotoSyncGetRecord from './types/com/atproto/sync/getRecord'\nimport * as ComAtprotoSyncGetRepo from './types/com/atproto/sync/getRepo'\nimport * as ComAtprotoSyncListBlobs from './types/com/atproto/sync/listBlobs'\nimport * as ComAtprotoSyncListRepos from './types/com/atproto/sync/listRepos'\nimport * as ComAtprotoSyncNotifyOfUpdate from './types/com/atproto/sync/notifyOfUpdate'\nimport * as ComAtprotoSyncRequestCrawl from './types/com/atproto/sync/requestCrawl'\nimport * as ComAtprotoSyncSubscribeRepos from './types/com/atproto/sync/subscribeRepos'\nimport * as AppBskyActorDefs from './types/app/bsky/actor/defs'\nimport * as AppBskyActorGetProfile from './types/app/bsky/actor/getProfile'\nimport * as AppBskyActorGetProfiles from './types/app/bsky/actor/getProfiles'\nimport * as AppBskyActorGetSuggestions from './types/app/bsky/actor/getSuggestions'\nimport * as AppBskyActorProfile from './types/app/bsky/actor/profile'\nimport * as AppBskyActorSearchActors from './types/app/bsky/actor/searchActors'\nimport * as AppBskyActorSearchActorsTypeahead from './types/app/bsky/actor/searchActorsTypeahead'\nimport * as AppBskyEmbedExternal from './types/app/bsky/embed/external'\nimport * as AppBskyEmbedImages from './types/app/bsky/embed/images'\nimport * as AppBskyEmbedRecord from './types/app/bsky/embed/record'\nimport * as AppBskyEmbedRecordWithMedia from './types/app/bsky/embed/recordWithMedia'\nimport * as AppBskyFeedDefs from './types/app/bsky/feed/defs'\nimport * as AppBskyFeedGetAuthorFeed from './types/app/bsky/feed/getAuthorFeed'\nimport * as AppBskyFeedGetLikes from './types/app/bsky/feed/getLikes'\nimport * as AppBskyFeedGetPostThread from './types/app/bsky/feed/getPostThread'\nimport * as AppBskyFeedGetPosts from './types/app/bsky/feed/getPosts'\nimport * as AppBskyFeedGetRepostedBy from './types/app/bsky/feed/getRepostedBy'\nimport * as AppBskyFeedGetTimeline from './types/app/bsky/feed/getTimeline'\nimport * as AppBskyFeedLike from './types/app/bsky/feed/like'\nimport * as AppBskyFeedPost from './types/app/bsky/feed/post'\nimport * as AppBskyFeedRepost from './types/app/bsky/feed/repost'\nimport * as AppBskyGraphBlock from './types/app/bsky/graph/block'\nimport * as AppBskyGraphFollow from './types/app/bsky/graph/follow'\nimport * as AppBskyGraphGetBlocks from './types/app/bsky/graph/getBlocks'\nimport * as AppBskyGraphGetFollowers from './types/app/bsky/graph/getFollowers'\nimport * as AppBskyGraphGetFollows from './types/app/bsky/graph/getFollows'\nimport * as AppBskyGraphGetMutes from './types/app/bsky/graph/getMutes'\nimport * as AppBskyGraphMuteActor from './types/app/bsky/graph/muteActor'\nimport * as AppBskyGraphUnmuteActor from './types/app/bsky/graph/unmuteActor'\nimport * as AppBskyNotificationGetUnreadCount from './types/app/bsky/notification/getUnreadCount'\nimport * as AppBskyNotificationListNotifications from './types/app/bsky/notification/listNotifications'\nimport * as AppBskyNotificationUpdateSeen from './types/app/bsky/notification/updateSeen'\nimport * as AppBskyRichtextFacet from './types/app/bsky/richtext/facet'\nimport * as AppBskyUnspeccedGetPopular from './types/app/bsky/unspecced/getPopular'\n\nexport * as ComAtprotoAdminDefs from './types/com/atproto/admin/defs'\nexport * as ComAtprotoAdminDisableAccountInvites from './types/com/atproto/admin/disableAccountInvites'\nexport * as ComAtprotoAdminDisableInviteCodes from './types/com/atproto/admin/disableInviteCodes'\nexport * as ComAtprotoAdminEnableAccountInvites from './types/com/atproto/admin/enableAccountInvites'\nexport * as ComAtprotoAdminGetInviteCodes from './types/com/atproto/admin/getInviteCodes'\nexport * as ComAtprotoAdminGetModerationAction from './types/com/atproto/admin/getModerationAction'\nexport * as ComAtprotoAdminGetModerationActions from './types/com/atproto/admin/getModerationActions'\nexport * as ComAtprotoAdminGetModerationReport from './types/com/atproto/admin/getModerationReport'\nexport * as ComAtprotoAdminGetModerationReports from './types/com/atproto/admin/getModerationReports'\nexport * as ComAtprotoAdminGetRecord from './types/com/atproto/admin/getRecord'\nexport * as ComAtprotoAdminGetRepo from './types/com/atproto/admin/getRepo'\nexport * as ComAtprotoAdminResolveModerationReports from './types/com/atproto/admin/resolveModerationReports'\nexport * as ComAtprotoAdminReverseModerationAction from './types/com/atproto/admin/reverseModerationAction'\nexport * as ComAtprotoAdminSearchRepos from './types/com/atproto/admin/searchRepos'\nexport * as ComAtprotoAdminTakeModerationAction from './types/com/atproto/admin/takeModerationAction'\nexport * as ComAtprotoAdminUpdateAccountEmail from './types/com/atproto/admin/updateAccountEmail'\nexport * as ComAtprotoAdminUpdateAccountHandle from './types/com/atproto/admin/updateAccountHandle'\nexport * as ComAtprotoIdentityResolveHandle from './types/com/atproto/identity/resolveHandle'\nexport * as ComAtprotoIdentityUpdateHandle from './types/com/atproto/identity/updateHandle'\nexport * as ComAtprotoLabelDefs from './types/com/atproto/label/defs'\nexport * as ComAtprotoLabelQueryLabels from './types/com/atproto/label/queryLabels'\nexport * as ComAtprotoLabelSubscribeLabels from './types/com/atproto/label/subscribeLabels'\nexport * as ComAtprotoModerationCreateReport from './types/com/atproto/moderation/createReport'\nexport * as ComAtprotoModerationDefs from './types/com/atproto/moderation/defs'\nexport * as ComAtprotoRepoApplyWrites from './types/com/atproto/repo/applyWrites'\nexport * as ComAtprotoRepoCreateRecord from './types/com/atproto/repo/createRecord'\nexport * as ComAtprotoRepoDeleteRecord from './types/com/atproto/repo/deleteRecord'\nexport * as ComAtprotoRepoDescribeRepo from './types/com/atproto/repo/describeRepo'\nexport * as ComAtprotoRepoGetRecord from './types/com/atproto/repo/getRecord'\nexport * as ComAtprotoRepoListRecords from './types/com/atproto/repo/listRecords'\nexport * as ComAtprotoRepoPutRecord from './types/com/atproto/repo/putRecord'\nexport * as ComAtprotoRepoRebaseRepo from './types/com/atproto/repo/rebaseRepo'\nexport * as ComAtprotoRepoStrongRef from './types/com/atproto/repo/strongRef'\nexport * as ComAtprotoRepoUploadBlob from './types/com/atproto/repo/uploadBlob'\nexport * as ComAtprotoServerCreateAccount from './types/com/atproto/server/createAccount'\nexport * as ComAtprotoServerCreateAppPassword from './types/com/atproto/server/createAppPassword'\nexport * as ComAtprotoServerCreateInviteCode from './types/com/atproto/server/createInviteCode'\nexport * as ComAtprotoServerCreateInviteCodes from './types/com/atproto/server/createInviteCodes'\nexport * as ComAtprotoServerCreateSession from './types/com/atproto/server/createSession'\nexport * as ComAtprotoServerDefs from './types/com/atproto/server/defs'\nexport * as ComAtprotoServerDeleteAccount from './types/com/atproto/server/deleteAccount'\nexport * as ComAtprotoServerDeleteSession from './types/com/atproto/server/deleteSession'\nexport * as ComAtprotoServerDescribeServer from './types/com/atproto/server/describeServer'\nexport * as ComAtprotoServerGetAccountInviteCodes from './types/com/atproto/server/getAccountInviteCodes'\nexport * as ComAtprotoServerGetSession from './types/com/atproto/server/getSession'\nexport * as ComAtprotoServerListAppPasswords from './types/com/atproto/server/listAppPasswords'\nexport * as ComAtprotoServerRefreshSession from './types/com/atproto/server/refreshSession'\nexport * as ComAtprotoServerRequestAccountDelete from './types/com/atproto/server/requestAccountDelete'\nexport * as ComAtprotoServerRequestPasswordReset from './types/com/atproto/server/requestPasswordReset'\nexport * as ComAtprotoServerResetPassword from './types/com/atproto/server/resetPassword'\nexport * as ComAtprotoServerRevokeAppPassword from './types/com/atproto/server/revokeAppPassword'\nexport * as ComAtprotoSyncGetBlob from './types/com/atproto/sync/getBlob'\nexport * as ComAtprotoSyncGetBlocks from './types/com/atproto/sync/getBlocks'\nexport * as ComAtprotoSyncGetCheckout from './types/com/atproto/sync/getCheckout'\nexport * as ComAtprotoSyncGetCommitPath from './types/com/atproto/sync/getCommitPath'\nexport * as ComAtprotoSyncGetHead from './types/com/atproto/sync/getHead'\nexport * as ComAtprotoSyncGetRecord from './types/com/atproto/sync/getRecord'\nexport * as ComAtprotoSyncGetRepo from './types/com/atproto/sync/getRepo'\nexport * as ComAtprotoSyncListBlobs from './types/com/atproto/sync/listBlobs'\nexport * as ComAtprotoSyncListRepos from './types/com/atproto/sync/listRepos'\nexport * as ComAtprotoSyncNotifyOfUpdate from './types/com/atproto/sync/notifyOfUpdate'\nexport * as ComAtprotoSyncRequestCrawl from './types/com/atproto/sync/requestCrawl'\nexport * as ComAtprotoSyncSubscribeRepos from './types/com/atproto/sync/subscribeRepos'\nexport * as AppBskyActorDefs from './types/app/bsky/actor/defs'\nexport * as AppBskyActorGetProfile from './types/app/bsky/actor/getProfile'\nexport * as AppBskyActorGetProfiles from './types/app/bsky/actor/getProfiles'\nexport * as AppBskyActorGetSuggestions from './types/app/bsky/actor/getSuggestions'\nexport * as AppBskyActorProfile from './types/app/bsky/actor/profile'\nexport * as AppBskyActorSearchActors from './types/app/bsky/actor/searchActors'\nexport * as AppBskyActorSearchActorsTypeahead from './types/app/bsky/actor/searchActorsTypeahead'\nexport * as AppBskyEmbedExternal from './types/app/bsky/embed/external'\nexport * as AppBskyEmbedImages from './types/app/bsky/embed/images'\nexport * as AppBskyEmbedRecord from './types/app/bsky/embed/record'\nexport * as AppBskyEmbedRecordWithMedia from './types/app/bsky/embed/recordWithMedia'\nexport * as AppBskyFeedDefs from './types/app/bsky/feed/defs'\nexport * as AppBskyFeedGetAuthorFeed from './types/app/bsky/feed/getAuthorFeed'\nexport * as AppBskyFeedGetLikes from './types/app/bsky/feed/getLikes'\nexport * as AppBskyFeedGetPostThread from './types/app/bsky/feed/getPostThread'\nexport * as AppBskyFeedGetPosts from './types/app/bsky/feed/getPosts'\nexport * as AppBskyFeedGetRepostedBy from './types/app/bsky/feed/getRepostedBy'\nexport * as AppBskyFeedGetTimeline from './types/app/bsky/feed/getTimeline'\nexport * as AppBskyFeedLike from './types/app/bsky/feed/like'\nexport * as AppBskyFeedPost from './types/app/bsky/feed/post'\nexport * as AppBskyFeedRepost from './types/app/bsky/feed/repost'\nexport * as AppBskyGraphBlock from './types/app/bsky/graph/block'\nexport * as AppBskyGraphFollow from './types/app/bsky/graph/follow'\nexport * as AppBskyGraphGetBlocks from './types/app/bsky/graph/getBlocks'\nexport * as AppBskyGraphGetFollowers from './types/app/bsky/graph/getFollowers'\nexport * as AppBskyGraphGetFollows from './types/app/bsky/graph/getFollows'\nexport * as AppBskyGraphGetMutes from './types/app/bsky/graph/getMutes'\nexport * as AppBskyGraphMuteActor from './types/app/bsky/graph/muteActor'\nexport * as AppBskyGraphUnmuteActor from './types/app/bsky/graph/unmuteActor'\nexport * as AppBskyNotificationGetUnreadCount from './types/app/bsky/notification/getUnreadCount'\nexport * as AppBskyNotificationListNotifications from './types/app/bsky/notification/listNotifications'\nexport * as AppBskyNotificationUpdateSeen from './types/app/bsky/notification/updateSeen'\nexport * as AppBskyRichtextFacet from './types/app/bsky/richtext/facet'\nexport * as AppBskyUnspeccedGetPopular from './types/app/bsky/unspecced/getPopular'\n\nexport const COM_ATPROTO_ADMIN = {\n DefsTakedown: 'com.atproto.admin.defs#takedown',\n DefsFlag: 'com.atproto.admin.defs#flag',\n DefsAcknowledge: 'com.atproto.admin.defs#acknowledge',\n DefsEscalate: 'com.atproto.admin.defs#escalate',\n}\nexport const COM_ATPROTO_MODERATION = {\n DefsReasonSpam: 'com.atproto.moderation.defs#reasonSpam',\n DefsReasonViolation: 'com.atproto.moderation.defs#reasonViolation',\n DefsReasonMisleading: 'com.atproto.moderation.defs#reasonMisleading',\n DefsReasonSexual: 'com.atproto.moderation.defs#reasonSexual',\n DefsReasonRude: 'com.atproto.moderation.defs#reasonRude',\n DefsReasonOther: 'com.atproto.moderation.defs#reasonOther',\n}\n\nexport class AtpBaseClient {\n xrpc: XrpcClient = new XrpcClient()\n\n constructor() {\n this.xrpc.addLexicons(schemas)\n }\n\n service(serviceUri: string | URL): AtpServiceClient {\n return new AtpServiceClient(this, this.xrpc.service(serviceUri))\n }\n}\n\nexport class AtpServiceClient {\n _baseClient: AtpBaseClient\n xrpc: XrpcServiceClient\n com: ComNS\n app: AppNS\n\n constructor(baseClient: AtpBaseClient, xrpcService: XrpcServiceClient) {\n this._baseClient = baseClient\n this.xrpc = xrpcService\n this.com = new ComNS(this)\n this.app = new AppNS(this)\n }\n\n setHeader(key: string, value: string): void {\n this.xrpc.setHeader(key, value)\n }\n}\n\nexport class ComNS {\n _service: AtpServiceClient\n atproto: AtprotoNS\n\n constructor(service: AtpServiceClient) {\n this._service = service\n this.atproto = new AtprotoNS(service)\n }\n}\n\nexport class AtprotoNS {\n _service: AtpServiceClient\n admin: AdminNS\n identity: IdentityNS\n label: LabelNS\n moderation: ModerationNS\n repo: RepoNS\n server: ServerNS\n sync: SyncNS\n\n constructor(service: AtpServiceClient) {\n this._service = service\n this.admin = new AdminNS(service)\n this.identity = new IdentityNS(service)\n this.label = new LabelNS(service)\n this.moderation = new ModerationNS(service)\n this.repo = new RepoNS(service)\n this.server = new ServerNS(service)\n this.sync = new SyncNS(service)\n }\n}\n\nexport class AdminNS {\n _service: AtpServiceClient\n\n constructor(service: AtpServiceClient) {\n this._service = service\n }\n\n disableAccountInvites(\n data?: ComAtprotoAdminDisableAccountInvites.InputSchema,\n opts?: ComAtprotoAdminDisableAccountInvites.CallOptions,\n ): Promise<ComAtprotoAdminDisableAccountInvites.Response> {\n return this._service.xrpc\n .call('com.atproto.admin.disableAccountInvites', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoAdminDisableAccountInvites.toKnownErr(e)\n })\n }\n\n disableInviteCodes(\n data?: ComAtprotoAdminDisableInviteCodes.InputSchema,\n opts?: ComAtprotoAdminDisableInviteCodes.CallOptions,\n ): Promise<ComAtprotoAdminDisableInviteCodes.Response> {\n return this._service.xrpc\n .call('com.atproto.admin.disableInviteCodes', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoAdminDisableInviteCodes.toKnownErr(e)\n })\n }\n\n enableAccountInvites(\n data?: ComAtprotoAdminEnableAccountInvites.InputSchema,\n opts?: ComAtprotoAdminEnableAccountInvites.CallOptions,\n ): Promise<ComAtprotoAdminEnableAccountInvites.Response> {\n return this._service.xrpc\n .call('com.atproto.admin.enableAccountInvites', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoAdminEnableAccountInvites.toKnownErr(e)\n })\n }\n\n getInviteCodes(\n params?: ComAtprotoAdminGetInviteCodes.QueryParams,\n opts?: ComAtprotoAdminGetInviteCodes.CallOptions,\n ): Promise<ComAtprotoAdminGetInviteCodes.Response> {\n return this._service.xrpc\n .call('com.atproto.admin.getInviteCodes', params, undefined, opts)\n .catch((e) => {\n throw ComAtprotoAdminGetInviteCodes.toKnownErr(e)\n })\n }\n\n getModerationAction(\n params?: ComAtprotoAdminGetModerationAction.QueryParams,\n opts?: ComAtprotoAdminGetModerationAction.CallOptions,\n ): Promise<ComAtprotoAdminGetModerationAction.Response> {\n return this._service.xrpc\n .call('com.atproto.admin.getModerationAction', params, undefined, opts)\n .catch((e) => {\n throw ComAtprotoAdminGetModerationAction.toKnownErr(e)\n })\n }\n\n getModerationActions(\n params?: ComAtprotoAdminGetModerationActions.QueryParams,\n opts?: ComAtprotoAdminGetModerationActions.CallOptions,\n ): Promise<ComAtprotoAdminGetModerationActions.Response> {\n return this._service.xrpc\n .call('com.atproto.admin.getModerationActions', params, undefined, opts)\n .catch((e) => {\n throw ComAtprotoAdminGetModerationActions.toKnownErr(e)\n })\n }\n\n getModerationReport(\n params?: ComAtprotoAdminGetModerationReport.QueryParams,\n opts?: ComAtprotoAdminGetModerationReport.CallOptions,\n ): Promise<ComAtprotoAdminGetModerationReport.Response> {\n return this._service.xrpc\n .call('com.atproto.admin.getModerationReport', params, undefined, opts)\n .catch((e) => {\n throw ComAtprotoAdminGetModerationReport.toKnownErr(e)\n })\n }\n\n getModerationReports(\n params?: ComAtprotoAdminGetModerationReports.QueryParams,\n opts?: ComAtprotoAdminGetModerationReports.CallOptions,\n ): Promise<ComAtprotoAdminGetModerationReports.Response> {\n return this._service.xrpc\n .call('com.atproto.admin.getModerationReports', params, undefined, opts)\n .catch((e) => {\n throw ComAtprotoAdminGetModerationReports.toKnownErr(e)\n })\n }\n\n getRecord(\n params?: ComAtprotoAdminGetRecord.QueryParams,\n opts?: ComAtprotoAdminGetRecord.CallOptions,\n ): Promise<ComAtprotoAdminGetRecord.Response> {\n return this._service.xrpc\n .call('com.atproto.admin.getRecord', params, undefined, opts)\n .catch((e) => {\n throw ComAtprotoAdminGetRecord.toKnownErr(e)\n })\n }\n\n getRepo(\n params?: ComAtprotoAdminGetRepo.QueryParams,\n opts?: ComAtprotoAdminGetRepo.CallOptions,\n ): Promise<ComAtprotoAdminGetRepo.Response> {\n return this._service.xrpc\n .call('com.atproto.admin.getRepo', params, undefined, opts)\n .catch((e) => {\n throw ComAtprotoAdminGetRepo.toKnownErr(e)\n })\n }\n\n resolveModerationReports(\n data?: ComAtprotoAdminResolveModerationReports.InputSchema,\n opts?: ComAtprotoAdminResolveModerationReports.CallOptions,\n ): Promise<ComAtprotoAdminResolveModerationReports.Response> {\n return this._service.xrpc\n .call('com.atproto.admin.resolveModerationReports', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoAdminResolveModerationReports.toKnownErr(e)\n })\n }\n\n reverseModerationAction(\n data?: ComAtprotoAdminReverseModerationAction.InputSchema,\n opts?: ComAtprotoAdminReverseModerationAction.CallOptions,\n ): Promise<ComAtprotoAdminReverseModerationAction.Response> {\n return this._service.xrpc\n .call('com.atproto.admin.reverseModerationAction', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoAdminReverseModerationAction.toKnownErr(e)\n })\n }\n\n searchRepos(\n params?: ComAtprotoAdminSearchRepos.QueryParams,\n opts?: ComAtprotoAdminSearchRepos.CallOptions,\n ): Promise<ComAtprotoAdminSearchRepos.Response> {\n return this._service.xrpc\n .call('com.atproto.admin.searchRepos', params, undefined, opts)\n .catch((e) => {\n throw ComAtprotoAdminSearchRepos.toKnownErr(e)\n })\n }\n\n takeModerationAction(\n data?: ComAtprotoAdminTakeModerationAction.InputSchema,\n opts?: ComAtprotoAdminTakeModerationAction.CallOptions,\n ): Promise<ComAtprotoAdminTakeModerationAction.Response> {\n return this._service.xrpc\n .call('com.atproto.admin.takeModerationAction', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoAdminTakeModerationAction.toKnownErr(e)\n })\n }\n\n updateAccountEmail(\n data?: ComAtprotoAdminUpdateAccountEmail.InputSchema,\n opts?: ComAtprotoAdminUpdateAccountEmail.CallOptions,\n ): Promise<ComAtprotoAdminUpdateAccountEmail.Response> {\n return this._service.xrpc\n .call('com.atproto.admin.updateAccountEmail', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoAdminUpdateAccountEmail.toKnownErr(e)\n })\n }\n\n updateAccountHandle(\n data?: ComAtprotoAdminUpdateAccountHandle.InputSchema,\n opts?: ComAtprotoAdminUpdateAccountHandle.CallOptions,\n ): Promise<ComAtprotoAdminUpdateAccountHandle.Response> {\n return this._service.xrpc\n .call('com.atproto.admin.updateAccountHandle', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoAdminUpdateAccountHandle.toKnownErr(e)\n })\n }\n}\n\nexport class IdentityNS {\n _service: AtpServiceClient\n\n constructor(service: AtpServiceClient) {\n this._service = service\n }\n\n resolveHandle(\n params?: ComAtprotoIdentityResolveHandle.QueryParams,\n opts?: ComAtprotoIdentityResolveHandle.CallOptions,\n ): Promise<ComAtprotoIdentityResolveHandle.Response> {\n return this._service.xrpc\n .call('com.atproto.identity.resolveHandle', params, undefined, opts)\n .catch((e) => {\n throw ComAtprotoIdentityResolveHandle.toKnownErr(e)\n })\n }\n\n updateHandle(\n data?: ComAtprotoIdentityUpdateHandle.InputSchema,\n opts?: ComAtprotoIdentityUpdateHandle.CallOptions,\n ): Promise<ComAtprotoIdentityUpdateHandle.Response> {\n return this._service.xrpc\n .call('com.atproto.identity.updateHandle', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoIdentityUpdateHandle.toKnownErr(e)\n })\n }\n}\n\nexport class LabelNS {\n _service: AtpServiceClient\n\n constructor(service: AtpServiceClient) {\n this._service = service\n }\n\n queryLabels(\n params?: ComAtprotoLabelQueryLabels.QueryParams,\n opts?: ComAtprotoLabelQueryLabels.CallOptions,\n ): Promise<ComAtprotoLabelQueryLabels.Response> {\n return this._service.xrpc\n .call('com.atproto.label.queryLabels', params, undefined, opts)\n .catch((e) => {\n throw ComAtprotoLabelQueryLabels.toKnownErr(e)\n })\n }\n}\n\nexport class ModerationNS {\n _service: AtpServiceClient\n\n constructor(service: AtpServiceClient) {\n this._service = service\n }\n\n createReport(\n data?: ComAtprotoModerationCreateReport.InputSchema,\n opts?: ComAtprotoModerationCreateReport.CallOptions,\n ): Promise<ComAtprotoModerationCreateReport.Response> {\n return this._service.xrpc\n .call('com.atproto.moderation.createReport', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoModerationCreateReport.toKnownErr(e)\n })\n }\n}\n\nexport class RepoNS {\n _service: AtpServiceClient\n\n constructor(service: AtpServiceClient) {\n this._service = service\n }\n\n applyWrites(\n data?: ComAtprotoRepoApplyWrites.InputSchema,\n opts?: ComAtprotoRepoApplyWrites.CallOptions,\n ): Promise<ComAtprotoRepoApplyWrites.Response> {\n return this._service.xrpc\n .call('com.atproto.repo.applyWrites', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoRepoApplyWrites.toKnownErr(e)\n })\n }\n\n createRecord(\n data?: ComAtprotoRepoCreateRecord.InputSchema,\n opts?: ComAtprotoRepoCreateRecord.CallOptions,\n ): Promise<ComAtprotoRepoCreateRecord.Response> {\n return this._service.xrpc\n .call('com.atproto.repo.createRecord', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoRepoCreateRecord.toKnownErr(e)\n })\n }\n\n deleteRecord(\n data?: ComAtprotoRepoDeleteRecord.InputSchema,\n opts?: ComAtprotoRepoDeleteRecord.CallOptions,\n ): Promise<ComAtprotoRepoDeleteRecord.Response> {\n return this._service.xrpc\n .call('com.atproto.repo.deleteRecord', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoRepoDeleteRecord.toKnownErr(e)\n })\n }\n\n describeRepo(\n params?: ComAtprotoRepoDescribeRepo.QueryParams,\n opts?: ComAtprotoRepoDescribeRepo.CallOptions,\n ): Promise<ComAtprotoRepoDescribeRepo.Response> {\n return this._service.xrpc\n .call('com.atproto.repo.describeRepo', params, undefined, opts)\n .catch((e) => {\n throw ComAtprotoRepoDescribeRepo.toKnownErr(e)\n })\n }\n\n getRecord(\n params?: ComAtprotoRepoGetRecord.QueryParams,\n opts?: ComAtprotoRepoGetRecord.CallOptions,\n ): Promise<ComAtprotoRepoGetRecord.Response> {\n return this._service.xrpc\n .call('com.atproto.repo.getRecord', params, undefined, opts)\n .catch((e) => {\n throw ComAtprotoRepoGetRecord.toKnownErr(e)\n })\n }\n\n listRecords(\n params?: ComAtprotoRepoListRecords.QueryParams,\n opts?: ComAtprotoRepoListRecords.CallOptions,\n ): Promise<ComAtprotoRepoListRecords.Response> {\n return this._service.xrpc\n .call('com.atproto.repo.listRecords', params, undefined, opts)\n .catch((e) => {\n throw ComAtprotoRepoListRecords.toKnownErr(e)\n })\n }\n\n putRecord(\n data?: ComAtprotoRepoPutRecord.InputSchema,\n opts?: ComAtprotoRepoPutRecord.CallOptions,\n ): Promise<ComAtprotoRepoPutRecord.Response> {\n return this._service.xrpc\n .call('com.atproto.repo.putRecord', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoRepoPutRecord.toKnownErr(e)\n })\n }\n\n rebaseRepo(\n data?: ComAtprotoRepoRebaseRepo.InputSchema,\n opts?: ComAtprotoRepoRebaseRepo.CallOptions,\n ): Promise<ComAtprotoRepoRebaseRepo.Response> {\n return this._service.xrpc\n .call('com.atproto.repo.rebaseRepo', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoRepoRebaseRepo.toKnownErr(e)\n })\n }\n\n uploadBlob(\n data?: ComAtprotoRepoUploadBlob.InputSchema,\n opts?: ComAtprotoRepoUploadBlob.CallOptions,\n ): Promise<ComAtprotoRepoUploadBlob.Response> {\n return this._service.xrpc\n .call('com.atproto.repo.uploadBlob', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoRepoUploadBlob.toKnownErr(e)\n })\n }\n}\n\nexport class ServerNS {\n _service: AtpServiceClient\n\n constructor(service: AtpServiceClient) {\n this._service = service\n }\n\n createAccount(\n data?: ComAtprotoServerCreateAccount.InputSchema,\n opts?: ComAtprotoServerCreateAccount.CallOptions,\n ): Promise<ComAtprotoServerCreateAccount.Response> {\n return this._service.xrpc\n .call('com.atproto.server.createAccount', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoServerCreateAccount.toKnownErr(e)\n })\n }\n\n createAppPassword(\n data?: ComAtprotoServerCreateAppPassword.InputSchema,\n opts?: ComAtprotoServerCreateAppPassword.CallOptions,\n ): Promise<ComAtprotoServerCreateAppPassword.Response> {\n return this._service.xrpc\n .call('com.atproto.server.createAppPassword', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoServerCreateAppPassword.toKnownErr(e)\n })\n }\n\n createInviteCode(\n data?: ComAtprotoServerCreateInviteCode.InputSchema,\n opts?: ComAtprotoServerCreateInviteCode.CallOptions,\n ): Promise<ComAtprotoServerCreateInviteCode.Response> {\n return this._service.xrpc\n .call('com.atproto.server.createInviteCode', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoServerCreateInviteCode.toKnownErr(e)\n })\n }\n\n createInviteCodes(\n data?: ComAtprotoServerCreateInviteCodes.InputSchema,\n opts?: ComAtprotoServerCreateInviteCodes.CallOptions,\n ): Promise<ComAtprotoServerCreateInviteCodes.Response> {\n return this._service.xrpc\n .call('com.atproto.server.createInviteCodes', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoServerCreateInviteCodes.toKnownErr(e)\n })\n }\n\n createSession(\n data?: ComAtprotoServerCreateSession.InputSchema,\n opts?: ComAtprotoServerCreateSession.CallOptions,\n ): Promise<ComAtprotoServerCreateSession.Response> {\n return this._service.xrpc\n .call('com.atproto.server.createSession', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoServerCreateSession.toKnownErr(e)\n })\n }\n\n deleteAccount(\n data?: ComAtprotoServerDeleteAccount.InputSchema,\n opts?: ComAtprotoServerDeleteAccount.CallOptions,\n ): Promise<ComAtprotoServerDeleteAccount.Response> {\n return this._service.xrpc\n .call('com.atproto.server.deleteAccount', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoServerDeleteAccount.toKnownErr(e)\n })\n }\n\n deleteSession(\n data?: ComAtprotoServerDeleteSession.InputSchema,\n opts?: ComAtprotoServerDeleteSession.CallOptions,\n ): Promise<ComAtprotoServerDeleteSession.Response> {\n return this._service.xrpc\n .call('com.atproto.server.deleteSession', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoServerDeleteSession.toKnownErr(e)\n })\n }\n\n describeServer(\n params?: ComAtprotoServerDescribeServer.QueryParams,\n opts?: ComAtprotoServerDescribeServer.CallOptions,\n ): Promise<ComAtprotoServerDescribeServer.Response> {\n return this._service.xrpc\n .call('com.atproto.server.describeServer', params, undefined, opts)\n .catch((e) => {\n throw ComAtprotoServerDescribeServer.toKnownErr(e)\n })\n }\n\n getAccountInviteCodes(\n params?: ComAtprotoServerGetAccountInviteCodes.QueryParams,\n opts?: ComAtprotoServerGetAccountInviteCodes.CallOptions,\n ): Promise<ComAtprotoServerGetAccountInviteCodes.Response> {\n return this._service.xrpc\n .call('com.atproto.server.getAccountInviteCodes', params, undefined, opts)\n .catch((e) => {\n throw ComAtprotoServerGetAccountInviteCodes.toKnownErr(e)\n })\n }\n\n getSession(\n params?: ComAtprotoServerGetSession.QueryParams,\n opts?: ComAtprotoServerGetSession.CallOptions,\n ): Promise<ComAtprotoServerGetSession.Response> {\n return this._service.xrpc\n .call('com.atproto.server.getSession', params, undefined, opts)\n .catch((e) => {\n throw ComAtprotoServerGetSession.toKnownErr(e)\n })\n }\n\n listAppPasswords(\n params?: ComAtprotoServerListAppPasswords.QueryParams,\n opts?: ComAtprotoServerListAppPasswords.CallOptions,\n ): Promise<ComAtprotoServerListAppPasswords.Response> {\n return this._service.xrpc\n .call('com.atproto.server.listAppPasswords', params, undefined, opts)\n .catch((e) => {\n throw ComAtprotoServerListAppPasswords.toKnownErr(e)\n })\n }\n\n refreshSession(\n data?: ComAtprotoServerRefreshSession.InputSchema,\n opts?: ComAtprotoServerRefreshSession.CallOptions,\n ): Promise<ComAtprotoServerRefreshSession.Response> {\n return this._service.xrpc\n .call('com.atproto.server.refreshSession', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoServerRefreshSession.toKnownErr(e)\n })\n }\n\n requestAccountDelete(\n data?: ComAtprotoServerRequestAccountDelete.InputSchema,\n opts?: ComAtprotoServerRequestAccountDelete.CallOptions,\n ): Promise<ComAtprotoServerRequestAccountDelete.Response> {\n return this._service.xrpc\n .call('com.atproto.server.requestAccountDelete', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoServerRequestAccountDelete.toKnownErr(e)\n })\n }\n\n requestPasswordReset(\n data?: ComAtprotoServerRequestPasswordReset.InputSchema,\n opts?: ComAtprotoServerRequestPasswordReset.CallOptions,\n ): Promise<ComAtprotoServerRequestPasswordReset.Response> {\n return this._service.xrpc\n .call('com.atproto.server.requestPasswordReset', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoServerRequestPasswordReset.toKnownErr(e)\n })\n }\n\n resetPassword(\n data?: ComAtprotoServerResetPassword.InputSchema,\n opts?: ComAtprotoServerResetPassword.CallOptions,\n ): Promise<ComAtprotoServerResetPassword.Response> {\n return this._service.xrpc\n .call('com.atproto.server.resetPassword', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoServerResetPassword.toKnownErr(e)\n })\n }\n\n revokeAppPassword(\n data?: ComAtprotoServerRevokeAppPassword.InputSchema,\n opts?: ComAtprotoServerRevokeAppPassword.CallOptions,\n ): Promise<ComAtprotoServerRevokeAppPassword.Response> {\n return this._service.xrpc\n .call('com.atproto.server.revokeAppPassword', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoServerRevokeAppPassword.toKnownErr(e)\n })\n }\n}\n\nexport class SyncNS {\n _service: AtpServiceClient\n\n constructor(service: AtpServiceClient) {\n this._service = service\n }\n\n getBlob(\n params?: ComAtprotoSyncGetBlob.QueryParams,\n opts?: ComAtprotoSyncGetBlob.CallOptions,\n ): Promise<ComAtprotoSyncGetBlob.Response> {\n return this._service.xrpc\n .call('com.atproto.sync.getBlob', params, undefined, opts)\n .catch((e) => {\n throw ComAtprotoSyncGetBlob.toKnownErr(e)\n })\n }\n\n getBlocks(\n params?: ComAtprotoSyncGetBlocks.QueryParams,\n opts?: ComAtprotoSyncGetBlocks.CallOptions,\n ): Promise<ComAtprotoSyncGetBlocks.Response> {\n return this._service.xrpc\n .call('com.atproto.sync.getBlocks', params, undefined, opts)\n .catch((e) => {\n throw ComAtprotoSyncGetBlocks.toKnownErr(e)\n })\n }\n\n getCheckout(\n params?: ComAtprotoSyncGetCheckout.QueryParams,\n opts?: ComAtprotoSyncGetCheckout.CallOptions,\n ): Promise<ComAtprotoSyncGetCheckout.Response> {\n return this._service.xrpc\n .call('com.atproto.sync.getCheckout', params, undefined, opts)\n .catch((e) => {\n throw ComAtprotoSyncGetCheckout.toKnownErr(e)\n })\n }\n\n getCommitPath(\n params?: ComAtprotoSyncGetCommitPath.QueryParams,\n opts?: ComAtprotoSyncGetCommitPath.CallOptions,\n ): Promise<ComAtprotoSyncGetCommitPath.Response> {\n return this._service.xrpc\n .call('com.atproto.sync.getCommitPath', params, undefined, opts)\n .catch((e) => {\n throw ComAtprotoSyncGetCommitPath.toKnownErr(e)\n })\n }\n\n getHead(\n params?: ComAtprotoSyncGetHead.QueryParams,\n opts?: ComAtprotoSyncGetHead.CallOptions,\n ): Promise<ComAtprotoSyncGetHead.Response> {\n return this._service.xrpc\n .call('com.atproto.sync.getHead', params, undefined, opts)\n .catch((e) => {\n throw ComAtprotoSyncGetHead.toKnownErr(e)\n })\n }\n\n getRecord(\n params?: ComAtprotoSyncGetRecord.QueryParams,\n opts?: ComAtprotoSyncGetRecord.CallOptions,\n ): Promise<ComAtprotoSyncGetRecord.Response> {\n return this._service.xrpc\n .call('com.atproto.sync.getRecord', params, undefined, opts)\n .catch((e) => {\n throw ComAtprotoSyncGetRecord.toKnownErr(e)\n })\n }\n\n getRepo(\n params?: ComAtprotoSyncGetRepo.QueryParams,\n opts?: ComAtprotoSyncGetRepo.CallOptions,\n ): Promise<ComAtprotoSyncGetRepo.Response> {\n return this._service.xrpc\n .call('com.atproto.sync.getRepo', params, undefined, opts)\n .catch((e) => {\n throw ComAtprotoSyncGetRepo.toKnownErr(e)\n })\n }\n\n listBlobs(\n params?: ComAtprotoSyncListBlobs.QueryParams,\n opts?: ComAtprotoSyncListBlobs.CallOptions,\n ): Promise<ComAtprotoSyncListBlobs.Response> {\n return this._service.xrpc\n .call('com.atproto.sync.listBlobs', params, undefined, opts)\n .catch((e) => {\n throw ComAtprotoSyncListBlobs.toKnownErr(e)\n })\n }\n\n listRepos(\n params?: ComAtprotoSyncListRepos.QueryParams,\n opts?: ComAtprotoSyncListRepos.CallOptions,\n ): Promise<ComAtprotoSyncListRepos.Response> {\n return this._service.xrpc\n .call('com.atproto.sync.listRepos', params, undefined, opts)\n .catch((e) => {\n throw ComAtprotoSyncListRepos.toKnownErr(e)\n })\n }\n\n notifyOfUpdate(\n params?: ComAtprotoSyncNotifyOfUpdate.QueryParams,\n opts?: ComAtprotoSyncNotifyOfUpdate.CallOptions,\n ): Promise<ComAtprotoSyncNotifyOfUpdate.Response> {\n return this._service.xrpc\n .call('com.atproto.sync.notifyOfUpdate', params, undefined, opts)\n .catch((e) => {\n throw ComAtprotoSyncNotifyOfUpdate.toKnownErr(e)\n })\n }\n\n requestCrawl(\n params?: ComAtprotoSyncRequestCrawl.QueryParams,\n opts?: ComAtprotoSyncRequestCrawl.CallOptions,\n ): Promise<ComAtprotoSyncRequestCrawl.Response> {\n return this._service.xrpc\n .call('com.atproto.sync.requestCrawl', params, undefined, opts)\n .catch((e) => {\n throw ComAtprotoSyncRequestCrawl.toKnownErr(e)\n })\n }\n}\n\nexport class AppNS {\n _service: AtpServiceClient\n bsky: BskyNS\n\n constructor(service: AtpServiceClient) {\n this._service = service\n this.bsky = new BskyNS(service)\n }\n}\n\nexport class BskyNS {\n _service: AtpServiceClient\n actor: ActorNS\n embed: EmbedNS\n feed: FeedNS\n graph: GraphNS\n notification: NotificationNS\n richtext: RichtextNS\n unspecced: UnspeccedNS\n\n constructor(service: AtpServiceClient) {\n this._service = service\n this.actor = new ActorNS(service)\n this.embed = new EmbedNS(service)\n this.feed = new FeedNS(service)\n this.graph = new GraphNS(service)\n this.notification = new NotificationNS(service)\n this.richtext = new RichtextNS(service)\n this.unspecced = new UnspeccedNS(service)\n }\n}\n\nexport class ActorNS {\n _service: AtpServiceClient\n profile: ProfileRecord\n\n constructor(service: AtpServiceClient) {\n this._service = service\n this.profile = new ProfileRecord(service)\n }\n\n getProfile(\n params?: AppBskyActorGetProfile.QueryParams,\n opts?: AppBskyActorGetProfile.CallOptions,\n ): Promise<AppBskyActorGetProfile.Response> {\n return this._service.xrpc\n .call('app.bsky.actor.getProfile', params, undefined, opts)\n .catch((e) => {\n throw AppBskyActorGetProfile.toKnownErr(e)\n })\n }\n\n getProfiles(\n params?: AppBskyActorGetProfiles.QueryParams,\n opts?: AppBskyActorGetProfiles.CallOptions,\n ): Promise<AppBskyActorGetProfiles.Response> {\n return this._service.xrpc\n .call('app.bsky.actor.getProfiles', params, undefined, opts)\n .catch((e) => {\n throw AppBskyActorGetProfiles.toKnownErr(e)\n })\n }\n\n getSuggestions(\n params?: AppBskyActorGetSuggestions.QueryParams,\n opts?: AppBskyActorGetSuggestions.CallOptions,\n ): Promise<AppBskyActorGetSuggestions.Response> {\n return this._service.xrpc\n .call('app.bsky.actor.getSuggestions', params, undefined, opts)\n .catch((e) => {\n throw AppBskyActorGetSuggestions.toKnownErr(e)\n })\n }\n\n searchActors(\n params?: AppBskyActorSearchActors.QueryParams,\n opts?: AppBskyActorSearchActors.CallOptions,\n ): Promise<AppBskyActorSearchActors.Response> {\n return this._service.xrpc\n .call('app.bsky.actor.searchActors', params, undefined, opts)\n .catch((e) => {\n throw AppBskyActorSearchActors.toKnownErr(e)\n })\n }\n\n searchActorsTypeahead(\n params?: AppBskyActorSearchActorsTypeahead.QueryParams,\n opts?: AppBskyActorSearchActorsTypeahead.CallOptions,\n ): Promise<AppBskyActorSearchActorsTypeahead.Response> {\n return this._service.xrpc\n .call('app.bsky.actor.searchActorsTypeahead', params, undefined, opts)\n .catch((e) => {\n throw AppBskyActorSearchActorsTypeahead.toKnownErr(e)\n })\n }\n}\n\nexport class ProfileRecord {\n _service: AtpServiceClient\n\n constructor(service: AtpServiceClient) {\n this._service = service\n }\n\n async list(\n params: Omit<ComAtprotoRepoListRecords.QueryParams, 'collection'>,\n ): Promise<{\n cursor?: string\n records: { uri: string; value: AppBskyActorProfile.Record }[]\n }> {\n const res = await this._service.xrpc.call('com.atproto.repo.listRecords', {\n collection: 'app.bsky.actor.profile',\n ...params,\n })\n return res.data\n }\n\n async get(\n params: Omit<ComAtprotoRepoGetRecord.QueryParams, 'collection'>,\n ): Promise<{ uri: string; cid: string; value: AppBskyActorProfile.Record }> {\n const res = await this._service.xrpc.call('com.atproto.repo.getRecord', {\n collection: 'app.bsky.actor.profile',\n ...params,\n })\n return res.data\n }\n\n async create(\n params: Omit<\n ComAtprotoRepoCreateRecord.InputSchema,\n 'collection' | 'record'\n >,\n record: AppBskyActorProfile.Record,\n headers?: Record<string, string>,\n ): Promise<{ uri: string; cid: string }> {\n record.$type = 'app.bsky.actor.profile'\n const res = await this._service.xrpc.call(\n 'com.atproto.repo.createRecord',\n undefined,\n { collection: 'app.bsky.actor.profile', rkey: 'self', ...params, record },\n { encoding: 'application/json', headers },\n )\n return res.data\n }\n\n async delete(\n params: Omit<ComAtprotoRepoDeleteRecord.InputSchema, 'collection'>,\n headers?: Record<string, string>,\n ): Promise<void> {\n await this._service.xrpc.call(\n 'com.atproto.repo.deleteRecord',\n undefined,\n { collection: 'app.bsky.actor.profile', ...params },\n { headers },\n )\n }\n}\n\nexport class EmbedNS {\n _service: AtpServiceClient\n\n constructor(service: AtpServiceClient) {\n this._service = service\n }\n}\n\nexport class FeedNS {\n _service: AtpServiceClient\n like: LikeRecord\n post: PostRecord\n repost: RepostRecord\n\n constructor(service: AtpServiceClient) {\n this._service = service\n this.like = new LikeRecord(service)\n this.post = new PostRecord(service)\n this.repost = new RepostRecord(service)\n }\n\n getAuthorFeed(\n params?: AppBskyFeedGetAuthorFeed.QueryParams,\n opts?: AppBskyFeedGetAuthorFeed.CallOptions,\n ): Promise<AppBskyFeedGetAuthorFeed.Response> {\n return this._service.xrpc\n .call('app.bsky.feed.getAuthorFeed', params, undefined, opts)\n .catch((e) => {\n throw AppBskyFeedGetAuthorFeed.toKnownErr(e)\n })\n }\n\n getLikes(\n params?: AppBskyFeedGetLikes.QueryParams,\n opts?: AppBskyFeedGetLikes.CallOptions,\n ): Promise<AppBskyFeedGetLikes.Response> {\n return this._service.xrpc\n .call('app.bsky.feed.getLikes', params, undefined, opts)\n .catch((e) => {\n throw AppBskyFeedGetLikes.toKnownErr(e)\n })\n }\n\n getPostThread(\n params?: AppBskyFeedGetPostThread.QueryParams,\n opts?: AppBskyFeedGetPostThread.CallOptions,\n ): Promise<AppBskyFeedGetPostThread.Response> {\n return this._service.xrpc\n .call('app.bsky.feed.getPostThread', params, undefined, opts)\n .catch((e) => {\n throw AppBskyFeedGetPostThread.toKnownErr(e)\n })\n }\n\n getPosts(\n params?: AppBskyFeedGetPosts.QueryParams,\n opts?: AppBskyFeedGetPosts.CallOptions,\n ): Promise<AppBskyFeedGetPosts.Response> {\n return this._service.xrpc\n .call('app.bsky.feed.getPosts', params, undefined, opts)\n .catch((e) => {\n throw AppBskyFeedGetPosts.toKnownErr(e)\n })\n }\n\n getRepostedBy(\n params?: AppBskyFeedGetRepostedBy.QueryParams,\n opts?: AppBskyFeedGetRepostedBy.CallOptions,\n ): Promise<AppBskyFeedGetRepostedBy.Response> {\n return this._service.xrpc\n .call('app.bsky.feed.getRepostedBy', params, undefined, opts)\n .catch((e) => {\n throw AppBskyFeedGetRepostedBy.toKnownErr(e)\n })\n }\n\n getTimeline(\n params?: AppBskyFeedGetTimeline.QueryParams,\n opts?: AppBskyFeedGetTimeline.CallOptions,\n ): Promise<AppBskyFeedGetTimeline.Response> {\n return this._service.xrpc\n .call('app.bsky.feed.getTimeline', params, undefined, opts)\n .catch((e) => {\n throw AppBskyFeedGetTimeline.toKnownErr(e)\n })\n }\n}\n\nexport class LikeRecord {\n _service: AtpServiceClient\n\n constructor(service: AtpServiceClient) {\n this._service = service\n }\n\n async list(\n params: Omit<ComAtprotoRepoListRecords.QueryParams, 'collection'>,\n ): Promise<{\n cursor?: string\n records: { uri: string; value: AppBskyFeedLike.Record }[]\n }> {\n const res = await this._service.xrpc.call('com.atproto.repo.listRecords', {\n collection: 'app.bsky.feed.like',\n ...params,\n })\n return res.data\n }\n\n async get(\n params: Omit<ComAtprotoRepoGetRecord.QueryParams, 'collection'>,\n ): Promise<{ uri: string; cid: string; value: AppBskyFeedLike.Record }> {\n const res = await this._service.xrpc.call('com.atproto.repo.getRecord', {\n collection: 'app.bsky.feed.like',\n ...params,\n })\n return res.data\n }\n\n async create(\n params: Omit<\n ComAtprotoRepoCreateRecord.InputSchema,\n 'collection' | 'record'\n >,\n record: AppBskyFeedLike.Record,\n headers?: Record<string, string>,\n ): Promise<{ uri: string; cid: string }> {\n record.$type = 'app.bsky.feed.like'\n const res = await this._service.xrpc.call(\n 'com.atproto.repo.createRecord',\n undefined,\n { collection: 'app.bsky.feed.like', ...params, record },\n { encoding: 'application/json', headers },\n )\n return res.data\n }\n\n async delete(\n params: Omit<ComAtprotoRepoDeleteRecord.InputSchema, 'collection'>,\n headers?: Record<string, string>,\n ): Promise<void> {\n await this._service.xrpc.call(\n 'com.atproto.repo.deleteRecord',\n undefined,\n { collection: 'app.bsky.feed.like', ...params },\n { headers },\n )\n }\n}\n\nexport class PostRecord {\n _service: AtpServiceClient\n\n constructor(service: AtpServiceClient) {\n this._service = service\n }\n\n async list(\n params: Omit<ComAtprotoRepoListRecords.QueryParams, 'collection'>,\n ): Promise<{\n cursor?: string\n records: { uri: string; value: AppBskyFeedPost.Record }[]\n }> {\n const res = await this._service.xrpc.call('com.atproto.repo.listRecords', {\n collection: 'app.bsky.feed.post',\n ...params,\n })\n return res.data\n }\n\n async get(\n params: Omit<ComAtprotoRepoGetRecord.QueryParams, 'collection'>,\n ): Promise<{ uri: string; cid: string; value: AppBskyFeedPost.Record }> {\n const res = await this._service.xrpc.call('com.atproto.repo.getRecord', {\n collection: 'app.bsky.feed.post',\n ...params,\n })\n return res.data\n }\n\n async create(\n params: Omit<\n ComAtprotoRepoCreateRecord.InputSchema,\n 'collection' | 'record'\n >,\n record: AppBskyFeedPost.Record,\n headers?: Record<string, string>,\n ): Promise<{ uri: string; cid: string }> {\n record.$type = 'app.bsky.feed.post'\n const res = await this._service.xrpc.call(\n 'com.atproto.repo.createRecord',\n undefined,\n { collection: 'app.bsky.feed.post', ...params, record },\n { encoding: 'application/json', headers },\n )\n return res.data\n }\n\n async delete(\n params: Omit<ComAtprotoRepoDeleteRecord.InputSchema, 'collection'>,\n headers?: Record<string, string>,\n ): Promise<void> {\n await this._service.xrpc.call(\n 'com.atproto.repo.deleteRecord',\n undefined,\n { collection: 'app.bsky.feed.post', ...params },\n { headers },\n )\n }\n}\n\nexport class RepostRecord {\n _service: AtpServiceClient\n\n constructor(service: AtpServiceClient) {\n this._service = service\n }\n\n async list(\n params: Omit<ComAtprotoRepoListRecords.QueryParams, 'collection'>,\n ): Promise<{\n cursor?: string\n records: { uri: string; value: AppBskyFeedRepost.Record }[]\n }> {\n const res = await this._service.xrpc.call('com.atproto.repo.listRecords', {\n collection: 'app.bsky.feed.repost',\n ...params,\n })\n return res.data\n }\n\n async get(\n params: Omit<ComAtprotoRepoGetRecord.QueryParams, 'collection'>,\n ): Promise<{ uri: string; cid: string; value: AppBskyFeedRepost.Record }> {\n const res = await this._service.xrpc.call('com.atproto.repo.getRecord', {\n collection: 'app.bsky.feed.repost',\n ...params,\n })\n return res.data\n }\n\n async create(\n params: Omit<\n ComAtprotoRepoCreateRecord.InputSchema,\n 'collection' | 'record'\n >,\n record: AppBskyFeedRepost.Record,\n headers?: Record<string, string>,\n ): Promise<{ uri: string; cid: string }> {\n record.$type = 'app.bsky.feed.repost'\n const res = await this._service.xrpc.call(\n 'com.atproto.repo.createRecord',\n undefined,\n { collection: 'app.bsky.feed.repost', ...params, record },\n { encoding: 'application/json', headers },\n )\n return res.data\n }\n\n async delete(\n params: Omit<ComAtprotoRepoDeleteRecord.InputSchema, 'collection'>,\n headers?: Record<string, string>,\n ): Promise<void> {\n await this._service.xrpc.call(\n 'com.atproto.repo.deleteRecord',\n undefined,\n { collection: 'app.bsky.feed.repost', ...params },\n { headers },\n )\n }\n}\n\nexport class GraphNS {\n _service: AtpServiceClient\n block: BlockRecord\n follow: FollowRecord\n\n constructor(service: AtpServiceClient) {\n this._service = service\n this.block = new BlockRecord(service)\n this.follow = new FollowRecord(service)\n }\n\n getBlocks(\n params?: AppBskyGraphGetBlocks.QueryParams,\n opts?: AppBskyGraphGetBlocks.CallOptions,\n ): Promise<AppBskyGraphGetBlocks.Response> {\n return this._service.xrpc\n .call('app.bsky.graph.getBlocks', params, undefined, opts)\n .catch((e) => {\n throw AppBskyGraphGetBlocks.toKnownErr(e)\n })\n }\n\n getFollowers(\n params?: AppBskyGraphGetFollowers.QueryParams,\n opts?: AppBskyGraphGetFollowers.CallOptions,\n ): Promise<AppBskyGraphGetFollowers.Response> {\n return this._service.xrpc\n .call('app.bsky.graph.getFollowers', params, undefined, opts)\n .catch((e) => {\n throw AppBskyGraphGetFollowers.toKnownErr(e)\n })\n }\n\n getFollows(\n params?: AppBskyGraphGetFollows.QueryParams,\n opts?: AppBskyGraphGetFollows.CallOptions,\n ): Promise<AppBskyGraphGetFollows.Response> {\n return this._service.xrpc\n .call('app.bsky.graph.getFollows', params, undefined, opts)\n .catch((e) => {\n throw AppBskyGraphGetFollows.toKnownErr(e)\n })\n }\n\n getMutes(\n params?: AppBskyGraphGetMutes.QueryParams,\n opts?: AppBskyGraphGetMutes.CallOptions,\n ): Promise<AppBskyGraphGetMutes.Response> {\n return this._service.xrpc\n .call('app.bsky.graph.getMutes', params, undefined, opts)\n .catch((e) => {\n throw AppBskyGraphGetMutes.toKnownErr(e)\n })\n }\n\n muteActor(\n data?: AppBskyGraphMuteActor.InputSchema,\n opts?: AppBskyGraphMuteActor.CallOptions,\n ): Promise<AppBskyGraphMuteActor.Response> {\n return this._service.xrpc\n .call('app.bsky.graph.muteActor', opts?.qp, data, opts)\n .catch((e) => {\n throw AppBskyGraphMuteActor.toKnownErr(e)\n })\n }\n\n unmuteActor(\n data?: AppBskyGraphUnmuteActor.InputSchema,\n opts?: AppBskyGraphUnmuteActor.CallOptions,\n ): Promise<AppBskyGraphUnmuteActor.Response> {\n return this._service.xrpc\n .call('app.bsky.graph.unmuteActor', opts?.qp, data, opts)\n .catch((e) => {\n throw AppBskyGraphUnmuteActor.toKnownErr(e)\n })\n }\n}\n\nexport class BlockRecord {\n _service: AtpServiceClient\n\n constructor(service: AtpServiceClient) {\n this._service = service\n }\n\n async list(\n params: Omit<ComAtprotoRepoListRecords.QueryParams, 'collection'>,\n ): Promise<{\n cursor?: string\n records: { uri: string; value: AppBskyGraphBlock.Record }[]\n }> {\n const res = await this._service.xrpc.call('com.atproto.repo.listRecords', {\n collection: 'app.bsky.graph.block',\n ...params,\n })\n return res.data\n }\n\n async get(\n params: Omit<ComAtprotoRepoGetRecord.QueryParams, 'collection'>,\n ): Promise<{ uri: string; cid: string; value: AppBskyGraphBlock.Record }> {\n const res = await this._service.xrpc.call('com.atproto.repo.getRecord', {\n collection: 'app.bsky.graph.block',\n ...params,\n })\n return res.data\n }\n\n async create(\n params: Omit<\n ComAtprotoRepoCreateRecord.InputSchema,\n 'collection' | 'record'\n >,\n record: AppBskyGraphBlock.Record,\n headers?: Record<string, string>,\n ): Promise<{ uri: string; cid: string }> {\n record.$type = 'app.bsky.graph.block'\n const res = await this._service.xrpc.call(\n 'com.atproto.repo.createRecord',\n undefined,\n { collection: 'app.bsky.graph.block', ...params, record },\n { encoding: 'application/json', headers },\n )\n return res.data\n }\n\n async delete(\n params: Omit<ComAtprotoRepoDeleteRecord.InputSchema, 'collection'>,\n headers?: Record<string, string>,\n ): Promise<void> {\n await this._service.xrpc.call(\n 'com.atproto.repo.deleteRecord',\n undefined,\n { collection: 'app.bsky.graph.block', ...params },\n { headers },\n )\n }\n}\n\nexport class FollowRecord {\n _service: AtpServiceClient\n\n constructor(service: AtpServiceClient) {\n this._service = service\n }\n\n async list(\n params: Omit<ComAtprotoRepoListRecords.QueryParams, 'collection'>,\n ): Promise<{\n cursor?: string\n records: { uri: string; value: AppBskyGraphFollow.Record }[]\n }> {\n const res = await this._service.xrpc.call('com.atproto.repo.listRecords', {\n collection: 'app.bsky.graph.follow',\n ...params,\n })\n return res.data\n }\n\n async get(\n params: Omit<ComAtprotoRepoGetRecord.QueryParams, 'collection'>,\n ): Promise<{ uri: string; cid: string; value: AppBskyGraphFollow.Record }> {\n const res = await this._service.xrpc.call('com.atproto.repo.getRecord', {\n collection: 'app.bsky.graph.follow',\n ...params,\n })\n return res.data\n }\n\n async create(\n params: Omit<\n ComAtprotoRepoCreateRecord.InputSchema,\n 'collection' | 'record'\n >,\n record: AppBskyGraphFollow.Record,\n headers?: Record<string, string>,\n ): Promise<{ uri: string; cid: string }> {\n record.$type = 'app.bsky.graph.follow'\n const res = await this._service.xrpc.call(\n 'com.atproto.repo.createRecord',\n undefined,\n { collection: 'app.bsky.graph.follow', ...params, record },\n { encoding: 'application/json', headers },\n )\n return res.data\n }\n\n async delete(\n params: Omit<ComAtprotoRepoDeleteRecord.InputSchema, 'collection'>,\n headers?: Record<string, string>,\n ): Promise<void> {\n await this._service.xrpc.call(\n 'com.atproto.repo.deleteRecord',\n undefined,\n { collection: 'app.bsky.graph.follow', ...params },\n { headers },\n )\n }\n}\n\nexport class NotificationNS {\n _service: AtpServiceClient\n\n constructor(service: AtpServiceClient) {\n this._service = service\n }\n\n getUnreadCount(\n params?: AppBskyNotificationGetUnreadCount.QueryParams,\n opts?: AppBskyNotificationGetUnreadCount.CallOptions,\n ): Promise<AppBskyNotificationGetUnreadCount.Response> {\n return this._service.xrpc\n .call('app.bsky.notification.getUnreadCount', params, undefined, opts)\n .catch((e) => {\n throw AppBskyNotificationGetUnreadCount.toKnownErr(e)\n })\n }\n\n listNotifications(\n params?: AppBskyNotificationListNotifications.QueryParams,\n opts?: AppBskyNotificationListNotifications.CallOptions,\n ): Promise<AppBskyNotificationListNotifications.Response> {\n return this._service.xrpc\n .call('app.bsky.notification.listNotifications', params, undefined, opts)\n .catch((e) => {\n throw AppBskyNotificationListNotifications.toKnownErr(e)\n })\n }\n\n updateSeen(\n data?: AppBskyNotificationUpdateSeen.InputSchema,\n opts?: AppBskyNotificationUpdateSeen.CallOptions,\n ): Promise<AppBskyNotificationUpdateSeen.Response> {\n return this._service.xrpc\n .call('app.bsky.notification.updateSeen', opts?.qp, data, opts)\n .catch((e) => {\n throw AppBskyNotificationUpdateSeen.toKnownErr(e)\n })\n }\n}\n\nexport class RichtextNS {\n _service: AtpServiceClient\n\n constructor(service: AtpServiceClient) {\n this._service = service\n }\n}\n\nexport class UnspeccedNS {\n _service: AtpServiceClient\n\n constructor(service: AtpServiceClient) {\n this._service = service\n }\n\n getPopular(\n params?: AppBskyUnspeccedGetPopular.QueryParams,\n opts?: AppBskyUnspeccedGetPopular.CallOptions,\n ): Promise<AppBskyUnspeccedGetPopular.Response> {\n return this._service.xrpc\n .call('app.bsky.unspecced.getPopular', params, undefined, opts)\n .catch((e) => {\n throw AppBskyUnspeccedGetPopular.toKnownErr(e)\n })\n }\n}\n", "import { ErrorResponseBody, errorResponseBody } from '@atproto/xrpc'\nimport { defaultFetchHandler } from '@atproto/xrpc'\nimport {\n AtpBaseClient,\n AtpServiceClient,\n ComAtprotoServerCreateAccount,\n ComAtprotoServerCreateSession,\n ComAtprotoServerGetSession,\n ComAtprotoServerRefreshSession,\n ComAtprotoRepoUploadBlob,\n} from './client'\nimport {\n AtpSessionData,\n AtpAgentCreateAccountOpts,\n AtpAgentLoginOpts,\n AtpAgentFetchHandler,\n AtpAgentFetchHandlerResponse,\n AtpAgentGlobalOpts,\n AtpPersistSessionHandler,\n AtpAgentOpts,\n} from './types'\n\nconst REFRESH_SESSION = 'com.atproto.server.refreshSession'\n\n/**\n * An ATP \"Agent\"\n * Manages session token lifecycles and provides convenience methods.\n */\nexport class AtpAgent {\n service: URL\n api: AtpServiceClient\n session?: AtpSessionData\n\n private _baseClient: AtpBaseClient\n private _persistSession?: AtpPersistSessionHandler\n private _refreshSessionPromise: Promise<void> | undefined\n\n get com() {\n return this.api.com\n }\n\n /**\n * The `fetch` implementation; must be implemented for your platform.\n */\n static fetch: AtpAgentFetchHandler | undefined = defaultFetchHandler\n\n /**\n * Configures the API globally.\n */\n static configure(opts: AtpAgentGlobalOpts) {\n AtpAgent.fetch = opts.fetch\n }\n\n constructor(opts: AtpAgentOpts) {\n this.service =\n opts.service instanceof URL ? opts.service : new URL(opts.service)\n this._persistSession = opts.persistSession\n\n // create an ATP client instance for this agent\n this._baseClient = new AtpBaseClient()\n this._baseClient.xrpc.fetch = this._fetch.bind(this) // patch its fetch implementation\n this.api = this._baseClient.service(opts.service)\n }\n\n /**\n * Is there any active session?\n */\n get hasSession() {\n return !!this.session\n }\n\n /**\n * Sets the \"Persist Session\" method which can be used to store access tokens\n * as they change.\n */\n setPersistSessionHandler(handler?: AtpPersistSessionHandler) {\n this._persistSession = handler\n }\n\n /**\n * Create a new account and hydrate its session in this agent.\n */\n async createAccount(\n opts: AtpAgentCreateAccountOpts,\n ): Promise<ComAtprotoServerCreateAccount.Response> {\n try {\n const res = await this.api.com.atproto.server.createAccount({\n handle: opts.handle,\n password: opts.password,\n email: opts.email,\n inviteCode: opts.inviteCode,\n })\n this.session = {\n accessJwt: res.data.accessJwt,\n refreshJwt: res.data.refreshJwt,\n handle: res.data.handle,\n did: res.data.did,\n email: opts.email,\n }\n return res\n } catch (e) {\n this.session = undefined\n throw e\n } finally {\n if (this.session) {\n this._persistSession?.('create', this.session)\n } else {\n this._persistSession?.('create-failed', undefined)\n }\n }\n }\n\n /**\n * Start a new session with this agent.\n */\n async login(\n opts: AtpAgentLoginOpts,\n ): Promise<ComAtprotoServerCreateSession.Response> {\n try {\n const res = await this.api.com.atproto.server.createSession({\n identifier: opts.identifier,\n password: opts.password,\n })\n this.session = {\n accessJwt: res.data.accessJwt,\n refreshJwt: res.data.refreshJwt,\n handle: res.data.handle,\n did: res.data.did,\n email: res.data.email,\n }\n return res\n } catch (e) {\n this.session = undefined\n throw e\n } finally {\n if (this.session) {\n this._persistSession?.('create', this.session)\n } else {\n this._persistSession?.('create-failed', undefined)\n }\n }\n }\n\n /**\n * Resume a pre-existing session with this agent.\n */\n async resumeSession(\n session: AtpSessionData,\n ): Promise<ComAtprotoServerGetSession.Response> {\n try {\n this.session = session\n const res = await this.api.com.atproto.server.getSession()\n if (!res.success || res.data.did !== this.session.did) {\n throw new Error('Invalid session')\n }\n this.session.email = res.data.email\n this.session.handle = res.data.handle\n return res\n } catch (e) {\n this.session = undefined\n throw e\n } finally {\n if (this.session) {\n this._persistSession?.('create', this.session)\n } else {\n this._persistSession?.('create-failed', undefined)\n }\n }\n }\n\n /**\n * Internal helper to add authorization headers to requests.\n */\n private _addAuthHeader(reqHeaders: Record<string, string>) {\n if (!reqHeaders.authorization && this.session?.accessJwt) {\n return {\n ...reqHeaders,\n authorization: `Bearer ${this.session.accessJwt}`,\n }\n }\n return reqHeaders\n }\n\n /**\n * Internal fetch handler which adds access-token management\n */\n private async _fetch(\n reqUri: string,\n reqMethod: string,\n reqHeaders: Record<string, string>,\n reqBody: any,\n ): Promise<AtpAgentFetchHandlerResponse> {\n if (!AtpAgent.fetch) {\n throw new Error('AtpAgent fetch() method not configured')\n }\n\n // wait for any active session-refreshes to finish\n await this._refreshSessionPromise\n\n // send the request\n let res = await AtpAgent.fetch(\n reqUri,\n reqMethod,\n this._addAuthHeader(reqHeaders),\n reqBody,\n )\n\n // handle session-refreshes as needed\n if (isErrorResponse(res, ['ExpiredToken']) && this.session?.refreshJwt) {\n // attempt refresh\n await this._refreshSession()\n\n // resend the request with the new access token\n res = await AtpAgent.fetch(\n reqUri,\n reqMethod,\n this._addAuthHeader(reqHeaders),\n reqBody,\n )\n }\n\n return res\n }\n\n /**\n * Internal helper to refresh sessions\n * - Wraps the actual implementation in a promise-guard to ensure only\n * one refresh is attempted at a time.\n */\n private async _refreshSession() {\n if (this._refreshSessionPromise) {\n return this._refreshSessionPromise\n }\n this._refreshSessionPromise = this._refreshSessionInner()\n try {\n await this._refreshSessionPromise\n } finally {\n this._refreshSessionPromise = undefined\n }\n }\n\n /**\n * Internal helper to refresh sessions (actual behavior)\n */\n private async _refreshSessionInner() {\n if (!AtpAgent.fetch) {\n throw new Error('AtpAgent fetch() method not configured')\n }\n if (!this.session?.refreshJwt) {\n return\n }\n\n // send the refresh request\n const url = new URL(this.service.origin)\n url.pathname = `/xrpc/${REFRESH_SESSION}`\n const res = await AtpAgent.fetch(\n url.toString(),\n 'POST',\n {\n authorization: `Bearer ${this.session.refreshJwt}`,\n },\n undefined,\n )\n\n if (isErrorResponse(res, ['ExpiredToken', 'InvalidToken'])) {\n // failed due to a bad refresh token\n this.session = undefined\n this._persistSession?.('expired', undefined)\n } else if (isNewSessionObject(this._baseClient, res.body)) {\n // succeeded, update the session\n this.session = {\n accessJwt: res.body.accessJwt,\n refreshJwt: res.body.refreshJwt,\n handle: res.body.handle,\n did: res.body.did,\n }\n this._persistSession?.('update', this.session)\n }\n // else: other failures should be ignored - the issue will\n // propagate in the _fetch() handler's second attempt to run\n // the request\n }\n\n /**\n * Upload a binary blob to the server\n */\n uploadBlob: typeof this.api.com.atproto.repo.uploadBlob = (data, opts) =>\n this.api.com.atproto.repo.uploadBlob(data, opts)\n\n /**\n * Resolve a handle to a DID\n */\n resolveHandle: typeof this.api.com.atproto.identity.resolveHandle = (\n params,\n opts,\n ) => this.api.com.atproto.identity.resolveHandle(params, opts)\n\n /**\n * Change the user's handle\n */\n updateHandle: typeof this.api.com.atproto.identity.updateHandle = (\n data,\n opts,\n ) => this.api.com.atproto.identity.updateHandle(data, opts)\n\n /**\n * Create a moderation report\n */\n createModerationReport: typeof this.api.com.atproto.moderation.createReport =\n (data, opts) => this.api.com.atproto.moderation.createReport(data, opts)\n}\n\nfunction isErrorObject(v: unknown): v is ErrorResponseBody {\n return errorResponseBody.safeParse(v).success\n}\n\nfunction isErrorResponse(\n res: AtpAgentFetchHandlerResponse,\n errorNames: string[],\n): boolean {\n if (res.status !== 400) {\n return false\n }\n if (!isErrorObject(res.body)) {\n return false\n }\n return (\n typeof res.body.error === 'string' && errorNames.includes(res.body.error)\n )\n}\n\nfunction isNewSessionObject(\n client: AtpBaseClient,\n v: unknown,\n): v is ComAtprotoServerRefreshSession.OutputSchema {\n try {\n client.xrpc.lex.assertValidXrpcOutput(\n 'com.atproto.server.refreshSession',\n v,\n )\n return true\n } catch {\n return false\n }\n}\n", "/**\n * Javascript uses utf16-encoded strings while most environments and specs\n * have standardized around utf8 (including JSON).\n *\n * After some lengthy debated we decided that richtext facets need to use\n * utf8 indices. This means we need tools to convert indices between utf8\n * and utf16, and that's precisely what this library handles.\n */\n\nimport { graphemeLen } from '@atproto/common-web'\n\nconst encoder = new TextEncoder()\nconst decoder = new TextDecoder()\n\nexport class UnicodeString {\n utf16: string\n utf8: Uint8Array\n private _graphemeLen?: number | undefined\n\n constructor(utf16: string) {\n this.utf16 = utf16\n this.utf8 = encoder.encode(utf16)\n }\n\n get length() {\n return this.utf8.byteLength\n }\n\n get graphemeLength() {\n if (!this._graphemeLen) {\n this._graphemeLen = graphemeLen(this.utf16)\n }\n return this._graphemeLen\n }\n\n slice(start?: number, end?: number): string {\n return decoder.decode(this.utf8.slice(start, end))\n }\n\n utf16IndexToUtf8Index(i: number) {\n return encoder.encode(this.utf16.slice(0, i)).byteLength\n }\n\n toString() {\n return this.utf16\n }\n}\n", "import { RichText } from './rich-text'\nimport { UnicodeString } from './unicode'\n\nconst EXCESS_SPACE_RE = /[\\r\\n]([\\u00AD\\u2060\\u200D\\u200C\\u200B\\s]*[\\r\\n]){2,}/\nconst REPLACEMENT_STR = '\\n\\n'\n\nexport function sanitizeRichText(\n richText: RichText,\n opts: { cleanNewlines?: boolean },\n) {\n if (opts.cleanNewlines) {\n richText = clean(richText, EXCESS_SPACE_RE, REPLACEMENT_STR)\n }\n return richText\n}\n\nfunction clean(\n richText: RichText,\n targetRegexp: RegExp,\n replacementString: string,\n): RichText {\n richText = richText.clone()\n\n let match = richText.unicodeText.utf16.match(targetRegexp)\n while (match && typeof match.index !== 'undefined') {\n const oldText = richText.unicodeText\n const removeStartIndex = richText.unicodeText.utf16IndexToUtf8Index(\n match.index,\n )\n const removeEndIndex = removeStartIndex + new UnicodeString(match[0]).length\n richText.delete(removeStartIndex, removeEndIndex)\n if (richText.unicodeText.utf16 === oldText.utf16) {\n break // sanity check\n }\n richText.insert(removeStartIndex, replacementString)\n match = richText.unicodeText.utf16.match(targetRegexp)\n }\n\n return richText\n}\n", "import TLDs from 'tlds'\nimport { AppBskyRichtextFacet } from '../client'\nimport { UnicodeString } from './unicode'\n\nexport type Facet = AppBskyRichtextFacet.Main\n\nexport function detectFacets(text: UnicodeString): Facet[] | undefined {\n let match\n const facets: Facet[] = []\n {\n // mentions\n const re = /(^|\\s|\\()(@)([a-zA-Z0-9.-]+)(\\b)/g\n while ((match = re.exec(text.utf16))) {\n if (!isValidDomain(match[3]) && !match[3].endsWith('.test')) {\n continue // probably not a handle\n }\n\n const start = text.utf16.indexOf(match[3], match.index) - 1\n facets.push({\n $type: 'app.bsky.richtext.facet',\n index: {\n byteStart: text.utf16IndexToUtf8Index(start),\n byteEnd: text.utf16IndexToUtf8Index(start + match[3].length + 1),\n },\n features: [\n {\n $type: 'app.bsky.richtext.facet#mention',\n did: match[3], // must be resolved afterwards\n },\n ],\n })\n }\n }\n {\n // links\n const re =\n /(^|\\s|\\()((https?:\\/\\/[\\S]+)|((?<domain>[a-z][a-z0-9]*(\\.[a-z0-9]+)+)[\\S]*))/gim\n while ((match = re.exec(text.utf16))) {\n let uri = match[2]\n if (!uri.startsWith('http')) {\n const domain = match.groups?.domain\n if (!domain || !isValidDomain(domain)) {\n continue\n }\n uri = `https://${uri}`\n }\n const start = text.utf16.indexOf(match[2], match.index)\n const index = { start, end: start + match[2].length }\n // strip ending puncuation\n if (/[.,;!?]$/.test(uri)) {\n uri = uri.slice(0, -1)\n index.end--\n }\n if (/[)]$/.test(uri) && !uri.includes('(')) {\n uri = uri.slice(0, -1)\n index.end--\n }\n facets.push({\n index: {\n byteStart: text.utf16IndexToUtf8Index(index.start),\n byteEnd: text.utf16IndexToUtf8Index(index.end),\n },\n features: [\n {\n $type: 'app.bsky.richtext.facet#link',\n uri,\n },\n ],\n })\n }\n }\n return facets.length > 0 ? facets : undefined\n}\n\nfunction isValidDomain(str: string): boolean {\n return !!TLDs.find((tld) => {\n const i = str.lastIndexOf(tld)\n if (i === -1) {\n return false\n }\n return str.charAt(i - 1) === '.' && i === str.length - tld.length\n })\n}\n", "/*\n= Rich Text Manipulation\n\nWhen we sanitize rich text, we have to update the entity indices as the\ntext is modified. This can be modeled as inserts() and deletes() of the\nrich text string. The possible scenarios are outlined below, along with\ntheir expected behaviors.\n\nNOTE: Slices are start inclusive, end exclusive\n\n== richTextInsert()\n\nTarget string:\n\n 0 1 2 3 4 5 6 7 8 910 // string indices\n h e l l o w o r l d // string value\n ^-------^ // target slice {start: 2, end: 7}\n\nScenarios:\n\nA: ^ // insert \"test\" at 0\nB: ^ // insert \"test\" at 4\nC: ^ // insert \"test\" at 8\n\nA = before -> move both by num added\nB = inner -> move end by num added\nC = after -> noop\n\nResults:\n\nA: 0 1 2 3 4 5 6 7 8 910 // string indices\n t e s t h e l l o w // string value\n ^-------^ // target slice {start: 6, end: 11}\n\nB: 0 1 2 3 4 5 6 7 8 910 // string indices\n h e l l t e s t o w // string value\n ^---------------^ // target slice {start: 2, end: 11}\n\nC: 0 1 2 3 4 5 6 7 8 910 // string indices\n h e l l o w o t e s // string value\n ^-------^ // target slice {start: 2, end: 7}\n\n== richTextDelete()\n\nTarget string:\n\n 0 1 2 3 4 5 6 7 8 910 // string indices\n h e l l o w o r l d // string value\n ^-------^ // target slice {start: 2, end: 7}\n\nScenarios:\n\nA: ^---------------^ // remove slice {start: 0, end: 9}\nB: ^-----^ // remove slice {start: 7, end: 11}\nC: ^-----------^ // remove slice {start: 4, end: 11}\nD: ^-^ // remove slice {start: 3, end: 5}\nE: ^-----^ // remove slice {start: 1, end: 5}\nF: ^-^ // remove slice {start: 0, end: 2}\n\nA = entirely outer -> delete slice\nB = entirely after -> noop\nC = partially after -> move end to remove-start\nD = entirely inner -> move end by num removed\nE = partially before -> move start to remove-start index, move end by num removed\nF = entirely before -> move both by num removed\n\nResults:\n\nA: 0 1 2 3 4 5 6 7 8 910 // string indices\n l d // string value\n // target slice (deleted)\n\nB: 0 1 2 3 4 5 6 7 8 910 // string indices\n h e l l o w // string value\n ^-------^ // target slice {start: 2, end: 7}\n\nC: 0 1 2 3 4 5 6 7 8 910 // string indices\n h e l l // string value\n ^-^ // target slice {start: 2, end: 4}\n\nD: 0 1 2 3 4 5 6 7 8 910 // string indices\n h e l w o r l d // string value\n ^---^ // target slice {start: 2, end: 5}\n\nE: 0 1 2 3 4 5 6 7 8 910 // string indices\n h w o r l d // string value\n ^-^ // target slice {start: 1, end: 3}\n\nF: 0 1 2 3 4 5 6 7 8 910 // string indices\n l l o w o r l d // string value\n ^-------^ // target slice {start: 0, end: 5}\n */\n\nimport { AtpAgent } from '../agent'\nimport { AppBskyFeedPost, AppBskyRichtextFacet } from '../client'\nimport { UnicodeString } from './unicode'\nimport { sanitizeRichText } from './sanitization'\nimport { detectFacets } from './detection'\n\nexport type Facet = AppBskyRichtextFacet.Main\nexport type FacetLink = AppBskyRichtextFacet.Link\nexport type FacetMention = AppBskyRichtextFacet.Mention\nexport type Entity = AppBskyFeedPost.Entity\n\nexport interface RichTextProps {\n text: string\n facets?: Facet[]\n /**\n * @deprecated Use facets instead\n */\n entities?: Entity[]\n}\n\nexport interface RichTextOpts {\n cleanNewlines?: boolean\n}\n\nexport class RichTextSegment {\n constructor(public text: string, public facet?: Facet) {}\n\n get link(): FacetLink | undefined {\n const link = this.facet?.features.find(AppBskyRichtextFacet.isLink)\n if (AppBskyRichtextFacet.isLink(link)) {\n return link\n }\n return undefined\n }\n\n isLink() {\n return !!this.link\n }\n\n get mention(): FacetMention | undefined {\n const mention = this.facet?.features.find(AppBskyRichtextFacet.isMention)\n if (AppBskyRichtextFacet.isMention(mention)) {\n return mention\n }\n return undefined\n }\n\n isMention() {\n return !!this.mention\n }\n}\n\nexport class RichText {\n unicodeText: UnicodeString\n facets?: Facet[]\n\n constructor(props: RichTextProps, opts?: RichTextOpts) {\n this.unicodeText = new UnicodeString(props.text)\n this.facets = props.facets\n if (!this.facets?.length && props.entities?.length) {\n this.facets = entitiesToFacets(this.unicodeText, props.entities)\n }\n if (this.facets) {\n this.facets.sort(facetSort)\n }\n if (opts?.cleanNewlines) {\n sanitizeRichText(this, { cleanNewlines: true }).copyInto(this)\n }\n }\n\n get text() {\n return this.unicodeText.toString()\n }\n\n get length() {\n return this.unicodeText.length\n }\n\n get graphemeLength() {\n return this.unicodeText.graphemeLength\n }\n\n clone() {\n return new RichText({\n text: this.unicodeText.utf16,\n facets: cloneDeep(this.facets),\n })\n }\n\n copyInto(target: RichText) {\n target.unicodeText = this.unicodeText\n target.facets = cloneDeep(this.facets)\n }\n\n *segments(): Generator<RichTextSegment, void, void> {\n const facets = this.facets || []\n if (!facets.length) {\n yield new RichTextSegment(this.unicodeText.utf16)\n return\n }\n\n let textCursor = 0\n let facetCursor = 0\n do {\n const currFacet = facets[facetCursor]\n if (textCursor < currFacet.index.byteStart) {\n yield new RichTextSegment(\n this.unicodeText.slice(textCursor, currFacet.index.byteStart),\n )\n } else if (textCursor > currFacet.index.byteStart) {\n facetCursor++\n continue\n }\n if (currFacet.index.byteStart < currFacet.index.byteEnd) {\n const subtext = this.unicodeText.slice(\n currFacet.index.byteStart,\n currFacet.index.byteEnd,\n )\n if (!subtext.trim()) {\n // dont empty string entities\n yield new RichTextSegment(subtext)\n } else {\n yield new RichTextSegment(subtext, currFacet)\n }\n }\n textCursor = currFacet.index.byteEnd\n facetCursor++\n } while (facetCursor < facets.length)\n if (textCursor < this.unicodeText.length) {\n yield new RichTextSegment(\n this.unicodeText.slice(textCursor, this.unicodeText.length),\n )\n }\n }\n\n insert(insertIndex: number, insertText: string) {\n this.unicodeText = new UnicodeString(\n this.unicodeText.slice(0, insertIndex) +\n insertText +\n this.unicodeText.slice(insertIndex),\n )\n\n if (!this.facets?.length) {\n return this\n }\n\n const numCharsAdded = insertText.length\n for (const ent of this.facets) {\n // see comment at top of file for labels of each scenario\n // scenario A (before)\n if (insertIndex <= ent.index.byteStart) {\n // move both by num added\n ent.index.byteStart += numCharsAdded\n ent.index.byteEnd += numCharsAdded\n }\n // scenario B (inner)\n else if (\n insertIndex >= ent.index.byteStart &&\n insertIndex < ent.index.byteEnd\n ) {\n // move end by num added\n ent.index.byteEnd += numCharsAdded\n }\n // scenario C (after)\n // noop\n }\n return this\n }\n\n delete(removeStartIndex: number, removeEndIndex: number) {\n this.unicodeText = new UnicodeString(\n this.unicodeText.slice(0, removeStartIndex) +\n this.unicodeText.slice(removeEndIndex),\n )\n\n if (!this.facets?.length) {\n return this\n }\n\n const numCharsRemoved = removeEndIndex - removeStartIndex\n for (const ent of this.facets) {\n // see comment at top of file for labels of each scenario\n // scenario A (entirely outer)\n if (\n removeStartIndex <= ent.index.byteStart &&\n removeEndIndex >= ent.index.byteEnd\n ) {\n // delete slice (will get removed in final pass)\n ent.index.byteStart = 0\n ent.index.byteEnd = 0\n }\n // scenario B (entirely after)\n else if (removeStartIndex > ent.index.byteEnd) {\n // noop\n }\n // scenario C (partially after)\n else if (\n removeStartIndex > ent.index.byteStart &&\n removeStartIndex <= ent.index.byteEnd &&\n removeEndIndex > ent.index.byteEnd\n ) {\n // move end to remove start\n ent.index.byteEnd = removeStartIndex\n }\n // scenario D (entirely inner)\n else if (\n removeStartIndex >= ent.index.byteStart &&\n removeEndIndex <= ent.index.byteEnd\n ) {\n // move end by num removed\n ent.index.byteEnd -= numCharsRemoved\n }\n // scenario E (partially before)\n else if (\n removeStartIndex < ent.index.byteStart &&\n removeEndIndex >= ent.index.byteStart &&\n removeEndIndex <= ent.index.byteEnd\n ) {\n // move start to remove-start index, move end by num removed\n ent.index.byteStart = removeStartIndex\n ent.index.byteEnd -= numCharsRemoved\n }\n // scenario F (entirely before)\n else if (removeEndIndex < ent.index.byteStart) {\n // move both by num removed\n ent.index.byteStart -= numCharsRemoved\n ent.index.byteEnd -= numCharsRemoved\n }\n }\n\n // filter out any facets that were made irrelevant\n this.facets = this.facets.filter(\n (ent) => ent.index.byteStart < ent.index.byteEnd,\n )\n return this\n }\n\n /**\n * Detects facets such as links and mentions\n * Note: Overwrites the existing facets with auto-detected facets\n */\n async detectFacets(agent: AtpAgent) {\n this.facets = detectFacets(this.unicodeText)\n if (this.facets) {\n for (const facet of this.facets) {\n for (const feature of facet.features) {\n if (AppBskyRichtextFacet.isMention(feature)) {\n const did = await agent\n .resolveHandle({ handle: feature.did })\n .catch((_) => undefined)\n .then((res) => res?.data.did)\n feature.did = did || ''\n }\n }\n }\n this.facets.sort(facetSort)\n }\n }\n\n /**\n * Detects facets such as links and mentions but does not resolve them\n * Will produce invalid facets! For instance, mentions will not have their DIDs set.\n * Note: Overwrites the existing facets with auto-detected facets\n */\n detectFacetsWithoutResolution() {\n this.facets = detectFacets(this.unicodeText)\n if (this.facets) {\n this.facets.sort(facetSort)\n }\n }\n}\n\nconst facetSort = (a, b) => a.index.byteStart - b.index.byteStart\n\nfunction entitiesToFacets(text: UnicodeString, entities: Entity[]): Facet[] {\n const facets: Facet[] = []\n for (const ent of entities) {\n if (ent.type === 'link') {\n facets.push({\n $type: 'app.bsky.richtext.facet',\n index: {\n byteStart: text.utf16IndexToUtf8Index(ent.index.start),\n byteEnd: text.utf16IndexToUtf8Index(ent.index.end),\n },\n features: [{ $type: 'app.bsky.richtext.facet#link', uri: ent.value }],\n })\n } else if (ent.type === 'mention') {\n facets.push({\n $type: 'app.bsky.richtext.facet',\n index: {\n byteStart: text.utf16IndexToUtf8Index(ent.index.start),\n byteEnd: text.utf16IndexToUtf8Index(ent.index.end),\n },\n features: [\n { $type: 'app.bsky.richtext.facet#mention', did: ent.value },\n ],\n })\n }\n }\n return facets\n}\n\nfunction cloneDeep<T>(v: T): T {\n if (typeof v === 'undefined') {\n return v\n }\n return JSON.parse(JSON.stringify(v))\n}\n", "import { AtUri } from '@atproto/uri'\nimport { AtpAgent } from './agent'\nimport {\n AppBskyFeedPost,\n AppBskyActorProfile,\n ComAtprotoRepoPutRecord,\n} from './client'\n\nexport class BskyAgent extends AtpAgent {\n get app() {\n return this.api.app\n }\n\n getTimeline: typeof this.api.app.bsky.feed.getTimeline = (params, opts) =>\n this.api.app.bsky.feed.getTimeline(params, opts)\n\n getAuthorFeed: typeof this.api.app.bsky.feed.getAuthorFeed = (params, opts) =>\n this.api.app.bsky.feed.getAuthorFeed(params, opts)\n\n getPostThread: typeof this.api.app.bsky.feed.getPostThread = (params, opts) =>\n this.api.app.bsky.feed.getPostThread(params, opts)\n\n getPost: typeof this.api.app.bsky.feed.post.get = (params) =>\n this.api.app.bsky.feed.post.get(params)\n\n getPosts: typeof this.api.app.bsky.feed.getPosts = (params, opts) =>\n this.api.app.bsky.feed.getPosts(params, opts)\n\n getLikes: typeof this.api.app.bsky.feed.getLikes = (params, opts) =>\n this.api.app.bsky.feed.getLikes(params, opts)\n\n getRepostedBy: typeof this.api.app.bsky.feed.getRepostedBy = (params, opts) =>\n this.api.app.bsky.feed.getRepostedBy(params, opts)\n\n getFollows: typeof this.api.app.bsky.graph.getFollows = (params, opts) =>\n this.api.app.bsky.graph.getFollows(params, opts)\n\n getFollowers: typeof this.api.app.bsky.graph.getFollowers = (params, opts) =>\n this.api.app.bsky.graph.getFollowers(params, opts)\n\n getProfile: typeof this.api.app.bsky.actor.getProfile = (params, opts) =>\n this.api.app.bsky.actor.getProfile(params, opts)\n\n getProfiles: typeof this.api.app.bsky.actor.getProfiles = (params, opts) =>\n this.api.app.bsky.actor.getProfiles(params, opts)\n\n getSuggestions: typeof this.api.app.bsky.actor.getSuggestions = (\n params,\n opts,\n ) => this.api.app.bsky.actor.getSuggestions(params, opts)\n\n searchActors: typeof this.api.app.bsky.actor.searchActors = (params, opts) =>\n this.api.app.bsky.actor.searchActors(params, opts)\n\n searchActorsTypeahead: typeof this.api.app.bsky.actor.searchActorsTypeahead =\n (params, opts) =>\n this.api.app.bsky.actor.searchActorsTypeahead(params, opts)\n\n listNotifications: typeof this.api.app.bsky.notification.listNotifications = (\n params,\n opts,\n ) => this.api.app.bsky.notification.listNotifications(params, opts)\n\n countUnreadNotifications: typeof this.api.app.bsky.notification.getUnreadCount =\n (params, opts) =>\n this.api.app.bsky.notification.getUnreadCount(params, opts)\n\n async post(\n record: Partial<AppBskyFeedPost.Record> &\n Omit<AppBskyFeedPost.Record, 'createdAt'>,\n ) {\n if (!this.session) {\n throw new Error('Not logged in')\n }\n record.createdAt = record.createdAt || new Date().toISOString()\n return this.api.app.bsky.feed.post.create(\n { repo: this.session.did },\n record as AppBskyFeedPost.Record,\n )\n }\n\n async deletePost(postUri: string) {\n if (!this.session) {\n throw new Error('Not logged in')\n }\n const postUrip = new AtUri(postUri)\n return await this.api.app.bsky.feed.post.delete({\n repo: postUrip.hostname,\n rkey: postUrip.rkey,\n })\n }\n\n async like(uri: string, cid: string) {\n if (!this.session) {\n throw new Error('Not logged in')\n }\n return await this.api.app.bsky.feed.like.create(\n { repo: this.session.did },\n {\n subject: { uri, cid },\n createdAt: new Date().toISOString(),\n },\n )\n }\n\n async deleteLike(likeUri: string) {\n if (!this.session) {\n throw new Error('Not logged in')\n }\n const likeUrip = new AtUri(likeUri)\n return await this.api.app.bsky.feed.like.delete({\n repo: likeUrip.hostname,\n rkey: likeUrip.rkey,\n })\n }\n\n async repost(uri: string, cid: string) {\n if (!this.session) {\n throw new Error('Not logged in')\n }\n return await this.api.app.bsky.feed.repost.create(\n { repo: this.session.did },\n {\n subject: { uri, cid },\n createdAt: new Date().toISOString(),\n },\n )\n }\n\n async deleteRepost(repostUri: string) {\n if (!this.session) {\n throw new Error('Not logged in')\n }\n const repostUrip = new AtUri(repostUri)\n return await this.api.app.bsky.feed.repost.delete({\n repo: repostUrip.hostname,\n rkey: repostUrip.rkey,\n })\n }\n\n async follow(subjectDid: string) {\n if (!this.session) {\n throw new Error('Not logged in')\n }\n return await this.api.app.bsky.graph.follow.create(\n { repo: this.session.did },\n {\n subject: subjectDid,\n createdAt: new Date().toISOString(),\n },\n )\n }\n\n async deleteFollow(followUri: string) {\n if (!this.session) {\n throw new Error('Not logged in')\n }\n const followUrip = new AtUri(followUri)\n return await this.api.app.bsky.graph.follow.delete({\n repo: followUrip.hostname,\n rkey: followUrip.rkey,\n })\n }\n\n async upsertProfile(\n updateFn: (\n existing: AppBskyActorProfile.Record | undefined,\n ) => AppBskyActorProfile.Record | Promise<AppBskyActorProfile.Record>,\n ) {\n if (!this.session) {\n throw new Error('Not logged in')\n }\n\n let retriesRemaining = 5\n while (retriesRemaining >= 0) {\n // fetch existing\n const existing = await this.com.atproto.repo\n .getRecord({\n repo: this.session.did,\n collection: 'app.bsky.actor.profile',\n rkey: 'self',\n })\n .catch((_) => undefined)\n\n // run the update\n const updated = await updateFn(existing?.data.value)\n if (updated) {\n updated.$type = 'app.bsky.actor.profile'\n }\n\n // validate the record\n const validation = AppBskyActorProfile.validateRecord(updated)\n if (!validation.success) {\n throw validation.error\n }\n\n try {\n // attempt the put\n await this.com.atproto.repo.putRecord({\n repo: this.session.did,\n collection: 'app.bsky.actor.profile',\n rkey: 'self',\n record: updated,\n swapRecord: existing?.data.cid || null,\n })\n } catch (e: unknown) {\n if (\n retriesRemaining > 0 &&\n e instanceof ComAtprotoRepoPutRecord.InvalidSwapError\n ) {\n // try again\n retriesRemaining--\n continue\n } else {\n throw e\n }\n }\n break\n }\n }\n\n async mute(actor: string) {\n return this.api.app.bsky.graph.muteActor({ actor })\n }\n\n async unmute(actor: string) {\n return this.api.app.bsky.graph.unmuteActor({ actor })\n }\n\n async updateSeenNotifications(seenAt?: string) {\n seenAt = seenAt || new Date().toISOString()\n return this.api.app.bsky.notification.updateSeen({\n seenAt,\n })\n }\n}\n"],
|
|
5
|
-
"mappings": "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AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEA,IAAM,iBAAiB;AAAA,EAErB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EA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",
|
|
6
|
-
"names": ["t", "r", "n", "e", "i", "o", "a", "u", "d", "src_exports", "defs_exports", "getBlocks_exports", "getRecord_exports", "getRepo_exports", "def", "decode", "code", "code", "digest", "bytes", "decode", "equals", "name", "encode", "length", "i", "j", "decode", "string", "name", "bytes", "decoder", "encode", "decode", "alphabet", "string", "version", "code", "bytes", "digest", "equals", "base", "decode", "cid", "length", "decoder", "encode", "decode", "from", "name", "code", "encode", "digest", "name", "from", "identity_exports", "identity", "encode", "identity", "identity_exports", "name", "encode", "decode", "decoder", "encoder", "string", "fromString", "string", "base", "toString", "array", "base", "fromString", "toString", "util", "object", "array", "params", "errorUtil", "errorMap", "def", "
|
|
3
|
+
"sources": ["../../../node_modules/iso-datestring-validator/dist/index.js", "../src/index.ts", "../../common-web/src/check.ts", "../../../node_modules/multiformats/esm/vendor/varint.js", "../../../node_modules/multiformats/esm/src/varint.js", "../../../node_modules/multiformats/esm/src/bytes.js", "../../../node_modules/multiformats/esm/src/hashes/digest.js", "../../../node_modules/multiformats/esm/src/bases/base58.js", "../../../node_modules/multiformats/esm/vendor/base-x.js", "../../../node_modules/multiformats/esm/src/bases/base.js", "../../../node_modules/multiformats/esm/src/bases/base32.js", "../../../node_modules/multiformats/esm/src/cid.js", "../../../node_modules/multiformats/esm/src/bases/identity.js", "../../../node_modules/multiformats/esm/src/bases/base2.js", "../../../node_modules/multiformats/esm/src/bases/base8.js", "../../../node_modules/multiformats/esm/src/bases/base10.js", "../../../node_modules/multiformats/esm/src/bases/base16.js", "../../../node_modules/multiformats/esm/src/bases/base36.js", "../../../node_modules/multiformats/esm/src/bases/base64.js", "../../../node_modules/multiformats/esm/src/bases/base256emoji.js", "../../../node_modules/multiformats/esm/src/hashes/sha2-browser.js", "../../../node_modules/multiformats/esm/src/hashes/hasher.js", "../../../node_modules/multiformats/esm/src/hashes/identity.js", "../../../node_modules/multiformats/esm/src/codecs/json.js", "../../../node_modules/multiformats/esm/src/basics.js", "../../../node_modules/uint8arrays/esm/src/util/bases.js", "../../../node_modules/uint8arrays/esm/src/from-string.js", "../../../node_modules/uint8arrays/esm/src/to-string.js", "../../common-web/src/ipld.ts", "../../../node_modules/zod/lib/index.mjs", "../../common-web/src/types.ts", "../../common-web/src/times.ts", "../../common-web/src/strings.ts", "../../identifier/src/reserved.ts", "../../identifier/src/handle.ts", "../../identifier/src/did.ts", "../../nsid/src/index.ts", "../../uri/src/validation.ts", "../../uri/src/index.ts", "../../lexicon/src/types.ts", "../../lexicon/src/validators/formats.ts", "../../lexicon/src/validators/primitives.ts", "../../lexicon/src/blob-refs.ts", "../../lexicon/src/validators/blob.ts", "../../lexicon/src/validators/complex.ts", "../../lexicon/src/util.ts", "../../lexicon/src/validators/xrpc.ts", "../../lexicon/src/validation.ts", "../../lexicon/src/lexicons.ts", "../../lexicon/src/serialize.ts", "../../xrpc/src/types.ts", "../../xrpc/src/util.ts", "../../xrpc/src/client.ts", "../../xrpc/src/index.ts", "../src/client/lexicons.ts", "../src/client/types/com/atproto/admin/disableAccountInvites.ts", "../src/client/types/com/atproto/admin/disableInviteCodes.ts", "../src/client/types/com/atproto/admin/enableAccountInvites.ts", "../src/client/types/com/atproto/admin/getInviteCodes.ts", "../src/client/types/com/atproto/admin/getModerationAction.ts", "../src/client/types/com/atproto/admin/getModerationActions.ts", "../src/client/types/com/atproto/admin/getModerationReport.ts", "../src/client/types/com/atproto/admin/getModerationReports.ts", "../src/client/types/com/atproto/admin/getRecord.ts", "../src/client/types/com/atproto/admin/getRepo.ts", "../src/client/types/com/atproto/admin/resolveModerationReports.ts", "../src/client/types/com/atproto/admin/reverseModerationAction.ts", "../src/client/types/com/atproto/admin/searchRepos.ts", "../src/client/types/com/atproto/admin/takeModerationAction.ts", "../src/client/types/com/atproto/admin/updateAccountEmail.ts", "../src/client/types/com/atproto/admin/updateAccountHandle.ts", "../src/client/types/com/atproto/identity/resolveHandle.ts", "../src/client/types/com/atproto/identity/updateHandle.ts", "../src/client/types/com/atproto/label/queryLabels.ts", "../src/client/types/com/atproto/moderation/createReport.ts", "../src/client/types/com/atproto/repo/applyWrites.ts", "../src/client/util.ts", "../src/client/types/com/atproto/repo/createRecord.ts", "../src/client/types/com/atproto/repo/deleteRecord.ts", "../src/client/types/com/atproto/repo/describeRepo.ts", "../src/client/types/com/atproto/repo/getRecord.ts", "../src/client/types/com/atproto/repo/listRecords.ts", "../src/client/types/com/atproto/repo/putRecord.ts", "../src/client/types/com/atproto/repo/rebaseRepo.ts", "../src/client/types/com/atproto/repo/uploadBlob.ts", "../src/client/types/com/atproto/server/createAccount.ts", "../src/client/types/com/atproto/server/createAppPassword.ts", "../src/client/types/com/atproto/server/createInviteCode.ts", "../src/client/types/com/atproto/server/createInviteCodes.ts", "../src/client/types/com/atproto/server/createSession.ts", "../src/client/types/com/atproto/server/deleteAccount.ts", "../src/client/types/com/atproto/server/deleteSession.ts", "../src/client/types/com/atproto/server/describeServer.ts", "../src/client/types/com/atproto/server/getAccountInviteCodes.ts", "../src/client/types/com/atproto/server/getSession.ts", "../src/client/types/com/atproto/server/listAppPasswords.ts", "../src/client/types/com/atproto/server/refreshSession.ts", "../src/client/types/com/atproto/server/requestAccountDelete.ts", "../src/client/types/com/atproto/server/requestPasswordReset.ts", "../src/client/types/com/atproto/server/resetPassword.ts", "../src/client/types/com/atproto/server/revokeAppPassword.ts", "../src/client/types/com/atproto/sync/getBlob.ts", "../src/client/types/com/atproto/sync/getBlocks.ts", "../src/client/types/com/atproto/sync/getCheckout.ts", "../src/client/types/com/atproto/sync/getCommitPath.ts", "../src/client/types/com/atproto/sync/getHead.ts", "../src/client/types/com/atproto/sync/getRecord.ts", "../src/client/types/com/atproto/sync/getRepo.ts", "../src/client/types/com/atproto/sync/listBlobs.ts", "../src/client/types/com/atproto/sync/listRepos.ts", "../src/client/types/com/atproto/sync/notifyOfUpdate.ts", "../src/client/types/com/atproto/sync/requestCrawl.ts", "../src/client/types/app/bsky/actor/getProfile.ts", "../src/client/types/app/bsky/actor/getProfiles.ts", "../src/client/types/app/bsky/actor/getSuggestions.ts", "../src/client/types/app/bsky/actor/searchActors.ts", "../src/client/types/app/bsky/actor/searchActorsTypeahead.ts", "../src/client/types/app/bsky/feed/getAuthorFeed.ts", "../src/client/types/app/bsky/feed/getLikes.ts", "../src/client/types/app/bsky/feed/getPostThread.ts", "../src/client/types/app/bsky/feed/getPosts.ts", "../src/client/types/app/bsky/feed/getRepostedBy.ts", "../src/client/types/app/bsky/feed/getTimeline.ts", "../src/client/types/app/bsky/graph/getBlocks.ts", "../src/client/types/app/bsky/graph/getFollowers.ts", "../src/client/types/app/bsky/graph/getFollows.ts", "../src/client/types/app/bsky/graph/getList.ts", "../src/client/types/app/bsky/graph/getListMutes.ts", "../src/client/types/app/bsky/graph/getLists.ts", "../src/client/types/app/bsky/graph/getMutes.ts", "../src/client/types/app/bsky/graph/muteActor.ts", "../src/client/types/app/bsky/graph/muteActorList.ts", "../src/client/types/app/bsky/graph/unmuteActor.ts", "../src/client/types/app/bsky/graph/unmuteActorList.ts", "../src/client/types/app/bsky/notification/getUnreadCount.ts", "../src/client/types/app/bsky/notification/listNotifications.ts", "../src/client/types/app/bsky/notification/updateSeen.ts", "../src/client/types/app/bsky/unspecced/getPopular.ts", "../src/client/types/com/atproto/admin/defs.ts", "../src/client/types/com/atproto/label/defs.ts", "../src/client/types/com/atproto/label/subscribeLabels.ts", "../src/client/types/com/atproto/moderation/defs.ts", "../src/client/types/com/atproto/repo/strongRef.ts", "../src/client/types/com/atproto/server/defs.ts", "../src/client/types/com/atproto/sync/subscribeRepos.ts", "../src/client/types/app/bsky/actor/defs.ts", "../src/client/types/app/bsky/actor/profile.ts", "../src/client/types/app/bsky/embed/external.ts", "../src/client/types/app/bsky/embed/images.ts", "../src/client/types/app/bsky/embed/record.ts", "../src/client/types/app/bsky/embed/recordWithMedia.ts", "../src/client/types/app/bsky/feed/defs.ts", "../src/client/types/app/bsky/feed/like.ts", "../src/client/types/app/bsky/feed/post.ts", "../src/client/types/app/bsky/feed/repost.ts", "../src/client/types/app/bsky/graph/block.ts", "../src/client/types/app/bsky/graph/defs.ts", "../src/client/types/app/bsky/graph/follow.ts", "../src/client/types/app/bsky/graph/list.ts", "../src/client/types/app/bsky/graph/listitem.ts", "../src/client/types/app/bsky/richtext/facet.ts", "../src/client/index.ts", "../src/agent.ts", "../src/rich-text/unicode.ts", "../src/rich-text/sanitization.ts", "../src/rich-text/detection.ts", "../src/rich-text/rich-text.ts", "../src/bsky-agent.ts"],
|
|
4
|
+
"sourcesContent": ["(()=>{\"use strict\";var e={d:(t,r)=>{for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})}},t={};function r(e,t){return void 0===t&&(t=\"-\"),new RegExp(\"^(?!0{4}\"+t+\"0{2}\"+t+\"0{2})((?=[0-9]{4}\"+t+\"(((0[^2])|1[0-2])|02(?=\"+t+\"(([0-1][0-9])|2[0-8])))\"+t+\"[0-9]{2})|(?=((([13579][26])|([2468][048])|(0[48]))0{2})|([0-9]{2}((((0|[2468])[48])|[2468][048])|([13579][26])))\"+t+\"02\"+t+\"29))([0-9]{4})\"+t+\"(?!((0[469])|11)\"+t+\"31)((0[1,3-9]|1[0-2])|(02(?!\"+t+\"3)))\"+t+\"(0[1-9]|[1-2][0-9]|3[0-1])$\").test(e)}function n(e){var t=/\\D/.exec(e);return t?t[0]:\"\"}function i(e,t,r){void 0===t&&(t=\":\"),void 0===r&&(r=!1);var i=new RegExp(\"^([0-1]|2(?=([0-3])|4\"+t+\"00))[0-9]\"+t+\"[0-5][0-9](\"+t+\"([0-5]|6(?=0))[0-9])?(.[0-9]{1,9})?$\");if(!r||!/[Z+\\-]/.test(e))return i.test(e);if(/Z$/.test(e))return i.test(e.replace(\"Z\",\"\"));var o=e.includes(\"+\"),a=e.split(/[+-]/),u=a[0],d=a[1];return i.test(u)&&function(e,t,r){return void 0===r&&(r=\":\"),new RegExp(t?\"^(0(?!(2\"+r+\"4)|0\"+r+\"3)|1(?=([0-1]|2(?=\"+r+\"[04])|[34](?=\"+r+\"0))))([03469](?=\"+r+\"[03])|[17](?=\"+r+\"0)|2(?=\"+r+\"[04])|5(?=\"+r+\"[034])|8(?=\"+r+\"[04]))\"+r+\"([03](?=0)|4(?=5))[05]$\":\"^(0(?=[^0])|1(?=[0-2]))([39](?=\"+r+\"[03])|[0-24-8](?=\"+r+\"00))\"+r+\"[03]0$\").test(e)}(d,o,n(d))}function o(e){var t=e.split(\"T\"),o=t[0],a=t[1],u=r(o,n(o));if(!a)return!1;var d,s=(d=a.match(/([^Z+\\-\\d])(?=\\d+\\1)/),Array.isArray(d)?d[0]:\"\");return u&&i(a,s,!0)}function a(e,t){return void 0===t&&(t=\"-\"),new RegExp(\"^[0-9]{4}\"+t+\"(0(?=[^0])|1(?=[0-2]))[0-9]$\").test(e)}e.r(t),e.d(t,{isValidDate:()=>r,isValidISODateString:()=>o,isValidTime:()=>i,isValidYearMonth:()=>a});var u=exports;for(var d in t)u[d]=t[d];t.__esModule&&Object.defineProperty(u,\"__esModule\",{value:!0})})();", "export { AtUri } from '@atproto/uri'\nexport {\n BlobRef,\n lexToJson,\n stringifyLex,\n jsonToLex,\n jsonStringToLex,\n} from '@atproto/lexicon'\nexport * from './types'\nexport * from './client'\nexport * from './agent'\nexport * from './rich-text/rich-text'\nexport * from './rich-text/sanitization'\nexport * from './rich-text/unicode'\nexport { BskyAgent } from './bsky-agent'\nexport { AtpAgent as default } from './agent'\n", "import { ZodError } from 'zod'\n\nexport interface Checkable<T> {\n parse: (obj: unknown) => T\n safeParse: (\n obj: unknown,\n ) => { success: true; data: T } | { success: false; error: ZodError }\n}\n\nexport interface Def<T> {\n name: string\n schema: Checkable<T>\n}\n\nexport const is = <T>(obj: unknown, def: Checkable<T>): obj is T => {\n return def.safeParse(obj).success\n}\n\nexport const assure = <T>(def: Checkable<T>, obj: unknown): T => {\n return def.parse(obj)\n}\n\nexport const isObject = (obj: unknown): obj is Record<string, unknown> => {\n return typeof obj === 'object' && obj !== null\n}\n", "var encode_1 = encode;\nvar MSB = 128, REST = 127, MSBALL = ~REST, INT = Math.pow(2, 31);\nfunction encode(num, out, offset) {\n out = out || [];\n offset = offset || 0;\n var oldOffset = offset;\n while (num >= INT) {\n out[offset++] = num & 255 | MSB;\n num /= 128;\n }\n while (num & MSBALL) {\n out[offset++] = num & 255 | MSB;\n num >>>= 7;\n }\n out[offset] = num | 0;\n encode.bytes = offset - oldOffset + 1;\n return out;\n}\nvar decode = read;\nvar MSB$1 = 128, REST$1 = 127;\nfunction read(buf, offset) {\n var res = 0, offset = offset || 0, shift = 0, counter = offset, b, l = buf.length;\n do {\n if (counter >= l) {\n read.bytes = 0;\n throw new RangeError('Could not decode varint');\n }\n b = buf[counter++];\n res += shift < 28 ? (b & REST$1) << shift : (b & REST$1) * Math.pow(2, shift);\n shift += 7;\n } while (b >= MSB$1);\n read.bytes = counter - offset;\n return res;\n}\nvar N1 = Math.pow(2, 7);\nvar N2 = Math.pow(2, 14);\nvar N3 = Math.pow(2, 21);\nvar N4 = Math.pow(2, 28);\nvar N5 = Math.pow(2, 35);\nvar N6 = Math.pow(2, 42);\nvar N7 = Math.pow(2, 49);\nvar N8 = Math.pow(2, 56);\nvar N9 = Math.pow(2, 63);\nvar length = function (value) {\n return value < N1 ? 1 : value < N2 ? 2 : value < N3 ? 3 : value < N4 ? 4 : value < N5 ? 5 : value < N6 ? 6 : value < N7 ? 7 : value < N8 ? 8 : value < N9 ? 9 : 10;\n};\nvar varint = {\n encode: encode_1,\n decode: decode,\n encodingLength: length\n};\nvar _brrp_varint = varint;\nexport default _brrp_varint;", "import varint from '../vendor/varint.js';\nexport const decode = (data, offset = 0) => {\n const code = varint.decode(data, offset);\n return [\n code,\n varint.decode.bytes\n ];\n};\nexport const encodeTo = (int, target, offset = 0) => {\n varint.encode(int, target, offset);\n return target;\n};\nexport const encodingLength = int => {\n return varint.encodingLength(int);\n};", "const empty = new Uint8Array(0);\nconst toHex = d => d.reduce((hex, byte) => hex + byte.toString(16).padStart(2, '0'), '');\nconst fromHex = hex => {\n const hexes = hex.match(/../g);\n return hexes ? new Uint8Array(hexes.map(b => parseInt(b, 16))) : empty;\n};\nconst equals = (aa, bb) => {\n if (aa === bb)\n return true;\n if (aa.byteLength !== bb.byteLength) {\n return false;\n }\n for (let ii = 0; ii < aa.byteLength; ii++) {\n if (aa[ii] !== bb[ii]) {\n return false;\n }\n }\n return true;\n};\nconst coerce = o => {\n if (o instanceof Uint8Array && o.constructor.name === 'Uint8Array')\n return o;\n if (o instanceof ArrayBuffer)\n return new Uint8Array(o);\n if (ArrayBuffer.isView(o)) {\n return new Uint8Array(o.buffer, o.byteOffset, o.byteLength);\n }\n throw new Error('Unknown type, must be binary type');\n};\nconst isBinary = o => o instanceof ArrayBuffer || ArrayBuffer.isView(o);\nconst fromString = str => new TextEncoder().encode(str);\nconst toString = b => new TextDecoder().decode(b);\nexport {\n equals,\n coerce,\n isBinary,\n fromHex,\n toHex,\n fromString,\n toString,\n empty\n};", "import {\n coerce,\n equals as equalBytes\n} from '../bytes.js';\nimport * as varint from '../varint.js';\nexport const create = (code, digest) => {\n const size = digest.byteLength;\n const sizeOffset = varint.encodingLength(code);\n const digestOffset = sizeOffset + varint.encodingLength(size);\n const bytes = new Uint8Array(digestOffset + size);\n varint.encodeTo(code, bytes, 0);\n varint.encodeTo(size, bytes, sizeOffset);\n bytes.set(digest, digestOffset);\n return new Digest(code, size, digest, bytes);\n};\nexport const decode = multihash => {\n const bytes = coerce(multihash);\n const [code, sizeOffset] = varint.decode(bytes);\n const [size, digestOffset] = varint.decode(bytes.subarray(sizeOffset));\n const digest = bytes.subarray(sizeOffset + digestOffset);\n if (digest.byteLength !== size) {\n throw new Error('Incorrect length');\n }\n return new Digest(code, size, digest, bytes);\n};\nexport const equals = (a, b) => {\n if (a === b) {\n return true;\n } else {\n return a.code === b.code && a.size === b.size && equalBytes(a.bytes, b.bytes);\n }\n};\nexport class Digest {\n constructor(code, size, digest, bytes) {\n this.code = code;\n this.size = size;\n this.digest = digest;\n this.bytes = bytes;\n }\n}", "import { baseX } from './base.js';\nexport const base58btc = baseX({\n name: 'base58btc',\n prefix: 'z',\n alphabet: '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'\n});\nexport const base58flickr = baseX({\n name: 'base58flickr',\n prefix: 'Z',\n alphabet: '123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ'\n});", "function base(ALPHABET, name) {\n if (ALPHABET.length >= 255) {\n throw new TypeError('Alphabet too long');\n }\n var BASE_MAP = new Uint8Array(256);\n for (var j = 0; j < BASE_MAP.length; j++) {\n BASE_MAP[j] = 255;\n }\n for (var i = 0; i < ALPHABET.length; i++) {\n var x = ALPHABET.charAt(i);\n var xc = x.charCodeAt(0);\n if (BASE_MAP[xc] !== 255) {\n throw new TypeError(x + ' is ambiguous');\n }\n BASE_MAP[xc] = i;\n }\n var BASE = ALPHABET.length;\n var LEADER = ALPHABET.charAt(0);\n var FACTOR = Math.log(BASE) / Math.log(256);\n var iFACTOR = Math.log(256) / Math.log(BASE);\n function encode(source) {\n if (source instanceof Uint8Array);\n else if (ArrayBuffer.isView(source)) {\n source = new Uint8Array(source.buffer, source.byteOffset, source.byteLength);\n } else if (Array.isArray(source)) {\n source = Uint8Array.from(source);\n }\n if (!(source instanceof Uint8Array)) {\n throw new TypeError('Expected Uint8Array');\n }\n if (source.length === 0) {\n return '';\n }\n var zeroes = 0;\n var length = 0;\n var pbegin = 0;\n var pend = source.length;\n while (pbegin !== pend && source[pbegin] === 0) {\n pbegin++;\n zeroes++;\n }\n var size = (pend - pbegin) * iFACTOR + 1 >>> 0;\n var b58 = new Uint8Array(size);\n while (pbegin !== pend) {\n var carry = source[pbegin];\n var i = 0;\n for (var it1 = size - 1; (carry !== 0 || i < length) && it1 !== -1; it1--, i++) {\n carry += 256 * b58[it1] >>> 0;\n b58[it1] = carry % BASE >>> 0;\n carry = carry / BASE >>> 0;\n }\n if (carry !== 0) {\n throw new Error('Non-zero carry');\n }\n length = i;\n pbegin++;\n }\n var it2 = size - length;\n while (it2 !== size && b58[it2] === 0) {\n it2++;\n }\n var str = LEADER.repeat(zeroes);\n for (; it2 < size; ++it2) {\n str += ALPHABET.charAt(b58[it2]);\n }\n return str;\n }\n function decodeUnsafe(source) {\n if (typeof source !== 'string') {\n throw new TypeError('Expected String');\n }\n if (source.length === 0) {\n return new Uint8Array();\n }\n var psz = 0;\n if (source[psz] === ' ') {\n return;\n }\n var zeroes = 0;\n var length = 0;\n while (source[psz] === LEADER) {\n zeroes++;\n psz++;\n }\n var size = (source.length - psz) * FACTOR + 1 >>> 0;\n var b256 = new Uint8Array(size);\n while (source[psz]) {\n var carry = BASE_MAP[source.charCodeAt(psz)];\n if (carry === 255) {\n return;\n }\n var i = 0;\n for (var it3 = size - 1; (carry !== 0 || i < length) && it3 !== -1; it3--, i++) {\n carry += BASE * b256[it3] >>> 0;\n b256[it3] = carry % 256 >>> 0;\n carry = carry / 256 >>> 0;\n }\n if (carry !== 0) {\n throw new Error('Non-zero carry');\n }\n length = i;\n psz++;\n }\n if (source[psz] === ' ') {\n return;\n }\n var it4 = size - length;\n while (it4 !== size && b256[it4] === 0) {\n it4++;\n }\n var vch = new Uint8Array(zeroes + (size - it4));\n var j = zeroes;\n while (it4 !== size) {\n vch[j++] = b256[it4++];\n }\n return vch;\n }\n function decode(string) {\n var buffer = decodeUnsafe(string);\n if (buffer) {\n return buffer;\n }\n throw new Error(`Non-${ name } character`);\n }\n return {\n encode: encode,\n decodeUnsafe: decodeUnsafe,\n decode: decode\n };\n}\nvar src = base;\nvar _brrp__multiformats_scope_baseX = src;\nexport default _brrp__multiformats_scope_baseX;", "import basex from '../../vendor/base-x.js';\nimport { coerce } from '../bytes.js';\nclass Encoder {\n constructor(name, prefix, baseEncode) {\n this.name = name;\n this.prefix = prefix;\n this.baseEncode = baseEncode;\n }\n encode(bytes) {\n if (bytes instanceof Uint8Array) {\n return `${ this.prefix }${ this.baseEncode(bytes) }`;\n } else {\n throw Error('Unknown type, must be binary type');\n }\n }\n}\nclass Decoder {\n constructor(name, prefix, baseDecode) {\n this.name = name;\n this.prefix = prefix;\n if (prefix.codePointAt(0) === undefined) {\n throw new Error('Invalid prefix character');\n }\n this.prefixCodePoint = prefix.codePointAt(0);\n this.baseDecode = baseDecode;\n }\n decode(text) {\n if (typeof text === 'string') {\n if (text.codePointAt(0) !== this.prefixCodePoint) {\n throw Error(`Unable to decode multibase string ${ JSON.stringify(text) }, ${ this.name } decoder only supports inputs prefixed with ${ this.prefix }`);\n }\n return this.baseDecode(text.slice(this.prefix.length));\n } else {\n throw Error('Can only multibase decode strings');\n }\n }\n or(decoder) {\n return or(this, decoder);\n }\n}\nclass ComposedDecoder {\n constructor(decoders) {\n this.decoders = decoders;\n }\n or(decoder) {\n return or(this, decoder);\n }\n decode(input) {\n const prefix = input[0];\n const decoder = this.decoders[prefix];\n if (decoder) {\n return decoder.decode(input);\n } else {\n throw RangeError(`Unable to decode multibase string ${ JSON.stringify(input) }, only inputs prefixed with ${ Object.keys(this.decoders) } are supported`);\n }\n }\n}\nexport const or = (left, right) => new ComposedDecoder({\n ...left.decoders || { [left.prefix]: left },\n ...right.decoders || { [right.prefix]: right }\n});\nexport class Codec {\n constructor(name, prefix, baseEncode, baseDecode) {\n this.name = name;\n this.prefix = prefix;\n this.baseEncode = baseEncode;\n this.baseDecode = baseDecode;\n this.encoder = new Encoder(name, prefix, baseEncode);\n this.decoder = new Decoder(name, prefix, baseDecode);\n }\n encode(input) {\n return this.encoder.encode(input);\n }\n decode(input) {\n return this.decoder.decode(input);\n }\n}\nexport const from = ({name, prefix, encode, decode}) => new Codec(name, prefix, encode, decode);\nexport const baseX = ({prefix, name, alphabet}) => {\n const {encode, decode} = basex(alphabet, name);\n return from({\n prefix,\n name,\n encode,\n decode: text => coerce(decode(text))\n });\n};\nconst decode = (string, alphabet, bitsPerChar, name) => {\n const codes = {};\n for (let i = 0; i < alphabet.length; ++i) {\n codes[alphabet[i]] = i;\n }\n let end = string.length;\n while (string[end - 1] === '=') {\n --end;\n }\n const out = new Uint8Array(end * bitsPerChar / 8 | 0);\n let bits = 0;\n let buffer = 0;\n let written = 0;\n for (let i = 0; i < end; ++i) {\n const value = codes[string[i]];\n if (value === undefined) {\n throw new SyntaxError(`Non-${ name } character`);\n }\n buffer = buffer << bitsPerChar | value;\n bits += bitsPerChar;\n if (bits >= 8) {\n bits -= 8;\n out[written++] = 255 & buffer >> bits;\n }\n }\n if (bits >= bitsPerChar || 255 & buffer << 8 - bits) {\n throw new SyntaxError('Unexpected end of data');\n }\n return out;\n};\nconst encode = (data, alphabet, bitsPerChar) => {\n const pad = alphabet[alphabet.length - 1] === '=';\n const mask = (1 << bitsPerChar) - 1;\n let out = '';\n let bits = 0;\n let buffer = 0;\n for (let i = 0; i < data.length; ++i) {\n buffer = buffer << 8 | data[i];\n bits += 8;\n while (bits > bitsPerChar) {\n bits -= bitsPerChar;\n out += alphabet[mask & buffer >> bits];\n }\n }\n if (bits) {\n out += alphabet[mask & buffer << bitsPerChar - bits];\n }\n if (pad) {\n while (out.length * bitsPerChar & 7) {\n out += '=';\n }\n }\n return out;\n};\nexport const rfc4648 = ({name, prefix, bitsPerChar, alphabet}) => {\n return from({\n prefix,\n name,\n encode(input) {\n return encode(input, alphabet, bitsPerChar);\n },\n decode(input) {\n return decode(input, alphabet, bitsPerChar, name);\n }\n });\n};", "import { rfc4648 } from './base.js';\nexport const base32 = rfc4648({\n prefix: 'b',\n name: 'base32',\n alphabet: 'abcdefghijklmnopqrstuvwxyz234567',\n bitsPerChar: 5\n});\nexport const base32upper = rfc4648({\n prefix: 'B',\n name: 'base32upper',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567',\n bitsPerChar: 5\n});\nexport const base32pad = rfc4648({\n prefix: 'c',\n name: 'base32pad',\n alphabet: 'abcdefghijklmnopqrstuvwxyz234567=',\n bitsPerChar: 5\n});\nexport const base32padupper = rfc4648({\n prefix: 'C',\n name: 'base32padupper',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=',\n bitsPerChar: 5\n});\nexport const base32hex = rfc4648({\n prefix: 'v',\n name: 'base32hex',\n alphabet: '0123456789abcdefghijklmnopqrstuv',\n bitsPerChar: 5\n});\nexport const base32hexupper = rfc4648({\n prefix: 'V',\n name: 'base32hexupper',\n alphabet: '0123456789ABCDEFGHIJKLMNOPQRSTUV',\n bitsPerChar: 5\n});\nexport const base32hexpad = rfc4648({\n prefix: 't',\n name: 'base32hexpad',\n alphabet: '0123456789abcdefghijklmnopqrstuv=',\n bitsPerChar: 5\n});\nexport const base32hexpadupper = rfc4648({\n prefix: 'T',\n name: 'base32hexpadupper',\n alphabet: '0123456789ABCDEFGHIJKLMNOPQRSTUV=',\n bitsPerChar: 5\n});\nexport const base32z = rfc4648({\n prefix: 'h',\n name: 'base32z',\n alphabet: 'ybndrfg8ejkmcpqxot1uwisza345h769',\n bitsPerChar: 5\n});", "import * as varint from './varint.js';\nimport * as Digest from './hashes/digest.js';\nimport { base58btc } from './bases/base58.js';\nimport { base32 } from './bases/base32.js';\nimport { coerce } from './bytes.js';\nexport class CID {\n constructor(version, code, multihash, bytes) {\n this.code = code;\n this.version = version;\n this.multihash = multihash;\n this.bytes = bytes;\n this.byteOffset = bytes.byteOffset;\n this.byteLength = bytes.byteLength;\n this.asCID = this;\n this._baseCache = new Map();\n Object.defineProperties(this, {\n byteOffset: hidden,\n byteLength: hidden,\n code: readonly,\n version: readonly,\n multihash: readonly,\n bytes: readonly,\n _baseCache: hidden,\n asCID: hidden\n });\n }\n toV0() {\n switch (this.version) {\n case 0: {\n return this;\n }\n default: {\n const {code, multihash} = this;\n if (code !== DAG_PB_CODE) {\n throw new Error('Cannot convert a non dag-pb CID to CIDv0');\n }\n if (multihash.code !== SHA_256_CODE) {\n throw new Error('Cannot convert non sha2-256 multihash CID to CIDv0');\n }\n return CID.createV0(multihash);\n }\n }\n }\n toV1() {\n switch (this.version) {\n case 0: {\n const {code, digest} = this.multihash;\n const multihash = Digest.create(code, digest);\n return CID.createV1(this.code, multihash);\n }\n case 1: {\n return this;\n }\n default: {\n throw Error(`Can not convert CID version ${ this.version } to version 0. This is a bug please report`);\n }\n }\n }\n equals(other) {\n return other && this.code === other.code && this.version === other.version && Digest.equals(this.multihash, other.multihash);\n }\n toString(base) {\n const {bytes, version, _baseCache} = this;\n switch (version) {\n case 0:\n return toStringV0(bytes, _baseCache, base || base58btc.encoder);\n default:\n return toStringV1(bytes, _baseCache, base || base32.encoder);\n }\n }\n toJSON() {\n return {\n code: this.code,\n version: this.version,\n hash: this.multihash.bytes\n };\n }\n get [Symbol.toStringTag]() {\n return 'CID';\n }\n [Symbol.for('nodejs.util.inspect.custom')]() {\n return 'CID(' + this.toString() + ')';\n }\n static isCID(value) {\n deprecate(/^0\\.0/, IS_CID_DEPRECATION);\n return !!(value && (value[cidSymbol] || value.asCID === value));\n }\n get toBaseEncodedString() {\n throw new Error('Deprecated, use .toString()');\n }\n get codec() {\n throw new Error('\"codec\" property is deprecated, use integer \"code\" property instead');\n }\n get buffer() {\n throw new Error('Deprecated .buffer property, use .bytes to get Uint8Array instead');\n }\n get multibaseName() {\n throw new Error('\"multibaseName\" property is deprecated');\n }\n get prefix() {\n throw new Error('\"prefix\" property is deprecated');\n }\n static asCID(value) {\n if (value instanceof CID) {\n return value;\n } else if (value != null && value.asCID === value) {\n const {version, code, multihash, bytes} = value;\n return new CID(version, code, multihash, bytes || encodeCID(version, code, multihash.bytes));\n } else if (value != null && value[cidSymbol] === true) {\n const {version, multihash, code} = value;\n const digest = Digest.decode(multihash);\n return CID.create(version, code, digest);\n } else {\n return null;\n }\n }\n static create(version, code, digest) {\n if (typeof code !== 'number') {\n throw new Error('String codecs are no longer supported');\n }\n switch (version) {\n case 0: {\n if (code !== DAG_PB_CODE) {\n throw new Error(`Version 0 CID must use dag-pb (code: ${ DAG_PB_CODE }) block encoding`);\n } else {\n return new CID(version, code, digest, digest.bytes);\n }\n }\n case 1: {\n const bytes = encodeCID(version, code, digest.bytes);\n return new CID(version, code, digest, bytes);\n }\n default: {\n throw new Error('Invalid version');\n }\n }\n }\n static createV0(digest) {\n return CID.create(0, DAG_PB_CODE, digest);\n }\n static createV1(code, digest) {\n return CID.create(1, code, digest);\n }\n static decode(bytes) {\n const [cid, remainder] = CID.decodeFirst(bytes);\n if (remainder.length) {\n throw new Error('Incorrect length');\n }\n return cid;\n }\n static decodeFirst(bytes) {\n const specs = CID.inspectBytes(bytes);\n const prefixSize = specs.size - specs.multihashSize;\n const multihashBytes = coerce(bytes.subarray(prefixSize, prefixSize + specs.multihashSize));\n if (multihashBytes.byteLength !== specs.multihashSize) {\n throw new Error('Incorrect length');\n }\n const digestBytes = multihashBytes.subarray(specs.multihashSize - specs.digestSize);\n const digest = new Digest.Digest(specs.multihashCode, specs.digestSize, digestBytes, multihashBytes);\n const cid = specs.version === 0 ? CID.createV0(digest) : CID.createV1(specs.codec, digest);\n return [\n cid,\n bytes.subarray(specs.size)\n ];\n }\n static inspectBytes(initialBytes) {\n let offset = 0;\n const next = () => {\n const [i, length] = varint.decode(initialBytes.subarray(offset));\n offset += length;\n return i;\n };\n let version = next();\n let codec = DAG_PB_CODE;\n if (version === 18) {\n version = 0;\n offset = 0;\n } else if (version === 1) {\n codec = next();\n }\n if (version !== 0 && version !== 1) {\n throw new RangeError(`Invalid CID version ${ version }`);\n }\n const prefixSize = offset;\n const multihashCode = next();\n const digestSize = next();\n const size = offset + digestSize;\n const multihashSize = size - prefixSize;\n return {\n version,\n codec,\n multihashCode,\n digestSize,\n multihashSize,\n size\n };\n }\n static parse(source, base) {\n const [prefix, bytes] = parseCIDtoBytes(source, base);\n const cid = CID.decode(bytes);\n cid._baseCache.set(prefix, source);\n return cid;\n }\n}\nconst parseCIDtoBytes = (source, base) => {\n switch (source[0]) {\n case 'Q': {\n const decoder = base || base58btc;\n return [\n base58btc.prefix,\n decoder.decode(`${ base58btc.prefix }${ source }`)\n ];\n }\n case base58btc.prefix: {\n const decoder = base || base58btc;\n return [\n base58btc.prefix,\n decoder.decode(source)\n ];\n }\n case base32.prefix: {\n const decoder = base || base32;\n return [\n base32.prefix,\n decoder.decode(source)\n ];\n }\n default: {\n if (base == null) {\n throw Error('To parse non base32 or base58btc encoded CID multibase decoder must be provided');\n }\n return [\n source[0],\n base.decode(source)\n ];\n }\n }\n};\nconst toStringV0 = (bytes, cache, base) => {\n const {prefix} = base;\n if (prefix !== base58btc.prefix) {\n throw Error(`Cannot string encode V0 in ${ base.name } encoding`);\n }\n const cid = cache.get(prefix);\n if (cid == null) {\n const cid = base.encode(bytes).slice(1);\n cache.set(prefix, cid);\n return cid;\n } else {\n return cid;\n }\n};\nconst toStringV1 = (bytes, cache, base) => {\n const {prefix} = base;\n const cid = cache.get(prefix);\n if (cid == null) {\n const cid = base.encode(bytes);\n cache.set(prefix, cid);\n return cid;\n } else {\n return cid;\n }\n};\nconst DAG_PB_CODE = 112;\nconst SHA_256_CODE = 18;\nconst encodeCID = (version, code, multihash) => {\n const codeOffset = varint.encodingLength(version);\n const hashOffset = codeOffset + varint.encodingLength(code);\n const bytes = new Uint8Array(hashOffset + multihash.byteLength);\n varint.encodeTo(version, bytes, 0);\n varint.encodeTo(code, bytes, codeOffset);\n bytes.set(multihash, hashOffset);\n return bytes;\n};\nconst cidSymbol = Symbol.for('@ipld/js-cid/CID');\nconst readonly = {\n writable: false,\n configurable: false,\n enumerable: true\n};\nconst hidden = {\n writable: false,\n enumerable: false,\n configurable: false\n};\nconst version = '0.0.0-dev';\nconst deprecate = (range, message) => {\n if (range.test(version)) {\n console.warn(message);\n } else {\n throw new Error(message);\n }\n};\nconst IS_CID_DEPRECATION = `CID.isCID(v) is deprecated and will be removed in the next major release.\nFollowing code pattern:\n\nif (CID.isCID(value)) {\n doSomethingWithCID(value)\n}\n\nIs replaced with:\n\nconst cid = CID.asCID(value)\nif (cid) {\n // Make sure to use cid instead of value\n doSomethingWithCID(cid)\n}\n`;", "import { from } from './base.js';\nimport {\n fromString,\n toString\n} from '../bytes.js';\nexport const identity = from({\n prefix: '\\0',\n name: 'identity',\n encode: buf => toString(buf),\n decode: str => fromString(str)\n});", "import { rfc4648 } from './base.js';\nexport const base2 = rfc4648({\n prefix: '0',\n name: 'base2',\n alphabet: '01',\n bitsPerChar: 1\n});", "import { rfc4648 } from './base.js';\nexport const base8 = rfc4648({\n prefix: '7',\n name: 'base8',\n alphabet: '01234567',\n bitsPerChar: 3\n});", "import { baseX } from './base.js';\nexport const base10 = baseX({\n prefix: '9',\n name: 'base10',\n alphabet: '0123456789'\n});", "import { rfc4648 } from './base.js';\nexport const base16 = rfc4648({\n prefix: 'f',\n name: 'base16',\n alphabet: '0123456789abcdef',\n bitsPerChar: 4\n});\nexport const base16upper = rfc4648({\n prefix: 'F',\n name: 'base16upper',\n alphabet: '0123456789ABCDEF',\n bitsPerChar: 4\n});", "import { baseX } from './base.js';\nexport const base36 = baseX({\n prefix: 'k',\n name: 'base36',\n alphabet: '0123456789abcdefghijklmnopqrstuvwxyz'\n});\nexport const base36upper = baseX({\n prefix: 'K',\n name: 'base36upper',\n alphabet: '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'\n});", "import { rfc4648 } from './base.js';\nexport const base64 = rfc4648({\n prefix: 'm',\n name: 'base64',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',\n bitsPerChar: 6\n});\nexport const base64pad = rfc4648({\n prefix: 'M',\n name: 'base64pad',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=',\n bitsPerChar: 6\n});\nexport const base64url = rfc4648({\n prefix: 'u',\n name: 'base64url',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_',\n bitsPerChar: 6\n});\nexport const base64urlpad = rfc4648({\n prefix: 'U',\n name: 'base64urlpad',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=',\n bitsPerChar: 6\n});", "import { from } from './base.js';\nconst alphabet = Array.from('\\uD83D\\uDE80\\uD83E\\uDE90\\u2604\\uD83D\\uDEF0\\uD83C\\uDF0C\\uD83C\\uDF11\\uD83C\\uDF12\\uD83C\\uDF13\\uD83C\\uDF14\\uD83C\\uDF15\\uD83C\\uDF16\\uD83C\\uDF17\\uD83C\\uDF18\\uD83C\\uDF0D\\uD83C\\uDF0F\\uD83C\\uDF0E\\uD83D\\uDC09\\u2600\\uD83D\\uDCBB\\uD83D\\uDDA5\\uD83D\\uDCBE\\uD83D\\uDCBF\\uD83D\\uDE02\\u2764\\uD83D\\uDE0D\\uD83E\\uDD23\\uD83D\\uDE0A\\uD83D\\uDE4F\\uD83D\\uDC95\\uD83D\\uDE2D\\uD83D\\uDE18\\uD83D\\uDC4D\\uD83D\\uDE05\\uD83D\\uDC4F\\uD83D\\uDE01\\uD83D\\uDD25\\uD83E\\uDD70\\uD83D\\uDC94\\uD83D\\uDC96\\uD83D\\uDC99\\uD83D\\uDE22\\uD83E\\uDD14\\uD83D\\uDE06\\uD83D\\uDE44\\uD83D\\uDCAA\\uD83D\\uDE09\\u263A\\uD83D\\uDC4C\\uD83E\\uDD17\\uD83D\\uDC9C\\uD83D\\uDE14\\uD83D\\uDE0E\\uD83D\\uDE07\\uD83C\\uDF39\\uD83E\\uDD26\\uD83C\\uDF89\\uD83D\\uDC9E\\u270C\\u2728\\uD83E\\uDD37\\uD83D\\uDE31\\uD83D\\uDE0C\\uD83C\\uDF38\\uD83D\\uDE4C\\uD83D\\uDE0B\\uD83D\\uDC97\\uD83D\\uDC9A\\uD83D\\uDE0F\\uD83D\\uDC9B\\uD83D\\uDE42\\uD83D\\uDC93\\uD83E\\uDD29\\uD83D\\uDE04\\uD83D\\uDE00\\uD83D\\uDDA4\\uD83D\\uDE03\\uD83D\\uDCAF\\uD83D\\uDE48\\uD83D\\uDC47\\uD83C\\uDFB6\\uD83D\\uDE12\\uD83E\\uDD2D\\u2763\\uD83D\\uDE1C\\uD83D\\uDC8B\\uD83D\\uDC40\\uD83D\\uDE2A\\uD83D\\uDE11\\uD83D\\uDCA5\\uD83D\\uDE4B\\uD83D\\uDE1E\\uD83D\\uDE29\\uD83D\\uDE21\\uD83E\\uDD2A\\uD83D\\uDC4A\\uD83E\\uDD73\\uD83D\\uDE25\\uD83E\\uDD24\\uD83D\\uDC49\\uD83D\\uDC83\\uD83D\\uDE33\\u270B\\uD83D\\uDE1A\\uD83D\\uDE1D\\uD83D\\uDE34\\uD83C\\uDF1F\\uD83D\\uDE2C\\uD83D\\uDE43\\uD83C\\uDF40\\uD83C\\uDF37\\uD83D\\uDE3B\\uD83D\\uDE13\\u2B50\\u2705\\uD83E\\uDD7A\\uD83C\\uDF08\\uD83D\\uDE08\\uD83E\\uDD18\\uD83D\\uDCA6\\u2714\\uD83D\\uDE23\\uD83C\\uDFC3\\uD83D\\uDC90\\u2639\\uD83C\\uDF8A\\uD83D\\uDC98\\uD83D\\uDE20\\u261D\\uD83D\\uDE15\\uD83C\\uDF3A\\uD83C\\uDF82\\uD83C\\uDF3B\\uD83D\\uDE10\\uD83D\\uDD95\\uD83D\\uDC9D\\uD83D\\uDE4A\\uD83D\\uDE39\\uD83D\\uDDE3\\uD83D\\uDCAB\\uD83D\\uDC80\\uD83D\\uDC51\\uD83C\\uDFB5\\uD83E\\uDD1E\\uD83D\\uDE1B\\uD83D\\uDD34\\uD83D\\uDE24\\uD83C\\uDF3C\\uD83D\\uDE2B\\u26BD\\uD83E\\uDD19\\u2615\\uD83C\\uDFC6\\uD83E\\uDD2B\\uD83D\\uDC48\\uD83D\\uDE2E\\uD83D\\uDE46\\uD83C\\uDF7B\\uD83C\\uDF43\\uD83D\\uDC36\\uD83D\\uDC81\\uD83D\\uDE32\\uD83C\\uDF3F\\uD83E\\uDDE1\\uD83C\\uDF81\\u26A1\\uD83C\\uDF1E\\uD83C\\uDF88\\u274C\\u270A\\uD83D\\uDC4B\\uD83D\\uDE30\\uD83E\\uDD28\\uD83D\\uDE36\\uD83E\\uDD1D\\uD83D\\uDEB6\\uD83D\\uDCB0\\uD83C\\uDF53\\uD83D\\uDCA2\\uD83E\\uDD1F\\uD83D\\uDE41\\uD83D\\uDEA8\\uD83D\\uDCA8\\uD83E\\uDD2C\\u2708\\uD83C\\uDF80\\uD83C\\uDF7A\\uD83E\\uDD13\\uD83D\\uDE19\\uD83D\\uDC9F\\uD83C\\uDF31\\uD83D\\uDE16\\uD83D\\uDC76\\uD83E\\uDD74\\u25B6\\u27A1\\u2753\\uD83D\\uDC8E\\uD83D\\uDCB8\\u2B07\\uD83D\\uDE28\\uD83C\\uDF1A\\uD83E\\uDD8B\\uD83D\\uDE37\\uD83D\\uDD7A\\u26A0\\uD83D\\uDE45\\uD83D\\uDE1F\\uD83D\\uDE35\\uD83D\\uDC4E\\uD83E\\uDD32\\uD83E\\uDD20\\uD83E\\uDD27\\uD83D\\uDCCC\\uD83D\\uDD35\\uD83D\\uDC85\\uD83E\\uDDD0\\uD83D\\uDC3E\\uD83C\\uDF52\\uD83D\\uDE17\\uD83E\\uDD11\\uD83C\\uDF0A\\uD83E\\uDD2F\\uD83D\\uDC37\\u260E\\uD83D\\uDCA7\\uD83D\\uDE2F\\uD83D\\uDC86\\uD83D\\uDC46\\uD83C\\uDFA4\\uD83D\\uDE47\\uD83C\\uDF51\\u2744\\uD83C\\uDF34\\uD83D\\uDCA3\\uD83D\\uDC38\\uD83D\\uDC8C\\uD83D\\uDCCD\\uD83E\\uDD40\\uD83E\\uDD22\\uD83D\\uDC45\\uD83D\\uDCA1\\uD83D\\uDCA9\\uD83D\\uDC50\\uD83D\\uDCF8\\uD83D\\uDC7B\\uD83E\\uDD10\\uD83E\\uDD2E\\uD83C\\uDFBC\\uD83E\\uDD75\\uD83D\\uDEA9\\uD83C\\uDF4E\\uD83C\\uDF4A\\uD83D\\uDC7C\\uD83D\\uDC8D\\uD83D\\uDCE3\\uD83E\\uDD42');\nconst alphabetBytesToChars = alphabet.reduce((p, c, i) => {\n p[i] = c;\n return p;\n}, []);\nconst alphabetCharsToBytes = alphabet.reduce((p, c, i) => {\n p[c.codePointAt(0)] = i;\n return p;\n}, []);\nfunction encode(data) {\n return data.reduce((p, c) => {\n p += alphabetBytesToChars[c];\n return p;\n }, '');\n}\nfunction decode(str) {\n const byts = [];\n for (const char of str) {\n const byt = alphabetCharsToBytes[char.codePointAt(0)];\n if (byt === undefined) {\n throw new Error(`Non-base256emoji character: ${ char }`);\n }\n byts.push(byt);\n }\n return new Uint8Array(byts);\n}\nexport const base256emoji = from({\n prefix: '\\uD83D\\uDE80',\n name: 'base256emoji',\n encode,\n decode\n});", "import { from } from './hasher.js';\nconst sha = name => async data => new Uint8Array(await crypto.subtle.digest(name, data));\nexport const sha256 = from({\n name: 'sha2-256',\n code: 18,\n encode: sha('SHA-256')\n});\nexport const sha512 = from({\n name: 'sha2-512',\n code: 19,\n encode: sha('SHA-512')\n});", "import * as Digest from './digest.js';\nexport const from = ({name, code, encode}) => new Hasher(name, code, encode);\nexport class Hasher {\n constructor(name, code, encode) {\n this.name = name;\n this.code = code;\n this.encode = encode;\n }\n digest(input) {\n if (input instanceof Uint8Array) {\n const result = this.encode(input);\n return result instanceof Uint8Array ? Digest.create(this.code, result) : result.then(digest => Digest.create(this.code, digest));\n } else {\n throw Error('Unknown type, must be binary type');\n }\n }\n}", "import { coerce } from '../bytes.js';\nimport * as Digest from './digest.js';\nconst code = 0;\nconst name = 'identity';\nconst encode = coerce;\nconst digest = input => Digest.create(code, encode(input));\nexport const identity = {\n code,\n name,\n encode,\n digest\n};", "const textEncoder = new TextEncoder();\nconst textDecoder = new TextDecoder();\nexport const name = 'json';\nexport const code = 512;\nexport const encode = node => textEncoder.encode(JSON.stringify(node));\nexport const decode = data => JSON.parse(textDecoder.decode(data));", "import * as identityBase from './bases/identity.js';\nimport * as base2 from './bases/base2.js';\nimport * as base8 from './bases/base8.js';\nimport * as base10 from './bases/base10.js';\nimport * as base16 from './bases/base16.js';\nimport * as base32 from './bases/base32.js';\nimport * as base36 from './bases/base36.js';\nimport * as base58 from './bases/base58.js';\nimport * as base64 from './bases/base64.js';\nimport * as base256emoji from './bases/base256emoji.js';\nimport * as sha2 from './hashes/sha2.js';\nimport * as identity from './hashes/identity.js';\nimport * as raw from './codecs/raw.js';\nimport * as json from './codecs/json.js';\nimport {\n CID,\n hasher,\n digest,\n varint,\n bytes\n} from './index.js';\nconst bases = {\n ...identityBase,\n ...base2,\n ...base8,\n ...base10,\n ...base16,\n ...base32,\n ...base36,\n ...base58,\n ...base64,\n ...base256emoji\n};\nconst hashes = {\n ...sha2,\n ...identity\n};\nconst codecs = {\n raw,\n json\n};\nexport {\n CID,\n hasher,\n digest,\n varint,\n bytes,\n hashes,\n bases,\n codecs\n};", "import { bases } from 'multiformats/basics';\nfunction createCodec(name, prefix, encode, decode) {\n return {\n name,\n prefix,\n encoder: {\n name,\n prefix,\n encode\n },\n decoder: { decode }\n };\n}\nconst string = createCodec('utf8', 'u', buf => {\n const decoder = new TextDecoder('utf8');\n return 'u' + decoder.decode(buf);\n}, str => {\n const encoder = new TextEncoder();\n return encoder.encode(str.substring(1));\n});\nconst ascii = createCodec('ascii', 'a', buf => {\n let string = 'a';\n for (let i = 0; i < buf.length; i++) {\n string += String.fromCharCode(buf[i]);\n }\n return string;\n}, str => {\n str = str.substring(1);\n const buf = new Uint8Array(str.length);\n for (let i = 0; i < str.length; i++) {\n buf[i] = str.charCodeAt(i);\n }\n return buf;\n});\nconst BASES = {\n utf8: string,\n 'utf-8': string,\n hex: bases.base16,\n latin1: ascii,\n ascii: ascii,\n binary: ascii,\n ...bases\n};\nexport default BASES;", "import bases from './util/bases.js';\nexport function fromString(string, encoding = 'utf8') {\n const base = bases[encoding];\n if (!base) {\n throw new Error(`Unsupported encoding \"${ encoding }\"`);\n }\n return base.decoder.decode(`${ base.prefix }${ string }`);\n}", "import bases from './util/bases.js';\nexport function toString(array, encoding = 'utf8') {\n const base = bases[encoding];\n if (!base) {\n throw new Error(`Unsupported encoding \"${ encoding }\"`);\n }\n return base.encoder.encode(array).substring(1);\n}", "import { CID } from 'multiformats/cid'\nimport * as ui8 from 'uint8arrays'\n\nexport type JsonValue =\n | boolean\n | number\n | string\n | null\n | undefined\n | unknown\n | Array<JsonValue>\n | { [key: string]: JsonValue }\n\nexport type IpldValue =\n | JsonValue\n | CID\n | Uint8Array\n | Array<IpldValue>\n | { [key: string]: IpldValue }\n\n// @NOTE avoiding use of check.is() here only because it makes\n// these implementations slow, and they often live in hot paths.\n\nexport const jsonToIpld = (val: JsonValue): IpldValue => {\n // walk arrays\n if (Array.isArray(val)) {\n return val.map((item) => jsonToIpld(item))\n }\n // objects\n if (val && typeof val === 'object') {\n // check for dag json values\n if (typeof val['$link'] === 'string' && Object.keys(val).length === 1) {\n return CID.parse(val['$link'])\n }\n if (typeof val['$bytes'] === 'string' && Object.keys(val).length === 1) {\n return ui8.fromString(val['$bytes'], 'base64')\n }\n // walk plain objects\n const toReturn = {}\n for (const key of Object.keys(val)) {\n toReturn[key] = jsonToIpld(val[key])\n }\n return toReturn\n }\n // pass through\n return val\n}\n\nexport const ipldToJson = (val: IpldValue): JsonValue => {\n // walk arrays\n if (Array.isArray(val)) {\n return val.map((item) => ipldToJson(item))\n }\n // objects\n if (val && typeof val === 'object') {\n // convert bytes\n if (val instanceof Uint8Array) {\n return {\n $bytes: ui8.toString(val, 'base64'),\n }\n }\n // convert cids\n if (CID.asCID(val)) {\n return {\n $link: (val as CID).toString(),\n }\n }\n // walk plain objects\n const toReturn = {}\n for (const key of Object.keys(val)) {\n toReturn[key] = ipldToJson(val[key])\n }\n return toReturn\n }\n // pass through\n return val as JsonValue\n}\n\nexport const ipldEquals = (a: IpldValue, b: IpldValue): boolean => {\n // walk arrays\n if (Array.isArray(a) && Array.isArray(b)) {\n if (a.length !== b.length) return false\n for (let i = 0; i < a.length; i++) {\n if (!ipldEquals(a[i], b[i])) return false\n }\n return true\n }\n // objects\n if (a && b && typeof a === 'object' && typeof b === 'object') {\n // check bytes\n if (a instanceof Uint8Array && b instanceof Uint8Array) {\n return ui8.equals(a, b)\n }\n // check cids\n if (CID.asCID(a) && CID.asCID(b)) {\n return CID.asCID(a)?.equals(CID.asCID(b))\n }\n // walk plain objects\n if (Object.keys(a).length !== Object.keys(b).length) return false\n for (const key of Object.keys(a)) {\n if (!ipldEquals(a[key], b[key])) return false\n }\n return true\n }\n return a === b\n}\n", "var util;\n(function (util) {\n util.assertEqual = (val) => val;\n function assertIs(_arg) { }\n util.assertIs = assertIs;\n function assertNever(_x) {\n throw new Error();\n }\n util.assertNever = assertNever;\n util.arrayToEnum = (items) => {\n const obj = {};\n for (const item of items) {\n obj[item] = item;\n }\n return obj;\n };\n util.getValidEnumValues = (obj) => {\n const validKeys = util.objectKeys(obj).filter((k) => typeof obj[obj[k]] !== \"number\");\n const filtered = {};\n for (const k of validKeys) {\n filtered[k] = obj[k];\n }\n return util.objectValues(filtered);\n };\n util.objectValues = (obj) => {\n return util.objectKeys(obj).map(function (e) {\n return obj[e];\n });\n };\n util.objectKeys = typeof Object.keys === \"function\" // eslint-disable-line ban/ban\n ? (obj) => Object.keys(obj) // eslint-disable-line ban/ban\n : (object) => {\n const keys = [];\n for (const key in object) {\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n keys.push(key);\n }\n }\n return keys;\n };\n util.find = (arr, checker) => {\n for (const item of arr) {\n if (checker(item))\n return item;\n }\n return undefined;\n };\n util.isInteger = typeof Number.isInteger === \"function\"\n ? (val) => Number.isInteger(val) // eslint-disable-line ban/ban\n : (val) => typeof val === \"number\" && isFinite(val) && Math.floor(val) === val;\n function joinValues(array, separator = \" | \") {\n return array\n .map((val) => (typeof val === \"string\" ? `'${val}'` : val))\n .join(separator);\n }\n util.joinValues = joinValues;\n util.jsonStringifyReplacer = (_, value) => {\n if (typeof value === \"bigint\") {\n return value.toString();\n }\n return value;\n };\n})(util || (util = {}));\nvar objectUtil;\n(function (objectUtil) {\n objectUtil.mergeShapes = (first, second) => {\n return {\n ...first,\n ...second, // second overwrites first\n };\n };\n})(objectUtil || (objectUtil = {}));\nconst ZodParsedType = util.arrayToEnum([\n \"string\",\n \"nan\",\n \"number\",\n \"integer\",\n \"float\",\n \"boolean\",\n \"date\",\n \"bigint\",\n \"symbol\",\n \"function\",\n \"undefined\",\n \"null\",\n \"array\",\n \"object\",\n \"unknown\",\n \"promise\",\n \"void\",\n \"never\",\n \"map\",\n \"set\",\n]);\nconst getParsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"undefined\":\n return ZodParsedType.undefined;\n case \"string\":\n return ZodParsedType.string;\n case \"number\":\n return isNaN(data) ? ZodParsedType.nan : ZodParsedType.number;\n case \"boolean\":\n return ZodParsedType.boolean;\n case \"function\":\n return ZodParsedType.function;\n case \"bigint\":\n return ZodParsedType.bigint;\n case \"symbol\":\n return ZodParsedType.symbol;\n case \"object\":\n if (Array.isArray(data)) {\n return ZodParsedType.array;\n }\n if (data === null) {\n return ZodParsedType.null;\n }\n if (data.then &&\n typeof data.then === \"function\" &&\n data.catch &&\n typeof data.catch === \"function\") {\n return ZodParsedType.promise;\n }\n if (typeof Map !== \"undefined\" && data instanceof Map) {\n return ZodParsedType.map;\n }\n if (typeof Set !== \"undefined\" && data instanceof Set) {\n return ZodParsedType.set;\n }\n if (typeof Date !== \"undefined\" && data instanceof Date) {\n return ZodParsedType.date;\n }\n return ZodParsedType.object;\n default:\n return ZodParsedType.unknown;\n }\n};\n\nconst ZodIssueCode = util.arrayToEnum([\n \"invalid_type\",\n \"invalid_literal\",\n \"custom\",\n \"invalid_union\",\n \"invalid_union_discriminator\",\n \"invalid_enum_value\",\n \"unrecognized_keys\",\n \"invalid_arguments\",\n \"invalid_return_type\",\n \"invalid_date\",\n \"invalid_string\",\n \"too_small\",\n \"too_big\",\n \"invalid_intersection_types\",\n \"not_multiple_of\",\n \"not_finite\",\n]);\nconst quotelessJson = (obj) => {\n const json = JSON.stringify(obj, null, 2);\n return json.replace(/\"([^\"]+)\":/g, \"$1:\");\n};\nclass ZodError extends Error {\n constructor(issues) {\n super();\n this.issues = [];\n this.addIssue = (sub) => {\n this.issues = [...this.issues, sub];\n };\n this.addIssues = (subs = []) => {\n this.issues = [...this.issues, ...subs];\n };\n const actualProto = new.target.prototype;\n if (Object.setPrototypeOf) {\n // eslint-disable-next-line ban/ban\n Object.setPrototypeOf(this, actualProto);\n }\n else {\n this.__proto__ = actualProto;\n }\n this.name = \"ZodError\";\n this.issues = issues;\n }\n get errors() {\n return this.issues;\n }\n format(_mapper) {\n const mapper = _mapper ||\n function (issue) {\n return issue.message;\n };\n const fieldErrors = { _errors: [] };\n const processError = (error) => {\n for (const issue of error.issues) {\n if (issue.code === \"invalid_union\") {\n issue.unionErrors.map(processError);\n }\n else if (issue.code === \"invalid_return_type\") {\n processError(issue.returnTypeError);\n }\n else if (issue.code === \"invalid_arguments\") {\n processError(issue.argumentsError);\n }\n else if (issue.path.length === 0) {\n fieldErrors._errors.push(mapper(issue));\n }\n else {\n let curr = fieldErrors;\n let i = 0;\n while (i < issue.path.length) {\n const el = issue.path[i];\n const terminal = i === issue.path.length - 1;\n if (!terminal) {\n curr[el] = curr[el] || { _errors: [] };\n // if (typeof el === \"string\") {\n // curr[el] = curr[el] || { _errors: [] };\n // } else if (typeof el === \"number\") {\n // const errorArray: any = [];\n // errorArray._errors = [];\n // curr[el] = curr[el] || errorArray;\n // }\n }\n else {\n curr[el] = curr[el] || { _errors: [] };\n curr[el]._errors.push(mapper(issue));\n }\n curr = curr[el];\n i++;\n }\n }\n }\n };\n processError(this);\n return fieldErrors;\n }\n toString() {\n return this.message;\n }\n get message() {\n return JSON.stringify(this.issues, util.jsonStringifyReplacer, 2);\n }\n get isEmpty() {\n return this.issues.length === 0;\n }\n flatten(mapper = (issue) => issue.message) {\n const fieldErrors = {};\n const formErrors = [];\n for (const sub of this.issues) {\n if (sub.path.length > 0) {\n fieldErrors[sub.path[0]] = fieldErrors[sub.path[0]] || [];\n fieldErrors[sub.path[0]].push(mapper(sub));\n }\n else {\n formErrors.push(mapper(sub));\n }\n }\n return { formErrors, fieldErrors };\n }\n get formErrors() {\n return this.flatten();\n }\n}\nZodError.create = (issues) => {\n const error = new ZodError(issues);\n return error;\n};\n\nconst errorMap = (issue, _ctx) => {\n let message;\n switch (issue.code) {\n case ZodIssueCode.invalid_type:\n if (issue.received === ZodParsedType.undefined) {\n message = \"Required\";\n }\n else {\n message = `Expected ${issue.expected}, received ${issue.received}`;\n }\n break;\n case ZodIssueCode.invalid_literal:\n message = `Invalid literal value, expected ${JSON.stringify(issue.expected, util.jsonStringifyReplacer)}`;\n break;\n case ZodIssueCode.unrecognized_keys:\n message = `Unrecognized key(s) in object: ${util.joinValues(issue.keys, \", \")}`;\n break;\n case ZodIssueCode.invalid_union:\n message = `Invalid input`;\n break;\n case ZodIssueCode.invalid_union_discriminator:\n message = `Invalid discriminator value. Expected ${util.joinValues(issue.options)}`;\n break;\n case ZodIssueCode.invalid_enum_value:\n message = `Invalid enum value. Expected ${util.joinValues(issue.options)}, received '${issue.received}'`;\n break;\n case ZodIssueCode.invalid_arguments:\n message = `Invalid function arguments`;\n break;\n case ZodIssueCode.invalid_return_type:\n message = `Invalid function return type`;\n break;\n case ZodIssueCode.invalid_date:\n message = `Invalid date`;\n break;\n case ZodIssueCode.invalid_string:\n if (typeof issue.validation === \"object\") {\n if (\"includes\" in issue.validation) {\n message = `Invalid input: must include \"${issue.validation.includes}\"`;\n if (typeof issue.validation.position === \"number\") {\n message = `${message} at one or more positions greater than or equal to ${issue.validation.position}`;\n }\n }\n else if (\"startsWith\" in issue.validation) {\n message = `Invalid input: must start with \"${issue.validation.startsWith}\"`;\n }\n else if (\"endsWith\" in issue.validation) {\n message = `Invalid input: must end with \"${issue.validation.endsWith}\"`;\n }\n else {\n util.assertNever(issue.validation);\n }\n }\n else if (issue.validation !== \"regex\") {\n message = `Invalid ${issue.validation}`;\n }\n else {\n message = \"Invalid\";\n }\n break;\n case ZodIssueCode.too_small:\n if (issue.type === \"array\")\n message = `Array must contain ${issue.exact ? \"exactly\" : issue.inclusive ? `at least` : `more than`} ${issue.minimum} element(s)`;\n else if (issue.type === \"string\")\n message = `String must contain ${issue.exact ? \"exactly\" : issue.inclusive ? `at least` : `over`} ${issue.minimum} character(s)`;\n else if (issue.type === \"number\")\n message = `Number must be ${issue.exact\n ? `exactly equal to `\n : issue.inclusive\n ? `greater than or equal to `\n : `greater than `}${issue.minimum}`;\n else if (issue.type === \"date\")\n message = `Date must be ${issue.exact\n ? `exactly equal to `\n : issue.inclusive\n ? `greater than or equal to `\n : `greater than `}${new Date(Number(issue.minimum))}`;\n else\n message = \"Invalid input\";\n break;\n case ZodIssueCode.too_big:\n if (issue.type === \"array\")\n message = `Array must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `less than`} ${issue.maximum} element(s)`;\n else if (issue.type === \"string\")\n message = `String must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `under`} ${issue.maximum} character(s)`;\n else if (issue.type === \"number\")\n message = `Number must be ${issue.exact\n ? `exactly`\n : issue.inclusive\n ? `less than or equal to`\n : `less than`} ${issue.maximum}`;\n else if (issue.type === \"bigint\")\n message = `BigInt must be ${issue.exact\n ? `exactly`\n : issue.inclusive\n ? `less than or equal to`\n : `less than`} ${issue.maximum}`;\n else if (issue.type === \"date\")\n message = `Date must be ${issue.exact\n ? `exactly`\n : issue.inclusive\n ? `smaller than or equal to`\n : `smaller than`} ${new Date(Number(issue.maximum))}`;\n else\n message = \"Invalid input\";\n break;\n case ZodIssueCode.custom:\n message = `Invalid input`;\n break;\n case ZodIssueCode.invalid_intersection_types:\n message = `Intersection results could not be merged`;\n break;\n case ZodIssueCode.not_multiple_of:\n message = `Number must be a multiple of ${issue.multipleOf}`;\n break;\n case ZodIssueCode.not_finite:\n message = \"Number must be finite\";\n break;\n default:\n message = _ctx.defaultError;\n util.assertNever(issue);\n }\n return { message };\n};\n\nlet overrideErrorMap = errorMap;\nfunction setErrorMap(map) {\n overrideErrorMap = map;\n}\nfunction getErrorMap() {\n return overrideErrorMap;\n}\n\nconst makeIssue = (params) => {\n const { data, path, errorMaps, issueData } = params;\n const fullPath = [...path, ...(issueData.path || [])];\n const fullIssue = {\n ...issueData,\n path: fullPath,\n };\n let errorMessage = \"\";\n const maps = errorMaps\n .filter((m) => !!m)\n .slice()\n .reverse();\n for (const map of maps) {\n errorMessage = map(fullIssue, { data, defaultError: errorMessage }).message;\n }\n return {\n ...issueData,\n path: fullPath,\n message: issueData.message || errorMessage,\n };\n};\nconst EMPTY_PATH = [];\nfunction addIssueToContext(ctx, issueData) {\n const issue = makeIssue({\n issueData: issueData,\n data: ctx.data,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap,\n ctx.schemaErrorMap,\n getErrorMap(),\n errorMap, // then global default map\n ].filter((x) => !!x),\n });\n ctx.common.issues.push(issue);\n}\nclass ParseStatus {\n constructor() {\n this.value = \"valid\";\n }\n dirty() {\n if (this.value === \"valid\")\n this.value = \"dirty\";\n }\n abort() {\n if (this.value !== \"aborted\")\n this.value = \"aborted\";\n }\n static mergeArray(status, results) {\n const arrayValue = [];\n for (const s of results) {\n if (s.status === \"aborted\")\n return INVALID;\n if (s.status === \"dirty\")\n status.dirty();\n arrayValue.push(s.value);\n }\n return { status: status.value, value: arrayValue };\n }\n static async mergeObjectAsync(status, pairs) {\n const syncPairs = [];\n for (const pair of pairs) {\n syncPairs.push({\n key: await pair.key,\n value: await pair.value,\n });\n }\n return ParseStatus.mergeObjectSync(status, syncPairs);\n }\n static mergeObjectSync(status, pairs) {\n const finalObject = {};\n for (const pair of pairs) {\n const { key, value } = pair;\n if (key.status === \"aborted\")\n return INVALID;\n if (value.status === \"aborted\")\n return INVALID;\n if (key.status === \"dirty\")\n status.dirty();\n if (value.status === \"dirty\")\n status.dirty();\n if (typeof value.value !== \"undefined\" || pair.alwaysSet) {\n finalObject[key.value] = value.value;\n }\n }\n return { status: status.value, value: finalObject };\n }\n}\nconst INVALID = Object.freeze({\n status: \"aborted\",\n});\nconst DIRTY = (value) => ({ status: \"dirty\", value });\nconst OK = (value) => ({ status: \"valid\", value });\nconst isAborted = (x) => x.status === \"aborted\";\nconst isDirty = (x) => x.status === \"dirty\";\nconst isValid = (x) => x.status === \"valid\";\nconst isAsync = (x) => typeof Promise !== \"undefined\" && x instanceof Promise;\n\nvar errorUtil;\n(function (errorUtil) {\n errorUtil.errToObj = (message) => typeof message === \"string\" ? { message } : message || {};\n errorUtil.toString = (message) => typeof message === \"string\" ? message : message === null || message === void 0 ? void 0 : message.message;\n})(errorUtil || (errorUtil = {}));\n\nclass ParseInputLazyPath {\n constructor(parent, value, path, key) {\n this._cachedPath = [];\n this.parent = parent;\n this.data = value;\n this._path = path;\n this._key = key;\n }\n get path() {\n if (!this._cachedPath.length) {\n if (this._key instanceof Array) {\n this._cachedPath.push(...this._path, ...this._key);\n }\n else {\n this._cachedPath.push(...this._path, this._key);\n }\n }\n return this._cachedPath;\n }\n}\nconst handleResult = (ctx, result) => {\n if (isValid(result)) {\n return { success: true, data: result.value };\n }\n else {\n if (!ctx.common.issues.length) {\n throw new Error(\"Validation failed but no issues detected.\");\n }\n return {\n success: false,\n get error() {\n if (this._error)\n return this._error;\n const error = new ZodError(ctx.common.issues);\n this._error = error;\n return this._error;\n },\n };\n }\n};\nfunction processCreateParams(params) {\n if (!params)\n return {};\n const { errorMap, invalid_type_error, required_error, description } = params;\n if (errorMap && (invalid_type_error || required_error)) {\n throw new Error(`Can't use \"invalid_type_error\" or \"required_error\" in conjunction with custom error map.`);\n }\n if (errorMap)\n return { errorMap: errorMap, description };\n const customMap = (iss, ctx) => {\n if (iss.code !== \"invalid_type\")\n return { message: ctx.defaultError };\n if (typeof ctx.data === \"undefined\") {\n return { message: required_error !== null && required_error !== void 0 ? required_error : ctx.defaultError };\n }\n return { message: invalid_type_error !== null && invalid_type_error !== void 0 ? invalid_type_error : ctx.defaultError };\n };\n return { errorMap: customMap, description };\n}\nclass ZodType {\n constructor(def) {\n /** Alias of safeParseAsync */\n this.spa = this.safeParseAsync;\n this._def = def;\n this.parse = this.parse.bind(this);\n this.safeParse = this.safeParse.bind(this);\n this.parseAsync = this.parseAsync.bind(this);\n this.safeParseAsync = this.safeParseAsync.bind(this);\n this.spa = this.spa.bind(this);\n this.refine = this.refine.bind(this);\n this.refinement = this.refinement.bind(this);\n this.superRefine = this.superRefine.bind(this);\n this.optional = this.optional.bind(this);\n this.nullable = this.nullable.bind(this);\n this.nullish = this.nullish.bind(this);\n this.array = this.array.bind(this);\n this.promise = this.promise.bind(this);\n this.or = this.or.bind(this);\n this.and = this.and.bind(this);\n this.transform = this.transform.bind(this);\n this.brand = this.brand.bind(this);\n this.default = this.default.bind(this);\n this.catch = this.catch.bind(this);\n this.describe = this.describe.bind(this);\n this.pipe = this.pipe.bind(this);\n this.isNullable = this.isNullable.bind(this);\n this.isOptional = this.isOptional.bind(this);\n }\n get description() {\n return this._def.description;\n }\n _getType(input) {\n return getParsedType(input.data);\n }\n _getOrReturnCtx(input, ctx) {\n return (ctx || {\n common: input.parent.common,\n data: input.data,\n parsedType: getParsedType(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent,\n });\n }\n _processInputParams(input) {\n return {\n status: new ParseStatus(),\n ctx: {\n common: input.parent.common,\n data: input.data,\n parsedType: getParsedType(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent,\n },\n };\n }\n _parseSync(input) {\n const result = this._parse(input);\n if (isAsync(result)) {\n throw new Error(\"Synchronous parse encountered promise.\");\n }\n return result;\n }\n _parseAsync(input) {\n const result = this._parse(input);\n return Promise.resolve(result);\n }\n parse(data, params) {\n const result = this.safeParse(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n safeParse(data, params) {\n var _a;\n const ctx = {\n common: {\n issues: [],\n async: (_a = params === null || params === void 0 ? void 0 : params.async) !== null && _a !== void 0 ? _a : false,\n contextualErrorMap: params === null || params === void 0 ? void 0 : params.errorMap,\n },\n path: (params === null || params === void 0 ? void 0 : params.path) || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n const result = this._parseSync({ data, path: ctx.path, parent: ctx });\n return handleResult(ctx, result);\n }\n async parseAsync(data, params) {\n const result = await this.safeParseAsync(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n async safeParseAsync(data, params) {\n const ctx = {\n common: {\n issues: [],\n contextualErrorMap: params === null || params === void 0 ? void 0 : params.errorMap,\n async: true,\n },\n path: (params === null || params === void 0 ? void 0 : params.path) || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n const maybeAsyncResult = this._parse({ data, path: ctx.path, parent: ctx });\n const result = await (isAsync(maybeAsyncResult)\n ? maybeAsyncResult\n : Promise.resolve(maybeAsyncResult));\n return handleResult(ctx, result);\n }\n refine(check, message) {\n const getIssueProperties = (val) => {\n if (typeof message === \"string\" || typeof message === \"undefined\") {\n return { message };\n }\n else if (typeof message === \"function\") {\n return message(val);\n }\n else {\n return message;\n }\n };\n return this._refinement((val, ctx) => {\n const result = check(val);\n const setError = () => ctx.addIssue({\n code: ZodIssueCode.custom,\n ...getIssueProperties(val),\n });\n if (typeof Promise !== \"undefined\" && result instanceof Promise) {\n return result.then((data) => {\n if (!data) {\n setError();\n return false;\n }\n else {\n return true;\n }\n });\n }\n if (!result) {\n setError();\n return false;\n }\n else {\n return true;\n }\n });\n }\n refinement(check, refinementData) {\n return this._refinement((val, ctx) => {\n if (!check(val)) {\n ctx.addIssue(typeof refinementData === \"function\"\n ? refinementData(val, ctx)\n : refinementData);\n return false;\n }\n else {\n return true;\n }\n });\n }\n _refinement(refinement) {\n return new ZodEffects({\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"refinement\", refinement },\n });\n }\n superRefine(refinement) {\n return this._refinement(refinement);\n }\n optional() {\n return ZodOptional.create(this, this._def);\n }\n nullable() {\n return ZodNullable.create(this, this._def);\n }\n nullish() {\n return this.nullable().optional();\n }\n array() {\n return ZodArray.create(this, this._def);\n }\n promise() {\n return ZodPromise.create(this, this._def);\n }\n or(option) {\n return ZodUnion.create([this, option], this._def);\n }\n and(incoming) {\n return ZodIntersection.create(this, incoming, this._def);\n }\n transform(transform) {\n return new ZodEffects({\n ...processCreateParams(this._def),\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"transform\", transform },\n });\n }\n default(def) {\n const defaultValueFunc = typeof def === \"function\" ? def : () => def;\n return new ZodDefault({\n ...processCreateParams(this._def),\n innerType: this,\n defaultValue: defaultValueFunc,\n typeName: ZodFirstPartyTypeKind.ZodDefault,\n });\n }\n brand() {\n return new ZodBranded({\n typeName: ZodFirstPartyTypeKind.ZodBranded,\n type: this,\n ...processCreateParams(this._def),\n });\n }\n catch(def) {\n const catchValueFunc = typeof def === \"function\" ? def : () => def;\n return new ZodCatch({\n ...processCreateParams(this._def),\n innerType: this,\n catchValue: catchValueFunc,\n typeName: ZodFirstPartyTypeKind.ZodCatch,\n });\n }\n describe(description) {\n const This = this.constructor;\n return new This({\n ...this._def,\n description,\n });\n }\n pipe(target) {\n return ZodPipeline.create(this, target);\n }\n isOptional() {\n return this.safeParse(undefined).success;\n }\n isNullable() {\n return this.safeParse(null).success;\n }\n}\nconst cuidRegex = /^c[^\\s-]{8,}$/i;\nconst cuid2Regex = /^[a-z][a-z0-9]*$/;\nconst ulidRegex = /[0-9A-HJKMNP-TV-Z]{26}/;\nconst uuidRegex = /^([a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[a-f0-9]{4}-[a-f0-9]{12}|00000000-0000-0000-0000-000000000000)$/i;\n// from https://stackoverflow.com/a/46181/1550155\n// old version: too slow, didn't support unicode\n// const emailRegex = /^((([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))$/i;\n//old email regex\n// const emailRegex = /^(([^<>()[\\].,;:\\s@\"]+(\\.[^<>()[\\].,;:\\s@\"]+)*)|(\".+\"))@((?!-)([^<>()[\\].,;:\\s@\"]+\\.)+[^<>()[\\].,;:\\s@\"]{1,})[^-<>()[\\].,;:\\s@\"]$/i;\n// eslint-disable-next-line\nconst emailRegex = /^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\])|(\\[IPv6:(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))\\])|([A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])*(\\.[A-Za-z]{2,})+))$/;\n// from https://thekevinscott.com/emojis-in-javascript/#writing-a-regular-expression\nconst emojiRegex = /^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$/u;\nconst ipv4Regex = /^(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))$/;\nconst ipv6Regex = /^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/;\n// Adapted from https://stackoverflow.com/a/3143231\nconst datetimeRegex = (args) => {\n if (args.precision) {\n if (args.offset) {\n return new RegExp(`^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}\\\\.\\\\d{${args.precision}}(([+-]\\\\d{2}(:?\\\\d{2})?)|Z)$`);\n }\n else {\n return new RegExp(`^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}\\\\.\\\\d{${args.precision}}Z$`);\n }\n }\n else if (args.precision === 0) {\n if (args.offset) {\n return new RegExp(`^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}(([+-]\\\\d{2}(:?\\\\d{2})?)|Z)$`);\n }\n else {\n return new RegExp(`^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}Z$`);\n }\n }\n else {\n if (args.offset) {\n return new RegExp(`^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}(\\\\.\\\\d+)?(([+-]\\\\d{2}(:?\\\\d{2})?)|Z)$`);\n }\n else {\n return new RegExp(`^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}(\\\\.\\\\d+)?Z$`);\n }\n }\n};\nfunction isValidIP(ip, version) {\n if ((version === \"v4\" || !version) && ipv4Regex.test(ip)) {\n return true;\n }\n if ((version === \"v6\" || !version) && ipv6Regex.test(ip)) {\n return true;\n }\n return false;\n}\nclass ZodString extends ZodType {\n constructor() {\n super(...arguments);\n this._regex = (regex, validation, message) => this.refinement((data) => regex.test(data), {\n validation,\n code: ZodIssueCode.invalid_string,\n ...errorUtil.errToObj(message),\n });\n /**\n * @deprecated Use z.string().min(1) instead.\n * @see {@link ZodString.min}\n */\n this.nonempty = (message) => this.min(1, errorUtil.errToObj(message));\n this.trim = () => new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"trim\" }],\n });\n this.toLowerCase = () => new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toLowerCase\" }],\n });\n this.toUpperCase = () => new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toUpperCase\" }],\n });\n }\n _parse(input) {\n if (this._def.coerce) {\n input.data = String(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.string) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.string,\n received: ctx.parsedType,\n }\n //\n );\n return INVALID;\n }\n const status = new ParseStatus();\n let ctx = undefined;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.length < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"string\",\n inclusive: true,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n if (input.data.length > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"string\",\n inclusive: true,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"length\") {\n const tooBig = input.data.length > check.value;\n const tooSmall = input.data.length < check.value;\n if (tooBig || tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n if (tooBig) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"string\",\n inclusive: true,\n exact: true,\n message: check.message,\n });\n }\n else if (tooSmall) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"string\",\n inclusive: true,\n exact: true,\n message: check.message,\n });\n }\n status.dirty();\n }\n }\n else if (check.kind === \"email\") {\n if (!emailRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"email\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"emoji\") {\n if (!emojiRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"emoji\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"uuid\") {\n if (!uuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"uuid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cuid\") {\n if (!cuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cuid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cuid2\") {\n if (!cuid2Regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cuid2\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"ulid\") {\n if (!ulidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"ulid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"url\") {\n try {\n new URL(input.data);\n }\n catch (_a) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"url\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"regex\") {\n check.regex.lastIndex = 0;\n const testResult = check.regex.test(input.data);\n if (!testResult) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"regex\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"trim\") {\n input.data = input.data.trim();\n }\n else if (check.kind === \"includes\") {\n if (!input.data.includes(check.value, check.position)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { includes: check.value, position: check.position },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"toLowerCase\") {\n input.data = input.data.toLowerCase();\n }\n else if (check.kind === \"toUpperCase\") {\n input.data = input.data.toUpperCase();\n }\n else if (check.kind === \"startsWith\") {\n if (!input.data.startsWith(check.value)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { startsWith: check.value },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"endsWith\") {\n if (!input.data.endsWith(check.value)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { endsWith: check.value },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"datetime\") {\n const regex = datetimeRegex(check);\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"datetime\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"ip\") {\n if (!isValidIP(input.data, check.version)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"ip\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n _addCheck(check) {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n email(message) {\n return this._addCheck({ kind: \"email\", ...errorUtil.errToObj(message) });\n }\n url(message) {\n return this._addCheck({ kind: \"url\", ...errorUtil.errToObj(message) });\n }\n emoji(message) {\n return this._addCheck({ kind: \"emoji\", ...errorUtil.errToObj(message) });\n }\n uuid(message) {\n return this._addCheck({ kind: \"uuid\", ...errorUtil.errToObj(message) });\n }\n cuid(message) {\n return this._addCheck({ kind: \"cuid\", ...errorUtil.errToObj(message) });\n }\n cuid2(message) {\n return this._addCheck({ kind: \"cuid2\", ...errorUtil.errToObj(message) });\n }\n ulid(message) {\n return this._addCheck({ kind: \"ulid\", ...errorUtil.errToObj(message) });\n }\n ip(options) {\n return this._addCheck({ kind: \"ip\", ...errorUtil.errToObj(options) });\n }\n datetime(options) {\n var _a;\n if (typeof options === \"string\") {\n return this._addCheck({\n kind: \"datetime\",\n precision: null,\n offset: false,\n message: options,\n });\n }\n return this._addCheck({\n kind: \"datetime\",\n precision: typeof (options === null || options === void 0 ? void 0 : options.precision) === \"undefined\" ? null : options === null || options === void 0 ? void 0 : options.precision,\n offset: (_a = options === null || options === void 0 ? void 0 : options.offset) !== null && _a !== void 0 ? _a : false,\n ...errorUtil.errToObj(options === null || options === void 0 ? void 0 : options.message),\n });\n }\n regex(regex, message) {\n return this._addCheck({\n kind: \"regex\",\n regex: regex,\n ...errorUtil.errToObj(message),\n });\n }\n includes(value, options) {\n return this._addCheck({\n kind: \"includes\",\n value: value,\n position: options === null || options === void 0 ? void 0 : options.position,\n ...errorUtil.errToObj(options === null || options === void 0 ? void 0 : options.message),\n });\n }\n startsWith(value, message) {\n return this._addCheck({\n kind: \"startsWith\",\n value: value,\n ...errorUtil.errToObj(message),\n });\n }\n endsWith(value, message) {\n return this._addCheck({\n kind: \"endsWith\",\n value: value,\n ...errorUtil.errToObj(message),\n });\n }\n min(minLength, message) {\n return this._addCheck({\n kind: \"min\",\n value: minLength,\n ...errorUtil.errToObj(message),\n });\n }\n max(maxLength, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxLength,\n ...errorUtil.errToObj(message),\n });\n }\n length(len, message) {\n return this._addCheck({\n kind: \"length\",\n value: len,\n ...errorUtil.errToObj(message),\n });\n }\n get isDatetime() {\n return !!this._def.checks.find((ch) => ch.kind === \"datetime\");\n }\n get isEmail() {\n return !!this._def.checks.find((ch) => ch.kind === \"email\");\n }\n get isURL() {\n return !!this._def.checks.find((ch) => ch.kind === \"url\");\n }\n get isEmoji() {\n return !!this._def.checks.find((ch) => ch.kind === \"emoji\");\n }\n get isUUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"uuid\");\n }\n get isCUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"cuid\");\n }\n get isCUID2() {\n return !!this._def.checks.find((ch) => ch.kind === \"cuid2\");\n }\n get isULID() {\n return !!this._def.checks.find((ch) => ch.kind === \"ulid\");\n }\n get isIP() {\n return !!this._def.checks.find((ch) => ch.kind === \"ip\");\n }\n get minLength() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxLength() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n}\nZodString.create = (params) => {\n var _a;\n return new ZodString({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodString,\n coerce: (_a = params === null || params === void 0 ? void 0 : params.coerce) !== null && _a !== void 0 ? _a : false,\n ...processCreateParams(params),\n });\n};\n// https://stackoverflow.com/questions/3966484/why-does-modulus-operator-return-fractional-number-in-javascript/31711034#31711034\nfunction floatSafeRemainder(val, step) {\n const valDecCount = (val.toString().split(\".\")[1] || \"\").length;\n const stepDecCount = (step.toString().split(\".\")[1] || \"\").length;\n const decCount = valDecCount > stepDecCount ? valDecCount : stepDecCount;\n const valInt = parseInt(val.toFixed(decCount).replace(\".\", \"\"));\n const stepInt = parseInt(step.toFixed(decCount).replace(\".\", \"\"));\n return (valInt % stepInt) / Math.pow(10, decCount);\n}\nclass ZodNumber extends ZodType {\n constructor() {\n super(...arguments);\n this.min = this.gte;\n this.max = this.lte;\n this.step = this.multipleOf;\n }\n _parse(input) {\n if (this._def.coerce) {\n input.data = Number(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.number) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.number,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n let ctx = undefined;\n const status = new ParseStatus();\n for (const check of this._def.checks) {\n if (check.kind === \"int\") {\n if (!util.isInteger(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: \"integer\",\n received: \"float\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"min\") {\n const tooSmall = check.inclusive\n ? input.data < check.value\n : input.data <= check.value;\n if (tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n const tooBig = check.inclusive\n ? input.data > check.value\n : input.data >= check.value;\n if (tooBig) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"multipleOf\") {\n if (floatSafeRemainder(input.data, check.value) !== 0) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_multiple_of,\n multipleOf: check.value,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"finite\") {\n if (!Number.isFinite(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_finite,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n gte(value, message) {\n return this.setLimit(\"min\", value, true, errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, errorUtil.toString(message));\n }\n setLimit(kind, value, inclusive, message) {\n return new ZodNumber({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind,\n value,\n inclusive,\n message: errorUtil.toString(message),\n },\n ],\n });\n }\n _addCheck(check) {\n return new ZodNumber({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n int(message) {\n return this._addCheck({\n kind: \"int\",\n message: errorUtil.toString(message),\n });\n }\n positive(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n nonpositive(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value: value,\n message: errorUtil.toString(message),\n });\n }\n finite(message) {\n return this._addCheck({\n kind: \"finite\",\n message: errorUtil.toString(message),\n });\n }\n safe(message) {\n return this._addCheck({\n kind: \"min\",\n inclusive: true,\n value: Number.MIN_SAFE_INTEGER,\n message: errorUtil.toString(message),\n })._addCheck({\n kind: \"max\",\n inclusive: true,\n value: Number.MAX_SAFE_INTEGER,\n message: errorUtil.toString(message),\n });\n }\n get minValue() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxValue() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n get isInt() {\n return !!this._def.checks.find((ch) => ch.kind === \"int\" ||\n (ch.kind === \"multipleOf\" && util.isInteger(ch.value)));\n }\n get isFinite() {\n let max = null, min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"finite\" ||\n ch.kind === \"int\" ||\n ch.kind === \"multipleOf\") {\n return true;\n }\n else if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n else if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return Number.isFinite(min) && Number.isFinite(max);\n }\n}\nZodNumber.create = (params) => {\n return new ZodNumber({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodNumber,\n coerce: (params === null || params === void 0 ? void 0 : params.coerce) || false,\n ...processCreateParams(params),\n });\n};\nclass ZodBigInt extends ZodType {\n constructor() {\n super(...arguments);\n this.min = this.gte;\n this.max = this.lte;\n }\n _parse(input) {\n if (this._def.coerce) {\n input.data = BigInt(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.bigint) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.bigint,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n let ctx = undefined;\n const status = new ParseStatus();\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n const tooSmall = check.inclusive\n ? input.data < check.value\n : input.data <= check.value;\n if (tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n type: \"bigint\",\n minimum: check.value,\n inclusive: check.inclusive,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n const tooBig = check.inclusive\n ? input.data > check.value\n : input.data >= check.value;\n if (tooBig) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n type: \"bigint\",\n maximum: check.value,\n inclusive: check.inclusive,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"multipleOf\") {\n if (input.data % check.value !== BigInt(0)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_multiple_of,\n multipleOf: check.value,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n gte(value, message) {\n return this.setLimit(\"min\", value, true, errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, errorUtil.toString(message));\n }\n setLimit(kind, value, inclusive, message) {\n return new ZodBigInt({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind,\n value,\n inclusive,\n message: errorUtil.toString(message),\n },\n ],\n });\n }\n _addCheck(check) {\n return new ZodBigInt({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n positive(message) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n nonpositive(message) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value,\n message: errorUtil.toString(message),\n });\n }\n get minValue() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxValue() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n}\nZodBigInt.create = (params) => {\n var _a;\n return new ZodBigInt({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodBigInt,\n coerce: (_a = params === null || params === void 0 ? void 0 : params.coerce) !== null && _a !== void 0 ? _a : false,\n ...processCreateParams(params),\n });\n};\nclass ZodBoolean extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = Boolean(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.boolean) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.boolean,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodBoolean.create = (params) => {\n return new ZodBoolean({\n typeName: ZodFirstPartyTypeKind.ZodBoolean,\n coerce: (params === null || params === void 0 ? void 0 : params.coerce) || false,\n ...processCreateParams(params),\n });\n};\nclass ZodDate extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = new Date(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.date) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.date,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (isNaN(input.data.getTime())) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_date,\n });\n return INVALID;\n }\n const status = new ParseStatus();\n let ctx = undefined;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.getTime() < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n message: check.message,\n inclusive: true,\n exact: false,\n minimum: check.value,\n type: \"date\",\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n if (input.data.getTime() > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n message: check.message,\n inclusive: true,\n exact: false,\n maximum: check.value,\n type: \"date\",\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return {\n status: status.value,\n value: new Date(input.data.getTime()),\n };\n }\n _addCheck(check) {\n return new ZodDate({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n min(minDate, message) {\n return this._addCheck({\n kind: \"min\",\n value: minDate.getTime(),\n message: errorUtil.toString(message),\n });\n }\n max(maxDate, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxDate.getTime(),\n message: errorUtil.toString(message),\n });\n }\n get minDate() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min != null ? new Date(min) : null;\n }\n get maxDate() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max != null ? new Date(max) : null;\n }\n}\nZodDate.create = (params) => {\n return new ZodDate({\n checks: [],\n coerce: (params === null || params === void 0 ? void 0 : params.coerce) || false,\n typeName: ZodFirstPartyTypeKind.ZodDate,\n ...processCreateParams(params),\n });\n};\nclass ZodSymbol extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.symbol) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.symbol,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodSymbol.create = (params) => {\n return new ZodSymbol({\n typeName: ZodFirstPartyTypeKind.ZodSymbol,\n ...processCreateParams(params),\n });\n};\nclass ZodUndefined extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.undefined,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodUndefined.create = (params) => {\n return new ZodUndefined({\n typeName: ZodFirstPartyTypeKind.ZodUndefined,\n ...processCreateParams(params),\n });\n};\nclass ZodNull extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.null) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.null,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodNull.create = (params) => {\n return new ZodNull({\n typeName: ZodFirstPartyTypeKind.ZodNull,\n ...processCreateParams(params),\n });\n};\nclass ZodAny extends ZodType {\n constructor() {\n super(...arguments);\n // to prevent instances of other classes from extending ZodAny. this causes issues with catchall in ZodObject.\n this._any = true;\n }\n _parse(input) {\n return OK(input.data);\n }\n}\nZodAny.create = (params) => {\n return new ZodAny({\n typeName: ZodFirstPartyTypeKind.ZodAny,\n ...processCreateParams(params),\n });\n};\nclass ZodUnknown extends ZodType {\n constructor() {\n super(...arguments);\n // required\n this._unknown = true;\n }\n _parse(input) {\n return OK(input.data);\n }\n}\nZodUnknown.create = (params) => {\n return new ZodUnknown({\n typeName: ZodFirstPartyTypeKind.ZodUnknown,\n ...processCreateParams(params),\n });\n};\nclass ZodNever extends ZodType {\n _parse(input) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.never,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n}\nZodNever.create = (params) => {\n return new ZodNever({\n typeName: ZodFirstPartyTypeKind.ZodNever,\n ...processCreateParams(params),\n });\n};\nclass ZodVoid extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.void,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodVoid.create = (params) => {\n return new ZodVoid({\n typeName: ZodFirstPartyTypeKind.ZodVoid,\n ...processCreateParams(params),\n });\n};\nclass ZodArray extends ZodType {\n _parse(input) {\n const { ctx, status } = this._processInputParams(input);\n const def = this._def;\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (def.exactLength !== null) {\n const tooBig = ctx.data.length > def.exactLength.value;\n const tooSmall = ctx.data.length < def.exactLength.value;\n if (tooBig || tooSmall) {\n addIssueToContext(ctx, {\n code: tooBig ? ZodIssueCode.too_big : ZodIssueCode.too_small,\n minimum: (tooSmall ? def.exactLength.value : undefined),\n maximum: (tooBig ? def.exactLength.value : undefined),\n type: \"array\",\n inclusive: true,\n exact: true,\n message: def.exactLength.message,\n });\n status.dirty();\n }\n }\n if (def.minLength !== null) {\n if (ctx.data.length < def.minLength.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: def.minLength.value,\n type: \"array\",\n inclusive: true,\n exact: false,\n message: def.minLength.message,\n });\n status.dirty();\n }\n }\n if (def.maxLength !== null) {\n if (ctx.data.length > def.maxLength.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: def.maxLength.value,\n type: \"array\",\n inclusive: true,\n exact: false,\n message: def.maxLength.message,\n });\n status.dirty();\n }\n }\n if (ctx.common.async) {\n return Promise.all([...ctx.data].map((item, i) => {\n return def.type._parseAsync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n })).then((result) => {\n return ParseStatus.mergeArray(status, result);\n });\n }\n const result = [...ctx.data].map((item, i) => {\n return def.type._parseSync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n });\n return ParseStatus.mergeArray(status, result);\n }\n get element() {\n return this._def.type;\n }\n min(minLength, message) {\n return new ZodArray({\n ...this._def,\n minLength: { value: minLength, message: errorUtil.toString(message) },\n });\n }\n max(maxLength, message) {\n return new ZodArray({\n ...this._def,\n maxLength: { value: maxLength, message: errorUtil.toString(message) },\n });\n }\n length(len, message) {\n return new ZodArray({\n ...this._def,\n exactLength: { value: len, message: errorUtil.toString(message) },\n });\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nZodArray.create = (schema, params) => {\n return new ZodArray({\n type: schema,\n minLength: null,\n maxLength: null,\n exactLength: null,\n typeName: ZodFirstPartyTypeKind.ZodArray,\n ...processCreateParams(params),\n });\n};\nfunction deepPartialify(schema) {\n if (schema instanceof ZodObject) {\n const newShape = {};\n for (const key in schema.shape) {\n const fieldSchema = schema.shape[key];\n newShape[key] = ZodOptional.create(deepPartialify(fieldSchema));\n }\n return new ZodObject({\n ...schema._def,\n shape: () => newShape,\n });\n }\n else if (schema instanceof ZodArray) {\n return new ZodArray({\n ...schema._def,\n type: deepPartialify(schema.element),\n });\n }\n else if (schema instanceof ZodOptional) {\n return ZodOptional.create(deepPartialify(schema.unwrap()));\n }\n else if (schema instanceof ZodNullable) {\n return ZodNullable.create(deepPartialify(schema.unwrap()));\n }\n else if (schema instanceof ZodTuple) {\n return ZodTuple.create(schema.items.map((item) => deepPartialify(item)));\n }\n else {\n return schema;\n }\n}\nclass ZodObject extends ZodType {\n constructor() {\n super(...arguments);\n this._cached = null;\n /**\n * @deprecated In most cases, this is no longer needed - unknown properties are now silently stripped.\n * If you want to pass through unknown properties, use `.passthrough()` instead.\n */\n this.nonstrict = this.passthrough;\n // extend<\n // Augmentation extends ZodRawShape,\n // NewOutput extends util.flatten<{\n // [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation\n // ? Augmentation[k][\"_output\"]\n // : k extends keyof Output\n // ? Output[k]\n // : never;\n // }>,\n // NewInput extends util.flatten<{\n // [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation\n // ? Augmentation[k][\"_input\"]\n // : k extends keyof Input\n // ? Input[k]\n // : never;\n // }>\n // >(\n // augmentation: Augmentation\n // ): ZodObject<\n // extendShape<T, Augmentation>,\n // UnknownKeys,\n // Catchall,\n // NewOutput,\n // NewInput\n // > {\n // return new ZodObject({\n // ...this._def,\n // shape: () => ({\n // ...this._def.shape(),\n // ...augmentation,\n // }),\n // }) as any;\n // }\n /**\n * @deprecated Use `.extend` instead\n * */\n this.augment = this.extend;\n }\n _getCached() {\n if (this._cached !== null)\n return this._cached;\n const shape = this._def.shape();\n const keys = util.objectKeys(shape);\n return (this._cached = { shape, keys });\n }\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.object) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const { status, ctx } = this._processInputParams(input);\n const { shape, keys: shapeKeys } = this._getCached();\n const extraKeys = [];\n if (!(this._def.catchall instanceof ZodNever &&\n this._def.unknownKeys === \"strip\")) {\n for (const key in ctx.data) {\n if (!shapeKeys.includes(key)) {\n extraKeys.push(key);\n }\n }\n }\n const pairs = [];\n for (const key of shapeKeys) {\n const keyValidator = shape[key];\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: keyValidator._parse(new ParseInputLazyPath(ctx, value, ctx.path, key)),\n alwaysSet: key in ctx.data,\n });\n }\n if (this._def.catchall instanceof ZodNever) {\n const unknownKeys = this._def.unknownKeys;\n if (unknownKeys === \"passthrough\") {\n for (const key of extraKeys) {\n pairs.push({\n key: { status: \"valid\", value: key },\n value: { status: \"valid\", value: ctx.data[key] },\n });\n }\n }\n else if (unknownKeys === \"strict\") {\n if (extraKeys.length > 0) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.unrecognized_keys,\n keys: extraKeys,\n });\n status.dirty();\n }\n }\n else if (unknownKeys === \"strip\") ;\n else {\n throw new Error(`Internal ZodObject error: invalid unknownKeys value.`);\n }\n }\n else {\n // run catchall validation\n const catchall = this._def.catchall;\n for (const key of extraKeys) {\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: catchall._parse(new ParseInputLazyPath(ctx, value, ctx.path, key) //, ctx.child(key), value, getParsedType(value)\n ),\n alwaysSet: key in ctx.data,\n });\n }\n }\n if (ctx.common.async) {\n return Promise.resolve()\n .then(async () => {\n const syncPairs = [];\n for (const pair of pairs) {\n const key = await pair.key;\n syncPairs.push({\n key,\n value: await pair.value,\n alwaysSet: pair.alwaysSet,\n });\n }\n return syncPairs;\n })\n .then((syncPairs) => {\n return ParseStatus.mergeObjectSync(status, syncPairs);\n });\n }\n else {\n return ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get shape() {\n return this._def.shape();\n }\n strict(message) {\n errorUtil.errToObj;\n return new ZodObject({\n ...this._def,\n unknownKeys: \"strict\",\n ...(message !== undefined\n ? {\n errorMap: (issue, ctx) => {\n var _a, _b, _c, _d;\n const defaultError = (_c = (_b = (_a = this._def).errorMap) === null || _b === void 0 ? void 0 : _b.call(_a, issue, ctx).message) !== null && _c !== void 0 ? _c : ctx.defaultError;\n if (issue.code === \"unrecognized_keys\")\n return {\n message: (_d = errorUtil.errToObj(message).message) !== null && _d !== void 0 ? _d : defaultError,\n };\n return {\n message: defaultError,\n };\n },\n }\n : {}),\n });\n }\n strip() {\n return new ZodObject({\n ...this._def,\n unknownKeys: \"strip\",\n });\n }\n passthrough() {\n return new ZodObject({\n ...this._def,\n unknownKeys: \"passthrough\",\n });\n }\n // const AugmentFactory =\n // <Def extends ZodObjectDef>(def: Def) =>\n // <Augmentation extends ZodRawShape>(\n // augmentation: Augmentation\n // ): ZodObject<\n // extendShape<ReturnType<Def[\"shape\"]>, Augmentation>,\n // Def[\"unknownKeys\"],\n // Def[\"catchall\"]\n // > => {\n // return new ZodObject({\n // ...def,\n // shape: () => ({\n // ...def.shape(),\n // ...augmentation,\n // }),\n // }) as any;\n // };\n extend(augmentation) {\n return new ZodObject({\n ...this._def,\n shape: () => ({\n ...this._def.shape(),\n ...augmentation,\n }),\n });\n }\n /**\n * Prior to zod@1.0.12 there was a bug in the\n * inferred type of merged objects. Please\n * upgrade if you are experiencing issues.\n */\n merge(merging) {\n const merged = new ZodObject({\n unknownKeys: merging._def.unknownKeys,\n catchall: merging._def.catchall,\n shape: () => ({\n ...this._def.shape(),\n ...merging._def.shape(),\n }),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n });\n return merged;\n }\n // merge<\n // Incoming extends AnyZodObject,\n // Augmentation extends Incoming[\"shape\"],\n // NewOutput extends {\n // [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation\n // ? Augmentation[k][\"_output\"]\n // : k extends keyof Output\n // ? Output[k]\n // : never;\n // },\n // NewInput extends {\n // [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation\n // ? Augmentation[k][\"_input\"]\n // : k extends keyof Input\n // ? Input[k]\n // : never;\n // }\n // >(\n // merging: Incoming\n // ): ZodObject<\n // extendShape<T, ReturnType<Incoming[\"_def\"][\"shape\"]>>,\n // Incoming[\"_def\"][\"unknownKeys\"],\n // Incoming[\"_def\"][\"catchall\"],\n // NewOutput,\n // NewInput\n // > {\n // const merged: any = new ZodObject({\n // unknownKeys: merging._def.unknownKeys,\n // catchall: merging._def.catchall,\n // shape: () =>\n // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n // typeName: ZodFirstPartyTypeKind.ZodObject,\n // }) as any;\n // return merged;\n // }\n setKey(key, schema) {\n return this.augment({ [key]: schema });\n }\n // merge<Incoming extends AnyZodObject>(\n // merging: Incoming\n // ): //ZodObject<T & Incoming[\"_shape\"], UnknownKeys, Catchall> = (merging) => {\n // ZodObject<\n // extendShape<T, ReturnType<Incoming[\"_def\"][\"shape\"]>>,\n // Incoming[\"_def\"][\"unknownKeys\"],\n // Incoming[\"_def\"][\"catchall\"]\n // > {\n // // const mergedShape = objectUtil.mergeShapes(\n // // this._def.shape(),\n // // merging._def.shape()\n // // );\n // const merged: any = new ZodObject({\n // unknownKeys: merging._def.unknownKeys,\n // catchall: merging._def.catchall,\n // shape: () =>\n // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n // typeName: ZodFirstPartyTypeKind.ZodObject,\n // }) as any;\n // return merged;\n // }\n catchall(index) {\n return new ZodObject({\n ...this._def,\n catchall: index,\n });\n }\n pick(mask) {\n const shape = {};\n util.objectKeys(mask).forEach((key) => {\n if (mask[key] && this.shape[key]) {\n shape[key] = this.shape[key];\n }\n });\n return new ZodObject({\n ...this._def,\n shape: () => shape,\n });\n }\n omit(mask) {\n const shape = {};\n util.objectKeys(this.shape).forEach((key) => {\n if (!mask[key]) {\n shape[key] = this.shape[key];\n }\n });\n return new ZodObject({\n ...this._def,\n shape: () => shape,\n });\n }\n /**\n * @deprecated\n */\n deepPartial() {\n return deepPartialify(this);\n }\n partial(mask) {\n const newShape = {};\n util.objectKeys(this.shape).forEach((key) => {\n const fieldSchema = this.shape[key];\n if (mask && !mask[key]) {\n newShape[key] = fieldSchema;\n }\n else {\n newShape[key] = fieldSchema.optional();\n }\n });\n return new ZodObject({\n ...this._def,\n shape: () => newShape,\n });\n }\n required(mask) {\n const newShape = {};\n util.objectKeys(this.shape).forEach((key) => {\n if (mask && !mask[key]) {\n newShape[key] = this.shape[key];\n }\n else {\n const fieldSchema = this.shape[key];\n let newField = fieldSchema;\n while (newField instanceof ZodOptional) {\n newField = newField._def.innerType;\n }\n newShape[key] = newField;\n }\n });\n return new ZodObject({\n ...this._def,\n shape: () => newShape,\n });\n }\n keyof() {\n return createZodEnum(util.objectKeys(this.shape));\n }\n}\nZodObject.create = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nZodObject.strictCreate = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strict\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nZodObject.lazycreate = (shape, params) => {\n return new ZodObject({\n shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nclass ZodUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const options = this._def.options;\n function handleResults(results) {\n // return first issue-free validation if it exists\n for (const result of results) {\n if (result.result.status === \"valid\") {\n return result.result;\n }\n }\n for (const result of results) {\n if (result.result.status === \"dirty\") {\n // add issues from dirty option\n ctx.common.issues.push(...result.ctx.common.issues);\n return result.result;\n }\n }\n // return invalid\n const unionErrors = results.map((result) => new ZodError(result.ctx.common.issues));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors,\n });\n return INVALID;\n }\n if (ctx.common.async) {\n return Promise.all(options.map(async (option) => {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n parent: null,\n };\n return {\n result: await option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx,\n }),\n ctx: childCtx,\n };\n })).then(handleResults);\n }\n else {\n let dirty = undefined;\n const issues = [];\n for (const option of options) {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n parent: null,\n };\n const result = option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx,\n });\n if (result.status === \"valid\") {\n return result;\n }\n else if (result.status === \"dirty\" && !dirty) {\n dirty = { result, ctx: childCtx };\n }\n if (childCtx.common.issues.length) {\n issues.push(childCtx.common.issues);\n }\n }\n if (dirty) {\n ctx.common.issues.push(...dirty.ctx.common.issues);\n return dirty.result;\n }\n const unionErrors = issues.map((issues) => new ZodError(issues));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors,\n });\n return INVALID;\n }\n }\n get options() {\n return this._def.options;\n }\n}\nZodUnion.create = (types, params) => {\n return new ZodUnion({\n options: types,\n typeName: ZodFirstPartyTypeKind.ZodUnion,\n ...processCreateParams(params),\n });\n};\n/////////////////////////////////////////////////////\n/////////////////////////////////////////////////////\n////////// //////////\n////////// ZodDiscriminatedUnion //////////\n////////// //////////\n/////////////////////////////////////////////////////\n/////////////////////////////////////////////////////\nconst getDiscriminator = (type) => {\n if (type instanceof ZodLazy) {\n return getDiscriminator(type.schema);\n }\n else if (type instanceof ZodEffects) {\n return getDiscriminator(type.innerType());\n }\n else if (type instanceof ZodLiteral) {\n return [type.value];\n }\n else if (type instanceof ZodEnum) {\n return type.options;\n }\n else if (type instanceof ZodNativeEnum) {\n // eslint-disable-next-line ban/ban\n return Object.keys(type.enum);\n }\n else if (type instanceof ZodDefault) {\n return getDiscriminator(type._def.innerType);\n }\n else if (type instanceof ZodUndefined) {\n return [undefined];\n }\n else if (type instanceof ZodNull) {\n return [null];\n }\n else {\n return null;\n }\n};\nclass ZodDiscriminatedUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const discriminator = this.discriminator;\n const discriminatorValue = ctx.data[discriminator];\n const option = this.optionsMap.get(discriminatorValue);\n if (!option) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union_discriminator,\n options: Array.from(this.optionsMap.keys()),\n path: [discriminator],\n });\n return INVALID;\n }\n if (ctx.common.async) {\n return option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n }\n else {\n return option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n }\n }\n get discriminator() {\n return this._def.discriminator;\n }\n get options() {\n return this._def.options;\n }\n get optionsMap() {\n return this._def.optionsMap;\n }\n /**\n * The constructor of the discriminated union schema. Its behaviour is very similar to that of the normal z.union() constructor.\n * However, it only allows a union of objects, all of which need to share a discriminator property. This property must\n * have a different value for each object in the union.\n * @param discriminator the name of the discriminator property\n * @param types an array of object schemas\n * @param params\n */\n static create(discriminator, options, params) {\n // Get all the valid discriminator values\n const optionsMap = new Map();\n // try {\n for (const type of options) {\n const discriminatorValues = getDiscriminator(type.shape[discriminator]);\n if (!discriminatorValues) {\n throw new Error(`A discriminator value for key \\`${discriminator}\\` could not be extracted from all schema options`);\n }\n for (const value of discriminatorValues) {\n if (optionsMap.has(value)) {\n throw new Error(`Discriminator property ${String(discriminator)} has duplicate value ${String(value)}`);\n }\n optionsMap.set(value, type);\n }\n }\n return new ZodDiscriminatedUnion({\n typeName: ZodFirstPartyTypeKind.ZodDiscriminatedUnion,\n discriminator,\n options,\n optionsMap,\n ...processCreateParams(params),\n });\n }\n}\nfunction mergeValues(a, b) {\n const aType = getParsedType(a);\n const bType = getParsedType(b);\n if (a === b) {\n return { valid: true, data: a };\n }\n else if (aType === ZodParsedType.object && bType === ZodParsedType.object) {\n const bKeys = util.objectKeys(b);\n const sharedKeys = util\n .objectKeys(a)\n .filter((key) => bKeys.indexOf(key) !== -1);\n const newObj = { ...a, ...b };\n for (const key of sharedKeys) {\n const sharedValue = mergeValues(a[key], b[key]);\n if (!sharedValue.valid) {\n return { valid: false };\n }\n newObj[key] = sharedValue.data;\n }\n return { valid: true, data: newObj };\n }\n else if (aType === ZodParsedType.array && bType === ZodParsedType.array) {\n if (a.length !== b.length) {\n return { valid: false };\n }\n const newArray = [];\n for (let index = 0; index < a.length; index++) {\n const itemA = a[index];\n const itemB = b[index];\n const sharedValue = mergeValues(itemA, itemB);\n if (!sharedValue.valid) {\n return { valid: false };\n }\n newArray.push(sharedValue.data);\n }\n return { valid: true, data: newArray };\n }\n else if (aType === ZodParsedType.date &&\n bType === ZodParsedType.date &&\n +a === +b) {\n return { valid: true, data: a };\n }\n else {\n return { valid: false };\n }\n}\nclass ZodIntersection extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const handleParsed = (parsedLeft, parsedRight) => {\n if (isAborted(parsedLeft) || isAborted(parsedRight)) {\n return INVALID;\n }\n const merged = mergeValues(parsedLeft.value, parsedRight.value);\n if (!merged.valid) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_intersection_types,\n });\n return INVALID;\n }\n if (isDirty(parsedLeft) || isDirty(parsedRight)) {\n status.dirty();\n }\n return { status: status.value, value: merged.data };\n };\n if (ctx.common.async) {\n return Promise.all([\n this._def.left._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }),\n this._def.right._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }),\n ]).then(([left, right]) => handleParsed(left, right));\n }\n else {\n return handleParsed(this._def.left._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }), this._def.right._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }));\n }\n }\n}\nZodIntersection.create = (left, right, params) => {\n return new ZodIntersection({\n left: left,\n right: right,\n typeName: ZodFirstPartyTypeKind.ZodIntersection,\n ...processCreateParams(params),\n });\n};\nclass ZodTuple extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (ctx.data.length < this._def.items.length) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: this._def.items.length,\n inclusive: true,\n exact: false,\n type: \"array\",\n });\n return INVALID;\n }\n const rest = this._def.rest;\n if (!rest && ctx.data.length > this._def.items.length) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: this._def.items.length,\n inclusive: true,\n exact: false,\n type: \"array\",\n });\n status.dirty();\n }\n const items = [...ctx.data]\n .map((item, itemIndex) => {\n const schema = this._def.items[itemIndex] || this._def.rest;\n if (!schema)\n return null;\n return schema._parse(new ParseInputLazyPath(ctx, item, ctx.path, itemIndex));\n })\n .filter((x) => !!x); // filter nulls\n if (ctx.common.async) {\n return Promise.all(items).then((results) => {\n return ParseStatus.mergeArray(status, results);\n });\n }\n else {\n return ParseStatus.mergeArray(status, items);\n }\n }\n get items() {\n return this._def.items;\n }\n rest(rest) {\n return new ZodTuple({\n ...this._def,\n rest,\n });\n }\n}\nZodTuple.create = (schemas, params) => {\n if (!Array.isArray(schemas)) {\n throw new Error(\"You must pass an array of schemas to z.tuple([ ... ])\");\n }\n return new ZodTuple({\n items: schemas,\n typeName: ZodFirstPartyTypeKind.ZodTuple,\n rest: null,\n ...processCreateParams(params),\n });\n};\nclass ZodRecord extends ZodType {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const pairs = [];\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n for (const key in ctx.data) {\n pairs.push({\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, key)),\n value: valueType._parse(new ParseInputLazyPath(ctx, ctx.data[key], ctx.path, key)),\n });\n }\n if (ctx.common.async) {\n return ParseStatus.mergeObjectAsync(status, pairs);\n }\n else {\n return ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get element() {\n return this._def.valueType;\n }\n static create(first, second, third) {\n if (second instanceof ZodType) {\n return new ZodRecord({\n keyType: first,\n valueType: second,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(third),\n });\n }\n return new ZodRecord({\n keyType: ZodString.create(),\n valueType: first,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(second),\n });\n }\n}\nclass ZodMap extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.map) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.map,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n const pairs = [...ctx.data.entries()].map(([key, value], index) => {\n return {\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, [index, \"key\"])),\n value: valueType._parse(new ParseInputLazyPath(ctx, value, ctx.path, [index, \"value\"])),\n };\n });\n if (ctx.common.async) {\n const finalMap = new Map();\n return Promise.resolve().then(async () => {\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n });\n }\n else {\n const finalMap = new Map();\n for (const pair of pairs) {\n const key = pair.key;\n const value = pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n }\n }\n}\nZodMap.create = (keyType, valueType, params) => {\n return new ZodMap({\n valueType,\n keyType,\n typeName: ZodFirstPartyTypeKind.ZodMap,\n ...processCreateParams(params),\n });\n};\nclass ZodSet extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.set) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.set,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const def = this._def;\n if (def.minSize !== null) {\n if (ctx.data.size < def.minSize.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: def.minSize.value,\n type: \"set\",\n inclusive: true,\n exact: false,\n message: def.minSize.message,\n });\n status.dirty();\n }\n }\n if (def.maxSize !== null) {\n if (ctx.data.size > def.maxSize.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: def.maxSize.value,\n type: \"set\",\n inclusive: true,\n exact: false,\n message: def.maxSize.message,\n });\n status.dirty();\n }\n }\n const valueType = this._def.valueType;\n function finalizeSet(elements) {\n const parsedSet = new Set();\n for (const element of elements) {\n if (element.status === \"aborted\")\n return INVALID;\n if (element.status === \"dirty\")\n status.dirty();\n parsedSet.add(element.value);\n }\n return { status: status.value, value: parsedSet };\n }\n const elements = [...ctx.data.values()].map((item, i) => valueType._parse(new ParseInputLazyPath(ctx, item, ctx.path, i)));\n if (ctx.common.async) {\n return Promise.all(elements).then((elements) => finalizeSet(elements));\n }\n else {\n return finalizeSet(elements);\n }\n }\n min(minSize, message) {\n return new ZodSet({\n ...this._def,\n minSize: { value: minSize, message: errorUtil.toString(message) },\n });\n }\n max(maxSize, message) {\n return new ZodSet({\n ...this._def,\n maxSize: { value: maxSize, message: errorUtil.toString(message) },\n });\n }\n size(size, message) {\n return this.min(size, message).max(size, message);\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nZodSet.create = (valueType, params) => {\n return new ZodSet({\n valueType,\n minSize: null,\n maxSize: null,\n typeName: ZodFirstPartyTypeKind.ZodSet,\n ...processCreateParams(params),\n });\n};\nclass ZodFunction extends ZodType {\n constructor() {\n super(...arguments);\n this.validate = this.implement;\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.function) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.function,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n function makeArgsIssue(args, error) {\n return makeIssue({\n data: args,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap,\n ctx.schemaErrorMap,\n getErrorMap(),\n errorMap,\n ].filter((x) => !!x),\n issueData: {\n code: ZodIssueCode.invalid_arguments,\n argumentsError: error,\n },\n });\n }\n function makeReturnsIssue(returns, error) {\n return makeIssue({\n data: returns,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap,\n ctx.schemaErrorMap,\n getErrorMap(),\n errorMap,\n ].filter((x) => !!x),\n issueData: {\n code: ZodIssueCode.invalid_return_type,\n returnTypeError: error,\n },\n });\n }\n const params = { errorMap: ctx.common.contextualErrorMap };\n const fn = ctx.data;\n if (this._def.returns instanceof ZodPromise) {\n return OK(async (...args) => {\n const error = new ZodError([]);\n const parsedArgs = await this._def.args\n .parseAsync(args, params)\n .catch((e) => {\n error.addIssue(makeArgsIssue(args, e));\n throw error;\n });\n const result = await fn(...parsedArgs);\n const parsedReturns = await this._def.returns._def.type\n .parseAsync(result, params)\n .catch((e) => {\n error.addIssue(makeReturnsIssue(result, e));\n throw error;\n });\n return parsedReturns;\n });\n }\n else {\n return OK((...args) => {\n const parsedArgs = this._def.args.safeParse(args, params);\n if (!parsedArgs.success) {\n throw new ZodError([makeArgsIssue(args, parsedArgs.error)]);\n }\n const result = fn(...parsedArgs.data);\n const parsedReturns = this._def.returns.safeParse(result, params);\n if (!parsedReturns.success) {\n throw new ZodError([makeReturnsIssue(result, parsedReturns.error)]);\n }\n return parsedReturns.data;\n });\n }\n }\n parameters() {\n return this._def.args;\n }\n returnType() {\n return this._def.returns;\n }\n args(...items) {\n return new ZodFunction({\n ...this._def,\n args: ZodTuple.create(items).rest(ZodUnknown.create()),\n });\n }\n returns(returnType) {\n return new ZodFunction({\n ...this._def,\n returns: returnType,\n });\n }\n implement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n strictImplement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n static create(args, returns, params) {\n return new ZodFunction({\n args: (args\n ? args\n : ZodTuple.create([]).rest(ZodUnknown.create())),\n returns: returns || ZodUnknown.create(),\n typeName: ZodFirstPartyTypeKind.ZodFunction,\n ...processCreateParams(params),\n });\n }\n}\nclass ZodLazy extends ZodType {\n get schema() {\n return this._def.getter();\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const lazySchema = this._def.getter();\n return lazySchema._parse({ data: ctx.data, path: ctx.path, parent: ctx });\n }\n}\nZodLazy.create = (getter, params) => {\n return new ZodLazy({\n getter: getter,\n typeName: ZodFirstPartyTypeKind.ZodLazy,\n ...processCreateParams(params),\n });\n};\nclass ZodLiteral extends ZodType {\n _parse(input) {\n if (input.data !== this._def.value) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_literal,\n expected: this._def.value,\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n get value() {\n return this._def.value;\n }\n}\nZodLiteral.create = (value, params) => {\n return new ZodLiteral({\n value: value,\n typeName: ZodFirstPartyTypeKind.ZodLiteral,\n ...processCreateParams(params),\n });\n};\nfunction createZodEnum(values, params) {\n return new ZodEnum({\n values: values,\n typeName: ZodFirstPartyTypeKind.ZodEnum,\n ...processCreateParams(params),\n });\n}\nclass ZodEnum extends ZodType {\n _parse(input) {\n if (typeof input.data !== \"string\") {\n const ctx = this._getOrReturnCtx(input);\n const expectedValues = this._def.values;\n addIssueToContext(ctx, {\n expected: util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodIssueCode.invalid_type,\n });\n return INVALID;\n }\n if (this._def.values.indexOf(input.data) === -1) {\n const ctx = this._getOrReturnCtx(input);\n const expectedValues = this._def.values;\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_enum_value,\n options: expectedValues,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n get options() {\n return this._def.values;\n }\n get enum() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n get Values() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n get Enum() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n extract(values) {\n return ZodEnum.create(values);\n }\n exclude(values) {\n return ZodEnum.create(this.options.filter((opt) => !values.includes(opt)));\n }\n}\nZodEnum.create = createZodEnum;\nclass ZodNativeEnum extends ZodType {\n _parse(input) {\n const nativeEnumValues = util.getValidEnumValues(this._def.values);\n const ctx = this._getOrReturnCtx(input);\n if (ctx.parsedType !== ZodParsedType.string &&\n ctx.parsedType !== ZodParsedType.number) {\n const expectedValues = util.objectValues(nativeEnumValues);\n addIssueToContext(ctx, {\n expected: util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodIssueCode.invalid_type,\n });\n return INVALID;\n }\n if (nativeEnumValues.indexOf(input.data) === -1) {\n const expectedValues = util.objectValues(nativeEnumValues);\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_enum_value,\n options: expectedValues,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n get enum() {\n return this._def.values;\n }\n}\nZodNativeEnum.create = (values, params) => {\n return new ZodNativeEnum({\n values: values,\n typeName: ZodFirstPartyTypeKind.ZodNativeEnum,\n ...processCreateParams(params),\n });\n};\nclass ZodPromise extends ZodType {\n unwrap() {\n return this._def.type;\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.promise &&\n ctx.common.async === false) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.promise,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const promisified = ctx.parsedType === ZodParsedType.promise\n ? ctx.data\n : Promise.resolve(ctx.data);\n return OK(promisified.then((data) => {\n return this._def.type.parseAsync(data, {\n path: ctx.path,\n errorMap: ctx.common.contextualErrorMap,\n });\n }));\n }\n}\nZodPromise.create = (schema, params) => {\n return new ZodPromise({\n type: schema,\n typeName: ZodFirstPartyTypeKind.ZodPromise,\n ...processCreateParams(params),\n });\n};\nclass ZodEffects extends ZodType {\n innerType() {\n return this._def.schema;\n }\n sourceType() {\n return this._def.schema._def.typeName === ZodFirstPartyTypeKind.ZodEffects\n ? this._def.schema.sourceType()\n : this._def.schema;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const effect = this._def.effect || null;\n if (effect.type === \"preprocess\") {\n const processed = effect.transform(ctx.data);\n if (ctx.common.async) {\n return Promise.resolve(processed).then((processed) => {\n return this._def.schema._parseAsync({\n data: processed,\n path: ctx.path,\n parent: ctx,\n });\n });\n }\n else {\n return this._def.schema._parseSync({\n data: processed,\n path: ctx.path,\n parent: ctx,\n });\n }\n }\n const checkCtx = {\n addIssue: (arg) => {\n addIssueToContext(ctx, arg);\n if (arg.fatal) {\n status.abort();\n }\n else {\n status.dirty();\n }\n },\n get path() {\n return ctx.path;\n },\n };\n checkCtx.addIssue = checkCtx.addIssue.bind(checkCtx);\n if (effect.type === \"refinement\") {\n const executeRefinement = (acc\n // effect: RefinementEffect<any>\n ) => {\n const result = effect.refinement(acc, checkCtx);\n if (ctx.common.async) {\n return Promise.resolve(result);\n }\n if (result instanceof Promise) {\n throw new Error(\"Async refinement encountered during synchronous parse operation. Use .parseAsync instead.\");\n }\n return acc;\n };\n if (ctx.common.async === false) {\n const inner = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inner.status === \"aborted\")\n return INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n // return value is ignored\n executeRefinement(inner.value);\n return { status: status.value, value: inner.value };\n }\n else {\n return this._def.schema\n ._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx })\n .then((inner) => {\n if (inner.status === \"aborted\")\n return INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n return executeRefinement(inner.value).then(() => {\n return { status: status.value, value: inner.value };\n });\n });\n }\n }\n if (effect.type === \"transform\") {\n if (ctx.common.async === false) {\n const base = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (!isValid(base))\n return base;\n const result = effect.transform(base.value, checkCtx);\n if (result instanceof Promise) {\n throw new Error(`Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.`);\n }\n return { status: status.value, value: result };\n }\n else {\n return this._def.schema\n ._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx })\n .then((base) => {\n if (!isValid(base))\n return base;\n return Promise.resolve(effect.transform(base.value, checkCtx)).then((result) => ({ status: status.value, value: result }));\n });\n }\n }\n util.assertNever(effect);\n }\n}\nZodEffects.create = (schema, effect, params) => {\n return new ZodEffects({\n schema,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect,\n ...processCreateParams(params),\n });\n};\nZodEffects.createWithPreprocess = (preprocess, schema, params) => {\n return new ZodEffects({\n schema,\n effect: { type: \"preprocess\", transform: preprocess },\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n ...processCreateParams(params),\n });\n};\nclass ZodOptional extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.undefined) {\n return OK(undefined);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodOptional.create = (type, params) => {\n return new ZodOptional({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodOptional,\n ...processCreateParams(params),\n });\n};\nclass ZodNullable extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.null) {\n return OK(null);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodNullable.create = (type, params) => {\n return new ZodNullable({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodNullable,\n ...processCreateParams(params),\n });\n};\nclass ZodDefault extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n let data = ctx.data;\n if (ctx.parsedType === ZodParsedType.undefined) {\n data = this._def.defaultValue();\n }\n return this._def.innerType._parse({\n data,\n path: ctx.path,\n parent: ctx,\n });\n }\n removeDefault() {\n return this._def.innerType;\n }\n}\nZodDefault.create = (type, params) => {\n return new ZodDefault({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodDefault,\n defaultValue: typeof params.default === \"function\"\n ? params.default\n : () => params.default,\n ...processCreateParams(params),\n });\n};\nclass ZodCatch extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n // newCtx is used to not collect issues from inner types in ctx\n const newCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n };\n const result = this._def.innerType._parse({\n data: newCtx.data,\n path: newCtx.path,\n parent: {\n ...newCtx,\n },\n });\n if (isAsync(result)) {\n return result.then((result) => {\n return {\n status: \"valid\",\n value: result.status === \"valid\"\n ? result.value\n : this._def.catchValue({\n get error() {\n return new ZodError(newCtx.common.issues);\n },\n input: newCtx.data,\n }),\n };\n });\n }\n else {\n return {\n status: \"valid\",\n value: result.status === \"valid\"\n ? result.value\n : this._def.catchValue({\n get error() {\n return new ZodError(newCtx.common.issues);\n },\n input: newCtx.data,\n }),\n };\n }\n }\n removeCatch() {\n return this._def.innerType;\n }\n}\nZodCatch.create = (type, params) => {\n return new ZodCatch({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodCatch,\n catchValue: typeof params.catch === \"function\" ? params.catch : () => params.catch,\n ...processCreateParams(params),\n });\n};\nclass ZodNaN extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.nan) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.nan,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n}\nZodNaN.create = (params) => {\n return new ZodNaN({\n typeName: ZodFirstPartyTypeKind.ZodNaN,\n ...processCreateParams(params),\n });\n};\nconst BRAND = Symbol(\"zod_brand\");\nclass ZodBranded extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const data = ctx.data;\n return this._def.type._parse({\n data,\n path: ctx.path,\n parent: ctx,\n });\n }\n unwrap() {\n return this._def.type;\n }\n}\nclass ZodPipeline extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.common.async) {\n const handleAsync = async () => {\n const inResult = await this._def.in._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inResult.status === \"aborted\")\n return INVALID;\n if (inResult.status === \"dirty\") {\n status.dirty();\n return DIRTY(inResult.value);\n }\n else {\n return this._def.out._parseAsync({\n data: inResult.value,\n path: ctx.path,\n parent: ctx,\n });\n }\n };\n return handleAsync();\n }\n else {\n const inResult = this._def.in._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inResult.status === \"aborted\")\n return INVALID;\n if (inResult.status === \"dirty\") {\n status.dirty();\n return {\n status: \"dirty\",\n value: inResult.value,\n };\n }\n else {\n return this._def.out._parseSync({\n data: inResult.value,\n path: ctx.path,\n parent: ctx,\n });\n }\n }\n }\n static create(a, b) {\n return new ZodPipeline({\n in: a,\n out: b,\n typeName: ZodFirstPartyTypeKind.ZodPipeline,\n });\n }\n}\nconst custom = (check, params = {}, \n/*\n * @deprecated\n *\n * Pass `fatal` into the params object instead:\n *\n * ```ts\n * z.string().custom((val) => val.length > 5, { fatal: false })\n * ```\n *\n */\nfatal) => {\n if (check)\n return ZodAny.create().superRefine((data, ctx) => {\n var _a, _b;\n if (!check(data)) {\n const p = typeof params === \"function\"\n ? params(data)\n : typeof params === \"string\"\n ? { message: params }\n : params;\n const _fatal = (_b = (_a = p.fatal) !== null && _a !== void 0 ? _a : fatal) !== null && _b !== void 0 ? _b : true;\n const p2 = typeof p === \"string\" ? { message: p } : p;\n ctx.addIssue({ code: \"custom\", ...p2, fatal: _fatal });\n }\n });\n return ZodAny.create();\n};\nconst late = {\n object: ZodObject.lazycreate,\n};\nvar ZodFirstPartyTypeKind;\n(function (ZodFirstPartyTypeKind) {\n ZodFirstPartyTypeKind[\"ZodString\"] = \"ZodString\";\n ZodFirstPartyTypeKind[\"ZodNumber\"] = \"ZodNumber\";\n ZodFirstPartyTypeKind[\"ZodNaN\"] = \"ZodNaN\";\n ZodFirstPartyTypeKind[\"ZodBigInt\"] = \"ZodBigInt\";\n ZodFirstPartyTypeKind[\"ZodBoolean\"] = \"ZodBoolean\";\n ZodFirstPartyTypeKind[\"ZodDate\"] = \"ZodDate\";\n ZodFirstPartyTypeKind[\"ZodSymbol\"] = \"ZodSymbol\";\n ZodFirstPartyTypeKind[\"ZodUndefined\"] = \"ZodUndefined\";\n ZodFirstPartyTypeKind[\"ZodNull\"] = \"ZodNull\";\n ZodFirstPartyTypeKind[\"ZodAny\"] = \"ZodAny\";\n ZodFirstPartyTypeKind[\"ZodUnknown\"] = \"ZodUnknown\";\n ZodFirstPartyTypeKind[\"ZodNever\"] = \"ZodNever\";\n ZodFirstPartyTypeKind[\"ZodVoid\"] = \"ZodVoid\";\n ZodFirstPartyTypeKind[\"ZodArray\"] = \"ZodArray\";\n ZodFirstPartyTypeKind[\"ZodObject\"] = \"ZodObject\";\n ZodFirstPartyTypeKind[\"ZodUnion\"] = \"ZodUnion\";\n ZodFirstPartyTypeKind[\"ZodDiscriminatedUnion\"] = \"ZodDiscriminatedUnion\";\n ZodFirstPartyTypeKind[\"ZodIntersection\"] = \"ZodIntersection\";\n ZodFirstPartyTypeKind[\"ZodTuple\"] = \"ZodTuple\";\n ZodFirstPartyTypeKind[\"ZodRecord\"] = \"ZodRecord\";\n ZodFirstPartyTypeKind[\"ZodMap\"] = \"ZodMap\";\n ZodFirstPartyTypeKind[\"ZodSet\"] = \"ZodSet\";\n ZodFirstPartyTypeKind[\"ZodFunction\"] = \"ZodFunction\";\n ZodFirstPartyTypeKind[\"ZodLazy\"] = \"ZodLazy\";\n ZodFirstPartyTypeKind[\"ZodLiteral\"] = \"ZodLiteral\";\n ZodFirstPartyTypeKind[\"ZodEnum\"] = \"ZodEnum\";\n ZodFirstPartyTypeKind[\"ZodEffects\"] = \"ZodEffects\";\n ZodFirstPartyTypeKind[\"ZodNativeEnum\"] = \"ZodNativeEnum\";\n ZodFirstPartyTypeKind[\"ZodOptional\"] = \"ZodOptional\";\n ZodFirstPartyTypeKind[\"ZodNullable\"] = \"ZodNullable\";\n ZodFirstPartyTypeKind[\"ZodDefault\"] = \"ZodDefault\";\n ZodFirstPartyTypeKind[\"ZodCatch\"] = \"ZodCatch\";\n ZodFirstPartyTypeKind[\"ZodPromise\"] = \"ZodPromise\";\n ZodFirstPartyTypeKind[\"ZodBranded\"] = \"ZodBranded\";\n ZodFirstPartyTypeKind[\"ZodPipeline\"] = \"ZodPipeline\";\n})(ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {}));\nconst instanceOfType = (\n// const instanceOfType = <T extends new (...args: any[]) => any>(\ncls, params = {\n message: `Input not instance of ${cls.name}`,\n}) => custom((data) => data instanceof cls, params);\nconst stringType = ZodString.create;\nconst numberType = ZodNumber.create;\nconst nanType = ZodNaN.create;\nconst bigIntType = ZodBigInt.create;\nconst booleanType = ZodBoolean.create;\nconst dateType = ZodDate.create;\nconst symbolType = ZodSymbol.create;\nconst undefinedType = ZodUndefined.create;\nconst nullType = ZodNull.create;\nconst anyType = ZodAny.create;\nconst unknownType = ZodUnknown.create;\nconst neverType = ZodNever.create;\nconst voidType = ZodVoid.create;\nconst arrayType = ZodArray.create;\nconst objectType = ZodObject.create;\nconst strictObjectType = ZodObject.strictCreate;\nconst unionType = ZodUnion.create;\nconst discriminatedUnionType = ZodDiscriminatedUnion.create;\nconst intersectionType = ZodIntersection.create;\nconst tupleType = ZodTuple.create;\nconst recordType = ZodRecord.create;\nconst mapType = ZodMap.create;\nconst setType = ZodSet.create;\nconst functionType = ZodFunction.create;\nconst lazyType = ZodLazy.create;\nconst literalType = ZodLiteral.create;\nconst enumType = ZodEnum.create;\nconst nativeEnumType = ZodNativeEnum.create;\nconst promiseType = ZodPromise.create;\nconst effectsType = ZodEffects.create;\nconst optionalType = ZodOptional.create;\nconst nullableType = ZodNullable.create;\nconst preprocessType = ZodEffects.createWithPreprocess;\nconst pipelineType = ZodPipeline.create;\nconst ostring = () => stringType().optional();\nconst onumber = () => numberType().optional();\nconst oboolean = () => booleanType().optional();\nconst coerce = {\n string: ((arg) => ZodString.create({ ...arg, coerce: true })),\n number: ((arg) => ZodNumber.create({ ...arg, coerce: true })),\n boolean: ((arg) => ZodBoolean.create({\n ...arg,\n coerce: true,\n })),\n bigint: ((arg) => ZodBigInt.create({ ...arg, coerce: true })),\n date: ((arg) => ZodDate.create({ ...arg, coerce: true })),\n};\nconst NEVER = INVALID;\n\nvar z = /*#__PURE__*/Object.freeze({\n __proto__: null,\n defaultErrorMap: errorMap,\n setErrorMap: setErrorMap,\n getErrorMap: getErrorMap,\n makeIssue: makeIssue,\n EMPTY_PATH: EMPTY_PATH,\n addIssueToContext: addIssueToContext,\n ParseStatus: ParseStatus,\n INVALID: INVALID,\n DIRTY: DIRTY,\n OK: OK,\n isAborted: isAborted,\n isDirty: isDirty,\n isValid: isValid,\n isAsync: isAsync,\n get util () { return util; },\n get objectUtil () { return objectUtil; },\n ZodParsedType: ZodParsedType,\n getParsedType: getParsedType,\n ZodType: ZodType,\n ZodString: ZodString,\n ZodNumber: ZodNumber,\n ZodBigInt: ZodBigInt,\n ZodBoolean: ZodBoolean,\n ZodDate: ZodDate,\n ZodSymbol: ZodSymbol,\n ZodUndefined: ZodUndefined,\n ZodNull: ZodNull,\n ZodAny: ZodAny,\n ZodUnknown: ZodUnknown,\n ZodNever: ZodNever,\n ZodVoid: ZodVoid,\n ZodArray: ZodArray,\n ZodObject: ZodObject,\n ZodUnion: ZodUnion,\n ZodDiscriminatedUnion: ZodDiscriminatedUnion,\n ZodIntersection: ZodIntersection,\n ZodTuple: ZodTuple,\n ZodRecord: ZodRecord,\n ZodMap: ZodMap,\n ZodSet: ZodSet,\n ZodFunction: ZodFunction,\n ZodLazy: ZodLazy,\n ZodLiteral: ZodLiteral,\n ZodEnum: ZodEnum,\n ZodNativeEnum: ZodNativeEnum,\n ZodPromise: ZodPromise,\n ZodEffects: ZodEffects,\n ZodTransformer: ZodEffects,\n ZodOptional: ZodOptional,\n ZodNullable: ZodNullable,\n ZodDefault: ZodDefault,\n ZodCatch: ZodCatch,\n ZodNaN: ZodNaN,\n BRAND: BRAND,\n ZodBranded: ZodBranded,\n ZodPipeline: ZodPipeline,\n custom: custom,\n Schema: ZodType,\n ZodSchema: ZodType,\n late: late,\n get ZodFirstPartyTypeKind () { return ZodFirstPartyTypeKind; },\n coerce: coerce,\n any: anyType,\n array: arrayType,\n bigint: bigIntType,\n boolean: booleanType,\n date: dateType,\n discriminatedUnion: discriminatedUnionType,\n effect: effectsType,\n 'enum': enumType,\n 'function': functionType,\n 'instanceof': instanceOfType,\n intersection: intersectionType,\n lazy: lazyType,\n literal: literalType,\n map: mapType,\n nan: nanType,\n nativeEnum: nativeEnumType,\n never: neverType,\n 'null': nullType,\n nullable: nullableType,\n number: numberType,\n object: objectType,\n oboolean: oboolean,\n onumber: onumber,\n optional: optionalType,\n ostring: ostring,\n pipeline: pipelineType,\n preprocess: preprocessType,\n promise: promiseType,\n record: recordType,\n set: setType,\n strictObject: strictObjectType,\n string: stringType,\n symbol: symbolType,\n transformer: effectsType,\n tuple: tupleType,\n 'undefined': undefinedType,\n union: unionType,\n unknown: unknownType,\n 'void': voidType,\n NEVER: NEVER,\n ZodIssueCode: ZodIssueCode,\n quotelessJson: quotelessJson,\n ZodError: ZodError\n});\n\nexport { BRAND, DIRTY, EMPTY_PATH, INVALID, NEVER, OK, ParseStatus, ZodType as Schema, ZodAny, ZodArray, ZodBigInt, ZodBoolean, ZodBranded, ZodCatch, ZodDate, ZodDefault, ZodDiscriminatedUnion, ZodEffects, ZodEnum, ZodError, ZodFirstPartyTypeKind, ZodFunction, ZodIntersection, ZodIssueCode, ZodLazy, ZodLiteral, ZodMap, ZodNaN, ZodNativeEnum, ZodNever, ZodNull, ZodNullable, ZodNumber, ZodObject, ZodOptional, ZodParsedType, ZodPipeline, ZodPromise, ZodRecord, ZodType as ZodSchema, ZodSet, ZodString, ZodSymbol, ZodEffects as ZodTransformer, ZodTuple, ZodType, ZodUndefined, ZodUnion, ZodUnknown, ZodVoid, addIssueToContext, anyType as any, arrayType as array, bigIntType as bigint, booleanType as boolean, coerce, custom, dateType as date, z as default, errorMap as defaultErrorMap, discriminatedUnionType as discriminatedUnion, effectsType as effect, enumType as enum, functionType as function, getErrorMap, getParsedType, instanceOfType as instanceof, intersectionType as intersection, isAborted, isAsync, isDirty, isValid, late, lazyType as lazy, literalType as literal, makeIssue, mapType as map, nanType as nan, nativeEnumType as nativeEnum, neverType as never, nullType as null, nullableType as nullable, numberType as number, objectType as object, objectUtil, oboolean, onumber, optionalType as optional, ostring, pipelineType as pipeline, preprocessType as preprocess, promiseType as promise, quotelessJson, recordType as record, setType as set, setErrorMap, strictObjectType as strictObject, stringType as string, symbolType as symbol, effectsType as transformer, tupleType as tuple, undefinedType as undefined, unionType as union, unknownType as unknown, util, voidType as void, z };\n", "import { CID } from 'multiformats/cid'\nimport { z } from 'zod'\nimport { Def } from './check'\n\nconst cidSchema = z\n .any()\n .refine((obj: unknown) => CID.asCID(obj) !== null, {\n message: 'Not a CID',\n })\n .transform((obj: unknown) => CID.asCID(obj) as CID)\n\nexport const schema = {\n cid: cidSchema,\n bytes: z.instanceof(Uint8Array),\n string: z.string(),\n array: z.array(z.unknown()),\n map: z.record(z.string(), z.unknown()),\n unknown: z.unknown(),\n}\n\nexport const def = {\n cid: {\n name: 'cid',\n schema: schema.cid,\n } as Def<CID>,\n bytes: {\n name: 'bytes',\n schema: schema.bytes,\n } as Def<Uint8Array>,\n string: {\n name: 'string',\n schema: schema.string,\n } as Def<string>,\n map: {\n name: 'map',\n schema: schema.map,\n } as Def<Record<string, unknown>>,\n unknown: {\n name: 'unknown',\n schema: schema.unknown,\n } as Def<unknown>,\n}\n\nexport type ArrayEl<A> = A extends readonly (infer T)[] ? T : never\n\nexport type NotEmptyArray<T> = [T, ...T[]]\n", "export const SECOND = 1000\nexport const MINUTE = SECOND * 60\nexport const HOUR = MINUTE * 60\nexport const DAY = HOUR * 24\n", "import * as ui8 from 'uint8arrays'\n\n// counts the number of bytes in a utf8 string\nexport const utf8Len = (str: string): number => {\n return new TextEncoder().encode(str).byteLength\n}\n\n// counts the number of graphemes (user-displayed characters) in a string\nexport const graphemeLen = (str: string): number => {\n return [...new Intl.Segmenter().segment(str)].length\n}\n\nexport const utf8ToB64Url = (utf8: string): string => {\n return ui8.toString(ui8.fromString(utf8, 'utf8'), 'base64url')\n}\n\nexport const b64UrlToUtf8 = (b64: string): string => {\n return ui8.toString(ui8.fromString(b64, 'base64url'), 'utf8')\n}\n", "const atpSpecific = [\n 'at',\n 'atp',\n 'plc',\n 'pds',\n 'did',\n 'repo',\n 'tid',\n 'nsid',\n 'xrpc',\n 'lex',\n 'lexicon',\n 'bsky',\n 'bluesky',\n 'handle',\n]\n\n// naively pulled from: https://radwebhosting.com/client_area/knowledgebase/196/List-of-Banned-Subdomain-Prefixes.html\nconst commonlyReserved = [\n 'about',\n 'abuse',\n 'access',\n 'account',\n 'accounts',\n 'acme',\n 'activate',\n 'activities',\n 'activity',\n 'ad',\n 'add',\n 'address',\n 'adm',\n 'admanager',\n 'admin',\n 'administration',\n 'administrator',\n 'administrators',\n 'admins',\n 'ads',\n 'adsense',\n 'adult',\n 'advertising',\n 'adwords',\n 'affiliate',\n 'affiliatepage',\n 'affiliates',\n 'afp',\n 'ajax',\n 'all',\n 'alpha',\n 'analysis',\n 'analytics',\n 'android',\n 'anon',\n 'anonymous',\n 'answer',\n 'answers',\n 'ap',\n 'api',\n 'apis',\n 'app',\n 'appengine',\n 'appnews',\n 'apps',\n 'archive',\n 'archives',\n 'article',\n 'asdf',\n 'asset',\n 'assets',\n 'auth',\n 'authentication',\n 'avatar',\n 'backup',\n 'bank',\n 'banner',\n 'banners',\n 'base',\n 'beginners',\n 'beta',\n 'billing',\n 'bin',\n 'binaries',\n 'binary',\n 'blackberry',\n 'blog',\n 'blogs',\n 'blogsearch',\n 'board',\n 'book',\n 'bookmark',\n 'bookmarks',\n 'books',\n 'bot',\n 'bots',\n 'bug',\n 'bugs',\n 'business',\n 'buy',\n 'buzz',\n 'cache',\n 'calendar',\n 'call',\n 'campaign',\n 'cancel',\n 'captcha',\n 'career',\n 'careers',\n 'cart',\n 'catalog',\n 'catalogs',\n 'categories',\n 'category',\n 'cdn',\n 'cgi',\n 'cgi-bin',\n 'changelog',\n 'chart',\n 'charts',\n 'chat',\n 'check',\n 'checked',\n 'checking',\n 'checkout',\n 'client',\n 'cliente',\n 'clients',\n 'clients1',\n 'cnarne',\n 'code',\n 'comercial',\n 'comment',\n 'comments',\n 'communities',\n 'community',\n 'company',\n 'compare',\n 'compras',\n 'config',\n 'configuration',\n 'confirm',\n 'confirmation',\n 'connect',\n 'contact',\n 'contacts',\n 'contactus',\n 'contact-us',\n 'contact_us',\n 'content',\n 'contest',\n 'contribute',\n 'contributor',\n 'contributors',\n 'coppa',\n 'copyright',\n 'copyrights',\n 'core',\n 'corp',\n 'countries',\n 'country',\n 'cpanel',\n 'create',\n 'css',\n 'cssproxy',\n 'customise',\n 'customize',\n 'dashboard',\n 'data',\n 'db',\n 'default',\n 'delete',\n 'demo',\n 'design',\n 'designer',\n 'desktop',\n 'destroy',\n 'dev',\n 'devel',\n 'developer',\n 'developers',\n 'devs',\n 'diagram',\n 'diary',\n 'dict',\n 'dictionary',\n 'die',\n 'dir',\n 'directory',\n 'direct_messages',\n 'direct-messages',\n 'dist',\n 'diversity',\n 'dl',\n 'dmca',\n 'doc',\n 'docs',\n 'documentation',\n 'documentations',\n 'documents',\n 'domain',\n 'domains',\n 'donate',\n 'download',\n 'downloads',\n 'e',\n 'e-mail',\n 'earth',\n 'ecommerce',\n 'edit',\n 'edits',\n 'editor',\n 'edu',\n 'education',\n 'email',\n 'embed',\n 'embedded',\n 'employment',\n 'employments',\n 'empty',\n 'enable',\n 'encrypted',\n 'end',\n 'engine',\n 'enterprise',\n 'enterprises',\n 'entries',\n 'entry',\n 'error',\n 'errorlog',\n 'errors',\n 'eval',\n 'event',\n 'example',\n 'examplecommunity',\n 'exampleopenid',\n 'examplesyn',\n 'examplesyndicated',\n 'exampleusername',\n 'exchange',\n 'exit',\n 'explore',\n 'faq',\n 'faqs',\n 'favorite',\n 'favorites',\n 'favourite',\n 'favourites',\n 'feature',\n 'features',\n 'feed',\n 'feedback',\n 'feedburner',\n 'feedproxy',\n 'feeds',\n 'file',\n 'files',\n 'finance',\n 'folder',\n 'folders',\n 'first',\n 'following',\n 'forgot',\n 'form',\n 'forms',\n 'forum',\n 'forums',\n 'founder',\n 'free',\n 'friend',\n 'friends',\n 'ftp',\n 'fuck',\n 'fun',\n 'fusion',\n 'gadget',\n 'gadgets',\n 'game',\n 'games',\n 'gears',\n 'general',\n 'geographic',\n 'get',\n 'gettingstarted',\n 'gift',\n 'gifts',\n 'gist',\n 'git',\n 'github',\n 'gmail',\n 'go',\n 'golang',\n 'goto',\n 'gov',\n 'graph',\n 'graphs',\n 'group',\n 'groups',\n 'guest',\n 'guests',\n 'guide',\n 'guides',\n 'hack',\n 'hacks',\n 'head',\n 'help',\n 'home',\n 'homepage',\n 'host',\n 'hosting',\n 'hostmaster',\n 'hostname',\n 'howto',\n 'how-to',\n 'how_to',\n 'html',\n 'htrnl',\n 'http',\n 'httpd',\n 'https',\n 'i',\n 'iamges',\n 'icon',\n 'icons',\n 'id',\n 'idea',\n 'ideas',\n 'im',\n 'image',\n 'images',\n 'img',\n 'imap',\n 'inbox',\n 'inboxes',\n 'index',\n 'indexes',\n 'info',\n 'information',\n 'inquiry',\n 'intranet',\n 'investor',\n 'investors',\n 'invitation',\n 'invitations',\n 'invite',\n 'invoice',\n 'invoices',\n 'imac',\n 'ios',\n 'ipad',\n 'iphone',\n 'irc',\n 'irnages',\n 'irng',\n 'is',\n 'issue',\n 'issues',\n 'it',\n 'item',\n 'items',\n 'java',\n 'javascript',\n 'job',\n 'jobs',\n 'join',\n 'js',\n 'json',\n 'jump',\n 'kb',\n 'knowledge-base',\n 'knowledgebase',\n 'lab',\n 'labs',\n 'language',\n 'languages',\n 'last',\n 'ldap_status',\n 'ldap-status',\n 'ldapstatus',\n 'legal',\n 'license',\n 'licenses',\n 'link',\n 'links',\n 'linux',\n 'list',\n 'lists',\n 'livejournal',\n 'lj',\n 'local',\n 'locale',\n 'location',\n 'log',\n 'log-in',\n 'log-out',\n 'login',\n 'logout',\n 'logs',\n 'log_in',\n 'log_out',\n 'm',\n 'mac',\n 'macos',\n 'macosx',\n 'mac-os',\n 'mac-os-x',\n 'mac_os_x',\n 'mail',\n 'mailer',\n 'mailing',\n 'main',\n 'maintenance',\n 'manage',\n 'manager',\n 'manual',\n 'map',\n 'maps',\n 'marketing',\n 'master',\n 'me',\n 'media',\n 'member',\n 'members',\n 'memories',\n 'memory',\n 'merchandise',\n 'message',\n 'messages',\n 'messenger',\n 'mg',\n 'microblog',\n 'microblogs',\n 'mine',\n 'mis',\n 'misc',\n 'mms',\n 'mob',\n 'mobile',\n 'model',\n 'models',\n 'money',\n 'movie',\n 'movies',\n 'mp3',\n 'mp4',\n 'msg',\n 'msn',\n 'music',\n 'mx',\n 'my',\n 'mymme',\n 'mysql',\n 'name',\n 'named',\n 'nan',\n 'navi',\n 'navigation',\n 'net',\n 'network',\n 'networks',\n 'new',\n 'news',\n 'newsletter',\n 'nick',\n 'nickname',\n 'nil',\n 'none',\n 'notes',\n 'noticias',\n 'notification',\n 'notifications',\n 'notify',\n 'ns',\n 'ns1',\n 'ns2',\n 'ns3',\n 'ns4',\n 'ns5',\n 'null',\n 'oauth',\n 'oauth-clients',\n 'oauth_clients',\n 'ocsp',\n 'offer',\n 'offers',\n 'official',\n 'old',\n 'online',\n 'openid',\n 'operator',\n 'option',\n 'options',\n 'order',\n 'orders',\n 'org',\n 'organization',\n 'organizations',\n 'other',\n 'overview',\n 'owner',\n 'owners',\n 'p0rn',\n 'pack',\n 'page',\n 'pager',\n 'pages',\n 'paid',\n 'panel',\n 'partner',\n 'partnerpage',\n 'partners',\n 'password',\n 'patch',\n 'pay',\n 'payment',\n 'people',\n 'perl',\n 'person',\n 'phone',\n 'photo',\n 'photoalbum',\n 'photos',\n 'php',\n 'phpmyadmin',\n 'phppgadmin',\n 'phpredisadmin',\n 'pic',\n 'pics',\n 'picture',\n 'pictures',\n 'ping',\n 'pixel',\n 'places',\n 'plan',\n 'plans',\n 'plugin',\n 'plugins',\n 'podcasts',\n 'policies',\n 'policy',\n 'pop',\n 'pop3',\n 'popular',\n 'porn',\n 'portal',\n 'portals',\n 'post',\n 'postfix',\n 'postmaster',\n 'posts',\n 'pr',\n 'pr0n',\n 'premium',\n 'press',\n 'price',\n 'pricing',\n 'principles',\n 'print',\n 'privacy',\n 'privacy-policy',\n 'privacypolicy',\n 'privacy_policy',\n 'private',\n 'prod',\n 'product',\n 'production',\n 'products',\n 'profile',\n 'profiles',\n 'project',\n 'projects',\n 'promo',\n 'promotions',\n 'proxies',\n 'proxy',\n 'pub',\n 'public',\n 'purchase',\n 'purpose',\n 'put',\n 'python',\n 'queries',\n 'query',\n 'radio',\n 'random',\n 'ranking',\n 'read',\n 'reader',\n 'readme',\n 'recent',\n 'recruit',\n 'recruitment',\n 'redirect',\n 'register',\n 'registration',\n 'release',\n 'remove',\n 'replies',\n 'report',\n 'reports',\n 'repositories',\n 'repository',\n 'req',\n 'request',\n 'requests',\n 'research',\n 'reset',\n 'resolve',\n 'resolver',\n 'review',\n 'rnail',\n 'rnicrosoft',\n 'roc',\n 'root',\n 'rss',\n 'ruby',\n 'rule',\n 'sag',\n 'sale',\n 'sales',\n 'sample',\n 'samples',\n 'sandbox',\n 'save',\n 'scholar',\n 'school',\n 'schools',\n 'script',\n 'scripts',\n 'search',\n 'secure',\n 'security',\n 'self',\n 'seminars',\n 'send',\n 'server',\n 'server-info',\n 'server_info',\n 'server-status',\n 'server_status',\n 'servers',\n 'service',\n 'services',\n 'session',\n 'sessions',\n 'setting',\n 'settings',\n 'setup',\n 'share',\n 'shop',\n 'shopping',\n 'shortcut',\n 'shortcuts',\n 'show',\n 'sign-in',\n 'sign-up',\n 'signin',\n 'signout',\n 'signup',\n 'sign_in',\n 'sign_up',\n 'site',\n 'sitemap',\n 'sitemaps',\n 'sitenews',\n 'sites',\n 'sketchup',\n 'sky',\n 'slash',\n 'slashinvoice',\n 'slut',\n 'smartphone',\n 'sms',\n 'smtp',\n 'soap',\n 'software',\n 'sorry',\n 'source',\n 'spec',\n 'special',\n 'spreadsheet',\n 'spreadsheets',\n 'sql',\n 'src',\n 'srntp',\n 'ssh',\n 'ssl',\n 'ssladmin',\n 'ssladministrator',\n 'sslwebmaster',\n 'ssytem',\n 'staff',\n 'stage',\n 'staging',\n 'start',\n 'stat',\n 'state',\n 'static',\n 'statistics',\n 'stats',\n 'status',\n 'store',\n 'stores',\n 'stories',\n 'style',\n 'styleguide',\n 'styles',\n 'stylesheet',\n 'stylesheets',\n 'subdomain',\n 'subscribe',\n 'subscription',\n 'subscriptions',\n 'suggest',\n 'suggestqueries',\n 'support',\n 'survey',\n 'surveys',\n 'surveytool',\n 'svn',\n 'swf',\n 'syn',\n 'sync',\n 'syndicated',\n 'sys',\n 'sysadmin',\n 'sysadministrator',\n 'sysadmins',\n 'system',\n 'tablet',\n 'tablets',\n 'tag',\n 'tags',\n 'talk',\n 'talkgadget',\n 'task',\n 'tasks',\n 'team',\n 'teams',\n 'tech',\n 'telnet',\n 'term',\n 'terms',\n 'terms-of-service',\n 'termsofservice',\n 'terms_of_service',\n 'test',\n 'testing',\n 'tests',\n 'text',\n 'theme',\n 'themes',\n 'thread',\n 'threads',\n 'ticket',\n 'tickets',\n 'tmp',\n 'todo',\n 'to-do',\n 'to_do',\n 'toml',\n 'tool',\n 'toolbar',\n 'toolbars',\n 'tools',\n 'top',\n 'topic',\n 'topics',\n 'tos',\n 'tour',\n 'trac',\n 'translate',\n 'trace',\n 'translation',\n 'translations',\n 'translator',\n 'trends',\n 'tutorial',\n 'tux',\n 'tv',\n 'twitter',\n 'txt',\n 'ul',\n 'undef',\n 'unfollow',\n 'unsubscribe',\n 'update',\n 'updates',\n 'upgrade',\n 'upgrades',\n 'upi',\n 'upload',\n 'uploads',\n 'url',\n 'usage',\n 'user',\n 'username',\n 'usernames',\n 'users',\n 'uuid',\n 'validation',\n 'validations',\n 'ver',\n 'version',\n 'video',\n 'videos',\n 'video-stats',\n 'visitor',\n 'visitors',\n 'voice',\n 'volunteer',\n 'volunteers',\n 'w',\n 'watch',\n 'wave',\n 'weather',\n 'web',\n 'webdisk',\n 'webhook',\n 'webhooks',\n 'webmail',\n 'webmaster',\n 'webmasters',\n 'webrnail',\n 'website',\n 'websites',\n 'welcome',\n 'whm',\n 'whois',\n 'widget',\n 'widgets',\n 'wifi',\n 'wiki',\n 'wikis',\n 'win',\n 'windows',\n 'word',\n 'work',\n 'works',\n 'workshop',\n 'wpad',\n 'ww',\n 'wws',\n 'www',\n 'wwws',\n 'wwww',\n 'xfn',\n 'xhtml',\n 'xhtrnl',\n 'xml',\n 'xmpp',\n 'xpg',\n 'xxx',\n 'yaml',\n 'year',\n 'yml',\n 'you',\n 'yourdomain',\n 'yourname',\n 'yoursite',\n 'yourusername',\n]\n\nconst famousAccounts = [\n // reserving some large twitter accounts (top 100 by followers according to wikidata dump)\n '10ronaldinho',\n '3gerardpique',\n 'adele',\n 'akshaykumar',\n 'aliaa08',\n 'aliciakeys',\n 'amitshah',\n 'andresiniesta8',\n 'anushkasharma',\n 'arianagrande',\n 'arrahman',\n 'arvindkejriwal',\n 'avrillavigne',\n 'barackobama',\n 'bbcbreaking',\n 'bbcworld',\n 'beingsalmankhan',\n 'billgates',\n 'britneyspears',\n 'brunomars',\n 'bts_bighit',\n 'bts_twt',\n 'championsleague',\n 'chrisbrown',\n 'cnnbrk',\n 'coldplay',\n 'conanobrien',\n 'cristiano',\n 'danieltosh',\n 'davidguetta',\n 'ddlovato',\n 'deepikapadukone',\n 'drake',\n 'elisapie',\n 'ellendegeneres',\n 'elonmusk',\n 'eminem',\n 'emmawatson',\n 'fcbarcelona',\n 'foxnews',\n 'harry_styles',\n 'hillaryclinton',\n 'iamsrk',\n 'ihrithik',\n 'imvkohli',\n 'instagram',\n 'jimmyfallon',\n 'jlo',\n 'joebiden',\n 'jtimberlake',\n 'justinbieber',\n 'kaka',\n 'kanyewest',\n 'katyperry',\n 'kendalljenner',\n 'kevinhart4real',\n 'khloekardashian',\n 'kimkardashian',\n 'kingjames',\n 'kourtneykardash',\n 'kyliejenner',\n 'ladygaga',\n 'liampayne',\n 'liltunechi',\n 'manutd',\n 'mariahcarey',\n 'mileycyrus',\n 'mohamadalarefe',\n 'narendramodi',\n 'nasa',\n 'nba',\n 'neymarjr',\n 'nfl',\n 'niallofficial',\n 'nickiminaj',\n 'npr',\n 'nytimes',\n 'onedirection',\n 'oprah',\n 'pink',\n 'pitbull',\n 'playstation',\n 'pmoindia',\n 'premierleague',\n 'priyankachopra',\n 'realdonaldtrump',\n 'ricky_martin',\n 'rihanna',\n 'sachin_rt',\n 'selenagomez',\n 'shakira',\n 'shawnmendes',\n 'sportscenter',\n 'srbachchan',\n 'subhisharma100',\n 'taylorswift13',\n 'theeconomist',\n 'twitter',\n 'virendersehwag',\n 'whitehouse45',\n 'wizkhalifa',\n 'youtube',\n 'zaynmalik',\n\n // some top instagram (https://en.wikipedia.org/wiki/List_of_most-followed_Instagram_accounts)\n 'beyonce',\n 'billieeilish',\n 'leomessi',\n 'natgeo',\n 'nike',\n 'snoopdogg',\n 'taylorswift',\n 'therock',\n\n // ... and a couple more prominent accounts, subjectively\n '10downingstreet',\n 'aoc',\n 'carterjwm',\n 'dril',\n 'gretathunberg',\n 'kamalaharris',\n 'kremlinrussia_e',\n 'potus',\n 'rondesantisfl',\n 'ukraine',\n 'washingtonpost',\n 'yousuck2020',\n 'zelenskyyua',\n\n // top japan-specific accounts\n 'akiko_lawson',\n 'ariyoshihiroiki',\n 'asahi',\n 'dozle_official',\n 'famima_now',\n 'ff_xiv_jp',\n 'fujitv',\n 'gigazine',\n 'hajimesyacho',\n 'hikakin',\n 'jocx',\n 'jotx',\n 'kiyo_saiore',\n 'mainichi',\n 'matsu_bouzu',\n 'naomiosaka',\n 'nhk',\n 'nikkei',\n 'nintendo',\n 'ntv',\n 'oowareware1945',\n 'pamyurin',\n 'poke_times',\n 'rolaworld',\n 'seikintv',\n 'starbucksjapan',\n 'tbs',\n 'tbs_pr',\n 'tvasahi',\n 'tvtokyo',\n 'yokoono',\n 'yomiuri_online',\n\n // top brazil-specific accounts\n 'brasildefato',\n 'claudialeitte',\n 'correio',\n 'em_com',\n 'estadao',\n 'folha',\n 'gazetadopovo',\n 'ivetesangalo',\n 'jairbolsonaro',\n 'jornaldobrasil',\n 'jornaloglobo',\n 'lucianohuck',\n 'lulaoficial',\n 'marcosmion',\n 'paulocoelho',\n 'portalr7',\n 'rede_globo',\n 'zerohora',\n]\n\nexport const reservedSubdomains: Record<string, boolean> = [\n ...atpSpecific,\n ...commonlyReserved,\n ...famousAccounts,\n].reduce((acc, cur) => {\n return {\n ...acc,\n [cur]: true,\n }\n}, {})\n", "import { reservedSubdomains } from './reserved'\n\nexport * from './resolve'\n\n// Currently these are registration-time restrictions, not protocol-level\n// restrictions. We have a couple accounts in the wild that we need to clean up\n// before hard-disallow.\n// See also: https://en.wikipedia.org/wiki/Top-level_domain#Reserved_domains\nconst DISALLOWED_TLDS = [\n '.local',\n '.arpa',\n '.invalid',\n '.localhost',\n '.internal',\n // policy could concievably change on \".onion\" some day\n '.onion',\n // NOTE: .test is allowed in testing and devopment. In practical terms\n // \"should\" \"never\" actually resolve and get registered in production\n]\n\n// Handle constraints, in English:\n// - must be a possible domain name\n// - RFC-1035 is commonly referenced, but has been updated. eg, RFC-3696,\n// section 2. and RFC-3986, section 3. can now have leading numbers (eg,\n// 4chan.org)\n// - \"labels\" (sub-names) are made of ASCII letters, digits, hyphens\n// - can not start or end with a hyphen\n// - TLD (last component) should not start with a digit\n// - can't end with a hyphen (can end with digit)\n// - each segment must be between 1 and 63 characters (not including any periods)\n// - overall length can't be more than 253 characters\n// - separated by (ASCII) periods; does not start or end with period\n// - case insensitive\n// - domains (handles) are equal if they are the same lower-case\n// - punycode allowed for internationalization\n// - no whitespace, null bytes, joining chars, etc\n// - does not validate whether domain or TLD exists, or is a reserved or\n// special TLD (eg, .onion or .local)\n// - does not validate punycode\nexport const ensureValidHandle = (handle: string): void => {\n // check that all chars are boring ASCII\n if (!/^[a-zA-Z0-9.-]*$/.test(handle)) {\n throw new InvalidHandleError(\n 'Disallowed characters in handle (ASCII letters, digits, dashes, periods only)',\n )\n }\n\n if (handle.length > 253) {\n throw new InvalidHandleError('Handle is too long (253 chars max)')\n }\n const labels = handle.split('.')\n if (labels.length < 2) {\n throw new InvalidHandleError('Handle domain needs at least two parts')\n }\n for (let i = 0; i < labels.length; i++) {\n const l = labels[i]\n if (l.length < 1) {\n throw new InvalidHandleError('Handle parts can not be empty')\n }\n if (l.length > 63) {\n throw new InvalidHandleError('Handle part too long (max 63 chars)')\n }\n if (l.endsWith('-') || l.startsWith('-')) {\n throw new InvalidHandleError(\n 'Handle parts can not start or end with hyphens',\n )\n }\n if (i + 1 == labels.length && !/^[a-zA-Z]/.test(l)) {\n throw new InvalidHandleError(\n 'Handle final component (TLD) must start with ASCII letter',\n )\n }\n }\n}\n\n// simple regex translation of above constraints\nexport const ensureValidHandleRegex = (handle: string): void => {\n if (\n !/^([a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?$/.test(\n handle,\n )\n ) {\n throw new InvalidHandleError(\"Handle didn't validate via regex\")\n }\n if (handle.length > 253) {\n throw new InvalidHandleError('Handle is too long (253 chars max)')\n }\n}\n\nexport const normalizeHandle = (handle: string): string => {\n return handle.toLowerCase()\n}\n\nexport const normalizeAndEnsureValidHandle = (handle: string): string => {\n const normalized = normalizeHandle(handle)\n ensureValidHandle(normalized)\n return normalized\n}\n\nexport const isValidHandle = (handle: string): boolean => {\n try {\n ensureValidHandle(handle)\n } catch (err) {\n if (err instanceof InvalidHandleError) {\n return false\n }\n throw err\n }\n return true\n}\n\nexport const ensureHandleServiceConstraints = (\n handle: string,\n availableUserDomains: string[],\n reserved = reservedSubdomains,\n): void => {\n const disallowedTld = DISALLOWED_TLDS.find((domain) =>\n handle.endsWith(domain),\n )\n if (disallowedTld) {\n throw new DisallowedDomainError('Handle TLD is invalid or disallowed')\n }\n const supportedDomain = availableUserDomains.find((domain) =>\n handle.endsWith(domain),\n )\n if (!supportedDomain) {\n throw new UnsupportedDomainError('Not a supported handle domain')\n }\n const front = handle.slice(0, handle.length - supportedDomain.length)\n if (front.indexOf('.') > -1) {\n throw new InvalidHandleError('Invalid characters in handle')\n }\n if (front.length < 3) {\n throw new InvalidHandleError('Handle too short')\n }\n if (handle.length > 30) {\n throw new InvalidHandleError('Handle too long')\n }\n if (reserved[front]) {\n throw new ReservedHandleError('Reserved handle')\n }\n}\n\nexport const fulfillsHandleServiceConstraints = (\n handle: string,\n availableUserDomains: string[],\n reserved = reservedSubdomains,\n): boolean => {\n try {\n ensureHandleServiceConstraints(handle, availableUserDomains, reserved)\n } catch (err) {\n if (\n err instanceof InvalidHandleError ||\n err instanceof ReservedHandleError ||\n err instanceof UnsupportedDomainError ||\n err instanceof DisallowedDomainError\n ) {\n return false\n }\n throw err\n }\n return true\n}\n\nexport class InvalidHandleError extends Error {}\nexport class ReservedHandleError extends Error {}\nexport class UnsupportedDomainError extends Error {}\nexport class DisallowedDomainError extends Error {}\n", "// Human-readable constraints:\n// - valid W3C DID (https://www.w3.org/TR/did-core/#did-syntax)\n// - entire URI is ASCII: [a-zA-Z0-9._:%-]\n// - always starts \"did:\" (lower-case)\n// - method name is one or more lower-case letters, followed by \":\"\n// - remaining identifier can have any of the above chars, but can not end in \":\"\n// - it seems that a bunch of \":\" can be included, and don't need spaces between\n// - \"%\" is used only for \"percent encoding\" and must be followed by two hex characters (and thus can't end in \"%\")\n// - query (\"?\") and fragment (\"#\") stuff is defined for \"DID URIs\", but not as part of identifier itself\n// - \"The current specification does not take a position on the maximum length of a DID\"\n// - in current atproto, only allowing did:plc and did:web. But not *forcing* this at lexicon layer\n// - hard length limit of 8KBytes\n// - not going to validate \"percent encoding\" here\nexport const ensureValidDid = (did: string): void => {\n // check that all chars are boring ASCII\n if (!/^[a-zA-Z0-9._:%-]*$/.test(did)) {\n throw new InvalidDidError(\n 'Disallowed characters in DID (ASCII letters, digits, and a couple other characters only)',\n )\n }\n\n const parts = did.split(':')\n if (parts.length < 3) {\n throw new InvalidDidError(\n 'DID requires prefix, method, and method-specific content',\n )\n }\n\n if (parts[0] != 'did') {\n throw new InvalidDidError('DID requires \"did:\" prefix')\n }\n\n if (!/^[a-z]+$/.test(parts[1])) {\n throw new InvalidDidError('DID method must be lower-case letters')\n }\n\n if (did.endsWith(':') || did.endsWith('%')) {\n throw new InvalidDidError('DID can not end with \":\" or \"%\"')\n }\n\n if (did.length > 8 * 1024) {\n throw new InvalidDidError('DID is far too long')\n }\n}\n\nexport const ensureValidDidRegex = (did: string): void => {\n // simple regex to enforce most constraints via just regex and length.\n // hand wrote this regex based on above constraints\n if (!/^did:[a-z]+:[a-zA-Z0-9._:%-]*[a-zA-Z0-9._-]$/.test(did)) {\n throw new InvalidDidError(\"DID didn't validate via regex\")\n }\n\n if (did.length > 8 * 1024) {\n throw new InvalidDidError('DID is far too long')\n }\n}\n\nexport class InvalidDidError extends Error {}\n", "/*\nGrammar:\n\nalpha = \"a\" / \"b\" / \"c\" / \"d\" / \"e\" / \"f\" / \"g\" / \"h\" / \"i\" / \"j\" / \"k\" / \"l\" / \"m\" / \"n\" / \"o\" / \"p\" / \"q\" / \"r\" / \"s\" / \"t\" / \"u\" / \"v\" / \"w\" / \"x\" / \"y\" / \"z\" / \"A\" / \"B\" / \"C\" / \"D\" / \"E\" / \"F\" / \"G\" / \"H\" / \"I\" / \"J\" / \"K\" / \"L\" / \"M\" / \"N\" / \"O\" / \"P\" / \"Q\" / \"R\" / \"S\" / \"T\" / \"U\" / \"V\" / \"W\" / \"X\" / \"Y\" / \"Z\"\nnumber = \"1\" / \"2\" / \"3\" / \"4\" / \"5\" / \"6\" / \"7\" / \"8\" / \"9\" / \"0\"\ndelim = \".\"\nsegment = alpha *( alpha / number / \"-\" )\nauthority = segment *( delim segment )\nname = segment\nnsid = authority delim name\nnsid-ns = authority delim \"*\"\n\n*/\n\nexport class NSID {\n segments: string[] = []\n\n static parse(nsid: string): NSID {\n return new NSID(nsid)\n }\n\n static create(authority: string, name: string): NSID {\n const segments = [...authority.split('.').reverse(), name].join('.')\n return new NSID(segments)\n }\n\n static isValid(nsid: string): boolean {\n try {\n NSID.parse(nsid)\n return true\n } catch (e) {\n return false\n }\n }\n\n constructor(nsid: string) {\n ensureValidNsid(nsid)\n this.segments = nsid.split('.')\n }\n\n get authority() {\n return this.segments\n .slice(0, this.segments.length - 1)\n .reverse()\n .join('.')\n }\n\n get name() {\n return this.segments.at(this.segments.length - 1)\n }\n\n toString() {\n return this.segments.join('.')\n }\n}\n\n// Human readable constraints on NSID:\n// - a valid domain in reversed notation. which means the same as a loose domain!\nexport const ensureValidNsid = (nsid: string): void => {\n // to handle nsid-ns\n const split = nsid.split('.')\n const toCheck =\n split.at(-1) === '*' ? split.slice(0, -1).join('.') : split.join('.')\n\n // check that all chars are boring ASCII\n if (!/^[a-zA-Z0-9.-]*$/.test(toCheck)) {\n throw new InvalidNsidError(\n 'Disallowed characters in NSID (ASCII letters, digits, dashes, periods only)',\n )\n }\n\n if (toCheck.length > 253 + 1 + 128) {\n throw new InvalidNsidError('NSID is too long (382 chars max)')\n }\n const labels = toCheck.split('.')\n if (split.length < 3) {\n throw new InvalidNsidError('NSID needs at least three parts')\n }\n for (let i = 0; i < labels.length; i++) {\n const l = labels[i]\n if (l.length < 1) {\n throw new InvalidNsidError('NSID parts can not be empty')\n }\n if (l.length > 63 && i + 1 < labels.length) {\n throw new InvalidNsidError('NSID domain part too long (max 63 chars)')\n }\n if (l.length > 128 && i + 1 == labels.length) {\n throw new InvalidNsidError('NSID name part too long (max 128 chars)')\n }\n if (l.endsWith('-')) {\n throw new InvalidNsidError('NSID parts can not end with hyphen')\n }\n if (!/^[a-zA-Z]/.test(l)) {\n throw new InvalidNsidError('NSID parts must start with ASCII letter')\n }\n }\n}\n\n// nsid-ns is not handled in regex yet\nexport const ensureValidNsidRegex = (nsid: string): void => {\n // simple regex to enforce most constraints via just regex and length.\n // hand wrote this regex based on above constraints\n if (\n !/^[a-zA-Z]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(\\.[a-zA-Z]([a-zA-Z0-9-]{0,126}[a-zA-Z0-9])?)$/.test(\n nsid,\n )\n ) {\n throw new InvalidNsidError(\"NSID didn't validate via regex\")\n }\n if (nsid.length > 253 + 1 + 128) {\n throw new InvalidNsidError('NSID is too long (382 chars max)')\n }\n}\n\nexport class InvalidNsidError extends Error {}\n", "import * as id from '@atproto/identifier'\nimport * as nsid from '@atproto/nsid'\n\n// Human-readable constraints on ATURI:\n// - following regular URLs, a 8KByte hard total length limit\n// - follows ATURI docs on website\n// - all ASCII characters, no whitespace. non-ASCII could be URL-encoded\n// - starts \"at://\"\n// - \"authority\" is a valid DID or a valid handle\n// - optionally, follow \"authority\" with \"/\" and valid NSID as start of path\n// - optionally, if NSID given, follow that with \"/\" and rkey\n// - rkey path component can include URL-encoded (\"percent encoded\"), or:\n// ALPHA / DIGIT / \"-\" / \".\" / \"_\" / \"~\" / \":\" / \"@\" / \"!\" / \"$\" / \"&\" / \"'\" / \"(\" / \")\" / \"*\" / \"+\" / \",\" / \";\" / \"=\"\n// [a-zA-Z0-9._~:@!$&'\\(\\)*+,;=-]\n// - rkey must have at least one char\n// - regardless of path component, a fragment can follow as \"#\" and then a JSON pointer (RFC-6901)\nexport const ensureValidAtUri = (uri: string) => {\n // JSON pointer is pretty different from rest of URI, so split that out first\n const uriParts = uri.split('#')\n if (uriParts.length > 2) {\n throw new Error('ATURI can have at most one \"#\", separating fragment out')\n }\n const fragmentPart = uriParts[1] || null\n uri = uriParts[0]\n\n // check that all chars are boring ASCII\n if (!/^[a-zA-Z0-9._~:@!$&')(*+,;=%/-]*$/.test(uri)) {\n throw new Error('Disallowed characters in ATURI (ASCII)')\n }\n\n const parts = uri.split('/')\n if (parts.length >= 3 && (parts[0] != 'at:' || parts[1].length != 0)) {\n throw new Error('ATURI must start with \"at://\"')\n }\n if (parts.length < 3) {\n throw new Error('ATURI requires at least method and authority sections')\n }\n\n try {\n id.ensureValidHandle(parts[2])\n } catch {\n try {\n id.ensureValidDid(parts[2])\n } catch {\n throw new Error('ATURI authority must be a valid handle or DID')\n }\n }\n\n if (parts.length >= 4) {\n if (parts[3].length == 0) {\n throw new Error(\n 'ATURI can not have a slash after authority without a path segment',\n )\n }\n try {\n nsid.ensureValidNsid(parts[3])\n } catch {\n throw new Error(\n 'ATURI requires first path segment (if supplied) to be valid NSID',\n )\n }\n }\n\n if (parts.length >= 5) {\n if (parts[4].length == 0) {\n throw new Error(\n 'ATURI can not have a slash after collection, unless record key is provided',\n )\n }\n // would validate rkey here, but there are basically no constraints!\n }\n\n if (parts.length >= 6) {\n throw new Error(\n 'ATURI path can have at most two parts, and no trailing slash',\n )\n }\n\n if (uriParts.length >= 2 && fragmentPart == null) {\n throw new Error('ATURI fragment must be non-empty and start with slash')\n }\n\n if (fragmentPart != null) {\n if (fragmentPart.length == 0 || fragmentPart[0] != '/') {\n throw new Error('ATURI fragment must be non-empty and start with slash')\n }\n // NOTE: enforcing *some* checks here for sanity. Eg, at least no whitespace\n if (!/^\\/[a-zA-Z0-9._~:@!$&')(*+,;=%[\\]/-]*$/.test(fragmentPart)) {\n throw new Error('Disallowed characters in ATURI fragment (ASCII)')\n }\n }\n\n if (uri.length > 8 * 1024) {\n throw new Error('ATURI is far too long')\n }\n}\n\nexport const ensureValidAtUriRegex = (uri: string): void => {\n // simple regex to enforce most constraints via just regex and length.\n // hand wrote this regex based on above constraints. whew!\n const aturiRegex =\n /^at:\\/\\/(?<authority>[a-zA-Z0-9._:%-]+)(\\/(?<collection>[a-zA-Z0-9-.]+)(\\/(?<rkey>[a-zA-Z0-9._~:@!$&%')(*+,;=-]+))?)?(#(?<fragment>\\/[a-zA-Z0-9._~:@!$&%')(*+,;=\\-[\\]/\\\\]*))?$/\n const rm = uri.match(aturiRegex)\n if (!rm || !rm.groups) {\n throw new Error(\"ATURI didn't validate via regex\")\n }\n const groups = rm.groups\n\n try {\n id.ensureValidHandleRegex(groups.authority)\n } catch {\n try {\n id.ensureValidDidRegex(groups.authority)\n } catch {\n throw new Error('ATURI authority must be a valid handle or DID')\n }\n }\n\n if (groups.collection) {\n try {\n nsid.ensureValidNsidRegex(groups.collection)\n } catch {\n throw new Error('ATURI collection path segment must be a valid NSID')\n }\n }\n\n if (uri.length > 8 * 1024) {\n throw new Error('ATURI is far too long')\n }\n}\n", "export * from './validation'\n\nexport const ATP_URI_REGEX =\n // proto- --did-------------- --name---------------- --path---- --query-- --hash--\n /^(at:\\/\\/)?((?:did:[a-z0-9:%-]+)|(?:[a-z0-9][a-z0-9.:-]*))(\\/[^?#\\s]*)?(\\?[^#\\s]+)?(#[^\\s]+)?$/i\n// --path----- --query-- --hash--\nconst RELATIVE_REGEX = /^(\\/[^?#\\s]*)?(\\?[^#\\s]+)?(#[^\\s]+)?$/i\n\nexport class AtUri {\n hash: string\n host: string\n pathname: string\n searchParams: URLSearchParams\n\n constructor(uri: string, base?: string) {\n let parsed\n if (base) {\n parsed = parse(base)\n if (!parsed) {\n throw new Error(`Invalid at uri: ${base}`)\n }\n const relativep = parseRelative(uri)\n if (!relativep) {\n throw new Error(`Invalid path: ${uri}`)\n }\n Object.assign(parsed, relativep)\n } else {\n parsed = parse(uri)\n if (!parsed) {\n throw new Error(`Invalid at uri: ${uri}`)\n }\n }\n\n this.hash = parsed.hash\n this.host = parsed.host\n this.pathname = parsed.pathname\n this.searchParams = parsed.searchParams\n }\n\n static make(handleOrDid: string, collection?: string, rkey?: string) {\n let str = handleOrDid\n if (collection) str += '/' + collection\n if (rkey) str += '/' + rkey\n return new AtUri(str)\n }\n\n get protocol() {\n return 'at:'\n }\n\n get origin() {\n return `at://${this.host}`\n }\n\n get hostname() {\n return this.host\n }\n\n set hostname(v: string) {\n this.host = v\n }\n\n get search() {\n return this.searchParams.toString()\n }\n\n set search(v: string) {\n this.searchParams = new URLSearchParams(v)\n }\n\n get collection() {\n return this.pathname.split('/').filter(Boolean)[0] || ''\n }\n\n set collection(v: string) {\n const parts = this.pathname.split('/').filter(Boolean)\n parts[0] = v\n this.pathname = parts.join('/')\n }\n\n get rkey() {\n return this.pathname.split('/').filter(Boolean)[1] || ''\n }\n\n set rkey(v: string) {\n const parts = this.pathname.split('/').filter(Boolean)\n if (!parts[0]) parts[0] = 'undefined'\n parts[1] = v\n this.pathname = parts.join('/')\n }\n\n get href() {\n return this.toString()\n }\n\n toString() {\n let path = this.pathname || '/'\n if (!path.startsWith('/')) {\n path = `/${path}`\n }\n let qs = this.searchParams.toString()\n if (qs && !qs.startsWith('?')) {\n qs = `?${qs}`\n }\n let hash = this.hash\n if (hash && !hash.startsWith('#')) {\n hash = `#${hash}`\n }\n return `at://${this.host}${path}${qs}${hash}`\n }\n}\n\nfunction parse(str: string) {\n const match = ATP_URI_REGEX.exec(str)\n if (match) {\n return {\n hash: match[5] || '',\n host: match[2] || '',\n pathname: match[3] || '',\n searchParams: new URLSearchParams(match[4] || ''),\n }\n }\n return undefined\n}\n\nfunction parseRelative(str: string) {\n const match = RELATIVE_REGEX.exec(str)\n if (match) {\n return {\n hash: match[3] || '',\n pathname: match[1] || '',\n searchParams: new URLSearchParams(match[2] || ''),\n }\n }\n return undefined\n}\n", "import { z } from 'zod'\nimport { NSID } from '@atproto/nsid'\n\n// primitives\n// =\n\nexport const lexBoolean = z.object({\n type: z.literal('boolean'),\n description: z.string().optional(),\n default: z.boolean().optional(),\n const: z.boolean().optional(),\n})\nexport type LexBoolean = z.infer<typeof lexBoolean>\n\nexport const lexInteger = z.object({\n type: z.literal('integer'),\n description: z.string().optional(),\n default: z.number().int().optional(),\n minimum: z.number().int().optional(),\n maximum: z.number().int().optional(),\n enum: z.number().int().array().optional(),\n const: z.number().int().optional(),\n})\nexport type LexInteger = z.infer<typeof lexInteger>\n\nexport const lexStringFormat = z.enum([\n 'datetime',\n 'uri',\n 'at-uri',\n 'did',\n 'handle',\n 'at-identifier',\n 'nsid',\n 'cid',\n])\nexport type LexStringFormat = z.infer<typeof lexStringFormat>\n\nexport const lexString = z.object({\n type: z.literal('string'),\n format: lexStringFormat.optional(),\n description: z.string().optional(),\n default: z.string().optional(),\n minLength: z.number().int().optional(),\n maxLength: z.number().int().optional(),\n minGraphemes: z.number().int().optional(),\n maxGraphemes: z.number().int().optional(),\n enum: z.string().array().optional(),\n const: z.string().optional(),\n knownValues: z.string().array().optional(),\n})\nexport type LexString = z.infer<typeof lexString>\n\nexport const lexUnknown = z.object({\n type: z.literal('unknown'),\n description: z.string().optional(),\n})\nexport type LexUnknown = z.infer<typeof lexUnknown>\n\nexport const lexPrimitive = z.discriminatedUnion('type', [\n lexBoolean,\n lexInteger,\n lexString,\n lexUnknown,\n])\nexport type LexPrimitive = z.infer<typeof lexPrimitive>\n\n// ipld types\n// =\n\nexport const lexBytes = z.object({\n type: z.literal('bytes'),\n description: z.string().optional(),\n maxLength: z.number().optional(),\n minLength: z.number().optional(),\n})\nexport type LexBytes = z.infer<typeof lexBytes>\n\nexport const lexCidLink = z.object({\n type: z.literal('cid-link'),\n description: z.string().optional(),\n})\nexport type LexCidLink = z.infer<typeof lexCidLink>\n\nexport const lexIpldType = z.discriminatedUnion('type', [lexBytes, lexCidLink])\nexport type LexIpldType = z.infer<typeof lexIpldType>\n\n// references\n// =\n\nexport const lexRef = z.object({\n type: z.literal('ref'),\n description: z.string().optional(),\n ref: z.string(),\n})\nexport type LexRef = z.infer<typeof lexRef>\n\nexport const lexRefUnion = z.object({\n type: z.literal('union'),\n description: z.string().optional(),\n refs: z.string().array(),\n closed: z.boolean().optional(),\n})\nexport type LexRefUnion = z.infer<typeof lexRefUnion>\n\nexport const lexRefVariant = z.discriminatedUnion('type', [lexRef, lexRefUnion])\nexport type LexRefVariant = z.infer<typeof lexRefVariant>\n\n// blobs\n// =\n\nexport const lexBlob = z.object({\n type: z.literal('blob'),\n description: z.string().optional(),\n accept: z.string().array().optional(),\n maxSize: z.number().optional(),\n})\nexport type LexBlob = z.infer<typeof lexBlob>\n\n// complex types\n// =\n\nexport const lexArray = z.object({\n type: z.literal('array'),\n description: z.string().optional(),\n items: z.union([lexPrimitive, lexIpldType, lexBlob, lexRefVariant]),\n minLength: z.number().int().optional(),\n maxLength: z.number().int().optional(),\n})\nexport type LexArray = z.infer<typeof lexArray>\n\nexport const lexPrimitiveArray = lexArray.merge(\n z.object({\n items: lexPrimitive,\n }),\n)\nexport type LexPrimitiveArray = z.infer<typeof lexPrimitiveArray>\n\nexport const lexToken = z.object({\n type: z.literal('token'),\n description: z.string().optional(),\n})\nexport type LexToken = z.infer<typeof lexToken>\n\nexport const lexObject = z.object({\n type: z.literal('object'),\n description: z.string().optional(),\n required: z.string().array().optional(),\n nullable: z.string().array().optional(),\n properties: z\n .record(\n z.union([lexRefVariant, lexIpldType, lexArray, lexBlob, lexPrimitive]),\n )\n .optional(),\n})\nexport type LexObject = z.infer<typeof lexObject>\n\n// xrpc\n// =\n\nexport const lexXrpcParameters = z.object({\n type: z.literal('params'),\n description: z.string().optional(),\n required: z.string().array().optional(),\n properties: z.record(z.union([lexPrimitive, lexPrimitiveArray])),\n})\nexport type LexXrpcParameters = z.infer<typeof lexXrpcParameters>\n\nexport const lexXrpcBody = z.object({\n description: z.string().optional(),\n encoding: z.string(),\n schema: z.union([lexRefVariant, lexObject]).optional(),\n})\nexport type LexXrpcBody = z.infer<typeof lexXrpcBody>\n\nexport const lexXrpcSubscriptionMessage = z.object({\n description: z.string().optional(),\n schema: z.union([lexRefVariant, lexObject]).optional(),\n})\nexport type LexXrpcSubscriptionMessage = z.infer<\n typeof lexXrpcSubscriptionMessage\n>\n\nexport const lexXrpcError = z.object({\n name: z.string(),\n description: z.string().optional(),\n})\nexport type LexXrpcError = z.infer<typeof lexXrpcError>\n\nexport const lexXrpcQuery = z.object({\n type: z.literal('query'),\n description: z.string().optional(),\n parameters: lexXrpcParameters.optional(),\n output: lexXrpcBody.optional(),\n errors: lexXrpcError.array().optional(),\n})\nexport type LexXrpcQuery = z.infer<typeof lexXrpcQuery>\n\nexport const lexXrpcProcedure = z.object({\n type: z.literal('procedure'),\n description: z.string().optional(),\n parameters: lexXrpcParameters.optional(),\n input: lexXrpcBody.optional(),\n output: lexXrpcBody.optional(),\n errors: lexXrpcError.array().optional(),\n})\nexport type LexXrpcProcedure = z.infer<typeof lexXrpcProcedure>\n\nexport const lexXrpcSubscription = z.object({\n type: z.literal('subscription'),\n description: z.string().optional(),\n parameters: lexXrpcParameters.optional(),\n message: lexXrpcSubscriptionMessage.optional(),\n infos: lexXrpcError.array().optional(),\n errors: lexXrpcError.array().optional(),\n})\nexport type LexXrpcSubscription = z.infer<typeof lexXrpcSubscription>\n\n// database\n// =\n\nexport const lexRecord = z.object({\n type: z.literal('record'),\n description: z.string().optional(),\n key: z.string().optional(),\n record: lexObject,\n})\nexport type LexRecord = z.infer<typeof lexRecord>\n\n// core\n// =\n\nexport const lexUserType = z.discriminatedUnion('type', [\n lexRecord,\n\n lexXrpcQuery,\n lexXrpcProcedure,\n lexXrpcSubscription,\n\n lexBlob,\n\n lexArray,\n lexToken,\n lexObject,\n\n lexBoolean,\n lexInteger,\n lexString,\n lexBytes,\n lexCidLink,\n lexUnknown,\n])\nexport type LexUserType = z.infer<typeof lexUserType>\n\nexport const lexiconDoc = z\n .object({\n lexicon: z.literal(1),\n id: z.string().refine((v: string) => NSID.isValid(v), {\n message: 'Must be a valid NSID',\n }),\n revision: z.number().optional(),\n description: z.string().optional(),\n defs: z.record(lexUserType),\n })\n .superRefine((doc, ctx) => {\n for (const defId in doc.defs) {\n const def = doc.defs[defId]\n if (\n defId !== 'main' &&\n (def.type === 'record' ||\n def.type === 'procedure' ||\n def.type === 'query' ||\n def.type === 'subscription')\n ) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Records, procedures, queries, and subscriptions must be the main definition.`,\n })\n }\n }\n })\nexport type LexiconDoc = z.infer<typeof lexiconDoc>\n\n// helpers\n// =\n\nexport function isValidLexiconDoc(v: unknown): v is LexiconDoc {\n return lexiconDoc.safeParse(v).success\n}\n\nexport function isObj(obj: unknown): obj is Record<string, unknown> {\n return obj !== null && typeof obj === 'object'\n}\n\nexport function hasProp<K extends PropertyKey>(\n data: object,\n prop: K,\n): data is Record<K, unknown> {\n return prop in data\n}\n\nexport const discriminatedObject = z.object({ $type: z.string() })\nexport type DiscriminatedObject = z.infer<typeof discriminatedObject>\nexport function isDiscriminatedObject(\n value: unknown,\n): value is DiscriminatedObject {\n return discriminatedObject.safeParse(value).success\n}\n\nexport class LexiconDocMalformedError extends Error {\n constructor(\n message: string,\n public schemaDef: unknown,\n public issues?: z.ZodIssue[],\n ) {\n super(message)\n this.schemaDef = schemaDef\n this.issues = issues\n }\n}\n\nexport type ValidationResult =\n | {\n success: true\n value: unknown\n }\n | {\n success: false\n error: ValidationError\n }\n\nexport class ValidationError extends Error {}\nexport class InvalidLexiconError extends Error {}\nexport class LexiconDefNotFoundError extends Error {}\n", "import { ensureValidAtUri } from '@atproto/uri'\nimport { isValidISODateString } from 'iso-datestring-validator'\nimport { CID } from 'multiformats/cid'\nimport { ValidationResult, ValidationError } from '../types'\nimport { ensureValidDid, ensureValidHandle } from '@atproto/identifier'\nimport { ensureValidNsid } from '@atproto/nsid'\n\nexport function datetime(path: string, value: string): ValidationResult {\n try {\n if (!isValidISODateString(value)) {\n throw new Error()\n }\n } catch {\n return {\n success: false,\n error: new ValidationError(\n `${path} must be an iso8601 formatted datetime`,\n ),\n }\n }\n return { success: true, value }\n}\n\nexport function uri(path: string, value: string): ValidationResult {\n const isUri = value.match(/^\\w+:(?:\\/\\/)?[^\\s/][^\\s]*$/) !== null\n if (!isUri) {\n return {\n success: false,\n error: new ValidationError(`${path} must be a uri`),\n }\n }\n return { success: true, value }\n}\n\nexport function atUri(path: string, value: string): ValidationResult {\n try {\n ensureValidAtUri(value)\n } catch {\n return {\n success: false,\n error: new ValidationError(`${path} must be a valid at-uri`),\n }\n }\n return { success: true, value }\n}\n\nexport function did(path: string, value: string): ValidationResult {\n try {\n ensureValidDid(value)\n } catch {\n return {\n success: false,\n error: new ValidationError(`${path} must be a valid did`),\n }\n }\n return { success: true, value }\n}\n\nexport function handle(path: string, value: string): ValidationResult {\n try {\n ensureValidHandle(value)\n } catch {\n return {\n success: false,\n error: new ValidationError(`${path} must be a valid handle`),\n }\n }\n return { success: true, value }\n}\n\nexport function atIdentifier(path: string, value: string): ValidationResult {\n const isDid = did(path, value)\n if (!isDid.success) {\n const isHandle = handle(path, value)\n if (!isHandle.success) {\n return {\n success: false,\n error: new ValidationError(`${path} must be a valid did or a handle`),\n }\n }\n }\n return { success: true, value }\n}\n\nexport function nsid(path: string, value: string): ValidationResult {\n try {\n ensureValidNsid(value)\n } catch {\n return {\n success: false,\n error: new ValidationError(`${path} must be a valid nsid`),\n }\n }\n return { success: true, value }\n}\n\nexport function cid(path: string, value: string): ValidationResult {\n try {\n CID.parse(value)\n } catch {\n return {\n success: false,\n error: new ValidationError(`${path} must be a cid string`),\n }\n }\n return { success: true, value }\n}\n", "import { utf8Len, graphemeLen } from '@atproto/common-web'\nimport { CID } from 'multiformats/cid'\nimport { Lexicons } from '../lexicons'\nimport * as formats from './formats'\nimport {\n LexUserType,\n LexBoolean,\n LexInteger,\n LexString,\n ValidationResult,\n ValidationError,\n LexBytes,\n} from '../types'\n\nexport function validate(\n lexicons: Lexicons,\n path: string,\n def: LexUserType,\n value: unknown,\n): ValidationResult {\n switch (def.type) {\n case 'boolean':\n return boolean(lexicons, path, def, value)\n case 'integer':\n return integer(lexicons, path, def, value)\n case 'string':\n return string(lexicons, path, def, value)\n case 'bytes':\n return bytes(lexicons, path, def, value)\n case 'cid-link':\n return cidLink(lexicons, path, def, value)\n case 'unknown':\n return unknown(lexicons, path, def, value)\n default:\n return {\n success: false,\n error: new ValidationError(`Unexpected lexicon type: ${def.type}`),\n }\n }\n}\n\nexport function boolean(\n lexicons: Lexicons,\n path: string,\n def: LexUserType,\n value: unknown,\n): ValidationResult {\n def = def as LexBoolean\n\n // type\n const type = typeof value\n if (type === 'undefined') {\n if (typeof def.default === 'boolean') {\n return { success: true, value: def.default }\n }\n return {\n success: false,\n error: new ValidationError(`${path} must be a boolean`),\n }\n } else if (type !== 'boolean') {\n return {\n success: false,\n error: new ValidationError(`${path} must be a boolean`),\n }\n }\n\n // const\n if (typeof def.const === 'boolean') {\n if (value !== def.const) {\n return {\n success: false,\n error: new ValidationError(`${path} must be ${def.const}`),\n }\n }\n }\n\n return { success: true, value }\n}\n\nexport function integer(\n lexicons: Lexicons,\n path: string,\n def: LexUserType,\n value: unknown,\n): ValidationResult {\n def = def as LexInteger\n\n // type\n const type = typeof value\n if (type === 'undefined') {\n if (typeof def.default === 'number') {\n return { success: true, value: def.default }\n }\n return {\n success: false,\n error: new ValidationError(`${path} must be an integer`),\n }\n } else if (!Number.isInteger(value)) {\n return {\n success: false,\n error: new ValidationError(`${path} must be an integer`),\n }\n }\n\n // const\n if (typeof def.const === 'number') {\n if (value !== def.const) {\n return {\n success: false,\n error: new ValidationError(`${path} must be ${def.const}`),\n }\n }\n }\n\n // enum\n if (Array.isArray(def.enum)) {\n if (!def.enum.includes(value as number)) {\n return {\n success: false,\n error: new ValidationError(\n `${path} must be one of (${def.enum.join('|')})`,\n ),\n }\n }\n }\n\n // maximum\n if (typeof def.maximum === 'number') {\n if ((value as number) > def.maximum) {\n return {\n success: false,\n error: new ValidationError(\n `${path} can not be greater than ${def.maximum}`,\n ),\n }\n }\n }\n\n // minimum\n if (typeof def.minimum === 'number') {\n if ((value as number) < def.minimum) {\n return {\n success: false,\n error: new ValidationError(\n `${path} can not be less than ${def.minimum}`,\n ),\n }\n }\n }\n\n return { success: true, value }\n}\n\nexport function string(\n lexicons: Lexicons,\n path: string,\n def: LexUserType,\n value: unknown,\n): ValidationResult {\n def = def as LexString\n\n // type\n if (typeof value === 'undefined') {\n if (typeof def.default === 'string') {\n return { success: true, value: def.default }\n }\n return {\n success: false,\n error: new ValidationError(`${path} must be a string`),\n }\n } else if (typeof value !== 'string') {\n return {\n success: false,\n error: new ValidationError(`${path} must be a string`),\n }\n }\n\n // const\n if (typeof def.const === 'string') {\n if (value !== def.const) {\n return {\n success: false,\n error: new ValidationError(`${path} must be ${def.const}`),\n }\n }\n }\n\n // enum\n if (Array.isArray(def.enum)) {\n if (!def.enum.includes(value as string)) {\n return {\n success: false,\n error: new ValidationError(\n `${path} must be one of (${def.enum.join('|')})`,\n ),\n }\n }\n }\n\n // maxLength\n if (typeof def.maxLength === 'number') {\n if (utf8Len(value) > def.maxLength) {\n return {\n success: false,\n error: new ValidationError(\n `${path} must not be longer than ${def.maxLength} characters`,\n ),\n }\n }\n }\n\n // minLength\n if (typeof def.minLength === 'number') {\n if (utf8Len(value) < def.minLength) {\n return {\n success: false,\n error: new ValidationError(\n `${path} must not be shorter than ${def.minLength} characters`,\n ),\n }\n }\n }\n\n // maxGraphemes\n if (typeof def.maxGraphemes === 'number') {\n if (graphemeLen(value) > def.maxGraphemes) {\n return {\n success: false,\n error: new ValidationError(\n `${path} must not be longer than ${def.maxGraphemes} graphemes`,\n ),\n }\n }\n }\n\n // minGraphemes\n if (typeof def.minGraphemes === 'number') {\n if (graphemeLen(value) < def.minGraphemes) {\n return {\n success: false,\n error: new ValidationError(\n `${path} must not be shorter than ${def.minGraphemes} graphemes`,\n ),\n }\n }\n }\n\n if (typeof def.format === 'string') {\n switch (def.format) {\n case 'datetime':\n return formats.datetime(path, value)\n case 'uri':\n return formats.uri(path, value)\n case 'at-uri':\n return formats.atUri(path, value)\n case 'did':\n return formats.did(path, value)\n case 'handle':\n return formats.handle(path, value)\n case 'at-identifier':\n return formats.atIdentifier(path, value)\n case 'nsid':\n return formats.nsid(path, value)\n case 'cid':\n return formats.cid(path, value)\n }\n }\n\n return { success: true, value }\n}\n\nexport function bytes(\n lexicons: Lexicons,\n path: string,\n def: LexUserType,\n value: unknown,\n): ValidationResult {\n def = def as LexBytes\n\n if (!value || !(value instanceof Uint8Array)) {\n return {\n success: false,\n error: new ValidationError(`${path} must be a byte array`),\n }\n }\n\n // maxLength\n if (typeof def.maxLength === 'number') {\n if (value.byteLength > def.maxLength) {\n return {\n success: false,\n error: new ValidationError(\n `${path} must not be larger than ${def.maxLength} bytes`,\n ),\n }\n }\n }\n\n // minLength\n if (typeof def.minLength === 'number') {\n if (value.byteLength < def.minLength) {\n return {\n success: false,\n error: new ValidationError(\n `${path} must not be smaller than ${def.minLength} bytes`,\n ),\n }\n }\n }\n\n return { success: true, value }\n}\n\nexport function cidLink(\n lexicons: Lexicons,\n path: string,\n def: LexUserType,\n value: unknown,\n): ValidationResult {\n if (CID.asCID(value) === null) {\n return {\n success: false,\n error: new ValidationError(`${path} must be a CID`),\n }\n }\n\n return { success: true, value }\n}\n\nexport function unknown(\n lexicons: Lexicons,\n path: string,\n def: LexUserType,\n value: unknown,\n): ValidationResult {\n // type\n if (!value || typeof value !== 'object') {\n return {\n success: false,\n error: new ValidationError(`${path} must be an object`),\n }\n }\n\n return { success: true, value }\n}\n", "import { check, ipldToJson, schema } from '@atproto/common-web'\nimport { CID } from 'multiformats/cid'\nimport { z } from 'zod'\n\nexport const typedJsonBlobRef = z\n .object({\n $type: z.literal('blob'),\n ref: schema.cid,\n mimeType: z.string(),\n size: z.number(),\n })\n .strict()\nexport type TypedJsonBlobRef = z.infer<typeof typedJsonBlobRef>\n\nexport const untypedJsonBlobRef = z\n .object({\n cid: z.string(),\n mimeType: z.string(),\n })\n .strict()\nexport type UntypedJsonBlobRef = z.infer<typeof untypedJsonBlobRef>\n\nexport const jsonBlobRef = z.union([typedJsonBlobRef, untypedJsonBlobRef])\nexport type JsonBlobRef = z.infer<typeof jsonBlobRef>\n\nexport class BlobRef {\n public original: JsonBlobRef\n\n constructor(\n public ref: CID,\n public mimeType: string,\n public size: number,\n original?: JsonBlobRef,\n ) {\n this.original = original ?? {\n $type: 'blob',\n ref,\n mimeType,\n size,\n }\n }\n\n static asBlobRef(obj: unknown): BlobRef | null {\n if (check.is(obj, jsonBlobRef)) {\n return BlobRef.fromJsonRef(obj)\n }\n return null\n }\n\n static fromJsonRef(json: JsonBlobRef): BlobRef {\n if (check.is(json, typedJsonBlobRef)) {\n return new BlobRef(json.ref, json.mimeType, json.size)\n } else {\n return new BlobRef(CID.parse(json.cid), json.mimeType, -1, json)\n }\n }\n\n ipld(): TypedJsonBlobRef {\n return {\n $type: 'blob',\n ref: this.ref,\n mimeType: this.mimeType,\n size: this.size,\n }\n }\n\n toJSON() {\n return ipldToJson(this.ipld())\n }\n}\n", "import { BlobRef } from '../blob-refs'\nimport { Lexicons } from '../lexicons'\nimport { LexUserType, ValidationResult, ValidationError } from '../types'\n\nexport function blob(\n lexicons: Lexicons,\n path: string,\n def: LexUserType,\n value: unknown,\n): ValidationResult {\n // check\n if (!value || !(value instanceof BlobRef)) {\n return {\n success: false,\n error: new ValidationError(`${path} should be a blob ref`),\n }\n }\n return { success: true, value }\n}\n", "import { Lexicons } from '../lexicons'\nimport {\n LexArray,\n LexObject,\n LexUserType,\n ValidationResult,\n ValidationError,\n} from '../types'\nimport { validateOneOf } from '../util'\n\nimport * as Primitives from './primitives'\nimport * as Blob from './blob'\n\nexport function validate(\n lexicons: Lexicons,\n path: string,\n def: LexUserType,\n value: unknown,\n): ValidationResult {\n switch (def.type) {\n case 'boolean':\n return Primitives.boolean(lexicons, path, def, value)\n case 'integer':\n return Primitives.integer(lexicons, path, def, value)\n case 'string':\n return Primitives.string(lexicons, path, def, value)\n case 'bytes':\n return Primitives.bytes(lexicons, path, def, value)\n case 'cid-link':\n return Primitives.cidLink(lexicons, path, def, value)\n case 'unknown':\n return Primitives.unknown(lexicons, path, def, value)\n case 'object':\n return object(lexicons, path, def, value)\n case 'array':\n return array(lexicons, path, def, value)\n case 'blob':\n return Blob.blob(lexicons, path, def, value)\n default:\n return {\n success: false,\n error: new ValidationError(`Unexpected lexicon type: ${def.type}`),\n }\n }\n}\n\nexport function array(\n lexicons: Lexicons,\n path: string,\n def: LexArray,\n value: unknown,\n): ValidationResult {\n // type\n if (!Array.isArray(value)) {\n return {\n success: false,\n error: new ValidationError(`${path} must be an array`),\n }\n }\n\n // maxLength\n if (typeof def.maxLength === 'number') {\n if ((value as Array<unknown>).length > def.maxLength) {\n return {\n success: false,\n error: new ValidationError(\n `${path} must not have more than ${def.maxLength} elements`,\n ),\n }\n }\n }\n\n // minLength\n if (typeof def.minLength === 'number') {\n if ((value as Array<unknown>).length < def.minLength) {\n return {\n success: false,\n error: new ValidationError(\n `${path} must not have fewer than ${def.minLength} elements`,\n ),\n }\n }\n }\n\n // items\n const itemsDef = def.items\n for (let i = 0; i < (value as Array<unknown>).length; i++) {\n const itemValue = value[i]\n const itemPath = `${path}/${i}`\n const res = validateOneOf(lexicons, itemPath, itemsDef, itemValue)\n if (!res.success) {\n return res\n }\n }\n\n return { success: true, value }\n}\n\nexport function object(\n lexicons: Lexicons,\n path: string,\n def: LexUserType,\n value: unknown,\n): ValidationResult {\n def = def as LexObject\n\n // type\n if (!value || typeof value !== 'object') {\n return {\n success: false,\n error: new ValidationError(`${path} must be an object`),\n }\n }\n\n const requiredProps = new Set(def.required)\n const nullableProps = new Set(def.nullable)\n\n // properties\n let resultValue = value\n if (typeof def.properties === 'object') {\n for (const key in def.properties) {\n if (value[key] === null && nullableProps.has(key)) {\n continue\n }\n const propDef = def.properties[key]\n const propPath = `${path}/${key}`\n const validated = validateOneOf(lexicons, propPath, propDef, value[key])\n const propValue = validated.success ? validated.value : value[key]\n const propIsUndefined = typeof propValue === 'undefined'\n // Return error for bad validation, giving required rule precedence\n if (propIsUndefined && requiredProps.has(key)) {\n return {\n success: false,\n error: new ValidationError(`${path} must have the property \"${key}\"`),\n }\n } else if (!propIsUndefined && !validated.success) {\n return validated\n }\n // Adjust value based on e.g. applied defaults, cloning shallowly if there was a changed value\n if (propValue !== value[key]) {\n if (resultValue === value) {\n // Lazy shallow clone\n resultValue = { ...value }\n }\n resultValue[key] = propValue\n }\n }\n }\n\n return { success: true, value: resultValue }\n}\n", "import { Lexicons } from './lexicons'\nimport * as ComplexValidators from './validators/complex'\nimport {\n LexUserType,\n LexRefVariant,\n ValidationError,\n ValidationResult,\n isDiscriminatedObject,\n} from './types'\n\nexport function toLexUri(str: string, baseUri?: string): string {\n if (str.startsWith('lex:')) {\n return str\n }\n if (str.startsWith('#')) {\n if (!baseUri) {\n throw new Error(`Unable to resolve uri without anchor: ${str}`)\n }\n return `${baseUri}${str}`\n }\n return `lex:${str}`\n}\n\nexport function validateOneOf(\n lexicons: Lexicons,\n path: string,\n def: LexRefVariant | LexUserType,\n value: unknown,\n mustBeObj = false, // this is the only type constraint we need currently (used by xrpc body schema validators)\n): ValidationResult {\n let error\n\n let concreteDefs\n if (def.type === 'union') {\n if (!isDiscriminatedObject(value)) {\n return {\n success: false,\n error: new ValidationError(\n `${path} must be an object which includes the \"$type\" property`,\n ),\n }\n }\n if (!def.refs.includes(toLexUri(value.$type))) {\n if (def.closed) {\n return {\n success: false,\n error: new ValidationError(\n `${path} $type must be one of ${def.refs.join(', ')}`,\n ),\n }\n }\n return { success: true, value }\n } else {\n concreteDefs = toConcreteTypes(lexicons, {\n type: 'ref',\n ref: value.$type,\n })\n }\n } else {\n concreteDefs = toConcreteTypes(lexicons, def)\n }\n\n for (const concreteDef of concreteDefs) {\n const result = mustBeObj\n ? ComplexValidators.object(lexicons, path, concreteDef, value)\n : ComplexValidators.validate(lexicons, path, concreteDef, value)\n if (result.success) {\n return result\n }\n error ??= result.error\n }\n if (concreteDefs.length > 1) {\n return {\n success: false,\n error: new ValidationError(\n `${path} did not match any of the expected definitions`,\n ),\n }\n }\n return { success: false, error }\n}\n\nexport function assertValidOneOf(\n lexicons: Lexicons,\n path: string,\n def: LexRefVariant | LexUserType,\n value: unknown,\n mustBeObj = false,\n) {\n const res = validateOneOf(lexicons, path, def, value, mustBeObj)\n if (!res.success) throw res.error\n return res.value\n}\n\nexport function toConcreteTypes(\n lexicons: Lexicons,\n def: LexRefVariant | LexUserType,\n): LexUserType[] {\n if (def.type === 'ref') {\n return [lexicons.getDefOrThrow(def.ref)]\n } else if (def.type === 'union') {\n return def.refs.map((ref) => lexicons.getDefOrThrow(ref)).flat()\n } else {\n return [def]\n }\n}\n", "import { Lexicons } from '../lexicons'\nimport { LexXrpcParameters, ValidationResult, ValidationError } from '../types'\n\nimport * as PrimitiveValidators from './primitives'\nimport { array } from './complex'\n\nexport function params(\n lexicons: Lexicons,\n path: string,\n def: LexXrpcParameters,\n val: unknown,\n): ValidationResult {\n // type\n const value = val && typeof val === 'object' ? val : {}\n\n const requiredProps = new Set(def.required ?? [])\n\n // properties\n let resultValue = value\n if (typeof def.properties === 'object') {\n for (const key in def.properties) {\n const propDef = def.properties[key]\n const validated =\n propDef.type === 'array'\n ? array(lexicons, key, propDef, value[key])\n : PrimitiveValidators.validate(lexicons, key, propDef, value[key])\n const propValue = validated.success ? validated.value : value[key]\n const propIsUndefined = typeof propValue === 'undefined'\n // Return error for bad validation, giving required rule precedence\n if (propIsUndefined && requiredProps.has(key)) {\n return {\n success: false,\n error: new ValidationError(`${path} must have the property \"${key}\"`),\n }\n } else if (!propIsUndefined && !validated.success) {\n return validated\n }\n // Adjust value based on e.g. applied defaults, cloning shallowly if there was a changed value\n if (propValue !== value[key]) {\n if (resultValue === value) {\n // Lazy shallow clone\n resultValue = { ...value }\n }\n resultValue[key] = propValue\n }\n }\n }\n\n return { success: true, value: resultValue }\n}\n", "import { Lexicons } from './lexicons'\nimport {\n LexRecord,\n LexXrpcProcedure,\n LexXrpcQuery,\n LexXrpcSubscription,\n} from './types'\nimport { assertValidOneOf } from './util'\n\nimport * as ComplexValidators from './validators/complex'\nimport * as XrpcValidators from './validators/xrpc'\n\nexport function assertValidRecord(\n lexicons: Lexicons,\n def: LexRecord,\n value: unknown,\n) {\n const res = ComplexValidators.object(lexicons, 'Record', def.record, value)\n if (!res.success) throw res.error\n return res.value\n}\n\nexport function assertValidXrpcParams(\n lexicons: Lexicons,\n def: LexXrpcProcedure | LexXrpcQuery | LexXrpcSubscription,\n value: unknown,\n) {\n if (def.parameters) {\n const res = XrpcValidators.params(lexicons, 'Params', def.parameters, value)\n if (!res.success) throw res.error\n return res.value\n }\n}\n\nexport function assertValidXrpcInput(\n lexicons: Lexicons,\n def: LexXrpcProcedure,\n value: unknown,\n) {\n if (def.input?.schema) {\n // loop: all input schema definitions\n return assertValidOneOf(lexicons, 'Input', def.input.schema, value, true)\n }\n}\n\nexport function assertValidXrpcOutput(\n lexicons: Lexicons,\n def: LexXrpcProcedure | LexXrpcQuery,\n value: unknown,\n) {\n if (def.output?.schema) {\n // loop: all output schema definitions\n return assertValidOneOf(lexicons, 'Output', def.output.schema, value, true)\n }\n}\n\nexport function assertValidXrpcMessage(\n lexicons: Lexicons,\n def: LexXrpcSubscription,\n value: unknown,\n) {\n if (def.message?.schema) {\n // loop: all output schema definitions\n return assertValidOneOf(\n lexicons,\n 'Message',\n def.message.schema,\n value,\n true,\n )\n }\n}\n", "import { ZodError } from 'zod'\nimport {\n LexiconDoc,\n lexiconDoc,\n LexRecord,\n LexXrpcProcedure,\n LexXrpcQuery,\n LexUserType,\n LexiconDocMalformedError,\n LexiconDefNotFoundError,\n InvalidLexiconError,\n ValidationResult,\n ValidationError,\n isObj,\n hasProp,\n LexXrpcSubscription,\n} from './types'\nimport {\n assertValidRecord,\n assertValidXrpcParams,\n assertValidXrpcInput,\n assertValidXrpcOutput,\n assertValidXrpcMessage,\n} from './validation'\nimport { toLexUri } from './util'\nimport * as ComplexValidators from './validators/complex'\n\n/**\n * A collection of compiled lexicons.\n */\nexport class Lexicons {\n docs: Map<string, LexiconDoc> = new Map()\n defs: Map<string, LexUserType> = new Map()\n\n constructor(docs?: unknown[]) {\n if (docs?.length) {\n for (const doc of docs) {\n this.add(doc)\n }\n }\n }\n\n /**\n * Add a lexicon doc.\n */\n add(doc: unknown): void {\n try {\n lexiconDoc.parse(doc)\n } catch (e) {\n if (e instanceof ZodError) {\n throw new LexiconDocMalformedError(\n `Failed to parse schema definition ${\n (doc as Record<string, string>).id\n }`,\n doc,\n e.issues,\n )\n } else {\n throw e\n }\n }\n const validatedDoc = doc as LexiconDoc\n const uri = toLexUri(validatedDoc.id)\n if (this.docs.has(uri)) {\n throw new Error(`${uri} has already been registered`)\n }\n\n // WARNING\n // mutates the object\n // -prf\n resolveRefUris(validatedDoc, uri)\n\n this.docs.set(uri, validatedDoc)\n for (const [defUri, def] of iterDefs(validatedDoc)) {\n this.defs.set(defUri, def)\n }\n }\n\n /**\n * Remove a lexicon doc.\n */\n remove(uri: string) {\n uri = toLexUri(uri)\n const doc = this.docs.get(uri)\n if (!doc) {\n throw new Error(`Unable to remove \"${uri}\": does not exist`)\n }\n for (const [defUri, _def] of iterDefs(doc)) {\n this.defs.delete(defUri)\n }\n this.docs.delete(uri)\n }\n\n /**\n * Get a lexicon doc.\n */\n get(uri: string): LexiconDoc | undefined {\n uri = toLexUri(uri)\n return this.docs.get(uri)\n }\n\n /**\n * Get a definition.\n */\n getDef(uri: string): LexUserType | undefined {\n uri = toLexUri(uri)\n return this.defs.get(uri)\n }\n\n /**\n * Get a def, throw if not found. Throws on not found.\n */\n getDefOrThrow(uri: string, types?: string[]): LexUserType {\n const def = this.getDef(uri)\n if (!def) {\n throw new LexiconDefNotFoundError(`Lexicon not found: ${uri}`)\n }\n if (types && !types.includes(def.type)) {\n throw new InvalidLexiconError(\n `Not a ${types.join(' or ')} lexicon: ${uri}`,\n )\n }\n return def\n }\n\n /**\n * Validate a record or object.\n */\n validate(lexUri: string, value: unknown): ValidationResult {\n lexUri = toLexUri(lexUri)\n const def = this.getDefOrThrow(lexUri, ['record', 'object'])\n if (!isObj(value)) {\n throw new ValidationError(`Value must be an object`)\n }\n if (def.type === 'record') {\n return ComplexValidators.object(this, 'Record', def.record, value)\n } else if (def.type === 'object') {\n return ComplexValidators.object(this, 'Object', def, value)\n } else {\n // shouldnt happen\n throw new InvalidLexiconError('Definition must be a record or object')\n }\n }\n\n /**\n * Validate a record and throw on any error.\n */\n assertValidRecord(lexUri: string, value: unknown) {\n lexUri = toLexUri(lexUri)\n const def = this.getDefOrThrow(lexUri, ['record'])\n if (!isObj(value)) {\n throw new ValidationError(`Record must be an object`)\n }\n if (!hasProp(value, '$type') || typeof value.$type !== 'string') {\n throw new ValidationError(`Record/$type must be a string`)\n }\n const $type = (value as Record<string, string>).$type || ''\n if (toLexUri($type) !== lexUri) {\n throw new ValidationError(\n `Invalid $type: must be ${lexUri}, got ${$type}`,\n )\n }\n return assertValidRecord(this, def as LexRecord, value)\n }\n\n /**\n * Validate xrpc query params and throw on any error.\n */\n assertValidXrpcParams(lexUri: string, value: unknown) {\n lexUri = toLexUri(lexUri)\n const def = this.getDefOrThrow(lexUri, [\n 'query',\n 'procedure',\n 'subscription',\n ])\n return assertValidXrpcParams(\n this,\n def as LexXrpcProcedure | LexXrpcQuery | LexXrpcSubscription,\n value,\n )\n }\n\n /**\n * Validate xrpc input body and throw on any error.\n */\n assertValidXrpcInput(lexUri: string, value: unknown) {\n lexUri = toLexUri(lexUri)\n const def = this.getDefOrThrow(lexUri, ['procedure'])\n return assertValidXrpcInput(this, def as LexXrpcProcedure, value)\n }\n\n /**\n * Validate xrpc output body and throw on any error.\n */\n assertValidXrpcOutput(lexUri: string, value: unknown) {\n lexUri = toLexUri(lexUri)\n const def = this.getDefOrThrow(lexUri, ['query', 'procedure'])\n return assertValidXrpcOutput(\n this,\n def as LexXrpcProcedure | LexXrpcQuery,\n value,\n )\n }\n\n /**\n * Validate xrpc subscription message and throw on any error.\n */\n assertValidXrpcMessage<T = unknown>(lexUri: string, value: unknown): T {\n lexUri = toLexUri(lexUri)\n const def = this.getDefOrThrow(lexUri, ['subscription'])\n return assertValidXrpcMessage(this, def as LexXrpcSubscription, value) as T\n }\n\n /**\n * Resolve a lex uri given a ref\n */\n resolveLexUri(lexUri: string, ref: string) {\n lexUri = toLexUri(lexUri)\n return toLexUri(ref, lexUri)\n }\n}\n\nfunction* iterDefs(doc: LexiconDoc): Generator<[string, LexUserType]> {\n for (const defId in doc.defs) {\n yield [`lex:${doc.id}#${defId}`, doc.defs[defId]]\n if (defId === 'main') {\n yield [`lex:${doc.id}`, doc.defs[defId]]\n }\n }\n}\n\n// WARNING\n// this method mutates objects\n// -prf\nfunction resolveRefUris(obj: any, baseUri: string): any {\n for (const k in obj) {\n if (obj.type === 'ref') {\n obj.ref = toLexUri(obj.ref, baseUri)\n } else if (obj.type === 'union') {\n obj.refs = obj.refs.map((ref) => toLexUri(ref, baseUri))\n } else if (Array.isArray(obj[k])) {\n obj[k] = obj[k].map((item: any) => {\n if (typeof item === 'string') {\n return item.startsWith('#') ? toLexUri(item, baseUri) : item\n } else if (item && typeof item === 'object') {\n return resolveRefUris(item, baseUri)\n }\n return item\n })\n } else if (obj[k] && typeof obj[k] === 'object') {\n obj[k] = resolveRefUris(obj[k], baseUri)\n }\n }\n return obj\n}\n", "import {\n check,\n IpldValue,\n ipldToJson,\n jsonToIpld,\n JsonValue,\n} from '@atproto/common-web'\nimport { CID } from 'multiformats/cid'\nimport { BlobRef, jsonBlobRef } from './blob-refs'\n\nexport type LexValue =\n | IpldValue\n | BlobRef\n | Array<LexValue>\n | { [key: string]: LexValue }\n\nexport type RepoRecord = Record<string, LexValue>\n\n// @NOTE avoiding use of check.is() here only because it makes\n// these implementations slow, and they often live in hot paths.\n\nexport const lexToIpld = (val: LexValue): IpldValue => {\n // walk arrays\n if (Array.isArray(val)) {\n return val.map((item) => lexToIpld(item))\n }\n // objects\n if (val && typeof val === 'object') {\n // convert blobs, leaving the original encoding so that we don't change CIDs on re-encode\n if (val instanceof BlobRef) {\n return val.original\n }\n // retain cids & bytes\n if (CID.asCID(val) || val instanceof Uint8Array) {\n return val\n }\n // walk plain objects\n const toReturn = {}\n for (const key of Object.keys(val)) {\n toReturn[key] = lexToIpld(val[key])\n }\n return toReturn\n }\n // pass through\n return val\n}\n\nexport const ipldToLex = (val: IpldValue): LexValue => {\n // map arrays\n if (Array.isArray(val)) {\n return val.map((item) => ipldToLex(item))\n }\n // objects\n if (val && typeof val === 'object') {\n // convert blobs, using hints to avoid expensive is() check\n if (\n (val['$type'] === 'blob' ||\n (typeof val['cid'] === 'string' &&\n typeof val['mimeType'] === 'string')) &&\n check.is(val, jsonBlobRef)\n ) {\n return BlobRef.fromJsonRef(val)\n }\n // retain cids, bytes\n if (CID.asCID(val) || val instanceof Uint8Array) {\n return val\n }\n // map plain objects\n const toReturn = {}\n for (const key of Object.keys(val)) {\n toReturn[key] = ipldToLex(val[key])\n }\n return toReturn\n }\n // pass through\n return val\n}\n\nexport const lexToJson = (val: LexValue): JsonValue => {\n return ipldToJson(lexToIpld(val))\n}\n\nexport const stringifyLex = (val: LexValue): string => {\n return JSON.stringify(lexToJson(val))\n}\n\nexport const jsonToLex = (val: JsonValue): LexValue => {\n return ipldToLex(jsonToIpld(val))\n}\n\nexport const jsonStringToLex = (val: string): LexValue => {\n return jsonToLex(JSON.parse(val))\n}\n", "import { z } from 'zod'\nimport { ValidationError } from '@atproto/lexicon'\n\nexport type QueryParams = Record<string, any>\nexport type Headers = Record<string, string>\n\nexport interface CallOptions {\n encoding?: string\n headers?: Headers\n}\n\nexport interface FetchHandlerResponse {\n status: number\n headers: Headers\n body: ArrayBuffer | undefined\n}\n\nexport type FetchHandler = (\n httpUri: string,\n httpMethod: string,\n httpHeaders: Headers,\n httpReqBody: any,\n) => Promise<FetchHandlerResponse>\n\nexport const errorResponseBody = z.object({\n error: z.string().optional(),\n message: z.string().optional(),\n})\nexport type ErrorResponseBody = z.infer<typeof errorResponseBody>\n\nexport enum ResponseType {\n Unknown = 1,\n InvalidResponse = 2,\n Success = 200,\n InvalidRequest = 400,\n AuthRequired = 401,\n Forbidden = 403,\n XRPCNotSupported = 404,\n PayloadTooLarge = 413,\n RateLimitExceeded = 429,\n InternalServerError = 500,\n MethodNotImplemented = 501,\n UpstreamFailure = 502,\n NotEnoughResouces = 503,\n UpstreamTimeout = 504,\n}\n\nexport const ResponseTypeNames = {\n [ResponseType.InvalidResponse]: 'InvalidResponse',\n [ResponseType.Success]: 'Success',\n [ResponseType.InvalidRequest]: 'InvalidRequest',\n [ResponseType.AuthRequired]: 'AuthenticationRequired',\n [ResponseType.Forbidden]: 'Forbidden',\n [ResponseType.XRPCNotSupported]: 'XRPCNotSupported',\n [ResponseType.PayloadTooLarge]: 'PayloadTooLarge',\n [ResponseType.RateLimitExceeded]: 'RateLimitExceeded',\n [ResponseType.InternalServerError]: 'InternalServerError',\n [ResponseType.MethodNotImplemented]: 'MethodNotImplemented',\n [ResponseType.UpstreamFailure]: 'UpstreamFailure',\n [ResponseType.NotEnoughResouces]: 'NotEnoughResouces',\n [ResponseType.UpstreamTimeout]: 'UpstreamTimeout',\n}\n\nexport const ResponseTypeStrings = {\n [ResponseType.InvalidResponse]: 'Invalid Response',\n [ResponseType.Success]: 'Success',\n [ResponseType.InvalidRequest]: 'Invalid Request',\n [ResponseType.AuthRequired]: 'Authentication Required',\n [ResponseType.Forbidden]: 'Forbidden',\n [ResponseType.XRPCNotSupported]: 'XRPC Not Supported',\n [ResponseType.PayloadTooLarge]: 'Payload Too Large',\n [ResponseType.RateLimitExceeded]: 'Rate Limit Exceeded',\n [ResponseType.InternalServerError]: 'Internal Server Error',\n [ResponseType.MethodNotImplemented]: 'Method Not Implemented',\n [ResponseType.UpstreamFailure]: 'Upstream Failure',\n [ResponseType.NotEnoughResouces]: 'Not Enough Resouces',\n [ResponseType.UpstreamTimeout]: 'Upstream Timeout',\n}\n\nexport class XRPCResponse {\n success = true\n\n constructor(public data: any, public headers: Headers) {}\n}\n\nexport class XRPCError extends Error {\n success = false\n\n constructor(\n public status: ResponseType,\n public error?: string,\n message?: string,\n ) {\n super(message || error || ResponseTypeStrings[status])\n if (!this.error) {\n this.error = ResponseTypeNames[status]\n }\n }\n}\n\nexport class XRPCInvalidResponseError extends XRPCError {\n constructor(\n public lexiconNsid: string,\n public validationError: ValidationError,\n public responseBody: unknown,\n ) {\n super(\n ResponseType.InvalidResponse,\n ResponseTypeStrings[ResponseType.InvalidResponse],\n `The server gave an invalid response and may be out of date.`,\n )\n }\n}\n", "import {\n jsonStringToLex,\n LexXrpcProcedure,\n LexXrpcQuery,\n stringifyLex,\n} from '@atproto/lexicon'\nimport {\n CallOptions,\n Headers,\n QueryParams,\n ResponseType,\n XRPCError,\n} from './types'\n\nexport function getMethodSchemaHTTPMethod(\n schema: LexXrpcProcedure | LexXrpcQuery,\n) {\n if (schema.type === 'procedure') {\n return 'post'\n }\n return 'get'\n}\n\nexport function constructMethodCallUri(\n nsid: string,\n schema: LexXrpcProcedure | LexXrpcQuery,\n serviceUri: URL,\n params?: QueryParams,\n): string {\n const uri = new URL(serviceUri)\n uri.pathname = `/xrpc/${nsid}`\n\n // given parameters\n if (params) {\n for (const [key, value] of Object.entries(params)) {\n const paramSchema = schema.parameters?.properties?.[key]\n if (!paramSchema) {\n throw new Error(`Invalid query parameter: ${key}`)\n }\n if (value !== undefined) {\n if (paramSchema.type === 'array') {\n const vals: typeof value[] = []\n vals.concat(value).forEach((val) => {\n uri.searchParams.append(\n key,\n encodeQueryParam(paramSchema.items.type, val),\n )\n })\n } else {\n uri.searchParams.set(key, encodeQueryParam(paramSchema.type, value))\n }\n }\n }\n }\n\n return uri.toString()\n}\n\nexport function encodeQueryParam(\n type:\n | 'string'\n | 'float'\n | 'integer'\n | 'boolean'\n | 'datetime'\n | 'array'\n | 'unknown',\n value: any,\n): string {\n if (type === 'string' || type === 'unknown') {\n return String(value)\n }\n if (type === 'float') {\n return String(Number(value))\n } else if (type === 'integer') {\n return String(Number(value) | 0)\n } else if (type === 'boolean') {\n return value ? 'true' : 'false'\n } else if (type === 'datetime') {\n if (value instanceof Date) {\n return value.toISOString()\n }\n return String(value)\n }\n throw new Error(`Unsupported query param type: ${type}`)\n}\n\nexport function constructMethodCallHeaders(\n schema: LexXrpcProcedure | LexXrpcQuery,\n data?: any,\n opts?: CallOptions,\n): Headers {\n const headers: Headers = opts?.headers || {}\n if (schema.type === 'procedure') {\n if (opts?.encoding) {\n headers['Content-Type'] = opts.encoding\n }\n if (data && typeof data === 'object') {\n if (!headers['Content-Type']) {\n headers['Content-Type'] = 'application/json'\n }\n }\n }\n return headers\n}\n\nexport function encodeMethodCallBody(\n headers: Headers,\n data?: any,\n): ArrayBuffer | undefined {\n if (!headers['Content-Type'] || typeof data === 'undefined') {\n return undefined\n }\n if (data instanceof ArrayBuffer) {\n return data\n }\n if (headers['Content-Type'].startsWith('text/')) {\n return new TextEncoder().encode(data.toString())\n }\n if (headers['Content-Type'].startsWith('application/json')) {\n return new TextEncoder().encode(stringifyLex(data))\n }\n return data\n}\n\nexport function httpResponseCodeToEnum(status: number): ResponseType {\n let resCode: ResponseType\n if (status in ResponseType) {\n resCode = status\n } else if (status >= 100 && status < 200) {\n resCode = ResponseType.XRPCNotSupported\n } else if (status >= 200 && status < 300) {\n resCode = ResponseType.Success\n } else if (status >= 300 && status < 400) {\n resCode = ResponseType.XRPCNotSupported\n } else if (status >= 400 && status < 500) {\n resCode = ResponseType.InvalidRequest\n } else {\n resCode = ResponseType.InternalServerError\n }\n return resCode\n}\n\nexport function httpResponseBodyParse(\n mimeType: string | null,\n data: ArrayBuffer | undefined,\n): any {\n if (mimeType) {\n if (mimeType.includes('application/json') && data?.byteLength) {\n try {\n const str = new TextDecoder().decode(data)\n return jsonStringToLex(str)\n } catch (e) {\n throw new XRPCError(\n ResponseType.InvalidResponse,\n `Failed to parse response body: ${String(e)}`,\n )\n }\n }\n if (mimeType.startsWith('text/') && data?.byteLength) {\n try {\n return new TextDecoder().decode(data)\n } catch (e) {\n throw new XRPCError(\n ResponseType.InvalidResponse,\n `Failed to parse response body: ${String(e)}`,\n )\n }\n }\n }\n if (data instanceof ArrayBuffer) {\n return new Uint8Array(data)\n }\n return data\n}\n", "import { Lexicons, ValidationError } from '@atproto/lexicon'\nimport {\n getMethodSchemaHTTPMethod,\n constructMethodCallUri,\n constructMethodCallHeaders,\n encodeMethodCallBody,\n httpResponseCodeToEnum,\n httpResponseBodyParse,\n} from './util'\nimport {\n FetchHandler,\n FetchHandlerResponse,\n Headers,\n CallOptions,\n QueryParams,\n ResponseType,\n errorResponseBody,\n ErrorResponseBody,\n XRPCResponse,\n XRPCError,\n XRPCInvalidResponseError,\n} from './types'\n\nexport class Client {\n fetch: FetchHandler = defaultFetchHandler\n lex = new Lexicons()\n\n // method calls\n //\n\n async call(\n serviceUri: string | URL,\n methodNsid: string,\n params?: QueryParams,\n data?: unknown,\n opts?: CallOptions,\n ) {\n return this.service(serviceUri).call(methodNsid, params, data, opts)\n }\n\n service(serviceUri: string | URL) {\n return new ServiceClient(this, serviceUri)\n }\n\n // schemas\n // =\n\n addLexicon(doc: unknown) {\n this.lex.add(doc)\n }\n\n addLexicons(docs: unknown[]) {\n for (const doc of docs) {\n this.addLexicon(doc)\n }\n }\n\n removeLexicon(uri: string) {\n this.lex.remove(uri)\n }\n}\n\nexport class ServiceClient {\n baseClient: Client\n uri: URL\n headers: Record<string, string> = {}\n\n constructor(baseClient: Client, serviceUri: string | URL) {\n this.baseClient = baseClient\n this.uri = typeof serviceUri === 'string' ? new URL(serviceUri) : serviceUri\n }\n\n setHeader(key: string, value: string): void {\n this.headers[key] = value\n }\n\n unsetHeader(key: string): void {\n delete this.headers[key]\n }\n\n async call(\n methodNsid: string,\n params?: QueryParams,\n data?: unknown,\n opts?: CallOptions,\n ) {\n const def = this.baseClient.lex.getDefOrThrow(methodNsid)\n if (!def || (def.type !== 'query' && def.type !== 'procedure')) {\n throw new Error(\n `Invalid lexicon: ${methodNsid}. Must be a query or procedure.`,\n )\n }\n\n const httpMethod = getMethodSchemaHTTPMethod(def)\n const httpUri = constructMethodCallUri(methodNsid, def, this.uri, params)\n const httpHeaders = constructMethodCallHeaders(def, data, {\n headers: {\n ...this.headers,\n ...opts?.headers,\n },\n encoding: opts?.encoding,\n })\n\n const res = await this.baseClient.fetch(\n httpUri,\n httpMethod,\n httpHeaders,\n data,\n )\n\n const resCode = httpResponseCodeToEnum(res.status)\n if (resCode === ResponseType.Success) {\n try {\n this.baseClient.lex.assertValidXrpcOutput(methodNsid, res.body)\n } catch (e: any) {\n if (e instanceof ValidationError) {\n throw new XRPCInvalidResponseError(methodNsid, e, res.body)\n } else {\n throw e\n }\n }\n return new XRPCResponse(res.body, res.headers)\n } else {\n if (res.body && isErrorResponseBody(res.body)) {\n throw new XRPCError(resCode, res.body.error, res.body.message)\n } else {\n throw new XRPCError(resCode)\n }\n }\n }\n}\n\nexport async function defaultFetchHandler(\n httpUri: string,\n httpMethod: string,\n httpHeaders: Headers,\n httpReqBody: unknown,\n): Promise<FetchHandlerResponse> {\n try {\n // The duplex field is now required for streaming bodies, but not yet reflected\n // anywhere in docs or types. See whatwg/fetch#1438, nodejs/node#46221.\n const reqInit: RequestInit & { duplex: string } = {\n method: httpMethod,\n headers: httpHeaders,\n body: encodeMethodCallBody(httpHeaders, httpReqBody),\n duplex: 'half',\n }\n const res = await fetch(httpUri, reqInit)\n const resBody = await res.arrayBuffer()\n return {\n status: res.status,\n headers: Object.fromEntries(res.headers.entries()),\n body: httpResponseBodyParse(res.headers.get('content-type'), resBody),\n }\n } catch (e) {\n throw new XRPCError(ResponseType.Unknown, String(e))\n }\n}\n\nfunction isErrorResponseBody(v: unknown): v is ErrorResponseBody {\n return errorResponseBody.safeParse(v).success\n}\n", "export * from './types'\nexport * from './client'\n\nimport { Client } from './client'\nconst defaultInst = new Client()\nexport default defaultInst\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { LexiconDoc, Lexicons } from '@atproto/lexicon'\n\nexport const schemaDict = {\n ComAtprotoAdminDefs: {\n lexicon: 1,\n id: 'com.atproto.admin.defs',\n defs: {\n actionView: {\n type: 'object',\n required: [\n 'id',\n 'action',\n 'subject',\n 'subjectBlobCids',\n 'reason',\n 'createdBy',\n 'createdAt',\n 'resolvedReportIds',\n ],\n properties: {\n id: {\n type: 'integer',\n },\n action: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.defs#actionType',\n },\n subject: {\n type: 'union',\n refs: [\n 'lex:com.atproto.admin.defs#repoRef',\n 'lex:com.atproto.repo.strongRef',\n ],\n },\n subjectBlobCids: {\n type: 'array',\n items: {\n type: 'string',\n },\n },\n createLabelVals: {\n type: 'array',\n items: {\n type: 'string',\n },\n },\n negateLabelVals: {\n type: 'array',\n items: {\n type: 'string',\n },\n },\n reason: {\n type: 'string',\n },\n createdBy: {\n type: 'string',\n format: 'did',\n },\n createdAt: {\n type: 'string',\n format: 'datetime',\n },\n reversal: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.defs#actionReversal',\n },\n resolvedReportIds: {\n type: 'array',\n items: {\n type: 'integer',\n },\n },\n },\n },\n actionViewDetail: {\n type: 'object',\n required: [\n 'id',\n 'action',\n 'subject',\n 'subjectBlobs',\n 'reason',\n 'createdBy',\n 'createdAt',\n 'resolvedReports',\n ],\n properties: {\n id: {\n type: 'integer',\n },\n action: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.defs#actionType',\n },\n subject: {\n type: 'union',\n refs: [\n 'lex:com.atproto.admin.defs#repoView',\n 'lex:com.atproto.admin.defs#recordView',\n ],\n },\n subjectBlobs: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.defs#blobView',\n },\n },\n createLabelVals: {\n type: 'array',\n items: {\n type: 'string',\n },\n },\n negateLabelVals: {\n type: 'array',\n items: {\n type: 'string',\n },\n },\n reason: {\n type: 'string',\n },\n createdBy: {\n type: 'string',\n format: 'did',\n },\n createdAt: {\n type: 'string',\n format: 'datetime',\n },\n reversal: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.defs#actionReversal',\n },\n resolvedReports: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.defs#reportView',\n },\n },\n },\n },\n actionViewCurrent: {\n type: 'object',\n required: ['id', 'action'],\n properties: {\n id: {\n type: 'integer',\n },\n action: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.defs#actionType',\n },\n },\n },\n actionReversal: {\n type: 'object',\n required: ['reason', 'createdBy', 'createdAt'],\n properties: {\n reason: {\n type: 'string',\n },\n createdBy: {\n type: 'string',\n format: 'did',\n },\n createdAt: {\n type: 'string',\n format: 'datetime',\n },\n },\n },\n actionType: {\n type: 'string',\n knownValues: [\n 'lex:com.atproto.admin.defs#takedown',\n 'lex:com.atproto.admin.defs#flag',\n 'lex:com.atproto.admin.defs#acknowledge',\n 'lex:com.atproto.admin.defs#escalate',\n ],\n },\n takedown: {\n type: 'token',\n description:\n 'Moderation action type: Takedown. Indicates that content should not be served by the PDS.',\n },\n flag: {\n type: 'token',\n description:\n 'Moderation action type: Flag. Indicates that the content was reviewed and considered to violate PDS rules, but may still be served.',\n },\n acknowledge: {\n type: 'token',\n description:\n 'Moderation action type: Acknowledge. Indicates that the content was reviewed and not considered to violate PDS rules.',\n },\n escalate: {\n type: 'token',\n description:\n 'Moderation action type: Escalate. Indicates that the content has been flagged for additional review.',\n },\n reportView: {\n type: 'object',\n required: [\n 'id',\n 'reasonType',\n 'subject',\n 'reportedBy',\n 'createdAt',\n 'resolvedByActionIds',\n ],\n properties: {\n id: {\n type: 'integer',\n },\n reasonType: {\n type: 'ref',\n ref: 'lex:com.atproto.moderation.defs#reasonType',\n },\n reason: {\n type: 'string',\n },\n subject: {\n type: 'union',\n refs: [\n 'lex:com.atproto.admin.defs#repoRef',\n 'lex:com.atproto.repo.strongRef',\n ],\n },\n reportedBy: {\n type: 'string',\n format: 'did',\n },\n createdAt: {\n type: 'string',\n format: 'datetime',\n },\n resolvedByActionIds: {\n type: 'array',\n items: {\n type: 'integer',\n },\n },\n },\n },\n reportViewDetail: {\n type: 'object',\n required: [\n 'id',\n 'reasonType',\n 'subject',\n 'reportedBy',\n 'createdAt',\n 'resolvedByActions',\n ],\n properties: {\n id: {\n type: 'integer',\n },\n reasonType: {\n type: 'ref',\n ref: 'lex:com.atproto.moderation.defs#reasonType',\n },\n reason: {\n type: 'string',\n },\n subject: {\n type: 'union',\n refs: [\n 'lex:com.atproto.admin.defs#repoView',\n 'lex:com.atproto.admin.defs#recordView',\n ],\n },\n reportedBy: {\n type: 'string',\n format: 'did',\n },\n createdAt: {\n type: 'string',\n format: 'datetime',\n },\n resolvedByActions: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.defs#actionView',\n },\n },\n },\n },\n repoView: {\n type: 'object',\n required: [\n 'did',\n 'handle',\n 'relatedRecords',\n 'indexedAt',\n 'moderation',\n ],\n properties: {\n did: {\n type: 'string',\n format: 'did',\n },\n handle: {\n type: 'string',\n format: 'handle',\n },\n email: {\n type: 'string',\n },\n relatedRecords: {\n type: 'array',\n items: {\n type: 'unknown',\n },\n },\n indexedAt: {\n type: 'string',\n format: 'datetime',\n },\n moderation: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.defs#moderation',\n },\n invitedBy: {\n type: 'ref',\n ref: 'lex:com.atproto.server.defs#inviteCode',\n },\n invitesDisabled: {\n type: 'boolean',\n },\n },\n },\n repoViewDetail: {\n type: 'object',\n required: [\n 'did',\n 'handle',\n 'relatedRecords',\n 'indexedAt',\n 'moderation',\n ],\n properties: {\n did: {\n type: 'string',\n format: 'did',\n },\n handle: {\n type: 'string',\n format: 'handle',\n },\n email: {\n type: 'string',\n },\n relatedRecords: {\n type: 'array',\n items: {\n type: 'unknown',\n },\n },\n indexedAt: {\n type: 'string',\n format: 'datetime',\n },\n moderation: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.defs#moderationDetail',\n },\n labels: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:com.atproto.label.defs#label',\n },\n },\n invitedBy: {\n type: 'ref',\n ref: 'lex:com.atproto.server.defs#inviteCode',\n },\n invites: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:com.atproto.server.defs#inviteCode',\n },\n },\n invitesDisabled: {\n type: 'boolean',\n },\n },\n },\n repoRef: {\n type: 'object',\n required: ['did'],\n properties: {\n did: {\n type: 'string',\n format: 'did',\n },\n },\n },\n recordView: {\n type: 'object',\n required: [\n 'uri',\n 'cid',\n 'value',\n 'blobCids',\n 'indexedAt',\n 'moderation',\n 'repo',\n ],\n properties: {\n uri: {\n type: 'string',\n format: 'at-uri',\n },\n cid: {\n type: 'string',\n format: 'cid',\n },\n value: {\n type: 'unknown',\n },\n blobCids: {\n type: 'array',\n items: {\n type: 'string',\n format: 'cid',\n },\n },\n indexedAt: {\n type: 'string',\n format: 'datetime',\n },\n moderation: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.defs#moderation',\n },\n repo: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.defs#repoView',\n },\n },\n },\n recordViewDetail: {\n type: 'object',\n required: [\n 'uri',\n 'cid',\n 'value',\n 'blobs',\n 'indexedAt',\n 'moderation',\n 'repo',\n ],\n properties: {\n uri: {\n type: 'string',\n format: 'at-uri',\n },\n cid: {\n type: 'string',\n format: 'cid',\n },\n value: {\n type: 'unknown',\n },\n blobs: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.defs#blobView',\n },\n },\n labels: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:com.atproto.label.defs#label',\n },\n },\n indexedAt: {\n type: 'string',\n format: 'datetime',\n },\n moderation: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.defs#moderationDetail',\n },\n repo: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.defs#repoView',\n },\n },\n },\n moderation: {\n type: 'object',\n required: [],\n properties: {\n currentAction: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.defs#actionViewCurrent',\n },\n },\n },\n moderationDetail: {\n type: 'object',\n required: ['actions', 'reports'],\n properties: {\n currentAction: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.defs#actionViewCurrent',\n },\n actions: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.defs#actionView',\n },\n },\n reports: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.defs#reportView',\n },\n },\n },\n },\n blobView: {\n type: 'object',\n required: ['cid', 'mimeType', 'size', 'createdAt'],\n properties: {\n cid: {\n type: 'string',\n format: 'cid',\n },\n mimeType: {\n type: 'string',\n },\n size: {\n type: 'integer',\n },\n createdAt: {\n type: 'string',\n format: 'datetime',\n },\n details: {\n type: 'union',\n refs: [\n 'lex:com.atproto.admin.defs#imageDetails',\n 'lex:com.atproto.admin.defs#videoDetails',\n ],\n },\n moderation: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.defs#moderation',\n },\n },\n },\n imageDetails: {\n type: 'object',\n required: ['width', 'height'],\n properties: {\n width: {\n type: 'integer',\n },\n height: {\n type: 'integer',\n },\n },\n },\n videoDetails: {\n type: 'object',\n required: ['width', 'height', 'length'],\n properties: {\n width: {\n type: 'integer',\n },\n height: {\n type: 'integer',\n },\n length: {\n type: 'integer',\n },\n },\n },\n },\n },\n ComAtprotoAdminDisableAccountInvites: {\n lexicon: 1,\n id: 'com.atproto.admin.disableAccountInvites',\n defs: {\n main: {\n type: 'procedure',\n description:\n 'Disable an account from receiving new invite codes, but does not invalidate existing codes',\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['account'],\n properties: {\n account: {\n type: 'string',\n format: 'did',\n },\n },\n },\n },\n },\n },\n },\n ComAtprotoAdminDisableInviteCodes: {\n lexicon: 1,\n id: 'com.atproto.admin.disableInviteCodes',\n defs: {\n main: {\n type: 'procedure',\n description:\n 'Disable some set of codes and/or all codes associated with a set of users',\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n properties: {\n codes: {\n type: 'array',\n items: {\n type: 'string',\n },\n },\n accounts: {\n type: 'array',\n items: {\n type: 'string',\n },\n },\n },\n },\n },\n },\n },\n },\n ComAtprotoAdminEnableAccountInvites: {\n lexicon: 1,\n id: 'com.atproto.admin.enableAccountInvites',\n defs: {\n main: {\n type: 'procedure',\n description: 'Re-enable an accounts ability to receive invite codes',\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['account'],\n properties: {\n account: {\n type: 'string',\n format: 'did',\n },\n },\n },\n },\n },\n },\n },\n ComAtprotoAdminGetInviteCodes: {\n lexicon: 1,\n id: 'com.atproto.admin.getInviteCodes',\n defs: {\n main: {\n type: 'query',\n description: 'Admin view of invite codes',\n parameters: {\n type: 'params',\n properties: {\n sort: {\n type: 'string',\n knownValues: ['recent', 'usage'],\n default: 'recent',\n },\n limit: {\n type: 'integer',\n minimum: 1,\n maximum: 500,\n default: 100,\n },\n cursor: {\n type: 'string',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['codes'],\n properties: {\n cursor: {\n type: 'string',\n },\n codes: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:com.atproto.server.defs#inviteCode',\n },\n },\n },\n },\n },\n },\n },\n },\n ComAtprotoAdminGetModerationAction: {\n lexicon: 1,\n id: 'com.atproto.admin.getModerationAction',\n defs: {\n main: {\n type: 'query',\n description: 'View details about a moderation action.',\n parameters: {\n type: 'params',\n required: ['id'],\n properties: {\n id: {\n type: 'integer',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.defs#actionViewDetail',\n },\n },\n },\n },\n },\n ComAtprotoAdminGetModerationActions: {\n lexicon: 1,\n id: 'com.atproto.admin.getModerationActions',\n defs: {\n main: {\n type: 'query',\n description: 'List moderation actions related to a subject.',\n parameters: {\n type: 'params',\n properties: {\n subject: {\n type: 'string',\n },\n limit: {\n type: 'integer',\n minimum: 1,\n maximum: 100,\n default: 50,\n },\n cursor: {\n type: 'string',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['actions'],\n properties: {\n cursor: {\n type: 'string',\n },\n actions: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.defs#actionView',\n },\n },\n },\n },\n },\n },\n },\n },\n ComAtprotoAdminGetModerationReport: {\n lexicon: 1,\n id: 'com.atproto.admin.getModerationReport',\n defs: {\n main: {\n type: 'query',\n description: 'View details about a moderation report.',\n parameters: {\n type: 'params',\n required: ['id'],\n properties: {\n id: {\n type: 'integer',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.defs#reportViewDetail',\n },\n },\n },\n },\n },\n ComAtprotoAdminGetModerationReports: {\n lexicon: 1,\n id: 'com.atproto.admin.getModerationReports',\n defs: {\n main: {\n type: 'query',\n description: 'List moderation reports related to a subject.',\n parameters: {\n type: 'params',\n properties: {\n subject: {\n type: 'string',\n },\n resolved: {\n type: 'boolean',\n },\n limit: {\n type: 'integer',\n minimum: 1,\n maximum: 100,\n default: 50,\n },\n cursor: {\n type: 'string',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['reports'],\n properties: {\n cursor: {\n type: 'string',\n },\n reports: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.defs#reportView',\n },\n },\n },\n },\n },\n },\n },\n },\n ComAtprotoAdminGetRecord: {\n lexicon: 1,\n id: 'com.atproto.admin.getRecord',\n defs: {\n main: {\n type: 'query',\n description: 'View details about a record.',\n parameters: {\n type: 'params',\n required: ['uri'],\n properties: {\n uri: {\n type: 'string',\n format: 'at-uri',\n },\n cid: {\n type: 'string',\n format: 'cid',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.defs#recordViewDetail',\n },\n },\n },\n },\n },\n ComAtprotoAdminGetRepo: {\n lexicon: 1,\n id: 'com.atproto.admin.getRepo',\n defs: {\n main: {\n type: 'query',\n description: 'View details about a repository.',\n parameters: {\n type: 'params',\n required: ['did'],\n properties: {\n did: {\n type: 'string',\n format: 'did',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.defs#repoViewDetail',\n },\n },\n },\n },\n },\n ComAtprotoAdminResolveModerationReports: {\n lexicon: 1,\n id: 'com.atproto.admin.resolveModerationReports',\n defs: {\n main: {\n type: 'procedure',\n description: 'Resolve moderation reports by an action.',\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['actionId', 'reportIds', 'createdBy'],\n properties: {\n actionId: {\n type: 'integer',\n },\n reportIds: {\n type: 'array',\n items: {\n type: 'integer',\n },\n },\n createdBy: {\n type: 'string',\n format: 'did',\n },\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.defs#actionView',\n },\n },\n },\n },\n },\n ComAtprotoAdminReverseModerationAction: {\n lexicon: 1,\n id: 'com.atproto.admin.reverseModerationAction',\n defs: {\n main: {\n type: 'procedure',\n description: 'Reverse a moderation action.',\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['id', 'reason', 'createdBy'],\n properties: {\n id: {\n type: 'integer',\n },\n reason: {\n type: 'string',\n },\n createdBy: {\n type: 'string',\n format: 'did',\n },\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.defs#actionView',\n },\n },\n },\n },\n },\n ComAtprotoAdminSearchRepos: {\n lexicon: 1,\n id: 'com.atproto.admin.searchRepos',\n defs: {\n main: {\n type: 'query',\n description: 'Find repositories based on a search term.',\n parameters: {\n type: 'params',\n properties: {\n term: {\n type: 'string',\n },\n invitedBy: {\n type: 'string',\n },\n limit: {\n type: 'integer',\n minimum: 1,\n maximum: 100,\n default: 50,\n },\n cursor: {\n type: 'string',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['repos'],\n properties: {\n cursor: {\n type: 'string',\n },\n repos: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.defs#repoView',\n },\n },\n },\n },\n },\n },\n },\n },\n ComAtprotoAdminTakeModerationAction: {\n lexicon: 1,\n id: 'com.atproto.admin.takeModerationAction',\n defs: {\n main: {\n type: 'procedure',\n description: 'Take a moderation action on a repo.',\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['action', 'subject', 'reason', 'createdBy'],\n properties: {\n action: {\n type: 'string',\n knownValues: [\n 'com.atproto.admin.defs#takedown',\n 'com.atproto.admin.defs#flag',\n 'com.atproto.admin.defs#acknowledge',\n ],\n },\n subject: {\n type: 'union',\n refs: [\n 'lex:com.atproto.admin.defs#repoRef',\n 'lex:com.atproto.repo.strongRef',\n ],\n },\n subjectBlobCids: {\n type: 'array',\n items: {\n type: 'string',\n format: 'cid',\n },\n },\n createLabelVals: {\n type: 'array',\n items: {\n type: 'string',\n },\n },\n negateLabelVals: {\n type: 'array',\n items: {\n type: 'string',\n },\n },\n reason: {\n type: 'string',\n },\n createdBy: {\n type: 'string',\n format: 'did',\n },\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.defs#actionView',\n },\n },\n errors: [\n {\n name: 'SubjectHasAction',\n },\n ],\n },\n },\n },\n ComAtprotoAdminUpdateAccountEmail: {\n lexicon: 1,\n id: 'com.atproto.admin.updateAccountEmail',\n defs: {\n main: {\n type: 'procedure',\n description: \"Administrative action to update an account's email\",\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['account', 'email'],\n properties: {\n account: {\n type: 'string',\n format: 'at-identifier',\n description: 'The handle or DID of the repo.',\n },\n email: {\n type: 'string',\n },\n },\n },\n },\n },\n },\n },\n ComAtprotoAdminUpdateAccountHandle: {\n lexicon: 1,\n id: 'com.atproto.admin.updateAccountHandle',\n defs: {\n main: {\n type: 'procedure',\n description: \"Administrative action to update an account's handle\",\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['did', 'handle'],\n properties: {\n did: {\n type: 'string',\n format: 'did',\n },\n handle: {\n type: 'string',\n format: 'handle',\n },\n },\n },\n },\n },\n },\n },\n ComAtprotoIdentityResolveHandle: {\n lexicon: 1,\n id: 'com.atproto.identity.resolveHandle',\n defs: {\n main: {\n type: 'query',\n description: 'Provides the DID of a repo.',\n parameters: {\n type: 'params',\n properties: {\n handle: {\n type: 'string',\n format: 'handle',\n description:\n \"The handle to resolve. If not supplied, will resolve the host's own handle.\",\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['did'],\n properties: {\n did: {\n type: 'string',\n format: 'did',\n },\n },\n },\n },\n },\n },\n },\n ComAtprotoIdentityUpdateHandle: {\n lexicon: 1,\n id: 'com.atproto.identity.updateHandle',\n defs: {\n main: {\n type: 'procedure',\n description: 'Updates the handle of the account',\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['handle'],\n properties: {\n handle: {\n type: 'string',\n format: 'handle',\n },\n },\n },\n },\n },\n },\n },\n ComAtprotoLabelDefs: {\n lexicon: 1,\n id: 'com.atproto.label.defs',\n defs: {\n label: {\n type: 'object',\n description: 'Metadata tag on an atproto resource (eg, repo or record)',\n required: ['src', 'uri', 'val', 'cts'],\n properties: {\n src: {\n type: 'string',\n format: 'did',\n description: 'DID of the actor who created this label',\n },\n uri: {\n type: 'string',\n format: 'uri',\n description:\n 'AT URI of the record, repository (account), or other resource which this label applies to',\n },\n cid: {\n type: 'string',\n format: 'cid',\n description:\n \"optionally, CID specifying the specific version of 'uri' resource this label applies to\",\n },\n val: {\n type: 'string',\n maxLength: 128,\n description:\n 'the short string name of the value or type of this label',\n },\n neg: {\n type: 'boolean',\n description:\n 'if true, this is a negation label, overwriting a previous label',\n },\n cts: {\n type: 'string',\n format: 'datetime',\n description: 'timestamp when this label was created',\n },\n },\n },\n },\n },\n ComAtprotoLabelQueryLabels: {\n lexicon: 1,\n id: 'com.atproto.label.queryLabels',\n defs: {\n main: {\n type: 'query',\n description: 'Find labels relevant to the provided URI patterns.',\n parameters: {\n type: 'params',\n required: ['uriPatterns'],\n properties: {\n uriPatterns: {\n type: 'array',\n items: {\n type: 'string',\n },\n description:\n \"List of AT URI patterns to match (boolean 'OR'). Each may be a prefix (ending with '*'; will match inclusive of the string leading to '*'), or a full URI\",\n },\n sources: {\n type: 'array',\n items: {\n type: 'string',\n format: 'did',\n },\n description: 'Optional list of label sources (DIDs) to filter on',\n },\n limit: {\n type: 'integer',\n minimum: 1,\n maximum: 250,\n default: 50,\n },\n cursor: {\n type: 'string',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['labels'],\n properties: {\n cursor: {\n type: 'string',\n },\n labels: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:com.atproto.label.defs#label',\n },\n },\n },\n },\n },\n },\n },\n },\n ComAtprotoLabelSubscribeLabels: {\n lexicon: 1,\n id: 'com.atproto.label.subscribeLabels',\n defs: {\n main: {\n type: 'subscription',\n description: 'Subscribe to label updates',\n parameters: {\n type: 'params',\n properties: {\n cursor: {\n type: 'integer',\n description: 'The last known event to backfill from.',\n },\n },\n },\n message: {\n schema: {\n type: 'union',\n refs: [\n 'lex:com.atproto.label.subscribeLabels#labels',\n 'lex:com.atproto.label.subscribeLabels#info',\n ],\n },\n },\n errors: [\n {\n name: 'FutureCursor',\n },\n ],\n },\n labels: {\n type: 'object',\n required: ['seq', 'labels'],\n properties: {\n seq: {\n type: 'integer',\n },\n labels: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:com.atproto.label.defs#label',\n },\n },\n },\n },\n info: {\n type: 'object',\n required: ['name'],\n properties: {\n name: {\n type: 'string',\n knownValues: ['OutdatedCursor'],\n },\n message: {\n type: 'string',\n },\n },\n },\n },\n },\n ComAtprotoModerationCreateReport: {\n lexicon: 1,\n id: 'com.atproto.moderation.createReport',\n defs: {\n main: {\n type: 'procedure',\n description: 'Report a repo or a record.',\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['reasonType', 'subject'],\n properties: {\n reasonType: {\n type: 'ref',\n ref: 'lex:com.atproto.moderation.defs#reasonType',\n },\n reason: {\n type: 'string',\n },\n subject: {\n type: 'union',\n refs: [\n 'lex:com.atproto.admin.defs#repoRef',\n 'lex:com.atproto.repo.strongRef',\n ],\n },\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: [\n 'id',\n 'reasonType',\n 'subject',\n 'reportedBy',\n 'createdAt',\n ],\n properties: {\n id: {\n type: 'integer',\n },\n reasonType: {\n type: 'ref',\n ref: 'lex:com.atproto.moderation.defs#reasonType',\n },\n reason: {\n type: 'string',\n },\n subject: {\n type: 'union',\n refs: [\n 'lex:com.atproto.admin.defs#repoRef',\n 'lex:com.atproto.repo.strongRef',\n ],\n },\n reportedBy: {\n type: 'string',\n format: 'did',\n },\n createdAt: {\n type: 'string',\n format: 'datetime',\n },\n },\n },\n },\n },\n },\n },\n ComAtprotoModerationDefs: {\n lexicon: 1,\n id: 'com.atproto.moderation.defs',\n defs: {\n reasonType: {\n type: 'string',\n knownValues: [\n 'com.atproto.moderation.defs#reasonSpam',\n 'com.atproto.moderation.defs#reasonViolation',\n 'com.atproto.moderation.defs#reasonMisleading',\n 'com.atproto.moderation.defs#reasonSexual',\n 'com.atproto.moderation.defs#reasonRude',\n 'com.atproto.moderation.defs#reasonOther',\n ],\n },\n reasonSpam: {\n type: 'token',\n description: 'Spam: frequent unwanted promotion, replies, mentions',\n },\n reasonViolation: {\n type: 'token',\n description: 'Direct violation of server rules, laws, terms of service',\n },\n reasonMisleading: {\n type: 'token',\n description: 'Misleading identity, affiliation, or content',\n },\n reasonSexual: {\n type: 'token',\n description: 'Unwanted or mis-labeled sexual content',\n },\n reasonRude: {\n type: 'token',\n description:\n 'Rude, harassing, explicit, or otherwise unwelcoming behavior',\n },\n reasonOther: {\n type: 'token',\n description: 'Other: reports not falling under another report category',\n },\n },\n },\n ComAtprotoRepoApplyWrites: {\n lexicon: 1,\n id: 'com.atproto.repo.applyWrites',\n defs: {\n main: {\n type: 'procedure',\n description:\n 'Apply a batch transaction of creates, updates, and deletes.',\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['repo', 'writes'],\n properties: {\n repo: {\n type: 'string',\n format: 'at-identifier',\n description: 'The handle or DID of the repo.',\n },\n validate: {\n type: 'boolean',\n default: true,\n description: 'Validate the records?',\n },\n writes: {\n type: 'array',\n items: {\n type: 'union',\n refs: [\n 'lex:com.atproto.repo.applyWrites#create',\n 'lex:com.atproto.repo.applyWrites#update',\n 'lex:com.atproto.repo.applyWrites#delete',\n ],\n closed: true,\n },\n },\n swapCommit: {\n type: 'string',\n format: 'cid',\n },\n },\n },\n },\n errors: [\n {\n name: 'InvalidSwap',\n },\n ],\n },\n create: {\n type: 'object',\n description: 'Create a new record.',\n required: ['action', 'collection', 'value'],\n properties: {\n collection: {\n type: 'string',\n format: 'nsid',\n },\n rkey: {\n type: 'string',\n },\n value: {\n type: 'unknown',\n },\n },\n },\n update: {\n type: 'object',\n description: 'Update an existing record.',\n required: ['action', 'collection', 'rkey', 'value'],\n properties: {\n collection: {\n type: 'string',\n format: 'nsid',\n },\n rkey: {\n type: 'string',\n },\n value: {\n type: 'unknown',\n },\n },\n },\n delete: {\n type: 'object',\n description: 'Delete an existing record.',\n required: ['action', 'collection', 'rkey'],\n properties: {\n collection: {\n type: 'string',\n format: 'nsid',\n },\n rkey: {\n type: 'string',\n },\n },\n },\n },\n },\n ComAtprotoRepoCreateRecord: {\n lexicon: 1,\n id: 'com.atproto.repo.createRecord',\n defs: {\n main: {\n type: 'procedure',\n description: 'Create a new record.',\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['repo', 'collection', 'record'],\n properties: {\n repo: {\n type: 'string',\n format: 'at-identifier',\n description: 'The handle or DID of the repo.',\n },\n collection: {\n type: 'string',\n format: 'nsid',\n description: 'The NSID of the record collection.',\n },\n rkey: {\n type: 'string',\n description: 'The key of the record.',\n },\n validate: {\n type: 'boolean',\n default: true,\n description: 'Validate the record?',\n },\n record: {\n type: 'unknown',\n description: 'The record to create.',\n },\n swapCommit: {\n type: 'string',\n format: 'cid',\n description:\n 'Compare and swap with the previous commit by cid.',\n },\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['uri', 'cid'],\n properties: {\n uri: {\n type: 'string',\n format: 'at-uri',\n },\n cid: {\n type: 'string',\n format: 'cid',\n },\n },\n },\n },\n errors: [\n {\n name: 'InvalidSwap',\n },\n ],\n },\n },\n },\n ComAtprotoRepoDeleteRecord: {\n lexicon: 1,\n id: 'com.atproto.repo.deleteRecord',\n defs: {\n main: {\n type: 'procedure',\n description: \"Delete a record, or ensure it doesn't exist.\",\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['repo', 'collection', 'rkey'],\n properties: {\n repo: {\n type: 'string',\n format: 'at-identifier',\n description: 'The handle or DID of the repo.',\n },\n collection: {\n type: 'string',\n format: 'nsid',\n description: 'The NSID of the record collection.',\n },\n rkey: {\n type: 'string',\n description: 'The key of the record.',\n },\n swapRecord: {\n type: 'string',\n format: 'cid',\n description:\n 'Compare and swap with the previous record by cid.',\n },\n swapCommit: {\n type: 'string',\n format: 'cid',\n description:\n 'Compare and swap with the previous commit by cid.',\n },\n },\n },\n },\n errors: [\n {\n name: 'InvalidSwap',\n },\n ],\n },\n },\n },\n ComAtprotoRepoDescribeRepo: {\n lexicon: 1,\n id: 'com.atproto.repo.describeRepo',\n defs: {\n main: {\n type: 'query',\n description:\n 'Get information about the repo, including the list of collections.',\n parameters: {\n type: 'params',\n required: ['repo'],\n properties: {\n repo: {\n type: 'string',\n format: 'at-identifier',\n description: 'The handle or DID of the repo.',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: [\n 'handle',\n 'did',\n 'didDoc',\n 'collections',\n 'handleIsCorrect',\n ],\n properties: {\n handle: {\n type: 'string',\n format: 'handle',\n },\n did: {\n type: 'string',\n format: 'did',\n },\n didDoc: {\n type: 'unknown',\n },\n collections: {\n type: 'array',\n items: {\n type: 'string',\n format: 'nsid',\n },\n },\n handleIsCorrect: {\n type: 'boolean',\n },\n },\n },\n },\n },\n },\n },\n ComAtprotoRepoGetRecord: {\n lexicon: 1,\n id: 'com.atproto.repo.getRecord',\n defs: {\n main: {\n type: 'query',\n description: 'Get a record.',\n parameters: {\n type: 'params',\n required: ['repo', 'collection', 'rkey'],\n properties: {\n repo: {\n type: 'string',\n format: 'at-identifier',\n description: 'The handle or DID of the repo.',\n },\n collection: {\n type: 'string',\n format: 'nsid',\n description: 'The NSID of the record collection.',\n },\n rkey: {\n type: 'string',\n description: 'The key of the record.',\n },\n cid: {\n type: 'string',\n format: 'cid',\n description:\n 'The CID of the version of the record. If not specified, then return the most recent version.',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['uri', 'value'],\n properties: {\n uri: {\n type: 'string',\n format: 'at-uri',\n },\n cid: {\n type: 'string',\n format: 'cid',\n },\n value: {\n type: 'unknown',\n },\n },\n },\n },\n },\n },\n },\n ComAtprotoRepoListRecords: {\n lexicon: 1,\n id: 'com.atproto.repo.listRecords',\n defs: {\n main: {\n type: 'query',\n description: 'List a range of records in a collection.',\n parameters: {\n type: 'params',\n required: ['repo', 'collection'],\n properties: {\n repo: {\n type: 'string',\n format: 'at-identifier',\n description: 'The handle or DID of the repo.',\n },\n collection: {\n type: 'string',\n format: 'nsid',\n description: 'The NSID of the record type.',\n },\n limit: {\n type: 'integer',\n minimum: 1,\n maximum: 100,\n default: 50,\n description: 'The number of records to return.',\n },\n cursor: {\n type: 'string',\n },\n rkeyStart: {\n type: 'string',\n description:\n 'DEPRECATED: The lowest sort-ordered rkey to start from (exclusive)',\n },\n rkeyEnd: {\n type: 'string',\n description:\n 'DEPRECATED: The highest sort-ordered rkey to stop at (exclusive)',\n },\n reverse: {\n type: 'boolean',\n description: 'Reverse the order of the returned records?',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['records'],\n properties: {\n cursor: {\n type: 'string',\n },\n records: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:com.atproto.repo.listRecords#record',\n },\n },\n },\n },\n },\n },\n record: {\n type: 'object',\n required: ['uri', 'cid', 'value'],\n properties: {\n uri: {\n type: 'string',\n format: 'at-uri',\n },\n cid: {\n type: 'string',\n format: 'cid',\n },\n value: {\n type: 'unknown',\n },\n },\n },\n },\n },\n ComAtprotoRepoPutRecord: {\n lexicon: 1,\n id: 'com.atproto.repo.putRecord',\n defs: {\n main: {\n type: 'procedure',\n description: 'Write a record, creating or updating it as needed.',\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['repo', 'collection', 'rkey', 'record'],\n nullable: ['swapRecord'],\n properties: {\n repo: {\n type: 'string',\n format: 'at-identifier',\n description: 'The handle or DID of the repo.',\n },\n collection: {\n type: 'string',\n format: 'nsid',\n description: 'The NSID of the record collection.',\n },\n rkey: {\n type: 'string',\n description: 'The key of the record.',\n },\n validate: {\n type: 'boolean',\n default: true,\n description: 'Validate the record?',\n },\n record: {\n type: 'unknown',\n description: 'The record to write.',\n },\n swapRecord: {\n type: 'string',\n format: 'cid',\n description:\n 'Compare and swap with the previous record by cid.',\n },\n swapCommit: {\n type: 'string',\n format: 'cid',\n description:\n 'Compare and swap with the previous commit by cid.',\n },\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['uri', 'cid'],\n properties: {\n uri: {\n type: 'string',\n format: 'at-uri',\n },\n cid: {\n type: 'string',\n format: 'cid',\n },\n },\n },\n },\n errors: [\n {\n name: 'InvalidSwap',\n },\n ],\n },\n },\n },\n ComAtprotoRepoRebaseRepo: {\n lexicon: 1,\n id: 'com.atproto.repo.rebaseRepo',\n defs: {\n main: {\n type: 'procedure',\n description: 'Simple rebase of repo that deletes history',\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['repo'],\n properties: {\n repo: {\n type: 'string',\n format: 'at-identifier',\n description: 'The handle or DID of the repo.',\n },\n swapCommit: {\n type: 'string',\n format: 'cid',\n description:\n 'Compare and swap with the previous commit by cid.',\n },\n },\n },\n },\n errors: [\n {\n name: 'InvalidSwap',\n },\n ],\n },\n },\n },\n ComAtprotoRepoStrongRef: {\n lexicon: 1,\n id: 'com.atproto.repo.strongRef',\n description: 'A URI with a content-hash fingerprint.',\n defs: {\n main: {\n type: 'object',\n required: ['uri', 'cid'],\n properties: {\n uri: {\n type: 'string',\n format: 'at-uri',\n },\n cid: {\n type: 'string',\n format: 'cid',\n },\n },\n },\n },\n },\n ComAtprotoRepoUploadBlob: {\n lexicon: 1,\n id: 'com.atproto.repo.uploadBlob',\n defs: {\n main: {\n type: 'procedure',\n description:\n 'Upload a new blob to be added to repo in a later request.',\n input: {\n encoding: '*/*',\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['blob'],\n properties: {\n blob: {\n type: 'blob',\n },\n },\n },\n },\n },\n },\n },\n ComAtprotoServerCreateAccount: {\n lexicon: 1,\n id: 'com.atproto.server.createAccount',\n defs: {\n main: {\n type: 'procedure',\n description: 'Create an account.',\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['handle', 'email', 'password'],\n properties: {\n email: {\n type: 'string',\n },\n handle: {\n type: 'string',\n format: 'handle',\n },\n inviteCode: {\n type: 'string',\n },\n password: {\n type: 'string',\n },\n recoveryKey: {\n type: 'string',\n },\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['accessJwt', 'refreshJwt', 'handle', 'did'],\n properties: {\n accessJwt: {\n type: 'string',\n },\n refreshJwt: {\n type: 'string',\n },\n handle: {\n type: 'string',\n format: 'handle',\n },\n did: {\n type: 'string',\n format: 'did',\n },\n },\n },\n },\n errors: [\n {\n name: 'InvalidHandle',\n },\n {\n name: 'InvalidPassword',\n },\n {\n name: 'InvalidInviteCode',\n },\n {\n name: 'HandleNotAvailable',\n },\n {\n name: 'UnsupportedDomain',\n },\n ],\n },\n },\n },\n ComAtprotoServerCreateAppPassword: {\n lexicon: 1,\n id: 'com.atproto.server.createAppPassword',\n defs: {\n main: {\n type: 'procedure',\n description: 'Create an app-specific password.',\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['name'],\n properties: {\n name: {\n type: 'string',\n },\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'ref',\n ref: 'lex:com.atproto.server.createAppPassword#appPassword',\n },\n },\n errors: [\n {\n name: 'AccountTakedown',\n },\n ],\n },\n appPassword: {\n type: 'object',\n required: ['name', 'password', 'createdAt'],\n properties: {\n name: {\n type: 'string',\n },\n password: {\n type: 'string',\n },\n createdAt: {\n type: 'string',\n format: 'datetime',\n },\n },\n },\n },\n },\n ComAtprotoServerCreateInviteCode: {\n lexicon: 1,\n id: 'com.atproto.server.createInviteCode',\n defs: {\n main: {\n type: 'procedure',\n description: 'Create an invite code.',\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['useCount'],\n properties: {\n useCount: {\n type: 'integer',\n },\n forAccount: {\n type: 'string',\n format: 'did',\n },\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['code'],\n properties: {\n code: {\n type: 'string',\n },\n },\n },\n },\n },\n },\n },\n ComAtprotoServerCreateInviteCodes: {\n lexicon: 1,\n id: 'com.atproto.server.createInviteCodes',\n defs: {\n main: {\n type: 'procedure',\n description: 'Create an invite code.',\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['codeCount', 'useCount'],\n properties: {\n codeCount: {\n type: 'integer',\n default: 1,\n },\n useCount: {\n type: 'integer',\n },\n forAccounts: {\n type: 'array',\n items: {\n type: 'string',\n format: 'did',\n },\n },\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['codes'],\n properties: {\n codes: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:com.atproto.server.createInviteCodes#accountCodes',\n },\n },\n },\n },\n },\n },\n accountCodes: {\n type: 'object',\n required: ['account', 'codes'],\n properties: {\n account: {\n type: 'string',\n },\n codes: {\n type: 'array',\n items: {\n type: 'string',\n },\n },\n },\n },\n },\n },\n ComAtprotoServerCreateSession: {\n lexicon: 1,\n id: 'com.atproto.server.createSession',\n defs: {\n main: {\n type: 'procedure',\n description: 'Create an authentication session.',\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['identifier', 'password'],\n properties: {\n identifier: {\n type: 'string',\n description:\n 'Handle or other identifier supported by the server for the authenticating user.',\n },\n password: {\n type: 'string',\n },\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['accessJwt', 'refreshJwt', 'handle', 'did'],\n properties: {\n accessJwt: {\n type: 'string',\n },\n refreshJwt: {\n type: 'string',\n },\n handle: {\n type: 'string',\n format: 'handle',\n },\n did: {\n type: 'string',\n format: 'did',\n },\n email: {\n type: 'string',\n },\n },\n },\n },\n errors: [\n {\n name: 'AccountTakedown',\n },\n ],\n },\n },\n },\n ComAtprotoServerDefs: {\n lexicon: 1,\n id: 'com.atproto.server.defs',\n defs: {\n inviteCode: {\n type: 'object',\n required: [\n 'code',\n 'available',\n 'disabled',\n 'forAccount',\n 'createdBy',\n 'createdAt',\n 'uses',\n ],\n properties: {\n code: {\n type: 'string',\n },\n available: {\n type: 'integer',\n },\n disabled: {\n type: 'boolean',\n },\n forAccount: {\n type: 'string',\n },\n createdBy: {\n type: 'string',\n },\n createdAt: {\n type: 'string',\n format: 'datetime',\n },\n uses: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:com.atproto.server.defs#inviteCodeUse',\n },\n },\n },\n },\n inviteCodeUse: {\n type: 'object',\n required: ['usedBy', 'usedAt'],\n properties: {\n usedBy: {\n type: 'string',\n format: 'did',\n },\n usedAt: {\n type: 'string',\n format: 'datetime',\n },\n },\n },\n },\n },\n ComAtprotoServerDeleteAccount: {\n lexicon: 1,\n id: 'com.atproto.server.deleteAccount',\n defs: {\n main: {\n type: 'procedure',\n description: 'Delete a user account with a token and password.',\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['did', 'password', 'token'],\n properties: {\n did: {\n type: 'string',\n format: 'did',\n },\n password: {\n type: 'string',\n },\n token: {\n type: 'string',\n },\n },\n },\n },\n errors: [\n {\n name: 'ExpiredToken',\n },\n {\n name: 'InvalidToken',\n },\n ],\n },\n },\n },\n ComAtprotoServerDeleteSession: {\n lexicon: 1,\n id: 'com.atproto.server.deleteSession',\n defs: {\n main: {\n type: 'procedure',\n description: 'Delete the current session.',\n },\n },\n },\n ComAtprotoServerDescribeServer: {\n lexicon: 1,\n id: 'com.atproto.server.describeServer',\n defs: {\n main: {\n type: 'query',\n description:\n \"Get a document describing the service's accounts configuration.\",\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['availableUserDomains'],\n properties: {\n inviteCodeRequired: {\n type: 'boolean',\n },\n availableUserDomains: {\n type: 'array',\n items: {\n type: 'string',\n },\n },\n links: {\n type: 'ref',\n ref: 'lex:com.atproto.server.describeServer#links',\n },\n },\n },\n },\n },\n links: {\n type: 'object',\n properties: {\n privacyPolicy: {\n type: 'string',\n },\n termsOfService: {\n type: 'string',\n },\n },\n },\n },\n },\n ComAtprotoServerGetAccountInviteCodes: {\n lexicon: 1,\n id: 'com.atproto.server.getAccountInviteCodes',\n defs: {\n main: {\n type: 'query',\n description: 'Get all invite codes for a given account',\n parameters: {\n type: 'params',\n properties: {\n includeUsed: {\n type: 'boolean',\n default: true,\n },\n createAvailable: {\n type: 'boolean',\n default: true,\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['codes'],\n properties: {\n codes: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:com.atproto.server.defs#inviteCode',\n },\n },\n },\n },\n },\n errors: [\n {\n name: 'DuplicateCreate',\n },\n ],\n },\n },\n },\n ComAtprotoServerGetSession: {\n lexicon: 1,\n id: 'com.atproto.server.getSession',\n defs: {\n main: {\n type: 'query',\n description: 'Get information about the current session.',\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['handle', 'did'],\n properties: {\n handle: {\n type: 'string',\n format: 'handle',\n },\n did: {\n type: 'string',\n format: 'did',\n },\n email: {\n type: 'string',\n },\n },\n },\n },\n },\n },\n },\n ComAtprotoServerListAppPasswords: {\n lexicon: 1,\n id: 'com.atproto.server.listAppPasswords',\n defs: {\n main: {\n type: 'query',\n description: 'List all app-specific passwords.',\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['passwords'],\n properties: {\n passwords: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:com.atproto.server.listAppPasswords#appPassword',\n },\n },\n },\n },\n },\n errors: [\n {\n name: 'AccountTakedown',\n },\n ],\n },\n appPassword: {\n type: 'object',\n required: ['name', 'createdAt'],\n properties: {\n name: {\n type: 'string',\n },\n createdAt: {\n type: 'string',\n format: 'datetime',\n },\n },\n },\n },\n },\n ComAtprotoServerRefreshSession: {\n lexicon: 1,\n id: 'com.atproto.server.refreshSession',\n defs: {\n main: {\n type: 'procedure',\n description: 'Refresh an authentication session.',\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['accessJwt', 'refreshJwt', 'handle', 'did'],\n properties: {\n accessJwt: {\n type: 'string',\n },\n refreshJwt: {\n type: 'string',\n },\n handle: {\n type: 'string',\n format: 'handle',\n },\n did: {\n type: 'string',\n format: 'did',\n },\n },\n },\n },\n errors: [\n {\n name: 'AccountTakedown',\n },\n ],\n },\n },\n },\n ComAtprotoServerRequestAccountDelete: {\n lexicon: 1,\n id: 'com.atproto.server.requestAccountDelete',\n defs: {\n main: {\n type: 'procedure',\n description: 'Initiate a user account deletion via email.',\n },\n },\n },\n ComAtprotoServerRequestPasswordReset: {\n lexicon: 1,\n id: 'com.atproto.server.requestPasswordReset',\n defs: {\n main: {\n type: 'procedure',\n description: 'Initiate a user account password reset via email.',\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['email'],\n properties: {\n email: {\n type: 'string',\n },\n },\n },\n },\n },\n },\n },\n ComAtprotoServerResetPassword: {\n lexicon: 1,\n id: 'com.atproto.server.resetPassword',\n defs: {\n main: {\n type: 'procedure',\n description: 'Reset a user account password using a token.',\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['token', 'password'],\n properties: {\n token: {\n type: 'string',\n },\n password: {\n type: 'string',\n },\n },\n },\n },\n errors: [\n {\n name: 'ExpiredToken',\n },\n {\n name: 'InvalidToken',\n },\n ],\n },\n },\n },\n ComAtprotoServerRevokeAppPassword: {\n lexicon: 1,\n id: 'com.atproto.server.revokeAppPassword',\n defs: {\n main: {\n type: 'procedure',\n description: 'Revoke an app-specific password by name.',\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['name'],\n properties: {\n name: {\n type: 'string',\n },\n },\n },\n },\n },\n },\n },\n ComAtprotoSyncGetBlob: {\n lexicon: 1,\n id: 'com.atproto.sync.getBlob',\n defs: {\n main: {\n type: 'query',\n description: 'Get a blob associated with a given repo.',\n parameters: {\n type: 'params',\n required: ['did', 'cid'],\n properties: {\n did: {\n type: 'string',\n format: 'did',\n description: 'The DID of the repo.',\n },\n cid: {\n type: 'string',\n format: 'cid',\n description: 'The CID of the blob to fetch',\n },\n },\n },\n output: {\n encoding: '*/*',\n },\n },\n },\n },\n ComAtprotoSyncGetBlocks: {\n lexicon: 1,\n id: 'com.atproto.sync.getBlocks',\n defs: {\n main: {\n type: 'query',\n description: 'Gets blocks from a given repo.',\n parameters: {\n type: 'params',\n required: ['did', 'cids'],\n properties: {\n did: {\n type: 'string',\n format: 'did',\n description: 'The DID of the repo.',\n },\n cids: {\n type: 'array',\n items: {\n type: 'string',\n format: 'cid',\n },\n },\n },\n },\n output: {\n encoding: 'application/vnd.ipld.car',\n },\n },\n },\n },\n ComAtprotoSyncGetCheckout: {\n lexicon: 1,\n id: 'com.atproto.sync.getCheckout',\n defs: {\n main: {\n type: 'query',\n description: 'Gets the repo state.',\n parameters: {\n type: 'params',\n required: ['did'],\n properties: {\n did: {\n type: 'string',\n format: 'did',\n description: 'The DID of the repo.',\n },\n commit: {\n type: 'string',\n format: 'cid',\n description:\n 'The commit to get the checkout from. Defaults to current HEAD.',\n },\n },\n },\n output: {\n encoding: 'application/vnd.ipld.car',\n },\n },\n },\n },\n ComAtprotoSyncGetCommitPath: {\n lexicon: 1,\n id: 'com.atproto.sync.getCommitPath',\n defs: {\n main: {\n type: 'query',\n description: 'Gets the path of repo commits',\n parameters: {\n type: 'params',\n required: ['did'],\n properties: {\n did: {\n type: 'string',\n format: 'did',\n description: 'The DID of the repo.',\n },\n latest: {\n type: 'string',\n format: 'cid',\n description: 'The most recent commit',\n },\n earliest: {\n type: 'string',\n format: 'cid',\n description: 'The earliest commit to start from',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['commits'],\n properties: {\n commits: {\n type: 'array',\n items: {\n type: 'string',\n format: 'cid',\n },\n },\n },\n },\n },\n },\n },\n },\n ComAtprotoSyncGetHead: {\n lexicon: 1,\n id: 'com.atproto.sync.getHead',\n defs: {\n main: {\n type: 'query',\n description: 'Gets the current HEAD CID of a repo.',\n parameters: {\n type: 'params',\n required: ['did'],\n properties: {\n did: {\n type: 'string',\n format: 'did',\n description: 'The DID of the repo.',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['root'],\n properties: {\n root: {\n type: 'string',\n format: 'cid',\n },\n },\n },\n },\n },\n },\n },\n ComAtprotoSyncGetRecord: {\n lexicon: 1,\n id: 'com.atproto.sync.getRecord',\n defs: {\n main: {\n type: 'query',\n description:\n 'Gets blocks needed for existence or non-existence of record.',\n parameters: {\n type: 'params',\n required: ['did', 'collection', 'rkey'],\n properties: {\n did: {\n type: 'string',\n format: 'did',\n description: 'The DID of the repo.',\n },\n collection: {\n type: 'string',\n format: 'nsid',\n },\n rkey: {\n type: 'string',\n },\n commit: {\n type: 'string',\n format: 'cid',\n description: 'An optional past commit CID.',\n },\n },\n },\n output: {\n encoding: 'application/vnd.ipld.car',\n },\n },\n },\n },\n ComAtprotoSyncGetRepo: {\n lexicon: 1,\n id: 'com.atproto.sync.getRepo',\n defs: {\n main: {\n type: 'query',\n description: 'Gets the repo state.',\n parameters: {\n type: 'params',\n required: ['did'],\n properties: {\n did: {\n type: 'string',\n format: 'did',\n description: 'The DID of the repo.',\n },\n earliest: {\n type: 'string',\n format: 'cid',\n description:\n 'The earliest commit in the commit range (not inclusive)',\n },\n latest: {\n type: 'string',\n format: 'cid',\n description: 'The latest commit in the commit range (inclusive)',\n },\n },\n },\n output: {\n encoding: 'application/vnd.ipld.car',\n },\n },\n },\n },\n ComAtprotoSyncListBlobs: {\n lexicon: 1,\n id: 'com.atproto.sync.listBlobs',\n defs: {\n main: {\n type: 'query',\n description: 'List blob cids for some range of commits',\n parameters: {\n type: 'params',\n required: ['did'],\n properties: {\n did: {\n type: 'string',\n format: 'did',\n description: 'The DID of the repo.',\n },\n latest: {\n type: 'string',\n format: 'cid',\n description: 'The most recent commit',\n },\n earliest: {\n type: 'string',\n format: 'cid',\n description: 'The earliest commit to start from',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['cids'],\n properties: {\n cids: {\n type: 'array',\n items: {\n type: 'string',\n format: 'cid',\n },\n },\n },\n },\n },\n },\n },\n },\n ComAtprotoSyncListRepos: {\n lexicon: 1,\n id: 'com.atproto.sync.listRepos',\n defs: {\n main: {\n type: 'query',\n description: 'List dids and root cids of hosted repos',\n parameters: {\n type: 'params',\n properties: {\n limit: {\n type: 'integer',\n minimum: 1,\n maximum: 1000,\n default: 500,\n },\n cursor: {\n type: 'string',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['repos'],\n properties: {\n cursor: {\n type: 'string',\n },\n repos: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:com.atproto.sync.listRepos#repo',\n },\n },\n },\n },\n },\n },\n repo: {\n type: 'object',\n required: ['did', 'head'],\n properties: {\n did: {\n type: 'string',\n format: 'did',\n },\n head: {\n type: 'string',\n format: 'cid',\n },\n },\n },\n },\n },\n ComAtprotoSyncNotifyOfUpdate: {\n lexicon: 1,\n id: 'com.atproto.sync.notifyOfUpdate',\n defs: {\n main: {\n type: 'query',\n description:\n 'Notify a crawling service of a recent update. Often when a long break between updates causes the connection with the crawling service to break.',\n parameters: {\n type: 'params',\n required: ['hostname'],\n properties: {\n hostname: {\n type: 'string',\n description:\n 'Hostname of the service that is notifying of update.',\n },\n },\n },\n },\n },\n },\n ComAtprotoSyncRequestCrawl: {\n lexicon: 1,\n id: 'com.atproto.sync.requestCrawl',\n defs: {\n main: {\n type: 'query',\n description: 'Request a service to persistently crawl hosted repos.',\n parameters: {\n type: 'params',\n required: ['hostname'],\n properties: {\n hostname: {\n type: 'string',\n description:\n 'Hostname of the service that is requesting to be crawled.',\n },\n },\n },\n },\n },\n },\n ComAtprotoSyncSubscribeRepos: {\n lexicon: 1,\n id: 'com.atproto.sync.subscribeRepos',\n defs: {\n main: {\n type: 'subscription',\n description: 'Subscribe to repo updates',\n parameters: {\n type: 'params',\n properties: {\n cursor: {\n type: 'integer',\n description: 'The last known event to backfill from.',\n },\n },\n },\n message: {\n schema: {\n type: 'union',\n refs: [\n 'lex:com.atproto.sync.subscribeRepos#commit',\n 'lex:com.atproto.sync.subscribeRepos#handle',\n 'lex:com.atproto.sync.subscribeRepos#migrate',\n 'lex:com.atproto.sync.subscribeRepos#tombstone',\n 'lex:com.atproto.sync.subscribeRepos#info',\n ],\n },\n },\n errors: [\n {\n name: 'FutureCursor',\n },\n ],\n },\n commit: {\n type: 'object',\n required: [\n 'seq',\n 'rebase',\n 'tooBig',\n 'repo',\n 'commit',\n 'prev',\n 'blocks',\n 'ops',\n 'blobs',\n 'time',\n ],\n nullable: ['prev'],\n properties: {\n seq: {\n type: 'integer',\n },\n rebase: {\n type: 'boolean',\n },\n tooBig: {\n type: 'boolean',\n },\n repo: {\n type: 'string',\n format: 'did',\n },\n commit: {\n type: 'cid-link',\n },\n prev: {\n type: 'cid-link',\n },\n blocks: {\n type: 'bytes',\n description: 'CAR file containing relevant blocks',\n maxLength: 1000000,\n },\n ops: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:com.atproto.sync.subscribeRepos#repoOp',\n },\n maxLength: 200,\n },\n blobs: {\n type: 'array',\n items: {\n type: 'cid-link',\n },\n },\n time: {\n type: 'string',\n format: 'datetime',\n },\n },\n },\n handle: {\n type: 'object',\n required: ['seq', 'did', 'handle', 'time'],\n properties: {\n seq: {\n type: 'integer',\n },\n did: {\n type: 'string',\n format: 'did',\n },\n handle: {\n type: 'string',\n format: 'handle',\n },\n time: {\n type: 'string',\n format: 'datetime',\n },\n },\n },\n migrate: {\n type: 'object',\n required: ['seq', 'did', 'migrateTo', 'time'],\n nullable: ['migrateTo'],\n properties: {\n seq: {\n type: 'integer',\n },\n did: {\n type: 'string',\n format: 'did',\n },\n migrateTo: {\n type: 'string',\n },\n time: {\n type: 'string',\n format: 'datetime',\n },\n },\n },\n tombstone: {\n type: 'object',\n required: ['seq', 'did', 'time'],\n properties: {\n seq: {\n type: 'integer',\n },\n did: {\n type: 'string',\n format: 'did',\n },\n time: {\n type: 'string',\n format: 'datetime',\n },\n },\n },\n info: {\n type: 'object',\n required: ['name'],\n properties: {\n name: {\n type: 'string',\n knownValues: ['OutdatedCursor'],\n },\n message: {\n type: 'string',\n },\n },\n },\n repoOp: {\n type: 'object',\n required: ['action', 'path', 'cid'],\n nullable: ['cid'],\n properties: {\n action: {\n type: 'string',\n knownValues: ['create', 'update', 'delete'],\n },\n path: {\n type: 'string',\n },\n cid: {\n type: 'cid-link',\n },\n },\n },\n },\n },\n AppBskyActorDefs: {\n lexicon: 1,\n id: 'app.bsky.actor.defs',\n description: 'A reference to an actor in the network.',\n defs: {\n profileViewBasic: {\n type: 'object',\n required: ['did', 'handle'],\n properties: {\n did: {\n type: 'string',\n format: 'did',\n },\n handle: {\n type: 'string',\n format: 'handle',\n },\n displayName: {\n type: 'string',\n maxGraphemes: 64,\n maxLength: 640,\n },\n avatar: {\n type: 'string',\n },\n viewer: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.defs#viewerState',\n },\n labels: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:com.atproto.label.defs#label',\n },\n },\n },\n },\n profileView: {\n type: 'object',\n required: ['did', 'handle'],\n properties: {\n did: {\n type: 'string',\n format: 'did',\n },\n handle: {\n type: 'string',\n format: 'handle',\n },\n displayName: {\n type: 'string',\n maxGraphemes: 64,\n maxLength: 640,\n },\n description: {\n type: 'string',\n maxGraphemes: 256,\n maxLength: 2560,\n },\n avatar: {\n type: 'string',\n },\n indexedAt: {\n type: 'string',\n format: 'datetime',\n },\n viewer: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.defs#viewerState',\n },\n labels: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:com.atproto.label.defs#label',\n },\n },\n },\n },\n profileViewDetailed: {\n type: 'object',\n required: ['did', 'handle'],\n properties: {\n did: {\n type: 'string',\n format: 'did',\n },\n handle: {\n type: 'string',\n format: 'handle',\n },\n displayName: {\n type: 'string',\n maxGraphemes: 64,\n maxLength: 640,\n },\n description: {\n type: 'string',\n maxGraphemes: 256,\n maxLength: 2560,\n },\n avatar: {\n type: 'string',\n },\n banner: {\n type: 'string',\n },\n followersCount: {\n type: 'integer',\n },\n followsCount: {\n type: 'integer',\n },\n postsCount: {\n type: 'integer',\n },\n indexedAt: {\n type: 'string',\n format: 'datetime',\n },\n viewer: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.defs#viewerState',\n },\n labels: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:com.atproto.label.defs#label',\n },\n },\n },\n },\n viewerState: {\n type: 'object',\n properties: {\n muted: {\n type: 'boolean',\n },\n mutedByList: {\n type: 'ref',\n ref: 'lex:app.bsky.graph.defs#listViewBasic',\n },\n blockedBy: {\n type: 'boolean',\n },\n blocking: {\n type: 'string',\n format: 'at-uri',\n },\n following: {\n type: 'string',\n format: 'at-uri',\n },\n followedBy: {\n type: 'string',\n format: 'at-uri',\n },\n },\n },\n },\n },\n AppBskyActorGetProfile: {\n lexicon: 1,\n id: 'app.bsky.actor.getProfile',\n defs: {\n main: {\n type: 'query',\n parameters: {\n type: 'params',\n required: ['actor'],\n properties: {\n actor: {\n type: 'string',\n format: 'at-identifier',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.defs#profileViewDetailed',\n },\n },\n },\n },\n },\n AppBskyActorGetProfiles: {\n lexicon: 1,\n id: 'app.bsky.actor.getProfiles',\n defs: {\n main: {\n type: 'query',\n parameters: {\n type: 'params',\n required: ['actors'],\n properties: {\n actors: {\n type: 'array',\n items: {\n type: 'string',\n format: 'at-identifier',\n },\n maxLength: 25,\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['profiles'],\n properties: {\n profiles: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.defs#profileViewDetailed',\n },\n },\n },\n },\n },\n },\n },\n },\n AppBskyActorGetSuggestions: {\n lexicon: 1,\n id: 'app.bsky.actor.getSuggestions',\n defs: {\n main: {\n type: 'query',\n description:\n 'Get a list of actors suggested for following. Used in discovery UIs.',\n parameters: {\n type: 'params',\n properties: {\n limit: {\n type: 'integer',\n minimum: 1,\n maximum: 100,\n default: 50,\n },\n cursor: {\n type: 'string',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['actors'],\n properties: {\n cursor: {\n type: 'string',\n },\n actors: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.defs#profileView',\n },\n },\n },\n },\n },\n },\n },\n },\n AppBskyActorProfile: {\n lexicon: 1,\n id: 'app.bsky.actor.profile',\n defs: {\n main: {\n type: 'record',\n key: 'literal:self',\n record: {\n type: 'object',\n properties: {\n displayName: {\n type: 'string',\n maxGraphemes: 64,\n maxLength: 640,\n },\n description: {\n type: 'string',\n maxGraphemes: 256,\n maxLength: 2560,\n },\n avatar: {\n type: 'blob',\n accept: ['image/png', 'image/jpeg'],\n maxSize: 1000000,\n },\n banner: {\n type: 'blob',\n accept: ['image/png', 'image/jpeg'],\n maxSize: 1000000,\n },\n },\n },\n },\n },\n },\n AppBskyActorSearchActors: {\n lexicon: 1,\n id: 'app.bsky.actor.searchActors',\n defs: {\n main: {\n type: 'query',\n description: 'Find actors matching search criteria.',\n parameters: {\n type: 'params',\n properties: {\n term: {\n type: 'string',\n },\n limit: {\n type: 'integer',\n minimum: 1,\n maximum: 100,\n default: 50,\n },\n cursor: {\n type: 'string',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['actors'],\n properties: {\n cursor: {\n type: 'string',\n },\n actors: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.defs#profileView',\n },\n },\n },\n },\n },\n },\n },\n },\n AppBskyActorSearchActorsTypeahead: {\n lexicon: 1,\n id: 'app.bsky.actor.searchActorsTypeahead',\n defs: {\n main: {\n type: 'query',\n description: 'Find actor suggestions for a search term.',\n parameters: {\n type: 'params',\n properties: {\n term: {\n type: 'string',\n },\n limit: {\n type: 'integer',\n minimum: 1,\n maximum: 100,\n default: 50,\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['actors'],\n properties: {\n actors: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.defs#profileViewBasic',\n },\n },\n },\n },\n },\n },\n },\n },\n AppBskyEmbedExternal: {\n lexicon: 1,\n id: 'app.bsky.embed.external',\n description:\n 'A representation of some externally linked content, embedded in another form of content',\n defs: {\n main: {\n type: 'object',\n required: ['external'],\n properties: {\n external: {\n type: 'ref',\n ref: 'lex:app.bsky.embed.external#external',\n },\n },\n },\n external: {\n type: 'object',\n required: ['uri', 'title', 'description'],\n properties: {\n uri: {\n type: 'string',\n format: 'uri',\n },\n title: {\n type: 'string',\n },\n description: {\n type: 'string',\n },\n thumb: {\n type: 'blob',\n accept: ['image/*'],\n maxSize: 1000000,\n },\n },\n },\n view: {\n type: 'object',\n required: ['external'],\n properties: {\n external: {\n type: 'ref',\n ref: 'lex:app.bsky.embed.external#viewExternal',\n },\n },\n },\n viewExternal: {\n type: 'object',\n required: ['uri', 'title', 'description'],\n properties: {\n uri: {\n type: 'string',\n format: 'uri',\n },\n title: {\n type: 'string',\n },\n description: {\n type: 'string',\n },\n thumb: {\n type: 'string',\n },\n },\n },\n },\n },\n AppBskyEmbedImages: {\n lexicon: 1,\n id: 'app.bsky.embed.images',\n description: 'A set of images embedded in some other form of content',\n defs: {\n main: {\n type: 'object',\n required: ['images'],\n properties: {\n images: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.embed.images#image',\n },\n maxLength: 4,\n },\n },\n },\n image: {\n type: 'object',\n required: ['image', 'alt'],\n properties: {\n image: {\n type: 'blob',\n accept: ['image/*'],\n maxSize: 1000000,\n },\n alt: {\n type: 'string',\n },\n },\n },\n view: {\n type: 'object',\n required: ['images'],\n properties: {\n images: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.embed.images#viewImage',\n },\n maxLength: 4,\n },\n },\n },\n viewImage: {\n type: 'object',\n required: ['thumb', 'fullsize', 'alt'],\n properties: {\n thumb: {\n type: 'string',\n },\n fullsize: {\n type: 'string',\n },\n alt: {\n type: 'string',\n },\n },\n },\n },\n },\n AppBskyEmbedRecord: {\n lexicon: 1,\n id: 'app.bsky.embed.record',\n description:\n 'A representation of a record embedded in another form of content',\n defs: {\n main: {\n type: 'object',\n required: ['record'],\n properties: {\n record: {\n type: 'ref',\n ref: 'lex:com.atproto.repo.strongRef',\n },\n },\n },\n view: {\n type: 'object',\n required: ['record'],\n properties: {\n record: {\n type: 'union',\n refs: [\n 'lex:app.bsky.embed.record#viewRecord',\n 'lex:app.bsky.embed.record#viewNotFound',\n 'lex:app.bsky.embed.record#viewBlocked',\n ],\n },\n },\n },\n viewRecord: {\n type: 'object',\n required: ['uri', 'cid', 'author', 'value', 'indexedAt'],\n properties: {\n uri: {\n type: 'string',\n format: 'at-uri',\n },\n cid: {\n type: 'string',\n format: 'cid',\n },\n author: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.defs#profileViewBasic',\n },\n value: {\n type: 'unknown',\n },\n labels: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:com.atproto.label.defs#label',\n },\n },\n embeds: {\n type: 'array',\n items: {\n type: 'union',\n refs: [\n 'lex:app.bsky.embed.images#view',\n 'lex:app.bsky.embed.external#view',\n 'lex:app.bsky.embed.record#view',\n 'lex:app.bsky.embed.recordWithMedia#view',\n ],\n },\n },\n indexedAt: {\n type: 'string',\n format: 'datetime',\n },\n },\n },\n viewNotFound: {\n type: 'object',\n required: ['uri'],\n properties: {\n uri: {\n type: 'string',\n format: 'at-uri',\n },\n },\n },\n viewBlocked: {\n type: 'object',\n required: ['uri'],\n properties: {\n uri: {\n type: 'string',\n format: 'at-uri',\n },\n },\n },\n },\n },\n AppBskyEmbedRecordWithMedia: {\n lexicon: 1,\n id: 'app.bsky.embed.recordWithMedia',\n description:\n 'A representation of a record embedded in another form of content, alongside other compatible embeds',\n defs: {\n main: {\n type: 'object',\n required: ['record', 'media'],\n properties: {\n record: {\n type: 'ref',\n ref: 'lex:app.bsky.embed.record',\n },\n media: {\n type: 'union',\n refs: ['lex:app.bsky.embed.images', 'lex:app.bsky.embed.external'],\n },\n },\n },\n view: {\n type: 'object',\n required: ['record', 'media'],\n properties: {\n record: {\n type: 'ref',\n ref: 'lex:app.bsky.embed.record#view',\n },\n media: {\n type: 'union',\n refs: [\n 'lex:app.bsky.embed.images#view',\n 'lex:app.bsky.embed.external#view',\n ],\n },\n },\n },\n },\n },\n AppBskyFeedDefs: {\n lexicon: 1,\n id: 'app.bsky.feed.defs',\n defs: {\n postView: {\n type: 'object',\n required: ['uri', 'cid', 'author', 'record', 'indexedAt'],\n properties: {\n uri: {\n type: 'string',\n format: 'at-uri',\n },\n cid: {\n type: 'string',\n format: 'cid',\n },\n author: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.defs#profileViewBasic',\n },\n record: {\n type: 'unknown',\n },\n embed: {\n type: 'union',\n refs: [\n 'lex:app.bsky.embed.images#view',\n 'lex:app.bsky.embed.external#view',\n 'lex:app.bsky.embed.record#view',\n 'lex:app.bsky.embed.recordWithMedia#view',\n ],\n },\n replyCount: {\n type: 'integer',\n },\n repostCount: {\n type: 'integer',\n },\n likeCount: {\n type: 'integer',\n },\n indexedAt: {\n type: 'string',\n format: 'datetime',\n },\n viewer: {\n type: 'ref',\n ref: 'lex:app.bsky.feed.defs#viewerState',\n },\n labels: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:com.atproto.label.defs#label',\n },\n },\n },\n },\n viewerState: {\n type: 'object',\n properties: {\n repost: {\n type: 'string',\n format: 'at-uri',\n },\n like: {\n type: 'string',\n format: 'at-uri',\n },\n },\n },\n feedViewPost: {\n type: 'object',\n required: ['post'],\n properties: {\n post: {\n type: 'ref',\n ref: 'lex:app.bsky.feed.defs#postView',\n },\n reply: {\n type: 'ref',\n ref: 'lex:app.bsky.feed.defs#replyRef',\n },\n reason: {\n type: 'union',\n refs: ['lex:app.bsky.feed.defs#reasonRepost'],\n },\n },\n },\n replyRef: {\n type: 'object',\n required: ['root', 'parent'],\n properties: {\n root: {\n type: 'ref',\n ref: 'lex:app.bsky.feed.defs#postView',\n },\n parent: {\n type: 'ref',\n ref: 'lex:app.bsky.feed.defs#postView',\n },\n },\n },\n reasonRepost: {\n type: 'object',\n required: ['by', 'indexedAt'],\n properties: {\n by: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.defs#profileViewBasic',\n },\n indexedAt: {\n type: 'string',\n format: 'datetime',\n },\n },\n },\n threadViewPost: {\n type: 'object',\n required: ['post'],\n properties: {\n post: {\n type: 'ref',\n ref: 'lex:app.bsky.feed.defs#postView',\n },\n parent: {\n type: 'union',\n refs: [\n 'lex:app.bsky.feed.defs#threadViewPost',\n 'lex:app.bsky.feed.defs#notFoundPost',\n 'lex:app.bsky.feed.defs#blockedPost',\n ],\n },\n replies: {\n type: 'array',\n items: {\n type: 'union',\n refs: [\n 'lex:app.bsky.feed.defs#threadViewPost',\n 'lex:app.bsky.feed.defs#notFoundPost',\n 'lex:app.bsky.feed.defs#blockedPost',\n ],\n },\n },\n },\n },\n notFoundPost: {\n type: 'object',\n required: ['uri', 'notFound'],\n properties: {\n uri: {\n type: 'string',\n format: 'at-uri',\n },\n notFound: {\n type: 'boolean',\n const: true,\n },\n },\n },\n blockedPost: {\n type: 'object',\n required: ['uri', 'blocked'],\n properties: {\n uri: {\n type: 'string',\n format: 'at-uri',\n },\n blocked: {\n type: 'boolean',\n const: true,\n },\n },\n },\n },\n },\n AppBskyFeedGetAuthorFeed: {\n lexicon: 1,\n id: 'app.bsky.feed.getAuthorFeed',\n defs: {\n main: {\n type: 'query',\n description: \"A view of an actor's feed.\",\n parameters: {\n type: 'params',\n required: ['actor'],\n properties: {\n actor: {\n type: 'string',\n format: 'at-identifier',\n },\n limit: {\n type: 'integer',\n minimum: 1,\n maximum: 100,\n default: 50,\n },\n cursor: {\n type: 'string',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['feed'],\n properties: {\n cursor: {\n type: 'string',\n },\n feed: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.feed.defs#feedViewPost',\n },\n },\n },\n },\n },\n errors: [\n {\n name: 'BlockedActor',\n },\n {\n name: 'BlockedByActor',\n },\n ],\n },\n },\n },\n AppBskyFeedGetLikes: {\n lexicon: 1,\n id: 'app.bsky.feed.getLikes',\n defs: {\n main: {\n type: 'query',\n parameters: {\n type: 'params',\n required: ['uri'],\n properties: {\n uri: {\n type: 'string',\n format: 'at-uri',\n },\n cid: {\n type: 'string',\n format: 'cid',\n },\n limit: {\n type: 'integer',\n minimum: 1,\n maximum: 100,\n default: 50,\n },\n cursor: {\n type: 'string',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['uri', 'likes'],\n properties: {\n uri: {\n type: 'string',\n format: 'at-uri',\n },\n cid: {\n type: 'string',\n format: 'cid',\n },\n cursor: {\n type: 'string',\n },\n likes: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.feed.getLikes#like',\n },\n },\n },\n },\n },\n },\n like: {\n type: 'object',\n required: ['indexedAt', 'createdAt', 'actor'],\n properties: {\n indexedAt: {\n type: 'string',\n format: 'datetime',\n },\n createdAt: {\n type: 'string',\n format: 'datetime',\n },\n actor: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.defs#profileView',\n },\n },\n },\n },\n },\n AppBskyFeedGetPostThread: {\n lexicon: 1,\n id: 'app.bsky.feed.getPostThread',\n defs: {\n main: {\n type: 'query',\n parameters: {\n type: 'params',\n required: ['uri'],\n properties: {\n uri: {\n type: 'string',\n format: 'at-uri',\n },\n depth: {\n type: 'integer',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['thread'],\n properties: {\n thread: {\n type: 'union',\n refs: [\n 'lex:app.bsky.feed.defs#threadViewPost',\n 'lex:app.bsky.feed.defs#notFoundPost',\n 'lex:app.bsky.feed.defs#blockedPost',\n ],\n },\n },\n },\n },\n errors: [\n {\n name: 'NotFound',\n },\n ],\n },\n },\n },\n AppBskyFeedGetPosts: {\n lexicon: 1,\n id: 'app.bsky.feed.getPosts',\n defs: {\n main: {\n type: 'query',\n description: \"A view of an actor's feed.\",\n parameters: {\n type: 'params',\n required: ['uris'],\n properties: {\n uris: {\n type: 'array',\n items: {\n type: 'string',\n format: 'at-uri',\n },\n maxLength: 25,\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['posts'],\n properties: {\n posts: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.feed.defs#postView',\n },\n },\n },\n },\n },\n },\n },\n },\n AppBskyFeedGetRepostedBy: {\n lexicon: 1,\n id: 'app.bsky.feed.getRepostedBy',\n defs: {\n main: {\n type: 'query',\n parameters: {\n type: 'params',\n required: ['uri'],\n properties: {\n uri: {\n type: 'string',\n format: 'at-uri',\n },\n cid: {\n type: 'string',\n format: 'cid',\n },\n limit: {\n type: 'integer',\n minimum: 1,\n maximum: 100,\n default: 50,\n },\n cursor: {\n type: 'string',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['uri', 'repostedBy'],\n properties: {\n uri: {\n type: 'string',\n format: 'at-uri',\n },\n cid: {\n type: 'string',\n format: 'cid',\n },\n cursor: {\n type: 'string',\n },\n repostedBy: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.defs#profileView',\n },\n },\n },\n },\n },\n },\n },\n },\n AppBskyFeedGetTimeline: {\n lexicon: 1,\n id: 'app.bsky.feed.getTimeline',\n defs: {\n main: {\n type: 'query',\n description: \"A view of the user's home timeline.\",\n parameters: {\n type: 'params',\n properties: {\n algorithm: {\n type: 'string',\n },\n limit: {\n type: 'integer',\n minimum: 1,\n maximum: 100,\n default: 50,\n },\n cursor: {\n type: 'string',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['feed'],\n properties: {\n cursor: {\n type: 'string',\n },\n feed: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.feed.defs#feedViewPost',\n },\n },\n },\n },\n },\n },\n },\n },\n AppBskyFeedLike: {\n lexicon: 1,\n id: 'app.bsky.feed.like',\n defs: {\n main: {\n type: 'record',\n key: 'tid',\n record: {\n type: 'object',\n required: ['subject', 'createdAt'],\n properties: {\n subject: {\n type: 'ref',\n ref: 'lex:com.atproto.repo.strongRef',\n },\n createdAt: {\n type: 'string',\n format: 'datetime',\n },\n },\n },\n },\n },\n },\n AppBskyFeedPost: {\n lexicon: 1,\n id: 'app.bsky.feed.post',\n defs: {\n main: {\n type: 'record',\n key: 'tid',\n record: {\n type: 'object',\n required: ['text', 'createdAt'],\n properties: {\n text: {\n type: 'string',\n maxLength: 3000,\n maxGraphemes: 300,\n },\n entities: {\n type: 'array',\n description: 'Deprecated: replaced by app.bsky.richtext.facet.',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.feed.post#entity',\n },\n },\n facets: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.richtext.facet',\n },\n },\n reply: {\n type: 'ref',\n ref: 'lex:app.bsky.feed.post#replyRef',\n },\n embed: {\n type: 'union',\n refs: [\n 'lex:app.bsky.embed.images',\n 'lex:app.bsky.embed.external',\n 'lex:app.bsky.embed.record',\n 'lex:app.bsky.embed.recordWithMedia',\n ],\n },\n createdAt: {\n type: 'string',\n format: 'datetime',\n },\n },\n },\n },\n replyRef: {\n type: 'object',\n required: ['root', 'parent'],\n properties: {\n root: {\n type: 'ref',\n ref: 'lex:com.atproto.repo.strongRef',\n },\n parent: {\n type: 'ref',\n ref: 'lex:com.atproto.repo.strongRef',\n },\n },\n },\n entity: {\n type: 'object',\n description: 'Deprecated: use facets instead.',\n required: ['index', 'type', 'value'],\n properties: {\n index: {\n type: 'ref',\n ref: 'lex:app.bsky.feed.post#textSlice',\n },\n type: {\n type: 'string',\n description: \"Expected values are 'mention' and 'link'.\",\n },\n value: {\n type: 'string',\n },\n },\n },\n textSlice: {\n type: 'object',\n description:\n 'Deprecated. Use app.bsky.richtext instead -- A text segment. Start is inclusive, end is exclusive. Indices are for utf16-encoded strings.',\n required: ['start', 'end'],\n properties: {\n start: {\n type: 'integer',\n minimum: 0,\n },\n end: {\n type: 'integer',\n minimum: 0,\n },\n },\n },\n },\n },\n AppBskyFeedRepost: {\n lexicon: 1,\n id: 'app.bsky.feed.repost',\n defs: {\n main: {\n type: 'record',\n key: 'tid',\n record: {\n type: 'object',\n required: ['subject', 'createdAt'],\n properties: {\n subject: {\n type: 'ref',\n ref: 'lex:com.atproto.repo.strongRef',\n },\n createdAt: {\n type: 'string',\n format: 'datetime',\n },\n },\n },\n },\n },\n },\n AppBskyGraphBlock: {\n lexicon: 1,\n id: 'app.bsky.graph.block',\n defs: {\n main: {\n type: 'record',\n description: 'A block.',\n key: 'tid',\n record: {\n type: 'object',\n required: ['subject', 'createdAt'],\n properties: {\n subject: {\n type: 'string',\n format: 'did',\n },\n createdAt: {\n type: 'string',\n format: 'datetime',\n },\n },\n },\n },\n },\n },\n AppBskyGraphDefs: {\n lexicon: 1,\n id: 'app.bsky.graph.defs',\n defs: {\n listViewBasic: {\n type: 'object',\n required: ['uri', 'creator', 'name', 'purpose'],\n properties: {\n uri: {\n type: 'string',\n format: 'at-uri',\n },\n name: {\n type: 'string',\n maxLength: 64,\n minLength: 1,\n },\n purpose: {\n type: 'ref',\n ref: 'lex:app.bsky.graph.defs#listPurpose',\n },\n avatar: {\n type: 'string',\n },\n viewer: {\n type: 'ref',\n ref: 'lex:app.bsky.graph.defs#listViewerState',\n },\n indexedAt: {\n type: 'string',\n format: 'datetime',\n },\n },\n },\n listView: {\n type: 'object',\n required: ['uri', 'creator', 'name', 'purpose', 'indexedAt'],\n properties: {\n uri: {\n type: 'string',\n format: 'at-uri',\n },\n creator: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.defs#profileView',\n },\n name: {\n type: 'string',\n maxLength: 64,\n minLength: 1,\n },\n purpose: {\n type: 'ref',\n ref: 'lex:app.bsky.graph.defs#listPurpose',\n },\n description: {\n type: 'string',\n maxGraphemes: 300,\n maxLength: 3000,\n },\n descriptionFacets: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.richtext.facet',\n },\n },\n avatar: {\n type: 'string',\n },\n viewer: {\n type: 'ref',\n ref: 'lex:app.bsky.graph.defs#listViewerState',\n },\n indexedAt: {\n type: 'string',\n format: 'datetime',\n },\n },\n },\n listItemView: {\n type: 'object',\n required: ['subject'],\n properties: {\n subject: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.defs#profileView',\n },\n },\n },\n listPurpose: {\n type: 'string',\n knownValues: ['app.bsky.graph.defs#modlist'],\n },\n modlist: {\n type: 'token',\n description:\n 'A list of actors to apply an aggregate moderation action (mute/block) on',\n },\n listViewerState: {\n type: 'object',\n properties: {\n muted: {\n type: 'boolean',\n },\n },\n },\n },\n },\n AppBskyGraphFollow: {\n lexicon: 1,\n id: 'app.bsky.graph.follow',\n defs: {\n main: {\n type: 'record',\n description: 'A social follow.',\n key: 'tid',\n record: {\n type: 'object',\n required: ['subject', 'createdAt'],\n properties: {\n subject: {\n type: 'string',\n format: 'did',\n },\n createdAt: {\n type: 'string',\n format: 'datetime',\n },\n },\n },\n },\n },\n },\n AppBskyGraphGetBlocks: {\n lexicon: 1,\n id: 'app.bsky.graph.getBlocks',\n defs: {\n main: {\n type: 'query',\n description: \"Who is the requester's account blocking?\",\n parameters: {\n type: 'params',\n properties: {\n limit: {\n type: 'integer',\n minimum: 1,\n maximum: 100,\n default: 50,\n },\n cursor: {\n type: 'string',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['blocks'],\n properties: {\n cursor: {\n type: 'string',\n },\n blocks: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.defs#profileView',\n },\n },\n },\n },\n },\n },\n },\n },\n AppBskyGraphGetFollowers: {\n lexicon: 1,\n id: 'app.bsky.graph.getFollowers',\n defs: {\n main: {\n type: 'query',\n description: 'Who is following an actor?',\n parameters: {\n type: 'params',\n required: ['actor'],\n properties: {\n actor: {\n type: 'string',\n format: 'at-identifier',\n },\n limit: {\n type: 'integer',\n minimum: 1,\n maximum: 100,\n default: 50,\n },\n cursor: {\n type: 'string',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['subject', 'followers'],\n properties: {\n subject: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.defs#profileView',\n },\n cursor: {\n type: 'string',\n },\n followers: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.defs#profileView',\n },\n },\n },\n },\n },\n },\n },\n },\n AppBskyGraphGetFollows: {\n lexicon: 1,\n id: 'app.bsky.graph.getFollows',\n defs: {\n main: {\n type: 'query',\n description: 'Who is an actor following?',\n parameters: {\n type: 'params',\n required: ['actor'],\n properties: {\n actor: {\n type: 'string',\n format: 'at-identifier',\n },\n limit: {\n type: 'integer',\n minimum: 1,\n maximum: 100,\n default: 50,\n },\n cursor: {\n type: 'string',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['subject', 'follows'],\n properties: {\n subject: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.defs#profileView',\n },\n cursor: {\n type: 'string',\n },\n follows: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.defs#profileView',\n },\n },\n },\n },\n },\n },\n },\n },\n AppBskyGraphGetList: {\n lexicon: 1,\n id: 'app.bsky.graph.getList',\n defs: {\n main: {\n type: 'query',\n description: 'Fetch a list of actors',\n parameters: {\n type: 'params',\n required: ['list'],\n properties: {\n list: {\n type: 'string',\n format: 'at-uri',\n },\n limit: {\n type: 'integer',\n minimum: 1,\n maximum: 100,\n default: 50,\n },\n cursor: {\n type: 'string',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['list', 'items'],\n properties: {\n cursor: {\n type: 'string',\n },\n list: {\n type: 'ref',\n ref: 'lex:app.bsky.graph.defs#listView',\n },\n items: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.graph.defs#listItemView',\n },\n },\n },\n },\n },\n },\n },\n },\n AppBskyGraphGetListMutes: {\n lexicon: 1,\n id: 'app.bsky.graph.getListMutes',\n defs: {\n main: {\n type: 'query',\n description: \"Which lists is the requester's account muting?\",\n parameters: {\n type: 'params',\n properties: {\n limit: {\n type: 'integer',\n minimum: 1,\n maximum: 100,\n default: 50,\n },\n cursor: {\n type: 'string',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['lists'],\n properties: {\n cursor: {\n type: 'string',\n },\n lists: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.graph.defs#listView',\n },\n },\n },\n },\n },\n },\n },\n },\n AppBskyGraphGetLists: {\n lexicon: 1,\n id: 'app.bsky.graph.getLists',\n defs: {\n main: {\n type: 'query',\n description: 'Fetch a list of lists that belong to an actor',\n parameters: {\n type: 'params',\n required: ['actor'],\n properties: {\n actor: {\n type: 'string',\n format: 'at-identifier',\n },\n limit: {\n type: 'integer',\n minimum: 1,\n maximum: 100,\n default: 50,\n },\n cursor: {\n type: 'string',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['lists'],\n properties: {\n cursor: {\n type: 'string',\n },\n lists: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.graph.defs#listView',\n },\n },\n },\n },\n },\n },\n },\n },\n AppBskyGraphGetMutes: {\n lexicon: 1,\n id: 'app.bsky.graph.getMutes',\n defs: {\n main: {\n type: 'query',\n description: 'Who does the viewer mute?',\n parameters: {\n type: 'params',\n properties: {\n limit: {\n type: 'integer',\n minimum: 1,\n maximum: 100,\n default: 50,\n },\n cursor: {\n type: 'string',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['mutes'],\n properties: {\n cursor: {\n type: 'string',\n },\n mutes: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.defs#profileView',\n },\n },\n },\n },\n },\n },\n },\n },\n AppBskyGraphList: {\n lexicon: 1,\n id: 'app.bsky.graph.list',\n defs: {\n main: {\n type: 'record',\n description: 'A declaration of a list of actors.',\n key: 'tid',\n record: {\n type: 'object',\n required: ['name', 'purpose', 'createdAt'],\n properties: {\n purpose: {\n type: 'ref',\n ref: 'lex:app.bsky.graph.defs#listPurpose',\n },\n name: {\n type: 'string',\n maxLength: 64,\n minLength: 1,\n },\n description: {\n type: 'string',\n maxGraphemes: 300,\n maxLength: 3000,\n },\n descriptionFacets: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.richtext.facet',\n },\n },\n avatar: {\n type: 'blob',\n accept: ['image/png', 'image/jpeg'],\n maxSize: 1000000,\n },\n createdAt: {\n type: 'string',\n format: 'datetime',\n },\n },\n },\n },\n },\n },\n AppBskyGraphListitem: {\n lexicon: 1,\n id: 'app.bsky.graph.listitem',\n defs: {\n main: {\n type: 'record',\n description: 'An item under a declared list of actors',\n key: 'tid',\n record: {\n type: 'object',\n required: ['subject', 'list', 'createdAt'],\n properties: {\n subject: {\n type: 'string',\n format: 'did',\n },\n list: {\n type: 'string',\n format: 'at-uri',\n },\n createdAt: {\n type: 'string',\n format: 'datetime',\n },\n },\n },\n },\n },\n },\n AppBskyGraphMuteActor: {\n lexicon: 1,\n id: 'app.bsky.graph.muteActor',\n defs: {\n main: {\n type: 'procedure',\n description: 'Mute an actor by did or handle.',\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['actor'],\n properties: {\n actor: {\n type: 'string',\n format: 'at-identifier',\n },\n },\n },\n },\n },\n },\n },\n AppBskyGraphMuteActorList: {\n lexicon: 1,\n id: 'app.bsky.graph.muteActorList',\n defs: {\n main: {\n type: 'procedure',\n description: 'Mute a list of actors.',\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['list'],\n properties: {\n list: {\n type: 'string',\n format: 'at-uri',\n },\n },\n },\n },\n },\n },\n },\n AppBskyGraphUnmuteActor: {\n lexicon: 1,\n id: 'app.bsky.graph.unmuteActor',\n defs: {\n main: {\n type: 'procedure',\n description: 'Unmute an actor by did or handle.',\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['actor'],\n properties: {\n actor: {\n type: 'string',\n format: 'at-identifier',\n },\n },\n },\n },\n },\n },\n },\n AppBskyGraphUnmuteActorList: {\n lexicon: 1,\n id: 'app.bsky.graph.unmuteActorList',\n defs: {\n main: {\n type: 'procedure',\n description: 'Unmute a list of actors.',\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['list'],\n properties: {\n list: {\n type: 'string',\n format: 'at-uri',\n },\n },\n },\n },\n },\n },\n },\n AppBskyNotificationGetUnreadCount: {\n lexicon: 1,\n id: 'app.bsky.notification.getUnreadCount',\n defs: {\n main: {\n type: 'query',\n parameters: {\n type: 'params',\n properties: {\n seenAt: {\n type: 'string',\n format: 'datetime',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['count'],\n properties: {\n count: {\n type: 'integer',\n },\n },\n },\n },\n },\n },\n },\n AppBskyNotificationListNotifications: {\n lexicon: 1,\n id: 'app.bsky.notification.listNotifications',\n defs: {\n main: {\n type: 'query',\n parameters: {\n type: 'params',\n properties: {\n limit: {\n type: 'integer',\n minimum: 1,\n maximum: 100,\n default: 50,\n },\n cursor: {\n type: 'string',\n },\n seenAt: {\n type: 'string',\n format: 'datetime',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['notifications'],\n properties: {\n cursor: {\n type: 'string',\n },\n notifications: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.notification.listNotifications#notification',\n },\n },\n },\n },\n },\n },\n notification: {\n type: 'object',\n required: [\n 'uri',\n 'cid',\n 'author',\n 'reason',\n 'record',\n 'isRead',\n 'indexedAt',\n ],\n properties: {\n uri: {\n type: 'string',\n format: 'at-uri',\n },\n cid: {\n type: 'string',\n format: 'cid',\n },\n author: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.defs#profileView',\n },\n reason: {\n type: 'string',\n description:\n \"Expected values are 'like', 'repost', 'follow', 'mention', 'reply', and 'quote'.\",\n knownValues: [\n 'like',\n 'repost',\n 'follow',\n 'mention',\n 'reply',\n 'quote',\n ],\n },\n reasonSubject: {\n type: 'string',\n format: 'at-uri',\n },\n record: {\n type: 'unknown',\n },\n isRead: {\n type: 'boolean',\n },\n indexedAt: {\n type: 'string',\n format: 'datetime',\n },\n labels: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:com.atproto.label.defs#label',\n },\n },\n },\n },\n },\n },\n AppBskyNotificationUpdateSeen: {\n lexicon: 1,\n id: 'app.bsky.notification.updateSeen',\n defs: {\n main: {\n type: 'procedure',\n description: 'Notify server that the user has seen notifications.',\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['seenAt'],\n properties: {\n seenAt: {\n type: 'string',\n format: 'datetime',\n },\n },\n },\n },\n },\n },\n },\n AppBskyRichtextFacet: {\n lexicon: 1,\n id: 'app.bsky.richtext.facet',\n defs: {\n main: {\n type: 'object',\n required: ['index', 'features'],\n properties: {\n index: {\n type: 'ref',\n ref: 'lex:app.bsky.richtext.facet#byteSlice',\n },\n features: {\n type: 'array',\n items: {\n type: 'union',\n refs: [\n 'lex:app.bsky.richtext.facet#mention',\n 'lex:app.bsky.richtext.facet#link',\n ],\n },\n },\n },\n },\n mention: {\n type: 'object',\n description: 'A facet feature for actor mentions.',\n required: ['did'],\n properties: {\n did: {\n type: 'string',\n format: 'did',\n },\n },\n },\n link: {\n type: 'object',\n description: 'A facet feature for links.',\n required: ['uri'],\n properties: {\n uri: {\n type: 'string',\n format: 'uri',\n },\n },\n },\n byteSlice: {\n type: 'object',\n description:\n 'A text segment. Start is inclusive, end is exclusive. Indices are for utf8-encoded strings.',\n required: ['byteStart', 'byteEnd'],\n properties: {\n byteStart: {\n type: 'integer',\n minimum: 0,\n },\n byteEnd: {\n type: 'integer',\n minimum: 0,\n },\n },\n },\n },\n },\n AppBskyUnspeccedGetPopular: {\n lexicon: 1,\n id: 'app.bsky.unspecced.getPopular',\n defs: {\n main: {\n type: 'query',\n description: 'An unspecced view of globally popular items',\n parameters: {\n type: 'params',\n properties: {\n includeNsfw: {\n type: 'boolean',\n default: false,\n },\n limit: {\n type: 'integer',\n minimum: 1,\n maximum: 100,\n default: 50,\n },\n cursor: {\n type: 'string',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['feed'],\n properties: {\n cursor: {\n type: 'string',\n },\n feed: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.feed.defs#feedViewPost',\n },\n },\n },\n },\n },\n },\n },\n },\n}\nexport const schemas: LexiconDoc[] = Object.values(schemaDict) as LexiconDoc[]\nexport const lexicons: Lexicons = new Lexicons(schemas)\nexport const ids = {\n ComAtprotoAdminDefs: 'com.atproto.admin.defs',\n ComAtprotoAdminDisableAccountInvites:\n 'com.atproto.admin.disableAccountInvites',\n ComAtprotoAdminDisableInviteCodes: 'com.atproto.admin.disableInviteCodes',\n ComAtprotoAdminEnableAccountInvites: 'com.atproto.admin.enableAccountInvites',\n ComAtprotoAdminGetInviteCodes: 'com.atproto.admin.getInviteCodes',\n ComAtprotoAdminGetModerationAction: 'com.atproto.admin.getModerationAction',\n ComAtprotoAdminGetModerationActions: 'com.atproto.admin.getModerationActions',\n ComAtprotoAdminGetModerationReport: 'com.atproto.admin.getModerationReport',\n ComAtprotoAdminGetModerationReports: 'com.atproto.admin.getModerationReports',\n ComAtprotoAdminGetRecord: 'com.atproto.admin.getRecord',\n ComAtprotoAdminGetRepo: 'com.atproto.admin.getRepo',\n ComAtprotoAdminResolveModerationReports:\n 'com.atproto.admin.resolveModerationReports',\n ComAtprotoAdminReverseModerationAction:\n 'com.atproto.admin.reverseModerationAction',\n ComAtprotoAdminSearchRepos: 'com.atproto.admin.searchRepos',\n ComAtprotoAdminTakeModerationAction: 'com.atproto.admin.takeModerationAction',\n ComAtprotoAdminUpdateAccountEmail: 'com.atproto.admin.updateAccountEmail',\n ComAtprotoAdminUpdateAccountHandle: 'com.atproto.admin.updateAccountHandle',\n ComAtprotoIdentityResolveHandle: 'com.atproto.identity.resolveHandle',\n ComAtprotoIdentityUpdateHandle: 'com.atproto.identity.updateHandle',\n ComAtprotoLabelDefs: 'com.atproto.label.defs',\n ComAtprotoLabelQueryLabels: 'com.atproto.label.queryLabels',\n ComAtprotoLabelSubscribeLabels: 'com.atproto.label.subscribeLabels',\n ComAtprotoModerationCreateReport: 'com.atproto.moderation.createReport',\n ComAtprotoModerationDefs: 'com.atproto.moderation.defs',\n ComAtprotoRepoApplyWrites: 'com.atproto.repo.applyWrites',\n ComAtprotoRepoCreateRecord: 'com.atproto.repo.createRecord',\n ComAtprotoRepoDeleteRecord: 'com.atproto.repo.deleteRecord',\n ComAtprotoRepoDescribeRepo: 'com.atproto.repo.describeRepo',\n ComAtprotoRepoGetRecord: 'com.atproto.repo.getRecord',\n ComAtprotoRepoListRecords: 'com.atproto.repo.listRecords',\n ComAtprotoRepoPutRecord: 'com.atproto.repo.putRecord',\n ComAtprotoRepoRebaseRepo: 'com.atproto.repo.rebaseRepo',\n ComAtprotoRepoStrongRef: 'com.atproto.repo.strongRef',\n ComAtprotoRepoUploadBlob: 'com.atproto.repo.uploadBlob',\n ComAtprotoServerCreateAccount: 'com.atproto.server.createAccount',\n ComAtprotoServerCreateAppPassword: 'com.atproto.server.createAppPassword',\n ComAtprotoServerCreateInviteCode: 'com.atproto.server.createInviteCode',\n ComAtprotoServerCreateInviteCodes: 'com.atproto.server.createInviteCodes',\n ComAtprotoServerCreateSession: 'com.atproto.server.createSession',\n ComAtprotoServerDefs: 'com.atproto.server.defs',\n ComAtprotoServerDeleteAccount: 'com.atproto.server.deleteAccount',\n ComAtprotoServerDeleteSession: 'com.atproto.server.deleteSession',\n ComAtprotoServerDescribeServer: 'com.atproto.server.describeServer',\n ComAtprotoServerGetAccountInviteCodes:\n 'com.atproto.server.getAccountInviteCodes',\n ComAtprotoServerGetSession: 'com.atproto.server.getSession',\n ComAtprotoServerListAppPasswords: 'com.atproto.server.listAppPasswords',\n ComAtprotoServerRefreshSession: 'com.atproto.server.refreshSession',\n ComAtprotoServerRequestAccountDelete:\n 'com.atproto.server.requestAccountDelete',\n ComAtprotoServerRequestPasswordReset:\n 'com.atproto.server.requestPasswordReset',\n ComAtprotoServerResetPassword: 'com.atproto.server.resetPassword',\n ComAtprotoServerRevokeAppPassword: 'com.atproto.server.revokeAppPassword',\n ComAtprotoSyncGetBlob: 'com.atproto.sync.getBlob',\n ComAtprotoSyncGetBlocks: 'com.atproto.sync.getBlocks',\n ComAtprotoSyncGetCheckout: 'com.atproto.sync.getCheckout',\n ComAtprotoSyncGetCommitPath: 'com.atproto.sync.getCommitPath',\n ComAtprotoSyncGetHead: 'com.atproto.sync.getHead',\n ComAtprotoSyncGetRecord: 'com.atproto.sync.getRecord',\n ComAtprotoSyncGetRepo: 'com.atproto.sync.getRepo',\n ComAtprotoSyncListBlobs: 'com.atproto.sync.listBlobs',\n ComAtprotoSyncListRepos: 'com.atproto.sync.listRepos',\n ComAtprotoSyncNotifyOfUpdate: 'com.atproto.sync.notifyOfUpdate',\n ComAtprotoSyncRequestCrawl: 'com.atproto.sync.requestCrawl',\n ComAtprotoSyncSubscribeRepos: 'com.atproto.sync.subscribeRepos',\n AppBskyActorDefs: 'app.bsky.actor.defs',\n AppBskyActorGetProfile: 'app.bsky.actor.getProfile',\n AppBskyActorGetProfiles: 'app.bsky.actor.getProfiles',\n AppBskyActorGetSuggestions: 'app.bsky.actor.getSuggestions',\n AppBskyActorProfile: 'app.bsky.actor.profile',\n AppBskyActorSearchActors: 'app.bsky.actor.searchActors',\n AppBskyActorSearchActorsTypeahead: 'app.bsky.actor.searchActorsTypeahead',\n AppBskyEmbedExternal: 'app.bsky.embed.external',\n AppBskyEmbedImages: 'app.bsky.embed.images',\n AppBskyEmbedRecord: 'app.bsky.embed.record',\n AppBskyEmbedRecordWithMedia: 'app.bsky.embed.recordWithMedia',\n AppBskyFeedDefs: 'app.bsky.feed.defs',\n AppBskyFeedGetAuthorFeed: 'app.bsky.feed.getAuthorFeed',\n AppBskyFeedGetLikes: 'app.bsky.feed.getLikes',\n AppBskyFeedGetPostThread: 'app.bsky.feed.getPostThread',\n AppBskyFeedGetPosts: 'app.bsky.feed.getPosts',\n AppBskyFeedGetRepostedBy: 'app.bsky.feed.getRepostedBy',\n AppBskyFeedGetTimeline: 'app.bsky.feed.getTimeline',\n AppBskyFeedLike: 'app.bsky.feed.like',\n AppBskyFeedPost: 'app.bsky.feed.post',\n AppBskyFeedRepost: 'app.bsky.feed.repost',\n AppBskyGraphBlock: 'app.bsky.graph.block',\n AppBskyGraphDefs: 'app.bsky.graph.defs',\n AppBskyGraphFollow: 'app.bsky.graph.follow',\n AppBskyGraphGetBlocks: 'app.bsky.graph.getBlocks',\n AppBskyGraphGetFollowers: 'app.bsky.graph.getFollowers',\n AppBskyGraphGetFollows: 'app.bsky.graph.getFollows',\n AppBskyGraphGetList: 'app.bsky.graph.getList',\n AppBskyGraphGetListMutes: 'app.bsky.graph.getListMutes',\n AppBskyGraphGetLists: 'app.bsky.graph.getLists',\n AppBskyGraphGetMutes: 'app.bsky.graph.getMutes',\n AppBskyGraphList: 'app.bsky.graph.list',\n AppBskyGraphListitem: 'app.bsky.graph.listitem',\n AppBskyGraphMuteActor: 'app.bsky.graph.muteActor',\n AppBskyGraphMuteActorList: 'app.bsky.graph.muteActorList',\n AppBskyGraphUnmuteActor: 'app.bsky.graph.unmuteActor',\n AppBskyGraphUnmuteActorList: 'app.bsky.graph.unmuteActorList',\n AppBskyNotificationGetUnreadCount: 'app.bsky.notification.getUnreadCount',\n AppBskyNotificationListNotifications:\n 'app.bsky.notification.listNotifications',\n AppBskyNotificationUpdateSeen: 'app.bsky.notification.updateSeen',\n AppBskyRichtextFacet: 'app.bsky.richtext.facet',\n AppBskyUnspeccedGetPopular: 'app.bsky.unspecced.getPopular',\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n account: string\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: 'application/json'\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n codes?: string[]\n accounts?: string[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: 'application/json'\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n account: string\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: 'application/json'\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as ComAtprotoServerDefs from '../server/defs'\n\nexport interface QueryParams {\n sort?: 'recent' | 'usage' | (string & {})\n limit?: number\n cursor?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n cursor?: string\n codes: ComAtprotoServerDefs.InviteCode[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as ComAtprotoAdminDefs from './defs'\n\nexport interface QueryParams {\n id: number\n}\n\nexport type InputSchema = undefined\nexport type OutputSchema = ComAtprotoAdminDefs.ActionViewDetail\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as ComAtprotoAdminDefs from './defs'\n\nexport interface QueryParams {\n subject?: string\n limit?: number\n cursor?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n cursor?: string\n actions: ComAtprotoAdminDefs.ActionView[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as ComAtprotoAdminDefs from './defs'\n\nexport interface QueryParams {\n id: number\n}\n\nexport type InputSchema = undefined\nexport type OutputSchema = ComAtprotoAdminDefs.ReportViewDetail\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as ComAtprotoAdminDefs from './defs'\n\nexport interface QueryParams {\n subject?: string\n resolved?: boolean\n limit?: number\n cursor?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n cursor?: string\n reports: ComAtprotoAdminDefs.ReportView[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as ComAtprotoAdminDefs from './defs'\n\nexport interface QueryParams {\n uri: string\n cid?: string\n}\n\nexport type InputSchema = undefined\nexport type OutputSchema = ComAtprotoAdminDefs.RecordViewDetail\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as ComAtprotoAdminDefs from './defs'\n\nexport interface QueryParams {\n did: string\n}\n\nexport type InputSchema = undefined\nexport type OutputSchema = ComAtprotoAdminDefs.RepoViewDetail\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as ComAtprotoAdminDefs from './defs'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n actionId: number\n reportIds: number[]\n createdBy: string\n [k: string]: unknown\n}\n\nexport type OutputSchema = ComAtprotoAdminDefs.ActionView\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: 'application/json'\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as ComAtprotoAdminDefs from './defs'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n id: number\n reason: string\n createdBy: string\n [k: string]: unknown\n}\n\nexport type OutputSchema = ComAtprotoAdminDefs.ActionView\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: 'application/json'\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as ComAtprotoAdminDefs from './defs'\n\nexport interface QueryParams {\n term?: string\n invitedBy?: string\n limit?: number\n cursor?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n cursor?: string\n repos: ComAtprotoAdminDefs.RepoView[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as ComAtprotoAdminDefs from './defs'\nimport * as ComAtprotoRepoStrongRef from '../repo/strongRef'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n action:\n | 'com.atproto.admin.defs#takedown'\n | 'com.atproto.admin.defs#flag'\n | 'com.atproto.admin.defs#acknowledge'\n | (string & {})\n subject:\n | ComAtprotoAdminDefs.RepoRef\n | ComAtprotoRepoStrongRef.Main\n | { $type: string; [k: string]: unknown }\n subjectBlobCids?: string[]\n createLabelVals?: string[]\n negateLabelVals?: string[]\n reason: string\n createdBy: string\n [k: string]: unknown\n}\n\nexport type OutputSchema = ComAtprotoAdminDefs.ActionView\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: 'application/json'\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport class SubjectHasActionError extends XRPCError {\n constructor(src: XRPCError) {\n super(src.status, src.error, src.message)\n }\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n if (e.error === 'SubjectHasAction') return new SubjectHasActionError(e)\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n /** The handle or DID of the repo. */\n account: string\n email: string\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: 'application/json'\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n did: string\n handle: string\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: 'application/json'\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {\n /** The handle to resolve. If not supplied, will resolve the host's own handle. */\n handle?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n did: string\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n handle: string\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: 'application/json'\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as ComAtprotoLabelDefs from './defs'\n\nexport interface QueryParams {\n /** List of AT URI patterns to match (boolean 'OR'). Each may be a prefix (ending with '*'; will match inclusive of the string leading to '*'), or a full URI */\n uriPatterns: string[]\n /** Optional list of label sources (DIDs) to filter on */\n sources?: string[]\n limit?: number\n cursor?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n cursor?: string\n labels: ComAtprotoLabelDefs.Label[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as ComAtprotoModerationDefs from './defs'\nimport * as ComAtprotoAdminDefs from '../admin/defs'\nimport * as ComAtprotoRepoStrongRef from '../repo/strongRef'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n reasonType: ComAtprotoModerationDefs.ReasonType\n reason?: string\n subject:\n | ComAtprotoAdminDefs.RepoRef\n | ComAtprotoRepoStrongRef.Main\n | { $type: string; [k: string]: unknown }\n [k: string]: unknown\n}\n\nexport interface OutputSchema {\n id: number\n reasonType: ComAtprotoModerationDefs.ReasonType\n reason?: string\n subject:\n | ComAtprotoAdminDefs.RepoRef\n | ComAtprotoRepoStrongRef.Main\n | { $type: string; [k: string]: unknown }\n reportedBy: string\n createdAt: string\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: 'application/json'\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n /** The handle or DID of the repo. */\n repo: string\n /** Validate the records? */\n validate?: boolean\n writes: (Create | Update | Delete)[]\n swapCommit?: string\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: 'application/json'\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n}\n\nexport class InvalidSwapError extends XRPCError {\n constructor(src: XRPCError) {\n super(src.status, src.error, src.message)\n }\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n if (e.error === 'InvalidSwap') return new InvalidSwapError(e)\n }\n return e\n}\n\n/** Create a new record. */\nexport interface Create {\n collection: string\n rkey?: string\n value: {}\n [k: string]: unknown\n}\n\nexport function isCreate(v: unknown): v is Create {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.repo.applyWrites#create'\n )\n}\n\nexport function validateCreate(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.repo.applyWrites#create', v)\n}\n\n/** Update an existing record. */\nexport interface Update {\n collection: string\n rkey: string\n value: {}\n [k: string]: unknown\n}\n\nexport function isUpdate(v: unknown): v is Update {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.repo.applyWrites#update'\n )\n}\n\nexport function validateUpdate(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.repo.applyWrites#update', v)\n}\n\n/** Delete an existing record. */\nexport interface Delete {\n collection: string\n rkey: string\n [k: string]: unknown\n}\n\nexport function isDelete(v: unknown): v is Delete {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.repo.applyWrites#delete'\n )\n}\n\nexport function validateDelete(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.repo.applyWrites#delete', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nexport function isObj(v: unknown): v is Record<string, unknown> {\n return typeof v === 'object' && v !== null\n}\n\nexport function hasProp<K extends PropertyKey>(\n data: object,\n prop: K,\n): data is Record<K, unknown> {\n return prop in data\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n /** The handle or DID of the repo. */\n repo: string\n /** The NSID of the record collection. */\n collection: string\n /** The key of the record. */\n rkey?: string\n /** Validate the record? */\n validate?: boolean\n /** The record to create. */\n record: {}\n /** Compare and swap with the previous commit by cid. */\n swapCommit?: string\n [k: string]: unknown\n}\n\nexport interface OutputSchema {\n uri: string\n cid: string\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: 'application/json'\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport class InvalidSwapError extends XRPCError {\n constructor(src: XRPCError) {\n super(src.status, src.error, src.message)\n }\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n if (e.error === 'InvalidSwap') return new InvalidSwapError(e)\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n /** The handle or DID of the repo. */\n repo: string\n /** The NSID of the record collection. */\n collection: string\n /** The key of the record. */\n rkey: string\n /** Compare and swap with the previous record by cid. */\n swapRecord?: string\n /** Compare and swap with the previous commit by cid. */\n swapCommit?: string\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: 'application/json'\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n}\n\nexport class InvalidSwapError extends XRPCError {\n constructor(src: XRPCError) {\n super(src.status, src.error, src.message)\n }\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n if (e.error === 'InvalidSwap') return new InvalidSwapError(e)\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {\n /** The handle or DID of the repo. */\n repo: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n handle: string\n did: string\n didDoc: {}\n collections: string[]\n handleIsCorrect: boolean\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {\n /** The handle or DID of the repo. */\n repo: string\n /** The NSID of the record collection. */\n collection: string\n /** The key of the record. */\n rkey: string\n /** The CID of the version of the record. If not specified, then return the most recent version. */\n cid?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n uri: string\n cid?: string\n value: {}\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {\n /** The handle or DID of the repo. */\n repo: string\n /** The NSID of the record type. */\n collection: string\n /** The number of records to return. */\n limit?: number\n cursor?: string\n /** DEPRECATED: The lowest sort-ordered rkey to start from (exclusive) */\n rkeyStart?: string\n /** DEPRECATED: The highest sort-ordered rkey to stop at (exclusive) */\n rkeyEnd?: string\n /** Reverse the order of the returned records? */\n reverse?: boolean\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n cursor?: string\n records: Record[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n\nexport interface Record {\n uri: string\n cid: string\n value: {}\n [k: string]: unknown\n}\n\nexport function isRecord(v: unknown): v is Record {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.repo.listRecords#record'\n )\n}\n\nexport function validateRecord(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.repo.listRecords#record', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n /** The handle or DID of the repo. */\n repo: string\n /** The NSID of the record collection. */\n collection: string\n /** The key of the record. */\n rkey: string\n /** Validate the record? */\n validate?: boolean\n /** The record to write. */\n record: {}\n /** Compare and swap with the previous record by cid. */\n swapRecord?: string | null\n /** Compare and swap with the previous commit by cid. */\n swapCommit?: string\n [k: string]: unknown\n}\n\nexport interface OutputSchema {\n uri: string\n cid: string\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: 'application/json'\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport class InvalidSwapError extends XRPCError {\n constructor(src: XRPCError) {\n super(src.status, src.error, src.message)\n }\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n if (e.error === 'InvalidSwap') return new InvalidSwapError(e)\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n /** The handle or DID of the repo. */\n repo: string\n /** Compare and swap with the previous commit by cid. */\n swapCommit?: string\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: 'application/json'\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n}\n\nexport class InvalidSwapError extends XRPCError {\n constructor(src: XRPCError) {\n super(src.status, src.error, src.message)\n }\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n if (e.error === 'InvalidSwap') return new InvalidSwapError(e)\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {}\n\nexport type InputSchema = string | Uint8Array\n\nexport interface OutputSchema {\n blob: BlobRef\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: string\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n email: string\n handle: string\n inviteCode?: string\n password: string\n recoveryKey?: string\n [k: string]: unknown\n}\n\nexport interface OutputSchema {\n accessJwt: string\n refreshJwt: string\n handle: string\n did: string\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: 'application/json'\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport class InvalidHandleError extends XRPCError {\n constructor(src: XRPCError) {\n super(src.status, src.error, src.message)\n }\n}\n\nexport class InvalidPasswordError extends XRPCError {\n constructor(src: XRPCError) {\n super(src.status, src.error, src.message)\n }\n}\n\nexport class InvalidInviteCodeError extends XRPCError {\n constructor(src: XRPCError) {\n super(src.status, src.error, src.message)\n }\n}\n\nexport class HandleNotAvailableError extends XRPCError {\n constructor(src: XRPCError) {\n super(src.status, src.error, src.message)\n }\n}\n\nexport class UnsupportedDomainError extends XRPCError {\n constructor(src: XRPCError) {\n super(src.status, src.error, src.message)\n }\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n if (e.error === 'InvalidHandle') return new InvalidHandleError(e)\n if (e.error === 'InvalidPassword') return new InvalidPasswordError(e)\n if (e.error === 'InvalidInviteCode') return new InvalidInviteCodeError(e)\n if (e.error === 'HandleNotAvailable') return new HandleNotAvailableError(e)\n if (e.error === 'UnsupportedDomain') return new UnsupportedDomainError(e)\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n name: string\n [k: string]: unknown\n}\n\nexport type OutputSchema = AppPassword\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: 'application/json'\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport class AccountTakedownError extends XRPCError {\n constructor(src: XRPCError) {\n super(src.status, src.error, src.message)\n }\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n if (e.error === 'AccountTakedown') return new AccountTakedownError(e)\n }\n return e\n}\n\nexport interface AppPassword {\n name: string\n password: string\n createdAt: string\n [k: string]: unknown\n}\n\nexport function isAppPassword(v: unknown): v is AppPassword {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.server.createAppPassword#appPassword'\n )\n}\n\nexport function validateAppPassword(v: unknown): ValidationResult {\n return lexicons.validate(\n 'com.atproto.server.createAppPassword#appPassword',\n v,\n )\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n useCount: number\n forAccount?: string\n [k: string]: unknown\n}\n\nexport interface OutputSchema {\n code: string\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: 'application/json'\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n codeCount: number\n useCount: number\n forAccounts?: string[]\n [k: string]: unknown\n}\n\nexport interface OutputSchema {\n codes: AccountCodes[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: 'application/json'\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n\nexport interface AccountCodes {\n account: string\n codes: string[]\n [k: string]: unknown\n}\n\nexport function isAccountCodes(v: unknown): v is AccountCodes {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.server.createInviteCodes#accountCodes'\n )\n}\n\nexport function validateAccountCodes(v: unknown): ValidationResult {\n return lexicons.validate(\n 'com.atproto.server.createInviteCodes#accountCodes',\n v,\n )\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n /** Handle or other identifier supported by the server for the authenticating user. */\n identifier: string\n password: string\n [k: string]: unknown\n}\n\nexport interface OutputSchema {\n accessJwt: string\n refreshJwt: string\n handle: string\n did: string\n email?: string\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: 'application/json'\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport class AccountTakedownError extends XRPCError {\n constructor(src: XRPCError) {\n super(src.status, src.error, src.message)\n }\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n if (e.error === 'AccountTakedown') return new AccountTakedownError(e)\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n did: string\n password: string\n token: string\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: 'application/json'\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n}\n\nexport class ExpiredTokenError extends XRPCError {\n constructor(src: XRPCError) {\n super(src.status, src.error, src.message)\n }\n}\n\nexport class InvalidTokenError extends XRPCError {\n constructor(src: XRPCError) {\n super(src.status, src.error, src.message)\n }\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n if (e.error === 'ExpiredToken') return new ExpiredTokenError(e)\n if (e.error === 'InvalidToken') return new InvalidTokenError(e)\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {}\n\nexport type InputSchema = undefined\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n inviteCodeRequired?: boolean\n availableUserDomains: string[]\n links?: Links\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n\nexport interface Links {\n privacyPolicy?: string\n termsOfService?: string\n [k: string]: unknown\n}\n\nexport function isLinks(v: unknown): v is Links {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.server.describeServer#links'\n )\n}\n\nexport function validateLinks(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.server.describeServer#links', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as ComAtprotoServerDefs from './defs'\n\nexport interface QueryParams {\n includeUsed?: boolean\n createAvailable?: boolean\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n codes: ComAtprotoServerDefs.InviteCode[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport class DuplicateCreateError extends XRPCError {\n constructor(src: XRPCError) {\n super(src.status, src.error, src.message)\n }\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n if (e.error === 'DuplicateCreate') return new DuplicateCreateError(e)\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n handle: string\n did: string\n email?: string\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n passwords: AppPassword[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport class AccountTakedownError extends XRPCError {\n constructor(src: XRPCError) {\n super(src.status, src.error, src.message)\n }\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n if (e.error === 'AccountTakedown') return new AccountTakedownError(e)\n }\n return e\n}\n\nexport interface AppPassword {\n name: string\n createdAt: string\n [k: string]: unknown\n}\n\nexport function isAppPassword(v: unknown): v is AppPassword {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.server.listAppPasswords#appPassword'\n )\n}\n\nexport function validateAppPassword(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.server.listAppPasswords#appPassword', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n accessJwt: string\n refreshJwt: string\n handle: string\n did: string\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport class AccountTakedownError extends XRPCError {\n constructor(src: XRPCError) {\n super(src.status, src.error, src.message)\n }\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n if (e.error === 'AccountTakedown') return new AccountTakedownError(e)\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {}\n\nexport type InputSchema = undefined\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n email: string\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: 'application/json'\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n token: string\n password: string\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: 'application/json'\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n}\n\nexport class ExpiredTokenError extends XRPCError {\n constructor(src: XRPCError) {\n super(src.status, src.error, src.message)\n }\n}\n\nexport class InvalidTokenError extends XRPCError {\n constructor(src: XRPCError) {\n super(src.status, src.error, src.message)\n }\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n if (e.error === 'ExpiredToken') return new ExpiredTokenError(e)\n if (e.error === 'InvalidToken') return new InvalidTokenError(e)\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n name: string\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: 'application/json'\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {\n /** The DID of the repo. */\n did: string\n /** The CID of the blob to fetch */\n cid: string\n}\n\nexport type InputSchema = undefined\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: Uint8Array\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {\n /** The DID of the repo. */\n did: string\n cids: string[]\n}\n\nexport type InputSchema = undefined\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: Uint8Array\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {\n /** The DID of the repo. */\n did: string\n /** The commit to get the checkout from. Defaults to current HEAD. */\n commit?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: Uint8Array\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {\n /** The DID of the repo. */\n did: string\n /** The most recent commit */\n latest?: string\n /** The earliest commit to start from */\n earliest?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n commits: string[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {\n /** The DID of the repo. */\n did: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n root: string\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {\n /** The DID of the repo. */\n did: string\n collection: string\n rkey: string\n /** An optional past commit CID. */\n commit?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: Uint8Array\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {\n /** The DID of the repo. */\n did: string\n /** The earliest commit in the commit range (not inclusive) */\n earliest?: string\n /** The latest commit in the commit range (inclusive) */\n latest?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: Uint8Array\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {\n /** The DID of the repo. */\n did: string\n /** The most recent commit */\n latest?: string\n /** The earliest commit to start from */\n earliest?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n cids: string[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {\n limit?: number\n cursor?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n cursor?: string\n repos: Repo[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n\nexport interface Repo {\n did: string\n head: string\n [k: string]: unknown\n}\n\nexport function isRepo(v: unknown): v is Repo {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.sync.listRepos#repo'\n )\n}\n\nexport function validateRepo(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.sync.listRepos#repo', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {\n /** Hostname of the service that is notifying of update. */\n hostname: string\n}\n\nexport type InputSchema = undefined\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {\n /** Hostname of the service that is requesting to be crawled. */\n hostname: string\n}\n\nexport type InputSchema = undefined\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as AppBskyActorDefs from './defs'\n\nexport interface QueryParams {\n actor: string\n}\n\nexport type InputSchema = undefined\nexport type OutputSchema = AppBskyActorDefs.ProfileViewDetailed\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as AppBskyActorDefs from './defs'\n\nexport interface QueryParams {\n actors: string[]\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n profiles: AppBskyActorDefs.ProfileViewDetailed[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as AppBskyActorDefs from './defs'\n\nexport interface QueryParams {\n limit?: number\n cursor?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n cursor?: string\n actors: AppBskyActorDefs.ProfileView[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as AppBskyActorDefs from './defs'\n\nexport interface QueryParams {\n term?: string\n limit?: number\n cursor?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n cursor?: string\n actors: AppBskyActorDefs.ProfileView[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as AppBskyActorDefs from './defs'\n\nexport interface QueryParams {\n term?: string\n limit?: number\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n actors: AppBskyActorDefs.ProfileViewBasic[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as AppBskyFeedDefs from './defs'\n\nexport interface QueryParams {\n actor: string\n limit?: number\n cursor?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n cursor?: string\n feed: AppBskyFeedDefs.FeedViewPost[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport class BlockedActorError extends XRPCError {\n constructor(src: XRPCError) {\n super(src.status, src.error, src.message)\n }\n}\n\nexport class BlockedByActorError extends XRPCError {\n constructor(src: XRPCError) {\n super(src.status, src.error, src.message)\n }\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n if (e.error === 'BlockedActor') return new BlockedActorError(e)\n if (e.error === 'BlockedByActor') return new BlockedByActorError(e)\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as AppBskyActorDefs from '../actor/defs'\n\nexport interface QueryParams {\n uri: string\n cid?: string\n limit?: number\n cursor?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n uri: string\n cid?: string\n cursor?: string\n likes: Like[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n\nexport interface Like {\n indexedAt: string\n createdAt: string\n actor: AppBskyActorDefs.ProfileView\n [k: string]: unknown\n}\n\nexport function isLike(v: unknown): v is Like {\n return (\n isObj(v) && hasProp(v, '$type') && v.$type === 'app.bsky.feed.getLikes#like'\n )\n}\n\nexport function validateLike(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.feed.getLikes#like', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as AppBskyFeedDefs from './defs'\n\nexport interface QueryParams {\n uri: string\n depth?: number\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n thread:\n | AppBskyFeedDefs.ThreadViewPost\n | AppBskyFeedDefs.NotFoundPost\n | AppBskyFeedDefs.BlockedPost\n | { $type: string; [k: string]: unknown }\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport class NotFoundError extends XRPCError {\n constructor(src: XRPCError) {\n super(src.status, src.error, src.message)\n }\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n if (e.error === 'NotFound') return new NotFoundError(e)\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as AppBskyFeedDefs from './defs'\n\nexport interface QueryParams {\n uris: string[]\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n posts: AppBskyFeedDefs.PostView[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as AppBskyActorDefs from '../actor/defs'\n\nexport interface QueryParams {\n uri: string\n cid?: string\n limit?: number\n cursor?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n uri: string\n cid?: string\n cursor?: string\n repostedBy: AppBskyActorDefs.ProfileView[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as AppBskyFeedDefs from './defs'\n\nexport interface QueryParams {\n algorithm?: string\n limit?: number\n cursor?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n cursor?: string\n feed: AppBskyFeedDefs.FeedViewPost[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as AppBskyActorDefs from '../actor/defs'\n\nexport interface QueryParams {\n limit?: number\n cursor?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n cursor?: string\n blocks: AppBskyActorDefs.ProfileView[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as AppBskyActorDefs from '../actor/defs'\n\nexport interface QueryParams {\n actor: string\n limit?: number\n cursor?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n subject: AppBskyActorDefs.ProfileView\n cursor?: string\n followers: AppBskyActorDefs.ProfileView[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as AppBskyActorDefs from '../actor/defs'\n\nexport interface QueryParams {\n actor: string\n limit?: number\n cursor?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n subject: AppBskyActorDefs.ProfileView\n cursor?: string\n follows: AppBskyActorDefs.ProfileView[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as AppBskyGraphDefs from './defs'\n\nexport interface QueryParams {\n list: string\n limit?: number\n cursor?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n cursor?: string\n list: AppBskyGraphDefs.ListView\n items: AppBskyGraphDefs.ListItemView[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as AppBskyGraphDefs from './defs'\n\nexport interface QueryParams {\n limit?: number\n cursor?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n cursor?: string\n lists: AppBskyGraphDefs.ListView[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as AppBskyGraphDefs from './defs'\n\nexport interface QueryParams {\n actor: string\n limit?: number\n cursor?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n cursor?: string\n lists: AppBskyGraphDefs.ListView[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as AppBskyActorDefs from '../actor/defs'\n\nexport interface QueryParams {\n limit?: number\n cursor?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n cursor?: string\n mutes: AppBskyActorDefs.ProfileView[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n actor: string\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: 'application/json'\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n list: string\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: 'application/json'\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n actor: string\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: 'application/json'\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n list: string\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: 'application/json'\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {\n seenAt?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n count: number\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as AppBskyActorDefs from '../actor/defs'\nimport * as ComAtprotoLabelDefs from '../../../com/atproto/label/defs'\n\nexport interface QueryParams {\n limit?: number\n cursor?: string\n seenAt?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n cursor?: string\n notifications: Notification[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n\nexport interface Notification {\n uri: string\n cid: string\n author: AppBskyActorDefs.ProfileView\n /** Expected values are 'like', 'repost', 'follow', 'mention', 'reply', and 'quote'. */\n reason:\n | 'like'\n | 'repost'\n | 'follow'\n | 'mention'\n | 'reply'\n | 'quote'\n | (string & {})\n reasonSubject?: string\n record: {}\n isRead: boolean\n indexedAt: string\n labels?: ComAtprotoLabelDefs.Label[]\n [k: string]: unknown\n}\n\nexport function isNotification(v: unknown): v is Notification {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'app.bsky.notification.listNotifications#notification'\n )\n}\n\nexport function validateNotification(v: unknown): ValidationResult {\n return lexicons.validate(\n 'app.bsky.notification.listNotifications#notification',\n v,\n )\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n seenAt: string\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n qp?: QueryParams\n encoding: 'application/json'\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as AppBskyFeedDefs from '../feed/defs'\n\nexport interface QueryParams {\n includeNsfw?: boolean\n limit?: number\n cursor?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n cursor?: string\n feed: AppBskyFeedDefs.FeedViewPost[]\n [k: string]: unknown\n}\n\nexport interface CallOptions {\n headers?: Headers\n}\n\nexport interface Response {\n success: boolean\n headers: Headers\n data: OutputSchema\n}\n\nexport function toKnownErr(e: any) {\n if (e instanceof XRPCError) {\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as ComAtprotoRepoStrongRef from '../repo/strongRef'\nimport * as ComAtprotoModerationDefs from '../moderation/defs'\nimport * as ComAtprotoServerDefs from '../server/defs'\nimport * as ComAtprotoLabelDefs from '../label/defs'\n\nexport interface ActionView {\n id: number\n action: ActionType\n subject:\n | RepoRef\n | ComAtprotoRepoStrongRef.Main\n | { $type: string; [k: string]: unknown }\n subjectBlobCids: string[]\n createLabelVals?: string[]\n negateLabelVals?: string[]\n reason: string\n createdBy: string\n createdAt: string\n reversal?: ActionReversal\n resolvedReportIds: number[]\n [k: string]: unknown\n}\n\nexport function isActionView(v: unknown): v is ActionView {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.admin.defs#actionView'\n )\n}\n\nexport function validateActionView(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.admin.defs#actionView', v)\n}\n\nexport interface ActionViewDetail {\n id: number\n action: ActionType\n subject: RepoView | RecordView | { $type: string; [k: string]: unknown }\n subjectBlobs: BlobView[]\n createLabelVals?: string[]\n negateLabelVals?: string[]\n reason: string\n createdBy: string\n createdAt: string\n reversal?: ActionReversal\n resolvedReports: ReportView[]\n [k: string]: unknown\n}\n\nexport function isActionViewDetail(v: unknown): v is ActionViewDetail {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.admin.defs#actionViewDetail'\n )\n}\n\nexport function validateActionViewDetail(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.admin.defs#actionViewDetail', v)\n}\n\nexport interface ActionViewCurrent {\n id: number\n action: ActionType\n [k: string]: unknown\n}\n\nexport function isActionViewCurrent(v: unknown): v is ActionViewCurrent {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.admin.defs#actionViewCurrent'\n )\n}\n\nexport function validateActionViewCurrent(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.admin.defs#actionViewCurrent', v)\n}\n\nexport interface ActionReversal {\n reason: string\n createdBy: string\n createdAt: string\n [k: string]: unknown\n}\n\nexport function isActionReversal(v: unknown): v is ActionReversal {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.admin.defs#actionReversal'\n )\n}\n\nexport function validateActionReversal(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.admin.defs#actionReversal', v)\n}\n\nexport type ActionType =\n | 'lex:com.atproto.admin.defs#takedown'\n | 'lex:com.atproto.admin.defs#flag'\n | 'lex:com.atproto.admin.defs#acknowledge'\n | 'lex:com.atproto.admin.defs#escalate'\n | (string & {})\n\n/** Moderation action type: Takedown. Indicates that content should not be served by the PDS. */\nexport const TAKEDOWN = 'com.atproto.admin.defs#takedown'\n/** Moderation action type: Flag. Indicates that the content was reviewed and considered to violate PDS rules, but may still be served. */\nexport const FLAG = 'com.atproto.admin.defs#flag'\n/** Moderation action type: Acknowledge. Indicates that the content was reviewed and not considered to violate PDS rules. */\nexport const ACKNOWLEDGE = 'com.atproto.admin.defs#acknowledge'\n/** Moderation action type: Escalate. Indicates that the content has been flagged for additional review. */\nexport const ESCALATE = 'com.atproto.admin.defs#escalate'\n\nexport interface ReportView {\n id: number\n reasonType: ComAtprotoModerationDefs.ReasonType\n reason?: string\n subject:\n | RepoRef\n | ComAtprotoRepoStrongRef.Main\n | { $type: string; [k: string]: unknown }\n reportedBy: string\n createdAt: string\n resolvedByActionIds: number[]\n [k: string]: unknown\n}\n\nexport function isReportView(v: unknown): v is ReportView {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.admin.defs#reportView'\n )\n}\n\nexport function validateReportView(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.admin.defs#reportView', v)\n}\n\nexport interface ReportViewDetail {\n id: number\n reasonType: ComAtprotoModerationDefs.ReasonType\n reason?: string\n subject: RepoView | RecordView | { $type: string; [k: string]: unknown }\n reportedBy: string\n createdAt: string\n resolvedByActions: ActionView[]\n [k: string]: unknown\n}\n\nexport function isReportViewDetail(v: unknown): v is ReportViewDetail {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.admin.defs#reportViewDetail'\n )\n}\n\nexport function validateReportViewDetail(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.admin.defs#reportViewDetail', v)\n}\n\nexport interface RepoView {\n did: string\n handle: string\n email?: string\n relatedRecords: {}[]\n indexedAt: string\n moderation: Moderation\n invitedBy?: ComAtprotoServerDefs.InviteCode\n invitesDisabled?: boolean\n [k: string]: unknown\n}\n\nexport function isRepoView(v: unknown): v is RepoView {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.admin.defs#repoView'\n )\n}\n\nexport function validateRepoView(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.admin.defs#repoView', v)\n}\n\nexport interface RepoViewDetail {\n did: string\n handle: string\n email?: string\n relatedRecords: {}[]\n indexedAt: string\n moderation: ModerationDetail\n labels?: ComAtprotoLabelDefs.Label[]\n invitedBy?: ComAtprotoServerDefs.InviteCode\n invites?: ComAtprotoServerDefs.InviteCode[]\n invitesDisabled?: boolean\n [k: string]: unknown\n}\n\nexport function isRepoViewDetail(v: unknown): v is RepoViewDetail {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.admin.defs#repoViewDetail'\n )\n}\n\nexport function validateRepoViewDetail(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.admin.defs#repoViewDetail', v)\n}\n\nexport interface RepoRef {\n did: string\n [k: string]: unknown\n}\n\nexport function isRepoRef(v: unknown): v is RepoRef {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.admin.defs#repoRef'\n )\n}\n\nexport function validateRepoRef(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.admin.defs#repoRef', v)\n}\n\nexport interface RecordView {\n uri: string\n cid: string\n value: {}\n blobCids: string[]\n indexedAt: string\n moderation: Moderation\n repo: RepoView\n [k: string]: unknown\n}\n\nexport function isRecordView(v: unknown): v is RecordView {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.admin.defs#recordView'\n )\n}\n\nexport function validateRecordView(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.admin.defs#recordView', v)\n}\n\nexport interface RecordViewDetail {\n uri: string\n cid: string\n value: {}\n blobs: BlobView[]\n labels?: ComAtprotoLabelDefs.Label[]\n indexedAt: string\n moderation: ModerationDetail\n repo: RepoView\n [k: string]: unknown\n}\n\nexport function isRecordViewDetail(v: unknown): v is RecordViewDetail {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.admin.defs#recordViewDetail'\n )\n}\n\nexport function validateRecordViewDetail(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.admin.defs#recordViewDetail', v)\n}\n\nexport interface Moderation {\n currentAction?: ActionViewCurrent\n [k: string]: unknown\n}\n\nexport function isModeration(v: unknown): v is Moderation {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.admin.defs#moderation'\n )\n}\n\nexport function validateModeration(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.admin.defs#moderation', v)\n}\n\nexport interface ModerationDetail {\n currentAction?: ActionViewCurrent\n actions: ActionView[]\n reports: ReportView[]\n [k: string]: unknown\n}\n\nexport function isModerationDetail(v: unknown): v is ModerationDetail {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.admin.defs#moderationDetail'\n )\n}\n\nexport function validateModerationDetail(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.admin.defs#moderationDetail', v)\n}\n\nexport interface BlobView {\n cid: string\n mimeType: string\n size: number\n createdAt: string\n details?:\n | ImageDetails\n | VideoDetails\n | { $type: string; [k: string]: unknown }\n moderation?: Moderation\n [k: string]: unknown\n}\n\nexport function isBlobView(v: unknown): v is BlobView {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.admin.defs#blobView'\n )\n}\n\nexport function validateBlobView(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.admin.defs#blobView', v)\n}\n\nexport interface ImageDetails {\n width: number\n height: number\n [k: string]: unknown\n}\n\nexport function isImageDetails(v: unknown): v is ImageDetails {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.admin.defs#imageDetails'\n )\n}\n\nexport function validateImageDetails(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.admin.defs#imageDetails', v)\n}\n\nexport interface VideoDetails {\n width: number\n height: number\n length: number\n [k: string]: unknown\n}\n\nexport function isVideoDetails(v: unknown): v is VideoDetails {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.admin.defs#videoDetails'\n )\n}\n\nexport function validateVideoDetails(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.admin.defs#videoDetails', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\n/** Metadata tag on an atproto resource (eg, repo or record) */\nexport interface Label {\n /** DID of the actor who created this label */\n src: string\n /** AT URI of the record, repository (account), or other resource which this label applies to */\n uri: string\n /** optionally, CID specifying the specific version of 'uri' resource this label applies to */\n cid?: string\n /** the short string name of the value or type of this label */\n val: string\n /** if true, this is a negation label, overwriting a previous label */\n neg?: boolean\n /** timestamp when this label was created */\n cts: string\n [k: string]: unknown\n}\n\nexport function isLabel(v: unknown): v is Label {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.label.defs#label'\n )\n}\n\nexport function validateLabel(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.label.defs#label', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as ComAtprotoLabelDefs from './defs'\n\nexport interface Labels {\n seq: number\n labels: ComAtprotoLabelDefs.Label[]\n [k: string]: unknown\n}\n\nexport function isLabels(v: unknown): v is Labels {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.label.subscribeLabels#labels'\n )\n}\n\nexport function validateLabels(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.label.subscribeLabels#labels', v)\n}\n\nexport interface Info {\n name: 'OutdatedCursor' | (string & {})\n message?: string\n [k: string]: unknown\n}\n\nexport function isInfo(v: unknown): v is Info {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.label.subscribeLabels#info'\n )\n}\n\nexport function validateInfo(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.label.subscribeLabels#info', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport type ReasonType =\n | 'com.atproto.moderation.defs#reasonSpam'\n | 'com.atproto.moderation.defs#reasonViolation'\n | 'com.atproto.moderation.defs#reasonMisleading'\n | 'com.atproto.moderation.defs#reasonSexual'\n | 'com.atproto.moderation.defs#reasonRude'\n | 'com.atproto.moderation.defs#reasonOther'\n | (string & {})\n\n/** Spam: frequent unwanted promotion, replies, mentions */\nexport const REASONSPAM = 'com.atproto.moderation.defs#reasonSpam'\n/** Direct violation of server rules, laws, terms of service */\nexport const REASONVIOLATION = 'com.atproto.moderation.defs#reasonViolation'\n/** Misleading identity, affiliation, or content */\nexport const REASONMISLEADING = 'com.atproto.moderation.defs#reasonMisleading'\n/** Unwanted or mis-labeled sexual content */\nexport const REASONSEXUAL = 'com.atproto.moderation.defs#reasonSexual'\n/** Rude, harassing, explicit, or otherwise unwelcoming behavior */\nexport const REASONRUDE = 'com.atproto.moderation.defs#reasonRude'\n/** Other: reports not falling under another report category */\nexport const REASONOTHER = 'com.atproto.moderation.defs#reasonOther'\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface Main {\n uri: string\n cid: string\n [k: string]: unknown\n}\n\nexport function isMain(v: unknown): v is Main {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n (v.$type === 'com.atproto.repo.strongRef#main' ||\n v.$type === 'com.atproto.repo.strongRef')\n )\n}\n\nexport function validateMain(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.repo.strongRef#main', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface InviteCode {\n code: string\n available: number\n disabled: boolean\n forAccount: string\n createdBy: string\n createdAt: string\n uses: InviteCodeUse[]\n [k: string]: unknown\n}\n\nexport function isInviteCode(v: unknown): v is InviteCode {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.server.defs#inviteCode'\n )\n}\n\nexport function validateInviteCode(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.server.defs#inviteCode', v)\n}\n\nexport interface InviteCodeUse {\n usedBy: string\n usedAt: string\n [k: string]: unknown\n}\n\nexport function isInviteCodeUse(v: unknown): v is InviteCodeUse {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.server.defs#inviteCodeUse'\n )\n}\n\nexport function validateInviteCodeUse(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.server.defs#inviteCodeUse', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface Commit {\n seq: number\n rebase: boolean\n tooBig: boolean\n repo: string\n commit: CID\n prev: CID | null\n /** CAR file containing relevant blocks */\n blocks: Uint8Array\n ops: RepoOp[]\n blobs: CID[]\n time: string\n [k: string]: unknown\n}\n\nexport function isCommit(v: unknown): v is Commit {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.sync.subscribeRepos#commit'\n )\n}\n\nexport function validateCommit(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.sync.subscribeRepos#commit', v)\n}\n\nexport interface Handle {\n seq: number\n did: string\n handle: string\n time: string\n [k: string]: unknown\n}\n\nexport function isHandle(v: unknown): v is Handle {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.sync.subscribeRepos#handle'\n )\n}\n\nexport function validateHandle(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.sync.subscribeRepos#handle', v)\n}\n\nexport interface Migrate {\n seq: number\n did: string\n migrateTo: string | null\n time: string\n [k: string]: unknown\n}\n\nexport function isMigrate(v: unknown): v is Migrate {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.sync.subscribeRepos#migrate'\n )\n}\n\nexport function validateMigrate(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.sync.subscribeRepos#migrate', v)\n}\n\nexport interface Tombstone {\n seq: number\n did: string\n time: string\n [k: string]: unknown\n}\n\nexport function isTombstone(v: unknown): v is Tombstone {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.sync.subscribeRepos#tombstone'\n )\n}\n\nexport function validateTombstone(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.sync.subscribeRepos#tombstone', v)\n}\n\nexport interface Info {\n name: 'OutdatedCursor' | (string & {})\n message?: string\n [k: string]: unknown\n}\n\nexport function isInfo(v: unknown): v is Info {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.sync.subscribeRepos#info'\n )\n}\n\nexport function validateInfo(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.sync.subscribeRepos#info', v)\n}\n\nexport interface RepoOp {\n action: 'create' | 'update' | 'delete' | (string & {})\n path: string\n cid: CID | null\n [k: string]: unknown\n}\n\nexport function isRepoOp(v: unknown): v is RepoOp {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.sync.subscribeRepos#repoOp'\n )\n}\n\nexport function validateRepoOp(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.sync.subscribeRepos#repoOp', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as ComAtprotoLabelDefs from '../../../com/atproto/label/defs'\nimport * as AppBskyGraphDefs from '../graph/defs'\n\nexport interface ProfileViewBasic {\n did: string\n handle: string\n displayName?: string\n avatar?: string\n viewer?: ViewerState\n labels?: ComAtprotoLabelDefs.Label[]\n [k: string]: unknown\n}\n\nexport function isProfileViewBasic(v: unknown): v is ProfileViewBasic {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'app.bsky.actor.defs#profileViewBasic'\n )\n}\n\nexport function validateProfileViewBasic(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.actor.defs#profileViewBasic', v)\n}\n\nexport interface ProfileView {\n did: string\n handle: string\n displayName?: string\n description?: string\n avatar?: string\n indexedAt?: string\n viewer?: ViewerState\n labels?: ComAtprotoLabelDefs.Label[]\n [k: string]: unknown\n}\n\nexport function isProfileView(v: unknown): v is ProfileView {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'app.bsky.actor.defs#profileView'\n )\n}\n\nexport function validateProfileView(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.actor.defs#profileView', v)\n}\n\nexport interface ProfileViewDetailed {\n did: string\n handle: string\n displayName?: string\n description?: string\n avatar?: string\n banner?: string\n followersCount?: number\n followsCount?: number\n postsCount?: number\n indexedAt?: string\n viewer?: ViewerState\n labels?: ComAtprotoLabelDefs.Label[]\n [k: string]: unknown\n}\n\nexport function isProfileViewDetailed(v: unknown): v is ProfileViewDetailed {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'app.bsky.actor.defs#profileViewDetailed'\n )\n}\n\nexport function validateProfileViewDetailed(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.actor.defs#profileViewDetailed', v)\n}\n\nexport interface ViewerState {\n muted?: boolean\n mutedByList?: AppBskyGraphDefs.ListViewBasic\n blockedBy?: boolean\n blocking?: string\n following?: string\n followedBy?: string\n [k: string]: unknown\n}\n\nexport function isViewerState(v: unknown): v is ViewerState {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'app.bsky.actor.defs#viewerState'\n )\n}\n\nexport function validateViewerState(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.actor.defs#viewerState', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface Record {\n displayName?: string\n description?: string\n avatar?: BlobRef\n banner?: BlobRef\n [k: string]: unknown\n}\n\nexport function isRecord(v: unknown): v is Record {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n (v.$type === 'app.bsky.actor.profile#main' ||\n v.$type === 'app.bsky.actor.profile')\n )\n}\n\nexport function validateRecord(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.actor.profile#main', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface Main {\n external: External\n [k: string]: unknown\n}\n\nexport function isMain(v: unknown): v is Main {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n (v.$type === 'app.bsky.embed.external#main' ||\n v.$type === 'app.bsky.embed.external')\n )\n}\n\nexport function validateMain(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.embed.external#main', v)\n}\n\nexport interface External {\n uri: string\n title: string\n description: string\n thumb?: BlobRef\n [k: string]: unknown\n}\n\nexport function isExternal(v: unknown): v is External {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'app.bsky.embed.external#external'\n )\n}\n\nexport function validateExternal(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.embed.external#external', v)\n}\n\nexport interface View {\n external: ViewExternal\n [k: string]: unknown\n}\n\nexport function isView(v: unknown): v is View {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'app.bsky.embed.external#view'\n )\n}\n\nexport function validateView(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.embed.external#view', v)\n}\n\nexport interface ViewExternal {\n uri: string\n title: string\n description: string\n thumb?: string\n [k: string]: unknown\n}\n\nexport function isViewExternal(v: unknown): v is ViewExternal {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'app.bsky.embed.external#viewExternal'\n )\n}\n\nexport function validateViewExternal(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.embed.external#viewExternal', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface Main {\n images: Image[]\n [k: string]: unknown\n}\n\nexport function isMain(v: unknown): v is Main {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n (v.$type === 'app.bsky.embed.images#main' ||\n v.$type === 'app.bsky.embed.images')\n )\n}\n\nexport function validateMain(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.embed.images#main', v)\n}\n\nexport interface Image {\n image: BlobRef\n alt: string\n [k: string]: unknown\n}\n\nexport function isImage(v: unknown): v is Image {\n return (\n isObj(v) && hasProp(v, '$type') && v.$type === 'app.bsky.embed.images#image'\n )\n}\n\nexport function validateImage(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.embed.images#image', v)\n}\n\nexport interface View {\n images: ViewImage[]\n [k: string]: unknown\n}\n\nexport function isView(v: unknown): v is View {\n return (\n isObj(v) && hasProp(v, '$type') && v.$type === 'app.bsky.embed.images#view'\n )\n}\n\nexport function validateView(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.embed.images#view', v)\n}\n\nexport interface ViewImage {\n thumb: string\n fullsize: string\n alt: string\n [k: string]: unknown\n}\n\nexport function isViewImage(v: unknown): v is ViewImage {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'app.bsky.embed.images#viewImage'\n )\n}\n\nexport function validateViewImage(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.embed.images#viewImage', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as ComAtprotoRepoStrongRef from '../../../com/atproto/repo/strongRef'\nimport * as AppBskyActorDefs from '../actor/defs'\nimport * as ComAtprotoLabelDefs from '../../../com/atproto/label/defs'\nimport * as AppBskyEmbedImages from './images'\nimport * as AppBskyEmbedExternal from './external'\nimport * as AppBskyEmbedRecordWithMedia from './recordWithMedia'\n\nexport interface Main {\n record: ComAtprotoRepoStrongRef.Main\n [k: string]: unknown\n}\n\nexport function isMain(v: unknown): v is Main {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n (v.$type === 'app.bsky.embed.record#main' ||\n v.$type === 'app.bsky.embed.record')\n )\n}\n\nexport function validateMain(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.embed.record#main', v)\n}\n\nexport interface View {\n record:\n | ViewRecord\n | ViewNotFound\n | ViewBlocked\n | { $type: string; [k: string]: unknown }\n [k: string]: unknown\n}\n\nexport function isView(v: unknown): v is View {\n return (\n isObj(v) && hasProp(v, '$type') && v.$type === 'app.bsky.embed.record#view'\n )\n}\n\nexport function validateView(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.embed.record#view', v)\n}\n\nexport interface ViewRecord {\n uri: string\n cid: string\n author: AppBskyActorDefs.ProfileViewBasic\n value: {}\n labels?: ComAtprotoLabelDefs.Label[]\n embeds?: (\n | AppBskyEmbedImages.View\n | AppBskyEmbedExternal.View\n | View\n | AppBskyEmbedRecordWithMedia.View\n | { $type: string; [k: string]: unknown }\n )[]\n indexedAt: string\n [k: string]: unknown\n}\n\nexport function isViewRecord(v: unknown): v is ViewRecord {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'app.bsky.embed.record#viewRecord'\n )\n}\n\nexport function validateViewRecord(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.embed.record#viewRecord', v)\n}\n\nexport interface ViewNotFound {\n uri: string\n [k: string]: unknown\n}\n\nexport function isViewNotFound(v: unknown): v is ViewNotFound {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'app.bsky.embed.record#viewNotFound'\n )\n}\n\nexport function validateViewNotFound(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.embed.record#viewNotFound', v)\n}\n\nexport interface ViewBlocked {\n uri: string\n [k: string]: unknown\n}\n\nexport function isViewBlocked(v: unknown): v is ViewBlocked {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'app.bsky.embed.record#viewBlocked'\n )\n}\n\nexport function validateViewBlocked(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.embed.record#viewBlocked', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as AppBskyEmbedRecord from './record'\nimport * as AppBskyEmbedImages from './images'\nimport * as AppBskyEmbedExternal from './external'\n\nexport interface Main {\n record: AppBskyEmbedRecord.Main\n media:\n | AppBskyEmbedImages.Main\n | AppBskyEmbedExternal.Main\n | { $type: string; [k: string]: unknown }\n [k: string]: unknown\n}\n\nexport function isMain(v: unknown): v is Main {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n (v.$type === 'app.bsky.embed.recordWithMedia#main' ||\n v.$type === 'app.bsky.embed.recordWithMedia')\n )\n}\n\nexport function validateMain(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.embed.recordWithMedia#main', v)\n}\n\nexport interface View {\n record: AppBskyEmbedRecord.View\n media:\n | AppBskyEmbedImages.View\n | AppBskyEmbedExternal.View\n | { $type: string; [k: string]: unknown }\n [k: string]: unknown\n}\n\nexport function isView(v: unknown): v is View {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'app.bsky.embed.recordWithMedia#view'\n )\n}\n\nexport function validateView(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.embed.recordWithMedia#view', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as AppBskyActorDefs from '../actor/defs'\nimport * as AppBskyEmbedImages from '../embed/images'\nimport * as AppBskyEmbedExternal from '../embed/external'\nimport * as AppBskyEmbedRecord from '../embed/record'\nimport * as AppBskyEmbedRecordWithMedia from '../embed/recordWithMedia'\nimport * as ComAtprotoLabelDefs from '../../../com/atproto/label/defs'\n\nexport interface PostView {\n uri: string\n cid: string\n author: AppBskyActorDefs.ProfileViewBasic\n record: {}\n embed?:\n | AppBskyEmbedImages.View\n | AppBskyEmbedExternal.View\n | AppBskyEmbedRecord.View\n | AppBskyEmbedRecordWithMedia.View\n | { $type: string; [k: string]: unknown }\n replyCount?: number\n repostCount?: number\n likeCount?: number\n indexedAt: string\n viewer?: ViewerState\n labels?: ComAtprotoLabelDefs.Label[]\n [k: string]: unknown\n}\n\nexport function isPostView(v: unknown): v is PostView {\n return (\n isObj(v) && hasProp(v, '$type') && v.$type === 'app.bsky.feed.defs#postView'\n )\n}\n\nexport function validatePostView(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.feed.defs#postView', v)\n}\n\nexport interface ViewerState {\n repost?: string\n like?: string\n [k: string]: unknown\n}\n\nexport function isViewerState(v: unknown): v is ViewerState {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'app.bsky.feed.defs#viewerState'\n )\n}\n\nexport function validateViewerState(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.feed.defs#viewerState', v)\n}\n\nexport interface FeedViewPost {\n post: PostView\n reply?: ReplyRef\n reason?: ReasonRepost | { $type: string; [k: string]: unknown }\n [k: string]: unknown\n}\n\nexport function isFeedViewPost(v: unknown): v is FeedViewPost {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'app.bsky.feed.defs#feedViewPost'\n )\n}\n\nexport function validateFeedViewPost(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.feed.defs#feedViewPost', v)\n}\n\nexport interface ReplyRef {\n root: PostView\n parent: PostView\n [k: string]: unknown\n}\n\nexport function isReplyRef(v: unknown): v is ReplyRef {\n return (\n isObj(v) && hasProp(v, '$type') && v.$type === 'app.bsky.feed.defs#replyRef'\n )\n}\n\nexport function validateReplyRef(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.feed.defs#replyRef', v)\n}\n\nexport interface ReasonRepost {\n by: AppBskyActorDefs.ProfileViewBasic\n indexedAt: string\n [k: string]: unknown\n}\n\nexport function isReasonRepost(v: unknown): v is ReasonRepost {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'app.bsky.feed.defs#reasonRepost'\n )\n}\n\nexport function validateReasonRepost(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.feed.defs#reasonRepost', v)\n}\n\nexport interface ThreadViewPost {\n post: PostView\n parent?:\n | ThreadViewPost\n | NotFoundPost\n | BlockedPost\n | { $type: string; [k: string]: unknown }\n replies?: (\n | ThreadViewPost\n | NotFoundPost\n | BlockedPost\n | { $type: string; [k: string]: unknown }\n )[]\n [k: string]: unknown\n}\n\nexport function isThreadViewPost(v: unknown): v is ThreadViewPost {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'app.bsky.feed.defs#threadViewPost'\n )\n}\n\nexport function validateThreadViewPost(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.feed.defs#threadViewPost', v)\n}\n\nexport interface NotFoundPost {\n uri: string\n notFound: true\n [k: string]: unknown\n}\n\nexport function isNotFoundPost(v: unknown): v is NotFoundPost {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'app.bsky.feed.defs#notFoundPost'\n )\n}\n\nexport function validateNotFoundPost(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.feed.defs#notFoundPost', v)\n}\n\nexport interface BlockedPost {\n uri: string\n blocked: true\n [k: string]: unknown\n}\n\nexport function isBlockedPost(v: unknown): v is BlockedPost {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'app.bsky.feed.defs#blockedPost'\n )\n}\n\nexport function validateBlockedPost(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.feed.defs#blockedPost', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as ComAtprotoRepoStrongRef from '../../../com/atproto/repo/strongRef'\n\nexport interface Record {\n subject: ComAtprotoRepoStrongRef.Main\n createdAt: string\n [k: string]: unknown\n}\n\nexport function isRecord(v: unknown): v is Record {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n (v.$type === 'app.bsky.feed.like#main' || v.$type === 'app.bsky.feed.like')\n )\n}\n\nexport function validateRecord(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.feed.like#main', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as AppBskyRichtextFacet from '../richtext/facet'\nimport * as AppBskyEmbedImages from '../embed/images'\nimport * as AppBskyEmbedExternal from '../embed/external'\nimport * as AppBskyEmbedRecord from '../embed/record'\nimport * as AppBskyEmbedRecordWithMedia from '../embed/recordWithMedia'\nimport * as ComAtprotoRepoStrongRef from '../../../com/atproto/repo/strongRef'\n\nexport interface Record {\n text: string\n /** Deprecated: replaced by app.bsky.richtext.facet. */\n entities?: Entity[]\n facets?: AppBskyRichtextFacet.Main[]\n reply?: ReplyRef\n embed?:\n | AppBskyEmbedImages.Main\n | AppBskyEmbedExternal.Main\n | AppBskyEmbedRecord.Main\n | AppBskyEmbedRecordWithMedia.Main\n | { $type: string; [k: string]: unknown }\n createdAt: string\n [k: string]: unknown\n}\n\nexport function isRecord(v: unknown): v is Record {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n (v.$type === 'app.bsky.feed.post#main' || v.$type === 'app.bsky.feed.post')\n )\n}\n\nexport function validateRecord(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.feed.post#main', v)\n}\n\nexport interface ReplyRef {\n root: ComAtprotoRepoStrongRef.Main\n parent: ComAtprotoRepoStrongRef.Main\n [k: string]: unknown\n}\n\nexport function isReplyRef(v: unknown): v is ReplyRef {\n return (\n isObj(v) && hasProp(v, '$type') && v.$type === 'app.bsky.feed.post#replyRef'\n )\n}\n\nexport function validateReplyRef(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.feed.post#replyRef', v)\n}\n\n/** Deprecated: use facets instead. */\nexport interface Entity {\n index: TextSlice\n /** Expected values are 'mention' and 'link'. */\n type: string\n value: string\n [k: string]: unknown\n}\n\nexport function isEntity(v: unknown): v is Entity {\n return (\n isObj(v) && hasProp(v, '$type') && v.$type === 'app.bsky.feed.post#entity'\n )\n}\n\nexport function validateEntity(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.feed.post#entity', v)\n}\n\n/** Deprecated. Use app.bsky.richtext instead -- A text segment. Start is inclusive, end is exclusive. Indices are for utf16-encoded strings. */\nexport interface TextSlice {\n start: number\n end: number\n [k: string]: unknown\n}\n\nexport function isTextSlice(v: unknown): v is TextSlice {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'app.bsky.feed.post#textSlice'\n )\n}\n\nexport function validateTextSlice(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.feed.post#textSlice', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as ComAtprotoRepoStrongRef from '../../../com/atproto/repo/strongRef'\n\nexport interface Record {\n subject: ComAtprotoRepoStrongRef.Main\n createdAt: string\n [k: string]: unknown\n}\n\nexport function isRecord(v: unknown): v is Record {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n (v.$type === 'app.bsky.feed.repost#main' ||\n v.$type === 'app.bsky.feed.repost')\n )\n}\n\nexport function validateRecord(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.feed.repost#main', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface Record {\n subject: string\n createdAt: string\n [k: string]: unknown\n}\n\nexport function isRecord(v: unknown): v is Record {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n (v.$type === 'app.bsky.graph.block#main' ||\n v.$type === 'app.bsky.graph.block')\n )\n}\n\nexport function validateRecord(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.graph.block#main', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as AppBskyActorDefs from '../actor/defs'\nimport * as AppBskyRichtextFacet from '../richtext/facet'\n\nexport interface ListViewBasic {\n uri: string\n name: string\n purpose: ListPurpose\n avatar?: string\n viewer?: ListViewerState\n indexedAt?: string\n [k: string]: unknown\n}\n\nexport function isListViewBasic(v: unknown): v is ListViewBasic {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'app.bsky.graph.defs#listViewBasic'\n )\n}\n\nexport function validateListViewBasic(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.graph.defs#listViewBasic', v)\n}\n\nexport interface ListView {\n uri: string\n creator: AppBskyActorDefs.ProfileView\n name: string\n purpose: ListPurpose\n description?: string\n descriptionFacets?: AppBskyRichtextFacet.Main[]\n avatar?: string\n viewer?: ListViewerState\n indexedAt: string\n [k: string]: unknown\n}\n\nexport function isListView(v: unknown): v is ListView {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'app.bsky.graph.defs#listView'\n )\n}\n\nexport function validateListView(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.graph.defs#listView', v)\n}\n\nexport interface ListItemView {\n subject: AppBskyActorDefs.ProfileView\n [k: string]: unknown\n}\n\nexport function isListItemView(v: unknown): v is ListItemView {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'app.bsky.graph.defs#listItemView'\n )\n}\n\nexport function validateListItemView(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.graph.defs#listItemView', v)\n}\n\nexport type ListPurpose = 'app.bsky.graph.defs#modlist' | (string & {})\n\n/** A list of actors to apply an aggregate moderation action (mute/block) on */\nexport const MODLIST = 'app.bsky.graph.defs#modlist'\n\nexport interface ListViewerState {\n muted?: boolean\n [k: string]: unknown\n}\n\nexport function isListViewerState(v: unknown): v is ListViewerState {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'app.bsky.graph.defs#listViewerState'\n )\n}\n\nexport function validateListViewerState(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.graph.defs#listViewerState', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface Record {\n subject: string\n createdAt: string\n [k: string]: unknown\n}\n\nexport function isRecord(v: unknown): v is Record {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n (v.$type === 'app.bsky.graph.follow#main' ||\n v.$type === 'app.bsky.graph.follow')\n )\n}\n\nexport function validateRecord(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.graph.follow#main', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as AppBskyGraphDefs from './defs'\nimport * as AppBskyRichtextFacet from '../richtext/facet'\n\nexport interface Record {\n purpose: AppBskyGraphDefs.ListPurpose\n name: string\n description?: string\n descriptionFacets?: AppBskyRichtextFacet.Main[]\n avatar?: BlobRef\n createdAt: string\n [k: string]: unknown\n}\n\nexport function isRecord(v: unknown): v is Record {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n (v.$type === 'app.bsky.graph.list#main' ||\n v.$type === 'app.bsky.graph.list')\n )\n}\n\nexport function validateRecord(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.graph.list#main', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface Record {\n subject: string\n list: string\n createdAt: string\n [k: string]: unknown\n}\n\nexport function isRecord(v: unknown): v is Record {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n (v.$type === 'app.bsky.graph.listitem#main' ||\n v.$type === 'app.bsky.graph.listitem')\n )\n}\n\nexport function validateRecord(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.graph.listitem#main', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport { CID } from 'multiformats/cid'\n\nexport interface Main {\n index: ByteSlice\n features: (Mention | Link | { $type: string; [k: string]: unknown })[]\n [k: string]: unknown\n}\n\nexport function isMain(v: unknown): v is Main {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n (v.$type === 'app.bsky.richtext.facet#main' ||\n v.$type === 'app.bsky.richtext.facet')\n )\n}\n\nexport function validateMain(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.richtext.facet#main', v)\n}\n\n/** A facet feature for actor mentions. */\nexport interface Mention {\n did: string\n [k: string]: unknown\n}\n\nexport function isMention(v: unknown): v is Mention {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'app.bsky.richtext.facet#mention'\n )\n}\n\nexport function validateMention(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.richtext.facet#mention', v)\n}\n\n/** A facet feature for links. */\nexport interface Link {\n uri: string\n [k: string]: unknown\n}\n\nexport function isLink(v: unknown): v is Link {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'app.bsky.richtext.facet#link'\n )\n}\n\nexport function validateLink(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.richtext.facet#link', v)\n}\n\n/** A text segment. Start is inclusive, end is exclusive. Indices are for utf8-encoded strings. */\nexport interface ByteSlice {\n byteStart: number\n byteEnd: number\n [k: string]: unknown\n}\n\nexport function isByteSlice(v: unknown): v is ByteSlice {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'app.bsky.richtext.facet#byteSlice'\n )\n}\n\nexport function validateByteSlice(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.richtext.facet#byteSlice', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport {\n Client as XrpcClient,\n ServiceClient as XrpcServiceClient,\n} from '@atproto/xrpc'\nimport { schemas } from './lexicons'\nimport { CID } from 'multiformats/cid'\nimport * as ComAtprotoAdminDefs from './types/com/atproto/admin/defs'\nimport * as ComAtprotoAdminDisableAccountInvites from './types/com/atproto/admin/disableAccountInvites'\nimport * as ComAtprotoAdminDisableInviteCodes from './types/com/atproto/admin/disableInviteCodes'\nimport * as ComAtprotoAdminEnableAccountInvites from './types/com/atproto/admin/enableAccountInvites'\nimport * as ComAtprotoAdminGetInviteCodes from './types/com/atproto/admin/getInviteCodes'\nimport * as ComAtprotoAdminGetModerationAction from './types/com/atproto/admin/getModerationAction'\nimport * as ComAtprotoAdminGetModerationActions from './types/com/atproto/admin/getModerationActions'\nimport * as ComAtprotoAdminGetModerationReport from './types/com/atproto/admin/getModerationReport'\nimport * as ComAtprotoAdminGetModerationReports from './types/com/atproto/admin/getModerationReports'\nimport * as ComAtprotoAdminGetRecord from './types/com/atproto/admin/getRecord'\nimport * as ComAtprotoAdminGetRepo from './types/com/atproto/admin/getRepo'\nimport * as ComAtprotoAdminResolveModerationReports from './types/com/atproto/admin/resolveModerationReports'\nimport * as ComAtprotoAdminReverseModerationAction from './types/com/atproto/admin/reverseModerationAction'\nimport * as ComAtprotoAdminSearchRepos from './types/com/atproto/admin/searchRepos'\nimport * as ComAtprotoAdminTakeModerationAction from './types/com/atproto/admin/takeModerationAction'\nimport * as ComAtprotoAdminUpdateAccountEmail from './types/com/atproto/admin/updateAccountEmail'\nimport * as ComAtprotoAdminUpdateAccountHandle from './types/com/atproto/admin/updateAccountHandle'\nimport * as ComAtprotoIdentityResolveHandle from './types/com/atproto/identity/resolveHandle'\nimport * as ComAtprotoIdentityUpdateHandle from './types/com/atproto/identity/updateHandle'\nimport * as ComAtprotoLabelDefs from './types/com/atproto/label/defs'\nimport * as ComAtprotoLabelQueryLabels from './types/com/atproto/label/queryLabels'\nimport * as ComAtprotoLabelSubscribeLabels from './types/com/atproto/label/subscribeLabels'\nimport * as ComAtprotoModerationCreateReport from './types/com/atproto/moderation/createReport'\nimport * as ComAtprotoModerationDefs from './types/com/atproto/moderation/defs'\nimport * as ComAtprotoRepoApplyWrites from './types/com/atproto/repo/applyWrites'\nimport * as ComAtprotoRepoCreateRecord from './types/com/atproto/repo/createRecord'\nimport * as ComAtprotoRepoDeleteRecord from './types/com/atproto/repo/deleteRecord'\nimport * as ComAtprotoRepoDescribeRepo from './types/com/atproto/repo/describeRepo'\nimport * as ComAtprotoRepoGetRecord from './types/com/atproto/repo/getRecord'\nimport * as ComAtprotoRepoListRecords from './types/com/atproto/repo/listRecords'\nimport * as ComAtprotoRepoPutRecord from './types/com/atproto/repo/putRecord'\nimport * as ComAtprotoRepoRebaseRepo from './types/com/atproto/repo/rebaseRepo'\nimport * as ComAtprotoRepoStrongRef from './types/com/atproto/repo/strongRef'\nimport * as ComAtprotoRepoUploadBlob from './types/com/atproto/repo/uploadBlob'\nimport * as ComAtprotoServerCreateAccount from './types/com/atproto/server/createAccount'\nimport * as ComAtprotoServerCreateAppPassword from './types/com/atproto/server/createAppPassword'\nimport * as ComAtprotoServerCreateInviteCode from './types/com/atproto/server/createInviteCode'\nimport * as ComAtprotoServerCreateInviteCodes from './types/com/atproto/server/createInviteCodes'\nimport * as ComAtprotoServerCreateSession from './types/com/atproto/server/createSession'\nimport * as ComAtprotoServerDefs from './types/com/atproto/server/defs'\nimport * as ComAtprotoServerDeleteAccount from './types/com/atproto/server/deleteAccount'\nimport * as ComAtprotoServerDeleteSession from './types/com/atproto/server/deleteSession'\nimport * as ComAtprotoServerDescribeServer from './types/com/atproto/server/describeServer'\nimport * as ComAtprotoServerGetAccountInviteCodes from './types/com/atproto/server/getAccountInviteCodes'\nimport * as ComAtprotoServerGetSession from './types/com/atproto/server/getSession'\nimport * as ComAtprotoServerListAppPasswords from './types/com/atproto/server/listAppPasswords'\nimport * as ComAtprotoServerRefreshSession from './types/com/atproto/server/refreshSession'\nimport * as ComAtprotoServerRequestAccountDelete from './types/com/atproto/server/requestAccountDelete'\nimport * as ComAtprotoServerRequestPasswordReset from './types/com/atproto/server/requestPasswordReset'\nimport * as ComAtprotoServerResetPassword from './types/com/atproto/server/resetPassword'\nimport * as ComAtprotoServerRevokeAppPassword from './types/com/atproto/server/revokeAppPassword'\nimport * as ComAtprotoSyncGetBlob from './types/com/atproto/sync/getBlob'\nimport * as ComAtprotoSyncGetBlocks from './types/com/atproto/sync/getBlocks'\nimport * as ComAtprotoSyncGetCheckout from './types/com/atproto/sync/getCheckout'\nimport * as ComAtprotoSyncGetCommitPath from './types/com/atproto/sync/getCommitPath'\nimport * as ComAtprotoSyncGetHead from './types/com/atproto/sync/getHead'\nimport * as ComAtprotoSyncGetRecord from './types/com/atproto/sync/getRecord'\nimport * as ComAtprotoSyncGetRepo from './types/com/atproto/sync/getRepo'\nimport * as ComAtprotoSyncListBlobs from './types/com/atproto/sync/listBlobs'\nimport * as ComAtprotoSyncListRepos from './types/com/atproto/sync/listRepos'\nimport * as ComAtprotoSyncNotifyOfUpdate from './types/com/atproto/sync/notifyOfUpdate'\nimport * as ComAtprotoSyncRequestCrawl from './types/com/atproto/sync/requestCrawl'\nimport * as ComAtprotoSyncSubscribeRepos from './types/com/atproto/sync/subscribeRepos'\nimport * as AppBskyActorDefs from './types/app/bsky/actor/defs'\nimport * as AppBskyActorGetProfile from './types/app/bsky/actor/getProfile'\nimport * as AppBskyActorGetProfiles from './types/app/bsky/actor/getProfiles'\nimport * as AppBskyActorGetSuggestions from './types/app/bsky/actor/getSuggestions'\nimport * as AppBskyActorProfile from './types/app/bsky/actor/profile'\nimport * as AppBskyActorSearchActors from './types/app/bsky/actor/searchActors'\nimport * as AppBskyActorSearchActorsTypeahead from './types/app/bsky/actor/searchActorsTypeahead'\nimport * as AppBskyEmbedExternal from './types/app/bsky/embed/external'\nimport * as AppBskyEmbedImages from './types/app/bsky/embed/images'\nimport * as AppBskyEmbedRecord from './types/app/bsky/embed/record'\nimport * as AppBskyEmbedRecordWithMedia from './types/app/bsky/embed/recordWithMedia'\nimport * as AppBskyFeedDefs from './types/app/bsky/feed/defs'\nimport * as AppBskyFeedGetAuthorFeed from './types/app/bsky/feed/getAuthorFeed'\nimport * as AppBskyFeedGetLikes from './types/app/bsky/feed/getLikes'\nimport * as AppBskyFeedGetPostThread from './types/app/bsky/feed/getPostThread'\nimport * as AppBskyFeedGetPosts from './types/app/bsky/feed/getPosts'\nimport * as AppBskyFeedGetRepostedBy from './types/app/bsky/feed/getRepostedBy'\nimport * as AppBskyFeedGetTimeline from './types/app/bsky/feed/getTimeline'\nimport * as AppBskyFeedLike from './types/app/bsky/feed/like'\nimport * as AppBskyFeedPost from './types/app/bsky/feed/post'\nimport * as AppBskyFeedRepost from './types/app/bsky/feed/repost'\nimport * as AppBskyGraphBlock from './types/app/bsky/graph/block'\nimport * as AppBskyGraphDefs from './types/app/bsky/graph/defs'\nimport * as AppBskyGraphFollow from './types/app/bsky/graph/follow'\nimport * as AppBskyGraphGetBlocks from './types/app/bsky/graph/getBlocks'\nimport * as AppBskyGraphGetFollowers from './types/app/bsky/graph/getFollowers'\nimport * as AppBskyGraphGetFollows from './types/app/bsky/graph/getFollows'\nimport * as AppBskyGraphGetList from './types/app/bsky/graph/getList'\nimport * as AppBskyGraphGetListMutes from './types/app/bsky/graph/getListMutes'\nimport * as AppBskyGraphGetLists from './types/app/bsky/graph/getLists'\nimport * as AppBskyGraphGetMutes from './types/app/bsky/graph/getMutes'\nimport * as AppBskyGraphList from './types/app/bsky/graph/list'\nimport * as AppBskyGraphListitem from './types/app/bsky/graph/listitem'\nimport * as AppBskyGraphMuteActor from './types/app/bsky/graph/muteActor'\nimport * as AppBskyGraphMuteActorList from './types/app/bsky/graph/muteActorList'\nimport * as AppBskyGraphUnmuteActor from './types/app/bsky/graph/unmuteActor'\nimport * as AppBskyGraphUnmuteActorList from './types/app/bsky/graph/unmuteActorList'\nimport * as AppBskyNotificationGetUnreadCount from './types/app/bsky/notification/getUnreadCount'\nimport * as AppBskyNotificationListNotifications from './types/app/bsky/notification/listNotifications'\nimport * as AppBskyNotificationUpdateSeen from './types/app/bsky/notification/updateSeen'\nimport * as AppBskyRichtextFacet from './types/app/bsky/richtext/facet'\nimport * as AppBskyUnspeccedGetPopular from './types/app/bsky/unspecced/getPopular'\n\nexport * as ComAtprotoAdminDefs from './types/com/atproto/admin/defs'\nexport * as ComAtprotoAdminDisableAccountInvites from './types/com/atproto/admin/disableAccountInvites'\nexport * as ComAtprotoAdminDisableInviteCodes from './types/com/atproto/admin/disableInviteCodes'\nexport * as ComAtprotoAdminEnableAccountInvites from './types/com/atproto/admin/enableAccountInvites'\nexport * as ComAtprotoAdminGetInviteCodes from './types/com/atproto/admin/getInviteCodes'\nexport * as ComAtprotoAdminGetModerationAction from './types/com/atproto/admin/getModerationAction'\nexport * as ComAtprotoAdminGetModerationActions from './types/com/atproto/admin/getModerationActions'\nexport * as ComAtprotoAdminGetModerationReport from './types/com/atproto/admin/getModerationReport'\nexport * as ComAtprotoAdminGetModerationReports from './types/com/atproto/admin/getModerationReports'\nexport * as ComAtprotoAdminGetRecord from './types/com/atproto/admin/getRecord'\nexport * as ComAtprotoAdminGetRepo from './types/com/atproto/admin/getRepo'\nexport * as ComAtprotoAdminResolveModerationReports from './types/com/atproto/admin/resolveModerationReports'\nexport * as ComAtprotoAdminReverseModerationAction from './types/com/atproto/admin/reverseModerationAction'\nexport * as ComAtprotoAdminSearchRepos from './types/com/atproto/admin/searchRepos'\nexport * as ComAtprotoAdminTakeModerationAction from './types/com/atproto/admin/takeModerationAction'\nexport * as ComAtprotoAdminUpdateAccountEmail from './types/com/atproto/admin/updateAccountEmail'\nexport * as ComAtprotoAdminUpdateAccountHandle from './types/com/atproto/admin/updateAccountHandle'\nexport * as ComAtprotoIdentityResolveHandle from './types/com/atproto/identity/resolveHandle'\nexport * as ComAtprotoIdentityUpdateHandle from './types/com/atproto/identity/updateHandle'\nexport * as ComAtprotoLabelDefs from './types/com/atproto/label/defs'\nexport * as ComAtprotoLabelQueryLabels from './types/com/atproto/label/queryLabels'\nexport * as ComAtprotoLabelSubscribeLabels from './types/com/atproto/label/subscribeLabels'\nexport * as ComAtprotoModerationCreateReport from './types/com/atproto/moderation/createReport'\nexport * as ComAtprotoModerationDefs from './types/com/atproto/moderation/defs'\nexport * as ComAtprotoRepoApplyWrites from './types/com/atproto/repo/applyWrites'\nexport * as ComAtprotoRepoCreateRecord from './types/com/atproto/repo/createRecord'\nexport * as ComAtprotoRepoDeleteRecord from './types/com/atproto/repo/deleteRecord'\nexport * as ComAtprotoRepoDescribeRepo from './types/com/atproto/repo/describeRepo'\nexport * as ComAtprotoRepoGetRecord from './types/com/atproto/repo/getRecord'\nexport * as ComAtprotoRepoListRecords from './types/com/atproto/repo/listRecords'\nexport * as ComAtprotoRepoPutRecord from './types/com/atproto/repo/putRecord'\nexport * as ComAtprotoRepoRebaseRepo from './types/com/atproto/repo/rebaseRepo'\nexport * as ComAtprotoRepoStrongRef from './types/com/atproto/repo/strongRef'\nexport * as ComAtprotoRepoUploadBlob from './types/com/atproto/repo/uploadBlob'\nexport * as ComAtprotoServerCreateAccount from './types/com/atproto/server/createAccount'\nexport * as ComAtprotoServerCreateAppPassword from './types/com/atproto/server/createAppPassword'\nexport * as ComAtprotoServerCreateInviteCode from './types/com/atproto/server/createInviteCode'\nexport * as ComAtprotoServerCreateInviteCodes from './types/com/atproto/server/createInviteCodes'\nexport * as ComAtprotoServerCreateSession from './types/com/atproto/server/createSession'\nexport * as ComAtprotoServerDefs from './types/com/atproto/server/defs'\nexport * as ComAtprotoServerDeleteAccount from './types/com/atproto/server/deleteAccount'\nexport * as ComAtprotoServerDeleteSession from './types/com/atproto/server/deleteSession'\nexport * as ComAtprotoServerDescribeServer from './types/com/atproto/server/describeServer'\nexport * as ComAtprotoServerGetAccountInviteCodes from './types/com/atproto/server/getAccountInviteCodes'\nexport * as ComAtprotoServerGetSession from './types/com/atproto/server/getSession'\nexport * as ComAtprotoServerListAppPasswords from './types/com/atproto/server/listAppPasswords'\nexport * as ComAtprotoServerRefreshSession from './types/com/atproto/server/refreshSession'\nexport * as ComAtprotoServerRequestAccountDelete from './types/com/atproto/server/requestAccountDelete'\nexport * as ComAtprotoServerRequestPasswordReset from './types/com/atproto/server/requestPasswordReset'\nexport * as ComAtprotoServerResetPassword from './types/com/atproto/server/resetPassword'\nexport * as ComAtprotoServerRevokeAppPassword from './types/com/atproto/server/revokeAppPassword'\nexport * as ComAtprotoSyncGetBlob from './types/com/atproto/sync/getBlob'\nexport * as ComAtprotoSyncGetBlocks from './types/com/atproto/sync/getBlocks'\nexport * as ComAtprotoSyncGetCheckout from './types/com/atproto/sync/getCheckout'\nexport * as ComAtprotoSyncGetCommitPath from './types/com/atproto/sync/getCommitPath'\nexport * as ComAtprotoSyncGetHead from './types/com/atproto/sync/getHead'\nexport * as ComAtprotoSyncGetRecord from './types/com/atproto/sync/getRecord'\nexport * as ComAtprotoSyncGetRepo from './types/com/atproto/sync/getRepo'\nexport * as ComAtprotoSyncListBlobs from './types/com/atproto/sync/listBlobs'\nexport * as ComAtprotoSyncListRepos from './types/com/atproto/sync/listRepos'\nexport * as ComAtprotoSyncNotifyOfUpdate from './types/com/atproto/sync/notifyOfUpdate'\nexport * as ComAtprotoSyncRequestCrawl from './types/com/atproto/sync/requestCrawl'\nexport * as ComAtprotoSyncSubscribeRepos from './types/com/atproto/sync/subscribeRepos'\nexport * as AppBskyActorDefs from './types/app/bsky/actor/defs'\nexport * as AppBskyActorGetProfile from './types/app/bsky/actor/getProfile'\nexport * as AppBskyActorGetProfiles from './types/app/bsky/actor/getProfiles'\nexport * as AppBskyActorGetSuggestions from './types/app/bsky/actor/getSuggestions'\nexport * as AppBskyActorProfile from './types/app/bsky/actor/profile'\nexport * as AppBskyActorSearchActors from './types/app/bsky/actor/searchActors'\nexport * as AppBskyActorSearchActorsTypeahead from './types/app/bsky/actor/searchActorsTypeahead'\nexport * as AppBskyEmbedExternal from './types/app/bsky/embed/external'\nexport * as AppBskyEmbedImages from './types/app/bsky/embed/images'\nexport * as AppBskyEmbedRecord from './types/app/bsky/embed/record'\nexport * as AppBskyEmbedRecordWithMedia from './types/app/bsky/embed/recordWithMedia'\nexport * as AppBskyFeedDefs from './types/app/bsky/feed/defs'\nexport * as AppBskyFeedGetAuthorFeed from './types/app/bsky/feed/getAuthorFeed'\nexport * as AppBskyFeedGetLikes from './types/app/bsky/feed/getLikes'\nexport * as AppBskyFeedGetPostThread from './types/app/bsky/feed/getPostThread'\nexport * as AppBskyFeedGetPosts from './types/app/bsky/feed/getPosts'\nexport * as AppBskyFeedGetRepostedBy from './types/app/bsky/feed/getRepostedBy'\nexport * as AppBskyFeedGetTimeline from './types/app/bsky/feed/getTimeline'\nexport * as AppBskyFeedLike from './types/app/bsky/feed/like'\nexport * as AppBskyFeedPost from './types/app/bsky/feed/post'\nexport * as AppBskyFeedRepost from './types/app/bsky/feed/repost'\nexport * as AppBskyGraphBlock from './types/app/bsky/graph/block'\nexport * as AppBskyGraphDefs from './types/app/bsky/graph/defs'\nexport * as AppBskyGraphFollow from './types/app/bsky/graph/follow'\nexport * as AppBskyGraphGetBlocks from './types/app/bsky/graph/getBlocks'\nexport * as AppBskyGraphGetFollowers from './types/app/bsky/graph/getFollowers'\nexport * as AppBskyGraphGetFollows from './types/app/bsky/graph/getFollows'\nexport * as AppBskyGraphGetList from './types/app/bsky/graph/getList'\nexport * as AppBskyGraphGetListMutes from './types/app/bsky/graph/getListMutes'\nexport * as AppBskyGraphGetLists from './types/app/bsky/graph/getLists'\nexport * as AppBskyGraphGetMutes from './types/app/bsky/graph/getMutes'\nexport * as AppBskyGraphList from './types/app/bsky/graph/list'\nexport * as AppBskyGraphListitem from './types/app/bsky/graph/listitem'\nexport * as AppBskyGraphMuteActor from './types/app/bsky/graph/muteActor'\nexport * as AppBskyGraphMuteActorList from './types/app/bsky/graph/muteActorList'\nexport * as AppBskyGraphUnmuteActor from './types/app/bsky/graph/unmuteActor'\nexport * as AppBskyGraphUnmuteActorList from './types/app/bsky/graph/unmuteActorList'\nexport * as AppBskyNotificationGetUnreadCount from './types/app/bsky/notification/getUnreadCount'\nexport * as AppBskyNotificationListNotifications from './types/app/bsky/notification/listNotifications'\nexport * as AppBskyNotificationUpdateSeen from './types/app/bsky/notification/updateSeen'\nexport * as AppBskyRichtextFacet from './types/app/bsky/richtext/facet'\nexport * as AppBskyUnspeccedGetPopular from './types/app/bsky/unspecced/getPopular'\n\nexport const COM_ATPROTO_ADMIN = {\n DefsTakedown: 'com.atproto.admin.defs#takedown',\n DefsFlag: 'com.atproto.admin.defs#flag',\n DefsAcknowledge: 'com.atproto.admin.defs#acknowledge',\n DefsEscalate: 'com.atproto.admin.defs#escalate',\n}\nexport const COM_ATPROTO_MODERATION = {\n DefsReasonSpam: 'com.atproto.moderation.defs#reasonSpam',\n DefsReasonViolation: 'com.atproto.moderation.defs#reasonViolation',\n DefsReasonMisleading: 'com.atproto.moderation.defs#reasonMisleading',\n DefsReasonSexual: 'com.atproto.moderation.defs#reasonSexual',\n DefsReasonRude: 'com.atproto.moderation.defs#reasonRude',\n DefsReasonOther: 'com.atproto.moderation.defs#reasonOther',\n}\nexport const APP_BSKY_GRAPH = {\n DefsModlist: 'app.bsky.graph.defs#modlist',\n}\n\nexport class AtpBaseClient {\n xrpc: XrpcClient = new XrpcClient()\n\n constructor() {\n this.xrpc.addLexicons(schemas)\n }\n\n service(serviceUri: string | URL): AtpServiceClient {\n return new AtpServiceClient(this, this.xrpc.service(serviceUri))\n }\n}\n\nexport class AtpServiceClient {\n _baseClient: AtpBaseClient\n xrpc: XrpcServiceClient\n com: ComNS\n app: AppNS\n\n constructor(baseClient: AtpBaseClient, xrpcService: XrpcServiceClient) {\n this._baseClient = baseClient\n this.xrpc = xrpcService\n this.com = new ComNS(this)\n this.app = new AppNS(this)\n }\n\n setHeader(key: string, value: string): void {\n this.xrpc.setHeader(key, value)\n }\n}\n\nexport class ComNS {\n _service: AtpServiceClient\n atproto: AtprotoNS\n\n constructor(service: AtpServiceClient) {\n this._service = service\n this.atproto = new AtprotoNS(service)\n }\n}\n\nexport class AtprotoNS {\n _service: AtpServiceClient\n admin: AdminNS\n identity: IdentityNS\n label: LabelNS\n moderation: ModerationNS\n repo: RepoNS\n server: ServerNS\n sync: SyncNS\n\n constructor(service: AtpServiceClient) {\n this._service = service\n this.admin = new AdminNS(service)\n this.identity = new IdentityNS(service)\n this.label = new LabelNS(service)\n this.moderation = new ModerationNS(service)\n this.repo = new RepoNS(service)\n this.server = new ServerNS(service)\n this.sync = new SyncNS(service)\n }\n}\n\nexport class AdminNS {\n _service: AtpServiceClient\n\n constructor(service: AtpServiceClient) {\n this._service = service\n }\n\n disableAccountInvites(\n data?: ComAtprotoAdminDisableAccountInvites.InputSchema,\n opts?: ComAtprotoAdminDisableAccountInvites.CallOptions,\n ): Promise<ComAtprotoAdminDisableAccountInvites.Response> {\n return this._service.xrpc\n .call('com.atproto.admin.disableAccountInvites', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoAdminDisableAccountInvites.toKnownErr(e)\n })\n }\n\n disableInviteCodes(\n data?: ComAtprotoAdminDisableInviteCodes.InputSchema,\n opts?: ComAtprotoAdminDisableInviteCodes.CallOptions,\n ): Promise<ComAtprotoAdminDisableInviteCodes.Response> {\n return this._service.xrpc\n .call('com.atproto.admin.disableInviteCodes', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoAdminDisableInviteCodes.toKnownErr(e)\n })\n }\n\n enableAccountInvites(\n data?: ComAtprotoAdminEnableAccountInvites.InputSchema,\n opts?: ComAtprotoAdminEnableAccountInvites.CallOptions,\n ): Promise<ComAtprotoAdminEnableAccountInvites.Response> {\n return this._service.xrpc\n .call('com.atproto.admin.enableAccountInvites', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoAdminEnableAccountInvites.toKnownErr(e)\n })\n }\n\n getInviteCodes(\n params?: ComAtprotoAdminGetInviteCodes.QueryParams,\n opts?: ComAtprotoAdminGetInviteCodes.CallOptions,\n ): Promise<ComAtprotoAdminGetInviteCodes.Response> {\n return this._service.xrpc\n .call('com.atproto.admin.getInviteCodes', params, undefined, opts)\n .catch((e) => {\n throw ComAtprotoAdminGetInviteCodes.toKnownErr(e)\n })\n }\n\n getModerationAction(\n params?: ComAtprotoAdminGetModerationAction.QueryParams,\n opts?: ComAtprotoAdminGetModerationAction.CallOptions,\n ): Promise<ComAtprotoAdminGetModerationAction.Response> {\n return this._service.xrpc\n .call('com.atproto.admin.getModerationAction', params, undefined, opts)\n .catch((e) => {\n throw ComAtprotoAdminGetModerationAction.toKnownErr(e)\n })\n }\n\n getModerationActions(\n params?: ComAtprotoAdminGetModerationActions.QueryParams,\n opts?: ComAtprotoAdminGetModerationActions.CallOptions,\n ): Promise<ComAtprotoAdminGetModerationActions.Response> {\n return this._service.xrpc\n .call('com.atproto.admin.getModerationActions', params, undefined, opts)\n .catch((e) => {\n throw ComAtprotoAdminGetModerationActions.toKnownErr(e)\n })\n }\n\n getModerationReport(\n params?: ComAtprotoAdminGetModerationReport.QueryParams,\n opts?: ComAtprotoAdminGetModerationReport.CallOptions,\n ): Promise<ComAtprotoAdminGetModerationReport.Response> {\n return this._service.xrpc\n .call('com.atproto.admin.getModerationReport', params, undefined, opts)\n .catch((e) => {\n throw ComAtprotoAdminGetModerationReport.toKnownErr(e)\n })\n }\n\n getModerationReports(\n params?: ComAtprotoAdminGetModerationReports.QueryParams,\n opts?: ComAtprotoAdminGetModerationReports.CallOptions,\n ): Promise<ComAtprotoAdminGetModerationReports.Response> {\n return this._service.xrpc\n .call('com.atproto.admin.getModerationReports', params, undefined, opts)\n .catch((e) => {\n throw ComAtprotoAdminGetModerationReports.toKnownErr(e)\n })\n }\n\n getRecord(\n params?: ComAtprotoAdminGetRecord.QueryParams,\n opts?: ComAtprotoAdminGetRecord.CallOptions,\n ): Promise<ComAtprotoAdminGetRecord.Response> {\n return this._service.xrpc\n .call('com.atproto.admin.getRecord', params, undefined, opts)\n .catch((e) => {\n throw ComAtprotoAdminGetRecord.toKnownErr(e)\n })\n }\n\n getRepo(\n params?: ComAtprotoAdminGetRepo.QueryParams,\n opts?: ComAtprotoAdminGetRepo.CallOptions,\n ): Promise<ComAtprotoAdminGetRepo.Response> {\n return this._service.xrpc\n .call('com.atproto.admin.getRepo', params, undefined, opts)\n .catch((e) => {\n throw ComAtprotoAdminGetRepo.toKnownErr(e)\n })\n }\n\n resolveModerationReports(\n data?: ComAtprotoAdminResolveModerationReports.InputSchema,\n opts?: ComAtprotoAdminResolveModerationReports.CallOptions,\n ): Promise<ComAtprotoAdminResolveModerationReports.Response> {\n return this._service.xrpc\n .call('com.atproto.admin.resolveModerationReports', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoAdminResolveModerationReports.toKnownErr(e)\n })\n }\n\n reverseModerationAction(\n data?: ComAtprotoAdminReverseModerationAction.InputSchema,\n opts?: ComAtprotoAdminReverseModerationAction.CallOptions,\n ): Promise<ComAtprotoAdminReverseModerationAction.Response> {\n return this._service.xrpc\n .call('com.atproto.admin.reverseModerationAction', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoAdminReverseModerationAction.toKnownErr(e)\n })\n }\n\n searchRepos(\n params?: ComAtprotoAdminSearchRepos.QueryParams,\n opts?: ComAtprotoAdminSearchRepos.CallOptions,\n ): Promise<ComAtprotoAdminSearchRepos.Response> {\n return this._service.xrpc\n .call('com.atproto.admin.searchRepos', params, undefined, opts)\n .catch((e) => {\n throw ComAtprotoAdminSearchRepos.toKnownErr(e)\n })\n }\n\n takeModerationAction(\n data?: ComAtprotoAdminTakeModerationAction.InputSchema,\n opts?: ComAtprotoAdminTakeModerationAction.CallOptions,\n ): Promise<ComAtprotoAdminTakeModerationAction.Response> {\n return this._service.xrpc\n .call('com.atproto.admin.takeModerationAction', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoAdminTakeModerationAction.toKnownErr(e)\n })\n }\n\n updateAccountEmail(\n data?: ComAtprotoAdminUpdateAccountEmail.InputSchema,\n opts?: ComAtprotoAdminUpdateAccountEmail.CallOptions,\n ): Promise<ComAtprotoAdminUpdateAccountEmail.Response> {\n return this._service.xrpc\n .call('com.atproto.admin.updateAccountEmail', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoAdminUpdateAccountEmail.toKnownErr(e)\n })\n }\n\n updateAccountHandle(\n data?: ComAtprotoAdminUpdateAccountHandle.InputSchema,\n opts?: ComAtprotoAdminUpdateAccountHandle.CallOptions,\n ): Promise<ComAtprotoAdminUpdateAccountHandle.Response> {\n return this._service.xrpc\n .call('com.atproto.admin.updateAccountHandle', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoAdminUpdateAccountHandle.toKnownErr(e)\n })\n }\n}\n\nexport class IdentityNS {\n _service: AtpServiceClient\n\n constructor(service: AtpServiceClient) {\n this._service = service\n }\n\n resolveHandle(\n params?: ComAtprotoIdentityResolveHandle.QueryParams,\n opts?: ComAtprotoIdentityResolveHandle.CallOptions,\n ): Promise<ComAtprotoIdentityResolveHandle.Response> {\n return this._service.xrpc\n .call('com.atproto.identity.resolveHandle', params, undefined, opts)\n .catch((e) => {\n throw ComAtprotoIdentityResolveHandle.toKnownErr(e)\n })\n }\n\n updateHandle(\n data?: ComAtprotoIdentityUpdateHandle.InputSchema,\n opts?: ComAtprotoIdentityUpdateHandle.CallOptions,\n ): Promise<ComAtprotoIdentityUpdateHandle.Response> {\n return this._service.xrpc\n .call('com.atproto.identity.updateHandle', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoIdentityUpdateHandle.toKnownErr(e)\n })\n }\n}\n\nexport class LabelNS {\n _service: AtpServiceClient\n\n constructor(service: AtpServiceClient) {\n this._service = service\n }\n\n queryLabels(\n params?: ComAtprotoLabelQueryLabels.QueryParams,\n opts?: ComAtprotoLabelQueryLabels.CallOptions,\n ): Promise<ComAtprotoLabelQueryLabels.Response> {\n return this._service.xrpc\n .call('com.atproto.label.queryLabels', params, undefined, opts)\n .catch((e) => {\n throw ComAtprotoLabelQueryLabels.toKnownErr(e)\n })\n }\n}\n\nexport class ModerationNS {\n _service: AtpServiceClient\n\n constructor(service: AtpServiceClient) {\n this._service = service\n }\n\n createReport(\n data?: ComAtprotoModerationCreateReport.InputSchema,\n opts?: ComAtprotoModerationCreateReport.CallOptions,\n ): Promise<ComAtprotoModerationCreateReport.Response> {\n return this._service.xrpc\n .call('com.atproto.moderation.createReport', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoModerationCreateReport.toKnownErr(e)\n })\n }\n}\n\nexport class RepoNS {\n _service: AtpServiceClient\n\n constructor(service: AtpServiceClient) {\n this._service = service\n }\n\n applyWrites(\n data?: ComAtprotoRepoApplyWrites.InputSchema,\n opts?: ComAtprotoRepoApplyWrites.CallOptions,\n ): Promise<ComAtprotoRepoApplyWrites.Response> {\n return this._service.xrpc\n .call('com.atproto.repo.applyWrites', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoRepoApplyWrites.toKnownErr(e)\n })\n }\n\n createRecord(\n data?: ComAtprotoRepoCreateRecord.InputSchema,\n opts?: ComAtprotoRepoCreateRecord.CallOptions,\n ): Promise<ComAtprotoRepoCreateRecord.Response> {\n return this._service.xrpc\n .call('com.atproto.repo.createRecord', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoRepoCreateRecord.toKnownErr(e)\n })\n }\n\n deleteRecord(\n data?: ComAtprotoRepoDeleteRecord.InputSchema,\n opts?: ComAtprotoRepoDeleteRecord.CallOptions,\n ): Promise<ComAtprotoRepoDeleteRecord.Response> {\n return this._service.xrpc\n .call('com.atproto.repo.deleteRecord', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoRepoDeleteRecord.toKnownErr(e)\n })\n }\n\n describeRepo(\n params?: ComAtprotoRepoDescribeRepo.QueryParams,\n opts?: ComAtprotoRepoDescribeRepo.CallOptions,\n ): Promise<ComAtprotoRepoDescribeRepo.Response> {\n return this._service.xrpc\n .call('com.atproto.repo.describeRepo', params, undefined, opts)\n .catch((e) => {\n throw ComAtprotoRepoDescribeRepo.toKnownErr(e)\n })\n }\n\n getRecord(\n params?: ComAtprotoRepoGetRecord.QueryParams,\n opts?: ComAtprotoRepoGetRecord.CallOptions,\n ): Promise<ComAtprotoRepoGetRecord.Response> {\n return this._service.xrpc\n .call('com.atproto.repo.getRecord', params, undefined, opts)\n .catch((e) => {\n throw ComAtprotoRepoGetRecord.toKnownErr(e)\n })\n }\n\n listRecords(\n params?: ComAtprotoRepoListRecords.QueryParams,\n opts?: ComAtprotoRepoListRecords.CallOptions,\n ): Promise<ComAtprotoRepoListRecords.Response> {\n return this._service.xrpc\n .call('com.atproto.repo.listRecords', params, undefined, opts)\n .catch((e) => {\n throw ComAtprotoRepoListRecords.toKnownErr(e)\n })\n }\n\n putRecord(\n data?: ComAtprotoRepoPutRecord.InputSchema,\n opts?: ComAtprotoRepoPutRecord.CallOptions,\n ): Promise<ComAtprotoRepoPutRecord.Response> {\n return this._service.xrpc\n .call('com.atproto.repo.putRecord', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoRepoPutRecord.toKnownErr(e)\n })\n }\n\n rebaseRepo(\n data?: ComAtprotoRepoRebaseRepo.InputSchema,\n opts?: ComAtprotoRepoRebaseRepo.CallOptions,\n ): Promise<ComAtprotoRepoRebaseRepo.Response> {\n return this._service.xrpc\n .call('com.atproto.repo.rebaseRepo', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoRepoRebaseRepo.toKnownErr(e)\n })\n }\n\n uploadBlob(\n data?: ComAtprotoRepoUploadBlob.InputSchema,\n opts?: ComAtprotoRepoUploadBlob.CallOptions,\n ): Promise<ComAtprotoRepoUploadBlob.Response> {\n return this._service.xrpc\n .call('com.atproto.repo.uploadBlob', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoRepoUploadBlob.toKnownErr(e)\n })\n }\n}\n\nexport class ServerNS {\n _service: AtpServiceClient\n\n constructor(service: AtpServiceClient) {\n this._service = service\n }\n\n createAccount(\n data?: ComAtprotoServerCreateAccount.InputSchema,\n opts?: ComAtprotoServerCreateAccount.CallOptions,\n ): Promise<ComAtprotoServerCreateAccount.Response> {\n return this._service.xrpc\n .call('com.atproto.server.createAccount', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoServerCreateAccount.toKnownErr(e)\n })\n }\n\n createAppPassword(\n data?: ComAtprotoServerCreateAppPassword.InputSchema,\n opts?: ComAtprotoServerCreateAppPassword.CallOptions,\n ): Promise<ComAtprotoServerCreateAppPassword.Response> {\n return this._service.xrpc\n .call('com.atproto.server.createAppPassword', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoServerCreateAppPassword.toKnownErr(e)\n })\n }\n\n createInviteCode(\n data?: ComAtprotoServerCreateInviteCode.InputSchema,\n opts?: ComAtprotoServerCreateInviteCode.CallOptions,\n ): Promise<ComAtprotoServerCreateInviteCode.Response> {\n return this._service.xrpc\n .call('com.atproto.server.createInviteCode', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoServerCreateInviteCode.toKnownErr(e)\n })\n }\n\n createInviteCodes(\n data?: ComAtprotoServerCreateInviteCodes.InputSchema,\n opts?: ComAtprotoServerCreateInviteCodes.CallOptions,\n ): Promise<ComAtprotoServerCreateInviteCodes.Response> {\n return this._service.xrpc\n .call('com.atproto.server.createInviteCodes', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoServerCreateInviteCodes.toKnownErr(e)\n })\n }\n\n createSession(\n data?: ComAtprotoServerCreateSession.InputSchema,\n opts?: ComAtprotoServerCreateSession.CallOptions,\n ): Promise<ComAtprotoServerCreateSession.Response> {\n return this._service.xrpc\n .call('com.atproto.server.createSession', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoServerCreateSession.toKnownErr(e)\n })\n }\n\n deleteAccount(\n data?: ComAtprotoServerDeleteAccount.InputSchema,\n opts?: ComAtprotoServerDeleteAccount.CallOptions,\n ): Promise<ComAtprotoServerDeleteAccount.Response> {\n return this._service.xrpc\n .call('com.atproto.server.deleteAccount', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoServerDeleteAccount.toKnownErr(e)\n })\n }\n\n deleteSession(\n data?: ComAtprotoServerDeleteSession.InputSchema,\n opts?: ComAtprotoServerDeleteSession.CallOptions,\n ): Promise<ComAtprotoServerDeleteSession.Response> {\n return this._service.xrpc\n .call('com.atproto.server.deleteSession', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoServerDeleteSession.toKnownErr(e)\n })\n }\n\n describeServer(\n params?: ComAtprotoServerDescribeServer.QueryParams,\n opts?: ComAtprotoServerDescribeServer.CallOptions,\n ): Promise<ComAtprotoServerDescribeServer.Response> {\n return this._service.xrpc\n .call('com.atproto.server.describeServer', params, undefined, opts)\n .catch((e) => {\n throw ComAtprotoServerDescribeServer.toKnownErr(e)\n })\n }\n\n getAccountInviteCodes(\n params?: ComAtprotoServerGetAccountInviteCodes.QueryParams,\n opts?: ComAtprotoServerGetAccountInviteCodes.CallOptions,\n ): Promise<ComAtprotoServerGetAccountInviteCodes.Response> {\n return this._service.xrpc\n .call('com.atproto.server.getAccountInviteCodes', params, undefined, opts)\n .catch((e) => {\n throw ComAtprotoServerGetAccountInviteCodes.toKnownErr(e)\n })\n }\n\n getSession(\n params?: ComAtprotoServerGetSession.QueryParams,\n opts?: ComAtprotoServerGetSession.CallOptions,\n ): Promise<ComAtprotoServerGetSession.Response> {\n return this._service.xrpc\n .call('com.atproto.server.getSession', params, undefined, opts)\n .catch((e) => {\n throw ComAtprotoServerGetSession.toKnownErr(e)\n })\n }\n\n listAppPasswords(\n params?: ComAtprotoServerListAppPasswords.QueryParams,\n opts?: ComAtprotoServerListAppPasswords.CallOptions,\n ): Promise<ComAtprotoServerListAppPasswords.Response> {\n return this._service.xrpc\n .call('com.atproto.server.listAppPasswords', params, undefined, opts)\n .catch((e) => {\n throw ComAtprotoServerListAppPasswords.toKnownErr(e)\n })\n }\n\n refreshSession(\n data?: ComAtprotoServerRefreshSession.InputSchema,\n opts?: ComAtprotoServerRefreshSession.CallOptions,\n ): Promise<ComAtprotoServerRefreshSession.Response> {\n return this._service.xrpc\n .call('com.atproto.server.refreshSession', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoServerRefreshSession.toKnownErr(e)\n })\n }\n\n requestAccountDelete(\n data?: ComAtprotoServerRequestAccountDelete.InputSchema,\n opts?: ComAtprotoServerRequestAccountDelete.CallOptions,\n ): Promise<ComAtprotoServerRequestAccountDelete.Response> {\n return this._service.xrpc\n .call('com.atproto.server.requestAccountDelete', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoServerRequestAccountDelete.toKnownErr(e)\n })\n }\n\n requestPasswordReset(\n data?: ComAtprotoServerRequestPasswordReset.InputSchema,\n opts?: ComAtprotoServerRequestPasswordReset.CallOptions,\n ): Promise<ComAtprotoServerRequestPasswordReset.Response> {\n return this._service.xrpc\n .call('com.atproto.server.requestPasswordReset', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoServerRequestPasswordReset.toKnownErr(e)\n })\n }\n\n resetPassword(\n data?: ComAtprotoServerResetPassword.InputSchema,\n opts?: ComAtprotoServerResetPassword.CallOptions,\n ): Promise<ComAtprotoServerResetPassword.Response> {\n return this._service.xrpc\n .call('com.atproto.server.resetPassword', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoServerResetPassword.toKnownErr(e)\n })\n }\n\n revokeAppPassword(\n data?: ComAtprotoServerRevokeAppPassword.InputSchema,\n opts?: ComAtprotoServerRevokeAppPassword.CallOptions,\n ): Promise<ComAtprotoServerRevokeAppPassword.Response> {\n return this._service.xrpc\n .call('com.atproto.server.revokeAppPassword', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoServerRevokeAppPassword.toKnownErr(e)\n })\n }\n}\n\nexport class SyncNS {\n _service: AtpServiceClient\n\n constructor(service: AtpServiceClient) {\n this._service = service\n }\n\n getBlob(\n params?: ComAtprotoSyncGetBlob.QueryParams,\n opts?: ComAtprotoSyncGetBlob.CallOptions,\n ): Promise<ComAtprotoSyncGetBlob.Response> {\n return this._service.xrpc\n .call('com.atproto.sync.getBlob', params, undefined, opts)\n .catch((e) => {\n throw ComAtprotoSyncGetBlob.toKnownErr(e)\n })\n }\n\n getBlocks(\n params?: ComAtprotoSyncGetBlocks.QueryParams,\n opts?: ComAtprotoSyncGetBlocks.CallOptions,\n ): Promise<ComAtprotoSyncGetBlocks.Response> {\n return this._service.xrpc\n .call('com.atproto.sync.getBlocks', params, undefined, opts)\n .catch((e) => {\n throw ComAtprotoSyncGetBlocks.toKnownErr(e)\n })\n }\n\n getCheckout(\n params?: ComAtprotoSyncGetCheckout.QueryParams,\n opts?: ComAtprotoSyncGetCheckout.CallOptions,\n ): Promise<ComAtprotoSyncGetCheckout.Response> {\n return this._service.xrpc\n .call('com.atproto.sync.getCheckout', params, undefined, opts)\n .catch((e) => {\n throw ComAtprotoSyncGetCheckout.toKnownErr(e)\n })\n }\n\n getCommitPath(\n params?: ComAtprotoSyncGetCommitPath.QueryParams,\n opts?: ComAtprotoSyncGetCommitPath.CallOptions,\n ): Promise<ComAtprotoSyncGetCommitPath.Response> {\n return this._service.xrpc\n .call('com.atproto.sync.getCommitPath', params, undefined, opts)\n .catch((e) => {\n throw ComAtprotoSyncGetCommitPath.toKnownErr(e)\n })\n }\n\n getHead(\n params?: ComAtprotoSyncGetHead.QueryParams,\n opts?: ComAtprotoSyncGetHead.CallOptions,\n ): Promise<ComAtprotoSyncGetHead.Response> {\n return this._service.xrpc\n .call('com.atproto.sync.getHead', params, undefined, opts)\n .catch((e) => {\n throw ComAtprotoSyncGetHead.toKnownErr(e)\n })\n }\n\n getRecord(\n params?: ComAtprotoSyncGetRecord.QueryParams,\n opts?: ComAtprotoSyncGetRecord.CallOptions,\n ): Promise<ComAtprotoSyncGetRecord.Response> {\n return this._service.xrpc\n .call('com.atproto.sync.getRecord', params, undefined, opts)\n .catch((e) => {\n throw ComAtprotoSyncGetRecord.toKnownErr(e)\n })\n }\n\n getRepo(\n params?: ComAtprotoSyncGetRepo.QueryParams,\n opts?: ComAtprotoSyncGetRepo.CallOptions,\n ): Promise<ComAtprotoSyncGetRepo.Response> {\n return this._service.xrpc\n .call('com.atproto.sync.getRepo', params, undefined, opts)\n .catch((e) => {\n throw ComAtprotoSyncGetRepo.toKnownErr(e)\n })\n }\n\n listBlobs(\n params?: ComAtprotoSyncListBlobs.QueryParams,\n opts?: ComAtprotoSyncListBlobs.CallOptions,\n ): Promise<ComAtprotoSyncListBlobs.Response> {\n return this._service.xrpc\n .call('com.atproto.sync.listBlobs', params, undefined, opts)\n .catch((e) => {\n throw ComAtprotoSyncListBlobs.toKnownErr(e)\n })\n }\n\n listRepos(\n params?: ComAtprotoSyncListRepos.QueryParams,\n opts?: ComAtprotoSyncListRepos.CallOptions,\n ): Promise<ComAtprotoSyncListRepos.Response> {\n return this._service.xrpc\n .call('com.atproto.sync.listRepos', params, undefined, opts)\n .catch((e) => {\n throw ComAtprotoSyncListRepos.toKnownErr(e)\n })\n }\n\n notifyOfUpdate(\n params?: ComAtprotoSyncNotifyOfUpdate.QueryParams,\n opts?: ComAtprotoSyncNotifyOfUpdate.CallOptions,\n ): Promise<ComAtprotoSyncNotifyOfUpdate.Response> {\n return this._service.xrpc\n .call('com.atproto.sync.notifyOfUpdate', params, undefined, opts)\n .catch((e) => {\n throw ComAtprotoSyncNotifyOfUpdate.toKnownErr(e)\n })\n }\n\n requestCrawl(\n params?: ComAtprotoSyncRequestCrawl.QueryParams,\n opts?: ComAtprotoSyncRequestCrawl.CallOptions,\n ): Promise<ComAtprotoSyncRequestCrawl.Response> {\n return this._service.xrpc\n .call('com.atproto.sync.requestCrawl', params, undefined, opts)\n .catch((e) => {\n throw ComAtprotoSyncRequestCrawl.toKnownErr(e)\n })\n }\n}\n\nexport class AppNS {\n _service: AtpServiceClient\n bsky: BskyNS\n\n constructor(service: AtpServiceClient) {\n this._service = service\n this.bsky = new BskyNS(service)\n }\n}\n\nexport class BskyNS {\n _service: AtpServiceClient\n actor: ActorNS\n embed: EmbedNS\n feed: FeedNS\n graph: GraphNS\n notification: NotificationNS\n richtext: RichtextNS\n unspecced: UnspeccedNS\n\n constructor(service: AtpServiceClient) {\n this._service = service\n this.actor = new ActorNS(service)\n this.embed = new EmbedNS(service)\n this.feed = new FeedNS(service)\n this.graph = new GraphNS(service)\n this.notification = new NotificationNS(service)\n this.richtext = new RichtextNS(service)\n this.unspecced = new UnspeccedNS(service)\n }\n}\n\nexport class ActorNS {\n _service: AtpServiceClient\n profile: ProfileRecord\n\n constructor(service: AtpServiceClient) {\n this._service = service\n this.profile = new ProfileRecord(service)\n }\n\n getProfile(\n params?: AppBskyActorGetProfile.QueryParams,\n opts?: AppBskyActorGetProfile.CallOptions,\n ): Promise<AppBskyActorGetProfile.Response> {\n return this._service.xrpc\n .call('app.bsky.actor.getProfile', params, undefined, opts)\n .catch((e) => {\n throw AppBskyActorGetProfile.toKnownErr(e)\n })\n }\n\n getProfiles(\n params?: AppBskyActorGetProfiles.QueryParams,\n opts?: AppBskyActorGetProfiles.CallOptions,\n ): Promise<AppBskyActorGetProfiles.Response> {\n return this._service.xrpc\n .call('app.bsky.actor.getProfiles', params, undefined, opts)\n .catch((e) => {\n throw AppBskyActorGetProfiles.toKnownErr(e)\n })\n }\n\n getSuggestions(\n params?: AppBskyActorGetSuggestions.QueryParams,\n opts?: AppBskyActorGetSuggestions.CallOptions,\n ): Promise<AppBskyActorGetSuggestions.Response> {\n return this._service.xrpc\n .call('app.bsky.actor.getSuggestions', params, undefined, opts)\n .catch((e) => {\n throw AppBskyActorGetSuggestions.toKnownErr(e)\n })\n }\n\n searchActors(\n params?: AppBskyActorSearchActors.QueryParams,\n opts?: AppBskyActorSearchActors.CallOptions,\n ): Promise<AppBskyActorSearchActors.Response> {\n return this._service.xrpc\n .call('app.bsky.actor.searchActors', params, undefined, opts)\n .catch((e) => {\n throw AppBskyActorSearchActors.toKnownErr(e)\n })\n }\n\n searchActorsTypeahead(\n params?: AppBskyActorSearchActorsTypeahead.QueryParams,\n opts?: AppBskyActorSearchActorsTypeahead.CallOptions,\n ): Promise<AppBskyActorSearchActorsTypeahead.Response> {\n return this._service.xrpc\n .call('app.bsky.actor.searchActorsTypeahead', params, undefined, opts)\n .catch((e) => {\n throw AppBskyActorSearchActorsTypeahead.toKnownErr(e)\n })\n }\n}\n\nexport class ProfileRecord {\n _service: AtpServiceClient\n\n constructor(service: AtpServiceClient) {\n this._service = service\n }\n\n async list(\n params: Omit<ComAtprotoRepoListRecords.QueryParams, 'collection'>,\n ): Promise<{\n cursor?: string\n records: { uri: string; value: AppBskyActorProfile.Record }[]\n }> {\n const res = await this._service.xrpc.call('com.atproto.repo.listRecords', {\n collection: 'app.bsky.actor.profile',\n ...params,\n })\n return res.data\n }\n\n async get(\n params: Omit<ComAtprotoRepoGetRecord.QueryParams, 'collection'>,\n ): Promise<{ uri: string; cid: string; value: AppBskyActorProfile.Record }> {\n const res = await this._service.xrpc.call('com.atproto.repo.getRecord', {\n collection: 'app.bsky.actor.profile',\n ...params,\n })\n return res.data\n }\n\n async create(\n params: Omit<\n ComAtprotoRepoCreateRecord.InputSchema,\n 'collection' | 'record'\n >,\n record: AppBskyActorProfile.Record,\n headers?: Record<string, string>,\n ): Promise<{ uri: string; cid: string }> {\n record.$type = 'app.bsky.actor.profile'\n const res = await this._service.xrpc.call(\n 'com.atproto.repo.createRecord',\n undefined,\n { collection: 'app.bsky.actor.profile', rkey: 'self', ...params, record },\n { encoding: 'application/json', headers },\n )\n return res.data\n }\n\n async delete(\n params: Omit<ComAtprotoRepoDeleteRecord.InputSchema, 'collection'>,\n headers?: Record<string, string>,\n ): Promise<void> {\n await this._service.xrpc.call(\n 'com.atproto.repo.deleteRecord',\n undefined,\n { collection: 'app.bsky.actor.profile', ...params },\n { headers },\n )\n }\n}\n\nexport class EmbedNS {\n _service: AtpServiceClient\n\n constructor(service: AtpServiceClient) {\n this._service = service\n }\n}\n\nexport class FeedNS {\n _service: AtpServiceClient\n like: LikeRecord\n post: PostRecord\n repost: RepostRecord\n\n constructor(service: AtpServiceClient) {\n this._service = service\n this.like = new LikeRecord(service)\n this.post = new PostRecord(service)\n this.repost = new RepostRecord(service)\n }\n\n getAuthorFeed(\n params?: AppBskyFeedGetAuthorFeed.QueryParams,\n opts?: AppBskyFeedGetAuthorFeed.CallOptions,\n ): Promise<AppBskyFeedGetAuthorFeed.Response> {\n return this._service.xrpc\n .call('app.bsky.feed.getAuthorFeed', params, undefined, opts)\n .catch((e) => {\n throw AppBskyFeedGetAuthorFeed.toKnownErr(e)\n })\n }\n\n getLikes(\n params?: AppBskyFeedGetLikes.QueryParams,\n opts?: AppBskyFeedGetLikes.CallOptions,\n ): Promise<AppBskyFeedGetLikes.Response> {\n return this._service.xrpc\n .call('app.bsky.feed.getLikes', params, undefined, opts)\n .catch((e) => {\n throw AppBskyFeedGetLikes.toKnownErr(e)\n })\n }\n\n getPostThread(\n params?: AppBskyFeedGetPostThread.QueryParams,\n opts?: AppBskyFeedGetPostThread.CallOptions,\n ): Promise<AppBskyFeedGetPostThread.Response> {\n return this._service.xrpc\n .call('app.bsky.feed.getPostThread', params, undefined, opts)\n .catch((e) => {\n throw AppBskyFeedGetPostThread.toKnownErr(e)\n })\n }\n\n getPosts(\n params?: AppBskyFeedGetPosts.QueryParams,\n opts?: AppBskyFeedGetPosts.CallOptions,\n ): Promise<AppBskyFeedGetPosts.Response> {\n return this._service.xrpc\n .call('app.bsky.feed.getPosts', params, undefined, opts)\n .catch((e) => {\n throw AppBskyFeedGetPosts.toKnownErr(e)\n })\n }\n\n getRepostedBy(\n params?: AppBskyFeedGetRepostedBy.QueryParams,\n opts?: AppBskyFeedGetRepostedBy.CallOptions,\n ): Promise<AppBskyFeedGetRepostedBy.Response> {\n return this._service.xrpc\n .call('app.bsky.feed.getRepostedBy', params, undefined, opts)\n .catch((e) => {\n throw AppBskyFeedGetRepostedBy.toKnownErr(e)\n })\n }\n\n getTimeline(\n params?: AppBskyFeedGetTimeline.QueryParams,\n opts?: AppBskyFeedGetTimeline.CallOptions,\n ): Promise<AppBskyFeedGetTimeline.Response> {\n return this._service.xrpc\n .call('app.bsky.feed.getTimeline', params, undefined, opts)\n .catch((e) => {\n throw AppBskyFeedGetTimeline.toKnownErr(e)\n })\n }\n}\n\nexport class LikeRecord {\n _service: AtpServiceClient\n\n constructor(service: AtpServiceClient) {\n this._service = service\n }\n\n async list(\n params: Omit<ComAtprotoRepoListRecords.QueryParams, 'collection'>,\n ): Promise<{\n cursor?: string\n records: { uri: string; value: AppBskyFeedLike.Record }[]\n }> {\n const res = await this._service.xrpc.call('com.atproto.repo.listRecords', {\n collection: 'app.bsky.feed.like',\n ...params,\n })\n return res.data\n }\n\n async get(\n params: Omit<ComAtprotoRepoGetRecord.QueryParams, 'collection'>,\n ): Promise<{ uri: string; cid: string; value: AppBskyFeedLike.Record }> {\n const res = await this._service.xrpc.call('com.atproto.repo.getRecord', {\n collection: 'app.bsky.feed.like',\n ...params,\n })\n return res.data\n }\n\n async create(\n params: Omit<\n ComAtprotoRepoCreateRecord.InputSchema,\n 'collection' | 'record'\n >,\n record: AppBskyFeedLike.Record,\n headers?: Record<string, string>,\n ): Promise<{ uri: string; cid: string }> {\n record.$type = 'app.bsky.feed.like'\n const res = await this._service.xrpc.call(\n 'com.atproto.repo.createRecord',\n undefined,\n { collection: 'app.bsky.feed.like', ...params, record },\n { encoding: 'application/json', headers },\n )\n return res.data\n }\n\n async delete(\n params: Omit<ComAtprotoRepoDeleteRecord.InputSchema, 'collection'>,\n headers?: Record<string, string>,\n ): Promise<void> {\n await this._service.xrpc.call(\n 'com.atproto.repo.deleteRecord',\n undefined,\n { collection: 'app.bsky.feed.like', ...params },\n { headers },\n )\n }\n}\n\nexport class PostRecord {\n _service: AtpServiceClient\n\n constructor(service: AtpServiceClient) {\n this._service = service\n }\n\n async list(\n params: Omit<ComAtprotoRepoListRecords.QueryParams, 'collection'>,\n ): Promise<{\n cursor?: string\n records: { uri: string; value: AppBskyFeedPost.Record }[]\n }> {\n const res = await this._service.xrpc.call('com.atproto.repo.listRecords', {\n collection: 'app.bsky.feed.post',\n ...params,\n })\n return res.data\n }\n\n async get(\n params: Omit<ComAtprotoRepoGetRecord.QueryParams, 'collection'>,\n ): Promise<{ uri: string; cid: string; value: AppBskyFeedPost.Record }> {\n const res = await this._service.xrpc.call('com.atproto.repo.getRecord', {\n collection: 'app.bsky.feed.post',\n ...params,\n })\n return res.data\n }\n\n async create(\n params: Omit<\n ComAtprotoRepoCreateRecord.InputSchema,\n 'collection' | 'record'\n >,\n record: AppBskyFeedPost.Record,\n headers?: Record<string, string>,\n ): Promise<{ uri: string; cid: string }> {\n record.$type = 'app.bsky.feed.post'\n const res = await this._service.xrpc.call(\n 'com.atproto.repo.createRecord',\n undefined,\n { collection: 'app.bsky.feed.post', ...params, record },\n { encoding: 'application/json', headers },\n )\n return res.data\n }\n\n async delete(\n params: Omit<ComAtprotoRepoDeleteRecord.InputSchema, 'collection'>,\n headers?: Record<string, string>,\n ): Promise<void> {\n await this._service.xrpc.call(\n 'com.atproto.repo.deleteRecord',\n undefined,\n { collection: 'app.bsky.feed.post', ...params },\n { headers },\n )\n }\n}\n\nexport class RepostRecord {\n _service: AtpServiceClient\n\n constructor(service: AtpServiceClient) {\n this._service = service\n }\n\n async list(\n params: Omit<ComAtprotoRepoListRecords.QueryParams, 'collection'>,\n ): Promise<{\n cursor?: string\n records: { uri: string; value: AppBskyFeedRepost.Record }[]\n }> {\n const res = await this._service.xrpc.call('com.atproto.repo.listRecords', {\n collection: 'app.bsky.feed.repost',\n ...params,\n })\n return res.data\n }\n\n async get(\n params: Omit<ComAtprotoRepoGetRecord.QueryParams, 'collection'>,\n ): Promise<{ uri: string; cid: string; value: AppBskyFeedRepost.Record }> {\n const res = await this._service.xrpc.call('com.atproto.repo.getRecord', {\n collection: 'app.bsky.feed.repost',\n ...params,\n })\n return res.data\n }\n\n async create(\n params: Omit<\n ComAtprotoRepoCreateRecord.InputSchema,\n 'collection' | 'record'\n >,\n record: AppBskyFeedRepost.Record,\n headers?: Record<string, string>,\n ): Promise<{ uri: string; cid: string }> {\n record.$type = 'app.bsky.feed.repost'\n const res = await this._service.xrpc.call(\n 'com.atproto.repo.createRecord',\n undefined,\n { collection: 'app.bsky.feed.repost', ...params, record },\n { encoding: 'application/json', headers },\n )\n return res.data\n }\n\n async delete(\n params: Omit<ComAtprotoRepoDeleteRecord.InputSchema, 'collection'>,\n headers?: Record<string, string>,\n ): Promise<void> {\n await this._service.xrpc.call(\n 'com.atproto.repo.deleteRecord',\n undefined,\n { collection: 'app.bsky.feed.repost', ...params },\n { headers },\n )\n }\n}\n\nexport class GraphNS {\n _service: AtpServiceClient\n block: BlockRecord\n follow: FollowRecord\n list: ListRecord\n listitem: ListitemRecord\n\n constructor(service: AtpServiceClient) {\n this._service = service\n this.block = new BlockRecord(service)\n this.follow = new FollowRecord(service)\n this.list = new ListRecord(service)\n this.listitem = new ListitemRecord(service)\n }\n\n getBlocks(\n params?: AppBskyGraphGetBlocks.QueryParams,\n opts?: AppBskyGraphGetBlocks.CallOptions,\n ): Promise<AppBskyGraphGetBlocks.Response> {\n return this._service.xrpc\n .call('app.bsky.graph.getBlocks', params, undefined, opts)\n .catch((e) => {\n throw AppBskyGraphGetBlocks.toKnownErr(e)\n })\n }\n\n getFollowers(\n params?: AppBskyGraphGetFollowers.QueryParams,\n opts?: AppBskyGraphGetFollowers.CallOptions,\n ): Promise<AppBskyGraphGetFollowers.Response> {\n return this._service.xrpc\n .call('app.bsky.graph.getFollowers', params, undefined, opts)\n .catch((e) => {\n throw AppBskyGraphGetFollowers.toKnownErr(e)\n })\n }\n\n getFollows(\n params?: AppBskyGraphGetFollows.QueryParams,\n opts?: AppBskyGraphGetFollows.CallOptions,\n ): Promise<AppBskyGraphGetFollows.Response> {\n return this._service.xrpc\n .call('app.bsky.graph.getFollows', params, undefined, opts)\n .catch((e) => {\n throw AppBskyGraphGetFollows.toKnownErr(e)\n })\n }\n\n getList(\n params?: AppBskyGraphGetList.QueryParams,\n opts?: AppBskyGraphGetList.CallOptions,\n ): Promise<AppBskyGraphGetList.Response> {\n return this._service.xrpc\n .call('app.bsky.graph.getList', params, undefined, opts)\n .catch((e) => {\n throw AppBskyGraphGetList.toKnownErr(e)\n })\n }\n\n getListMutes(\n params?: AppBskyGraphGetListMutes.QueryParams,\n opts?: AppBskyGraphGetListMutes.CallOptions,\n ): Promise<AppBskyGraphGetListMutes.Response> {\n return this._service.xrpc\n .call('app.bsky.graph.getListMutes', params, undefined, opts)\n .catch((e) => {\n throw AppBskyGraphGetListMutes.toKnownErr(e)\n })\n }\n\n getLists(\n params?: AppBskyGraphGetLists.QueryParams,\n opts?: AppBskyGraphGetLists.CallOptions,\n ): Promise<AppBskyGraphGetLists.Response> {\n return this._service.xrpc\n .call('app.bsky.graph.getLists', params, undefined, opts)\n .catch((e) => {\n throw AppBskyGraphGetLists.toKnownErr(e)\n })\n }\n\n getMutes(\n params?: AppBskyGraphGetMutes.QueryParams,\n opts?: AppBskyGraphGetMutes.CallOptions,\n ): Promise<AppBskyGraphGetMutes.Response> {\n return this._service.xrpc\n .call('app.bsky.graph.getMutes', params, undefined, opts)\n .catch((e) => {\n throw AppBskyGraphGetMutes.toKnownErr(e)\n })\n }\n\n muteActor(\n data?: AppBskyGraphMuteActor.InputSchema,\n opts?: AppBskyGraphMuteActor.CallOptions,\n ): Promise<AppBskyGraphMuteActor.Response> {\n return this._service.xrpc\n .call('app.bsky.graph.muteActor', opts?.qp, data, opts)\n .catch((e) => {\n throw AppBskyGraphMuteActor.toKnownErr(e)\n })\n }\n\n muteActorList(\n data?: AppBskyGraphMuteActorList.InputSchema,\n opts?: AppBskyGraphMuteActorList.CallOptions,\n ): Promise<AppBskyGraphMuteActorList.Response> {\n return this._service.xrpc\n .call('app.bsky.graph.muteActorList', opts?.qp, data, opts)\n .catch((e) => {\n throw AppBskyGraphMuteActorList.toKnownErr(e)\n })\n }\n\n unmuteActor(\n data?: AppBskyGraphUnmuteActor.InputSchema,\n opts?: AppBskyGraphUnmuteActor.CallOptions,\n ): Promise<AppBskyGraphUnmuteActor.Response> {\n return this._service.xrpc\n .call('app.bsky.graph.unmuteActor', opts?.qp, data, opts)\n .catch((e) => {\n throw AppBskyGraphUnmuteActor.toKnownErr(e)\n })\n }\n\n unmuteActorList(\n data?: AppBskyGraphUnmuteActorList.InputSchema,\n opts?: AppBskyGraphUnmuteActorList.CallOptions,\n ): Promise<AppBskyGraphUnmuteActorList.Response> {\n return this._service.xrpc\n .call('app.bsky.graph.unmuteActorList', opts?.qp, data, opts)\n .catch((e) => {\n throw AppBskyGraphUnmuteActorList.toKnownErr(e)\n })\n }\n}\n\nexport class BlockRecord {\n _service: AtpServiceClient\n\n constructor(service: AtpServiceClient) {\n this._service = service\n }\n\n async list(\n params: Omit<ComAtprotoRepoListRecords.QueryParams, 'collection'>,\n ): Promise<{\n cursor?: string\n records: { uri: string; value: AppBskyGraphBlock.Record }[]\n }> {\n const res = await this._service.xrpc.call('com.atproto.repo.listRecords', {\n collection: 'app.bsky.graph.block',\n ...params,\n })\n return res.data\n }\n\n async get(\n params: Omit<ComAtprotoRepoGetRecord.QueryParams, 'collection'>,\n ): Promise<{ uri: string; cid: string; value: AppBskyGraphBlock.Record }> {\n const res = await this._service.xrpc.call('com.atproto.repo.getRecord', {\n collection: 'app.bsky.graph.block',\n ...params,\n })\n return res.data\n }\n\n async create(\n params: Omit<\n ComAtprotoRepoCreateRecord.InputSchema,\n 'collection' | 'record'\n >,\n record: AppBskyGraphBlock.Record,\n headers?: Record<string, string>,\n ): Promise<{ uri: string; cid: string }> {\n record.$type = 'app.bsky.graph.block'\n const res = await this._service.xrpc.call(\n 'com.atproto.repo.createRecord',\n undefined,\n { collection: 'app.bsky.graph.block', ...params, record },\n { encoding: 'application/json', headers },\n )\n return res.data\n }\n\n async delete(\n params: Omit<ComAtprotoRepoDeleteRecord.InputSchema, 'collection'>,\n headers?: Record<string, string>,\n ): Promise<void> {\n await this._service.xrpc.call(\n 'com.atproto.repo.deleteRecord',\n undefined,\n { collection: 'app.bsky.graph.block', ...params },\n { headers },\n )\n }\n}\n\nexport class FollowRecord {\n _service: AtpServiceClient\n\n constructor(service: AtpServiceClient) {\n this._service = service\n }\n\n async list(\n params: Omit<ComAtprotoRepoListRecords.QueryParams, 'collection'>,\n ): Promise<{\n cursor?: string\n records: { uri: string; value: AppBskyGraphFollow.Record }[]\n }> {\n const res = await this._service.xrpc.call('com.atproto.repo.listRecords', {\n collection: 'app.bsky.graph.follow',\n ...params,\n })\n return res.data\n }\n\n async get(\n params: Omit<ComAtprotoRepoGetRecord.QueryParams, 'collection'>,\n ): Promise<{ uri: string; cid: string; value: AppBskyGraphFollow.Record }> {\n const res = await this._service.xrpc.call('com.atproto.repo.getRecord', {\n collection: 'app.bsky.graph.follow',\n ...params,\n })\n return res.data\n }\n\n async create(\n params: Omit<\n ComAtprotoRepoCreateRecord.InputSchema,\n 'collection' | 'record'\n >,\n record: AppBskyGraphFollow.Record,\n headers?: Record<string, string>,\n ): Promise<{ uri: string; cid: string }> {\n record.$type = 'app.bsky.graph.follow'\n const res = await this._service.xrpc.call(\n 'com.atproto.repo.createRecord',\n undefined,\n { collection: 'app.bsky.graph.follow', ...params, record },\n { encoding: 'application/json', headers },\n )\n return res.data\n }\n\n async delete(\n params: Omit<ComAtprotoRepoDeleteRecord.InputSchema, 'collection'>,\n headers?: Record<string, string>,\n ): Promise<void> {\n await this._service.xrpc.call(\n 'com.atproto.repo.deleteRecord',\n undefined,\n { collection: 'app.bsky.graph.follow', ...params },\n { headers },\n )\n }\n}\n\nexport class ListRecord {\n _service: AtpServiceClient\n\n constructor(service: AtpServiceClient) {\n this._service = service\n }\n\n async list(\n params: Omit<ComAtprotoRepoListRecords.QueryParams, 'collection'>,\n ): Promise<{\n cursor?: string\n records: { uri: string; value: AppBskyGraphList.Record }[]\n }> {\n const res = await this._service.xrpc.call('com.atproto.repo.listRecords', {\n collection: 'app.bsky.graph.list',\n ...params,\n })\n return res.data\n }\n\n async get(\n params: Omit<ComAtprotoRepoGetRecord.QueryParams, 'collection'>,\n ): Promise<{ uri: string; cid: string; value: AppBskyGraphList.Record }> {\n const res = await this._service.xrpc.call('com.atproto.repo.getRecord', {\n collection: 'app.bsky.graph.list',\n ...params,\n })\n return res.data\n }\n\n async create(\n params: Omit<\n ComAtprotoRepoCreateRecord.InputSchema,\n 'collection' | 'record'\n >,\n record: AppBskyGraphList.Record,\n headers?: Record<string, string>,\n ): Promise<{ uri: string; cid: string }> {\n record.$type = 'app.bsky.graph.list'\n const res = await this._service.xrpc.call(\n 'com.atproto.repo.createRecord',\n undefined,\n { collection: 'app.bsky.graph.list', ...params, record },\n { encoding: 'application/json', headers },\n )\n return res.data\n }\n\n async delete(\n params: Omit<ComAtprotoRepoDeleteRecord.InputSchema, 'collection'>,\n headers?: Record<string, string>,\n ): Promise<void> {\n await this._service.xrpc.call(\n 'com.atproto.repo.deleteRecord',\n undefined,\n { collection: 'app.bsky.graph.list', ...params },\n { headers },\n )\n }\n}\n\nexport class ListitemRecord {\n _service: AtpServiceClient\n\n constructor(service: AtpServiceClient) {\n this._service = service\n }\n\n async list(\n params: Omit<ComAtprotoRepoListRecords.QueryParams, 'collection'>,\n ): Promise<{\n cursor?: string\n records: { uri: string; value: AppBskyGraphListitem.Record }[]\n }> {\n const res = await this._service.xrpc.call('com.atproto.repo.listRecords', {\n collection: 'app.bsky.graph.listitem',\n ...params,\n })\n return res.data\n }\n\n async get(\n params: Omit<ComAtprotoRepoGetRecord.QueryParams, 'collection'>,\n ): Promise<{ uri: string; cid: string; value: AppBskyGraphListitem.Record }> {\n const res = await this._service.xrpc.call('com.atproto.repo.getRecord', {\n collection: 'app.bsky.graph.listitem',\n ...params,\n })\n return res.data\n }\n\n async create(\n params: Omit<\n ComAtprotoRepoCreateRecord.InputSchema,\n 'collection' | 'record'\n >,\n record: AppBskyGraphListitem.Record,\n headers?: Record<string, string>,\n ): Promise<{ uri: string; cid: string }> {\n record.$type = 'app.bsky.graph.listitem'\n const res = await this._service.xrpc.call(\n 'com.atproto.repo.createRecord',\n undefined,\n { collection: 'app.bsky.graph.listitem', ...params, record },\n { encoding: 'application/json', headers },\n )\n return res.data\n }\n\n async delete(\n params: Omit<ComAtprotoRepoDeleteRecord.InputSchema, 'collection'>,\n headers?: Record<string, string>,\n ): Promise<void> {\n await this._service.xrpc.call(\n 'com.atproto.repo.deleteRecord',\n undefined,\n { collection: 'app.bsky.graph.listitem', ...params },\n { headers },\n )\n }\n}\n\nexport class NotificationNS {\n _service: AtpServiceClient\n\n constructor(service: AtpServiceClient) {\n this._service = service\n }\n\n getUnreadCount(\n params?: AppBskyNotificationGetUnreadCount.QueryParams,\n opts?: AppBskyNotificationGetUnreadCount.CallOptions,\n ): Promise<AppBskyNotificationGetUnreadCount.Response> {\n return this._service.xrpc\n .call('app.bsky.notification.getUnreadCount', params, undefined, opts)\n .catch((e) => {\n throw AppBskyNotificationGetUnreadCount.toKnownErr(e)\n })\n }\n\n listNotifications(\n params?: AppBskyNotificationListNotifications.QueryParams,\n opts?: AppBskyNotificationListNotifications.CallOptions,\n ): Promise<AppBskyNotificationListNotifications.Response> {\n return this._service.xrpc\n .call('app.bsky.notification.listNotifications', params, undefined, opts)\n .catch((e) => {\n throw AppBskyNotificationListNotifications.toKnownErr(e)\n })\n }\n\n updateSeen(\n data?: AppBskyNotificationUpdateSeen.InputSchema,\n opts?: AppBskyNotificationUpdateSeen.CallOptions,\n ): Promise<AppBskyNotificationUpdateSeen.Response> {\n return this._service.xrpc\n .call('app.bsky.notification.updateSeen', opts?.qp, data, opts)\n .catch((e) => {\n throw AppBskyNotificationUpdateSeen.toKnownErr(e)\n })\n }\n}\n\nexport class RichtextNS {\n _service: AtpServiceClient\n\n constructor(service: AtpServiceClient) {\n this._service = service\n }\n}\n\nexport class UnspeccedNS {\n _service: AtpServiceClient\n\n constructor(service: AtpServiceClient) {\n this._service = service\n }\n\n getPopular(\n params?: AppBskyUnspeccedGetPopular.QueryParams,\n opts?: AppBskyUnspeccedGetPopular.CallOptions,\n ): Promise<AppBskyUnspeccedGetPopular.Response> {\n return this._service.xrpc\n .call('app.bsky.unspecced.getPopular', params, undefined, opts)\n .catch((e) => {\n throw AppBskyUnspeccedGetPopular.toKnownErr(e)\n })\n }\n}\n", "import { ErrorResponseBody, errorResponseBody } from '@atproto/xrpc'\nimport { defaultFetchHandler } from '@atproto/xrpc'\nimport {\n AtpBaseClient,\n AtpServiceClient,\n ComAtprotoServerCreateAccount,\n ComAtprotoServerCreateSession,\n ComAtprotoServerGetSession,\n ComAtprotoServerRefreshSession,\n ComAtprotoRepoUploadBlob,\n} from './client'\nimport {\n AtpSessionData,\n AtpAgentCreateAccountOpts,\n AtpAgentLoginOpts,\n AtpAgentFetchHandler,\n AtpAgentFetchHandlerResponse,\n AtpAgentGlobalOpts,\n AtpPersistSessionHandler,\n AtpAgentOpts,\n} from './types'\n\nconst REFRESH_SESSION = 'com.atproto.server.refreshSession'\n\n/**\n * An ATP \"Agent\"\n * Manages session token lifecycles and provides convenience methods.\n */\nexport class AtpAgent {\n service: URL\n api: AtpServiceClient\n session?: AtpSessionData\n\n private _baseClient: AtpBaseClient\n private _persistSession?: AtpPersistSessionHandler\n private _refreshSessionPromise: Promise<void> | undefined\n\n get com() {\n return this.api.com\n }\n\n /**\n * The `fetch` implementation; must be implemented for your platform.\n */\n static fetch: AtpAgentFetchHandler | undefined = defaultFetchHandler\n\n /**\n * Configures the API globally.\n */\n static configure(opts: AtpAgentGlobalOpts) {\n AtpAgent.fetch = opts.fetch\n }\n\n constructor(opts: AtpAgentOpts) {\n this.service =\n opts.service instanceof URL ? opts.service : new URL(opts.service)\n this._persistSession = opts.persistSession\n\n // create an ATP client instance for this agent\n this._baseClient = new AtpBaseClient()\n this._baseClient.xrpc.fetch = this._fetch.bind(this) // patch its fetch implementation\n this.api = this._baseClient.service(opts.service)\n }\n\n /**\n * Is there any active session?\n */\n get hasSession() {\n return !!this.session\n }\n\n /**\n * Sets the \"Persist Session\" method which can be used to store access tokens\n * as they change.\n */\n setPersistSessionHandler(handler?: AtpPersistSessionHandler) {\n this._persistSession = handler\n }\n\n /**\n * Create a new account and hydrate its session in this agent.\n */\n async createAccount(\n opts: AtpAgentCreateAccountOpts,\n ): Promise<ComAtprotoServerCreateAccount.Response> {\n try {\n const res = await this.api.com.atproto.server.createAccount({\n handle: opts.handle,\n password: opts.password,\n email: opts.email,\n inviteCode: opts.inviteCode,\n })\n this.session = {\n accessJwt: res.data.accessJwt,\n refreshJwt: res.data.refreshJwt,\n handle: res.data.handle,\n did: res.data.did,\n email: opts.email,\n }\n return res\n } catch (e) {\n this.session = undefined\n throw e\n } finally {\n if (this.session) {\n this._persistSession?.('create', this.session)\n } else {\n this._persistSession?.('create-failed', undefined)\n }\n }\n }\n\n /**\n * Start a new session with this agent.\n */\n async login(\n opts: AtpAgentLoginOpts,\n ): Promise<ComAtprotoServerCreateSession.Response> {\n try {\n const res = await this.api.com.atproto.server.createSession({\n identifier: opts.identifier,\n password: opts.password,\n })\n this.session = {\n accessJwt: res.data.accessJwt,\n refreshJwt: res.data.refreshJwt,\n handle: res.data.handle,\n did: res.data.did,\n email: res.data.email,\n }\n return res\n } catch (e) {\n this.session = undefined\n throw e\n } finally {\n if (this.session) {\n this._persistSession?.('create', this.session)\n } else {\n this._persistSession?.('create-failed', undefined)\n }\n }\n }\n\n /**\n * Resume a pre-existing session with this agent.\n */\n async resumeSession(\n session: AtpSessionData,\n ): Promise<ComAtprotoServerGetSession.Response> {\n try {\n this.session = session\n const res = await this.api.com.atproto.server.getSession()\n if (!res.success || res.data.did !== this.session.did) {\n throw new Error('Invalid session')\n }\n this.session.email = res.data.email\n this.session.handle = res.data.handle\n return res\n } catch (e) {\n this.session = undefined\n throw e\n } finally {\n if (this.session) {\n this._persistSession?.('create', this.session)\n } else {\n this._persistSession?.('create-failed', undefined)\n }\n }\n }\n\n /**\n * Internal helper to add authorization headers to requests.\n */\n private _addAuthHeader(reqHeaders: Record<string, string>) {\n if (!reqHeaders.authorization && this.session?.accessJwt) {\n return {\n ...reqHeaders,\n authorization: `Bearer ${this.session.accessJwt}`,\n }\n }\n return reqHeaders\n }\n\n /**\n * Internal fetch handler which adds access-token management\n */\n private async _fetch(\n reqUri: string,\n reqMethod: string,\n reqHeaders: Record<string, string>,\n reqBody: any,\n ): Promise<AtpAgentFetchHandlerResponse> {\n if (!AtpAgent.fetch) {\n throw new Error('AtpAgent fetch() method not configured')\n }\n\n // wait for any active session-refreshes to finish\n await this._refreshSessionPromise\n\n // send the request\n let res = await AtpAgent.fetch(\n reqUri,\n reqMethod,\n this._addAuthHeader(reqHeaders),\n reqBody,\n )\n\n // handle session-refreshes as needed\n if (isErrorResponse(res, ['ExpiredToken']) && this.session?.refreshJwt) {\n // attempt refresh\n await this._refreshSession()\n\n // resend the request with the new access token\n res = await AtpAgent.fetch(\n reqUri,\n reqMethod,\n this._addAuthHeader(reqHeaders),\n reqBody,\n )\n }\n\n return res\n }\n\n /**\n * Internal helper to refresh sessions\n * - Wraps the actual implementation in a promise-guard to ensure only\n * one refresh is attempted at a time.\n */\n private async _refreshSession() {\n if (this._refreshSessionPromise) {\n return this._refreshSessionPromise\n }\n this._refreshSessionPromise = this._refreshSessionInner()\n try {\n await this._refreshSessionPromise\n } finally {\n this._refreshSessionPromise = undefined\n }\n }\n\n /**\n * Internal helper to refresh sessions (actual behavior)\n */\n private async _refreshSessionInner() {\n if (!AtpAgent.fetch) {\n throw new Error('AtpAgent fetch() method not configured')\n }\n if (!this.session?.refreshJwt) {\n return\n }\n\n // send the refresh request\n const url = new URL(this.service.origin)\n url.pathname = `/xrpc/${REFRESH_SESSION}`\n const res = await AtpAgent.fetch(\n url.toString(),\n 'POST',\n {\n authorization: `Bearer ${this.session.refreshJwt}`,\n },\n undefined,\n )\n\n if (isErrorResponse(res, ['ExpiredToken', 'InvalidToken'])) {\n // failed due to a bad refresh token\n this.session = undefined\n this._persistSession?.('expired', undefined)\n } else if (isNewSessionObject(this._baseClient, res.body)) {\n // succeeded, update the session\n this.session = {\n accessJwt: res.body.accessJwt,\n refreshJwt: res.body.refreshJwt,\n handle: res.body.handle,\n did: res.body.did,\n }\n this._persistSession?.('update', this.session)\n }\n // else: other failures should be ignored - the issue will\n // propagate in the _fetch() handler's second attempt to run\n // the request\n }\n\n /**\n * Upload a binary blob to the server\n */\n uploadBlob: typeof this.api.com.atproto.repo.uploadBlob = (data, opts) =>\n this.api.com.atproto.repo.uploadBlob(data, opts)\n\n /**\n * Resolve a handle to a DID\n */\n resolveHandle: typeof this.api.com.atproto.identity.resolveHandle = (\n params,\n opts,\n ) => this.api.com.atproto.identity.resolveHandle(params, opts)\n\n /**\n * Change the user's handle\n */\n updateHandle: typeof this.api.com.atproto.identity.updateHandle = (\n data,\n opts,\n ) => this.api.com.atproto.identity.updateHandle(data, opts)\n\n /**\n * Create a moderation report\n */\n createModerationReport: typeof this.api.com.atproto.moderation.createReport =\n (data, opts) => this.api.com.atproto.moderation.createReport(data, opts)\n}\n\nfunction isErrorObject(v: unknown): v is ErrorResponseBody {\n return errorResponseBody.safeParse(v).success\n}\n\nfunction isErrorResponse(\n res: AtpAgentFetchHandlerResponse,\n errorNames: string[],\n): boolean {\n if (res.status !== 400) {\n return false\n }\n if (!isErrorObject(res.body)) {\n return false\n }\n return (\n typeof res.body.error === 'string' && errorNames.includes(res.body.error)\n )\n}\n\nfunction isNewSessionObject(\n client: AtpBaseClient,\n v: unknown,\n): v is ComAtprotoServerRefreshSession.OutputSchema {\n try {\n client.xrpc.lex.assertValidXrpcOutput(\n 'com.atproto.server.refreshSession',\n v,\n )\n return true\n } catch {\n return false\n }\n}\n", "/**\n * Javascript uses utf16-encoded strings while most environments and specs\n * have standardized around utf8 (including JSON).\n *\n * After some lengthy debated we decided that richtext facets need to use\n * utf8 indices. This means we need tools to convert indices between utf8\n * and utf16, and that's precisely what this library handles.\n */\n\nimport { graphemeLen } from '@atproto/common-web'\n\nconst encoder = new TextEncoder()\nconst decoder = new TextDecoder()\n\nexport class UnicodeString {\n utf16: string\n utf8: Uint8Array\n private _graphemeLen?: number | undefined\n\n constructor(utf16: string) {\n this.utf16 = utf16\n this.utf8 = encoder.encode(utf16)\n }\n\n get length() {\n return this.utf8.byteLength\n }\n\n get graphemeLength() {\n if (!this._graphemeLen) {\n this._graphemeLen = graphemeLen(this.utf16)\n }\n return this._graphemeLen\n }\n\n slice(start?: number, end?: number): string {\n return decoder.decode(this.utf8.slice(start, end))\n }\n\n utf16IndexToUtf8Index(i: number) {\n return encoder.encode(this.utf16.slice(0, i)).byteLength\n }\n\n toString() {\n return this.utf16\n }\n}\n", "import { RichText } from './rich-text'\nimport { UnicodeString } from './unicode'\n\nconst EXCESS_SPACE_RE = /[\\r\\n]([\\u00AD\\u2060\\u200D\\u200C\\u200B\\s]*[\\r\\n]){2,}/\nconst REPLACEMENT_STR = '\\n\\n'\n\nexport function sanitizeRichText(\n richText: RichText,\n opts: { cleanNewlines?: boolean },\n) {\n if (opts.cleanNewlines) {\n richText = clean(richText, EXCESS_SPACE_RE, REPLACEMENT_STR)\n }\n return richText\n}\n\nfunction clean(\n richText: RichText,\n targetRegexp: RegExp,\n replacementString: string,\n): RichText {\n richText = richText.clone()\n\n let match = richText.unicodeText.utf16.match(targetRegexp)\n while (match && typeof match.index !== 'undefined') {\n const oldText = richText.unicodeText\n const removeStartIndex = richText.unicodeText.utf16IndexToUtf8Index(\n match.index,\n )\n const removeEndIndex = removeStartIndex + new UnicodeString(match[0]).length\n richText.delete(removeStartIndex, removeEndIndex)\n if (richText.unicodeText.utf16 === oldText.utf16) {\n break // sanity check\n }\n richText.insert(removeStartIndex, replacementString)\n match = richText.unicodeText.utf16.match(targetRegexp)\n }\n\n return richText\n}\n", "import TLDs from 'tlds'\nimport { AppBskyRichtextFacet } from '../client'\nimport { UnicodeString } from './unicode'\n\nexport type Facet = AppBskyRichtextFacet.Main\n\nexport function detectFacets(text: UnicodeString): Facet[] | undefined {\n let match\n const facets: Facet[] = []\n {\n // mentions\n const re = /(^|\\s|\\()(@)([a-zA-Z0-9.-]+)(\\b)/g\n while ((match = re.exec(text.utf16))) {\n if (!isValidDomain(match[3]) && !match[3].endsWith('.test')) {\n continue // probably not a handle\n }\n\n const start = text.utf16.indexOf(match[3], match.index) - 1\n facets.push({\n $type: 'app.bsky.richtext.facet',\n index: {\n byteStart: text.utf16IndexToUtf8Index(start),\n byteEnd: text.utf16IndexToUtf8Index(start + match[3].length + 1),\n },\n features: [\n {\n $type: 'app.bsky.richtext.facet#mention',\n did: match[3], // must be resolved afterwards\n },\n ],\n })\n }\n }\n {\n // links\n const re =\n /(^|\\s|\\()((https?:\\/\\/[\\S]+)|((?<domain>[a-z][a-z0-9]*(\\.[a-z0-9]+)+)[\\S]*))/gim\n while ((match = re.exec(text.utf16))) {\n let uri = match[2]\n if (!uri.startsWith('http')) {\n const domain = match.groups?.domain\n if (!domain || !isValidDomain(domain)) {\n continue\n }\n uri = `https://${uri}`\n }\n const start = text.utf16.indexOf(match[2], match.index)\n const index = { start, end: start + match[2].length }\n // strip ending puncuation\n if (/[.,;!?]$/.test(uri)) {\n uri = uri.slice(0, -1)\n index.end--\n }\n if (/[)]$/.test(uri) && !uri.includes('(')) {\n uri = uri.slice(0, -1)\n index.end--\n }\n facets.push({\n index: {\n byteStart: text.utf16IndexToUtf8Index(index.start),\n byteEnd: text.utf16IndexToUtf8Index(index.end),\n },\n features: [\n {\n $type: 'app.bsky.richtext.facet#link',\n uri,\n },\n ],\n })\n }\n }\n return facets.length > 0 ? facets : undefined\n}\n\nfunction isValidDomain(str: string): boolean {\n return !!TLDs.find((tld) => {\n const i = str.lastIndexOf(tld)\n if (i === -1) {\n return false\n }\n return str.charAt(i - 1) === '.' && i === str.length - tld.length\n })\n}\n", "/*\n= Rich Text Manipulation\n\nWhen we sanitize rich text, we have to update the entity indices as the\ntext is modified. This can be modeled as inserts() and deletes() of the\nrich text string. The possible scenarios are outlined below, along with\ntheir expected behaviors.\n\nNOTE: Slices are start inclusive, end exclusive\n\n== richTextInsert()\n\nTarget string:\n\n 0 1 2 3 4 5 6 7 8 910 // string indices\n h e l l o w o r l d // string value\n ^-------^ // target slice {start: 2, end: 7}\n\nScenarios:\n\nA: ^ // insert \"test\" at 0\nB: ^ // insert \"test\" at 4\nC: ^ // insert \"test\" at 8\n\nA = before -> move both by num added\nB = inner -> move end by num added\nC = after -> noop\n\nResults:\n\nA: 0 1 2 3 4 5 6 7 8 910 // string indices\n t e s t h e l l o w // string value\n ^-------^ // target slice {start: 6, end: 11}\n\nB: 0 1 2 3 4 5 6 7 8 910 // string indices\n h e l l t e s t o w // string value\n ^---------------^ // target slice {start: 2, end: 11}\n\nC: 0 1 2 3 4 5 6 7 8 910 // string indices\n h e l l o w o t e s // string value\n ^-------^ // target slice {start: 2, end: 7}\n\n== richTextDelete()\n\nTarget string:\n\n 0 1 2 3 4 5 6 7 8 910 // string indices\n h e l l o w o r l d // string value\n ^-------^ // target slice {start: 2, end: 7}\n\nScenarios:\n\nA: ^---------------^ // remove slice {start: 0, end: 9}\nB: ^-----^ // remove slice {start: 7, end: 11}\nC: ^-----------^ // remove slice {start: 4, end: 11}\nD: ^-^ // remove slice {start: 3, end: 5}\nE: ^-----^ // remove slice {start: 1, end: 5}\nF: ^-^ // remove slice {start: 0, end: 2}\n\nA = entirely outer -> delete slice\nB = entirely after -> noop\nC = partially after -> move end to remove-start\nD = entirely inner -> move end by num removed\nE = partially before -> move start to remove-start index, move end by num removed\nF = entirely before -> move both by num removed\n\nResults:\n\nA: 0 1 2 3 4 5 6 7 8 910 // string indices\n l d // string value\n // target slice (deleted)\n\nB: 0 1 2 3 4 5 6 7 8 910 // string indices\n h e l l o w // string value\n ^-------^ // target slice {start: 2, end: 7}\n\nC: 0 1 2 3 4 5 6 7 8 910 // string indices\n h e l l // string value\n ^-^ // target slice {start: 2, end: 4}\n\nD: 0 1 2 3 4 5 6 7 8 910 // string indices\n h e l w o r l d // string value\n ^---^ // target slice {start: 2, end: 5}\n\nE: 0 1 2 3 4 5 6 7 8 910 // string indices\n h w o r l d // string value\n ^-^ // target slice {start: 1, end: 3}\n\nF: 0 1 2 3 4 5 6 7 8 910 // string indices\n l l o w o r l d // string value\n ^-------^ // target slice {start: 0, end: 5}\n */\n\nimport { AtpAgent } from '../agent'\nimport { AppBskyFeedPost, AppBskyRichtextFacet } from '../client'\nimport { UnicodeString } from './unicode'\nimport { sanitizeRichText } from './sanitization'\nimport { detectFacets } from './detection'\n\nexport type Facet = AppBskyRichtextFacet.Main\nexport type FacetLink = AppBskyRichtextFacet.Link\nexport type FacetMention = AppBskyRichtextFacet.Mention\nexport type Entity = AppBskyFeedPost.Entity\n\nexport interface RichTextProps {\n text: string\n facets?: Facet[]\n /**\n * @deprecated Use facets instead\n */\n entities?: Entity[]\n}\n\nexport interface RichTextOpts {\n cleanNewlines?: boolean\n}\n\nexport class RichTextSegment {\n constructor(public text: string, public facet?: Facet) {}\n\n get link(): FacetLink | undefined {\n const link = this.facet?.features.find(AppBskyRichtextFacet.isLink)\n if (AppBskyRichtextFacet.isLink(link)) {\n return link\n }\n return undefined\n }\n\n isLink() {\n return !!this.link\n }\n\n get mention(): FacetMention | undefined {\n const mention = this.facet?.features.find(AppBskyRichtextFacet.isMention)\n if (AppBskyRichtextFacet.isMention(mention)) {\n return mention\n }\n return undefined\n }\n\n isMention() {\n return !!this.mention\n }\n}\n\nexport class RichText {\n unicodeText: UnicodeString\n facets?: Facet[]\n\n constructor(props: RichTextProps, opts?: RichTextOpts) {\n this.unicodeText = new UnicodeString(props.text)\n this.facets = props.facets\n if (!this.facets?.length && props.entities?.length) {\n this.facets = entitiesToFacets(this.unicodeText, props.entities)\n }\n if (this.facets) {\n this.facets.sort(facetSort)\n }\n if (opts?.cleanNewlines) {\n sanitizeRichText(this, { cleanNewlines: true }).copyInto(this)\n }\n }\n\n get text() {\n return this.unicodeText.toString()\n }\n\n get length() {\n return this.unicodeText.length\n }\n\n get graphemeLength() {\n return this.unicodeText.graphemeLength\n }\n\n clone() {\n return new RichText({\n text: this.unicodeText.utf16,\n facets: cloneDeep(this.facets),\n })\n }\n\n copyInto(target: RichText) {\n target.unicodeText = this.unicodeText\n target.facets = cloneDeep(this.facets)\n }\n\n *segments(): Generator<RichTextSegment, void, void> {\n const facets = this.facets || []\n if (!facets.length) {\n yield new RichTextSegment(this.unicodeText.utf16)\n return\n }\n\n let textCursor = 0\n let facetCursor = 0\n do {\n const currFacet = facets[facetCursor]\n if (textCursor < currFacet.index.byteStart) {\n yield new RichTextSegment(\n this.unicodeText.slice(textCursor, currFacet.index.byteStart),\n )\n } else if (textCursor > currFacet.index.byteStart) {\n facetCursor++\n continue\n }\n if (currFacet.index.byteStart < currFacet.index.byteEnd) {\n const subtext = this.unicodeText.slice(\n currFacet.index.byteStart,\n currFacet.index.byteEnd,\n )\n if (!subtext.trim()) {\n // dont empty string entities\n yield new RichTextSegment(subtext)\n } else {\n yield new RichTextSegment(subtext, currFacet)\n }\n }\n textCursor = currFacet.index.byteEnd\n facetCursor++\n } while (facetCursor < facets.length)\n if (textCursor < this.unicodeText.length) {\n yield new RichTextSegment(\n this.unicodeText.slice(textCursor, this.unicodeText.length),\n )\n }\n }\n\n insert(insertIndex: number, insertText: string) {\n this.unicodeText = new UnicodeString(\n this.unicodeText.slice(0, insertIndex) +\n insertText +\n this.unicodeText.slice(insertIndex),\n )\n\n if (!this.facets?.length) {\n return this\n }\n\n const numCharsAdded = insertText.length\n for (const ent of this.facets) {\n // see comment at top of file for labels of each scenario\n // scenario A (before)\n if (insertIndex <= ent.index.byteStart) {\n // move both by num added\n ent.index.byteStart += numCharsAdded\n ent.index.byteEnd += numCharsAdded\n }\n // scenario B (inner)\n else if (\n insertIndex >= ent.index.byteStart &&\n insertIndex < ent.index.byteEnd\n ) {\n // move end by num added\n ent.index.byteEnd += numCharsAdded\n }\n // scenario C (after)\n // noop\n }\n return this\n }\n\n delete(removeStartIndex: number, removeEndIndex: number) {\n this.unicodeText = new UnicodeString(\n this.unicodeText.slice(0, removeStartIndex) +\n this.unicodeText.slice(removeEndIndex),\n )\n\n if (!this.facets?.length) {\n return this\n }\n\n const numCharsRemoved = removeEndIndex - removeStartIndex\n for (const ent of this.facets) {\n // see comment at top of file for labels of each scenario\n // scenario A (entirely outer)\n if (\n removeStartIndex <= ent.index.byteStart &&\n removeEndIndex >= ent.index.byteEnd\n ) {\n // delete slice (will get removed in final pass)\n ent.index.byteStart = 0\n ent.index.byteEnd = 0\n }\n // scenario B (entirely after)\n else if (removeStartIndex > ent.index.byteEnd) {\n // noop\n }\n // scenario C (partially after)\n else if (\n removeStartIndex > ent.index.byteStart &&\n removeStartIndex <= ent.index.byteEnd &&\n removeEndIndex > ent.index.byteEnd\n ) {\n // move end to remove start\n ent.index.byteEnd = removeStartIndex\n }\n // scenario D (entirely inner)\n else if (\n removeStartIndex >= ent.index.byteStart &&\n removeEndIndex <= ent.index.byteEnd\n ) {\n // move end by num removed\n ent.index.byteEnd -= numCharsRemoved\n }\n // scenario E (partially before)\n else if (\n removeStartIndex < ent.index.byteStart &&\n removeEndIndex >= ent.index.byteStart &&\n removeEndIndex <= ent.index.byteEnd\n ) {\n // move start to remove-start index, move end by num removed\n ent.index.byteStart = removeStartIndex\n ent.index.byteEnd -= numCharsRemoved\n }\n // scenario F (entirely before)\n else if (removeEndIndex < ent.index.byteStart) {\n // move both by num removed\n ent.index.byteStart -= numCharsRemoved\n ent.index.byteEnd -= numCharsRemoved\n }\n }\n\n // filter out any facets that were made irrelevant\n this.facets = this.facets.filter(\n (ent) => ent.index.byteStart < ent.index.byteEnd,\n )\n return this\n }\n\n /**\n * Detects facets such as links and mentions\n * Note: Overwrites the existing facets with auto-detected facets\n */\n async detectFacets(agent: AtpAgent) {\n this.facets = detectFacets(this.unicodeText)\n if (this.facets) {\n for (const facet of this.facets) {\n for (const feature of facet.features) {\n if (AppBskyRichtextFacet.isMention(feature)) {\n const did = await agent\n .resolveHandle({ handle: feature.did })\n .catch((_) => undefined)\n .then((res) => res?.data.did)\n feature.did = did || ''\n }\n }\n }\n this.facets.sort(facetSort)\n }\n }\n\n /**\n * Detects facets such as links and mentions but does not resolve them\n * Will produce invalid facets! For instance, mentions will not have their DIDs set.\n * Note: Overwrites the existing facets with auto-detected facets\n */\n detectFacetsWithoutResolution() {\n this.facets = detectFacets(this.unicodeText)\n if (this.facets) {\n this.facets.sort(facetSort)\n }\n }\n}\n\nconst facetSort = (a, b) => a.index.byteStart - b.index.byteStart\n\nfunction entitiesToFacets(text: UnicodeString, entities: Entity[]): Facet[] {\n const facets: Facet[] = []\n for (const ent of entities) {\n if (ent.type === 'link') {\n facets.push({\n $type: 'app.bsky.richtext.facet',\n index: {\n byteStart: text.utf16IndexToUtf8Index(ent.index.start),\n byteEnd: text.utf16IndexToUtf8Index(ent.index.end),\n },\n features: [{ $type: 'app.bsky.richtext.facet#link', uri: ent.value }],\n })\n } else if (ent.type === 'mention') {\n facets.push({\n $type: 'app.bsky.richtext.facet',\n index: {\n byteStart: text.utf16IndexToUtf8Index(ent.index.start),\n byteEnd: text.utf16IndexToUtf8Index(ent.index.end),\n },\n features: [\n { $type: 'app.bsky.richtext.facet#mention', did: ent.value },\n ],\n })\n }\n }\n return facets\n}\n\nfunction cloneDeep<T>(v: T): T {\n if (typeof v === 'undefined') {\n return v\n }\n return JSON.parse(JSON.stringify(v))\n}\n", "import { AtUri } from '@atproto/uri'\nimport { AtpAgent } from './agent'\nimport {\n AppBskyFeedPost,\n AppBskyActorProfile,\n ComAtprotoRepoPutRecord,\n} from './client'\n\nexport class BskyAgent extends AtpAgent {\n get app() {\n return this.api.app\n }\n\n getTimeline: typeof this.api.app.bsky.feed.getTimeline = (params, opts) =>\n this.api.app.bsky.feed.getTimeline(params, opts)\n\n getAuthorFeed: typeof this.api.app.bsky.feed.getAuthorFeed = (params, opts) =>\n this.api.app.bsky.feed.getAuthorFeed(params, opts)\n\n getPostThread: typeof this.api.app.bsky.feed.getPostThread = (params, opts) =>\n this.api.app.bsky.feed.getPostThread(params, opts)\n\n getPost: typeof this.api.app.bsky.feed.post.get = (params) =>\n this.api.app.bsky.feed.post.get(params)\n\n getPosts: typeof this.api.app.bsky.feed.getPosts = (params, opts) =>\n this.api.app.bsky.feed.getPosts(params, opts)\n\n getLikes: typeof this.api.app.bsky.feed.getLikes = (params, opts) =>\n this.api.app.bsky.feed.getLikes(params, opts)\n\n getRepostedBy: typeof this.api.app.bsky.feed.getRepostedBy = (params, opts) =>\n this.api.app.bsky.feed.getRepostedBy(params, opts)\n\n getFollows: typeof this.api.app.bsky.graph.getFollows = (params, opts) =>\n this.api.app.bsky.graph.getFollows(params, opts)\n\n getFollowers: typeof this.api.app.bsky.graph.getFollowers = (params, opts) =>\n this.api.app.bsky.graph.getFollowers(params, opts)\n\n getProfile: typeof this.api.app.bsky.actor.getProfile = (params, opts) =>\n this.api.app.bsky.actor.getProfile(params, opts)\n\n getProfiles: typeof this.api.app.bsky.actor.getProfiles = (params, opts) =>\n this.api.app.bsky.actor.getProfiles(params, opts)\n\n getSuggestions: typeof this.api.app.bsky.actor.getSuggestions = (\n params,\n opts,\n ) => this.api.app.bsky.actor.getSuggestions(params, opts)\n\n searchActors: typeof this.api.app.bsky.actor.searchActors = (params, opts) =>\n this.api.app.bsky.actor.searchActors(params, opts)\n\n searchActorsTypeahead: typeof this.api.app.bsky.actor.searchActorsTypeahead =\n (params, opts) =>\n this.api.app.bsky.actor.searchActorsTypeahead(params, opts)\n\n listNotifications: typeof this.api.app.bsky.notification.listNotifications = (\n params,\n opts,\n ) => this.api.app.bsky.notification.listNotifications(params, opts)\n\n countUnreadNotifications: typeof this.api.app.bsky.notification.getUnreadCount =\n (params, opts) =>\n this.api.app.bsky.notification.getUnreadCount(params, opts)\n\n async post(\n record: Partial<AppBskyFeedPost.Record> &\n Omit<AppBskyFeedPost.Record, 'createdAt'>,\n ) {\n if (!this.session) {\n throw new Error('Not logged in')\n }\n record.createdAt = record.createdAt || new Date().toISOString()\n return this.api.app.bsky.feed.post.create(\n { repo: this.session.did },\n record as AppBskyFeedPost.Record,\n )\n }\n\n async deletePost(postUri: string) {\n if (!this.session) {\n throw new Error('Not logged in')\n }\n const postUrip = new AtUri(postUri)\n return await this.api.app.bsky.feed.post.delete({\n repo: postUrip.hostname,\n rkey: postUrip.rkey,\n })\n }\n\n async like(uri: string, cid: string) {\n if (!this.session) {\n throw new Error('Not logged in')\n }\n return await this.api.app.bsky.feed.like.create(\n { repo: this.session.did },\n {\n subject: { uri, cid },\n createdAt: new Date().toISOString(),\n },\n )\n }\n\n async deleteLike(likeUri: string) {\n if (!this.session) {\n throw new Error('Not logged in')\n }\n const likeUrip = new AtUri(likeUri)\n return await this.api.app.bsky.feed.like.delete({\n repo: likeUrip.hostname,\n rkey: likeUrip.rkey,\n })\n }\n\n async repost(uri: string, cid: string) {\n if (!this.session) {\n throw new Error('Not logged in')\n }\n return await this.api.app.bsky.feed.repost.create(\n { repo: this.session.did },\n {\n subject: { uri, cid },\n createdAt: new Date().toISOString(),\n },\n )\n }\n\n async deleteRepost(repostUri: string) {\n if (!this.session) {\n throw new Error('Not logged in')\n }\n const repostUrip = new AtUri(repostUri)\n return await this.api.app.bsky.feed.repost.delete({\n repo: repostUrip.hostname,\n rkey: repostUrip.rkey,\n })\n }\n\n async follow(subjectDid: string) {\n if (!this.session) {\n throw new Error('Not logged in')\n }\n return await this.api.app.bsky.graph.follow.create(\n { repo: this.session.did },\n {\n subject: subjectDid,\n createdAt: new Date().toISOString(),\n },\n )\n }\n\n async deleteFollow(followUri: string) {\n if (!this.session) {\n throw new Error('Not logged in')\n }\n const followUrip = new AtUri(followUri)\n return await this.api.app.bsky.graph.follow.delete({\n repo: followUrip.hostname,\n rkey: followUrip.rkey,\n })\n }\n\n async upsertProfile(\n updateFn: (\n existing: AppBskyActorProfile.Record | undefined,\n ) => AppBskyActorProfile.Record | Promise<AppBskyActorProfile.Record>,\n ) {\n if (!this.session) {\n throw new Error('Not logged in')\n }\n\n let retriesRemaining = 5\n while (retriesRemaining >= 0) {\n // fetch existing\n const existing = await this.com.atproto.repo\n .getRecord({\n repo: this.session.did,\n collection: 'app.bsky.actor.profile',\n rkey: 'self',\n })\n .catch((_) => undefined)\n\n // run the update\n const updated = await updateFn(existing?.data.value)\n if (updated) {\n updated.$type = 'app.bsky.actor.profile'\n }\n\n // validate the record\n const validation = AppBskyActorProfile.validateRecord(updated)\n if (!validation.success) {\n throw validation.error\n }\n\n try {\n // attempt the put\n await this.com.atproto.repo.putRecord({\n repo: this.session.did,\n collection: 'app.bsky.actor.profile',\n rkey: 'self',\n record: updated,\n swapRecord: existing?.data.cid || null,\n })\n } catch (e: unknown) {\n if (\n retriesRemaining > 0 &&\n e instanceof ComAtprotoRepoPutRecord.InvalidSwapError\n ) {\n // try again\n retriesRemaining--\n continue\n } else {\n throw e\n }\n }\n break\n }\n }\n\n async mute(actor: string) {\n return this.api.app.bsky.graph.muteActor({ actor })\n }\n\n async unmute(actor: string) {\n return this.api.app.bsky.graph.unmuteActor({ actor })\n }\n\n async updateSeenNotifications(seenAt?: string) {\n seenAt = seenAt || new Date().toISOString()\n return this.api.app.bsky.notification.updateSeen({\n seenAt,\n })\n }\n}\n"],
|
|
5
|
+
"mappings": "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ACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEA,IAAM,iBAAiB;AAAA,EAErB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAA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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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",
|
|
6
|
+
"names": ["t", "r", "n", "e", "i", "o", "a", "u", "d", "src_exports", "defs_exports", "getBlocks_exports", "getRecord_exports", "getRepo_exports", "def", "decode", "code", "code", "digest", "bytes", "decode", "equals", "name", "encode", "length", "i", "j", "decode", "string", "name", "bytes", "decoder", "encode", "decode", "alphabet", "string", "version", "code", "bytes", "digest", "equals", "base", "decode", "cid", "length", "decoder", "encode", "decode", "from", "name", "code", "encode", "digest", "name", "from", "identity_exports", "identity", "encode", "identity", "identity_exports", "name", "encode", "decode", "decoder", "encoder", "string", "fromString", "string", "base", "toString", "array", "base", "fromString", "toString", "util", "object", "array", "objectUtil", "params", "errorUtil", "errorMap", "def", "version", "ctx", "result", "schema", "issues", "schemas", "elements", "processed", "base", "ZodFirstPartyTypeKind", "coerce", "handle", "did", "nsid", "name", "uri", "uri", "base", "def", "isHandle", "lexicons", "def", "string", "lexicons", "def", "validate", "lexicons", "def", "string", "lexicons", "def", "validate", "lexicons", "def", "lexicons", "def", "uri", "def", "ResponseType", "schema", "nsid", "params", "uri", "params", "uri", "def", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "src", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "isObj", "hasProp", "src", "toKnownErr", "isObj", "hasProp", "InvalidSwapError", "toKnownErr", "InvalidSwapError", "src", "toKnownErr", "InvalidSwapError", "toKnownErr", "InvalidSwapError", "src", "toKnownErr", "toKnownErr", "toKnownErr", "getRecord_exports", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "isObj", "hasProp", "InvalidSwapError", "toKnownErr", "InvalidSwapError", "src", "toKnownErr", "InvalidSwapError", "toKnownErr", "InvalidSwapError", "src", "toKnownErr", "toKnownErr", "toKnownErr", "InvalidHandleError", "toKnownErr", "InvalidHandleError", "src", "toKnownErr", "toKnownErr", "src", "toKnownErr", "isObj", "hasProp", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "isObj", "hasProp", "AccountTakedownError", "toKnownErr", "AccountTakedownError", "src", "toKnownErr", "toKnownErr", "src", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "isObj", "hasProp", "toKnownErr", "src", "toKnownErr", "toKnownErr", "toKnownErr", "AccountTakedownError", "isAppPassword", "toKnownErr", "validateAppPassword", "AccountTakedownError", "src", "toKnownErr", "isAppPassword", "isObj", "hasProp", "validateAppPassword", "AccountTakedownError", "toKnownErr", "AccountTakedownError", "src", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "ExpiredTokenError", "InvalidTokenError", "toKnownErr", "ExpiredTokenError", "src", "InvalidTokenError", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "getRecord_exports", "toKnownErr", "toKnownErr", "getRepo_exports", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "isObj", "hasProp", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "src", "toKnownErr", "toKnownErr", "toKnownErr", "isObj", "hasProp", "toKnownErr", "src", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "getBlocks_exports", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "isObj", "hasProp", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "isObj", "hasProp", "defs_exports", "isObj", "hasProp", "isObj", "hasProp", "defs_exports", "isObj", "hasProp", "defs_exports", "isObj", "hasProp", "isInfo", "validateInfo", "isObj", "hasProp", "isInfo", "validateInfo", "defs_exports", "isObj", "hasProp", "isRecord", "validateRecord", "isRecord", "isObj", "hasProp", "validateRecord", "isMain", "validateMain", "isMain", "isObj", "hasProp", "validateMain", "isMain", "isView", "validateMain", "validateView", "isMain", "isObj", "hasProp", "validateMain", "isView", "validateView", "isMain", "isView", "validateMain", "validateView", "isMain", "isObj", "hasProp", "validateMain", "isView", "validateView", "isMain", "isView", "validateMain", "validateView", "isMain", "isObj", "hasProp", "validateMain", "isView", "validateView", "defs_exports", "isViewerState", "validateViewerState", "isObj", "hasProp", "isViewerState", "validateViewerState", "isRecord", "validateRecord", "isRecord", "isObj", "hasProp", "validateRecord", "isRecord", "isReplyRef", "validateRecord", "validateReplyRef", "isRecord", "isObj", "hasProp", "validateRecord", "isReplyRef", "validateReplyRef", "isRecord", "validateRecord", "isRecord", "isObj", "hasProp", "validateRecord", "isRecord", "validateRecord", "isRecord", "isObj", "hasProp", "validateRecord", "defs_exports", "isObj", "hasProp", "isRecord", "validateRecord", "isRecord", "isObj", "hasProp", "validateRecord", "isRecord", "validateRecord", "isRecord", "isObj", "hasProp", "validateRecord", "isRecord", "validateRecord", "isRecord", "isObj", "hasProp", "validateRecord", "isMain", "validateMain", "isMain", "isObj", "hasProp", "validateMain", "toKnownErr", "params", "params", "uri", "did", "params", "uri", "cid"]
|
|
7
7
|
}
|