Music streaming on ATProto!

refactor(lexicons): use atcute for codegen

ovyerus.com 9e090d4b 19508285

verified
+3
.gitignore
···
# Vite
vite.config.js.timestamp-*
vite.config.ts.timestamp-*
+
+
# Nix
+
result
+8 -30
bun.lock
···
"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": {
···
"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"],
···
"@eslint/object-schema": ["@eslint/object-schema@2.1.6", "", {}, "sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA=="],
"@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=="],
···
"@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=="],
···
"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=="],
···
"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=="],
···
"mrmime": ["mrmime@2.0.1", "", {}, "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ=="],
"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=="],
···
"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=="],
···
"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=="],
···
"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=="],
···
"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=="],
···
"@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=="],
···
"fast-glob/glob-parent": ["glob-parent@5.1.2", "", { "dependencies": { "is-glob": "^4.0.1" } }, "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="],
"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=="],
}
+2 -1
package.json
···
"private": true,
"scripts": {
"format": "prettier --write .",
-
"lint": "prettier --check . && eslint ."
+
"lint": "prettier --check . && eslint .",
+
"lexicons": "bun --filter @comet/lexicons generate"
},
"type": "module",
"workspaces": [
-3
packages/lexicons/gen.sh
···
-
#!/usr/bin/env zsh
-
# Temp solution because Bun's shell glob is broken?
-
lex gen-server --yes ./src ./defs/**/*
+6
packages/lexicons/lex-cli.config.js
···
+
import { defineLexiconConfig } from "@atcute/lex-cli";
+
+
export default defineLexiconConfig({
+
files: ["./defs/sh/comet/v0/**/*.json"],
+
outdir: "./src",
+
});
+7 -7
packages/lexicons/package.json
···
{
"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"
}
}
+10
packages/lexicons/src/index.ts
···
+
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";
+28
packages/lexicons/src/types/sh/comet/v0/actor/getProfile.ts
···
+
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;
+
}
+
}
+120
packages/lexicons/src/types/sh/comet/v0/actor/profile.ts
···
+
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<typeof mainSchema> {}
+
export interface View extends v.InferInput<typeof viewSchema> {}
+
export interface ViewFull extends v.InferInput<typeof viewFullSchema> {}
+
+
declare module "@atcute/lexicons/ambient" {
+
interface Records {
+
"sh.comet.v0.actor.profile": mainSchema;
+
}
+
}
+43
packages/lexicons/src/types/sh/comet/v0/feed/comment.ts
···
+
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<typeof mainSchema> {}
+
+
declare module "@atcute/lexicons/ambient" {
+
interface Records {
+
"sh.comet.v0.feed.comment": mainSchema;
+
}
+
}
+45
packages/lexicons/src/types/sh/comet/v0/feed/defs.ts
···
+
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<typeof buyLinkSchema>;
+
export type DownloadLink = v.InferInput<typeof downloadLinkSchema>;
+
export interface Link extends v.InferInput<typeof linkSchema> {}
+
export interface ViewerState extends v.InferInput<typeof viewerStateSchema> {}
+26
packages/lexicons/src/types/sh/comet/v0/feed/like.ts
···
+
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<typeof mainSchema> {}
+
+
declare module "@atcute/lexicons/ambient" {
+
interface Records {
+
"sh.comet.v0.feed.like": mainSchema;
+
}
+
}
+26
packages/lexicons/src/types/sh/comet/v0/feed/play.ts
···
+
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<typeof mainSchema> {}
+
+
declare module "@atcute/lexicons/ambient" {
+
interface Records {
+
"sh.comet.v0.feed.play": mainSchema;
+
}
+
}
+92
packages/lexicons/src/types/sh/comet/v0/feed/playlist.ts
···
+
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<typeof albumSchema>;
+
export type Compilation = v.InferInput<typeof compilationSchema>;
+
export interface Main extends v.InferInput<typeof mainSchema> {}
+
export type Playlist = v.InferInput<typeof playlistSchema>;
+
export type Podcast = v.InferInput<typeof podcastSchema>;
+
+
declare module "@atcute/lexicons/ambient" {
+
interface Records {
+
"sh.comet.v0.feed.playlist": mainSchema;
+
}
+
}
+26
packages/lexicons/src/types/sh/comet/v0/feed/repost.ts
···
+
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<typeof mainSchema> {}
+
+
declare module "@atcute/lexicons/ambient" {
+
interface Records {
+
"sh.comet.v0.feed.repost": mainSchema;
+
}
+
}
+80
packages/lexicons/src/types/sh/comet/v0/feed/track.ts
···
+
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<typeof mainSchema> {}
+
export interface View extends v.InferInput<typeof viewSchema> {}
+
+
declare module "@atcute/lexicons/ambient" {
+
interface Records {
+
"sh.comet.v0.feed.track": mainSchema;
+
}
+
}
+78
packages/lexicons/src/types/sh/comet/v0/richtext/facet.ts
···
+
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<typeof byteSliceSchema> {}
+
export interface Link extends v.InferInput<typeof linkSchema> {}
+
export interface Main extends v.InferInput<typeof mainSchema> {}
+
export interface Mention extends v.InferInput<typeof mentionSchema> {}
+
export interface Tag extends v.InferInput<typeof tagSchema> {}
+
export interface Timestamp extends v.InferInput<typeof timestampSchema> {}