this repo has no description
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

lexicons: init

Clément 7c913989 2e46237d

+236 -4
+1
app/.gitignore
··· 10 10 src/generated/ 11 11 worker-configuration.d.ts 12 12 public/oauth-client-metadata.json 13 + public/lexicons
+14
app/lex.config.ts
··· 1 + import { defineLexiconConfig } from '@atcute/lex-cli'; 2 + 3 + export default defineLexiconConfig({ 4 + generate: { 5 + outdir: 'src/generated/lexicons/', 6 + files: ['lexicons/**/*.ts'], 7 + }, 8 + formatter: { type: 'prettier' }, 9 + imports: ['@atcute/atproto'], 10 + export: { 11 + outdir: 'public/lexicons', 12 + clean: true, 13 + }, 14 + });
+30
app/lexicons/at.compiles.alpha/problem/defs.ts
··· 1 + import { 2 + document, 3 + object, 4 + record, 5 + required, 6 + string, 7 + } from '@atcute/lexicon-doc/builder'; 8 + 9 + export default document({ 10 + id: 'at.compiles.alpha.problem', 11 + defs: { 12 + main: record({ 13 + key: 'tid', 14 + record: object({ 15 + properties: { 16 + title: required(string({ minGraphemes: 5, maxLength: 200 })), 17 + description: required(string({ maxGraphemes: 10_000 })), 18 + language: required(string({ minGraphemes: 2, maxGraphemes: 100 })), 19 + initialSolution: required( 20 + string({ minGraphemes: 1, maxGraphemes: 50_000 }), 21 + ), 22 + tests: required(string({ minGraphemes: 1, maxGraphemes: 50_000 })), 23 + starterCode: required( 24 + string({ minGraphemes: 1, maxGraphemes: 50_000 }), 25 + ), 26 + }, 27 + }), 28 + }), 29 + }, 30 + });
+23
app/lexicons/at.compiles.alpha/submission/defs.ts
··· 1 + import { 2 + document, 3 + object, 4 + record, 5 + ref, 6 + required, 7 + string, 8 + } from '@atcute/lexicon-doc/builder'; 9 + 10 + export default document({ 11 + id: 'at.compiles.alpha.submission', 12 + defs: { 13 + main: record({ 14 + key: 'tid', 15 + record: object({ 16 + properties: { 17 + problemRef: required(ref({ ref: 'com.atproto.repo.strongRef' })), 18 + code: required(string({ maxGraphemes: 50_000 })), 19 + }, 20 + }), 21 + }), 22 + }, 23 + });
+6 -2
app/package.json
··· 3 3 "private": true, 4 4 "type": "module", 5 5 "scripts": { 6 - "postinstall": "pnpm db:generate && pnpm wrangler:generate && node ./scripts/generate-metadata.ts", 6 + "postinstall": "pnpm db:generate && pnpm wrangler:generate && node ./scripts/generate-metadata.ts && pnpm lexicon:generate", 7 7 "dev": "vite dev", 8 8 "build": "vite build", 9 9 "preview": "vite preview", ··· 14 14 "format": "prettier --write .", 15 15 "format:check": "prettier --check .", 16 16 "db:generate": "prisma generate", 17 - "wrangler:generate": "wrangler types --env-file .env.example" 17 + "wrangler:generate": "wrangler types --env-file .env.example", 18 + "lexicon:generate": "lex-cli generate && lex-cli export" 18 19 }, 19 20 "dependencies": { 20 21 "@ark-ui/solid": "^5.36.2", 22 + "@atcute/atproto": "^3.1.11", 21 23 "@atcute/bluesky": "^3.3.3", 22 24 "@atcute/client": "^4.2.1", 23 25 "@atcute/identity-resolver": "^1.2.2", 26 + "@atcute/lex-cli": "^2.8.1", 27 + "@atcute/lexicon-doc": "^2.2.0", 24 28 "@atcute/lexicons": "^1.3.0", 25 29 "@atcute/oauth-node-client": "^1.1.0", 26 30 "@cloudflare/vite-plugin": "^1.35.0",
+2 -1
app/src/lib/oauth-metadata.ts
··· 1 1 import type { ConfidentialClientMetadata } from '@atcute/oauth-node-client'; 2 2 3 - export const OAUTH_SCOPE = 'atproto transition:generic'; 3 + export const OAUTH_SCOPE = 4 + 'atproto repo:at.compiles.alpha.problem repo:at.compiles.alpha.submission'; 4 5 5 6 export function buildOAuthClientMetadata( 6 7 baseUrl: string,
+1
app/tsconfig.json
··· 33 33 "~/*": ["./src/*"], 34 34 "$/*": ["./src/lib/*"], 35 35 "@/*": ["./src/lib/components/*"], 36 + "#/*": ["./src/generated/lexicons/types/*"], 36 37 }, 37 38 }, 38 39 }
+159 -1
pnpm-lock.yaml
··· 13 13 '@ark-ui/solid': 14 14 specifier: ^5.36.2 15 15 version: 5.36.2(solid-js@1.9.12) 16 + '@atcute/atproto': 17 + specifier: ^3.1.11 18 + version: 3.1.11 16 19 '@atcute/bluesky': 17 20 specifier: ^3.3.3 18 21 version: 3.3.3 ··· 21 24 version: 4.2.1 22 25 '@atcute/identity-resolver': 23 26 specifier: ^1.2.2 24 - version: 1.2.2(@atcute/identity@1.1.3) 27 + version: 1.2.2(@atcute/identity@1.1.4) 28 + '@atcute/lex-cli': 29 + specifier: ^2.8.1 30 + version: 2.8.1 31 + '@atcute/lexicon-doc': 32 + specifier: ^2.2.0 33 + version: 2.2.0 25 34 '@atcute/lexicons': 26 35 specifier: ^1.3.0 27 36 version: 1.3.0 ··· 162 171 '@atcute/bluesky@3.3.3': 163 172 resolution: {integrity: sha512-R1VyEmbvIUhub6ONnt7sm6FcRoKJISWf+I0qraXtk59KLmNCsJYMX8fLdIcdv5o1i9XtDg8/Um/wqLrl84IuFg==} 164 173 174 + '@atcute/car@5.1.1': 175 + resolution: {integrity: sha512-MeRUJNXYgAHrJZw7mMoZJb9xIqv3LZLQw90rRRAVAo8SGNdICwyqe6Bf2LGesX73QM04MBuYO6Kqhvold3TFfg==} 176 + 177 + '@atcute/cbor@2.3.2': 178 + resolution: {integrity: sha512-xP2SORSau/VVI00x2V4BjwIkHr6EQ7l/MXEOPaa4LGYtePFc4gnD4L1yN10dT5NEuUnvGEuCh6arLB7gz1smVQ==} 179 + 180 + '@atcute/cid@2.4.1': 181 + resolution: {integrity: sha512-bwhna69RCv7yetXudtj+2qrMPYvhhIQqvJz6YUpUS98v7OdF3X2dnye9Nig2NDrklZcuyOsu7sQo7GOykJXRLQ==} 182 + 165 183 '@atcute/client@4.2.1': 166 184 resolution: {integrity: sha512-ZBFM2pW075JtgGFu5g7HHZBecrClhlcNH8GVP9Zz1aViWR+cjjBsTpeE63rJs+FCOHFYlirUyo5L8SGZ4kMINw==} 167 185 186 + '@atcute/crypto@2.4.1': 187 + resolution: {integrity: sha512-tJ3Pi/XYcAsABKtqSlSOTKfO5YiQ4XdqlTuPS8HiRZSezOPcXBFFzAFWpSIJPURbVPFQL3LLrrK0Ea24wl5qeQ==} 188 + 168 189 '@atcute/identity-resolver@1.2.2': 169 190 resolution: {integrity: sha512-eUh/UH4bFvuXS0X7epYCeJC/kj4rbBXfSRumLEH4smMVwNOgTo7cL/0Srty+P/qVPoZEyXdfEbS0PHJyzoXmHw==} 170 191 peerDependencies: ··· 173 194 '@atcute/identity@1.1.3': 174 195 resolution: {integrity: sha512-oIqPoI8TwWeQxvcLmFEZLdN2XdWcaLVtlm8pNk0E72As9HNzzD9pwKPrLr3rmTLRIoULPPFmq9iFNsTeCIU9ng==} 175 196 197 + '@atcute/identity@1.1.4': 198 + resolution: {integrity: sha512-RCw1IqflfuSYCxK5m0lZCm0UnvIzcUnuhngiBhJEJb9a9Mc2SEf1xP3H8N5r8pvEH1LoAYd6/zrvCNU+uy9esw==} 199 + 200 + '@atcute/lex-cli@2.8.1': 201 + resolution: {integrity: sha512-ab+NpnwvW7gXMjZYYqK3zqhcAPOEYnAaNAXHp28gmL3M33zHgz4IjNQpDnRAjTitCpaJ3KoA3KXlnXNjsV6USg==} 202 + hasBin: true 203 + 204 + '@atcute/lexicon-doc@2.2.0': 205 + resolution: {integrity: sha512-6l4lDlL6KPLDGknRh6HlfGbv98haUgQ0DFaAr1yA4vA95b8YYZUZ4/370ENpiq+d6Lv0tdDAMvOon2mynrp3pQ==} 206 + 207 + '@atcute/lexicon-resolver@0.1.6': 208 + resolution: {integrity: sha512-wJC/ChmpP7k+ywpOd07CMvioXjIGaFpF3bDwXLi/086LYjSWHOvtW6pyC+mqP5wLhjyH2hn4wmi77Buew1l1aw==} 209 + peerDependencies: 210 + '@atcute/identity': ^1.1.0 211 + '@atcute/identity-resolver': ^1.1.3 212 + 176 213 '@atcute/lexicons@1.3.0': 177 214 resolution: {integrity: sha512-Eq5y+9onnCXNVUlNiMf31beSXHKqptB7lUo/68YbhlmxdaR7ooywHmahya9goP5AsmlYEA1z+dRPXIDAa9O7cg==} 178 215 216 + '@atcute/mst@1.0.0': 217 + resolution: {integrity: sha512-pMce2efib+dmKtnGnIvJZitVncJkpr3AmhyfgfYllni8KzsaDGsJmuGavSVpuojAhQe+6jYwHFtpm/beiiH4uw==} 218 + 179 219 '@atcute/multibase@1.1.8': 180 220 resolution: {integrity: sha512-pJgtImMZKCjqwRbu+2GzB+4xQjKBXDwdZOzeqe0u97zYKRGftpGYGvYv3+pMe2xXe+msDyu7Nv8iJp+U14otTA==} 221 + 222 + '@atcute/multibase@1.2.0': 223 + resolution: {integrity: sha512-ZK2GRra+qIYq9nNuQB52m2ul0hOmCQEtPobGfTSUxm7pF0OGEkWGkWHugFhNEDVzHzTwPxHp6VGotdZFue4lYQ==} 181 224 182 225 '@atcute/oauth-crypto@0.1.0': 183 226 resolution: {integrity: sha512-qZYDCNLF/4B6AndYT1rsQelN8621AC5u/sL5PHvlr/qqAbmmUwCBGjEgRSyZtHE1AqD60VNiSMlOgAuEQTSl3w==} ··· 191 234 '@atcute/oauth-types@0.1.1': 192 235 resolution: {integrity: sha512-u+3KMjse3Uc/9hDyilu1QVN7IpcnjVXgRzhddzBB8Uh6wePHNVBDdi9wQvFTVVA3zmxtMJVptXRyLLg6Ou9bqg==} 193 236 237 + '@atcute/repo@0.1.4': 238 + resolution: {integrity: sha512-uzbGJkE+1A8UFviosJrtw7HW87u8nCCH1V3yOQ79FPrRhS67EvEHF6GTg4aMkP21ze/pRtttJ1k9pFfDmyTlTg==} 239 + 194 240 '@atcute/uint8array@1.1.1': 195 241 resolution: {integrity: sha512-3LsC8XB8TKe9q/5hOA5sFuzGaIFdJZJNewC5OKa3o/eU6+K7JR6see9Zy2JbQERNVnRl11EzbNov1efgLMAs4g==} 196 242 ··· 199 245 200 246 '@atcute/util-text@1.3.1': 201 247 resolution: {integrity: sha512-MRgJXkx67znuBXuoAYCJkBZyd3OApL7zZlNf5kXhuoCXcdiu1nblRDycYTADSkym4epBSQWxh26kmI9sewaq6A==} 248 + 249 + '@atcute/varint@2.0.0': 250 + resolution: {integrity: sha512-CEY/oVK/nVpL4e5y3sdenLETDL6/Xu5xsE/0TupK+f0Yv8jcD60t2gD8SHROWSvUwYLdkjczLCSA7YrtnjCzWw==} 202 251 203 252 '@babel/code-frame@7.27.1': 204 253 resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} ··· 866 915 '@emnapi/core': ^1.7.1 867 916 '@emnapi/runtime': ^1.7.1 868 917 918 + '@noble/secp256k1@3.1.0': 919 + resolution: {integrity: sha512-+F7iS7tUMaNGXcc9X3PjmjvuQnXEuSjCRNzVVA2xAcKXgCaP0dHYz4SFyt4FKNHef7sOP//xihowcySSS7PK9g==} 920 + 869 921 '@nothing-but/utils@0.17.0': 870 922 resolution: {integrity: sha512-TuCHcHLOqDL0SnaAxACfuRHBNRgNJcNn9X0GiH5H3YSDBVquCr3qEIG3FOQAuMyZCbu9w8nk2CHhOsn7IvhIwQ==} 871 923 ··· 884 936 '@oozcitak/util@10.0.0': 885 937 resolution: {integrity: sha512-hAX0pT/73190NLqBPPWSdBVGtbY6VOhWYK3qqHqtXQ1gK7kS2yz4+ivsN07hpJ6I3aeMtKP6J6npsEKOAzuTLA==} 886 938 engines: {node: '>=20.0'} 939 + 940 + '@optique/core@1.0.2': 941 + resolution: {integrity: sha512-znsqMmjAdeOgSJzdJlpZpgAscojwQmeQYXzYnuEKllz5VCj6WyEkdzU4QuvJQtWQY3ve2taXwudEBRur0VHBOQ==} 942 + engines: {bun: '>=1.2.0', deno: '>=2.3.0', node: '>=20.0.0'} 943 + 944 + '@optique/run@1.0.2': 945 + resolution: {integrity: sha512-0Wc+zC8SLGV8zXQX+pk+o0c6wE/ddx/36CHZ0toTh5lApsjruUuGhqbxvljerAAG5un1xQbOLxzksBVC6UPgSg==} 946 + engines: {bun: '>=1.2.0', deno: '>=2.3.0', node: '>=20.0.0'} 887 947 888 948 '@oxc-project/types@0.127.0': 889 949 resolution: {integrity: sha512-aIYXQBo4lCbO4z0R3FHeucQHpF46l2LbMdxRvqvuRuW2OxdnSkcng5B8+K12spgLDj93rtN3+J2Vac/TIO+ciQ==} ··· 3468 3528 '@atcute/atproto': 3.1.11 3469 3529 '@atcute/lexicons': 1.3.0 3470 3530 3531 + '@atcute/car@5.1.1': 3532 + dependencies: 3533 + '@atcute/cbor': 2.3.2 3534 + '@atcute/cid': 2.4.1 3535 + '@atcute/uint8array': 1.1.1 3536 + '@atcute/varint': 2.0.0 3537 + 3538 + '@atcute/cbor@2.3.2': 3539 + dependencies: 3540 + '@atcute/cid': 2.4.1 3541 + '@atcute/multibase': 1.1.8 3542 + '@atcute/uint8array': 1.1.1 3543 + 3544 + '@atcute/cid@2.4.1': 3545 + dependencies: 3546 + '@atcute/multibase': 1.1.8 3547 + '@atcute/uint8array': 1.1.1 3548 + 3471 3549 '@atcute/client@4.2.1': 3472 3550 dependencies: 3473 3551 '@atcute/identity': 1.1.3 3474 3552 '@atcute/lexicons': 1.3.0 3475 3553 3554 + '@atcute/crypto@2.4.1': 3555 + dependencies: 3556 + '@atcute/multibase': 1.2.0 3557 + '@atcute/uint8array': 1.1.1 3558 + '@noble/secp256k1': 3.1.0 3559 + 3476 3560 '@atcute/identity-resolver@1.2.2(@atcute/identity@1.1.3)': 3477 3561 dependencies: 3478 3562 '@atcute/identity': 1.1.3 ··· 3480 3564 '@atcute/util-fetch': 1.0.5 3481 3565 '@badrap/valita': 0.4.6 3482 3566 3567 + '@atcute/identity-resolver@1.2.2(@atcute/identity@1.1.4)': 3568 + dependencies: 3569 + '@atcute/identity': 1.1.4 3570 + '@atcute/lexicons': 1.3.0 3571 + '@atcute/util-fetch': 1.0.5 3572 + '@badrap/valita': 0.4.6 3573 + 3483 3574 '@atcute/identity@1.1.3': 3484 3575 dependencies: 3485 3576 '@atcute/lexicons': 1.3.0 3486 3577 '@badrap/valita': 0.4.6 3487 3578 3579 + '@atcute/identity@1.1.4': 3580 + dependencies: 3581 + '@atcute/lexicons': 1.3.0 3582 + '@badrap/valita': 0.4.6 3583 + 3584 + '@atcute/lex-cli@2.8.1': 3585 + dependencies: 3586 + '@atcute/identity': 1.1.4 3587 + '@atcute/identity-resolver': 1.2.2(@atcute/identity@1.1.4) 3588 + '@atcute/lexicon-doc': 2.2.0 3589 + '@atcute/lexicon-resolver': 0.1.6(@atcute/identity-resolver@1.2.2(@atcute/identity@1.1.4))(@atcute/identity@1.1.4) 3590 + '@atcute/lexicons': 1.3.0 3591 + '@badrap/valita': 0.4.6 3592 + '@optique/core': 1.0.2 3593 + '@optique/run': 1.0.2 3594 + picocolors: 1.1.1 3595 + prettier: 3.8.3 3596 + 3597 + '@atcute/lexicon-doc@2.2.0': 3598 + dependencies: 3599 + '@atcute/identity': 1.1.4 3600 + '@atcute/lexicons': 1.3.0 3601 + '@atcute/uint8array': 1.1.1 3602 + '@atcute/util-text': 1.3.1 3603 + '@badrap/valita': 0.4.6 3604 + 3605 + '@atcute/lexicon-resolver@0.1.6(@atcute/identity-resolver@1.2.2(@atcute/identity@1.1.4))(@atcute/identity@1.1.4)': 3606 + dependencies: 3607 + '@atcute/crypto': 2.4.1 3608 + '@atcute/identity': 1.1.4 3609 + '@atcute/identity-resolver': 1.2.2(@atcute/identity@1.1.4) 3610 + '@atcute/lexicon-doc': 2.2.0 3611 + '@atcute/lexicons': 1.3.0 3612 + '@atcute/repo': 0.1.4 3613 + '@atcute/util-fetch': 1.0.5 3614 + '@badrap/valita': 0.4.6 3615 + 3488 3616 '@atcute/lexicons@1.3.0': 3489 3617 dependencies: 3490 3618 '@atcute/uint8array': 1.1.1 ··· 3492 3620 '@standard-schema/spec': 1.1.0 3493 3621 esm-env: 1.2.2 3494 3622 3623 + '@atcute/mst@1.0.0': 3624 + dependencies: 3625 + '@atcute/cbor': 2.3.2 3626 + '@atcute/cid': 2.4.1 3627 + '@atcute/uint8array': 1.1.1 3628 + 3495 3629 '@atcute/multibase@1.1.8': 3630 + dependencies: 3631 + '@atcute/uint8array': 1.1.1 3632 + 3633 + '@atcute/multibase@1.2.0': 3496 3634 dependencies: 3497 3635 '@atcute/uint8array': 1.1.1 3498 3636 ··· 3527 3665 '@atcute/oauth-keyset': 0.1.0 3528 3666 '@badrap/valita': 0.4.6 3529 3667 3668 + '@atcute/repo@0.1.4': 3669 + dependencies: 3670 + '@atcute/car': 5.1.1 3671 + '@atcute/cbor': 2.3.2 3672 + '@atcute/cid': 2.4.1 3673 + '@atcute/crypto': 2.4.1 3674 + '@atcute/lexicons': 1.3.0 3675 + '@atcute/mst': 1.0.0 3676 + '@atcute/uint8array': 1.1.1 3677 + 3530 3678 '@atcute/uint8array@1.1.1': {} 3531 3679 3532 3680 '@atcute/util-fetch@1.0.5': ··· 3536 3684 '@atcute/util-text@1.3.1': 3537 3685 dependencies: 3538 3686 unicode-segmenter: 0.14.5 3687 + 3688 + '@atcute/varint@2.0.0': {} 3539 3689 3540 3690 '@babel/code-frame@7.27.1': 3541 3691 dependencies: ··· 4133 4283 '@tybys/wasm-util': 0.10.1 4134 4284 optional: true 4135 4285 4286 + '@noble/secp256k1@3.1.0': {} 4287 + 4136 4288 '@nothing-but/utils@0.17.0': {} 4137 4289 4138 4290 '@oozcitak/dom@2.0.2': ··· 4151 4303 '@oozcitak/util': 10.0.0 4152 4304 4153 4305 '@oozcitak/util@10.0.0': {} 4306 + 4307 + '@optique/core@1.0.2': {} 4308 + 4309 + '@optique/run@1.0.2': 4310 + dependencies: 4311 + '@optique/core': 1.0.2 4154 4312 4155 4313 '@oxc-project/types@0.127.0': {} 4156 4314