diff --git a/.gitignore b/.gitignore index 20e6bc3..8df3824 100644 --- a/.gitignore +++ b/.gitignore @@ -23,3 +23,6 @@ Thumbs.db # Vite vite.config.js.timestamp-* vite.config.ts.timestamp-* + +# Nix +result \ No newline at end of file diff --git a/bun.lock b/bun.lock index 1e0e6f2..29e8de0 100644 --- a/bun.lock +++ b/bun.lock @@ -42,10 +42,10 @@ "packages/lexicons": { "name": "@comet/lexicons", "dependencies": { - "@atproto/lexicon": "^0.4.11", + "@atcute/lex-cli": "^2.0.2", + "@atcute/lexicons": "^1.0.3", }, "devDependencies": { - "@atproto/lex-cli": "^0.8.1", "@types/bun": "latest", }, "peerDependencies": { @@ -56,13 +56,13 @@ "packages": { "@ampproject/remapping": ["@ampproject/remapping@2.3.0", "", { "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw=="], - "@atproto/common-web": ["@atproto/common-web@0.4.2", "", { "dependencies": { "graphemer": "^1.4.0", "multiformats": "^9.9.0", "uint8arrays": "3.0.0", "zod": "^3.23.8" } }, "sha512-vrXwGNoFGogodjQvJDxAeP3QbGtawgZute2ed1XdRO0wMixLk3qewtikZm06H259QDJVu6voKC5mubml+WgQUw=="], + "@atcute/lex-cli": ["@atcute/lex-cli@2.0.2", "", { "dependencies": { "@atcute/lexicon-doc": "^1.0.1", "@badrap/valita": "^0.4.4", "@externdefs/collider": "^0.3.0", "picocolors": "^1.1.1", "prettier": "^3.5.3" }, "bin": { "lex-cli": "cli.mjs" } }, "sha512-GdudG2F4FKgFLdE7pB+aj2JOprCHkjlYtG1/rJriHKUZ5CPPfhd8A/+xMXaf9qoNqtyK4L7G3GYpd2PnS9bF8Q=="], - "@atproto/lex-cli": ["@atproto/lex-cli@0.8.1", "", { "dependencies": { "@atproto/lexicon": "^0.4.11", "@atproto/syntax": "^0.4.0", "chalk": "^4.1.2", "commander": "^9.4.0", "prettier": "^3.2.5", "ts-morph": "^24.0.0", "yesno": "^0.4.0", "zod": "^3.23.8" }, "bin": { "lex": "dist/index.js" } }, "sha512-0Ns6kX46gum2jU8bpvWCSVqoYhjmJrOGR/NLfLHgPbJtBlyxMGQAxqpy1x6zOi6SkkRGWYhHvRfr5J8lTHbxjA=="], + "@atcute/lexicon-doc": ["@atcute/lexicon-doc@1.0.1", "", { "dependencies": { "@badrap/valita": "^0.4.4" } }, "sha512-BcuCN8aPXP1QfVAy6B6SXDiNMD0Whqsp4QhFShVpOdGjZIRbSxlRaTkY1rT3peNZy5zi1U5y1LlqGdoXa79wVg=="], - "@atproto/lexicon": ["@atproto/lexicon@0.4.11", "", { "dependencies": { "@atproto/common-web": "^0.4.2", "@atproto/syntax": "^0.4.0", "iso-datestring-validator": "^2.2.2", "multiformats": "^9.9.0", "zod": "^3.23.8" } }, "sha512-btefdnvNz2Ao2I+qbmj0F06HC8IlrM/IBz6qOBS50r0S6uDf5tOO+Mv2tSVdimFkdzyDdLtBI1sV36ONxz2cOw=="], + "@atcute/lexicons": ["@atcute/lexicons@1.0.3", "", { "dependencies": { "esm-env": "^1.2.2" } }, "sha512-R4xa3AMD+uMNn67/Nly0ohieT+vuN2qeV8Oq/mkpb0O3pFTuG7IkhXEGIXVnFY6I/NEQGhWB1FjHYpgRyL35Pw=="], - "@atproto/syntax": ["@atproto/syntax@0.4.0", "", {}, "sha512-b9y5ceHS8YKOfP3mdKmwAx5yVj9294UN7FG2XzP6V5aKUdFazEYRnR9m5n5ZQFKa3GNvz7de9guZCJ/sUTcOAA=="], + "@badrap/valita": ["@badrap/valita@0.4.4", "", {}, "sha512-GEhUCk9c4XbNxi+0YZHZsV4fYNd6HejfWuN4Ti4c02DauX+LyX5WY1Y3WfyZ8Pxxl0zqhs+MLtW98cMh86vv6g=="], "@comet/lexicons": ["@comet/lexicons@workspace:packages/lexicons"], @@ -136,6 +136,8 @@ "@eslint/plugin-kit": ["@eslint/plugin-kit@0.3.1", "", { "dependencies": { "@eslint/core": "^0.14.0", "levn": "^0.4.1" } }, "sha512-0J+zgWxHN+xXONWIyPWKFMgVuJoZuGiIFu8yxk7RJjxkzpGmyja5wRFqZIVtjDVOQpV+Rw0iOAjYPE2eQyjr0w=="], + "@externdefs/collider": ["@externdefs/collider@0.3.0", "", { "peerDependencies": { "@badrap/valita": "^0.4.4" } }, "sha512-x5CpeZ4c8n+1wMFthUMWSQKqCGcQo52/Qbda5ES+JFRRg/D8Ep6/JOvUUq5HExFuv/wW+6UYG2U/mXzw0IAd8Q=="], + "@floating-ui/core": ["@floating-ui/core@1.7.0", "", { "dependencies": { "@floating-ui/utils": "^0.2.9" } }, "sha512-FRdBLykrPPA6P76GGGqlex/e7fbe0F1ykgxHYNXQsH/iTEtjMj/f9bpY5oQqbjt5VgZvgz/uKXbGuROijh3VLA=="], "@floating-ui/dom": ["@floating-ui/dom@1.7.0", "", { "dependencies": { "@floating-ui/core": "^1.7.0", "@floating-ui/utils": "^0.2.9" } }, "sha512-lGTor4VlXcesUMh1cupTUTDoCxMb0V6bm3CnxHzQcw8Eaf1jQbgQX4i02fYgT0vJ82tb5MZ4CZk1LRGkktJCzg=="], @@ -258,8 +260,6 @@ "@tailwindcss/vite": ["@tailwindcss/vite@4.1.7", "", { "dependencies": { "@tailwindcss/node": "4.1.7", "@tailwindcss/oxide": "4.1.7", "tailwindcss": "4.1.7" }, "peerDependencies": { "vite": "^5.2.0 || ^6" } }, "sha512-tYa2fO3zDe41I7WqijyVbRd8oWT0aEID1Eokz5hMT6wShLIHj3yvwj9XbfuloHP9glZ6H+aG2AN/+ZrxJ1Y5RQ=="], - "@ts-morph/common": ["@ts-morph/common@0.25.0", "", { "dependencies": { "minimatch": "^9.0.4", "path-browserify": "^1.0.1", "tinyglobby": "^0.2.9" } }, "sha512-kMnZz+vGGHi4GoHnLmMhGNjm44kGtKUXGnOvrKmMwAuvNjM/PgKVGfUnL7IDvK7Jb2QQ82jq3Zmp04Gy+r3Dkg=="], - "@types/bun": ["@types/bun@1.2.13", "", { "dependencies": { "bun-types": "1.2.13" } }, "sha512-u6vXep/i9VBxoJl3GjZsl/BFIsvML8DfVDO0RYLEwtSZSp981kEO1V5NwRcO1CPJ7AmvpbnDCiMKo3JvbDEjAg=="], "@types/cookie": ["@types/cookie@0.6.0", "", {}, "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA=="], @@ -320,16 +320,12 @@ "clsx": ["clsx@2.1.1", "", {}, "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA=="], - "code-block-writer": ["code-block-writer@13.0.3", "", {}, "sha512-Oofo0pq3IKnsFtuHqSF7TqBfr71aeyZDVJ0HpmqB7FBM2qEigL0iPONSCZSO9pE9dZTAxANe5XHG9Uy0YMv8cg=="], - "color-convert": ["color-convert@2.0.1", "", { "dependencies": { "color-name": "~1.1.4" } }, "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ=="], "color-name": ["color-name@1.1.4", "", {}, "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="], "comet": ["comet@workspace:apps/frontend"], - "commander": ["commander@9.5.0", "", {}, "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ=="], - "concat-map": ["concat-map@0.0.1", "", {}, "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="], "cookie": ["cookie@0.6.0", "", {}, "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw=="], @@ -432,8 +428,6 @@ "isexe": ["isexe@2.0.0", "", {}, "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="], - "iso-datestring-validator": ["iso-datestring-validator@2.2.2", "", {}, "sha512-yLEMkBbLZTlVQqOnQ4FiMujR6T4DEcCb1xizmvXS+OxuhwcbtynoosRzdMA69zZCShCNAbi+gJ71FxZBBXx1SA=="], - "jiti": ["jiti@2.4.2", "", { "bin": { "jiti": "lib/jiti-cli.mjs" } }, "sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A=="], "js-yaml": ["js-yaml@4.1.0", "", { "dependencies": { "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA=="], @@ -502,8 +496,6 @@ "ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="], - "multiformats": ["multiformats@9.9.0", "", {}, "sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg=="], - "nanoid": ["nanoid@3.3.11", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w=="], "natural-compare": ["natural-compare@1.4.0", "", {}, "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw=="], @@ -516,8 +508,6 @@ "parent-module": ["parent-module@1.0.1", "", { "dependencies": { "callsites": "^3.0.0" } }, "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g=="], - "path-browserify": ["path-browserify@1.0.1", "", {}, "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g=="], - "path-exists": ["path-exists@4.0.0", "", {}, "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="], "path-key": ["path-key@3.1.1", "", {}, "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="], @@ -604,8 +594,6 @@ "ts-api-utils": ["ts-api-utils@2.1.0", "", { "peerDependencies": { "typescript": ">=4.8.4" } }, "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ=="], - "ts-morph": ["ts-morph@24.0.0", "", { "dependencies": { "@ts-morph/common": "~0.25.0", "code-block-writer": "^13.0.3" } }, "sha512-2OAOg/Ob5yx9Et7ZX4CvTCc0UFoZHwLEJ+dpDPSUi5TgwwlTlX47w+iFRrEwzUZwYACjq83cgjS/Da50Ga37uw=="], - "tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], "type-check": ["type-check@0.4.0", "", { "dependencies": { "prelude-ls": "^1.2.1" } }, "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew=="], @@ -614,8 +602,6 @@ "typescript-eslint": ["typescript-eslint@8.32.1", "", { "dependencies": { "@typescript-eslint/eslint-plugin": "8.32.1", "@typescript-eslint/parser": "8.32.1", "@typescript-eslint/utils": "8.32.1" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <5.9.0" } }, "sha512-D7el+eaDHAmXvrZBy1zpzSNIRqnCOrkwTgZxTu3MUqRWk8k0q9m9Ho4+vPf7iHtgUfrK/o8IZaEApsxPlHTFCg=="], - "uint8arrays": ["uint8arrays@3.0.0", "", { "dependencies": { "multiformats": "^9.4.2" } }, "sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA=="], - "undici-types": ["undici-types@6.21.0", "", {}, "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ=="], "uri-js": ["uri-js@4.4.1", "", { "dependencies": { "punycode": "^2.1.0" } }, "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg=="], @@ -634,14 +620,10 @@ "yaml": ["yaml@1.10.2", "", {}, "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg=="], - "yesno": ["yesno@0.4.0", "", {}, "sha512-tdBxmHvbXPBKYIg81bMCB7bVeDmHkRzk5rVJyYYXurwKkHq/MCd8rz4HSJUP7hW0H2NlXiq8IFiWvYKEHhlotA=="], - "yocto-queue": ["yocto-queue@0.1.0", "", {}, "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q=="], "zimmerframe": ["zimmerframe@1.1.2", "", {}, "sha512-rAbqEGa8ovJy4pyBxZM70hg4pE6gDgaQ0Sl9M3enG3I0d6H4XSAM3GeNGLKnsBpuijUow064sf7ww1nutC5/3w=="], - "zod": ["zod@3.24.4", "", {}, "sha512-OdqJE9UDRPwWsrHjLN2F8bPxvwJBK22EHLWtanu0LSYr5YqzsaaW3RMgmjwr8Rypg5k+meEJdSPXJZXE/yqOMg=="], - "@eslint-community/eslint-utils/eslint-visitor-keys": ["eslint-visitor-keys@3.4.3", "", {}, "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag=="], "@eslint/eslintrc/globals": ["globals@14.0.0", "", {}, "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ=="], @@ -660,8 +642,6 @@ "@tailwindcss/oxide-wasm32-wasi/tslib": ["tslib@2.8.1", "", { "bundled": true }, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], - "@ts-morph/common/minimatch": ["minimatch@9.0.5", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow=="], - "@typescript-eslint/eslint-plugin/ignore": ["ignore@7.0.4", "", {}, "sha512-gJzzk+PQNznz8ysRrC0aOkBNVRBDtE1n53IqyqEf3PXrYwomFs5q4pGMizBMJF+ykh03insJ27hB8gSrD2Hn8A=="], "@typescript-eslint/typescript-estree/minimatch": ["minimatch@9.0.5", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow=="], @@ -670,8 +650,6 @@ "micromatch/picomatch": ["picomatch@2.3.1", "", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="], - "@ts-morph/common/minimatch/brace-expansion": ["brace-expansion@2.0.1", "", { "dependencies": { "balanced-match": "^1.0.0" } }, "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA=="], - "@typescript-eslint/typescript-estree/minimatch/brace-expansion": ["brace-expansion@2.0.1", "", { "dependencies": { "balanced-match": "^1.0.0" } }, "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA=="], } } diff --git a/package.json b/package.json index fd9c7aa..d48edde 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,8 @@ "private": true, "scripts": { "format": "prettier --write .", - "lint": "prettier --check . && eslint ." + "lint": "prettier --check . && eslint .", + "lexicons": "bun --filter @comet/lexicons generate" }, "type": "module", "workspaces": [ diff --git a/packages/lexicons/gen.sh b/packages/lexicons/gen.sh deleted file mode 100755 index 584443f..0000000 --- a/packages/lexicons/gen.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/usr/bin/env zsh -# Temp solution because Bun's shell glob is broken? -lex gen-server --yes ./src ./defs/**/* \ No newline at end of file diff --git a/packages/lexicons/lex-cli.config.js b/packages/lexicons/lex-cli.config.js new file mode 100644 index 0000000..cd2c82a --- /dev/null +++ b/packages/lexicons/lex-cli.config.js @@ -0,0 +1,6 @@ +import { defineLexiconConfig } from "@atcute/lex-cli"; + +export default defineLexiconConfig({ + files: ["./defs/sh/comet/v0/**/*.json"], + outdir: "./src", +}); diff --git a/packages/lexicons/package.json b/packages/lexicons/package.json index 5cc46e9..0372efc 100644 --- a/packages/lexicons/package.json +++ b/packages/lexicons/package.json @@ -1,19 +1,19 @@ { "name": "@comet/lexicons", "module": "index.ts", - "type": "module", - "private": true, - "scripts": { - "generate": "zsh gen.sh" - }, "devDependencies": { - "@atproto/lex-cli": "^0.8.1", + "@atcute/lex-cli": "^2.0.2", "@types/bun": "latest" }, "peerDependencies": { "typescript": "^5" }, + "private": true, + "scripts": { + "generate": "lex-cli generate -c ./lex-cli.config.js" + }, + "type": "module", "dependencies": { - "@atproto/lexicon": "^0.4.11" + "@atcute/lexicons": "^1.0.3" } } diff --git a/packages/lexicons/src/index.ts b/packages/lexicons/src/index.ts new file mode 100644 index 0000000..a63091e --- /dev/null +++ b/packages/lexicons/src/index.ts @@ -0,0 +1,10 @@ +export * as ShCometV0ActorGetProfile from "./types/sh/comet/v0/actor/getProfile.js"; +export * as ShCometV0ActorProfile from "./types/sh/comet/v0/actor/profile.js"; +export * as ShCometV0FeedComment from "./types/sh/comet/v0/feed/comment.js"; +export * as ShCometV0FeedDefs from "./types/sh/comet/v0/feed/defs.js"; +export * as ShCometV0FeedLike from "./types/sh/comet/v0/feed/like.js"; +export * as ShCometV0FeedPlay from "./types/sh/comet/v0/feed/play.js"; +export * as ShCometV0FeedPlaylist from "./types/sh/comet/v0/feed/playlist.js"; +export * as ShCometV0FeedRepost from "./types/sh/comet/v0/feed/repost.js"; +export * as ShCometV0FeedTrack from "./types/sh/comet/v0/feed/track.js"; +export * as ShCometV0RichtextFacet from "./types/sh/comet/v0/richtext/facet.js"; diff --git a/packages/lexicons/src/types/sh/comet/v0/actor/getProfile.ts b/packages/lexicons/src/types/sh/comet/v0/actor/getProfile.ts new file mode 100644 index 0000000..1eac179 --- /dev/null +++ b/packages/lexicons/src/types/sh/comet/v0/actor/getProfile.ts @@ -0,0 +1,28 @@ +import type {} from "@atcute/lexicons"; +import * as v from "@atcute/lexicons/validations"; +import type {} from "@atcute/lexicons/ambient"; +import * as ShCometV0ActorProfile from "./profile.js"; + +const _mainSchema = /*#__PURE__*/ v.query("sh.comet.v0.actor.getProfile", { + params: /*#__PURE__*/ v.object({ + actor: /*#__PURE__*/ v.actorIdentifierString(), + }), + output: { + type: "lex", + get schema() { + return ShCometV0ActorProfile.viewSchema; + }, + }, +}); + +type main$schematype = typeof _mainSchema; + +export interface mainSchema extends main$schematype {} + +export const mainSchema = _mainSchema as mainSchema; + +declare module "@atcute/lexicons/ambient" { + interface XRPCQueries { + "sh.comet.v0.actor.getProfile": mainSchema; + } +} diff --git a/packages/lexicons/src/types/sh/comet/v0/actor/profile.ts b/packages/lexicons/src/types/sh/comet/v0/actor/profile.ts new file mode 100644 index 0000000..7ccce19 --- /dev/null +++ b/packages/lexicons/src/types/sh/comet/v0/actor/profile.ts @@ -0,0 +1,120 @@ +import type {} from "@atcute/lexicons"; +import * as v from "@atcute/lexicons/validations"; +import type {} from "@atcute/lexicons/ambient"; +import * as ShCometV0RichtextFacet from "../richtext/facet.js"; + +const _mainSchema = /*#__PURE__*/ v.record( + /*#__PURE__*/ v.literal("self"), + /*#__PURE__*/ v.object({ + $type: /*#__PURE__*/ v.literal("sh.comet.v0.actor.profile"), + avatar: /*#__PURE__*/ v.optional(/*#__PURE__*/ v.blob()), + banner: /*#__PURE__*/ v.optional(/*#__PURE__*/ v.blob()), + createdAt: /*#__PURE__*/ v.optional(/*#__PURE__*/ v.datetimeString()), + description: /*#__PURE__*/ v.optional( + /*#__PURE__*/ v.constrain(/*#__PURE__*/ v.string(), [ + /*#__PURE__*/ v.stringLength(0, 2560), + /*#__PURE__*/ v.stringGraphemes(0, 256), + ]), + ), + get descriptionFacets() { + return /*#__PURE__*/ v.optional(ShCometV0RichtextFacet.mainSchema); + }, + displayName: /*#__PURE__*/ v.optional( + /*#__PURE__*/ v.constrain(/*#__PURE__*/ v.string(), [ + /*#__PURE__*/ v.stringLength(0, 640), + /*#__PURE__*/ v.stringGraphemes(0, 64), + ]), + ), + featuredItems: /*#__PURE__*/ v.optional( + /*#__PURE__*/ v.constrain( + /*#__PURE__*/ v.array(/*#__PURE__*/ v.resourceUriString()), + [/*#__PURE__*/ v.arrayLength(0, 5)], + ), + ), + }), +); +const _viewSchema = /*#__PURE__*/ v.object({ + $type: /*#__PURE__*/ v.optional( + /*#__PURE__*/ v.literal("sh.comet.v0.actor.profile#view"), + ), + avatar: /*#__PURE__*/ v.optional(/*#__PURE__*/ v.genericUriString()), + createdAt: /*#__PURE__*/ v.optional(/*#__PURE__*/ v.datetimeString()), + description: /*#__PURE__*/ v.optional( + /*#__PURE__*/ v.constrain(/*#__PURE__*/ v.string(), [ + /*#__PURE__*/ v.stringLength(0, 2560), + /*#__PURE__*/ v.stringGraphemes(0, 256), + ]), + ), + get descriptionFacets() { + return /*#__PURE__*/ v.optional(ShCometV0RichtextFacet.mainSchema); + }, + did: /*#__PURE__*/ v.didString(), + displayName: /*#__PURE__*/ v.optional( + /*#__PURE__*/ v.constrain(/*#__PURE__*/ v.string(), [ + /*#__PURE__*/ v.stringLength(0, 640), + /*#__PURE__*/ v.stringGraphemes(0, 64), + ]), + ), + handle: /*#__PURE__*/ v.handleString(), + indexedAt: /*#__PURE__*/ v.optional(/*#__PURE__*/ v.datetimeString()), + viewer: /*#__PURE__*/ v.optional(/*#__PURE__*/ v.unknown()), +}); +const _viewFullSchema = /*#__PURE__*/ v.object({ + $type: /*#__PURE__*/ v.optional( + /*#__PURE__*/ v.literal("sh.comet.v0.actor.profile#viewFull"), + ), + avatar: /*#__PURE__*/ v.optional(/*#__PURE__*/ v.genericUriString()), + banner: /*#__PURE__*/ v.optional(/*#__PURE__*/ v.genericUriString()), + createdAt: /*#__PURE__*/ v.optional(/*#__PURE__*/ v.datetimeString()), + description: /*#__PURE__*/ v.optional( + /*#__PURE__*/ v.constrain(/*#__PURE__*/ v.string(), [ + /*#__PURE__*/ v.stringLength(0, 2560), + /*#__PURE__*/ v.stringGraphemes(0, 256), + ]), + ), + get descriptionFacets() { + return /*#__PURE__*/ v.optional(ShCometV0RichtextFacet.mainSchema); + }, + did: /*#__PURE__*/ v.didString(), + displayName: /*#__PURE__*/ v.optional( + /*#__PURE__*/ v.constrain(/*#__PURE__*/ v.string(), [ + /*#__PURE__*/ v.stringLength(0, 640), + /*#__PURE__*/ v.stringGraphemes(0, 64), + ]), + ), + featuredItems: /*#__PURE__*/ v.optional( + /*#__PURE__*/ v.constrain( + /*#__PURE__*/ v.array(/*#__PURE__*/ v.resourceUriString()), + [/*#__PURE__*/ v.arrayLength(0, 5)], + ), + ), + followersCount: /*#__PURE__*/ v.optional(/*#__PURE__*/ v.integer()), + followsCount: /*#__PURE__*/ v.optional(/*#__PURE__*/ v.integer()), + handle: /*#__PURE__*/ v.handleString(), + indexedAt: /*#__PURE__*/ v.optional(/*#__PURE__*/ v.datetimeString()), + playlistsCount: /*#__PURE__*/ v.optional(/*#__PURE__*/ v.integer()), + tracksCount: /*#__PURE__*/ v.optional(/*#__PURE__*/ v.integer()), + viewer: /*#__PURE__*/ v.optional(/*#__PURE__*/ v.unknown()), +}); + +type main$schematype = typeof _mainSchema; +type view$schematype = typeof _viewSchema; +type viewFull$schematype = typeof _viewFullSchema; + +export interface mainSchema extends main$schematype {} +export interface viewSchema extends view$schematype {} +export interface viewFullSchema extends viewFull$schematype {} + +export const mainSchema = _mainSchema as mainSchema; +export const viewSchema = _viewSchema as viewSchema; +export const viewFullSchema = _viewFullSchema as viewFullSchema; + +export interface Main extends v.InferInput {} +export interface View extends v.InferInput {} +export interface ViewFull extends v.InferInput {} + +declare module "@atcute/lexicons/ambient" { + interface Records { + "sh.comet.v0.actor.profile": mainSchema; + } +} diff --git a/packages/lexicons/src/types/sh/comet/v0/feed/comment.ts b/packages/lexicons/src/types/sh/comet/v0/feed/comment.ts new file mode 100644 index 0000000..5fc1f6c --- /dev/null +++ b/packages/lexicons/src/types/sh/comet/v0/feed/comment.ts @@ -0,0 +1,43 @@ +import type {} from "@atcute/lexicons"; +import * as v from "@atcute/lexicons/validations"; +import type {} from "@atcute/lexicons/ambient"; +import * as ShCometV0RichtextFacet from "../richtext/facet.js"; + +const _mainSchema = /*#__PURE__*/ v.record( + /*#__PURE__*/ v.tidString(), + /*#__PURE__*/ v.object({ + $type: /*#__PURE__*/ v.literal("sh.comet.v0.feed.comment"), + createdAt: /*#__PURE__*/ v.datetimeString(), + get facets() { + return /*#__PURE__*/ v.optional( + /*#__PURE__*/ v.array(ShCometV0RichtextFacet.mainSchema), + ); + }, + langs: /*#__PURE__*/ v.optional( + /*#__PURE__*/ v.constrain( + /*#__PURE__*/ v.array(/*#__PURE__*/ v.languageCodeString()), + [/*#__PURE__*/ v.arrayLength(0, 3)], + ), + ), + reply: /*#__PURE__*/ v.optional(/*#__PURE__*/ v.resourceUriString()), + subject: /*#__PURE__*/ v.resourceUriString(), + text: /*#__PURE__*/ v.constrain(/*#__PURE__*/ v.string(), [ + /*#__PURE__*/ v.stringLength(1, 3000), + /*#__PURE__*/ v.stringGraphemes(1, 300), + ]), + }), +); + +type main$schematype = typeof _mainSchema; + +export interface mainSchema extends main$schematype {} + +export const mainSchema = _mainSchema as mainSchema; + +export interface Main extends v.InferInput {} + +declare module "@atcute/lexicons/ambient" { + interface Records { + "sh.comet.v0.feed.comment": mainSchema; + } +} diff --git a/packages/lexicons/src/types/sh/comet/v0/feed/defs.ts b/packages/lexicons/src/types/sh/comet/v0/feed/defs.ts new file mode 100644 index 0000000..8560df7 --- /dev/null +++ b/packages/lexicons/src/types/sh/comet/v0/feed/defs.ts @@ -0,0 +1,45 @@ +import type {} from "@atcute/lexicons"; +import * as v from "@atcute/lexicons/validations"; + +const _buyLinkSchema = /*#__PURE__*/ v.literal("sh.comet.v0.feed.defs#buyLink"); +const _downloadLinkSchema = /*#__PURE__*/ v.literal( + "sh.comet.v0.feed.defs#downloadLink", +); +const _linkSchema = /*#__PURE__*/ v.object({ + $type: /*#__PURE__*/ v.optional( + /*#__PURE__*/ v.literal("sh.comet.v0.feed.defs#link"), + ), + type: /*#__PURE__*/ v.string< + | "sh.comet.v0.feed.defs#buyLink" + | "sh.comet.v0.feed.defs#downloadLink" + | (string & {}) + >(), + value: /*#__PURE__*/ v.genericUriString(), +}); +const _viewerStateSchema = /*#__PURE__*/ v.object({ + $type: /*#__PURE__*/ v.optional( + /*#__PURE__*/ v.literal("sh.comet.v0.feed.defs#viewerState"), + ), + like: /*#__PURE__*/ v.optional(/*#__PURE__*/ v.resourceUriString()), + repost: /*#__PURE__*/ v.optional(/*#__PURE__*/ v.resourceUriString()), +}); + +type buyLink$schematype = typeof _buyLinkSchema; +type downloadLink$schematype = typeof _downloadLinkSchema; +type link$schematype = typeof _linkSchema; +type viewerState$schematype = typeof _viewerStateSchema; + +export interface buyLinkSchema extends buyLink$schematype {} +export interface downloadLinkSchema extends downloadLink$schematype {} +export interface linkSchema extends link$schematype {} +export interface viewerStateSchema extends viewerState$schematype {} + +export const buyLinkSchema = _buyLinkSchema as buyLinkSchema; +export const downloadLinkSchema = _downloadLinkSchema as downloadLinkSchema; +export const linkSchema = _linkSchema as linkSchema; +export const viewerStateSchema = _viewerStateSchema as viewerStateSchema; + +export type BuyLink = v.InferInput; +export type DownloadLink = v.InferInput; +export interface Link extends v.InferInput {} +export interface ViewerState extends v.InferInput {} diff --git a/packages/lexicons/src/types/sh/comet/v0/feed/like.ts b/packages/lexicons/src/types/sh/comet/v0/feed/like.ts new file mode 100644 index 0000000..be0d6fa --- /dev/null +++ b/packages/lexicons/src/types/sh/comet/v0/feed/like.ts @@ -0,0 +1,26 @@ +import type {} from "@atcute/lexicons"; +import * as v from "@atcute/lexicons/validations"; +import type {} from "@atcute/lexicons/ambient"; + +const _mainSchema = /*#__PURE__*/ v.record( + /*#__PURE__*/ v.tidString(), + /*#__PURE__*/ v.object({ + $type: /*#__PURE__*/ v.literal("sh.comet.v0.feed.like"), + createdAt: /*#__PURE__*/ v.datetimeString(), + subject: /*#__PURE__*/ v.resourceUriString(), + }), +); + +type main$schematype = typeof _mainSchema; + +export interface mainSchema extends main$schematype {} + +export const mainSchema = _mainSchema as mainSchema; + +export interface Main extends v.InferInput {} + +declare module "@atcute/lexicons/ambient" { + interface Records { + "sh.comet.v0.feed.like": mainSchema; + } +} diff --git a/packages/lexicons/src/types/sh/comet/v0/feed/play.ts b/packages/lexicons/src/types/sh/comet/v0/feed/play.ts new file mode 100644 index 0000000..6490643 --- /dev/null +++ b/packages/lexicons/src/types/sh/comet/v0/feed/play.ts @@ -0,0 +1,26 @@ +import type {} from "@atcute/lexicons"; +import * as v from "@atcute/lexicons/validations"; +import type {} from "@atcute/lexicons/ambient"; + +const _mainSchema = /*#__PURE__*/ v.record( + /*#__PURE__*/ v.tidString(), + /*#__PURE__*/ v.object({ + $type: /*#__PURE__*/ v.literal("sh.comet.v0.feed.play"), + createdAt: /*#__PURE__*/ v.datetimeString(), + subject: /*#__PURE__*/ v.resourceUriString(), + }), +); + +type main$schematype = typeof _mainSchema; + +export interface mainSchema extends main$schematype {} + +export const mainSchema = _mainSchema as mainSchema; + +export interface Main extends v.InferInput {} + +declare module "@atcute/lexicons/ambient" { + interface Records { + "sh.comet.v0.feed.play": mainSchema; + } +} diff --git a/packages/lexicons/src/types/sh/comet/v0/feed/playlist.ts b/packages/lexicons/src/types/sh/comet/v0/feed/playlist.ts new file mode 100644 index 0000000..4dfd553 --- /dev/null +++ b/packages/lexicons/src/types/sh/comet/v0/feed/playlist.ts @@ -0,0 +1,92 @@ +import type {} from "@atcute/lexicons"; +import * as v from "@atcute/lexicons/validations"; +import type {} from "@atcute/lexicons/ambient"; +import * as ShCometV0FeedDefs from "./defs.js"; +import * as ShCometV0RichtextFacet from "../richtext/facet.js"; + +const _albumSchema = /*#__PURE__*/ v.literal("sh.comet.v0.feed.playlist#album"); +const _compilationSchema = /*#__PURE__*/ v.literal( + "sh.comet.v0.feed.playlist#compilation", +); +const _mainSchema = /*#__PURE__*/ v.record( + /*#__PURE__*/ v.tidString(), + /*#__PURE__*/ v.object({ + $type: /*#__PURE__*/ v.literal("sh.comet.v0.feed.playlist"), + createdAt: /*#__PURE__*/ v.datetimeString(), + description: /*#__PURE__*/ v.optional( + /*#__PURE__*/ v.constrain(/*#__PURE__*/ v.string(), [ + /*#__PURE__*/ v.stringLength(0, 20000), + /*#__PURE__*/ v.stringGraphemes(0, 2000), + ]), + ), + get descriptionFacets() { + return /*#__PURE__*/ v.optional(ShCometV0RichtextFacet.mainSchema); + }, + image: /*#__PURE__*/ v.optional(/*#__PURE__*/ v.blob()), + get link() { + return /*#__PURE__*/ v.optional(ShCometV0FeedDefs.linkSchema); + }, + tags: /*#__PURE__*/ v.optional( + /*#__PURE__*/ v.constrain( + /*#__PURE__*/ v.array( + /*#__PURE__*/ v.constrain(/*#__PURE__*/ v.string(), [ + /*#__PURE__*/ v.stringLength(0, 640), + /*#__PURE__*/ v.stringGraphemes(0, 64), + ]), + ), + [/*#__PURE__*/ v.arrayLength(0, 8)], + ), + ), + title: /*#__PURE__*/ v.constrain(/*#__PURE__*/ v.string(), [ + /*#__PURE__*/ v.stringLength(1, 2560), + /*#__PURE__*/ v.stringGraphemes(0, 256), + ]), + tracks: /*#__PURE__*/ v.constrain( + /*#__PURE__*/ v.array(/*#__PURE__*/ v.resourceUriString()), + [/*#__PURE__*/ v.arrayLength(1)], + ), + type: /*#__PURE__*/ v.string< + | "sh.comet.v0.feed.playlist#album" + | "sh.comet.v0.feed.playlist#compilation" + | "sh.comet.v0.feed.playlist#playlist" + | "sh.comet.v0.feed.playlist#podcast" + | (string & {}) + >(), + }), +); +const _playlistSchema = /*#__PURE__*/ v.literal( + "sh.comet.v0.feed.playlist#playlist", +); +const _podcastSchema = /*#__PURE__*/ v.literal( + "sh.comet.v0.feed.playlist#podcast", +); + +type album$schematype = typeof _albumSchema; +type compilation$schematype = typeof _compilationSchema; +type main$schematype = typeof _mainSchema; +type playlist$schematype = typeof _playlistSchema; +type podcast$schematype = typeof _podcastSchema; + +export interface albumSchema extends album$schematype {} +export interface compilationSchema extends compilation$schematype {} +export interface mainSchema extends main$schematype {} +export interface playlistSchema extends playlist$schematype {} +export interface podcastSchema extends podcast$schematype {} + +export const albumSchema = _albumSchema as albumSchema; +export const compilationSchema = _compilationSchema as compilationSchema; +export const mainSchema = _mainSchema as mainSchema; +export const playlistSchema = _playlistSchema as playlistSchema; +export const podcastSchema = _podcastSchema as podcastSchema; + +export type Album = v.InferInput; +export type Compilation = v.InferInput; +export interface Main extends v.InferInput {} +export type Playlist = v.InferInput; +export type Podcast = v.InferInput; + +declare module "@atcute/lexicons/ambient" { + interface Records { + "sh.comet.v0.feed.playlist": mainSchema; + } +} diff --git a/packages/lexicons/src/types/sh/comet/v0/feed/repost.ts b/packages/lexicons/src/types/sh/comet/v0/feed/repost.ts new file mode 100644 index 0000000..fc6222b --- /dev/null +++ b/packages/lexicons/src/types/sh/comet/v0/feed/repost.ts @@ -0,0 +1,26 @@ +import type {} from "@atcute/lexicons"; +import * as v from "@atcute/lexicons/validations"; +import type {} from "@atcute/lexicons/ambient"; + +const _mainSchema = /*#__PURE__*/ v.record( + /*#__PURE__*/ v.tidString(), + /*#__PURE__*/ v.object({ + $type: /*#__PURE__*/ v.literal("sh.comet.v0.feed.repost"), + createdAt: /*#__PURE__*/ v.datetimeString(), + subject: /*#__PURE__*/ v.resourceUriString(), + }), +); + +type main$schematype = typeof _mainSchema; + +export interface mainSchema extends main$schematype {} + +export const mainSchema = _mainSchema as mainSchema; + +export interface Main extends v.InferInput {} + +declare module "@atcute/lexicons/ambient" { + interface Records { + "sh.comet.v0.feed.repost": mainSchema; + } +} diff --git a/packages/lexicons/src/types/sh/comet/v0/feed/track.ts b/packages/lexicons/src/types/sh/comet/v0/feed/track.ts new file mode 100644 index 0000000..e0e75c2 --- /dev/null +++ b/packages/lexicons/src/types/sh/comet/v0/feed/track.ts @@ -0,0 +1,80 @@ +import type {} from "@atcute/lexicons"; +import * as v from "@atcute/lexicons/validations"; +import type {} from "@atcute/lexicons/ambient"; +import * as ShCometV0FeedDefs from "./defs.js"; +import * as ShCometV0RichtextFacet from "../richtext/facet.js"; + +const _mainSchema = /*#__PURE__*/ v.record( + /*#__PURE__*/ v.tidString(), + /*#__PURE__*/ v.object({ + $type: /*#__PURE__*/ v.literal("sh.comet.v0.feed.track"), + audio: /*#__PURE__*/ v.blob(), + createdAt: /*#__PURE__*/ v.datetimeString(), + description: /*#__PURE__*/ v.optional( + /*#__PURE__*/ v.constrain(/*#__PURE__*/ v.string(), [ + /*#__PURE__*/ v.stringLength(0, 20000), + /*#__PURE__*/ v.stringGraphemes(0, 2000), + ]), + ), + get descriptionFacets() { + return /*#__PURE__*/ v.optional(ShCometV0RichtextFacet.mainSchema); + }, + image: /*#__PURE__*/ v.optional(/*#__PURE__*/ v.blob()), + get link() { + return /*#__PURE__*/ v.optional(ShCometV0FeedDefs.linkSchema); + }, + tags: /*#__PURE__*/ v.optional( + /*#__PURE__*/ v.constrain( + /*#__PURE__*/ v.array( + /*#__PURE__*/ v.constrain(/*#__PURE__*/ v.string(), [ + /*#__PURE__*/ v.stringLength(0, 640), + /*#__PURE__*/ v.stringGraphemes(0, 64), + ]), + ), + [/*#__PURE__*/ v.arrayLength(0, 8)], + ), + ), + title: /*#__PURE__*/ v.constrain(/*#__PURE__*/ v.string(), [ + /*#__PURE__*/ v.stringLength(1, 2560), + /*#__PURE__*/ v.stringGraphemes(0, 256), + ]), + }), +); +const _viewSchema = /*#__PURE__*/ v.object({ + $type: /*#__PURE__*/ v.optional( + /*#__PURE__*/ v.literal("sh.comet.v0.feed.track#view"), + ), + audio: /*#__PURE__*/ v.genericUriString(), + author: /*#__PURE__*/ v.unknown(), + cid: /*#__PURE__*/ v.cidString(), + image: /*#__PURE__*/ v.optional(/*#__PURE__*/ v.genericUriString()), + indexedAt: /*#__PURE__*/ v.datetimeString(), + likeCount: /*#__PURE__*/ v.optional(/*#__PURE__*/ v.integer()), + playCount: /*#__PURE__*/ v.optional(/*#__PURE__*/ v.integer()), + get record() { + return mainSchema; + }, + repostCount: /*#__PURE__*/ v.optional(/*#__PURE__*/ v.integer()), + uri: /*#__PURE__*/ v.resourceUriString(), + get viewer() { + return /*#__PURE__*/ v.optional(ShCometV0FeedDefs.viewerStateSchema); + }, +}); + +type main$schematype = typeof _mainSchema; +type view$schematype = typeof _viewSchema; + +export interface mainSchema extends main$schematype {} +export interface viewSchema extends view$schematype {} + +export const mainSchema = _mainSchema as mainSchema; +export const viewSchema = _viewSchema as viewSchema; + +export interface Main extends v.InferInput {} +export interface View extends v.InferInput {} + +declare module "@atcute/lexicons/ambient" { + interface Records { + "sh.comet.v0.feed.track": mainSchema; + } +} diff --git a/packages/lexicons/src/types/sh/comet/v0/richtext/facet.ts b/packages/lexicons/src/types/sh/comet/v0/richtext/facet.ts new file mode 100644 index 0000000..5380dd4 --- /dev/null +++ b/packages/lexicons/src/types/sh/comet/v0/richtext/facet.ts @@ -0,0 +1,78 @@ +import type {} from "@atcute/lexicons"; +import * as v from "@atcute/lexicons/validations"; + +const _byteSliceSchema = /*#__PURE__*/ v.object({ + $type: /*#__PURE__*/ v.optional( + /*#__PURE__*/ v.literal("sh.comet.v0.richtext.facet#byteSlice"), + ), + byteEnd: /*#__PURE__*/ v.integer(), + byteStart: /*#__PURE__*/ v.integer(), +}); +const _linkSchema = /*#__PURE__*/ v.object({ + $type: /*#__PURE__*/ v.optional( + /*#__PURE__*/ v.literal("sh.comet.v0.richtext.facet#link"), + ), + uri: /*#__PURE__*/ v.genericUriString(), +}); +const _mainSchema = /*#__PURE__*/ v.object({ + $type: /*#__PURE__*/ v.optional( + /*#__PURE__*/ v.literal("sh.comet.v0.richtext.facet"), + ), + get features() { + return /*#__PURE__*/ v.array( + /*#__PURE__*/ v.variant([linkSchema, mentionSchema, tagSchema]), + ); + }, + get index() { + return byteSliceSchema; + }, +}); +const _mentionSchema = /*#__PURE__*/ v.object({ + $type: /*#__PURE__*/ v.optional( + /*#__PURE__*/ v.literal("sh.comet.v0.richtext.facet#mention"), + ), + did: /*#__PURE__*/ v.didString(), +}); +const _tagSchema = /*#__PURE__*/ v.object({ + $type: /*#__PURE__*/ v.optional( + /*#__PURE__*/ v.literal("sh.comet.v0.richtext.facet#tag"), + ), + tag: /*#__PURE__*/ v.constrain(/*#__PURE__*/ v.string(), [ + /*#__PURE__*/ v.stringLength(0, 640), + /*#__PURE__*/ v.stringGraphemes(0, 64), + ]), +}); +const _timestampSchema = /*#__PURE__*/ v.object({ + $type: /*#__PURE__*/ v.optional( + /*#__PURE__*/ v.literal("sh.comet.v0.richtext.facet#timestamp"), + ), + timestamp: /*#__PURE__*/ v.optional(/*#__PURE__*/ v.integer()), +}); + +type byteSlice$schematype = typeof _byteSliceSchema; +type link$schematype = typeof _linkSchema; +type main$schematype = typeof _mainSchema; +type mention$schematype = typeof _mentionSchema; +type tag$schematype = typeof _tagSchema; +type timestamp$schematype = typeof _timestampSchema; + +export interface byteSliceSchema extends byteSlice$schematype {} +export interface linkSchema extends link$schematype {} +export interface mainSchema extends main$schematype {} +export interface mentionSchema extends mention$schematype {} +export interface tagSchema extends tag$schematype {} +export interface timestampSchema extends timestamp$schematype {} + +export const byteSliceSchema = _byteSliceSchema as byteSliceSchema; +export const linkSchema = _linkSchema as linkSchema; +export const mainSchema = _mainSchema as mainSchema; +export const mentionSchema = _mentionSchema as mentionSchema; +export const tagSchema = _tagSchema as tagSchema; +export const timestampSchema = _timestampSchema as timestampSchema; + +export interface ByteSlice extends v.InferInput {} +export interface Link extends v.InferInput {} +export interface Main extends v.InferInput {} +export interface Mention extends v.InferInput {} +export interface Tag extends v.InferInput {} +export interface Timestamp extends v.InferInput {}