From 94cea0ce91e0c3e37d1cf1938e8b4a254a818213 Mon Sep 17 00:00:00 2001 From: Yassine Doghri Date: Sat, 1 Mar 2025 13:08:00 +0000 Subject: [PATCH] feat: set min PHP version to 8.4 update CI4 to 4.6.0 + use codeigniter-vite and vite-plugin-codeigniter to load assets --- .devcontainer/Dockerfile | 11 +- .devcontainer/docker-compose.yml | 1 + .devcontainer/uploads.ini | 5 + .gitlab-ci.yml | 4 +- .rsync-filter | 4 +- .stylelintrc.json | 9 +- CONTRIBUTING-DEV.md | 2 +- app/Config/Autoload.php | 1 - app/Config/Cache.php | 14 +- app/Config/Constants.php | 15 - app/Config/Database.php | 1 + app/Config/Feature.php | 12 +- app/Config/Fediverse.php | 2 +- app/Config/Format.php | 13 - app/Config/Images.php | 16 +- app/Config/Kint.php | 3 - app/Config/Mimes.php | 2 +- app/Config/Routes.php | 6 +- app/Config/Routing.php | 2 +- app/Config/Security.php | 19 - app/Config/Services.php | 2 +- app/Config/Vite.php | 42 + app/Controllers/BaseController.php | 2 +- app/Controllers/EpisodeAudioController.php | 8 +- app/Controllers/EpisodeController.php | 4 +- app/Controllers/EpisodePreviewController.php | 2 +- app/Controllers/FeedController.php | 2 +- app/Controllers/HomeController.php | 2 +- app/Controllers/PostController.php | 4 +- .../2021-06-05-190000_add_platforms.php | 2 +- ...2-02-23-100000_add_episode_id_to_posts.php | 2 +- ...2-03-09-113000_add_created_by_to_posts.php | 2 +- .../2024-04-18-180000_refactor_platforms.php | 2 +- ...170000_drop_deprecated_podcasts_fields.php | 2 +- app/Entities/Clip/BaseClip.php | 2 +- app/Entities/Clip/VideoClip.php | 2 +- app/Entities/Episode.php | 12 +- app/Entities/Location.php | 10 +- app/Entities/Person.php | 4 +- app/Entities/Podcast.php | 4 +- app/Filters/AllowCorsFilter.php | 16 +- app/Helpers/breadcrumb_helper.php | 2 +- app/Helpers/components_helper.php | 10 +- app/Helpers/form_helper.php | 6 +- app/Helpers/misc_helper.php | 6 +- app/Helpers/page_helper.php | 2 +- app/Helpers/rss_helper.php | 30 +- app/Helpers/seo_helper.php | 20 +- app/Libraries/Breadcrumb.php | 2 +- app/Libraries/CommentObject.php | 2 +- app/Libraries/HtmlHead.php | 6 +- app/Libraries/Router.php | 45 +- app/Libraries/RssFeed.php | 2 +- app/Libraries/ViewComponents/Component.php | 2 +- app/Libraries/ViewThemes/Theme.php | 2 +- app/Libraries/Vite/Config/Services.php | 30 - app/Libraries/Vite/Config/Vite.php | 20 - app/Libraries/Vite/Vite.php | 111 - app/Models/ClipModel.php | 4 +- app/Models/EpisodeCommentModel.php | 8 +- app/Models/EpisodeModel.php | 12 +- app/Models/PersonModel.php | 6 +- app/Models/PodcastModel.php | 6 +- app/Resources/images/castopod-logo-base.svg | 5 - app/Resources/images/castopod-logo.svg | 6 - .../images/castopod-mascot_confused.svg | 40 - app/Resources/js/admin.ts | 43 - app/Resources/js/app.ts | 5 - app/Resources/js/charts.ts | 3 - app/Resources/js/install.ts | 3 - app/Resources/js/map.ts | 3 - app/Resources/js/podcast.ts | 10 - app/Resources/styles/index.css | 15 - app/Validation/FileRules.php | 8 +- app/Views/Components/Forms/FormComponent.php | 2 +- app/Views/Components/Forms/MarkdownEditor.php | 2 +- app/Views/errors/html/debug.css | 15 +- app/Views/errors/html/error_400.php | 84 + composer.json | 21 +- composer.lock | 518 +-- docker/ci/Dockerfile | 2 +- docker/production/app/Dockerfile | 2 +- docker/production/castopod/Dockerfile | 2 +- docs/package.json | 20 +- docs/pnpm-lock.yaml | 3040 ++++++--------- .../docs/br/getting-started/install.mdx | 4 +- .../docs/da/getting-started/install.mdx | 4 +- .../docs/de/getting-started/install.mdx | 4 +- .../docs/el/getting-started/install.mdx | 4 +- .../docs/en/getting-started/install.mdx | 4 +- .../docs/es/getting-started/install.mdx | 4 +- .../docs/eu/getting-started/install.mdx | 4 +- .../docs/fa/getting-started/install.mdx | 4 +- .../docs/fr/getting-started/install.mdx | 4 +- .../docs/fr2/getting-started/install.mdx | 4 +- .../docs/gd/getting-started/install.mdx | 4 +- .../docs/gl/getting-started/install.mdx | 4 +- .../docs/id/getting-started/install.mdx | 4 +- .../docs/it/getting-started/install.mdx | 4 +- .../docs/ja/getting-started/install.mdx | 4 +- .../docs/kk/getting-started/install.mdx | 4 +- .../docs/ko/getting-started/install.mdx | 4 +- .../docs/nl/getting-started/install.mdx | 4 +- .../docs/oc/getting-started/install.mdx | 4 +- .../docs/pl/getting-started/install.mdx | 4 +- .../docs/pt-br/getting-started/install.mdx | 4 +- .../docs/pt/getting-started/install.mdx | 4 +- .../docs/ro/getting-started/install.mdx | 4 +- .../docs/ru/getting-started/install.mdx | 4 +- .../docs/sk/getting-started/install.mdx | 4 +- .../docs/zh-hans/getting-started/install.mdx | 4 +- .../docs/zh-hant/getting-started/install.mdx | 4 +- ecs.php | 15 +- modules/Admin/Config/Routes.php | 6 +- modules/Admin/Controllers/BaseController.php | 4 +- .../Admin/Controllers/DashboardController.php | 4 +- .../Admin/Controllers/EpisodeController.php | 34 +- .../Admin/Controllers/PersonController.php | 2 +- .../Admin/Controllers/PodcastController.php | 18 +- .../Admin/Controllers/SoundbiteController.php | 4 +- .../Controllers/VideoClipsController.php | 4 +- .../EpisodeAnalyticsController.php | 2 +- .../Analytics/Helpers/analytics_helper.php | 8 +- .../Models/AnalyticsPodcastByEpisodeModel.php | 2 +- .../Models/AnalyticsPodcastModel.php | 4 +- modules/Api/Rest/V1/Config/Routes.php | 4 +- .../Rest/V1/Controllers/EpisodeController.php | 12 +- modules/Api/Rest/V1/Filters/ApiFilter.php | 14 +- modules/Auth/Commands/RolesDoc.php | 14 +- modules/Auth/Config/Routes.php | 2 +- modules/Auth/Controllers/ActionController.php | 2 +- .../Controllers/ContributorController.php | 6 +- modules/Auth/Controllers/LoginController.php | 2 +- .../Auth/Controllers/MagicLinkController.php | 2 +- .../Auth/Controllers/RegisterController.php | 2 +- modules/Auth/Filters/PermissionFilter.php | 13 +- modules/Auth/Helpers/auth_helper.php | 8 +- modules/Fediverse/Commands/Broadcast.php | 2 +- modules/Fediverse/Filters/FediverseFilter.php | 24 +- modules/Fediverse/HttpSignature.php | 7 +- modules/Fediverse/Models/ActivityModel.php | 6 +- modules/Fediverse/Models/ActorModel.php | 8 +- modules/Fediverse/Models/PostModel.php | 5 +- .../Objects/OrderedCollectionObject.php | 2 +- modules/Fediverse/WebFinger.php | 5 +- modules/Install/Commands/CreateSuperadmin.php | 2 +- modules/Install/Config/Routes.php | 2 +- .../Install/Controllers/InstallController.php | 4 +- modules/Media/Entities/Image.php | 2 +- modules/Media/FileManagers/FS.php | 3 +- modules/Media/FileManagers/S3.php | 2 +- modules/Media/Helpers/url_helper.php | 2 +- modules/Media/Models/MediaModel.php | 6 +- modules/MediaClipper/VideoClipper.php | 22 +- modules/Platforms/Config/Routes.php | 2 +- modules/Plugins/Commands/CreatePlugin.php | 10 +- modules/Plugins/Config/Routes.php | 2 +- .../Plugins/Controllers/PluginController.php | 10 +- modules/Plugins/Core/BasePlugin.php | 10 +- modules/Plugins/Core/Markdown.php | 2 +- modules/Plugins/Core/Plugins.php | 6 +- modules/Plugins/Core/RSS.php | 2 +- modules/Plugins/Helpers/plugins_helper.php | 4 +- modules/Plugins/Manifest/ManifestObject.php | 4 +- modules/Plugins/Manifest/manifest.schema.json | 1 - .../PodcastImport/Commands/PodcastImport.php | 20 +- modules/PodcastImport/Config/Routes.php | 2 +- .../Helpers/podcast_import_helper.php | 2 +- modules/PremiumPodcasts/Config/Routes.php | 6 +- modules/PremiumPodcasts/Config/Services.php | 2 +- .../Controllers/SubscriptionController.php | 30 +- .../PremiumPodcasts/Entities/Subscription.php | 2 +- .../Filters/PodcastUnlockFilter.php | 36 +- modules/PremiumPodcasts/PremiumPodcasts.php | 4 +- modules/WebSub/Commands/Publish.php | 2 +- package.json | 86 +- php-icons.php | 8 +- pnpm-lock.yaml | 3277 +++++++++++------ public/castopod-avatar_medium.webp | Bin 10163 -> 0 bytes public/castopod-avatar_thumbnail.webp | Bin 4879 -> 0 bytes public/castopod-avatar_tiny.webp | Bin 1454 -> 0 bytes public/castopod-banner-amber_federation.jpg | Bin 14886 -> 0 bytes public/castopod-banner-amber_medium.webp | Bin 6764 -> 0 bytes public/castopod-banner-amber_small.webp | Bin 1674 -> 0 bytes public/castopod-banner-crimson_federation.jpg | Bin 14859 -> 0 bytes public/castopod-banner-crimson_medium.webp | Bin 6759 -> 0 bytes public/castopod-banner-crimson_small.webp | Bin 1675 -> 0 bytes .../castopod-banner-jacaranda_federation.jpg | Bin 14722 -> 0 bytes public/castopod-banner-jacaranda_medium.webp | Bin 6716 -> 0 bytes public/castopod-banner-jacaranda_small.webp | Bin 1643 -> 0 bytes public/castopod-banner-lake_federation.jpg | Bin 14638 -> 0 bytes public/castopod-banner-lake_medium.webp | Bin 6634 -> 0 bytes public/castopod-banner-lake_small.webp | Bin 1630 -> 0 bytes public/castopod-banner-onyx_federation.jpg | Bin 14734 -> 0 bytes public/castopod-banner-onyx_medium.webp | Bin 6742 -> 0 bytes public/castopod-banner-onyx_small.webp | Bin 1670 -> 0 bytes public/castopod-banner-pine_federation.jpg | Bin 14521 -> 0 bytes public/castopod-banner-pine_medium.webp | Bin 6594 -> 0 bytes public/castopod-banner-pine_small.webp | Bin 1627 -> 0 bytes public/index.php | 4 +- rector.php | 4 +- .../icons/funding/_index.php | 0 .../icons/funding/buymeacoffee.svg | 0 .../icons/funding/default.svg | 0 .../icons/funding/donorbox.svg | 0 .../icons/funding/gofundme.svg | 0 .../icons/funding/helloasso.svg | 0 .../icons/funding/indiegogo.svg | 0 .../icons/funding/kickstarter.svg | 0 .../icons/funding/kisskissbankbank.svg | 0 .../icons/funding/kofi.svg | 0 .../icons/funding/liberapay.svg | 0 .../icons/funding/patreon.svg | 0 .../icons/funding/paypal.svg | 0 .../icons/funding/tipeee.svg | 0 .../icons/funding/ulule.svg | 0 .../icons/podcasting/_index.php | 0 .../icons/podcasting/amazon.svg | 0 .../icons/podcasting/antennapod.svg | 0 .../icons/podcasting/anytime.svg | 0 .../icons/podcasting/apple.svg | 0 .../icons/podcasting/blubrry.svg | 0 .../icons/podcasting/breaker.svg | 0 .../icons/podcasting/breez.svg | 0 .../icons/podcasting/castamatic.svg | 0 .../icons/podcasting/castbox.svg | 0 .../icons/podcasting/castopod.svg | 0 .../icons/podcasting/castro.svg | 0 .../icons/podcasting/deezer.svg | 0 .../icons/podcasting/default.svg | 0 .../icons/podcasting/episodes-fm.svg | 0 .../icons/podcasting/fountain.svg | 0 .../icons/podcasting/fyyd.svg | 0 .../icons/podcasting/google.svg | 0 .../icons/podcasting/gpodder.svg | 0 .../icons/podcasting/ivoox.svg | 0 .../icons/podcasting/listennotes.svg | 0 .../icons/podcasting/overcast.svg | 0 .../icons/podcasting/playerfm.svg | 0 .../icons/podcasting/plink.svg | 0 .../icons/podcasting/pocketcasts.svg | 0 .../icons/podcasting/podbean.svg | 0 .../icons/podcasting/podcastaddict.svg | 0 .../icons/podcasting/podcastguru.svg | 0 .../icons/podcasting/podcastindex.svg | 0 .../icons/podcasting/podchaser.svg | 0 .../icons/podcasting/podcloud.svg | 0 .../icons/podcasting/podfriend.svg | 0 .../icons/podcasting/podinstall.svg | 0 .../icons/podcasting/podlink.svg | 0 .../icons/podcasting/podlp.svg | 0 .../icons/podcasting/podnews.svg | 0 .../icons/podcasting/podtail.svg | 0 .../icons/podcasting/podverse.svg | 0 .../icons/podcasting/radiopublic.svg | 0 .../icons/podcasting/sphinxchat.svg | 0 .../icons/podcasting/spotify.svg | 0 .../icons/podcasting/spreaker.svg | 0 .../icons/podcasting/stitcher.svg | 0 .../icons/podcasting/truefans.svg | 0 .../icons/podcasting/tsacdop.svg | 0 .../icons/podcasting/tunein.svg | 0 .../icons/podcasting/youtube-music.svg | 0 .../icons/social/_index.php | 0 .../icons/social/bluesky.svg | 0 .../icons/social/castopod.svg | 0 .../icons/social/default.svg | 0 .../icons/social/discord.svg | 0 .../icons/social/facebook.svg | 0 .../icons/social/funkwhale.svg | 0 .../icons/social/instagram.svg | 0 .../icons/social/linkedin.svg | 0 .../icons/social/mastodon.svg | 0 .../icons/social/matrix.svg | 0 .../icons/social/misskey.svg | 0 .../icons/social/mobilizon.svg | 0 .../icons/social/peertube.svg | 0 .../icons/social/pixelfed.svg | 0 .../icons/social/pleroma.svg | 0 .../icons/social/plume.svg | 0 .../icons/social/reddit.svg | 0 .../icons/social/slack.svg | 0 .../icons/social/telegram.svg | 0 .../icons/social/threads.svg | 0 .../icons/social/tiktok.svg | 0 .../icons/social/twitch.svg | 0 .../icons/social/twitter.svg | 0 .../icons/social/writefreely.svg | 0 .../icons/social/x.svg | 0 .../icons/social/youtube.svg | 0 .../js/_modules}/Charts.ts | 0 .../js/_modules}/ClientTimezone.ts | 0 .../js/_modules}/Clipboard.ts | 0 .../js/_modules}/DateTimePicker.ts | 0 .../js/_modules}/Dropdown.ts | 0 .../js/_modules}/EpisodesMap.ts | 9 +- .../js/_modules}/FieldArray.ts | 0 .../js/_modules}/HotKeys.ts | 0 .../js/_modules}/Modal.ts | 0 .../js/_modules}/PublishMessageWarning.ts | 0 .../js/_modules}/Select.ts | 0 .../js/_modules}/SelectMulti.ts | 0 .../js/_modules}/SidebarToggler.ts | 0 .../js/_modules}/Slugify.ts | 0 .../js/_modules}/ThemePicker.ts | 0 .../modules => resources/js/_modules}/Time.ts | 0 .../js/_modules}/Toggler.ts | 0 .../js/_modules}/Tooltip.ts | 0 .../js/_modules}/ValidateFileSize.ts | 0 .../js/_modules}/VideoClipBuilder.ts | 0 .../js/_modules}/audio-clipper.ts | 3 +- .../js/_modules}/code-editor.ts | 0 .../js/_modules}/markdown-preview.ts | 0 .../js/_modules}/markdown-write-preview.ts | 0 .../js/_modules}/permalink-edit.ts | 0 .../js/_modules}/play-episode-button.ts | 0 .../js/_modules}/play-soundbite.ts | 0 .../js/_modules}/video-clip-previewer.ts | 0 .../js/admin-audio-player.ts | 2 +- resources/js/admin.ts | 43 + resources/js/app.ts | 5 + .../js/audio-player.ts | 2 +- resources/js/charts.ts | 3 + {app/Resources => resources}/js/embed.ts | 0 {app/Resources => resources}/js/error.ts | 0 resources/js/install.ts | 3 + resources/js/map.ts | 3 + resources/js/podcast.ts | 10 + {app/Resources => resources}/js/typings.d.ts | 0 {app/Resources => resources}/js/vite-env.d.ts | 0 .../static}/fonts/inter-600.woff2 | Bin .../static}/fonts/inter-regular.woff2 | Bin .../static}/fonts/kumbh-sans-700.woff2 | Bin .../static}/fonts/kumbh-sans-regular.woff2 | Bin .../fonts/noto-sans-mono-regular.woff2 | Bin .../static/images}/castopod-avatar.jpg | Bin .../static/images}/castopod-banner-amber.jpg | Bin .../images}/castopod-banner-crimson.jpg | Bin .../images}/castopod-banner-jacaranda.jpg | Bin .../static/images}/castopod-banner-lake.jpg | Bin .../static/images}/castopod-banner-onyx.jpg | Bin .../static/images}/castopod-banner-pine.jpg | Bin .../static/images/castopod-logo-base.svg | 1 + resources/static/images/castopod-logo.svg | 1 + .../images/castopod-mascot_confused.svg | 1 + .../static}/images/marker/marker-icon-2x.png | Bin .../static}/images/marker/marker-icon.png | Bin .../static}/images/marker/marker-shadow.png | Bin .../styles/_modules}/breadcrumb.css | 0 .../styles/_modules}/choices.css | 0 .../styles/_modules}/colorRadioBtn.css | 0 .../styles/_modules}/colors.css | 0 .../styles/_modules}/custom.css | 1 + .../styles/_modules}/dropdown.css | 0 .../styles/_modules}/fonts.css | 10 +- .../styles/_modules}/formInputTabs.css | 0 .../styles/_modules}/inputRange.css | 0 .../styles/_modules}/radioBtn.css | 0 .../styles/_modules}/radioToggler.css | 0 .../styles/_modules}/readMore.css | 0 .../styles/_modules}/seeMore.css | 0 .../styles/_modules}/stickyHeader.css | 0 .../styles/_modules}/switch.css | 0 .../styles/_modules}/tailwind.css | 0 resources/styles/admin.css | 17 + resources/styles/install.css | 17 + resources/styles/site.css | 17 + spark | 4 +- ...ind.config.cjs => tailwind.admin.config.js | 28 +- tailwind.config.js | 159 + tailwind.install.config.js | 106 + tests/modules/Api/Rest/V1/EpisodeTest.php | 2 +- tests/modules/Api/Rest/V1/PodcastTest.php | 2 +- tests/modules/Plugins/PluginsTest.php | 8 +- tests/unit/HealthTest.php | 4 +- themes/cp_admin/_layout.php | 7 +- themes/cp_admin/episode/list.php | 4 +- themes/cp_admin/episode/persons.php | 2 +- themes/cp_admin/episode/video_clips_list.php | 2 +- themes/cp_admin/fediverse/blocked_actors.php | 2 +- themes/cp_admin/fediverse/blocked_domains.php | 2 +- themes/cp_admin/import/_queue_table.php | 2 +- themes/cp_admin/podcast/persons.php | 2 +- themes/cp_app/episode/_layout-preview.php | 35 +- themes/cp_app/episode/_layout.php | 7 +- .../episode/_partials/comment_actions.php | 4 +- .../_partials/comment_actions_from_post.php | 4 +- themes/cp_app/home.php | 2 +- themes/cp_app/pages/credits.php | 1 - themes/cp_app/pages/map.php | 3 - themes/cp_app/podcast/_layout.php | 7 +- themes/cp_app/podcast/activity.php | 1 - themes/cp_app/podcast/unlock.php | 26 +- themes/cp_auth/_layout.php | 3 +- themes/cp_install/_layout.php | 15 +- tsconfig.json | 4 +- vite.config.ts | 66 +- 397 files changed, 4722 insertions(+), 4331 deletions(-) create mode 100644 .devcontainer/uploads.ini create mode 100644 app/Config/Vite.php delete mode 100644 app/Libraries/Vite/Config/Services.php delete mode 100644 app/Libraries/Vite/Config/Vite.php delete mode 100644 app/Libraries/Vite/Vite.php delete mode 100644 app/Resources/images/castopod-logo-base.svg delete mode 100644 app/Resources/images/castopod-logo.svg delete mode 100644 app/Resources/images/castopod-mascot_confused.svg delete mode 100644 app/Resources/js/admin.ts delete mode 100644 app/Resources/js/app.ts delete mode 100644 app/Resources/js/charts.ts delete mode 100644 app/Resources/js/install.ts delete mode 100644 app/Resources/js/map.ts delete mode 100644 app/Resources/js/podcast.ts delete mode 100644 app/Resources/styles/index.css create mode 100644 app/Views/errors/html/error_400.php delete mode 100644 public/castopod-avatar_medium.webp delete mode 100644 public/castopod-avatar_thumbnail.webp delete mode 100644 public/castopod-avatar_tiny.webp delete mode 100644 public/castopod-banner-amber_federation.jpg delete mode 100644 public/castopod-banner-amber_medium.webp delete mode 100644 public/castopod-banner-amber_small.webp delete mode 100644 public/castopod-banner-crimson_federation.jpg delete mode 100644 public/castopod-banner-crimson_medium.webp delete mode 100644 public/castopod-banner-crimson_small.webp delete mode 100644 public/castopod-banner-jacaranda_federation.jpg delete mode 100644 public/castopod-banner-jacaranda_medium.webp delete mode 100644 public/castopod-banner-jacaranda_small.webp delete mode 100644 public/castopod-banner-lake_federation.jpg delete mode 100644 public/castopod-banner-lake_medium.webp delete mode 100644 public/castopod-banner-lake_small.webp delete mode 100644 public/castopod-banner-onyx_federation.jpg delete mode 100644 public/castopod-banner-onyx_medium.webp delete mode 100644 public/castopod-banner-onyx_small.webp delete mode 100644 public/castopod-banner-pine_federation.jpg delete mode 100644 public/castopod-banner-pine_medium.webp delete mode 100644 public/castopod-banner-pine_small.webp rename {app/Resources => resources}/icons/funding/_index.php (100%) rename {app/Resources => resources}/icons/funding/buymeacoffee.svg (100%) rename {app/Resources => resources}/icons/funding/default.svg (100%) rename {app/Resources => resources}/icons/funding/donorbox.svg (100%) rename {app/Resources => resources}/icons/funding/gofundme.svg (100%) rename {app/Resources => resources}/icons/funding/helloasso.svg (100%) rename {app/Resources => resources}/icons/funding/indiegogo.svg (100%) rename {app/Resources => resources}/icons/funding/kickstarter.svg (100%) rename {app/Resources => resources}/icons/funding/kisskissbankbank.svg (100%) rename {app/Resources => resources}/icons/funding/kofi.svg (100%) rename {app/Resources => resources}/icons/funding/liberapay.svg (100%) rename {app/Resources => resources}/icons/funding/patreon.svg (100%) rename {app/Resources => resources}/icons/funding/paypal.svg (100%) rename {app/Resources => resources}/icons/funding/tipeee.svg (100%) rename {app/Resources => resources}/icons/funding/ulule.svg (100%) rename {app/Resources => resources}/icons/podcasting/_index.php (100%) rename {app/Resources => resources}/icons/podcasting/amazon.svg (100%) rename {app/Resources => resources}/icons/podcasting/antennapod.svg (100%) rename {app/Resources => resources}/icons/podcasting/anytime.svg (100%) rename {app/Resources => resources}/icons/podcasting/apple.svg (100%) rename {app/Resources => resources}/icons/podcasting/blubrry.svg (100%) rename {app/Resources => resources}/icons/podcasting/breaker.svg (100%) rename {app/Resources => resources}/icons/podcasting/breez.svg (100%) rename {app/Resources => resources}/icons/podcasting/castamatic.svg (100%) rename {app/Resources => resources}/icons/podcasting/castbox.svg (100%) rename {app/Resources => resources}/icons/podcasting/castopod.svg (100%) rename {app/Resources => resources}/icons/podcasting/castro.svg (100%) rename {app/Resources => resources}/icons/podcasting/deezer.svg (100%) rename {app/Resources => resources}/icons/podcasting/default.svg (100%) rename {app/Resources => resources}/icons/podcasting/episodes-fm.svg (100%) rename {app/Resources => resources}/icons/podcasting/fountain.svg (100%) rename {app/Resources => resources}/icons/podcasting/fyyd.svg (100%) rename {app/Resources => resources}/icons/podcasting/google.svg (100%) rename {app/Resources => resources}/icons/podcasting/gpodder.svg (100%) rename {app/Resources => resources}/icons/podcasting/ivoox.svg (100%) rename {app/Resources => resources}/icons/podcasting/listennotes.svg (100%) rename {app/Resources => resources}/icons/podcasting/overcast.svg (100%) rename {app/Resources => resources}/icons/podcasting/playerfm.svg (100%) rename {app/Resources => resources}/icons/podcasting/plink.svg (100%) rename {app/Resources => resources}/icons/podcasting/pocketcasts.svg (100%) rename {app/Resources => resources}/icons/podcasting/podbean.svg (100%) rename {app/Resources => resources}/icons/podcasting/podcastaddict.svg (100%) rename {app/Resources => resources}/icons/podcasting/podcastguru.svg (100%) rename {app/Resources => resources}/icons/podcasting/podcastindex.svg (100%) rename {app/Resources => resources}/icons/podcasting/podchaser.svg (100%) rename {app/Resources => resources}/icons/podcasting/podcloud.svg (100%) rename {app/Resources => resources}/icons/podcasting/podfriend.svg (100%) rename {app/Resources => resources}/icons/podcasting/podinstall.svg (100%) rename {app/Resources => resources}/icons/podcasting/podlink.svg (100%) rename {app/Resources => resources}/icons/podcasting/podlp.svg (100%) rename {app/Resources => resources}/icons/podcasting/podnews.svg (100%) rename {app/Resources => resources}/icons/podcasting/podtail.svg (100%) rename {app/Resources => resources}/icons/podcasting/podverse.svg (100%) rename {app/Resources => resources}/icons/podcasting/radiopublic.svg (100%) rename {app/Resources => resources}/icons/podcasting/sphinxchat.svg (100%) rename {app/Resources => resources}/icons/podcasting/spotify.svg (100%) rename {app/Resources => resources}/icons/podcasting/spreaker.svg (100%) rename {app/Resources => resources}/icons/podcasting/stitcher.svg (100%) rename {app/Resources => resources}/icons/podcasting/truefans.svg (100%) rename {app/Resources => resources}/icons/podcasting/tsacdop.svg (100%) rename {app/Resources => resources}/icons/podcasting/tunein.svg (100%) rename {app/Resources => resources}/icons/podcasting/youtube-music.svg (100%) rename {app/Resources => resources}/icons/social/_index.php (100%) rename {app/Resources => resources}/icons/social/bluesky.svg (100%) rename {app/Resources => resources}/icons/social/castopod.svg (100%) rename {app/Resources => resources}/icons/social/default.svg (100%) rename {app/Resources => resources}/icons/social/discord.svg (100%) rename {app/Resources => resources}/icons/social/facebook.svg (100%) rename {app/Resources => resources}/icons/social/funkwhale.svg (100%) rename {app/Resources => resources}/icons/social/instagram.svg (100%) rename {app/Resources => resources}/icons/social/linkedin.svg (100%) rename {app/Resources => resources}/icons/social/mastodon.svg (100%) rename {app/Resources => resources}/icons/social/matrix.svg (100%) rename {app/Resources => resources}/icons/social/misskey.svg (100%) rename {app/Resources => resources}/icons/social/mobilizon.svg (100%) rename {app/Resources => resources}/icons/social/peertube.svg (100%) rename {app/Resources => resources}/icons/social/pixelfed.svg (100%) rename {app/Resources => resources}/icons/social/pleroma.svg (100%) rename {app/Resources => resources}/icons/social/plume.svg (100%) rename {app/Resources => resources}/icons/social/reddit.svg (100%) rename {app/Resources => resources}/icons/social/slack.svg (100%) rename {app/Resources => resources}/icons/social/telegram.svg (100%) rename {app/Resources => resources}/icons/social/threads.svg (100%) rename {app/Resources => resources}/icons/social/tiktok.svg (100%) rename {app/Resources => resources}/icons/social/twitch.svg (100%) rename {app/Resources => resources}/icons/social/twitter.svg (100%) rename {app/Resources => resources}/icons/social/writefreely.svg (100%) rename {app/Resources => resources}/icons/social/x.svg (100%) rename {app/Resources => resources}/icons/social/youtube.svg (100%) rename {app/Resources/js/modules => resources/js/_modules}/Charts.ts (100%) rename {app/Resources/js/modules => resources/js/_modules}/ClientTimezone.ts (100%) rename {app/Resources/js/modules => resources/js/_modules}/Clipboard.ts (100%) rename {app/Resources/js/modules => resources/js/_modules}/DateTimePicker.ts (100%) rename {app/Resources/js/modules => resources/js/_modules}/Dropdown.ts (100%) rename {app/Resources/js/modules => resources/js/_modules}/EpisodesMap.ts (91%) rename {app/Resources/js/modules => resources/js/_modules}/FieldArray.ts (100%) rename {app/Resources/js/modules => resources/js/_modules}/HotKeys.ts (100%) rename {app/Resources/js/modules => resources/js/_modules}/Modal.ts (100%) rename {app/Resources/js/modules => resources/js/_modules}/PublishMessageWarning.ts (100%) rename {app/Resources/js/modules => resources/js/_modules}/Select.ts (100%) rename {app/Resources/js/modules => resources/js/_modules}/SelectMulti.ts (100%) rename {app/Resources/js/modules => resources/js/_modules}/SidebarToggler.ts (100%) rename {app/Resources/js/modules => resources/js/_modules}/Slugify.ts (100%) rename {app/Resources/js/modules => resources/js/_modules}/ThemePicker.ts (100%) rename {app/Resources/js/modules => resources/js/_modules}/Time.ts (100%) rename {app/Resources/js/modules => resources/js/_modules}/Toggler.ts (100%) rename {app/Resources/js/modules => resources/js/_modules}/Tooltip.ts (100%) rename {app/Resources/js/modules => resources/js/_modules}/ValidateFileSize.ts (100%) rename {app/Resources/js/modules => resources/js/_modules}/VideoClipBuilder.ts (100%) rename {app/Resources/js/modules => resources/js/_modules}/audio-clipper.ts (99%) rename {app/Resources/js/modules => resources/js/_modules}/code-editor.ts (100%) rename {app/Resources/js/modules => resources/js/_modules}/markdown-preview.ts (100%) rename {app/Resources/js/modules => resources/js/_modules}/markdown-write-preview.ts (100%) rename {app/Resources/js/modules => resources/js/_modules}/permalink-edit.ts (100%) rename {app/Resources/js/modules => resources/js/_modules}/play-episode-button.ts (100%) rename {app/Resources/js/modules => resources/js/_modules}/play-soundbite.ts (100%) rename {app/Resources/js/modules => resources/js/_modules}/video-clip-previewer.ts (100%) rename {app/Resources => resources}/js/admin-audio-player.ts (98%) create mode 100644 resources/js/admin.ts create mode 100644 resources/js/app.ts rename {app/Resources => resources}/js/audio-player.ts (98%) create mode 100644 resources/js/charts.ts rename {app/Resources => resources}/js/embed.ts (100%) rename {app/Resources => resources}/js/error.ts (100%) create mode 100644 resources/js/install.ts create mode 100644 resources/js/map.ts create mode 100644 resources/js/podcast.ts rename {app/Resources => resources}/js/typings.d.ts (100%) rename {app/Resources => resources}/js/vite-env.d.ts (100%) rename {app/Resources => resources/static}/fonts/inter-600.woff2 (100%) rename {app/Resources => resources/static}/fonts/inter-regular.woff2 (100%) rename {app/Resources => resources/static}/fonts/kumbh-sans-700.woff2 (100%) rename {app/Resources => resources/static}/fonts/kumbh-sans-regular.woff2 (100%) rename {app/Resources => resources/static}/fonts/noto-sans-mono-regular.woff2 (100%) rename {public => resources/static/images}/castopod-avatar.jpg (100%) rename {public => resources/static/images}/castopod-banner-amber.jpg (100%) rename {public => resources/static/images}/castopod-banner-crimson.jpg (100%) rename {public => resources/static/images}/castopod-banner-jacaranda.jpg (100%) rename {public => resources/static/images}/castopod-banner-lake.jpg (100%) rename {public => resources/static/images}/castopod-banner-onyx.jpg (100%) rename {public => resources/static/images}/castopod-banner-pine.jpg (100%) create mode 100644 resources/static/images/castopod-logo-base.svg create mode 100644 resources/static/images/castopod-logo.svg create mode 100644 resources/static/images/castopod-mascot_confused.svg rename {app/Resources => resources/static}/images/marker/marker-icon-2x.png (100%) rename {app/Resources => resources/static}/images/marker/marker-icon.png (100%) rename {app/Resources => resources/static}/images/marker/marker-shadow.png (100%) rename {app/Resources/styles => resources/styles/_modules}/breadcrumb.css (100%) rename {app/Resources/styles => resources/styles/_modules}/choices.css (100%) rename {app/Resources/styles => resources/styles/_modules}/colorRadioBtn.css (100%) rename {app/Resources/styles => resources/styles/_modules}/colors.css (100%) rename {app/Resources/styles => resources/styles/_modules}/custom.css (97%) rename {app/Resources/styles => resources/styles/_modules}/dropdown.css (100%) rename {app/Resources/styles => resources/styles/_modules}/fonts.css (67%) rename {app/Resources/styles => resources/styles/_modules}/formInputTabs.css (100%) rename {app/Resources/styles => resources/styles/_modules}/inputRange.css (100%) rename {app/Resources/styles => resources/styles/_modules}/radioBtn.css (100%) rename {app/Resources/styles => resources/styles/_modules}/radioToggler.css (100%) rename {app/Resources/styles => resources/styles/_modules}/readMore.css (100%) rename {app/Resources/styles => resources/styles/_modules}/seeMore.css (100%) rename {app/Resources/styles => resources/styles/_modules}/stickyHeader.css (100%) rename {app/Resources/styles => resources/styles/_modules}/switch.css (100%) rename {app/Resources/styles => resources/styles/_modules}/tailwind.css (100%) create mode 100644 resources/styles/admin.css create mode 100644 resources/styles/install.css create mode 100644 resources/styles/site.css rename tailwind.config.cjs => tailwind.admin.config.js (91%) create mode 100644 tailwind.config.js create mode 100644 tailwind.install.config.js diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index b4c12b9b..d57bbdd0 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -4,7 +4,7 @@ # ⚠️ NOT optimized for production # should be used only for development purposes #--------------------------------------------------- -FROM php:8.3-fpm +FROM php:8.4-fpm LABEL maintainer="Yassine Doghri " @@ -47,11 +47,4 @@ RUN curl -fsSL https://deb.nodesource.com/setup_20.x | bash - \ && docker-php-ext-enable redis \ # mysqli for database access && docker-php-ext-install mysqli \ - && docker-php-ext-enable mysqli \ - # configure php - && echo "file_uploads = On\n" \ - "memory_limit = 512M\n" \ - "upload_max_filesize = 500M\n" \ - "post_max_size = 512M\n" \ - "max_execution_time = 300\n" \ - > /usr/local/etc/php/conf.d/uploads.ini + && docker-php-ext-enable mysqli diff --git a/.devcontainer/docker-compose.yml b/.devcontainer/docker-compose.yml index 5aa15231..c6da47b1 100644 --- a/.devcontainer/docker-compose.yml +++ b/.devcontainer/docker-compose.yml @@ -9,6 +9,7 @@ services: - 8080:8080 volumes: - ../..:/workspaces:cached + - ./uploads.ini:/usr/local/etc/php/conf.d/uploads.ini environment: CI_ENVIRONMENT: development vite_environment: development diff --git a/.devcontainer/uploads.ini b/.devcontainer/uploads.ini new file mode 100644 index 00000000..23b3c1cd --- /dev/null +++ b/.devcontainer/uploads.ini @@ -0,0 +1,5 @@ +file_uploads = On +memory_limit = 512M +upload_max_filesize = 500M +post_max_size = 512M +max_execution_time = 300 diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index e00055b2..69ebc71d 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,4 +1,4 @@ -image: code.castopod.org:5050/adaures/castopod:ci-php8.3 +image: code.castopod.org:5050/adaures/castopod:ci-php8.4 stages: - prepare @@ -70,7 +70,7 @@ lint-php: lint-js: stage: quality script: - - pnpm run prettier + - pnpm run format - pnpm run typecheck - pnpm run lint - pnpm run lint:css diff --git a/.rsync-filter b/.rsync-filter index 877e5cb9..1dbdb0c8 100644 --- a/.rsync-filter +++ b/.rsync-filter @@ -1,7 +1,7 @@ # rsync filter rules to copy required files for Castopod's bundle -+ app/Resources/icons/*** -- app/Resources/** ++ resources/icons/*** +- resources/** + app/*** + modules/*** + plugins/*** diff --git a/.stylelintrc.json b/.stylelintrc.json index b9a5630c..8ea025c1 100644 --- a/.stylelintrc.json +++ b/.stylelintrc.json @@ -10,10 +10,17 @@ "responsive", "variants", "screen", - "layer" + "layer", + "config" ] } ], + "at-rule-no-deprecated": [ + true, + { + "ignoreAtRules": ["apply"] + } + ], "function-no-unknown": [ true, { diff --git a/CONTRIBUTING-DEV.md b/CONTRIBUTING-DEV.md index 80f30433..23350647 100644 --- a/CONTRIBUTING-DEV.md +++ b/CONTRIBUTING-DEV.md @@ -102,7 +102,7 @@ required services will be loaded automagically! 🪄 ```bash # run Vite dev server - pnpm run dev --host + pnpm run dev ``` If there is any issue with the PHP server not running, you can restart them diff --git a/app/Config/Autoload.php b/app/Config/Autoload.php index 5bbc582f..23b183e0 100644 --- a/app/Config/Autoload.php +++ b/app/Config/Autoload.php @@ -58,7 +58,6 @@ class Autoload extends AutoloadConfig 'Themes' => ROOTPATH . 'themes', 'ViewComponents' => APPPATH . 'Libraries/ViewComponents/', 'ViewThemes' => APPPATH . 'Libraries/ViewThemes/', - 'Vite' => APPPATH . 'Libraries/Vite/', ]; /** diff --git a/app/Config/Cache.php b/app/Config/Cache.php index 20bd2f27..e7517039 100644 --- a/app/Config/Cache.php +++ b/app/Config/Cache.php @@ -36,18 +36,6 @@ class Cache extends BaseConfig */ public string $backupHandler = 'dummy'; - /** - * -------------------------------------------------------------------------- - * Cache Directory Path - * -------------------------------------------------------------------------- - * - * The path to where cache files should be stored, if using a file-based - * system. - * - * @deprecated Use the driver-specific variant under $file - */ - public string $storePath = WRITEPATH . 'cache/'; - /** * -------------------------------------------------------------------------- * Key Prefix @@ -88,6 +76,7 @@ class Cache extends BaseConfig * -------------------------------------------------------------------------- * File settings * -------------------------------------------------------------------------- + * * Your file storage preferences can be specified below, if you are using * the File driver. * @@ -102,6 +91,7 @@ class Cache extends BaseConfig * ------------------------------------------------------------------------- * Memcached settings * ------------------------------------------------------------------------- + * * Your Memcached servers can be specified below, if you are using * the Memcached drivers. * diff --git a/app/Config/Constants.php b/app/Config/Constants.php index 1d8bee87..e23c0e0d 100644 --- a/app/Config/Constants.php +++ b/app/Config/Constants.php @@ -104,18 +104,3 @@ defined('EXIT_USER_INPUT') || define('EXIT_USER_INPUT', 7); // invalid user inpu defined('EXIT_DATABASE') || define('EXIT_DATABASE', 8); // database error defined('EXIT__AUTO_MIN') || define('EXIT__AUTO_MIN', 9); // lowest automatically-assigned error code defined('EXIT__AUTO_MAX') || define('EXIT__AUTO_MAX', 125); // highest automatically-assigned error code - -/** - * @deprecated Use \CodeIgniter\Events\Events::PRIORITY_LOW instead. - */ -define('EVENT_PRIORITY_LOW', 200); - -/** - * @deprecated Use \CodeIgniter\Events\Events::PRIORITY_NORMAL instead. - */ -define('EVENT_PRIORITY_NORMAL', 100); - -/** - * @deprecated Use \CodeIgniter\Events\Events::PRIORITY_HIGH instead. - */ -define('EVENT_PRIORITY_HIGH', 10); diff --git a/app/Config/Database.php b/app/Config/Database.php index fce9d053..645d5ce3 100644 --- a/app/Config/Database.php +++ b/app/Config/Database.php @@ -45,6 +45,7 @@ class Database extends Config 'failover' => [], 'port' => 3306, 'numberNative' => false, + 'foundRows' => false, 'dateFormat' => [ 'date' => 'Y-m-d', 'datetime' => 'Y-m-d H:i:s', diff --git a/app/Config/Feature.php b/app/Config/Feature.php index 1e257ac4..76787f2d 100644 --- a/app/Config/Feature.php +++ b/app/Config/Feature.php @@ -12,9 +12,9 @@ use CodeIgniter\Config\BaseConfig; class Feature extends BaseConfig { /** - * Use improved new auto routing instead of the default legacy version. + * Use improved new auto routing instead of the legacy version. */ - public bool $autoRoutesImproved = false; + public bool $autoRoutesImproved = true; /** * Use filter execution order in 4.4 or before. @@ -28,4 +28,12 @@ class Feature extends BaseConfig * If false, `limit(0)` returns no records. (the behavior of 3.1.9 or later in version 3.x.) */ public bool $limitZeroAsAll = true; + + /** + * Use strict location negotiation. + * + * By default, the locale is selected based on a loose comparison of the language code (ISO 639-1) + * Enabling strict comparison will also consider the region code (ISO 3166-1 alpha-2). + */ + public bool $strictLocaleNegotiation = false; } diff --git a/app/Config/Fediverse.php b/app/Config/Fediverse.php index b622d2a3..ddcb5f24 100644 --- a/app/Config/Fediverse.php +++ b/app/Config/Fediverse.php @@ -42,7 +42,7 @@ class Fediverse extends FediverseBaseConfig } ['dirname' => $dirname, 'extension' => $extension, 'filename' => $filename] = pathinfo( - $defaultBanner['path'] + $defaultBanner['path'], ); $defaultBannerPath = $filename; if ($dirname !== '.') { diff --git a/app/Config/Format.php b/app/Config/Format.php index 86b7e2dd..355d341f 100644 --- a/app/Config/Format.php +++ b/app/Config/Format.php @@ -5,7 +5,6 @@ declare(strict_types=1); namespace Config; use CodeIgniter\Config\BaseConfig; -use CodeIgniter\Format\FormatterInterface; use CodeIgniter\Format\JSONFormatter; use CodeIgniter\Format\XMLFormatter; @@ -64,16 +63,4 @@ class Format extends BaseConfig 'application/xml' => 0, 'text/xml' => 0, ]; - - //-------------------------------------------------------------------- - - /** - * A Factory method to return the appropriate formatter for the given mime type. - * - * @deprecated This is an alias of `\CodeIgniter\Format\Format::getFormatter`. Use that instead. - */ - public function getFormatter(string $mime): FormatterInterface - { - return service('format')->getFormatter($mime); - } } diff --git a/app/Config/Images.php b/app/Config/Images.php index 7d3ca529..6e872a0b 100644 --- a/app/Config/Images.php +++ b/app/Config/Images.php @@ -130,7 +130,7 @@ class Images extends BaseConfig ], ]; - public string $avatarDefaultPath = 'castopod-avatar.jpg'; + public string $avatarDefaultPath = 'assets/images/castopod-avatar.jpg'; public string $avatarDefaultMimeType = 'image/jpg'; @@ -139,31 +139,31 @@ class Images extends BaseConfig */ public array $podcastBannerDefaultPaths = [ 'default' => [ - 'path' => 'castopod-banner-pine.jpg', + 'path' => 'assets/images/castopod-banner-pine.jpg', 'mimetype' => 'image/jpeg', ], 'pine' => [ - 'path' => 'castopod-banner-pine.jpg', + 'path' => 'assets/images/castopod-banner-pine.jpg', 'mimetype' => 'image/jpeg', ], 'crimson' => [ - 'path' => 'castopod-banner-crimson.jpg', + 'path' => 'assets/images/castopod-banner-crimson.jpg', 'mimetype' => 'image/jpeg', ], 'amber' => [ - 'path' => 'castopod-banner-amber.jpg', + 'path' => 'assets/images/castopod-banner-amber.jpg', 'mimetype' => 'image/jpeg', ], 'lake' => [ - 'path' => 'castopod-banner-lake.jpg', + 'path' => 'assets/images/castopod-banner-lake.jpg', 'mimetype' => 'image/jpeg', ], 'jacaranda' => [ - 'path' => 'castopod-banner-jacaranda.jpg', + 'path' => 'assets/images/castopod-banner-jacaranda.jpg', 'mimetype' => 'image/jpeg', ], 'onyx' => [ - 'path' => 'castopod-banner-onyx.jpg', + 'path' => 'assets/images/castopod-banner-onyx.jpg', 'mimetype' => 'image/jpeg', ], ]; diff --git a/app/Config/Kint.php b/app/Config/Kint.php index 3cc2f70f..813a68a0 100644 --- a/app/Config/Kint.php +++ b/app/Config/Kint.php @@ -5,7 +5,6 @@ declare(strict_types=1); namespace Config; use Kint\Parser\ConstructablePluginInterface; -use Kint\Renderer\AbstractRenderer; use Kint\Renderer\Rich\TabPluginInterface; use Kint\Renderer\Rich\ValuePluginInterface; @@ -47,8 +46,6 @@ class Kint public bool $richFolder = false; - public int $richSort = AbstractRenderer::SORT_FULL; - /** * @var array>|null */ diff --git a/app/Config/Mimes.php b/app/Config/Mimes.php index 962d4cc1..982b2152 100644 --- a/app/Config/Mimes.php +++ b/app/Config/Mimes.php @@ -308,7 +308,7 @@ class Mimes * @param string|null $proposedExtension - default extension (in case there is more than one with the same mime type) * @return string|null The extension determined, or null if unable to match. */ - public static function guessExtensionFromType(string $type, string $proposedExtension = null): ?string + public static function guessExtensionFromType(string $type, ?string $proposedExtension = null): ?string { $type = trim(strtolower($type), '. '); diff --git a/app/Config/Routes.php b/app/Config/Routes.php index b4888a04..9e8a6cd6 100644 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -266,7 +266,7 @@ $routes->group('@(:podcastHandle)', static function ($routes): void { 'filter' => 'allow-cors', ]); // Actions - $routes->post('action', 'PostController::actionAction/$1/$2', [ + $routes->post('action', 'PostController::action/$1/$2', [ 'as' => 'post-attempt-action', 'filter' => 'permission:podcast$1.interact-as', ]); @@ -292,13 +292,13 @@ $routes->group('@(:podcastHandle)', static function ($routes): void { ]); $routes->get( 'remote/(:postAction)', - 'PostController::remoteAction/$1/$2/$3', + 'PostController::remoteActionAction/$1/$2/$3', [ 'as' => 'post-remote-action', ], ); }); - $routes->get('follow', 'ActorController::follow/$1', [ + $routes->get('follow', 'ActorController::followView/$1', [ 'as' => 'follow', ]); $routes->get('outbox', 'ActorController::outbox/$1', [ diff --git a/app/Config/Routing.php b/app/Config/Routing.php index b7210e8f..1b78b608 100644 --- a/app/Config/Routing.php +++ b/app/Config/Routing.php @@ -138,5 +138,5 @@ class Routing extends BaseRouting * * Default: false */ - public bool $translateUriToCamelCase = false; + public bool $translateUriToCamelCase = true; } diff --git a/app/Config/Security.php b/app/Config/Security.php index 39d915c3..704c6efb 100644 --- a/app/Config/Security.php +++ b/app/Config/Security.php @@ -83,23 +83,4 @@ class Security extends BaseConfig * @see https://codeigniter4.github.io/userguide/libraries/security.html#redirection-on-failure */ public bool $redirect = (ENVIRONMENT === 'production'); - - /** - * -------------------------------------------------------------------------- - * CSRF SameSite - * -------------------------------------------------------------------------- - * - * Setting for CSRF SameSite cookie token. - * - * Allowed values are: None - Lax - Strict - ''. - * - * Defaults to `Lax` as recommended in this link: - * - * @see https://portswigger.net/web-security/csrf/samesite-cookies - * - * @var string - * - * @deprecated `Config\Cookie` $samesite property is used. - */ - public $samesite = 'Lax'; } diff --git a/app/Config/Services.php b/app/Config/Services.php index 52f8233c..39513ce4 100644 --- a/app/Config/Services.php +++ b/app/Config/Services.php @@ -32,7 +32,7 @@ class Services extends BaseService public static function router( ?RouteCollectionInterface $routes = null, ?Request $request = null, - bool $getShared = true + bool $getShared = true, ): Router { if ($getShared) { return static::getSharedInstance('router', $routes, $request); diff --git a/app/Config/Vite.php b/app/Config/Vite.php new file mode 100644 index 00000000..1f85453e --- /dev/null +++ b/app/Config/Vite.php @@ -0,0 +1,42 @@ +gateway; + $installGateway = config('Install') + ->gateway; + + $this->routesAssets = [ + [ + 'routes' => ['*'], + 'exclude' => [$adminGateway . '*', $installGateway . '*'], + 'assets' => ['styles/site.css', 'js/app.ts', 'js/podcast.ts', 'js/audio-player.ts'], + ], + [ + 'routes' => ['/map'], + 'assets' => ['js/map.ts'], + ], + [ + 'routes' => ['/' . $adminGateway . '*'], + 'assets' => ['styles/admin.css', 'js/admin.ts', 'js/admin-audio-player.ts'], + ], + [ + 'routes' => [$installGateway . '*'], + 'assets' => ['styles/install.css'], + ], + ]; + } +} diff --git a/app/Controllers/BaseController.php b/app/Controllers/BaseController.php index 2d589a1f..73ce4155 100644 --- a/app/Controllers/BaseController.php +++ b/app/Controllers/BaseController.php @@ -38,7 +38,7 @@ abstract class BaseController extends Controller public function initController( RequestInterface $request, ResponseInterface $response, - LoggerInterface $logger + LoggerInterface $logger, ): void { $this->helpers = [...$this->helpers, 'svg', 'components', 'misc', 'seo', 'premium_podcasts']; diff --git a/app/Controllers/EpisodeAudioController.php b/app/Controllers/EpisodeAudioController.php index e0aa40ee..f51d6fa8 100644 --- a/app/Controllers/EpisodeAudioController.php +++ b/app/Controllers/EpisodeAudioController.php @@ -46,7 +46,7 @@ class EpisodeAudioController extends Controller public function initController( RequestInterface $request, ResponseInterface $response, - LoggerInterface $logger + LoggerInterface $logger, ): void { // Do Not Edit This Line parent::initController($request, $response, $logger); @@ -93,7 +93,7 @@ class EpisodeAudioController extends Controller // check if podcast is already unlocked before any token validation if ($this->episode->is_premium && ! ($subscription = service('premium_podcasts')->subscription( - $this->episode->podcast->handle + $this->episode->podcast->handle, )) instanceof Subscription) { // look for token as GET parameter if (($token = $this->request->getGet('token')) === null) { @@ -110,7 +110,7 @@ class EpisodeAudioController extends Controller // check if there's a valid subscription for the provided token if (! ($subscription = (new SubscriptionModel())->validateSubscription( $this->episode->podcast->handle, - $token + $token, )) instanceof Subscription) { return $this->response->setStatusCode(401, 'Invalid token!') ->setJSON([ @@ -154,7 +154,7 @@ class EpisodeAudioController extends Controller $audioDuration, $this->episode->published_at->getTimestamp(), $serviceName, - $subscription instanceof Subscription ? $subscription->id : null + $subscription instanceof Subscription ? $subscription->id : null, ); $audioFileURI = new URI(service('file_manager')->getUrl($this->episode->audio->file_key)); diff --git a/app/Controllers/EpisodeController.php b/app/Controllers/EpisodeController.php index e1194174..459186e4 100644 --- a/app/Controllers/EpisodeController.php +++ b/app/Controllers/EpisodeController.php @@ -243,7 +243,7 @@ class EpisodeController extends BaseController /** @var FileManagerInterface $fileManager */ $fileManager = service('file_manager'); $transcriptJsonString = (string) $fileManager->getFileContents( - $this->episode->transcript->json_key + $this->episode->transcript->json_key, ); $data['captions'] = json_decode($transcriptJsonString, true); @@ -365,7 +365,7 @@ class EpisodeController extends BaseController '', ), ); diff --git a/app/Controllers/EpisodePreviewController.php b/app/Controllers/EpisodePreviewController.php index 2640a538..4e2f7b78 100644 --- a/app/Controllers/EpisodePreviewController.php +++ b/app/Controllers/EpisodePreviewController.php @@ -99,7 +99,7 @@ class EpisodePreviewController extends BaseController /** @var FileManagerInterface $fileManager */ $fileManager = service('file_manager'); $transcriptJsonString = (string) $fileManager->getFileContents( - $this->episode->transcript->json_key + $this->episode->transcript->json_key, ); $data['captions'] = json_decode($transcriptJsonString, true); diff --git a/app/Controllers/FeedController.php b/app/Controllers/FeedController.php index 11b54ddd..371be8a2 100644 --- a/app/Controllers/FeedController.php +++ b/app/Controllers/FeedController.php @@ -45,7 +45,7 @@ class FeedController extends Controller if ($redirectToNewFeed && $podcast->new_feed_url !== null && filter_var( $podcast->new_feed_url, - FILTER_VALIDATE_URL + FILTER_VALIDATE_URL, ) && $podcast->new_feed_url !== current_url()) { return redirect()->to($podcast->new_feed_url, 301); } diff --git a/app/Controllers/HomeController.php b/app/Controllers/HomeController.php index a148ec6c..caba1988 100644 --- a/app/Controllers/HomeController.php +++ b/app/Controllers/HomeController.php @@ -22,7 +22,7 @@ class HomeController extends BaseController { $sortOptions = ['activity', 'created_desc', 'created_asc']; $sortBy = in_array($this->request->getGet('sort'), $sortOptions, true) ? $this->request->getGet( - 'sort' + 'sort', ) : 'activity'; $allPodcasts = (new PodcastModel())->getAllPodcasts($sortBy); diff --git a/app/Controllers/PostController.php b/app/Controllers/PostController.php index ba788293..9a96e7e0 100644 --- a/app/Controllers/PostController.php +++ b/app/Controllers/PostController.php @@ -56,7 +56,9 @@ class PostController extends FediversePostController $this->actor = $this->podcast->actor; if (count($params) <= 1) { - throw PageNotFoundException::forPageNotFound(); + unset($params[0]); + + return $this->{$method}(...$params); } if ( diff --git a/app/Database/Migrations/2021-06-05-190000_add_platforms.php b/app/Database/Migrations/2021-06-05-190000_add_platforms.php index 10f248de..2594ef6c 100644 --- a/app/Database/Migrations/2021-06-05-190000_add_platforms.php +++ b/app/Database/Migrations/2021-06-05-190000_add_platforms.php @@ -44,7 +44,7 @@ class AddPlatforms extends BaseMigration ]); $this->forge->addField('`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP()'); $this->forge->addField( - '`updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP() ON UPDATE CURRENT_TIMESTAMP()' + '`updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP() ON UPDATE CURRENT_TIMESTAMP()', ); $this->forge->addPrimaryKey('slug'); $this->forge->createTable('platforms'); diff --git a/app/Database/Migrations/2022-02-23-100000_add_episode_id_to_posts.php b/app/Database/Migrations/2022-02-23-100000_add_episode_id_to_posts.php index d7bfc23e..4b3b1f90 100644 --- a/app/Database/Migrations/2022-02-23-100000_add_episode_id_to_posts.php +++ b/app/Database/Migrations/2022-02-23-100000_add_episode_id_to_posts.php @@ -36,7 +36,7 @@ class AddEpisodeIdToPosts extends BaseMigration 'id', '', 'CASCADE', - $prefix . 'fediverse_posts_episode_id_foreign' + $prefix . 'fediverse_posts_episode_id_foreign', ); $this->forge->processIndexes('fediverse_posts'); } diff --git a/app/Database/Migrations/2022-03-09-113000_add_created_by_to_posts.php b/app/Database/Migrations/2022-03-09-113000_add_created_by_to_posts.php index 7ead61bd..7b924ac0 100644 --- a/app/Database/Migrations/2022-03-09-113000_add_created_by_to_posts.php +++ b/app/Database/Migrations/2022-03-09-113000_add_created_by_to_posts.php @@ -36,7 +36,7 @@ class AddCreatedByToPosts extends BaseMigration 'id', '', 'CASCADE', - $prefix . 'fediverse_posts_created_by_foreign' + $prefix . 'fediverse_posts_created_by_foreign', ); $this->forge->processIndexes('fediverse_posts'); } diff --git a/app/Database/Migrations/2024-04-18-180000_refactor_platforms.php b/app/Database/Migrations/2024-04-18-180000_refactor_platforms.php index c5da952c..6a9935f4 100644 --- a/app/Database/Migrations/2024-04-18-180000_refactor_platforms.php +++ b/app/Database/Migrations/2024-04-18-180000_refactor_platforms.php @@ -114,7 +114,7 @@ class RefactorPlatforms extends Migration ]); $this->forge->addField('`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP()'); $this->forge->addField( - '`updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP() ON UPDATE CURRENT_TIMESTAMP()' + '`updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP() ON UPDATE CURRENT_TIMESTAMP()', ); $this->forge->addPrimaryKey('slug'); $this->forge->createTable('platforms'); diff --git a/app/Database/Migrations/2024-12-10-170000_drop_deprecated_podcasts_fields.php b/app/Database/Migrations/2024-12-10-170000_drop_deprecated_podcasts_fields.php index 559f8333..bcd296e7 100644 --- a/app/Database/Migrations/2024-12-10-170000_drop_deprecated_podcasts_fields.php +++ b/app/Database/Migrations/2024-12-10-170000_drop_deprecated_podcasts_fields.php @@ -23,7 +23,7 @@ class DropDeprecatedPodcastsFields extends BaseMigration $this->forge->dropColumn( 'podcasts', - 'episode_description_footer_markdown,episode_description_footer_html,is_owner_email_removed_from_feed,medium,payment_pointer,verify_txt,custom_rss,partner_id,partner_link_url,partner_image_url' + 'episode_description_footer_markdown,episode_description_footer_html,is_owner_email_removed_from_feed,medium,payment_pointer,verify_txt,custom_rss,partner_id,partner_link_url,partner_image_url', ); } diff --git a/app/Entities/Clip/BaseClip.php b/app/Entities/Clip/BaseClip.php index 5279dc4b..d3d7c3ef 100644 --- a/app/Entities/Clip/BaseClip.php +++ b/app/Entities/Clip/BaseClip.php @@ -84,7 +84,7 @@ class BaseClip extends Entity /** * @param array|null $data */ - public function __construct(array $data = null) + public function __construct(?array $data = null) { parent::__construct($data); } diff --git a/app/Entities/Clip/VideoClip.php b/app/Entities/Clip/VideoClip.php index d82e5a6b..48acf664 100644 --- a/app/Entities/Clip/VideoClip.php +++ b/app/Entities/Clip/VideoClip.php @@ -26,7 +26,7 @@ class VideoClip extends BaseClip /** * @param array|null $data */ - public function __construct(array $data = null) + public function __construct(?array $data = null) { parent::__construct($data); diff --git a/app/Entities/Episode.php b/app/Entities/Episode.php index 16e41d85..b4c65fd6 100644 --- a/app/Entities/Episode.php +++ b/app/Entities/Episode.php @@ -193,7 +193,7 @@ class Episode extends Entity ->handle, $this->slug, $this->getAudio() - ->file_extension + ->file_extension, ); $this->audio_opengraph_url = $this->audio_url . '?_from=-+Open+Graph+-'; @@ -202,7 +202,7 @@ class Episode extends Entity return $this; } - public function setCover(UploadedFile | File $file = null): self + public function setCover(UploadedFile | File|null $file = null): self { if (! $file instanceof File || ($file instanceof UploadedFile && ! $file->isValid())) { return $this; @@ -248,7 +248,7 @@ class Episode extends Entity return $this->cover; } - public function setAudio(UploadedFile | File $file = null): self + public function setAudio(UploadedFile | File|null $file = null): self { if (! $file instanceof File || ($file instanceof UploadedFile && ! $file->isValid())) { return $this; @@ -285,7 +285,7 @@ class Episode extends Entity return $this->audio; } - public function setTranscript(UploadedFile | File $file = null): self + public function setTranscript(UploadedFile | File|null $file = null): self { if (! $file instanceof File || ($file instanceof UploadedFile && ! $file->isValid())) { return $this; @@ -322,7 +322,7 @@ class Episode extends Entity return $this->transcript; } - public function setChapters(UploadedFile | File $file = null): self + public function setChapters(UploadedFile | File|null $file = null): self { if (! $file instanceof File || ($file instanceof UploadedFile && ! $file->isValid())) { return $this; @@ -451,7 +451,7 @@ class Episode extends Entity return $this->comments; } - public function getEmbedUrl(string $theme = null): string + public function getEmbedUrl(?string $theme = null): string { return $theme ? url_to('embed-theme', esc($this->getPodcast()->handle), esc($this->attributes['slug']), $theme) diff --git a/app/Entities/Location.php b/app/Entities/Location.php index 2a387a02..f9872192 100644 --- a/app/Entities/Location.php +++ b/app/Entities/Location.php @@ -22,14 +22,8 @@ use CodeIgniter\Entity\Entity; */ class Location extends Entity { - /** - * @var string - */ private const string OSM_URL = 'https://www.openstreetmap.org/'; - /** - * @var string - */ private const string NOMINATIM_URL = 'https://nominatim.openstreetmap.org/'; public function __construct( @@ -108,14 +102,14 @@ class Location extends Entity if (property_exists($places[0], 'lat') && $places[0]->lat !== null && (property_exists( $places[0], - 'lon' + 'lon', ) && $places[0]->lon !== null)) { $this->attributes['geo'] = "geo:{$places[0]->lat},{$places[0]->lon}"; } if (property_exists($places[0], 'osm_type') && $places[0]->osm_type !== null && (property_exists( $places[0], - 'osm_id' + 'osm_id', ) && $places[0]->osm_id !== null)) { $this->attributes['osm'] = strtoupper(substr((string) $places[0]->osm_type, 0, 1)) . $places[0]->osm_id; } diff --git a/app/Entities/Person.php b/app/Entities/Person.php index 8da212d0..225efae4 100644 --- a/app/Entities/Person.php +++ b/app/Entities/Person.php @@ -56,7 +56,7 @@ class Person extends Entity /** * Saves the person avatar in `public/media/persons/` */ - public function setAvatar(UploadedFile | File $file = null): static + public function setAvatar(UploadedFile | File|null $file = null): static { if (! $file instanceof File || ($file instanceof UploadedFile && ! $file->isValid())) { return $this; @@ -110,7 +110,7 @@ class Person extends Entity $this->roles = (new PersonModel())->getPersonRoles( $this->id, (int) $this->attributes['podcast_id'], - array_key_exists('episode_id', $this->attributes) ? (int) $this->attributes['episode_id'] : null + array_key_exists('episode_id', $this->attributes) ? (int) $this->attributes['episode_id'] : null, ); } diff --git a/app/Entities/Podcast.php b/app/Entities/Podcast.php index 52ac8656..decb3954 100644 --- a/app/Entities/Podcast.php +++ b/app/Entities/Podcast.php @@ -215,7 +215,7 @@ class Podcast extends Entity return $this->actor; } - public function setCover(UploadedFile | File $file = null): self + public function setCover(UploadedFile | File|null $file = null): self { if (! $file instanceof File || ($file instanceof UploadedFile && ! $file->isValid())) { return $this; @@ -258,7 +258,7 @@ class Podcast extends Entity return $this->cover; } - public function setBanner(UploadedFile | File $file = null): self + public function setBanner(UploadedFile | File|null $file = null): self { if (! $file instanceof File || ($file instanceof UploadedFile && ! $file->isValid())) { return $this; diff --git a/app/Filters/AllowCorsFilter.php b/app/Filters/AllowCorsFilter.php index 472be782..578263fe 100644 --- a/app/Filters/AllowCorsFilter.php +++ b/app/Filters/AllowCorsFilter.php @@ -12,19 +12,23 @@ use Override; class AllowCorsFilter implements FilterInterface { /** - * @param string[]|null $arguments + * @param list|null $arguments + * + * @return RequestInterface|ResponseInterface|string|null */ #[Override] - public function before(RequestInterface $request, $arguments = null): void + public function before(RequestInterface $request, $arguments = null) { - // Do something here + return null; } /** - * @param string[]|null $arguments + * @param list|null $arguments + * + * @return ResponseInterface|null */ #[Override] - public function after(RequestInterface $request, ResponseInterface $response, $arguments = null): void + public function after(RequestInterface $request, ResponseInterface $response, $arguments = null) { if (! $response->hasHeader('Cache-Control')) { $response->setHeader('Cache-Control', 'public, max-age=86400'); @@ -34,5 +38,7 @@ class AllowCorsFilter implements FilterInterface ->setHeader('Access-Control-Allow-Headers', '*') // for allowing any headers, insecure ->setHeader('Access-Control-Allow-Methods', 'GET, OPTIONS') // allows GET and OPTIONS methods only ->setHeader('Access-Control-Max-Age', '86400'); + + return $response; } } diff --git a/app/Helpers/breadcrumb_helper.php b/app/Helpers/breadcrumb_helper.php index 31592039..261c8a2a 100644 --- a/app/Helpers/breadcrumb_helper.php +++ b/app/Helpers/breadcrumb_helper.php @@ -9,7 +9,7 @@ if (! function_exists('render_breadcrumb')) { * @param string|null $class to be added to the breadcrumb nav * @return string html breadcrumb */ - function render_breadcrumb(string $class = null): string + function render_breadcrumb(?string $class = null): string { return service('breadcrumb')->render($class); } diff --git a/app/Helpers/components_helper.php b/app/Helpers/components_helper.php index 24a196db..ce8cbe64 100644 --- a/app/Helpers/components_helper.php +++ b/app/Helpers/components_helper.php @@ -234,7 +234,7 @@ if (! function_exists('episode_publication_status_banner')) { $bannerText = lang('Episode.publication_status_banner.text', [ 'publication_status' => $episode->publication_status, 'publication_date' => $episode->published_at instanceof Time ? local_datetime( - $episode->published_at + $episode->published_at, ) : null, ]); $previewLinkLabel = lang('Episode.publication_status_banner.preview'); @@ -267,7 +267,7 @@ if (! function_exists('episode_numbering')) { ?int $episodeNumber = null, ?int $seasonNumber = null, string $class = '', - bool $isAbbr = false + bool $isAbbr = false, ): string { if (! $episodeNumber && ! $seasonNumber) { return ''; @@ -381,7 +381,7 @@ if (! function_exists('relative_time')) { function relative_time(Time $time, string $class = ''): string { $formatter = new IntlDateFormatter(service( - 'request' + 'request', )->getLocale(), IntlDateFormatter::MEDIUM, IntlDateFormatter::NONE); $translatedDate = $time->toLocalizedString($formatter->getPattern()); $datetime = $time->format(DateTime::ATOM); @@ -402,7 +402,7 @@ if (! function_exists('local_datetime')) { function local_datetime(Time $time): string { $formatter = new IntlDateFormatter(service( - 'request' + 'request', )->getLocale(), IntlDateFormatter::MEDIUM, IntlDateFormatter::LONG); $translatedDate = $time->toLocalizedString($formatter->getPattern()); $datetime = $time->format(DateTime::ATOM); @@ -431,7 +431,7 @@ if (! function_exists('local_date')) { function local_date(Time $time): string { $formatter = new IntlDateFormatter(service( - 'request' + 'request', )->getLocale(), IntlDateFormatter::MEDIUM, IntlDateFormatter::NONE); $translatedDate = $time->toLocalizedString($formatter->getPattern()); diff --git a/app/Helpers/form_helper.php b/app/Helpers/form_helper.php index dafaadb2..a8f16d61 100644 --- a/app/Helpers/form_helper.php +++ b/app/Helpers/form_helper.php @@ -23,20 +23,20 @@ if (! function_exists('form_textarea')) { // Unsets default rows and cols if defined in extra field as array or string. if ((is_array($extra) && array_key_exists('rows', $extra)) || (is_string($extra) && stripos( (string) preg_replace('~\s+~', '', $extra), - 'rows=' + 'rows=', ) !== false)) { unset($defaults['rows']); } if ((is_array($extra) && array_key_exists('cols', $extra)) || (is_string($extra) && stripos( (string) preg_replace('~\s+~', '', $extra), - 'cols=' + 'cols=', ) !== false)) { unset($defaults['cols']); } return '\n"; } } diff --git a/app/Helpers/misc_helper.php b/app/Helpers/misc_helper.php index a64807cd..9d812214 100644 --- a/app/Helpers/misc_helper.php +++ b/app/Helpers/misc_helper.php @@ -206,7 +206,7 @@ if (! function_exists('get_podcast_banner')) { if (! $podcast->banner instanceof Image) { $defaultBanner = config('Images') ->podcastBannerDefaultPaths[service('settings')->get('App.theme')] ?? config( - Images::class + Images::class, )->podcastBannerDefaultPaths['default']; $sizes = config('Images') @@ -217,7 +217,7 @@ if (! function_exists('get_podcast_banner')) { // return default site icon url return base_url( - change_file_path($defaultBanner['path'], '_' . $size, $sizeConfig['extension'] ?? null) + change_file_path($defaultBanner['path'], '_' . $size, $sizeConfig['extension'] ?? null), ); } @@ -238,7 +238,7 @@ if (! function_exists('get_podcast_banner_mimetype')) { // return default site icon url return array_key_exists('mimetype', $sizeConfig) ? $sizeConfig['mimetype'] : config( - Images::class + Images::class, )->podcastBannerDefaultMimeType; } diff --git a/app/Helpers/page_helper.php b/app/Helpers/page_helper.php index 835162f1..5b24db14 100644 --- a/app/Helpers/page_helper.php +++ b/app/Helpers/page_helper.php @@ -16,7 +16,7 @@ if (! function_exists('render_page_links')) { * * @return string html pages navigation */ - function render_page_links(string $class = null, string $podcastHandle = null): string + function render_page_links(?string $class = null, ?string $podcastHandle = null): string { $pages = (new PageModel())->findAll(); $links = anchor(route_to('home'), lang('Common.home'), [ diff --git a/app/Helpers/rss_helper.php b/app/Helpers/rss_helper.php index 4c57d1ab..354434b0 100644 --- a/app/Helpers/rss_helper.php +++ b/app/Helpers/rss_helper.php @@ -29,8 +29,8 @@ if (! function_exists('get_rss_feed')) { function get_rss_feed( Podcast $podcast, string $serviceSlug = '', - Subscription $subscription = null, - string $token = null + ?Subscription $subscription = null, + ?string $token = null, ): string { /** @var Plugins $plugins */ $plugins = service('plugins'); @@ -133,7 +133,7 @@ if (! function_exists('get_rss_feed')) { if (in_array( $socialPlatform->slug, ['mastodon', 'peertube', 'funkwhale', 'misskey', 'mobilizon', 'pixelfed', 'plume', 'writefreely'], - true + true, )) { $socialElement->addAttribute('protocol', 'activitypub'); } else { @@ -155,35 +155,35 @@ if (! function_exists('get_rss_feed')) { 'homeUrl', parse_url((string) $socialPlatform->link_url, PHP_URL_SCHEME) . '://' . parse_url( (string) $socialPlatform->link_url, - PHP_URL_HOST - ) . '/public' + PHP_URL_HOST, + ) . '/public', ); $socialSignUpelement->addAttribute( 'signUpUrl', parse_url((string) $socialPlatform->link_url, PHP_URL_SCHEME) . '://' . parse_url( (string) $socialPlatform->link_url, - PHP_URL_HOST - ) . '/auth/sign_up' + PHP_URL_HOST, + ) . '/auth/sign_up', ); $castopodSocialSignUpelement = $castopodSocialElement->addChild( 'socialSignUp', null, - RssFeed::PODCAST_NAMESPACE + RssFeed::PODCAST_NAMESPACE, ); $castopodSocialSignUpelement->addAttribute('priority', '1'); $castopodSocialSignUpelement->addAttribute( 'homeUrl', parse_url((string) $socialPlatform->link_url, PHP_URL_SCHEME) . '://' . parse_url( (string) $socialPlatform->link_url, - PHP_URL_HOST - ) . '/public' + PHP_URL_HOST, + ) . '/public', ); $castopodSocialSignUpelement->addAttribute( 'signUpUrl', parse_url((string) $socialPlatform->link_url, PHP_URL_SCHEME) . '://' . parse_url( (string) $socialPlatform->link_url, - PHP_URL_HOST - ) . '/auth/sign_up' + PHP_URL_HOST, + ) . '/auth/sign_up', ); } } @@ -348,12 +348,12 @@ if (! function_exists('get_rss_feed')) { $socialInteractElement->addAttribute('protocol', 'activitypub'); $socialInteractElement->addAttribute( 'accountId', - "@{$podcast->actor->username}@{$podcast->actor->domain}" + "@{$podcast->actor->username}@{$podcast->actor->domain}", ); $socialInteractElement->addAttribute( 'pubDate', $episode->getPosts()[0] - ->published_at->format(DateTime::ISO8601) + ->published_at->format(DateTime::ISO8601), ); } @@ -363,7 +363,7 @@ if (! function_exists('get_rss_feed')) { $transcriptElement->addAttribute( 'type', Mimes::guessTypeFromExtension( - pathinfo($episode->transcript->file_url, PATHINFO_EXTENSION) + pathinfo($episode->transcript->file_url, PATHINFO_EXTENSION), ) ?? 'text/html', ); // Castopod only allows for captions (SubRip files) diff --git a/app/Helpers/seo_helper.php b/app/Helpers/seo_helper.php index 2418ae38..f4383f4a 100644 --- a/app/Helpers/seo_helper.php +++ b/app/Helpers/seo_helper.php @@ -45,7 +45,7 @@ if (! function_exists('set_podcast_metatags')) { 'publisher' => $podcast->publisher, 'inLanguage' => $podcast->language_code, 'genre' => $category, - ]) + ]), ); /** @var HtmlHead $head */ @@ -65,7 +65,7 @@ if (! function_exists('set_podcast_metatags')) { 'type' => 'application/activity+json', 'href' => url_to('podcast-activity', esc($podcast->handle)), ])->appendRawContent('' . $schema); } } @@ -89,7 +89,7 @@ if (! function_exists('set_episode_metatags')) { 'name' => $episode->podcast->title, 'url' => $episode->podcast->link, ]), - ]) + ]), ); /** @var HtmlHead $head */ @@ -119,11 +119,11 @@ if (! function_exists('set_episode_metatags')) { 'href' => $episode->link, ]) ->appendRawContent('' . '' . $schema); } } @@ -188,7 +188,7 @@ if (! function_exists('set_episode_comment_metatags')) { 'episode-comment', esc($episodeComment->actor->username), $episodeComment->episode->slug, - $episodeComment->id + $episodeComment->id, ), 'datePublished' => $episodeComment->created_at->format(DATE_ATOM), 'author' => new Thing('Person', [ @@ -218,7 +218,7 @@ if (! function_exists('set_episode_comment_metatags')) { 'episode-comment', $episodeComment->actor->username, $episodeComment->episode->slug, - $episodeComment->id + $episodeComment->id, ), ])->appendRawContent((string) $schema); } @@ -279,8 +279,8 @@ if (! function_exists('set_page_metatags')) { $head ->title( $page->title . service('settings')->get('App.siteTitleSeparator') . service( - 'settings' - )->get('App.siteName') + 'settings', + )->get('App.siteName'), ) ->description(esc(service('settings')->get('App.siteDescription'))) ->image(get_site_icon_url('512')) diff --git a/app/Libraries/Breadcrumb.php b/app/Libraries/Breadcrumb.php index 1aba8f45..980f705b 100644 --- a/app/Libraries/Breadcrumb.php +++ b/app/Libraries/Breadcrumb.php @@ -72,7 +72,7 @@ class Breadcrumb /** * Renders the breadcrumb object as an accessible html breadcrumb nav */ - public function render(string $class = null): string + public function render(?string $class = null): string { $listItems = ''; $keys = array_keys($this->links); diff --git a/app/Libraries/CommentObject.php b/app/Libraries/CommentObject.php index 4d8c75d7..e0db85f0 100644 --- a/app/Libraries/CommentObject.php +++ b/app/Libraries/CommentObject.php @@ -39,7 +39,7 @@ class CommentObject extends ObjectType 'episode-comment-replies', esc($comment->actor->username), $comment->episode->slug, - $comment->id + $comment->id, ); $this->cc = [$comment->actor->followers_url]; diff --git a/app/Libraries/HtmlHead.php b/app/Libraries/HtmlHead.php index 99e64dc1..2efb8ac5 100644 --- a/app/Libraries/HtmlHead.php +++ b/app/Libraries/HtmlHead.php @@ -44,12 +44,12 @@ class HtmlHead implements Stringable 'rel' => 'manifest', // @phpstan-ignore-next-line 'href' => isset($podcast) ? route_to('podcast-webmanifest', esc($podcast->handle)) : route_to( - 'webmanifest' + 'webmanifest', ), ]) ->meta( 'theme-color', - WebmanifestController::THEME_COLORS[service('settings')->get('App.theme')]['theme'] + WebmanifestController::THEME_COLORS[service('settings')->get('App.theme')]['theme'], ) ->tag('link', null, [ 'rel' => 'stylesheet', @@ -62,7 +62,7 @@ class HtmlHead implements Stringable if ('serviceWorker' in navigator) { // Use the window load event to keep the page load performant window.addEventListener('load', () => { - navigator.serviceWorker.register('/sw.js'); + navigator.serviceWorker.register('/assets/sw.js'); }); } diff --git a/app/Libraries/Router.php b/app/Libraries/Router.php index 902c8c43..a7ad1196 100644 --- a/app/Libraries/Router.php +++ b/app/Libraries/Router.php @@ -15,9 +15,10 @@ declare(strict_types=1); namespace App\Libraries; use CodeIgniter\Exceptions\PageNotFoundException; -use CodeIgniter\Router\Exceptions\RedirectException; +use CodeIgniter\HTTP\Exceptions\RedirectException; use CodeIgniter\Router\Exceptions\RouterException; use CodeIgniter\Router\Router as CodeIgniterRouter; +use Config\Routing; use Override; class Router extends CodeIgniterRouter @@ -68,7 +69,7 @@ class Router extends CodeIgniterRouter throw new RedirectException( preg_replace('#^' . $routeKey . '$#u', (string) $redirectTo, $uri), - $this->collection->getRedirectCode($routeKey) + $this->collection->getRedirectCode($routeKey), ); } @@ -78,7 +79,7 @@ class Router extends CodeIgniterRouter preg_match( '#^' . str_replace('{locale}', '(?[^/]+)', $matchedKey) . '$#u', $uri, - $matched + $matched, ); if ($this->collection->shouldUseSupportedLocalesOnly() @@ -181,24 +182,50 @@ class Router extends CodeIgniterRouter return true; } - [$controller] = explode('::', (string) $handler); + if (str_contains((string) $handler, '::')) { + [$controller, $methodAndParams] = explode('::', (string) $handler); + } else { + $controller = $handler; + $methodAndParams = ''; + } // Checks `/` in controller name - if (str_contains($controller, '/')) { + if (str_contains((string) $controller, '/')) { throw RouterException::forInvalidControllerName($handler); } if (str_contains((string) $handler, '$') && str_contains($routeKey, '(')) { // Checks dynamic controller - if (str_contains($controller, '$')) { + if (str_contains((string) $controller, '$')) { throw RouterException::forDynamicController($handler); } - // Using back-references - $handler = preg_replace('#^' . $routeKey . '$#u', (string) $handler, $uri); + if (config(Routing::class)->multipleSegmentsOneParam === false) { + // Using back-references + $segments = explode( + '/', + (string) preg_replace('#\A' . $routeKey . '\z#u', (string) $handler, $uri), + ); + } else { + if (str_contains($methodAndParams, '/')) { + [$method, $handlerParams] = explode('/', $methodAndParams, 2); + $params = explode('/', $handlerParams); + $handlerSegments = array_merge([$controller . '::' . $method], $params); + } else { + $handlerSegments = [$handler]; + } + + $segments = []; + + foreach ($handlerSegments as $segment) { + $segments[] = $this->replaceBackReferences($segment, $matches); + } + } + } else { + $segments = explode('/', (string) $handler); } - $this->setRequest(explode('/', (string) $handler)); + $this->setRequest($segments); $this->setMatchedRoute($matchedKey, $handler); diff --git a/app/Libraries/RssFeed.php b/app/Libraries/RssFeed.php index 44b959c5..7c34040b 100644 --- a/app/Libraries/RssFeed.php +++ b/app/Libraries/RssFeed.php @@ -35,7 +35,7 @@ class RssFeed extends SimpleXMLElement $this::ATOM_NAMESPACE, $this::ITUNES_NAMESPACE, $this::PODCAST_NAMESPACE, - $contents + $contents, )); } diff --git a/app/Libraries/ViewComponents/Component.php b/app/Libraries/ViewComponents/Component.php index 8cddcf38..eaf9744a 100644 --- a/app/Libraries/ViewComponents/Component.php +++ b/app/Libraries/ViewComponents/Component.php @@ -53,7 +53,7 @@ abstract class Component implements ComponentInterface 'boolean' => $value === 'true', 'number' => (int) $value, 'array' => json_decode(htmlspecialchars_decode($value), true), - default => $value + default => $value, }; } diff --git a/app/Libraries/ViewThemes/Theme.php b/app/Libraries/ViewThemes/Theme.php index 51d69ffe..b1b9b008 100644 --- a/app/Libraries/ViewThemes/Theme.php +++ b/app/Libraries/ViewThemes/Theme.php @@ -46,7 +46,7 @@ class Theme /** * Returns the path to the specified theme folder. If no theme is provided, will use the current theme. */ - public static function path(string $theme = null): string + public static function path(?string $theme = null): string { if ($theme === null) { $theme = static::current(); diff --git a/app/Libraries/Vite/Config/Services.php b/app/Libraries/Vite/Config/Services.php deleted file mode 100644 index cd5adfde..00000000 --- a/app/Libraries/Vite/Config/Services.php +++ /dev/null @@ -1,30 +0,0 @@ -|null - */ - protected ?array $manifestData = null; - - /** - * @var array|null - */ - protected ?array $manifestCSSData = null; - - public function asset(string $path, string $type): string - { - if (config('Vite')->environment !== 'production') { - return $this->loadDev($path, $type); - } - - return $this->loadProd($path, $type); - } - - private function loadDev(string $path, string $type): string - { - return $this->getHtmlTag(config('Vite') ->baseUrl . config('Vite')->assetsRoot . "/{$path}", $type); - } - - private function loadProd(string $path, string $type): string - { - if ($this->manifestData === null) { - $cacheName = 'vite-manifest'; - if (! ($cachedManifest = cache($cacheName))) { - $manifestPath = config('Vite') - ->assetsRoot . '/' . config('Vite') - ->manifestFile; - try { - if (($manifestContents = file_get_contents($manifestPath)) !== false) { - $cachedManifest = json_decode($manifestContents, true); - cache() - ->save($cacheName, $cachedManifest, DECADE); - } - } catch (ErrorException) { - // ERROR when retrieving the manifest file - die("Could not load manifest: {$manifestPath} file not found!"); - } - } - - $this->manifestData = $cachedManifest; - } - - $html = ''; - if (array_key_exists($path, $this->manifestData)) { - $manifestElement = $this->manifestData[$path]; - - // import css dependencies if any - if (array_key_exists('css', $manifestElement)) { - foreach ($manifestElement['css'] as $cssFile) { - $html .= $this->getHtmlTag('/' . config('Vite')->assetsRoot . '/' . $cssFile, 'css'); - } - } - - // import dependencies first for faster js loading - if (array_key_exists('imports', $manifestElement)) { - foreach ($manifestElement['imports'] as $importPath) { - if (array_key_exists($importPath, $this->manifestData)) { - // import css dependencies if any - if (array_key_exists('css', $this->manifestData[$importPath])) { - foreach ($this->manifestData[$importPath]['css'] as $cssFile) { - $html .= $this->getHtmlTag( - '/' . config('Vite')->assetsRoot . '/' . $cssFile, - 'css' - ); - } - } - - $html .= $this->getHtmlTag( - '/' . config('Vite')->assetsRoot . '/' . $this->manifestData[$importPath]['file'], - 'js' - ); - } - } - } - - $html .= $this->getHtmlTag('/' . config('Vite')->assetsRoot . '/' . $manifestElement['file'], $type); - } - - return $html; - } - - private function getHtmlTag(string $assetUrl, string $type): string - { - return match ($type) { - 'css' => << - HTML - , - 'js' => << - HTML - , - default => '', - }; - } -} diff --git a/app/Models/ClipModel.php b/app/Models/ClipModel.php index 16acbcfc..b65168d8 100644 --- a/app/Models/ClipModel.php +++ b/app/Models/ClipModel.php @@ -67,8 +67,8 @@ class ClipModel extends Model public function __construct( protected string $type = 'audio', - ConnectionInterface &$db = null, - ValidationInterface $validation = null + ?ConnectionInterface &$db = null, + ?ValidationInterface $validation = null, ) { switch ($type) { case 'audio': diff --git a/app/Models/EpisodeCommentModel.php b/app/Models/EpisodeCommentModel.php index f9954dc3..95adb292 100644 --- a/app/Models/EpisodeCommentModel.php +++ b/app/Models/EpisodeCommentModel.php @@ -102,7 +102,7 @@ class EpisodeCommentModel extends UuidModel 'episode-comment', esc($comment->actor->username), $comment->episode->slug, - $comment->id + $comment->id, ); $createActivity = new CreateActivity(); @@ -211,7 +211,7 @@ class EpisodeCommentModel extends UuidModel $postModel = new PostModel(); $episodePostsRepliesBuilder = $postModel->builder(); $episodePostsReplies = $episodePostsRepliesBuilder->select( - 'id, uri, episode_id, actor_id, in_reply_to_id, message, message_html, favourites_count as likes_count, replies_count, published_at as created_at, created_by, 1 as is_from_post' + 'id, uri, episode_id, actor_id, in_reply_to_id, message, message_html, favourites_count as likes_count, replies_count, published_at as created_at, created_by, 1 as is_from_post', ) ->whereIn('in_reply_to_id', static function (BaseBuilder $builder) use (&$episodeId): BaseBuilder { return $builder->select('id') @@ -226,12 +226,12 @@ class EpisodeCommentModel extends UuidModel /** @var BaseResult $allEpisodeComments */ $allEpisodeComments = $this->db->query( - $episodeComments . ' UNION ' . $episodePostsReplies . ' ORDER BY created_at ASC' + $episodeComments . ' UNION ' . $episodePostsReplies . ' ORDER BY created_at ASC', ); return $this->convertUuidFieldsToStrings( $allEpisodeComments->getCustomResultObject($this->tempReturnType), - $this->tempReturnType + $this->tempReturnType, ); } diff --git a/app/Models/EpisodeModel.php b/app/Models/EpisodeModel.php index 9ec14a54..a771431c 100644 --- a/app/Models/EpisodeModel.php +++ b/app/Models/EpisodeModel.php @@ -235,8 +235,8 @@ class EpisodeModel extends UuidModel public function getPodcastEpisodes( int $podcastId, string $podcastType, - string $year = null, - string $season = null + ?string $year = null, + ?string $season = null, ): array { $cacheName = implode( '_', @@ -347,7 +347,7 @@ class EpisodeModel extends UuidModel { $result = $this->builder() ->select( - 'COUNT(DISTINCT season_number) as number_of_seasons, COUNT(*) as number_of_episodes, MIN(published_at) as first_published_at' + 'COUNT(DISTINCT season_number) as number_of_seasons, COUNT(*) as number_of_episodes, MIN(published_at) as first_published_at', ) ->where('podcast_id', $podcastId) ->where('`published_at` <= UTC_TIMESTAMP()', null, false) @@ -384,7 +384,7 @@ class EpisodeModel extends UuidModel /** @var BaseResult $query */ $query = $this->db->query( - 'SELECT `episode_id` as `id`, SUM(`comments_count`) as `comments_count` FROM (' . $episodeCommentsCount . ' UNION ALL ' . $episodePostsRepliesCount . ') x GROUP BY `episode_id`' + 'SELECT `episode_id` as `id`, SUM(`comments_count`) as `comments_count` FROM (' . $episodeCommentsCount . ' UNION ALL ' . $episodePostsRepliesCount . ') x GROUP BY `episode_id`', ); $countsPerEpisodeId = $query->getResultArray(); @@ -480,7 +480,7 @@ class EpisodeModel extends UuidModel ') ->select("{$podcastTable}.created_at AS podcast_created_at") ->select( - "{$podcastTable}.title as podcast_title, {$podcastTable}.handle as podcast_handle, {$podcastTable}.description_markdown as podcast_description_markdown" + "{$podcastTable}.title as podcast_title, {$podcastTable}.handle as podcast_handle, {$podcastTable}.description_markdown as podcast_description_markdown", ) ->join($podcastTable, "{$podcastTable} on {$podcastTable}.id = {$episodeTable}.podcast_id") ->where(' @@ -489,7 +489,7 @@ class EpisodeModel extends UuidModel . 'OR' . $podcastModel->getFullTextMatchClauseForPodcasts($podcastTable, $query) . ') - '); + ', ); return $this->builder; } diff --git a/app/Models/PersonModel.php b/app/Models/PersonModel.php index 1c78007d..15509870 100644 --- a/app/Models/PersonModel.php +++ b/app/Models/PersonModel.php @@ -145,7 +145,7 @@ class PersonModel extends Model $this->select('`id`, `full_name`') ->orderBy('`full_name`', 'ASC') ->findAll(), - static function (array $result, $person): array { + static function (array $result, Person $person): array { $result[] = [ 'value' => $person->id, 'label' => $person->full_name, @@ -215,7 +215,7 @@ class PersonModel extends Model if (! ($found = cache($cacheName))) { $this->builder() ->select( - 'persons.*, episodes_persons.podcast_id as podcast_id, episodes_persons.episode_id as episode_id' + 'persons.*, episodes_persons.podcast_id as podcast_id, episodes_persons.episode_id as episode_id', ) ->distinct() ->join('episodes_persons', 'persons.id = episodes_persons.person_id') @@ -257,7 +257,7 @@ class PersonModel extends Model int $episodeId, int $personId, string $groupSlug, - string $roleSlug + string $roleSlug, ): bool { return $this->db->table('episodes_persons') ->insert([ diff --git a/app/Models/PodcastModel.php b/app/Models/PodcastModel.php index 90f62bf0..9b97f753 100644 --- a/app/Models/PodcastModel.php +++ b/app/Models/PodcastModel.php @@ -163,7 +163,7 @@ class PodcastModel extends Model /** * @return Podcast[] */ - public function getAllPodcasts(string $orderBy = null): array + public function getAllPodcasts(?string $orderBy = null): array { $prefix = $this->db->getPrefix(); @@ -175,7 +175,7 @@ class PodcastModel extends Model ->where( '`' . $prefix . 'fediverse_posts`.`published_at` <= UTC_TIMESTAMP()', null, - false + false, )->orWhere('fediverse_posts.published_at', null) ->groupEnd() ->groupBy('podcasts.actor_id') @@ -478,7 +478,7 @@ class PodcastModel extends Model { if (! array_key_exists( 'guid', - $data['data'] + $data['data'], ) || $data['data']['guid'] === null || $data['data']['guid'] === '') { $uuid = service('uuid'); $feedUrl = url_to('podcast-rss-feed', $data['data']['handle']); diff --git a/app/Resources/images/castopod-logo-base.svg b/app/Resources/images/castopod-logo-base.svg deleted file mode 100644 index 482eebfe..00000000 --- a/app/Resources/images/castopod-logo-base.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/app/Resources/images/castopod-logo.svg b/app/Resources/images/castopod-logo.svg deleted file mode 100644 index 039deb74..00000000 --- a/app/Resources/images/castopod-logo.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/app/Resources/images/castopod-mascot_confused.svg b/app/Resources/images/castopod-mascot_confused.svg deleted file mode 100644 index ab32c445..00000000 --- a/app/Resources/images/castopod-mascot_confused.svg +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/Resources/js/admin.ts b/app/Resources/js/admin.ts deleted file mode 100644 index abef7b9a..00000000 --- a/app/Resources/js/admin.ts +++ /dev/null @@ -1,43 +0,0 @@ -import "@github/markdown-toolbar-element"; -import "@github/relative-time-element"; -import "./modules/audio-clipper"; -import ClientTimezone from "./modules/ClientTimezone"; -import Clipboard from "./modules/Clipboard"; -import DateTimePicker from "./modules/DateTimePicker"; -import Dropdown from "./modules/Dropdown"; -import HotKeys from "./modules/HotKeys"; -import "./modules/markdown-preview"; -import "./modules/markdown-write-preview"; -import SelectMulti from "./modules/SelectMulti"; -import "./modules/permalink-edit"; -import "./modules/play-soundbite"; -import PublishMessageWarning from "./modules/PublishMessageWarning"; -import Select from "./modules/Select"; -import SidebarToggler from "./modules/SidebarToggler"; -import Slugify from "./modules/Slugify"; -import ThemePicker from "./modules/ThemePicker"; -import Time from "./modules/Time"; -import Tooltip from "./modules/Tooltip"; -import ValidateFileSize from "./modules/ValidateFileSize"; -import "./modules/video-clip-previewer"; -import VideoClipBuilder from "./modules/VideoClipBuilder"; -import "./modules/code-editor"; -import "@patternfly/elements/pf-tabs/pf-tabs.js"; -import FieldArray from "./modules/FieldArray"; - -Dropdown(); -Tooltip(); -Select(); -SelectMulti(); -Slugify(); -SidebarToggler(); -ClientTimezone(); -DateTimePicker(); -Time(); -Clipboard(); -ThemePicker(); -PublishMessageWarning(); -HotKeys(); -ValidateFileSize(); -VideoClipBuilder(); -FieldArray(); diff --git a/app/Resources/js/app.ts b/app/Resources/js/app.ts deleted file mode 100644 index 7b944f47..00000000 --- a/app/Resources/js/app.ts +++ /dev/null @@ -1,5 +0,0 @@ -import Dropdown from "./modules/Dropdown"; -import Tooltip from "./modules/Tooltip"; - -Dropdown(); -Tooltip(); diff --git a/app/Resources/js/charts.ts b/app/Resources/js/charts.ts deleted file mode 100644 index 97b2c4d9..00000000 --- a/app/Resources/js/charts.ts +++ /dev/null @@ -1,3 +0,0 @@ -import DrawCharts from "./modules/Charts"; - -DrawCharts(); diff --git a/app/Resources/js/install.ts b/app/Resources/js/install.ts deleted file mode 100644 index e3bb9d53..00000000 --- a/app/Resources/js/install.ts +++ /dev/null @@ -1,3 +0,0 @@ -import Tooltip from "./modules/Tooltip"; - -Tooltip(); diff --git a/app/Resources/js/map.ts b/app/Resources/js/map.ts deleted file mode 100644 index 195a97d0..00000000 --- a/app/Resources/js/map.ts +++ /dev/null @@ -1,3 +0,0 @@ -import DrawEpisodesMaps from "./modules/EpisodesMap"; - -DrawEpisodesMaps(); diff --git a/app/Resources/js/podcast.ts b/app/Resources/js/podcast.ts deleted file mode 100644 index 1d53a99f..00000000 --- a/app/Resources/js/podcast.ts +++ /dev/null @@ -1,10 +0,0 @@ -import "@github/relative-time-element"; -import SidebarToggler from "./modules/SidebarToggler"; -import Time from "./modules/Time"; -import Toggler from "./modules/Toggler"; -import Tooltip from "./modules/Tooltip"; - -Time(); -Toggler(); -Tooltip(); -SidebarToggler(); diff --git a/app/Resources/styles/index.css b/app/Resources/styles/index.css deleted file mode 100644 index b894e7a3..00000000 --- a/app/Resources/styles/index.css +++ /dev/null @@ -1,15 +0,0 @@ -@import url("./tailwind.css"); -@import url("./custom.css"); -@import url("./fonts.css"); -@import url("./colors.css"); -@import url("./breadcrumb.css"); -@import url("./dropdown.css"); -@import url("./choices.css"); -@import url("./radioBtn.css"); -@import url("./colorRadioBtn.css"); -@import url("./switch.css"); -@import url("./radioToggler.css"); -@import url("./formInputTabs.css"); -@import url("./stickyHeader.css"); -@import url("./readMore.css"); -@import url("./seeMore.css"); diff --git a/app/Validation/FileRules.php b/app/Validation/FileRules.php index 579ec3ca..2a149d46 100644 --- a/app/Validation/FileRules.php +++ b/app/Validation/FileRules.php @@ -11,13 +11,15 @@ declare(strict_types=1); namespace App\Validation; use CodeIgniter\Validation\FileRules as ValidationFileRules; +use Override; class FileRules extends ValidationFileRules { /** * Checks an uploaded file to verify that the dimensions are within a specified allowable dimension. */ - public function min_dims(string $blank = null, string $params = ''): bool + #[Override] + public function min_dims(?string $blank = null, string $params = ''): bool { // Grab the file name off the top of the $params // after we split it. @@ -59,7 +61,7 @@ class FileRules extends ValidationFileRules /** * Checks an uploaded image to verify that the ratio corresponds to the params */ - public function is_image_ratio(string $blank = null, string $params = ''): bool + public function is_image_ratio(?string $blank = null, string $params = ''): bool { // Grab the file name off the top of the $params // after we split it. @@ -99,7 +101,7 @@ class FileRules extends ValidationFileRules /** * Checks that an uploaded json file's content is valid */ - public function is_json(string $blank = null, string $params = ''): bool + public function is_json(?string $blank = null, string $params = ''): bool { // Grab the file name off the top of the $params // after we split it. diff --git a/app/Views/Components/Forms/FormComponent.php b/app/Views/Components/Forms/FormComponent.php index 4d8c31d8..bcc46b26 100644 --- a/app/Views/Components/Forms/FormComponent.php +++ b/app/Views/Components/Forms/FormComponent.php @@ -76,7 +76,7 @@ abstract class FormComponent extends Component return old( $this->name, - in_array($this->value, ['', null], true) ? $this->defaultValue : $this->value + in_array($this->value, ['', null], true) ? $this->defaultValue : $this->value, ) ?? ''; } } diff --git a/app/Views/Components/Forms/MarkdownEditor.php b/app/Views/Components/Forms/MarkdownEditor.php index 027d28ad..0549fd05 100644 --- a/app/Views/Components/Forms/MarkdownEditor.php +++ b/app/Views/Components/Forms/MarkdownEditor.php @@ -31,7 +31,7 @@ class MarkdownEditor extends FormComponent $textarea = form_textarea( $this->attributes, - $this->getValue() + $this->getValue(), ); $markdownIcon = (string) icon('markdown-fill', [ 'class' => 'mr-1 text-lg opacity-40', diff --git a/app/Views/errors/html/debug.css b/app/Views/errors/html/debug.css index a17243d0..a022fcd0 100644 --- a/app/Views/errors/html/debug.css +++ b/app/Views/errors/html/debug.css @@ -11,8 +11,9 @@ body { height: 100%; background: var(--main-bg-color); - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, - sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; + font-family: + -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, + "Apple Color Emoji", "Segoe UI Emoji"; color: var(--main-text-color); font-weight: 300; margin: 0; @@ -48,6 +49,7 @@ p.lead { .header { background: var(--light-bg-color); color: var(--dark-text-color); + margin-top: 2.17rem; } .header .container { @@ -77,10 +79,13 @@ p.lead { } .environment { - background: var(--dark-bg-color); - color: var(--light-text-color); + background: var(--brand-primary-color); + color: var(--main-bg-color); text-align: center; - padding: 0.2rem; + padding: calc(4px + 0.2083vw); + width: 100%; + margin-top: -2.14rem; + position: fixed; } .source { diff --git a/app/Views/errors/html/error_400.php b/app/Views/errors/html/error_400.php new file mode 100644 index 00000000..555da042 --- /dev/null +++ b/app/Views/errors/html/error_400.php @@ -0,0 +1,84 @@ + + + + + <?= lang('Errors.badRequest') ?> + + + + +
+

400

+ +

+ + + + + +

+
+ + diff --git a/composer.json b/composer.json index 26acb97e..6fe46ddb 100644 --- a/composer.json +++ b/composer.json @@ -6,13 +6,13 @@ "homepage": "https://castopod.org", "license": "AGPL-3.0-or-later", "require": { - "php": "^8.3", + "php": "^8.4", "adaures/ipcat-php": "^v1.0.0", "adaures/podcast-persons-taxonomy": "^v1.0.1", - "aws/aws-sdk-php": "^3.336.6", + "aws/aws-sdk-php": "^3.342.5", "chrisjean/php-ico": "^1.0.4", "cocur/slugify": "^v4.6.0", - "codeigniter4/framework": "v4.5.6", + "codeigniter4/framework": "v4.6.0", "codeigniter4/settings": "v2.2.0", "codeigniter4/shield": "v1.1.0", "codeigniter4/tasks": "dev-develop", @@ -22,24 +22,25 @@ "league/html-to-markdown": "5.1.1", "melbahja/seo": "^v2.1.1", "michalsn/codeigniter4-uuid": "v1.1.0", - "mpratt/embera": "^2.0.41", + "mpratt/embera": "^2.0.42", "opawg/user-agents-v2-php": "dev-main", "phpseclib/phpseclib": "~2.0.48", "vlucas/phpdotenv": "v5.6.1", "whichbrowser/parser": "^v2.1.8", + "yassinedoghri/codeigniter-vite": "^v1.1.0", "yassinedoghri/php-icons": "^v1.2.0", "yassinedoghri/podcast-feed": "dev-main" }, "require-dev": { - "captainhook/captainhook": "^5.24.1", - "codeigniter/phpstan-codeigniter": "v1.5.1", + "captainhook/captainhook": "^5.25.0", + "codeigniter/phpstan-codeigniter": "v1.5.3", "mikey179/vfsstream": "^v1.6.12", "phpstan/extension-installer": "^1.4.3", - "phpstan/phpstan": "^2.0.4", - "phpunit/phpunit": "^11.5.2", - "rector/rector": "^2.0.4", + "phpstan/phpstan": "^2.1.8", + "phpunit/phpunit": "^11.5.12", + "rector/rector": "^2.0.10", "symplify/coding-standard": "^12.2.3", - "symplify/easy-coding-standard": "^12.5.4" + "symplify/easy-coding-standard": "^12.5.8" }, "autoload": { "psr-4": { diff --git a/composer.lock b/composer.lock index cf8f74a7..230da8ef 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "6b99aa0bcdbc76f94b529ba8c5ff0ee7", + "content-hash": "b16de9c68628342bb1bbfda30d42f788", "packages": [ { "name": "adaures/ipcat-php", @@ -189,16 +189,16 @@ }, { "name": "aws/aws-sdk-php", - "version": "3.336.6", + "version": "3.342.5", "source": { "type": "git", "url": "https://github.com/aws/aws-sdk-php.git", - "reference": "0a99dab427f0a1c082775301141aeac3558691ad" + "reference": "00523323c202121d2cc2e893a1bb7ff14928a5bb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/0a99dab427f0a1c082775301141aeac3558691ad", - "reference": "0a99dab427f0a1c082775301141aeac3558691ad", + "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/00523323c202121d2cc2e893a1bb7ff14928a5bb", + "reference": "00523323c202121d2cc2e893a1bb7ff14928a5bb", "shasum": "" }, "require": { @@ -206,31 +206,30 @@ "ext-json": "*", "ext-pcre": "*", "ext-simplexml": "*", - "guzzlehttp/guzzle": "^6.5.8 || ^7.4.5", - "guzzlehttp/promises": "^1.4.0 || ^2.0", - "guzzlehttp/psr7": "^1.9.1 || ^2.4.5", - "mtdowling/jmespath.php": "^2.6", - "php": ">=7.2.5", - "psr/http-message": "^1.0 || ^2.0" + "guzzlehttp/guzzle": "^7.4.5", + "guzzlehttp/promises": "^2.0", + "guzzlehttp/psr7": "^2.4.5", + "mtdowling/jmespath.php": "^2.8.0", + "php": ">=8.1", + "psr/http-message": "^2.0" }, "require-dev": { "andrewsville/php-token-reflection": "^1.4", "aws/aws-php-sns-message-validator": "~1.0", "behat/behat": "~3.0", - "composer/composer": "^1.10.22", + "composer/composer": "^2.7.8", "dms/phpunit-arraysubset-asserts": "^0.4.0", "doctrine/cache": "~1.4", "ext-dom": "*", "ext-openssl": "*", "ext-pcntl": "*", "ext-sockets": "*", - "nette/neon": "^2.3", - "paragonie/random_compat": ">= 2", "phpunit/phpunit": "^5.6.3 || ^8.5 || ^9.5", - "psr/cache": "^1.0 || ^2.0 || ^3.0", - "psr/simple-cache": "^1.0 || ^2.0 || ^3.0", - "sebastian/comparator": "^1.2.3 || ^4.0", - "yoast/phpunit-polyfills": "^1.0" + "psr/cache": "^2.0 || ^3.0", + "psr/simple-cache": "^2.0 || ^3.0", + "sebastian/comparator": "^1.2.3 || ^4.0 || ^5.0", + "symfony/filesystem": "^v6.4.0 || ^v7.1.0", + "yoast/phpunit-polyfills": "^2.0" }, "suggest": { "aws/aws-php-sns-message-validator": "To validate incoming SNS notifications", @@ -273,24 +272,24 @@ "sdk" ], "support": { - "forum": "https://forums.aws.amazon.com/forum.jspa?forumID=80", + "forum": "https://github.com/aws/aws-sdk-php/discussions", "issues": "https://github.com/aws/aws-sdk-php/issues", - "source": "https://github.com/aws/aws-sdk-php/tree/3.336.6" + "source": "https://github.com/aws/aws-sdk-php/tree/3.342.5" }, - "time": "2024-12-28T04:16:13+00:00" + "time": "2025-03-13T18:04:13+00:00" }, { "name": "brick/math", - "version": "0.12.1", + "version": "0.12.3", "source": { "type": "git", "url": "https://github.com/brick/math.git", - "reference": "f510c0a40911935b77b86859eb5223d58d660df1" + "reference": "866551da34e9a618e64a819ee1e01c20d8a588ba" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/brick/math/zipball/f510c0a40911935b77b86859eb5223d58d660df1", - "reference": "f510c0a40911935b77b86859eb5223d58d660df1", + "url": "https://api.github.com/repos/brick/math/zipball/866551da34e9a618e64a819ee1e01c20d8a588ba", + "reference": "866551da34e9a618e64a819ee1e01c20d8a588ba", "shasum": "" }, "require": { @@ -299,7 +298,7 @@ "require-dev": { "php-coveralls/php-coveralls": "^2.2", "phpunit/phpunit": "^10.1", - "vimeo/psalm": "5.16.0" + "vimeo/psalm": "6.8.8" }, "type": "library", "autoload": { @@ -327,7 +326,7 @@ ], "support": { "issues": "https://github.com/brick/math/issues", - "source": "https://github.com/brick/math/tree/0.12.1" + "source": "https://github.com/brick/math/tree/0.12.3" }, "funding": [ { @@ -335,7 +334,7 @@ "type": "github" } ], - "time": "2023-11-29T23:19:16+00:00" + "time": "2025-02-28T13:11:00+00:00" }, { "name": "chrisjean/php-ico", @@ -448,34 +447,34 @@ }, { "name": "codeigniter4/framework", - "version": "v4.5.6", + "version": "v4.6.0", "source": { "type": "git", "url": "https://github.com/codeigniter4/framework.git", - "reference": "7822476e6c672387b0ca1d64a74040ed28c42d9f" + "reference": "96a1e603b9a0f022b0febb2e249eab6971a7e0d5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/codeigniter4/framework/zipball/7822476e6c672387b0ca1d64a74040ed28c42d9f", - "reference": "7822476e6c672387b0ca1d64a74040ed28c42d9f", + "url": "https://api.github.com/repos/codeigniter4/framework/zipball/96a1e603b9a0f022b0febb2e249eab6971a7e0d5", + "reference": "96a1e603b9a0f022b0febb2e249eab6971a7e0d5", "shasum": "" }, "require": { "ext-intl": "*", "ext-mbstring": "*", - "laminas/laminas-escaper": "^2.13", + "laminas/laminas-escaper": "^2.14", "php": "^8.1", "psr/log": "^3.0" }, "require-dev": { "codeigniter/coding-standard": "^1.7", - "fakerphp/faker": "^1.9", + "fakerphp/faker": "^1.24", "friendsofphp/php-cs-fixer": "^3.47.1", - "kint-php/kint": "^5.0.4", - "mikey179/vfsstream": "^1.6", + "kint-php/kint": "^6.0", + "mikey179/vfsstream": "^1.6.12", "nexusphp/cs-config": "^3.6", "phpunit/phpunit": "^10.5.16 || ^11.2", - "predis/predis": "^1.1 || ^2.0" + "predis/predis": "^1.1 || ^2.3" }, "suggest": { "ext-curl": "If you use CURLRequest class", @@ -514,7 +513,7 @@ "slack": "https://codeigniterchat.slack.com", "source": "https://github.com/codeigniter4/CodeIgniter4" }, - "time": "2024-12-28T18:27:37+00:00" + "time": "2025-01-19T18:31:34+00:00" }, { "name": "codeigniter4/settings", @@ -639,25 +638,22 @@ "source": { "type": "git", "url": "https://github.com/codeigniter4/tasks.git", - "reference": "ec717c428c6f0e8e216e5dfbf18966a26a4f821f" + "reference": "2cb40662a6a312b07d1c64bfb1e9517a2673d939" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/codeigniter4/tasks/zipball/ec717c428c6f0e8e216e5dfbf18966a26a4f821f", - "reference": "ec717c428c6f0e8e216e5dfbf18966a26a4f821f", + "url": "https://api.github.com/repos/codeigniter4/tasks/zipball/2cb40662a6a312b07d1c64bfb1e9517a2673d939", + "reference": "2cb40662a6a312b07d1c64bfb1e9517a2673d939", "shasum": "" }, "require": { "codeigniter4/settings": "^2.0", "ext-json": "*", - "php": "^7.4 || ^8.0" + "php": "^8.1" }, "require-dev": { - "codeigniter/coding-standard": "1.7.*", - "codeigniter4/devkit": "^1.0", - "codeigniter4/framework": "^4.1", - "phpunit/phpunit": "^9.6", - "rector/rector": "1.2.10" + "codeigniter4/devkit": "^1.3", + "codeigniter4/framework": "^4.1" }, "default-branch": true, "type": "library", @@ -715,20 +711,20 @@ "source": "https://github.com/codeigniter4/tasks/tree/develop", "issues": "https://github.com/codeigniter4/tasks/issues" }, - "time": "2024-11-11T12:05:47+00:00" + "time": "2025-02-06T06:54:55+00:00" }, { "name": "composer/ca-bundle", - "version": "1.5.4", + "version": "1.5.6", "source": { "type": "git", "url": "https://github.com/composer/ca-bundle.git", - "reference": "bc0593537a463e55cadf45fd938d23b75095b7e1" + "reference": "f65c239c970e7f072f067ab78646e9f0b2935175" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/ca-bundle/zipball/bc0593537a463e55cadf45fd938d23b75095b7e1", - "reference": "bc0593537a463e55cadf45fd938d23b75095b7e1", + "url": "https://api.github.com/repos/composer/ca-bundle/zipball/f65c239c970e7f072f067ab78646e9f0b2935175", + "reference": "f65c239c970e7f072f067ab78646e9f0b2935175", "shasum": "" }, "require": { @@ -767,7 +763,7 @@ "support": { "irc": "irc://irc.freenode.org/composer", "issues": "https://github.com/composer/ca-bundle/issues", - "source": "https://github.com/composer/ca-bundle/tree/1.5.4" + "source": "https://github.com/composer/ca-bundle/tree/1.5.6" }, "funding": [ { @@ -783,7 +779,7 @@ "type": "tidelift" } ], - "time": "2024-11-27T15:35:25+00:00" + "time": "2025-03-06T14:30:56+00:00" }, { "name": "dflydev/dot-access-data", @@ -1354,16 +1350,16 @@ }, { "name": "laminas/laminas-escaper", - "version": "2.15.0", + "version": "2.16.0", "source": { "type": "git", "url": "https://github.com/laminas/laminas-escaper.git", - "reference": "c612b0488ae486284c39885efca494c180f16351" + "reference": "9cf1f5317ca65b4fd5c6a3c2855e24a187b288c8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-escaper/zipball/c612b0488ae486284c39885efca494c180f16351", - "reference": "c612b0488ae486284c39885efca494c180f16351", + "url": "https://api.github.com/repos/laminas/laminas-escaper/zipball/9cf1f5317ca65b4fd5c6a3c2855e24a187b288c8", + "reference": "9cf1f5317ca65b4fd5c6a3c2855e24a187b288c8", "shasum": "" }, "require": { @@ -1375,12 +1371,11 @@ "zendframework/zend-escaper": "*" }, "require-dev": { - "infection/infection": "^0.27.11", + "infection/infection": "^0.29.8", "laminas/laminas-coding-standard": "~3.0.1", - "maglnet/composer-require-checker": "^3.8.0", - "phpunit/phpunit": "^9.6.22", - "psalm/plugin-phpunit": "^0.19.0", - "vimeo/psalm": "^5.26.1" + "phpunit/phpunit": "^10.5.45", + "psalm/plugin-phpunit": "^0.19.2", + "vimeo/psalm": "^6.6.2" }, "type": "library", "autoload": { @@ -1407,7 +1402,7 @@ "type": "community_bridge" } ], - "time": "2024-12-17T19:39:54+00:00" + "time": "2025-02-17T12:40:19+00:00" }, { "name": "league/commonmark", @@ -1886,16 +1881,16 @@ }, { "name": "mpratt/embera", - "version": "2.0.41", + "version": "2.0.42", "source": { "type": "git", "url": "https://github.com/mpratt/Embera.git", - "reference": "069305b9252a428ba4ae6eb58d3dc8c6d9be5cd0" + "reference": "afa728339c6f078c803c9277a5054ca241b3c469" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/mpratt/Embera/zipball/069305b9252a428ba4ae6eb58d3dc8c6d9be5cd0", - "reference": "069305b9252a428ba4ae6eb58d3dc8c6d9be5cd0", + "url": "https://api.github.com/repos/mpratt/Embera/zipball/afa728339c6f078c803c9277a5054ca241b3c469", + "reference": "afa728339c6f078c803c9277a5054ca241b3c469", "shasum": "" }, "require": { @@ -1904,7 +1899,8 @@ }, "require-dev": { "phpstan/phpstan": "^1.4", - "phpunit/phpunit": "^9.0" + "phpunit/phpunit": "^9.0||^10.0", + "symfony/yaml": "^2.1" }, "suggest": { "ext-curl": "Fetch data using curl instead of using file_get_contents" @@ -1942,7 +1938,7 @@ ], "support": { "issues": "https://github.com/mpratt/Embera/issues", - "source": "https://github.com/mpratt/Embera/tree/2.0.41" + "source": "https://github.com/mpratt/Embera/tree/2.0.42" }, "funding": [ { @@ -1950,7 +1946,7 @@ "type": "paypal" } ], - "time": "2024-08-17T04:27:29+00:00" + "time": "2025-01-04T06:07:59+00:00" }, { "name": "mtdowling/jmespath.php", @@ -2676,16 +2672,16 @@ }, { "name": "ramsey/collection", - "version": "2.0.0", + "version": "2.1.0", "source": { "type": "git", "url": "https://github.com/ramsey/collection.git", - "reference": "a4b48764bfbb8f3a6a4d1aeb1a35bb5e9ecac4a5" + "reference": "3c5990b8a5e0b79cd1cf11c2dc1229e58e93f109" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ramsey/collection/zipball/a4b48764bfbb8f3a6a4d1aeb1a35bb5e9ecac4a5", - "reference": "a4b48764bfbb8f3a6a4d1aeb1a35bb5e9ecac4a5", + "url": "https://api.github.com/repos/ramsey/collection/zipball/3c5990b8a5e0b79cd1cf11c2dc1229e58e93f109", + "reference": "3c5990b8a5e0b79cd1cf11c2dc1229e58e93f109", "shasum": "" }, "require": { @@ -2693,25 +2689,22 @@ }, "require-dev": { "captainhook/plugin-composer": "^5.3", - "ergebnis/composer-normalize": "^2.28.3", - "fakerphp/faker": "^1.21", + "ergebnis/composer-normalize": "^2.45", + "fakerphp/faker": "^1.24", "hamcrest/hamcrest-php": "^2.0", - "jangregor/phpstan-prophecy": "^1.0", - "mockery/mockery": "^1.5", + "jangregor/phpstan-prophecy": "^2.1", + "mockery/mockery": "^1.6", "php-parallel-lint/php-console-highlighter": "^1.0", - "php-parallel-lint/php-parallel-lint": "^1.3", - "phpcsstandards/phpcsutils": "^1.0.0-rc1", - "phpspec/prophecy-phpunit": "^2.0", - "phpstan/extension-installer": "^1.2", - "phpstan/phpstan": "^1.9", - "phpstan/phpstan-mockery": "^1.1", - "phpstan/phpstan-phpunit": "^1.3", - "phpunit/phpunit": "^9.5", - "psalm/plugin-mockery": "^1.1", - "psalm/plugin-phpunit": "^0.18.4", - "ramsey/coding-standard": "^2.0.3", - "ramsey/conventional-commits": "^1.3", - "vimeo/psalm": "^5.4" + "php-parallel-lint/php-parallel-lint": "^1.4", + "phpspec/prophecy-phpunit": "^2.3", + "phpstan/extension-installer": "^1.4", + "phpstan/phpstan": "^2.1", + "phpstan/phpstan-mockery": "^2.0", + "phpstan/phpstan-phpunit": "^2.0", + "phpunit/phpunit": "^10.5", + "ramsey/coding-standard": "^2.3", + "ramsey/conventional-commits": "^1.6", + "roave/security-advisories": "dev-latest" }, "type": "library", "extra": { @@ -2740,19 +2733,9 @@ "keywords": ["array", "collection", "hash", "map", "queue", "set"], "support": { "issues": "https://github.com/ramsey/collection/issues", - "source": "https://github.com/ramsey/collection/tree/2.0.0" + "source": "https://github.com/ramsey/collection/tree/2.1.0" }, - "funding": [ - { - "url": "https://github.com/ramsey", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/ramsey/collection", - "type": "tidelift" - } - ], - "time": "2022-12-31T21:50:55+00:00" + "time": "2025-03-02T04:48:29+00:00" }, { "name": "ramsey/uuid", @@ -3242,6 +3225,62 @@ }, "time": "2024-04-17T12:47:41+00:00" }, + { + "name": "yassinedoghri/codeigniter-vite", + "version": "v1.1.0", + "source": { + "type": "git", + "url": "https://github.com/yassinedoghri/codeigniter-vite.git", + "reference": "b96cff850b868b992871ce7a92703567afc9db79" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/yassinedoghri/codeigniter-vite/zipball/b96cff850b868b992871ce7a92703567afc9db79", + "reference": "b96cff850b868b992871ce7a92703567afc9db79", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "require-dev": { + "codeigniter/phpstan-codeigniter": "v1.5.1", + "codeigniter4/framework": "v4.5.7", + "pestphp/pest": "v3.7.1", + "pestphp/pest-plugin-type-coverage": "v3.2.3", + "phpstan/extension-installer": "^1.4.3", + "phpstan/phpstan": "^2.1.1", + "rector/rector": "^2.0.6", + "symplify/coding-standard": "^12.2.3", + "symplify/easy-coding-standard": "^12.5.5" + }, + "type": "library", + "autoload": { + "psr-4": { + "CodeIgniterVite\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": ["MIT"], + "authors": [ + { + "name": "Yassine Doghri", + "homepage": "https://yassinedoghri.com/" + } + ], + "description": "A simple ViteJS integration for CodeIgniter4 projects.", + "keywords": [ + "codeigniter", + "codeigniter4", + "iconify", + "icons", + "php-icons" + ], + "support": { + "issues": "https://github.com/yassinedoghri/codeigniter-vite/issues", + "source": "https://github.com/yassinedoghri/codeigniter-vite/tree/v1.1.0" + }, + "time": "2025-01-24T13:46:51+00:00" + }, { "name": "yassinedoghri/php-icons", "version": "v1.2.0", @@ -3301,12 +3340,12 @@ "source": { "type": "git", "url": "https://github.com/yassinedoghri/podcast-feed.git", - "reference": "f34156e62c9eef8bd5561f8a585d99501e235505" + "reference": "d617e204fe85e0b7bd12b9d382cae4064af280c8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/yassinedoghri/podcast-feed/zipball/f34156e62c9eef8bd5561f8a585d99501e235505", - "reference": "f34156e62c9eef8bd5561f8a585d99501e235505", + "url": "https://api.github.com/repos/yassinedoghri/podcast-feed/zipball/d617e204fe85e0b7bd12b9d382cae4064af280c8", + "reference": "d617e204fe85e0b7bd12b9d382cae4064af280c8", "shasum": "" }, "require": { @@ -3348,16 +3387,16 @@ "packages-dev": [ { "name": "captainhook/captainhook", - "version": "5.24.1", + "version": "5.25.0", "source": { "type": "git", "url": "https://github.com/captainhookphp/captainhook.git", - "reference": "1e56452fd7a7e486e5955ab72dc9ea34bb52a184" + "reference": "4c5bd310bf08f4d96f9bd4f680f894233f9836fc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/captainhookphp/captainhook/zipball/1e56452fd7a7e486e5955ab72dc9ea34bb52a184", - "reference": "1e56452fd7a7e486e5955ab72dc9ea34bb52a184", + "url": "https://api.github.com/repos/captainhookphp/captainhook/zipball/4c5bd310bf08f4d96f9bd4f680f894233f9836fc", + "reference": "4c5bd310bf08f4d96f9bd4f680f894233f9836fc", "shasum": "" }, "require": { @@ -3368,7 +3407,7 @@ "php": ">=8.0", "sebastianfeldmann/camino": "^0.9.2", "sebastianfeldmann/cli": "^3.3", - "sebastianfeldmann/git": "^3.10", + "sebastianfeldmann/git": "^3.13", "symfony/console": "^2.7 || ^3.0 || ^4.0 || ^5.0 || ^6.0 || ^7.0", "symfony/filesystem": "^2.7 || ^3.0 || ^4.0 || ^5.0 || ^6.0 || ^7.0", "symfony/process": "^2.7 || ^3.0 || ^4.0 || ^5.0 || ^6.0 || ^7.0" @@ -3416,7 +3455,7 @@ ], "support": { "issues": "https://github.com/captainhookphp/captainhook/issues", - "source": "https://github.com/captainhookphp/captainhook/tree/5.24.1" + "source": "https://github.com/captainhookphp/captainhook/tree/5.25.0" }, "funding": [ { @@ -3424,7 +3463,7 @@ "type": "github" } ], - "time": "2024-11-26T18:42:37+00:00" + "time": "2025-02-11T20:42:11+00:00" }, { "name": "captainhook/secrets", @@ -3544,20 +3583,19 @@ }, { "name": "codeigniter/phpstan-codeigniter", - "version": "v1.5.1", + "version": "v1.5.3", "source": { "type": "git", "url": "https://github.com/CodeIgniter/phpstan-codeigniter.git", - "reference": "4bfaba879007c7dfb9c3b687713bd5d45524f067" + "reference": "430e0b44b1a59b34de3cd55678f43472327c0e12" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/CodeIgniter/phpstan-codeigniter/zipball/4bfaba879007c7dfb9c3b687713bd5d45524f067", - "reference": "4bfaba879007c7dfb9c3b687713bd5d45524f067", + "url": "https://api.github.com/repos/CodeIgniter/phpstan-codeigniter/zipball/430e0b44b1a59b34de3cd55678f43472327c0e12", + "reference": "430e0b44b1a59b34de3cd55678f43472327c0e12", "shasum": "" }, "require": { - "codeigniter4/framework": "^4.5", "php": "^8.1", "phpstan/phpstan": "^2.0" }, @@ -3566,6 +3604,7 @@ }, "require-dev": { "codeigniter/coding-standard": "^1.7", + "codeigniter4/framework": "^4.5", "codeigniter4/shield": "^1.0", "friendsofphp/php-cs-fixer": "^3.49", "nexusphp/cs-config": "^3.21", @@ -3608,7 +3647,7 @@ "slack": "https://codeigniterchat.slack.com", "source": "https://github.com/CodeIgniter/phpstan-codeigniter" }, - "time": "2024-12-02T15:33:25+00:00" + "time": "2025-01-24T19:52:36+00:00" }, { "name": "composer/pcre", @@ -3915,16 +3954,16 @@ }, { "name": "friendsofphp/php-cs-fixer", - "version": "v3.65.0", + "version": "v3.72.0", "source": { "type": "git", "url": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer.git", - "reference": "79d4f3e77b250a7d8043d76c6af8f0695e8a469f" + "reference": "900389362c43d116fee1ffc51f7878145fa61b57" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/79d4f3e77b250a7d8043d76c6af8f0695e8a469f", - "reference": "79d4f3e77b250a7d8043d76c6af8f0695e8a469f", + "url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/900389362c43d116fee1ffc51f7878145fa61b57", + "reference": "900389362c43d116fee1ffc51f7878145fa61b57", "shasum": "" }, "require": { @@ -3941,31 +3980,31 @@ "react/promise": "^2.0 || ^3.0", "react/socket": "^1.0", "react/stream": "^1.0", - "sebastian/diff": "^4.0 || ^5.0 || ^6.0", - "symfony/console": "^5.4 || ^6.0 || ^7.0", - "symfony/event-dispatcher": "^5.4 || ^6.0 || ^7.0", - "symfony/filesystem": "^5.4 || ^6.0 || ^7.0", - "symfony/finder": "^5.4 || ^6.0 || ^7.0", - "symfony/options-resolver": "^5.4 || ^6.0 || ^7.0", - "symfony/polyfill-mbstring": "^1.28", - "symfony/polyfill-php80": "^1.28", - "symfony/polyfill-php81": "^1.28", - "symfony/process": "^5.4 || ^6.0 || ^7.0", - "symfony/stopwatch": "^5.4 || ^6.0 || ^7.0" + "sebastian/diff": "^4.0 || ^5.1 || ^6.0 || ^7.0", + "symfony/console": "^5.4 || ^6.4 || ^7.0", + "symfony/event-dispatcher": "^5.4 || ^6.4 || ^7.0", + "symfony/filesystem": "^5.4 || ^6.4 || ^7.0", + "symfony/finder": "^5.4 || ^6.4 || ^7.0", + "symfony/options-resolver": "^5.4 || ^6.4 || ^7.0", + "symfony/polyfill-mbstring": "^1.31", + "symfony/polyfill-php80": "^1.31", + "symfony/polyfill-php81": "^1.31", + "symfony/process": "^5.4 || ^6.4 || ^7.2", + "symfony/stopwatch": "^5.4 || ^6.4 || ^7.0" }, "require-dev": { - "facile-it/paraunit": "^1.3.1 || ^2.4", - "infection/infection": "^0.29.8", - "justinrainbow/json-schema": "^5.3 || ^6.0", + "facile-it/paraunit": "^1.3.1 || ^2.6", + "infection/infection": "^0.29.14", + "justinrainbow/json-schema": "^5.3 || ^6.2", "keradus/cli-executor": "^2.1", "mikey179/vfsstream": "^1.6.12", "php-coveralls/php-coveralls": "^2.7", "php-cs-fixer/accessible-object": "^1.1", - "php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.5", - "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.5", - "phpunit/phpunit": "^9.6.21 || ^10.5.38 || ^11.4.3", - "symfony/var-dumper": "^5.4.47 || ^6.4.15 || ^7.1.8", - "symfony/yaml": "^5.4.45 || ^6.4.13 || ^7.1.6" + "php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.6", + "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.6", + "phpunit/phpunit": "^9.6.22 || ^10.5.45 || ^11.5.12", + "symfony/var-dumper": "^5.4.48 || ^6.4.18 || ^7.2.3", + "symfony/yaml": "^5.4.45 || ^6.4.18 || ^7.2.3" }, "suggest": { "ext-dom": "For handling output formats in XML", @@ -4000,7 +4039,7 @@ ], "support": { "issues": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues", - "source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.65.0" + "source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.72.0" }, "funding": [ { @@ -4008,7 +4047,7 @@ "type": "github" } ], - "time": "2024-11-25T00:39:24+00:00" + "time": "2025-03-13T11:25:37+00:00" }, { "name": "mikey179/vfsstream", @@ -4062,16 +4101,16 @@ }, { "name": "myclabs/deep-copy", - "version": "1.12.1", + "version": "1.13.0", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "123267b2c49fbf30d78a7b2d333f6be754b94845" + "reference": "024473a478be9df5fdaca2c793f2232fe788e414" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/123267b2c49fbf30d78a7b2d333f6be754b94845", - "reference": "123267b2c49fbf30d78a7b2d333f6be754b94845", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/024473a478be9df5fdaca2c793f2232fe788e414", + "reference": "024473a478be9df5fdaca2c793f2232fe788e414", "shasum": "" }, "require": { @@ -4100,7 +4139,7 @@ "keywords": ["clone", "copy", "duplicate", "object", "object graph"], "support": { "issues": "https://github.com/myclabs/DeepCopy/issues", - "source": "https://github.com/myclabs/DeepCopy/tree/1.12.1" + "source": "https://github.com/myclabs/DeepCopy/tree/1.13.0" }, "funding": [ { @@ -4108,20 +4147,20 @@ "type": "tidelift" } ], - "time": "2024-11-08T17:47:46+00:00" + "time": "2025-02-12T12:17:51+00:00" }, { "name": "nikic/php-parser", - "version": "v5.3.1", + "version": "v5.4.0", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "8eea230464783aa9671db8eea6f8c6ac5285794b" + "reference": "447a020a1f875a434d62f2a401f53b82a396e494" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/8eea230464783aa9671db8eea6f8c6ac5285794b", - "reference": "8eea230464783aa9671db8eea6f8c6ac5285794b", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/447a020a1f875a434d62f2a401f53b82a396e494", + "reference": "447a020a1f875a434d62f2a401f53b82a396e494", "shasum": "" }, "require": { @@ -4157,9 +4196,9 @@ "keywords": ["parser", "php"], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v5.3.1" + "source": "https://github.com/nikic/PHP-Parser/tree/v5.4.0" }, - "time": "2024-10-08T18:51:32+00:00" + "time": "2024-12-30T11:07:19+00:00" }, { "name": "phar-io/manifest", @@ -4316,16 +4355,16 @@ }, { "name": "phpstan/phpstan", - "version": "2.0.4", + "version": "2.1.8", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "50d276fc3bf1430ec315f2f109bbde2769821524" + "reference": "f9adff3b87c03b12cc7e46a30a524648e497758f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/50d276fc3bf1430ec315f2f109bbde2769821524", - "reference": "50d276fc3bf1430ec315f2f109bbde2769821524", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/f9adff3b87c03b12cc7e46a30a524648e497758f", + "reference": "f9adff3b87c03b12cc7e46a30a524648e497758f", "shasum": "" }, "require": { @@ -4360,27 +4399,27 @@ "type": "github" } ], - "time": "2024-12-17T17:14:01+00:00" + "time": "2025-03-09T09:30:48+00:00" }, { "name": "phpunit/php-code-coverage", - "version": "11.0.8", + "version": "11.0.9", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "418c59fd080954f8c4aa5631d9502ecda2387118" + "reference": "14d63fbcca18457e49c6f8bebaa91a87e8e188d7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/418c59fd080954f8c4aa5631d9502ecda2387118", - "reference": "418c59fd080954f8c4aa5631d9502ecda2387118", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/14d63fbcca18457e49c6f8bebaa91a87e8e188d7", + "reference": "14d63fbcca18457e49c6f8bebaa91a87e8e188d7", "shasum": "" }, "require": { "ext-dom": "*", "ext-libxml": "*", "ext-xmlwriter": "*", - "nikic/php-parser": "^5.3.1", + "nikic/php-parser": "^5.4.0", "php": ">=8.2", "phpunit/php-file-iterator": "^5.1.0", "phpunit/php-text-template": "^4.0.1", @@ -4392,7 +4431,7 @@ "theseer/tokenizer": "^1.2.3" }, "require-dev": { - "phpunit/phpunit": "^11.5.0" + "phpunit/phpunit": "^11.5.2" }, "suggest": { "ext-pcov": "PHP extension that provides line coverage", @@ -4422,7 +4461,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/11.0.8" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/11.0.9" }, "funding": [ { @@ -4430,7 +4469,7 @@ "type": "github" } ], - "time": "2024-12-11T12:34:27+00:00" + "time": "2025-02-25T13:26:39+00:00" }, { "name": "phpunit/php-file-iterator", @@ -4654,16 +4693,16 @@ }, { "name": "phpunit/phpunit", - "version": "11.5.2", + "version": "11.5.12", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "153d0531b9f7e883c5053160cad6dd5ac28140b3" + "reference": "d42785840519401ed2113292263795eb4c0f95da" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/153d0531b9f7e883c5053160cad6dd5ac28140b3", - "reference": "153d0531b9f7e883c5053160cad6dd5ac28140b3", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/d42785840519401ed2113292263795eb4c0f95da", + "reference": "d42785840519401ed2113292263795eb4c0f95da", "shasum": "" }, "require": { @@ -4673,18 +4712,18 @@ "ext-mbstring": "*", "ext-xml": "*", "ext-xmlwriter": "*", - "myclabs/deep-copy": "^1.12.1", + "myclabs/deep-copy": "^1.13.0", "phar-io/manifest": "^2.0.4", "phar-io/version": "^3.2.1", "php": ">=8.2", - "phpunit/php-code-coverage": "^11.0.8", + "phpunit/php-code-coverage": "^11.0.9", "phpunit/php-file-iterator": "^5.1.0", "phpunit/php-invoker": "^5.0.1", "phpunit/php-text-template": "^4.0.1", "phpunit/php-timer": "^7.0.1", "sebastian/cli-parser": "^3.0.2", "sebastian/code-unit": "^3.0.2", - "sebastian/comparator": "^6.2.1", + "sebastian/comparator": "^6.3.1", "sebastian/diff": "^6.0.2", "sebastian/environment": "^7.2.0", "sebastian/exporter": "^6.3.0", @@ -4723,7 +4762,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/11.5.2" + "source": "https://github.com/sebastianbergmann/phpunit/tree/11.5.12" }, "funding": [ { @@ -4739,7 +4778,7 @@ "type": "tidelift" } ], - "time": "2024-12-21T05:51:08+00:00" + "time": "2025-03-07T07:31:03+00:00" }, { "name": "psr/container", @@ -4859,33 +4898,33 @@ }, { "name": "react/child-process", - "version": "v0.6.5", + "version": "v0.6.6", "source": { "type": "git", "url": "https://github.com/reactphp/child-process.git", - "reference": "e71eb1aa55f057c7a4a0d08d06b0b0a484bead43" + "reference": "1721e2b93d89b745664353b9cfc8f155ba8a6159" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/reactphp/child-process/zipball/e71eb1aa55f057c7a4a0d08d06b0b0a484bead43", - "reference": "e71eb1aa55f057c7a4a0d08d06b0b0a484bead43", + "url": "https://api.github.com/repos/reactphp/child-process/zipball/1721e2b93d89b745664353b9cfc8f155ba8a6159", + "reference": "1721e2b93d89b745664353b9cfc8f155ba8a6159", "shasum": "" }, "require": { "evenement/evenement": "^3.0 || ^2.0 || ^1.0", "php": ">=5.3.0", "react/event-loop": "^1.2", - "react/stream": "^1.2" + "react/stream": "^1.4" }, "require-dev": { - "phpunit/phpunit": "^9.3 || ^5.7 || ^4.8.35", - "react/socket": "^1.8", + "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36", + "react/socket": "^1.16", "sebastian/environment": "^5.0 || ^3.0 || ^2.0 || ^1.0" }, "type": "library", "autoload": { "psr-4": { - "React\\ChildProcess\\": "src" + "React\\ChildProcess\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -4916,19 +4955,15 @@ "keywords": ["event-driven", "process", "reactphp"], "support": { "issues": "https://github.com/reactphp/child-process/issues", - "source": "https://github.com/reactphp/child-process/tree/v0.6.5" + "source": "https://github.com/reactphp/child-process/tree/v0.6.6" }, "funding": [ { - "url": "https://github.com/WyriHaximus", - "type": "github" - }, - { - "url": "https://github.com/clue", - "type": "github" + "url": "https://opencollective.com/reactphp", + "type": "open_collective" } ], - "time": "2022-09-16T13:41:56+00:00" + "time": "2025-01-01T16:37:48+00:00" }, { "name": "react/dns", @@ -5282,21 +5317,21 @@ }, { "name": "rector/rector", - "version": "2.0.4", + "version": "2.0.10", "source": { "type": "git", "url": "https://github.com/rectorphp/rector.git", - "reference": "df5de7b80deced1ea7f719a0b4d02e4aee87dd21" + "reference": "5844a718acb40f40afcd110394270afa55509fd0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/rectorphp/rector/zipball/df5de7b80deced1ea7f719a0b4d02e4aee87dd21", - "reference": "df5de7b80deced1ea7f719a0b4d02e4aee87dd21", + "url": "https://api.github.com/repos/rectorphp/rector/zipball/5844a718acb40f40afcd110394270afa55509fd0", + "reference": "5844a718acb40f40afcd110394270afa55509fd0", "shasum": "" }, "require": { "php": "^7.4|^8.0", - "phpstan/phpstan": "^2.0.4" + "phpstan/phpstan": "^2.1.6" }, "conflict": { "rector/rector-doctrine": "*", @@ -5318,7 +5353,7 @@ "keywords": ["automation", "dev", "migration", "refactoring"], "support": { "issues": "https://github.com/rectorphp/rector/issues", - "source": "https://github.com/rectorphp/rector/tree/2.0.4" + "source": "https://github.com/rectorphp/rector/tree/2.0.10" }, "funding": [ { @@ -5326,7 +5361,7 @@ "type": "github" } ], - "time": "2024-12-26T23:06:19+00:00" + "time": "2025-03-03T17:35:18+00:00" }, { "name": "sebastian/cli-parser", @@ -5488,16 +5523,16 @@ }, { "name": "sebastian/comparator", - "version": "6.2.1", + "version": "6.3.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "43d129d6a0f81c78bee378b46688293eb7ea3739" + "reference": "24b8fbc2c8e201bb1308e7b05148d6ab393b6959" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/43d129d6a0f81c78bee378b46688293eb7ea3739", - "reference": "43d129d6a0f81c78bee378b46688293eb7ea3739", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/24b8fbc2c8e201bb1308e7b05148d6ab393b6959", + "reference": "24b8fbc2c8e201bb1308e7b05148d6ab393b6959", "shasum": "" }, "require": { @@ -5510,10 +5545,13 @@ "require-dev": { "phpunit/phpunit": "^11.4" }, + "suggest": { + "ext-bcmath": "For comparing BcMath\\Number objects" + }, "type": "library", "extra": { "branch-alias": { - "dev-main": "6.2-dev" + "dev-main": "6.3-dev" } }, "autoload": { @@ -5545,7 +5583,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/comparator/issues", "security": "https://github.com/sebastianbergmann/comparator/security/policy", - "source": "https://github.com/sebastianbergmann/comparator/tree/6.2.1" + "source": "https://github.com/sebastianbergmann/comparator/tree/6.3.1" }, "funding": [ { @@ -5553,7 +5591,7 @@ "type": "github" } ], - "time": "2024-10-31T05:30:08+00:00" + "time": "2025-03-07T06:57:01+00:00" }, { "name": "sebastian/complexity", @@ -6280,16 +6318,16 @@ }, { "name": "sebastianfeldmann/git", - "version": "3.11.1", + "version": "3.13.2", "source": { "type": "git", "url": "https://github.com/sebastianfeldmann/git.git", - "reference": "96b9f384d45106f757df98a74c11b42b393ff18f" + "reference": "95c5fccbbf5e94ad86c459a73f0c2d2d2e776d98" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianfeldmann/git/zipball/96b9f384d45106f757df98a74c11b42b393ff18f", - "reference": "96b9f384d45106f757df98a74c11b42b393ff18f", + "url": "https://api.github.com/repos/sebastianfeldmann/git/zipball/95c5fccbbf5e94ad86c459a73f0c2d2d2e776d98", + "reference": "95c5fccbbf5e94ad86c459a73f0c2d2d2e776d98", "shasum": "" }, "require": { @@ -6326,7 +6364,7 @@ "keywords": ["git"], "support": { "issues": "https://github.com/sebastianfeldmann/git/issues", - "source": "https://github.com/sebastianfeldmann/git/tree/3.11.1" + "source": "https://github.com/sebastianfeldmann/git/tree/3.13.2" }, "funding": [ { @@ -6334,7 +6372,7 @@ "type": "github" } ], - "time": "2024-11-26T18:37:20+00:00" + "time": "2025-02-11T19:34:51+00:00" }, { "name": "staabm/side-effects-detector", @@ -6680,16 +6718,16 @@ }, { "name": "symfony/finder", - "version": "v7.2.0", + "version": "v7.2.2", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "6de263e5868b9a137602dd1e33e4d48bfae99c49" + "reference": "87a71856f2f56e4100373e92529eed3171695cfb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/6de263e5868b9a137602dd1e33e4d48bfae99c49", - "reference": "6de263e5868b9a137602dd1e33e4d48bfae99c49", + "url": "https://api.github.com/repos/symfony/finder/zipball/87a71856f2f56e4100373e92529eed3171695cfb", + "reference": "87a71856f2f56e4100373e92529eed3171695cfb", "shasum": "" }, "require": { @@ -6720,7 +6758,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v7.2.0" + "source": "https://github.com/symfony/finder/tree/v7.2.2" }, "funding": [ { @@ -6736,7 +6774,7 @@ "type": "tidelift" } ], - "time": "2024-10-23T06:56:12+00:00" + "time": "2024-12-30T19:00:17+00:00" }, { "name": "symfony/options-resolver", @@ -7013,16 +7051,16 @@ }, { "name": "symfony/process", - "version": "v7.2.0", + "version": "v7.2.4", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "d34b22ba9390ec19d2dd966c40aa9e8462f27a7e" + "reference": "d8f411ff3c7ddc4ae9166fb388d1190a2df5b5cf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/d34b22ba9390ec19d2dd966c40aa9e8462f27a7e", - "reference": "d34b22ba9390ec19d2dd966c40aa9e8462f27a7e", + "url": "https://api.github.com/repos/symfony/process/zipball/d8f411ff3c7ddc4ae9166fb388d1190a2df5b5cf", + "reference": "d8f411ff3c7ddc4ae9166fb388d1190a2df5b5cf", "shasum": "" }, "require": { @@ -7050,7 +7088,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v7.2.0" + "source": "https://github.com/symfony/process/tree/v7.2.4" }, "funding": [ { @@ -7066,7 +7104,7 @@ "type": "tidelift" } ], - "time": "2024-11-06T14:24:19+00:00" + "time": "2025-02-05T08:33:46+00:00" }, { "name": "symfony/service-contracts", @@ -7149,16 +7187,16 @@ }, { "name": "symfony/stopwatch", - "version": "v7.2.0", + "version": "v7.2.4", "source": { "type": "git", "url": "https://github.com/symfony/stopwatch.git", - "reference": "696f418b0d722a4225e1c3d95489d262971ca924" + "reference": "5a49289e2b308214c8b9c2fda4ea454d8b8ad7cd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/stopwatch/zipball/696f418b0d722a4225e1c3d95489d262971ca924", - "reference": "696f418b0d722a4225e1c3d95489d262971ca924", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/5a49289e2b308214c8b9c2fda4ea454d8b8ad7cd", + "reference": "5a49289e2b308214c8b9c2fda4ea454d8b8ad7cd", "shasum": "" }, "require": { @@ -7187,7 +7225,7 @@ "description": "Provides a way to profile code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/stopwatch/tree/v7.2.0" + "source": "https://github.com/symfony/stopwatch/tree/v7.2.4" }, "funding": [ { @@ -7203,7 +7241,7 @@ "type": "tidelift" } ], - "time": "2024-09-25T14:21:43+00:00" + "time": "2025-02-24T10:49:57+00:00" }, { "name": "symfony/string", @@ -7338,16 +7376,16 @@ }, { "name": "symplify/easy-coding-standard", - "version": "12.5.4", + "version": "12.5.8", "source": { "type": "git", "url": "https://github.com/easy-coding-standard/easy-coding-standard.git", - "reference": "5673ecbc03eef9d7b2f563819c80e8e1ce0161be" + "reference": "2bf0e468dc9679f3835c835cd3fd4a25ff6e4e14" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/easy-coding-standard/easy-coding-standard/zipball/5673ecbc03eef9d7b2f563819c80e8e1ce0161be", - "reference": "5673ecbc03eef9d7b2f563819c80e8e1ce0161be", + "url": "https://api.github.com/repos/easy-coding-standard/easy-coding-standard/zipball/2bf0e468dc9679f3835c835cd3fd4a25ff6e4e14", + "reference": "2bf0e468dc9679f3835c835cd3fd4a25ff6e4e14", "shasum": "" }, "require": { @@ -7372,7 +7410,7 @@ "keywords": ["Code style", "automation", "fixer", "static analysis"], "support": { "issues": "https://github.com/easy-coding-standard/easy-coding-standard/issues", - "source": "https://github.com/easy-coding-standard/easy-coding-standard/tree/12.5.4" + "source": "https://github.com/easy-coding-standard/easy-coding-standard/tree/12.5.8" }, "funding": [ { @@ -7384,7 +7422,7 @@ "type": "github" } ], - "time": "2024-12-12T15:36:04+00:00" + "time": "2025-01-31T13:59:38+00:00" }, { "name": "symplify/rule-doc-generator-contracts", @@ -7500,7 +7538,7 @@ "prefer-stable": true, "prefer-lowest": false, "platform": { - "php": "^8.3" + "php": "^8.4" }, "platform-dev": {}, "plugin-api-version": "2.6.0" diff --git a/docker/ci/Dockerfile b/docker/ci/Dockerfile index 10efa624..81878fe1 100644 --- a/docker/ci/Dockerfile +++ b/docker/ci/Dockerfile @@ -4,7 +4,7 @@ # ⚠️ NOT optimized for production # should be used only for continuous integration #--------------------------------------------------- -FROM php:8.3-fpm-alpine3.20 +FROM php:8.4-fpm-alpine3.21 LABEL maintainer="Yassine Doghri " diff --git a/docker/production/app/Dockerfile b/docker/production/app/Dockerfile index 672a6565..bafd25f2 100644 --- a/docker/production/app/Dockerfile +++ b/docker/production/app/Dockerfile @@ -11,7 +11,7 @@ RUN apt-get update && \ mv supercronic /usr/local/bin -FROM docker.io/php:8.3-fpm +FROM docker.io/php:8.4-fpm COPY --from=CRON_BUILDER /usr/local/bin/supercronic /usr/local/bin/supercronic diff --git a/docker/production/castopod/Dockerfile b/docker/production/castopod/Dockerfile index 5a5fc552..00a628a2 100644 --- a/docker/production/castopod/Dockerfile +++ b/docker/production/castopod/Dockerfile @@ -11,7 +11,7 @@ RUN apt-get update && \ mv supercronic /usr/local/bin -FROM docker.io/php:8.3-cli +FROM docker.io/php:8.4-cli ARG UNIT_VERSION=1.31.1 diff --git a/docs/package.json b/docs/package.json index 434b8202..5a74385d 100644 --- a/docs/package.json +++ b/docs/package.json @@ -12,19 +12,19 @@ }, "dependencies": { "@astrojs/check": "^0.9.4", - "@astrojs/starlight": "^0.30.3", + "@astrojs/starlight": "^0.32.2", "@astrojs/starlight-tailwind": "^3.0.0", - "@astrojs/tailwind": "^5.1.4", - "@fontsource/inter": "^5.1.1", - "@fontsource/rubik": "^5.1.1", - "astro": "^5.1.1", - "autoprefixer": "^10.4.20", + "@astrojs/tailwind": "^5.1.5", + "@fontsource/inter": "^5.2.5", + "@fontsource/rubik": "^5.2.5", + "astro": "^5.5.2", + "autoprefixer": "^10.4.21", "cssnano": "^7.0.6", - "postcss-preset-env": "^10.1.3", + "postcss-preset-env": "^10.1.5", "sharp": "^0.33.5", - "starlight-openapi": "^0.9.0", + "starlight-openapi": "^0.14.1", "tailwindcss": "^3.4.17", - "typescript": "^5.7.2", - "zod": "3.24.1" + "typescript": "^5.8.2", + "zod": "3.24.2" } } diff --git a/docs/pnpm-lock.yaml b/docs/pnpm-lock.yaml index 00d9fa87..fc3e44d7 100644 --- a/docs/pnpm-lock.yaml +++ b/docs/pnpm-lock.yaml @@ -9,49 +9,49 @@ importers: dependencies: "@astrojs/check": specifier: ^0.9.4 - version: 0.9.4(typescript@5.7.2) + version: 0.9.4(typescript@5.8.2) "@astrojs/starlight": - specifier: ^0.30.3 - version: 0.30.3(astro@5.1.1(jiti@2.4.2)(rollup@4.29.1)(typescript@5.7.2)(yaml@2.6.1)) + specifier: ^0.32.2 + version: 0.32.2(astro@5.5.2(jiti@2.4.2)(lightningcss@1.29.2)(rollup@4.35.0)(typescript@5.8.2)(yaml@2.6.1)) "@astrojs/starlight-tailwind": specifier: ^3.0.0 - version: 3.0.0(@astrojs/starlight@0.30.3(astro@5.1.1(jiti@2.4.2)(rollup@4.29.1)(typescript@5.7.2)(yaml@2.6.1)))(@astrojs/tailwind@5.1.4(astro@5.1.1(jiti@2.4.2)(rollup@4.29.1)(typescript@5.7.2)(yaml@2.6.1))(tailwindcss@3.4.17))(tailwindcss@3.4.17) + version: 3.0.0(@astrojs/starlight@0.32.2(astro@5.5.2(jiti@2.4.2)(lightningcss@1.29.2)(rollup@4.35.0)(typescript@5.8.2)(yaml@2.6.1)))(@astrojs/tailwind@5.1.5(astro@5.5.2(jiti@2.4.2)(lightningcss@1.29.2)(rollup@4.35.0)(typescript@5.8.2)(yaml@2.6.1))(tailwindcss@3.4.17))(tailwindcss@3.4.17) "@astrojs/tailwind": - specifier: ^5.1.4 - version: 5.1.4(astro@5.1.1(jiti@2.4.2)(rollup@4.29.1)(typescript@5.7.2)(yaml@2.6.1))(tailwindcss@3.4.17) + specifier: ^5.1.5 + version: 5.1.5(astro@5.5.2(jiti@2.4.2)(lightningcss@1.29.2)(rollup@4.35.0)(typescript@5.8.2)(yaml@2.6.1))(tailwindcss@3.4.17) "@fontsource/inter": - specifier: ^5.1.1 - version: 5.1.1 + specifier: ^5.2.5 + version: 5.2.5 "@fontsource/rubik": - specifier: ^5.1.1 - version: 5.1.1 + specifier: ^5.2.5 + version: 5.2.5 astro: - specifier: ^5.1.1 - version: 5.1.1(jiti@2.4.2)(rollup@4.29.1)(typescript@5.7.2)(yaml@2.6.1) + specifier: ^5.5.2 + version: 5.5.2(jiti@2.4.2)(lightningcss@1.29.2)(rollup@4.35.0)(typescript@5.8.2)(yaml@2.6.1) autoprefixer: - specifier: ^10.4.20 - version: 10.4.20(postcss@8.4.49) + specifier: ^10.4.21 + version: 10.4.21(postcss@8.5.3) cssnano: specifier: ^7.0.6 - version: 7.0.6(postcss@8.4.49) + version: 7.0.6(postcss@8.5.3) postcss-preset-env: - specifier: ^10.1.3 - version: 10.1.3(postcss@8.4.49) + specifier: ^10.1.5 + version: 10.1.5(postcss@8.5.3) sharp: specifier: ^0.33.5 version: 0.33.5 starlight-openapi: - specifier: ^0.9.0 - version: 0.9.0(@astrojs/markdown-remark@6.0.1)(@astrojs/starlight@0.30.3(astro@5.1.1(jiti@2.4.2)(rollup@4.29.1)(typescript@5.7.2)(yaml@2.6.1)))(openapi-types@12.1.3) + specifier: ^0.14.1 + version: 0.14.1(@astrojs/markdown-remark@6.3.0)(@astrojs/starlight@0.32.2(astro@5.5.2(jiti@2.4.2)(lightningcss@1.29.2)(rollup@4.35.0)(typescript@5.8.2)(yaml@2.6.1)))(astro@5.5.2(jiti@2.4.2)(lightningcss@1.29.2)(rollup@4.35.0)(typescript@5.8.2)(yaml@2.6.1))(openapi-types@12.1.3) tailwindcss: specifier: ^3.4.17 version: 3.4.17 typescript: - specifier: ^5.7.2 - version: 5.7.2 + specifier: ^5.8.2 + version: 5.8.2 zod: - specifier: 3.24.1 - version: 3.24.1 + specifier: 3.24.2 + version: 3.24.2 packages: "@alloc/quick-lru@5.2.0": @@ -82,10 +82,16 @@ packages: integrity: sha512-bL/O7YBxsFt55YHU021oL+xz+B/9HvGNId3F9xURN16aeqDK9juHGktdkCSXz+U4nqFACq6ZFvWomOzhV+zfPw==, } - "@astrojs/internal-helpers@0.4.2": + "@astrojs/compiler@2.11.0": resolution: { - integrity: sha512-EdDWkC3JJVcpGpqJAU/5hSk2LKXyG3mNGkzGoAuyK+xoPHbaVdSuIWoN1QTnmK3N/gGfaaAfM8gO2KDCAW7S3w==, + integrity: sha512-zZOO7i+JhojO8qmlyR/URui6LyfHJY6m+L9nwyX5GiKD78YoRaZ5tzz6X0fkl+5bD3uwlDHayf6Oe8Fu36RKNg==, + } + + "@astrojs/internal-helpers@0.6.1": + resolution: + { + integrity: sha512-l5Pqf6uZu31aG+3Lv8nl/3s4DbUzdlxTWDof4pEpto6GUJNhhCbelVi9dEyurOVyqaelwmS9oSyOWOENSfgo9A==, } "@astrojs/language-server@2.15.4": @@ -103,16 +109,16 @@ packages: prettier-plugin-astro: optional: true - "@astrojs/markdown-remark@6.0.1": + "@astrojs/markdown-remark@6.3.0": resolution: { - integrity: sha512-CTSYijj25NfxgZi15TU3CwPwgyD1/7yA3FcdcNmB9p94nydupiUbrIiq3IqeTp2m5kCVzxbPZeC7fTwEOaNyGw==, + integrity: sha512-imInEojAbpeV9D/SRaSQBz3yUzvtg3UQC1euX70QHVf8X0kWAIAArmzBbgXl8LlyxSFe52f/++PXQ4t14V9b+A==, } - "@astrojs/mdx@4.0.3": + "@astrojs/mdx@4.2.0": resolution: { - integrity: sha512-8HcuyNG/KgYUAQWVzKFkboXcTOBCW6aQ0WK0Er/iSmVSF0y3yimg4/3QSt+Twv9dogpwIHL+E8iBJKqieFv4+g==, + integrity: sha512-MHiogYeb7XdzbqUktoMsrziph1vK10WfLgwDJVejGOieEsJ1eOUtNtQCl2vv85tnr/+IGBqZ0bOf6ydQGgJMYA==, } engines: { node: ^18.17.1 || ^20.3.0 || >=22.0.0 } peerDependencies: @@ -141,18 +147,18 @@ packages: "@astrojs/tailwind": ^5.1.3 tailwindcss: ^3.3.3 - "@astrojs/starlight@0.30.3": + "@astrojs/starlight@0.32.2": resolution: { - integrity: sha512-HbGYYIR2Rnrvvc2jD0dUpp8zUzv3jQYtG5im3aulDgE4Jo21Ahw0yXlb/Y134G3LALLbqhImmlbt/h/nDV3yMA==, + integrity: sha512-FLz8Y8R+GsD0jD/G64bYijwwVsAq99Ugk2bJYRmH2k1reYMh83GRma2IaKGgSI2fLNEu7tdyG4cpkwrwP3W02A==, } peerDependencies: - astro: ^5.0.0 + astro: ^5.1.5 - "@astrojs/tailwind@5.1.4": + "@astrojs/tailwind@5.1.5": resolution: { - integrity: sha512-EJ3uoTZZr0RYwTrVS2HgYN0+VbXvg7h87AtwpD5OzqS3GyMwRmzfOwHfORTxoWGQRrY9k/Fi+Awk60kwpvRL5Q==, + integrity: sha512-1diguZEau7FZ9vIjzE4BwavGdhD3+JkdS8zmibl1ene+EHgIU5hI0NMgRYG3yea+Niaf7cyMwjeWeLvzq/maxg==, } peerDependencies: astro: ^3.0.0 || ^4.0.0 || ^5.0.0 @@ -224,27 +230,27 @@ packages: "@csstools/css-parser-algorithms": ^3.0.4 "@csstools/css-tokenizer": ^3.0.3 - "@csstools/color-helpers@5.0.1": + "@csstools/color-helpers@5.0.2": resolution: { - integrity: sha512-MKtmkA0BX87PKaO1NFRTFH+UnkgnmySQOvNxJubsadusqPEC2aJ9MOQiMceZJJ6oitUl/i0L6u0M1IrmAOmgBA==, + integrity: sha512-JqWH1vsgdGcw2RR6VliXXdA0/59LttzlU8UlRT/iUUsEeWfYq8I+K0yhihEUTTHLRm1EXvpsCx3083EU15ecsA==, } engines: { node: ">=18" } - "@csstools/css-calc@2.1.1": + "@csstools/css-calc@2.1.2": resolution: { - integrity: sha512-rL7kaUnTkL9K+Cvo2pnCieqNpTKgQzy5f+N+5Iuko9HAoasP+xgprVh7KN/MaJVvVL1l0EzQq2MoqBHKSrDrag==, + integrity: sha512-TklMyb3uBB28b5uQdxjReG4L80NxAqgrECqLZFQbyLekwwlcDDS8r3f07DKqeo8C4926Br0gf/ZDe17Zv4wIuw==, } engines: { node: ">=18" } peerDependencies: "@csstools/css-parser-algorithms": ^3.0.4 "@csstools/css-tokenizer": ^3.0.3 - "@csstools/css-color-parser@3.0.7": + "@csstools/css-color-parser@3.0.8": resolution: { - integrity: sha512-nkMp2mTICw32uE5NN+EsJ4f5N+IGFeCFu4bGpiKgb2Pq/7J/MpyLBeQ5ry4KKtRFZaYs6sTmcMYrSRIyj5DFKA==, + integrity: sha512-pdwotQjCCnRPuNi06jFuP68cykU1f3ZWExLe/8MQ1LOs8Xq+fTkYgd+2V8mWUWMrOn9iS2HftPVaMZDaXzGbhQ==, } engines: { node: ">=18" } peerDependencies: @@ -286,19 +292,19 @@ packages: peerDependencies: postcss: ^8.4 - "@csstools/postcss-color-function@4.0.7": + "@csstools/postcss-color-function@4.0.8": resolution: { - integrity: sha512-aDHYmhNIHR6iLw4ElWhf+tRqqaXwKnMl0YsQ/X105Zc4dQwe6yJpMrTN6BwOoESrkDjOYMOfORviSSLeDTJkdQ==, + integrity: sha512-9dUvP2qpZI6PlGQ/sob+95B3u5u7nkYt9yhZFCC7G9HBRHBxj+QxS/wUlwaMGYW0waf+NIierI8aoDTssEdRYw==, } engines: { node: ">=18" } peerDependencies: postcss: ^8.4 - "@csstools/postcss-color-mix-function@3.0.7": + "@csstools/postcss-color-mix-function@3.0.8": resolution: { - integrity: sha512-e68Nev4CxZYCLcrfWhHH4u/N1YocOfTmw67/kVX5Rb7rnguqqLyxPjhHWjSBX8o4bmyuukmNf3wrUSU3//kT7g==, + integrity: sha512-yuZpgWUzqZWQhEqfvtJufhl28DgO9sBwSbXbf/59gejNuvZcoUTRGQZhzhwF4ccqb53YAGB+u92z9+eSKoB4YA==, } engines: { node: ">=18" } peerDependencies: @@ -313,10 +319,10 @@ packages: peerDependencies: postcss: ^8.4 - "@csstools/postcss-exponential-functions@2.0.6": + "@csstools/postcss-exponential-functions@2.0.7": resolution: { - integrity: sha512-IgJA5DQsQLu/upA3HcdvC6xEMR051ufebBTIXZ5E9/9iiaA7juXWz1ceYj814lnDYP/7eWjZnw0grRJlX4eI6g==, + integrity: sha512-XTb6Mw0v2qXtQYRW9d9duAjDnoTbBpsngD7sRNLmYDjvwU2ebpIHplyxgOeo6jp/Kr52gkLi5VaK5RDCqzMzZQ==, } engines: { node: ">=18" } peerDependencies: @@ -331,28 +337,28 @@ packages: peerDependencies: postcss: ^8.4 - "@csstools/postcss-gamut-mapping@2.0.7": + "@csstools/postcss-gamut-mapping@2.0.8": resolution: { - integrity: sha512-gzFEZPoOkY0HqGdyeBXR3JP218Owr683u7KOZazTK7tQZBE8s2yhg06W1tshOqk7R7SWvw9gkw2TQogKpIW8Xw==, + integrity: sha512-/K8u9ZyGMGPjmwCSIjgaOLKfic2RIGdFHHes84XW5LnmrvdhOTVxo255NppHi3ROEvoHPW7MplMJgjZK5Q+TxA==, } engines: { node: ">=18" } peerDependencies: postcss: ^8.4 - "@csstools/postcss-gradients-interpolation-method@5.0.7": + "@csstools/postcss-gradients-interpolation-method@5.0.8": resolution: { - integrity: sha512-WgEyBeg6glUeTdS2XT7qeTFBthTJuXlS9GFro/DVomj7W7WMTamAwpoP4oQCq/0Ki2gvfRYFi/uZtmRE14/DFA==, + integrity: sha512-CoHQ/0UXrvxLovu0ZeW6c3/20hjJ/QRg6lyXm3dZLY/JgvRU6bdbQZF/Du30A4TvowfcgvIHQmP1bNXUxgDrAw==, } engines: { node: ">=18" } peerDependencies: postcss: ^8.4 - "@csstools/postcss-hwb-function@4.0.7": + "@csstools/postcss-hwb-function@4.0.8": resolution: { - integrity: sha512-LKYqjO+wGwDCfNIEllessCBWfR4MS/sS1WXO+j00KKyOjm7jDW2L6jzUmqASEiv/kkJO39GcoIOvTTfB3yeBUA==, + integrity: sha512-LpFKjX6hblpeqyych1cKmk+3FJZ19QmaJtqincySoMkbkG/w2tfbnO5oE6mlnCTXcGUJ0rCEuRHvTqKK0nHYUQ==, } engines: { node: ">=18" } peerDependencies: @@ -367,10 +373,10 @@ packages: peerDependencies: postcss: ^8.4 - "@csstools/postcss-initial@2.0.0": + "@csstools/postcss-initial@2.0.1": resolution: { - integrity: sha512-dv2lNUKR+JV+OOhZm9paWzYBXOCi+rJPqJ2cJuhh9xd8USVrd0cBEPczla81HNOyThMQWeCcdln3gZkQV2kYxA==, + integrity: sha512-L1wLVMSAZ4wovznquK0xmC7QSctzO4D0Is590bxpGqhqjboLXYA16dWZpfwImkdOgACdQ9PqXsuRroW6qPlEsg==, } engines: { node: ">=18" } peerDependencies: @@ -439,10 +445,10 @@ packages: peerDependencies: postcss: ^8.4 - "@csstools/postcss-media-minmax@2.0.6": + "@csstools/postcss-media-minmax@2.0.7": resolution: { - integrity: sha512-J1+4Fr2W3pLZsfxkFazK+9kr96LhEYqoeBszLmFjb6AjYs+g9oDAw3J5oQignLKk3rC9XHW+ebPTZ9FaW5u5pg==, + integrity: sha512-LB6tIP7iBZb5CYv8iRenfBZmbaG3DWNEziOnPjGoQX5P94FBPvvTBy68b/d9NnS5PELKwFmmOYsAEIgEhDPCHA==, } engines: { node: ">=18" } peerDependencies: @@ -475,10 +481,10 @@ packages: peerDependencies: postcss: ^8.4 - "@csstools/postcss-oklab-function@4.0.7": + "@csstools/postcss-oklab-function@4.0.8": resolution: { - integrity: sha512-I6WFQIbEKG2IO3vhaMGZDkucbCaUSXMxvHNzDdnfsTCF5tc0UlV3Oe2AhamatQoKFjBi75dSEMrgWq3+RegsOQ==, + integrity: sha512-+5aPsNWgxohXoYNS1f+Ys0x3Qnfehgygv3qrPyv+Y25G0yX54/WlVB+IXprqBLOXHM1gsVF+QQSjlArhygna0Q==, } engines: { node: ">=18" } peerDependencies: @@ -493,19 +499,19 @@ packages: peerDependencies: postcss: ^8.4 - "@csstools/postcss-random-function@1.0.2": + "@csstools/postcss-random-function@1.0.3": resolution: { - integrity: sha512-vBCT6JvgdEkvRc91NFoNrLjgGtkLWt47GKT6E2UDn3nd8ZkMBiziQ1Md1OiKoSsgzxsSnGKG3RVdhlbdZEkHjA==, + integrity: sha512-dbNeEEPHxAwfQJ3duRL5IPpuD77QAHtRl4bAHRs0vOVhVbHrsL7mHnwe0irYjbs9kYwhAHZBQTLBgmvufPuRkA==, } engines: { node: ">=18" } peerDependencies: postcss: ^8.4 - "@csstools/postcss-relative-color-syntax@3.0.7": + "@csstools/postcss-relative-color-syntax@3.0.8": resolution: { - integrity: sha512-apbT31vsJVd18MabfPOnE977xgct5B1I+Jpf+Munw3n6kKb1MMuUmGGH+PT9Hm/fFs6fe61Q/EWnkrb4bNoNQw==, + integrity: sha512-eGE31oLnJDoUysDdjS9MLxNZdtqqSxjDXMdISpLh80QMaYrKs7VINpid34tWQ+iU23Wg5x76qAzf1Q/SLLbZVg==, } engines: { node: ">=18" } peerDependencies: @@ -520,37 +526,37 @@ packages: peerDependencies: postcss: ^8.4 - "@csstools/postcss-sign-functions@1.1.1": + "@csstools/postcss-sign-functions@1.1.2": resolution: { - integrity: sha512-MslYkZCeMQDxetNkfmmQYgKCy4c+w9pPDfgOBCJOo/RI1RveEUdZQYtOfrC6cIZB7sD7/PHr2VGOcMXlZawrnA==, + integrity: sha512-4EcAvXTUPh7n6UoZZkCzgtCf/wPzMlTNuddcKg7HG8ozfQkUcHsJ2faQKeLmjyKdYPyOUn4YA7yDPf8K/jfIxw==, } engines: { node: ">=18" } peerDependencies: postcss: ^8.4 - "@csstools/postcss-stepped-value-functions@4.0.6": + "@csstools/postcss-stepped-value-functions@4.0.7": resolution: { - integrity: sha512-/dwlO9w8vfKgiADxpxUbZOWlL5zKoRIsCymYoh1IPuBsXODKanKnfuZRr32DEqT0//3Av1VjfNZU9yhxtEfIeA==, + integrity: sha512-rdrRCKRnWtj5FyRin0u/gLla7CIvZRw/zMGI1fVJP0Sg/m1WGicjPVHRANL++3HQtsiXKAbPrcPr+VkyGck0IA==, } engines: { node: ">=18" } peerDependencies: postcss: ^8.4 - "@csstools/postcss-text-decoration-shorthand@4.0.1": + "@csstools/postcss-text-decoration-shorthand@4.0.2": resolution: { - integrity: sha512-xPZIikbx6jyzWvhms27uugIc0I4ykH4keRvoa3rxX5K7lEhkbd54rjj/dv60qOCTisoS+3bmwJTeyV1VNBrXaw==, + integrity: sha512-8XvCRrFNseBSAGxeaVTaNijAu+FzUvjwFXtcrynmazGb/9WUdsPCpBX+mHEHShVRq47Gy4peYAoxYs8ltUnmzA==, } engines: { node: ">=18" } peerDependencies: postcss: ^8.4 - "@csstools/postcss-trigonometric-functions@4.0.6": + "@csstools/postcss-trigonometric-functions@4.0.7": resolution: { - integrity: sha512-c4Y1D2Why/PeccaSouXnTt6WcNHJkoJRidV2VW9s5gJ97cNxnLgQ4Qj8qOqkIR9VmTQKJyNcbF4hy79ZQnWD7A==, + integrity: sha512-qTrZgLju3AV7Djhzuh2Bq/wjFqbcypnk0FhHjxW8DWJQcZLS1HecIus4X2/RLch1ukX7b+YYCdqbEnpIQO5ccg==, } engines: { node: ">=18" } peerDependencies: @@ -647,463 +653,265 @@ packages: integrity: sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==, } - "@esbuild/aix-ppc64@0.21.5": + "@esbuild/aix-ppc64@0.25.1": resolution: { - integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==, - } - engines: { node: ">=12" } - cpu: [ppc64] - os: [aix] - - "@esbuild/aix-ppc64@0.24.0": - resolution: - { - integrity: sha512-WtKdFM7ls47zkKHFVzMz8opM7LkcsIp9amDUBIAWirg70RM71WRSjdILPsY5Uv1D42ZpUfaPILDlfactHgsRkw==, + integrity: sha512-kfYGy8IdzTGy+z0vFGvExZtxkFlA4zAxgKEahG9KE1ScBjpQnFsNOX8KTU5ojNru5ed5CVoJYXFtoxaq5nFbjQ==, } engines: { node: ">=18" } cpu: [ppc64] os: [aix] - "@esbuild/android-arm64@0.21.5": + "@esbuild/android-arm64@0.25.1": resolution: { - integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==, - } - engines: { node: ">=12" } - cpu: [arm64] - os: [android] - - "@esbuild/android-arm64@0.24.0": - resolution: - { - integrity: sha512-Vsm497xFM7tTIPYK9bNTYJyF/lsP590Qc1WxJdlB6ljCbdZKU9SY8i7+Iin4kyhV/KV5J2rOKsBQbB77Ab7L/w==, + integrity: sha512-50tM0zCJW5kGqgG7fQ7IHvQOcAn9TKiVRuQ/lN0xR+T2lzEFvAi1ZcS8DiksFcEpf1t/GYOeOfCAgDHFpkiSmA==, } engines: { node: ">=18" } cpu: [arm64] os: [android] - "@esbuild/android-arm@0.21.5": + "@esbuild/android-arm@0.25.1": resolution: { - integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==, - } - engines: { node: ">=12" } - cpu: [arm] - os: [android] - - "@esbuild/android-arm@0.24.0": - resolution: - { - integrity: sha512-arAtTPo76fJ/ICkXWetLCc9EwEHKaeya4vMrReVlEIUCAUncH7M4bhMQ+M9Vf+FFOZJdTNMXNBrWwW+OXWpSew==, + integrity: sha512-dp+MshLYux6j/JjdqVLnMglQlFu+MuVeNrmT5nk6q07wNhCdSnB7QZj+7G8VMUGh1q+vj2Bq8kRsuyA00I/k+Q==, } engines: { node: ">=18" } cpu: [arm] os: [android] - "@esbuild/android-x64@0.21.5": + "@esbuild/android-x64@0.25.1": resolution: { - integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==, - } - engines: { node: ">=12" } - cpu: [x64] - os: [android] - - "@esbuild/android-x64@0.24.0": - resolution: - { - integrity: sha512-t8GrvnFkiIY7pa7mMgJd7p8p8qqYIz1NYiAoKc75Zyv73L3DZW++oYMSHPRarcotTKuSs6m3hTOa5CKHaS02TQ==, + integrity: sha512-GCj6WfUtNldqUzYkN/ITtlhwQqGWu9S45vUXs7EIYf+7rCiiqH9bCloatO9VhxsL0Pji+PF4Lz2XXCES+Q8hDw==, } engines: { node: ">=18" } cpu: [x64] os: [android] - "@esbuild/darwin-arm64@0.21.5": + "@esbuild/darwin-arm64@0.25.1": resolution: { - integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==, - } - engines: { node: ">=12" } - cpu: [arm64] - os: [darwin] - - "@esbuild/darwin-arm64@0.24.0": - resolution: - { - integrity: sha512-CKyDpRbK1hXwv79soeTJNHb5EiG6ct3efd/FTPdzOWdbZZfGhpbcqIpiD0+vwmpu0wTIL97ZRPZu8vUt46nBSw==, + integrity: sha512-5hEZKPf+nQjYoSr/elb62U19/l1mZDdqidGfmFutVUjjUZrOazAtwK+Kr+3y0C/oeJfLlxo9fXb1w7L+P7E4FQ==, } engines: { node: ">=18" } cpu: [arm64] os: [darwin] - "@esbuild/darwin-x64@0.21.5": + "@esbuild/darwin-x64@0.25.1": resolution: { - integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==, - } - engines: { node: ">=12" } - cpu: [x64] - os: [darwin] - - "@esbuild/darwin-x64@0.24.0": - resolution: - { - integrity: sha512-rgtz6flkVkh58od4PwTRqxbKH9cOjaXCMZgWD905JOzjFKW+7EiUObfd/Kav+A6Gyud6WZk9w+xu6QLytdi2OA==, + integrity: sha512-hxVnwL2Dqs3fM1IWq8Iezh0cX7ZGdVhbTfnOy5uURtao5OIVCEyj9xIzemDi7sRvKsuSdtCAhMKarxqtlyVyfA==, } engines: { node: ">=18" } cpu: [x64] os: [darwin] - "@esbuild/freebsd-arm64@0.21.5": + "@esbuild/freebsd-arm64@0.25.1": resolution: { - integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==, - } - engines: { node: ">=12" } - cpu: [arm64] - os: [freebsd] - - "@esbuild/freebsd-arm64@0.24.0": - resolution: - { - integrity: sha512-6Mtdq5nHggwfDNLAHkPlyLBpE5L6hwsuXZX8XNmHno9JuL2+bg2BX5tRkwjyfn6sKbxZTq68suOjgWqCicvPXA==, + integrity: sha512-1MrCZs0fZa2g8E+FUo2ipw6jw5qqQiH+tERoS5fAfKnRx6NXH31tXBKI3VpmLijLH6yriMZsxJtaXUyFt/8Y4A==, } engines: { node: ">=18" } cpu: [arm64] os: [freebsd] - "@esbuild/freebsd-x64@0.21.5": + "@esbuild/freebsd-x64@0.25.1": resolution: { - integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==, - } - engines: { node: ">=12" } - cpu: [x64] - os: [freebsd] - - "@esbuild/freebsd-x64@0.24.0": - resolution: - { - integrity: sha512-D3H+xh3/zphoX8ck4S2RxKR6gHlHDXXzOf6f/9dbFt/NRBDIE33+cVa49Kil4WUjxMGW0ZIYBYtaGCa2+OsQwQ==, + integrity: sha512-0IZWLiTyz7nm0xuIs0q1Y3QWJC52R8aSXxe40VUxm6BB1RNmkODtW6LHvWRrGiICulcX7ZvyH6h5fqdLu4gkww==, } engines: { node: ">=18" } cpu: [x64] os: [freebsd] - "@esbuild/linux-arm64@0.21.5": + "@esbuild/linux-arm64@0.25.1": resolution: { - integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==, - } - engines: { node: ">=12" } - cpu: [arm64] - os: [linux] - - "@esbuild/linux-arm64@0.24.0": - resolution: - { - integrity: sha512-TDijPXTOeE3eaMkRYpcy3LarIg13dS9wWHRdwYRnzlwlA370rNdZqbcp0WTyyV/k2zSxfko52+C7jU5F9Tfj1g==, + integrity: sha512-jaN3dHi0/DDPelk0nLcXRm1q7DNJpjXy7yWaWvbfkPvI+7XNSc/lDOnCLN7gzsyzgu6qSAmgSvP9oXAhP973uQ==, } engines: { node: ">=18" } cpu: [arm64] os: [linux] - "@esbuild/linux-arm@0.21.5": + "@esbuild/linux-arm@0.25.1": resolution: { - integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==, - } - engines: { node: ">=12" } - cpu: [arm] - os: [linux] - - "@esbuild/linux-arm@0.24.0": - resolution: - { - integrity: sha512-gJKIi2IjRo5G6Glxb8d3DzYXlxdEj2NlkixPsqePSZMhLudqPhtZ4BUrpIuTjJYXxvF9njql+vRjB2oaC9XpBw==, + integrity: sha512-NdKOhS4u7JhDKw9G3cY6sWqFcnLITn6SqivVArbzIaf3cemShqfLGHYMx8Xlm/lBit3/5d7kXvriTUGa5YViuQ==, } engines: { node: ">=18" } cpu: [arm] os: [linux] - "@esbuild/linux-ia32@0.21.5": + "@esbuild/linux-ia32@0.25.1": resolution: { - integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==, - } - engines: { node: ">=12" } - cpu: [ia32] - os: [linux] - - "@esbuild/linux-ia32@0.24.0": - resolution: - { - integrity: sha512-K40ip1LAcA0byL05TbCQ4yJ4swvnbzHscRmUilrmP9Am7//0UjPreh4lpYzvThT2Quw66MhjG//20mrufm40mA==, + integrity: sha512-OJykPaF4v8JidKNGz8c/q1lBO44sQNUQtq1KktJXdBLn1hPod5rE/Hko5ugKKZd+D2+o1a9MFGUEIUwO2YfgkQ==, } engines: { node: ">=18" } cpu: [ia32] os: [linux] - "@esbuild/linux-loong64@0.21.5": + "@esbuild/linux-loong64@0.25.1": resolution: { - integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==, - } - engines: { node: ">=12" } - cpu: [loong64] - os: [linux] - - "@esbuild/linux-loong64@0.24.0": - resolution: - { - integrity: sha512-0mswrYP/9ai+CU0BzBfPMZ8RVm3RGAN/lmOMgW4aFUSOQBjA31UP8Mr6DDhWSuMwj7jaWOT0p0WoZ6jeHhrD7g==, + integrity: sha512-nGfornQj4dzcq5Vp835oM/o21UMlXzn79KobKlcs3Wz9smwiifknLy4xDCLUU0BWp7b/houtdrgUz7nOGnfIYg==, } engines: { node: ">=18" } cpu: [loong64] os: [linux] - "@esbuild/linux-mips64el@0.21.5": + "@esbuild/linux-mips64el@0.25.1": resolution: { - integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==, - } - engines: { node: ">=12" } - cpu: [mips64el] - os: [linux] - - "@esbuild/linux-mips64el@0.24.0": - resolution: - { - integrity: sha512-hIKvXm0/3w/5+RDtCJeXqMZGkI2s4oMUGj3/jM0QzhgIASWrGO5/RlzAzm5nNh/awHE0A19h/CvHQe6FaBNrRA==, + integrity: sha512-1osBbPEFYwIE5IVB/0g2X6i1qInZa1aIoj1TdL4AaAb55xIIgbg8Doq6a5BzYWgr+tEcDzYH67XVnTmUzL+nXg==, } engines: { node: ">=18" } cpu: [mips64el] os: [linux] - "@esbuild/linux-ppc64@0.21.5": + "@esbuild/linux-ppc64@0.25.1": resolution: { - integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==, - } - engines: { node: ">=12" } - cpu: [ppc64] - os: [linux] - - "@esbuild/linux-ppc64@0.24.0": - resolution: - { - integrity: sha512-HcZh5BNq0aC52UoocJxaKORfFODWXZxtBaaZNuN3PUX3MoDsChsZqopzi5UupRhPHSEHotoiptqikjN/B77mYQ==, + integrity: sha512-/6VBJOwUf3TdTvJZ82qF3tbLuWsscd7/1w+D9LH0W/SqUgM5/JJD0lrJ1fVIfZsqB6RFmLCe0Xz3fmZc3WtyVg==, } engines: { node: ">=18" } cpu: [ppc64] os: [linux] - "@esbuild/linux-riscv64@0.21.5": + "@esbuild/linux-riscv64@0.25.1": resolution: { - integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==, - } - engines: { node: ">=12" } - cpu: [riscv64] - os: [linux] - - "@esbuild/linux-riscv64@0.24.0": - resolution: - { - integrity: sha512-bEh7dMn/h3QxeR2KTy1DUszQjUrIHPZKyO6aN1X4BCnhfYhuQqedHaa5MxSQA/06j3GpiIlFGSsy1c7Gf9padw==, + integrity: sha512-nSut/Mx5gnilhcq2yIMLMe3Wl4FK5wx/o0QuuCLMtmJn+WeWYoEGDN1ipcN72g1WHsnIbxGXd4i/MF0gTcuAjQ==, } engines: { node: ">=18" } cpu: [riscv64] os: [linux] - "@esbuild/linux-s390x@0.21.5": + "@esbuild/linux-s390x@0.25.1": resolution: { - integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==, - } - engines: { node: ">=12" } - cpu: [s390x] - os: [linux] - - "@esbuild/linux-s390x@0.24.0": - resolution: - { - integrity: sha512-ZcQ6+qRkw1UcZGPyrCiHHkmBaj9SiCD8Oqd556HldP+QlpUIe2Wgn3ehQGVoPOvZvtHm8HPx+bH20c9pvbkX3g==, + integrity: sha512-cEECeLlJNfT8kZHqLarDBQso9a27o2Zd2AQ8USAEoGtejOrCYHNtKP8XQhMDJMtthdF4GBmjR2au3x1udADQQQ==, } engines: { node: ">=18" } cpu: [s390x] os: [linux] - "@esbuild/linux-x64@0.21.5": + "@esbuild/linux-x64@0.25.1": resolution: { - integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==, - } - engines: { node: ">=12" } - cpu: [x64] - os: [linux] - - "@esbuild/linux-x64@0.24.0": - resolution: - { - integrity: sha512-vbutsFqQ+foy3wSSbmjBXXIJ6PL3scghJoM8zCL142cGaZKAdCZHyf+Bpu/MmX9zT9Q0zFBVKb36Ma5Fzfa8xA==, + integrity: sha512-xbfUhu/gnvSEg+EGovRc+kjBAkrvtk38RlerAzQxvMzlB4fXpCFCeUAYzJvrnhFtdeyVCDANSjJvOvGYoeKzFA==, } engines: { node: ">=18" } cpu: [x64] os: [linux] - "@esbuild/netbsd-x64@0.21.5": + "@esbuild/netbsd-arm64@0.25.1": resolution: { - integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==, + integrity: sha512-O96poM2XGhLtpTh+s4+nP7YCCAfb4tJNRVZHfIE7dgmax+yMP2WgMd2OecBuaATHKTHsLWHQeuaxMRnCsH8+5g==, } - engines: { node: ">=12" } - cpu: [x64] + engines: { node: ">=18" } + cpu: [arm64] os: [netbsd] - "@esbuild/netbsd-x64@0.24.0": + "@esbuild/netbsd-x64@0.25.1": resolution: { - integrity: sha512-hjQ0R/ulkO8fCYFsG0FZoH+pWgTTDreqpqY7UnQntnaKv95uP5iW3+dChxnx7C3trQQU40S+OgWhUVwCjVFLvg==, + integrity: sha512-X53z6uXip6KFXBQ+Krbx25XHV/NCbzryM6ehOAeAil7X7oa4XIq+394PWGnwaSQ2WRA0KI6PUO6hTO5zeF5ijA==, } engines: { node: ">=18" } cpu: [x64] os: [netbsd] - "@esbuild/openbsd-arm64@0.24.0": + "@esbuild/openbsd-arm64@0.25.1": resolution: { - integrity: sha512-MD9uzzkPQbYehwcN583yx3Tu5M8EIoTD+tUgKF982WYL9Pf5rKy9ltgD0eUgs8pvKnmizxjXZyLt0z6DC3rRXg==, + integrity: sha512-Na9T3szbXezdzM/Kfs3GcRQNjHzM6GzFBeU1/6IV/npKP5ORtp9zbQjvkDJ47s6BCgaAZnnnu/cY1x342+MvZg==, } engines: { node: ">=18" } cpu: [arm64] os: [openbsd] - "@esbuild/openbsd-x64@0.21.5": + "@esbuild/openbsd-x64@0.25.1": resolution: { - integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==, - } - engines: { node: ">=12" } - cpu: [x64] - os: [openbsd] - - "@esbuild/openbsd-x64@0.24.0": - resolution: - { - integrity: sha512-4ir0aY1NGUhIC1hdoCzr1+5b43mw99uNwVzhIq1OY3QcEwPDO3B7WNXBzaKY5Nsf1+N11i1eOfFcq+D/gOS15Q==, + integrity: sha512-T3H78X2h1tszfRSf+txbt5aOp/e7TAz3ptVKu9Oyir3IAOFPGV6O9c2naym5TOriy1l0nNf6a4X5UXRZSGX/dw==, } engines: { node: ">=18" } cpu: [x64] os: [openbsd] - "@esbuild/sunos-x64@0.21.5": + "@esbuild/sunos-x64@0.25.1": resolution: { - integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==, - } - engines: { node: ">=12" } - cpu: [x64] - os: [sunos] - - "@esbuild/sunos-x64@0.24.0": - resolution: - { - integrity: sha512-jVzdzsbM5xrotH+W5f1s+JtUy1UWgjU0Cf4wMvffTB8m6wP5/kx0KiaLHlbJO+dMgtxKV8RQ/JvtlFcdZ1zCPA==, + integrity: sha512-2H3RUvcmULO7dIE5EWJH8eubZAI4xw54H1ilJnRNZdeo8dTADEZ21w6J22XBkXqGJbe0+wnNJtw3UXRoLJnFEg==, } engines: { node: ">=18" } cpu: [x64] os: [sunos] - "@esbuild/win32-arm64@0.21.5": + "@esbuild/win32-arm64@0.25.1": resolution: { - integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==, - } - engines: { node: ">=12" } - cpu: [arm64] - os: [win32] - - "@esbuild/win32-arm64@0.24.0": - resolution: - { - integrity: sha512-iKc8GAslzRpBytO2/aN3d2yb2z8XTVfNV0PjGlCxKo5SgWmNXx82I/Q3aG1tFfS+A2igVCY97TJ8tnYwpUWLCA==, + integrity: sha512-GE7XvrdOzrb+yVKB9KsRMq+7a2U/K5Cf/8grVFRAGJmfADr/e/ODQ134RK2/eeHqYV5eQRFxb1hY7Nr15fv1NQ==, } engines: { node: ">=18" } cpu: [arm64] os: [win32] - "@esbuild/win32-ia32@0.21.5": + "@esbuild/win32-ia32@0.25.1": resolution: { - integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==, - } - engines: { node: ">=12" } - cpu: [ia32] - os: [win32] - - "@esbuild/win32-ia32@0.24.0": - resolution: - { - integrity: sha512-vQW36KZolfIudCcTnaTpmLQ24Ha1RjygBo39/aLkM2kmjkWmZGEJ5Gn9l5/7tzXA42QGIoWbICfg6KLLkIw6yw==, + integrity: sha512-uOxSJCIcavSiT6UnBhBzE8wy3n0hOkJsBOzy7HDAuTDE++1DJMRRVCPGisULScHL+a/ZwdXPpXD3IyFKjA7K8A==, } engines: { node: ">=18" } cpu: [ia32] os: [win32] - "@esbuild/win32-x64@0.21.5": + "@esbuild/win32-x64@0.25.1": resolution: { - integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==, - } - engines: { node: ">=12" } - cpu: [x64] - os: [win32] - - "@esbuild/win32-x64@0.24.0": - resolution: - { - integrity: sha512-7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA==, + integrity: sha512-Y1EQdcfwMSeQN/ujR5VayLOJ1BHaK+ssyk0AEzPjC+t1lITgsnccPqFjb6V+LsTp/9Iov4ysfjxLaGJ9RPtkVg==, } engines: { node: ">=18" } cpu: [x64] os: [win32] - "@expressive-code/core@0.38.3": + "@expressive-code/core@0.40.2": resolution: { - integrity: sha512-s0/OtdRpBONwcn23O8nVwDNQqpBGKscysejkeBkwlIeHRLZWgiTVrusT5Idrdz1d8cW5wRk9iGsAIQmwDPXgJg==, + integrity: sha512-gXY3v7jbgz6nWKvRpoDxK4AHUPkZRuJsM79vHX/5uhV9/qX6Qnctp/U/dMHog/LCVXcuOps+5nRmf1uxQVPb3w==, } - "@expressive-code/plugin-frames@0.38.3": + "@expressive-code/plugin-frames@0.40.2": resolution: { - integrity: sha512-qL2oC6FplmHNQfZ8ZkTR64/wKo9x0c8uP2WDftR/ydwN/yhe1ed7ZWYb8r3dezxsls+tDokCnN4zYR594jbpvg==, + integrity: sha512-aLw5IlDlZWb10Jo/TTDCVsmJhKfZ7FJI83Zo9VDrV0OBlmHAg7klZqw68VDz7FlftIBVAmMby53/MNXPnMjTSQ==, } - "@expressive-code/plugin-shiki@0.38.3": + "@expressive-code/plugin-shiki@0.40.2": resolution: { - integrity: sha512-kqHnglZeesqG3UKrb6e9Fq5W36AZ05Y9tCREmSN2lw8LVTqENIeCIkLDdWtQ5VoHlKqwUEQFTVlRehdwoY7Gmw==, + integrity: sha512-t2HMR5BO6GdDW1c1ISBTk66xO503e/Z8ecZdNcr6E4NpUfvY+MRje+LtrcvbBqMwWBBO8RpVKcam/Uy+1GxwKQ==, } - "@expressive-code/plugin-text-markers@0.38.3": + "@expressive-code/plugin-text-markers@0.40.2": resolution: { - integrity: sha512-dPK3+BVGTbTmGQGU3Fkj3jZ3OltWUAlxetMHI6limUGCWBCucZiwoZeFM/WmqQa71GyKRzhBT+iEov6kkz2xVA==, + integrity: sha512-/XoLjD67K9nfM4TgDlXAExzMJp6ewFKxNpfUw4F7q5Ecy+IU3/9zQQG/O70Zy+RxYTwKGw2MA9kd7yelsxnSmw==, } - "@fontsource/inter@5.1.1": + "@fontsource/inter@5.2.5": resolution: { - integrity: sha512-weN3E+rq0Xb3Z93VHJ+Rc7WOQX9ETJPTAJ+gDcaMHtjft67L58sfS65rAjC5tZUXQ2FdZ/V1/sSzCwZ6v05kJw==, + integrity: sha512-kbsPKj0S4p44JdYRFiW78Td8Ge2sBVxi/PIBwmih+RpSXUdvS9nbs1HIiuUSPtRMi14CqLEZ/fbk7dj7vni1Sg==, } - "@fontsource/rubik@5.1.1": + "@fontsource/rubik@5.2.5": resolution: { - integrity: sha512-g5H+vzDxwTxUBtEpPoNNF3uVZkqIvrXnYn0S8aQZNz1r2LMfpT0o/pnWr43hVumapVpm0CsT4xvH2Mw9LHnGqQ==, + integrity: sha512-vr7hwIRJfK+OGi8+pEcNdLCzMoOAxfHPOmfDfZ63mDzG1/OUSeTLWiAtYywKCwPluTcV84hY2CHBUBF+OpKEcw==, } "@humanwhocodes/momoa@2.0.4": @@ -1400,139 +1208,6 @@ packages: cpu: [x64] os: [win32] - "@parcel/watcher-android-arm64@2.5.0": - resolution: - { - integrity: sha512-qlX4eS28bUcQCdribHkg/herLe+0A9RyYC+mm2PXpncit8z5b3nSqGVzMNR3CmtAOgRutiZ02eIJJgP/b1iEFQ==, - } - engines: { node: ">= 10.0.0" } - cpu: [arm64] - os: [android] - - "@parcel/watcher-darwin-arm64@2.5.0": - resolution: - { - integrity: sha512-hyZ3TANnzGfLpRA2s/4U1kbw2ZI4qGxaRJbBH2DCSREFfubMswheh8TeiC1sGZ3z2jUf3s37P0BBlrD3sjVTUw==, - } - engines: { node: ">= 10.0.0" } - cpu: [arm64] - os: [darwin] - - "@parcel/watcher-darwin-x64@2.5.0": - resolution: - { - integrity: sha512-9rhlwd78saKf18fT869/poydQK8YqlU26TMiNg7AIu7eBp9adqbJZqmdFOsbZ5cnLp5XvRo9wcFmNHgHdWaGYA==, - } - engines: { node: ">= 10.0.0" } - cpu: [x64] - os: [darwin] - - "@parcel/watcher-freebsd-x64@2.5.0": - resolution: - { - integrity: sha512-syvfhZzyM8kErg3VF0xpV8dixJ+RzbUaaGaeb7uDuz0D3FK97/mZ5AJQ3XNnDsXX7KkFNtyQyFrXZzQIcN49Tw==, - } - engines: { node: ">= 10.0.0" } - cpu: [x64] - os: [freebsd] - - "@parcel/watcher-linux-arm-glibc@2.5.0": - resolution: - { - integrity: sha512-0VQY1K35DQET3dVYWpOaPFecqOT9dbuCfzjxoQyif1Wc574t3kOSkKevULddcR9znz1TcklCE7Ht6NIxjvTqLA==, - } - engines: { node: ">= 10.0.0" } - cpu: [arm] - os: [linux] - - "@parcel/watcher-linux-arm-musl@2.5.0": - resolution: - { - integrity: sha512-6uHywSIzz8+vi2lAzFeltnYbdHsDm3iIB57d4g5oaB9vKwjb6N6dRIgZMujw4nm5r6v9/BQH0noq6DzHrqr2pA==, - } - engines: { node: ">= 10.0.0" } - cpu: [arm] - os: [linux] - - "@parcel/watcher-linux-arm64-glibc@2.5.0": - resolution: - { - integrity: sha512-BfNjXwZKxBy4WibDb/LDCriWSKLz+jJRL3cM/DllnHH5QUyoiUNEp3GmL80ZqxeumoADfCCP19+qiYiC8gUBjA==, - } - engines: { node: ">= 10.0.0" } - cpu: [arm64] - os: [linux] - - "@parcel/watcher-linux-arm64-musl@2.5.0": - resolution: - { - integrity: sha512-S1qARKOphxfiBEkwLUbHjCY9BWPdWnW9j7f7Hb2jPplu8UZ3nes7zpPOW9bkLbHRvWM0WDTsjdOTUgW0xLBN1Q==, - } - engines: { node: ">= 10.0.0" } - cpu: [arm64] - os: [linux] - - "@parcel/watcher-linux-x64-glibc@2.5.0": - resolution: - { - integrity: sha512-d9AOkusyXARkFD66S6zlGXyzx5RvY+chTP9Jp0ypSTC9d4lzyRs9ovGf/80VCxjKddcUvnsGwCHWuF2EoPgWjw==, - } - engines: { node: ">= 10.0.0" } - cpu: [x64] - os: [linux] - - "@parcel/watcher-linux-x64-musl@2.5.0": - resolution: - { - integrity: sha512-iqOC+GoTDoFyk/VYSFHwjHhYrk8bljW6zOhPuhi5t9ulqiYq1togGJB5e3PwYVFFfeVgc6pbz3JdQyDoBszVaA==, - } - engines: { node: ">= 10.0.0" } - cpu: [x64] - os: [linux] - - "@parcel/watcher-wasm@2.5.0": - resolution: - { - integrity: sha512-Z4ouuR8Pfggk1EYYbTaIoxc+Yv4o7cGQnH0Xy8+pQ+HbiW+ZnwhcD2LPf/prfq1nIWpAxjOkQ8uSMFWMtBLiVQ==, - } - engines: { node: ">= 10.0.0" } - bundledDependencies: - - napi-wasm - - "@parcel/watcher-win32-arm64@2.5.0": - resolution: - { - integrity: sha512-twtft1d+JRNkM5YbmexfcH/N4znDtjgysFaV9zvZmmJezQsKpkfLYJ+JFV3uygugK6AtIM2oADPkB2AdhBrNig==, - } - engines: { node: ">= 10.0.0" } - cpu: [arm64] - os: [win32] - - "@parcel/watcher-win32-ia32@2.5.0": - resolution: - { - integrity: sha512-+rgpsNRKwo8A53elqbbHXdOMtY/tAtTzManTWShB5Kk54N8Q9mzNWV7tV+IbGueCbcj826MfWGU3mprWtuf1TA==, - } - engines: { node: ">= 10.0.0" } - cpu: [ia32] - os: [win32] - - "@parcel/watcher-win32-x64@2.5.0": - resolution: - { - integrity: sha512-lPrxve92zEHdgeff3aiu4gDOIt4u7sJYha6wbdEZDCDUhtjTsOMiaJzG5lMY4GkWH8p0fMmO2Ppq5G5XXG+DQw==, - } - engines: { node: ">= 10.0.0" } - cpu: [x64] - os: [win32] - - "@parcel/watcher@2.5.0": - resolution: - { - integrity: sha512-i0GV1yJnm2n3Yq1qw6QrUrd/LI9bE8WEBOTtOkpCXHHdyN3TAGgqAK/DAT05z4fq2x04cARXt2pDmjWjL92iTQ==, - } - engines: { node: ">= 10.0.0" } - "@pkgjs/parseargs@0.11.0": resolution: { @@ -1554,6 +1229,7 @@ packages: { integrity: sha512-Bt3QVovFSua4QmHa65EHUmh2xS0XJ3rgTEUPH998f4OW4VVJke3BuS16f+kM0ZLOGdvIrzrPRqwihuv5BAjtrA==, } + deprecated: This package is no longer maintained. Please use `@apidevtools/json-schema-ref-parser` instead. "@readme/openapi-parser@2.6.0": resolution: @@ -1583,186 +1259,198 @@ packages: rollup: optional: true - "@rollup/rollup-android-arm-eabi@4.29.1": + "@rollup/rollup-android-arm-eabi@4.35.0": resolution: { - integrity: sha512-ssKhA8RNltTZLpG6/QNkCSge+7mBQGUqJRisZ2MDQcEGaK93QESEgWK2iOpIDZ7k9zPVkG5AS3ksvD5ZWxmItw==, + integrity: sha512-uYQ2WfPaqz5QtVgMxfN6NpLD+no0MYHDBywl7itPYd3K5TjjSghNKmX8ic9S8NU8w81NVhJv/XojcHptRly7qQ==, } cpu: [arm] os: [android] - "@rollup/rollup-android-arm64@4.29.1": + "@rollup/rollup-android-arm64@4.35.0": resolution: { - integrity: sha512-CaRfrV0cd+NIIcVVN/jx+hVLN+VRqnuzLRmfmlzpOzB87ajixsN/+9L5xNmkaUUvEbI5BmIKS+XTwXsHEb65Ew==, + integrity: sha512-FtKddj9XZudurLhdJnBl9fl6BwCJ3ky8riCXjEw3/UIbjmIY58ppWwPEvU3fNu+W7FUsAsB1CdH+7EQE6CXAPA==, } cpu: [arm64] os: [android] - "@rollup/rollup-darwin-arm64@4.29.1": + "@rollup/rollup-darwin-arm64@4.35.0": resolution: { - integrity: sha512-2ORr7T31Y0Mnk6qNuwtyNmy14MunTAMx06VAPI6/Ju52W10zk1i7i5U3vlDRWjhOI5quBcrvhkCHyF76bI7kEw==, + integrity: sha512-Uk+GjOJR6CY844/q6r5DR/6lkPFOw0hjfOIzVx22THJXMxktXG6CbejseJFznU8vHcEBLpiXKY3/6xc+cBm65Q==, } cpu: [arm64] os: [darwin] - "@rollup/rollup-darwin-x64@4.29.1": + "@rollup/rollup-darwin-x64@4.35.0": resolution: { - integrity: sha512-j/Ej1oanzPjmN0tirRd5K2/nncAhS9W6ICzgxV+9Y5ZsP0hiGhHJXZ2JQ53iSSjj8m6cRY6oB1GMzNn2EUt6Ng==, + integrity: sha512-3IrHjfAS6Vkp+5bISNQnPogRAW5GAV1n+bNCrDwXmfMHbPl5EhTmWtfmwlJxFRUCBZ+tZ/OxDyU08aF6NI/N5Q==, } cpu: [x64] os: [darwin] - "@rollup/rollup-freebsd-arm64@4.29.1": + "@rollup/rollup-freebsd-arm64@4.35.0": resolution: { - integrity: sha512-91C//G6Dm/cv724tpt7nTyP+JdN12iqeXGFM1SqnljCmi5yTXriH7B1r8AD9dAZByHpKAumqP1Qy2vVNIdLZqw==, + integrity: sha512-sxjoD/6F9cDLSELuLNnY0fOrM9WA0KrM0vWm57XhrIMf5FGiN8D0l7fn+bpUeBSU7dCgPV2oX4zHAsAXyHFGcQ==, } cpu: [arm64] os: [freebsd] - "@rollup/rollup-freebsd-x64@4.29.1": + "@rollup/rollup-freebsd-x64@4.35.0": resolution: { - integrity: sha512-hEioiEQ9Dec2nIRoeHUP6hr1PSkXzQaCUyqBDQ9I9ik4gCXQZjJMIVzoNLBRGet+hIUb3CISMh9KXuCcWVW/8w==, + integrity: sha512-2mpHCeRuD1u/2kruUiHSsnjWtHjqVbzhBkNVQ1aVD63CcexKVcQGwJ2g5VphOd84GvxfSvnnlEyBtQCE5hxVVw==, } cpu: [x64] os: [freebsd] - "@rollup/rollup-linux-arm-gnueabihf@4.29.1": + "@rollup/rollup-linux-arm-gnueabihf@4.35.0": resolution: { - integrity: sha512-Py5vFd5HWYN9zxBv3WMrLAXY3yYJ6Q/aVERoeUFwiDGiMOWsMs7FokXihSOaT/PMWUty/Pj60XDQndK3eAfE6A==, + integrity: sha512-mrA0v3QMy6ZSvEuLs0dMxcO2LnaCONs1Z73GUDBHWbY8tFFocM6yl7YyMu7rz4zS81NDSqhrUuolyZXGi8TEqg==, } cpu: [arm] os: [linux] - "@rollup/rollup-linux-arm-musleabihf@4.29.1": + "@rollup/rollup-linux-arm-musleabihf@4.35.0": resolution: { - integrity: sha512-RiWpGgbayf7LUcuSNIbahr0ys2YnEERD4gYdISA06wa0i8RALrnzflh9Wxii7zQJEB2/Eh74dX4y/sHKLWp5uQ==, + integrity: sha512-DnYhhzcvTAKNexIql8pFajr0PiDGrIsBYPRvCKlA5ixSS3uwo/CWNZxB09jhIapEIg945KOzcYEAGGSmTSpk7A==, } cpu: [arm] os: [linux] - "@rollup/rollup-linux-arm64-gnu@4.29.1": + "@rollup/rollup-linux-arm64-gnu@4.35.0": resolution: { - integrity: sha512-Z80O+taYxTQITWMjm/YqNoe9d10OX6kDh8X5/rFCMuPqsKsSyDilvfg+vd3iXIqtfmp+cnfL1UrYirkaF8SBZA==, + integrity: sha512-uagpnH2M2g2b5iLsCTZ35CL1FgyuzzJQ8L9VtlJ+FckBXroTwNOaD0z0/UF+k5K3aNQjbm8LIVpxykUOQt1m/A==, } cpu: [arm64] os: [linux] - "@rollup/rollup-linux-arm64-musl@4.29.1": + "@rollup/rollup-linux-arm64-musl@4.35.0": resolution: { - integrity: sha512-fOHRtF9gahwJk3QVp01a/GqS4hBEZCV1oKglVVq13kcK3NeVlS4BwIFzOHDbmKzt3i0OuHG4zfRP0YoG5OF/rA==, + integrity: sha512-XQxVOCd6VJeHQA/7YcqyV0/88N6ysSVzRjJ9I9UA/xXpEsjvAgDTgH3wQYz5bmr7SPtVK2TsP2fQ2N9L4ukoUg==, } cpu: [arm64] os: [linux] - "@rollup/rollup-linux-loongarch64-gnu@4.29.1": + "@rollup/rollup-linux-loongarch64-gnu@4.35.0": resolution: { - integrity: sha512-5a7q3tnlbcg0OodyxcAdrrCxFi0DgXJSoOuidFUzHZ2GixZXQs6Tc3CHmlvqKAmOs5eRde+JJxeIf9DonkmYkw==, + integrity: sha512-5pMT5PzfgwcXEwOaSrqVsz/LvjDZt+vQ8RT/70yhPU06PTuq8WaHhfT1LW+cdD7mW6i/J5/XIkX/1tCAkh1W6g==, } cpu: [loong64] os: [linux] - "@rollup/rollup-linux-powerpc64le-gnu@4.29.1": + "@rollup/rollup-linux-powerpc64le-gnu@4.35.0": resolution: { - integrity: sha512-9b4Mg5Yfz6mRnlSPIdROcfw1BU22FQxmfjlp/CShWwO3LilKQuMISMTtAu/bxmmrE6A902W2cZJuzx8+gJ8e9w==, + integrity: sha512-c+zkcvbhbXF98f4CtEIP1EBA/lCic5xB0lToneZYvMeKu5Kamq3O8gqrxiYYLzlZH6E3Aq+TSW86E4ay8iD8EA==, } cpu: [ppc64] os: [linux] - "@rollup/rollup-linux-riscv64-gnu@4.29.1": + "@rollup/rollup-linux-riscv64-gnu@4.35.0": resolution: { - integrity: sha512-G5pn0NChlbRM8OJWpJFMX4/i8OEU538uiSv0P6roZcbpe/WfhEO+AT8SHVKfp8qhDQzaz7Q+1/ixMy7hBRidnQ==, + integrity: sha512-s91fuAHdOwH/Tad2tzTtPX7UZyytHIRR6V4+2IGlV0Cej5rkG0R61SX4l4y9sh0JBibMiploZx3oHKPnQBKe4g==, } cpu: [riscv64] os: [linux] - "@rollup/rollup-linux-s390x-gnu@4.29.1": + "@rollup/rollup-linux-s390x-gnu@4.35.0": resolution: { - integrity: sha512-WM9lIkNdkhVwiArmLxFXpWndFGuOka4oJOZh8EP3Vb8q5lzdSCBuhjavJsw68Q9AKDGeOOIHYzYm4ZFvmWez5g==, + integrity: sha512-hQRkPQPLYJZYGP+Hj4fR9dDBMIM7zrzJDWFEMPdTnTy95Ljnv0/4w/ixFw3pTBMEuuEuoqtBINYND4M7ujcuQw==, } cpu: [s390x] os: [linux] - "@rollup/rollup-linux-x64-gnu@4.29.1": + "@rollup/rollup-linux-x64-gnu@4.35.0": resolution: { - integrity: sha512-87xYCwb0cPGZFoGiErT1eDcssByaLX4fc0z2nRM6eMtV9njAfEE6OW3UniAoDhX4Iq5xQVpE6qO9aJbCFumKYQ==, + integrity: sha512-Pim1T8rXOri+0HmV4CdKSGrqcBWX0d1HoPnQ0uw0bdp1aP5SdQVNBy8LjYncvnLgu3fnnCt17xjWGd4cqh8/hA==, } cpu: [x64] os: [linux] - "@rollup/rollup-linux-x64-musl@4.29.1": + "@rollup/rollup-linux-x64-musl@4.35.0": resolution: { - integrity: sha512-xufkSNppNOdVRCEC4WKvlR1FBDyqCSCpQeMMgv9ZyXqqtKBfkw1yfGMTUTs9Qsl6WQbJnsGboWCp7pJGkeMhKA==, + integrity: sha512-QysqXzYiDvQWfUiTm8XmJNO2zm9yC9P/2Gkrwg2dH9cxotQzunBHYr6jk4SujCTqnfGxduOmQcI7c2ryuW8XVg==, } cpu: [x64] os: [linux] - "@rollup/rollup-win32-arm64-msvc@4.29.1": + "@rollup/rollup-win32-arm64-msvc@4.35.0": resolution: { - integrity: sha512-F2OiJ42m77lSkizZQLuC+jiZ2cgueWQL5YC9tjo3AgaEw+KJmVxHGSyQfDUoYR9cci0lAywv2Clmckzulcq6ig==, + integrity: sha512-OUOlGqPkVJCdJETKOCEf1mw848ZyJ5w50/rZ/3IBQVdLfR5jk/6Sr5m3iO2tdPgwo0x7VcncYuOvMhBWZq8ayg==, } cpu: [arm64] os: [win32] - "@rollup/rollup-win32-ia32-msvc@4.29.1": + "@rollup/rollup-win32-ia32-msvc@4.35.0": resolution: { - integrity: sha512-rYRe5S0FcjlOBZQHgbTKNrqxCBUmgDJem/VQTCcTnA2KCabYSWQDrytOzX7avb79cAAweNmMUb/Zw18RNd4mng==, + integrity: sha512-2/lsgejMrtwQe44glq7AFFHLfJBPafpsTa6JvP2NGef/ifOa4KBoglVf7AKN7EV9o32evBPRqfg96fEHzWo5kw==, } cpu: [ia32] os: [win32] - "@rollup/rollup-win32-x64-msvc@4.29.1": + "@rollup/rollup-win32-x64-msvc@4.35.0": resolution: { - integrity: sha512-+10CMg9vt1MoHj6x1pxyjPSMjHTIlqs8/tBztXvPAx24SKs9jwVnKqHJumlH/IzhaPUaj3T6T6wfZr8okdXaIg==, + integrity: sha512-PIQeY5XDkrOysbQblSW7v3l1MDZzkTEzAfTPkj5VAu3FW8fS4ynyLg2sINp0fp3SjZ8xkRYpLqoKcYqAkhU1dw==, } cpu: [x64] os: [win32] - "@shikijs/core@1.24.4": + "@shikijs/core@1.29.2": resolution: { - integrity: sha512-jjLsld+xEEGYlxAXDyGwWsKJ1sw5Pc1pnp4ai2ORpjx2UX08YYTC0NNqQYO1PaghYaR+PvgMOGuvzw2he9sk0Q==, + integrity: sha512-vju0lY9r27jJfOY4Z7+Rt/nIOjzJpZ3y+nYpqtUZInVoXQ/TJZcfGnNOGnKjFdVZb8qexiCuSlZRKcGfhhTTZQ==, } - "@shikijs/engine-javascript@1.24.4": + "@shikijs/engine-javascript@1.29.2": resolution: { - integrity: sha512-TClaQOLvo9WEMJv6GoUsykQ6QdynuKszuORFWCke8qvi6PeLm7FcD9+7y45UenysxEWYpDL5KJaVXTngTE+2BA==, + integrity: sha512-iNEZv4IrLYPv64Q6k7EPpOCE/nuvGiKl7zxdq0WFuRPF5PAE9PRo2JGq/d8crLusM59BRemJ4eOqrFrC4wiQ+A==, } - "@shikijs/engine-oniguruma@1.24.4": + "@shikijs/engine-oniguruma@1.29.2": resolution: { - integrity: sha512-Do2ry6flp2HWdvpj2XOwwa0ljZBRy15HKZITzPcNIBOGSeprnA8gOooA/bLsSPuy8aJBa+Q/r34dMmC3KNL/zw==, + integrity: sha512-7iiOx3SG8+g1MnlzZVDYiaeHe7Ez2Kf2HrJzdmGwkRisT7r4rak0e655AcM/tF9JG/kg5fMNYlLLKglbN7gBqA==, } - "@shikijs/types@1.24.4": + "@shikijs/langs@1.29.2": resolution: { - integrity: sha512-0r0XU7Eaow0PuDxuWC1bVqmWCgm3XqizIaT7SM42K03vc69LGooT0U8ccSR44xP/hGlNx4FKhtYpV+BU6aaKAA==, + integrity: sha512-FIBA7N3LZ+223U7cJDUYd5shmciFQlYkFXlkKVaHsCPgfVLiO+e12FmQE6Tf9vuyEsFe3dIl8qGWKXgEHL9wmQ==, } - "@shikijs/vscode-textmate@9.3.1": + "@shikijs/themes@1.29.2": resolution: { - integrity: sha512-79QfK1393x9Ho60QFyLti+QfdJzRQCVLFb97kOIV7Eo9vQU/roINgk7m24uv0a7AUvN//RDH36FLjjK48v0s9g==, + integrity: sha512-i9TNZlsq4uoyqSbluIcZkmPL9Bfi3djVxRnofUHwvx/h6SRW3cwgBC5SML7vsDcWyukY0eCzVN980rqP6qNl9g==, + } + + "@shikijs/types@1.29.2": + resolution: + { + integrity: sha512-VJjK0eIijTZf0QSTODEXCqinjBn0joAHQ+aPSBzrv4O2d/QSbsMw+ZeSRx03kV34Hy7NzUvV/7NqfYGRLrASmw==, + } + + "@shikijs/vscode-textmate@10.0.2": + resolution: + { + integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==, } "@trysound/sax@0.2.0": @@ -1932,10 +1620,10 @@ packages: peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - acorn@8.14.0: + acorn@8.14.1: resolution: { - integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==, + integrity: sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==, } engines: { node: ">=0.4.0" } hasBin: true @@ -2010,12 +1698,6 @@ packages: integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==, } - argparse@1.0.10: - resolution: - { - integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==, - } - argparse@2.0.1: resolution: { @@ -2042,27 +1724,27 @@ packages: } hasBin: true - astro-expressive-code@0.38.3: + astro-expressive-code@0.40.2: resolution: { - integrity: sha512-Tvdc7RV0G92BbtyEOsfJtXU35w41CkM94fOAzxbQP67Wj5jArfserJ321FO4XA7WG9QMV0GIBmQq77NBIRDzpQ==, + integrity: sha512-yJMQId0yXSAbW9I6yqvJ3FcjKzJ8zRL7elbJbllkv1ZJPlsI0NI83Pxn1YL1IapEM347EvOOkSW2GL+2+NO61w==, } peerDependencies: astro: ^4.0.0-beta || ^5.0.0-beta || ^3.3.0 - astro@5.1.1: + astro@5.5.2: resolution: { - integrity: sha512-prpWC2PRs4P3FKQg6gZaU+VNMqbZi5pDvORGB2nrjfRjkrvF6/l4BqhvkJ6YQ0Ohm5rIMVz8ljgaRI77mLHbwg==, + integrity: sha512-SOTJxB8mqxe/KEYEJiLIot0YULiCffyfTEclwmdeaASitDJ7eLM/KYrJ9sx3U5hq9GVI17Z4Y0P/1T2aQ0ZN3A==, } engines: { node: ^18.17.1 || ^20.3.0 || >=22.0.0, npm: ">=9.6.5", pnpm: ">=7.1.0" } hasBin: true - autoprefixer@10.4.20: + autoprefixer@10.4.21: resolution: { - integrity: sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==, + integrity: sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==, } engines: { node: ^10 || ^12 || >=14 } hasBin: true @@ -2147,6 +1829,14 @@ packages: engines: { node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7 } hasBin: true + browserslist@4.24.4: + resolution: + { + integrity: sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==, + } + engines: { node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7 } + hasBin: true + call-me-maybe@1.0.2: resolution: { @@ -2179,6 +1869,12 @@ packages: integrity: sha512-5ExiE3qQN6oF8Clf8ifIDcMRCRE/dMGcETG/XGMD8/XiXm6HXQgQTh1yZYLXXpSOsEUlJm1Xr7kGULZTuGtP/w==, } + caniuse-lite@1.0.30001704: + resolution: + { + integrity: sha512-+L2IgBbV6gXB4ETf0keSvLr7JUrRVbIaB/lrQ1+z8mRcQiisG5k+lG6O4n6Y5q6f5EuNfaYXKgymucphlEXQew==, + } + ccount@2.0.1: resolution: { @@ -2237,19 +1933,13 @@ packages: } engines: { node: ">= 14.16.0" } - ci-info@4.1.0: + ci-info@4.2.0: resolution: { - integrity: sha512-HutrvTNsF48wnxkzERIXOe5/mlcfFcbfCmwcg6CJnizbSue78AbDt+1cgl26zwn61WFxhcPykPfZrbqjGmBb4A==, + integrity: sha512-cYY9mypksY8NRqgDB1XD1RiJL338v/551niynFTGkZOO2LHuB2OmOYxDIe/ttN9AHwrqdum1360G3ald0W9kCg==, } engines: { node: ">=8" } - citty@0.1.6: - resolution: - { - integrity: sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==, - } - cli-boxes@3.0.0: resolution: { @@ -2257,13 +1947,6 @@ packages: } engines: { node: ">=10" } - clipboardy@4.0.0: - resolution: - { - integrity: sha512-5mOlNS0mhX0707P2I0aZ2V/cmHUEO/fL7VFLqszkhUsxt7RwnmrInf/eEQKlf5GzvYeHIjT+Ov1HRfNmymlG0w==, - } - engines: { node: ">=18" } - cliui@8.0.1: resolution: { @@ -2349,19 +2032,6 @@ packages: integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==, } - confbox@0.1.8: - resolution: - { - integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==, - } - - consola@3.3.1: - resolution: - { - integrity: sha512-GyKnPG3/I+a4RtJxgHquJXWr70g9I3c4NT3dvqh0LPHQP2nZFQBOBszb7a5u/pGzqr40AKplQA6UxM1BSynSXg==, - } - engines: { node: ^14.18.0 || >=16.10.0 } - cookie-es@1.2.2: resolution: { @@ -2382,10 +2052,10 @@ packages: } engines: { node: ">= 8" } - crossws@0.3.1: + crossws@0.3.4: resolution: { - integrity: sha512-HsZgeVYaG+b5zA+9PbIPGq4+J/CJynJuearykPsXx4V/eMhyQ5EDVg3Ak2FBZtVXCiOLu/U7IiwDHTr9MA+IKw==, + integrity: sha512-uj0O1ETYX1Bh6uSgktfPvwDiPYGQ3aI4qVsaC/LWpkIzGj1nUYm5FK3K+t11oOlpN01lGbprFCH4wBlKdJjVgw==, } css-blank-pseudo@7.0.1: @@ -2542,14 +2212,6 @@ packages: integrity: sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ==, } - detect-libc@1.0.3: - resolution: - { - integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==, - } - engines: { node: ">=0.10" } - hasBin: true - detect-libc@2.0.3: resolution: { @@ -2683,10 +2345,10 @@ packages: } engines: { node: ">=0.12" } - es-module-lexer@1.5.4: + es-module-lexer@1.6.0: resolution: { - integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==, + integrity: sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==, } esast-util-from-estree@2.0.0: @@ -2701,18 +2363,10 @@ packages: integrity: sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw==, } - esbuild@0.21.5: + esbuild@0.25.1: resolution: { - integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==, - } - engines: { node: ">=12" } - hasBin: true - - esbuild@0.24.0: - resolution: - { - integrity: sha512-FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ==, + integrity: sha512-BGO5LtrGC7vxnqucAe/rmvKdJllfGaYWdyABvyMoXQlfYMb2bbRuReWR5tEGE//4LcNJj9XrkovTqNYRFZHAMQ==, } engines: { node: ">=18" } hasBin: true @@ -2731,14 +2385,6 @@ packages: } engines: { node: ">=12" } - esprima@4.0.1: - resolution: - { - integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==, - } - engines: { node: ">=4" } - hasBin: true - estree-util-attach-comments@3.0.0: resolution: { @@ -2793,17 +2439,10 @@ packages: integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==, } - execa@8.0.1: + expressive-code@0.40.2: resolution: { - integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==, - } - engines: { node: ">=16.17" } - - expressive-code@0.38.3: - resolution: - { - integrity: sha512-COM04AiUotHCKJgWdn7NtW2lqu8OW8owAidMpkXt1qxrZ9Q2iC7+tok/1qIn2ocGnczvr9paIySgGnEwFeEQ8Q==, + integrity: sha512-1zIda2rB0qiDZACawzw2rbdBQiWHBT56uBctS+ezFe5XMAaFaHLnnSYND/Kd+dVzO9HfCXRDpzH3d+3fvOWRcw==, } extend@3.0.2: @@ -2837,6 +2476,17 @@ packages: integrity: sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==, } + fdir@6.4.3: + resolution: + { + integrity: sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==, + } + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + fill-range@7.1.1: resolution: { @@ -2844,26 +2494,6 @@ packages: } engines: { node: ">=8" } - find-up-simple@1.0.0: - resolution: - { - integrity: sha512-q7Us7kcjj2VMePAa02hDAF6d+MzsdsAWEwYyOpwUtlerRBkOEPBCRZrAV4XfcSN8fHAgaD0hP7miwoay6DCprw==, - } - engines: { node: ">=18" } - - find-up@4.1.0: - resolution: - { - integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==, - } - engines: { node: ">=8" } - - find-yarn-workspace-root2@1.2.16: - resolution: - { - integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==, - } - flattie@1.1.1: resolution: { @@ -2871,10 +2501,10 @@ packages: } engines: { node: ">=8" } - foreground-child@3.3.0: + foreground-child@3.3.1: resolution: { - integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==, + integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==, } engines: { node: ">=14" } @@ -2912,19 +2542,6 @@ packages: } engines: { node: ">=18" } - get-port-please@3.1.2: - resolution: - { - integrity: sha512-Gxc29eLs1fbn6LQ4jSU4vXjlwyZhF5HsGuMAa7gqBP4Rw4yxxltyDUuF5MBclFzDTXO+ACchGQoeela4DSfzdQ==, - } - - get-stream@8.0.1: - resolution: - { - integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==, - } - engines: { node: ">=16" } - github-slugger@2.0.0: resolution: { @@ -2952,22 +2569,16 @@ packages: } hasBin: true - graceful-fs@4.2.11: - resolution: - { - integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==, - } - grapheme-splitter@1.0.4: resolution: { integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==, } - h3@1.13.0: + h3@1.15.1: resolution: { - integrity: sha512-vFEAu/yf8UMUcB4s43OaDaigcqpQd14yanmOsn+NcRX3/guSKncyE2rOYhq8RIchgJrPSs/QiIddnTTR1ddiAg==, + integrity: sha512-+ORaOBttdUm1E2Uu/obAyCguiI7MbBvsLTndc3gyK3zU+SYLoZXlyCP9Xgy0gikkGufFLTZXCXD6+4BsufnmHA==, } has-flag@4.0.0: @@ -3068,6 +2679,12 @@ packages: integrity: sha512-wxQzXtdbhiwGAUKrnQJXlOPmHnEehzphwkK7aluUPQ+lEc1xefC8pblMgpp2w5ldBTEfveRIrADcrhGIWrlTDA==, } + hast-util-to-html@9.0.5: + resolution: + { + integrity: sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==, + } + hast-util-to-jsx-runtime@2.3.2: resolution: { @@ -3128,20 +2745,6 @@ packages: integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==, } - http-shutdown@1.2.2: - resolution: - { - integrity: sha512-S9wWkJ/VSY9/k4qcjG318bqJNruzE4HySUhFYknwmu6LBP97KLLfwNf+n4V1BHurvFNkSKLFnK/RsuUnRTf9Vw==, - } - engines: { iojs: ">= 1.0.0", node: ">= 0.12.0" } - - human-signals@5.0.0: - resolution: - { - integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==, - } - engines: { node: ">=16.17.0" } - i18next@23.16.8: resolution: { @@ -3267,13 +2870,6 @@ packages: } engines: { node: ">=12" } - is-stream@3.0.0: - resolution: - { - integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==, - } - engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } - is-wsl@3.1.0: resolution: { @@ -3281,13 +2877,6 @@ packages: } engines: { node: ">=16" } - is64bit@2.0.0: - resolution: - { - integrity: sha512-jv+8jaWCl0g2lSBkNSVXdzfBA0npK1HGC2KtWM9FumFRoGS94g3NbCCLVnCYHLjp4GrW2KZeeSTMo5ddtznmGw==, - } - engines: { node: ">=18" } - isexe@2.0.0: resolution: { @@ -3320,13 +2909,6 @@ packages: integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==, } - js-yaml@3.14.1: - resolution: - { - integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==, - } - hasBin: true - js-yaml@4.1.0: resolution: { @@ -3380,6 +2962,13 @@ packages: } engines: { node: ">=6" } + klona@2.0.6: + resolution: + { + integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==, + } + engines: { node: ">= 8" } + leven@3.1.0: resolution: { @@ -3387,6 +2976,103 @@ packages: } engines: { node: ">=6" } + lightningcss-darwin-arm64@1.29.2: + resolution: + { + integrity: sha512-cK/eMabSViKn/PG8U/a7aCorpeKLMlK0bQeNHmdb7qUnBkNPnL+oV5DjJUo0kqWsJUapZsM4jCfYItbqBDvlcA==, + } + engines: { node: ">= 12.0.0" } + cpu: [arm64] + os: [darwin] + + lightningcss-darwin-x64@1.29.2: + resolution: + { + integrity: sha512-j5qYxamyQw4kDXX5hnnCKMf3mLlHvG44f24Qyi2965/Ycz829MYqjrVg2H8BidybHBp9kom4D7DR5VqCKDXS0w==, + } + engines: { node: ">= 12.0.0" } + cpu: [x64] + os: [darwin] + + lightningcss-freebsd-x64@1.29.2: + resolution: + { + integrity: sha512-wDk7M2tM78Ii8ek9YjnY8MjV5f5JN2qNVO+/0BAGZRvXKtQrBC4/cn4ssQIpKIPP44YXw6gFdpUF+Ps+RGsCwg==, + } + engines: { node: ">= 12.0.0" } + cpu: [x64] + os: [freebsd] + + lightningcss-linux-arm-gnueabihf@1.29.2: + resolution: + { + integrity: sha512-IRUrOrAF2Z+KExdExe3Rz7NSTuuJ2HvCGlMKoquK5pjvo2JY4Rybr+NrKnq0U0hZnx5AnGsuFHjGnNT14w26sg==, + } + engines: { node: ">= 12.0.0" } + cpu: [arm] + os: [linux] + + lightningcss-linux-arm64-gnu@1.29.2: + resolution: + { + integrity: sha512-KKCpOlmhdjvUTX/mBuaKemp0oeDIBBLFiU5Fnqxh1/DZ4JPZi4evEH7TKoSBFOSOV3J7iEmmBaw/8dpiUvRKlQ==, + } + engines: { node: ">= 12.0.0" } + cpu: [arm64] + os: [linux] + + lightningcss-linux-arm64-musl@1.29.2: + resolution: + { + integrity: sha512-Q64eM1bPlOOUgxFmoPUefqzY1yV3ctFPE6d/Vt7WzLW4rKTv7MyYNky+FWxRpLkNASTnKQUaiMJ87zNODIrrKQ==, + } + engines: { node: ">= 12.0.0" } + cpu: [arm64] + os: [linux] + + lightningcss-linux-x64-gnu@1.29.2: + resolution: + { + integrity: sha512-0v6idDCPG6epLXtBH/RPkHvYx74CVziHo6TMYga8O2EiQApnUPZsbR9nFNrg2cgBzk1AYqEd95TlrsL7nYABQg==, + } + engines: { node: ">= 12.0.0" } + cpu: [x64] + os: [linux] + + lightningcss-linux-x64-musl@1.29.2: + resolution: + { + integrity: sha512-rMpz2yawkgGT8RULc5S4WiZopVMOFWjiItBT7aSfDX4NQav6M44rhn5hjtkKzB+wMTRlLLqxkeYEtQ3dd9696w==, + } + engines: { node: ">= 12.0.0" } + cpu: [x64] + os: [linux] + + lightningcss-win32-arm64-msvc@1.29.2: + resolution: + { + integrity: sha512-nL7zRW6evGQqYVu/bKGK+zShyz8OVzsCotFgc7judbt6wnB2KbiKKJwBE4SGoDBQ1O94RjW4asrCjQL4i8Fhbw==, + } + engines: { node: ">= 12.0.0" } + cpu: [arm64] + os: [win32] + + lightningcss-win32-x64-msvc@1.29.2: + resolution: + { + integrity: sha512-EdIUW3B2vLuHmv7urfzMI/h2fmlnOQBk1xlsDxkN1tCWKjNFjfLhGxYk8C8mzpSfr+A6jFFIi8fU6LbQGsRWjA==, + } + engines: { node: ">= 12.0.0" } + cpu: [x64] + os: [win32] + + lightningcss@1.29.2: + resolution: + { + integrity: sha512-6b6gd/RUXKaw5keVdSEtqFVdzWnU5jMxTUjA2bVcMNPLwSQ08Sv/UodBVtETLCn7k4S1Ibxwh7k68IwLZPgKaA==, + } + engines: { node: ">= 12.0.0" } + lilconfig@3.1.3: resolution: { @@ -3400,27 +3086,6 @@ packages: integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==, } - listhen@1.9.0: - resolution: - { - integrity: sha512-I8oW2+QL5KJo8zXNWX046M134WchxsXC7SawLPvRQpogCbkyQIaFxPE89A2HiwR7vAK2Dm2ERBAmyjTYGYEpBg==, - } - hasBin: true - - load-yaml-file@0.2.0: - resolution: - { - integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==, - } - engines: { node: ">=6" } - - locate-path@5.0.0: - resolution: - { - integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==, - } - engines: { node: ">=8" } - lodash.memoize@4.1.2: resolution: { @@ -3596,12 +3261,6 @@ packages: integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==, } - merge-stream@2.0.0: - resolution: - { - integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==, - } - merge2@1.4.1: resolution: { @@ -3832,21 +3491,6 @@ packages: } engines: { node: ">=8.6" } - mime@3.0.0: - resolution: - { - integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==, - } - engines: { node: ">=10.0.0" } - hasBin: true - - mimic-fn@4.0.0: - resolution: - { - integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==, - } - engines: { node: ">=12" } - minimatch@9.0.5: resolution: { @@ -3861,16 +3505,10 @@ packages: } engines: { node: ">=16 || 14 >=14.17" } - mlly@1.7.3: + mrmime@2.0.1: resolution: { - integrity: sha512-xUsx5n/mN0uQf4V548PKQ+YShA4/IW0KI1dZhrNrPCLG+xizETbHTkOa1f8/xut9JRPp8kQuMnz0oqwkTiLo/A==, - } - - mrmime@2.0.0: - resolution: - { - integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==, + integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==, } engines: { node: ">=10" } @@ -3913,25 +3551,18 @@ packages: integrity: sha512-YKLBCcUYKAg0FNlOBT6aI91qFmSiFKiluk655WzPF+DDMA02qIyy8uiRqI8QXtcFpEvll12LpL5MXqEmAZ+dcA==, } - node-addon-api@7.1.1: + node-fetch-native@1.6.6: resolution: { - integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==, + integrity: sha512-8Mc2HhqPdlIfedsuZoc3yioPuzp6b+L5jRCRY1QzuWZh2EGJVQrGppC6V6cF0bLdbW0+O2YpqCA25aF/1lvipQ==, } - node-fetch-native@1.6.4: + node-mock-http@1.0.0: resolution: { - integrity: sha512-IhOigYzAKHd244OC0JIMIUrjzctirCmPkaIfhDeGcEETWof5zKYUW7e7MYvChGWh/4CJeXEgsRyGzuF334rOOQ==, + integrity: sha512-0uGYQ1WQL1M5kKvGRXWQ3uZCHtLTO8hln3oBjIusM75WoesZ909uQJs/Hb946i2SS+Gsrhkaa6iAO17jRIv6DQ==, } - node-forge@1.3.1: - resolution: - { - integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==, - } - engines: { node: ">= 6.13.0" } - node-releases@2.0.19: resolution: { @@ -3952,13 +3583,6 @@ packages: } engines: { node: ">=0.10.0" } - npm-run-path@5.3.0: - resolution: - { - integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==, - } - engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } - nth-check@2.1.1: resolution: { @@ -3985,23 +3609,10 @@ packages: integrity: sha512-QZj2DfGplQAr2oj9KzceK9Hwz6Whxazmn85yYeVuS3u9XTMOGMRx0kO95MQ+vLsj/S/NwBDMMLU5hpxvI6Tklw==, } - ohash@1.1.4: + oniguruma-to-es@2.3.0: resolution: { - integrity: sha512-FlDryZAahJmEF3VR3w1KogSEdWX3WhA5GPakFx4J81kEAiHyLMpdLLElS8n8dfNadMgAne/MywcvmogzscVt4g==, - } - - onetime@6.0.0: - resolution: - { - integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==, - } - engines: { node: ">=12" } - - oniguruma-to-es@0.8.1: - resolution: - { - integrity: sha512-dekySTEvCxCj0IgKcA2uUCO/e4ArsqpucDPcX26w9ajx+DvMWLc5eZeJaRQkd7oC/+rwif5gnT900tA34uN9Zw==, + integrity: sha512-bwALDxriqfKGfUufKGGepCzu9x7nJQuoRoAFp4AnwehhC2crqrDIAP/uN2qdlsAvSMpeRC3+Yzhqc7hLmle5+g==, } openapi-types@12.1.3: @@ -4010,13 +3621,6 @@ packages: integrity: sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw==, } - p-limit@2.3.0: - resolution: - { - integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==, - } - engines: { node: ">=6" } - p-limit@6.2.0: resolution: { @@ -4024,17 +3628,10 @@ packages: } engines: { node: ">=18" } - p-locate@4.1.0: + p-queue@8.1.0: resolution: { - integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==, - } - engines: { node: ">=8" } - - p-queue@8.0.1: - resolution: - { - integrity: sha512-NXzu9aQJTAzbBqOt2hwsR63ea7yvxJc0PwN/zobNAudYfb1B7R08SzB4TsLeSbUCuG467NhnoT0oO6w1qRO+BA==, + integrity: sha512-mxLDbbGIBEXTJL0zEx8JIylaj3xQ7Z/7eEVjcF9fJX4DBiH9oqe+oahYnlKKxm0Ci9TlWTyhSHgygxMxjIB2jw==, } engines: { node: ">=18" } @@ -4045,19 +3642,18 @@ packages: } engines: { node: ">=14.16" } - p-try@2.2.0: - resolution: - { - integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==, - } - engines: { node: ">=6" } - package-json-from-dist@1.0.1: resolution: { integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==, } + package-manager-detector@1.0.0: + resolution: + { + integrity: sha512-7elnH+9zMsRo7aS72w6MeRugTpdRvInmEB4Kmm9BVvPw/SLG8gXUGQ+4wF0Mys0RSWPz0B9nuBbDe8vFeA2sfg==, + } + pagefind@1.3.0: resolution: { @@ -4089,13 +3685,6 @@ packages: integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==, } - path-exists@4.0.0: - resolution: - { - integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==, - } - engines: { node: ">=8" } - path-key@3.1.1: resolution: { @@ -4103,13 +3692,6 @@ packages: } engines: { node: ">=8" } - path-key@4.0.0: - resolution: - { - integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==, - } - engines: { node: ">=12" } - path-parse@1.0.7: resolution: { @@ -4123,12 +3705,6 @@ packages: } engines: { node: ">=16 || 14 >=14.18" } - pathe@1.1.2: - resolution: - { - integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==, - } - picocolors@1.1.1: resolution: { @@ -4156,13 +3732,6 @@ packages: } engines: { node: ">=0.10.0" } - pify@4.0.1: - resolution: - { - integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==, - } - engines: { node: ">=6" } - pirates@4.0.6: resolution: { @@ -4170,19 +3739,6 @@ packages: } engines: { node: ">= 6" } - pkg-dir@4.2.0: - resolution: - { - integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==, - } - engines: { node: ">=8" } - - pkg-types@1.2.1: - resolution: - { - integrity: sha512-sQoqa8alT3nHjGuTjuKgOnvjo4cljkufdtLMnO2LBP/wRwuDlo1tkaEdMxCRhyGRPacv/ztlZgDPm2b7FAmEvw==, - } - postcss-attribute-case-insensitive@7.0.1: resolution: { @@ -4210,10 +3766,10 @@ packages: peerDependencies: postcss: ^8.4.6 - postcss-color-functional-notation@7.0.7: + postcss-color-functional-notation@7.0.8: resolution: { - integrity: sha512-EZvAHsvyASX63vXnyXOIynkxhaHRSsdb7z6yiXKIovGXAolW4cMZ3qoh7k3VdTsLBS6VGdksGfIo3r6+waLoOw==, + integrity: sha512-S/TpMKVKofNvsxfau/+bw+IA6cSfB6/kmzFj5szUofHOVnFFMB2WwK+Zu07BeMD8T0n+ZnTO5uXiMvAKe2dPkA==, } engines: { node: ">=18" } peerDependencies: @@ -4398,10 +3954,10 @@ packages: peerDependencies: postcss: ^8.4.21 - postcss-lab-function@7.0.7: + postcss-lab-function@7.0.8: resolution: { - integrity: sha512-+ONj2bpOQfsCKZE2T9VGMyVVdGcGUpr7u3SVfvkJlvhTRmDCfY25k4Jc8fubB9DclAPR4+w8uVtDZmdRgdAHig==, + integrity: sha512-plV21I86Hg9q8omNz13G9fhPtLopIWH06bt/Cb5cs1XnaGU2kUtEitvVd4vtQb/VqCdNUHK5swKn3QFmMRbpDg==, } engines: { node: ">=18" } peerDependencies: @@ -4422,10 +3978,10 @@ packages: ts-node: optional: true - postcss-logical@8.0.0: + postcss-logical@8.1.0: resolution: { - integrity: sha512-HpIdsdieClTjXLOyYdUPAX/XQASNIwdKt5hoZW08ZOAiI+tbV0ta1oclkpVkW5ANU+xJvk3KkA0FejkjGLXUkg==, + integrity: sha512-pL1hXFQ2fEXNKiNiAgtfA005T9FBxky5zkX6s4GZM2D8RkVgRqz3f4g1JUoq925zXv495qk8UNldDwh8uGEDoA==, } engines: { node: ">=18" } peerDependencies: @@ -4628,10 +4184,10 @@ packages: peerDependencies: postcss: ^8.4 - postcss-preset-env@10.1.3: + postcss-preset-env@10.1.5: resolution: { - integrity: sha512-9qzVhcMFU/MnwYHyYpJz4JhGku/4+xEiPTmhn0hj3IxnUYlEF9vbh7OC1KoLAnenS6Fgg43TKNp9xcuMeAi4Zw==, + integrity: sha512-LQybafF/K7H+6fAs4SIkgzkSCixJy0/h0gubDIAP3Ihz+IQBRwsjyvBnAZ3JUHD+A/ITaxVRPDxn//a3Qy4pDw==, } engines: { node: ">=18" } peerDependencies: @@ -4726,12 +4282,12 @@ packages: } engines: { node: ^10 || ^12 || >=14 } - preferred-pm@4.0.0: + postcss@8.5.3: resolution: { - integrity: sha512-gYBeFTZLu055D8Vv3cSPox/0iTPtkzxpLroSYYA7WXgRi31WCJ51Uyl8ZiPeUUjyvs2MBzK+S8v9JVUgHU/Sqw==, + integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==, } - engines: { node: ">=18.12" } + engines: { node: ^10 || ^12 || >=14 } prettier@2.8.7: resolution: @@ -4761,6 +4317,12 @@ packages: integrity: sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==, } + property-information@7.0.0: + resolution: + { + integrity: sha512-7D/qOz/+Y4X/rzSB6jKxKUsQnphO046ei8qxG59mtM3RG3DHgTK81HrxrmoDVINJb8NKT5ZsRbwHvQ6B68Iyhg==, + } + queue-microtask@1.2.3: resolution: { @@ -4823,10 +4385,10 @@ packages: integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==, } - regex-recursion@5.0.0: + regex-recursion@5.1.1: resolution: { - integrity: sha512-UwyOqeobrCCqTXPcsSqH4gDhOjD5cI/b8kjngWgSZbxYh5yVjAwTjO5+hAuPRNiuR70+5RlWSs+U9PVcVcW9Lw==, + integrity: sha512-ae7SBCbzVNrIjgSbh7wMznPcQel1DNlDtzensnFxpiNpXt1U2ju/bHugH422r+4LAVS1FpW1YCwilmnNsjum9w==, } regex-utilities@2.3.0: @@ -4835,16 +4397,16 @@ packages: integrity: sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==, } - regex@5.0.2: + regex@5.1.1: resolution: { - integrity: sha512-/pczGbKIQgfTMRV0XjABvc5RzLqQmwqxLHdQao2RTXPk+pmTXB2P0IaUHYdYyk412YLwUIkaeMd5T+RzVgTqnQ==, + integrity: sha512-dN5I359AVGPnwzJm2jN1k0W9LPZ+ePvoOeVMMfqIMFz53sSwXkxaJoxr50ptnsC771lK95BnTrVSZxq0b9yCGw==, } - rehype-expressive-code@0.38.3: + rehype-expressive-code@0.40.2: resolution: { - integrity: sha512-RYSSDkMBikoTbycZPkcWp6ELneANT4eTpND1DSRJ6nI2eVFUwTBDCvE2vO6jOOTaavwnPiydi4i/87NRyjpdOA==, + integrity: sha512-+kn+AMGCrGzvtH8Q5lC6Y5lnmTV/r33fdmi5QU/IH1KPHKobKr5UnLwJuqHv5jBTSN/0v2wLDS7RTM73FVzqmQ==, } rehype-format@5.0.1: @@ -4889,10 +4451,10 @@ packages: integrity: sha512-l1UyWJ6Eg1VPU7Hm/9tt0zKtReJQNOA4+iDMAxTyZNWnJnFlbS/7zhiel/rogTLQ2vMYwDzSJa4BiVNqGlqIMA==, } - remark-gfm@4.0.0: + remark-gfm@4.0.1: resolution: { - integrity: sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==, + integrity: sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==, } remark-mdx@3.1.0: @@ -4991,10 +4553,10 @@ packages: } engines: { iojs: ">=1.0.0", node: ">=0.10.0" } - rollup@4.29.1: + rollup@4.35.0: resolution: { - integrity: sha512-RaJ45M/kmJUzSWDs1Nnd5DdV4eerC98idtUOVr6FfKcgxqvjwHmxc5upLF9qZU9EpsVzzhleFahrT3shLuJzIw==, + integrity: sha512-kg6oI4g+vc41vePJyO6dHt/yl0Rz3Thv0kJeVQ3D1kS3E5XSuKbPc29G4IpT/Kv1KQwgHVcN+HtyS+HYLNSvQg==, } engines: { node: ">=18.0.0", npm: ">=8.0.0" } hasBin: true @@ -5019,6 +4581,14 @@ packages: engines: { node: ">=10" } hasBin: true + semver@7.7.1: + resolution: + { + integrity: sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==, + } + engines: { node: ">=10" } + hasBin: true + sharp@0.33.5: resolution: { @@ -5040,10 +4610,10 @@ packages: } engines: { node: ">=8" } - shiki@1.24.4: + shiki@1.29.2: resolution: { - integrity: sha512-aVGSFAOAr1v26Hh/+GBIsRVDWJ583XYV7CuNURKRWh9gpGv4OdbisZGq96B9arMYTZhTQkmRF5BrShOSTvNqhw==, + integrity: sha512-njXuliz/cP+67jU2hukkxCNuH1yUi4QfdZZY+sMr5PPrIyXSu5iTb/qYC4BiWWB0vZ+7TbdvYUCeL23zpwCfbg==, } signal-exit@4.1.0: @@ -5073,6 +4643,13 @@ packages: engines: { node: ">=14.0.0", npm: ">=6.0.0" } hasBin: true + smol-toml@1.3.1: + resolution: + { + integrity: sha512-tEYNll18pPKHroYSmLLrksq233j021G0giwW7P3D24jC54pQ5W5BXMsQ/Mvw1OJCmEYDgY+lrzT+3nNUtoNfXQ==, + } + engines: { node: ">= 18" } + source-map-js@1.2.1: resolution: { @@ -5093,27 +4670,16 @@ packages: integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==, } - sprintf-js@1.0.3: + starlight-openapi@0.14.1: resolution: { - integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==, - } - - starlight-openapi@0.9.0: - resolution: - { - integrity: sha512-YKsYNqYhWu3VF91z4XB1os4ZXwTsgz1LCZggeK/G6RguV4hcaFH18wHYGtO9icqPR+ZbJyrLAdlAjF3CvGBAWA==, + integrity: sha512-hCmeNR2KA0RrvJMjewPmqmHSY470TobyU1PDKDbwbHMbP0OcYxD36pTOTXkWFxdSnIQc7WPC0jc8trMNzb3/tw==, } engines: { node: ">=18.17.1" } peerDependencies: - "@astrojs/markdown-remark": ">=6.0.0" + "@astrojs/markdown-remark": ">=6.0.1" "@astrojs/starlight": ">=0.30.0" - - std-env@3.8.0: - resolution: - { - integrity: sha512-Bc3YwwCB+OzldMxOXJIIvC6cPRWr/LxOp48CdQTOkPyk/t4JWWJbrilwBd7RJzKV8QW7tJkcgAmeuLLJugl5/w==, - } + astro: ">=5.1.5" stream-replace-string@2.0.0: resolution: @@ -5162,20 +4728,6 @@ packages: } engines: { node: ">=12" } - strip-bom@3.0.0: - resolution: - { - integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==, - } - engines: { node: ">=4" } - - strip-final-newline@3.0.0: - resolution: - { - integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==, - } - engines: { node: ">=12" } - style-to-object@0.4.4: resolution: { @@ -5227,13 +4779,6 @@ packages: engines: { node: ">=14.0.0" } hasBin: true - system-architecture@0.1.0: - resolution: - { - integrity: sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA==, - } - engines: { node: ">=18" } - tailwindcss@3.4.17: resolution: { @@ -5255,12 +4800,19 @@ packages: integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==, } - tinyexec@0.3.1: + tinyexec@0.3.2: resolution: { - integrity: sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ==, + integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==, } + tinyglobby@0.2.12: + resolution: + { + integrity: sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==, + } + engines: { node: ">=12.0.0" } + to-regex-range@5.0.1: resolution: { @@ -5286,10 +4838,10 @@ packages: integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==, } - tsconfck@3.1.4: + tsconfck@3.1.5: resolution: { - integrity: sha512-kdqWFGVJqe+KGYvlSO9NIaWn9jT1Ny4oKVzAJsKii5eoE9snzTJzL4+MMVOMn+fikWGFmKEylcXL710V/kIPJQ==, + integrity: sha512-CLDfGgUp7XPswWnezWwsCRxNmgQjhYq3VXHM0/XIRxhVrKw0M1if9agzryh1QS3nxjCROvV+xWxoJO1YctzzWg==, } engines: { node: ^18 || >=20 } hasBin: true @@ -5324,10 +4876,10 @@ packages: integrity: sha512-fAIveQKsoYj55CozUiBoj4b/7WpN0i4o74wiGY5JVUEoD0XiqDk1tJqTEjgzL2/AizKQrXxyRosSebyDzBZKjw==, } - typescript@5.7.2: + typescript@5.8.2: resolution: { - integrity: sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==, + integrity: sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==, } engines: { node: ">=14.17" } hasBin: true @@ -5350,12 +4902,6 @@ packages: integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==, } - unenv@1.10.0: - resolution: - { - integrity: sha512-wY5bskBQFL9n3Eca5XnhH6KbUo/tfvkwm9OpcdCvLaeA7piBNbavbOKJySEwQ1V0RH6HvNlSAFRTpvTqgKRQXQ==, - } - unified@11.0.5: resolution: { @@ -5422,30 +4968,30 @@ packages: integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==, } - unstorage@1.14.1: + unstorage@1.15.0: resolution: { - integrity: sha512-0MBKpoVhNLL/Ixvue9lIsrHkwwWW9/f3TRftsYu1R7nZJJyHSdgPMBDjny2op07nirnS3OX6H3u+YDFGld+1Bg==, + integrity: sha512-m40eHdGY/gA6xAPqo8eaxqXgBuzQTlAKfmB1iF7oCKXE1HfwHwzDJBywK+qQGn52dta+bPlZluPF7++yR3p/bg==, } peerDependencies: "@azure/app-configuration": ^1.8.0 "@azure/cosmos": ^4.2.0 "@azure/data-tables": ^13.3.0 - "@azure/identity": ^4.5.0 + "@azure/identity": ^4.6.0 "@azure/keyvault-secrets": ^4.9.0 "@azure/storage-blob": ^12.26.0 "@capacitor/preferences": ^6.0.3 - "@deno/kv": ">=0.8.4" + "@deno/kv": ">=0.9.0" "@netlify/blobs": ^6.5.0 || ^7.0.0 || ^8.1.0 "@planetscale/database": ^1.19.0 "@upstash/redis": ^1.34.3 - "@vercel/blob": ">=0.27.0" + "@vercel/blob": ">=0.27.1" "@vercel/kv": ^1.0.1 aws4fetch: ^1.0.20 db0: ">=0.2.1" idb-keyval: ^6.2.1 - ioredis: ^5.4.1 - uploadthing: ^7.4.1 + ioredis: ^5.4.2 + uploadthing: ^7.4.4 peerDependenciesMeta: "@azure/app-configuration": optional: true @@ -5484,13 +5030,6 @@ packages: uploadthing: optional: true - untun@0.1.3: - resolution: - { - integrity: sha512-4luGP9LMYszMRZwsvyUd9MrxgEGZdZuZgpVQHEEX0lCYFESasVRvZd0EYpCkOIbJKHMuv0LskpXc/8Un+MJzEQ==, - } - hasBin: true - update-browserslist-db@1.1.1: resolution: { @@ -5500,11 +5039,12 @@ packages: peerDependencies: browserslist: ">= 4.21.0" - uqr@0.1.2: + url-template@3.1.1: resolution: { - integrity: sha512-MJu7ypHq6QasgF5YRTjqscSzQp/W11zoUk6kvmlH+fmWEs63Y0Eib13hYFwAzagRJcVY8WVnlV+eBDUGMJ5IbA==, + integrity: sha512-4oszoaEKE/mQOtAmdMWqIRHmkxWkUZMnXFnjQ5i01CuRSK3uluxcH1MRVVVWmhlnzT1SCDfKxxficm2G37qzCA==, } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } util-deprecate@1.0.2: resolution: @@ -5530,10 +5070,10 @@ packages: integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==, } - vite@6.0.5: + vite@6.2.2: resolution: { - integrity: sha512-akD5IAH/ID5imgue2DYhzsEwCi0/4VKY31uhMLEYJwPP4TiUp8pL5PIK+Wo7H8qT8JY9i+pVfPydcFPYD1EL7g==, + integrity: sha512-yW7PeMM+LkDzc7CgJuRLMW2Jz0FxMOsVJ8Lv3gpgW9WLcb9cTW+121UEr1hvmfR7w3SegR5ItvYyzVz1vxNJgQ==, } engines: { node: ^18.0.0 || ^20.0.0 || >=22.0.0 } hasBin: true @@ -5573,10 +5113,10 @@ packages: yaml: optional: true - vitefu@1.0.4: + vitefu@1.0.6: resolution: { - integrity: sha512-y6zEE3PQf6uu/Mt6DTJ9ih+kyJLr4XcSgHR2zUkM8SWDhuixEJxfJ6CZGMHh1Ec3vPLoEA0IHU5oWzVqw8ulow==, + integrity: sha512-+Rex1GlappUyNN6UfwbVZne/9cYC4+R2XDk9xkNXBKMw6HQagdX9PgZ8V2v1WUSK1wfBLp7qbI1+XSNIlB1xmA==, } peerDependencies: vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 @@ -5766,13 +5306,6 @@ packages: } engines: { node: ">=4" } - which-pm@3.0.0: - resolution: - { - integrity: sha512-ysVYmw6+ZBhx3+ZkcPwRuJi38ZOTLJJ33PSHaitLxSKUMsh0LkKd0nC69zZCwt5D+AYUcMK2hhw4yWny20vSGg==, - } - engines: { node: ">=18.12" } - which@2.0.2: resolution: { @@ -5865,10 +5398,10 @@ packages: } engines: { node: ">=12.20" } - yocto-spinner@0.1.2: + yocto-spinner@0.2.1: resolution: { - integrity: sha512-VfmLIh/ZSZOJnVRQZc/dvpPP90lWL4G0bmxQMP0+U/2vKBA8GSpcBuWv17y7F+CZItRuO97HN1wdbb4p10uhOg==, + integrity: sha512-lHHxjh0bXaLgdJy3cNnVb/F9myx3CkhrvSOEVTkaUgNMXnYFa2xYPVhtGnqhh3jErY2gParBOHallCbc7NrlZQ==, } engines: { node: ">=18.19" } @@ -5879,10 +5412,10 @@ packages: } engines: { node: ">=18" } - zod-to-json-schema@3.24.1: + zod-to-json-schema@3.24.3: resolution: { - integrity: sha512-3h08nf3Vw3Wl3PK+q3ow/lIil81IT2Oa7YpQyUUDsEWbXveMesdfK1xBd2RhCkynwZndAxixji/7SYJJowr62w==, + integrity: sha512-HIAfWdYIt1sssHfYZFCXp4rU1w2r8hVVXYIlmoa0r0gABLs5di3RCqPU5DDROogVz1pAdYBaz7HK5n9pSUNs3A==, } peerDependencies: zod: ^3.24.1 @@ -5896,10 +5429,10 @@ packages: typescript: ^4.9.4 || ^5.0.2 zod: ^3 - zod@3.24.1: + zod@3.24.2: resolution: { - integrity: sha512-muH7gBL9sI1nciMZV67X5fTKKBLtwpZ5VBp1vsOQzj1MhrBZ4wlVCm3gedKZWLp0Oyel8sIGfeiz54Su+OVT+A==, + integrity: sha512-lY7CDW43ECgW9u1TcT3IoXHflywfVqDYze4waEz812jR/bZ8FHDsl7pFQoSZTz5N+2NqRXs8GBwnAwo3ZNxqhQ==, } zwitch@2.0.4: @@ -5913,12 +5446,12 @@ snapshots: "@apidevtools/swagger-methods@3.0.2": {} - "@astrojs/check@0.9.4(typescript@5.7.2)": + "@astrojs/check@0.9.4(typescript@5.8.2)": dependencies: - "@astrojs/language-server": 2.15.4(typescript@5.7.2) + "@astrojs/language-server": 2.15.4(typescript@5.8.2) chokidar: 4.0.3 kleur: 4.1.5 - typescript: 5.7.2 + typescript: 5.8.2 yargs: 17.7.2 transitivePeerDependencies: - prettier @@ -5926,14 +5459,16 @@ snapshots: "@astrojs/compiler@2.10.3": {} - "@astrojs/internal-helpers@0.4.2": {} + "@astrojs/compiler@2.11.0": {} - "@astrojs/language-server@2.15.4(typescript@5.7.2)": + "@astrojs/internal-helpers@0.6.1": {} + + "@astrojs/language-server@2.15.4(typescript@5.8.2)": dependencies: "@astrojs/compiler": 2.10.3 "@astrojs/yaml2ts": 0.2.2 "@jridgewell/sourcemap-codec": 1.5.0 - "@volar/kit": 2.4.11(typescript@5.7.2) + "@volar/kit": 2.4.11(typescript@5.8.2) "@volar/language-core": 2.4.11 "@volar/language-server": 2.4.11 "@volar/language-service": 2.4.11 @@ -5951,8 +5486,9 @@ snapshots: transitivePeerDependencies: - typescript - "@astrojs/markdown-remark@6.0.1": + "@astrojs/markdown-remark@6.3.0": dependencies: + "@astrojs/internal-helpers": 0.6.1 "@astrojs/prism": 3.2.0 github-slugger: 2.0.0 hast-util-from-html: 2.0.3 @@ -5962,11 +5498,12 @@ snapshots: mdast-util-definitions: 6.0.0 rehype-raw: 7.0.0 rehype-stringify: 10.0.1 - remark-gfm: 4.0.0 + remark-gfm: 4.0.1 remark-parse: 11.0.0 remark-rehype: 11.1.1 remark-smartypants: 3.0.2 - shiki: 1.24.4 + shiki: 1.29.2 + smol-toml: 1.3.1 unified: 11.0.5 unist-util-remove-position: 5.0.0 unist-util-visit: 5.0.0 @@ -5975,18 +5512,18 @@ snapshots: transitivePeerDependencies: - supports-color - "@astrojs/mdx@4.0.3(astro@5.1.1(jiti@2.4.2)(rollup@4.29.1)(typescript@5.7.2)(yaml@2.6.1))": + "@astrojs/mdx@4.2.0(astro@5.5.2(jiti@2.4.2)(lightningcss@1.29.2)(rollup@4.35.0)(typescript@5.8.2)(yaml@2.6.1))": dependencies: - "@astrojs/markdown-remark": 6.0.1 - "@mdx-js/mdx": 3.1.0(acorn@8.14.0) - acorn: 8.14.0 - astro: 5.1.1(jiti@2.4.2)(rollup@4.29.1)(typescript@5.7.2)(yaml@2.6.1) - es-module-lexer: 1.5.4 + "@astrojs/markdown-remark": 6.3.0 + "@mdx-js/mdx": 3.1.0(acorn@8.14.1) + acorn: 8.14.1 + astro: 5.5.2(jiti@2.4.2)(lightningcss@1.29.2)(rollup@4.35.0)(typescript@5.8.2)(yaml@2.6.1) + es-module-lexer: 1.6.0 estree-util-visit: 2.0.0 - hast-util-to-html: 9.0.4 + hast-util-to-html: 9.0.5 kleur: 4.1.5 rehype-raw: 7.0.0 - remark-gfm: 4.0.0 + remark-gfm: 4.0.1 remark-smartypants: 3.0.2 source-map: 0.7.4 unist-util-visit: 5.0.0 @@ -6002,24 +5539,24 @@ snapshots: dependencies: sitemap: 8.0.0 stream-replace-string: 2.0.0 - zod: 3.24.1 + zod: 3.24.2 - "@astrojs/starlight-tailwind@3.0.0(@astrojs/starlight@0.30.3(astro@5.1.1(jiti@2.4.2)(rollup@4.29.1)(typescript@5.7.2)(yaml@2.6.1)))(@astrojs/tailwind@5.1.4(astro@5.1.1(jiti@2.4.2)(rollup@4.29.1)(typescript@5.7.2)(yaml@2.6.1))(tailwindcss@3.4.17))(tailwindcss@3.4.17)": + "@astrojs/starlight-tailwind@3.0.0(@astrojs/starlight@0.32.2(astro@5.5.2(jiti@2.4.2)(lightningcss@1.29.2)(rollup@4.35.0)(typescript@5.8.2)(yaml@2.6.1)))(@astrojs/tailwind@5.1.5(astro@5.5.2(jiti@2.4.2)(lightningcss@1.29.2)(rollup@4.35.0)(typescript@5.8.2)(yaml@2.6.1))(tailwindcss@3.4.17))(tailwindcss@3.4.17)": dependencies: - "@astrojs/starlight": 0.30.3(astro@5.1.1(jiti@2.4.2)(rollup@4.29.1)(typescript@5.7.2)(yaml@2.6.1)) - "@astrojs/tailwind": 5.1.4(astro@5.1.1(jiti@2.4.2)(rollup@4.29.1)(typescript@5.7.2)(yaml@2.6.1))(tailwindcss@3.4.17) + "@astrojs/starlight": 0.32.2(astro@5.5.2(jiti@2.4.2)(lightningcss@1.29.2)(rollup@4.35.0)(typescript@5.8.2)(yaml@2.6.1)) + "@astrojs/tailwind": 5.1.5(astro@5.5.2(jiti@2.4.2)(lightningcss@1.29.2)(rollup@4.35.0)(typescript@5.8.2)(yaml@2.6.1))(tailwindcss@3.4.17) tailwindcss: 3.4.17 - "@astrojs/starlight@0.30.3(astro@5.1.1(jiti@2.4.2)(rollup@4.29.1)(typescript@5.7.2)(yaml@2.6.1))": + "@astrojs/starlight@0.32.2(astro@5.5.2(jiti@2.4.2)(lightningcss@1.29.2)(rollup@4.35.0)(typescript@5.8.2)(yaml@2.6.1))": dependencies: - "@astrojs/mdx": 4.0.3(astro@5.1.1(jiti@2.4.2)(rollup@4.29.1)(typescript@5.7.2)(yaml@2.6.1)) + "@astrojs/mdx": 4.2.0(astro@5.5.2(jiti@2.4.2)(lightningcss@1.29.2)(rollup@4.35.0)(typescript@5.8.2)(yaml@2.6.1)) "@astrojs/sitemap": 3.2.1 "@pagefind/default-ui": 1.3.0 "@types/hast": 3.0.4 "@types/js-yaml": 4.0.9 "@types/mdast": 4.0.4 - astro: 5.1.1(jiti@2.4.2)(rollup@4.29.1)(typescript@5.7.2)(yaml@2.6.1) - astro-expressive-code: 0.38.3(astro@5.1.1(jiti@2.4.2)(rollup@4.29.1)(typescript@5.7.2)(yaml@2.6.1)) + astro: 5.5.2(jiti@2.4.2)(lightningcss@1.29.2)(rollup@4.35.0)(typescript@5.8.2)(yaml@2.6.1) + astro-expressive-code: 0.40.2(astro@5.5.2(jiti@2.4.2)(lightningcss@1.29.2)(rollup@4.35.0)(typescript@5.8.2)(yaml@2.6.1)) bcp-47: 2.1.0 hast-util-from-html: 2.0.3 hast-util-select: 6.0.3 @@ -6027,6 +5564,7 @@ snapshots: hastscript: 9.0.0 i18next: 23.16.8 js-yaml: 4.1.0 + klona: 2.0.6 mdast-util-directive: 3.0.0 mdast-util-to-markdown: 2.1.2 mdast-util-to-string: 4.0.0 @@ -6040,19 +5578,19 @@ snapshots: transitivePeerDependencies: - supports-color - "@astrojs/tailwind@5.1.4(astro@5.1.1(jiti@2.4.2)(rollup@4.29.1)(typescript@5.7.2)(yaml@2.6.1))(tailwindcss@3.4.17)": + "@astrojs/tailwind@5.1.5(astro@5.5.2(jiti@2.4.2)(lightningcss@1.29.2)(rollup@4.35.0)(typescript@5.8.2)(yaml@2.6.1))(tailwindcss@3.4.17)": dependencies: - astro: 5.1.1(jiti@2.4.2)(rollup@4.29.1)(typescript@5.7.2)(yaml@2.6.1) - autoprefixer: 10.4.20(postcss@8.4.49) - postcss: 8.4.49 - postcss-load-config: 4.0.2(postcss@8.4.49) + astro: 5.5.2(jiti@2.4.2)(lightningcss@1.29.2)(rollup@4.35.0)(typescript@5.8.2)(yaml@2.6.1) + autoprefixer: 10.4.21(postcss@8.5.3) + postcss: 8.5.3 + postcss-load-config: 4.0.2(postcss@8.5.3) tailwindcss: 3.4.17 transitivePeerDependencies: - ts-node "@astrojs/telemetry@3.2.0": dependencies: - ci-info: 4.1.0 + ci-info: 4.2.0 debug: 4.4.0 dlv: 1.1.3 dset: 3.1.4 @@ -6094,17 +5632,17 @@ snapshots: "@csstools/css-parser-algorithms": 3.0.4(@csstools/css-tokenizer@3.0.3) "@csstools/css-tokenizer": 3.0.3 - "@csstools/color-helpers@5.0.1": {} + "@csstools/color-helpers@5.0.2": {} - "@csstools/css-calc@2.1.1(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)": + "@csstools/css-calc@2.1.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)": dependencies: "@csstools/css-parser-algorithms": 3.0.4(@csstools/css-tokenizer@3.0.3) "@csstools/css-tokenizer": 3.0.3 - "@csstools/css-color-parser@3.0.7(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)": + "@csstools/css-color-parser@3.0.8(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)": dependencies: - "@csstools/color-helpers": 5.0.1 - "@csstools/css-calc": 2.1.1(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + "@csstools/color-helpers": 5.0.2 + "@csstools/css-calc": 2.1.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) "@csstools/css-parser-algorithms": 3.0.4(@csstools/css-tokenizer@3.0.3) "@csstools/css-tokenizer": 3.0.3 @@ -6119,215 +5657,215 @@ snapshots: "@csstools/css-parser-algorithms": 3.0.4(@csstools/css-tokenizer@3.0.3) "@csstools/css-tokenizer": 3.0.3 - "@csstools/postcss-cascade-layers@5.0.1(postcss@8.4.49)": + "@csstools/postcss-cascade-layers@5.0.1(postcss@8.5.3)": dependencies: "@csstools/selector-specificity": 5.0.0(postcss-selector-parser@7.0.0) - postcss: 8.4.49 + postcss: 8.5.3 postcss-selector-parser: 7.0.0 - "@csstools/postcss-color-function@4.0.7(postcss@8.4.49)": + "@csstools/postcss-color-function@4.0.8(postcss@8.5.3)": dependencies: - "@csstools/css-color-parser": 3.0.7(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + "@csstools/css-color-parser": 3.0.8(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) "@csstools/css-parser-algorithms": 3.0.4(@csstools/css-tokenizer@3.0.3) "@csstools/css-tokenizer": 3.0.3 - "@csstools/postcss-progressive-custom-properties": 4.0.0(postcss@8.4.49) - "@csstools/utilities": 2.0.0(postcss@8.4.49) - postcss: 8.4.49 + "@csstools/postcss-progressive-custom-properties": 4.0.0(postcss@8.5.3) + "@csstools/utilities": 2.0.0(postcss@8.5.3) + postcss: 8.5.3 - "@csstools/postcss-color-mix-function@3.0.7(postcss@8.4.49)": + "@csstools/postcss-color-mix-function@3.0.8(postcss@8.5.3)": dependencies: - "@csstools/css-color-parser": 3.0.7(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + "@csstools/css-color-parser": 3.0.8(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) "@csstools/css-parser-algorithms": 3.0.4(@csstools/css-tokenizer@3.0.3) "@csstools/css-tokenizer": 3.0.3 - "@csstools/postcss-progressive-custom-properties": 4.0.0(postcss@8.4.49) - "@csstools/utilities": 2.0.0(postcss@8.4.49) - postcss: 8.4.49 + "@csstools/postcss-progressive-custom-properties": 4.0.0(postcss@8.5.3) + "@csstools/utilities": 2.0.0(postcss@8.5.3) + postcss: 8.5.3 - "@csstools/postcss-content-alt-text@2.0.4(postcss@8.4.49)": + "@csstools/postcss-content-alt-text@2.0.4(postcss@8.5.3)": dependencies: "@csstools/css-parser-algorithms": 3.0.4(@csstools/css-tokenizer@3.0.3) "@csstools/css-tokenizer": 3.0.3 - "@csstools/postcss-progressive-custom-properties": 4.0.0(postcss@8.4.49) - "@csstools/utilities": 2.0.0(postcss@8.4.49) - postcss: 8.4.49 + "@csstools/postcss-progressive-custom-properties": 4.0.0(postcss@8.5.3) + "@csstools/utilities": 2.0.0(postcss@8.5.3) + postcss: 8.5.3 - "@csstools/postcss-exponential-functions@2.0.6(postcss@8.4.49)": + "@csstools/postcss-exponential-functions@2.0.7(postcss@8.5.3)": dependencies: - "@csstools/css-calc": 2.1.1(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + "@csstools/css-calc": 2.1.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) "@csstools/css-parser-algorithms": 3.0.4(@csstools/css-tokenizer@3.0.3) "@csstools/css-tokenizer": 3.0.3 - postcss: 8.4.49 + postcss: 8.5.3 - "@csstools/postcss-font-format-keywords@4.0.0(postcss@8.4.49)": + "@csstools/postcss-font-format-keywords@4.0.0(postcss@8.5.3)": dependencies: - "@csstools/utilities": 2.0.0(postcss@8.4.49) - postcss: 8.4.49 + "@csstools/utilities": 2.0.0(postcss@8.5.3) + postcss: 8.5.3 postcss-value-parser: 4.2.0 - "@csstools/postcss-gamut-mapping@2.0.7(postcss@8.4.49)": + "@csstools/postcss-gamut-mapping@2.0.8(postcss@8.5.3)": dependencies: - "@csstools/css-color-parser": 3.0.7(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + "@csstools/css-color-parser": 3.0.8(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) "@csstools/css-parser-algorithms": 3.0.4(@csstools/css-tokenizer@3.0.3) "@csstools/css-tokenizer": 3.0.3 - postcss: 8.4.49 + postcss: 8.5.3 - "@csstools/postcss-gradients-interpolation-method@5.0.7(postcss@8.4.49)": + "@csstools/postcss-gradients-interpolation-method@5.0.8(postcss@8.5.3)": dependencies: - "@csstools/css-color-parser": 3.0.7(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + "@csstools/css-color-parser": 3.0.8(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) "@csstools/css-parser-algorithms": 3.0.4(@csstools/css-tokenizer@3.0.3) "@csstools/css-tokenizer": 3.0.3 - "@csstools/postcss-progressive-custom-properties": 4.0.0(postcss@8.4.49) - "@csstools/utilities": 2.0.0(postcss@8.4.49) - postcss: 8.4.49 + "@csstools/postcss-progressive-custom-properties": 4.0.0(postcss@8.5.3) + "@csstools/utilities": 2.0.0(postcss@8.5.3) + postcss: 8.5.3 - "@csstools/postcss-hwb-function@4.0.7(postcss@8.4.49)": + "@csstools/postcss-hwb-function@4.0.8(postcss@8.5.3)": dependencies: - "@csstools/css-color-parser": 3.0.7(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + "@csstools/css-color-parser": 3.0.8(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) "@csstools/css-parser-algorithms": 3.0.4(@csstools/css-tokenizer@3.0.3) "@csstools/css-tokenizer": 3.0.3 - "@csstools/postcss-progressive-custom-properties": 4.0.0(postcss@8.4.49) - "@csstools/utilities": 2.0.0(postcss@8.4.49) - postcss: 8.4.49 + "@csstools/postcss-progressive-custom-properties": 4.0.0(postcss@8.5.3) + "@csstools/utilities": 2.0.0(postcss@8.5.3) + postcss: 8.5.3 - "@csstools/postcss-ic-unit@4.0.0(postcss@8.4.49)": + "@csstools/postcss-ic-unit@4.0.0(postcss@8.5.3)": dependencies: - "@csstools/postcss-progressive-custom-properties": 4.0.0(postcss@8.4.49) - "@csstools/utilities": 2.0.0(postcss@8.4.49) - postcss: 8.4.49 + "@csstools/postcss-progressive-custom-properties": 4.0.0(postcss@8.5.3) + "@csstools/utilities": 2.0.0(postcss@8.5.3) + postcss: 8.5.3 postcss-value-parser: 4.2.0 - "@csstools/postcss-initial@2.0.0(postcss@8.4.49)": + "@csstools/postcss-initial@2.0.1(postcss@8.5.3)": dependencies: - postcss: 8.4.49 + postcss: 8.5.3 - "@csstools/postcss-is-pseudo-class@5.0.1(postcss@8.4.49)": + "@csstools/postcss-is-pseudo-class@5.0.1(postcss@8.5.3)": dependencies: "@csstools/selector-specificity": 5.0.0(postcss-selector-parser@7.0.0) - postcss: 8.4.49 + postcss: 8.5.3 postcss-selector-parser: 7.0.0 - "@csstools/postcss-light-dark-function@2.0.7(postcss@8.4.49)": + "@csstools/postcss-light-dark-function@2.0.7(postcss@8.5.3)": dependencies: "@csstools/css-parser-algorithms": 3.0.4(@csstools/css-tokenizer@3.0.3) "@csstools/css-tokenizer": 3.0.3 - "@csstools/postcss-progressive-custom-properties": 4.0.0(postcss@8.4.49) - "@csstools/utilities": 2.0.0(postcss@8.4.49) - postcss: 8.4.49 + "@csstools/postcss-progressive-custom-properties": 4.0.0(postcss@8.5.3) + "@csstools/utilities": 2.0.0(postcss@8.5.3) + postcss: 8.5.3 - "@csstools/postcss-logical-float-and-clear@3.0.0(postcss@8.4.49)": + "@csstools/postcss-logical-float-and-clear@3.0.0(postcss@8.5.3)": dependencies: - postcss: 8.4.49 + postcss: 8.5.3 - "@csstools/postcss-logical-overflow@2.0.0(postcss@8.4.49)": + "@csstools/postcss-logical-overflow@2.0.0(postcss@8.5.3)": dependencies: - postcss: 8.4.49 + postcss: 8.5.3 - "@csstools/postcss-logical-overscroll-behavior@2.0.0(postcss@8.4.49)": + "@csstools/postcss-logical-overscroll-behavior@2.0.0(postcss@8.5.3)": dependencies: - postcss: 8.4.49 + postcss: 8.5.3 - "@csstools/postcss-logical-resize@3.0.0(postcss@8.4.49)": + "@csstools/postcss-logical-resize@3.0.0(postcss@8.5.3)": dependencies: - postcss: 8.4.49 + postcss: 8.5.3 postcss-value-parser: 4.2.0 - "@csstools/postcss-logical-viewport-units@3.0.3(postcss@8.4.49)": + "@csstools/postcss-logical-viewport-units@3.0.3(postcss@8.5.3)": dependencies: "@csstools/css-tokenizer": 3.0.3 - "@csstools/utilities": 2.0.0(postcss@8.4.49) - postcss: 8.4.49 + "@csstools/utilities": 2.0.0(postcss@8.5.3) + postcss: 8.5.3 - "@csstools/postcss-media-minmax@2.0.6(postcss@8.4.49)": + "@csstools/postcss-media-minmax@2.0.7(postcss@8.5.3)": dependencies: - "@csstools/css-calc": 2.1.1(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + "@csstools/css-calc": 2.1.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) "@csstools/css-parser-algorithms": 3.0.4(@csstools/css-tokenizer@3.0.3) "@csstools/css-tokenizer": 3.0.3 "@csstools/media-query-list-parser": 4.0.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) - postcss: 8.4.49 + postcss: 8.5.3 - "@csstools/postcss-media-queries-aspect-ratio-number-values@3.0.4(postcss@8.4.49)": + "@csstools/postcss-media-queries-aspect-ratio-number-values@3.0.4(postcss@8.5.3)": dependencies: "@csstools/css-parser-algorithms": 3.0.4(@csstools/css-tokenizer@3.0.3) "@csstools/css-tokenizer": 3.0.3 "@csstools/media-query-list-parser": 4.0.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) - postcss: 8.4.49 + postcss: 8.5.3 - "@csstools/postcss-nested-calc@4.0.0(postcss@8.4.49)": + "@csstools/postcss-nested-calc@4.0.0(postcss@8.5.3)": dependencies: - "@csstools/utilities": 2.0.0(postcss@8.4.49) - postcss: 8.4.49 + "@csstools/utilities": 2.0.0(postcss@8.5.3) + postcss: 8.5.3 postcss-value-parser: 4.2.0 - "@csstools/postcss-normalize-display-values@4.0.0(postcss@8.4.49)": + "@csstools/postcss-normalize-display-values@4.0.0(postcss@8.5.3)": dependencies: - postcss: 8.4.49 + postcss: 8.5.3 postcss-value-parser: 4.2.0 - "@csstools/postcss-oklab-function@4.0.7(postcss@8.4.49)": + "@csstools/postcss-oklab-function@4.0.8(postcss@8.5.3)": dependencies: - "@csstools/css-color-parser": 3.0.7(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + "@csstools/css-color-parser": 3.0.8(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) "@csstools/css-parser-algorithms": 3.0.4(@csstools/css-tokenizer@3.0.3) "@csstools/css-tokenizer": 3.0.3 - "@csstools/postcss-progressive-custom-properties": 4.0.0(postcss@8.4.49) - "@csstools/utilities": 2.0.0(postcss@8.4.49) - postcss: 8.4.49 + "@csstools/postcss-progressive-custom-properties": 4.0.0(postcss@8.5.3) + "@csstools/utilities": 2.0.0(postcss@8.5.3) + postcss: 8.5.3 - "@csstools/postcss-progressive-custom-properties@4.0.0(postcss@8.4.49)": + "@csstools/postcss-progressive-custom-properties@4.0.0(postcss@8.5.3)": dependencies: - postcss: 8.4.49 + postcss: 8.5.3 postcss-value-parser: 4.2.0 - "@csstools/postcss-random-function@1.0.2(postcss@8.4.49)": + "@csstools/postcss-random-function@1.0.3(postcss@8.5.3)": dependencies: - "@csstools/css-calc": 2.1.1(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + "@csstools/css-calc": 2.1.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) "@csstools/css-parser-algorithms": 3.0.4(@csstools/css-tokenizer@3.0.3) "@csstools/css-tokenizer": 3.0.3 - postcss: 8.4.49 + postcss: 8.5.3 - "@csstools/postcss-relative-color-syntax@3.0.7(postcss@8.4.49)": + "@csstools/postcss-relative-color-syntax@3.0.8(postcss@8.5.3)": dependencies: - "@csstools/css-color-parser": 3.0.7(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + "@csstools/css-color-parser": 3.0.8(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) "@csstools/css-parser-algorithms": 3.0.4(@csstools/css-tokenizer@3.0.3) "@csstools/css-tokenizer": 3.0.3 - "@csstools/postcss-progressive-custom-properties": 4.0.0(postcss@8.4.49) - "@csstools/utilities": 2.0.0(postcss@8.4.49) - postcss: 8.4.49 + "@csstools/postcss-progressive-custom-properties": 4.0.0(postcss@8.5.3) + "@csstools/utilities": 2.0.0(postcss@8.5.3) + postcss: 8.5.3 - "@csstools/postcss-scope-pseudo-class@4.0.1(postcss@8.4.49)": + "@csstools/postcss-scope-pseudo-class@4.0.1(postcss@8.5.3)": dependencies: - postcss: 8.4.49 + postcss: 8.5.3 postcss-selector-parser: 7.0.0 - "@csstools/postcss-sign-functions@1.1.1(postcss@8.4.49)": + "@csstools/postcss-sign-functions@1.1.2(postcss@8.5.3)": dependencies: - "@csstools/css-calc": 2.1.1(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + "@csstools/css-calc": 2.1.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) "@csstools/css-parser-algorithms": 3.0.4(@csstools/css-tokenizer@3.0.3) "@csstools/css-tokenizer": 3.0.3 - postcss: 8.4.49 + postcss: 8.5.3 - "@csstools/postcss-stepped-value-functions@4.0.6(postcss@8.4.49)": + "@csstools/postcss-stepped-value-functions@4.0.7(postcss@8.5.3)": dependencies: - "@csstools/css-calc": 2.1.1(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + "@csstools/css-calc": 2.1.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) "@csstools/css-parser-algorithms": 3.0.4(@csstools/css-tokenizer@3.0.3) "@csstools/css-tokenizer": 3.0.3 - postcss: 8.4.49 + postcss: 8.5.3 - "@csstools/postcss-text-decoration-shorthand@4.0.1(postcss@8.4.49)": + "@csstools/postcss-text-decoration-shorthand@4.0.2(postcss@8.5.3)": dependencies: - "@csstools/color-helpers": 5.0.1 - postcss: 8.4.49 + "@csstools/color-helpers": 5.0.2 + postcss: 8.5.3 postcss-value-parser: 4.2.0 - "@csstools/postcss-trigonometric-functions@4.0.6(postcss@8.4.49)": + "@csstools/postcss-trigonometric-functions@4.0.7(postcss@8.5.3)": dependencies: - "@csstools/css-calc": 2.1.1(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + "@csstools/css-calc": 2.1.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) "@csstools/css-parser-algorithms": 3.0.4(@csstools/css-tokenizer@3.0.3) "@csstools/css-tokenizer": 3.0.3 - postcss: 8.4.49 + postcss: 8.5.3 - "@csstools/postcss-unset-value@4.0.0(postcss@8.4.49)": + "@csstools/postcss-unset-value@4.0.0(postcss@8.5.3)": dependencies: - postcss: 8.4.49 + postcss: 8.5.3 "@csstools/selector-resolve-nested@3.0.0(postcss-selector-parser@7.0.0)": dependencies: @@ -6337,9 +5875,9 @@ snapshots: dependencies: postcss-selector-parser: 7.0.0 - "@csstools/utilities@2.0.0(postcss@8.4.49)": + "@csstools/utilities@2.0.0(postcss@8.5.3)": dependencies: - postcss: 8.4.49 + postcss: 8.5.3 "@ctrl/tinycolor@4.1.0": {} @@ -6371,148 +5909,82 @@ snapshots: tslib: 2.8.1 optional: true - "@esbuild/aix-ppc64@0.21.5": + "@esbuild/aix-ppc64@0.25.1": optional: true - "@esbuild/aix-ppc64@0.24.0": + "@esbuild/android-arm64@0.25.1": optional: true - "@esbuild/android-arm64@0.21.5": + "@esbuild/android-arm@0.25.1": optional: true - "@esbuild/android-arm64@0.24.0": + "@esbuild/android-x64@0.25.1": optional: true - "@esbuild/android-arm@0.21.5": + "@esbuild/darwin-arm64@0.25.1": optional: true - "@esbuild/android-arm@0.24.0": + "@esbuild/darwin-x64@0.25.1": optional: true - "@esbuild/android-x64@0.21.5": + "@esbuild/freebsd-arm64@0.25.1": optional: true - "@esbuild/android-x64@0.24.0": + "@esbuild/freebsd-x64@0.25.1": optional: true - "@esbuild/darwin-arm64@0.21.5": + "@esbuild/linux-arm64@0.25.1": optional: true - "@esbuild/darwin-arm64@0.24.0": + "@esbuild/linux-arm@0.25.1": optional: true - "@esbuild/darwin-x64@0.21.5": + "@esbuild/linux-ia32@0.25.1": optional: true - "@esbuild/darwin-x64@0.24.0": + "@esbuild/linux-loong64@0.25.1": optional: true - "@esbuild/freebsd-arm64@0.21.5": + "@esbuild/linux-mips64el@0.25.1": optional: true - "@esbuild/freebsd-arm64@0.24.0": + "@esbuild/linux-ppc64@0.25.1": optional: true - "@esbuild/freebsd-x64@0.21.5": + "@esbuild/linux-riscv64@0.25.1": optional: true - "@esbuild/freebsd-x64@0.24.0": + "@esbuild/linux-s390x@0.25.1": optional: true - "@esbuild/linux-arm64@0.21.5": + "@esbuild/linux-x64@0.25.1": optional: true - "@esbuild/linux-arm64@0.24.0": + "@esbuild/netbsd-arm64@0.25.1": optional: true - "@esbuild/linux-arm@0.21.5": + "@esbuild/netbsd-x64@0.25.1": optional: true - "@esbuild/linux-arm@0.24.0": + "@esbuild/openbsd-arm64@0.25.1": optional: true - "@esbuild/linux-ia32@0.21.5": + "@esbuild/openbsd-x64@0.25.1": optional: true - "@esbuild/linux-ia32@0.24.0": + "@esbuild/sunos-x64@0.25.1": optional: true - "@esbuild/linux-loong64@0.21.5": + "@esbuild/win32-arm64@0.25.1": optional: true - "@esbuild/linux-loong64@0.24.0": + "@esbuild/win32-ia32@0.25.1": optional: true - "@esbuild/linux-mips64el@0.21.5": + "@esbuild/win32-x64@0.25.1": optional: true - "@esbuild/linux-mips64el@0.24.0": - optional: true - - "@esbuild/linux-ppc64@0.21.5": - optional: true - - "@esbuild/linux-ppc64@0.24.0": - optional: true - - "@esbuild/linux-riscv64@0.21.5": - optional: true - - "@esbuild/linux-riscv64@0.24.0": - optional: true - - "@esbuild/linux-s390x@0.21.5": - optional: true - - "@esbuild/linux-s390x@0.24.0": - optional: true - - "@esbuild/linux-x64@0.21.5": - optional: true - - "@esbuild/linux-x64@0.24.0": - optional: true - - "@esbuild/netbsd-x64@0.21.5": - optional: true - - "@esbuild/netbsd-x64@0.24.0": - optional: true - - "@esbuild/openbsd-arm64@0.24.0": - optional: true - - "@esbuild/openbsd-x64@0.21.5": - optional: true - - "@esbuild/openbsd-x64@0.24.0": - optional: true - - "@esbuild/sunos-x64@0.21.5": - optional: true - - "@esbuild/sunos-x64@0.24.0": - optional: true - - "@esbuild/win32-arm64@0.21.5": - optional: true - - "@esbuild/win32-arm64@0.24.0": - optional: true - - "@esbuild/win32-ia32@0.21.5": - optional: true - - "@esbuild/win32-ia32@0.24.0": - optional: true - - "@esbuild/win32-x64@0.21.5": - optional: true - - "@esbuild/win32-x64@0.24.0": - optional: true - - "@expressive-code/core@0.38.3": + "@expressive-code/core@0.40.2": dependencies: "@ctrl/tinycolor": 4.1.0 hast-util-select: 6.0.3 @@ -6524,22 +5996,22 @@ snapshots: unist-util-visit: 5.0.0 unist-util-visit-parents: 6.0.1 - "@expressive-code/plugin-frames@0.38.3": + "@expressive-code/plugin-frames@0.40.2": dependencies: - "@expressive-code/core": 0.38.3 + "@expressive-code/core": 0.40.2 - "@expressive-code/plugin-shiki@0.38.3": + "@expressive-code/plugin-shiki@0.40.2": dependencies: - "@expressive-code/core": 0.38.3 - shiki: 1.24.4 + "@expressive-code/core": 0.40.2 + shiki: 1.29.2 - "@expressive-code/plugin-text-markers@0.38.3": + "@expressive-code/plugin-text-markers@0.40.2": dependencies: - "@expressive-code/core": 0.38.3 + "@expressive-code/core": 0.40.2 - "@fontsource/inter@5.1.1": {} + "@fontsource/inter@5.2.5": {} - "@fontsource/rubik@5.1.1": {} + "@fontsource/rubik@5.2.5": {} "@humanwhocodes/momoa@2.0.4": {} @@ -6646,7 +6118,7 @@ snapshots: "@jsdevtools/ono@7.1.3": {} - "@mdx-js/mdx@3.1.0(acorn@8.14.0)": + "@mdx-js/mdx@3.1.0(acorn@8.14.1)": dependencies: "@types/estree": 1.0.6 "@types/estree-jsx": 1.0.5 @@ -6660,7 +6132,7 @@ snapshots: hast-util-to-jsx-runtime: 2.3.2 markdown-extensions: 2.0.0 recma-build-jsx: 1.0.0 - recma-jsx: 1.0.0(acorn@8.14.0) + recma-jsx: 1.0.0(acorn@8.14.1) recma-stringify: 1.0.0 rehype-recma: 1.0.0 remark-mdx: 3.1.0 @@ -6707,71 +6179,6 @@ snapshots: "@pagefind/windows-x64@1.3.0": optional: true - "@parcel/watcher-android-arm64@2.5.0": - optional: true - - "@parcel/watcher-darwin-arm64@2.5.0": - optional: true - - "@parcel/watcher-darwin-x64@2.5.0": - optional: true - - "@parcel/watcher-freebsd-x64@2.5.0": - optional: true - - "@parcel/watcher-linux-arm-glibc@2.5.0": - optional: true - - "@parcel/watcher-linux-arm-musl@2.5.0": - optional: true - - "@parcel/watcher-linux-arm64-glibc@2.5.0": - optional: true - - "@parcel/watcher-linux-arm64-musl@2.5.0": - optional: true - - "@parcel/watcher-linux-x64-glibc@2.5.0": - optional: true - - "@parcel/watcher-linux-x64-musl@2.5.0": - optional: true - - "@parcel/watcher-wasm@2.5.0": - dependencies: - is-glob: 4.0.3 - micromatch: 4.0.8 - - "@parcel/watcher-win32-arm64@2.5.0": - optional: true - - "@parcel/watcher-win32-ia32@2.5.0": - optional: true - - "@parcel/watcher-win32-x64@2.5.0": - optional: true - - "@parcel/watcher@2.5.0": - dependencies: - detect-libc: 1.0.3 - is-glob: 4.0.3 - micromatch: 4.0.8 - node-addon-api: 7.1.1 - optionalDependencies: - "@parcel/watcher-android-arm64": 2.5.0 - "@parcel/watcher-darwin-arm64": 2.5.0 - "@parcel/watcher-darwin-x64": 2.5.0 - "@parcel/watcher-freebsd-x64": 2.5.0 - "@parcel/watcher-linux-arm-glibc": 2.5.0 - "@parcel/watcher-linux-arm-musl": 2.5.0 - "@parcel/watcher-linux-arm64-glibc": 2.5.0 - "@parcel/watcher-linux-arm64-musl": 2.5.0 - "@parcel/watcher-linux-x64-glibc": 2.5.0 - "@parcel/watcher-linux-x64-musl": 2.5.0 - "@parcel/watcher-win32-arm64": 2.5.0 - "@parcel/watcher-win32-ia32": 2.5.0 - "@parcel/watcher-win32-x64": 2.5.0 - "@pkgjs/parseargs@0.11.0": optional: true @@ -6807,97 +6214,105 @@ snapshots: "@readme/openapi-schemas@3.1.0": {} - "@rollup/pluginutils@5.1.4(rollup@4.29.1)": + "@rollup/pluginutils@5.1.4(rollup@4.35.0)": dependencies: "@types/estree": 1.0.6 estree-walker: 2.0.2 picomatch: 4.0.2 optionalDependencies: - rollup: 4.29.1 + rollup: 4.35.0 - "@rollup/rollup-android-arm-eabi@4.29.1": + "@rollup/rollup-android-arm-eabi@4.35.0": optional: true - "@rollup/rollup-android-arm64@4.29.1": + "@rollup/rollup-android-arm64@4.35.0": optional: true - "@rollup/rollup-darwin-arm64@4.29.1": + "@rollup/rollup-darwin-arm64@4.35.0": optional: true - "@rollup/rollup-darwin-x64@4.29.1": + "@rollup/rollup-darwin-x64@4.35.0": optional: true - "@rollup/rollup-freebsd-arm64@4.29.1": + "@rollup/rollup-freebsd-arm64@4.35.0": optional: true - "@rollup/rollup-freebsd-x64@4.29.1": + "@rollup/rollup-freebsd-x64@4.35.0": optional: true - "@rollup/rollup-linux-arm-gnueabihf@4.29.1": + "@rollup/rollup-linux-arm-gnueabihf@4.35.0": optional: true - "@rollup/rollup-linux-arm-musleabihf@4.29.1": + "@rollup/rollup-linux-arm-musleabihf@4.35.0": optional: true - "@rollup/rollup-linux-arm64-gnu@4.29.1": + "@rollup/rollup-linux-arm64-gnu@4.35.0": optional: true - "@rollup/rollup-linux-arm64-musl@4.29.1": + "@rollup/rollup-linux-arm64-musl@4.35.0": optional: true - "@rollup/rollup-linux-loongarch64-gnu@4.29.1": + "@rollup/rollup-linux-loongarch64-gnu@4.35.0": optional: true - "@rollup/rollup-linux-powerpc64le-gnu@4.29.1": + "@rollup/rollup-linux-powerpc64le-gnu@4.35.0": optional: true - "@rollup/rollup-linux-riscv64-gnu@4.29.1": + "@rollup/rollup-linux-riscv64-gnu@4.35.0": optional: true - "@rollup/rollup-linux-s390x-gnu@4.29.1": + "@rollup/rollup-linux-s390x-gnu@4.35.0": optional: true - "@rollup/rollup-linux-x64-gnu@4.29.1": + "@rollup/rollup-linux-x64-gnu@4.35.0": optional: true - "@rollup/rollup-linux-x64-musl@4.29.1": + "@rollup/rollup-linux-x64-musl@4.35.0": optional: true - "@rollup/rollup-win32-arm64-msvc@4.29.1": + "@rollup/rollup-win32-arm64-msvc@4.35.0": optional: true - "@rollup/rollup-win32-ia32-msvc@4.29.1": + "@rollup/rollup-win32-ia32-msvc@4.35.0": optional: true - "@rollup/rollup-win32-x64-msvc@4.29.1": + "@rollup/rollup-win32-x64-msvc@4.35.0": optional: true - "@shikijs/core@1.24.4": + "@shikijs/core@1.29.2": dependencies: - "@shikijs/engine-javascript": 1.24.4 - "@shikijs/engine-oniguruma": 1.24.4 - "@shikijs/types": 1.24.4 - "@shikijs/vscode-textmate": 9.3.1 + "@shikijs/engine-javascript": 1.29.2 + "@shikijs/engine-oniguruma": 1.29.2 + "@shikijs/types": 1.29.2 + "@shikijs/vscode-textmate": 10.0.2 "@types/hast": 3.0.4 hast-util-to-html: 9.0.4 - "@shikijs/engine-javascript@1.24.4": + "@shikijs/engine-javascript@1.29.2": dependencies: - "@shikijs/types": 1.24.4 - "@shikijs/vscode-textmate": 9.3.1 - oniguruma-to-es: 0.8.1 + "@shikijs/types": 1.29.2 + "@shikijs/vscode-textmate": 10.0.2 + oniguruma-to-es: 2.3.0 - "@shikijs/engine-oniguruma@1.24.4": + "@shikijs/engine-oniguruma@1.29.2": dependencies: - "@shikijs/types": 1.24.4 - "@shikijs/vscode-textmate": 9.3.1 + "@shikijs/types": 1.29.2 + "@shikijs/vscode-textmate": 10.0.2 - "@shikijs/types@1.24.4": + "@shikijs/langs@1.29.2": dependencies: - "@shikijs/vscode-textmate": 9.3.1 + "@shikijs/types": 1.29.2 + + "@shikijs/themes@1.29.2": + dependencies: + "@shikijs/types": 1.29.2 + + "@shikijs/types@1.29.2": + dependencies: + "@shikijs/vscode-textmate": 10.0.2 "@types/hast": 3.0.4 - "@shikijs/vscode-textmate@9.3.1": {} + "@shikijs/vscode-textmate@10.0.2": {} "@trysound/sax@0.2.0": {} @@ -6949,12 +6364,12 @@ snapshots: "@ungap/structured-clone@1.2.1": {} - "@volar/kit@2.4.11(typescript@5.7.2)": + "@volar/kit@2.4.11(typescript@5.8.2)": dependencies: "@volar/language-service": 2.4.11 "@volar/typescript": 2.4.11 typesafe-path: 0.2.2 - typescript: 5.7.2 + typescript: 5.8.2 vscode-languageserver-textdocument: 1.0.12 vscode-uri: 3.0.8 @@ -6999,11 +6414,11 @@ snapshots: "@vscode/l10n@0.0.18": {} - acorn-jsx@5.3.2(acorn@8.14.0): + acorn-jsx@5.3.2(acorn@8.14.1): dependencies: - acorn: 8.14.0 + acorn: 8.14.1 - acorn@8.14.0: {} + acorn@8.14.1: {} ajv-draft-04@1.0.0(ajv@8.17.1): optionalDependencies: @@ -7039,10 +6454,6 @@ snapshots: arg@5.0.2: {} - argparse@1.0.10: - dependencies: - sprintf-js: 1.0.3 - argparse@2.0.1: {} aria-query@5.3.2: {} @@ -7051,25 +6462,25 @@ snapshots: astring@1.9.0: {} - astro-expressive-code@0.38.3(astro@5.1.1(jiti@2.4.2)(rollup@4.29.1)(typescript@5.7.2)(yaml@2.6.1)): + astro-expressive-code@0.40.2(astro@5.5.2(jiti@2.4.2)(lightningcss@1.29.2)(rollup@4.35.0)(typescript@5.8.2)(yaml@2.6.1)): dependencies: - astro: 5.1.1(jiti@2.4.2)(rollup@4.29.1)(typescript@5.7.2)(yaml@2.6.1) - rehype-expressive-code: 0.38.3 + astro: 5.5.2(jiti@2.4.2)(lightningcss@1.29.2)(rollup@4.35.0)(typescript@5.8.2)(yaml@2.6.1) + rehype-expressive-code: 0.40.2 - astro@5.1.1(jiti@2.4.2)(rollup@4.29.1)(typescript@5.7.2)(yaml@2.6.1): + astro@5.5.2(jiti@2.4.2)(lightningcss@1.29.2)(rollup@4.35.0)(typescript@5.8.2)(yaml@2.6.1): dependencies: - "@astrojs/compiler": 2.10.3 - "@astrojs/internal-helpers": 0.4.2 - "@astrojs/markdown-remark": 6.0.1 + "@astrojs/compiler": 2.11.0 + "@astrojs/internal-helpers": 0.6.1 + "@astrojs/markdown-remark": 6.3.0 "@astrojs/telemetry": 3.2.0 "@oslojs/encoding": 1.1.0 - "@rollup/pluginutils": 5.1.4(rollup@4.29.1) + "@rollup/pluginutils": 5.1.4(rollup@4.35.0) "@types/cookie": 0.6.0 - acorn: 8.14.0 + acorn: 8.14.1 aria-query: 5.3.2 axobject-query: 4.1.0 boxen: 8.0.1 - ci-info: 4.1.0 + ci-info: 4.2.0 clsx: 2.1.1 common-ancestor-path: 1.0.1 cookie: 0.7.2 @@ -7080,10 +6491,9 @@ snapshots: diff: 5.2.0 dlv: 1.1.3 dset: 3.1.4 - es-module-lexer: 1.5.4 - esbuild: 0.21.5 + es-module-lexer: 1.6.0 + esbuild: 0.25.1 estree-walker: 3.0.3 - fast-glob: 3.3.2 flattie: 1.1.1 github-slugger: 2.0.0 html-escaper: 3.0.3 @@ -7092,31 +6502,31 @@ snapshots: kleur: 4.1.5 magic-string: 0.30.17 magicast: 0.3.5 - micromatch: 4.0.8 - mrmime: 2.0.0 + mrmime: 2.0.1 neotraverse: 0.6.18 p-limit: 6.2.0 - p-queue: 8.0.1 - preferred-pm: 4.0.0 + p-queue: 8.1.0 + package-manager-detector: 1.0.0 + picomatch: 4.0.2 prompts: 2.4.2 rehype: 13.0.2 - semver: 7.6.3 - shiki: 1.24.4 - tinyexec: 0.3.1 - tsconfck: 3.1.4(typescript@5.7.2) + semver: 7.7.1 + shiki: 1.29.2 + tinyexec: 0.3.2 + tinyglobby: 0.2.12 + tsconfck: 3.1.5(typescript@5.8.2) ultrahtml: 1.5.3 unist-util-visit: 5.0.0 - unstorage: 1.14.1 + unstorage: 1.15.0 vfile: 6.0.3 - vite: 6.0.5(jiti@2.4.2)(yaml@2.6.1) - vitefu: 1.0.4(vite@6.0.5(jiti@2.4.2)(yaml@2.6.1)) - which-pm: 3.0.0 + vite: 6.2.2(jiti@2.4.2)(lightningcss@1.29.2)(yaml@2.6.1) + vitefu: 1.0.6(vite@6.2.2(jiti@2.4.2)(lightningcss@1.29.2)(yaml@2.6.1)) xxhash-wasm: 1.1.0 yargs-parser: 21.1.1 - yocto-spinner: 0.1.2 - zod: 3.24.1 - zod-to-json-schema: 3.24.1(zod@3.24.1) - zod-to-ts: 1.2.0(typescript@5.7.2)(zod@3.24.1) + yocto-spinner: 0.2.1 + zod: 3.24.2 + zod-to-json-schema: 3.24.3(zod@3.24.2) + zod-to-ts: 1.2.0(typescript@5.8.2)(zod@3.24.2) optionalDependencies: sharp: 0.33.5 transitivePeerDependencies: @@ -7153,14 +6563,14 @@ snapshots: - uploadthing - yaml - autoprefixer@10.4.20(postcss@8.4.49): + autoprefixer@10.4.21(postcss@8.5.3): dependencies: - browserslist: 4.24.3 - caniuse-lite: 1.0.30001690 + browserslist: 4.24.4 + caniuse-lite: 1.0.30001704 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.1.1 - postcss: 8.4.49 + postcss: 8.5.3 postcss-value-parser: 4.2.0 axobject-query@4.1.0: {} @@ -7209,6 +6619,13 @@ snapshots: node-releases: 2.0.19 update-browserslist-db: 1.1.1(browserslist@4.24.3) + browserslist@4.24.4: + dependencies: + caniuse-lite: 1.0.30001704 + electron-to-chromium: 1.5.76 + node-releases: 2.0.19 + update-browserslist-db: 1.1.1(browserslist@4.24.4) + call-me-maybe@1.0.2: {} camelcase-css@2.0.1: {} @@ -7224,6 +6641,8 @@ snapshots: caniuse-lite@1.0.30001690: {} + caniuse-lite@1.0.30001704: {} + ccount@2.0.1: {} chalk@4.1.2: @@ -7257,20 +6676,10 @@ snapshots: dependencies: readdirp: 4.0.2 - ci-info@4.1.0: {} - - citty@0.1.6: - dependencies: - consola: 3.3.1 + ci-info@4.2.0: {} cli-boxes@3.0.0: {} - clipboardy@4.0.0: - dependencies: - execa: 8.0.1 - is-wsl: 3.1.0 - is64bit: 2.0.0 - cliui@8.0.1: dependencies: string-width: 4.2.3 @@ -7309,10 +6718,6 @@ snapshots: common-ancestor-path@1.0.1: {} - confbox@0.1.8: {} - - consola@3.3.1: {} - cookie-es@1.2.2: {} cookie@0.7.2: {} @@ -7323,29 +6728,29 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 - crossws@0.3.1: + crossws@0.3.4: dependencies: uncrypto: 0.1.3 - css-blank-pseudo@7.0.1(postcss@8.4.49): + css-blank-pseudo@7.0.1(postcss@8.5.3): dependencies: - postcss: 8.4.49 + postcss: 8.5.3 postcss-selector-parser: 7.0.0 - css-declaration-sorter@7.2.0(postcss@8.4.49): + css-declaration-sorter@7.2.0(postcss@8.5.3): dependencies: - postcss: 8.4.49 + postcss: 8.5.3 - css-has-pseudo@7.0.2(postcss@8.4.49): + css-has-pseudo@7.0.2(postcss@8.5.3): dependencies: "@csstools/selector-specificity": 5.0.0(postcss-selector-parser@7.0.0) - postcss: 8.4.49 + postcss: 8.5.3 postcss-selector-parser: 7.0.0 postcss-value-parser: 4.2.0 - css-prefers-color-scheme@10.0.0(postcss@8.4.49): + css-prefers-color-scheme@10.0.0(postcss@8.5.3): dependencies: - postcss: 8.4.49 + postcss: 8.5.3 css-select@5.1.0: dependencies: @@ -7373,49 +6778,49 @@ snapshots: cssesc@3.0.0: {} - cssnano-preset-default@7.0.6(postcss@8.4.49): + cssnano-preset-default@7.0.6(postcss@8.5.3): dependencies: browserslist: 4.24.3 - css-declaration-sorter: 7.2.0(postcss@8.4.49) - cssnano-utils: 5.0.0(postcss@8.4.49) - postcss: 8.4.49 - postcss-calc: 10.0.2(postcss@8.4.49) - postcss-colormin: 7.0.2(postcss@8.4.49) - postcss-convert-values: 7.0.4(postcss@8.4.49) - postcss-discard-comments: 7.0.3(postcss@8.4.49) - postcss-discard-duplicates: 7.0.1(postcss@8.4.49) - postcss-discard-empty: 7.0.0(postcss@8.4.49) - postcss-discard-overridden: 7.0.0(postcss@8.4.49) - postcss-merge-longhand: 7.0.4(postcss@8.4.49) - postcss-merge-rules: 7.0.4(postcss@8.4.49) - postcss-minify-font-values: 7.0.0(postcss@8.4.49) - postcss-minify-gradients: 7.0.0(postcss@8.4.49) - postcss-minify-params: 7.0.2(postcss@8.4.49) - postcss-minify-selectors: 7.0.4(postcss@8.4.49) - postcss-normalize-charset: 7.0.0(postcss@8.4.49) - postcss-normalize-display-values: 7.0.0(postcss@8.4.49) - postcss-normalize-positions: 7.0.0(postcss@8.4.49) - postcss-normalize-repeat-style: 7.0.0(postcss@8.4.49) - postcss-normalize-string: 7.0.0(postcss@8.4.49) - postcss-normalize-timing-functions: 7.0.0(postcss@8.4.49) - postcss-normalize-unicode: 7.0.2(postcss@8.4.49) - postcss-normalize-url: 7.0.0(postcss@8.4.49) - postcss-normalize-whitespace: 7.0.0(postcss@8.4.49) - postcss-ordered-values: 7.0.1(postcss@8.4.49) - postcss-reduce-initial: 7.0.2(postcss@8.4.49) - postcss-reduce-transforms: 7.0.0(postcss@8.4.49) - postcss-svgo: 7.0.1(postcss@8.4.49) - postcss-unique-selectors: 7.0.3(postcss@8.4.49) + css-declaration-sorter: 7.2.0(postcss@8.5.3) + cssnano-utils: 5.0.0(postcss@8.5.3) + postcss: 8.5.3 + postcss-calc: 10.0.2(postcss@8.5.3) + postcss-colormin: 7.0.2(postcss@8.5.3) + postcss-convert-values: 7.0.4(postcss@8.5.3) + postcss-discard-comments: 7.0.3(postcss@8.5.3) + postcss-discard-duplicates: 7.0.1(postcss@8.5.3) + postcss-discard-empty: 7.0.0(postcss@8.5.3) + postcss-discard-overridden: 7.0.0(postcss@8.5.3) + postcss-merge-longhand: 7.0.4(postcss@8.5.3) + postcss-merge-rules: 7.0.4(postcss@8.5.3) + postcss-minify-font-values: 7.0.0(postcss@8.5.3) + postcss-minify-gradients: 7.0.0(postcss@8.5.3) + postcss-minify-params: 7.0.2(postcss@8.5.3) + postcss-minify-selectors: 7.0.4(postcss@8.5.3) + postcss-normalize-charset: 7.0.0(postcss@8.5.3) + postcss-normalize-display-values: 7.0.0(postcss@8.5.3) + postcss-normalize-positions: 7.0.0(postcss@8.5.3) + postcss-normalize-repeat-style: 7.0.0(postcss@8.5.3) + postcss-normalize-string: 7.0.0(postcss@8.5.3) + postcss-normalize-timing-functions: 7.0.0(postcss@8.5.3) + postcss-normalize-unicode: 7.0.2(postcss@8.5.3) + postcss-normalize-url: 7.0.0(postcss@8.5.3) + postcss-normalize-whitespace: 7.0.0(postcss@8.5.3) + postcss-ordered-values: 7.0.1(postcss@8.5.3) + postcss-reduce-initial: 7.0.2(postcss@8.5.3) + postcss-reduce-transforms: 7.0.0(postcss@8.5.3) + postcss-svgo: 7.0.1(postcss@8.5.3) + postcss-unique-selectors: 7.0.3(postcss@8.5.3) - cssnano-utils@5.0.0(postcss@8.4.49): + cssnano-utils@5.0.0(postcss@8.5.3): dependencies: - postcss: 8.4.49 + postcss: 8.5.3 - cssnano@7.0.6(postcss@8.4.49): + cssnano@7.0.6(postcss@8.5.3): dependencies: - cssnano-preset-default: 7.0.6(postcss@8.4.49) + cssnano-preset-default: 7.0.6(postcss@8.5.3) lilconfig: 3.1.3 - postcss: 8.4.49 + postcss: 8.5.3 csso@5.0.5: dependencies: @@ -7435,8 +6840,6 @@ snapshots: destr@2.0.3: {} - detect-libc@1.0.3: {} - detect-libc@2.0.3: {} deterministic-object-hash@2.0.2: @@ -7496,7 +6899,7 @@ snapshots: entities@4.5.0: {} - es-module-lexer@1.5.4: {} + es-module-lexer@1.6.0: {} esast-util-from-estree@2.0.0: dependencies: @@ -7508,69 +6911,42 @@ snapshots: esast-util-from-js@2.0.1: dependencies: "@types/estree-jsx": 1.0.5 - acorn: 8.14.0 + acorn: 8.14.1 esast-util-from-estree: 2.0.0 vfile-message: 4.0.2 - esbuild@0.21.5: + esbuild@0.25.1: optionalDependencies: - "@esbuild/aix-ppc64": 0.21.5 - "@esbuild/android-arm": 0.21.5 - "@esbuild/android-arm64": 0.21.5 - "@esbuild/android-x64": 0.21.5 - "@esbuild/darwin-arm64": 0.21.5 - "@esbuild/darwin-x64": 0.21.5 - "@esbuild/freebsd-arm64": 0.21.5 - "@esbuild/freebsd-x64": 0.21.5 - "@esbuild/linux-arm": 0.21.5 - "@esbuild/linux-arm64": 0.21.5 - "@esbuild/linux-ia32": 0.21.5 - "@esbuild/linux-loong64": 0.21.5 - "@esbuild/linux-mips64el": 0.21.5 - "@esbuild/linux-ppc64": 0.21.5 - "@esbuild/linux-riscv64": 0.21.5 - "@esbuild/linux-s390x": 0.21.5 - "@esbuild/linux-x64": 0.21.5 - "@esbuild/netbsd-x64": 0.21.5 - "@esbuild/openbsd-x64": 0.21.5 - "@esbuild/sunos-x64": 0.21.5 - "@esbuild/win32-arm64": 0.21.5 - "@esbuild/win32-ia32": 0.21.5 - "@esbuild/win32-x64": 0.21.5 - - esbuild@0.24.0: - optionalDependencies: - "@esbuild/aix-ppc64": 0.24.0 - "@esbuild/android-arm": 0.24.0 - "@esbuild/android-arm64": 0.24.0 - "@esbuild/android-x64": 0.24.0 - "@esbuild/darwin-arm64": 0.24.0 - "@esbuild/darwin-x64": 0.24.0 - "@esbuild/freebsd-arm64": 0.24.0 - "@esbuild/freebsd-x64": 0.24.0 - "@esbuild/linux-arm": 0.24.0 - "@esbuild/linux-arm64": 0.24.0 - "@esbuild/linux-ia32": 0.24.0 - "@esbuild/linux-loong64": 0.24.0 - "@esbuild/linux-mips64el": 0.24.0 - "@esbuild/linux-ppc64": 0.24.0 - "@esbuild/linux-riscv64": 0.24.0 - "@esbuild/linux-s390x": 0.24.0 - "@esbuild/linux-x64": 0.24.0 - "@esbuild/netbsd-x64": 0.24.0 - "@esbuild/openbsd-arm64": 0.24.0 - "@esbuild/openbsd-x64": 0.24.0 - "@esbuild/sunos-x64": 0.24.0 - "@esbuild/win32-arm64": 0.24.0 - "@esbuild/win32-ia32": 0.24.0 - "@esbuild/win32-x64": 0.24.0 + "@esbuild/aix-ppc64": 0.25.1 + "@esbuild/android-arm": 0.25.1 + "@esbuild/android-arm64": 0.25.1 + "@esbuild/android-x64": 0.25.1 + "@esbuild/darwin-arm64": 0.25.1 + "@esbuild/darwin-x64": 0.25.1 + "@esbuild/freebsd-arm64": 0.25.1 + "@esbuild/freebsd-x64": 0.25.1 + "@esbuild/linux-arm": 0.25.1 + "@esbuild/linux-arm64": 0.25.1 + "@esbuild/linux-ia32": 0.25.1 + "@esbuild/linux-loong64": 0.25.1 + "@esbuild/linux-mips64el": 0.25.1 + "@esbuild/linux-ppc64": 0.25.1 + "@esbuild/linux-riscv64": 0.25.1 + "@esbuild/linux-s390x": 0.25.1 + "@esbuild/linux-x64": 0.25.1 + "@esbuild/netbsd-arm64": 0.25.1 + "@esbuild/netbsd-x64": 0.25.1 + "@esbuild/openbsd-arm64": 0.25.1 + "@esbuild/openbsd-x64": 0.25.1 + "@esbuild/sunos-x64": 0.25.1 + "@esbuild/win32-arm64": 0.25.1 + "@esbuild/win32-ia32": 0.25.1 + "@esbuild/win32-x64": 0.25.1 escalade@3.2.0: {} escape-string-regexp@5.0.0: {} - esprima@4.0.1: {} - estree-util-attach-comments@3.0.0: dependencies: "@types/estree": 1.0.6 @@ -7608,24 +6984,12 @@ snapshots: eventemitter3@5.0.1: {} - execa@8.0.1: + expressive-code@0.40.2: dependencies: - cross-spawn: 7.0.6 - get-stream: 8.0.1 - human-signals: 5.0.0 - is-stream: 3.0.0 - merge-stream: 2.0.0 - npm-run-path: 5.3.0 - onetime: 6.0.0 - signal-exit: 4.1.0 - strip-final-newline: 3.0.0 - - expressive-code@0.38.3: - dependencies: - "@expressive-code/core": 0.38.3 - "@expressive-code/plugin-frames": 0.38.3 - "@expressive-code/plugin-shiki": 0.38.3 - "@expressive-code/plugin-text-markers": 0.38.3 + "@expressive-code/core": 0.40.2 + "@expressive-code/plugin-frames": 0.40.2 + "@expressive-code/plugin-shiki": 0.40.2 + "@expressive-code/plugin-text-markers": 0.40.2 extend@3.0.2: {} @@ -7645,25 +7009,17 @@ snapshots: dependencies: reusify: 1.0.4 + fdir@6.4.3(picomatch@4.0.2): + optionalDependencies: + picomatch: 4.0.2 + fill-range@7.1.1: dependencies: to-regex-range: 5.0.1 - find-up-simple@1.0.0: {} - - find-up@4.1.0: - dependencies: - locate-path: 5.0.0 - path-exists: 4.0.0 - - find-yarn-workspace-root2@1.2.16: - dependencies: - micromatch: 4.0.8 - pkg-dir: 4.2.0 - flattie@1.1.1: {} - foreground-child@3.3.0: + foreground-child@3.3.1: dependencies: cross-spawn: 7.0.6 signal-exit: 4.1.0 @@ -7679,10 +7035,6 @@ snapshots: get-east-asian-width@1.3.0: {} - get-port-please@3.1.2: {} - - get-stream@8.0.1: {} - github-slugger@2.0.0: {} glob-parent@5.1.2: @@ -7695,29 +7047,26 @@ snapshots: glob@10.4.5: dependencies: - foreground-child: 3.3.0 + foreground-child: 3.3.1 jackspeak: 3.4.3 minimatch: 9.0.5 minipass: 7.1.2 package-json-from-dist: 1.0.1 path-scurry: 1.11.1 - graceful-fs@4.2.11: {} - grapheme-splitter@1.0.4: {} - h3@1.13.0: + h3@1.15.1: dependencies: cookie-es: 1.2.2 - crossws: 0.3.1 + crossws: 0.3.4 defu: 6.1.4 destr: 2.0.3 iron-webcrypto: 1.2.1 - ohash: 1.1.4 + node-mock-http: 1.0.0 radix3: 1.1.2 ufo: 1.5.4 uncrypto: 0.1.3 - unenv: 1.10.0 has-flag@4.0.0: {} @@ -7861,6 +7210,20 @@ snapshots: stringify-entities: 4.0.4 zwitch: 2.0.4 + hast-util-to-html@9.0.5: + dependencies: + "@types/hast": 3.0.4 + "@types/unist": 3.0.3 + ccount: 2.0.1 + comma-separated-tokens: 2.0.3 + hast-util-whitespace: 3.0.0 + html-void-elements: 3.0.0 + mdast-util-to-hast: 13.2.0 + property-information: 7.0.0 + space-separated-tokens: 2.0.2 + stringify-entities: 4.0.4 + zwitch: 2.0.4 + hast-util-to-jsx-runtime@2.3.2: dependencies: "@types/estree": 1.0.6 @@ -7922,10 +7285,6 @@ snapshots: http-cache-semantics@4.1.1: {} - http-shutdown@1.2.2: {} - - human-signals@5.0.0: {} - i18next@23.16.8: dependencies: "@babel/runtime": 7.26.0 @@ -7977,16 +7336,10 @@ snapshots: is-plain-obj@4.1.0: {} - is-stream@3.0.0: {} - is-wsl@3.1.0: dependencies: is-inside-container: 1.0.0 - is64bit@2.0.0: - dependencies: - system-architecture: 0.1.0 - isexe@2.0.0: {} jackspeak@3.4.3: @@ -7997,15 +7350,11 @@ snapshots: jiti@1.21.7: {} - jiti@2.4.2: {} + jiti@2.4.2: + optional: true js-tokens@4.0.0: {} - js-yaml@3.14.1: - dependencies: - argparse: 1.0.10 - esprima: 4.0.1 - js-yaml@4.1.0: dependencies: argparse: 2.0.1 @@ -8027,44 +7376,60 @@ snapshots: kleur@4.1.5: {} + klona@2.0.6: {} + leven@3.1.0: {} + lightningcss-darwin-arm64@1.29.2: + optional: true + + lightningcss-darwin-x64@1.29.2: + optional: true + + lightningcss-freebsd-x64@1.29.2: + optional: true + + lightningcss-linux-arm-gnueabihf@1.29.2: + optional: true + + lightningcss-linux-arm64-gnu@1.29.2: + optional: true + + lightningcss-linux-arm64-musl@1.29.2: + optional: true + + lightningcss-linux-x64-gnu@1.29.2: + optional: true + + lightningcss-linux-x64-musl@1.29.2: + optional: true + + lightningcss-win32-arm64-msvc@1.29.2: + optional: true + + lightningcss-win32-x64-msvc@1.29.2: + optional: true + + lightningcss@1.29.2: + dependencies: + detect-libc: 2.0.3 + optionalDependencies: + lightningcss-darwin-arm64: 1.29.2 + lightningcss-darwin-x64: 1.29.2 + lightningcss-freebsd-x64: 1.29.2 + lightningcss-linux-arm-gnueabihf: 1.29.2 + lightningcss-linux-arm64-gnu: 1.29.2 + lightningcss-linux-arm64-musl: 1.29.2 + lightningcss-linux-x64-gnu: 1.29.2 + lightningcss-linux-x64-musl: 1.29.2 + lightningcss-win32-arm64-msvc: 1.29.2 + lightningcss-win32-x64-msvc: 1.29.2 + optional: true + lilconfig@3.1.3: {} lines-and-columns@1.2.4: {} - listhen@1.9.0: - dependencies: - "@parcel/watcher": 2.5.0 - "@parcel/watcher-wasm": 2.5.0 - citty: 0.1.6 - clipboardy: 4.0.0 - consola: 3.3.1 - crossws: 0.3.1 - defu: 6.1.4 - get-port-please: 3.1.2 - h3: 1.13.0 - http-shutdown: 1.2.2 - jiti: 2.4.2 - mlly: 1.7.3 - node-forge: 1.3.1 - pathe: 1.1.2 - std-env: 3.8.0 - ufo: 1.5.4 - untun: 0.1.3 - uqr: 0.1.2 - - load-yaml-file@0.2.0: - dependencies: - graceful-fs: 4.2.11 - js-yaml: 3.14.1 - pify: 4.0.1 - strip-bom: 3.0.0 - - locate-path@5.0.0: - dependencies: - p-locate: 4.1.0 - lodash.memoize@4.1.2: {} lodash.uniq@4.5.0: {} @@ -8275,8 +7640,6 @@ snapshots: mdn-data@2.0.30: {} - merge-stream@2.0.0: {} - merge2@1.4.1: {} micromark-core-commonmark@2.0.2: @@ -8409,8 +7772,8 @@ snapshots: micromark-extension-mdxjs@3.0.0: dependencies: - acorn: 8.14.0 - acorn-jsx: 5.3.2(acorn@8.14.0) + acorn: 8.14.1 + acorn-jsx: 5.3.2(acorn@8.14.1) micromark-extension-mdx-expression: 3.0.0 micromark-extension-mdx-jsx: 3.0.1 micromark-extension-mdx-md: 2.0.0 @@ -8560,24 +7923,13 @@ snapshots: braces: 3.0.3 picomatch: 2.3.1 - mime@3.0.0: {} - - mimic-fn@4.0.0: {} - minimatch@9.0.5: dependencies: brace-expansion: 2.0.1 minipass@7.1.2: {} - mlly@1.7.3: - dependencies: - acorn: 8.14.0 - pathe: 1.1.2 - pkg-types: 1.2.1 - ufo: 1.5.4 - - mrmime@2.0.0: {} + mrmime@2.0.1: {} ms@2.1.3: {} @@ -8597,11 +7949,9 @@ snapshots: dependencies: "@types/nlcst": 2.0.3 - node-addon-api@7.1.1: {} + node-fetch-native@1.6.6: {} - node-fetch-native@1.6.4: {} - - node-forge@1.3.1: {} + node-mock-http@1.0.0: {} node-releases@2.0.19: {} @@ -8609,10 +7959,6 @@ snapshots: normalize-range@0.1.2: {} - npm-run-path@5.3.0: - dependencies: - path-key: 4.0.0 - nth-check@2.1.1: dependencies: boolbase: 1.0.0 @@ -8624,46 +7970,32 @@ snapshots: ofetch@1.4.1: dependencies: destr: 2.0.3 - node-fetch-native: 1.6.4 + node-fetch-native: 1.6.6 ufo: 1.5.4 - ohash@1.1.4: {} - - onetime@6.0.0: - dependencies: - mimic-fn: 4.0.0 - - oniguruma-to-es@0.8.1: + oniguruma-to-es@2.3.0: dependencies: emoji-regex-xs: 1.0.0 - regex: 5.0.2 - regex-recursion: 5.0.0 + regex: 5.1.1 + regex-recursion: 5.1.1 openapi-types@12.1.3: {} - p-limit@2.3.0: - dependencies: - p-try: 2.2.0 - p-limit@6.2.0: dependencies: yocto-queue: 1.1.1 - p-locate@4.1.0: - dependencies: - p-limit: 2.3.0 - - p-queue@8.0.1: + p-queue@8.1.0: dependencies: eventemitter3: 5.0.1 p-timeout: 6.1.3 p-timeout@6.1.3: {} - p-try@2.2.0: {} - package-json-from-dist@1.0.1: {} + package-manager-detector@1.0.0: {} + pagefind@1.3.0: optionalDependencies: "@pagefind/darwin-arm64": 1.3.0 @@ -8697,12 +8029,8 @@ snapshots: path-browserify@1.0.1: {} - path-exists@4.0.0: {} - path-key@3.1.1: {} - path-key@4.0.0: {} - path-parse@1.0.7: {} path-scurry@1.11.1: @@ -8710,8 +8038,6 @@ snapshots: lru-cache: 10.4.3 minipass: 7.1.2 - pathe@1.1.2: {} - picocolors@1.1.1: {} picomatch@2.3.1: {} @@ -8720,219 +8046,207 @@ snapshots: pify@2.3.0: {} - pify@4.0.1: {} - pirates@4.0.6: {} - pkg-dir@4.2.0: + postcss-attribute-case-insensitive@7.0.1(postcss@8.5.3): dependencies: - find-up: 4.1.0 - - pkg-types@1.2.1: - dependencies: - confbox: 0.1.8 - mlly: 1.7.3 - pathe: 1.1.2 - - postcss-attribute-case-insensitive@7.0.1(postcss@8.4.49): - dependencies: - postcss: 8.4.49 + postcss: 8.5.3 postcss-selector-parser: 7.0.0 - postcss-calc@10.0.2(postcss@8.4.49): + postcss-calc@10.0.2(postcss@8.5.3): dependencies: - postcss: 8.4.49 + postcss: 8.5.3 postcss-selector-parser: 6.1.2 postcss-value-parser: 4.2.0 - postcss-clamp@4.1.0(postcss@8.4.49): + postcss-clamp@4.1.0(postcss@8.5.3): dependencies: - postcss: 8.4.49 + postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-color-functional-notation@7.0.7(postcss@8.4.49): + postcss-color-functional-notation@7.0.8(postcss@8.5.3): dependencies: - "@csstools/css-color-parser": 3.0.7(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + "@csstools/css-color-parser": 3.0.8(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) "@csstools/css-parser-algorithms": 3.0.4(@csstools/css-tokenizer@3.0.3) "@csstools/css-tokenizer": 3.0.3 - "@csstools/postcss-progressive-custom-properties": 4.0.0(postcss@8.4.49) - "@csstools/utilities": 2.0.0(postcss@8.4.49) - postcss: 8.4.49 + "@csstools/postcss-progressive-custom-properties": 4.0.0(postcss@8.5.3) + "@csstools/utilities": 2.0.0(postcss@8.5.3) + postcss: 8.5.3 - postcss-color-hex-alpha@10.0.0(postcss@8.4.49): + postcss-color-hex-alpha@10.0.0(postcss@8.5.3): dependencies: - "@csstools/utilities": 2.0.0(postcss@8.4.49) - postcss: 8.4.49 + "@csstools/utilities": 2.0.0(postcss@8.5.3) + postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-color-rebeccapurple@10.0.0(postcss@8.4.49): + postcss-color-rebeccapurple@10.0.0(postcss@8.5.3): dependencies: - "@csstools/utilities": 2.0.0(postcss@8.4.49) - postcss: 8.4.49 + "@csstools/utilities": 2.0.0(postcss@8.5.3) + postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-colormin@7.0.2(postcss@8.4.49): + postcss-colormin@7.0.2(postcss@8.5.3): dependencies: browserslist: 4.24.3 caniuse-api: 3.0.0 colord: 2.9.3 - postcss: 8.4.49 + postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-convert-values@7.0.4(postcss@8.4.49): + postcss-convert-values@7.0.4(postcss@8.5.3): dependencies: browserslist: 4.24.3 - postcss: 8.4.49 + postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-custom-media@11.0.5(postcss@8.4.49): + postcss-custom-media@11.0.5(postcss@8.5.3): dependencies: "@csstools/cascade-layer-name-parser": 2.0.4(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) "@csstools/css-parser-algorithms": 3.0.4(@csstools/css-tokenizer@3.0.3) "@csstools/css-tokenizer": 3.0.3 "@csstools/media-query-list-parser": 4.0.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) - postcss: 8.4.49 + postcss: 8.5.3 - postcss-custom-properties@14.0.4(postcss@8.4.49): + postcss-custom-properties@14.0.4(postcss@8.5.3): dependencies: "@csstools/cascade-layer-name-parser": 2.0.4(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) "@csstools/css-parser-algorithms": 3.0.4(@csstools/css-tokenizer@3.0.3) "@csstools/css-tokenizer": 3.0.3 - "@csstools/utilities": 2.0.0(postcss@8.4.49) - postcss: 8.4.49 + "@csstools/utilities": 2.0.0(postcss@8.5.3) + postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-custom-selectors@8.0.4(postcss@8.4.49): + postcss-custom-selectors@8.0.4(postcss@8.5.3): dependencies: "@csstools/cascade-layer-name-parser": 2.0.4(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) "@csstools/css-parser-algorithms": 3.0.4(@csstools/css-tokenizer@3.0.3) "@csstools/css-tokenizer": 3.0.3 - postcss: 8.4.49 + postcss: 8.5.3 postcss-selector-parser: 7.0.0 - postcss-dir-pseudo-class@9.0.1(postcss@8.4.49): + postcss-dir-pseudo-class@9.0.1(postcss@8.5.3): dependencies: - postcss: 8.4.49 + postcss: 8.5.3 postcss-selector-parser: 7.0.0 - postcss-discard-comments@7.0.3(postcss@8.4.49): + postcss-discard-comments@7.0.3(postcss@8.5.3): dependencies: - postcss: 8.4.49 + postcss: 8.5.3 postcss-selector-parser: 6.1.2 - postcss-discard-duplicates@7.0.1(postcss@8.4.49): + postcss-discard-duplicates@7.0.1(postcss@8.5.3): dependencies: - postcss: 8.4.49 + postcss: 8.5.3 - postcss-discard-empty@7.0.0(postcss@8.4.49): + postcss-discard-empty@7.0.0(postcss@8.5.3): dependencies: - postcss: 8.4.49 + postcss: 8.5.3 - postcss-discard-overridden@7.0.0(postcss@8.4.49): + postcss-discard-overridden@7.0.0(postcss@8.5.3): dependencies: - postcss: 8.4.49 + postcss: 8.5.3 - postcss-double-position-gradients@6.0.0(postcss@8.4.49): + postcss-double-position-gradients@6.0.0(postcss@8.5.3): dependencies: - "@csstools/postcss-progressive-custom-properties": 4.0.0(postcss@8.4.49) - "@csstools/utilities": 2.0.0(postcss@8.4.49) - postcss: 8.4.49 + "@csstools/postcss-progressive-custom-properties": 4.0.0(postcss@8.5.3) + "@csstools/utilities": 2.0.0(postcss@8.5.3) + postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-focus-visible@10.0.1(postcss@8.4.49): + postcss-focus-visible@10.0.1(postcss@8.5.3): dependencies: - postcss: 8.4.49 + postcss: 8.5.3 postcss-selector-parser: 7.0.0 - postcss-focus-within@9.0.1(postcss@8.4.49): + postcss-focus-within@9.0.1(postcss@8.5.3): dependencies: - postcss: 8.4.49 + postcss: 8.5.3 postcss-selector-parser: 7.0.0 - postcss-font-variant@5.0.0(postcss@8.4.49): + postcss-font-variant@5.0.0(postcss@8.5.3): dependencies: - postcss: 8.4.49 + postcss: 8.5.3 - postcss-gap-properties@6.0.0(postcss@8.4.49): + postcss-gap-properties@6.0.0(postcss@8.5.3): dependencies: - postcss: 8.4.49 + postcss: 8.5.3 - postcss-image-set-function@7.0.0(postcss@8.4.49): + postcss-image-set-function@7.0.0(postcss@8.5.3): dependencies: - "@csstools/utilities": 2.0.0(postcss@8.4.49) - postcss: 8.4.49 + "@csstools/utilities": 2.0.0(postcss@8.5.3) + postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-import@15.1.0(postcss@8.4.49): + postcss-import@15.1.0(postcss@8.5.3): dependencies: - postcss: 8.4.49 + postcss: 8.5.3 postcss-value-parser: 4.2.0 read-cache: 1.0.0 resolve: 1.22.10 - postcss-js@4.0.1(postcss@8.4.49): + postcss-js@4.0.1(postcss@8.5.3): dependencies: camelcase-css: 2.0.1 - postcss: 8.4.49 + postcss: 8.5.3 - postcss-lab-function@7.0.7(postcss@8.4.49): + postcss-lab-function@7.0.8(postcss@8.5.3): dependencies: - "@csstools/css-color-parser": 3.0.7(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + "@csstools/css-color-parser": 3.0.8(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) "@csstools/css-parser-algorithms": 3.0.4(@csstools/css-tokenizer@3.0.3) "@csstools/css-tokenizer": 3.0.3 - "@csstools/postcss-progressive-custom-properties": 4.0.0(postcss@8.4.49) - "@csstools/utilities": 2.0.0(postcss@8.4.49) - postcss: 8.4.49 + "@csstools/postcss-progressive-custom-properties": 4.0.0(postcss@8.5.3) + "@csstools/utilities": 2.0.0(postcss@8.5.3) + postcss: 8.5.3 - postcss-load-config@4.0.2(postcss@8.4.49): + postcss-load-config@4.0.2(postcss@8.5.3): dependencies: lilconfig: 3.1.3 yaml: 2.6.1 optionalDependencies: - postcss: 8.4.49 + postcss: 8.5.3 - postcss-logical@8.0.0(postcss@8.4.49): + postcss-logical@8.1.0(postcss@8.5.3): dependencies: - postcss: 8.4.49 + postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-merge-longhand@7.0.4(postcss@8.4.49): + postcss-merge-longhand@7.0.4(postcss@8.5.3): dependencies: - postcss: 8.4.49 + postcss: 8.5.3 postcss-value-parser: 4.2.0 - stylehacks: 7.0.4(postcss@8.4.49) + stylehacks: 7.0.4(postcss@8.5.3) - postcss-merge-rules@7.0.4(postcss@8.4.49): + postcss-merge-rules@7.0.4(postcss@8.5.3): dependencies: browserslist: 4.24.3 caniuse-api: 3.0.0 - cssnano-utils: 5.0.0(postcss@8.4.49) - postcss: 8.4.49 + cssnano-utils: 5.0.0(postcss@8.5.3) + postcss: 8.5.3 postcss-selector-parser: 6.1.2 - postcss-minify-font-values@7.0.0(postcss@8.4.49): + postcss-minify-font-values@7.0.0(postcss@8.5.3): dependencies: - postcss: 8.4.49 + postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-minify-gradients@7.0.0(postcss@8.4.49): + postcss-minify-gradients@7.0.0(postcss@8.5.3): dependencies: colord: 2.9.3 - cssnano-utils: 5.0.0(postcss@8.4.49) - postcss: 8.4.49 + cssnano-utils: 5.0.0(postcss@8.5.3) + postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-minify-params@7.0.2(postcss@8.4.49): + postcss-minify-params@7.0.2(postcss@8.5.3): dependencies: browserslist: 4.24.3 - cssnano-utils: 5.0.0(postcss@8.4.49) - postcss: 8.4.49 + cssnano-utils: 5.0.0(postcss@8.5.3) + postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-minify-selectors@7.0.4(postcss@8.4.49): + postcss-minify-selectors@7.0.4(postcss@8.5.3): dependencies: cssesc: 3.0.0 - postcss: 8.4.49 + postcss: 8.5.3 postcss-selector-parser: 6.1.2 postcss-nested@6.2.0(postcss@8.4.49): @@ -8940,172 +8254,177 @@ snapshots: postcss: 8.4.49 postcss-selector-parser: 6.1.2 - postcss-nesting@13.0.1(postcss@8.4.49): + postcss-nested@6.2.0(postcss@8.5.3): + dependencies: + postcss: 8.5.3 + postcss-selector-parser: 6.1.2 + + postcss-nesting@13.0.1(postcss@8.5.3): dependencies: "@csstools/selector-resolve-nested": 3.0.0(postcss-selector-parser@7.0.0) "@csstools/selector-specificity": 5.0.0(postcss-selector-parser@7.0.0) - postcss: 8.4.49 + postcss: 8.5.3 postcss-selector-parser: 7.0.0 - postcss-normalize-charset@7.0.0(postcss@8.4.49): + postcss-normalize-charset@7.0.0(postcss@8.5.3): dependencies: - postcss: 8.4.49 + postcss: 8.5.3 - postcss-normalize-display-values@7.0.0(postcss@8.4.49): + postcss-normalize-display-values@7.0.0(postcss@8.5.3): dependencies: - postcss: 8.4.49 + postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-normalize-positions@7.0.0(postcss@8.4.49): + postcss-normalize-positions@7.0.0(postcss@8.5.3): dependencies: - postcss: 8.4.49 + postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-normalize-repeat-style@7.0.0(postcss@8.4.49): + postcss-normalize-repeat-style@7.0.0(postcss@8.5.3): dependencies: - postcss: 8.4.49 + postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-normalize-string@7.0.0(postcss@8.4.49): + postcss-normalize-string@7.0.0(postcss@8.5.3): dependencies: - postcss: 8.4.49 + postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-normalize-timing-functions@7.0.0(postcss@8.4.49): + postcss-normalize-timing-functions@7.0.0(postcss@8.5.3): dependencies: - postcss: 8.4.49 + postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-normalize-unicode@7.0.2(postcss@8.4.49): + postcss-normalize-unicode@7.0.2(postcss@8.5.3): dependencies: browserslist: 4.24.3 - postcss: 8.4.49 + postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-normalize-url@7.0.0(postcss@8.4.49): + postcss-normalize-url@7.0.0(postcss@8.5.3): dependencies: - postcss: 8.4.49 + postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-normalize-whitespace@7.0.0(postcss@8.4.49): + postcss-normalize-whitespace@7.0.0(postcss@8.5.3): dependencies: - postcss: 8.4.49 + postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-opacity-percentage@3.0.0(postcss@8.4.49): + postcss-opacity-percentage@3.0.0(postcss@8.5.3): dependencies: - postcss: 8.4.49 + postcss: 8.5.3 - postcss-ordered-values@7.0.1(postcss@8.4.49): + postcss-ordered-values@7.0.1(postcss@8.5.3): dependencies: - cssnano-utils: 5.0.0(postcss@8.4.49) - postcss: 8.4.49 + cssnano-utils: 5.0.0(postcss@8.5.3) + postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-overflow-shorthand@6.0.0(postcss@8.4.49): + postcss-overflow-shorthand@6.0.0(postcss@8.5.3): dependencies: - postcss: 8.4.49 + postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-page-break@3.0.4(postcss@8.4.49): + postcss-page-break@3.0.4(postcss@8.5.3): dependencies: - postcss: 8.4.49 + postcss: 8.5.3 - postcss-place@10.0.0(postcss@8.4.49): + postcss-place@10.0.0(postcss@8.5.3): dependencies: - postcss: 8.4.49 + postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-preset-env@10.1.3(postcss@8.4.49): + postcss-preset-env@10.1.5(postcss@8.5.3): dependencies: - "@csstools/postcss-cascade-layers": 5.0.1(postcss@8.4.49) - "@csstools/postcss-color-function": 4.0.7(postcss@8.4.49) - "@csstools/postcss-color-mix-function": 3.0.7(postcss@8.4.49) - "@csstools/postcss-content-alt-text": 2.0.4(postcss@8.4.49) - "@csstools/postcss-exponential-functions": 2.0.6(postcss@8.4.49) - "@csstools/postcss-font-format-keywords": 4.0.0(postcss@8.4.49) - "@csstools/postcss-gamut-mapping": 2.0.7(postcss@8.4.49) - "@csstools/postcss-gradients-interpolation-method": 5.0.7(postcss@8.4.49) - "@csstools/postcss-hwb-function": 4.0.7(postcss@8.4.49) - "@csstools/postcss-ic-unit": 4.0.0(postcss@8.4.49) - "@csstools/postcss-initial": 2.0.0(postcss@8.4.49) - "@csstools/postcss-is-pseudo-class": 5.0.1(postcss@8.4.49) - "@csstools/postcss-light-dark-function": 2.0.7(postcss@8.4.49) - "@csstools/postcss-logical-float-and-clear": 3.0.0(postcss@8.4.49) - "@csstools/postcss-logical-overflow": 2.0.0(postcss@8.4.49) - "@csstools/postcss-logical-overscroll-behavior": 2.0.0(postcss@8.4.49) - "@csstools/postcss-logical-resize": 3.0.0(postcss@8.4.49) - "@csstools/postcss-logical-viewport-units": 3.0.3(postcss@8.4.49) - "@csstools/postcss-media-minmax": 2.0.6(postcss@8.4.49) - "@csstools/postcss-media-queries-aspect-ratio-number-values": 3.0.4(postcss@8.4.49) - "@csstools/postcss-nested-calc": 4.0.0(postcss@8.4.49) - "@csstools/postcss-normalize-display-values": 4.0.0(postcss@8.4.49) - "@csstools/postcss-oklab-function": 4.0.7(postcss@8.4.49) - "@csstools/postcss-progressive-custom-properties": 4.0.0(postcss@8.4.49) - "@csstools/postcss-random-function": 1.0.2(postcss@8.4.49) - "@csstools/postcss-relative-color-syntax": 3.0.7(postcss@8.4.49) - "@csstools/postcss-scope-pseudo-class": 4.0.1(postcss@8.4.49) - "@csstools/postcss-sign-functions": 1.1.1(postcss@8.4.49) - "@csstools/postcss-stepped-value-functions": 4.0.6(postcss@8.4.49) - "@csstools/postcss-text-decoration-shorthand": 4.0.1(postcss@8.4.49) - "@csstools/postcss-trigonometric-functions": 4.0.6(postcss@8.4.49) - "@csstools/postcss-unset-value": 4.0.0(postcss@8.4.49) - autoprefixer: 10.4.20(postcss@8.4.49) - browserslist: 4.24.3 - css-blank-pseudo: 7.0.1(postcss@8.4.49) - css-has-pseudo: 7.0.2(postcss@8.4.49) - css-prefers-color-scheme: 10.0.0(postcss@8.4.49) + "@csstools/postcss-cascade-layers": 5.0.1(postcss@8.5.3) + "@csstools/postcss-color-function": 4.0.8(postcss@8.5.3) + "@csstools/postcss-color-mix-function": 3.0.8(postcss@8.5.3) + "@csstools/postcss-content-alt-text": 2.0.4(postcss@8.5.3) + "@csstools/postcss-exponential-functions": 2.0.7(postcss@8.5.3) + "@csstools/postcss-font-format-keywords": 4.0.0(postcss@8.5.3) + "@csstools/postcss-gamut-mapping": 2.0.8(postcss@8.5.3) + "@csstools/postcss-gradients-interpolation-method": 5.0.8(postcss@8.5.3) + "@csstools/postcss-hwb-function": 4.0.8(postcss@8.5.3) + "@csstools/postcss-ic-unit": 4.0.0(postcss@8.5.3) + "@csstools/postcss-initial": 2.0.1(postcss@8.5.3) + "@csstools/postcss-is-pseudo-class": 5.0.1(postcss@8.5.3) + "@csstools/postcss-light-dark-function": 2.0.7(postcss@8.5.3) + "@csstools/postcss-logical-float-and-clear": 3.0.0(postcss@8.5.3) + "@csstools/postcss-logical-overflow": 2.0.0(postcss@8.5.3) + "@csstools/postcss-logical-overscroll-behavior": 2.0.0(postcss@8.5.3) + "@csstools/postcss-logical-resize": 3.0.0(postcss@8.5.3) + "@csstools/postcss-logical-viewport-units": 3.0.3(postcss@8.5.3) + "@csstools/postcss-media-minmax": 2.0.7(postcss@8.5.3) + "@csstools/postcss-media-queries-aspect-ratio-number-values": 3.0.4(postcss@8.5.3) + "@csstools/postcss-nested-calc": 4.0.0(postcss@8.5.3) + "@csstools/postcss-normalize-display-values": 4.0.0(postcss@8.5.3) + "@csstools/postcss-oklab-function": 4.0.8(postcss@8.5.3) + "@csstools/postcss-progressive-custom-properties": 4.0.0(postcss@8.5.3) + "@csstools/postcss-random-function": 1.0.3(postcss@8.5.3) + "@csstools/postcss-relative-color-syntax": 3.0.8(postcss@8.5.3) + "@csstools/postcss-scope-pseudo-class": 4.0.1(postcss@8.5.3) + "@csstools/postcss-sign-functions": 1.1.2(postcss@8.5.3) + "@csstools/postcss-stepped-value-functions": 4.0.7(postcss@8.5.3) + "@csstools/postcss-text-decoration-shorthand": 4.0.2(postcss@8.5.3) + "@csstools/postcss-trigonometric-functions": 4.0.7(postcss@8.5.3) + "@csstools/postcss-unset-value": 4.0.0(postcss@8.5.3) + autoprefixer: 10.4.21(postcss@8.5.3) + browserslist: 4.24.4 + css-blank-pseudo: 7.0.1(postcss@8.5.3) + css-has-pseudo: 7.0.2(postcss@8.5.3) + css-prefers-color-scheme: 10.0.0(postcss@8.5.3) cssdb: 8.2.3 - postcss: 8.4.49 - postcss-attribute-case-insensitive: 7.0.1(postcss@8.4.49) - postcss-clamp: 4.1.0(postcss@8.4.49) - postcss-color-functional-notation: 7.0.7(postcss@8.4.49) - postcss-color-hex-alpha: 10.0.0(postcss@8.4.49) - postcss-color-rebeccapurple: 10.0.0(postcss@8.4.49) - postcss-custom-media: 11.0.5(postcss@8.4.49) - postcss-custom-properties: 14.0.4(postcss@8.4.49) - postcss-custom-selectors: 8.0.4(postcss@8.4.49) - postcss-dir-pseudo-class: 9.0.1(postcss@8.4.49) - postcss-double-position-gradients: 6.0.0(postcss@8.4.49) - postcss-focus-visible: 10.0.1(postcss@8.4.49) - postcss-focus-within: 9.0.1(postcss@8.4.49) - postcss-font-variant: 5.0.0(postcss@8.4.49) - postcss-gap-properties: 6.0.0(postcss@8.4.49) - postcss-image-set-function: 7.0.0(postcss@8.4.49) - postcss-lab-function: 7.0.7(postcss@8.4.49) - postcss-logical: 8.0.0(postcss@8.4.49) - postcss-nesting: 13.0.1(postcss@8.4.49) - postcss-opacity-percentage: 3.0.0(postcss@8.4.49) - postcss-overflow-shorthand: 6.0.0(postcss@8.4.49) - postcss-page-break: 3.0.4(postcss@8.4.49) - postcss-place: 10.0.0(postcss@8.4.49) - postcss-pseudo-class-any-link: 10.0.1(postcss@8.4.49) - postcss-replace-overflow-wrap: 4.0.0(postcss@8.4.49) - postcss-selector-not: 8.0.1(postcss@8.4.49) + postcss: 8.5.3 + postcss-attribute-case-insensitive: 7.0.1(postcss@8.5.3) + postcss-clamp: 4.1.0(postcss@8.5.3) + postcss-color-functional-notation: 7.0.8(postcss@8.5.3) + postcss-color-hex-alpha: 10.0.0(postcss@8.5.3) + postcss-color-rebeccapurple: 10.0.0(postcss@8.5.3) + postcss-custom-media: 11.0.5(postcss@8.5.3) + postcss-custom-properties: 14.0.4(postcss@8.5.3) + postcss-custom-selectors: 8.0.4(postcss@8.5.3) + postcss-dir-pseudo-class: 9.0.1(postcss@8.5.3) + postcss-double-position-gradients: 6.0.0(postcss@8.5.3) + postcss-focus-visible: 10.0.1(postcss@8.5.3) + postcss-focus-within: 9.0.1(postcss@8.5.3) + postcss-font-variant: 5.0.0(postcss@8.5.3) + postcss-gap-properties: 6.0.0(postcss@8.5.3) + postcss-image-set-function: 7.0.0(postcss@8.5.3) + postcss-lab-function: 7.0.8(postcss@8.5.3) + postcss-logical: 8.1.0(postcss@8.5.3) + postcss-nesting: 13.0.1(postcss@8.5.3) + postcss-opacity-percentage: 3.0.0(postcss@8.5.3) + postcss-overflow-shorthand: 6.0.0(postcss@8.5.3) + postcss-page-break: 3.0.4(postcss@8.5.3) + postcss-place: 10.0.0(postcss@8.5.3) + postcss-pseudo-class-any-link: 10.0.1(postcss@8.5.3) + postcss-replace-overflow-wrap: 4.0.0(postcss@8.5.3) + postcss-selector-not: 8.0.1(postcss@8.5.3) - postcss-pseudo-class-any-link@10.0.1(postcss@8.4.49): + postcss-pseudo-class-any-link@10.0.1(postcss@8.5.3): dependencies: - postcss: 8.4.49 + postcss: 8.5.3 postcss-selector-parser: 7.0.0 - postcss-reduce-initial@7.0.2(postcss@8.4.49): + postcss-reduce-initial@7.0.2(postcss@8.5.3): dependencies: browserslist: 4.24.3 caniuse-api: 3.0.0 - postcss: 8.4.49 + postcss: 8.5.3 - postcss-reduce-transforms@7.0.0(postcss@8.4.49): + postcss-reduce-transforms@7.0.0(postcss@8.5.3): dependencies: - postcss: 8.4.49 + postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-replace-overflow-wrap@4.0.0(postcss@8.4.49): + postcss-replace-overflow-wrap@4.0.0(postcss@8.5.3): dependencies: - postcss: 8.4.49 + postcss: 8.5.3 - postcss-selector-not@8.0.1(postcss@8.4.49): + postcss-selector-not@8.0.1(postcss@8.5.3): dependencies: - postcss: 8.4.49 + postcss: 8.5.3 postcss-selector-parser: 7.0.0 postcss-selector-parser@6.1.2: @@ -9118,15 +8437,15 @@ snapshots: cssesc: 3.0.0 util-deprecate: 1.0.2 - postcss-svgo@7.0.1(postcss@8.4.49): + postcss-svgo@7.0.1(postcss@8.5.3): dependencies: - postcss: 8.4.49 + postcss: 8.5.3 postcss-value-parser: 4.2.0 svgo: 3.3.2 - postcss-unique-selectors@7.0.3(postcss@8.4.49): + postcss-unique-selectors@7.0.3(postcss@8.5.3): dependencies: - postcss: 8.4.49 + postcss: 8.5.3 postcss-selector-parser: 6.1.2 postcss-value-parser@4.2.0: {} @@ -9137,11 +8456,11 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 - preferred-pm@4.0.0: + postcss@8.5.3: dependencies: - find-up-simple: 1.0.0 - find-yarn-workspace-root2: 1.2.16 - which-pm: 3.0.0 + nanoid: 3.3.8 + picocolors: 1.1.1 + source-map-js: 1.2.1 prettier@2.8.7: optional: true @@ -9155,6 +8474,8 @@ snapshots: property-information@6.5.0: {} + property-information@7.0.0: {} + queue-microtask@1.2.3: {} radix3@1.1.2: {} @@ -9175,9 +8496,9 @@ snapshots: estree-util-build-jsx: 3.0.1 vfile: 6.0.3 - recma-jsx@1.0.0(acorn@8.14.0): + recma-jsx@1.0.0(acorn@8.14.1): dependencies: - acorn-jsx: 5.3.2(acorn@8.14.0) + acorn-jsx: 5.3.2(acorn@8.14.1) estree-util-to-js: 2.0.0 recma-parse: 1.0.0 recma-stringify: 1.0.0 @@ -9201,19 +8522,20 @@ snapshots: regenerator-runtime@0.14.1: {} - regex-recursion@5.0.0: + regex-recursion@5.1.1: dependencies: + regex: 5.1.1 regex-utilities: 2.3.0 regex-utilities@2.3.0: {} - regex@5.0.2: + regex@5.1.1: dependencies: regex-utilities: 2.3.0 - rehype-expressive-code@0.38.3: + rehype-expressive-code@0.40.2: dependencies: - expressive-code: 0.38.3 + expressive-code: 0.40.2 rehype-format@5.0.1: dependencies: @@ -9262,7 +8584,7 @@ snapshots: transitivePeerDependencies: - supports-color - remark-gfm@4.0.0: + remark-gfm@4.0.1: dependencies: "@types/mdast": 4.0.4 mdast-util-gfm: 3.0.0 @@ -9351,29 +8673,29 @@ snapshots: reusify@1.0.4: {} - rollup@4.29.1: + rollup@4.35.0: dependencies: "@types/estree": 1.0.6 optionalDependencies: - "@rollup/rollup-android-arm-eabi": 4.29.1 - "@rollup/rollup-android-arm64": 4.29.1 - "@rollup/rollup-darwin-arm64": 4.29.1 - "@rollup/rollup-darwin-x64": 4.29.1 - "@rollup/rollup-freebsd-arm64": 4.29.1 - "@rollup/rollup-freebsd-x64": 4.29.1 - "@rollup/rollup-linux-arm-gnueabihf": 4.29.1 - "@rollup/rollup-linux-arm-musleabihf": 4.29.1 - "@rollup/rollup-linux-arm64-gnu": 4.29.1 - "@rollup/rollup-linux-arm64-musl": 4.29.1 - "@rollup/rollup-linux-loongarch64-gnu": 4.29.1 - "@rollup/rollup-linux-powerpc64le-gnu": 4.29.1 - "@rollup/rollup-linux-riscv64-gnu": 4.29.1 - "@rollup/rollup-linux-s390x-gnu": 4.29.1 - "@rollup/rollup-linux-x64-gnu": 4.29.1 - "@rollup/rollup-linux-x64-musl": 4.29.1 - "@rollup/rollup-win32-arm64-msvc": 4.29.1 - "@rollup/rollup-win32-ia32-msvc": 4.29.1 - "@rollup/rollup-win32-x64-msvc": 4.29.1 + "@rollup/rollup-android-arm-eabi": 4.35.0 + "@rollup/rollup-android-arm64": 4.35.0 + "@rollup/rollup-darwin-arm64": 4.35.0 + "@rollup/rollup-darwin-x64": 4.35.0 + "@rollup/rollup-freebsd-arm64": 4.35.0 + "@rollup/rollup-freebsd-x64": 4.35.0 + "@rollup/rollup-linux-arm-gnueabihf": 4.35.0 + "@rollup/rollup-linux-arm-musleabihf": 4.35.0 + "@rollup/rollup-linux-arm64-gnu": 4.35.0 + "@rollup/rollup-linux-arm64-musl": 4.35.0 + "@rollup/rollup-linux-loongarch64-gnu": 4.35.0 + "@rollup/rollup-linux-powerpc64le-gnu": 4.35.0 + "@rollup/rollup-linux-riscv64-gnu": 4.35.0 + "@rollup/rollup-linux-s390x-gnu": 4.35.0 + "@rollup/rollup-linux-x64-gnu": 4.35.0 + "@rollup/rollup-linux-x64-musl": 4.35.0 + "@rollup/rollup-win32-arm64-msvc": 4.35.0 + "@rollup/rollup-win32-ia32-msvc": 4.35.0 + "@rollup/rollup-win32-x64-msvc": 4.35.0 fsevents: 2.3.3 run-parallel@1.2.0: @@ -9384,6 +8706,8 @@ snapshots: semver@7.6.3: {} + semver@7.7.1: {} + sharp@0.33.5: dependencies: color: 4.2.3 @@ -9416,13 +8740,15 @@ snapshots: shebang-regex@3.0.0: {} - shiki@1.24.4: + shiki@1.29.2: dependencies: - "@shikijs/core": 1.24.4 - "@shikijs/engine-javascript": 1.24.4 - "@shikijs/engine-oniguruma": 1.24.4 - "@shikijs/types": 1.24.4 - "@shikijs/vscode-textmate": 9.3.1 + "@shikijs/core": 1.29.2 + "@shikijs/engine-javascript": 1.29.2 + "@shikijs/engine-oniguruma": 1.29.2 + "@shikijs/langs": 1.29.2 + "@shikijs/themes": 1.29.2 + "@shikijs/types": 1.29.2 + "@shikijs/vscode-textmate": 10.0.2 "@types/hast": 3.0.4 signal-exit@4.1.0: {} @@ -9440,25 +8766,25 @@ snapshots: arg: 5.0.2 sax: 1.4.1 + smol-toml@1.3.1: {} + source-map-js@1.2.1: {} source-map@0.7.4: {} space-separated-tokens@2.0.2: {} - sprintf-js@1.0.3: {} - - starlight-openapi@0.9.0(@astrojs/markdown-remark@6.0.1)(@astrojs/starlight@0.30.3(astro@5.1.1(jiti@2.4.2)(rollup@4.29.1)(typescript@5.7.2)(yaml@2.6.1)))(openapi-types@12.1.3): + starlight-openapi@0.14.1(@astrojs/markdown-remark@6.3.0)(@astrojs/starlight@0.32.2(astro@5.5.2(jiti@2.4.2)(lightningcss@1.29.2)(rollup@4.35.0)(typescript@5.8.2)(yaml@2.6.1)))(astro@5.5.2(jiti@2.4.2)(lightningcss@1.29.2)(rollup@4.35.0)(typescript@5.8.2)(yaml@2.6.1))(openapi-types@12.1.3): dependencies: - "@astrojs/markdown-remark": 6.0.1 - "@astrojs/starlight": 0.30.3(astro@5.1.1(jiti@2.4.2)(rollup@4.29.1)(typescript@5.7.2)(yaml@2.6.1)) + "@astrojs/markdown-remark": 6.3.0 + "@astrojs/starlight": 0.32.2(astro@5.5.2(jiti@2.4.2)(lightningcss@1.29.2)(rollup@4.35.0)(typescript@5.8.2)(yaml@2.6.1)) "@readme/openapi-parser": 2.6.0(openapi-types@12.1.3) + astro: 5.5.2(jiti@2.4.2)(lightningcss@1.29.2)(rollup@4.35.0)(typescript@5.8.2)(yaml@2.6.1) github-slugger: 2.0.0 + url-template: 3.1.1 transitivePeerDependencies: - openapi-types - std-env@3.8.0: {} - stream-replace-string@2.0.0: {} string-width@4.2.3: @@ -9492,10 +8818,6 @@ snapshots: dependencies: ansi-regex: 6.1.0 - strip-bom@3.0.0: {} - - strip-final-newline@3.0.0: {} - style-to-object@0.4.4: dependencies: inline-style-parser: 0.1.1 @@ -9504,10 +8826,10 @@ snapshots: dependencies: inline-style-parser: 0.2.4 - stylehacks@7.0.4(postcss@8.4.49): + stylehacks@7.0.4(postcss@8.5.3): dependencies: browserslist: 4.24.3 - postcss: 8.4.49 + postcss: 8.5.3 postcss-selector-parser: 6.1.2 sucrase@3.35.0: @@ -9536,8 +8858,6 @@ snapshots: csso: 5.0.5 picocolors: 1.1.1 - system-architecture@0.1.0: {} - tailwindcss@3.4.17: dependencies: "@alloc/quick-lru": 5.2.0 @@ -9554,11 +8874,11 @@ snapshots: normalize-path: 3.0.0 object-hash: 3.0.0 picocolors: 1.1.1 - postcss: 8.4.49 - postcss-import: 15.1.0(postcss@8.4.49) - postcss-js: 4.0.1(postcss@8.4.49) - postcss-load-config: 4.0.2(postcss@8.4.49) - postcss-nested: 6.2.0(postcss@8.4.49) + postcss: 8.5.3 + postcss-import: 15.1.0(postcss@8.5.3) + postcss-js: 4.0.1(postcss@8.5.3) + postcss-load-config: 4.0.2(postcss@8.5.3) + postcss-nested: 6.2.0(postcss@8.5.3) postcss-selector-parser: 6.1.2 resolve: 1.22.10 sucrase: 3.35.0 @@ -9573,7 +8893,12 @@ snapshots: dependencies: any-promise: 1.3.0 - tinyexec@0.3.1: {} + tinyexec@0.3.2: {} + + tinyglobby@0.2.12: + dependencies: + fdir: 6.4.3(picomatch@4.0.2) + picomatch: 4.0.2 to-regex-range@5.0.1: dependencies: @@ -9585,9 +8910,9 @@ snapshots: ts-interface-checker@0.1.13: {} - tsconfck@3.1.4(typescript@5.7.2): + tsconfck@3.1.5(typescript@5.8.2): optionalDependencies: - typescript: 5.7.2 + typescript: 5.8.2 tslib@2.8.1: optional: true @@ -9600,7 +8925,7 @@ snapshots: dependencies: semver: 7.6.3 - typescript@5.7.2: {} + typescript@5.8.2: {} ufo@1.5.4: {} @@ -9608,14 +8933,6 @@ snapshots: uncrypto@0.1.3: {} - unenv@1.10.0: - dependencies: - consola: 3.3.1 - defu: 6.1.4 - mime: 3.0.0 - node-fetch-native: 1.6.4 - pathe: 1.1.2 - unified@11.0.5: dependencies: "@types/unist": 3.0.3 @@ -9672,32 +8989,30 @@ snapshots: unist-util-is: 6.0.0 unist-util-visit-parents: 6.0.1 - unstorage@1.14.1: + unstorage@1.15.0: dependencies: anymatch: 3.1.3 - chokidar: 3.6.0 - citty: 0.1.6 + chokidar: 4.0.3 destr: 2.0.3 - h3: 1.13.0 - listhen: 1.9.0 + h3: 1.15.1 lru-cache: 10.4.3 - node-fetch-native: 1.6.4 + node-fetch-native: 1.6.6 ofetch: 1.4.1 ufo: 1.5.4 - untun@0.1.3: - dependencies: - citty: 0.1.6 - consola: 3.3.1 - pathe: 1.1.2 - update-browserslist-db@1.1.1(browserslist@4.24.3): dependencies: browserslist: 4.24.3 escalade: 3.2.0 picocolors: 1.1.1 - uqr@0.1.2: {} + update-browserslist-db@1.1.1(browserslist@4.24.4): + dependencies: + browserslist: 4.24.4 + escalade: 3.2.0 + picocolors: 1.1.1 + + url-template@3.1.1: {} util-deprecate@1.0.2: {} @@ -9716,19 +9031,20 @@ snapshots: "@types/unist": 3.0.3 vfile-message: 4.0.2 - vite@6.0.5(jiti@2.4.2)(yaml@2.6.1): + vite@6.2.2(jiti@2.4.2)(lightningcss@1.29.2)(yaml@2.6.1): dependencies: - esbuild: 0.24.0 - postcss: 8.4.49 - rollup: 4.29.1 + esbuild: 0.25.1 + postcss: 8.5.3 + rollup: 4.35.0 optionalDependencies: fsevents: 2.3.3 jiti: 2.4.2 + lightningcss: 1.29.2 yaml: 2.6.1 - vitefu@1.0.4(vite@6.0.5(jiti@2.4.2)(yaml@2.6.1)): + vitefu@1.0.6(vite@6.2.2(jiti@2.4.2)(lightningcss@1.29.2)(yaml@2.6.1)): optionalDependencies: - vite: 6.0.5(jiti@2.4.2)(yaml@2.6.1) + vite: 6.2.2(jiti@2.4.2)(lightningcss@1.29.2)(yaml@2.6.1) volar-service-css@0.0.62(@volar/language-service@2.4.11): dependencies: @@ -9843,10 +9159,6 @@ snapshots: which-pm-runs@1.1.0: {} - which-pm@3.0.0: - dependencies: - load-yaml-file: 0.2.0 - which@2.0.2: dependencies: isexe: 2.0.0 @@ -9910,21 +9222,21 @@ snapshots: yocto-queue@1.1.1: {} - yocto-spinner@0.1.2: + yocto-spinner@0.2.1: dependencies: yoctocolors: 2.1.1 yoctocolors@2.1.1: {} - zod-to-json-schema@3.24.1(zod@3.24.1): + zod-to-json-schema@3.24.3(zod@3.24.2): dependencies: - zod: 3.24.1 + zod: 3.24.2 - zod-to-ts@1.2.0(typescript@5.7.2)(zod@3.24.1): + zod-to-ts@1.2.0(typescript@5.8.2)(zod@3.24.2): dependencies: - typescript: 5.7.2 - zod: 3.24.1 + typescript: 5.8.2 + zod: 3.24.2 - zod@3.24.1: {} + zod@3.24.2: {} zwitch@2.0.4: {} diff --git a/docs/src/content/docs/br/getting-started/install.mdx b/docs/src/content/docs/br/getting-started/install.mdx index 169b0f84..20f1a978 100644 --- a/docs/src/content/docs/br/getting-started/install.mdx +++ b/docs/src/content/docs/br/getting-started/install.mdx @@ -9,13 +9,13 @@ shared hosting, you can install it on most PHP-MySQL compatible web servers. ## Requirements -- PHP v8.3 or higher +- PHP v8.4 or higher - MySQL version 5.7 or higher or MariaDB version 10.2 or higher - HTTPS support - An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's incoming requests -### PHP v8.3 or higher +### PHP v8.4 or higher PHP version 8.3 or higher is required, with the following extensions installed: diff --git a/docs/src/content/docs/da/getting-started/install.mdx b/docs/src/content/docs/da/getting-started/install.mdx index 169b0f84..20f1a978 100644 --- a/docs/src/content/docs/da/getting-started/install.mdx +++ b/docs/src/content/docs/da/getting-started/install.mdx @@ -9,13 +9,13 @@ shared hosting, you can install it on most PHP-MySQL compatible web servers. ## Requirements -- PHP v8.3 or higher +- PHP v8.4 or higher - MySQL version 5.7 or higher or MariaDB version 10.2 or higher - HTTPS support - An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's incoming requests -### PHP v8.3 or higher +### PHP v8.4 or higher PHP version 8.3 or higher is required, with the following extensions installed: diff --git a/docs/src/content/docs/de/getting-started/install.mdx b/docs/src/content/docs/de/getting-started/install.mdx index b7c1c1cf..6ae19ce8 100644 --- a/docs/src/content/docs/de/getting-started/install.mdx +++ b/docs/src/content/docs/de/getting-started/install.mdx @@ -10,13 +10,13 @@ installieren. ## Voraussetzungen -- PHP v8.3 oder höher +- PHP v8.4 oder höher - MySQL Version 5.7 oder höher oder MariaDB Version 10.2 oder höher - HTTPS-Unterstützung - Eine [ntp-synchronisierte Uhr](https://wiki.debian.org/NTP) um die eingehenden Anfragen zu überprüfen -### PHP v8.3 oder höher +### PHP v8.4 oder höher PHP Version 8.3 oder höher ist erforderlich, mit folgenden Erweiterungen installiert: diff --git a/docs/src/content/docs/el/getting-started/install.mdx b/docs/src/content/docs/el/getting-started/install.mdx index 22cf77e2..bae5070e 100644 --- a/docs/src/content/docs/el/getting-started/install.mdx +++ b/docs/src/content/docs/el/getting-started/install.mdx @@ -9,13 +9,13 @@ shared hosting, you can install it on most PHP-MySQL compatible web servers. ## Requirements -- PHP v8.3 or higher +- PHP v8.4 or higher - MySQL version 5.7 or higher or MariaDB version 10.2 or higher - HTTPS support - An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's incoming requests -### PHP v8.3 or higher +### PHP v8.4 or higher PHP version 8.3 or higher is required, with the following extensions installed: diff --git a/docs/src/content/docs/en/getting-started/install.mdx b/docs/src/content/docs/en/getting-started/install.mdx index 49c73ba9..f0cf758c 100644 --- a/docs/src/content/docs/en/getting-started/install.mdx +++ b/docs/src/content/docs/en/getting-started/install.mdx @@ -9,13 +9,13 @@ shared hosting, you can install it on most PHP-MySQL compatible web servers. ## Requirements -- PHP v8.3 or higher +- PHP v8.4 or higher - MySQL version 5.7 or higher or MariaDB version 10.2 or higher - HTTPS support - An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's incoming requests -### PHP v8.3 or higher +### PHP v8.4 or higher PHP version 8.3 or higher is required, with the following extensions installed: diff --git a/docs/src/content/docs/es/getting-started/install.mdx b/docs/src/content/docs/es/getting-started/install.mdx index e4a47942..44e87d00 100644 --- a/docs/src/content/docs/es/getting-started/install.mdx +++ b/docs/src/content/docs/es/getting-started/install.mdx @@ -10,13 +10,13 @@ compatibles con PHP-MySQL. ## Requisitos -- PHP v8.3 or higher +- PHP v8.4 or higher - MySQL versión 5.7 o superior o MariaDB versión 10.2 o superior - Soporte HTTPS - An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's incoming requests -### PHP v8.3 or higher +### PHP v8.4 or higher PHP version 8.3 or higher is required, with the following extensions installed: diff --git a/docs/src/content/docs/eu/getting-started/install.mdx b/docs/src/content/docs/eu/getting-started/install.mdx index 169b0f84..20f1a978 100644 --- a/docs/src/content/docs/eu/getting-started/install.mdx +++ b/docs/src/content/docs/eu/getting-started/install.mdx @@ -9,13 +9,13 @@ shared hosting, you can install it on most PHP-MySQL compatible web servers. ## Requirements -- PHP v8.3 or higher +- PHP v8.4 or higher - MySQL version 5.7 or higher or MariaDB version 10.2 or higher - HTTPS support - An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's incoming requests -### PHP v8.3 or higher +### PHP v8.4 or higher PHP version 8.3 or higher is required, with the following extensions installed: diff --git a/docs/src/content/docs/fa/getting-started/install.mdx b/docs/src/content/docs/fa/getting-started/install.mdx index 169b0f84..20f1a978 100644 --- a/docs/src/content/docs/fa/getting-started/install.mdx +++ b/docs/src/content/docs/fa/getting-started/install.mdx @@ -9,13 +9,13 @@ shared hosting, you can install it on most PHP-MySQL compatible web servers. ## Requirements -- PHP v8.3 or higher +- PHP v8.4 or higher - MySQL version 5.7 or higher or MariaDB version 10.2 or higher - HTTPS support - An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's incoming requests -### PHP v8.3 or higher +### PHP v8.4 or higher PHP version 8.3 or higher is required, with the following extensions installed: diff --git a/docs/src/content/docs/fr/getting-started/install.mdx b/docs/src/content/docs/fr/getting-started/install.mdx index 5481f0f7..8e2d9223 100644 --- a/docs/src/content/docs/fr/getting-started/install.mdx +++ b/docs/src/content/docs/fr/getting-started/install.mdx @@ -10,13 +10,13 @@ serveurs web compatibles avec PHP-MySQL. ## Prérequis -- PHP v8.3 ou supérieure +- PHP v8.4 ou supérieure - MySQL version 5.7 ou supérieure ou MariaDB version 10.2 ou supérieure - Prise en charge HTTPS - Une horloge [synchronisée ntp](https://wiki.debian.org/NTP) pour valider les requêtes fédérés entrantes -### PHP v8.3 ou supérieure +### PHP v8.4 ou supérieure PHP version 8.3 ou supérieure est requise, avec les extensions suivantes installées : diff --git a/docs/src/content/docs/fr2/getting-started/install.mdx b/docs/src/content/docs/fr2/getting-started/install.mdx index f9808cf0..74b1a612 100644 --- a/docs/src/content/docs/fr2/getting-started/install.mdx +++ b/docs/src/content/docs/fr2/getting-started/install.mdx @@ -10,13 +10,13 @@ serveurs web compatibles avec PHP-MySQL. ## Prérequis -- PHP v8.3 or higher +- PHP v8.4 or higher - MySQL version 5.7 ou supérieure ou MariaDB version 10.2 ou supérieure - Prise en charge HTTPS - An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's incoming requests -### PHP v8.3 or higher +### PHP v8.4 or higher PHP version 8.3 or higher is required, with the following extensions installed: diff --git a/docs/src/content/docs/gd/getting-started/install.mdx b/docs/src/content/docs/gd/getting-started/install.mdx index 169b0f84..20f1a978 100644 --- a/docs/src/content/docs/gd/getting-started/install.mdx +++ b/docs/src/content/docs/gd/getting-started/install.mdx @@ -9,13 +9,13 @@ shared hosting, you can install it on most PHP-MySQL compatible web servers. ## Requirements -- PHP v8.3 or higher +- PHP v8.4 or higher - MySQL version 5.7 or higher or MariaDB version 10.2 or higher - HTTPS support - An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's incoming requests -### PHP v8.3 or higher +### PHP v8.4 or higher PHP version 8.3 or higher is required, with the following extensions installed: diff --git a/docs/src/content/docs/gl/getting-started/install.mdx b/docs/src/content/docs/gl/getting-started/install.mdx index 169b0f84..20f1a978 100644 --- a/docs/src/content/docs/gl/getting-started/install.mdx +++ b/docs/src/content/docs/gl/getting-started/install.mdx @@ -9,13 +9,13 @@ shared hosting, you can install it on most PHP-MySQL compatible web servers. ## Requirements -- PHP v8.3 or higher +- PHP v8.4 or higher - MySQL version 5.7 or higher or MariaDB version 10.2 or higher - HTTPS support - An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's incoming requests -### PHP v8.3 or higher +### PHP v8.4 or higher PHP version 8.3 or higher is required, with the following extensions installed: diff --git a/docs/src/content/docs/id/getting-started/install.mdx b/docs/src/content/docs/id/getting-started/install.mdx index 169b0f84..20f1a978 100644 --- a/docs/src/content/docs/id/getting-started/install.mdx +++ b/docs/src/content/docs/id/getting-started/install.mdx @@ -9,13 +9,13 @@ shared hosting, you can install it on most PHP-MySQL compatible web servers. ## Requirements -- PHP v8.3 or higher +- PHP v8.4 or higher - MySQL version 5.7 or higher or MariaDB version 10.2 or higher - HTTPS support - An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's incoming requests -### PHP v8.3 or higher +### PHP v8.4 or higher PHP version 8.3 or higher is required, with the following extensions installed: diff --git a/docs/src/content/docs/it/getting-started/install.mdx b/docs/src/content/docs/it/getting-started/install.mdx index 169b0f84..20f1a978 100644 --- a/docs/src/content/docs/it/getting-started/install.mdx +++ b/docs/src/content/docs/it/getting-started/install.mdx @@ -9,13 +9,13 @@ shared hosting, you can install it on most PHP-MySQL compatible web servers. ## Requirements -- PHP v8.3 or higher +- PHP v8.4 or higher - MySQL version 5.7 or higher or MariaDB version 10.2 or higher - HTTPS support - An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's incoming requests -### PHP v8.3 or higher +### PHP v8.4 or higher PHP version 8.3 or higher is required, with the following extensions installed: diff --git a/docs/src/content/docs/ja/getting-started/install.mdx b/docs/src/content/docs/ja/getting-started/install.mdx index 169b0f84..20f1a978 100644 --- a/docs/src/content/docs/ja/getting-started/install.mdx +++ b/docs/src/content/docs/ja/getting-started/install.mdx @@ -9,13 +9,13 @@ shared hosting, you can install it on most PHP-MySQL compatible web servers. ## Requirements -- PHP v8.3 or higher +- PHP v8.4 or higher - MySQL version 5.7 or higher or MariaDB version 10.2 or higher - HTTPS support - An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's incoming requests -### PHP v8.3 or higher +### PHP v8.4 or higher PHP version 8.3 or higher is required, with the following extensions installed: diff --git a/docs/src/content/docs/kk/getting-started/install.mdx b/docs/src/content/docs/kk/getting-started/install.mdx index 169b0f84..20f1a978 100644 --- a/docs/src/content/docs/kk/getting-started/install.mdx +++ b/docs/src/content/docs/kk/getting-started/install.mdx @@ -9,13 +9,13 @@ shared hosting, you can install it on most PHP-MySQL compatible web servers. ## Requirements -- PHP v8.3 or higher +- PHP v8.4 or higher - MySQL version 5.7 or higher or MariaDB version 10.2 or higher - HTTPS support - An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's incoming requests -### PHP v8.3 or higher +### PHP v8.4 or higher PHP version 8.3 or higher is required, with the following extensions installed: diff --git a/docs/src/content/docs/ko/getting-started/install.mdx b/docs/src/content/docs/ko/getting-started/install.mdx index 169b0f84..20f1a978 100644 --- a/docs/src/content/docs/ko/getting-started/install.mdx +++ b/docs/src/content/docs/ko/getting-started/install.mdx @@ -9,13 +9,13 @@ shared hosting, you can install it on most PHP-MySQL compatible web servers. ## Requirements -- PHP v8.3 or higher +- PHP v8.4 or higher - MySQL version 5.7 or higher or MariaDB version 10.2 or higher - HTTPS support - An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's incoming requests -### PHP v8.3 or higher +### PHP v8.4 or higher PHP version 8.3 or higher is required, with the following extensions installed: diff --git a/docs/src/content/docs/nl/getting-started/install.mdx b/docs/src/content/docs/nl/getting-started/install.mdx index 169b0f84..20f1a978 100644 --- a/docs/src/content/docs/nl/getting-started/install.mdx +++ b/docs/src/content/docs/nl/getting-started/install.mdx @@ -9,13 +9,13 @@ shared hosting, you can install it on most PHP-MySQL compatible web servers. ## Requirements -- PHP v8.3 or higher +- PHP v8.4 or higher - MySQL version 5.7 or higher or MariaDB version 10.2 or higher - HTTPS support - An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's incoming requests -### PHP v8.3 or higher +### PHP v8.4 or higher PHP version 8.3 or higher is required, with the following extensions installed: diff --git a/docs/src/content/docs/oc/getting-started/install.mdx b/docs/src/content/docs/oc/getting-started/install.mdx index 169b0f84..20f1a978 100644 --- a/docs/src/content/docs/oc/getting-started/install.mdx +++ b/docs/src/content/docs/oc/getting-started/install.mdx @@ -9,13 +9,13 @@ shared hosting, you can install it on most PHP-MySQL compatible web servers. ## Requirements -- PHP v8.3 or higher +- PHP v8.4 or higher - MySQL version 5.7 or higher or MariaDB version 10.2 or higher - HTTPS support - An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's incoming requests -### PHP v8.3 or higher +### PHP v8.4 or higher PHP version 8.3 or higher is required, with the following extensions installed: diff --git a/docs/src/content/docs/pl/getting-started/install.mdx b/docs/src/content/docs/pl/getting-started/install.mdx index 169b0f84..20f1a978 100644 --- a/docs/src/content/docs/pl/getting-started/install.mdx +++ b/docs/src/content/docs/pl/getting-started/install.mdx @@ -9,13 +9,13 @@ shared hosting, you can install it on most PHP-MySQL compatible web servers. ## Requirements -- PHP v8.3 or higher +- PHP v8.4 or higher - MySQL version 5.7 or higher or MariaDB version 10.2 or higher - HTTPS support - An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's incoming requests -### PHP v8.3 or higher +### PHP v8.4 or higher PHP version 8.3 or higher is required, with the following extensions installed: diff --git a/docs/src/content/docs/pt-br/getting-started/install.mdx b/docs/src/content/docs/pt-br/getting-started/install.mdx index 2a49e17b..3e1455aa 100644 --- a/docs/src/content/docs/pt-br/getting-started/install.mdx +++ b/docs/src/content/docs/pt-br/getting-started/install.mdx @@ -10,13 +10,13 @@ com PHP-MySQL. ## Requisitos -- PHP v8.3 or higher +- PHP v8.4 or higher - MySQL versão 5.7 ou superior ou MariaDB versão 10.2 ou superior - Suporte a HTTPS - An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's incoming requests -### PHP v8.3 or higher +### PHP v8.4 or higher PHP version 8.3 or higher is required, with the following extensions installed: diff --git a/docs/src/content/docs/pt/getting-started/install.mdx b/docs/src/content/docs/pt/getting-started/install.mdx index bff853c4..456131b8 100644 --- a/docs/src/content/docs/pt/getting-started/install.mdx +++ b/docs/src/content/docs/pt/getting-started/install.mdx @@ -9,13 +9,13 @@ shared hosting, you can install it on most PHP-MySQL compatible web servers. ## Requirements -- PHP v8.3 or higher +- PHP v8.4 or higher - MySQL version 5.7 or higher or MariaDB version 10.2 or higher - HTTPS support - An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's incoming requests -### PHP v8.3 or higher +### PHP v8.4 or higher PHP version 8.3 or higher is required, with the following extensions installed: diff --git a/docs/src/content/docs/ro/getting-started/install.mdx b/docs/src/content/docs/ro/getting-started/install.mdx index 169b0f84..20f1a978 100644 --- a/docs/src/content/docs/ro/getting-started/install.mdx +++ b/docs/src/content/docs/ro/getting-started/install.mdx @@ -9,13 +9,13 @@ shared hosting, you can install it on most PHP-MySQL compatible web servers. ## Requirements -- PHP v8.3 or higher +- PHP v8.4 or higher - MySQL version 5.7 or higher or MariaDB version 10.2 or higher - HTTPS support - An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's incoming requests -### PHP v8.3 or higher +### PHP v8.4 or higher PHP version 8.3 or higher is required, with the following extensions installed: diff --git a/docs/src/content/docs/ru/getting-started/install.mdx b/docs/src/content/docs/ru/getting-started/install.mdx index bff853c4..456131b8 100644 --- a/docs/src/content/docs/ru/getting-started/install.mdx +++ b/docs/src/content/docs/ru/getting-started/install.mdx @@ -9,13 +9,13 @@ shared hosting, you can install it on most PHP-MySQL compatible web servers. ## Requirements -- PHP v8.3 or higher +- PHP v8.4 or higher - MySQL version 5.7 or higher or MariaDB version 10.2 or higher - HTTPS support - An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's incoming requests -### PHP v8.3 or higher +### PHP v8.4 or higher PHP version 8.3 or higher is required, with the following extensions installed: diff --git a/docs/src/content/docs/sk/getting-started/install.mdx b/docs/src/content/docs/sk/getting-started/install.mdx index 169b0f84..20f1a978 100644 --- a/docs/src/content/docs/sk/getting-started/install.mdx +++ b/docs/src/content/docs/sk/getting-started/install.mdx @@ -9,13 +9,13 @@ shared hosting, you can install it on most PHP-MySQL compatible web servers. ## Requirements -- PHP v8.3 or higher +- PHP v8.4 or higher - MySQL version 5.7 or higher or MariaDB version 10.2 or higher - HTTPS support - An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's incoming requests -### PHP v8.3 or higher +### PHP v8.4 or higher PHP version 8.3 or higher is required, with the following extensions installed: diff --git a/docs/src/content/docs/zh-hans/getting-started/install.mdx b/docs/src/content/docs/zh-hans/getting-started/install.mdx index 00727621..beb41b92 100644 --- a/docs/src/content/docs/zh-hans/getting-started/install.mdx +++ b/docs/src/content/docs/zh-hans/getting-started/install.mdx @@ -9,12 +9,12 @@ shared hosting, you can install it on most PHP-MySQL compatible web servers. ## 要求 -- PHP v8.3 or higher +- PHP v8.4 or higher - MySQL 5.7 或更高版本与 MariaDB 10.2 或更高版本 - HTTPS 支持 - 用于验证的 [NTP 同步时钟](https://wiki.debian.org/NTP) 传入请求 -### PHP v8.3 or higher +### PHP v8.4 or higher PHP version 8.3 or higher is required, with the following extensions installed: diff --git a/docs/src/content/docs/zh-hant/getting-started/install.mdx b/docs/src/content/docs/zh-hant/getting-started/install.mdx index 169b0f84..20f1a978 100644 --- a/docs/src/content/docs/zh-hant/getting-started/install.mdx +++ b/docs/src/content/docs/zh-hant/getting-started/install.mdx @@ -9,13 +9,13 @@ shared hosting, you can install it on most PHP-MySQL compatible web servers. ## Requirements -- PHP v8.3 or higher +- PHP v8.4 or higher - MySQL version 5.7 or higher or MariaDB version 10.2 or higher - HTTPS support - An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's incoming requests -### PHP v8.3 or higher +### PHP v8.4 or higher PHP version 8.3 or higher is required, with the following extensions installed: diff --git a/ecs.php b/ecs.php index 4d41a5ce..8b1a94f5 100644 --- a/ecs.php +++ b/ecs.php @@ -2,12 +2,11 @@ declare(strict_types=1); -use PHP_CodeSniffer\Standards\Generic\Sniffs\CodeAnalysis\AssignmentInConditionSniff; +use PhpCsFixer\Fixer\ControlStructure\TrailingCommaInMultilineFixer; use PhpCsFixer\Fixer\Operator\BinaryOperatorSpacesFixer; use PhpCsFixer\Fixer\StringNotation\SingleQuoteFixer; use PhpCsFixer\Fixer\Whitespace\IndentationTypeFixer; use Symplify\CodingStandard\Fixer\LineLength\LineLengthFixer; -use Symplify\CodingStandard\Fixer\Naming\StandardizeHereNowDocKeywordFixer; use Symplify\CodingStandard\Fixer\Spacing\MethodChainingNewlineFixer; use Symplify\EasyCodingStandard\Config\ECSConfig; @@ -28,13 +27,6 @@ return ECSConfig::configure() // skip specific generated files __DIR__ . '/modules/Admin/Language/*/PersonsTaxonomy.php', - StandardizeHereNowDocKeywordFixer::class => [ - __DIR__ . '/app/Views/Components/*', - __DIR__ . '/modules/**/Views/Components/*', - __DIR__ . '/themes/**/Views/Components/*', - __DIR__ . '/app/Helpers/components_helper.php', - ], - LineLengthFixer::class => [__DIR__ . '/app/Views/*', __DIR__ . '/modules/**/Views/*', __DIR__ . '/themes/*'], IndentationTypeFixer::class => [ @@ -54,11 +46,12 @@ return ECSConfig::configure() SingleQuoteFixer::class => [__DIR__ . '/app/Language/*', __DIR__ . '/modules/**/Language/*'], BinaryOperatorSpacesFixer::class => [__DIR__ . '/app/Language/*', __DIR__ . '/modules/**/Language/*'], - - AssignmentInConditionSniff::class, ]) ->withConfiguredRule(BinaryOperatorSpacesFixer::class, [ 'operators' => [ '=>' => 'align_single_space_minimal', ], + ]) + ->withConfiguredRule(TrailingCommaInMultilineFixer::class, [ + 'elements' => ['arguments', 'array_destructuring', 'arrays', 'match', 'parameters'], ]); diff --git a/modules/Admin/Config/Routes.php b/modules/Admin/Config/Routes.php index fc290913..375b2943 100644 --- a/modules/Admin/Config/Routes.php +++ b/modules/Admin/Config/Routes.php @@ -483,7 +483,7 @@ $routes->group( [ 'as' => 'comment-attempt-create', 'filter' => 'permission:podcast$1.episodes.manage-comments', - ] + ], ); $routes->post( '(:uuid)/reply', @@ -491,7 +491,7 @@ $routes->group( [ 'as' => 'comment-attempt-reply', 'filter' => 'permission:podcast$1.episodes.manage-comments', - ] + ], ); $routes->post( 'delete', @@ -499,7 +499,7 @@ $routes->group( [ 'as' => 'comment-attempt-delete', 'filter' => 'permission:podcast$1.episodes.manage-comments', - ] + ], ); }); }); diff --git a/modules/Admin/Controllers/BaseController.php b/modules/Admin/Controllers/BaseController.php index 28c3525f..1c18f2d0 100644 --- a/modules/Admin/Controllers/BaseController.php +++ b/modules/Admin/Controllers/BaseController.php @@ -33,7 +33,7 @@ abstract class BaseController extends Controller public function initController( RequestInterface $request, ResponseInterface $response, - LoggerInterface $logger + LoggerInterface $logger, ): void { $this->helpers = [...$this->helpers, 'auth', 'breadcrumb', 'svg', 'components', 'misc']; @@ -51,7 +51,7 @@ abstract class BaseController extends Controller $head ->title($title . ' | Castopod Admin') ->description( - 'Castopod is an open-source hosting platform made for podcasters who want engage and interact with their audience.' + 'Castopod is an open-source hosting platform made for podcasters who want engage and interact with their audience.', ); } } diff --git a/modules/Admin/Controllers/DashboardController.php b/modules/Admin/Controllers/DashboardController.php index 21977775..845ed564 100644 --- a/modules/Admin/Controllers/DashboardController.php +++ b/modules/Admin/Controllers/DashboardController.php @@ -29,7 +29,7 @@ class DashboardController extends BaseController ->getResultArray()[0]['last_published_at']; $podcastsData['number_of_podcasts'] = (int) $podcastsCount; $podcastsData['last_published_at'] = $podcastsLastPublishedAt === null ? null : new Time( - $podcastsLastPublishedAt + $podcastsLastPublishedAt, ); $episodesData = []; @@ -42,7 +42,7 @@ class DashboardController extends BaseController ->getResultArray()[0]['last_published_at']; $episodesData['number_of_episodes'] = (int) $episodesCount; $episodesData['last_published_at'] = $episodesLastPublishedAt === null ? null : new Time( - $episodesLastPublishedAt + $episodesLastPublishedAt, ); $totalUploaded = (new MediaModel())->builder() diff --git a/modules/Admin/Controllers/EpisodeController.php b/modules/Admin/Controllers/EpisodeController.php index c684754a..1d8c87dc 100644 --- a/modules/Admin/Controllers/EpisodeController.php +++ b/modules/Admin/Controllers/EpisodeController.php @@ -82,8 +82,8 @@ class EpisodeController extends BaseController ->where('podcast_id', $podcast->id) ->where( "MATCH (title, description_markdown, slug, location_name) AGAINST ('{$episodeModel->db->escapeString( - $query - )}')" + $query, + )}')", ); } } else { @@ -188,7 +188,7 @@ class EpisodeController extends BaseController 'cover' => $this->request->getFile('cover'), 'description_markdown' => $this->request->getPost('description'), 'location' => $this->request->getPost('location_name') === '' ? null : new Location( - $this->request->getPost('location_name') + $this->request->getPost('location_name'), ), 'transcript' => $this->request->getFile('transcript'), 'chapters' => $this->request->getFile('chapters'), @@ -212,7 +212,7 @@ class EpisodeController extends BaseController $newEpisode->setTranscript($this->request->getFile('transcript_file')); } elseif ($transcriptChoice === 'remote-url') { $newEpisode->transcript_remote_url = $this->request->getPost( - 'transcript_remote_url' + 'transcript_remote_url', ) === '' ? null : $this->request->getPost('transcript_remote_url'); } @@ -221,7 +221,7 @@ class EpisodeController extends BaseController $newEpisode->setChapters($this->request->getFile('chapters_file')); } elseif ($chaptersChoice === 'remote-url') { $newEpisode->chapters_remote_url = $this->request->getPost( - 'chapters_remote_url' + 'chapters_remote_url', ) === '' ? null : $this->request->getPost('chapters_remote_url'); } @@ -235,7 +235,7 @@ class EpisodeController extends BaseController return redirect()->route('episode-view', [$podcast->id, $newEpisodeId])->with( 'message', - lang('Episode.messages.createSuccess') + lang('Episode.messages.createSuccess'), ); } @@ -284,7 +284,7 @@ class EpisodeController extends BaseController $episode->slug = $validData['slug']; $episode->description_markdown = $this->request->getPost('description'); $episode->location = $this->request->getPost('location_name') === '' ? null : new Location( - $this->request->getPost('location_name') + $this->request->getPost('location_name'), ); $episode->parental_advisory = $this->request->getPost('parental_advisory') !== 'undefined' @@ -349,7 +349,7 @@ class EpisodeController extends BaseController return redirect()->route('episode-edit', [$episode->podcast_id, $episode->id])->with( 'message', - lang('Episode.messages.editSuccess') + lang('Episode.messages.editSuccess'), ); } @@ -407,7 +407,7 @@ class EpisodeController extends BaseController return redirect()->route('episode-view', [$episode->podcast_id, $episode->id])->with( 'error', - lang('Episode.publish_error') + lang('Episode.publish_error'), ); } @@ -490,7 +490,7 @@ class EpisodeController extends BaseController 'message', lang('Episode.messages.publishSuccess', [ 'publication_status' => $episode->publication_status, - ]) + ]), ); } @@ -520,7 +520,7 @@ class EpisodeController extends BaseController return redirect()->route('episode-view', [$episode->podcast_id, $episode->id])->with( 'error', - lang('Episode.publish_edit_error') + lang('Episode.publish_edit_error'), ); } @@ -602,7 +602,7 @@ class EpisodeController extends BaseController 'message', lang('Episode.messages.publishSuccess', [ 'publication_status' => $episode->publication_status, - ]) + ]), ); } @@ -636,7 +636,7 @@ class EpisodeController extends BaseController return redirect()->route('episode-view', [$episode->podcast_id, $episode->id])->with( 'message', - lang('Episode.messages.publishCancelSuccess') + lang('Episode.messages.publishCancelSuccess'), ); } @@ -649,7 +649,7 @@ class EpisodeController extends BaseController if ($episode->publication_status !== 'published') { return redirect()->route('episode-view', [$episode->podcast_id, $episode->id])->with( 'error', - lang('Episode.publish_date_edit_error') + lang('Episode.publish_date_edit_error'), ); } @@ -716,7 +716,7 @@ class EpisodeController extends BaseController return redirect()->route('episode-view', [$episode->podcast_id, $episode->id])->with( 'message', - lang('Episode.publish_date_edit_success') + lang('Episode.publish_date_edit_success'), ); } @@ -725,7 +725,7 @@ class EpisodeController extends BaseController if ($episode->publication_status !== 'published') { return redirect()->route('episode-view', [$episode->podcast_id, $episode->id])->with( 'error', - lang('Episode.unpublish_error') + lang('Episode.unpublish_error'), ); } @@ -906,7 +906,7 @@ class EpisodeController extends BaseController return redirect()->route('episode-list', [$episode->podcast_id])->with( 'message', - lang('Episode.messages.deleteSuccess') + lang('Episode.messages.deleteSuccess'), ); } diff --git a/modules/Admin/Controllers/PersonController.php b/modules/Admin/Controllers/PersonController.php index f41b6097..51d4a21c 100644 --- a/modules/Admin/Controllers/PersonController.php +++ b/modules/Admin/Controllers/PersonController.php @@ -149,7 +149,7 @@ class PersonController extends BaseController return redirect()->route('person-edit', [$person->id])->with( 'message', - lang('Person.messages.editSuccess') + lang('Person.messages.editSuccess'), ); } diff --git a/modules/Admin/Controllers/PodcastController.php b/modules/Admin/Controllers/PodcastController.php index 89f0079e..870b66a5 100644 --- a/modules/Admin/Controllers/PodcastController.php +++ b/modules/Admin/Controllers/PodcastController.php @@ -226,7 +226,7 @@ class PodcastController extends BaseController 'type' => $this->request->getPost('type'), 'copyright' => $this->request->getPost('copyright'), 'location' => $this->request->getPost('location_name') === '' ? null : new Location( - $this->request->getPost('location_name') + $this->request->getPost('location_name'), ), 'is_blocked' => $this->request->getPost('block') === 'yes', 'is_completed' => $this->request->getPost('complete') === 'yes', @@ -260,7 +260,7 @@ class PodcastController extends BaseController return redirect()->route('podcast-view', [$newPodcastId])->with( 'message', - lang('Podcast.messages.createSuccess') + lang('Podcast.messages.createSuccess'), ); } @@ -317,10 +317,10 @@ class PodcastController extends BaseController $podcast->type = $this->request->getPost('type'); $podcast->copyright = $this->request->getPost('copyright'); $podcast->location = $this->request->getPost('location_name') === '' ? null : new Location( - $this->request->getPost('location_name') + $this->request->getPost('location_name'), ); $podcast->new_feed_url = $this->request->getPost('new_feed_url') === '' ? null : $this->request->getPost( - 'new_feed_url' + 'new_feed_url', ); $podcast->is_blocked = $this->request->getPost('block') === 'yes'; @@ -356,14 +356,14 @@ class PodcastController extends BaseController ->set( 'Podcast.redirect_to_new_feed', $this->request->getPost('redirect_to_new_feed') === 'yes', - 'podcast:' . $podcast->id + 'podcast:' . $podcast->id, ); $db->transComplete(); return redirect()->route('podcast-edit', [$podcast->id])->with( 'message', - lang('Podcast.messages.editSuccess') + lang('Podcast.messages.editSuccess'), ); } @@ -607,7 +607,7 @@ class PodcastController extends BaseController if ($podcast->publication_status !== 'not_published') { return redirect()->route('podcast-view', [$podcast->id])->with( 'error', - lang('Podcast.messages.publishError') + lang('Podcast.messages.publishError'), ); } @@ -742,7 +742,7 @@ class PodcastController extends BaseController if ($podcast->publication_status !== 'scheduled') { return redirect()->route('podcast-view', [$podcast->id])->with( 'error', - lang('Podcast.messages.publishEditError') + lang('Podcast.messages.publishEditError'), ); } @@ -942,7 +942,7 @@ class PodcastController extends BaseController return redirect()->route('podcast-view', [$podcast->id])->with( 'message', - lang('Podcast.messages.publishCancelSuccess') + lang('Podcast.messages.publishCancelSuccess'), ); } } diff --git a/modules/Admin/Controllers/SoundbiteController.php b/modules/Admin/Controllers/SoundbiteController.php index 5be40f35..faf72bee 100644 --- a/modules/Admin/Controllers/SoundbiteController.php +++ b/modules/Admin/Controllers/SoundbiteController.php @@ -131,7 +131,7 @@ class SoundbiteController extends BaseController return redirect()->route('soundbites-list', [$episode->podcast_id, $episode->id])->with( 'message', - lang('Soundbite.messages.createSuccess') + lang('Soundbite.messages.createSuccess'), ); } @@ -161,7 +161,7 @@ class SoundbiteController extends BaseController return redirect()->route('soundbites-list', [$episode->podcast_id, $episode->id])->with( 'message', - lang('Soundbite.messages.deleteSuccess') + lang('Soundbite.messages.deleteSuccess'), ); } } diff --git a/modules/Admin/Controllers/VideoClipsController.php b/modules/Admin/Controllers/VideoClipsController.php index 99cd1187..573042e6 100644 --- a/modules/Admin/Controllers/VideoClipsController.php +++ b/modules/Admin/Controllers/VideoClipsController.php @@ -125,7 +125,7 @@ class VideoClipsController extends BaseController $this->setHtmlHead(lang('VideoClip.form.title')); - if (in_array(false, $checks, true)) { + if (array_any($checks, fn (bool $value): bool => ! $value)) { $data['checks'] = $checks; return view('episode/video_clips_requirements', $data); } @@ -188,7 +188,7 @@ class VideoClipsController extends BaseController return redirect()->route('video-clips-list', [$episode->podcast_id, $episode->id])->with( 'message', - lang('VideoClip.messages.addToQueueSuccess') + lang('VideoClip.messages.addToQueueSuccess'), ); } diff --git a/modules/Analytics/Controllers/EpisodeAnalyticsController.php b/modules/Analytics/Controllers/EpisodeAnalyticsController.php index 743ccd2a..5da42457 100644 --- a/modules/Analytics/Controllers/EpisodeAnalyticsController.php +++ b/modules/Analytics/Controllers/EpisodeAnalyticsController.php @@ -40,7 +40,7 @@ class EpisodeAnalyticsController extends Controller return redirect()->route( 'episode-audio', - [$episode->podcast->handle, $episode->slug, $episode->audio->file_extension] + [$episode->podcast->handle, $episode->slug, $episode->audio->file_extension], ); } } diff --git a/modules/Analytics/Helpers/analytics_helper.php b/modules/Analytics/Helpers/analytics_helper.php index 3630462f..adf97da4 100644 --- a/modules/Analytics/Helpers/analytics_helper.php +++ b/modules/Analytics/Helpers/analytics_helper.php @@ -259,8 +259,8 @@ if (! function_exists('podcast_hit')) { 'Analytics_Episode_' . sha1( $salt . '_' . date( - 'Y-m-d' - ) . '_' . $clientIp . '_' . $superglobals->server('HTTP_USER_AGENT') . '_' . $episodeId + 'Y-m-d', + ) . '_' . $clientIp . '_' . $superglobals->server('HTTP_USER_AGENT') . '_' . $episodeId, ); // The cache expires at midnight: $secondsToMidnight = strtotime('tomorrow') - time(); @@ -308,8 +308,8 @@ if (! function_exists('podcast_hit')) { 'Analytics_Podcast_' . sha1( $salt . '_' . date( - 'Y-m-d' - ) . '_' . $clientIp . '_' . $superglobals->server('HTTP_USER_AGENT') . '_' . $podcastId + 'Y-m-d', + ) . '_' . $clientIp . '_' . $superglobals->server('HTTP_USER_AGENT') . '_' . $podcastId, ); $newListener = 1; diff --git a/modules/Analytics/Models/AnalyticsPodcastByEpisodeModel.php b/modules/Analytics/Models/AnalyticsPodcastByEpisodeModel.php index 06aef9f4..7115284a 100644 --- a/modules/Analytics/Models/AnalyticsPodcastByEpisodeModel.php +++ b/modules/Analytics/Models/AnalyticsPodcastByEpisodeModel.php @@ -66,7 +66,7 @@ class AnalyticsPodcastByEpisodeModel extends Model /** * @return AnalyticsPodcastsByEpisode[] */ - public function getDataByMonth(int $podcastId, int $episodeId = null): array + public function getDataByMonth(int $podcastId, ?int $episodeId = null): array { if ( ! ($found = cache("{$podcastId}_{$episodeId}_analytics_podcast_by_episode_by_month")) diff --git a/modules/Analytics/Models/AnalyticsPodcastModel.php b/modules/Analytics/Models/AnalyticsPodcastModel.php index e58f574e..1b4775e0 100644 --- a/modules/Analytics/Models/AnalyticsPodcastModel.php +++ b/modules/Analytics/Models/AnalyticsPodcastModel.php @@ -246,7 +246,7 @@ class AnalyticsPodcastModel extends Model { if (! ($found = cache('analytics_total_bandwidth_by_month'))) { $found = $this->select( - 'DATE_FORMAT(updated_at,"%Y-%m") as labels, ROUND(sum(bandwidth) / 1000000, 2) as `values`' + 'DATE_FORMAT(updated_at,"%Y-%m") as labels, ROUND(sum(bandwidth) / 1000000, 2) as `values`', ) ->groupBy('labels') ->orderBy('labels', 'ASC') @@ -268,7 +268,7 @@ class AnalyticsPodcastModel extends Model { if (! ($found = cache('analytics_total_storage_by_month'))) { $found = (new MediaModel())->select( - 'DATE_FORMAT(uploaded_at,"%Y-%m") as labels, ROUND(sum(file_size) / 1000000, 2) as `values`' + 'DATE_FORMAT(uploaded_at,"%Y-%m") as labels, ROUND(sum(file_size) / 1000000, 2) as `values`', ) ->groupBy('labels') ->orderBy('labels', 'ASC') diff --git a/modules/Api/Rest/V1/Config/Routes.php b/modules/Api/Rest/V1/Config/Routes.php index 99429fa7..5f717129 100644 --- a/modules/Api/Rest/V1/Config/Routes.php +++ b/modules/Api/Rest/V1/Config/Routes.php @@ -19,7 +19,7 @@ $routes->group( $routes->get('/', 'PodcastController::list'); $routes->get('(:num)', 'PodcastController::view/$1'); $routes->get('(:any)', 'ExceptionController::notFound'); - } + }, ); $routes->group( @@ -35,5 +35,5 @@ $routes->group( $routes->post('(:num)/publish', 'EpisodeController::attemptPublish/$1'); $routes->get('(:num)', 'EpisodeController::view/$1'); $routes->get('(:any)', 'ExceptionController::notFound'); - } + }, ); diff --git a/modules/Api/Rest/V1/Controllers/EpisodeController.php b/modules/Api/Rest/V1/Controllers/EpisodeController.php index 4688a858..ad9dcff3 100644 --- a/modules/Api/Rest/V1/Controllers/EpisodeController.php +++ b/modules/Api/Rest/V1/Controllers/EpisodeController.php @@ -52,7 +52,7 @@ class EpisodeController extends Controller $data = $builder->findAll( (int) ($this->request->getGet('limit') ?? config('RestApi')->limit), - (int) $this->request->getGet('offset') + (int) $this->request->getGet('offset'), ); array_map(static function ($episode): void { @@ -155,10 +155,10 @@ class EpisodeController extends Controller ? $this->request->getPost('parental_advisory') : null, 'number' => $this->request->getPost('episode_number') ? (int) $this->request->getPost( - 'episode_number' + 'episode_number', ) : null, 'season_number' => $this->request->getPost('season_number') ? (int) $this->request->getPost( - 'season_number' + 'season_number', ) : null, 'type' => $this->request->getPost('type'), 'is_blocked' => $this->request->getPost('block') === 'yes', @@ -172,7 +172,7 @@ class EpisodeController extends Controller $newEpisode->setTranscript($this->request->getFile('transcript_file')); } elseif ($transcriptChoice === 'remote-url') { $newEpisode->transcript_remote_url = $this->request->getPost( - 'transcript_remote_url' + 'transcript_remote_url', ) === '' ? null : $this->request->getPost('transcript_remote_url'); } @@ -181,7 +181,7 @@ class EpisodeController extends Controller $newEpisode->setChapters($this->request->getFile('chapters_file')); } elseif ($chaptersChoice === 'remote-url') { $newEpisode->chapters_remote_url = $this->request->getPost( - 'chapters_remote_url' + 'chapters_remote_url', ) === '' ? null : $this->request->getPost('chapters_remote_url'); } @@ -257,7 +257,7 @@ class EpisodeController extends Controller $episode->published_at = Time::createFromFormat( 'Y-m-d H:i', $scheduledPublicationDate, - $clientTimezone + $clientTimezone, )->setTimezone(app_timezone()); } else { $db->transRollback(); diff --git a/modules/Api/Rest/V1/Filters/ApiFilter.php b/modules/Api/Rest/V1/Filters/ApiFilter.php index 4b1932d3..8bb25935 100644 --- a/modules/Api/Rest/V1/Filters/ApiFilter.php +++ b/modules/Api/Rest/V1/Filters/ApiFilter.php @@ -17,7 +17,8 @@ class ApiFilter implements FilterInterface { /** * @param Request $request - * @return RequestInterface|ResponseInterface|string|void + * + * @return RequestInterface|ResponseInterface|string|null */ #[Override] public function before(RequestInterface $request, $arguments = null) @@ -62,11 +63,18 @@ class ApiFilter implements FilterInterface return $response; } } + + return null; } + /** + * @param string[]|null $arguments + * + * @return ResponseInterface|null + */ #[Override] - public function after(RequestInterface $request, ResponseInterface $response, $arguments = null): void + public function after(RequestInterface $request, ResponseInterface $response, $arguments = null) { - // Do something here + return null; } } diff --git a/modules/Auth/Commands/RolesDoc.php b/modules/Auth/Commands/RolesDoc.php index 5f95bfa9..84d7b941 100644 --- a/modules/Auth/Commands/RolesDoc.php +++ b/modules/Auth/Commands/RolesDoc.php @@ -88,7 +88,7 @@ class RolesDoc extends BaseCommand $authGroups->instanceGroups, static function ($table, $key, array $value) use ($instanceMatrix): void { $table->addRow($value['title'], $value['description'], implode(', ', $instanceMatrix[$key])); - } + }, ); } @@ -101,7 +101,7 @@ class RolesDoc extends BaseCommand $authGroups->instancePermissions, static function ($table, $key, $value): void { $table->addRow($key, $value); - } + }, ); } @@ -115,7 +115,7 @@ class RolesDoc extends BaseCommand $authGroups->podcastGroups, static function ($table, $key, array $value) use ($podcastMatrix): void { $table->addRow($value['title'], $value['description'], implode(', ', $podcastMatrix[$key])); - } + }, ); } @@ -128,7 +128,7 @@ class RolesDoc extends BaseCommand $authGroups->podcastPermissions, static function ($table, $key, $value): void { $table->addRow($key, $value); - } + }, ); } @@ -141,7 +141,7 @@ class RolesDoc extends BaseCommand string $pattern, array $tableHeading, array $data, - Closure $callback + Closure $callback, ): string { // check if it has the start and end comments to insert roles table // looking for and @@ -169,7 +169,7 @@ class RolesDoc extends BaseCommand $newFileContents = preg_replace( $pattern, '${1}' . PHP_EOL . PHP_EOL . $markdownTable . PHP_EOL . PHP_EOL . '${2}', - $fileContents + $fileContents, ); if ($newFileContents === null) { @@ -184,7 +184,7 @@ class RolesDoc extends BaseCommand preg_match( '~docs\/src\/content\/docs\/(?:([a-z]{2}(?:-[A-Za-z]{2,})?)\/)getting-started\/auth\.mdx~', $fileKey, - $match + $match, ); if ($match === []) { diff --git a/modules/Auth/Config/Routes.php b/modules/Auth/Config/Routes.php index aa56747e..535646f6 100644 --- a/modules/Auth/Config/Routes.php +++ b/modules/Auth/Config/Routes.php @@ -132,5 +132,5 @@ $routes->group( ); }); }); - } + }, ); diff --git a/modules/Auth/Controllers/ActionController.php b/modules/Auth/Controllers/ActionController.php index 087bfa16..649005ee 100644 --- a/modules/Auth/Controllers/ActionController.php +++ b/modules/Auth/Controllers/ActionController.php @@ -20,7 +20,7 @@ class ActionController extends ShieldActionController public function initController( RequestInterface $request, ResponseInterface $response, - LoggerInterface $logger + LoggerInterface $logger, ): void { parent::initController($request, $response, $logger); diff --git a/modules/Auth/Controllers/ContributorController.php b/modules/Auth/Controllers/ContributorController.php index 6c75aaeb..400c0ad3 100644 --- a/modules/Auth/Controllers/ContributorController.php +++ b/modules/Auth/Controllers/ContributorController.php @@ -42,7 +42,7 @@ class ContributorController extends BaseController if (($this->contributor = (new UserModel())->getPodcastContributor( (int) $params[1], - (int) $params[0] + (int) $params[0], )) instanceof User) { return $this->{$method}(); } @@ -88,7 +88,7 @@ class ContributorController extends BaseController $users = (new UserModel())->findAll(); $contributorOptions = array_reduce( $users, - static function (array $result, $user): array { + static function (array $result, User $user): array { $result[] = [ 'value' => $user->id, 'label' => $user->username, @@ -202,7 +202,7 @@ class ContributorController extends BaseController return redirect()->route('contributor-list', [$this->podcast->id])->with( 'message', - lang('Contributor.messages.editSuccess') + lang('Contributor.messages.editSuccess'), ); } diff --git a/modules/Auth/Controllers/LoginController.php b/modules/Auth/Controllers/LoginController.php index 91e375c6..d4d7386e 100644 --- a/modules/Auth/Controllers/LoginController.php +++ b/modules/Auth/Controllers/LoginController.php @@ -17,7 +17,7 @@ class LoginController extends ShieldLoginController public function initController( RequestInterface $request, ResponseInterface $response, - LoggerInterface $logger + LoggerInterface $logger, ): void { parent::initController($request, $response, $logger); diff --git a/modules/Auth/Controllers/MagicLinkController.php b/modules/Auth/Controllers/MagicLinkController.php index d37f85ee..5be3ff3b 100644 --- a/modules/Auth/Controllers/MagicLinkController.php +++ b/modules/Auth/Controllers/MagicLinkController.php @@ -24,7 +24,7 @@ class MagicLinkController extends ShieldMagicLinkController public function initController( RequestInterface $request, ResponseInterface $response, - LoggerInterface $logger + LoggerInterface $logger, ): void { parent::initController($request, $response, $logger); diff --git a/modules/Auth/Controllers/RegisterController.php b/modules/Auth/Controllers/RegisterController.php index d015392f..4a093f95 100644 --- a/modules/Auth/Controllers/RegisterController.php +++ b/modules/Auth/Controllers/RegisterController.php @@ -20,7 +20,7 @@ class RegisterController extends ShieldRegisterController public function initController( RequestInterface $request, ResponseInterface $response, - LoggerInterface $logger + LoggerInterface $logger, ): void { parent::initController($request, $response, $logger); diff --git a/modules/Auth/Filters/PermissionFilter.php b/modules/Auth/Filters/PermissionFilter.php index b12ee6bb..e958d910 100644 --- a/modules/Auth/Filters/PermissionFilter.php +++ b/modules/Auth/Filters/PermissionFilter.php @@ -20,13 +20,13 @@ class PermissionFilter implements FilterInterface /** * @param string[]|null $arguments * - * @return RequestInterface|ResponseInterface|string|void + * @return RequestInterface|ResponseInterface|string|null */ #[Override] public function before(RequestInterface $request, $arguments = null) { if ($arguments === null || $arguments === []) { - return; + return null; } if (! auth()->loggedIn()) { @@ -34,7 +34,7 @@ class PermissionFilter implements FilterInterface } if ($this->isAuthorized($arguments)) { - return; + return null; } throw new RuntimeException(lang('Auth.notEnoughPrivilege'), 403); @@ -42,10 +42,13 @@ class PermissionFilter implements FilterInterface /** * @param string[]|null $arguments + * + * @return ResponseInterface|null */ #[Override] - public function after(RequestInterface $request, ResponseInterface $response, $arguments = null): void + public function after(RequestInterface $request, ResponseInterface $response, $arguments = null) { + return null; } /** @@ -67,7 +70,7 @@ class PermissionFilter implements FilterInterface if (! preg_match('/\$(\d+)\./', $permission, $match)) { throw new RuntimeException(sprintf( 'Could not get podcast identifier from permission %s', - $permission + $permission, ), 1); } diff --git a/modules/Auth/Helpers/auth_helper.php b/modules/Auth/Helpers/auth_helper.php index b4765c87..7e32e57c 100644 --- a/modules/Auth/Helpers/auth_helper.php +++ b/modules/Auth/Helpers/auth_helper.php @@ -104,7 +104,7 @@ if (! function_exists('get_instance_group')) { { $instanceGroups = array_filter( $user->getGroups() ?? [], - static fn ($group): bool => ! str_starts_with((string) $group, 'podcast#') + static fn ($group): bool => ! str_starts_with((string) $group, 'podcast#'), ); if ($instanceGroups === []) { @@ -141,7 +141,7 @@ if (! function_exists('get_podcast_group')) { { $podcastGroups = array_filter( $user->getGroups() ?? [], - static fn ($group): bool => str_starts_with((string) $group, "podcast#{$podcastId}-") + static fn ($group): bool => str_starts_with((string) $group, "podcast#{$podcastId}-"), ); if ($podcastGroups === []) { @@ -184,7 +184,7 @@ if (! function_exists('get_podcast_groups')) { { $podcastGroups = array_filter( $user->getGroups() ?? [], - static fn ($group): bool => str_starts_with((string) $group, 'podcast#') + static fn ($group): bool => str_starts_with((string) $group, 'podcast#'), ); $userPodcastIds = []; @@ -281,7 +281,7 @@ if (! function_exists('get_actor_ids_with_unread_notifications')) { $unreadNotifications = (new NotificationModel())->whereIn( 'target_actor_id', - array_column($userPodcasts, 'actor_id') + array_column($userPodcasts, 'actor_id'), ) ->where('read_at', null) ->findAll(); diff --git a/modules/Fediverse/Commands/Broadcast.php b/modules/Fediverse/Commands/Broadcast.php index 4f2b3e5f..3e096946 100644 --- a/modules/Fediverse/Commands/Broadcast.php +++ b/modules/Fediverse/Commands/Broadcast.php @@ -42,7 +42,7 @@ class Broadcast extends BaseCommand send_activity_to_actor( $scheduledActivity->actor, $scheduledActivity->targetActor, - json_encode($scheduledActivity->payload, JSON_THROW_ON_ERROR) + json_encode($scheduledActivity->payload, JSON_THROW_ON_ERROR), ); } } else { diff --git a/modules/Fediverse/Filters/FediverseFilter.php b/modules/Fediverse/Filters/FediverseFilter.php index 1e64839b..0c8f406e 100644 --- a/modules/Fediverse/Filters/FediverseFilter.php +++ b/modules/Fediverse/Filters/FediverseFilter.php @@ -16,19 +16,15 @@ use Override; class FediverseFilter implements FilterInterface { /** - * Do whatever processing this filter needs to do. By default it should not return anything during normal execution. - * However, when an abnormal state is found, it should return an instance of CodeIgniter\HTTP\Response. If it does, - * script execution will end and that Response will be sent back to the client, allowing for error pages, redirects, - * etc. + * @param string[]|null $params * - * @param string[]|null $params - * @return RequestInterface|ResponseInterface|string|void + * @return RequestInterface|ResponseInterface|string|null */ #[Override] public function before(RequestInterface $request, $params = null) { if ($params === null) { - return; + return null; } if (in_array('verify-activitystream', $params, true)) { @@ -72,20 +68,18 @@ class FediverseFilter implements FilterInterface return service('response')->setStatusCode(401); } } - } - //-------------------------------------------------------------------- + return null; + } /** - * Allows After filters to inspect and modify the response object as needed. This method does not allow any way to - * stop execution of other after filters, short of throwing an Exception or Error. + * @param string[]|null $arguments * - * @param string[]|null $arguments + * @return ResponseInterface|null */ #[Override] - public function after(RequestInterface $request, ResponseInterface $response, $arguments = null): void + public function after(RequestInterface $request, ResponseInterface $response, $arguments = null) { + return null; } - - //-------------------------------------------------------------------- } diff --git a/modules/Fediverse/HttpSignature.php b/modules/Fediverse/HttpSignature.php index 3b9eccdc..145f0848 100644 --- a/modules/Fediverse/HttpSignature.php +++ b/modules/Fediverse/HttpSignature.php @@ -24,9 +24,6 @@ use phpseclib\Crypt\RSA; */ class HttpSignature { - /** - * @var string - */ private const string SIGNATURE_PATTERN = '/ (?=.*(keyId="(?Phttps?:\/\/[\w\-\.]+[\w]+(:[\d]+)?[\w\-\.#\/@]+)")) (?=.*(signature="(?P[\w+\/]+={0,2})")) @@ -36,7 +33,7 @@ class HttpSignature protected IncomingRequest $request; - public function __construct(IncomingRequest $request = null) + public function __construct(?IncomingRequest $request = null) { if (! $request instanceof IncomingRequest) { $request = service('request'); @@ -164,7 +161,7 @@ class HttpSignature string $publicKeyPem, string $data, string $signature, - string $algorithm = 'rsa-sha256' + string $algorithm = 'rsa-sha256', ): bool { if ($algorithm === 'rsa-sha512' || $algorithm === 'rsa-sha256') { $hash = substr($algorithm, strpos($algorithm, '-') + 1); diff --git a/modules/Fediverse/Models/ActivityModel.php b/modules/Fediverse/Models/ActivityModel.php index 548ee4a4..c06881ff 100644 --- a/modules/Fediverse/Models/ActivityModel.php +++ b/modules/Fediverse/Models/ActivityModel.php @@ -100,8 +100,8 @@ class ActivityModel extends UuidModel ?int $targetActorId, ?string $postId, string $payload, - DateTimeInterface $scheduledAt = null, - ?string $taskStatus = null + ?DateTimeInterface $scheduledAt = null, + ?string $taskStatus = null, ): BaseResult | int | string | false { return $this->insert( [ @@ -110,7 +110,7 @@ class ActivityModel extends UuidModel 'post_id' => $postId, 'type' => $type === 'Undo' ? $type . '_' . (json_decode( $payload, - true + true, ))['object']['type'] : $type, 'payload' => $payload, 'scheduled_at' => $scheduledAt, diff --git a/modules/Fediverse/Models/ActorModel.php b/modules/Fediverse/Models/ActorModel.php index 28079a62..065815dc 100644 --- a/modules/Fediverse/Models/ActorModel.php +++ b/modules/Fediverse/Models/ActorModel.php @@ -231,24 +231,24 @@ class ActorModel extends Model ->join( $tablePrefix . 'fediverse_posts', $tablePrefix . 'fediverse_actors.id = ' . $tablePrefix . 'fediverse_posts.actor_id', - 'left outer' + 'left outer', ) ->join( $tablePrefix . 'fediverse_favourites', $tablePrefix . 'fediverse_actors.id = ' . $tablePrefix . 'fediverse_favourites.actor_id', - 'left outer' + 'left outer', ) ->where($tablePrefix . 'fediverse_actors.domain', get_current_domain()) ->groupStart() ->where( "`{$tablePrefix}fediverse_posts`.`created_at` >= UTC_TIMESTAMP() - INTERVAL {$lastNumberOfMonths} month", null, - false + false, ) ->orWhere( "`{$tablePrefix}fediverse_favourites`.`created_at` >= UTC_TIMESTAMP() - INTERVAL {$lastNumberOfMonths} month", null, - false + false, ) ->groupEnd() ->get() diff --git a/modules/Fediverse/Models/PostModel.php b/modules/Fediverse/Models/PostModel.php index cec9dcf8..a1b4a54d 100644 --- a/modules/Fediverse/Models/PostModel.php +++ b/modules/Fediverse/Models/PostModel.php @@ -234,7 +234,7 @@ class PostModel extends UuidModel public function addPost( Post $post, bool $createPreviewCard = true, - bool $registerActivity = true + bool $registerActivity = true, ): bool|int|object|string { helper('fediverse'); @@ -327,6 +327,7 @@ class PostModel extends UuidModel // update published date in payload $newPayload = $scheduledActivity->payload; $newPayload->object->published = $updatedPost->published_at->format(DATE_W3C); + model('ActivityModel', false) ->update($scheduledActivity->id, [ 'payload' => json_encode($newPayload, JSON_THROW_ON_ERROR), @@ -431,7 +432,7 @@ class PostModel extends UuidModel public function addReply( Post $reply, bool $createPreviewCard = true, - bool $registerActivity = true + bool $registerActivity = true, ): string | false { if (! $reply->in_reply_to_id) { throw new Exception('Passed post is not a reply!'); diff --git a/modules/Fediverse/Objects/OrderedCollectionObject.php b/modules/Fediverse/Objects/OrderedCollectionObject.php index 11438361..5877de52 100644 --- a/modules/Fediverse/Objects/OrderedCollectionObject.php +++ b/modules/Fediverse/Objects/OrderedCollectionObject.php @@ -32,7 +32,7 @@ class OrderedCollectionObject extends ObjectType */ public function __construct( protected ?array $orderedItems = null, - ?Pager $pager = null + ?Pager $pager = null, ) { $this->id = current_url(); diff --git a/modules/Fediverse/WebFinger.php b/modules/Fediverse/WebFinger.php index f8d0b8c8..e07f5115 100644 --- a/modules/Fediverse/WebFinger.php +++ b/modules/Fediverse/WebFinger.php @@ -15,9 +15,6 @@ use Modules\Fediverse\Entities\Actor; class WebFinger { - /** - * @var string - */ private const string RESOURCE_PATTERN = '/^acct:(?P([\w_]+))@(?P([\w\-\.]+[\w]+)(:[\d]+)?)$/x'; protected string $username; @@ -39,7 +36,7 @@ class WebFinger protected array $links = []; public function __construct( - protected string $subject + protected string $subject, ) { // Split resource into its parts (username, domain) $parts = $this->splitResource($subject); diff --git a/modules/Install/Commands/CreateSuperadmin.php b/modules/Install/Commands/CreateSuperadmin.php index 7cf6a6ec..0dfdad71 100644 --- a/modules/Install/Commands/CreateSuperadmin.php +++ b/modules/Install/Commands/CreateSuperadmin.php @@ -74,7 +74,7 @@ class CreateSuperadmin extends BaseCommand $passwordConfirm = $this->prompt( 'Password confirmation', null, - $this->validationRules['password']['rules'] + $this->validationRules['password']['rules'], ); if ($password !== $passwordConfirm) { diff --git a/modules/Install/Config/Routes.php b/modules/Install/Config/Routes.php index b8620f85..481d01fd 100644 --- a/modules/Install/Config/Routes.php +++ b/modules/Install/Config/Routes.php @@ -35,5 +35,5 @@ $routes->group( 'as' => 'create-superadmin', ], ); - } + }, ); diff --git a/modules/Install/Controllers/InstallController.php b/modules/Install/Controllers/InstallController.php index 15bd9c6d..95425bf3 100644 --- a/modules/Install/Controllers/InstallController.php +++ b/modules/Install/Controllers/InstallController.php @@ -38,7 +38,7 @@ class InstallController extends Controller public function initController( RequestInterface $request, ResponseInterface $response, - LoggerInterface $logger + LoggerInterface $logger, ): void { // Do Not Edit This Line parent::initController($request, $response, $logger); @@ -347,7 +347,7 @@ class InstallController extends Controller return $line; }, - $envData + $envData, ); if (! $replaced) { diff --git a/modules/Media/Entities/Image.php b/modules/Media/Entities/Image.php index 2d88bd3a..02319af1 100644 --- a/modules/Media/Entities/Image.php +++ b/modules/Media/Entities/Image.php @@ -87,7 +87,7 @@ class Image extends BaseMedia if ($this->file_mimetype === 'image/jpeg' && $metadata = @exif_read_data( $file->getRealPath(), null, - true + true, )) { $metadata['sizes'] = $this->attributes['sizes']; $this->attributes['file_size'] = $metadata['FILE']['FileSize']; diff --git a/modules/Media/FileManagers/FS.php b/modules/Media/FileManagers/FS.php index e58001df..8fbb918e 100644 --- a/modules/Media/FileManagers/FS.php +++ b/modules/Media/FileManagers/FS.php @@ -12,9 +12,8 @@ use Override; class FS implements FileManagerInterface { public function __construct( - protected MediaConfig $config + protected MediaConfig $config, ) { - $this->config = $config; } /** diff --git a/modules/Media/FileManagers/S3.php b/modules/Media/FileManagers/S3.php index ef96de59..f31a25c3 100644 --- a/modules/Media/FileManagers/S3.php +++ b/modules/Media/FileManagers/S3.php @@ -16,7 +16,7 @@ class S3 implements FileManagerInterface public S3Client $s3; public function __construct( - protected MediaConfig $config + protected MediaConfig $config, ) { $this->s3 = new S3Client([ 'version' => 'latest', diff --git a/modules/Media/Helpers/url_helper.php b/modules/Media/Helpers/url_helper.php index aba33540..e9cbcdc2 100644 --- a/modules/Media/Helpers/url_helper.php +++ b/modules/Media/Helpers/url_helper.php @@ -24,7 +24,7 @@ if (! function_exists('media_url')) { $uri->getAuthority(), $uri->getPath(), $uri->getQuery(), - $uri->getFragment() + $uri->getFragment(), ); } } diff --git a/modules/Media/Models/MediaModel.php b/modules/Media/Models/MediaModel.php index 78d1ce97..d6b948a6 100644 --- a/modules/Media/Models/MediaModel.php +++ b/modules/Media/Models/MediaModel.php @@ -81,8 +81,8 @@ class MediaModel extends Model */ public function __construct( protected string $fileType = 'document', - ConnectionInterface &$db = null, - ValidationInterface $validation = null + ?ConnectionInterface &$db = null, + ?ValidationInterface $validation = null, ) { $this->returnType = match ($fileType) { 'audio' => Audio::class, @@ -90,7 +90,7 @@ class MediaModel extends Model 'image' => Image::class, 'transcript' => Transcript::class, 'chapters' => Chapters::class, - default => Document::class + default => Document::class, }; parent::__construct($db, $validation); diff --git a/modules/MediaClipper/VideoClipper.php b/modules/MediaClipper/VideoClipper.php index 96653088..039a2b33 100644 --- a/modules/MediaClipper/VideoClipper.php +++ b/modules/MediaClipper/VideoClipper.php @@ -96,7 +96,7 @@ class VideoClipper if (! $tempFile) { throw new Exception( - 'Could not create temporary files, check for permissions on your ' . WRITEPATH . 'temp folder.' + 'Could not create temporary files, check for permissions on your ' . WRITEPATH . 'temp folder.', ); } @@ -233,11 +233,11 @@ class VideoClipper '[m][a]alphamerge[waves_t3]', "[waves_t3]scale={$this->dimensions['soundwaves']['rescaleWidth']}:{$this->dimensions['soundwaves']['rescaleHeight']},lutrgb=r='if(gt(val,100),{$this->colors['soundwaves'][0]},val)':g='if(gt(val,100),{$this->colors['soundwaves'][1]},val)':b='if(gt(val,100),{$this->colors['soundwaves'][2]},val)'[waves_final]", "[1:v][waves_final]overlay=x={$this->dimensions['soundwaves']['x']}:y={$this->dimensions['soundwaves']['y']}:shortest=1,drawtext=fontfile=" . $this->getFont( - 'timestamp' + 'timestamp', ) . ":text='%{pts\:gmtime\:{$this->start}\:%H\\\\\\\\\\:%M\\\\\\\\\\:%S\}':x={$this->dimensions['timestamp']['x']}:y={$this->dimensions['timestamp']['y']}:fontsize={$this->dimensions['timestamp']['fontsize']}:fontcolor=0x{$this->colors['timestampText']}:box=1:boxcolor=0x{$this->colors['timestampBg']}:boxborderw={$this->dimensions['timestamp']['padding']}[v3]", "color=c=0x{$this->colors['progressbar']}:s={$this->dimensions['width']}x{$this->dimensions['progressbar']['height']}[progressbar]", "[v3][progressbar]overlay=-w+(w/{$this->duration})*t:0:shortest=1:format=rgb,subtitles={$this->subtitlesClipOutput}:fontsdir=" . config( - 'MediaClipper' + 'MediaClipper', )->fontsFolder . ":force_style='Fontname=" . self::FONTS['subtitles'] . ",Alignment=5,Fontsize={$this->dimensions['subtitles']['fontsize']},PrimaryColour=&H{$this->colors['subtitles']}&,BorderStyle=1,Outline=0,Shadow=0,MarginL={$this->dimensions['subtitles']['marginL']},MarginR={$this->dimensions['subtitles']['marginR']},MarginV={$this->dimensions['subtitles']['marginV']}'[outv]", "[6:v]scale={$this->dimensions['watermark']['width']}:{$this->dimensions['watermark']['height']}[watermark]", "color=0x{$this->colors['watermarkBg']}:{$this->dimensions['watermark']['width']}x{$this->dimensions['watermark']['height']}[over]", @@ -313,7 +313,7 @@ class VideoClipper $scaledEpisodeCover = $this->scaleImage( $episodeCover, $this->dimensions['cover']['width'], - $this->dimensions['cover']['height'] + $this->dimensions['cover']['height'], ); if (! $scaledEpisodeCover) { @@ -332,7 +332,7 @@ class VideoClipper $this->dimensions['cover']['x'], $this->dimensions['cover']['y'], $this->dimensions['cover']['width'], - $this->dimensions['cover']['height'] + $this->dimensions['cover']['height'], ); if (! $isOverlaid) { @@ -357,13 +357,13 @@ class VideoClipper $this->dimensions['episodeTitle']['fontsize'], 0, $this->getFont('episodeTitle'), - $this->episode->title + $this->episode->title, ); $episodeNumberingBox = $this->calculateTextBox( $this->dimensions['episodeNumbering']['fontsize'], 0, $this->getFont('episodeNumbering'), - $this->episodeNumbering + $this->episodeNumbering, ); if (! $episodeTitleBox || ! $episodeNumberingBox) { return false; @@ -419,7 +419,7 @@ class VideoClipper $scaledQuotes = $this->scaleImage( $cleanedQuotes, $this->dimensions['quotes']['width'], - $this->dimensions['quotes']['height'] + $this->dimensions['quotes']['height'], ); if (! $scaledQuotes) { @@ -433,7 +433,7 @@ class VideoClipper $this->dimensions['quotes']['x'], $this->dimensions['quotes']['y'], $this->dimensions['quotes']['width'], - $this->dimensions['quotes']['height'] + $this->dimensions['quotes']['height'], ); // Save Image @@ -606,7 +606,7 @@ class VideoClipper int $x, int $y, int $width, - int $height + int $height, ): bool { return imagecopy($background, $foreground, $x, $y, 0, 0, $width, $height); } @@ -646,7 +646,7 @@ class VideoClipper $y + $fontsize + ($leading * $i), $textColor, $fontPath, - $line + $line, ); } diff --git a/modules/Platforms/Config/Routes.php b/modules/Platforms/Config/Routes.php index fb64efc7..06284656 100644 --- a/modules/Platforms/Config/Routes.php +++ b/modules/Platforms/Config/Routes.php @@ -60,5 +60,5 @@ $routes->group( ], ); }); - } + }, ); diff --git a/modules/Plugins/Commands/CreatePlugin.php b/modules/Plugins/Commands/CreatePlugin.php index 8a6e28ce..57141a5d 100644 --- a/modules/Plugins/Commands/CreatePlugin.php +++ b/modules/Plugins/Commands/CreatePlugin.php @@ -71,7 +71,7 @@ class CreatePlugin extends BaseCommand $pluginName = CLI::prompt( 'Plugin name (/)', 'acme/hello-world', - Manifest::$validation_rules['name'] + Manifest::$validation_rules['name'], ); CLI::newLine(); $description = CLI::prompt('Description', '', Manifest::$validation_rules['description']); @@ -111,19 +111,19 @@ class CreatePlugin extends BaseCommand $manifestContents = str_replace( '"description": ""', '"description": "' . $description . '"', - $manifestContents + $manifestContents, ); $manifestContents = str_replace('"license": ""', '"license": "' . $license . '"', $manifestContents); $manifestContents = str_replace( '"hooks": []', '"hooks": ["' . implode('", "', $hooks) . '"]', - $manifestContents + $manifestContents, ); $pluginClassName = str_replace( ' ', '', - ucwords(str_replace(['-', '_', '.'], ' ', $vendor . ' ' . $name)) . 'Plugin' + ucwords(str_replace(['-', '_', '.'], ' ', $vendor . ' ' . $name)) . 'Plugin', ); $pluginClassContents = str_replace('class Plugin', 'class ' . $pluginClassName, $pluginClassTemplate); @@ -153,7 +153,7 @@ class CreatePlugin extends BaseCommand CLI::newLine(1); CLI::write( sprintf('Plugin %s created in %s', CLI::color($pluginName, 'white'), CLI::color($pluginDirectory, 'white')), - 'green' + 'green', ); } } diff --git a/modules/Plugins/Config/Routes.php b/modules/Plugins/Config/Routes.php index 3f7880ce..61ea5d5c 100644 --- a/modules/Plugins/Config/Routes.php +++ b/modules/Plugins/Config/Routes.php @@ -65,5 +65,5 @@ $routes->group( ]); }); }); - } + }, ); diff --git a/modules/Plugins/Controllers/PluginController.php b/modules/Plugins/Controllers/PluginController.php index 78a0b252..95c8e5be 100644 --- a/modules/Plugins/Controllers/PluginController.php +++ b/modules/Plugins/Controllers/PluginController.php @@ -84,8 +84,8 @@ class PluginController extends BaseController public function settingsView( string $vendor, string $package, - string $podcastId = null, - string $episodeId = null + ?string $podcastId = null, + ?string $episodeId = null, ): string { $plugin = $this->plugins->getPlugin($vendor, $package); @@ -152,8 +152,8 @@ class PluginController extends BaseController public function settingsAction( string $vendor, string $package, - string $podcastId = null, - string $episodeId = null + ?string $podcastId = null, + ?string $episodeId = null, ): RedirectResponse { $plugin = $this->plugins->getPlugin($vendor, $package); @@ -350,7 +350,7 @@ class PluginController extends BaseController 'datetime' => Time::createFromFormat( 'Y-m-d H:i', $value, - $this->request->getPost('client_timezone') + $this->request->getPost('client_timezone'), )->setTimezone(app_timezone()), 'markdown' => new Markdown($value), 'rss' => new RSS($value), diff --git a/modules/Plugins/Core/BasePlugin.php b/modules/Plugins/Core/BasePlugin.php index 27734dbb..bd3f67a5 100644 --- a/modules/Plugins/Core/BasePlugin.php +++ b/modules/Plugins/Core/BasePlugin.php @@ -45,7 +45,7 @@ abstract class BasePlugin implements PluginInterface public function __construct( protected string $vendor, protected string $package, - protected string $directory + protected string $directory, ) { $this->key = sprintf('%s/%s', $vendor, $package); @@ -59,7 +59,7 @@ abstract class BasePlugin implements PluginInterface if ($this->manifest->minCastopodVersion !== null && version_compare( CP_VERSION, $this->manifest->minCastopodVersion, - '<' + '<', )) { $this->status = PluginStatus::INCOMPATIBLE; } else { @@ -342,7 +342,7 @@ abstract class BasePlugin implements PluginInterface return 'data:image/svg+xml;utf8,' . str_replace( ['%20', '%22', '%27', '%3D'], [' ', "'", "'", '='], - $encodedIcon + $encodedIcon, ); } @@ -369,13 +369,13 @@ abstract class BasePlugin implements PluginInterface DocumentParsedEvent::class, static function (DocumentParsedEvent $event): void { (new ExternalLinkProcessor())->onDocumentParsed($event); - } + }, ); $environment->addEventListener( DocumentParsedEvent::class, static function (DocumentParsedEvent $event): void { (new ExternalImageProcessor())->onDocumentParsed($event); - } + }, ); $converter = new MarkdownConverter($environment); diff --git a/modules/Plugins/Core/Markdown.php b/modules/Plugins/Core/Markdown.php index 318a8562..2e6b1af7 100644 --- a/modules/Plugins/Core/Markdown.php +++ b/modules/Plugins/Core/Markdown.php @@ -16,7 +16,7 @@ use Stringable; class Markdown implements Stringable { public function __construct( - protected string $markdown + protected string $markdown, ) { } diff --git a/modules/Plugins/Core/Plugins.php b/modules/Plugins/Core/Plugins.php index 29b9eb0f..eb0a9771 100644 --- a/modules/Plugins/Core/Plugins.php +++ b/modules/Plugins/Core/Plugins.php @@ -76,7 +76,7 @@ class Plugins protected static int $activeCount = 0; public function __construct( - protected PluginsConfig $config + protected PluginsConfig $config, ) { helper('plugins'); @@ -235,7 +235,7 @@ class Plugins /** * @param ?array{'podcast'|'episode',int} $additionalContext */ - public function setOption(BasePlugin $plugin, string $name, mixed $value, array $additionalContext = null): void + public function setOption(BasePlugin $plugin, string $name, mixed $value, ?array $additionalContext = null): void { set_plugin_setting($plugin->getKey(), $name, $value, $additionalContext); } @@ -294,7 +294,7 @@ class Plugins $className = str_replace( ' ', '', - ucwords(str_replace(['-', '_', '.'], ' ', $vendor . ' ' . $package)) . 'Plugin' + ucwords(str_replace(['-', '_', '.'], ' ', $vendor . ' ' . $package)) . 'Plugin', ); $pluginFile = $pluginDirectory . DIRECTORY_SEPARATOR . 'Plugin.php'; diff --git a/modules/Plugins/Core/RSS.php b/modules/Plugins/Core/RSS.php index e7332afa..36a96fe7 100644 --- a/modules/Plugins/Core/RSS.php +++ b/modules/Plugins/Core/RSS.php @@ -12,7 +12,7 @@ use Stringable; class RSS implements Stringable { public function __construct( - protected string $rss + protected string $rss, ) { } diff --git a/modules/Plugins/Helpers/plugins_helper.php b/modules/Plugins/Helpers/plugins_helper.php index 7fa36c39..3a2c926d 100644 --- a/modules/Plugins/Helpers/plugins_helper.php +++ b/modules/Plugins/Helpers/plugins_helper.php @@ -15,7 +15,7 @@ if (! function_exists('get_plugin_setting')) { /** * @param ?array{'podcast'|'episode',int} $additionalContext */ - function get_plugin_setting(string $pluginKey, string $option, array $additionalContext = null): mixed + function get_plugin_setting(string $pluginKey, string $option, ?array $additionalContext = null): mixed { $key = sprintf('Plugins.%s', $option); $context = sprintf('plugin:%s', $pluginKey); @@ -36,7 +36,7 @@ if (! function_exists('set_plugin_setting')) { string $pluginKey, string $option, mixed $value = null, - array $additionalContext = null + ?array $additionalContext = null, ): void { $key = sprintf('Plugins.%s', $option); $context = sprintf('plugin:%s', $pluginKey); diff --git a/modules/Plugins/Manifest/ManifestObject.php b/modules/Plugins/Manifest/ManifestObject.php index a5f46113..4070d24f 100644 --- a/modules/Plugins/Manifest/ManifestObject.php +++ b/modules/Plugins/Manifest/ManifestObject.php @@ -116,7 +116,7 @@ abstract class ManifestObject foreach ($value as $valueKey => $valueElement) { if (is_subclass_of($cast[0], self::class)) { $manifestClass = $cast[0] === Field::class ? $this->getFieldClass( - $valueElement + $valueElement, ) : $cast[0]; $value[$valueKey] = new $manifestClass($this->pluginKey); $value[$valueKey]->loadData($valueElement); @@ -160,7 +160,7 @@ abstract class ManifestObject return rtrim(Field::class, "\Field") . '\\Fields\\' . str_replace( ' ', '', - ucwords(str_replace('-', ' ', $fieldType)) + ucwords(str_replace('-', ' ', $fieldType)), ); } } diff --git a/modules/Plugins/Manifest/manifest.schema.json b/modules/Plugins/Manifest/manifest.schema.json index fe474390..71c71980 100644 --- a/modules/Plugins/Manifest/manifest.schema.json +++ b/modules/Plugins/Manifest/manifest.schema.json @@ -204,7 +204,6 @@ "optional": { "type": "boolean" }, - "validationRules": { "anyOf": [ { diff --git a/modules/PodcastImport/Commands/PodcastImport.php b/modules/PodcastImport/Commands/PodcastImport.php index 3479cc06..2bd3f9e9 100644 --- a/modules/PodcastImport/Commands/PodcastImport.php +++ b/modules/PodcastImport/Commands/PodcastImport.php @@ -51,7 +51,7 @@ class PodcastImport extends BaseCommand $importQueue = get_import_tasks(); $currentImport = current( - array_filter($importQueue, static fn ($task): bool => $task->status === TaskStatus::Running) + array_filter($importQueue, static fn ($task): bool => $task->status === TaskStatus::Running), ); if ($currentImport instanceof PodcastImportTask) { @@ -104,7 +104,7 @@ class PodcastImport extends BaseCommand CLI::write('All good! Feed was parsed successfully!'); CLI::write( - 'Starting import for @' . $this->importTask->handle . ' using feed: ' . $this->importTask->feed_url + 'Starting import for @' . $this->importTask->handle . ' using feed: ' . $this->importTask->feed_url, ); // --- START IMPORT TASK --- @@ -155,7 +155,7 @@ class PodcastImport extends BaseCommand // set podcast publication date to the first ever published episode $this->podcast->published_at = $this->getOldestEpisodePublicationDate( - $this->podcast->id + $this->podcast->id, ) ?? $this->podcast->created_at; $podcastModel = new PodcastModel(); @@ -171,7 +171,7 @@ class PodcastImport extends BaseCommand $this->error($exception->getMessage()); log_message( 'critical', - 'Error when importing ' . $this->importTask?->feed_url . PHP_EOL . $exception->getMessage() . PHP_EOL . $exception->getTraceAsString() + 'Error when importing ' . $this->importTask?->feed_url . PHP_EOL . $exception->getMessage() . PHP_EOL . $exception->getTraceAsString(), ); } } @@ -213,13 +213,13 @@ class PodcastImport extends BaseCommand if (($ownerName = $this->podcastFeed->channel->itunes_owner->itunes_name->getValue()) === null) { throw new Exception( - 'Missing podcast owner name. Please include an tag inside the tag.' + 'Missing podcast owner name. Please include an tag inside the tag.', ); } if (($ownerEmail = $this->podcastFeed->channel->itunes_owner->itunes_email->getValue()) === null) { throw new Exception( - 'Missing podcast owner email. Please include an tag inside the tag.' + 'Missing podcast owner email. Please include an tag inside the tag.', ); } @@ -351,7 +351,7 @@ class PodcastImport extends BaseCommand $this->podcast->id, $newPersonId, $personGroupSlug, - $personRoleSlug + $personRoleSlug, )) { throw new Exception(print_r($podcastPersonModel->errors(), true)); } @@ -474,12 +474,12 @@ class PodcastImport extends BaseCommand 'podcast_id' => $this->podcast->id, 'title' => $item->title->getValue(), 'slug' => slugify((string) $item->title->getValue(), 120) . '-' . strtolower( - random_string('alnum', 5) + random_string('alnum', 5), ), 'guid' => $item->guid->getValue(), 'audio' => download_file( $item->enclosure->getAttribute('url'), - $item->enclosure->getAttribute('type') + $item->enclosure->getAttribute('type'), ), 'description_markdown' => $htmlConverter->convert($showNotes), 'description_html' => $showNotes, @@ -572,7 +572,7 @@ class PodcastImport extends BaseCommand $episodeId, $newPersonId, $personGroupSlug, - $personRoleSlug + $personRoleSlug, )) { throw new Exception(print_r($episodePersonModel->errors(), true)); } diff --git a/modules/PodcastImport/Config/Routes.php b/modules/PodcastImport/Config/Routes.php index ed936369..ede5be52 100644 --- a/modules/PodcastImport/Config/Routes.php +++ b/modules/PodcastImport/Config/Routes.php @@ -46,5 +46,5 @@ $routes->group( 'filter' => 'permission:podcast$1.manage-import', ]); }); - } + }, ); diff --git a/modules/PodcastImport/Helpers/podcast_import_helper.php b/modules/PodcastImport/Helpers/podcast_import_helper.php index 29a8bda0..6d086bcf 100644 --- a/modules/PodcastImport/Helpers/podcast_import_helper.php +++ b/modules/PodcastImport/Helpers/podcast_import_helper.php @@ -24,7 +24,7 @@ if (! function_exists('get_import_tasks')) { if ($podcastHandle !== null) { $podcastImportsQueue = array_filter( $podcastImportsQueue, - static fn ($importTask): bool => $importTask->handle === $podcastHandle + static fn ($importTask): bool => $importTask->handle === $podcastHandle, ); } diff --git a/modules/PremiumPodcasts/Config/Routes.php b/modules/PremiumPodcasts/Config/Routes.php index e9501417..80d19586 100644 --- a/modules/PremiumPodcasts/Config/Routes.php +++ b/modules/PremiumPodcasts/Config/Routes.php @@ -66,7 +66,7 @@ $routes->group( [ 'as' => 'subscription-regenerate-token', 'filter' => 'permission:podcast$1.manage-subscriptions', - ] + ], ); $routes->get( 'suspend', @@ -108,7 +108,7 @@ $routes->group( ); }); }); - } + }, ); $routes->group( @@ -126,5 +126,5 @@ $routes->group( $routes->get('lock', 'LockController::lockAction/$1', [ 'as' => 'premium-podcast-lock', ]); - } + }, ); diff --git a/modules/PremiumPodcasts/Config/Services.php b/modules/PremiumPodcasts/Config/Services.php index fb9ec7c0..9ca49df7 100644 --- a/modules/PremiumPodcasts/Config/Services.php +++ b/modules/PremiumPodcasts/Config/Services.php @@ -12,7 +12,7 @@ class Services extends BaseService { public static function premium_podcasts( ?SubscriptionModel $subscriptionModel = null, - bool $getShared = true + bool $getShared = true, ): PremiumPodcasts { if ($getShared) { return self::getSharedInstance('premium_podcasts', $subscriptionModel); diff --git a/modules/PremiumPodcasts/Controllers/SubscriptionController.php b/modules/PremiumPodcasts/Controllers/SubscriptionController.php index 1088a331..4a5d38a5 100644 --- a/modules/PremiumPodcasts/Controllers/SubscriptionController.php +++ b/modules/PremiumPodcasts/Controllers/SubscriptionController.php @@ -43,7 +43,7 @@ class SubscriptionController extends BaseController } if (! ($this->subscription = (new SubscriptionModel())->getSubscriptionById( - (int) $params[1] + (int) $params[1], )) instanceof Subscription) { throw PageNotFoundException::forPageNotFound(); } @@ -86,7 +86,7 @@ class SubscriptionController extends BaseController return redirect()->route('subscription-list', [$this->podcast->id])->with( 'message', - lang('Subscription.messages.linkRemoveSuccess') + lang('Subscription.messages.linkRemoveSuccess'), ); } @@ -99,7 +99,7 @@ class SubscriptionController extends BaseController return redirect()->route('subscription-list', [$this->podcast->id])->with( 'message', - lang('Subscription.messages.linkSaveSuccess') + lang('Subscription.messages.linkSaveSuccess'), ); } @@ -183,7 +183,7 @@ class SubscriptionController extends BaseController $db->transRollback(); return redirect()->route('subscription-list', [$this->podcast->id])->with( 'errors', - [lang('Subscription.messages.addError'), $email->printDebugger([])] + [lang('Subscription.messages.addError'), $email->printDebugger([])], ); } @@ -193,7 +193,7 @@ class SubscriptionController extends BaseController 'message', lang('Subscription.messages.addSuccess', [ 'subscriber' => $newSubscription->email, - ]) + ]), ); } @@ -230,7 +230,7 @@ class SubscriptionController extends BaseController $db->transRollback(); return redirect()->route('subscription-list', [$this->podcast->id])->with( 'errors', - [lang('Subscription.messages.regenerateTokenError'), $email->printDebugger([])] + [lang('Subscription.messages.regenerateTokenError'), $email->printDebugger([])], ); } @@ -240,7 +240,7 @@ class SubscriptionController extends BaseController 'message', lang('Subscription.messages.regenerateTokenSuccess', [ 'subscriber' => $this->subscription->email, - ]) + ]), ); } @@ -299,7 +299,7 @@ class SubscriptionController extends BaseController $db->transRollback(); return redirect()->route('subscription-list', [$this->podcast->id])->with( 'errors', - [lang('Subscription.messages.editError'), $email->printDebugger([])] + [lang('Subscription.messages.editError'), $email->printDebugger([])], ); } @@ -309,7 +309,7 @@ class SubscriptionController extends BaseController 'message', lang('Subscription.messages.editSuccess', [ 'subscriber' => $this->subscription->email, - ]) + ]), ); } @@ -355,7 +355,7 @@ class SubscriptionController extends BaseController $db->transRollback(); return redirect()->route('subscription-list', [$this->podcast->id])->with( 'errors', - [lang('Subscription.messages.suspendError'), $email->printDebugger([])] + [lang('Subscription.messages.suspendError'), $email->printDebugger([])], ); } @@ -365,7 +365,7 @@ class SubscriptionController extends BaseController 'messages', lang('Subscription.messages.suspendSuccess', [ 'subscriber' => $this->subscription->email, - ]) + ]), ); } @@ -395,7 +395,7 @@ class SubscriptionController extends BaseController $db->transRollback(); return redirect()->route('subscription-list', [$this->podcast->id])->with( 'errors', - [lang('Subscription.messages.resumeError'), $email->printDebugger([])] + [lang('Subscription.messages.resumeError'), $email->printDebugger([])], ); } @@ -405,7 +405,7 @@ class SubscriptionController extends BaseController 'message', lang('Subscription.messages.resumeSuccess', [ 'subscriber' => $this->subscription->email, - ]) + ]), ); } @@ -445,7 +445,7 @@ class SubscriptionController extends BaseController $db->transRollback(); return redirect()->route('subscription-list', [$this->podcast->id])->with( 'errors', - [lang('Subscription.messages.deleteError'), $email->printDebugger([])] + [lang('Subscription.messages.deleteError'), $email->printDebugger([])], ); } @@ -455,7 +455,7 @@ class SubscriptionController extends BaseController 'messages', lang('Subscription.messages.deleteSuccess', [ 'subscriber' => $this->subscription->email, - ]) + ]), ); } } diff --git a/modules/PremiumPodcasts/Entities/Subscription.php b/modules/PremiumPodcasts/Entities/Subscription.php index 99ead690..0de27443 100644 --- a/modules/PremiumPodcasts/Entities/Subscription.php +++ b/modules/PremiumPodcasts/Entities/Subscription.php @@ -115,7 +115,7 @@ class Subscription extends Entity { return (new AnalyticsPodcastBySubscriptionModel())->getNumberOfDownloadsLast3Months( $this->podcast_id, - $this->id + $this->id, ); } } diff --git a/modules/PremiumPodcasts/Filters/PodcastUnlockFilter.php b/modules/PremiumPodcasts/Filters/PodcastUnlockFilter.php index cb8d3f56..cc2495c2 100644 --- a/modules/PremiumPodcasts/Filters/PodcastUnlockFilter.php +++ b/modules/PremiumPodcasts/Filters/PodcastUnlockFilter.php @@ -20,7 +20,7 @@ class PodcastUnlockFilter implements FilterInterface * * @param string[]|null $arguments * - * @return RequestInterface|ResponseInterface|string|void + * @return RequestInterface|ResponseInterface|string|null */ #[Override] public function before(RequestInterface $request, $arguments = null) @@ -34,55 +34,61 @@ class PodcastUnlockFilter implements FilterInterface $routerParams = $router->params(); if ($routerParams === []) { - return; + return null; } // no need to go through the unlock form if user is connected if (auth()->loggedIn()) { - return; + return null; } // Make sure this isn't already a premium podcast route if (url_is((string) route_to('premium-podcast-unlock', $routerParams[0]))) { - return; + return null; } // expect 2 parameters (podcast handle and episode slug) if (count($routerParams) < 2) { - return; + return null; } $episode = (new EpisodeModel())->getEpisodeBySlug($routerParams[0], $routerParams[1]); if (! $episode instanceof Episode) { - return; + return null; } // Make sure that public episodes are still accessible if (! $episode->is_premium) { - return; + return null; } // Episode should be embeddable even if it is premium if (url_is((string) route_to('embed', $episode->podcast->handle, $episode->slug))) { - return; + return null; } - // if podcast is locked then send to the unlock form /** @var PremiumPodcasts $premiumPodcasts */ $premiumPodcasts = service('premium_podcasts'); - if (! $premiumPodcasts->check($routerParams[0])) { - session()->set('redirect_url', current_url()); - - return redirect()->route('premium-podcast-unlock', [$routerParams[0]]); + if ($premiumPodcasts->check($routerParams[0])) { + return null; } + + // podcast is locked, send to the unlock form + session() + ->set('redirect_url', current_url()); + + return redirect()->route('premium-podcast-unlock', [$routerParams[0]]); } /** - * @param string[]|null $arguments + * @param list|null $arguments + * + * @return ResponseInterface|null */ #[Override] - public function after(RequestInterface $request, ResponseInterface $response, $arguments = null): void + public function after(RequestInterface $request, ResponseInterface $response, $arguments = null) { + return null; } } diff --git a/modules/PremiumPodcasts/PremiumPodcasts.php b/modules/PremiumPodcasts/PremiumPodcasts.php index e1469d97..036b6f05 100644 --- a/modules/PremiumPodcasts/PremiumPodcasts.php +++ b/modules/PremiumPodcasts/PremiumPodcasts.php @@ -63,7 +63,7 @@ class PremiumPodcasts { if (array_key_exists( $podcastHandle, - $this->subscriptions + $this->subscriptions, ) && ($this->subscriptions[$podcastHandle] instanceof Subscription)) { return true; } @@ -86,7 +86,7 @@ class PremiumPodcasts // Store the current subscription object $this->subscriptions[$podcastHandle] = $this->subscriptionModel->getSubscriptionById( - $this->subscriptions[$podcastHandle]->id + $this->subscriptions[$podcastHandle]->id, ); if (! $this->subscriptions[$podcastHandle] instanceof Subscription) { diff --git a/modules/WebSub/Commands/Publish.php b/modules/WebSub/Commands/Publish.php index 9ecd6bfd..4bdee5a4 100644 --- a/modules/WebSub/Commands/Publish.php +++ b/modules/WebSub/Commands/Publish.php @@ -72,7 +72,7 @@ class Publish extends BaseCommand } catch (Exception $exception) { log_message( 'warning', - "COULD NOT PUBLISH @{$podcast->handle} ON {$hub}" . PHP_EOL . $exception->getMessage() + "COULD NOT PUBLISH @{$podcast->handle} ON {$hub}" . PHP_EOL . $exception->getMessage(), ); } } diff --git a/package.json b/package.json index 091973a3..b9a95d6b 100644 --- a/package.json +++ b/package.json @@ -14,14 +14,14 @@ "build": "tsc && vite build", "serve": "vite preview", "build:static": "pnpm run build:icons && pnpm run build:svg", - "build:icons": "svgo -f app/Resources/icons -o app/Resources/icons -r --config=./.svgo.icons.cjs", - "build:svg": "svgo -f app/Resources/images -o public/assets/images -r --config=./.svgo.cjs", + "build:icons": "svgo -f resources/icons -o resources/icons -r --config=./.svgo.icons.cjs", + "build:svg": "svgo -f resources/static/images -o resources/static/images -r --config=./.svgo.cjs", "lint": "eslint", "lint:fix": "eslint --fix", - "lint:css": "stylelint -f verbose \"app/Resources/**/*.css\"", - "lint:css:fix": "stylelint -f verbose --fix \"app/Resources/**/*.css\"", + "lint:css": "stylelint -f verbose \"resources/**/*.css\"", + "lint:css:fix": "stylelint -f verbose --fix \"resources/**/*.css\"", "prettier": "prettier --check .", - "prettier:fix": "prettier --write .", + "format": "prettier --write .", "typecheck": "tsc", "all-contributors:add": "all-contributors add", "all-contributors:generate": "all-contributors generate", @@ -30,75 +30,79 @@ "prepare": "is-ci || husky" }, "dependencies": { - "@amcharts/amcharts4": "^4.10.39", + "@amcharts/amcharts4": "^4.10.40", "@amcharts/amcharts4-geodata": "^4.1.30", - "@codemirror/commands": "^6.7.1", + "@codemirror/commands": "^6.8.0", "@codemirror/lang-html": "^6.4.9", "@codemirror/lang-xml": "^6.1.0", - "@codemirror/language": "^6.10.8", - "@codemirror/state": "^6.5.0", - "@codemirror/view": "^6.36.1", - "@floating-ui/dom": "^1.6.12", + "@codemirror/language": "^6.11.0", + "@codemirror/state": "^6.5.2", + "@codemirror/view": "^6.36.4", + "@floating-ui/dom": "^1.6.13", "@github/clipboard-copy-element": "^1.3.0", "@github/hotkey": "^3.1.1", "@github/markdown-toolbar-element": "^2.2.3", - "@github/relative-time-element": "^4.4.4", + "@github/relative-time-element": "^4.4.5", "@patternfly/elements": "^4.0.2", "@vime/core": "^5.4.1", - "choices.js": "^11.0.3", + "choices.js": "^11.1.0", "codemirror": "^6.0.1", "flatpickr": "^4.6.13", - "htmlfy": "^0.5.0", + "htmlfy": "^0.6.2", "leaflet": "^1.9.4", "leaflet.markercluster": "^1.5.3", "lit": "^3.2.1", - "marked": "^15.0.4", - "wavesurfer.js": "^7.8.14", - "xml-formatter": "^3.6.3" + "marked": "^15.0.7", + "wavesurfer.js": "^7.9.1", + "xml-formatter": "^3.6.4" }, "devDependencies": { - "@commitlint/cli": "^19.6.1", - "@commitlint/config-conventional": "^19.6.0", + "@commitlint/cli": "^19.8.0", + "@commitlint/config-conventional": "^19.8.0", "@csstools/css-tokenizer": "^3.0.3", - "@eslint/eslintrc": "^3.2.0", - "@eslint/js": "^9.17.0", + "@eslint/eslintrc": "^3.3.0", + "@eslint/js": "^9.22.0", "@semantic-release/changelog": "^6.0.3", - "@semantic-release/exec": "^6.0.3", + "@semantic-release/exec": "^7.0.3", "@semantic-release/git": "^10.0.1", - "@semantic-release/gitlab": "^13.2.3", - "@tailwindcss/forms": "^0.5.9", - "@tailwindcss/typography": "^0.5.15", - "@types/eslint__js": "^8.42.3", - "@types/leaflet": "^1.9.15", + "@semantic-release/gitlab": "^13.2.4", + "@tailwindcss/forms": "^0.5.10", + "@tailwindcss/typography": "^0.5.16", + "@types/leaflet": "^1.9.16", "all-contributors-cli": "^6.26.1", "commitizen": "^4.3.1", "conventional-changelog-conventionalcommits": "^8.0.0", "cross-env": "^7.0.3", "cssnano": "^7.0.6", "cz-conventional-changelog": "^3.3.0", - "eslint-config-prettier": "^9.1.0", - "eslint-plugin-prettier": "^5.2.1", - "eslint": "^9.17.0", - "globals": "^15.14.0", + "eslint": "^9.22.0", + "eslint-config-prettier": "^10.1.1", + "eslint-plugin-prettier": "^5.2.3", + "glob": "^11.0.1", + "globals": "^16.0.0", "husky": "^9.1.7", "is-ci": "^4.1.0", - "lint-staged": "^15.3.0", + "lint-staged": "^15.5.0", + "postcss": "^8.5.3", "postcss-import": "^16.1.0", "postcss-nesting": "^13.0.1", - "postcss-preset-env": "^10.1.3", + "postcss-preset-env": "^10.1.5", "postcss-reporter": "^7.1.0", - "postcss": "^8.4.49", + "prettier": "3.5.3", "prettier-plugin-organize-imports": "^4.1.0", - "prettier": "3.4.2", - "semantic-release": "^24.2.0", - "stylelint-config-standard": "^36.0.1", - "stylelint": "^16.12.0", + "semantic-release": "^24.2.3", + "sharp": "^0.33.5", + "stylelint": "^16.15.0", + "stylelint-config-standard": "^37.0.0", "svgo": "^3.3.2", "tailwindcss": "^3.4.17", - "typescript-eslint": "^8.18.2", - "typescript": "~5.7.2", + "typescript": "~5.7.3", + "typescript-eslint": "^8.26.1", + "vite": "^6.2.2", + "vite-plugin-codeigniter": "^1.0.1", + "vite-plugin-inspect": "^11.0.0", "vite-plugin-pwa": "^0.21.1", - "vite": "^6.0.6", + "vite-plugin-static-copy": "^2.3.0", "workbox-build": "^7.3.0", "workbox-core": "^7.3.0", "workbox-routing": "^7.3.0", diff --git a/php-icons.php b/php-icons.php index 64c626a3..f3f59198 100644 --- a/php-icons.php +++ b/php-icons.php @@ -5,11 +5,11 @@ declare(strict_types=1); use PHPIcons\Config\PHPIconsConfig; return PHPIconsConfig::configure() - ->withPaths([__DIR__ . '/app', __DIR__ . '/themes']) + ->withPaths([__DIR__ . '/app', __DIR__ . '/themes', __DIR__ . '/resources']) ->withLocalIconSets([ - 'funding' => __DIR__ . '/app/Resources/icons/funding', - 'podcasting' => __DIR__ . '/app/Resources/icons/podcasting', - 'social' => __DIR__ . '/app/Resources/icons/social', + 'funding' => __DIR__ . '/resources/icons/funding', + 'podcasting' => __DIR__ . '/resources/icons/podcasting', + 'social' => __DIR__ . '/resources/icons/social', ]) ->withDefaultIconPerSet([ 'funding' => 'funding:default', diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 94a674fd..4f6bc67c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -8,14 +8,14 @@ importers: .: dependencies: "@amcharts/amcharts4": - specifier: ^4.10.39 - version: 4.10.39 + specifier: ^4.10.40 + version: 4.10.40 "@amcharts/amcharts4-geodata": specifier: ^4.1.30 version: 4.1.30 "@codemirror/commands": - specifier: ^6.7.1 - version: 6.7.1 + specifier: ^6.8.0 + version: 6.8.0 "@codemirror/lang-html": specifier: ^6.4.9 version: 6.4.9 @@ -23,17 +23,17 @@ importers: specifier: ^6.1.0 version: 6.1.0 "@codemirror/language": - specifier: ^6.10.8 - version: 6.10.8 + specifier: ^6.11.0 + version: 6.11.0 "@codemirror/state": - specifier: ^6.5.0 - version: 6.5.0 + specifier: ^6.5.2 + version: 6.5.2 "@codemirror/view": - specifier: ^6.36.1 - version: 6.36.1 + specifier: ^6.36.4 + version: 6.36.4 "@floating-ui/dom": - specifier: ^1.6.12 - version: 1.6.12 + specifier: ^1.6.13 + version: 1.6.13 "@github/clipboard-copy-element": specifier: ^1.3.0 version: 1.3.0 @@ -44,8 +44,8 @@ importers: specifier: ^2.2.3 version: 2.2.3 "@github/relative-time-element": - specifier: ^4.4.4 - version: 4.4.4 + specifier: ^4.4.5 + version: 4.4.5 "@patternfly/elements": specifier: ^4.0.2 version: 4.0.2 @@ -53,8 +53,8 @@ importers: specifier: ^5.4.1 version: 5.4.1 choices.js: - specifier: ^11.0.3 - version: 11.0.3 + specifier: ^11.1.0 + version: 11.1.0 codemirror: specifier: ^6.0.1 version: 6.0.1(@lezer/common@1.2.3) @@ -62,8 +62,8 @@ importers: specifier: ^4.6.13 version: 4.6.13 htmlfy: - specifier: ^0.5.0 - version: 0.5.0 + specifier: ^0.6.2 + version: 0.6.2 leaflet: specifier: ^1.9.4 version: 1.9.4 @@ -74,60 +74,57 @@ importers: specifier: ^3.2.1 version: 3.2.1 marked: - specifier: ^15.0.4 - version: 15.0.4 + specifier: ^15.0.7 + version: 15.0.7 wavesurfer.js: - specifier: ^7.8.14 - version: 7.8.14 + specifier: ^7.9.1 + version: 7.9.1 xml-formatter: - specifier: ^3.6.3 - version: 3.6.3 + specifier: ^3.6.4 + version: 3.6.4 devDependencies: "@commitlint/cli": - specifier: ^19.6.1 - version: 19.6.1(@types/node@22.9.0)(typescript@5.7.2) + specifier: ^19.8.0 + version: 19.8.0(@types/node@22.9.0)(typescript@5.7.3) "@commitlint/config-conventional": - specifier: ^19.6.0 - version: 19.6.0 + specifier: ^19.8.0 + version: 19.8.0 "@csstools/css-tokenizer": specifier: ^3.0.3 version: 3.0.3 "@eslint/eslintrc": - specifier: ^3.2.0 - version: 3.2.0 + specifier: ^3.3.0 + version: 3.3.0 "@eslint/js": - specifier: ^9.17.0 - version: 9.17.0 + specifier: ^9.22.0 + version: 9.22.0 "@semantic-release/changelog": specifier: ^6.0.3 - version: 6.0.3(semantic-release@24.2.0(typescript@5.7.2)) + version: 6.0.3(semantic-release@24.2.3(typescript@5.7.3)) "@semantic-release/exec": - specifier: ^6.0.3 - version: 6.0.3(semantic-release@24.2.0(typescript@5.7.2)) + specifier: ^7.0.3 + version: 7.0.3(semantic-release@24.2.3(typescript@5.7.3)) "@semantic-release/git": specifier: ^10.0.1 - version: 10.0.1(semantic-release@24.2.0(typescript@5.7.2)) + version: 10.0.1(semantic-release@24.2.3(typescript@5.7.3)) "@semantic-release/gitlab": - specifier: ^13.2.3 - version: 13.2.3(semantic-release@24.2.0(typescript@5.7.2)) + specifier: ^13.2.4 + version: 13.2.4(semantic-release@24.2.3(typescript@5.7.3)) "@tailwindcss/forms": - specifier: ^0.5.9 - version: 0.5.9(tailwindcss@3.4.17) + specifier: ^0.5.10 + version: 0.5.10(tailwindcss@3.4.17) "@tailwindcss/typography": - specifier: ^0.5.15 - version: 0.5.15(tailwindcss@3.4.17) - "@types/eslint__js": - specifier: ^8.42.3 - version: 8.42.3 + specifier: ^0.5.16 + version: 0.5.16(tailwindcss@3.4.17) "@types/leaflet": - specifier: ^1.9.15 - version: 1.9.15 + specifier: ^1.9.16 + version: 1.9.16 all-contributors-cli: specifier: ^6.26.1 version: 6.26.1 commitizen: specifier: ^4.3.1 - version: 4.3.1(@types/node@22.9.0)(typescript@5.7.2) + version: 4.3.1(@types/node@22.9.0)(typescript@5.7.3) conventional-changelog-conventionalcommits: specifier: ^8.0.0 version: 8.0.0 @@ -136,22 +133,25 @@ importers: version: 7.0.3 cssnano: specifier: ^7.0.6 - version: 7.0.6(postcss@8.4.49) + version: 7.0.6(postcss@8.5.3) cz-conventional-changelog: specifier: ^3.3.0 - version: 3.3.0(@types/node@22.9.0)(typescript@5.7.2) + version: 3.3.0(@types/node@22.9.0)(typescript@5.7.3) eslint: - specifier: ^9.17.0 - version: 9.17.0(jiti@2.4.1) + specifier: ^9.22.0 + version: 9.22.0(jiti@2.4.1) eslint-config-prettier: - specifier: ^9.1.0 - version: 9.1.0(eslint@9.17.0(jiti@2.4.1)) + specifier: ^10.1.1 + version: 10.1.1(eslint@9.22.0(jiti@2.4.1)) eslint-plugin-prettier: - specifier: ^5.2.1 - version: 5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.17.0(jiti@2.4.1)))(eslint@9.17.0(jiti@2.4.1))(prettier@3.4.2) + specifier: ^5.2.3 + version: 5.2.3(@types/eslint@9.6.1)(eslint-config-prettier@10.1.1(eslint@9.22.0(jiti@2.4.1)))(eslint@9.22.0(jiti@2.4.1))(prettier@3.5.3) + glob: + specifier: ^11.0.1 + version: 11.0.1 globals: - specifier: ^15.14.0 - version: 15.14.0 + specifier: ^16.0.0 + version: 16.0.0 husky: specifier: ^9.1.7 version: 9.1.7 @@ -159,38 +159,41 @@ importers: specifier: ^4.1.0 version: 4.1.0 lint-staged: - specifier: ^15.3.0 - version: 15.3.0 + specifier: ^15.5.0 + version: 15.5.0 postcss: - specifier: ^8.4.49 - version: 8.4.49 + specifier: ^8.5.3 + version: 8.5.3 postcss-import: specifier: ^16.1.0 - version: 16.1.0(postcss@8.4.49) + version: 16.1.0(postcss@8.5.3) postcss-nesting: specifier: ^13.0.1 - version: 13.0.1(postcss@8.4.49) + version: 13.0.1(postcss@8.5.3) postcss-preset-env: - specifier: ^10.1.3 - version: 10.1.3(postcss@8.4.49) + specifier: ^10.1.5 + version: 10.1.5(postcss@8.5.3) postcss-reporter: specifier: ^7.1.0 - version: 7.1.0(postcss@8.4.49) + version: 7.1.0(postcss@8.5.3) prettier: - specifier: 3.4.2 - version: 3.4.2 + specifier: 3.5.3 + version: 3.5.3 prettier-plugin-organize-imports: specifier: ^4.1.0 - version: 4.1.0(prettier@3.4.2)(typescript@5.7.2) + version: 4.1.0(prettier@3.5.3)(typescript@5.7.3) semantic-release: - specifier: ^24.2.0 - version: 24.2.0(typescript@5.7.2) + specifier: ^24.2.3 + version: 24.2.3(typescript@5.7.3) + sharp: + specifier: ^0.33.5 + version: 0.33.5 stylelint: - specifier: ^16.12.0 - version: 16.12.0(typescript@5.7.2) + specifier: ^16.15.0 + version: 16.15.0(typescript@5.7.3) stylelint-config-standard: - specifier: ^36.0.1 - version: 36.0.1(stylelint@16.12.0(typescript@5.7.2)) + specifier: ^37.0.0 + version: 37.0.0(stylelint@16.15.0(typescript@5.7.3)) svgo: specifier: ^3.3.2 version: 3.3.2 @@ -198,17 +201,26 @@ importers: specifier: ^3.4.17 version: 3.4.17 typescript: - specifier: ~5.7.2 - version: 5.7.2 + specifier: ~5.7.3 + version: 5.7.3 typescript-eslint: - specifier: ^8.18.2 - version: 8.18.2(eslint@9.17.0(jiti@2.4.1))(typescript@5.7.2) + specifier: ^8.26.1 + version: 8.26.1(eslint@9.22.0(jiti@2.4.1))(typescript@5.7.3) vite: - specifier: ^6.0.6 - version: 6.0.6(@types/node@22.9.0)(jiti@2.4.1)(terser@5.36.0)(yaml@2.6.1) + specifier: ^6.2.2 + version: 6.2.2(@types/node@22.9.0)(jiti@2.4.1)(terser@5.36.0)(yaml@2.7.0) + vite-plugin-codeigniter: + specifier: ^1.0.1 + version: 1.0.1(vite@6.2.2(@types/node@22.9.0)(jiti@2.4.1)(terser@5.36.0)(yaml@2.7.0)) + vite-plugin-inspect: + specifier: ^11.0.0 + version: 11.0.0(vite@6.2.2(@types/node@22.9.0)(jiti@2.4.1)(terser@5.36.0)(yaml@2.7.0)) vite-plugin-pwa: specifier: ^0.21.1 - version: 0.21.1(vite@6.0.6(@types/node@22.9.0)(jiti@2.4.1)(terser@5.36.0)(yaml@2.6.1))(workbox-build@7.3.0)(workbox-window@7.3.0) + version: 0.21.1(vite@6.2.2(@types/node@22.9.0)(jiti@2.4.1)(terser@5.36.0)(yaml@2.7.0))(workbox-build@7.3.0)(workbox-window@7.3.0) + vite-plugin-static-copy: + specifier: ^2.3.0 + version: 2.3.0(vite@6.2.2(@types/node@22.9.0)(jiti@2.4.1)(terser@5.36.0)(yaml@2.7.0)) workbox-build: specifier: ^7.3.0 version: 7.3.0 @@ -236,10 +248,10 @@ packages: integrity: sha512-dM2wOMyyivHpTI+T3RxXgcgN0cv23DzMFuG2s/0ImNZGAWn97RdCdtbVEGcaI1Bi+hbbV9n0X7onNP5bnxZ+RQ==, } - "@amcharts/amcharts4@4.10.39": + "@amcharts/amcharts4@4.10.40": resolution: { - integrity: sha512-5WbpZgI0m0Mf8Ydwlm1XWB8hIzkk6fJifzYmJqo5HLdA8jCQa+4I+8uOlGlvSMxbBTkvxanEgA2WX27+99X44w==, + integrity: sha512-F5RrlWCg/fIRvTnnXenWZg7bTlEWJDvELyvXVAAi5GFvFVF4IegIP1vk5TatkgBzYO5v+SNGj2S3N1MkLwYA8w==, } "@ampproject/remapping@2.3.0": @@ -1032,10 +1044,10 @@ packages: "@codemirror/view": ^6.0.0 "@lezer/common": ^1.0.0 - "@codemirror/commands@6.7.1": + "@codemirror/commands@6.8.0": resolution: { - integrity: sha512-llTrboQYw5H4THfhN4U3qCnSZ1SOJ60ohhz+SzU0ADGtwlc533DtklQP0vSFaQuCPDn3BPpOd1GbbnUtwNjsrw==, + integrity: sha512-q8VPEFaEP4ikSlt6ZxjB3zW72+7osfAYW9i8Zu943uqbKuz6utc1+F170hyLUCUltXORjQXRyYQNfkckzA/bPQ==, } "@codemirror/lang-css@6.3.1": @@ -1062,10 +1074,10 @@ packages: integrity: sha512-3z0blhicHLfwi2UgkZYRPioSgVTo9PV5GP5ducFH6FaHy0IAJRg+ixj5gTR1gnT/glAIC8xv4w2VL1LoZfs+Jg==, } - "@codemirror/language@6.10.8": + "@codemirror/language@6.11.0": resolution: { - integrity: sha512-wcP8XPPhDH2vTqf181U8MbZnW+tDyPYy0UzVOa+oHORjyT+mhhom9vBd7dApJwoDz9Nb/a8kHjJIsuA/t8vNFw==, + integrity: sha512-A7+f++LodNNc1wGgoRDTt78cOwWm9KVezApgjOMp1W4hM0898nsqBXwF+sbePE7ZRcjN7Sa1Z5m2oN27XkmEjQ==, } "@codemirror/lint@6.8.2": @@ -1080,16 +1092,16 @@ packages: integrity: sha512-6+iLsXvITWKHYlkgHPCs/qiX4dNzn8N78YfhOFvPtPYCkuXqZq10rAfsUMhOq7O/1VjJqdXRflyExlfVcu/9VQ==, } - "@codemirror/state@6.5.0": + "@codemirror/state@6.5.2": resolution: { - integrity: sha512-MwBHVK60IiIHDcoMet78lxt6iw5gJOGSbNbOIVBHWVXIH4/Nq1+GQgLLGgI1KlnN86WDXsPudVaqYHKBIx7Eyw==, + integrity: sha512-FVqsPqtPWKVVL3dPSxy8wEF/ymIEuVzF1PK3VbUgrxXpJUSHQWWZz4JMToquRxnkw+36LTamCZG2iua2Ptq0fA==, } - "@codemirror/view@6.36.1": + "@codemirror/view@6.36.4": resolution: { - integrity: sha512-miD1nyT4m4uopZaDdO2uXU/LLHliKNYL9kB1C1wJHrunHLm/rpkb5QVSokqgw9hFqEZakrdlb/VGWX8aYZTslQ==, + integrity: sha512-ZQ0V5ovw/miKEXTvjgzRyjnrk9TwriUB1k4R5p7uNnHR9Hus+D1SXHGdJshijEzPFjU25xea/7nhIeSqYFKdbA==, } "@colors/colors@1.5.0": @@ -1099,18 +1111,18 @@ packages: } engines: { node: ">=0.1.90" } - "@commitlint/cli@19.6.1": + "@commitlint/cli@19.8.0": resolution: { - integrity: sha512-8hcyA6ZoHwWXC76BoC8qVOSr8xHy00LZhZpauiD0iO0VYbVhMnED0da85lTfIULxl7Lj4c6vZgF0Wu/ed1+jlQ==, + integrity: sha512-t/fCrLVu+Ru01h0DtlgHZXbHV2Y8gKocTR5elDOqIRUzQd0/6hpt2VIWOj9b3NDo7y4/gfxeR2zRtXq/qO6iUg==, } engines: { node: ">=v18" } hasBin: true - "@commitlint/config-conventional@19.6.0": + "@commitlint/config-conventional@19.8.0": resolution: { - integrity: sha512-DJT40iMnTYtBtUfw9ApbsLZFke1zKh6llITVJ+x9mtpHD08gsNXaIRqHTmwTZL3dNX5+WoyK7pCN/5zswvkBCQ==, + integrity: sha512-9I2kKJwcAPwMoAj38hwqFXG0CzS2Kj+SAByPUQ0SlHTfb7VUhYVmo7G2w2tBrqmOf7PFd6MpZ/a1GQJo8na8kw==, } engines: { node: ">=v18" } @@ -1121,10 +1133,17 @@ packages: } engines: { node: ">=v18" } - "@commitlint/ensure@19.5.0": + "@commitlint/config-validator@19.8.0": resolution: { - integrity: sha512-Kv0pYZeMrdg48bHFEU5KKcccRfKmISSm9MvgIgkpI6m+ohFTB55qZlBW6eYqh/XDfRuIO0x4zSmvBjmOwWTwkg==, + integrity: sha512-+r5ZvD/0hQC3w5VOHJhGcCooiAVdynFlCe2d6I9dU+PvXdV3O+fU4vipVg+6hyLbQUuCH82mz3HnT/cBQTYYuA==, + } + engines: { node: ">=v18" } + + "@commitlint/ensure@19.8.0": + resolution: + { + integrity: sha512-kNiNU4/bhEQ/wutI1tp1pVW1mQ0QbAjfPRo5v8SaxoVV+ARhkB8Wjg3BSseNYECPzWWfg/WDqQGIfV1RaBFQZg==, } engines: { node: ">=v18" } @@ -1135,24 +1154,31 @@ packages: } engines: { node: ">=v18" } - "@commitlint/format@19.5.0": + "@commitlint/execute-rule@19.8.0": resolution: { - integrity: sha512-yNy088miE52stCI3dhG/vvxFo9e4jFkU1Mj3xECfzp/bIS/JUay4491huAlVcffOoMK1cd296q0W92NlER6r3A==, + integrity: sha512-fuLeI+EZ9x2v/+TXKAjplBJWI9CNrHnyi5nvUQGQt4WRkww/d95oVRsc9ajpt4xFrFmqMZkd/xBQHZDvALIY7A==, } engines: { node: ">=v18" } - "@commitlint/is-ignored@19.6.0": + "@commitlint/format@19.8.0": resolution: { - integrity: sha512-Ov6iBgxJQFR9koOupDPHvcHU9keFupDgtB3lObdEZDroiG4jj1rzky60fbQozFKVYRTUdrBGICHG0YVmRuAJmw==, + integrity: sha512-EOpA8IERpQstxwp/WGnDArA7S+wlZDeTeKi98WMOvaDLKbjptuHWdOYYr790iO7kTCif/z971PKPI2PkWMfOxg==, } engines: { node: ">=v18" } - "@commitlint/lint@19.6.0": + "@commitlint/is-ignored@19.8.0": resolution: { - integrity: sha512-LRo7zDkXtcIrpco9RnfhOKeg8PAnE3oDDoalnrVU/EVaKHYBWYL1DlRR7+3AWn0JiBqD8yKOfetVxJGdEtZ0tg==, + integrity: sha512-L2Jv9yUg/I+jF3zikOV0rdiHUul9X3a/oU5HIXhAJLE2+TXTnEBfqYP9G5yMw/Yb40SnR764g4fyDK6WR2xtpw==, + } + engines: { node: ">=v18" } + + "@commitlint/lint@19.8.0": + resolution: + { + integrity: sha512-+/NZKyWKSf39FeNpqhfMebmaLa1P90i1Nrb1SrA7oSU5GNN/lksA4z6+ZTnsft01YfhRZSYMbgGsARXvkr/VLQ==, } engines: { node: ">=v18" } @@ -1163,31 +1189,31 @@ packages: } engines: { node: ">=v18" } - "@commitlint/load@19.6.1": + "@commitlint/load@19.8.0": resolution: { - integrity: sha512-kE4mRKWWNju2QpsCWt428XBvUH55OET2N4QKQ0bF85qS/XbsRGG1MiTByDNlEVpEPceMkDr46LNH95DtRwcsfA==, + integrity: sha512-4rvmm3ff81Sfb+mcWT5WKlyOa+Hd33WSbirTVUer0wjS1Hv/Hzr07Uv1ULIV9DkimZKNyOwXn593c+h8lsDQPQ==, } engines: { node: ">=v18" } - "@commitlint/message@19.5.0": + "@commitlint/message@19.8.0": resolution: { - integrity: sha512-R7AM4YnbxN1Joj1tMfCyBryOC5aNJBdxadTZkuqtWi3Xj0kMdutq16XQwuoGbIzL2Pk62TALV1fZDCv36+JhTQ==, + integrity: sha512-qs/5Vi9bYjf+ZV40bvdCyBn5DvbuelhR6qewLE8Bh476F7KnNyLfdM/ETJ4cp96WgeeHo6tesA2TMXS0sh5X4A==, } engines: { node: ">=v18" } - "@commitlint/parse@19.5.0": + "@commitlint/parse@19.8.0": resolution: { - integrity: sha512-cZ/IxfAlfWYhAQV0TwcbdR1Oc0/r0Ik1GEessDJ3Lbuma/MRO8FRQX76eurcXtmhJC//rj52ZSZuXUg0oIX0Fw==, + integrity: sha512-YNIKAc4EXvNeAvyeEnzgvm1VyAe0/b3Wax7pjJSwXuhqIQ1/t2hD3OYRXb6D5/GffIvaX82RbjD+nWtMZCLL7Q==, } engines: { node: ">=v18" } - "@commitlint/read@19.5.0": + "@commitlint/read@19.8.0": resolution: { - integrity: sha512-TjS3HLPsLsxFPQj6jou8/CZFAmOP2y+6V4PGYt3ihbQKTY1Jnv0QG28WRKl/d1ha6zLODPZqsxLEov52dhR9BQ==, + integrity: sha512-6ywxOGYajcxK1y1MfzrOnwsXO6nnErna88gRWEl3qqOOP8MDu/DTeRkGLXBFIZuRZ7mm5yyxU5BmeUvMpNte5w==, } engines: { node: ">=v18" } @@ -1198,24 +1224,31 @@ packages: } engines: { node: ">=v18" } - "@commitlint/rules@19.6.0": + "@commitlint/resolve-extends@19.8.0": resolution: { - integrity: sha512-1f2reW7lbrI0X0ozZMesS/WZxgPa4/wi56vFuJENBmed6mWq5KsheN/nxqnl/C23ioxpPO/PL6tXpiiFy5Bhjw==, + integrity: sha512-CLanRQwuG2LPfFVvrkTrBR/L/DMy3+ETsgBqW1OvRxmzp/bbVJW0Xw23LnnExgYcsaFtos967lul1CsbsnJlzQ==, } engines: { node: ">=v18" } - "@commitlint/to-lines@19.5.0": + "@commitlint/rules@19.8.0": resolution: { - integrity: sha512-R772oj3NHPkodOSRZ9bBVNq224DOxQtNef5Pl8l2M8ZnkkzQfeSTr4uxawV2Sd3ui05dUVzvLNnzenDBO1KBeQ==, + integrity: sha512-IZ5IE90h6DSWNuNK/cwjABLAKdy8tP8OgGVGbXe1noBEX5hSsu00uRlLu6JuruiXjWJz2dZc+YSw3H0UZyl/mA==, } engines: { node: ">=v18" } - "@commitlint/top-level@19.5.0": + "@commitlint/to-lines@19.8.0": resolution: { - integrity: sha512-IP1YLmGAk0yWrImPRRc578I3dDUI5A2UBJx9FbSOjxe9sTlzFiwVJ+zeMLgAtHMtGZsC8LUnzmW1qRemkFU4ng==, + integrity: sha512-3CKLUw41Cur8VMjh16y8LcsOaKbmQjAKCWlXx6B0vOUREplp6em9uIVhI8Cv934qiwkbi2+uv+mVZPnXJi1o9A==, + } + engines: { node: ">=v18" } + + "@commitlint/top-level@19.8.0": + resolution: + { + integrity: sha512-Rphgoc/omYZisoNkcfaBRPQr4myZEHhLPx2/vTXNLjiCw4RgfPR1wEgUpJ9OOmDCiv5ZyIExhprNLhteqH4FuQ==, } engines: { node: ">=v18" } @@ -1226,6 +1259,13 @@ packages: } engines: { node: ">=v18" } + "@commitlint/types@19.8.0": + resolution: + { + integrity: sha512-LRjP623jPyf3Poyfb0ohMj8I3ORyBDOwXAgxxVPbSD0unJuW2mJWeiRfaQinjtccMqC5Wy1HOMfa4btKjbNxbg==, + } + engines: { node: ">=v18" } + "@csstools/cascade-layer-name-parser@2.0.4": resolution: { @@ -1236,27 +1276,27 @@ packages: "@csstools/css-parser-algorithms": ^3.0.4 "@csstools/css-tokenizer": ^3.0.3 - "@csstools/color-helpers@5.0.1": + "@csstools/color-helpers@5.0.2": resolution: { - integrity: sha512-MKtmkA0BX87PKaO1NFRTFH+UnkgnmySQOvNxJubsadusqPEC2aJ9MOQiMceZJJ6oitUl/i0L6u0M1IrmAOmgBA==, + integrity: sha512-JqWH1vsgdGcw2RR6VliXXdA0/59LttzlU8UlRT/iUUsEeWfYq8I+K0yhihEUTTHLRm1EXvpsCx3083EU15ecsA==, } engines: { node: ">=18" } - "@csstools/css-calc@2.1.1": + "@csstools/css-calc@2.1.2": resolution: { - integrity: sha512-rL7kaUnTkL9K+Cvo2pnCieqNpTKgQzy5f+N+5Iuko9HAoasP+xgprVh7KN/MaJVvVL1l0EzQq2MoqBHKSrDrag==, + integrity: sha512-TklMyb3uBB28b5uQdxjReG4L80NxAqgrECqLZFQbyLekwwlcDDS8r3f07DKqeo8C4926Br0gf/ZDe17Zv4wIuw==, } engines: { node: ">=18" } peerDependencies: "@csstools/css-parser-algorithms": ^3.0.4 "@csstools/css-tokenizer": ^3.0.3 - "@csstools/css-color-parser@3.0.7": + "@csstools/css-color-parser@3.0.8": resolution: { - integrity: sha512-nkMp2mTICw32uE5NN+EsJ4f5N+IGFeCFu4bGpiKgb2Pq/7J/MpyLBeQ5ry4KKtRFZaYs6sTmcMYrSRIyj5DFKA==, + integrity: sha512-pdwotQjCCnRPuNi06jFuP68cykU1f3ZWExLe/8MQ1LOs8Xq+fTkYgd+2V8mWUWMrOn9iS2HftPVaMZDaXzGbhQ==, } engines: { node: ">=18" } peerDependencies: @@ -1298,19 +1338,19 @@ packages: peerDependencies: postcss: ^8.4 - "@csstools/postcss-color-function@4.0.7": + "@csstools/postcss-color-function@4.0.8": resolution: { - integrity: sha512-aDHYmhNIHR6iLw4ElWhf+tRqqaXwKnMl0YsQ/X105Zc4dQwe6yJpMrTN6BwOoESrkDjOYMOfORviSSLeDTJkdQ==, + integrity: sha512-9dUvP2qpZI6PlGQ/sob+95B3u5u7nkYt9yhZFCC7G9HBRHBxj+QxS/wUlwaMGYW0waf+NIierI8aoDTssEdRYw==, } engines: { node: ">=18" } peerDependencies: postcss: ^8.4 - "@csstools/postcss-color-mix-function@3.0.7": + "@csstools/postcss-color-mix-function@3.0.8": resolution: { - integrity: sha512-e68Nev4CxZYCLcrfWhHH4u/N1YocOfTmw67/kVX5Rb7rnguqqLyxPjhHWjSBX8o4bmyuukmNf3wrUSU3//kT7g==, + integrity: sha512-yuZpgWUzqZWQhEqfvtJufhl28DgO9sBwSbXbf/59gejNuvZcoUTRGQZhzhwF4ccqb53YAGB+u92z9+eSKoB4YA==, } engines: { node: ">=18" } peerDependencies: @@ -1325,10 +1365,10 @@ packages: peerDependencies: postcss: ^8.4 - "@csstools/postcss-exponential-functions@2.0.6": + "@csstools/postcss-exponential-functions@2.0.7": resolution: { - integrity: sha512-IgJA5DQsQLu/upA3HcdvC6xEMR051ufebBTIXZ5E9/9iiaA7juXWz1ceYj814lnDYP/7eWjZnw0grRJlX4eI6g==, + integrity: sha512-XTb6Mw0v2qXtQYRW9d9duAjDnoTbBpsngD7sRNLmYDjvwU2ebpIHplyxgOeo6jp/Kr52gkLi5VaK5RDCqzMzZQ==, } engines: { node: ">=18" } peerDependencies: @@ -1343,28 +1383,28 @@ packages: peerDependencies: postcss: ^8.4 - "@csstools/postcss-gamut-mapping@2.0.7": + "@csstools/postcss-gamut-mapping@2.0.8": resolution: { - integrity: sha512-gzFEZPoOkY0HqGdyeBXR3JP218Owr683u7KOZazTK7tQZBE8s2yhg06W1tshOqk7R7SWvw9gkw2TQogKpIW8Xw==, + integrity: sha512-/K8u9ZyGMGPjmwCSIjgaOLKfic2RIGdFHHes84XW5LnmrvdhOTVxo255NppHi3ROEvoHPW7MplMJgjZK5Q+TxA==, } engines: { node: ">=18" } peerDependencies: postcss: ^8.4 - "@csstools/postcss-gradients-interpolation-method@5.0.7": + "@csstools/postcss-gradients-interpolation-method@5.0.8": resolution: { - integrity: sha512-WgEyBeg6glUeTdS2XT7qeTFBthTJuXlS9GFro/DVomj7W7WMTamAwpoP4oQCq/0Ki2gvfRYFi/uZtmRE14/DFA==, + integrity: sha512-CoHQ/0UXrvxLovu0ZeW6c3/20hjJ/QRg6lyXm3dZLY/JgvRU6bdbQZF/Du30A4TvowfcgvIHQmP1bNXUxgDrAw==, } engines: { node: ">=18" } peerDependencies: postcss: ^8.4 - "@csstools/postcss-hwb-function@4.0.7": + "@csstools/postcss-hwb-function@4.0.8": resolution: { - integrity: sha512-LKYqjO+wGwDCfNIEllessCBWfR4MS/sS1WXO+j00KKyOjm7jDW2L6jzUmqASEiv/kkJO39GcoIOvTTfB3yeBUA==, + integrity: sha512-LpFKjX6hblpeqyych1cKmk+3FJZ19QmaJtqincySoMkbkG/w2tfbnO5oE6mlnCTXcGUJ0rCEuRHvTqKK0nHYUQ==, } engines: { node: ">=18" } peerDependencies: @@ -1379,10 +1419,10 @@ packages: peerDependencies: postcss: ^8.4 - "@csstools/postcss-initial@2.0.0": + "@csstools/postcss-initial@2.0.1": resolution: { - integrity: sha512-dv2lNUKR+JV+OOhZm9paWzYBXOCi+rJPqJ2cJuhh9xd8USVrd0cBEPczla81HNOyThMQWeCcdln3gZkQV2kYxA==, + integrity: sha512-L1wLVMSAZ4wovznquK0xmC7QSctzO4D0Is590bxpGqhqjboLXYA16dWZpfwImkdOgACdQ9PqXsuRroW6qPlEsg==, } engines: { node: ">=18" } peerDependencies: @@ -1451,10 +1491,10 @@ packages: peerDependencies: postcss: ^8.4 - "@csstools/postcss-media-minmax@2.0.6": + "@csstools/postcss-media-minmax@2.0.7": resolution: { - integrity: sha512-J1+4Fr2W3pLZsfxkFazK+9kr96LhEYqoeBszLmFjb6AjYs+g9oDAw3J5oQignLKk3rC9XHW+ebPTZ9FaW5u5pg==, + integrity: sha512-LB6tIP7iBZb5CYv8iRenfBZmbaG3DWNEziOnPjGoQX5P94FBPvvTBy68b/d9NnS5PELKwFmmOYsAEIgEhDPCHA==, } engines: { node: ">=18" } peerDependencies: @@ -1487,10 +1527,10 @@ packages: peerDependencies: postcss: ^8.4 - "@csstools/postcss-oklab-function@4.0.7": + "@csstools/postcss-oklab-function@4.0.8": resolution: { - integrity: sha512-I6WFQIbEKG2IO3vhaMGZDkucbCaUSXMxvHNzDdnfsTCF5tc0UlV3Oe2AhamatQoKFjBi75dSEMrgWq3+RegsOQ==, + integrity: sha512-+5aPsNWgxohXoYNS1f+Ys0x3Qnfehgygv3qrPyv+Y25G0yX54/WlVB+IXprqBLOXHM1gsVF+QQSjlArhygna0Q==, } engines: { node: ">=18" } peerDependencies: @@ -1505,19 +1545,19 @@ packages: peerDependencies: postcss: ^8.4 - "@csstools/postcss-random-function@1.0.2": + "@csstools/postcss-random-function@1.0.3": resolution: { - integrity: sha512-vBCT6JvgdEkvRc91NFoNrLjgGtkLWt47GKT6E2UDn3nd8ZkMBiziQ1Md1OiKoSsgzxsSnGKG3RVdhlbdZEkHjA==, + integrity: sha512-dbNeEEPHxAwfQJ3duRL5IPpuD77QAHtRl4bAHRs0vOVhVbHrsL7mHnwe0irYjbs9kYwhAHZBQTLBgmvufPuRkA==, } engines: { node: ">=18" } peerDependencies: postcss: ^8.4 - "@csstools/postcss-relative-color-syntax@3.0.7": + "@csstools/postcss-relative-color-syntax@3.0.8": resolution: { - integrity: sha512-apbT31vsJVd18MabfPOnE977xgct5B1I+Jpf+Munw3n6kKb1MMuUmGGH+PT9Hm/fFs6fe61Q/EWnkrb4bNoNQw==, + integrity: sha512-eGE31oLnJDoUysDdjS9MLxNZdtqqSxjDXMdISpLh80QMaYrKs7VINpid34tWQ+iU23Wg5x76qAzf1Q/SLLbZVg==, } engines: { node: ">=18" } peerDependencies: @@ -1532,37 +1572,37 @@ packages: peerDependencies: postcss: ^8.4 - "@csstools/postcss-sign-functions@1.1.1": + "@csstools/postcss-sign-functions@1.1.2": resolution: { - integrity: sha512-MslYkZCeMQDxetNkfmmQYgKCy4c+w9pPDfgOBCJOo/RI1RveEUdZQYtOfrC6cIZB7sD7/PHr2VGOcMXlZawrnA==, + integrity: sha512-4EcAvXTUPh7n6UoZZkCzgtCf/wPzMlTNuddcKg7HG8ozfQkUcHsJ2faQKeLmjyKdYPyOUn4YA7yDPf8K/jfIxw==, } engines: { node: ">=18" } peerDependencies: postcss: ^8.4 - "@csstools/postcss-stepped-value-functions@4.0.6": + "@csstools/postcss-stepped-value-functions@4.0.7": resolution: { - integrity: sha512-/dwlO9w8vfKgiADxpxUbZOWlL5zKoRIsCymYoh1IPuBsXODKanKnfuZRr32DEqT0//3Av1VjfNZU9yhxtEfIeA==, + integrity: sha512-rdrRCKRnWtj5FyRin0u/gLla7CIvZRw/zMGI1fVJP0Sg/m1WGicjPVHRANL++3HQtsiXKAbPrcPr+VkyGck0IA==, } engines: { node: ">=18" } peerDependencies: postcss: ^8.4 - "@csstools/postcss-text-decoration-shorthand@4.0.1": + "@csstools/postcss-text-decoration-shorthand@4.0.2": resolution: { - integrity: sha512-xPZIikbx6jyzWvhms27uugIc0I4ykH4keRvoa3rxX5K7lEhkbd54rjj/dv60qOCTisoS+3bmwJTeyV1VNBrXaw==, + integrity: sha512-8XvCRrFNseBSAGxeaVTaNijAu+FzUvjwFXtcrynmazGb/9WUdsPCpBX+mHEHShVRq47Gy4peYAoxYs8ltUnmzA==, } engines: { node: ">=18" } peerDependencies: postcss: ^8.4 - "@csstools/postcss-trigonometric-functions@4.0.6": + "@csstools/postcss-trigonometric-functions@4.0.7": resolution: { - integrity: sha512-c4Y1D2Why/PeccaSouXnTt6WcNHJkoJRidV2VW9s5gJ97cNxnLgQ4Qj8qOqkIR9VmTQKJyNcbF4hy79ZQnWD7A==, + integrity: sha512-qTrZgLju3AV7Djhzuh2Bq/wjFqbcypnk0FhHjxW8DWJQcZLS1HecIus4X2/RLch1ukX7b+YYCdqbEnpIQO5ccg==, } engines: { node: ">=18" } peerDependencies: @@ -1610,226 +1650,232 @@ packages: integrity: sha512-+nxncfwHM5SgAtrVzgpzJOI1ol0PkumhVo469KCf9lUi21IGcY90G98VuHm9VRrUypmAzawAHO9bs6hqeADaVg==, } - "@esbuild/aix-ppc64@0.24.2": + "@emnapi/runtime@1.3.1": resolution: { - integrity: sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==, + integrity: sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==, + } + + "@esbuild/aix-ppc64@0.25.0": + resolution: + { + integrity: sha512-O7vun9Sf8DFjH2UtqK8Ku3LkquL9SZL8OLY1T5NZkA34+wG3OQF7cl4Ql8vdNzM6fzBbYfLaiRLIOZ+2FOCgBQ==, } engines: { node: ">=18" } cpu: [ppc64] os: [aix] - "@esbuild/android-arm64@0.24.2": + "@esbuild/android-arm64@0.25.0": resolution: { - integrity: sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==, + integrity: sha512-grvv8WncGjDSyUBjN9yHXNt+cq0snxXbDxy5pJtzMKGmmpPxeAmAhWxXI+01lU5rwZomDgD3kJwulEnhTRUd6g==, } engines: { node: ">=18" } cpu: [arm64] os: [android] - "@esbuild/android-arm@0.24.2": + "@esbuild/android-arm@0.25.0": resolution: { - integrity: sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==, + integrity: sha512-PTyWCYYiU0+1eJKmw21lWtC+d08JDZPQ5g+kFyxP0V+es6VPPSUhM6zk8iImp2jbV6GwjX4pap0JFbUQN65X1g==, } engines: { node: ">=18" } cpu: [arm] os: [android] - "@esbuild/android-x64@0.24.2": + "@esbuild/android-x64@0.25.0": resolution: { - integrity: sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==, + integrity: sha512-m/ix7SfKG5buCnxasr52+LI78SQ+wgdENi9CqyCXwjVR2X4Jkz+BpC3le3AoBPYTC9NHklwngVXvbJ9/Akhrfg==, } engines: { node: ">=18" } cpu: [x64] os: [android] - "@esbuild/darwin-arm64@0.24.2": + "@esbuild/darwin-arm64@0.25.0": resolution: { - integrity: sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==, + integrity: sha512-mVwdUb5SRkPayVadIOI78K7aAnPamoeFR2bT5nszFUZ9P8UpK4ratOdYbZZXYSqPKMHfS1wdHCJk1P1EZpRdvw==, } engines: { node: ">=18" } cpu: [arm64] os: [darwin] - "@esbuild/darwin-x64@0.24.2": + "@esbuild/darwin-x64@0.25.0": resolution: { - integrity: sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==, + integrity: sha512-DgDaYsPWFTS4S3nWpFcMn/33ZZwAAeAFKNHNa1QN0rI4pUjgqf0f7ONmXf6d22tqTY+H9FNdgeaAa+YIFUn2Rg==, } engines: { node: ">=18" } cpu: [x64] os: [darwin] - "@esbuild/freebsd-arm64@0.24.2": + "@esbuild/freebsd-arm64@0.25.0": resolution: { - integrity: sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==, + integrity: sha512-VN4ocxy6dxefN1MepBx/iD1dH5K8qNtNe227I0mnTRjry8tj5MRk4zprLEdG8WPyAPb93/e4pSgi1SoHdgOa4w==, } engines: { node: ">=18" } cpu: [arm64] os: [freebsd] - "@esbuild/freebsd-x64@0.24.2": + "@esbuild/freebsd-x64@0.25.0": resolution: { - integrity: sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==, + integrity: sha512-mrSgt7lCh07FY+hDD1TxiTyIHyttn6vnjesnPoVDNmDfOmggTLXRv8Id5fNZey1gl/V2dyVK1VXXqVsQIiAk+A==, } engines: { node: ">=18" } cpu: [x64] os: [freebsd] - "@esbuild/linux-arm64@0.24.2": + "@esbuild/linux-arm64@0.25.0": resolution: { - integrity: sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==, + integrity: sha512-9QAQjTWNDM/Vk2bgBl17yWuZxZNQIF0OUUuPZRKoDtqF2k4EtYbpyiG5/Dk7nqeK6kIJWPYldkOcBqjXjrUlmg==, } engines: { node: ">=18" } cpu: [arm64] os: [linux] - "@esbuild/linux-arm@0.24.2": + "@esbuild/linux-arm@0.25.0": resolution: { - integrity: sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==, + integrity: sha512-vkB3IYj2IDo3g9xX7HqhPYxVkNQe8qTK55fraQyTzTX/fxaDtXiEnavv9geOsonh2Fd2RMB+i5cbhu2zMNWJwg==, } engines: { node: ">=18" } cpu: [arm] os: [linux] - "@esbuild/linux-ia32@0.24.2": + "@esbuild/linux-ia32@0.25.0": resolution: { - integrity: sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==, + integrity: sha512-43ET5bHbphBegyeqLb7I1eYn2P/JYGNmzzdidq/w0T8E2SsYL1U6un2NFROFRg1JZLTzdCoRomg8Rvf9M6W6Gg==, } engines: { node: ">=18" } cpu: [ia32] os: [linux] - "@esbuild/linux-loong64@0.24.2": + "@esbuild/linux-loong64@0.25.0": resolution: { - integrity: sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==, + integrity: sha512-fC95c/xyNFueMhClxJmeRIj2yrSMdDfmqJnyOY4ZqsALkDrrKJfIg5NTMSzVBr5YW1jf+l7/cndBfP3MSDpoHw==, } engines: { node: ">=18" } cpu: [loong64] os: [linux] - "@esbuild/linux-mips64el@0.24.2": + "@esbuild/linux-mips64el@0.25.0": resolution: { - integrity: sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==, + integrity: sha512-nkAMFju7KDW73T1DdH7glcyIptm95a7Le8irTQNO/qtkoyypZAnjchQgooFUDQhNAy4iu08N79W4T4pMBwhPwQ==, } engines: { node: ">=18" } cpu: [mips64el] os: [linux] - "@esbuild/linux-ppc64@0.24.2": + "@esbuild/linux-ppc64@0.25.0": resolution: { - integrity: sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==, + integrity: sha512-NhyOejdhRGS8Iwv+KKR2zTq2PpysF9XqY+Zk77vQHqNbo/PwZCzB5/h7VGuREZm1fixhs4Q/qWRSi5zmAiO4Fw==, } engines: { node: ">=18" } cpu: [ppc64] os: [linux] - "@esbuild/linux-riscv64@0.24.2": + "@esbuild/linux-riscv64@0.25.0": resolution: { - integrity: sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==, + integrity: sha512-5S/rbP5OY+GHLC5qXp1y/Mx//e92L1YDqkiBbO9TQOvuFXM+iDqUNG5XopAnXoRH3FjIUDkeGcY1cgNvnXp/kA==, } engines: { node: ">=18" } cpu: [riscv64] os: [linux] - "@esbuild/linux-s390x@0.24.2": + "@esbuild/linux-s390x@0.25.0": resolution: { - integrity: sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==, + integrity: sha512-XM2BFsEBz0Fw37V0zU4CXfcfuACMrppsMFKdYY2WuTS3yi8O1nFOhil/xhKTmE1nPmVyvQJjJivgDT+xh8pXJA==, } engines: { node: ">=18" } cpu: [s390x] os: [linux] - "@esbuild/linux-x64@0.24.2": + "@esbuild/linux-x64@0.25.0": resolution: { - integrity: sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==, + integrity: sha512-9yl91rHw/cpwMCNytUDxwj2XjFpxML0y9HAOH9pNVQDpQrBxHy01Dx+vaMu0N1CKa/RzBD2hB4u//nfc+Sd3Cw==, } engines: { node: ">=18" } cpu: [x64] os: [linux] - "@esbuild/netbsd-arm64@0.24.2": + "@esbuild/netbsd-arm64@0.25.0": resolution: { - integrity: sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==, + integrity: sha512-RuG4PSMPFfrkH6UwCAqBzauBWTygTvb1nxWasEJooGSJ/NwRw7b2HOwyRTQIU97Hq37l3npXoZGYMy3b3xYvPw==, } engines: { node: ">=18" } cpu: [arm64] os: [netbsd] - "@esbuild/netbsd-x64@0.24.2": + "@esbuild/netbsd-x64@0.25.0": resolution: { - integrity: sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==, + integrity: sha512-jl+qisSB5jk01N5f7sPCsBENCOlPiS/xptD5yxOx2oqQfyourJwIKLRA2yqWdifj3owQZCL2sn6o08dBzZGQzA==, } engines: { node: ">=18" } cpu: [x64] os: [netbsd] - "@esbuild/openbsd-arm64@0.24.2": + "@esbuild/openbsd-arm64@0.25.0": resolution: { - integrity: sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==, + integrity: sha512-21sUNbq2r84YE+SJDfaQRvdgznTD8Xc0oc3p3iW/a1EVWeNj/SdUCbm5U0itZPQYRuRTW20fPMWMpcrciH2EJw==, } engines: { node: ">=18" } cpu: [arm64] os: [openbsd] - "@esbuild/openbsd-x64@0.24.2": + "@esbuild/openbsd-x64@0.25.0": resolution: { - integrity: sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==, + integrity: sha512-2gwwriSMPcCFRlPlKx3zLQhfN/2WjJ2NSlg5TKLQOJdV0mSxIcYNTMhk3H3ulL/cak+Xj0lY1Ym9ysDV1igceg==, } engines: { node: ">=18" } cpu: [x64] os: [openbsd] - "@esbuild/sunos-x64@0.24.2": + "@esbuild/sunos-x64@0.25.0": resolution: { - integrity: sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==, + integrity: sha512-bxI7ThgLzPrPz484/S9jLlvUAHYMzy6I0XiU1ZMeAEOBcS0VePBFxh1JjTQt3Xiat5b6Oh4x7UC7IwKQKIJRIg==, } engines: { node: ">=18" } cpu: [x64] os: [sunos] - "@esbuild/win32-arm64@0.24.2": + "@esbuild/win32-arm64@0.25.0": resolution: { - integrity: sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==, + integrity: sha512-ZUAc2YK6JW89xTbXvftxdnYy3m4iHIkDtK3CLce8wg8M2L+YZhIvO1DKpxrd0Yr59AeNNkTiic9YLf6FTtXWMw==, } engines: { node: ">=18" } cpu: [arm64] os: [win32] - "@esbuild/win32-ia32@0.24.2": + "@esbuild/win32-ia32@0.25.0": resolution: { - integrity: sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==, + integrity: sha512-eSNxISBu8XweVEWG31/JzjkIGbGIJN/TrRoiSVZwZ6pkC6VX4Im/WV2cz559/TXLcYbcrDN8JtKgd9DJVIo8GA==, } engines: { node: ">=18" } cpu: [ia32] os: [win32] - "@esbuild/win32-x64@0.24.2": + "@esbuild/win32-x64@0.25.0": resolution: { - integrity: sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==, + integrity: sha512-ZENoHJBxA20C2zFzh6AI4fT6RraMzjYw4xKWemRTRmRVtN9c5DcH9r/f2ihEkMjOW5eGgrwCslG/+Y/3bL+DHQ==, } engines: { node: ">=18" } cpu: [x64] @@ -1851,45 +1897,52 @@ packages: } engines: { node: ^12.0.0 || ^14.0.0 || >=16.0.0 } - "@eslint/config-array@0.19.1": + "@eslint/config-array@0.19.2": resolution: { - integrity: sha512-fo6Mtm5mWyKjA/Chy1BYTdn5mGJoDNjC7C64ug20ADsRDGrA85bN3uK3MaKbeRkRuuIEAR5N33Jr1pbm411/PA==, + integrity: sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==, } engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } - "@eslint/core@0.9.1": + "@eslint/config-helpers@0.1.0": resolution: { - integrity: sha512-GuUdqkyyzQI5RMIWkHhvTWLCyLo1jNK3vzkSyaExH5kHPDHcuL2VOpHjmMY+y3+NC69qAKToBqldTBgYeLSr9Q==, + integrity: sha512-kLrdPDJE1ckPo94kmPPf9Hfd0DU0Jw6oKYrhe+pwSC0iTUInmTa+w6fw8sGgcfkFJGNdWOUeOaDM4quW4a7OkA==, } engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } - "@eslint/eslintrc@3.2.0": + "@eslint/core@0.12.0": resolution: { - integrity: sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==, + integrity: sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg==, } engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } - "@eslint/js@9.17.0": + "@eslint/eslintrc@3.3.0": resolution: { - integrity: sha512-Sxc4hqcs1kTu0iID3kcZDW3JHq2a77HO9P8CP6YEA/FpH3Ll8UXE2r/86Rz9YJLKme39S9vU5OWNjC6Xl0Cr3w==, + integrity: sha512-yaVPAiNAalnCZedKLdR21GOGILMLKPyqSLWaAjQFvYA2i/ciDi8ArYVr69Anohb6cH2Ukhqti4aFnYyPm8wdwQ==, } engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } - "@eslint/object-schema@2.1.5": + "@eslint/js@9.22.0": resolution: { - integrity: sha512-o0bhxnL89h5Bae5T318nFoFzGy+YE5i/gGkoPAgkmTVdRKTiv3p8JHevPiPaMwoloKfEiiaHlawCqaZMqRm+XQ==, + integrity: sha512-vLFajx9o8d1/oL2ZkpMYbkLv8nDB6yaIwFNt7nI4+I80U/z03SxmfOMsLbvWr3p7C+Wnoh//aOu2pQW8cS0HCQ==, } engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } - "@eslint/plugin-kit@0.2.4": + "@eslint/object-schema@2.1.6": resolution: { - integrity: sha512-zSkKow6H5Kdm0ZUQUB2kV5JIXqoG0+uH5YADhaEHswm664N9Db8dXSi0nMJpacpMf+MyyglF1vnZohpEg5yUtg==, + integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==, + } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + + "@eslint/plugin-kit@0.2.7": + resolution: + { + integrity: sha512-JubJ5B2pJ4k4yGxaNLdbjrnk9d/iDz6/q8wOilpIowd6PJPgaxCuHBnBszq7Ce2TyMrywm5r4PnKm6V3iiZF+g==, } engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } @@ -1899,16 +1952,16 @@ packages: integrity: sha512-7XJ9cPU+yI2QeLS+FCSlqNFZJq8arvswefkZrYI1yQBbftw6FyrZOxYSh+9S7z7TpeWlRt9zJ5IhM1WIL334jA==, } - "@floating-ui/dom@1.6.12": + "@floating-ui/dom@1.6.13": resolution: { - integrity: sha512-NP83c0HjokcGVEMeoStg317VD9W7eDlGK7457dMBANbKA6GJZdc7rjujdgqzTaz93jkGgc5P/jeWbaCHnMNc+w==, + integrity: sha512-umqzocjDgNRGTuO7Q8CU32dkHkECqI8ZdMZ5Swb6QAM0t5rnlrN3lGo1hdpscRd3WS8T6DKYK4ephgIH9iRh3w==, } - "@floating-ui/utils@0.2.8": + "@floating-ui/utils@0.2.9": resolution: { - integrity: sha512-kym7SodPp8/wloecOpcmSnWJsK7M0E5Wg8UcFA+uO4B9s5d0ywXOEro/8HM9x0rW+TljRzul/14UYz3TleT3ig==, + integrity: sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==, } "@foliojs-fork/fontkit@1.9.2": @@ -1953,10 +2006,10 @@ packages: integrity: sha512-AlquKGee+IWiAMYVB0xyHFZRMnu4n3X4HTvJHu79GiVJ1ojTukCWyxMlF5NMsecoLcBKsuBhx3QPv2vkE/zQ0A==, } - "@github/relative-time-element@4.4.4": + "@github/relative-time-element@4.4.5": resolution: { - integrity: sha512-Oi8uOL8O+ZWLD7dHRWCkm2cudcTYtB3VyOYf9BtzCgDGm+OKomyOREtItNMtWl1dxvec62BTKErq36uy+RYxQg==, + integrity: sha512-9ejPtayBDIJfEU8x1fg/w2o5mahHkkp1SC6uObDtoKs4Gn+2a1vNK8XIiNDD8rMeEfpvDjydgSZZ+uk+7N0VsQ==, } "@humanfs/core@0.19.1": @@ -1987,13 +2040,175 @@ packages: } engines: { node: ">=18.18" } - "@humanwhocodes/retry@0.4.1": + "@humanwhocodes/retry@0.4.2": resolution: { - integrity: sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==, + integrity: sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==, } engines: { node: ">=18.18" } + "@img/sharp-darwin-arm64@0.33.5": + resolution: + { + integrity: sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==, + } + engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 } + cpu: [arm64] + os: [darwin] + + "@img/sharp-darwin-x64@0.33.5": + resolution: + { + integrity: sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==, + } + engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 } + cpu: [x64] + os: [darwin] + + "@img/sharp-libvips-darwin-arm64@1.0.4": + resolution: + { + integrity: sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==, + } + cpu: [arm64] + os: [darwin] + + "@img/sharp-libvips-darwin-x64@1.0.4": + resolution: + { + integrity: sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==, + } + cpu: [x64] + os: [darwin] + + "@img/sharp-libvips-linux-arm64@1.0.4": + resolution: + { + integrity: sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==, + } + cpu: [arm64] + os: [linux] + + "@img/sharp-libvips-linux-arm@1.0.5": + resolution: + { + integrity: sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==, + } + cpu: [arm] + os: [linux] + + "@img/sharp-libvips-linux-s390x@1.0.4": + resolution: + { + integrity: sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==, + } + cpu: [s390x] + os: [linux] + + "@img/sharp-libvips-linux-x64@1.0.4": + resolution: + { + integrity: sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==, + } + cpu: [x64] + os: [linux] + + "@img/sharp-libvips-linuxmusl-arm64@1.0.4": + resolution: + { + integrity: sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==, + } + cpu: [arm64] + os: [linux] + + "@img/sharp-libvips-linuxmusl-x64@1.0.4": + resolution: + { + integrity: sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==, + } + cpu: [x64] + os: [linux] + + "@img/sharp-linux-arm64@0.33.5": + resolution: + { + integrity: sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==, + } + engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 } + cpu: [arm64] + os: [linux] + + "@img/sharp-linux-arm@0.33.5": + resolution: + { + integrity: sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==, + } + engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 } + cpu: [arm] + os: [linux] + + "@img/sharp-linux-s390x@0.33.5": + resolution: + { + integrity: sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==, + } + engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 } + cpu: [s390x] + os: [linux] + + "@img/sharp-linux-x64@0.33.5": + resolution: + { + integrity: sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==, + } + engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 } + cpu: [x64] + os: [linux] + + "@img/sharp-linuxmusl-arm64@0.33.5": + resolution: + { + integrity: sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==, + } + engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 } + cpu: [arm64] + os: [linux] + + "@img/sharp-linuxmusl-x64@0.33.5": + resolution: + { + integrity: sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==, + } + engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 } + cpu: [x64] + os: [linux] + + "@img/sharp-wasm32@0.33.5": + resolution: + { + integrity: sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==, + } + engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 } + cpu: [wasm32] + + "@img/sharp-win32-ia32@0.33.5": + resolution: + { + integrity: sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==, + } + engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 } + cpu: [ia32] + os: [win32] + + "@img/sharp-win32-x64@0.33.5": + resolution: + { + integrity: sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==, + } + engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 } + cpu: [x64] + os: [win32] + "@isaacs/cliui@8.0.2": resolution: { @@ -2040,6 +2255,12 @@ packages: integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==, } + "@keyv/serialize@1.0.2": + resolution: + { + integrity: sha512-+E/LyaAeuABniD/RvUezWVXKpeuvwLEA9//nE9952zBaOdBd2mQ3pPoM8cUe2X6IcMByfuSLzmYqnYshG60+HQ==, + } + "@lezer/common@1.2.3": resolution: { @@ -2261,6 +2482,12 @@ packages: } engines: { node: ">=12" } + "@polka/url@1.0.0-next.28": + resolution: + { + integrity: sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==, + } + "@rollup/plugin-babel@5.3.1": resolution: { @@ -2328,146 +2555,154 @@ packages: rollup: optional: true - "@rollup/rollup-android-arm-eabi@4.24.4": + "@rollup/rollup-android-arm-eabi@4.34.8": resolution: { - integrity: sha512-jfUJrFct/hTA0XDM5p/htWKoNNTbDLY0KRwEt6pyOA6k2fmk0WVwl65PdUdJZgzGEHWx+49LilkcSaumQRyNQw==, + integrity: sha512-q217OSE8DTp8AFHuNHXo0Y86e1wtlfVrXiAlwkIvGRQv9zbc6mE3sjIVfwI8sYUyNxwOg0j/Vm1RKM04JcWLJw==, } cpu: [arm] os: [android] - "@rollup/rollup-android-arm64@4.24.4": + "@rollup/rollup-android-arm64@4.34.8": resolution: { - integrity: sha512-j4nrEO6nHU1nZUuCfRKoCcvh7PIywQPUCBa2UsootTHvTHIoIu2BzueInGJhhvQO/2FTRdNYpf63xsgEqH9IhA==, + integrity: sha512-Gigjz7mNWaOL9wCggvoK3jEIUUbGul656opstjaUSGC3eT0BM7PofdAJaBfPFWWkXNVAXbaQtC99OCg4sJv70Q==, } cpu: [arm64] os: [android] - "@rollup/rollup-darwin-arm64@4.24.4": + "@rollup/rollup-darwin-arm64@4.34.8": resolution: { - integrity: sha512-GmU/QgGtBTeraKyldC7cDVVvAJEOr3dFLKneez/n7BvX57UdhOqDsVwzU7UOnYA7AAOt+Xb26lk79PldDHgMIQ==, + integrity: sha512-02rVdZ5tgdUNRxIUrFdcMBZQoaPMrxtwSb+/hOfBdqkatYHR3lZ2A2EGyHq2sGOd0Owk80oV3snlDASC24He3Q==, } cpu: [arm64] os: [darwin] - "@rollup/rollup-darwin-x64@4.24.4": + "@rollup/rollup-darwin-x64@4.34.8": resolution: { - integrity: sha512-N6oDBiZCBKlwYcsEPXGDE4g9RoxZLK6vT98M8111cW7VsVJFpNEqvJeIPfsCzbf0XEakPslh72X0gnlMi4Ddgg==, + integrity: sha512-qIP/elwR/tq/dYRx3lgwK31jkZvMiD6qUtOycLhTzCvrjbZ3LjQnEM9rNhSGpbLXVJYQ3rq39A6Re0h9tU2ynw==, } cpu: [x64] os: [darwin] - "@rollup/rollup-freebsd-arm64@4.24.4": + "@rollup/rollup-freebsd-arm64@4.34.8": resolution: { - integrity: sha512-py5oNShCCjCyjWXCZNrRGRpjWsF0ic8f4ieBNra5buQz0O/U6mMXCpC1LvrHuhJsNPgRt36tSYMidGzZiJF6mw==, + integrity: sha512-IQNVXL9iY6NniYbTaOKdrlVP3XIqazBgJOVkddzJlqnCpRi/yAeSOa8PLcECFSQochzqApIOE1GHNu3pCz+BDA==, } cpu: [arm64] os: [freebsd] - "@rollup/rollup-freebsd-x64@4.24.4": + "@rollup/rollup-freebsd-x64@4.34.8": resolution: { - integrity: sha512-L7VVVW9FCnTTp4i7KrmHeDsDvjB4++KOBENYtNYAiYl96jeBThFfhP6HVxL74v4SiZEVDH/1ILscR5U9S4ms4g==, + integrity: sha512-TYXcHghgnCqYFiE3FT5QwXtOZqDj5GmaFNTNt3jNC+vh22dc/ukG2cG+pi75QO4kACohZzidsq7yKTKwq/Jq7Q==, } cpu: [x64] os: [freebsd] - "@rollup/rollup-linux-arm-gnueabihf@4.24.4": + "@rollup/rollup-linux-arm-gnueabihf@4.34.8": resolution: { - integrity: sha512-10ICosOwYChROdQoQo589N5idQIisxjaFE/PAnX2i0Zr84mY0k9zul1ArH0rnJ/fpgiqfu13TFZR5A5YJLOYZA==, + integrity: sha512-A4iphFGNkWRd+5m3VIGuqHnG3MVnqKe7Al57u9mwgbyZ2/xF9Jio72MaY7xxh+Y87VAHmGQr73qoKL9HPbXj1g==, } cpu: [arm] os: [linux] - "@rollup/rollup-linux-arm-musleabihf@4.24.4": + "@rollup/rollup-linux-arm-musleabihf@4.34.8": resolution: { - integrity: sha512-ySAfWs69LYC7QhRDZNKqNhz2UKN8LDfbKSMAEtoEI0jitwfAG2iZwVqGACJT+kfYvvz3/JgsLlcBP+WWoKCLcw==, + integrity: sha512-S0lqKLfTm5u+QTxlFiAnb2J/2dgQqRy/XvziPtDd1rKZFXHTyYLoVL58M/XFwDI01AQCDIevGLbQrMAtdyanpA==, } cpu: [arm] os: [linux] - "@rollup/rollup-linux-arm64-gnu@4.24.4": + "@rollup/rollup-linux-arm64-gnu@4.34.8": resolution: { - integrity: sha512-uHYJ0HNOI6pGEeZ/5mgm5arNVTI0nLlmrbdph+pGXpC9tFHFDQmDMOEqkmUObRfosJqpU8RliYoGz06qSdtcjg==, + integrity: sha512-jpz9YOuPiSkL4G4pqKrus0pn9aYwpImGkosRKwNi+sJSkz+WU3anZe6hi73StLOQdfXYXC7hUfsQlTnjMd3s1A==, } cpu: [arm64] os: [linux] - "@rollup/rollup-linux-arm64-musl@4.24.4": + "@rollup/rollup-linux-arm64-musl@4.34.8": resolution: { - integrity: sha512-38yiWLemQf7aLHDgTg85fh3hW9stJ0Muk7+s6tIkSUOMmi4Xbv5pH/5Bofnsb6spIwD5FJiR+jg71f0CH5OzoA==, + integrity: sha512-KdSfaROOUJXgTVxJNAZ3KwkRc5nggDk+06P6lgi1HLv1hskgvxHUKZ4xtwHkVYJ1Rep4GNo+uEfycCRRxht7+Q==, } cpu: [arm64] os: [linux] - "@rollup/rollup-linux-powerpc64le-gnu@4.24.4": + "@rollup/rollup-linux-loongarch64-gnu@4.34.8": resolution: { - integrity: sha512-q73XUPnkwt9ZNF2xRS4fvneSuaHw2BXuV5rI4cw0fWYVIWIBeDZX7c7FWhFQPNTnE24172K30I+dViWRVD9TwA==, + integrity: sha512-NyF4gcxwkMFRjgXBM6g2lkT58OWztZvw5KkV2K0qqSnUEqCVcqdh2jN4gQrTn/YUpAcNKyFHfoOZEer9nwo6uQ==, + } + cpu: [loong64] + os: [linux] + + "@rollup/rollup-linux-powerpc64le-gnu@4.34.8": + resolution: + { + integrity: sha512-LMJc999GkhGvktHU85zNTDImZVUCJ1z/MbAJTnviiWmmjyckP5aQsHtcujMjpNdMZPT2rQEDBlJfubhs3jsMfw==, } cpu: [ppc64] os: [linux] - "@rollup/rollup-linux-riscv64-gnu@4.24.4": + "@rollup/rollup-linux-riscv64-gnu@4.34.8": resolution: { - integrity: sha512-Aie/TbmQi6UXokJqDZdmTJuZBCU3QBDA8oTKRGtd4ABi/nHgXICulfg1KI6n9/koDsiDbvHAiQO3YAUNa/7BCw==, + integrity: sha512-xAQCAHPj8nJq1PI3z8CIZzXuXCstquz7cIOL73HHdXiRcKk8Ywwqtx2wrIy23EcTn4aZ2fLJNBB8d0tQENPCmw==, } cpu: [riscv64] os: [linux] - "@rollup/rollup-linux-s390x-gnu@4.24.4": + "@rollup/rollup-linux-s390x-gnu@4.34.8": resolution: { - integrity: sha512-P8MPErVO/y8ohWSP9JY7lLQ8+YMHfTI4bAdtCi3pC2hTeqFJco2jYspzOzTUB8hwUWIIu1xwOrJE11nP+0JFAQ==, + integrity: sha512-DdePVk1NDEuc3fOe3dPPTb+rjMtuFw89gw6gVWxQFAuEqqSdDKnrwzZHrUYdac7A7dXl9Q2Vflxpme15gUWQFA==, } cpu: [s390x] os: [linux] - "@rollup/rollup-linux-x64-gnu@4.24.4": + "@rollup/rollup-linux-x64-gnu@4.34.8": resolution: { - integrity: sha512-K03TljaaoPK5FOyNMZAAEmhlyO49LaE4qCsr0lYHUKyb6QacTNF9pnfPpXnFlFD3TXuFbFbz7tJ51FujUXkXYA==, + integrity: sha512-8y7ED8gjxITUltTUEJLQdgpbPh1sUQ0kMTmufRF/Ns5tI9TNMNlhWtmPKKHCU0SilX+3MJkZ0zERYYGIVBYHIA==, } cpu: [x64] os: [linux] - "@rollup/rollup-linux-x64-musl@4.24.4": + "@rollup/rollup-linux-x64-musl@4.34.8": resolution: { - integrity: sha512-VJYl4xSl/wqG2D5xTYncVWW+26ICV4wubwN9Gs5NrqhJtayikwCXzPL8GDsLnaLU3WwhQ8W02IinYSFJfyo34Q==, + integrity: sha512-SCXcP0ZpGFIe7Ge+McxY5zKxiEI5ra+GT3QRxL0pMMtxPfpyLAKleZODi1zdRHkz5/BhueUrYtYVgubqe9JBNQ==, } cpu: [x64] os: [linux] - "@rollup/rollup-win32-arm64-msvc@4.24.4": + "@rollup/rollup-win32-arm64-msvc@4.34.8": resolution: { - integrity: sha512-ku2GvtPwQfCqoPFIJCqZ8o7bJcj+Y54cZSr43hHca6jLwAiCbZdBUOrqE6y29QFajNAzzpIOwsckaTFmN6/8TA==, + integrity: sha512-YHYsgzZgFJzTRbth4h7Or0m5O74Yda+hLin0irAIobkLQFRQd1qWmnoVfwmKm9TXIZVAD0nZ+GEb2ICicLyCnQ==, } cpu: [arm64] os: [win32] - "@rollup/rollup-win32-ia32-msvc@4.24.4": + "@rollup/rollup-win32-ia32-msvc@4.34.8": resolution: { - integrity: sha512-V3nCe+eTt/W6UYNr/wGvO1fLpHUrnlirlypZfKCT1fG6hWfqhPgQV/K/mRBXBpxc0eKLIF18pIOFVPh0mqHjlg==, + integrity: sha512-r3NRQrXkHr4uWy5TOjTpTYojR9XmF0j/RYgKCef+Ag46FWUTltm5ziticv8LdNsDMehjJ543x/+TJAek/xBA2w==, } cpu: [ia32] os: [win32] - "@rollup/rollup-win32-x64-msvc@4.24.4": + "@rollup/rollup-win32-x64-msvc@4.34.8": resolution: { - integrity: sha512-LTw1Dfd0mBIEqUVCxbvTE/LLo+9ZxVC9k99v1v4ahg9Aak6FpqOfNu5kRkeTAn0wphoC4JU7No1/rL+bBCEwhg==, + integrity: sha512-U0FaE5O1BCpZSeE6gBl3c5ObhePQSfk9vDRToMmTkbhCOgW4jqvtS5LGyQ76L1fH8sM0keRp4uDTsbjiUyjk0g==, } cpu: [x64] os: [win32] @@ -2510,14 +2745,14 @@ packages: } engines: { node: ">=18" } - "@semantic-release/exec@6.0.3": + "@semantic-release/exec@7.0.3": resolution: { - integrity: sha512-bxAq8vLOw76aV89vxxICecEa8jfaWwYITw6X74zzlO0mc/Bgieqx9kBRz9z96pHectiTAtsCwsQcUyLYWnp3VQ==, + integrity: sha512-uNWwPNtWi3WTcTm3fWfFQEuj8otOvwoS5m9yo2jSVHuvqdZNsOWmuL0/FqcVyZnCI32fxyYV0G7PPb/TzCH6jw==, } - engines: { node: ">=14.17" } + engines: { node: ">=20.8.1" } peerDependencies: - semantic-release: ">=18.0.0" + semantic-release: ">=24.1.0" "@semantic-release/git@10.0.1": resolution: @@ -2537,10 +2772,10 @@ packages: peerDependencies: semantic-release: ">=24.1.0" - "@semantic-release/gitlab@13.2.3": + "@semantic-release/gitlab@13.2.4": resolution: { - integrity: sha512-AzH/s7r8CLDN8dnbkrXnC+Gy9NYG/qRIIKMalaqNFAorgR+goGcqMb/6vIY9aVvwaoT1bo8xr1A+eeuuL4dGEQ==, + integrity: sha512-oj9LphVriiNyrB3oV/6tMxXrtYMaoq3VKUe7gxxkZIp4KmRhFbeSsxDrEGDnTke8uTm2PKAqgsGjD9oocv7bKw==, } engines: { node: ">=20.8.1" } peerDependencies: @@ -2613,21 +2848,21 @@ packages: } engines: { node: ">=14.16" } - "@tailwindcss/forms@0.5.9": + "@tailwindcss/forms@0.5.10": resolution: { - integrity: sha512-tM4XVr2+UVTxXJzey9Twx48c1gcxFStqn1pQz0tRsX8o3DvxhN5oY5pvyAbUx7VTaZxpej4Zzvc6h+1RJBzpIg==, + integrity: sha512-utI1ONF6uf/pPNO68kmN1b8rEwNXv3czukalo8VtJH8ksIkZXr3Q3VYudZLkCsDd4Wku120uF02hYK25XGPorw==, } peerDependencies: - tailwindcss: ">=3.0.0 || >= 3.0.0-alpha.1 || >= 4.0.0-alpha.20" + tailwindcss: ">=3.0.0 || >= 3.0.0-alpha.1 || >= 4.0.0-alpha.20 || >= 4.0.0-beta.1" - "@tailwindcss/typography@0.5.15": + "@tailwindcss/typography@0.5.16": resolution: { - integrity: sha512-AqhlCXl+8grUz8uqExv5OTtgpjuVIwFTSXTrh8y9/pw6q2ek7fJ+Y8ZEVw7EB2DCcuCOtEjf9w3+J3rzts01uA==, + integrity: sha512-0wDLwCVF5V3x3b1SGXPCDcdsbDHMBe+lkFzBRaHeLvNi+nrrnZ1lA18u+OTWO8iSWU2GxUOCvlXtDuqftc1oiA==, } peerDependencies: - tailwindcss: ">=3.0.0 || insiders || >=4.0.0-alpha.20" + tailwindcss: ">=3.0.0 || insiders || >=4.0.0-alpha.20 || >=4.0.0-beta.1" "@trysound/sax@0.2.0": resolution: @@ -2648,12 +2883,6 @@ packages: integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==, } - "@types/eslint__js@8.42.3": - resolution: - { - integrity: sha512-alfG737uhmPdnvkrLdZLcEKJ/B8s9Y4hrZ+YAdzUeoArBlSUERA2E87ROfOaS4jd/C45fzOoZzidLc1IPwLqOw==, - } - "@types/estree@0.0.39": resolution: { @@ -2690,10 +2919,10 @@ packages: integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==, } - "@types/leaflet@1.9.15": + "@types/leaflet@1.9.16": resolution: { - integrity: sha512-7UuggAuAs+mva66gtf2OTB1nEhzU/9JED93TIaOEgvFMvG/dIGQaukHE7izHo1Zd+Ko1L4ETUw7TBc8yUxevpg==, + integrity: sha512-wzZoyySUxkgMZ0ihJ7IaUIblG8Rdc8AbbZKLneyn+QjYsj5q1QU7TEKYqwTr10BGSzY5LI7tJk9Ifo+mEjdFRw==, } "@types/node@22.9.0": @@ -2732,74 +2961,74 @@ packages: integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==, } - "@typescript-eslint/eslint-plugin@8.18.2": + "@typescript-eslint/eslint-plugin@8.26.1": resolution: { - integrity: sha512-adig4SzPLjeQ0Tm+jvsozSGiCliI2ajeURDGHjZ2llnA+A67HihCQ+a3amtPhUakd1GlwHxSRvzOZktbEvhPPg==, + integrity: sha512-2X3mwqsj9Bd3Ciz508ZUtoQQYpOhU/kWoUqIf49H8Z0+Vbh6UF/y0OEYp0Q0axOGzaBGs7QxRwq0knSQ8khQNA==, } engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } peerDependencies: "@typescript-eslint/parser": ^8.0.0 || ^8.0.0-alpha.0 eslint: ^8.57.0 || ^9.0.0 - typescript: ">=4.8.4 <5.8.0" + typescript: ">=4.8.4 <5.9.0" - "@typescript-eslint/parser@8.18.2": + "@typescript-eslint/parser@8.26.1": resolution: { - integrity: sha512-y7tcq4StgxQD4mDr9+Jb26dZ+HTZ/SkfqpXSiqeUXZHxOUyjWDKsmwKhJ0/tApR08DgOhrFAoAhyB80/p3ViuA==, + integrity: sha512-w6HZUV4NWxqd8BdeFf81t07d7/YV9s7TCWrQQbG5uhuvGUAW+fq1usZ1Hmz9UPNLniFnD8GLSsDpjP0hm1S4lQ==, } engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: ">=4.8.4 <5.8.0" + typescript: ">=4.8.4 <5.9.0" - "@typescript-eslint/scope-manager@8.18.2": + "@typescript-eslint/scope-manager@8.26.1": resolution: { - integrity: sha512-YJFSfbd0CJjy14r/EvWapYgV4R5CHzptssoag2M7y3Ra7XNta6GPAJPPP5KGB9j14viYXyrzRO5GkX7CRfo8/g==, + integrity: sha512-6EIvbE5cNER8sqBu6V7+KeMZIC1664d2Yjt+B9EWUXrsyWpxx4lEZrmvxgSKRC6gX+efDL/UY9OpPZ267io3mg==, } engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } - "@typescript-eslint/type-utils@8.18.2": + "@typescript-eslint/type-utils@8.26.1": resolution: { - integrity: sha512-AB/Wr1Lz31bzHfGm/jgbFR0VB0SML/hd2P1yxzKDM48YmP7vbyJNHRExUE/wZsQj2wUCvbWH8poNHFuxLqCTnA==, + integrity: sha512-Kcj/TagJLwoY/5w9JGEFV0dclQdyqw9+VMndxOJKtoFSjfZhLXhYjzsQEeyza03rwHx2vFEGvrJWJBXKleRvZg==, } engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: ">=4.8.4 <5.8.0" + typescript: ">=4.8.4 <5.9.0" - "@typescript-eslint/types@8.18.2": + "@typescript-eslint/types@8.26.1": resolution: { - integrity: sha512-Z/zblEPp8cIvmEn6+tPDIHUbRu/0z5lqZ+NvolL5SvXWT5rQy7+Nch83M0++XzO0XrWRFWECgOAyE8bsJTl1GQ==, + integrity: sha512-n4THUQW27VmQMx+3P+B0Yptl7ydfceUj4ON/AQILAASwgYdZ/2dhfymRMh5egRUrvK5lSmaOm77Ry+lmXPOgBQ==, } engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } - "@typescript-eslint/typescript-estree@8.18.2": + "@typescript-eslint/typescript-estree@8.26.1": resolution: { - integrity: sha512-WXAVt595HjpmlfH4crSdM/1bcsqh+1weFRWIa9XMTx/XHZ9TCKMcr725tLYqWOgzKdeDrqVHxFotrvWcEsk2Tg==, + integrity: sha512-yUwPpUHDgdrv1QJ7YQal3cMVBGWfnuCdKbXw1yyjArax3353rEJP1ZA+4F8nOlQ3RfS2hUN/wze3nlY+ZOhvoA==, } engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } peerDependencies: - typescript: ">=4.8.4 <5.8.0" + typescript: ">=4.8.4 <5.9.0" - "@typescript-eslint/utils@8.18.2": + "@typescript-eslint/utils@8.26.1": resolution: { - integrity: sha512-Cr4A0H7DtVIPkauj4sTSXVl+VBWewE9/o40KcF3TV9aqDEOWoXF3/+oRXNby3DYzZeCATvbdksYsGZzplwnK/Q==, + integrity: sha512-V4Urxa/XtSUroUrnI7q6yUTD3hDtfJ2jzVfeT3VK0ciizfK2q/zGC0iDh1lFMUZR8cImRrep6/q0xd/1ZGPQpg==, } engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: ">=4.8.4 <5.8.0" + typescript: ">=4.8.4 <5.9.0" - "@typescript-eslint/visitor-keys@8.18.2": + "@typescript-eslint/visitor-keys@8.26.1": resolution: { - integrity: sha512-zORcwn4C3trOWiCqFQP1x6G3xTRyZ1LYydnj51cRnJ6hxBlr/cKPckk+PKPUw/fXmvfKTcw7bwY3w9izgx5jZw==, + integrity: sha512-AjOC3zfnxd6S4Eiy3jwktJPclqhFHNyd8L6Gycf9WUPoKZpgM5PjkxY1X7uSy61xVpiJDhhk7XT2NVsN3ALTWg==, } engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } @@ -2922,6 +3151,13 @@ packages: } engines: { node: ">=12" } + ansis@3.16.0: + resolution: + { + integrity: sha512-sU7d/tfZiYrsIAXbdL/CNZld5bCkruzwT5KmqmadCJYxuLxHAOBjidxD5+iLmN/6xEfjcQq1l7OpsiCBlc4LzA==, + } + engines: { node: ">=14" } + any-promise@1.3.0: resolution: { @@ -3078,6 +3314,12 @@ packages: } engines: { node: ">=8" } + birpc@2.2.0: + resolution: + { + integrity: sha512-1/22obknhoj56PcE+pZPp6AbWDdY55M81/ofpPW3Ltlp9Eh4zoFFLswvZmNpRTb790CY5tsNfgbYeNOqIARJfQ==, + } + bl@4.1.0: resolution: { @@ -3129,6 +3371,14 @@ packages: engines: { node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7 } hasBin: true + browserslist@4.24.4: + resolution: + { + integrity: sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==, + } + engines: { node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7 } + hasBin: true + buffer-from@1.1.2: resolution: { @@ -3141,6 +3391,19 @@ packages: integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==, } + buffer@6.0.3: + resolution: + { + integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==, + } + + bundle-name@4.1.0: + resolution: + { + integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==, + } + engines: { node: ">=18" } + cacheable-lookup@7.0.0: resolution: { @@ -3155,6 +3418,12 @@ packages: } engines: { node: ">=18" } + cacheable@1.8.8: + resolution: + { + integrity: sha512-OE1/jlarWxROUIpd0qGBSKFLkNsotY8pt4GeiVErUYh/NUeTNrT+SBksUgllQv4m6a0W/VZsLuiHb88maavqEw==, + } + cachedir@2.3.0: resolution: { @@ -3202,6 +3471,12 @@ packages: integrity: sha512-fmfjsOlJUpMWu+mAAtZZZHz7UEwsUxIIvu1TJfO1HqFQvB/B+ii0xr9B5HpbZY/mC4XZ8SvjHJqtAY6pDPQEog==, } + caniuse-lite@1.0.30001700: + resolution: + { + integrity: sha512-2S6XIXwaE7K7erT8dY+kLQcpa5ms63XlRkMkReXjle+kf6c5g38vyMl+Z5y8dSxOFDhcFe+nxnn261PLxBSQsQ==, + } + chalk@2.4.2: resolution: { @@ -3243,10 +3518,10 @@ packages: integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==, } - choices.js@11.0.3: + choices.js@11.1.0: resolution: { - integrity: sha512-sn1oLUEcvjj7vSSIT0QyexmLIeD6PFGSWrUUXKShL2LUtVFXU3OAIY/smNIQg0OKav3yk1rFa+F56hZ/uYC4cg==, + integrity: sha512-mIt0uLhedHg2ea/K2PACrVpt391vRGHuOoctPAiHcyemezwzNMxj7jOzNEk8e7EbjLh0S0sspDkSCADOKz9kcw==, } chokidar@3.6.0: @@ -3384,6 +3659,19 @@ packages: integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==, } + color-string@1.9.1: + resolution: + { + integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==, + } + + color@4.2.3: + resolution: + { + integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==, + } + engines: { node: ">=12.5.0" } + colord@2.9.3: resolution: { @@ -3396,10 +3684,10 @@ packages: integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==, } - commander@12.1.0: + commander@13.1.0: resolution: { - integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==, + integrity: sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==, } engines: { node: ">=18" } @@ -3697,10 +3985,10 @@ packages: } engines: { node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0 } - css-tree@3.0.1: + css-tree@3.1.0: resolution: { - integrity: sha512-8Fxxv+tGhORlshCdCwnNJytvlvq46sOLSYEx2ZIGurahWvMucSRnyjPA3AmrMq4VPRYbHVpWj5VkiVasrM2H4Q==, + integrity: sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==, } engines: { node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0 } @@ -3952,6 +4240,20 @@ packages: } engines: { node: ">=0.10.0" } + default-browser-id@5.0.0: + resolution: + { + integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==, + } + engines: { node: ">=18" } + + default-browser@5.2.1: + resolution: + { + integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==, + } + engines: { node: ">=18" } + defaults@1.0.4: resolution: { @@ -3972,6 +4274,13 @@ packages: } engines: { node: ">= 0.4" } + define-lazy-prop@3.0.0: + resolution: + { + integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==, + } + engines: { node: ">=12" } + define-properties@1.2.1: resolution: { @@ -3993,6 +4302,13 @@ packages: } engines: { node: ">=8" } + detect-libc@2.0.3: + resolution: + { + integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==, + } + engines: { node: ">=8" } + dfa@1.2.0: resolution: { @@ -4070,6 +4386,12 @@ packages: engines: { node: ">=0.10.0" } hasBin: true + electron-to-chromium@1.5.104: + resolution: + { + integrity: sha512-Us9M2L4cO/zMBqVkJtnj353nQhMju9slHm62NprKTmdF3HH8wYOtNvDFq/JB2+ZRoGLzdvYDiATlMHs98XBM1g==, + } + electron-to-chromium@1.5.52: resolution: { @@ -4134,6 +4456,12 @@ packages: integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==, } + error-stack-parser-es@1.0.5: + resolution: + { + integrity: sha512-5qucVt2XcuGMcEGgWI7i+yZpmpByQ8J1lHhcL7PwqCwu9FPP3VUXzT4ltHe5i2z9dePwEHcDVOAfSnHsOlCXRA==, + } + es-abstract@1.23.3: resolution: { @@ -4176,10 +4504,10 @@ packages: } engines: { node: ">= 0.4" } - esbuild@0.24.2: + esbuild@0.25.0: resolution: { - integrity: sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==, + integrity: sha512-BXq5mqc8ltbaN34cDqWuYKyNhX8D/Z0J1xdtdQ8UcIIIyJyz+ZMKUt58tF3SrZ85jcfN/PZYhjR5uDQAYNVbuw==, } engines: { node: ">=18" } hasBin: true @@ -4212,19 +4540,19 @@ packages: } engines: { node: ">=12" } - eslint-config-prettier@9.1.0: + eslint-config-prettier@10.1.1: resolution: { - integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==, + integrity: sha512-4EQQr6wXwS+ZJSzaR5ZCrYgLxqvUjdXctaEtBqHcbkW944B1NQyO4qpdHQbXBONfwxXdkAY81HH4+LUfrg+zPw==, } hasBin: true peerDependencies: eslint: ">=7.0.0" - eslint-plugin-prettier@5.2.1: + eslint-plugin-prettier@5.2.3: resolution: { - integrity: sha512-gH3iR3g4JfF+yYPaJYkN7jEl9QbweL/YfkoRlNnuIEHEz1vHVlCmWOS+eGGiRuzHQXdJFCOTxRgvju9b8VUmrw==, + integrity: sha512-qJ+y0FfCp/mQYQ/vWQ3s7eUlFEL4PyKfAJxsnYTJ4YT73nsJBWqmEpFryxV9OeUiqmsTsYJ5Y+KDNaeP31wrRw==, } engines: { node: ^14.18.0 || >=16.0.0 } peerDependencies: @@ -4238,10 +4566,10 @@ packages: eslint-config-prettier: optional: true - eslint-scope@8.2.0: + eslint-scope@8.3.0: resolution: { - integrity: sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==, + integrity: sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==, } engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } @@ -4259,10 +4587,10 @@ packages: } engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } - eslint@9.17.0: + eslint@9.22.0: resolution: { - integrity: sha512-evtlNcpJg+cZLcnVKwsai8fExnqjGPicK7gnUtlNuzu+Fv9bI0aLpND5T44VLQtoMEnI57LoXO9XAkIXwohKrA==, + integrity: sha512-9V/QURhsRN40xuHXWjV64yvrzMjcz7ZyNoF2jJFmy9j/SLk0u1OLSZgXi28MrXjymnjEGSR80WCdab3RGMDveQ==, } engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } hasBin: true @@ -4379,6 +4707,13 @@ packages: } engines: { node: ">=8.6.0" } + fast-glob@3.3.3: + resolution: + { + integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==, + } + engines: { node: ">=8.6.0" } + fast-json-stable-stringify@2.1.0: resolution: { @@ -4442,6 +4777,12 @@ packages: } engines: { node: ">=18" } + file-entry-cache@10.0.6: + resolution: + { + integrity: sha512-0wvv16mVo9nN0Md3k7DMjgAPKG/TY4F/gYMBVb/wMThFRJvzrpaqBFqF6km9wf8QfYTN+mNg5aeaBLfy8k35uA==, + } + file-entry-cache@8.0.0: resolution: { @@ -4449,13 +4790,6 @@ packages: } engines: { node: ">=16.0.0" } - file-entry-cache@9.1.0: - resolution: - { - integrity: sha512-/pqPFG+FdxWQj+/WSuzXSDaNzxgTLr/OrR1QuqfEZzDakpdYE70PwUxL7BPUa8hpjbvY1+qvCl8k+8Tq34xJgg==, - } - engines: { node: ">=18" } - filelist@1.0.4: resolution: { @@ -4537,12 +4871,11 @@ packages: } engines: { node: ">=16" } - flat-cache@5.0.0: + flat-cache@6.1.6: resolution: { - integrity: sha512-JrqFmyUl2PnPi1OvLyTVHnQvwQ0S+e6lGSwu8OkAZlSaNIZciTY2H/cOOROxsBA1m/LZNHDsqAgDZt6akWcjsQ==, + integrity: sha512-F+CKgSwp0pzLx67u+Zy1aCueVWFAHWbXepvXlZ+bWVTaASbm5SyCnSJ80Fp1ePEmS57wU+Bf6cx6525qtMZ4lQ==, } - engines: { node: ">=18" } flatpickr@4.6.13: resolution: @@ -4550,10 +4883,10 @@ packages: integrity: sha512-97PMG/aywoYpB4IvbvUJi0RQi8vearvU0oov1WW3k0WZPBMrTQVqekSX5CjSG/M4Q3i6A/0FKXC7RyAoAUUSPw==, } - flatted@3.3.1: + flatted@3.3.2: resolution: { - integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==, + integrity: sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==, } for-each@0.3.3: @@ -4766,6 +5099,14 @@ packages: } hasBin: true + glob@11.0.1: + resolution: + { + integrity: sha512-zrQDm8XPnYEKawJScsnM0QzobJxlT/kHOOlRTio8IH/GrmxRE5fjllkzdaHclIuNjUQTJYH2xHNIGfdpJkDJUw==, + } + engines: { node: 20 || >=22 } + hasBin: true + glob@7.2.3: resolution: { @@ -4822,10 +5163,10 @@ packages: } engines: { node: ">=18" } - globals@15.14.0: + globals@16.0.0: resolution: { - integrity: sha512-OkToC372DtlQeje9/zHIo5CT8lRP/FUgEOKBEhU4e0abL7J7CD24fD9ohiLN5hagG/kWCYj4K5oaxxtj2Z0Dig==, + integrity: sha512-iInW14XItCXET01CQFqudPOWP2jYMl7T+QRQT+UNcR/iQncN/F0UNpgd76iFkBPgNQb4+X3LV9tLJYzwh+Gl3A==, } engines: { node: ">=18" } @@ -4969,6 +5310,12 @@ packages: } engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + hookified@1.7.0: + resolution: + { + integrity: sha512-XQdMjqC1AyeOzfs+17cnIk7Wdfu1hh2JtcyNfBf5u9jHrT3iZUlGHxLTntFBuk5lwkqJ6l3+daeQdHK5yByHVA==, + } + hosted-git-info@7.0.2: resolution: { @@ -4997,10 +5344,10 @@ packages: } engines: { node: ">=8" } - htmlfy@0.5.0: + htmlfy@0.6.2: resolution: { - integrity: sha512-/g4imybF9k7eJT+VEsjtpx1i3BHYxFxv6/RS0Lf8veh1+pw0HzAEndGTdjvrlVRqUSu7YurJZkfnLXpVZ2yrEw==, + integrity: sha512-dWRE+TW3QSB5mXsnYCUPLoPmaCu2O7kp6/3xh5fayiGuaNtRL/64SdjhoTBwJ2XvuSkLoMgQDLunrAqwxJj40Q==, } http-cache-semantics@4.1.1: @@ -5092,10 +5439,10 @@ packages: } engines: { node: ">= 4" } - ignore@6.0.2: + ignore@7.0.3: resolution: { - integrity: sha512-InwqeHHN2XpumIkMvpl/DCJVrAHgCsG5+cn1XlnLWGwtZBm8QJfSusItfrwx81CTp5agNZqpKU2J/ccC5nGT4A==, + integrity: sha512-bAH5jbK/F3T3Jls4I0SO1hmPR0dKU0a7+SY6n1yzRtG54FLO8d6w/nxLFX2Nb7dBu6cCWXPaAME6cYqFUMmuCA==, } engines: { node: ">= 4" } @@ -5113,6 +5460,13 @@ packages: } engines: { node: ">=16.20" } + import-from-esm@2.0.0: + resolution: + { + integrity: sha512-YVt14UZCgsX1vZQ3gKjkWVdBdHQ6eu3MPU1TBgL1H5orXe2+jWD006WCPPtOuwlQm10NuzOW5WawiF1Q9veW8g==, + } + engines: { node: ">=18.20" } + import-meta-resolve@4.1.0: resolution: { @@ -5228,6 +5582,12 @@ packages: integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==, } + is-arrayish@0.3.2: + resolution: + { + integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==, + } + is-bigint@1.0.4: resolution: { @@ -5283,6 +5643,14 @@ packages: } engines: { node: ">= 0.4" } + is-docker@3.0.0: + resolution: + { + integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==, + } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + hasBin: true + is-extglob@2.1.1: resolution: { @@ -5318,6 +5686,14 @@ packages: } engines: { node: ">=0.10.0" } + is-inside-container@1.0.0: + resolution: + { + integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==, + } + engines: { node: ">=14.16" } + hasBin: true + is-interactive@1.0.0: resolution: { @@ -5483,6 +5859,13 @@ packages: } engines: { node: ">=0.10.0" } + is-wsl@3.1.0: + resolution: + { + integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==, + } + engines: { node: ">=16" } + isarray@1.0.0: resolution: { @@ -5514,6 +5897,13 @@ packages: integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==, } + jackspeak@4.0.2: + resolution: + { + integrity: sha512-bZsjR/iRjl1Nk1UkjGpAzLNfQtzuijhn2g+pbZb98HQ1Gk8vM9hfbxeMBP+M2/UUdwj0RqGG3mlvk2MsAqwvEw==, + } + engines: { node: 20 || >=22 } + jake@10.9.2: resolution: { @@ -5653,6 +6043,12 @@ packages: integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==, } + keyv@5.2.3: + resolution: + { + integrity: sha512-AGKecUfzrowabUv0bH1RIR5Vf7w+l4S3xtQAypKaUpTdIR1EbrAcTxHCrpo9Q+IWeUlFE2palRtgIQcgm+PQJw==, + } + kind-of@6.0.3: resolution: { @@ -5714,10 +6110,10 @@ packages: integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==, } - lint-staged@15.3.0: + lint-staged@15.5.0: resolution: { - integrity: sha512-vHFahytLoF2enJklgtOtCtIjZrKD/LoxlaUusd5nh7dWv/dkKQJY74ndFSzxCdv7g0ueGg1ORgTSt4Y9LPZn9A==, + integrity: sha512-WyCzSbfYGhK7cU+UuDDkzUiytbfbi0ZdPy2orwtM75P3WTtQBzmG40cCxIa8Ii2+XjfxzLH6Be46tUfWS85Xfg==, } engines: { node: ">=18.12.0" } hasBin: true @@ -5942,6 +6338,13 @@ packages: integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==, } + lru-cache@11.0.2: + resolution: + { + integrity: sha512-123qHRfJBmo2jXDbo/a5YOQrJoHF/GNQTLzQ5+IdK5pWpceK17yRc6ozlWd25FxvGKQbIUs91fDFkXmDHTKcyA==, + } + engines: { node: 20 || >=22 } + lru-cache@5.1.1: resolution: { @@ -5971,10 +6374,10 @@ packages: engines: { node: ">= 18" } hasBin: true - marked@15.0.4: + marked@15.0.7: resolution: { - integrity: sha512-TCHvDqmb3ZJ4PWG7VEGVgtefA5/euFmsIhxtD0XsBxI39gUSKL81mIRFdt0AiNQozUahd4ke98ZdirExd/vSEw==, + integrity: sha512-dgLIeKGLx5FwziAnsk4ONoGwHwGPJzselimvlVskE9XLN4Orv9u2VA3GWw/lYUqjfA0rUT/6fqKwfZJapP9BEg==, } engines: { node: ">= 18" } hasBin: true @@ -5997,10 +6400,10 @@ packages: integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==, } - mdn-data@2.12.1: + mdn-data@2.12.2: resolution: { - integrity: sha512-rsfnCbOHjqrhWxwt5/wtSLzpoKTzW7OXdT5lLOIH1OTYhWu9rRJveGq0sKvDZODABH7RX+uoR+DYcpFnq4Tf6Q==, + integrity: sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==, } meow@12.1.1: @@ -6093,6 +6496,13 @@ packages: } hasBin: true + minimatch@10.0.1: + resolution: + { + integrity: sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==, + } + engines: { node: 20 || >=22 } + minimatch@3.1.2: resolution: { @@ -6138,6 +6548,13 @@ packages: integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==, } + mrmime@2.0.0: + resolution: + { + integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==, + } + engines: { node: ">=10" } + ms@2.1.3: resolution: { @@ -6156,10 +6573,10 @@ packages: integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==, } - nanoid@3.3.7: + nanoid@3.3.8: resolution: { - integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==, + integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==, } engines: { node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1 } hasBin: true @@ -6207,6 +6624,12 @@ packages: integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==, } + node-releases@2.0.19: + resolution: + { + integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==, + } + normalize-package-data@6.0.2: resolution: { @@ -6381,6 +6804,12 @@ packages: } engines: { node: ">= 0.4" } + ohash@2.0.4: + resolution: + { + integrity: sha512-ac+SFwzhdHb0hp48/dbR7Jta39qfbuj7t3hApd9uyHS8bisHTfVzSEvjOVgV0L3zG7VR2/7JjkSGimP75D+hOQ==, + } + once@1.4.0: resolution: { @@ -6408,6 +6837,13 @@ packages: } engines: { node: ">=18" } + open@10.1.0: + resolution: + { + integrity: sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==, + } + engines: { node: ">=18" } + optionator@0.9.4: resolution: { @@ -6520,6 +6956,13 @@ packages: } engines: { node: ">=18" } + p-map@7.0.3: + resolution: + { + integrity: sha512-VkndIv2fIB99swvQoA65bm+fsmt6UNdGeIB0oxBs+WhAhdh08QA04JXpI7rbB9r08/nkbysKoya9rtDERYOYMA==, + } + engines: { node: ">=18" } + p-reduce@2.1.0: resolution: { @@ -6688,6 +7131,13 @@ packages: } engines: { node: ">=16 || 14 >=14.18" } + path-scurry@2.0.0: + resolution: + { + integrity: sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==, + } + engines: { node: 20 || >=22 } + path-type@4.0.0: resolution: { @@ -6702,6 +7152,12 @@ packages: } engines: { node: ">=12" } + pathe@2.0.3: + resolution: + { + integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==, + } + pdfmake@0.2.15: resolution: { @@ -6717,6 +7173,12 @@ packages: engines: { node: ">=0.10" } hasBin: true + perfect-debounce@1.0.0: + resolution: + { + integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==, + } + performance-now@2.1.0: resolution: { @@ -6832,10 +7294,10 @@ packages: peerDependencies: postcss: ^8.4.6 - postcss-color-functional-notation@7.0.7: + postcss-color-functional-notation@7.0.8: resolution: { - integrity: sha512-EZvAHsvyASX63vXnyXOIynkxhaHRSsdb7z6yiXKIovGXAolW4cMZ3qoh7k3VdTsLBS6VGdksGfIo3r6+waLoOw==, + integrity: sha512-S/TpMKVKofNvsxfau/+bw+IA6cSfB6/kmzFj5szUofHOVnFFMB2WwK+Zu07BeMD8T0n+ZnTO5uXiMvAKe2dPkA==, } engines: { node: ">=18" } peerDependencies: @@ -7029,10 +7491,10 @@ packages: peerDependencies: postcss: ^8.4.21 - postcss-lab-function@7.0.7: + postcss-lab-function@7.0.8: resolution: { - integrity: sha512-+ONj2bpOQfsCKZE2T9VGMyVVdGcGUpr7u3SVfvkJlvhTRmDCfY25k4Jc8fubB9DclAPR4+w8uVtDZmdRgdAHig==, + integrity: sha512-plV21I86Hg9q8omNz13G9fhPtLopIWH06bt/Cb5cs1XnaGU2kUtEitvVd4vtQb/VqCdNUHK5swKn3QFmMRbpDg==, } engines: { node: ">=18" } peerDependencies: @@ -7053,10 +7515,10 @@ packages: ts-node: optional: true - postcss-logical@8.0.0: + postcss-logical@8.1.0: resolution: { - integrity: sha512-HpIdsdieClTjXLOyYdUPAX/XQASNIwdKt5hoZW08ZOAiI+tbV0ta1oclkpVkW5ANU+xJvk3KkA0FejkjGLXUkg==, + integrity: sha512-pL1hXFQ2fEXNKiNiAgtfA005T9FBxky5zkX6s4GZM2D8RkVgRqz3f4g1JUoq925zXv495qk8UNldDwh8uGEDoA==, } engines: { node: ">=18" } peerDependencies: @@ -7259,10 +7721,10 @@ packages: peerDependencies: postcss: ^8.4 - postcss-preset-env@10.1.3: + postcss-preset-env@10.1.5: resolution: { - integrity: sha512-9qzVhcMFU/MnwYHyYpJz4JhGku/4+xEiPTmhn0hj3IxnUYlEF9vbh7OC1KoLAnenS6Fgg43TKNp9xcuMeAi4Zw==, + integrity: sha512-LQybafF/K7H+6fAs4SIkgzkSCixJy0/h0gubDIAP3Ihz+IQBRwsjyvBnAZ3JUHD+A/ITaxVRPDxn//a3Qy4pDw==, } engines: { node: ">=18" } peerDependencies: @@ -7357,6 +7819,13 @@ packages: } engines: { node: ">=4" } + postcss-selector-parser@7.1.0: + resolution: + { + integrity: sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==, + } + engines: { node: ">=4" } + postcss-svgo@7.0.1: resolution: { @@ -7381,10 +7850,10 @@ packages: integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==, } - postcss@8.4.49: + postcss@8.5.3: resolution: { - integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==, + integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==, } engines: { node: ^10 || ^12 || >=14 } @@ -7423,10 +7892,10 @@ packages: engines: { node: ">=10.13.0" } hasBin: true - prettier@3.4.2: + prettier@3.5.3: resolution: { - integrity: sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==, + integrity: sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==, } engines: { node: ">=14" } hasBin: true @@ -7717,14 +8186,21 @@ packages: engines: { node: ">=10.0.0" } hasBin: true - rollup@4.24.4: + rollup@4.34.8: resolution: { - integrity: sha512-vGorVWIsWfX3xbcyAS+I047kFKapHYivmkaT63Smj77XwvLSJos6M1xGqZnBPFQFBRZDOcG1QnYEIxAvTr/HjA==, + integrity: sha512-489gTVMzAYdiZHFVA/ig/iYFllCcWFHMvUHI1rpFmkoUtRlQxqh6/yiNqnYibjMZ2b/+FUQwldG+aLsEt6bglQ==, } engines: { node: ">=18.0.0", npm: ">=8.0.0" } hasBin: true + run-applescript@7.0.0: + resolution: + { + integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==, + } + engines: { node: ">=18" } + run-async@2.4.1: resolution: { @@ -7789,10 +8265,10 @@ packages: integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==, } - semantic-release@24.2.0: + semantic-release@24.2.3: resolution: { - integrity: sha512-fQfn6e/aYToRtVJYKqneFM1Rg3KP2gh3wSWtpYsLlz6uaPKlISrTzvYAFn+mYWo07F0X1Cz5ucU89AVE8X1mbg==, + integrity: sha512-KRhQG9cUazPavJiJEFIJ3XAMjgfd0fcK3B+T26qOl8L0UG5aZUjeRfREO0KM5InGtYwxqiiytkJrbcYoLDEv0A==, } engines: { node: ">=20.8.1" } hasBin: true @@ -7852,6 +8328,13 @@ packages: } engines: { node: ">= 0.4" } + sharp@0.33.5: + resolution: + { + integrity: sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==, + } + engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 } + shebang-command@2.0.0: resolution: { @@ -7893,6 +8376,19 @@ packages: } engines: { node: ">=6" } + simple-swizzle@0.2.2: + resolution: + { + integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==, + } + + sirv@3.0.1: + resolution: + { + integrity: sha512-FoqMu0NCGBLCcAkS1qA+XJIQTR6/JHfQXl+uGteNCQ76T91DMUjPa9xfmeqMY3z80nLSg9yQmNjK0Px6RWsH/A==, + } + engines: { node: ">=18" } + skin-tone@2.0.0: resolution: { @@ -8196,28 +8692,28 @@ packages: peerDependencies: postcss: ^8.4.31 - stylelint-config-recommended@14.0.1: + stylelint-config-recommended@15.0.0: resolution: { - integrity: sha512-bLvc1WOz/14aPImu/cufKAZYfXs/A/owZfSMZ4N+16WGXLoX5lOir53M6odBxvhgmgdxCVnNySJmZKx73T93cg==, + integrity: sha512-9LejMFsat7L+NXttdHdTq94byn25TD+82bzGRiV1Pgasl99pWnwipXS5DguTpp3nP1XjvLXVnEJIuYBfsRjRkA==, } engines: { node: ">=18.12.0" } peerDependencies: - stylelint: ^16.1.0 + stylelint: ^16.13.0 - stylelint-config-standard@36.0.1: + stylelint-config-standard@37.0.0: resolution: { - integrity: sha512-8aX8mTzJ6cuO8mmD5yon61CWuIM4UD8Q5aBcWKGSf6kg+EC3uhB+iOywpTK4ca6ZL7B49en8yanOFtUW0qNzyw==, + integrity: sha512-+6eBlbSTrOn/il2RlV0zYGQwRTkr+WtzuVSs1reaWGObxnxLpbcspCUYajVQHonVfxVw2U+h42azGhrBvcg8OA==, } engines: { node: ">=18.12.0" } peerDependencies: - stylelint: ^16.1.0 + stylelint: ^16.13.0 - stylelint@16.12.0: + stylelint@16.15.0: resolution: { - integrity: sha512-F8zZ3L/rBpuoBZRvI4JVT20ZanPLXfQLzMOZg1tzPflRVh9mKpOZ8qcSIhh1my3FjAjZWG4T2POwGnmn6a6hbg==, + integrity: sha512-OK6Rs7EPdcdmjqiDycadZY4fw3f5/TC1X6/tGjnF3OosbwCeNs7nG+79MCAtjEg7ckwqTJTsku08e0Rmaz5nUw==, } engines: { node: ">=18.12.0" } hasBin: true @@ -8258,6 +8754,13 @@ packages: } engines: { node: ">=14.18" } + supports-hyperlinks@3.2.0: + resolution: + { + integrity: sha512-zFObLMyZeEwzAoKCyu1B91U79K2t7ApXuQfo8OuxwXLDgcKxuwM+YvcbIhm6QWqz7mHUH1TVytR1PwVVjEuMig==, + } + engines: { node: ">=14.18" } + supports-preserve-symlinks-flag@1.0.0: resolution: { @@ -8421,6 +8924,13 @@ packages: } engines: { node: ">=8.0" } + totalist@3.0.1: + resolution: + { + integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==, + } + engines: { node: ">=6" } + tr46@0.0.3: resolution: { @@ -8440,14 +8950,14 @@ packages: } engines: { node: ">= 0.4" } - ts-api-utils@1.4.0: + ts-api-utils@2.0.1: resolution: { - integrity: sha512-032cPxaEKwM+GT3vA5JXNzIaizx388rhsSW79vGRNGXfRRAdEAn2mvk36PvK5HnOchyWZ7afLEXqYCvPCrzuzQ==, + integrity: sha512-dnlgjFSVetynI8nzgJ+qF62efpglpWRk8isUEWZGWlJYySCTD6aKvbUDu+zbPeDakk3bg5H4XpitHukgfL1m9w==, } - engines: { node: ">=16" } + engines: { node: ">=18.12" } peerDependencies: - typescript: ">=4.2.0" + typescript: ">=4.8.4" ts-interface-checker@0.1.13: resolution: @@ -8537,20 +9047,20 @@ packages: } engines: { node: ">= 0.4" } - typescript-eslint@8.18.2: + typescript-eslint@8.26.1: resolution: { - integrity: sha512-KuXezG6jHkvC3MvizeXgupZzaG5wjhU3yE8E7e6viOvAvD9xAWYp8/vy0WULTGe9DYDWcQu7aW03YIV3mSitrQ==, + integrity: sha512-t/oIs9mYyrwZGRpDv3g+3K6nZ5uhKEMt2oNmAPwaY4/ye0+EH4nXIPYNtkYFS6QHm+1DFg34DbglYBz5P9Xysg==, } engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: ">=4.8.4 <5.8.0" + typescript: ">=4.8.4 <5.9.0" - typescript@5.7.2: + typescript@5.7.3: resolution: { - integrity: sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==, + integrity: sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==, } engines: { node: ">=14.17" } hasBin: true @@ -8663,6 +9173,13 @@ packages: } engines: { node: ">= 10.0.0" } + unplugin-utils@0.2.4: + resolution: + { + integrity: sha512-8U/MtpkPkkk3Atewj1+RcKIjb5WBimZ/WSLhhR3w6SsIj8XJuKTacSP8g+2JhfSGw0Cb125Y+2zA/IzJZDVbhA==, + } + engines: { node: ">=18.12.0" } + upath@1.2.0: resolution: { @@ -8710,6 +9227,43 @@ packages: integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==, } + vite-dev-rpc@1.0.7: + resolution: + { + integrity: sha512-FxSTEofDbUi2XXujCA+hdzCDkXFG1PXktMjSk1efq9Qb5lOYaaM9zNSvKvPPF7645Bak79kSp1PTooMW2wktcA==, + } + peerDependencies: + vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0-0 || ^5.0.0-0 || ^6.0.1 + + vite-hot-client@2.0.4: + resolution: + { + integrity: sha512-W9LOGAyGMrbGArYJN4LBCdOC5+Zwh7dHvOHC0KmGKkJhsOzaKbpo/jEjpPKVHIW0/jBWj8RZG0NUxfgA8BxgAg==, + } + peerDependencies: + vite: ^2.6.0 || ^3.0.0 || ^4.0.0 || ^5.0.0-0 || ^6.0.0-0 + + vite-plugin-codeigniter@1.0.1: + resolution: + { + integrity: sha512-VXrzMeMKiqluyMKVALjaw0IK8TaIWwAdOIt6H2vU0QSnG7HI8NnHYcKSh3Zbb5/arwK5Op4JitbEVU6KzllPgQ==, + } + peerDependencies: + vite: ^6.0.0 + + vite-plugin-inspect@11.0.0: + resolution: + { + integrity: sha512-Q0RDNcMs1mbI2yGRwOzSapnnA6NFO0j88+Vb8pJX0iYMw34WczwKJi3JgheItDhbWRq/CLUR0cs+ajZpcUaIFQ==, + } + engines: { node: ">=14" } + peerDependencies: + "@nuxt/kit": "*" + vite: ^6.0.0 + peerDependenciesMeta: + "@nuxt/kit": + optional: true + vite-plugin-pwa@0.21.1: resolution: { @@ -8725,10 +9279,19 @@ packages: "@vite-pwa/assets-generator": optional: true - vite@6.0.6: + vite-plugin-static-copy@2.3.0: resolution: { - integrity: sha512-NSjmUuckPmDU18bHz7QZ+bTYhRR0iA72cs2QAxCqDpafJ0S6qetco0LB3WW2OxlMHS0JmAv+yZ/R3uPmMyGTjQ==, + integrity: sha512-LLKwhhHetGaCnWz4mas4qqjjguDka6/6b4+SeIohRroj8aCE7QTfiZECfPecslFQkWZ3HdQuq5kOPmWZjNYlKA==, + } + engines: { node: ^18.0.0 || >=20.0.0 } + peerDependencies: + vite: ^5.0.0 || ^6.0.0 + + vite@6.2.2: + resolution: + { + integrity: sha512-yW7PeMM+LkDzc7CgJuRLMW2Jz0FxMOsVJ8Lv3gpgW9WLcb9cTW+121UEr1hvmfR7w3SegR5ItvYyzVz1vxNJgQ==, } engines: { node: ^18.0.0 || ^20.0.0 || >=22.0.0 } hasBin: true @@ -8774,10 +9337,10 @@ packages: integrity: sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==, } - wavesurfer.js@7.8.14: + wavesurfer.js@7.9.1: resolution: { - integrity: sha512-VwljnCf97GxpA/I6gKWVriBvGYEcwAsOCaLb3vauPE4Jm6rIl1C9zVZ2S0a9CCLjVzeG0UukHZxXSblQV8dReA==, + integrity: sha512-+pG8X9c9BrfAW8KR54OPzZcAj/57sOL08He/tc6/7Mt6NCX3IfDFwexQxXVTILggGZUOUk7tFKfny32yGrysKA==, } wcwidth@1.0.1: @@ -8995,10 +9558,10 @@ packages: } engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } - xml-formatter@3.6.3: + xml-formatter@3.6.4: resolution: { - integrity: sha512-++x1TlRO1FRlQ82AZ4WnoCSufaI/PT/sycn4K8nRl4gnrNC1uYY2VV/67aALZ2m0Q4Q/BLj/L69K360Itw9NNg==, + integrity: sha512-vkvTNw4u9mp72lMmJHw771NE9EJLX0kfwIcP+ZEo9eJ6HmotX23vmykyROyIQ9Y3a+ckdUdhxIE2ZO66rYuPrg==, } engines: { node: ">= 16" } @@ -9041,10 +9604,10 @@ packages: integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==, } - yaml@2.6.1: + yaml@2.7.0: resolution: { - integrity: sha512-7r0XPzioN/Q9kXBro/XPnA6kznR73DHq+GXh5ON7ZozRO6aMjbmiBuKste2wslTFkC5d1dw0GooOCepZXJ2SAg==, + integrity: sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==, } engines: { node: ">= 14" } hasBin: true @@ -9112,12 +9675,18 @@ packages: } engines: { node: ">=18" } + zod@3.24.2: + resolution: + { + integrity: sha512-lY7CDW43ECgW9u1TcT3IoXHflywfVqDYze4waEz812jR/bZ8FHDsl7pFQoSZTz5N+2NqRXs8GBwnAwo3ZNxqhQ==, + } + snapshots: "@alloc/quick-lru@5.2.0": {} "@amcharts/amcharts4-geodata@4.1.30": {} - "@amcharts/amcharts4@4.10.39": + "@amcharts/amcharts4@4.10.40": dependencies: "@babel/runtime": 7.26.0 core-js: 3.39.0 @@ -9167,7 +9736,7 @@ snapshots: "@babel/traverse": 7.25.9 "@babel/types": 7.26.0 convert-source-map: 2.0.0 - debug: 4.3.7 + debug: 4.4.0 gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -9226,7 +9795,7 @@ snapshots: "@babel/core": 7.26.0 "@babel/helper-compilation-targets": 7.25.9 "@babel/helper-plugin-utils": 7.25.9 - debug: 4.3.7 + debug: 4.4.0 lodash.debounce: 4.0.8 resolve: 1.22.8 transitivePeerDependencies: @@ -9793,7 +10362,7 @@ snapshots: "@babel/parser": 7.26.2 "@babel/template": 7.25.9 "@babel/types": 7.26.0 - debug: 4.3.7 + debug: 4.4.0 globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -9803,25 +10372,25 @@ snapshots: "@babel/helper-string-parser": 7.25.9 "@babel/helper-validator-identifier": 7.25.9 - "@codemirror/autocomplete@6.18.2(@codemirror/language@6.10.8)(@codemirror/state@6.5.0)(@codemirror/view@6.36.1)(@lezer/common@1.2.3)": + "@codemirror/autocomplete@6.18.2(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.36.4)(@lezer/common@1.2.3)": dependencies: - "@codemirror/language": 6.10.8 - "@codemirror/state": 6.5.0 - "@codemirror/view": 6.36.1 + "@codemirror/language": 6.11.0 + "@codemirror/state": 6.5.2 + "@codemirror/view": 6.36.4 "@lezer/common": 1.2.3 - "@codemirror/commands@6.7.1": + "@codemirror/commands@6.8.0": dependencies: - "@codemirror/language": 6.10.8 - "@codemirror/state": 6.5.0 - "@codemirror/view": 6.36.1 + "@codemirror/language": 6.11.0 + "@codemirror/state": 6.5.2 + "@codemirror/view": 6.36.4 "@lezer/common": 1.2.3 - "@codemirror/lang-css@6.3.1(@codemirror/view@6.36.1)": + "@codemirror/lang-css@6.3.1(@codemirror/view@6.36.4)": dependencies: - "@codemirror/autocomplete": 6.18.2(@codemirror/language@6.10.8)(@codemirror/state@6.5.0)(@codemirror/view@6.36.1)(@lezer/common@1.2.3) - "@codemirror/language": 6.10.8 - "@codemirror/state": 6.5.0 + "@codemirror/autocomplete": 6.18.2(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.36.4)(@lezer/common@1.2.3) + "@codemirror/language": 6.11.0 + "@codemirror/state": 6.5.2 "@lezer/common": 1.2.3 "@lezer/css": 1.1.9 transitivePeerDependencies: @@ -9829,39 +10398,39 @@ snapshots: "@codemirror/lang-html@6.4.9": dependencies: - "@codemirror/autocomplete": 6.18.2(@codemirror/language@6.10.8)(@codemirror/state@6.5.0)(@codemirror/view@6.36.1)(@lezer/common@1.2.3) - "@codemirror/lang-css": 6.3.1(@codemirror/view@6.36.1) + "@codemirror/autocomplete": 6.18.2(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.36.4)(@lezer/common@1.2.3) + "@codemirror/lang-css": 6.3.1(@codemirror/view@6.36.4) "@codemirror/lang-javascript": 6.2.2 - "@codemirror/language": 6.10.8 - "@codemirror/state": 6.5.0 - "@codemirror/view": 6.36.1 + "@codemirror/language": 6.11.0 + "@codemirror/state": 6.5.2 + "@codemirror/view": 6.36.4 "@lezer/common": 1.2.3 "@lezer/css": 1.1.9 "@lezer/html": 1.3.10 "@codemirror/lang-javascript@6.2.2": dependencies: - "@codemirror/autocomplete": 6.18.2(@codemirror/language@6.10.8)(@codemirror/state@6.5.0)(@codemirror/view@6.36.1)(@lezer/common@1.2.3) - "@codemirror/language": 6.10.8 + "@codemirror/autocomplete": 6.18.2(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.36.4)(@lezer/common@1.2.3) + "@codemirror/language": 6.11.0 "@codemirror/lint": 6.8.2 - "@codemirror/state": 6.5.0 - "@codemirror/view": 6.36.1 + "@codemirror/state": 6.5.2 + "@codemirror/view": 6.36.4 "@lezer/common": 1.2.3 "@lezer/javascript": 1.4.21 "@codemirror/lang-xml@6.1.0": dependencies: - "@codemirror/autocomplete": 6.18.2(@codemirror/language@6.10.8)(@codemirror/state@6.5.0)(@codemirror/view@6.36.1)(@lezer/common@1.2.3) - "@codemirror/language": 6.10.8 - "@codemirror/state": 6.5.0 - "@codemirror/view": 6.36.1 + "@codemirror/autocomplete": 6.18.2(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.36.4)(@lezer/common@1.2.3) + "@codemirror/language": 6.11.0 + "@codemirror/state": 6.5.2 + "@codemirror/view": 6.36.4 "@lezer/common": 1.2.3 "@lezer/xml": 1.0.5 - "@codemirror/language@6.10.8": + "@codemirror/language@6.11.0": dependencies: - "@codemirror/state": 6.5.0 - "@codemirror/view": 6.36.1 + "@codemirror/state": 6.5.2 + "@codemirror/view": 6.36.4 "@lezer/common": 1.2.3 "@lezer/highlight": 1.2.1 "@lezer/lr": 1.4.2 @@ -9869,89 +10438,98 @@ snapshots: "@codemirror/lint@6.8.2": dependencies: - "@codemirror/state": 6.5.0 - "@codemirror/view": 6.36.1 + "@codemirror/state": 6.5.2 + "@codemirror/view": 6.36.4 crelt: 1.0.6 "@codemirror/search@6.5.7": dependencies: - "@codemirror/state": 6.5.0 - "@codemirror/view": 6.36.1 + "@codemirror/state": 6.5.2 + "@codemirror/view": 6.36.4 crelt: 1.0.6 - "@codemirror/state@6.5.0": + "@codemirror/state@6.5.2": dependencies: "@marijn/find-cluster-break": 1.0.2 - "@codemirror/view@6.36.1": + "@codemirror/view@6.36.4": dependencies: - "@codemirror/state": 6.5.0 + "@codemirror/state": 6.5.2 style-mod: 4.1.2 w3c-keyname: 2.2.8 "@colors/colors@1.5.0": optional: true - "@commitlint/cli@19.6.1(@types/node@22.9.0)(typescript@5.7.2)": + "@commitlint/cli@19.8.0(@types/node@22.9.0)(typescript@5.7.3)": dependencies: - "@commitlint/format": 19.5.0 - "@commitlint/lint": 19.6.0 - "@commitlint/load": 19.6.1(@types/node@22.9.0)(typescript@5.7.2) - "@commitlint/read": 19.5.0 - "@commitlint/types": 19.5.0 + "@commitlint/format": 19.8.0 + "@commitlint/lint": 19.8.0 + "@commitlint/load": 19.8.0(@types/node@22.9.0)(typescript@5.7.3) + "@commitlint/read": 19.8.0 + "@commitlint/types": 19.8.0 tinyexec: 0.3.1 yargs: 17.7.2 transitivePeerDependencies: - "@types/node" - typescript - "@commitlint/config-conventional@19.6.0": + "@commitlint/config-conventional@19.8.0": dependencies: - "@commitlint/types": 19.5.0 + "@commitlint/types": 19.8.0 conventional-changelog-conventionalcommits: 7.0.2 "@commitlint/config-validator@19.5.0": dependencies: "@commitlint/types": 19.5.0 ajv: 8.17.1 + optional: true - "@commitlint/ensure@19.5.0": + "@commitlint/config-validator@19.8.0": dependencies: - "@commitlint/types": 19.5.0 + "@commitlint/types": 19.8.0 + ajv: 8.17.1 + + "@commitlint/ensure@19.8.0": + dependencies: + "@commitlint/types": 19.8.0 lodash.camelcase: 4.3.0 lodash.kebabcase: 4.1.1 lodash.snakecase: 4.1.1 lodash.startcase: 4.4.0 lodash.upperfirst: 4.3.1 - "@commitlint/execute-rule@19.5.0": {} + "@commitlint/execute-rule@19.5.0": + optional: true - "@commitlint/format@19.5.0": - dependencies: - "@commitlint/types": 19.5.0 - chalk: 5.3.0 + "@commitlint/execute-rule@19.8.0": {} - "@commitlint/is-ignored@19.6.0": + "@commitlint/format@19.8.0": dependencies: - "@commitlint/types": 19.5.0 + "@commitlint/types": 19.8.0 + chalk: 5.4.1 + + "@commitlint/is-ignored@19.8.0": + dependencies: + "@commitlint/types": 19.8.0 semver: 7.6.3 - "@commitlint/lint@19.6.0": + "@commitlint/lint@19.8.0": dependencies: - "@commitlint/is-ignored": 19.6.0 - "@commitlint/parse": 19.5.0 - "@commitlint/rules": 19.6.0 - "@commitlint/types": 19.5.0 + "@commitlint/is-ignored": 19.8.0 + "@commitlint/parse": 19.8.0 + "@commitlint/rules": 19.8.0 + "@commitlint/types": 19.8.0 - "@commitlint/load@19.5.0(@types/node@22.9.0)(typescript@5.7.2)": + "@commitlint/load@19.5.0(@types/node@22.9.0)(typescript@5.7.3)": dependencies: "@commitlint/config-validator": 19.5.0 "@commitlint/execute-rule": 19.5.0 "@commitlint/resolve-extends": 19.5.0 "@commitlint/types": 19.5.0 chalk: 5.3.0 - cosmiconfig: 9.0.0(typescript@5.7.2) - cosmiconfig-typescript-loader: 5.1.0(@types/node@22.9.0)(cosmiconfig@9.0.0(typescript@5.7.2))(typescript@5.7.2) + cosmiconfig: 9.0.0(typescript@5.7.3) + cosmiconfig-typescript-loader: 5.1.0(@types/node@22.9.0)(cosmiconfig@9.0.0(typescript@5.7.3))(typescript@5.7.3) lodash.isplainobject: 4.0.6 lodash.merge: 4.6.2 lodash.uniq: 4.5.0 @@ -9960,15 +10538,15 @@ snapshots: - typescript optional: true - "@commitlint/load@19.6.1(@types/node@22.9.0)(typescript@5.7.2)": + "@commitlint/load@19.8.0(@types/node@22.9.0)(typescript@5.7.3)": dependencies: - "@commitlint/config-validator": 19.5.0 - "@commitlint/execute-rule": 19.5.0 - "@commitlint/resolve-extends": 19.5.0 - "@commitlint/types": 19.5.0 - chalk: 5.3.0 - cosmiconfig: 9.0.0(typescript@5.7.2) - cosmiconfig-typescript-loader: 6.1.0(@types/node@22.9.0)(cosmiconfig@9.0.0(typescript@5.7.2))(typescript@5.7.2) + "@commitlint/config-validator": 19.8.0 + "@commitlint/execute-rule": 19.8.0 + "@commitlint/resolve-extends": 19.8.0 + "@commitlint/types": 19.8.0 + chalk: 5.4.1 + cosmiconfig: 9.0.0(typescript@5.7.3) + cosmiconfig-typescript-loader: 6.1.0(@types/node@22.9.0)(cosmiconfig@9.0.0(typescript@5.7.3))(typescript@5.7.3) lodash.isplainobject: 4.0.6 lodash.merge: 4.6.2 lodash.uniq: 4.5.0 @@ -9976,18 +10554,18 @@ snapshots: - "@types/node" - typescript - "@commitlint/message@19.5.0": {} + "@commitlint/message@19.8.0": {} - "@commitlint/parse@19.5.0": + "@commitlint/parse@19.8.0": dependencies: - "@commitlint/types": 19.5.0 + "@commitlint/types": 19.8.0 conventional-changelog-angular: 7.0.0 conventional-commits-parser: 5.0.0 - "@commitlint/read@19.5.0": + "@commitlint/read@19.8.0": dependencies: - "@commitlint/top-level": 19.5.0 - "@commitlint/types": 19.5.0 + "@commitlint/top-level": 19.8.0 + "@commitlint/types": 19.8.0 git-raw-commits: 4.0.0 minimist: 1.2.8 tinyexec: 0.3.1 @@ -10000,41 +10578,57 @@ snapshots: import-meta-resolve: 4.1.0 lodash.mergewith: 4.6.2 resolve-from: 5.0.0 + optional: true - "@commitlint/rules@19.6.0": + "@commitlint/resolve-extends@19.8.0": dependencies: - "@commitlint/ensure": 19.5.0 - "@commitlint/message": 19.5.0 - "@commitlint/to-lines": 19.5.0 - "@commitlint/types": 19.5.0 + "@commitlint/config-validator": 19.8.0 + "@commitlint/types": 19.8.0 + global-directory: 4.0.1 + import-meta-resolve: 4.1.0 + lodash.mergewith: 4.6.2 + resolve-from: 5.0.0 - "@commitlint/to-lines@19.5.0": {} + "@commitlint/rules@19.8.0": + dependencies: + "@commitlint/ensure": 19.8.0 + "@commitlint/message": 19.8.0 + "@commitlint/to-lines": 19.8.0 + "@commitlint/types": 19.8.0 - "@commitlint/top-level@19.5.0": + "@commitlint/to-lines@19.8.0": {} + + "@commitlint/top-level@19.8.0": dependencies: find-up: 7.0.0 "@commitlint/types@19.5.0": dependencies: "@types/conventional-commits-parser": 5.0.0 - chalk: 5.3.0 + chalk: 5.4.1 + optional: true + + "@commitlint/types@19.8.0": + dependencies: + "@types/conventional-commits-parser": 5.0.0 + chalk: 5.4.1 "@csstools/cascade-layer-name-parser@2.0.4(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)": dependencies: "@csstools/css-parser-algorithms": 3.0.4(@csstools/css-tokenizer@3.0.3) "@csstools/css-tokenizer": 3.0.3 - "@csstools/color-helpers@5.0.1": {} + "@csstools/color-helpers@5.0.2": {} - "@csstools/css-calc@2.1.1(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)": + "@csstools/css-calc@2.1.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)": dependencies: "@csstools/css-parser-algorithms": 3.0.4(@csstools/css-tokenizer@3.0.3) "@csstools/css-tokenizer": 3.0.3 - "@csstools/css-color-parser@3.0.7(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)": + "@csstools/css-color-parser@3.0.8(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)": dependencies: - "@csstools/color-helpers": 5.0.1 - "@csstools/css-calc": 2.1.1(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + "@csstools/color-helpers": 5.0.2 + "@csstools/css-calc": 2.1.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) "@csstools/css-parser-algorithms": 3.0.4(@csstools/css-tokenizer@3.0.3) "@csstools/css-tokenizer": 3.0.3 @@ -10049,215 +10643,215 @@ snapshots: "@csstools/css-parser-algorithms": 3.0.4(@csstools/css-tokenizer@3.0.3) "@csstools/css-tokenizer": 3.0.3 - "@csstools/postcss-cascade-layers@5.0.1(postcss@8.4.49)": + "@csstools/postcss-cascade-layers@5.0.1(postcss@8.5.3)": dependencies: "@csstools/selector-specificity": 5.0.0(postcss-selector-parser@7.0.0) - postcss: 8.4.49 + postcss: 8.5.3 postcss-selector-parser: 7.0.0 - "@csstools/postcss-color-function@4.0.7(postcss@8.4.49)": + "@csstools/postcss-color-function@4.0.8(postcss@8.5.3)": dependencies: - "@csstools/css-color-parser": 3.0.7(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + "@csstools/css-color-parser": 3.0.8(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) "@csstools/css-parser-algorithms": 3.0.4(@csstools/css-tokenizer@3.0.3) "@csstools/css-tokenizer": 3.0.3 - "@csstools/postcss-progressive-custom-properties": 4.0.0(postcss@8.4.49) - "@csstools/utilities": 2.0.0(postcss@8.4.49) - postcss: 8.4.49 + "@csstools/postcss-progressive-custom-properties": 4.0.0(postcss@8.5.3) + "@csstools/utilities": 2.0.0(postcss@8.5.3) + postcss: 8.5.3 - "@csstools/postcss-color-mix-function@3.0.7(postcss@8.4.49)": + "@csstools/postcss-color-mix-function@3.0.8(postcss@8.5.3)": dependencies: - "@csstools/css-color-parser": 3.0.7(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + "@csstools/css-color-parser": 3.0.8(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) "@csstools/css-parser-algorithms": 3.0.4(@csstools/css-tokenizer@3.0.3) "@csstools/css-tokenizer": 3.0.3 - "@csstools/postcss-progressive-custom-properties": 4.0.0(postcss@8.4.49) - "@csstools/utilities": 2.0.0(postcss@8.4.49) - postcss: 8.4.49 + "@csstools/postcss-progressive-custom-properties": 4.0.0(postcss@8.5.3) + "@csstools/utilities": 2.0.0(postcss@8.5.3) + postcss: 8.5.3 - "@csstools/postcss-content-alt-text@2.0.4(postcss@8.4.49)": + "@csstools/postcss-content-alt-text@2.0.4(postcss@8.5.3)": dependencies: "@csstools/css-parser-algorithms": 3.0.4(@csstools/css-tokenizer@3.0.3) "@csstools/css-tokenizer": 3.0.3 - "@csstools/postcss-progressive-custom-properties": 4.0.0(postcss@8.4.49) - "@csstools/utilities": 2.0.0(postcss@8.4.49) - postcss: 8.4.49 + "@csstools/postcss-progressive-custom-properties": 4.0.0(postcss@8.5.3) + "@csstools/utilities": 2.0.0(postcss@8.5.3) + postcss: 8.5.3 - "@csstools/postcss-exponential-functions@2.0.6(postcss@8.4.49)": + "@csstools/postcss-exponential-functions@2.0.7(postcss@8.5.3)": dependencies: - "@csstools/css-calc": 2.1.1(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + "@csstools/css-calc": 2.1.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) "@csstools/css-parser-algorithms": 3.0.4(@csstools/css-tokenizer@3.0.3) "@csstools/css-tokenizer": 3.0.3 - postcss: 8.4.49 + postcss: 8.5.3 - "@csstools/postcss-font-format-keywords@4.0.0(postcss@8.4.49)": + "@csstools/postcss-font-format-keywords@4.0.0(postcss@8.5.3)": dependencies: - "@csstools/utilities": 2.0.0(postcss@8.4.49) - postcss: 8.4.49 + "@csstools/utilities": 2.0.0(postcss@8.5.3) + postcss: 8.5.3 postcss-value-parser: 4.2.0 - "@csstools/postcss-gamut-mapping@2.0.7(postcss@8.4.49)": + "@csstools/postcss-gamut-mapping@2.0.8(postcss@8.5.3)": dependencies: - "@csstools/css-color-parser": 3.0.7(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + "@csstools/css-color-parser": 3.0.8(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) "@csstools/css-parser-algorithms": 3.0.4(@csstools/css-tokenizer@3.0.3) "@csstools/css-tokenizer": 3.0.3 - postcss: 8.4.49 + postcss: 8.5.3 - "@csstools/postcss-gradients-interpolation-method@5.0.7(postcss@8.4.49)": + "@csstools/postcss-gradients-interpolation-method@5.0.8(postcss@8.5.3)": dependencies: - "@csstools/css-color-parser": 3.0.7(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + "@csstools/css-color-parser": 3.0.8(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) "@csstools/css-parser-algorithms": 3.0.4(@csstools/css-tokenizer@3.0.3) "@csstools/css-tokenizer": 3.0.3 - "@csstools/postcss-progressive-custom-properties": 4.0.0(postcss@8.4.49) - "@csstools/utilities": 2.0.0(postcss@8.4.49) - postcss: 8.4.49 + "@csstools/postcss-progressive-custom-properties": 4.0.0(postcss@8.5.3) + "@csstools/utilities": 2.0.0(postcss@8.5.3) + postcss: 8.5.3 - "@csstools/postcss-hwb-function@4.0.7(postcss@8.4.49)": + "@csstools/postcss-hwb-function@4.0.8(postcss@8.5.3)": dependencies: - "@csstools/css-color-parser": 3.0.7(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + "@csstools/css-color-parser": 3.0.8(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) "@csstools/css-parser-algorithms": 3.0.4(@csstools/css-tokenizer@3.0.3) "@csstools/css-tokenizer": 3.0.3 - "@csstools/postcss-progressive-custom-properties": 4.0.0(postcss@8.4.49) - "@csstools/utilities": 2.0.0(postcss@8.4.49) - postcss: 8.4.49 + "@csstools/postcss-progressive-custom-properties": 4.0.0(postcss@8.5.3) + "@csstools/utilities": 2.0.0(postcss@8.5.3) + postcss: 8.5.3 - "@csstools/postcss-ic-unit@4.0.0(postcss@8.4.49)": + "@csstools/postcss-ic-unit@4.0.0(postcss@8.5.3)": dependencies: - "@csstools/postcss-progressive-custom-properties": 4.0.0(postcss@8.4.49) - "@csstools/utilities": 2.0.0(postcss@8.4.49) - postcss: 8.4.49 + "@csstools/postcss-progressive-custom-properties": 4.0.0(postcss@8.5.3) + "@csstools/utilities": 2.0.0(postcss@8.5.3) + postcss: 8.5.3 postcss-value-parser: 4.2.0 - "@csstools/postcss-initial@2.0.0(postcss@8.4.49)": + "@csstools/postcss-initial@2.0.1(postcss@8.5.3)": dependencies: - postcss: 8.4.49 + postcss: 8.5.3 - "@csstools/postcss-is-pseudo-class@5.0.1(postcss@8.4.49)": + "@csstools/postcss-is-pseudo-class@5.0.1(postcss@8.5.3)": dependencies: "@csstools/selector-specificity": 5.0.0(postcss-selector-parser@7.0.0) - postcss: 8.4.49 + postcss: 8.5.3 postcss-selector-parser: 7.0.0 - "@csstools/postcss-light-dark-function@2.0.7(postcss@8.4.49)": + "@csstools/postcss-light-dark-function@2.0.7(postcss@8.5.3)": dependencies: "@csstools/css-parser-algorithms": 3.0.4(@csstools/css-tokenizer@3.0.3) "@csstools/css-tokenizer": 3.0.3 - "@csstools/postcss-progressive-custom-properties": 4.0.0(postcss@8.4.49) - "@csstools/utilities": 2.0.0(postcss@8.4.49) - postcss: 8.4.49 + "@csstools/postcss-progressive-custom-properties": 4.0.0(postcss@8.5.3) + "@csstools/utilities": 2.0.0(postcss@8.5.3) + postcss: 8.5.3 - "@csstools/postcss-logical-float-and-clear@3.0.0(postcss@8.4.49)": + "@csstools/postcss-logical-float-and-clear@3.0.0(postcss@8.5.3)": dependencies: - postcss: 8.4.49 + postcss: 8.5.3 - "@csstools/postcss-logical-overflow@2.0.0(postcss@8.4.49)": + "@csstools/postcss-logical-overflow@2.0.0(postcss@8.5.3)": dependencies: - postcss: 8.4.49 + postcss: 8.5.3 - "@csstools/postcss-logical-overscroll-behavior@2.0.0(postcss@8.4.49)": + "@csstools/postcss-logical-overscroll-behavior@2.0.0(postcss@8.5.3)": dependencies: - postcss: 8.4.49 + postcss: 8.5.3 - "@csstools/postcss-logical-resize@3.0.0(postcss@8.4.49)": + "@csstools/postcss-logical-resize@3.0.0(postcss@8.5.3)": dependencies: - postcss: 8.4.49 + postcss: 8.5.3 postcss-value-parser: 4.2.0 - "@csstools/postcss-logical-viewport-units@3.0.3(postcss@8.4.49)": + "@csstools/postcss-logical-viewport-units@3.0.3(postcss@8.5.3)": dependencies: "@csstools/css-tokenizer": 3.0.3 - "@csstools/utilities": 2.0.0(postcss@8.4.49) - postcss: 8.4.49 + "@csstools/utilities": 2.0.0(postcss@8.5.3) + postcss: 8.5.3 - "@csstools/postcss-media-minmax@2.0.6(postcss@8.4.49)": + "@csstools/postcss-media-minmax@2.0.7(postcss@8.5.3)": dependencies: - "@csstools/css-calc": 2.1.1(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + "@csstools/css-calc": 2.1.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) "@csstools/css-parser-algorithms": 3.0.4(@csstools/css-tokenizer@3.0.3) "@csstools/css-tokenizer": 3.0.3 "@csstools/media-query-list-parser": 4.0.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) - postcss: 8.4.49 + postcss: 8.5.3 - "@csstools/postcss-media-queries-aspect-ratio-number-values@3.0.4(postcss@8.4.49)": + "@csstools/postcss-media-queries-aspect-ratio-number-values@3.0.4(postcss@8.5.3)": dependencies: "@csstools/css-parser-algorithms": 3.0.4(@csstools/css-tokenizer@3.0.3) "@csstools/css-tokenizer": 3.0.3 "@csstools/media-query-list-parser": 4.0.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) - postcss: 8.4.49 + postcss: 8.5.3 - "@csstools/postcss-nested-calc@4.0.0(postcss@8.4.49)": + "@csstools/postcss-nested-calc@4.0.0(postcss@8.5.3)": dependencies: - "@csstools/utilities": 2.0.0(postcss@8.4.49) - postcss: 8.4.49 + "@csstools/utilities": 2.0.0(postcss@8.5.3) + postcss: 8.5.3 postcss-value-parser: 4.2.0 - "@csstools/postcss-normalize-display-values@4.0.0(postcss@8.4.49)": + "@csstools/postcss-normalize-display-values@4.0.0(postcss@8.5.3)": dependencies: - postcss: 8.4.49 + postcss: 8.5.3 postcss-value-parser: 4.2.0 - "@csstools/postcss-oklab-function@4.0.7(postcss@8.4.49)": + "@csstools/postcss-oklab-function@4.0.8(postcss@8.5.3)": dependencies: - "@csstools/css-color-parser": 3.0.7(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + "@csstools/css-color-parser": 3.0.8(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) "@csstools/css-parser-algorithms": 3.0.4(@csstools/css-tokenizer@3.0.3) "@csstools/css-tokenizer": 3.0.3 - "@csstools/postcss-progressive-custom-properties": 4.0.0(postcss@8.4.49) - "@csstools/utilities": 2.0.0(postcss@8.4.49) - postcss: 8.4.49 + "@csstools/postcss-progressive-custom-properties": 4.0.0(postcss@8.5.3) + "@csstools/utilities": 2.0.0(postcss@8.5.3) + postcss: 8.5.3 - "@csstools/postcss-progressive-custom-properties@4.0.0(postcss@8.4.49)": + "@csstools/postcss-progressive-custom-properties@4.0.0(postcss@8.5.3)": dependencies: - postcss: 8.4.49 + postcss: 8.5.3 postcss-value-parser: 4.2.0 - "@csstools/postcss-random-function@1.0.2(postcss@8.4.49)": + "@csstools/postcss-random-function@1.0.3(postcss@8.5.3)": dependencies: - "@csstools/css-calc": 2.1.1(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + "@csstools/css-calc": 2.1.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) "@csstools/css-parser-algorithms": 3.0.4(@csstools/css-tokenizer@3.0.3) "@csstools/css-tokenizer": 3.0.3 - postcss: 8.4.49 + postcss: 8.5.3 - "@csstools/postcss-relative-color-syntax@3.0.7(postcss@8.4.49)": + "@csstools/postcss-relative-color-syntax@3.0.8(postcss@8.5.3)": dependencies: - "@csstools/css-color-parser": 3.0.7(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + "@csstools/css-color-parser": 3.0.8(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) "@csstools/css-parser-algorithms": 3.0.4(@csstools/css-tokenizer@3.0.3) "@csstools/css-tokenizer": 3.0.3 - "@csstools/postcss-progressive-custom-properties": 4.0.0(postcss@8.4.49) - "@csstools/utilities": 2.0.0(postcss@8.4.49) - postcss: 8.4.49 + "@csstools/postcss-progressive-custom-properties": 4.0.0(postcss@8.5.3) + "@csstools/utilities": 2.0.0(postcss@8.5.3) + postcss: 8.5.3 - "@csstools/postcss-scope-pseudo-class@4.0.1(postcss@8.4.49)": + "@csstools/postcss-scope-pseudo-class@4.0.1(postcss@8.5.3)": dependencies: - postcss: 8.4.49 + postcss: 8.5.3 postcss-selector-parser: 7.0.0 - "@csstools/postcss-sign-functions@1.1.1(postcss@8.4.49)": + "@csstools/postcss-sign-functions@1.1.2(postcss@8.5.3)": dependencies: - "@csstools/css-calc": 2.1.1(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + "@csstools/css-calc": 2.1.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) "@csstools/css-parser-algorithms": 3.0.4(@csstools/css-tokenizer@3.0.3) "@csstools/css-tokenizer": 3.0.3 - postcss: 8.4.49 + postcss: 8.5.3 - "@csstools/postcss-stepped-value-functions@4.0.6(postcss@8.4.49)": + "@csstools/postcss-stepped-value-functions@4.0.7(postcss@8.5.3)": dependencies: - "@csstools/css-calc": 2.1.1(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + "@csstools/css-calc": 2.1.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) "@csstools/css-parser-algorithms": 3.0.4(@csstools/css-tokenizer@3.0.3) "@csstools/css-tokenizer": 3.0.3 - postcss: 8.4.49 + postcss: 8.5.3 - "@csstools/postcss-text-decoration-shorthand@4.0.1(postcss@8.4.49)": + "@csstools/postcss-text-decoration-shorthand@4.0.2(postcss@8.5.3)": dependencies: - "@csstools/color-helpers": 5.0.1 - postcss: 8.4.49 + "@csstools/color-helpers": 5.0.2 + postcss: 8.5.3 postcss-value-parser: 4.2.0 - "@csstools/postcss-trigonometric-functions@4.0.6(postcss@8.4.49)": + "@csstools/postcss-trigonometric-functions@4.0.7(postcss@8.5.3)": dependencies: - "@csstools/css-calc": 2.1.1(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + "@csstools/css-calc": 2.1.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) "@csstools/css-parser-algorithms": 3.0.4(@csstools/css-tokenizer@3.0.3) "@csstools/css-tokenizer": 3.0.3 - postcss: 8.4.49 + postcss: 8.5.3 - "@csstools/postcss-unset-value@4.0.0(postcss@8.4.49)": + "@csstools/postcss-unset-value@4.0.0(postcss@8.5.3)": dependencies: - postcss: 8.4.49 + postcss: 8.5.3 "@csstools/selector-resolve-nested@3.0.0(postcss-selector-parser@7.0.0)": dependencies: @@ -10267,110 +10861,121 @@ snapshots: dependencies: postcss-selector-parser: 7.0.0 - "@csstools/utilities@2.0.0(postcss@8.4.49)": + "@csstools/selector-specificity@5.0.0(postcss-selector-parser@7.1.0)": dependencies: - postcss: 8.4.49 + postcss-selector-parser: 7.1.0 + + "@csstools/utilities@2.0.0(postcss@8.5.3)": + dependencies: + postcss: 8.5.3 "@dual-bundle/import-meta-resolve@4.1.0": {} - "@esbuild/aix-ppc64@0.24.2": - optional: true - - "@esbuild/android-arm64@0.24.2": - optional: true - - "@esbuild/android-arm@0.24.2": - optional: true - - "@esbuild/android-x64@0.24.2": - optional: true - - "@esbuild/darwin-arm64@0.24.2": - optional: true - - "@esbuild/darwin-x64@0.24.2": - optional: true - - "@esbuild/freebsd-arm64@0.24.2": - optional: true - - "@esbuild/freebsd-x64@0.24.2": - optional: true - - "@esbuild/linux-arm64@0.24.2": - optional: true - - "@esbuild/linux-arm@0.24.2": - optional: true - - "@esbuild/linux-ia32@0.24.2": - optional: true - - "@esbuild/linux-loong64@0.24.2": - optional: true - - "@esbuild/linux-mips64el@0.24.2": - optional: true - - "@esbuild/linux-ppc64@0.24.2": - optional: true - - "@esbuild/linux-riscv64@0.24.2": - optional: true - - "@esbuild/linux-s390x@0.24.2": - optional: true - - "@esbuild/linux-x64@0.24.2": - optional: true - - "@esbuild/netbsd-arm64@0.24.2": - optional: true - - "@esbuild/netbsd-x64@0.24.2": - optional: true - - "@esbuild/openbsd-arm64@0.24.2": - optional: true - - "@esbuild/openbsd-x64@0.24.2": - optional: true - - "@esbuild/sunos-x64@0.24.2": - optional: true - - "@esbuild/win32-arm64@0.24.2": - optional: true - - "@esbuild/win32-ia32@0.24.2": - optional: true - - "@esbuild/win32-x64@0.24.2": - optional: true - - "@eslint-community/eslint-utils@4.4.1(eslint@9.17.0(jiti@2.4.1))": + "@emnapi/runtime@1.3.1": dependencies: - eslint: 9.17.0(jiti@2.4.1) + tslib: 2.8.1 + optional: true + + "@esbuild/aix-ppc64@0.25.0": + optional: true + + "@esbuild/android-arm64@0.25.0": + optional: true + + "@esbuild/android-arm@0.25.0": + optional: true + + "@esbuild/android-x64@0.25.0": + optional: true + + "@esbuild/darwin-arm64@0.25.0": + optional: true + + "@esbuild/darwin-x64@0.25.0": + optional: true + + "@esbuild/freebsd-arm64@0.25.0": + optional: true + + "@esbuild/freebsd-x64@0.25.0": + optional: true + + "@esbuild/linux-arm64@0.25.0": + optional: true + + "@esbuild/linux-arm@0.25.0": + optional: true + + "@esbuild/linux-ia32@0.25.0": + optional: true + + "@esbuild/linux-loong64@0.25.0": + optional: true + + "@esbuild/linux-mips64el@0.25.0": + optional: true + + "@esbuild/linux-ppc64@0.25.0": + optional: true + + "@esbuild/linux-riscv64@0.25.0": + optional: true + + "@esbuild/linux-s390x@0.25.0": + optional: true + + "@esbuild/linux-x64@0.25.0": + optional: true + + "@esbuild/netbsd-arm64@0.25.0": + optional: true + + "@esbuild/netbsd-x64@0.25.0": + optional: true + + "@esbuild/openbsd-arm64@0.25.0": + optional: true + + "@esbuild/openbsd-x64@0.25.0": + optional: true + + "@esbuild/sunos-x64@0.25.0": + optional: true + + "@esbuild/win32-arm64@0.25.0": + optional: true + + "@esbuild/win32-ia32@0.25.0": + optional: true + + "@esbuild/win32-x64@0.25.0": + optional: true + + "@eslint-community/eslint-utils@4.4.1(eslint@9.22.0(jiti@2.4.1))": + dependencies: + eslint: 9.22.0(jiti@2.4.1) eslint-visitor-keys: 3.4.3 "@eslint-community/regexpp@4.12.1": {} - "@eslint/config-array@0.19.1": + "@eslint/config-array@0.19.2": dependencies: - "@eslint/object-schema": 2.1.5 - debug: 4.3.7 + "@eslint/object-schema": 2.1.6 + debug: 4.4.0 minimatch: 3.1.2 transitivePeerDependencies: - supports-color - "@eslint/core@0.9.1": + "@eslint/config-helpers@0.1.0": {} + + "@eslint/core@0.12.0": dependencies: "@types/json-schema": 7.0.15 - "@eslint/eslintrc@3.2.0": + "@eslint/eslintrc@3.3.0": dependencies: ajv: 6.12.6 - debug: 4.3.7 + debug: 4.4.0 espree: 10.3.0 globals: 14.0.0 ignore: 5.3.2 @@ -10381,24 +10986,25 @@ snapshots: transitivePeerDependencies: - supports-color - "@eslint/js@9.17.0": {} + "@eslint/js@9.22.0": {} - "@eslint/object-schema@2.1.5": {} + "@eslint/object-schema@2.1.6": {} - "@eslint/plugin-kit@0.2.4": + "@eslint/plugin-kit@0.2.7": dependencies: + "@eslint/core": 0.12.0 levn: 0.4.1 "@floating-ui/core@1.6.8": dependencies: - "@floating-ui/utils": 0.2.8 + "@floating-ui/utils": 0.2.9 - "@floating-ui/dom@1.6.12": + "@floating-ui/dom@1.6.13": dependencies: "@floating-ui/core": 1.6.8 - "@floating-ui/utils": 0.2.8 + "@floating-ui/utils": 0.2.9 - "@floating-ui/utils@0.2.8": {} + "@floating-ui/utils@0.2.9": {} "@foliojs-fork/fontkit@1.9.2": dependencies: @@ -10432,7 +11038,7 @@ snapshots: "@github/markdown-toolbar-element@2.2.3": {} - "@github/relative-time-element@4.4.4": {} + "@github/relative-time-element@4.4.5": {} "@humanfs/core@0.19.1": {} @@ -10445,7 +11051,82 @@ snapshots: "@humanwhocodes/retry@0.3.1": {} - "@humanwhocodes/retry@0.4.1": {} + "@humanwhocodes/retry@0.4.2": {} + + "@img/sharp-darwin-arm64@0.33.5": + optionalDependencies: + "@img/sharp-libvips-darwin-arm64": 1.0.4 + optional: true + + "@img/sharp-darwin-x64@0.33.5": + optionalDependencies: + "@img/sharp-libvips-darwin-x64": 1.0.4 + optional: true + + "@img/sharp-libvips-darwin-arm64@1.0.4": + optional: true + + "@img/sharp-libvips-darwin-x64@1.0.4": + optional: true + + "@img/sharp-libvips-linux-arm64@1.0.4": + optional: true + + "@img/sharp-libvips-linux-arm@1.0.5": + optional: true + + "@img/sharp-libvips-linux-s390x@1.0.4": + optional: true + + "@img/sharp-libvips-linux-x64@1.0.4": + optional: true + + "@img/sharp-libvips-linuxmusl-arm64@1.0.4": + optional: true + + "@img/sharp-libvips-linuxmusl-x64@1.0.4": + optional: true + + "@img/sharp-linux-arm64@0.33.5": + optionalDependencies: + "@img/sharp-libvips-linux-arm64": 1.0.4 + optional: true + + "@img/sharp-linux-arm@0.33.5": + optionalDependencies: + "@img/sharp-libvips-linux-arm": 1.0.5 + optional: true + + "@img/sharp-linux-s390x@0.33.5": + optionalDependencies: + "@img/sharp-libvips-linux-s390x": 1.0.4 + optional: true + + "@img/sharp-linux-x64@0.33.5": + optionalDependencies: + "@img/sharp-libvips-linux-x64": 1.0.4 + optional: true + + "@img/sharp-linuxmusl-arm64@0.33.5": + optionalDependencies: + "@img/sharp-libvips-linuxmusl-arm64": 1.0.4 + optional: true + + "@img/sharp-linuxmusl-x64@0.33.5": + optionalDependencies: + "@img/sharp-libvips-linuxmusl-x64": 1.0.4 + optional: true + + "@img/sharp-wasm32@0.33.5": + dependencies: + "@emnapi/runtime": 1.3.1 + optional: true + + "@img/sharp-win32-ia32@0.33.5": + optional: true + + "@img/sharp-win32-x64@0.33.5": + optional: true "@isaacs/cliui@8.0.2": dependencies: @@ -10478,6 +11159,10 @@ snapshots: "@jridgewell/resolve-uri": 3.1.2 "@jridgewell/sourcemap-codec": 1.5.0 + "@keyv/serialize@1.0.2": + dependencies: + buffer: 6.0.3 + "@lezer/common@1.2.3": {} "@lezer/css@1.1.9": @@ -10606,7 +11291,7 @@ snapshots: "@patternfly/pfe-core@4.0.4": dependencies: - "@floating-ui/dom": 1.6.12 + "@floating-ui/dom": 1.6.13 "@lit/context": 1.1.3 lit: 3.2.1 @@ -10627,6 +11312,8 @@ snapshots: "@pnpm/network.ca-file": 1.0.2 config-chain: 1.1.13 + "@polka/url@1.0.0-next.28": {} + "@rollup/plugin-babel@5.3.1(@babel/core@7.26.0)(rollup@2.79.2)": dependencies: "@babel/core": 7.26.0 @@ -10675,81 +11362,84 @@ snapshots: optionalDependencies: rollup: 2.79.2 - "@rollup/rollup-android-arm-eabi@4.24.4": + "@rollup/rollup-android-arm-eabi@4.34.8": optional: true - "@rollup/rollup-android-arm64@4.24.4": + "@rollup/rollup-android-arm64@4.34.8": optional: true - "@rollup/rollup-darwin-arm64@4.24.4": + "@rollup/rollup-darwin-arm64@4.34.8": optional: true - "@rollup/rollup-darwin-x64@4.24.4": + "@rollup/rollup-darwin-x64@4.34.8": optional: true - "@rollup/rollup-freebsd-arm64@4.24.4": + "@rollup/rollup-freebsd-arm64@4.34.8": optional: true - "@rollup/rollup-freebsd-x64@4.24.4": + "@rollup/rollup-freebsd-x64@4.34.8": optional: true - "@rollup/rollup-linux-arm-gnueabihf@4.24.4": + "@rollup/rollup-linux-arm-gnueabihf@4.34.8": optional: true - "@rollup/rollup-linux-arm-musleabihf@4.24.4": + "@rollup/rollup-linux-arm-musleabihf@4.34.8": optional: true - "@rollup/rollup-linux-arm64-gnu@4.24.4": + "@rollup/rollup-linux-arm64-gnu@4.34.8": optional: true - "@rollup/rollup-linux-arm64-musl@4.24.4": + "@rollup/rollup-linux-arm64-musl@4.34.8": optional: true - "@rollup/rollup-linux-powerpc64le-gnu@4.24.4": + "@rollup/rollup-linux-loongarch64-gnu@4.34.8": optional: true - "@rollup/rollup-linux-riscv64-gnu@4.24.4": + "@rollup/rollup-linux-powerpc64le-gnu@4.34.8": optional: true - "@rollup/rollup-linux-s390x-gnu@4.24.4": + "@rollup/rollup-linux-riscv64-gnu@4.34.8": optional: true - "@rollup/rollup-linux-x64-gnu@4.24.4": + "@rollup/rollup-linux-s390x-gnu@4.34.8": optional: true - "@rollup/rollup-linux-x64-musl@4.24.4": + "@rollup/rollup-linux-x64-gnu@4.34.8": optional: true - "@rollup/rollup-win32-arm64-msvc@4.24.4": + "@rollup/rollup-linux-x64-musl@4.34.8": optional: true - "@rollup/rollup-win32-ia32-msvc@4.24.4": + "@rollup/rollup-win32-arm64-msvc@4.34.8": optional: true - "@rollup/rollup-win32-x64-msvc@4.24.4": + "@rollup/rollup-win32-ia32-msvc@4.34.8": + optional: true + + "@rollup/rollup-win32-x64-msvc@4.34.8": optional: true "@sec-ant/readable-stream@0.4.1": {} - "@semantic-release/changelog@6.0.3(semantic-release@24.2.0(typescript@5.7.2))": + "@semantic-release/changelog@6.0.3(semantic-release@24.2.3(typescript@5.7.3))": dependencies: "@semantic-release/error": 3.0.0 aggregate-error: 3.1.0 fs-extra: 11.2.0 lodash: 4.17.21 - semantic-release: 24.2.0(typescript@5.7.2) + semantic-release: 24.2.3(typescript@5.7.3) - "@semantic-release/commit-analyzer@13.0.0(semantic-release@24.2.0(typescript@5.7.2))": + "@semantic-release/commit-analyzer@13.0.0(semantic-release@24.2.3(typescript@5.7.3))": dependencies: conventional-changelog-angular: 8.0.0 conventional-changelog-writer: 8.0.0 conventional-commits-filter: 5.0.0 conventional-commits-parser: 6.0.0 - debug: 4.3.7 + debug: 4.4.0 import-from-esm: 1.3.4 lodash-es: 4.17.21 micromatch: 4.0.8 - semantic-release: 24.2.0(typescript@5.7.2) + semantic-release: 24.2.3(typescript@5.7.3) transitivePeerDependencies: - supports-color @@ -10757,19 +11447,19 @@ snapshots: "@semantic-release/error@4.0.0": {} - "@semantic-release/exec@6.0.3(semantic-release@24.2.0(typescript@5.7.2))": + "@semantic-release/exec@7.0.3(semantic-release@24.2.3(typescript@5.7.3))": dependencies: - "@semantic-release/error": 3.0.0 + "@semantic-release/error": 4.0.0 aggregate-error: 3.1.0 - debug: 4.3.7 - execa: 5.1.1 - lodash: 4.17.21 - parse-json: 5.2.0 - semantic-release: 24.2.0(typescript@5.7.2) + debug: 4.4.0 + execa: 9.5.1 + lodash-es: 4.17.21 + parse-json: 8.1.0 + semantic-release: 24.2.3(typescript@5.7.3) transitivePeerDependencies: - supports-color - "@semantic-release/git@10.0.1(semantic-release@24.2.0(typescript@5.7.2))": + "@semantic-release/git@10.0.1(semantic-release@24.2.3(typescript@5.7.3))": dependencies: "@semantic-release/error": 3.0.0 aggregate-error: 3.1.0 @@ -10779,11 +11469,11 @@ snapshots: lodash: 4.17.21 micromatch: 4.0.8 p-reduce: 2.1.0 - semantic-release: 24.2.0(typescript@5.7.2) + semantic-release: 24.2.3(typescript@5.7.3) transitivePeerDependencies: - supports-color - "@semantic-release/github@11.0.0(semantic-release@24.2.0(typescript@5.7.2))": + "@semantic-release/github@11.0.0(semantic-release@24.2.3(typescript@5.7.3))": dependencies: "@octokit/core": 6.1.2 "@octokit/plugin-paginate-rest": 11.3.5(@octokit/core@6.1.2) @@ -10791,7 +11481,7 @@ snapshots: "@octokit/plugin-throttling": 9.3.2(@octokit/core@6.1.2) "@semantic-release/error": 4.0.0 aggregate-error: 5.0.0 - debug: 4.3.7 + debug: 4.4.0 dir-glob: 3.0.1 globby: 14.0.2 http-proxy-agent: 7.0.2 @@ -10800,16 +11490,16 @@ snapshots: lodash-es: 4.17.21 mime: 4.0.4 p-filter: 4.1.0 - semantic-release: 24.2.0(typescript@5.7.2) + semantic-release: 24.2.3(typescript@5.7.3) url-join: 5.0.0 transitivePeerDependencies: - supports-color - "@semantic-release/gitlab@13.2.3(semantic-release@24.2.0(typescript@5.7.2))": + "@semantic-release/gitlab@13.2.4(semantic-release@24.2.3(typescript@5.7.3))": dependencies: "@semantic-release/error": 4.0.0 aggregate-error: 5.0.0 - debug: 4.3.7 + debug: 4.4.0 dir-glob: 3.0.1 escape-string-regexp: 5.0.0 formdata-node: 6.0.3 @@ -10819,12 +11509,12 @@ snapshots: hpagent: 1.2.0 lodash-es: 4.17.21 parse-url: 9.2.0 - semantic-release: 24.2.0(typescript@5.7.2) + semantic-release: 24.2.3(typescript@5.7.3) url-join: 4.0.1 transitivePeerDependencies: - supports-color - "@semantic-release/npm@12.0.1(semantic-release@24.2.0(typescript@5.7.2))": + "@semantic-release/npm@12.0.1(semantic-release@24.2.3(typescript@5.7.3))": dependencies: "@semantic-release/error": 4.0.0 aggregate-error: 5.0.0 @@ -10837,23 +11527,23 @@ snapshots: rc: 1.2.8 read-pkg: 9.0.1 registry-auth-token: 5.0.2 - semantic-release: 24.2.0(typescript@5.7.2) + semantic-release: 24.2.3(typescript@5.7.3) semver: 7.6.3 tempy: 3.1.0 - "@semantic-release/release-notes-generator@14.0.1(semantic-release@24.2.0(typescript@5.7.2))": + "@semantic-release/release-notes-generator@14.0.1(semantic-release@24.2.3(typescript@5.7.3))": dependencies: conventional-changelog-angular: 8.0.0 conventional-changelog-writer: 8.0.0 conventional-commits-filter: 5.0.0 conventional-commits-parser: 6.0.0 - debug: 4.3.7 + debug: 4.4.0 get-stream: 7.0.1 import-from-esm: 1.3.4 into-stream: 7.0.0 lodash-es: 4.17.21 read-package-up: 11.0.0 - semantic-release: 24.2.0(typescript@5.7.2) + semantic-release: 24.2.3(typescript@5.7.3) transitivePeerDependencies: - supports-color @@ -10878,12 +11568,12 @@ snapshots: dependencies: defer-to-connect: 2.0.1 - "@tailwindcss/forms@0.5.9(tailwindcss@3.4.17)": + "@tailwindcss/forms@0.5.10(tailwindcss@3.4.17)": dependencies: mini-svg-data-uri: 1.4.4 tailwindcss: 3.4.17 - "@tailwindcss/typography@0.5.15(tailwindcss@3.4.17)": + "@tailwindcss/typography@0.5.16(tailwindcss@3.4.17)": dependencies: lodash.castarray: 4.4.0 lodash.isplainobject: 4.0.6 @@ -10901,10 +11591,7 @@ snapshots: dependencies: "@types/estree": 1.0.6 "@types/json-schema": 7.0.15 - - "@types/eslint__js@8.42.3": - dependencies: - "@types/eslint": 9.6.1 + optional: true "@types/estree@0.0.39": {} @@ -10918,7 +11605,7 @@ snapshots: "@types/json-schema@7.0.15": {} - "@types/leaflet@1.9.15": + "@types/leaflet@1.9.16": dependencies: "@types/geojson": 7946.0.14 @@ -10936,81 +11623,81 @@ snapshots: "@types/trusted-types@2.0.7": {} - "@typescript-eslint/eslint-plugin@8.18.2(@typescript-eslint/parser@8.18.2(eslint@9.17.0(jiti@2.4.1))(typescript@5.7.2))(eslint@9.17.0(jiti@2.4.1))(typescript@5.7.2)": + "@typescript-eslint/eslint-plugin@8.26.1(@typescript-eslint/parser@8.26.1(eslint@9.22.0(jiti@2.4.1))(typescript@5.7.3))(eslint@9.22.0(jiti@2.4.1))(typescript@5.7.3)": dependencies: "@eslint-community/regexpp": 4.12.1 - "@typescript-eslint/parser": 8.18.2(eslint@9.17.0(jiti@2.4.1))(typescript@5.7.2) - "@typescript-eslint/scope-manager": 8.18.2 - "@typescript-eslint/type-utils": 8.18.2(eslint@9.17.0(jiti@2.4.1))(typescript@5.7.2) - "@typescript-eslint/utils": 8.18.2(eslint@9.17.0(jiti@2.4.1))(typescript@5.7.2) - "@typescript-eslint/visitor-keys": 8.18.2 - eslint: 9.17.0(jiti@2.4.1) + "@typescript-eslint/parser": 8.26.1(eslint@9.22.0(jiti@2.4.1))(typescript@5.7.3) + "@typescript-eslint/scope-manager": 8.26.1 + "@typescript-eslint/type-utils": 8.26.1(eslint@9.22.0(jiti@2.4.1))(typescript@5.7.3) + "@typescript-eslint/utils": 8.26.1(eslint@9.22.0(jiti@2.4.1))(typescript@5.7.3) + "@typescript-eslint/visitor-keys": 8.26.1 + eslint: 9.22.0(jiti@2.4.1) graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 - ts-api-utils: 1.4.0(typescript@5.7.2) - typescript: 5.7.2 + ts-api-utils: 2.0.1(typescript@5.7.3) + typescript: 5.7.3 transitivePeerDependencies: - supports-color - "@typescript-eslint/parser@8.18.2(eslint@9.17.0(jiti@2.4.1))(typescript@5.7.2)": + "@typescript-eslint/parser@8.26.1(eslint@9.22.0(jiti@2.4.1))(typescript@5.7.3)": dependencies: - "@typescript-eslint/scope-manager": 8.18.2 - "@typescript-eslint/types": 8.18.2 - "@typescript-eslint/typescript-estree": 8.18.2(typescript@5.7.2) - "@typescript-eslint/visitor-keys": 8.18.2 + "@typescript-eslint/scope-manager": 8.26.1 + "@typescript-eslint/types": 8.26.1 + "@typescript-eslint/typescript-estree": 8.26.1(typescript@5.7.3) + "@typescript-eslint/visitor-keys": 8.26.1 debug: 4.4.0 - eslint: 9.17.0(jiti@2.4.1) - typescript: 5.7.2 + eslint: 9.22.0(jiti@2.4.1) + typescript: 5.7.3 transitivePeerDependencies: - supports-color - "@typescript-eslint/scope-manager@8.18.2": + "@typescript-eslint/scope-manager@8.26.1": dependencies: - "@typescript-eslint/types": 8.18.2 - "@typescript-eslint/visitor-keys": 8.18.2 + "@typescript-eslint/types": 8.26.1 + "@typescript-eslint/visitor-keys": 8.26.1 - "@typescript-eslint/type-utils@8.18.2(eslint@9.17.0(jiti@2.4.1))(typescript@5.7.2)": + "@typescript-eslint/type-utils@8.26.1(eslint@9.22.0(jiti@2.4.1))(typescript@5.7.3)": dependencies: - "@typescript-eslint/typescript-estree": 8.18.2(typescript@5.7.2) - "@typescript-eslint/utils": 8.18.2(eslint@9.17.0(jiti@2.4.1))(typescript@5.7.2) + "@typescript-eslint/typescript-estree": 8.26.1(typescript@5.7.3) + "@typescript-eslint/utils": 8.26.1(eslint@9.22.0(jiti@2.4.1))(typescript@5.7.3) debug: 4.4.0 - eslint: 9.17.0(jiti@2.4.1) - ts-api-utils: 1.4.0(typescript@5.7.2) - typescript: 5.7.2 + eslint: 9.22.0(jiti@2.4.1) + ts-api-utils: 2.0.1(typescript@5.7.3) + typescript: 5.7.3 transitivePeerDependencies: - supports-color - "@typescript-eslint/types@8.18.2": {} + "@typescript-eslint/types@8.26.1": {} - "@typescript-eslint/typescript-estree@8.18.2(typescript@5.7.2)": + "@typescript-eslint/typescript-estree@8.26.1(typescript@5.7.3)": dependencies: - "@typescript-eslint/types": 8.18.2 - "@typescript-eslint/visitor-keys": 8.18.2 + "@typescript-eslint/types": 8.26.1 + "@typescript-eslint/visitor-keys": 8.26.1 debug: 4.4.0 - fast-glob: 3.3.2 + fast-glob: 3.3.3 is-glob: 4.0.3 minimatch: 9.0.5 semver: 7.6.3 - ts-api-utils: 1.4.0(typescript@5.7.2) - typescript: 5.7.2 + ts-api-utils: 2.0.1(typescript@5.7.3) + typescript: 5.7.3 transitivePeerDependencies: - supports-color - "@typescript-eslint/utils@8.18.2(eslint@9.17.0(jiti@2.4.1))(typescript@5.7.2)": + "@typescript-eslint/utils@8.26.1(eslint@9.22.0(jiti@2.4.1))(typescript@5.7.3)": dependencies: - "@eslint-community/eslint-utils": 4.4.1(eslint@9.17.0(jiti@2.4.1)) - "@typescript-eslint/scope-manager": 8.18.2 - "@typescript-eslint/types": 8.18.2 - "@typescript-eslint/typescript-estree": 8.18.2(typescript@5.7.2) - eslint: 9.17.0(jiti@2.4.1) - typescript: 5.7.2 + "@eslint-community/eslint-utils": 4.4.1(eslint@9.22.0(jiti@2.4.1)) + "@typescript-eslint/scope-manager": 8.26.1 + "@typescript-eslint/types": 8.26.1 + "@typescript-eslint/typescript-estree": 8.26.1(typescript@5.7.3) + eslint: 9.22.0(jiti@2.4.1) + typescript: 5.7.3 transitivePeerDependencies: - supports-color - "@typescript-eslint/visitor-keys@8.18.2": + "@typescript-eslint/visitor-keys@8.26.1": dependencies: - "@typescript-eslint/types": 8.18.2 + "@typescript-eslint/types": 8.26.1 eslint-visitor-keys: 4.2.0 "@vime/core@5.4.1": @@ -11034,7 +11721,7 @@ snapshots: agent-base@7.1.1: dependencies: - debug: 4.3.7 + debug: 4.4.0 transitivePeerDependencies: - supports-color @@ -11101,6 +11788,8 @@ snapshots: ansi-styles@6.2.1: {} + ansis@3.16.0: {} + any-promise@1.3.0: {} anymatch@3.1.3: @@ -11140,14 +11829,14 @@ snapshots: at-least-node@1.0.0: {} - autoprefixer@10.4.20(postcss@8.4.49): + autoprefixer@10.4.20(postcss@8.5.3): dependencies: - browserslist: 4.24.2 + browserslist: 4.24.4 caniuse-lite: 1.0.30001677 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.1.1 - postcss: 8.4.49 + postcss: 8.5.3 postcss-value-parser: 4.2.0 available-typed-arrays@1.0.7: @@ -11190,6 +11879,8 @@ snapshots: binary-extensions@2.3.0: {} + birpc@2.2.0: {} + bl@4.1.0: dependencies: buffer: 5.7.1 @@ -11224,6 +11915,13 @@ snapshots: node-releases: 2.0.18 update-browserslist-db: 1.1.1(browserslist@4.24.2) + browserslist@4.24.4: + dependencies: + caniuse-lite: 1.0.30001700 + electron-to-chromium: 1.5.104 + node-releases: 2.0.19 + update-browserslist-db: 1.1.1(browserslist@4.24.4) + buffer-from@1.1.2: {} buffer@5.7.1: @@ -11231,6 +11929,15 @@ snapshots: base64-js: 1.5.1 ieee754: 1.2.1 + buffer@6.0.3: + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + + bundle-name@4.1.0: + dependencies: + run-applescript: 7.0.0 + cacheable-lookup@7.0.0: {} cacheable-request@12.0.1: @@ -11243,6 +11950,11 @@ snapshots: normalize-url: 8.0.1 responselike: 3.0.0 + cacheable@1.8.8: + dependencies: + hookified: 1.7.0 + keyv: 5.2.3 + cachedir@2.3.0: {} call-bind@1.0.7: @@ -11268,6 +11980,8 @@ snapshots: caniuse-lite@1.0.30001677: {} + caniuse-lite@1.0.30001700: {} + chalk@2.4.2: dependencies: ansi-styles: 3.2.1 @@ -11279,7 +11993,8 @@ snapshots: ansi-styles: 4.3.0 supports-color: 7.2.0 - chalk@5.3.0: {} + chalk@5.3.0: + optional: true chalk@5.4.1: {} @@ -11287,7 +12002,7 @@ snapshots: chardet@0.7.0: {} - choices.js@11.0.3: + choices.js@11.1.0: dependencies: fuse.js: 7.0.0 @@ -11365,13 +12080,13 @@ snapshots: codemirror@6.0.1(@lezer/common@1.2.3): dependencies: - "@codemirror/autocomplete": 6.18.2(@codemirror/language@6.10.8)(@codemirror/state@6.5.0)(@codemirror/view@6.36.1)(@lezer/common@1.2.3) - "@codemirror/commands": 6.7.1 - "@codemirror/language": 6.10.8 + "@codemirror/autocomplete": 6.18.2(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.36.4)(@lezer/common@1.2.3) + "@codemirror/commands": 6.8.0 + "@codemirror/language": 6.11.0 "@codemirror/lint": 6.8.2 "@codemirror/search": 6.5.7 - "@codemirror/state": 6.5.0 - "@codemirror/view": 6.36.1 + "@codemirror/state": 6.5.2 + "@codemirror/view": 6.36.4 transitivePeerDependencies: - "@lezer/common" @@ -11387,11 +12102,21 @@ snapshots: color-name@1.1.4: {} + color-string@1.9.1: + dependencies: + color-name: 1.1.4 + simple-swizzle: 0.2.2 + + color@4.2.3: + dependencies: + color-convert: 2.0.1 + color-string: 1.9.1 + colord@2.9.3: {} colorette@2.0.20: {} - commander@12.1.0: {} + commander@13.1.0: {} commander@2.20.3: {} @@ -11399,10 +12124,10 @@ snapshots: commander@7.2.0: {} - commitizen@4.3.1(@types/node@22.9.0)(typescript@5.7.2): + commitizen@4.3.1(@types/node@22.9.0)(typescript@5.7.3): dependencies: cachedir: 2.3.0 - cz-conventional-changelog: 3.3.0(@types/node@22.9.0)(typescript@5.7.2) + cz-conventional-changelog: 3.3.0(@types/node@22.9.0)(typescript@5.7.3) dedent: 0.7.0 detect-indent: 6.1.0 find-node-modules: 2.1.3 @@ -11484,29 +12209,29 @@ snapshots: core-util-is@1.0.3: {} - cosmiconfig-typescript-loader@5.1.0(@types/node@22.9.0)(cosmiconfig@9.0.0(typescript@5.7.2))(typescript@5.7.2): + cosmiconfig-typescript-loader@5.1.0(@types/node@22.9.0)(cosmiconfig@9.0.0(typescript@5.7.3))(typescript@5.7.3): dependencies: "@types/node": 22.9.0 - cosmiconfig: 9.0.0(typescript@5.7.2) + cosmiconfig: 9.0.0(typescript@5.7.3) jiti: 1.21.6 - typescript: 5.7.2 + typescript: 5.7.3 optional: true - cosmiconfig-typescript-loader@6.1.0(@types/node@22.9.0)(cosmiconfig@9.0.0(typescript@5.7.2))(typescript@5.7.2): + cosmiconfig-typescript-loader@6.1.0(@types/node@22.9.0)(cosmiconfig@9.0.0(typescript@5.7.3))(typescript@5.7.3): dependencies: "@types/node": 22.9.0 - cosmiconfig: 9.0.0(typescript@5.7.2) + cosmiconfig: 9.0.0(typescript@5.7.3) jiti: 2.4.1 - typescript: 5.7.2 + typescript: 5.7.3 - cosmiconfig@9.0.0(typescript@5.7.2): + cosmiconfig@9.0.0(typescript@5.7.3): dependencies: env-paths: 2.2.1 import-fresh: 3.3.0 js-yaml: 4.1.0 parse-json: 5.2.0 optionalDependencies: - typescript: 5.7.2 + typescript: 5.7.3 crelt@1.0.6: {} @@ -11534,27 +12259,27 @@ snapshots: dependencies: type-fest: 1.4.0 - css-blank-pseudo@7.0.1(postcss@8.4.49): + css-blank-pseudo@7.0.1(postcss@8.5.3): dependencies: - postcss: 8.4.49 + postcss: 8.5.3 postcss-selector-parser: 7.0.0 - css-declaration-sorter@7.2.0(postcss@8.4.49): + css-declaration-sorter@7.2.0(postcss@8.5.3): dependencies: - postcss: 8.4.49 + postcss: 8.5.3 css-functions-list@3.2.3: {} - css-has-pseudo@7.0.2(postcss@8.4.49): + css-has-pseudo@7.0.2(postcss@8.5.3): dependencies: "@csstools/selector-specificity": 5.0.0(postcss-selector-parser@7.0.0) - postcss: 8.4.49 + postcss: 8.5.3 postcss-selector-parser: 7.0.0 postcss-value-parser: 4.2.0 - css-prefers-color-scheme@10.0.0(postcss@8.4.49): + css-prefers-color-scheme@10.0.0(postcss@8.5.3): dependencies: - postcss: 8.4.49 + postcss: 8.5.3 css-select@5.1.0: dependencies: @@ -11574,9 +12299,9 @@ snapshots: mdn-data: 2.0.30 source-map-js: 1.2.1 - css-tree@3.0.1: + css-tree@3.1.0: dependencies: - mdn-data: 2.12.1 + mdn-data: 2.12.2 source-map-js: 1.2.1 css-what@6.1.0: {} @@ -11585,64 +12310,64 @@ snapshots: cssesc@3.0.0: {} - cssnano-preset-default@7.0.6(postcss@8.4.49): + cssnano-preset-default@7.0.6(postcss@8.5.3): dependencies: browserslist: 4.24.2 - css-declaration-sorter: 7.2.0(postcss@8.4.49) - cssnano-utils: 5.0.0(postcss@8.4.49) - postcss: 8.4.49 - postcss-calc: 10.0.2(postcss@8.4.49) - postcss-colormin: 7.0.2(postcss@8.4.49) - postcss-convert-values: 7.0.4(postcss@8.4.49) - postcss-discard-comments: 7.0.3(postcss@8.4.49) - postcss-discard-duplicates: 7.0.1(postcss@8.4.49) - postcss-discard-empty: 7.0.0(postcss@8.4.49) - postcss-discard-overridden: 7.0.0(postcss@8.4.49) - postcss-merge-longhand: 7.0.4(postcss@8.4.49) - postcss-merge-rules: 7.0.4(postcss@8.4.49) - postcss-minify-font-values: 7.0.0(postcss@8.4.49) - postcss-minify-gradients: 7.0.0(postcss@8.4.49) - postcss-minify-params: 7.0.2(postcss@8.4.49) - postcss-minify-selectors: 7.0.4(postcss@8.4.49) - postcss-normalize-charset: 7.0.0(postcss@8.4.49) - postcss-normalize-display-values: 7.0.0(postcss@8.4.49) - postcss-normalize-positions: 7.0.0(postcss@8.4.49) - postcss-normalize-repeat-style: 7.0.0(postcss@8.4.49) - postcss-normalize-string: 7.0.0(postcss@8.4.49) - postcss-normalize-timing-functions: 7.0.0(postcss@8.4.49) - postcss-normalize-unicode: 7.0.2(postcss@8.4.49) - postcss-normalize-url: 7.0.0(postcss@8.4.49) - postcss-normalize-whitespace: 7.0.0(postcss@8.4.49) - postcss-ordered-values: 7.0.1(postcss@8.4.49) - postcss-reduce-initial: 7.0.2(postcss@8.4.49) - postcss-reduce-transforms: 7.0.0(postcss@8.4.49) - postcss-svgo: 7.0.1(postcss@8.4.49) - postcss-unique-selectors: 7.0.3(postcss@8.4.49) + css-declaration-sorter: 7.2.0(postcss@8.5.3) + cssnano-utils: 5.0.0(postcss@8.5.3) + postcss: 8.5.3 + postcss-calc: 10.0.2(postcss@8.5.3) + postcss-colormin: 7.0.2(postcss@8.5.3) + postcss-convert-values: 7.0.4(postcss@8.5.3) + postcss-discard-comments: 7.0.3(postcss@8.5.3) + postcss-discard-duplicates: 7.0.1(postcss@8.5.3) + postcss-discard-empty: 7.0.0(postcss@8.5.3) + postcss-discard-overridden: 7.0.0(postcss@8.5.3) + postcss-merge-longhand: 7.0.4(postcss@8.5.3) + postcss-merge-rules: 7.0.4(postcss@8.5.3) + postcss-minify-font-values: 7.0.0(postcss@8.5.3) + postcss-minify-gradients: 7.0.0(postcss@8.5.3) + postcss-minify-params: 7.0.2(postcss@8.5.3) + postcss-minify-selectors: 7.0.4(postcss@8.5.3) + postcss-normalize-charset: 7.0.0(postcss@8.5.3) + postcss-normalize-display-values: 7.0.0(postcss@8.5.3) + postcss-normalize-positions: 7.0.0(postcss@8.5.3) + postcss-normalize-repeat-style: 7.0.0(postcss@8.5.3) + postcss-normalize-string: 7.0.0(postcss@8.5.3) + postcss-normalize-timing-functions: 7.0.0(postcss@8.5.3) + postcss-normalize-unicode: 7.0.2(postcss@8.5.3) + postcss-normalize-url: 7.0.0(postcss@8.5.3) + postcss-normalize-whitespace: 7.0.0(postcss@8.5.3) + postcss-ordered-values: 7.0.1(postcss@8.5.3) + postcss-reduce-initial: 7.0.2(postcss@8.5.3) + postcss-reduce-transforms: 7.0.0(postcss@8.5.3) + postcss-svgo: 7.0.1(postcss@8.5.3) + postcss-unique-selectors: 7.0.3(postcss@8.5.3) - cssnano-utils@5.0.0(postcss@8.4.49): + cssnano-utils@5.0.0(postcss@8.5.3): dependencies: - postcss: 8.4.49 + postcss: 8.5.3 - cssnano@7.0.6(postcss@8.4.49): + cssnano@7.0.6(postcss@8.5.3): dependencies: - cssnano-preset-default: 7.0.6(postcss@8.4.49) + cssnano-preset-default: 7.0.6(postcss@8.5.3) lilconfig: 3.1.2 - postcss: 8.4.49 + postcss: 8.5.3 csso@5.0.5: dependencies: css-tree: 2.2.1 - cz-conventional-changelog@3.3.0(@types/node@22.9.0)(typescript@5.7.2): + cz-conventional-changelog@3.3.0(@types/node@22.9.0)(typescript@5.7.3): dependencies: chalk: 2.4.2 - commitizen: 4.3.1(@types/node@22.9.0)(typescript@5.7.2) + commitizen: 4.3.1(@types/node@22.9.0)(typescript@5.7.3) conventional-commit-types: 3.0.0 lodash.map: 4.6.0 longest: 2.0.1 word-wrap: 1.2.5 optionalDependencies: - "@commitlint/load": 19.5.0(@types/node@22.9.0)(typescript@5.7.2) + "@commitlint/load": 19.5.0(@types/node@22.9.0)(typescript@5.7.3) transitivePeerDependencies: - "@types/node" - typescript @@ -11743,6 +12468,13 @@ snapshots: deepmerge@4.3.1: {} + default-browser-id@5.0.0: {} + + default-browser@5.2.1: + dependencies: + bundle-name: 4.1.0 + default-browser-id: 5.0.0 + defaults@1.0.4: dependencies: clone: 1.0.4 @@ -11755,6 +12487,8 @@ snapshots: es-errors: 1.3.0 gopd: 1.0.1 + define-lazy-prop@3.0.0: {} + define-properties@1.2.1: dependencies: define-data-property: 1.1.4 @@ -11765,6 +12499,8 @@ snapshots: detect-indent@6.1.0: {} + detect-libc@2.0.3: {} + dfa@1.2.0: {} didyoumean@1.2.2: {} @@ -11807,6 +12543,8 @@ snapshots: dependencies: jake: 10.9.2 + electron-to-chromium@1.5.104: {} + electron-to-chromium@1.5.52: {} emoji-regex@10.4.0: {} @@ -11832,6 +12570,8 @@ snapshots: dependencies: is-arrayish: 0.2.1 + error-stack-parser-es@1.0.5: {} + es-abstract@1.23.3: dependencies: array-buffer-byte-length: 1.0.1 @@ -11903,33 +12643,33 @@ snapshots: is-date-object: 1.0.5 is-symbol: 1.0.4 - esbuild@0.24.2: + esbuild@0.25.0: optionalDependencies: - "@esbuild/aix-ppc64": 0.24.2 - "@esbuild/android-arm": 0.24.2 - "@esbuild/android-arm64": 0.24.2 - "@esbuild/android-x64": 0.24.2 - "@esbuild/darwin-arm64": 0.24.2 - "@esbuild/darwin-x64": 0.24.2 - "@esbuild/freebsd-arm64": 0.24.2 - "@esbuild/freebsd-x64": 0.24.2 - "@esbuild/linux-arm": 0.24.2 - "@esbuild/linux-arm64": 0.24.2 - "@esbuild/linux-ia32": 0.24.2 - "@esbuild/linux-loong64": 0.24.2 - "@esbuild/linux-mips64el": 0.24.2 - "@esbuild/linux-ppc64": 0.24.2 - "@esbuild/linux-riscv64": 0.24.2 - "@esbuild/linux-s390x": 0.24.2 - "@esbuild/linux-x64": 0.24.2 - "@esbuild/netbsd-arm64": 0.24.2 - "@esbuild/netbsd-x64": 0.24.2 - "@esbuild/openbsd-arm64": 0.24.2 - "@esbuild/openbsd-x64": 0.24.2 - "@esbuild/sunos-x64": 0.24.2 - "@esbuild/win32-arm64": 0.24.2 - "@esbuild/win32-ia32": 0.24.2 - "@esbuild/win32-x64": 0.24.2 + "@esbuild/aix-ppc64": 0.25.0 + "@esbuild/android-arm": 0.25.0 + "@esbuild/android-arm64": 0.25.0 + "@esbuild/android-x64": 0.25.0 + "@esbuild/darwin-arm64": 0.25.0 + "@esbuild/darwin-x64": 0.25.0 + "@esbuild/freebsd-arm64": 0.25.0 + "@esbuild/freebsd-x64": 0.25.0 + "@esbuild/linux-arm": 0.25.0 + "@esbuild/linux-arm64": 0.25.0 + "@esbuild/linux-ia32": 0.25.0 + "@esbuild/linux-loong64": 0.25.0 + "@esbuild/linux-mips64el": 0.25.0 + "@esbuild/linux-ppc64": 0.25.0 + "@esbuild/linux-riscv64": 0.25.0 + "@esbuild/linux-s390x": 0.25.0 + "@esbuild/linux-x64": 0.25.0 + "@esbuild/netbsd-arm64": 0.25.0 + "@esbuild/netbsd-x64": 0.25.0 + "@esbuild/openbsd-arm64": 0.25.0 + "@esbuild/openbsd-x64": 0.25.0 + "@esbuild/sunos-x64": 0.25.0 + "@esbuild/win32-arm64": 0.25.0 + "@esbuild/win32-ia32": 0.25.0 + "@esbuild/win32-x64": 0.25.0 escalade@3.2.0: {} @@ -11939,21 +12679,21 @@ snapshots: escape-string-regexp@5.0.0: {} - eslint-config-prettier@9.1.0(eslint@9.17.0(jiti@2.4.1)): + eslint-config-prettier@10.1.1(eslint@9.22.0(jiti@2.4.1)): dependencies: - eslint: 9.17.0(jiti@2.4.1) + eslint: 9.22.0(jiti@2.4.1) - eslint-plugin-prettier@5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.17.0(jiti@2.4.1)))(eslint@9.17.0(jiti@2.4.1))(prettier@3.4.2): + eslint-plugin-prettier@5.2.3(@types/eslint@9.6.1)(eslint-config-prettier@10.1.1(eslint@9.22.0(jiti@2.4.1)))(eslint@9.22.0(jiti@2.4.1))(prettier@3.5.3): dependencies: - eslint: 9.17.0(jiti@2.4.1) - prettier: 3.4.2 + eslint: 9.22.0(jiti@2.4.1) + prettier: 3.5.3 prettier-linter-helpers: 1.0.0 synckit: 0.9.2 optionalDependencies: "@types/eslint": 9.6.1 - eslint-config-prettier: 9.1.0(eslint@9.17.0(jiti@2.4.1)) + eslint-config-prettier: 10.1.1(eslint@9.22.0(jiti@2.4.1)) - eslint-scope@8.2.0: + eslint-scope@8.3.0: dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 @@ -11962,26 +12702,27 @@ snapshots: eslint-visitor-keys@4.2.0: {} - eslint@9.17.0(jiti@2.4.1): + eslint@9.22.0(jiti@2.4.1): dependencies: - "@eslint-community/eslint-utils": 4.4.1(eslint@9.17.0(jiti@2.4.1)) + "@eslint-community/eslint-utils": 4.4.1(eslint@9.22.0(jiti@2.4.1)) "@eslint-community/regexpp": 4.12.1 - "@eslint/config-array": 0.19.1 - "@eslint/core": 0.9.1 - "@eslint/eslintrc": 3.2.0 - "@eslint/js": 9.17.0 - "@eslint/plugin-kit": 0.2.4 + "@eslint/config-array": 0.19.2 + "@eslint/config-helpers": 0.1.0 + "@eslint/core": 0.12.0 + "@eslint/eslintrc": 3.3.0 + "@eslint/js": 9.22.0 + "@eslint/plugin-kit": 0.2.7 "@humanfs/node": 0.16.6 "@humanwhocodes/module-importer": 1.0.1 - "@humanwhocodes/retry": 0.4.1 + "@humanwhocodes/retry": 0.4.2 "@types/estree": 1.0.6 "@types/json-schema": 7.0.15 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.6 - debug: 4.3.7 + debug: 4.4.0 escape-string-regexp: 4.0.0 - eslint-scope: 8.2.0 + eslint-scope: 8.3.0 eslint-visitor-keys: 4.2.0 espree: 10.3.0 esquery: 1.6.0 @@ -12054,7 +12795,7 @@ snapshots: execa@9.5.1: dependencies: "@sindresorhus/merge-streams": 4.0.0 - cross-spawn: 7.0.3 + cross-spawn: 7.0.6 figures: 6.1.0 get-stream: 9.0.1 human-signals: 8.0.0 @@ -12088,6 +12829,14 @@ snapshots: merge2: 1.4.1 micromatch: 4.0.8 + fast-glob@3.3.3: + dependencies: + "@nodelib/fs.stat": 2.0.5 + "@nodelib/fs.walk": 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.8 + fast-json-stable-stringify@2.1.0: {} fast-levenshtein@2.0.6: {} @@ -12116,14 +12865,14 @@ snapshots: dependencies: is-unicode-supported: 2.1.0 + file-entry-cache@10.0.6: + dependencies: + flat-cache: 6.1.6 + file-entry-cache@8.0.0: dependencies: flat-cache: 4.0.1 - file-entry-cache@9.1.0: - dependencies: - flat-cache: 5.0.0 - filelist@1.0.4: dependencies: minimatch: 5.1.6 @@ -12175,17 +12924,18 @@ snapshots: flat-cache@4.0.1: dependencies: - flatted: 3.3.1 + flatted: 3.3.2 keyv: 4.5.4 - flat-cache@5.0.0: + flat-cache@6.1.6: dependencies: - flatted: 3.3.1 - keyv: 4.5.4 + cacheable: 1.8.8 + flatted: 3.3.2 + hookified: 1.7.0 flatpickr@4.6.13: {} - flatted@3.3.1: {} + flatted@3.3.2: {} for-each@0.3.3: dependencies: @@ -12307,6 +13057,15 @@ snapshots: package-json-from-dist: 1.0.1 path-scurry: 1.11.1 + glob@11.0.1: + dependencies: + foreground-child: 3.3.0 + jackspeak: 4.0.2 + minimatch: 10.0.1 + minipass: 7.1.2 + package-json-from-dist: 1.0.1 + path-scurry: 2.0.0 + glob@7.2.3: dependencies: fs.realpath: 1.0.0 @@ -12348,7 +13107,7 @@ snapshots: globals@14.0.0: {} - globals@15.14.0: {} + globals@16.0.0: {} globalthis@1.0.4: dependencies: @@ -12359,7 +13118,7 @@ snapshots: dependencies: array-union: 2.1.0 dir-glob: 3.0.1 - fast-glob: 3.3.2 + fast-glob: 3.3.3 ignore: 5.3.2 merge2: 1.4.1 slash: 3.0.0 @@ -12438,6 +13197,8 @@ snapshots: hook-std@3.0.0: {} + hookified@1.7.0: {} + hosted-git-info@7.0.2: dependencies: lru-cache: 10.4.3 @@ -12450,14 +13211,14 @@ snapshots: html-tags@3.3.1: {} - htmlfy@0.5.0: {} + htmlfy@0.6.2: {} http-cache-semantics@4.1.1: {} http-proxy-agent@7.0.2: dependencies: agent-base: 7.1.1 - debug: 4.3.7 + debug: 4.4.0 transitivePeerDependencies: - supports-color @@ -12469,7 +13230,7 @@ snapshots: https-proxy-agent@7.0.5: dependencies: agent-base: 7.1.1 - debug: 4.3.7 + debug: 4.4.0 transitivePeerDependencies: - supports-color @@ -12495,7 +13256,7 @@ snapshots: ignore@5.3.2: {} - ignore@6.0.2: {} + ignore@7.0.3: {} import-fresh@3.3.0: dependencies: @@ -12504,7 +13265,14 @@ snapshots: import-from-esm@1.3.4: dependencies: - debug: 4.3.7 + debug: 4.4.0 + import-meta-resolve: 4.1.0 + transitivePeerDependencies: + - supports-color + + import-from-esm@2.0.0: + dependencies: + debug: 4.4.0 import-meta-resolve: 4.1.0 transitivePeerDependencies: - supports-color @@ -12589,6 +13357,8 @@ snapshots: is-arrayish@0.2.1: {} + is-arrayish@0.3.2: {} + is-bigint@1.0.4: dependencies: has-bigints: 1.0.2 @@ -12620,6 +13390,8 @@ snapshots: dependencies: has-tostringtag: 1.0.2 + is-docker@3.0.0: {} + is-extglob@2.1.1: {} is-fullwidth-code-point@3.0.0: {} @@ -12634,6 +13406,10 @@ snapshots: dependencies: is-extglob: 2.1.1 + is-inside-container@1.0.0: + dependencies: + is-docker: 3.0.0 + is-interactive@1.0.0: {} is-module@1.0.0: {} @@ -12699,6 +13475,10 @@ snapshots: is-windows@1.0.2: {} + is-wsl@3.1.0: + dependencies: + is-inside-container: 1.0.0 + isarray@1.0.0: {} isarray@2.0.5: {} @@ -12719,6 +13499,10 @@ snapshots: optionalDependencies: "@pkgjs/parseargs": 0.11.0 + jackspeak@4.0.2: + dependencies: + "@isaacs/cliui": 8.0.2 + jake@10.9.2: dependencies: async: 3.2.6 @@ -12778,6 +13562,10 @@ snapshots: dependencies: json-buffer: 3.0.1 + keyv@5.2.3: + dependencies: + "@keyv/serialize": 1.0.2 + kind-of@6.0.3: {} known-css-properties@0.35.0: {} @@ -12801,10 +13589,10 @@ snapshots: lines-and-columns@1.2.4: {} - lint-staged@15.3.0: + lint-staged@15.5.0: dependencies: chalk: 5.4.1 - commander: 12.1.0 + commander: 13.1.0 debug: 4.4.0 execa: 8.0.1 lilconfig: 3.1.3 @@ -12812,7 +13600,7 @@ snapshots: micromatch: 4.0.8 pidtree: 0.6.0 string-argv: 0.3.2 - yaml: 2.6.1 + yaml: 2.7.0 transitivePeerDependencies: - supports-color @@ -12926,6 +13714,8 @@ snapshots: lru-cache@10.4.3: {} + lru-cache@11.0.2: {} + lru-cache@5.1.1: dependencies: yallist: 3.1.1 @@ -12938,7 +13728,7 @@ snapshots: dependencies: ansi-escapes: 7.0.0 ansi-regex: 6.1.0 - chalk: 5.3.0 + chalk: 5.4.1 cli-highlight: 2.1.11 cli-table3: 0.6.5 marked: 12.0.2 @@ -12947,7 +13737,7 @@ snapshots: marked@12.0.2: {} - marked@15.0.4: {} + marked@15.0.7: {} mathml-tag-names@2.1.3: {} @@ -12955,7 +13745,7 @@ snapshots: mdn-data@2.0.30: {} - mdn-data@2.12.1: {} + mdn-data@2.12.2: {} meow@12.1.1: {} @@ -12986,6 +13776,10 @@ snapshots: mini-svg-data-uri@1.4.4: {} + minimatch@10.0.1: + dependencies: + brace-expansion: 2.0.1 + minimatch@3.1.2: dependencies: brace-expansion: 1.1.11 @@ -13006,6 +13800,8 @@ snapshots: mitt@3.0.1: {} + mrmime@2.0.0: {} + ms@2.1.3: {} mute-stream@0.0.8: {} @@ -13016,7 +13812,7 @@ snapshots: object-assign: 4.1.1 thenify-all: 1.6.0 - nanoid@3.3.7: {} + nanoid@3.3.8: {} natural-compare@1.4.0: {} @@ -13037,6 +13833,8 @@ snapshots: node-releases@2.0.18: {} + node-releases@2.0.19: {} + normalize-package-data@6.0.2: dependencies: hosted-git-info: 7.0.2 @@ -13088,6 +13886,8 @@ snapshots: has-symbols: 1.0.3 object-keys: 1.1.1 + ohash@2.0.4: {} + once@1.4.0: dependencies: wrappy: 1.0.2 @@ -13104,6 +13904,13 @@ snapshots: dependencies: mimic-function: 5.0.1 + open@10.1.0: + dependencies: + default-browser: 5.2.1 + define-lazy-prop: 3.0.0 + is-inside-container: 1.0.0 + is-wsl: 3.1.0 + optionator@0.9.4: dependencies: deep-is: 0.1.4 @@ -13171,6 +13978,8 @@ snapshots: p-map@7.0.2: {} + p-map@7.0.3: {} + p-reduce@2.1.0: {} p-reduce@3.0.0: {} @@ -13245,10 +14054,17 @@ snapshots: lru-cache: 10.4.3 minipass: 7.1.2 + path-scurry@2.0.0: + dependencies: + lru-cache: 11.0.2 + minipass: 7.1.2 + path-type@4.0.0: {} path-type@5.0.0: {} + pathe@2.0.3: {} + pdfmake@0.2.15: dependencies: "@foliojs-fork/linebreak": 1.1.2 @@ -13258,6 +14074,8 @@ snapshots: pegjs@0.10.0: {} + perfect-debounce@1.0.0: {} + performance-now@2.1.0: {} picocolors@1.1.1: {} @@ -13289,397 +14107,397 @@ snapshots: possible-typed-array-names@1.0.0: {} - postcss-attribute-case-insensitive@7.0.1(postcss@8.4.49): + postcss-attribute-case-insensitive@7.0.1(postcss@8.5.3): dependencies: - postcss: 8.4.49 + postcss: 8.5.3 postcss-selector-parser: 7.0.0 - postcss-calc@10.0.2(postcss@8.4.49): + postcss-calc@10.0.2(postcss@8.5.3): dependencies: - postcss: 8.4.49 + postcss: 8.5.3 postcss-selector-parser: 6.1.2 postcss-value-parser: 4.2.0 - postcss-clamp@4.1.0(postcss@8.4.49): + postcss-clamp@4.1.0(postcss@8.5.3): dependencies: - postcss: 8.4.49 + postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-color-functional-notation@7.0.7(postcss@8.4.49): + postcss-color-functional-notation@7.0.8(postcss@8.5.3): dependencies: - "@csstools/css-color-parser": 3.0.7(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + "@csstools/css-color-parser": 3.0.8(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) "@csstools/css-parser-algorithms": 3.0.4(@csstools/css-tokenizer@3.0.3) "@csstools/css-tokenizer": 3.0.3 - "@csstools/postcss-progressive-custom-properties": 4.0.0(postcss@8.4.49) - "@csstools/utilities": 2.0.0(postcss@8.4.49) - postcss: 8.4.49 + "@csstools/postcss-progressive-custom-properties": 4.0.0(postcss@8.5.3) + "@csstools/utilities": 2.0.0(postcss@8.5.3) + postcss: 8.5.3 - postcss-color-hex-alpha@10.0.0(postcss@8.4.49): + postcss-color-hex-alpha@10.0.0(postcss@8.5.3): dependencies: - "@csstools/utilities": 2.0.0(postcss@8.4.49) - postcss: 8.4.49 + "@csstools/utilities": 2.0.0(postcss@8.5.3) + postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-color-rebeccapurple@10.0.0(postcss@8.4.49): + postcss-color-rebeccapurple@10.0.0(postcss@8.5.3): dependencies: - "@csstools/utilities": 2.0.0(postcss@8.4.49) - postcss: 8.4.49 + "@csstools/utilities": 2.0.0(postcss@8.5.3) + postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-colormin@7.0.2(postcss@8.4.49): + postcss-colormin@7.0.2(postcss@8.5.3): dependencies: browserslist: 4.24.2 caniuse-api: 3.0.0 colord: 2.9.3 - postcss: 8.4.49 + postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-convert-values@7.0.4(postcss@8.4.49): + postcss-convert-values@7.0.4(postcss@8.5.3): dependencies: browserslist: 4.24.2 - postcss: 8.4.49 + postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-custom-media@11.0.5(postcss@8.4.49): + postcss-custom-media@11.0.5(postcss@8.5.3): dependencies: "@csstools/cascade-layer-name-parser": 2.0.4(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) "@csstools/css-parser-algorithms": 3.0.4(@csstools/css-tokenizer@3.0.3) "@csstools/css-tokenizer": 3.0.3 "@csstools/media-query-list-parser": 4.0.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) - postcss: 8.4.49 + postcss: 8.5.3 - postcss-custom-properties@14.0.4(postcss@8.4.49): + postcss-custom-properties@14.0.4(postcss@8.5.3): dependencies: "@csstools/cascade-layer-name-parser": 2.0.4(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) "@csstools/css-parser-algorithms": 3.0.4(@csstools/css-tokenizer@3.0.3) "@csstools/css-tokenizer": 3.0.3 - "@csstools/utilities": 2.0.0(postcss@8.4.49) - postcss: 8.4.49 + "@csstools/utilities": 2.0.0(postcss@8.5.3) + postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-custom-selectors@8.0.4(postcss@8.4.49): + postcss-custom-selectors@8.0.4(postcss@8.5.3): dependencies: "@csstools/cascade-layer-name-parser": 2.0.4(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) "@csstools/css-parser-algorithms": 3.0.4(@csstools/css-tokenizer@3.0.3) "@csstools/css-tokenizer": 3.0.3 - postcss: 8.4.49 + postcss: 8.5.3 postcss-selector-parser: 7.0.0 - postcss-dir-pseudo-class@9.0.1(postcss@8.4.49): + postcss-dir-pseudo-class@9.0.1(postcss@8.5.3): dependencies: - postcss: 8.4.49 + postcss: 8.5.3 postcss-selector-parser: 7.0.0 - postcss-discard-comments@7.0.3(postcss@8.4.49): + postcss-discard-comments@7.0.3(postcss@8.5.3): dependencies: - postcss: 8.4.49 + postcss: 8.5.3 postcss-selector-parser: 6.1.2 - postcss-discard-duplicates@7.0.1(postcss@8.4.49): + postcss-discard-duplicates@7.0.1(postcss@8.5.3): dependencies: - postcss: 8.4.49 + postcss: 8.5.3 - postcss-discard-empty@7.0.0(postcss@8.4.49): + postcss-discard-empty@7.0.0(postcss@8.5.3): dependencies: - postcss: 8.4.49 + postcss: 8.5.3 - postcss-discard-overridden@7.0.0(postcss@8.4.49): + postcss-discard-overridden@7.0.0(postcss@8.5.3): dependencies: - postcss: 8.4.49 + postcss: 8.5.3 - postcss-double-position-gradients@6.0.0(postcss@8.4.49): + postcss-double-position-gradients@6.0.0(postcss@8.5.3): dependencies: - "@csstools/postcss-progressive-custom-properties": 4.0.0(postcss@8.4.49) - "@csstools/utilities": 2.0.0(postcss@8.4.49) - postcss: 8.4.49 + "@csstools/postcss-progressive-custom-properties": 4.0.0(postcss@8.5.3) + "@csstools/utilities": 2.0.0(postcss@8.5.3) + postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-focus-visible@10.0.1(postcss@8.4.49): + postcss-focus-visible@10.0.1(postcss@8.5.3): dependencies: - postcss: 8.4.49 + postcss: 8.5.3 postcss-selector-parser: 7.0.0 - postcss-focus-within@9.0.1(postcss@8.4.49): + postcss-focus-within@9.0.1(postcss@8.5.3): dependencies: - postcss: 8.4.49 + postcss: 8.5.3 postcss-selector-parser: 7.0.0 - postcss-font-variant@5.0.0(postcss@8.4.49): + postcss-font-variant@5.0.0(postcss@8.5.3): dependencies: - postcss: 8.4.49 + postcss: 8.5.3 - postcss-gap-properties@6.0.0(postcss@8.4.49): + postcss-gap-properties@6.0.0(postcss@8.5.3): dependencies: - postcss: 8.4.49 + postcss: 8.5.3 - postcss-image-set-function@7.0.0(postcss@8.4.49): + postcss-image-set-function@7.0.0(postcss@8.5.3): dependencies: - "@csstools/utilities": 2.0.0(postcss@8.4.49) - postcss: 8.4.49 + "@csstools/utilities": 2.0.0(postcss@8.5.3) + postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-import@15.1.0(postcss@8.4.49): + postcss-import@15.1.0(postcss@8.5.3): dependencies: - postcss: 8.4.49 + postcss: 8.5.3 postcss-value-parser: 4.2.0 read-cache: 1.0.0 resolve: 1.22.8 - postcss-import@16.1.0(postcss@8.4.49): + postcss-import@16.1.0(postcss@8.5.3): dependencies: - postcss: 8.4.49 + postcss: 8.5.3 postcss-value-parser: 4.2.0 read-cache: 1.0.0 resolve: 1.22.8 - postcss-js@4.0.1(postcss@8.4.49): + postcss-js@4.0.1(postcss@8.5.3): dependencies: camelcase-css: 2.0.1 - postcss: 8.4.49 + postcss: 8.5.3 - postcss-lab-function@7.0.7(postcss@8.4.49): + postcss-lab-function@7.0.8(postcss@8.5.3): dependencies: - "@csstools/css-color-parser": 3.0.7(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + "@csstools/css-color-parser": 3.0.8(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) "@csstools/css-parser-algorithms": 3.0.4(@csstools/css-tokenizer@3.0.3) "@csstools/css-tokenizer": 3.0.3 - "@csstools/postcss-progressive-custom-properties": 4.0.0(postcss@8.4.49) - "@csstools/utilities": 2.0.0(postcss@8.4.49) - postcss: 8.4.49 + "@csstools/postcss-progressive-custom-properties": 4.0.0(postcss@8.5.3) + "@csstools/utilities": 2.0.0(postcss@8.5.3) + postcss: 8.5.3 - postcss-load-config@4.0.2(postcss@8.4.49): + postcss-load-config@4.0.2(postcss@8.5.3): dependencies: lilconfig: 3.1.3 - yaml: 2.6.1 + yaml: 2.7.0 optionalDependencies: - postcss: 8.4.49 + postcss: 8.5.3 - postcss-logical@8.0.0(postcss@8.4.49): + postcss-logical@8.1.0(postcss@8.5.3): dependencies: - postcss: 8.4.49 + postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-merge-longhand@7.0.4(postcss@8.4.49): + postcss-merge-longhand@7.0.4(postcss@8.5.3): dependencies: - postcss: 8.4.49 + postcss: 8.5.3 postcss-value-parser: 4.2.0 - stylehacks: 7.0.4(postcss@8.4.49) + stylehacks: 7.0.4(postcss@8.5.3) - postcss-merge-rules@7.0.4(postcss@8.4.49): + postcss-merge-rules@7.0.4(postcss@8.5.3): dependencies: browserslist: 4.24.2 caniuse-api: 3.0.0 - cssnano-utils: 5.0.0(postcss@8.4.49) - postcss: 8.4.49 + cssnano-utils: 5.0.0(postcss@8.5.3) + postcss: 8.5.3 postcss-selector-parser: 6.1.2 - postcss-minify-font-values@7.0.0(postcss@8.4.49): + postcss-minify-font-values@7.0.0(postcss@8.5.3): dependencies: - postcss: 8.4.49 + postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-minify-gradients@7.0.0(postcss@8.4.49): + postcss-minify-gradients@7.0.0(postcss@8.5.3): dependencies: colord: 2.9.3 - cssnano-utils: 5.0.0(postcss@8.4.49) - postcss: 8.4.49 + cssnano-utils: 5.0.0(postcss@8.5.3) + postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-minify-params@7.0.2(postcss@8.4.49): + postcss-minify-params@7.0.2(postcss@8.5.3): dependencies: browserslist: 4.24.2 - cssnano-utils: 5.0.0(postcss@8.4.49) - postcss: 8.4.49 + cssnano-utils: 5.0.0(postcss@8.5.3) + postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-minify-selectors@7.0.4(postcss@8.4.49): + postcss-minify-selectors@7.0.4(postcss@8.5.3): dependencies: cssesc: 3.0.0 - postcss: 8.4.49 + postcss: 8.5.3 postcss-selector-parser: 6.1.2 - postcss-nested@6.2.0(postcss@8.4.49): + postcss-nested@6.2.0(postcss@8.5.3): dependencies: - postcss: 8.4.49 + postcss: 8.5.3 postcss-selector-parser: 6.1.2 - postcss-nesting@13.0.1(postcss@8.4.49): + postcss-nesting@13.0.1(postcss@8.5.3): dependencies: "@csstools/selector-resolve-nested": 3.0.0(postcss-selector-parser@7.0.0) "@csstools/selector-specificity": 5.0.0(postcss-selector-parser@7.0.0) - postcss: 8.4.49 + postcss: 8.5.3 postcss-selector-parser: 7.0.0 - postcss-normalize-charset@7.0.0(postcss@8.4.49): + postcss-normalize-charset@7.0.0(postcss@8.5.3): dependencies: - postcss: 8.4.49 + postcss: 8.5.3 - postcss-normalize-display-values@7.0.0(postcss@8.4.49): + postcss-normalize-display-values@7.0.0(postcss@8.5.3): dependencies: - postcss: 8.4.49 + postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-normalize-positions@7.0.0(postcss@8.4.49): + postcss-normalize-positions@7.0.0(postcss@8.5.3): dependencies: - postcss: 8.4.49 + postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-normalize-repeat-style@7.0.0(postcss@8.4.49): + postcss-normalize-repeat-style@7.0.0(postcss@8.5.3): dependencies: - postcss: 8.4.49 + postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-normalize-string@7.0.0(postcss@8.4.49): + postcss-normalize-string@7.0.0(postcss@8.5.3): dependencies: - postcss: 8.4.49 + postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-normalize-timing-functions@7.0.0(postcss@8.4.49): + postcss-normalize-timing-functions@7.0.0(postcss@8.5.3): dependencies: - postcss: 8.4.49 + postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-normalize-unicode@7.0.2(postcss@8.4.49): + postcss-normalize-unicode@7.0.2(postcss@8.5.3): dependencies: browserslist: 4.24.2 - postcss: 8.4.49 + postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-normalize-url@7.0.0(postcss@8.4.49): + postcss-normalize-url@7.0.0(postcss@8.5.3): dependencies: - postcss: 8.4.49 + postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-normalize-whitespace@7.0.0(postcss@8.4.49): + postcss-normalize-whitespace@7.0.0(postcss@8.5.3): dependencies: - postcss: 8.4.49 + postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-opacity-percentage@3.0.0(postcss@8.4.49): + postcss-opacity-percentage@3.0.0(postcss@8.5.3): dependencies: - postcss: 8.4.49 + postcss: 8.5.3 - postcss-ordered-values@7.0.1(postcss@8.4.49): + postcss-ordered-values@7.0.1(postcss@8.5.3): dependencies: - cssnano-utils: 5.0.0(postcss@8.4.49) - postcss: 8.4.49 + cssnano-utils: 5.0.0(postcss@8.5.3) + postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-overflow-shorthand@6.0.0(postcss@8.4.49): + postcss-overflow-shorthand@6.0.0(postcss@8.5.3): dependencies: - postcss: 8.4.49 + postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-page-break@3.0.4(postcss@8.4.49): + postcss-page-break@3.0.4(postcss@8.5.3): dependencies: - postcss: 8.4.49 + postcss: 8.5.3 - postcss-place@10.0.0(postcss@8.4.49): + postcss-place@10.0.0(postcss@8.5.3): dependencies: - postcss: 8.4.49 + postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-preset-env@10.1.3(postcss@8.4.49): + postcss-preset-env@10.1.5(postcss@8.5.3): dependencies: - "@csstools/postcss-cascade-layers": 5.0.1(postcss@8.4.49) - "@csstools/postcss-color-function": 4.0.7(postcss@8.4.49) - "@csstools/postcss-color-mix-function": 3.0.7(postcss@8.4.49) - "@csstools/postcss-content-alt-text": 2.0.4(postcss@8.4.49) - "@csstools/postcss-exponential-functions": 2.0.6(postcss@8.4.49) - "@csstools/postcss-font-format-keywords": 4.0.0(postcss@8.4.49) - "@csstools/postcss-gamut-mapping": 2.0.7(postcss@8.4.49) - "@csstools/postcss-gradients-interpolation-method": 5.0.7(postcss@8.4.49) - "@csstools/postcss-hwb-function": 4.0.7(postcss@8.4.49) - "@csstools/postcss-ic-unit": 4.0.0(postcss@8.4.49) - "@csstools/postcss-initial": 2.0.0(postcss@8.4.49) - "@csstools/postcss-is-pseudo-class": 5.0.1(postcss@8.4.49) - "@csstools/postcss-light-dark-function": 2.0.7(postcss@8.4.49) - "@csstools/postcss-logical-float-and-clear": 3.0.0(postcss@8.4.49) - "@csstools/postcss-logical-overflow": 2.0.0(postcss@8.4.49) - "@csstools/postcss-logical-overscroll-behavior": 2.0.0(postcss@8.4.49) - "@csstools/postcss-logical-resize": 3.0.0(postcss@8.4.49) - "@csstools/postcss-logical-viewport-units": 3.0.3(postcss@8.4.49) - "@csstools/postcss-media-minmax": 2.0.6(postcss@8.4.49) - "@csstools/postcss-media-queries-aspect-ratio-number-values": 3.0.4(postcss@8.4.49) - "@csstools/postcss-nested-calc": 4.0.0(postcss@8.4.49) - "@csstools/postcss-normalize-display-values": 4.0.0(postcss@8.4.49) - "@csstools/postcss-oklab-function": 4.0.7(postcss@8.4.49) - "@csstools/postcss-progressive-custom-properties": 4.0.0(postcss@8.4.49) - "@csstools/postcss-random-function": 1.0.2(postcss@8.4.49) - "@csstools/postcss-relative-color-syntax": 3.0.7(postcss@8.4.49) - "@csstools/postcss-scope-pseudo-class": 4.0.1(postcss@8.4.49) - "@csstools/postcss-sign-functions": 1.1.1(postcss@8.4.49) - "@csstools/postcss-stepped-value-functions": 4.0.6(postcss@8.4.49) - "@csstools/postcss-text-decoration-shorthand": 4.0.1(postcss@8.4.49) - "@csstools/postcss-trigonometric-functions": 4.0.6(postcss@8.4.49) - "@csstools/postcss-unset-value": 4.0.0(postcss@8.4.49) - autoprefixer: 10.4.20(postcss@8.4.49) - browserslist: 4.24.2 - css-blank-pseudo: 7.0.1(postcss@8.4.49) - css-has-pseudo: 7.0.2(postcss@8.4.49) - css-prefers-color-scheme: 10.0.0(postcss@8.4.49) + "@csstools/postcss-cascade-layers": 5.0.1(postcss@8.5.3) + "@csstools/postcss-color-function": 4.0.8(postcss@8.5.3) + "@csstools/postcss-color-mix-function": 3.0.8(postcss@8.5.3) + "@csstools/postcss-content-alt-text": 2.0.4(postcss@8.5.3) + "@csstools/postcss-exponential-functions": 2.0.7(postcss@8.5.3) + "@csstools/postcss-font-format-keywords": 4.0.0(postcss@8.5.3) + "@csstools/postcss-gamut-mapping": 2.0.8(postcss@8.5.3) + "@csstools/postcss-gradients-interpolation-method": 5.0.8(postcss@8.5.3) + "@csstools/postcss-hwb-function": 4.0.8(postcss@8.5.3) + "@csstools/postcss-ic-unit": 4.0.0(postcss@8.5.3) + "@csstools/postcss-initial": 2.0.1(postcss@8.5.3) + "@csstools/postcss-is-pseudo-class": 5.0.1(postcss@8.5.3) + "@csstools/postcss-light-dark-function": 2.0.7(postcss@8.5.3) + "@csstools/postcss-logical-float-and-clear": 3.0.0(postcss@8.5.3) + "@csstools/postcss-logical-overflow": 2.0.0(postcss@8.5.3) + "@csstools/postcss-logical-overscroll-behavior": 2.0.0(postcss@8.5.3) + "@csstools/postcss-logical-resize": 3.0.0(postcss@8.5.3) + "@csstools/postcss-logical-viewport-units": 3.0.3(postcss@8.5.3) + "@csstools/postcss-media-minmax": 2.0.7(postcss@8.5.3) + "@csstools/postcss-media-queries-aspect-ratio-number-values": 3.0.4(postcss@8.5.3) + "@csstools/postcss-nested-calc": 4.0.0(postcss@8.5.3) + "@csstools/postcss-normalize-display-values": 4.0.0(postcss@8.5.3) + "@csstools/postcss-oklab-function": 4.0.8(postcss@8.5.3) + "@csstools/postcss-progressive-custom-properties": 4.0.0(postcss@8.5.3) + "@csstools/postcss-random-function": 1.0.3(postcss@8.5.3) + "@csstools/postcss-relative-color-syntax": 3.0.8(postcss@8.5.3) + "@csstools/postcss-scope-pseudo-class": 4.0.1(postcss@8.5.3) + "@csstools/postcss-sign-functions": 1.1.2(postcss@8.5.3) + "@csstools/postcss-stepped-value-functions": 4.0.7(postcss@8.5.3) + "@csstools/postcss-text-decoration-shorthand": 4.0.2(postcss@8.5.3) + "@csstools/postcss-trigonometric-functions": 4.0.7(postcss@8.5.3) + "@csstools/postcss-unset-value": 4.0.0(postcss@8.5.3) + autoprefixer: 10.4.20(postcss@8.5.3) + browserslist: 4.24.4 + css-blank-pseudo: 7.0.1(postcss@8.5.3) + css-has-pseudo: 7.0.2(postcss@8.5.3) + css-prefers-color-scheme: 10.0.0(postcss@8.5.3) cssdb: 8.2.3 - postcss: 8.4.49 - postcss-attribute-case-insensitive: 7.0.1(postcss@8.4.49) - postcss-clamp: 4.1.0(postcss@8.4.49) - postcss-color-functional-notation: 7.0.7(postcss@8.4.49) - postcss-color-hex-alpha: 10.0.0(postcss@8.4.49) - postcss-color-rebeccapurple: 10.0.0(postcss@8.4.49) - postcss-custom-media: 11.0.5(postcss@8.4.49) - postcss-custom-properties: 14.0.4(postcss@8.4.49) - postcss-custom-selectors: 8.0.4(postcss@8.4.49) - postcss-dir-pseudo-class: 9.0.1(postcss@8.4.49) - postcss-double-position-gradients: 6.0.0(postcss@8.4.49) - postcss-focus-visible: 10.0.1(postcss@8.4.49) - postcss-focus-within: 9.0.1(postcss@8.4.49) - postcss-font-variant: 5.0.0(postcss@8.4.49) - postcss-gap-properties: 6.0.0(postcss@8.4.49) - postcss-image-set-function: 7.0.0(postcss@8.4.49) - postcss-lab-function: 7.0.7(postcss@8.4.49) - postcss-logical: 8.0.0(postcss@8.4.49) - postcss-nesting: 13.0.1(postcss@8.4.49) - postcss-opacity-percentage: 3.0.0(postcss@8.4.49) - postcss-overflow-shorthand: 6.0.0(postcss@8.4.49) - postcss-page-break: 3.0.4(postcss@8.4.49) - postcss-place: 10.0.0(postcss@8.4.49) - postcss-pseudo-class-any-link: 10.0.1(postcss@8.4.49) - postcss-replace-overflow-wrap: 4.0.0(postcss@8.4.49) - postcss-selector-not: 8.0.1(postcss@8.4.49) + postcss: 8.5.3 + postcss-attribute-case-insensitive: 7.0.1(postcss@8.5.3) + postcss-clamp: 4.1.0(postcss@8.5.3) + postcss-color-functional-notation: 7.0.8(postcss@8.5.3) + postcss-color-hex-alpha: 10.0.0(postcss@8.5.3) + postcss-color-rebeccapurple: 10.0.0(postcss@8.5.3) + postcss-custom-media: 11.0.5(postcss@8.5.3) + postcss-custom-properties: 14.0.4(postcss@8.5.3) + postcss-custom-selectors: 8.0.4(postcss@8.5.3) + postcss-dir-pseudo-class: 9.0.1(postcss@8.5.3) + postcss-double-position-gradients: 6.0.0(postcss@8.5.3) + postcss-focus-visible: 10.0.1(postcss@8.5.3) + postcss-focus-within: 9.0.1(postcss@8.5.3) + postcss-font-variant: 5.0.0(postcss@8.5.3) + postcss-gap-properties: 6.0.0(postcss@8.5.3) + postcss-image-set-function: 7.0.0(postcss@8.5.3) + postcss-lab-function: 7.0.8(postcss@8.5.3) + postcss-logical: 8.1.0(postcss@8.5.3) + postcss-nesting: 13.0.1(postcss@8.5.3) + postcss-opacity-percentage: 3.0.0(postcss@8.5.3) + postcss-overflow-shorthand: 6.0.0(postcss@8.5.3) + postcss-page-break: 3.0.4(postcss@8.5.3) + postcss-place: 10.0.0(postcss@8.5.3) + postcss-pseudo-class-any-link: 10.0.1(postcss@8.5.3) + postcss-replace-overflow-wrap: 4.0.0(postcss@8.5.3) + postcss-selector-not: 8.0.1(postcss@8.5.3) - postcss-pseudo-class-any-link@10.0.1(postcss@8.4.49): + postcss-pseudo-class-any-link@10.0.1(postcss@8.5.3): dependencies: - postcss: 8.4.49 + postcss: 8.5.3 postcss-selector-parser: 7.0.0 - postcss-reduce-initial@7.0.2(postcss@8.4.49): + postcss-reduce-initial@7.0.2(postcss@8.5.3): dependencies: browserslist: 4.24.2 caniuse-api: 3.0.0 - postcss: 8.4.49 + postcss: 8.5.3 - postcss-reduce-transforms@7.0.0(postcss@8.4.49): + postcss-reduce-transforms@7.0.0(postcss@8.5.3): dependencies: - postcss: 8.4.49 + postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-replace-overflow-wrap@4.0.0(postcss@8.4.49): + postcss-replace-overflow-wrap@4.0.0(postcss@8.5.3): dependencies: - postcss: 8.4.49 + postcss: 8.5.3 - postcss-reporter@7.1.0(postcss@8.4.49): + postcss-reporter@7.1.0(postcss@8.5.3): dependencies: picocolors: 1.1.1 - postcss: 8.4.49 + postcss: 8.5.3 thenby: 1.3.4 postcss-resolve-nested-selector@0.1.6: {} - postcss-safe-parser@7.0.1(postcss@8.4.49): + postcss-safe-parser@7.0.1(postcss@8.5.3): dependencies: - postcss: 8.4.49 + postcss: 8.5.3 - postcss-selector-not@8.0.1(postcss@8.4.49): + postcss-selector-not@8.0.1(postcss@8.5.3): dependencies: - postcss: 8.4.49 + postcss: 8.5.3 postcss-selector-parser: 7.0.0 postcss-selector-parser@6.0.10: @@ -13697,22 +14515,27 @@ snapshots: cssesc: 3.0.0 util-deprecate: 1.0.2 - postcss-svgo@7.0.1(postcss@8.4.49): + postcss-selector-parser@7.1.0: dependencies: - postcss: 8.4.49 + cssesc: 3.0.0 + util-deprecate: 1.0.2 + + postcss-svgo@7.0.1(postcss@8.5.3): + dependencies: + postcss: 8.5.3 postcss-value-parser: 4.2.0 svgo: 3.3.2 - postcss-unique-selectors@7.0.3(postcss@8.4.49): + postcss-unique-selectors@7.0.3(postcss@8.5.3): dependencies: - postcss: 8.4.49 + postcss: 8.5.3 postcss-selector-parser: 6.1.2 postcss-value-parser@4.2.0: {} - postcss@8.4.49: + postcss@8.5.3: dependencies: - nanoid: 3.3.7 + nanoid: 3.3.8 picocolors: 1.1.1 source-map-js: 1.2.1 @@ -13722,15 +14545,15 @@ snapshots: dependencies: fast-diff: 1.3.0 - prettier-plugin-organize-imports@4.1.0(prettier@3.4.2)(typescript@5.7.2): + prettier-plugin-organize-imports@4.1.0(prettier@3.5.3)(typescript@5.7.3): dependencies: - prettier: 3.4.2 - typescript: 5.7.2 + prettier: 3.5.3 + typescript: 5.7.3 prettier@2.8.8: optional: true - prettier@3.4.2: {} + prettier@3.5.3: {} pretty-bytes@5.6.0: {} @@ -13892,30 +14715,33 @@ snapshots: optionalDependencies: fsevents: 2.3.3 - rollup@4.24.4: + rollup@4.34.8: dependencies: "@types/estree": 1.0.6 optionalDependencies: - "@rollup/rollup-android-arm-eabi": 4.24.4 - "@rollup/rollup-android-arm64": 4.24.4 - "@rollup/rollup-darwin-arm64": 4.24.4 - "@rollup/rollup-darwin-x64": 4.24.4 - "@rollup/rollup-freebsd-arm64": 4.24.4 - "@rollup/rollup-freebsd-x64": 4.24.4 - "@rollup/rollup-linux-arm-gnueabihf": 4.24.4 - "@rollup/rollup-linux-arm-musleabihf": 4.24.4 - "@rollup/rollup-linux-arm64-gnu": 4.24.4 - "@rollup/rollup-linux-arm64-musl": 4.24.4 - "@rollup/rollup-linux-powerpc64le-gnu": 4.24.4 - "@rollup/rollup-linux-riscv64-gnu": 4.24.4 - "@rollup/rollup-linux-s390x-gnu": 4.24.4 - "@rollup/rollup-linux-x64-gnu": 4.24.4 - "@rollup/rollup-linux-x64-musl": 4.24.4 - "@rollup/rollup-win32-arm64-msvc": 4.24.4 - "@rollup/rollup-win32-ia32-msvc": 4.24.4 - "@rollup/rollup-win32-x64-msvc": 4.24.4 + "@rollup/rollup-android-arm-eabi": 4.34.8 + "@rollup/rollup-android-arm64": 4.34.8 + "@rollup/rollup-darwin-arm64": 4.34.8 + "@rollup/rollup-darwin-x64": 4.34.8 + "@rollup/rollup-freebsd-arm64": 4.34.8 + "@rollup/rollup-freebsd-x64": 4.34.8 + "@rollup/rollup-linux-arm-gnueabihf": 4.34.8 + "@rollup/rollup-linux-arm-musleabihf": 4.34.8 + "@rollup/rollup-linux-arm64-gnu": 4.34.8 + "@rollup/rollup-linux-arm64-musl": 4.34.8 + "@rollup/rollup-linux-loongarch64-gnu": 4.34.8 + "@rollup/rollup-linux-powerpc64le-gnu": 4.34.8 + "@rollup/rollup-linux-riscv64-gnu": 4.34.8 + "@rollup/rollup-linux-s390x-gnu": 4.34.8 + "@rollup/rollup-linux-x64-gnu": 4.34.8 + "@rollup/rollup-linux-x64-musl": 4.34.8 + "@rollup/rollup-win32-arm64-msvc": 4.34.8 + "@rollup/rollup-win32-ia32-msvc": 4.34.8 + "@rollup/rollup-win32-x64-msvc": 4.34.8 fsevents: 2.3.3 + run-applescript@7.0.0: {} + run-async@2.4.1: {} run-parallel@1.2.0: @@ -13951,16 +14777,16 @@ snapshots: sax@1.4.1: {} - semantic-release@24.2.0(typescript@5.7.2): + semantic-release@24.2.3(typescript@5.7.3): dependencies: - "@semantic-release/commit-analyzer": 13.0.0(semantic-release@24.2.0(typescript@5.7.2)) + "@semantic-release/commit-analyzer": 13.0.0(semantic-release@24.2.3(typescript@5.7.3)) "@semantic-release/error": 4.0.0 - "@semantic-release/github": 11.0.0(semantic-release@24.2.0(typescript@5.7.2)) - "@semantic-release/npm": 12.0.1(semantic-release@24.2.0(typescript@5.7.2)) - "@semantic-release/release-notes-generator": 14.0.1(semantic-release@24.2.0(typescript@5.7.2)) + "@semantic-release/github": 11.0.0(semantic-release@24.2.3(typescript@5.7.3)) + "@semantic-release/npm": 12.0.1(semantic-release@24.2.3(typescript@5.7.3)) + "@semantic-release/release-notes-generator": 14.0.1(semantic-release@24.2.3(typescript@5.7.3)) aggregate-error: 5.0.0 - cosmiconfig: 9.0.0(typescript@5.7.2) - debug: 4.3.7 + cosmiconfig: 9.0.0(typescript@5.7.3) + debug: 4.4.0 env-ci: 11.1.0 execa: 9.5.1 figures: 6.1.0 @@ -13969,7 +14795,7 @@ snapshots: git-log-parser: 1.2.1 hook-std: 3.0.0 hosted-git-info: 8.0.0 - import-from-esm: 1.3.4 + import-from-esm: 2.0.0 lodash-es: 4.17.21 marked: 12.0.2 marked-terminal: 7.2.1(marked@12.0.2) @@ -14018,6 +14844,32 @@ snapshots: functions-have-names: 1.2.3 has-property-descriptors: 1.0.2 + sharp@0.33.5: + dependencies: + color: 4.2.3 + detect-libc: 2.0.3 + semver: 7.6.3 + optionalDependencies: + "@img/sharp-darwin-arm64": 0.33.5 + "@img/sharp-darwin-x64": 0.33.5 + "@img/sharp-libvips-darwin-arm64": 1.0.4 + "@img/sharp-libvips-darwin-x64": 1.0.4 + "@img/sharp-libvips-linux-arm": 1.0.5 + "@img/sharp-libvips-linux-arm64": 1.0.4 + "@img/sharp-libvips-linux-s390x": 1.0.4 + "@img/sharp-libvips-linux-x64": 1.0.4 + "@img/sharp-libvips-linuxmusl-arm64": 1.0.4 + "@img/sharp-libvips-linuxmusl-x64": 1.0.4 + "@img/sharp-linux-arm": 0.33.5 + "@img/sharp-linux-arm64": 0.33.5 + "@img/sharp-linux-s390x": 0.33.5 + "@img/sharp-linux-x64": 0.33.5 + "@img/sharp-linuxmusl-arm64": 0.33.5 + "@img/sharp-linuxmusl-x64": 0.33.5 + "@img/sharp-wasm32": 0.33.5 + "@img/sharp-win32-ia32": 0.33.5 + "@img/sharp-win32-x64": 0.33.5 + shebang-command@2.0.0: dependencies: shebang-regex: 3.0.0 @@ -14041,6 +14893,16 @@ snapshots: figures: 2.0.0 pkg-conf: 2.1.0 + simple-swizzle@0.2.2: + dependencies: + is-arrayish: 0.3.2 + + sirv@3.0.1: + dependencies: + "@polka/url": 1.0.0-next.28 + mrmime: 2.0.0 + totalist: 3.0.1 + skin-tone@2.0.0: dependencies: unicode-emoji-modifier-base: 1.0.0 @@ -14207,42 +15069,42 @@ snapshots: style-mod@4.1.2: {} - stylehacks@7.0.4(postcss@8.4.49): + stylehacks@7.0.4(postcss@8.5.3): dependencies: browserslist: 4.24.2 - postcss: 8.4.49 + postcss: 8.5.3 postcss-selector-parser: 6.1.2 - stylelint-config-recommended@14.0.1(stylelint@16.12.0(typescript@5.7.2)): + stylelint-config-recommended@15.0.0(stylelint@16.15.0(typescript@5.7.3)): dependencies: - stylelint: 16.12.0(typescript@5.7.2) + stylelint: 16.15.0(typescript@5.7.3) - stylelint-config-standard@36.0.1(stylelint@16.12.0(typescript@5.7.2)): + stylelint-config-standard@37.0.0(stylelint@16.15.0(typescript@5.7.3)): dependencies: - stylelint: 16.12.0(typescript@5.7.2) - stylelint-config-recommended: 14.0.1(stylelint@16.12.0(typescript@5.7.2)) + stylelint: 16.15.0(typescript@5.7.3) + stylelint-config-recommended: 15.0.0(stylelint@16.15.0(typescript@5.7.3)) - stylelint@16.12.0(typescript@5.7.2): + stylelint@16.15.0(typescript@5.7.3): dependencies: "@csstools/css-parser-algorithms": 3.0.4(@csstools/css-tokenizer@3.0.3) "@csstools/css-tokenizer": 3.0.3 "@csstools/media-query-list-parser": 4.0.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) - "@csstools/selector-specificity": 5.0.0(postcss-selector-parser@7.0.0) + "@csstools/selector-specificity": 5.0.0(postcss-selector-parser@7.1.0) "@dual-bundle/import-meta-resolve": 4.1.0 balanced-match: 2.0.0 colord: 2.9.3 - cosmiconfig: 9.0.0(typescript@5.7.2) + cosmiconfig: 9.0.0(typescript@5.7.3) css-functions-list: 3.2.3 - css-tree: 3.0.1 - debug: 4.3.7 - fast-glob: 3.3.2 + css-tree: 3.1.0 + debug: 4.4.0 + fast-glob: 3.3.3 fastest-levenshtein: 1.0.16 - file-entry-cache: 9.1.0 + file-entry-cache: 10.0.6 global-modules: 2.0.0 globby: 11.1.0 globjoin: 0.1.4 html-tags: 3.3.1 - ignore: 6.0.2 + ignore: 7.0.3 imurmurhash: 0.1.4 is-plain-object: 5.0.0 known-css-properties: 0.35.0 @@ -14251,14 +15113,14 @@ snapshots: micromatch: 4.0.8 normalize-path: 3.0.0 picocolors: 1.1.1 - postcss: 8.4.49 + postcss: 8.5.3 postcss-resolve-nested-selector: 0.1.6 - postcss-safe-parser: 7.0.1(postcss@8.4.49) - postcss-selector-parser: 7.0.0 + postcss-safe-parser: 7.0.1(postcss@8.5.3) + postcss-selector-parser: 7.1.0 postcss-value-parser: 4.2.0 resolve-from: 5.0.0 string-width: 4.2.3 - supports-hyperlinks: 3.1.0 + supports-hyperlinks: 3.2.0 svg-tags: 1.0.0 table: 6.9.0 write-file-atomic: 5.0.1 @@ -14294,6 +15156,11 @@ snapshots: has-flag: 4.0.0 supports-color: 7.2.0 + supports-hyperlinks@3.2.0: + dependencies: + has-flag: 4.0.0 + supports-color: 7.2.0 + supports-preserve-symlinks-flag@1.0.0: {} svg-tags@1.0.0: {} @@ -14328,7 +15195,7 @@ snapshots: chokidar: 3.6.0 didyoumean: 1.2.2 dlv: 1.1.3 - fast-glob: 3.3.2 + fast-glob: 3.3.3 glob-parent: 6.0.2 is-glob: 4.0.3 jiti: 1.21.6 @@ -14337,11 +15204,11 @@ snapshots: normalize-path: 3.0.0 object-hash: 3.0.0 picocolors: 1.1.1 - postcss: 8.4.49 - postcss-import: 15.1.0(postcss@8.4.49) - postcss-js: 4.0.1(postcss@8.4.49) - postcss-load-config: 4.0.2(postcss@8.4.49) - postcss-nested: 6.2.0(postcss@8.4.49) + postcss: 8.5.3 + postcss-import: 15.1.0(postcss@8.5.3) + postcss-js: 4.0.1(postcss@8.5.3) + postcss-load-config: 4.0.2(postcss@8.5.3) + postcss-nested: 6.2.0(postcss@8.5.3) postcss-selector-parser: 6.1.2 resolve: 1.22.8 sucrase: 3.35.0 @@ -14415,6 +15282,8 @@ snapshots: dependencies: is-number: 7.0.0 + totalist@3.0.1: {} + tr46@0.0.3: {} tr46@1.0.1: @@ -14423,9 +15292,9 @@ snapshots: traverse@0.6.8: {} - ts-api-utils@1.4.0(typescript@5.7.2): + ts-api-utils@2.0.1(typescript@5.7.3): dependencies: - typescript: 5.7.2 + typescript: 5.7.3 ts-interface-checker@0.1.13: {} @@ -14479,17 +15348,17 @@ snapshots: is-typed-array: 1.1.13 possible-typed-array-names: 1.0.0 - typescript-eslint@8.18.2(eslint@9.17.0(jiti@2.4.1))(typescript@5.7.2): + typescript-eslint@8.26.1(eslint@9.22.0(jiti@2.4.1))(typescript@5.7.3): dependencies: - "@typescript-eslint/eslint-plugin": 8.18.2(@typescript-eslint/parser@8.18.2(eslint@9.17.0(jiti@2.4.1))(typescript@5.7.2))(eslint@9.17.0(jiti@2.4.1))(typescript@5.7.2) - "@typescript-eslint/parser": 8.18.2(eslint@9.17.0(jiti@2.4.1))(typescript@5.7.2) - "@typescript-eslint/utils": 8.18.2(eslint@9.17.0(jiti@2.4.1))(typescript@5.7.2) - eslint: 9.17.0(jiti@2.4.1) - typescript: 5.7.2 + "@typescript-eslint/eslint-plugin": 8.26.1(@typescript-eslint/parser@8.26.1(eslint@9.22.0(jiti@2.4.1))(typescript@5.7.3))(eslint@9.22.0(jiti@2.4.1))(typescript@5.7.3) + "@typescript-eslint/parser": 8.26.1(eslint@9.22.0(jiti@2.4.1))(typescript@5.7.3) + "@typescript-eslint/utils": 8.26.1(eslint@9.22.0(jiti@2.4.1))(typescript@5.7.3) + eslint: 9.22.0(jiti@2.4.1) + typescript: 5.7.3 transitivePeerDependencies: - supports-color - typescript@5.7.2: {} + typescript@5.7.3: {} uglify-js@3.19.3: optional: true @@ -14542,6 +15411,11 @@ snapshots: universalify@2.0.1: {} + unplugin-utils@0.2.4: + dependencies: + pathe: 2.0.3 + picomatch: 4.0.2 + upath@1.2.0: {} update-browserslist-db@1.1.1(browserslist@4.24.2): @@ -14550,6 +15424,12 @@ snapshots: escalade: 3.2.0 picocolors: 1.1.1 + update-browserslist-db@1.1.1(browserslist@4.24.4): + dependencies: + browserslist: 4.24.4 + escalade: 3.2.0 + picocolors: 1.1.1 + uri-js@4.4.1: dependencies: punycode: 2.3.1 @@ -14565,32 +15445,75 @@ snapshots: spdx-correct: 3.2.0 spdx-expression-parse: 3.0.1 - vite-plugin-pwa@0.21.1(vite@6.0.6(@types/node@22.9.0)(jiti@2.4.1)(terser@5.36.0)(yaml@2.6.1))(workbox-build@7.3.0)(workbox-window@7.3.0): + vite-dev-rpc@1.0.7(vite@6.2.2(@types/node@22.9.0)(jiti@2.4.1)(terser@5.36.0)(yaml@2.7.0)): + dependencies: + birpc: 2.2.0 + vite: 6.2.2(@types/node@22.9.0)(jiti@2.4.1)(terser@5.36.0)(yaml@2.7.0) + vite-hot-client: 2.0.4(vite@6.2.2(@types/node@22.9.0)(jiti@2.4.1)(terser@5.36.0)(yaml@2.7.0)) + + vite-hot-client@2.0.4(vite@6.2.2(@types/node@22.9.0)(jiti@2.4.1)(terser@5.36.0)(yaml@2.7.0)): + dependencies: + vite: 6.2.2(@types/node@22.9.0)(jiti@2.4.1)(terser@5.36.0)(yaml@2.7.0) + + vite-plugin-codeigniter@1.0.1(vite@6.2.2(@types/node@22.9.0)(jiti@2.4.1)(terser@5.36.0)(yaml@2.7.0)): + dependencies: + glob: 11.0.1 + picocolors: 1.1.1 + sharp: 0.33.5 + vite: 6.2.2(@types/node@22.9.0)(jiti@2.4.1)(terser@5.36.0)(yaml@2.7.0) + vite-plugin-static-copy: 2.3.0(vite@6.2.2(@types/node@22.9.0)(jiti@2.4.1)(terser@5.36.0)(yaml@2.7.0)) + zod: 3.24.2 + + vite-plugin-inspect@11.0.0(vite@6.2.2(@types/node@22.9.0)(jiti@2.4.1)(terser@5.36.0)(yaml@2.7.0)): + dependencies: + ansis: 3.16.0 + debug: 4.4.0 + error-stack-parser-es: 1.0.5 + ohash: 2.0.4 + open: 10.1.0 + perfect-debounce: 1.0.0 + sirv: 3.0.1 + unplugin-utils: 0.2.4 + vite: 6.2.2(@types/node@22.9.0)(jiti@2.4.1)(terser@5.36.0)(yaml@2.7.0) + vite-dev-rpc: 1.0.7(vite@6.2.2(@types/node@22.9.0)(jiti@2.4.1)(terser@5.36.0)(yaml@2.7.0)) + transitivePeerDependencies: + - supports-color + + vite-plugin-pwa@0.21.1(vite@6.2.2(@types/node@22.9.0)(jiti@2.4.1)(terser@5.36.0)(yaml@2.7.0))(workbox-build@7.3.0)(workbox-window@7.3.0): dependencies: debug: 4.3.7 pretty-bytes: 6.1.1 tinyglobby: 0.2.10 - vite: 6.0.6(@types/node@22.9.0)(jiti@2.4.1)(terser@5.36.0)(yaml@2.6.1) + vite: 6.2.2(@types/node@22.9.0)(jiti@2.4.1)(terser@5.36.0)(yaml@2.7.0) workbox-build: 7.3.0 workbox-window: 7.3.0 transitivePeerDependencies: - supports-color - vite@6.0.6(@types/node@22.9.0)(jiti@2.4.1)(terser@5.36.0)(yaml@2.6.1): + vite-plugin-static-copy@2.3.0(vite@6.2.2(@types/node@22.9.0)(jiti@2.4.1)(terser@5.36.0)(yaml@2.7.0)): dependencies: - esbuild: 0.24.2 - postcss: 8.4.49 - rollup: 4.24.4 + chokidar: 3.6.0 + fast-glob: 3.3.3 + fs-extra: 11.2.0 + p-map: 7.0.3 + picocolors: 1.1.1 + vite: 6.2.2(@types/node@22.9.0)(jiti@2.4.1)(terser@5.36.0)(yaml@2.7.0) + + vite@6.2.2(@types/node@22.9.0)(jiti@2.4.1)(terser@5.36.0)(yaml@2.7.0): + dependencies: + esbuild: 0.25.0 + postcss: 8.5.3 + rollup: 4.34.8 optionalDependencies: "@types/node": 22.9.0 fsevents: 2.3.3 jiti: 2.4.1 terser: 5.36.0 - yaml: 2.6.1 + yaml: 2.7.0 w3c-keyname@2.2.8: {} - wavesurfer.js@7.8.14: {} + wavesurfer.js@7.9.1: {} wcwidth@1.0.1: dependencies: @@ -14785,7 +15708,7 @@ snapshots: imurmurhash: 0.1.4 signal-exit: 4.1.0 - xml-formatter@3.6.3: + xml-formatter@3.6.4: dependencies: xml-parser-xo: 4.1.2 @@ -14803,7 +15726,7 @@ snapshots: yallist@3.1.1: {} - yaml@2.6.1: {} + yaml@2.7.0: {} yargs-parser@18.1.3: dependencies: @@ -14853,3 +15776,5 @@ snapshots: yocto-queue@1.1.1: {} yoctocolors@2.1.1: {} + + zod@3.24.2: {} diff --git a/public/castopod-avatar_medium.webp b/public/castopod-avatar_medium.webp deleted file mode 100644 index 910a2b35897be74bd0033302f526ee8ed077802e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10163 zcmeHs2Uru`*6tupKm~*ds1Otoq${9;NK^y_M5IVil!%BlktRjjC|wjIBBG!~DIy?7 zl-{CL73o!q^xhImNWx@t$L~MqJAR(?pIe^$+~>c~y_4+8?8)pkd+ojU+V8s-tA{lN z2pH)b>H}_fQ=JT^{2LfJJ>cLedOZa$ivHrJWwD2 zY+z$&-@w8Cv)9Pe!N~srhal(HUHgu437Oe(@Aeele>?8wMyca@pHSwlWNEd_UZFg^ z+eAdgw#)31mD?+?u5sYtAx$ma6MFgvCk>4(EYDhDtym8>#XeeAMy(di;7E1tEy{i>*_y$`P$ar(b?7A z^SyU?WOQtNVsdJFhO)H0vPxZ}(HTGWVguO!L#;nG`%N!FM6V4T9PAw2KlNhU;D;1; zK@QGc`?$6qGvl`N6xzN2_D133aWC^e@kptelTnwwT6wogs}IXieya9|X8&V~h5j#T z_NQY1(5n~N#Lk9H9=jlb0hmWqW8|BVlN|8>%l`{wFjBdnHeb0T=s>pyEwrGq{IFYR zshG|91tw3^k*r!x^|)A)i|&Id~fvHJhT&}#$bNArcq;bvJB|pHuUUO9~OXN0ZZ24lI*`5Hne3L zM7qnr`az2Y5Lf_R5knW6Q=$1AFi%Rc0B$rh75{6c@<=K^+YH9lMlrrW2b);{^cW4@ zp^8A-QgAvl)M0qI)!^3(PNLPI6B!AWk?Q{)GZT&(ddV)O!}gKdg_uA9Sk>G+TZP`L zA$p@^G`X6QUZZ&ChpN+^v{yf%w8LAODpfByM58Z-%U&W8q3S7O=9N_ajB>J|?m`^I7q1n_Jh3V!Afqy0LKe@*~&jNZ7`*s&Xeho1zXNXxjO%&e|SYFwJ|TU=_Pj^Ye-q#Cf4XXs3qw;81Cy8BJkb#)Sn4d+Ff+&lH>UvPAfv*Ro%tmXe3IxK3*h1#d|QRUCSHXx*HQWIfHLLJ z%vq&ji0dLp8s}c0cr2(qD5dI;(?0{WDIOIE3QfrwEFj$8fCaoT!NcsbG^^(_p36Fu zE$i~&*UHg@uwX12zI^~g+e8>PfTXr#m>aHvWHC%t{_C`-Yy1wTbZq}s7ErY>4H<go|=TN#f=3bL|iOtM88Q@?0$OaGfCBCFS}2xa+2z zIh6C%M^0c{@cvPz7oNITX5|9C5SI{)HJ?cOQtwx2C+e*L-w{Z79SI54l}}1`XO)J z#VF!VJ&i+z(1{X<3prcKt3ERXpMJU2m}zbA|1!2~-J0QZg7axKuqC~F#4y4r1KAo5aKtQySBmpBaQ4vXW?# zZP~!N5I6X?we2Cwt7I|@s21s6$k}zjt@9uXS3dt8+n=J~TWP_p&}g_DELC;>)HSQ# z8JoLzj>1x+_f+6}?rr7QG*sNJ)CVnAb`I`bn%jKA@@&6VN^Ux7n}22vvDdwhAmBc( zIwRzyb=5S{A@i#Rd*P(0BDib*!u1G>aqW*Cee9cK*Zu(iwre<7-wPZ!o)ESGQE!s8-iS=zaNsxi);E?X5%j z!?%lv4&zD#ao>9hl5(@EMV z>fA?Jz(p^xJd=iP-`S0rd45Wf=L={XMUnc(+*wk<-6E9zodshnW;@hN3{H%C%MJ@hLq(@Eq-SK)cg*x zP$>vAYIFOht5*Z6@^uftPzn&AXEECm*!|TKTVlh1I{)Ssd?Q(`P(|fUc3bkY$rRJH zTVCNlO*6N7L?t3cq~rRNikhx{^m_q$?AJ}Z#opFcN|=qu-<<+awr1zF#ahox69%)m zUfOZx*m*nnY;Sb)+@Y)J)|wEx5sD4L`nOl(hxxb7Zdbf_q35C@VBZ;<2f$KXBrAnw zZ|c*N?W6dZ@^WvF^wI9i6BXsJOir6k+b^eRrinzR*<{D#_7E8oc6!3tc62Pk9sUR| zN%<4tDnk~K8WC)QQ~akp2k*e@_-P3-1e55aTj6WSoJ{CEL(ahOMWLE>jYQw2MPvr` zA#Ub!MP2z}Y6F62gtA#ccOwaoRB%Dp;0~R!Fff-KCC_T&M^x-t>g{xa1ALiHAaE~78MAzByp!}>;=Z{THhlHiP$pXl&gd&38W7rfwk zhHuQQKcwq7p)Kc8XR*;Ma0k6`acyu(XCKXNUB*AT8ZEMN$H$X{Arnq;TlXn*kd`~9 z_i1e3Aey$5m!kv)KrqL1{ zUHM#gJ8b*j>(94d@Jfdzv7a&gEZ{P@l@_7XI&zo>X#$ryc4^c5xLX8-1IL&O3+IjI z((dLQS5^&7;j)VxTGk>H@7%pE-&GO6T38yes^f}&ml>|p_-;1o69GNzy-f{XXr8ro zA3BT03cUS&YYB_abp*icGe~+Mj?vmLx{c-BZ-e_@9Z|z=#$*tvVA;cflsGv}wrE1WK6l`Xk2ai$NUsu(%q z4X9-uq_QK{y`u(M;9E_Z!U{7kbjN?bRc=a22Tzilp%_&dzx;Cv?OPev6F$TCd-*4n zwxBUQScroj{E6gj&cKSnrXq)tw_cTkwnF%(QUv@wgY9^4c&YDKNE7zimGEdNR7=1) z|BTwKN+{C0C-+4wI@#DfwZkGKx)+}2Fhgt5m6&VhFAd};zw{`Od7lm9YdPB+JzzO;9zKH{ehZ2|A1Z<5igMY|Qd7a~8sP$}21t{U(-X9U{*H zUM5>3=!g!|vN7)+5L$E#BwB)#)$84KbhagS-2FGXmqu zLrH=??pqSQY?OOG`IYm5cIQeSv#h~)@;-aHc0~;w8*d)dDWE(bXEvp&B>Q+OeIpG% zZ77;>;hjlKXb-C}XrxO>VD3?@pJ@3z1*$WCERLrdFDT9Q7EF}A?#IoD?6E~%AF z7U1v$v6yrgur^Jq3N5)p)pL<=re0ix7^W;BBpH%}8!8Y|jBK-u?O=omTDlDNItTOJ zkF-3EVKUswY3s^saIh>3Aeq3z7c^yha`n#rr3v~U&!!H4QLg>B;jBw`p3{zeJ^6$P9i^yumpzoR+i;7(;+uIw<@ zjay3)v?Mf3k%<{O6BOmubkLC8f5GdXRxrs**i6qGZG@bG-wSH+2t!O2o~EmP3}H-4#t03QM(ET!SU*^} z7_P12t@P@SgZGGQ^cM^1)4Rf?nD2Qop-D^6b*XfUWm~-CaO3V?nRp0rS_YGz^f>p)s zEMT&tegacfVkOvT8H}=3G*7-UF)9($rySLSBd?&NaVrY`jxe(yr1WBjr!WGfDJya_ zbG;bZoC}s0A%$2B9M~UX|C8xPcp?j>IS~I1jKE~y6a#aS$siCHbV8Bf)(hx3;=gUG zF>4D5lE04tc>ZHFBzAVZC=y&8K*+K+mS!O zyhj2@F`~{enlc!v?i$Q*@#uVmkJA;tZ7`cp+>`xd%kB4F#|CNG?I5&P4As-j5L+EY zd`ik1`U!H0vkZ>GZ!=UM(C@xlq=RR^)ZunP^TX0O8z;uu&ZbyDIKj#7g)<6;-}``n zKoflmn*>&gjqo$rTyQiVSp@9T9I4+aq)6yUrn7#-sg97^4K{ak@*gzFncZsAy>*&f z7KKdO=E+fa2D=ksZ2<=>m!`>63=d^4Ywy(C8B=lYY~=1U=6*#o^C8J82#(t57>$|Y z%mRm`e?~!erAQ(cybTGQ+Bhq9}e)HAHg&(bklUpth@-1G|esijv9#?G%1wyT7eAD=_r z5I+^)!l$XpROo<(;ja?=X<@IAGZG%bJ6k_-+2r)Zd^Skc_b_A(VW&<h;@( zwo$ivMyDR@W-mGNWyZwCOz&pwpjAksXq}*0%==>q2s~q^Ck*^rEd4|T&mWU+KN+XH zJ@KY^X!dI{>G&4Q1PT(IEuf?XUXA(~aB4zzYEQ?QZUcL4T(DL=;*HjFoh^K>rsAbE zzGaPD8(wyCbxZVX1ut%1j3yMFzVpImYY)x-q+3v(QNdjMP1P~*hMPb-~U^~d=H~OYK3`b zg{FSU6_?yS(RJn6rkR6!u5zE1M>TnMfs-o}m7}y|%0WZgxuJEuz)bj;>rbp-hR3#- ztY?#OI3vh|mNcmRtn!sEVxHaog9Y;|EkS!|2ASm%;f1z0ZXv@WEuf5$;}DcGBgLc*0Yze`6xn?X6Pl_Soi=Cl9Kl`4-&b_p;!0u0$*emZICB3)OF^}3d(c!YUDRci! zk`?G>5`^zL>ZN9k+Yi^W0I^q;sHg>PnVi#CI`W@%&dd1HGm55*W}?`q3^IZ>Y*9wn zA3Zy_{^}w=VGE(1G5SI92!`}*T@BNot37G@7{l&(CPD#!?sb@Lj z>Fl`p6g7%ob8HYcd$#BbeQk|jlVj3JHUi?}9>%31L6rONdu2bNQB6@>k7V6KuYI;) z2;rWr&Rvp9PY=Wm)WgX}+)YOafHk;DTUY`=!6* znSYm6WDli1`JVDA7}Y$3sj8e~7E7+HM24WMS%CJua{Q998SW6I!%Pk`rp(rrVtVGD zYpZaKC>dBNZaDEG^2W}wJoA0^o;bt-e>!G%*%a6E_?>Wx`m=Q?i=0vUShxKDl?j!tRI!Yhz7&lNw5{`;t_Mqu|iF=s0 zNn=lE5vDBS&J;ogt0_9Go9>L3ILLX<`iek681As`g@XPvHHMm0YMvNMUd8zsv2qFu zPOZF68(f$5kN=c3KCl+KLN6fkf15b@xYfAvI{#rYZdvi@X4DYY>VtLv7dLOAzJ7fV z^4E-urp4MZYcI_;P$SKs_LYRls$@@JmTbp)uLPf*N{wk*4*kW%H~iBzw_>*D)kEwh z8nfUg%vICvK?WUm{I8l*ov(x`F(G|bk&?5A6hYH~JEv8#@p<1Pt1j=0w2IU zt{Tkgy{t?mI}M!7IQXvBzSIC=TY$ zG_VFqw#gCwp`8k=3PV^ZZjc)ZvK&wu$2~4!B#;&0lZ#<2U~Y%V5>X9JKEXVUxThbp zVASeigqM_CQ2#q-@GPV)fCHAI?H##mP}AsS!VUN%lJPsW$^zE;ir_mjmCulDj-9xUt7(K*M$O&A!?|WZ)MhxG zGFL5dhSK3@(rIGnbL{ z&7YE2Z~F1im*PIN0QUMR;-z1kV}`f4App4!y*`1@X($HW+F%2k1m-{QnL5(3>hb?BswJurl-v;Eui~ukm6u&e5>uJUlmgat27WO)qD@L)`-R?dcb`d z5T2|Z5<^9{n7=pwMO8+5Srm0ZWemJMiQs8)EQH+644)^hxO6X6gd99K)uk0YCSui< zr|ZdaSJ6v;=}o32{w0c`w!SCmdIzlR?`~PpeV`%7d9y%Zg6Q(-g9B{_CLhz-@h&4Z zEsyM*ThX3X-+xFH+_Y2d$jF|XL!w0NKU_zfX>tb8XAJdcTDq{4DjtL&5l)WwSBa;{ zCX6iAV;cQie%zZC#I+rGqe`g5ueLBwE0~ORw!w>Vg3zcI5($fjy?L2NG!&9Y^g{-K zy7?|0JN}yE0r2HWLNQ*j9Q?(*`$wafSp|1C-* zt_`U%5DsF`L^7gv7{@=E`_Ej$Bdvr>VkbXwza%!}dk<0_J43`>u>o}vjxuWzliqTw zSy%I$Wp?rpizl~{j?2}$>*v4zIz?7{mK5o&XP!MT^Wh?ChOLaL<*dS z+U9LHA5s;X@!lm+b9fmtfj=`9R#M#A{I5>*_SZH&*$8`<#EKdxm3X{ z_wvcIgC&|8WqPRb!oD)h*>EW%UI8oP6Xp067I0lu!Zd8}?t5YL1BhO!gVl^ z{E5IbT2Y2?DC^2tx8v}V`X~rL#gOHP>kQ>h{B#Dx-Yw@QA5ZrUb%WY*S&OK82upLb zqu6}H{y4~rW0A@?UXSR485y?2=j*|PU#cPyRTfg3Z#60#UM}@=R z+oZ(i?h$t5f?|t=$9#uc>sulk1M=#p7Y!_yvLUVvvr^Q&MB_!`^G?LPN8P`BQyn@A zo(DA7hV0D?RNCG6*wx1Pk%G*(uml;?6WrV><=Fm5X12jD?{k%%(cq(T_5DGZcWF5R Vg=_AN??}4bI;960J2uw${|01N^XC8n diff --git a/public/castopod-avatar_thumbnail.webp b/public/castopod-avatar_thumbnail.webp deleted file mode 100644 index b0625dc01a1ecf4bb7cfc5668943ae4edee9cf61..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4879 zcmb_fdpuNMyWj2^mkA?8Mv)YyNH>>>LYf%&A(wGUg&&bSG3Am{nh>HgMQ({9ba`bM z6H>|j-VcM^W!z`R%s0wTo5a8z*fC&i+ZWD!xii*HQ zM8w1;w~L8Oh>M79-?3dn3Lz~mEee;B-GPvmL`WmH2I1j@bod2?1q6fQKEM;N{`tqvMcdX!XqN%;uCHs-npBU zn)WC?BlB@qc5dFw{DQ)w;#Y4ftE%6=d;j5Y4b)GKP0gQMzI1kV_w@Gl4-C@A#wUJG zPEF6uE-kODuB~q{n5->aJOJN+!1@=mKjD&qaPji<^YII9;o{*9gM?3lUtsqUK}ka^ zA@@M3JzBT6A&gR9R8WMKwXNyW9@jfyJ5-L+_AYHf`v2S| zkPKHO95o$I2LZ0=3lJE4#oXIJ9{%G%Xo%+qX+<|u{SF8u(C91NL;@THM!z7r2MB-G zDVoT1kB$-n0hA{Q+|vB(T5ha$8E#B72=L-2Lszj9ARt1eO>y9gND!brLb2_T^p6IL z`1U0l2(abOfIy>F%OT3zye6AN;PTgfTbM3W=E@{e+gOTvC=iHK!!ur?XyG^XK;XqV z6$BVsi6D@am+BHX*NoLfw+OedNAY)H@P8^_e`EdISWfvr6*B(@Nxts83SqdLrFZ$6%Bdr@AcY=2f5R9#UVXvqh{7X4;LJ-T;}D8{oj{`15$X5|sN5e!2F`$&+3|6->y@%q=Vfl{ECKU*>*F% z*h2LjgX0Gqe=e9xn>THSZuZ7ow(k8{tYOjd<-VMYI4q?-uD@>J6PLI+iN3%khOx$=uaLQ;!Lc&*FQO44wpx*cN)WhH$~LD5HDn(9 zRXWk%?7fFTOWpmm9JTR1CLZhRz5jsO!6)79npkh^oKx3{jj}TvFGtpXd}GiyPftT8 z@GJGm={2`;sIjIye4+uT18awbe5RBF%#>JC&etd)FbD!@#=S9gw2*zLMM8Awu*>UW z)Dr}0Kv+q7-}71F@dxVa>#>~dkLV@eu>^8yfve+?ce1;JmU-CjZ~m_b>@0;(@+(r) zoK2o>$}noEidyuw1#+Q#kpmSk`cBHIRpH^D_Z~w|B)k`tC!<>NuBKh% zN1hrgP`)InPB)od{AxE+*Lsyu^^d*nxNuFDQFDR5?>1@ecUMn=gr`vxZd%`hZobk@ zJqJW)GjrfWogLNXY2oKDb&8CCN0)acaMxR31TEAok=!^hV-$Txq+;YSdDFL$mNJ&# zE6kLP9|}@=F?>Al@b$h^rkr@T!_hXKkcGXZ3SwmpT{Zgn0ylk*wmTufzov&MoHM5V zdCX4lEj&eK=uKGU3~8d84X@Ngk@^{hXW#U!w)D<6Ebl(5MOxawJ|88~-}iOo9h~Z9 zSTHlJQ<>mVBPF8V8K>y;@PdCd#rngl`?UHGG9N?Pk`YEHoo%nSw<&VEyVK6(N0F;Z z^z)5+ch|s8|L~+CbB3L7zBXxaO?_f{eDTd;$0u}MAvWwy!{+0v;+m47iO?xCkLxGf zWE35*7y5U0Vd^mT42wE*5V(Aexm!^j1W4Ktl~u=F!p_vqw}OC*GG%0K62E$kgh$df zZDGd_^~8y9;6+oUG|;><5@jSqHzTLKz_7JTMa?MGqtMNxQ@sq79i>EcyZKpAf&Lk2m%)gjH{?b(SfjP?&Vt>>xI=^Awaz;==O7|;CN>P7@-%k1Jif6@LwE84sm35oXH4O; zpR`43ouWK2qnM4^x>1hROt+PB zc;W)Z7-7k?B{-d!;Ur8$vck=CJHJI35IxXs2t*k|0~Q@-OTMQsyB4UUvt;OA*6=CZnVqXY={4*u_6AP5ndVYL zG3~X&JtgeRtqlbM8+svy!0Qthv#X|^s}kPJ8dE#CW6?a~;A@m}uu>HX0o^b3*deb<69d^gU&>tdVeVO}y|-1Q#u zyyrUiCv~IpzkK#s?k-9$mla*AL2#5u2?;u1^WVN@RMQ&MA0V8mM*-r-OBm{6hh1{n zFY<-43_IN53F}9f{-$$cZrL9M4z?jlU4(%b=h?#a0HwHfy%p{z_9o-Xx?r}s(XgLq zW5$YimiX7gdh{1^(zk#QYZMl?k7bbJ{oLC=(l1`b&&ykqBD%jr!USL^M1=p1UMwxE zODv>6FiZYAXZy(`?@RU@ta+^sIdk4QH%a{)$`YoQdviQ`hL2h6-n6n5%E* zyk|xAL-td6wrR62R{2(o3f$TNM;BU1UJ{&Y&eprwxK_HJ9ulD-HF)pb_}~MInZ2dF z@=3XUg*t@ItKr!$LF3VD_f8)6KGuG*srJq1y`F2|9X_Qg8r8bBZ`GqRR!8eJu8mrIW#MQ5!C z2c1rD)6&v5x%6;qa-YBH1wrL*;{LM5^_vW*F&sZTVrjUtc;@&HmTE;&ZEHrZ&4v^+ zzNOl!fR>ih?bavkL@S+7C*+LnvziQXaT?}CL-D#SZ!-3uksJELU)DhZe-PtBZ>EkQ zr#mTP6N)ljW3^pgk1D((@|W4~rXGpT){BPiYSO-OWb?NhMxAT#{dJ=5x%gU)Yz`f( zejte@_nqEmko9@J%!!7(8B(e{+SjDHW7yHmFVE*#c1V80r#Rk;{7zT9f~E$^mCo zdA2#0XZB^N(uBmUm~Y=VeEF5TUfpEHxyYlhU4p;TR2;d8^q?wyeM%b}Mt(}#@ml}s zk0@mIPlu5OQE3gEVKmN#I0hkqO|Vtdhx`C_6z@Y~YH|;OKv_8m%;<&Ghih|9#YDJu zqae_6&y~1|yP6qk+MFEed*{oUm~!VK@`>Q(6k()^2{Iv~kNWJ`xC6wgi5d%gyvtO( z-E57Ks~r(6o;DiJ+??b=%$&w+O>R$ZebqF$X$k`Q$mhgrp@t|BxQ7!sby4BHYH~?nDiZv=x-fO4xKXY>j_S_AG-F;J9IWx^|Y6YRD0|;eF~|s zMZr{FH@b&En@!+6*E|@b!*=Y`b8b15t$Fb%I>c?r`b4je%6RcM;SHTBw^`fD`*xkE zv*Q}#0v58bDg%oTYE+vas#AX%R5vtug~RWMT4aGhGV+g&pb>iMZy+%B3*UloATaFT z;#W3M6LmCKf{sP=WX@MUD09L62uA%;=PwOls$)T!FGsDcahlI?Y76k~CS6d}Au&4s z*yz)T=&ZMm8#BeuWUE2hlrIzlP(fTY7ZGGTulPUC9)g4G$&|3My~qpn{PJG^Jj>-f zD%R!2Cqx&Xsd|0z&Th7f@ry2|_ywEm76^;H{h=MUv>+G97{&UuL^IC!0-NHb3^!KpZUV)z`cLyvN}yf#DN zAzrd%JN##o8p#yk%qXvr_3yjDq-LM6v24B^h=K=Da{r`Y*g9%pAC>RZh(eWCCqKag zUUXRB$&Gm$N`|$#K!>rXsC-oYPW{J-+n>B02_1P|rX?qqI0P zFI~aY%U!`Mz|~!$%*;qrN1?DZF(6Oj-S5fuR$!pIEN!@|nR z%E~Fi%grl7GWdUhL6Cz%gF%CtQHg;`kdaxC@&6G9c?JeXR-jiwzJ&rtCZHSH*f}`4 zxPc0`3NSD+GBY!=FoRqTR9y>{XJ8Rz6;d>GWD^cdWLGK_F>0K+kVDyN<3Z7&iyu^s zlZu)+xx~aJB&Af<)HO7@(s#)lOnKGb1qam<1W^8U8vfTD)_Iw|8dxWF?CUyA#To)%HbC{`T*~ zi-}DY(ZMM!Z*@%)CVqJ?dXX!5io;K(`SBl75%jSkNJOw z_WukoLayxppkx*DcmE!nh`bN$mWkU;v`K0FvbJt@^iO~Nzv(CcGd%zGd;U-Pkc$Bk z_uN-RM&EUvuT^m^kXVP*TdqNi%DGFLC+E&t~*tN(8`Q2BycKhnQteB_(Byn_FT zn3@SchC;8#-(`P$ZIxczn zlt;I?;6|wKrv_VpTh_Yxisgr_(pyV=oeu8tOhc|DryVTIe`vrxcgFqgWo7T4%T4{9|JL+TEPwEi{D-Hx-wR~i)A@Ks+$Z&_Ny6;9 z^PfLFwU9hhufIZtr}XFQ+UbAo{xjU4@t@(x(-Jw+5A)_f+8gh`AztuiCV!>U5x&(j z6I+T37&X@InUnB*$2sjR3yZ)>^NlaZ?qAD4>3I5$Imad+{%!I5^z_I6tFB$&`sMz@ zUsE6Y{}kO)|LZd_N*qK&@iUpf=KR~JuBYR-JT@x+Ua^_uVM z9=fg!>h9jP$tL^T)erObJ_1IjmF>3HWpP=TTvsibbo-{ur5$oHT@tH4H$+Rmo%PfH z+p-Tb^}PR7j%F{3(h&bX^tJtF{U-k-{++t1E2CD;w&r~Q zHmS*3eQu$IT+l|vvW6pOl}{axTe6D2xV9(rO;^4D=luHmr1M;_ z_X++;UKRCvSMIaPI=i+^I+|ZC?DE@Y#guK=o-l>{Ep!zLKOZ*T)a~Y9&M6oA*s@2nM7`0)hyU-c%F;1tk=b;?kQS9Rz_@YD7Q?MdXPf(nP6BkfH6&Z{73G*>mR3{LaidbMNoo?{7Z$ckc|Xi}owP zsdqy61OS0R03G@P(5QflriqrinW2d?%FSi3hxZvb)P)24mTa2qa?5351c}h6%b23f+d-&bl4(KNs3l zfQtpP1npyl2m=gU5JoNt?FAqN01zl$>XzC+3WR|^MrIhxHaIK2LIo$l0AXZgU}D@F zHNAES{W-wI1>LddfI2g`u_H{_2XQbw;Vz4aMrl3Lq;*bI-pMy&8=QxCCm+9K)$Odiho3*@LcqnqpvcQnSEB!MH6}4B zIpt>Rt=nlixZHbr`2~gd%gPBAm5-_(S3i6Hg7~uG)$7JK61lyjv#YyjXn16F?6>iW z$*K8;#iivBE2|&Zwsb)N#!s@oDEl{ETy$LwOiYYSuq|B>h5))Taxp>o9AMs|ZVYqu z;TAp^&VtZLxLaDkO+?;g4(a6E3g;0$G$b~^CGB@*-zO~MPbvE%?5nOGfQ=DCe|d~t z02-Lnlgz1OLgO`JB=0bQ2F3tn0Av7U0Av7U0Av7U0Av7U0Av7U0Av7U0A%2A!GLc> z1K>i=X^;1oWPnR!%N`Zr-s7kK-}l<#BjbF6IXDoSzX%%EoAXg>!D)%-6zS|4`_&0T^Y)1B5A@4u0eY~HOGGmRaxC9-VuE9!mjjUCHs3EVg()b{w? zX+vrwS-fHqm)&%DQRE0Lw!Jaq*Ah`@_|lY$R`Ntn%$q*RoEYFgtz_TTf@9V1DwVdg zvPE<4U|C)>)vdieimQ=q)jJ_2#U`CGIrhq@WzkZ)qI1yx9-yv;FoJ;g!!dwP(17-m z7SqB~8t}mWPQDSuHsa!SlE&N<#cG?&Q@o7+3)85(v&|)rA3KG#Y+Q$e`ONa}Tb;Z! zej(x70ofO$iN3nI0vYUvj<%^+jzYw9uVD&!Bl;E+_Op+W*El+A*0&2bom8u=Y<(Uc z*I0L8Ei12DYUrLqz+Ix{E`y}8>qYa%j=oR1ybcJya>tg>)Qxv|t$*aGNn6JJ>J8^<*7M)uVq`|cI{MT*kqx`IF@NljkVa3>9L*C`3iJ;Tm|;tYz^CU-6} zys=-PN`zZ#=B-jJNKP?gDdJb;kS1oZ@LrMZj+(b__5A0HVok&dRma3GJA}%#&;aE{ zeLs!rmh*3vr0T~+g)j{TGyp!Hshqr-cJxQ-JkcbNo z?^Lbz%hnruV0v;M+L7cI=*j*vW)gnbC&R^AWRSUxBK6v!xx_R`E=7en-STPXSl#cm z4+%|4XaQ%?Uz0)p%M7v%d!k%TT({{%1)mPRkac}Cnp8JtgAay`F+c*vP3&l)!NQf%haywkXM{Z8(8>FvU#`h zwRGdt?8I*VdeO})xqo3DEg1zBs@GZoiGI;wy#uFGw} zgq69u#3(cG_Sv8T{O!fl(%P@H3~Tj5(vI>B!z!|LTx`ou5cv$9l*t&<#_=+qERg^^ zrum{O!CH=mP0w2;aG%kntILG^X;gmSzYxxR`K!v$YQgKDiHTkOru8ON`SZpAIc>-5 zBN6RCtQ-hOa~{}~A$pQRcX?3!@{V209_USMJZ6+ZjYi)p?vqW-tjTh9gh{&>$G-O@ zUefiFwG$?bIGnuQ9o8Vqov_Ab*KTx8hi9yqNm9a*&_p;dLQ?3rPOZ?jYe>5CBE@u|D{s!Iq(&%K#qSZ5 zS!A27A5q*ZGLG>c{ zu!=Wou;c4}{-}T@;X993(@MpgdbjPs3_U5YM{Bk{4tXS+;o;sjvsP1xl(t@3R*|7} z5hzEBT@S~I$#zkUCf16SJF<6=!YKl`pZY||d1F(&({9!luJ+;MqHvlXFT9+5Io98{ zaCpof3Q;%|r#SFV{;`t{&r2o2T&jeEQDO7`fFbdFVtTCU!_%WS#VW)8`_}f>6f}xH z52#eHr>}h#U1Up(hXYUN4EdY5=UzRJv^I-BYV*_C=5Dg-`->QS)Z0nnfdQ*mQ^Fd9 zjhUFd{;sg|=Ul@CVd;D}RLqRr^W9HQ3h0!+#6dV6IG&}nx|kH-O^!u6-tfFO6*I__ zU$~hwJ2&A&1K1ocE?v95lQU6&Vf+{1HNESUZZnGyt=1Z)n*2omrQT1(l-4C;8uEQqe ztx|@~5|ewi$wrY;lEf&B>UGM}0|jf!Y)Mylzfa!u*M5 zfo=ni^1b^v_U_vMaWQ+*da#!?;~Qd9w~&cP60y%(%jkQwBQ!t(N9Bo2-T2u25s&sV ztol?zVOUpnLB^TvTGhO2t!TeEj{c4CO_O`mlPf~)GBiM{2S7Nm(bt?#Bn@Ca(L}v8 zzR?l?rAcs5$n&Wb8jw7Fwpiv%H$roSpX+h9tMHr<5fN7wr*D5rmbOXgH@oceZMN`^oY#%iGbcno-PG{B-x z-5{@liVuy*{Qj7Jn{>j!ob%V@+|M~DL8!l^#iZrCzs=2ye_7j>J###sf zv>%QE#A(0*=P3}xU!L|ZpIN3gen^eC;J!-ldcz_v7<-ZG4+*;B5TiRGefzC(Ze0bx_Yt{8&nCq=spo!MWMn-N zu+J%&^_mrW7dO2*^05Uv^+&%0g9GSHz&3y@HfhydO5oLK*3#wCwjchd@!jl!|Bt{} pgA9NSfDC{PfDC{PfDC{PfDC{PfDC{PfDC{PfDHU?8GzBc{|S@m4xa!3 diff --git a/public/castopod-banner-amber_medium.webp b/public/castopod-banner-amber_medium.webp deleted file mode 100644 index 234ec5321256f258ddb767995b21db1e8ede1dde..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6764 zcmeH|SyWR=8h|SsOIReBghhp5KoLP@RY8nM2O5x_7)1f2Ae%ym)u1^+6a_ps0@4Vr zB4HgCfhH`1h#-r0qcn;va@f@d1leRsAi0xt&vA}@=3!>~%}(9=UvB;NpZe;4w+iZo zhJk{um5mjE!C>Ho@Bxqjm|41zE!-SkObNc;dI8`0_!1)YckCi)hllzH`4VhwtqHbH zWNSi%iNQ8q0zI5|#y^ZfFemKYg@*cpB|yO8qAqMmVMj@!P)H;SEh#A>C5x7ol|jqM z$jK`z$jM{mWn>ia3Yhg+91bVDPDvS$RaV5}u%aR`gm4ZLC5=K!W94Mzu>W&|9s`UN z>;U310=5~zF)#!M1~mh90AMH~s)+Vq4F(skQ9@Em8Z9GCs8j%O7yj=G=n_BrkA=N}Ln79J6KjuCa~a_p6>aq$VsDK}GpNV}Du z!OqUf&C4(NN8wKuoXV=|ng_K_Pnug=+nzrA`Q@vw*WEq6eQ!oa$KJks|J(S)o*%*l)@fN z$|`S^CK|fT;!cKiqVbwWBU*DJwBO18JFuAli|jMlzq#H3Sp-b@@emk50<*T->;@#M z*e#2a=W7+8W1AUuUUayq-OO4{b!@U*mUjoy%FZBpr}N z_UdgIP*2^Uv??0J{)NFY)yxs~R7wU(uV&m2ZmP|WMt?=Im9zT%Q<1UztC`&|i+`24 zdzD>PzVF8z{8HI{ZhlZ)!`R`{%qJht>PD1%8V%F7L@1w{w9Y-H)m+}9X+tayITeM7 z?wv>)tXn6)W|l0_tm)cRGD=I0-_KRcSt=P(B1LR>O)k#1U+79r`-UDyz27!$jyFb3 z<<|H0X8z^?fy*1n5XjVr0JD0fd&n&_ER^NvGSxv~*Ruo)XO#pO+W1RDW7cbgH#^t3 ziL28Mt%-$>wdF?Z`9BP_BwnsW}LwIT9U{`P-c1lVuhv!{8WmJ_MtA4bAjxF=&3?}9Gbhdk zv^+@}$l%`5FPdiZ90XQA)Vj&alSKoI?vFog?<8Y^^VbtF^Zdc!+@povnT$uNr=v}S z!T7VnKu_o=s2uG*o;lu%B;B48%YoeX#5*n3u9&BT8AOShQD!j}b%MiSORCY%KH#AzIQAhu zo}7j0TeIIi9b!1vGmh_<>-N3cZYOO50nWk9r?-2YXNMdfmOt!5HSa{nQgp`DO&mWJ zbQn|F}IwdMOfUiU?+rvrG4m5pU6?-~p$C20f4CtUln3r>~E!@AwcWDM!T zu9N%O*()iu$nz$*^+p*tKYA1xF3^t`Ka%Uty4D^jjpl7b3J$!l(Rp2%*M*N;EL(|E z%*%D2T(5+ZZMRAPoN7pW!_6BsPlmot(& z+q^v-L2n5i!fASBgs||(1sf?n%i{}%x_T3%jPl39n|EY?<>nc$?JT(?N&SBK zZPSouG%E}OSKXJ)&c}VsvZ2v6gA9uE2??|A-JKU4Sy>y8+1-kNmf+wd*wlcY%JS-4 zEj{(3g=St|zp2BI{cxU?5E85A6N6toDy9B&CIn>c8^+a0GcyoyuX|Ks_uwtxwqagi zeUEC+9MS8U_ncUMInkrIu%+?A5#DGSX~e&pk7(obA@ITZi^+MEf?p!JX|g-E$j^Bt z)%%ZZ4rbSN1;6X^iFPb>Gc5I8Ug0Tzqb#cFyL%#%!9U4=k5+qj_3 zmwS1(H+{`+-W;Cr=iHu^d=1wMN2kFO4I-DqJe?M@Ki7-PB0jo%ZkopMp>OmvXm11P zxfy(5X8)VI_H+e8p8{!M69iO)sz>iwdYA=i^~;B7B*qGtE-+3yZv0`@F~Ur(N=bUk zYhN|GH1c&oi^!?gD6Ock=q421>R;Z5Ff!KZKL+I^ujEMKGV^fsSNA{ZDoPFAy_!%Z zMI>f);i9I#%^_YP@&h_`dDQ#k6!?RFiMm*yzNcmGFd%B{7!4p z8!9_mmnq6|W!DV$5>*O0P7<*=%dK6VDU*J1?w$`VZg(w+^k3Z=TkEv|)|o60@g9gB R5IZ1tK_1P|rX?qqI0P zFI~aY%U!`Mz|~!$%*;qrN1?DZF(6Oj-S5fuR$!pIEN!@|nR z%E~Fi%grl7GWdUhL6C!?fzg4PQHg;`kdaxC@&6G9c?JeXR-jiwzJ&rtCZHSH*f}`4 zxPc0`3NSD+GBY!=FoRqTR9y>{XJ8Rz6;d>GWD^cdWLGK_F>0K+kVDyN<3Z7&iyu^s zlZu)+xx~aJB&Af<)HO7@(s#)lOnKGb1qam<1W^89sPvEZWavzt*WsV*%4BhJ?ZLtqjvtLPV1; zudWkeT(+xxt`v9ecXJ+dlYnCp8sC-oZ?l&w|0cKaKZC>X`M*Eie;9jhZqYr753N(K znbl|Q+NH2fWS)omoZ(={SaeX&GyIAQbuT}rVU2R|1{YZSQD}CitR-?|ryZ!g4`wz|90l>WND`IS|}rpxcv3D$gT^wd~B z$>HUn)l>KFt{48{_AmOi{iZv&CY_$D%)(G{-lk7unw;T9Tc>$O#aEA=`ew811w%+< zKxp^A)jzIQJ+Mt!)TO~d30^HWH~Pb>uSpj^9p1}O_D}5N^KYsXHt%X(-pXmXNpNTJ z?Rkr~>Dj4dmKRDq-L#{`!a}j0`P!blGc-Qo! E02IkvfdBvi diff --git a/public/castopod-banner-crimson_federation.jpg b/public/castopod-banner-crimson_federation.jpg deleted file mode 100644 index a016c399eb9457e524450d431a2aa2e77e89705d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14859 zcmeI1do+~$8pq#ZkQs*2jIhPH6e+pnQtr{XRi<%mldPKLGL=gq#3W)jyPAq2iU~1E zNV&@;5y}0|CQ`X=5k?rsoKfer&%XT8Id#@qd#(5PzR&OdW1ip4^L^gWZ#~a%4ZDXu z1PEK2T9^V52m~tNiDDSLXmx?%j)wyRH0ynqe#t zV9hZ8TIyT2VSN0KobWgkh|$OFQiZX90ZagHF0QqkGoYNCXB`g@6v_kRrrSlT0m%nm?%n21cgSeeF=n{vj)n;&%?uy5`+t){^P-} z1d!_>44!^&h%CT`gm5Dv>}o(703bXZscUNgIUrn|7H?cJr>sAK{brL8*sbPhKZyock1Q-TFa($5G!4{4miCV&W2;HY+G@ zQPR-V(%!jC$7B!I)Xdz%(#F=#-r?Ynj)Y^b$KBjLJWrqT^A9*17!)3HF*53>OXM5T zG1S<&oAC)Lsdv-T>Gv}3KYE;(Ur<<7TvGL{y5@Op-HZCR_Kwc3?w;Ph*TZk#z8e`G z8=sh&ony>@Tv%LUuIYjR+@EEAQT7L2NRBQpD3lw@x26li6~HlWB$P)+jaOthp6`gy zdRg_bbtvQO$+=JY<#t$qKp*vOg^9{*yxugkChe25uM>9Rzf$%^*l)V}00C|Y=jCxD z0YhMEf~=TBGt4n2E8gJ(4a@<^0LTEy0LTEy0LTEy0LTEy0LTEy0LTEy0LZ}Kf&uj2 z0^o)I#eKYJaqu{MJtofRZXOYIpq7j5g>>8)1mFk)!a(WzMAV_(~TcZraxXLQh6 zwXWbM#l2DGqhI&R@_sfD+88{54sCe5+D>}0n8eRY^kV}C?WDoSX8-Pi3ReApIN)EN z)Bwa~&(5Fp??MKPz_|1{3XaW^7kg<@LUdS_F<{3|0v2iAed0w~bFIR_pls~Ls^DCRN4iD*_U?haQ; zMbxUKGvNU7R>UCDtEs(p@F5dXLG`6hhC&~S9u~{1TuS4$Hz?K%y_rca-Km!EtaNy4 z+T>0OdCp6EvB3XH^uD}nHK=p@#=M;?N@=^Dv6f*GH z9zEHctrEqEKUE(U9dQL`TuWbEMcvBv`T2GXp;W^)VdsW3kG2t6qZpWMl5WHR>XIxo z^_WA%gaoxI)3<$KU%UChi=kjh51u}ut>awZOx$6DnWE?9Zme-_3YPAr#0_^W+;5mc zM2S|Uzc`73Fl%KbQ~eF!?ECP%s2tNKS5j#K>6N`27Ul9Rd4=ehKOluGGYv^FASLnT zCz-oi-!QEa#~noos+UlH>N0Mx&YnhO#P|DQkx57Rge?Nl4v=r2Hstm+msgaM`py2m4(XQGMBBMdBnN* zo23&iwiD{Ah7EEyzYk85V})ld9d`TZ*VQ~7s7!f>A1|0~yzf{=uCk}v3iu+h!8H!i zxPsUzU3!?rh+afYPQ#8`$EzmA$M>hFiPWI*PEs;4dRR}txx2!{W1Byi|9}&(9Nkr` znR&?J$`kz{uc59pm5rx`A*}`r8^sW-5q7~|$ysR_+C6%$Q& z<&<<5=5?Kxd-8tWm3>?uD-wHDr$a|83sFq33FInyzQpDQcJM45zhJ`SJspS~n96;=J6%`*XL$2|rM*Nh16C`^kBB5=7dtmzV5&9~vq- zpjG+pVZ6c*WseX-OY_-H$t8J_%z>dK%~*xk*Q0oEIoPYE+VtAmOrG7JP4hcvUQiJ0 ztMk*f!dberN1Q(plHNu14iYD9r8SlHiOCgSB9Jx7nquq1fl$=w6<6b{$(@m~hjp4X znF%)FQM#fNbla<{M}EK5h$&P)`dsn!d392Anm-j?mS^w%;J}`T)n!OtU}ekXQ`^VF zD1jS65XVi&0{!j>J6;WGR#{BLoD3Q;vnv#51LX-t6YVov_cRkvO^sU-j#rUNc1pk0 zj6d{#fM#cmK&5Wz`ThQ^2P@9^skndIpV=M~518AN(F4UxEwl7g#89V>;(ANVhJ}qn zE_pLNcM^J6k5JU*7OpX+XR?$&Y}FlSEMH9ObGu+SHs(#tZ7<()*eKacnNVE0Jm#svk?n&8~Qgmd-zFD%@O6ak&%8Ig+%F=AnN>^sQB*`Xch3 zMzMj5nXa7X&Oth%l?}k{U#_0ZHq=awhfi=?zL+V+Z0S|ethkk>L!m^oFQHsLCjI9~ z$Ru*hMFXp($w5Y&5#N}gWF3*unHBv+0XOJPAGtCHL*|)w_4JU1?r|gZ zy)RYuU)2?S{?=)HeJqu|2q5B&t_7smZx*t&Tr+MCIQgC zIR}t5A?95+aK>i*8f`$K#b)fQ57wWWF{*Ed3+aJN8sGq)$G`bJzLt8f&a6s&?p1w3 zrzWCOjIN5YSxXCV8ajT&aN*WmY6EFnd(=qcO!pCqSbZM1KniPQWgMO>w#|G&10r{* zt~#+g7>3KUV9nuMjYL9HaMK9}tqKc`W>~=D<0Zp#_vJmbLCuXQh(e$I>Qd@^5z@Ji zGY6nF_vqyj%I}ut61@*m3DG^BIuOk0P7O#V_V}k?8=I3}Zd_{NP5eVhLQ2nz2^7!f z8zx(0HQG*hCw!M|d^L<9ePF&p20#Wt20#Wt20#Wt20#Wt20#Wt20#Wt20#Wt2L6@| IaI<^=0TdoX0{{R3 diff --git a/public/castopod-banner-crimson_medium.webp b/public/castopod-banner-crimson_medium.webp deleted file mode 100644 index 4858928320164ed12fc6146d0043008e6d98b3d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6759 zcmeH{c~nzZ9>;G;LV&OZ6GWvXf?_~W*^w$?3kWD{lqRB%MMOYQ5Cjy6D2qfXA_OWf zVNs9$hH)BFDpX85yPO9{sDy3Mq9QKh>@oPLjwrTE=~j& z53&>Cw7IdK0U<2%@bSQi7{X4%_H7DKAFu~-8JXo)x$K~WK{ zfJQ4RtEnm}W0cWoRdrR&Dl86%Q&d^4p^nv1!{V^Z4}rlYdk{!@BvKx$gjT}-=>dHY zFmf;(`1f#_Hju%<;20S69N+C7&V9=?E$kS2LF=s9$CMBm_Ol4fn%wlHe ze0wdops?uno#K+xvVT-n*W7>b@X_P?hUbk<&779jmtEbjc&~fj^bWos`Y_BFjEs&6 zr+%9LJTp5tzp%^&1Mq)g{Yv&bE{udr27!PhP|I8}nJ7u%7zA>?k*u1nC+cw6DsAHg zIjmhq{=H}NIwoF|xUa*x3hEn72R90r(S9cTV_@h1FS1|3{>{}36yY$*$Ae=43Cxc% zh?Oi-r5%HqCnJsY45SW79gsR8b>J`Iz}2@~&39{E$n;4h7Q#@&HfyT)v9ekHhg#DO zNsrk~aMY6)PoqcD^>3`Mig$KdyMVc-CjCu+9BbrDS{7 z|J<%|jcbmISq@BIY(oxZwBLrd&y?4G{-mXcje(z<-P1=ewX3PvF!yX{Y685@CHh6uSuC%T$!Ng z)8j(pvO|&XO%<WijrtJb#dC3my5$wA8xM5$ zscgH@c|RKeda{z5O*wC#(W6alGkOO*NT1B_wk}{b*(Ls+z0gj#2w{BnK33k{Li^Vtk&7hjH|Z$FwArkM zwNn>kS6BGj^L1Ie12c@$rPLRZBqh`FHgvy@ul)uE9Hsnn>>CKE2waS#y8AFG4NaL$ zi?W}-Tp)fY!c#BM7y*gK-`+lU6JMfTy(3b+D>y%&958OxZuLc3hviYl@wH`<8(s-* zEUPm|Ja{#=A+nqw`i;;x^eYXTJADj8gl;_7b5+z9tiw>dqDFd2iCA}ZHmWPI{_Un~ zZl8NEkSy>oA2~}(Y*5MVjlCYm$|}cmGt8dub_6d+o#KvLkE{q`>! z2Y0gBUvz{NJmHfVFOx+4TS-s%*`cP2AyEJN!~#lXaS;N%itXGFagOXMF>%^Tu=UCM zT952mx4N7?4|A@WE42!`83IWw3VtAhr-(!l825w#`T%=GlQb~_0a|7j^<@3~z}m)m zM^SO2#z13C>7lk#S4?}*P>|l|#t5c>HCfXqPG}H|A@I2b0!eoVrj_xtvk<7T%kpqX zriISJyCiMg&wHg0U~d|%j>o--Hy2I&hBNb}=`GpC&@6YI~a#Gg%~)Qz#y z_Lt@Kdkeqo*tNp_!FrOxe+%w6f6+O8E*T3vS59Dt)dhOnN21FI6V@Ow)QBVBOvB1^ zO{i4sJC|ABHmh}Orv`$~g>`pX|1i*xqcK3$3|~A_`0<5^ySF3{O$t5niSZv(#SKw> z%Y7Oh_LPx4C0}lCYs+WTBMZ5p+W_TF3B9e>(rnulq?!4a0f+_CNY6m(fYbr015yY6 JIu1Z@{t3TtO2z;H diff --git a/public/castopod-banner-crimson_small.webp b/public/castopod-banner-crimson_small.webp deleted file mode 100644 index 1291f73b30bf3ca227cb8665a89064dee801c99f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1675 zcmex=_1P|rX?qqI0P zFI~aY%U!`Mz|~!$%*;qrN1?DZF(6Oj-S5fuR$!pIEN!@|nR z%E~Fi%grl7GWdUhL6C!?fzg4PQHg;`kdaxC@&6G9c?JeXR-jiwzJ&rtCZHSH*f}`4 zxPc0`3NSD+GBY!=FoRqTR9y>{XJ8Rz6;d>GWD^cdWLGK_F>0K+kVDyN<3Z7&iyu^s zlZu)+xx~aJB&Af<)HO7@(s#)lOnKGb1qam<1W^8GgR%(pW#=e!Wwd#sa2M3<-lZH#KyQ^gLP} zx>|1ij{vq!FXxqH=pMdv$KcLIXUT-ccl!R__>)<`p_Km@d(3}^`)&UjxZZDhz5K)W z<~8XXHvf*jdYkD+P^H4W!t)GCyUv;iiQg(+d#3w|$t(M^yEDG66$!TKnsM{;?!aAp z`$hj9ykh@Cw)j6oo%A0~VUO8o4ZY^4&CUz5oH%9whR5r#?Oh*q#dX^J@?xo|^7?%(`d_3A>Mok0c;>^+}PJeu9)=r3*g>TzndTyWI_BLM^7 zu+`yrgFmj?I`MU@NT35NB{*v1tN#qGp{vbQ*b47FYOub~Rq^{b--*b(PM;68%(%&M zXXo4VfzjgjLSI(z=n0Ovw42PjwO>D1OG15f8VuKZHvY7=Eau9TUWlk zc3)`AYLAwH8+Y6qCO2+h`Ks!geb=7)zuS{?-X>Hi)>QT?O3$b&ytHHfmZN_^25GYg zIG$KMb3-3rkLtN;OQYYd{BbpEbB$w)v`wA^JX$%=AOBC?%e(ksNpSIVxGUWLYBFcMO$w%y&N@ks&sn9BWS7GI2=&w#EW{RkomDXV#TE|uO5BZ-F6_Z^pC%;B* zy}E{`mcgdYTMUhi%`NbjRy(b22z&Pt9ru6ZL^|wt#NES_91s{39CDlz8h-X%L}XNS zOj7cNi7LimQ17DTPn6Ou8t z7j`|iO8KkPB51S3%+fkh6@7v2uN^af#FKU> zqX@X$JK?&XLV${M!j)$8*kKijAMhR!AlY)KxgNZSmpMc1CqhC0)sBeo4Tg$313(il znw$;L_ITJngAaU$f?t2(cG4{)iQI$tf`H-;2vp-P+U`K1_Z3JQ_YF!-2>zp1e`iQZa1o7AeA`iQ!@z z^izMd0+Q`54+}bzBrh+aqAERXT~Q^FjlLFOy$hv$BS`z0ufJKWisU`w=wUCH;eH5& zETV?C=Z^@szv}}9g_4EP23{X;pU&^29T;8o?T{1NZ@UJ2jEr;k_cN#7^@(v^z}Vx5V-TT(xD9Aacc;iOq(HVu$xC# zZ_61WK%hkwH>ov8Cvi9+fFgt%Q&dt+^VBYli$>`=f zPO-5rt0>Em*c$tyBQxBk^>LoBT+D0z=!B3N2&`p0YCDc>qD*tVQdGJ~)eePn?rTXZ zQ~8){%Kbr41j;s*%uGPwN3Pew<)Ue7`)7Eh;nau+fx&kthNU>+^Lr~XOT+`rljByF z2W&>Kr-qnHji<-#F&Og8MMZ_1@tx5&;#5d2xh z_oO((#0!0;(`-jU?7&F0@e~D6BRm=)5Lo@l`k?IrsdKl?b&A@9lWUS*nqflLUN9*g z{kD0<>*606q#AmRc7iD$y$A8ZFjh_-LWwzzewKrr+?-5O+X9DRU3D1Mt-8}Opq9=q zy+=24aIH~r4$XT+Iq-I5b}H39F*||HVu#v$QcPm&_p5rm2ssD=7pGx%`AznDMt+Bh zi*3AP+3~fY$DUI_2sGJ4W{29vmCQPa>K1e~7rG6cr5Lmt$lUVTTq{#(B9c3N;vuoV z*Xal{+TJC;nN5@oow#g3*r2WA#P3##bC+2;yj0AU_~nyn{8OnNKKIAh-Lg-Nx4O*D zL~`pE@||Kjc_yw9@S|y6IwdyE6>WIOw4k-9DJ49hoD115(r&?$@?Z>}eIv!<=QyQ7 z=jy1JTUHs{OzHTn{+c`?Co@3Al5*8m=3}OxeODE=`-rr9n&s2E`6za$nsNH0Dpy4k zH~B<4t!wc4@Y||6!iG%Bmwj=jGV*A|dDBOs*%r(MlltAQ>r(Y^?(*06Eu1y4(Lvig zAHEP#F3c)z;~m@H)6Hl){urnAqjPU`#rMe}ve}13)3*8S8)lf9P_^Vv`sZHpDN=A- zs}LE>m9lx>J*C>Gf4#QGb}L0a;gyO51EY9_rkHo+vYyah@9}=&@R&DaL0)6%(aMS{ zz30hOrA967EX59{CsR9Te}i|VU)-?_LVL#J3z>}yAp#Eq(v739>^jHLDqHA{+SJ;% z5qtg@*_gdDmOcAw*QD4cSw~G)>!{ZnM#!tFaH8xcbL`xXdElsmHwJG-S<;MWc4qA) ziLTMY_G!f;YTi5ES+mg8Uh%vkE zzVJZtL)}vYGGkzmU3IZLZ&kC)JnPC7npRKY&!o4v zg&n$Fn%A`XXmWtk#tfiJG*8FgWVfX1e?#118q#Sz9(qIT`6C*pq z-nVu^;AS7q#w3nkpI>bC;GmkLV_60D-o%Ei91gv72Dhr0Ot!yjF3JoXKhLB3uTcH7SztLNaCAOTM1Grqe;=I{M_m~o z6UkqSjypG0ibY%eRDwqX*#5Q;5P8>K3d!pd`e>rKrpgnJI(FYEY#%P;N`k-&$1SXA z+F%w0dM)ECY$0Hx#A6#Eo)X*=U8Ar0oH|m|yL2{A|3<@B-RbqG)Tx#s{ubvNXW+(0_bvJck+IW?7r)RWCHYgo-u#Jg zC(Dz`e>c&D>tH{@48RP)48RP)48RP)48RP)48RP)48RP)48RP)4E+BvfP=dK0XGl& Ao&W#< diff --git a/public/castopod-banner-jacaranda_medium.webp b/public/castopod-banner-jacaranda_medium.webp deleted file mode 100644 index ffca50ee8a1371bbddd3d89799c5f2c568c7bd24..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6716 zcmeI0c~nzZ9>;Gs2!t(=uqh?7NDvVSTZ=-V7+G9cWQ`Tsw+NI?kVOQlwP7la2uKbE zBq|IL5g}}~g6!^s>?n#j5Eem(eao9L_H=sY%$(ECKXVSvefRs%d%yR4zt4N$d+$3J z>WAI}DceIfhX4!)1D^Z?Ks>PD(vf1}Wanr?2=LVo{@O2qa7J&RE`b;w859~ou(7ow z*xFO92xp8)ntKW1(O##6qRtXb318@nLPNk3AmH$=&TmM5N1;(DBoZYmEG&c;6BQG~ zh+;6}64FxQ5?BcgMoLx+D}%%1@nVv4^0GL2X&fH6l>~<1--ASnpim+>af~?b4>zb0 zV9_vhL?Z&G0^nE}0tlu5RvBA74NJfWV;O$f)QuF|lXkQop%y@!Lz^(XV7&&CJTa zmcuM$-MD$HsQ9lXcPpzn)it$s^-aw!t!?cc4mL{#c{lq0Z)4-!iOIRY z&o3-4Ew8MuZE?W>;uF@dWdFv6<#WN2NCZ-Niwg#i;R}I9qIT&CNn1DwdxguWkdo23 zFB#V>9*C&wJATA_M|6tHsu_%^&uyXolkE3_rTkB1zk>aXYY>PbVEm7VzydN@@t_mS zxv6EuLOKvg@D2nX5O_e~0f7hp6douwk}aG}yfFeEvTt%O$idaxYYQYIao+WIm8}ps zkilEUCFbd@zRzFoD3A#Iznyor4)OA|_)c#DpH@u8xZk_Y;NbbER^2tV<^ehck%Ed;fAsWcjnqYZ=yz zd%@G#xjKutqrLSdtV^zQA@F^`;-w`_UKm}^g8>0_bq)l~nt5yFQLEnuDZ8b6){U*O@Ds`((}MEn zr^&M{ovo>%pg;T0Qfxro!7cLwS z8f$g*#HL+Bs$P@v5Ak_DT!|@Z{W{SSk_{IXVFvSi`VInekCG&4@huKEMrlzD_*cbm zqg7SOw`kAUvrd)jIr=M;=rJw)Plx5n3Aq6u*-!PIQeA513qo^Ac_oQc$!X1TxfQb~ ztcG}n`kOF<7XC8oj$U_LKNqt7EtKOM<&EDpl9Kv^&G4xW<0ZBsEvjxq^A7k&BD=;cAIWDh=Ihvg)hOtFUt4y&D3lK0h}^{}Cu`2Q4hBiC}bkEzc&m%5U!@t)A#=|>7{-_Ok_ z&kt&nr|*+*?&ryj@@EAf9xrLJG^5{XT1zR>_hf8R^w6t;*QQs?AAeAAA=|b?;F}c) zJii8khWyQ7@`xFEejEY}@>-8=rrUJtagR66Ew9@n<73pP8My^s7miQS`)^x*%AK?- z!>`wBL!+IS(7w3=fhqe5=Pa(F$r_da=&e*^3(5XIhHt>v#@w;lDRp?Zs`h1uL^2{z~Yoi{ew?$o|FY1}}>b{i9z zxR8$O+?f$K&wSfgVr8T<^dkO=<3-i$D(6iSIvG=6wJq`HHn_vXMe_yXX+IzDxK>C^ zh*s-X9_1P|rX?qqI0P zFI~aY%U!`Mz|~!$%*;qrN1?DZF(6Oj-S5fuR$!pIEN!@|nR z%E~Fi%grl7GWdUhL6C!?fzg4PQHg;`kdaxC@&6G9c?JeXR-jiwzJ&rtCZHSH*f}`4 zxPc0`3NSD+GBY!=FoRqTR9y>{XJ8Rz6;d>GWD^cdWLGK_F>0K+kVDyN<3Z7&iyu^s zlZu)+xx~aJB&Af<)HO7@(s#)lOnKGb1qam<1W^8GgidX{>+IyhdYD7sDuqgn_oZTW{o36($FX zv*}^;Ig)V1zDcb8t$naGo#ouVU@!I)cl(zXd2Q}H?HKdf{!R7%pPy#``z!xp zNvz?Y!!i>)QjUeH260#OXLU&e6NiyW8eQ}&8gQCfvzG9lwhcjucc;YtYJR2 zq`0yFR=&sxNtk=+Slae$^2dLLrDkUPa33)~!LGD9JF!(H(1Ddg%$5O4=VwI% M7+r@xX8(T^0D_Mv*skVF^1V2vi9ON`Rs)qJm&55JI9DmS_MMWD`NeLRbXEP;j9si-3sY zlT{!fgr!i*CSnm#i^vi{#ImmfBC9}1UeMR-d-c52zWV;?Ide0=GdVN&-nrl3?{j~1 z?{K@geSiefj9>;pAP~Tu_XD^bV2_D4ZXcOsZJ_ApqUrIqtDB;~_BJg=j33qA%T19$ z#48dlad<`lojPh?Dth}ldb;}tDjF&3YazHV026=@3SB>V1;#tzf^awt21f`8@C%9{ zL_~xU!os3rQWBzKl48Qb5;78!(nu5vB_h5-Rt706g+w9OJAv@=+Q8sKaJUdsR9F=G zrwjK!ASno$hxhP7HUm&e2%jW`TL+*400QSpU03_B0)g_z$S)u$gb?OcD3t)95I#OA zjBkC^yxJkW`v6Q5E~TWsk6+r#QDCz-QsQ0!>xnmRCZ%WG$;`@Tv?zoz~IpE z$mrPk#GBc<`Gv)$x63Q*x*!1Gds)9J`wv}`JY7&2j1MNTt_uPU;2EDJ46dZjFSXA~ zz|mWJv(7hyNaNVFqFNzkUF#W?lTQmmMrB9;mN)Ct-YNTI!ovP1WxomgpsO1Y;e+sk z$0rG3fn_2cQ_$L6`+$x~g@Ok90Av7U0Av7U0Av7U0Av7U0Av7U0Av7U0Av7U;BUcz zkCG2GjFf37?|adQ9Bc_Es`oBZxj-Pz9{YXD>XVgce~T-DXH+6wqJCm|AOK7{9kkEj zgSO%byx`dZFG9}vRT?8^t%aR44_M*s3)`4_`gMojBzlb&$5^{VDP4DQzJs+z_0Z;= zpOC#h_c?dat%ZKV*uvw4vm+{%;=Lxd195S|GJS*P_H<0H;->?Y&rCemB81DU-zg^| zaTTAh)ICg8^A0B**k_k`HR7bAuOYoHS3Ys2ZiUAvCOs4Z+F$m8ULO~*La$~l+k6ya zidhotUVIuJ9zHVdSV3t}59R`)OdtAnCfQ}MaNyyMID%>%Dd=DoV%!%iSUr)qbSeGf zEMxac^fSsa_v|CK7+Xd2H$7rB>5jA}W!qLCRT`k7iz!QwGA4P6r&$R5I{tV8PNA*QC~P_q-!;kwlBH<9TVslvxqzVx z7r18;RE-QKDJ}|^52Kw^IOhml;C#~F4?SB=8HRUl8@(11O3~km&}U)+f%a)rEp7wF3n4cs8{6Hw9A69fTs0_U%5HtSL8a7Z~RC(%EeB3Uubms z;H!>`m-`=d*oPI_KCEiE6B{XB=c`xekwjjxsHMC1t#zXPu9VteJL!rcCNp|iY2n9P z#d2Uydm^50-Pha6rj8%YcPL_wwoNfl#5hL#b=O|@uGhgDq>&R!Hd_#z8HYsouQ`RN zuUWR&bf~s6!ZMLoU%^59%RZ2w`89(zV%zbYF%EeJ&`6z0j;x3pw9uI@yYiM~=JlX_ zWu7K{MEICgZ?p@)@r9Z-&%;!Iv-XT8O^YB5bNj<2c2@u7nVtrDZ)LSw=ka;wxolPE zVjoM2o4r?`l&7v4dbP6NBWPBBjIB8!bjB;A)ESYUKEhvn0wQ4zvljH7Ud2JW{xs=e*4(>yADvMu+pL`gzSHb!uU@ zN$2r~xD`Q`IdyZWcB6j5A%?D331>J$Nt71PV(=mAmGYn5lY_c7H zOT&8gnJ<&%8iwsrKfk?YUcSr9W9L^lGwO$rSNSS;wxN)F^(C1v?&9qz;e`uWlh%^q ziVB_4;WOsrUQFw!-F8E}O|2VHGPh_7*{2dE`N`*J29w1!u2r+nR@r=aWWPVXC${|C zMyyR&FvTwG`L^56qQx689(8M9!rtDRSK8y9sN3emq8`_eN;z<;LA^MVV^(2LANXa@ zjU+Wo!WVuv&sq;Y9VSq58Bb1>B#%Zo#yR&oNwXP07XMhv1&+aD-73@M*st0Lqm&|5 zJR~=S=4!z;7_r1ck?b(R#{7`%*yc&Yr_}pJ2IFn|jgik%(ZeLth>QhT^-6y{1P^DeC6^RX+Wtw%7b@&1kwuhaEZ!E@$L4@5U;5Zh!VQ zHo=m~xT~RX{^d{?n9~10udq+0boGvukZrdDHr3%rY}$%8)#jF1%lo%4h;Bbz#>%g| zTBiJ3X(IcV0!sXgqfPFZ>vHmH0%kV!F;6ztTSC|yO5(KM&Sq-}Sj_KHw!=nDjWKP{ z&2~kf$wWtFa)FDpot%&?_Cvf%rF^h?fB{`2@xw**OtL+1?NZWvBO~ruc(+M;yN$da zttxd5M|JpcizEHSVR`Y^9MWfh;d&P*w6u03Cx*E|zafv+6!#i!JX`g8&D_+k5zJ8H ziN&kaen`r8E+8~qz+Sajreihdvxk6>6m($*oG-;#VXMZO9yq#67sVq5(ow|pu zk0$twpB5WEv~)W54dvUzrokF!J>pW0)qBHNI?S>MPQSDu>P9#jIe!chz^+y5g-Ess21(zY8hv82#`{~`#@3*k(moqsw zqwT~mPeXUAZK^wER{^n8IL!q@ zY7FGf9K-5jj88!+l?l-Sl9OsR9*L_X>FJ?cR>?KJJ3?|DUMJD%K;jfHYUf)Pb7=QG z)G<(p(*0|5`0h;3GJ}ySbb+;fsR{jYJ3X(*+Tugaj~wAVFtHWQ-X+?j0&iLFq6e&L}ems zP(({P2g4Nsf#J}|gi~-8gMfg_smS3BH<2rE1J2I6TQya)Tl>crn|}SRU)Ag1`&EBl zf4i%pE~p>iTxl*e0E59mkn{nN1lTw*ob0?k7}n&leNi`bfS}^x0x9jlOv;o4>FI%lD{BtH^D$JfCE6l;j3NRkkXDqqfkgB3L`HshgQTW zDq=BMtdg<{PDvTBjK$(M;_#{jH8nNG4eG>=1fmK-jj&n-hLC=PL@A(93Irvr65-!& z&`$u5hV4ZBgn(%QI39+;!=QRV0sw}RqOQ{Z+F)?$9OdNE3K*<3p&SR`Fa!dQM6AwQ zn$4Du10)`$vc=R+PSq<|UMrGdcJgv2THC%vsKyXY>X`36a!LWSQJtu}x zDMf9q!rDYi23#iDKahDq<^h=pWFGi`@BqiVvv^@TX!esEB3xrOOno{-k>i!vH60=u zlz7LQLLf5U5HvLq`4{zUf7$wmo=g(2=6w5K%Ly1pKNLDG7g&#N(E9U+YMK*pa3XlZ z){#&Gn~9pXq7J3C@D#OTt1H?0iX<~T%mlsfaMT1jC7Vv(bV!sxjSc6!Xc z?K}w78r_a>Er!5@3m#>(v|9Sjy&S*nk6)7}6Gzi$-q}uM)64AM>BKft8sco1wW`CG zmo_Yoh#-Kza~%RZ>LiO6-#BWn7T^lBCHSw*CG4{+v&^CachiI&trag#vwO(%Dppu4 z?aE63*Vls_I%yhkK5LV4if7@dam=>AM(Cbzks9Kzh@XBVs`{@ByZ@s;uh1DosT3LTw`{Kppa(jseYvYWtDQ^Z zsF_yLe8c1k&h*nMm0mF>q)&%FJ0MVw2$*?#lp3kv})5yKsupXD`Ycg>C& zUGUI+(3d81fk5cgib3CGI%#2sB%Xl)fAxW}D$e&T6To44rO z5eb2h%F~zinhtt>-e+;d1zmvN)}))_scOaEMsJ~e*T<`97t(>j~etR*P4xplBq z2VcfDarEN4^kZf&;#f63J*S;(#;(2D$^L>_eOnMy@QJ%#7X;qkh^SeKd%_P^{%ZGQ z25-mrLHPmK{3Qu@KAa^1sf66DL_k?bs^GE3i$05)AHwgV8GgJso}vsXStl^-NcyFz z4qG3KorQc8VS*j<8(%6I5`aVdIh~(*&ph946jPas(;Vvo^n|9VR-RbXTv-R7b y%8AH|Tu}I;yS`1SChB-A->=zXU0qk!)74AHvc9g;vh|d$r_2NYJ06gSy8i~n?;`a8 diff --git a/public/castopod-banner-lake_small.webp b/public/castopod-banner-lake_small.webp deleted file mode 100644 index b3e5c539456d6d178f69bea99c27b3b9a6c8ed3a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1630 zcmex=_1P|rX?qqI0P zFI~aY%U!`Mz|~!$%*;qrN1?DZF(6Oj-S5fuR$!pIEN!@|nR z%E~Fi%grl7GWdUhL6C!?fzg4PQHg;`kdaxC@&6G9c?JeXR-jiwzJ&rtCZHSH*f}`4 zxPc0`3NSD+GBY!=FoRqTR9y>{XJ8Rz6;d>GWD^cdWLGK_F>0K+kVDyN<3Z7&iyu^s zlZu)+xx~aJB&Af<)HO7@(s#)lOnKGb1qam<1W^8Gd?oX{^6={@|f5jRj1j7!n3+U!LN&R90aO z)p|Djn*X5&(`m=gx(c+-OEOCCHP4lgkBWaYd;iZ*^Z)&o|FCY;xv~p;EVFf&Zoj3z z!!n1d*5Bd_v*?A$IPTRJYNelM1=zX0snr%Y>zi@Of913Ko96YOpW6TZW&hA)SINA@ zK9^4^$3j(umhNpAeYt&l)2(xlQsPY)u|J8A_d2k9M{fDy?M1QCwezZryq*YNNbmU< zqPdN4Qmnt#l@M)3W|rrsLF-<{CjZHrnp4aw66in?j=5ZQ@<*uE&SeuMk5wuJuqQA0 zvH7>&jc9*iZ=v}Ur+l(q?UgTeBgQSrJ94gna{tG5s&|y8B{x`KiO*^O{rHpV?53(& zt2TKZFX!*g(S6J*yXM5=IXv~f>Dl*m|6Sf{cI~4{;P(6JHuJNd*4^a)e*8&RNWm*f zKgajJj_L)aDObCyrbql|kXjmUs>H2uUfI-d%?XV~T?~|BV^@&?Mz@Sb4O|*SAKU-G F2>{6DJ7@p^ diff --git a/public/castopod-banner-onyx_federation.jpg b/public/castopod-banner-onyx_federation.jpg deleted file mode 100644 index 73e4423a2518e41bd71912fd63cf5d8f86c06efa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14734 zcmeI0dpy)xAIHz!41*YEgeS(eL`pUl#UxF_ZbNceDI2wvRWa_;$SuaYcA?9Ywu47JpB~(6?C<5P$w_~C?s;>=3i+3jS<9P&}a+}ixm(Q!HI|n z;y;7N2w^Zn1W{p8!hd~1 zw*g)dF@br4LMQ00P68x}f&=3xVXXQ2;9_gcIg>C=>@s1PX;jqZU@p z?;Xf*2WUJ-LUFaBfTYDlYFiU7{%2B5{4Goz3!4q z+Q$V6o8!~+tAv!l*)d9V^k~9KsjTT%9b1t0o3hUn7W_XcdoS$Yx;lUe3c=qz6dsTP zr$ogxdA;{Hy065C$BZb~%hj+0z?sD;-AD zd3e{@*`dWlJOU!>Z$6RL`~!(sb!G)83?Ii05H|P@@J9L4+^WMkG{0&7N# zoJFd?<|RzNw!7|dzsgOqE~7Z#R9uS%1rR=J*5Qf14%=K{SQ?LHh zW_w0m?HsfdIby53jwae%p=;U2!O%R-k=LbE@>OG1&Vfc`*>3C|G5;w2ZkM!;IZki1 zCZ~w(jsrzSIH_moD7o8xT&f)yM;y@YGg6eVcbQ)Tf$=-k`RDBHrcLq|Q@Ris2u+!; zN`Fm*K%)@(O~{@+3h*;-8{o$-33``6YBzdnz!7KHI&FJNn5PE^n0BV&L0OekPq~mv&04s!zTqXd|O&MY&C;Eo+IZ zQk?`qZc7~-OfF;}JVwlKv0&6__Up^9j&1PNxqGne+c`=V!|OShEhimdE--RcM3xul zW#-Gtj)+-m*v0112JNrzxz@Vu(Qxh$v3p~@)T_eXYqZIF>6PC5=)u;g%j#Ye$@- z*TNmHqdUi~2q zsmBy%MJrPio<}!MTTs3A$*j>-;e>7RD+jzNlTOFCcwD?+DrfJXRhy?#ek++rTk%$A z$+Z5h6PKhCuiG{hR4H%mEt{U3dx*`p(sVM5wJGpj0-jnxpseMo*iPAsY1g%Hqli!o2^cy5$d0goz5(7eHwK8G!X*wDb3e1L9S~xd2CW_KBcwH4vwCG z*ru=Z_V~-_>3=M^=R2v|m|#^>T(w`AkAYwddTNymYap~w%!ELH_s~bT(i(h3GYaex@m_c3~+|85=ZV7m$Mz5*=z8$omKDqD_Q-PJv(wD>ZFg< zB}buiTI;lAV@TikfkMiV>{$0AE*J_)#>1kiE zF?Q~~8PTHIAY`!qNyY(wZ3Bi~a)0oB+qIJt#~q}$cDaHxS*P(YPn!7qtm`%)js z)qI$?=rJxP<8e#KpEY5TyZ+=Z+Q7NgyYz9lngCH<#8{Mztt6E{Bq0%WnBFH?n6Iu}=tk52sF@>ov|Iq9>Z-?F{}m zf_L4G|6`!mUqiC%JcrT4rDLZK4Yb(kY`1Y~)6Tb+6I{<<|Eo`|KQnjna4~88nZx|+ zrm4=@**B}WQ!c0*H_OB8wcnOlwE2(??cKPY4!bu#sPPvw95lav{X+f`y`w?aUW&maYW&maYW&maYW&maYW&maYW&maYX5jD4fEd*NPgTJuZU6uP diff --git a/public/castopod-banner-onyx_medium.webp b/public/castopod-banner-onyx_medium.webp deleted file mode 100644 index 189f77f596862221062fe22a305577fe11bfa6a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6742 zcmeH~c~nzZ9>?#?Lf9dYAPABaP$Ekq3W6I;X-L7bEENP%*;F=_eFwv$LSume1h)zp z%m~OLRt!)}1VjW>3bG4C76pozTC<(s=RsfAct#+hgkd76{Vlf!3Bn~GgE-fi7 zEhQ->B_pdKFC&YWm6DQIlE*6&h(w~a+y-SOg0cdENLYOdghs|-uo76T1VKhhhVWlE z_#wcHLl)?VXh;K~@DLgg!H)n500@hquG0RaK`3O7VmNULNh!pkN*EUqAoQu<(e;sOXsFv**sIq<+oJ%D$MB zd+G9(tE|GC?7!S9DlWPE-My;&oa&m|hQ>!tkDH&gw06Ge>h9_7>mL{y9UFiBW@2*c zr|H6ewxKJ1j8iQNqf>4o&q45~(CsZ*7O9z~1u%gDc zL~+7rnKvryB{a7?@`+v{9g<2~MkAYNR?+@W_Md?z{UNen!9H>g0BJOYBoB=T=0M0{ zF?AkNSWK{P>ua#Cfprb6YhYai{}&p#Jz$+@ELHYR@W!-f8Ly8x`t?*6IdL-3-IfKi z>dbd_O@T1jqXC0DEXj)lgFHNghe|L#q+7d83wA|m^kY`|FA$-=?_F0nO$}z+;(eD zo-8=1Upm!jS37WpTHQLqsRH&aCIze^Lx(nSXJ*Wo3m1EB4)e}2#zqaR;YZxJ4o5R!AYOh624;<-CG#=*zaO49vRD5S$>-%e;Yia1ER_@2u6Ch;tI%KTtWyeq)xgvoO)geZS)rh}j5P<*sV-#$F7?Z=EAtD=o*6hLJ97jc+UY88 zCHXP0y!k!1^kRED=3sEo!aURXhgY|CukE{5Z*)o_q2Rpon}l7hl#<#Awh~({OzQj!ibSxZRcQT!boT7uU1hRBoM=O{6=UCEf9u8I&`0)gLx( zS+4&sqv6U}?7j=dCm&JoT@c8WY;PwfYM-w%EgbI2;PfRi$e|YMnQ9mG0yGSddH$Im ze3CTs`MJlGHfh5zHC%8?y<|zcIxp((y z#fMxNSgq)?$|IZHr}afCOZH+i1P2T38Zy;9A`CLVhQSc&d9Cdmp)L$aiZG}(zaDlG zDlGUZ#iq;AJ6mP(u$f$$ z6VC+DwEJgPwlYS{0v83Oc>xT{EH<6<9*T+$e>vnjWOH2a+q#Y%@7Yqug55PyT=R+$ z2Gb5OkPtB1FT;SFzv2&iIs7S;;KAXcmRKzxin8Z{rP2EVNZB~M$enn~;I)gYNc?;g z;bO+}A`E&8WE+@cF!)WtFNV!RZk=K!zgrYtgnHX_ELCkZF*FrDJJbW-qm31Fb*#?v zIJT-i$?nkU;)-Ga!TnqMki+F_5O*c!c>$`1M`V<8mPk`ah#yNuf}!sk`_UWZR|w|5&-CoP`^ z8QtiQp^~gDHqFtC3N?GG4X7}9z`L&Q4TEUzE-)2tAit76-bC=)&yC9Fb(Sz1oD76~ zyQe)WJB{qcCWM_a||6a~g9G;sQ#ULD8|IKUOun{Rgs`>nUzi#V&f zwoK{D)VBB@+z+7yboxbzHy*>>wwD%k^q1Isnni*$VbHJ_1P|rX?qqI0P zFI~aY%U!`Mz|~!$%*;qrN1?DZF(6Oj-S5fuR$!pIEN!@|nR z%E~Fi%grl7GWdUhL6C!?fzg4PQHg;`kdaxC@&6G9c?JeXR-jiwzJ&rtCZHSH*f}`4 zxPc0`3NSD+GBY!=FoRqTR9y>{XJ8Rz6;d>GWD^cdWLGK_F>0K+kVDyN<3Z7&iyu^s zlZu)+xx~aJB&Af<)HO7@(s#)lOnKGb1qam<1W^8UAcv)TMPmV^J5wD29ZAcJZMPOD3H=v#_gy z&E4nOhS&9n=GQ%cvHx0wRq5qPA%R?#p9Lq&6u!G;9%a;$a0oub-MMsOi1&D}a4webSx(4Ch<+e}D3y zp;hT+?lXxe9nNY-E44&*-&m~o-?K+-Te+~(&t(dJN53BTdj9U6bnJ(>ccz!!PoH<^ zT}+cT^Rap@hEMsxRCO}%)WXPSCWqHO^}UJL{xfv_y7iyo!2YEP0gSF9l;P-qBEP@e zyZ+nS7`;z)Vpw#m3R?n)+>WyhRc6hP&cE56m}}#!<5lP8eB#?$$vxSLg_54SX{ELu z@{eO|E+5aA_EctdedQba@6N{m4D%cRGt|uguz=sG{n$3Kk1c)IQUcGh*&o}y^}X1C zhRj>Dvnyt4+$uQt>6 uJt40yMXylUz~k}doc*B<84QcMG$_U=zk*CztbUCOW>LdE6q>>O|0V#&qFK8D diff --git a/public/castopod-banner-pine_federation.jpg b/public/castopod-banner-pine_federation.jpg deleted file mode 100644 index 9e9df5cb0a81f62b6b0e45e487f671bd07c1adf3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14521 zcmeI0eLU3J9>>p^8PCON$jVbF(ylxvkF(NXv|*NhzsStL0=@t;VdDl9E-B#jL@~%gam4tW{LND#~HyvCD%Xkiy@f&=P301a_6w zD(s&w&|`oRN6esmkq8YSfI**g#%Np9|BkKKDb{q|E1_y;9od@pN7*}v$*2z7~|P)L;6vMz*3q|lHU6nedZsGJQ^ z%qMt_hGD!oc6(}W@e>J6BiBiJ-;h>G1uf%&4R4pFy;JtbgeCk}%2tH^s;dV`BN4(s z4~YRdFt5tcxwUW6QYViAV1s=CGXOIHGXOIHGXOIHGXOIHGXOIHGXOIHGXOL2f58BI z2USrwIj!5B-A>Uw$LfjGC3@gWv;_RtrA+O)uDDID|07>XP5xS%TB2VNU0e`&ENp*) z4@B9=HMZH(*MyR(7a%aE34t)WZY;nO$ze<8L!@u;hd+v#h(U}wA<8`&Tu!22@*yVa z#HN(VeRNkD?rx5e(UL9eX{ii1Ul>m zuLN#~oQJZA71WEZ>D;?||!R?N(o;l-4}hua&r4at3+ngcWo zETjEzgl936iteI(i%%b|Bq(x5%#{XsPP#)5_YHPEP^%bX$po6NuXE|>>&z{CR+?Do zRi{y&Jh)$FiO#W3|IU3}#W&WvXGHwo#nHV*ivG%en$v~Gt%i{un=MEX@MJo+7QJ>} z3XI)!j+DpH0kD0r50HWVOFQTjDZ|cJy&zDKvedeGZ3d7baJ-b#5!6G?2$O|?#H*%m zGCJBc=?4Dhsl#92L9VwhhrqaRnsGvTJ!GB zrG1ape6sX~>qO7U_1QTO`~Y3{J6gEPmFE3rXOs4FHpm=|A^MrPPBcygxw?;MH8Q;}8{Sjkx9cm)^jf-^VveRk38Novl53CQ?Ni~- zg6q>>q-SrWIgN#dk3{$CWi<`zZ%8h(R|yHhWk*x=y=t_L#M_%R(QoTjGq2Eerd26R z=`khr?$PJt!{5+#Dd+X(zPHOcCCvacX17QMSvDPl)lkR9{ zF4so6E5d(gc&JKtY1&fZ?J=1ZN0TY&W(hp zI8t|vhsV|Ko0t4n-BCX7?cc%Ep3VvMh(5UcW+=y?gnRq`Fqv36WzyQN_sLLsQeHYL zwah)}#KoS9;^Et#&SAmQhK}}gSmrRkHof+$<*N;+`@T;Z{rno1D($1`a`FM17`JJ! ze8+Xr5T%}+h;MwDk=Y!jVCrNZX(rkBWmViq!jXLvETU?HHR=-c3LfVhpulrV|_=R?l#^_ zlkiE+I~zvXc9YS> z3FSk*+=83_f;E+g=Vvpf|Dh>vG$r)vmHlL#;R!xtq-wz89t4n$TX ztE1-3k0m1G3EnL$b;4*e@mvtgUaUp5sE#_}LvfSY&*?3tRTo(+&k(bW$u^O1guu!) zSQ(t+q@_NV0R#@c6&Npf_+pn+h^p>e-KQy(fG6>Td)DSJu=rhe>_OUVf}_z%Un^HV zBc9dx#^cGu7OxT*I)w(3%^eWv%5N*B{hUF7{FNvJpL#yzk^+BL1_7el0&AZ1 z>JR5+?-RMrb|rUlylXQ#l3_%=@T3IWhx*{qN*c#gDR0C;paPdp_~SwP{SNMFl6`Hc z$wtrw;5_@UIcJFQ&UCv^^}dMMc#Bu0dn7f3g_$u%l;M5n+vu@X=9XOCqyB7gh_pXg zPQeQ8_rBIvQ~!yteXcQL^WPd9cTGL2zBF52HOg{xb3s+nE(xMd)ZX3kc(C(b1M$x_ zdly$w3HD}IHbr9y^_OxoH$YJ9?nhzF{=>~F=FV@*Mn7HWM&6RGJ@JY0A>JY0A>JY0A>JY0A>JY0A>JY R0A>JY0A}DnG9U*1@OOtcNL>H` diff --git a/public/castopod-banner-pine_medium.webp b/public/castopod-banner-pine_medium.webp deleted file mode 100644 index 6371a5e52294304955eb43ac60fc06829b461702..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6594 zcmeH|X;f3!7RS%c03?7Um_Wp534RbKL_de2`d;aTwIA`y5e*6CK zKJX*>8Nj(Zxi|p`g1}+f17IoG;mD-hd+lXzCkF+XhJG3tM2Kb*N>KgnSWo4WO4!@Q_BobBBG)Wo+k~)D%SV;mQWico;293rLRFzc;|MP%v z1H2MshrEr1bO8bnA@LA=7ia?jp=GEmw7(4qAv>djq7nwHEZb0r0|*F-M4*r>r3z~`OxrBFGfaRj*U;h zmdwn)nR`3Gu)+laP)L;G3KxXn%7nzD&^l%c>h=spf6iK6^F$?r zLsn6B3r5d^IYm4Y*^SlEr#{~}y@K{D*roR{o|^-rNE!DQK*aC(SLg)2yx7 zJkGpzz!Bvbo!vm!9`<}4+Gm)=>lz--r865FHsd82B-bpU{L4}1D^JD$sd!X)C65* z97=sJ%<;IVTa37G`e#!2r*Fcag+JS!nv~&^_e9Ny6o9Q01z-2RQ*)*I@qpRwJiW7O zMKcvVc1!xP_3i&xvtOtI!(;TFqXT zw$)N9g|zIJ{rTtX+ikjzNhS|Y+-OVt z-r-tWc06>TFd?6NXwx*VY-*(81f7r*+~9)ScrQbdX>PILRa2_vG~zDKIGk~$+OM|y z)Lci~NkRQgCsWmTuruM()<7Gt#a>123lF``6_&kp?&?0ZnRmHH){ zI+^$bWnBCN>mMKNNE|`z=4P0moC+VF5-ml9aAG!|7g}ZQd7iXxRM?W!>U)9lOPKS( zD|_16ZKZ5O7aKJvAwADBi)6mJU9YiHvrQ|sFI3mNO`X$(tl?Icw3@lBITM~OsOV@J zSJ-2$Ev{@b>3w@$JT)XJ`|4;U(b024dwBnNa@j*#n`mUUyMr2S>M^!m;1=Yp%63e z;GQHHOgxOCrj^-7;P$ER{feLd@o!z?6S@|qI03tg^wGPk!Dk_8kbgDU1ELfDT)(zQ z%afu|9(ySmkxpRPp;wVKOv-S(CA^-N3cHqMd(>yF4HW%oD)dc(h4*Kfc0U{s{w4Xf6TbF1o{@vG)CC=D^_mbyT48rPHhk z0@U<}jP>4>4zgPOcQ-G%Z~E?D)w)>`#-RMlWrUC-m%IjY56C?r_ki33e;W^|!F~S* DT!#QO diff --git a/public/castopod-banner-pine_small.webp b/public/castopod-banner-pine_small.webp deleted file mode 100644 index ac43b616ebd2acfa7b1572316e5e7165396bc863..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1627 zcmex=_1P|rX?qqI0P zFI~aY%U!`Mz|~!$%*;qrN1?DZF(6Oj-S5fuR$!pIEN!@|nR z%E~Fi%grl7GWdUhL6C!?fzg4PQHg;`kdaxC@&6G9c?JeXR-jiwzJ&rtCZHSH*f}`4 zxPc0`3NSD+GBY!=FoRqTR9y>{XJ8Rz6;d>GWD^cdWLGK_F>0K+kVDyN<3Z7&iyu^s zlZu)+xx~aJB&Af<)HO7@(s#)lOnKGb1qam<1W^8Gg!jX{=B9W23RCi(wQ)!a(cYtj4(~878n9 zhphTG{hI%w2GeWD&$tS*%}X*$?ls<0Tbo(GDephS^K<#XztkVvwcGNx^M|)5X5O7KgI@nwR@`a`}G-yW;x$i~osqFZX;V z@x))vCp9QkEBZ!Z-1N!{-L>j7#m^dQT8m$o)n|wSzufh|+p1R=2 z`rk%3qR&fv3;jLjeB#?$$vv5gg_54SX{ELu@{ePpcO6?g;{o4S@!N_28Rj*AGFcNf z+v|8Sf3J@2V@}yMrxwp)us^o>>wB^K%v-ZFlrt9R?>kp%clC7bHu;|~?3IHSuj!KX ybA0dGcy?=2AJiYaS8mXiIInEED&z#0#-avFG0#O;5r)878Vi`ZhCb&1e-i*gL_7ch diff --git a/public/index.php b/public/index.php index e4a895b5..e225cbff 100644 --- a/public/index.php +++ b/public/index.php @@ -11,12 +11,12 @@ use Config\Paths; *--------------------------------------------------------------- */ -$minPhpVersion = '8.3'; // If you update this, don't forget to update `spark`. +$minPhpVersion = '8.4'; // If you update this, don't forget to update `spark`. if (version_compare(PHP_VERSION, $minPhpVersion, '<')) { $message = sprintf( 'Your PHP version must be %s or higher to run CodeIgniter. Current version: %s', $minPhpVersion, - PHP_VERSION + PHP_VERSION, ); header('HTTP/1.1 503 Service Unavailable.', true, 503); diff --git a/rector.php b/rector.php index 9e968f48..8e981c17 100644 --- a/rector.php +++ b/rector.php @@ -17,8 +17,8 @@ use Rector\ValueObject\PhpVersion; return RectorConfig::configure() ->withPaths([__DIR__ . '/app', __DIR__ . '/modules', __DIR__ . '/tests', __DIR__ . '/public']) ->withBootstrapFiles([__DIR__ . '/vendor/codeigniter4/framework/system/Test/bootstrap.php']) - ->withPhpVersion(PhpVersion::PHP_83) - ->withPhpSets(php83: true) + ->withPhpVersion(PhpVersion::PHP_84) + ->withPhpSets(php84: true) ->withPreparedSets( typeDeclarations: true, codeQuality: true, diff --git a/app/Resources/icons/funding/_index.php b/resources/icons/funding/_index.php similarity index 100% rename from app/Resources/icons/funding/_index.php rename to resources/icons/funding/_index.php diff --git a/app/Resources/icons/funding/buymeacoffee.svg b/resources/icons/funding/buymeacoffee.svg similarity index 100% rename from app/Resources/icons/funding/buymeacoffee.svg rename to resources/icons/funding/buymeacoffee.svg diff --git a/app/Resources/icons/funding/default.svg b/resources/icons/funding/default.svg similarity index 100% rename from app/Resources/icons/funding/default.svg rename to resources/icons/funding/default.svg diff --git a/app/Resources/icons/funding/donorbox.svg b/resources/icons/funding/donorbox.svg similarity index 100% rename from app/Resources/icons/funding/donorbox.svg rename to resources/icons/funding/donorbox.svg diff --git a/app/Resources/icons/funding/gofundme.svg b/resources/icons/funding/gofundme.svg similarity index 100% rename from app/Resources/icons/funding/gofundme.svg rename to resources/icons/funding/gofundme.svg diff --git a/app/Resources/icons/funding/helloasso.svg b/resources/icons/funding/helloasso.svg similarity index 100% rename from app/Resources/icons/funding/helloasso.svg rename to resources/icons/funding/helloasso.svg diff --git a/app/Resources/icons/funding/indiegogo.svg b/resources/icons/funding/indiegogo.svg similarity index 100% rename from app/Resources/icons/funding/indiegogo.svg rename to resources/icons/funding/indiegogo.svg diff --git a/app/Resources/icons/funding/kickstarter.svg b/resources/icons/funding/kickstarter.svg similarity index 100% rename from app/Resources/icons/funding/kickstarter.svg rename to resources/icons/funding/kickstarter.svg diff --git a/app/Resources/icons/funding/kisskissbankbank.svg b/resources/icons/funding/kisskissbankbank.svg similarity index 100% rename from app/Resources/icons/funding/kisskissbankbank.svg rename to resources/icons/funding/kisskissbankbank.svg diff --git a/app/Resources/icons/funding/kofi.svg b/resources/icons/funding/kofi.svg similarity index 100% rename from app/Resources/icons/funding/kofi.svg rename to resources/icons/funding/kofi.svg diff --git a/app/Resources/icons/funding/liberapay.svg b/resources/icons/funding/liberapay.svg similarity index 100% rename from app/Resources/icons/funding/liberapay.svg rename to resources/icons/funding/liberapay.svg diff --git a/app/Resources/icons/funding/patreon.svg b/resources/icons/funding/patreon.svg similarity index 100% rename from app/Resources/icons/funding/patreon.svg rename to resources/icons/funding/patreon.svg diff --git a/app/Resources/icons/funding/paypal.svg b/resources/icons/funding/paypal.svg similarity index 100% rename from app/Resources/icons/funding/paypal.svg rename to resources/icons/funding/paypal.svg diff --git a/app/Resources/icons/funding/tipeee.svg b/resources/icons/funding/tipeee.svg similarity index 100% rename from app/Resources/icons/funding/tipeee.svg rename to resources/icons/funding/tipeee.svg diff --git a/app/Resources/icons/funding/ulule.svg b/resources/icons/funding/ulule.svg similarity index 100% rename from app/Resources/icons/funding/ulule.svg rename to resources/icons/funding/ulule.svg diff --git a/app/Resources/icons/podcasting/_index.php b/resources/icons/podcasting/_index.php similarity index 100% rename from app/Resources/icons/podcasting/_index.php rename to resources/icons/podcasting/_index.php diff --git a/app/Resources/icons/podcasting/amazon.svg b/resources/icons/podcasting/amazon.svg similarity index 100% rename from app/Resources/icons/podcasting/amazon.svg rename to resources/icons/podcasting/amazon.svg diff --git a/app/Resources/icons/podcasting/antennapod.svg b/resources/icons/podcasting/antennapod.svg similarity index 100% rename from app/Resources/icons/podcasting/antennapod.svg rename to resources/icons/podcasting/antennapod.svg diff --git a/app/Resources/icons/podcasting/anytime.svg b/resources/icons/podcasting/anytime.svg similarity index 100% rename from app/Resources/icons/podcasting/anytime.svg rename to resources/icons/podcasting/anytime.svg diff --git a/app/Resources/icons/podcasting/apple.svg b/resources/icons/podcasting/apple.svg similarity index 100% rename from app/Resources/icons/podcasting/apple.svg rename to resources/icons/podcasting/apple.svg diff --git a/app/Resources/icons/podcasting/blubrry.svg b/resources/icons/podcasting/blubrry.svg similarity index 100% rename from app/Resources/icons/podcasting/blubrry.svg rename to resources/icons/podcasting/blubrry.svg diff --git a/app/Resources/icons/podcasting/breaker.svg b/resources/icons/podcasting/breaker.svg similarity index 100% rename from app/Resources/icons/podcasting/breaker.svg rename to resources/icons/podcasting/breaker.svg diff --git a/app/Resources/icons/podcasting/breez.svg b/resources/icons/podcasting/breez.svg similarity index 100% rename from app/Resources/icons/podcasting/breez.svg rename to resources/icons/podcasting/breez.svg diff --git a/app/Resources/icons/podcasting/castamatic.svg b/resources/icons/podcasting/castamatic.svg similarity index 100% rename from app/Resources/icons/podcasting/castamatic.svg rename to resources/icons/podcasting/castamatic.svg diff --git a/app/Resources/icons/podcasting/castbox.svg b/resources/icons/podcasting/castbox.svg similarity index 100% rename from app/Resources/icons/podcasting/castbox.svg rename to resources/icons/podcasting/castbox.svg diff --git a/app/Resources/icons/podcasting/castopod.svg b/resources/icons/podcasting/castopod.svg similarity index 100% rename from app/Resources/icons/podcasting/castopod.svg rename to resources/icons/podcasting/castopod.svg diff --git a/app/Resources/icons/podcasting/castro.svg b/resources/icons/podcasting/castro.svg similarity index 100% rename from app/Resources/icons/podcasting/castro.svg rename to resources/icons/podcasting/castro.svg diff --git a/app/Resources/icons/podcasting/deezer.svg b/resources/icons/podcasting/deezer.svg similarity index 100% rename from app/Resources/icons/podcasting/deezer.svg rename to resources/icons/podcasting/deezer.svg diff --git a/app/Resources/icons/podcasting/default.svg b/resources/icons/podcasting/default.svg similarity index 100% rename from app/Resources/icons/podcasting/default.svg rename to resources/icons/podcasting/default.svg diff --git a/app/Resources/icons/podcasting/episodes-fm.svg b/resources/icons/podcasting/episodes-fm.svg similarity index 100% rename from app/Resources/icons/podcasting/episodes-fm.svg rename to resources/icons/podcasting/episodes-fm.svg diff --git a/app/Resources/icons/podcasting/fountain.svg b/resources/icons/podcasting/fountain.svg similarity index 100% rename from app/Resources/icons/podcasting/fountain.svg rename to resources/icons/podcasting/fountain.svg diff --git a/app/Resources/icons/podcasting/fyyd.svg b/resources/icons/podcasting/fyyd.svg similarity index 100% rename from app/Resources/icons/podcasting/fyyd.svg rename to resources/icons/podcasting/fyyd.svg diff --git a/app/Resources/icons/podcasting/google.svg b/resources/icons/podcasting/google.svg similarity index 100% rename from app/Resources/icons/podcasting/google.svg rename to resources/icons/podcasting/google.svg diff --git a/app/Resources/icons/podcasting/gpodder.svg b/resources/icons/podcasting/gpodder.svg similarity index 100% rename from app/Resources/icons/podcasting/gpodder.svg rename to resources/icons/podcasting/gpodder.svg diff --git a/app/Resources/icons/podcasting/ivoox.svg b/resources/icons/podcasting/ivoox.svg similarity index 100% rename from app/Resources/icons/podcasting/ivoox.svg rename to resources/icons/podcasting/ivoox.svg diff --git a/app/Resources/icons/podcasting/listennotes.svg b/resources/icons/podcasting/listennotes.svg similarity index 100% rename from app/Resources/icons/podcasting/listennotes.svg rename to resources/icons/podcasting/listennotes.svg diff --git a/app/Resources/icons/podcasting/overcast.svg b/resources/icons/podcasting/overcast.svg similarity index 100% rename from app/Resources/icons/podcasting/overcast.svg rename to resources/icons/podcasting/overcast.svg diff --git a/app/Resources/icons/podcasting/playerfm.svg b/resources/icons/podcasting/playerfm.svg similarity index 100% rename from app/Resources/icons/podcasting/playerfm.svg rename to resources/icons/podcasting/playerfm.svg diff --git a/app/Resources/icons/podcasting/plink.svg b/resources/icons/podcasting/plink.svg similarity index 100% rename from app/Resources/icons/podcasting/plink.svg rename to resources/icons/podcasting/plink.svg diff --git a/app/Resources/icons/podcasting/pocketcasts.svg b/resources/icons/podcasting/pocketcasts.svg similarity index 100% rename from app/Resources/icons/podcasting/pocketcasts.svg rename to resources/icons/podcasting/pocketcasts.svg diff --git a/app/Resources/icons/podcasting/podbean.svg b/resources/icons/podcasting/podbean.svg similarity index 100% rename from app/Resources/icons/podcasting/podbean.svg rename to resources/icons/podcasting/podbean.svg diff --git a/app/Resources/icons/podcasting/podcastaddict.svg b/resources/icons/podcasting/podcastaddict.svg similarity index 100% rename from app/Resources/icons/podcasting/podcastaddict.svg rename to resources/icons/podcasting/podcastaddict.svg diff --git a/app/Resources/icons/podcasting/podcastguru.svg b/resources/icons/podcasting/podcastguru.svg similarity index 100% rename from app/Resources/icons/podcasting/podcastguru.svg rename to resources/icons/podcasting/podcastguru.svg diff --git a/app/Resources/icons/podcasting/podcastindex.svg b/resources/icons/podcasting/podcastindex.svg similarity index 100% rename from app/Resources/icons/podcasting/podcastindex.svg rename to resources/icons/podcasting/podcastindex.svg diff --git a/app/Resources/icons/podcasting/podchaser.svg b/resources/icons/podcasting/podchaser.svg similarity index 100% rename from app/Resources/icons/podcasting/podchaser.svg rename to resources/icons/podcasting/podchaser.svg diff --git a/app/Resources/icons/podcasting/podcloud.svg b/resources/icons/podcasting/podcloud.svg similarity index 100% rename from app/Resources/icons/podcasting/podcloud.svg rename to resources/icons/podcasting/podcloud.svg diff --git a/app/Resources/icons/podcasting/podfriend.svg b/resources/icons/podcasting/podfriend.svg similarity index 100% rename from app/Resources/icons/podcasting/podfriend.svg rename to resources/icons/podcasting/podfriend.svg diff --git a/app/Resources/icons/podcasting/podinstall.svg b/resources/icons/podcasting/podinstall.svg similarity index 100% rename from app/Resources/icons/podcasting/podinstall.svg rename to resources/icons/podcasting/podinstall.svg diff --git a/app/Resources/icons/podcasting/podlink.svg b/resources/icons/podcasting/podlink.svg similarity index 100% rename from app/Resources/icons/podcasting/podlink.svg rename to resources/icons/podcasting/podlink.svg diff --git a/app/Resources/icons/podcasting/podlp.svg b/resources/icons/podcasting/podlp.svg similarity index 100% rename from app/Resources/icons/podcasting/podlp.svg rename to resources/icons/podcasting/podlp.svg diff --git a/app/Resources/icons/podcasting/podnews.svg b/resources/icons/podcasting/podnews.svg similarity index 100% rename from app/Resources/icons/podcasting/podnews.svg rename to resources/icons/podcasting/podnews.svg diff --git a/app/Resources/icons/podcasting/podtail.svg b/resources/icons/podcasting/podtail.svg similarity index 100% rename from app/Resources/icons/podcasting/podtail.svg rename to resources/icons/podcasting/podtail.svg diff --git a/app/Resources/icons/podcasting/podverse.svg b/resources/icons/podcasting/podverse.svg similarity index 100% rename from app/Resources/icons/podcasting/podverse.svg rename to resources/icons/podcasting/podverse.svg diff --git a/app/Resources/icons/podcasting/radiopublic.svg b/resources/icons/podcasting/radiopublic.svg similarity index 100% rename from app/Resources/icons/podcasting/radiopublic.svg rename to resources/icons/podcasting/radiopublic.svg diff --git a/app/Resources/icons/podcasting/sphinxchat.svg b/resources/icons/podcasting/sphinxchat.svg similarity index 100% rename from app/Resources/icons/podcasting/sphinxchat.svg rename to resources/icons/podcasting/sphinxchat.svg diff --git a/app/Resources/icons/podcasting/spotify.svg b/resources/icons/podcasting/spotify.svg similarity index 100% rename from app/Resources/icons/podcasting/spotify.svg rename to resources/icons/podcasting/spotify.svg diff --git a/app/Resources/icons/podcasting/spreaker.svg b/resources/icons/podcasting/spreaker.svg similarity index 100% rename from app/Resources/icons/podcasting/spreaker.svg rename to resources/icons/podcasting/spreaker.svg diff --git a/app/Resources/icons/podcasting/stitcher.svg b/resources/icons/podcasting/stitcher.svg similarity index 100% rename from app/Resources/icons/podcasting/stitcher.svg rename to resources/icons/podcasting/stitcher.svg diff --git a/app/Resources/icons/podcasting/truefans.svg b/resources/icons/podcasting/truefans.svg similarity index 100% rename from app/Resources/icons/podcasting/truefans.svg rename to resources/icons/podcasting/truefans.svg diff --git a/app/Resources/icons/podcasting/tsacdop.svg b/resources/icons/podcasting/tsacdop.svg similarity index 100% rename from app/Resources/icons/podcasting/tsacdop.svg rename to resources/icons/podcasting/tsacdop.svg diff --git a/app/Resources/icons/podcasting/tunein.svg b/resources/icons/podcasting/tunein.svg similarity index 100% rename from app/Resources/icons/podcasting/tunein.svg rename to resources/icons/podcasting/tunein.svg diff --git a/app/Resources/icons/podcasting/youtube-music.svg b/resources/icons/podcasting/youtube-music.svg similarity index 100% rename from app/Resources/icons/podcasting/youtube-music.svg rename to resources/icons/podcasting/youtube-music.svg diff --git a/app/Resources/icons/social/_index.php b/resources/icons/social/_index.php similarity index 100% rename from app/Resources/icons/social/_index.php rename to resources/icons/social/_index.php diff --git a/app/Resources/icons/social/bluesky.svg b/resources/icons/social/bluesky.svg similarity index 100% rename from app/Resources/icons/social/bluesky.svg rename to resources/icons/social/bluesky.svg diff --git a/app/Resources/icons/social/castopod.svg b/resources/icons/social/castopod.svg similarity index 100% rename from app/Resources/icons/social/castopod.svg rename to resources/icons/social/castopod.svg diff --git a/app/Resources/icons/social/default.svg b/resources/icons/social/default.svg similarity index 100% rename from app/Resources/icons/social/default.svg rename to resources/icons/social/default.svg diff --git a/app/Resources/icons/social/discord.svg b/resources/icons/social/discord.svg similarity index 100% rename from app/Resources/icons/social/discord.svg rename to resources/icons/social/discord.svg diff --git a/app/Resources/icons/social/facebook.svg b/resources/icons/social/facebook.svg similarity index 100% rename from app/Resources/icons/social/facebook.svg rename to resources/icons/social/facebook.svg diff --git a/app/Resources/icons/social/funkwhale.svg b/resources/icons/social/funkwhale.svg similarity index 100% rename from app/Resources/icons/social/funkwhale.svg rename to resources/icons/social/funkwhale.svg diff --git a/app/Resources/icons/social/instagram.svg b/resources/icons/social/instagram.svg similarity index 100% rename from app/Resources/icons/social/instagram.svg rename to resources/icons/social/instagram.svg diff --git a/app/Resources/icons/social/linkedin.svg b/resources/icons/social/linkedin.svg similarity index 100% rename from app/Resources/icons/social/linkedin.svg rename to resources/icons/social/linkedin.svg diff --git a/app/Resources/icons/social/mastodon.svg b/resources/icons/social/mastodon.svg similarity index 100% rename from app/Resources/icons/social/mastodon.svg rename to resources/icons/social/mastodon.svg diff --git a/app/Resources/icons/social/matrix.svg b/resources/icons/social/matrix.svg similarity index 100% rename from app/Resources/icons/social/matrix.svg rename to resources/icons/social/matrix.svg diff --git a/app/Resources/icons/social/misskey.svg b/resources/icons/social/misskey.svg similarity index 100% rename from app/Resources/icons/social/misskey.svg rename to resources/icons/social/misskey.svg diff --git a/app/Resources/icons/social/mobilizon.svg b/resources/icons/social/mobilizon.svg similarity index 100% rename from app/Resources/icons/social/mobilizon.svg rename to resources/icons/social/mobilizon.svg diff --git a/app/Resources/icons/social/peertube.svg b/resources/icons/social/peertube.svg similarity index 100% rename from app/Resources/icons/social/peertube.svg rename to resources/icons/social/peertube.svg diff --git a/app/Resources/icons/social/pixelfed.svg b/resources/icons/social/pixelfed.svg similarity index 100% rename from app/Resources/icons/social/pixelfed.svg rename to resources/icons/social/pixelfed.svg diff --git a/app/Resources/icons/social/pleroma.svg b/resources/icons/social/pleroma.svg similarity index 100% rename from app/Resources/icons/social/pleroma.svg rename to resources/icons/social/pleroma.svg diff --git a/app/Resources/icons/social/plume.svg b/resources/icons/social/plume.svg similarity index 100% rename from app/Resources/icons/social/plume.svg rename to resources/icons/social/plume.svg diff --git a/app/Resources/icons/social/reddit.svg b/resources/icons/social/reddit.svg similarity index 100% rename from app/Resources/icons/social/reddit.svg rename to resources/icons/social/reddit.svg diff --git a/app/Resources/icons/social/slack.svg b/resources/icons/social/slack.svg similarity index 100% rename from app/Resources/icons/social/slack.svg rename to resources/icons/social/slack.svg diff --git a/app/Resources/icons/social/telegram.svg b/resources/icons/social/telegram.svg similarity index 100% rename from app/Resources/icons/social/telegram.svg rename to resources/icons/social/telegram.svg diff --git a/app/Resources/icons/social/threads.svg b/resources/icons/social/threads.svg similarity index 100% rename from app/Resources/icons/social/threads.svg rename to resources/icons/social/threads.svg diff --git a/app/Resources/icons/social/tiktok.svg b/resources/icons/social/tiktok.svg similarity index 100% rename from app/Resources/icons/social/tiktok.svg rename to resources/icons/social/tiktok.svg diff --git a/app/Resources/icons/social/twitch.svg b/resources/icons/social/twitch.svg similarity index 100% rename from app/Resources/icons/social/twitch.svg rename to resources/icons/social/twitch.svg diff --git a/app/Resources/icons/social/twitter.svg b/resources/icons/social/twitter.svg similarity index 100% rename from app/Resources/icons/social/twitter.svg rename to resources/icons/social/twitter.svg diff --git a/app/Resources/icons/social/writefreely.svg b/resources/icons/social/writefreely.svg similarity index 100% rename from app/Resources/icons/social/writefreely.svg rename to resources/icons/social/writefreely.svg diff --git a/app/Resources/icons/social/x.svg b/resources/icons/social/x.svg similarity index 100% rename from app/Resources/icons/social/x.svg rename to resources/icons/social/x.svg diff --git a/app/Resources/icons/social/youtube.svg b/resources/icons/social/youtube.svg similarity index 100% rename from app/Resources/icons/social/youtube.svg rename to resources/icons/social/youtube.svg diff --git a/app/Resources/js/modules/Charts.ts b/resources/js/_modules/Charts.ts similarity index 100% rename from app/Resources/js/modules/Charts.ts rename to resources/js/_modules/Charts.ts diff --git a/app/Resources/js/modules/ClientTimezone.ts b/resources/js/_modules/ClientTimezone.ts similarity index 100% rename from app/Resources/js/modules/ClientTimezone.ts rename to resources/js/_modules/ClientTimezone.ts diff --git a/app/Resources/js/modules/Clipboard.ts b/resources/js/_modules/Clipboard.ts similarity index 100% rename from app/Resources/js/modules/Clipboard.ts rename to resources/js/_modules/Clipboard.ts diff --git a/app/Resources/js/modules/DateTimePicker.ts b/resources/js/_modules/DateTimePicker.ts similarity index 100% rename from app/Resources/js/modules/DateTimePicker.ts rename to resources/js/_modules/DateTimePicker.ts diff --git a/app/Resources/js/modules/Dropdown.ts b/resources/js/_modules/Dropdown.ts similarity index 100% rename from app/Resources/js/modules/Dropdown.ts rename to resources/js/_modules/Dropdown.ts diff --git a/app/Resources/js/modules/EpisodesMap.ts b/resources/js/_modules/EpisodesMap.ts similarity index 91% rename from app/Resources/js/modules/EpisodesMap.ts rename to resources/js/_modules/EpisodesMap.ts index 390564f9..bc0b2ed5 100644 --- a/app/Resources/js/modules/EpisodesMap.ts +++ b/resources/js/_modules/EpisodesMap.ts @@ -11,14 +11,11 @@ import { MarkerClusterGroup } from "leaflet.markercluster"; import "leaflet.markercluster/dist/MarkerCluster.css"; import "leaflet.markercluster/dist/MarkerCluster.Default.css"; import "leaflet/dist/leaflet.css"; -import markerIconRetina from "../../images/marker/marker-icon-2x.png"; -import markerIcon from "../../images/marker/marker-icon.png"; -import markerShadow from "../../images/marker/marker-shadow.png"; Marker.prototype.options.icon = icon({ - iconRetinaUrl: markerIconRetina, - iconUrl: markerIcon, - shadowUrl: markerShadow, + iconRetinaUrl: "/assets/images/marker/marker-icon-2x.png", + iconUrl: "/assets/images/marker/marker-icon.png", + shadowUrl: "/assets/images/marker/marker-shadow.png", iconSize: [25, 41], iconAnchor: [12, 41], popupAnchor: [1, -34], diff --git a/app/Resources/js/modules/FieldArray.ts b/resources/js/_modules/FieldArray.ts similarity index 100% rename from app/Resources/js/modules/FieldArray.ts rename to resources/js/_modules/FieldArray.ts diff --git a/app/Resources/js/modules/HotKeys.ts b/resources/js/_modules/HotKeys.ts similarity index 100% rename from app/Resources/js/modules/HotKeys.ts rename to resources/js/_modules/HotKeys.ts diff --git a/app/Resources/js/modules/Modal.ts b/resources/js/_modules/Modal.ts similarity index 100% rename from app/Resources/js/modules/Modal.ts rename to resources/js/_modules/Modal.ts diff --git a/app/Resources/js/modules/PublishMessageWarning.ts b/resources/js/_modules/PublishMessageWarning.ts similarity index 100% rename from app/Resources/js/modules/PublishMessageWarning.ts rename to resources/js/_modules/PublishMessageWarning.ts diff --git a/app/Resources/js/modules/Select.ts b/resources/js/_modules/Select.ts similarity index 100% rename from app/Resources/js/modules/Select.ts rename to resources/js/_modules/Select.ts diff --git a/app/Resources/js/modules/SelectMulti.ts b/resources/js/_modules/SelectMulti.ts similarity index 100% rename from app/Resources/js/modules/SelectMulti.ts rename to resources/js/_modules/SelectMulti.ts diff --git a/app/Resources/js/modules/SidebarToggler.ts b/resources/js/_modules/SidebarToggler.ts similarity index 100% rename from app/Resources/js/modules/SidebarToggler.ts rename to resources/js/_modules/SidebarToggler.ts diff --git a/app/Resources/js/modules/Slugify.ts b/resources/js/_modules/Slugify.ts similarity index 100% rename from app/Resources/js/modules/Slugify.ts rename to resources/js/_modules/Slugify.ts diff --git a/app/Resources/js/modules/ThemePicker.ts b/resources/js/_modules/ThemePicker.ts similarity index 100% rename from app/Resources/js/modules/ThemePicker.ts rename to resources/js/_modules/ThemePicker.ts diff --git a/app/Resources/js/modules/Time.ts b/resources/js/_modules/Time.ts similarity index 100% rename from app/Resources/js/modules/Time.ts rename to resources/js/_modules/Time.ts diff --git a/app/Resources/js/modules/Toggler.ts b/resources/js/_modules/Toggler.ts similarity index 100% rename from app/Resources/js/modules/Toggler.ts rename to resources/js/_modules/Toggler.ts diff --git a/app/Resources/js/modules/Tooltip.ts b/resources/js/_modules/Tooltip.ts similarity index 100% rename from app/Resources/js/modules/Tooltip.ts rename to resources/js/_modules/Tooltip.ts diff --git a/app/Resources/js/modules/ValidateFileSize.ts b/resources/js/_modules/ValidateFileSize.ts similarity index 100% rename from app/Resources/js/modules/ValidateFileSize.ts rename to resources/js/_modules/ValidateFileSize.ts diff --git a/app/Resources/js/modules/VideoClipBuilder.ts b/resources/js/_modules/VideoClipBuilder.ts similarity index 100% rename from app/Resources/js/modules/VideoClipBuilder.ts rename to resources/js/_modules/VideoClipBuilder.ts diff --git a/app/Resources/js/modules/audio-clipper.ts b/resources/js/_modules/audio-clipper.ts similarity index 99% rename from app/Resources/js/modules/audio-clipper.ts rename to resources/js/_modules/audio-clipper.ts index 0244575d..a5521273 100644 --- a/app/Resources/js/modules/audio-clipper.ts +++ b/resources/js/_modules/audio-clipper.ts @@ -744,7 +744,8 @@ export class AudioClipper extends LitElement { var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 0 rgba(0, 0, 0, 0); - box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), + box-shadow: + var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 rgba(0, 0, 0, 0)); --tw-ring-offset-width: 2px; --tw-ring-opacity: 1; diff --git a/app/Resources/js/modules/code-editor.ts b/resources/js/_modules/code-editor.ts similarity index 100% rename from app/Resources/js/modules/code-editor.ts rename to resources/js/_modules/code-editor.ts diff --git a/app/Resources/js/modules/markdown-preview.ts b/resources/js/_modules/markdown-preview.ts similarity index 100% rename from app/Resources/js/modules/markdown-preview.ts rename to resources/js/_modules/markdown-preview.ts diff --git a/app/Resources/js/modules/markdown-write-preview.ts b/resources/js/_modules/markdown-write-preview.ts similarity index 100% rename from app/Resources/js/modules/markdown-write-preview.ts rename to resources/js/_modules/markdown-write-preview.ts diff --git a/app/Resources/js/modules/permalink-edit.ts b/resources/js/_modules/permalink-edit.ts similarity index 100% rename from app/Resources/js/modules/permalink-edit.ts rename to resources/js/_modules/permalink-edit.ts diff --git a/app/Resources/js/modules/play-episode-button.ts b/resources/js/_modules/play-episode-button.ts similarity index 100% rename from app/Resources/js/modules/play-episode-button.ts rename to resources/js/_modules/play-episode-button.ts diff --git a/app/Resources/js/modules/play-soundbite.ts b/resources/js/_modules/play-soundbite.ts similarity index 100% rename from app/Resources/js/modules/play-soundbite.ts rename to resources/js/_modules/play-soundbite.ts diff --git a/app/Resources/js/modules/video-clip-previewer.ts b/resources/js/_modules/video-clip-previewer.ts similarity index 100% rename from app/Resources/js/modules/video-clip-previewer.ts rename to resources/js/_modules/video-clip-previewer.ts diff --git a/app/Resources/js/admin-audio-player.ts b/resources/js/admin-audio-player.ts similarity index 98% rename from app/Resources/js/admin-audio-player.ts rename to resources/js/admin-audio-player.ts index 994803a7..1cd26d58 100644 --- a/app/Resources/js/admin-audio-player.ts +++ b/resources/js/admin-audio-player.ts @@ -34,7 +34,7 @@ import { } from "@vime/core"; import "@vime/core/themes/default.css"; import "@vime/core/themes/light.css"; -import "./modules/play-episode-button"; +import "./_modules/play-episode-button"; // Vime elements for audio player customElements.define("vm-player", VmPlayer); diff --git a/resources/js/admin.ts b/resources/js/admin.ts new file mode 100644 index 00000000..bc87479d --- /dev/null +++ b/resources/js/admin.ts @@ -0,0 +1,43 @@ +import "@github/markdown-toolbar-element"; +import "@github/relative-time-element"; +import "./_modules/audio-clipper"; +import ClientTimezone from "./_modules/ClientTimezone"; +import Clipboard from "./_modules/Clipboard"; +import DateTimePicker from "./_modules/DateTimePicker"; +import Dropdown from "./_modules/Dropdown"; +import HotKeys from "./_modules/HotKeys"; +import "./_modules/markdown-preview"; +import "./_modules/markdown-write-preview"; +import SelectMulti from "./_modules/SelectMulti"; +import "./_modules/permalink-edit"; +import "./_modules/play-soundbite"; +import PublishMessageWarning from "./_modules/PublishMessageWarning"; +import Select from "./_modules/Select"; +import SidebarToggler from "./_modules/SidebarToggler"; +import Slugify from "./_modules/Slugify"; +import ThemePicker from "./_modules/ThemePicker"; +import Time from "./_modules/Time"; +import Tooltip from "./_modules/Tooltip"; +import ValidateFileSize from "./_modules/ValidateFileSize"; +import "./_modules/video-clip-previewer"; +import VideoClipBuilder from "./_modules/VideoClipBuilder"; +import "./_modules/code-editor"; +import "@patternfly/elements/pf-tabs/pf-tabs.js"; +import FieldArray from "./_modules/FieldArray"; + +Dropdown(); +Tooltip(); +Select(); +SelectMulti(); +Slugify(); +SidebarToggler(); +ClientTimezone(); +DateTimePicker(); +Time(); +Clipboard(); +ThemePicker(); +PublishMessageWarning(); +HotKeys(); +ValidateFileSize(); +VideoClipBuilder(); +FieldArray(); diff --git a/resources/js/app.ts b/resources/js/app.ts new file mode 100644 index 00000000..65bf64d4 --- /dev/null +++ b/resources/js/app.ts @@ -0,0 +1,5 @@ +import Dropdown from "./_modules/Dropdown"; +import Tooltip from "./_modules/Tooltip"; + +Dropdown(); +Tooltip(); diff --git a/app/Resources/js/audio-player.ts b/resources/js/audio-player.ts similarity index 98% rename from app/Resources/js/audio-player.ts rename to resources/js/audio-player.ts index 01e27470..76380c08 100644 --- a/app/Resources/js/audio-player.ts +++ b/resources/js/audio-player.ts @@ -35,7 +35,7 @@ import { import "@vime/core/themes/default.css"; import "@vime/core/themes/light.css"; import { html, render } from "lit"; -import "./modules/play-episode-button"; +import "./_modules/play-episode-button"; const player = html`
\ No newline at end of file diff --git a/resources/static/images/castopod-logo.svg b/resources/static/images/castopod-logo.svg new file mode 100644 index 00000000..55f4b22b --- /dev/null +++ b/resources/static/images/castopod-logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/resources/static/images/castopod-mascot_confused.svg b/resources/static/images/castopod-mascot_confused.svg new file mode 100644 index 00000000..89d51627 --- /dev/null +++ b/resources/static/images/castopod-mascot_confused.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/Resources/images/marker/marker-icon-2x.png b/resources/static/images/marker/marker-icon-2x.png similarity index 100% rename from app/Resources/images/marker/marker-icon-2x.png rename to resources/static/images/marker/marker-icon-2x.png diff --git a/app/Resources/images/marker/marker-icon.png b/resources/static/images/marker/marker-icon.png similarity index 100% rename from app/Resources/images/marker/marker-icon.png rename to resources/static/images/marker/marker-icon.png diff --git a/app/Resources/images/marker/marker-shadow.png b/resources/static/images/marker/marker-shadow.png similarity index 100% rename from app/Resources/images/marker/marker-shadow.png rename to resources/static/images/marker/marker-shadow.png diff --git a/app/Resources/styles/breadcrumb.css b/resources/styles/_modules/breadcrumb.css similarity index 100% rename from app/Resources/styles/breadcrumb.css rename to resources/styles/_modules/breadcrumb.css diff --git a/app/Resources/styles/choices.css b/resources/styles/_modules/choices.css similarity index 100% rename from app/Resources/styles/choices.css rename to resources/styles/_modules/choices.css diff --git a/app/Resources/styles/colorRadioBtn.css b/resources/styles/_modules/colorRadioBtn.css similarity index 100% rename from app/Resources/styles/colorRadioBtn.css rename to resources/styles/_modules/colorRadioBtn.css diff --git a/app/Resources/styles/colors.css b/resources/styles/_modules/colors.css similarity index 100% rename from app/Resources/styles/colors.css rename to resources/styles/_modules/colors.css diff --git a/app/Resources/styles/custom.css b/resources/styles/_modules/custom.css similarity index 97% rename from app/Resources/styles/custom.css rename to resources/styles/_modules/custom.css index 14888b22..55f09725 100644 --- a/app/Resources/styles/custom.css +++ b/resources/styles/_modules/custom.css @@ -63,6 +63,7 @@ } .backdrop-gradient-accent { + /* stylelint-disable-next-line declaration-property-value-no-unknown */ background-image: linear-gradient( 180deg, theme(colors.background.base / 0.4) 0%, diff --git a/app/Resources/styles/dropdown.css b/resources/styles/_modules/dropdown.css similarity index 100% rename from app/Resources/styles/dropdown.css rename to resources/styles/_modules/dropdown.css diff --git a/app/Resources/styles/fonts.css b/resources/styles/_modules/fonts.css similarity index 67% rename from app/Resources/styles/fonts.css rename to resources/styles/_modules/fonts.css index 68695229..f2d9aa00 100644 --- a/app/Resources/styles/fonts.css +++ b/resources/styles/_modules/fonts.css @@ -5,7 +5,7 @@ font-style: normal; font-weight: 400; font-display: swap; - src: url("/fonts/kumbh-sans-regular.woff2") format("woff2"); + src: url("/assets/fonts/kumbh-sans-regular.woff2") format("woff2"); } /* kumbh-sans-700 */ @@ -14,7 +14,7 @@ font-style: normal; font-weight: 700; font-display: swap; - src: url("/fonts/kumbh-sans-700.woff2") format("woff2"); + src: url("/assets/fonts/kumbh-sans-700.woff2") format("woff2"); } /* inter-regular */ @@ -23,7 +23,7 @@ font-style: normal; font-weight: 400; font-display: swap; - src: url("/fonts/inter-regular.woff2") format("woff2"); + src: url("/assets/fonts/inter-regular.woff2") format("woff2"); } /* inter-600 */ @@ -32,7 +32,7 @@ font-style: normal; font-weight: 600; font-display: swap; - src: url("/fonts/inter-600.woff2") format("woff2"); + src: url("/assets/fonts/inter-600.woff2") format("woff2"); } /* noto-sans-mono-regular */ @@ -41,6 +41,6 @@ font-style: normal; font-weight: 400; font-display: swap; - src: url("/fonts/noto-sans-mono-regular.woff2") format("woff2"); + src: url("/assets/fonts/noto-sans-mono-regular.woff2") format("woff2"); } } diff --git a/app/Resources/styles/formInputTabs.css b/resources/styles/_modules/formInputTabs.css similarity index 100% rename from app/Resources/styles/formInputTabs.css rename to resources/styles/_modules/formInputTabs.css diff --git a/app/Resources/styles/inputRange.css b/resources/styles/_modules/inputRange.css similarity index 100% rename from app/Resources/styles/inputRange.css rename to resources/styles/_modules/inputRange.css diff --git a/app/Resources/styles/radioBtn.css b/resources/styles/_modules/radioBtn.css similarity index 100% rename from app/Resources/styles/radioBtn.css rename to resources/styles/_modules/radioBtn.css diff --git a/app/Resources/styles/radioToggler.css b/resources/styles/_modules/radioToggler.css similarity index 100% rename from app/Resources/styles/radioToggler.css rename to resources/styles/_modules/radioToggler.css diff --git a/app/Resources/styles/readMore.css b/resources/styles/_modules/readMore.css similarity index 100% rename from app/Resources/styles/readMore.css rename to resources/styles/_modules/readMore.css diff --git a/app/Resources/styles/seeMore.css b/resources/styles/_modules/seeMore.css similarity index 100% rename from app/Resources/styles/seeMore.css rename to resources/styles/_modules/seeMore.css diff --git a/app/Resources/styles/stickyHeader.css b/resources/styles/_modules/stickyHeader.css similarity index 100% rename from app/Resources/styles/stickyHeader.css rename to resources/styles/_modules/stickyHeader.css diff --git a/app/Resources/styles/switch.css b/resources/styles/_modules/switch.css similarity index 100% rename from app/Resources/styles/switch.css rename to resources/styles/_modules/switch.css diff --git a/app/Resources/styles/tailwind.css b/resources/styles/_modules/tailwind.css similarity index 100% rename from app/Resources/styles/tailwind.css rename to resources/styles/_modules/tailwind.css diff --git a/resources/styles/admin.css b/resources/styles/admin.css new file mode 100644 index 00000000..bb90fa4b --- /dev/null +++ b/resources/styles/admin.css @@ -0,0 +1,17 @@ +@import url("./_modules/tailwind.css"); +@import url("./_modules/custom.css"); +@import url("./_modules/fonts.css"); +@import url("./_modules/colors.css"); +@import url("./_modules/breadcrumb.css"); +@import url("./_modules/dropdown.css"); +@import url("./_modules/choices.css"); +@import url("./_modules/radioBtn.css"); +@import url("./_modules/colorRadioBtn.css"); +@import url("./_modules/switch.css"); +@import url("./_modules/radioToggler.css"); +@import url("./_modules/formInputTabs.css"); +@import url("./_modules/stickyHeader.css"); +@import url("./_modules/readMore.css"); +@import url("./_modules/seeMore.css"); + +@config '../../tailwind.admin.config.js'; diff --git a/resources/styles/install.css b/resources/styles/install.css new file mode 100644 index 00000000..e14d0dc0 --- /dev/null +++ b/resources/styles/install.css @@ -0,0 +1,17 @@ +@import url("./_modules/tailwind.css"); +@import url("./_modules/custom.css"); +@import url("./_modules/fonts.css"); +@import url("./_modules/colors.css"); +@import url("./_modules/breadcrumb.css"); +@import url("./_modules/dropdown.css"); +@import url("./_modules/choices.css"); +@import url("./_modules/radioBtn.css"); +@import url("./_modules/colorRadioBtn.css"); +@import url("./_modules/switch.css"); +@import url("./_modules/radioToggler.css"); +@import url("./_modules/formInputTabs.css"); +@import url("./_modules/stickyHeader.css"); +@import url("./_modules/readMore.css"); +@import url("./_modules/seeMore.css"); + +@config '../../tailwind.install.config.js'; diff --git a/resources/styles/site.css b/resources/styles/site.css new file mode 100644 index 00000000..c5e54f99 --- /dev/null +++ b/resources/styles/site.css @@ -0,0 +1,17 @@ +@import url("./_modules/tailwind.css"); +@import url("./_modules/custom.css"); +@import url("./_modules/fonts.css"); +@import url("./_modules/colors.css"); +@import url("./_modules/breadcrumb.css"); +@import url("./_modules/dropdown.css"); +@import url("./_modules/choices.css"); +@import url("./_modules/radioBtn.css"); +@import url("./_modules/colorRadioBtn.css"); +@import url("./_modules/switch.css"); +@import url("./_modules/radioToggler.css"); +@import url("./_modules/formInputTabs.css"); +@import url("./_modules/stickyHeader.css"); +@import url("./_modules/readMore.css"); +@import url("./_modules/seeMore.css"); + +@config '../../tailwind.config.js'; diff --git a/spark b/spark index 6987fac0..bd996920 100644 --- a/spark +++ b/spark @@ -37,12 +37,12 @@ if (str_starts_with(PHP_SAPI, 'cgi')) { *--------------------------------------------------------------- */ -$minPhpVersion = '8.3'; // If you update this, don't forget to update `public/index.php`. +$minPhpVersion = '8.4'; // If you update this, don't forget to update `public/index.php`. if (version_compare(PHP_VERSION, $minPhpVersion, '<')) { $message = sprintf( 'Your PHP version must be %s or higher to run CodeIgniter. Current version: %s', $minPhpVersion, - PHP_VERSION + PHP_VERSION, ); exit($message); diff --git a/tailwind.config.cjs b/tailwind.admin.config.js similarity index 91% rename from tailwind.config.cjs rename to tailwind.admin.config.js index 6b4e1a8c..f6d4fea4 100644 --- a/tailwind.config.cjs +++ b/tailwind.admin.config.js @@ -1,15 +1,15 @@ -/* eslint-disable */ -const defaultTheme = require("tailwindcss/defaultTheme"); -const { transform } = require("typescript"); +import defaultTheme from "tailwindcss/defaultTheme"; +import tailwindForms from "@tailwindcss/forms"; +import tailwindTypography from "@tailwindcss/typography"; /** @type {import('tailwindcss').Config} */ -module.exports = { +export default { content: [ "./app/Views/**/*.php", - "./modules/**/Views/**/*.php", - "./themes/**/*.php", + "./themes/cp_admin/**/*.php", + "./themes/cp_auth/**/*.php", "./app/Helpers/*.php", - "./app/Resources/**/*.ts", + "./resources/**/*.ts", ], theme: { extend: { @@ -101,18 +101,6 @@ module.exports = { 800: "#00564A", 900: "#003D0B", }, - rose: { - 50: "#fcf9f8", - 100: "#fdeef2", - 200: "#fbcfe4", - 300: "#faa7cd", - 400: "#fb6ea5", - 500: "#fc437c", - 600: "#f24664", - 700: "#dd1f47", - 800: "#b21a39", - 900: "#8e162e", - }, }, gridTemplateColumns: { admin: "300px calc(100% - 300px)", @@ -179,5 +167,5 @@ module.exports = { }, }, variants: {}, - plugins: [require("@tailwindcss/forms"), require("@tailwindcss/typography")], + plugins: [tailwindForms, tailwindTypography], }; diff --git a/tailwind.config.js b/tailwind.config.js new file mode 100644 index 00000000..42ba73eb --- /dev/null +++ b/tailwind.config.js @@ -0,0 +1,159 @@ +import defaultTheme from "tailwindcss/defaultTheme"; +import tailwindForms from "@tailwindcss/forms"; +import tailwindTypography from "@tailwindcss/typography"; + +/** @type {import('tailwindcss').Config} */ +export default { + content: [ + "./app/Views/**/*.php", + "./modules/**/Views/**/*.php", + "./themes/cp_app/**/*.php", + "./app/Helpers/*.php", + "./resources/**/*.ts", + ], + theme: { + extend: { + content: { + chevronRightIcon: + "url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23ffffff' viewBox='0 0 24 24'%3E%3Cpath d='M13.17 12 8.22 7.05l1.42-1.41L16 12l-6.36 6.36-1.42-1.41L13.17 12Z'/%3E%3C/svg%3E%0A\")", + prohibitedIcon: + "url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23ffffff' viewBox='0 0 24 24'%3E%3Cpath d='M7.0943 5.68009L18.3199 16.9057C19.3736 15.5506 20 13.8491 20 12C20 7.58172 16.4183 4 12 4C10.1509 4 8.44939 4.62644 7.0943 5.68009ZM16.9057 18.3199L5.68009 7.0943C4.62644 8.44939 4 10.1509 4 12C4 16.4183 7.58172 20 12 20C13.8491 20 15.5506 19.3736 16.9057 18.3199ZM4.92893 4.92893C6.73748 3.12038 9.23885 2 12 2C17.5228 2 22 6.47715 22 12C22 14.7611 20.8796 17.2625 19.0711 19.0711C17.2625 20.8796 14.7611 22 12 22C6.47715 22 2 17.5228 2 12C2 9.23885 3.12038 6.73748 4.92893 4.92893Z'/%3E%3C/svg%3E%0A\")", + }, + fontFamily: { + sans: ["Inter", ...defaultTheme.fontFamily.sans], + display: ["Kumbh Sans", ...defaultTheme.fontFamily.sans], + mono: ["Noto Sans Mono", ...defaultTheme.fontFamily.mono], + }, + textDecorationThickness: { + 3: "3px", + }, + textColor: { + skin: { + base: "hsl(var(--color-text-base) / )", + muted: "hsl(var(--color-text-muted) / )", + }, + accent: { + base: "hsl(var(--color-accent-base) / )", + hover: "hsl(var(--color-accent-hover) / )", + muted: "hsl(var(--color-accent-muted) / )", + contrast: "hsl(var(--color-accent-contrast) / )", + }, + }, + backgroundColor: { + base: "hsl(var(--color-background-base) / )", + elevated: "hsl(var(--color-background-elevated) / )", + subtle: "hsl(var(--color-border-subtle) / )", + navigation: "hsl(var(--color-background-navigation) / )", + "navigation-active": + "hsl(var(--color-background-navigation-active) / )", + backdrop: "hsl(var(--color-background-backdrop) / )", + header: "hsl(var(--color-background-header) / )", + accent: { + base: "hsl(var(--color-accent-base) / )", + hover: "hsl(var(--color-accent-hover) / )", + }, + highlight: "hsl(var(--color-background-highlight) / )", + }, + borderColor: { + subtle: "hsl(var(--color-border-subtle) / )", + contrast: "hsl(var(--color-border-contrast) / )", + navigation: "hsl(var(--color-border-navigation) / )", + "navigation-bg": + "hsl(var(--color-background-navigation) / )", + accent: { + base: "hsl(var(--color-accent-base) / )", + hover: "hsl(var(--color-accent-hover) / )", + }, + background: { + base: "hsl(var(--color-background-base) / )", + elevated: "hsl(var(--color-background-elevated) / )", + }, + }, + ringColor: { + contrast: "hsl(var(--color-border-contrast) / )", + background: { + base: "hsl(var(--color-background-base) / )", + elevated: "hsl(var(--color-background-elevated) / )", + }, + }, + colors: { + accent: { + base: "hsl(var(--color-accent-base) / )", + hover: "hsl(var(--color-accent-hover) / )", + }, + background: { + header: "hsl(var(--color-background-header) / )", + base: "hsl(var(--color-background-base) / )", + }, + heading: { + foreground: "hsl(var(--color-heading-foreground) / )", + background: "hsl(var(--color-heading-background) / )", + }, + pine: { + 50: "#F2FAF9", + 100: "#E7F9E4", + 200: "#bfe4e1", + 300: "#99d4cf", + 400: "#4db4aa", + 500: "#009486", + 600: "#008579", + 700: "#006D60", + 800: "#00564A", + 900: "#003D0B", + }, + }, + gridTemplateColumns: { + admin: "300px calc(100% - 300px)", + podcast: "1fr minmax(auto, 960px) 1fr", + podcastMain: "1fr minmax(200px, 300px)", + cards: "repeat(auto-fill, minmax(14rem, 1fr))", + latestEpisodes: "repeat(5, 1fr)", + colorButtons: "repeat(auto-fill, minmax(4rem, 1fr))", + platforms: "repeat(auto-fill, minmax(18rem, 1fr))", + plugins: "repeat(auto-fill, minmax(20rem, 1fr))", + radioGroup: "repeat(auto-fit, minmax(14rem, 1fr))", + }, + gridTemplateRows: { + admin: "40px 1fr", + }, + borderWidth: { + 3: "3px", + }, + ringWidth: { + 3: "3px", + }, + typography: { + DEFAULT: { + css: { + a: { + textDecoration: "underline", + fontWeight: 600, + "&:hover": { + textDecoration: "none", + }, + }, + input: { + margin: 0, + }, + }, + }, + sm: { + css: { + a: { + textDecoration: "underline", + fontWeight: 600, + "&:hover": { + textDecoration: "none", + }, + }, + }, + }, + }, + zIndex: { + 60: 60, + }, + }, + }, + variants: {}, + plugins: [tailwindForms, tailwindTypography], +}; diff --git a/tailwind.install.config.js b/tailwind.install.config.js new file mode 100644 index 00000000..3313dcee --- /dev/null +++ b/tailwind.install.config.js @@ -0,0 +1,106 @@ +import defaultTheme from "tailwindcss/defaultTheme"; +import tailwindForms from "@tailwindcss/forms"; + +/** @type {import('tailwindcss').Config} */ +export default { + content: [ + "./app/Views/**/*.php", + "./themes/cp_install/**/*.php", + "./resources/**/*.ts", + ], + theme: { + extend: { + fontFamily: { + sans: ["Inter", ...defaultTheme.fontFamily.sans], + display: ["Kumbh Sans", ...defaultTheme.fontFamily.sans], + mono: ["Noto Sans Mono", ...defaultTheme.fontFamily.mono], + }, + textDecorationThickness: { + 3: "3px", + }, + textColor: { + skin: { + base: "hsl(var(--color-text-base) / )", + muted: "hsl(var(--color-text-muted) / )", + }, + accent: { + base: "hsl(var(--color-accent-base) / )", + hover: "hsl(var(--color-accent-hover) / )", + muted: "hsl(var(--color-accent-muted) / )", + contrast: "hsl(var(--color-accent-contrast) / )", + }, + }, + backgroundColor: { + base: "hsl(var(--color-background-base) / )", + elevated: "hsl(var(--color-background-elevated) / )", + subtle: "hsl(var(--color-border-subtle) / )", + navigation: "hsl(var(--color-background-navigation) / )", + "navigation-active": + "hsl(var(--color-background-navigation-active) / )", + backdrop: "hsl(var(--color-background-backdrop) / )", + header: "hsl(var(--color-background-header) / )", + accent: { + base: "hsl(var(--color-accent-base) / )", + hover: "hsl(var(--color-accent-hover) / )", + }, + highlight: "hsl(var(--color-background-highlight) / )", + }, + borderColor: { + subtle: "hsl(var(--color-border-subtle) / )", + contrast: "hsl(var(--color-border-contrast) / )", + navigation: "hsl(var(--color-border-navigation) / )", + "navigation-bg": + "hsl(var(--color-background-navigation) / )", + accent: { + base: "hsl(var(--color-accent-base) / )", + hover: "hsl(var(--color-accent-hover) / )", + }, + background: { + base: "hsl(var(--color-background-base) / )", + elevated: "hsl(var(--color-background-elevated) / )", + }, + }, + ringColor: { + contrast: "hsl(var(--color-border-contrast) / )", + background: { + base: "hsl(var(--color-background-base) / )", + elevated: "hsl(var(--color-background-elevated) / )", + }, + }, + colors: { + accent: { + base: "hsl(var(--color-accent-base) / )", + hover: "hsl(var(--color-accent-hover) / )", + }, + background: { + header: "hsl(var(--color-background-header) / )", + base: "hsl(var(--color-background-base) / )", + }, + heading: { + foreground: "hsl(var(--color-heading-foreground) / )", + background: "hsl(var(--color-heading-background) / )", + }, + pine: { + 50: "#F2FAF9", + 100: "#E7F9E4", + 200: "#bfe4e1", + 300: "#99d4cf", + 400: "#4db4aa", + 500: "#009486", + 600: "#008579", + 700: "#006D60", + 800: "#00564A", + 900: "#003D0B", + }, + }, + borderWidth: { + 3: "3px", + }, + ringWidth: { + 3: "3px", + }, + }, + }, + variants: {}, + plugins: [tailwindForms], +}; diff --git a/tests/modules/Api/Rest/V1/EpisodeTest.php b/tests/modules/Api/Rest/V1/EpisodeTest.php index 5dfd9c52..990652f7 100644 --- a/tests/modules/Api/Rest/V1/EpisodeTest.php +++ b/tests/modules/Api/Rest/V1/EpisodeTest.php @@ -99,7 +99,7 @@ class EpisodeTest extends CIUnitTestCase 'messages' => [ 'error' => 'Episode not found', ], - ] + ], ); $result->assertHeader('Content-Type', 'application/json; charset=UTF-8'); } diff --git a/tests/modules/Api/Rest/V1/PodcastTest.php b/tests/modules/Api/Rest/V1/PodcastTest.php index 5c17bba8..cdf5a446 100644 --- a/tests/modules/Api/Rest/V1/PodcastTest.php +++ b/tests/modules/Api/Rest/V1/PodcastTest.php @@ -98,7 +98,7 @@ class PodcastTest extends CIUnitTestCase 'messages' => [ 'error' => 'Podcast not found', ], - ] + ], ); $result->assertHeader('Content-Type', 'application/json; charset=UTF-8'); } diff --git a/tests/modules/Plugins/PluginsTest.php b/tests/modules/Plugins/PluginsTest.php index 3e087131..4594bbbe 100644 --- a/tests/modules/Plugins/PluginsTest.php +++ b/tests/modules/Plugins/PluginsTest.php @@ -118,18 +118,18 @@ final class PluginsTest extends CIUnitTestCase $this->assertEquals( (string) $head, ' foo foo ' + ', ); } diff --git a/tests/unit/HealthTest.php b/tests/unit/HealthTest.php index 86da3268..0c2dd382 100644 --- a/tests/unit/HealthTest.php +++ b/tests/unit/HealthTest.php @@ -34,7 +34,7 @@ final class HealthTest extends CIUnitTestCase $config = new App(); $this->assertTrue( $validation->check($config->baseURL, 'valid_url_strict'), - 'baseURL "' . $config->baseURL . '" in .env is not valid URL' + 'baseURL "' . $config->baseURL . '" in .env is not valid URL', ); } @@ -45,7 +45,7 @@ final class HealthTest extends CIUnitTestCase // BaseURL in app/Config/App.php is a valid URL? $this->assertTrue( $validation->check($reader->baseURL, 'valid_url_strict'), - 'baseURL "' . $reader->baseURL . '" in app/Config/App.php is not valid URL' + 'baseURL "' . $reader->baseURL . '" in app/Config/App.php is not valid URL', ); } } diff --git a/themes/cp_admin/_layout.php b/themes/cp_admin/_layout.php index 84e08b61..6f78c843 100644 --- a/themes/cp_admin/_layout.php +++ b/themes/cp_admin/_layout.php @@ -8,12 +8,7 @@ $isEpisodeArea = isset($podcast) && isset($episode); -appendRawContent(service('vite')->asset('styles/index.css', 'css')) - ->appendRawContent(service('vite')->asset('js/admin.ts', 'js')) - ->appendRawContent(service('vite')->asset('js/admin-audio-player.ts', 'js')) -?> + include('_partials/_nav_header') ?> diff --git a/themes/cp_admin/episode/list.php b/themes/cp_admin/episode/list.php index 0662e8e7..a9055b29 100644 --- a/themes/cp_admin/episode/list.php +++ b/themes/cp_admin/episode/list.php @@ -85,7 +85,7 @@ data_table( return publication_pill( $episode->published_at, $episode->publication_status, - 'text-sm' + 'text-sm', ); }, ], @@ -166,7 +166,7 @@ data_table( ], $episodes, 'mb-6 mt-4', - $podcast + $podcast, ) ?> links() ?> diff --git a/themes/cp_admin/episode/persons.php b/themes/cp_admin/episode/persons.php index d08b8b35..0a182c70 100644 --- a/themes/cp_admin/episode/persons.php +++ b/themes/cp_admin/episode/persons.php @@ -88,7 +88,7 @@ ], ], $episode->persons, - 'max-w-xl mt-6' + 'max-w-xl mt-6', ) ?> endSection() ?> diff --git a/themes/cp_admin/episode/video_clips_list.php b/themes/cp_admin/episode/video_clips_list.php index f837630c..b6fa6958 100644 --- a/themes/cp_admin/episode/video_clips_list.php +++ b/themes/cp_admin/episode/video_clips_list.php @@ -127,7 +127,7 @@ use CodeIgniter\I18n\Time; ], ], $videoClips, - 'mb-6' + 'mb-6', ) ?> links() ?> diff --git a/themes/cp_admin/fediverse/blocked_actors.php b/themes/cp_admin/fediverse/blocked_actors.php index 48c9d4ee..7232de3d 100644 --- a/themes/cp_admin/fediverse/blocked_actors.php +++ b/themes/cp_admin/fediverse/blocked_actors.php @@ -42,7 +42,7 @@ ], ], $blockedActors, - 'mt-8' + 'mt-8', ) ?> diff --git a/themes/cp_admin/fediverse/blocked_domains.php b/themes/cp_admin/fediverse/blocked_domains.php index 8eb037cf..51a2049b 100644 --- a/themes/cp_admin/fediverse/blocked_domains.php +++ b/themes/cp_admin/fediverse/blocked_domains.php @@ -41,7 +41,7 @@ ], ], $blockedDomains, - 'mt-8' + 'mt-8', ) ?> endSection() ?> diff --git a/themes/cp_admin/import/_queue_table.php b/themes/cp_admin/import/_queue_table.php index f187af3e..742fd10b 100644 --- a/themes/cp_admin/import/_queue_table.php +++ b/themes/cp_admin/import/_queue_table.php @@ -142,5 +142,5 @@ use Modules\PodcastImport\Entities\TaskStatus; }, ], ], - $podcastImportsQueue + $podcastImportsQueue, ) ?> diff --git a/themes/cp_admin/podcast/persons.php b/themes/cp_admin/podcast/persons.php index b3f8c8a0..a14745b8 100644 --- a/themes/cp_admin/podcast/persons.php +++ b/themes/cp_admin/podcast/persons.php @@ -86,7 +86,7 @@ ], ], $podcast->persons, - 'max-w-xl mt-6' + 'max-w-xl mt-6', ) ?> endSection() ?> \ No newline at end of file diff --git a/themes/cp_app/episode/_layout-preview.php b/themes/cp_app/episode/_layout-preview.php index f39178fa..b9a043b8 100644 --- a/themes/cp_app/episode/_layout-preview.php +++ b/themes/cp_app/episode/_layout-preview.php @@ -4,41 +4,10 @@ - - - - - - - - - - - - [<?= lang('Episode.preview.title') ?>] <?= $episode->title ?> - - - ' /> - asset('styles/index.css', 'css') ?> - asset('js/app.ts', 'js') ?> - asset('js/podcast.ts', 'js') ?> - asset('js/audio-player.ts', 'js') ?> - + + ->get('App.theme') ?>">
include('_admin_navbar') ?> diff --git a/themes/cp_app/episode/_layout.php b/themes/cp_app/episode/_layout.php index 27dbc413..849ae8f0 100644 --- a/themes/cp_app/episode/_layout.php +++ b/themes/cp_app/episode/_layout.php @@ -4,12 +4,7 @@ -appendRawContent(service('vite')->asset('styles/index.css', 'css')) - ->appendRawContent(service('vite')->asset('js/app.ts', 'js')) - ->appendRawContent(service('vite')->asset('js/podcast.ts', 'js')) - ->appendRawContent(service('vite')->asset('js/audio-player.ts', 'js')) -?> + diff --git a/themes/cp_app/episode/_partials/comment_actions.php b/themes/cp_app/episode/_partials/comment_actions.php index aac00248..baafac99 100644 --- a/themes/cp_app/episode/_partials/comment_actions.php +++ b/themes/cp_app/episode/_partials/comment_actions.php @@ -22,7 +22,7 @@ ]), [ 'class' => 'inline-flex items-center text-xs hover:underline', - ] + ], ) ?> @@ -44,7 +44,7 @@ ]), [ 'class' => 'inline-flex items-center text-xs hover:underline', - ] + ], ) ?> diff --git a/themes/cp_app/episode/_partials/comment_actions_from_post.php b/themes/cp_app/episode/_partials/comment_actions_from_post.php index a1f7f5ab..7ab2f4d7 100644 --- a/themes/cp_app/episode/_partials/comment_actions_from_post.php +++ b/themes/cp_app/episode/_partials/comment_actions_from_post.php @@ -22,7 +22,7 @@ ]), [ 'class' => 'inline-flex items-center text-xs hover:underline', - ] + ], ) ?> @@ -50,7 +50,7 @@ ]), [ 'class' => 'inline-flex items-center text-xs hover:underline', - ] + ], ) ?> diff --git a/themes/cp_app/home.php b/themes/cp_app/home.php index ac08f0d2..bd47be02 100644 --- a/themes/cp_app/home.php +++ b/themes/cp_app/home.php @@ -50,7 +50,7 @@ 'uri' => route_to('home') . '?sort=created_asc', 'class' => $sortBy === 'created_asc' ? 'font-semibold' : '', ], - ]) + ]), ) ?>" />
diff --git a/themes/cp_app/pages/credits.php b/themes/cp_app/pages/credits.php index a7eae511..35bfda9d 100644 --- a/themes/cp_app/pages/credits.php +++ b/themes/cp_app/pages/credits.php @@ -9,7 +9,6 @@ 'siteName' => esc(service('settings') ->get('App.siteName')), ])) - ->appendRawContent(service('vite')->asset('styles/index.css', 'css')) ?> -appendRawContent(service('vite')->asset('styles/index.css', 'css')) - ->appendRawContent(service('vite')->asset('js/app.ts', 'js')) - ->appendRawContent(service('vite')->asset('js/podcast.ts', 'js')) - ->appendRawContent(service('vite')->asset('js/audio-player.ts', 'js')) -?> + diff --git a/themes/cp_app/podcast/activity.php b/themes/cp_app/podcast/activity.php index db1dbe2f..8d6c21f8 100644 --- a/themes/cp_app/podcast/activity.php +++ b/themes/cp_app/podcast/activity.php @@ -6,7 +6,6 @@
- <?= esc(interact_as_actor()
         ->display_name) ?> diff --git a/themes/cp_app/podcast/unlock.php b/themes/cp_app/podcast/unlock.php index dd50ec5e..492c6d6e 100644 --- a/themes/cp_app/podcast/unlock.php +++ b/themes/cp_app/podcast/unlock.php @@ -4,32 +4,10 @@ - - - - - - - - - - ' /> - asset('styles/index.css', 'css') ?> - asset('js/app.ts', 'js') ?> - + + ->get('App.theme') ?>">
include('_admin_navbar') ?> diff --git a/themes/cp_auth/_layout.php b/themes/cp_auth/_layout.php index 42876ad2..b542c01c 100644 --- a/themes/cp_auth/_layout.php +++ b/themes/cp_auth/_layout.php @@ -5,8 +5,7 @@ title('Castopod Auth') - ->description('Castopod is an open-source hosting platform made for podcasters who want engage and interact with their audience.') - ->appendRawContent(service('vite')->asset('styles/index.css', 'css')); + ->description('Castopod is an open-source hosting platform made for podcasters who want engage and interact with their audience.'); ?> diff --git a/themes/cp_install/_layout.php b/themes/cp_install/_layout.php index 5b2f22d7..dd58580d 100644 --- a/themes/cp_install/_layout.php +++ b/themes/cp_install/_layout.php @@ -2,20 +2,7 @@ - - - - - <?= lang('Install.title') ?> - - - - - asset('styles/index.css', 'css') ?> - asset('js/install.ts', 'js') ?> - +title(lang('Install.title')) ?>
diff --git a/tsconfig.json b/tsconfig.json index b56093e0..1929331b 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -19,8 +19,8 @@ /* Module Resolution Options */ "moduleResolution": "node", - "baseUrl": "app/Resources/js" /* Base directory to resolve non-absolute module names. */ + "baseUrl": "resources/js" /* Base directory to resolve non-absolute module names. */ }, - "include": ["app/Resources/js/**/*.ts"], + "include": ["resources/js/**/*.ts"], "exclude": [] } diff --git a/vite.config.ts b/vite.config.ts index d4ef6993..099408ed 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -1,35 +1,41 @@ +import path from "path"; import { defineConfig } from "vite"; import { VitePWA } from "vite-plugin-pwa"; +import codeigniter from "vite-plugin-codeigniter"; -// https://vitejs.dev/config/ -export default defineConfig({ - root: "./app/Resources", - base: "/assets/", - build: { - outDir: "../../public/assets", - assetsDir: "", - manifest: true, - sourcemap: true, - rollupOptions: { - input: { - "admin-audio-player.ts": "app/Resources/js/admin-audio-player.ts", - "admin.ts": "app/Resources/js/admin.ts", - "app.ts": "app/Resources/js/app.ts", - "audio-player.ts": "app/Resources/js/audio-player.ts", - "charts.ts": "app/Resources/js/charts.ts", - "embed.ts": "app/Resources/js/embed.ts", - "error.ts": "app/Resources/js/error.ts", - "install.ts": "app/Resources/js/install.ts", - "map.ts": "app/Resources/js/map.ts", - "podcast.ts": "app/Resources/js/podcast.ts", - "styles/index.css": "app/Resources/styles/index.css", - }, +export default defineConfig(() => { + return { + server: { + host: true, + port: 5173, + strictPort: true, }, - }, - plugins: [ - VitePWA({ - manifest: false, - outDir: "../../public", - }), - ], + plugins: [ + codeigniter({ + imageVariants: [ + { + src: "images/castopod-banner-*.jpg", + sizes: { + "%NAME%_small.webp": 320, + "%NAME%_medium.webp": 960, + "%NAME%_federation.jpg": 1500, + }, + }, + { + src: "images/castopod-avatar.jpg", + sizes: { + "%NAME%_tiny.webp": 40, + "%NAME%_thumbnail.webp": 150, + "%NAME%_medium.webp": 320, + "%NAME%_federation.jpg": 400, + }, + }, + ], + }), + VitePWA({ + manifest: false, + outDir: path.resolve(__dirname, "public/assets"), + }), + ], + }; });