├── .cfignore ├── .claude ├── settings.local.json └── svelte5-runes-cheatsheet.md ├── .github ├── FUNDING.yml └── workflows │ ├── claude_code.yml │ ├── claude_code_login.yml │ ├── hetzner.yml │ ├── playwright.yml │ ├── update.yml │ └── worker-tests.yml ├── .gitignore ├── .prettierignore ├── .roo └── rules │ ├── meaningful_comments_only.md │ ├── svelte5_events.md │ ├── svelte5_reactivity.md │ ├── svelte5_runes.md │ ├── svelte_comments.md │ ├── sveltekit_imports_order.md │ └── sveltekit_request_event.md ├── .roomodes ├── CLAUDE.md ├── LICENSE ├── README.md ├── eslint.config.js ├── flake.lock ├── flake.nix ├── migrations ├── 0001_initial_schema.sql ├── 0002_add_vat_rate_to_alerts.sql ├── 0003_add_ipv4_cost_flag_to_alerts.sql ├── 0004_add_auctions_table.sql ├── 0005_add_alert_auction_matches_table.sql ├── 0006_change_alert_auction_matches_primary_key.sql ├── 0007_add_discord_webhook_support.sql ├── 0008_add_cloud_availability_alerts.sql ├── 0009_add_critical_performance_indices.sql ├── 0010_add_current_auctions_table.sql └── 0011_cleanup_historical_duplicates.sql ├── package.json ├── playwright.config.ts ├── postcss.config.js ├── renovate.json ├── scripts ├── dump.py ├── import.py ├── poetry.lock ├── purge.py ├── push.py └── pyproject.toml ├── src ├── app.css ├── app.d.ts ├── app.html ├── error.html ├── hooks.server.ts ├── index.test.ts ├── lib │ ├── api │ │ ├── backend │ │ │ ├── alerts.ts │ │ │ ├── auth.ts │ │ │ ├── cloud-alerts.ts │ │ │ ├── discord.ts │ │ │ ├── session.ts │ │ │ └── user.ts │ │ └── frontend │ │ │ ├── auctions.ts │ │ │ ├── configs.ts │ │ │ ├── dbapi.ts │ │ │ ├── filter.ts │ │ │ └── stats.ts │ ├── components │ │ ├── AlertAuctionsDrawer.svelte │ │ ├── AlertModal.svelte │ │ ├── AnimatedBackground.svelte │ │ ├── Banner.svelte │ │ ├── CloudAlertModal.svelte │ │ ├── CloudAvailabilityChart.svelte │ │ ├── DBLoadingProgress.svelte │ │ ├── FloatingActionButton.svelte │ │ ├── Footer.svelte │ │ ├── GenericChart.svelte │ │ ├── GroupControls.svelte │ │ ├── HetznerModal.svelte │ │ ├── Nav.svelte │ │ ├── OutdatedDataAlert.svelte │ │ ├── PriceControls.svelte │ │ ├── QuickStat.svelte │ │ ├── Radar.svelte │ │ ├── SampleCardStack.svelte │ │ ├── ServerCard.svelte │ │ ├── ServerDetailDrawer.svelte │ │ ├── ServerFactSheet.svelte │ │ ├── ServerFilter.svelte │ │ ├── ServerIcon.svelte │ │ ├── ServerList.svelte │ │ ├── ServerPriceChart.svelte │ │ ├── SortControls.svelte │ │ ├── Toast.svelte │ │ ├── Toolbar.svelte │ │ ├── VatSelector.svelte │ │ └── landing │ │ │ ├── CommunitySection.svelte │ │ │ ├── ContactSection.svelte │ │ │ ├── FAQSection.svelte │ │ │ ├── FeaturesSection.svelte │ │ │ ├── HeroSection.svelte │ │ │ ├── HowItWorksSection.svelte │ │ │ ├── LiveMetrics.svelte │ │ │ ├── OpenSourceSection.svelte │ │ │ └── TestimonialsSection.svelte │ ├── constants.ts │ ├── cookie.ts │ ├── currency.test.ts │ ├── currency.ts │ ├── disksize.ts │ ├── duckdb.ts │ ├── filter.test.ts │ ├── filter.ts │ ├── index.ts │ ├── mail.ts │ ├── session.ts │ ├── stores │ │ ├── fabStore.ts │ │ ├── filter.ts │ │ ├── session.ts │ │ ├── settings.test.ts │ │ ├── settings.ts │ │ └── toast.ts │ └── util.ts ├── routes │ ├── (authed) │ │ ├── +layout.server.ts │ │ ├── alerts │ │ │ ├── +page.server.ts │ │ │ ├── +page.svelte │ │ │ └── [alertId] │ │ │ │ └── auctions │ │ │ │ └── +server.ts │ │ ├── cloud-alerts │ │ │ ├── +server.ts │ │ │ └── [alertId] │ │ │ │ └── +server.ts │ │ └── settings │ │ │ ├── +page.server.ts │ │ │ ├── +page.svelte │ │ │ └── export │ │ │ └── +server.ts │ ├── +error.svelte │ ├── +layout.server.ts │ ├── +layout.svelte │ ├── +page.server.ts │ ├── +page.svelte │ ├── about │ │ └── +page.svelte │ ├── analyze │ │ ├── +page.server.ts │ │ └── +page.svelte │ ├── api │ │ └── cloud-status │ │ │ └── history │ │ │ └── +server.ts │ ├── auth │ │ ├── login │ │ │ ├── +page.server.ts │ │ │ └── +page.svelte │ │ └── logout │ │ │ ├── +page.server.ts │ │ │ └── +page.svelte │ ├── changelog │ │ └── +page.svelte │ ├── cloud-status │ │ ├── +page.server.ts │ │ └── +page.svelte │ ├── configurations │ │ └── +page.svelte │ ├── contact │ │ └── +page.svelte │ ├── privacy │ │ └── +page.svelte │ ├── sitemap.xml │ │ └── +server.ts │ ├── statistics │ │ └── +page.svelte │ └── terms │ │ └── +page.svelte └── stores │ └── db.ts ├── static ├── favicon.ico ├── favicon.png ├── images │ ├── code.webp │ ├── operator.webp │ ├── user1.webp │ ├── user2.webp │ └── user3.webp └── robots.txt ├── svelte.config.js ├── tailwind.config.ts ├── tests ├── advanced-filtering.spec.ts ├── analyze.spec.ts ├── auth-flow.spec.ts ├── auth.spec.ts ├── configurations.spec.ts ├── critical-ci.spec.ts ├── error-handling.spec.ts ├── fixtures.ts ├── landing.spec.ts ├── popularity.spec.ts ├── server-interactions.spec.ts └── sitemap.spec.ts ├── tsconfig.json ├── vite.config.ts ├── worker ├── .editorconfig ├── .gitignore ├── .prettierrc ├── .prettierrc.json ├── CLAUDE.md ├── eslint.config.js ├── package.json ├── src │ ├── __tests__ │ │ ├── alert-notification-service.test.ts │ │ ├── alert-service.test.ts │ │ ├── auction-data-transformer.test.ts │ │ ├── auction-db-service.test.ts │ │ ├── auction-service.test.ts │ │ ├── cloud-alert-service.test.ts │ │ ├── cloud-notification-service.test.ts │ │ ├── cloud-status-service.test.ts │ │ ├── fixtures │ │ │ ├── alert-data.ts │ │ │ ├── auction-data.ts │ │ │ ├── cloud-alert-data.ts │ │ │ ├── cloud-data.ts │ │ │ └── database-mocks.ts │ │ ├── hetzner-auction-client.test.ts │ │ ├── notification-channels.test.ts │ │ ├── notification-service.test.ts │ │ └── setup.ts │ ├── alert-service.ts │ ├── analytics-query-service.ts │ ├── auction-data-transformer.ts │ ├── auction-db-service.ts │ ├── auction-import-do.ts │ ├── auction-service.ts │ ├── cloud-alert-service.ts │ ├── cloud-availability-do.ts │ ├── cloud-notifications │ │ ├── cloud-discord-channel.ts │ │ ├── cloud-email-channel.ts │ │ ├── cloud-notification-channel.ts │ │ └── cloud-notification-service.ts │ ├── cloud-status-service.ts │ ├── hetzner-auction-client.ts │ ├── http-router.ts │ ├── index.ts │ ├── notification-service.ts │ └── notifications │ │ ├── alert-notification-service.ts │ │ ├── discord-channel.ts │ │ ├── email-channel.ts │ │ └── notification-channel.ts ├── tsconfig.json ├── vitest.config.ts ├── worker-configuration.d.ts └── wrangler.jsonc └── wrangler.jsonc /.cfignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/.cfignore -------------------------------------------------------------------------------- /.claude/settings.local.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/.claude/settings.local.json -------------------------------------------------------------------------------- /.claude/svelte5-runes-cheatsheet.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/.claude/svelte5-runes-cheatsheet.md -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/.github/FUNDING.yml -------------------------------------------------------------------------------- /.github/workflows/claude_code.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/.github/workflows/claude_code.yml -------------------------------------------------------------------------------- /.github/workflows/claude_code_login.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/.github/workflows/claude_code_login.yml -------------------------------------------------------------------------------- /.github/workflows/hetzner.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/.github/workflows/hetzner.yml -------------------------------------------------------------------------------- /.github/workflows/playwright.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/.github/workflows/playwright.yml -------------------------------------------------------------------------------- /.github/workflows/update.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/.github/workflows/update.yml -------------------------------------------------------------------------------- /.github/workflows/worker-tests.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/.github/workflows/worker-tests.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/.gitignore -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/.prettierignore -------------------------------------------------------------------------------- /.roo/rules/meaningful_comments_only.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/.roo/rules/meaningful_comments_only.md -------------------------------------------------------------------------------- /.roo/rules/svelte5_events.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/.roo/rules/svelte5_events.md -------------------------------------------------------------------------------- /.roo/rules/svelte5_reactivity.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/.roo/rules/svelte5_reactivity.md -------------------------------------------------------------------------------- /.roo/rules/svelte5_runes.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/.roo/rules/svelte5_runes.md -------------------------------------------------------------------------------- /.roo/rules/svelte_comments.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/.roo/rules/svelte_comments.md -------------------------------------------------------------------------------- /.roo/rules/sveltekit_imports_order.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/.roo/rules/sveltekit_imports_order.md -------------------------------------------------------------------------------- /.roo/rules/sveltekit_request_event.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/.roo/rules/sveltekit_request_event.md -------------------------------------------------------------------------------- /.roomodes: -------------------------------------------------------------------------------- 1 | { 2 | "customModes": [] 3 | } -------------------------------------------------------------------------------- /CLAUDE.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/CLAUDE.md -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/README.md -------------------------------------------------------------------------------- /eslint.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/eslint.config.js -------------------------------------------------------------------------------- /flake.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/flake.lock -------------------------------------------------------------------------------- /flake.nix: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/flake.nix -------------------------------------------------------------------------------- /migrations/0001_initial_schema.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/migrations/0001_initial_schema.sql -------------------------------------------------------------------------------- /migrations/0002_add_vat_rate_to_alerts.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/migrations/0002_add_vat_rate_to_alerts.sql -------------------------------------------------------------------------------- /migrations/0003_add_ipv4_cost_flag_to_alerts.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/migrations/0003_add_ipv4_cost_flag_to_alerts.sql -------------------------------------------------------------------------------- /migrations/0004_add_auctions_table.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/migrations/0004_add_auctions_table.sql -------------------------------------------------------------------------------- /migrations/0005_add_alert_auction_matches_table.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/migrations/0005_add_alert_auction_matches_table.sql -------------------------------------------------------------------------------- /migrations/0006_change_alert_auction_matches_primary_key.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/migrations/0006_change_alert_auction_matches_primary_key.sql -------------------------------------------------------------------------------- /migrations/0007_add_discord_webhook_support.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/migrations/0007_add_discord_webhook_support.sql -------------------------------------------------------------------------------- /migrations/0008_add_cloud_availability_alerts.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/migrations/0008_add_cloud_availability_alerts.sql -------------------------------------------------------------------------------- /migrations/0009_add_critical_performance_indices.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/migrations/0009_add_critical_performance_indices.sql -------------------------------------------------------------------------------- /migrations/0010_add_current_auctions_table.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/migrations/0010_add_current_auctions_table.sql -------------------------------------------------------------------------------- /migrations/0011_cleanup_historical_duplicates.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/migrations/0011_cleanup_historical_duplicates.sql -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/package.json -------------------------------------------------------------------------------- /playwright.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/playwright.config.ts -------------------------------------------------------------------------------- /postcss.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/postcss.config.js -------------------------------------------------------------------------------- /renovate.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/renovate.json -------------------------------------------------------------------------------- /scripts/dump.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/scripts/dump.py -------------------------------------------------------------------------------- /scripts/import.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/scripts/import.py -------------------------------------------------------------------------------- /scripts/poetry.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/scripts/poetry.lock -------------------------------------------------------------------------------- /scripts/purge.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/scripts/purge.py -------------------------------------------------------------------------------- /scripts/push.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/scripts/push.py -------------------------------------------------------------------------------- /scripts/pyproject.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/scripts/pyproject.toml -------------------------------------------------------------------------------- /src/app.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/app.css -------------------------------------------------------------------------------- /src/app.d.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/app.d.ts -------------------------------------------------------------------------------- /src/app.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/app.html -------------------------------------------------------------------------------- /src/error.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/error.html -------------------------------------------------------------------------------- /src/hooks.server.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/hooks.server.ts -------------------------------------------------------------------------------- /src/index.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/index.test.ts -------------------------------------------------------------------------------- /src/lib/api/backend/alerts.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/lib/api/backend/alerts.ts -------------------------------------------------------------------------------- /src/lib/api/backend/auth.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/lib/api/backend/auth.ts -------------------------------------------------------------------------------- /src/lib/api/backend/cloud-alerts.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/lib/api/backend/cloud-alerts.ts -------------------------------------------------------------------------------- /src/lib/api/backend/discord.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/lib/api/backend/discord.ts -------------------------------------------------------------------------------- /src/lib/api/backend/session.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/lib/api/backend/session.ts -------------------------------------------------------------------------------- /src/lib/api/backend/user.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/lib/api/backend/user.ts -------------------------------------------------------------------------------- /src/lib/api/frontend/auctions.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/lib/api/frontend/auctions.ts -------------------------------------------------------------------------------- /src/lib/api/frontend/configs.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/lib/api/frontend/configs.ts -------------------------------------------------------------------------------- /src/lib/api/frontend/dbapi.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/lib/api/frontend/dbapi.ts -------------------------------------------------------------------------------- /src/lib/api/frontend/filter.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/lib/api/frontend/filter.ts -------------------------------------------------------------------------------- /src/lib/api/frontend/stats.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/lib/api/frontend/stats.ts -------------------------------------------------------------------------------- /src/lib/components/AlertAuctionsDrawer.svelte: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/lib/components/AlertAuctionsDrawer.svelte -------------------------------------------------------------------------------- /src/lib/components/AlertModal.svelte: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/lib/components/AlertModal.svelte -------------------------------------------------------------------------------- /src/lib/components/AnimatedBackground.svelte: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/lib/components/AnimatedBackground.svelte -------------------------------------------------------------------------------- /src/lib/components/Banner.svelte: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/lib/components/Banner.svelte -------------------------------------------------------------------------------- /src/lib/components/CloudAlertModal.svelte: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/lib/components/CloudAlertModal.svelte -------------------------------------------------------------------------------- /src/lib/components/CloudAvailabilityChart.svelte: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/lib/components/CloudAvailabilityChart.svelte -------------------------------------------------------------------------------- /src/lib/components/DBLoadingProgress.svelte: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/lib/components/DBLoadingProgress.svelte -------------------------------------------------------------------------------- /src/lib/components/FloatingActionButton.svelte: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/lib/components/FloatingActionButton.svelte -------------------------------------------------------------------------------- /src/lib/components/Footer.svelte: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/lib/components/Footer.svelte -------------------------------------------------------------------------------- /src/lib/components/GenericChart.svelte: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/lib/components/GenericChart.svelte -------------------------------------------------------------------------------- /src/lib/components/GroupControls.svelte: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/lib/components/GroupControls.svelte -------------------------------------------------------------------------------- /src/lib/components/HetznerModal.svelte: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/lib/components/HetznerModal.svelte -------------------------------------------------------------------------------- /src/lib/components/Nav.svelte: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/lib/components/Nav.svelte -------------------------------------------------------------------------------- /src/lib/components/OutdatedDataAlert.svelte: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/lib/components/OutdatedDataAlert.svelte -------------------------------------------------------------------------------- /src/lib/components/PriceControls.svelte: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/lib/components/PriceControls.svelte -------------------------------------------------------------------------------- /src/lib/components/QuickStat.svelte: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/lib/components/QuickStat.svelte -------------------------------------------------------------------------------- /src/lib/components/Radar.svelte: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/lib/components/Radar.svelte -------------------------------------------------------------------------------- /src/lib/components/SampleCardStack.svelte: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/lib/components/SampleCardStack.svelte -------------------------------------------------------------------------------- /src/lib/components/ServerCard.svelte: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/lib/components/ServerCard.svelte -------------------------------------------------------------------------------- /src/lib/components/ServerDetailDrawer.svelte: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/lib/components/ServerDetailDrawer.svelte -------------------------------------------------------------------------------- /src/lib/components/ServerFactSheet.svelte: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/lib/components/ServerFactSheet.svelte -------------------------------------------------------------------------------- /src/lib/components/ServerFilter.svelte: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/lib/components/ServerFilter.svelte -------------------------------------------------------------------------------- /src/lib/components/ServerIcon.svelte: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/lib/components/ServerIcon.svelte -------------------------------------------------------------------------------- /src/lib/components/ServerList.svelte: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/lib/components/ServerList.svelte -------------------------------------------------------------------------------- /src/lib/components/ServerPriceChart.svelte: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/lib/components/ServerPriceChart.svelte -------------------------------------------------------------------------------- /src/lib/components/SortControls.svelte: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/lib/components/SortControls.svelte -------------------------------------------------------------------------------- /src/lib/components/Toast.svelte: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/lib/components/Toast.svelte -------------------------------------------------------------------------------- /src/lib/components/Toolbar.svelte: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/lib/components/Toolbar.svelte -------------------------------------------------------------------------------- /src/lib/components/VatSelector.svelte: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/lib/components/VatSelector.svelte -------------------------------------------------------------------------------- /src/lib/components/landing/CommunitySection.svelte: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/lib/components/landing/CommunitySection.svelte -------------------------------------------------------------------------------- /src/lib/components/landing/ContactSection.svelte: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/lib/components/landing/ContactSection.svelte -------------------------------------------------------------------------------- /src/lib/components/landing/FAQSection.svelte: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/lib/components/landing/FAQSection.svelte -------------------------------------------------------------------------------- /src/lib/components/landing/FeaturesSection.svelte: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/lib/components/landing/FeaturesSection.svelte -------------------------------------------------------------------------------- /src/lib/components/landing/HeroSection.svelte: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/lib/components/landing/HeroSection.svelte -------------------------------------------------------------------------------- /src/lib/components/landing/HowItWorksSection.svelte: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/lib/components/landing/HowItWorksSection.svelte -------------------------------------------------------------------------------- /src/lib/components/landing/LiveMetrics.svelte: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/lib/components/landing/LiveMetrics.svelte -------------------------------------------------------------------------------- /src/lib/components/landing/OpenSourceSection.svelte: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/lib/components/landing/OpenSourceSection.svelte -------------------------------------------------------------------------------- /src/lib/components/landing/TestimonialsSection.svelte: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/lib/components/landing/TestimonialsSection.svelte -------------------------------------------------------------------------------- /src/lib/constants.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/lib/constants.ts -------------------------------------------------------------------------------- /src/lib/cookie.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/lib/cookie.ts -------------------------------------------------------------------------------- /src/lib/currency.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/lib/currency.test.ts -------------------------------------------------------------------------------- /src/lib/currency.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/lib/currency.ts -------------------------------------------------------------------------------- /src/lib/disksize.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/lib/disksize.ts -------------------------------------------------------------------------------- /src/lib/duckdb.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/lib/duckdb.ts -------------------------------------------------------------------------------- /src/lib/filter.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/lib/filter.test.ts -------------------------------------------------------------------------------- /src/lib/filter.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/lib/filter.ts -------------------------------------------------------------------------------- /src/lib/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/lib/index.ts -------------------------------------------------------------------------------- /src/lib/mail.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/lib/mail.ts -------------------------------------------------------------------------------- /src/lib/session.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/lib/session.ts -------------------------------------------------------------------------------- /src/lib/stores/fabStore.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/lib/stores/fabStore.ts -------------------------------------------------------------------------------- /src/lib/stores/filter.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/lib/stores/filter.ts -------------------------------------------------------------------------------- /src/lib/stores/session.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/lib/stores/session.ts -------------------------------------------------------------------------------- /src/lib/stores/settings.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/lib/stores/settings.test.ts -------------------------------------------------------------------------------- /src/lib/stores/settings.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/lib/stores/settings.ts -------------------------------------------------------------------------------- /src/lib/stores/toast.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/lib/stores/toast.ts -------------------------------------------------------------------------------- /src/lib/util.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/lib/util.ts -------------------------------------------------------------------------------- /src/routes/(authed)/+layout.server.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/routes/(authed)/+layout.server.ts -------------------------------------------------------------------------------- /src/routes/(authed)/alerts/+page.server.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/routes/(authed)/alerts/+page.server.ts -------------------------------------------------------------------------------- /src/routes/(authed)/alerts/+page.svelte: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/routes/(authed)/alerts/+page.svelte -------------------------------------------------------------------------------- /src/routes/(authed)/alerts/[alertId]/auctions/+server.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/routes/(authed)/alerts/[alertId]/auctions/+server.ts -------------------------------------------------------------------------------- /src/routes/(authed)/cloud-alerts/+server.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/routes/(authed)/cloud-alerts/+server.ts -------------------------------------------------------------------------------- /src/routes/(authed)/cloud-alerts/[alertId]/+server.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/routes/(authed)/cloud-alerts/[alertId]/+server.ts -------------------------------------------------------------------------------- /src/routes/(authed)/settings/+page.server.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/routes/(authed)/settings/+page.server.ts -------------------------------------------------------------------------------- /src/routes/(authed)/settings/+page.svelte: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/routes/(authed)/settings/+page.svelte -------------------------------------------------------------------------------- /src/routes/(authed)/settings/export/+server.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/routes/(authed)/settings/export/+server.ts -------------------------------------------------------------------------------- /src/routes/+error.svelte: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/routes/+error.svelte -------------------------------------------------------------------------------- /src/routes/+layout.server.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/routes/+layout.server.ts -------------------------------------------------------------------------------- /src/routes/+layout.svelte: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/routes/+layout.svelte -------------------------------------------------------------------------------- /src/routes/+page.server.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/routes/+page.server.ts -------------------------------------------------------------------------------- /src/routes/+page.svelte: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/routes/+page.svelte -------------------------------------------------------------------------------- /src/routes/about/+page.svelte: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/routes/about/+page.svelte -------------------------------------------------------------------------------- /src/routes/analyze/+page.server.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/routes/analyze/+page.server.ts -------------------------------------------------------------------------------- /src/routes/analyze/+page.svelte: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/routes/analyze/+page.svelte -------------------------------------------------------------------------------- /src/routes/api/cloud-status/history/+server.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/routes/api/cloud-status/history/+server.ts -------------------------------------------------------------------------------- /src/routes/auth/login/+page.server.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/routes/auth/login/+page.server.ts -------------------------------------------------------------------------------- /src/routes/auth/login/+page.svelte: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/routes/auth/login/+page.svelte -------------------------------------------------------------------------------- /src/routes/auth/logout/+page.server.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/routes/auth/logout/+page.server.ts -------------------------------------------------------------------------------- /src/routes/auth/logout/+page.svelte: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/routes/auth/logout/+page.svelte -------------------------------------------------------------------------------- /src/routes/changelog/+page.svelte: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/routes/changelog/+page.svelte -------------------------------------------------------------------------------- /src/routes/cloud-status/+page.server.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/routes/cloud-status/+page.server.ts -------------------------------------------------------------------------------- /src/routes/cloud-status/+page.svelte: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/routes/cloud-status/+page.svelte -------------------------------------------------------------------------------- /src/routes/configurations/+page.svelte: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/routes/configurations/+page.svelte -------------------------------------------------------------------------------- /src/routes/contact/+page.svelte: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/routes/contact/+page.svelte -------------------------------------------------------------------------------- /src/routes/privacy/+page.svelte: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/routes/privacy/+page.svelte -------------------------------------------------------------------------------- /src/routes/sitemap.xml/+server.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/routes/sitemap.xml/+server.ts -------------------------------------------------------------------------------- /src/routes/statistics/+page.svelte: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/routes/statistics/+page.svelte -------------------------------------------------------------------------------- /src/routes/terms/+page.svelte: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/routes/terms/+page.svelte -------------------------------------------------------------------------------- /src/stores/db.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/src/stores/db.ts -------------------------------------------------------------------------------- /static/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/static/favicon.ico -------------------------------------------------------------------------------- /static/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/static/favicon.png -------------------------------------------------------------------------------- /static/images/code.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/static/images/code.webp -------------------------------------------------------------------------------- /static/images/operator.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/static/images/operator.webp -------------------------------------------------------------------------------- /static/images/user1.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/static/images/user1.webp -------------------------------------------------------------------------------- /static/images/user2.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/static/images/user2.webp -------------------------------------------------------------------------------- /static/images/user3.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/static/images/user3.webp -------------------------------------------------------------------------------- /static/robots.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/static/robots.txt -------------------------------------------------------------------------------- /svelte.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/svelte.config.js -------------------------------------------------------------------------------- /tailwind.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/tailwind.config.ts -------------------------------------------------------------------------------- /tests/advanced-filtering.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/tests/advanced-filtering.spec.ts -------------------------------------------------------------------------------- /tests/analyze.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/tests/analyze.spec.ts -------------------------------------------------------------------------------- /tests/auth-flow.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/tests/auth-flow.spec.ts -------------------------------------------------------------------------------- /tests/auth.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/tests/auth.spec.ts -------------------------------------------------------------------------------- /tests/configurations.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/tests/configurations.spec.ts -------------------------------------------------------------------------------- /tests/critical-ci.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/tests/critical-ci.spec.ts -------------------------------------------------------------------------------- /tests/error-handling.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/tests/error-handling.spec.ts -------------------------------------------------------------------------------- /tests/fixtures.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/tests/fixtures.ts -------------------------------------------------------------------------------- /tests/landing.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/tests/landing.spec.ts -------------------------------------------------------------------------------- /tests/popularity.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/tests/popularity.spec.ts -------------------------------------------------------------------------------- /tests/server-interactions.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/tests/server-interactions.spec.ts -------------------------------------------------------------------------------- /tests/sitemap.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/tests/sitemap.spec.ts -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/tsconfig.json -------------------------------------------------------------------------------- /vite.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/vite.config.ts -------------------------------------------------------------------------------- /worker/.editorconfig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/worker/.editorconfig -------------------------------------------------------------------------------- /worker/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/worker/.gitignore -------------------------------------------------------------------------------- /worker/.prettierrc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/worker/.prettierrc -------------------------------------------------------------------------------- /worker/.prettierrc.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/worker/.prettierrc.json -------------------------------------------------------------------------------- /worker/CLAUDE.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/worker/CLAUDE.md -------------------------------------------------------------------------------- /worker/eslint.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/worker/eslint.config.js -------------------------------------------------------------------------------- /worker/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/worker/package.json -------------------------------------------------------------------------------- /worker/src/__tests__/alert-notification-service.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/worker/src/__tests__/alert-notification-service.test.ts -------------------------------------------------------------------------------- /worker/src/__tests__/alert-service.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/worker/src/__tests__/alert-service.test.ts -------------------------------------------------------------------------------- /worker/src/__tests__/auction-data-transformer.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/worker/src/__tests__/auction-data-transformer.test.ts -------------------------------------------------------------------------------- /worker/src/__tests__/auction-db-service.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/worker/src/__tests__/auction-db-service.test.ts -------------------------------------------------------------------------------- /worker/src/__tests__/auction-service.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/worker/src/__tests__/auction-service.test.ts -------------------------------------------------------------------------------- /worker/src/__tests__/cloud-alert-service.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/worker/src/__tests__/cloud-alert-service.test.ts -------------------------------------------------------------------------------- /worker/src/__tests__/cloud-notification-service.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/worker/src/__tests__/cloud-notification-service.test.ts -------------------------------------------------------------------------------- /worker/src/__tests__/cloud-status-service.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/worker/src/__tests__/cloud-status-service.test.ts -------------------------------------------------------------------------------- /worker/src/__tests__/fixtures/alert-data.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/worker/src/__tests__/fixtures/alert-data.ts -------------------------------------------------------------------------------- /worker/src/__tests__/fixtures/auction-data.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/worker/src/__tests__/fixtures/auction-data.ts -------------------------------------------------------------------------------- /worker/src/__tests__/fixtures/cloud-alert-data.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/worker/src/__tests__/fixtures/cloud-alert-data.ts -------------------------------------------------------------------------------- /worker/src/__tests__/fixtures/cloud-data.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/worker/src/__tests__/fixtures/cloud-data.ts -------------------------------------------------------------------------------- /worker/src/__tests__/fixtures/database-mocks.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/worker/src/__tests__/fixtures/database-mocks.ts -------------------------------------------------------------------------------- /worker/src/__tests__/hetzner-auction-client.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/worker/src/__tests__/hetzner-auction-client.test.ts -------------------------------------------------------------------------------- /worker/src/__tests__/notification-channels.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/worker/src/__tests__/notification-channels.test.ts -------------------------------------------------------------------------------- /worker/src/__tests__/notification-service.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/worker/src/__tests__/notification-service.test.ts -------------------------------------------------------------------------------- /worker/src/__tests__/setup.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/worker/src/__tests__/setup.ts -------------------------------------------------------------------------------- /worker/src/alert-service.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/worker/src/alert-service.ts -------------------------------------------------------------------------------- /worker/src/analytics-query-service.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/worker/src/analytics-query-service.ts -------------------------------------------------------------------------------- /worker/src/auction-data-transformer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/worker/src/auction-data-transformer.ts -------------------------------------------------------------------------------- /worker/src/auction-db-service.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/worker/src/auction-db-service.ts -------------------------------------------------------------------------------- /worker/src/auction-import-do.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/worker/src/auction-import-do.ts -------------------------------------------------------------------------------- /worker/src/auction-service.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/worker/src/auction-service.ts -------------------------------------------------------------------------------- /worker/src/cloud-alert-service.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/worker/src/cloud-alert-service.ts -------------------------------------------------------------------------------- /worker/src/cloud-availability-do.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/worker/src/cloud-availability-do.ts -------------------------------------------------------------------------------- /worker/src/cloud-notifications/cloud-discord-channel.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/worker/src/cloud-notifications/cloud-discord-channel.ts -------------------------------------------------------------------------------- /worker/src/cloud-notifications/cloud-email-channel.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/worker/src/cloud-notifications/cloud-email-channel.ts -------------------------------------------------------------------------------- /worker/src/cloud-notifications/cloud-notification-channel.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/worker/src/cloud-notifications/cloud-notification-channel.ts -------------------------------------------------------------------------------- /worker/src/cloud-notifications/cloud-notification-service.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/worker/src/cloud-notifications/cloud-notification-service.ts -------------------------------------------------------------------------------- /worker/src/cloud-status-service.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/worker/src/cloud-status-service.ts -------------------------------------------------------------------------------- /worker/src/hetzner-auction-client.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/worker/src/hetzner-auction-client.ts -------------------------------------------------------------------------------- /worker/src/http-router.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/worker/src/http-router.ts -------------------------------------------------------------------------------- /worker/src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/worker/src/index.ts -------------------------------------------------------------------------------- /worker/src/notification-service.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/worker/src/notification-service.ts -------------------------------------------------------------------------------- /worker/src/notifications/alert-notification-service.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/worker/src/notifications/alert-notification-service.ts -------------------------------------------------------------------------------- /worker/src/notifications/discord-channel.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/worker/src/notifications/discord-channel.ts -------------------------------------------------------------------------------- /worker/src/notifications/email-channel.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/worker/src/notifications/email-channel.ts -------------------------------------------------------------------------------- /worker/src/notifications/notification-channel.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/worker/src/notifications/notification-channel.ts -------------------------------------------------------------------------------- /worker/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/worker/tsconfig.json -------------------------------------------------------------------------------- /worker/vitest.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/worker/vitest.config.ts -------------------------------------------------------------------------------- /worker/worker-configuration.d.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/worker/worker-configuration.d.ts -------------------------------------------------------------------------------- /worker/wrangler.jsonc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/worker/wrangler.jsonc -------------------------------------------------------------------------------- /wrangler.jsonc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsbrock/hetzner-radar/HEAD/wrangler.jsonc --------------------------------------------------------------------------------