Schedule posts to Bluesky with Cloudflare workers. skyscheduler.work
cf tool bsky-tool cloudflare bluesky schedule bsky service social-media cloudflare-workers

Generate endpoints for WAF

closes #14, this was a pain in the ass.

Also swaps out run-all usage to maintained fork.

+729 -1937
+262 -1930
package-lock.json
··· 7 7 "name": "skyscheduler", 8 8 "dependencies": { 9 9 "@atproto/api": "^0.18.21", 10 + "@hono/standard-validator": "^0.2.2", 10 11 "better-auth": "^1.4.18", 11 12 "better-auth-cloudflare": "^0.2.9", 12 13 "date-fns": "^4.1.0", 13 14 "drizzle-orm": "^0.45.1", 14 15 "hono": "^4.11.10", 16 + "hono-openapi": "^1.2.0", 15 17 "human-id": "^4.1.3", 16 18 "image-dimensions": "^2.5.0", 17 19 "just-flatten-it": "^5.2.0", ··· 29 31 "@types/node": "^24.10.13", 30 32 "drizzle-kit": "^0.31.9", 31 33 "minify": "^14.1.0", 32 - "npm-run-all": "^4.1.5", 34 + "npm-run-all2": "^8.0.4", 33 35 "prettier": "^3.8.1", 34 36 "wrangler": "^4.66.0" 35 37 }, ··· 1178 1180 "node": ">=18" 1179 1181 } 1180 1182 }, 1183 + "node_modules/@hono/standard-validator": { 1184 + "version": "0.2.2", 1185 + "resolved": "https://registry.npmjs.org/@hono/standard-validator/-/standard-validator-0.2.2.tgz", 1186 + "integrity": "sha512-mJ7W84Bt/rSvoIl63Ynew+UZOHAzzRAoAXb3JaWuxAkM/Lzg+ZHTCUiz77KOtn2e623WNN8LkD57Dk0szqUrIw==", 1187 + "license": "MIT", 1188 + "peerDependencies": { 1189 + "@standard-schema/spec": "^1.0.0", 1190 + "hono": ">=3.9.0" 1191 + } 1192 + }, 1181 1193 "node_modules/@img/colour": { 1182 1194 "version": "1.0.0", 1183 1195 "resolved": "https://registry.npmjs.org/@img/colour/-/colour-1.0.0.tgz", ··· 1814 1826 "dev": true, 1815 1827 "license": "CC0-1.0" 1816 1828 }, 1829 + "node_modules/@standard-community/standard-json": { 1830 + "version": "0.3.5", 1831 + "resolved": "https://registry.npmjs.org/@standard-community/standard-json/-/standard-json-0.3.5.tgz", 1832 + "integrity": "sha512-4+ZPorwDRt47i+O7RjyuaxHRK/37QY/LmgxlGrRrSTLYoFatEOzvqIc85GTlM18SFZ5E91C+v0o/M37wZPpUHA==", 1833 + "license": "MIT", 1834 + "peer": true, 1835 + "peerDependencies": { 1836 + "@standard-schema/spec": "^1.0.0", 1837 + "@types/json-schema": "^7.0.15", 1838 + "@valibot/to-json-schema": "^1.3.0", 1839 + "arktype": "^2.1.20", 1840 + "effect": "^3.16.8", 1841 + "quansync": "^0.2.11", 1842 + "sury": "^10.0.0", 1843 + "typebox": "^1.0.17", 1844 + "valibot": "^1.1.0", 1845 + "zod": "^3.25.0 || ^4.0.0", 1846 + "zod-to-json-schema": "^3.24.5" 1847 + }, 1848 + "peerDependenciesMeta": { 1849 + "@valibot/to-json-schema": { 1850 + "optional": true 1851 + }, 1852 + "arktype": { 1853 + "optional": true 1854 + }, 1855 + "effect": { 1856 + "optional": true 1857 + }, 1858 + "sury": { 1859 + "optional": true 1860 + }, 1861 + "typebox": { 1862 + "optional": true 1863 + }, 1864 + "valibot": { 1865 + "optional": true 1866 + }, 1867 + "zod": { 1868 + "optional": true 1869 + }, 1870 + "zod-to-json-schema": { 1871 + "optional": true 1872 + } 1873 + } 1874 + }, 1875 + "node_modules/@standard-community/standard-openapi": { 1876 + "version": "0.2.9", 1877 + "resolved": "https://registry.npmjs.org/@standard-community/standard-openapi/-/standard-openapi-0.2.9.tgz", 1878 + "integrity": "sha512-htj+yldvN1XncyZi4rehbf9kLbu8os2Ke/rfqoZHCMHuw34kiF3LP/yQPdA0tQ940y8nDq3Iou8R3wG+AGGyvg==", 1879 + "license": "MIT", 1880 + "peer": true, 1881 + "peerDependencies": { 1882 + "@standard-community/standard-json": "^0.3.5", 1883 + "@standard-schema/spec": "^1.0.0", 1884 + "arktype": "^2.1.20", 1885 + "effect": "^3.17.14", 1886 + "openapi-types": "^12.1.3", 1887 + "sury": "^10.0.0", 1888 + "typebox": "^1.0.0", 1889 + "valibot": "^1.1.0", 1890 + "zod": "^3.25.0 || ^4.0.0", 1891 + "zod-openapi": "^4" 1892 + }, 1893 + "peerDependenciesMeta": { 1894 + "arktype": { 1895 + "optional": true 1896 + }, 1897 + "effect": { 1898 + "optional": true 1899 + }, 1900 + "sury": { 1901 + "optional": true 1902 + }, 1903 + "typebox": { 1904 + "optional": true 1905 + }, 1906 + "valibot": { 1907 + "optional": true 1908 + }, 1909 + "zod": { 1910 + "optional": true 1911 + }, 1912 + "zod-openapi": { 1913 + "optional": true 1914 + } 1915 + } 1916 + }, 1817 1917 "node_modules/@standard-schema/spec": { 1818 1918 "version": "1.1.0", 1819 1919 "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz", ··· 2046 2146 "@swc/counter": "^0.1.3" 2047 2147 } 2048 2148 }, 2149 + "node_modules/@types/json-schema": { 2150 + "version": "7.0.15", 2151 + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", 2152 + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", 2153 + "license": "MIT", 2154 + "peer": true 2155 + }, 2049 2156 "node_modules/@types/node": { 2050 2157 "version": "24.10.13", 2051 2158 "resolved": "https://registry.npmjs.org/@types/node/-/node-24.10.13.tgz", ··· 2070 2177 } 2071 2178 }, 2072 2179 "node_modules/ansi-styles": { 2073 - "version": "3.2.1", 2074 - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 2075 - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 2076 - "dev": true, 2077 - "license": "MIT", 2078 - "dependencies": { 2079 - "color-convert": "^1.9.0" 2080 - }, 2081 - "engines": { 2082 - "node": ">=4" 2083 - } 2084 - }, 2085 - "node_modules/array-buffer-byte-length": { 2086 - "version": "1.0.2", 2087 - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", 2088 - "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", 2089 - "dev": true, 2090 - "license": "MIT", 2091 - "dependencies": { 2092 - "call-bound": "^1.0.3", 2093 - "is-array-buffer": "^3.0.5" 2094 - }, 2095 - "engines": { 2096 - "node": ">= 0.4" 2097 - }, 2098 - "funding": { 2099 - "url": "https://github.com/sponsors/ljharb" 2100 - } 2101 - }, 2102 - "node_modules/arraybuffer.prototype.slice": { 2103 - "version": "1.0.4", 2104 - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", 2105 - "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", 2106 - "dev": true, 2107 - "license": "MIT", 2108 - "dependencies": { 2109 - "array-buffer-byte-length": "^1.0.1", 2110 - "call-bind": "^1.0.8", 2111 - "define-properties": "^1.2.1", 2112 - "es-abstract": "^1.23.5", 2113 - "es-errors": "^1.3.0", 2114 - "get-intrinsic": "^1.2.6", 2115 - "is-array-buffer": "^3.0.4" 2116 - }, 2117 - "engines": { 2118 - "node": ">= 0.4" 2119 - }, 2120 - "funding": { 2121 - "url": "https://github.com/sponsors/ljharb" 2122 - } 2123 - }, 2124 - "node_modules/async-function": { 2125 - "version": "1.0.0", 2126 - "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", 2127 - "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", 2180 + "version": "6.2.3", 2181 + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", 2182 + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", 2128 2183 "dev": true, 2129 2184 "license": "MIT", 2130 2185 "engines": { 2131 - "node": ">= 0.4" 2132 - } 2133 - }, 2134 - "node_modules/available-typed-arrays": { 2135 - "version": "1.0.7", 2136 - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", 2137 - "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", 2138 - "dev": true, 2139 - "license": "MIT", 2140 - "dependencies": { 2141 - "possible-typed-array-names": "^1.0.0" 2142 - }, 2143 - "engines": { 2144 - "node": ">= 0.4" 2186 + "node": ">=12" 2145 2187 }, 2146 2188 "funding": { 2147 - "url": "https://github.com/sponsors/ljharb" 2189 + "url": "https://github.com/chalk/ansi-styles?sponsor=1" 2148 2190 } 2149 2191 }, 2150 2192 "node_modules/await-lock": { 2151 2193 "version": "2.2.2", 2152 2194 "resolved": "https://registry.npmjs.org/await-lock/-/await-lock-2.2.2.tgz", 2153 2195 "integrity": "sha512-aDczADvlvTGajTDjcjpJMqRkOF6Qdz3YbPZm/PyW6tKPkx2hlYBzxMhEywM/tU72HrVZjgl5VCdRuMlA7pZ8Gw==", 2154 - "license": "MIT" 2155 - }, 2156 - "node_modules/balanced-match": { 2157 - "version": "1.0.2", 2158 - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", 2159 - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", 2160 - "dev": true, 2161 2196 "license": "MIT" 2162 2197 }, 2163 2198 "node_modules/better-auth": { ··· 2426 2461 "dev": true, 2427 2462 "license": "MIT" 2428 2463 }, 2429 - "node_modules/brace-expansion": { 2430 - "version": "1.1.12", 2431 - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", 2432 - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", 2433 - "dev": true, 2434 - "license": "MIT", 2435 - "dependencies": { 2436 - "balanced-match": "^1.0.0", 2437 - "concat-map": "0.0.1" 2438 - } 2439 - }, 2440 2464 "node_modules/buffer-from": { 2441 2465 "version": "1.1.2", 2442 2466 "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", ··· 2444 2468 "devOptional": true, 2445 2469 "license": "MIT" 2446 2470 }, 2447 - "node_modules/call-bind": { 2448 - "version": "1.0.8", 2449 - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", 2450 - "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", 2451 - "dev": true, 2452 - "license": "MIT", 2453 - "dependencies": { 2454 - "call-bind-apply-helpers": "^1.0.0", 2455 - "es-define-property": "^1.0.0", 2456 - "get-intrinsic": "^1.2.4", 2457 - "set-function-length": "^1.2.2" 2458 - }, 2459 - "engines": { 2460 - "node": ">= 0.4" 2461 - }, 2462 - "funding": { 2463 - "url": "https://github.com/sponsors/ljharb" 2464 - } 2465 - }, 2466 - "node_modules/call-bind-apply-helpers": { 2467 - "version": "1.0.2", 2468 - "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", 2469 - "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", 2470 - "dev": true, 2471 - "license": "MIT", 2472 - "dependencies": { 2473 - "es-errors": "^1.3.0", 2474 - "function-bind": "^1.1.2" 2475 - }, 2476 - "engines": { 2477 - "node": ">= 0.4" 2478 - } 2479 - }, 2480 - "node_modules/call-bound": { 2481 - "version": "1.0.4", 2482 - "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", 2483 - "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", 2484 - "dev": true, 2485 - "license": "MIT", 2486 - "dependencies": { 2487 - "call-bind-apply-helpers": "^1.0.2", 2488 - "get-intrinsic": "^1.3.0" 2489 - }, 2490 - "engines": { 2491 - "node": ">= 0.4" 2492 - }, 2493 - "funding": { 2494 - "url": "https://github.com/sponsors/ljharb" 2495 - } 2496 - }, 2497 2471 "node_modules/camel-case": { 2498 2472 "version": "4.1.2", 2499 2473 "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", ··· 2517 2491 "upper-case-first": "^2.0.2" 2518 2492 } 2519 2493 }, 2520 - "node_modules/chalk": { 2521 - "version": "2.4.2", 2522 - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", 2523 - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", 2524 - "dev": true, 2525 - "license": "MIT", 2526 - "dependencies": { 2527 - "ansi-styles": "^3.2.1", 2528 - "escape-string-regexp": "^1.0.5", 2529 - "supports-color": "^5.3.0" 2530 - }, 2531 - "engines": { 2532 - "node": ">=4" 2533 - } 2534 - }, 2535 2494 "node_modules/change-case": { 2536 2495 "version": "4.1.2", 2537 2496 "resolved": "https://registry.npmjs.org/change-case/-/change-case-4.1.2.tgz", ··· 2566 2525 "node": ">= 10.0" 2567 2526 } 2568 2527 }, 2569 - "node_modules/color-convert": { 2570 - "version": "1.9.3", 2571 - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", 2572 - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", 2573 - "dev": true, 2574 - "license": "MIT", 2575 - "dependencies": { 2576 - "color-name": "1.1.3" 2577 - } 2578 - }, 2579 - "node_modules/color-name": { 2580 - "version": "1.1.3", 2581 - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 2582 - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", 2583 - "dev": true, 2584 - "license": "MIT" 2585 - }, 2586 2528 "node_modules/commander": { 2587 2529 "version": "14.0.3", 2588 2530 "resolved": "https://registry.npmjs.org/commander/-/commander-14.0.3.tgz", ··· 2592 2534 "engines": { 2593 2535 "node": ">=20" 2594 2536 } 2595 - }, 2596 - "node_modules/concat-map": { 2597 - "version": "0.0.1", 2598 - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 2599 - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", 2600 - "dev": true, 2601 - "license": "MIT" 2602 2537 }, 2603 2538 "node_modules/constant-case": { 2604 2539 "version": "3.0.4", ··· 2627 2562 } 2628 2563 }, 2629 2564 "node_modules/cross-spawn": { 2630 - "version": "6.0.6", 2631 - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.6.tgz", 2632 - "integrity": "sha512-VqCUuhcd1iB+dsv8gxPttb5iZh/D0iubSP21g36KXdEuf6I5JiioesUVjpCdHV9MZRUfVFlvwtIUyPfxo5trtw==", 2565 + "version": "7.0.6", 2566 + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", 2567 + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", 2633 2568 "dev": true, 2634 2569 "license": "MIT", 2635 2570 "dependencies": { 2636 - "nice-try": "^1.0.4", 2637 - "path-key": "^2.0.1", 2638 - "semver": "^5.5.0", 2639 - "shebang-command": "^1.2.0", 2640 - "which": "^1.2.9" 2571 + "path-key": "^3.1.0", 2572 + "shebang-command": "^2.0.0", 2573 + "which": "^2.0.1" 2641 2574 }, 2642 2575 "engines": { 2643 - "node": ">=4.8" 2576 + "node": ">= 8" 2644 2577 } 2645 2578 }, 2646 - "node_modules/css-b64-images": { 2647 - "version": "0.2.5", 2648 - "resolved": "https://registry.npmjs.org/css-b64-images/-/css-b64-images-0.2.5.tgz", 2649 - "integrity": "sha512-TgQBEdP07adhrDfXvI5o6bHGukKBNMzp2Ngckc/6d09zpjD2gc1Hl3Ca1CKgb8FXjHi88+Phv2Uegs2kTL4zjg==", 2579 + "node_modules/cross-spawn/node_modules/isexe": { 2580 + "version": "2.0.0", 2581 + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 2582 + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", 2650 2583 "dev": true, 2651 - "bin": { 2652 - "css-b64-images": "bin/css-b64-images" 2653 - }, 2654 - "engines": { 2655 - "node": "*" 2656 - } 2584 + "license": "ISC" 2657 2585 }, 2658 - "node_modules/data-view-buffer": { 2659 - "version": "1.0.2", 2660 - "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", 2661 - "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", 2586 + "node_modules/cross-spawn/node_modules/which": { 2587 + "version": "2.0.2", 2588 + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", 2589 + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", 2662 2590 "dev": true, 2663 - "license": "MIT", 2591 + "license": "ISC", 2664 2592 "dependencies": { 2665 - "call-bound": "^1.0.3", 2666 - "es-errors": "^1.3.0", 2667 - "is-data-view": "^1.0.2" 2593 + "isexe": "^2.0.0" 2668 2594 }, 2669 - "engines": { 2670 - "node": ">= 0.4" 2671 - }, 2672 - "funding": { 2673 - "url": "https://github.com/sponsors/ljharb" 2674 - } 2675 - }, 2676 - "node_modules/data-view-byte-length": { 2677 - "version": "1.0.2", 2678 - "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", 2679 - "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", 2680 - "dev": true, 2681 - "license": "MIT", 2682 - "dependencies": { 2683 - "call-bound": "^1.0.3", 2684 - "es-errors": "^1.3.0", 2685 - "is-data-view": "^1.0.2" 2595 + "bin": { 2596 + "node-which": "bin/node-which" 2686 2597 }, 2687 2598 "engines": { 2688 - "node": ">= 0.4" 2689 - }, 2690 - "funding": { 2691 - "url": "https://github.com/sponsors/inspect-js" 2599 + "node": ">= 8" 2692 2600 } 2693 2601 }, 2694 - "node_modules/data-view-byte-offset": { 2695 - "version": "1.0.1", 2696 - "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", 2697 - "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", 2602 + "node_modules/css-b64-images": { 2603 + "version": "0.2.5", 2604 + "resolved": "https://registry.npmjs.org/css-b64-images/-/css-b64-images-0.2.5.tgz", 2605 + "integrity": "sha512-TgQBEdP07adhrDfXvI5o6bHGukKBNMzp2Ngckc/6d09zpjD2gc1Hl3Ca1CKgb8FXjHi88+Phv2Uegs2kTL4zjg==", 2698 2606 "dev": true, 2699 - "license": "MIT", 2700 - "dependencies": { 2701 - "call-bound": "^1.0.2", 2702 - "es-errors": "^1.3.0", 2703 - "is-data-view": "^1.0.1" 2607 + "bin": { 2608 + "css-b64-images": "bin/css-b64-images" 2704 2609 }, 2705 2610 "engines": { 2706 - "node": ">= 0.4" 2707 - }, 2708 - "funding": { 2709 - "url": "https://github.com/sponsors/ljharb" 2611 + "node": "*" 2710 2612 } 2711 2613 }, 2712 2614 "node_modules/date-fns": { ··· 2737 2639 } 2738 2640 } 2739 2641 }, 2740 - "node_modules/define-data-property": { 2741 - "version": "1.1.4", 2742 - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", 2743 - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", 2744 - "dev": true, 2745 - "license": "MIT", 2746 - "dependencies": { 2747 - "es-define-property": "^1.0.0", 2748 - "es-errors": "^1.3.0", 2749 - "gopd": "^1.0.1" 2750 - }, 2751 - "engines": { 2752 - "node": ">= 0.4" 2753 - }, 2754 - "funding": { 2755 - "url": "https://github.com/sponsors/ljharb" 2756 - } 2757 - }, 2758 - "node_modules/define-properties": { 2759 - "version": "1.2.1", 2760 - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", 2761 - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", 2762 - "dev": true, 2763 - "license": "MIT", 2764 - "dependencies": { 2765 - "define-data-property": "^1.0.1", 2766 - "has-property-descriptors": "^1.0.0", 2767 - "object-keys": "^1.1.1" 2768 - }, 2769 - "engines": { 2770 - "node": ">= 0.4" 2771 - }, 2772 - "funding": { 2773 - "url": "https://github.com/sponsors/ljharb" 2774 - } 2775 - }, 2776 2642 "node_modules/defu": { 2777 2643 "version": "6.1.4", 2778 2644 "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.4.tgz", ··· 2941 2807 } 2942 2808 } 2943 2809 }, 2944 - "node_modules/dunder-proto": { 2945 - "version": "1.0.1", 2946 - "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", 2947 - "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", 2948 - "dev": true, 2949 - "license": "MIT", 2950 - "dependencies": { 2951 - "call-bind-apply-helpers": "^1.0.1", 2952 - "es-errors": "^1.3.0", 2953 - "gopd": "^1.2.0" 2954 - }, 2955 - "engines": { 2956 - "node": ">= 0.4" 2957 - } 2958 - }, 2959 2810 "node_modules/entities": { 2960 2811 "version": "6.0.1", 2961 2812 "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", ··· 2969 2820 "url": "https://github.com/fb55/entities?sponsor=1" 2970 2821 } 2971 2822 }, 2972 - "node_modules/error-ex": { 2973 - "version": "1.3.4", 2974 - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", 2975 - "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==", 2976 - "dev": true, 2977 - "license": "MIT", 2978 - "dependencies": { 2979 - "is-arrayish": "^0.2.1" 2980 - } 2981 - }, 2982 2823 "node_modules/error-stack-parser-es": { 2983 2824 "version": "1.0.5", 2984 2825 "resolved": "https://registry.npmjs.org/error-stack-parser-es/-/error-stack-parser-es-1.0.5.tgz", ··· 2989 2830 "url": "https://github.com/sponsors/antfu" 2990 2831 } 2991 2832 }, 2992 - "node_modules/es-abstract": { 2993 - "version": "1.24.1", 2994 - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.1.tgz", 2995 - "integrity": "sha512-zHXBLhP+QehSSbsS9Pt23Gg964240DPd6QCf8WpkqEXxQ7fhdZzYsocOr5u7apWonsS5EjZDmTF+/slGMyasvw==", 2996 - "dev": true, 2997 - "license": "MIT", 2998 - "dependencies": { 2999 - "array-buffer-byte-length": "^1.0.2", 3000 - "arraybuffer.prototype.slice": "^1.0.4", 3001 - "available-typed-arrays": "^1.0.7", 3002 - "call-bind": "^1.0.8", 3003 - "call-bound": "^1.0.4", 3004 - "data-view-buffer": "^1.0.2", 3005 - "data-view-byte-length": "^1.0.2", 3006 - "data-view-byte-offset": "^1.0.1", 3007 - "es-define-property": "^1.0.1", 3008 - "es-errors": "^1.3.0", 3009 - "es-object-atoms": "^1.1.1", 3010 - "es-set-tostringtag": "^2.1.0", 3011 - "es-to-primitive": "^1.3.0", 3012 - "function.prototype.name": "^1.1.8", 3013 - "get-intrinsic": "^1.3.0", 3014 - "get-proto": "^1.0.1", 3015 - "get-symbol-description": "^1.1.0", 3016 - "globalthis": "^1.0.4", 3017 - "gopd": "^1.2.0", 3018 - "has-property-descriptors": "^1.0.2", 3019 - "has-proto": "^1.2.0", 3020 - "has-symbols": "^1.1.0", 3021 - "hasown": "^2.0.2", 3022 - "internal-slot": "^1.1.0", 3023 - "is-array-buffer": "^3.0.5", 3024 - "is-callable": "^1.2.7", 3025 - "is-data-view": "^1.0.2", 3026 - "is-negative-zero": "^2.0.3", 3027 - "is-regex": "^1.2.1", 3028 - "is-set": "^2.0.3", 3029 - "is-shared-array-buffer": "^1.0.4", 3030 - "is-string": "^1.1.1", 3031 - "is-typed-array": "^1.1.15", 3032 - "is-weakref": "^1.1.1", 3033 - "math-intrinsics": "^1.1.0", 3034 - "object-inspect": "^1.13.4", 3035 - "object-keys": "^1.1.1", 3036 - "object.assign": "^4.1.7", 3037 - "own-keys": "^1.0.1", 3038 - "regexp.prototype.flags": "^1.5.4", 3039 - "safe-array-concat": "^1.1.3", 3040 - "safe-push-apply": "^1.0.0", 3041 - "safe-regex-test": "^1.1.0", 3042 - "set-proto": "^1.0.0", 3043 - "stop-iteration-iterator": "^1.1.0", 3044 - "string.prototype.trim": "^1.2.10", 3045 - "string.prototype.trimend": "^1.0.9", 3046 - "string.prototype.trimstart": "^1.0.8", 3047 - "typed-array-buffer": "^1.0.3", 3048 - "typed-array-byte-length": "^1.0.3", 3049 - "typed-array-byte-offset": "^1.0.4", 3050 - "typed-array-length": "^1.0.7", 3051 - "unbox-primitive": "^1.1.0", 3052 - "which-typed-array": "^1.1.19" 3053 - }, 3054 - "engines": { 3055 - "node": ">= 0.4" 3056 - }, 3057 - "funding": { 3058 - "url": "https://github.com/sponsors/ljharb" 3059 - } 3060 - }, 3061 - "node_modules/es-define-property": { 3062 - "version": "1.0.1", 3063 - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", 3064 - "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", 3065 - "dev": true, 3066 - "license": "MIT", 3067 - "engines": { 3068 - "node": ">= 0.4" 3069 - } 3070 - }, 3071 - "node_modules/es-errors": { 3072 - "version": "1.3.0", 3073 - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", 3074 - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", 3075 - "dev": true, 3076 - "license": "MIT", 3077 - "engines": { 3078 - "node": ">= 0.4" 3079 - } 3080 - }, 3081 - "node_modules/es-object-atoms": { 3082 - "version": "1.1.1", 3083 - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", 3084 - "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", 3085 - "dev": true, 3086 - "license": "MIT", 3087 - "dependencies": { 3088 - "es-errors": "^1.3.0" 3089 - }, 3090 - "engines": { 3091 - "node": ">= 0.4" 3092 - } 3093 - }, 3094 - "node_modules/es-set-tostringtag": { 3095 - "version": "2.1.0", 3096 - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", 3097 - "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", 3098 - "dev": true, 3099 - "license": "MIT", 3100 - "dependencies": { 3101 - "es-errors": "^1.3.0", 3102 - "get-intrinsic": "^1.2.6", 3103 - "has-tostringtag": "^1.0.2", 3104 - "hasown": "^2.0.2" 3105 - }, 3106 - "engines": { 3107 - "node": ">= 0.4" 3108 - } 3109 - }, 3110 - "node_modules/es-to-primitive": { 3111 - "version": "1.3.0", 3112 - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", 3113 - "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", 3114 - "dev": true, 3115 - "license": "MIT", 3116 - "dependencies": { 3117 - "is-callable": "^1.2.7", 3118 - "is-date-object": "^1.0.5", 3119 - "is-symbol": "^1.0.4" 3120 - }, 3121 - "engines": { 3122 - "node": ">= 0.4" 3123 - }, 3124 - "funding": { 3125 - "url": "https://github.com/sponsors/ljharb" 3126 - } 3127 - }, 3128 2833 "node_modules/esbuild": { 3129 2834 "version": "0.25.12", 3130 2835 "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.12.tgz", ··· 3180 2885 "esbuild": ">=0.12 <1" 3181 2886 } 3182 2887 }, 3183 - "node_modules/escape-string-regexp": { 3184 - "version": "1.0.5", 3185 - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 3186 - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", 3187 - "dev": true, 3188 - "license": "MIT", 3189 - "engines": { 3190 - "node": ">=0.8.0" 3191 - } 3192 - }, 3193 2888 "node_modules/find-up": { 3194 2889 "version": "7.0.0", 3195 2890 "resolved": "https://registry.npmjs.org/find-up/-/find-up-7.0.0.tgz", ··· 3208 2903 "url": "https://github.com/sponsors/sindresorhus" 3209 2904 } 3210 2905 }, 3211 - "node_modules/for-each": { 3212 - "version": "0.3.5", 3213 - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", 3214 - "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", 3215 - "dev": true, 3216 - "license": "MIT", 3217 - "dependencies": { 3218 - "is-callable": "^1.2.7" 3219 - }, 3220 - "engines": { 3221 - "node": ">= 0.4" 3222 - }, 3223 - "funding": { 3224 - "url": "https://github.com/sponsors/ljharb" 3225 - } 3226 - }, 3227 2906 "node_modules/fsevents": { 3228 2907 "version": "2.3.3", 3229 2908 "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", ··· 3239 2918 "node": "^8.16.0 || ^10.6.0 || >=11.0.0" 3240 2919 } 3241 2920 }, 3242 - "node_modules/function-bind": { 3243 - "version": "1.1.2", 3244 - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", 3245 - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", 3246 - "dev": true, 3247 - "license": "MIT", 3248 - "funding": { 3249 - "url": "https://github.com/sponsors/ljharb" 3250 - } 3251 - }, 3252 - "node_modules/function.prototype.name": { 3253 - "version": "1.1.8", 3254 - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", 3255 - "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", 3256 - "dev": true, 3257 - "license": "MIT", 3258 - "dependencies": { 3259 - "call-bind": "^1.0.8", 3260 - "call-bound": "^1.0.3", 3261 - "define-properties": "^1.2.1", 3262 - "functions-have-names": "^1.2.3", 3263 - "hasown": "^2.0.2", 3264 - "is-callable": "^1.2.7" 3265 - }, 3266 - "engines": { 3267 - "node": ">= 0.4" 3268 - }, 3269 - "funding": { 3270 - "url": "https://github.com/sponsors/ljharb" 3271 - } 3272 - }, 3273 - "node_modules/functions-have-names": { 3274 - "version": "1.2.3", 3275 - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", 3276 - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", 3277 - "dev": true, 3278 - "license": "MIT", 3279 - "funding": { 3280 - "url": "https://github.com/sponsors/ljharb" 3281 - } 3282 - }, 3283 - "node_modules/generator-function": { 3284 - "version": "2.0.1", 3285 - "resolved": "https://registry.npmjs.org/generator-function/-/generator-function-2.0.1.tgz", 3286 - "integrity": "sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==", 3287 - "dev": true, 3288 - "license": "MIT", 3289 - "engines": { 3290 - "node": ">= 0.4" 3291 - } 3292 - }, 3293 - "node_modules/get-intrinsic": { 3294 - "version": "1.3.0", 3295 - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", 3296 - "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", 3297 - "dev": true, 3298 - "license": "MIT", 3299 - "dependencies": { 3300 - "call-bind-apply-helpers": "^1.0.2", 3301 - "es-define-property": "^1.0.1", 3302 - "es-errors": "^1.3.0", 3303 - "es-object-atoms": "^1.1.1", 3304 - "function-bind": "^1.1.2", 3305 - "get-proto": "^1.0.1", 3306 - "gopd": "^1.2.0", 3307 - "has-symbols": "^1.1.0", 3308 - "hasown": "^2.0.2", 3309 - "math-intrinsics": "^1.1.0" 3310 - }, 3311 - "engines": { 3312 - "node": ">= 0.4" 3313 - }, 3314 - "funding": { 3315 - "url": "https://github.com/sponsors/ljharb" 3316 - } 3317 - }, 3318 - "node_modules/get-proto": { 3319 - "version": "1.0.1", 3320 - "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", 3321 - "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", 3322 - "dev": true, 3323 - "license": "MIT", 3324 - "dependencies": { 3325 - "dunder-proto": "^1.0.1", 3326 - "es-object-atoms": "^1.0.0" 3327 - }, 3328 - "engines": { 3329 - "node": ">= 0.4" 3330 - } 3331 - }, 3332 - "node_modules/get-symbol-description": { 3333 - "version": "1.1.0", 3334 - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", 3335 - "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", 3336 - "dev": true, 3337 - "license": "MIT", 3338 - "dependencies": { 3339 - "call-bound": "^1.0.3", 3340 - "es-errors": "^1.3.0", 3341 - "get-intrinsic": "^1.2.6" 3342 - }, 3343 - "engines": { 3344 - "node": ">= 0.4" 3345 - }, 3346 - "funding": { 3347 - "url": "https://github.com/sponsors/ljharb" 3348 - } 3349 - }, 3350 2921 "node_modules/get-tsconfig": { 3351 2922 "version": "4.13.6", 3352 2923 "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.13.6.tgz", ··· 3360 2931 "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" 3361 2932 } 3362 2933 }, 3363 - "node_modules/globalthis": { 3364 - "version": "1.0.4", 3365 - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", 3366 - "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", 3367 - "dev": true, 3368 - "license": "MIT", 3369 - "dependencies": { 3370 - "define-properties": "^1.2.1", 3371 - "gopd": "^1.0.1" 3372 - }, 3373 - "engines": { 3374 - "node": ">= 0.4" 3375 - }, 3376 - "funding": { 3377 - "url": "https://github.com/sponsors/ljharb" 3378 - } 3379 - }, 3380 - "node_modules/gopd": { 3381 - "version": "1.2.0", 3382 - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", 3383 - "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", 3384 - "dev": true, 3385 - "license": "MIT", 3386 - "engines": { 3387 - "node": ">= 0.4" 3388 - }, 3389 - "funding": { 3390 - "url": "https://github.com/sponsors/ljharb" 3391 - } 3392 - }, 3393 - "node_modules/graceful-fs": { 3394 - "version": "4.2.11", 3395 - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", 3396 - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", 3397 - "dev": true, 3398 - "license": "ISC" 3399 - }, 3400 - "node_modules/has-bigints": { 3401 - "version": "1.1.0", 3402 - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", 3403 - "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", 3404 - "dev": true, 3405 - "license": "MIT", 3406 - "engines": { 3407 - "node": ">= 0.4" 3408 - }, 3409 - "funding": { 3410 - "url": "https://github.com/sponsors/ljharb" 3411 - } 3412 - }, 3413 - "node_modules/has-flag": { 3414 - "version": "3.0.0", 3415 - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 3416 - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", 3417 - "dev": true, 3418 - "license": "MIT", 3419 - "engines": { 3420 - "node": ">=4" 3421 - } 3422 - }, 3423 - "node_modules/has-property-descriptors": { 3424 - "version": "1.0.2", 3425 - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", 3426 - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", 3427 - "dev": true, 3428 - "license": "MIT", 3429 - "dependencies": { 3430 - "es-define-property": "^1.0.0" 3431 - }, 3432 - "funding": { 3433 - "url": "https://github.com/sponsors/ljharb" 3434 - } 3435 - }, 3436 - "node_modules/has-proto": { 3437 - "version": "1.2.0", 3438 - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", 3439 - "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", 3440 - "dev": true, 3441 - "license": "MIT", 3442 - "dependencies": { 3443 - "dunder-proto": "^1.0.0" 3444 - }, 3445 - "engines": { 3446 - "node": ">= 0.4" 3447 - }, 3448 - "funding": { 3449 - "url": "https://github.com/sponsors/ljharb" 3450 - } 3451 - }, 3452 - "node_modules/has-symbols": { 3453 - "version": "1.1.0", 3454 - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", 3455 - "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", 3456 - "dev": true, 3457 - "license": "MIT", 3458 - "engines": { 3459 - "node": ">= 0.4" 3460 - }, 3461 - "funding": { 3462 - "url": "https://github.com/sponsors/ljharb" 3463 - } 3464 - }, 3465 - "node_modules/has-tostringtag": { 3466 - "version": "1.0.2", 3467 - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", 3468 - "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", 3469 - "dev": true, 3470 - "license": "MIT", 3471 - "dependencies": { 3472 - "has-symbols": "^1.0.3" 3473 - }, 3474 - "engines": { 3475 - "node": ">= 0.4" 3476 - }, 3477 - "funding": { 3478 - "url": "https://github.com/sponsors/ljharb" 3479 - } 3480 - }, 3481 - "node_modules/hasown": { 3482 - "version": "2.0.2", 3483 - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", 3484 - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", 3485 - "dev": true, 3486 - "license": "MIT", 3487 - "dependencies": { 3488 - "function-bind": "^1.1.2" 3489 - }, 3490 - "engines": { 3491 - "node": ">= 0.4" 3492 - } 3493 - }, 3494 2934 "node_modules/header-case": { 3495 2935 "version": "2.0.4", 3496 2936 "resolved": "https://registry.npmjs.org/header-case/-/header-case-2.0.4.tgz", ··· 3511 2951 "node": ">=16.9.0" 3512 2952 } 3513 2953 }, 3514 - "node_modules/hosted-git-info": { 3515 - "version": "2.8.9", 3516 - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", 3517 - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", 3518 - "dev": true, 3519 - "license": "ISC" 2954 + "node_modules/hono-openapi": { 2955 + "version": "1.2.0", 2956 + "resolved": "https://registry.npmjs.org/hono-openapi/-/hono-openapi-1.2.0.tgz", 2957 + "integrity": "sha512-t3u4v8YCltExDl4d9cLqg/mcrYFSs9Gjb5puF1CePPrvv1JQOo1Kc50HAmGt47CWHIoc/W8Q9LY3t3yqU0dxFw==", 2958 + "license": "MIT", 2959 + "peerDependencies": { 2960 + "@hono/standard-validator": "^0.2.0", 2961 + "@standard-community/standard-json": "^0.3.5", 2962 + "@standard-community/standard-openapi": "^0.2.9", 2963 + "@types/json-schema": "^7.0.15", 2964 + "hono": "^4.8.3", 2965 + "openapi-types": "^12.1.3" 2966 + }, 2967 + "peerDependenciesMeta": { 2968 + "@hono/standard-validator": { 2969 + "optional": true 2970 + }, 2971 + "hono": { 2972 + "optional": true 2973 + } 2974 + } 3520 2975 }, 3521 2976 "node_modules/html-minifier-next": { 3522 2977 "version": "1.4.3", ··· 3560 3015 "url": "https://github.com/sponsors/sindresorhus" 3561 3016 } 3562 3017 }, 3563 - "node_modules/internal-slot": { 3564 - "version": "1.1.0", 3565 - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", 3566 - "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", 3567 - "dev": true, 3568 - "license": "MIT", 3569 - "dependencies": { 3570 - "es-errors": "^1.3.0", 3571 - "hasown": "^2.0.2", 3572 - "side-channel": "^1.1.0" 3573 - }, 3574 - "engines": { 3575 - "node": ">= 0.4" 3576 - } 3577 - }, 3578 - "node_modules/is-array-buffer": { 3579 - "version": "3.0.5", 3580 - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", 3581 - "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", 3582 - "dev": true, 3583 - "license": "MIT", 3584 - "dependencies": { 3585 - "call-bind": "^1.0.8", 3586 - "call-bound": "^1.0.3", 3587 - "get-intrinsic": "^1.2.6" 3588 - }, 3589 - "engines": { 3590 - "node": ">= 0.4" 3591 - }, 3592 - "funding": { 3593 - "url": "https://github.com/sponsors/ljharb" 3594 - } 3595 - }, 3596 - "node_modules/is-arrayish": { 3597 - "version": "0.2.1", 3598 - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", 3599 - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", 3600 - "dev": true, 3601 - "license": "MIT" 3602 - }, 3603 - "node_modules/is-async-function": { 3604 - "version": "2.1.1", 3605 - "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", 3606 - "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", 3607 - "dev": true, 3608 - "license": "MIT", 3609 - "dependencies": { 3610 - "async-function": "^1.0.0", 3611 - "call-bound": "^1.0.3", 3612 - "get-proto": "^1.0.1", 3613 - "has-tostringtag": "^1.0.2", 3614 - "safe-regex-test": "^1.1.0" 3615 - }, 3616 - "engines": { 3617 - "node": ">= 0.4" 3618 - }, 3619 - "funding": { 3620 - "url": "https://github.com/sponsors/ljharb" 3621 - } 3622 - }, 3623 - "node_modules/is-bigint": { 3624 - "version": "1.1.0", 3625 - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", 3626 - "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", 3627 - "dev": true, 3628 - "license": "MIT", 3629 - "dependencies": { 3630 - "has-bigints": "^1.0.2" 3631 - }, 3632 - "engines": { 3633 - "node": ">= 0.4" 3634 - }, 3635 - "funding": { 3636 - "url": "https://github.com/sponsors/ljharb" 3637 - } 3638 - }, 3639 - "node_modules/is-boolean-object": { 3640 - "version": "1.2.2", 3641 - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", 3642 - "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", 3643 - "dev": true, 3644 - "license": "MIT", 3645 - "dependencies": { 3646 - "call-bound": "^1.0.3", 3647 - "has-tostringtag": "^1.0.2" 3648 - }, 3649 - "engines": { 3650 - "node": ">= 0.4" 3651 - }, 3652 - "funding": { 3653 - "url": "https://github.com/sponsors/ljharb" 3654 - } 3655 - }, 3656 - "node_modules/is-callable": { 3657 - "version": "1.2.7", 3658 - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", 3659 - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", 3660 - "dev": true, 3661 - "license": "MIT", 3662 - "engines": { 3663 - "node": ">= 0.4" 3664 - }, 3665 - "funding": { 3666 - "url": "https://github.com/sponsors/ljharb" 3667 - } 3668 - }, 3669 - "node_modules/is-core-module": { 3670 - "version": "2.16.1", 3671 - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", 3672 - "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", 3673 - "dev": true, 3674 - "license": "MIT", 3675 - "dependencies": { 3676 - "hasown": "^2.0.2" 3677 - }, 3678 - "engines": { 3679 - "node": ">= 0.4" 3680 - }, 3681 - "funding": { 3682 - "url": "https://github.com/sponsors/ljharb" 3683 - } 3684 - }, 3685 - "node_modules/is-data-view": { 3686 - "version": "1.0.2", 3687 - "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", 3688 - "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", 3689 - "dev": true, 3690 - "license": "MIT", 3691 - "dependencies": { 3692 - "call-bound": "^1.0.2", 3693 - "get-intrinsic": "^1.2.6", 3694 - "is-typed-array": "^1.1.13" 3695 - }, 3696 - "engines": { 3697 - "node": ">= 0.4" 3698 - }, 3699 - "funding": { 3700 - "url": "https://github.com/sponsors/ljharb" 3701 - } 3702 - }, 3703 - "node_modules/is-date-object": { 3704 - "version": "1.1.0", 3705 - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", 3706 - "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", 3707 - "dev": true, 3708 - "license": "MIT", 3709 - "dependencies": { 3710 - "call-bound": "^1.0.2", 3711 - "has-tostringtag": "^1.0.2" 3712 - }, 3713 - "engines": { 3714 - "node": ">= 0.4" 3715 - }, 3716 - "funding": { 3717 - "url": "https://github.com/sponsors/ljharb" 3718 - } 3719 - }, 3720 - "node_modules/is-finalizationregistry": { 3721 - "version": "1.1.1", 3722 - "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", 3723 - "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", 3724 - "dev": true, 3725 - "license": "MIT", 3726 - "dependencies": { 3727 - "call-bound": "^1.0.3" 3728 - }, 3729 - "engines": { 3730 - "node": ">= 0.4" 3731 - }, 3732 - "funding": { 3733 - "url": "https://github.com/sponsors/ljharb" 3734 - } 3735 - }, 3736 - "node_modules/is-generator-function": { 3737 - "version": "1.1.2", 3738 - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.2.tgz", 3739 - "integrity": "sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==", 3740 - "dev": true, 3741 - "license": "MIT", 3742 - "dependencies": { 3743 - "call-bound": "^1.0.4", 3744 - "generator-function": "^2.0.0", 3745 - "get-proto": "^1.0.1", 3746 - "has-tostringtag": "^1.0.2", 3747 - "safe-regex-test": "^1.1.0" 3748 - }, 3749 - "engines": { 3750 - "node": ">= 0.4" 3751 - }, 3752 - "funding": { 3753 - "url": "https://github.com/sponsors/ljharb" 3754 - } 3755 - }, 3756 - "node_modules/is-map": { 3757 - "version": "2.0.3", 3758 - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", 3759 - "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", 3760 - "dev": true, 3761 - "license": "MIT", 3762 - "engines": { 3763 - "node": ">= 0.4" 3764 - }, 3765 - "funding": { 3766 - "url": "https://github.com/sponsors/ljharb" 3767 - } 3768 - }, 3769 - "node_modules/is-negative-zero": { 3770 - "version": "2.0.3", 3771 - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", 3772 - "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", 3773 - "dev": true, 3774 - "license": "MIT", 3775 - "engines": { 3776 - "node": ">= 0.4" 3777 - }, 3778 - "funding": { 3779 - "url": "https://github.com/sponsors/ljharb" 3780 - } 3781 - }, 3782 - "node_modules/is-number-object": { 3783 - "version": "1.1.1", 3784 - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", 3785 - "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", 3786 - "dev": true, 3787 - "license": "MIT", 3788 - "dependencies": { 3789 - "call-bound": "^1.0.3", 3790 - "has-tostringtag": "^1.0.2" 3791 - }, 3792 - "engines": { 3793 - "node": ">= 0.4" 3794 - }, 3795 - "funding": { 3796 - "url": "https://github.com/sponsors/ljharb" 3797 - } 3798 - }, 3799 - "node_modules/is-regex": { 3800 - "version": "1.2.1", 3801 - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", 3802 - "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", 3803 - "dev": true, 3804 - "license": "MIT", 3805 - "dependencies": { 3806 - "call-bound": "^1.0.2", 3807 - "gopd": "^1.2.0", 3808 - "has-tostringtag": "^1.0.2", 3809 - "hasown": "^2.0.2" 3810 - }, 3811 - "engines": { 3812 - "node": ">= 0.4" 3813 - }, 3814 - "funding": { 3815 - "url": "https://github.com/sponsors/ljharb" 3816 - } 3817 - }, 3818 - "node_modules/is-set": { 3819 - "version": "2.0.3", 3820 - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", 3821 - "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", 3822 - "dev": true, 3823 - "license": "MIT", 3824 - "engines": { 3825 - "node": ">= 0.4" 3826 - }, 3827 - "funding": { 3828 - "url": "https://github.com/sponsors/ljharb" 3829 - } 3830 - }, 3831 - "node_modules/is-shared-array-buffer": { 3832 - "version": "1.0.4", 3833 - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", 3834 - "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", 3835 - "dev": true, 3836 - "license": "MIT", 3837 - "dependencies": { 3838 - "call-bound": "^1.0.3" 3839 - }, 3840 - "engines": { 3841 - "node": ">= 0.4" 3842 - }, 3843 - "funding": { 3844 - "url": "https://github.com/sponsors/ljharb" 3845 - } 3846 - }, 3847 - "node_modules/is-string": { 3848 - "version": "1.1.1", 3849 - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", 3850 - "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", 3851 - "dev": true, 3852 - "license": "MIT", 3853 - "dependencies": { 3854 - "call-bound": "^1.0.3", 3855 - "has-tostringtag": "^1.0.2" 3856 - }, 3857 - "engines": { 3858 - "node": ">= 0.4" 3859 - }, 3860 - "funding": { 3861 - "url": "https://github.com/sponsors/ljharb" 3862 - } 3863 - }, 3864 - "node_modules/is-symbol": { 3865 - "version": "1.1.1", 3866 - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", 3867 - "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", 3868 - "dev": true, 3869 - "license": "MIT", 3870 - "dependencies": { 3871 - "call-bound": "^1.0.2", 3872 - "has-symbols": "^1.1.0", 3873 - "safe-regex-test": "^1.1.0" 3874 - }, 3875 - "engines": { 3876 - "node": ">= 0.4" 3877 - }, 3878 - "funding": { 3879 - "url": "https://github.com/sponsors/ljharb" 3880 - } 3881 - }, 3882 - "node_modules/is-typed-array": { 3883 - "version": "1.1.15", 3884 - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", 3885 - "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", 3886 - "dev": true, 3887 - "license": "MIT", 3888 - "dependencies": { 3889 - "which-typed-array": "^1.1.16" 3890 - }, 3891 - "engines": { 3892 - "node": ">= 0.4" 3893 - }, 3894 - "funding": { 3895 - "url": "https://github.com/sponsors/ljharb" 3896 - } 3897 - }, 3898 - "node_modules/is-weakmap": { 3899 - "version": "2.0.2", 3900 - "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", 3901 - "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", 3902 - "dev": true, 3903 - "license": "MIT", 3904 - "engines": { 3905 - "node": ">= 0.4" 3906 - }, 3907 - "funding": { 3908 - "url": "https://github.com/sponsors/ljharb" 3909 - } 3910 - }, 3911 - "node_modules/is-weakref": { 3912 - "version": "1.1.1", 3913 - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", 3914 - "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", 3915 - "dev": true, 3916 - "license": "MIT", 3917 - "dependencies": { 3918 - "call-bound": "^1.0.3" 3919 - }, 3920 - "engines": { 3921 - "node": ">= 0.4" 3922 - }, 3923 - "funding": { 3924 - "url": "https://github.com/sponsors/ljharb" 3925 - } 3926 - }, 3927 - "node_modules/is-weakset": { 3928 - "version": "2.0.4", 3929 - "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", 3930 - "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", 3018 + "node_modules/isexe": { 3019 + "version": "3.1.5", 3020 + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.5.tgz", 3021 + "integrity": "sha512-6B3tLtFqtQS4ekarvLVMZ+X+VlvQekbe4taUkf/rhVO3d/h0M2rfARm/pXLcPEsjjMsFgrFgSrhQIxcSVrBz8w==", 3931 3022 "dev": true, 3932 - "license": "MIT", 3933 - "dependencies": { 3934 - "call-bound": "^1.0.3", 3935 - "get-intrinsic": "^1.2.6" 3936 - }, 3023 + "license": "BlueOak-1.0.0", 3937 3024 "engines": { 3938 - "node": ">= 0.4" 3939 - }, 3940 - "funding": { 3941 - "url": "https://github.com/sponsors/ljharb" 3025 + "node": ">=18" 3942 3026 } 3943 3027 }, 3944 - "node_modules/isarray": { 3945 - "version": "2.0.5", 3946 - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", 3947 - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", 3948 - "dev": true, 3949 - "license": "MIT" 3950 - }, 3951 - "node_modules/isexe": { 3952 - "version": "2.0.0", 3953 - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 3954 - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", 3955 - "dev": true, 3956 - "license": "ISC" 3957 - }, 3958 3028 "node_modules/iso-datestring-validator": { 3959 3029 "version": "2.2.2", 3960 3030 "resolved": "https://registry.npmjs.org/iso-datestring-validator/-/iso-datestring-validator-2.2.2.tgz", ··· 3977 3047 "url": "https://github.com/sponsors/panva" 3978 3048 } 3979 3049 }, 3980 - "node_modules/json-parse-better-errors": { 3981 - "version": "1.0.2", 3982 - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", 3983 - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", 3050 + "node_modules/json-parse-even-better-errors": { 3051 + "version": "4.0.0", 3052 + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-4.0.0.tgz", 3053 + "integrity": "sha512-lR4MXjGNgkJc7tkQ97kb2nuEMnNCyU//XYVH0MKTGcXEiSudQ5MKGKen3C5QubYy0vmq+JGitUg92uuywGEwIA==", 3984 3054 "dev": true, 3985 - "license": "MIT" 3055 + "license": "MIT", 3056 + "engines": { 3057 + "node": "^18.17.0 || >=20.5.0" 3058 + } 3986 3059 }, 3987 3060 "node_modules/just-flatten-it": { 3988 3061 "version": "5.2.0", ··· 4312 3385 "url": "https://opencollective.com/parcel" 4313 3386 } 4314 3387 }, 4315 - "node_modules/load-json-file": { 4316 - "version": "4.0.0", 4317 - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", 4318 - "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", 4319 - "dev": true, 4320 - "license": "MIT", 4321 - "dependencies": { 4322 - "graceful-fs": "^4.1.2", 4323 - "parse-json": "^4.0.0", 4324 - "pify": "^3.0.0", 4325 - "strip-bom": "^3.0.0" 4326 - }, 4327 - "engines": { 4328 - "node": ">=4" 4329 - } 4330 - }, 4331 3388 "node_modules/locate-path": { 4332 3389 "version": "7.2.0", 4333 3390 "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", ··· 4354 3411 "tslib": "^2.0.3" 4355 3412 } 4356 3413 }, 4357 - "node_modules/math-intrinsics": { 4358 - "version": "1.1.0", 4359 - "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", 4360 - "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", 4361 - "dev": true, 4362 - "license": "MIT", 4363 - "engines": { 4364 - "node": ">= 0.4" 4365 - } 4366 - }, 4367 3414 "node_modules/memorystream": { 4368 3415 "version": "0.3.1", 4369 3416 "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", ··· 4439 3486 "node": ">=20" 4440 3487 } 4441 3488 }, 4442 - "node_modules/minimatch": { 4443 - "version": "3.1.2", 4444 - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", 4445 - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", 4446 - "dev": true, 4447 - "license": "ISC", 4448 - "dependencies": { 4449 - "brace-expansion": "^1.1.7" 4450 - }, 4451 - "engines": { 4452 - "node": "*" 4453 - } 4454 - }, 4455 3489 "node_modules/montag": { 4456 3490 "version": "1.2.1", 4457 3491 "resolved": "https://registry.npmjs.org/montag/-/montag-1.2.1.tgz", ··· 4486 3520 "engines": { 4487 3521 "node": "^20.0.0 || >=22.0.0" 4488 3522 } 4489 - }, 4490 - "node_modules/nice-try": { 4491 - "version": "1.0.5", 4492 - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", 4493 - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", 4494 - "dev": true, 4495 - "license": "MIT" 4496 3523 }, 4497 3524 "node_modules/no-case": { 4498 3525 "version": "3.0.4", ··· 4505 3532 "tslib": "^2.0.3" 4506 3533 } 4507 3534 }, 4508 - "node_modules/normalize-package-data": { 4509 - "version": "2.5.0", 4510 - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", 4511 - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", 3535 + "node_modules/npm-normalize-package-bin": { 3536 + "version": "4.0.0", 3537 + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-4.0.0.tgz", 3538 + "integrity": "sha512-TZKxPvItzai9kN9H/TkmCtx/ZN/hvr3vUycjlfmH0ootY9yFBzNOpiXAdIn1Iteqsvk4lQn6B5PTrt+n6h8k/w==", 4512 3539 "dev": true, 4513 - "license": "BSD-2-Clause", 4514 - "dependencies": { 4515 - "hosted-git-info": "^2.1.4", 4516 - "resolve": "^1.10.0", 4517 - "semver": "2 || 3 || 4 || 5", 4518 - "validate-npm-package-license": "^3.0.1" 3540 + "license": "ISC", 3541 + "engines": { 3542 + "node": "^18.17.0 || >=20.5.0" 4519 3543 } 4520 3544 }, 4521 - "node_modules/npm-run-all": { 4522 - "version": "4.1.5", 4523 - "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz", 4524 - "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==", 3545 + "node_modules/npm-run-all2": { 3546 + "version": "8.0.4", 3547 + "resolved": "https://registry.npmjs.org/npm-run-all2/-/npm-run-all2-8.0.4.tgz", 3548 + "integrity": "sha512-wdbB5My48XKp2ZfJUlhnLVihzeuA1hgBnqB2J9ahV77wLS+/YAJAlN8I+X3DIFIPZ3m5L7nplmlbhNiFDmXRDA==", 4525 3549 "dev": true, 4526 3550 "license": "MIT", 4527 3551 "dependencies": { 4528 - "ansi-styles": "^3.2.1", 4529 - "chalk": "^2.4.1", 4530 - "cross-spawn": "^6.0.5", 3552 + "ansi-styles": "^6.2.1", 3553 + "cross-spawn": "^7.0.6", 4531 3554 "memorystream": "^0.3.1", 4532 - "minimatch": "^3.0.4", 4533 - "pidtree": "^0.3.0", 4534 - "read-pkg": "^3.0.0", 4535 - "shell-quote": "^1.6.1", 4536 - "string.prototype.padend": "^3.0.0" 3555 + "picomatch": "^4.0.2", 3556 + "pidtree": "^0.6.0", 3557 + "read-package-json-fast": "^4.0.0", 3558 + "shell-quote": "^1.7.3", 3559 + "which": "^5.0.0" 4537 3560 }, 4538 3561 "bin": { 4539 3562 "npm-run-all": "bin/npm-run-all/index.js", 3563 + "npm-run-all2": "bin/npm-run-all/index.js", 4540 3564 "run-p": "bin/run-p/index.js", 4541 3565 "run-s": "bin/run-s/index.js" 4542 3566 }, 4543 3567 "engines": { 4544 - "node": ">= 4" 4545 - } 4546 - }, 4547 - "node_modules/object-inspect": { 4548 - "version": "1.13.4", 4549 - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", 4550 - "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", 4551 - "dev": true, 4552 - "license": "MIT", 4553 - "engines": { 4554 - "node": ">= 0.4" 4555 - }, 4556 - "funding": { 4557 - "url": "https://github.com/sponsors/ljharb" 3568 + "node": "^20.5.0 || >=22.0.0", 3569 + "npm": ">= 10" 4558 3570 } 4559 3571 }, 4560 - "node_modules/object-keys": { 4561 - "version": "1.1.1", 4562 - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", 4563 - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", 4564 - "dev": true, 3572 + "node_modules/openapi-types": { 3573 + "version": "12.1.3", 3574 + "resolved": "https://registry.npmjs.org/openapi-types/-/openapi-types-12.1.3.tgz", 3575 + "integrity": "sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw==", 4565 3576 "license": "MIT", 4566 - "engines": { 4567 - "node": ">= 0.4" 4568 - } 4569 - }, 4570 - "node_modules/object.assign": { 4571 - "version": "4.1.7", 4572 - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", 4573 - "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", 4574 - "dev": true, 4575 - "license": "MIT", 4576 - "dependencies": { 4577 - "call-bind": "^1.0.8", 4578 - "call-bound": "^1.0.3", 4579 - "define-properties": "^1.2.1", 4580 - "es-object-atoms": "^1.0.0", 4581 - "has-symbols": "^1.1.0", 4582 - "object-keys": "^1.1.1" 4583 - }, 4584 - "engines": { 4585 - "node": ">= 0.4" 4586 - }, 4587 - "funding": { 4588 - "url": "https://github.com/sponsors/ljharb" 4589 - } 4590 - }, 4591 - "node_modules/own-keys": { 4592 - "version": "1.0.1", 4593 - "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", 4594 - "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", 4595 - "dev": true, 4596 - "license": "MIT", 4597 - "dependencies": { 4598 - "get-intrinsic": "^1.2.6", 4599 - "object-keys": "^1.1.1", 4600 - "safe-push-apply": "^1.0.0" 4601 - }, 4602 - "engines": { 4603 - "node": ">= 0.4" 4604 - }, 4605 - "funding": { 4606 - "url": "https://github.com/sponsors/ljharb" 4607 - } 3577 + "peer": true 4608 3578 }, 4609 3579 "node_modules/p-limit": { 4610 3580 "version": "4.0.0", ··· 4649 3619 "tslib": "^2.0.3" 4650 3620 } 4651 3621 }, 4652 - "node_modules/parse-json": { 4653 - "version": "4.0.0", 4654 - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", 4655 - "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", 4656 - "dev": true, 4657 - "license": "MIT", 4658 - "dependencies": { 4659 - "error-ex": "^1.3.1", 4660 - "json-parse-better-errors": "^1.0.1" 4661 - }, 4662 - "engines": { 4663 - "node": ">=4" 4664 - } 4665 - }, 4666 3622 "node_modules/pascal-case": { 4667 3623 "version": "3.1.2", 4668 3624 "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", ··· 4696 3652 } 4697 3653 }, 4698 3654 "node_modules/path-key": { 4699 - "version": "2.0.1", 4700 - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", 4701 - "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", 3655 + "version": "3.1.1", 3656 + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", 3657 + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", 4702 3658 "dev": true, 4703 3659 "license": "MIT", 4704 3660 "engines": { 4705 - "node": ">=4" 3661 + "node": ">=8" 4706 3662 } 4707 3663 }, 4708 - "node_modules/path-parse": { 4709 - "version": "1.0.7", 4710 - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", 4711 - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", 4712 - "dev": true, 4713 - "license": "MIT" 4714 - }, 4715 3664 "node_modules/path-to-regexp": { 4716 3665 "version": "6.3.0", 4717 3666 "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.3.0.tgz", ··· 4719 3668 "dev": true, 4720 3669 "license": "MIT" 4721 3670 }, 4722 - "node_modules/path-type": { 4723 - "version": "3.0.0", 4724 - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", 4725 - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", 4726 - "dev": true, 4727 - "license": "MIT", 4728 - "dependencies": { 4729 - "pify": "^3.0.0" 4730 - }, 4731 - "engines": { 4732 - "node": ">=4" 4733 - } 4734 - }, 4735 3671 "node_modules/pathe": { 4736 3672 "version": "2.0.3", 4737 3673 "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", ··· 4739 3675 "dev": true, 4740 3676 "license": "MIT" 4741 3677 }, 4742 - "node_modules/pidtree": { 4743 - "version": "0.3.1", 4744 - "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz", 4745 - "integrity": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==", 4746 - "dev": true, 4747 - "license": "MIT", 4748 - "bin": { 4749 - "pidtree": "bin/pidtree.js" 4750 - }, 4751 - "engines": { 4752 - "node": ">=0.10" 4753 - } 4754 - }, 4755 - "node_modules/pify": { 4756 - "version": "3.0.0", 4757 - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", 4758 - "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", 3678 + "node_modules/picomatch": { 3679 + "version": "4.0.3", 3680 + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", 3681 + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", 4759 3682 "dev": true, 4760 3683 "license": "MIT", 4761 3684 "engines": { 4762 - "node": ">=4" 3685 + "node": ">=12" 3686 + }, 3687 + "funding": { 3688 + "url": "https://github.com/sponsors/jonschlinkert" 4763 3689 } 4764 3690 }, 4765 - "node_modules/possible-typed-array-names": { 4766 - "version": "1.1.0", 4767 - "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", 4768 - "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", 3691 + "node_modules/pidtree": { 3692 + "version": "0.6.0", 3693 + "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.6.0.tgz", 3694 + "integrity": "sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==", 4769 3695 "dev": true, 4770 3696 "license": "MIT", 3697 + "bin": { 3698 + "pidtree": "bin/pidtree.js" 3699 + }, 4771 3700 "engines": { 4772 - "node": ">= 0.4" 3701 + "node": ">=0.10" 4773 3702 } 4774 3703 }, 4775 3704 "node_modules/prettier": { ··· 4788 3717 "url": "https://github.com/prettier/prettier?sponsor=1" 4789 3718 } 4790 3719 }, 4791 - "node_modules/read-pkg": { 4792 - "version": "3.0.0", 4793 - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", 4794 - "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==", 3720 + "node_modules/quansync": { 3721 + "version": "0.2.11", 3722 + "resolved": "https://registry.npmjs.org/quansync/-/quansync-0.2.11.tgz", 3723 + "integrity": "sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==", 3724 + "funding": [ 3725 + { 3726 + "type": "individual", 3727 + "url": "https://github.com/sponsors/antfu" 3728 + }, 3729 + { 3730 + "type": "individual", 3731 + "url": "https://github.com/sponsors/sxzz" 3732 + } 3733 + ], 3734 + "license": "MIT", 3735 + "peer": true 3736 + }, 3737 + "node_modules/read-package-json-fast": { 3738 + "version": "4.0.0", 3739 + "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-4.0.0.tgz", 3740 + "integrity": "sha512-qpt8EwugBWDw2cgE2W+/3oxC+KTez2uSVR8JU9Q36TXPAGCaozfQUs59v4j4GFpWTaw0i6hAZSvOmu1J0uOEUg==", 4795 3741 "dev": true, 4796 - "license": "MIT", 3742 + "license": "ISC", 4797 3743 "dependencies": { 4798 - "load-json-file": "^4.0.0", 4799 - "normalize-package-data": "^2.3.2", 4800 - "path-type": "^3.0.0" 3744 + "json-parse-even-better-errors": "^4.0.0", 3745 + "npm-normalize-package-bin": "^4.0.0" 4801 3746 }, 4802 3747 "engines": { 4803 - "node": ">=4" 3748 + "node": "^18.17.0 || >=20.5.0" 4804 3749 } 4805 3750 }, 4806 3751 "node_modules/readjson": { ··· 4817 3762 "node": ">=10" 4818 3763 } 4819 3764 }, 4820 - "node_modules/reflect.getprototypeof": { 4821 - "version": "1.0.10", 4822 - "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", 4823 - "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", 4824 - "dev": true, 4825 - "license": "MIT", 4826 - "dependencies": { 4827 - "call-bind": "^1.0.8", 4828 - "define-properties": "^1.2.1", 4829 - "es-abstract": "^1.23.9", 4830 - "es-errors": "^1.3.0", 4831 - "es-object-atoms": "^1.0.0", 4832 - "get-intrinsic": "^1.2.7", 4833 - "get-proto": "^1.0.1", 4834 - "which-builtin-type": "^1.2.1" 4835 - }, 4836 - "engines": { 4837 - "node": ">= 0.4" 4838 - }, 4839 - "funding": { 4840 - "url": "https://github.com/sponsors/ljharb" 4841 - } 4842 - }, 4843 - "node_modules/regexp.prototype.flags": { 4844 - "version": "1.5.4", 4845 - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", 4846 - "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", 4847 - "dev": true, 4848 - "license": "MIT", 4849 - "dependencies": { 4850 - "call-bind": "^1.0.8", 4851 - "define-properties": "^1.2.1", 4852 - "es-errors": "^1.3.0", 4853 - "get-proto": "^1.0.1", 4854 - "gopd": "^1.2.0", 4855 - "set-function-name": "^2.0.2" 4856 - }, 4857 - "engines": { 4858 - "node": ">= 0.4" 4859 - }, 4860 - "funding": { 4861 - "url": "https://github.com/sponsors/ljharb" 4862 - } 4863 - }, 4864 3765 "node_modules/relateurl": { 4865 3766 "version": "0.2.7", 4866 3767 "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", ··· 4871 3772 "node": ">= 0.10" 4872 3773 } 4873 3774 }, 4874 - "node_modules/resolve": { 4875 - "version": "1.22.11", 4876 - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz", 4877 - "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", 4878 - "dev": true, 4879 - "license": "MIT", 4880 - "dependencies": { 4881 - "is-core-module": "^2.16.1", 4882 - "path-parse": "^1.0.7", 4883 - "supports-preserve-symlinks-flag": "^1.0.0" 4884 - }, 4885 - "bin": { 4886 - "resolve": "bin/resolve" 4887 - }, 4888 - "engines": { 4889 - "node": ">= 0.4" 4890 - }, 4891 - "funding": { 4892 - "url": "https://github.com/sponsors/ljharb" 4893 - } 4894 - }, 4895 3775 "node_modules/resolve-pkg-maps": { 4896 3776 "version": "1.0.0", 4897 3777 "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", ··· 4908 3788 "integrity": "sha512-iFE4hLDuloSWcD7mjdCDhx2bKcIsYbtOTpfH5MHHLSKMOUyjqQXTeZVa289uuwEGEKFoE/BAPbhaU4B774nceg==", 4909 3789 "license": "MIT" 4910 3790 }, 4911 - "node_modules/safe-array-concat": { 4912 - "version": "1.1.3", 4913 - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", 4914 - "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", 4915 - "dev": true, 4916 - "license": "MIT", 4917 - "dependencies": { 4918 - "call-bind": "^1.0.8", 4919 - "call-bound": "^1.0.2", 4920 - "get-intrinsic": "^1.2.6", 4921 - "has-symbols": "^1.1.0", 4922 - "isarray": "^2.0.5" 4923 - }, 4924 - "engines": { 4925 - "node": ">=0.4" 4926 - }, 4927 - "funding": { 4928 - "url": "https://github.com/sponsors/ljharb" 4929 - } 4930 - }, 4931 - "node_modules/safe-push-apply": { 4932 - "version": "1.0.0", 4933 - "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", 4934 - "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", 4935 - "dev": true, 4936 - "license": "MIT", 4937 - "dependencies": { 4938 - "es-errors": "^1.3.0", 4939 - "isarray": "^2.0.5" 4940 - }, 4941 - "engines": { 4942 - "node": ">= 0.4" 4943 - }, 4944 - "funding": { 4945 - "url": "https://github.com/sponsors/ljharb" 4946 - } 4947 - }, 4948 - "node_modules/safe-regex-test": { 4949 - "version": "1.1.0", 4950 - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", 4951 - "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", 4952 - "dev": true, 4953 - "license": "MIT", 4954 - "dependencies": { 4955 - "call-bound": "^1.0.2", 4956 - "es-errors": "^1.3.0", 4957 - "is-regex": "^1.2.1" 4958 - }, 4959 - "engines": { 4960 - "node": ">= 0.4" 4961 - }, 4962 - "funding": { 4963 - "url": "https://github.com/sponsors/ljharb" 4964 - } 4965 - }, 4966 - "node_modules/semver": { 4967 - "version": "5.7.2", 4968 - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", 4969 - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", 4970 - "dev": true, 4971 - "license": "ISC", 4972 - "bin": { 4973 - "semver": "bin/semver" 4974 - } 4975 - }, 4976 3791 "node_modules/sentence-case": { 4977 3792 "version": "3.0.4", 4978 3793 "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz", ··· 4991 3806 "integrity": "sha512-oeM1lpU/UvhTxw+g3cIfxXHyJRc/uidd3yK1P242gzHds0udQBYzs3y8j4gCCW+ZJ7ad0yctld8RYO+bdurlvw==", 4992 3807 "license": "MIT" 4993 3808 }, 4994 - "node_modules/set-function-length": { 4995 - "version": "1.2.2", 4996 - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", 4997 - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", 4998 - "dev": true, 4999 - "license": "MIT", 5000 - "dependencies": { 5001 - "define-data-property": "^1.1.4", 5002 - "es-errors": "^1.3.0", 5003 - "function-bind": "^1.1.2", 5004 - "get-intrinsic": "^1.2.4", 5005 - "gopd": "^1.0.1", 5006 - "has-property-descriptors": "^1.0.2" 5007 - }, 5008 - "engines": { 5009 - "node": ">= 0.4" 5010 - } 5011 - }, 5012 - "node_modules/set-function-name": { 5013 - "version": "2.0.2", 5014 - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", 5015 - "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", 5016 - "dev": true, 5017 - "license": "MIT", 5018 - "dependencies": { 5019 - "define-data-property": "^1.1.4", 5020 - "es-errors": "^1.3.0", 5021 - "functions-have-names": "^1.2.3", 5022 - "has-property-descriptors": "^1.0.2" 5023 - }, 5024 - "engines": { 5025 - "node": ">= 0.4" 5026 - } 5027 - }, 5028 - "node_modules/set-proto": { 5029 - "version": "1.0.0", 5030 - "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", 5031 - "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", 5032 - "dev": true, 5033 - "license": "MIT", 5034 - "dependencies": { 5035 - "dunder-proto": "^1.0.1", 5036 - "es-errors": "^1.3.0", 5037 - "es-object-atoms": "^1.0.0" 5038 - }, 5039 - "engines": { 5040 - "node": ">= 0.4" 5041 - } 5042 - }, 5043 3809 "node_modules/sharp": { 5044 3810 "version": "0.34.5", 5045 3811 "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.34.5.tgz", ··· 5099 3865 } 5100 3866 }, 5101 3867 "node_modules/shebang-command": { 5102 - "version": "1.2.0", 5103 - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", 5104 - "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", 3868 + "version": "2.0.0", 3869 + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", 3870 + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", 5105 3871 "dev": true, 5106 3872 "license": "MIT", 5107 3873 "dependencies": { 5108 - "shebang-regex": "^1.0.0" 3874 + "shebang-regex": "^3.0.0" 5109 3875 }, 5110 3876 "engines": { 5111 - "node": ">=0.10.0" 3877 + "node": ">=8" 5112 3878 } 5113 3879 }, 5114 3880 "node_modules/shebang-regex": { 5115 - "version": "1.0.0", 5116 - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", 5117 - "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", 3881 + "version": "3.0.0", 3882 + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", 3883 + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", 5118 3884 "dev": true, 5119 3885 "license": "MIT", 5120 3886 "engines": { 5121 - "node": ">=0.10.0" 3887 + "node": ">=8" 5122 3888 } 5123 3889 }, 5124 3890 "node_modules/shell-quote": { ··· 5134 3900 "url": "https://github.com/sponsors/ljharb" 5135 3901 } 5136 3902 }, 5137 - "node_modules/side-channel": { 5138 - "version": "1.1.0", 5139 - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", 5140 - "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", 5141 - "dev": true, 5142 - "license": "MIT", 5143 - "dependencies": { 5144 - "es-errors": "^1.3.0", 5145 - "object-inspect": "^1.13.3", 5146 - "side-channel-list": "^1.0.0", 5147 - "side-channel-map": "^1.0.1", 5148 - "side-channel-weakmap": "^1.0.2" 5149 - }, 5150 - "engines": { 5151 - "node": ">= 0.4" 5152 - }, 5153 - "funding": { 5154 - "url": "https://github.com/sponsors/ljharb" 5155 - } 5156 - }, 5157 - "node_modules/side-channel-list": { 5158 - "version": "1.0.0", 5159 - "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", 5160 - "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", 5161 - "dev": true, 5162 - "license": "MIT", 5163 - "dependencies": { 5164 - "es-errors": "^1.3.0", 5165 - "object-inspect": "^1.13.3" 5166 - }, 5167 - "engines": { 5168 - "node": ">= 0.4" 5169 - }, 5170 - "funding": { 5171 - "url": "https://github.com/sponsors/ljharb" 5172 - } 5173 - }, 5174 - "node_modules/side-channel-map": { 5175 - "version": "1.0.1", 5176 - "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", 5177 - "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", 5178 - "dev": true, 5179 - "license": "MIT", 5180 - "dependencies": { 5181 - "call-bound": "^1.0.2", 5182 - "es-errors": "^1.3.0", 5183 - "get-intrinsic": "^1.2.5", 5184 - "object-inspect": "^1.13.3" 5185 - }, 5186 - "engines": { 5187 - "node": ">= 0.4" 5188 - }, 5189 - "funding": { 5190 - "url": "https://github.com/sponsors/ljharb" 5191 - } 5192 - }, 5193 - "node_modules/side-channel-weakmap": { 5194 - "version": "1.0.2", 5195 - "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", 5196 - "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", 5197 - "dev": true, 5198 - "license": "MIT", 5199 - "dependencies": { 5200 - "call-bound": "^1.0.2", 5201 - "es-errors": "^1.3.0", 5202 - "get-intrinsic": "^1.2.5", 5203 - "object-inspect": "^1.13.3", 5204 - "side-channel-map": "^1.0.1" 5205 - }, 5206 - "engines": { 5207 - "node": ">= 0.4" 5208 - }, 5209 - "funding": { 5210 - "url": "https://github.com/sponsors/ljharb" 5211 - } 5212 - }, 5213 3903 "node_modules/simport": { 5214 3904 "version": "1.2.0", 5215 3905 "resolved": "https://registry.npmjs.org/simport/-/simport-1.2.0.tgz", ··· 5256 3946 "source-map": "^0.6.0" 5257 3947 } 5258 3948 }, 5259 - "node_modules/spdx-correct": { 5260 - "version": "3.2.0", 5261 - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", 5262 - "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", 5263 - "dev": true, 5264 - "license": "Apache-2.0", 5265 - "dependencies": { 5266 - "spdx-expression-parse": "^3.0.0", 5267 - "spdx-license-ids": "^3.0.0" 5268 - } 5269 - }, 5270 - "node_modules/spdx-exceptions": { 5271 - "version": "2.5.0", 5272 - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", 5273 - "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", 5274 - "dev": true, 5275 - "license": "CC-BY-3.0" 5276 - }, 5277 - "node_modules/spdx-expression-parse": { 5278 - "version": "3.0.1", 5279 - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", 5280 - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", 5281 - "dev": true, 5282 - "license": "MIT", 5283 - "dependencies": { 5284 - "spdx-exceptions": "^2.1.0", 5285 - "spdx-license-ids": "^3.0.0" 5286 - } 5287 - }, 5288 - "node_modules/spdx-license-ids": { 5289 - "version": "3.0.22", 5290 - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.22.tgz", 5291 - "integrity": "sha512-4PRT4nh1EImPbt2jASOKHX7PB7I+e4IWNLvkKFDxNhJlfjbYlleYQh285Z/3mPTHSAK/AvdMmw5BNNuYH8ShgQ==", 5292 - "dev": true, 5293 - "license": "CC0-1.0" 5294 - }, 5295 - "node_modules/stop-iteration-iterator": { 5296 - "version": "1.1.0", 5297 - "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz", 5298 - "integrity": "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==", 5299 - "dev": true, 5300 - "license": "MIT", 5301 - "dependencies": { 5302 - "es-errors": "^1.3.0", 5303 - "internal-slot": "^1.1.0" 5304 - }, 5305 - "engines": { 5306 - "node": ">= 0.4" 5307 - } 5308 - }, 5309 - "node_modules/string.prototype.padend": { 5310 - "version": "3.1.6", 5311 - "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.6.tgz", 5312 - "integrity": "sha512-XZpspuSB7vJWhvJc9DLSlrXl1mcA2BdoY5jjnS135ydXqLoqhs96JjDtCkjJEQHvfqZIp9hBuBMgI589peyx9Q==", 5313 - "dev": true, 5314 - "license": "MIT", 5315 - "dependencies": { 5316 - "call-bind": "^1.0.7", 5317 - "define-properties": "^1.2.1", 5318 - "es-abstract": "^1.23.2", 5319 - "es-object-atoms": "^1.0.0" 5320 - }, 5321 - "engines": { 5322 - "node": ">= 0.4" 5323 - }, 5324 - "funding": { 5325 - "url": "https://github.com/sponsors/ljharb" 5326 - } 5327 - }, 5328 - "node_modules/string.prototype.trim": { 5329 - "version": "1.2.10", 5330 - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", 5331 - "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", 5332 - "dev": true, 5333 - "license": "MIT", 5334 - "dependencies": { 5335 - "call-bind": "^1.0.8", 5336 - "call-bound": "^1.0.2", 5337 - "define-data-property": "^1.1.4", 5338 - "define-properties": "^1.2.1", 5339 - "es-abstract": "^1.23.5", 5340 - "es-object-atoms": "^1.0.0", 5341 - "has-property-descriptors": "^1.0.2" 5342 - }, 5343 - "engines": { 5344 - "node": ">= 0.4" 5345 - }, 5346 - "funding": { 5347 - "url": "https://github.com/sponsors/ljharb" 5348 - } 5349 - }, 5350 - "node_modules/string.prototype.trimend": { 5351 - "version": "1.0.9", 5352 - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", 5353 - "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", 5354 - "dev": true, 5355 - "license": "MIT", 5356 - "dependencies": { 5357 - "call-bind": "^1.0.8", 5358 - "call-bound": "^1.0.2", 5359 - "define-properties": "^1.2.1", 5360 - "es-object-atoms": "^1.0.0" 5361 - }, 5362 - "engines": { 5363 - "node": ">= 0.4" 5364 - }, 5365 - "funding": { 5366 - "url": "https://github.com/sponsors/ljharb" 5367 - } 5368 - }, 5369 - "node_modules/string.prototype.trimstart": { 5370 - "version": "1.0.8", 5371 - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", 5372 - "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", 5373 - "dev": true, 5374 - "license": "MIT", 5375 - "dependencies": { 5376 - "call-bind": "^1.0.7", 5377 - "define-properties": "^1.2.1", 5378 - "es-object-atoms": "^1.0.0" 5379 - }, 5380 - "engines": { 5381 - "node": ">= 0.4" 5382 - }, 5383 - "funding": { 5384 - "url": "https://github.com/sponsors/ljharb" 5385 - } 5386 - }, 5387 - "node_modules/strip-bom": { 5388 - "version": "3.0.0", 5389 - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", 5390 - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", 5391 - "dev": true, 5392 - "license": "MIT", 5393 - "engines": { 5394 - "node": ">=4" 5395 - } 5396 - }, 5397 - "node_modules/supports-color": { 5398 - "version": "5.5.0", 5399 - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 5400 - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 5401 - "dev": true, 5402 - "license": "MIT", 5403 - "dependencies": { 5404 - "has-flag": "^3.0.0" 5405 - }, 5406 - "engines": { 5407 - "node": ">=4" 5408 - } 5409 - }, 5410 - "node_modules/supports-preserve-symlinks-flag": { 5411 - "version": "1.0.0", 5412 - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", 5413 - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", 5414 - "dev": true, 5415 - "license": "MIT", 5416 - "engines": { 5417 - "node": ">= 0.4" 5418 - }, 5419 - "funding": { 5420 - "url": "https://github.com/sponsors/ljharb" 5421 - } 5422 - }, 5423 3949 "node_modules/terser": { 5424 3950 "version": "5.46.0", 5425 3951 "resolved": "https://registry.npmjs.org/terser/-/terser-5.46.0.tgz", ··· 5481 4007 "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", 5482 4008 "license": "0BSD" 5483 4009 }, 5484 - "node_modules/typed-array-buffer": { 5485 - "version": "1.0.3", 5486 - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", 5487 - "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", 5488 - "dev": true, 5489 - "license": "MIT", 5490 - "dependencies": { 5491 - "call-bound": "^1.0.3", 5492 - "es-errors": "^1.3.0", 5493 - "is-typed-array": "^1.1.14" 5494 - }, 5495 - "engines": { 5496 - "node": ">= 0.4" 5497 - } 5498 - }, 5499 - "node_modules/typed-array-byte-length": { 5500 - "version": "1.0.3", 5501 - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", 5502 - "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", 5503 - "dev": true, 5504 - "license": "MIT", 5505 - "dependencies": { 5506 - "call-bind": "^1.0.8", 5507 - "for-each": "^0.3.3", 5508 - "gopd": "^1.2.0", 5509 - "has-proto": "^1.2.0", 5510 - "is-typed-array": "^1.1.14" 5511 - }, 5512 - "engines": { 5513 - "node": ">= 0.4" 5514 - }, 5515 - "funding": { 5516 - "url": "https://github.com/sponsors/ljharb" 5517 - } 5518 - }, 5519 - "node_modules/typed-array-byte-offset": { 5520 - "version": "1.0.4", 5521 - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", 5522 - "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", 5523 - "dev": true, 5524 - "license": "MIT", 5525 - "dependencies": { 5526 - "available-typed-arrays": "^1.0.7", 5527 - "call-bind": "^1.0.8", 5528 - "for-each": "^0.3.3", 5529 - "gopd": "^1.2.0", 5530 - "has-proto": "^1.2.0", 5531 - "is-typed-array": "^1.1.15", 5532 - "reflect.getprototypeof": "^1.0.9" 5533 - }, 5534 - "engines": { 5535 - "node": ">= 0.4" 5536 - }, 5537 - "funding": { 5538 - "url": "https://github.com/sponsors/ljharb" 5539 - } 5540 - }, 5541 - "node_modules/typed-array-length": { 5542 - "version": "1.0.7", 5543 - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", 5544 - "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", 5545 - "dev": true, 5546 - "license": "MIT", 5547 - "dependencies": { 5548 - "call-bind": "^1.0.7", 5549 - "for-each": "^0.3.3", 5550 - "gopd": "^1.0.1", 5551 - "is-typed-array": "^1.1.13", 5552 - "possible-typed-array-names": "^1.0.0", 5553 - "reflect.getprototypeof": "^1.0.6" 5554 - }, 5555 - "engines": { 5556 - "node": ">= 0.4" 5557 - }, 5558 - "funding": { 5559 - "url": "https://github.com/sponsors/ljharb" 5560 - } 5561 - }, 5562 4010 "node_modules/uint8arrays": { 5563 4011 "version": "3.0.0", 5564 4012 "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.0.0.tgz", ··· 5566 4014 "license": "MIT", 5567 4015 "dependencies": { 5568 4016 "multiformats": "^9.4.2" 5569 - } 5570 - }, 5571 - "node_modules/unbox-primitive": { 5572 - "version": "1.1.0", 5573 - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", 5574 - "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", 5575 - "dev": true, 5576 - "license": "MIT", 5577 - "dependencies": { 5578 - "call-bound": "^1.0.3", 5579 - "has-bigints": "^1.0.2", 5580 - "has-symbols": "^1.1.0", 5581 - "which-boxed-primitive": "^1.1.1" 5582 - }, 5583 - "engines": { 5584 - "node": ">= 0.4" 5585 - }, 5586 - "funding": { 5587 - "url": "https://github.com/sponsors/ljharb" 5588 4017 } 5589 4018 }, 5590 4019 "node_modules/undici": { ··· 5666 4095 "uuid": "dist-node/bin/uuid" 5667 4096 } 5668 4097 }, 5669 - "node_modules/validate-npm-package-license": { 5670 - "version": "3.0.4", 5671 - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", 5672 - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", 5673 - "dev": true, 5674 - "license": "Apache-2.0", 5675 - "dependencies": { 5676 - "spdx-correct": "^3.0.0", 5677 - "spdx-expression-parse": "^3.0.0" 5678 - } 5679 - }, 5680 4098 "node_modules/which": { 5681 - "version": "1.3.1", 5682 - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", 5683 - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", 4099 + "version": "5.0.0", 4100 + "resolved": "https://registry.npmjs.org/which/-/which-5.0.0.tgz", 4101 + "integrity": "sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ==", 5684 4102 "dev": true, 5685 4103 "license": "ISC", 5686 4104 "dependencies": { 5687 - "isexe": "^2.0.0" 4105 + "isexe": "^3.1.1" 5688 4106 }, 5689 4107 "bin": { 5690 - "which": "bin/which" 5691 - } 5692 - }, 5693 - "node_modules/which-boxed-primitive": { 5694 - "version": "1.1.1", 5695 - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", 5696 - "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", 5697 - "dev": true, 5698 - "license": "MIT", 5699 - "dependencies": { 5700 - "is-bigint": "^1.1.0", 5701 - "is-boolean-object": "^1.2.1", 5702 - "is-number-object": "^1.1.1", 5703 - "is-string": "^1.1.1", 5704 - "is-symbol": "^1.1.1" 4108 + "node-which": "bin/which.js" 5705 4109 }, 5706 4110 "engines": { 5707 - "node": ">= 0.4" 5708 - }, 5709 - "funding": { 5710 - "url": "https://github.com/sponsors/ljharb" 5711 - } 5712 - }, 5713 - "node_modules/which-builtin-type": { 5714 - "version": "1.2.1", 5715 - "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", 5716 - "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", 5717 - "dev": true, 5718 - "license": "MIT", 5719 - "dependencies": { 5720 - "call-bound": "^1.0.2", 5721 - "function.prototype.name": "^1.1.6", 5722 - "has-tostringtag": "^1.0.2", 5723 - "is-async-function": "^2.0.0", 5724 - "is-date-object": "^1.1.0", 5725 - "is-finalizationregistry": "^1.1.0", 5726 - "is-generator-function": "^1.0.10", 5727 - "is-regex": "^1.2.1", 5728 - "is-weakref": "^1.0.2", 5729 - "isarray": "^2.0.5", 5730 - "which-boxed-primitive": "^1.1.0", 5731 - "which-collection": "^1.0.2", 5732 - "which-typed-array": "^1.1.16" 5733 - }, 5734 - "engines": { 5735 - "node": ">= 0.4" 5736 - }, 5737 - "funding": { 5738 - "url": "https://github.com/sponsors/ljharb" 5739 - } 5740 - }, 5741 - "node_modules/which-collection": { 5742 - "version": "1.0.2", 5743 - "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", 5744 - "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", 5745 - "dev": true, 5746 - "license": "MIT", 5747 - "dependencies": { 5748 - "is-map": "^2.0.3", 5749 - "is-set": "^2.0.3", 5750 - "is-weakmap": "^2.0.2", 5751 - "is-weakset": "^2.0.3" 5752 - }, 5753 - "engines": { 5754 - "node": ">= 0.4" 5755 - }, 5756 - "funding": { 5757 - "url": "https://github.com/sponsors/ljharb" 5758 - } 5759 - }, 5760 - "node_modules/which-typed-array": { 5761 - "version": "1.1.20", 5762 - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.20.tgz", 5763 - "integrity": "sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==", 5764 - "dev": true, 5765 - "license": "MIT", 5766 - "dependencies": { 5767 - "available-typed-arrays": "^1.0.7", 5768 - "call-bind": "^1.0.8", 5769 - "call-bound": "^1.0.4", 5770 - "for-each": "^0.3.5", 5771 - "get-proto": "^1.0.1", 5772 - "gopd": "^1.2.0", 5773 - "has-tostringtag": "^1.0.2" 5774 - }, 5775 - "engines": { 5776 - "node": ">= 0.4" 5777 - }, 5778 - "funding": { 5779 - "url": "https://github.com/sponsors/ljharb" 4111 + "node": "^18.17.0 || >=20.5.0" 5780 4112 } 5781 4113 }, 5782 4114 "node_modules/workerd": {
+4 -2
package.json
··· 34 34 }, 35 35 "dependencies": { 36 36 "@atproto/api": "^0.18.21", 37 + "@hono/standard-validator": "^0.2.2", 37 38 "better-auth": "^1.4.18", 38 39 "better-auth-cloudflare": "^0.2.9", 39 40 "date-fns": "^4.1.0", 40 41 "drizzle-orm": "^0.45.1", 41 42 "hono": "^4.11.10", 43 + "hono-openapi": "^1.2.0", 42 44 "human-id": "^4.1.3", 43 45 "image-dimensions": "^2.5.0", 44 46 "just-flatten-it": "^5.2.0", ··· 56 58 "@types/node": "^24.10.13", 57 59 "drizzle-kit": "^0.31.9", 58 60 "minify": "^14.1.0", 59 - "npm-run-all": "^4.1.5", 60 61 "prettier": "^3.8.1", 61 - "wrangler": "^4.66.0" 62 + "wrangler": "^4.66.0", 63 + "npm-run-all2": "^8.0.4" 62 64 }, 63 65 "engines": { 64 66 "node": ">=24.11.1"
+24 -5
src/endpoints/admin.tsx
··· 8 8 import { makeInviteKey } from "../utils/inviteKeys"; 9 9 import { corsHelperMiddleware } from "../middleware/corsHelper"; 10 10 import { cleanupAbandonedFiles, cleanUpPostsTask, schedulePostTask } from "../utils/scheduler"; 11 + import { openapiRoutes } from "./openapi"; 12 + import { openAPIRouteHandler } from "hono-openapi"; 11 13 12 14 export const admin = new Hono<{ Bindings: Bindings, Variables: ContextVariables }>(); 13 15 14 16 admin.use(secureHeaders()); 15 17 admin.use(corsHelperMiddleware); 18 + admin.use(authAdminOnlyMiddleware); 16 19 17 20 // Generate invites route 18 - admin.get("/invite", authAdminOnlyMiddleware, (c) => { 21 + admin.get("/invite", (c) => { 19 22 const newKey = makeInviteKey(c); 20 23 if (newKey !== null) 21 24 return c.text(`${newKey} is good for ${c.env.SIGNUP_SETTINGS.invite_uses} uses`); ··· 24 27 }); 25 28 26 29 // Admin Maintenance Cleanup 27 - admin.get("/cron", authAdminOnlyMiddleware, async (c) => { 30 + admin.get("/cron", async (c) => { 28 31 await schedulePostTask(c); 29 32 return c.text("ran"); 30 33 }); 31 34 32 - admin.get("/cron-clean", authAdminOnlyMiddleware, (c) => { 35 + admin.get("/cron-clean", (c) => { 33 36 c.executionCtx.waitUntil(cleanUpPostsTask(c)); 34 37 return c.text("ran"); 35 38 }); 36 39 37 - admin.get("/db-update", authAdminOnlyMiddleware, (c) => { 40 + admin.get("/db-update", (c) => { 38 41 c.executionCtx.waitUntil(runMaintenanceUpdates(c)); 39 42 return c.text("ran"); 40 43 }); 41 44 42 - admin.get("/abandoned", authAdminOnlyMiddleware, async (c) => { 45 + admin.get("/abandoned", async (c) => { 43 46 let returnHTML = ""; 44 47 const abandonedFiles: string[] = await getAllAbandonedMedia(c); 45 48 // print out all abandoned files ··· 57 60 58 61 return c.text(returnHTML); 59 62 }); 63 + 64 + ////// OpenAPI Spec for WAF ///// 65 + admin.get('/openapi.json', 66 + openAPIRouteHandler(openapiRoutes, { 67 + documentation: { 68 + info: { 69 + title: 'SkyScheduler API Routes', 70 + version: '1.0.0', 71 + description: 'API Routes', 72 + }, 73 + servers: [ 74 + { url: 'https://skyscheduler.work', description: 'Production Server'} 75 + ], 76 + }, 77 + }) 78 + );
+411
src/endpoints/openapi.tsx
··· 1 + // Shitty file to help with automatically generating endpoint bindings so that we can dump them to the 2 + // Cloudflare WAF to protect/log against abuse 3 + import { Context, Hono } from "hono"; 4 + import { describeRoute, resolver, validator } from "hono-openapi"; 5 + import { ContextVariables } from "../auth"; 6 + import { Bindings } from "../types"; 7 + import { AccountDeleteSchema, AccountForgotSchema } from "../validation/accountForgotDeleteSchema"; 8 + import { AccountResetSchema } from "../validation/accountResetSchema"; 9 + import { AccountUpdateSchema } from "../validation/accountUpdateSchema"; 10 + import { LoginSchema } from "../validation/loginSchema"; 11 + import { FileDeleteSchema } from "../validation/mediaSchema"; 12 + import { EditSchema, PostSchema } from "../validation/postSchema"; 13 + import { RepostSchema } from "../validation/repostSchema"; 14 + import { CheckGUIDSchema, CreateResponseSchema, FileOperationResponseSchema, GenericResponseSchema } from "../validation/responseSchema"; 15 + import { SignupSchema } from "../validation/signupSchema"; 16 + 17 + export const openapiRoutes = new Hono<{ Bindings: Bindings, Variables: ContextVariables }>(); 18 + 19 + openapiRoutes.post("/post/create", describeRoute({ 20 + description: 'Makes a post', 21 + responses: { 22 + 200: { 23 + description: 'Successful post', 24 + content: { 25 + 'application/json': { schema: resolver(CreateResponseSchema) }, 26 + }, 27 + }, 28 + 400: { 29 + description: "Post failed to be created", 30 + content: { 31 + 'application/json': { schema: resolver(GenericResponseSchema) }, 32 + } 33 + }, 34 + 401: { 35 + description: "Post unable to be created now, will try again soon", 36 + content: { 37 + 'application/json': { schema: resolver(GenericResponseSchema) }, 38 + } 39 + }, 40 + 406: { 41 + description: 'Resource busy', 42 + content: { 43 + 'application/json': { schema: resolver(GenericResponseSchema) }, 44 + } 45 + } 46 + }, 47 + }), 48 + validator('json', PostSchema), async (c: Context) => {}); 49 + 50 + openapiRoutes.post("/post/create/repost", describeRoute({ 51 + description: 'Makes a repost post', 52 + responses: { 53 + 200: { 54 + description: 'Successful post', 55 + content: { 56 + 'application/json': { schema: resolver(CreateResponseSchema) }, 57 + }, 58 + }, 59 + 400: { 60 + description: "Repost failed to be created", 61 + content: { 62 + 'application/json': { schema: resolver(GenericResponseSchema) }, 63 + } 64 + }, 65 + 401: { 66 + description: "not logged in" 67 + } 68 + }, 69 + }), 70 + validator('json', RepostSchema), async (c: Context) => {}); 71 + 72 + // Get all posts 73 + openapiRoutes.all("/post/all", describeRoute({ 74 + description: 'Gets all posts for the current account', 75 + responses: { 76 + 200: { 77 + description: 'post list', 78 + content: { 79 + 'text/html': { schema: resolver(CreateResponseSchema) }, 80 + } 81 + }, 82 + 401: { 83 + description: "not logged in" 84 + } 85 + } 86 + }), async (c: Context) => { }); 87 + 88 + // Edit posts 89 + openapiRoutes.get("/post/edit/:id", describeRoute({ 90 + description: 'Gets all posts for the current account', 91 + responses: { 92 + 200: { 93 + description: 'post list', 94 + }, 95 + 400: { 96 + description: "empty body" 97 + }, 98 + 401: { 99 + description: "not logged in" 100 + } 101 + } 102 + }), validator('param', CheckGUIDSchema), async (c: Context) => {}); 103 + 104 + openapiRoutes.post("/post/edit/:id", describeRoute({ 105 + description: "Edits the given post", 106 + responses: { 107 + 200: { 108 + description: "Edit successfully made", 109 + content: { 110 + 'application/json': { schema: resolver(GenericResponseSchema) }, 111 + } 112 + }, 113 + 400: { 114 + description: "Invalid data passed" 115 + }, 116 + 401: { 117 + description: "not logged in" 118 + } 119 + } 120 + }), validator("param", CheckGUIDSchema), validator("json", EditSchema), async (c: Context) => { 121 + }); 122 + 123 + openapiRoutes.get("/post/edit/:id/cancel", describeRoute({ 124 + description: "Cancel editing a post", 125 + responses: { 126 + 200: { 127 + description: "Cancelation processed successfully" 128 + }, 129 + 400: { 130 + description: "Invalid data passed" 131 + }, 132 + 401: { 133 + description: "not logged in" 134 + } 135 + } 136 + }), validator("param", CheckGUIDSchema), async (c: Context) => { 137 + }); 138 + 139 + // delete a post 140 + openapiRoutes.delete("/post/delete/:id", describeRoute({ 141 + description: "Delete the given post", 142 + responses: { 143 + 200: { 144 + description: "command processed" 145 + }, 146 + 400: { 147 + description: "an error occurred" 148 + }, 149 + 401: { 150 + description: "not logged in" 151 + } 152 + } 153 + }), validator("param", CheckGUIDSchema), async (c: Context) => { 154 + }); 155 + 156 + // Create media upload 157 + openapiRoutes.post("/post/upload", describeRoute({ 158 + description: "Uploads a file to the service", 159 + responses: { 160 + 200: { 161 + description: "Successfully uploaded", 162 + content: { 163 + 'application/json': { schema: resolver(FileOperationResponseSchema) }, 164 + }, 165 + }, 166 + 400: { 167 + description: "Failed to upload", 168 + content: { 169 + "application/json": { schema: resolver(FileOperationResponseSchema)} 170 + } 171 + }, 172 + 401: { 173 + description: "not logged in" 174 + } 175 + } 176 + }), async (c: Context) => { 177 + 178 + }); 179 + 180 + // Delete an upload 181 + openapiRoutes.delete("/post/upload", describeRoute({ 182 + description: "Deletes a file to the service", 183 + responses: { 184 + 200: { 185 + description: "File deleted successfully", 186 + content: { 187 + "application/json": { schema: resolver(FileOperationResponseSchema)} 188 + } 189 + }, 190 + 401: { 191 + description: "not logged in" 192 + }, 193 + 402: { 194 + description: "Invalid operation performed", 195 + content: { 196 + "application/json": { schema: resolver(FileOperationResponseSchema)} 197 + } 198 + } 199 + } 200 + }), validator("json", FileDeleteSchema), async (c: Context) => { 201 + }); 202 + 203 + // wrapper to login 204 + openapiRoutes.post("/account/login", describeRoute({ 205 + description: "Logs in the user", 206 + responses: { 207 + 200: { 208 + description: "Login Success", 209 + content: { 210 + "application/json": { schema: resolver(GenericResponseSchema)} 211 + } 212 + }, 213 + 400: { 214 + description: "Invalid data", 215 + content: { 216 + "application/json": { schema: resolver(GenericResponseSchema)} 217 + } 218 + }, 219 + 401: { 220 + description: "Failed to login", 221 + content: { 222 + "application/json": { schema: resolver(GenericResponseSchema)} 223 + } 224 + }, 225 + 404: { 226 + description: "Unknown error", 227 + content: { 228 + "application/json": { schema: resolver(GenericResponseSchema)} 229 + } 230 + }, 231 + } 232 + }), validator("json", LoginSchema), async (c) => { 233 + }); 234 + 235 + openapiRoutes.post("/account/update", describeRoute({ 236 + description: "Updates account settings", 237 + responses: { 238 + 200: { 239 + description: "Success" 240 + }, 241 + 201: { 242 + description: "no changes" 243 + }, 244 + 400: { 245 + description: "failed" 246 + }, 247 + 401: { 248 + description: "not logged in" 249 + } 250 + } 251 + }), validator("form", AccountUpdateSchema, undefined, { media: "application/x-www-form-urlencoded" }), async (c) => { 252 + }); 253 + 254 + // endpoint that just returns current username 255 + openapiRoutes.get("/account/username", describeRoute({ 256 + description: "Gets the current username for the user", 257 + responses: { 258 + 200: { 259 + description: "success" 260 + }, 261 + 401: { 262 + description: "not logged in" 263 + } 264 + } 265 + }), async (c) => { 266 + }); 267 + 268 + // endpoint that returns any violations 269 + openapiRoutes.get("/account/violations", describeRoute({ 270 + description: "Gets the current violations for the user", 271 + responses: { 272 + 200: { 273 + description: "success" 274 + }, 275 + 401: { 276 + description: "not logged in" 277 + } 278 + } 279 + }), async (c) => { 280 + }) 281 + 282 + // proxy the logout call because of course this wouldn't work properly anyways 283 + openapiRoutes.post("/account/logout", describeRoute({ 284 + description: "Logs out the user", 285 + responses: { 286 + 200: { 287 + description: "logged out" 288 + }, 289 + 401: { 290 + description: "not logged in" 291 + } 292 + } 293 + }), async (c) => { 294 + }); 295 + 296 + openapiRoutes.post("/account/signup", describeRoute({ 297 + description: "sign up for an account", 298 + responses: { 299 + 200: { 300 + description: "successfully signed up", 301 + content: { 302 + 'application/json': { schema: resolver(GenericResponseSchema) }, 303 + } 304 + }, 305 + 400: { 306 + description: "invalid data", 307 + content: { 308 + 'application/json': { schema: resolver(GenericResponseSchema) }, 309 + } 310 + }, 311 + 401: { 312 + description: "failed turnstile", 313 + content: { 314 + 'application/json': { schema: resolver(GenericResponseSchema) }, 315 + } 316 + }, 317 + 500: { 318 + description: "internal error", 319 + content: { 320 + 'application/json': { schema: resolver(GenericResponseSchema) }, 321 + } 322 + } 323 + } 324 + }), validator("json", SignupSchema), async (c: Context) => { 325 + }); 326 + 327 + openapiRoutes.post("/account/forgot", describeRoute({ 328 + description: "attempt to get a password reset message", 329 + responses: { 330 + 200: { 331 + description: "successfully sent message", 332 + content: { 333 + 'application/json': { schema: resolver(GenericResponseSchema) }, 334 + } 335 + }, 336 + 400: { 337 + description: "invalid data", 338 + content: { 339 + 'application/json': { schema: resolver(GenericResponseSchema) }, 340 + } 341 + }, 342 + 401: { 343 + description: "failed turnstile", 344 + content: { 345 + 'application/json': { schema: resolver(GenericResponseSchema) }, 346 + } 347 + }, 348 + 500: { 349 + description: "internal error", 350 + content: { 351 + 'application/json': { schema: resolver(GenericResponseSchema) }, 352 + } 353 + } 354 + } 355 + }), validator("json", AccountForgotSchema), async (c: Context) => { 356 + }); 357 + 358 + openapiRoutes.post("/account/reset", describeRoute({ 359 + description: "attempt to reset password", 360 + responses: { 361 + 200: { 362 + description: "successfully reset password", 363 + content: { 364 + 'application/json': { schema: resolver(GenericResponseSchema) }, 365 + } 366 + }, 367 + 400: { 368 + description: "invalid data", 369 + content: { 370 + 'application/json': { schema: resolver(GenericResponseSchema) }, 371 + } 372 + }, 373 + 401: { 374 + description: "incorrect user/pw", 375 + content: { 376 + 'application/json': { schema: resolver(GenericResponseSchema) }, 377 + } 378 + }, 379 + 500: { 380 + description: "internal error", 381 + content: { 382 + 'application/json': { schema: resolver(GenericResponseSchema) }, 383 + } 384 + } 385 + } 386 + }), validator("json", AccountResetSchema), async (c: Context) => { 387 + 388 + }); 389 + 390 + openapiRoutes.post("/account/delete", describeRoute({ 391 + description: "attempt to delete the current account", 392 + responses: { 393 + 200: { 394 + description: "account deleted", 395 + }, 396 + 400: { 397 + description: "invalid data", 398 + }, 399 + 401: { 400 + description: "incorrect user/pw", 401 + }, 402 + 501: { 403 + description: "internal error", 404 + } 405 + } 406 + }), validator("form", AccountDeleteSchema, undefined, { media: "application/x-www-form-urlencoded" }), async (c) => { 407 + }); 408 + 409 + openapiRoutes.get("/preview/file/:id", describeRoute({ 410 + description: "preview a file", 411 + }), validator("param", CheckGUIDSchema));
+28
src/validation/responseSchema.ts
··· 1 + import * as z from "zod/v4"; 2 + import { fileKeyRegex } from "./regexCases"; 3 + 4 + // Our json response objects 5 + export const GenericResponseSchema = z.object({ 6 + ok: z.boolean(), 7 + msg: z.string() 8 + }); 9 + 10 + export const CreateResponseSchema = z.object({ 11 + ...GenericResponseSchema.shape, 12 + id: z.uuidv4(), 13 + }); 14 + 15 + export const CheckGUIDSchema = z.object({ 16 + id: z.uuidv4() 17 + }); 18 + 19 + export const CheckFileSchema = z.object({ 20 + id: z.string().toLowerCase() 21 + .regex(fileKeyRegex) 22 + .nonempty() 23 + }); 24 + 25 + export const FileOperationResponseSchema = z.object({ 26 + success: z.boolean(), 27 + error: z.string().optional() 28 + });