diff --git a/.changeset/config.json b/.changeset/config.json new file mode 100644 index 0000000..d88011f --- /dev/null +++ b/.changeset/config.json @@ -0,0 +1,11 @@ +{ + "$schema": "https://unpkg.com/@changesets/config@3.1.1/schema.json", + "changelog": "@changesets/cli/changelog", + "commit": false, + "fixed": [], + "linked": [], + "access": "restricted", + "baseBranch": "main", + "updateInternalDependencies": "patch", + "ignore": [] +} diff --git a/.changeset/social-pots-smoke.md b/.changeset/social-pots-smoke.md new file mode 100644 index 0000000..85971ad --- /dev/null +++ b/.changeset/social-pots-smoke.md @@ -0,0 +1,5 @@ +--- +"lexdns": minor +--- + +add a script to get a list of known namespaces from @atcute via Github diff --git a/.gitignore b/.gitignore index 2faaca0..448d8b2 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,4 @@ # https://docs.deno.com/runtime/reference/cli/coverage/ coverage/ *.lcov +node_modules/ diff --git a/deno.json b/deno.json index 7687c7f..93043ac 100644 --- a/deno.json +++ b/deno.json @@ -1,6 +1,7 @@ { "tasks": { - "dev": "deno run --watch --allow-net main.ts" + "dev": "deno run --watch --allow-net main.ts", + "generate:namespaces": "deno run --allow-net=api.github.com --allow-write=src/generated/ns.ts scripts/gen_ns.ts && deno fmt src/generated/ns.ts" }, "imports": { "@std/assert": "jsr:@std/assert@1" diff --git a/deno.lock b/deno.lock new file mode 100644 index 0000000..64fed69 --- /dev/null +++ b/deno.lock @@ -0,0 +1,607 @@ +{ + "version": "5", + "specifiers": { + "jsr:@std/assert@1": "1.0.19", + "jsr:@std/internal@^1.0.12": "1.0.14", + "npm:@changesets/cli@^2.31.0": "2.31.0" + }, + "jsr": { + "@std/assert@1.0.19": { + "integrity": "eaada96ee120cb980bc47e040f82814d786fe8162ecc53c91d8df60b8755991e", + "dependencies": [ + "jsr:@std/internal" + ] + }, + "@std/internal@1.0.14": { + "integrity": "291516b3d4c35024d6ffbc0a9df5bf4c64116e05b50012cf846710152d2ffdf7" + } + }, + "npm": { + "@babel/runtime@7.29.7": { + "integrity": "sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw==" + }, + "@changesets/apply-release-plan@7.1.1": { + "integrity": "sha512-9qPCm/rLx/xoOFXIHGB229+4GOL76S4MC+7tyOuTsR6+1jYlfFDQORdvwR5hDA6y4FL2BPt3qpbcQIS+dW85LA==", + "dependencies": [ + "@changesets/config", + "@changesets/get-version-range-type", + "@changesets/git", + "@changesets/should-skip-package", + "@changesets/types@6.1.0", + "@manypkg/get-packages", + "detect-indent", + "fs-extra@7.0.1", + "lodash.startcase", + "outdent", + "prettier", + "resolve-from", + "semver" + ] + }, + "@changesets/assemble-release-plan@6.0.10": { + "integrity": "sha512-rSDcqdJ9KbVyjpBIuCidhvZNIiVt1XaIYp73ycVQRIA5n/j6wQaEk0ChRLMUQ1vkxZe51PTQ9OIhbg6HQMW45A==", + "dependencies": [ + "@changesets/errors", + "@changesets/get-dependents-graph", + "@changesets/should-skip-package", + "@changesets/types@6.1.0", + "@manypkg/get-packages", + "semver" + ] + }, + "@changesets/changelog-git@0.2.1": { + "integrity": "sha512-x/xEleCFLH28c3bQeQIyeZf8lFXyDFVn1SgcBiR2Tw/r4IAWlk1fzxCEZ6NxQAjF2Nwtczoen3OA2qR+UawQ8Q==", + "dependencies": [ + "@changesets/types@6.1.0" + ] + }, + "@changesets/cli@2.31.0": { + "integrity": "sha512-AhI4enNTgHu2IZr6K4WZyf0EPch4XVMn1yOMFmCD9gsfBGqMYaHXls5HyDv6/CL5axVQABz68eG30eCtbr2wFg==", + "dependencies": [ + "@changesets/apply-release-plan", + "@changesets/assemble-release-plan", + "@changesets/changelog-git", + "@changesets/config", + "@changesets/errors", + "@changesets/get-dependents-graph", + "@changesets/get-release-plan", + "@changesets/git", + "@changesets/logger", + "@changesets/pre", + "@changesets/read", + "@changesets/should-skip-package", + "@changesets/types@6.1.0", + "@changesets/write", + "@inquirer/external-editor", + "@manypkg/get-packages", + "ansi-colors", + "enquirer", + "fs-extra@7.0.1", + "mri", + "package-manager-detector", + "picocolors", + "resolve-from", + "semver", + "spawndamnit", + "term-size" + ], + "bin": true + }, + "@changesets/config@3.1.4": { + "integrity": "sha512-pf0bvD/v6WI2cRlZ6hzpjtZdSlXDXMAJ+Iz7xfFzV4ZxJ8OGGAON+1qYc99ZPrijnt4xp3VGG7eNvAOGS24V1Q==", + "dependencies": [ + "@changesets/errors", + "@changesets/get-dependents-graph", + "@changesets/logger", + "@changesets/should-skip-package", + "@changesets/types@6.1.0", + "@manypkg/get-packages", + "fs-extra@7.0.1", + "micromatch" + ] + }, + "@changesets/errors@0.2.0": { + "integrity": "sha512-6BLOQUscTpZeGljvyQXlWOItQyU71kCdGz7Pi8H8zdw6BI0g3m43iL4xKUVPWtG+qrrL9DTjpdn8eYuCQSRpow==", + "dependencies": [ + "extendable-error" + ] + }, + "@changesets/get-dependents-graph@2.1.4": { + "integrity": "sha512-ZsS00x6WvmHq3sQv8oCMwL0f/z3wbXCVuSVTJwCnnmbC/iBdNJGFx1EcbMG4PC6sXRyH69liM4A2WKXzn/kRPg==", + "dependencies": [ + "@changesets/types@6.1.0", + "@manypkg/get-packages", + "picocolors", + "semver" + ] + }, + "@changesets/get-release-plan@4.0.16": { + "integrity": "sha512-2K5Om6CrMPm45rtvckfzWo7e9jOVCKLCnXia5eUPaURH7/LWzri7pK1TycdzAuAtehLkW7VPbWLCSExTHmiI6g==", + "dependencies": [ + "@changesets/assemble-release-plan", + "@changesets/config", + "@changesets/pre", + "@changesets/read", + "@changesets/types@6.1.0", + "@manypkg/get-packages" + ] + }, + "@changesets/get-version-range-type@0.4.0": { + "integrity": "sha512-hwawtob9DryoGTpixy1D3ZXbGgJu1Rhr+ySH2PvTLHvkZuQ7sRT4oQwMh0hbqZH1weAooedEjRsbrWcGLCeyVQ==" + }, + "@changesets/git@3.0.4": { + "integrity": "sha512-BXANzRFkX+XcC1q/d27NKvlJ1yf7PSAgi8JG6dt8EfbHFHi4neau7mufcSca5zRhwOL8j9s6EqsxmT+s+/E6Sw==", + "dependencies": [ + "@changesets/errors", + "@manypkg/get-packages", + "is-subdir", + "micromatch", + "spawndamnit" + ] + }, + "@changesets/logger@0.1.1": { + "integrity": "sha512-OQtR36ZlnuTxKqoW4Sv6x5YIhOmClRd5pWsjZsddYxpWs517R0HkyiefQPIytCVh4ZcC5x9XaG8KTdd5iRQUfg==", + "dependencies": [ + "picocolors" + ] + }, + "@changesets/parse@0.4.3": { + "integrity": "sha512-ZDmNc53+dXdWEv7fqIUSgRQOLYoUom5Z40gmLgmATmYR9NbL6FJJHwakcCpzaeCy+1D0m0n7mT4jj2B/MQPl7A==", + "dependencies": [ + "@changesets/types@6.1.0", + "js-yaml@4.2.0" + ] + }, + "@changesets/pre@2.0.2": { + "integrity": "sha512-HaL/gEyFVvkf9KFg6484wR9s0qjAXlZ8qWPDkTyKF6+zqjBe/I2mygg3MbpZ++hdi0ToqNUF8cjj7fBy0dg8Ug==", + "dependencies": [ + "@changesets/errors", + "@changesets/types@6.1.0", + "@manypkg/get-packages", + "fs-extra@7.0.1" + ] + }, + "@changesets/read@0.6.7": { + "integrity": "sha512-D1G4AUYGrBEk8vj8MGwf75k9GpN6XL3wg8i42P2jZZwFLXnlr2Pn7r9yuQNbaMCarP7ZQWNJbV6XLeysAIMhTA==", + "dependencies": [ + "@changesets/git", + "@changesets/logger", + "@changesets/parse", + "@changesets/types@6.1.0", + "fs-extra@7.0.1", + "p-filter", + "picocolors" + ] + }, + "@changesets/should-skip-package@0.1.2": { + "integrity": "sha512-qAK/WrqWLNCP22UDdBTMPH5f41elVDlsNyat180A33dWxuUDyNpg6fPi/FyTZwRriVjg0L8gnjJn2F9XAoF0qw==", + "dependencies": [ + "@changesets/types@6.1.0", + "@manypkg/get-packages" + ] + }, + "@changesets/types@4.1.0": { + "integrity": "sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw==" + }, + "@changesets/types@6.1.0": { + "integrity": "sha512-rKQcJ+o1nKNgeoYRHKOS07tAMNd3YSN0uHaJOZYjBAgxfV7TUE7JE+z4BzZdQwb5hKaYbayKN5KrYV7ODb2rAA==" + }, + "@changesets/write@0.4.0": { + "integrity": "sha512-CdTLvIOPiCNuH71pyDu3rA+Q0n65cmAbXnwWH84rKGiFumFzkmHNT8KHTMEchcxN+Kl8I54xGUhJ7l3E7X396Q==", + "dependencies": [ + "@changesets/types@6.1.0", + "fs-extra@7.0.1", + "human-id", + "prettier" + ] + }, + "@inquirer/external-editor@1.0.3": { + "integrity": "sha512-RWbSrDiYmO4LbejWY7ttpxczuwQyZLBUyygsA9Nsv95hpzUWwnNTVQmAq3xuh7vNwCp07UTmE5i11XAEExx4RA==", + "dependencies": [ + "chardet", + "iconv-lite" + ] + }, + "@manypkg/find-root@1.1.0": { + "integrity": "sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==", + "dependencies": [ + "@babel/runtime", + "@types/node", + "find-up", + "fs-extra@8.1.0" + ] + }, + "@manypkg/get-packages@1.1.3": { + "integrity": "sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==", + "dependencies": [ + "@babel/runtime", + "@changesets/types@4.1.0", + "@manypkg/find-root", + "fs-extra@8.1.0", + "globby", + "read-yaml-file" + ] + }, + "@nodelib/fs.scandir@2.1.5": { + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dependencies": [ + "@nodelib/fs.stat", + "run-parallel" + ] + }, + "@nodelib/fs.stat@2.0.5": { + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==" + }, + "@nodelib/fs.walk@1.2.8": { + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dependencies": [ + "@nodelib/fs.scandir", + "fastq" + ] + }, + "@types/node@12.20.55": { + "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==" + }, + "ansi-colors@4.1.3": { + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==" + }, + "ansi-regex@5.0.1": { + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, + "argparse@1.0.10": { + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dependencies": [ + "sprintf-js" + ] + }, + "argparse@2.0.1": { + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "array-union@2.1.0": { + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==" + }, + "better-path-resolve@1.0.0": { + "integrity": "sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==", + "dependencies": [ + "is-windows" + ] + }, + "braces@3.0.3": { + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dependencies": [ + "fill-range" + ] + }, + "chardet@2.1.1": { + "integrity": "sha512-PsezH1rqdV9VvyNhxxOW32/d75r01NY7TQCmOqomRo15ZSOKbpTFVsfjghxo6JloQUCGnH4k1LGu0R4yCLlWQQ==" + }, + "cross-spawn@7.0.6": { + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dependencies": [ + "path-key", + "shebang-command", + "which" + ] + }, + "detect-indent@6.1.0": { + "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==" + }, + "dir-glob@3.0.1": { + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dependencies": [ + "path-type" + ] + }, + "enquirer@2.4.1": { + "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", + "dependencies": [ + "ansi-colors", + "strip-ansi" + ] + }, + "esprima@4.0.1": { + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "bin": true + }, + "extendable-error@0.1.7": { + "integrity": "sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==" + }, + "fast-glob@3.3.3": { + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "dependencies": [ + "@nodelib/fs.stat", + "@nodelib/fs.walk", + "glob-parent", + "merge2", + "micromatch" + ] + }, + "fastq@1.20.1": { + "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==", + "dependencies": [ + "reusify" + ] + }, + "fill-range@7.1.1": { + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dependencies": [ + "to-regex-range" + ] + }, + "find-up@4.1.0": { + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dependencies": [ + "locate-path", + "path-exists" + ] + }, + "fs-extra@7.0.1": { + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dependencies": [ + "graceful-fs", + "jsonfile", + "universalify" + ] + }, + "fs-extra@8.1.0": { + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dependencies": [ + "graceful-fs", + "jsonfile", + "universalify" + ] + }, + "glob-parent@5.1.2": { + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": [ + "is-glob" + ] + }, + "globby@11.1.0": { + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dependencies": [ + "array-union", + "dir-glob", + "fast-glob", + "ignore", + "merge2", + "slash" + ] + }, + "graceful-fs@4.2.11": { + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + }, + "human-id@4.2.0": { + "integrity": "sha512-K3GbkIWqyvvlpfhBPlbEvD97TtqBpAYA4kt+cn2lD2x2HuohzZCibcA2nOlnJT6exqvJLggoB5nv2dNf192nEA==", + "bin": true + }, + "iconv-lite@0.7.2": { + "integrity": "sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==", + "dependencies": [ + "safer-buffer" + ] + }, + "ignore@5.3.2": { + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==" + }, + "is-extglob@2.1.1": { + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" + }, + "is-glob@4.0.3": { + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": [ + "is-extglob" + ] + }, + "is-number@7.0.0": { + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "is-subdir@1.2.0": { + "integrity": "sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==", + "dependencies": [ + "better-path-resolve" + ] + }, + "is-windows@1.0.2": { + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" + }, + "isexe@2.0.0": { + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "js-yaml@3.14.2": { + "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==", + "dependencies": [ + "argparse@1.0.10", + "esprima" + ], + "bin": true + }, + "js-yaml@4.2.0": { + "integrity": "sha512-ePWsvanv0DWuDRsW8dnt+R4jQ31SCRCQ7hhNcPXZPsoBZiemuZNYGf7adZdqX2D86j6rvKp3RpCxVTSb8WQlOw==", + "dependencies": [ + "argparse@2.0.1" + ], + "bin": true + }, + "jsonfile@4.0.0": { + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "optionalDependencies": [ + "graceful-fs" + ] + }, + "locate-path@5.0.0": { + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dependencies": [ + "p-locate" + ] + }, + "lodash.startcase@4.4.0": { + "integrity": "sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==" + }, + "merge2@1.4.1": { + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" + }, + "micromatch@4.0.8": { + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dependencies": [ + "braces", + "picomatch" + ] + }, + "mri@1.2.0": { + "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==" + }, + "outdent@0.5.0": { + "integrity": "sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==" + }, + "p-filter@2.1.0": { + "integrity": "sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==", + "dependencies": [ + "p-map" + ] + }, + "p-limit@2.3.0": { + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dependencies": [ + "p-try" + ] + }, + "p-locate@4.1.0": { + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dependencies": [ + "p-limit" + ] + }, + "p-map@2.1.0": { + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==" + }, + "p-try@2.2.0": { + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" + }, + "package-manager-detector@0.2.11": { + "integrity": "sha512-BEnLolu+yuz22S56CU1SUKq3XC3PkwD5wv4ikR4MfGvnRVcmzXR9DwSlW2fEamyTPyXHomBJRzgapeuBvRNzJQ==", + "dependencies": [ + "quansync" + ] + }, + "path-exists@4.0.0": { + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" + }, + "path-key@3.1.1": { + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + }, + "path-type@4.0.0": { + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" + }, + "picocolors@1.1.1": { + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" + }, + "picomatch@2.3.2": { + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==" + }, + "pify@4.0.1": { + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" + }, + "prettier@2.8.8": { + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "bin": true + }, + "quansync@0.2.11": { + "integrity": "sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==" + }, + "queue-microtask@1.2.3": { + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" + }, + "read-yaml-file@1.1.0": { + "integrity": "sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==", + "dependencies": [ + "graceful-fs", + "js-yaml@3.14.2", + "pify", + "strip-bom" + ] + }, + "resolve-from@5.0.0": { + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==" + }, + "reusify@1.1.0": { + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==" + }, + "run-parallel@1.2.0": { + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dependencies": [ + "queue-microtask" + ] + }, + "safer-buffer@2.1.2": { + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "semver@7.8.4": { + "integrity": "sha512-rUCObTnP32Q08R2uuIrt7r9PlEonuTmtuXYcW6s5kjdlj3xbnwe+21yXptAUYcMAABLkYYTtnmzb3w3EDZfueA==", + "bin": true + }, + "shebang-command@2.0.0": { + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dependencies": [ + "shebang-regex" + ] + }, + "shebang-regex@3.0.0": { + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" + }, + "signal-exit@4.1.0": { + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==" + }, + "slash@3.0.0": { + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" + }, + "spawndamnit@3.0.1": { + "integrity": "sha512-MmnduQUuHCoFckZoWnXsTg7JaiLBJrKFj9UI2MbRPGaJeVpsLcVBu6P/IGZovziM/YBsellCmsprgNA+w0CzVg==", + "dependencies": [ + "cross-spawn", + "signal-exit" + ] + }, + "sprintf-js@1.0.3": { + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" + }, + "strip-ansi@6.0.1": { + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": [ + "ansi-regex" + ] + }, + "strip-bom@3.0.0": { + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==" + }, + "term-size@2.2.1": { + "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==" + }, + "to-regex-range@5.0.1": { + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": [ + "is-number" + ] + }, + "universalify@0.1.2": { + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" + }, + "which@2.0.2": { + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dependencies": [ + "isexe" + ], + "bin": true + } + }, + "workspace": { + "dependencies": [ + "jsr:@std/assert@1" + ], + "packageJson": { + "dependencies": [ + "npm:@changesets/cli@^2.31.0" + ] + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..e096e17 --- /dev/null +++ b/package.json @@ -0,0 +1,14 @@ +{ + "name": "lexdns", + "version": "0.0.0", + "private": true, + "type": "module", + "scripts": { + "changeset": "changeset", + "version": "changeset version", + "release": "changeset publish" + }, + "devDependencies": { + "@changesets/cli": "^2.31.0" + } +} diff --git a/scripts/gen_ns.ts b/scripts/gen_ns.ts new file mode 100644 index 0000000..df82dd3 --- /dev/null +++ b/scripts/gen_ns.ts @@ -0,0 +1,188 @@ +const owner = "mary-ext"; +const repo = "atcute"; +const ref = "trunk"; +const outputPath = "src/generated/ns.ts"; + +type GitHubTreeEntry = { + path: string; + type: "blob" | "tree" | "commit"; +}; + +type GitHubTree = { + tree: GitHubTreeEntry[]; + truncated: boolean; +}; + +type GitHubContent = { + content: string; + encoding: string; +}; + +type GitHubDirectoryEntry = { + name: string; + type: "file" | "dir" | "symlink" | "submodule"; +}; + +type PackageManifest = { + name: string; + version: string; + "atcute:lexicons"?: { + mappings?: Record; + }; +}; + +type KnownNamespaceSource = { + source: "atcute"; + repo: string; + ref: string; + commit: string; + packageName: string; + packageVersion: string; + directory: string; + namespacePatterns: string[]; + lexiconNsids: string[]; +}; + +async function githubJson(path: string): Promise { + const response = await fetch(`https://api.github.com/${path}`, { + headers: { + accept: "application/vnd.github+json", + "user-agent": "lexdns-known-namespace-generator", + "x-github-api-version": "2022-11-28", + }, + }); + + if (!response.ok) { + throw new Error(`GitHub API request failed: ${response.status} ${response.statusText} ${path}`); + } + + return (await response.json()) as T; +} + +function decodeBase64(value: string): string { + const bytes = Uint8Array.from(atob(value.replaceAll("\n", "")), (char) => char.charCodeAt(0)); + + return new TextDecoder().decode(bytes); +} + +function dateStamp(date: Date): string { + return date.toISOString().slice(0, 10).replaceAll("-", "_"); +} + +function lexiconPathToNsid(prefix: string, path: string): string { + return path.slice(prefix.length, -".json".length).split("/").join("."); +} + +async function readPackageManifest(directory: string, commit: string): Promise { + const content = await githubJson( + `repos/${owner}/${repo}/contents/${directory}/package.json?ref=${commit}`, + ); + + if (content.encoding !== "base64") { + throw new Error(`Unexpected package.json encoding: ${content.encoding}`); + } + + return JSON.parse(decodeBase64(content.content)) as PackageManifest; +} + +async function main(): Promise { + const branch = await githubJson<{ commit: { sha: string } }>( + `repos/${owner}/${repo}/branches/${ref}`, + ); + const commit = branch.commit.sha; + + const tree = await githubJson( + `repos/${owner}/${repo}/git/trees/${commit}?recursive=1`, + ); + + if (tree.truncated) { + throw new Error("GitHub tree response was truncated"); + } + + const definitionDirs = await githubJson( + `repos/${owner}/${repo}/contents/packages/definitions?ref=${commit}`, + ); + + const packageDirs = definitionDirs + .filter((entry) => entry.type === "dir") + .map((entry) => entry.name) + .sort(); + + const sources: KnownNamespaceSource[] = []; + + for (const packageDir of packageDirs) { + const directory = `packages/definitions/${packageDir}`; + const manifest = await readPackageManifest(directory, commit); + const mappings = manifest["atcute:lexicons"]?.mappings ?? {}; + const namespacePatterns = Object.keys(mappings).sort(); + const lexiconsPrefix = `${directory}/lexicons/`; + + const lexiconNsids = tree.tree + .filter( + (entry) => + entry.type === "blob" && + entry.path.startsWith(lexiconsPrefix) && + entry.path.endsWith(".json"), + ) + .map((entry) => lexiconPathToNsid(lexiconsPrefix, entry.path)) + .sort(); + + sources.push({ + source: "atcute", + repo: `${owner}/${repo}`, + ref, + commit, + packageName: manifest.name, + packageVersion: manifest.version, + directory, + namespacePatterns, + lexiconNsids, + }); + } + + const knownLexiconNsids = [...new Set(sources.flatMap((source) => source.lexiconNsids))].sort(); + const knownNamespacePatterns = [ + ...new Set(sources.flatMap((source) => source.namespacePatterns)), + ].sort(); + + const generated = `// Generated from ${owner}/${repo} packages/definitions at ref ${ref}. +// Do not edit by hand. Regenerate with \`deno task generate:namespaces\`. +// +// date: ${dateStamp(new Date())} +// commit: ${commit} + +export type KnownNamespaceSource = { + source: "atcute"; + repo: string; + ref: string; + commit: string; + packageName: string; + packageVersion: string; + directory: string; + namespacePatterns: string[]; + lexiconNsids: string[]; +}; + +export const knownNamespaceSources = ${JSON.stringify( + sources, + null, + 2, + )} as const satisfies readonly KnownNamespaceSource[]; + +export const knownLexiconNsids = ${JSON.stringify(knownLexiconNsids, null, 2)} as const; + +export const knownNamespacePatterns = ${JSON.stringify(knownNamespacePatterns, null, 2)} as const; + +export const knownNamespaceSummary = { + sourceCount: ${sources.length}, + lexiconCount: ${knownLexiconNsids.length}, +} as const; +`; + + await Deno.writeTextFile(outputPath, generated); + console.log( + `Wrote ${outputPath}: ${sources.length} sources, ${knownLexiconNsids.length} Lexicon NSIDs`, + ); +} + +await main(); diff --git a/src/generated/ns.ts b/src/generated/ns.ts new file mode 100644 index 0000000..bd3ca73 --- /dev/null +++ b/src/generated/ns.ts @@ -0,0 +1,1369 @@ +// Generated from mary-ext/atcute packages/definitions at ref trunk. +// Do not edit by hand. Regenerate with `deno task generate:namespaces`. +// +// date: 2026_06_18 +// commit: 8475fb18b435cb2638a48c3bf33a1f63dd173a9f + +export type KnownNamespaceSource = { + source: "atcute"; + repo: string; + ref: string; + commit: string; + packageName: string; + packageVersion: string; + directory: string; + namespacePatterns: string[]; + lexiconNsids: string[]; +}; + +export const knownNamespaceSources = [ + { + source: "atcute", + repo: "mary-ext/atcute", + ref: "trunk", + commit: "8475fb18b435cb2638a48c3bf33a1f63dd173a9f", + packageName: "@atcute/atproto", + packageVersion: "4.0.2", + directory: "packages/definitions/atproto", + namespacePatterns: ["com.atproto.*"], + lexiconNsids: [ + "com.atproto.admin.defs", + "com.atproto.admin.deleteAccount", + "com.atproto.admin.disableAccountInvites", + "com.atproto.admin.disableInviteCodes", + "com.atproto.admin.enableAccountInvites", + "com.atproto.admin.getAccountInfo", + "com.atproto.admin.getAccountInfos", + "com.atproto.admin.getInviteCodes", + "com.atproto.admin.getSubjectStatus", + "com.atproto.admin.searchAccounts", + "com.atproto.admin.sendEmail", + "com.atproto.admin.updateAccountEmail", + "com.atproto.admin.updateAccountHandle", + "com.atproto.admin.updateAccountPassword", + "com.atproto.admin.updateAccountSigningKey", + "com.atproto.admin.updateSubjectStatus", + "com.atproto.identity.defs", + "com.atproto.identity.getRecommendedDidCredentials", + "com.atproto.identity.refreshIdentity", + "com.atproto.identity.requestPlcOperationSignature", + "com.atproto.identity.resolveDid", + "com.atproto.identity.resolveHandle", + "com.atproto.identity.resolveIdentity", + "com.atproto.identity.signPlcOperation", + "com.atproto.identity.submitPlcOperation", + "com.atproto.identity.updateHandle", + "com.atproto.label.defs", + "com.atproto.label.queryLabels", + "com.atproto.label.subscribeLabels", + "com.atproto.lexicon.resolveLexicon", + "com.atproto.lexicon.schema", + "com.atproto.moderation.createReport", + "com.atproto.moderation.defs", + "com.atproto.repo.applyWrites", + "com.atproto.repo.createRecord", + "com.atproto.repo.defs", + "com.atproto.repo.deleteRecord", + "com.atproto.repo.describeRepo", + "com.atproto.repo.getRecord", + "com.atproto.repo.importRepo", + "com.atproto.repo.listMissingBlobs", + "com.atproto.repo.listRecords", + "com.atproto.repo.putRecord", + "com.atproto.repo.strongRef", + "com.atproto.repo.uploadBlob", + "com.atproto.server.activateAccount", + "com.atproto.server.checkAccountStatus", + "com.atproto.server.confirmEmail", + "com.atproto.server.createAccount", + "com.atproto.server.createAppPassword", + "com.atproto.server.createInviteCode", + "com.atproto.server.createInviteCodes", + "com.atproto.server.createSession", + "com.atproto.server.deactivateAccount", + "com.atproto.server.defs", + "com.atproto.server.deleteAccount", + "com.atproto.server.deleteSession", + "com.atproto.server.describeServer", + "com.atproto.server.getAccountInviteCodes", + "com.atproto.server.getServiceAuth", + "com.atproto.server.getSession", + "com.atproto.server.listAppPasswords", + "com.atproto.server.refreshSession", + "com.atproto.server.requestAccountDelete", + "com.atproto.server.requestEmailConfirmation", + "com.atproto.server.requestEmailUpdate", + "com.atproto.server.requestPasswordReset", + "com.atproto.server.reserveSigningKey", + "com.atproto.server.resetPassword", + "com.atproto.server.revokeAppPassword", + "com.atproto.server.updateEmail", + "com.atproto.sync.defs", + "com.atproto.sync.getBlob", + "com.atproto.sync.getBlocks", + "com.atproto.sync.getCheckout", + "com.atproto.sync.getHead", + "com.atproto.sync.getHostStatus", + "com.atproto.sync.getLatestCommit", + "com.atproto.sync.getRecord", + "com.atproto.sync.getRepo", + "com.atproto.sync.getRepoStatus", + "com.atproto.sync.listBlobs", + "com.atproto.sync.listHosts", + "com.atproto.sync.listRepos", + "com.atproto.sync.listReposByCollection", + "com.atproto.sync.notifyOfUpdate", + "com.atproto.sync.requestCrawl", + "com.atproto.sync.subscribeRepos", + "com.atproto.temp.addReservedHandle", + "com.atproto.temp.checkHandleAvailability", + "com.atproto.temp.checkSignupQueue", + "com.atproto.temp.dereferenceScope", + "com.atproto.temp.fetchLabels", + "com.atproto.temp.requestPhoneVerification", + "com.atproto.temp.revokeAccountCredentials", + ], + }, + { + source: "atcute", + repo: "mary-ext/atcute", + ref: "trunk", + commit: "8475fb18b435cb2638a48c3bf33a1f63dd173a9f", + packageName: "@atcute/bluemoji", + packageVersion: "4.0.1", + directory: "packages/definitions/bluemoji", + namespacePatterns: ["blue.moji.*"], + lexiconNsids: [ + "blue.moji.collection.defs", + "blue.moji.collection.getItem", + "blue.moji.collection.item", + "blue.moji.collection.listCollection", + "blue.moji.collection.putItem", + "blue.moji.collection.saveToCollection", + "blue.moji.packs.defs", + "blue.moji.packs.getActorPacks", + "blue.moji.packs.getPack", + "blue.moji.packs.getPacks", + "blue.moji.packs.pack", + "blue.moji.packs.packitem", + "blue.moji.richtext.facet", + ], + }, + { + source: "atcute", + repo: "mary-ext/atcute", + ref: "trunk", + commit: "8475fb18b435cb2638a48c3bf33a1f63dd173a9f", + packageName: "@atcute/bluesky", + packageVersion: "4.0.10", + directory: "packages/definitions/bluesky", + namespacePatterns: ["app.bsky.*", "chat.bsky.*"], + lexiconNsids: [ + "app.bsky.actor.defs", + "app.bsky.actor.getPreferences", + "app.bsky.actor.getProfile", + "app.bsky.actor.getProfiles", + "app.bsky.actor.getSuggestions", + "app.bsky.actor.profile", + "app.bsky.actor.putPreferences", + "app.bsky.actor.searchActors", + "app.bsky.actor.searchActorsTypeahead", + "app.bsky.actor.status", + "app.bsky.ageassurance.begin", + "app.bsky.ageassurance.defs", + "app.bsky.ageassurance.getConfig", + "app.bsky.ageassurance.getState", + "app.bsky.authCreatePosts", + "app.bsky.authDeleteContent", + "app.bsky.authFullApp", + "app.bsky.authManageFeedDeclarations", + "app.bsky.authManageLabelerService", + "app.bsky.authManageModeration", + "app.bsky.authManageNotifications", + "app.bsky.authManageProfile", + "app.bsky.authViewAll", + "app.bsky.bookmark.createBookmark", + "app.bsky.bookmark.defs", + "app.bsky.bookmark.deleteBookmark", + "app.bsky.bookmark.getBookmarks", + "app.bsky.contact.defs", + "app.bsky.contact.dismissMatch", + "app.bsky.contact.getMatches", + "app.bsky.contact.getSyncStatus", + "app.bsky.contact.importContacts", + "app.bsky.contact.removeData", + "app.bsky.contact.sendNotification", + "app.bsky.contact.startPhoneVerification", + "app.bsky.contact.verifyPhone", + "app.bsky.draft.createDraft", + "app.bsky.draft.defs", + "app.bsky.draft.deleteDraft", + "app.bsky.draft.getDrafts", + "app.bsky.draft.updateDraft", + "app.bsky.embed.defs", + "app.bsky.embed.external", + "app.bsky.embed.gallery", + "app.bsky.embed.getEmbedExternalView", + "app.bsky.embed.images", + "app.bsky.embed.record", + "app.bsky.embed.recordWithMedia", + "app.bsky.embed.video", + "app.bsky.feed.defs", + "app.bsky.feed.describeFeedGenerator", + "app.bsky.feed.generator", + "app.bsky.feed.getActorFeeds", + "app.bsky.feed.getActorLikes", + "app.bsky.feed.getAuthorFeed", + "app.bsky.feed.getFeed", + "app.bsky.feed.getFeedGenerator", + "app.bsky.feed.getFeedGenerators", + "app.bsky.feed.getFeedSkeleton", + "app.bsky.feed.getLikes", + "app.bsky.feed.getListFeed", + "app.bsky.feed.getPostThread", + "app.bsky.feed.getPosts", + "app.bsky.feed.getQuotes", + "app.bsky.feed.getRepostedBy", + "app.bsky.feed.getSuggestedFeeds", + "app.bsky.feed.getTimeline", + "app.bsky.feed.like", + "app.bsky.feed.post", + "app.bsky.feed.postgate", + "app.bsky.feed.repost", + "app.bsky.feed.searchPosts", + "app.bsky.feed.sendInteractions", + "app.bsky.feed.threadgate", + "app.bsky.graph.block", + "app.bsky.graph.defs", + "app.bsky.graph.follow", + "app.bsky.graph.getActorStarterPacks", + "app.bsky.graph.getBlocks", + "app.bsky.graph.getFollowers", + "app.bsky.graph.getFollows", + "app.bsky.graph.getKnownFollowers", + "app.bsky.graph.getList", + "app.bsky.graph.getListBlocks", + "app.bsky.graph.getListMutes", + "app.bsky.graph.getLists", + "app.bsky.graph.getListsWithMembership", + "app.bsky.graph.getMutes", + "app.bsky.graph.getRelationships", + "app.bsky.graph.getStarterPack", + "app.bsky.graph.getStarterPacks", + "app.bsky.graph.getStarterPacksWithMembership", + "app.bsky.graph.getSuggestedFollowsByActor", + "app.bsky.graph.list", + "app.bsky.graph.listblock", + "app.bsky.graph.listitem", + "app.bsky.graph.muteActor", + "app.bsky.graph.muteActorList", + "app.bsky.graph.muteThread", + "app.bsky.graph.searchStarterPacks", + "app.bsky.graph.starterpack", + "app.bsky.graph.unmuteActor", + "app.bsky.graph.unmuteActorList", + "app.bsky.graph.unmuteThread", + "app.bsky.graph.verification", + "app.bsky.labeler.defs", + "app.bsky.labeler.getServices", + "app.bsky.labeler.service", + "app.bsky.notification.declaration", + "app.bsky.notification.defs", + "app.bsky.notification.getPreferences", + "app.bsky.notification.getUnreadCount", + "app.bsky.notification.listActivitySubscriptions", + "app.bsky.notification.listNotifications", + "app.bsky.notification.putActivitySubscription", + "app.bsky.notification.putPreferences", + "app.bsky.notification.putPreferencesV2", + "app.bsky.notification.registerPush", + "app.bsky.notification.unregisterPush", + "app.bsky.notification.updateSeen", + "app.bsky.richtext.facet", + "app.bsky.unspecced.defs", + "app.bsky.unspecced.getAgeAssuranceState", + "app.bsky.unspecced.getConfig", + "app.bsky.unspecced.getOnboardingSuggestedStarterPacks", + "app.bsky.unspecced.getOnboardingSuggestedStarterPacksSkeleton", + "app.bsky.unspecced.getOnboardingSuggestedUsersSkeleton", + "app.bsky.unspecced.getPopularFeedGenerators", + "app.bsky.unspecced.getPostThreadOtherV2", + "app.bsky.unspecced.getPostThreadV2", + "app.bsky.unspecced.getSuggestedFeeds", + "app.bsky.unspecced.getSuggestedFeedsSkeleton", + "app.bsky.unspecced.getSuggestedOnboardingUsers", + "app.bsky.unspecced.getSuggestedStarterPacks", + "app.bsky.unspecced.getSuggestedStarterPacksSkeleton", + "app.bsky.unspecced.getSuggestedUsers", + "app.bsky.unspecced.getSuggestedUsersForDiscover", + "app.bsky.unspecced.getSuggestedUsersForDiscoverSkeleton", + "app.bsky.unspecced.getSuggestedUsersForExplore", + "app.bsky.unspecced.getSuggestedUsersForExploreSkeleton", + "app.bsky.unspecced.getSuggestedUsersForSeeMore", + "app.bsky.unspecced.getSuggestedUsersForSeeMoreSkeleton", + "app.bsky.unspecced.getSuggestedUsersSkeleton", + "app.bsky.unspecced.getSuggestionsSkeleton", + "app.bsky.unspecced.getTaggedSuggestions", + "app.bsky.unspecced.getTrendingTopics", + "app.bsky.unspecced.getTrends", + "app.bsky.unspecced.getTrendsSkeleton", + "app.bsky.unspecced.initAgeAssurance", + "app.bsky.unspecced.searchActorsSkeleton", + "app.bsky.unspecced.searchPostsSkeleton", + "app.bsky.unspecced.searchStarterPacksSkeleton", + "app.bsky.video.defs", + "app.bsky.video.getJobStatus", + "app.bsky.video.getUploadLimits", + "app.bsky.video.uploadVideo", + "chat.bsky.actor.declaration", + "chat.bsky.actor.defs", + "chat.bsky.actor.deleteAccount", + "chat.bsky.actor.exportAccountData", + "chat.bsky.actor.getStatus", + "chat.bsky.authFullChatClient", + "chat.bsky.convo.acceptConvo", + "chat.bsky.convo.addReaction", + "chat.bsky.convo.defs", + "chat.bsky.convo.deleteMessageForSelf", + "chat.bsky.convo.getConvo", + "chat.bsky.convo.getConvoAvailability", + "chat.bsky.convo.getConvoForMembers", + "chat.bsky.convo.getConvoMembers", + "chat.bsky.convo.getLog", + "chat.bsky.convo.getMessages", + "chat.bsky.convo.getUnreadCounts", + "chat.bsky.convo.leaveConvo", + "chat.bsky.convo.listConvoRequests", + "chat.bsky.convo.listConvos", + "chat.bsky.convo.lockConvo", + "chat.bsky.convo.muteConvo", + "chat.bsky.convo.removeReaction", + "chat.bsky.convo.sendMessage", + "chat.bsky.convo.sendMessageBatch", + "chat.bsky.convo.unlockConvo", + "chat.bsky.convo.unmuteConvo", + "chat.bsky.convo.updateAllRead", + "chat.bsky.convo.updateRead", + "chat.bsky.embed.joinLink", + "chat.bsky.group.addMembers", + "chat.bsky.group.approveJoinRequest", + "chat.bsky.group.createGroup", + "chat.bsky.group.createJoinLink", + "chat.bsky.group.defs", + "chat.bsky.group.disableJoinLink", + "chat.bsky.group.editGroup", + "chat.bsky.group.editJoinLink", + "chat.bsky.group.enableJoinLink", + "chat.bsky.group.getJoinLinkPreviews", + "chat.bsky.group.listJoinRequests", + "chat.bsky.group.listMutualGroups", + "chat.bsky.group.rejectJoinRequest", + "chat.bsky.group.removeMembers", + "chat.bsky.group.requestJoin", + "chat.bsky.group.updateJoinRequestsRead", + "chat.bsky.group.withdrawJoinRequest", + "chat.bsky.moderation.defs", + "chat.bsky.moderation.getActorMetadata", + "chat.bsky.moderation.getConvo", + "chat.bsky.moderation.getConvoMembers", + "chat.bsky.moderation.getConvos", + "chat.bsky.moderation.getMessageContext", + "chat.bsky.moderation.subscribeModEvents", + "chat.bsky.moderation.updateActorAccess", + ], + }, + { + source: "atcute", + repo: "mary-ext/atcute", + ref: "trunk", + commit: "8475fb18b435cb2638a48c3bf33a1f63dd173a9f", + packageName: "@atcute/frontpage", + packageVersion: "3.0.1", + directory: "packages/definitions/frontpage", + namespacePatterns: ["fyi.frontpage.*", "fyi.unravel.frontpage.*"], + lexiconNsids: [ + "fyi.frontpage.feed.comment", + "fyi.frontpage.feed.describeFeedGenerator", + "fyi.frontpage.feed.generator", + "fyi.frontpage.feed.getFeedSkeleton", + "fyi.frontpage.feed.post", + "fyi.frontpage.feed.vote", + "fyi.frontpage.richtext.block", + "fyi.unravel.frontpage.comment", + "fyi.unravel.frontpage.post", + "fyi.unravel.frontpage.vote", + ], + }, + { + source: "atcute", + repo: "mary-ext/atcute", + ref: "trunk", + commit: "8475fb18b435cb2638a48c3bf33a1f63dd173a9f", + packageName: "@atcute/germ", + packageVersion: "1.0.1", + directory: "packages/definitions/germ", + namespacePatterns: ["com.germnetwork.*"], + lexiconNsids: ["com.germnetwork.authManageDeclaration", "com.germnetwork.declaration"], + }, + { + source: "atcute", + repo: "mary-ext/atcute", + ref: "trunk", + commit: "8475fb18b435cb2638a48c3bf33a1f63dd173a9f", + packageName: "@atcute/leaflet", + packageVersion: "2.0.6", + directory: "packages/definitions/leaflet", + namespacePatterns: ["pub.leaflet.*"], + lexiconNsids: [ + "pub.leaflet.authFullPermissions", + "pub.leaflet.blocks.blockquote", + "pub.leaflet.blocks.bskyPost", + "pub.leaflet.blocks.button", + "pub.leaflet.blocks.code", + "pub.leaflet.blocks.header", + "pub.leaflet.blocks.horizontalRule", + "pub.leaflet.blocks.iframe", + "pub.leaflet.blocks.image", + "pub.leaflet.blocks.math", + "pub.leaflet.blocks.orderedList", + "pub.leaflet.blocks.page", + "pub.leaflet.blocks.poll", + "pub.leaflet.blocks.postsList", + "pub.leaflet.blocks.signup", + "pub.leaflet.blocks.standardSitePost", + "pub.leaflet.blocks.text", + "pub.leaflet.blocks.unorderedList", + "pub.leaflet.blocks.website", + "pub.leaflet.comment", + "pub.leaflet.content", + "pub.leaflet.document", + "pub.leaflet.graph.subscription", + "pub.leaflet.interactions.recommend", + "pub.leaflet.pages.canvas", + "pub.leaflet.pages.linearDocument", + "pub.leaflet.poll.definition", + "pub.leaflet.poll.vote", + "pub.leaflet.publication", + "pub.leaflet.publicationPage", + "pub.leaflet.richtext.facet", + "pub.leaflet.theme.backgroundImage", + "pub.leaflet.theme.color", + "pub.leaflet.theme.wordmark", + ], + }, + { + source: "atcute", + repo: "mary-ext/atcute", + ref: "trunk", + commit: "8475fb18b435cb2638a48c3bf33a1f63dd173a9f", + packageName: "@atcute/lexicon-community", + packageVersion: "2.0.2", + directory: "packages/definitions/lexicon-community", + namespacePatterns: ["community.lexicon.*"], + lexiconNsids: [ + "community.lexicon.bookmarks.authManageBookmarks", + "community.lexicon.bookmarks.authViewBookmarks", + "community.lexicon.bookmarks.bookmark", + "community.lexicon.bookmarks.getActorBookmarks", + "community.lexicon.calendar.event", + "community.lexicon.calendar.rsvp", + "community.lexicon.interaction.like", + "community.lexicon.location.address", + "community.lexicon.location.fsq", + "community.lexicon.location.geo", + "community.lexicon.location.hthree", + "community.lexicon.payments.webMonetization", + "community.lexicon.preference.ai", + ], + }, + { + source: "atcute", + repo: "mary-ext/atcute", + ref: "trunk", + commit: "8475fb18b435cb2638a48c3bf33a1f63dd173a9f", + packageName: "@atcute/microcosm", + packageVersion: "2.0.1", + directory: "packages/definitions/microcosm", + namespacePatterns: ["blue.microcosm.*", "com.bad-example.*"], + lexiconNsids: [], + }, + { + source: "atcute", + repo: "mary-ext/atcute", + ref: "trunk", + commit: "8475fb18b435cb2638a48c3bf33a1f63dd173a9f", + packageName: "@atcute/ozone", + packageVersion: "4.0.3", + directory: "packages/definitions/ozone", + namespacePatterns: ["tools.ozone.*"], + lexiconNsids: [ + "tools.ozone.communication.createTemplate", + "tools.ozone.communication.defs", + "tools.ozone.communication.deleteTemplate", + "tools.ozone.communication.listTemplates", + "tools.ozone.communication.updateTemplate", + "tools.ozone.hosting.getAccountHistory", + "tools.ozone.moderation.cancelScheduledActions", + "tools.ozone.moderation.defs", + "tools.ozone.moderation.emitEvent", + "tools.ozone.moderation.getAccountTimeline", + "tools.ozone.moderation.getEvent", + "tools.ozone.moderation.getRecord", + "tools.ozone.moderation.getRecords", + "tools.ozone.moderation.getRepo", + "tools.ozone.moderation.getReporterStats", + "tools.ozone.moderation.getRepos", + "tools.ozone.moderation.getSubjects", + "tools.ozone.moderation.listScheduledActions", + "tools.ozone.moderation.queryEvents", + "tools.ozone.moderation.queryStatuses", + "tools.ozone.moderation.scheduleAction", + "tools.ozone.moderation.searchRepos", + "tools.ozone.queue.assignModerator", + "tools.ozone.queue.createQueue", + "tools.ozone.queue.defs", + "tools.ozone.queue.deleteQueue", + "tools.ozone.queue.getAssignments", + "tools.ozone.queue.listQueues", + "tools.ozone.queue.routeReports", + "tools.ozone.queue.unassignModerator", + "tools.ozone.queue.updateQueue", + "tools.ozone.report.assignModerator", + "tools.ozone.report.createActivity", + "tools.ozone.report.defs", + "tools.ozone.report.getAssignments", + "tools.ozone.report.getHistoricalStats", + "tools.ozone.report.getLatestReport", + "tools.ozone.report.getLiveStats", + "tools.ozone.report.getReport", + "tools.ozone.report.listActivities", + "tools.ozone.report.queryReports", + "tools.ozone.report.reassignQueue", + "tools.ozone.report.refreshStats", + "tools.ozone.report.unassignModerator", + "tools.ozone.safelink.addRule", + "tools.ozone.safelink.defs", + "tools.ozone.safelink.queryEvents", + "tools.ozone.safelink.queryRules", + "tools.ozone.safelink.removeRule", + "tools.ozone.safelink.updateRule", + "tools.ozone.server.getConfig", + "tools.ozone.set.addValues", + "tools.ozone.set.defs", + "tools.ozone.set.deleteSet", + "tools.ozone.set.deleteValues", + "tools.ozone.set.getValues", + "tools.ozone.set.querySets", + "tools.ozone.set.upsertSet", + "tools.ozone.setting.defs", + "tools.ozone.setting.listOptions", + "tools.ozone.setting.removeOptions", + "tools.ozone.setting.upsertOption", + "tools.ozone.signature.defs", + "tools.ozone.signature.findCorrelation", + "tools.ozone.signature.findRelatedAccounts", + "tools.ozone.signature.searchAccounts", + "tools.ozone.team.addMember", + "tools.ozone.team.defs", + "tools.ozone.team.deleteMember", + "tools.ozone.team.listMembers", + "tools.ozone.team.updateMember", + "tools.ozone.verification.defs", + "tools.ozone.verification.grantVerifications", + "tools.ozone.verification.listVerifications", + "tools.ozone.verification.revokeVerifications", + ], + }, + { + source: "atcute", + repo: "mary-ext/atcute", + ref: "trunk", + commit: "8475fb18b435cb2638a48c3bf33a1f63dd173a9f", + packageName: "@atcute/pckt", + packageVersion: "1.0.3", + directory: "packages/definitions/pckt", + namespacePatterns: ["blog.pckt.*"], + lexiconNsids: [ + "blog.pckt.authFull", + "blog.pckt.block.blockquote", + "blog.pckt.block.blueskyEmbed", + "blog.pckt.block.bulletList", + "blog.pckt.block.codeBlock", + "blog.pckt.block.gallery", + "blog.pckt.block.hardBreak", + "blog.pckt.block.heading", + "blog.pckt.block.horizontalRule", + "blog.pckt.block.iframe", + "blog.pckt.block.image", + "blog.pckt.block.listItem", + "blog.pckt.block.mention", + "blog.pckt.block.orderedList", + "blog.pckt.block.table", + "blog.pckt.block.tableCell", + "blog.pckt.block.tableHeader", + "blog.pckt.block.tableRow", + "blog.pckt.block.taskItem", + "blog.pckt.block.taskList", + "blog.pckt.block.text", + "blog.pckt.block.website", + "blog.pckt.content", + "blog.pckt.document", + "blog.pckt.domain.getStatus", + "blog.pckt.domain.remove", + "blog.pckt.domain.set", + "blog.pckt.domain.verify", + "blog.pckt.gallery", + "blog.pckt.publication", + "blog.pckt.richtext.facet", + "blog.pckt.theme", + ], + }, + { + source: "atcute", + repo: "mary-ext/atcute", + ref: "trunk", + commit: "8475fb18b435cb2638a48c3bf33a1f63dd173a9f", + packageName: "@atcute/standard-site", + packageVersion: "2.0.1", + directory: "packages/definitions/standard-site", + namespacePatterns: ["site.standard.*"], + lexiconNsids: [ + "site.standard.authFull", + "site.standard.authSocial", + "site.standard.document", + "site.standard.graph.recommend", + "site.standard.graph.subscription", + "site.standard.publication", + "site.standard.theme.basic", + "site.standard.theme.color", + ], + }, + { + source: "atcute", + repo: "mary-ext/atcute", + ref: "trunk", + commit: "8475fb18b435cb2638a48c3bf33a1f63dd173a9f", + packageName: "@atcute/tangled", + packageVersion: "2.0.7", + directory: "packages/definitions/tangled", + namespacePatterns: ["sh.tangled.*"], + lexiconNsids: [ + "sh.tangled.actor.profile", + "sh.tangled.feed.comment", + "sh.tangled.feed.reaction", + "sh.tangled.feed.star", + "sh.tangled.git.refUpdate", + "sh.tangled.git.temp.analyzeMerge", + "sh.tangled.git.temp.defs", + "sh.tangled.git.temp.getArchive", + "sh.tangled.git.temp.getBlob", + "sh.tangled.git.temp.getBranch", + "sh.tangled.git.temp.getCommit", + "sh.tangled.git.temp.getDiff", + "sh.tangled.git.temp.getEntry", + "sh.tangled.git.temp.getHead", + "sh.tangled.git.temp.getTag", + "sh.tangled.git.temp.getTree", + "sh.tangled.git.temp.listBranches", + "sh.tangled.git.temp.listCommits", + "sh.tangled.git.temp.listLanguages", + "sh.tangled.git.temp.listTags", + "sh.tangled.graph.follow", + "sh.tangled.graph.vouch", + "sh.tangled.knot", + "sh.tangled.knot.addMember", + "sh.tangled.knot.listKeys", + "sh.tangled.knot.listMembers", + "sh.tangled.knot.listMembersBy", + "sh.tangled.knot.member", + "sh.tangled.knot.removeMember", + "sh.tangled.knot.subscribeRepos", + "sh.tangled.knot.version", + "sh.tangled.label.definition", + "sh.tangled.label.op", + "sh.tangled.markup.markdown", + "sh.tangled.owner", + "sh.tangled.pipeline", + "sh.tangled.pipeline.cancelPipeline", + "sh.tangled.pipeline.status", + "sh.tangled.publicKey", + "sh.tangled.repo", + "sh.tangled.repo.addCollaborator", + "sh.tangled.repo.addSecret", + "sh.tangled.repo.archive", + "sh.tangled.repo.artifact", + "sh.tangled.repo.blob", + "sh.tangled.repo.branch", + "sh.tangled.repo.branches", + "sh.tangled.repo.collaborator", + "sh.tangled.repo.compare", + "sh.tangled.repo.create", + "sh.tangled.repo.delete", + "sh.tangled.repo.deleteBranch", + "sh.tangled.repo.describeRepo", + "sh.tangled.repo.diff", + "sh.tangled.repo.forkStatus", + "sh.tangled.repo.forkSync", + "sh.tangled.repo.getDefaultBranch", + "sh.tangled.repo.hiddenRef", + "sh.tangled.repo.issue", + "sh.tangled.repo.issue.comment", + "sh.tangled.repo.issue.state", + "sh.tangled.repo.issue.state.closed", + "sh.tangled.repo.issue.state.open", + "sh.tangled.repo.languages", + "sh.tangled.repo.listCollaborators", + "sh.tangled.repo.listCollaboratorsBy", + "sh.tangled.repo.listSecrets", + "sh.tangled.repo.log", + "sh.tangled.repo.merge", + "sh.tangled.repo.mergeCheck", + "sh.tangled.repo.pull", + "sh.tangled.repo.pull.comment", + "sh.tangled.repo.pull.status", + "sh.tangled.repo.pull.status.closed", + "sh.tangled.repo.pull.status.merged", + "sh.tangled.repo.pull.status.open", + "sh.tangled.repo.removeCollaborator", + "sh.tangled.repo.removeSecret", + "sh.tangled.repo.setDefaultBranch", + "sh.tangled.repo.tag", + "sh.tangled.repo.tags", + "sh.tangled.repo.tree", + "sh.tangled.spindle", + "sh.tangled.spindle.member", + "sh.tangled.string", + "sh.tangled.sync.requestCrawl", + ], + }, + { + source: "atcute", + repo: "mary-ext/atcute", + ref: "trunk", + commit: "8475fb18b435cb2638a48c3bf33a1f63dd173a9f", + packageName: "@atcute/whitewind", + packageVersion: "4.0.1", + directory: "packages/definitions/whitewind", + namespacePatterns: ["com.whtwnd.*"], + lexiconNsids: [ + "com.whtwnd.blog.defs", + "com.whtwnd.blog.entry", + "com.whtwnd.blog.getAuthorPosts", + "com.whtwnd.blog.getEntryMetadataByName", + "com.whtwnd.blog.getMentionsByEntry", + "com.whtwnd.blog.notifyOfNewEntry", + ], + }, +] as const satisfies readonly KnownNamespaceSource[]; + +export const knownLexiconNsids = [ + "app.bsky.actor.defs", + "app.bsky.actor.getPreferences", + "app.bsky.actor.getProfile", + "app.bsky.actor.getProfiles", + "app.bsky.actor.getSuggestions", + "app.bsky.actor.profile", + "app.bsky.actor.putPreferences", + "app.bsky.actor.searchActors", + "app.bsky.actor.searchActorsTypeahead", + "app.bsky.actor.status", + "app.bsky.ageassurance.begin", + "app.bsky.ageassurance.defs", + "app.bsky.ageassurance.getConfig", + "app.bsky.ageassurance.getState", + "app.bsky.authCreatePosts", + "app.bsky.authDeleteContent", + "app.bsky.authFullApp", + "app.bsky.authManageFeedDeclarations", + "app.bsky.authManageLabelerService", + "app.bsky.authManageModeration", + "app.bsky.authManageNotifications", + "app.bsky.authManageProfile", + "app.bsky.authViewAll", + "app.bsky.bookmark.createBookmark", + "app.bsky.bookmark.defs", + "app.bsky.bookmark.deleteBookmark", + "app.bsky.bookmark.getBookmarks", + "app.bsky.contact.defs", + "app.bsky.contact.dismissMatch", + "app.bsky.contact.getMatches", + "app.bsky.contact.getSyncStatus", + "app.bsky.contact.importContacts", + "app.bsky.contact.removeData", + "app.bsky.contact.sendNotification", + "app.bsky.contact.startPhoneVerification", + "app.bsky.contact.verifyPhone", + "app.bsky.draft.createDraft", + "app.bsky.draft.defs", + "app.bsky.draft.deleteDraft", + "app.bsky.draft.getDrafts", + "app.bsky.draft.updateDraft", + "app.bsky.embed.defs", + "app.bsky.embed.external", + "app.bsky.embed.gallery", + "app.bsky.embed.getEmbedExternalView", + "app.bsky.embed.images", + "app.bsky.embed.record", + "app.bsky.embed.recordWithMedia", + "app.bsky.embed.video", + "app.bsky.feed.defs", + "app.bsky.feed.describeFeedGenerator", + "app.bsky.feed.generator", + "app.bsky.feed.getActorFeeds", + "app.bsky.feed.getActorLikes", + "app.bsky.feed.getAuthorFeed", + "app.bsky.feed.getFeed", + "app.bsky.feed.getFeedGenerator", + "app.bsky.feed.getFeedGenerators", + "app.bsky.feed.getFeedSkeleton", + "app.bsky.feed.getLikes", + "app.bsky.feed.getListFeed", + "app.bsky.feed.getPostThread", + "app.bsky.feed.getPosts", + "app.bsky.feed.getQuotes", + "app.bsky.feed.getRepostedBy", + "app.bsky.feed.getSuggestedFeeds", + "app.bsky.feed.getTimeline", + "app.bsky.feed.like", + "app.bsky.feed.post", + "app.bsky.feed.postgate", + "app.bsky.feed.repost", + "app.bsky.feed.searchPosts", + "app.bsky.feed.sendInteractions", + "app.bsky.feed.threadgate", + "app.bsky.graph.block", + "app.bsky.graph.defs", + "app.bsky.graph.follow", + "app.bsky.graph.getActorStarterPacks", + "app.bsky.graph.getBlocks", + "app.bsky.graph.getFollowers", + "app.bsky.graph.getFollows", + "app.bsky.graph.getKnownFollowers", + "app.bsky.graph.getList", + "app.bsky.graph.getListBlocks", + "app.bsky.graph.getListMutes", + "app.bsky.graph.getLists", + "app.bsky.graph.getListsWithMembership", + "app.bsky.graph.getMutes", + "app.bsky.graph.getRelationships", + "app.bsky.graph.getStarterPack", + "app.bsky.graph.getStarterPacks", + "app.bsky.graph.getStarterPacksWithMembership", + "app.bsky.graph.getSuggestedFollowsByActor", + "app.bsky.graph.list", + "app.bsky.graph.listblock", + "app.bsky.graph.listitem", + "app.bsky.graph.muteActor", + "app.bsky.graph.muteActorList", + "app.bsky.graph.muteThread", + "app.bsky.graph.searchStarterPacks", + "app.bsky.graph.starterpack", + "app.bsky.graph.unmuteActor", + "app.bsky.graph.unmuteActorList", + "app.bsky.graph.unmuteThread", + "app.bsky.graph.verification", + "app.bsky.labeler.defs", + "app.bsky.labeler.getServices", + "app.bsky.labeler.service", + "app.bsky.notification.declaration", + "app.bsky.notification.defs", + "app.bsky.notification.getPreferences", + "app.bsky.notification.getUnreadCount", + "app.bsky.notification.listActivitySubscriptions", + "app.bsky.notification.listNotifications", + "app.bsky.notification.putActivitySubscription", + "app.bsky.notification.putPreferences", + "app.bsky.notification.putPreferencesV2", + "app.bsky.notification.registerPush", + "app.bsky.notification.unregisterPush", + "app.bsky.notification.updateSeen", + "app.bsky.richtext.facet", + "app.bsky.unspecced.defs", + "app.bsky.unspecced.getAgeAssuranceState", + "app.bsky.unspecced.getConfig", + "app.bsky.unspecced.getOnboardingSuggestedStarterPacks", + "app.bsky.unspecced.getOnboardingSuggestedStarterPacksSkeleton", + "app.bsky.unspecced.getOnboardingSuggestedUsersSkeleton", + "app.bsky.unspecced.getPopularFeedGenerators", + "app.bsky.unspecced.getPostThreadOtherV2", + "app.bsky.unspecced.getPostThreadV2", + "app.bsky.unspecced.getSuggestedFeeds", + "app.bsky.unspecced.getSuggestedFeedsSkeleton", + "app.bsky.unspecced.getSuggestedOnboardingUsers", + "app.bsky.unspecced.getSuggestedStarterPacks", + "app.bsky.unspecced.getSuggestedStarterPacksSkeleton", + "app.bsky.unspecced.getSuggestedUsers", + "app.bsky.unspecced.getSuggestedUsersForDiscover", + "app.bsky.unspecced.getSuggestedUsersForDiscoverSkeleton", + "app.bsky.unspecced.getSuggestedUsersForExplore", + "app.bsky.unspecced.getSuggestedUsersForExploreSkeleton", + "app.bsky.unspecced.getSuggestedUsersForSeeMore", + "app.bsky.unspecced.getSuggestedUsersForSeeMoreSkeleton", + "app.bsky.unspecced.getSuggestedUsersSkeleton", + "app.bsky.unspecced.getSuggestionsSkeleton", + "app.bsky.unspecced.getTaggedSuggestions", + "app.bsky.unspecced.getTrendingTopics", + "app.bsky.unspecced.getTrends", + "app.bsky.unspecced.getTrendsSkeleton", + "app.bsky.unspecced.initAgeAssurance", + "app.bsky.unspecced.searchActorsSkeleton", + "app.bsky.unspecced.searchPostsSkeleton", + "app.bsky.unspecced.searchStarterPacksSkeleton", + "app.bsky.video.defs", + "app.bsky.video.getJobStatus", + "app.bsky.video.getUploadLimits", + "app.bsky.video.uploadVideo", + "blog.pckt.authFull", + "blog.pckt.block.blockquote", + "blog.pckt.block.blueskyEmbed", + "blog.pckt.block.bulletList", + "blog.pckt.block.codeBlock", + "blog.pckt.block.gallery", + "blog.pckt.block.hardBreak", + "blog.pckt.block.heading", + "blog.pckt.block.horizontalRule", + "blog.pckt.block.iframe", + "blog.pckt.block.image", + "blog.pckt.block.listItem", + "blog.pckt.block.mention", + "blog.pckt.block.orderedList", + "blog.pckt.block.table", + "blog.pckt.block.tableCell", + "blog.pckt.block.tableHeader", + "blog.pckt.block.tableRow", + "blog.pckt.block.taskItem", + "blog.pckt.block.taskList", + "blog.pckt.block.text", + "blog.pckt.block.website", + "blog.pckt.content", + "blog.pckt.document", + "blog.pckt.domain.getStatus", + "blog.pckt.domain.remove", + "blog.pckt.domain.set", + "blog.pckt.domain.verify", + "blog.pckt.gallery", + "blog.pckt.publication", + "blog.pckt.richtext.facet", + "blog.pckt.theme", + "blue.moji.collection.defs", + "blue.moji.collection.getItem", + "blue.moji.collection.item", + "blue.moji.collection.listCollection", + "blue.moji.collection.putItem", + "blue.moji.collection.saveToCollection", + "blue.moji.packs.defs", + "blue.moji.packs.getActorPacks", + "blue.moji.packs.getPack", + "blue.moji.packs.getPacks", + "blue.moji.packs.pack", + "blue.moji.packs.packitem", + "blue.moji.richtext.facet", + "chat.bsky.actor.declaration", + "chat.bsky.actor.defs", + "chat.bsky.actor.deleteAccount", + "chat.bsky.actor.exportAccountData", + "chat.bsky.actor.getStatus", + "chat.bsky.authFullChatClient", + "chat.bsky.convo.acceptConvo", + "chat.bsky.convo.addReaction", + "chat.bsky.convo.defs", + "chat.bsky.convo.deleteMessageForSelf", + "chat.bsky.convo.getConvo", + "chat.bsky.convo.getConvoAvailability", + "chat.bsky.convo.getConvoForMembers", + "chat.bsky.convo.getConvoMembers", + "chat.bsky.convo.getLog", + "chat.bsky.convo.getMessages", + "chat.bsky.convo.getUnreadCounts", + "chat.bsky.convo.leaveConvo", + "chat.bsky.convo.listConvoRequests", + "chat.bsky.convo.listConvos", + "chat.bsky.convo.lockConvo", + "chat.bsky.convo.muteConvo", + "chat.bsky.convo.removeReaction", + "chat.bsky.convo.sendMessage", + "chat.bsky.convo.sendMessageBatch", + "chat.bsky.convo.unlockConvo", + "chat.bsky.convo.unmuteConvo", + "chat.bsky.convo.updateAllRead", + "chat.bsky.convo.updateRead", + "chat.bsky.embed.joinLink", + "chat.bsky.group.addMembers", + "chat.bsky.group.approveJoinRequest", + "chat.bsky.group.createGroup", + "chat.bsky.group.createJoinLink", + "chat.bsky.group.defs", + "chat.bsky.group.disableJoinLink", + "chat.bsky.group.editGroup", + "chat.bsky.group.editJoinLink", + "chat.bsky.group.enableJoinLink", + "chat.bsky.group.getJoinLinkPreviews", + "chat.bsky.group.listJoinRequests", + "chat.bsky.group.listMutualGroups", + "chat.bsky.group.rejectJoinRequest", + "chat.bsky.group.removeMembers", + "chat.bsky.group.requestJoin", + "chat.bsky.group.updateJoinRequestsRead", + "chat.bsky.group.withdrawJoinRequest", + "chat.bsky.moderation.defs", + "chat.bsky.moderation.getActorMetadata", + "chat.bsky.moderation.getConvo", + "chat.bsky.moderation.getConvoMembers", + "chat.bsky.moderation.getConvos", + "chat.bsky.moderation.getMessageContext", + "chat.bsky.moderation.subscribeModEvents", + "chat.bsky.moderation.updateActorAccess", + "com.atproto.admin.defs", + "com.atproto.admin.deleteAccount", + "com.atproto.admin.disableAccountInvites", + "com.atproto.admin.disableInviteCodes", + "com.atproto.admin.enableAccountInvites", + "com.atproto.admin.getAccountInfo", + "com.atproto.admin.getAccountInfos", + "com.atproto.admin.getInviteCodes", + "com.atproto.admin.getSubjectStatus", + "com.atproto.admin.searchAccounts", + "com.atproto.admin.sendEmail", + "com.atproto.admin.updateAccountEmail", + "com.atproto.admin.updateAccountHandle", + "com.atproto.admin.updateAccountPassword", + "com.atproto.admin.updateAccountSigningKey", + "com.atproto.admin.updateSubjectStatus", + "com.atproto.identity.defs", + "com.atproto.identity.getRecommendedDidCredentials", + "com.atproto.identity.refreshIdentity", + "com.atproto.identity.requestPlcOperationSignature", + "com.atproto.identity.resolveDid", + "com.atproto.identity.resolveHandle", + "com.atproto.identity.resolveIdentity", + "com.atproto.identity.signPlcOperation", + "com.atproto.identity.submitPlcOperation", + "com.atproto.identity.updateHandle", + "com.atproto.label.defs", + "com.atproto.label.queryLabels", + "com.atproto.label.subscribeLabels", + "com.atproto.lexicon.resolveLexicon", + "com.atproto.lexicon.schema", + "com.atproto.moderation.createReport", + "com.atproto.moderation.defs", + "com.atproto.repo.applyWrites", + "com.atproto.repo.createRecord", + "com.atproto.repo.defs", + "com.atproto.repo.deleteRecord", + "com.atproto.repo.describeRepo", + "com.atproto.repo.getRecord", + "com.atproto.repo.importRepo", + "com.atproto.repo.listMissingBlobs", + "com.atproto.repo.listRecords", + "com.atproto.repo.putRecord", + "com.atproto.repo.strongRef", + "com.atproto.repo.uploadBlob", + "com.atproto.server.activateAccount", + "com.atproto.server.checkAccountStatus", + "com.atproto.server.confirmEmail", + "com.atproto.server.createAccount", + "com.atproto.server.createAppPassword", + "com.atproto.server.createInviteCode", + "com.atproto.server.createInviteCodes", + "com.atproto.server.createSession", + "com.atproto.server.deactivateAccount", + "com.atproto.server.defs", + "com.atproto.server.deleteAccount", + "com.atproto.server.deleteSession", + "com.atproto.server.describeServer", + "com.atproto.server.getAccountInviteCodes", + "com.atproto.server.getServiceAuth", + "com.atproto.server.getSession", + "com.atproto.server.listAppPasswords", + "com.atproto.server.refreshSession", + "com.atproto.server.requestAccountDelete", + "com.atproto.server.requestEmailConfirmation", + "com.atproto.server.requestEmailUpdate", + "com.atproto.server.requestPasswordReset", + "com.atproto.server.reserveSigningKey", + "com.atproto.server.resetPassword", + "com.atproto.server.revokeAppPassword", + "com.atproto.server.updateEmail", + "com.atproto.sync.defs", + "com.atproto.sync.getBlob", + "com.atproto.sync.getBlocks", + "com.atproto.sync.getCheckout", + "com.atproto.sync.getHead", + "com.atproto.sync.getHostStatus", + "com.atproto.sync.getLatestCommit", + "com.atproto.sync.getRecord", + "com.atproto.sync.getRepo", + "com.atproto.sync.getRepoStatus", + "com.atproto.sync.listBlobs", + "com.atproto.sync.listHosts", + "com.atproto.sync.listRepos", + "com.atproto.sync.listReposByCollection", + "com.atproto.sync.notifyOfUpdate", + "com.atproto.sync.requestCrawl", + "com.atproto.sync.subscribeRepos", + "com.atproto.temp.addReservedHandle", + "com.atproto.temp.checkHandleAvailability", + "com.atproto.temp.checkSignupQueue", + "com.atproto.temp.dereferenceScope", + "com.atproto.temp.fetchLabels", + "com.atproto.temp.requestPhoneVerification", + "com.atproto.temp.revokeAccountCredentials", + "com.germnetwork.authManageDeclaration", + "com.germnetwork.declaration", + "com.whtwnd.blog.defs", + "com.whtwnd.blog.entry", + "com.whtwnd.blog.getAuthorPosts", + "com.whtwnd.blog.getEntryMetadataByName", + "com.whtwnd.blog.getMentionsByEntry", + "com.whtwnd.blog.notifyOfNewEntry", + "community.lexicon.bookmarks.authManageBookmarks", + "community.lexicon.bookmarks.authViewBookmarks", + "community.lexicon.bookmarks.bookmark", + "community.lexicon.bookmarks.getActorBookmarks", + "community.lexicon.calendar.event", + "community.lexicon.calendar.rsvp", + "community.lexicon.interaction.like", + "community.lexicon.location.address", + "community.lexicon.location.fsq", + "community.lexicon.location.geo", + "community.lexicon.location.hthree", + "community.lexicon.payments.webMonetization", + "community.lexicon.preference.ai", + "fyi.frontpage.feed.comment", + "fyi.frontpage.feed.describeFeedGenerator", + "fyi.frontpage.feed.generator", + "fyi.frontpage.feed.getFeedSkeleton", + "fyi.frontpage.feed.post", + "fyi.frontpage.feed.vote", + "fyi.frontpage.richtext.block", + "fyi.unravel.frontpage.comment", + "fyi.unravel.frontpage.post", + "fyi.unravel.frontpage.vote", + "pub.leaflet.authFullPermissions", + "pub.leaflet.blocks.blockquote", + "pub.leaflet.blocks.bskyPost", + "pub.leaflet.blocks.button", + "pub.leaflet.blocks.code", + "pub.leaflet.blocks.header", + "pub.leaflet.blocks.horizontalRule", + "pub.leaflet.blocks.iframe", + "pub.leaflet.blocks.image", + "pub.leaflet.blocks.math", + "pub.leaflet.blocks.orderedList", + "pub.leaflet.blocks.page", + "pub.leaflet.blocks.poll", + "pub.leaflet.blocks.postsList", + "pub.leaflet.blocks.signup", + "pub.leaflet.blocks.standardSitePost", + "pub.leaflet.blocks.text", + "pub.leaflet.blocks.unorderedList", + "pub.leaflet.blocks.website", + "pub.leaflet.comment", + "pub.leaflet.content", + "pub.leaflet.document", + "pub.leaflet.graph.subscription", + "pub.leaflet.interactions.recommend", + "pub.leaflet.pages.canvas", + "pub.leaflet.pages.linearDocument", + "pub.leaflet.poll.definition", + "pub.leaflet.poll.vote", + "pub.leaflet.publication", + "pub.leaflet.publicationPage", + "pub.leaflet.richtext.facet", + "pub.leaflet.theme.backgroundImage", + "pub.leaflet.theme.color", + "pub.leaflet.theme.wordmark", + "sh.tangled.actor.profile", + "sh.tangled.feed.comment", + "sh.tangled.feed.reaction", + "sh.tangled.feed.star", + "sh.tangled.git.refUpdate", + "sh.tangled.git.temp.analyzeMerge", + "sh.tangled.git.temp.defs", + "sh.tangled.git.temp.getArchive", + "sh.tangled.git.temp.getBlob", + "sh.tangled.git.temp.getBranch", + "sh.tangled.git.temp.getCommit", + "sh.tangled.git.temp.getDiff", + "sh.tangled.git.temp.getEntry", + "sh.tangled.git.temp.getHead", + "sh.tangled.git.temp.getTag", + "sh.tangled.git.temp.getTree", + "sh.tangled.git.temp.listBranches", + "sh.tangled.git.temp.listCommits", + "sh.tangled.git.temp.listLanguages", + "sh.tangled.git.temp.listTags", + "sh.tangled.graph.follow", + "sh.tangled.graph.vouch", + "sh.tangled.knot", + "sh.tangled.knot.addMember", + "sh.tangled.knot.listKeys", + "sh.tangled.knot.listMembers", + "sh.tangled.knot.listMembersBy", + "sh.tangled.knot.member", + "sh.tangled.knot.removeMember", + "sh.tangled.knot.subscribeRepos", + "sh.tangled.knot.version", + "sh.tangled.label.definition", + "sh.tangled.label.op", + "sh.tangled.markup.markdown", + "sh.tangled.owner", + "sh.tangled.pipeline", + "sh.tangled.pipeline.cancelPipeline", + "sh.tangled.pipeline.status", + "sh.tangled.publicKey", + "sh.tangled.repo", + "sh.tangled.repo.addCollaborator", + "sh.tangled.repo.addSecret", + "sh.tangled.repo.archive", + "sh.tangled.repo.artifact", + "sh.tangled.repo.blob", + "sh.tangled.repo.branch", + "sh.tangled.repo.branches", + "sh.tangled.repo.collaborator", + "sh.tangled.repo.compare", + "sh.tangled.repo.create", + "sh.tangled.repo.delete", + "sh.tangled.repo.deleteBranch", + "sh.tangled.repo.describeRepo", + "sh.tangled.repo.diff", + "sh.tangled.repo.forkStatus", + "sh.tangled.repo.forkSync", + "sh.tangled.repo.getDefaultBranch", + "sh.tangled.repo.hiddenRef", + "sh.tangled.repo.issue", + "sh.tangled.repo.issue.comment", + "sh.tangled.repo.issue.state", + "sh.tangled.repo.issue.state.closed", + "sh.tangled.repo.issue.state.open", + "sh.tangled.repo.languages", + "sh.tangled.repo.listCollaborators", + "sh.tangled.repo.listCollaboratorsBy", + "sh.tangled.repo.listSecrets", + "sh.tangled.repo.log", + "sh.tangled.repo.merge", + "sh.tangled.repo.mergeCheck", + "sh.tangled.repo.pull", + "sh.tangled.repo.pull.comment", + "sh.tangled.repo.pull.status", + "sh.tangled.repo.pull.status.closed", + "sh.tangled.repo.pull.status.merged", + "sh.tangled.repo.pull.status.open", + "sh.tangled.repo.removeCollaborator", + "sh.tangled.repo.removeSecret", + "sh.tangled.repo.setDefaultBranch", + "sh.tangled.repo.tag", + "sh.tangled.repo.tags", + "sh.tangled.repo.tree", + "sh.tangled.spindle", + "sh.tangled.spindle.member", + "sh.tangled.string", + "sh.tangled.sync.requestCrawl", + "site.standard.authFull", + "site.standard.authSocial", + "site.standard.document", + "site.standard.graph.recommend", + "site.standard.graph.subscription", + "site.standard.publication", + "site.standard.theme.basic", + "site.standard.theme.color", + "tools.ozone.communication.createTemplate", + "tools.ozone.communication.defs", + "tools.ozone.communication.deleteTemplate", + "tools.ozone.communication.listTemplates", + "tools.ozone.communication.updateTemplate", + "tools.ozone.hosting.getAccountHistory", + "tools.ozone.moderation.cancelScheduledActions", + "tools.ozone.moderation.defs", + "tools.ozone.moderation.emitEvent", + "tools.ozone.moderation.getAccountTimeline", + "tools.ozone.moderation.getEvent", + "tools.ozone.moderation.getRecord", + "tools.ozone.moderation.getRecords", + "tools.ozone.moderation.getRepo", + "tools.ozone.moderation.getReporterStats", + "tools.ozone.moderation.getRepos", + "tools.ozone.moderation.getSubjects", + "tools.ozone.moderation.listScheduledActions", + "tools.ozone.moderation.queryEvents", + "tools.ozone.moderation.queryStatuses", + "tools.ozone.moderation.scheduleAction", + "tools.ozone.moderation.searchRepos", + "tools.ozone.queue.assignModerator", + "tools.ozone.queue.createQueue", + "tools.ozone.queue.defs", + "tools.ozone.queue.deleteQueue", + "tools.ozone.queue.getAssignments", + "tools.ozone.queue.listQueues", + "tools.ozone.queue.routeReports", + "tools.ozone.queue.unassignModerator", + "tools.ozone.queue.updateQueue", + "tools.ozone.report.assignModerator", + "tools.ozone.report.createActivity", + "tools.ozone.report.defs", + "tools.ozone.report.getAssignments", + "tools.ozone.report.getHistoricalStats", + "tools.ozone.report.getLatestReport", + "tools.ozone.report.getLiveStats", + "tools.ozone.report.getReport", + "tools.ozone.report.listActivities", + "tools.ozone.report.queryReports", + "tools.ozone.report.reassignQueue", + "tools.ozone.report.refreshStats", + "tools.ozone.report.unassignModerator", + "tools.ozone.safelink.addRule", + "tools.ozone.safelink.defs", + "tools.ozone.safelink.queryEvents", + "tools.ozone.safelink.queryRules", + "tools.ozone.safelink.removeRule", + "tools.ozone.safelink.updateRule", + "tools.ozone.server.getConfig", + "tools.ozone.set.addValues", + "tools.ozone.set.defs", + "tools.ozone.set.deleteSet", + "tools.ozone.set.deleteValues", + "tools.ozone.set.getValues", + "tools.ozone.set.querySets", + "tools.ozone.set.upsertSet", + "tools.ozone.setting.defs", + "tools.ozone.setting.listOptions", + "tools.ozone.setting.removeOptions", + "tools.ozone.setting.upsertOption", + "tools.ozone.signature.defs", + "tools.ozone.signature.findCorrelation", + "tools.ozone.signature.findRelatedAccounts", + "tools.ozone.signature.searchAccounts", + "tools.ozone.team.addMember", + "tools.ozone.team.defs", + "tools.ozone.team.deleteMember", + "tools.ozone.team.listMembers", + "tools.ozone.team.updateMember", + "tools.ozone.verification.defs", + "tools.ozone.verification.grantVerifications", + "tools.ozone.verification.listVerifications", + "tools.ozone.verification.revokeVerifications", +] as const; + +export const knownNamespacePatterns = [ + "app.bsky.*", + "blog.pckt.*", + "blue.microcosm.*", + "blue.moji.*", + "chat.bsky.*", + "com.atproto.*", + "com.bad-example.*", + "com.germnetwork.*", + "com.whtwnd.*", + "community.lexicon.*", + "fyi.frontpage.*", + "fyi.unravel.frontpage.*", + "pub.leaflet.*", + "sh.tangled.*", + "site.standard.*", + "tools.ozone.*", +] as const; + +export const knownNamespaceSummary = { + sourceCount: 13, + lexiconCount: 585, +} as const;