Trading card city builder game?

use orval to generate openapi client

eldridge.cam 5c45f506 8b8743bf

verified
+1699 -70
+69 -1
.github/workflows/typescript.yml
··· 40 40 - name: Install node_modules 41 41 run: npm ci 42 42 working-directory: ./app 43 + - uses: actions/cache@v4 44 + with: 45 + path: | 46 + ~/.cargo/bin/ 47 + ~/.cargo/registry/index/ 48 + ~/.cargo/registry/cache/ 49 + ~/.cargo/git/db/ 50 + target/ 51 + key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} 52 + - name: Install Rust 53 + run: | 54 + rustup install stable 55 + rustup default stable 56 + - name: Generate OpenAPI 57 + run: | 58 + cargo run -- --openapi > openapi.json 59 + cd server && npx orval 43 60 - name: Run lint 44 61 run: npx eslint . --max-warnings 0 45 62 working-directory: ./app ··· 58 75 - name: Install node_modules 59 76 run: npm ci 60 77 working-directory: ./app 78 + - uses: actions/cache@v4 79 + with: 80 + path: | 81 + ~/.cargo/bin/ 82 + ~/.cargo/registry/index/ 83 + ~/.cargo/registry/cache/ 84 + ~/.cargo/git/db/ 85 + target/ 86 + key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} 87 + - name: Install Rust 88 + run: | 89 + rustup install stable 90 + rustup default stable 91 + - name: Generate OpenAPI 92 + run: | 93 + cargo run -- --openapi > openapi.json 94 + cd server && npx orval 61 95 - name: Run check 62 96 run: | 63 97 set -e 64 - npx svelte-kit sync 98 + cd server && npx svelte-kit sync 65 99 npx svelte-check --tsconfig ./tsconfig.json 66 100 working-directory: ./app 67 101 ··· 79 113 - name: Install node_modules 80 114 run: npm ci 81 115 working-directory: ./app 116 + - uses: actions/cache@v4 117 + with: 118 + path: | 119 + ~/.cargo/bin/ 120 + ~/.cargo/registry/index/ 121 + ~/.cargo/registry/cache/ 122 + ~/.cargo/git/db/ 123 + target/ 124 + key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} 125 + - name: Install Rust 126 + run: | 127 + rustup install stable 128 + rustup default stable 129 + - name: Generate OpenAPI 130 + run: | 131 + cargo run -- --openapi > openapi.json 132 + cd server && npx orval 82 133 - name: Run build 83 134 run: npx vite build 84 135 working-directory: ./app ··· 97 148 - name: Install node_modules 98 149 run: npm ci 99 150 working-directory: ./app 151 + - uses: actions/cache@v4 152 + with: 153 + path: | 154 + ~/.cargo/bin/ 155 + ~/.cargo/registry/index/ 156 + ~/.cargo/registry/cache/ 157 + ~/.cargo/git/db/ 158 + target/ 159 + key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} 160 + - name: Install Rust 161 + run: | 162 + rustup install stable 163 + rustup default stable 164 + - name: Generate OpenAPI 165 + run: | 166 + cargo run -- --openapi > openapi.json 167 + cd server && npx orval 100 168 - name: Run test 101 169 run: npm test 102 170 working-directory: ./app
+3
.gitignore
··· 6 6 vite.config.js.timestamp-* 7 7 vite.config.ts.timestamp-* 8 8 .eslintcache 9 + /openapi.json 9 10 /target 10 11 /app/.svelte-kit 12 + /app/src/lib/appserver/dto/ 13 + /app/src/lib/appserver/api.ts
+121
Cargo.lock
··· 18 18 checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" 19 19 20 20 [[package]] 21 + name = "anstream" 22 + version = "0.6.21" 23 + source = "registry+https://github.com/rust-lang/crates.io-index" 24 + checksum = "43d5b281e737544384e969a5ccad3f1cdd24b48086a0fc1b2a5262a26b8f4f4a" 25 + dependencies = [ 26 + "anstyle", 27 + "anstyle-parse", 28 + "anstyle-query", 29 + "anstyle-wincon", 30 + "colorchoice", 31 + "is_terminal_polyfill", 32 + "utf8parse", 33 + ] 34 + 35 + [[package]] 36 + name = "anstyle" 37 + version = "1.0.13" 38 + source = "registry+https://github.com/rust-lang/crates.io-index" 39 + checksum = "5192cca8006f1fd4f7237516f40fa183bb07f8fbdfedaa0036de5ea9b0b45e78" 40 + 41 + [[package]] 42 + name = "anstyle-parse" 43 + version = "0.2.7" 44 + source = "registry+https://github.com/rust-lang/crates.io-index" 45 + checksum = "4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2" 46 + dependencies = [ 47 + "utf8parse", 48 + ] 49 + 50 + [[package]] 51 + name = "anstyle-query" 52 + version = "1.1.5" 53 + source = "registry+https://github.com/rust-lang/crates.io-index" 54 + checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc" 55 + dependencies = [ 56 + "windows-sys 0.61.2", 57 + ] 58 + 59 + [[package]] 60 + name = "anstyle-wincon" 61 + version = "3.0.11" 62 + source = "registry+https://github.com/rust-lang/crates.io-index" 63 + checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d" 64 + dependencies = [ 65 + "anstyle", 66 + "once_cell_polyfill", 67 + "windows-sys 0.61.2", 68 + ] 69 + 70 + [[package]] 21 71 name = "anyhow" 22 72 version = "1.0.101" 23 73 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 153 203 dependencies = [ 154 204 "anyhow", 155 205 "axum", 206 + "clap", 156 207 "derive_more", 157 208 "futures", 158 209 "futures-rx", ··· 180 231 checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" 181 232 182 233 [[package]] 234 + name = "clap" 235 + version = "4.5.58" 236 + source = "registry+https://github.com/rust-lang/crates.io-index" 237 + checksum = "63be97961acde393029492ce0be7a1af7e323e6bae9511ebfac33751be5e6806" 238 + dependencies = [ 239 + "clap_builder", 240 + "clap_derive", 241 + ] 242 + 243 + [[package]] 244 + name = "clap_builder" 245 + version = "4.5.58" 246 + source = "registry+https://github.com/rust-lang/crates.io-index" 247 + checksum = "7f13174bda5dfd69d7e947827e5af4b0f2f94a4a3ee92912fba07a66150f21e2" 248 + dependencies = [ 249 + "anstream", 250 + "anstyle", 251 + "clap_lex", 252 + "strsim", 253 + ] 254 + 255 + [[package]] 256 + name = "clap_derive" 257 + version = "4.5.55" 258 + source = "registry+https://github.com/rust-lang/crates.io-index" 259 + checksum = "a92793da1a46a5f2a02a6f4c46c6496b28c43638adea8306fcb0caa1634f24e5" 260 + dependencies = [ 261 + "heck", 262 + "proc-macro2", 263 + "quote", 264 + "syn", 265 + ] 266 + 267 + [[package]] 268 + name = "clap_lex" 269 + version = "1.0.0" 270 + source = "registry+https://github.com/rust-lang/crates.io-index" 271 + checksum = "3a822ea5bc7590f9d40f1ba12c0dc3c2760f3482c6984db1573ad11031420831" 272 + 273 + [[package]] 274 + name = "colorchoice" 275 + version = "1.0.4" 276 + source = "registry+https://github.com/rust-lang/crates.io-index" 277 + checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75" 278 + 279 + [[package]] 183 280 name = "concurrent-queue" 184 281 version = "2.5.0" 185 282 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 811 908 ] 812 909 813 910 [[package]] 911 + name = "is_terminal_polyfill" 912 + version = "1.70.2" 913 + source = "registry+https://github.com/rust-lang/crates.io-index" 914 + checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695" 915 + 916 + [[package]] 814 917 name = "itoa" 815 918 version = "1.0.17" 816 919 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1055 1158 checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" 1056 1159 1057 1160 [[package]] 1161 + name = "once_cell_polyfill" 1162 + version = "1.70.2" 1163 + source = "registry+https://github.com/rust-lang/crates.io-index" 1164 + checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe" 1165 + 1166 + [[package]] 1058 1167 name = "parking" 1059 1168 version = "2.2.1" 1060 1169 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1718 1827 ] 1719 1828 1720 1829 [[package]] 1830 + name = "strsim" 1831 + version = "0.11.1" 1832 + source = "registry+https://github.com/rust-lang/crates.io-index" 1833 + checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" 1834 + 1835 + [[package]] 1721 1836 name = "subtle" 1722 1837 version = "2.6.1" 1723 1838 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 2124 2239 version = "1.0.4" 2125 2240 source = "registry+https://github.com/rust-lang/crates.io-index" 2126 2241 checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" 2242 + 2243 + [[package]] 2244 + name = "utf8parse" 2245 + version = "0.2.2" 2246 + source = "registry+https://github.com/rust-lang/crates.io-index" 2247 + checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" 2127 2248 2128 2249 [[package]] 2129 2250 name = "utoipa"
+1
Cargo.toml
··· 13 13 [dependencies] 14 14 anyhow = "1.0.101" 15 15 axum = { version = "0.8.8", features = ["ws"] } 16 + clap = { version = "4.5.58", features = ["derive"] } 16 17 derive_more = { version = "2.1.1", features = ["error", "display"] } 17 18 futures = "0.3.31" 18 19 futures-rx = "0.2.1"
+2
Justfile
··· 66 66 [group: "dev"] 67 67 generate: 68 68 cargo sqlx prepare 69 + cargo run -- --openapi > openapi.json 70 + cd app && npx orval 69 71 cd app && npx svelte-kit sync 70 72 71 73 [group: "dev"]
+17
app/orval.config.ts
··· 1 + import { defineConfig } from "orval"; 2 + 3 + export default defineConfig({ 4 + petstore: { 5 + output: { 6 + mode: "single", 7 + target: "src/lib/appserver/api.ts", 8 + schemas: "src/lib/appserver/dto", 9 + client: "svelte-query", 10 + baseUrl: process.env.PUBLIC_SERVER_URL, 11 + mock: false, 12 + }, 13 + input: { 14 + target: "../openapi.json", 15 + }, 16 + }, 17 + });
+1446 -36
app/package-lock.json
··· 9 9 "version": "0.1.0", 10 10 "dependencies": { 11 11 "@sentry/browser": "^10.38.0", 12 - "@sveltestack/svelte-query": "^1.6.0", 12 + "@tanstack/svelte-query": "^6.0.18", 13 13 "cartography-api": "file:./api", 14 14 "core-js": "^3.38.1", 15 15 "json-patch": "^0.7.0", ··· 31 31 "globals": "^16.5.0", 32 32 "globstar": "^1.0.0", 33 33 "graphile-migrate": "^2.0.0-rc.2", 34 + "orval": "^8.3.0", 34 35 "prettier": "^3.7.4", 35 36 "prettier-plugin-sql": "^0.19.2", 36 37 "prettier-plugin-svelte": "^3.4.1", ··· 656 657 "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 657 658 } 658 659 }, 660 + "node_modules/@gerrit0/mini-shiki": { 661 + "version": "3.22.0", 662 + "resolved": "https://registry.npmjs.org/@gerrit0/mini-shiki/-/mini-shiki-3.22.0.tgz", 663 + "integrity": "sha512-jMpciqEVUBKE1QwU64S4saNMzpsSza6diNCk4MWAeCxO2+LFi2FIFmL2S0VDLzEJCxuvCbU783xi8Hp/gkM5CQ==", 664 + "dev": true, 665 + "license": "MIT", 666 + "dependencies": { 667 + "@shikijs/engine-oniguruma": "^3.22.0", 668 + "@shikijs/langs": "^3.22.0", 669 + "@shikijs/themes": "^3.22.0", 670 + "@shikijs/types": "^3.22.0", 671 + "@shikijs/vscode-textmate": "^10.0.2" 672 + } 673 + }, 659 674 "node_modules/@graphile/logger": { 660 675 "version": "0.2.0", 661 676 "resolved": "https://registry.npmjs.org/@graphile/logger/-/logger-0.2.0.tgz", ··· 719 734 "version": "0.3.13", 720 735 "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", 721 736 "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", 722 - "dev": true, 723 737 "license": "MIT", 724 738 "dependencies": { 725 739 "@jridgewell/sourcemap-codec": "^1.5.0", ··· 730 744 "version": "2.3.5", 731 745 "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", 732 746 "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", 733 - "dev": true, 734 747 "license": "MIT", 735 748 "dependencies": { 736 749 "@jridgewell/gen-mapping": "^0.3.5", ··· 741 754 "version": "3.1.2", 742 755 "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", 743 756 "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", 744 - "dev": true, 745 757 "license": "MIT", 746 758 "engines": { 747 759 "node": ">=6.0.0" ··· 751 763 "version": "1.5.0", 752 764 "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", 753 765 "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", 754 - "dev": true, 755 766 "license": "MIT" 756 767 }, 757 768 "node_modules/@jridgewell/trace-mapping": { 758 769 "version": "0.3.25", 759 770 "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", 760 771 "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", 761 - "dev": true, 762 772 "license": "MIT", 763 773 "dependencies": { 764 774 "@jridgewell/resolve-uri": "^3.1.0", 765 775 "@jridgewell/sourcemap-codec": "^1.4.14" 766 776 } 767 777 }, 778 + "node_modules/@nodelib/fs.scandir": { 779 + "version": "2.1.5", 780 + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", 781 + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", 782 + "dev": true, 783 + "license": "MIT", 784 + "dependencies": { 785 + "@nodelib/fs.stat": "2.0.5", 786 + "run-parallel": "^1.1.9" 787 + }, 788 + "engines": { 789 + "node": ">= 8" 790 + } 791 + }, 792 + "node_modules/@nodelib/fs.stat": { 793 + "version": "2.0.5", 794 + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", 795 + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", 796 + "dev": true, 797 + "license": "MIT", 798 + "engines": { 799 + "node": ">= 8" 800 + } 801 + }, 802 + "node_modules/@nodelib/fs.walk": { 803 + "version": "1.2.8", 804 + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", 805 + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", 806 + "dev": true, 807 + "license": "MIT", 808 + "dependencies": { 809 + "@nodelib/fs.scandir": "2.1.5", 810 + "fastq": "^1.6.0" 811 + }, 812 + "engines": { 813 + "node": ">= 8" 814 + } 815 + }, 816 + "node_modules/@orval/angular": { 817 + "version": "8.3.0", 818 + "resolved": "https://registry.npmjs.org/@orval/angular/-/angular-8.3.0.tgz", 819 + "integrity": "sha512-u4rnYUWA5S4wyCAmDF/Z2JUZKwyVVEoi0NOrXwprqh+t3ixriDb3dTJzu22CN8qCtlXmhcIU/rZDxsMzNgM03A==", 820 + "dev": true, 821 + "license": "MIT", 822 + "dependencies": { 823 + "@orval/core": "8.3.0" 824 + } 825 + }, 826 + "node_modules/@orval/axios": { 827 + "version": "8.3.0", 828 + "resolved": "https://registry.npmjs.org/@orval/axios/-/axios-8.3.0.tgz", 829 + "integrity": "sha512-a4ItU75sAbWTWaLyD79sRZVXpQBo1PdzaMS4LtfkLMtKIfBsBgqS3GU7EtFfpnmlFA+snEorHCQxmITqMYEXsg==", 830 + "dev": true, 831 + "license": "MIT", 832 + "dependencies": { 833 + "@orval/core": "8.3.0" 834 + } 835 + }, 836 + "node_modules/@orval/core": { 837 + "version": "8.3.0", 838 + "resolved": "https://registry.npmjs.org/@orval/core/-/core-8.3.0.tgz", 839 + "integrity": "sha512-YnRmHoD+J8zClMMuJpMPgtLFsdawIRCRqJbkTZyT4aeBQw8QcmUZpI+1yX/XOsOAwRawa87FNuQLPtU04LR1bg==", 840 + "dev": true, 841 + "license": "MIT", 842 + "dependencies": { 843 + "@scalar/openapi-types": "0.5.3", 844 + "acorn": "^8.15.0", 845 + "chalk": "^5.6.2", 846 + "compare-versions": "^6.1.1", 847 + "debug": "^4.4.3", 848 + "esbuild": "^0.27.2", 849 + "esutils": "2.0.3", 850 + "fs-extra": "^11.3.2", 851 + "globby": "16.1.0", 852 + "remeda": "^2.32.0", 853 + "typedoc": "^0.28.15" 854 + } 855 + }, 856 + "node_modules/@orval/core/node_modules/chalk": { 857 + "version": "5.6.2", 858 + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz", 859 + "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==", 860 + "dev": true, 861 + "license": "MIT", 862 + "engines": { 863 + "node": "^12.17.0 || ^14.13 || >=16.0.0" 864 + }, 865 + "funding": { 866 + "url": "https://github.com/chalk/chalk?sponsor=1" 867 + } 868 + }, 869 + "node_modules/@orval/fetch": { 870 + "version": "8.3.0", 871 + "resolved": "https://registry.npmjs.org/@orval/fetch/-/fetch-8.3.0.tgz", 872 + "integrity": "sha512-HX6XDjWfa3yoMqszSUpfJGJ4HRPiRzt1gyEZDUiBKEtkWuFCv4SRt1TLaZ51yESjY+NyhK5unaCINb4TXQTOog==", 873 + "dev": true, 874 + "license": "MIT", 875 + "dependencies": { 876 + "@orval/core": "8.3.0", 877 + "@scalar/openapi-types": "0.5.3" 878 + } 879 + }, 880 + "node_modules/@orval/hono": { 881 + "version": "8.3.0", 882 + "resolved": "https://registry.npmjs.org/@orval/hono/-/hono-8.3.0.tgz", 883 + "integrity": "sha512-p9FwQtrZe1qLK3/8CRBAwfkwDNftpegbNdsC+ZBKqOjhU8EEUInsG3ViNdxE+iGC2PyStYkHv9z0T8H6SaXyrA==", 884 + "dev": true, 885 + "license": "MIT", 886 + "dependencies": { 887 + "@orval/core": "8.3.0", 888 + "@orval/zod": "8.3.0", 889 + "fs-extra": "^11.3.2", 890 + "remeda": "^2.32.0" 891 + } 892 + }, 893 + "node_modules/@orval/mcp": { 894 + "version": "8.3.0", 895 + "resolved": "https://registry.npmjs.org/@orval/mcp/-/mcp-8.3.0.tgz", 896 + "integrity": "sha512-nKK92T8IMLxP0k4i5Fz/aMFYYF6e7vGzk9PpD9wPZOKq+UAYY3CO/FzOdaTqS818lH6P9lzzlHj6uHLUO8AP3g==", 897 + "dev": true, 898 + "license": "MIT", 899 + "dependencies": { 900 + "@orval/core": "8.3.0", 901 + "@orval/fetch": "8.3.0", 902 + "@orval/zod": "8.3.0" 903 + } 904 + }, 905 + "node_modules/@orval/mock": { 906 + "version": "8.3.0", 907 + "resolved": "https://registry.npmjs.org/@orval/mock/-/mock-8.3.0.tgz", 908 + "integrity": "sha512-JakiizNRtTBf/RQlv0pX5sRt7uRrBEEDvt47W39PAYl/2zpKy9SryhmJ8KIH/cpC0SHTt7fgFNyS1Zt+GfqbTg==", 909 + "dev": true, 910 + "license": "MIT", 911 + "dependencies": { 912 + "@orval/core": "8.3.0" 913 + } 914 + }, 915 + "node_modules/@orval/query": { 916 + "version": "8.3.0", 917 + "resolved": "https://registry.npmjs.org/@orval/query/-/query-8.3.0.tgz", 918 + "integrity": "sha512-qw0HfyPkFZATlQiT478zVX9gCNFhCxbfgoLavoq3UdfB+QVT7eEjXrbYBjMvMik0WrPqznJGizmCgq82EyKaQQ==", 919 + "dev": true, 920 + "license": "MIT", 921 + "dependencies": { 922 + "@orval/core": "8.3.0", 923 + "@orval/fetch": "8.3.0", 924 + "chalk": "^5.6.2", 925 + "remeda": "^2.32.0" 926 + } 927 + }, 928 + "node_modules/@orval/query/node_modules/chalk": { 929 + "version": "5.6.2", 930 + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz", 931 + "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==", 932 + "dev": true, 933 + "license": "MIT", 934 + "engines": { 935 + "node": "^12.17.0 || ^14.13 || >=16.0.0" 936 + }, 937 + "funding": { 938 + "url": "https://github.com/chalk/chalk?sponsor=1" 939 + } 940 + }, 941 + "node_modules/@orval/solid-start": { 942 + "version": "8.3.0", 943 + "resolved": "https://registry.npmjs.org/@orval/solid-start/-/solid-start-8.3.0.tgz", 944 + "integrity": "sha512-OVnjGCZtMBKdo3SIiRwJKKrCi6/q3tLapUHpugZxEPWTAQCNmri5ADCNnuKfVFVNCmtPwyDSTVKf4rHnSSV2aA==", 945 + "dev": true, 946 + "license": "MIT", 947 + "dependencies": { 948 + "@orval/core": "8.3.0" 949 + } 950 + }, 951 + "node_modules/@orval/swr": { 952 + "version": "8.3.0", 953 + "resolved": "https://registry.npmjs.org/@orval/swr/-/swr-8.3.0.tgz", 954 + "integrity": "sha512-uyfePjCQZSMwy1urgPPPdwc0zB99beZf8fleAvJZRbYKBcM+8yRcjKjUj+nHp48LlkG6U8enWulNRXlZeupUGQ==", 955 + "dev": true, 956 + "license": "MIT", 957 + "dependencies": { 958 + "@orval/core": "8.3.0", 959 + "@orval/fetch": "8.3.0" 960 + } 961 + }, 962 + "node_modules/@orval/zod": { 963 + "version": "8.3.0", 964 + "resolved": "https://registry.npmjs.org/@orval/zod/-/zod-8.3.0.tgz", 965 + "integrity": "sha512-3jfLj/Az+7PI5J45+MiCuWooFjOu2APJV1+PcfYd7Bjb62SG9wsGG9BcbylgqUxdDXUlNUrt4qmzbBK8h62UAg==", 966 + "dev": true, 967 + "license": "MIT", 968 + "dependencies": { 969 + "@orval/core": "8.3.0", 970 + "remeda": "^2.32.0" 971 + } 972 + }, 768 973 "node_modules/@polka/url": { 769 974 "version": "1.0.0-next.28", 770 975 "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.28.tgz", ··· 1080 1285 "win32" 1081 1286 ] 1082 1287 }, 1288 + "node_modules/@scalar/helpers": { 1289 + "version": "0.2.6", 1290 + "resolved": "https://registry.npmjs.org/@scalar/helpers/-/helpers-0.2.6.tgz", 1291 + "integrity": "sha512-A471YFBCj7ZOlGIkAYnU8oYgeyts82ZNX+4UicrlmKv3eAQ+kwboN3Dy0R6u1lcA/+I/zzeXi/fBObsT7P9qTA==", 1292 + "dev": true, 1293 + "license": "MIT", 1294 + "engines": { 1295 + "node": ">=20" 1296 + } 1297 + }, 1298 + "node_modules/@scalar/json-magic": { 1299 + "version": "0.8.10", 1300 + "resolved": "https://registry.npmjs.org/@scalar/json-magic/-/json-magic-0.8.10.tgz", 1301 + "integrity": "sha512-TWdKQ/hcy4erFQDp2MVlFoPesFep2VY96Q69cjLHmx5hxM0ZUBfmNB4lA8Uh3klgx5JmCDfSNIGjPFIpxlosUw==", 1302 + "dev": true, 1303 + "license": "MIT", 1304 + "dependencies": { 1305 + "@scalar/helpers": "0.2.6", 1306 + "yaml": "^2.8.0" 1307 + }, 1308 + "engines": { 1309 + "node": ">=20" 1310 + } 1311 + }, 1312 + "node_modules/@scalar/openapi-parser": { 1313 + "version": "0.23.13", 1314 + "resolved": "https://registry.npmjs.org/@scalar/openapi-parser/-/openapi-parser-0.23.13.tgz", 1315 + "integrity": "sha512-YsljPOKOgQgZL/kBcEouwz2CUa+2hFfThlUZRWC2DFI2Fnw5Ur8F1IvGgPqCAHr9p2XMH+Z/Pag2jZUfLcxcww==", 1316 + "dev": true, 1317 + "license": "MIT", 1318 + "dependencies": { 1319 + "@scalar/json-magic": "0.9.0", 1320 + "@scalar/openapi-types": "0.5.3", 1321 + "@scalar/openapi-upgrader": "0.1.7", 1322 + "ajv": "^8.17.1", 1323 + "ajv-draft-04": "^1.0.0", 1324 + "ajv-formats": "^3.0.1", 1325 + "jsonpointer": "^5.0.1", 1326 + "leven": "^4.0.0", 1327 + "yaml": "^2.8.0" 1328 + }, 1329 + "engines": { 1330 + "node": ">=20" 1331 + } 1332 + }, 1333 + "node_modules/@scalar/openapi-parser/node_modules/@scalar/helpers": { 1334 + "version": "0.2.7", 1335 + "resolved": "https://registry.npmjs.org/@scalar/helpers/-/helpers-0.2.7.tgz", 1336 + "integrity": "sha512-uFTcdi3XYDDuaJLWiMuM3ijQit1OBw7AkuOuujReY8L9UmUQHY56erYg0+Db3llTsinuIYFh+eS/WX/sYuevYQ==", 1337 + "dev": true, 1338 + "license": "MIT", 1339 + "engines": { 1340 + "node": ">=20" 1341 + } 1342 + }, 1343 + "node_modules/@scalar/openapi-parser/node_modules/@scalar/json-magic": { 1344 + "version": "0.9.0", 1345 + "resolved": "https://registry.npmjs.org/@scalar/json-magic/-/json-magic-0.9.0.tgz", 1346 + "integrity": "sha512-aSWd8rd3O73Ak9Ylson2TywvOuTjjOYiXydl9Cn8Ip/r7fi+h0QqAGom5gqo/WewrhySF9v+H/sW/Qmd05T/Kg==", 1347 + "dev": true, 1348 + "license": "MIT", 1349 + "dependencies": { 1350 + "@scalar/helpers": "0.2.7", 1351 + "yaml": "^2.8.0" 1352 + }, 1353 + "engines": { 1354 + "node": ">=20" 1355 + } 1356 + }, 1357 + "node_modules/@scalar/openapi-parser/node_modules/ajv": { 1358 + "version": "8.17.1", 1359 + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", 1360 + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", 1361 + "dev": true, 1362 + "license": "MIT", 1363 + "dependencies": { 1364 + "fast-deep-equal": "^3.1.3", 1365 + "fast-uri": "^3.0.1", 1366 + "json-schema-traverse": "^1.0.0", 1367 + "require-from-string": "^2.0.2" 1368 + }, 1369 + "funding": { 1370 + "type": "github", 1371 + "url": "https://github.com/sponsors/epoberezkin" 1372 + } 1373 + }, 1374 + "node_modules/@scalar/openapi-parser/node_modules/ajv-draft-04": { 1375 + "version": "1.0.0", 1376 + "resolved": "https://registry.npmjs.org/ajv-draft-04/-/ajv-draft-04-1.0.0.tgz", 1377 + "integrity": "sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==", 1378 + "dev": true, 1379 + "license": "MIT", 1380 + "peerDependencies": { 1381 + "ajv": "^8.5.0" 1382 + }, 1383 + "peerDependenciesMeta": { 1384 + "ajv": { 1385 + "optional": true 1386 + } 1387 + } 1388 + }, 1389 + "node_modules/@scalar/openapi-parser/node_modules/json-schema-traverse": { 1390 + "version": "1.0.0", 1391 + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", 1392 + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", 1393 + "dev": true, 1394 + "license": "MIT" 1395 + }, 1396 + "node_modules/@scalar/openapi-types": { 1397 + "version": "0.5.3", 1398 + "resolved": "https://registry.npmjs.org/@scalar/openapi-types/-/openapi-types-0.5.3.tgz", 1399 + "integrity": "sha512-m4n/Su3K01d15dmdWO1LlqecdSPKuNjuokrJLdiQ485kW/hRHbXW1QP6tJL75myhw/XhX5YhYAR+jrwnGjXiMw==", 1400 + "dev": true, 1401 + "license": "MIT", 1402 + "dependencies": { 1403 + "zod": "^4.1.11" 1404 + }, 1405 + "engines": { 1406 + "node": ">=20" 1407 + } 1408 + }, 1409 + "node_modules/@scalar/openapi-upgrader": { 1410 + "version": "0.1.7", 1411 + "resolved": "https://registry.npmjs.org/@scalar/openapi-upgrader/-/openapi-upgrader-0.1.7.tgz", 1412 + "integrity": "sha512-065froUtqvaHjyeJtyitf8tb+k7oh7nU0OinAHYbj1Bqgwb1s2+uKMqHYHEES5CNpp+2xtL4lxup6Aq29yW+sQ==", 1413 + "dev": true, 1414 + "license": "MIT", 1415 + "dependencies": { 1416 + "@scalar/openapi-types": "0.5.3" 1417 + }, 1418 + "engines": { 1419 + "node": ">=20" 1420 + } 1421 + }, 1422 + "node_modules/@sec-ant/readable-stream": { 1423 + "version": "0.4.1", 1424 + "resolved": "https://registry.npmjs.org/@sec-ant/readable-stream/-/readable-stream-0.4.1.tgz", 1425 + "integrity": "sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==", 1426 + "dev": true, 1427 + "license": "MIT" 1428 + }, 1083 1429 "node_modules/@sentry-internal/browser-utils": { 1084 1430 "version": "10.38.0", 1085 1431 "resolved": "https://registry.npmjs.org/@sentry-internal/browser-utils/-/browser-utils-10.38.0.tgz", ··· 1155 1501 "node": ">=18" 1156 1502 } 1157 1503 }, 1504 + "node_modules/@shikijs/engine-oniguruma": { 1505 + "version": "3.22.0", 1506 + "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-3.22.0.tgz", 1507 + "integrity": "sha512-DyXsOG0vGtNtl7ygvabHd7Mt5EY8gCNqR9Y7Lpbbd/PbJvgWrqaKzH1JW6H6qFkuUa8aCxoiYVv8/YfFljiQxA==", 1508 + "dev": true, 1509 + "license": "MIT", 1510 + "dependencies": { 1511 + "@shikijs/types": "3.22.0", 1512 + "@shikijs/vscode-textmate": "^10.0.2" 1513 + } 1514 + }, 1515 + "node_modules/@shikijs/langs": { 1516 + "version": "3.22.0", 1517 + "resolved": "https://registry.npmjs.org/@shikijs/langs/-/langs-3.22.0.tgz", 1518 + "integrity": "sha512-x/42TfhWmp6H00T6uwVrdTJGKgNdFbrEdhaDwSR5fd5zhQ1Q46bHq9EO61SCEWJR0HY7z2HNDMaBZp8JRmKiIA==", 1519 + "dev": true, 1520 + "license": "MIT", 1521 + "dependencies": { 1522 + "@shikijs/types": "3.22.0" 1523 + } 1524 + }, 1525 + "node_modules/@shikijs/themes": { 1526 + "version": "3.22.0", 1527 + "resolved": "https://registry.npmjs.org/@shikijs/themes/-/themes-3.22.0.tgz", 1528 + "integrity": "sha512-o+tlOKqsr6FE4+mYJG08tfCFDS+3CG20HbldXeVoyP+cYSUxDhrFf3GPjE60U55iOkkjbpY2uC3It/eeja35/g==", 1529 + "dev": true, 1530 + "license": "MIT", 1531 + "dependencies": { 1532 + "@shikijs/types": "3.22.0" 1533 + } 1534 + }, 1535 + "node_modules/@shikijs/types": { 1536 + "version": "3.22.0", 1537 + "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-3.22.0.tgz", 1538 + "integrity": "sha512-491iAekgKDBFE67z70Ok5a8KBMsQ2IJwOWw3us/7ffQkIBCyOQfm/aNwVMBUriP02QshIfgHCBSIYAl3u2eWjg==", 1539 + "dev": true, 1540 + "license": "MIT", 1541 + "dependencies": { 1542 + "@shikijs/vscode-textmate": "^10.0.2", 1543 + "@types/hast": "^3.0.4" 1544 + } 1545 + }, 1546 + "node_modules/@shikijs/vscode-textmate": { 1547 + "version": "10.0.2", 1548 + "resolved": "https://registry.npmjs.org/@shikijs/vscode-textmate/-/vscode-textmate-10.0.2.tgz", 1549 + "integrity": "sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==", 1550 + "dev": true, 1551 + "license": "MIT" 1552 + }, 1553 + "node_modules/@sindresorhus/merge-streams": { 1554 + "version": "4.0.0", 1555 + "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-4.0.0.tgz", 1556 + "integrity": "sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==", 1557 + "dev": true, 1558 + "license": "MIT", 1559 + "engines": { 1560 + "node": ">=18" 1561 + }, 1562 + "funding": { 1563 + "url": "https://github.com/sponsors/sindresorhus" 1564 + } 1565 + }, 1158 1566 "node_modules/@standard-schema/spec": { 1159 1567 "version": "1.1.0", 1160 1568 "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz", ··· 1166 1574 "version": "1.0.8", 1167 1575 "resolved": "https://registry.npmjs.org/@sveltejs/acorn-typescript/-/acorn-typescript-1.0.8.tgz", 1168 1576 "integrity": "sha512-esgN+54+q0NjB0Y/4BomT9samII7jGwNy/2a3wNZbT2A2RpmXsXwUt24LvLhx6jUq2gVk4cWEvcRO6MFQbOfNA==", 1169 - "dev": true, 1170 1577 "license": "MIT", 1171 1578 "peerDependencies": { 1172 1579 "acorn": "^8.9.0" ··· 1264 1671 "vite": "^6.3.0 || ^7.0.0" 1265 1672 } 1266 1673 }, 1267 - "node_modules/@sveltestack/svelte-query": { 1268 - "version": "1.6.0", 1269 - "resolved": "https://registry.npmjs.org/@sveltestack/svelte-query/-/svelte-query-1.6.0.tgz", 1270 - "integrity": "sha512-C0wWuh6av1zu3Pzwrg6EQmX3BhDZQ4gMAdYu6Tfv4bjbEZTB00uEDz52z92IZdONh+iUKuyo0xRZ2e16k2Xifg==", 1674 + "node_modules/@tanstack/query-core": { 1675 + "version": "5.90.20", 1676 + "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.90.20.tgz", 1677 + "integrity": "sha512-OMD2HLpNouXEfZJWcKeVKUgQ5n+n3A2JFmBaScpNDUqSrQSjiveC7dKMe53uJUg1nDG16ttFPz2xfilz6i2uVg==", 1271 1678 "license": "MIT", 1272 - "peerDependencies": { 1273 - "broadcast-channel": "^4.5.0" 1679 + "funding": { 1680 + "type": "github", 1681 + "url": "https://github.com/sponsors/tannerlinsley" 1682 + } 1683 + }, 1684 + "node_modules/@tanstack/svelte-query": { 1685 + "version": "6.0.18", 1686 + "resolved": "https://registry.npmjs.org/@tanstack/svelte-query/-/svelte-query-6.0.18.tgz", 1687 + "integrity": "sha512-iGS8osfrIVUW5pkV4Ig6pspNIMtiNjGnVTNJKDas0m/QaNDFFIKbgg74rCzcjwrTIvO38tMpzb4VUKklvAmjxw==", 1688 + "license": "MIT", 1689 + "dependencies": { 1690 + "@tanstack/query-core": "5.90.20" 1691 + }, 1692 + "funding": { 1693 + "type": "github", 1694 + "url": "https://github.com/sponsors/tannerlinsley" 1274 1695 }, 1275 - "peerDependenciesMeta": { 1276 - "broadcast-channel": { 1277 - "optional": true 1278 - } 1696 + "peerDependencies": { 1697 + "svelte": "^5.25.0" 1279 1698 } 1280 1699 }, 1281 1700 "node_modules/@types/cookie": { ··· 1289 1708 "version": "1.0.8", 1290 1709 "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", 1291 1710 "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", 1711 + "license": "MIT" 1712 + }, 1713 + "node_modules/@types/hast": { 1714 + "version": "3.0.4", 1715 + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", 1716 + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", 1292 1717 "dev": true, 1293 - "license": "MIT" 1718 + "license": "MIT", 1719 + "dependencies": { 1720 + "@types/unist": "*" 1721 + } 1294 1722 }, 1295 1723 "node_modules/@types/json-patch": { 1296 1724 "version": "0.0.33", ··· 1353 1781 "dev": true, 1354 1782 "license": "MIT" 1355 1783 }, 1784 + "node_modules/@types/unist": { 1785 + "version": "3.0.3", 1786 + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", 1787 + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", 1788 + "dev": true, 1789 + "license": "MIT" 1790 + }, 1356 1791 "node_modules/@typescript-eslint/eslint-plugin": { 1357 1792 "version": "8.51.0", 1358 1793 "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.51.0.tgz", ··· 1613 2048 "version": "8.15.0", 1614 2049 "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", 1615 2050 "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", 1616 - "dev": true, 1617 2051 "license": "MIT", 1618 2052 "bin": { 1619 2053 "acorn": "bin/acorn" ··· 1649 2083 "url": "https://github.com/sponsors/epoberezkin" 1650 2084 } 1651 2085 }, 2086 + "node_modules/ajv-formats": { 2087 + "version": "3.0.1", 2088 + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", 2089 + "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", 2090 + "dev": true, 2091 + "license": "MIT", 2092 + "dependencies": { 2093 + "ajv": "^8.0.0" 2094 + }, 2095 + "peerDependencies": { 2096 + "ajv": "^8.0.0" 2097 + }, 2098 + "peerDependenciesMeta": { 2099 + "ajv": { 2100 + "optional": true 2101 + } 2102 + } 2103 + }, 2104 + "node_modules/ajv-formats/node_modules/ajv": { 2105 + "version": "8.17.1", 2106 + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", 2107 + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", 2108 + "dev": true, 2109 + "license": "MIT", 2110 + "dependencies": { 2111 + "fast-deep-equal": "^3.1.3", 2112 + "fast-uri": "^3.0.1", 2113 + "json-schema-traverse": "^1.0.0", 2114 + "require-from-string": "^2.0.2" 2115 + }, 2116 + "funding": { 2117 + "type": "github", 2118 + "url": "https://github.com/sponsors/epoberezkin" 2119 + } 2120 + }, 2121 + "node_modules/ajv-formats/node_modules/json-schema-traverse": { 2122 + "version": "1.0.0", 2123 + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", 2124 + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", 2125 + "dev": true, 2126 + "license": "MIT" 2127 + }, 1652 2128 "node_modules/ansi": { 1653 2129 "version": "0.3.1", 1654 2130 "resolved": "https://registry.npmjs.org/ansi/-/ansi-0.3.1.tgz", 1655 2131 "integrity": "sha512-iFY7JCgHbepc0b82yLaw4IMortylNb6wG4kL+4R0C3iv6i+RHGHux/yUX5BTiRvSX/shMnngjR1YyNMnXEFh5A==", 1656 2132 "dev": true, 1657 2133 "license": "MIT" 2134 + }, 2135 + "node_modules/ansi-colors": { 2136 + "version": "4.1.3", 2137 + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", 2138 + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", 2139 + "dev": true, 2140 + "license": "MIT", 2141 + "engines": { 2142 + "node": ">=6" 2143 + } 1658 2144 }, 1659 2145 "node_modules/ansi-regex": { 1660 2146 "version": "5.0.1", ··· 1719 2205 "version": "5.3.2", 1720 2206 "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", 1721 2207 "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", 1722 - "dev": true, 1723 2208 "license": "Apache-2.0", 1724 2209 "engines": { 1725 2210 "node": ">= 0.4" ··· 1729 2214 "version": "4.1.0", 1730 2215 "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", 1731 2216 "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", 1732 - "dev": true, 1733 2217 "license": "Apache-2.0", 1734 2218 "engines": { 1735 2219 "node": ">= 0.4" ··· 1900 2384 "version": "2.1.1", 1901 2385 "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", 1902 2386 "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", 1903 - "dev": true, 1904 2387 "license": "MIT", 1905 2388 "engines": { 1906 2389 "node": ">=6" ··· 1943 2426 "dev": true, 1944 2427 "license": "MIT" 1945 2428 }, 2429 + "node_modules/compare-versions": { 2430 + "version": "6.1.1", 2431 + "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-6.1.1.tgz", 2432 + "integrity": "sha512-4hm4VPpIecmlg59CHXnRDnqGplJFrbLG4aFEl5vl6cK1u76ws3LLvX7ikFnTDl5vo39sjWD6AaDPYodJp/NNHg==", 2433 + "dev": true, 2434 + "license": "MIT" 2435 + }, 1946 2436 "node_modules/concat-map": { 1947 2437 "version": "0.0.1", 1948 2438 "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", ··· 2088 2578 "version": "5.6.2", 2089 2579 "resolved": "https://registry.npmjs.org/devalue/-/devalue-5.6.2.tgz", 2090 2580 "integrity": "sha512-nPRkjWzzDQlsejL1WVifk5rvcFi/y1onBRxjaFMjZeR9mFpqu2gmAZ9xUB9/IEanEP/vBtGeGganC/GO1fmufg==", 2091 - "dev": true, 2092 2581 "license": "MIT" 2093 2582 }, 2094 2583 "node_modules/discontinuous-range": { ··· 2105 2594 "dev": true, 2106 2595 "license": "MIT" 2107 2596 }, 2597 + "node_modules/enquirer": { 2598 + "version": "2.4.1", 2599 + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", 2600 + "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", 2601 + "dev": true, 2602 + "license": "MIT", 2603 + "dependencies": { 2604 + "ansi-colors": "^4.1.1", 2605 + "strip-ansi": "^6.0.1" 2606 + }, 2607 + "engines": { 2608 + "node": ">=8.6" 2609 + } 2610 + }, 2611 + "node_modules/entities": { 2612 + "version": "4.5.0", 2613 + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", 2614 + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", 2615 + "dev": true, 2616 + "license": "BSD-2-Clause", 2617 + "engines": { 2618 + "node": ">=0.12" 2619 + }, 2620 + "funding": { 2621 + "url": "https://github.com/fb55/entities?sponsor=1" 2622 + } 2623 + }, 2108 2624 "node_modules/esbuild": { 2109 2625 "version": "0.27.2", 2110 2626 "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.2.tgz", ··· 2314 2830 "version": "1.2.2", 2315 2831 "resolved": "https://registry.npmjs.org/esm-env/-/esm-env-1.2.2.tgz", 2316 2832 "integrity": "sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA==", 2317 - "dev": true, 2318 2833 "license": "MIT" 2319 2834 }, 2320 2835 "node_modules/espree": { ··· 2352 2867 "version": "2.2.1", 2353 2868 "resolved": "https://registry.npmjs.org/esrap/-/esrap-2.2.1.tgz", 2354 2869 "integrity": "sha512-GiYWG34AN/4CUyaWAgunGt0Rxvr1PTMlGC0vvEov/uOQYWne2bpN03Um+k8jT+q3op33mKouP2zeJ6OlM+qeUg==", 2355 - "dev": true, 2356 2870 "license": "MIT", 2357 2871 "dependencies": { 2358 2872 "@jridgewell/sourcemap-codec": "^1.4.15" ··· 2391 2905 "node": ">=0.10.0" 2392 2906 } 2393 2907 }, 2908 + "node_modules/execa": { 2909 + "version": "9.6.1", 2910 + "resolved": "https://registry.npmjs.org/execa/-/execa-9.6.1.tgz", 2911 + "integrity": "sha512-9Be3ZoN4LmYR90tUoVu2te2BsbzHfhJyfEiAVfz7N5/zv+jduIfLrV2xdQXOHbaD6KgpGdO9PRPM1Y4Q9QkPkA==", 2912 + "dev": true, 2913 + "license": "MIT", 2914 + "dependencies": { 2915 + "@sindresorhus/merge-streams": "^4.0.0", 2916 + "cross-spawn": "^7.0.6", 2917 + "figures": "^6.1.0", 2918 + "get-stream": "^9.0.0", 2919 + "human-signals": "^8.0.1", 2920 + "is-plain-obj": "^4.1.0", 2921 + "is-stream": "^4.0.1", 2922 + "npm-run-path": "^6.0.0", 2923 + "pretty-ms": "^9.2.0", 2924 + "signal-exit": "^4.1.0", 2925 + "strip-final-newline": "^4.0.0", 2926 + "yoctocolors": "^2.1.1" 2927 + }, 2928 + "engines": { 2929 + "node": "^18.19.0 || >=20.5.0" 2930 + }, 2931 + "funding": { 2932 + "url": "https://github.com/sindresorhus/execa?sponsor=1" 2933 + } 2934 + }, 2394 2935 "node_modules/fast-deep-equal": { 2395 2936 "version": "3.1.3", 2396 2937 "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", ··· 2398 2939 "dev": true, 2399 2940 "license": "MIT" 2400 2941 }, 2942 + "node_modules/fast-glob": { 2943 + "version": "3.3.3", 2944 + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", 2945 + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", 2946 + "dev": true, 2947 + "license": "MIT", 2948 + "dependencies": { 2949 + "@nodelib/fs.stat": "^2.0.2", 2950 + "@nodelib/fs.walk": "^1.2.3", 2951 + "glob-parent": "^5.1.2", 2952 + "merge2": "^1.3.0", 2953 + "micromatch": "^4.0.8" 2954 + }, 2955 + "engines": { 2956 + "node": ">=8.6.0" 2957 + } 2958 + }, 2959 + "node_modules/fast-glob/node_modules/glob-parent": { 2960 + "version": "5.1.2", 2961 + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", 2962 + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", 2963 + "dev": true, 2964 + "license": "ISC", 2965 + "dependencies": { 2966 + "is-glob": "^4.0.1" 2967 + }, 2968 + "engines": { 2969 + "node": ">= 6" 2970 + } 2971 + }, 2401 2972 "node_modules/fast-json-stable-stringify": { 2402 2973 "version": "2.1.0", 2403 2974 "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", ··· 2412 2983 "dev": true, 2413 2984 "license": "MIT" 2414 2985 }, 2986 + "node_modules/fast-uri": { 2987 + "version": "3.1.0", 2988 + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz", 2989 + "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==", 2990 + "dev": true, 2991 + "funding": [ 2992 + { 2993 + "type": "github", 2994 + "url": "https://github.com/sponsors/fastify" 2995 + }, 2996 + { 2997 + "type": "opencollective", 2998 + "url": "https://opencollective.com/fastify" 2999 + } 3000 + ], 3001 + "license": "BSD-3-Clause" 3002 + }, 3003 + "node_modules/fastq": { 3004 + "version": "1.20.1", 3005 + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz", 3006 + "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==", 3007 + "dev": true, 3008 + "license": "ISC", 3009 + "dependencies": { 3010 + "reusify": "^1.0.4" 3011 + } 3012 + }, 3013 + "node_modules/figures": { 3014 + "version": "6.1.0", 3015 + "resolved": "https://registry.npmjs.org/figures/-/figures-6.1.0.tgz", 3016 + "integrity": "sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==", 3017 + "dev": true, 3018 + "license": "MIT", 3019 + "dependencies": { 3020 + "is-unicode-supported": "^2.0.0" 3021 + }, 3022 + "engines": { 3023 + "node": ">=18" 3024 + }, 3025 + "funding": { 3026 + "url": "https://github.com/sponsors/sindresorhus" 3027 + } 3028 + }, 2415 3029 "node_modules/file-entry-cache": { 2416 3030 "version": "8.0.0", 2417 3031 "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", ··· 2476 3090 "dev": true, 2477 3091 "license": "ISC" 2478 3092 }, 3093 + "node_modules/fs-extra": { 3094 + "version": "11.3.3", 3095 + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.3.tgz", 3096 + "integrity": "sha512-VWSRii4t0AFm6ixFFmLLx1t7wS1gh+ckoa84aOeapGum0h+EZd1EhEumSB+ZdDLnEPuucsVB9oB7cxJHap6Afg==", 3097 + "dev": true, 3098 + "license": "MIT", 3099 + "dependencies": { 3100 + "graceful-fs": "^4.2.0", 3101 + "jsonfile": "^6.0.1", 3102 + "universalify": "^2.0.0" 3103 + }, 3104 + "engines": { 3105 + "node": ">=14.14" 3106 + } 3107 + }, 2479 3108 "node_modules/fsevents": { 2480 3109 "version": "2.3.3", 2481 3110 "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", ··· 2516 3145 "node": "6.* || 8.* || >= 10.*" 2517 3146 } 2518 3147 }, 3148 + "node_modules/get-stream": { 3149 + "version": "9.0.1", 3150 + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-9.0.1.tgz", 3151 + "integrity": "sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==", 3152 + "dev": true, 3153 + "license": "MIT", 3154 + "dependencies": { 3155 + "@sec-ant/readable-stream": "^0.4.1", 3156 + "is-stream": "^4.0.1" 3157 + }, 3158 + "engines": { 3159 + "node": ">=18" 3160 + }, 3161 + "funding": { 3162 + "url": "https://github.com/sponsors/sindresorhus" 3163 + } 3164 + }, 2519 3165 "node_modules/get-tsconfig": { 2520 3166 "version": "4.8.1", 2521 3167 "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.8.1.tgz", ··· 2573 3219 "url": "https://github.com/sponsors/sindresorhus" 2574 3220 } 2575 3221 }, 3222 + "node_modules/globby": { 3223 + "version": "16.1.0", 3224 + "resolved": "https://registry.npmjs.org/globby/-/globby-16.1.0.tgz", 3225 + "integrity": "sha512-+A4Hq7m7Ze592k9gZRy4gJ27DrXRNnC1vPjxTt1qQxEY8RxagBkBxivkCwg7FxSTG0iLLEMaUx13oOr0R2/qcQ==", 3226 + "dev": true, 3227 + "license": "MIT", 3228 + "dependencies": { 3229 + "@sindresorhus/merge-streams": "^4.0.0", 3230 + "fast-glob": "^3.3.3", 3231 + "ignore": "^7.0.5", 3232 + "is-path-inside": "^4.0.0", 3233 + "slash": "^5.1.0", 3234 + "unicorn-magic": "^0.4.0" 3235 + }, 3236 + "engines": { 3237 + "node": ">=20" 3238 + }, 3239 + "funding": { 3240 + "url": "https://github.com/sponsors/sindresorhus" 3241 + } 3242 + }, 3243 + "node_modules/globby/node_modules/ignore": { 3244 + "version": "7.0.5", 3245 + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", 3246 + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", 3247 + "dev": true, 3248 + "license": "MIT", 3249 + "engines": { 3250 + "node": ">= 4" 3251 + } 3252 + }, 2576 3253 "node_modules/globstar": { 2577 3254 "version": "1.0.0", 2578 3255 "resolved": "https://registry.npmjs.org/globstar/-/globstar-1.0.0.tgz", ··· 2690 3367 "y18n": "^3.2.0" 2691 3368 } 2692 3369 }, 3370 + "node_modules/graceful-fs": { 3371 + "version": "4.2.11", 3372 + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", 3373 + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", 3374 + "dev": true, 3375 + "license": "ISC" 3376 + }, 2693 3377 "node_modules/graphile-migrate": { 2694 3378 "version": "2.0.0-rc.2", 2695 3379 "resolved": "https://registry.npmjs.org/graphile-migrate/-/graphile-migrate-2.0.0-rc.2.tgz", ··· 2748 3432 "dev": true, 2749 3433 "license": "ISC" 2750 3434 }, 3435 + "node_modules/human-signals": { 3436 + "version": "8.0.1", 3437 + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-8.0.1.tgz", 3438 + "integrity": "sha512-eKCa6bwnJhvxj14kZk5NCPc6Hb6BdsU9DZcOnmQKSnO1VKrfV0zCvtttPZUsBvjmNDn8rpcJfpwSYnHBjc95MQ==", 3439 + "dev": true, 3440 + "license": "Apache-2.0", 3441 + "engines": { 3442 + "node": ">=18.18.0" 3443 + } 3444 + }, 2751 3445 "node_modules/ignore": { 2752 3446 "version": "5.3.2", 2753 3447 "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", ··· 2870 3564 "node": ">=0.12.0" 2871 3565 } 2872 3566 }, 3567 + "node_modules/is-path-inside": { 3568 + "version": "4.0.0", 3569 + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-4.0.0.tgz", 3570 + "integrity": "sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==", 3571 + "dev": true, 3572 + "license": "MIT", 3573 + "engines": { 3574 + "node": ">=12" 3575 + }, 3576 + "funding": { 3577 + "url": "https://github.com/sponsors/sindresorhus" 3578 + } 3579 + }, 3580 + "node_modules/is-plain-obj": { 3581 + "version": "4.1.0", 3582 + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", 3583 + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", 3584 + "dev": true, 3585 + "license": "MIT", 3586 + "engines": { 3587 + "node": ">=12" 3588 + }, 3589 + "funding": { 3590 + "url": "https://github.com/sponsors/sindresorhus" 3591 + } 3592 + }, 2873 3593 "node_modules/is-reference": { 2874 3594 "version": "3.0.3", 2875 3595 "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.3.tgz", 2876 3596 "integrity": "sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==", 2877 - "dev": true, 2878 3597 "license": "MIT", 2879 3598 "dependencies": { 2880 3599 "@types/estree": "^1.0.6" 2881 3600 } 2882 3601 }, 3602 + "node_modules/is-stream": { 3603 + "version": "4.0.1", 3604 + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-4.0.1.tgz", 3605 + "integrity": "sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==", 3606 + "dev": true, 3607 + "license": "MIT", 3608 + "engines": { 3609 + "node": ">=18" 3610 + }, 3611 + "funding": { 3612 + "url": "https://github.com/sponsors/sindresorhus" 3613 + } 3614 + }, 3615 + "node_modules/is-unicode-supported": { 3616 + "version": "2.1.0", 3617 + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.1.0.tgz", 3618 + "integrity": "sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==", 3619 + "dev": true, 3620 + "license": "MIT", 3621 + "engines": { 3622 + "node": ">=18" 3623 + }, 3624 + "funding": { 3625 + "url": "https://github.com/sponsors/sindresorhus" 3626 + } 3627 + }, 2883 3628 "node_modules/isarray": { 2884 3629 "version": "1.0.0", 2885 3630 "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", ··· 2893 3638 "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", 2894 3639 "dev": true, 2895 3640 "license": "ISC" 3641 + }, 3642 + "node_modules/jiti": { 3643 + "version": "2.6.1", 3644 + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.6.1.tgz", 3645 + "integrity": "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==", 3646 + "dev": true, 3647 + "license": "MIT", 3648 + "bin": { 3649 + "jiti": "lib/jiti-cli.mjs" 3650 + } 2896 3651 }, 2897 3652 "node_modules/js-yaml": { 2898 3653 "version": "4.1.1", ··· 2947 3702 "node": ">=6" 2948 3703 } 2949 3704 }, 3705 + "node_modules/jsonfile": { 3706 + "version": "6.2.0", 3707 + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", 3708 + "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", 3709 + "dev": true, 3710 + "license": "MIT", 3711 + "dependencies": { 3712 + "universalify": "^2.0.0" 3713 + }, 3714 + "optionalDependencies": { 3715 + "graceful-fs": "^4.1.6" 3716 + } 3717 + }, 3718 + "node_modules/jsonpointer": { 3719 + "version": "5.0.1", 3720 + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", 3721 + "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==", 3722 + "dev": true, 3723 + "license": "MIT", 3724 + "engines": { 3725 + "node": ">=0.10.0" 3726 + } 3727 + }, 2950 3728 "node_modules/jsox": { 2951 3729 "version": "1.2.125", 2952 3730 "resolved": "https://registry.npmjs.org/jsox/-/jsox-1.2.125.tgz", ··· 2997 3775 "node": ">=0.10.0" 2998 3776 } 2999 3777 }, 3778 + "node_modules/leven": { 3779 + "version": "4.1.0", 3780 + "resolved": "https://registry.npmjs.org/leven/-/leven-4.1.0.tgz", 3781 + "integrity": "sha512-KZ9W9nWDT7rF7Dazg8xyLHGLrmpgq2nVNFUckhqdW3szVP6YhCpp/RAnpmVExA9JvrMynjwSLVrEj3AepHR6ew==", 3782 + "dev": true, 3783 + "license": "MIT", 3784 + "engines": { 3785 + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" 3786 + }, 3787 + "funding": { 3788 + "url": "https://github.com/sponsors/sindresorhus" 3789 + } 3790 + }, 3000 3791 "node_modules/levn": { 3001 3792 "version": "0.4.1", 3002 3793 "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", ··· 3021 3812 "node": ">=10" 3022 3813 } 3023 3814 }, 3815 + "node_modules/linkify-it": { 3816 + "version": "5.0.0", 3817 + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz", 3818 + "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", 3819 + "dev": true, 3820 + "license": "MIT", 3821 + "dependencies": { 3822 + "uc.micro": "^2.0.0" 3823 + } 3824 + }, 3024 3825 "node_modules/locate-character": { 3025 3826 "version": "3.0.0", 3026 3827 "resolved": "https://registry.npmjs.org/locate-character/-/locate-character-3.0.0.tgz", 3027 3828 "integrity": "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==", 3028 - "dev": true, 3029 3829 "license": "MIT" 3030 3830 }, 3031 3831 "node_modules/locate-path": { ··· 3079 3879 "dev": true, 3080 3880 "license": "MIT" 3081 3881 }, 3882 + "node_modules/lunr": { 3883 + "version": "2.3.9", 3884 + "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", 3885 + "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==", 3886 + "dev": true, 3887 + "license": "MIT" 3888 + }, 3082 3889 "node_modules/magic-string": { 3083 3890 "version": "0.30.17", 3084 3891 "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", 3085 3892 "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", 3893 + "license": "MIT", 3894 + "dependencies": { 3895 + "@jridgewell/sourcemap-codec": "^1.5.0" 3896 + } 3897 + }, 3898 + "node_modules/markdown-it": { 3899 + "version": "14.1.1", 3900 + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.1.tgz", 3901 + "integrity": "sha512-BuU2qnTti9YKgK5N+IeMubp14ZUKUUw7yeJbkjtosvHiP0AZ5c8IAgEMk79D0eC8F23r4Ac/q8cAIFdm2FtyoA==", 3086 3902 "dev": true, 3087 3903 "license": "MIT", 3088 3904 "dependencies": { 3089 - "@jridgewell/sourcemap-codec": "^1.5.0" 3905 + "argparse": "^2.0.1", 3906 + "entities": "^4.4.0", 3907 + "linkify-it": "^5.0.0", 3908 + "mdurl": "^2.0.0", 3909 + "punycode.js": "^2.3.1", 3910 + "uc.micro": "^2.1.0" 3911 + }, 3912 + "bin": { 3913 + "markdown-it": "bin/markdown-it.mjs" 3914 + } 3915 + }, 3916 + "node_modules/mdurl": { 3917 + "version": "2.0.0", 3918 + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz", 3919 + "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==", 3920 + "dev": true, 3921 + "license": "MIT" 3922 + }, 3923 + "node_modules/merge2": { 3924 + "version": "1.4.1", 3925 + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", 3926 + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", 3927 + "dev": true, 3928 + "license": "MIT", 3929 + "engines": { 3930 + "node": ">= 8" 3931 + } 3932 + }, 3933 + "node_modules/micromatch": { 3934 + "version": "4.0.8", 3935 + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", 3936 + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", 3937 + "dev": true, 3938 + "license": "MIT", 3939 + "dependencies": { 3940 + "braces": "^3.0.3", 3941 + "picomatch": "^2.3.1" 3942 + }, 3943 + "engines": { 3944 + "node": ">=8.6" 3090 3945 } 3091 3946 }, 3092 3947 "node_modules/minimatch": { ··· 3209 4064 "node": ">=0.10.0" 3210 4065 } 3211 4066 }, 4067 + "node_modules/npm-run-path": { 4068 + "version": "6.0.0", 4069 + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-6.0.0.tgz", 4070 + "integrity": "sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==", 4071 + "dev": true, 4072 + "license": "MIT", 4073 + "dependencies": { 4074 + "path-key": "^4.0.0", 4075 + "unicorn-magic": "^0.3.0" 4076 + }, 4077 + "engines": { 4078 + "node": ">=18" 4079 + }, 4080 + "funding": { 4081 + "url": "https://github.com/sponsors/sindresorhus" 4082 + } 4083 + }, 4084 + "node_modules/npm-run-path/node_modules/path-key": { 4085 + "version": "4.0.0", 4086 + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", 4087 + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", 4088 + "dev": true, 4089 + "license": "MIT", 4090 + "engines": { 4091 + "node": ">=12" 4092 + }, 4093 + "funding": { 4094 + "url": "https://github.com/sponsors/sindresorhus" 4095 + } 4096 + }, 4097 + "node_modules/npm-run-path/node_modules/unicorn-magic": { 4098 + "version": "0.3.0", 4099 + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.3.0.tgz", 4100 + "integrity": "sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==", 4101 + "dev": true, 4102 + "license": "MIT", 4103 + "engines": { 4104 + "node": ">=18" 4105 + }, 4106 + "funding": { 4107 + "url": "https://github.com/sponsors/sindresorhus" 4108 + } 4109 + }, 3212 4110 "node_modules/npmlog": { 3213 4111 "version": "1.2.1", 3214 4112 "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-1.2.1.tgz", ··· 3287 4185 "node": ">= 0.8.0" 3288 4186 } 3289 4187 }, 4188 + "node_modules/orval": { 4189 + "version": "8.3.0", 4190 + "resolved": "https://registry.npmjs.org/orval/-/orval-8.3.0.tgz", 4191 + "integrity": "sha512-njTZ+YcSawGc6Zo4Ak19VWH1Ohpw6MSofYiTYwUgYemNLeX+d+CDjC3VofzUF2+TNYP+dXl9Nyo+5wraAdSDfA==", 4192 + "dev": true, 4193 + "license": "MIT", 4194 + "dependencies": { 4195 + "@commander-js/extra-typings": "^14.0.0", 4196 + "@orval/angular": "8.3.0", 4197 + "@orval/axios": "8.3.0", 4198 + "@orval/core": "8.3.0", 4199 + "@orval/fetch": "8.3.0", 4200 + "@orval/hono": "8.3.0", 4201 + "@orval/mcp": "8.3.0", 4202 + "@orval/mock": "8.3.0", 4203 + "@orval/query": "8.3.0", 4204 + "@orval/solid-start": "8.3.0", 4205 + "@orval/swr": "8.3.0", 4206 + "@orval/zod": "8.3.0", 4207 + "@scalar/json-magic": "^0.8.8", 4208 + "@scalar/openapi-parser": "^0.23.9", 4209 + "@scalar/openapi-types": "0.5.3", 4210 + "chalk": "^5.6.2", 4211 + "chokidar": "^5.0.0", 4212 + "commander": "^14.0.2", 4213 + "enquirer": "^2.4.1", 4214 + "execa": "^9.6.1", 4215 + "find-up": "8.0.0", 4216 + "fs-extra": "^11.3.2", 4217 + "jiti": "^2.6.1", 4218 + "js-yaml": "4.1.1", 4219 + "remeda": "^2.32.0", 4220 + "string-argv": "^0.3.2", 4221 + "tsconfck": "^3.1.6", 4222 + "typedoc": "^0.28.15", 4223 + "typedoc-plugin-coverage": "^4.0.2", 4224 + "typedoc-plugin-markdown": "^4.9.0" 4225 + }, 4226 + "bin": { 4227 + "orval": "dist/bin/orval.mjs" 4228 + }, 4229 + "engines": { 4230 + "node": ">=22.18.0" 4231 + } 4232 + }, 4233 + "node_modules/orval/node_modules/@commander-js/extra-typings": { 4234 + "version": "14.0.0", 4235 + "resolved": "https://registry.npmjs.org/@commander-js/extra-typings/-/extra-typings-14.0.0.tgz", 4236 + "integrity": "sha512-hIn0ncNaJRLkZrxBIp5AsW/eXEHNKYQBh0aPdoUqNgD+Io3NIykQqpKFyKcuasZhicGaEZJX/JBSIkZ4e5x8Dg==", 4237 + "dev": true, 4238 + "license": "MIT", 4239 + "peerDependencies": { 4240 + "commander": "~14.0.0" 4241 + } 4242 + }, 4243 + "node_modules/orval/node_modules/chalk": { 4244 + "version": "5.6.2", 4245 + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz", 4246 + "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==", 4247 + "dev": true, 4248 + "license": "MIT", 4249 + "engines": { 4250 + "node": "^12.17.0 || ^14.13 || >=16.0.0" 4251 + }, 4252 + "funding": { 4253 + "url": "https://github.com/chalk/chalk?sponsor=1" 4254 + } 4255 + }, 4256 + "node_modules/orval/node_modules/chokidar": { 4257 + "version": "5.0.0", 4258 + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-5.0.0.tgz", 4259 + "integrity": "sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==", 4260 + "dev": true, 4261 + "license": "MIT", 4262 + "dependencies": { 4263 + "readdirp": "^5.0.0" 4264 + }, 4265 + "engines": { 4266 + "node": ">= 20.19.0" 4267 + }, 4268 + "funding": { 4269 + "url": "https://paulmillr.com/funding/" 4270 + } 4271 + }, 4272 + "node_modules/orval/node_modules/commander": { 4273 + "version": "14.0.3", 4274 + "resolved": "https://registry.npmjs.org/commander/-/commander-14.0.3.tgz", 4275 + "integrity": "sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==", 4276 + "dev": true, 4277 + "license": "MIT", 4278 + "engines": { 4279 + "node": ">=20" 4280 + } 4281 + }, 4282 + "node_modules/orval/node_modules/find-up": { 4283 + "version": "8.0.0", 4284 + "resolved": "https://registry.npmjs.org/find-up/-/find-up-8.0.0.tgz", 4285 + "integrity": "sha512-JGG8pvDi2C+JxidYdIwQDyS/CgcrIdh18cvgxcBge3wSHRQOrooMD3GlFBcmMJAN9M42SAZjDp5zv1dglJjwww==", 4286 + "dev": true, 4287 + "license": "MIT", 4288 + "dependencies": { 4289 + "locate-path": "^8.0.0", 4290 + "unicorn-magic": "^0.3.0" 4291 + }, 4292 + "engines": { 4293 + "node": ">=20" 4294 + }, 4295 + "funding": { 4296 + "url": "https://github.com/sponsors/sindresorhus" 4297 + } 4298 + }, 4299 + "node_modules/orval/node_modules/locate-path": { 4300 + "version": "8.0.0", 4301 + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-8.0.0.tgz", 4302 + "integrity": "sha512-XT9ewWAC43tiAV7xDAPflMkG0qOPn2QjHqlgX8FOqmWa/rxnyYDulF9T0F7tRy1u+TVTmK/M//6VIOye+2zDXg==", 4303 + "dev": true, 4304 + "license": "MIT", 4305 + "dependencies": { 4306 + "p-locate": "^6.0.0" 4307 + }, 4308 + "engines": { 4309 + "node": ">=20" 4310 + }, 4311 + "funding": { 4312 + "url": "https://github.com/sponsors/sindresorhus" 4313 + } 4314 + }, 4315 + "node_modules/orval/node_modules/p-limit": { 4316 + "version": "4.0.0", 4317 + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", 4318 + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", 4319 + "dev": true, 4320 + "license": "MIT", 4321 + "dependencies": { 4322 + "yocto-queue": "^1.0.0" 4323 + }, 4324 + "engines": { 4325 + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" 4326 + }, 4327 + "funding": { 4328 + "url": "https://github.com/sponsors/sindresorhus" 4329 + } 4330 + }, 4331 + "node_modules/orval/node_modules/p-locate": { 4332 + "version": "6.0.0", 4333 + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", 4334 + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", 4335 + "dev": true, 4336 + "license": "MIT", 4337 + "dependencies": { 4338 + "p-limit": "^4.0.0" 4339 + }, 4340 + "engines": { 4341 + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" 4342 + }, 4343 + "funding": { 4344 + "url": "https://github.com/sponsors/sindresorhus" 4345 + } 4346 + }, 4347 + "node_modules/orval/node_modules/readdirp": { 4348 + "version": "5.0.0", 4349 + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-5.0.0.tgz", 4350 + "integrity": "sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==", 4351 + "dev": true, 4352 + "license": "MIT", 4353 + "engines": { 4354 + "node": ">= 20.19.0" 4355 + }, 4356 + "funding": { 4357 + "type": "individual", 4358 + "url": "https://paulmillr.com/funding/" 4359 + } 4360 + }, 4361 + "node_modules/orval/node_modules/unicorn-magic": { 4362 + "version": "0.3.0", 4363 + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.3.0.tgz", 4364 + "integrity": "sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==", 4365 + "dev": true, 4366 + "license": "MIT", 4367 + "engines": { 4368 + "node": ">=18" 4369 + }, 4370 + "funding": { 4371 + "url": "https://github.com/sponsors/sindresorhus" 4372 + } 4373 + }, 4374 + "node_modules/orval/node_modules/yocto-queue": { 4375 + "version": "1.2.2", 4376 + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.2.2.tgz", 4377 + "integrity": "sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ==", 4378 + "dev": true, 4379 + "license": "MIT", 4380 + "engines": { 4381 + "node": ">=12.20" 4382 + }, 4383 + "funding": { 4384 + "url": "https://github.com/sponsors/sindresorhus" 4385 + } 4386 + }, 3290 4387 "node_modules/os-locale": { 3291 4388 "version": "1.4.0", 3292 4389 "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", ··· 3343 4440 }, 3344 4441 "engines": { 3345 4442 "node": ">=6" 4443 + } 4444 + }, 4445 + "node_modules/parse-ms": { 4446 + "version": "4.0.0", 4447 + "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-4.0.0.tgz", 4448 + "integrity": "sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==", 4449 + "dev": true, 4450 + "license": "MIT", 4451 + "engines": { 4452 + "node": ">=18" 4453 + }, 4454 + "funding": { 4455 + "url": "https://github.com/sponsors/sindresorhus" 3346 4456 } 3347 4457 }, 3348 4458 "node_modules/path-exists": { ··· 3820 4930 "svelte": "^3.2.0 || ^4.0.0-next.0 || ^5.0.0-next.0" 3821 4931 } 3822 4932 }, 4933 + "node_modules/pretty-ms": { 4934 + "version": "9.3.0", 4935 + "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-9.3.0.tgz", 4936 + "integrity": "sha512-gjVS5hOP+M3wMm5nmNOucbIrqudzs9v/57bWRHQWLYklXqoXKrVfYW2W9+glfGsqtPgpiz5WwyEEB+ksXIx3gQ==", 4937 + "dev": true, 4938 + "license": "MIT", 4939 + "dependencies": { 4940 + "parse-ms": "^4.0.0" 4941 + }, 4942 + "engines": { 4943 + "node": ">=18" 4944 + }, 4945 + "funding": { 4946 + "url": "https://github.com/sponsors/sindresorhus" 4947 + } 4948 + }, 3823 4949 "node_modules/process-nextick-args": { 3824 4950 "version": "2.0.1", 3825 4951 "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", ··· 3837 4963 "node": ">=6" 3838 4964 } 3839 4965 }, 4966 + "node_modules/punycode.js": { 4967 + "version": "2.3.1", 4968 + "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz", 4969 + "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==", 4970 + "dev": true, 4971 + "license": "MIT", 4972 + "engines": { 4973 + "node": ">=6" 4974 + } 4975 + }, 4976 + "node_modules/queue-microtask": { 4977 + "version": "1.2.3", 4978 + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", 4979 + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", 4980 + "dev": true, 4981 + "funding": [ 4982 + { 4983 + "type": "github", 4984 + "url": "https://github.com/sponsors/feross" 4985 + }, 4986 + { 4987 + "type": "patreon", 4988 + "url": "https://www.patreon.com/feross" 4989 + }, 4990 + { 4991 + "type": "consulting", 4992 + "url": "https://feross.org/support" 4993 + } 4994 + ], 4995 + "license": "MIT" 4996 + }, 3840 4997 "node_modules/railroad-diagrams": { 3841 4998 "version": "1.0.0", 3842 4999 "resolved": "https://registry.npmjs.org/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz", ··· 3887 5044 "node": ">=8.10.0" 3888 5045 } 3889 5046 }, 5047 + "node_modules/remeda": { 5048 + "version": "2.33.6", 5049 + "resolved": "https://registry.npmjs.org/remeda/-/remeda-2.33.6.tgz", 5050 + "integrity": "sha512-tazDGH7s75kUPGBKLvhgBEHMgW+TdDFhjUAMdQj57IoWz6HsGa5D2RX5yDUz6IIqiRRvZiaEHzCzWdTeixc/Kg==", 5051 + "dev": true, 5052 + "license": "MIT", 5053 + "funding": { 5054 + "url": "https://github.com/sponsors/remeda" 5055 + } 5056 + }, 3890 5057 "node_modules/require-directory": { 3891 5058 "version": "2.1.1", 3892 5059 "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", ··· 3897 5064 "node": ">=0.10.0" 3898 5065 } 3899 5066 }, 5067 + "node_modules/require-from-string": { 5068 + "version": "2.0.2", 5069 + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", 5070 + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", 5071 + "dev": true, 5072 + "license": "MIT", 5073 + "engines": { 5074 + "node": ">=0.10.0" 5075 + } 5076 + }, 3900 5077 "node_modules/resolve-from": { 3901 5078 "version": "4.0.0", 3902 5079 "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", ··· 3927 5104 "node": ">=0.12" 3928 5105 } 3929 5106 }, 5107 + "node_modules/reusify": { 5108 + "version": "1.1.0", 5109 + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", 5110 + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", 5111 + "dev": true, 5112 + "license": "MIT", 5113 + "engines": { 5114 + "iojs": ">=1.0.0", 5115 + "node": ">=0.10.0" 5116 + } 5117 + }, 3930 5118 "node_modules/rollup": { 3931 5119 "version": "4.54.0", 3932 5120 "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.54.0.tgz", ··· 3969 5157 "fsevents": "~2.3.2" 3970 5158 } 3971 5159 }, 5160 + "node_modules/run-parallel": { 5161 + "version": "1.2.0", 5162 + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", 5163 + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", 5164 + "dev": true, 5165 + "funding": [ 5166 + { 5167 + "type": "github", 5168 + "url": "https://github.com/sponsors/feross" 5169 + }, 5170 + { 5171 + "type": "patreon", 5172 + "url": "https://www.patreon.com/feross" 5173 + }, 5174 + { 5175 + "type": "consulting", 5176 + "url": "https://feross.org/support" 5177 + } 5178 + ], 5179 + "license": "MIT", 5180 + "dependencies": { 5181 + "queue-microtask": "^1.2.2" 5182 + } 5183 + }, 3972 5184 "node_modules/rxjs": { 3973 5185 "version": "7.8.1", 3974 5186 "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", ··· 4058 5270 "url": "https://github.com/sponsors/ljharb" 4059 5271 } 4060 5272 }, 5273 + "node_modules/signal-exit": { 5274 + "version": "4.1.0", 5275 + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", 5276 + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", 5277 + "dev": true, 5278 + "license": "ISC", 5279 + "engines": { 5280 + "node": ">=14" 5281 + }, 5282 + "funding": { 5283 + "url": "https://github.com/sponsors/isaacs" 5284 + } 5285 + }, 4061 5286 "node_modules/sirv": { 4062 5287 "version": "3.0.0", 4063 5288 "resolved": "https://registry.npmjs.org/sirv/-/sirv-3.0.0.tgz", ··· 4071 5296 }, 4072 5297 "engines": { 4073 5298 "node": ">=18" 5299 + } 5300 + }, 5301 + "node_modules/slash": { 5302 + "version": "5.1.0", 5303 + "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", 5304 + "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", 5305 + "dev": true, 5306 + "license": "MIT", 5307 + "engines": { 5308 + "node": ">=14.16" 5309 + }, 5310 + "funding": { 5311 + "url": "https://github.com/sponsors/sindresorhus" 4074 5312 } 4075 5313 }, 4076 5314 "node_modules/source-map-js": { ··· 4117 5355 "safe-buffer": "~5.1.0" 4118 5356 } 4119 5357 }, 5358 + "node_modules/string-argv": { 5359 + "version": "0.3.2", 5360 + "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.2.tgz", 5361 + "integrity": "sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==", 5362 + "dev": true, 5363 + "license": "MIT", 5364 + "engines": { 5365 + "node": ">=0.6.19" 5366 + } 5367 + }, 4120 5368 "node_modules/string-width": { 4121 5369 "version": "4.2.3", 4122 5370 "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", ··· 4145 5393 "node": ">=8" 4146 5394 } 4147 5395 }, 5396 + "node_modules/strip-final-newline": { 5397 + "version": "4.0.0", 5398 + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-4.0.0.tgz", 5399 + "integrity": "sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==", 5400 + "dev": true, 5401 + "license": "MIT", 5402 + "engines": { 5403 + "node": ">=18" 5404 + }, 5405 + "funding": { 5406 + "url": "https://github.com/sponsors/sindresorhus" 5407 + } 5408 + }, 4148 5409 "node_modules/strip-json-comments": { 4149 5410 "version": "3.1.1", 4150 5411 "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", ··· 4178 5439 "version": "5.46.4", 4179 5440 "resolved": "https://registry.npmjs.org/svelte/-/svelte-5.46.4.tgz", 4180 5441 "integrity": "sha512-VJwdXrmv9L8L7ZasJeWcCjoIuMRVbhuxbss0fpVnR8yorMmjNDwcjIH08vS6wmSzzzgAG5CADQ1JuXPS2nwt9w==", 4181 - "dev": true, 4182 5442 "license": "MIT", 4183 5443 "dependencies": { 4184 5444 "@jridgewell/remapping": "^2.3.4", ··· 4409 5669 "typescript": ">=4.8.4" 4410 5670 } 4411 5671 }, 5672 + "node_modules/tsconfck": { 5673 + "version": "3.1.6", 5674 + "resolved": "https://registry.npmjs.org/tsconfck/-/tsconfck-3.1.6.tgz", 5675 + "integrity": "sha512-ks6Vjr/jEw0P1gmOVwutM3B7fWxoWBL2KRDb1JfqGVawBmO5UsvmWOQFGHBPl5yxYz4eERr19E6L7NMv+Fej4w==", 5676 + "dev": true, 5677 + "license": "MIT", 5678 + "bin": { 5679 + "tsconfck": "bin/tsconfck.js" 5680 + }, 5681 + "engines": { 5682 + "node": "^18 || >=20" 5683 + }, 5684 + "peerDependencies": { 5685 + "typescript": "^5.0.0" 5686 + }, 5687 + "peerDependenciesMeta": { 5688 + "typescript": { 5689 + "optional": true 5690 + } 5691 + } 5692 + }, 4412 5693 "node_modules/tslib": { 4413 5694 "version": "2.8.1", 4414 5695 "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", ··· 4455 5736 "integrity": "sha512-ZeTgC357AxaeAw4HX+ZJRBGxpWQIUVt2FNQC+QDoF3piv4/fRmy8DU9ci8cwSkNCbWT6BIUqEXdcaU8f3ib/Iw==", 4456 5737 "license": "MIT" 4457 5738 }, 5739 + "node_modules/typedoc": { 5740 + "version": "0.28.16", 5741 + "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.28.16.tgz", 5742 + "integrity": "sha512-x4xW77QC3i5DUFMBp0qjukOTnr/sSg+oEs86nB3LjDslvAmwe/PUGDWbe3GrIqt59oTqoXK5GRK9tAa0sYMiog==", 5743 + "dev": true, 5744 + "license": "Apache-2.0", 5745 + "dependencies": { 5746 + "@gerrit0/mini-shiki": "^3.17.0", 5747 + "lunr": "^2.3.9", 5748 + "markdown-it": "^14.1.0", 5749 + "minimatch": "^9.0.5", 5750 + "yaml": "^2.8.1" 5751 + }, 5752 + "bin": { 5753 + "typedoc": "bin/typedoc" 5754 + }, 5755 + "engines": { 5756 + "node": ">= 18", 5757 + "pnpm": ">= 10" 5758 + }, 5759 + "peerDependencies": { 5760 + "typescript": "5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x || 5.6.x || 5.7.x || 5.8.x || 5.9.x" 5761 + } 5762 + }, 5763 + "node_modules/typedoc-plugin-coverage": { 5764 + "version": "4.0.2", 5765 + "resolved": "https://registry.npmjs.org/typedoc-plugin-coverage/-/typedoc-plugin-coverage-4.0.2.tgz", 5766 + "integrity": "sha512-mfn0e7NCqB8x2PfvhXrtmd7KWlsNf1+B2N9y8gR/jexXBLrXl/0e+b2HdG5HaTXGi7i0t2pyQY2VRmq7gtdEHQ==", 5767 + "dev": true, 5768 + "license": "MIT", 5769 + "engines": { 5770 + "node": ">= 18" 5771 + }, 5772 + "peerDependencies": { 5773 + "typedoc": "0.28.x" 5774 + } 5775 + }, 5776 + "node_modules/typedoc-plugin-markdown": { 5777 + "version": "4.10.0", 5778 + "resolved": "https://registry.npmjs.org/typedoc-plugin-markdown/-/typedoc-plugin-markdown-4.10.0.tgz", 5779 + "integrity": "sha512-psrg8Rtnv4HPWCsoxId+MzEN8TVK5jeKCnTbnGAbTBqcDapR9hM41bJT/9eAyKn9C2MDG9Qjh3MkltAYuLDoXg==", 5780 + "dev": true, 5781 + "license": "MIT", 5782 + "engines": { 5783 + "node": ">= 18" 5784 + }, 5785 + "peerDependencies": { 5786 + "typedoc": "0.28.x" 5787 + } 5788 + }, 5789 + "node_modules/typedoc/node_modules/brace-expansion": { 5790 + "version": "2.0.2", 5791 + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", 5792 + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", 5793 + "dev": true, 5794 + "license": "MIT", 5795 + "dependencies": { 5796 + "balanced-match": "^1.0.0" 5797 + } 5798 + }, 5799 + "node_modules/typedoc/node_modules/minimatch": { 5800 + "version": "9.0.5", 5801 + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", 5802 + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", 5803 + "dev": true, 5804 + "license": "ISC", 5805 + "dependencies": { 5806 + "brace-expansion": "^2.0.1" 5807 + }, 5808 + "engines": { 5809 + "node": ">=16 || 14 >=14.17" 5810 + }, 5811 + "funding": { 5812 + "url": "https://github.com/sponsors/isaacs" 5813 + } 5814 + }, 4458 5815 "node_modules/typescript": { 4459 5816 "version": "5.9.3", 4460 5817 "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", ··· 4493 5850 "typescript": ">=4.8.4 <6.0.0" 4494 5851 } 4495 5852 }, 5853 + "node_modules/uc.micro": { 5854 + "version": "2.1.0", 5855 + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", 5856 + "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==", 5857 + "dev": true, 5858 + "license": "MIT" 5859 + }, 4496 5860 "node_modules/undici-types": { 4497 5861 "version": "6.21.0", 4498 5862 "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", 4499 5863 "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", 4500 5864 "dev": true, 4501 5865 "license": "MIT" 5866 + }, 5867 + "node_modules/unicorn-magic": { 5868 + "version": "0.4.0", 5869 + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.4.0.tgz", 5870 + "integrity": "sha512-wH590V9VNgYH9g3lH9wWjTrUoKsjLF6sGLjhR4sH1LWpLmCOH0Zf7PukhDA8BiS7KHe4oPNkcTHqYkj7SOGUOw==", 5871 + "dev": true, 5872 + "license": "MIT", 5873 + "engines": { 5874 + "node": ">=20" 5875 + }, 5876 + "funding": { 5877 + "url": "https://github.com/sponsors/sindresorhus" 5878 + } 5879 + }, 5880 + "node_modules/universalify": { 5881 + "version": "2.0.1", 5882 + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", 5883 + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", 5884 + "dev": true, 5885 + "license": "MIT", 5886 + "engines": { 5887 + "node": ">= 10.0.0" 5888 + } 4502 5889 }, 4503 5890 "node_modules/uri-js": { 4504 5891 "version": "4.4.1", ··· 4728 6115 } 4729 6116 }, 4730 6117 "node_modules/yaml": { 4731 - "version": "2.7.1", 4732 - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.7.1.tgz", 4733 - "integrity": "sha512-10ULxpnOCQXxJvBgxsn9ptjq6uviG/htZKk9veJGhlqn3w/DxQ631zFF+nlQXLwmImeS5amR2dl2U8sg6U9jsQ==", 6118 + "version": "2.8.2", 6119 + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.2.tgz", 6120 + "integrity": "sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==", 4734 6121 "dev": true, 4735 6122 "license": "ISC", 4736 - "optional": true, 4737 - "peer": true, 4738 6123 "bin": { 4739 6124 "yaml": "bin.mjs" 4740 6125 }, 4741 6126 "engines": { 4742 - "node": ">= 14" 6127 + "node": ">= 14.6" 6128 + }, 6129 + "funding": { 6130 + "url": "https://github.com/sponsors/eemeli" 4743 6131 } 4744 6132 }, 4745 6133 "node_modules/yargs": { ··· 4784 6172 "url": "https://github.com/sponsors/sindresorhus" 4785 6173 } 4786 6174 }, 6175 + "node_modules/yoctocolors": { 6176 + "version": "2.1.2", 6177 + "resolved": "https://registry.npmjs.org/yoctocolors/-/yoctocolors-2.1.2.tgz", 6178 + "integrity": "sha512-CzhO+pFNo8ajLM2d2IW/R93ipy99LWjtwblvC1RsoSUMZgyLbYFr221TnSNT7GjGdYui6P459mw9JH/g/zW2ug==", 6179 + "dev": true, 6180 + "license": "MIT", 6181 + "engines": { 6182 + "node": ">=18" 6183 + }, 6184 + "funding": { 6185 + "url": "https://github.com/sponsors/sindresorhus" 6186 + } 6187 + }, 4787 6188 "node_modules/zimmerframe": { 4788 6189 "version": "1.1.2", 4789 6190 "resolved": "https://registry.npmjs.org/zimmerframe/-/zimmerframe-1.1.2.tgz", 4790 6191 "integrity": "sha512-rAbqEGa8ovJy4pyBxZM70hg4pE6gDgaQ0Sl9M3enG3I0d6H4XSAM3GeNGLKnsBpuijUow064sf7ww1nutC5/3w==", 4791 - "dev": true, 4792 6192 "license": "MIT" 6193 + }, 6194 + "node_modules/zod": { 6195 + "version": "4.3.6", 6196 + "resolved": "https://registry.npmjs.org/zod/-/zod-4.3.6.tgz", 6197 + "integrity": "sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg==", 6198 + "dev": true, 6199 + "license": "MIT", 6200 + "funding": { 6201 + "url": "https://github.com/sponsors/colinhacks" 6202 + } 4793 6203 } 4794 6204 } 4795 6205 }
+2 -1
app/package.json
··· 20 20 "globals": "^16.5.0", 21 21 "globstar": "^1.0.0", 22 22 "graphile-migrate": "^2.0.0-rc.2", 23 + "orval": "^8.3.0", 23 24 "prettier": "^3.7.4", 24 25 "prettier-plugin-sql": "^0.19.2", 25 26 "prettier-plugin-svelte": "^3.4.1", ··· 33 34 "type": "module", 34 35 "dependencies": { 35 36 "@sentry/browser": "^10.38.0", 36 - "@sveltestack/svelte-query": "^1.6.0", 37 + "@tanstack/svelte-query": "^6.0.18", 37 38 "cartography-api": "file:./api", 38 39 "core-js": "^3.38.1", 39 40 "json-patch": "^0.7.0",
-13
app/src/lib/appserver/dto/Field.ts
··· 1 - import { Branded } from "$lib/types"; 2 - import Type, { type StaticDecode } from "typebox"; 3 - 4 - // eslint-disable-next-line @typescript-eslint/naming-convention -- TypeBox types are named like types */ 5 - export const FieldId = Branded("FieldId", Type.Integer()); 6 - export type FieldId = StaticDecode<typeof FieldId>; 7 - 8 - // eslint-disable-next-line @typescript-eslint/naming-convention -- TypeBox types are named like types */ 9 - export const Field = Type.Object({ 10 - id: FieldId, 11 - name: Type.String(), 12 - }); 13 - export type Field = StaticDecode<typeof Field>;
+9
app/src/lib/appserver/model/Field.ts
··· 1 + import { Branded } from "$lib/types"; 2 + import Type, { type StaticDecode } from "typebox"; 3 + 4 + // eslint-disable-next-line @typescript-eslint/naming-convention -- TypeBox types are named like types */ 5 + export const Field = Type.Object({ 6 + id: Type.Integer(), 7 + name: Type.String(), 8 + }); 9 + export type Field = StaticDecode<typeof Field>;
+1 -2
app/src/lib/appserver/socket/SocketV1.svelte.ts
··· 12 12 type SocketV1Protocol, 13 13 } from "./SocketV1Protocol"; 14 14 import jsonpatch from "json-patch"; 15 - import type { FieldId } from "../dto/Field"; 16 15 17 16 interface SocketV1EventMap { 18 17 message: MessageEvent; ··· 101 100 }); 102 101 } 103 102 104 - $watchField(data: { id: FieldId }, subscriber: (gameState: GameState | undefined) => void) { 103 + $watchField(data: { id: number }, subscriber: (gameState: GameState | undefined) => void) { 105 104 let gameState: GameState | undefined = undefined; 106 105 this.#sendMessage({ type: "WatchField", data: data.id }).$subscribe((response) => { 107 106 if (response.type === "PutFieldState") {
+1 -2
app/src/lib/appserver/socket/SocketV1Protocol.ts
··· 8 8 import { Branded } from "$lib/types"; 9 9 import type { OpPatch } from "json-patch"; 10 10 import Type, { type StaticDecode, type TSchema } from "typebox"; 11 - import { FieldId } from "../dto/Field"; 12 11 13 12 const JsonPointer = Type.String({ 14 13 pattern: "^(/[^/~]*(~[01][^/~]*)*)*$", ··· 116 115 }); 117 116 export type Authenticate = StaticDecode<typeof Authenticate>; 118 117 119 - export const WatchField = Type.Object({ type: Type.Literal("WatchField"), data: FieldId }); 118 + export const WatchField = Type.Object({ type: Type.Literal("WatchField"), data: Type.Integer() }); 120 119 export type WatchField = StaticDecode<typeof WatchField>; 121 120 122 121 export const Unsubscribe = Type.Object({ type: Type.Literal("Unsubscribe") });
+8 -13
app/src/routes/(socket)/play/components/PlayPage.svelte
··· 1 1 <script lang="ts"> 2 - import { PUBLIC_SERVER_URL } from "$env/static/public"; 3 - import type { Field, FieldId } from "$lib/appserver/dto/Field"; 2 + import type { Field } from "$lib/appserver/model/Field"; 4 3 import type { GameState } from "$lib/appserver/socket/SocketV1Protocol"; 5 4 import { getSocket } from "$lib/appserver/provideSocket.svelte"; 6 5 import DragTile from "$lib/components/DragTile.svelte"; 7 6 import DragWindow from "$lib/components/DragWindow.svelte"; 8 7 import GridLines from "$lib/components/GridLines.svelte"; 9 8 import FieldView from "./FieldView.svelte"; 10 - import { useQuery } from "@sveltestack/svelte-query"; 9 + import { createListFields } from "$lib/appserver/api"; 11 10 12 11 const { socket } = $derived.by(getSocket); 13 12 14 - const fields = useQuery(["fields"], async () => { 15 - const response = await fetch(`${PUBLIC_SERVER_URL}/api/v1/players/foxfriends/fields`); 16 - // TODO: type-safe API client 17 - return response.json() as Promise<{ fields: Field[] }>; 18 - }); 13 + const fields = createListFields(() => "foxfriends"); 19 14 20 - let fieldId: FieldId | undefined = $state(); 15 + let fieldId: number | undefined = $state(); 21 16 let gameState: GameState | undefined = $state(); 22 17 23 18 $effect(() => { ··· 32 27 <GridLines /> 33 28 34 29 {#if fieldId === undefined} 35 - {#if $fields.status === "error"} 36 - <div>{$fields.error}</div> 37 - {:else if $fields.status === "success"} 38 - {#each $fields.data.fields as field, i (field.id)} 30 + {#if fields.status === "error"} 31 + <div>{fields.error}</div> 32 + {:else if fields.status === "success"} 33 + {#each fields.data.data.fields as field, i (field.id)} 39 34 <DragTile x={i} y={0} onClick={() => (fieldId = field.id)}> 40 35 <div class="field-label"> 41 36 {#if field.name}
+1 -1
app/src/routes/+layout.svelte
··· 4 4 import type { Snippet } from "svelte"; 5 5 import Package from "../../package.json"; 6 6 import { PUBLIC_SENTRY_DSN, PUBLIC_ENV } from "$env/static/public"; 7 - import { QueryClient, QueryClientProvider } from "@sveltestack/svelte-query"; 7 + import { QueryClient, QueryClientProvider } from "@tanstack/svelte-query"; 8 8 9 9 if (PUBLIC_SENTRY_DSN) { 10 10 Sentry.init({
+18 -1
src/main.rs
··· 4 4 mod db; 5 5 mod dto; 6 6 7 + use clap::Parser as _; 7 8 use kameo::actor::Spawn as _; 8 9 use tracing_subscriber::prelude::*; 9 10 use utoipa::OpenApi as _; ··· 15 16 api::list_banners::list_banners, 16 17 api::list_fields::list_fields, 17 18 ), 18 - tags((name = "Global", description = "Publicly available global data about the Cartography game.")), 19 + tags( 20 + (name = "Global", description = "Publicly available global data about the Cartography game."), 21 + (name = "Player", description = "Player specific data; typically requires authorization.") 22 + ), 19 23 )] 20 24 struct ApiDoc; 21 25 26 + #[derive(clap::Parser)] 27 + struct Args { 28 + #[clap(long)] 29 + openapi: bool, 30 + } 31 + 22 32 #[tokio::main] 23 33 async fn main() -> anyhow::Result<()> { 34 + let args = Args::parse(); 35 + 36 + if args.openapi { 37 + println!("{}", ApiDoc::openapi().to_pretty_json().unwrap()); 38 + std::process::exit(0); 39 + } 40 + 24 41 tracing_subscriber::registry() 25 42 .with(tracing_subscriber::EnvFilter::from_default_env()) 26 43 .with(tracing_subscriber::fmt::layer().pretty())