Non-official site for The Life Series Minecraft hardcore survival multiplayer series housing every video www.life-series.online
0
fork

Configure Feed

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

Prepare for rewrite (#47)

* deps: Add node

* Make site SSR and add rewrite cookie that 404s existing pages

* Disallow /rewrite/ routes from crawlers

* deps: update packages

* use vercel adapter instead of node

authored by

Ghustvn and committed by
GitHub
02189b90 46e80a3e

+907 -282
+3
astro.config.mjs
··· 1 1 // @ts-check 2 2 import { defineConfig } from 'astro/config'; 3 + import vercel from '@astrojs/vercel'; 3 4 import sitemap from '@astrojs/sitemap'; 4 5 import tailwindcss from '@tailwindcss/vite'; 5 6 import og from 'astro-og'; ··· 20 21 cssMinify: 'lightningcss', 21 22 }, 22 23 }, 24 + adapter: vercel(), 25 + output: 'server', 23 26 });
+3 -2
package.json
··· 11 11 }, 12 12 "dependencies": { 13 13 "@astro-community/astro-embed-youtube": "^0.5.9", 14 - "@astrojs/sitemap": "^3.6.0", 14 + "@astrojs/sitemap": "^3.6.1", 15 + "@astrojs/vercel": "^9.0.3", 15 16 "@tailwindcss/vite": "^4.1.17", 16 - "astro": "^5.15.7", 17 + "astro": "^5.16.8", 17 18 "astro-capo": "^0.0.1", 18 19 "astro-og": "^0.3.0", 19 20 "astro-seo": "^0.8.4",
+726 -180
pnpm-lock.yaml
··· 10 10 dependencies: 11 11 '@astro-community/astro-embed-youtube': 12 12 specifier: ^0.5.9 13 - version: 0.5.9(astro@5.15.7(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.53.2)(typescript@5.9.3)(yaml@2.8.1)) 13 + version: 0.5.9(astro@5.16.8(@types/node@24.10.1)(@vercel/functions@2.2.13)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.53.2)(typescript@5.9.3)(yaml@2.8.1)) 14 14 '@astrojs/sitemap': 15 - specifier: ^3.6.0 16 - version: 3.6.0 15 + specifier: ^3.6.1 16 + version: 3.6.1 17 + '@astrojs/vercel': 18 + specifier: ^9.0.3 19 + version: 9.0.3(astro@5.16.8(@types/node@24.10.1)(@vercel/functions@2.2.13)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.53.2)(typescript@5.9.3)(yaml@2.8.1))(rollup@4.53.2) 17 20 '@tailwindcss/vite': 18 21 specifier: ^4.1.17 19 22 version: 4.1.17(vite@6.4.1(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1)) 20 23 astro: 21 - specifier: ^5.15.7 22 - version: 5.15.7(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.53.2)(typescript@5.9.3)(yaml@2.8.1) 24 + specifier: ^5.16.8 25 + version: 5.16.8(@types/node@24.10.1)(@vercel/functions@2.2.13)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.53.2)(typescript@5.9.3)(yaml@2.8.1) 23 26 astro-capo: 24 27 specifier: ^0.0.1 25 - version: 0.0.1(astro@5.15.7(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.53.2)(typescript@5.9.3)(yaml@2.8.1)) 28 + version: 0.0.1(astro@5.16.8(@types/node@24.10.1)(@vercel/functions@2.2.13)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.53.2)(typescript@5.9.3)(yaml@2.8.1)) 26 29 astro-og: 27 30 specifier: ^0.3.0 28 - version: 0.3.0(astro@5.15.7(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.53.2)(typescript@5.9.3)(yaml@2.8.1)) 31 + version: 0.3.0(astro@5.16.8(@types/node@24.10.1)(@vercel/functions@2.2.13)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.53.2)(typescript@5.9.3)(yaml@2.8.1)) 29 32 astro-seo: 30 33 specifier: ^0.8.4 31 34 version: 0.8.4(prettier-plugin-astro@0.14.1)(prettier@3.6.2)(typescript@5.9.3) ··· 65 68 '@astrojs/compiler@2.13.0': 66 69 resolution: {integrity: sha512-mqVORhUJViA28fwHYaWmsXSzLO9osbdZ5ImUfxBarqsYdMlPbqAqGJCxsNzvppp1BEzc1mJNjOVvQqeDN8Vspw==} 67 70 68 - '@astrojs/internal-helpers@0.7.4': 69 - resolution: {integrity: sha512-lDA9MqE8WGi7T/t2BMi+EAXhs4Vcvr94Gqx3q15cFEz8oFZMO4/SFBqYr/UcmNlvW+35alowkVj+w9VhLvs5Cw==} 71 + '@astrojs/internal-helpers@0.7.5': 72 + resolution: {integrity: sha512-vreGnYSSKhAjFJCWAwe/CNhONvoc5lokxtRoZims+0wa3KbHBdPHSSthJsKxPd8d/aic6lWKpRTYGY/hsgK6EA==} 70 73 71 74 '@astrojs/language-server@2.16.0': 72 75 resolution: {integrity: sha512-oX2KkuIfEEM5d4/+lfuxy6usRDYko0S02YvtHFTrnqW0h9e4ElAfWZRKyqxWlwpuPdciBPKef5YJ7DFH3PPssw==} ··· 80 83 prettier-plugin-astro: 81 84 optional: true 82 85 83 - '@astrojs/markdown-remark@6.3.8': 84 - resolution: {integrity: sha512-uFNyFWadnULWK2cOw4n0hLKeu+xaVWeuECdP10cQ3K2fkybtTlhb7J7TcScdjmS8Yps7oje9S/ehYMfZrhrgCg==} 86 + '@astrojs/markdown-remark@6.3.10': 87 + resolution: {integrity: sha512-kk4HeYR6AcnzC4QV8iSlOfh+N8TZ3MEStxPyenyCtemqn8IpEATBFMTJcfrNW32dgpt6MY3oCkMM/Tv3/I4G3A==} 85 88 86 89 '@astrojs/prism@3.3.0': 87 90 resolution: {integrity: sha512-q8VwfU/fDZNoDOf+r7jUnMC2//H2l0TuQ6FkGJL8vD8nw/q5KiL3DS1KKBI3QhI9UQhpJ5dc7AtqfbXWuOgLCQ==} 88 91 engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0} 89 92 90 - '@astrojs/sitemap@3.6.0': 91 - resolution: {integrity: sha512-4aHkvcOZBWJigRmMIAJwRQXBS+ayoP5z40OklTXYXhUDhwusz+DyDl+nSshY6y9DvkVEavwNcFO8FD81iGhXjg==} 93 + '@astrojs/sitemap@3.6.1': 94 + resolution: {integrity: sha512-+o+TbxXqQJAOd+HxCjz/5RdAMrRFGjeuO+U6zddUuTO59WqMqXnsc8uveRiEr2Ff+3McZiEne7iG4J5cnuI6kA==} 92 95 93 96 '@astrojs/telemetry@3.3.0': 94 97 resolution: {integrity: sha512-UFBgfeldP06qu6khs/yY+q1cDAaArM2/7AEIqQ9Cuvf7B1hNLq0xDrZkct+QoIGyjq56y8IaE2I3CTvG99mlhQ==} 95 98 engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0} 96 99 100 + '@astrojs/vercel@9.0.3': 101 + resolution: {integrity: sha512-GVGNjuRqBco2mTfvPRFNEdYZeDIviBIJoEpeWfCnWBvQf9h72cYZ0sd0QHCPGca9SRR+C4cE+TqhiOgJtSs7GQ==} 102 + peerDependencies: 103 + astro: ^5.0.0 104 + 97 105 '@astrojs/yaml2ts@0.2.2': 98 106 resolution: {integrity: sha512-GOfvSr5Nqy2z5XiwqTouBBpy5FyI6DEe+/g/Mk5am9SjILN1S5fOEvYK0GuWHg98yS/dobP4m8qyqw/URW35fQ==} 99 107 ··· 114 122 resolution: {integrity: sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==} 115 123 engines: {node: '>=6.9.0'} 116 124 117 - '@capsizecss/unpack@3.0.1': 118 - resolution: {integrity: sha512-8XqW8xGn++Eqqbz3e9wKuK7mxryeRjs4LOHLxbh2lwKeSbuNR4NFifDZT4KzvjU6HMOPbiNTsWpniK5EJfTWkg==} 125 + '@capsizecss/unpack@4.0.0': 126 + resolution: {integrity: sha512-VERIM64vtTP1C4mxQ5thVT9fK0apjPFobqybMtA1UdUujWka24ERHbRHFGmpbbhp73MhV+KSsHQH9C6uOTdEQA==} 119 127 engines: {node: '>=18'} 120 128 121 129 '@emmetio/abbreviation@2.3.3': ··· 436 444 cpu: [x64] 437 445 os: [win32] 438 446 447 + '@isaacs/cliui@8.0.2': 448 + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} 449 + engines: {node: '>=12'} 450 + 451 + '@isaacs/fs-minipass@4.0.1': 452 + resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==} 453 + engines: {node: '>=18.0.0'} 454 + 439 455 '@jridgewell/gen-mapping@0.3.13': 440 456 resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} 441 457 ··· 452 468 '@jridgewell/trace-mapping@0.3.31': 453 469 resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} 454 470 471 + '@mapbox/node-pre-gyp@2.0.3': 472 + resolution: {integrity: sha512-uwPAhccfFJlsfCxMYTwOdVfOz3xqyj8xYL3zJj8f0pb30tLohnnFPhLuqp4/qoEz8sNxe4SESZedcBojRefIzg==} 473 + engines: {node: '>=18'} 474 + hasBin: true 475 + 455 476 '@nodelib/fs.scandir@2.1.5': 456 477 resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 457 478 engines: {node: '>= 8'} ··· 466 487 467 488 '@oslojs/encoding@1.1.0': 468 489 resolution: {integrity: sha512-70wQhgYmndg4GCPxPPxPGevRKqTIJ2Nh4OkiMWmDAVYsTQ+Ta7Sq+rPevXyXGdzr30/qZBnyOalCszoMxlyldQ==} 490 + 491 + '@pkgjs/parseargs@0.11.0': 492 + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} 493 + engines: {node: '>=14'} 469 494 470 495 '@rollup/pluginutils@5.3.0': 471 496 resolution: {integrity: sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==} ··· 586 611 cpu: [x64] 587 612 os: [win32] 588 613 589 - '@shikijs/core@3.15.0': 590 - resolution: {integrity: sha512-8TOG6yG557q+fMsSVa8nkEDOZNTSxjbbR8l6lF2gyr6Np+jrPlslqDxQkN6rMXCECQ3isNPZAGszAfYoJOPGlg==} 614 + '@shikijs/core@3.21.0': 615 + resolution: {integrity: sha512-AXSQu/2n1UIQekY8euBJlvFYZIw0PHY63jUzGbrOma4wPxzznJXTXkri+QcHeBNaFxiiOljKxxJkVSoB3PjbyA==} 591 616 592 - '@shikijs/engine-javascript@3.15.0': 593 - resolution: {integrity: sha512-ZedbOFpopibdLmvTz2sJPJgns8Xvyabe2QbmqMTz07kt1pTzfEvKZc5IqPVO/XFiEbbNyaOpjPBkkr1vlwS+qg==} 617 + '@shikijs/engine-javascript@3.21.0': 618 + resolution: {integrity: sha512-ATwv86xlbmfD9n9gKRiwuPpWgPENAWCLwYCGz9ugTJlsO2kOzhOkvoyV/UD+tJ0uT7YRyD530x6ugNSffmvIiQ==} 594 619 595 - '@shikijs/engine-oniguruma@3.15.0': 596 - resolution: {integrity: sha512-HnqFsV11skAHvOArMZdLBZZApRSYS4LSztk2K3016Y9VCyZISnlYUYsL2hzlS7tPqKHvNqmI5JSUJZprXloMvA==} 620 + '@shikijs/engine-oniguruma@3.21.0': 621 + resolution: {integrity: sha512-OYknTCct6qiwpQDqDdf3iedRdzj6hFlOPv5hMvI+hkWfCKs5mlJ4TXziBG9nyabLwGulrUjHiCq3xCspSzErYQ==} 597 622 598 - '@shikijs/langs@3.15.0': 599 - resolution: {integrity: sha512-WpRvEFvkVvO65uKYW4Rzxs+IG0gToyM8SARQMtGGsH4GDMNZrr60qdggXrFOsdfOVssG/QQGEl3FnJ3EZ+8w8A==} 623 + '@shikijs/langs@3.21.0': 624 + resolution: {integrity: sha512-g6mn5m+Y6GBJ4wxmBYqalK9Sp0CFkUqfNzUy2pJglUginz6ZpWbaWjDB4fbQ/8SHzFjYbtU6Ddlp1pc+PPNDVA==} 600 625 601 - '@shikijs/themes@3.15.0': 602 - resolution: {integrity: sha512-8ow2zWb1IDvCKjYb0KiLNrK4offFdkfNVPXb1OZykpLCzRU6j+efkY+Y7VQjNlNFXonSw+4AOdGYtmqykDbRiQ==} 626 + '@shikijs/themes@3.21.0': 627 + resolution: {integrity: sha512-BAE4cr9EDiZyYzwIHEk7JTBJ9CzlPuM4PchfcA5ao1dWXb25nv6hYsoDiBq2aZK9E3dlt3WB78uI96UESD+8Mw==} 603 628 604 - '@shikijs/types@3.15.0': 605 - resolution: {integrity: sha512-BnP+y/EQnhihgHy4oIAN+6FFtmfTekwOLsQbRw9hOKwqgNy8Bdsjq8B05oAt/ZgvIWWFrshV71ytOrlPfYjIJw==} 629 + '@shikijs/types@3.21.0': 630 + resolution: {integrity: sha512-zGrWOxZ0/+0ovPY7PvBU2gIS9tmhSUUt30jAcNV0Bq0gb2S98gwfjIs1vxlmH5zM7/4YxLamT6ChlqqAJmPPjA==} 606 631 607 632 '@shikijs/vscode-textmate@10.0.2': 608 633 resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} 609 - 610 - '@swc/helpers@0.5.17': 611 - resolution: {integrity: sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A==} 612 634 613 635 '@tailwindcss/node@4.1.17': 614 636 resolution: {integrity: sha512-csIkHIgLb3JisEFQ0vxr2Y57GUNYh447C8xzwj89U/8fdW8LhProdxvnVH6U8M2Y73QKiTIH+LWbK3V2BBZsAg==} ··· 706 728 '@types/estree@1.0.8': 707 729 resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} 708 730 709 - '@types/fontkit@2.0.8': 710 - resolution: {integrity: sha512-wN+8bYxIpJf+5oZdrdtaX04qUuWHcKxcDEgRS9Qm9ZClSHjzEn13SxUC+5eRM+4yXIeTYk8mTzLAWGF64847ew==} 711 - 712 731 '@types/hast@3.0.4': 713 732 resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} 714 733 ··· 736 755 '@ungap/structured-clone@1.3.0': 737 756 resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} 738 757 758 + '@vercel/analytics@1.6.1': 759 + resolution: {integrity: sha512-oH9He/bEM+6oKlv3chWuOOcp8Y6fo6/PSro8hEkgCW3pu9/OiCXiUpRUogDh3Fs3LH2sosDrx8CxeOLBEE+afg==} 760 + peerDependencies: 761 + '@remix-run/react': ^2 762 + '@sveltejs/kit': ^1 || ^2 763 + next: '>= 13' 764 + react: ^18 || ^19 || ^19.0.0-rc 765 + svelte: '>= 4' 766 + vue: ^3 767 + vue-router: ^4 768 + peerDependenciesMeta: 769 + '@remix-run/react': 770 + optional: true 771 + '@sveltejs/kit': 772 + optional: true 773 + next: 774 + optional: true 775 + react: 776 + optional: true 777 + svelte: 778 + optional: true 779 + vue: 780 + optional: true 781 + vue-router: 782 + optional: true 783 + 784 + '@vercel/functions@2.2.13': 785 + resolution: {integrity: sha512-14ArBSIIcOBx9nrEgaJb4Bw+en1gl6eSoJWh8qjifLl5G3E4dRXCFOT8HP+w66vb9Wqyd1lAQBrmRhRwOj9X9A==} 786 + engines: {node: '>= 18'} 787 + peerDependencies: 788 + '@aws-sdk/credential-provider-web-identity': '*' 789 + peerDependenciesMeta: 790 + '@aws-sdk/credential-provider-web-identity': 791 + optional: true 792 + 793 + '@vercel/nft@0.30.4': 794 + resolution: {integrity: sha512-wE6eAGSXScra60N2l6jWvNtVK0m+sh873CpfZW4KI2v8EHuUQp+mSEi4T+IcdPCSEDgCdAS/7bizbhQlkjzrSA==} 795 + engines: {node: '>=18'} 796 + hasBin: true 797 + 798 + '@vercel/oidc@2.0.2': 799 + resolution: {integrity: sha512-59PBFx3T+k5hLTEWa3ggiMpGRz1OVvl9eN8SUai+A43IsqiOuAe7qPBf+cray/Fj6mkgnxm/D7IAtjc8zSHi7g==} 800 + engines: {node: '>= 18'} 801 + 802 + '@vercel/routing-utils@5.3.1': 803 + resolution: {integrity: sha512-HlqFRdB6Dm20xgEWtEatchf9X28NifweXPdDoEGyj5ItngaiqpywtkgkuiAk3xK9eAu2oXM36wEJbDDTxMblUg==} 804 + 739 805 '@volar/kit@2.4.23': 740 806 resolution: {integrity: sha512-YuUIzo9zwC2IkN7FStIcVl1YS9w5vkSFEZfPvnu0IbIMaR9WHhc9ZxvlT+91vrcSoRY469H2jwbrGqpG7m1KaQ==} 741 807 peerDependencies: ··· 762 828 '@vscode/l10n@0.0.18': 763 829 resolution: {integrity: sha512-KYSIHVmslkaCDyw013pphY+d7x1qV8IZupYfeIfzNA+nsaWHbn5uPuQRvdRFsa9zFzGeudPuoGoZ1Op4jrJXIQ==} 764 830 831 + abbrev@3.0.1: 832 + resolution: {integrity: sha512-AO2ac6pjRB3SJmGJo+v5/aK6Omggp6fsLrs6wN9bd35ulu4cCwaAU9+7ZhXjeqHVkaHThLuzH0nZr0YpCDhygg==} 833 + engines: {node: ^18.17.0 || >=20.5.0} 834 + 835 + acorn-import-attributes@1.9.5: 836 + resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} 837 + peerDependencies: 838 + acorn: ^8 839 + 765 840 acorn@8.15.0: 766 841 resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} 767 842 engines: {node: '>=0.4.0'} 768 843 hasBin: true 769 844 845 + agent-base@7.1.4: 846 + resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} 847 + engines: {node: '>= 14'} 848 + 770 849 ajv-draft-04@1.0.0: 771 850 resolution: {integrity: sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==} 772 851 peerDependencies: ··· 774 853 peerDependenciesMeta: 775 854 ajv: 776 855 optional: true 856 + 857 + ajv@6.12.6: 858 + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} 777 859 778 860 ajv@8.17.1: 779 861 resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} ··· 827 909 astro-seo@0.8.4: 828 910 resolution: {integrity: sha512-Ou1vzQSXAxa0K8rtNtXNvSpYqOGEgMhh0immMxJeXmbVZac3UKCNWAoXWyOQDFYsZvBugCRSg0N1phBqPMVgCw==} 829 911 830 - astro@5.15.7: 831 - resolution: {integrity: sha512-Zmw6otInhxcjoGcEyEN+wxgdiQERQOS3VzOmAKsDdKK8Fb4x1656r+9NtaTXCRZ0/fGtHjkSvkGUhZUJLXKfxQ==} 912 + astro@5.16.8: 913 + resolution: {integrity: sha512-gzZE+epuCrNuxOa8/F1dzkllDOFvxWhGeobQKeBRIAef5sUpUKMHZo/8clse+02rYnKJCgwXBgjW4uTu9mqUUw==} 832 914 engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0'} 833 915 hasBin: true 834 916 917 + async-sema@3.1.1: 918 + resolution: {integrity: sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==} 919 + 835 920 axobject-query@4.1.0: 836 921 resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} 837 922 engines: {node: '>= 0.4'} ··· 839 924 bail@2.0.2: 840 925 resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} 841 926 927 + balanced-match@1.0.2: 928 + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 929 + 842 930 base-64@1.0.0: 843 931 resolution: {integrity: sha512-kwDPIFCGx0NZHog36dj+tHiwP4QMzsZ3AgMViUBKI0+V5n4U0ufTCUMhnQ04diaRI8EX/QcPfql7zlhZ7j4zgg==} 844 - 845 - base64-js@1.5.1: 846 - resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} 847 932 848 933 binary-extensions@2.3.0: 849 934 resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} 850 935 engines: {node: '>=8'} 851 936 937 + bindings@1.5.0: 938 + resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} 939 + 940 + boolbase@1.0.0: 941 + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} 942 + 852 943 boxen@8.0.1: 853 944 resolution: {integrity: sha512-F3PH5k5juxom4xktynS7MoFY+NUWH5LC4CnH11YB8NPew+HLpmBLCybSAEyb2F+4pRXhuhWqFesoQd6DAyc2hw==} 854 945 engines: {node: '>=18'} 855 946 947 + brace-expansion@2.0.2: 948 + resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} 949 + 856 950 braces@3.0.3: 857 951 resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} 858 952 engines: {node: '>=8'} 859 953 860 - brotli@1.3.3: 861 - resolution: {integrity: sha512-oTKjJdShmDuGW94SyyaoQvAjf30dZaHnjJ8uAF+u2/vGJkJbJPJAT1gDiOJP5v1Zb6f9KEyW/1HpuaWIXtGHPg==} 862 - 863 954 camelcase@8.0.0: 864 955 resolution: {integrity: sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==} 865 956 engines: {node: '>=16'} ··· 888 979 resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} 889 980 engines: {node: '>= 14.16.0'} 890 981 982 + chownr@3.0.0: 983 + resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==} 984 + engines: {node: '>=18'} 985 + 891 986 ci-info@4.3.1: 892 987 resolution: {integrity: sha512-Wdy2Igu8OcBpI2pZePZ5oWjPC38tmDVx5WKUXKwlLYkA0ozo85sLsLvkBbBn/sZaSCMFOGZJ14fvW9t5/d7kdA==} 893 988 engines: {node: '>=8'} ··· 900 995 resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} 901 996 engines: {node: '>=12'} 902 997 903 - clone@2.1.2: 904 - resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==} 905 - engines: {node: '>=0.8'} 906 - 907 998 clsx@2.1.1: 908 999 resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} 909 1000 engines: {node: '>=6'} ··· 917 1008 918 1009 comma-separated-tokens@2.0.3: 919 1010 resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} 1011 + 1012 + commander@11.1.0: 1013 + resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==} 1014 + engines: {node: '>=16'} 920 1015 921 1016 common-ancestor-path@1.0.1: 922 1017 resolution: {integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==} 923 1018 1019 + consola@3.4.2: 1020 + resolution: {integrity: sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==} 1021 + engines: {node: ^14.18.0 || >=16.10.0} 1022 + 924 1023 cookie-es@1.2.2: 925 1024 resolution: {integrity: sha512-+W7VmiVINB+ywl1HGXJXmrqkOhpKrIiVZV6tQuV54ZyQC7MMuBt81Vc336GMLoHBq5hV/F9eXgt5Mnx0Rha5Fg==} 926 1025 927 - cookie@1.0.2: 928 - resolution: {integrity: sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==} 1026 + cookie@1.1.1: 1027 + resolution: {integrity: sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==} 929 1028 engines: {node: '>=18'} 930 1029 1030 + cross-spawn@7.0.6: 1031 + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} 1032 + engines: {node: '>= 8'} 1033 + 931 1034 crossws@0.3.5: 932 1035 resolution: {integrity: sha512-ojKiDvcmByhwa8YYqbQI/hg7MEU0NC03+pSdEq4ZUnZR9xXpwk7E43SMNGkn+JxJGPFtNvQ48+vV2p+P1ml5PA==} 933 1036 1037 + css-select@5.2.2: 1038 + resolution: {integrity: sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==} 1039 + 1040 + css-tree@2.2.1: 1041 + resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==} 1042 + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} 1043 + 934 1044 css-tree@3.1.0: 935 1045 resolution: {integrity: sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==} 936 1046 engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} 937 1047 1048 + css-what@6.2.2: 1049 + resolution: {integrity: sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==} 1050 + engines: {node: '>= 6'} 1051 + 938 1052 cssesc@3.0.0: 939 1053 resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} 940 1054 engines: {node: '>=4'} 941 1055 hasBin: true 1056 + 1057 + csso@5.0.5: 1058 + resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==} 1059 + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} 942 1060 943 1061 debug@4.4.3: 944 1062 resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} ··· 970 1088 resolution: {integrity: sha512-KxektNH63SrbfUyDiwXqRb1rLwKt33AmMv+5Nhsw1kqZ13SJBRTgZHtGbE+hH3a1mVW1cz+4pqSWVPAtLVXTzQ==} 971 1089 engines: {node: '>=18'} 972 1090 973 - devalue@5.5.0: 974 - resolution: {integrity: sha512-69sM5yrHfFLJt0AZ9QqZXGCPfJ7fQjvpln3Rq5+PS03LD32Ost1Q9N+eEnaQwGRIriKkMImXD56ocjQmfjbV3w==} 1091 + devalue@5.6.1: 1092 + resolution: {integrity: sha512-jDwizj+IlEZBunHcOuuFVBnIMPAEHvTsJj0BcIp94xYguLRVBcXO853px/MyIJvbVzWdsGvrRweIUWJw8hBP7A==} 975 1093 976 1094 devlop@1.1.0: 977 1095 resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} 978 - 979 - dfa@1.2.0: 980 - resolution: {integrity: sha512-ED3jP8saaweFTjeGX8HQPjeC1YYyZs98jGNZx6IiBvxW7JG5v492kamAQB3m2wop07CvU/RQmzcKr6bgcC5D/Q==} 981 1096 982 1097 diff@5.2.0: 983 1098 resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} ··· 986 1101 dlv@1.1.3: 987 1102 resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} 988 1103 1104 + dom-serializer@2.0.0: 1105 + resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} 1106 + 1107 + domelementtype@2.3.0: 1108 + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} 1109 + 1110 + domhandler@5.0.3: 1111 + resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} 1112 + engines: {node: '>= 4'} 1113 + 1114 + domutils@3.2.2: 1115 + resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==} 1116 + 989 1117 dset@3.1.4: 990 1118 resolution: {integrity: sha512-2QF/g9/zTaPDc3BjNcVTGoBbXBgYfMTTceLaYcFJ/W9kggFUkhxD/hMEeuLKbugyef9SqAx8cpgwlIP/jinUTA==} 991 1119 engines: {node: '>=4'} 1120 + 1121 + eastasianwidth@0.2.0: 1122 + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} 992 1123 993 1124 emmet@2.4.11: 994 1125 resolution: {integrity: sha512-23QPJB3moh/U9sT4rQzGgeyyGIrcM+GH5uVYg2C6wZIxAIJq7Ng3QLT79tl8FUwDXhyq9SusfknOrofAKqvgyQ==} ··· 999 1130 emoji-regex@8.0.0: 1000 1131 resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} 1001 1132 1133 + emoji-regex@9.2.2: 1134 + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} 1135 + 1002 1136 enhanced-resolve@5.18.3: 1003 1137 resolution: {integrity: sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==} 1004 1138 engines: {node: '>=10.13.0'} 1139 + 1140 + entities@4.5.0: 1141 + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} 1142 + engines: {node: '>=0.12'} 1005 1143 1006 1144 entities@6.0.1: 1007 1145 resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==} ··· 1042 1180 resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} 1043 1181 engines: {node: '>=8.6.0'} 1044 1182 1183 + fast-json-stable-stringify@2.1.0: 1184 + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} 1185 + 1045 1186 fast-uri@3.1.0: 1046 1187 resolution: {integrity: sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==} 1047 1188 ··· 1057 1198 picomatch: 1058 1199 optional: true 1059 1200 1201 + file-uri-to-path@1.0.0: 1202 + resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} 1203 + 1060 1204 fill-range@7.1.1: 1061 1205 resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} 1062 1206 engines: {node: '>=8'} ··· 1065 1209 resolution: {integrity: sha512-9UbaD6XdAL97+k/n+N7JwX46K/M6Zc6KcFYskrYL8wbBV/Uyk0CTAMY0VT+qiK5PM7AIc9aTWYtq65U7T+aCNQ==} 1066 1210 engines: {node: '>=8'} 1067 1211 1068 - fontace@0.3.1: 1069 - resolution: {integrity: sha512-9f5g4feWT1jWT8+SbL85aLIRLIXUaDygaM2xPXRmzPYxrOMNok79Lr3FGJoKVNKibE0WCunNiEVG2mwuE+2qEg==} 1212 + fontace@0.4.0: 1213 + resolution: {integrity: sha512-moThBCItUe2bjZip5PF/iZClpKHGLwMvR79Kp8XpGRBrvoRSnySN4VcILdv3/MJzbhvUA5WeiUXF5o538m5fvg==} 1214 + 1215 + fontkitten@1.0.0: 1216 + resolution: {integrity: sha512-b0RdzQeztiiUFWEDzq6Ka26qkNVNLCehoRtifOIGNbQ4CfxyYRh73fyWaQX/JshPVcueITOEeoSWPy5XQv8FUg==} 1217 + engines: {node: '>=20'} 1070 1218 1071 - fontkit@2.0.4: 1072 - resolution: {integrity: sha512-syetQadaUEDNdxdugga9CpEYVaQIxOwk7GlwZWWZ19//qW4zE5bknOKeMBDYAASwnpaSHKJITRLMF9m1fp3s6g==} 1219 + foreground-child@3.3.1: 1220 + resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} 1221 + engines: {node: '>=14'} 1073 1222 1074 1223 fsevents@2.3.3: 1075 1224 resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} ··· 1091 1240 resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 1092 1241 engines: {node: '>= 6'} 1093 1242 1243 + glob@10.5.0: 1244 + resolution: {integrity: sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==} 1245 + hasBin: true 1246 + 1094 1247 graceful-fs@4.2.11: 1095 1248 resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} 1096 1249 ··· 1136 1289 http-cache-semantics@4.2.0: 1137 1290 resolution: {integrity: sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==} 1138 1291 1292 + https-proxy-agent@7.0.6: 1293 + resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} 1294 + engines: {node: '>= 14'} 1295 + 1139 1296 import-meta-resolve@4.2.0: 1140 1297 resolution: {integrity: sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==} 1141 1298 ··· 1180 1337 resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} 1181 1338 engines: {node: '>=16'} 1182 1339 1340 + isexe@2.0.0: 1341 + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 1342 + 1343 + jackspeak@3.4.3: 1344 + resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} 1345 + 1183 1346 jiti@2.6.1: 1184 1347 resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==} 1185 1348 hasBin: true ··· 1187 1350 js-yaml@4.1.1: 1188 1351 resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==} 1189 1352 hasBin: true 1353 + 1354 + json-schema-traverse@0.4.1: 1355 + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} 1190 1356 1191 1357 json-schema-traverse@1.0.0: 1192 1358 resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} ··· 1335 1501 mdast-util-to-string@4.0.0: 1336 1502 resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} 1337 1503 1504 + mdn-data@2.0.28: 1505 + resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==} 1506 + 1338 1507 mdn-data@2.12.2: 1339 1508 resolution: {integrity: sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==} 1340 1509 ··· 1430 1599 resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} 1431 1600 engines: {node: '>=8.6'} 1432 1601 1602 + minimatch@9.0.5: 1603 + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} 1604 + engines: {node: '>=16 || 14 >=14.17'} 1605 + 1606 + minipass@7.1.2: 1607 + resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} 1608 + engines: {node: '>=16 || 14 >=14.17'} 1609 + 1610 + minizlib@3.1.0: 1611 + resolution: {integrity: sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==} 1612 + engines: {node: '>= 18'} 1613 + 1433 1614 mrmime@2.0.1: 1434 1615 resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==} 1435 1616 engines: {node: '>=10'} ··· 1455 1636 node-fetch-native@1.6.7: 1456 1637 resolution: {integrity: sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==} 1457 1638 1639 + node-fetch@2.7.0: 1640 + resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} 1641 + engines: {node: 4.x || >=6.0.0} 1642 + peerDependencies: 1643 + encoding: ^0.1.0 1644 + peerDependenciesMeta: 1645 + encoding: 1646 + optional: true 1647 + 1648 + node-gyp-build@4.8.4: 1649 + resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==} 1650 + hasBin: true 1651 + 1458 1652 node-mock-http@1.0.3: 1459 1653 resolution: {integrity: sha512-jN8dK25fsfnMrVsEhluUTPkBFY+6ybu7jSB1n+ri/vOGjJxU8J9CZhpSGkHXSkFjtUhbmoncG/YG9ta5Ludqog==} 1460 1654 1655 + nopt@8.1.0: 1656 + resolution: {integrity: sha512-ieGu42u/Qsa4TFktmaKEwM6MQH0pOWnaB3htzh0JRtx84+Mebc0cbZYN5bC+6WTZ4+77xrL9Pn5m7CV6VIkV7A==} 1657 + engines: {node: ^18.17.0 || >=20.5.0} 1658 + hasBin: true 1659 + 1461 1660 normalize-path@3.0.0: 1462 1661 resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 1463 1662 engines: {node: '>=0.10.0'} 1464 1663 1664 + nth-check@2.1.1: 1665 + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} 1666 + 1465 1667 ofetch@1.5.1: 1466 1668 resolution: {integrity: sha512-2W4oUZlVaqAPAil6FUg/difl6YhqhUR7x2eZY4bQCko22UXg3hptq9KLQdqFClV+Wu85UX7hNtdGTngi/1BxcA==} 1467 1669 ··· 1471 1673 oniguruma-parser@0.12.1: 1472 1674 resolution: {integrity: sha512-8Unqkvk1RYc6yq2WBYRj4hdnsAxVze8i7iPfQr8e4uSP3tRv0rpZcbGUDvxfQQcdwHt/e9PrMvGCsa8OqG9X3w==} 1473 1675 1474 - oniguruma-to-es@4.3.3: 1475 - resolution: {integrity: sha512-rPiZhzC3wXwE59YQMRDodUwwT9FZ9nNBwQQfsd1wfdtlKEyCdRV0avrTcSZ5xlIvGRVPd/cx6ZN45ECmS39xvg==} 1676 + oniguruma-to-es@4.3.4: 1677 + resolution: {integrity: sha512-3VhUGN3w2eYxnTzHn+ikMI+fp/96KoRSVK9/kMTcFqj1NRDh2IhQCKvYxDnWePKRXY/AqH+Fuiyb7VHSzBjHfA==} 1476 1678 1477 1679 p-limit@6.2.0: 1478 1680 resolution: {integrity: sha512-kuUqqHNUqoIWp/c467RI4X6mmyuojY5jGutNU0wVTmEOOfcuwLqyMVoAi9MKi2Ak+5i9+nhmrK4ufZE8069kHA==} ··· 1486 1688 resolution: {integrity: sha512-MyIV3ZA/PmyBN/ud8vV9XzwTrNtR4jFrObymZYnZqMmW0zA8Z17vnT0rBgFE/TlohB+YCHqXMgZzb3Csp49vqg==} 1487 1689 engines: {node: '>=14.16'} 1488 1690 1489 - package-manager-detector@1.5.0: 1490 - resolution: {integrity: sha512-uBj69dVlYe/+wxj8JOpr97XfsxH/eumMt6HqjNTmJDf/6NO9s+0uxeOneIz3AsPt2m6y9PqzDzd3ATcU17MNfw==} 1691 + package-json-from-dist@1.0.1: 1692 + resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} 1491 1693 1492 - pako@0.2.9: 1493 - resolution: {integrity: sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==} 1694 + package-manager-detector@1.6.0: 1695 + resolution: {integrity: sha512-61A5ThoTiDG/C8s8UMZwSorAGwMJ0ERVGj2OjoW5pAalsNOg15+iQiPzrLJ4jhZ1HJzmC2PIHT2oEiH3R5fzNA==} 1494 1696 1495 1697 parse-latin@7.0.0: 1496 1698 resolution: {integrity: sha512-mhHgobPPua5kZ98EF4HWiH167JWBfl4pvAIXXdbaVohtK7a6YBOy56kvhCqduqyo/f3yrHFWmqmiMg/BkBkYYQ==} ··· 1501 1703 path-browserify@1.0.1: 1502 1704 resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} 1503 1705 1706 + path-key@3.1.1: 1707 + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 1708 + engines: {node: '>=8'} 1709 + 1710 + path-scurry@1.11.1: 1711 + resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} 1712 + engines: {node: '>=16 || 14 >=14.18'} 1713 + 1714 + path-to-regexp@6.1.0: 1715 + resolution: {integrity: sha512-h9DqehX3zZZDCEm+xbfU0ZmwCGFCAAraPJWMXJ4+v32NjZJilVg3k1TcKsRgIb8IQ/izZSaydDc1OhJCZvs2Dw==} 1716 + 1717 + path-to-regexp@6.3.0: 1718 + resolution: {integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==} 1719 + 1720 + piccolore@0.1.3: 1721 + resolution: {integrity: sha512-o8bTeDWjE086iwKrROaDf31K0qC/BENdm15/uH9usSC/uZjJOKb2YGiVHfLY4GhwsERiPI1jmwI2XrA7ACOxVw==} 1722 + 1504 1723 picocolors@1.1.1: 1505 1724 resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} 1506 1725 ··· 1597 1816 property-information@7.1.0: 1598 1817 resolution: {integrity: sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==} 1599 1818 1819 + punycode@2.3.1: 1820 + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} 1821 + engines: {node: '>=6'} 1822 + 1600 1823 queue-microtask@1.2.3: 1601 1824 resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 1602 1825 ··· 1662 1885 resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} 1663 1886 engines: {node: '>=0.10.0'} 1664 1887 1665 - restructure@3.0.2: 1666 - resolution: {integrity: sha512-gSfoiOEA0VPE6Tukkrr7I0RBdE0s7H1eFCDBk05l1KIQT1UIKNc5JZy6jdyW6eYH3aR3g5b3PuL77rq0hvwtAw==} 1888 + resolve-from@5.0.0: 1889 + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} 1890 + engines: {node: '>=8'} 1667 1891 1668 1892 retext-latin@4.0.0: 1669 1893 resolution: {integrity: sha512-hv9woG7Fy0M9IlRQloq/N6atV82NxLGveq+3H2WOi79dtIYWN8OaxogDm77f8YnVXJL2VD3bbqowu5E3EMhBYA==} ··· 1707 1931 resolution: {integrity: sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==} 1708 1932 engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 1709 1933 1710 - shiki@3.15.0: 1711 - resolution: {integrity: sha512-kLdkY6iV3dYbtPwS9KXU7mjfmDm25f5m0IPNFnaXO7TBPcvbUOY72PYXSuSqDzwp+vlH/d7MXpHlKO/x+QoLXw==} 1934 + shebang-command@2.0.0: 1935 + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 1936 + engines: {node: '>=8'} 1937 + 1938 + shebang-regex@3.0.0: 1939 + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 1940 + engines: {node: '>=8'} 1941 + 1942 + shiki@3.21.0: 1943 + resolution: {integrity: sha512-N65B/3bqL/TI2crrXr+4UivctrAGEjmsib5rPMMPpFp1xAx/w03v8WZ9RDDFYteXoEgY7qZ4HGgl5KBIu1153w==} 1944 + 1945 + signal-exit@4.1.0: 1946 + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} 1947 + engines: {node: '>=14'} 1712 1948 1713 1949 sisteransi@1.0.5: 1714 1950 resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} ··· 1718 1954 engines: {node: '>=14.0.0', npm: '>=6.0.0'} 1719 1955 hasBin: true 1720 1956 1721 - smol-toml@1.5.2: 1722 - resolution: {integrity: sha512-QlaZEqcAH3/RtNyet1IPIYPsEWAaYyXXv1Krsi+1L/QHppjX4Ifm8MQsBISz9vE8cHicIq3clogsheili5vhaQ==} 1957 + smol-toml@1.6.0: 1958 + resolution: {integrity: sha512-4zemZi0HvTnYwLfrpk/CF9LOd9Lt87kAt50GnqhMpyF9U3poDAP2+iukq2bZsO/ufegbYehBkqINbsWxj4l4cw==} 1723 1959 engines: {node: '>= 18'} 1724 1960 1725 1961 source-map-js@1.2.1: ··· 1735 1971 string-width@4.2.3: 1736 1972 resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} 1737 1973 engines: {node: '>=8'} 1974 + 1975 + string-width@5.1.2: 1976 + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} 1977 + engines: {node: '>=12'} 1738 1978 1739 1979 string-width@7.2.0: 1740 1980 resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} ··· 1754 1994 suf-log@2.5.3: 1755 1995 resolution: {integrity: sha512-KvC8OPjzdNOe+xQ4XWJV2whQA0aM1kGVczMQ8+dStAO6KfEB140JEVQ9dE76ONZ0/Ylf67ni4tILPJB41U0eow==} 1756 1996 1997 + svgo@4.0.0: 1998 + resolution: {integrity: sha512-VvrHQ+9uniE+Mvx3+C9IEe/lWasXCU0nXMY2kZeLrHNICuRiC8uMPyM14UEaMOFA5mhyQqEkB02VoQ16n3DLaw==} 1999 + engines: {node: '>=16'} 2000 + hasBin: true 2001 + 1757 2002 tailwindcss@4.1.17: 1758 2003 resolution: {integrity: sha512-j9Ee2YjuQqYT9bbRTfTZht9W/ytp5H+jJpZKiYdP/bpnXARAuELt9ofP0lPnmHjbga7SNQIxdTAXCmtKVYjN+Q==} 1759 2004 ··· 1761 2006 resolution: {integrity: sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==} 1762 2007 engines: {node: '>=6'} 1763 2008 2009 + tar@7.5.2: 2010 + resolution: {integrity: sha512-7NyxrTE4Anh8km8iEy7o0QYPs+0JKBTj5ZaqHg6B39erLg0qYXN3BijtShwbsNSvQ+LN75+KV+C4QR/f6Gwnpg==} 2011 + engines: {node: '>=18'} 2012 + 1764 2013 tiny-inflate@1.0.3: 1765 2014 resolution: {integrity: sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==} 1766 2015 ··· 1775 2024 to-regex-range@5.0.1: 1776 2025 resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 1777 2026 engines: {node: '>=8.0'} 2027 + 2028 + tr46@0.0.3: 2029 + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} 1778 2030 1779 2031 trim-lines@3.0.1: 1780 2032 resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} ··· 1822 2074 undici-types@7.16.0: 1823 2075 resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==} 1824 2076 1825 - unicode-properties@1.4.1: 1826 - resolution: {integrity: sha512-CLjCCLQ6UuMxWnbIylkisbRj31qxHPAurvena/0iwSVbQ2G1VY5/HjV0IRabOEbDHlzZlRdCrD4NhB0JtU40Pg==} 1827 - 1828 - unicode-trie@2.0.0: 1829 - resolution: {integrity: sha512-x7bc76x0bm4prf1VLg79uhAzKw8DVboClSN5VxJuQ+LKDOVEW9CdH+VY7SP+vX7xCYQqzzgQpFqz15zeLvAtZQ==} 1830 - 1831 2077 unified@11.0.5: 1832 2078 resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} 1833 2079 1834 - unifont@0.6.0: 1835 - resolution: {integrity: sha512-5Fx50fFQMQL5aeHyWnZX9122sSLckcDvcfFiBf3QYeHa7a1MKJooUy52b67moi2MJYkrfo/TWY+CoLdr/w0tTA==} 2080 + unifont@0.7.1: 2081 + resolution: {integrity: sha512-0lg9M1cMYvXof8//wZBq6EDEfbwv4++t7+dYpXeS2ypaLuZJmUFYEwTm412/1ED/Wfo/wyzSu6kNZEr9hgRNfg==} 1836 2082 1837 2083 unist-util-find-after@5.0.0: 1838 2084 resolution: {integrity: sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==} ··· 1861 2107 unist-util-visit@5.0.0: 1862 2108 resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} 1863 2109 1864 - unstorage@1.17.2: 1865 - resolution: {integrity: sha512-cKEsD6iBWJgOMJ6vW1ID/SYuqNf8oN4yqRk8OYqaVQ3nnkJXOT1PSpaMh2QfzLs78UN5kSNRD2c/mgjT8tX7+w==} 2110 + unstorage@1.17.3: 2111 + resolution: {integrity: sha512-i+JYyy0DoKmQ3FximTHbGadmIYb8JEpq7lxUjnjeB702bCPum0vzo6oy5Mfu0lpqISw7hCyMW2yj4nWC8bqJ3Q==} 1866 2112 peerDependencies: 1867 2113 '@azure/app-configuration': ^1.8.0 1868 2114 '@azure/cosmos': ^4.2.0 ··· 1922 2168 optional: true 1923 2169 uploadthing: 1924 2170 optional: true 2171 + 2172 + uri-js@4.4.1: 2173 + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} 1925 2174 1926 2175 vfile-location@5.0.3: 1927 2176 resolution: {integrity: sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==} ··· 2074 2323 2075 2324 web-namespaces@2.0.1: 2076 2325 resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==} 2326 + 2327 + webidl-conversions@3.0.1: 2328 + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} 2329 + 2330 + whatwg-url@5.0.0: 2331 + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} 2077 2332 2078 2333 which-pm-runs@1.1.0: 2079 2334 resolution: {integrity: sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==} 2080 2335 engines: {node: '>=4'} 2081 2336 2337 + which@2.0.2: 2338 + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 2339 + engines: {node: '>= 8'} 2340 + hasBin: true 2341 + 2082 2342 widest-line@5.0.0: 2083 2343 resolution: {integrity: sha512-c9bZp7b5YtRj2wOe6dlj32MK+Bx/M/d+9VB2SHM1OtsUHR0aV0tdP6DWh/iMt0kWi1t5g1Iudu6hQRNd1A4PVA==} 2084 2344 engines: {node: '>=18'} ··· 2087 2347 resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} 2088 2348 engines: {node: '>=10'} 2089 2349 2350 + wrap-ansi@8.1.0: 2351 + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} 2352 + engines: {node: '>=12'} 2353 + 2090 2354 wrap-ansi@9.0.2: 2091 2355 resolution: {integrity: sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==} 2092 2356 engines: {node: '>=18'} ··· 2097 2361 y18n@5.0.8: 2098 2362 resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} 2099 2363 engines: {node: '>=10'} 2364 + 2365 + yallist@5.0.0: 2366 + resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==} 2367 + engines: {node: '>=18'} 2100 2368 2101 2369 yaml-language-server@1.19.2: 2102 2370 resolution: {integrity: sha512-9F3myNmJzUN/679jycdMxqtydPSDRAarSj3wPiF7pchEPnO9Dg07Oc+gIYLqXR4L+g+FSEVXXv2+mr54StLFOg==} ··· 2132 2400 resolution: {integrity: sha512-CzhO+pFNo8ajLM2d2IW/R93ipy99LWjtwblvC1RsoSUMZgyLbYFr221TnSNT7GjGdYui6P459mw9JH/g/zW2ug==} 2133 2401 engines: {node: '>=18'} 2134 2402 2135 - zod-to-json-schema@3.24.6: 2136 - resolution: {integrity: sha512-h/z3PKvcTcTetyjl1fkj79MHNEjm+HpD6NXheWjzOekY7kV+lwDYnHw+ivHkijnCSMz1yJaWBD9vu/Fcmk+vEg==} 2403 + zod-to-json-schema@3.25.1: 2404 + resolution: {integrity: sha512-pM/SU9d3YAggzi6MtR4h7ruuQlqKtad8e9S0fmxcMi+ueAK5Korys/aWcV9LIIHTVbj01NdzxcnXSN+O74ZIVA==} 2137 2405 peerDependencies: 2138 - zod: ^3.24.1 2406 + zod: ^3.25 || ^4 2139 2407 2140 2408 zod-to-ts@1.2.0: 2141 2409 resolution: {integrity: sha512-x30XE43V+InwGpvTySRNz9kB7qFU8DlyEy7BsSTCHPH1R0QasMmHWZDCzYm6bVXtj/9NNJAZF3jW8rzFvH5OFA==} ··· 2151 2419 2152 2420 snapshots: 2153 2421 2154 - '@astro-community/astro-embed-youtube@0.5.9(astro@5.15.7(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.53.2)(typescript@5.9.3)(yaml@2.8.1))': 2422 + '@astro-community/astro-embed-youtube@0.5.9(astro@5.16.8(@types/node@24.10.1)(@vercel/functions@2.2.13)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.53.2)(typescript@5.9.3)(yaml@2.8.1))': 2155 2423 dependencies: 2156 - astro: 5.15.7(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.53.2)(typescript@5.9.3)(yaml@2.8.1) 2424 + astro: 5.16.8(@types/node@24.10.1)(@vercel/functions@2.2.13)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.53.2)(typescript@5.9.3)(yaml@2.8.1) 2157 2425 lite-youtube-embed: 0.3.4 2158 2426 2159 2427 '@astrojs/check@0.5.10(prettier-plugin-astro@0.14.1)(prettier@3.6.2)(typescript@5.9.3)': ··· 2170 2438 2171 2439 '@astrojs/compiler@2.13.0': {} 2172 2440 2173 - '@astrojs/internal-helpers@0.7.4': {} 2441 + '@astrojs/internal-helpers@0.7.5': {} 2174 2442 2175 2443 '@astrojs/language-server@2.16.0(prettier-plugin-astro@0.14.1)(prettier@3.6.2)(typescript@5.9.3)': 2176 2444 dependencies: ··· 2198 2466 transitivePeerDependencies: 2199 2467 - typescript 2200 2468 2201 - '@astrojs/markdown-remark@6.3.8': 2469 + '@astrojs/markdown-remark@6.3.10': 2202 2470 dependencies: 2203 - '@astrojs/internal-helpers': 0.7.4 2471 + '@astrojs/internal-helpers': 0.7.5 2204 2472 '@astrojs/prism': 3.3.0 2205 2473 github-slugger: 2.0.0 2206 2474 hast-util-from-html: 2.0.3 ··· 2214 2482 remark-parse: 11.0.0 2215 2483 remark-rehype: 11.1.2 2216 2484 remark-smartypants: 3.0.2 2217 - shiki: 3.15.0 2218 - smol-toml: 1.5.2 2485 + shiki: 3.21.0 2486 + smol-toml: 1.6.0 2219 2487 unified: 11.0.5 2220 2488 unist-util-remove-position: 5.0.0 2221 2489 unist-util-visit: 5.0.0 ··· 2228 2496 dependencies: 2229 2497 prismjs: 1.30.0 2230 2498 2231 - '@astrojs/sitemap@3.6.0': 2499 + '@astrojs/sitemap@3.6.1': 2232 2500 dependencies: 2233 2501 sitemap: 8.0.2 2234 2502 stream-replace-string: 2.0.0 ··· 2246 2514 transitivePeerDependencies: 2247 2515 - supports-color 2248 2516 2517 + '@astrojs/vercel@9.0.3(astro@5.16.8(@types/node@24.10.1)(@vercel/functions@2.2.13)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.53.2)(typescript@5.9.3)(yaml@2.8.1))(rollup@4.53.2)': 2518 + dependencies: 2519 + '@astrojs/internal-helpers': 0.7.5 2520 + '@vercel/analytics': 1.6.1 2521 + '@vercel/functions': 2.2.13 2522 + '@vercel/nft': 0.30.4(rollup@4.53.2) 2523 + '@vercel/routing-utils': 5.3.1 2524 + astro: 5.16.8(@types/node@24.10.1)(@vercel/functions@2.2.13)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.53.2)(typescript@5.9.3)(yaml@2.8.1) 2525 + esbuild: 0.25.12 2526 + tinyglobby: 0.2.15 2527 + transitivePeerDependencies: 2528 + - '@aws-sdk/credential-provider-web-identity' 2529 + - '@remix-run/react' 2530 + - '@sveltejs/kit' 2531 + - encoding 2532 + - next 2533 + - react 2534 + - rollup 2535 + - supports-color 2536 + - svelte 2537 + - vue 2538 + - vue-router 2539 + 2249 2540 '@astrojs/yaml2ts@0.2.2': 2250 2541 dependencies: 2251 2542 yaml: 2.8.1 ··· 2263 2554 '@babel/helper-string-parser': 7.27.1 2264 2555 '@babel/helper-validator-identifier': 7.28.5 2265 2556 2266 - '@capsizecss/unpack@3.0.1': 2557 + '@capsizecss/unpack@4.0.0': 2267 2558 dependencies: 2268 - fontkit: 2.0.4 2559 + fontkitten: 1.0.0 2269 2560 2270 2561 '@emmetio/abbreviation@2.3.3': 2271 2562 dependencies: ··· 2469 2760 '@img/sharp-win32-x64@0.34.5': 2470 2761 optional: true 2471 2762 2763 + '@isaacs/cliui@8.0.2': 2764 + dependencies: 2765 + string-width: 5.1.2 2766 + string-width-cjs: string-width@4.2.3 2767 + strip-ansi: 7.1.2 2768 + strip-ansi-cjs: strip-ansi@6.0.1 2769 + wrap-ansi: 8.1.0 2770 + wrap-ansi-cjs: wrap-ansi@7.0.0 2771 + 2772 + '@isaacs/fs-minipass@4.0.1': 2773 + dependencies: 2774 + minipass: 7.1.2 2775 + 2472 2776 '@jridgewell/gen-mapping@0.3.13': 2473 2777 dependencies: 2474 2778 '@jridgewell/sourcemap-codec': 1.5.5 ··· 2488 2792 '@jridgewell/resolve-uri': 3.1.2 2489 2793 '@jridgewell/sourcemap-codec': 1.5.5 2490 2794 2795 + '@mapbox/node-pre-gyp@2.0.3': 2796 + dependencies: 2797 + consola: 3.4.2 2798 + detect-libc: 2.1.2 2799 + https-proxy-agent: 7.0.6 2800 + node-fetch: 2.7.0 2801 + nopt: 8.1.0 2802 + semver: 7.7.3 2803 + tar: 7.5.2 2804 + transitivePeerDependencies: 2805 + - encoding 2806 + - supports-color 2807 + 2491 2808 '@nodelib/fs.scandir@2.1.5': 2492 2809 dependencies: 2493 2810 '@nodelib/fs.stat': 2.0.5 ··· 2501 2818 fastq: 1.19.1 2502 2819 2503 2820 '@oslojs/encoding@1.1.0': {} 2821 + 2822 + '@pkgjs/parseargs@0.11.0': 2823 + optional: true 2504 2824 2505 2825 '@rollup/pluginutils@5.3.0(rollup@4.53.2)': 2506 2826 dependencies: ··· 2576 2896 '@rollup/rollup-win32-x64-msvc@4.53.2': 2577 2897 optional: true 2578 2898 2579 - '@shikijs/core@3.15.0': 2899 + '@shikijs/core@3.21.0': 2580 2900 dependencies: 2581 - '@shikijs/types': 3.15.0 2901 + '@shikijs/types': 3.21.0 2582 2902 '@shikijs/vscode-textmate': 10.0.2 2583 2903 '@types/hast': 3.0.4 2584 2904 hast-util-to-html: 9.0.5 2585 2905 2586 - '@shikijs/engine-javascript@3.15.0': 2906 + '@shikijs/engine-javascript@3.21.0': 2587 2907 dependencies: 2588 - '@shikijs/types': 3.15.0 2908 + '@shikijs/types': 3.21.0 2589 2909 '@shikijs/vscode-textmate': 10.0.2 2590 - oniguruma-to-es: 4.3.3 2910 + oniguruma-to-es: 4.3.4 2591 2911 2592 - '@shikijs/engine-oniguruma@3.15.0': 2912 + '@shikijs/engine-oniguruma@3.21.0': 2593 2913 dependencies: 2594 - '@shikijs/types': 3.15.0 2914 + '@shikijs/types': 3.21.0 2595 2915 '@shikijs/vscode-textmate': 10.0.2 2596 2916 2597 - '@shikijs/langs@3.15.0': 2917 + '@shikijs/langs@3.21.0': 2598 2918 dependencies: 2599 - '@shikijs/types': 3.15.0 2919 + '@shikijs/types': 3.21.0 2600 2920 2601 - '@shikijs/themes@3.15.0': 2921 + '@shikijs/themes@3.21.0': 2602 2922 dependencies: 2603 - '@shikijs/types': 3.15.0 2923 + '@shikijs/types': 3.21.0 2604 2924 2605 - '@shikijs/types@3.15.0': 2925 + '@shikijs/types@3.21.0': 2606 2926 dependencies: 2607 2927 '@shikijs/vscode-textmate': 10.0.2 2608 2928 '@types/hast': 3.0.4 2609 2929 2610 2930 '@shikijs/vscode-textmate@10.0.2': {} 2611 - 2612 - '@swc/helpers@0.5.17': 2613 - dependencies: 2614 - tslib: 2.8.1 2615 2931 2616 2932 '@tailwindcss/node@4.1.17': 2617 2933 dependencies: ··· 2687 3003 2688 3004 '@types/estree@1.0.8': {} 2689 3005 2690 - '@types/fontkit@2.0.8': 2691 - dependencies: 2692 - '@types/node': 24.10.1 2693 - 2694 3006 '@types/hast@3.0.4': 2695 3007 dependencies: 2696 3008 '@types/unist': 3.0.3 ··· 2713 3025 2714 3026 '@types/sax@1.2.7': 2715 3027 dependencies: 2716 - '@types/node': 17.0.45 3028 + '@types/node': 24.10.1 2717 3029 2718 3030 '@types/unist@3.0.3': {} 2719 3031 2720 3032 '@ungap/structured-clone@1.3.0': {} 2721 3033 3034 + '@vercel/analytics@1.6.1': {} 3035 + 3036 + '@vercel/functions@2.2.13': 3037 + dependencies: 3038 + '@vercel/oidc': 2.0.2 3039 + 3040 + '@vercel/nft@0.30.4(rollup@4.53.2)': 3041 + dependencies: 3042 + '@mapbox/node-pre-gyp': 2.0.3 3043 + '@rollup/pluginutils': 5.3.0(rollup@4.53.2) 3044 + acorn: 8.15.0 3045 + acorn-import-attributes: 1.9.5(acorn@8.15.0) 3046 + async-sema: 3.1.1 3047 + bindings: 1.5.0 3048 + estree-walker: 2.0.2 3049 + glob: 10.5.0 3050 + graceful-fs: 4.2.11 3051 + node-gyp-build: 4.8.4 3052 + picomatch: 4.0.3 3053 + resolve-from: 5.0.0 3054 + transitivePeerDependencies: 3055 + - encoding 3056 + - rollup 3057 + - supports-color 3058 + 3059 + '@vercel/oidc@2.0.2': 3060 + dependencies: 3061 + '@types/ms': 2.1.0 3062 + ms: 2.1.3 3063 + 3064 + '@vercel/routing-utils@5.3.1': 3065 + dependencies: 3066 + path-to-regexp: 6.1.0 3067 + path-to-regexp-updated: path-to-regexp@6.3.0 3068 + optionalDependencies: 3069 + ajv: 6.12.6 3070 + 2722 3071 '@volar/kit@2.4.23(typescript@5.9.3)': 2723 3072 dependencies: 2724 3073 '@volar/language-service': 2.4.23 ··· 2769 3118 2770 3119 '@vscode/l10n@0.0.18': {} 2771 3120 3121 + abbrev@3.0.1: {} 3122 + 3123 + acorn-import-attributes@1.9.5(acorn@8.15.0): 3124 + dependencies: 3125 + acorn: 8.15.0 3126 + 2772 3127 acorn@8.15.0: {} 3128 + 3129 + agent-base@7.1.4: {} 2773 3130 2774 3131 ajv-draft-04@1.0.0(ajv@8.17.1): 2775 3132 optionalDependencies: 2776 3133 ajv: 8.17.1 2777 3134 3135 + ajv@6.12.6: 3136 + dependencies: 3137 + fast-deep-equal: 3.1.3 3138 + fast-json-stable-stringify: 2.1.0 3139 + json-schema-traverse: 0.4.1 3140 + uri-js: 4.4.1 3141 + optional: true 3142 + 2778 3143 ajv@8.17.1: 2779 3144 dependencies: 2780 3145 fast-deep-equal: 3.1.3 ··· 2809 3174 2810 3175 array-iterate@2.0.1: {} 2811 3176 2812 - astro-capo@0.0.1(astro@5.15.7(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.53.2)(typescript@5.9.3)(yaml@2.8.1)): 3177 + astro-capo@0.0.1(astro@5.16.8(@types/node@24.10.1)(@vercel/functions@2.2.13)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.53.2)(typescript@5.9.3)(yaml@2.8.1)): 2813 3178 dependencies: 2814 - astro: 5.15.7(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.53.2)(typescript@5.9.3)(yaml@2.8.1) 3179 + astro: 5.16.8(@types/node@24.10.1)(@vercel/functions@2.2.13)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.53.2)(typescript@5.9.3)(yaml@2.8.1) 2815 3180 ultrahtml: 1.6.0 2816 3181 2817 - astro-og@0.3.0(astro@5.15.7(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.53.2)(typescript@5.9.3)(yaml@2.8.1)): 3182 + astro-og@0.3.0(astro@5.16.8(@types/node@24.10.1)(@vercel/functions@2.2.13)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.53.2)(typescript@5.9.3)(yaml@2.8.1)): 2818 3183 dependencies: 2819 - astro: 5.15.7(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.53.2)(typescript@5.9.3)(yaml@2.8.1) 3184 + astro: 5.16.8(@types/node@24.10.1)(@vercel/functions@2.2.13)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.53.2)(typescript@5.9.3)(yaml@2.8.1) 2820 3185 preact: 10.26.5 2821 3186 2822 3187 astro-seo@0.8.4(prettier-plugin-astro@0.14.1)(prettier@3.6.2)(typescript@5.9.3): ··· 2827 3192 - prettier-plugin-astro 2828 3193 - typescript 2829 3194 2830 - astro@5.15.7(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.53.2)(typescript@5.9.3)(yaml@2.8.1): 3195 + astro@5.16.8(@types/node@24.10.1)(@vercel/functions@2.2.13)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.53.2)(typescript@5.9.3)(yaml@2.8.1): 2831 3196 dependencies: 2832 3197 '@astrojs/compiler': 2.13.0 2833 - '@astrojs/internal-helpers': 0.7.4 2834 - '@astrojs/markdown-remark': 6.3.8 3198 + '@astrojs/internal-helpers': 0.7.5 3199 + '@astrojs/markdown-remark': 6.3.10 2835 3200 '@astrojs/telemetry': 3.3.0 2836 - '@capsizecss/unpack': 3.0.1 3201 + '@capsizecss/unpack': 4.0.0 2837 3202 '@oslojs/encoding': 1.1.0 2838 3203 '@rollup/pluginutils': 5.3.0(rollup@4.53.2) 2839 3204 acorn: 8.15.0 ··· 2843 3208 ci-info: 4.3.1 2844 3209 clsx: 2.1.1 2845 3210 common-ancestor-path: 1.0.1 2846 - cookie: 1.0.2 3211 + cookie: 1.1.1 2847 3212 cssesc: 3.0.0 2848 3213 debug: 4.4.3 2849 3214 deterministic-object-hash: 2.0.2 2850 - devalue: 5.5.0 3215 + devalue: 5.6.1 2851 3216 diff: 5.2.0 2852 3217 dlv: 1.1.3 2853 3218 dset: 3.1.4 ··· 2855 3220 esbuild: 0.25.12 2856 3221 estree-walker: 3.0.3 2857 3222 flattie: 1.1.1 2858 - fontace: 0.3.1 3223 + fontace: 0.4.0 2859 3224 github-slugger: 2.0.0 2860 3225 html-escaper: 3.0.3 2861 3226 http-cache-semantics: 4.2.0 ··· 2867 3232 neotraverse: 0.6.18 2868 3233 p-limit: 6.2.0 2869 3234 p-queue: 8.1.1 2870 - package-manager-detector: 1.5.0 2871 - picocolors: 1.1.1 3235 + package-manager-detector: 1.6.0 3236 + piccolore: 0.1.3 2872 3237 picomatch: 4.0.3 2873 3238 prompts: 2.4.2 2874 3239 rehype: 13.0.2 2875 3240 semver: 7.7.3 2876 - shiki: 3.15.0 2877 - smol-toml: 1.5.2 3241 + shiki: 3.21.0 3242 + smol-toml: 1.6.0 3243 + svgo: 4.0.0 2878 3244 tinyexec: 1.0.2 2879 3245 tinyglobby: 0.2.15 2880 3246 tsconfck: 3.1.6(typescript@5.9.3) 2881 3247 ultrahtml: 1.6.0 2882 - unifont: 0.6.0 3248 + unifont: 0.7.1 2883 3249 unist-util-visit: 5.0.0 2884 - unstorage: 1.17.2 3250 + unstorage: 1.17.3(@vercel/functions@2.2.13) 2885 3251 vfile: 6.0.3 2886 3252 vite: 6.4.1(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1) 2887 3253 vitefu: 1.1.1(vite@6.4.1(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1)) ··· 2889 3255 yargs-parser: 21.1.1 2890 3256 yocto-spinner: 0.2.3 2891 3257 zod: 3.25.76 2892 - zod-to-json-schema: 3.24.6(zod@3.25.76) 3258 + zod-to-json-schema: 3.25.1(zod@3.25.76) 2893 3259 zod-to-ts: 1.2.0(typescript@5.9.3)(zod@3.25.76) 2894 3260 optionalDependencies: 2895 3261 sharp: 0.34.5 ··· 2928 3294 - uploadthing 2929 3295 - yaml 2930 3296 3297 + async-sema@3.1.1: {} 3298 + 2931 3299 axobject-query@4.1.0: {} 2932 3300 2933 3301 bail@2.0.2: {} 2934 3302 2935 - base-64@1.0.0: {} 3303 + balanced-match@1.0.2: {} 2936 3304 2937 - base64-js@1.5.1: {} 3305 + base-64@1.0.0: {} 2938 3306 2939 3307 binary-extensions@2.3.0: {} 3308 + 3309 + bindings@1.5.0: 3310 + dependencies: 3311 + file-uri-to-path: 1.0.0 3312 + 3313 + boolbase@1.0.0: {} 2940 3314 2941 3315 boxen@8.0.1: 2942 3316 dependencies: ··· 2949 3323 widest-line: 5.0.0 2950 3324 wrap-ansi: 9.0.2 2951 3325 2952 - braces@3.0.3: 3326 + brace-expansion@2.0.2: 2953 3327 dependencies: 2954 - fill-range: 7.1.1 3328 + balanced-match: 1.0.2 2955 3329 2956 - brotli@1.3.3: 3330 + braces@3.0.3: 2957 3331 dependencies: 2958 - base64-js: 1.5.1 3332 + fill-range: 7.1.1 2959 3333 2960 3334 camelcase@8.0.0: {} 2961 3335 ··· 2985 3359 dependencies: 2986 3360 readdirp: 4.1.2 2987 3361 3362 + chownr@3.0.0: {} 3363 + 2988 3364 ci-info@4.3.1: {} 2989 3365 2990 3366 cli-boxes@3.0.0: {} ··· 2995 3371 strip-ansi: 6.0.1 2996 3372 wrap-ansi: 7.0.0 2997 3373 2998 - clone@2.1.2: {} 2999 - 3000 3374 clsx@2.1.1: {} 3001 3375 3002 3376 color-convert@2.0.1: ··· 3006 3380 color-name@1.1.4: {} 3007 3381 3008 3382 comma-separated-tokens@2.0.3: {} 3383 + 3384 + commander@11.1.0: {} 3009 3385 3010 3386 common-ancestor-path@1.0.1: {} 3011 3387 3388 + consola@3.4.2: {} 3389 + 3012 3390 cookie-es@1.2.2: {} 3013 3391 3014 - cookie@1.0.2: {} 3392 + cookie@1.1.1: {} 3393 + 3394 + cross-spawn@7.0.6: 3395 + dependencies: 3396 + path-key: 3.1.1 3397 + shebang-command: 2.0.0 3398 + which: 2.0.2 3015 3399 3016 3400 crossws@0.3.5: 3017 3401 dependencies: 3018 3402 uncrypto: 0.1.3 3019 3403 3404 + css-select@5.2.2: 3405 + dependencies: 3406 + boolbase: 1.0.0 3407 + css-what: 6.2.2 3408 + domhandler: 5.0.3 3409 + domutils: 3.2.2 3410 + nth-check: 2.1.1 3411 + 3412 + css-tree@2.2.1: 3413 + dependencies: 3414 + mdn-data: 2.0.28 3415 + source-map-js: 1.2.1 3416 + 3020 3417 css-tree@3.1.0: 3021 3418 dependencies: 3022 3419 mdn-data: 2.12.2 3023 3420 source-map-js: 1.2.1 3421 + 3422 + css-what@6.2.2: {} 3024 3423 3025 3424 cssesc@3.0.0: {} 3026 3425 3426 + csso@5.0.5: 3427 + dependencies: 3428 + css-tree: 2.2.1 3429 + 3027 3430 debug@4.4.3: 3028 3431 dependencies: 3029 3432 ms: 2.1.3 ··· 3044 3447 dependencies: 3045 3448 base-64: 1.0.0 3046 3449 3047 - devalue@5.5.0: {} 3450 + devalue@5.6.1: {} 3048 3451 3049 3452 devlop@1.1.0: 3050 3453 dependencies: 3051 3454 dequal: 2.0.3 3052 - 3053 - dfa@1.2.0: {} 3054 3455 3055 3456 diff@5.2.0: {} 3056 3457 3057 3458 dlv@1.1.3: {} 3058 3459 3460 + dom-serializer@2.0.0: 3461 + dependencies: 3462 + domelementtype: 2.3.0 3463 + domhandler: 5.0.3 3464 + entities: 4.5.0 3465 + 3466 + domelementtype@2.3.0: {} 3467 + 3468 + domhandler@5.0.3: 3469 + dependencies: 3470 + domelementtype: 2.3.0 3471 + 3472 + domutils@3.2.2: 3473 + dependencies: 3474 + dom-serializer: 2.0.0 3475 + domelementtype: 2.3.0 3476 + domhandler: 5.0.3 3477 + 3059 3478 dset@3.1.4: {} 3479 + 3480 + eastasianwidth@0.2.0: {} 3060 3481 3061 3482 emmet@2.4.11: 3062 3483 dependencies: ··· 3067 3488 3068 3489 emoji-regex@8.0.0: {} 3069 3490 3491 + emoji-regex@9.2.2: {} 3492 + 3070 3493 enhanced-resolve@5.18.3: 3071 3494 dependencies: 3072 3495 graceful-fs: 4.2.11 3073 3496 tapable: 2.3.0 3497 + 3498 + entities@4.5.0: {} 3074 3499 3075 3500 entities@6.0.1: {} 3076 3501 ··· 3129 3554 merge2: 1.4.1 3130 3555 micromatch: 4.0.8 3131 3556 3557 + fast-json-stable-stringify@2.1.0: 3558 + optional: true 3559 + 3132 3560 fast-uri@3.1.0: {} 3133 3561 3134 3562 fastq@1.19.1: ··· 3139 3567 optionalDependencies: 3140 3568 picomatch: 4.0.3 3141 3569 3570 + file-uri-to-path@1.0.0: {} 3571 + 3142 3572 fill-range@7.1.1: 3143 3573 dependencies: 3144 3574 to-regex-range: 5.0.1 3145 3575 3146 3576 flattie@1.1.1: {} 3147 3577 3148 - fontace@0.3.1: 3578 + fontace@0.4.0: 3149 3579 dependencies: 3150 - '@types/fontkit': 2.0.8 3151 - fontkit: 2.0.4 3580 + fontkitten: 1.0.0 3152 3581 3153 - fontkit@2.0.4: 3582 + fontkitten@1.0.0: 3154 3583 dependencies: 3155 - '@swc/helpers': 0.5.17 3156 - brotli: 1.3.3 3157 - clone: 2.1.2 3158 - dfa: 1.2.0 3159 - fast-deep-equal: 3.1.3 3160 - restructure: 3.0.2 3161 3584 tiny-inflate: 1.0.3 3162 - unicode-properties: 1.4.1 3163 - unicode-trie: 2.0.0 3585 + 3586 + foreground-child@3.3.1: 3587 + dependencies: 3588 + cross-spawn: 7.0.6 3589 + signal-exit: 4.1.0 3164 3590 3165 3591 fsevents@2.3.3: 3166 3592 optional: true ··· 3175 3601 dependencies: 3176 3602 is-glob: 4.0.3 3177 3603 3604 + glob@10.5.0: 3605 + dependencies: 3606 + foreground-child: 3.3.1 3607 + jackspeak: 3.4.3 3608 + minimatch: 9.0.5 3609 + minipass: 7.1.2 3610 + package-json-from-dist: 1.0.1 3611 + path-scurry: 1.11.1 3612 + 3178 3613 graceful-fs@4.2.11: {} 3179 3614 3180 3615 h3@1.15.4: ··· 3282 3717 3283 3718 http-cache-semantics@4.2.0: {} 3284 3719 3720 + https-proxy-agent@7.0.6: 3721 + dependencies: 3722 + agent-base: 7.1.4 3723 + debug: 4.4.3 3724 + transitivePeerDependencies: 3725 + - supports-color 3726 + 3285 3727 import-meta-resolve@4.2.0: {} 3286 3728 3287 3729 iron-webcrypto@1.2.1: {} ··· 3312 3754 dependencies: 3313 3755 is-inside-container: 1.0.0 3314 3756 3757 + isexe@2.0.0: {} 3758 + 3759 + jackspeak@3.4.3: 3760 + dependencies: 3761 + '@isaacs/cliui': 8.0.2 3762 + optionalDependencies: 3763 + '@pkgjs/parseargs': 0.11.0 3764 + 3315 3765 jiti@2.6.1: {} 3316 3766 3317 3767 js-yaml@4.1.1: 3318 3768 dependencies: 3319 3769 argparse: 2.0.1 3320 3770 3771 + json-schema-traverse@0.4.1: 3772 + optional: true 3773 + 3321 3774 json-schema-traverse@1.0.0: {} 3322 3775 3323 3776 jsonc-parser@2.3.1: {} ··· 3517 3970 dependencies: 3518 3971 '@types/mdast': 4.0.4 3519 3972 3973 + mdn-data@2.0.28: {} 3974 + 3520 3975 mdn-data@2.12.2: {} 3521 3976 3522 3977 merge2@1.4.1: {} ··· 3717 4172 braces: 3.0.3 3718 4173 picomatch: 2.3.1 3719 4174 4175 + minimatch@9.0.5: 4176 + dependencies: 4177 + brace-expansion: 2.0.2 4178 + 4179 + minipass@7.1.2: {} 4180 + 4181 + minizlib@3.1.0: 4182 + dependencies: 4183 + minipass: 7.1.2 4184 + 3720 4185 mrmime@2.0.1: {} 3721 4186 3722 4187 ms@2.1.3: {} ··· 3732 4197 '@types/nlcst': 2.0.3 3733 4198 3734 4199 node-fetch-native@1.6.7: {} 4200 + 4201 + node-fetch@2.7.0: 4202 + dependencies: 4203 + whatwg-url: 5.0.0 4204 + 4205 + node-gyp-build@4.8.4: {} 3735 4206 3736 4207 node-mock-http@1.0.3: {} 3737 4208 4209 + nopt@8.1.0: 4210 + dependencies: 4211 + abbrev: 3.0.1 4212 + 3738 4213 normalize-path@3.0.0: {} 3739 4214 4215 + nth-check@2.1.1: 4216 + dependencies: 4217 + boolbase: 1.0.0 4218 + 3740 4219 ofetch@1.5.1: 3741 4220 dependencies: 3742 4221 destr: 2.0.5 ··· 3747 4226 3748 4227 oniguruma-parser@0.12.1: {} 3749 4228 3750 - oniguruma-to-es@4.3.3: 4229 + oniguruma-to-es@4.3.4: 3751 4230 dependencies: 3752 4231 oniguruma-parser: 0.12.1 3753 4232 regex: 6.0.1 ··· 3764 4243 3765 4244 p-timeout@6.1.4: {} 3766 4245 3767 - package-manager-detector@1.5.0: {} 4246 + package-json-from-dist@1.0.1: {} 3768 4247 3769 - pako@0.2.9: {} 4248 + package-manager-detector@1.6.0: {} 3770 4249 3771 4250 parse-latin@7.0.0: 3772 4251 dependencies: ··· 3783 4262 3784 4263 path-browserify@1.0.1: {} 3785 4264 4265 + path-key@3.1.1: {} 4266 + 4267 + path-scurry@1.11.1: 4268 + dependencies: 4269 + lru-cache: 10.4.3 4270 + minipass: 7.1.2 4271 + 4272 + path-to-regexp@6.1.0: {} 4273 + 4274 + path-to-regexp@6.3.0: {} 4275 + 4276 + piccolore@0.1.3: {} 4277 + 3786 4278 picocolors@1.1.1: {} 3787 4279 3788 4280 picomatch@2.3.1: {} ··· 3822 4314 3823 4315 property-information@7.1.0: {} 3824 4316 4317 + punycode@2.3.1: 4318 + optional: true 4319 + 3825 4320 queue-microtask@1.2.3: {} 3826 4321 3827 4322 radix3@1.1.2: {} ··· 3916 4411 3917 4412 require-from-string@2.0.2: {} 3918 4413 3919 - restructure@3.0.2: {} 4414 + resolve-from@5.0.0: {} 3920 4415 3921 4416 retext-latin@4.0.0: 3922 4417 dependencies: ··· 4018 4513 '@img/sharp-win32-ia32': 0.34.5 4019 4514 '@img/sharp-win32-x64': 0.34.5 4020 4515 4021 - shiki@3.15.0: 4516 + shebang-command@2.0.0: 4022 4517 dependencies: 4023 - '@shikijs/core': 3.15.0 4024 - '@shikijs/engine-javascript': 3.15.0 4025 - '@shikijs/engine-oniguruma': 3.15.0 4026 - '@shikijs/langs': 3.15.0 4027 - '@shikijs/themes': 3.15.0 4028 - '@shikijs/types': 3.15.0 4518 + shebang-regex: 3.0.0 4519 + 4520 + shebang-regex@3.0.0: {} 4521 + 4522 + shiki@3.21.0: 4523 + dependencies: 4524 + '@shikijs/core': 3.21.0 4525 + '@shikijs/engine-javascript': 3.21.0 4526 + '@shikijs/engine-oniguruma': 3.21.0 4527 + '@shikijs/langs': 3.21.0 4528 + '@shikijs/themes': 3.21.0 4529 + '@shikijs/types': 3.21.0 4029 4530 '@shikijs/vscode-textmate': 10.0.2 4030 4531 '@types/hast': 3.0.4 4532 + 4533 + signal-exit@4.1.0: {} 4031 4534 4032 4535 sisteransi@1.0.5: {} 4033 4536 ··· 4038 4541 arg: 5.0.2 4039 4542 sax: 1.4.3 4040 4543 4041 - smol-toml@1.5.2: {} 4544 + smol-toml@1.6.0: {} 4042 4545 4043 4546 source-map-js@1.2.1: {} 4044 4547 ··· 4052 4555 is-fullwidth-code-point: 3.0.0 4053 4556 strip-ansi: 6.0.1 4054 4557 4558 + string-width@5.1.2: 4559 + dependencies: 4560 + eastasianwidth: 0.2.0 4561 + emoji-regex: 9.2.2 4562 + strip-ansi: 7.1.2 4563 + 4055 4564 string-width@7.2.0: 4056 4565 dependencies: 4057 4566 emoji-regex: 10.6.0 ··· 4075 4584 dependencies: 4076 4585 s.color: 0.0.15 4077 4586 4587 + svgo@4.0.0: 4588 + dependencies: 4589 + commander: 11.1.0 4590 + css-select: 5.2.2 4591 + css-tree: 3.1.0 4592 + css-what: 6.2.2 4593 + csso: 5.0.5 4594 + picocolors: 1.1.1 4595 + sax: 1.4.3 4596 + 4078 4597 tailwindcss@4.1.17: {} 4079 4598 4080 4599 tapable@2.3.0: {} 4081 4600 4601 + tar@7.5.2: 4602 + dependencies: 4603 + '@isaacs/fs-minipass': 4.0.1 4604 + chownr: 3.0.0 4605 + minipass: 7.1.2 4606 + minizlib: 3.1.0 4607 + yallist: 5.0.0 4608 + 4082 4609 tiny-inflate@1.0.3: {} 4083 4610 4084 4611 tinyexec@1.0.2: {} ··· 4091 4618 to-regex-range@5.0.1: 4092 4619 dependencies: 4093 4620 is-number: 7.0.0 4621 + 4622 + tr46@0.0.3: {} 4094 4623 4095 4624 trim-lines@3.0.1: {} 4096 4625 ··· 4100 4629 optionalDependencies: 4101 4630 typescript: 5.9.3 4102 4631 4103 - tslib@2.8.1: {} 4632 + tslib@2.8.1: 4633 + optional: true 4104 4634 4105 4635 type-fest@4.41.0: {} 4106 4636 ··· 4120 4650 4121 4651 undici-types@7.16.0: {} 4122 4652 4123 - unicode-properties@1.4.1: 4124 - dependencies: 4125 - base64-js: 1.5.1 4126 - unicode-trie: 2.0.0 4127 - 4128 - unicode-trie@2.0.0: 4129 - dependencies: 4130 - pako: 0.2.9 4131 - tiny-inflate: 1.0.3 4132 - 4133 4653 unified@11.0.5: 4134 4654 dependencies: 4135 4655 '@types/unist': 3.0.3 ··· 4140 4660 trough: 2.2.0 4141 4661 vfile: 6.0.3 4142 4662 4143 - unifont@0.6.0: 4663 + unifont@0.7.1: 4144 4664 dependencies: 4145 4665 css-tree: 3.1.0 4146 4666 ofetch: 1.5.1 ··· 4188 4708 unist-util-is: 6.0.1 4189 4709 unist-util-visit-parents: 6.0.2 4190 4710 4191 - unstorage@1.17.2: 4711 + unstorage@1.17.3(@vercel/functions@2.2.13): 4192 4712 dependencies: 4193 4713 anymatch: 3.1.3 4194 4714 chokidar: 4.0.3 ··· 4198 4718 node-fetch-native: 1.6.7 4199 4719 ofetch: 1.5.1 4200 4720 ufo: 1.6.1 4721 + optionalDependencies: 4722 + '@vercel/functions': 2.2.13 4723 + 4724 + uri-js@4.4.1: 4725 + dependencies: 4726 + punycode: 2.3.1 4727 + optional: true 4201 4728 4202 4729 vfile-location@5.0.3: 4203 4730 dependencies: ··· 4332 4859 4333 4860 web-namespaces@2.0.1: {} 4334 4861 4862 + webidl-conversions@3.0.1: {} 4863 + 4864 + whatwg-url@5.0.0: 4865 + dependencies: 4866 + tr46: 0.0.3 4867 + webidl-conversions: 3.0.1 4868 + 4335 4869 which-pm-runs@1.1.0: {} 4870 + 4871 + which@2.0.2: 4872 + dependencies: 4873 + isexe: 2.0.0 4336 4874 4337 4875 widest-line@5.0.0: 4338 4876 dependencies: ··· 4344 4882 string-width: 4.2.3 4345 4883 strip-ansi: 6.0.1 4346 4884 4885 + wrap-ansi@8.1.0: 4886 + dependencies: 4887 + ansi-styles: 6.2.3 4888 + string-width: 5.1.2 4889 + strip-ansi: 7.1.2 4890 + 4347 4891 wrap-ansi@9.0.2: 4348 4892 dependencies: 4349 4893 ansi-styles: 6.2.3 ··· 4353 4897 xxhash-wasm@1.1.0: {} 4354 4898 4355 4899 y18n@5.0.8: {} 4900 + 4901 + yallist@5.0.0: {} 4356 4902 4357 4903 yaml-language-server@1.19.2: 4358 4904 dependencies: ··· 4393 4939 4394 4940 yoctocolors@2.1.2: {} 4395 4941 4396 - zod-to-json-schema@3.24.6(zod@3.25.76): 4942 + zod-to-json-schema@3.25.1(zod@3.25.76): 4397 4943 dependencies: 4398 4944 zod: 3.25.76 4399 4945
+1
public/robots.txt
··· 1 1 User-agent: * 2 2 Allow: / 3 + Disallow: /rewrite/ 3 4 4 5 Sitemap: https://www.life-series.online/sitemap-index.xml
+7
src/env.d.ts
··· 1 + /// <reference types="astro/client" /> 2 + 3 + declare namespace App { 4 + interface Locals { 5 + isRewrite: boolean; 6 + } 7 + }
+38
src/middleware.ts
··· 1 + import { defineMiddleware } from 'astro:middleware'; 2 + 3 + const REWRITE_SECRET = import.meta.env.REWRITE_SECRET || 'rewrite-secret'; 4 + const COOKIE_NAME = 'rewrite'; 5 + 6 + export const onRequest = defineMiddleware(async (context, next) => { 7 + const url = new URL(context.request.url); 8 + const rewriteParam = url.searchParams.get('rewrite'); 9 + 10 + // Activate rewrite: ?rewrite=your-secret 11 + if (rewriteParam === REWRITE_SECRET) { 12 + const response = await next(); 13 + const newResponse = new Response(response.body, response); 14 + newResponse.headers.append( 15 + 'Set-Cookie', 16 + `${COOKIE_NAME}=true; Path=/; HttpOnly; SameSite=Lax; Max-Age=31536000`, 17 + ); 18 + return newResponse; 19 + } 20 + 21 + // Deactivate rewrite: ?rewrite=off 22 + if (rewriteParam === 'off') { 23 + const response = await next(); 24 + const newResponse = new Response(response.body, response); 25 + newResponse.headers.append( 26 + 'Set-Cookie', 27 + `${COOKIE_NAME}=; Path=/; HttpOnly; SameSite=Lax; Max-Age=0`, 28 + ); 29 + return newResponse; 30 + } 31 + 32 + const cookies = context.request.headers.get('cookie') || ''; 33 + const isRewrite = cookies.includes(`${COOKIE_NAME}=true`); 34 + 35 + context.locals.isRewrite = isRewrite; 36 + 37 + return next(); 38 + });
+5
src/pages/index.astro
··· 7 7 import { getSeasonImage } from '@/utils/images'; 8 8 import ogIndexImage from '@/assets/images/og/index.png'; 9 9 10 + const { isRewrite } = Astro.locals; 11 + if (isRewrite) { 12 + return Astro.redirect('/404'); 13 + } 14 + 10 15 const seasons = await getCollection('seasons'); 11 16 12 17 const ogTitle = 'The Life Series Minecraft hardcore survival multiplayer series.';
+34 -28
src/pages/seasons/7/sessions/[session_id].astro
··· 7 7 import SessionList from '@/components/SessionList.astro'; 8 8 import { getMemberImage } from '@/utils/images'; 9 9 10 - export async function getStaticPaths() { 11 - function createSeasonSessionList(season: CollectionEntry<'seasons'>, sessionNumber: number) { 12 - return Object.entries(season.data.videos).map(([member, memberVideos]) => { 13 - return { 14 - [member]: memberVideos.filter((video) => !video.isMovie)[sessionNumber - 1], 15 - }; 16 - }); 17 - } 10 + const { isRewrite } = Astro.locals; 11 + if (isRewrite) { 12 + return Astro.redirect('/404'); 13 + } 18 14 19 - const season = await getEntry('seasons', '7'); 20 - if (!season) { 21 - return; 22 - } 23 - 24 - const sessionNumbers = season.data.sessionCount 25 - ? Array.from(Array(season.data.sessionCount).keys()) 26 - .map((sessionIndex) => ++sessionIndex) 27 - .reverse() 28 - : []; 29 - 30 - return sessionNumbers.map((sessionNumber) => { 15 + function createSeasonSessionList(season: CollectionEntry<'seasons'>, sessionNumber: number) { 16 + return Object.entries(season.data.videos).map(([member, memberVideos]) => { 31 17 return { 32 - params: { season_id: season.id, session_id: sessionNumber }, 33 - props: { 34 - season: season, 35 - sessions: createSeasonSessionList(season, sessionNumber), 36 - sessionNumbers, 37 - sessionNumber, 38 - }, 18 + [member]: memberVideos.filter((video) => !video.isMovie)[sessionNumber - 1], 39 19 }; 40 20 }); 41 21 } 42 22 43 - const { season, sessions, sessionNumbers, sessionNumber } = Astro.props; 23 + const seasonSeven = await getEntry('seasons', '7'); 24 + if (!seasonSeven) { 25 + return; 26 + } 27 + 28 + const seasonSevenSessionNumbers = seasonSeven.data.sessionCount 29 + ? Array.from(Array(seasonSeven.data.sessionCount).keys()) 30 + .map((sessionIndex) => ++sessionIndex) 31 + .reverse() 32 + : []; 33 + 34 + const pages = seasonSevenSessionNumbers.map((sessionNumber) => { 35 + return { 36 + params: { session_id: sessionNumber }, 37 + props: { 38 + season: seasonSeven, 39 + sessions: createSeasonSessionList(seasonSeven, sessionNumber), 40 + sessionNumbers: seasonSevenSessionNumbers, 41 + sessionNumber, 42 + }, 43 + }; 44 + }); 45 + 46 + const { session_id } = Astro.params; 47 + const page = pages.find((page) => `${page.params.session_id}` === session_id); 48 + if (!page) return Astro.redirect('/404'); 49 + const { season, sessions, sessionNumbers, sessionNumber } = page.props; 44 50 45 51 const title = `Session ${sessionNumber} · ${season.data.title}`; 46 52 ---
+21 -15
src/pages/seasons/[season_id].astro
··· 5 5 import SessionList from '@/components/SessionList.astro'; 6 6 import { getSeasonOGImage } from '@/utils/images'; 7 7 8 - export async function getStaticPaths() { 9 - const seasons = await getCollection('seasons'); 8 + const { isRewrite } = Astro.locals; 9 + if (isRewrite) { 10 + return Astro.redirect('/404'); 11 + } 10 12 11 - return seasons.map((season) => { 12 - const sessions = season.data.sessionCount 13 - ? Array.from(Array(season.data.sessionCount).keys()) 14 - .map((sessionIndex) => ++sessionIndex) 15 - .reverse() 16 - : []; 13 + const seasons = await getCollection('seasons'); 17 14 18 - return { 19 - params: { season_id: season.id }, 20 - props: { season, sessions }, 21 - }; 22 - }); 23 - } 15 + const pages = seasons.map((season) => { 16 + const sessions = season.data.sessionCount 17 + ? Array.from(Array(season.data.sessionCount).keys()) 18 + .map((sessionIndex) => ++sessionIndex) 19 + .reverse() 20 + : []; 24 21 25 - const { season, sessions } = Astro.props; 22 + return { 23 + params: { season_id: season.id }, 24 + props: { season, sessions }, 25 + }; 26 + }); 27 + 28 + const { season_id } = Astro.params; 29 + const page = pages.find((page) => page.params.season_id === season_id); 30 + if (!page) return Astro.redirect('/404'); 31 + const { season, sessions } = page.props; 26 32 27 33 const title = `${season.data.title}`; 28 34
+35 -29
src/pages/seasons/[season_id]/[member_name].astro
··· 4 4 import { YouTube } from '@astro-community/astro-embed-youtube'; 5 5 import SeasonsLayout from '@/layouts/SeasonsLayout.astro'; 6 6 7 - export async function getStaticPaths() { 8 - async function asyncFilter<T>(arr: T[], predicate: (value: T) => {}) { 9 - return Promise.all(arr.map(predicate)).then((results) => 10 - arr.filter((_: any, index: number) => results[index]), 11 - ); 12 - } 7 + const { isRewrite } = Astro.locals; 8 + if (isRewrite) { 9 + return Astro.redirect('/404'); 10 + } 13 11 14 - const seasons = await getCollection('seasons'); 15 - const members = await getCollection('members'); 12 + async function asyncFilter<T>(arr: T[], predicate: (value: T) => {}) { 13 + return Promise.all(arr.map(predicate)).then((results) => 14 + arr.filter((_: any, index: number) => results[index]), 15 + ); 16 + } 16 17 17 - const result = seasons.map((season) => { 18 - return members.map((member) => { 19 - return { 20 - params: { season_id: season.id, member_name: member.data.name }, 21 - props: { 22 - season, 23 - member, 24 - videos: season.data.videos[member.data.name] ?? [], 25 - }, 26 - }; 27 - }); 28 - }); 18 + const seasons = await getCollection('seasons'); 19 + const members = await getCollection('members'); 29 20 30 - const flatResult = result.flat(); 21 + const result = seasons.map((season) => { 22 + return members.map((member) => { 23 + return { 24 + params: { season_id: season.id, member_name: member.data.name }, 25 + props: { 26 + season, 27 + member, 28 + videos: season.data.videos[member.data.name] ?? [], 29 + }, 30 + }; 31 + }); 32 + }); 31 33 32 - const filteredResult = await asyncFilter<(typeof flatResult)[0]>(flatResult, async (result) => { 33 - const season = await getEntry('seasons', result.params.season_id); 34 - const member = await getEntry('members', result.params.member_name); 34 + const flatResult = result.flat(); 35 35 36 - return season && member && Object.keys(season.data.videos).includes(member.data.name); 37 - }); 36 + const pages = await asyncFilter<(typeof flatResult)[0]>(flatResult, async (result) => { 37 + const season = await getEntry('seasons', result.params.season_id); 38 + const member = await getEntry('members', result.params.member_name); 38 39 39 - return filteredResult; 40 - } 40 + return season && member && Object.keys(season.data.videos).includes(member.data.name); 41 + }); 41 42 42 - const { season, member, videos } = Astro.props; 43 + const { season_id, member_name } = Astro.params; 44 + const page = pages.find( 45 + (page) => page.params.season_id === season_id && page.params.member_name === member_name, 46 + ); 47 + if (!page) return Astro.redirect('/404'); 48 + const { season, member, videos } = page.props; 43 49 44 50 const movie = videos.find((video) => video.isMovie); 45 51 const sessions = videos.filter((video) => !video.isMovie);
+34 -28
src/pages/seasons/nice-life/sessions/[session_id].astro
··· 7 7 import SessionList from '@/components/SessionList.astro'; 8 8 import { getMemberImage } from '@/utils/images'; 9 9 10 - export async function getStaticPaths() { 11 - function createSeasonSessionList(season: CollectionEntry<'seasons'>, sessionNumber: number) { 12 - return Object.entries(season.data.videos).map(([member, memberVideos]) => { 13 - return { 14 - [member]: memberVideos.filter((video) => !video.isMovie)[sessionNumber - 1], 15 - }; 16 - }); 17 - } 10 + const { isRewrite } = Astro.locals; 11 + if (isRewrite) { 12 + return Astro.redirect('/404'); 13 + } 18 14 19 - const season = await getEntry('seasons', 'nice-life'); 20 - if (!season) { 21 - return; 22 - } 23 - 24 - const sessionNumbers = season.data.sessionCount 25 - ? Array.from(Array(season.data.sessionCount).keys()) 26 - .map((sessionIndex) => ++sessionIndex) 27 - .reverse() 28 - : []; 29 - 30 - return sessionNumbers.map((sessionNumber) => { 15 + function createSeasonSessionList(season: CollectionEntry<'seasons'>, sessionNumber: number) { 16 + return Object.entries(season.data.videos).map(([member, memberVideos]) => { 31 17 return { 32 - params: { season_id: season.id, session_id: sessionNumber }, 33 - props: { 34 - season: season, 35 - sessions: createSeasonSessionList(season, sessionNumber), 36 - sessionNumbers, 37 - sessionNumber, 38 - }, 18 + [member]: memberVideos.filter((video) => !video.isMovie)[sessionNumber - 1], 39 19 }; 40 20 }); 41 21 } 42 22 43 - const { season, sessions, sessionNumbers, sessionNumber } = Astro.props; 23 + const seasonNiceLife = await getEntry('seasons', 'nice-life'); 24 + if (!seasonNiceLife) { 25 + return; 26 + } 27 + 28 + const sessionNumbersNiceLife = seasonNiceLife.data.sessionCount 29 + ? Array.from(Array(seasonNiceLife.data.sessionCount).keys()) 30 + .map((sessionIndex) => ++sessionIndex) 31 + .reverse() 32 + : []; 33 + 34 + const pages = sessionNumbersNiceLife.map((sessionNumber) => { 35 + return { 36 + params: { session_id: sessionNumber }, 37 + props: { 38 + season: seasonNiceLife, 39 + sessions: createSeasonSessionList(seasonNiceLife, sessionNumber), 40 + sessionNumbers: sessionNumbersNiceLife, 41 + sessionNumber, 42 + }, 43 + }; 44 + }); 45 + 46 + const { session_id } = Astro.params; 47 + const page = pages.find((page) => `${page.params.session_id}` === session_id); 48 + if (!page) return Astro.redirect('/404'); 49 + const { season, sessions, sessionNumbers, sessionNumber } = page.props; 44 50 45 51 const title = `Session ${sessionNumber} · ${season.data.title}`; 46 52 ---