@atproto/api 0.0.8 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +44 -6
- package/dist/agent.d.ts +22 -0
- package/dist/client/index.d.ts +63 -61
- package/dist/client/lexicons.d.ts +237 -23
- package/dist/client/types/app/bsky/actor/getProfiles.d.ts +19 -0
- package/dist/client/types/app/bsky/actor/getSuggestions.d.ts +0 -7
- package/dist/client/types/app/bsky/actor/profile.d.ts +25 -0
- package/dist/client/types/com/atproto/admin/blob.d.ts +37 -0
- package/dist/client/types/com/atproto/admin/moderationAction.d.ts +13 -2
- package/dist/client/types/com/atproto/admin/record.d.ts +5 -2
- package/dist/client/types/com/atproto/admin/repo.d.ts +2 -2
- package/dist/client/types/com/atproto/admin/takeModerationAction.d.ts +5 -1
- package/dist/client/types/com/atproto/sync/getRepo.d.ts +2 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.js +623 -253
- package/dist/index.js.map +4 -4
- package/dist/types.d.ts +33 -0
- package/package.json +1 -1
- package/src/agent.ts +305 -0
- package/src/client/index.ts +75 -63
- package/src/client/lexicons.ts +281 -38
- package/src/client/types/app/bsky/actor/getProfiles.ts +35 -0
- package/src/client/types/app/bsky/actor/getSuggestions.ts +0 -18
- package/src/client/types/app/bsky/actor/profile.ts +45 -0
- package/src/client/types/com/atproto/admin/blob.ts +84 -0
- package/src/client/types/com/atproto/admin/moderationAction.ts +29 -10
- package/src/client/types/com/atproto/admin/record.ts +5 -2
- package/src/client/types/com/atproto/admin/repo.ts +2 -2
- package/src/client/types/com/atproto/admin/takeModerationAction.ts +8 -0
- package/src/client/types/com/atproto/sync/getRepo.ts +4 -2
- package/src/index.ts +3 -3
- package/src/types.ts +71 -0
- package/tests/_util.ts +26 -0
- package/tests/agent.test.ts +391 -0
- package/tests/errors.test.ts +4 -8
- package/tsconfig.build.tsbuildinfo +1 -1
- package/src/session.ts +0 -194
- package/tests/session.test.ts +0 -239
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", "../../../node_modules/zod/lib/index.mjs", "../../xrpc/src/types.ts", "../../nsid/src/index.ts", "../../lexicon/src/types.ts", "../../lexicon/src/validators/primitives.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", "../../xrpc/src/util.ts", "../../xrpc/src/client.ts", "../../xrpc/src/index.ts", "../src/client/lexicons.ts", "../src/client/types/com/atproto/account/create.ts", "../src/client/types/com/atproto/account/createInviteCode.ts", "../src/client/types/com/atproto/account/delete.ts", "../src/client/types/com/atproto/account/get.ts", "../src/client/types/com/atproto/account/requestDelete.ts", "../src/client/types/com/atproto/account/requestPasswordReset.ts", "../src/client/types/com/atproto/account/resetPassword.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/blob/upload.ts", "../src/client/types/com/atproto/handle/resolve.ts", "../src/client/types/com/atproto/repo/batchWrite.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/describe.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/report/create.ts", "../src/client/types/com/atproto/server/getAccountsConfig.ts", "../src/client/types/com/atproto/session/create.ts", "../src/client/types/com/atproto/session/delete.ts", "../src/client/types/com/atproto/session/get.ts", "../src/client/types/com/atproto/session/refresh.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/app/bsky/actor/getProfile.ts", "../src/client/types/app/bsky/actor/getSuggestions.ts", "../src/client/types/app/bsky/actor/search.ts", "../src/client/types/app/bsky/actor/searchTypeahead.ts", "../src/client/types/app/bsky/actor/updateProfile.ts", "../src/client/types/app/bsky/feed/getAuthorFeed.ts", "../src/client/types/app/bsky/feed/getPostThread.ts", "../src/client/types/app/bsky/feed/getRepostedBy.ts", "../src/client/types/app/bsky/feed/getTimeline.ts", "../src/client/types/app/bsky/feed/getVotes.ts", "../src/client/types/app/bsky/feed/setVote.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/mute.ts", "../src/client/types/app/bsky/graph/unmute.ts", "../src/client/types/app/bsky/notification/getCount.ts", "../src/client/types/app/bsky/notification/list.ts", "../src/client/types/app/bsky/notification/updateSeen.ts", "../src/client/types/com/atproto/admin/moderationAction.ts", "../src/client/types/com/atproto/admin/moderationReport.ts", "../src/client/types/com/atproto/admin/record.ts", "../src/client/types/com/atproto/admin/repo.ts", "../src/client/types/com/atproto/repo/recordRef.ts", "../src/client/types/com/atproto/repo/repoRef.ts", "../src/client/types/com/atproto/repo/strongRef.ts", "../src/client/types/com/atproto/report/reasonType.ts", "../src/client/types/com/atproto/report/subject.ts", "../src/client/types/app/bsky/actor/profile.ts", "../src/client/types/app/bsky/actor/ref.ts", "../src/client/types/app/bsky/embed/external.ts", "../src/client/types/app/bsky/embed/images.ts", "../src/client/types/app/bsky/feed/feedViewPost.ts", "../src/client/types/app/bsky/feed/post.ts", "../src/client/types/app/bsky/feed/repost.ts", "../src/client/types/app/bsky/feed/vote.ts", "../src/client/types/app/bsky/graph/assertCreator.ts", "../src/client/types/app/bsky/graph/assertMember.ts", "../src/client/types/app/bsky/graph/assertion.ts", "../src/client/types/app/bsky/graph/confirmation.ts", "../src/client/types/app/bsky/graph/follow.ts", "../src/client/types/app/bsky/system/actorUser.ts", "../src/client/types/app/bsky/system/declRef.ts", "../src/client/types/app/bsky/system/declaration.ts", "../src/client/index.ts", "../src/
|
|
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 * from './client'\nexport { default } from './client'\nexport * from './session'\nexport { default as sessionClient } from './session'\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 { 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", "/*\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\nconst SEGMENT_RE = /^[a-zA-Z]([a-zA-Z0-9-])*$/\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 const segments = nsid.split('.')\n if (segments.length <= 2) {\n throw new Error(`Invalid NSID: ${nsid}`)\n }\n for (let i = 0; i < segments.length; i++) {\n const segment = segments[i]\n if (SEGMENT_RE.test(segment)) {\n continue\n }\n if (i === segments.length - 1 && segment === '*') {\n continue\n }\n throw new Error(`Invalid NSID: invalid character in segment \"${segment}\"`)\n }\n this.segments = segments\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", "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 lexNumber = z.object({\n type: z.literal('number'),\n description: z.string().optional(),\n default: z.number().optional(),\n minimum: z.number().optional(),\n maximum: z.number().optional(),\n enum: z.number().array().optional(),\n const: z.number().optional(),\n})\nexport type LexNumber = z.infer<typeof lexNumber>\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 lexString = z.object({\n type: z.literal('string'),\n description: z.string().optional(),\n default: z.string().optional(),\n minLength: z.number().int().optional(),\n maxLength: 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 lexDatetime = z.object({\n type: z.literal('datetime'),\n description: z.string().optional(),\n})\nexport type LexDatetime = z.infer<typeof lexDatetime>\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.union([\n lexBoolean,\n lexNumber,\n lexInteger,\n lexString,\n lexDatetime,\n lexUnknown,\n])\nexport type LexPrimitive = z.infer<typeof lexPrimitive>\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.union([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\nexport const lexImage = z.object({\n type: z.literal('image'),\n description: z.string().optional(),\n accept: z.string().array().optional(),\n maxSize: z.number().optional(),\n maxWidth: z.number().int().optional(),\n maxHeight: z.number().int().optional(),\n})\nexport type LexImage = z.infer<typeof lexImage>\n\nexport const lexVideo = z.object({\n type: z.literal('video'),\n description: z.string().optional(),\n accept: z.string().array().optional(),\n maxSize: z.number().optional(),\n maxWidth: z.number().int().optional(),\n maxHeight: z.number().int().optional(),\n maxLength: z.number().int().optional(),\n})\nexport type LexVideo = z.infer<typeof lexVideo>\n\nexport const lexAudio = z.object({\n type: z.literal('audio'),\n description: z.string().optional(),\n accept: z.string().array().optional(),\n maxSize: z.number().optional(),\n maxLength: z.number().int().optional(),\n})\nexport type LexAudio = z.infer<typeof lexAudio>\n\nexport const lexBlobVariant = z.union([lexBlob, lexImage, lexVideo, lexAudio])\nexport type LexBlobVariant = z.infer<typeof lexBlobVariant>\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, lexBlobVariant, 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 properties: z\n .record(z.union([lexRefVariant, lexArray, lexBlobVariant, lexPrimitive]))\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 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\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.union([\n lexRecord,\n\n lexXrpcQuery,\n lexXrpcProcedure,\n\n lexBlob,\n lexImage,\n lexVideo,\n lexAudio,\n\n lexArray,\n lexToken,\n lexObject,\n\n lexBoolean,\n lexNumber,\n lexInteger,\n lexString,\n lexDatetime,\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 ) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Records, procedures, and queries 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 interface ValidationResult {\n success: boolean\n error?: ValidationError\n}\n\nexport class ValidationError extends Error {}\nexport class InvalidLexiconError extends Error {}\nexport class LexiconDefNotFoundError extends Error {}\n", "import { isValidISODateString } from 'iso-datestring-validator'\nimport { Lexicons } from '../lexicons'\nimport {\n LexUserType,\n LexBoolean,\n LexNumber,\n LexInteger,\n LexString,\n LexDatetime,\n ValidationResult,\n ValidationError,\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 'number':\n return number(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 'datetime':\n return datetime(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 }\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 }\n}\n\nexport function number(\n lexicons: Lexicons,\n path: string,\n def: LexUserType,\n value: unknown,\n): ValidationResult {\n def = def as LexNumber\n\n // type\n const type = typeof value\n if (type == 'undefined') {\n if (typeof def.default === 'number') {\n return { success: true }\n }\n return {\n success: false,\n error: new ValidationError(`${path} must be a number`),\n }\n } else if (type !== 'number') {\n return {\n success: false,\n error: new ValidationError(`${path} must be a number`),\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 }\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 // run number validation\n const numRes = number(lexicons, path, def, value)\n if (!numRes.success) {\n return numRes\n }\n\n // whole numbers only\n if (!Number.isInteger(value)) {\n return {\n success: false,\n error: new ValidationError(`${path} must be an integer`),\n }\n }\n\n return { success: true }\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 const type = typeof value\n if (type == 'undefined') {\n if (typeof def.default === 'string') {\n return { success: true }\n }\n return {\n success: false,\n error: new ValidationError(`${path} must be a string`),\n }\n } else if (type !== '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 ((value as string).length > 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 ((value as string).length < 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 return { success: true }\n}\n\nexport function datetime(\n lexicons: Lexicons,\n path: string,\n def: LexUserType,\n value: unknown,\n): ValidationResult {\n def = def as LexDatetime\n\n // type\n const type = typeof value\n if (type !== 'string') {\n return {\n success: false,\n error: new ValidationError(`${path} must be a string`),\n }\n }\n\n // valid iso-8601\n {\n try {\n if (typeof value !== 'string' || !isValidISODateString(value)) {\n throw new ValidationError(\n `${path} must be an iso8601 formatted datetime`,\n )\n }\n } catch {\n throw new ValidationError(`${path} must be an iso8601 formatted datetime`)\n }\n }\n\n return { success: true }\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 }\n}\n", "import { Lexicons } from '../lexicons'\nimport { LexUserType, ValidationResult, ValidationError } from '../types'\nimport { isObj, hasProp } from '../types'\n\nexport function blob(\n lexicons: Lexicons,\n path: string,\n def: LexUserType,\n value: unknown,\n): ValidationResult {\n if (!isObj(value)) {\n return {\n success: false,\n error: new ValidationError(`${path} should be an object`),\n }\n }\n if (!hasProp(value, 'cid') || typeof value.cid !== 'string') {\n return {\n success: false,\n error: new ValidationError(`${path}/cid should be a string`),\n }\n }\n if (!hasProp(value, 'mimeType') || typeof value.mimeType !== 'string') {\n return {\n success: false,\n error: new ValidationError(`${path}/mimeType should be a string`),\n }\n }\n return { success: true }\n}\n\nexport function image(\n lexicons: Lexicons,\n path: string,\n def: LexUserType,\n value: unknown,\n): ValidationResult {\n return blob(lexicons, path, def, value)\n}\n\nexport function video(\n lexicons: Lexicons,\n path: string,\n def: LexUserType,\n value: unknown,\n): ValidationResult {\n return blob(lexicons, path, def, value)\n}\n\nexport function audio(\n lexicons: Lexicons,\n path: string,\n def: LexUserType,\n value: unknown,\n): ValidationResult {\n return blob(lexicons, path, def, 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 'number':\n return Primitives.number(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 'datetime':\n return Primitives.datetime(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 case 'image':\n return Blob.image(lexicons, path, def, value)\n case 'video':\n return Blob.video(lexicons, path, def, value)\n case 'audio':\n return Blob.audio(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 }\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 // required\n if (Array.isArray(def.required)) {\n for (const key of def.required) {\n if (typeof value[key] === 'undefined') {\n return {\n success: false,\n error: new ValidationError(`${path} must have the property \"${key}\"`),\n }\n }\n }\n }\n\n // properties\n if (typeof def.properties === 'object') {\n for (const key in def.properties) {\n const propValue = value[key]\n if (typeof propValue === 'undefined') {\n continue // skip- if required, will have already failed\n }\n const propDef = def.properties[key]\n const propPath = `${path}/${key}`\n const res = validateOneOf(lexicons, propPath, propDef, propValue)\n if (!res.success) {\n return res\n }\n }\n }\n\n return { success: true }\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 }\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) {\n throw res.error\n }\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 value: unknown,\n): ValidationResult {\n // type\n if (!value || typeof value !== 'object') {\n // in this case, we just fall back to an object\n value = {}\n }\n\n // required\n if (Array.isArray(def.required)) {\n for (const key of def.required) {\n if (typeof (value as Record<string, unknown>)[key] === 'undefined') {\n return {\n success: false,\n error: new ValidationError(`${path} must have the property \"${key}\"`),\n }\n }\n }\n }\n\n // properties\n for (const key in def.properties) {\n if (typeof (value as Record<string, unknown>)[key] === 'undefined') {\n continue // skip- if required, will have already failed\n }\n const paramDef = def.properties[key]\n const val = (value as Record<string, unknown>)[key]\n const res =\n paramDef.type === 'array'\n ? array(lexicons, key, paramDef, val)\n : PrimitiveValidators.validate(lexicons, key, paramDef, val)\n if (!res.success) {\n return res\n }\n }\n\n return { success: true }\n}\n", "import { Lexicons } from './lexicons'\nimport { LexRecord, LexXrpcProcedure, LexXrpcQuery } 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}\n\nexport function assertValidXrpcParams(\n lexicons: Lexicons,\n def: LexXrpcProcedure | LexXrpcQuery,\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 }\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 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 assertValidOneOf(lexicons, 'Output', def.output.schema, value, true)\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} from './types'\nimport {\n assertValidRecord,\n assertValidXrpcParams,\n assertValidXrpcInput,\n assertValidXrpcOutput,\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 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, ['query', 'procedure'])\n assertValidXrpcParams(this, def as LexXrpcProcedure | LexXrpcQuery, value)\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 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 assertValidXrpcOutput(this, def as LexXrpcProcedure | LexXrpcQuery, value)\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 { LexXrpcProcedure, LexXrpcQuery } 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 | 'number'\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 === 'number') {\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(JSON.stringify(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 JSON.parse(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 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\nasync 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 ComAtprotoAccountCreate: {\n lexicon: 1,\n id: 'com.atproto.account.create',\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 },\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 },\n did: {\n type: 'string',\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 },\n },\n },\n ComAtprotoAccountCreateInviteCode: {\n lexicon: 1,\n id: 'com.atproto.account.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 },\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 ComAtprotoAccountDelete: {\n lexicon: 1,\n id: 'com.atproto.account.delete',\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 },\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 ComAtprotoAccountGet: {\n lexicon: 1,\n id: 'com.atproto.account.get',\n defs: {\n main: {\n type: 'query',\n description: 'Get information about an account.',\n },\n },\n },\n ComAtprotoAccountRequestDelete: {\n lexicon: 1,\n id: 'com.atproto.account.requestDelete',\n defs: {\n main: {\n type: 'procedure',\n description: 'Initiate a user account deletion via email.',\n },\n },\n },\n ComAtprotoAccountRequestPasswordReset: {\n lexicon: 1,\n id: 'com.atproto.account.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 ComAtprotoAccountResetPassword: {\n lexicon: 1,\n id: 'com.atproto.account.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 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: 'number',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.moderationAction#viewDetail',\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 before: {\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.moderationAction#view',\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: 'number',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.moderationReport#viewDetail',\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 before: {\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.moderationReport#view',\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 },\n cid: {\n type: 'string',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.record#viewDetail',\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 },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.repo#viewDetail',\n },\n },\n },\n },\n },\n ComAtprotoAdminModerationAction: {\n lexicon: 1,\n id: 'com.atproto.admin.moderationAction',\n defs: {\n view: {\n type: 'object',\n required: [\n 'id',\n 'action',\n 'subject',\n 'reason',\n 'createdBy',\n 'createdAt',\n 'resolvedReportIds',\n ],\n properties: {\n id: {\n type: 'integer',\n },\n action: {\n type: 'string',\n knownValues: [\n 'com.atproto.admin.moderationAction#takedown',\n 'com.atproto.admin.moderationAction#flag',\n 'com.atproto.admin.moderationAction#acknowledge',\n ],\n },\n subject: {\n type: 'union',\n refs: [\n 'lex:com.atproto.repo.repoRef',\n 'lex:com.atproto.repo.strongRef',\n ],\n },\n reason: {\n type: 'string',\n },\n createdBy: {\n type: 'string',\n },\n createdAt: {\n type: 'string',\n },\n reversal: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.moderationAction#reversal',\n },\n resolvedReportIds: {\n type: 'array',\n items: {\n type: 'integer',\n },\n },\n },\n },\n viewDetail: {\n type: 'object',\n required: [\n 'id',\n 'action',\n 'subject',\n 'reason',\n 'createdBy',\n 'createdAt',\n 'resolvedReports',\n ],\n properties: {\n id: {\n type: 'integer',\n },\n action: {\n type: 'string',\n knownValues: [\n 'com.atproto.admin.moderationAction#takedown',\n 'com.atproto.admin.moderationAction#flag',\n 'com.atproto.admin.moderationAction#acknowledge',\n ],\n },\n subject: {\n type: 'union',\n refs: [\n 'lex:com.atproto.admin.repo#view',\n 'lex:com.atproto.admin.record#view',\n ],\n },\n reason: {\n type: 'string',\n },\n createdBy: {\n type: 'string',\n },\n createdAt: {\n type: 'string',\n },\n reversal: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.moderationAction#reversal',\n },\n resolvedReports: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.moderationReport#view',\n },\n },\n },\n },\n reversal: {\n type: 'object',\n required: ['reason', 'createdBy', 'createdAt'],\n properties: {\n reason: {\n type: 'string',\n },\n createdBy: {\n type: 'string',\n },\n createdAt: {\n type: 'string',\n },\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 },\n },\n ComAtprotoAdminModerationReport: {\n lexicon: 1,\n id: 'com.atproto.admin.moderationReport',\n defs: {\n view: {\n type: 'object',\n required: [\n 'id',\n 'reasonType',\n 'subject',\n 'reportedByDid',\n 'createdAt',\n 'resolvedByActionIds',\n ],\n properties: {\n id: {\n type: 'integer',\n },\n reasonType: {\n type: 'ref',\n ref: 'lex:com.atproto.report.reasonType',\n },\n reason: {\n type: 'string',\n },\n subject: {\n type: 'union',\n refs: [\n 'lex:com.atproto.repo.repoRef',\n 'lex:com.atproto.repo.strongRef',\n ],\n },\n reportedByDid: {\n type: 'string',\n },\n createdAt: {\n type: 'datetime',\n },\n resolvedByActionIds: {\n type: 'array',\n items: {\n type: 'integer',\n },\n },\n },\n },\n viewDetail: {\n type: 'object',\n required: [\n 'id',\n 'reasonType',\n 'subject',\n 'reportedByDid',\n 'createdAt',\n 'resolvedByActions',\n ],\n properties: {\n id: {\n type: 'integer',\n },\n reasonType: {\n type: 'ref',\n ref: 'lex:com.atproto.report.reasonType',\n },\n reason: {\n type: 'string',\n },\n subject: {\n type: 'union',\n refs: [\n 'lex:com.atproto.admin.repo#view',\n 'lex:com.atproto.admin.record#view',\n ],\n },\n reportedByDid: {\n type: 'string',\n },\n createdAt: {\n type: 'datetime',\n },\n resolvedByActions: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.moderationAction#view',\n },\n },\n },\n },\n },\n },\n ComAtprotoAdminRecord: {\n lexicon: 1,\n id: 'com.atproto.admin.record',\n defs: {\n view: {\n type: 'object',\n required: ['uri', 'cid', 'value', 'indexedAt', 'moderation', 'repo'],\n properties: {\n uri: {\n type: 'string',\n },\n cid: {\n type: 'string',\n },\n value: {\n type: 'unknown',\n },\n indexedAt: {\n type: 'string',\n },\n moderation: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.record#moderation',\n },\n repo: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.repo#view',\n },\n },\n },\n viewDetail: {\n type: 'object',\n required: ['uri', 'cid', 'value', 'indexedAt', 'moderation', 'repo'],\n properties: {\n uri: {\n type: 'string',\n },\n cid: {\n type: 'string',\n },\n value: {\n type: 'unknown',\n },\n indexedAt: {\n type: 'string',\n },\n moderation: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.record#moderationDetail',\n },\n repo: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.repo#view',\n },\n },\n },\n moderation: {\n type: 'object',\n required: [],\n properties: {\n takedownId: {\n type: 'integer',\n },\n },\n },\n moderationDetail: {\n type: 'object',\n required: ['actions', 'reports'],\n properties: {\n actions: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.moderationAction#view',\n },\n },\n reports: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.moderationReport#view',\n },\n },\n takedownId: {\n type: 'integer',\n },\n },\n },\n },\n },\n ComAtprotoAdminRepo: {\n lexicon: 1,\n id: 'com.atproto.admin.repo',\n defs: {\n view: {\n type: 'object',\n required: [\n 'did',\n 'handle',\n 'relatedRecords',\n 'indexedAt',\n 'moderation',\n ],\n properties: {\n did: {\n type: 'string',\n },\n handle: {\n type: 'string',\n },\n account: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.repo#account',\n },\n relatedRecords: {\n type: 'array',\n items: {\n type: 'unknown',\n },\n },\n indexedAt: {\n type: 'string',\n },\n moderation: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.repo#moderation',\n },\n },\n },\n viewDetail: {\n type: 'object',\n required: [\n 'did',\n 'handle',\n 'relatedRecords',\n 'indexedAt',\n 'moderation',\n ],\n properties: {\n did: {\n type: 'string',\n },\n handle: {\n type: 'string',\n },\n account: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.repo#account',\n },\n relatedRecords: {\n type: 'array',\n items: {\n type: 'unknown',\n },\n },\n indexedAt: {\n type: 'string',\n },\n moderation: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.repo#moderationDetail',\n },\n },\n },\n account: {\n type: 'object',\n required: ['email'],\n properties: {\n email: {\n type: 'string',\n },\n },\n },\n moderation: {\n type: 'object',\n required: [],\n properties: {\n takedownId: {\n type: 'integer',\n },\n },\n },\n moderationDetail: {\n type: 'object',\n required: ['actions', 'reports'],\n properties: {\n actions: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.moderationAction#view',\n },\n },\n reports: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.moderationReport#view',\n },\n },\n takedownId: {\n type: 'integer',\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 },\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.moderationAction#view',\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 },\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.moderationAction#view',\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 limit: {\n type: 'integer',\n minimum: 1,\n maximum: 100,\n default: 50,\n },\n before: {\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.repo#view',\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.moderationAction#takedown',\n 'com.atproto.admin.moderationAction#flag',\n 'com.atproto.admin.moderationAction#acknowledge',\n ],\n },\n subject: {\n type: 'union',\n refs: [\n 'lex:com.atproto.repo.repoRef',\n 'lex:com.atproto.repo.recordRef',\n ],\n },\n reason: {\n type: 'string',\n },\n createdBy: {\n type: 'string',\n },\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.moderationAction#view',\n },\n },\n },\n },\n },\n ComAtprotoBlobUpload: {\n lexicon: 1,\n id: 'com.atproto.blob.upload',\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: ['cid'],\n properties: {\n cid: {\n type: 'string',\n },\n },\n },\n },\n },\n },\n },\n ComAtprotoHandleResolve: {\n lexicon: 1,\n id: 'com.atproto.handle.resolve',\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 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 },\n },\n },\n },\n },\n },\n },\n ComAtprotoRepoBatchWrite: {\n lexicon: 1,\n id: 'com.atproto.repo.batchWrite',\n defs: {\n main: {\n type: 'procedure',\n description: 'Apply a batch transaction of creates, puts, and deletes.',\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['did', 'writes'],\n properties: {\n did: {\n type: 'string',\n description: 'The 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.batchWrite#create',\n 'lex:com.atproto.repo.batchWrite#update',\n 'lex:com.atproto.repo.batchWrite#delete',\n ],\n closed: true,\n },\n },\n },\n },\n },\n },\n create: {\n type: 'object',\n required: ['action', 'collection', 'value'],\n properties: {\n action: {\n type: 'string',\n const: 'create',\n },\n collection: {\n type: 'string',\n },\n rkey: {\n type: 'string',\n },\n value: {\n type: 'unknown',\n },\n },\n },\n update: {\n type: 'object',\n required: ['action', 'collection', 'rkey', 'value'],\n properties: {\n action: {\n type: 'string',\n const: 'update',\n },\n collection: {\n type: 'string',\n },\n rkey: {\n type: 'string',\n },\n value: {\n type: 'unknown',\n },\n },\n },\n delete: {\n type: 'object',\n required: ['action', 'collection', 'rkey'],\n properties: {\n action: {\n type: 'string',\n const: 'delete',\n },\n collection: {\n type: 'string',\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: ['did', 'collection', 'record'],\n properties: {\n did: {\n type: 'string',\n description: 'The DID of the repo.',\n },\n collection: {\n type: 'string',\n description: 'The NSID of the record collection.',\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 },\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 },\n cid: {\n type: 'string',\n },\n },\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.',\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['did', 'collection', 'rkey'],\n properties: {\n did: {\n type: 'string',\n description: 'The DID of the repo.',\n },\n collection: {\n type: 'string',\n description: 'The NSID of the record collection.',\n },\n rkey: {\n type: 'string',\n description: 'The key of the record.',\n },\n },\n },\n },\n },\n },\n },\n ComAtprotoRepoDescribe: {\n lexicon: 1,\n id: 'com.atproto.repo.describe',\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: ['user'],\n properties: {\n user: {\n type: 'string',\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 },\n did: {\n type: 'string',\n },\n didDoc: {\n type: 'unknown',\n },\n collections: {\n type: 'array',\n items: {\n type: 'string',\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: 'Fetch a record.',\n parameters: {\n type: 'params',\n required: ['user', 'collection', 'rkey'],\n properties: {\n user: {\n type: 'string',\n description: 'The handle or DID of the repo.',\n },\n collection: {\n type: 'string',\n description: 'The NSID of the collection.',\n },\n rkey: {\n type: 'string',\n description: 'The key of the record.',\n },\n cid: {\n type: 'string',\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 },\n cid: {\n type: 'string',\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: ['user', 'collection'],\n properties: {\n user: {\n type: 'string',\n description: 'The handle or DID of the repo.',\n },\n collection: {\n type: 'string',\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 before: {\n type: 'string',\n description: 'A TID to filter the range of records returned.',\n },\n after: {\n type: 'string',\n description: 'A TID to filter the range of records returned.',\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 },\n cid: {\n type: 'string',\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.',\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['did', 'collection', 'rkey', 'record'],\n properties: {\n did: {\n type: 'string',\n description: 'The DID of the repo.',\n },\n collection: {\n type: 'string',\n description: 'The NSID of the record type.',\n },\n rkey: {\n type: 'string',\n description: 'The TID 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 },\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 },\n cid: {\n type: 'string',\n },\n },\n },\n },\n },\n },\n },\n ComAtprotoRepoRecordRef: {\n lexicon: 1,\n id: 'com.atproto.repo.recordRef',\n description: 'A URI with optional content-hash fingerprint.',\n defs: {\n main: {\n type: 'object',\n required: ['uri'],\n properties: {\n uri: {\n type: 'string',\n },\n cid: {\n type: 'string',\n },\n },\n },\n },\n },\n ComAtprotoRepoRepoRef: {\n lexicon: 1,\n id: 'com.atproto.repo.repoRef',\n description: 'A did identifying a repository.',\n defs: {\n main: {\n type: 'object',\n required: ['did'],\n properties: {\n did: {\n type: 'string',\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 },\n cid: {\n type: 'string',\n },\n },\n },\n },\n },\n ComAtprotoReportCreate: {\n lexicon: 1,\n id: 'com.atproto.report.create',\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.report.reasonType',\n },\n reason: {\n type: 'string',\n },\n subject: {\n type: 'union',\n refs: [\n 'lex:com.atproto.repo.repoRef',\n 'lex:com.atproto.repo.recordRef',\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 'reportedByDid',\n 'createdAt',\n ],\n properties: {\n id: {\n type: 'integer',\n },\n reasonType: {\n type: 'ref',\n ref: 'lex:com.atproto.report.reasonType',\n },\n reason: {\n type: 'string',\n },\n subject: {\n type: 'union',\n refs: [\n 'lex:com.atproto.repo.repoRef',\n 'lex:com.atproto.repo.strongRef',\n ],\n },\n reportedByDid: {\n type: 'string',\n },\n createdAt: {\n type: 'datetime',\n },\n },\n },\n },\n },\n },\n },\n ComAtprotoReportReasonType: {\n lexicon: 1,\n id: 'com.atproto.report.reasonType',\n defs: {\n main: {\n type: 'string',\n knownValues: [\n 'com.atproto.report.reason#spam',\n 'com.atproto.report.reason#other',\n ],\n },\n spam: {\n type: 'token',\n description: 'Moderation report reason: Spam.',\n },\n other: {\n type: 'token',\n description: 'Moderation report reason: Other.',\n },\n },\n },\n ComAtprotoReportSubject: {\n lexicon: 1,\n id: 'com.atproto.report.subject',\n defs: {\n repo: {\n type: 'object',\n required: ['did'],\n properties: {\n did: {\n type: 'string',\n description: 'The DID of the repo.',\n },\n },\n },\n record: {\n type: 'object',\n required: ['did', 'collection', 'rkey'],\n properties: {\n did: {\n type: 'string',\n description: 'The DID of the repo.',\n },\n collection: {\n type: 'string',\n description: 'The NSID of the collection.',\n },\n rkey: {\n type: 'string',\n description: 'The key of the record.',\n },\n cid: {\n type: 'string',\n description:\n 'The CID of the version of the record. If not specified, defaults to the most recent version.',\n },\n },\n },\n recordRef: {\n type: 'object',\n required: ['uri', 'cid'],\n properties: {\n uri: {\n type: 'string',\n },\n cid: {\n type: 'string',\n },\n },\n },\n },\n },\n ComAtprotoServerGetAccountsConfig: {\n lexicon: 1,\n id: 'com.atproto.server.getAccountsConfig',\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.getAccountsConfig#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 ComAtprotoSessionCreate: {\n lexicon: 1,\n id: 'com.atproto.session.create',\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: ['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 },\n did: {\n type: 'string',\n },\n },\n },\n },\n errors: [\n {\n name: 'AccountTakedown',\n },\n ],\n },\n },\n },\n ComAtprotoSessionDelete: {\n lexicon: 1,\n id: 'com.atproto.session.delete',\n defs: {\n main: {\n type: 'procedure',\n description: 'Delete the current session.',\n },\n },\n },\n ComAtprotoSessionGet: {\n lexicon: 1,\n id: 'com.atproto.session.get',\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 },\n did: {\n type: 'string',\n },\n },\n },\n },\n },\n },\n },\n ComAtprotoSessionRefresh: {\n lexicon: 1,\n id: 'com.atproto.session.refresh',\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 },\n did: {\n type: 'string',\n },\n },\n },\n },\n errors: [\n {\n name: 'AccountTakedown',\n },\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 description: 'The DID of the repo.',\n },\n commit: {\n type: 'string',\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 description: 'The DID of the repo.',\n },\n latest: {\n type: 'string',\n description: 'The most recent commit',\n },\n earliest: {\n type: 'string',\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 },\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 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 },\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 description: 'The DID of the repo.',\n },\n collection: {\n type: 'string',\n },\n rkey: {\n type: 'string',\n },\n commit: {\n type: 'string',\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 description: 'The DID of the repo.',\n },\n from: {\n type: 'string',\n description: 'A past commit CID.',\n },\n },\n },\n output: {\n encoding: 'application/vnd.ipld.car',\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 },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: [\n 'did',\n 'declaration',\n 'handle',\n 'creator',\n 'followersCount',\n 'followsCount',\n 'postsCount',\n ],\n properties: {\n did: {\n type: 'string',\n },\n declaration: {\n type: 'ref',\n ref: 'lex:app.bsky.system.declRef',\n },\n handle: {\n type: 'string',\n },\n creator: {\n type: 'string',\n },\n displayName: {\n type: 'string',\n maxLength: 64,\n },\n description: {\n type: 'string',\n maxLength: 256,\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 myState: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.getProfile#myState',\n },\n },\n },\n },\n },\n myState: {\n type: 'object',\n properties: {\n follow: {\n type: 'string',\n },\n muted: {\n type: 'boolean',\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.getSuggestions#actor',\n },\n },\n },\n },\n },\n },\n actor: {\n type: 'object',\n required: ['did', 'declaration', 'handle'],\n properties: {\n did: {\n type: 'string',\n },\n declaration: {\n type: 'ref',\n ref: 'lex:app.bsky.system.declRef',\n },\n handle: {\n type: 'string',\n },\n displayName: {\n type: 'string',\n maxLength: 64,\n },\n description: {\n type: 'string',\n },\n avatar: {\n type: 'string',\n },\n indexedAt: {\n type: 'datetime',\n },\n myState: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.getSuggestions#myState',\n },\n },\n },\n myState: {\n type: 'object',\n properties: {\n follow: {\n type: 'string',\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 required: ['displayName'],\n properties: {\n displayName: {\n type: 'string',\n maxLength: 64,\n },\n description: {\n type: 'string',\n maxLength: 256,\n },\n avatar: {\n type: 'image',\n accept: ['image/png', 'image/jpeg'],\n maxWidth: 2000,\n maxHeight: 2000,\n maxSize: 1000000,\n },\n banner: {\n type: 'image',\n accept: ['image/png', 'image/jpeg'],\n maxWidth: 6000,\n maxHeight: 2000,\n maxSize: 1000000,\n },\n },\n },\n },\n },\n },\n AppBskyActorRef: {\n lexicon: 1,\n id: 'app.bsky.actor.ref',\n description: 'A reference to an actor in the network.',\n defs: {\n main: {\n type: 'object',\n required: ['did', 'declarationCid'],\n properties: {\n did: {\n type: 'string',\n },\n declarationCid: {\n type: 'string',\n },\n },\n },\n withInfo: {\n type: 'object',\n required: ['did', 'declaration', 'handle'],\n properties: {\n did: {\n type: 'string',\n },\n declaration: {\n type: 'ref',\n ref: 'lex:app.bsky.system.declRef',\n },\n handle: {\n type: 'string',\n },\n displayName: {\n type: 'string',\n maxLength: 64,\n },\n avatar: {\n type: 'string',\n },\n viewer: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.ref#viewerState',\n },\n },\n },\n viewerState: {\n type: 'object',\n properties: {\n muted: {\n type: 'boolean',\n },\n },\n },\n },\n },\n AppBskyActorSearch: {\n lexicon: 1,\n id: 'app.bsky.actor.search',\n defs: {\n main: {\n type: 'query',\n description: 'Find users 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 before: {\n type: 'string',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['users'],\n properties: {\n cursor: {\n type: 'string',\n },\n users: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.search#user',\n },\n },\n },\n },\n },\n },\n user: {\n type: 'object',\n required: ['did', 'declaration', 'handle'],\n properties: {\n did: {\n type: 'string',\n },\n declaration: {\n type: 'ref',\n ref: 'lex:app.bsky.system.declRef',\n },\n handle: {\n type: 'string',\n },\n displayName: {\n type: 'string',\n maxLength: 64,\n },\n avatar: {\n type: 'string',\n },\n description: {\n type: 'string',\n },\n indexedAt: {\n type: 'datetime',\n },\n },\n },\n },\n },\n AppBskyActorSearchTypeahead: {\n lexicon: 1,\n id: 'app.bsky.actor.searchTypeahead',\n defs: {\n main: {\n type: 'query',\n description: 'Find user 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: ['users'],\n properties: {\n users: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.searchTypeahead#user',\n },\n },\n },\n },\n },\n },\n user: {\n type: 'object',\n required: ['did', 'declaration', 'handle'],\n properties: {\n did: {\n type: 'string',\n },\n declaration: {\n type: 'ref',\n ref: 'lex:app.bsky.system.declRef',\n },\n handle: {\n type: 'string',\n },\n displayName: {\n type: 'string',\n maxLength: 64,\n },\n avatar: {\n type: 'string',\n },\n },\n },\n },\n },\n AppBskyActorUpdateProfile: {\n lexicon: 1,\n id: 'app.bsky.actor.updateProfile',\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 properties: {\n displayName: {\n type: 'string',\n maxLength: 64,\n },\n description: {\n type: 'string',\n maxLength: 256,\n },\n avatar: {\n type: 'image',\n accept: ['image/png', 'image/jpeg'],\n maxWidth: 500,\n maxHeight: 500,\n maxSize: 100000,\n },\n banner: {\n type: 'image',\n accept: ['image/png', 'image/jpeg'],\n maxWidth: 1500,\n maxHeight: 500,\n maxSize: 500000,\n },\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['uri', 'cid', 'record'],\n properties: {\n uri: {\n type: 'string',\n },\n cid: {\n type: 'string',\n },\n record: {\n type: 'unknown',\n },\n },\n },\n },\n errors: [\n {\n name: 'InvalidBlob',\n },\n {\n name: 'BlobTooLarge',\n },\n {\n name: 'InvalidMimeType',\n },\n {\n name: 'InvalidImageDimensions',\n },\n ],\n },\n },\n },\n AppBskyEmbedExternal: {\n lexicon: 1,\n id: 'app.bsky.embed.external',\n description:\n 'An 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 },\n title: {\n type: 'string',\n },\n description: {\n type: 'string',\n },\n thumb: {\n type: 'image',\n accept: ['image/*'],\n maxWidth: 2000,\n maxHeight: 2000,\n maxSize: 1000000,\n },\n },\n },\n presented: {\n type: 'object',\n required: ['external'],\n properties: {\n external: {\n type: 'ref',\n ref: 'lex:app.bsky.embed.external#presentedExternal',\n },\n },\n },\n presentedExternal: {\n type: 'object',\n required: ['uri', 'title', 'description'],\n properties: {\n uri: {\n type: 'string',\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: 'image',\n accept: ['image/*'],\n maxWidth: 2000,\n maxHeight: 2000,\n maxSize: 1000000,\n },\n alt: {\n type: 'string',\n },\n },\n },\n presented: {\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#presentedImage',\n },\n maxLength: 4,\n },\n },\n },\n presentedImage: {\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 AppBskyFeedFeedViewPost: {\n lexicon: 1,\n id: 'app.bsky.feed.feedViewPost',\n defs: {\n main: {\n type: 'object',\n required: ['post'],\n properties: {\n post: {\n type: 'ref',\n ref: 'lex:app.bsky.feed.post#view',\n },\n reply: {\n type: 'ref',\n ref: 'lex:app.bsky.feed.feedViewPost#replyRef',\n },\n reason: {\n type: 'union',\n refs: ['lex:app.bsky.feed.feedViewPost#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.post#view',\n },\n parent: {\n type: 'ref',\n ref: 'lex:app.bsky.feed.post#view',\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.ref#withInfo',\n },\n indexedAt: {\n type: 'datetime',\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 a user's feed.\",\n parameters: {\n type: 'params',\n required: ['author'],\n properties: {\n author: {\n type: 'string',\n },\n limit: {\n type: 'integer',\n minimum: 1,\n maximum: 100,\n default: 50,\n },\n before: {\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.feedViewPost',\n },\n },\n },\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 },\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.getPostThread#threadViewPost',\n 'lex:app.bsky.feed.getPostThread#notFoundPost',\n ],\n },\n },\n },\n },\n errors: [\n {\n name: 'NotFound',\n },\n ],\n },\n threadViewPost: {\n type: 'object',\n required: ['post'],\n properties: {\n post: {\n type: 'ref',\n ref: 'lex:app.bsky.feed.post#view',\n },\n parent: {\n type: 'union',\n refs: [\n 'lex:app.bsky.feed.getPostThread#threadViewPost',\n 'lex:app.bsky.feed.getPostThread#notFoundPost',\n ],\n },\n replies: {\n type: 'array',\n items: {\n type: 'union',\n refs: [\n 'lex:app.bsky.feed.getPostThread#threadViewPost',\n 'lex:app.bsky.feed.getPostThread#notFoundPost',\n ],\n },\n },\n },\n },\n notFoundPost: {\n type: 'object',\n required: ['uri', 'notFound'],\n properties: {\n uri: {\n type: 'string',\n },\n notFound: {\n type: 'boolean',\n const: true,\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 },\n cid: {\n type: 'string',\n },\n limit: {\n type: 'integer',\n minimum: 1,\n maximum: 100,\n default: 50,\n },\n before: {\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 },\n cid: {\n type: 'string',\n },\n cursor: {\n type: 'string',\n },\n repostedBy: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.feed.getRepostedBy#repostedBy',\n },\n },\n },\n },\n },\n },\n repostedBy: {\n type: 'object',\n required: ['did', 'declaration', 'handle', 'indexedAt'],\n properties: {\n did: {\n type: 'string',\n },\n declaration: {\n type: 'ref',\n ref: 'lex:app.bsky.system.declRef',\n },\n handle: {\n type: 'string',\n },\n displayName: {\n type: 'string',\n maxLength: 64,\n },\n avatar: {\n type: 'string',\n },\n createdAt: {\n type: 'datetime',\n },\n indexedAt: {\n type: 'datetime',\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 before: {\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.feedViewPost',\n },\n },\n },\n },\n },\n },\n },\n },\n AppBskyFeedGetVotes: {\n lexicon: 1,\n id: 'app.bsky.feed.getVotes',\n defs: {\n main: {\n type: 'query',\n parameters: {\n type: 'params',\n required: ['uri'],\n properties: {\n uri: {\n type: 'string',\n },\n cid: {\n type: 'string',\n },\n direction: {\n type: 'string',\n enum: ['up', 'down'],\n },\n limit: {\n type: 'integer',\n minimum: 1,\n maximum: 100,\n default: 50,\n },\n before: {\n type: 'string',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['uri', 'votes'],\n properties: {\n uri: {\n type: 'string',\n },\n cid: {\n type: 'string',\n },\n cursor: {\n type: 'string',\n },\n votes: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.feed.getVotes#vote',\n },\n },\n },\n },\n },\n },\n vote: {\n type: 'object',\n required: ['direction', 'indexedAt', 'createdAt', 'actor'],\n properties: {\n direction: {\n type: 'string',\n enum: ['up', 'down'],\n },\n indexedAt: {\n type: 'datetime',\n },\n createdAt: {\n type: 'datetime',\n },\n actor: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.ref#withInfo',\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: 256,\n },\n entities: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.feed.post#entity',\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 ],\n },\n createdAt: {\n type: '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 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:\n \"Expected values are 'mention', 'hashtag', and 'link'.\",\n },\n value: {\n type: 'string',\n },\n },\n },\n textSlice: {\n type: 'object',\n description: 'A text segment. Start is inclusive, end is exclusive.',\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 view: {\n type: 'object',\n required: [\n 'uri',\n 'cid',\n 'author',\n 'record',\n 'replyCount',\n 'repostCount',\n 'upvoteCount',\n 'downvoteCount',\n 'indexedAt',\n 'viewer',\n ],\n properties: {\n uri: {\n type: 'string',\n },\n cid: {\n type: 'string',\n },\n author: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.ref#withInfo',\n },\n record: {\n type: 'unknown',\n },\n embed: {\n type: 'union',\n refs: [\n 'lex:app.bsky.embed.images#presented',\n 'lex:app.bsky.embed.external#presented',\n ],\n },\n replyCount: {\n type: 'integer',\n },\n repostCount: {\n type: 'integer',\n },\n upvoteCount: {\n type: 'integer',\n },\n downvoteCount: {\n type: 'integer',\n },\n indexedAt: {\n type: 'datetime',\n },\n viewer: {\n type: 'ref',\n ref: 'lex:app.bsky.feed.post#viewerState',\n },\n },\n },\n viewerState: {\n type: 'object',\n properties: {\n repost: {\n type: 'string',\n },\n upvote: {\n type: 'string',\n },\n downvote: {\n type: 'string',\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: 'datetime',\n },\n },\n },\n },\n },\n },\n AppBskyFeedSetVote: {\n lexicon: 1,\n id: 'app.bsky.feed.setVote',\n defs: {\n main: {\n type: 'procedure',\n description: \"Upvote, downvote, or clear the user's vote for a post.\",\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['subject', 'direction'],\n properties: {\n subject: {\n type: 'ref',\n ref: 'lex:com.atproto.repo.strongRef',\n },\n direction: {\n type: 'string',\n enum: ['up', 'down', 'none'],\n },\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n properties: {\n upvote: {\n type: 'string',\n },\n downvote: {\n type: 'string',\n },\n },\n },\n },\n },\n },\n },\n AppBskyFeedVote: {\n lexicon: 1,\n id: 'app.bsky.feed.vote',\n defs: {\n main: {\n type: 'record',\n key: 'tid',\n record: {\n type: 'object',\n required: ['subject', 'direction', 'createdAt'],\n properties: {\n subject: {\n type: 'ref',\n ref: 'lex:com.atproto.repo.strongRef',\n },\n direction: {\n type: 'string',\n enum: ['up', 'down'],\n },\n createdAt: {\n type: 'datetime',\n },\n },\n },\n },\n },\n },\n AppBskyGraphAssertCreator: {\n lexicon: 1,\n id: 'app.bsky.graph.assertCreator',\n defs: {\n main: {\n type: 'token',\n description:\n \"Assertion type: Creator. Defined for app.bsky.graph.assertions's assertion.\",\n },\n },\n },\n AppBskyGraphAssertMember: {\n lexicon: 1,\n id: 'app.bsky.graph.assertMember',\n defs: {\n main: {\n type: 'token',\n description:\n \"Assertion type: Member. Defined for app.bsky.graph.assertions's assertion.\",\n },\n },\n },\n AppBskyGraphAssertion: {\n lexicon: 1,\n id: 'app.bsky.graph.assertion',\n defs: {\n main: {\n type: 'record',\n key: 'tid',\n record: {\n type: 'object',\n required: ['assertion', 'subject', 'createdAt'],\n properties: {\n assertion: {\n type: 'string',\n },\n subject: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.ref',\n },\n createdAt: {\n type: 'datetime',\n },\n },\n },\n },\n },\n },\n AppBskyGraphConfirmation: {\n lexicon: 1,\n id: 'app.bsky.graph.confirmation',\n defs: {\n main: {\n type: 'record',\n key: 'tid',\n record: {\n type: 'object',\n required: ['originator', 'assertion', 'createdAt'],\n properties: {\n originator: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.ref',\n },\n assertion: {\n type: 'ref',\n ref: 'lex:com.atproto.repo.strongRef',\n },\n createdAt: {\n type: '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: 'ref',\n ref: 'lex:app.bsky.actor.ref',\n },\n createdAt: {\n type: 'datetime',\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 a user?',\n parameters: {\n type: 'params',\n required: ['user'],\n properties: {\n user: {\n type: 'string',\n },\n limit: {\n type: 'integer',\n minimum: 1,\n maximum: 100,\n default: 50,\n },\n before: {\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.ref#withInfo',\n },\n cursor: {\n type: 'string',\n },\n followers: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.graph.getFollowers#follower',\n },\n },\n },\n },\n },\n },\n follower: {\n type: 'object',\n required: ['did', 'declaration', 'handle', 'indexedAt'],\n properties: {\n did: {\n type: 'string',\n },\n declaration: {\n type: 'ref',\n ref: 'lex:app.bsky.system.declRef',\n },\n handle: {\n type: 'string',\n },\n displayName: {\n type: 'string',\n maxLength: 64,\n },\n avatar: {\n type: 'string',\n },\n createdAt: {\n type: 'datetime',\n },\n indexedAt: {\n type: 'datetime',\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 a user following?',\n parameters: {\n type: 'params',\n required: ['user'],\n properties: {\n user: {\n type: 'string',\n },\n limit: {\n type: 'integer',\n minimum: 1,\n maximum: 100,\n default: 50,\n },\n before: {\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.ref#withInfo',\n },\n cursor: {\n type: 'string',\n },\n follows: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.graph.getFollows#follow',\n },\n },\n },\n },\n },\n },\n follow: {\n type: 'object',\n required: ['did', 'declaration', 'handle', 'indexedAt'],\n properties: {\n did: {\n type: 'string',\n },\n declaration: {\n type: 'ref',\n ref: 'lex:app.bsky.system.declRef',\n },\n handle: {\n type: 'string',\n },\n displayName: {\n type: 'string',\n maxLength: 64,\n },\n avatar: {\n type: 'string',\n },\n createdAt: {\n type: 'datetime',\n },\n indexedAt: {\n type: 'datetime',\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 before: {\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.graph.getMutes#mute',\n },\n },\n },\n },\n },\n },\n mute: {\n type: 'object',\n required: ['did', 'declaration', 'handle', 'createdAt'],\n properties: {\n did: {\n type: 'string',\n },\n declaration: {\n type: 'ref',\n ref: 'lex:app.bsky.system.declRef',\n },\n handle: {\n type: 'string',\n },\n displayName: {\n type: 'string',\n maxLength: 64,\n },\n createdAt: {\n type: 'datetime',\n },\n },\n },\n },\n },\n AppBskyGraphMute: {\n lexicon: 1,\n id: 'app.bsky.graph.mute',\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: ['user'],\n properties: {\n user: {\n type: 'string',\n },\n },\n },\n },\n },\n },\n },\n AppBskyGraphUnmute: {\n lexicon: 1,\n id: 'app.bsky.graph.unmute',\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: ['user'],\n properties: {\n user: {\n type: 'string',\n },\n },\n },\n },\n },\n },\n },\n AppBskyNotificationGetCount: {\n lexicon: 1,\n id: 'app.bsky.notification.getCount',\n defs: {\n main: {\n type: 'query',\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 AppBskyNotificationList: {\n lexicon: 1,\n id: 'app.bsky.notification.list',\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 before: {\n type: 'string',\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.list#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 },\n cid: {\n type: 'string',\n },\n author: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.ref#withInfo',\n },\n reason: {\n type: 'string',\n description:\n \"Expected values are 'vote', 'repost', 'follow', 'invite', 'mention' and 'reply'.\",\n knownValues: [\n 'vote',\n 'repost',\n 'follow',\n 'invite',\n 'mention',\n 'reply',\n ],\n },\n reasonSubject: {\n type: 'string',\n },\n record: {\n type: 'unknown',\n },\n isRead: {\n type: 'boolean',\n },\n indexedAt: {\n type: 'datetime',\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: 'datetime',\n },\n },\n },\n },\n },\n },\n },\n AppBskySystemActorUser: {\n lexicon: 1,\n id: 'app.bsky.system.actorUser',\n defs: {\n main: {\n type: 'token',\n description:\n \"Actor type: User. Defined for app.bsky.system.declaration's actorType.\",\n },\n },\n },\n AppBskySystemDeclRef: {\n lexicon: 1,\n id: 'app.bsky.system.declRef',\n defs: {\n main: {\n description: 'A reference to a app.bsky.system.declaration record.',\n type: 'object',\n required: ['cid', 'actorType'],\n properties: {\n cid: {\n type: 'string',\n },\n actorType: {\n type: 'string',\n knownValues: ['app.bsky.system.actorUser'],\n },\n },\n },\n },\n },\n AppBskySystemDeclaration: {\n lexicon: 1,\n id: 'app.bsky.system.declaration',\n defs: {\n main: {\n description:\n 'Context for an account that is considered intrinsic to it and alters the fundamental understanding of an account of changed. A declaration should be treated as immutable.',\n type: 'record',\n key: 'literal:self',\n record: {\n type: 'object',\n required: ['actorType'],\n properties: {\n actorType: {\n type: 'string',\n knownValues: ['app.bsky.system.actorUser'],\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 ComAtprotoAccountCreate: 'com.atproto.account.create',\n ComAtprotoAccountCreateInviteCode: 'com.atproto.account.createInviteCode',\n ComAtprotoAccountDelete: 'com.atproto.account.delete',\n ComAtprotoAccountGet: 'com.atproto.account.get',\n ComAtprotoAccountRequestDelete: 'com.atproto.account.requestDelete',\n ComAtprotoAccountRequestPasswordReset:\n 'com.atproto.account.requestPasswordReset',\n ComAtprotoAccountResetPassword: 'com.atproto.account.resetPassword',\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 ComAtprotoAdminModerationAction: 'com.atproto.admin.moderationAction',\n ComAtprotoAdminModerationReport: 'com.atproto.admin.moderationReport',\n ComAtprotoAdminRecord: 'com.atproto.admin.record',\n ComAtprotoAdminRepo: 'com.atproto.admin.repo',\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 ComAtprotoBlobUpload: 'com.atproto.blob.upload',\n ComAtprotoHandleResolve: 'com.atproto.handle.resolve',\n ComAtprotoRepoBatchWrite: 'com.atproto.repo.batchWrite',\n ComAtprotoRepoCreateRecord: 'com.atproto.repo.createRecord',\n ComAtprotoRepoDeleteRecord: 'com.atproto.repo.deleteRecord',\n ComAtprotoRepoDescribe: 'com.atproto.repo.describe',\n ComAtprotoRepoGetRecord: 'com.atproto.repo.getRecord',\n ComAtprotoRepoListRecords: 'com.atproto.repo.listRecords',\n ComAtprotoRepoPutRecord: 'com.atproto.repo.putRecord',\n ComAtprotoRepoRecordRef: 'com.atproto.repo.recordRef',\n ComAtprotoRepoRepoRef: 'com.atproto.repo.repoRef',\n ComAtprotoRepoStrongRef: 'com.atproto.repo.strongRef',\n ComAtprotoReportCreate: 'com.atproto.report.create',\n ComAtprotoReportReasonType: 'com.atproto.report.reasonType',\n ComAtprotoReportSubject: 'com.atproto.report.subject',\n ComAtprotoServerGetAccountsConfig: 'com.atproto.server.getAccountsConfig',\n ComAtprotoSessionCreate: 'com.atproto.session.create',\n ComAtprotoSessionDelete: 'com.atproto.session.delete',\n ComAtprotoSessionGet: 'com.atproto.session.get',\n ComAtprotoSessionRefresh: 'com.atproto.session.refresh',\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 AppBskyActorGetProfile: 'app.bsky.actor.getProfile',\n AppBskyActorGetSuggestions: 'app.bsky.actor.getSuggestions',\n AppBskyActorProfile: 'app.bsky.actor.profile',\n AppBskyActorRef: 'app.bsky.actor.ref',\n AppBskyActorSearch: 'app.bsky.actor.search',\n AppBskyActorSearchTypeahead: 'app.bsky.actor.searchTypeahead',\n AppBskyActorUpdateProfile: 'app.bsky.actor.updateProfile',\n AppBskyEmbedExternal: 'app.bsky.embed.external',\n AppBskyEmbedImages: 'app.bsky.embed.images',\n AppBskyFeedFeedViewPost: 'app.bsky.feed.feedViewPost',\n AppBskyFeedGetAuthorFeed: 'app.bsky.feed.getAuthorFeed',\n AppBskyFeedGetPostThread: 'app.bsky.feed.getPostThread',\n AppBskyFeedGetRepostedBy: 'app.bsky.feed.getRepostedBy',\n AppBskyFeedGetTimeline: 'app.bsky.feed.getTimeline',\n AppBskyFeedGetVotes: 'app.bsky.feed.getVotes',\n AppBskyFeedPost: 'app.bsky.feed.post',\n AppBskyFeedRepost: 'app.bsky.feed.repost',\n AppBskyFeedSetVote: 'app.bsky.feed.setVote',\n AppBskyFeedVote: 'app.bsky.feed.vote',\n AppBskyGraphAssertCreator: 'app.bsky.graph.assertCreator',\n AppBskyGraphAssertMember: 'app.bsky.graph.assertMember',\n AppBskyGraphAssertion: 'app.bsky.graph.assertion',\n AppBskyGraphConfirmation: 'app.bsky.graph.confirmation',\n AppBskyGraphFollow: 'app.bsky.graph.follow',\n AppBskyGraphGetFollowers: 'app.bsky.graph.getFollowers',\n AppBskyGraphGetFollows: 'app.bsky.graph.getFollows',\n AppBskyGraphGetMutes: 'app.bsky.graph.getMutes',\n AppBskyGraphMute: 'app.bsky.graph.mute',\n AppBskyGraphUnmute: 'app.bsky.graph.unmute',\n AppBskyNotificationGetCount: 'app.bsky.notification.getCount',\n AppBskyNotificationList: 'app.bsky.notification.list',\n AppBskyNotificationUpdateSeen: 'app.bsky.notification.updateSeen',\n AppBskySystemActorUser: 'app.bsky.system.actorUser',\n AppBskySystemDeclRef: 'app.bsky.system.declRef',\n AppBskySystemDeclaration: 'app.bsky.system.declaration',\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\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 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 }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n useCount: number\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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\n\nexport interface QueryParams {}\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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport * as ComAtprotoAdminModerationAction from './moderationAction'\n\nexport interface QueryParams {\n id: number\n}\n\nexport type InputSchema = undefined\nexport type OutputSchema = ComAtprotoAdminModerationAction.ViewDetail\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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport * as ComAtprotoAdminModerationAction from './moderationAction'\n\nexport interface QueryParams {\n subject?: string\n limit?: number\n before?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n cursor?: string\n actions: ComAtprotoAdminModerationAction.View[]\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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport * as ComAtprotoAdminModerationReport from './moderationReport'\n\nexport interface QueryParams {\n id: number\n}\n\nexport type InputSchema = undefined\nexport type OutputSchema = ComAtprotoAdminModerationReport.ViewDetail\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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport * as ComAtprotoAdminModerationReport from './moderationReport'\n\nexport interface QueryParams {\n subject?: string\n resolved?: boolean\n limit?: number\n before?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n cursor?: string\n reports: ComAtprotoAdminModerationReport.View[]\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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport * as ComAtprotoAdminRecord from './record'\n\nexport interface QueryParams {\n uri: string\n cid?: string\n}\n\nexport type InputSchema = undefined\nexport type OutputSchema = ComAtprotoAdminRecord.ViewDetail\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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport * as ComAtprotoAdminRepo from './repo'\n\nexport interface QueryParams {\n did: string\n}\n\nexport type InputSchema = undefined\nexport type OutputSchema = ComAtprotoAdminRepo.ViewDetail\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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport * as ComAtprotoAdminModerationAction from './moderationAction'\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 = ComAtprotoAdminModerationAction.View\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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport * as ComAtprotoAdminModerationAction from './moderationAction'\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 = ComAtprotoAdminModerationAction.View\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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport * as ComAtprotoAdminRepo from './repo'\n\nexport interface QueryParams {\n term?: string\n limit?: number\n before?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n cursor?: string\n repos: ComAtprotoAdminRepo.View[]\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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport * as ComAtprotoRepoRepoRef from '../repo/repoRef'\nimport * as ComAtprotoRepoRecordRef from '../repo/recordRef'\nimport * as ComAtprotoAdminModerationAction from './moderationAction'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n action:\n | 'com.atproto.admin.moderationAction#takedown'\n | 'com.atproto.admin.moderationAction#flag'\n | 'com.atproto.admin.moderationAction#acknowledge'\n | (string & {})\n subject:\n | ComAtprotoRepoRepoRef.Main\n | ComAtprotoRepoRecordRef.Main\n | { $type: string; [k: string]: unknown }\n reason: string\n createdBy: string\n [k: string]: unknown\n}\n\nexport type OutputSchema = ComAtprotoAdminModerationAction.View\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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\n\nexport interface QueryParams {}\n\nexport type InputSchema = string | Uint8Array\n\nexport interface OutputSchema {\n cid: string\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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n /** The DID of the repo. */\n did: string\n /** Validate the records? */\n validate?: boolean\n writes: (Create | Update | Delete)[]\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\nexport interface Create {\n action: '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.batchWrite#create'\n )\n}\n\nexport function validateCreate(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.repo.batchWrite#create', v)\n}\n\nexport interface Update {\n action: '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.batchWrite#update'\n )\n}\n\nexport function validateUpdate(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.repo.batchWrite#update', v)\n}\n\nexport interface Delete {\n action: '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.batchWrite#delete'\n )\n}\n\nexport function validateDelete(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.repo.batchWrite#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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n /** The DID of the repo. */\n did: string\n /** The NSID of the record collection. */\n collection: string\n /** Validate the record? */\n validate?: boolean\n /** The record to create. */\n record: {}\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 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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n /** The DID of the repo. */\n did: string\n /** The NSID of the record collection. */\n collection: string\n /** The key of the record. */\n rkey: 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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\n\nexport interface QueryParams {\n /** The handle or DID of the repo. */\n user: 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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\n\nexport interface QueryParams {\n /** The handle or DID of the repo. */\n user: string\n /** The NSID of the 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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\n\nexport interface QueryParams {\n /** The handle or DID of the repo. */\n user: string\n /** The NSID of the record type. */\n collection: string\n /** The number of records to return. */\n limit?: number\n /** A TID to filter the range of records returned. */\n before?: string\n /** A TID to filter the range of records returned. */\n after?: 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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n /** The DID of the repo. */\n did: string\n /** The NSID of the record type. */\n collection: string\n /** The TID of the record. */\n rkey: string\n /** Validate the record? */\n validate?: boolean\n /** The record to create. */\n record: {}\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 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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport * as ComAtprotoReportReasonType from './reasonType'\nimport * as ComAtprotoRepoRepoRef from '../repo/repoRef'\nimport * as ComAtprotoRepoRecordRef from '../repo/recordRef'\nimport * as ComAtprotoRepoStrongRef from '../repo/strongRef'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n reasonType: ComAtprotoReportReasonType.Main\n reason?: string\n subject:\n | ComAtprotoRepoRepoRef.Main\n | ComAtprotoRepoRecordRef.Main\n | { $type: string; [k: string]: unknown }\n [k: string]: unknown\n}\n\nexport interface OutputSchema {\n id: number\n reasonType: ComAtprotoReportReasonType.Main\n reason?: string\n subject:\n | ComAtprotoRepoRepoRef.Main\n | ComAtprotoRepoStrongRef.Main\n | { $type: string; [k: string]: unknown }\n reportedByDid: 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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\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.getAccountsConfig#links'\n )\n}\n\nexport function validateLinks(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.server.getAccountsConfig#links', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\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 [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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\n\nexport interface QueryParams {}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n handle: string\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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\n\nexport interface QueryParams {\n /** The DID of the repo. */\n did: string\n /** A past commit CID. */\n from?: 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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport * as AppBskySystemDeclRef from '../system/declRef'\n\nexport interface QueryParams {\n actor: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n did: string\n declaration: AppBskySystemDeclRef.Main\n handle: string\n creator: string\n displayName?: string\n description?: string\n avatar?: string\n banner?: string\n followersCount: number\n followsCount: number\n postsCount: number\n myState?: MyState\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 MyState {\n follow?: string\n muted?: boolean\n [k: string]: unknown\n}\n\nexport function isMyState(v: unknown): v is MyState {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'app.bsky.actor.getProfile#myState'\n )\n}\n\nexport function validateMyState(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.actor.getProfile#myState', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport * as AppBskySystemDeclRef from '../system/declRef'\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: Actor[]\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 Actor {\n did: string\n declaration: AppBskySystemDeclRef.Main\n handle: string\n displayName?: string\n description?: string\n avatar?: string\n indexedAt?: string\n myState?: MyState\n [k: string]: unknown\n}\n\nexport function isActor(v: unknown): v is Actor {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'app.bsky.actor.getSuggestions#actor'\n )\n}\n\nexport function validateActor(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.actor.getSuggestions#actor', v)\n}\n\nexport interface MyState {\n follow?: string\n [k: string]: unknown\n}\n\nexport function isMyState(v: unknown): v is MyState {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'app.bsky.actor.getSuggestions#myState'\n )\n}\n\nexport function validateMyState(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.actor.getSuggestions#myState', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport * as AppBskySystemDeclRef from '../system/declRef'\n\nexport interface QueryParams {\n term?: string\n limit?: number\n before?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n cursor?: string\n users: User[]\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 User {\n did: string\n declaration: AppBskySystemDeclRef.Main\n handle: string\n displayName?: string\n avatar?: string\n description?: string\n indexedAt?: string\n [k: string]: unknown\n}\n\nexport function isUser(v: unknown): v is User {\n return (\n isObj(v) && hasProp(v, '$type') && v.$type === 'app.bsky.actor.search#user'\n )\n}\n\nexport function validateUser(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.actor.search#user', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport * as AppBskySystemDeclRef from '../system/declRef'\n\nexport interface QueryParams {\n term?: string\n limit?: number\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n users: User[]\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 User {\n did: string\n declaration: AppBskySystemDeclRef.Main\n handle: string\n displayName?: string\n avatar?: string\n [k: string]: unknown\n}\n\nexport function isUser(v: unknown): v is User {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'app.bsky.actor.searchTypeahead#user'\n )\n}\n\nexport function validateUser(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.actor.searchTypeahead#user', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n displayName?: string\n description?: string\n avatar?: { cid: string; mimeType: string; [k: string]: unknown }\n banner?: { cid: string; mimeType: string; [k: string]: unknown }\n [k: string]: unknown\n}\n\nexport interface OutputSchema {\n uri: string\n cid: string\n record: {}\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 InvalidBlobError extends XRPCError {\n constructor(src: XRPCError) {\n super(src.status, src.error, src.message)\n }\n}\n\nexport class BlobTooLargeError extends XRPCError {\n constructor(src: XRPCError) {\n super(src.status, src.error, src.message)\n }\n}\n\nexport class InvalidMimeTypeError extends XRPCError {\n constructor(src: XRPCError) {\n super(src.status, src.error, src.message)\n }\n}\n\nexport class InvalidImageDimensionsError 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 === 'InvalidBlob') return new InvalidBlobError(e)\n if (e.error === 'BlobTooLarge') return new BlobTooLargeError(e)\n if (e.error === 'InvalidMimeType') return new InvalidMimeTypeError(e)\n if (e.error === 'InvalidImageDimensions')\n return new InvalidImageDimensionsError(e)\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport * as AppBskyFeedFeedViewPost from './feedViewPost'\n\nexport interface QueryParams {\n author: string\n limit?: number\n before?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n cursor?: string\n feed: AppBskyFeedFeedViewPost.Main[]\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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport * as AppBskyFeedPost from './post'\n\nexport interface QueryParams {\n uri: string\n depth?: number\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n thread:\n | ThreadViewPost\n | NotFoundPost\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\nexport interface ThreadViewPost {\n post: AppBskyFeedPost.View\n parent?:\n | ThreadViewPost\n | NotFoundPost\n | { $type: string; [k: string]: unknown }\n replies?: (\n | ThreadViewPost\n | NotFoundPost\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.getPostThread#threadViewPost'\n )\n}\n\nexport function validateThreadViewPost(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.feed.getPostThread#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.getPostThread#notFoundPost'\n )\n}\n\nexport function validateNotFoundPost(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.feed.getPostThread#notFoundPost', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport * as AppBskySystemDeclRef from '../system/declRef'\n\nexport interface QueryParams {\n uri: string\n cid?: string\n limit?: number\n before?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n uri: string\n cid?: string\n cursor?: string\n repostedBy: RepostedBy[]\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 RepostedBy {\n did: string\n declaration: AppBskySystemDeclRef.Main\n handle: string\n displayName?: string\n avatar?: string\n createdAt?: string\n indexedAt: string\n [k: string]: unknown\n}\n\nexport function isRepostedBy(v: unknown): v is RepostedBy {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'app.bsky.feed.getRepostedBy#repostedBy'\n )\n}\n\nexport function validateRepostedBy(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.feed.getRepostedBy#repostedBy', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport * as AppBskyFeedFeedViewPost from './feedViewPost'\n\nexport interface QueryParams {\n algorithm?: string\n limit?: number\n before?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n cursor?: string\n feed: AppBskyFeedFeedViewPost.Main[]\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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport * as AppBskyActorRef from '../actor/ref'\n\nexport interface QueryParams {\n uri: string\n cid?: string\n direction?: 'up' | 'down'\n limit?: number\n before?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n uri: string\n cid?: string\n cursor?: string\n votes: Vote[]\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 Vote {\n direction: 'up' | 'down'\n indexedAt: string\n createdAt: string\n actor: AppBskyActorRef.WithInfo\n [k: string]: unknown\n}\n\nexport function isVote(v: unknown): v is Vote {\n return (\n isObj(v) && hasProp(v, '$type') && v.$type === 'app.bsky.feed.getVotes#vote'\n )\n}\n\nexport function validateVote(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.feed.getVotes#vote', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport * as ComAtprotoRepoStrongRef from '../../../com/atproto/repo/strongRef'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n subject: ComAtprotoRepoStrongRef.Main\n direction: 'up' | 'down' | 'none'\n [k: string]: unknown\n}\n\nexport interface OutputSchema {\n upvote?: string\n downvote?: 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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport * as AppBskyActorRef from '../actor/ref'\nimport * as AppBskySystemDeclRef from '../system/declRef'\n\nexport interface QueryParams {\n user: string\n limit?: number\n before?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n subject: AppBskyActorRef.WithInfo\n cursor?: string\n followers: Follower[]\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 Follower {\n did: string\n declaration: AppBskySystemDeclRef.Main\n handle: string\n displayName?: string\n avatar?: string\n createdAt?: string\n indexedAt: string\n [k: string]: unknown\n}\n\nexport function isFollower(v: unknown): v is Follower {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'app.bsky.graph.getFollowers#follower'\n )\n}\n\nexport function validateFollower(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.graph.getFollowers#follower', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport * as AppBskyActorRef from '../actor/ref'\nimport * as AppBskySystemDeclRef from '../system/declRef'\n\nexport interface QueryParams {\n user: string\n limit?: number\n before?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n subject: AppBskyActorRef.WithInfo\n cursor?: string\n follows: Follow[]\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 Follow {\n did: string\n declaration: AppBskySystemDeclRef.Main\n handle: string\n displayName?: string\n avatar?: string\n createdAt?: string\n indexedAt: string\n [k: string]: unknown\n}\n\nexport function isFollow(v: unknown): v is Follow {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'app.bsky.graph.getFollows#follow'\n )\n}\n\nexport function validateFollow(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.graph.getFollows#follow', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport * as AppBskySystemDeclRef from '../system/declRef'\n\nexport interface QueryParams {\n limit?: number\n before?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n cursor?: string\n mutes: Mute[]\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 Mute {\n did: string\n declaration: AppBskySystemDeclRef.Main\n handle: string\n displayName?: string\n createdAt: string\n [k: string]: unknown\n}\n\nexport function isMute(v: unknown): v is Mute {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'app.bsky.graph.getMutes#mute'\n )\n}\n\nexport function validateMute(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.graph.getMutes#mute', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n user: 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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n user: 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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\n\nexport interface QueryParams {}\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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport * as AppBskyActorRef from '../actor/ref'\n\nexport interface QueryParams {\n limit?: number\n before?: 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: AppBskyActorRef.WithInfo\n /** Expected values are 'vote', 'repost', 'follow', 'invite', 'mention' and 'reply'. */\n reason:\n | 'vote'\n | 'repost'\n | 'follow'\n | 'invite'\n | 'mention'\n | 'reply'\n | (string & {})\n reasonSubject?: string\n record: {}\n isRead: boolean\n indexedAt: string\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.list#notification'\n )\n}\n\nexport function validateNotification(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.notification.list#notification', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\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 { ValidationResult } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport * as ComAtprotoRepoRepoRef from '../repo/repoRef'\nimport * as ComAtprotoRepoStrongRef from '../repo/strongRef'\nimport * as ComAtprotoAdminRepo from './repo'\nimport * as ComAtprotoAdminRecord from './record'\nimport * as ComAtprotoAdminModerationReport from './moderationReport'\n\nexport interface View {\n id: number\n action:\n | 'com.atproto.admin.moderationAction#takedown'\n | 'com.atproto.admin.moderationAction#flag'\n | 'com.atproto.admin.moderationAction#acknowledge'\n | (string & {})\n subject:\n | ComAtprotoRepoRepoRef.Main\n | ComAtprotoRepoStrongRef.Main\n | { $type: string; [k: string]: unknown }\n reason: string\n createdBy: string\n createdAt: string\n reversal?: Reversal\n resolvedReportIds: number[]\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 === 'com.atproto.admin.moderationAction#view'\n )\n}\n\nexport function validateView(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.admin.moderationAction#view', v)\n}\n\nexport interface ViewDetail {\n id: number\n action:\n | 'com.atproto.admin.moderationAction#takedown'\n | 'com.atproto.admin.moderationAction#flag'\n | 'com.atproto.admin.moderationAction#acknowledge'\n | (string & {})\n subject:\n | ComAtprotoAdminRepo.View\n | ComAtprotoAdminRecord.View\n | { $type: string; [k: string]: unknown }\n reason: string\n createdBy: string\n createdAt: string\n reversal?: Reversal\n resolvedReports: ComAtprotoAdminModerationReport.View[]\n [k: string]: unknown\n}\n\nexport function isViewDetail(v: unknown): v is ViewDetail {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.admin.moderationAction#viewDetail'\n )\n}\n\nexport function validateViewDetail(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.admin.moderationAction#viewDetail', v)\n}\n\nexport interface Reversal {\n reason: string\n createdBy: string\n createdAt: string\n [k: string]: unknown\n}\n\nexport function isReversal(v: unknown): v is Reversal {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.admin.moderationAction#reversal'\n )\n}\n\nexport function validateReversal(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.admin.moderationAction#reversal', v)\n}\n\n/** Moderation action type: Takedown. Indicates that content should not be served by the PDS. */\nexport const TAKEDOWN = 'com.atproto.admin.moderationAction#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.moderationAction#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.moderationAction#acknowledge'\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { ValidationResult } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport * as ComAtprotoReportReasonType from '../report/reasonType'\nimport * as ComAtprotoRepoRepoRef from '../repo/repoRef'\nimport * as ComAtprotoRepoStrongRef from '../repo/strongRef'\nimport * as ComAtprotoAdminRepo from './repo'\nimport * as ComAtprotoAdminRecord from './record'\nimport * as ComAtprotoAdminModerationAction from './moderationAction'\n\nexport interface View {\n id: number\n reasonType: ComAtprotoReportReasonType.Main\n reason?: string\n subject:\n | ComAtprotoRepoRepoRef.Main\n | ComAtprotoRepoStrongRef.Main\n | { $type: string; [k: string]: unknown }\n reportedByDid: string\n createdAt: string\n resolvedByActionIds: number[]\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 === 'com.atproto.admin.moderationReport#view'\n )\n}\n\nexport function validateView(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.admin.moderationReport#view', v)\n}\n\nexport interface ViewDetail {\n id: number\n reasonType: ComAtprotoReportReasonType.Main\n reason?: string\n subject:\n | ComAtprotoAdminRepo.View\n | ComAtprotoAdminRecord.View\n | { $type: string; [k: string]: unknown }\n reportedByDid: string\n createdAt: string\n resolvedByActions: ComAtprotoAdminModerationAction.View[]\n [k: string]: unknown\n}\n\nexport function isViewDetail(v: unknown): v is ViewDetail {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.admin.moderationReport#viewDetail'\n )\n}\n\nexport function validateViewDetail(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.admin.moderationReport#viewDetail', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { ValidationResult } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport * as ComAtprotoAdminRepo from './repo'\nimport * as ComAtprotoAdminModerationAction from './moderationAction'\nimport * as ComAtprotoAdminModerationReport from './moderationReport'\n\nexport interface View {\n uri: string\n cid: string\n value: {}\n indexedAt: string\n moderation: Moderation\n repo: ComAtprotoAdminRepo.View\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 === 'com.atproto.admin.record#view'\n )\n}\n\nexport function validateView(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.admin.record#view', v)\n}\n\nexport interface ViewDetail {\n uri: string\n cid: string\n value: {}\n indexedAt: string\n moderation: ModerationDetail\n repo: ComAtprotoAdminRepo.View\n [k: string]: unknown\n}\n\nexport function isViewDetail(v: unknown): v is ViewDetail {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.admin.record#viewDetail'\n )\n}\n\nexport function validateViewDetail(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.admin.record#viewDetail', v)\n}\n\nexport interface Moderation {\n takedownId?: number\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.record#moderation'\n )\n}\n\nexport function validateModeration(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.admin.record#moderation', v)\n}\n\nexport interface ModerationDetail {\n actions: ComAtprotoAdminModerationAction.View[]\n reports: ComAtprotoAdminModerationReport.View[]\n takedownId?: number\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.record#moderationDetail'\n )\n}\n\nexport function validateModerationDetail(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.admin.record#moderationDetail', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { ValidationResult } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport * as ComAtprotoAdminModerationAction from './moderationAction'\nimport * as ComAtprotoAdminModerationReport from './moderationReport'\n\nexport interface View {\n did: string\n handle: string\n account?: Account\n relatedRecords: {}[]\n indexedAt: string\n moderation: Moderation\n [k: string]: unknown\n}\n\nexport function isView(v: unknown): v is View {\n return (\n isObj(v) && hasProp(v, '$type') && v.$type === 'com.atproto.admin.repo#view'\n )\n}\n\nexport function validateView(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.admin.repo#view', v)\n}\n\nexport interface ViewDetail {\n did: string\n handle: string\n account?: Account\n relatedRecords: {}[]\n indexedAt: string\n moderation: ModerationDetail\n [k: string]: unknown\n}\n\nexport function isViewDetail(v: unknown): v is ViewDetail {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.admin.repo#viewDetail'\n )\n}\n\nexport function validateViewDetail(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.admin.repo#viewDetail', v)\n}\n\nexport interface Account {\n email: string\n [k: string]: unknown\n}\n\nexport function isAccount(v: unknown): v is Account {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.admin.repo#account'\n )\n}\n\nexport function validateAccount(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.admin.repo#account', v)\n}\n\nexport interface Moderation {\n takedownId?: number\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.repo#moderation'\n )\n}\n\nexport function validateModeration(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.admin.repo#moderation', v)\n}\n\nexport interface ModerationDetail {\n actions: ComAtprotoAdminModerationAction.View[]\n reports: ComAtprotoAdminModerationReport.View[]\n takedownId?: number\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.repo#moderationDetail'\n )\n}\n\nexport function validateModerationDetail(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.admin.repo#moderationDetail', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { ValidationResult } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\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.recordRef#main' ||\n v.$type === 'com.atproto.repo.recordRef')\n )\n}\n\nexport function validateMain(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.repo.recordRef#main', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { ValidationResult } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\n\nexport interface Main {\n did: 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.repoRef#main' ||\n v.$type === 'com.atproto.repo.repoRef')\n )\n}\n\nexport function validateMain(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.repo.repoRef#main', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { ValidationResult } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\n\nexport type Main =\n | 'com.atproto.report.reason#spam'\n | 'com.atproto.report.reason#other'\n | (string & {})\n\n/** Moderation report reason: Spam. */\nexport const SPAM = 'com.atproto.report.reasonType#spam'\n/** Moderation report reason: Other. */\nexport const OTHER = 'com.atproto.report.reasonType#other'\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { ValidationResult } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\n\nexport interface Repo {\n /** The DID of the repo. */\n did: 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.report.subject#repo'\n )\n}\n\nexport function validateRepo(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.report.subject#repo', v)\n}\n\nexport interface Record {\n /** The DID of the repo. */\n did: string\n /** The NSID of the 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, defaults to the most recent version. */\n cid?: 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 === 'com.atproto.report.subject#record'\n )\n}\n\nexport function validateRecord(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.report.subject#record', v)\n}\n\nexport interface RecordRef {\n uri: string\n cid: string\n [k: string]: unknown\n}\n\nexport function isRecordRef(v: unknown): v is RecordRef {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.report.subject#recordRef'\n )\n}\n\nexport function validateRecordRef(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.report.subject#recordRef', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { ValidationResult } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\n\nexport interface Record {\n displayName: string\n description?: string\n avatar?: { cid: string; mimeType: string; [k: string]: unknown }\n banner?: { cid: string; mimeType: string; [k: string]: unknown }\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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport * as AppBskySystemDeclRef from '../system/declRef'\n\nexport interface Main {\n did: string\n declarationCid: 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 === 'app.bsky.actor.ref#main' || v.$type === 'app.bsky.actor.ref')\n )\n}\n\nexport function validateMain(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.actor.ref#main', v)\n}\n\nexport interface WithInfo {\n did: string\n declaration: AppBskySystemDeclRef.Main\n handle: string\n displayName?: string\n avatar?: string\n viewer?: ViewerState\n [k: string]: unknown\n}\n\nexport function isWithInfo(v: unknown): v is WithInfo {\n return (\n isObj(v) && hasProp(v, '$type') && v.$type === 'app.bsky.actor.ref#withInfo'\n )\n}\n\nexport function validateWithInfo(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.actor.ref#withInfo', v)\n}\n\nexport interface ViewerState {\n muted?: boolean\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.ref#viewerState'\n )\n}\n\nexport function validateViewerState(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.actor.ref#viewerState', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { ValidationResult } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\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?: { cid: string; mimeType: string; [k: string]: unknown }\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 Presented {\n external: PresentedExternal\n [k: string]: unknown\n}\n\nexport function isPresented(v: unknown): v is Presented {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'app.bsky.embed.external#presented'\n )\n}\n\nexport function validatePresented(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.embed.external#presented', v)\n}\n\nexport interface PresentedExternal {\n uri: string\n title: string\n description: string\n thumb?: string\n [k: string]: unknown\n}\n\nexport function isPresentedExternal(v: unknown): v is PresentedExternal {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'app.bsky.embed.external#presentedExternal'\n )\n}\n\nexport function validatePresentedExternal(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.embed.external#presentedExternal', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { ValidationResult } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\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: { cid: string; mimeType: string; [k: string]: unknown }\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 Presented {\n images: PresentedImage[]\n [k: string]: unknown\n}\n\nexport function isPresented(v: unknown): v is Presented {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'app.bsky.embed.images#presented'\n )\n}\n\nexport function validatePresented(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.embed.images#presented', v)\n}\n\nexport interface PresentedImage {\n thumb: string\n fullsize: string\n alt: string\n [k: string]: unknown\n}\n\nexport function isPresentedImage(v: unknown): v is PresentedImage {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'app.bsky.embed.images#presentedImage'\n )\n}\n\nexport function validatePresentedImage(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.embed.images#presentedImage', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { ValidationResult } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport * as AppBskyFeedPost from './post'\nimport * as AppBskyActorRef from '../actor/ref'\n\nexport interface Main {\n post: AppBskyFeedPost.View\n reply?: ReplyRef\n reason?: ReasonRepost | { $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.feed.feedViewPost#main' ||\n v.$type === 'app.bsky.feed.feedViewPost')\n )\n}\n\nexport function validateMain(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.feed.feedViewPost#main', v)\n}\n\nexport interface ReplyRef {\n root: AppBskyFeedPost.View\n parent: AppBskyFeedPost.View\n [k: string]: unknown\n}\n\nexport function isReplyRef(v: unknown): v is ReplyRef {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'app.bsky.feed.feedViewPost#replyRef'\n )\n}\n\nexport function validateReplyRef(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.feed.feedViewPost#replyRef', v)\n}\n\nexport interface ReasonRepost {\n by: AppBskyActorRef.WithInfo\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.feedViewPost#reasonRepost'\n )\n}\n\nexport function validateReasonRepost(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.feed.feedViewPost#reasonRepost', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { ValidationResult } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport * as AppBskyEmbedImages from '../embed/images'\nimport * as AppBskyEmbedExternal from '../embed/external'\nimport * as ComAtprotoRepoStrongRef from '../../../com/atproto/repo/strongRef'\nimport * as AppBskyActorRef from '../actor/ref'\n\nexport interface Record {\n text: string\n entities?: Entity[]\n reply?: ReplyRef\n embed?:\n | AppBskyEmbedImages.Main\n | AppBskyEmbedExternal.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\nexport interface Entity {\n index: TextSlice\n /** Expected values are 'mention', 'hashtag', 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/** A text segment. Start is inclusive, end is exclusive. */\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\nexport interface View {\n uri: string\n cid: string\n author: AppBskyActorRef.WithInfo\n record: {}\n embed?:\n | AppBskyEmbedImages.Presented\n | AppBskyEmbedExternal.Presented\n | { $type: string; [k: string]: unknown }\n replyCount: number\n repostCount: number\n upvoteCount: number\n downvoteCount: number\n indexedAt: string\n viewer: ViewerState\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.feed.post#view'\n )\n}\n\nexport function validateView(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.feed.post#view', v)\n}\n\nexport interface ViewerState {\n repost?: string\n upvote?: string\n downvote?: 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.post#viewerState'\n )\n}\n\nexport function validateViewerState(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.feed.post#viewerState', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { ValidationResult } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport * as ComAtprotoRepoStrongRef from '../../../com/atproto/repo/strongRef'\n\nexport interface Record {\n subject: ComAtprotoRepoStrongRef.Main\n direction: 'up' | 'down'\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.vote#main' || v.$type === 'app.bsky.feed.vote')\n )\n}\n\nexport function validateRecord(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.feed.vote#main', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { ValidationResult } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\n\n/** Assertion type: Creator. Defined for app.bsky.graph.assertions's assertion. */\nexport const MAIN = 'app.bsky.graph.assertCreator#main'\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { ValidationResult } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\n\n/** Assertion type: Member. Defined for app.bsky.graph.assertions's assertion. */\nexport const MAIN = 'app.bsky.graph.assertMember#main'\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { ValidationResult } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport * as AppBskyActorRef from '../actor/ref'\n\nexport interface Record {\n assertion: string\n subject: AppBskyActorRef.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.graph.assertion#main' ||\n v.$type === 'app.bsky.graph.assertion')\n )\n}\n\nexport function validateRecord(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.graph.assertion#main', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { ValidationResult } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport * as AppBskyActorRef from '../actor/ref'\nimport * as ComAtprotoRepoStrongRef from '../../../com/atproto/repo/strongRef'\n\nexport interface Record {\n originator: AppBskyActorRef.Main\n assertion: 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.graph.confirmation#main' ||\n v.$type === 'app.bsky.graph.confirmation')\n )\n}\n\nexport function validateRecord(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.graph.confirmation#main', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { ValidationResult } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport * as AppBskyActorRef from '../actor/ref'\n\nexport interface Record {\n subject: AppBskyActorRef.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.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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\n\n/** Actor type: User. Defined for app.bsky.system.declaration's actorType. */\nexport const MAIN = 'app.bsky.system.actorUser#main'\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { ValidationResult } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\n\n/** A reference to a app.bsky.system.declaration record. */\nexport interface Main {\n cid: string\n actorType: 'app.bsky.system.actorUser' | (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 === 'app.bsky.system.declRef#main' ||\n v.$type === 'app.bsky.system.declRef')\n )\n}\n\nexport function validateMain(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.system.declRef#main', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { ValidationResult } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\n\nexport interface Record {\n actorType: 'app.bsky.system.actorUser' | (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.system.declaration#main' ||\n v.$type === 'app.bsky.system.declaration')\n )\n}\n\nexport function validateRecord(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.system.declaration#main', 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 * as ComAtprotoAccountCreate from './types/com/atproto/account/create'\nimport * as ComAtprotoAccountCreateInviteCode from './types/com/atproto/account/createInviteCode'\nimport * as ComAtprotoAccountDelete from './types/com/atproto/account/delete'\nimport * as ComAtprotoAccountGet from './types/com/atproto/account/get'\nimport * as ComAtprotoAccountRequestDelete from './types/com/atproto/account/requestDelete'\nimport * as ComAtprotoAccountRequestPasswordReset from './types/com/atproto/account/requestPasswordReset'\nimport * as ComAtprotoAccountResetPassword from './types/com/atproto/account/resetPassword'\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 ComAtprotoAdminModerationAction from './types/com/atproto/admin/moderationAction'\nimport * as ComAtprotoAdminModerationReport from './types/com/atproto/admin/moderationReport'\nimport * as ComAtprotoAdminRecord from './types/com/atproto/admin/record'\nimport * as ComAtprotoAdminRepo from './types/com/atproto/admin/repo'\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 ComAtprotoBlobUpload from './types/com/atproto/blob/upload'\nimport * as ComAtprotoHandleResolve from './types/com/atproto/handle/resolve'\nimport * as ComAtprotoRepoBatchWrite from './types/com/atproto/repo/batchWrite'\nimport * as ComAtprotoRepoCreateRecord from './types/com/atproto/repo/createRecord'\nimport * as ComAtprotoRepoDeleteRecord from './types/com/atproto/repo/deleteRecord'\nimport * as ComAtprotoRepoDescribe from './types/com/atproto/repo/describe'\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 ComAtprotoRepoRecordRef from './types/com/atproto/repo/recordRef'\nimport * as ComAtprotoRepoRepoRef from './types/com/atproto/repo/repoRef'\nimport * as ComAtprotoRepoStrongRef from './types/com/atproto/repo/strongRef'\nimport * as ComAtprotoReportCreate from './types/com/atproto/report/create'\nimport * as ComAtprotoReportReasonType from './types/com/atproto/report/reasonType'\nimport * as ComAtprotoReportSubject from './types/com/atproto/report/subject'\nimport * as ComAtprotoServerGetAccountsConfig from './types/com/atproto/server/getAccountsConfig'\nimport * as ComAtprotoSessionCreate from './types/com/atproto/session/create'\nimport * as ComAtprotoSessionDelete from './types/com/atproto/session/delete'\nimport * as ComAtprotoSessionGet from './types/com/atproto/session/get'\nimport * as ComAtprotoSessionRefresh from './types/com/atproto/session/refresh'\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 AppBskyActorGetProfile from './types/app/bsky/actor/getProfile'\nimport * as AppBskyActorGetSuggestions from './types/app/bsky/actor/getSuggestions'\nimport * as AppBskyActorProfile from './types/app/bsky/actor/profile'\nimport * as AppBskyActorRef from './types/app/bsky/actor/ref'\nimport * as AppBskyActorSearch from './types/app/bsky/actor/search'\nimport * as AppBskyActorSearchTypeahead from './types/app/bsky/actor/searchTypeahead'\nimport * as AppBskyActorUpdateProfile from './types/app/bsky/actor/updateProfile'\nimport * as AppBskyEmbedExternal from './types/app/bsky/embed/external'\nimport * as AppBskyEmbedImages from './types/app/bsky/embed/images'\nimport * as AppBskyFeedFeedViewPost from './types/app/bsky/feed/feedViewPost'\nimport * as AppBskyFeedGetAuthorFeed from './types/app/bsky/feed/getAuthorFeed'\nimport * as AppBskyFeedGetPostThread from './types/app/bsky/feed/getPostThread'\nimport * as AppBskyFeedGetRepostedBy from './types/app/bsky/feed/getRepostedBy'\nimport * as AppBskyFeedGetTimeline from './types/app/bsky/feed/getTimeline'\nimport * as AppBskyFeedGetVotes from './types/app/bsky/feed/getVotes'\nimport * as AppBskyFeedPost from './types/app/bsky/feed/post'\nimport * as AppBskyFeedRepost from './types/app/bsky/feed/repost'\nimport * as AppBskyFeedSetVote from './types/app/bsky/feed/setVote'\nimport * as AppBskyFeedVote from './types/app/bsky/feed/vote'\nimport * as AppBskyGraphAssertCreator from './types/app/bsky/graph/assertCreator'\nimport * as AppBskyGraphAssertMember from './types/app/bsky/graph/assertMember'\nimport * as AppBskyGraphAssertion from './types/app/bsky/graph/assertion'\nimport * as AppBskyGraphConfirmation from './types/app/bsky/graph/confirmation'\nimport * as AppBskyGraphFollow from './types/app/bsky/graph/follow'\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 AppBskyGraphMute from './types/app/bsky/graph/mute'\nimport * as AppBskyGraphUnmute from './types/app/bsky/graph/unmute'\nimport * as AppBskyNotificationGetCount from './types/app/bsky/notification/getCount'\nimport * as AppBskyNotificationList from './types/app/bsky/notification/list'\nimport * as AppBskyNotificationUpdateSeen from './types/app/bsky/notification/updateSeen'\nimport * as AppBskySystemActorUser from './types/app/bsky/system/actorUser'\nimport * as AppBskySystemDeclRef from './types/app/bsky/system/declRef'\nimport * as AppBskySystemDeclaration from './types/app/bsky/system/declaration'\n\nexport * as ComAtprotoAccountCreate from './types/com/atproto/account/create'\nexport * as ComAtprotoAccountCreateInviteCode from './types/com/atproto/account/createInviteCode'\nexport * as ComAtprotoAccountDelete from './types/com/atproto/account/delete'\nexport * as ComAtprotoAccountGet from './types/com/atproto/account/get'\nexport * as ComAtprotoAccountRequestDelete from './types/com/atproto/account/requestDelete'\nexport * as ComAtprotoAccountRequestPasswordReset from './types/com/atproto/account/requestPasswordReset'\nexport * as ComAtprotoAccountResetPassword from './types/com/atproto/account/resetPassword'\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 ComAtprotoAdminModerationAction from './types/com/atproto/admin/moderationAction'\nexport * as ComAtprotoAdminModerationReport from './types/com/atproto/admin/moderationReport'\nexport * as ComAtprotoAdminRecord from './types/com/atproto/admin/record'\nexport * as ComAtprotoAdminRepo from './types/com/atproto/admin/repo'\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 ComAtprotoBlobUpload from './types/com/atproto/blob/upload'\nexport * as ComAtprotoHandleResolve from './types/com/atproto/handle/resolve'\nexport * as ComAtprotoRepoBatchWrite from './types/com/atproto/repo/batchWrite'\nexport * as ComAtprotoRepoCreateRecord from './types/com/atproto/repo/createRecord'\nexport * as ComAtprotoRepoDeleteRecord from './types/com/atproto/repo/deleteRecord'\nexport * as ComAtprotoRepoDescribe from './types/com/atproto/repo/describe'\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 ComAtprotoRepoRecordRef from './types/com/atproto/repo/recordRef'\nexport * as ComAtprotoRepoRepoRef from './types/com/atproto/repo/repoRef'\nexport * as ComAtprotoRepoStrongRef from './types/com/atproto/repo/strongRef'\nexport * as ComAtprotoReportCreate from './types/com/atproto/report/create'\nexport * as ComAtprotoReportReasonType from './types/com/atproto/report/reasonType'\nexport * as ComAtprotoReportSubject from './types/com/atproto/report/subject'\nexport * as ComAtprotoServerGetAccountsConfig from './types/com/atproto/server/getAccountsConfig'\nexport * as ComAtprotoSessionCreate from './types/com/atproto/session/create'\nexport * as ComAtprotoSessionDelete from './types/com/atproto/session/delete'\nexport * as ComAtprotoSessionGet from './types/com/atproto/session/get'\nexport * as ComAtprotoSessionRefresh from './types/com/atproto/session/refresh'\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 AppBskyActorGetProfile from './types/app/bsky/actor/getProfile'\nexport * as AppBskyActorGetSuggestions from './types/app/bsky/actor/getSuggestions'\nexport * as AppBskyActorProfile from './types/app/bsky/actor/profile'\nexport * as AppBskyActorRef from './types/app/bsky/actor/ref'\nexport * as AppBskyActorSearch from './types/app/bsky/actor/search'\nexport * as AppBskyActorSearchTypeahead from './types/app/bsky/actor/searchTypeahead'\nexport * as AppBskyActorUpdateProfile from './types/app/bsky/actor/updateProfile'\nexport * as AppBskyEmbedExternal from './types/app/bsky/embed/external'\nexport * as AppBskyEmbedImages from './types/app/bsky/embed/images'\nexport * as AppBskyFeedFeedViewPost from './types/app/bsky/feed/feedViewPost'\nexport * as AppBskyFeedGetAuthorFeed from './types/app/bsky/feed/getAuthorFeed'\nexport * as AppBskyFeedGetPostThread from './types/app/bsky/feed/getPostThread'\nexport * as AppBskyFeedGetRepostedBy from './types/app/bsky/feed/getRepostedBy'\nexport * as AppBskyFeedGetTimeline from './types/app/bsky/feed/getTimeline'\nexport * as AppBskyFeedGetVotes from './types/app/bsky/feed/getVotes'\nexport * as AppBskyFeedPost from './types/app/bsky/feed/post'\nexport * as AppBskyFeedRepost from './types/app/bsky/feed/repost'\nexport * as AppBskyFeedSetVote from './types/app/bsky/feed/setVote'\nexport * as AppBskyFeedVote from './types/app/bsky/feed/vote'\nexport * as AppBskyGraphAssertCreator from './types/app/bsky/graph/assertCreator'\nexport * as AppBskyGraphAssertMember from './types/app/bsky/graph/assertMember'\nexport * as AppBskyGraphAssertion from './types/app/bsky/graph/assertion'\nexport * as AppBskyGraphConfirmation from './types/app/bsky/graph/confirmation'\nexport * as AppBskyGraphFollow from './types/app/bsky/graph/follow'\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 AppBskyGraphMute from './types/app/bsky/graph/mute'\nexport * as AppBskyGraphUnmute from './types/app/bsky/graph/unmute'\nexport * as AppBskyNotificationGetCount from './types/app/bsky/notification/getCount'\nexport * as AppBskyNotificationList from './types/app/bsky/notification/list'\nexport * as AppBskyNotificationUpdateSeen from './types/app/bsky/notification/updateSeen'\nexport * as AppBskySystemActorUser from './types/app/bsky/system/actorUser'\nexport * as AppBskySystemDeclRef from './types/app/bsky/system/declRef'\nexport * as AppBskySystemDeclaration from './types/app/bsky/system/declaration'\n\nexport const COM_ATPROTO_ADMIN = {\n ModerationActionTakedown: 'com.atproto.admin.moderationAction#takedown',\n ModerationActionFlag: 'com.atproto.admin.moderationAction#flag',\n ModerationActionAcknowledge: 'com.atproto.admin.moderationAction#acknowledge',\n}\nexport const COM_ATPROTO_REPORT = {\n ReasonTypeSpam: 'com.atproto.report.reasonType#spam',\n ReasonTypeOther: 'com.atproto.report.reasonType#other',\n}\nexport const APP_BSKY_GRAPH = {\n AssertCreator: 'app.bsky.graph.assertCreator',\n AssertMember: 'app.bsky.graph.assertMember',\n}\nexport const APP_BSKY_SYSTEM = {\n ActorUser: 'app.bsky.system.actorUser',\n}\n\nexport class Client {\n xrpc: XrpcClient = new XrpcClient()\n\n constructor() {\n this.xrpc.addLexicons(schemas)\n }\n\n service(serviceUri: string | URL): ServiceClient {\n return new ServiceClient(this, this.xrpc.service(serviceUri))\n }\n}\n\nconst defaultInst = new Client()\nexport default defaultInst\n\nexport class ServiceClient {\n _baseClient: Client\n xrpc: XrpcServiceClient\n com: ComNS\n app: AppNS\n\n constructor(baseClient: Client, 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: ServiceClient\n atproto: AtprotoNS\n\n constructor(service: ServiceClient) {\n this._service = service\n this.atproto = new AtprotoNS(service)\n }\n}\n\nexport class AtprotoNS {\n _service: ServiceClient\n account: AccountNS\n admin: AdminNS\n blob: BlobNS\n handle: HandleNS\n repo: RepoNS\n report: ReportNS\n server: ServerNS\n session: SessionNS\n sync: SyncNS\n\n constructor(service: ServiceClient) {\n this._service = service\n this.account = new AccountNS(service)\n this.admin = new AdminNS(service)\n this.blob = new BlobNS(service)\n this.handle = new HandleNS(service)\n this.repo = new RepoNS(service)\n this.report = new ReportNS(service)\n this.server = new ServerNS(service)\n this.session = new SessionNS(service)\n this.sync = new SyncNS(service)\n }\n}\n\nexport class AccountNS {\n _service: ServiceClient\n\n constructor(service: ServiceClient) {\n this._service = service\n }\n\n create(\n data?: ComAtprotoAccountCreate.InputSchema,\n opts?: ComAtprotoAccountCreate.CallOptions,\n ): Promise<ComAtprotoAccountCreate.Response> {\n return this._service.xrpc\n .call('com.atproto.account.create', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoAccountCreate.toKnownErr(e)\n })\n }\n\n createInviteCode(\n data?: ComAtprotoAccountCreateInviteCode.InputSchema,\n opts?: ComAtprotoAccountCreateInviteCode.CallOptions,\n ): Promise<ComAtprotoAccountCreateInviteCode.Response> {\n return this._service.xrpc\n .call('com.atproto.account.createInviteCode', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoAccountCreateInviteCode.toKnownErr(e)\n })\n }\n\n delete(\n data?: ComAtprotoAccountDelete.InputSchema,\n opts?: ComAtprotoAccountDelete.CallOptions,\n ): Promise<ComAtprotoAccountDelete.Response> {\n return this._service.xrpc\n .call('com.atproto.account.delete', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoAccountDelete.toKnownErr(e)\n })\n }\n\n get(\n params?: ComAtprotoAccountGet.QueryParams,\n opts?: ComAtprotoAccountGet.CallOptions,\n ): Promise<ComAtprotoAccountGet.Response> {\n return this._service.xrpc\n .call('com.atproto.account.get', params, undefined, opts)\n .catch((e) => {\n throw ComAtprotoAccountGet.toKnownErr(e)\n })\n }\n\n requestDelete(\n data?: ComAtprotoAccountRequestDelete.InputSchema,\n opts?: ComAtprotoAccountRequestDelete.CallOptions,\n ): Promise<ComAtprotoAccountRequestDelete.Response> {\n return this._service.xrpc\n .call('com.atproto.account.requestDelete', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoAccountRequestDelete.toKnownErr(e)\n })\n }\n\n requestPasswordReset(\n data?: ComAtprotoAccountRequestPasswordReset.InputSchema,\n opts?: ComAtprotoAccountRequestPasswordReset.CallOptions,\n ): Promise<ComAtprotoAccountRequestPasswordReset.Response> {\n return this._service.xrpc\n .call('com.atproto.account.requestPasswordReset', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoAccountRequestPasswordReset.toKnownErr(e)\n })\n }\n\n resetPassword(\n data?: ComAtprotoAccountResetPassword.InputSchema,\n opts?: ComAtprotoAccountResetPassword.CallOptions,\n ): Promise<ComAtprotoAccountResetPassword.Response> {\n return this._service.xrpc\n .call('com.atproto.account.resetPassword', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoAccountResetPassword.toKnownErr(e)\n })\n }\n}\n\nexport class AdminNS {\n _service: ServiceClient\n\n constructor(service: ServiceClient) {\n this._service = service\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\nexport class BlobNS {\n _service: ServiceClient\n\n constructor(service: ServiceClient) {\n this._service = service\n }\n\n upload(\n data?: ComAtprotoBlobUpload.InputSchema,\n opts?: ComAtprotoBlobUpload.CallOptions,\n ): Promise<ComAtprotoBlobUpload.Response> {\n return this._service.xrpc\n .call('com.atproto.blob.upload', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoBlobUpload.toKnownErr(e)\n })\n }\n}\n\nexport class HandleNS {\n _service: ServiceClient\n\n constructor(service: ServiceClient) {\n this._service = service\n }\n\n resolve(\n params?: ComAtprotoHandleResolve.QueryParams,\n opts?: ComAtprotoHandleResolve.CallOptions,\n ): Promise<ComAtprotoHandleResolve.Response> {\n return this._service.xrpc\n .call('com.atproto.handle.resolve', params, undefined, opts)\n .catch((e) => {\n throw ComAtprotoHandleResolve.toKnownErr(e)\n })\n }\n}\n\nexport class RepoNS {\n _service: ServiceClient\n\n constructor(service: ServiceClient) {\n this._service = service\n }\n\n batchWrite(\n data?: ComAtprotoRepoBatchWrite.InputSchema,\n opts?: ComAtprotoRepoBatchWrite.CallOptions,\n ): Promise<ComAtprotoRepoBatchWrite.Response> {\n return this._service.xrpc\n .call('com.atproto.repo.batchWrite', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoRepoBatchWrite.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 describe(\n params?: ComAtprotoRepoDescribe.QueryParams,\n opts?: ComAtprotoRepoDescribe.CallOptions,\n ): Promise<ComAtprotoRepoDescribe.Response> {\n return this._service.xrpc\n .call('com.atproto.repo.describe', params, undefined, opts)\n .catch((e) => {\n throw ComAtprotoRepoDescribe.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\nexport class ReportNS {\n _service: ServiceClient\n\n constructor(service: ServiceClient) {\n this._service = service\n }\n\n create(\n data?: ComAtprotoReportCreate.InputSchema,\n opts?: ComAtprotoReportCreate.CallOptions,\n ): Promise<ComAtprotoReportCreate.Response> {\n return this._service.xrpc\n .call('com.atproto.report.create', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoReportCreate.toKnownErr(e)\n })\n }\n}\n\nexport class ServerNS {\n _service: ServiceClient\n\n constructor(service: ServiceClient) {\n this._service = service\n }\n\n getAccountsConfig(\n params?: ComAtprotoServerGetAccountsConfig.QueryParams,\n opts?: ComAtprotoServerGetAccountsConfig.CallOptions,\n ): Promise<ComAtprotoServerGetAccountsConfig.Response> {\n return this._service.xrpc\n .call('com.atproto.server.getAccountsConfig', params, undefined, opts)\n .catch((e) => {\n throw ComAtprotoServerGetAccountsConfig.toKnownErr(e)\n })\n }\n}\n\nexport class SessionNS {\n _service: ServiceClient\n\n constructor(service: ServiceClient) {\n this._service = service\n }\n\n create(\n data?: ComAtprotoSessionCreate.InputSchema,\n opts?: ComAtprotoSessionCreate.CallOptions,\n ): Promise<ComAtprotoSessionCreate.Response> {\n return this._service.xrpc\n .call('com.atproto.session.create', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoSessionCreate.toKnownErr(e)\n })\n }\n\n delete(\n data?: ComAtprotoSessionDelete.InputSchema,\n opts?: ComAtprotoSessionDelete.CallOptions,\n ): Promise<ComAtprotoSessionDelete.Response> {\n return this._service.xrpc\n .call('com.atproto.session.delete', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoSessionDelete.toKnownErr(e)\n })\n }\n\n get(\n params?: ComAtprotoSessionGet.QueryParams,\n opts?: ComAtprotoSessionGet.CallOptions,\n ): Promise<ComAtprotoSessionGet.Response> {\n return this._service.xrpc\n .call('com.atproto.session.get', params, undefined, opts)\n .catch((e) => {\n throw ComAtprotoSessionGet.toKnownErr(e)\n })\n }\n\n refresh(\n data?: ComAtprotoSessionRefresh.InputSchema,\n opts?: ComAtprotoSessionRefresh.CallOptions,\n ): Promise<ComAtprotoSessionRefresh.Response> {\n return this._service.xrpc\n .call('com.atproto.session.refresh', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoSessionRefresh.toKnownErr(e)\n })\n }\n}\n\nexport class SyncNS {\n _service: ServiceClient\n\n constructor(service: ServiceClient) {\n this._service = service\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\nexport class AppNS {\n _service: ServiceClient\n bsky: BskyNS\n\n constructor(service: ServiceClient) {\n this._service = service\n this.bsky = new BskyNS(service)\n }\n}\n\nexport class BskyNS {\n _service: ServiceClient\n actor: ActorNS\n embed: EmbedNS\n feed: FeedNS\n graph: GraphNS\n notification: NotificationNS\n system: SystemNS\n\n constructor(service: ServiceClient) {\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.system = new SystemNS(service)\n }\n}\n\nexport class ActorNS {\n _service: ServiceClient\n profile: ProfileRecord\n\n constructor(service: ServiceClient) {\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 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 search(\n params?: AppBskyActorSearch.QueryParams,\n opts?: AppBskyActorSearch.CallOptions,\n ): Promise<AppBskyActorSearch.Response> {\n return this._service.xrpc\n .call('app.bsky.actor.search', params, undefined, opts)\n .catch((e) => {\n throw AppBskyActorSearch.toKnownErr(e)\n })\n }\n\n searchTypeahead(\n params?: AppBskyActorSearchTypeahead.QueryParams,\n opts?: AppBskyActorSearchTypeahead.CallOptions,\n ): Promise<AppBskyActorSearchTypeahead.Response> {\n return this._service.xrpc\n .call('app.bsky.actor.searchTypeahead', params, undefined, opts)\n .catch((e) => {\n throw AppBskyActorSearchTypeahead.toKnownErr(e)\n })\n }\n\n updateProfile(\n data?: AppBskyActorUpdateProfile.InputSchema,\n opts?: AppBskyActorUpdateProfile.CallOptions,\n ): Promise<AppBskyActorUpdateProfile.Response> {\n return this._service.xrpc\n .call('app.bsky.actor.updateProfile', opts?.qp, data, opts)\n .catch((e) => {\n throw AppBskyActorUpdateProfile.toKnownErr(e)\n })\n }\n}\n\nexport class ProfileRecord {\n _service: ServiceClient\n\n constructor(service: ServiceClient) {\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', ...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: ServiceClient\n\n constructor(service: ServiceClient) {\n this._service = service\n }\n}\n\nexport class FeedNS {\n _service: ServiceClient\n post: PostRecord\n repost: RepostRecord\n vote: VoteRecord\n\n constructor(service: ServiceClient) {\n this._service = service\n this.post = new PostRecord(service)\n this.repost = new RepostRecord(service)\n this.vote = new VoteRecord(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 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 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 getVotes(\n params?: AppBskyFeedGetVotes.QueryParams,\n opts?: AppBskyFeedGetVotes.CallOptions,\n ): Promise<AppBskyFeedGetVotes.Response> {\n return this._service.xrpc\n .call('app.bsky.feed.getVotes', params, undefined, opts)\n .catch((e) => {\n throw AppBskyFeedGetVotes.toKnownErr(e)\n })\n }\n\n setVote(\n data?: AppBskyFeedSetVote.InputSchema,\n opts?: AppBskyFeedSetVote.CallOptions,\n ): Promise<AppBskyFeedSetVote.Response> {\n return this._service.xrpc\n .call('app.bsky.feed.setVote', opts?.qp, data, opts)\n .catch((e) => {\n throw AppBskyFeedSetVote.toKnownErr(e)\n })\n }\n}\n\nexport class PostRecord {\n _service: ServiceClient\n\n constructor(service: ServiceClient) {\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: ServiceClient\n\n constructor(service: ServiceClient) {\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 VoteRecord {\n _service: ServiceClient\n\n constructor(service: ServiceClient) {\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: AppBskyFeedVote.Record }[]\n }> {\n const res = await this._service.xrpc.call('com.atproto.repo.listRecords', {\n collection: 'app.bsky.feed.vote',\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: AppBskyFeedVote.Record }> {\n const res = await this._service.xrpc.call('com.atproto.repo.getRecord', {\n collection: 'app.bsky.feed.vote',\n ...params,\n })\n return res.data\n }\n\n async create(\n params: Omit<\n ComAtprotoRepoCreateRecord.InputSchema,\n 'collection' | 'record'\n >,\n record: AppBskyFeedVote.Record,\n headers?: Record<string, string>,\n ): Promise<{ uri: string; cid: string }> {\n record.$type = 'app.bsky.feed.vote'\n const res = await this._service.xrpc.call(\n 'com.atproto.repo.createRecord',\n undefined,\n { collection: 'app.bsky.feed.vote', ...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.vote', ...params },\n { headers },\n )\n }\n}\n\nexport class GraphNS {\n _service: ServiceClient\n assertion: AssertionRecord\n confirmation: ConfirmationRecord\n follow: FollowRecord\n\n constructor(service: ServiceClient) {\n this._service = service\n this.assertion = new AssertionRecord(service)\n this.confirmation = new ConfirmationRecord(service)\n this.follow = new FollowRecord(service)\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 mute(\n data?: AppBskyGraphMute.InputSchema,\n opts?: AppBskyGraphMute.CallOptions,\n ): Promise<AppBskyGraphMute.Response> {\n return this._service.xrpc\n .call('app.bsky.graph.mute', opts?.qp, data, opts)\n .catch((e) => {\n throw AppBskyGraphMute.toKnownErr(e)\n })\n }\n\n unmute(\n data?: AppBskyGraphUnmute.InputSchema,\n opts?: AppBskyGraphUnmute.CallOptions,\n ): Promise<AppBskyGraphUnmute.Response> {\n return this._service.xrpc\n .call('app.bsky.graph.unmute', opts?.qp, data, opts)\n .catch((e) => {\n throw AppBskyGraphUnmute.toKnownErr(e)\n })\n }\n}\n\nexport class AssertionRecord {\n _service: ServiceClient\n\n constructor(service: ServiceClient) {\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: AppBskyGraphAssertion.Record }[]\n }> {\n const res = await this._service.xrpc.call('com.atproto.repo.listRecords', {\n collection: 'app.bsky.graph.assertion',\n ...params,\n })\n return res.data\n }\n\n async get(\n params: Omit<ComAtprotoRepoGetRecord.QueryParams, 'collection'>,\n ): Promise<{\n uri: string\n cid: string\n value: AppBskyGraphAssertion.Record\n }> {\n const res = await this._service.xrpc.call('com.atproto.repo.getRecord', {\n collection: 'app.bsky.graph.assertion',\n ...params,\n })\n return res.data\n }\n\n async create(\n params: Omit<\n ComAtprotoRepoCreateRecord.InputSchema,\n 'collection' | 'record'\n >,\n record: AppBskyGraphAssertion.Record,\n headers?: Record<string, string>,\n ): Promise<{ uri: string; cid: string }> {\n record.$type = 'app.bsky.graph.assertion'\n const res = await this._service.xrpc.call(\n 'com.atproto.repo.createRecord',\n undefined,\n { collection: 'app.bsky.graph.assertion', ...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.assertion', ...params },\n { headers },\n )\n }\n}\n\nexport class ConfirmationRecord {\n _service: ServiceClient\n\n constructor(service: ServiceClient) {\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: AppBskyGraphConfirmation.Record }[]\n }> {\n const res = await this._service.xrpc.call('com.atproto.repo.listRecords', {\n collection: 'app.bsky.graph.confirmation',\n ...params,\n })\n return res.data\n }\n\n async get(\n params: Omit<ComAtprotoRepoGetRecord.QueryParams, 'collection'>,\n ): Promise<{\n uri: string\n cid: string\n value: AppBskyGraphConfirmation.Record\n }> {\n const res = await this._service.xrpc.call('com.atproto.repo.getRecord', {\n collection: 'app.bsky.graph.confirmation',\n ...params,\n })\n return res.data\n }\n\n async create(\n params: Omit<\n ComAtprotoRepoCreateRecord.InputSchema,\n 'collection' | 'record'\n >,\n record: AppBskyGraphConfirmation.Record,\n headers?: Record<string, string>,\n ): Promise<{ uri: string; cid: string }> {\n record.$type = 'app.bsky.graph.confirmation'\n const res = await this._service.xrpc.call(\n 'com.atproto.repo.createRecord',\n undefined,\n { collection: 'app.bsky.graph.confirmation', ...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.confirmation', ...params },\n { headers },\n )\n }\n}\n\nexport class FollowRecord {\n _service: ServiceClient\n\n constructor(service: ServiceClient) {\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: ServiceClient\n\n constructor(service: ServiceClient) {\n this._service = service\n }\n\n getCount(\n params?: AppBskyNotificationGetCount.QueryParams,\n opts?: AppBskyNotificationGetCount.CallOptions,\n ): Promise<AppBskyNotificationGetCount.Response> {\n return this._service.xrpc\n .call('app.bsky.notification.getCount', params, undefined, opts)\n .catch((e) => {\n throw AppBskyNotificationGetCount.toKnownErr(e)\n })\n }\n\n list(\n params?: AppBskyNotificationList.QueryParams,\n opts?: AppBskyNotificationList.CallOptions,\n ): Promise<AppBskyNotificationList.Response> {\n return this._service.xrpc\n .call('app.bsky.notification.list', params, undefined, opts)\n .catch((e) => {\n throw AppBskyNotificationList.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 SystemNS {\n _service: ServiceClient\n declaration: DeclarationRecord\n\n constructor(service: ServiceClient) {\n this._service = service\n this.declaration = new DeclarationRecord(service)\n }\n}\n\nexport class DeclarationRecord {\n _service: ServiceClient\n\n constructor(service: ServiceClient) {\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: AppBskySystemDeclaration.Record }[]\n }> {\n const res = await this._service.xrpc.call('com.atproto.repo.listRecords', {\n collection: 'app.bsky.system.declaration',\n ...params,\n })\n return res.data\n }\n\n async get(\n params: Omit<ComAtprotoRepoGetRecord.QueryParams, 'collection'>,\n ): Promise<{\n uri: string\n cid: string\n value: AppBskySystemDeclaration.Record\n }> {\n const res = await this._service.xrpc.call('com.atproto.repo.getRecord', {\n collection: 'app.bsky.system.declaration',\n ...params,\n })\n return res.data\n }\n\n async create(\n params: Omit<\n ComAtprotoRepoCreateRecord.InputSchema,\n 'collection' | 'record'\n >,\n record: AppBskySystemDeclaration.Record,\n headers?: Record<string, string>,\n ): Promise<{ uri: string; cid: string }> {\n record.$type = 'app.bsky.system.declaration'\n const res = await this._service.xrpc.call(\n 'com.atproto.repo.createRecord',\n undefined,\n { collection: 'app.bsky.system.declaration', ...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.system.declaration', ...params },\n { headers },\n )\n }\n}\n", "import {\n CallOptions,\n Client as XrpcClient,\n ServiceClient as XrpcServiceClient,\n QueryParams,\n ResponseType,\n XRPCError,\n XRPCResponse,\n} from '@atproto/xrpc'\nimport EventEmitter from 'events'\nimport TypedEmitter from 'typed-emitter'\nimport { Client, ServiceClient } from './client'\nimport * as CreateSession from './client/types/com/atproto/session/create'\nimport * as RefreshSession from './client/types/com/atproto/session/refresh'\nimport * as CreateAccount from './client/types/com/atproto/session/create'\n\nconst CREATE_SESSION = 'com.atproto.session.create'\nconst REFRESH_SESSION = 'com.atproto.session.refresh'\nconst DELETE_SESSION = 'com.atproto.session.delete'\nconst CREATE_ACCOUNT = 'com.atproto.account.create'\n\nexport class SessionClient extends Client {\n service(serviceUri: string | URL): SessionServiceClient {\n const xrpcService = new SessionXrpcServiceClient(this.xrpc, serviceUri)\n return new SessionServiceClient(this, xrpcService)\n }\n}\n\nconst defaultInst = new SessionClient()\nexport default defaultInst\n\nexport class SessionServiceClient extends ServiceClient {\n xrpc: SessionXrpcServiceClient\n sessionManager: SessionManager\n constructor(baseClient: Client, xrpcService: SessionXrpcServiceClient) {\n super(baseClient, xrpcService)\n this.sessionManager = this.xrpc.sessionManager\n }\n}\n\nexport class SessionXrpcServiceClient extends XrpcServiceClient {\n sessionManager = new SessionManager()\n refreshing?: Promise<XRPCResponse>\n\n constructor(baseClient: XrpcClient, serviceUri: string | URL) {\n super(baseClient, serviceUri)\n this.sessionManager.on('session', () => {\n // Maintain access token headers when session changes\n const accessHeaders = this.sessionManager.accessHeaders()\n if (accessHeaders) {\n this.setHeader('authorization', accessHeaders.authorization)\n } else {\n this.unsetHeader('authorization')\n }\n })\n }\n\n async call(\n methodNsid: string,\n params?: QueryParams,\n data?: unknown,\n opts?: CallOptions,\n ) {\n const original = (overrideOpts?: CallOptions) =>\n super.call(methodNsid, params, data, overrideOpts ?? opts)\n\n // If someone is setting credentials manually, pass through as an escape hatch\n if (opts?.headers?.authorization) {\n return await original()\n }\n\n // Manage concurrent refreshes on session refresh\n if (methodNsid === REFRESH_SESSION) {\n return await this.refresh(opts)\n }\n\n // Complete any pending session refresh and then continue onto the original request with fresh credentials\n await this.refreshing\n\n // Setup session on session or account creation\n if (methodNsid === CREATE_SESSION || methodNsid === CREATE_ACCOUNT) {\n const result = await original()\n const { accessJwt, refreshJwt } =\n result.data as CreateSession.OutputSchema & CreateAccount.OutputSchema\n this.sessionManager.set({ accessJwt, refreshJwt })\n return result\n }\n\n // Clear session on session deletion\n if (methodNsid === DELETE_SESSION) {\n const result = await original({\n ...opts,\n headers: {\n ...opts?.headers,\n ...this.sessionManager.refreshHeaders(),\n },\n })\n this.sessionManager.unset()\n return result\n }\n\n // For all other requests, if failed due to an expired token, refresh and retry with fresh credentials\n try {\n return await original()\n } catch (err) {\n if (\n err instanceof XRPCError &&\n err.status === ResponseType.InvalidRequest &&\n err.error === 'ExpiredToken' &&\n this.sessionManager.active()\n ) {\n await this.refresh(opts)\n return await original()\n }\n throw err\n }\n }\n\n // Ensures a single refresh request at a time, deduping concurrent requests.\n async refresh(opts?: CallOptions) {\n this.refreshing ??= this._refresh(opts)\n try {\n return await this.refreshing\n } finally {\n this.refreshing = undefined\n }\n }\n\n private async _refresh(opts?: CallOptions) {\n try {\n const result = await super.call(REFRESH_SESSION, undefined, undefined, {\n ...opts,\n headers: {\n ...opts?.headers,\n ...this.sessionManager.refreshHeaders(),\n },\n })\n const { accessJwt, refreshJwt } =\n result.data as RefreshSession.OutputSchema\n this.sessionManager.set({ accessJwt, refreshJwt })\n return result\n } catch (err) {\n if (\n err instanceof XRPCError &&\n err.status === ResponseType.InvalidRequest &&\n (err.error === 'ExpiredToken' || err.error === 'InvalidToken')\n ) {\n this.sessionManager.unset()\n }\n throw err\n }\n }\n}\n\nexport class SessionManager extends (EventEmitter as new () => TypedEmitter<SessionEvents>) {\n session?: Session\n get() {\n return this.session\n }\n set(session: Session) {\n this.session = session\n this.emit('session', session)\n }\n unset() {\n this.session = undefined\n this.emit('session', undefined)\n }\n active() {\n return !!this.session\n }\n accessHeaders() {\n return (\n this.session && {\n authorization: `Bearer ${this.session.accessJwt}`,\n }\n )\n }\n refreshHeaders() {\n return (\n this.session && {\n authorization: `Bearer ${this.session.refreshJwt}`,\n }\n )\n }\n}\n\nexport type Session = {\n refreshJwt: string\n accessJwt: string\n}\n\ntype SessionEvents = {\n session: (session?: Session) => void\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["t", "r", "n", "e", "i", "o", "a", "u", "d", "
|
|
3
|
+
"sources": ["../../../node_modules/iso-datestring-validator/dist/index.js", "../src/index.ts", "../../../node_modules/zod/lib/index.mjs", "../../xrpc/src/types.ts", "../../nsid/src/index.ts", "../../lexicon/src/types.ts", "../../lexicon/src/validators/primitives.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", "../../xrpc/src/util.ts", "../../xrpc/src/client.ts", "../../xrpc/src/index.ts", "../src/client/lexicons.ts", "../src/client/types/com/atproto/account/create.ts", "../src/client/types/com/atproto/account/createInviteCode.ts", "../src/client/types/com/atproto/account/delete.ts", "../src/client/types/com/atproto/account/get.ts", "../src/client/types/com/atproto/account/requestDelete.ts", "../src/client/types/com/atproto/account/requestPasswordReset.ts", "../src/client/types/com/atproto/account/resetPassword.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/blob/upload.ts", "../src/client/types/com/atproto/handle/resolve.ts", "../src/client/types/com/atproto/repo/batchWrite.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/describe.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/report/create.ts", "../src/client/types/com/atproto/server/getAccountsConfig.ts", "../src/client/types/com/atproto/session/create.ts", "../src/client/types/com/atproto/session/delete.ts", "../src/client/types/com/atproto/session/get.ts", "../src/client/types/com/atproto/session/refresh.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/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/search.ts", "../src/client/types/app/bsky/actor/searchTypeahead.ts", "../src/client/types/app/bsky/actor/updateProfile.ts", "../src/client/types/app/bsky/feed/getAuthorFeed.ts", "../src/client/types/app/bsky/feed/getPostThread.ts", "../src/client/types/app/bsky/feed/getRepostedBy.ts", "../src/client/types/app/bsky/feed/getTimeline.ts", "../src/client/types/app/bsky/feed/getVotes.ts", "../src/client/types/app/bsky/feed/setVote.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/mute.ts", "../src/client/types/app/bsky/graph/unmute.ts", "../src/client/types/app/bsky/notification/getCount.ts", "../src/client/types/app/bsky/notification/list.ts", "../src/client/types/app/bsky/notification/updateSeen.ts", "../src/client/types/com/atproto/admin/blob.ts", "../src/client/types/com/atproto/admin/moderationAction.ts", "../src/client/types/com/atproto/admin/moderationReport.ts", "../src/client/types/com/atproto/admin/record.ts", "../src/client/types/com/atproto/admin/repo.ts", "../src/client/types/com/atproto/repo/recordRef.ts", "../src/client/types/com/atproto/repo/repoRef.ts", "../src/client/types/com/atproto/repo/strongRef.ts", "../src/client/types/com/atproto/report/reasonType.ts", "../src/client/types/com/atproto/report/subject.ts", "../src/client/types/app/bsky/actor/profile.ts", "../src/client/types/app/bsky/actor/ref.ts", "../src/client/types/app/bsky/embed/external.ts", "../src/client/types/app/bsky/embed/images.ts", "../src/client/types/app/bsky/feed/feedViewPost.ts", "../src/client/types/app/bsky/feed/post.ts", "../src/client/types/app/bsky/feed/repost.ts", "../src/client/types/app/bsky/feed/vote.ts", "../src/client/types/app/bsky/graph/assertCreator.ts", "../src/client/types/app/bsky/graph/assertMember.ts", "../src/client/types/app/bsky/graph/assertion.ts", "../src/client/types/app/bsky/graph/confirmation.ts", "../src/client/types/app/bsky/graph/follow.ts", "../src/client/types/app/bsky/system/actorUser.ts", "../src/client/types/app/bsky/system/declRef.ts", "../src/client/types/app/bsky/system/declaration.ts", "../src/client/index.ts", "../src/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 * from './types'\nexport * from './client'\nexport * from './agent'\nexport { AtpAgent as default } from './agent'\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 { 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", "/*\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\nconst SEGMENT_RE = /^[a-zA-Z]([a-zA-Z0-9-])*$/\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 const segments = nsid.split('.')\n if (segments.length <= 2) {\n throw new Error(`Invalid NSID: ${nsid}`)\n }\n for (let i = 0; i < segments.length; i++) {\n const segment = segments[i]\n if (SEGMENT_RE.test(segment)) {\n continue\n }\n if (i === segments.length - 1 && segment === '*') {\n continue\n }\n throw new Error(`Invalid NSID: invalid character in segment \"${segment}\"`)\n }\n this.segments = segments\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", "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 lexNumber = z.object({\n type: z.literal('number'),\n description: z.string().optional(),\n default: z.number().optional(),\n minimum: z.number().optional(),\n maximum: z.number().optional(),\n enum: z.number().array().optional(),\n const: z.number().optional(),\n})\nexport type LexNumber = z.infer<typeof lexNumber>\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 lexString = z.object({\n type: z.literal('string'),\n description: z.string().optional(),\n default: z.string().optional(),\n minLength: z.number().int().optional(),\n maxLength: 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 lexDatetime = z.object({\n type: z.literal('datetime'),\n description: z.string().optional(),\n})\nexport type LexDatetime = z.infer<typeof lexDatetime>\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.union([\n lexBoolean,\n lexNumber,\n lexInteger,\n lexString,\n lexDatetime,\n lexUnknown,\n])\nexport type LexPrimitive = z.infer<typeof lexPrimitive>\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.union([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\nexport const lexImage = z.object({\n type: z.literal('image'),\n description: z.string().optional(),\n accept: z.string().array().optional(),\n maxSize: z.number().optional(),\n maxWidth: z.number().int().optional(),\n maxHeight: z.number().int().optional(),\n})\nexport type LexImage = z.infer<typeof lexImage>\n\nexport const lexVideo = z.object({\n type: z.literal('video'),\n description: z.string().optional(),\n accept: z.string().array().optional(),\n maxSize: z.number().optional(),\n maxWidth: z.number().int().optional(),\n maxHeight: z.number().int().optional(),\n maxLength: z.number().int().optional(),\n})\nexport type LexVideo = z.infer<typeof lexVideo>\n\nexport const lexAudio = z.object({\n type: z.literal('audio'),\n description: z.string().optional(),\n accept: z.string().array().optional(),\n maxSize: z.number().optional(),\n maxLength: z.number().int().optional(),\n})\nexport type LexAudio = z.infer<typeof lexAudio>\n\nexport const lexBlobVariant = z.union([lexBlob, lexImage, lexVideo, lexAudio])\nexport type LexBlobVariant = z.infer<typeof lexBlobVariant>\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, lexBlobVariant, 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 properties: z\n .record(z.union([lexRefVariant, lexArray, lexBlobVariant, lexPrimitive]))\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 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\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.union([\n lexRecord,\n\n lexXrpcQuery,\n lexXrpcProcedure,\n\n lexBlob,\n lexImage,\n lexVideo,\n lexAudio,\n\n lexArray,\n lexToken,\n lexObject,\n\n lexBoolean,\n lexNumber,\n lexInteger,\n lexString,\n lexDatetime,\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 ) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Records, procedures, and queries 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 interface ValidationResult {\n success: boolean\n error?: ValidationError\n}\n\nexport class ValidationError extends Error {}\nexport class InvalidLexiconError extends Error {}\nexport class LexiconDefNotFoundError extends Error {}\n", "import { isValidISODateString } from 'iso-datestring-validator'\nimport { Lexicons } from '../lexicons'\nimport {\n LexUserType,\n LexBoolean,\n LexNumber,\n LexInteger,\n LexString,\n LexDatetime,\n ValidationResult,\n ValidationError,\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 'number':\n return number(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 'datetime':\n return datetime(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 }\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 }\n}\n\nexport function number(\n lexicons: Lexicons,\n path: string,\n def: LexUserType,\n value: unknown,\n): ValidationResult {\n def = def as LexNumber\n\n // type\n const type = typeof value\n if (type == 'undefined') {\n if (typeof def.default === 'number') {\n return { success: true }\n }\n return {\n success: false,\n error: new ValidationError(`${path} must be a number`),\n }\n } else if (type !== 'number') {\n return {\n success: false,\n error: new ValidationError(`${path} must be a number`),\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 }\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 // run number validation\n const numRes = number(lexicons, path, def, value)\n if (!numRes.success) {\n return numRes\n }\n\n // whole numbers only\n if (!Number.isInteger(value)) {\n return {\n success: false,\n error: new ValidationError(`${path} must be an integer`),\n }\n }\n\n return { success: true }\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 const type = typeof value\n if (type == 'undefined') {\n if (typeof def.default === 'string') {\n return { success: true }\n }\n return {\n success: false,\n error: new ValidationError(`${path} must be a string`),\n }\n } else if (type !== '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 ((value as string).length > 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 ((value as string).length < 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 return { success: true }\n}\n\nexport function datetime(\n lexicons: Lexicons,\n path: string,\n def: LexUserType,\n value: unknown,\n): ValidationResult {\n def = def as LexDatetime\n\n // type\n const type = typeof value\n if (type !== 'string') {\n return {\n success: false,\n error: new ValidationError(`${path} must be a string`),\n }\n }\n\n // valid iso-8601\n {\n try {\n if (typeof value !== 'string' || !isValidISODateString(value)) {\n throw new ValidationError(\n `${path} must be an iso8601 formatted datetime`,\n )\n }\n } catch {\n throw new ValidationError(`${path} must be an iso8601 formatted datetime`)\n }\n }\n\n return { success: true }\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 }\n}\n", "import { Lexicons } from '../lexicons'\nimport { LexUserType, ValidationResult, ValidationError } from '../types'\nimport { isObj, hasProp } from '../types'\n\nexport function blob(\n lexicons: Lexicons,\n path: string,\n def: LexUserType,\n value: unknown,\n): ValidationResult {\n if (!isObj(value)) {\n return {\n success: false,\n error: new ValidationError(`${path} should be an object`),\n }\n }\n if (!hasProp(value, 'cid') || typeof value.cid !== 'string') {\n return {\n success: false,\n error: new ValidationError(`${path}/cid should be a string`),\n }\n }\n if (!hasProp(value, 'mimeType') || typeof value.mimeType !== 'string') {\n return {\n success: false,\n error: new ValidationError(`${path}/mimeType should be a string`),\n }\n }\n return { success: true }\n}\n\nexport function image(\n lexicons: Lexicons,\n path: string,\n def: LexUserType,\n value: unknown,\n): ValidationResult {\n return blob(lexicons, path, def, value)\n}\n\nexport function video(\n lexicons: Lexicons,\n path: string,\n def: LexUserType,\n value: unknown,\n): ValidationResult {\n return blob(lexicons, path, def, value)\n}\n\nexport function audio(\n lexicons: Lexicons,\n path: string,\n def: LexUserType,\n value: unknown,\n): ValidationResult {\n return blob(lexicons, path, def, 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 'number':\n return Primitives.number(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 'datetime':\n return Primitives.datetime(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 case 'image':\n return Blob.image(lexicons, path, def, value)\n case 'video':\n return Blob.video(lexicons, path, def, value)\n case 'audio':\n return Blob.audio(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 }\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 // required\n if (Array.isArray(def.required)) {\n for (const key of def.required) {\n if (typeof value[key] === 'undefined') {\n return {\n success: false,\n error: new ValidationError(`${path} must have the property \"${key}\"`),\n }\n }\n }\n }\n\n // properties\n if (typeof def.properties === 'object') {\n for (const key in def.properties) {\n const propValue = value[key]\n if (typeof propValue === 'undefined') {\n continue // skip- if required, will have already failed\n }\n const propDef = def.properties[key]\n const propPath = `${path}/${key}`\n const res = validateOneOf(lexicons, propPath, propDef, propValue)\n if (!res.success) {\n return res\n }\n }\n }\n\n return { success: true }\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 }\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) {\n throw res.error\n }\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 value: unknown,\n): ValidationResult {\n // type\n if (!value || typeof value !== 'object') {\n // in this case, we just fall back to an object\n value = {}\n }\n\n // required\n if (Array.isArray(def.required)) {\n for (const key of def.required) {\n if (typeof (value as Record<string, unknown>)[key] === 'undefined') {\n return {\n success: false,\n error: new ValidationError(`${path} must have the property \"${key}\"`),\n }\n }\n }\n }\n\n // properties\n for (const key in def.properties) {\n if (typeof (value as Record<string, unknown>)[key] === 'undefined') {\n continue // skip- if required, will have already failed\n }\n const paramDef = def.properties[key]\n const val = (value as Record<string, unknown>)[key]\n const res =\n paramDef.type === 'array'\n ? array(lexicons, key, paramDef, val)\n : PrimitiveValidators.validate(lexicons, key, paramDef, val)\n if (!res.success) {\n return res\n }\n }\n\n return { success: true }\n}\n", "import { Lexicons } from './lexicons'\nimport { LexRecord, LexXrpcProcedure, LexXrpcQuery } 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}\n\nexport function assertValidXrpcParams(\n lexicons: Lexicons,\n def: LexXrpcProcedure | LexXrpcQuery,\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 }\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 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 assertValidOneOf(lexicons, 'Output', def.output.schema, value, true)\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} from './types'\nimport {\n assertValidRecord,\n assertValidXrpcParams,\n assertValidXrpcInput,\n assertValidXrpcOutput,\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 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, ['query', 'procedure'])\n assertValidXrpcParams(this, def as LexXrpcProcedure | LexXrpcQuery, value)\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 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 assertValidXrpcOutput(this, def as LexXrpcProcedure | LexXrpcQuery, value)\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 { LexXrpcProcedure, LexXrpcQuery } 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 | 'number'\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 === 'number') {\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(JSON.stringify(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 JSON.parse(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 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 ComAtprotoAccountCreate: {\n lexicon: 1,\n id: 'com.atproto.account.create',\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 },\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 },\n did: {\n type: 'string',\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 },\n },\n },\n ComAtprotoAccountCreateInviteCode: {\n lexicon: 1,\n id: 'com.atproto.account.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 },\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 ComAtprotoAccountDelete: {\n lexicon: 1,\n id: 'com.atproto.account.delete',\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 },\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 ComAtprotoAccountGet: {\n lexicon: 1,\n id: 'com.atproto.account.get',\n defs: {\n main: {\n type: 'query',\n description: 'Get information about an account.',\n },\n },\n },\n ComAtprotoAccountRequestDelete: {\n lexicon: 1,\n id: 'com.atproto.account.requestDelete',\n defs: {\n main: {\n type: 'procedure',\n description: 'Initiate a user account deletion via email.',\n },\n },\n },\n ComAtprotoAccountRequestPasswordReset: {\n lexicon: 1,\n id: 'com.atproto.account.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 ComAtprotoAccountResetPassword: {\n lexicon: 1,\n id: 'com.atproto.account.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 ComAtprotoAdminBlob: {\n lexicon: 1,\n id: 'com.atproto.admin.blob',\n defs: {\n view: {\n type: 'object',\n required: ['cid', 'mimeType', 'size', 'createdAt'],\n properties: {\n cid: {\n type: 'string',\n },\n mimeType: {\n type: 'string',\n },\n size: {\n type: 'integer',\n },\n createdAt: {\n type: 'datetime',\n },\n details: {\n type: 'union',\n refs: [\n 'lex:com.atproto.admin.blob#imageDetails',\n 'lex:com.atproto.admin.blob#videoDetails',\n ],\n },\n moderation: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.blob#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 moderation: {\n type: 'object',\n required: [],\n properties: {\n currentAction: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.moderationAction#viewCurrent',\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: 'number',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.moderationAction#viewDetail',\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 before: {\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.moderationAction#view',\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: 'number',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.moderationReport#viewDetail',\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 before: {\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.moderationReport#view',\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 },\n cid: {\n type: 'string',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.record#viewDetail',\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 },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.repo#viewDetail',\n },\n },\n },\n },\n },\n ComAtprotoAdminModerationAction: {\n lexicon: 1,\n id: 'com.atproto.admin.moderationAction',\n defs: {\n view: {\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.moderationAction#actionType',\n },\n subject: {\n type: 'union',\n refs: [\n 'lex:com.atproto.repo.repoRef',\n 'lex:com.atproto.repo.strongRef',\n ],\n },\n subjectBlobCids: {\n type: 'array',\n items: {\n type: 'string',\n },\n },\n reason: {\n type: 'string',\n },\n createdBy: {\n type: 'string',\n },\n createdAt: {\n type: 'string',\n },\n reversal: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.moderationAction#reversal',\n },\n resolvedReportIds: {\n type: 'array',\n items: {\n type: 'integer',\n },\n },\n },\n },\n viewDetail: {\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.moderationAction#actionType',\n },\n subject: {\n type: 'union',\n refs: [\n 'lex:com.atproto.admin.repo#view',\n 'lex:com.atproto.admin.record#view',\n ],\n },\n subjectBlobs: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.blob#view',\n },\n },\n reason: {\n type: 'string',\n },\n createdBy: {\n type: 'string',\n },\n createdAt: {\n type: 'string',\n },\n reversal: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.moderationAction#reversal',\n },\n resolvedReports: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.moderationReport#view',\n },\n },\n },\n },\n viewCurrent: {\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.moderationAction#actionType',\n },\n },\n },\n reversal: {\n type: 'object',\n required: ['reason', 'createdBy', 'createdAt'],\n properties: {\n reason: {\n type: 'string',\n },\n createdBy: {\n type: 'string',\n },\n createdAt: {\n type: 'string',\n },\n },\n },\n actionType: {\n type: 'string',\n knownValues: [\n 'com.atproto.admin.moderationAction#takedown',\n 'com.atproto.admin.moderationAction#flag',\n 'com.atproto.admin.moderationAction#acknowledge',\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 },\n },\n ComAtprotoAdminModerationReport: {\n lexicon: 1,\n id: 'com.atproto.admin.moderationReport',\n defs: {\n view: {\n type: 'object',\n required: [\n 'id',\n 'reasonType',\n 'subject',\n 'reportedByDid',\n 'createdAt',\n 'resolvedByActionIds',\n ],\n properties: {\n id: {\n type: 'integer',\n },\n reasonType: {\n type: 'ref',\n ref: 'lex:com.atproto.report.reasonType',\n },\n reason: {\n type: 'string',\n },\n subject: {\n type: 'union',\n refs: [\n 'lex:com.atproto.repo.repoRef',\n 'lex:com.atproto.repo.strongRef',\n ],\n },\n reportedByDid: {\n type: 'string',\n },\n createdAt: {\n type: 'datetime',\n },\n resolvedByActionIds: {\n type: 'array',\n items: {\n type: 'integer',\n },\n },\n },\n },\n viewDetail: {\n type: 'object',\n required: [\n 'id',\n 'reasonType',\n 'subject',\n 'reportedByDid',\n 'createdAt',\n 'resolvedByActions',\n ],\n properties: {\n id: {\n type: 'integer',\n },\n reasonType: {\n type: 'ref',\n ref: 'lex:com.atproto.report.reasonType',\n },\n reason: {\n type: 'string',\n },\n subject: {\n type: 'union',\n refs: [\n 'lex:com.atproto.admin.repo#view',\n 'lex:com.atproto.admin.record#view',\n ],\n },\n reportedByDid: {\n type: 'string',\n },\n createdAt: {\n type: 'datetime',\n },\n resolvedByActions: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.moderationAction#view',\n },\n },\n },\n },\n },\n },\n ComAtprotoAdminRecord: {\n lexicon: 1,\n id: 'com.atproto.admin.record',\n defs: {\n view: {\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 },\n cid: {\n type: 'string',\n },\n value: {\n type: 'unknown',\n },\n blobCids: {\n type: 'array',\n items: {\n type: 'string',\n },\n },\n indexedAt: {\n type: 'string',\n },\n moderation: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.record#moderation',\n },\n repo: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.repo#view',\n },\n },\n },\n viewDetail: {\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 },\n cid: {\n type: 'string',\n },\n value: {\n type: 'unknown',\n },\n blobs: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.blob#view',\n },\n },\n indexedAt: {\n type: 'string',\n },\n moderation: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.record#moderationDetail',\n },\n repo: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.repo#view',\n },\n },\n },\n moderation: {\n type: 'object',\n required: [],\n properties: {\n currentAction: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.moderationAction#viewCurrent',\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.moderationAction#viewCurrent',\n },\n actions: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.moderationAction#view',\n },\n },\n reports: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.moderationReport#view',\n },\n },\n },\n },\n },\n },\n ComAtprotoAdminRepo: {\n lexicon: 1,\n id: 'com.atproto.admin.repo',\n defs: {\n view: {\n type: 'object',\n required: [\n 'did',\n 'handle',\n 'relatedRecords',\n 'indexedAt',\n 'moderation',\n ],\n properties: {\n did: {\n type: 'string',\n },\n handle: {\n type: 'string',\n },\n account: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.repo#account',\n },\n relatedRecords: {\n type: 'array',\n items: {\n type: 'unknown',\n },\n },\n indexedAt: {\n type: 'string',\n },\n moderation: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.repo#moderation',\n },\n },\n },\n viewDetail: {\n type: 'object',\n required: [\n 'did',\n 'handle',\n 'relatedRecords',\n 'indexedAt',\n 'moderation',\n ],\n properties: {\n did: {\n type: 'string',\n },\n handle: {\n type: 'string',\n },\n account: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.repo#account',\n },\n relatedRecords: {\n type: 'array',\n items: {\n type: 'unknown',\n },\n },\n indexedAt: {\n type: 'string',\n },\n moderation: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.repo#moderationDetail',\n },\n },\n },\n account: {\n type: 'object',\n required: ['email'],\n properties: {\n email: {\n type: 'string',\n },\n },\n },\n moderation: {\n type: 'object',\n required: [],\n properties: {\n currentAction: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.moderationAction#viewCurrent',\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.moderationAction#viewCurrent',\n },\n actions: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.moderationAction#view',\n },\n },\n reports: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.moderationReport#view',\n },\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 },\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.moderationAction#view',\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 },\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.moderationAction#view',\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 limit: {\n type: 'integer',\n minimum: 1,\n maximum: 100,\n default: 50,\n },\n before: {\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.repo#view',\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.moderationAction#takedown',\n 'com.atproto.admin.moderationAction#flag',\n 'com.atproto.admin.moderationAction#acknowledge',\n ],\n },\n subject: {\n type: 'union',\n refs: [\n 'lex:com.atproto.repo.repoRef',\n 'lex:com.atproto.repo.recordRef',\n ],\n },\n subjectBlobCids: {\n type: 'array',\n items: {\n type: 'string',\n },\n },\n reason: {\n type: 'string',\n },\n createdBy: {\n type: 'string',\n },\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'ref',\n ref: 'lex:com.atproto.admin.moderationAction#view',\n },\n },\n errors: [\n {\n name: 'SubjectHasAction',\n },\n ],\n },\n },\n },\n ComAtprotoBlobUpload: {\n lexicon: 1,\n id: 'com.atproto.blob.upload',\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: ['cid'],\n properties: {\n cid: {\n type: 'string',\n },\n },\n },\n },\n },\n },\n },\n ComAtprotoHandleResolve: {\n lexicon: 1,\n id: 'com.atproto.handle.resolve',\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 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 },\n },\n },\n },\n },\n },\n },\n ComAtprotoRepoBatchWrite: {\n lexicon: 1,\n id: 'com.atproto.repo.batchWrite',\n defs: {\n main: {\n type: 'procedure',\n description: 'Apply a batch transaction of creates, puts, and deletes.',\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['did', 'writes'],\n properties: {\n did: {\n type: 'string',\n description: 'The 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.batchWrite#create',\n 'lex:com.atproto.repo.batchWrite#update',\n 'lex:com.atproto.repo.batchWrite#delete',\n ],\n closed: true,\n },\n },\n },\n },\n },\n },\n create: {\n type: 'object',\n required: ['action', 'collection', 'value'],\n properties: {\n action: {\n type: 'string',\n const: 'create',\n },\n collection: {\n type: 'string',\n },\n rkey: {\n type: 'string',\n },\n value: {\n type: 'unknown',\n },\n },\n },\n update: {\n type: 'object',\n required: ['action', 'collection', 'rkey', 'value'],\n properties: {\n action: {\n type: 'string',\n const: 'update',\n },\n collection: {\n type: 'string',\n },\n rkey: {\n type: 'string',\n },\n value: {\n type: 'unknown',\n },\n },\n },\n delete: {\n type: 'object',\n required: ['action', 'collection', 'rkey'],\n properties: {\n action: {\n type: 'string',\n const: 'delete',\n },\n collection: {\n type: 'string',\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: ['did', 'collection', 'record'],\n properties: {\n did: {\n type: 'string',\n description: 'The DID of the repo.',\n },\n collection: {\n type: 'string',\n description: 'The NSID of the record collection.',\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 },\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 },\n cid: {\n type: 'string',\n },\n },\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.',\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['did', 'collection', 'rkey'],\n properties: {\n did: {\n type: 'string',\n description: 'The DID of the repo.',\n },\n collection: {\n type: 'string',\n description: 'The NSID of the record collection.',\n },\n rkey: {\n type: 'string',\n description: 'The key of the record.',\n },\n },\n },\n },\n },\n },\n },\n ComAtprotoRepoDescribe: {\n lexicon: 1,\n id: 'com.atproto.repo.describe',\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: ['user'],\n properties: {\n user: {\n type: 'string',\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 },\n did: {\n type: 'string',\n },\n didDoc: {\n type: 'unknown',\n },\n collections: {\n type: 'array',\n items: {\n type: 'string',\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: 'Fetch a record.',\n parameters: {\n type: 'params',\n required: ['user', 'collection', 'rkey'],\n properties: {\n user: {\n type: 'string',\n description: 'The handle or DID of the repo.',\n },\n collection: {\n type: 'string',\n description: 'The NSID of the collection.',\n },\n rkey: {\n type: 'string',\n description: 'The key of the record.',\n },\n cid: {\n type: 'string',\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 },\n cid: {\n type: 'string',\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: ['user', 'collection'],\n properties: {\n user: {\n type: 'string',\n description: 'The handle or DID of the repo.',\n },\n collection: {\n type: 'string',\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 before: {\n type: 'string',\n description: 'A TID to filter the range of records returned.',\n },\n after: {\n type: 'string',\n description: 'A TID to filter the range of records returned.',\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 },\n cid: {\n type: 'string',\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.',\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['did', 'collection', 'rkey', 'record'],\n properties: {\n did: {\n type: 'string',\n description: 'The DID of the repo.',\n },\n collection: {\n type: 'string',\n description: 'The NSID of the record type.',\n },\n rkey: {\n type: 'string',\n description: 'The TID 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 },\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 },\n cid: {\n type: 'string',\n },\n },\n },\n },\n },\n },\n },\n ComAtprotoRepoRecordRef: {\n lexicon: 1,\n id: 'com.atproto.repo.recordRef',\n description: 'A URI with optional content-hash fingerprint.',\n defs: {\n main: {\n type: 'object',\n required: ['uri'],\n properties: {\n uri: {\n type: 'string',\n },\n cid: {\n type: 'string',\n },\n },\n },\n },\n },\n ComAtprotoRepoRepoRef: {\n lexicon: 1,\n id: 'com.atproto.repo.repoRef',\n description: 'A did identifying a repository.',\n defs: {\n main: {\n type: 'object',\n required: ['did'],\n properties: {\n did: {\n type: 'string',\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 },\n cid: {\n type: 'string',\n },\n },\n },\n },\n },\n ComAtprotoReportCreate: {\n lexicon: 1,\n id: 'com.atproto.report.create',\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.report.reasonType',\n },\n reason: {\n type: 'string',\n },\n subject: {\n type: 'union',\n refs: [\n 'lex:com.atproto.repo.repoRef',\n 'lex:com.atproto.repo.recordRef',\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 'reportedByDid',\n 'createdAt',\n ],\n properties: {\n id: {\n type: 'integer',\n },\n reasonType: {\n type: 'ref',\n ref: 'lex:com.atproto.report.reasonType',\n },\n reason: {\n type: 'string',\n },\n subject: {\n type: 'union',\n refs: [\n 'lex:com.atproto.repo.repoRef',\n 'lex:com.atproto.repo.strongRef',\n ],\n },\n reportedByDid: {\n type: 'string',\n },\n createdAt: {\n type: 'datetime',\n },\n },\n },\n },\n },\n },\n },\n ComAtprotoReportReasonType: {\n lexicon: 1,\n id: 'com.atproto.report.reasonType',\n defs: {\n main: {\n type: 'string',\n knownValues: [\n 'com.atproto.report.reason#spam',\n 'com.atproto.report.reason#other',\n ],\n },\n spam: {\n type: 'token',\n description: 'Moderation report reason: Spam.',\n },\n other: {\n type: 'token',\n description: 'Moderation report reason: Other.',\n },\n },\n },\n ComAtprotoReportSubject: {\n lexicon: 1,\n id: 'com.atproto.report.subject',\n defs: {\n repo: {\n type: 'object',\n required: ['did'],\n properties: {\n did: {\n type: 'string',\n description: 'The DID of the repo.',\n },\n },\n },\n record: {\n type: 'object',\n required: ['did', 'collection', 'rkey'],\n properties: {\n did: {\n type: 'string',\n description: 'The DID of the repo.',\n },\n collection: {\n type: 'string',\n description: 'The NSID of the collection.',\n },\n rkey: {\n type: 'string',\n description: 'The key of the record.',\n },\n cid: {\n type: 'string',\n description:\n 'The CID of the version of the record. If not specified, defaults to the most recent version.',\n },\n },\n },\n recordRef: {\n type: 'object',\n required: ['uri', 'cid'],\n properties: {\n uri: {\n type: 'string',\n },\n cid: {\n type: 'string',\n },\n },\n },\n },\n },\n ComAtprotoServerGetAccountsConfig: {\n lexicon: 1,\n id: 'com.atproto.server.getAccountsConfig',\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.getAccountsConfig#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 ComAtprotoSessionCreate: {\n lexicon: 1,\n id: 'com.atproto.session.create',\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: ['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 },\n did: {\n type: 'string',\n },\n },\n },\n },\n errors: [\n {\n name: 'AccountTakedown',\n },\n ],\n },\n },\n },\n ComAtprotoSessionDelete: {\n lexicon: 1,\n id: 'com.atproto.session.delete',\n defs: {\n main: {\n type: 'procedure',\n description: 'Delete the current session.',\n },\n },\n },\n ComAtprotoSessionGet: {\n lexicon: 1,\n id: 'com.atproto.session.get',\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 },\n did: {\n type: 'string',\n },\n },\n },\n },\n },\n },\n },\n ComAtprotoSessionRefresh: {\n lexicon: 1,\n id: 'com.atproto.session.refresh',\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 },\n did: {\n type: 'string',\n },\n },\n },\n },\n errors: [\n {\n name: 'AccountTakedown',\n },\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 description: 'The DID of the repo.',\n },\n commit: {\n type: 'string',\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 description: 'The DID of the repo.',\n },\n latest: {\n type: 'string',\n description: 'The most recent commit',\n },\n earliest: {\n type: 'string',\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 },\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 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 },\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 description: 'The DID of the repo.',\n },\n collection: {\n type: 'string',\n },\n rkey: {\n type: 'string',\n },\n commit: {\n type: 'string',\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 description: 'The DID of the repo.',\n },\n earliest: {\n type: 'string',\n description:\n 'The earliest commit in the commit range (not inclusive)',\n },\n latest: {\n type: 'string',\n description:\n 'The latest commit you in the commit range (inclusive',\n },\n },\n },\n output: {\n encoding: 'application/vnd.ipld.car',\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 },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: [\n 'did',\n 'declaration',\n 'handle',\n 'creator',\n 'followersCount',\n 'followsCount',\n 'postsCount',\n ],\n properties: {\n did: {\n type: 'string',\n },\n declaration: {\n type: 'ref',\n ref: 'lex:app.bsky.system.declRef',\n },\n handle: {\n type: 'string',\n },\n creator: {\n type: 'string',\n },\n displayName: {\n type: 'string',\n maxLength: 64,\n },\n description: {\n type: 'string',\n maxLength: 256,\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 myState: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.getProfile#myState',\n },\n },\n },\n },\n },\n myState: {\n type: 'object',\n properties: {\n follow: {\n type: 'string',\n },\n muted: {\n type: 'boolean',\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 },\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.profile#view',\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.getSuggestions#actor',\n },\n },\n },\n },\n },\n },\n actor: {\n type: 'object',\n required: ['did', 'declaration', 'handle'],\n properties: {\n did: {\n type: 'string',\n },\n declaration: {\n type: 'ref',\n ref: 'lex:app.bsky.system.declRef',\n },\n handle: {\n type: 'string',\n },\n displayName: {\n type: 'string',\n maxLength: 64,\n },\n description: {\n type: 'string',\n },\n avatar: {\n type: 'string',\n },\n indexedAt: {\n type: 'datetime',\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 required: ['displayName'],\n properties: {\n displayName: {\n type: 'string',\n maxLength: 64,\n },\n description: {\n type: 'string',\n maxLength: 256,\n },\n avatar: {\n type: 'image',\n accept: ['image/png', 'image/jpeg'],\n maxWidth: 2000,\n maxHeight: 2000,\n maxSize: 1000000,\n },\n banner: {\n type: 'image',\n accept: ['image/png', 'image/jpeg'],\n maxWidth: 6000,\n maxHeight: 2000,\n maxSize: 1000000,\n },\n },\n },\n },\n view: {\n type: 'object',\n required: [\n 'did',\n 'declaration',\n 'handle',\n 'creator',\n 'followersCount',\n 'followsCount',\n 'postsCount',\n ],\n properties: {\n did: {\n type: 'string',\n },\n declaration: {\n type: 'ref',\n ref: 'lex:app.bsky.system.declRef',\n },\n handle: {\n type: 'string',\n },\n creator: {\n type: 'string',\n },\n displayName: {\n type: 'string',\n maxLength: 64,\n },\n description: {\n type: 'string',\n maxLength: 256,\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 myState: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.profile#myState',\n },\n },\n },\n myState: {\n type: 'object',\n properties: {\n follow: {\n type: 'string',\n },\n muted: {\n type: 'boolean',\n },\n },\n },\n },\n },\n AppBskyActorRef: {\n lexicon: 1,\n id: 'app.bsky.actor.ref',\n description: 'A reference to an actor in the network.',\n defs: {\n main: {\n type: 'object',\n required: ['did', 'declarationCid'],\n properties: {\n did: {\n type: 'string',\n },\n declarationCid: {\n type: 'string',\n },\n },\n },\n withInfo: {\n type: 'object',\n required: ['did', 'declaration', 'handle'],\n properties: {\n did: {\n type: 'string',\n },\n declaration: {\n type: 'ref',\n ref: 'lex:app.bsky.system.declRef',\n },\n handle: {\n type: 'string',\n },\n displayName: {\n type: 'string',\n maxLength: 64,\n },\n avatar: {\n type: 'string',\n },\n viewer: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.ref#viewerState',\n },\n },\n },\n viewerState: {\n type: 'object',\n properties: {\n muted: {\n type: 'boolean',\n },\n },\n },\n },\n },\n AppBskyActorSearch: {\n lexicon: 1,\n id: 'app.bsky.actor.search',\n defs: {\n main: {\n type: 'query',\n description: 'Find users 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 before: {\n type: 'string',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['users'],\n properties: {\n cursor: {\n type: 'string',\n },\n users: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.search#user',\n },\n },\n },\n },\n },\n },\n user: {\n type: 'object',\n required: ['did', 'declaration', 'handle'],\n properties: {\n did: {\n type: 'string',\n },\n declaration: {\n type: 'ref',\n ref: 'lex:app.bsky.system.declRef',\n },\n handle: {\n type: 'string',\n },\n displayName: {\n type: 'string',\n maxLength: 64,\n },\n avatar: {\n type: 'string',\n },\n description: {\n type: 'string',\n },\n indexedAt: {\n type: 'datetime',\n },\n },\n },\n },\n },\n AppBskyActorSearchTypeahead: {\n lexicon: 1,\n id: 'app.bsky.actor.searchTypeahead',\n defs: {\n main: {\n type: 'query',\n description: 'Find user 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: ['users'],\n properties: {\n users: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.searchTypeahead#user',\n },\n },\n },\n },\n },\n },\n user: {\n type: 'object',\n required: ['did', 'declaration', 'handle'],\n properties: {\n did: {\n type: 'string',\n },\n declaration: {\n type: 'ref',\n ref: 'lex:app.bsky.system.declRef',\n },\n handle: {\n type: 'string',\n },\n displayName: {\n type: 'string',\n maxLength: 64,\n },\n avatar: {\n type: 'string',\n },\n },\n },\n },\n },\n AppBskyActorUpdateProfile: {\n lexicon: 1,\n id: 'app.bsky.actor.updateProfile',\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 properties: {\n displayName: {\n type: 'string',\n maxLength: 64,\n },\n description: {\n type: 'string',\n maxLength: 256,\n },\n avatar: {\n type: 'image',\n accept: ['image/png', 'image/jpeg'],\n maxWidth: 500,\n maxHeight: 500,\n maxSize: 100000,\n },\n banner: {\n type: 'image',\n accept: ['image/png', 'image/jpeg'],\n maxWidth: 1500,\n maxHeight: 500,\n maxSize: 500000,\n },\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['uri', 'cid', 'record'],\n properties: {\n uri: {\n type: 'string',\n },\n cid: {\n type: 'string',\n },\n record: {\n type: 'unknown',\n },\n },\n },\n },\n errors: [\n {\n name: 'InvalidBlob',\n },\n {\n name: 'BlobTooLarge',\n },\n {\n name: 'InvalidMimeType',\n },\n {\n name: 'InvalidImageDimensions',\n },\n ],\n },\n },\n },\n AppBskyEmbedExternal: {\n lexicon: 1,\n id: 'app.bsky.embed.external',\n description:\n 'An 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 },\n title: {\n type: 'string',\n },\n description: {\n type: 'string',\n },\n thumb: {\n type: 'image',\n accept: ['image/*'],\n maxWidth: 2000,\n maxHeight: 2000,\n maxSize: 1000000,\n },\n },\n },\n presented: {\n type: 'object',\n required: ['external'],\n properties: {\n external: {\n type: 'ref',\n ref: 'lex:app.bsky.embed.external#presentedExternal',\n },\n },\n },\n presentedExternal: {\n type: 'object',\n required: ['uri', 'title', 'description'],\n properties: {\n uri: {\n type: 'string',\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: 'image',\n accept: ['image/*'],\n maxWidth: 2000,\n maxHeight: 2000,\n maxSize: 1000000,\n },\n alt: {\n type: 'string',\n },\n },\n },\n presented: {\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#presentedImage',\n },\n maxLength: 4,\n },\n },\n },\n presentedImage: {\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 AppBskyFeedFeedViewPost: {\n lexicon: 1,\n id: 'app.bsky.feed.feedViewPost',\n defs: {\n main: {\n type: 'object',\n required: ['post'],\n properties: {\n post: {\n type: 'ref',\n ref: 'lex:app.bsky.feed.post#view',\n },\n reply: {\n type: 'ref',\n ref: 'lex:app.bsky.feed.feedViewPost#replyRef',\n },\n reason: {\n type: 'union',\n refs: ['lex:app.bsky.feed.feedViewPost#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.post#view',\n },\n parent: {\n type: 'ref',\n ref: 'lex:app.bsky.feed.post#view',\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.ref#withInfo',\n },\n indexedAt: {\n type: 'datetime',\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 a user's feed.\",\n parameters: {\n type: 'params',\n required: ['author'],\n properties: {\n author: {\n type: 'string',\n },\n limit: {\n type: 'integer',\n minimum: 1,\n maximum: 100,\n default: 50,\n },\n before: {\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.feedViewPost',\n },\n },\n },\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 },\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.getPostThread#threadViewPost',\n 'lex:app.bsky.feed.getPostThread#notFoundPost',\n ],\n },\n },\n },\n },\n errors: [\n {\n name: 'NotFound',\n },\n ],\n },\n threadViewPost: {\n type: 'object',\n required: ['post'],\n properties: {\n post: {\n type: 'ref',\n ref: 'lex:app.bsky.feed.post#view',\n },\n parent: {\n type: 'union',\n refs: [\n 'lex:app.bsky.feed.getPostThread#threadViewPost',\n 'lex:app.bsky.feed.getPostThread#notFoundPost',\n ],\n },\n replies: {\n type: 'array',\n items: {\n type: 'union',\n refs: [\n 'lex:app.bsky.feed.getPostThread#threadViewPost',\n 'lex:app.bsky.feed.getPostThread#notFoundPost',\n ],\n },\n },\n },\n },\n notFoundPost: {\n type: 'object',\n required: ['uri', 'notFound'],\n properties: {\n uri: {\n type: 'string',\n },\n notFound: {\n type: 'boolean',\n const: true,\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 },\n cid: {\n type: 'string',\n },\n limit: {\n type: 'integer',\n minimum: 1,\n maximum: 100,\n default: 50,\n },\n before: {\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 },\n cid: {\n type: 'string',\n },\n cursor: {\n type: 'string',\n },\n repostedBy: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.feed.getRepostedBy#repostedBy',\n },\n },\n },\n },\n },\n },\n repostedBy: {\n type: 'object',\n required: ['did', 'declaration', 'handle', 'indexedAt'],\n properties: {\n did: {\n type: 'string',\n },\n declaration: {\n type: 'ref',\n ref: 'lex:app.bsky.system.declRef',\n },\n handle: {\n type: 'string',\n },\n displayName: {\n type: 'string',\n maxLength: 64,\n },\n avatar: {\n type: 'string',\n },\n createdAt: {\n type: 'datetime',\n },\n indexedAt: {\n type: 'datetime',\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 before: {\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.feedViewPost',\n },\n },\n },\n },\n },\n },\n },\n },\n AppBskyFeedGetVotes: {\n lexicon: 1,\n id: 'app.bsky.feed.getVotes',\n defs: {\n main: {\n type: 'query',\n parameters: {\n type: 'params',\n required: ['uri'],\n properties: {\n uri: {\n type: 'string',\n },\n cid: {\n type: 'string',\n },\n direction: {\n type: 'string',\n enum: ['up', 'down'],\n },\n limit: {\n type: 'integer',\n minimum: 1,\n maximum: 100,\n default: 50,\n },\n before: {\n type: 'string',\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['uri', 'votes'],\n properties: {\n uri: {\n type: 'string',\n },\n cid: {\n type: 'string',\n },\n cursor: {\n type: 'string',\n },\n votes: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.feed.getVotes#vote',\n },\n },\n },\n },\n },\n },\n vote: {\n type: 'object',\n required: ['direction', 'indexedAt', 'createdAt', 'actor'],\n properties: {\n direction: {\n type: 'string',\n enum: ['up', 'down'],\n },\n indexedAt: {\n type: 'datetime',\n },\n createdAt: {\n type: 'datetime',\n },\n actor: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.ref#withInfo',\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: 256,\n },\n entities: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.feed.post#entity',\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 ],\n },\n createdAt: {\n type: '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 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:\n \"Expected values are 'mention', 'hashtag', and 'link'.\",\n },\n value: {\n type: 'string',\n },\n },\n },\n textSlice: {\n type: 'object',\n description: 'A text segment. Start is inclusive, end is exclusive.',\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 view: {\n type: 'object',\n required: [\n 'uri',\n 'cid',\n 'author',\n 'record',\n 'replyCount',\n 'repostCount',\n 'upvoteCount',\n 'downvoteCount',\n 'indexedAt',\n 'viewer',\n ],\n properties: {\n uri: {\n type: 'string',\n },\n cid: {\n type: 'string',\n },\n author: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.ref#withInfo',\n },\n record: {\n type: 'unknown',\n },\n embed: {\n type: 'union',\n refs: [\n 'lex:app.bsky.embed.images#presented',\n 'lex:app.bsky.embed.external#presented',\n ],\n },\n replyCount: {\n type: 'integer',\n },\n repostCount: {\n type: 'integer',\n },\n upvoteCount: {\n type: 'integer',\n },\n downvoteCount: {\n type: 'integer',\n },\n indexedAt: {\n type: 'datetime',\n },\n viewer: {\n type: 'ref',\n ref: 'lex:app.bsky.feed.post#viewerState',\n },\n },\n },\n viewerState: {\n type: 'object',\n properties: {\n repost: {\n type: 'string',\n },\n upvote: {\n type: 'string',\n },\n downvote: {\n type: 'string',\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: 'datetime',\n },\n },\n },\n },\n },\n },\n AppBskyFeedSetVote: {\n lexicon: 1,\n id: 'app.bsky.feed.setVote',\n defs: {\n main: {\n type: 'procedure',\n description: \"Upvote, downvote, or clear the user's vote for a post.\",\n input: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n required: ['subject', 'direction'],\n properties: {\n subject: {\n type: 'ref',\n ref: 'lex:com.atproto.repo.strongRef',\n },\n direction: {\n type: 'string',\n enum: ['up', 'down', 'none'],\n },\n },\n },\n },\n output: {\n encoding: 'application/json',\n schema: {\n type: 'object',\n properties: {\n upvote: {\n type: 'string',\n },\n downvote: {\n type: 'string',\n },\n },\n },\n },\n },\n },\n },\n AppBskyFeedVote: {\n lexicon: 1,\n id: 'app.bsky.feed.vote',\n defs: {\n main: {\n type: 'record',\n key: 'tid',\n record: {\n type: 'object',\n required: ['subject', 'direction', 'createdAt'],\n properties: {\n subject: {\n type: 'ref',\n ref: 'lex:com.atproto.repo.strongRef',\n },\n direction: {\n type: 'string',\n enum: ['up', 'down'],\n },\n createdAt: {\n type: 'datetime',\n },\n },\n },\n },\n },\n },\n AppBskyGraphAssertCreator: {\n lexicon: 1,\n id: 'app.bsky.graph.assertCreator',\n defs: {\n main: {\n type: 'token',\n description:\n \"Assertion type: Creator. Defined for app.bsky.graph.assertions's assertion.\",\n },\n },\n },\n AppBskyGraphAssertMember: {\n lexicon: 1,\n id: 'app.bsky.graph.assertMember',\n defs: {\n main: {\n type: 'token',\n description:\n \"Assertion type: Member. Defined for app.bsky.graph.assertions's assertion.\",\n },\n },\n },\n AppBskyGraphAssertion: {\n lexicon: 1,\n id: 'app.bsky.graph.assertion',\n defs: {\n main: {\n type: 'record',\n key: 'tid',\n record: {\n type: 'object',\n required: ['assertion', 'subject', 'createdAt'],\n properties: {\n assertion: {\n type: 'string',\n },\n subject: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.ref',\n },\n createdAt: {\n type: 'datetime',\n },\n },\n },\n },\n },\n },\n AppBskyGraphConfirmation: {\n lexicon: 1,\n id: 'app.bsky.graph.confirmation',\n defs: {\n main: {\n type: 'record',\n key: 'tid',\n record: {\n type: 'object',\n required: ['originator', 'assertion', 'createdAt'],\n properties: {\n originator: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.ref',\n },\n assertion: {\n type: 'ref',\n ref: 'lex:com.atproto.repo.strongRef',\n },\n createdAt: {\n type: '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: 'ref',\n ref: 'lex:app.bsky.actor.ref',\n },\n createdAt: {\n type: 'datetime',\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 a user?',\n parameters: {\n type: 'params',\n required: ['user'],\n properties: {\n user: {\n type: 'string',\n },\n limit: {\n type: 'integer',\n minimum: 1,\n maximum: 100,\n default: 50,\n },\n before: {\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.ref#withInfo',\n },\n cursor: {\n type: 'string',\n },\n followers: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.graph.getFollowers#follower',\n },\n },\n },\n },\n },\n },\n follower: {\n type: 'object',\n required: ['did', 'declaration', 'handle', 'indexedAt'],\n properties: {\n did: {\n type: 'string',\n },\n declaration: {\n type: 'ref',\n ref: 'lex:app.bsky.system.declRef',\n },\n handle: {\n type: 'string',\n },\n displayName: {\n type: 'string',\n maxLength: 64,\n },\n avatar: {\n type: 'string',\n },\n createdAt: {\n type: 'datetime',\n },\n indexedAt: {\n type: 'datetime',\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 a user following?',\n parameters: {\n type: 'params',\n required: ['user'],\n properties: {\n user: {\n type: 'string',\n },\n limit: {\n type: 'integer',\n minimum: 1,\n maximum: 100,\n default: 50,\n },\n before: {\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.ref#withInfo',\n },\n cursor: {\n type: 'string',\n },\n follows: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:app.bsky.graph.getFollows#follow',\n },\n },\n },\n },\n },\n },\n follow: {\n type: 'object',\n required: ['did', 'declaration', 'handle', 'indexedAt'],\n properties: {\n did: {\n type: 'string',\n },\n declaration: {\n type: 'ref',\n ref: 'lex:app.bsky.system.declRef',\n },\n handle: {\n type: 'string',\n },\n displayName: {\n type: 'string',\n maxLength: 64,\n },\n avatar: {\n type: 'string',\n },\n createdAt: {\n type: 'datetime',\n },\n indexedAt: {\n type: 'datetime',\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 before: {\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.graph.getMutes#mute',\n },\n },\n },\n },\n },\n },\n mute: {\n type: 'object',\n required: ['did', 'declaration', 'handle', 'createdAt'],\n properties: {\n did: {\n type: 'string',\n },\n declaration: {\n type: 'ref',\n ref: 'lex:app.bsky.system.declRef',\n },\n handle: {\n type: 'string',\n },\n displayName: {\n type: 'string',\n maxLength: 64,\n },\n createdAt: {\n type: 'datetime',\n },\n },\n },\n },\n },\n AppBskyGraphMute: {\n lexicon: 1,\n id: 'app.bsky.graph.mute',\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: ['user'],\n properties: {\n user: {\n type: 'string',\n },\n },\n },\n },\n },\n },\n },\n AppBskyGraphUnmute: {\n lexicon: 1,\n id: 'app.bsky.graph.unmute',\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: ['user'],\n properties: {\n user: {\n type: 'string',\n },\n },\n },\n },\n },\n },\n },\n AppBskyNotificationGetCount: {\n lexicon: 1,\n id: 'app.bsky.notification.getCount',\n defs: {\n main: {\n type: 'query',\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 AppBskyNotificationList: {\n lexicon: 1,\n id: 'app.bsky.notification.list',\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 before: {\n type: 'string',\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.list#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 },\n cid: {\n type: 'string',\n },\n author: {\n type: 'ref',\n ref: 'lex:app.bsky.actor.ref#withInfo',\n },\n reason: {\n type: 'string',\n description:\n \"Expected values are 'vote', 'repost', 'follow', 'invite', 'mention' and 'reply'.\",\n knownValues: [\n 'vote',\n 'repost',\n 'follow',\n 'invite',\n 'mention',\n 'reply',\n ],\n },\n reasonSubject: {\n type: 'string',\n },\n record: {\n type: 'unknown',\n },\n isRead: {\n type: 'boolean',\n },\n indexedAt: {\n type: 'datetime',\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: 'datetime',\n },\n },\n },\n },\n },\n },\n },\n AppBskySystemActorUser: {\n lexicon: 1,\n id: 'app.bsky.system.actorUser',\n defs: {\n main: {\n type: 'token',\n description:\n \"Actor type: User. Defined for app.bsky.system.declaration's actorType.\",\n },\n },\n },\n AppBskySystemDeclRef: {\n lexicon: 1,\n id: 'app.bsky.system.declRef',\n defs: {\n main: {\n description: 'A reference to a app.bsky.system.declaration record.',\n type: 'object',\n required: ['cid', 'actorType'],\n properties: {\n cid: {\n type: 'string',\n },\n actorType: {\n type: 'string',\n knownValues: ['app.bsky.system.actorUser'],\n },\n },\n },\n },\n },\n AppBskySystemDeclaration: {\n lexicon: 1,\n id: 'app.bsky.system.declaration',\n defs: {\n main: {\n description:\n 'Context for an account that is considered intrinsic to it and alters the fundamental understanding of an account of changed. A declaration should be treated as immutable.',\n type: 'record',\n key: 'literal:self',\n record: {\n type: 'object',\n required: ['actorType'],\n properties: {\n actorType: {\n type: 'string',\n knownValues: ['app.bsky.system.actorUser'],\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 ComAtprotoAccountCreate: 'com.atproto.account.create',\n ComAtprotoAccountCreateInviteCode: 'com.atproto.account.createInviteCode',\n ComAtprotoAccountDelete: 'com.atproto.account.delete',\n ComAtprotoAccountGet: 'com.atproto.account.get',\n ComAtprotoAccountRequestDelete: 'com.atproto.account.requestDelete',\n ComAtprotoAccountRequestPasswordReset:\n 'com.atproto.account.requestPasswordReset',\n ComAtprotoAccountResetPassword: 'com.atproto.account.resetPassword',\n ComAtprotoAdminBlob: 'com.atproto.admin.blob',\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 ComAtprotoAdminModerationAction: 'com.atproto.admin.moderationAction',\n ComAtprotoAdminModerationReport: 'com.atproto.admin.moderationReport',\n ComAtprotoAdminRecord: 'com.atproto.admin.record',\n ComAtprotoAdminRepo: 'com.atproto.admin.repo',\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 ComAtprotoBlobUpload: 'com.atproto.blob.upload',\n ComAtprotoHandleResolve: 'com.atproto.handle.resolve',\n ComAtprotoRepoBatchWrite: 'com.atproto.repo.batchWrite',\n ComAtprotoRepoCreateRecord: 'com.atproto.repo.createRecord',\n ComAtprotoRepoDeleteRecord: 'com.atproto.repo.deleteRecord',\n ComAtprotoRepoDescribe: 'com.atproto.repo.describe',\n ComAtprotoRepoGetRecord: 'com.atproto.repo.getRecord',\n ComAtprotoRepoListRecords: 'com.atproto.repo.listRecords',\n ComAtprotoRepoPutRecord: 'com.atproto.repo.putRecord',\n ComAtprotoRepoRecordRef: 'com.atproto.repo.recordRef',\n ComAtprotoRepoRepoRef: 'com.atproto.repo.repoRef',\n ComAtprotoRepoStrongRef: 'com.atproto.repo.strongRef',\n ComAtprotoReportCreate: 'com.atproto.report.create',\n ComAtprotoReportReasonType: 'com.atproto.report.reasonType',\n ComAtprotoReportSubject: 'com.atproto.report.subject',\n ComAtprotoServerGetAccountsConfig: 'com.atproto.server.getAccountsConfig',\n ComAtprotoSessionCreate: 'com.atproto.session.create',\n ComAtprotoSessionDelete: 'com.atproto.session.delete',\n ComAtprotoSessionGet: 'com.atproto.session.get',\n ComAtprotoSessionRefresh: 'com.atproto.session.refresh',\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 AppBskyActorGetProfile: 'app.bsky.actor.getProfile',\n AppBskyActorGetProfiles: 'app.bsky.actor.getProfiles',\n AppBskyActorGetSuggestions: 'app.bsky.actor.getSuggestions',\n AppBskyActorProfile: 'app.bsky.actor.profile',\n AppBskyActorRef: 'app.bsky.actor.ref',\n AppBskyActorSearch: 'app.bsky.actor.search',\n AppBskyActorSearchTypeahead: 'app.bsky.actor.searchTypeahead',\n AppBskyActorUpdateProfile: 'app.bsky.actor.updateProfile',\n AppBskyEmbedExternal: 'app.bsky.embed.external',\n AppBskyEmbedImages: 'app.bsky.embed.images',\n AppBskyFeedFeedViewPost: 'app.bsky.feed.feedViewPost',\n AppBskyFeedGetAuthorFeed: 'app.bsky.feed.getAuthorFeed',\n AppBskyFeedGetPostThread: 'app.bsky.feed.getPostThread',\n AppBskyFeedGetRepostedBy: 'app.bsky.feed.getRepostedBy',\n AppBskyFeedGetTimeline: 'app.bsky.feed.getTimeline',\n AppBskyFeedGetVotes: 'app.bsky.feed.getVotes',\n AppBskyFeedPost: 'app.bsky.feed.post',\n AppBskyFeedRepost: 'app.bsky.feed.repost',\n AppBskyFeedSetVote: 'app.bsky.feed.setVote',\n AppBskyFeedVote: 'app.bsky.feed.vote',\n AppBskyGraphAssertCreator: 'app.bsky.graph.assertCreator',\n AppBskyGraphAssertMember: 'app.bsky.graph.assertMember',\n AppBskyGraphAssertion: 'app.bsky.graph.assertion',\n AppBskyGraphConfirmation: 'app.bsky.graph.confirmation',\n AppBskyGraphFollow: 'app.bsky.graph.follow',\n AppBskyGraphGetFollowers: 'app.bsky.graph.getFollowers',\n AppBskyGraphGetFollows: 'app.bsky.graph.getFollows',\n AppBskyGraphGetMutes: 'app.bsky.graph.getMutes',\n AppBskyGraphMute: 'app.bsky.graph.mute',\n AppBskyGraphUnmute: 'app.bsky.graph.unmute',\n AppBskyNotificationGetCount: 'app.bsky.notification.getCount',\n AppBskyNotificationList: 'app.bsky.notification.list',\n AppBskyNotificationUpdateSeen: 'app.bsky.notification.updateSeen',\n AppBskySystemActorUser: 'app.bsky.system.actorUser',\n AppBskySystemDeclRef: 'app.bsky.system.declRef',\n AppBskySystemDeclaration: 'app.bsky.system.declaration',\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\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 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 }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n useCount: number\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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\n\nexport interface QueryParams {}\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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport * as ComAtprotoAdminModerationAction from './moderationAction'\n\nexport interface QueryParams {\n id: number\n}\n\nexport type InputSchema = undefined\nexport type OutputSchema = ComAtprotoAdminModerationAction.ViewDetail\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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport * as ComAtprotoAdminModerationAction from './moderationAction'\n\nexport interface QueryParams {\n subject?: string\n limit?: number\n before?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n cursor?: string\n actions: ComAtprotoAdminModerationAction.View[]\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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport * as ComAtprotoAdminModerationReport from './moderationReport'\n\nexport interface QueryParams {\n id: number\n}\n\nexport type InputSchema = undefined\nexport type OutputSchema = ComAtprotoAdminModerationReport.ViewDetail\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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport * as ComAtprotoAdminModerationReport from './moderationReport'\n\nexport interface QueryParams {\n subject?: string\n resolved?: boolean\n limit?: number\n before?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n cursor?: string\n reports: ComAtprotoAdminModerationReport.View[]\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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport * as ComAtprotoAdminRecord from './record'\n\nexport interface QueryParams {\n uri: string\n cid?: string\n}\n\nexport type InputSchema = undefined\nexport type OutputSchema = ComAtprotoAdminRecord.ViewDetail\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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport * as ComAtprotoAdminRepo from './repo'\n\nexport interface QueryParams {\n did: string\n}\n\nexport type InputSchema = undefined\nexport type OutputSchema = ComAtprotoAdminRepo.ViewDetail\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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport * as ComAtprotoAdminModerationAction from './moderationAction'\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 = ComAtprotoAdminModerationAction.View\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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport * as ComAtprotoAdminModerationAction from './moderationAction'\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 = ComAtprotoAdminModerationAction.View\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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport * as ComAtprotoAdminRepo from './repo'\n\nexport interface QueryParams {\n term?: string\n limit?: number\n before?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n cursor?: string\n repos: ComAtprotoAdminRepo.View[]\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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport * as ComAtprotoRepoRepoRef from '../repo/repoRef'\nimport * as ComAtprotoRepoRecordRef from '../repo/recordRef'\nimport * as ComAtprotoAdminModerationAction from './moderationAction'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n action:\n | 'com.atproto.admin.moderationAction#takedown'\n | 'com.atproto.admin.moderationAction#flag'\n | 'com.atproto.admin.moderationAction#acknowledge'\n | (string & {})\n subject:\n | ComAtprotoRepoRepoRef.Main\n | ComAtprotoRepoRecordRef.Main\n | { $type: string; [k: string]: unknown }\n subjectBlobCids?: string[]\n reason: string\n createdBy: string\n [k: string]: unknown\n}\n\nexport type OutputSchema = ComAtprotoAdminModerationAction.View\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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\n\nexport interface QueryParams {}\n\nexport type InputSchema = string | Uint8Array\n\nexport interface OutputSchema {\n cid: string\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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n /** The DID of the repo. */\n did: string\n /** Validate the records? */\n validate?: boolean\n writes: (Create | Update | Delete)[]\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\nexport interface Create {\n action: '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.batchWrite#create'\n )\n}\n\nexport function validateCreate(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.repo.batchWrite#create', v)\n}\n\nexport interface Update {\n action: '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.batchWrite#update'\n )\n}\n\nexport function validateUpdate(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.repo.batchWrite#update', v)\n}\n\nexport interface Delete {\n action: '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.batchWrite#delete'\n )\n}\n\nexport function validateDelete(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.repo.batchWrite#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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n /** The DID of the repo. */\n did: string\n /** The NSID of the record collection. */\n collection: string\n /** Validate the record? */\n validate?: boolean\n /** The record to create. */\n record: {}\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 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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n /** The DID of the repo. */\n did: string\n /** The NSID of the record collection. */\n collection: string\n /** The key of the record. */\n rkey: 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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\n\nexport interface QueryParams {\n /** The handle or DID of the repo. */\n user: 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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\n\nexport interface QueryParams {\n /** The handle or DID of the repo. */\n user: string\n /** The NSID of the 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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\n\nexport interface QueryParams {\n /** The handle or DID of the repo. */\n user: string\n /** The NSID of the record type. */\n collection: string\n /** The number of records to return. */\n limit?: number\n /** A TID to filter the range of records returned. */\n before?: string\n /** A TID to filter the range of records returned. */\n after?: 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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n /** The DID of the repo. */\n did: string\n /** The NSID of the record type. */\n collection: string\n /** The TID of the record. */\n rkey: string\n /** Validate the record? */\n validate?: boolean\n /** The record to create. */\n record: {}\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 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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport * as ComAtprotoReportReasonType from './reasonType'\nimport * as ComAtprotoRepoRepoRef from '../repo/repoRef'\nimport * as ComAtprotoRepoRecordRef from '../repo/recordRef'\nimport * as ComAtprotoRepoStrongRef from '../repo/strongRef'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n reasonType: ComAtprotoReportReasonType.Main\n reason?: string\n subject:\n | ComAtprotoRepoRepoRef.Main\n | ComAtprotoRepoRecordRef.Main\n | { $type: string; [k: string]: unknown }\n [k: string]: unknown\n}\n\nexport interface OutputSchema {\n id: number\n reasonType: ComAtprotoReportReasonType.Main\n reason?: string\n subject:\n | ComAtprotoRepoRepoRef.Main\n | ComAtprotoRepoStrongRef.Main\n | { $type: string; [k: string]: unknown }\n reportedByDid: 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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\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.getAccountsConfig#links'\n )\n}\n\nexport function validateLinks(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.server.getAccountsConfig#links', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\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 [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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\n\nexport interface QueryParams {}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n handle: string\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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\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 you 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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport * as AppBskySystemDeclRef from '../system/declRef'\n\nexport interface QueryParams {\n actor: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n did: string\n declaration: AppBskySystemDeclRef.Main\n handle: string\n creator: string\n displayName?: string\n description?: string\n avatar?: string\n banner?: string\n followersCount: number\n followsCount: number\n postsCount: number\n myState?: MyState\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 MyState {\n follow?: string\n muted?: boolean\n [k: string]: unknown\n}\n\nexport function isMyState(v: unknown): v is MyState {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'app.bsky.actor.getProfile#myState'\n )\n}\n\nexport function validateMyState(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.actor.getProfile#myState', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport * as AppBskyActorProfile from './profile'\n\nexport interface QueryParams {\n actors: string[]\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n profiles: AppBskyActorProfile.View[]\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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport * as AppBskySystemDeclRef from '../system/declRef'\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: Actor[]\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 Actor {\n did: string\n declaration: AppBskySystemDeclRef.Main\n handle: string\n displayName?: string\n description?: string\n avatar?: string\n indexedAt?: string\n [k: string]: unknown\n}\n\nexport function isActor(v: unknown): v is Actor {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'app.bsky.actor.getSuggestions#actor'\n )\n}\n\nexport function validateActor(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.actor.getSuggestions#actor', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport * as AppBskySystemDeclRef from '../system/declRef'\n\nexport interface QueryParams {\n term?: string\n limit?: number\n before?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n cursor?: string\n users: User[]\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 User {\n did: string\n declaration: AppBskySystemDeclRef.Main\n handle: string\n displayName?: string\n avatar?: string\n description?: string\n indexedAt?: string\n [k: string]: unknown\n}\n\nexport function isUser(v: unknown): v is User {\n return (\n isObj(v) && hasProp(v, '$type') && v.$type === 'app.bsky.actor.search#user'\n )\n}\n\nexport function validateUser(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.actor.search#user', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport * as AppBskySystemDeclRef from '../system/declRef'\n\nexport interface QueryParams {\n term?: string\n limit?: number\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n users: User[]\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 User {\n did: string\n declaration: AppBskySystemDeclRef.Main\n handle: string\n displayName?: string\n avatar?: string\n [k: string]: unknown\n}\n\nexport function isUser(v: unknown): v is User {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'app.bsky.actor.searchTypeahead#user'\n )\n}\n\nexport function validateUser(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.actor.searchTypeahead#user', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n displayName?: string\n description?: string\n avatar?: { cid: string; mimeType: string; [k: string]: unknown }\n banner?: { cid: string; mimeType: string; [k: string]: unknown }\n [k: string]: unknown\n}\n\nexport interface OutputSchema {\n uri: string\n cid: string\n record: {}\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 InvalidBlobError extends XRPCError {\n constructor(src: XRPCError) {\n super(src.status, src.error, src.message)\n }\n}\n\nexport class BlobTooLargeError extends XRPCError {\n constructor(src: XRPCError) {\n super(src.status, src.error, src.message)\n }\n}\n\nexport class InvalidMimeTypeError extends XRPCError {\n constructor(src: XRPCError) {\n super(src.status, src.error, src.message)\n }\n}\n\nexport class InvalidImageDimensionsError 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 === 'InvalidBlob') return new InvalidBlobError(e)\n if (e.error === 'BlobTooLarge') return new BlobTooLargeError(e)\n if (e.error === 'InvalidMimeType') return new InvalidMimeTypeError(e)\n if (e.error === 'InvalidImageDimensions')\n return new InvalidImageDimensionsError(e)\n }\n return e\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport * as AppBskyFeedFeedViewPost from './feedViewPost'\n\nexport interface QueryParams {\n author: string\n limit?: number\n before?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n cursor?: string\n feed: AppBskyFeedFeedViewPost.Main[]\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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport * as AppBskyFeedPost from './post'\n\nexport interface QueryParams {\n uri: string\n depth?: number\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n thread:\n | ThreadViewPost\n | NotFoundPost\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\nexport interface ThreadViewPost {\n post: AppBskyFeedPost.View\n parent?:\n | ThreadViewPost\n | NotFoundPost\n | { $type: string; [k: string]: unknown }\n replies?: (\n | ThreadViewPost\n | NotFoundPost\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.getPostThread#threadViewPost'\n )\n}\n\nexport function validateThreadViewPost(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.feed.getPostThread#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.getPostThread#notFoundPost'\n )\n}\n\nexport function validateNotFoundPost(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.feed.getPostThread#notFoundPost', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport * as AppBskySystemDeclRef from '../system/declRef'\n\nexport interface QueryParams {\n uri: string\n cid?: string\n limit?: number\n before?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n uri: string\n cid?: string\n cursor?: string\n repostedBy: RepostedBy[]\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 RepostedBy {\n did: string\n declaration: AppBskySystemDeclRef.Main\n handle: string\n displayName?: string\n avatar?: string\n createdAt?: string\n indexedAt: string\n [k: string]: unknown\n}\n\nexport function isRepostedBy(v: unknown): v is RepostedBy {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'app.bsky.feed.getRepostedBy#repostedBy'\n )\n}\n\nexport function validateRepostedBy(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.feed.getRepostedBy#repostedBy', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport * as AppBskyFeedFeedViewPost from './feedViewPost'\n\nexport interface QueryParams {\n algorithm?: string\n limit?: number\n before?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n cursor?: string\n feed: AppBskyFeedFeedViewPost.Main[]\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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport * as AppBskyActorRef from '../actor/ref'\n\nexport interface QueryParams {\n uri: string\n cid?: string\n direction?: 'up' | 'down'\n limit?: number\n before?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n uri: string\n cid?: string\n cursor?: string\n votes: Vote[]\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 Vote {\n direction: 'up' | 'down'\n indexedAt: string\n createdAt: string\n actor: AppBskyActorRef.WithInfo\n [k: string]: unknown\n}\n\nexport function isVote(v: unknown): v is Vote {\n return (\n isObj(v) && hasProp(v, '$type') && v.$type === 'app.bsky.feed.getVotes#vote'\n )\n}\n\nexport function validateVote(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.feed.getVotes#vote', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport * as ComAtprotoRepoStrongRef from '../../../com/atproto/repo/strongRef'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n subject: ComAtprotoRepoStrongRef.Main\n direction: 'up' | 'down' | 'none'\n [k: string]: unknown\n}\n\nexport interface OutputSchema {\n upvote?: string\n downvote?: 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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport * as AppBskyActorRef from '../actor/ref'\nimport * as AppBskySystemDeclRef from '../system/declRef'\n\nexport interface QueryParams {\n user: string\n limit?: number\n before?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n subject: AppBskyActorRef.WithInfo\n cursor?: string\n followers: Follower[]\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 Follower {\n did: string\n declaration: AppBskySystemDeclRef.Main\n handle: string\n displayName?: string\n avatar?: string\n createdAt?: string\n indexedAt: string\n [k: string]: unknown\n}\n\nexport function isFollower(v: unknown): v is Follower {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'app.bsky.graph.getFollowers#follower'\n )\n}\n\nexport function validateFollower(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.graph.getFollowers#follower', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport * as AppBskyActorRef from '../actor/ref'\nimport * as AppBskySystemDeclRef from '../system/declRef'\n\nexport interface QueryParams {\n user: string\n limit?: number\n before?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n subject: AppBskyActorRef.WithInfo\n cursor?: string\n follows: Follow[]\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 Follow {\n did: string\n declaration: AppBskySystemDeclRef.Main\n handle: string\n displayName?: string\n avatar?: string\n createdAt?: string\n indexedAt: string\n [k: string]: unknown\n}\n\nexport function isFollow(v: unknown): v is Follow {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'app.bsky.graph.getFollows#follow'\n )\n}\n\nexport function validateFollow(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.graph.getFollows#follow', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport * as AppBskySystemDeclRef from '../system/declRef'\n\nexport interface QueryParams {\n limit?: number\n before?: string\n}\n\nexport type InputSchema = undefined\n\nexport interface OutputSchema {\n cursor?: string\n mutes: Mute[]\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 Mute {\n did: string\n declaration: AppBskySystemDeclRef.Main\n handle: string\n displayName?: string\n createdAt: string\n [k: string]: unknown\n}\n\nexport function isMute(v: unknown): v is Mute {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'app.bsky.graph.getMutes#mute'\n )\n}\n\nexport function validateMute(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.graph.getMutes#mute', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n user: 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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\n\nexport interface QueryParams {}\n\nexport interface InputSchema {\n user: 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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\n\nexport interface QueryParams {}\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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport * as AppBskyActorRef from '../actor/ref'\n\nexport interface QueryParams {\n limit?: number\n before?: 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: AppBskyActorRef.WithInfo\n /** Expected values are 'vote', 'repost', 'follow', 'invite', 'mention' and 'reply'. */\n reason:\n | 'vote'\n | 'repost'\n | 'follow'\n | 'invite'\n | 'mention'\n | 'reply'\n | (string & {})\n reasonSubject?: string\n record: {}\n isRead: boolean\n indexedAt: string\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.list#notification'\n )\n}\n\nexport function validateNotification(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.notification.list#notification', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { Headers, XRPCError } from '@atproto/xrpc'\nimport { ValidationResult } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\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 { ValidationResult } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport * as ComAtprotoAdminModerationAction from './moderationAction'\n\nexport interface View {\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 isView(v: unknown): v is View {\n return (\n isObj(v) && hasProp(v, '$type') && v.$type === 'com.atproto.admin.blob#view'\n )\n}\n\nexport function validateView(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.admin.blob#view', 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.blob#imageDetails'\n )\n}\n\nexport function validateImageDetails(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.admin.blob#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.blob#videoDetails'\n )\n}\n\nexport function validateVideoDetails(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.admin.blob#videoDetails', v)\n}\n\nexport interface Moderation {\n currentAction?: ComAtprotoAdminModerationAction.ViewCurrent\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.blob#moderation'\n )\n}\n\nexport function validateModeration(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.admin.blob#moderation', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { ValidationResult } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport * as ComAtprotoRepoRepoRef from '../repo/repoRef'\nimport * as ComAtprotoRepoStrongRef from '../repo/strongRef'\nimport * as ComAtprotoAdminRepo from './repo'\nimport * as ComAtprotoAdminRecord from './record'\nimport * as ComAtprotoAdminBlob from './blob'\nimport * as ComAtprotoAdminModerationReport from './moderationReport'\n\nexport interface View {\n id: number\n action: ActionType\n subject:\n | ComAtprotoRepoRepoRef.Main\n | ComAtprotoRepoStrongRef.Main\n | { $type: string; [k: string]: unknown }\n subjectBlobCids: string[]\n reason: string\n createdBy: string\n createdAt: string\n reversal?: Reversal\n resolvedReportIds: number[]\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 === 'com.atproto.admin.moderationAction#view'\n )\n}\n\nexport function validateView(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.admin.moderationAction#view', v)\n}\n\nexport interface ViewDetail {\n id: number\n action: ActionType\n subject:\n | ComAtprotoAdminRepo.View\n | ComAtprotoAdminRecord.View\n | { $type: string; [k: string]: unknown }\n subjectBlobs: ComAtprotoAdminBlob.View[]\n reason: string\n createdBy: string\n createdAt: string\n reversal?: Reversal\n resolvedReports: ComAtprotoAdminModerationReport.View[]\n [k: string]: unknown\n}\n\nexport function isViewDetail(v: unknown): v is ViewDetail {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.admin.moderationAction#viewDetail'\n )\n}\n\nexport function validateViewDetail(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.admin.moderationAction#viewDetail', v)\n}\n\nexport interface ViewCurrent {\n id: number\n action: ActionType\n [k: string]: unknown\n}\n\nexport function isViewCurrent(v: unknown): v is ViewCurrent {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.admin.moderationAction#viewCurrent'\n )\n}\n\nexport function validateViewCurrent(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.admin.moderationAction#viewCurrent', v)\n}\n\nexport interface Reversal {\n reason: string\n createdBy: string\n createdAt: string\n [k: string]: unknown\n}\n\nexport function isReversal(v: unknown): v is Reversal {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.admin.moderationAction#reversal'\n )\n}\n\nexport function validateReversal(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.admin.moderationAction#reversal', v)\n}\n\nexport type ActionType =\n | 'com.atproto.admin.moderationAction#takedown'\n | 'com.atproto.admin.moderationAction#flag'\n | 'com.atproto.admin.moderationAction#acknowledge'\n | (string & {})\n\n/** Moderation action type: Takedown. Indicates that content should not be served by the PDS. */\nexport const TAKEDOWN = 'com.atproto.admin.moderationAction#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.moderationAction#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.moderationAction#acknowledge'\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { ValidationResult } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport * as ComAtprotoReportReasonType from '../report/reasonType'\nimport * as ComAtprotoRepoRepoRef from '../repo/repoRef'\nimport * as ComAtprotoRepoStrongRef from '../repo/strongRef'\nimport * as ComAtprotoAdminRepo from './repo'\nimport * as ComAtprotoAdminRecord from './record'\nimport * as ComAtprotoAdminModerationAction from './moderationAction'\n\nexport interface View {\n id: number\n reasonType: ComAtprotoReportReasonType.Main\n reason?: string\n subject:\n | ComAtprotoRepoRepoRef.Main\n | ComAtprotoRepoStrongRef.Main\n | { $type: string; [k: string]: unknown }\n reportedByDid: string\n createdAt: string\n resolvedByActionIds: number[]\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 === 'com.atproto.admin.moderationReport#view'\n )\n}\n\nexport function validateView(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.admin.moderationReport#view', v)\n}\n\nexport interface ViewDetail {\n id: number\n reasonType: ComAtprotoReportReasonType.Main\n reason?: string\n subject:\n | ComAtprotoAdminRepo.View\n | ComAtprotoAdminRecord.View\n | { $type: string; [k: string]: unknown }\n reportedByDid: string\n createdAt: string\n resolvedByActions: ComAtprotoAdminModerationAction.View[]\n [k: string]: unknown\n}\n\nexport function isViewDetail(v: unknown): v is ViewDetail {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.admin.moderationReport#viewDetail'\n )\n}\n\nexport function validateViewDetail(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.admin.moderationReport#viewDetail', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { ValidationResult } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport * as ComAtprotoAdminRepo from './repo'\nimport * as ComAtprotoAdminBlob from './blob'\nimport * as ComAtprotoAdminModerationAction from './moderationAction'\nimport * as ComAtprotoAdminModerationReport from './moderationReport'\n\nexport interface View {\n uri: string\n cid: string\n value: {}\n blobCids: string[]\n indexedAt: string\n moderation: Moderation\n repo: ComAtprotoAdminRepo.View\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 === 'com.atproto.admin.record#view'\n )\n}\n\nexport function validateView(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.admin.record#view', v)\n}\n\nexport interface ViewDetail {\n uri: string\n cid: string\n value: {}\n blobs: ComAtprotoAdminBlob.View[]\n indexedAt: string\n moderation: ModerationDetail\n repo: ComAtprotoAdminRepo.View\n [k: string]: unknown\n}\n\nexport function isViewDetail(v: unknown): v is ViewDetail {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.admin.record#viewDetail'\n )\n}\n\nexport function validateViewDetail(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.admin.record#viewDetail', v)\n}\n\nexport interface Moderation {\n currentAction?: ComAtprotoAdminModerationAction.ViewCurrent\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.record#moderation'\n )\n}\n\nexport function validateModeration(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.admin.record#moderation', v)\n}\n\nexport interface ModerationDetail {\n currentAction?: ComAtprotoAdminModerationAction.ViewCurrent\n actions: ComAtprotoAdminModerationAction.View[]\n reports: ComAtprotoAdminModerationReport.View[]\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.record#moderationDetail'\n )\n}\n\nexport function validateModerationDetail(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.admin.record#moderationDetail', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { ValidationResult } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport * as ComAtprotoAdminModerationAction from './moderationAction'\nimport * as ComAtprotoAdminModerationReport from './moderationReport'\n\nexport interface View {\n did: string\n handle: string\n account?: Account\n relatedRecords: {}[]\n indexedAt: string\n moderation: Moderation\n [k: string]: unknown\n}\n\nexport function isView(v: unknown): v is View {\n return (\n isObj(v) && hasProp(v, '$type') && v.$type === 'com.atproto.admin.repo#view'\n )\n}\n\nexport function validateView(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.admin.repo#view', v)\n}\n\nexport interface ViewDetail {\n did: string\n handle: string\n account?: Account\n relatedRecords: {}[]\n indexedAt: string\n moderation: ModerationDetail\n [k: string]: unknown\n}\n\nexport function isViewDetail(v: unknown): v is ViewDetail {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.admin.repo#viewDetail'\n )\n}\n\nexport function validateViewDetail(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.admin.repo#viewDetail', v)\n}\n\nexport interface Account {\n email: string\n [k: string]: unknown\n}\n\nexport function isAccount(v: unknown): v is Account {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.admin.repo#account'\n )\n}\n\nexport function validateAccount(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.admin.repo#account', v)\n}\n\nexport interface Moderation {\n currentAction?: ComAtprotoAdminModerationAction.ViewCurrent\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.repo#moderation'\n )\n}\n\nexport function validateModeration(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.admin.repo#moderation', v)\n}\n\nexport interface ModerationDetail {\n currentAction?: ComAtprotoAdminModerationAction.ViewCurrent\n actions: ComAtprotoAdminModerationAction.View[]\n reports: ComAtprotoAdminModerationReport.View[]\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.repo#moderationDetail'\n )\n}\n\nexport function validateModerationDetail(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.admin.repo#moderationDetail', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { ValidationResult } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\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.recordRef#main' ||\n v.$type === 'com.atproto.repo.recordRef')\n )\n}\n\nexport function validateMain(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.repo.recordRef#main', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { ValidationResult } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\n\nexport interface Main {\n did: 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.repoRef#main' ||\n v.$type === 'com.atproto.repo.repoRef')\n )\n}\n\nexport function validateMain(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.repo.repoRef#main', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { ValidationResult } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\n\nexport type Main =\n | 'com.atproto.report.reason#spam'\n | 'com.atproto.report.reason#other'\n | (string & {})\n\n/** Moderation report reason: Spam. */\nexport const SPAM = 'com.atproto.report.reasonType#spam'\n/** Moderation report reason: Other. */\nexport const OTHER = 'com.atproto.report.reasonType#other'\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { ValidationResult } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\n\nexport interface Repo {\n /** The DID of the repo. */\n did: 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.report.subject#repo'\n )\n}\n\nexport function validateRepo(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.report.subject#repo', v)\n}\n\nexport interface Record {\n /** The DID of the repo. */\n did: string\n /** The NSID of the 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, defaults to the most recent version. */\n cid?: 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 === 'com.atproto.report.subject#record'\n )\n}\n\nexport function validateRecord(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.report.subject#record', v)\n}\n\nexport interface RecordRef {\n uri: string\n cid: string\n [k: string]: unknown\n}\n\nexport function isRecordRef(v: unknown): v is RecordRef {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'com.atproto.report.subject#recordRef'\n )\n}\n\nexport function validateRecordRef(v: unknown): ValidationResult {\n return lexicons.validate('com.atproto.report.subject#recordRef', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { ValidationResult } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport * as AppBskySystemDeclRef from '../system/declRef'\n\nexport interface Record {\n displayName: string\n description?: string\n avatar?: { cid: string; mimeType: string; [k: string]: unknown }\n banner?: { cid: string; mimeType: string; [k: string]: unknown }\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\nexport interface View {\n did: string\n declaration: AppBskySystemDeclRef.Main\n handle: string\n creator: string\n displayName?: string\n description?: string\n avatar?: string\n banner?: string\n followersCount: number\n followsCount: number\n postsCount: number\n myState?: MyState\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.actor.profile#view'\n )\n}\n\nexport function validateView(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.actor.profile#view', v)\n}\n\nexport interface MyState {\n follow?: string\n muted?: boolean\n [k: string]: unknown\n}\n\nexport function isMyState(v: unknown): v is MyState {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'app.bsky.actor.profile#myState'\n )\n}\n\nexport function validateMyState(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.actor.profile#myState', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { ValidationResult } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport * as AppBskySystemDeclRef from '../system/declRef'\n\nexport interface Main {\n did: string\n declarationCid: 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 === 'app.bsky.actor.ref#main' || v.$type === 'app.bsky.actor.ref')\n )\n}\n\nexport function validateMain(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.actor.ref#main', v)\n}\n\nexport interface WithInfo {\n did: string\n declaration: AppBskySystemDeclRef.Main\n handle: string\n displayName?: string\n avatar?: string\n viewer?: ViewerState\n [k: string]: unknown\n}\n\nexport function isWithInfo(v: unknown): v is WithInfo {\n return (\n isObj(v) && hasProp(v, '$type') && v.$type === 'app.bsky.actor.ref#withInfo'\n )\n}\n\nexport function validateWithInfo(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.actor.ref#withInfo', v)\n}\n\nexport interface ViewerState {\n muted?: boolean\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.ref#viewerState'\n )\n}\n\nexport function validateViewerState(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.actor.ref#viewerState', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { ValidationResult } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\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?: { cid: string; mimeType: string; [k: string]: unknown }\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 Presented {\n external: PresentedExternal\n [k: string]: unknown\n}\n\nexport function isPresented(v: unknown): v is Presented {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'app.bsky.embed.external#presented'\n )\n}\n\nexport function validatePresented(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.embed.external#presented', v)\n}\n\nexport interface PresentedExternal {\n uri: string\n title: string\n description: string\n thumb?: string\n [k: string]: unknown\n}\n\nexport function isPresentedExternal(v: unknown): v is PresentedExternal {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'app.bsky.embed.external#presentedExternal'\n )\n}\n\nexport function validatePresentedExternal(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.embed.external#presentedExternal', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { ValidationResult } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\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: { cid: string; mimeType: string; [k: string]: unknown }\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 Presented {\n images: PresentedImage[]\n [k: string]: unknown\n}\n\nexport function isPresented(v: unknown): v is Presented {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'app.bsky.embed.images#presented'\n )\n}\n\nexport function validatePresented(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.embed.images#presented', v)\n}\n\nexport interface PresentedImage {\n thumb: string\n fullsize: string\n alt: string\n [k: string]: unknown\n}\n\nexport function isPresentedImage(v: unknown): v is PresentedImage {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'app.bsky.embed.images#presentedImage'\n )\n}\n\nexport function validatePresentedImage(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.embed.images#presentedImage', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { ValidationResult } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport * as AppBskyFeedPost from './post'\nimport * as AppBskyActorRef from '../actor/ref'\n\nexport interface Main {\n post: AppBskyFeedPost.View\n reply?: ReplyRef\n reason?: ReasonRepost | { $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.feed.feedViewPost#main' ||\n v.$type === 'app.bsky.feed.feedViewPost')\n )\n}\n\nexport function validateMain(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.feed.feedViewPost#main', v)\n}\n\nexport interface ReplyRef {\n root: AppBskyFeedPost.View\n parent: AppBskyFeedPost.View\n [k: string]: unknown\n}\n\nexport function isReplyRef(v: unknown): v is ReplyRef {\n return (\n isObj(v) &&\n hasProp(v, '$type') &&\n v.$type === 'app.bsky.feed.feedViewPost#replyRef'\n )\n}\n\nexport function validateReplyRef(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.feed.feedViewPost#replyRef', v)\n}\n\nexport interface ReasonRepost {\n by: AppBskyActorRef.WithInfo\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.feedViewPost#reasonRepost'\n )\n}\n\nexport function validateReasonRepost(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.feed.feedViewPost#reasonRepost', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { ValidationResult } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport * as AppBskyEmbedImages from '../embed/images'\nimport * as AppBskyEmbedExternal from '../embed/external'\nimport * as ComAtprotoRepoStrongRef from '../../../com/atproto/repo/strongRef'\nimport * as AppBskyActorRef from '../actor/ref'\n\nexport interface Record {\n text: string\n entities?: Entity[]\n reply?: ReplyRef\n embed?:\n | AppBskyEmbedImages.Main\n | AppBskyEmbedExternal.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\nexport interface Entity {\n index: TextSlice\n /** Expected values are 'mention', 'hashtag', 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/** A text segment. Start is inclusive, end is exclusive. */\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\nexport interface View {\n uri: string\n cid: string\n author: AppBskyActorRef.WithInfo\n record: {}\n embed?:\n | AppBskyEmbedImages.Presented\n | AppBskyEmbedExternal.Presented\n | { $type: string; [k: string]: unknown }\n replyCount: number\n repostCount: number\n upvoteCount: number\n downvoteCount: number\n indexedAt: string\n viewer: ViewerState\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.feed.post#view'\n )\n}\n\nexport function validateView(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.feed.post#view', v)\n}\n\nexport interface ViewerState {\n repost?: string\n upvote?: string\n downvote?: 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.post#viewerState'\n )\n}\n\nexport function validateViewerState(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.feed.post#viewerState', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { ValidationResult } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport * as ComAtprotoRepoStrongRef from '../../../com/atproto/repo/strongRef'\n\nexport interface Record {\n subject: ComAtprotoRepoStrongRef.Main\n direction: 'up' | 'down'\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.vote#main' || v.$type === 'app.bsky.feed.vote')\n )\n}\n\nexport function validateRecord(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.feed.vote#main', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { ValidationResult } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\n\n/** Assertion type: Creator. Defined for app.bsky.graph.assertions's assertion. */\nexport const MAIN = 'app.bsky.graph.assertCreator#main'\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { ValidationResult } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\n\n/** Assertion type: Member. Defined for app.bsky.graph.assertions's assertion. */\nexport const MAIN = 'app.bsky.graph.assertMember#main'\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { ValidationResult } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport * as AppBskyActorRef from '../actor/ref'\n\nexport interface Record {\n assertion: string\n subject: AppBskyActorRef.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.graph.assertion#main' ||\n v.$type === 'app.bsky.graph.assertion')\n )\n}\n\nexport function validateRecord(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.graph.assertion#main', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { ValidationResult } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport * as AppBskyActorRef from '../actor/ref'\nimport * as ComAtprotoRepoStrongRef from '../../../com/atproto/repo/strongRef'\n\nexport interface Record {\n originator: AppBskyActorRef.Main\n assertion: 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.graph.confirmation#main' ||\n v.$type === 'app.bsky.graph.confirmation')\n )\n}\n\nexport function validateRecord(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.graph.confirmation#main', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { ValidationResult } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\nimport * as AppBskyActorRef from '../actor/ref'\n\nexport interface Record {\n subject: AppBskyActorRef.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.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 } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\n\n/** Actor type: User. Defined for app.bsky.system.declaration's actorType. */\nexport const MAIN = 'app.bsky.system.actorUser#main'\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { ValidationResult } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\n\n/** A reference to a app.bsky.system.declaration record. */\nexport interface Main {\n cid: string\n actorType: 'app.bsky.system.actorUser' | (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 === 'app.bsky.system.declRef#main' ||\n v.$type === 'app.bsky.system.declRef')\n )\n}\n\nexport function validateMain(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.system.declRef#main', v)\n}\n", "/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { ValidationResult } from '@atproto/lexicon'\nimport { isObj, hasProp } from '../../../../util'\nimport { lexicons } from '../../../../lexicons'\n\nexport interface Record {\n actorType: 'app.bsky.system.actorUser' | (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.system.declaration#main' ||\n v.$type === 'app.bsky.system.declaration')\n )\n}\n\nexport function validateRecord(v: unknown): ValidationResult {\n return lexicons.validate('app.bsky.system.declaration#main', 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 * as ComAtprotoAccountCreate from './types/com/atproto/account/create'\nimport * as ComAtprotoAccountCreateInviteCode from './types/com/atproto/account/createInviteCode'\nimport * as ComAtprotoAccountDelete from './types/com/atproto/account/delete'\nimport * as ComAtprotoAccountGet from './types/com/atproto/account/get'\nimport * as ComAtprotoAccountRequestDelete from './types/com/atproto/account/requestDelete'\nimport * as ComAtprotoAccountRequestPasswordReset from './types/com/atproto/account/requestPasswordReset'\nimport * as ComAtprotoAccountResetPassword from './types/com/atproto/account/resetPassword'\nimport * as ComAtprotoAdminBlob from './types/com/atproto/admin/blob'\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 ComAtprotoAdminModerationAction from './types/com/atproto/admin/moderationAction'\nimport * as ComAtprotoAdminModerationReport from './types/com/atproto/admin/moderationReport'\nimport * as ComAtprotoAdminRecord from './types/com/atproto/admin/record'\nimport * as ComAtprotoAdminRepo from './types/com/atproto/admin/repo'\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 ComAtprotoBlobUpload from './types/com/atproto/blob/upload'\nimport * as ComAtprotoHandleResolve from './types/com/atproto/handle/resolve'\nimport * as ComAtprotoRepoBatchWrite from './types/com/atproto/repo/batchWrite'\nimport * as ComAtprotoRepoCreateRecord from './types/com/atproto/repo/createRecord'\nimport * as ComAtprotoRepoDeleteRecord from './types/com/atproto/repo/deleteRecord'\nimport * as ComAtprotoRepoDescribe from './types/com/atproto/repo/describe'\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 ComAtprotoRepoRecordRef from './types/com/atproto/repo/recordRef'\nimport * as ComAtprotoRepoRepoRef from './types/com/atproto/repo/repoRef'\nimport * as ComAtprotoRepoStrongRef from './types/com/atproto/repo/strongRef'\nimport * as ComAtprotoReportCreate from './types/com/atproto/report/create'\nimport * as ComAtprotoReportReasonType from './types/com/atproto/report/reasonType'\nimport * as ComAtprotoReportSubject from './types/com/atproto/report/subject'\nimport * as ComAtprotoServerGetAccountsConfig from './types/com/atproto/server/getAccountsConfig'\nimport * as ComAtprotoSessionCreate from './types/com/atproto/session/create'\nimport * as ComAtprotoSessionDelete from './types/com/atproto/session/delete'\nimport * as ComAtprotoSessionGet from './types/com/atproto/session/get'\nimport * as ComAtprotoSessionRefresh from './types/com/atproto/session/refresh'\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 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 AppBskyActorRef from './types/app/bsky/actor/ref'\nimport * as AppBskyActorSearch from './types/app/bsky/actor/search'\nimport * as AppBskyActorSearchTypeahead from './types/app/bsky/actor/searchTypeahead'\nimport * as AppBskyActorUpdateProfile from './types/app/bsky/actor/updateProfile'\nimport * as AppBskyEmbedExternal from './types/app/bsky/embed/external'\nimport * as AppBskyEmbedImages from './types/app/bsky/embed/images'\nimport * as AppBskyFeedFeedViewPost from './types/app/bsky/feed/feedViewPost'\nimport * as AppBskyFeedGetAuthorFeed from './types/app/bsky/feed/getAuthorFeed'\nimport * as AppBskyFeedGetPostThread from './types/app/bsky/feed/getPostThread'\nimport * as AppBskyFeedGetRepostedBy from './types/app/bsky/feed/getRepostedBy'\nimport * as AppBskyFeedGetTimeline from './types/app/bsky/feed/getTimeline'\nimport * as AppBskyFeedGetVotes from './types/app/bsky/feed/getVotes'\nimport * as AppBskyFeedPost from './types/app/bsky/feed/post'\nimport * as AppBskyFeedRepost from './types/app/bsky/feed/repost'\nimport * as AppBskyFeedSetVote from './types/app/bsky/feed/setVote'\nimport * as AppBskyFeedVote from './types/app/bsky/feed/vote'\nimport * as AppBskyGraphAssertCreator from './types/app/bsky/graph/assertCreator'\nimport * as AppBskyGraphAssertMember from './types/app/bsky/graph/assertMember'\nimport * as AppBskyGraphAssertion from './types/app/bsky/graph/assertion'\nimport * as AppBskyGraphConfirmation from './types/app/bsky/graph/confirmation'\nimport * as AppBskyGraphFollow from './types/app/bsky/graph/follow'\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 AppBskyGraphMute from './types/app/bsky/graph/mute'\nimport * as AppBskyGraphUnmute from './types/app/bsky/graph/unmute'\nimport * as AppBskyNotificationGetCount from './types/app/bsky/notification/getCount'\nimport * as AppBskyNotificationList from './types/app/bsky/notification/list'\nimport * as AppBskyNotificationUpdateSeen from './types/app/bsky/notification/updateSeen'\nimport * as AppBskySystemActorUser from './types/app/bsky/system/actorUser'\nimport * as AppBskySystemDeclRef from './types/app/bsky/system/declRef'\nimport * as AppBskySystemDeclaration from './types/app/bsky/system/declaration'\n\nexport * as ComAtprotoAccountCreate from './types/com/atproto/account/create'\nexport * as ComAtprotoAccountCreateInviteCode from './types/com/atproto/account/createInviteCode'\nexport * as ComAtprotoAccountDelete from './types/com/atproto/account/delete'\nexport * as ComAtprotoAccountGet from './types/com/atproto/account/get'\nexport * as ComAtprotoAccountRequestDelete from './types/com/atproto/account/requestDelete'\nexport * as ComAtprotoAccountRequestPasswordReset from './types/com/atproto/account/requestPasswordReset'\nexport * as ComAtprotoAccountResetPassword from './types/com/atproto/account/resetPassword'\nexport * as ComAtprotoAdminBlob from './types/com/atproto/admin/blob'\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 ComAtprotoAdminModerationAction from './types/com/atproto/admin/moderationAction'\nexport * as ComAtprotoAdminModerationReport from './types/com/atproto/admin/moderationReport'\nexport * as ComAtprotoAdminRecord from './types/com/atproto/admin/record'\nexport * as ComAtprotoAdminRepo from './types/com/atproto/admin/repo'\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 ComAtprotoBlobUpload from './types/com/atproto/blob/upload'\nexport * as ComAtprotoHandleResolve from './types/com/atproto/handle/resolve'\nexport * as ComAtprotoRepoBatchWrite from './types/com/atproto/repo/batchWrite'\nexport * as ComAtprotoRepoCreateRecord from './types/com/atproto/repo/createRecord'\nexport * as ComAtprotoRepoDeleteRecord from './types/com/atproto/repo/deleteRecord'\nexport * as ComAtprotoRepoDescribe from './types/com/atproto/repo/describe'\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 ComAtprotoRepoRecordRef from './types/com/atproto/repo/recordRef'\nexport * as ComAtprotoRepoRepoRef from './types/com/atproto/repo/repoRef'\nexport * as ComAtprotoRepoStrongRef from './types/com/atproto/repo/strongRef'\nexport * as ComAtprotoReportCreate from './types/com/atproto/report/create'\nexport * as ComAtprotoReportReasonType from './types/com/atproto/report/reasonType'\nexport * as ComAtprotoReportSubject from './types/com/atproto/report/subject'\nexport * as ComAtprotoServerGetAccountsConfig from './types/com/atproto/server/getAccountsConfig'\nexport * as ComAtprotoSessionCreate from './types/com/atproto/session/create'\nexport * as ComAtprotoSessionDelete from './types/com/atproto/session/delete'\nexport * as ComAtprotoSessionGet from './types/com/atproto/session/get'\nexport * as ComAtprotoSessionRefresh from './types/com/atproto/session/refresh'\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 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 AppBskyActorRef from './types/app/bsky/actor/ref'\nexport * as AppBskyActorSearch from './types/app/bsky/actor/search'\nexport * as AppBskyActorSearchTypeahead from './types/app/bsky/actor/searchTypeahead'\nexport * as AppBskyActorUpdateProfile from './types/app/bsky/actor/updateProfile'\nexport * as AppBskyEmbedExternal from './types/app/bsky/embed/external'\nexport * as AppBskyEmbedImages from './types/app/bsky/embed/images'\nexport * as AppBskyFeedFeedViewPost from './types/app/bsky/feed/feedViewPost'\nexport * as AppBskyFeedGetAuthorFeed from './types/app/bsky/feed/getAuthorFeed'\nexport * as AppBskyFeedGetPostThread from './types/app/bsky/feed/getPostThread'\nexport * as AppBskyFeedGetRepostedBy from './types/app/bsky/feed/getRepostedBy'\nexport * as AppBskyFeedGetTimeline from './types/app/bsky/feed/getTimeline'\nexport * as AppBskyFeedGetVotes from './types/app/bsky/feed/getVotes'\nexport * as AppBskyFeedPost from './types/app/bsky/feed/post'\nexport * as AppBskyFeedRepost from './types/app/bsky/feed/repost'\nexport * as AppBskyFeedSetVote from './types/app/bsky/feed/setVote'\nexport * as AppBskyFeedVote from './types/app/bsky/feed/vote'\nexport * as AppBskyGraphAssertCreator from './types/app/bsky/graph/assertCreator'\nexport * as AppBskyGraphAssertMember from './types/app/bsky/graph/assertMember'\nexport * as AppBskyGraphAssertion from './types/app/bsky/graph/assertion'\nexport * as AppBskyGraphConfirmation from './types/app/bsky/graph/confirmation'\nexport * as AppBskyGraphFollow from './types/app/bsky/graph/follow'\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 AppBskyGraphMute from './types/app/bsky/graph/mute'\nexport * as AppBskyGraphUnmute from './types/app/bsky/graph/unmute'\nexport * as AppBskyNotificationGetCount from './types/app/bsky/notification/getCount'\nexport * as AppBskyNotificationList from './types/app/bsky/notification/list'\nexport * as AppBskyNotificationUpdateSeen from './types/app/bsky/notification/updateSeen'\nexport * as AppBskySystemActorUser from './types/app/bsky/system/actorUser'\nexport * as AppBskySystemDeclRef from './types/app/bsky/system/declRef'\nexport * as AppBskySystemDeclaration from './types/app/bsky/system/declaration'\n\nexport const COM_ATPROTO_ADMIN = {\n ModerationActionTakedown: 'com.atproto.admin.moderationAction#takedown',\n ModerationActionFlag: 'com.atproto.admin.moderationAction#flag',\n ModerationActionAcknowledge: 'com.atproto.admin.moderationAction#acknowledge',\n}\nexport const COM_ATPROTO_REPORT = {\n ReasonTypeSpam: 'com.atproto.report.reasonType#spam',\n ReasonTypeOther: 'com.atproto.report.reasonType#other',\n}\nexport const APP_BSKY_GRAPH = {\n AssertCreator: 'app.bsky.graph.assertCreator',\n AssertMember: 'app.bsky.graph.assertMember',\n}\nexport const APP_BSKY_SYSTEM = {\n ActorUser: 'app.bsky.system.actorUser',\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 account: AccountNS\n admin: AdminNS\n blob: BlobNS\n handle: HandleNS\n repo: RepoNS\n report: ReportNS\n server: ServerNS\n session: SessionNS\n sync: SyncNS\n\n constructor(service: AtpServiceClient) {\n this._service = service\n this.account = new AccountNS(service)\n this.admin = new AdminNS(service)\n this.blob = new BlobNS(service)\n this.handle = new HandleNS(service)\n this.repo = new RepoNS(service)\n this.report = new ReportNS(service)\n this.server = new ServerNS(service)\n this.session = new SessionNS(service)\n this.sync = new SyncNS(service)\n }\n}\n\nexport class AccountNS {\n _service: AtpServiceClient\n\n constructor(service: AtpServiceClient) {\n this._service = service\n }\n\n create(\n data?: ComAtprotoAccountCreate.InputSchema,\n opts?: ComAtprotoAccountCreate.CallOptions,\n ): Promise<ComAtprotoAccountCreate.Response> {\n return this._service.xrpc\n .call('com.atproto.account.create', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoAccountCreate.toKnownErr(e)\n })\n }\n\n createInviteCode(\n data?: ComAtprotoAccountCreateInviteCode.InputSchema,\n opts?: ComAtprotoAccountCreateInviteCode.CallOptions,\n ): Promise<ComAtprotoAccountCreateInviteCode.Response> {\n return this._service.xrpc\n .call('com.atproto.account.createInviteCode', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoAccountCreateInviteCode.toKnownErr(e)\n })\n }\n\n delete(\n data?: ComAtprotoAccountDelete.InputSchema,\n opts?: ComAtprotoAccountDelete.CallOptions,\n ): Promise<ComAtprotoAccountDelete.Response> {\n return this._service.xrpc\n .call('com.atproto.account.delete', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoAccountDelete.toKnownErr(e)\n })\n }\n\n get(\n params?: ComAtprotoAccountGet.QueryParams,\n opts?: ComAtprotoAccountGet.CallOptions,\n ): Promise<ComAtprotoAccountGet.Response> {\n return this._service.xrpc\n .call('com.atproto.account.get', params, undefined, opts)\n .catch((e) => {\n throw ComAtprotoAccountGet.toKnownErr(e)\n })\n }\n\n requestDelete(\n data?: ComAtprotoAccountRequestDelete.InputSchema,\n opts?: ComAtprotoAccountRequestDelete.CallOptions,\n ): Promise<ComAtprotoAccountRequestDelete.Response> {\n return this._service.xrpc\n .call('com.atproto.account.requestDelete', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoAccountRequestDelete.toKnownErr(e)\n })\n }\n\n requestPasswordReset(\n data?: ComAtprotoAccountRequestPasswordReset.InputSchema,\n opts?: ComAtprotoAccountRequestPasswordReset.CallOptions,\n ): Promise<ComAtprotoAccountRequestPasswordReset.Response> {\n return this._service.xrpc\n .call('com.atproto.account.requestPasswordReset', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoAccountRequestPasswordReset.toKnownErr(e)\n })\n }\n\n resetPassword(\n data?: ComAtprotoAccountResetPassword.InputSchema,\n opts?: ComAtprotoAccountResetPassword.CallOptions,\n ): Promise<ComAtprotoAccountResetPassword.Response> {\n return this._service.xrpc\n .call('com.atproto.account.resetPassword', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoAccountResetPassword.toKnownErr(e)\n })\n }\n}\n\nexport class AdminNS {\n _service: AtpServiceClient\n\n constructor(service: AtpServiceClient) {\n this._service = service\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\nexport class BlobNS {\n _service: AtpServiceClient\n\n constructor(service: AtpServiceClient) {\n this._service = service\n }\n\n upload(\n data?: ComAtprotoBlobUpload.InputSchema,\n opts?: ComAtprotoBlobUpload.CallOptions,\n ): Promise<ComAtprotoBlobUpload.Response> {\n return this._service.xrpc\n .call('com.atproto.blob.upload', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoBlobUpload.toKnownErr(e)\n })\n }\n}\n\nexport class HandleNS {\n _service: AtpServiceClient\n\n constructor(service: AtpServiceClient) {\n this._service = service\n }\n\n resolve(\n params?: ComAtprotoHandleResolve.QueryParams,\n opts?: ComAtprotoHandleResolve.CallOptions,\n ): Promise<ComAtprotoHandleResolve.Response> {\n return this._service.xrpc\n .call('com.atproto.handle.resolve', params, undefined, opts)\n .catch((e) => {\n throw ComAtprotoHandleResolve.toKnownErr(e)\n })\n }\n}\n\nexport class RepoNS {\n _service: AtpServiceClient\n\n constructor(service: AtpServiceClient) {\n this._service = service\n }\n\n batchWrite(\n data?: ComAtprotoRepoBatchWrite.InputSchema,\n opts?: ComAtprotoRepoBatchWrite.CallOptions,\n ): Promise<ComAtprotoRepoBatchWrite.Response> {\n return this._service.xrpc\n .call('com.atproto.repo.batchWrite', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoRepoBatchWrite.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 describe(\n params?: ComAtprotoRepoDescribe.QueryParams,\n opts?: ComAtprotoRepoDescribe.CallOptions,\n ): Promise<ComAtprotoRepoDescribe.Response> {\n return this._service.xrpc\n .call('com.atproto.repo.describe', params, undefined, opts)\n .catch((e) => {\n throw ComAtprotoRepoDescribe.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\nexport class ReportNS {\n _service: AtpServiceClient\n\n constructor(service: AtpServiceClient) {\n this._service = service\n }\n\n create(\n data?: ComAtprotoReportCreate.InputSchema,\n opts?: ComAtprotoReportCreate.CallOptions,\n ): Promise<ComAtprotoReportCreate.Response> {\n return this._service.xrpc\n .call('com.atproto.report.create', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoReportCreate.toKnownErr(e)\n })\n }\n}\n\nexport class ServerNS {\n _service: AtpServiceClient\n\n constructor(service: AtpServiceClient) {\n this._service = service\n }\n\n getAccountsConfig(\n params?: ComAtprotoServerGetAccountsConfig.QueryParams,\n opts?: ComAtprotoServerGetAccountsConfig.CallOptions,\n ): Promise<ComAtprotoServerGetAccountsConfig.Response> {\n return this._service.xrpc\n .call('com.atproto.server.getAccountsConfig', params, undefined, opts)\n .catch((e) => {\n throw ComAtprotoServerGetAccountsConfig.toKnownErr(e)\n })\n }\n}\n\nexport class SessionNS {\n _service: AtpServiceClient\n\n constructor(service: AtpServiceClient) {\n this._service = service\n }\n\n create(\n data?: ComAtprotoSessionCreate.InputSchema,\n opts?: ComAtprotoSessionCreate.CallOptions,\n ): Promise<ComAtprotoSessionCreate.Response> {\n return this._service.xrpc\n .call('com.atproto.session.create', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoSessionCreate.toKnownErr(e)\n })\n }\n\n delete(\n data?: ComAtprotoSessionDelete.InputSchema,\n opts?: ComAtprotoSessionDelete.CallOptions,\n ): Promise<ComAtprotoSessionDelete.Response> {\n return this._service.xrpc\n .call('com.atproto.session.delete', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoSessionDelete.toKnownErr(e)\n })\n }\n\n get(\n params?: ComAtprotoSessionGet.QueryParams,\n opts?: ComAtprotoSessionGet.CallOptions,\n ): Promise<ComAtprotoSessionGet.Response> {\n return this._service.xrpc\n .call('com.atproto.session.get', params, undefined, opts)\n .catch((e) => {\n throw ComAtprotoSessionGet.toKnownErr(e)\n })\n }\n\n refresh(\n data?: ComAtprotoSessionRefresh.InputSchema,\n opts?: ComAtprotoSessionRefresh.CallOptions,\n ): Promise<ComAtprotoSessionRefresh.Response> {\n return this._service.xrpc\n .call('com.atproto.session.refresh', opts?.qp, data, opts)\n .catch((e) => {\n throw ComAtprotoSessionRefresh.toKnownErr(e)\n })\n }\n}\n\nexport class SyncNS {\n _service: AtpServiceClient\n\n constructor(service: AtpServiceClient) {\n this._service = service\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\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 system: SystemNS\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.system = new SystemNS(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 search(\n params?: AppBskyActorSearch.QueryParams,\n opts?: AppBskyActorSearch.CallOptions,\n ): Promise<AppBskyActorSearch.Response> {\n return this._service.xrpc\n .call('app.bsky.actor.search', params, undefined, opts)\n .catch((e) => {\n throw AppBskyActorSearch.toKnownErr(e)\n })\n }\n\n searchTypeahead(\n params?: AppBskyActorSearchTypeahead.QueryParams,\n opts?: AppBskyActorSearchTypeahead.CallOptions,\n ): Promise<AppBskyActorSearchTypeahead.Response> {\n return this._service.xrpc\n .call('app.bsky.actor.searchTypeahead', params, undefined, opts)\n .catch((e) => {\n throw AppBskyActorSearchTypeahead.toKnownErr(e)\n })\n }\n\n updateProfile(\n data?: AppBskyActorUpdateProfile.InputSchema,\n opts?: AppBskyActorUpdateProfile.CallOptions,\n ): Promise<AppBskyActorUpdateProfile.Response> {\n return this._service.xrpc\n .call('app.bsky.actor.updateProfile', opts?.qp, data, opts)\n .catch((e) => {\n throw AppBskyActorUpdateProfile.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', ...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 post: PostRecord\n repost: RepostRecord\n vote: VoteRecord\n\n constructor(service: AtpServiceClient) {\n this._service = service\n this.post = new PostRecord(service)\n this.repost = new RepostRecord(service)\n this.vote = new VoteRecord(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 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 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 getVotes(\n params?: AppBskyFeedGetVotes.QueryParams,\n opts?: AppBskyFeedGetVotes.CallOptions,\n ): Promise<AppBskyFeedGetVotes.Response> {\n return this._service.xrpc\n .call('app.bsky.feed.getVotes', params, undefined, opts)\n .catch((e) => {\n throw AppBskyFeedGetVotes.toKnownErr(e)\n })\n }\n\n setVote(\n data?: AppBskyFeedSetVote.InputSchema,\n opts?: AppBskyFeedSetVote.CallOptions,\n ): Promise<AppBskyFeedSetVote.Response> {\n return this._service.xrpc\n .call('app.bsky.feed.setVote', opts?.qp, data, opts)\n .catch((e) => {\n throw AppBskyFeedSetVote.toKnownErr(e)\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 VoteRecord {\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: AppBskyFeedVote.Record }[]\n }> {\n const res = await this._service.xrpc.call('com.atproto.repo.listRecords', {\n collection: 'app.bsky.feed.vote',\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: AppBskyFeedVote.Record }> {\n const res = await this._service.xrpc.call('com.atproto.repo.getRecord', {\n collection: 'app.bsky.feed.vote',\n ...params,\n })\n return res.data\n }\n\n async create(\n params: Omit<\n ComAtprotoRepoCreateRecord.InputSchema,\n 'collection' | 'record'\n >,\n record: AppBskyFeedVote.Record,\n headers?: Record<string, string>,\n ): Promise<{ uri: string; cid: string }> {\n record.$type = 'app.bsky.feed.vote'\n const res = await this._service.xrpc.call(\n 'com.atproto.repo.createRecord',\n undefined,\n { collection: 'app.bsky.feed.vote', ...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.vote', ...params },\n { headers },\n )\n }\n}\n\nexport class GraphNS {\n _service: AtpServiceClient\n assertion: AssertionRecord\n confirmation: ConfirmationRecord\n follow: FollowRecord\n\n constructor(service: AtpServiceClient) {\n this._service = service\n this.assertion = new AssertionRecord(service)\n this.confirmation = new ConfirmationRecord(service)\n this.follow = new FollowRecord(service)\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 mute(\n data?: AppBskyGraphMute.InputSchema,\n opts?: AppBskyGraphMute.CallOptions,\n ): Promise<AppBskyGraphMute.Response> {\n return this._service.xrpc\n .call('app.bsky.graph.mute', opts?.qp, data, opts)\n .catch((e) => {\n throw AppBskyGraphMute.toKnownErr(e)\n })\n }\n\n unmute(\n data?: AppBskyGraphUnmute.InputSchema,\n opts?: AppBskyGraphUnmute.CallOptions,\n ): Promise<AppBskyGraphUnmute.Response> {\n return this._service.xrpc\n .call('app.bsky.graph.unmute', opts?.qp, data, opts)\n .catch((e) => {\n throw AppBskyGraphUnmute.toKnownErr(e)\n })\n }\n}\n\nexport class AssertionRecord {\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: AppBskyGraphAssertion.Record }[]\n }> {\n const res = await this._service.xrpc.call('com.atproto.repo.listRecords', {\n collection: 'app.bsky.graph.assertion',\n ...params,\n })\n return res.data\n }\n\n async get(\n params: Omit<ComAtprotoRepoGetRecord.QueryParams, 'collection'>,\n ): Promise<{\n uri: string\n cid: string\n value: AppBskyGraphAssertion.Record\n }> {\n const res = await this._service.xrpc.call('com.atproto.repo.getRecord', {\n collection: 'app.bsky.graph.assertion',\n ...params,\n })\n return res.data\n }\n\n async create(\n params: Omit<\n ComAtprotoRepoCreateRecord.InputSchema,\n 'collection' | 'record'\n >,\n record: AppBskyGraphAssertion.Record,\n headers?: Record<string, string>,\n ): Promise<{ uri: string; cid: string }> {\n record.$type = 'app.bsky.graph.assertion'\n const res = await this._service.xrpc.call(\n 'com.atproto.repo.createRecord',\n undefined,\n { collection: 'app.bsky.graph.assertion', ...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.assertion', ...params },\n { headers },\n )\n }\n}\n\nexport class ConfirmationRecord {\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: AppBskyGraphConfirmation.Record }[]\n }> {\n const res = await this._service.xrpc.call('com.atproto.repo.listRecords', {\n collection: 'app.bsky.graph.confirmation',\n ...params,\n })\n return res.data\n }\n\n async get(\n params: Omit<ComAtprotoRepoGetRecord.QueryParams, 'collection'>,\n ): Promise<{\n uri: string\n cid: string\n value: AppBskyGraphConfirmation.Record\n }> {\n const res = await this._service.xrpc.call('com.atproto.repo.getRecord', {\n collection: 'app.bsky.graph.confirmation',\n ...params,\n })\n return res.data\n }\n\n async create(\n params: Omit<\n ComAtprotoRepoCreateRecord.InputSchema,\n 'collection' | 'record'\n >,\n record: AppBskyGraphConfirmation.Record,\n headers?: Record<string, string>,\n ): Promise<{ uri: string; cid: string }> {\n record.$type = 'app.bsky.graph.confirmation'\n const res = await this._service.xrpc.call(\n 'com.atproto.repo.createRecord',\n undefined,\n { collection: 'app.bsky.graph.confirmation', ...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.confirmation', ...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 getCount(\n params?: AppBskyNotificationGetCount.QueryParams,\n opts?: AppBskyNotificationGetCount.CallOptions,\n ): Promise<AppBskyNotificationGetCount.Response> {\n return this._service.xrpc\n .call('app.bsky.notification.getCount', params, undefined, opts)\n .catch((e) => {\n throw AppBskyNotificationGetCount.toKnownErr(e)\n })\n }\n\n list(\n params?: AppBskyNotificationList.QueryParams,\n opts?: AppBskyNotificationList.CallOptions,\n ): Promise<AppBskyNotificationList.Response> {\n return this._service.xrpc\n .call('app.bsky.notification.list', params, undefined, opts)\n .catch((e) => {\n throw AppBskyNotificationList.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 SystemNS {\n _service: AtpServiceClient\n declaration: DeclarationRecord\n\n constructor(service: AtpServiceClient) {\n this._service = service\n this.declaration = new DeclarationRecord(service)\n }\n}\n\nexport class DeclarationRecord {\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: AppBskySystemDeclaration.Record }[]\n }> {\n const res = await this._service.xrpc.call('com.atproto.repo.listRecords', {\n collection: 'app.bsky.system.declaration',\n ...params,\n })\n return res.data\n }\n\n async get(\n params: Omit<ComAtprotoRepoGetRecord.QueryParams, 'collection'>,\n ): Promise<{\n uri: string\n cid: string\n value: AppBskySystemDeclaration.Record\n }> {\n const res = await this._service.xrpc.call('com.atproto.repo.getRecord', {\n collection: 'app.bsky.system.declaration',\n ...params,\n })\n return res.data\n }\n\n async create(\n params: Omit<\n ComAtprotoRepoCreateRecord.InputSchema,\n 'collection' | 'record'\n >,\n record: AppBskySystemDeclaration.Record,\n headers?: Record<string, string>,\n ): Promise<{ uri: string; cid: string }> {\n record.$type = 'app.bsky.system.declaration'\n const res = await this._service.xrpc.call(\n 'com.atproto.repo.createRecord',\n undefined,\n { collection: 'app.bsky.system.declaration', ...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.system.declaration', ...params },\n { headers },\n )\n }\n}\n", "import { ErrorResponseBody, errorResponseBody } from '@atproto/xrpc'\nimport { defaultFetchHandler } from '@atproto/xrpc'\nimport {\n AtpBaseClient,\n AtpServiceClient,\n ComAtprotoAccountCreate,\n ComAtprotoSessionCreate,\n ComAtprotoSessionGet,\n ComAtprotoSessionRefresh,\n} from './client'\nimport {\n AtpSessionData,\n AtpAgentCreateAccountOpts,\n AtpAgentLoginOpts,\n AptAgentFetchHandler,\n AtpAgentFetchHandlerResponse,\n AtpAgentGlobalOpts,\n AtpPersistSessionHandler,\n AtpAgentOpts,\n} from './types'\n\nconst REFRESH_SESSION = 'com.atproto.session.refresh'\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 /**\n * The `fetch` implementation; must be implemented for your platform.\n */\n static fetch: AptAgentFetchHandler | 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<ComAtprotoAccountCreate.Response> {\n try {\n const res = await this.api.com.atproto.account.create({\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 }\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<ComAtprotoSessionCreate.Response> {\n try {\n const res = await this.api.com.atproto.session.create({\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 }\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<ComAtprotoSessionGet.Response> {\n try {\n this.session = session\n const res = await this.api.com.atproto.session.get()\n if (!res.success || res.data.did !== this.session.did) {\n throw new Error('Invalid session')\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 * 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\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 ComAtprotoSessionRefresh.OutputSchema {\n try {\n client.xrpc.lex.assertValidXrpcOutput('com.atproto.session.refresh', v)\n return true\n } catch {\n return false\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["t", "r", "n", "e", "i", "o", "a", "u", "d", "blob_exports", "getRecord_exports", "create_exports", "delete_exports", "get_exports", "getRepo_exports", "util", "object", "array", "params", "errorUtil", "errorMap", "ctx", "result", "objectUtil", "issues", "schemas", "elements", "processed", "ZodFirstPartyTypeKind", "ResponseType", "lexicons", "lexicons", "validate", "lexicons", "lexicons", "validate", "lexicons", "lexicons", "params", "params", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "ExpiredTokenError", "InvalidTokenError", "toKnownErr", "ExpiredTokenError", "InvalidTokenError", "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", "isObj", "hasProp", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "getRecord_exports", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "isObj", "hasProp", "toKnownErr", "toKnownErr", "create_exports", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "isObj", "hasProp", "create_exports", "toKnownErr", "toKnownErr", "delete_exports", "toKnownErr", "toKnownErr", "get_exports", "toKnownErr", "toKnownErr", "AccountTakedownError", "toKnownErr", "AccountTakedownError", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "getRecord_exports", "toKnownErr", "toKnownErr", "getRepo_exports", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "isObj", "hasProp", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "isObj", "hasProp", "toKnownErr", "toKnownErr", "isObj", "hasProp", "isUser", "toKnownErr", "validateUser", "toKnownErr", "isUser", "isObj", "hasProp", "validateUser", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "isObj", "hasProp", "toKnownErr", "toKnownErr", "isObj", "hasProp", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "isObj", "hasProp", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "isObj", "hasProp", "toKnownErr", "toKnownErr", "isObj", "hasProp", "toKnownErr", "toKnownErr", "isObj", "hasProp", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "toKnownErr", "isObj", "hasProp", "toKnownErr", "toKnownErr", "blob_exports", "isObj", "hasProp", "isView", "validateView", "isView", "isObj", "hasProp", "validateView", "isView", "isViewDetail", "validateView", "validateViewDetail", "isView", "isObj", "hasProp", "validateView", "isViewDetail", "validateViewDetail", "isModeration", "isView", "isViewDetail", "validateModeration", "validateView", "validateViewDetail", "isView", "isObj", "hasProp", "validateView", "isViewDetail", "validateViewDetail", "isModeration", "validateModeration", "isModeration", "isModerationDetail", "isView", "isViewDetail", "validateModeration", "validateModerationDetail", "validateView", "validateViewDetail", "isView", "isObj", "hasProp", "validateView", "isViewDetail", "validateViewDetail", "isModeration", "validateModeration", "isModerationDetail", "validateModerationDetail", "isObj", "hasProp", "isMain", "validateMain", "isMain", "isObj", "hasProp", "validateMain", "isMain", "validateMain", "isMain", "isObj", "hasProp", "validateMain", "isRecord", "validateRecord", "isObj", "hasProp", "isRecord", "validateRecord", "isMyState", "isRecord", "isView", "validateMyState", "validateRecord", "validateView", "isRecord", "isObj", "hasProp", "validateRecord", "isView", "validateView", "isMyState", "validateMyState", "isMain", "validateMain", "isMain", "isObj", "hasProp", "validateMain", "isMain", "validateMain", "isMain", "isObj", "hasProp", "validateMain", "isMain", "isPresented", "validateMain", "validatePresented", "isMain", "isObj", "hasProp", "validateMain", "isPresented", "validatePresented", "isMain", "validateMain", "isMain", "isObj", "hasProp", "validateMain", "isRecord", "isReplyRef", "isView", "isViewerState", "validateRecord", "validateReplyRef", "validateView", "validateViewerState", "isRecord", "isObj", "hasProp", "validateRecord", "isReplyRef", "validateReplyRef", "isView", "validateView", "isViewerState", "validateViewerState", "isRecord", "validateRecord", "isRecord", "isObj", "hasProp", "validateRecord", "isRecord", "validateRecord", "isRecord", "isObj", "hasProp", "validateRecord", "MAIN", "isRecord", "validateRecord", "isRecord", "isObj", "hasProp", "validateRecord", "isRecord", "validateRecord", "isRecord", "isObj", "hasProp", "validateRecord", "isRecord", "validateRecord", "isRecord", "isObj", "hasProp", "validateRecord", "MAIN", "isMain", "validateMain", "isMain", "isObj", "hasProp", "validateMain", "isRecord", "validateRecord", "isRecord", "isObj", "hasProp", "validateRecord", "toKnownErr", "params"]
|
|
7
7
|
}
|