From fb9d3f4703eeadf9c6d7fb0d16bbc1bbb4cd2f6b Mon Sep 17 00:00:00 2001 From: Thibault Le Ouay Date: Wed, 22 May 2024 16:04:22 +0200 Subject: [PATCH] =?UTF-8?q?=E2=9C=8F=EF=B8=8F=20Switch=20to=20Biomejs=20(#?= =?UTF-8?q?728)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 😭 just a mess * 😭 just a mess * 😭 just a mess * 😭 just a mess * 😭 just a mess * remove prettier, ignore noUnusedVariables, enable useSortedClasses (#730) * fix: remove prettier and lint no unused variables * fix: enable useSortedClasses * 📝 linting * 📝 linting * 📝 linting * 📝 linting * 📝 linting * 📝 linting --------- Co-authored-by: Gulfaraz Rahman --- .github/workflows/lint.yml | 34 +- .vscode/settings.json | 16 +- apps/ingest-worker/package.json | 2 +- apps/ingest-worker/src/index.ts | 2 +- apps/screenshot-worker/src/index.ts | 4 +- apps/server/package.json | 6 +- apps/server/src/v1/incidents.ts | 2 +- apps/server/src/v1/middleware.ts | 2 +- apps/server/src/v1/monitor.ts | 2 +- apps/server/src/v1/notification.test.ts | 2 +- apps/server/src/v1/notification.ts | 4 +- apps/server/src/v1/page.ts | 4 +- apps/server/src/v1/statusReport.ts | 4 +- apps/server/src/v1/statusReportUpdate.ts | 4 +- apps/web/components.json | 2 +- apps/web/package.json | 2 +- apps/web/postcss.config.js | 2 +- .../posts/monitoring-latency/cloudflare.json | 5780 ++++++++--------- .../assets/posts/monitoring-latency/fly.json | 20 +- .../posts/monitoring-latency/koyeb.json | 20 +- .../posts/monitoring-latency/railway.json | 5780 ++++++++--------- .../posts/monitoring-latency/render.json | 5780 ++++++++--------- .../app/(content)/_components/pagination.tsx | 5 +- .../src/app/(content)/blog/[slug]/page.tsx | 6 +- apps/web/src/app/(content)/blog/page.tsx | 6 +- .../app/(content)/changelog/[slug]/page.tsx | 10 +- apps/web/src/app/(content)/changelog/page.tsx | 4 +- apps/web/src/app/(content)/layout.tsx | 9 +- apps/web/src/app/_components/background.tsx | 18 +- apps/web/src/app/_components/event-table.tsx | 10 +- apps/web/src/app/_components/hero-form.tsx | 2 +- apps/web/src/app/_components/input-search.tsx | 9 +- apps/web/src/app/about/_components/member.tsx | 2 +- apps/web/src/app/about/page.tsx | 18 +- apps/web/src/app/action.ts | 2 +- .../web/src/app/api/checker/cron/10m/route.ts | 2 +- apps/web/src/app/api/checker/cron/1h/route.ts | 2 +- apps/web/src/app/api/checker/cron/1m/route.ts | 2 +- .../web/src/app/api/checker/cron/30m/route.ts | 2 +- .../web/src/app/api/checker/cron/30s/route.ts | 2 +- apps/web/src/app/api/checker/cron/5m/route.ts | 2 +- apps/web/src/app/api/checker/cron/_cron.ts | 3 +- .../src/app/api/og/_components/tracker.tsx | 6 +- apps/web/src/app/api/og/checker/route.tsx | 136 +- apps/web/src/app/api/og/monitor/route.tsx | 18 +- apps/web/src/app/api/og/page/route.tsx | 10 +- apps/web/src/app/api/og/post/route.tsx | 26 +- apps/web/src/app/api/og/route.tsx | 83 +- .../web/src/app/api/trpc/edge/[trpc]/route.ts | 2 +- .../src/app/api/trpc/lambda/[trpc]/route.ts | 2 +- apps/web/src/app/api/upload/route.ts | 2 +- apps/web/src/app/api/webhook/stripe/route.ts | 2 +- .../app/(auth)/login/_components/actions.ts | 2 +- .../login/_components/magic-link-form.tsx | 2 +- apps/web/src/app/app/(auth)/login/layout.tsx | 7 +- apps/web/src/app/app/(auth)/login/page.tsx | 8 +- .../incidents/(overview)/layout.tsx | 8 +- .../[id]/overview/_components/event.tsx | 11 +- .../incidents/[id]/overview/page.tsx | 20 +- .../[workspaceSlug]/(dashboard)/layout.tsx | 7 +- .../monitors/(overview)/layout.tsx | 11 +- .../(dashboard)/monitors/(overview)/page.tsx | 1 - .../data/_components/data-table-wrapper.tsx | 5 +- .../data/_components/download-csv-button.tsx | 2 +- .../(dashboard)/monitors/[id]/data/page.tsx | 4 +- .../monitors/[id]/details/page.tsx | 5 +- .../(dashboard)/monitors/[id]/layout.tsx | 2 +- .../monitors/[id]/overview/loading.tsx | 6 +- .../monitors/[id]/overview/page.tsx | 2 +- .../monitors/_components/refresh-widget.tsx | 2 +- .../notifications/(overview)/page.tsx | 2 +- .../(dashboard)/notifications/new/page.tsx | 4 +- .../rum/_components/category-bar.tsx | 12 +- .../rum/_components/route-table.tsx | 8 +- .../rum/_components/rum-metric-card.tsx | 2 +- .../(dashboard)/rum/layout.tsx | 2 - .../[workspaceSlug]/(dashboard)/rum/page.tsx | 4 +- .../settings/api-token/_components/actions.ts | 2 +- .../settings/api-token/_components/card.tsx | 4 +- .../api-token/_components/create-form.tsx | 3 +- .../api-token/_components/revoke-button.tsx | 2 +- .../(dashboard)/settings/appearance/page.tsx | 26 +- .../_components/change-plan-button.tsx | 4 +- .../_components/customer-portal-button.tsx | 2 +- .../settings/billing/_components/plan.tsx | 2 +- .../(dashboard)/settings/billing/page.tsx | 4 +- .../team/_components/invite-button.tsx | 4 +- .../status-pages/(overview)/layout.tsx | 11 +- .../status-pages/(overview)/page.tsx | 2 +- .../status-reports/(overview)/layout.tsx | 8 +- .../status-reports/(overview)/page.tsx | 2 +- .../status-reports/[id]/edit/page.tsx | 2 +- .../status-reports/[id]/overview/page.tsx | 4 +- .../(dashboard)/status-reports/edit/page.tsx | 1 + .../onboarding/_components/description.tsx | 14 +- .../app/[workspaceSlug]/onboarding/layout.tsx | 4 +- apps/web/src/app/app/invite/layout.tsx | 9 +- apps/web/src/app/app/invite/page.tsx | 2 +- apps/web/src/app/app/page.tsx | 7 +- apps/web/src/app/global-error.tsx | 7 +- apps/web/src/app/layout.tsx | 7 +- apps/web/src/app/legal/[slug]/layout.tsx | 9 +- apps/web/src/app/legal/[slug]/page.tsx | 6 +- apps/web/src/app/not-found.tsx | 2 +- apps/web/src/app/oss-friends/page.tsx | 15 +- .../src/app/play/_components/header-play.tsx | 2 +- apps/web/src/app/play/checker/[id]/page.tsx | 2 +- .../play/checker/_components/checker-form.tsx | 4 +- apps/web/src/app/play/layout.tsx | 11 +- apps/web/src/app/play/page.tsx | 6 +- .../play/status/_components/status-play.tsx | 2 +- .../status/_components/timezone-combobox.tsx | 6 +- apps/web/src/app/pricing/page.tsx | 2 +- apps/web/src/app/public/layout.tsx | 1 - .../src/app/public/monitors/[id]/loading.tsx | 6 +- .../web/src/app/public/monitors/[id]/page.tsx | 8 +- apps/web/src/app/shared-metadata.ts | 4 +- apps/web/src/app/sitemap.ts | 2 +- .../[domain]/_components/actions.ts | 4 +- .../[domain]/_components/footer.tsx | 2 +- .../[domain]/_components/header.tsx | 2 +- .../status-page/[domain]/_components/menu.tsx | 5 +- .../[domain]/_components/password-form.tsx | 7 +- .../_components/password-protected.tsx | 4 +- .../app/status-page/[domain]/badge/route.tsx | 20 +- .../[id]/_components/copy-link-button.tsx | 2 +- .../[domain]/monitors/[id]/page.tsx | 2 +- .../status-page/[domain]/monitors/page.tsx | 14 +- .../web/src/app/status-page/[domain]/page.tsx | 4 +- .../status-page/[domain]/subscribe/route.ts | 4 +- .../[domain]/verify/[token]/route.ts | 2 +- apps/web/src/app/status/page.tsx | 8 +- .../web/src/components/billing/pro-banner.tsx | 8 +- .../components/billing/pro-feature-alert.tsx | 4 +- .../billing/pro-feature-hover-card.tsx | 3 +- apps/web/src/components/content/article.tsx | 12 +- apps/web/src/components/content/changelog.tsx | 10 +- .../src/components/content/mdx-components.tsx | 31 +- apps/web/src/components/content/mdx.tsx | 2 +- apps/web/src/components/content/preview.tsx | 2 +- apps/web/src/components/content/timeline.tsx | 8 +- .../src/components/dashboard/container.tsx | 4 +- .../src/components/dashboard/empty-state.tsx | 13 +- .../src/components/dashboard/help-callout.tsx | 5 +- apps/web/src/components/dashboard/navbar.tsx | 2 +- apps/web/src/components/dashboard/shell.tsx | 2 +- .../src/components/dashboard/tabs-link.tsx | 12 +- apps/web/src/components/dashboard/tabs.tsx | 2 +- .../web/src/components/data-table/columns.tsx | 6 +- .../data-table/data-table-column-header.tsx | 6 +- .../data-table-date-ranger-picker.tsx | 4 +- .../data-table/data-table-faceted-filter.tsx | 17 +- .../data-table-faceted-input-dropdown.tsx | 15 +- .../data-table/data-table-pagination.tsx | 6 +- .../data-table/data-table-region-select.tsx | 2 +- .../data-table/data-table-row-action.tsx | 4 +- .../data-table/data-table-skeleton.tsx | 3 +- .../data-table/data-table-toolbar.tsx | 2 +- .../src/components/data-table/data-table.tsx | 2 +- .../data-table/incident/columns.tsx | 12 +- .../incident/data-table-row-actions.tsx | 8 +- .../data-table/incident/data-table.tsx | 2 +- .../invitation/data-table-row-actions.tsx | 4 +- .../data-table/invitation/data-table.tsx | 2 +- .../components/data-table/monitor/columns.tsx | 18 +- .../monitor/data-table-row-actions.tsx | 11 +- .../data-table/monitor/data-table.tsx | 30 +- .../notification/data-table-row-actions.tsx | 8 +- .../data-table/notification/data-table.tsx | 2 +- .../data-table-row-actions.tsx | 6 +- .../data-table/page-subscriber/data-table.tsx | 2 +- .../data-table/status-page/columns.tsx | 8 +- .../status-page/data-table-row-actions.tsx | 8 +- .../data-table/status-page/data-table.tsx | 2 +- .../data-table/status-report/columns.tsx | 2 +- .../status-report/data-table-row-actions.tsx | 8 +- .../data-table/status-report/data-table.tsx | 2 +- .../user/data-table-row-actions.tsx | 6 +- .../components/data-table/user/data-table.tsx | 2 +- .../web/src/components/dev-mode-container.tsx | 8 +- .../domains/domain-configuration.tsx | 38 +- .../components/forms/custom-domain-form.tsx | 4 +- .../web/src/components/forms/monitor-form.tsx | 20 +- .../src/components/forms/monitor-tag/form.tsx | 4 +- .../web/src/components/forms/monitor/form.tsx | 15 +- .../forms/monitor/request-test-button.tsx | 6 +- .../forms/monitor/section-assertions.tsx | 8 +- .../forms/monitor/section-danger.tsx | 2 +- .../forms/monitor/section-limits.tsx | 4 +- .../forms/monitor/section-notifications.tsx | 3 +- .../forms/monitor/section-requests.tsx | 4 +- .../forms/monitor/section-scheduling.tsx | 5 +- .../forms/monitor/section-status-page.tsx | 3 +- .../forms/monitor/tags-multi-box.tsx | 4 +- .../components/forms/notification-form.tsx | 7 +- .../components/forms/notification/form.tsx | 4 +- .../components/forms/notification/general.tsx | 1 + .../forms/shared/checkbox-label.tsx | 4 +- .../forms/shared/section-header.tsx | 4 +- .../src/components/forms/status-page/form.tsx | 6 +- .../forms/status-page/section-advanced.tsx | 7 +- .../forms/status-page/section-monitor.tsx | 10 +- .../forms/status-page/section-visibility.tsx | 2 +- .../components/forms/status-report-form.tsx | 16 +- .../forms/status-report-update-form.tsx | 8 +- .../forms/status-report-update/form.tsx | 4 +- .../forms/status-report-update/general.tsx | 2 +- .../components/forms/status-report/form.tsx | 4 +- .../forms/status-report/general.tsx | 2 +- .../forms/status-report/section-connect.tsx | 4 +- .../src/components/forms/workspace-form.tsx | 4 +- apps/web/src/components/icons.tsx | 2 +- apps/web/src/components/kbd.tsx | 2 +- apps/web/src/components/layout/app-footer.tsx | 4 +- apps/web/src/components/layout/app-link.tsx | 2 +- apps/web/src/components/layout/app-menu.tsx | 15 +- .../layout/app-page-with-sidebar-layout.tsx | 2 +- .../web/src/components/layout/app-sidebar.tsx | 2 +- .../web/src/components/layout/back-button.tsx | 4 +- apps/web/src/components/layout/brand-name.tsx | 4 +- .../components/layout/header/app-header.tsx | 6 +- .../components/layout/header/breadcrumbs.tsx | 18 +- .../src/components/layout/header/user-nav.tsx | 8 +- .../src/components/layout/login-button.tsx | 2 +- .../components/layout/marketing-footer.tsx | 12 +- .../components/layout/marketing-header.tsx | 2 +- .../src/components/layout/marketing-menu.tsx | 12 +- .../layout/status-widget-suspense.tsx | 9 +- .../src/components/marketing/alert/card.tsx | 5 +- .../components/marketing/alert/timeline.tsx | 23 +- apps/web/src/components/marketing/card.tsx | 12 +- apps/web/src/components/marketing/faqs.tsx | 2 +- apps/web/src/components/marketing/hero.tsx | 10 +- .../components/marketing/in-between-cta.tsx | 2 +- .../marketing/lastest-changelogs.tsx | 8 +- .../src/components/marketing/monitor/card.tsx | 5 +- .../components/marketing/monitor/globe.tsx | 2 +- .../web/src/components/marketing/partners.tsx | 10 +- .../marketing/pricing/enterprice-plan.tsx | 2 +- .../marketing/pricing/pricing-plan-radio.tsx | 4 +- .../marketing/pricing/pricing-table.tsx | 18 +- apps/web/src/components/marketing/stats.tsx | 6 +- .../components/marketing/status-page/card.tsx | 5 +- .../marketing/status-page/tracker-example.tsx | 2 +- .../src/components/monitor-charts/chart.tsx | 11 +- .../monitor-charts/combined-chart-wrapper.tsx | 2 +- .../monitor-charts/region-table.tsx | 6 +- .../monitor-charts/simple-chart.tsx | 17 +- .../src/components/monitor-charts/utils.tsx | 2 +- .../monitor-dashboard/button-reset.tsx | 2 +- .../monitor-dashboard/interval-preset.tsx | 4 +- .../monitor-dashboard/metrics-card.tsx | 8 +- .../components/monitor-dashboard/metrics.tsx | 10 +- .../monitor-dashboard/pause-button.tsx | 4 +- .../monitor-dashboard/quantile-preset.tsx | 4 +- .../monitor-dashboard/region-preset.tsx | 4 +- .../monitor-dashboard/response-details.tsx | 4 +- .../search-params-preset.tsx | 9 +- .../monitor/visible-icon-with-tooltip.tsx | 4 +- .../copy-to-clipboard-button.tsx | 1 + .../multi-region-table.tsx | 3 +- .../ping-response-analysis/region-info.tsx | 2 +- .../response-assertion.tsx | 5 +- .../response-detail-tabs.tsx | 4 +- .../response-header-analysis.tsx | 26 +- .../response-timing-table.tsx | 4 +- .../ping-response-analysis/utils.ts | 1 + apps/web/src/components/play/card.tsx | 8 +- .../components/status-page/monitor-list.tsx | 4 +- .../status-page/process-message.tsx | 2 +- .../components/status-page/status-check.tsx | 10 +- .../status-page/status-report-list.tsx | 8 +- .../components/status-page/status-report.tsx | 10 +- .../status-update/delete-status-update.tsx | 4 +- .../src/components/status-update/events.tsx | 18 +- .../src/components/status-update/summary.tsx | 14 +- apps/web/src/components/svg/trigger.tsx | 72 +- .../web/src/components/tailwind-indicator.tsx | 2 +- apps/web/src/components/theme-provider.tsx | 2 +- apps/web/src/components/theme-toggle.tsx | 4 +- apps/web/src/components/tracker/tracker.tsx | 19 +- .../components/workspace/select-workspace.tsx | 4 +- apps/web/src/config/pages.ts | 5 +- apps/web/src/contentlayer/documents/faq.ts | 2 +- apps/web/src/contentlayer/documents/legal.ts | 2 +- .../src/contentlayer/documents/unrelated.ts | 2 +- .../contentlayer/plugins/autolink-headings.ts | 1 + .../src/contentlayer/plugins/pretty-code.ts | 4 + apps/web/src/env.ts | 2 +- apps/web/src/hooks/use-cookie-state.ts | 1 + apps/web/src/hooks/use-domain-status.ts | 2 +- apps/web/src/hooks/use-preprocessor.tsx | 2 +- .../web/src/hooks/use-update-search-params.ts | 2 +- apps/web/src/lib/auth/index.ts | 2 +- apps/web/src/lib/domains.ts | 4 +- apps/web/src/lib/monitor/utils.ts | 12 +- apps/web/src/lib/tb.ts | 2 +- apps/web/src/lib/timezone.ts | 9 +- apps/web/src/lib/utils.ts | 13 +- apps/web/src/middleware.ts | 9 +- apps/web/src/trpc/server.ts | 2 +- apps/web/src/trpc/shared.ts | 2 +- apps/web/tailwind.config.ts | 5 +- biome.jsonc | 61 + package.json | 15 +- packages/analytics/src/index.ts | 2 +- packages/api/src/analytics.ts | 2 +- packages/api/src/router/invitation.ts | 2 +- packages/api/src/router/monitor.ts | 8 +- packages/api/src/router/page.ts | 6 +- packages/api/src/router/pageSubscriber.ts | 4 +- packages/api/src/router/rum/index.ts | 4 +- packages/api/src/router/statusReport.ts | 10 +- packages/api/src/router/stripe/index.ts | 2 +- packages/api/src/router/stripe/utils.ts | 6 +- packages/api/src/router/stripe/webhook.ts | 8 +- packages/api/src/router/tinybird/index.ts | 2 +- packages/api/src/router/workspace.ts | 6 +- packages/api/src/trpc.ts | 4 +- packages/assertions/src/serializing.ts | 8 +- packages/config/eslint/index.js | 50 - packages/config/eslint/package.json | 23 - packages/db/drizzle/meta/0000_snapshot.json | 96 +- packages/db/drizzle/meta/0001_snapshot.json | 96 +- packages/db/drizzle/meta/0002_snapshot.json | 96 +- packages/db/drizzle/meta/0004_snapshot.json | 113 +- packages/db/drizzle/meta/0005_snapshot.json | 113 +- packages/db/drizzle/meta/0007_snapshot.json | 121 +- packages/db/drizzle/meta/0009_snapshot.json | 171 +- packages/db/drizzle/meta/0010_snapshot.json | 189 +- packages/db/drizzle/meta/0011_snapshot.json | 189 +- packages/db/drizzle/meta/0012_snapshot.json | 189 +- packages/db/drizzle/meta/0013_snapshot.json | 197 +- packages/db/drizzle/meta/0014_snapshot.json | 197 +- packages/db/drizzle/meta/0015_snapshot.json | 229 +- packages/db/drizzle/meta/0017_snapshot.json | 234 +- packages/db/drizzle/meta/0018_snapshot.json | 234 +- packages/db/drizzle/meta/0019_snapshot.json | 235 +- packages/db/drizzle/meta/0020_snapshot.json | 234 +- packages/db/drizzle/meta/0021_snapshot.json | 263 +- packages/db/drizzle/meta/_journal.json | 2 +- packages/db/src/schema/monitors/validation.ts | 3 +- packages/emails/emails/alert.tsx | 12 +- packages/emails/emails/followup.tsx | 3 +- packages/emails/emails/subscribe.tsx | 3 +- packages/emails/emails/welcome.tsx | 7 +- packages/header-analysis/src/index.ts | 2 +- .../src/parser/cache-control.ts | 5 +- packages/notifications/discord/src/index.ts | 4 +- packages/notifications/email/src/index.ts | 2 + packages/notifications/slack/src/index.ts | 5 +- .../notifications/twillio-sms/src/index.ts | 2 + packages/react/package.json | 10 +- packages/react/src/widget.tsx | 8 +- packages/rum/src/config.ts | 12 +- packages/rum/src/utils.ts | 3 +- packages/tinybird/src/audit-log/examples.ts | 3 +- packages/tinybird/src/client.ts | 2 +- packages/tsconfig/base.json | 1 - packages/ui/package.json | 6 +- packages/ui/src/components/accordion.tsx | 2 +- packages/ui/src/components/alert-dialog.tsx | 2 +- packages/ui/src/components/alert.tsx | 4 +- packages/ui/src/components/avatar.tsx | 2 +- packages/ui/src/components/badge.tsx | 3 +- .../button-with-disable-tooltip.tsx | 2 +- packages/ui/src/components/button.tsx | 2 +- packages/ui/src/components/calendar.tsx | 5 +- packages/ui/src/components/checkbox.tsx | 2 +- packages/ui/src/components/command.tsx | 2 +- packages/ui/src/components/context-menu.tsx | 2 +- .../components/date-time-picker-popover.tsx | 4 +- .../ui/src/components/date-time-picker.tsx | 4 +- packages/ui/src/components/dialog.tsx | 2 +- packages/ui/src/components/dropdown-menu.tsx | 2 +- packages/ui/src/components/form.tsx | 2 +- packages/ui/src/components/hover-card.tsx | 2 +- packages/ui/src/components/label.tsx | 2 +- packages/ui/src/components/multi-select.tsx | 8 +- packages/ui/src/components/popover.tsx | 2 +- packages/ui/src/components/progress.tsx | 2 +- packages/ui/src/components/radio-group.tsx | 2 +- packages/ui/src/components/select.tsx | 2 +- packages/ui/src/components/separator.tsx | 2 +- packages/ui/src/components/sheet.tsx | 2 +- packages/ui/src/components/switch.tsx | 2 +- packages/ui/src/components/tabs.tsx | 2 +- packages/ui/src/components/toggle.tsx | 2 +- packages/ui/src/components/tooltip.tsx | 4 +- packages/ui/src/lib/compose-refs.ts | 1 + packages/ui/tailwind.config.ts | 4 +- pnpm-lock.yaml | 2221 +------ prettier.config.cjs | 31 - utils/api-bruno/bruno.json | 2 +- 394 files changed, 10769 insertions(+), 14569 deletions(-) create mode 100644 biome.jsonc delete mode 100644 packages/config/eslint/index.js delete mode 100644 packages/config/eslint/package.json delete mode 100644 prettier.config.cjs diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index b02e41638..6d9127b50 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -9,7 +9,7 @@ on: jobs: lint: - name: ⬣ ESLint + name: ⬣ BiomeJS runs-on: ubuntu-latest timeout-minutes: 15 env: @@ -34,34 +34,4 @@ jobs: run: pnpm install - name: 🔬 Lint - run: pnpm lint - - prettier: - name: 💅 Prettier - runs-on: ubuntu-latest - timeout-minutes: 15 - - env: - TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }} - TURBO_TEAM: ${{ secrets.TURBO_TEAM }} - - steps: - - name: ⬇️ Checkout repo - uses: actions/checkout@v3 - - - name: Set up pnpm - uses: pnpm/action-setup@v2 - with: - version: 8 - - - name: ⎔ Setup node - uses: actions/setup-node@v3 - with: - node-version: 18 - cache: "pnpm" - - - name: 📥 Download deps - run: pnpm install - - - name: 💅 Prettier check - run: pnpm format:check + run: pnpm format diff --git a/.vscode/settings.json b/.vscode/settings.json index 43abd9d6c..366277501 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,16 +1,10 @@ { - "editor.codeActionsOnSave": { - "source.fixAll.eslint": "explicit" - }, - "editor.defaultFormatter": "esbenp.prettier-vscode", + "editor.codeActionsOnSave": {}, + "editor.defaultFormatter": "biomejs.biome", "editor.formatOnSave": true, - "eslint.rules.customizations": [{ "rule": "*", "severity": "warn" }], - "eslint.workingDirectories": [ - { "pattern": "apps/*/" }, - { "pattern": "packages/*/" } - ], - // "typescript.tsdk": "node_modules/typescript/lib", - // "typescript.enablePromptUseWorkspaceTsdk": true, + "typescript.tsdk": "node_modules/typescript/lib", + + "typescript.enablePromptUseWorkspaceTsdk": true, "[dotenv]": { "editor.defaultFormatter": "foxundermoon.shell-format" }, diff --git a/apps/ingest-worker/package.json b/apps/ingest-worker/package.json index fc6e7a2c4..a83ed6968 100644 --- a/apps/ingest-worker/package.json +++ b/apps/ingest-worker/package.json @@ -12,7 +12,7 @@ "zod": "3.22.4" }, "devDependencies": { - "@biomejs/biome": "1.6.3", + "@biomejs/biome": "1.7.3", "@cloudflare/workers-types": "4.20240405.0", "typescript": "5.4.3", "wrangler": "3.51.2" diff --git a/apps/ingest-worker/src/index.ts b/apps/ingest-worker/src/index.ts index b25119cb9..7b2698f12 100644 --- a/apps/ingest-worker/src/index.ts +++ b/apps/ingest-worker/src/index.ts @@ -72,7 +72,7 @@ app.post("/", async (c) => { const { API_ENDPOINT } = env(c); console.log(); - console.log(" data :" + JSON.stringify(p)); + console.log(` data :${JSON.stringify(p)}`); const r = fetch(API_ENDPOINT, { method: "POST", headers: { diff --git a/apps/screenshot-worker/src/index.ts b/apps/screenshot-worker/src/index.ts index 59ea4a3da..b24dd6379 100644 --- a/apps/screenshot-worker/src/index.ts +++ b/apps/screenshot-worker/src/index.ts @@ -54,7 +54,8 @@ app.post( const env = c.env; const db = createDrizzleClient(env); - const sessionId = await getRandomSession(c.env.MYBROWSER); + const sessionId = await getRandomSession(env.MYBROWSER); + // biome-ignore lint/suspicious/noImplicitAnyLet: let browser; if (sessionId) { try { @@ -112,6 +113,7 @@ const getRandomSession = async ( const sessionId = sessionsIds[Math.floor(Math.random() * sessionsIds.length)]; + // biome-ignore lint/style/noNonNullAssertion: return sessionId!; }; export default app; diff --git a/apps/server/package.json b/apps/server/package.json index 58ca934f2..4653ef741 100644 --- a/apps/server/package.json +++ b/apps/server/package.json @@ -7,8 +7,7 @@ "scripts": { "dev": "bun run --hot src/index.ts", "start": "NODE_ENV=production bun run src/index.ts", - "test": "bun test", - "lint": "eslint \"**/*.ts*\"" + "test": "bun test" }, "dependencies": { "@hono/sentry": "1.0.0", @@ -37,7 +36,6 @@ "@openstatus/tsconfig": "workspace:*", "@types/validator": "13.11.6", "bun-types": "1.0.11", - "dotenv": "16.3.1", - "eslint": "8.50.0" + "dotenv": "16.3.1" } } diff --git a/apps/server/src/v1/incidents.ts b/apps/server/src/v1/incidents.ts index e2724a449..bd0b76659 100644 --- a/apps/server/src/v1/incidents.ts +++ b/apps/server/src/v1/incidents.ts @@ -1,4 +1,4 @@ -import { createRoute, OpenAPIHono, z } from "@hono/zod-openapi"; +import { OpenAPIHono, createRoute, z } from "@hono/zod-openapi"; import { and, db, eq } from "@openstatus/db"; import { incidentTable } from "@openstatus/db/src/schema/incidents"; diff --git a/apps/server/src/v1/middleware.ts b/apps/server/src/v1/middleware.ts index ea203e788..d70343012 100644 --- a/apps/server/src/v1/middleware.ts +++ b/apps/server/src/v1/middleware.ts @@ -19,7 +19,7 @@ export async function middleware( if (!result.ownerId) return c.text("Unauthorized", 401); - const plan = await getLimitByWorkspaceId(parseInt(result.ownerId)); + const plan = await getLimitByWorkspaceId(Number.parseInt(result.ownerId)); c.set("workspacePlan", plan); c.set("workspaceId", `${result.ownerId}`); diff --git a/apps/server/src/v1/monitor.ts b/apps/server/src/v1/monitor.ts index 67be1058a..3effda9be 100644 --- a/apps/server/src/v1/monitor.ts +++ b/apps/server/src/v1/monitor.ts @@ -1,4 +1,4 @@ -import { createRoute, OpenAPIHono, z } from "@hono/zod-openapi"; +import { OpenAPIHono, createRoute, z } from "@hono/zod-openapi"; import { trackAnalytics } from "@openstatus/analytics"; import { and, db, eq, isNull, sql } from "@openstatus/db"; diff --git a/apps/server/src/v1/notification.test.ts b/apps/server/src/v1/notification.test.ts index 2617a162f..b55b655e3 100644 --- a/apps/server/src/v1/notification.test.ts +++ b/apps/server/src/v1/notification.test.ts @@ -3,7 +3,7 @@ import { expect, test } from "bun:test"; import { api } from "."; import { iso8601Regex } from "./test-utils"; -test.only("Create a notification", async () => { +test("Create a notification", async () => { const data = { name: "OpenStatus", provider: "email", diff --git a/apps/server/src/v1/notification.ts b/apps/server/src/v1/notification.ts index 62e742d24..acac5ec8e 100644 --- a/apps/server/src/v1/notification.ts +++ b/apps/server/src/v1/notification.ts @@ -1,12 +1,12 @@ -import { createRoute, OpenAPIHono, z } from "@hono/zod-openapi"; +import { OpenAPIHono, createRoute, z } from "@hono/zod-openapi"; import isEmail from "validator/lib/isEmail"; import isMobilePhone from "validator/lib/isMobilePhone"; import { and, db, eq, inArray } from "@openstatus/db"; import { + NotificationDataSchema, monitor, notification, - NotificationDataSchema, notificationProvider, notificationsToMonitors, page, diff --git a/apps/server/src/v1/page.ts b/apps/server/src/v1/page.ts index c97081340..aa483ca4a 100644 --- a/apps/server/src/v1/page.ts +++ b/apps/server/src/v1/page.ts @@ -1,4 +1,4 @@ -import { createRoute, OpenAPIHono, z } from "@hono/zod-openapi"; +import { OpenAPIHono, createRoute, z } from "@hono/zod-openapi"; import { and, eq, inArray, sql } from "@openstatus/db"; import { db } from "@openstatus/db/src/db"; @@ -664,7 +664,7 @@ pageApi.openapi(putRoute, async (c) => { .map(({ monitorId }) => monitorId) .filter((x) => !monitorIds?.includes(x)); - if (Boolean(removedMonitors.length)) { + if (removedMonitors.length) { await db .delete(monitorsToPages) .where( diff --git a/apps/server/src/v1/statusReport.ts b/apps/server/src/v1/statusReport.ts index 1bfd3c59e..a3ccf44c6 100644 --- a/apps/server/src/v1/statusReport.ts +++ b/apps/server/src/v1/statusReport.ts @@ -1,10 +1,10 @@ -import { createRoute, OpenAPIHono, z } from "@hono/zod-openapi"; +import { OpenAPIHono, createRoute, z } from "@hono/zod-openapi"; import { and, db, eq, isNotNull } from "@openstatus/db"; import { page, - pagesToStatusReports, pageSubscriber, + pagesToStatusReports, statusReport, statusReportStatus, statusReportUpdate, diff --git a/apps/server/src/v1/statusReportUpdate.ts b/apps/server/src/v1/statusReportUpdate.ts index be1fadf30..b55afc80d 100644 --- a/apps/server/src/v1/statusReportUpdate.ts +++ b/apps/server/src/v1/statusReportUpdate.ts @@ -1,10 +1,10 @@ -import { createRoute, OpenAPIHono, z } from "@hono/zod-openapi"; +import { OpenAPIHono, createRoute, z } from "@hono/zod-openapi"; import { and, db, eq, isNotNull } from "@openstatus/db"; import { page, - pagesToStatusReports, pageSubscriber, + pagesToStatusReports, statusReport, statusReportStatus, statusReportUpdate, diff --git a/apps/web/components.json b/apps/web/components.json index 9c91a37c2..5da33a768 100644 --- a/apps/web/components.json +++ b/apps/web/components.json @@ -12,4 +12,4 @@ "components": "@/components", "utils": "@/lib/utils" } -} \ No newline at end of file +} diff --git a/apps/web/package.json b/apps/web/package.json index f3dc72b4c..e83da9c1a 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -89,7 +89,7 @@ "zod": "3.22.4" }, "devDependencies": { - "@openstatus/eslint-config": "workspace:*", + "@headlessui/tailwindcss": "0.2.0", "@openstatus/tsconfig": "workspace:*", "@types/luxon": "3.3.1", "@types/node": "20.8.0", diff --git a/apps/web/postcss.config.js b/apps/web/postcss.config.js index 33ad091d2..12a703d90 100644 --- a/apps/web/postcss.config.js +++ b/apps/web/postcss.config.js @@ -3,4 +3,4 @@ module.exports = { tailwindcss: {}, autoprefixer: {}, }, -} +}; diff --git a/apps/web/public/assets/posts/monitoring-latency/cloudflare.json b/apps/web/public/assets/posts/monitoring-latency/cloudflare.json index 9a8cdb2ba..0da217169 100644 --- a/apps/web/public/assets/posts/monitoring-latency/cloudflare.json +++ b/apps/web/public/assets/posts/monitoring-latency/cloudflare.json @@ -1,2898 +1,2884 @@ { - "regions": [ - "ams", - "iad", - "hkg", - "jnb", - "syd", - "gru" - ], - "data": { - "regions": [ - "ams", - "gru", - "hkg", - "iad", - "jnb", - "syd" - ], - "data": [ - { - "timestamp": "Feb 4, 00:00", - "ams": 64, - "iad": 82, - "syd": 78, - "jnb": 724, - "gru": 44, - "hkg": 37 - }, - { - "timestamp": "Feb 4, 01:00", - "ams": 49, - "iad": 81, - "syd": 83, - "jnb": 648, - "gru": 73, - "hkg": 50 - }, - { - "timestamp": "Feb 4, 02:00", - "hkg": 50, - "ams": 61, - "iad": 68, - "jnb": 728, - "syd": 48, - "gru": 71 - }, - { - "timestamp": "Feb 4, 03:00", - "hkg": 59, - "jnb": 646, - "syd": 83, - "ams": 50, - "iad": 56, - "gru": 39 - }, - { - "timestamp": "Feb 4, 04:00", - "hkg": 50, - "gru": 42, - "syd": 84, - "jnb": 643, - "ams": 54, - "iad": 70 - }, - { - "timestamp": "Feb 4, 05:00", - "gru": 126, - "syd": 87, - "jnb": 646, - "ams": 40, - "iad": 76, - "hkg": 49 - }, - { - "timestamp": "Feb 4, 06:00", - "jnb": 643, - "syd": 87, - "ams": 40, - "iad": 52, - "gru": 91, - "hkg": 63 - }, - { - "timestamp": "Feb 4, 07:00", - "hkg": 58, - "jnb": 642, - "syd": 89, - "ams": 46, - "iad": 65, - "gru": 95 - }, - { - "timestamp": "Feb 4, 08:00", - "hkg": 68, - "gru": 63, - "syd": 81, - "jnb": 640, - "ams": 48, - "iad": 68 - }, - { - "timestamp": "Feb 4, 09:00", - "hkg": 70, - "iad": 69, - "ams": 58, - "jnb": 648, - "syd": 51, - "gru": 38 - }, - { - "timestamp": "Feb 4, 10:00", - "hkg": 54, - "gru": 116, - "jnb": 664, - "syd": 86, - "iad": 68, - "ams": 53 - }, - { - "timestamp": "Feb 4, 11:00", - "gru": 69, - "syd": 101, - "jnb": 647, - "ams": 47, - "iad": 54, - "hkg": 76 - }, - { - "timestamp": "Feb 4, 12:00", - "gru": 70, - "iad": 63, - "ams": 56, - "syd": 87, - "jnb": 649, - "hkg": 62 - }, - { - "timestamp": "Feb 4, 13:00", - "syd": 84, - "jnb": 642, - "ams": 55, - "iad": 36, - "gru": 99, - "hkg": 51 - }, - { - "timestamp": "Feb 4, 14:00", - "hkg": 83, - "gru": 98, - "ams": 54, - "iad": 58, - "jnb": 648, - "syd": 82 - }, - { - "timestamp": "Feb 4, 15:00", - "hkg": 83, - "iad": 58, - "ams": 63, - "syd": 81, - "jnb": 749, - "gru": 72 - }, - { - "timestamp": "Feb 4, 16:00", - "ams": 64, - "iad": 60, - "syd": 39, - "jnb": 731, - "gru": 99, - "hkg": 78 - }, - { - "timestamp": "Feb 4, 17:00", - "jnb": 650, - "syd": 73, - "ams": 92, - "iad": 93, - "gru": 93, - "hkg": 52 - }, - { - "timestamp": "Feb 4, 18:00", - "gru": 72, - "jnb": 660, - "syd": 70, - "ams": 73, - "iad": 81, - "hkg": 72 - }, - { - "timestamp": "Feb 4, 19:00", - "syd": 247, - "jnb": 674, - "iad": 74, - "ams": 102, - "gru": 95, - "hkg": 105 - }, - { - "timestamp": "Feb 4, 20:00", - "ams": 68, - "iad": 68, - "syd": 133, - "jnb": 659, - "gru": 101, - "hkg": 82 - }, - { - "timestamp": "Feb 4, 21:00", - "hkg": 49, - "syd": 84, - "jnb": 714, - "iad": 72, - "ams": 64, - "gru": 54 - }, - { - "timestamp": "Feb 4, 22:00", - "hkg": 68, - "gru": 77, - "iad": 63, - "ams": 51, - "syd": 83, - "jnb": 697 - }, - { - "timestamp": "Feb 4, 23:00", - "jnb": 649, - "syd": 78, - "iad": 66, - "ams": 50, - "gru": 78, - "hkg": 61 - }, - { - "timestamp": "Feb 5, 00:00", - "gru": 152, - "jnb": 715, - "syd": 84, - "ams": 46, - "iad": 46, - "hkg": 44 - }, - { - "timestamp": "Feb 5, 01:00", - "gru": 136, - "iad": 78, - "ams": 58, - "syd": 83, - "jnb": 640, - "hkg": 38 - }, - { - "timestamp": "Feb 5, 02:00", - "syd": 52, - "jnb": 635, - "iad": 99, - "ams": 67, - "gru": 79, - "hkg": 54 - }, - { - "timestamp": "Feb 5, 03:00", - "gru": 40, - "ams": 44, - "iad": 75, - "jnb": 649, - "syd": 83, - "hkg": 50 - }, - { - "timestamp": "Feb 5, 04:00", - "gru": 122, - "jnb": 723, - "syd": 87, - "iad": 58, - "ams": 48, - "hkg": 54 - }, - { - "timestamp": "Feb 5, 05:00", - "ams": 60, - "iad": 59, - "jnb": 649, - "syd": 89, - "gru": 68, - "hkg": 49 - }, - { - "timestamp": "Feb 5, 06:00", - "hkg": 58, - "jnb": 654, - "syd": 85, - "ams": 38, - "iad": 56, - "gru": 65 - }, - { - "timestamp": "Feb 5, 07:00", - "hkg": 67, - "gru": 68, - "syd": 85, - "jnb": 633, - "iad": 42, - "ams": 41 - }, - { - "timestamp": "Feb 5, 08:00", - "jnb": 671, - "syd": 88, - "ams": 49, - "iad": 69, - "gru": 36, - "hkg": 71 - }, - { - "timestamp": "Feb 5, 09:00", - "ams": 58, - "iad": 66, - "syd": 82, - "jnb": 618, - "gru": 121, - "hkg": 52 - }, - { - "timestamp": "Feb 5, 10:00", - "hkg": 57, - "syd": 86, - "jnb": 630, - "ams": 48, - "iad": 68, - "gru": 39 - }, - { - "timestamp": "Feb 5, 11:00", - "hkg": 68, - "gru": 94, - "jnb": 684, - "syd": 51, - "iad": 70, - "ams": 124 - }, - { - "timestamp": "Feb 5, 12:00", - "hkg": 70, - "gru": 80, - "ams": 58, - "iad": 57, - "jnb": 661, - "syd": 93 - }, - { - "timestamp": "Feb 5, 13:00", - "hkg": 78, - "iad": 68, - "ams": 87, - "jnb": 659, - "syd": 80, - "gru": 68 - }, - { - "timestamp": "Feb 5, 14:00", - "hkg": 62, - "gru": 53, - "jnb": 651, - "syd": 82, - "iad": 67, - "ams": 54 - }, - { - "timestamp": "Feb 5, 15:00", - "gru": 49, - "syd": 86, - "jnb": 657, - "ams": 56, - "iad": 83, - "hkg": 73 - }, - { - "timestamp": "Feb 5, 16:00", - "syd": 140, - "jnb": 658, - "iad": 110, - "ams": 67, - "gru": 77, - "hkg": 66 - }, - { - "timestamp": "Feb 5, 17:00", - "hkg": 57, - "syd": 76, - "jnb": 688, - "iad": 80, - "ams": 58, - "gru": 76 - }, - { - "timestamp": "Feb 5, 18:00", - "hkg": 74, - "gru": 114, - "jnb": 668, - "syd": 79, - "iad": 88, - "ams": 77 - }, - { - "timestamp": "Feb 5, 19:00", - "gru": 79, - "ams": 68, - "iad": 63, - "jnb": 749, - "syd": 105, - "hkg": 61 - }, - { - "timestamp": "Feb 5, 20:00", - "ams": 64, - "iad": 59, - "syd": 132, - "jnb": 658, - "gru": 86, - "hkg": 70 - }, - { - "timestamp": "Feb 5, 21:00", - "ams": 60, - "iad": 82, - "jnb": 742, - "syd": 82, - "gru": 59, - "hkg": 64 - }, - { - "timestamp": "Feb 5, 22:00", - "gru": 112, - "syd": 85, - "jnb": 665, - "ams": 56, - "iad": 72, - "hkg": 58 - }, - { - "timestamp": "Feb 5, 23:00", - "iad": 48, - "ams": 49, - "syd": 90, - "jnb": 722, - "gru": 74, - "hkg": 58 - }, - { - "timestamp": "Feb 6, 00:00", - "hkg": 45, - "iad": 69, - "ams": 47, - "jnb": 655, - "syd": 84, - "gru": 89 - }, - { - "timestamp": "Feb 6, 01:00", - "hkg": 38, - "jnb": 643, - "syd": 90, - "ams": 39, - "iad": 75, - "gru": 111 - }, - { - "timestamp": "Feb 6, 02:00", - "gru": 50, - "jnb": 660, - "syd": 96, - "ams": 42, - "iad": 61, - "hkg": 58 - }, - { - "timestamp": "Feb 6, 03:00", - "iad": 61, - "ams": 46, - "jnb": 728, - "syd": 92, - "gru": 132, - "hkg": 56 - }, - { - "timestamp": "Feb 6, 04:00", - "hkg": 59, - "iad": 52, - "ams": 42, - "syd": 60, - "jnb": 653, - "gru": 46 - }, - { - "timestamp": "Feb 6, 05:00", - "hkg": 51, - "iad": 60, - "ams": 39, - "jnb": 724, - "syd": 85, - "gru": 39 - }, - { - "timestamp": "Feb 6, 06:00", - "hkg": 67, - "gru": 97, - "iad": 72, - "ams": 46, - "syd": 90, - "jnb": 686 - }, - { - "timestamp": "Feb 6, 07:00", - "hkg": 50, - "ams": 52, - "iad": 54, - "syd": 88, - "jnb": 661, - "gru": 95 - }, - { - "timestamp": "Feb 6, 08:00", - "hkg": 74, - "gru": 64, - "ams": 54, - "iad": 51, - "jnb": 639, - "syd": 86 - }, - { - "timestamp": "Feb 6, 09:00", - "hkg": 44, - "gru": 94, - "jnb": 729, - "syd": 86, - "ams": 82, - "iad": 54 - }, - { - "timestamp": "Feb 6, 10:00", - "hkg": 78, - "syd": 68, - "jnb": 656, - "ams": 67, - "iad": 59, - "gru": 37 - }, - { - "timestamp": "Feb 6, 11:00", - "hkg": 58, - "syd": 48, - "jnb": 725, - "ams": 62, - "iad": 59, - "gru": 95 - }, - { - "timestamp": "Feb 6, 12:00", - "hkg": 45, - "gru": 35, - "jnb": 656, - "syd": 62, - "ams": 69, - "iad": 45 - }, - { - "timestamp": "Feb 6, 13:00", - "hkg": 63, - "gru": 69, - "syd": 64, - "jnb": 703, - "ams": 57, - "iad": 78 - }, - { - "timestamp": "Feb 6, 14:00", - "gru": 45, - "jnb": 645, - "syd": 63, - "ams": 61, - "iad": 62, - "hkg": 68 - }, - { - "timestamp": "Feb 6, 15:00", - "iad": 51, - "ams": 57, - "jnb": 648, - "syd": 58, - "gru": 73, - "hkg": 78 - }, - { - "timestamp": "Feb 6, 16:00", - "gru": 83, - "syd": 66, - "jnb": 646, - "iad": 67, - "ams": 73, - "hkg": 66 - }, - { - "timestamp": "Feb 6, 17:00", - "gru": 82, - "ams": 77, - "iad": 84, - "syd": 82, - "jnb": 641, - "hkg": 62 - }, - { - "timestamp": "Feb 6, 18:00", - "hkg": 46, - "gru": 110, - "ams": 72, - "iad": 76, - "jnb": 665, - "syd": 81 - }, - { - "timestamp": "Feb 6, 19:00", - "hkg": 112, - "jnb": 655, - "syd": 82, - "iad": 75, - "ams": 79, - "gru": 73 - }, - { - "timestamp": "Feb 6, 20:00", - "gru": 80, - "jnb": 654, - "syd": 84, - "iad": 55, - "ams": 128, - "hkg": 49 - }, - { - "timestamp": "Feb 6, 21:00", - "gru": 91, - "syd": 79, - "jnb": 650, - "iad": 85, - "ams": 83, - "hkg": 94 - }, - { - "timestamp": "Feb 6, 22:00", - "jnb": 652, - "syd": 86, - "iad": 84, - "ams": 62, - "gru": 81, - "hkg": 61 - }, - { - "timestamp": "Feb 6, 23:00", - "hkg": 60, - "ams": 46, - "iad": 86, - "jnb": 700, - "syd": 92, - "gru": 111 - }, - { - "timestamp": "Feb 7, 00:00", - "hkg": 55, - "gru": 78, - "ams": 60, - "iad": 84, - "syd": 97, - "jnb": 643 - }, - { - "timestamp": "Feb 7, 01:00", - "hkg": 36, - "jnb": 628, - "syd": 183, - "iad": 100, - "ams": 36, - "gru": 162 - }, - { - "timestamp": "Feb 7, 02:00", - "hkg": 62, - "gru": 59, - "jnb": 643, - "syd": 88, - "ams": 41, - "iad": 76 - }, - { - "timestamp": "Feb 7, 03:00", - "gru": 74, - "syd": 85, - "jnb": 616, - "iad": 59, - "ams": 42, - "hkg": 67 - }, - { - "timestamp": "Feb 7, 04:00", - "iad": 82, - "ams": 64, - "syd": 101, - "jnb": 649, - "gru": 44, - "hkg": 81 - }, - { - "timestamp": "Feb 7, 05:00", - "hkg": 45, - "jnb": 638, - "syd": 87, - "iad": 74, - "ams": 40, - "gru": 68 - }, - { - "timestamp": "Feb 7, 06:00", - "hkg": 56, - "ams": 51, - "iad": 60, - "jnb": 633, - "syd": 92, - "gru": 68 - }, - { - "timestamp": "Feb 7, 07:00", - "hkg": 45, - "gru": 119, - "iad": 38, - "ams": 48, - "syd": 84, - "jnb": 642 - }, - { - "timestamp": "Feb 7, 08:00", - "gru": 65, - "syd": 87, - "jnb": 653, - "iad": 80, - "ams": 42, - "hkg": 73 - }, - { - "timestamp": "Feb 7, 09:00", - "gru": 143, - "iad": 69, - "ams": 113, - "jnb": 722, - "syd": 95, - "hkg": 78 - }, - { - "timestamp": "Feb 7, 10:00", - "jnb": 646, - "syd": 70, - "ams": 68, - "iad": 80, - "gru": 114, - "hkg": 64 - }, - { - "timestamp": "Feb 7, 11:00", - "gru": 67, - "syd": 72, - "jnb": 662, - "iad": 68, - "ams": 63, - "hkg": 66 - }, - { - "timestamp": "Feb 7, 12:00", - "hkg": 57, - "gru": 105, - "iad": 77, - "ams": 64, - "syd": 135, - "jnb": 661 - }, - { - "timestamp": "Feb 7, 13:00", - "hkg": 67, - "syd": 136, - "jnb": 661, - "ams": 62, - "iad": 66, - "gru": 47 - }, - { - "timestamp": "Feb 7, 14:00", - "hkg": 59, - "iad": 65, - "ams": 54, - "syd": 79, - "jnb": 656, - "gru": 48 - }, - { - "timestamp": "Feb 7, 15:00", - "gru": 70, - "ams": 64, - "iad": 109, - "syd": 76, - "jnb": 702, - "hkg": 71 - }, - { - "timestamp": "Feb 7, 16:00", - "syd": 78, - "jnb": 655, - "ams": 56, - "iad": 94, - "gru": 75, - "hkg": 65 - }, - { - "timestamp": "Feb 7, 17:00", - "iad": 82, - "ams": 68, - "jnb": 654, - "syd": 78, - "gru": 111, - "hkg": 51 - }, - { - "timestamp": "Feb 7, 18:00", - "gru": 84, - "ams": 86, - "iad": 73, - "jnb": 656, - "syd": 76, - "hkg": 91 - }, - { - "timestamp": "Feb 7, 19:00", - "syd": 83, - "jnb": 656, - "iad": 83, - "ams": 65, - "gru": 141, - "hkg": 55 - }, - { - "timestamp": "Feb 7, 20:00", - "gru": 86, - "iad": 61, - "ams": 80, - "syd": 166, - "jnb": 661, - "hkg": 222 - }, - { - "timestamp": "Feb 7, 21:00", - "hkg": 63, - "gru": 87, - "syd": 84, - "jnb": 662, - "ams": 62, - "iad": 113 - }, - { - "timestamp": "Feb 7, 22:00", - "hkg": 58, - "gru": 109, - "iad": 99, - "ams": 52, - "syd": 84, - "jnb": 707 - }, - { - "timestamp": "Feb 7, 23:00", - "hkg": 55, - "ams": 45, - "iad": 70, - "jnb": 653, - "syd": 88, - "gru": 55 - }, - { - "timestamp": "Feb 8, 00:00", - "hkg": 55, - "syd": 85, - "jnb": 640, - "ams": 42, - "iad": 63, - "gru": 82 - }, - { - "timestamp": "Feb 8, 01:00", - "hkg": 50, - "ams": 45, - "iad": 62, - "jnb": 631, - "syd": 87, - "gru": 82 - }, - { - "timestamp": "Feb 8, 02:00", - "iad": 64, - "ams": 42, - "jnb": 647, - "syd": 89, - "gru": 136, - "hkg": 45 - }, - { - "timestamp": "Feb 8, 03:00", - "gru": 80, - "ams": 55, - "iad": 60, - "syd": 95, - "jnb": 639, - "hkg": 50 - }, - { - "timestamp": "Feb 8, 04:00", - "ams": 40, - "iad": 66, - "syd": 83, - "jnb": 720, - "gru": 130, - "hkg": 71 - }, - { - "timestamp": "Feb 8, 05:00", - "gru": 71, - "syd": 48, - "jnb": 642, - "iad": 64, - "ams": 41, - "hkg": 54 - }, - { - "timestamp": "Feb 8, 06:00", - "gru": 100, - "ams": 42, - "iad": 54, - "syd": 89, - "jnb": 643, - "hkg": 73 - }, - { - "timestamp": "Feb 8, 07:00", - "hkg": 48, - "gru": 66, - "iad": 60, - "ams": 47, - "jnb": 654, - "syd": 87 - }, - { - "timestamp": "Feb 8, 08:00", - "hkg": 59, - "jnb": 657, - "syd": 88, - "iad": 72, - "ams": 44, - "gru": 94 - }, - { - "timestamp": "Feb 8, 09:00", - "gru": 36, - "jnb": 650, - "syd": 92, - "ams": 49, - "iad": 54, - "hkg": 58 - }, - { - "timestamp": "Feb 8, 10:00", - "syd": 85, - "jnb": 653, - "ams": 54, - "iad": 38, - "gru": 131, - "hkg": 45 - }, - { - "timestamp": "Feb 8, 11:00", - "hkg": 56, - "syd": 85, - "jnb": 649, - "ams": 52, - "iad": 41, - "gru": 73 - }, - { - "timestamp": "Feb 8, 12:00", - "hkg": 71, - "gru": 38, - "jnb": 730, - "syd": 87, - "ams": 56, - "iad": 44 - }, - { - "timestamp": "Feb 8, 13:00", - "hkg": 59, - "iad": 109, - "ams": 49, - "syd": 84, - "jnb": 658, - "gru": 185 - }, - { - "timestamp": "Feb 8, 14:00", - "hkg": 53, - "gru": 68, - "iad": 64, - "ams": 96, - "jnb": 658, - "syd": 48 - }, - { - "timestamp": "Feb 8, 15:00", - "hkg": 66, - "gru": 85, - "jnb": 662, - "syd": 80, - "iad": 83, - "ams": 59 - }, - { - "timestamp": "Feb 8, 16:00", - "gru": 78, - "syd": 80, - "jnb": 745, - "iad": 114, - "ams": 76, - "hkg": 53 - }, - { - "timestamp": "Feb 8, 17:00", - "gru": 102, - "syd": 84, - "jnb": 661, - "iad": 88, - "ams": 59, - "hkg": 71 - }, - { - "timestamp": "Feb 8, 18:00", - "hkg": 79, - "gru": 105, - "syd": 80, - "jnb": 655, - "ams": 60, - "iad": 89 - }, - { - "timestamp": "Feb 8, 19:00", - "hkg": 78, - "syd": 80, - "jnb": 663, - "ams": 75, - "iad": 60, - "gru": 111 - }, - { - "timestamp": "Feb 8, 20:00", - "jnb": 649, - "syd": 111, - "ams": 61, - "iad": 88, - "gru": 89, - "hkg": 64 - }, - { - "timestamp": "Feb 8, 21:00", - "gru": 132, - "syd": 87, - "jnb": 647, - "iad": 81, - "ams": 64, - "hkg": 291 - }, - { - "timestamp": "Feb 8, 22:00", - "iad": 54, - "ams": 48, - "jnb": 660, - "syd": 86, - "gru": 103, - "hkg": 37 - }, - { - "timestamp": "Feb 8, 23:00", - "jnb": 645, - "syd": 50, - "iad": 57, - "ams": 48, - "gru": 112, - "hkg": 48 - }, - { - "timestamp": "Feb 9, 00:00", - "gru": 102, - "syd": 94, - "jnb": 640, - "iad": 67, - "ams": 47, - "hkg": 64 - }, - { - "timestamp": "Feb 9, 01:00", - "gru": 58, - "syd": 86, - "jnb": 646, - "ams": 44, - "iad": 72, - "hkg": 65 - }, - { - "timestamp": "Feb 9, 02:00", - "jnb": 722, - "syd": 96, - "ams": 49, - "iad": 68, - "gru": 78, - "hkg": 49 - }, - { - "timestamp": "Feb 9, 03:00", - "hkg": 64, - "gru": 55, - "syd": 94, - "jnb": 636, - "ams": 42, - "iad": 71 - }, - { - "timestamp": "Feb 9, 04:00", - "hkg": 45, - "jnb": 642, - "syd": 97, - "ams": 43, - "iad": 62, - "gru": 73 - }, - { - "timestamp": "Feb 9, 05:00", - "syd": 84, - "jnb": 643, - "iad": 61, - "ams": 42, - "gru": 66, - "hkg": 55 - }, - { - "timestamp": "Feb 9, 06:00", - "gru": 77, - "jnb": 621, - "syd": 87, - "iad": 62, - "ams": 40, - "hkg": 63 - }, - { - "timestamp": "Feb 9, 07:00", - "gru": 42, - "iad": 69, - "ams": 42, - "jnb": 652, - "syd": 87, - "hkg": 56 - }, - { - "timestamp": "Feb 9, 08:00", - "syd": 42, - "jnb": 733, - "iad": 56, - "ams": 50, - "gru": 63, - "hkg": 60 - }, - { - "timestamp": "Feb 9, 09:00", - "syd": 78, - "jnb": 640, - "iad": 71, - "ams": 49, - "gru": 63, - "hkg": 57 - }, - { - "timestamp": "Feb 9, 10:00", - "hkg": 59, - "jnb": 663, - "syd": 78, - "iad": 64, - "ams": 58, - "gru": 71 - }, - { - "timestamp": "Feb 9, 11:00", - "hkg": 60, - "gru": 65, - "jnb": 655, - "syd": 86, - "iad": 51, - "ams": 69 - }, - { - "timestamp": "Feb 9, 12:00", - "hkg": 73, - "gru": 69, - "ams": 53, - "iad": 62, - "syd": 82, - "jnb": 736 - }, - { - "timestamp": "Feb 9, 13:00", - "hkg": 58, - "iad": 56, - "ams": 56, - "jnb": 650, - "syd": 85, - "gru": 47 - }, - { - "timestamp": "Feb 9, 14:00", - "iad": 53, - "ams": 75, - "syd": 82, - "jnb": 649, - "gru": 72, - "hkg": 58 - }, - { - "timestamp": "Feb 9, 15:00", - "syd": 84, - "jnb": 786, - "iad": 68, - "ams": 52, - "gru": 66, - "hkg": 57 - }, - { - "timestamp": "Feb 9, 16:00", - "gru": 170, - "jnb": 942, - "syd": 43, - "iad": 113, - "ams": 54, - "hkg": 52 - }, - { - "timestamp": "Feb 9, 17:00", - "ams": 53, - "iad": 80, - "syd": 43, - "jnb": 916, - "gru": 116, - "hkg": 52 - }, - { - "timestamp": "Feb 9, 18:00", - "gru": 86, - "syd": 77, - "jnb": 925, - "ams": 50, - "iad": 67, - "hkg": 45 - }, - { - "timestamp": "Feb 9, 19:00", - "hkg": 44, - "gru": 52, - "jnb": 921, - "syd": 82, - "iad": 68, - "ams": 56 - }, - { - "timestamp": "Feb 9, 20:00", - "hkg": 53, - "jnb": 919, - "syd": 79, - "ams": 72, - "iad": 74, - "gru": 126 - }, - { - "timestamp": "Feb 9, 21:00", - "gru": 73, - "iad": 79, - "ams": 47, - "syd": 125, - "jnb": 964, - "hkg": 212 - }, - { - "timestamp": "Feb 9, 22:00", - "syd": 77, - "jnb": 935, - "iad": 81, - "ams": 42, - "gru": 45, - "hkg": 87 - }, - { - "timestamp": "Feb 9, 23:00", - "hkg": 57, - "jnb": 923, - "syd": 92, - "ams": 45, - "iad": 58, - "gru": 130 - }, - { - "timestamp": "Feb 10, 00:00", - "hkg": 47, - "iad": 88, - "ams": 45, - "jnb": 918, - "syd": 81, - "gru": 87 - }, - { - "timestamp": "Feb 10, 01:00", - "hkg": 45, - "syd": 86, - "jnb": 1016, - "iad": 74, - "ams": 40, - "gru": 75 - }, - { - "timestamp": "Feb 10, 02:00", - "hkg": 79, - "gru": 112, - "syd": 82, - "jnb": 906, - "iad": 54, - "ams": 45 - }, - { - "timestamp": "Feb 10, 03:00", - "hkg": 45, - "jnb": 920, - "syd": 80, - "ams": 50, - "iad": 64, - "gru": 99 - }, - { - "timestamp": "Feb 10, 04:00", - "jnb": 934, - "syd": 50, - "iad": 71, - "ams": 44, - "gru": 72, - "hkg": 63 - }, - { - "timestamp": "Feb 10, 05:00", - "gru": 46, - "ams": 43, - "iad": 65, - "jnb": 992, - "syd": 86, - "hkg": 54 - }, - { - "timestamp": "Feb 10, 06:00", - "hkg": 49, - "gru": 62, - "syd": 95, - "jnb": 901, - "iad": 78, - "ams": 41 - }, - { - "timestamp": "Feb 10, 07:00", - "hkg": 57, - "jnb": 918, - "syd": 82, - "ams": 42, - "iad": 52, - "gru": 66 - }, - { - "timestamp": "Feb 10, 08:00", - "hkg": 44, - "iad": 56, - "ams": 44, - "jnb": 916, - "syd": 85, - "gru": 65 - }, - { - "timestamp": "Feb 10, 09:00", - "hkg": 56, - "syd": 87, - "jnb": 918, - "ams": 44, - "iad": 53, - "gru": 63 - }, - { - "timestamp": "Feb 10, 10:00", - "hkg": 59, - "gru": 88, - "ams": 49, - "iad": 68, - "syd": 84, - "jnb": 929 - }, - { - "timestamp": "Feb 10, 11:00", - "hkg": 61, - "jnb": 925, - "syd": 91, - "iad": 67, - "ams": 56, - "gru": 68 - }, - { - "timestamp": "Feb 10, 12:00", - "hkg": 50, - "gru": 67, - "jnb": 904, - "syd": 77, - "ams": 52, - "iad": 63 - }, - { - "timestamp": "Feb 10, 13:00", - "gru": 98, - "iad": 57, - "ams": 51, - "jnb": 934, - "syd": 38, - "hkg": 54 - }, - { - "timestamp": "Feb 10, 14:00", - "jnb": 928, - "syd": 81, - "iad": 69, - "ams": 134, - "gru": 104, - "hkg": 56 - }, - { - "timestamp": "Feb 10, 15:00", - "hkg": 57, - "gru": 63, - "jnb": 1006, - "syd": 84, - "ams": 49, - "iad": 59 - }, - { - "timestamp": "Feb 10, 16:00", - "hkg": 62, - "gru": 108, - "iad": 86, - "ams": 61, - "jnb": 921, - "syd": 83 - }, - { - "timestamp": "Feb 10, 17:00", - "hkg": 78, - "gru": 77, - "syd": 77, - "jnb": 910, - "iad": 71, - "ams": 60 - }, - { - "timestamp": "Feb 10, 18:00", - "gru": 77, - "iad": 58, - "ams": 78, - "syd": 81, - "jnb": 920, - "hkg": 66 - }, - { - "timestamp": "Feb 10, 19:00", - "ams": 57, - "iad": 71, - "jnb": 902, - "syd": 84, - "gru": 128, - "hkg": 66 - }, - { - "timestamp": "Feb 10, 20:00", - "gru": 46, - "jnb": 929, - "syd": 114, - "iad": 58, - "ams": 133, - "hkg": 52 - }, - { - "timestamp": "Feb 10, 21:00", - "ams": 74, - "iad": 72, - "jnb": 915, - "syd": 134, - "gru": 122, - "hkg": 49 - }, - { - "timestamp": "Feb 10, 22:00", - "hkg": 92, - "jnb": 925, - "syd": 83, - "ams": 48, - "iad": 65, - "gru": 81 - }, - { - "timestamp": "Feb 10, 23:00", - "hkg": 50, - "gru": 73, - "syd": 85, - "jnb": 996, - "iad": 59, - "ams": 45 - }, - { - "timestamp": "Feb 11, 00:00", - "hkg": 49, - "gru": 53, - "ams": 59, - "iad": 58, - "syd": 81, - "jnb": 894 - }, - { - "timestamp": "Feb 11, 01:00", - "hkg": 47, - "jnb": 914, - "syd": 88, - "ams": 45, - "iad": 71, - "gru": 53 - }, - { - "timestamp": "Feb 11, 02:00", - "hkg": 44, - "gru": 81, - "syd": 89, - "jnb": 885, - "ams": 80, - "iad": 75 - }, - { - "timestamp": "Feb 11, 03:00", - "gru": 44, - "iad": 75, - "ams": 54, - "syd": 86, - "jnb": 883, - "hkg": 72 - }, - { - "timestamp": "Feb 11, 04:00", - "iad": 73, - "ams": 51, - "jnb": 892, - "syd": 90, - "gru": 48, - "hkg": 74 - }, - { - "timestamp": "Feb 11, 05:00", - "gru": 92, - "iad": 60, - "ams": 44, - "syd": 83, - "jnb": 906, - "hkg": 60 - }, - { - "timestamp": "Feb 11, 06:00", - "iad": 60, - "ams": 54, - "jnb": 916, - "syd": 86, - "gru": 63, - "hkg": 58 - }, - { - "timestamp": "Feb 11, 07:00", - "hkg": 44, - "jnb": 982, - "syd": 89, - "ams": 62, - "iad": 58, - "gru": 66 - }, - { - "timestamp": "Feb 11, 08:00", - "hkg": 50, - "gru": 65, - "syd": 89, - "jnb": 924, - "ams": 48, - "iad": 62 - }, - { - "timestamp": "Feb 11, 09:00", - "hkg": 54, - "syd": 120, - "jnb": 942, - "iad": 56, - "ams": 44, - "gru": 122 - }, - { - "timestamp": "Feb 11, 10:00", - "gru": 37, - "syd": 94, - "jnb": 921, - "iad": 56, - "ams": 52, - "hkg": 56 - }, - { - "timestamp": "Feb 11, 11:00", - "ams": 59, - "iad": 57, - "syd": 90, - "jnb": 912, - "gru": 92, - "hkg": 53 - }, - { - "timestamp": "Feb 11, 12:00", - "hkg": 54, - "ams": 144, - "iad": 56, - "jnb": 921, - "syd": 50, - "gru": 62 - }, - { - "timestamp": "Feb 11, 13:00", - "hkg": 46, - "gru": 50, - "syd": 84, - "jnb": 916, - "ams": 58, - "iad": 66 - }, - { - "timestamp": "Feb 11, 14:00", - "hkg": 45, - "ams": 55, - "iad": 74, - "jnb": 920, - "syd": 80, - "gru": 92 - }, - { - "timestamp": "Feb 11, 15:00", - "hkg": 58, - "gru": 75, - "jnb": 894, - "syd": 81, - "iad": 52, - "ams": 63 - }, - { - "timestamp": "Feb 11, 16:00", - "gru": 64, - "syd": 84, - "jnb": 927, - "iad": 64, - "ams": 109, - "hkg": 53 - }, - { - "timestamp": "Feb 11, 17:00", - "hkg": 68, - "gru": 43, - "syd": 78, - "jnb": 920, - "iad": 67, - "ams": 68 - }, - { - "timestamp": "Feb 11, 18:00", - "hkg": 46, - "jnb": 1003, - "syd": 76, - "iad": 82, - "ams": 95, - "gru": 68 - }, - { - "timestamp": "Feb 11, 19:00", - "iad": 70, - "ams": 68, - "syd": 80, - "jnb": 934, - "gru": 106, - "hkg": 45 - }, - { - "timestamp": "Feb 11, 20:00", - "gru": 73, - "iad": 42, - "ams": 63, - "jnb": 935, - "syd": 83, - "hkg": 67 - }, - { - "timestamp": "Feb 11, 21:00", - "hkg": 56, - "gru": 96, - "syd": 88, - "jnb": 929, - "iad": 70, - "ams": 82 - }, - { - "timestamp": "Feb 11, 22:00", - "hkg": 38, - "jnb": 993, - "syd": 127, - "iad": 80, - "ams": 75, - "gru": 40 - }, - { - "timestamp": "Feb 11, 23:00", - "hkg": 98, - "gru": 69, - "jnb": 925, - "syd": 54, - "ams": 76, - "iad": 62 - }, - { - "timestamp": "Feb 12, 00:00", - "hkg": 39, - "syd": 85, - "jnb": 913, - "ams": 68, - "iad": 59, - "gru": 99 - }, - { - "timestamp": "Feb 12, 01:00", - "hkg": 54, - "gru": 47, - "syd": 92, - "jnb": 926, - "iad": 70, - "ams": 41 - }, - { - "timestamp": "Feb 12, 02:00", - "gru": 83, - "jnb": 997, - "syd": 87, - "iad": 68, - "ams": 40, - "hkg": 48 - }, - { - "timestamp": "Feb 12, 03:00", - "ams": 51, - "iad": 59, - "jnb": 919, - "syd": 87, - "gru": 38, - "hkg": 50 - }, - { - "timestamp": "Feb 12, 04:00", - "hkg": 68, - "gru": 45, - "ams": 98, - "iad": 58, - "jnb": 918, - "syd": 125 - }, - { - "timestamp": "Feb 12, 05:00", - "hkg": 51, - "syd": 86, - "jnb": 914, - "ams": 86, - "iad": 78, - "gru": 124 - }, - { - "timestamp": "Feb 12, 06:00", - "jnb": 913, - "syd": 464, - "ams": 443, - "iad": 56, - "gru": 88, - "hkg": 44 - }, - { - "timestamp": "Feb 12, 07:00", - "gru": 63, - "iad": 54, - "ams": 100, - "jnb": 912, - "syd": 92, - "hkg": 48 - }, - { - "timestamp": "Feb 12, 08:00", - "syd": 46, - "jnb": 910, - "iad": 54, - "ams": 185, - "gru": 34, - "hkg": 62 - }, - { - "timestamp": "Feb 12, 09:00", - "gru": 88, - "jnb": 914, - "syd": 210, - "ams": 351, - "iad": 56, - "hkg": 58 - }, - { - "timestamp": "Feb 12, 10:00", - "gru": 33, - "iad": 56, - "ams": 59, - "jnb": 928, - "syd": 90, - "hkg": 64 - }, - { - "timestamp": "Feb 12, 11:00", - "hkg": 62, - "gru": 93, - "ams": 62, - "iad": 64, - "syd": 90, - "jnb": 928 - }, - { - "timestamp": "Feb 12, 12:00", - "hkg": 62, - "syd": 118, - "jnb": 1041, - "ams": 57, - "iad": 48, - "gru": 42 - }, - { - "timestamp": "Feb 12, 13:00", - "hkg": 72, - "syd": 81, - "jnb": 926, - "ams": 58, - "iad": 58, - "gru": 80 - }, - { - "timestamp": "Feb 12, 14:00", - "hkg": 57, - "gru": 77, - "syd": 80, - "jnb": 1012, - "iad": 66, - "ams": 151 - }, - { - "timestamp": "Feb 12, 15:00", - "gru": 104, - "jnb": 937, - "syd": 80, - "ams": 252, - "iad": 63, - "hkg": 116 - }, - { - "timestamp": "Feb 12, 16:00", - "ams": 131, - "iad": 99, - "jnb": 729, - "syd": 74, - "gru": 68, - "hkg": 80 - }, - { - "timestamp": "Feb 12, 17:00", - "ams": 68, - "iad": 70, - "syd": 43, - "jnb": 665, - "gru": 102, - "hkg": 79 - }, - { - "timestamp": "Feb 12, 18:00", - "syd": 81, - "jnb": 657, - "iad": 78, - "ams": 69, - "gru": 105, - "hkg": 55 - }, - { - "timestamp": "Feb 12, 19:00", - "gru": 80, - "jnb": 672, - "syd": 82, - "ams": 116, - "iad": 57, - "hkg": 50 - }, - { - "timestamp": "Feb 12, 20:00", - "hkg": 59, - "gru": 47, - "ams": 66, - "iad": 67, - "jnb": 734, - "syd": 115 - }, - { - "timestamp": "Feb 12, 21:00", - "hkg": 48, - "jnb": 640, - "syd": 81, - "iad": 75, - "ams": 103, - "gru": 109 - }, - { - "timestamp": "Feb 12, 22:00", - "gru": 228, - "syd": 131, - "jnb": 798, - "ams": 54, - "iad": 82, - "hkg": 62 - }, - { - "timestamp": "Feb 12, 23:00", - "jnb": 621, - "syd": 74, - "iad": 79, - "ams": 53, - "gru": 106, - "hkg": 103 - }, - { - "timestamp": "Feb 13, 00:00", - "hkg": 51, - "iad": 76, - "ams": 50, - "jnb": 642, - "syd": 52, - "gru": 77 - }, - { - "timestamp": "Feb 13, 01:00", - "gru": 131, - "syd": 92, - "jnb": 640, - "ams": 38, - "iad": 71, - "hkg": 72 - }, - { - "timestamp": "Feb 13, 02:00", - "gru": 83, - "iad": 85, - "ams": 68, - "syd": 85, - "jnb": 749, - "hkg": 51 - }, - { - "timestamp": "Feb 13, 03:00", - "jnb": 714, - "syd": 84, - "ams": 37, - "iad": 63, - "gru": 42, - "hkg": 54 - }, - { - "timestamp": "Feb 13, 04:00", - "gru": 40, - "ams": 61, - "iad": 85, - "jnb": 641, - "syd": 92, - "hkg": 62 - }, - { - "timestamp": "Feb 13, 05:00", - "hkg": 73, - "gru": 34, - "jnb": 641, - "syd": 87, - "iad": 72, - "ams": 44 - }, - { - "timestamp": "Feb 13, 06:00", - "hkg": 46, - "jnb": 711, - "syd": 88, - "ams": 47, - "iad": 61, - "gru": 39 - }, - { - "timestamp": "Feb 13, 07:00", - "jnb": 718, - "syd": 106, - "ams": 48, - "iad": 76, - "gru": 34, - "hkg": 63 - }, - { - "timestamp": "Feb 13, 08:00", - "gru": 40, - "ams": 47, - "iad": 49, - "jnb": 629, - "syd": 48, - "hkg": 66 - }, - { - "timestamp": "Feb 13, 09:00", - "hkg": 54, - "syd": 86, - "jnb": 658, - "ams": 83, - "iad": 72, - "gru": 68 - }, - { - "timestamp": "Feb 13, 10:00", - "hkg": 56, - "iad": 76, - "ams": 52, - "syd": 83, - "jnb": 653, - "gru": 118 - }, - { - "timestamp": "Feb 13, 11:00", - "hkg": 59, - "gru": 219, - "ams": 100, - "iad": 56, - "jnb": 660, - "syd": 88 - }, - { - "timestamp": "Feb 13, 12:00", - "hkg": 43, - "ams": 115, - "iad": 54, - "jnb": 675, - "syd": 90, - "gru": 62 - }, - { - "timestamp": "Feb 13, 13:00", - "hkg": 60, - "gru": 98, - "jnb": 668, - "syd": 84, - "iad": 69, - "ams": 48 - }, - { - "timestamp": "Feb 13, 14:00", - "gru": 126, - "jnb": 660, - "syd": 81, - "ams": 55, - "iad": 74, - "hkg": 73 - }, - { - "timestamp": "Feb 13, 15:00", - "syd": 85, - "jnb": 787, - "iad": 59, - "ams": 78, - "gru": 38, - "hkg": 69 - }, - { - "timestamp": "Feb 13, 16:00", - "hkg": 65, - "gru": 86, - "iad": 84, - "ams": 78, - "jnb": 659, - "syd": 103 - }, - { - "timestamp": "Feb 13, 17:00", - "hkg": 83, - "ams": 69, - "iad": 74, - "syd": 78, - "jnb": 885, - "gru": 100 - }, - { - "timestamp": "Feb 13, 18:00", - "ams": 156, - "iad": 56, - "jnb": 712, - "syd": 76, - "gru": 50, - "hkg": 61 - }, - { - "timestamp": "Feb 13, 19:00", - "jnb": 650, - "syd": 38, - "ams": 71, - "iad": 78, - "gru": 81, - "hkg": 62 - }, - { - "timestamp": "Feb 13, 20:00", - "gru": 46, - "syd": 134, - "jnb": 787, - "ams": 87, - "iad": 106, - "hkg": 64 - }, - { - "timestamp": "Feb 13, 21:00", - "iad": 88, - "ams": 70, - "jnb": 668, - "syd": 85, - "gru": 101, - "hkg": 46 - }, - { - "timestamp": "Feb 13, 22:00", - "gru": 130, - "iad": 94, - "ams": 105, - "syd": 127, - "jnb": 650, - "hkg": 48 - }, - { - "timestamp": "Feb 13, 23:00", - "hkg": 103, - "gru": 104, - "iad": 94, - "ams": 47, - "syd": 89, - "jnb": 659 - }, - { - "timestamp": "Feb 14, 00:00", - "hkg": 59, - "iad": 90, - "ams": 48, - "jnb": 648, - "syd": 90, - "gru": 148 - }, - { - "timestamp": "Feb 14, 01:00", - "hkg": 70, - "gru": 54, - "iad": 64, - "ams": 47, - "syd": 86, - "jnb": 744 - }, - { - "timestamp": "Feb 14, 02:00", - "hkg": 86, - "iad": 62, - "ams": 50, - "jnb": 637, - "syd": 88, - "gru": 78 - }, - { - "timestamp": "Feb 14, 03:00", - "hkg": 44, - "jnb": 798, - "syd": 98, - "iad": 74, - "ams": 39, - "gru": 80 - }, - { - "timestamp": "Feb 14, 04:00", - "syd": 87, - "jnb": 633, - "iad": 60, - "ams": 52, - "gru": 43, - "hkg": 64 - }, - { - "timestamp": "Feb 14, 05:00", - "gru": 38, - "jnb": 738, - "syd": 96, - "ams": 45, - "iad": 75, - "hkg": 68 - }, - { - "timestamp": "Feb 14, 06:00", - "ams": 44, - "iad": 66, - "syd": 52, - "jnb": 724, - "gru": 75, - "hkg": 71 - }, - { - "timestamp": "Feb 14, 07:00", - "gru": 63, - "ams": 57, - "iad": 67, - "syd": 100, - "jnb": 776, - "hkg": 51 - }, - { - "timestamp": "Feb 14, 08:00", - "hkg": 75, - "gru": 40, - "ams": 41, - "iad": 71, - "jnb": 651, - "syd": 83 - }, - { - "timestamp": "Feb 14, 09:00", - "iad": 70, - "ams": 80, - "jnb": 750, - "syd": 87, - "gru": 67, - "hkg": 63 - }, - { - "timestamp": "Feb 14, 10:00", - "hkg": 64, - "gru": 66, - "iad": 53, - "ams": 51, - "jnb": 655, - "syd": 84 - }, - { - "timestamp": "Feb 14, 11:00", - "hkg": 42, - "gru": 68, - "jnb": 812, - "syd": 84, - "iad": 68, - "ams": 56 - }, - { - "timestamp": "Feb 14, 12:00", - "hkg": 58, - "syd": 83, - "jnb": 652, - "iad": 67, - "ams": 57, - "gru": 98 - }, - { - "timestamp": "Feb 14, 13:00", - "jnb": 680, - "syd": 86, - "ams": 50, - "iad": 64, - "gru": 122, - "hkg": 78 - }, - { - "timestamp": "Feb 14, 14:00", - "gru": 165, - "syd": 80, - "jnb": 716, - "ams": 49, - "iad": 83, - "hkg": 96 - }, - { - "timestamp": "Feb 14, 15:00", - "ams": 81, - "iad": 84, - "syd": 82, - "jnb": 724, - "gru": 75, - "hkg": 85 - }, - { - "timestamp": "Feb 14, 16:00", - "gru": 52, - "ams": 47, - "iad": 76, - "jnb": 685, - "syd": 80, - "hkg": 63 - }, - { - "timestamp": "Feb 14, 17:00", - "hkg": 78, - "ams": 53, - "iad": 79, - "jnb": 686, - "syd": 73, - "gru": 53 - }, - { - "timestamp": "Feb 14, 18:00", - "hkg": 74, - "gru": 84, - "ams": 54, - "iad": 71, - "syd": 39, - "jnb": 659 - }, - { - "timestamp": "Feb 14, 19:00", - "hkg": 59, - "gru": 93, - "syd": 79, - "jnb": 643, - "ams": 49, - "iad": 98 - }, - { - "timestamp": "Feb 14, 20:00", - "gru": 70, - "syd": 73, - "jnb": 653, - "iad": 49, - "ams": 55, - "hkg": 36 - }, - { - "timestamp": "Feb 14, 21:00", - "jnb": 619, - "syd": 82, - "ams": 58, - "iad": 73, - "gru": 136, - "hkg": 70 - }, - { - "timestamp": "Feb 14, 22:00", - "hkg": 40, - "syd": 132, - "jnb": 685, - "ams": 72, - "iad": 58, - "gru": 109 - }, - { - "timestamp": "Feb 14, 23:00", - "hkg": 51, - "gru": 98, - "syd": 90, - "jnb": 682, - "ams": 42, - "iad": 73 - }, - { - "timestamp": "Feb 15, 00:00", - "hkg": 72, - "ams": 49, - "iad": 81, - "jnb": 643, - "syd": 102, - "gru": 123 - }, - { - "timestamp": "Feb 15, 01:00", - "hkg": 65, - "gru": 85, - "iad": 76, - "ams": 38, - "syd": 90, - "jnb": 666 - }, - { - "timestamp": "Feb 15, 02:00", - "gru": 90, - "syd": 91, - "jnb": 640, - "iad": 59, - "ams": 38, - "hkg": 58 - }, - { - "timestamp": "Feb 15, 03:00", - "jnb": 636, - "syd": 90, - "ams": 44, - "iad": 76, - "gru": 77, - "hkg": 61 - }, - { - "timestamp": "Feb 15, 04:00", - "iad": 68, - "ams": 50, - "jnb": 642, - "syd": 92, - "gru": 45, - "hkg": 56 - }, - { - "timestamp": "Feb 15, 05:00", - "hkg": 64, - "gru": 128, - "syd": 90, - "jnb": 640, - "ams": 49, - "iad": 69 - }, - { - "timestamp": "Feb 15, 06:00", - "hkg": 69, - "ams": 44, - "iad": 55, - "syd": 58, - "jnb": 644, - "gru": 70 - }, - { - "timestamp": "Feb 15, 07:00", - "iad": 66, - "ams": 44, - "jnb": 642, - "syd": 90, - "gru": 67, - "hkg": 78 - }, - { - "timestamp": "Feb 15, 08:00", - "gru": 38, - "ams": 45, - "iad": 55, - "jnb": 644, - "syd": 89, - "hkg": 65 - }, - { - "timestamp": "Feb 15, 09:00", - "gru": 68, - "ams": 52, - "iad": 58, - "syd": 88, - "jnb": 653, - "hkg": 65 - }, - { - "timestamp": "Feb 15, 10:00", - "syd": 89, - "jnb": 652, - "ams": 62, - "iad": 70, - "gru": 116, - "hkg": 70 - }, - { - "timestamp": "Feb 15, 11:00", - "hkg": 87, - "jnb": 694, - "syd": 88, - "iad": 63, - "ams": 58, - "gru": 41 - }, - { - "timestamp": "Feb 15, 12:00", - "hkg": 66, - "ams": 50, - "iad": 51, - "jnb": 650, - "syd": 86, - "gru": 99 - }, - { - "timestamp": "Feb 15, 13:00", - "hkg": 73, - "gru": 100, - "jnb": 767, - "syd": 85, - "iad": 58, - "ams": 49 - }, - { - "timestamp": "Feb 15, 14:00", - "hkg": 95, - "gru": 47, - "jnb": 712, - "syd": 79, - "ams": 50, - "iad": 78 - }, - { - "timestamp": "Feb 15, 15:00", - "hkg": 103, - "syd": 80, - "jnb": 689, - "iad": 82, - "ams": 66, - "gru": 92 - }, - { - "timestamp": "Feb 15, 16:00", - "syd": 148, - "jnb": 625, - "ams": 68, - "iad": 57, - "gru": 168, - "hkg": 74 - }, - { - "timestamp": "Feb 17, 10:00", - "hkg": 123, - "iad": 123, - "ams": 57, - "syd": 550, - "jnb": 695, - "gru": 39 - }, - { - "timestamp": "Feb 17, 11:00", - "gru": 68, - "jnb": 640, - "syd": 49, - "ams": 47, - "iad": 83, - "hkg": 57 - }, - { - "timestamp": "Feb 17, 12:00", - "syd": 93, - "jnb": 639, - "ams": 47, - "iad": 127, - "gru": 74, - "hkg": 46 - }, - { - "timestamp": "Feb 17, 13:00", - "jnb": 648, - "syd": 87, - "ams": 48, - "iad": 118, - "gru": 68, - "hkg": 53 - }, - { - "timestamp": "Feb 17, 14:00", - "hkg": 79, - "syd": 86, - "jnb": 655, - "ams": 50, - "iad": 117, - "gru": 74 - }, - { - "timestamp": "Feb 17, 15:00", - "hkg": 71, - "gru": 80, - "iad": 93, - "ams": 56, - "syd": 86, - "jnb": 663 - }, - { - "timestamp": "Feb 17, 16:00", - "hkg": 72, - "jnb": 750, - "syd": 80, - "iad": 84, - "ams": 48, - "gru": 72 - }, - { - "timestamp": "Feb 17, 17:00", - "hkg": 52, - "gru": 78, - "syd": 83, - "jnb": 657, - "ams": 54, - "iad": 66 - }, - { - "timestamp": "Feb 17, 18:00", - "gru": 50, - "syd": 96, - "jnb": 702, - "iad": 90, - "ams": 126, - "hkg": 54 - }, - { - "timestamp": "Feb 17, 19:00", - "jnb": 683, - "syd": 73, - "ams": 58, - "iad": 104, - "gru": 42, - "hkg": 58 - }, - { - "timestamp": "Feb 17, 20:00", - "hkg": 85, - "iad": 78, - "ams": 60, - "syd": 81, - "jnb": 744, - "gru": 55 - }, - { - "timestamp": "Feb 17, 21:00", - "hkg": 78, - "gru": 76, - "syd": 87, - "jnb": 674, - "ams": 67, - "iad": 64 - }, - { - "timestamp": "Feb 17, 22:00", - "hkg": 52, - "gru": 110, - "iad": 73, - "ams": 55, - "syd": 81, - "jnb": 708 - }, - { - "timestamp": "Feb 17, 23:00", - "gru": 46, - "ams": 46, - "iad": 76, - "jnb": 614, - "syd": 83, - "hkg": 46 - }, - { - "timestamp": "Feb 18, 00:00", - "jnb": 610, - "syd": 81, - "ams": 64, - "iad": 72, - "gru": 46, - "hkg": 52 - }, - { - "timestamp": "Feb 18, 01:00", - "syd": 92, - "jnb": 617, - "ams": 60, - "iad": 73, - "gru": 110, - "hkg": 62 - }, - { - "timestamp": "Feb 18, 02:00", - "gru": 108, - "syd": 90, - "jnb": 610, - "iad": 70, - "ams": 62, - "hkg": 61 - }, - { - "timestamp": "Feb 18, 03:00", - "hkg": 68, - "gru": 73, - "jnb": 606, - "syd": 88, - "ams": 39, - "iad": 78 - }, - { - "timestamp": "Feb 18, 04:00", - "hkg": 59, - "ams": 46, - "iad": 72, - "jnb": 622, - "syd": 86, - "gru": 71 - }, - { - "timestamp": "Feb 18, 05:00", - "gru": 70, - "syd": 87, - "jnb": 644, - "iad": 72, - "ams": 43, - "hkg": 71 - }, - { - "timestamp": "Feb 18, 06:00", - "gru": 66, - "ams": 64, - "iad": 56, - "syd": 94, - "jnb": 643, - "hkg": 68 - }, - { - "timestamp": "Feb 18, 07:00", - "iad": 44, - "ams": 48, - "jnb": 643, - "syd": 92, - "gru": 38, - "hkg": 68 - }, - { - "timestamp": "Feb 18, 08:00", - "hkg": 75, - "jnb": 658, - "syd": 120, - "iad": 65, - "ams": 47, - "gru": 66 - }, - { - "timestamp": "Feb 18, 09:00", - "gru": 66, - "ams": 59, - "iad": 71, - "syd": 89, - "jnb": 649, - "hkg": 66 - }, - { - "timestamp": "Feb 18, 10:00", - "syd": 97, - "jnb": 647, - "iad": 61, - "ams": 54, - "gru": 66, - "hkg": 70 - }, - { - "timestamp": "Feb 18, 11:00", - "gru": 73, - "jnb": 664, - "syd": 129, - "ams": 70, - "iad": 66, - "hkg": 77 - }, - { - "timestamp": "Feb 18, 12:00", - "hkg": 43, - "gru": 41, - "ams": 61, - "iad": 67, - "jnb": 639, - "syd": 119 - }, - { - "timestamp": "Feb 18, 13:00", - "hkg": 58, - "jnb": 635, - "syd": 91, - "iad": 75, - "ams": 59, - "gru": 73 - }, - { - "timestamp": "Feb 18, 14:00", - "hkg": 98, - "ams": 66, - "iad": 54, - "jnb": 664, - "syd": 82, - "gru": 74 - }, - { - "timestamp": "Feb 18, 15:00", - "hkg": 65, - "syd": 79, - "jnb": 687, - "ams": 79, - "iad": 77, - "gru": 130 - }, - { - "timestamp": "Feb 18, 16:00", - "hkg": 59, - "gru": 146, - "ams": 95, - "iad": 69, - "syd": 85, - "jnb": 727 - }, - { - "timestamp": "Feb 18, 17:00", - "jnb": 659, - "syd": 82, - "ams": 69, - "iad": 74, - "gru": 116, - "hkg": 74 - }, - { - "timestamp": "Feb 18, 18:00", - "gru": 77, - "jnb": 646, - "syd": 93, - "iad": 89, - "ams": 76, - "hkg": 46 - } - ] - }, - "metricsByRegion": [ - { - "region": "syd", - "avgLatency": 89, - "p75Latency": 60, - "p90Latency": 268, - "p95Latency": 287, - "p99Latency": 310 - }, - { - "region": "gru", - "avgLatency": 77, - "p75Latency": 60, - "p90Latency": 211, - "p95Latency": 219, - "p99Latency": 296 - }, - { - "region": "iad", - "avgLatency": 74, - "p75Latency": 120, - "p90Latency": 132, - "p95Latency": 139, - "p99Latency": 177 - }, - { - "region": "ams", - "avgLatency": 57, - "p75Latency": 60, - "p90Latency": 73, - "p95Latency": 88, - "p99Latency": 169 - }, - { - "region": "hkg", - "avgLatency": 67, - "p75Latency": 92, - "p90Latency": 111, - "p95Latency": 123, - "p99Latency": 158 - }, - { - "region": "jnb", - "avgLatency": 660, - "p75Latency": 705, - "p90Latency": 731, - "p95Latency": 748, - "p99Latency": 1110 - } - ] -} \ No newline at end of file + "regions": ["ams", "iad", "hkg", "jnb", "syd", "gru"], + "data": { + "regions": ["ams", "gru", "hkg", "iad", "jnb", "syd"], + "data": [ + { + "timestamp": "Feb 4, 00:00", + "ams": 64, + "iad": 82, + "syd": 78, + "jnb": 724, + "gru": 44, + "hkg": 37 + }, + { + "timestamp": "Feb 4, 01:00", + "ams": 49, + "iad": 81, + "syd": 83, + "jnb": 648, + "gru": 73, + "hkg": 50 + }, + { + "timestamp": "Feb 4, 02:00", + "hkg": 50, + "ams": 61, + "iad": 68, + "jnb": 728, + "syd": 48, + "gru": 71 + }, + { + "timestamp": "Feb 4, 03:00", + "hkg": 59, + "jnb": 646, + "syd": 83, + "ams": 50, + "iad": 56, + "gru": 39 + }, + { + "timestamp": "Feb 4, 04:00", + "hkg": 50, + "gru": 42, + "syd": 84, + "jnb": 643, + "ams": 54, + "iad": 70 + }, + { + "timestamp": "Feb 4, 05:00", + "gru": 126, + "syd": 87, + "jnb": 646, + "ams": 40, + "iad": 76, + "hkg": 49 + }, + { + "timestamp": "Feb 4, 06:00", + "jnb": 643, + "syd": 87, + "ams": 40, + "iad": 52, + "gru": 91, + "hkg": 63 + }, + { + "timestamp": "Feb 4, 07:00", + "hkg": 58, + "jnb": 642, + "syd": 89, + "ams": 46, + "iad": 65, + "gru": 95 + }, + { + "timestamp": "Feb 4, 08:00", + "hkg": 68, + "gru": 63, + "syd": 81, + "jnb": 640, + "ams": 48, + "iad": 68 + }, + { + "timestamp": "Feb 4, 09:00", + "hkg": 70, + "iad": 69, + "ams": 58, + "jnb": 648, + "syd": 51, + "gru": 38 + }, + { + "timestamp": "Feb 4, 10:00", + "hkg": 54, + "gru": 116, + "jnb": 664, + "syd": 86, + "iad": 68, + "ams": 53 + }, + { + "timestamp": "Feb 4, 11:00", + "gru": 69, + "syd": 101, + "jnb": 647, + "ams": 47, + "iad": 54, + "hkg": 76 + }, + { + "timestamp": "Feb 4, 12:00", + "gru": 70, + "iad": 63, + "ams": 56, + "syd": 87, + "jnb": 649, + "hkg": 62 + }, + { + "timestamp": "Feb 4, 13:00", + "syd": 84, + "jnb": 642, + "ams": 55, + "iad": 36, + "gru": 99, + "hkg": 51 + }, + { + "timestamp": "Feb 4, 14:00", + "hkg": 83, + "gru": 98, + "ams": 54, + "iad": 58, + "jnb": 648, + "syd": 82 + }, + { + "timestamp": "Feb 4, 15:00", + "hkg": 83, + "iad": 58, + "ams": 63, + "syd": 81, + "jnb": 749, + "gru": 72 + }, + { + "timestamp": "Feb 4, 16:00", + "ams": 64, + "iad": 60, + "syd": 39, + "jnb": 731, + "gru": 99, + "hkg": 78 + }, + { + "timestamp": "Feb 4, 17:00", + "jnb": 650, + "syd": 73, + "ams": 92, + "iad": 93, + "gru": 93, + "hkg": 52 + }, + { + "timestamp": "Feb 4, 18:00", + "gru": 72, + "jnb": 660, + "syd": 70, + "ams": 73, + "iad": 81, + "hkg": 72 + }, + { + "timestamp": "Feb 4, 19:00", + "syd": 247, + "jnb": 674, + "iad": 74, + "ams": 102, + "gru": 95, + "hkg": 105 + }, + { + "timestamp": "Feb 4, 20:00", + "ams": 68, + "iad": 68, + "syd": 133, + "jnb": 659, + "gru": 101, + "hkg": 82 + }, + { + "timestamp": "Feb 4, 21:00", + "hkg": 49, + "syd": 84, + "jnb": 714, + "iad": 72, + "ams": 64, + "gru": 54 + }, + { + "timestamp": "Feb 4, 22:00", + "hkg": 68, + "gru": 77, + "iad": 63, + "ams": 51, + "syd": 83, + "jnb": 697 + }, + { + "timestamp": "Feb 4, 23:00", + "jnb": 649, + "syd": 78, + "iad": 66, + "ams": 50, + "gru": 78, + "hkg": 61 + }, + { + "timestamp": "Feb 5, 00:00", + "gru": 152, + "jnb": 715, + "syd": 84, + "ams": 46, + "iad": 46, + "hkg": 44 + }, + { + "timestamp": "Feb 5, 01:00", + "gru": 136, + "iad": 78, + "ams": 58, + "syd": 83, + "jnb": 640, + "hkg": 38 + }, + { + "timestamp": "Feb 5, 02:00", + "syd": 52, + "jnb": 635, + "iad": 99, + "ams": 67, + "gru": 79, + "hkg": 54 + }, + { + "timestamp": "Feb 5, 03:00", + "gru": 40, + "ams": 44, + "iad": 75, + "jnb": 649, + "syd": 83, + "hkg": 50 + }, + { + "timestamp": "Feb 5, 04:00", + "gru": 122, + "jnb": 723, + "syd": 87, + "iad": 58, + "ams": 48, + "hkg": 54 + }, + { + "timestamp": "Feb 5, 05:00", + "ams": 60, + "iad": 59, + "jnb": 649, + "syd": 89, + "gru": 68, + "hkg": 49 + }, + { + "timestamp": "Feb 5, 06:00", + "hkg": 58, + "jnb": 654, + "syd": 85, + "ams": 38, + "iad": 56, + "gru": 65 + }, + { + "timestamp": "Feb 5, 07:00", + "hkg": 67, + "gru": 68, + "syd": 85, + "jnb": 633, + "iad": 42, + "ams": 41 + }, + { + "timestamp": "Feb 5, 08:00", + "jnb": 671, + "syd": 88, + "ams": 49, + "iad": 69, + "gru": 36, + "hkg": 71 + }, + { + "timestamp": "Feb 5, 09:00", + "ams": 58, + "iad": 66, + "syd": 82, + "jnb": 618, + "gru": 121, + "hkg": 52 + }, + { + "timestamp": "Feb 5, 10:00", + "hkg": 57, + "syd": 86, + "jnb": 630, + "ams": 48, + "iad": 68, + "gru": 39 + }, + { + "timestamp": "Feb 5, 11:00", + "hkg": 68, + "gru": 94, + "jnb": 684, + "syd": 51, + "iad": 70, + "ams": 124 + }, + { + "timestamp": "Feb 5, 12:00", + "hkg": 70, + "gru": 80, + "ams": 58, + "iad": 57, + "jnb": 661, + "syd": 93 + }, + { + "timestamp": "Feb 5, 13:00", + "hkg": 78, + "iad": 68, + "ams": 87, + "jnb": 659, + "syd": 80, + "gru": 68 + }, + { + "timestamp": "Feb 5, 14:00", + "hkg": 62, + "gru": 53, + "jnb": 651, + "syd": 82, + "iad": 67, + "ams": 54 + }, + { + "timestamp": "Feb 5, 15:00", + "gru": 49, + "syd": 86, + "jnb": 657, + "ams": 56, + "iad": 83, + "hkg": 73 + }, + { + "timestamp": "Feb 5, 16:00", + "syd": 140, + "jnb": 658, + "iad": 110, + "ams": 67, + "gru": 77, + "hkg": 66 + }, + { + "timestamp": "Feb 5, 17:00", + "hkg": 57, + "syd": 76, + "jnb": 688, + "iad": 80, + "ams": 58, + "gru": 76 + }, + { + "timestamp": "Feb 5, 18:00", + "hkg": 74, + "gru": 114, + "jnb": 668, + "syd": 79, + "iad": 88, + "ams": 77 + }, + { + "timestamp": "Feb 5, 19:00", + "gru": 79, + "ams": 68, + "iad": 63, + "jnb": 749, + "syd": 105, + "hkg": 61 + }, + { + "timestamp": "Feb 5, 20:00", + "ams": 64, + "iad": 59, + "syd": 132, + "jnb": 658, + "gru": 86, + "hkg": 70 + }, + { + "timestamp": "Feb 5, 21:00", + "ams": 60, + "iad": 82, + "jnb": 742, + "syd": 82, + "gru": 59, + "hkg": 64 + }, + { + "timestamp": "Feb 5, 22:00", + "gru": 112, + "syd": 85, + "jnb": 665, + "ams": 56, + "iad": 72, + "hkg": 58 + }, + { + "timestamp": "Feb 5, 23:00", + "iad": 48, + "ams": 49, + "syd": 90, + "jnb": 722, + "gru": 74, + "hkg": 58 + }, + { + "timestamp": "Feb 6, 00:00", + "hkg": 45, + "iad": 69, + "ams": 47, + "jnb": 655, + "syd": 84, + "gru": 89 + }, + { + "timestamp": "Feb 6, 01:00", + "hkg": 38, + "jnb": 643, + "syd": 90, + "ams": 39, + "iad": 75, + "gru": 111 + }, + { + "timestamp": "Feb 6, 02:00", + "gru": 50, + "jnb": 660, + "syd": 96, + "ams": 42, + "iad": 61, + "hkg": 58 + }, + { + "timestamp": "Feb 6, 03:00", + "iad": 61, + "ams": 46, + "jnb": 728, + "syd": 92, + "gru": 132, + "hkg": 56 + }, + { + "timestamp": "Feb 6, 04:00", + "hkg": 59, + "iad": 52, + "ams": 42, + "syd": 60, + "jnb": 653, + "gru": 46 + }, + { + "timestamp": "Feb 6, 05:00", + "hkg": 51, + "iad": 60, + "ams": 39, + "jnb": 724, + "syd": 85, + "gru": 39 + }, + { + "timestamp": "Feb 6, 06:00", + "hkg": 67, + "gru": 97, + "iad": 72, + "ams": 46, + "syd": 90, + "jnb": 686 + }, + { + "timestamp": "Feb 6, 07:00", + "hkg": 50, + "ams": 52, + "iad": 54, + "syd": 88, + "jnb": 661, + "gru": 95 + }, + { + "timestamp": "Feb 6, 08:00", + "hkg": 74, + "gru": 64, + "ams": 54, + "iad": 51, + "jnb": 639, + "syd": 86 + }, + { + "timestamp": "Feb 6, 09:00", + "hkg": 44, + "gru": 94, + "jnb": 729, + "syd": 86, + "ams": 82, + "iad": 54 + }, + { + "timestamp": "Feb 6, 10:00", + "hkg": 78, + "syd": 68, + "jnb": 656, + "ams": 67, + "iad": 59, + "gru": 37 + }, + { + "timestamp": "Feb 6, 11:00", + "hkg": 58, + "syd": 48, + "jnb": 725, + "ams": 62, + "iad": 59, + "gru": 95 + }, + { + "timestamp": "Feb 6, 12:00", + "hkg": 45, + "gru": 35, + "jnb": 656, + "syd": 62, + "ams": 69, + "iad": 45 + }, + { + "timestamp": "Feb 6, 13:00", + "hkg": 63, + "gru": 69, + "syd": 64, + "jnb": 703, + "ams": 57, + "iad": 78 + }, + { + "timestamp": "Feb 6, 14:00", + "gru": 45, + "jnb": 645, + "syd": 63, + "ams": 61, + "iad": 62, + "hkg": 68 + }, + { + "timestamp": "Feb 6, 15:00", + "iad": 51, + "ams": 57, + "jnb": 648, + "syd": 58, + "gru": 73, + "hkg": 78 + }, + { + "timestamp": "Feb 6, 16:00", + "gru": 83, + "syd": 66, + "jnb": 646, + "iad": 67, + "ams": 73, + "hkg": 66 + }, + { + "timestamp": "Feb 6, 17:00", + "gru": 82, + "ams": 77, + "iad": 84, + "syd": 82, + "jnb": 641, + "hkg": 62 + }, + { + "timestamp": "Feb 6, 18:00", + "hkg": 46, + "gru": 110, + "ams": 72, + "iad": 76, + "jnb": 665, + "syd": 81 + }, + { + "timestamp": "Feb 6, 19:00", + "hkg": 112, + "jnb": 655, + "syd": 82, + "iad": 75, + "ams": 79, + "gru": 73 + }, + { + "timestamp": "Feb 6, 20:00", + "gru": 80, + "jnb": 654, + "syd": 84, + "iad": 55, + "ams": 128, + "hkg": 49 + }, + { + "timestamp": "Feb 6, 21:00", + "gru": 91, + "syd": 79, + "jnb": 650, + "iad": 85, + "ams": 83, + "hkg": 94 + }, + { + "timestamp": "Feb 6, 22:00", + "jnb": 652, + "syd": 86, + "iad": 84, + "ams": 62, + "gru": 81, + "hkg": 61 + }, + { + "timestamp": "Feb 6, 23:00", + "hkg": 60, + "ams": 46, + "iad": 86, + "jnb": 700, + "syd": 92, + "gru": 111 + }, + { + "timestamp": "Feb 7, 00:00", + "hkg": 55, + "gru": 78, + "ams": 60, + "iad": 84, + "syd": 97, + "jnb": 643 + }, + { + "timestamp": "Feb 7, 01:00", + "hkg": 36, + "jnb": 628, + "syd": 183, + "iad": 100, + "ams": 36, + "gru": 162 + }, + { + "timestamp": "Feb 7, 02:00", + "hkg": 62, + "gru": 59, + "jnb": 643, + "syd": 88, + "ams": 41, + "iad": 76 + }, + { + "timestamp": "Feb 7, 03:00", + "gru": 74, + "syd": 85, + "jnb": 616, + "iad": 59, + "ams": 42, + "hkg": 67 + }, + { + "timestamp": "Feb 7, 04:00", + "iad": 82, + "ams": 64, + "syd": 101, + "jnb": 649, + "gru": 44, + "hkg": 81 + }, + { + "timestamp": "Feb 7, 05:00", + "hkg": 45, + "jnb": 638, + "syd": 87, + "iad": 74, + "ams": 40, + "gru": 68 + }, + { + "timestamp": "Feb 7, 06:00", + "hkg": 56, + "ams": 51, + "iad": 60, + "jnb": 633, + "syd": 92, + "gru": 68 + }, + { + "timestamp": "Feb 7, 07:00", + "hkg": 45, + "gru": 119, + "iad": 38, + "ams": 48, + "syd": 84, + "jnb": 642 + }, + { + "timestamp": "Feb 7, 08:00", + "gru": 65, + "syd": 87, + "jnb": 653, + "iad": 80, + "ams": 42, + "hkg": 73 + }, + { + "timestamp": "Feb 7, 09:00", + "gru": 143, + "iad": 69, + "ams": 113, + "jnb": 722, + "syd": 95, + "hkg": 78 + }, + { + "timestamp": "Feb 7, 10:00", + "jnb": 646, + "syd": 70, + "ams": 68, + "iad": 80, + "gru": 114, + "hkg": 64 + }, + { + "timestamp": "Feb 7, 11:00", + "gru": 67, + "syd": 72, + "jnb": 662, + "iad": 68, + "ams": 63, + "hkg": 66 + }, + { + "timestamp": "Feb 7, 12:00", + "hkg": 57, + "gru": 105, + "iad": 77, + "ams": 64, + "syd": 135, + "jnb": 661 + }, + { + "timestamp": "Feb 7, 13:00", + "hkg": 67, + "syd": 136, + "jnb": 661, + "ams": 62, + "iad": 66, + "gru": 47 + }, + { + "timestamp": "Feb 7, 14:00", + "hkg": 59, + "iad": 65, + "ams": 54, + "syd": 79, + "jnb": 656, + "gru": 48 + }, + { + "timestamp": "Feb 7, 15:00", + "gru": 70, + "ams": 64, + "iad": 109, + "syd": 76, + "jnb": 702, + "hkg": 71 + }, + { + "timestamp": "Feb 7, 16:00", + "syd": 78, + "jnb": 655, + "ams": 56, + "iad": 94, + "gru": 75, + "hkg": 65 + }, + { + "timestamp": "Feb 7, 17:00", + "iad": 82, + "ams": 68, + "jnb": 654, + "syd": 78, + "gru": 111, + "hkg": 51 + }, + { + "timestamp": "Feb 7, 18:00", + "gru": 84, + "ams": 86, + "iad": 73, + "jnb": 656, + "syd": 76, + "hkg": 91 + }, + { + "timestamp": "Feb 7, 19:00", + "syd": 83, + "jnb": 656, + "iad": 83, + "ams": 65, + "gru": 141, + "hkg": 55 + }, + { + "timestamp": "Feb 7, 20:00", + "gru": 86, + "iad": 61, + "ams": 80, + "syd": 166, + "jnb": 661, + "hkg": 222 + }, + { + "timestamp": "Feb 7, 21:00", + "hkg": 63, + "gru": 87, + "syd": 84, + "jnb": 662, + "ams": 62, + "iad": 113 + }, + { + "timestamp": "Feb 7, 22:00", + "hkg": 58, + "gru": 109, + "iad": 99, + "ams": 52, + "syd": 84, + "jnb": 707 + }, + { + "timestamp": "Feb 7, 23:00", + "hkg": 55, + "ams": 45, + "iad": 70, + "jnb": 653, + "syd": 88, + "gru": 55 + }, + { + "timestamp": "Feb 8, 00:00", + "hkg": 55, + "syd": 85, + "jnb": 640, + "ams": 42, + "iad": 63, + "gru": 82 + }, + { + "timestamp": "Feb 8, 01:00", + "hkg": 50, + "ams": 45, + "iad": 62, + "jnb": 631, + "syd": 87, + "gru": 82 + }, + { + "timestamp": "Feb 8, 02:00", + "iad": 64, + "ams": 42, + "jnb": 647, + "syd": 89, + "gru": 136, + "hkg": 45 + }, + { + "timestamp": "Feb 8, 03:00", + "gru": 80, + "ams": 55, + "iad": 60, + "syd": 95, + "jnb": 639, + "hkg": 50 + }, + { + "timestamp": "Feb 8, 04:00", + "ams": 40, + "iad": 66, + "syd": 83, + "jnb": 720, + "gru": 130, + "hkg": 71 + }, + { + "timestamp": "Feb 8, 05:00", + "gru": 71, + "syd": 48, + "jnb": 642, + "iad": 64, + "ams": 41, + "hkg": 54 + }, + { + "timestamp": "Feb 8, 06:00", + "gru": 100, + "ams": 42, + "iad": 54, + "syd": 89, + "jnb": 643, + "hkg": 73 + }, + { + "timestamp": "Feb 8, 07:00", + "hkg": 48, + "gru": 66, + "iad": 60, + "ams": 47, + "jnb": 654, + "syd": 87 + }, + { + "timestamp": "Feb 8, 08:00", + "hkg": 59, + "jnb": 657, + "syd": 88, + "iad": 72, + "ams": 44, + "gru": 94 + }, + { + "timestamp": "Feb 8, 09:00", + "gru": 36, + "jnb": 650, + "syd": 92, + "ams": 49, + "iad": 54, + "hkg": 58 + }, + { + "timestamp": "Feb 8, 10:00", + "syd": 85, + "jnb": 653, + "ams": 54, + "iad": 38, + "gru": 131, + "hkg": 45 + }, + { + "timestamp": "Feb 8, 11:00", + "hkg": 56, + "syd": 85, + "jnb": 649, + "ams": 52, + "iad": 41, + "gru": 73 + }, + { + "timestamp": "Feb 8, 12:00", + "hkg": 71, + "gru": 38, + "jnb": 730, + "syd": 87, + "ams": 56, + "iad": 44 + }, + { + "timestamp": "Feb 8, 13:00", + "hkg": 59, + "iad": 109, + "ams": 49, + "syd": 84, + "jnb": 658, + "gru": 185 + }, + { + "timestamp": "Feb 8, 14:00", + "hkg": 53, + "gru": 68, + "iad": 64, + "ams": 96, + "jnb": 658, + "syd": 48 + }, + { + "timestamp": "Feb 8, 15:00", + "hkg": 66, + "gru": 85, + "jnb": 662, + "syd": 80, + "iad": 83, + "ams": 59 + }, + { + "timestamp": "Feb 8, 16:00", + "gru": 78, + "syd": 80, + "jnb": 745, + "iad": 114, + "ams": 76, + "hkg": 53 + }, + { + "timestamp": "Feb 8, 17:00", + "gru": 102, + "syd": 84, + "jnb": 661, + "iad": 88, + "ams": 59, + "hkg": 71 + }, + { + "timestamp": "Feb 8, 18:00", + "hkg": 79, + "gru": 105, + "syd": 80, + "jnb": 655, + "ams": 60, + "iad": 89 + }, + { + "timestamp": "Feb 8, 19:00", + "hkg": 78, + "syd": 80, + "jnb": 663, + "ams": 75, + "iad": 60, + "gru": 111 + }, + { + "timestamp": "Feb 8, 20:00", + "jnb": 649, + "syd": 111, + "ams": 61, + "iad": 88, + "gru": 89, + "hkg": 64 + }, + { + "timestamp": "Feb 8, 21:00", + "gru": 132, + "syd": 87, + "jnb": 647, + "iad": 81, + "ams": 64, + "hkg": 291 + }, + { + "timestamp": "Feb 8, 22:00", + "iad": 54, + "ams": 48, + "jnb": 660, + "syd": 86, + "gru": 103, + "hkg": 37 + }, + { + "timestamp": "Feb 8, 23:00", + "jnb": 645, + "syd": 50, + "iad": 57, + "ams": 48, + "gru": 112, + "hkg": 48 + }, + { + "timestamp": "Feb 9, 00:00", + "gru": 102, + "syd": 94, + "jnb": 640, + "iad": 67, + "ams": 47, + "hkg": 64 + }, + { + "timestamp": "Feb 9, 01:00", + "gru": 58, + "syd": 86, + "jnb": 646, + "ams": 44, + "iad": 72, + "hkg": 65 + }, + { + "timestamp": "Feb 9, 02:00", + "jnb": 722, + "syd": 96, + "ams": 49, + "iad": 68, + "gru": 78, + "hkg": 49 + }, + { + "timestamp": "Feb 9, 03:00", + "hkg": 64, + "gru": 55, + "syd": 94, + "jnb": 636, + "ams": 42, + "iad": 71 + }, + { + "timestamp": "Feb 9, 04:00", + "hkg": 45, + "jnb": 642, + "syd": 97, + "ams": 43, + "iad": 62, + "gru": 73 + }, + { + "timestamp": "Feb 9, 05:00", + "syd": 84, + "jnb": 643, + "iad": 61, + "ams": 42, + "gru": 66, + "hkg": 55 + }, + { + "timestamp": "Feb 9, 06:00", + "gru": 77, + "jnb": 621, + "syd": 87, + "iad": 62, + "ams": 40, + "hkg": 63 + }, + { + "timestamp": "Feb 9, 07:00", + "gru": 42, + "iad": 69, + "ams": 42, + "jnb": 652, + "syd": 87, + "hkg": 56 + }, + { + "timestamp": "Feb 9, 08:00", + "syd": 42, + "jnb": 733, + "iad": 56, + "ams": 50, + "gru": 63, + "hkg": 60 + }, + { + "timestamp": "Feb 9, 09:00", + "syd": 78, + "jnb": 640, + "iad": 71, + "ams": 49, + "gru": 63, + "hkg": 57 + }, + { + "timestamp": "Feb 9, 10:00", + "hkg": 59, + "jnb": 663, + "syd": 78, + "iad": 64, + "ams": 58, + "gru": 71 + }, + { + "timestamp": "Feb 9, 11:00", + "hkg": 60, + "gru": 65, + "jnb": 655, + "syd": 86, + "iad": 51, + "ams": 69 + }, + { + "timestamp": "Feb 9, 12:00", + "hkg": 73, + "gru": 69, + "ams": 53, + "iad": 62, + "syd": 82, + "jnb": 736 + }, + { + "timestamp": "Feb 9, 13:00", + "hkg": 58, + "iad": 56, + "ams": 56, + "jnb": 650, + "syd": 85, + "gru": 47 + }, + { + "timestamp": "Feb 9, 14:00", + "iad": 53, + "ams": 75, + "syd": 82, + "jnb": 649, + "gru": 72, + "hkg": 58 + }, + { + "timestamp": "Feb 9, 15:00", + "syd": 84, + "jnb": 786, + "iad": 68, + "ams": 52, + "gru": 66, + "hkg": 57 + }, + { + "timestamp": "Feb 9, 16:00", + "gru": 170, + "jnb": 942, + "syd": 43, + "iad": 113, + "ams": 54, + "hkg": 52 + }, + { + "timestamp": "Feb 9, 17:00", + "ams": 53, + "iad": 80, + "syd": 43, + "jnb": 916, + "gru": 116, + "hkg": 52 + }, + { + "timestamp": "Feb 9, 18:00", + "gru": 86, + "syd": 77, + "jnb": 925, + "ams": 50, + "iad": 67, + "hkg": 45 + }, + { + "timestamp": "Feb 9, 19:00", + "hkg": 44, + "gru": 52, + "jnb": 921, + "syd": 82, + "iad": 68, + "ams": 56 + }, + { + "timestamp": "Feb 9, 20:00", + "hkg": 53, + "jnb": 919, + "syd": 79, + "ams": 72, + "iad": 74, + "gru": 126 + }, + { + "timestamp": "Feb 9, 21:00", + "gru": 73, + "iad": 79, + "ams": 47, + "syd": 125, + "jnb": 964, + "hkg": 212 + }, + { + "timestamp": "Feb 9, 22:00", + "syd": 77, + "jnb": 935, + "iad": 81, + "ams": 42, + "gru": 45, + "hkg": 87 + }, + { + "timestamp": "Feb 9, 23:00", + "hkg": 57, + "jnb": 923, + "syd": 92, + "ams": 45, + "iad": 58, + "gru": 130 + }, + { + "timestamp": "Feb 10, 00:00", + "hkg": 47, + "iad": 88, + "ams": 45, + "jnb": 918, + "syd": 81, + "gru": 87 + }, + { + "timestamp": "Feb 10, 01:00", + "hkg": 45, + "syd": 86, + "jnb": 1016, + "iad": 74, + "ams": 40, + "gru": 75 + }, + { + "timestamp": "Feb 10, 02:00", + "hkg": 79, + "gru": 112, + "syd": 82, + "jnb": 906, + "iad": 54, + "ams": 45 + }, + { + "timestamp": "Feb 10, 03:00", + "hkg": 45, + "jnb": 920, + "syd": 80, + "ams": 50, + "iad": 64, + "gru": 99 + }, + { + "timestamp": "Feb 10, 04:00", + "jnb": 934, + "syd": 50, + "iad": 71, + "ams": 44, + "gru": 72, + "hkg": 63 + }, + { + "timestamp": "Feb 10, 05:00", + "gru": 46, + "ams": 43, + "iad": 65, + "jnb": 992, + "syd": 86, + "hkg": 54 + }, + { + "timestamp": "Feb 10, 06:00", + "hkg": 49, + "gru": 62, + "syd": 95, + "jnb": 901, + "iad": 78, + "ams": 41 + }, + { + "timestamp": "Feb 10, 07:00", + "hkg": 57, + "jnb": 918, + "syd": 82, + "ams": 42, + "iad": 52, + "gru": 66 + }, + { + "timestamp": "Feb 10, 08:00", + "hkg": 44, + "iad": 56, + "ams": 44, + "jnb": 916, + "syd": 85, + "gru": 65 + }, + { + "timestamp": "Feb 10, 09:00", + "hkg": 56, + "syd": 87, + "jnb": 918, + "ams": 44, + "iad": 53, + "gru": 63 + }, + { + "timestamp": "Feb 10, 10:00", + "hkg": 59, + "gru": 88, + "ams": 49, + "iad": 68, + "syd": 84, + "jnb": 929 + }, + { + "timestamp": "Feb 10, 11:00", + "hkg": 61, + "jnb": 925, + "syd": 91, + "iad": 67, + "ams": 56, + "gru": 68 + }, + { + "timestamp": "Feb 10, 12:00", + "hkg": 50, + "gru": 67, + "jnb": 904, + "syd": 77, + "ams": 52, + "iad": 63 + }, + { + "timestamp": "Feb 10, 13:00", + "gru": 98, + "iad": 57, + "ams": 51, + "jnb": 934, + "syd": 38, + "hkg": 54 + }, + { + "timestamp": "Feb 10, 14:00", + "jnb": 928, + "syd": 81, + "iad": 69, + "ams": 134, + "gru": 104, + "hkg": 56 + }, + { + "timestamp": "Feb 10, 15:00", + "hkg": 57, + "gru": 63, + "jnb": 1006, + "syd": 84, + "ams": 49, + "iad": 59 + }, + { + "timestamp": "Feb 10, 16:00", + "hkg": 62, + "gru": 108, + "iad": 86, + "ams": 61, + "jnb": 921, + "syd": 83 + }, + { + "timestamp": "Feb 10, 17:00", + "hkg": 78, + "gru": 77, + "syd": 77, + "jnb": 910, + "iad": 71, + "ams": 60 + }, + { + "timestamp": "Feb 10, 18:00", + "gru": 77, + "iad": 58, + "ams": 78, + "syd": 81, + "jnb": 920, + "hkg": 66 + }, + { + "timestamp": "Feb 10, 19:00", + "ams": 57, + "iad": 71, + "jnb": 902, + "syd": 84, + "gru": 128, + "hkg": 66 + }, + { + "timestamp": "Feb 10, 20:00", + "gru": 46, + "jnb": 929, + "syd": 114, + "iad": 58, + "ams": 133, + "hkg": 52 + }, + { + "timestamp": "Feb 10, 21:00", + "ams": 74, + "iad": 72, + "jnb": 915, + "syd": 134, + "gru": 122, + "hkg": 49 + }, + { + "timestamp": "Feb 10, 22:00", + "hkg": 92, + "jnb": 925, + "syd": 83, + "ams": 48, + "iad": 65, + "gru": 81 + }, + { + "timestamp": "Feb 10, 23:00", + "hkg": 50, + "gru": 73, + "syd": 85, + "jnb": 996, + "iad": 59, + "ams": 45 + }, + { + "timestamp": "Feb 11, 00:00", + "hkg": 49, + "gru": 53, + "ams": 59, + "iad": 58, + "syd": 81, + "jnb": 894 + }, + { + "timestamp": "Feb 11, 01:00", + "hkg": 47, + "jnb": 914, + "syd": 88, + "ams": 45, + "iad": 71, + "gru": 53 + }, + { + "timestamp": "Feb 11, 02:00", + "hkg": 44, + "gru": 81, + "syd": 89, + "jnb": 885, + "ams": 80, + "iad": 75 + }, + { + "timestamp": "Feb 11, 03:00", + "gru": 44, + "iad": 75, + "ams": 54, + "syd": 86, + "jnb": 883, + "hkg": 72 + }, + { + "timestamp": "Feb 11, 04:00", + "iad": 73, + "ams": 51, + "jnb": 892, + "syd": 90, + "gru": 48, + "hkg": 74 + }, + { + "timestamp": "Feb 11, 05:00", + "gru": 92, + "iad": 60, + "ams": 44, + "syd": 83, + "jnb": 906, + "hkg": 60 + }, + { + "timestamp": "Feb 11, 06:00", + "iad": 60, + "ams": 54, + "jnb": 916, + "syd": 86, + "gru": 63, + "hkg": 58 + }, + { + "timestamp": "Feb 11, 07:00", + "hkg": 44, + "jnb": 982, + "syd": 89, + "ams": 62, + "iad": 58, + "gru": 66 + }, + { + "timestamp": "Feb 11, 08:00", + "hkg": 50, + "gru": 65, + "syd": 89, + "jnb": 924, + "ams": 48, + "iad": 62 + }, + { + "timestamp": "Feb 11, 09:00", + "hkg": 54, + "syd": 120, + "jnb": 942, + "iad": 56, + "ams": 44, + "gru": 122 + }, + { + "timestamp": "Feb 11, 10:00", + "gru": 37, + "syd": 94, + "jnb": 921, + "iad": 56, + "ams": 52, + "hkg": 56 + }, + { + "timestamp": "Feb 11, 11:00", + "ams": 59, + "iad": 57, + "syd": 90, + "jnb": 912, + "gru": 92, + "hkg": 53 + }, + { + "timestamp": "Feb 11, 12:00", + "hkg": 54, + "ams": 144, + "iad": 56, + "jnb": 921, + "syd": 50, + "gru": 62 + }, + { + "timestamp": "Feb 11, 13:00", + "hkg": 46, + "gru": 50, + "syd": 84, + "jnb": 916, + "ams": 58, + "iad": 66 + }, + { + "timestamp": "Feb 11, 14:00", + "hkg": 45, + "ams": 55, + "iad": 74, + "jnb": 920, + "syd": 80, + "gru": 92 + }, + { + "timestamp": "Feb 11, 15:00", + "hkg": 58, + "gru": 75, + "jnb": 894, + "syd": 81, + "iad": 52, + "ams": 63 + }, + { + "timestamp": "Feb 11, 16:00", + "gru": 64, + "syd": 84, + "jnb": 927, + "iad": 64, + "ams": 109, + "hkg": 53 + }, + { + "timestamp": "Feb 11, 17:00", + "hkg": 68, + "gru": 43, + "syd": 78, + "jnb": 920, + "iad": 67, + "ams": 68 + }, + { + "timestamp": "Feb 11, 18:00", + "hkg": 46, + "jnb": 1003, + "syd": 76, + "iad": 82, + "ams": 95, + "gru": 68 + }, + { + "timestamp": "Feb 11, 19:00", + "iad": 70, + "ams": 68, + "syd": 80, + "jnb": 934, + "gru": 106, + "hkg": 45 + }, + { + "timestamp": "Feb 11, 20:00", + "gru": 73, + "iad": 42, + "ams": 63, + "jnb": 935, + "syd": 83, + "hkg": 67 + }, + { + "timestamp": "Feb 11, 21:00", + "hkg": 56, + "gru": 96, + "syd": 88, + "jnb": 929, + "iad": 70, + "ams": 82 + }, + { + "timestamp": "Feb 11, 22:00", + "hkg": 38, + "jnb": 993, + "syd": 127, + "iad": 80, + "ams": 75, + "gru": 40 + }, + { + "timestamp": "Feb 11, 23:00", + "hkg": 98, + "gru": 69, + "jnb": 925, + "syd": 54, + "ams": 76, + "iad": 62 + }, + { + "timestamp": "Feb 12, 00:00", + "hkg": 39, + "syd": 85, + "jnb": 913, + "ams": 68, + "iad": 59, + "gru": 99 + }, + { + "timestamp": "Feb 12, 01:00", + "hkg": 54, + "gru": 47, + "syd": 92, + "jnb": 926, + "iad": 70, + "ams": 41 + }, + { + "timestamp": "Feb 12, 02:00", + "gru": 83, + "jnb": 997, + "syd": 87, + "iad": 68, + "ams": 40, + "hkg": 48 + }, + { + "timestamp": "Feb 12, 03:00", + "ams": 51, + "iad": 59, + "jnb": 919, + "syd": 87, + "gru": 38, + "hkg": 50 + }, + { + "timestamp": "Feb 12, 04:00", + "hkg": 68, + "gru": 45, + "ams": 98, + "iad": 58, + "jnb": 918, + "syd": 125 + }, + { + "timestamp": "Feb 12, 05:00", + "hkg": 51, + "syd": 86, + "jnb": 914, + "ams": 86, + "iad": 78, + "gru": 124 + }, + { + "timestamp": "Feb 12, 06:00", + "jnb": 913, + "syd": 464, + "ams": 443, + "iad": 56, + "gru": 88, + "hkg": 44 + }, + { + "timestamp": "Feb 12, 07:00", + "gru": 63, + "iad": 54, + "ams": 100, + "jnb": 912, + "syd": 92, + "hkg": 48 + }, + { + "timestamp": "Feb 12, 08:00", + "syd": 46, + "jnb": 910, + "iad": 54, + "ams": 185, + "gru": 34, + "hkg": 62 + }, + { + "timestamp": "Feb 12, 09:00", + "gru": 88, + "jnb": 914, + "syd": 210, + "ams": 351, + "iad": 56, + "hkg": 58 + }, + { + "timestamp": "Feb 12, 10:00", + "gru": 33, + "iad": 56, + "ams": 59, + "jnb": 928, + "syd": 90, + "hkg": 64 + }, + { + "timestamp": "Feb 12, 11:00", + "hkg": 62, + "gru": 93, + "ams": 62, + "iad": 64, + "syd": 90, + "jnb": 928 + }, + { + "timestamp": "Feb 12, 12:00", + "hkg": 62, + "syd": 118, + "jnb": 1041, + "ams": 57, + "iad": 48, + "gru": 42 + }, + { + "timestamp": "Feb 12, 13:00", + "hkg": 72, + "syd": 81, + "jnb": 926, + "ams": 58, + "iad": 58, + "gru": 80 + }, + { + "timestamp": "Feb 12, 14:00", + "hkg": 57, + "gru": 77, + "syd": 80, + "jnb": 1012, + "iad": 66, + "ams": 151 + }, + { + "timestamp": "Feb 12, 15:00", + "gru": 104, + "jnb": 937, + "syd": 80, + "ams": 252, + "iad": 63, + "hkg": 116 + }, + { + "timestamp": "Feb 12, 16:00", + "ams": 131, + "iad": 99, + "jnb": 729, + "syd": 74, + "gru": 68, + "hkg": 80 + }, + { + "timestamp": "Feb 12, 17:00", + "ams": 68, + "iad": 70, + "syd": 43, + "jnb": 665, + "gru": 102, + "hkg": 79 + }, + { + "timestamp": "Feb 12, 18:00", + "syd": 81, + "jnb": 657, + "iad": 78, + "ams": 69, + "gru": 105, + "hkg": 55 + }, + { + "timestamp": "Feb 12, 19:00", + "gru": 80, + "jnb": 672, + "syd": 82, + "ams": 116, + "iad": 57, + "hkg": 50 + }, + { + "timestamp": "Feb 12, 20:00", + "hkg": 59, + "gru": 47, + "ams": 66, + "iad": 67, + "jnb": 734, + "syd": 115 + }, + { + "timestamp": "Feb 12, 21:00", + "hkg": 48, + "jnb": 640, + "syd": 81, + "iad": 75, + "ams": 103, + "gru": 109 + }, + { + "timestamp": "Feb 12, 22:00", + "gru": 228, + "syd": 131, + "jnb": 798, + "ams": 54, + "iad": 82, + "hkg": 62 + }, + { + "timestamp": "Feb 12, 23:00", + "jnb": 621, + "syd": 74, + "iad": 79, + "ams": 53, + "gru": 106, + "hkg": 103 + }, + { + "timestamp": "Feb 13, 00:00", + "hkg": 51, + "iad": 76, + "ams": 50, + "jnb": 642, + "syd": 52, + "gru": 77 + }, + { + "timestamp": "Feb 13, 01:00", + "gru": 131, + "syd": 92, + "jnb": 640, + "ams": 38, + "iad": 71, + "hkg": 72 + }, + { + "timestamp": "Feb 13, 02:00", + "gru": 83, + "iad": 85, + "ams": 68, + "syd": 85, + "jnb": 749, + "hkg": 51 + }, + { + "timestamp": "Feb 13, 03:00", + "jnb": 714, + "syd": 84, + "ams": 37, + "iad": 63, + "gru": 42, + "hkg": 54 + }, + { + "timestamp": "Feb 13, 04:00", + "gru": 40, + "ams": 61, + "iad": 85, + "jnb": 641, + "syd": 92, + "hkg": 62 + }, + { + "timestamp": "Feb 13, 05:00", + "hkg": 73, + "gru": 34, + "jnb": 641, + "syd": 87, + "iad": 72, + "ams": 44 + }, + { + "timestamp": "Feb 13, 06:00", + "hkg": 46, + "jnb": 711, + "syd": 88, + "ams": 47, + "iad": 61, + "gru": 39 + }, + { + "timestamp": "Feb 13, 07:00", + "jnb": 718, + "syd": 106, + "ams": 48, + "iad": 76, + "gru": 34, + "hkg": 63 + }, + { + "timestamp": "Feb 13, 08:00", + "gru": 40, + "ams": 47, + "iad": 49, + "jnb": 629, + "syd": 48, + "hkg": 66 + }, + { + "timestamp": "Feb 13, 09:00", + "hkg": 54, + "syd": 86, + "jnb": 658, + "ams": 83, + "iad": 72, + "gru": 68 + }, + { + "timestamp": "Feb 13, 10:00", + "hkg": 56, + "iad": 76, + "ams": 52, + "syd": 83, + "jnb": 653, + "gru": 118 + }, + { + "timestamp": "Feb 13, 11:00", + "hkg": 59, + "gru": 219, + "ams": 100, + "iad": 56, + "jnb": 660, + "syd": 88 + }, + { + "timestamp": "Feb 13, 12:00", + "hkg": 43, + "ams": 115, + "iad": 54, + "jnb": 675, + "syd": 90, + "gru": 62 + }, + { + "timestamp": "Feb 13, 13:00", + "hkg": 60, + "gru": 98, + "jnb": 668, + "syd": 84, + "iad": 69, + "ams": 48 + }, + { + "timestamp": "Feb 13, 14:00", + "gru": 126, + "jnb": 660, + "syd": 81, + "ams": 55, + "iad": 74, + "hkg": 73 + }, + { + "timestamp": "Feb 13, 15:00", + "syd": 85, + "jnb": 787, + "iad": 59, + "ams": 78, + "gru": 38, + "hkg": 69 + }, + { + "timestamp": "Feb 13, 16:00", + "hkg": 65, + "gru": 86, + "iad": 84, + "ams": 78, + "jnb": 659, + "syd": 103 + }, + { + "timestamp": "Feb 13, 17:00", + "hkg": 83, + "ams": 69, + "iad": 74, + "syd": 78, + "jnb": 885, + "gru": 100 + }, + { + "timestamp": "Feb 13, 18:00", + "ams": 156, + "iad": 56, + "jnb": 712, + "syd": 76, + "gru": 50, + "hkg": 61 + }, + { + "timestamp": "Feb 13, 19:00", + "jnb": 650, + "syd": 38, + "ams": 71, + "iad": 78, + "gru": 81, + "hkg": 62 + }, + { + "timestamp": "Feb 13, 20:00", + "gru": 46, + "syd": 134, + "jnb": 787, + "ams": 87, + "iad": 106, + "hkg": 64 + }, + { + "timestamp": "Feb 13, 21:00", + "iad": 88, + "ams": 70, + "jnb": 668, + "syd": 85, + "gru": 101, + "hkg": 46 + }, + { + "timestamp": "Feb 13, 22:00", + "gru": 130, + "iad": 94, + "ams": 105, + "syd": 127, + "jnb": 650, + "hkg": 48 + }, + { + "timestamp": "Feb 13, 23:00", + "hkg": 103, + "gru": 104, + "iad": 94, + "ams": 47, + "syd": 89, + "jnb": 659 + }, + { + "timestamp": "Feb 14, 00:00", + "hkg": 59, + "iad": 90, + "ams": 48, + "jnb": 648, + "syd": 90, + "gru": 148 + }, + { + "timestamp": "Feb 14, 01:00", + "hkg": 70, + "gru": 54, + "iad": 64, + "ams": 47, + "syd": 86, + "jnb": 744 + }, + { + "timestamp": "Feb 14, 02:00", + "hkg": 86, + "iad": 62, + "ams": 50, + "jnb": 637, + "syd": 88, + "gru": 78 + }, + { + "timestamp": "Feb 14, 03:00", + "hkg": 44, + "jnb": 798, + "syd": 98, + "iad": 74, + "ams": 39, + "gru": 80 + }, + { + "timestamp": "Feb 14, 04:00", + "syd": 87, + "jnb": 633, + "iad": 60, + "ams": 52, + "gru": 43, + "hkg": 64 + }, + { + "timestamp": "Feb 14, 05:00", + "gru": 38, + "jnb": 738, + "syd": 96, + "ams": 45, + "iad": 75, + "hkg": 68 + }, + { + "timestamp": "Feb 14, 06:00", + "ams": 44, + "iad": 66, + "syd": 52, + "jnb": 724, + "gru": 75, + "hkg": 71 + }, + { + "timestamp": "Feb 14, 07:00", + "gru": 63, + "ams": 57, + "iad": 67, + "syd": 100, + "jnb": 776, + "hkg": 51 + }, + { + "timestamp": "Feb 14, 08:00", + "hkg": 75, + "gru": 40, + "ams": 41, + "iad": 71, + "jnb": 651, + "syd": 83 + }, + { + "timestamp": "Feb 14, 09:00", + "iad": 70, + "ams": 80, + "jnb": 750, + "syd": 87, + "gru": 67, + "hkg": 63 + }, + { + "timestamp": "Feb 14, 10:00", + "hkg": 64, + "gru": 66, + "iad": 53, + "ams": 51, + "jnb": 655, + "syd": 84 + }, + { + "timestamp": "Feb 14, 11:00", + "hkg": 42, + "gru": 68, + "jnb": 812, + "syd": 84, + "iad": 68, + "ams": 56 + }, + { + "timestamp": "Feb 14, 12:00", + "hkg": 58, + "syd": 83, + "jnb": 652, + "iad": 67, + "ams": 57, + "gru": 98 + }, + { + "timestamp": "Feb 14, 13:00", + "jnb": 680, + "syd": 86, + "ams": 50, + "iad": 64, + "gru": 122, + "hkg": 78 + }, + { + "timestamp": "Feb 14, 14:00", + "gru": 165, + "syd": 80, + "jnb": 716, + "ams": 49, + "iad": 83, + "hkg": 96 + }, + { + "timestamp": "Feb 14, 15:00", + "ams": 81, + "iad": 84, + "syd": 82, + "jnb": 724, + "gru": 75, + "hkg": 85 + }, + { + "timestamp": "Feb 14, 16:00", + "gru": 52, + "ams": 47, + "iad": 76, + "jnb": 685, + "syd": 80, + "hkg": 63 + }, + { + "timestamp": "Feb 14, 17:00", + "hkg": 78, + "ams": 53, + "iad": 79, + "jnb": 686, + "syd": 73, + "gru": 53 + }, + { + "timestamp": "Feb 14, 18:00", + "hkg": 74, + "gru": 84, + "ams": 54, + "iad": 71, + "syd": 39, + "jnb": 659 + }, + { + "timestamp": "Feb 14, 19:00", + "hkg": 59, + "gru": 93, + "syd": 79, + "jnb": 643, + "ams": 49, + "iad": 98 + }, + { + "timestamp": "Feb 14, 20:00", + "gru": 70, + "syd": 73, + "jnb": 653, + "iad": 49, + "ams": 55, + "hkg": 36 + }, + { + "timestamp": "Feb 14, 21:00", + "jnb": 619, + "syd": 82, + "ams": 58, + "iad": 73, + "gru": 136, + "hkg": 70 + }, + { + "timestamp": "Feb 14, 22:00", + "hkg": 40, + "syd": 132, + "jnb": 685, + "ams": 72, + "iad": 58, + "gru": 109 + }, + { + "timestamp": "Feb 14, 23:00", + "hkg": 51, + "gru": 98, + "syd": 90, + "jnb": 682, + "ams": 42, + "iad": 73 + }, + { + "timestamp": "Feb 15, 00:00", + "hkg": 72, + "ams": 49, + "iad": 81, + "jnb": 643, + "syd": 102, + "gru": 123 + }, + { + "timestamp": "Feb 15, 01:00", + "hkg": 65, + "gru": 85, + "iad": 76, + "ams": 38, + "syd": 90, + "jnb": 666 + }, + { + "timestamp": "Feb 15, 02:00", + "gru": 90, + "syd": 91, + "jnb": 640, + "iad": 59, + "ams": 38, + "hkg": 58 + }, + { + "timestamp": "Feb 15, 03:00", + "jnb": 636, + "syd": 90, + "ams": 44, + "iad": 76, + "gru": 77, + "hkg": 61 + }, + { + "timestamp": "Feb 15, 04:00", + "iad": 68, + "ams": 50, + "jnb": 642, + "syd": 92, + "gru": 45, + "hkg": 56 + }, + { + "timestamp": "Feb 15, 05:00", + "hkg": 64, + "gru": 128, + "syd": 90, + "jnb": 640, + "ams": 49, + "iad": 69 + }, + { + "timestamp": "Feb 15, 06:00", + "hkg": 69, + "ams": 44, + "iad": 55, + "syd": 58, + "jnb": 644, + "gru": 70 + }, + { + "timestamp": "Feb 15, 07:00", + "iad": 66, + "ams": 44, + "jnb": 642, + "syd": 90, + "gru": 67, + "hkg": 78 + }, + { + "timestamp": "Feb 15, 08:00", + "gru": 38, + "ams": 45, + "iad": 55, + "jnb": 644, + "syd": 89, + "hkg": 65 + }, + { + "timestamp": "Feb 15, 09:00", + "gru": 68, + "ams": 52, + "iad": 58, + "syd": 88, + "jnb": 653, + "hkg": 65 + }, + { + "timestamp": "Feb 15, 10:00", + "syd": 89, + "jnb": 652, + "ams": 62, + "iad": 70, + "gru": 116, + "hkg": 70 + }, + { + "timestamp": "Feb 15, 11:00", + "hkg": 87, + "jnb": 694, + "syd": 88, + "iad": 63, + "ams": 58, + "gru": 41 + }, + { + "timestamp": "Feb 15, 12:00", + "hkg": 66, + "ams": 50, + "iad": 51, + "jnb": 650, + "syd": 86, + "gru": 99 + }, + { + "timestamp": "Feb 15, 13:00", + "hkg": 73, + "gru": 100, + "jnb": 767, + "syd": 85, + "iad": 58, + "ams": 49 + }, + { + "timestamp": "Feb 15, 14:00", + "hkg": 95, + "gru": 47, + "jnb": 712, + "syd": 79, + "ams": 50, + "iad": 78 + }, + { + "timestamp": "Feb 15, 15:00", + "hkg": 103, + "syd": 80, + "jnb": 689, + "iad": 82, + "ams": 66, + "gru": 92 + }, + { + "timestamp": "Feb 15, 16:00", + "syd": 148, + "jnb": 625, + "ams": 68, + "iad": 57, + "gru": 168, + "hkg": 74 + }, + { + "timestamp": "Feb 17, 10:00", + "hkg": 123, + "iad": 123, + "ams": 57, + "syd": 550, + "jnb": 695, + "gru": 39 + }, + { + "timestamp": "Feb 17, 11:00", + "gru": 68, + "jnb": 640, + "syd": 49, + "ams": 47, + "iad": 83, + "hkg": 57 + }, + { + "timestamp": "Feb 17, 12:00", + "syd": 93, + "jnb": 639, + "ams": 47, + "iad": 127, + "gru": 74, + "hkg": 46 + }, + { + "timestamp": "Feb 17, 13:00", + "jnb": 648, + "syd": 87, + "ams": 48, + "iad": 118, + "gru": 68, + "hkg": 53 + }, + { + "timestamp": "Feb 17, 14:00", + "hkg": 79, + "syd": 86, + "jnb": 655, + "ams": 50, + "iad": 117, + "gru": 74 + }, + { + "timestamp": "Feb 17, 15:00", + "hkg": 71, + "gru": 80, + "iad": 93, + "ams": 56, + "syd": 86, + "jnb": 663 + }, + { + "timestamp": "Feb 17, 16:00", + "hkg": 72, + "jnb": 750, + "syd": 80, + "iad": 84, + "ams": 48, + "gru": 72 + }, + { + "timestamp": "Feb 17, 17:00", + "hkg": 52, + "gru": 78, + "syd": 83, + "jnb": 657, + "ams": 54, + "iad": 66 + }, + { + "timestamp": "Feb 17, 18:00", + "gru": 50, + "syd": 96, + "jnb": 702, + "iad": 90, + "ams": 126, + "hkg": 54 + }, + { + "timestamp": "Feb 17, 19:00", + "jnb": 683, + "syd": 73, + "ams": 58, + "iad": 104, + "gru": 42, + "hkg": 58 + }, + { + "timestamp": "Feb 17, 20:00", + "hkg": 85, + "iad": 78, + "ams": 60, + "syd": 81, + "jnb": 744, + "gru": 55 + }, + { + "timestamp": "Feb 17, 21:00", + "hkg": 78, + "gru": 76, + "syd": 87, + "jnb": 674, + "ams": 67, + "iad": 64 + }, + { + "timestamp": "Feb 17, 22:00", + "hkg": 52, + "gru": 110, + "iad": 73, + "ams": 55, + "syd": 81, + "jnb": 708 + }, + { + "timestamp": "Feb 17, 23:00", + "gru": 46, + "ams": 46, + "iad": 76, + "jnb": 614, + "syd": 83, + "hkg": 46 + }, + { + "timestamp": "Feb 18, 00:00", + "jnb": 610, + "syd": 81, + "ams": 64, + "iad": 72, + "gru": 46, + "hkg": 52 + }, + { + "timestamp": "Feb 18, 01:00", + "syd": 92, + "jnb": 617, + "ams": 60, + "iad": 73, + "gru": 110, + "hkg": 62 + }, + { + "timestamp": "Feb 18, 02:00", + "gru": 108, + "syd": 90, + "jnb": 610, + "iad": 70, + "ams": 62, + "hkg": 61 + }, + { + "timestamp": "Feb 18, 03:00", + "hkg": 68, + "gru": 73, + "jnb": 606, + "syd": 88, + "ams": 39, + "iad": 78 + }, + { + "timestamp": "Feb 18, 04:00", + "hkg": 59, + "ams": 46, + "iad": 72, + "jnb": 622, + "syd": 86, + "gru": 71 + }, + { + "timestamp": "Feb 18, 05:00", + "gru": 70, + "syd": 87, + "jnb": 644, + "iad": 72, + "ams": 43, + "hkg": 71 + }, + { + "timestamp": "Feb 18, 06:00", + "gru": 66, + "ams": 64, + "iad": 56, + "syd": 94, + "jnb": 643, + "hkg": 68 + }, + { + "timestamp": "Feb 18, 07:00", + "iad": 44, + "ams": 48, + "jnb": 643, + "syd": 92, + "gru": 38, + "hkg": 68 + }, + { + "timestamp": "Feb 18, 08:00", + "hkg": 75, + "jnb": 658, + "syd": 120, + "iad": 65, + "ams": 47, + "gru": 66 + }, + { + "timestamp": "Feb 18, 09:00", + "gru": 66, + "ams": 59, + "iad": 71, + "syd": 89, + "jnb": 649, + "hkg": 66 + }, + { + "timestamp": "Feb 18, 10:00", + "syd": 97, + "jnb": 647, + "iad": 61, + "ams": 54, + "gru": 66, + "hkg": 70 + }, + { + "timestamp": "Feb 18, 11:00", + "gru": 73, + "jnb": 664, + "syd": 129, + "ams": 70, + "iad": 66, + "hkg": 77 + }, + { + "timestamp": "Feb 18, 12:00", + "hkg": 43, + "gru": 41, + "ams": 61, + "iad": 67, + "jnb": 639, + "syd": 119 + }, + { + "timestamp": "Feb 18, 13:00", + "hkg": 58, + "jnb": 635, + "syd": 91, + "iad": 75, + "ams": 59, + "gru": 73 + }, + { + "timestamp": "Feb 18, 14:00", + "hkg": 98, + "ams": 66, + "iad": 54, + "jnb": 664, + "syd": 82, + "gru": 74 + }, + { + "timestamp": "Feb 18, 15:00", + "hkg": 65, + "syd": 79, + "jnb": 687, + "ams": 79, + "iad": 77, + "gru": 130 + }, + { + "timestamp": "Feb 18, 16:00", + "hkg": 59, + "gru": 146, + "ams": 95, + "iad": 69, + "syd": 85, + "jnb": 727 + }, + { + "timestamp": "Feb 18, 17:00", + "jnb": 659, + "syd": 82, + "ams": 69, + "iad": 74, + "gru": 116, + "hkg": 74 + }, + { + "timestamp": "Feb 18, 18:00", + "gru": 77, + "jnb": 646, + "syd": 93, + "iad": 89, + "ams": 76, + "hkg": 46 + } + ] + }, + "metricsByRegion": [ + { + "region": "syd", + "avgLatency": 89, + "p75Latency": 60, + "p90Latency": 268, + "p95Latency": 287, + "p99Latency": 310 + }, + { + "region": "gru", + "avgLatency": 77, + "p75Latency": 60, + "p90Latency": 211, + "p95Latency": 219, + "p99Latency": 296 + }, + { + "region": "iad", + "avgLatency": 74, + "p75Latency": 120, + "p90Latency": 132, + "p95Latency": 139, + "p99Latency": 177 + }, + { + "region": "ams", + "avgLatency": 57, + "p75Latency": 60, + "p90Latency": 73, + "p95Latency": 88, + "p99Latency": 169 + }, + { + "region": "hkg", + "avgLatency": 67, + "p75Latency": 92, + "p90Latency": 111, + "p95Latency": 123, + "p99Latency": 158 + }, + { + "region": "jnb", + "avgLatency": 660, + "p75Latency": 705, + "p90Latency": 731, + "p95Latency": 748, + "p99Latency": 1110 + } + ] +} diff --git a/apps/web/public/assets/posts/monitoring-latency/fly.json b/apps/web/public/assets/posts/monitoring-latency/fly.json index 3c0b99408..bbd46004f 100644 --- a/apps/web/public/assets/posts/monitoring-latency/fly.json +++ b/apps/web/public/assets/posts/monitoring-latency/fly.json @@ -1,21 +1,7 @@ { - "regions": [ - "ams", - "iad", - "hkg", - "jnb", - "syd", - "gru" - ], + "regions": ["ams", "iad", "hkg", "jnb", "syd", "gru"], "data": { - "regions": [ - "ams", - "gru", - "hkg", - "iad", - "jnb", - "syd" - ], + "regions": ["ams", "gru", "hkg", "iad", "jnb", "syd"], "data": [ { "timestamp": "Feb 4, 00:00", @@ -2895,4 +2881,4 @@ "p99Latency": 1689 } ] -} \ No newline at end of file +} diff --git a/apps/web/public/assets/posts/monitoring-latency/koyeb.json b/apps/web/public/assets/posts/monitoring-latency/koyeb.json index 9accdbdf1..8c154ca8f 100644 --- a/apps/web/public/assets/posts/monitoring-latency/koyeb.json +++ b/apps/web/public/assets/posts/monitoring-latency/koyeb.json @@ -1,21 +1,7 @@ { - "regions": [ - "ams", - "iad", - "hkg", - "jnb", - "syd", - "gru" - ], + "regions": ["ams", "iad", "hkg", "jnb", "syd", "gru"], "data": { - "regions": [ - "ams", - "gru", - "hkg", - "iad", - "jnb", - "syd" - ], + "regions": ["ams", "gru", "hkg", "iad", "jnb", "syd"], "data": [ { "timestamp": "Feb 4, 00:00", @@ -2895,4 +2881,4 @@ "p99Latency": 1812 } ] -} \ No newline at end of file +} diff --git a/apps/web/public/assets/posts/monitoring-latency/railway.json b/apps/web/public/assets/posts/monitoring-latency/railway.json index b482aee60..5951f94bd 100644 --- a/apps/web/public/assets/posts/monitoring-latency/railway.json +++ b/apps/web/public/assets/posts/monitoring-latency/railway.json @@ -1,2898 +1,2884 @@ { - "regions": [ - "ams", - "iad", - "hkg", - "jnb", - "syd", - "gru" - ], - "data": { - "regions": [ - "ams", - "gru", - "hkg", - "iad", - "jnb", - "syd" - ], - "data": [ - { - "timestamp": "Feb 4, 00:00", - "ams": 176, - "iad": 84, - "syd": 487, - "jnb": 659, - "gru": 456, - "hkg": 292 - }, - { - "timestamp": "Feb 4, 01:00", - "ams": 176, - "iad": 84, - "syd": 497, - "jnb": 691, - "gru": 437, - "hkg": 299 - }, - { - "timestamp": "Feb 4, 02:00", - "hkg": 293, - "ams": 183, - "iad": 88, - "jnb": 665, - "syd": 504, - "gru": 418 - }, - { - "timestamp": "Feb 4, 03:00", - "hkg": 304, - "jnb": 680, - "syd": 463, - "ams": 175, - "iad": 80, - "gru": 416 - }, - { - "timestamp": "Feb 4, 04:00", - "hkg": 301, - "gru": 428, - "syd": 517, - "jnb": 672, - "ams": 173, - "iad": 80 - }, - { - "timestamp": "Feb 4, 05:00", - "gru": 427, - "syd": 500, - "jnb": 657, - "ams": 174, - "iad": 84, - "hkg": 291 - }, - { - "timestamp": "Feb 4, 06:00", - "jnb": 849, - "syd": 526, - "ams": 179, - "iad": 90, - "gru": 417, - "hkg": 288 - }, - { - "timestamp": "Feb 4, 07:00", - "hkg": 304, - "jnb": 656, - "syd": 471, - "ams": 210, - "iad": 82, - "gru": 418 - }, - { - "timestamp": "Feb 4, 08:00", - "hkg": 303, - "gru": 438, - "syd": 463, - "jnb": 688, - "ams": 198, - "iad": 90 - }, - { - "timestamp": "Feb 4, 09:00", - "hkg": 372, - "iad": 84, - "ams": 182, - "jnb": 657, - "syd": 512, - "gru": 422 - }, - { - "timestamp": "Feb 4, 10:00", - "hkg": 302, - "gru": 419, - "jnb": 687, - "syd": 488, - "iad": 86, - "ams": 204 - }, - { - "timestamp": "Feb 4, 11:00", - "gru": 417, - "syd": 483, - "jnb": 659, - "ams": 177, - "iad": 83, - "hkg": 317 - }, - { - "timestamp": "Feb 4, 12:00", - "gru": 462, - "iad": 82, - "ams": 177, - "syd": 502, - "jnb": 694, - "hkg": 305 - }, - { - "timestamp": "Feb 4, 13:00", - "syd": 486, - "jnb": 657, - "ams": 184, - "iad": 88, - "gru": 437, - "hkg": 298 - }, - { - "timestamp": "Feb 4, 14:00", - "hkg": 292, - "gru": 424, - "ams": 196, - "iad": 78, - "jnb": 693, - "syd": 465 - }, - { - "timestamp": "Feb 4, 15:00", - "hkg": 295, - "iad": 79, - "ams": 181, - "syd": 460, - "jnb": 694, - "gru": 436 - }, - { - "timestamp": "Feb 4, 16:00", - "ams": 174, - "iad": 79, - "syd": 502, - "jnb": 660, - "gru": 425, - "hkg": 287 - }, - { - "timestamp": "Feb 4, 17:00", - "jnb": 657, - "syd": 513, - "ams": 200, - "iad": 80, - "gru": 416, - "hkg": 316 - }, - { - "timestamp": "Feb 4, 18:00", - "gru": 427, - "jnb": 661, - "syd": 470, - "ams": 178, - "iad": 82, - "hkg": 299 - }, - { - "timestamp": "Feb 4, 19:00", - "syd": 466, - "jnb": 708, - "iad": 85, - "ams": 179, - "gru": 422, - "hkg": 286 - }, - { - "timestamp": "Feb 4, 20:00", - "ams": 176, - "iad": 81, - "syd": 462, - "jnb": 692, - "gru": 440, - "hkg": 285 - }, - { - "timestamp": "Feb 4, 21:00", - "hkg": 305, - "syd": 514, - "jnb": 658, - "iad": 88, - "ams": 178, - "gru": 417 - }, - { - "timestamp": "Feb 4, 22:00", - "hkg": 302, - "gru": 417, - "iad": 90, - "ams": 178, - "syd": 462, - "jnb": 680 - }, - { - "timestamp": "Feb 4, 23:00", - "jnb": 685, - "syd": 528, - "iad": 83, - "ams": 181, - "gru": 438, - "hkg": 302 - }, - { - "timestamp": "Feb 5, 00:00", - "gru": 416, - "jnb": 677, - "syd": 520, - "ams": 178, - "iad": 81, - "hkg": 286 - }, - { - "timestamp": "Feb 5, 01:00", - "gru": 416, - "iad": 80, - "ams": 196, - "syd": 462, - "jnb": 682, - "hkg": 319 - }, - { - "timestamp": "Feb 5, 02:00", - "syd": 478, - "jnb": 660, - "iad": 81, - "ams": 180, - "gru": 415, - "hkg": 291 - }, - { - "timestamp": "Feb 5, 03:00", - "gru": 416, - "ams": 174, - "iad": 78, - "jnb": 657, - "syd": 461, - "hkg": 287 - }, - { - "timestamp": "Feb 5, 04:00", - "gru": 416, - "jnb": 657, - "syd": 488, - "iad": 84, - "ams": 178, - "hkg": 304 - }, - { - "timestamp": "Feb 5, 05:00", - "ams": 198, - "iad": 79, - "jnb": 685, - "syd": 486, - "gru": 423, - "hkg": 290 - }, - { - "timestamp": "Feb 5, 06:00", - "hkg": 288, - "jnb": 682, - "syd": 458, - "ams": 180, - "iad": 89, - "gru": 415 - }, - { - "timestamp": "Feb 5, 07:00", - "hkg": 307, - "gru": 447, - "syd": 470, - "jnb": 657, - "iad": 85, - "ams": 189 - }, - { - "timestamp": "Feb 5, 08:00", - "jnb": 660, - "syd": 466, - "ams": 184, - "iad": 79, - "gru": 416, - "hkg": 292 - }, - { - "timestamp": "Feb 5, 09:00", - "ams": 178, - "iad": 89, - "syd": 472, - "jnb": 738, - "gru": 436, - "hkg": 306 - }, - { - "timestamp": "Feb 5, 10:00", - "hkg": 310, - "syd": 505, - "jnb": 698, - "ams": 178, - "iad": 237, - "gru": 416 - }, - { - "timestamp": "Feb 5, 11:00", - "hkg": 319, - "gru": 416, - "jnb": 664, - "syd": 465, - "iad": 84, - "ams": 203 - }, - { - "timestamp": "Feb 5, 12:00", - "hkg": 302, - "gru": 425, - "ams": 201, - "iad": 84, - "jnb": 701, - "syd": 468 - }, - { - "timestamp": "Feb 5, 13:00", - "hkg": 311, - "iad": 84, - "ams": 204, - "jnb": 690, - "syd": 482, - "gru": 425 - }, - { - "timestamp": "Feb 5, 14:00", - "hkg": 289, - "gru": 417, - "jnb": 678, - "syd": 466, - "iad": 84, - "ams": 179 - }, - { - "timestamp": "Feb 5, 15:00", - "gru": 489, - "syd": 465, - "jnb": 882, - "ams": 202, - "iad": 154, - "hkg": 417 - }, - { - "timestamp": "Feb 5, 16:00", - "syd": 464, - "jnb": 690, - "iad": 83, - "ams": 182, - "gru": 418, - "hkg": 295 - }, - { - "timestamp": "Feb 5, 17:00", - "hkg": 294, - "syd": 483, - "jnb": 660, - "iad": 82, - "ams": 178, - "gru": 522 - }, - { - "timestamp": "Feb 5, 18:00", - "hkg": 289, - "gru": 418, - "jnb": 710, - "syd": 464, - "iad": 82, - "ams": 198 - }, - { - "timestamp": "Feb 5, 19:00", - "gru": 419, - "ams": 185, - "iad": 84, - "jnb": 659, - "syd": 494, - "hkg": 310 - }, - { - "timestamp": "Feb 5, 20:00", - "ams": 177, - "iad": 82, - "syd": 461, - "jnb": 663, - "gru": 460, - "hkg": 284 - }, - { - "timestamp": "Feb 5, 21:00", - "ams": 192, - "iad": 83, - "jnb": 680, - "syd": 494, - "gru": 454, - "hkg": 289 - }, - { - "timestamp": "Feb 5, 22:00", - "gru": 424, - "syd": 464, - "jnb": 658, - "ams": 188, - "iad": 83, - "hkg": 290 - }, - { - "timestamp": "Feb 5, 23:00", - "iad": 82, - "ams": 201, - "syd": 466, - "jnb": 691, - "gru": 457, - "hkg": 366 - }, - { - "timestamp": "Feb 6, 00:00", - "hkg": 289, - "iad": 80, - "ams": 180, - "jnb": 656, - "syd": 486, - "gru": 438 - }, - { - "timestamp": "Feb 6, 01:00", - "hkg": 287, - "jnb": 692, - "syd": 464, - "ams": 179, - "iad": 83, - "gru": 417 - }, - { - "timestamp": "Feb 6, 02:00", - "gru": 460, - "jnb": 657, - "syd": 479, - "ams": 185, - "iad": 88, - "hkg": 313 - }, - { - "timestamp": "Feb 6, 03:00", - "iad": 77, - "ams": 185, - "jnb": 700, - "syd": 467, - "gru": 420, - "hkg": 293 - }, - { - "timestamp": "Feb 6, 04:00", - "hkg": 296, - "iad": 85, - "ams": 168, - "syd": 514, - "jnb": 652, - "gru": 435 - }, - { - "timestamp": "Feb 6, 05:00", - "hkg": 322, - "iad": 82, - "ams": 166, - "jnb": 651, - "syd": 471, - "gru": 423 - }, - { - "timestamp": "Feb 6, 06:00", - "hkg": 295, - "gru": 450, - "iad": 78, - "ams": 168, - "syd": 504, - "jnb": 650 - }, - { - "timestamp": "Feb 6, 07:00", - "hkg": 291, - "ams": 167, - "iad": 78, - "syd": 466, - "jnb": 651, - "gru": 416 - }, - { - "timestamp": "Feb 6, 08:00", - "hkg": 294, - "gru": 415, - "ams": 178, - "iad": 80, - "jnb": 651, - "syd": 465 - }, - { - "timestamp": "Feb 6, 09:00", - "hkg": 296, - "gru": 464, - "jnb": 651, - "syd": 480, - "ams": 170, - "iad": 77 - }, - { - "timestamp": "Feb 6, 10:00", - "hkg": 288, - "syd": 483, - "jnb": 651, - "ams": 186, - "iad": 79, - "gru": 434 - }, - { - "timestamp": "Feb 6, 11:00", - "hkg": 289, - "syd": 461, - "jnb": 653, - "ams": 169, - "iad": 82, - "gru": 438 - }, - { - "timestamp": "Feb 6, 12:00", - "hkg": 302, - "gru": 417, - "jnb": 680, - "syd": 500, - "ams": 170, - "iad": 87 - }, - { - "timestamp": "Feb 6, 13:00", - "hkg": 299, - "gru": 438, - "syd": 480, - "jnb": 650, - "ams": 167, - "iad": 78 - }, - { - "timestamp": "Feb 6, 14:00", - "gru": 419, - "jnb": 652, - "syd": 461, - "ams": 166, - "iad": 100, - "hkg": 300 - }, - { - "timestamp": "Feb 6, 15:00", - "iad": 78, - "ams": 168, - "jnb": 672, - "syd": 465, - "gru": 477, - "hkg": 343 - }, - { - "timestamp": "Feb 6, 16:00", - "gru": 418, - "syd": 487, - "jnb": 655, - "iad": 83, - "ams": 179, - "hkg": 294 - }, - { - "timestamp": "Feb 6, 17:00", - "gru": 426, - "ams": 183, - "iad": 87, - "syd": 481, - "jnb": 648, - "hkg": 301 - }, - { - "timestamp": "Feb 6, 18:00", - "hkg": 308, - "gru": 498, - "ams": 184, - "iad": 95, - "jnb": 734, - "syd": 483 - }, - { - "timestamp": "Feb 6, 19:00", - "hkg": 300, - "jnb": 677, - "syd": 460, - "iad": 79, - "ams": 171, - "gru": 437 - }, - { - "timestamp": "Feb 6, 20:00", - "gru": 441, - "jnb": 684, - "syd": 480, - "iad": 80, - "ams": 179, - "hkg": 314 - }, - { - "timestamp": "Feb 6, 21:00", - "gru": 434, - "syd": 508, - "jnb": 684, - "iad": 102, - "ams": 175, - "hkg": 308 - }, - { - "timestamp": "Feb 6, 22:00", - "jnb": 706, - "syd": 5418, - "iad": 1044, - "ams": 181, - "gru": 2103, - "hkg": 4239 - }, - { - "timestamp": "Feb 6, 23:00", - "hkg": 298, - "ams": 169, - "iad": 90, - "jnb": 710, - "syd": 502, - "gru": 469 - }, - { - "timestamp": "Feb 7, 00:00", - "hkg": 316, - "gru": 466, - "ams": 168, - "iad": 90, - "syd": 502, - "jnb": 712 - }, - { - "timestamp": "Feb 7, 01:00", - "hkg": 286, - "jnb": 652, - "syd": 462, - "iad": 80, - "ams": 166, - "gru": 416 - }, - { - "timestamp": "Feb 7, 02:00", - "hkg": 308, - "gru": 451, - "jnb": 712, - "syd": 513, - "ams": 175, - "iad": 90 - }, - { - "timestamp": "Feb 7, 03:00", - "gru": 460, - "syd": 491, - "jnb": 677, - "iad": 83, - "ams": 171, - "hkg": 291 - }, - { - "timestamp": "Feb 7, 04:00", - "iad": 82, - "ams": 166, - "syd": 463, - "jnb": 650, - "gru": 413, - "hkg": 287 - }, - { - "timestamp": "Feb 7, 05:00", - "hkg": 295, - "jnb": 772, - "syd": 496, - "iad": 89, - "ams": 173, - "gru": 471 - }, - { - "timestamp": "Feb 7, 06:00", - "hkg": 295, - "ams": 168, - "iad": 78, - "jnb": 649, - "syd": 488, - "gru": 416 - }, - { - "timestamp": "Feb 7, 07:00", - "hkg": 292, - "gru": 416, - "iad": 89, - "ams": 174, - "syd": 476, - "jnb": 662 - }, - { - "timestamp": "Feb 7, 08:00", - "gru": 422, - "syd": 462, - "jnb": 649, - "iad": 78, - "ams": 175, - "hkg": 429 - }, - { - "timestamp": "Feb 7, 09:00", - "gru": 471, - "iad": 82, - "ams": 186, - "jnb": 648, - "syd": 462, - "hkg": 289 - }, - { - "timestamp": "Feb 7, 10:00", - "jnb": 652, - "syd": 486, - "ams": 167, - "iad": 90, - "gru": 435, - "hkg": 294 - }, - { - "timestamp": "Feb 7, 11:00", - "gru": 420, - "syd": 462, - "jnb": 649, - "iad": 88, - "ams": 205, - "hkg": 294 - }, - { - "timestamp": "Feb 7, 12:00", - "hkg": 292, - "gru": 435, - "iad": 88, - "ams": 195, - "syd": 465, - "jnb": 679 - }, - { - "timestamp": "Feb 7, 13:00", - "hkg": 293, - "syd": 465, - "jnb": 705, - "ams": 175, - "iad": 88, - "gru": 439 - }, - { - "timestamp": "Feb 7, 14:00", - "hkg": 298, - "iad": 84, - "ams": 176, - "syd": 504, - "jnb": 681, - "gru": 448 - }, - { - "timestamp": "Feb 7, 15:00", - "gru": 445, - "ams": 195, - "iad": 83, - "syd": 463, - "jnb": 679, - "hkg": 307 - }, - { - "timestamp": "Feb 7, 16:00", - "syd": 486, - "jnb": 650, - "ams": 176, - "iad": 81, - "gru": 455, - "hkg": 288 - }, - { - "timestamp": "Feb 7, 17:00", - "iad": 88, - "ams": 188, - "jnb": 739, - "syd": 462, - "gru": 437, - "hkg": 289 - }, - { - "timestamp": "Feb 7, 18:00", - "gru": 497, - "ams": 170, - "iad": 82, - "jnb": 678, - "syd": 506, - "hkg": 308 - }, - { - "timestamp": "Feb 7, 19:00", - "syd": 462, - "jnb": 660, - "iad": 80, - "ams": 166, - "gru": 425, - "hkg": 287 - }, - { - "timestamp": "Feb 7, 20:00", - "gru": 438, - "iad": 90, - "ams": 175, - "syd": 460, - "jnb": 679, - "hkg": 297 - }, - { - "timestamp": "Feb 7, 21:00", - "hkg": 326, - "gru": 490, - "syd": 514, - "jnb": 709, - "ams": 171, - "iad": 96 - }, - { - "timestamp": "Feb 7, 22:00", - "hkg": 290, - "gru": 424, - "iad": 82, - "ams": 190, - "syd": 492, - "jnb": 650 - }, - { - "timestamp": "Feb 7, 23:00", - "hkg": 290, - "ams": 172, - "iad": 80, - "jnb": 652, - "syd": 484, - "gru": 418 - }, - { - "timestamp": "Feb 8, 00:00", - "hkg": 291, - "syd": 479, - "jnb": 681, - "ams": 172, - "iad": 81, - "gru": 441 - }, - { - "timestamp": "Feb 8, 01:00", - "hkg": 292, - "ams": 174, - "iad": 79, - "jnb": 683, - "syd": 460, - "gru": 436 - }, - { - "timestamp": "Feb 8, 02:00", - "iad": 81, - "ams": 188, - "jnb": 652, - "syd": 509, - "gru": 436, - "hkg": 285 - }, - { - "timestamp": "Feb 8, 03:00", - "gru": 417, - "ams": 169, - "iad": 94, - "syd": 487, - "jnb": 650, - "hkg": 292 - }, - { - "timestamp": "Feb 8, 04:00", - "ams": 176, - "iad": 82, - "syd": 467, - "jnb": 653, - "gru": 416, - "hkg": 288 - }, - { - "timestamp": "Feb 8, 05:00", - "gru": 425, - "syd": 461, - "jnb": 654, - "iad": 97, - "ams": 177, - "hkg": 288 - }, - { - "timestamp": "Feb 8, 06:00", - "gru": 415, - "ams": 166, - "iad": 78, - "syd": 484, - "jnb": 651, - "hkg": 379 - }, - { - "timestamp": "Feb 8, 07:00", - "hkg": 289, - "gru": 415, - "iad": 78, - "ams": 167, - "jnb": 650, - "syd": 462 - }, - { - "timestamp": "Feb 8, 08:00", - "hkg": 288, - "jnb": 662, - "syd": 463, - "iad": 78, - "ams": 167, - "gru": 417 - }, - { - "timestamp": "Feb 8, 09:00", - "gru": 415, - "jnb": 679, - "syd": 465, - "ams": 167, - "iad": 82, - "hkg": 286 - }, - { - "timestamp": "Feb 8, 10:00", - "syd": 464, - "jnb": 653, - "ams": 188, - "iad": 77, - "gru": 426, - "hkg": 300 - }, - { - "timestamp": "Feb 8, 11:00", - "hkg": 300, - "syd": 479, - "jnb": 652, - "ams": 166, - "iad": 84, - "gru": 436 - }, - { - "timestamp": "Feb 8, 12:00", - "hkg": 285, - "gru": 417, - "jnb": 653, - "syd": 464, - "ams": 175, - "iad": 79 - }, - { - "timestamp": "Feb 8, 13:00", - "hkg": 284, - "iad": 80, - "ams": 167, - "syd": 466, - "jnb": 651, - "gru": 418 - }, - { - "timestamp": "Feb 8, 14:00", - "hkg": 285, - "gru": 416, - "iad": 80, - "ams": 180, - "jnb": 650, - "syd": 466 - }, - { - "timestamp": "Feb 8, 15:00", - "hkg": 288, - "gru": 418, - "jnb": 650, - "syd": 498, - "iad": 78, - "ams": 170 - }, - { - "timestamp": "Feb 8, 16:00", - "gru": 422, - "syd": 464, - "jnb": 649, - "iad": 86, - "ams": 177, - "hkg": 303 - }, - { - "timestamp": "Feb 8, 17:00", - "gru": 418, - "syd": 466, - "jnb": 649, - "iad": 80, - "ams": 336, - "hkg": 288 - }, - { - "timestamp": "Feb 8, 18:00", - "hkg": 305, - "gru": 436, - "syd": 507, - "jnb": 678, - "ams": 178, - "iad": 224 - }, - { - "timestamp": "Feb 8, 19:00", - "hkg": 290, - "syd": 466, - "jnb": 653, - "ams": 172, - "iad": 82, - "gru": 417 - }, - { - "timestamp": "Feb 8, 20:00", - "jnb": 857, - "syd": 497, - "ams": 176, - "iad": 85, - "gru": 443, - "hkg": 291 - }, - { - "timestamp": "Feb 8, 21:00", - "gru": 417, - "syd": 462, - "jnb": 650, - "iad": 78, - "ams": 175, - "hkg": 298 - }, - { - "timestamp": "Feb 8, 22:00", - "iad": 79, - "ams": 166, - "jnb": 648, - "syd": 467, - "gru": 418, - "hkg": 288 - }, - { - "timestamp": "Feb 8, 23:00", - "jnb": 652, - "syd": 484, - "iad": 80, - "ams": 172, - "gru": 419, - "hkg": 305 - }, - { - "timestamp": "Feb 9, 00:00", - "gru": 416, - "syd": 464, - "jnb": 651, - "iad": 80, - "ams": 170, - "hkg": 285 - }, - { - "timestamp": "Feb 9, 01:00", - "gru": 416, - "syd": 478, - "jnb": 674, - "ams": 168, - "iad": 79, - "hkg": 284 - }, - { - "timestamp": "Feb 9, 02:00", - "jnb": 652, - "syd": 460, - "ams": 175, - "iad": 79, - "gru": 416, - "hkg": 289 - }, - { - "timestamp": "Feb 9, 03:00", - "hkg": 287, - "gru": 436, - "syd": 464, - "jnb": 650, - "ams": 172, - "iad": 79 - }, - { - "timestamp": "Feb 9, 04:00", - "hkg": 313, - "jnb": 658, - "syd": 466, - "ams": 165, - "iad": 78, - "gru": 421 - }, - { - "timestamp": "Feb 9, 05:00", - "syd": 463, - "jnb": 650, - "iad": 78, - "ams": 173, - "gru": 416, - "hkg": 287 - }, - { - "timestamp": "Feb 9, 06:00", - "gru": 416, - "jnb": 711, - "syd": 515, - "iad": 86, - "ams": 169, - "hkg": 291 - }, - { - "timestamp": "Feb 9, 07:00", - "gru": 414, - "iad": 78, - "ams": 167, - "jnb": 651, - "syd": 460, - "hkg": 287 - }, - { - "timestamp": "Feb 9, 08:00", - "syd": 465, - "jnb": 648, - "iad": 78, - "ams": 171, - "gru": 417, - "hkg": 288 - }, - { - "timestamp": "Feb 9, 09:00", - "syd": 464, - "jnb": 654, - "iad": 78, - "ams": 168, - "gru": 416, - "hkg": 287 - }, - { - "timestamp": "Feb 9, 10:00", - "hkg": 287, - "jnb": 652, - "syd": 473, - "iad": 79, - "ams": 173, - "gru": 416 - }, - { - "timestamp": "Feb 9, 11:00", - "hkg": 285, - "gru": 416, - "jnb": 652, - "syd": 491, - "iad": 80, - "ams": 183 - }, - { - "timestamp": "Feb 9, 12:00", - "hkg": 287, - "gru": 444, - "ams": 169, - "iad": 78, - "syd": 466, - "jnb": 652 - }, - { - "timestamp": "Feb 9, 13:00", - "hkg": 286, - "iad": 78, - "ams": 170, - "jnb": 653, - "syd": 482, - "gru": 421 - }, - { - "timestamp": "Feb 9, 14:00", - "iad": 78, - "ams": 189, - "syd": 468, - "jnb": 650, - "gru": 416, - "hkg": 297 - }, - { - "timestamp": "Feb 9, 15:00", - "syd": 483, - "jnb": 649, - "iad": 79, - "ams": 174, - "gru": 417, - "hkg": 314 - }, - { - "timestamp": "Feb 9, 16:00", - "gru": 455, - "jnb": 690, - "syd": 489, - "iad": 85, - "ams": 169, - "hkg": 294 - }, - { - "timestamp": "Feb 9, 17:00", - "ams": 169, - "iad": 78, - "syd": 475, - "jnb": 652, - "gru": 417, - "hkg": 285 - }, - { - "timestamp": "Feb 9, 18:00", - "gru": 416, - "syd": 460, - "jnb": 654, - "ams": 168, - "iad": 78, - "hkg": 305 - }, - { - "timestamp": "Feb 9, 19:00", - "hkg": 286, - "gru": 418, - "jnb": 656, - "syd": 617, - "iad": 79, - "ams": 172 - }, - { - "timestamp": "Feb 9, 20:00", - "hkg": 286, - "jnb": 650, - "syd": 461, - "ams": 170, - "iad": 88, - "gru": 416 - }, - { - "timestamp": "Feb 9, 21:00", - "gru": 415, - "iad": 83, - "ams": 184, - "syd": 467, - "jnb": 652, - "hkg": 297 - }, - { - "timestamp": "Feb 9, 22:00", - "syd": 458, - "jnb": 651, - "iad": 78, - "ams": 168, - "gru": 418, - "hkg": 286 - }, - { - "timestamp": "Feb 9, 23:00", - "hkg": 287, - "jnb": 678, - "syd": 474, - "ams": 166, - "iad": 78, - "gru": 417 - }, - { - "timestamp": "Feb 10, 00:00", - "hkg": 285, - "iad": 85, - "ams": 166, - "jnb": 649, - "syd": 464, - "gru": 415 - }, - { - "timestamp": "Feb 10, 01:00", - "hkg": 285, - "syd": 484, - "jnb": 650, - "iad": 78, - "ams": 166, - "gru": 419 - }, - { - "timestamp": "Feb 10, 02:00", - "hkg": 309, - "gru": 416, - "syd": 465, - "jnb": 667, - "iad": 86, - "ams": 167 - }, - { - "timestamp": "Feb 10, 03:00", - "hkg": 312, - "jnb": 649, - "syd": 462, - "ams": 170, - "iad": 78, - "gru": 425 - }, - { - "timestamp": "Feb 10, 04:00", - "jnb": 652, - "syd": 464, - "iad": 87, - "ams": 166, - "gru": 416, - "hkg": 285 - }, - { - "timestamp": "Feb 10, 05:00", - "gru": 415, - "ams": 167, - "iad": 81, - "jnb": 650, - "syd": 464, - "hkg": 283 - }, - { - "timestamp": "Feb 10, 06:00", - "hkg": 288, - "gru": 432, - "syd": 489, - "jnb": 650, - "iad": 77, - "ams": 167 - }, - { - "timestamp": "Feb 10, 07:00", - "hkg": 287, - "jnb": 649, - "syd": 464, - "ams": 168, - "iad": 77, - "gru": 416 - }, - { - "timestamp": "Feb 10, 08:00", - "hkg": 285, - "iad": 78, - "ams": 168, - "jnb": 647, - "syd": 470, - "gru": 417 - }, - { - "timestamp": "Feb 10, 09:00", - "hkg": 284, - "syd": 478, - "jnb": 648, - "ams": 167, - "iad": 79, - "gru": 415 - }, - { - "timestamp": "Feb 10, 10:00", - "hkg": 317, - "gru": 416, - "ams": 169, - "iad": 78, - "syd": 479, - "jnb": 650 - }, - { - "timestamp": "Feb 10, 11:00", - "hkg": 288, - "jnb": 684, - "syd": 465, - "iad": 78, - "ams": 167, - "gru": 435 - }, - { - "timestamp": "Feb 10, 12:00", - "hkg": 288, - "gru": 417, - "jnb": 694, - "syd": 508, - "ams": 167, - "iad": 94 - }, - { - "timestamp": "Feb 10, 13:00", - "gru": 418, - "iad": 96, - "ams": 171, - "jnb": 687, - "syd": 473, - "hkg": 290 - }, - { - "timestamp": "Feb 10, 14:00", - "jnb": 686, - "syd": 461, - "iad": 84, - "ams": 172, - "gru": 440, - "hkg": 293 - }, - { - "timestamp": "Feb 10, 15:00", - "hkg": 286, - "gru": 417, - "jnb": 649, - "syd": 462, - "ams": 176, - "iad": 77 - }, - { - "timestamp": "Feb 10, 16:00", - "hkg": 287, - "gru": 438, - "iad": 80, - "ams": 166, - "jnb": 676, - "syd": 484 - }, - { - "timestamp": "Feb 10, 17:00", - "hkg": 297, - "gru": 415, - "syd": 555, - "jnb": 674, - "iad": 84, - "ams": 214 - }, - { - "timestamp": "Feb 10, 18:00", - "gru": 417, - "iad": 77, - "ams": 377, - "syd": 547, - "jnb": 828, - "hkg": 420 - }, - { - "timestamp": "Feb 10, 19:00", - "ams": 404, - "iad": 82, - "jnb": 871, - "syd": 568, - "gru": 416, - "hkg": 400 - }, - { - "timestamp": "Feb 10, 20:00", - "gru": 424, - "jnb": 728, - "syd": 541, - "iad": 83, - "ams": 196, - "hkg": 426 - }, - { - "timestamp": "Feb 10, 21:00", - "ams": 362, - "iad": 80, - "jnb": 713, - "syd": 487, - "gru": 434, - "hkg": 349 - }, - { - "timestamp": "Feb 10, 22:00", - "hkg": 434, - "jnb": 647, - "syd": 486, - "ams": 187, - "iad": 78, - "gru": 423 - }, - { - "timestamp": "Feb 10, 23:00", - "hkg": 337, - "gru": 416, - "syd": 538, - "jnb": 648, - "iad": 76, - "ams": 167 - }, - { - "timestamp": "Feb 11, 00:00", - "hkg": 310, - "gru": 438, - "ams": 195, - "iad": 77, - "syd": 543, - "jnb": 721 - }, - { - "timestamp": "Feb 11, 01:00", - "hkg": 812, - "jnb": 648, - "syd": 506, - "ams": 210, - "iad": 89, - "gru": 414 - }, - { - "timestamp": "Feb 11, 02:00", - "hkg": 366, - "gru": 420, - "syd": 556, - "jnb": 675, - "ams": 258, - "iad": 81 - }, - { - "timestamp": "Feb 11, 03:00", - "gru": 415, - "iad": 78, - "ams": 266, - "syd": 472, - "jnb": 733, - "hkg": 414 - }, - { - "timestamp": "Feb 11, 04:00", - "iad": 79, - "ams": 189, - "jnb": 737, - "syd": 514, - "gru": 434, - "hkg": 315 - }, - { - "timestamp": "Feb 11, 05:00", - "gru": 434, - "iad": 93, - "ams": 192, - "syd": 562, - "jnb": 673, - "hkg": 328 - }, - { - "timestamp": "Feb 11, 06:00", - "iad": 95, - "ams": 196, - "jnb": 658, - "syd": 576, - "gru": 416, - "hkg": 338 - }, - { - "timestamp": "Feb 11, 07:00", - "hkg": 347, - "jnb": 685, - "syd": 578, - "ams": 425, - "iad": 88, - "gru": 414 - }, - { - "timestamp": "Feb 11, 08:00", - "hkg": 398, - "gru": 423, - "syd": 565, - "jnb": 669, - "ams": 210, - "iad": 86 - }, - { - "timestamp": "Feb 11, 09:00", - "hkg": 406, - "syd": 519, - "jnb": 683, - "iad": 79, - "ams": 208, - "gru": 423 - }, - { - "timestamp": "Feb 11, 10:00", - "gru": 416, - "syd": 534, - "jnb": 676, - "iad": 76, - "ams": 223, - "hkg": 329 - }, - { - "timestamp": "Feb 11, 11:00", - "ams": 195, - "iad": 77, - "syd": 541, - "jnb": 866, - "gru": 414, - "hkg": 325 - }, - { - "timestamp": "Feb 11, 12:00", - "hkg": 384, - "ams": 770, - "iad": 80, - "jnb": 714, - "syd": 530, - "gru": 423 - }, - { - "timestamp": "Feb 11, 13:00", - "hkg": 418, - "gru": 414, - "syd": 596, - "jnb": 672, - "ams": 736, - "iad": 81 - }, - { - "timestamp": "Feb 11, 14:00", - "hkg": 408, - "ams": 214, - "iad": 80, - "jnb": 668, - "syd": 559, - "gru": 415 - }, - { - "timestamp": "Feb 11, 15:00", - "hkg": 327, - "gru": 418, - "jnb": 1195, - "syd": 543, - "iad": 83, - "ams": 212 - }, - { - "timestamp": "Feb 11, 16:00", - "gru": 415, - "syd": 534, - "jnb": 885, - "iad": 85, - "ams": 186, - "hkg": 352 - }, - { - "timestamp": "Feb 11, 17:00", - "hkg": 357, - "gru": 415, - "syd": 590, - "jnb": 670, - "iad": 83, - "ams": 209 - }, - { - "timestamp": "Feb 11, 18:00", - "hkg": 350, - "jnb": 3586, - "syd": 554, - "iad": 80, - "ams": 406, - "gru": 414 - }, - { - "timestamp": "Feb 11, 19:00", - "iad": 78, - "ams": 226, - "syd": 588, - "jnb": 3298, - "gru": 415, - "hkg": 358 - }, - { - "timestamp": "Feb 11, 20:00", - "gru": 415, - "iad": 78, - "ams": 723, - "jnb": 843, - "syd": 500, - "hkg": 370 - }, - { - "timestamp": "Feb 11, 21:00", - "hkg": 368, - "gru": 424, - "syd": 568, - "jnb": 881, - "iad": 86, - "ams": 217 - }, - { - "timestamp": "Feb 11, 22:00", - "hkg": 330, - "jnb": 646, - "syd": 522, - "iad": 89, - "ams": 331, - "gru": 415 - }, - { - "timestamp": "Feb 11, 23:00", - "hkg": 331, - "gru": 416, - "jnb": 690, - "syd": 525, - "ams": 264, - "iad": 76 - }, - { - "timestamp": "Feb 12, 00:00", - "hkg": 312, - "syd": 490, - "jnb": 706, - "ams": 235, - "iad": 84, - "gru": 416 - }, - { - "timestamp": "Feb 12, 01:00", - "hkg": 314, - "gru": 424, - "syd": 514, - "jnb": 671, - "iad": 83, - "ams": 212 - }, - { - "timestamp": "Feb 12, 02:00", - "gru": 415, - "jnb": 673, - "syd": 536, - "iad": 86, - "ams": 217, - "hkg": 338 - }, - { - "timestamp": "Feb 12, 03:00", - "ams": 185, - "iad": 79, - "jnb": 648, - "syd": 528, - "gru": 414, - "hkg": 348 - }, - { - "timestamp": "Feb 12, 04:00", - "hkg": 357, - "gru": 434, - "ams": 236, - "iad": 78, - "jnb": 692, - "syd": 549 - }, - { - "timestamp": "Feb 12, 05:00", - "hkg": 384, - "syd": 460, - "jnb": 693, - "ams": 224, - "iad": 78, - "gru": 432 - }, - { - "timestamp": "Feb 12, 06:00", - "jnb": 653, - "syd": 486, - "ams": 173, - "iad": 86, - "gru": 415, - "hkg": 377 - }, - { - "timestamp": "Feb 12, 07:00", - "gru": 441, - "iad": 98, - "ams": 209, - "jnb": 670, - "syd": 509, - "hkg": 381 - }, - { - "timestamp": "Feb 12, 08:00", - "syd": 503, - "jnb": 706, - "iad": 78, - "ams": 203, - "gru": 415, - "hkg": 349 - }, - { - "timestamp": "Feb 12, 09:00", - "gru": 416, - "jnb": 662, - "syd": 545, - "ams": 188, - "iad": 76, - "hkg": 329 - }, - { - "timestamp": "Feb 12, 10:00", - "gru": 414, - "iad": 78, - "ams": 196, - "jnb": 711, - "syd": 516, - "hkg": 364 - }, - { - "timestamp": "Feb 12, 11:00", - "hkg": 362, - "gru": 440, - "ams": 188, - "iad": 83, - "syd": 598, - "jnb": 647 - }, - { - "timestamp": "Feb 12, 12:00", - "hkg": 356, - "syd": 554, - "jnb": 718, - "ams": 214, - "iad": 76, - "gru": 428 - }, - { - "timestamp": "Feb 12, 13:00", - "hkg": 384, - "syd": 538, - "jnb": 690, - "ams": 386, - "iad": 86, - "gru": 414 - }, - { - "timestamp": "Feb 12, 14:00", - "hkg": 347, - "gru": 417, - "syd": 521, - "jnb": 658, - "iad": 79, - "ams": 273 - }, - { - "timestamp": "Feb 12, 15:00", - "gru": 436, - "jnb": 1427, - "syd": 572, - "ams": 272, - "iad": 80, - "hkg": 416 - }, - { - "timestamp": "Feb 12, 16:00", - "ams": 1859, - "iad": 87, - "jnb": 760, - "syd": 534, - "gru": 443, - "hkg": 366 - }, - { - "timestamp": "Feb 12, 17:00", - "ams": 209, - "iad": 80, - "syd": 525, - "jnb": 925, - "gru": 438, - "hkg": 338 - }, - { - "timestamp": "Feb 12, 18:00", - "syd": 561, - "jnb": 1236, - "iad": 84, - "ams": 1210, - "gru": 434, - "hkg": 303 - }, - { - "timestamp": "Feb 12, 19:00", - "gru": 422, - "jnb": 1261, - "syd": 529, - "ams": 360, - "iad": 82, - "hkg": 340 - }, - { - "timestamp": "Feb 12, 20:00", - "hkg": 285, - "gru": 424, - "ams": 376, - "iad": 79, - "jnb": 670, - "syd": 489 - }, - { - "timestamp": "Feb 12, 21:00", - "hkg": 337, - "jnb": 672, - "syd": 522, - "iad": 80, - "ams": 192, - "gru": 418 - }, - { - "timestamp": "Feb 12, 22:00", - "gru": 422, - "syd": 492, - "jnb": 683, - "ams": 199, - "iad": 79, - "hkg": 311 - }, - { - "timestamp": "Feb 12, 23:00", - "jnb": 711, - "syd": 582, - "iad": 91, - "ams": 216, - "gru": 470, - "hkg": 338 - }, - { - "timestamp": "Feb 13, 00:00", - "hkg": 377, - "iad": 77, - "ams": 182, - "jnb": 671, - "syd": 515, - "gru": 415 - }, - { - "timestamp": "Feb 13, 01:00", - "gru": 422, - "syd": 515, - "jnb": 685, - "ams": 216, - "iad": 83, - "hkg": 314 - }, - { - "timestamp": "Feb 13, 02:00", - "gru": 416, - "iad": 80, - "ams": 195, - "syd": 516, - "jnb": 657, - "hkg": 327 - }, - { - "timestamp": "Feb 13, 03:00", - "jnb": 672, - "syd": 529, - "ams": 174, - "iad": 89, - "gru": 418, - "hkg": 373 - }, - { - "timestamp": "Feb 13, 04:00", - "gru": 416, - "ams": 224, - "iad": 82, - "jnb": 698, - "syd": 533, - "hkg": 329 - }, - { - "timestamp": "Feb 13, 05:00", - "hkg": 344, - "gru": 416, - "jnb": 648, - "syd": 540, - "iad": 85, - "ams": 177 - }, - { - "timestamp": "Feb 13, 06:00", - "hkg": 311, - "jnb": 670, - "syd": 546, - "ams": 241, - "iad": 88, - "gru": 444 - }, - { - "timestamp": "Feb 13, 07:00", - "jnb": 690, - "syd": 499, - "ams": 206, - "iad": 97, - "gru": 414, - "hkg": 369 - }, - { - "timestamp": "Feb 13, 08:00", - "gru": 455, - "ams": 221, - "iad": 89, - "jnb": 725, - "syd": 574, - "hkg": 347 - }, - { - "timestamp": "Feb 13, 09:00", - "hkg": 368, - "syd": 520, - "jnb": 672, - "ams": 187, - "iad": 84, - "gru": 423 - }, - { - "timestamp": "Feb 13, 10:00", - "hkg": 339, - "iad": 75, - "ams": 197, - "syd": 524, - "jnb": 695, - "gru": 414 - }, - { - "timestamp": "Feb 13, 11:00", - "hkg": 350, - "gru": 437, - "ams": 207, - "iad": 77, - "jnb": 702, - "syd": 554 - }, - { - "timestamp": "Feb 13, 12:00", - "hkg": 382, - "ams": 195, - "iad": 83, - "jnb": 669, - "syd": 592, - "gru": 445 - }, - { - "timestamp": "Feb 13, 13:00", - "hkg": 354, - "gru": 460, - "jnb": 676, - "syd": 552, - "iad": 97, - "ams": 190 - }, - { - "timestamp": "Feb 13, 14:00", - "gru": 417, - "jnb": 678, - "syd": 532, - "ams": 169, - "iad": 78, - "hkg": 346 - }, - { - "timestamp": "Feb 13, 15:00", - "syd": 484, - "jnb": 704, - "iad": 80, - "ams": 229, - "gru": 424, - "hkg": 349 - }, - { - "timestamp": "Feb 13, 16:00", - "hkg": 361, - "gru": 456, - "iad": 92, - "ams": 195, - "jnb": 728, - "syd": 509 - }, - { - "timestamp": "Feb 13, 17:00", - "hkg": 311, - "ams": 176, - "iad": 82, - "syd": 486, - "jnb": 673, - "gru": 416 - }, - { - "timestamp": "Feb 13, 18:00", - "ams": 222, - "iad": 78, - "jnb": 683, - "syd": 544, - "gru": 415, - "hkg": 356 - }, - { - "timestamp": "Feb 13, 19:00", - "jnb": 670, - "syd": 565, - "ams": 236, - "iad": 88, - "gru": 415, - "hkg": 381 - }, - { - "timestamp": "Feb 13, 20:00", - "gru": 426, - "syd": 601, - "jnb": 703, - "ams": 172, - "iad": 85, - "hkg": 365 - }, - { - "timestamp": "Feb 13, 21:00", - "iad": 76, - "ams": 188, - "jnb": 774, - "syd": 524, - "gru": 428, - "hkg": 402 - }, - { - "timestamp": "Feb 13, 22:00", - "gru": 416, - "iad": 199, - "ams": 196, - "syd": 527, - "jnb": 700, - "hkg": 362 - }, - { - "timestamp": "Feb 13, 23:00", - "hkg": 348, - "gru": 427, - "iad": 76, - "ams": 176, - "syd": 499, - "jnb": 649 - }, - { - "timestamp": "Feb 14, 00:00", - "hkg": 342, - "iad": 76, - "ams": 210, - "jnb": 720, - "syd": 563, - "gru": 416 - }, - { - "timestamp": "Feb 14, 01:00", - "hkg": 318, - "gru": 457, - "iad": 87, - "ams": 170, - "syd": 547, - "jnb": 682 - }, - { - "timestamp": "Feb 14, 02:00", - "hkg": 379, - "iad": 86, - "ams": 202, - "jnb": 662, - "syd": 509, - "gru": 416 - }, - { - "timestamp": "Feb 14, 03:00", - "hkg": 347, - "jnb": 680, - "syd": 572, - "iad": 90, - "ams": 167, - "gru": 436 - }, - { - "timestamp": "Feb 14, 04:00", - "syd": 553, - "jnb": 718, - "iad": 86, - "ams": 199, - "gru": 448, - "hkg": 372 - }, - { - "timestamp": "Feb 14, 05:00", - "gru": 413, - "jnb": 674, - "syd": 548, - "ams": 211, - "iad": 77, - "hkg": 363 - }, - { - "timestamp": "Feb 14, 06:00", - "ams": 184, - "iad": 76, - "syd": 535, - "jnb": 690, - "gru": 420, - "hkg": 364 - }, - { - "timestamp": "Feb 14, 07:00", - "gru": 414, - "ams": 201, - "iad": 76, - "syd": 525, - "jnb": 717, - "hkg": 381 - }, - { - "timestamp": "Feb 14, 08:00", - "hkg": 374, - "gru": 418, - "ams": 163, - "iad": 79, - "jnb": 658, - "syd": 557 - }, - { - "timestamp": "Feb 14, 09:00", - "iad": 80, - "ams": 187, - "jnb": 656, - "syd": 520, - "gru": 423, - "hkg": 366 - }, - { - "timestamp": "Feb 14, 10:00", - "hkg": 290, - "gru": 413, - "iad": 77, - "ams": 170, - "jnb": 717, - "syd": 563 - }, - { - "timestamp": "Feb 14, 11:00", - "hkg": 328, - "gru": 437, - "jnb": 664, - "syd": 481, - "iad": 76, - "ams": 227 - }, - { - "timestamp": "Feb 14, 12:00", - "hkg": 353, - "syd": 511, - "jnb": 699, - "iad": 75, - "ams": 184, - "gru": 424 - }, - { - "timestamp": "Feb 14, 13:00", - "jnb": 708, - "syd": 518, - "ams": 227, - "iad": 86, - "gru": 414, - "hkg": 326 - }, - { - "timestamp": "Feb 14, 14:00", - "gru": 425, - "syd": 531, - "jnb": 673, - "ams": 196, - "iad": 83, - "hkg": 357 - }, - { - "timestamp": "Feb 14, 15:00", - "ams": 242, - "iad": 86, - "syd": 516, - "jnb": 665, - "gru": 414, - "hkg": 372 - }, - { - "timestamp": "Feb 14, 16:00", - "gru": 436, - "ams": 189, - "iad": 99, - "jnb": 714, - "syd": 536, - "hkg": 350 - }, - { - "timestamp": "Feb 14, 17:00", - "hkg": 350, - "ams": 212, - "iad": 78, - "jnb": 1005, - "syd": 498, - "gru": 415 - }, - { - "timestamp": "Feb 14, 18:00", - "hkg": 388, - "gru": 468, - "ams": 202, - "iad": 85, - "syd": 566, - "jnb": 743 - }, - { - "timestamp": "Feb 14, 19:00", - "hkg": 390, - "gru": 415, - "syd": 512, - "jnb": 703, - "ams": 209, - "iad": 76 - }, - { - "timestamp": "Feb 14, 20:00", - "gru": 437, - "syd": 516, - "jnb": 684, - "iad": 88, - "ams": 193, - "hkg": 388 - }, - { - "timestamp": "Feb 14, 21:00", - "jnb": 697, - "syd": 572, - "ams": 203, - "iad": 95, - "gru": 417, - "hkg": 420 - }, - { - "timestamp": "Feb 14, 22:00", - "hkg": 348, - "syd": 536, - "jnb": 675, - "ams": 216, - "iad": 87, - "gru": 425 - }, - { - "timestamp": "Feb 14, 23:00", - "hkg": 319, - "gru": 414, - "syd": 583, - "jnb": 690, - "ams": 206, - "iad": 77 - }, - { - "timestamp": "Feb 15, 00:00", - "hkg": 321, - "ams": 201, - "iad": 77, - "jnb": 661, - "syd": 506, - "gru": 416 - }, - { - "timestamp": "Feb 15, 01:00", - "hkg": 308, - "gru": 425, - "iad": 78, - "ams": 208, - "syd": 486, - "jnb": 679 - }, - { - "timestamp": "Feb 15, 02:00", - "gru": 432, - "syd": 556, - "jnb": 718, - "iad": 80, - "ams": 236, - "hkg": 351 - }, - { - "timestamp": "Feb 15, 03:00", - "jnb": 722, - "syd": 491, - "ams": 198, - "iad": 75, - "gru": 416, - "hkg": 337 - }, - { - "timestamp": "Feb 15, 04:00", - "iad": 78, - "ams": 198, - "jnb": 665, - "syd": 488, - "gru": 420, - "hkg": 531 - }, - { - "timestamp": "Feb 15, 05:00", - "hkg": 356, - "gru": 432, - "syd": 566, - "jnb": 672, - "ams": 177, - "iad": 79 - }, - { - "timestamp": "Feb 15, 06:00", - "hkg": 323, - "ams": 196, - "iad": 84, - "syd": 542, - "jnb": 670, - "gru": 416 - }, - { - "timestamp": "Feb 15, 07:00", - "iad": 94, - "ams": 201, - "jnb": 694, - "syd": 641, - "gru": 415, - "hkg": 370 - }, - { - "timestamp": "Feb 15, 08:00", - "gru": 416, - "ams": 214, - "iad": 82, - "jnb": 691, - "syd": 528, - "hkg": 349 - }, - { - "timestamp": "Feb 15, 09:00", - "gru": 414, - "ams": 205, - "iad": 82, - "syd": 508, - "jnb": 652, - "hkg": 340 - }, - { - "timestamp": "Feb 15, 10:00", - "syd": 581, - "jnb": 690, - "ams": 268, - "iad": 79, - "gru": 434, - "hkg": 376 - }, - { - "timestamp": "Feb 15, 11:00", - "hkg": 333, - "jnb": 690, - "syd": 523, - "iad": 87, - "ams": 220, - "gru": 423 - }, - { - "timestamp": "Feb 15, 12:00", - "hkg": 329, - "ams": 231, - "iad": 83, - "jnb": 671, - "syd": 564, - "gru": 415 - }, - { - "timestamp": "Feb 15, 13:00", - "hkg": 392, - "gru": 431, - "jnb": 649, - "syd": 518, - "iad": 84, - "ams": 217 - }, - { - "timestamp": "Feb 15, 14:00", - "hkg": 409, - "gru": 417, - "jnb": 660, - "syd": 504, - "ams": 173, - "iad": 77 - }, - { - "timestamp": "Feb 15, 15:00", - "hkg": 360, - "syd": 511, - "jnb": 741, - "iad": 84, - "ams": 216, - "gru": 440 - }, - { - "timestamp": "Feb 15, 16:00", - "syd": 476, - "jnb": 820, - "ams": 277, - "iad": 90, - "gru": 470, - "hkg": 370 - }, - { - "timestamp": "Feb 17, 10:00", - "hkg": 280, - "iad": 78, - "ams": 169, - "syd": 467, - "jnb": 656, - "gru": 415 - }, - { - "timestamp": "Feb 17, 11:00", - "gru": 422, - "jnb": 659, - "syd": 478, - "ams": 210, - "iad": 86, - "hkg": 293 - }, - { - "timestamp": "Feb 17, 12:00", - "syd": 466, - "jnb": 659, - "ams": 172, - "iad": 77, - "gru": 418, - "hkg": 348 - }, - { - "timestamp": "Feb 17, 13:00", - "jnb": 665, - "syd": 482, - "ams": 210, - "iad": 82, - "gru": 414, - "hkg": 314 - }, - { - "timestamp": "Feb 17, 14:00", - "hkg": 299, - "syd": 467, - "jnb": 692, - "ams": 173, - "iad": 83, - "gru": 414 - }, - { - "timestamp": "Feb 17, 15:00", - "hkg": 308, - "gru": 442, - "iad": 82, - "ams": 178, - "syd": 499, - "jnb": 703 - }, - { - "timestamp": "Feb 17, 16:00", - "hkg": 290, - "jnb": 658, - "syd": 476, - "iad": 77, - "ams": 171, - "gru": 416 - }, - { - "timestamp": "Feb 17, 17:00", - "hkg": 288, - "gru": 416, - "syd": 464, - "jnb": 657, - "ams": 187, - "iad": 81 - }, - { - "timestamp": "Feb 17, 18:00", - "gru": 414, - "syd": 460, - "jnb": 657, - "iad": 82, - "ams": 173, - "hkg": 320 - }, - { - "timestamp": "Feb 17, 19:00", - "jnb": 682, - "syd": 481, - "ams": 172, - "iad": 76, - "gru": 415, - "hkg": 305 - }, - { - "timestamp": "Feb 17, 20:00", - "hkg": 288, - "iad": 80, - "ams": 172, - "syd": 463, - "jnb": 798, - "gru": 416 - }, - { - "timestamp": "Feb 17, 21:00", - "hkg": 312, - "gru": 416, - "syd": 553, - "jnb": 668, - "ams": 172, - "iad": 76 - }, - { - "timestamp": "Feb 17, 22:00", - "hkg": 286, - "gru": 414, - "iad": 80, - "ams": 180, - "syd": 462, - "jnb": 664 - }, - { - "timestamp": "Feb 17, 23:00", - "gru": 414, - "ams": 187, - "iad": 80, - "jnb": 663, - "syd": 490, - "hkg": 302 - }, - { - "timestamp": "Feb 18, 00:00", - "jnb": 658, - "syd": 500, - "ams": 174, - "iad": 77, - "gru": 428, - "hkg": 285 - }, - { - "timestamp": "Feb 18, 01:00", - "syd": 509, - "jnb": 663, - "ams": 179, - "iad": 78, - "gru": 435, - "hkg": 327 - }, - { - "timestamp": "Feb 18, 02:00", - "gru": 414, - "syd": 534, - "jnb": 654, - "iad": 79, - "ams": 178, - "hkg": 323 - }, - { - "timestamp": "Feb 18, 03:00", - "hkg": 341, - "gru": 432, - "jnb": 658, - "syd": 510, - "ams": 191, - "iad": 75 - }, - { - "timestamp": "Feb 18, 04:00", - "hkg": 324, - "ams": 170, - "iad": 75, - "jnb": 682, - "syd": 515, - "gru": 415 - }, - { - "timestamp": "Feb 18, 05:00", - "gru": 414, - "syd": 494, - "jnb": 656, - "iad": 91, - "ams": 177, - "hkg": 314 - }, - { - "timestamp": "Feb 18, 06:00", - "gru": 414, - "ams": 185, - "iad": 76, - "syd": 471, - "jnb": 654, - "hkg": 282 - }, - { - "timestamp": "Feb 18, 07:00", - "iad": 76, - "ams": 198, - "jnb": 654, - "syd": 484, - "gru": 414, - "hkg": 286 - }, - { - "timestamp": "Feb 18, 08:00", - "hkg": 303, - "jnb": 655, - "syd": 463, - "iad": 76, - "ams": 194, - "gru": 434 - }, - { - "timestamp": "Feb 18, 09:00", - "gru": 550, - "ams": 172, - "iad": 89, - "syd": 457, - "jnb": 677, - "hkg": 290 - }, - { - "timestamp": "Feb 18, 10:00", - "syd": 466, - "jnb": 682, - "iad": 80, - "ams": 180, - "gru": 413, - "hkg": 318 - }, - { - "timestamp": "Feb 18, 11:00", - "gru": 414, - "jnb": 658, - "syd": 463, - "ams": 174, - "iad": 80, - "hkg": 284 - }, - { - "timestamp": "Feb 18, 12:00", - "hkg": 330, - "gru": 414, - "ams": 179, - "iad": 83, - "jnb": 653, - "syd": 496 - }, - { - "timestamp": "Feb 18, 13:00", - "hkg": 287, - "jnb": 659, - "syd": 512, - "iad": 77, - "ams": 177, - "gru": 413 - }, - { - "timestamp": "Feb 18, 14:00", - "hkg": 313, - "ams": 172, - "iad": 75, - "jnb": 655, - "syd": 464, - "gru": 414 - }, - { - "timestamp": "Feb 18, 15:00", - "hkg": 318, - "syd": 468, - "jnb": 658, - "ams": 177, - "iad": 77, - "gru": 415 - }, - { - "timestamp": "Feb 18, 16:00", - "hkg": 313, - "gru": 415, - "ams": 173, - "iad": 77, - "syd": 462, - "jnb": 666 - }, - { - "timestamp": "Feb 18, 17:00", - "jnb": 659, - "syd": 491, - "ams": 179, - "iad": 76, - "gru": 414, - "hkg": 283 - }, - { - "timestamp": "Feb 18, 18:00", - "gru": 414, - "jnb": 694, - "syd": 476, - "iad": 84, - "ams": 174, - "hkg": 298 - } - ] - }, - "metricsByRegion": [ - { - "region": "syd", - "avgLatency": 499, - "p75Latency": 532, - "p90Latency": 607, - "p95Latency": 620, - "p99Latency": 728 - }, - { - "region": "gru", - "avgLatency": 423, - "p75Latency": 417, - "p90Latency": 422, - "p95Latency": 468, - "p99Latency": 541 - }, - { - "region": "iad", - "avgLatency": 80, - "p75Latency": 79, - "p90Latency": 91, - "p95Latency": 107, - "p99Latency": 131 - }, - { - "region": "ams", - "avgLatency": 191, - "p75Latency": 181, - "p90Latency": 259, - "p95Latency": 295, - "p99Latency": 316 - }, - { - "region": "hkg", - "avgLatency": 325, - "p75Latency": 348, - "p90Latency": 439, - "p95Latency": 443, - "p99Latency": 467 - }, - { - "region": "jnb", - "avgLatency": 675, - "p75Latency": 660, - "p90Latency": 739, - "p95Latency": 786, - "p99Latency": 893 - } - ] -} \ No newline at end of file + "regions": ["ams", "iad", "hkg", "jnb", "syd", "gru"], + "data": { + "regions": ["ams", "gru", "hkg", "iad", "jnb", "syd"], + "data": [ + { + "timestamp": "Feb 4, 00:00", + "ams": 176, + "iad": 84, + "syd": 487, + "jnb": 659, + "gru": 456, + "hkg": 292 + }, + { + "timestamp": "Feb 4, 01:00", + "ams": 176, + "iad": 84, + "syd": 497, + "jnb": 691, + "gru": 437, + "hkg": 299 + }, + { + "timestamp": "Feb 4, 02:00", + "hkg": 293, + "ams": 183, + "iad": 88, + "jnb": 665, + "syd": 504, + "gru": 418 + }, + { + "timestamp": "Feb 4, 03:00", + "hkg": 304, + "jnb": 680, + "syd": 463, + "ams": 175, + "iad": 80, + "gru": 416 + }, + { + "timestamp": "Feb 4, 04:00", + "hkg": 301, + "gru": 428, + "syd": 517, + "jnb": 672, + "ams": 173, + "iad": 80 + }, + { + "timestamp": "Feb 4, 05:00", + "gru": 427, + "syd": 500, + "jnb": 657, + "ams": 174, + "iad": 84, + "hkg": 291 + }, + { + "timestamp": "Feb 4, 06:00", + "jnb": 849, + "syd": 526, + "ams": 179, + "iad": 90, + "gru": 417, + "hkg": 288 + }, + { + "timestamp": "Feb 4, 07:00", + "hkg": 304, + "jnb": 656, + "syd": 471, + "ams": 210, + "iad": 82, + "gru": 418 + }, + { + "timestamp": "Feb 4, 08:00", + "hkg": 303, + "gru": 438, + "syd": 463, + "jnb": 688, + "ams": 198, + "iad": 90 + }, + { + "timestamp": "Feb 4, 09:00", + "hkg": 372, + "iad": 84, + "ams": 182, + "jnb": 657, + "syd": 512, + "gru": 422 + }, + { + "timestamp": "Feb 4, 10:00", + "hkg": 302, + "gru": 419, + "jnb": 687, + "syd": 488, + "iad": 86, + "ams": 204 + }, + { + "timestamp": "Feb 4, 11:00", + "gru": 417, + "syd": 483, + "jnb": 659, + "ams": 177, + "iad": 83, + "hkg": 317 + }, + { + "timestamp": "Feb 4, 12:00", + "gru": 462, + "iad": 82, + "ams": 177, + "syd": 502, + "jnb": 694, + "hkg": 305 + }, + { + "timestamp": "Feb 4, 13:00", + "syd": 486, + "jnb": 657, + "ams": 184, + "iad": 88, + "gru": 437, + "hkg": 298 + }, + { + "timestamp": "Feb 4, 14:00", + "hkg": 292, + "gru": 424, + "ams": 196, + "iad": 78, + "jnb": 693, + "syd": 465 + }, + { + "timestamp": "Feb 4, 15:00", + "hkg": 295, + "iad": 79, + "ams": 181, + "syd": 460, + "jnb": 694, + "gru": 436 + }, + { + "timestamp": "Feb 4, 16:00", + "ams": 174, + "iad": 79, + "syd": 502, + "jnb": 660, + "gru": 425, + "hkg": 287 + }, + { + "timestamp": "Feb 4, 17:00", + "jnb": 657, + "syd": 513, + "ams": 200, + "iad": 80, + "gru": 416, + "hkg": 316 + }, + { + "timestamp": "Feb 4, 18:00", + "gru": 427, + "jnb": 661, + "syd": 470, + "ams": 178, + "iad": 82, + "hkg": 299 + }, + { + "timestamp": "Feb 4, 19:00", + "syd": 466, + "jnb": 708, + "iad": 85, + "ams": 179, + "gru": 422, + "hkg": 286 + }, + { + "timestamp": "Feb 4, 20:00", + "ams": 176, + "iad": 81, + "syd": 462, + "jnb": 692, + "gru": 440, + "hkg": 285 + }, + { + "timestamp": "Feb 4, 21:00", + "hkg": 305, + "syd": 514, + "jnb": 658, + "iad": 88, + "ams": 178, + "gru": 417 + }, + { + "timestamp": "Feb 4, 22:00", + "hkg": 302, + "gru": 417, + "iad": 90, + "ams": 178, + "syd": 462, + "jnb": 680 + }, + { + "timestamp": "Feb 4, 23:00", + "jnb": 685, + "syd": 528, + "iad": 83, + "ams": 181, + "gru": 438, + "hkg": 302 + }, + { + "timestamp": "Feb 5, 00:00", + "gru": 416, + "jnb": 677, + "syd": 520, + "ams": 178, + "iad": 81, + "hkg": 286 + }, + { + "timestamp": "Feb 5, 01:00", + "gru": 416, + "iad": 80, + "ams": 196, + "syd": 462, + "jnb": 682, + "hkg": 319 + }, + { + "timestamp": "Feb 5, 02:00", + "syd": 478, + "jnb": 660, + "iad": 81, + "ams": 180, + "gru": 415, + "hkg": 291 + }, + { + "timestamp": "Feb 5, 03:00", + "gru": 416, + "ams": 174, + "iad": 78, + "jnb": 657, + "syd": 461, + "hkg": 287 + }, + { + "timestamp": "Feb 5, 04:00", + "gru": 416, + "jnb": 657, + "syd": 488, + "iad": 84, + "ams": 178, + "hkg": 304 + }, + { + "timestamp": "Feb 5, 05:00", + "ams": 198, + "iad": 79, + "jnb": 685, + "syd": 486, + "gru": 423, + "hkg": 290 + }, + { + "timestamp": "Feb 5, 06:00", + "hkg": 288, + "jnb": 682, + "syd": 458, + "ams": 180, + "iad": 89, + "gru": 415 + }, + { + "timestamp": "Feb 5, 07:00", + "hkg": 307, + "gru": 447, + "syd": 470, + "jnb": 657, + "iad": 85, + "ams": 189 + }, + { + "timestamp": "Feb 5, 08:00", + "jnb": 660, + "syd": 466, + "ams": 184, + "iad": 79, + "gru": 416, + "hkg": 292 + }, + { + "timestamp": "Feb 5, 09:00", + "ams": 178, + "iad": 89, + "syd": 472, + "jnb": 738, + "gru": 436, + "hkg": 306 + }, + { + "timestamp": "Feb 5, 10:00", + "hkg": 310, + "syd": 505, + "jnb": 698, + "ams": 178, + "iad": 237, + "gru": 416 + }, + { + "timestamp": "Feb 5, 11:00", + "hkg": 319, + "gru": 416, + "jnb": 664, + "syd": 465, + "iad": 84, + "ams": 203 + }, + { + "timestamp": "Feb 5, 12:00", + "hkg": 302, + "gru": 425, + "ams": 201, + "iad": 84, + "jnb": 701, + "syd": 468 + }, + { + "timestamp": "Feb 5, 13:00", + "hkg": 311, + "iad": 84, + "ams": 204, + "jnb": 690, + "syd": 482, + "gru": 425 + }, + { + "timestamp": "Feb 5, 14:00", + "hkg": 289, + "gru": 417, + "jnb": 678, + "syd": 466, + "iad": 84, + "ams": 179 + }, + { + "timestamp": "Feb 5, 15:00", + "gru": 489, + "syd": 465, + "jnb": 882, + "ams": 202, + "iad": 154, + "hkg": 417 + }, + { + "timestamp": "Feb 5, 16:00", + "syd": 464, + "jnb": 690, + "iad": 83, + "ams": 182, + "gru": 418, + "hkg": 295 + }, + { + "timestamp": "Feb 5, 17:00", + "hkg": 294, + "syd": 483, + "jnb": 660, + "iad": 82, + "ams": 178, + "gru": 522 + }, + { + "timestamp": "Feb 5, 18:00", + "hkg": 289, + "gru": 418, + "jnb": 710, + "syd": 464, + "iad": 82, + "ams": 198 + }, + { + "timestamp": "Feb 5, 19:00", + "gru": 419, + "ams": 185, + "iad": 84, + "jnb": 659, + "syd": 494, + "hkg": 310 + }, + { + "timestamp": "Feb 5, 20:00", + "ams": 177, + "iad": 82, + "syd": 461, + "jnb": 663, + "gru": 460, + "hkg": 284 + }, + { + "timestamp": "Feb 5, 21:00", + "ams": 192, + "iad": 83, + "jnb": 680, + "syd": 494, + "gru": 454, + "hkg": 289 + }, + { + "timestamp": "Feb 5, 22:00", + "gru": 424, + "syd": 464, + "jnb": 658, + "ams": 188, + "iad": 83, + "hkg": 290 + }, + { + "timestamp": "Feb 5, 23:00", + "iad": 82, + "ams": 201, + "syd": 466, + "jnb": 691, + "gru": 457, + "hkg": 366 + }, + { + "timestamp": "Feb 6, 00:00", + "hkg": 289, + "iad": 80, + "ams": 180, + "jnb": 656, + "syd": 486, + "gru": 438 + }, + { + "timestamp": "Feb 6, 01:00", + "hkg": 287, + "jnb": 692, + "syd": 464, + "ams": 179, + "iad": 83, + "gru": 417 + }, + { + "timestamp": "Feb 6, 02:00", + "gru": 460, + "jnb": 657, + "syd": 479, + "ams": 185, + "iad": 88, + "hkg": 313 + }, + { + "timestamp": "Feb 6, 03:00", + "iad": 77, + "ams": 185, + "jnb": 700, + "syd": 467, + "gru": 420, + "hkg": 293 + }, + { + "timestamp": "Feb 6, 04:00", + "hkg": 296, + "iad": 85, + "ams": 168, + "syd": 514, + "jnb": 652, + "gru": 435 + }, + { + "timestamp": "Feb 6, 05:00", + "hkg": 322, + "iad": 82, + "ams": 166, + "jnb": 651, + "syd": 471, + "gru": 423 + }, + { + "timestamp": "Feb 6, 06:00", + "hkg": 295, + "gru": 450, + "iad": 78, + "ams": 168, + "syd": 504, + "jnb": 650 + }, + { + "timestamp": "Feb 6, 07:00", + "hkg": 291, + "ams": 167, + "iad": 78, + "syd": 466, + "jnb": 651, + "gru": 416 + }, + { + "timestamp": "Feb 6, 08:00", + "hkg": 294, + "gru": 415, + "ams": 178, + "iad": 80, + "jnb": 651, + "syd": 465 + }, + { + "timestamp": "Feb 6, 09:00", + "hkg": 296, + "gru": 464, + "jnb": 651, + "syd": 480, + "ams": 170, + "iad": 77 + }, + { + "timestamp": "Feb 6, 10:00", + "hkg": 288, + "syd": 483, + "jnb": 651, + "ams": 186, + "iad": 79, + "gru": 434 + }, + { + "timestamp": "Feb 6, 11:00", + "hkg": 289, + "syd": 461, + "jnb": 653, + "ams": 169, + "iad": 82, + "gru": 438 + }, + { + "timestamp": "Feb 6, 12:00", + "hkg": 302, + "gru": 417, + "jnb": 680, + "syd": 500, + "ams": 170, + "iad": 87 + }, + { + "timestamp": "Feb 6, 13:00", + "hkg": 299, + "gru": 438, + "syd": 480, + "jnb": 650, + "ams": 167, + "iad": 78 + }, + { + "timestamp": "Feb 6, 14:00", + "gru": 419, + "jnb": 652, + "syd": 461, + "ams": 166, + "iad": 100, + "hkg": 300 + }, + { + "timestamp": "Feb 6, 15:00", + "iad": 78, + "ams": 168, + "jnb": 672, + "syd": 465, + "gru": 477, + "hkg": 343 + }, + { + "timestamp": "Feb 6, 16:00", + "gru": 418, + "syd": 487, + "jnb": 655, + "iad": 83, + "ams": 179, + "hkg": 294 + }, + { + "timestamp": "Feb 6, 17:00", + "gru": 426, + "ams": 183, + "iad": 87, + "syd": 481, + "jnb": 648, + "hkg": 301 + }, + { + "timestamp": "Feb 6, 18:00", + "hkg": 308, + "gru": 498, + "ams": 184, + "iad": 95, + "jnb": 734, + "syd": 483 + }, + { + "timestamp": "Feb 6, 19:00", + "hkg": 300, + "jnb": 677, + "syd": 460, + "iad": 79, + "ams": 171, + "gru": 437 + }, + { + "timestamp": "Feb 6, 20:00", + "gru": 441, + "jnb": 684, + "syd": 480, + "iad": 80, + "ams": 179, + "hkg": 314 + }, + { + "timestamp": "Feb 6, 21:00", + "gru": 434, + "syd": 508, + "jnb": 684, + "iad": 102, + "ams": 175, + "hkg": 308 + }, + { + "timestamp": "Feb 6, 22:00", + "jnb": 706, + "syd": 5418, + "iad": 1044, + "ams": 181, + "gru": 2103, + "hkg": 4239 + }, + { + "timestamp": "Feb 6, 23:00", + "hkg": 298, + "ams": 169, + "iad": 90, + "jnb": 710, + "syd": 502, + "gru": 469 + }, + { + "timestamp": "Feb 7, 00:00", + "hkg": 316, + "gru": 466, + "ams": 168, + "iad": 90, + "syd": 502, + "jnb": 712 + }, + { + "timestamp": "Feb 7, 01:00", + "hkg": 286, + "jnb": 652, + "syd": 462, + "iad": 80, + "ams": 166, + "gru": 416 + }, + { + "timestamp": "Feb 7, 02:00", + "hkg": 308, + "gru": 451, + "jnb": 712, + "syd": 513, + "ams": 175, + "iad": 90 + }, + { + "timestamp": "Feb 7, 03:00", + "gru": 460, + "syd": 491, + "jnb": 677, + "iad": 83, + "ams": 171, + "hkg": 291 + }, + { + "timestamp": "Feb 7, 04:00", + "iad": 82, + "ams": 166, + "syd": 463, + "jnb": 650, + "gru": 413, + "hkg": 287 + }, + { + "timestamp": "Feb 7, 05:00", + "hkg": 295, + "jnb": 772, + "syd": 496, + "iad": 89, + "ams": 173, + "gru": 471 + }, + { + "timestamp": "Feb 7, 06:00", + "hkg": 295, + "ams": 168, + "iad": 78, + "jnb": 649, + "syd": 488, + "gru": 416 + }, + { + "timestamp": "Feb 7, 07:00", + "hkg": 292, + "gru": 416, + "iad": 89, + "ams": 174, + "syd": 476, + "jnb": 662 + }, + { + "timestamp": "Feb 7, 08:00", + "gru": 422, + "syd": 462, + "jnb": 649, + "iad": 78, + "ams": 175, + "hkg": 429 + }, + { + "timestamp": "Feb 7, 09:00", + "gru": 471, + "iad": 82, + "ams": 186, + "jnb": 648, + "syd": 462, + "hkg": 289 + }, + { + "timestamp": "Feb 7, 10:00", + "jnb": 652, + "syd": 486, + "ams": 167, + "iad": 90, + "gru": 435, + "hkg": 294 + }, + { + "timestamp": "Feb 7, 11:00", + "gru": 420, + "syd": 462, + "jnb": 649, + "iad": 88, + "ams": 205, + "hkg": 294 + }, + { + "timestamp": "Feb 7, 12:00", + "hkg": 292, + "gru": 435, + "iad": 88, + "ams": 195, + "syd": 465, + "jnb": 679 + }, + { + "timestamp": "Feb 7, 13:00", + "hkg": 293, + "syd": 465, + "jnb": 705, + "ams": 175, + "iad": 88, + "gru": 439 + }, + { + "timestamp": "Feb 7, 14:00", + "hkg": 298, + "iad": 84, + "ams": 176, + "syd": 504, + "jnb": 681, + "gru": 448 + }, + { + "timestamp": "Feb 7, 15:00", + "gru": 445, + "ams": 195, + "iad": 83, + "syd": 463, + "jnb": 679, + "hkg": 307 + }, + { + "timestamp": "Feb 7, 16:00", + "syd": 486, + "jnb": 650, + "ams": 176, + "iad": 81, + "gru": 455, + "hkg": 288 + }, + { + "timestamp": "Feb 7, 17:00", + "iad": 88, + "ams": 188, + "jnb": 739, + "syd": 462, + "gru": 437, + "hkg": 289 + }, + { + "timestamp": "Feb 7, 18:00", + "gru": 497, + "ams": 170, + "iad": 82, + "jnb": 678, + "syd": 506, + "hkg": 308 + }, + { + "timestamp": "Feb 7, 19:00", + "syd": 462, + "jnb": 660, + "iad": 80, + "ams": 166, + "gru": 425, + "hkg": 287 + }, + { + "timestamp": "Feb 7, 20:00", + "gru": 438, + "iad": 90, + "ams": 175, + "syd": 460, + "jnb": 679, + "hkg": 297 + }, + { + "timestamp": "Feb 7, 21:00", + "hkg": 326, + "gru": 490, + "syd": 514, + "jnb": 709, + "ams": 171, + "iad": 96 + }, + { + "timestamp": "Feb 7, 22:00", + "hkg": 290, + "gru": 424, + "iad": 82, + "ams": 190, + "syd": 492, + "jnb": 650 + }, + { + "timestamp": "Feb 7, 23:00", + "hkg": 290, + "ams": 172, + "iad": 80, + "jnb": 652, + "syd": 484, + "gru": 418 + }, + { + "timestamp": "Feb 8, 00:00", + "hkg": 291, + "syd": 479, + "jnb": 681, + "ams": 172, + "iad": 81, + "gru": 441 + }, + { + "timestamp": "Feb 8, 01:00", + "hkg": 292, + "ams": 174, + "iad": 79, + "jnb": 683, + "syd": 460, + "gru": 436 + }, + { + "timestamp": "Feb 8, 02:00", + "iad": 81, + "ams": 188, + "jnb": 652, + "syd": 509, + "gru": 436, + "hkg": 285 + }, + { + "timestamp": "Feb 8, 03:00", + "gru": 417, + "ams": 169, + "iad": 94, + "syd": 487, + "jnb": 650, + "hkg": 292 + }, + { + "timestamp": "Feb 8, 04:00", + "ams": 176, + "iad": 82, + "syd": 467, + "jnb": 653, + "gru": 416, + "hkg": 288 + }, + { + "timestamp": "Feb 8, 05:00", + "gru": 425, + "syd": 461, + "jnb": 654, + "iad": 97, + "ams": 177, + "hkg": 288 + }, + { + "timestamp": "Feb 8, 06:00", + "gru": 415, + "ams": 166, + "iad": 78, + "syd": 484, + "jnb": 651, + "hkg": 379 + }, + { + "timestamp": "Feb 8, 07:00", + "hkg": 289, + "gru": 415, + "iad": 78, + "ams": 167, + "jnb": 650, + "syd": 462 + }, + { + "timestamp": "Feb 8, 08:00", + "hkg": 288, + "jnb": 662, + "syd": 463, + "iad": 78, + "ams": 167, + "gru": 417 + }, + { + "timestamp": "Feb 8, 09:00", + "gru": 415, + "jnb": 679, + "syd": 465, + "ams": 167, + "iad": 82, + "hkg": 286 + }, + { + "timestamp": "Feb 8, 10:00", + "syd": 464, + "jnb": 653, + "ams": 188, + "iad": 77, + "gru": 426, + "hkg": 300 + }, + { + "timestamp": "Feb 8, 11:00", + "hkg": 300, + "syd": 479, + "jnb": 652, + "ams": 166, + "iad": 84, + "gru": 436 + }, + { + "timestamp": "Feb 8, 12:00", + "hkg": 285, + "gru": 417, + "jnb": 653, + "syd": 464, + "ams": 175, + "iad": 79 + }, + { + "timestamp": "Feb 8, 13:00", + "hkg": 284, + "iad": 80, + "ams": 167, + "syd": 466, + "jnb": 651, + "gru": 418 + }, + { + "timestamp": "Feb 8, 14:00", + "hkg": 285, + "gru": 416, + "iad": 80, + "ams": 180, + "jnb": 650, + "syd": 466 + }, + { + "timestamp": "Feb 8, 15:00", + "hkg": 288, + "gru": 418, + "jnb": 650, + "syd": 498, + "iad": 78, + "ams": 170 + }, + { + "timestamp": "Feb 8, 16:00", + "gru": 422, + "syd": 464, + "jnb": 649, + "iad": 86, + "ams": 177, + "hkg": 303 + }, + { + "timestamp": "Feb 8, 17:00", + "gru": 418, + "syd": 466, + "jnb": 649, + "iad": 80, + "ams": 336, + "hkg": 288 + }, + { + "timestamp": "Feb 8, 18:00", + "hkg": 305, + "gru": 436, + "syd": 507, + "jnb": 678, + "ams": 178, + "iad": 224 + }, + { + "timestamp": "Feb 8, 19:00", + "hkg": 290, + "syd": 466, + "jnb": 653, + "ams": 172, + "iad": 82, + "gru": 417 + }, + { + "timestamp": "Feb 8, 20:00", + "jnb": 857, + "syd": 497, + "ams": 176, + "iad": 85, + "gru": 443, + "hkg": 291 + }, + { + "timestamp": "Feb 8, 21:00", + "gru": 417, + "syd": 462, + "jnb": 650, + "iad": 78, + "ams": 175, + "hkg": 298 + }, + { + "timestamp": "Feb 8, 22:00", + "iad": 79, + "ams": 166, + "jnb": 648, + "syd": 467, + "gru": 418, + "hkg": 288 + }, + { + "timestamp": "Feb 8, 23:00", + "jnb": 652, + "syd": 484, + "iad": 80, + "ams": 172, + "gru": 419, + "hkg": 305 + }, + { + "timestamp": "Feb 9, 00:00", + "gru": 416, + "syd": 464, + "jnb": 651, + "iad": 80, + "ams": 170, + "hkg": 285 + }, + { + "timestamp": "Feb 9, 01:00", + "gru": 416, + "syd": 478, + "jnb": 674, + "ams": 168, + "iad": 79, + "hkg": 284 + }, + { + "timestamp": "Feb 9, 02:00", + "jnb": 652, + "syd": 460, + "ams": 175, + "iad": 79, + "gru": 416, + "hkg": 289 + }, + { + "timestamp": "Feb 9, 03:00", + "hkg": 287, + "gru": 436, + "syd": 464, + "jnb": 650, + "ams": 172, + "iad": 79 + }, + { + "timestamp": "Feb 9, 04:00", + "hkg": 313, + "jnb": 658, + "syd": 466, + "ams": 165, + "iad": 78, + "gru": 421 + }, + { + "timestamp": "Feb 9, 05:00", + "syd": 463, + "jnb": 650, + "iad": 78, + "ams": 173, + "gru": 416, + "hkg": 287 + }, + { + "timestamp": "Feb 9, 06:00", + "gru": 416, + "jnb": 711, + "syd": 515, + "iad": 86, + "ams": 169, + "hkg": 291 + }, + { + "timestamp": "Feb 9, 07:00", + "gru": 414, + "iad": 78, + "ams": 167, + "jnb": 651, + "syd": 460, + "hkg": 287 + }, + { + "timestamp": "Feb 9, 08:00", + "syd": 465, + "jnb": 648, + "iad": 78, + "ams": 171, + "gru": 417, + "hkg": 288 + }, + { + "timestamp": "Feb 9, 09:00", + "syd": 464, + "jnb": 654, + "iad": 78, + "ams": 168, + "gru": 416, + "hkg": 287 + }, + { + "timestamp": "Feb 9, 10:00", + "hkg": 287, + "jnb": 652, + "syd": 473, + "iad": 79, + "ams": 173, + "gru": 416 + }, + { + "timestamp": "Feb 9, 11:00", + "hkg": 285, + "gru": 416, + "jnb": 652, + "syd": 491, + "iad": 80, + "ams": 183 + }, + { + "timestamp": "Feb 9, 12:00", + "hkg": 287, + "gru": 444, + "ams": 169, + "iad": 78, + "syd": 466, + "jnb": 652 + }, + { + "timestamp": "Feb 9, 13:00", + "hkg": 286, + "iad": 78, + "ams": 170, + "jnb": 653, + "syd": 482, + "gru": 421 + }, + { + "timestamp": "Feb 9, 14:00", + "iad": 78, + "ams": 189, + "syd": 468, + "jnb": 650, + "gru": 416, + "hkg": 297 + }, + { + "timestamp": "Feb 9, 15:00", + "syd": 483, + "jnb": 649, + "iad": 79, + "ams": 174, + "gru": 417, + "hkg": 314 + }, + { + "timestamp": "Feb 9, 16:00", + "gru": 455, + "jnb": 690, + "syd": 489, + "iad": 85, + "ams": 169, + "hkg": 294 + }, + { + "timestamp": "Feb 9, 17:00", + "ams": 169, + "iad": 78, + "syd": 475, + "jnb": 652, + "gru": 417, + "hkg": 285 + }, + { + "timestamp": "Feb 9, 18:00", + "gru": 416, + "syd": 460, + "jnb": 654, + "ams": 168, + "iad": 78, + "hkg": 305 + }, + { + "timestamp": "Feb 9, 19:00", + "hkg": 286, + "gru": 418, + "jnb": 656, + "syd": 617, + "iad": 79, + "ams": 172 + }, + { + "timestamp": "Feb 9, 20:00", + "hkg": 286, + "jnb": 650, + "syd": 461, + "ams": 170, + "iad": 88, + "gru": 416 + }, + { + "timestamp": "Feb 9, 21:00", + "gru": 415, + "iad": 83, + "ams": 184, + "syd": 467, + "jnb": 652, + "hkg": 297 + }, + { + "timestamp": "Feb 9, 22:00", + "syd": 458, + "jnb": 651, + "iad": 78, + "ams": 168, + "gru": 418, + "hkg": 286 + }, + { + "timestamp": "Feb 9, 23:00", + "hkg": 287, + "jnb": 678, + "syd": 474, + "ams": 166, + "iad": 78, + "gru": 417 + }, + { + "timestamp": "Feb 10, 00:00", + "hkg": 285, + "iad": 85, + "ams": 166, + "jnb": 649, + "syd": 464, + "gru": 415 + }, + { + "timestamp": "Feb 10, 01:00", + "hkg": 285, + "syd": 484, + "jnb": 650, + "iad": 78, + "ams": 166, + "gru": 419 + }, + { + "timestamp": "Feb 10, 02:00", + "hkg": 309, + "gru": 416, + "syd": 465, + "jnb": 667, + "iad": 86, + "ams": 167 + }, + { + "timestamp": "Feb 10, 03:00", + "hkg": 312, + "jnb": 649, + "syd": 462, + "ams": 170, + "iad": 78, + "gru": 425 + }, + { + "timestamp": "Feb 10, 04:00", + "jnb": 652, + "syd": 464, + "iad": 87, + "ams": 166, + "gru": 416, + "hkg": 285 + }, + { + "timestamp": "Feb 10, 05:00", + "gru": 415, + "ams": 167, + "iad": 81, + "jnb": 650, + "syd": 464, + "hkg": 283 + }, + { + "timestamp": "Feb 10, 06:00", + "hkg": 288, + "gru": 432, + "syd": 489, + "jnb": 650, + "iad": 77, + "ams": 167 + }, + { + "timestamp": "Feb 10, 07:00", + "hkg": 287, + "jnb": 649, + "syd": 464, + "ams": 168, + "iad": 77, + "gru": 416 + }, + { + "timestamp": "Feb 10, 08:00", + "hkg": 285, + "iad": 78, + "ams": 168, + "jnb": 647, + "syd": 470, + "gru": 417 + }, + { + "timestamp": "Feb 10, 09:00", + "hkg": 284, + "syd": 478, + "jnb": 648, + "ams": 167, + "iad": 79, + "gru": 415 + }, + { + "timestamp": "Feb 10, 10:00", + "hkg": 317, + "gru": 416, + "ams": 169, + "iad": 78, + "syd": 479, + "jnb": 650 + }, + { + "timestamp": "Feb 10, 11:00", + "hkg": 288, + "jnb": 684, + "syd": 465, + "iad": 78, + "ams": 167, + "gru": 435 + }, + { + "timestamp": "Feb 10, 12:00", + "hkg": 288, + "gru": 417, + "jnb": 694, + "syd": 508, + "ams": 167, + "iad": 94 + }, + { + "timestamp": "Feb 10, 13:00", + "gru": 418, + "iad": 96, + "ams": 171, + "jnb": 687, + "syd": 473, + "hkg": 290 + }, + { + "timestamp": "Feb 10, 14:00", + "jnb": 686, + "syd": 461, + "iad": 84, + "ams": 172, + "gru": 440, + "hkg": 293 + }, + { + "timestamp": "Feb 10, 15:00", + "hkg": 286, + "gru": 417, + "jnb": 649, + "syd": 462, + "ams": 176, + "iad": 77 + }, + { + "timestamp": "Feb 10, 16:00", + "hkg": 287, + "gru": 438, + "iad": 80, + "ams": 166, + "jnb": 676, + "syd": 484 + }, + { + "timestamp": "Feb 10, 17:00", + "hkg": 297, + "gru": 415, + "syd": 555, + "jnb": 674, + "iad": 84, + "ams": 214 + }, + { + "timestamp": "Feb 10, 18:00", + "gru": 417, + "iad": 77, + "ams": 377, + "syd": 547, + "jnb": 828, + "hkg": 420 + }, + { + "timestamp": "Feb 10, 19:00", + "ams": 404, + "iad": 82, + "jnb": 871, + "syd": 568, + "gru": 416, + "hkg": 400 + }, + { + "timestamp": "Feb 10, 20:00", + "gru": 424, + "jnb": 728, + "syd": 541, + "iad": 83, + "ams": 196, + "hkg": 426 + }, + { + "timestamp": "Feb 10, 21:00", + "ams": 362, + "iad": 80, + "jnb": 713, + "syd": 487, + "gru": 434, + "hkg": 349 + }, + { + "timestamp": "Feb 10, 22:00", + "hkg": 434, + "jnb": 647, + "syd": 486, + "ams": 187, + "iad": 78, + "gru": 423 + }, + { + "timestamp": "Feb 10, 23:00", + "hkg": 337, + "gru": 416, + "syd": 538, + "jnb": 648, + "iad": 76, + "ams": 167 + }, + { + "timestamp": "Feb 11, 00:00", + "hkg": 310, + "gru": 438, + "ams": 195, + "iad": 77, + "syd": 543, + "jnb": 721 + }, + { + "timestamp": "Feb 11, 01:00", + "hkg": 812, + "jnb": 648, + "syd": 506, + "ams": 210, + "iad": 89, + "gru": 414 + }, + { + "timestamp": "Feb 11, 02:00", + "hkg": 366, + "gru": 420, + "syd": 556, + "jnb": 675, + "ams": 258, + "iad": 81 + }, + { + "timestamp": "Feb 11, 03:00", + "gru": 415, + "iad": 78, + "ams": 266, + "syd": 472, + "jnb": 733, + "hkg": 414 + }, + { + "timestamp": "Feb 11, 04:00", + "iad": 79, + "ams": 189, + "jnb": 737, + "syd": 514, + "gru": 434, + "hkg": 315 + }, + { + "timestamp": "Feb 11, 05:00", + "gru": 434, + "iad": 93, + "ams": 192, + "syd": 562, + "jnb": 673, + "hkg": 328 + }, + { + "timestamp": "Feb 11, 06:00", + "iad": 95, + "ams": 196, + "jnb": 658, + "syd": 576, + "gru": 416, + "hkg": 338 + }, + { + "timestamp": "Feb 11, 07:00", + "hkg": 347, + "jnb": 685, + "syd": 578, + "ams": 425, + "iad": 88, + "gru": 414 + }, + { + "timestamp": "Feb 11, 08:00", + "hkg": 398, + "gru": 423, + "syd": 565, + "jnb": 669, + "ams": 210, + "iad": 86 + }, + { + "timestamp": "Feb 11, 09:00", + "hkg": 406, + "syd": 519, + "jnb": 683, + "iad": 79, + "ams": 208, + "gru": 423 + }, + { + "timestamp": "Feb 11, 10:00", + "gru": 416, + "syd": 534, + "jnb": 676, + "iad": 76, + "ams": 223, + "hkg": 329 + }, + { + "timestamp": "Feb 11, 11:00", + "ams": 195, + "iad": 77, + "syd": 541, + "jnb": 866, + "gru": 414, + "hkg": 325 + }, + { + "timestamp": "Feb 11, 12:00", + "hkg": 384, + "ams": 770, + "iad": 80, + "jnb": 714, + "syd": 530, + "gru": 423 + }, + { + "timestamp": "Feb 11, 13:00", + "hkg": 418, + "gru": 414, + "syd": 596, + "jnb": 672, + "ams": 736, + "iad": 81 + }, + { + "timestamp": "Feb 11, 14:00", + "hkg": 408, + "ams": 214, + "iad": 80, + "jnb": 668, + "syd": 559, + "gru": 415 + }, + { + "timestamp": "Feb 11, 15:00", + "hkg": 327, + "gru": 418, + "jnb": 1195, + "syd": 543, + "iad": 83, + "ams": 212 + }, + { + "timestamp": "Feb 11, 16:00", + "gru": 415, + "syd": 534, + "jnb": 885, + "iad": 85, + "ams": 186, + "hkg": 352 + }, + { + "timestamp": "Feb 11, 17:00", + "hkg": 357, + "gru": 415, + "syd": 590, + "jnb": 670, + "iad": 83, + "ams": 209 + }, + { + "timestamp": "Feb 11, 18:00", + "hkg": 350, + "jnb": 3586, + "syd": 554, + "iad": 80, + "ams": 406, + "gru": 414 + }, + { + "timestamp": "Feb 11, 19:00", + "iad": 78, + "ams": 226, + "syd": 588, + "jnb": 3298, + "gru": 415, + "hkg": 358 + }, + { + "timestamp": "Feb 11, 20:00", + "gru": 415, + "iad": 78, + "ams": 723, + "jnb": 843, + "syd": 500, + "hkg": 370 + }, + { + "timestamp": "Feb 11, 21:00", + "hkg": 368, + "gru": 424, + "syd": 568, + "jnb": 881, + "iad": 86, + "ams": 217 + }, + { + "timestamp": "Feb 11, 22:00", + "hkg": 330, + "jnb": 646, + "syd": 522, + "iad": 89, + "ams": 331, + "gru": 415 + }, + { + "timestamp": "Feb 11, 23:00", + "hkg": 331, + "gru": 416, + "jnb": 690, + "syd": 525, + "ams": 264, + "iad": 76 + }, + { + "timestamp": "Feb 12, 00:00", + "hkg": 312, + "syd": 490, + "jnb": 706, + "ams": 235, + "iad": 84, + "gru": 416 + }, + { + "timestamp": "Feb 12, 01:00", + "hkg": 314, + "gru": 424, + "syd": 514, + "jnb": 671, + "iad": 83, + "ams": 212 + }, + { + "timestamp": "Feb 12, 02:00", + "gru": 415, + "jnb": 673, + "syd": 536, + "iad": 86, + "ams": 217, + "hkg": 338 + }, + { + "timestamp": "Feb 12, 03:00", + "ams": 185, + "iad": 79, + "jnb": 648, + "syd": 528, + "gru": 414, + "hkg": 348 + }, + { + "timestamp": "Feb 12, 04:00", + "hkg": 357, + "gru": 434, + "ams": 236, + "iad": 78, + "jnb": 692, + "syd": 549 + }, + { + "timestamp": "Feb 12, 05:00", + "hkg": 384, + "syd": 460, + "jnb": 693, + "ams": 224, + "iad": 78, + "gru": 432 + }, + { + "timestamp": "Feb 12, 06:00", + "jnb": 653, + "syd": 486, + "ams": 173, + "iad": 86, + "gru": 415, + "hkg": 377 + }, + { + "timestamp": "Feb 12, 07:00", + "gru": 441, + "iad": 98, + "ams": 209, + "jnb": 670, + "syd": 509, + "hkg": 381 + }, + { + "timestamp": "Feb 12, 08:00", + "syd": 503, + "jnb": 706, + "iad": 78, + "ams": 203, + "gru": 415, + "hkg": 349 + }, + { + "timestamp": "Feb 12, 09:00", + "gru": 416, + "jnb": 662, + "syd": 545, + "ams": 188, + "iad": 76, + "hkg": 329 + }, + { + "timestamp": "Feb 12, 10:00", + "gru": 414, + "iad": 78, + "ams": 196, + "jnb": 711, + "syd": 516, + "hkg": 364 + }, + { + "timestamp": "Feb 12, 11:00", + "hkg": 362, + "gru": 440, + "ams": 188, + "iad": 83, + "syd": 598, + "jnb": 647 + }, + { + "timestamp": "Feb 12, 12:00", + "hkg": 356, + "syd": 554, + "jnb": 718, + "ams": 214, + "iad": 76, + "gru": 428 + }, + { + "timestamp": "Feb 12, 13:00", + "hkg": 384, + "syd": 538, + "jnb": 690, + "ams": 386, + "iad": 86, + "gru": 414 + }, + { + "timestamp": "Feb 12, 14:00", + "hkg": 347, + "gru": 417, + "syd": 521, + "jnb": 658, + "iad": 79, + "ams": 273 + }, + { + "timestamp": "Feb 12, 15:00", + "gru": 436, + "jnb": 1427, + "syd": 572, + "ams": 272, + "iad": 80, + "hkg": 416 + }, + { + "timestamp": "Feb 12, 16:00", + "ams": 1859, + "iad": 87, + "jnb": 760, + "syd": 534, + "gru": 443, + "hkg": 366 + }, + { + "timestamp": "Feb 12, 17:00", + "ams": 209, + "iad": 80, + "syd": 525, + "jnb": 925, + "gru": 438, + "hkg": 338 + }, + { + "timestamp": "Feb 12, 18:00", + "syd": 561, + "jnb": 1236, + "iad": 84, + "ams": 1210, + "gru": 434, + "hkg": 303 + }, + { + "timestamp": "Feb 12, 19:00", + "gru": 422, + "jnb": 1261, + "syd": 529, + "ams": 360, + "iad": 82, + "hkg": 340 + }, + { + "timestamp": "Feb 12, 20:00", + "hkg": 285, + "gru": 424, + "ams": 376, + "iad": 79, + "jnb": 670, + "syd": 489 + }, + { + "timestamp": "Feb 12, 21:00", + "hkg": 337, + "jnb": 672, + "syd": 522, + "iad": 80, + "ams": 192, + "gru": 418 + }, + { + "timestamp": "Feb 12, 22:00", + "gru": 422, + "syd": 492, + "jnb": 683, + "ams": 199, + "iad": 79, + "hkg": 311 + }, + { + "timestamp": "Feb 12, 23:00", + "jnb": 711, + "syd": 582, + "iad": 91, + "ams": 216, + "gru": 470, + "hkg": 338 + }, + { + "timestamp": "Feb 13, 00:00", + "hkg": 377, + "iad": 77, + "ams": 182, + "jnb": 671, + "syd": 515, + "gru": 415 + }, + { + "timestamp": "Feb 13, 01:00", + "gru": 422, + "syd": 515, + "jnb": 685, + "ams": 216, + "iad": 83, + "hkg": 314 + }, + { + "timestamp": "Feb 13, 02:00", + "gru": 416, + "iad": 80, + "ams": 195, + "syd": 516, + "jnb": 657, + "hkg": 327 + }, + { + "timestamp": "Feb 13, 03:00", + "jnb": 672, + "syd": 529, + "ams": 174, + "iad": 89, + "gru": 418, + "hkg": 373 + }, + { + "timestamp": "Feb 13, 04:00", + "gru": 416, + "ams": 224, + "iad": 82, + "jnb": 698, + "syd": 533, + "hkg": 329 + }, + { + "timestamp": "Feb 13, 05:00", + "hkg": 344, + "gru": 416, + "jnb": 648, + "syd": 540, + "iad": 85, + "ams": 177 + }, + { + "timestamp": "Feb 13, 06:00", + "hkg": 311, + "jnb": 670, + "syd": 546, + "ams": 241, + "iad": 88, + "gru": 444 + }, + { + "timestamp": "Feb 13, 07:00", + "jnb": 690, + "syd": 499, + "ams": 206, + "iad": 97, + "gru": 414, + "hkg": 369 + }, + { + "timestamp": "Feb 13, 08:00", + "gru": 455, + "ams": 221, + "iad": 89, + "jnb": 725, + "syd": 574, + "hkg": 347 + }, + { + "timestamp": "Feb 13, 09:00", + "hkg": 368, + "syd": 520, + "jnb": 672, + "ams": 187, + "iad": 84, + "gru": 423 + }, + { + "timestamp": "Feb 13, 10:00", + "hkg": 339, + "iad": 75, + "ams": 197, + "syd": 524, + "jnb": 695, + "gru": 414 + }, + { + "timestamp": "Feb 13, 11:00", + "hkg": 350, + "gru": 437, + "ams": 207, + "iad": 77, + "jnb": 702, + "syd": 554 + }, + { + "timestamp": "Feb 13, 12:00", + "hkg": 382, + "ams": 195, + "iad": 83, + "jnb": 669, + "syd": 592, + "gru": 445 + }, + { + "timestamp": "Feb 13, 13:00", + "hkg": 354, + "gru": 460, + "jnb": 676, + "syd": 552, + "iad": 97, + "ams": 190 + }, + { + "timestamp": "Feb 13, 14:00", + "gru": 417, + "jnb": 678, + "syd": 532, + "ams": 169, + "iad": 78, + "hkg": 346 + }, + { + "timestamp": "Feb 13, 15:00", + "syd": 484, + "jnb": 704, + "iad": 80, + "ams": 229, + "gru": 424, + "hkg": 349 + }, + { + "timestamp": "Feb 13, 16:00", + "hkg": 361, + "gru": 456, + "iad": 92, + "ams": 195, + "jnb": 728, + "syd": 509 + }, + { + "timestamp": "Feb 13, 17:00", + "hkg": 311, + "ams": 176, + "iad": 82, + "syd": 486, + "jnb": 673, + "gru": 416 + }, + { + "timestamp": "Feb 13, 18:00", + "ams": 222, + "iad": 78, + "jnb": 683, + "syd": 544, + "gru": 415, + "hkg": 356 + }, + { + "timestamp": "Feb 13, 19:00", + "jnb": 670, + "syd": 565, + "ams": 236, + "iad": 88, + "gru": 415, + "hkg": 381 + }, + { + "timestamp": "Feb 13, 20:00", + "gru": 426, + "syd": 601, + "jnb": 703, + "ams": 172, + "iad": 85, + "hkg": 365 + }, + { + "timestamp": "Feb 13, 21:00", + "iad": 76, + "ams": 188, + "jnb": 774, + "syd": 524, + "gru": 428, + "hkg": 402 + }, + { + "timestamp": "Feb 13, 22:00", + "gru": 416, + "iad": 199, + "ams": 196, + "syd": 527, + "jnb": 700, + "hkg": 362 + }, + { + "timestamp": "Feb 13, 23:00", + "hkg": 348, + "gru": 427, + "iad": 76, + "ams": 176, + "syd": 499, + "jnb": 649 + }, + { + "timestamp": "Feb 14, 00:00", + "hkg": 342, + "iad": 76, + "ams": 210, + "jnb": 720, + "syd": 563, + "gru": 416 + }, + { + "timestamp": "Feb 14, 01:00", + "hkg": 318, + "gru": 457, + "iad": 87, + "ams": 170, + "syd": 547, + "jnb": 682 + }, + { + "timestamp": "Feb 14, 02:00", + "hkg": 379, + "iad": 86, + "ams": 202, + "jnb": 662, + "syd": 509, + "gru": 416 + }, + { + "timestamp": "Feb 14, 03:00", + "hkg": 347, + "jnb": 680, + "syd": 572, + "iad": 90, + "ams": 167, + "gru": 436 + }, + { + "timestamp": "Feb 14, 04:00", + "syd": 553, + "jnb": 718, + "iad": 86, + "ams": 199, + "gru": 448, + "hkg": 372 + }, + { + "timestamp": "Feb 14, 05:00", + "gru": 413, + "jnb": 674, + "syd": 548, + "ams": 211, + "iad": 77, + "hkg": 363 + }, + { + "timestamp": "Feb 14, 06:00", + "ams": 184, + "iad": 76, + "syd": 535, + "jnb": 690, + "gru": 420, + "hkg": 364 + }, + { + "timestamp": "Feb 14, 07:00", + "gru": 414, + "ams": 201, + "iad": 76, + "syd": 525, + "jnb": 717, + "hkg": 381 + }, + { + "timestamp": "Feb 14, 08:00", + "hkg": 374, + "gru": 418, + "ams": 163, + "iad": 79, + "jnb": 658, + "syd": 557 + }, + { + "timestamp": "Feb 14, 09:00", + "iad": 80, + "ams": 187, + "jnb": 656, + "syd": 520, + "gru": 423, + "hkg": 366 + }, + { + "timestamp": "Feb 14, 10:00", + "hkg": 290, + "gru": 413, + "iad": 77, + "ams": 170, + "jnb": 717, + "syd": 563 + }, + { + "timestamp": "Feb 14, 11:00", + "hkg": 328, + "gru": 437, + "jnb": 664, + "syd": 481, + "iad": 76, + "ams": 227 + }, + { + "timestamp": "Feb 14, 12:00", + "hkg": 353, + "syd": 511, + "jnb": 699, + "iad": 75, + "ams": 184, + "gru": 424 + }, + { + "timestamp": "Feb 14, 13:00", + "jnb": 708, + "syd": 518, + "ams": 227, + "iad": 86, + "gru": 414, + "hkg": 326 + }, + { + "timestamp": "Feb 14, 14:00", + "gru": 425, + "syd": 531, + "jnb": 673, + "ams": 196, + "iad": 83, + "hkg": 357 + }, + { + "timestamp": "Feb 14, 15:00", + "ams": 242, + "iad": 86, + "syd": 516, + "jnb": 665, + "gru": 414, + "hkg": 372 + }, + { + "timestamp": "Feb 14, 16:00", + "gru": 436, + "ams": 189, + "iad": 99, + "jnb": 714, + "syd": 536, + "hkg": 350 + }, + { + "timestamp": "Feb 14, 17:00", + "hkg": 350, + "ams": 212, + "iad": 78, + "jnb": 1005, + "syd": 498, + "gru": 415 + }, + { + "timestamp": "Feb 14, 18:00", + "hkg": 388, + "gru": 468, + "ams": 202, + "iad": 85, + "syd": 566, + "jnb": 743 + }, + { + "timestamp": "Feb 14, 19:00", + "hkg": 390, + "gru": 415, + "syd": 512, + "jnb": 703, + "ams": 209, + "iad": 76 + }, + { + "timestamp": "Feb 14, 20:00", + "gru": 437, + "syd": 516, + "jnb": 684, + "iad": 88, + "ams": 193, + "hkg": 388 + }, + { + "timestamp": "Feb 14, 21:00", + "jnb": 697, + "syd": 572, + "ams": 203, + "iad": 95, + "gru": 417, + "hkg": 420 + }, + { + "timestamp": "Feb 14, 22:00", + "hkg": 348, + "syd": 536, + "jnb": 675, + "ams": 216, + "iad": 87, + "gru": 425 + }, + { + "timestamp": "Feb 14, 23:00", + "hkg": 319, + "gru": 414, + "syd": 583, + "jnb": 690, + "ams": 206, + "iad": 77 + }, + { + "timestamp": "Feb 15, 00:00", + "hkg": 321, + "ams": 201, + "iad": 77, + "jnb": 661, + "syd": 506, + "gru": 416 + }, + { + "timestamp": "Feb 15, 01:00", + "hkg": 308, + "gru": 425, + "iad": 78, + "ams": 208, + "syd": 486, + "jnb": 679 + }, + { + "timestamp": "Feb 15, 02:00", + "gru": 432, + "syd": 556, + "jnb": 718, + "iad": 80, + "ams": 236, + "hkg": 351 + }, + { + "timestamp": "Feb 15, 03:00", + "jnb": 722, + "syd": 491, + "ams": 198, + "iad": 75, + "gru": 416, + "hkg": 337 + }, + { + "timestamp": "Feb 15, 04:00", + "iad": 78, + "ams": 198, + "jnb": 665, + "syd": 488, + "gru": 420, + "hkg": 531 + }, + { + "timestamp": "Feb 15, 05:00", + "hkg": 356, + "gru": 432, + "syd": 566, + "jnb": 672, + "ams": 177, + "iad": 79 + }, + { + "timestamp": "Feb 15, 06:00", + "hkg": 323, + "ams": 196, + "iad": 84, + "syd": 542, + "jnb": 670, + "gru": 416 + }, + { + "timestamp": "Feb 15, 07:00", + "iad": 94, + "ams": 201, + "jnb": 694, + "syd": 641, + "gru": 415, + "hkg": 370 + }, + { + "timestamp": "Feb 15, 08:00", + "gru": 416, + "ams": 214, + "iad": 82, + "jnb": 691, + "syd": 528, + "hkg": 349 + }, + { + "timestamp": "Feb 15, 09:00", + "gru": 414, + "ams": 205, + "iad": 82, + "syd": 508, + "jnb": 652, + "hkg": 340 + }, + { + "timestamp": "Feb 15, 10:00", + "syd": 581, + "jnb": 690, + "ams": 268, + "iad": 79, + "gru": 434, + "hkg": 376 + }, + { + "timestamp": "Feb 15, 11:00", + "hkg": 333, + "jnb": 690, + "syd": 523, + "iad": 87, + "ams": 220, + "gru": 423 + }, + { + "timestamp": "Feb 15, 12:00", + "hkg": 329, + "ams": 231, + "iad": 83, + "jnb": 671, + "syd": 564, + "gru": 415 + }, + { + "timestamp": "Feb 15, 13:00", + "hkg": 392, + "gru": 431, + "jnb": 649, + "syd": 518, + "iad": 84, + "ams": 217 + }, + { + "timestamp": "Feb 15, 14:00", + "hkg": 409, + "gru": 417, + "jnb": 660, + "syd": 504, + "ams": 173, + "iad": 77 + }, + { + "timestamp": "Feb 15, 15:00", + "hkg": 360, + "syd": 511, + "jnb": 741, + "iad": 84, + "ams": 216, + "gru": 440 + }, + { + "timestamp": "Feb 15, 16:00", + "syd": 476, + "jnb": 820, + "ams": 277, + "iad": 90, + "gru": 470, + "hkg": 370 + }, + { + "timestamp": "Feb 17, 10:00", + "hkg": 280, + "iad": 78, + "ams": 169, + "syd": 467, + "jnb": 656, + "gru": 415 + }, + { + "timestamp": "Feb 17, 11:00", + "gru": 422, + "jnb": 659, + "syd": 478, + "ams": 210, + "iad": 86, + "hkg": 293 + }, + { + "timestamp": "Feb 17, 12:00", + "syd": 466, + "jnb": 659, + "ams": 172, + "iad": 77, + "gru": 418, + "hkg": 348 + }, + { + "timestamp": "Feb 17, 13:00", + "jnb": 665, + "syd": 482, + "ams": 210, + "iad": 82, + "gru": 414, + "hkg": 314 + }, + { + "timestamp": "Feb 17, 14:00", + "hkg": 299, + "syd": 467, + "jnb": 692, + "ams": 173, + "iad": 83, + "gru": 414 + }, + { + "timestamp": "Feb 17, 15:00", + "hkg": 308, + "gru": 442, + "iad": 82, + "ams": 178, + "syd": 499, + "jnb": 703 + }, + { + "timestamp": "Feb 17, 16:00", + "hkg": 290, + "jnb": 658, + "syd": 476, + "iad": 77, + "ams": 171, + "gru": 416 + }, + { + "timestamp": "Feb 17, 17:00", + "hkg": 288, + "gru": 416, + "syd": 464, + "jnb": 657, + "ams": 187, + "iad": 81 + }, + { + "timestamp": "Feb 17, 18:00", + "gru": 414, + "syd": 460, + "jnb": 657, + "iad": 82, + "ams": 173, + "hkg": 320 + }, + { + "timestamp": "Feb 17, 19:00", + "jnb": 682, + "syd": 481, + "ams": 172, + "iad": 76, + "gru": 415, + "hkg": 305 + }, + { + "timestamp": "Feb 17, 20:00", + "hkg": 288, + "iad": 80, + "ams": 172, + "syd": 463, + "jnb": 798, + "gru": 416 + }, + { + "timestamp": "Feb 17, 21:00", + "hkg": 312, + "gru": 416, + "syd": 553, + "jnb": 668, + "ams": 172, + "iad": 76 + }, + { + "timestamp": "Feb 17, 22:00", + "hkg": 286, + "gru": 414, + "iad": 80, + "ams": 180, + "syd": 462, + "jnb": 664 + }, + { + "timestamp": "Feb 17, 23:00", + "gru": 414, + "ams": 187, + "iad": 80, + "jnb": 663, + "syd": 490, + "hkg": 302 + }, + { + "timestamp": "Feb 18, 00:00", + "jnb": 658, + "syd": 500, + "ams": 174, + "iad": 77, + "gru": 428, + "hkg": 285 + }, + { + "timestamp": "Feb 18, 01:00", + "syd": 509, + "jnb": 663, + "ams": 179, + "iad": 78, + "gru": 435, + "hkg": 327 + }, + { + "timestamp": "Feb 18, 02:00", + "gru": 414, + "syd": 534, + "jnb": 654, + "iad": 79, + "ams": 178, + "hkg": 323 + }, + { + "timestamp": "Feb 18, 03:00", + "hkg": 341, + "gru": 432, + "jnb": 658, + "syd": 510, + "ams": 191, + "iad": 75 + }, + { + "timestamp": "Feb 18, 04:00", + "hkg": 324, + "ams": 170, + "iad": 75, + "jnb": 682, + "syd": 515, + "gru": 415 + }, + { + "timestamp": "Feb 18, 05:00", + "gru": 414, + "syd": 494, + "jnb": 656, + "iad": 91, + "ams": 177, + "hkg": 314 + }, + { + "timestamp": "Feb 18, 06:00", + "gru": 414, + "ams": 185, + "iad": 76, + "syd": 471, + "jnb": 654, + "hkg": 282 + }, + { + "timestamp": "Feb 18, 07:00", + "iad": 76, + "ams": 198, + "jnb": 654, + "syd": 484, + "gru": 414, + "hkg": 286 + }, + { + "timestamp": "Feb 18, 08:00", + "hkg": 303, + "jnb": 655, + "syd": 463, + "iad": 76, + "ams": 194, + "gru": 434 + }, + { + "timestamp": "Feb 18, 09:00", + "gru": 550, + "ams": 172, + "iad": 89, + "syd": 457, + "jnb": 677, + "hkg": 290 + }, + { + "timestamp": "Feb 18, 10:00", + "syd": 466, + "jnb": 682, + "iad": 80, + "ams": 180, + "gru": 413, + "hkg": 318 + }, + { + "timestamp": "Feb 18, 11:00", + "gru": 414, + "jnb": 658, + "syd": 463, + "ams": 174, + "iad": 80, + "hkg": 284 + }, + { + "timestamp": "Feb 18, 12:00", + "hkg": 330, + "gru": 414, + "ams": 179, + "iad": 83, + "jnb": 653, + "syd": 496 + }, + { + "timestamp": "Feb 18, 13:00", + "hkg": 287, + "jnb": 659, + "syd": 512, + "iad": 77, + "ams": 177, + "gru": 413 + }, + { + "timestamp": "Feb 18, 14:00", + "hkg": 313, + "ams": 172, + "iad": 75, + "jnb": 655, + "syd": 464, + "gru": 414 + }, + { + "timestamp": "Feb 18, 15:00", + "hkg": 318, + "syd": 468, + "jnb": 658, + "ams": 177, + "iad": 77, + "gru": 415 + }, + { + "timestamp": "Feb 18, 16:00", + "hkg": 313, + "gru": 415, + "ams": 173, + "iad": 77, + "syd": 462, + "jnb": 666 + }, + { + "timestamp": "Feb 18, 17:00", + "jnb": 659, + "syd": 491, + "ams": 179, + "iad": 76, + "gru": 414, + "hkg": 283 + }, + { + "timestamp": "Feb 18, 18:00", + "gru": 414, + "jnb": 694, + "syd": 476, + "iad": 84, + "ams": 174, + "hkg": 298 + } + ] + }, + "metricsByRegion": [ + { + "region": "syd", + "avgLatency": 499, + "p75Latency": 532, + "p90Latency": 607, + "p95Latency": 620, + "p99Latency": 728 + }, + { + "region": "gru", + "avgLatency": 423, + "p75Latency": 417, + "p90Latency": 422, + "p95Latency": 468, + "p99Latency": 541 + }, + { + "region": "iad", + "avgLatency": 80, + "p75Latency": 79, + "p90Latency": 91, + "p95Latency": 107, + "p99Latency": 131 + }, + { + "region": "ams", + "avgLatency": 191, + "p75Latency": 181, + "p90Latency": 259, + "p95Latency": 295, + "p99Latency": 316 + }, + { + "region": "hkg", + "avgLatency": 325, + "p75Latency": 348, + "p90Latency": 439, + "p95Latency": 443, + "p99Latency": 467 + }, + { + "region": "jnb", + "avgLatency": 675, + "p75Latency": 660, + "p90Latency": 739, + "p95Latency": 786, + "p99Latency": 893 + } + ] +} diff --git a/apps/web/public/assets/posts/monitoring-latency/render.json b/apps/web/public/assets/posts/monitoring-latency/render.json index 8bb9da7df..4d8b9aee2 100644 --- a/apps/web/public/assets/posts/monitoring-latency/render.json +++ b/apps/web/public/assets/posts/monitoring-latency/render.json @@ -1,2898 +1,2884 @@ { - "regions": [ - "ams", - "iad", - "hkg", - "jnb", - "syd", - "gru" - ], - "data": { - "regions": [ - "ams", - "gru", - "hkg", - "iad", - "jnb", - "syd" - ], - "data": [ - { - "timestamp": "Feb 4, 00:00", - "ams": 80, - "iad": 277, - "syd": 515, - "jnb": 579, - "gru": 393, - "hkg": 408 - }, - { - "timestamp": "Feb 4, 01:00", - "ams": 109, - "iad": 162, - "syd": 598, - "jnb": 592, - "gru": 326, - "hkg": 340 - }, - { - "timestamp": "Feb 4, 02:00", - "hkg": 303, - "ams": 89, - "iad": 216, - "jnb": 567, - "syd": 445, - "gru": 442 - }, - { - "timestamp": "Feb 4, 03:00", - "hkg": 379, - "jnb": 591, - "syd": 521, - "ams": 86, - "iad": 276, - "gru": 307 - }, - { - "timestamp": "Feb 4, 04:00", - "hkg": 278, - "gru": 390, - "syd": 417, - "jnb": 560, - "ams": 84, - "iad": 218 - }, - { - "timestamp": "Feb 4, 05:00", - "gru": 352, - "syd": 443, - "jnb": 591, - "ams": 80, - "iad": 183, - "hkg": 384 - }, - { - "timestamp": "Feb 4, 06:00", - "jnb": 558, - "syd": 532, - "ams": 83, - "iad": 152, - "gru": 416, - "hkg": 374 - }, - { - "timestamp": "Feb 4, 07:00", - "hkg": 371, - "jnb": 583, - "syd": 508, - "ams": 79, - "iad": 214, - "gru": 348 - }, - { - "timestamp": "Feb 4, 08:00", - "hkg": 364, - "gru": 283, - "syd": 386, - "jnb": 561, - "ams": 89, - "iad": 173 - }, - { - "timestamp": "Feb 4, 09:00", - "hkg": 345, - "iad": 158, - "ams": 98, - "jnb": 590, - "syd": 596, - "gru": 354 - }, - { - "timestamp": "Feb 4, 10:00", - "hkg": 365, - "gru": 270, - "jnb": 608, - "syd": 443, - "iad": 176, - "ams": 84 - }, - { - "timestamp": "Feb 4, 11:00", - "gru": 389, - "syd": 412, - "jnb": 606, - "ams": 92, - "iad": 217, - "hkg": 431 - }, - { - "timestamp": "Feb 4, 12:00", - "gru": 372, - "iad": 236, - "ams": 103, - "syd": 574, - "jnb": 571, - "hkg": 323 - }, - { - "timestamp": "Feb 4, 13:00", - "syd": 504, - "jnb": 640, - "ams": 105, - "iad": 250, - "gru": 374, - "hkg": 303 - }, - { - "timestamp": "Feb 4, 14:00", - "hkg": 350, - "gru": 296, - "ams": 110, - "iad": 148, - "jnb": 570, - "syd": 392 - }, - { - "timestamp": "Feb 4, 15:00", - "hkg": 329, - "iad": 278, - "ams": 126, - "syd": 483, - "jnb": 588, - "gru": 287 - }, - { - "timestamp": "Feb 4, 16:00", - "ams": 118, - "iad": 180, - "syd": 407, - "jnb": 576, - "gru": 346, - "hkg": 332 - }, - { - "timestamp": "Feb 4, 17:00", - "jnb": 712, - "syd": 434, - "ams": 174, - "iad": 182, - "gru": 378, - "hkg": 306 - }, - { - "timestamp": "Feb 4, 18:00", - "gru": 410, - "jnb": 610, - "syd": 442, - "ams": 116, - "iad": 250, - "hkg": 380 - }, - { - "timestamp": "Feb 4, 19:00", - "syd": 430, - "jnb": 623, - "iad": 162, - "ams": 230, - "gru": 300, - "hkg": 330 - }, - { - "timestamp": "Feb 4, 20:00", - "ams": 102, - "iad": 209, - "syd": 441, - "jnb": 611, - "gru": 278, - "hkg": 368 - }, - { - "timestamp": "Feb 4, 21:00", - "hkg": 313, - "syd": 404, - "jnb": 613, - "iad": 234, - "ams": 89, - "gru": 385 - }, - { - "timestamp": "Feb 4, 22:00", - "hkg": 444, - "gru": 415, - "iad": 215, - "ams": 189, - "syd": 431, - "jnb": 575 - }, - { - "timestamp": "Feb 4, 23:00", - "jnb": 582, - "syd": 426, - "iad": 214, - "ams": 97, - "gru": 360, - "hkg": 270 - }, - { - "timestamp": "Feb 5, 00:00", - "gru": 309, - "jnb": 585, - "syd": 524, - "ams": 92, - "iad": 223, - "hkg": 393 - }, - { - "timestamp": "Feb 5, 01:00", - "gru": 284, - "iad": 185, - "ams": 86, - "syd": 536, - "jnb": 561, - "hkg": 273 - }, - { - "timestamp": "Feb 5, 02:00", - "syd": 439, - "jnb": 558, - "iad": 170, - "ams": 81, - "gru": 310, - "hkg": 324 - }, - { - "timestamp": "Feb 5, 03:00", - "gru": 354, - "ams": 78, - "iad": 185, - "jnb": 581, - "syd": 452, - "hkg": 334 - }, - { - "timestamp": "Feb 5, 04:00", - "gru": 308, - "jnb": 595, - "syd": 510, - "iad": 214, - "ams": 108, - "hkg": 325 - }, - { - "timestamp": "Feb 5, 05:00", - "ams": 82, - "iad": 268, - "jnb": 564, - "syd": 513, - "gru": 356, - "hkg": 387 - }, - { - "timestamp": "Feb 5, 06:00", - "hkg": 299, - "jnb": 568, - "syd": 539, - "ams": 80, - "iad": 227, - "gru": 274 - }, - { - "timestamp": "Feb 5, 07:00", - "hkg": 324, - "gru": 439, - "syd": 480, - "jnb": 567, - "iad": 148, - "ams": 82 - }, - { - "timestamp": "Feb 5, 08:00", - "jnb": 568, - "syd": 528, - "ams": 84, - "iad": 174, - "gru": 380, - "hkg": 333 - }, - { - "timestamp": "Feb 5, 09:00", - "ams": 85, - "iad": 227, - "syd": 612, - "jnb": 618, - "gru": 346, - "hkg": 405 - }, - { - "timestamp": "Feb 5, 10:00", - "hkg": 360, - "syd": 541, - "jnb": 564, - "ams": 86, - "iad": 177, - "gru": 352 - }, - { - "timestamp": "Feb 5, 11:00", - "hkg": 417, - "gru": 435, - "jnb": 583, - "syd": 468, - "iad": 178, - "ams": 102 - }, - { - "timestamp": "Feb 5, 12:00", - "hkg": 300, - "gru": 358, - "ams": 105, - "iad": 207, - "jnb": 564, - "syd": 427 - }, - { - "timestamp": "Feb 5, 13:00", - "hkg": 370, - "iad": 188, - "ams": 114, - "jnb": 602, - "syd": 420, - "gru": 292 - }, - { - "timestamp": "Feb 5, 14:00", - "hkg": 375, - "gru": 439, - "jnb": 580, - "syd": 590, - "iad": 156, - "ams": 91 - }, - { - "timestamp": "Feb 5, 15:00", - "gru": 374, - "syd": 570, - "jnb": 587, - "ams": 104, - "iad": 223, - "hkg": 315 - }, - { - "timestamp": "Feb 5, 16:00", - "syd": 421, - "jnb": 603, - "iad": 203, - "ams": 94, - "gru": 299, - "hkg": 305 - }, - { - "timestamp": "Feb 5, 17:00", - "hkg": 306, - "syd": 495, - "jnb": 639, - "iad": 260, - "ams": 106, - "gru": 436 - }, - { - "timestamp": "Feb 5, 18:00", - "hkg": 374, - "gru": 294, - "jnb": 570, - "syd": 496, - "iad": 228, - "ams": 92 - }, - { - "timestamp": "Feb 5, 19:00", - "gru": 356, - "ams": 114, - "iad": 172, - "jnb": 577, - "syd": 412, - "hkg": 367 - }, - { - "timestamp": "Feb 5, 20:00", - "ams": 101, - "iad": 261, - "syd": 438, - "jnb": 623, - "gru": 411, - "hkg": 275 - }, - { - "timestamp": "Feb 5, 21:00", - "ams": 96, - "iad": 244, - "jnb": 596, - "syd": 610, - "gru": 317, - "hkg": 301 - }, - { - "timestamp": "Feb 5, 22:00", - "gru": 369, - "syd": 466, - "jnb": 616, - "ams": 89, - "iad": 188, - "hkg": 388 - }, - { - "timestamp": "Feb 5, 23:00", - "iad": 175, - "ams": 86, - "syd": 541, - "jnb": 735, - "gru": 376, - "hkg": 291 - }, - { - "timestamp": "Feb 6, 00:00", - "hkg": 302, - "iad": 220, - "ams": 90, - "jnb": 572, - "syd": 429, - "gru": 306 - }, - { - "timestamp": "Feb 6, 01:00", - "hkg": 286, - "jnb": 596, - "syd": 443, - "ams": 92, - "iad": 240, - "gru": 360 - }, - { - "timestamp": "Feb 6, 02:00", - "gru": 389, - "jnb": 568, - "syd": 443, - "ams": 82, - "iad": 271, - "hkg": 304 - }, - { - "timestamp": "Feb 6, 03:00", - "iad": 167, - "ams": 84, - "jnb": 582, - "syd": 506, - "gru": 344, - "hkg": 407 - }, - { - "timestamp": "Feb 6, 04:00", - "hkg": 331, - "iad": 203, - "ams": 79, - "syd": 552, - "jnb": 563, - "gru": 300 - }, - { - "timestamp": "Feb 6, 05:00", - "hkg": 481, - "iad": 242, - "ams": 78, - "jnb": 610, - "syd": 446, - "gru": 297 - }, - { - "timestamp": "Feb 6, 06:00", - "hkg": 292, - "gru": 319, - "iad": 149, - "ams": 78, - "syd": 446, - "jnb": 554 - }, - { - "timestamp": "Feb 6, 07:00", - "hkg": 286, - "ams": 80, - "iad": 185, - "syd": 458, - "jnb": 586, - "gru": 279 - }, - { - "timestamp": "Feb 6, 08:00", - "hkg": 322, - "gru": 326, - "ams": 95, - "iad": 237, - "jnb": 582, - "syd": 530 - }, - { - "timestamp": "Feb 6, 09:00", - "hkg": 290, - "gru": 306, - "jnb": 570, - "syd": 456, - "ams": 97, - "iad": 181 - }, - { - "timestamp": "Feb 6, 10:00", - "hkg": 360, - "syd": 516, - "jnb": 575, - "ams": 130, - "iad": 214, - "gru": 280 - }, - { - "timestamp": "Feb 6, 11:00", - "hkg": 283, - "syd": 400, - "jnb": 566, - "ams": 108, - "iad": 202, - "gru": 332 - }, - { - "timestamp": "Feb 6, 12:00", - "hkg": 450, - "gru": 335, - "jnb": 574, - "syd": 426, - "ams": 101, - "iad": 207 - }, - { - "timestamp": "Feb 6, 13:00", - "hkg": 396, - "gru": 362, - "syd": 522, - "jnb": 568, - "ams": 98, - "iad": 197 - }, - { - "timestamp": "Feb 6, 14:00", - "gru": 426, - "jnb": 571, - "syd": 422, - "ams": 97, - "iad": 216, - "hkg": 364 - }, - { - "timestamp": "Feb 6, 15:00", - "iad": 277, - "ams": 112, - "jnb": 578, - "syd": 524, - "gru": 320, - "hkg": 401 - }, - { - "timestamp": "Feb 6, 16:00", - "gru": 574, - "syd": 424, - "jnb": 600, - "iad": 258, - "ams": 106, - "hkg": 586 - }, - { - "timestamp": "Feb 6, 17:00", - "gru": 429, - "ams": 125, - "iad": 249, - "syd": 416, - "jnb": 615, - "hkg": 310 - }, - { - "timestamp": "Feb 6, 18:00", - "hkg": 300, - "gru": 356, - "ams": 148, - "iad": 242, - "jnb": 596, - "syd": 528 - }, - { - "timestamp": "Feb 6, 19:00", - "hkg": 287, - "jnb": 590, - "syd": 416, - "iad": 206, - "ams": 111, - "gru": 282 - }, - { - "timestamp": "Feb 6, 20:00", - "gru": 364, - "jnb": 584, - "syd": 538, - "iad": 189, - "ams": 116, - "hkg": 319 - }, - { - "timestamp": "Feb 6, 21:00", - "gru": 314, - "syd": 407, - "jnb": 595, - "iad": 182, - "ams": 115, - "hkg": 359 - }, - { - "timestamp": "Feb 6, 22:00", - "jnb": 604, - "syd": 444, - "iad": 263, - "ams": 115, - "gru": 450, - "hkg": 276 - }, - { - "timestamp": "Feb 6, 23:00", - "hkg": 459, - "ams": 90, - "iad": 216, - "jnb": 603, - "syd": 455, - "gru": 371 - }, - { - "timestamp": "Feb 7, 00:00", - "hkg": 288, - "gru": 335, - "ams": 82, - "iad": 254, - "syd": 618, - "jnb": 567 - }, - { - "timestamp": "Feb 7, 01:00", - "hkg": 316, - "jnb": 603, - "syd": 429, - "iad": 150, - "ams": 84, - "gru": 571 - }, - { - "timestamp": "Feb 7, 02:00", - "hkg": 3871, - "gru": 3649, - "jnb": 3905, - "syd": 3757, - "ams": 3588, - "iad": 3716 - }, - { - "timestamp": "Feb 7, 03:00", - "gru": 371, - "syd": 411, - "jnb": 595, - "iad": 221, - "ams": 84, - "hkg": 369 - }, - { - "timestamp": "Feb 7, 04:00", - "iad": 228, - "ams": 83, - "syd": 440, - "jnb": 598, - "gru": 320, - "hkg": 404 - }, - { - "timestamp": "Feb 7, 05:00", - "hkg": 5563, - "jnb": 5587, - "syd": 5626, - "iad": 5454, - "ams": 5370, - "gru": 5528 - }, - { - "timestamp": "Feb 7, 06:00", - "hkg": 466, - "ams": 81, - "iad": 206, - "jnb": 553, - "syd": 616, - "gru": 338 - }, - { - "timestamp": "Feb 7, 07:00", - "hkg": 441, - "gru": 389, - "iad": 238, - "ams": 88, - "syd": 430, - "jnb": 620 - }, - { - "timestamp": "Feb 7, 08:00", - "gru": 314, - "syd": 608, - "jnb": 572, - "iad": 204, - "ams": 86, - "hkg": 459 - }, - { - "timestamp": "Feb 7, 09:00", - "gru": 401, - "iad": 202, - "ams": 101, - "jnb": 561, - "syd": 406, - "hkg": 488 - }, - { - "timestamp": "Feb 7, 10:00", - "jnb": 631, - "syd": 504, - "ams": 99, - "iad": 248, - "gru": 301, - "hkg": 324 - }, - { - "timestamp": "Feb 7, 11:00", - "gru": 307, - "syd": 477, - "jnb": 608, - "iad": 216, - "ams": 249, - "hkg": 530 - }, - { - "timestamp": "Feb 7, 12:00", - "hkg": 309, - "gru": 335, - "iad": 180, - "ams": 92, - "syd": 856, - "jnb": 567 - }, - { - "timestamp": "Feb 7, 13:00", - "hkg": 346, - "syd": 527, - "jnb": 572, - "ams": 82, - "iad": 296, - "gru": 348 - }, - { - "timestamp": "Feb 7, 14:00", - "hkg": 300, - "iad": 262, - "ams": 107, - "syd": 536, - "jnb": 616, - "gru": 453 - }, - { - "timestamp": "Feb 7, 15:00", - "gru": 432, - "ams": 99, - "iad": 222, - "syd": 500, - "jnb": 593, - "hkg": 347 - }, - { - "timestamp": "Feb 7, 16:00", - "syd": 433, - "jnb": 595, - "ams": 91, - "iad": 289, - "gru": 295, - "hkg": 382 - }, - { - "timestamp": "Feb 7, 17:00", - "iad": 204, - "ams": 117, - "jnb": 591, - "syd": 437, - "gru": 399, - "hkg": 285 - }, - { - "timestamp": "Feb 7, 18:00", - "gru": 324, - "ams": 138, - "iad": 224, - "jnb": 584, - "syd": 525, - "hkg": 338 - }, - { - "timestamp": "Feb 7, 19:00", - "syd": 508, - "jnb": 594, - "iad": 252, - "ams": 114, - "gru": 452, - "hkg": 302 - }, - { - "timestamp": "Feb 7, 20:00", - "gru": 371, - "iad": 290, - "ams": 112, - "syd": 445, - "jnb": 614, - "hkg": 284 - }, - { - "timestamp": "Feb 7, 21:00", - "hkg": 366, - "gru": 367, - "syd": 614, - "jnb": 603, - "ams": 96, - "iad": 202 - }, - { - "timestamp": "Feb 7, 22:00", - "hkg": 342, - "gru": 375, - "iad": 260, - "ams": 104, - "syd": 430, - "jnb": 707 - }, - { - "timestamp": "Feb 7, 23:00", - "hkg": 341, - "ams": 85, - "iad": 225, - "jnb": 616, - "syd": 444, - "gru": 422 - }, - { - "timestamp": "Feb 8, 00:00", - "hkg": 302, - "syd": 442, - "jnb": 592, - "ams": 92, - "iad": 245, - "gru": 313 - }, - { - "timestamp": "Feb 8, 01:00", - "hkg": 383, - "ams": 176, - "iad": 267, - "jnb": 678, - "syd": 455, - "gru": 398 - }, - { - "timestamp": "Feb 8, 02:00", - "iad": 1828, - "ams": 1791, - "jnb": 2230, - "syd": 2200, - "gru": 2043, - "hkg": 2009 - }, - { - "timestamp": "Feb 8, 03:00", - "gru": 300, - "ams": 110, - "iad": 279, - "syd": 399, - "jnb": 589, - "hkg": 421 - }, - { - "timestamp": "Feb 8, 04:00", - "ams": 79, - "iad": 190, - "syd": 430, - "jnb": 574, - "gru": 362, - "hkg": 310 - }, - { - "timestamp": "Feb 8, 05:00", - "gru": 408, - "syd": 409, - "jnb": 588, - "iad": 266, - "ams": 77, - "hkg": 368 - }, - { - "timestamp": "Feb 8, 06:00", - "gru": 288, - "ams": 78, - "iad": 195, - "syd": 2958, - "jnb": 3148, - "hkg": 2840 - }, - { - "timestamp": "Feb 8, 07:00", - "hkg": 324, - "gru": 356, - "iad": 246, - "ams": 84, - "jnb": 589, - "syd": 507 - }, - { - "timestamp": "Feb 8, 08:00", - "hkg": 383, - "jnb": 565, - "syd": 423, - "iad": 274, - "ams": 86, - "gru": 320 - }, - { - "timestamp": "Feb 8, 09:00", - "gru": 374, - "jnb": 574, - "syd": 430, - "ams": 83, - "iad": 236, - "hkg": 344 - }, - { - "timestamp": "Feb 8, 10:00", - "syd": 566, - "jnb": 572, - "ams": 101, - "iad": 254, - "gru": 366, - "hkg": 294 - }, - { - "timestamp": "Feb 8, 11:00", - "hkg": 338, - "syd": 460, - "jnb": 570, - "ams": 88, - "iad": 251, - "gru": 363 - }, - { - "timestamp": "Feb 8, 12:00", - "hkg": 285, - "gru": 275, - "jnb": 594, - "syd": 478, - "ams": 89, - "iad": 205 - }, - { - "timestamp": "Feb 8, 13:00", - "hkg": 312, - "iad": 268, - "ams": 84, - "syd": 526, - "jnb": 626, - "gru": 293 - }, - { - "timestamp": "Feb 8, 14:00", - "hkg": 321, - "gru": 399, - "iad": 204, - "ams": 116, - "jnb": 600, - "syd": 604 - }, - { - "timestamp": "Feb 8, 15:00", - "hkg": 322, - "gru": 318, - "jnb": 577, - "syd": 438, - "iad": 270, - "ams": 102 - }, - { - "timestamp": "Feb 8, 16:00", - "gru": 318, - "syd": 434, - "jnb": 596, - "iad": 251, - "ams": 110, - "hkg": 310 - }, - { - "timestamp": "Feb 8, 17:00", - "gru": 404, - "syd": 376, - "jnb": 602, - "iad": 201, - "ams": 94, - "hkg": 396 - }, - { - "timestamp": "Feb 8, 18:00", - "hkg": 344, - "gru": 313, - "syd": 442, - "jnb": 573, - "ams": 119, - "iad": 284 - }, - { - "timestamp": "Feb 8, 19:00", - "hkg": 426, - "syd": 431, - "jnb": 572, - "ams": 108, - "iad": 219, - "gru": 305 - }, - { - "timestamp": "Feb 8, 20:00", - "jnb": 591, - "syd": 478, - "ams": 102, - "iad": 210, - "gru": 360, - "hkg": 294 - }, - { - "timestamp": "Feb 8, 21:00", - "gru": 335, - "syd": 466, - "jnb": 595, - "iad": 250, - "ams": 104, - "hkg": 298 - }, - { - "timestamp": "Feb 8, 22:00", - "iad": 285, - "ams": 93, - "jnb": 574, - "syd": 354, - "gru": 390, - "hkg": 441 - }, - { - "timestamp": "Feb 8, 23:00", - "jnb": 557, - "syd": 414, - "iad": 246, - "ams": 99, - "gru": 334, - "hkg": 374 - }, - { - "timestamp": "Feb 9, 00:00", - "gru": 340, - "syd": 312, - "jnb": 593, - "iad": 314, - "ams": 88, - "hkg": 291 - }, - { - "timestamp": "Feb 9, 01:00", - "gru": 292, - "syd": 351, - "jnb": 558, - "ams": 79, - "iad": 221, - "hkg": 360 - }, - { - "timestamp": "Feb 9, 02:00", - "jnb": 560, - "syd": 355, - "ams": 90, - "iad": 220, - "gru": 410, - "hkg": 288 - }, - { - "timestamp": "Feb 9, 03:00", - "hkg": 284, - "gru": 363, - "syd": 368, - "jnb": 555, - "ams": 85, - "iad": 290 - }, - { - "timestamp": "Feb 9, 04:00", - "hkg": 457, - "jnb": 609, - "syd": 356, - "ams": 79, - "iad": 226, - "gru": 390 - }, - { - "timestamp": "Feb 9, 05:00", - "syd": 342, - "jnb": 583, - "iad": 216, - "ams": 86, - "gru": 384, - "hkg": 293 - }, - { - "timestamp": "Feb 9, 06:00", - "gru": 286, - "jnb": 562, - "syd": 383, - "iad": 181, - "ams": 72, - "hkg": 387 - }, - { - "timestamp": "Feb 9, 07:00", - "gru": 372, - "iad": 207, - "ams": 89, - "jnb": 582, - "syd": 417, - "hkg": 318 - }, - { - "timestamp": "Feb 9, 08:00", - "syd": 472, - "jnb": 559, - "iad": 200, - "ams": 91, - "gru": 334, - "hkg": 340 - }, - { - "timestamp": "Feb 9, 09:00", - "syd": 464, - "jnb": 560, - "iad": 280, - "ams": 83, - "gru": 333, - "hkg": 352 - }, - { - "timestamp": "Feb 9, 10:00", - "hkg": 320, - "jnb": 557, - "syd": 346, - "iad": 245, - "ams": 80, - "gru": 411 - }, - { - "timestamp": "Feb 9, 11:00", - "hkg": 309, - "gru": 357, - "jnb": 564, - "syd": 374, - "iad": 187, - "ams": 97 - }, - { - "timestamp": "Feb 9, 12:00", - "hkg": 386, - "gru": 338, - "ams": 83, - "iad": 149, - "syd": 396, - "jnb": 654 - }, - { - "timestamp": "Feb 9, 13:00", - "hkg": 388, - "iad": 246, - "ams": 82, - "jnb": 639, - "syd": 431, - "gru": 358 - }, - { - "timestamp": "Feb 9, 14:00", - "iad": 218, - "ams": 102, - "syd": 378, - "jnb": 621, - "gru": 313, - "hkg": 387 - }, - { - "timestamp": "Feb 9, 15:00", - "syd": 379, - "jnb": 595, - "iad": 224, - "ams": 92, - "gru": 332, - "hkg": 304 - }, - { - "timestamp": "Feb 9, 16:00", - "gru": 268, - "jnb": 632, - "syd": 491, - "iad": 253, - "ams": 86, - "hkg": 299 - }, - { - "timestamp": "Feb 9, 17:00", - "ams": 92, - "iad": 275, - "syd": 394, - "jnb": 599, - "gru": 261, - "hkg": 462 - }, - { - "timestamp": "Feb 9, 18:00", - "gru": 330, - "syd": 366, - "jnb": 622, - "ams": 90, - "iad": 214, - "hkg": 386 - }, - { - "timestamp": "Feb 9, 19:00", - "hkg": 350, - "gru": 366, - "jnb": 657, - "syd": 352, - "iad": 248, - "ams": 91 - }, - { - "timestamp": "Feb 9, 20:00", - "hkg": 420, - "jnb": 572, - "syd": 335, - "ams": 89, - "iad": 324, - "gru": 362 - }, - { - "timestamp": "Feb 9, 21:00", - "gru": 348, - "iad": 196, - "ams": 101, - "syd": 433, - "jnb": 574, - "hkg": 452 - }, - { - "timestamp": "Feb 9, 22:00", - "syd": 311, - "jnb": 571, - "iad": 232, - "ams": 73, - "gru": 311, - "hkg": 384 - }, - { - "timestamp": "Feb 9, 23:00", - "hkg": 393, - "jnb": 579, - "syd": 334, - "ams": 83, - "iad": 185, - "gru": 280 - }, - { - "timestamp": "Feb 10, 00:00", - "hkg": 338, - "iad": 280, - "ams": 80, - "jnb": 566, - "syd": 451, - "gru": 424 - }, - { - "timestamp": "Feb 10, 01:00", - "hkg": 284, - "syd": 431, - "jnb": 560, - "iad": 209, - "ams": 76, - "gru": 291 - }, - { - "timestamp": "Feb 10, 02:00", - "hkg": 2876, - "gru": 5579, - "syd": 371, - "jnb": 3130, - "iad": 215, - "ams": 75 - }, - { - "timestamp": "Feb 10, 03:00", - "hkg": 424, - "jnb": 559, - "syd": 329, - "ams": 74, - "iad": 152, - "gru": 650 - }, - { - "timestamp": "Feb 10, 04:00", - "jnb": 609, - "syd": 372, - "iad": 185, - "ams": 78, - "gru": 295, - "hkg": 284 - }, - { - "timestamp": "Feb 10, 05:00", - "gru": 417, - "ams": 76, - "iad": 161, - "jnb": 605, - "syd": 578, - "hkg": 349 - }, - { - "timestamp": "Feb 10, 06:00", - "hkg": 330, - "gru": 312, - "syd": 449, - "jnb": 602, - "iad": 182, - "ams": 76 - }, - { - "timestamp": "Feb 10, 07:00", - "hkg": 352, - "jnb": 593, - "syd": 330, - "ams": 70, - "iad": 158, - "gru": 303 - }, - { - "timestamp": "Feb 10, 08:00", - "hkg": 368, - "iad": 166, - "ams": 77, - "jnb": 558, - "syd": 520, - "gru": 332 - }, - { - "timestamp": "Feb 10, 09:00", - "hkg": 373, - "syd": 389, - "jnb": 587, - "ams": 76, - "iad": 181, - "gru": 421 - }, - { - "timestamp": "Feb 10, 10:00", - "hkg": 366, - "gru": 322, - "ams": 86, - "iad": 176, - "syd": 408, - "jnb": 562 - }, - { - "timestamp": "Feb 10, 11:00", - "hkg": 350, - "jnb": 563, - "syd": 348, - "iad": 184, - "ams": 80, - "gru": 357 - }, - { - "timestamp": "Feb 10, 12:00", - "hkg": 394, - "gru": 414, - "jnb": 608, - "syd": 472, - "ams": 83, - "iad": 153 - }, - { - "timestamp": "Feb 10, 13:00", - "gru": 307, - "iad": 152, - "ams": 91, - "jnb": 634, - "syd": 435, - "hkg": 299 - }, - { - "timestamp": "Feb 10, 14:00", - "jnb": 569, - "syd": 364, - "iad": 214, - "ams": 85, - "gru": 328, - "hkg": 374 - }, - { - "timestamp": "Feb 10, 15:00", - "hkg": 396, - "gru": 288, - "jnb": 581, - "syd": 372, - "ams": 76, - "iad": 180 - }, - { - "timestamp": "Feb 10, 16:00", - "hkg": 308, - "gru": 311, - "iad": 159, - "ams": 86, - "jnb": 578, - "syd": 408 - }, - { - "timestamp": "Feb 10, 17:00", - "hkg": 405, - "gru": 260, - "syd": 445, - "jnb": 573, - "iad": 164, - "ams": 91 - }, - { - "timestamp": "Feb 10, 18:00", - "gru": 312, - "iad": 226, - "ams": 100, - "syd": 325, - "jnb": 578, - "hkg": 311 - }, - { - "timestamp": "Feb 10, 19:00", - "ams": 93, - "iad": 155, - "jnb": 591, - "syd": 548, - "gru": 419, - "hkg": 289 - }, - { - "timestamp": "Feb 10, 20:00", - "gru": 290, - "jnb": 621, - "syd": 368, - "iad": 193, - "ams": 93, - "hkg": 276 - }, - { - "timestamp": "Feb 10, 21:00", - "ams": 88, - "iad": 186, - "jnb": 570, - "syd": 355, - "gru": 380, - "hkg": 429 - }, - { - "timestamp": "Feb 10, 22:00", - "hkg": 453, - "jnb": 558, - "syd": 526, - "ams": 78, - "iad": 189, - "gru": 402 - }, - { - "timestamp": "Feb 10, 23:00", - "hkg": 282, - "gru": 338, - "syd": 357, - "jnb": 580, - "iad": 184, - "ams": 74 - }, - { - "timestamp": "Feb 11, 00:00", - "hkg": 303, - "gru": 467, - "ams": 74, - "iad": 194, - "syd": 449, - "jnb": 583 - }, - { - "timestamp": "Feb 11, 01:00", - "hkg": 386, - "jnb": 555, - "syd": 349, - "ams": 70, - "iad": 159, - "gru": 310 - }, - { - "timestamp": "Feb 11, 02:00", - "hkg": 323, - "gru": 306, - "syd": 385, - "jnb": 556, - "ams": 88, - "iad": 184 - }, - { - "timestamp": "Feb 11, 03:00", - "gru": 310, - "iad": 180, - "ams": 123, - "syd": 397, - "jnb": 607, - "hkg": 440 - }, - { - "timestamp": "Feb 11, 04:00", - "iad": 240, - "ams": 84, - "jnb": 554, - "syd": 433, - "gru": 373, - "hkg": 364 - }, - { - "timestamp": "Feb 11, 05:00", - "gru": 271, - "iad": 156, - "ams": 91, - "syd": 373, - "jnb": 587, - "hkg": 298 - }, - { - "timestamp": "Feb 11, 06:00", - "iad": 178, - "ams": 101, - "jnb": 582, - "syd": 482, - "gru": 674, - "hkg": 323 - }, - { - "timestamp": "Feb 11, 07:00", - "hkg": 399, - "jnb": 659, - "syd": 371, - "ams": 115, - "iad": 210, - "gru": 285 - }, - { - "timestamp": "Feb 11, 08:00", - "hkg": 426, - "gru": 322, - "syd": 464, - "jnb": 585, - "ams": 89, - "iad": 146 - }, - { - "timestamp": "Feb 11, 09:00", - "hkg": 347, - "syd": 357, - "jnb": 567, - "iad": 180, - "ams": 76, - "gru": 290 - }, - { - "timestamp": "Feb 11, 10:00", - "gru": 390, - "syd": 383, - "jnb": 567, - "iad": 178, - "ams": 83, - "hkg": 341 - }, - { - "timestamp": "Feb 11, 11:00", - "ams": 81, - "iad": 186, - "syd": 335, - "jnb": 598, - "gru": 284, - "hkg": 516 - }, - { - "timestamp": "Feb 11, 12:00", - "hkg": 324, - "ams": 166, - "iad": 214, - "jnb": 595, - "syd": 408, - "gru": 435 - }, - { - "timestamp": "Feb 11, 13:00", - "hkg": 273, - "gru": 408, - "syd": 366, - "jnb": 562, - "ams": 96, - "iad": 146 - }, - { - "timestamp": "Feb 11, 14:00", - "hkg": 355, - "ams": 89, - "iad": 189, - "jnb": 565, - "syd": 417, - "gru": 273 - }, - { - "timestamp": "Feb 11, 15:00", - "hkg": 383, - "gru": 389, - "jnb": 570, - "syd": 342, - "iad": 182, - "ams": 84 - }, - { - "timestamp": "Feb 11, 16:00", - "gru": 474, - "syd": 355, - "jnb": 591, - "iad": 211, - "ams": 107, - "hkg": 328 - }, - { - "timestamp": "Feb 11, 17:00", - "hkg": 414, - "gru": 392, - "syd": 376, - "jnb": 566, - "iad": 162, - "ams": 105 - }, - { - "timestamp": "Feb 11, 18:00", - "hkg": 358, - "jnb": 596, - "syd": 446, - "iad": 215, - "ams": 95, - "gru": 306 - }, - { - "timestamp": "Feb 11, 19:00", - "iad": 156, - "ams": 94, - "syd": 446, - "jnb": 623, - "gru": 390, - "hkg": 323 - }, - { - "timestamp": "Feb 11, 20:00", - "gru": 430, - "iad": 160, - "ams": 102, - "jnb": 597, - "syd": 568, - "hkg": 2969 - }, - { - "timestamp": "Feb 11, 21:00", - "hkg": 382, - "gru": 374, - "syd": 325, - "jnb": 568, - "iad": 186, - "ams": 132 - }, - { - "timestamp": "Feb 11, 22:00", - "hkg": 297, - "jnb": 562, - "syd": 402, - "iad": 185, - "ams": 138, - "gru": 309 - }, - { - "timestamp": "Feb 11, 23:00", - "hkg": 429, - "gru": 308, - "jnb": 575, - "syd": 476, - "ams": 120, - "iad": 152 - }, - { - "timestamp": "Feb 12, 00:00", - "hkg": 370, - "syd": 353, - "jnb": 588, - "ams": 151, - "iad": 157, - "gru": 434 - }, - { - "timestamp": "Feb 12, 01:00", - "hkg": 352, - "gru": 366, - "syd": 367, - "jnb": 562, - "iad": 156, - "ams": 82 - }, - { - "timestamp": "Feb 12, 02:00", - "gru": 315, - "jnb": 589, - "syd": 438, - "iad": 194, - "ams": 78, - "hkg": 309 - }, - { - "timestamp": "Feb 12, 03:00", - "ams": 88, - "iad": 154, - "jnb": 550, - "syd": 428, - "gru": 327, - "hkg": 298 - }, - { - "timestamp": "Feb 12, 04:00", - "hkg": 326, - "gru": 403, - "ams": 102, - "iad": 148, - "jnb": 585, - "syd": 377 - }, - { - "timestamp": "Feb 12, 05:00", - "hkg": 300, - "syd": 359, - "jnb": 550, - "ams": 115, - "iad": 159, - "gru": 391 - }, - { - "timestamp": "Feb 12, 06:00", - "jnb": 574, - "syd": 358, - "ams": 119, - "iad": 146, - "gru": 356, - "hkg": 342 - }, - { - "timestamp": "Feb 12, 07:00", - "gru": 280, - "iad": 178, - "ams": 82, - "jnb": 564, - "syd": 507, - "hkg": 322 - }, - { - "timestamp": "Feb 12, 08:00", - "syd": 382, - "jnb": 564, - "iad": 178, - "ams": 98, - "gru": 375, - "hkg": 383 - }, - { - "timestamp": "Feb 12, 09:00", - "gru": 286, - "jnb": 561, - "syd": 396, - "ams": 79, - "iad": 149, - "hkg": 289 - }, - { - "timestamp": "Feb 12, 10:00", - "gru": 336, - "iad": 147, - "ams": 87, - "jnb": 614, - "syd": 528, - "hkg": 279 - }, - { - "timestamp": "Feb 12, 11:00", - "hkg": 430, - "gru": 308, - "ams": 92, - "iad": 181, - "syd": 365, - "jnb": 565 - }, - { - "timestamp": "Feb 12, 12:00", - "hkg": 369, - "syd": 438, - "jnb": 588, - "ams": 101, - "iad": 147, - "gru": 340 - }, - { - "timestamp": "Feb 12, 13:00", - "hkg": 389, - "syd": 467, - "jnb": 601, - "ams": 107, - "iad": 149, - "gru": 371 - }, - { - "timestamp": "Feb 12, 14:00", - "hkg": 392, - "gru": 2931, - "syd": 432, - "jnb": 596, - "iad": 2778, - "ams": 140 - }, - { - "timestamp": "Feb 12, 15:00", - "gru": 288, - "jnb": 642, - "syd": 388, - "ams": 145, - "iad": 157, - "hkg": 400 - }, - { - "timestamp": "Feb 12, 16:00", - "ams": 120, - "iad": 238, - "jnb": 598, - "syd": 389, - "gru": 377, - "hkg": 422 - }, - { - "timestamp": "Feb 12, 17:00", - "ams": 109, - "iad": 176, - "syd": 389, - "jnb": 618, - "gru": 392, - "hkg": 319 - }, - { - "timestamp": "Feb 12, 18:00", - "syd": 536, - "jnb": 604, - "iad": 170, - "ams": 87, - "gru": 332, - "hkg": 308 - }, - { - "timestamp": "Feb 12, 19:00", - "gru": 379, - "jnb": 612, - "syd": 374, - "ams": 95, - "iad": 168, - "hkg": 386 - }, - { - "timestamp": "Feb 12, 20:00", - "hkg": 361, - "gru": 452, - "ams": 112, - "iad": 158, - "jnb": 576, - "syd": 470 - }, - { - "timestamp": "Feb 12, 21:00", - "hkg": 484, - "jnb": 570, - "syd": 364, - "iad": 191, - "ams": 94, - "gru": 379 - }, - { - "timestamp": "Feb 12, 22:00", - "gru": 298, - "syd": 479, - "jnb": 642, - "ams": 94, - "iad": 188, - "hkg": 286 - }, - { - "timestamp": "Feb 12, 23:00", - "jnb": 584, - "syd": 401, - "iad": 184, - "ams": 84, - "gru": 358, - "hkg": 316 - }, - { - "timestamp": "Feb 13, 00:00", - "hkg": 437, - "iad": 155, - "ams": 77, - "jnb": 578, - "syd": 445, - "gru": 430 - }, - { - "timestamp": "Feb 13, 01:00", - "gru": 294, - "syd": 394, - "jnb": 579, - "ams": 96, - "iad": 160, - "hkg": 294 - }, - { - "timestamp": "Feb 13, 02:00", - "gru": 289, - "iad": 158, - "ams": 82, - "syd": 404, - "jnb": 601, - "hkg": 318 - }, - { - "timestamp": "Feb 13, 03:00", - "jnb": 558, - "syd": 362, - "ams": 82, - "iad": 163, - "gru": 304, - "hkg": 321 - }, - { - "timestamp": "Feb 13, 04:00", - "gru": 462, - "ams": 87, - "iad": 153, - "jnb": 582, - "syd": 585, - "hkg": 264 - }, - { - "timestamp": "Feb 13, 05:00", - "hkg": 348, - "gru": 364, - "jnb": 567, - "syd": 463, - "iad": 200, - "ams": 124 - }, - { - "timestamp": "Feb 13, 06:00", - "hkg": 426, - "jnb": 580, - "syd": 501, - "ams": 88, - "iad": 142, - "gru": 453 - }, - { - "timestamp": "Feb 13, 07:00", - "jnb": 586, - "syd": 483, - "ams": 78, - "iad": 179, - "gru": 351, - "hkg": 401 - }, - { - "timestamp": "Feb 13, 08:00", - "gru": 295, - "ams": 92, - "iad": 176, - "jnb": 563, - "syd": 435, - "hkg": 344 - }, - { - "timestamp": "Feb 13, 09:00", - "hkg": 377, - "syd": 403, - "jnb": 578, - "ams": 97, - "iad": 148, - "gru": 562 - }, - { - "timestamp": "Feb 13, 10:00", - "hkg": 307, - "iad": 147, - "ams": 94, - "syd": 392, - "jnb": 565, - "gru": 354 - }, - { - "timestamp": "Feb 13, 11:00", - "hkg": 402, - "gru": 386, - "ams": 129, - "iad": 182, - "jnb": 567, - "syd": 552 - }, - { - "timestamp": "Feb 13, 12:00", - "hkg": 413, - "ams": 111, - "iad": 148, - "jnb": 620, - "syd": 479, - "gru": 341 - }, - { - "timestamp": "Feb 13, 13:00", - "hkg": 342, - "gru": 376, - "jnb": 603, - "syd": 407, - "iad": 187, - "ams": 93 - }, - { - "timestamp": "Feb 13, 14:00", - "gru": 414, - "jnb": 691, - "syd": 400, - "ams": 106, - "iad": 181, - "hkg": 297 - }, - { - "timestamp": "Feb 13, 15:00", - "syd": 331, - "jnb": 585, - "iad": 232, - "ams": 138, - "gru": 376, - "hkg": 403 - }, - { - "timestamp": "Feb 13, 16:00", - "hkg": 6906, - "gru": 6822, - "iad": 6801, - "ams": 6745, - "jnb": 7075, - "syd": 6918 - }, - { - "timestamp": "Feb 13, 17:00", - "hkg": 342, - "ams": 122, - "iad": 166, - "syd": 413, - "jnb": 777, - "gru": 439 - }, - { - "timestamp": "Feb 13, 18:00", - "ams": 118, - "iad": 192, - "jnb": 630, - "syd": 359, - "gru": 342, - "hkg": 328 - }, - { - "timestamp": "Feb 13, 19:00", - "jnb": 612, - "syd": 414, - "ams": 126, - "iad": 227, - "gru": 279, - "hkg": 302 - }, - { - "timestamp": "Feb 13, 20:00", - "gru": 323, - "syd": 426, - "jnb": 627, - "ams": 234, - "iad": 208, - "hkg": 300 - }, - { - "timestamp": "Feb 13, 21:00", - "iad": 161, - "ams": 107, - "jnb": 1070, - "syd": 494, - "gru": 391, - "hkg": 373 - }, - { - "timestamp": "Feb 13, 22:00", - "gru": 351, - "iad": 167, - "ams": 117, - "syd": 337, - "jnb": 709, - "hkg": 328 - }, - { - "timestamp": "Feb 13, 23:00", - "hkg": 352, - "gru": 298, - "iad": 163, - "ams": 86, - "syd": 452, - "jnb": 655 - }, - { - "timestamp": "Feb 14, 00:00", - "hkg": 319, - "iad": 151, - "ams": 89, - "jnb": 571, - "syd": 351, - "gru": 299 - }, - { - "timestamp": "Feb 14, 01:00", - "hkg": 438, - "gru": 394, - "iad": 159, - "ams": 84, - "syd": 373, - "jnb": 632 - }, - { - "timestamp": "Feb 14, 02:00", - "hkg": 397, - "iad": 170, - "ams": 93, - "jnb": 573, - "syd": 350, - "gru": 326 - }, - { - "timestamp": "Feb 14, 03:00", - "hkg": 441, - "jnb": 568, - "syd": 472, - "iad": 196, - "ams": 74, - "gru": 377 - }, - { - "timestamp": "Feb 14, 04:00", - "syd": 436, - "jnb": 557, - "iad": 161, - "ams": 79, - "gru": 332, - "hkg": 301 - }, - { - "timestamp": "Feb 14, 05:00", - "gru": 4516, - "jnb": 4770, - "syd": 4708, - "ams": 4297, - "iad": 4353, - "hkg": 4479 - }, - { - "timestamp": "Feb 14, 06:00", - "ams": 85, - "iad": 180, - "syd": 398, - "jnb": 585, - "gru": 350, - "hkg": 370 - }, - { - "timestamp": "Feb 14, 07:00", - "gru": 329, - "ams": 78, - "iad": 147, - "syd": 541, - "jnb": 593, - "hkg": 290 - }, - { - "timestamp": "Feb 14, 08:00", - "hkg": 330, - "gru": 341, - "ams": 84, - "iad": 152, - "jnb": 574, - "syd": 416 - }, - { - "timestamp": "Feb 14, 09:00", - "iad": 189, - "ams": 95, - "jnb": 593, - "syd": 415, - "gru": 289, - "hkg": 349 - }, - { - "timestamp": "Feb 14, 10:00", - "hkg": 343, - "gru": 391, - "iad": 150, - "ams": 92, - "jnb": 605, - "syd": 340 - }, - { - "timestamp": "Feb 14, 11:00", - "hkg": 359, - "gru": 289, - "jnb": 663, - "syd": 382, - "iad": 182, - "ams": 87 - }, - { - "timestamp": "Feb 14, 12:00", - "hkg": 386, - "syd": 434, - "jnb": 606, - "iad": 219, - "ams": 100, - "gru": 394 - }, - { - "timestamp": "Feb 14, 13:00", - "jnb": 646, - "syd": 460, - "ams": 80, - "iad": 150, - "gru": 277, - "hkg": 294 - }, - { - "timestamp": "Feb 14, 14:00", - "gru": 362, - "syd": 436, - "jnb": 667, - "ams": 101, - "iad": 195, - "hkg": 454 - }, - { - "timestamp": "Feb 14, 15:00", - "ams": 87, - "iad": 205, - "syd": 434, - "jnb": 632, - "gru": 360, - "hkg": 320 - }, - { - "timestamp": "Feb 14, 16:00", - "gru": 290, - "ams": 92, - "iad": 164, - "jnb": 576, - "syd": 326, - "hkg": 313 - }, - { - "timestamp": "Feb 14, 17:00", - "hkg": 292, - "ams": 88, - "iad": 153, - "jnb": 583, - "syd": 329, - "gru": 349 - }, - { - "timestamp": "Feb 14, 18:00", - "hkg": 527, - "gru": 415, - "ams": 88, - "iad": 213, - "syd": 496, - "jnb": 636 - }, - { - "timestamp": "Feb 14, 19:00", - "hkg": 322, - "gru": 384, - "syd": 468, - "jnb": 589, - "ams": 89, - "iad": 160 - }, - { - "timestamp": "Feb 14, 20:00", - "gru": 356, - "syd": 355, - "jnb": 599, - "iad": 214, - "ams": 97, - "hkg": 304 - }, - { - "timestamp": "Feb 14, 21:00", - "jnb": 703, - "syd": 421, - "ams": 86, - "iad": 192, - "gru": 337, - "hkg": 440 - }, - { - "timestamp": "Feb 14, 22:00", - "hkg": 308, - "syd": 446, - "jnb": 572, - "ams": 96, - "iad": 161, - "gru": 352 - }, - { - "timestamp": "Feb 14, 23:00", - "hkg": 307, - "gru": 306, - "syd": 316, - "jnb": 588, - "ams": 87, - "iad": 188 - }, - { - "timestamp": "Feb 15, 00:00", - "hkg": 355, - "ams": 78, - "iad": 225, - "jnb": 557, - "syd": 428, - "gru": 397 - }, - { - "timestamp": "Feb 15, 01:00", - "hkg": 392, - "gru": 366, - "iad": 184, - "ams": 78, - "syd": 450, - "jnb": 546 - }, - { - "timestamp": "Feb 15, 02:00", - "gru": 286, - "syd": 441, - "jnb": 589, - "iad": 159, - "ams": 72, - "hkg": 317 - }, - { - "timestamp": "Feb 15, 03:00", - "jnb": 558, - "syd": 377, - "ams": 77, - "iad": 189, - "gru": 356, - "hkg": 310 - }, - { - "timestamp": "Feb 15, 04:00", - "iad": 167, - "ams": 70, - "jnb": 584, - "syd": 502, - "gru": 327, - "hkg": 320 - }, - { - "timestamp": "Feb 15, 05:00", - "hkg": 364, - "gru": 287, - "syd": 346, - "jnb": 558, - "ams": 76, - "iad": 180 - }, - { - "timestamp": "Feb 15, 06:00", - "hkg": 410, - "ams": 72, - "iad": 220, - "syd": 344, - "jnb": 609, - "gru": 307 - }, - { - "timestamp": "Feb 15, 07:00", - "iad": 151, - "ams": 91, - "jnb": 554, - "syd": 614, - "gru": 492, - "hkg": 382 - }, - { - "timestamp": "Feb 15, 08:00", - "gru": 368, - "ams": 85, - "iad": 172, - "jnb": 578, - "syd": 382, - "hkg": 324 - }, - { - "timestamp": "Feb 15, 09:00", - "gru": 588, - "ams": 85, - "iad": 177, - "syd": 440, - "jnb": 565, - "hkg": 387 - }, - { - "timestamp": "Feb 15, 10:00", - "syd": 463, - "jnb": 598, - "ams": 95, - "iad": 153, - "gru": 304, - "hkg": 374 - }, - { - "timestamp": "Feb 15, 11:00", - "hkg": 384, - "jnb": 608, - "syd": 435, - "iad": 218, - "ams": 90, - "gru": 406 - }, - { - "timestamp": "Feb 15, 12:00", - "hkg": 358, - "ams": 105, - "iad": 185, - "jnb": 570, - "syd": 373, - "gru": 348 - }, - { - "timestamp": "Feb 15, 13:00", - "hkg": 287, - "gru": 366, - "jnb": 618, - "syd": 414, - "iad": 152, - "ams": 85 - }, - { - "timestamp": "Feb 15, 14:00", - "hkg": 321, - "gru": 289, - "jnb": 600, - "syd": 480, - "ams": 84, - "iad": 165 - }, - { - "timestamp": "Feb 15, 15:00", - "hkg": 369, - "syd": 467, - "jnb": 576, - "iad": 205, - "ams": 91, - "gru": 299 - }, - { - "timestamp": "Feb 15, 16:00", - "syd": 572, - "jnb": 770, - "ams": 94, - "iad": 264, - "gru": 378, - "hkg": 480 - }, - { - "timestamp": "Feb 17, 10:00", - "hkg": 31423, - "iad": 31244, - "ams": 31251, - "syd": 31331, - "jnb": 31573, - "gru": 31387 - }, - { - "timestamp": "Feb 17, 11:00", - "gru": 375, - "jnb": 565, - "syd": 464, - "ams": 108, - "iad": 192, - "hkg": 363 - }, - { - "timestamp": "Feb 17, 12:00", - "syd": 441, - "jnb": 586, - "ams": 80, - "iad": 154, - "gru": 321, - "hkg": 398 - }, - { - "timestamp": "Feb 17, 13:00", - "jnb": 565, - "syd": 368, - "ams": 89, - "iad": 192, - "gru": 381, - "hkg": 266 - }, - { - "timestamp": "Feb 17, 14:00", - "hkg": 297, - "syd": 375, - "jnb": 575, - "ams": 81, - "iad": 153, - "gru": 345 - }, - { - "timestamp": "Feb 17, 15:00", - "hkg": 325, - "gru": 380, - "iad": 220, - "ams": 78, - "syd": 347, - "jnb": 594 - }, - { - "timestamp": "Feb 17, 16:00", - "hkg": 328, - "jnb": 608, - "syd": 487, - "iad": 183, - "ams": 83, - "gru": 292 - }, - { - "timestamp": "Feb 17, 17:00", - "hkg": 290, - "gru": 371, - "syd": 465, - "jnb": 574, - "ams": 95, - "iad": 163 - }, - { - "timestamp": "Feb 17, 18:00", - "gru": 285, - "syd": 420, - "jnb": 578, - "iad": 182, - "ams": 106, - "hkg": 403 - }, - { - "timestamp": "Feb 17, 19:00", - "jnb": 647, - "syd": 310, - "ams": 111, - "iad": 159, - "gru": 296, - "hkg": 306 - }, - { - "timestamp": "Feb 17, 20:00", - "hkg": 364, - "iad": 161, - "ams": 85, - "syd": 482, - "jnb": 644, - "gru": 292 - }, - { - "timestamp": "Feb 17, 21:00", - "hkg": 341, - "gru": 404, - "syd": 438, - "jnb": 562, - "ams": 85, - "iad": 160 - }, - { - "timestamp": "Feb 17, 22:00", - "hkg": 312, - "gru": 354, - "iad": 160, - "ams": 81, - "syd": 447, - "jnb": 587 - }, - { - "timestamp": "Feb 17, 23:00", - "gru": 376, - "ams": 79, - "iad": 156, - "jnb": 584, - "syd": 452, - "hkg": 504 - }, - { - "timestamp": "Feb 18, 00:00", - "jnb": 628, - "syd": 495, - "ams": 76, - "iad": 161, - "gru": 310, - "hkg": 401 - }, - { - "timestamp": "Feb 18, 01:00", - "syd": 481, - "jnb": 589, - "ams": 78, - "iad": 188, - "gru": 365, - "hkg": 297 - }, - { - "timestamp": "Feb 18, 02:00", - "gru": 437, - "syd": 519, - "jnb": 558, - "iad": 154, - "ams": 74, - "hkg": 363 - }, - { - "timestamp": "Feb 18, 03:00", - "hkg": 289, - "gru": 393, - "jnb": 608, - "syd": 460, - "ams": 77, - "iad": 150 - }, - { - "timestamp": "Feb 18, 04:00", - "hkg": 302, - "ams": 74, - "iad": 152, - "jnb": 566, - "syd": 370, - "gru": 323 - }, - { - "timestamp": "Feb 18, 05:00", - "gru": 361, - "syd": 335, - "jnb": 582, - "iad": 186, - "ams": 76, - "hkg": 338 - }, - { - "timestamp": "Feb 18, 06:00", - "gru": 485, - "ams": 80, - "iad": 185, - "syd": 444, - "jnb": 554, - "hkg": 320 - }, - { - "timestamp": "Feb 18, 07:00", - "iad": 150, - "ams": 83, - "jnb": 563, - "syd": 346, - "gru": 410, - "hkg": 423 - }, - { - "timestamp": "Feb 18, 08:00", - "hkg": 303, - "jnb": 559, - "syd": 416, - "iad": 147, - "ams": 94, - "gru": 365 - }, - { - "timestamp": "Feb 18, 09:00", - "gru": 310, - "ams": 84, - "iad": 149, - "syd": 449, - "jnb": 564, - "hkg": 402 - }, - { - "timestamp": "Feb 18, 10:00", - "syd": 508, - "jnb": 570, - "iad": 177, - "ams": 97, - "gru": 317, - "hkg": 380 - }, - { - "timestamp": "Feb 18, 11:00", - "gru": 2272, - "jnb": 2497, - "syd": 2356, - "ams": 2135, - "iad": 2157, - "hkg": 2367 - }, - { - "timestamp": "Feb 18, 12:00", - "hkg": 317, - "gru": 504, - "ams": 117, - "iad": 151, - "jnb": 621, - "syd": 330 - }, - { - "timestamp": "Feb 18, 13:00", - "hkg": 20398, - "jnb": 20505, - "syd": 20479, - "iad": 20369, - "ams": 20298, - "gru": 20304 - }, - { - "timestamp": "Feb 18, 14:00", - "hkg": 321, - "ams": 101, - "iad": 181, - "jnb": 603, - "syd": 373, - "gru": 312 - }, - { - "timestamp": "Feb 18, 15:00", - "hkg": 321, - "syd": 578, - "jnb": 587, - "ams": 97, - "iad": 150, - "gru": 491 - }, - { - "timestamp": "Feb 18, 16:00", - "hkg": 314, - "gru": 313, - "ams": 101, - "iad": 181, - "syd": 441, - "jnb": 577 - }, - { - "timestamp": "Feb 18, 17:00", - "jnb": 589, - "syd": 364, - "ams": 95, - "iad": 158, - "gru": 468, - "hkg": 439 - }, - { - "timestamp": "Feb 18, 18:00", - "gru": 285, - "jnb": 588, - "syd": 698, - "iad": 206, - "ams": 104, - "hkg": 394 - } - ] - }, - "metricsByRegion": [ - { - "region": "syd", - "avgLatency": 949, - "p75Latency": 433, - "p90Latency": 828, - "p95Latency": 945, - "p99Latency": 16696 - }, - { - "region": "gru", - "avgLatency": 873, - "p75Latency": 370, - "p90Latency": 663, - "p95Latency": 753, - "p99Latency": 15979 - }, - { - "region": "iad", - "avgLatency": 690, - "p75Latency": 165, - "p90Latency": 312, - "p95Latency": 343, - "p99Latency": 16552 - }, - { - "region": "ams", - "avgLatency": 607, - "p75Latency": 95, - "p90Latency": 111, - "p95Latency": 127, - "p99Latency": 16675 - }, - { - "region": "hkg", - "avgLatency": 866, - "p75Latency": 384, - "p90Latency": 655, - "p95Latency": 746, - "p99Latency": 16681 - }, - { - "region": "jnb", - "avgLatency": 1096, - "p75Latency": 587, - "p90Latency": 706, - "p95Latency": 730, - "p99Latency": 16295 - } - ] -} \ No newline at end of file + "regions": ["ams", "iad", "hkg", "jnb", "syd", "gru"], + "data": { + "regions": ["ams", "gru", "hkg", "iad", "jnb", "syd"], + "data": [ + { + "timestamp": "Feb 4, 00:00", + "ams": 80, + "iad": 277, + "syd": 515, + "jnb": 579, + "gru": 393, + "hkg": 408 + }, + { + "timestamp": "Feb 4, 01:00", + "ams": 109, + "iad": 162, + "syd": 598, + "jnb": 592, + "gru": 326, + "hkg": 340 + }, + { + "timestamp": "Feb 4, 02:00", + "hkg": 303, + "ams": 89, + "iad": 216, + "jnb": 567, + "syd": 445, + "gru": 442 + }, + { + "timestamp": "Feb 4, 03:00", + "hkg": 379, + "jnb": 591, + "syd": 521, + "ams": 86, + "iad": 276, + "gru": 307 + }, + { + "timestamp": "Feb 4, 04:00", + "hkg": 278, + "gru": 390, + "syd": 417, + "jnb": 560, + "ams": 84, + "iad": 218 + }, + { + "timestamp": "Feb 4, 05:00", + "gru": 352, + "syd": 443, + "jnb": 591, + "ams": 80, + "iad": 183, + "hkg": 384 + }, + { + "timestamp": "Feb 4, 06:00", + "jnb": 558, + "syd": 532, + "ams": 83, + "iad": 152, + "gru": 416, + "hkg": 374 + }, + { + "timestamp": "Feb 4, 07:00", + "hkg": 371, + "jnb": 583, + "syd": 508, + "ams": 79, + "iad": 214, + "gru": 348 + }, + { + "timestamp": "Feb 4, 08:00", + "hkg": 364, + "gru": 283, + "syd": 386, + "jnb": 561, + "ams": 89, + "iad": 173 + }, + { + "timestamp": "Feb 4, 09:00", + "hkg": 345, + "iad": 158, + "ams": 98, + "jnb": 590, + "syd": 596, + "gru": 354 + }, + { + "timestamp": "Feb 4, 10:00", + "hkg": 365, + "gru": 270, + "jnb": 608, + "syd": 443, + "iad": 176, + "ams": 84 + }, + { + "timestamp": "Feb 4, 11:00", + "gru": 389, + "syd": 412, + "jnb": 606, + "ams": 92, + "iad": 217, + "hkg": 431 + }, + { + "timestamp": "Feb 4, 12:00", + "gru": 372, + "iad": 236, + "ams": 103, + "syd": 574, + "jnb": 571, + "hkg": 323 + }, + { + "timestamp": "Feb 4, 13:00", + "syd": 504, + "jnb": 640, + "ams": 105, + "iad": 250, + "gru": 374, + "hkg": 303 + }, + { + "timestamp": "Feb 4, 14:00", + "hkg": 350, + "gru": 296, + "ams": 110, + "iad": 148, + "jnb": 570, + "syd": 392 + }, + { + "timestamp": "Feb 4, 15:00", + "hkg": 329, + "iad": 278, + "ams": 126, + "syd": 483, + "jnb": 588, + "gru": 287 + }, + { + "timestamp": "Feb 4, 16:00", + "ams": 118, + "iad": 180, + "syd": 407, + "jnb": 576, + "gru": 346, + "hkg": 332 + }, + { + "timestamp": "Feb 4, 17:00", + "jnb": 712, + "syd": 434, + "ams": 174, + "iad": 182, + "gru": 378, + "hkg": 306 + }, + { + "timestamp": "Feb 4, 18:00", + "gru": 410, + "jnb": 610, + "syd": 442, + "ams": 116, + "iad": 250, + "hkg": 380 + }, + { + "timestamp": "Feb 4, 19:00", + "syd": 430, + "jnb": 623, + "iad": 162, + "ams": 230, + "gru": 300, + "hkg": 330 + }, + { + "timestamp": "Feb 4, 20:00", + "ams": 102, + "iad": 209, + "syd": 441, + "jnb": 611, + "gru": 278, + "hkg": 368 + }, + { + "timestamp": "Feb 4, 21:00", + "hkg": 313, + "syd": 404, + "jnb": 613, + "iad": 234, + "ams": 89, + "gru": 385 + }, + { + "timestamp": "Feb 4, 22:00", + "hkg": 444, + "gru": 415, + "iad": 215, + "ams": 189, + "syd": 431, + "jnb": 575 + }, + { + "timestamp": "Feb 4, 23:00", + "jnb": 582, + "syd": 426, + "iad": 214, + "ams": 97, + "gru": 360, + "hkg": 270 + }, + { + "timestamp": "Feb 5, 00:00", + "gru": 309, + "jnb": 585, + "syd": 524, + "ams": 92, + "iad": 223, + "hkg": 393 + }, + { + "timestamp": "Feb 5, 01:00", + "gru": 284, + "iad": 185, + "ams": 86, + "syd": 536, + "jnb": 561, + "hkg": 273 + }, + { + "timestamp": "Feb 5, 02:00", + "syd": 439, + "jnb": 558, + "iad": 170, + "ams": 81, + "gru": 310, + "hkg": 324 + }, + { + "timestamp": "Feb 5, 03:00", + "gru": 354, + "ams": 78, + "iad": 185, + "jnb": 581, + "syd": 452, + "hkg": 334 + }, + { + "timestamp": "Feb 5, 04:00", + "gru": 308, + "jnb": 595, + "syd": 510, + "iad": 214, + "ams": 108, + "hkg": 325 + }, + { + "timestamp": "Feb 5, 05:00", + "ams": 82, + "iad": 268, + "jnb": 564, + "syd": 513, + "gru": 356, + "hkg": 387 + }, + { + "timestamp": "Feb 5, 06:00", + "hkg": 299, + "jnb": 568, + "syd": 539, + "ams": 80, + "iad": 227, + "gru": 274 + }, + { + "timestamp": "Feb 5, 07:00", + "hkg": 324, + "gru": 439, + "syd": 480, + "jnb": 567, + "iad": 148, + "ams": 82 + }, + { + "timestamp": "Feb 5, 08:00", + "jnb": 568, + "syd": 528, + "ams": 84, + "iad": 174, + "gru": 380, + "hkg": 333 + }, + { + "timestamp": "Feb 5, 09:00", + "ams": 85, + "iad": 227, + "syd": 612, + "jnb": 618, + "gru": 346, + "hkg": 405 + }, + { + "timestamp": "Feb 5, 10:00", + "hkg": 360, + "syd": 541, + "jnb": 564, + "ams": 86, + "iad": 177, + "gru": 352 + }, + { + "timestamp": "Feb 5, 11:00", + "hkg": 417, + "gru": 435, + "jnb": 583, + "syd": 468, + "iad": 178, + "ams": 102 + }, + { + "timestamp": "Feb 5, 12:00", + "hkg": 300, + "gru": 358, + "ams": 105, + "iad": 207, + "jnb": 564, + "syd": 427 + }, + { + "timestamp": "Feb 5, 13:00", + "hkg": 370, + "iad": 188, + "ams": 114, + "jnb": 602, + "syd": 420, + "gru": 292 + }, + { + "timestamp": "Feb 5, 14:00", + "hkg": 375, + "gru": 439, + "jnb": 580, + "syd": 590, + "iad": 156, + "ams": 91 + }, + { + "timestamp": "Feb 5, 15:00", + "gru": 374, + "syd": 570, + "jnb": 587, + "ams": 104, + "iad": 223, + "hkg": 315 + }, + { + "timestamp": "Feb 5, 16:00", + "syd": 421, + "jnb": 603, + "iad": 203, + "ams": 94, + "gru": 299, + "hkg": 305 + }, + { + "timestamp": "Feb 5, 17:00", + "hkg": 306, + "syd": 495, + "jnb": 639, + "iad": 260, + "ams": 106, + "gru": 436 + }, + { + "timestamp": "Feb 5, 18:00", + "hkg": 374, + "gru": 294, + "jnb": 570, + "syd": 496, + "iad": 228, + "ams": 92 + }, + { + "timestamp": "Feb 5, 19:00", + "gru": 356, + "ams": 114, + "iad": 172, + "jnb": 577, + "syd": 412, + "hkg": 367 + }, + { + "timestamp": "Feb 5, 20:00", + "ams": 101, + "iad": 261, + "syd": 438, + "jnb": 623, + "gru": 411, + "hkg": 275 + }, + { + "timestamp": "Feb 5, 21:00", + "ams": 96, + "iad": 244, + "jnb": 596, + "syd": 610, + "gru": 317, + "hkg": 301 + }, + { + "timestamp": "Feb 5, 22:00", + "gru": 369, + "syd": 466, + "jnb": 616, + "ams": 89, + "iad": 188, + "hkg": 388 + }, + { + "timestamp": "Feb 5, 23:00", + "iad": 175, + "ams": 86, + "syd": 541, + "jnb": 735, + "gru": 376, + "hkg": 291 + }, + { + "timestamp": "Feb 6, 00:00", + "hkg": 302, + "iad": 220, + "ams": 90, + "jnb": 572, + "syd": 429, + "gru": 306 + }, + { + "timestamp": "Feb 6, 01:00", + "hkg": 286, + "jnb": 596, + "syd": 443, + "ams": 92, + "iad": 240, + "gru": 360 + }, + { + "timestamp": "Feb 6, 02:00", + "gru": 389, + "jnb": 568, + "syd": 443, + "ams": 82, + "iad": 271, + "hkg": 304 + }, + { + "timestamp": "Feb 6, 03:00", + "iad": 167, + "ams": 84, + "jnb": 582, + "syd": 506, + "gru": 344, + "hkg": 407 + }, + { + "timestamp": "Feb 6, 04:00", + "hkg": 331, + "iad": 203, + "ams": 79, + "syd": 552, + "jnb": 563, + "gru": 300 + }, + { + "timestamp": "Feb 6, 05:00", + "hkg": 481, + "iad": 242, + "ams": 78, + "jnb": 610, + "syd": 446, + "gru": 297 + }, + { + "timestamp": "Feb 6, 06:00", + "hkg": 292, + "gru": 319, + "iad": 149, + "ams": 78, + "syd": 446, + "jnb": 554 + }, + { + "timestamp": "Feb 6, 07:00", + "hkg": 286, + "ams": 80, + "iad": 185, + "syd": 458, + "jnb": 586, + "gru": 279 + }, + { + "timestamp": "Feb 6, 08:00", + "hkg": 322, + "gru": 326, + "ams": 95, + "iad": 237, + "jnb": 582, + "syd": 530 + }, + { + "timestamp": "Feb 6, 09:00", + "hkg": 290, + "gru": 306, + "jnb": 570, + "syd": 456, + "ams": 97, + "iad": 181 + }, + { + "timestamp": "Feb 6, 10:00", + "hkg": 360, + "syd": 516, + "jnb": 575, + "ams": 130, + "iad": 214, + "gru": 280 + }, + { + "timestamp": "Feb 6, 11:00", + "hkg": 283, + "syd": 400, + "jnb": 566, + "ams": 108, + "iad": 202, + "gru": 332 + }, + { + "timestamp": "Feb 6, 12:00", + "hkg": 450, + "gru": 335, + "jnb": 574, + "syd": 426, + "ams": 101, + "iad": 207 + }, + { + "timestamp": "Feb 6, 13:00", + "hkg": 396, + "gru": 362, + "syd": 522, + "jnb": 568, + "ams": 98, + "iad": 197 + }, + { + "timestamp": "Feb 6, 14:00", + "gru": 426, + "jnb": 571, + "syd": 422, + "ams": 97, + "iad": 216, + "hkg": 364 + }, + { + "timestamp": "Feb 6, 15:00", + "iad": 277, + "ams": 112, + "jnb": 578, + "syd": 524, + "gru": 320, + "hkg": 401 + }, + { + "timestamp": "Feb 6, 16:00", + "gru": 574, + "syd": 424, + "jnb": 600, + "iad": 258, + "ams": 106, + "hkg": 586 + }, + { + "timestamp": "Feb 6, 17:00", + "gru": 429, + "ams": 125, + "iad": 249, + "syd": 416, + "jnb": 615, + "hkg": 310 + }, + { + "timestamp": "Feb 6, 18:00", + "hkg": 300, + "gru": 356, + "ams": 148, + "iad": 242, + "jnb": 596, + "syd": 528 + }, + { + "timestamp": "Feb 6, 19:00", + "hkg": 287, + "jnb": 590, + "syd": 416, + "iad": 206, + "ams": 111, + "gru": 282 + }, + { + "timestamp": "Feb 6, 20:00", + "gru": 364, + "jnb": 584, + "syd": 538, + "iad": 189, + "ams": 116, + "hkg": 319 + }, + { + "timestamp": "Feb 6, 21:00", + "gru": 314, + "syd": 407, + "jnb": 595, + "iad": 182, + "ams": 115, + "hkg": 359 + }, + { + "timestamp": "Feb 6, 22:00", + "jnb": 604, + "syd": 444, + "iad": 263, + "ams": 115, + "gru": 450, + "hkg": 276 + }, + { + "timestamp": "Feb 6, 23:00", + "hkg": 459, + "ams": 90, + "iad": 216, + "jnb": 603, + "syd": 455, + "gru": 371 + }, + { + "timestamp": "Feb 7, 00:00", + "hkg": 288, + "gru": 335, + "ams": 82, + "iad": 254, + "syd": 618, + "jnb": 567 + }, + { + "timestamp": "Feb 7, 01:00", + "hkg": 316, + "jnb": 603, + "syd": 429, + "iad": 150, + "ams": 84, + "gru": 571 + }, + { + "timestamp": "Feb 7, 02:00", + "hkg": 3871, + "gru": 3649, + "jnb": 3905, + "syd": 3757, + "ams": 3588, + "iad": 3716 + }, + { + "timestamp": "Feb 7, 03:00", + "gru": 371, + "syd": 411, + "jnb": 595, + "iad": 221, + "ams": 84, + "hkg": 369 + }, + { + "timestamp": "Feb 7, 04:00", + "iad": 228, + "ams": 83, + "syd": 440, + "jnb": 598, + "gru": 320, + "hkg": 404 + }, + { + "timestamp": "Feb 7, 05:00", + "hkg": 5563, + "jnb": 5587, + "syd": 5626, + "iad": 5454, + "ams": 5370, + "gru": 5528 + }, + { + "timestamp": "Feb 7, 06:00", + "hkg": 466, + "ams": 81, + "iad": 206, + "jnb": 553, + "syd": 616, + "gru": 338 + }, + { + "timestamp": "Feb 7, 07:00", + "hkg": 441, + "gru": 389, + "iad": 238, + "ams": 88, + "syd": 430, + "jnb": 620 + }, + { + "timestamp": "Feb 7, 08:00", + "gru": 314, + "syd": 608, + "jnb": 572, + "iad": 204, + "ams": 86, + "hkg": 459 + }, + { + "timestamp": "Feb 7, 09:00", + "gru": 401, + "iad": 202, + "ams": 101, + "jnb": 561, + "syd": 406, + "hkg": 488 + }, + { + "timestamp": "Feb 7, 10:00", + "jnb": 631, + "syd": 504, + "ams": 99, + "iad": 248, + "gru": 301, + "hkg": 324 + }, + { + "timestamp": "Feb 7, 11:00", + "gru": 307, + "syd": 477, + "jnb": 608, + "iad": 216, + "ams": 249, + "hkg": 530 + }, + { + "timestamp": "Feb 7, 12:00", + "hkg": 309, + "gru": 335, + "iad": 180, + "ams": 92, + "syd": 856, + "jnb": 567 + }, + { + "timestamp": "Feb 7, 13:00", + "hkg": 346, + "syd": 527, + "jnb": 572, + "ams": 82, + "iad": 296, + "gru": 348 + }, + { + "timestamp": "Feb 7, 14:00", + "hkg": 300, + "iad": 262, + "ams": 107, + "syd": 536, + "jnb": 616, + "gru": 453 + }, + { + "timestamp": "Feb 7, 15:00", + "gru": 432, + "ams": 99, + "iad": 222, + "syd": 500, + "jnb": 593, + "hkg": 347 + }, + { + "timestamp": "Feb 7, 16:00", + "syd": 433, + "jnb": 595, + "ams": 91, + "iad": 289, + "gru": 295, + "hkg": 382 + }, + { + "timestamp": "Feb 7, 17:00", + "iad": 204, + "ams": 117, + "jnb": 591, + "syd": 437, + "gru": 399, + "hkg": 285 + }, + { + "timestamp": "Feb 7, 18:00", + "gru": 324, + "ams": 138, + "iad": 224, + "jnb": 584, + "syd": 525, + "hkg": 338 + }, + { + "timestamp": "Feb 7, 19:00", + "syd": 508, + "jnb": 594, + "iad": 252, + "ams": 114, + "gru": 452, + "hkg": 302 + }, + { + "timestamp": "Feb 7, 20:00", + "gru": 371, + "iad": 290, + "ams": 112, + "syd": 445, + "jnb": 614, + "hkg": 284 + }, + { + "timestamp": "Feb 7, 21:00", + "hkg": 366, + "gru": 367, + "syd": 614, + "jnb": 603, + "ams": 96, + "iad": 202 + }, + { + "timestamp": "Feb 7, 22:00", + "hkg": 342, + "gru": 375, + "iad": 260, + "ams": 104, + "syd": 430, + "jnb": 707 + }, + { + "timestamp": "Feb 7, 23:00", + "hkg": 341, + "ams": 85, + "iad": 225, + "jnb": 616, + "syd": 444, + "gru": 422 + }, + { + "timestamp": "Feb 8, 00:00", + "hkg": 302, + "syd": 442, + "jnb": 592, + "ams": 92, + "iad": 245, + "gru": 313 + }, + { + "timestamp": "Feb 8, 01:00", + "hkg": 383, + "ams": 176, + "iad": 267, + "jnb": 678, + "syd": 455, + "gru": 398 + }, + { + "timestamp": "Feb 8, 02:00", + "iad": 1828, + "ams": 1791, + "jnb": 2230, + "syd": 2200, + "gru": 2043, + "hkg": 2009 + }, + { + "timestamp": "Feb 8, 03:00", + "gru": 300, + "ams": 110, + "iad": 279, + "syd": 399, + "jnb": 589, + "hkg": 421 + }, + { + "timestamp": "Feb 8, 04:00", + "ams": 79, + "iad": 190, + "syd": 430, + "jnb": 574, + "gru": 362, + "hkg": 310 + }, + { + "timestamp": "Feb 8, 05:00", + "gru": 408, + "syd": 409, + "jnb": 588, + "iad": 266, + "ams": 77, + "hkg": 368 + }, + { + "timestamp": "Feb 8, 06:00", + "gru": 288, + "ams": 78, + "iad": 195, + "syd": 2958, + "jnb": 3148, + "hkg": 2840 + }, + { + "timestamp": "Feb 8, 07:00", + "hkg": 324, + "gru": 356, + "iad": 246, + "ams": 84, + "jnb": 589, + "syd": 507 + }, + { + "timestamp": "Feb 8, 08:00", + "hkg": 383, + "jnb": 565, + "syd": 423, + "iad": 274, + "ams": 86, + "gru": 320 + }, + { + "timestamp": "Feb 8, 09:00", + "gru": 374, + "jnb": 574, + "syd": 430, + "ams": 83, + "iad": 236, + "hkg": 344 + }, + { + "timestamp": "Feb 8, 10:00", + "syd": 566, + "jnb": 572, + "ams": 101, + "iad": 254, + "gru": 366, + "hkg": 294 + }, + { + "timestamp": "Feb 8, 11:00", + "hkg": 338, + "syd": 460, + "jnb": 570, + "ams": 88, + "iad": 251, + "gru": 363 + }, + { + "timestamp": "Feb 8, 12:00", + "hkg": 285, + "gru": 275, + "jnb": 594, + "syd": 478, + "ams": 89, + "iad": 205 + }, + { + "timestamp": "Feb 8, 13:00", + "hkg": 312, + "iad": 268, + "ams": 84, + "syd": 526, + "jnb": 626, + "gru": 293 + }, + { + "timestamp": "Feb 8, 14:00", + "hkg": 321, + "gru": 399, + "iad": 204, + "ams": 116, + "jnb": 600, + "syd": 604 + }, + { + "timestamp": "Feb 8, 15:00", + "hkg": 322, + "gru": 318, + "jnb": 577, + "syd": 438, + "iad": 270, + "ams": 102 + }, + { + "timestamp": "Feb 8, 16:00", + "gru": 318, + "syd": 434, + "jnb": 596, + "iad": 251, + "ams": 110, + "hkg": 310 + }, + { + "timestamp": "Feb 8, 17:00", + "gru": 404, + "syd": 376, + "jnb": 602, + "iad": 201, + "ams": 94, + "hkg": 396 + }, + { + "timestamp": "Feb 8, 18:00", + "hkg": 344, + "gru": 313, + "syd": 442, + "jnb": 573, + "ams": 119, + "iad": 284 + }, + { + "timestamp": "Feb 8, 19:00", + "hkg": 426, + "syd": 431, + "jnb": 572, + "ams": 108, + "iad": 219, + "gru": 305 + }, + { + "timestamp": "Feb 8, 20:00", + "jnb": 591, + "syd": 478, + "ams": 102, + "iad": 210, + "gru": 360, + "hkg": 294 + }, + { + "timestamp": "Feb 8, 21:00", + "gru": 335, + "syd": 466, + "jnb": 595, + "iad": 250, + "ams": 104, + "hkg": 298 + }, + { + "timestamp": "Feb 8, 22:00", + "iad": 285, + "ams": 93, + "jnb": 574, + "syd": 354, + "gru": 390, + "hkg": 441 + }, + { + "timestamp": "Feb 8, 23:00", + "jnb": 557, + "syd": 414, + "iad": 246, + "ams": 99, + "gru": 334, + "hkg": 374 + }, + { + "timestamp": "Feb 9, 00:00", + "gru": 340, + "syd": 312, + "jnb": 593, + "iad": 314, + "ams": 88, + "hkg": 291 + }, + { + "timestamp": "Feb 9, 01:00", + "gru": 292, + "syd": 351, + "jnb": 558, + "ams": 79, + "iad": 221, + "hkg": 360 + }, + { + "timestamp": "Feb 9, 02:00", + "jnb": 560, + "syd": 355, + "ams": 90, + "iad": 220, + "gru": 410, + "hkg": 288 + }, + { + "timestamp": "Feb 9, 03:00", + "hkg": 284, + "gru": 363, + "syd": 368, + "jnb": 555, + "ams": 85, + "iad": 290 + }, + { + "timestamp": "Feb 9, 04:00", + "hkg": 457, + "jnb": 609, + "syd": 356, + "ams": 79, + "iad": 226, + "gru": 390 + }, + { + "timestamp": "Feb 9, 05:00", + "syd": 342, + "jnb": 583, + "iad": 216, + "ams": 86, + "gru": 384, + "hkg": 293 + }, + { + "timestamp": "Feb 9, 06:00", + "gru": 286, + "jnb": 562, + "syd": 383, + "iad": 181, + "ams": 72, + "hkg": 387 + }, + { + "timestamp": "Feb 9, 07:00", + "gru": 372, + "iad": 207, + "ams": 89, + "jnb": 582, + "syd": 417, + "hkg": 318 + }, + { + "timestamp": "Feb 9, 08:00", + "syd": 472, + "jnb": 559, + "iad": 200, + "ams": 91, + "gru": 334, + "hkg": 340 + }, + { + "timestamp": "Feb 9, 09:00", + "syd": 464, + "jnb": 560, + "iad": 280, + "ams": 83, + "gru": 333, + "hkg": 352 + }, + { + "timestamp": "Feb 9, 10:00", + "hkg": 320, + "jnb": 557, + "syd": 346, + "iad": 245, + "ams": 80, + "gru": 411 + }, + { + "timestamp": "Feb 9, 11:00", + "hkg": 309, + "gru": 357, + "jnb": 564, + "syd": 374, + "iad": 187, + "ams": 97 + }, + { + "timestamp": "Feb 9, 12:00", + "hkg": 386, + "gru": 338, + "ams": 83, + "iad": 149, + "syd": 396, + "jnb": 654 + }, + { + "timestamp": "Feb 9, 13:00", + "hkg": 388, + "iad": 246, + "ams": 82, + "jnb": 639, + "syd": 431, + "gru": 358 + }, + { + "timestamp": "Feb 9, 14:00", + "iad": 218, + "ams": 102, + "syd": 378, + "jnb": 621, + "gru": 313, + "hkg": 387 + }, + { + "timestamp": "Feb 9, 15:00", + "syd": 379, + "jnb": 595, + "iad": 224, + "ams": 92, + "gru": 332, + "hkg": 304 + }, + { + "timestamp": "Feb 9, 16:00", + "gru": 268, + "jnb": 632, + "syd": 491, + "iad": 253, + "ams": 86, + "hkg": 299 + }, + { + "timestamp": "Feb 9, 17:00", + "ams": 92, + "iad": 275, + "syd": 394, + "jnb": 599, + "gru": 261, + "hkg": 462 + }, + { + "timestamp": "Feb 9, 18:00", + "gru": 330, + "syd": 366, + "jnb": 622, + "ams": 90, + "iad": 214, + "hkg": 386 + }, + { + "timestamp": "Feb 9, 19:00", + "hkg": 350, + "gru": 366, + "jnb": 657, + "syd": 352, + "iad": 248, + "ams": 91 + }, + { + "timestamp": "Feb 9, 20:00", + "hkg": 420, + "jnb": 572, + "syd": 335, + "ams": 89, + "iad": 324, + "gru": 362 + }, + { + "timestamp": "Feb 9, 21:00", + "gru": 348, + "iad": 196, + "ams": 101, + "syd": 433, + "jnb": 574, + "hkg": 452 + }, + { + "timestamp": "Feb 9, 22:00", + "syd": 311, + "jnb": 571, + "iad": 232, + "ams": 73, + "gru": 311, + "hkg": 384 + }, + { + "timestamp": "Feb 9, 23:00", + "hkg": 393, + "jnb": 579, + "syd": 334, + "ams": 83, + "iad": 185, + "gru": 280 + }, + { + "timestamp": "Feb 10, 00:00", + "hkg": 338, + "iad": 280, + "ams": 80, + "jnb": 566, + "syd": 451, + "gru": 424 + }, + { + "timestamp": "Feb 10, 01:00", + "hkg": 284, + "syd": 431, + "jnb": 560, + "iad": 209, + "ams": 76, + "gru": 291 + }, + { + "timestamp": "Feb 10, 02:00", + "hkg": 2876, + "gru": 5579, + "syd": 371, + "jnb": 3130, + "iad": 215, + "ams": 75 + }, + { + "timestamp": "Feb 10, 03:00", + "hkg": 424, + "jnb": 559, + "syd": 329, + "ams": 74, + "iad": 152, + "gru": 650 + }, + { + "timestamp": "Feb 10, 04:00", + "jnb": 609, + "syd": 372, + "iad": 185, + "ams": 78, + "gru": 295, + "hkg": 284 + }, + { + "timestamp": "Feb 10, 05:00", + "gru": 417, + "ams": 76, + "iad": 161, + "jnb": 605, + "syd": 578, + "hkg": 349 + }, + { + "timestamp": "Feb 10, 06:00", + "hkg": 330, + "gru": 312, + "syd": 449, + "jnb": 602, + "iad": 182, + "ams": 76 + }, + { + "timestamp": "Feb 10, 07:00", + "hkg": 352, + "jnb": 593, + "syd": 330, + "ams": 70, + "iad": 158, + "gru": 303 + }, + { + "timestamp": "Feb 10, 08:00", + "hkg": 368, + "iad": 166, + "ams": 77, + "jnb": 558, + "syd": 520, + "gru": 332 + }, + { + "timestamp": "Feb 10, 09:00", + "hkg": 373, + "syd": 389, + "jnb": 587, + "ams": 76, + "iad": 181, + "gru": 421 + }, + { + "timestamp": "Feb 10, 10:00", + "hkg": 366, + "gru": 322, + "ams": 86, + "iad": 176, + "syd": 408, + "jnb": 562 + }, + { + "timestamp": "Feb 10, 11:00", + "hkg": 350, + "jnb": 563, + "syd": 348, + "iad": 184, + "ams": 80, + "gru": 357 + }, + { + "timestamp": "Feb 10, 12:00", + "hkg": 394, + "gru": 414, + "jnb": 608, + "syd": 472, + "ams": 83, + "iad": 153 + }, + { + "timestamp": "Feb 10, 13:00", + "gru": 307, + "iad": 152, + "ams": 91, + "jnb": 634, + "syd": 435, + "hkg": 299 + }, + { + "timestamp": "Feb 10, 14:00", + "jnb": 569, + "syd": 364, + "iad": 214, + "ams": 85, + "gru": 328, + "hkg": 374 + }, + { + "timestamp": "Feb 10, 15:00", + "hkg": 396, + "gru": 288, + "jnb": 581, + "syd": 372, + "ams": 76, + "iad": 180 + }, + { + "timestamp": "Feb 10, 16:00", + "hkg": 308, + "gru": 311, + "iad": 159, + "ams": 86, + "jnb": 578, + "syd": 408 + }, + { + "timestamp": "Feb 10, 17:00", + "hkg": 405, + "gru": 260, + "syd": 445, + "jnb": 573, + "iad": 164, + "ams": 91 + }, + { + "timestamp": "Feb 10, 18:00", + "gru": 312, + "iad": 226, + "ams": 100, + "syd": 325, + "jnb": 578, + "hkg": 311 + }, + { + "timestamp": "Feb 10, 19:00", + "ams": 93, + "iad": 155, + "jnb": 591, + "syd": 548, + "gru": 419, + "hkg": 289 + }, + { + "timestamp": "Feb 10, 20:00", + "gru": 290, + "jnb": 621, + "syd": 368, + "iad": 193, + "ams": 93, + "hkg": 276 + }, + { + "timestamp": "Feb 10, 21:00", + "ams": 88, + "iad": 186, + "jnb": 570, + "syd": 355, + "gru": 380, + "hkg": 429 + }, + { + "timestamp": "Feb 10, 22:00", + "hkg": 453, + "jnb": 558, + "syd": 526, + "ams": 78, + "iad": 189, + "gru": 402 + }, + { + "timestamp": "Feb 10, 23:00", + "hkg": 282, + "gru": 338, + "syd": 357, + "jnb": 580, + "iad": 184, + "ams": 74 + }, + { + "timestamp": "Feb 11, 00:00", + "hkg": 303, + "gru": 467, + "ams": 74, + "iad": 194, + "syd": 449, + "jnb": 583 + }, + { + "timestamp": "Feb 11, 01:00", + "hkg": 386, + "jnb": 555, + "syd": 349, + "ams": 70, + "iad": 159, + "gru": 310 + }, + { + "timestamp": "Feb 11, 02:00", + "hkg": 323, + "gru": 306, + "syd": 385, + "jnb": 556, + "ams": 88, + "iad": 184 + }, + { + "timestamp": "Feb 11, 03:00", + "gru": 310, + "iad": 180, + "ams": 123, + "syd": 397, + "jnb": 607, + "hkg": 440 + }, + { + "timestamp": "Feb 11, 04:00", + "iad": 240, + "ams": 84, + "jnb": 554, + "syd": 433, + "gru": 373, + "hkg": 364 + }, + { + "timestamp": "Feb 11, 05:00", + "gru": 271, + "iad": 156, + "ams": 91, + "syd": 373, + "jnb": 587, + "hkg": 298 + }, + { + "timestamp": "Feb 11, 06:00", + "iad": 178, + "ams": 101, + "jnb": 582, + "syd": 482, + "gru": 674, + "hkg": 323 + }, + { + "timestamp": "Feb 11, 07:00", + "hkg": 399, + "jnb": 659, + "syd": 371, + "ams": 115, + "iad": 210, + "gru": 285 + }, + { + "timestamp": "Feb 11, 08:00", + "hkg": 426, + "gru": 322, + "syd": 464, + "jnb": 585, + "ams": 89, + "iad": 146 + }, + { + "timestamp": "Feb 11, 09:00", + "hkg": 347, + "syd": 357, + "jnb": 567, + "iad": 180, + "ams": 76, + "gru": 290 + }, + { + "timestamp": "Feb 11, 10:00", + "gru": 390, + "syd": 383, + "jnb": 567, + "iad": 178, + "ams": 83, + "hkg": 341 + }, + { + "timestamp": "Feb 11, 11:00", + "ams": 81, + "iad": 186, + "syd": 335, + "jnb": 598, + "gru": 284, + "hkg": 516 + }, + { + "timestamp": "Feb 11, 12:00", + "hkg": 324, + "ams": 166, + "iad": 214, + "jnb": 595, + "syd": 408, + "gru": 435 + }, + { + "timestamp": "Feb 11, 13:00", + "hkg": 273, + "gru": 408, + "syd": 366, + "jnb": 562, + "ams": 96, + "iad": 146 + }, + { + "timestamp": "Feb 11, 14:00", + "hkg": 355, + "ams": 89, + "iad": 189, + "jnb": 565, + "syd": 417, + "gru": 273 + }, + { + "timestamp": "Feb 11, 15:00", + "hkg": 383, + "gru": 389, + "jnb": 570, + "syd": 342, + "iad": 182, + "ams": 84 + }, + { + "timestamp": "Feb 11, 16:00", + "gru": 474, + "syd": 355, + "jnb": 591, + "iad": 211, + "ams": 107, + "hkg": 328 + }, + { + "timestamp": "Feb 11, 17:00", + "hkg": 414, + "gru": 392, + "syd": 376, + "jnb": 566, + "iad": 162, + "ams": 105 + }, + { + "timestamp": "Feb 11, 18:00", + "hkg": 358, + "jnb": 596, + "syd": 446, + "iad": 215, + "ams": 95, + "gru": 306 + }, + { + "timestamp": "Feb 11, 19:00", + "iad": 156, + "ams": 94, + "syd": 446, + "jnb": 623, + "gru": 390, + "hkg": 323 + }, + { + "timestamp": "Feb 11, 20:00", + "gru": 430, + "iad": 160, + "ams": 102, + "jnb": 597, + "syd": 568, + "hkg": 2969 + }, + { + "timestamp": "Feb 11, 21:00", + "hkg": 382, + "gru": 374, + "syd": 325, + "jnb": 568, + "iad": 186, + "ams": 132 + }, + { + "timestamp": "Feb 11, 22:00", + "hkg": 297, + "jnb": 562, + "syd": 402, + "iad": 185, + "ams": 138, + "gru": 309 + }, + { + "timestamp": "Feb 11, 23:00", + "hkg": 429, + "gru": 308, + "jnb": 575, + "syd": 476, + "ams": 120, + "iad": 152 + }, + { + "timestamp": "Feb 12, 00:00", + "hkg": 370, + "syd": 353, + "jnb": 588, + "ams": 151, + "iad": 157, + "gru": 434 + }, + { + "timestamp": "Feb 12, 01:00", + "hkg": 352, + "gru": 366, + "syd": 367, + "jnb": 562, + "iad": 156, + "ams": 82 + }, + { + "timestamp": "Feb 12, 02:00", + "gru": 315, + "jnb": 589, + "syd": 438, + "iad": 194, + "ams": 78, + "hkg": 309 + }, + { + "timestamp": "Feb 12, 03:00", + "ams": 88, + "iad": 154, + "jnb": 550, + "syd": 428, + "gru": 327, + "hkg": 298 + }, + { + "timestamp": "Feb 12, 04:00", + "hkg": 326, + "gru": 403, + "ams": 102, + "iad": 148, + "jnb": 585, + "syd": 377 + }, + { + "timestamp": "Feb 12, 05:00", + "hkg": 300, + "syd": 359, + "jnb": 550, + "ams": 115, + "iad": 159, + "gru": 391 + }, + { + "timestamp": "Feb 12, 06:00", + "jnb": 574, + "syd": 358, + "ams": 119, + "iad": 146, + "gru": 356, + "hkg": 342 + }, + { + "timestamp": "Feb 12, 07:00", + "gru": 280, + "iad": 178, + "ams": 82, + "jnb": 564, + "syd": 507, + "hkg": 322 + }, + { + "timestamp": "Feb 12, 08:00", + "syd": 382, + "jnb": 564, + "iad": 178, + "ams": 98, + "gru": 375, + "hkg": 383 + }, + { + "timestamp": "Feb 12, 09:00", + "gru": 286, + "jnb": 561, + "syd": 396, + "ams": 79, + "iad": 149, + "hkg": 289 + }, + { + "timestamp": "Feb 12, 10:00", + "gru": 336, + "iad": 147, + "ams": 87, + "jnb": 614, + "syd": 528, + "hkg": 279 + }, + { + "timestamp": "Feb 12, 11:00", + "hkg": 430, + "gru": 308, + "ams": 92, + "iad": 181, + "syd": 365, + "jnb": 565 + }, + { + "timestamp": "Feb 12, 12:00", + "hkg": 369, + "syd": 438, + "jnb": 588, + "ams": 101, + "iad": 147, + "gru": 340 + }, + { + "timestamp": "Feb 12, 13:00", + "hkg": 389, + "syd": 467, + "jnb": 601, + "ams": 107, + "iad": 149, + "gru": 371 + }, + { + "timestamp": "Feb 12, 14:00", + "hkg": 392, + "gru": 2931, + "syd": 432, + "jnb": 596, + "iad": 2778, + "ams": 140 + }, + { + "timestamp": "Feb 12, 15:00", + "gru": 288, + "jnb": 642, + "syd": 388, + "ams": 145, + "iad": 157, + "hkg": 400 + }, + { + "timestamp": "Feb 12, 16:00", + "ams": 120, + "iad": 238, + "jnb": 598, + "syd": 389, + "gru": 377, + "hkg": 422 + }, + { + "timestamp": "Feb 12, 17:00", + "ams": 109, + "iad": 176, + "syd": 389, + "jnb": 618, + "gru": 392, + "hkg": 319 + }, + { + "timestamp": "Feb 12, 18:00", + "syd": 536, + "jnb": 604, + "iad": 170, + "ams": 87, + "gru": 332, + "hkg": 308 + }, + { + "timestamp": "Feb 12, 19:00", + "gru": 379, + "jnb": 612, + "syd": 374, + "ams": 95, + "iad": 168, + "hkg": 386 + }, + { + "timestamp": "Feb 12, 20:00", + "hkg": 361, + "gru": 452, + "ams": 112, + "iad": 158, + "jnb": 576, + "syd": 470 + }, + { + "timestamp": "Feb 12, 21:00", + "hkg": 484, + "jnb": 570, + "syd": 364, + "iad": 191, + "ams": 94, + "gru": 379 + }, + { + "timestamp": "Feb 12, 22:00", + "gru": 298, + "syd": 479, + "jnb": 642, + "ams": 94, + "iad": 188, + "hkg": 286 + }, + { + "timestamp": "Feb 12, 23:00", + "jnb": 584, + "syd": 401, + "iad": 184, + "ams": 84, + "gru": 358, + "hkg": 316 + }, + { + "timestamp": "Feb 13, 00:00", + "hkg": 437, + "iad": 155, + "ams": 77, + "jnb": 578, + "syd": 445, + "gru": 430 + }, + { + "timestamp": "Feb 13, 01:00", + "gru": 294, + "syd": 394, + "jnb": 579, + "ams": 96, + "iad": 160, + "hkg": 294 + }, + { + "timestamp": "Feb 13, 02:00", + "gru": 289, + "iad": 158, + "ams": 82, + "syd": 404, + "jnb": 601, + "hkg": 318 + }, + { + "timestamp": "Feb 13, 03:00", + "jnb": 558, + "syd": 362, + "ams": 82, + "iad": 163, + "gru": 304, + "hkg": 321 + }, + { + "timestamp": "Feb 13, 04:00", + "gru": 462, + "ams": 87, + "iad": 153, + "jnb": 582, + "syd": 585, + "hkg": 264 + }, + { + "timestamp": "Feb 13, 05:00", + "hkg": 348, + "gru": 364, + "jnb": 567, + "syd": 463, + "iad": 200, + "ams": 124 + }, + { + "timestamp": "Feb 13, 06:00", + "hkg": 426, + "jnb": 580, + "syd": 501, + "ams": 88, + "iad": 142, + "gru": 453 + }, + { + "timestamp": "Feb 13, 07:00", + "jnb": 586, + "syd": 483, + "ams": 78, + "iad": 179, + "gru": 351, + "hkg": 401 + }, + { + "timestamp": "Feb 13, 08:00", + "gru": 295, + "ams": 92, + "iad": 176, + "jnb": 563, + "syd": 435, + "hkg": 344 + }, + { + "timestamp": "Feb 13, 09:00", + "hkg": 377, + "syd": 403, + "jnb": 578, + "ams": 97, + "iad": 148, + "gru": 562 + }, + { + "timestamp": "Feb 13, 10:00", + "hkg": 307, + "iad": 147, + "ams": 94, + "syd": 392, + "jnb": 565, + "gru": 354 + }, + { + "timestamp": "Feb 13, 11:00", + "hkg": 402, + "gru": 386, + "ams": 129, + "iad": 182, + "jnb": 567, + "syd": 552 + }, + { + "timestamp": "Feb 13, 12:00", + "hkg": 413, + "ams": 111, + "iad": 148, + "jnb": 620, + "syd": 479, + "gru": 341 + }, + { + "timestamp": "Feb 13, 13:00", + "hkg": 342, + "gru": 376, + "jnb": 603, + "syd": 407, + "iad": 187, + "ams": 93 + }, + { + "timestamp": "Feb 13, 14:00", + "gru": 414, + "jnb": 691, + "syd": 400, + "ams": 106, + "iad": 181, + "hkg": 297 + }, + { + "timestamp": "Feb 13, 15:00", + "syd": 331, + "jnb": 585, + "iad": 232, + "ams": 138, + "gru": 376, + "hkg": 403 + }, + { + "timestamp": "Feb 13, 16:00", + "hkg": 6906, + "gru": 6822, + "iad": 6801, + "ams": 6745, + "jnb": 7075, + "syd": 6918 + }, + { + "timestamp": "Feb 13, 17:00", + "hkg": 342, + "ams": 122, + "iad": 166, + "syd": 413, + "jnb": 777, + "gru": 439 + }, + { + "timestamp": "Feb 13, 18:00", + "ams": 118, + "iad": 192, + "jnb": 630, + "syd": 359, + "gru": 342, + "hkg": 328 + }, + { + "timestamp": "Feb 13, 19:00", + "jnb": 612, + "syd": 414, + "ams": 126, + "iad": 227, + "gru": 279, + "hkg": 302 + }, + { + "timestamp": "Feb 13, 20:00", + "gru": 323, + "syd": 426, + "jnb": 627, + "ams": 234, + "iad": 208, + "hkg": 300 + }, + { + "timestamp": "Feb 13, 21:00", + "iad": 161, + "ams": 107, + "jnb": 1070, + "syd": 494, + "gru": 391, + "hkg": 373 + }, + { + "timestamp": "Feb 13, 22:00", + "gru": 351, + "iad": 167, + "ams": 117, + "syd": 337, + "jnb": 709, + "hkg": 328 + }, + { + "timestamp": "Feb 13, 23:00", + "hkg": 352, + "gru": 298, + "iad": 163, + "ams": 86, + "syd": 452, + "jnb": 655 + }, + { + "timestamp": "Feb 14, 00:00", + "hkg": 319, + "iad": 151, + "ams": 89, + "jnb": 571, + "syd": 351, + "gru": 299 + }, + { + "timestamp": "Feb 14, 01:00", + "hkg": 438, + "gru": 394, + "iad": 159, + "ams": 84, + "syd": 373, + "jnb": 632 + }, + { + "timestamp": "Feb 14, 02:00", + "hkg": 397, + "iad": 170, + "ams": 93, + "jnb": 573, + "syd": 350, + "gru": 326 + }, + { + "timestamp": "Feb 14, 03:00", + "hkg": 441, + "jnb": 568, + "syd": 472, + "iad": 196, + "ams": 74, + "gru": 377 + }, + { + "timestamp": "Feb 14, 04:00", + "syd": 436, + "jnb": 557, + "iad": 161, + "ams": 79, + "gru": 332, + "hkg": 301 + }, + { + "timestamp": "Feb 14, 05:00", + "gru": 4516, + "jnb": 4770, + "syd": 4708, + "ams": 4297, + "iad": 4353, + "hkg": 4479 + }, + { + "timestamp": "Feb 14, 06:00", + "ams": 85, + "iad": 180, + "syd": 398, + "jnb": 585, + "gru": 350, + "hkg": 370 + }, + { + "timestamp": "Feb 14, 07:00", + "gru": 329, + "ams": 78, + "iad": 147, + "syd": 541, + "jnb": 593, + "hkg": 290 + }, + { + "timestamp": "Feb 14, 08:00", + "hkg": 330, + "gru": 341, + "ams": 84, + "iad": 152, + "jnb": 574, + "syd": 416 + }, + { + "timestamp": "Feb 14, 09:00", + "iad": 189, + "ams": 95, + "jnb": 593, + "syd": 415, + "gru": 289, + "hkg": 349 + }, + { + "timestamp": "Feb 14, 10:00", + "hkg": 343, + "gru": 391, + "iad": 150, + "ams": 92, + "jnb": 605, + "syd": 340 + }, + { + "timestamp": "Feb 14, 11:00", + "hkg": 359, + "gru": 289, + "jnb": 663, + "syd": 382, + "iad": 182, + "ams": 87 + }, + { + "timestamp": "Feb 14, 12:00", + "hkg": 386, + "syd": 434, + "jnb": 606, + "iad": 219, + "ams": 100, + "gru": 394 + }, + { + "timestamp": "Feb 14, 13:00", + "jnb": 646, + "syd": 460, + "ams": 80, + "iad": 150, + "gru": 277, + "hkg": 294 + }, + { + "timestamp": "Feb 14, 14:00", + "gru": 362, + "syd": 436, + "jnb": 667, + "ams": 101, + "iad": 195, + "hkg": 454 + }, + { + "timestamp": "Feb 14, 15:00", + "ams": 87, + "iad": 205, + "syd": 434, + "jnb": 632, + "gru": 360, + "hkg": 320 + }, + { + "timestamp": "Feb 14, 16:00", + "gru": 290, + "ams": 92, + "iad": 164, + "jnb": 576, + "syd": 326, + "hkg": 313 + }, + { + "timestamp": "Feb 14, 17:00", + "hkg": 292, + "ams": 88, + "iad": 153, + "jnb": 583, + "syd": 329, + "gru": 349 + }, + { + "timestamp": "Feb 14, 18:00", + "hkg": 527, + "gru": 415, + "ams": 88, + "iad": 213, + "syd": 496, + "jnb": 636 + }, + { + "timestamp": "Feb 14, 19:00", + "hkg": 322, + "gru": 384, + "syd": 468, + "jnb": 589, + "ams": 89, + "iad": 160 + }, + { + "timestamp": "Feb 14, 20:00", + "gru": 356, + "syd": 355, + "jnb": 599, + "iad": 214, + "ams": 97, + "hkg": 304 + }, + { + "timestamp": "Feb 14, 21:00", + "jnb": 703, + "syd": 421, + "ams": 86, + "iad": 192, + "gru": 337, + "hkg": 440 + }, + { + "timestamp": "Feb 14, 22:00", + "hkg": 308, + "syd": 446, + "jnb": 572, + "ams": 96, + "iad": 161, + "gru": 352 + }, + { + "timestamp": "Feb 14, 23:00", + "hkg": 307, + "gru": 306, + "syd": 316, + "jnb": 588, + "ams": 87, + "iad": 188 + }, + { + "timestamp": "Feb 15, 00:00", + "hkg": 355, + "ams": 78, + "iad": 225, + "jnb": 557, + "syd": 428, + "gru": 397 + }, + { + "timestamp": "Feb 15, 01:00", + "hkg": 392, + "gru": 366, + "iad": 184, + "ams": 78, + "syd": 450, + "jnb": 546 + }, + { + "timestamp": "Feb 15, 02:00", + "gru": 286, + "syd": 441, + "jnb": 589, + "iad": 159, + "ams": 72, + "hkg": 317 + }, + { + "timestamp": "Feb 15, 03:00", + "jnb": 558, + "syd": 377, + "ams": 77, + "iad": 189, + "gru": 356, + "hkg": 310 + }, + { + "timestamp": "Feb 15, 04:00", + "iad": 167, + "ams": 70, + "jnb": 584, + "syd": 502, + "gru": 327, + "hkg": 320 + }, + { + "timestamp": "Feb 15, 05:00", + "hkg": 364, + "gru": 287, + "syd": 346, + "jnb": 558, + "ams": 76, + "iad": 180 + }, + { + "timestamp": "Feb 15, 06:00", + "hkg": 410, + "ams": 72, + "iad": 220, + "syd": 344, + "jnb": 609, + "gru": 307 + }, + { + "timestamp": "Feb 15, 07:00", + "iad": 151, + "ams": 91, + "jnb": 554, + "syd": 614, + "gru": 492, + "hkg": 382 + }, + { + "timestamp": "Feb 15, 08:00", + "gru": 368, + "ams": 85, + "iad": 172, + "jnb": 578, + "syd": 382, + "hkg": 324 + }, + { + "timestamp": "Feb 15, 09:00", + "gru": 588, + "ams": 85, + "iad": 177, + "syd": 440, + "jnb": 565, + "hkg": 387 + }, + { + "timestamp": "Feb 15, 10:00", + "syd": 463, + "jnb": 598, + "ams": 95, + "iad": 153, + "gru": 304, + "hkg": 374 + }, + { + "timestamp": "Feb 15, 11:00", + "hkg": 384, + "jnb": 608, + "syd": 435, + "iad": 218, + "ams": 90, + "gru": 406 + }, + { + "timestamp": "Feb 15, 12:00", + "hkg": 358, + "ams": 105, + "iad": 185, + "jnb": 570, + "syd": 373, + "gru": 348 + }, + { + "timestamp": "Feb 15, 13:00", + "hkg": 287, + "gru": 366, + "jnb": 618, + "syd": 414, + "iad": 152, + "ams": 85 + }, + { + "timestamp": "Feb 15, 14:00", + "hkg": 321, + "gru": 289, + "jnb": 600, + "syd": 480, + "ams": 84, + "iad": 165 + }, + { + "timestamp": "Feb 15, 15:00", + "hkg": 369, + "syd": 467, + "jnb": 576, + "iad": 205, + "ams": 91, + "gru": 299 + }, + { + "timestamp": "Feb 15, 16:00", + "syd": 572, + "jnb": 770, + "ams": 94, + "iad": 264, + "gru": 378, + "hkg": 480 + }, + { + "timestamp": "Feb 17, 10:00", + "hkg": 31423, + "iad": 31244, + "ams": 31251, + "syd": 31331, + "jnb": 31573, + "gru": 31387 + }, + { + "timestamp": "Feb 17, 11:00", + "gru": 375, + "jnb": 565, + "syd": 464, + "ams": 108, + "iad": 192, + "hkg": 363 + }, + { + "timestamp": "Feb 17, 12:00", + "syd": 441, + "jnb": 586, + "ams": 80, + "iad": 154, + "gru": 321, + "hkg": 398 + }, + { + "timestamp": "Feb 17, 13:00", + "jnb": 565, + "syd": 368, + "ams": 89, + "iad": 192, + "gru": 381, + "hkg": 266 + }, + { + "timestamp": "Feb 17, 14:00", + "hkg": 297, + "syd": 375, + "jnb": 575, + "ams": 81, + "iad": 153, + "gru": 345 + }, + { + "timestamp": "Feb 17, 15:00", + "hkg": 325, + "gru": 380, + "iad": 220, + "ams": 78, + "syd": 347, + "jnb": 594 + }, + { + "timestamp": "Feb 17, 16:00", + "hkg": 328, + "jnb": 608, + "syd": 487, + "iad": 183, + "ams": 83, + "gru": 292 + }, + { + "timestamp": "Feb 17, 17:00", + "hkg": 290, + "gru": 371, + "syd": 465, + "jnb": 574, + "ams": 95, + "iad": 163 + }, + { + "timestamp": "Feb 17, 18:00", + "gru": 285, + "syd": 420, + "jnb": 578, + "iad": 182, + "ams": 106, + "hkg": 403 + }, + { + "timestamp": "Feb 17, 19:00", + "jnb": 647, + "syd": 310, + "ams": 111, + "iad": 159, + "gru": 296, + "hkg": 306 + }, + { + "timestamp": "Feb 17, 20:00", + "hkg": 364, + "iad": 161, + "ams": 85, + "syd": 482, + "jnb": 644, + "gru": 292 + }, + { + "timestamp": "Feb 17, 21:00", + "hkg": 341, + "gru": 404, + "syd": 438, + "jnb": 562, + "ams": 85, + "iad": 160 + }, + { + "timestamp": "Feb 17, 22:00", + "hkg": 312, + "gru": 354, + "iad": 160, + "ams": 81, + "syd": 447, + "jnb": 587 + }, + { + "timestamp": "Feb 17, 23:00", + "gru": 376, + "ams": 79, + "iad": 156, + "jnb": 584, + "syd": 452, + "hkg": 504 + }, + { + "timestamp": "Feb 18, 00:00", + "jnb": 628, + "syd": 495, + "ams": 76, + "iad": 161, + "gru": 310, + "hkg": 401 + }, + { + "timestamp": "Feb 18, 01:00", + "syd": 481, + "jnb": 589, + "ams": 78, + "iad": 188, + "gru": 365, + "hkg": 297 + }, + { + "timestamp": "Feb 18, 02:00", + "gru": 437, + "syd": 519, + "jnb": 558, + "iad": 154, + "ams": 74, + "hkg": 363 + }, + { + "timestamp": "Feb 18, 03:00", + "hkg": 289, + "gru": 393, + "jnb": 608, + "syd": 460, + "ams": 77, + "iad": 150 + }, + { + "timestamp": "Feb 18, 04:00", + "hkg": 302, + "ams": 74, + "iad": 152, + "jnb": 566, + "syd": 370, + "gru": 323 + }, + { + "timestamp": "Feb 18, 05:00", + "gru": 361, + "syd": 335, + "jnb": 582, + "iad": 186, + "ams": 76, + "hkg": 338 + }, + { + "timestamp": "Feb 18, 06:00", + "gru": 485, + "ams": 80, + "iad": 185, + "syd": 444, + "jnb": 554, + "hkg": 320 + }, + { + "timestamp": "Feb 18, 07:00", + "iad": 150, + "ams": 83, + "jnb": 563, + "syd": 346, + "gru": 410, + "hkg": 423 + }, + { + "timestamp": "Feb 18, 08:00", + "hkg": 303, + "jnb": 559, + "syd": 416, + "iad": 147, + "ams": 94, + "gru": 365 + }, + { + "timestamp": "Feb 18, 09:00", + "gru": 310, + "ams": 84, + "iad": 149, + "syd": 449, + "jnb": 564, + "hkg": 402 + }, + { + "timestamp": "Feb 18, 10:00", + "syd": 508, + "jnb": 570, + "iad": 177, + "ams": 97, + "gru": 317, + "hkg": 380 + }, + { + "timestamp": "Feb 18, 11:00", + "gru": 2272, + "jnb": 2497, + "syd": 2356, + "ams": 2135, + "iad": 2157, + "hkg": 2367 + }, + { + "timestamp": "Feb 18, 12:00", + "hkg": 317, + "gru": 504, + "ams": 117, + "iad": 151, + "jnb": 621, + "syd": 330 + }, + { + "timestamp": "Feb 18, 13:00", + "hkg": 20398, + "jnb": 20505, + "syd": 20479, + "iad": 20369, + "ams": 20298, + "gru": 20304 + }, + { + "timestamp": "Feb 18, 14:00", + "hkg": 321, + "ams": 101, + "iad": 181, + "jnb": 603, + "syd": 373, + "gru": 312 + }, + { + "timestamp": "Feb 18, 15:00", + "hkg": 321, + "syd": 578, + "jnb": 587, + "ams": 97, + "iad": 150, + "gru": 491 + }, + { + "timestamp": "Feb 18, 16:00", + "hkg": 314, + "gru": 313, + "ams": 101, + "iad": 181, + "syd": 441, + "jnb": 577 + }, + { + "timestamp": "Feb 18, 17:00", + "jnb": 589, + "syd": 364, + "ams": 95, + "iad": 158, + "gru": 468, + "hkg": 439 + }, + { + "timestamp": "Feb 18, 18:00", + "gru": 285, + "jnb": 588, + "syd": 698, + "iad": 206, + "ams": 104, + "hkg": 394 + } + ] + }, + "metricsByRegion": [ + { + "region": "syd", + "avgLatency": 949, + "p75Latency": 433, + "p90Latency": 828, + "p95Latency": 945, + "p99Latency": 16696 + }, + { + "region": "gru", + "avgLatency": 873, + "p75Latency": 370, + "p90Latency": 663, + "p95Latency": 753, + "p99Latency": 15979 + }, + { + "region": "iad", + "avgLatency": 690, + "p75Latency": 165, + "p90Latency": 312, + "p95Latency": 343, + "p99Latency": 16552 + }, + { + "region": "ams", + "avgLatency": 607, + "p75Latency": 95, + "p90Latency": 111, + "p95Latency": 127, + "p99Latency": 16675 + }, + { + "region": "hkg", + "avgLatency": 866, + "p75Latency": 384, + "p90Latency": 655, + "p95Latency": 746, + "p99Latency": 16681 + }, + { + "region": "jnb", + "avgLatency": 1096, + "p75Latency": 587, + "p90Latency": 706, + "p95Latency": 730, + "p99Latency": 16295 + } + ] +} diff --git a/apps/web/src/app/(content)/_components/pagination.tsx b/apps/web/src/app/(content)/_components/pagination.tsx index c4d47a5fb..70fe25377 100644 --- a/apps/web/src/app/(content)/_components/pagination.tsx +++ b/apps/web/src/app/(content)/_components/pagination.tsx @@ -1,10 +1,11 @@ -import Link from "next/link"; import type { Changelog } from "contentlayer/generated"; import { ChevronLeft, ChevronRight } from "lucide-react"; +import Link from "next/link"; import { Button } from "@openstatus/ui"; export function Pagination({ + // biome-ignore lint/correctness/noUnusedVariables: prev, next, }: { @@ -31,7 +32,7 @@ export function Pagination({ diff --git a/apps/web/src/app/(content)/blog/[slug]/page.tsx b/apps/web/src/app/(content)/blog/[slug]/page.tsx index fa9f702e4..3d7c0b02c 100644 --- a/apps/web/src/app/(content)/blog/[slug]/page.tsx +++ b/apps/web/src/app/(content)/blog/[slug]/page.tsx @@ -1,6 +1,6 @@ +import { allPosts } from "contentlayer/generated"; import type { Metadata } from "next"; import { notFound } from "next/navigation"; -import { allPosts } from "contentlayer/generated"; import { defaultMetadata, @@ -23,7 +23,7 @@ export async function generateMetadata({ params, }: { params: { slug: string }; -}): Promise { +}): Promise { const post = allPosts.find((post) => post.slug === params.slug); if (!post) { return; @@ -68,7 +68,7 @@ export default function PostPage({ params }: { params: { slug: string } }) { return ( <> - +
diff --git a/apps/web/src/app/(content)/blog/page.tsx b/apps/web/src/app/(content)/blog/page.tsx index 62fb7dd1b..4f4b18f94 100644 --- a/apps/web/src/app/(content)/blog/page.tsx +++ b/apps/web/src/app/(content)/blog/page.tsx @@ -1,7 +1,7 @@ -import type { Metadata } from "next"; -import Link from "next/link"; import { allPosts } from "contentlayer/generated"; import { Rss } from "lucide-react"; +import type { Metadata } from "next"; +import Link from "next/link"; import { Button } from "@openstatus/ui"; @@ -39,7 +39,7 @@ export default async function Post() { description="All the latest articles and news from OpenStatus." actions={ -

+

By clicking continue, you agree to our{" "} Terms of Service {" "} and{" "} Privacy Policy diff --git a/apps/web/src/app/app/[workspaceSlug]/(dashboard)/incidents/(overview)/layout.tsx b/apps/web/src/app/app/[workspaceSlug]/(dashboard)/incidents/(overview)/layout.tsx index a30b6ae73..66b7759aa 100644 --- a/apps/web/src/app/app/[workspaceSlug]/(dashboard)/incidents/(overview)/layout.tsx +++ b/apps/web/src/app/app/[workspaceSlug]/(dashboard)/incidents/(overview)/layout.tsx @@ -1,13 +1,9 @@ -import * as React from "react"; +import type { ReactNode } from "react"; import { Header } from "@/components/dashboard/header"; import AppPageLayout from "@/components/layout/app-page-layout"; -export default async function Layout({ - children, -}: { - children: React.ReactNode; -}) { +export default async function Layout({ children }: { children: ReactNode }) { return (

+
-
+
-
+
-

{label}

-

+

{label}

+

{format(new Date(date), "LLL dd, y HH:mm:ss")}

diff --git a/apps/web/src/app/app/[workspaceSlug]/(dashboard)/incidents/[id]/overview/page.tsx b/apps/web/src/app/app/[workspaceSlug]/(dashboard)/incidents/[id]/overview/page.tsx index 4ed9f051a..266e7b52d 100644 --- a/apps/web/src/app/app/[workspaceSlug]/(dashboard)/incidents/[id]/overview/page.tsx +++ b/apps/web/src/app/app/[workspaceSlug]/(dashboard)/incidents/[id]/overview/page.tsx @@ -1,7 +1,7 @@ -import Image from "next/image"; -import Link from "next/link"; import { formatDistanceStrict } from "date-fns"; import { ArrowUpRight } from "lucide-react"; +import Image from "next/image"; +import Link from "next/link"; import { api } from "@/trpc/server"; import { Event } from "./_components/event"; @@ -34,11 +34,11 @@ export default async function IncidentPage({
-

+

Monitor

-

{incident.monitorName}

+

{incident.monitorName}

-

+

Duration

-

{duration}

+

{duration}

-

+

Auto-resolved

-

+

{incident.autoResolved ? "true" : "false"}

@@ -65,7 +65,7 @@ export default async function IncidentPage({
{incident.incidentScreenshotUrl ? ( -
+
{incident.recoveryScreenshotUrl ? ( -
+
type T = Awaited>>; // FIXME: use proper type @@ -95,7 +96,7 @@ function Details({ row }: { row: Row }) { return (
-
+
[]): string { // Add data rows for (const row of jsonData) { const values = headers.map((header) => { - const escaped = ("" + row[header]).replace(/"/g, '\\"'); + const escaped = `${row[header]}`.replace(/"/g, '\\"'); return `"${escaped}"`; }); csvRows.push(values.join(",")); diff --git a/apps/web/src/app/app/[workspaceSlug]/(dashboard)/monitors/[id]/data/page.tsx b/apps/web/src/app/app/[workspaceSlug]/(dashboard)/monitors/[id]/data/page.tsx index d83b738be..faa83ea1e 100644 --- a/apps/web/src/app/app/[workspaceSlug]/(dashboard)/monitors/[id]/data/page.tsx +++ b/apps/web/src/app/app/[workspaceSlug]/(dashboard)/monitors/[id]/data/page.tsx @@ -1,5 +1,5 @@ -import * as React from "react"; import { notFound } from "next/navigation"; +import * as React from "react"; import * as z from "zod"; import { OSTinybird } from "@openstatus/tinybird"; @@ -29,7 +29,7 @@ const searchParamsSchema = z.object({ .string() .optional() .transform((val) => { - return val?.split(",").map(parseInt); + return val?.split(",").map(Number.parseInt); }), error: z .string() diff --git a/apps/web/src/app/app/[workspaceSlug]/(dashboard)/monitors/[id]/details/page.tsx b/apps/web/src/app/app/[workspaceSlug]/(dashboard)/monitors/[id]/details/page.tsx index ba9a72df9..fad1aee19 100644 --- a/apps/web/src/app/app/[workspaceSlug]/(dashboard)/monitors/[id]/details/page.tsx +++ b/apps/web/src/app/app/[workspaceSlug]/(dashboard)/monitors/[id]/details/page.tsx @@ -21,6 +21,7 @@ const searchParamsSchema = z.object({ }); export default async function Details({ + // biome-ignore lint/correctness/noUnusedVariables: params, searchParams, }: { @@ -33,10 +34,10 @@ export default async function Details({ try { await api.monitor.getMonitorById.query({ - id: parseInt(search.data.monitorId), + id: Number.parseInt(search.data.monitorId), }); return ; - } catch (e) { + } catch (_e) { return ; } } diff --git a/apps/web/src/app/app/[workspaceSlug]/(dashboard)/monitors/[id]/layout.tsx b/apps/web/src/app/app/[workspaceSlug]/(dashboard)/monitors/[id]/layout.tsx index d4c05357f..88dac86aa 100644 --- a/apps/web/src/app/app/[workspaceSlug]/(dashboard)/monitors/[id]/layout.tsx +++ b/apps/web/src/app/app/[workspaceSlug]/(dashboard)/monitors/[id]/layout.tsx @@ -30,7 +30,7 @@ export default async function Layout({
+
{monitor.url} •
-
+
{new Array(4).fill(0).map((_, i) => ( + // biome-ignore lint/suspicious/noArrayIndexKey: ))}
-
+
{new Array(5).fill(0).map((_, i) => ( + // biome-ignore lint/suspicious/noArrayIndexKey: ))}
diff --git a/apps/web/src/app/app/[workspaceSlug]/(dashboard)/monitors/[id]/overview/page.tsx b/apps/web/src/app/app/[workspaceSlug]/(dashboard)/monitors/[id]/overview/page.tsx index afd96b8a2..7933cd5a9 100644 --- a/apps/web/src/app/app/[workspaceSlug]/(dashboard)/monitors/[id]/overview/page.tsx +++ b/apps/web/src/app/app/[workspaceSlug]/(dashboard)/monitors/[id]/overview/page.tsx @@ -1,5 +1,5 @@ -import * as React from "react"; import { notFound } from "next/navigation"; +import * as React from "react"; import * as z from "zod"; import { flyRegions } from "@openstatus/db/src/schema"; diff --git a/apps/web/src/app/app/[workspaceSlug]/(dashboard)/monitors/_components/refresh-widget.tsx b/apps/web/src/app/app/[workspaceSlug]/(dashboard)/monitors/_components/refresh-widget.tsx index 65c5831e3..9243061d8 100644 --- a/apps/web/src/app/app/[workspaceSlug]/(dashboard)/monitors/_components/refresh-widget.tsx +++ b/apps/web/src/app/app/[workspaceSlug]/(dashboard)/monitors/_components/refresh-widget.tsx @@ -1,7 +1,7 @@ "use client"; -import { useEffect, useState } from "react"; import { useRouter } from "next/navigation"; +import { useEffect, useState } from "react"; import { Button } from "@openstatus/ui"; diff --git a/apps/web/src/app/app/[workspaceSlug]/(dashboard)/notifications/(overview)/page.tsx b/apps/web/src/app/app/[workspaceSlug]/(dashboard)/notifications/(overview)/page.tsx index 0af96050d..1a90187b2 100644 --- a/apps/web/src/app/app/[workspaceSlug]/(dashboard)/notifications/(overview)/page.tsx +++ b/apps/web/src/app/app/[workspaceSlug]/(dashboard)/notifications/(overview)/page.tsx @@ -1,5 +1,5 @@ -import * as React from "react"; import Link from "next/link"; +import * as React from "react"; import { Button } from "@openstatus/ui"; diff --git a/apps/web/src/app/app/[workspaceSlug]/(dashboard)/notifications/new/page.tsx b/apps/web/src/app/app/[workspaceSlug]/(dashboard)/notifications/new/page.tsx index 61179072c..6dbccb5eb 100644 --- a/apps/web/src/app/app/[workspaceSlug]/(dashboard)/notifications/new/page.tsx +++ b/apps/web/src/app/app/[workspaceSlug]/(dashboard)/notifications/new/page.tsx @@ -1,9 +1,7 @@ import { NotificationForm } from "@/components/forms/notification/form"; import { api } from "@/trpc/server"; -export default async function EditPage({}: { - params: { workspaceSlug: string }; -}) { +export default async function EditPage() { const workspace = await api.workspace.getWorkspace.query(); return ; diff --git a/apps/web/src/app/app/[workspaceSlug]/(dashboard)/rum/_components/category-bar.tsx b/apps/web/src/app/app/[workspaceSlug]/(dashboard)/rum/_components/category-bar.tsx index a5b0a51af..92e016382 100644 --- a/apps/web/src/app/app/[workspaceSlug]/(dashboard)/rum/_components/category-bar.tsx +++ b/apps/web/src/app/app/[workspaceSlug]/(dashboard)/rum/_components/category-bar.tsx @@ -59,36 +59,38 @@ export function CategoryBar({ values, marker }: CategoryBarProps) { return (
-
+
0
{valuesWithPercentage.slice(0, values.length - 1).map((value, i) => { const width = `${(value.percentage * 100).toFixed(2)}%`; return (
key={i} className="flex items-center justify-end" style={{ width }} > - + {value.max}
); })} {/* REMINDER: could be a thing - only display if maxValue !== Infinity */} -
+
{getMaxValue()}
{valuesWithPercentage.map((value, i) => { const width = `${(value.percentage * 100).toFixed(2)}%`; + // biome-ignore lint/suspicious/noArrayIndexKey: return
; })}
@@ -96,7 +98,7 @@ export function CategoryBar({ values, marker }: CategoryBarProps) {
diff --git a/apps/web/src/app/app/[workspaceSlug]/(dashboard)/rum/_components/route-table.tsx b/apps/web/src/app/app/[workspaceSlug]/(dashboard)/rum/_components/route-table.tsx index 1eb656c66..fff59c617 100644 --- a/apps/web/src/app/app/[workspaceSlug]/(dashboard)/rum/_components/route-table.tsx +++ b/apps/web/src/app/app/[workspaceSlug]/(dashboard)/rum/_components/route-table.tsx @@ -16,9 +16,9 @@ const RouteTable = async () => { return null; } return ( -
-

Page Performance

-
+
+

Page Performance

+
An overview of your page performance. @@ -36,7 +36,7 @@ const RouteTable = async () => { {data.map((page) => { return ( - + {page.href} {page.total_event} diff --git a/apps/web/src/app/app/[workspaceSlug]/(dashboard)/rum/_components/rum-metric-card.tsx b/apps/web/src/app/app/[workspaceSlug]/(dashboard)/rum/_components/rum-metric-card.tsx index 118b4ee3e..5b6a06780 100644 --- a/apps/web/src/app/app/[workspaceSlug]/(dashboard)/rum/_components/rum-metric-card.tsx +++ b/apps/web/src/app/app/[workspaceSlug]/(dashboard)/rum/_components/rum-metric-card.tsx @@ -21,7 +21,7 @@ export const RUMMetricCard = async ({ event }: { event: WebVitalEvents }) => {

{eventConfig.label} ({event})

-

+

{data?.median.toFixed(2) || 0}

-
+
{webVitalEvents // Remove FID from the list of events because it's deprecated by google .filter((v) => v !== "FID") diff --git a/apps/web/src/app/app/[workspaceSlug]/(dashboard)/settings/api-token/_components/actions.ts b/apps/web/src/app/app/[workspaceSlug]/(dashboard)/settings/api-token/_components/actions.ts index 78e2bb47e..d3086154a 100644 --- a/apps/web/src/app/app/[workspaceSlug]/(dashboard)/settings/api-token/_components/actions.ts +++ b/apps/web/src/app/app/[workspaceSlug]/(dashboard)/settings/api-token/_components/actions.ts @@ -22,7 +22,7 @@ export async function create(ownerId: number) { .from(usersToWorkspaces) .innerJoin(user, eq(user.id, usersToWorkspaces.userId)) .innerJoin(workspace, eq(workspace.id, usersToWorkspaces.workspaceId)) - .where(eq(user.id, parseInt(session.user.id))) + .where(eq(user.id, Number.parseInt(session.user.id))) .all(); const allowedIds = allowedWorkspaces.map((i) => i.workspace.id); diff --git a/apps/web/src/app/app/[workspaceSlug]/(dashboard)/settings/api-token/_components/card.tsx b/apps/web/src/app/app/[workspaceSlug]/(dashboard)/settings/api-token/_components/card.tsx index 228814ff5..3d68af6ed 100644 --- a/apps/web/src/app/app/[workspaceSlug]/(dashboard)/settings/api-token/_components/card.tsx +++ b/apps/web/src/app/app/[workspaceSlug]/(dashboard)/settings/api-token/_components/card.tsx @@ -38,14 +38,14 @@ export async function ApiKeys({ ownerId }: { ownerId: number }) { } > {key ? ( -
+
Token
{key.start}...
Created At
-
{formatDate(new Date(key.createdAt!))}
+
{key.createdAt && formatDate(new Date(key.createdAt))}
) : null} diff --git a/apps/web/src/app/app/[workspaceSlug]/(dashboard)/settings/api-token/_components/create-form.tsx b/apps/web/src/app/app/[workspaceSlug]/(dashboard)/settings/api-token/_components/create-form.tsx index fa7bd96fa..e018bbb7e 100644 --- a/apps/web/src/app/app/[workspaceSlug]/(dashboard)/settings/api-token/_components/create-form.tsx +++ b/apps/web/src/app/app/[workspaceSlug]/(dashboard)/settings/api-token/_components/create-form.tsx @@ -1,7 +1,7 @@ "use client"; -import * as React from "react"; import { useRouter } from "next/navigation"; +import * as React from "react"; import { AlertDialog, @@ -64,6 +64,7 @@ export function CreateForm({ ownerId }: { ownerId: number }) {
- - @@ -48,8 +48,8 @@ function LightModeCard({ active }: { active: boolean }) { return (
@@ -74,8 +74,8 @@ function DarkModeCard({ active }: { active: boolean }) { return (
diff --git a/apps/web/src/app/app/[workspaceSlug]/(dashboard)/settings/billing/_components/change-plan-button.tsx b/apps/web/src/app/app/[workspaceSlug]/(dashboard)/settings/billing/_components/change-plan-button.tsx index cb7ca76f2..15544ca6d 100644 --- a/apps/web/src/app/app/[workspaceSlug]/(dashboard)/settings/billing/_components/change-plan-button.tsx +++ b/apps/web/src/app/app/[workspaceSlug]/(dashboard)/settings/billing/_components/change-plan-button.tsx @@ -1,8 +1,8 @@ "use client"; -import { useState, useTransition } from "react"; -import { useRouter } from "next/navigation"; import { TRPCClientError } from "@trpc/client"; +import { useRouter } from "next/navigation"; +import { useState, useTransition } from "react"; import { workspacePlans } from "@openstatus/db/src/schema"; import type { Workspace, WorkspacePlan } from "@openstatus/db/src/schema"; diff --git a/apps/web/src/app/app/[workspaceSlug]/(dashboard)/settings/billing/_components/customer-portal-button.tsx b/apps/web/src/app/app/[workspaceSlug]/(dashboard)/settings/billing/_components/customer-portal-button.tsx index 40c49d5f0..00d434515 100644 --- a/apps/web/src/app/app/[workspaceSlug]/(dashboard)/settings/billing/_components/customer-portal-button.tsx +++ b/apps/web/src/app/app/[workspaceSlug]/(dashboard)/settings/billing/_components/customer-portal-button.tsx @@ -1,7 +1,7 @@ "use client"; -import { useTransition } from "react"; import { useRouter } from "next/navigation"; +import { useTransition } from "react"; import { Button } from "@openstatus/ui"; diff --git a/apps/web/src/app/app/[workspaceSlug]/(dashboard)/settings/billing/_components/plan.tsx b/apps/web/src/app/app/[workspaceSlug]/(dashboard)/settings/billing/_components/plan.tsx index 6bb343f5b..eba0184f5 100644 --- a/apps/web/src/app/app/[workspaceSlug]/(dashboard)/settings/billing/_components/plan.tsx +++ b/apps/web/src/app/app/[workspaceSlug]/(dashboard)/settings/billing/_components/plan.tsx @@ -1,7 +1,7 @@ "use client"; -import { useTransition } from "react"; import { useRouter } from "next/navigation"; +import { useTransition } from "react"; import type { Workspace, WorkspacePlan } from "@openstatus/db/src/schema"; diff --git a/apps/web/src/app/app/[workspaceSlug]/(dashboard)/settings/billing/page.tsx b/apps/web/src/app/app/[workspaceSlug]/(dashboard)/settings/billing/page.tsx index b37ea5bd0..78d2c2799 100644 --- a/apps/web/src/app/app/[workspaceSlug]/(dashboard)/settings/billing/page.tsx +++ b/apps/web/src/app/app/[workspaceSlug]/(dashboard)/settings/billing/page.tsx @@ -14,7 +14,7 @@ export default async function BillingPage() { return (
-

+

{workspace.plan} plan

@@ -24,7 +24,7 @@ export default async function BillingPage() { const limit = limits[key as keyof typeof currentNumbers]; return (
-
+

{key.replace("-", " ")}

{value} / {limit} diff --git a/apps/web/src/app/app/[workspaceSlug]/(dashboard)/settings/team/_components/invite-button.tsx b/apps/web/src/app/app/[workspaceSlug]/(dashboard)/settings/team/_components/invite-button.tsx index 1be75c84f..65ff4f7bc 100644 --- a/apps/web/src/app/app/[workspaceSlug]/(dashboard)/settings/team/_components/invite-button.tsx +++ b/apps/web/src/app/app/[workspaceSlug]/(dashboard)/settings/team/_components/invite-button.tsx @@ -1,8 +1,8 @@ "use client"; -import { useState, useTransition } from "react"; -import { useRouter } from "next/navigation"; import { zodResolver } from "@hookform/resolvers/zod"; +import { useRouter } from "next/navigation"; +import { useState, useTransition } from "react"; import { useForm } from "react-hook-form"; import type * as z from "zod"; diff --git a/apps/web/src/app/app/[workspaceSlug]/(dashboard)/status-pages/(overview)/layout.tsx b/apps/web/src/app/app/[workspaceSlug]/(dashboard)/status-pages/(overview)/layout.tsx index 5a7d56e99..6959af554 100644 --- a/apps/web/src/app/app/[workspaceSlug]/(dashboard)/status-pages/(overview)/layout.tsx +++ b/apps/web/src/app/app/[workspaceSlug]/(dashboard)/status-pages/(overview)/layout.tsx @@ -1,17 +1,12 @@ -import * as React from "react"; -import Link from "next/link"; - import { ButtonWithDisableTooltip } from "@openstatus/ui"; +import Link from "next/link"; +import type { ReactNode } from "react"; import { Header } from "@/components/dashboard/header"; import AppPageLayout from "@/components/layout/app-page-layout"; import { api } from "@/trpc/server"; -export default async function Layout({ - children, -}: { - children: React.ReactNode; -}) { +export default async function Layout({ children }: { children: ReactNode }) { const isLimitReached = await api.page.isPageLimitReached.query(); return ( diff --git a/apps/web/src/app/app/[workspaceSlug]/(dashboard)/status-pages/(overview)/page.tsx b/apps/web/src/app/app/[workspaceSlug]/(dashboard)/status-pages/(overview)/page.tsx index ccaf21b5b..26ba6e09d 100644 --- a/apps/web/src/app/app/[workspaceSlug]/(dashboard)/status-pages/(overview)/page.tsx +++ b/apps/web/src/app/app/[workspaceSlug]/(dashboard)/status-pages/(overview)/page.tsx @@ -1,5 +1,5 @@ -import * as React from "react"; import Link from "next/link"; +import * as React from "react"; import { Button } from "@openstatus/ui"; diff --git a/apps/web/src/app/app/[workspaceSlug]/(dashboard)/status-reports/(overview)/layout.tsx b/apps/web/src/app/app/[workspaceSlug]/(dashboard)/status-reports/(overview)/layout.tsx index 4bb5bd19a..d50523c49 100644 --- a/apps/web/src/app/app/[workspaceSlug]/(dashboard)/status-reports/(overview)/layout.tsx +++ b/apps/web/src/app/app/[workspaceSlug]/(dashboard)/status-reports/(overview)/layout.tsx @@ -1,16 +1,12 @@ -import * as React from "react"; import Link from "next/link"; +import type { ReactNode } from "react"; import { Button } from "@openstatus/ui"; import { Header } from "@/components/dashboard/header"; import AppPageLayout from "@/components/layout/app-page-layout"; -export default async function Layout({ - children, -}: { - children: React.ReactNode; -}) { +export default async function Layout({ children }: { children: ReactNode }) { return (

params, searchParams, }: { diff --git a/apps/web/src/app/app/[workspaceSlug]/onboarding/_components/description.tsx b/apps/web/src/app/app/[workspaceSlug]/onboarding/_components/description.tsx index 76bebf53b..b5d5ba381 100644 --- a/apps/web/src/app/app/[workspaceSlug]/onboarding/_components/description.tsx +++ b/apps/web/src/app/app/[workspaceSlug]/onboarding/_components/description.tsx @@ -41,17 +41,17 @@ export function Description({ }) { const config = step && onboardingConfig[step]; return ( -
+
- {steps.map((item, i) => { + {steps.map((item, _i) => { const { icon, name } = onboardingConfig[item]; const StepIcon = Icons[icon]; const active = step === item; return ( -
+
@@ -61,7 +61,7 @@ export function Description({ className={cn( "text-sm", active - ? "text-foreground font-semibold" + ? "font-semibold text-foreground" : "text-muted-foreground", )} > @@ -71,9 +71,9 @@ export function Description({ ); })}
- {config?.description.map(({ title, text }, i) => { + {config?.description.map(({ title, text }) => { return ( -
+
{title}
{text}
diff --git a/apps/web/src/app/app/[workspaceSlug]/onboarding/layout.tsx b/apps/web/src/app/app/[workspaceSlug]/onboarding/layout.tsx index fd929288a..e2c7bbafb 100644 --- a/apps/web/src/app/app/[workspaceSlug]/onboarding/layout.tsx +++ b/apps/web/src/app/app/[workspaceSlug]/onboarding/layout.tsx @@ -1,4 +1,4 @@ -import * as React from "react"; +import type { ReactNode } from "react"; import { Shell } from "@/components/dashboard/shell"; import { AppHeader } from "@/components/layout/header/app-header"; @@ -10,7 +10,7 @@ export default async function AppLayout({ children, }: { params: { workspaceSlug: string }; - children: React.ReactNode; + children: ReactNode; }) { const { workspaceSlug } = params; return ( diff --git a/apps/web/src/app/app/invite/layout.tsx b/apps/web/src/app/app/invite/layout.tsx index 356beebd4..dc231d6a3 100644 --- a/apps/web/src/app/app/invite/layout.tsx +++ b/apps/web/src/app/app/invite/layout.tsx @@ -1,13 +1,8 @@ -import * as React from "react"; - import { Shell } from "@/components/dashboard/shell"; import { AppHeader } from "@/components/layout/header/app-header"; +import type { ReactNode } from "react"; -export default async function AppLayout({ - children, -}: { - children: React.ReactNode; -}) { +export default async function AppLayout({ children }: { children: ReactNode }) { return (
diff --git a/apps/web/src/app/app/invite/page.tsx b/apps/web/src/app/app/invite/page.tsx index 7eb6a8eb2..1560edf0c 100644 --- a/apps/web/src/app/app/invite/page.tsx +++ b/apps/web/src/app/app/invite/page.tsx @@ -25,7 +25,7 @@ export default async function InvitePage({ return (
-

{message}

+

{message}

diff --git a/apps/web/src/app/app/page.tsx b/apps/web/src/app/app/page.tsx index 839a67fa8..85e0e8885 100644 --- a/apps/web/src/app/app/page.tsx +++ b/apps/web/src/app/app/page.tsx @@ -1,7 +1,7 @@ "use client"; -import * as React from "react"; import { useRouter } from "next/navigation"; +import * as React from "react"; import { Shell } from "@/components/dashboard/shell"; import { AppHeader } from "@/components/layout/header/app-header"; @@ -22,8 +22,8 @@ export default function Page() {
-

Creating Workspace

-

+

Creating Workspace

+

Should be done in a second.

@@ -32,6 +32,7 @@ export default function Page() { href="https://openstatus.dev/discord" target="_blank" className="text-foreground underline underline-offset-4 hover:no-underline" + rel="noreferrer" > Discord {" "} diff --git a/apps/web/src/app/global-error.tsx b/apps/web/src/app/global-error.tsx index 4ff81b2dd..f9babe1cf 100644 --- a/apps/web/src/app/global-error.tsx +++ b/apps/web/src/app/global-error.tsx @@ -1,8 +1,8 @@ "use client"; -import { useEffect } from "react"; -import NextError from "next/error"; import * as Sentry from "@sentry/nextjs"; +import NextError from "next/error"; +import { useEffect } from "react"; export default function GlobalError({ error, @@ -14,9 +14,10 @@ export default function GlobalError({ }, [error]); return ( - + {/* This is the default Next.js error component but it doesn't allow omitting the statusCode property yet. */} + {/* biome-ignore lint/suspicious/noExplicitAny: */} diff --git a/apps/web/src/app/layout.tsx b/apps/web/src/app/layout.tsx index 2983538c1..b2ce3fedb 100644 --- a/apps/web/src/app/layout.tsx +++ b/apps/web/src/app/layout.tsx @@ -40,7 +40,12 @@ export default function RootLayout({ }) { return ( - + + } ${calSans.variable}`} + > {/* Only include RUM in prod */} {process.env.NODE_ENV === "production" && ( diff --git a/apps/web/src/app/legal/[slug]/layout.tsx b/apps/web/src/app/legal/[slug]/layout.tsx index fe800ca92..f388f0997 100644 --- a/apps/web/src/app/legal/[slug]/layout.tsx +++ b/apps/web/src/app/legal/[slug]/layout.tsx @@ -1,11 +1,6 @@ -import * as React from "react"; - import { MarketingLayout } from "@/components/layout/marketing-layout"; +import type { ReactNode } from "react"; -export default function BlogLayout({ - children, -}: { - children: React.ReactNode; -}) { +export default function BlogLayout({ children }: { children: ReactNode }) { return {children}; } diff --git a/apps/web/src/app/legal/[slug]/page.tsx b/apps/web/src/app/legal/[slug]/page.tsx index fe5d4887e..19c664416 100644 --- a/apps/web/src/app/legal/[slug]/page.tsx +++ b/apps/web/src/app/legal/[slug]/page.tsx @@ -1,5 +1,5 @@ -import { notFound } from "next/navigation"; import { allLegalPosts } from "contentlayer/generated"; +import { notFound } from "next/navigation"; import { Mdx } from "@/components/content/mdx"; import { Shell } from "@/components/dashboard/shell"; @@ -24,10 +24,10 @@ export default function PostPage({ params }: { params: { slug: string } }) { return ( <> - +

-

{post.title}

+

{post.title}

diff --git a/apps/web/src/app/not-found.tsx b/apps/web/src/app/not-found.tsx index d8cc6bb21..05a6c8193 100644 --- a/apps/web/src/app/not-found.tsx +++ b/apps/web/src/app/not-found.tsx @@ -18,7 +18,7 @@ export default function NotFound() {
-

+

404 Page not found

diff --git a/apps/web/src/app/oss-friends/page.tsx b/apps/web/src/app/oss-friends/page.tsx index a9b869cde..89503bc05 100644 --- a/apps/web/src/app/oss-friends/page.tsx +++ b/apps/web/src/app/oss-friends/page.tsx @@ -1,16 +1,9 @@ -import Link from "next/link"; import { ArrowUpRight } from "lucide-react"; +import Link from "next/link"; import { z } from "zod"; -import { - Card, - CardDescription, - CardFooter, - CardHeader, - CardTitle, -} from "@openstatus/ui"; +import { Card, CardDescription, CardHeader, CardTitle } from "@openstatus/ui"; -import { Icons } from "@/components/icons"; import { MarketingLayout } from "@/components/layout/marketing-layout"; const OSSFriendSchema = z.object({ @@ -25,7 +18,7 @@ const OpenSourceFriends = async () => { const openSourceFriends = z.array(OSSFriendSchema).parse(data.data); return ( -

+

Our OpenSource Friends

@@ -41,7 +34,7 @@ const OpenSourceFriends = async () => { {friend.name}
{friend.description} - +
diff --git a/apps/web/src/app/play/_components/header-play.tsx b/apps/web/src/app/play/_components/header-play.tsx index 1c3f3e713..1c051bdef 100644 --- a/apps/web/src/app/play/_components/header-play.tsx +++ b/apps/web/src/app/play/_components/header-play.tsx @@ -4,7 +4,7 @@ export function HeaderPlay({ }: Record<"title" | "description", string>) { return (
-

{title}

+

{title}

{description}

); diff --git a/apps/web/src/app/play/checker/[id]/page.tsx b/apps/web/src/app/play/checker/[id]/page.tsx index f0d1dbc59..770335ea3 100644 --- a/apps/web/src/app/play/checker/[id]/page.tsx +++ b/apps/web/src/app/play/checker/[id]/page.tsx @@ -55,7 +55,7 @@ export default async function CheckPage({ params, searchParams }: Props) {
-

+

{data.url}

diff --git a/apps/web/src/app/play/checker/_components/checker-form.tsx b/apps/web/src/app/play/checker/_components/checker-form.tsx index 1462db16c..06378526e 100644 --- a/apps/web/src/app/play/checker/_components/checker-form.tsx +++ b/apps/web/src/app/play/checker/_components/checker-form.tsx @@ -1,8 +1,8 @@ "use client"; -import { useTransition } from "react"; -import { useRouter } from "next/navigation"; import { zodResolver } from "@hookform/resolvers/zod"; +import { useRouter } from "next/navigation"; +import { useTransition } from "react"; import { useForm } from "react-hook-form"; import * as z from "zod"; diff --git a/apps/web/src/app/play/layout.tsx b/apps/web/src/app/play/layout.tsx index 943396585..30b9b1343 100644 --- a/apps/web/src/app/play/layout.tsx +++ b/apps/web/src/app/play/layout.tsx @@ -1,12 +1,11 @@ -import * as React from "react"; -import type { Metadata } from "next"; - import { defaultMetadata, ogMetadata, twitterMetadata, } from "@/app/shared-metadata"; import { MarketingLayout } from "@/components/layout/marketing-layout"; +import type { Metadata } from "next"; +import type { ReactNode } from "react"; export const metadata: Metadata = { ...defaultMetadata, @@ -18,10 +17,6 @@ export const metadata: Metadata = { }, }; -export default function PlayLayout({ - children, -}: { - children: React.ReactNode; -}) { +export default function PlayLayout({ children }: { children: ReactNode }) { return {children}; } diff --git a/apps/web/src/app/play/page.tsx b/apps/web/src/app/play/page.tsx index d9defb1c7..b298de240 100644 --- a/apps/web/src/app/play/page.tsx +++ b/apps/web/src/app/play/page.tsx @@ -1,4 +1,3 @@ -import type { Metadata } from "next"; import { Activity, Clock, @@ -7,6 +6,7 @@ import { Palette, PanelTop, } from "lucide-react"; +import type { Metadata } from "next"; import { BackButton } from "@/components/layout/back-button"; import type { CardProps } from "@/components/play/card"; @@ -35,12 +35,12 @@ export default async function PlayPage() { return ( <> -

+
{playgrounds.map((play, i) => { const isFirst = i === 0; return ( diff --git a/apps/web/src/app/play/status/_components/status-play.tsx b/apps/web/src/app/play/status/_components/status-play.tsx index 6be4aaeb4..c0a323990 100644 --- a/apps/web/src/app/play/status/_components/status-play.tsx +++ b/apps/web/src/app/play/status/_components/status-play.tsx @@ -30,7 +30,7 @@ export default async function StatusPlay() {
{data && }
-

+

{formattedServerDate}

{/* REMINDER: more playground component */} diff --git a/apps/web/src/app/play/status/_components/timezone-combobox.tsx b/apps/web/src/app/play/status/_components/timezone-combobox.tsx index 834f0b87a..68fad1c4e 100644 --- a/apps/web/src/app/play/status/_components/timezone-combobox.tsx +++ b/apps/web/src/app/play/status/_components/timezone-combobox.tsx @@ -1,8 +1,8 @@ "use client"; -import * as React from "react"; -import { usePathname, useRouter } from "next/navigation"; import { Check, ChevronsUpDown } from "lucide-react"; +import { usePathname, useRouter } from "next/navigation"; +import * as React from "react"; import { Button, @@ -49,7 +49,7 @@ export function TimezoneCombobox({ defaultValue }: { defaultValue?: string }) { ? timezones.find((timezone) => timezone.value === value)?.label : "Select timezone..."} {defaultValue?.toLowerCase() === currentTimezone?.toLowerCase() ? ( - + (default) ) : null} diff --git a/apps/web/src/app/pricing/page.tsx b/apps/web/src/app/pricing/page.tsx index 92f1b5823..675766f96 100644 --- a/apps/web/src/app/pricing/page.tsx +++ b/apps/web/src/app/pricing/page.tsx @@ -32,7 +32,7 @@ export default function PricingPage() {
-

Pricing

+

Pricing

All plans. Start free today, upgrade later.

diff --git a/apps/web/src/app/public/layout.tsx b/apps/web/src/app/public/layout.tsx index ee3328865..11d2f50e3 100644 --- a/apps/web/src/app/public/layout.tsx +++ b/apps/web/src/app/public/layout.tsx @@ -1,4 +1,3 @@ -import * as React from "react"; import type { Metadata } from "next"; import { diff --git a/apps/web/src/app/public/monitors/[id]/loading.tsx b/apps/web/src/app/public/monitors/[id]/loading.tsx index 5b9b2c3d5..45ffb3760 100644 --- a/apps/web/src/app/public/monitors/[id]/loading.tsx +++ b/apps/web/src/app/public/monitors/[id]/loading.tsx @@ -16,14 +16,16 @@ export default function Loading() {
-
+
{new Array(4).fill(0).map((_, i) => ( + // biome-ignore lint/suspicious/noArrayIndexKey: ))}
-
+
{new Array(5).fill(0).map((_, i) => ( + // biome-ignore lint/suspicious/noArrayIndexKey: ))}
diff --git a/apps/web/src/app/public/monitors/[id]/page.tsx b/apps/web/src/app/public/monitors/[id]/page.tsx index 1dcc0588b..5f5b593ac 100644 --- a/apps/web/src/app/public/monitors/[id]/page.tsx +++ b/apps/web/src/app/public/monitors/[id]/page.tsx @@ -1,5 +1,5 @@ -import * as React from "react"; import { notFound } from "next/navigation"; +import * as React from "react"; import * as z from "zod"; import { flyRegions } from "@openstatus/db/src/schema"; @@ -99,10 +99,10 @@ export default async function Page({ return (
- +
-

{monitor.name}

-

+

{monitor.name}

+

{monitor.url}

diff --git a/apps/web/src/app/shared-metadata.ts b/apps/web/src/app/shared-metadata.ts index 9d1c1ebc0..f863ec299 100644 --- a/apps/web/src/app/shared-metadata.ts +++ b/apps/web/src/app/shared-metadata.ts @@ -17,12 +17,12 @@ export const twitterMetadata: Metadata["twitter"] = { title: TITLE, description: DESCRIPTION, card: "summary_large_image", - images: [`/api/og`], + images: ["/api/og"], }; export const ogMetadata: Metadata["openGraph"] = { title: TITLE, description: DESCRIPTION, type: "website", - images: [`/api/og`], + images: ["/api/og"], }; diff --git a/apps/web/src/app/sitemap.ts b/apps/web/src/app/sitemap.ts index d82a012fa..fa4b98505 100644 --- a/apps/web/src/app/sitemap.ts +++ b/apps/web/src/app/sitemap.ts @@ -1,5 +1,5 @@ -import type { MetadataRoute } from "next"; import { allChangelogs, allPosts } from "contentlayer/generated"; +import type { MetadataRoute } from "next"; const addPathToBaseURL = (path: string) => `https://www.openstatus.dev${path}`; diff --git a/apps/web/src/app/status-page/[domain]/_components/actions.ts b/apps/web/src/app/status-page/[domain]/_components/actions.ts index d314c45b7..d52e788a6 100644 --- a/apps/web/src/app/status-page/[domain]/_components/actions.ts +++ b/apps/web/src/app/status-page/[domain]/_components/actions.ts @@ -6,7 +6,7 @@ import { trackAnalytics } from "@openstatus/analytics"; import { and, eq, or, sql } from "@openstatus/db"; import { db } from "@openstatus/db/src/db"; import { page, pageSubscriber } from "@openstatus/db/src/schema"; -import { sendEmail, SubscribeEmail } from "@openstatus/emails"; +import { SubscribeEmail, sendEmail } from "@openstatus/emails"; const subscribeSchema = z.object({ email: z @@ -74,7 +74,7 @@ export async function handleSubscribe(formData: FormData) { }), from: "OpenStatus ", to: [validatedFields.data.email], - subject: "Verify your subscription to " + pageData.title, + subject: `Verify your subscription to ${pageData.title}`, }); await db diff --git a/apps/web/src/app/status-page/[domain]/_components/footer.tsx b/apps/web/src/app/status-page/[domain]/_components/footer.tsx index d5c6ede09..7cc28397e 100644 --- a/apps/web/src/app/status-page/[domain]/_components/footer.tsx +++ b/apps/web/src/app/status-page/[domain]/_components/footer.tsx @@ -13,7 +13,7 @@ export function Footer({ plan }: Props) {

- ), - thead: (props: React.HTMLAttributes) => ( + table: (props: HTMLAttributes) =>
, + thead: (props: HTMLAttributes) => ( ), - tbody: (props: React.HTMLAttributes) => ( + tbody: (props: HTMLAttributes) => ( ), - tfoot: (props: React.HTMLAttributes) => ( + tfoot: (props: HTMLAttributes) => ( ), - tr: (props: React.HTMLAttributes) => ( - - ), - th: (props: React.ThHTMLAttributes) => ( + tr: (props: HTMLAttributes) => , + th: (props: ThHTMLAttributes) => ( ), - td: (props: React.TdHTMLAttributes) => ( + td: (props: TdHTMLAttributes) => ( ), }; diff --git a/apps/web/src/components/content/mdx.tsx b/apps/web/src/components/content/mdx.tsx index 66457520e..2dfc66187 100644 --- a/apps/web/src/components/content/mdx.tsx +++ b/apps/web/src/components/content/mdx.tsx @@ -15,7 +15,7 @@ export function Mdx({ code, className }: MdxProps) { // FIXME: weird behaviour when `prose-headings:font-cal` and on mouse movement font gets bigger
diff --git a/apps/web/src/components/content/preview.tsx b/apps/web/src/components/content/preview.tsx index 501414e67..7b4ac7e4d 100644 --- a/apps/web/src/components/content/preview.tsx +++ b/apps/web/src/components/content/preview.tsx @@ -9,7 +9,7 @@ interface Props { export function Preview({ md }: Props) { const Component = useProcessor(md || ""); return ( -
+
{Component}
); diff --git a/apps/web/src/components/content/timeline.tsx b/apps/web/src/components/content/timeline.tsx index ee181739e..ea0cf3373 100644 --- a/apps/web/src/components/content/timeline.tsx +++ b/apps/web/src/components/content/timeline.tsx @@ -22,7 +22,7 @@ export function Timeline({
-

{title}

+

{title}

{description}

{actions}
@@ -52,7 +52,7 @@ function Article({
-
@@ -63,12 +63,12 @@ function Article({ src={imageSrc} fill={true} alt={title} - className="border-border rounded-md border object-cover" + className="rounded-md border border-border object-cover" />
-

{title}

+

{title}

{children}
diff --git a/apps/web/src/components/dashboard/container.tsx b/apps/web/src/components/dashboard/container.tsx index 2e6147660..9649f569b 100644 --- a/apps/web/src/components/dashboard/container.tsx +++ b/apps/web/src/components/dashboard/container.tsx @@ -25,11 +25,11 @@ function Container({ }: CardProps) { return (
- + {title} {description ? ( diff --git a/apps/web/src/components/dashboard/empty-state.tsx b/apps/web/src/components/dashboard/empty-state.tsx index f58e27775..2e7200256 100644 --- a/apps/web/src/components/dashboard/empty-state.tsx +++ b/apps/web/src/components/dashboard/empty-state.tsx @@ -1,24 +1,23 @@ -import * as React from "react"; - import type { ValidIcon } from "@/components/icons"; import { Icons } from "@/components/icons"; +import type { ComponentProps, ReactNode } from "react"; -interface Props extends React.ComponentProps<"div"> { +interface Props extends ComponentProps<"div"> { icon: ValidIcon; title: string; description: string; - action?: React.ReactNode; + action?: ReactNode; } export function EmptyState({ icon, title, description, action }: Props) { const Icon = Icons[icon]; return ( -
+
-

{title}

-

{description}

+

{title}

+

{description}

{action ?
{action}
: null}
diff --git a/apps/web/src/components/dashboard/help-callout.tsx b/apps/web/src/components/dashboard/help-callout.tsx index 423823ea9..b4f2c25d5 100644 --- a/apps/web/src/components/dashboard/help-callout.tsx +++ b/apps/web/src/components/dashboard/help-callout.tsx @@ -11,7 +11,7 @@ export function HelpCallout() { Let us know at{" "}
ping@openstatus.dev {" "} @@ -19,7 +19,8 @@ export function HelpCallout() { Discord diff --git a/apps/web/src/components/dashboard/navbar.tsx b/apps/web/src/components/dashboard/navbar.tsx index 847ff469f..ad82c83dc 100644 --- a/apps/web/src/components/dashboard/navbar.tsx +++ b/apps/web/src/components/dashboard/navbar.tsx @@ -1,7 +1,7 @@ "use client"; -import * as React from "react"; import { useSelectedLayoutSegment } from "next/navigation"; +import * as React from "react"; import { TabsContainer, TabsLink } from "./tabs-link"; diff --git a/apps/web/src/components/dashboard/shell.tsx b/apps/web/src/components/dashboard/shell.tsx index c32b8a64a..7468a7780 100644 --- a/apps/web/src/components/dashboard/shell.tsx +++ b/apps/web/src/components/dashboard/shell.tsx @@ -6,7 +6,7 @@ function Shell({ children, className }: ShellProps) { return (
diff --git a/apps/web/src/components/dashboard/tabs-link.tsx b/apps/web/src/components/dashboard/tabs-link.tsx index 8b7b2a74b..443afc964 100644 --- a/apps/web/src/components/dashboard/tabs-link.tsx +++ b/apps/web/src/components/dashboard/tabs-link.tsx @@ -1,10 +1,10 @@ "use client"; -import * as React from "react"; +import { cn } from "@/lib/utils"; import type { LinkProps } from "next/link"; import Link from "next/link"; - -import { cn } from "@/lib/utils"; +import type { ReactNode } from "react"; +import React from "react"; export interface TabsContainerProps extends React.HTMLAttributes, @@ -41,7 +41,7 @@ export function TabsContainer({ } export interface TabsLinkProps extends LinkProps { - children: React.ReactNode; + children: ReactNode; className?: string; active?: boolean; disabled?: boolean; @@ -67,10 +67,10 @@ export function TabsLink({ > [] = [ -

+

{message}

@@ -82,9 +82,9 @@ export const columns: ColumnDef[] = [ filterFn: (row, id, value) => { const { select, input } = value || {}; if (select === "min" && input) - return parseInt(row.getValue(id)) > parseInt(input); + return Number.parseInt(row.getValue(id)) > Number.parseInt(input); if (select === "max" && input) - return parseInt(row.getValue(id)) < parseInt(input); + return Number.parseInt(row.getValue(id)) < Number.parseInt(input); return true; }, }, diff --git a/apps/web/src/components/data-table/data-table-column-header.tsx b/apps/web/src/components/data-table/data-table-column-header.tsx index 6232c762f..fac90ee6c 100644 --- a/apps/web/src/components/data-table/data-table-column-header.tsx +++ b/apps/web/src/components/data-table/data-table-column-header.tsx @@ -33,7 +33,7 @@ export function DataTableColumnHeader({ @@ -73,7 +75,7 @@ export function SectionMonitor({ form, monitors }: Props) { value={String(monitor.id)} onSelect={(currentValue) => { const monitorIndex = watchMonitors.findIndex( - (m) => m.monitorId === parseInt(currentValue), + (m) => m.monitorId === Number.parseInt(currentValue), ); if (monitorIndex !== -1) { remove(monitorIndex); @@ -134,7 +136,7 @@ export function SectionMonitor({ form, monitors }: Props) { />{" "} {monitor.name}
-
+
{monitor?.url}
-

Inform

+

Inform

Keep your users informed about what just happened.

@@ -175,7 +175,7 @@ export function StatusReportForm({ className="sr-only" /> -
+
{label}
@@ -242,9 +242,9 @@ export function StatusReportForm({ ? "bg-green-500" : "bg-red-500", )} - > + />
-

+

{item.description}

@@ -304,7 +304,7 @@ export function StatusReportForm({ {item.title}
-

+

{item.description}

@@ -328,7 +328,7 @@ export function StatusReportForm({
-

+

Status Update

diff --git a/apps/web/src/components/forms/status-report-update-form.tsx b/apps/web/src/components/forms/status-report-update-form.tsx index 75b87dd87..d6f9bc57d 100644 --- a/apps/web/src/components/forms/status-report-update-form.tsx +++ b/apps/web/src/components/forms/status-report-update-form.tsx @@ -1,8 +1,8 @@ "use client"; -import * as React from "react"; -import { useRouter } from "next/navigation"; import { zodResolver } from "@hookform/resolvers/zod"; +import { useRouter } from "next/navigation"; +import * as React from "react"; import { useForm } from "react-hook-form"; import type { InsertStatusReportUpdate } from "@openstatus/db/src/schema"; @@ -89,7 +89,7 @@ export function StatusReportUpdateForm({ >

-

Inform

+

Inform

Keep your users informed about what just happened.

@@ -122,7 +122,7 @@ export function StatusReportUpdateForm({ className="sr-only" /> -
+
{label}
diff --git a/apps/web/src/components/forms/status-report-update/form.tsx b/apps/web/src/components/forms/status-report-update/form.tsx index fd095160b..98a1fb51c 100644 --- a/apps/web/src/components/forms/status-report-update/form.tsx +++ b/apps/web/src/components/forms/status-report-update/form.tsx @@ -1,8 +1,8 @@ "use client"; -import * as React from "react"; -import { useRouter } from "next/navigation"; import { zodResolver } from "@hookform/resolvers/zod"; +import { useRouter } from "next/navigation"; +import * as React from "react"; import { useForm } from "react-hook-form"; import type { InsertStatusReportUpdate } from "@openstatus/db/src/schema"; diff --git a/apps/web/src/components/forms/status-report-update/general.tsx b/apps/web/src/components/forms/status-report-update/general.tsx index 5649c3479..f70959276 100644 --- a/apps/web/src/components/forms/status-report-update/general.tsx +++ b/apps/web/src/components/forms/status-report-update/general.tsx @@ -48,7 +48,7 @@ export function General({ form }: Props) { -
+
{label}
diff --git a/apps/web/src/components/forms/status-report/form.tsx b/apps/web/src/components/forms/status-report/form.tsx index b76c80e2c..7f5ee12f9 100644 --- a/apps/web/src/components/forms/status-report/form.tsx +++ b/apps/web/src/components/forms/status-report/form.tsx @@ -1,8 +1,8 @@ "use client"; -import * as React from "react"; -import { usePathname, useRouter } from "next/navigation"; import { zodResolver } from "@hookform/resolvers/zod"; +import { usePathname, useRouter } from "next/navigation"; +import * as React from "react"; import { useForm } from "react-hook-form"; import { insertStatusReportSchema } from "@openstatus/db/src/schema"; diff --git a/apps/web/src/components/forms/status-report/general.tsx b/apps/web/src/components/forms/status-report/general.tsx index 5ddba863e..4672315e8 100644 --- a/apps/web/src/components/forms/status-report/general.tsx +++ b/apps/web/src/components/forms/status-report/general.tsx @@ -74,7 +74,7 @@ export function General({ form }: Props) { -
+
{label}
diff --git a/apps/web/src/components/forms/status-report/section-connect.tsx b/apps/web/src/components/forms/status-report/section-connect.tsx index 535a8db95..ab2578d7b 100644 --- a/apps/web/src/components/forms/status-report/section-connect.tsx +++ b/apps/web/src/components/forms/status-report/section-connect.tsx @@ -40,7 +40,7 @@ export function SectionConnect({ form, pages, monitors }: Props) { Select the pages that you want to refer the incident to.
-
+
{pages?.map((item) => (
-
+
{monitors?.map((item) => ( + /> ), } as const; diff --git a/apps/web/src/components/kbd.tsx b/apps/web/src/components/kbd.tsx index eef433a50..191c8fd6c 100644 --- a/apps/web/src/components/kbd.tsx +++ b/apps/web/src/components/kbd.tsx @@ -1,6 +1,6 @@ export function Kbd({ children }: { children: React.ReactNode }) { return ( - + {children} ); diff --git a/apps/web/src/components/layout/app-footer.tsx b/apps/web/src/components/layout/app-footer.tsx index 7b3d13bf7..963e76cb4 100644 --- a/apps/web/src/components/layout/app-footer.tsx +++ b/apps/web/src/components/layout/app-footer.tsx @@ -6,7 +6,7 @@ export function AppFooter() { return (
-
+
All rights reserved ©
@@ -16,7 +16,7 @@ export function AppFooter() { > Terms - • + • { - setOpen(false); - }, [pathname, searchParams]); // remove searchParams if not needed + const selectedSegment = useSelectedLayoutSegment(); if (!page) return null; @@ -36,10 +31,10 @@ export function AppMenu({ page }: { page?: Page }) { return ( setOpen(value)}> - + {activeChild?.title} - + diff --git a/apps/web/src/components/layout/app-page-with-sidebar-layout.tsx b/apps/web/src/components/layout/app-page-with-sidebar-layout.tsx index 296877e41..d0326b69d 100644 --- a/apps/web/src/components/layout/app-page-with-sidebar-layout.tsx +++ b/apps/web/src/components/layout/app-page-with-sidebar-layout.tsx @@ -18,7 +18,7 @@ export default function AppPageWithSidebarLayout({ return (
- + diff --git a/apps/web/src/components/layout/app-sidebar.tsx b/apps/web/src/components/layout/app-sidebar.tsx index eabe7c6a0..0a82e368c 100644 --- a/apps/web/src/components/layout/app-sidebar.tsx +++ b/apps/web/src/components/layout/app-sidebar.tsx @@ -14,7 +14,7 @@ export function AppSidebar({ page }: { page?: Page }) { return (
-

+

{page?.title}

    diff --git a/apps/web/src/components/layout/back-button.tsx b/apps/web/src/components/layout/back-button.tsx index 2b556503b..6146193a5 100644 --- a/apps/web/src/components/layout/back-button.tsx +++ b/apps/web/src/components/layout/back-button.tsx @@ -1,6 +1,6 @@ +import { ChevronLeft } from "lucide-react"; import type { LinkProps } from "next/link"; import Link from "next/link"; -import { ChevronLeft } from "lucide-react"; import { Button } from "@openstatus/ui"; @@ -12,7 +12,7 @@ export const BackButton = ({ href, children }: BackButtonProps) => { return ( diff --git a/apps/web/src/components/layout/brand-name.tsx b/apps/web/src/components/layout/brand-name.tsx index 652030e6f..c140283e2 100644 --- a/apps/web/src/components/layout/brand-name.tsx +++ b/apps/web/src/components/layout/brand-name.tsx @@ -1,5 +1,5 @@ -import * as React from "react"; import Link from "next/link"; +import * as React from "react"; // Hottake: you don't need a features page if you have a changelog page // Except for SEO @@ -17,7 +17,7 @@ export function BrandName() { OpenStatus diff --git a/apps/web/src/components/layout/header/app-header.tsx b/apps/web/src/components/layout/header/app-header.tsx index 23dd5529f..84583ec47 100644 --- a/apps/web/src/components/layout/header/app-header.tsx +++ b/apps/web/src/components/layout/header/app-header.tsx @@ -1,8 +1,8 @@ "use client"; -import Link from "next/link"; import { allChangelogs } from "contentlayer/generated"; import { ArrowUpRight } from "lucide-react"; +import Link from "next/link"; import { Button, Skeleton } from "@openstatus/ui"; @@ -32,7 +32,7 @@ export function AppHeader() { return ( // TODO: discuss amount of top-3 and top-6 -
    +
    @@ -49,7 +49,7 @@ export function AppHeader() { > Changelog {show ? ( - + ) : null} diff --git a/apps/web/src/components/layout/header/breadcrumbs.tsx b/apps/web/src/components/layout/header/breadcrumbs.tsx index ea49cbc0e..a6edfe9d0 100644 --- a/apps/web/src/components/layout/header/breadcrumbs.tsx +++ b/apps/web/src/components/layout/header/breadcrumbs.tsx @@ -1,6 +1,6 @@ "use client"; -import { Fragment, useEffect, useState } from "react"; +import { Slash } from "lucide-react"; import Image from "next/image"; import Link from "next/link"; import { @@ -8,10 +8,9 @@ import { useSelectedLayoutSegment, useSelectedLayoutSegments, } from "next/navigation"; -import { Slash } from "lucide-react"; +import { Fragment, useEffect, useState } from "react"; import { SelectWorkspace } from "@/components/workspace/select-workspace"; -import { pagesConfig } from "@/config/pages"; import { notEmpty } from "@/lib/utils"; import { api } from "@/trpc/client"; @@ -34,7 +33,7 @@ export function Breadcrumbs() { // label, ].filter(notEmpty); - const isWorkspaceSlug = params.workspaceSlug; + const _isWorkspaceSlug = params.workspaceSlug; return (
    @@ -44,10 +43,10 @@ export function Breadcrumbs() { alt="OpenStatus" height={30} width={30} - className="border-border rounded-full border" + className="rounded-full border border-border" /> - + {params.workspaceSlug ? (
    @@ -55,8 +54,8 @@ export function Breadcrumbs() { ) : null} {breadcrumbs.map((breadcrumb) => ( - -

    + +

    {breadcrumb}

    @@ -66,6 +65,7 @@ export function Breadcrumbs() { } // This is a custom hook that returns the label of the current id +// biome-ignore lint/correctness/noUnusedVariables: function useIdLabel() { const params = useParams(); const selectedSegment = useSelectedLayoutSegment(); @@ -101,7 +101,7 @@ function useIdLabel() { } } getInfos(); - }, [params, selectedSegment, selectedSegments]); + }, [params, selectedSegment, isRoot, label]); return label; } diff --git a/apps/web/src/components/layout/header/user-nav.tsx b/apps/web/src/components/layout/header/user-nav.tsx index 9991a2809..a2651ea69 100644 --- a/apps/web/src/components/layout/header/user-nav.tsx +++ b/apps/web/src/components/layout/header/user-nav.tsx @@ -1,6 +1,6 @@ +import { signOut, useSession } from "next-auth/react"; import Link from "next/link"; import { useParams } from "next/navigation"; -import { signOut, useSession } from "next-auth/react"; import { Avatar, @@ -37,18 +37,18 @@ export function UserNav() { `${session.data.user?.firstName} ${session.data.user?.lastName}` } /> - +
    -

    +

    {session.data.user?.name || `${session.data.user?.firstName} ${session.data.user?.lastName}`}

    -

    +

    {session.data.user?.email}

    diff --git a/apps/web/src/components/layout/login-button.tsx b/apps/web/src/components/layout/login-button.tsx index 072051294..35b5551b8 100644 --- a/apps/web/src/components/layout/login-button.tsx +++ b/apps/web/src/components/layout/login-button.tsx @@ -1,7 +1,7 @@ "use client"; -import Link from "next/link"; import { useSession } from "next-auth/react"; +import Link from "next/link"; import type { ButtonProps } from "@openstatus/ui"; import { Button } from "@openstatus/ui"; diff --git a/apps/web/src/components/layout/marketing-footer.tsx b/apps/web/src/components/layout/marketing-footer.tsx index 1b6a37ca1..0d6701b7d 100644 --- a/apps/web/src/components/layout/marketing-footer.tsx +++ b/apps/web/src/components/layout/marketing-footer.tsx @@ -1,5 +1,5 @@ -import Link from "next/link"; import { ArrowUpRight } from "lucide-react"; +import Link from "next/link"; import { socialsConfig } from "@/config/socials"; import { cn } from "@/lib/utils"; @@ -21,7 +21,7 @@ export function MarketingFooter({ className }: Props) {
    -

    +

    We are on a mission to provide a reliable, easy and fast way to monitor the performance of your APIs and websites.
    @@ -33,7 +33,7 @@ export function MarketingFooter({ className }: Props) {

    -

    Resources

    +

    Resources

    @@ -41,14 +41,14 @@ export function MarketingFooter({ className }: Props) {
    -

    Company

    +

    Company

    -

    Tools

    +

    Tools

    @@ -86,7 +86,7 @@ function FooterLink({ href, label, external = false }: FooterLinkProps) { return ( diff --git a/apps/web/src/components/layout/marketing-header.tsx b/apps/web/src/components/layout/marketing-header.tsx index 66a2884ce..06ab32586 100644 --- a/apps/web/src/components/layout/marketing-header.tsx +++ b/apps/web/src/components/layout/marketing-header.tsx @@ -25,7 +25,7 @@ export function MarketingHeader({ className }: Props) {
    -
    +
    {marketingPagesConfig.map(({ href, title, segment }) => { const isExternal = href.startsWith("http"); const externalProps = isExternal ? { target: "_blank" } : {}; diff --git a/apps/web/src/components/layout/marketing-menu.tsx b/apps/web/src/components/layout/marketing-menu.tsx index c4b5d8325..395cd3c95 100644 --- a/apps/web/src/components/layout/marketing-menu.tsx +++ b/apps/web/src/components/layout/marketing-menu.tsx @@ -1,8 +1,8 @@ "use client"; -import * as React from "react"; -import { usePathname, useSearchParams } from "next/navigation"; import { Menu } from "lucide-react"; +import { usePathname } from "next/navigation"; +import * as React from "react"; import { Button, @@ -22,11 +22,10 @@ import { SocialIconButton } from "./social-icon-button"; export function MarketingMenu() { const [open, setOpen] = React.useState(false); const pathname = usePathname(); - const searchParams = useSearchParams(); React.useEffect(() => { setOpen(false); - }, [pathname, searchParams]); // remove searchParams if not needed + }, []); // remove searchParams if not needed return ( setOpen(value)}> @@ -46,6 +45,7 @@ export function MarketingMenu() {
      + {/* biome-ignore lint/correctness/noUnusedVariables: */} {marketingPagesConfig.map(({ href, title, segment }) => { const isExternal = href.startsWith("http"); const externalProps = isExternal ? { target: "_blank" } : {}; @@ -64,8 +64,8 @@ export function MarketingMenu() {
      - {socialsConfig.map((props, i) => ( -
    • + {socialsConfig.map((props, _i) => ( +
    • ))} diff --git a/apps/web/src/components/layout/status-widget-suspense.tsx b/apps/web/src/components/layout/status-widget-suspense.tsx index d5d3bc8e6..ef96798c8 100644 --- a/apps/web/src/components/layout/status-widget-suspense.tsx +++ b/apps/web/src/components/layout/status-widget-suspense.tsx @@ -1,5 +1,5 @@ -import { Suspense } from "react"; import { ExternalLink } from "lucide-react"; +import { Suspense } from "react"; import type { StatusWidgetProps } from "@openstatus/react"; import { StatusWidget } from "@openstatus/react"; @@ -13,9 +13,9 @@ import { export function StatusWidgetFallback() { return ( -
      - - +
      + +
      ); } @@ -35,6 +35,7 @@ export function StatusWidgetContainer(props: StatusWidgetProps) { Install your own diff --git a/apps/web/src/components/marketing/alert/card.tsx b/apps/web/src/components/marketing/alert/card.tsx index 6dc4abfff..6db54c694 100644 --- a/apps/web/src/components/marketing/alert/card.tsx +++ b/apps/web/src/components/marketing/alert/card.tsx @@ -21,7 +21,10 @@ export function AlertCard() { - {features?.map((feature, i) => )} + {features?.map((feature, i) => ( + // biome-ignore lint/suspicious/noArrayIndexKey: + + ))} diff --git a/apps/web/src/components/marketing/alert/timeline.tsx b/apps/web/src/components/marketing/alert/timeline.tsx index d9e18f0dc..6e94a920e 100644 --- a/apps/web/src/components/marketing/alert/timeline.tsx +++ b/apps/web/src/components/marketing/alert/timeline.tsx @@ -1,11 +1,10 @@ -import * as React from "react"; -import { format } from "date-fns"; - import type { ValidIcon } from "@/components/icons"; import { Icons } from "@/components/icons"; import { cn } from "@/lib/utils"; +import { format } from "date-fns"; +import type { ReactNode } from "react"; -export function TimelineContainer({ children }: { children: React.ReactNode }) { +export function TimelineContainer({ children }: { children: ReactNode }) { return ( // first:md:order-2 does not work
      @@ -25,24 +24,24 @@ export function TimelineEvent({ }) { const Icon = Icons[icon.name]; return ( -
      +
      {!isLast ? ( -
      +
      ) : null}
      -

      {label}

      -

      +

      {label}

      +

      {format(new Date(date), "LLL dd, y HH:mm:ss")}

      @@ -56,7 +55,11 @@ export function Timeline() { return ( {timeline.map((event, i) => ( - + ))} ); diff --git a/apps/web/src/components/marketing/card.tsx b/apps/web/src/components/marketing/card.tsx index c7c7e5c44..eb015db21 100644 --- a/apps/web/src/components/marketing/card.tsx +++ b/apps/web/src/components/marketing/card.tsx @@ -8,7 +8,7 @@ import { Icons } from "../icons"; export function CardContainer({ children }: { children: React.ReactNode }) { return ( - + {children} ); @@ -25,7 +25,7 @@ export function CardHeader({ children }: { children: React.ReactNode }) { export function CardIcon({ icon }: { icon: ValidIcon }) { const Icon = Icons[icon]; return ( -
      +
      ); @@ -33,14 +33,14 @@ export function CardIcon({ icon }: { icon: ValidIcon }) { export function CardTitle({ children }: { children: React.ReactNode }) { return ( -

      +

      {children}

      ); } export function CardDescription({ children }: { children: React.ReactNode }) { - return

      {children}

      ; + return

      {children}

      ; } export function CardContent({ @@ -88,8 +88,8 @@ export function CardFeature(props: FeatureDescription) {
    • - - + + {props.catchline.replace(".", "")} {" "} diff --git a/apps/web/src/components/marketing/faqs.tsx b/apps/web/src/components/marketing/faqs.tsx index 04ea59684..a2e0efd66 100644 --- a/apps/web/src/components/marketing/faqs.tsx +++ b/apps/web/src/components/marketing/faqs.tsx @@ -32,7 +32,7 @@ export function FAQs() {

      {faqs.map((faq, i) => ( - + {faq.title} diff --git a/apps/web/src/components/marketing/hero.tsx b/apps/web/src/components/marketing/hero.tsx index c8ba1624d..8369bc549 100644 --- a/apps/web/src/components/marketing/hero.tsx +++ b/apps/web/src/components/marketing/hero.tsx @@ -1,6 +1,6 @@ -import { Suspense } from "react"; -import Link from "next/link"; import { ChevronRight } from "lucide-react"; +import Link from "next/link"; +import { Suspense } from "react"; import { Badge, Button } from "@openstatus/ui"; @@ -26,13 +26,13 @@ export function Hero() {

      A better way to monitor your services.

      -

      +

      Monitor your API and website from 6 continents, detect some performance issues and receive notifications before your users are affected. diff --git a/apps/web/src/components/marketing/in-between-cta.tsx b/apps/web/src/components/marketing/in-between-cta.tsx index 4eb2246f0..86bccfee0 100644 --- a/apps/web/src/components/marketing/in-between-cta.tsx +++ b/apps/web/src/components/marketing/in-between-cta.tsx @@ -14,7 +14,7 @@ export function InBetweenCTA({ description, actions }: InBetweenCTAProps) { const { primary, secondary } = actions; return (

      -

      +

      {description}

      diff --git a/apps/web/src/components/marketing/lastest-changelogs.tsx b/apps/web/src/components/marketing/lastest-changelogs.tsx index 356bfd1c4..8e8c04302 100644 --- a/apps/web/src/components/marketing/lastest-changelogs.tsx +++ b/apps/web/src/components/marketing/lastest-changelogs.tsx @@ -1,5 +1,5 @@ -import Link from "next/link"; import { allChangelogs } from "contentlayer/generated"; +import Link from "next/link"; import { Button } from "@openstatus/ui"; @@ -30,14 +30,14 @@ export function LatestChangelogs() { {latestChangelogs.map((changelog) => (
    • -
      +

      {formatDate(new Date(changelog.publishedAt))}

      -

      +

      {changelog.title}

      diff --git a/apps/web/src/components/marketing/monitor/card.tsx b/apps/web/src/components/marketing/monitor/card.tsx index b2d2b9eba..ed645c391 100644 --- a/apps/web/src/components/marketing/monitor/card.tsx +++ b/apps/web/src/components/marketing/monitor/card.tsx @@ -25,7 +25,10 @@ export function MonitoringCard() { - {features?.map((feature, i) => )} + {features?.map((feature, i) => ( + // biome-ignore lint/suspicious/noArrayIndexKey: + + ))}
      -

      +

      {error}

      diff --git a/apps/web/src/components/ping-response-analysis/response-assertion.tsx b/apps/web/src/components/ping-response-analysis/response-assertion.tsx index 73b94756d..aa07f9c52 100644 --- a/apps/web/src/components/ping-response-analysis/response-assertion.tsx +++ b/apps/web/src/components/ping-response-analysis/response-assertion.tsx @@ -29,6 +29,7 @@ export function ResponseAssertion({ assertions }: { assertions: Assertion[] }) { {assertions.map((a, i) => { if (a.schema.type === "status") { return ( + // biome-ignore lint/suspicious/noArrayIndexKey: Status Code @@ -40,8 +41,10 @@ export function ResponseAssertion({ assertions }: { assertions: Assertion[] }) { {a.schema.target} ); - } else if (a.schema.type === "header") { + } + if (a.schema.type === "header") { return ( + // biome-ignore lint/suspicious/noArrayIndexKey: Header {a.schema.key} diff --git a/apps/web/src/components/ping-response-analysis/response-detail-tabs.tsx b/apps/web/src/components/ping-response-analysis/response-detail-tabs.tsx index 1b50890ca..589766d32 100644 --- a/apps/web/src/components/ping-response-analysis/response-detail-tabs.tsx +++ b/apps/web/src/components/ping-response-analysis/response-detail-tabs.tsx @@ -57,13 +57,13 @@ export async function ResponseDetailTabs({ {message ? (
                     {message}
                   
      -

      +

      Response Message

      diff --git a/apps/web/src/components/ping-response-analysis/response-header-analysis.tsx b/apps/web/src/components/ping-response-analysis/response-header-analysis.tsx index 7c550a6a9..f47487d2c 100644 --- a/apps/web/src/components/ping-response-analysis/response-header-analysis.tsx +++ b/apps/web/src/components/ping-response-analysis/response-header-analysis.tsx @@ -1,7 +1,7 @@ import "@openstatus/header-analysis"; -import React from "react"; import { Info } from "lucide-react"; +import React from "react"; import { parseCacheControlHeader, @@ -46,7 +46,7 @@ export function ResponseHeaderAnalysis({ return ( - + @@ -92,7 +92,7 @@ function CacheControl({ header }: { header: string }) { return (

      - {name}{" "} + {name}{" "} {value !== undefined ? ({value}) : null}

      {description}

      @@ -109,7 +109,7 @@ function CfCacheStatus({ header }: { header: string }) { return (

      - {value} + {value}

      {description}

      @@ -122,7 +122,7 @@ function XVercelCache({ header }: { header: string }) { return (

      - {value} + {value}

      {description}

      @@ -134,7 +134,7 @@ export function XVercelId({ header }: { header: string }) { return (
      -

      +

      This header contains a list of Edge regions your request hit, as well as the region the function was executed in (for both Edge and Serverless):

      @@ -145,7 +145,7 @@ export function XVercelId({ header }: { header: string }) { value.data.map(({ code, location, flag }) => (

      - + {code}

      @@ -165,7 +165,7 @@ export function CfRay({ header }: { header: string }) { return (
      -

      +

      This header is a hashed value that encodes information about the data center and the visitor’s request. The data center the request hit is:

      @@ -174,7 +174,7 @@ export function CfRay({ header }: { header: string }) { ) : (

      - + {value.data.code}

      @@ -196,7 +196,7 @@ export function Location({ }) { return (
      -

      +

      This header in HTTP responses is used to redirect the client to a new URL. It is often seen with status codes like 301 (Moved Permanently) and 302 (Found), guiding the client's @@ -204,7 +204,7 @@ export function Location({

      - {status} + {status}

      {header}

      @@ -217,7 +217,7 @@ export function FlyRequestId({ header }: { header: string }) { return (
      -

      +

      This header is a hashed value that encodes information about the data center and the visitor’s request. The data center the request hit is:

      @@ -226,7 +226,7 @@ export function FlyRequestId({ header }: { header: string }) { ) : (

      - + {value.data.code}

      diff --git a/apps/web/src/components/ping-response-analysis/response-timing-table.tsx b/apps/web/src/components/ping-response-analysis/response-timing-table.tsx index d40721cea..bb9a019f6 100644 --- a/apps/web/src/components/ping-response-analysis/response-timing-table.tsx +++ b/apps/web/src/components/ping-response-analysis/response-timing-table.tsx @@ -50,7 +50,7 @@ export function ResponseTimingTable({

      {short}

      {!hideInfo ? ( - + @@ -74,7 +74,7 @@ export function ResponseTimingTable({ }} />
      ...acc, [key]: value, }; diff --git a/apps/web/src/components/play/card.tsx b/apps/web/src/components/play/card.tsx index 9169e3cd8..a27f106ea 100644 --- a/apps/web/src/components/play/card.tsx +++ b/apps/web/src/components/play/card.tsx @@ -1,5 +1,5 @@ -import Link from "next/link"; import type { LucideIcon } from "lucide-react"; +import Link from "next/link"; import { Button } from "@openstatus/ui"; @@ -37,7 +37,7 @@ export function Card({ return ( -
      - {Icon && } +
      + {Icon && }
      diff --git a/apps/web/src/components/status-page/monitor-list.tsx b/apps/web/src/components/status-page/monitor-list.tsx index 5b561d0c9..db2bfd5d6 100644 --- a/apps/web/src/components/status-page/monitor-list.tsx +++ b/apps/web/src/components/status-page/monitor-list.tsx @@ -19,7 +19,7 @@ export const MonitorList = ({ }) => { return (
      - {monitors.map((monitor, index) => { + {monitors.map((monitor, _index) => { const monitorStatusReport = statusReports.filter((statusReport) => statusReport.monitorsToStatusReports.some( (i) => i.monitor.id === monitor.id, @@ -30,7 +30,7 @@ export const MonitorList = ({ ); return (
      -

      {details.long}

      +

      {details.long}

      @@ -38,13 +38,13 @@ export async function StatusCheck({ export function StatusIcon({ variant }: { variant: StatusVariant }) { if (variant === "incident") { const AlertTriangleIcon = Icons["alert-triangle"]; - return ; + return ; } if (variant === "degraded") { - return ; + return ; } if (variant === "down") { - return ; + return ; } - return ; + return ; } diff --git a/apps/web/src/components/status-page/status-report-list.tsx b/apps/web/src/components/status-page/status-report-list.tsx index 303dc4317..9598cc952 100644 --- a/apps/web/src/components/status-page/status-report-list.tsx +++ b/apps/web/src/components/status-page/status-report-list.tsx @@ -23,14 +23,14 @@ export const StatusReportList = ({ return statusReports.filter((report) => { if (filter.open && report.status !== "resolved") return true; return report.statusReportUpdates.some( - (update) => update.date.getTime() > filter?.date?.getTime(), + (update) => update.date.getTime() > filter?.date?.getTime() ); }); } const reports = getFilteredReports().sort((a, b) => { - if (a.updatedAt == undefined) return 1; - if (b.updatedAt == undefined) return -1; + if (a.updatedAt === undefined || a.updatedAt === null) return 1; + if (b?.updatedAt === undefined || b.updatedAt === null) return -1; return b.updatedAt.getTime() - a.updatedAt.getTime(); }); @@ -64,7 +64,7 @@ export const StatusReportList = ({ function EmptyState() { return ( -

      +

      No incident reported.

      ); diff --git a/apps/web/src/components/status-page/status-report.tsx b/apps/web/src/components/status-page/status-report.tsx index 8b719dbb2..e239f880e 100644 --- a/apps/web/src/components/status-page/status-report.tsx +++ b/apps/web/src/components/status-page/status-report.tsx @@ -1,10 +1,10 @@ "use client"; -import { Fragment } from "react"; -import Link from "next/link"; -import { useParams } from "next/navigation"; import { format } from "date-fns"; import { ChevronRight } from "lucide-react"; +import Link from "next/link"; +import { useParams } from "next/navigation"; +import { Fragment } from "react"; import type { PublicMonitor, @@ -38,7 +38,7 @@ function StatusReportHeader({ report }: { report: StatusReportWithUpdates }) { const params = useParams<{ domain: string }>(); return (
      -

      {report.title}

      +

      {report.title}

      diff --git a/apps/web/src/components/status-update/events.tsx b/apps/web/src/components/status-update/events.tsx index 0083019ab..92711f467 100644 --- a/apps/web/src/components/status-update/events.tsx +++ b/apps/web/src/components/status-update/events.tsx @@ -1,7 +1,7 @@ "use client"; -import * as React from "react"; import { format } from "date-fns"; +import * as React from "react"; import type { StatusReportUpdate } from "@openstatus/db/src/schema"; import { Button } from "@openstatus/ui"; @@ -45,21 +45,21 @@ export function Events({
      -
      +
      {i !== sortedArray.length - 1 ? ( -
      +
      ) : null}
      {editable ? ( -
      +
      ) : undefined}
      -

      {label}

      -

      +

      {label}

      +

      {format(new Date(update.date), "LLL dd, y HH:mm")} @@ -103,7 +103,7 @@ function EventMessage({ return (

      diff --git a/apps/web/src/components/status-update/summary.tsx b/apps/web/src/components/status-update/summary.tsx index 0ff90bea6..aaa213f08 100644 --- a/apps/web/src/components/status-update/summary.tsx +++ b/apps/web/src/components/status-update/summary.tsx @@ -14,7 +14,7 @@ export function Summary({ monitors, }: { report: StatusReport & { statusReportUpdates: StatusReportUpdate[] }; - monitors: Pick[]; + monitors: Pick[]; }) { const firstUpdate = report.statusReportUpdates?.[0]; const lastUpdate = @@ -22,13 +22,13 @@ export function Summary({ return (
      -

      Started

      +

      Started

      {firstUpdate ? ( {format(new Date(firstUpdate.date), "LLL dd, y HH:mm")} ) : null}

      -

      Status

      +

      Status

      {firstUpdate && lastUpdate && report.status === "resolved" ? ( @@ -37,11 +37,11 @@ export function Summary({ ) : null}
      -

      Affected

      -
        +

        Affected

        +
          {monitors.length > 0 ? ( - monitors.map(({ name }, i) => ( -
        • + monitors.map(({ name, id }) => ( +
        • {name}
        • )) diff --git a/apps/web/src/components/svg/trigger.tsx b/apps/web/src/components/svg/trigger.tsx index 3f2913471..6ea040a48 100644 --- a/apps/web/src/components/svg/trigger.tsx +++ b/apps/web/src/components/svg/trigger.tsx @@ -6,53 +6,53 @@ export function Trigger(props: SVGAttributes) { + /> + /> + /> + /> + /> + /> + /> + /> + /> + /> + /> + /> ) { y2="13.9297" gradientUnits="userSpaceOnUse" > - - + + ) { y2="13.9297" gradientUnits="userSpaceOnUse" > - - + + ) { y2="13.9297" gradientUnits="userSpaceOnUse" > - - + + ) { y2="13.9297" gradientUnits="userSpaceOnUse" > - - + + ) { y2="13.9297" gradientUnits="userSpaceOnUse" > - - + + ) { y2="13.9297" gradientUnits="userSpaceOnUse" > - - + + ) { y2="13.9297" gradientUnits="userSpaceOnUse" > - - + + ) { y2="25.9719" gradientUnits="userSpaceOnUse" > - - + + ) { y2="25.9719" gradientUnits="userSpaceOnUse" > - - + + ) { y2="25.9719" gradientUnits="userSpaceOnUse" > - - + + ) { y2="25.9719" gradientUnits="userSpaceOnUse" > - - + + ) { y2="31.2381" gradientUnits="userSpaceOnUse" > - - + + diff --git a/apps/web/src/components/tailwind-indicator.tsx b/apps/web/src/components/tailwind-indicator.tsx index b2ada3c52..c5b58f24b 100644 --- a/apps/web/src/components/tailwind-indicator.tsx +++ b/apps/web/src/components/tailwind-indicator.tsx @@ -2,7 +2,7 @@ export function TailwindIndicator() { if (process.env.NODE_ENV === "production") return null; return ( -
          +
          xs
          sm
          md
          diff --git a/apps/web/src/components/theme-provider.tsx b/apps/web/src/components/theme-provider.tsx index b7792a0f1..f670c8e30 100644 --- a/apps/web/src/components/theme-provider.tsx +++ b/apps/web/src/components/theme-provider.tsx @@ -1,8 +1,8 @@ "use client"; -import * as React from "react"; import { ThemeProvider as NextThemesProvider } from "next-themes"; import type { ThemeProviderProps } from "next-themes/dist/types"; +import * as React from "react"; export function ThemeProvider({ children, ...props }: ThemeProviderProps) { return {children}; diff --git a/apps/web/src/components/theme-toggle.tsx b/apps/web/src/components/theme-toggle.tsx index fbe53fbd6..bcba989a4 100644 --- a/apps/web/src/components/theme-toggle.tsx +++ b/apps/web/src/components/theme-toggle.tsx @@ -1,7 +1,7 @@ "use client"; -import * as React from "react"; import { useTheme } from "next-themes"; +import * as React from "react"; import { Button, @@ -20,7 +20,7 @@ export function ThemeToggle() { diff --git a/apps/web/src/components/tracker/tracker.tsx b/apps/web/src/components/tracker/tracker.tsx index bc0712f8b..6136e20d9 100644 --- a/apps/web/src/components/tracker/tracker.tsx +++ b/apps/web/src/components/tracker/tracker.tsx @@ -1,10 +1,10 @@ "use client"; -import * as React from "react"; -import Link from "next/link"; import { cva } from "class-variance-authority"; import { endOfDay, format, formatDuration, startOfDay } from "date-fns"; import { ChevronRight, Info } from "lucide-react"; +import Link from "next/link"; +import * as React from "react"; import type { Incident, @@ -12,7 +12,7 @@ import type { StatusReportUpdate, } from "@openstatus/db/src/schema"; import type { Monitor } from "@openstatus/tinybird"; -import { classNames, Tracker as OSTracker } from "@openstatus/tracker"; +import { Tracker as OSTracker, classNames } from "@openstatus/tracker"; import { HoverCard, HoverCardContent, @@ -67,7 +67,7 @@ export function Tracker({
          -

          {name}

          +

          {name}

          {description ? ( @@ -82,17 +82,18 @@ export function Tracker({ ) : null}
          {!isMissing ? ( -

          {uptime}%

          +

          {uptime}%

          ) : null}
          {tracker.days.map((props, i) => { + // biome-ignore lint/suspicious/noArrayIndexKey: return ; })}
          -
          +

          {tracker.days.length} days ago

          Today

          @@ -147,11 +148,11 @@ export const Bar = ({

          {label}

          -

          +

          {format(new Date(day), "MMM d")}

          -
          +

          {count} requests

          @@ -188,7 +189,7 @@ export function StatusReportList({ reports }: { reports: StatusReport[] }) { {report.title} diff --git a/apps/web/src/components/workspace/select-workspace.tsx b/apps/web/src/components/workspace/select-workspace.tsx index fc871ce84..80d295602 100644 --- a/apps/web/src/components/workspace/select-workspace.tsx +++ b/apps/web/src/components/workspace/select-workspace.tsx @@ -1,9 +1,9 @@ "use client"; -import * as React from "react"; +import { Check, ChevronsUpDown, Plus } from "lucide-react"; import Link from "next/link"; import { usePathname } from "next/navigation"; -import { Check, ChevronsUpDown, Plus } from "lucide-react"; +import * as React from "react"; import type { Workspace } from "@openstatus/db/src/schema"; import { diff --git a/apps/web/src/config/pages.ts b/apps/web/src/config/pages.ts index 36dcb1774..6a4dfb3fb 100644 --- a/apps/web/src/config/pages.ts +++ b/apps/web/src/config/pages.ts @@ -245,10 +245,11 @@ export function getPageBySegment( if (typeof segment === "string") { const page = currentPage.find((page) => page.segment === segment); return page; - } else if (Array.isArray(segment) && segment.length > 0) { + } + if (Array.isArray(segment) && segment.length > 0) { const [firstSegment, ...restSegments] = segment; const childPage = currentPage.find((page) => page.segment === firstSegment); - if (childPage && childPage.children) { + if (childPage?.children) { return getPageBySegment(restSegments, childPage.children); } return childPage; diff --git a/apps/web/src/contentlayer/documents/faq.ts b/apps/web/src/contentlayer/documents/faq.ts index 3fb422b6d..ba5314fe2 100644 --- a/apps/web/src/contentlayer/documents/faq.ts +++ b/apps/web/src/contentlayer/documents/faq.ts @@ -2,7 +2,7 @@ import { defineDocumentType } from "contentlayer/source-files"; export const FAQ = defineDocumentType(() => ({ name: "FAQ", - filePathPattern: `faq/*.mdx`, + filePathPattern: "faq/*.mdx", contentType: "mdx", fields: { title: { diff --git a/apps/web/src/contentlayer/documents/legal.ts b/apps/web/src/contentlayer/documents/legal.ts index d1580e663..05e688527 100644 --- a/apps/web/src/contentlayer/documents/legal.ts +++ b/apps/web/src/contentlayer/documents/legal.ts @@ -2,7 +2,7 @@ import { defineDocumentType } from "contentlayer/source-files"; export const LegalPost = defineDocumentType(() => ({ name: "LegalPost", - filePathPattern: `legal/*.mdx`, + filePathPattern: "legal/*.mdx", contentType: "mdx", fields: { title: { diff --git a/apps/web/src/contentlayer/documents/unrelated.ts b/apps/web/src/contentlayer/documents/unrelated.ts index 167b1846c..c34313d85 100644 --- a/apps/web/src/contentlayer/documents/unrelated.ts +++ b/apps/web/src/contentlayer/documents/unrelated.ts @@ -2,7 +2,7 @@ import { defineDocumentType } from "contentlayer/source-files"; export const Unrelated = defineDocumentType(() => ({ name: "Unrelated", - filePathPattern: `unrelated/*.mdx`, + filePathPattern: "unrelated/*.mdx", contentType: "mdx", fields: {}, computedFields: { diff --git a/apps/web/src/contentlayer/plugins/autolink-headings.ts b/apps/web/src/contentlayer/plugins/autolink-headings.ts index b85f49f54..d1e780775 100644 --- a/apps/web/src/contentlayer/plugins/autolink-headings.ts +++ b/apps/web/src/contentlayer/plugins/autolink-headings.ts @@ -1,6 +1,7 @@ import rehypeAutolinkHeadings from "rehype-autolink-headings"; import type * as unified from "unified"; +// biome-ignore lint/suspicious/noExplicitAny: const autolinkHeadings: unified.Pluggable = [ rehypeAutolinkHeadings, { diff --git a/apps/web/src/contentlayer/plugins/pretty-code.ts b/apps/web/src/contentlayer/plugins/pretty-code.ts index 3f692179f..3508580e3 100644 --- a/apps/web/src/contentlayer/plugins/pretty-code.ts +++ b/apps/web/src/contentlayer/plugins/pretty-code.ts @@ -3,10 +3,12 @@ import type * as unified from "unified"; // props to https://rehype-pretty-code.netlify.app/ +// biome-ignore lint/suspicious/noExplicitAny: ContentLayer const prettyCode: unified.Pluggable = [ rehypePrettyCode, { theme: "github-light", + // biome-ignore lint/suspicious/noExplicitAny: onVisitLine(node: any) { // Prevent lines from collapsing in `display: grid` mode, and // allow empty lines to be copy/pasted @@ -14,9 +16,11 @@ const prettyCode: unified.Pluggable = [ node.children = [{ type: "text", value: " " }]; } }, + // biome-ignore lint/suspicious/noExplicitAny: ContentLayer onVisitHighlightedLine(node: any) { node.properties.className.push("highlighted"); }, + // biome-ignore lint/suspicious/noExplicitAny: ContentLayer onVisitHighlightedWord(node: any) { node.properties.className = ["word"]; }, diff --git a/apps/web/src/env.ts b/apps/web/src/env.ts index 6a29407d8..2be1d6d22 100644 --- a/apps/web/src/env.ts +++ b/apps/web/src/env.ts @@ -1,8 +1,8 @@ import { createEnv } from "@t3-oss/env-nextjs"; import { z } from "zod"; -import "@openstatus/db/env.mjs"; import "@openstatus/analytics/env"; +import "@openstatus/db/env.mjs"; export const env = createEnv({ server: { diff --git a/apps/web/src/hooks/use-cookie-state.ts b/apps/web/src/hooks/use-cookie-state.ts index 648de1c62..c41666bec 100644 --- a/apps/web/src/hooks/use-cookie-state.ts +++ b/apps/web/src/hooks/use-cookie-state.ts @@ -15,6 +15,7 @@ export function useCookieState(name: string, defaultValue?: string) { [name], ); + // biome-ignore lint/correctness/useExhaustiveDependencies: useEffect(() => { if (document) { const cookie = document.cookie diff --git a/apps/web/src/hooks/use-domain-status.ts b/apps/web/src/hooks/use-domain-status.ts index dd82b4a5a..899de22d7 100644 --- a/apps/web/src/hooks/use-domain-status.ts +++ b/apps/web/src/hooks/use-domain-status.ts @@ -47,7 +47,7 @@ export async function verifyDomain(domain: string) { const verificationJson = await api.domain.verifyDomain.query({ domain }); // domain was just verified - if (verificationJson && verificationJson.verified) { + if (verificationJson?.verified) { status = "Valid Configuration"; } } else if (configJson.misconfigured) { diff --git a/apps/web/src/hooks/use-preprocessor.tsx b/apps/web/src/hooks/use-preprocessor.tsx index c0608b384..6dfde6377 100644 --- a/apps/web/src/hooks/use-preprocessor.tsx +++ b/apps/web/src/hooks/use-preprocessor.tsx @@ -1,5 +1,5 @@ import type { AnchorHTMLAttributes } from "react"; -import { createElement, Fragment, useEffect, useState } from "react"; +import { Fragment, createElement, useEffect, useState } from "react"; import rehypeReact from "rehype-react"; import remarkParse from "remark-parse"; import remarkRehype from "remark-rehype"; diff --git a/apps/web/src/hooks/use-update-search-params.ts b/apps/web/src/hooks/use-update-search-params.ts index 622709166..10fcb3162 100644 --- a/apps/web/src/hooks/use-update-search-params.ts +++ b/apps/web/src/hooks/use-update-search-params.ts @@ -1,5 +1,5 @@ -import * as React from "react"; import { useSearchParams } from "next/navigation"; +import * as React from "react"; export default function useUpdateSearchParams() { const searchParams = useSearchParams(); diff --git a/apps/web/src/lib/auth/index.ts b/apps/web/src/lib/auth/index.ts index 712e6609f..39bf14636 100644 --- a/apps/web/src/lib/auth/index.ts +++ b/apps/web/src/lib/auth/index.ts @@ -4,7 +4,7 @@ import NextAuth from "next-auth"; import { analytics, trackAnalytics } from "@openstatus/analytics"; import { db, eq } from "@openstatus/db"; import { user } from "@openstatus/db/src/schema"; -import { sendEmail, WelcomeEmail } from "@openstatus/emails"; +import { WelcomeEmail, sendEmail } from "@openstatus/emails"; import { adapter } from "./adapter"; import { GitHubProvider, GoogleProvider, ResendProvider } from "./providers"; diff --git a/apps/web/src/lib/domains.ts b/apps/web/src/lib/domains.ts index b1213dc48..07a6b9796 100644 --- a/apps/web/src/lib/domains.ts +++ b/apps/web/src/lib/domains.ts @@ -4,10 +4,10 @@ export const getSubdomain = (name: string, apexName: string) => { }; export const getApexDomain = (url: string) => { - let domain; + let domain: string; try { domain = new URL(url).hostname; - } catch (e) { + } catch (_e) { return ""; } const parts = domain.split("."); diff --git a/apps/web/src/lib/monitor/utils.ts b/apps/web/src/lib/monitor/utils.ts index 5654c1b40..ee8fc4afc 100644 --- a/apps/web/src/lib/monitor/utils.ts +++ b/apps/web/src/lib/monitor/utils.ts @@ -44,9 +44,10 @@ export function getDateByPeriod(period: Period) { from: subDays(startOfDay(new Date()), 14), to: endOfDay(new Date()), }; - default: + default: { const _exhaustiveCheck: never = period; throw new Error(`Unhandled period: ${_exhaustiveCheck}`); + } } } @@ -62,9 +63,10 @@ export function getHoursByPeriod(period: Period) { return 168; case "14d": return 336; - default: + default: { const _exhaustiveCheck: never = period; throw new Error(`Unhandled period: ${_exhaustiveCheck}`); + } } } @@ -80,9 +82,10 @@ export function periodFormatter(period: Period) { return "Last 7 days"; case "14d": return "Last 14 days"; - default: + default: { const _exhaustiveCheck: never = period; return _exhaustiveCheck; + } } } @@ -103,8 +106,9 @@ export function getMinutesByInterval(interval: MonitorPeriodicity) { return 60; case "other": return 60; // TODO: remove "other" from here - default: + default: { const _exhaustiveCheck: never = interval; throw new Error(`Unhandled interval: ${_exhaustiveCheck}`); + } } } diff --git a/apps/web/src/lib/tb.ts b/apps/web/src/lib/tb.ts index df3356afb..e45c3d9e7 100644 --- a/apps/web/src/lib/tb.ts +++ b/apps/web/src/lib/tb.ts @@ -1,5 +1,5 @@ import type { HomeStatsParams } from "@openstatus/tinybird"; -import { getHomeStats, Tinybird } from "@openstatus/tinybird"; +import { Tinybird, getHomeStats } from "@openstatus/tinybird"; import { env } from "@/env"; diff --git a/apps/web/src/lib/timezone.ts b/apps/web/src/lib/timezone.ts index 122171f62..4dcc2312a 100644 --- a/apps/web/src/lib/timezone.ts +++ b/apps/web/src/lib/timezone.ts @@ -1,5 +1,5 @@ -import { headers } from "next/headers"; import { format, getTimezoneOffset, utcToZonedTime } from "date-fns-tz"; +import { headers } from "next/headers"; export function getRequestHeaderTimezone() { const headersList = headers(); @@ -26,7 +26,7 @@ export function convertTimezoneToGMT(defaultTimezone?: string) { const msOffset = getTimezoneOffset(timezone); - if (isNaN(msOffset)) return "Etc/UTC"; + if (Number.isNaN(msOffset)) return "Etc/UTC"; const hrOffset = Math.round(msOffset / (1000 * 60 * 60)); // avoid weird 30min timezones const offset = hrOffset >= 0 ? `-${hrOffset}` : `+${Math.abs(hrOffset)}`; @@ -79,11 +79,10 @@ export function getClosestTimezone(defaultTimezone?: string) { timezone: curr, minDifference: timeDifferences[curr as keyof typeof timeDifferences], }; - } else { - return prev; } + return prev; }, - { timezone: "UTC", minDifference: Infinity }, + { timezone: "UTC", minDifference: Number.POSITIVE_INFINITY }, ); return closestTimezone.timezone as keyof typeof timeDifferences; diff --git a/apps/web/src/lib/utils.ts b/apps/web/src/lib/utils.ts index e7a0fe9d3..81f46096e 100644 --- a/apps/web/src/lib/utils.ts +++ b/apps/web/src/lib/utils.ts @@ -20,13 +20,14 @@ export function formatDateTime(date: Date) { } export function formatDuration(ms: number) { - if (ms < 0) ms = -ms; + let v = ms; + if (ms < 0) v = -ms; const time = { - day: Math.floor(ms / 86400000), - hour: Math.floor(ms / 3600000) % 24, - min: Math.floor(ms / 60000) % 60, - sec: Math.floor(ms / 1000) % 60, - ms: Math.floor(ms) % 1000, + day: Math.floor(v / 86400000), + hour: Math.floor(v / 3600000) % 24, + min: Math.floor(v / 60000) % 60, + sec: Math.floor(v / 1000) % 60, + ms: Math.floor(v) % 1000, }; return Object.entries(time) .filter((val) => val[1] !== 0) diff --git a/apps/web/src/middleware.ts b/apps/web/src/middleware.ts index 59c1375f9..2328823cf 100644 --- a/apps/web/src/middleware.ts +++ b/apps/web/src/middleware.ts @@ -10,17 +10,18 @@ export const getValidSubdomain = (host?: string | null) => { let subdomain: string | null = null; if (!host && typeof window !== "undefined") { // On client side, get the host from window + // biome-ignore lint: to fix later host = window.location.host; } // we should improve here for custom vercel deploy page - if (host && host.includes(".") && !host.includes(".vercel.app")) { + if (host?.includes(".") && !host.includes(".vercel.app")) { const candidate = host.split(".")[0]; if (candidate && !candidate.includes("www")) { // Valid candidate subdomain = candidate; } } - if (host && host.includes("ngrok-free.app")) { + if (host?.includes("ngrok-free.app")) { return null; } // In case the host is a custom domain @@ -83,7 +84,7 @@ export default auth(async (req) => { ); } - if (req.auth && req.auth.user?.id) { + if (req.auth?.user?.id) { if (pathname.startsWith("/app") && !isPublicAppPath) { const workspaceSlug = req.nextUrl.pathname.split("/")?.[2]; const hasWorkspaceSlug = !!workspaceSlug && workspaceSlug.trim() !== ""; @@ -93,7 +94,7 @@ export default auth(async (req) => { .from(usersToWorkspaces) .innerJoin(user, eq(user.id, usersToWorkspaces.userId)) .innerJoin(workspace, eq(workspace.id, usersToWorkspaces.workspaceId)) - .where(eq(user.id, parseInt(req.auth.user.id))) + .where(eq(user.id, Number.parseInt(req.auth.user.id))) .all(); if (hasWorkspaceSlug) { diff --git a/apps/web/src/trpc/server.ts b/apps/web/src/trpc/server.ts index 873c89139..e10a2a76d 100644 --- a/apps/web/src/trpc/server.ts +++ b/apps/web/src/trpc/server.ts @@ -1,5 +1,5 @@ -import { headers } from "next/headers"; import { createTRPCProxyClient, loggerLink } from "@trpc/client"; +import { headers } from "next/headers"; import superjson from "superjson"; import type { AppRouter } from "@openstatus/api"; diff --git a/apps/web/src/trpc/shared.ts b/apps/web/src/trpc/shared.ts index 6cdf264fc..bf0fc407c 100644 --- a/apps/web/src/trpc/shared.ts +++ b/apps/web/src/trpc/shared.ts @@ -7,7 +7,7 @@ const getBaseUrl = () => { if (typeof window !== "undefined") return ""; const vc = process.env.VERCEL_URL; if (vc) return `https://${vc}`; - return `http://localhost:3000`; + return "http://localhost:3000"; }; const lambdas = ["stripeRouter", "rumRouter"]; diff --git a/apps/web/tailwind.config.ts b/apps/web/tailwind.config.ts index 9d05c44a3..fceea32e2 100644 --- a/apps/web/tailwind.config.ts +++ b/apps/web/tailwind.config.ts @@ -1,3 +1,4 @@ +// eslint-disable-next-line @typescript-eslint/no-var-requires const { fontFamily } = require("tailwindcss/defaultTheme"); /** @@ -132,8 +133,8 @@ module.exports = { /* */ }, borderRadius: { - lg: `var(--radius)`, - md: `calc(var(--radius) - 2px)`, + lg: "var(--radius)", + md: "calc(var(--radius) - 2px)", sm: "calc(var(--radius) - 4px)", /* Tremor */ "tremor-small": "0.375rem", diff --git a/biome.jsonc b/biome.jsonc new file mode 100644 index 000000000..729147ad6 --- /dev/null +++ b/biome.jsonc @@ -0,0 +1,61 @@ +{ + "$schema": "https://biomejs.dev/schemas/1.6.2/schema.json", + "files": { + "ignore": [ + "packages/ui/src/components/*.tsx", + "packages/ui/src/components/*.ts" + ] + }, + "linter": { + "enabled": true, + "rules": { + "recommended": true, + "a11y": { + "noSvgWithoutTitle": "off" + }, + "correctness": { + "noUnusedVariables": "warn" + }, + "nursery": { + "useSortedClasses": "error" + } + }, + "ignore": [ + "node_modules", + ".next", + "dist", + ".wrangler", + ".react-email", + ".contentlayer", + "meta" + ] + }, + "formatter": { + "indentStyle": "space", + "indentWidth": 2, + "enabled": true, + "lineWidth": 80, + "ignore": [ + "node_modules", + ".next", + "dist", + ".nuxt", + ".wrangler", + ".react-email", + ".contentlayer", + "meta" + ] + }, + "organizeImports": { + "enabled": true, + "ignore": [ + "node_modules", + ".next", + "dist", + ".nuxt", + ".wrangler", + ".react-email", + ".contentlayer" + ] + } +} diff --git a/package.json b/package.json index e486597fd..5f3bd99b0 100644 --- a/package.json +++ b/package.json @@ -3,26 +3,21 @@ "scripts": { "build": "turbo run build", "dev": "turbo run dev", + "lint": "biome lint .", + "format": "pnpm biome format . --write && pnpm biome check . --apply-unsafe ", + "lint:turbo": "turbo run lint", "dev:web": "turbo run dev --filter='./apps/web' --filter='./packages/db'", "dx": "turbo run dx", - "lint": "turbo run lint", - "lint:strict": "eslint --max-warnings=0 apps/**/*.{ts,tsx}", - "format": "prettier --write \"**/*.{ts,tsx,md}\"", - "format:check": "prettier -c \"**/*.{ts,tsx,md}\"", "tsc": "tsc", "test": "turbo run test" }, "devDependencies": { - "@ianvs/prettier-plugin-sort-imports": "4.2.1", - "@openstatus/eslint-config": "workspace:*", + "@biomejs/biome": "1.7.3", "@turbo/gen": "1.13.3", - "eslint": "8.50.0", - "prettier": "3.2.5", - "prettier-plugin-tailwindcss": "0.5.14", "turbo": "1.13.3", "typescript": "5.4.5" }, - "packageManager": "pnpm@9.1.0", + "packageManager": "pnpm@9.1.2", "name": "openstatus", "workspaces": [ "apps/*", diff --git a/packages/analytics/src/index.ts b/packages/analytics/src/index.ts index b1d2f24b5..8bf4ba54f 100644 --- a/packages/analytics/src/index.ts +++ b/packages/analytics/src/index.ts @@ -1,7 +1,7 @@ import { emptyAnalytics, jitsuAnalytics } from "@jitsu/js"; import { env } from "../env"; -import { AnalyticsEvents } from "./type"; +import type { AnalyticsEvents } from "./type"; export const analytics = env.JITSU_HOST && env.JITSU_WRITE_KEY diff --git a/packages/api/src/analytics.ts b/packages/api/src/analytics.ts index 72e0db21c..527329a54 100644 --- a/packages/api/src/analytics.ts +++ b/packages/api/src/analytics.ts @@ -1,5 +1,5 @@ import { analytics, trackAnalytics } from "@openstatus/analytics"; -import { User } from "@openstatus/db/src/schema"; +import type { User } from "@openstatus/db/src/schema"; export async function trackNewPage(user: User, config: { slug: string }) { await analytics.identify(user.id, { diff --git a/packages/api/src/router/invitation.ts b/packages/api/src/router/invitation.ts index fbf176a87..682f65589 100644 --- a/packages/api/src/router/invitation.ts +++ b/packages/api/src/router/invitation.ts @@ -60,7 +60,7 @@ export const invitationRouter = createTRPCRouter({ body: JSON.stringify({ to: email, from: "Maximilian Kaske ", - subject: `You have been invited to join OpenStatus.dev`, + subject: "You have been invited to join OpenStatus.dev", html: `

          Click here to join the workspace: accept invitation

          `, }), }); diff --git a/packages/api/src/router/monitor.ts b/packages/api/src/router/monitor.ts index d0950cb8b..275e1e552 100644 --- a/packages/api/src/router/monitor.ts +++ b/packages/api/src/router/monitor.ts @@ -2,19 +2,19 @@ import { TRPCError } from "@trpc/server"; import { z } from "zod"; import { - Assertion, + type Assertion, HeaderAssertion, - serialize, StatusAssertion, + serialize, } from "@openstatus/assertions"; import { and, eq, inArray, isNull, sql } from "@openstatus/db"; import { insertMonitorSchema, monitor, - monitorsToPages, - monitorsToStatusReport, monitorTag, monitorTagsToMonitors, + monitorsToPages, + monitorsToStatusReport, notification, notificationsToMonitors, page, diff --git a/packages/api/src/router/page.ts b/packages/api/src/router/page.ts index d264fd789..26d618368 100644 --- a/packages/api/src/router/page.ts +++ b/packages/api/src/router/page.ts @@ -59,7 +59,7 @@ export const pageRouter = createTRPCRouter({ .returning() .get(); - if (Boolean(monitorIds.length)) { + if (monitorIds.length) { // We should make sure the user has access to the monitors const allMonitors = await opts.ctx.db.query.monitor.findMany({ where: and( @@ -165,7 +165,7 @@ export const pageRouter = createTRPCRouter({ .map(({ monitorId }) => monitorId) .filter((x) => !monitorIds?.includes(x)); - if (Boolean(removedMonitors.length)) { + if (removedMonitors.length) { await opts.ctx.db .delete(monitorsToPages) .where( @@ -352,7 +352,7 @@ export const pageRouter = createTRPCRouter({ const result = await opts.ctx.db.query.page.findMany({ where: sql`lower(${page.slug}) = ${opts.input.slug}`, }); - return result?.length > 0 ? false : true; + return !(result?.length > 0); }), addCustomDomain: protectedProcedure diff --git a/packages/api/src/router/pageSubscriber.ts b/packages/api/src/router/pageSubscriber.ts index d370acce1..873b51c58 100644 --- a/packages/api/src/router/pageSubscriber.ts +++ b/packages/api/src/router/pageSubscriber.ts @@ -46,7 +46,7 @@ export const pageSubscriberRouter = createTRPCRouter({ const _page = await opts.ctx.db.query.page.findFirst({ where: and( - eq(page.id, subscriber!.pageId), + eq(page.id, subscriber.pageId), eq(page.workspaceId, opts.ctx.workspace.id), ), }); @@ -79,7 +79,7 @@ export const pageSubscriberRouter = createTRPCRouter({ const _page = await opts.ctx.db.query.page.findFirst({ where: and( - eq(page.id, subscriber!.pageId), + eq(page.id, subscriber.pageId), eq(page.workspaceId, opts.ctx.workspace.id), ), }); diff --git a/packages/api/src/router/rum/index.ts b/packages/api/src/router/rum/index.ts index 380277db1..56dcf4451 100644 --- a/packages/api/src/router/rum/index.ts +++ b/packages/api/src/router/rum/index.ts @@ -45,7 +45,7 @@ export const rumRouter = createTRPCRouter({ } const d = schema.parse(result); return d.length > 0 ? d[0] : null; - } catch (e) { + } catch (_e) { return null; } }), @@ -105,7 +105,9 @@ export const rumRouter = createTRPCRouter({ ); const d = schema.parse(result); const r = d.reduce((acc, curr) => { + // biome-ignore lint: acc = { + // biome-ignore lint/performance/noAccumulatingSpread: ...acc, [`${String(curr.event_name).toLowerCase()}Value`]: curr.value, }; diff --git a/packages/api/src/router/statusReport.ts b/packages/api/src/router/statusReport.ts index 15a2ef67c..e2e391d35 100644 --- a/packages/api/src/router/statusReport.ts +++ b/packages/api/src/router/statusReport.ts @@ -6,8 +6,8 @@ import { insertStatusReportUpdateSchema, monitorsToStatusReport, page, - pagesToStatusReports, pageSubscriber, + pagesToStatusReports, selectMonitorSchema, selectPublicStatusReportSchemaWithRelation, selectStatusReportSchema, @@ -176,7 +176,7 @@ export const statusReportRouter = createTRPCRouter({ .includes(x), ); - if (Boolean(addedMonitors.length)) { + if (addedMonitors.length) { const values = addedMonitors.map((monitorId) => ({ monitorId: monitorId, statusReportId: currentStatusReport.id, @@ -189,7 +189,7 @@ export const statusReportRouter = createTRPCRouter({ .map(({ monitorId }) => monitorId) .filter((x) => !monitors?.includes(x)); - if (Boolean(removedMonitors.length)) { + if (removedMonitors.length) { await opts.ctx.db .delete(monitorsToStatusReport) .where( @@ -212,7 +212,7 @@ export const statusReportRouter = createTRPCRouter({ !currentPagesToStatusReports.map(({ pageId }) => pageId)?.includes(x), ); - if (Boolean(addedPages.length)) { + if (addedPages.length) { const values = addedPages.map((pageId) => ({ pageId, statusReportId: currentStatusReport.id, @@ -225,7 +225,7 @@ export const statusReportRouter = createTRPCRouter({ .map(({ pageId }) => pageId) .filter((x) => !pages?.includes(x)); - if (Boolean(removedPages.length)) { + if (removedPages.length) { await opts.ctx.db .delete(pagesToStatusReports) .where( diff --git a/packages/api/src/router/stripe/index.ts b/packages/api/src/router/stripe/index.ts index 45037aecc..55aa4c7fe 100644 --- a/packages/api/src/router/stripe/index.ts +++ b/packages/api/src/router/stripe/index.ts @@ -10,7 +10,7 @@ import { import { createTRPCRouter, protectedProcedure } from "../../trpc"; import { stripe } from "./shared"; -import { getPriceIdForPlan, PLANS } from "./utils"; +import { PLANS, getPriceIdForPlan } from "./utils"; import { webhookRouter } from "./webhook"; const url = diff --git a/packages/api/src/router/stripe/utils.ts b/packages/api/src/router/stripe/utils.ts index 5d6285e61..dc0c12725 100644 --- a/packages/api/src/router/stripe/utils.ts +++ b/packages/api/src/router/stripe/utils.ts @@ -1,17 +1,17 @@ // Shamelessly stolen from dub.co -import { WorkspacePlan } from "@openstatus/db/src/schema"; +import type { WorkspacePlan } from "@openstatus/db/src/schema"; export const getPlanFromPriceId = (priceId: string) => { const env = process.env.NEXT_PUBLIC_VERCEL_ENV === "production" ? "production" : "test"; - return PLANS.find((plan) => plan.price.monthly.priceIds[env] === priceId)!; + return PLANS.find((plan) => plan.price.monthly.priceIds[env] === priceId); }; export const getPriceIdForPlan = (plan: WorkspacePlan) => { const env = process.env.NEXT_PUBLIC_VERCEL_ENV === "production" ? "production" : "test"; - return PLANS.find((p) => p.plan === plan)!.price.monthly.priceIds[env]; + return PLANS.find((p) => p.plan === plan)?.price.monthly.priceIds[env]; }; export const PLANS = [ { diff --git a/packages/api/src/router/stripe/webhook.ts b/packages/api/src/router/stripe/webhook.ts index 8cf0e9836..f06499245 100644 --- a/packages/api/src/router/stripe/webhook.ts +++ b/packages/api/src/router/stripe/webhook.ts @@ -53,7 +53,13 @@ export const webhookRouter = createTRPCRouter({ }); } const plan = getPlanFromPriceId(subscription.items.data[0].price.id); - + if (!plan) { + console.error("Invalid plan"); + throw new TRPCError({ + code: "BAD_REQUEST", + message: "Invalid plan", + }); + } await opts.ctx.db .update(workspace) .set({ diff --git a/packages/api/src/router/tinybird/index.ts b/packages/api/src/router/tinybird/index.ts index 225719c42..4d5dcc0a9 100644 --- a/packages/api/src/router/tinybird/index.ts +++ b/packages/api/src/router/tinybird/index.ts @@ -19,7 +19,7 @@ export const tinybirdRouter = createTRPCRouter({ monitorMetricsFromWorkspace: protectedProcedure .input(z.object({ period: z.string() })) .query(async (opts) => { - const workspaceId = String(opts.ctx.workspace.id); + const _workspaceId = String(opts.ctx.workspace.id); }), responseDetails: protectedProcedure diff --git a/packages/api/src/router/workspace.ts b/packages/api/src/router/workspace.ts index 6ad3e3722..5e1afce59 100644 --- a/packages/api/src/router/workspace.ts +++ b/packages/api/src/router/workspace.ts @@ -14,7 +14,7 @@ import { workspace, workspacePlanSchema, } from "@openstatus/db/src/schema"; -import { Limits } from "@openstatus/plans"; +import type { Limits } from "@openstatus/plans"; import { createTRPCRouter, protectedProcedure } from "../trpc"; @@ -166,12 +166,16 @@ export const workspaceRouter = createTRPCRouter({ // TODO: Create subscription switch (opts.input.plan) { case "free": { + break; } case "starter": { + break; } case "team": { + break; } case "pro": { + break; } default: { } diff --git a/packages/api/src/trpc.ts b/packages/api/src/trpc.ts index 67b3ea352..6a228a133 100644 --- a/packages/api/src/trpc.ts +++ b/packages/api/src/trpc.ts @@ -1,5 +1,5 @@ +import { TRPCError, type inferAsyncReturnType, initTRPC } from "@trpc/server"; import type { NextRequest } from "next/server"; -import { inferAsyncReturnType, initTRPC, TRPCError } from "@trpc/server"; import superjson from "superjson"; import { ZodError } from "zod"; @@ -8,8 +8,8 @@ import type { User, Workspace } from "@openstatus/db/src/schema"; // TODO: create a package for this import { + type DefaultSession as Session, auth, - DefaultSession as Session, } from "../../../apps/web/src/lib/auth"; /** diff --git a/packages/assertions/src/serializing.ts b/packages/assertions/src/serializing.ts index 213e902b8..9446b4e29 100644 --- a/packages/assertions/src/serializing.ts +++ b/packages/assertions/src/serializing.ts @@ -2,14 +2,14 @@ import { z } from "zod"; import type { Assertion } from "./types"; import { - base, HeaderAssertion, - headerAssertion, JsonBodyAssertion, - jsonBodyAssertion, StatusAssertion, - statusAssertion, TextBodyAssertion, + base, + headerAssertion, + jsonBodyAssertion, + statusAssertion, textBodyAssertion, } from "./v1"; diff --git a/packages/config/eslint/index.js b/packages/config/eslint/index.js deleted file mode 100644 index f7351589b..000000000 --- a/packages/config/eslint/index.js +++ /dev/null @@ -1,50 +0,0 @@ -/** @type {import("eslint").Linter.Config} */ -const config = { - extends: [ - "next", - "turbo", - "prettier", - "plugin:@typescript-eslint/recommended", - ], - parser: "@typescript-eslint/parser", - plugins: ["@typescript-eslint", "import"], - rules: { - "@next/next/no-html-link-for-pages": "off", - "turbo/no-undeclared-env-vars": "off", - "@typescript-eslint/no-explicit-any": "off", - "@typescript-eslint/no-unused-vars": [ - "warn", - { argsIgnorePattern: "^_", varsIgnorePattern: "^_" }, - ], - "@typescript-eslint/restrict-template-expressions": "off", - // restricts so you can't use {} as type. me no likey - "@typescript-eslint/ban-types": "off", - // type imports should be imported as types - "@typescript-eslint/consistent-type-imports": [ - "error", - { - prefer: "type-imports", - fixStyle: "separate-type-imports", - disallowTypeAnnotations: false, - }, - ], - "import/consistent-type-specifier-style": ["error", "prefer-top-level"], - }, - - parserOptions: { - ecmaFeatures: { - jsx: true, - }, - }, - ignorePatterns: [ - "**/*.config.js", - "**/*.config.cjs", - ".eslintrc.cjs", - "packages/config/**", - "**/dist/**", - "**/.next/**", - ], - reportUnusedDisableDirectives: true, -}; - -module.exports = config; diff --git a/packages/config/eslint/package.json b/packages/config/eslint/package.json deleted file mode 100644 index 10e5f4efb..000000000 --- a/packages/config/eslint/package.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "@openstatus/eslint-config", - "version": "0.0.0", - "main": "index.js", - "license": "MIT", - "dependencies": { - "@types/eslint": "8.44.3", - "@typescript-eslint/eslint-plugin": "6.7.3", - "@typescript-eslint/parser": "6.7.3", - "eslint-config-next": "14.2.3", - "eslint-config-prettier": "9.0.0", - "eslint-config-turbo": "1.10.14", - "eslint-plugin-import": "2.28.1", - "eslint-plugin-react": "7.33.2" - }, - "devDependencies": { - "eslint": "8.50.0", - "typescript": "5.4.5" - }, - "publishConfig": { - "access": "public" - } -} diff --git a/packages/db/drizzle/meta/0000_snapshot.json b/packages/db/drizzle/meta/0000_snapshot.json index c14ceb8cb..1ff99dd06 100644 --- a/packages/db/drizzle/meta/0000_snapshot.json +++ b/packages/db/drizzle/meta/0000_snapshot.json @@ -40,13 +40,9 @@ "incident_page_id_page_id_fk": { "name": "incident_page_id_page_id_fk", "tableFrom": "incident", - "columnsFrom": [ - "page_id" - ], + "columnsFrom": ["page_id"], "tableTo": "page", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } @@ -111,9 +107,7 @@ "indexes": { "incident_update_uuid_unique": { "name": "incident_update_uuid_unique", - "columns": [ - "uuid" - ], + "columns": ["uuid"], "isUnique": true } }, @@ -121,13 +115,9 @@ "incident_update_incident_id_incident_id_fk": { "name": "incident_update_incident_id_incident_id_fk", "tableFrom": "incident_update", - "columnsFrom": [ - "incident_id" - ], + "columnsFrom": ["incident_id"], "tableTo": "incident", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } @@ -207,9 +197,7 @@ "indexes": { "page_slug_unique": { "name": "page_slug_unique", - "columns": [ - "slug" - ], + "columns": ["slug"], "isUnique": true } }, @@ -217,13 +205,9 @@ "page_workspace_id_workspace_id_fk": { "name": "page_workspace_id_workspace_id_fk", "tableFrom": "page", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } @@ -317,13 +301,9 @@ "monitor_workspace_id_workspace_id_fk": { "name": "monitor_workspace_id_workspace_id_fk", "tableFrom": "monitor", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } @@ -354,36 +334,25 @@ "monitors_to_pages_monitor_id_monitor_id_fk": { "name": "monitors_to_pages_monitor_id_monitor_id_fk", "tableFrom": "monitors_to_pages", - "columnsFrom": [ - "monitor_id" - ], + "columnsFrom": ["monitor_id"], "tableTo": "monitor", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" }, "monitors_to_pages_page_id_page_id_fk": { "name": "monitors_to_pages_page_id_page_id_fk", "tableFrom": "monitors_to_pages", - "columnsFrom": [ - "page_id" - ], + "columnsFrom": ["page_id"], "tableTo": "page", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } }, "compositePrimaryKeys": { "monitors_to_pages_monitor_id_page_id_pk": { - "columns": [ - "monitor_id", - "page_id" - ] + "columns": ["monitor_id", "page_id"] } }, "uniqueConstraints": {} @@ -417,9 +386,7 @@ "indexes": { "user_tenant_id_unique": { "name": "user_tenant_id_unique", - "columns": [ - "tenant_id" - ], + "columns": ["tenant_id"], "isUnique": true } }, @@ -450,36 +417,25 @@ "users_to_workspaces_user_id_user_id_fk": { "name": "users_to_workspaces_user_id_user_id_fk", "tableFrom": "users_to_workspaces", - "columnsFrom": [ - "user_id" - ], + "columnsFrom": ["user_id"], "tableTo": "user", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" }, "users_to_workspaces_workspace_id_workspace_id_fk": { "name": "users_to_workspaces_workspace_id_workspace_id_fk", "tableFrom": "users_to_workspaces", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } }, "compositePrimaryKeys": { "users_to_workspaces_user_id_workspace_id_pk": { - "columns": [ - "user_id", - "workspace_id" - ] + "columns": ["user_id", "workspace_id"] } }, "uniqueConstraints": {} @@ -527,16 +483,12 @@ "indexes": { "workspace_slug_unique": { "name": "workspace_slug_unique", - "columns": [ - "slug" - ], + "columns": ["slug"], "isUnique": true }, "workspace_stripe_id_unique": { "name": "workspace_stripe_id_unique", - "columns": [ - "stripe_id" - ], + "columns": ["stripe_id"], "isUnique": true } }, @@ -552,4 +504,4 @@ }, "id": "41c8003d-9f2a-4d3e-9e11-b3d4076fe395", "prevId": "00000000-0000-0000-0000-000000000000" -} \ No newline at end of file +} diff --git a/packages/db/drizzle/meta/0001_snapshot.json b/packages/db/drizzle/meta/0001_snapshot.json index 215429c05..5f4936df4 100644 --- a/packages/db/drizzle/meta/0001_snapshot.json +++ b/packages/db/drizzle/meta/0001_snapshot.json @@ -40,13 +40,9 @@ "incident_page_id_page_id_fk": { "name": "incident_page_id_page_id_fk", "tableFrom": "incident", - "columnsFrom": [ - "page_id" - ], + "columnsFrom": ["page_id"], "tableTo": "page", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } @@ -111,9 +107,7 @@ "indexes": { "incident_update_uuid_unique": { "name": "incident_update_uuid_unique", - "columns": [ - "uuid" - ], + "columns": ["uuid"], "isUnique": true } }, @@ -121,13 +115,9 @@ "incident_update_incident_id_incident_id_fk": { "name": "incident_update_incident_id_incident_id_fk", "tableFrom": "incident_update", - "columnsFrom": [ - "incident_id" - ], + "columnsFrom": ["incident_id"], "tableTo": "incident", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } @@ -207,9 +197,7 @@ "indexes": { "page_slug_unique": { "name": "page_slug_unique", - "columns": [ - "slug" - ], + "columns": ["slug"], "isUnique": true } }, @@ -217,13 +205,9 @@ "page_workspace_id_workspace_id_fk": { "name": "page_workspace_id_workspace_id_fk", "tableFrom": "page", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } @@ -325,13 +309,9 @@ "monitor_workspace_id_workspace_id_fk": { "name": "monitor_workspace_id_workspace_id_fk", "tableFrom": "monitor", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } @@ -362,36 +342,25 @@ "monitors_to_pages_monitor_id_monitor_id_fk": { "name": "monitors_to_pages_monitor_id_monitor_id_fk", "tableFrom": "monitors_to_pages", - "columnsFrom": [ - "monitor_id" - ], + "columnsFrom": ["monitor_id"], "tableTo": "monitor", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" }, "monitors_to_pages_page_id_page_id_fk": { "name": "monitors_to_pages_page_id_page_id_fk", "tableFrom": "monitors_to_pages", - "columnsFrom": [ - "page_id" - ], + "columnsFrom": ["page_id"], "tableTo": "page", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } }, "compositePrimaryKeys": { "monitors_to_pages_monitor_id_page_id_pk": { - "columns": [ - "monitor_id", - "page_id" - ] + "columns": ["monitor_id", "page_id"] } }, "uniqueConstraints": {} @@ -425,9 +394,7 @@ "indexes": { "user_tenant_id_unique": { "name": "user_tenant_id_unique", - "columns": [ - "tenant_id" - ], + "columns": ["tenant_id"], "isUnique": true } }, @@ -458,36 +425,25 @@ "users_to_workspaces_user_id_user_id_fk": { "name": "users_to_workspaces_user_id_user_id_fk", "tableFrom": "users_to_workspaces", - "columnsFrom": [ - "user_id" - ], + "columnsFrom": ["user_id"], "tableTo": "user", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" }, "users_to_workspaces_workspace_id_workspace_id_fk": { "name": "users_to_workspaces_workspace_id_workspace_id_fk", "tableFrom": "users_to_workspaces", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } }, "compositePrimaryKeys": { "users_to_workspaces_user_id_workspace_id_pk": { - "columns": [ - "user_id", - "workspace_id" - ] + "columns": ["user_id", "workspace_id"] } }, "uniqueConstraints": {} @@ -535,16 +491,12 @@ "indexes": { "workspace_slug_unique": { "name": "workspace_slug_unique", - "columns": [ - "slug" - ], + "columns": ["slug"], "isUnique": true }, "workspace_stripe_id_unique": { "name": "workspace_stripe_id_unique", - "columns": [ - "stripe_id" - ], + "columns": ["stripe_id"], "isUnique": true } }, @@ -560,4 +512,4 @@ }, "id": "762acc59-e72a-4ca4-b3fa-2cfd65cdf49a", "prevId": "41c8003d-9f2a-4d3e-9e11-b3d4076fe395" -} \ No newline at end of file +} diff --git a/packages/db/drizzle/meta/0002_snapshot.json b/packages/db/drizzle/meta/0002_snapshot.json index 90d29ed92..92ecf82df 100644 --- a/packages/db/drizzle/meta/0002_snapshot.json +++ b/packages/db/drizzle/meta/0002_snapshot.json @@ -40,13 +40,9 @@ "incident_page_id_page_id_fk": { "name": "incident_page_id_page_id_fk", "tableFrom": "incident", - "columnsFrom": [ - "page_id" - ], + "columnsFrom": ["page_id"], "tableTo": "page", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } @@ -111,9 +107,7 @@ "indexes": { "incident_update_uuid_unique": { "name": "incident_update_uuid_unique", - "columns": [ - "uuid" - ], + "columns": ["uuid"], "isUnique": true } }, @@ -121,13 +115,9 @@ "incident_update_incident_id_incident_id_fk": { "name": "incident_update_incident_id_incident_id_fk", "tableFrom": "incident_update", - "columnsFrom": [ - "incident_id" - ], + "columnsFrom": ["incident_id"], "tableTo": "incident", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } @@ -207,9 +197,7 @@ "indexes": { "page_slug_unique": { "name": "page_slug_unique", - "columns": [ - "slug" - ], + "columns": ["slug"], "isUnique": true } }, @@ -217,13 +205,9 @@ "page_workspace_id_workspace_id_fk": { "name": "page_workspace_id_workspace_id_fk", "tableFrom": "page", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } @@ -325,13 +309,9 @@ "monitor_workspace_id_workspace_id_fk": { "name": "monitor_workspace_id_workspace_id_fk", "tableFrom": "monitor", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } @@ -362,36 +342,25 @@ "monitors_to_pages_monitor_id_monitor_id_fk": { "name": "monitors_to_pages_monitor_id_monitor_id_fk", "tableFrom": "monitors_to_pages", - "columnsFrom": [ - "monitor_id" - ], + "columnsFrom": ["monitor_id"], "tableTo": "monitor", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" }, "monitors_to_pages_page_id_page_id_fk": { "name": "monitors_to_pages_page_id_page_id_fk", "tableFrom": "monitors_to_pages", - "columnsFrom": [ - "page_id" - ], + "columnsFrom": ["page_id"], "tableTo": "page", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } }, "compositePrimaryKeys": { "monitors_to_pages_monitor_id_page_id_pk": { - "columns": [ - "monitor_id", - "page_id" - ] + "columns": ["monitor_id", "page_id"] } }, "uniqueConstraints": {} @@ -457,9 +426,7 @@ "indexes": { "user_tenant_id_unique": { "name": "user_tenant_id_unique", - "columns": [ - "tenant_id" - ], + "columns": ["tenant_id"], "isUnique": true } }, @@ -490,36 +457,25 @@ "users_to_workspaces_user_id_user_id_fk": { "name": "users_to_workspaces_user_id_user_id_fk", "tableFrom": "users_to_workspaces", - "columnsFrom": [ - "user_id" - ], + "columnsFrom": ["user_id"], "tableTo": "user", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" }, "users_to_workspaces_workspace_id_workspace_id_fk": { "name": "users_to_workspaces_workspace_id_workspace_id_fk", "tableFrom": "users_to_workspaces", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } }, "compositePrimaryKeys": { "users_to_workspaces_user_id_workspace_id_pk": { - "columns": [ - "user_id", - "workspace_id" - ] + "columns": ["user_id", "workspace_id"] } }, "uniqueConstraints": {} @@ -567,16 +523,12 @@ "indexes": { "workspace_slug_unique": { "name": "workspace_slug_unique", - "columns": [ - "slug" - ], + "columns": ["slug"], "isUnique": true }, "workspace_stripe_id_unique": { "name": "workspace_stripe_id_unique", - "columns": [ - "stripe_id" - ], + "columns": ["stripe_id"], "isUnique": true } }, @@ -592,4 +544,4 @@ }, "id": "84c77cb9-dca1-424b-8929-c31f24ad5144", "prevId": "762acc59-e72a-4ca4-b3fa-2cfd65cdf49a" -} \ No newline at end of file +} diff --git a/packages/db/drizzle/meta/0004_snapshot.json b/packages/db/drizzle/meta/0004_snapshot.json index 9601a1be9..ad951623a 100644 --- a/packages/db/drizzle/meta/0004_snapshot.json +++ b/packages/db/drizzle/meta/0004_snapshot.json @@ -55,13 +55,9 @@ "incident_workspace_id_workspace_id_fk": { "name": "incident_workspace_id_workspace_id_fk", "tableFrom": "incident", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } @@ -129,13 +125,9 @@ "incident_update_incident_id_incident_id_fk": { "name": "incident_update_incident_id_incident_id_fk", "tableFrom": "incident_update", - "columnsFrom": [ - "incident_id" - ], + "columnsFrom": ["incident_id"], "tableTo": "incident", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } @@ -166,36 +158,25 @@ "incidents_to_monitors_monitor_id_monitor_id_fk": { "name": "incidents_to_monitors_monitor_id_monitor_id_fk", "tableFrom": "incidents_to_monitors", - "columnsFrom": [ - "monitor_id" - ], + "columnsFrom": ["monitor_id"], "tableTo": "monitor", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" }, "incidents_to_monitors_incident_id_incident_id_fk": { "name": "incidents_to_monitors_incident_id_incident_id_fk", "tableFrom": "incidents_to_monitors", - "columnsFrom": [ - "incident_id" - ], + "columnsFrom": ["incident_id"], "tableTo": "incident", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } }, "compositePrimaryKeys": { "incidents_to_monitors_monitor_id_incident_id_pk": { - "columns": [ - "incident_id", - "monitor_id" - ] + "columns": ["incident_id", "monitor_id"] } }, "uniqueConstraints": {} @@ -280,9 +261,7 @@ "indexes": { "page_slug_unique": { "name": "page_slug_unique", - "columns": [ - "slug" - ], + "columns": ["slug"], "isUnique": true } }, @@ -290,13 +269,9 @@ "page_workspace_id_workspace_id_fk": { "name": "page_workspace_id_workspace_id_fk", "tableFrom": "page", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } @@ -406,13 +381,9 @@ "monitor_workspace_id_workspace_id_fk": { "name": "monitor_workspace_id_workspace_id_fk", "tableFrom": "monitor", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } @@ -443,36 +414,25 @@ "monitors_to_pages_monitor_id_monitor_id_fk": { "name": "monitors_to_pages_monitor_id_monitor_id_fk", "tableFrom": "monitors_to_pages", - "columnsFrom": [ - "monitor_id" - ], + "columnsFrom": ["monitor_id"], "tableTo": "monitor", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" }, "monitors_to_pages_page_id_page_id_fk": { "name": "monitors_to_pages_page_id_page_id_fk", "tableFrom": "monitors_to_pages", - "columnsFrom": [ - "page_id" - ], + "columnsFrom": ["page_id"], "tableTo": "page", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } }, "compositePrimaryKeys": { "monitors_to_pages_monitor_id_page_id_pk": { - "columns": [ - "monitor_id", - "page_id" - ] + "columns": ["monitor_id", "page_id"] } }, "uniqueConstraints": {} @@ -546,9 +506,7 @@ "indexes": { "user_tenant_id_unique": { "name": "user_tenant_id_unique", - "columns": [ - "tenant_id" - ], + "columns": ["tenant_id"], "isUnique": true } }, @@ -579,36 +537,25 @@ "users_to_workspaces_user_id_user_id_fk": { "name": "users_to_workspaces_user_id_user_id_fk", "tableFrom": "users_to_workspaces", - "columnsFrom": [ - "user_id" - ], + "columnsFrom": ["user_id"], "tableTo": "user", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" }, "users_to_workspaces_workspace_id_workspace_id_fk": { "name": "users_to_workspaces_workspace_id_workspace_id_fk", "tableFrom": "users_to_workspaces", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } }, "compositePrimaryKeys": { "users_to_workspaces_user_id_workspace_id_pk": { - "columns": [ - "user_id", - "workspace_id" - ] + "columns": ["user_id", "workspace_id"] } }, "uniqueConstraints": {} @@ -664,16 +611,12 @@ "indexes": { "workspace_slug_unique": { "name": "workspace_slug_unique", - "columns": [ - "slug" - ], + "columns": ["slug"], "isUnique": true }, "workspace_stripe_id_unique": { "name": "workspace_stripe_id_unique", - "columns": [ - "stripe_id" - ], + "columns": ["stripe_id"], "isUnique": true } }, @@ -689,4 +632,4 @@ }, "id": "c7088c9f-2521-43af-884e-b7b0b81b0cb9", "prevId": "f68fee05-786b-45d6-9e08-f793e7591577" -} \ No newline at end of file +} diff --git a/packages/db/drizzle/meta/0005_snapshot.json b/packages/db/drizzle/meta/0005_snapshot.json index c3c7d3571..4f9abf810 100644 --- a/packages/db/drizzle/meta/0005_snapshot.json +++ b/packages/db/drizzle/meta/0005_snapshot.json @@ -55,13 +55,9 @@ "incident_workspace_id_workspace_id_fk": { "name": "incident_workspace_id_workspace_id_fk", "tableFrom": "incident", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } @@ -129,13 +125,9 @@ "incident_update_incident_id_incident_id_fk": { "name": "incident_update_incident_id_incident_id_fk", "tableFrom": "incident_update", - "columnsFrom": [ - "incident_id" - ], + "columnsFrom": ["incident_id"], "tableTo": "incident", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } @@ -166,36 +158,25 @@ "incidents_to_monitors_monitor_id_monitor_id_fk": { "name": "incidents_to_monitors_monitor_id_monitor_id_fk", "tableFrom": "incidents_to_monitors", - "columnsFrom": [ - "monitor_id" - ], + "columnsFrom": ["monitor_id"], "tableTo": "monitor", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" }, "incidents_to_monitors_incident_id_incident_id_fk": { "name": "incidents_to_monitors_incident_id_incident_id_fk", "tableFrom": "incidents_to_monitors", - "columnsFrom": [ - "incident_id" - ], + "columnsFrom": ["incident_id"], "tableTo": "incident", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } }, "compositePrimaryKeys": { "incidents_to_monitors_monitor_id_incident_id_pk": { - "columns": [ - "incident_id", - "monitor_id" - ] + "columns": ["incident_id", "monitor_id"] } }, "uniqueConstraints": {} @@ -281,9 +262,7 @@ "indexes": { "page_slug_unique": { "name": "page_slug_unique", - "columns": [ - "slug" - ], + "columns": ["slug"], "isUnique": true } }, @@ -291,13 +270,9 @@ "page_workspace_id_workspace_id_fk": { "name": "page_workspace_id_workspace_id_fk", "tableFrom": "page", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } @@ -407,13 +382,9 @@ "monitor_workspace_id_workspace_id_fk": { "name": "monitor_workspace_id_workspace_id_fk", "tableFrom": "monitor", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } @@ -444,36 +415,25 @@ "monitors_to_pages_monitor_id_monitor_id_fk": { "name": "monitors_to_pages_monitor_id_monitor_id_fk", "tableFrom": "monitors_to_pages", - "columnsFrom": [ - "monitor_id" - ], + "columnsFrom": ["monitor_id"], "tableTo": "monitor", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" }, "monitors_to_pages_page_id_page_id_fk": { "name": "monitors_to_pages_page_id_page_id_fk", "tableFrom": "monitors_to_pages", - "columnsFrom": [ - "page_id" - ], + "columnsFrom": ["page_id"], "tableTo": "page", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } }, "compositePrimaryKeys": { "monitors_to_pages_monitor_id_page_id_pk": { - "columns": [ - "monitor_id", - "page_id" - ] + "columns": ["monitor_id", "page_id"] } }, "uniqueConstraints": {} @@ -547,9 +507,7 @@ "indexes": { "user_tenant_id_unique": { "name": "user_tenant_id_unique", - "columns": [ - "tenant_id" - ], + "columns": ["tenant_id"], "isUnique": true } }, @@ -580,36 +538,25 @@ "users_to_workspaces_user_id_user_id_fk": { "name": "users_to_workspaces_user_id_user_id_fk", "tableFrom": "users_to_workspaces", - "columnsFrom": [ - "user_id" - ], + "columnsFrom": ["user_id"], "tableTo": "user", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" }, "users_to_workspaces_workspace_id_workspace_id_fk": { "name": "users_to_workspaces_workspace_id_workspace_id_fk", "tableFrom": "users_to_workspaces", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } }, "compositePrimaryKeys": { "users_to_workspaces_user_id_workspace_id_pk": { - "columns": [ - "user_id", - "workspace_id" - ] + "columns": ["user_id", "workspace_id"] } }, "uniqueConstraints": {} @@ -693,16 +640,12 @@ "indexes": { "workspace_slug_unique": { "name": "workspace_slug_unique", - "columns": [ - "slug" - ], + "columns": ["slug"], "isUnique": true }, "workspace_stripe_id_unique": { "name": "workspace_stripe_id_unique", - "columns": [ - "stripe_id" - ], + "columns": ["stripe_id"], "isUnique": true } }, @@ -718,4 +661,4 @@ }, "id": "84447f0c-af79-4add-93d7-eb6868983258", "prevId": "c7088c9f-2521-43af-884e-b7b0b81b0cb9" -} \ No newline at end of file +} diff --git a/packages/db/drizzle/meta/0007_snapshot.json b/packages/db/drizzle/meta/0007_snapshot.json index 85041db0c..2e5298fbe 100644 --- a/packages/db/drizzle/meta/0007_snapshot.json +++ b/packages/db/drizzle/meta/0007_snapshot.json @@ -55,13 +55,9 @@ "incident_workspace_id_workspace_id_fk": { "name": "incident_workspace_id_workspace_id_fk", "tableFrom": "incident", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } @@ -129,13 +125,9 @@ "incident_update_incident_id_incident_id_fk": { "name": "incident_update_incident_id_incident_id_fk", "tableFrom": "incident_update", - "columnsFrom": [ - "incident_id" - ], + "columnsFrom": ["incident_id"], "tableTo": "incident", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } @@ -166,36 +158,25 @@ "incidents_to_monitors_monitor_id_monitor_id_fk": { "name": "incidents_to_monitors_monitor_id_monitor_id_fk", "tableFrom": "incidents_to_monitors", - "columnsFrom": [ - "monitor_id" - ], + "columnsFrom": ["monitor_id"], "tableTo": "monitor", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" }, "incidents_to_monitors_incident_id_incident_id_fk": { "name": "incidents_to_monitors_incident_id_incident_id_fk", "tableFrom": "incidents_to_monitors", - "columnsFrom": [ - "incident_id" - ], + "columnsFrom": ["incident_id"], "tableTo": "incident", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } }, "compositePrimaryKeys": { "incidents_to_monitors_monitor_id_incident_id_pk": { - "columns": [ - "incident_id", - "monitor_id" - ] + "columns": ["incident_id", "monitor_id"] } }, "uniqueConstraints": {} @@ -267,13 +248,9 @@ "integration_workspace_id_workspace_id_fk": { "name": "integration_workspace_id_workspace_id_fk", "tableFrom": "integration", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } @@ -362,9 +339,7 @@ "indexes": { "page_slug_unique": { "name": "page_slug_unique", - "columns": [ - "slug" - ], + "columns": ["slug"], "isUnique": true } }, @@ -372,13 +347,9 @@ "page_workspace_id_workspace_id_fk": { "name": "page_workspace_id_workspace_id_fk", "tableFrom": "page", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } @@ -512,13 +483,9 @@ "monitor_workspace_id_workspace_id_fk": { "name": "monitor_workspace_id_workspace_id_fk", "tableFrom": "monitor", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } @@ -549,36 +516,25 @@ "monitors_to_pages_monitor_id_monitor_id_fk": { "name": "monitors_to_pages_monitor_id_monitor_id_fk", "tableFrom": "monitors_to_pages", - "columnsFrom": [ - "monitor_id" - ], + "columnsFrom": ["monitor_id"], "tableTo": "monitor", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" }, "monitors_to_pages_page_id_page_id_fk": { "name": "monitors_to_pages_page_id_page_id_fk", "tableFrom": "monitors_to_pages", - "columnsFrom": [ - "page_id" - ], + "columnsFrom": ["page_id"], "tableTo": "page", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } }, "compositePrimaryKeys": { "monitors_to_pages_monitor_id_page_id_pk": { - "columns": [ - "monitor_id", - "page_id" - ] + "columns": ["monitor_id", "page_id"] } }, "uniqueConstraints": {} @@ -652,9 +608,7 @@ "indexes": { "user_tenant_id_unique": { "name": "user_tenant_id_unique", - "columns": [ - "tenant_id" - ], + "columns": ["tenant_id"], "isUnique": true } }, @@ -685,36 +639,25 @@ "users_to_workspaces_user_id_user_id_fk": { "name": "users_to_workspaces_user_id_user_id_fk", "tableFrom": "users_to_workspaces", - "columnsFrom": [ - "user_id" - ], + "columnsFrom": ["user_id"], "tableTo": "user", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" }, "users_to_workspaces_workspace_id_workspace_id_fk": { "name": "users_to_workspaces_workspace_id_workspace_id_fk", "tableFrom": "users_to_workspaces", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } }, "compositePrimaryKeys": { "users_to_workspaces_user_id_workspace_id_pk": { - "columns": [ - "user_id", - "workspace_id" - ] + "columns": ["user_id", "workspace_id"] } }, "uniqueConstraints": {} @@ -798,16 +741,12 @@ "indexes": { "workspace_slug_unique": { "name": "workspace_slug_unique", - "columns": [ - "slug" - ], + "columns": ["slug"], "isUnique": true }, "workspace_stripe_id_unique": { "name": "workspace_stripe_id_unique", - "columns": [ - "stripe_id" - ], + "columns": ["stripe_id"], "isUnique": true } }, @@ -823,4 +762,4 @@ }, "id": "23bfc90d-3bb1-4077-81d8-8f2e874f9c62", "prevId": "fee77e21-b52b-49c0-b109-5ccc37821935" -} \ No newline at end of file +} diff --git a/packages/db/drizzle/meta/0009_snapshot.json b/packages/db/drizzle/meta/0009_snapshot.json index ef84dd4b8..babcd4599 100644 --- a/packages/db/drizzle/meta/0009_snapshot.json +++ b/packages/db/drizzle/meta/0009_snapshot.json @@ -55,13 +55,9 @@ "incident_workspace_id_workspace_id_fk": { "name": "incident_workspace_id_workspace_id_fk", "tableFrom": "incident", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } @@ -129,13 +125,9 @@ "incident_update_incident_id_incident_id_fk": { "name": "incident_update_incident_id_incident_id_fk", "tableFrom": "incident_update", - "columnsFrom": [ - "incident_id" - ], + "columnsFrom": ["incident_id"], "tableTo": "incident", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } @@ -166,36 +158,25 @@ "incidents_to_monitors_monitor_id_monitor_id_fk": { "name": "incidents_to_monitors_monitor_id_monitor_id_fk", "tableFrom": "incidents_to_monitors", - "columnsFrom": [ - "monitor_id" - ], + "columnsFrom": ["monitor_id"], "tableTo": "monitor", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" }, "incidents_to_monitors_incident_id_incident_id_fk": { "name": "incidents_to_monitors_incident_id_incident_id_fk", "tableFrom": "incidents_to_monitors", - "columnsFrom": [ - "incident_id" - ], + "columnsFrom": ["incident_id"], "tableTo": "incident", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } }, "compositePrimaryKeys": { "incidents_to_monitors_monitor_id_incident_id_pk": { - "columns": [ - "incident_id", - "monitor_id" - ] + "columns": ["incident_id", "monitor_id"] } }, "uniqueConstraints": {} @@ -223,36 +204,25 @@ "incidents_to_pages_page_id_page_id_fk": { "name": "incidents_to_pages_page_id_page_id_fk", "tableFrom": "incidents_to_pages", - "columnsFrom": [ - "page_id" - ], + "columnsFrom": ["page_id"], "tableTo": "page", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" }, "incidents_to_pages_incident_id_incident_id_fk": { "name": "incidents_to_pages_incident_id_incident_id_fk", "tableFrom": "incidents_to_pages", - "columnsFrom": [ - "incident_id" - ], + "columnsFrom": ["incident_id"], "tableTo": "incident", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } }, "compositePrimaryKeys": { "incidents_to_pages_page_id_incident_id_pk": { - "columns": [ - "incident_id", - "page_id" - ] + "columns": ["incident_id", "page_id"] } }, "uniqueConstraints": {} @@ -324,13 +294,9 @@ "integration_workspace_id_workspace_id_fk": { "name": "integration_workspace_id_workspace_id_fk", "tableFrom": "integration", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } @@ -419,9 +385,7 @@ "indexes": { "page_slug_unique": { "name": "page_slug_unique", - "columns": [ - "slug" - ], + "columns": ["slug"], "isUnique": true } }, @@ -429,13 +393,9 @@ "page_workspace_id_workspace_id_fk": { "name": "page_workspace_id_workspace_id_fk", "tableFrom": "page", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } @@ -569,13 +529,9 @@ "monitor_workspace_id_workspace_id_fk": { "name": "monitor_workspace_id_workspace_id_fk", "tableFrom": "monitor", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } @@ -606,36 +562,25 @@ "monitors_to_pages_monitor_id_monitor_id_fk": { "name": "monitors_to_pages_monitor_id_monitor_id_fk", "tableFrom": "monitors_to_pages", - "columnsFrom": [ - "monitor_id" - ], + "columnsFrom": ["monitor_id"], "tableTo": "monitor", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" }, "monitors_to_pages_page_id_page_id_fk": { "name": "monitors_to_pages_page_id_page_id_fk", "tableFrom": "monitors_to_pages", - "columnsFrom": [ - "page_id" - ], + "columnsFrom": ["page_id"], "tableTo": "page", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } }, "compositePrimaryKeys": { "monitors_to_pages_monitor_id_page_id_pk": { - "columns": [ - "monitor_id", - "page_id" - ] + "columns": ["monitor_id", "page_id"] } }, "uniqueConstraints": {} @@ -709,9 +654,7 @@ "indexes": { "user_tenant_id_unique": { "name": "user_tenant_id_unique", - "columns": [ - "tenant_id" - ], + "columns": ["tenant_id"], "isUnique": true } }, @@ -742,36 +685,25 @@ "users_to_workspaces_user_id_user_id_fk": { "name": "users_to_workspaces_user_id_user_id_fk", "tableFrom": "users_to_workspaces", - "columnsFrom": [ - "user_id" - ], + "columnsFrom": ["user_id"], "tableTo": "user", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" }, "users_to_workspaces_workspace_id_workspace_id_fk": { "name": "users_to_workspaces_workspace_id_workspace_id_fk", "tableFrom": "users_to_workspaces", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } }, "compositePrimaryKeys": { "users_to_workspaces_user_id_workspace_id_pk": { - "columns": [ - "user_id", - "workspace_id" - ] + "columns": ["user_id", "workspace_id"] } }, "uniqueConstraints": {} @@ -855,16 +787,12 @@ "indexes": { "workspace_slug_unique": { "name": "workspace_slug_unique", - "columns": [ - "slug" - ], + "columns": ["slug"], "isUnique": true }, "workspace_stripe_id_unique": { "name": "workspace_stripe_id_unique", - "columns": [ - "stripe_id" - ], + "columns": ["stripe_id"], "isUnique": true } }, @@ -933,13 +861,9 @@ "notification_workspace_id_workspace_id_fk": { "name": "notification_workspace_id_workspace_id_fk", "tableFrom": "notification", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } @@ -970,36 +894,25 @@ "notifications_to_monitors_monitor_id_monitor_id_fk": { "name": "notifications_to_monitors_monitor_id_monitor_id_fk", "tableFrom": "notifications_to_monitors", - "columnsFrom": [ - "monitor_id" - ], + "columnsFrom": ["monitor_id"], "tableTo": "monitor", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" }, "notifications_to_monitors_notification_id_notification_id_fk": { "name": "notifications_to_monitors_notification_id_notification_id_fk", "tableFrom": "notifications_to_monitors", - "columnsFrom": [ - "notification_id" - ], + "columnsFrom": ["notification_id"], "tableTo": "notification", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } }, "compositePrimaryKeys": { "notifications_to_monitors_monitor_id_notification_id_pk": { - "columns": [ - "monitor_id", - "notification_id" - ] + "columns": ["monitor_id", "notification_id"] } }, "uniqueConstraints": {} @@ -1012,4 +925,4 @@ }, "id": "0f3dddb6-09cf-46a4-b12c-c5bb82475b94", "prevId": "72f58965-4d96-43e5-9101-3ceb67dac648" -} \ No newline at end of file +} diff --git a/packages/db/drizzle/meta/0010_snapshot.json b/packages/db/drizzle/meta/0010_snapshot.json index 1b810453a..ad155e917 100644 --- a/packages/db/drizzle/meta/0010_snapshot.json +++ b/packages/db/drizzle/meta/0010_snapshot.json @@ -55,13 +55,9 @@ "incident_workspace_id_workspace_id_fk": { "name": "incident_workspace_id_workspace_id_fk", "tableFrom": "incident", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } @@ -129,13 +125,9 @@ "incident_update_incident_id_incident_id_fk": { "name": "incident_update_incident_id_incident_id_fk", "tableFrom": "incident_update", - "columnsFrom": [ - "incident_id" - ], + "columnsFrom": ["incident_id"], "tableTo": "incident", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } @@ -166,36 +158,25 @@ "incidents_to_monitors_monitor_id_monitor_id_fk": { "name": "incidents_to_monitors_monitor_id_monitor_id_fk", "tableFrom": "incidents_to_monitors", - "columnsFrom": [ - "monitor_id" - ], + "columnsFrom": ["monitor_id"], "tableTo": "monitor", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" }, "incidents_to_monitors_incident_id_incident_id_fk": { "name": "incidents_to_monitors_incident_id_incident_id_fk", "tableFrom": "incidents_to_monitors", - "columnsFrom": [ - "incident_id" - ], + "columnsFrom": ["incident_id"], "tableTo": "incident", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } }, "compositePrimaryKeys": { "incidents_to_monitors_monitor_id_incident_id_pk": { - "columns": [ - "incident_id", - "monitor_id" - ] + "columns": ["incident_id", "monitor_id"] } }, "uniqueConstraints": {} @@ -223,36 +204,25 @@ "incidents_to_pages_page_id_page_id_fk": { "name": "incidents_to_pages_page_id_page_id_fk", "tableFrom": "incidents_to_pages", - "columnsFrom": [ - "page_id" - ], + "columnsFrom": ["page_id"], "tableTo": "page", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" }, "incidents_to_pages_incident_id_incident_id_fk": { "name": "incidents_to_pages_incident_id_incident_id_fk", "tableFrom": "incidents_to_pages", - "columnsFrom": [ - "incident_id" - ], + "columnsFrom": ["incident_id"], "tableTo": "incident", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } }, "compositePrimaryKeys": { "incidents_to_pages_page_id_incident_id_pk": { - "columns": [ - "incident_id", - "page_id" - ] + "columns": ["incident_id", "page_id"] } }, "uniqueConstraints": {} @@ -324,13 +294,9 @@ "integration_workspace_id_workspace_id_fk": { "name": "integration_workspace_id_workspace_id_fk", "tableFrom": "integration", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } @@ -419,9 +385,7 @@ "indexes": { "page_slug_unique": { "name": "page_slug_unique", - "columns": [ - "slug" - ], + "columns": ["slug"], "isUnique": true } }, @@ -429,13 +393,9 @@ "page_workspace_id_workspace_id_fk": { "name": "page_workspace_id_workspace_id_fk", "tableFrom": "page", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } @@ -569,13 +529,9 @@ "monitor_workspace_id_workspace_id_fk": { "name": "monitor_workspace_id_workspace_id_fk", "tableFrom": "monitor", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } @@ -606,36 +562,25 @@ "monitors_to_pages_monitor_id_monitor_id_fk": { "name": "monitors_to_pages_monitor_id_monitor_id_fk", "tableFrom": "monitors_to_pages", - "columnsFrom": [ - "monitor_id" - ], + "columnsFrom": ["monitor_id"], "tableTo": "monitor", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" }, "monitors_to_pages_page_id_page_id_fk": { "name": "monitors_to_pages_page_id_page_id_fk", "tableFrom": "monitors_to_pages", - "columnsFrom": [ - "page_id" - ], + "columnsFrom": ["page_id"], "tableTo": "page", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } }, "compositePrimaryKeys": { "monitors_to_pages_monitor_id_page_id_pk": { - "columns": [ - "monitor_id", - "page_id" - ] + "columns": ["monitor_id", "page_id"] } }, "uniqueConstraints": {} @@ -709,9 +654,7 @@ "indexes": { "user_tenant_id_unique": { "name": "user_tenant_id_unique", - "columns": [ - "tenant_id" - ], + "columns": ["tenant_id"], "isUnique": true } }, @@ -742,36 +685,25 @@ "users_to_workspaces_user_id_user_id_fk": { "name": "users_to_workspaces_user_id_user_id_fk", "tableFrom": "users_to_workspaces", - "columnsFrom": [ - "user_id" - ], + "columnsFrom": ["user_id"], "tableTo": "user", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" }, "users_to_workspaces_workspace_id_workspace_id_fk": { "name": "users_to_workspaces_workspace_id_workspace_id_fk", "tableFrom": "users_to_workspaces", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } }, "compositePrimaryKeys": { "users_to_workspaces_user_id_workspace_id_pk": { - "columns": [ - "user_id", - "workspace_id" - ] + "columns": ["user_id", "workspace_id"] } }, "uniqueConstraints": {} @@ -855,16 +787,12 @@ "indexes": { "workspace_slug_unique": { "name": "workspace_slug_unique", - "columns": [ - "slug" - ], + "columns": ["slug"], "isUnique": true }, "workspace_stripe_id_unique": { "name": "workspace_stripe_id_unique", - "columns": [ - "stripe_id" - ], + "columns": ["stripe_id"], "isUnique": true } }, @@ -933,13 +861,9 @@ "notification_workspace_id_workspace_id_fk": { "name": "notification_workspace_id_workspace_id_fk", "tableFrom": "notification", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } @@ -970,36 +894,25 @@ "notifications_to_monitors_monitor_id_monitor_id_fk": { "name": "notifications_to_monitors_monitor_id_monitor_id_fk", "tableFrom": "notifications_to_monitors", - "columnsFrom": [ - "monitor_id" - ], + "columnsFrom": ["monitor_id"], "tableTo": "monitor", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" }, "notifications_to_monitors_notification_id_notification_id_fk": { "name": "notifications_to_monitors_notification_id_notification_id_fk", "tableFrom": "notifications_to_monitors", - "columnsFrom": [ - "notification_id" - ], + "columnsFrom": ["notification_id"], "tableTo": "notification", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } }, "compositePrimaryKeys": { "notifications_to_monitors_monitor_id_notification_id_pk": { - "columns": [ - "monitor_id", - "notification_id" - ] + "columns": ["monitor_id", "notification_id"] } }, "uniqueConstraints": {} @@ -1050,10 +963,7 @@ "indexes": { "monitor_status_idx": { "name": "monitor_status_idx", - "columns": [ - "monitor_id", - "region" - ], + "columns": ["monitor_id", "region"], "isUnique": false } }, @@ -1061,23 +971,16 @@ "monitor_status_monitor_id_monitor_id_fk": { "name": "monitor_status_monitor_id_monitor_id_fk", "tableFrom": "monitor_status", - "columnsFrom": [ - "monitor_id" - ], + "columnsFrom": ["monitor_id"], "tableTo": "monitor", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } }, "compositePrimaryKeys": { "monitor_status_monitor_id_region_pk": { - "columns": [ - "monitor_id", - "region" - ] + "columns": ["monitor_id", "region"] } }, "uniqueConstraints": {} @@ -1090,4 +993,4 @@ }, "id": "452e7037-85cf-4d9a-b4e2-375a695d5fa8", "prevId": "0f3dddb6-09cf-46a4-b12c-c5bb82475b94" -} \ No newline at end of file +} diff --git a/packages/db/drizzle/meta/0011_snapshot.json b/packages/db/drizzle/meta/0011_snapshot.json index fd81a068b..fd0ea45f4 100644 --- a/packages/db/drizzle/meta/0011_snapshot.json +++ b/packages/db/drizzle/meta/0011_snapshot.json @@ -25,36 +25,25 @@ "status_report_to_monitors_monitor_id_monitor_id_fk": { "name": "status_report_to_monitors_monitor_id_monitor_id_fk", "tableFrom": "status_report_to_monitors", - "columnsFrom": [ - "monitor_id" - ], + "columnsFrom": ["monitor_id"], "tableTo": "monitor", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" }, "status_report_to_monitors_incident_id_status_report_id_fk": { "name": "status_report_to_monitors_incident_id_status_report_id_fk", "tableFrom": "status_report_to_monitors", - "columnsFrom": [ - "incident_id" - ], + "columnsFrom": ["incident_id"], "tableTo": "status_report", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } }, "compositePrimaryKeys": { "status_report_to_monitors_monitor_id_incident_id_pk": { - "columns": [ - "incident_id", - "monitor_id" - ] + "columns": ["incident_id", "monitor_id"] } }, "uniqueConstraints": {} @@ -82,36 +71,25 @@ "status_reports_to_pages_page_id_page_id_fk": { "name": "status_reports_to_pages_page_id_page_id_fk", "tableFrom": "status_reports_to_pages", - "columnsFrom": [ - "page_id" - ], + "columnsFrom": ["page_id"], "tableTo": "page", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" }, "status_reports_to_pages_incident_id_status_report_id_fk": { "name": "status_reports_to_pages_incident_id_status_report_id_fk", "tableFrom": "status_reports_to_pages", - "columnsFrom": [ - "incident_id" - ], + "columnsFrom": ["incident_id"], "tableTo": "status_report", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } }, "compositePrimaryKeys": { "status_reports_to_pages_page_id_incident_id_pk": { - "columns": [ - "incident_id", - "page_id" - ] + "columns": ["incident_id", "page_id"] } }, "uniqueConstraints": {} @@ -176,13 +154,9 @@ "status_report_update_incident_id_status_report_id_fk": { "name": "status_report_update_incident_id_status_report_id_fk", "tableFrom": "status_report_update", - "columnsFrom": [ - "incident_id" - ], + "columnsFrom": ["incident_id"], "tableTo": "status_report", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } @@ -243,13 +217,9 @@ "status_report_workspace_id_workspace_id_fk": { "name": "status_report_workspace_id_workspace_id_fk", "tableFrom": "status_report", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } @@ -324,13 +294,9 @@ "integration_workspace_id_workspace_id_fk": { "name": "integration_workspace_id_workspace_id_fk", "tableFrom": "integration", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } @@ -419,9 +385,7 @@ "indexes": { "page_slug_unique": { "name": "page_slug_unique", - "columns": [ - "slug" - ], + "columns": ["slug"], "isUnique": true } }, @@ -429,13 +393,9 @@ "page_workspace_id_workspace_id_fk": { "name": "page_workspace_id_workspace_id_fk", "tableFrom": "page", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } @@ -569,13 +529,9 @@ "monitor_workspace_id_workspace_id_fk": { "name": "monitor_workspace_id_workspace_id_fk", "tableFrom": "monitor", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } @@ -606,36 +562,25 @@ "monitors_to_pages_monitor_id_monitor_id_fk": { "name": "monitors_to_pages_monitor_id_monitor_id_fk", "tableFrom": "monitors_to_pages", - "columnsFrom": [ - "monitor_id" - ], + "columnsFrom": ["monitor_id"], "tableTo": "monitor", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" }, "monitors_to_pages_page_id_page_id_fk": { "name": "monitors_to_pages_page_id_page_id_fk", "tableFrom": "monitors_to_pages", - "columnsFrom": [ - "page_id" - ], + "columnsFrom": ["page_id"], "tableTo": "page", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } }, "compositePrimaryKeys": { "monitors_to_pages_monitor_id_page_id_pk": { - "columns": [ - "monitor_id", - "page_id" - ] + "columns": ["monitor_id", "page_id"] } }, "uniqueConstraints": {} @@ -709,9 +654,7 @@ "indexes": { "user_tenant_id_unique": { "name": "user_tenant_id_unique", - "columns": [ - "tenant_id" - ], + "columns": ["tenant_id"], "isUnique": true } }, @@ -742,36 +685,25 @@ "users_to_workspaces_user_id_user_id_fk": { "name": "users_to_workspaces_user_id_user_id_fk", "tableFrom": "users_to_workspaces", - "columnsFrom": [ - "user_id" - ], + "columnsFrom": ["user_id"], "tableTo": "user", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" }, "users_to_workspaces_workspace_id_workspace_id_fk": { "name": "users_to_workspaces_workspace_id_workspace_id_fk", "tableFrom": "users_to_workspaces", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } }, "compositePrimaryKeys": { "users_to_workspaces_user_id_workspace_id_pk": { - "columns": [ - "user_id", - "workspace_id" - ] + "columns": ["user_id", "workspace_id"] } }, "uniqueConstraints": {} @@ -855,16 +787,12 @@ "indexes": { "workspace_slug_unique": { "name": "workspace_slug_unique", - "columns": [ - "slug" - ], + "columns": ["slug"], "isUnique": true }, "workspace_stripe_id_unique": { "name": "workspace_stripe_id_unique", - "columns": [ - "stripe_id" - ], + "columns": ["stripe_id"], "isUnique": true } }, @@ -933,13 +861,9 @@ "notification_workspace_id_workspace_id_fk": { "name": "notification_workspace_id_workspace_id_fk", "tableFrom": "notification", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } @@ -970,36 +894,25 @@ "notifications_to_monitors_monitor_id_monitor_id_fk": { "name": "notifications_to_monitors_monitor_id_monitor_id_fk", "tableFrom": "notifications_to_monitors", - "columnsFrom": [ - "monitor_id" - ], + "columnsFrom": ["monitor_id"], "tableTo": "monitor", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" }, "notifications_to_monitors_notification_id_notification_id_fk": { "name": "notifications_to_monitors_notification_id_notification_id_fk", "tableFrom": "notifications_to_monitors", - "columnsFrom": [ - "notification_id" - ], + "columnsFrom": ["notification_id"], "tableTo": "notification", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } }, "compositePrimaryKeys": { "notifications_to_monitors_monitor_id_notification_id_pk": { - "columns": [ - "monitor_id", - "notification_id" - ] + "columns": ["monitor_id", "notification_id"] } }, "uniqueConstraints": {} @@ -1050,10 +963,7 @@ "indexes": { "monitor_status_idx": { "name": "monitor_status_idx", - "columns": [ - "monitor_id", - "region" - ], + "columns": ["monitor_id", "region"], "isUnique": false } }, @@ -1061,23 +971,16 @@ "monitor_status_monitor_id_monitor_id_fk": { "name": "monitor_status_monitor_id_monitor_id_fk", "tableFrom": "monitor_status", - "columnsFrom": [ - "monitor_id" - ], + "columnsFrom": ["monitor_id"], "tableTo": "monitor", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } }, "compositePrimaryKeys": { "monitor_status_monitor_id_region_pk": { - "columns": [ - "monitor_id", - "region" - ] + "columns": ["monitor_id", "region"] } }, "uniqueConstraints": {} @@ -1095,4 +998,4 @@ }, "id": "21a5d3a2-6aab-4f67-8385-19d905e1a232", "prevId": "452e7037-85cf-4d9a-b4e2-375a695d5fa8" -} \ No newline at end of file +} diff --git a/packages/db/drizzle/meta/0012_snapshot.json b/packages/db/drizzle/meta/0012_snapshot.json index ca6fd3c08..45b9fbe09 100644 --- a/packages/db/drizzle/meta/0012_snapshot.json +++ b/packages/db/drizzle/meta/0012_snapshot.json @@ -25,36 +25,25 @@ "status_report_to_monitors_monitor_id_monitor_id_fk": { "name": "status_report_to_monitors_monitor_id_monitor_id_fk", "tableFrom": "status_report_to_monitors", - "columnsFrom": [ - "monitor_id" - ], + "columnsFrom": ["monitor_id"], "tableTo": "monitor", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" }, "status_report_to_monitors_status_report_id_status_report_id_fk": { "name": "status_report_to_monitors_status_report_id_status_report_id_fk", "tableFrom": "status_report_to_monitors", - "columnsFrom": [ - "status_report_id" - ], + "columnsFrom": ["status_report_id"], "tableTo": "status_report", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } }, "compositePrimaryKeys": { "status_report_to_monitors_monitor_id_status_report_id_pk": { - "columns": [ - "monitor_id", - "status_report_id" - ] + "columns": ["monitor_id", "status_report_id"] } }, "uniqueConstraints": {} @@ -82,36 +71,25 @@ "status_reports_to_pages_page_id_page_id_fk": { "name": "status_reports_to_pages_page_id_page_id_fk", "tableFrom": "status_reports_to_pages", - "columnsFrom": [ - "page_id" - ], + "columnsFrom": ["page_id"], "tableTo": "page", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" }, "status_reports_to_pages_status_report_id_status_report_id_fk": { "name": "status_reports_to_pages_status_report_id_status_report_id_fk", "tableFrom": "status_reports_to_pages", - "columnsFrom": [ - "status_report_id" - ], + "columnsFrom": ["status_report_id"], "tableTo": "status_report", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } }, "compositePrimaryKeys": { "status_reports_to_pages_page_id_status_report_id_pk": { - "columns": [ - "page_id", - "status_report_id" - ] + "columns": ["page_id", "status_report_id"] } }, "uniqueConstraints": {} @@ -169,13 +147,9 @@ "status_report_workspace_id_workspace_id_fk": { "name": "status_report_workspace_id_workspace_id_fk", "tableFrom": "status_report", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } @@ -243,13 +217,9 @@ "status_report_update_status_report_id_status_report_id_fk": { "name": "status_report_update_status_report_id_status_report_id_fk", "tableFrom": "status_report_update", - "columnsFrom": [ - "status_report_id" - ], + "columnsFrom": ["status_report_id"], "tableTo": "status_report", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } @@ -324,13 +294,9 @@ "integration_workspace_id_workspace_id_fk": { "name": "integration_workspace_id_workspace_id_fk", "tableFrom": "integration", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } @@ -419,9 +385,7 @@ "indexes": { "page_slug_unique": { "name": "page_slug_unique", - "columns": [ - "slug" - ], + "columns": ["slug"], "isUnique": true } }, @@ -429,13 +393,9 @@ "page_workspace_id_workspace_id_fk": { "name": "page_workspace_id_workspace_id_fk", "tableFrom": "page", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } @@ -569,13 +529,9 @@ "monitor_workspace_id_workspace_id_fk": { "name": "monitor_workspace_id_workspace_id_fk", "tableFrom": "monitor", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } @@ -606,36 +562,25 @@ "monitors_to_pages_monitor_id_monitor_id_fk": { "name": "monitors_to_pages_monitor_id_monitor_id_fk", "tableFrom": "monitors_to_pages", - "columnsFrom": [ - "monitor_id" - ], + "columnsFrom": ["monitor_id"], "tableTo": "monitor", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" }, "monitors_to_pages_page_id_page_id_fk": { "name": "monitors_to_pages_page_id_page_id_fk", "tableFrom": "monitors_to_pages", - "columnsFrom": [ - "page_id" - ], + "columnsFrom": ["page_id"], "tableTo": "page", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } }, "compositePrimaryKeys": { "monitors_to_pages_monitor_id_page_id_pk": { - "columns": [ - "monitor_id", - "page_id" - ] + "columns": ["monitor_id", "page_id"] } }, "uniqueConstraints": {} @@ -709,9 +654,7 @@ "indexes": { "user_tenant_id_unique": { "name": "user_tenant_id_unique", - "columns": [ - "tenant_id" - ], + "columns": ["tenant_id"], "isUnique": true } }, @@ -750,36 +693,25 @@ "users_to_workspaces_user_id_user_id_fk": { "name": "users_to_workspaces_user_id_user_id_fk", "tableFrom": "users_to_workspaces", - "columnsFrom": [ - "user_id" - ], + "columnsFrom": ["user_id"], "tableTo": "user", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" }, "users_to_workspaces_workspace_id_workspace_id_fk": { "name": "users_to_workspaces_workspace_id_workspace_id_fk", "tableFrom": "users_to_workspaces", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } }, "compositePrimaryKeys": { "users_to_workspaces_user_id_workspace_id_pk": { - "columns": [ - "user_id", - "workspace_id" - ] + "columns": ["user_id", "workspace_id"] } }, "uniqueConstraints": {} @@ -863,16 +795,12 @@ "indexes": { "workspace_slug_unique": { "name": "workspace_slug_unique", - "columns": [ - "slug" - ], + "columns": ["slug"], "isUnique": true }, "workspace_stripe_id_unique": { "name": "workspace_stripe_id_unique", - "columns": [ - "stripe_id" - ], + "columns": ["stripe_id"], "isUnique": true } }, @@ -941,13 +869,9 @@ "notification_workspace_id_workspace_id_fk": { "name": "notification_workspace_id_workspace_id_fk", "tableFrom": "notification", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } @@ -978,36 +902,25 @@ "notifications_to_monitors_monitor_id_monitor_id_fk": { "name": "notifications_to_monitors_monitor_id_monitor_id_fk", "tableFrom": "notifications_to_monitors", - "columnsFrom": [ - "monitor_id" - ], + "columnsFrom": ["monitor_id"], "tableTo": "monitor", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" }, "notifications_to_monitors_notification_id_notification_id_fk": { "name": "notifications_to_monitors_notification_id_notification_id_fk", "tableFrom": "notifications_to_monitors", - "columnsFrom": [ - "notification_id" - ], + "columnsFrom": ["notification_id"], "tableTo": "notification", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } }, "compositePrimaryKeys": { "notifications_to_monitors_monitor_id_notification_id_pk": { - "columns": [ - "monitor_id", - "notification_id" - ] + "columns": ["monitor_id", "notification_id"] } }, "uniqueConstraints": {} @@ -1058,10 +971,7 @@ "indexes": { "monitor_status_idx": { "name": "monitor_status_idx", - "columns": [ - "monitor_id", - "region" - ], + "columns": ["monitor_id", "region"], "isUnique": false } }, @@ -1069,23 +979,16 @@ "monitor_status_monitor_id_monitor_id_fk": { "name": "monitor_status_monitor_id_monitor_id_fk", "tableFrom": "monitor_status", - "columnsFrom": [ - "monitor_id" - ], + "columnsFrom": ["monitor_id"], "tableTo": "monitor", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } }, "compositePrimaryKeys": { "monitor_status_monitor_id_region_pk": { - "columns": [ - "monitor_id", - "region" - ] + "columns": ["monitor_id", "region"] } }, "uniqueConstraints": {} @@ -1165,4 +1068,4 @@ }, "id": "b5c53ce9-981d-4a7c-a0da-c82e517fc0a3", "prevId": "21a5d3a2-6aab-4f67-8385-19d905e1a232" -} \ No newline at end of file +} diff --git a/packages/db/drizzle/meta/0013_snapshot.json b/packages/db/drizzle/meta/0013_snapshot.json index 295c7b280..d359f1578 100644 --- a/packages/db/drizzle/meta/0013_snapshot.json +++ b/packages/db/drizzle/meta/0013_snapshot.json @@ -25,36 +25,25 @@ "status_report_to_monitors_monitor_id_monitor_id_fk": { "name": "status_report_to_monitors_monitor_id_monitor_id_fk", "tableFrom": "status_report_to_monitors", - "columnsFrom": [ - "monitor_id" - ], + "columnsFrom": ["monitor_id"], "tableTo": "monitor", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" }, "status_report_to_monitors_status_report_id_status_report_id_fk": { "name": "status_report_to_monitors_status_report_id_status_report_id_fk", "tableFrom": "status_report_to_monitors", - "columnsFrom": [ - "status_report_id" - ], + "columnsFrom": ["status_report_id"], "tableTo": "status_report", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } }, "compositePrimaryKeys": { "status_report_to_monitors_monitor_id_status_report_id_pk": { - "columns": [ - "monitor_id", - "status_report_id" - ] + "columns": ["monitor_id", "status_report_id"] } }, "uniqueConstraints": {} @@ -82,36 +71,25 @@ "status_reports_to_pages_page_id_page_id_fk": { "name": "status_reports_to_pages_page_id_page_id_fk", "tableFrom": "status_reports_to_pages", - "columnsFrom": [ - "page_id" - ], + "columnsFrom": ["page_id"], "tableTo": "page", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" }, "status_reports_to_pages_status_report_id_status_report_id_fk": { "name": "status_reports_to_pages_status_report_id_status_report_id_fk", "tableFrom": "status_reports_to_pages", - "columnsFrom": [ - "status_report_id" - ], + "columnsFrom": ["status_report_id"], "tableTo": "status_report", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } }, "compositePrimaryKeys": { "status_reports_to_pages_page_id_status_report_id_pk": { - "columns": [ - "page_id", - "status_report_id" - ] + "columns": ["page_id", "status_report_id"] } }, "uniqueConstraints": {} @@ -169,13 +147,9 @@ "status_report_workspace_id_workspace_id_fk": { "name": "status_report_workspace_id_workspace_id_fk", "tableFrom": "status_report", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } @@ -243,13 +217,9 @@ "status_report_update_status_report_id_status_report_id_fk": { "name": "status_report_update_status_report_id_status_report_id_fk", "tableFrom": "status_report_update", - "columnsFrom": [ - "status_report_id" - ], + "columnsFrom": ["status_report_id"], "tableTo": "status_report", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } @@ -324,13 +294,9 @@ "integration_workspace_id_workspace_id_fk": { "name": "integration_workspace_id_workspace_id_fk", "tableFrom": "integration", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } @@ -419,9 +385,7 @@ "indexes": { "page_slug_unique": { "name": "page_slug_unique", - "columns": [ - "slug" - ], + "columns": ["slug"], "isUnique": true } }, @@ -429,13 +393,9 @@ "page_workspace_id_workspace_id_fk": { "name": "page_workspace_id_workspace_id_fk", "tableFrom": "page", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } @@ -569,13 +529,9 @@ "monitor_workspace_id_workspace_id_fk": { "name": "monitor_workspace_id_workspace_id_fk", "tableFrom": "monitor", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } @@ -606,36 +562,25 @@ "monitors_to_pages_monitor_id_monitor_id_fk": { "name": "monitors_to_pages_monitor_id_monitor_id_fk", "tableFrom": "monitors_to_pages", - "columnsFrom": [ - "monitor_id" - ], + "columnsFrom": ["monitor_id"], "tableTo": "monitor", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" }, "monitors_to_pages_page_id_page_id_fk": { "name": "monitors_to_pages_page_id_page_id_fk", "tableFrom": "monitors_to_pages", - "columnsFrom": [ - "page_id" - ], + "columnsFrom": ["page_id"], "tableTo": "page", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } }, "compositePrimaryKeys": { "monitors_to_pages_monitor_id_page_id_pk": { - "columns": [ - "monitor_id", - "page_id" - ] + "columns": ["monitor_id", "page_id"] } }, "uniqueConstraints": {} @@ -709,9 +654,7 @@ "indexes": { "user_tenant_id_unique": { "name": "user_tenant_id_unique", - "columns": [ - "tenant_id" - ], + "columns": ["tenant_id"], "isUnique": true } }, @@ -750,36 +693,25 @@ "users_to_workspaces_user_id_user_id_fk": { "name": "users_to_workspaces_user_id_user_id_fk", "tableFrom": "users_to_workspaces", - "columnsFrom": [ - "user_id" - ], + "columnsFrom": ["user_id"], "tableTo": "user", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" }, "users_to_workspaces_workspace_id_workspace_id_fk": { "name": "users_to_workspaces_workspace_id_workspace_id_fk", "tableFrom": "users_to_workspaces", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } }, "compositePrimaryKeys": { "users_to_workspaces_user_id_workspace_id_pk": { - "columns": [ - "user_id", - "workspace_id" - ] + "columns": ["user_id", "workspace_id"] } }, "uniqueConstraints": {} @@ -851,13 +783,9 @@ "page_subscriber_page_id_page_id_fk": { "name": "page_subscriber_page_id_page_id_fk", "tableFrom": "page_subscriber", - "columnsFrom": [ - "page_id" - ], + "columnsFrom": ["page_id"], "tableTo": "page", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } @@ -944,16 +872,12 @@ "indexes": { "workspace_slug_unique": { "name": "workspace_slug_unique", - "columns": [ - "slug" - ], + "columns": ["slug"], "isUnique": true }, "workspace_stripe_id_unique": { "name": "workspace_stripe_id_unique", - "columns": [ - "stripe_id" - ], + "columns": ["stripe_id"], "isUnique": true } }, @@ -1022,13 +946,9 @@ "notification_workspace_id_workspace_id_fk": { "name": "notification_workspace_id_workspace_id_fk", "tableFrom": "notification", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } @@ -1059,36 +979,25 @@ "notifications_to_monitors_monitor_id_monitor_id_fk": { "name": "notifications_to_monitors_monitor_id_monitor_id_fk", "tableFrom": "notifications_to_monitors", - "columnsFrom": [ - "monitor_id" - ], + "columnsFrom": ["monitor_id"], "tableTo": "monitor", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" }, "notifications_to_monitors_notification_id_notification_id_fk": { "name": "notifications_to_monitors_notification_id_notification_id_fk", "tableFrom": "notifications_to_monitors", - "columnsFrom": [ - "notification_id" - ], + "columnsFrom": ["notification_id"], "tableTo": "notification", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } }, "compositePrimaryKeys": { "notifications_to_monitors_monitor_id_notification_id_pk": { - "columns": [ - "monitor_id", - "notification_id" - ] + "columns": ["monitor_id", "notification_id"] } }, "uniqueConstraints": {} @@ -1139,10 +1048,7 @@ "indexes": { "monitor_status_idx": { "name": "monitor_status_idx", - "columns": [ - "monitor_id", - "region" - ], + "columns": ["monitor_id", "region"], "isUnique": false } }, @@ -1150,23 +1056,16 @@ "monitor_status_monitor_id_monitor_id_fk": { "name": "monitor_status_monitor_id_monitor_id_fk", "tableFrom": "monitor_status", - "columnsFrom": [ - "monitor_id" - ], + "columnsFrom": ["monitor_id"], "tableTo": "monitor", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } }, "compositePrimaryKeys": { "monitor_status_monitor_id_region_pk": { - "columns": [ - "monitor_id", - "region" - ] + "columns": ["monitor_id", "region"] } }, "uniqueConstraints": {} @@ -1246,4 +1145,4 @@ }, "id": "5ac15aa5-4512-4f06-92e3-4410ce097034", "prevId": "b5c53ce9-981d-4a7c-a0da-c82e517fc0a3" -} \ No newline at end of file +} diff --git a/packages/db/drizzle/meta/0014_snapshot.json b/packages/db/drizzle/meta/0014_snapshot.json index f7a72f741..e109d76f4 100644 --- a/packages/db/drizzle/meta/0014_snapshot.json +++ b/packages/db/drizzle/meta/0014_snapshot.json @@ -25,36 +25,25 @@ "status_report_to_monitors_monitor_id_monitor_id_fk": { "name": "status_report_to_monitors_monitor_id_monitor_id_fk", "tableFrom": "status_report_to_monitors", - "columnsFrom": [ - "monitor_id" - ], + "columnsFrom": ["monitor_id"], "tableTo": "monitor", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" }, "status_report_to_monitors_status_report_id_status_report_id_fk": { "name": "status_report_to_monitors_status_report_id_status_report_id_fk", "tableFrom": "status_report_to_monitors", - "columnsFrom": [ - "status_report_id" - ], + "columnsFrom": ["status_report_id"], "tableTo": "status_report", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } }, "compositePrimaryKeys": { "status_report_to_monitors_monitor_id_status_report_id_pk": { - "columns": [ - "monitor_id", - "status_report_id" - ] + "columns": ["monitor_id", "status_report_id"] } }, "uniqueConstraints": {} @@ -82,36 +71,25 @@ "status_reports_to_pages_page_id_page_id_fk": { "name": "status_reports_to_pages_page_id_page_id_fk", "tableFrom": "status_reports_to_pages", - "columnsFrom": [ - "page_id" - ], + "columnsFrom": ["page_id"], "tableTo": "page", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" }, "status_reports_to_pages_status_report_id_status_report_id_fk": { "name": "status_reports_to_pages_status_report_id_status_report_id_fk", "tableFrom": "status_reports_to_pages", - "columnsFrom": [ - "status_report_id" - ], + "columnsFrom": ["status_report_id"], "tableTo": "status_report", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } }, "compositePrimaryKeys": { "status_reports_to_pages_page_id_status_report_id_pk": { - "columns": [ - "page_id", - "status_report_id" - ] + "columns": ["page_id", "status_report_id"] } }, "uniqueConstraints": {} @@ -169,13 +147,9 @@ "status_report_workspace_id_workspace_id_fk": { "name": "status_report_workspace_id_workspace_id_fk", "tableFrom": "status_report", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } @@ -243,13 +217,9 @@ "status_report_update_status_report_id_status_report_id_fk": { "name": "status_report_update_status_report_id_status_report_id_fk", "tableFrom": "status_report_update", - "columnsFrom": [ - "status_report_id" - ], + "columnsFrom": ["status_report_id"], "tableTo": "status_report", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } @@ -324,13 +294,9 @@ "integration_workspace_id_workspace_id_fk": { "name": "integration_workspace_id_workspace_id_fk", "tableFrom": "integration", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } @@ -419,9 +385,7 @@ "indexes": { "page_slug_unique": { "name": "page_slug_unique", - "columns": [ - "slug" - ], + "columns": ["slug"], "isUnique": true } }, @@ -429,13 +393,9 @@ "page_workspace_id_workspace_id_fk": { "name": "page_workspace_id_workspace_id_fk", "tableFrom": "page", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } @@ -569,13 +529,9 @@ "monitor_workspace_id_workspace_id_fk": { "name": "monitor_workspace_id_workspace_id_fk", "tableFrom": "monitor", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } @@ -606,36 +562,25 @@ "monitors_to_pages_monitor_id_monitor_id_fk": { "name": "monitors_to_pages_monitor_id_monitor_id_fk", "tableFrom": "monitors_to_pages", - "columnsFrom": [ - "monitor_id" - ], + "columnsFrom": ["monitor_id"], "tableTo": "monitor", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" }, "monitors_to_pages_page_id_page_id_fk": { "name": "monitors_to_pages_page_id_page_id_fk", "tableFrom": "monitors_to_pages", - "columnsFrom": [ - "page_id" - ], + "columnsFrom": ["page_id"], "tableTo": "page", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } }, "compositePrimaryKeys": { "monitors_to_pages_monitor_id_page_id_pk": { - "columns": [ - "monitor_id", - "page_id" - ] + "columns": ["monitor_id", "page_id"] } }, "uniqueConstraints": {} @@ -709,9 +654,7 @@ "indexes": { "user_tenant_id_unique": { "name": "user_tenant_id_unique", - "columns": [ - "tenant_id" - ], + "columns": ["tenant_id"], "isUnique": true } }, @@ -750,36 +693,25 @@ "users_to_workspaces_user_id_user_id_fk": { "name": "users_to_workspaces_user_id_user_id_fk", "tableFrom": "users_to_workspaces", - "columnsFrom": [ - "user_id" - ], + "columnsFrom": ["user_id"], "tableTo": "user", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" }, "users_to_workspaces_workspace_id_workspace_id_fk": { "name": "users_to_workspaces_workspace_id_workspace_id_fk", "tableFrom": "users_to_workspaces", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } }, "compositePrimaryKeys": { "users_to_workspaces_user_id_workspace_id_pk": { - "columns": [ - "user_id", - "workspace_id" - ] + "columns": ["user_id", "workspace_id"] } }, "uniqueConstraints": {} @@ -851,13 +783,9 @@ "page_subscriber_page_id_page_id_fk": { "name": "page_subscriber_page_id_page_id_fk", "tableFrom": "page_subscriber", - "columnsFrom": [ - "page_id" - ], + "columnsFrom": ["page_id"], "tableTo": "page", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } @@ -944,16 +872,12 @@ "indexes": { "workspace_slug_unique": { "name": "workspace_slug_unique", - "columns": [ - "slug" - ], + "columns": ["slug"], "isUnique": true }, "workspace_stripe_id_unique": { "name": "workspace_stripe_id_unique", - "columns": [ - "stripe_id" - ], + "columns": ["stripe_id"], "isUnique": true } }, @@ -1022,13 +946,9 @@ "notification_workspace_id_workspace_id_fk": { "name": "notification_workspace_id_workspace_id_fk", "tableFrom": "notification", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } @@ -1059,36 +979,25 @@ "notifications_to_monitors_monitor_id_monitor_id_fk": { "name": "notifications_to_monitors_monitor_id_monitor_id_fk", "tableFrom": "notifications_to_monitors", - "columnsFrom": [ - "monitor_id" - ], + "columnsFrom": ["monitor_id"], "tableTo": "monitor", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" }, "notifications_to_monitors_notification_id_notification_id_fk": { "name": "notifications_to_monitors_notification_id_notification_id_fk", "tableFrom": "notifications_to_monitors", - "columnsFrom": [ - "notification_id" - ], + "columnsFrom": ["notification_id"], "tableTo": "notification", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } }, "compositePrimaryKeys": { "notifications_to_monitors_monitor_id_notification_id_pk": { - "columns": [ - "monitor_id", - "notification_id" - ] + "columns": ["monitor_id", "notification_id"] } }, "uniqueConstraints": {} @@ -1139,10 +1048,7 @@ "indexes": { "monitor_status_idx": { "name": "monitor_status_idx", - "columns": [ - "monitor_id", - "region" - ], + "columns": ["monitor_id", "region"], "isUnique": false } }, @@ -1150,23 +1056,16 @@ "monitor_status_monitor_id_monitor_id_fk": { "name": "monitor_status_monitor_id_monitor_id_fk", "tableFrom": "monitor_status", - "columnsFrom": [ - "monitor_id" - ], + "columnsFrom": ["monitor_id"], "tableTo": "monitor", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } }, "compositePrimaryKeys": { "monitor_status_monitor_id_region_pk": { - "columns": [ - "monitor_id", - "region" - ] + "columns": ["monitor_id", "region"] } }, "uniqueConstraints": {} @@ -1246,4 +1145,4 @@ }, "id": "4cc8ce9b-ed70-47c1-8218-2cbc02743563", "prevId": "5ac15aa5-4512-4f06-92e3-4410ce097034" -} \ No newline at end of file +} diff --git a/packages/db/drizzle/meta/0015_snapshot.json b/packages/db/drizzle/meta/0015_snapshot.json index 85c9c405d..81cf291bf 100644 --- a/packages/db/drizzle/meta/0015_snapshot.json +++ b/packages/db/drizzle/meta/0015_snapshot.json @@ -25,36 +25,25 @@ "status_report_to_monitors_monitor_id_monitor_id_fk": { "name": "status_report_to_monitors_monitor_id_monitor_id_fk", "tableFrom": "status_report_to_monitors", - "columnsFrom": [ - "monitor_id" - ], + "columnsFrom": ["monitor_id"], "tableTo": "monitor", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" }, "status_report_to_monitors_status_report_id_status_report_id_fk": { "name": "status_report_to_monitors_status_report_id_status_report_id_fk", "tableFrom": "status_report_to_monitors", - "columnsFrom": [ - "status_report_id" - ], + "columnsFrom": ["status_report_id"], "tableTo": "status_report", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } }, "compositePrimaryKeys": { "status_report_to_monitors_monitor_id_status_report_id_pk": { - "columns": [ - "monitor_id", - "status_report_id" - ] + "columns": ["monitor_id", "status_report_id"] } }, "uniqueConstraints": {} @@ -82,36 +71,25 @@ "status_reports_to_pages_page_id_page_id_fk": { "name": "status_reports_to_pages_page_id_page_id_fk", "tableFrom": "status_reports_to_pages", - "columnsFrom": [ - "page_id" - ], + "columnsFrom": ["page_id"], "tableTo": "page", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" }, "status_reports_to_pages_status_report_id_status_report_id_fk": { "name": "status_reports_to_pages_status_report_id_status_report_id_fk", "tableFrom": "status_reports_to_pages", - "columnsFrom": [ - "status_report_id" - ], + "columnsFrom": ["status_report_id"], "tableTo": "status_report", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } }, "compositePrimaryKeys": { "status_reports_to_pages_page_id_status_report_id_pk": { - "columns": [ - "page_id", - "status_report_id" - ] + "columns": ["page_id", "status_report_id"] } }, "uniqueConstraints": {} @@ -169,13 +147,9 @@ "status_report_workspace_id_workspace_id_fk": { "name": "status_report_workspace_id_workspace_id_fk", "tableFrom": "status_report", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } @@ -243,13 +217,9 @@ "status_report_update_status_report_id_status_report_id_fk": { "name": "status_report_update_status_report_id_status_report_id_fk", "tableFrom": "status_report_update", - "columnsFrom": [ - "status_report_id" - ], + "columnsFrom": ["status_report_id"], "tableTo": "status_report", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } @@ -324,13 +294,9 @@ "integration_workspace_id_workspace_id_fk": { "name": "integration_workspace_id_workspace_id_fk", "tableFrom": "integration", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } @@ -419,9 +385,7 @@ "indexes": { "page_slug_unique": { "name": "page_slug_unique", - "columns": [ - "slug" - ], + "columns": ["slug"], "isUnique": true } }, @@ -429,13 +393,9 @@ "page_workspace_id_workspace_id_fk": { "name": "page_workspace_id_workspace_id_fk", "tableFrom": "page", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } @@ -569,13 +529,9 @@ "monitor_workspace_id_workspace_id_fk": { "name": "monitor_workspace_id_workspace_id_fk", "tableFrom": "monitor", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } @@ -606,36 +562,25 @@ "monitors_to_pages_monitor_id_monitor_id_fk": { "name": "monitors_to_pages_monitor_id_monitor_id_fk", "tableFrom": "monitors_to_pages", - "columnsFrom": [ - "monitor_id" - ], + "columnsFrom": ["monitor_id"], "tableTo": "monitor", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" }, "monitors_to_pages_page_id_page_id_fk": { "name": "monitors_to_pages_page_id_page_id_fk", "tableFrom": "monitors_to_pages", - "columnsFrom": [ - "page_id" - ], + "columnsFrom": ["page_id"], "tableTo": "page", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } }, "compositePrimaryKeys": { "monitors_to_pages_monitor_id_page_id_pk": { - "columns": [ - "monitor_id", - "page_id" - ] + "columns": ["monitor_id", "page_id"] } }, "uniqueConstraints": {} @@ -709,9 +654,7 @@ "indexes": { "user_tenant_id_unique": { "name": "user_tenant_id_unique", - "columns": [ - "tenant_id" - ], + "columns": ["tenant_id"], "isUnique": true } }, @@ -750,36 +693,25 @@ "users_to_workspaces_user_id_user_id_fk": { "name": "users_to_workspaces_user_id_user_id_fk", "tableFrom": "users_to_workspaces", - "columnsFrom": [ - "user_id" - ], + "columnsFrom": ["user_id"], "tableTo": "user", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" }, "users_to_workspaces_workspace_id_workspace_id_fk": { "name": "users_to_workspaces_workspace_id_workspace_id_fk", "tableFrom": "users_to_workspaces", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } }, "compositePrimaryKeys": { "users_to_workspaces_user_id_workspace_id_pk": { - "columns": [ - "user_id", - "workspace_id" - ] + "columns": ["user_id", "workspace_id"] } }, "uniqueConstraints": {} @@ -851,13 +783,9 @@ "page_subscriber_page_id_page_id_fk": { "name": "page_subscriber_page_id_page_id_fk", "tableFrom": "page_subscriber", - "columnsFrom": [ - "page_id" - ], + "columnsFrom": ["page_id"], "tableTo": "page", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } @@ -944,16 +872,12 @@ "indexes": { "workspace_slug_unique": { "name": "workspace_slug_unique", - "columns": [ - "slug" - ], + "columns": ["slug"], "isUnique": true }, "workspace_stripe_id_unique": { "name": "workspace_stripe_id_unique", - "columns": [ - "stripe_id" - ], + "columns": ["stripe_id"], "isUnique": true } }, @@ -1022,13 +946,9 @@ "notification_workspace_id_workspace_id_fk": { "name": "notification_workspace_id_workspace_id_fk", "tableFrom": "notification", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } @@ -1059,36 +979,25 @@ "notifications_to_monitors_monitor_id_monitor_id_fk": { "name": "notifications_to_monitors_monitor_id_monitor_id_fk", "tableFrom": "notifications_to_monitors", - "columnsFrom": [ - "monitor_id" - ], + "columnsFrom": ["monitor_id"], "tableTo": "monitor", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" }, "notifications_to_monitors_notification_id_notification_id_fk": { "name": "notifications_to_monitors_notification_id_notification_id_fk", "tableFrom": "notifications_to_monitors", - "columnsFrom": [ - "notification_id" - ], + "columnsFrom": ["notification_id"], "tableTo": "notification", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } }, "compositePrimaryKeys": { "notifications_to_monitors_monitor_id_notification_id_pk": { - "columns": [ - "monitor_id", - "notification_id" - ] + "columns": ["monitor_id", "notification_id"] } }, "uniqueConstraints": {} @@ -1139,10 +1048,7 @@ "indexes": { "monitor_status_idx": { "name": "monitor_status_idx", - "columns": [ - "monitor_id", - "region" - ], + "columns": ["monitor_id", "region"], "isUnique": false } }, @@ -1150,23 +1056,16 @@ "monitor_status_monitor_id_monitor_id_fk": { "name": "monitor_status_monitor_id_monitor_id_fk", "tableFrom": "monitor_status", - "columnsFrom": [ - "monitor_id" - ], + "columnsFrom": ["monitor_id"], "tableTo": "monitor", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } }, "compositePrimaryKeys": { "monitor_status_monitor_id_region_pk": { - "columns": [ - "monitor_id", - "region" - ] + "columns": ["monitor_id", "region"] } }, "uniqueConstraints": {} @@ -1343,52 +1242,36 @@ "incident_monitor_id_monitor_id_fk": { "name": "incident_monitor_id_monitor_id_fk", "tableFrom": "incident", - "columnsFrom": [ - "monitor_id" - ], + "columnsFrom": ["monitor_id"], "tableTo": "monitor", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" }, "incident_workspace_id_workspace_id_fk": { "name": "incident_workspace_id_workspace_id_fk", "tableFrom": "incident", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" }, "incident_acknowledged_by_user_id_fk": { "name": "incident_acknowledged_by_user_id_fk", "tableFrom": "incident", - "columnsFrom": [ - "acknowledged_by" - ], + "columnsFrom": ["acknowledged_by"], "tableTo": "user", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" }, "incident_resolved_by_user_id_fk": { "name": "incident_resolved_by_user_id_fk", "tableFrom": "incident", - "columnsFrom": [ - "resolved_by" - ], + "columnsFrom": ["resolved_by"], "tableTo": "user", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } @@ -1404,4 +1287,4 @@ }, "id": "f5a77857-319d-4575-b570-f0aacb9eab35", "prevId": "4cc8ce9b-ed70-47c1-8218-2cbc02743563" -} \ No newline at end of file +} diff --git a/packages/db/drizzle/meta/0017_snapshot.json b/packages/db/drizzle/meta/0017_snapshot.json index 1f9e0260b..1ce236128 100644 --- a/packages/db/drizzle/meta/0017_snapshot.json +++ b/packages/db/drizzle/meta/0017_snapshot.json @@ -33,36 +33,25 @@ "status_report_to_monitors_monitor_id_monitor_id_fk": { "name": "status_report_to_monitors_monitor_id_monitor_id_fk", "tableFrom": "status_report_to_monitors", - "columnsFrom": [ - "monitor_id" - ], + "columnsFrom": ["monitor_id"], "tableTo": "monitor", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" }, "status_report_to_monitors_status_report_id_status_report_id_fk": { "name": "status_report_to_monitors_status_report_id_status_report_id_fk", "tableFrom": "status_report_to_monitors", - "columnsFrom": [ - "status_report_id" - ], + "columnsFrom": ["status_report_id"], "tableTo": "status_report", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } }, "compositePrimaryKeys": { "status_report_to_monitors_monitor_id_status_report_id_pk": { - "columns": [ - "monitor_id", - "status_report_id" - ] + "columns": ["monitor_id", "status_report_id"] } }, "uniqueConstraints": {} @@ -98,36 +87,25 @@ "status_reports_to_pages_page_id_page_id_fk": { "name": "status_reports_to_pages_page_id_page_id_fk", "tableFrom": "status_reports_to_pages", - "columnsFrom": [ - "page_id" - ], + "columnsFrom": ["page_id"], "tableTo": "page", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" }, "status_reports_to_pages_status_report_id_status_report_id_fk": { "name": "status_reports_to_pages_status_report_id_status_report_id_fk", "tableFrom": "status_reports_to_pages", - "columnsFrom": [ - "status_report_id" - ], + "columnsFrom": ["status_report_id"], "tableTo": "status_report", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } }, "compositePrimaryKeys": { "status_reports_to_pages_page_id_status_report_id_pk": { - "columns": [ - "page_id", - "status_report_id" - ] + "columns": ["page_id", "status_report_id"] } }, "uniqueConstraints": {} @@ -185,13 +163,9 @@ "status_report_workspace_id_workspace_id_fk": { "name": "status_report_workspace_id_workspace_id_fk", "tableFrom": "status_report", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } @@ -259,13 +233,9 @@ "status_report_update_status_report_id_status_report_id_fk": { "name": "status_report_update_status_report_id_status_report_id_fk", "tableFrom": "status_report_update", - "columnsFrom": [ - "status_report_id" - ], + "columnsFrom": ["status_report_id"], "tableTo": "status_report", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } @@ -340,13 +310,9 @@ "integration_workspace_id_workspace_id_fk": { "name": "integration_workspace_id_workspace_id_fk", "tableFrom": "integration", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } @@ -435,9 +401,7 @@ "indexes": { "page_slug_unique": { "name": "page_slug_unique", - "columns": [ - "slug" - ], + "columns": ["slug"], "isUnique": true } }, @@ -445,13 +409,9 @@ "page_workspace_id_workspace_id_fk": { "name": "page_workspace_id_workspace_id_fk", "tableFrom": "page", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } @@ -585,13 +545,9 @@ "monitor_workspace_id_workspace_id_fk": { "name": "monitor_workspace_id_workspace_id_fk", "tableFrom": "monitor", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } @@ -630,36 +586,25 @@ "monitors_to_pages_monitor_id_monitor_id_fk": { "name": "monitors_to_pages_monitor_id_monitor_id_fk", "tableFrom": "monitors_to_pages", - "columnsFrom": [ - "monitor_id" - ], + "columnsFrom": ["monitor_id"], "tableTo": "monitor", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" }, "monitors_to_pages_page_id_page_id_fk": { "name": "monitors_to_pages_page_id_page_id_fk", "tableFrom": "monitors_to_pages", - "columnsFrom": [ - "page_id" - ], + "columnsFrom": ["page_id"], "tableTo": "page", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } }, "compositePrimaryKeys": { "monitors_to_pages_monitor_id_page_id_pk": { - "columns": [ - "monitor_id", - "page_id" - ] + "columns": ["monitor_id", "page_id"] } }, "uniqueConstraints": {} @@ -733,9 +678,7 @@ "indexes": { "user_tenant_id_unique": { "name": "user_tenant_id_unique", - "columns": [ - "tenant_id" - ], + "columns": ["tenant_id"], "isUnique": true } }, @@ -782,36 +725,25 @@ "users_to_workspaces_user_id_user_id_fk": { "name": "users_to_workspaces_user_id_user_id_fk", "tableFrom": "users_to_workspaces", - "columnsFrom": [ - "user_id" - ], + "columnsFrom": ["user_id"], "tableTo": "user", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" }, "users_to_workspaces_workspace_id_workspace_id_fk": { "name": "users_to_workspaces_workspace_id_workspace_id_fk", "tableFrom": "users_to_workspaces", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } }, "compositePrimaryKeys": { "users_to_workspaces_user_id_workspace_id_pk": { - "columns": [ - "user_id", - "workspace_id" - ] + "columns": ["user_id", "workspace_id"] } }, "uniqueConstraints": {} @@ -883,13 +815,9 @@ "page_subscriber_page_id_page_id_fk": { "name": "page_subscriber_page_id_page_id_fk", "tableFrom": "page_subscriber", - "columnsFrom": [ - "page_id" - ], + "columnsFrom": ["page_id"], "tableTo": "page", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } @@ -976,16 +904,12 @@ "indexes": { "workspace_slug_unique": { "name": "workspace_slug_unique", - "columns": [ - "slug" - ], + "columns": ["slug"], "isUnique": true }, "workspace_stripe_id_unique": { "name": "workspace_stripe_id_unique", - "columns": [ - "stripe_id" - ], + "columns": ["stripe_id"], "isUnique": true } }, @@ -1054,13 +978,9 @@ "notification_workspace_id_workspace_id_fk": { "name": "notification_workspace_id_workspace_id_fk", "tableFrom": "notification", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } @@ -1099,36 +1019,25 @@ "notifications_to_monitors_monitor_id_monitor_id_fk": { "name": "notifications_to_monitors_monitor_id_monitor_id_fk", "tableFrom": "notifications_to_monitors", - "columnsFrom": [ - "monitor_id" - ], + "columnsFrom": ["monitor_id"], "tableTo": "monitor", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" }, "notifications_to_monitors_notification_id_notification_id_fk": { "name": "notifications_to_monitors_notification_id_notification_id_fk", "tableFrom": "notifications_to_monitors", - "columnsFrom": [ - "notification_id" - ], + "columnsFrom": ["notification_id"], "tableTo": "notification", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } }, "compositePrimaryKeys": { "notifications_to_monitors_monitor_id_notification_id_pk": { - "columns": [ - "monitor_id", - "notification_id" - ] + "columns": ["monitor_id", "notification_id"] } }, "uniqueConstraints": {} @@ -1179,10 +1088,7 @@ "indexes": { "monitor_status_idx": { "name": "monitor_status_idx", - "columns": [ - "monitor_id", - "region" - ], + "columns": ["monitor_id", "region"], "isUnique": false } }, @@ -1190,23 +1096,16 @@ "monitor_status_monitor_id_monitor_id_fk": { "name": "monitor_status_monitor_id_monitor_id_fk", "tableFrom": "monitor_status", - "columnsFrom": [ - "monitor_id" - ], + "columnsFrom": ["monitor_id"], "tableTo": "monitor", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } }, "compositePrimaryKeys": { "monitor_status_monitor_id_region_pk": { - "columns": [ - "monitor_id", - "region" - ] + "columns": ["monitor_id", "region"] } }, "uniqueConstraints": {} @@ -1382,10 +1281,7 @@ "indexes": { "incident_monitor_id_started_at_unique": { "name": "incident_monitor_id_started_at_unique", - "columns": [ - "monitor_id", - "started_at" - ], + "columns": ["monitor_id", "started_at"], "isUnique": true } }, @@ -1393,52 +1289,36 @@ "incident_monitor_id_monitor_id_fk": { "name": "incident_monitor_id_monitor_id_fk", "tableFrom": "incident", - "columnsFrom": [ - "monitor_id" - ], + "columnsFrom": ["monitor_id"], "tableTo": "monitor", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "set default" }, "incident_workspace_id_workspace_id_fk": { "name": "incident_workspace_id_workspace_id_fk", "tableFrom": "incident", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" }, "incident_acknowledged_by_user_id_fk": { "name": "incident_acknowledged_by_user_id_fk", "tableFrom": "incident", - "columnsFrom": [ - "acknowledged_by" - ], + "columnsFrom": ["acknowledged_by"], "tableTo": "user", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" }, "incident_resolved_by_user_id_fk": { "name": "incident_resolved_by_user_id_fk", "tableFrom": "incident", - "columnsFrom": [ - "resolved_by" - ], + "columnsFrom": ["resolved_by"], "tableTo": "user", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } @@ -1454,4 +1334,4 @@ }, "id": "bbc87c20-bc65-4132-913c-65154793a027", "prevId": "d3626cd5-956f-4a64-9c70-02e5ee44cde0" -} \ No newline at end of file +} diff --git a/packages/db/drizzle/meta/0018_snapshot.json b/packages/db/drizzle/meta/0018_snapshot.json index f350b9868..7470e87ef 100644 --- a/packages/db/drizzle/meta/0018_snapshot.json +++ b/packages/db/drizzle/meta/0018_snapshot.json @@ -33,36 +33,25 @@ "status_report_to_monitors_monitor_id_monitor_id_fk": { "name": "status_report_to_monitors_monitor_id_monitor_id_fk", "tableFrom": "status_report_to_monitors", - "columnsFrom": [ - "monitor_id" - ], + "columnsFrom": ["monitor_id"], "tableTo": "monitor", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" }, "status_report_to_monitors_status_report_id_status_report_id_fk": { "name": "status_report_to_monitors_status_report_id_status_report_id_fk", "tableFrom": "status_report_to_monitors", - "columnsFrom": [ - "status_report_id" - ], + "columnsFrom": ["status_report_id"], "tableTo": "status_report", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } }, "compositePrimaryKeys": { "status_report_to_monitors_monitor_id_status_report_id_pk": { - "columns": [ - "monitor_id", - "status_report_id" - ], + "columns": ["monitor_id", "status_report_id"], "name": "status_report_to_monitors_monitor_id_status_report_id_pk" } }, @@ -99,36 +88,25 @@ "status_reports_to_pages_page_id_page_id_fk": { "name": "status_reports_to_pages_page_id_page_id_fk", "tableFrom": "status_reports_to_pages", - "columnsFrom": [ - "page_id" - ], + "columnsFrom": ["page_id"], "tableTo": "page", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" }, "status_reports_to_pages_status_report_id_status_report_id_fk": { "name": "status_reports_to_pages_status_report_id_status_report_id_fk", "tableFrom": "status_reports_to_pages", - "columnsFrom": [ - "status_report_id" - ], + "columnsFrom": ["status_report_id"], "tableTo": "status_report", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } }, "compositePrimaryKeys": { "status_reports_to_pages_page_id_status_report_id_pk": { - "columns": [ - "page_id", - "status_report_id" - ], + "columns": ["page_id", "status_report_id"], "name": "status_reports_to_pages_page_id_status_report_id_pk" } }, @@ -187,13 +165,9 @@ "status_report_workspace_id_workspace_id_fk": { "name": "status_report_workspace_id_workspace_id_fk", "tableFrom": "status_report", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } @@ -261,13 +235,9 @@ "status_report_update_status_report_id_status_report_id_fk": { "name": "status_report_update_status_report_id_status_report_id_fk", "tableFrom": "status_report_update", - "columnsFrom": [ - "status_report_id" - ], + "columnsFrom": ["status_report_id"], "tableTo": "status_report", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } @@ -342,13 +312,9 @@ "integration_workspace_id_workspace_id_fk": { "name": "integration_workspace_id_workspace_id_fk", "tableFrom": "integration", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } @@ -437,9 +403,7 @@ "indexes": { "page_slug_unique": { "name": "page_slug_unique", - "columns": [ - "slug" - ], + "columns": ["slug"], "isUnique": true } }, @@ -447,13 +411,9 @@ "page_workspace_id_workspace_id_fk": { "name": "page_workspace_id_workspace_id_fk", "tableFrom": "page", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } @@ -587,13 +547,9 @@ "monitor_workspace_id_workspace_id_fk": { "name": "monitor_workspace_id_workspace_id_fk", "tableFrom": "monitor", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } @@ -632,36 +588,25 @@ "monitors_to_pages_monitor_id_monitor_id_fk": { "name": "monitors_to_pages_monitor_id_monitor_id_fk", "tableFrom": "monitors_to_pages", - "columnsFrom": [ - "monitor_id" - ], + "columnsFrom": ["monitor_id"], "tableTo": "monitor", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" }, "monitors_to_pages_page_id_page_id_fk": { "name": "monitors_to_pages_page_id_page_id_fk", "tableFrom": "monitors_to_pages", - "columnsFrom": [ - "page_id" - ], + "columnsFrom": ["page_id"], "tableTo": "page", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } }, "compositePrimaryKeys": { "monitors_to_pages_monitor_id_page_id_pk": { - "columns": [ - "monitor_id", - "page_id" - ], + "columns": ["monitor_id", "page_id"], "name": "monitors_to_pages_monitor_id_page_id_pk" } }, @@ -736,9 +681,7 @@ "indexes": { "user_tenant_id_unique": { "name": "user_tenant_id_unique", - "columns": [ - "tenant_id" - ], + "columns": ["tenant_id"], "isUnique": true } }, @@ -785,36 +728,25 @@ "users_to_workspaces_user_id_user_id_fk": { "name": "users_to_workspaces_user_id_user_id_fk", "tableFrom": "users_to_workspaces", - "columnsFrom": [ - "user_id" - ], + "columnsFrom": ["user_id"], "tableTo": "user", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" }, "users_to_workspaces_workspace_id_workspace_id_fk": { "name": "users_to_workspaces_workspace_id_workspace_id_fk", "tableFrom": "users_to_workspaces", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } }, "compositePrimaryKeys": { "users_to_workspaces_user_id_workspace_id_pk": { - "columns": [ - "user_id", - "workspace_id" - ], + "columns": ["user_id", "workspace_id"], "name": "users_to_workspaces_user_id_workspace_id_pk" } }, @@ -887,13 +819,9 @@ "page_subscriber_page_id_page_id_fk": { "name": "page_subscriber_page_id_page_id_fk", "tableFrom": "page_subscriber", - "columnsFrom": [ - "page_id" - ], + "columnsFrom": ["page_id"], "tableTo": "page", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } @@ -980,16 +908,12 @@ "indexes": { "workspace_slug_unique": { "name": "workspace_slug_unique", - "columns": [ - "slug" - ], + "columns": ["slug"], "isUnique": true }, "workspace_stripe_id_unique": { "name": "workspace_stripe_id_unique", - "columns": [ - "stripe_id" - ], + "columns": ["stripe_id"], "isUnique": true } }, @@ -1058,13 +982,9 @@ "notification_workspace_id_workspace_id_fk": { "name": "notification_workspace_id_workspace_id_fk", "tableFrom": "notification", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } @@ -1103,36 +1023,25 @@ "notifications_to_monitors_monitor_id_monitor_id_fk": { "name": "notifications_to_monitors_monitor_id_monitor_id_fk", "tableFrom": "notifications_to_monitors", - "columnsFrom": [ - "monitor_id" - ], + "columnsFrom": ["monitor_id"], "tableTo": "monitor", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" }, "notifications_to_monitors_notification_id_notification_id_fk": { "name": "notifications_to_monitors_notification_id_notification_id_fk", "tableFrom": "notifications_to_monitors", - "columnsFrom": [ - "notification_id" - ], + "columnsFrom": ["notification_id"], "tableTo": "notification", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } }, "compositePrimaryKeys": { "notifications_to_monitors_monitor_id_notification_id_pk": { - "columns": [ - "monitor_id", - "notification_id" - ], + "columns": ["monitor_id", "notification_id"], "name": "notifications_to_monitors_monitor_id_notification_id_pk" } }, @@ -1184,10 +1093,7 @@ "indexes": { "monitor_status_idx": { "name": "monitor_status_idx", - "columns": [ - "monitor_id", - "region" - ], + "columns": ["monitor_id", "region"], "isUnique": false } }, @@ -1195,23 +1101,16 @@ "monitor_status_monitor_id_monitor_id_fk": { "name": "monitor_status_monitor_id_monitor_id_fk", "tableFrom": "monitor_status", - "columnsFrom": [ - "monitor_id" - ], + "columnsFrom": ["monitor_id"], "tableTo": "monitor", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } }, "compositePrimaryKeys": { "monitor_status_monitor_id_region_pk": { - "columns": [ - "monitor_id", - "region" - ], + "columns": ["monitor_id", "region"], "name": "monitor_status_monitor_id_region_pk" } }, @@ -1396,10 +1295,7 @@ "indexes": { "incident_monitor_id_started_at_unique": { "name": "incident_monitor_id_started_at_unique", - "columns": [ - "monitor_id", - "started_at" - ], + "columns": ["monitor_id", "started_at"], "isUnique": true } }, @@ -1407,52 +1303,36 @@ "incident_monitor_id_monitor_id_fk": { "name": "incident_monitor_id_monitor_id_fk", "tableFrom": "incident", - "columnsFrom": [ - "monitor_id" - ], + "columnsFrom": ["monitor_id"], "tableTo": "monitor", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "set default" }, "incident_workspace_id_workspace_id_fk": { "name": "incident_workspace_id_workspace_id_fk", "tableFrom": "incident", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" }, "incident_acknowledged_by_user_id_fk": { "name": "incident_acknowledged_by_user_id_fk", "tableFrom": "incident", - "columnsFrom": [ - "acknowledged_by" - ], + "columnsFrom": ["acknowledged_by"], "tableTo": "user", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" }, "incident_resolved_by_user_id_fk": { "name": "incident_resolved_by_user_id_fk", "tableFrom": "incident", - "columnsFrom": [ - "resolved_by" - ], + "columnsFrom": ["resolved_by"], "tableTo": "user", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } @@ -1468,4 +1348,4 @@ }, "id": "8b74891f-e46d-4716-89a8-e2befaca5513", "prevId": "bbc87c20-bc65-4132-913c-65154793a027" -} \ No newline at end of file +} diff --git a/packages/db/drizzle/meta/0019_snapshot.json b/packages/db/drizzle/meta/0019_snapshot.json index 7c813188d..5c4e404dc 100644 --- a/packages/db/drizzle/meta/0019_snapshot.json +++ b/packages/db/drizzle/meta/0019_snapshot.json @@ -33,36 +33,25 @@ "status_report_to_monitors_monitor_id_monitor_id_fk": { "name": "status_report_to_monitors_monitor_id_monitor_id_fk", "tableFrom": "status_report_to_monitors", - "columnsFrom": [ - "monitor_id" - ], + "columnsFrom": ["monitor_id"], "tableTo": "monitor", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" }, "status_report_to_monitors_status_report_id_status_report_id_fk": { "name": "status_report_to_monitors_status_report_id_status_report_id_fk", "tableFrom": "status_report_to_monitors", - "columnsFrom": [ - "status_report_id" - ], + "columnsFrom": ["status_report_id"], "tableTo": "status_report", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } }, "compositePrimaryKeys": { "status_report_to_monitors_monitor_id_status_report_id_pk": { - "columns": [ - "monitor_id", - "status_report_id" - ], + "columns": ["monitor_id", "status_report_id"], "name": "status_report_to_monitors_monitor_id_status_report_id_pk" } }, @@ -99,36 +88,25 @@ "status_reports_to_pages_page_id_page_id_fk": { "name": "status_reports_to_pages_page_id_page_id_fk", "tableFrom": "status_reports_to_pages", - "columnsFrom": [ - "page_id" - ], + "columnsFrom": ["page_id"], "tableTo": "page", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" }, "status_reports_to_pages_status_report_id_status_report_id_fk": { "name": "status_reports_to_pages_status_report_id_status_report_id_fk", "tableFrom": "status_reports_to_pages", - "columnsFrom": [ - "status_report_id" - ], + "columnsFrom": ["status_report_id"], "tableTo": "status_report", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } }, "compositePrimaryKeys": { "status_reports_to_pages_page_id_status_report_id_pk": { - "columns": [ - "page_id", - "status_report_id" - ], + "columns": ["page_id", "status_report_id"], "name": "status_reports_to_pages_page_id_status_report_id_pk" } }, @@ -187,13 +165,9 @@ "status_report_workspace_id_workspace_id_fk": { "name": "status_report_workspace_id_workspace_id_fk", "tableFrom": "status_report", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } @@ -261,13 +235,9 @@ "status_report_update_status_report_id_status_report_id_fk": { "name": "status_report_update_status_report_id_status_report_id_fk", "tableFrom": "status_report_update", - "columnsFrom": [ - "status_report_id" - ], + "columnsFrom": ["status_report_id"], "tableTo": "status_report", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } @@ -342,13 +312,9 @@ "integration_workspace_id_workspace_id_fk": { "name": "integration_workspace_id_workspace_id_fk", "tableFrom": "integration", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } @@ -437,9 +403,7 @@ "indexes": { "page_slug_unique": { "name": "page_slug_unique", - "columns": [ - "slug" - ], + "columns": ["slug"], "isUnique": true } }, @@ -447,13 +411,9 @@ "page_workspace_id_workspace_id_fk": { "name": "page_workspace_id_workspace_id_fk", "tableFrom": "page", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } @@ -587,13 +547,9 @@ "monitor_workspace_id_workspace_id_fk": { "name": "monitor_workspace_id_workspace_id_fk", "tableFrom": "monitor", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } @@ -632,36 +588,25 @@ "monitors_to_pages_monitor_id_monitor_id_fk": { "name": "monitors_to_pages_monitor_id_monitor_id_fk", "tableFrom": "monitors_to_pages", - "columnsFrom": [ - "monitor_id" - ], + "columnsFrom": ["monitor_id"], "tableTo": "monitor", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" }, "monitors_to_pages_page_id_page_id_fk": { "name": "monitors_to_pages_page_id_page_id_fk", "tableFrom": "monitors_to_pages", - "columnsFrom": [ - "page_id" - ], + "columnsFrom": ["page_id"], "tableTo": "page", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } }, "compositePrimaryKeys": { "monitors_to_pages_monitor_id_page_id_pk": { - "columns": [ - "monitor_id", - "page_id" - ], + "columns": ["monitor_id", "page_id"], "name": "monitors_to_pages_monitor_id_page_id_pk" } }, @@ -736,9 +681,7 @@ "indexes": { "user_tenant_id_unique": { "name": "user_tenant_id_unique", - "columns": [ - "tenant_id" - ], + "columns": ["tenant_id"], "isUnique": true } }, @@ -785,36 +728,25 @@ "users_to_workspaces_user_id_user_id_fk": { "name": "users_to_workspaces_user_id_user_id_fk", "tableFrom": "users_to_workspaces", - "columnsFrom": [ - "user_id" - ], + "columnsFrom": ["user_id"], "tableTo": "user", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" }, "users_to_workspaces_workspace_id_workspace_id_fk": { "name": "users_to_workspaces_workspace_id_workspace_id_fk", "tableFrom": "users_to_workspaces", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } }, "compositePrimaryKeys": { "users_to_workspaces_user_id_workspace_id_pk": { - "columns": [ - "user_id", - "workspace_id" - ], + "columns": ["user_id", "workspace_id"], "name": "users_to_workspaces_user_id_workspace_id_pk" } }, @@ -887,13 +819,9 @@ "page_subscriber_page_id_page_id_fk": { "name": "page_subscriber_page_id_page_id_fk", "tableFrom": "page_subscriber", - "columnsFrom": [ - "page_id" - ], + "columnsFrom": ["page_id"], "tableTo": "page", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } @@ -980,16 +908,12 @@ "indexes": { "workspace_slug_unique": { "name": "workspace_slug_unique", - "columns": [ - "slug" - ], + "columns": ["slug"], "isUnique": true }, "workspace_stripe_id_unique": { "name": "workspace_stripe_id_unique", - "columns": [ - "stripe_id" - ], + "columns": ["stripe_id"], "isUnique": true } }, @@ -1058,13 +982,9 @@ "notification_workspace_id_workspace_id_fk": { "name": "notification_workspace_id_workspace_id_fk", "tableFrom": "notification", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } @@ -1103,36 +1023,25 @@ "notifications_to_monitors_monitor_id_monitor_id_fk": { "name": "notifications_to_monitors_monitor_id_monitor_id_fk", "tableFrom": "notifications_to_monitors", - "columnsFrom": [ - "monitor_id" - ], + "columnsFrom": ["monitor_id"], "tableTo": "monitor", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" }, "notifications_to_monitors_notification_id_notification_id_fk": { "name": "notifications_to_monitors_notification_id_notification_id_fk", "tableFrom": "notifications_to_monitors", - "columnsFrom": [ - "notification_id" - ], + "columnsFrom": ["notification_id"], "tableTo": "notification", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } }, "compositePrimaryKeys": { "notifications_to_monitors_monitor_id_notification_id_pk": { - "columns": [ - "monitor_id", - "notification_id" - ], + "columns": ["monitor_id", "notification_id"], "name": "notifications_to_monitors_monitor_id_notification_id_pk" } }, @@ -1184,10 +1093,7 @@ "indexes": { "monitor_status_idx": { "name": "monitor_status_idx", - "columns": [ - "monitor_id", - "region" - ], + "columns": ["monitor_id", "region"], "isUnique": false } }, @@ -1195,23 +1101,16 @@ "monitor_status_monitor_id_monitor_id_fk": { "name": "monitor_status_monitor_id_monitor_id_fk", "tableFrom": "monitor_status", - "columnsFrom": [ - "monitor_id" - ], + "columnsFrom": ["monitor_id"], "tableTo": "monitor", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } }, "compositePrimaryKeys": { "monitor_status_monitor_id_region_pk": { - "columns": [ - "monitor_id", - "region" - ], + "columns": ["monitor_id", "region"], "name": "monitor_status_monitor_id_region_pk" } }, @@ -1396,11 +1295,7 @@ "indexes": { "incident_id_monitor_id_started_at_unique": { "name": "incident_id_monitor_id_started_at_unique", - "columns": [ - "id", - "monitor_id", - "started_at" - ], + "columns": ["id", "monitor_id", "started_at"], "isUnique": true } }, @@ -1408,52 +1303,36 @@ "incident_monitor_id_monitor_id_fk": { "name": "incident_monitor_id_monitor_id_fk", "tableFrom": "incident", - "columnsFrom": [ - "monitor_id" - ], + "columnsFrom": ["monitor_id"], "tableTo": "monitor", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "set default" }, "incident_workspace_id_workspace_id_fk": { "name": "incident_workspace_id_workspace_id_fk", "tableFrom": "incident", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" }, "incident_acknowledged_by_user_id_fk": { "name": "incident_acknowledged_by_user_id_fk", "tableFrom": "incident", - "columnsFrom": [ - "acknowledged_by" - ], + "columnsFrom": ["acknowledged_by"], "tableTo": "user", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" }, "incident_resolved_by_user_id_fk": { "name": "incident_resolved_by_user_id_fk", "tableFrom": "incident", - "columnsFrom": [ - "resolved_by" - ], + "columnsFrom": ["resolved_by"], "tableTo": "user", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } @@ -1469,4 +1348,4 @@ }, "id": "fed3b3e4-d55d-4370-b39b-c837512a6d8e", "prevId": "8b74891f-e46d-4716-89a8-e2befaca5513" -} \ No newline at end of file +} diff --git a/packages/db/drizzle/meta/0020_snapshot.json b/packages/db/drizzle/meta/0020_snapshot.json index 85a2ac7a9..ac956165e 100644 --- a/packages/db/drizzle/meta/0020_snapshot.json +++ b/packages/db/drizzle/meta/0020_snapshot.json @@ -33,36 +33,25 @@ "status_report_to_monitors_monitor_id_monitor_id_fk": { "name": "status_report_to_monitors_monitor_id_monitor_id_fk", "tableFrom": "status_report_to_monitors", - "columnsFrom": [ - "monitor_id" - ], + "columnsFrom": ["monitor_id"], "tableTo": "monitor", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" }, "status_report_to_monitors_status_report_id_status_report_id_fk": { "name": "status_report_to_monitors_status_report_id_status_report_id_fk", "tableFrom": "status_report_to_monitors", - "columnsFrom": [ - "status_report_id" - ], + "columnsFrom": ["status_report_id"], "tableTo": "status_report", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } }, "compositePrimaryKeys": { "status_report_to_monitors_monitor_id_status_report_id_pk": { - "columns": [ - "monitor_id", - "status_report_id" - ], + "columns": ["monitor_id", "status_report_id"], "name": "status_report_to_monitors_monitor_id_status_report_id_pk" } }, @@ -99,36 +88,25 @@ "status_reports_to_pages_page_id_page_id_fk": { "name": "status_reports_to_pages_page_id_page_id_fk", "tableFrom": "status_reports_to_pages", - "columnsFrom": [ - "page_id" - ], + "columnsFrom": ["page_id"], "tableTo": "page", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" }, "status_reports_to_pages_status_report_id_status_report_id_fk": { "name": "status_reports_to_pages_status_report_id_status_report_id_fk", "tableFrom": "status_reports_to_pages", - "columnsFrom": [ - "status_report_id" - ], + "columnsFrom": ["status_report_id"], "tableTo": "status_report", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } }, "compositePrimaryKeys": { "status_reports_to_pages_page_id_status_report_id_pk": { - "columns": [ - "page_id", - "status_report_id" - ], + "columns": ["page_id", "status_report_id"], "name": "status_reports_to_pages_page_id_status_report_id_pk" } }, @@ -187,13 +165,9 @@ "status_report_workspace_id_workspace_id_fk": { "name": "status_report_workspace_id_workspace_id_fk", "tableFrom": "status_report", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } @@ -261,13 +235,9 @@ "status_report_update_status_report_id_status_report_id_fk": { "name": "status_report_update_status_report_id_status_report_id_fk", "tableFrom": "status_report_update", - "columnsFrom": [ - "status_report_id" - ], + "columnsFrom": ["status_report_id"], "tableTo": "status_report", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } @@ -342,13 +312,9 @@ "integration_workspace_id_workspace_id_fk": { "name": "integration_workspace_id_workspace_id_fk", "tableFrom": "integration", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } @@ -437,9 +403,7 @@ "indexes": { "page_slug_unique": { "name": "page_slug_unique", - "columns": [ - "slug" - ], + "columns": ["slug"], "isUnique": true } }, @@ -447,13 +411,9 @@ "page_workspace_id_workspace_id_fk": { "name": "page_workspace_id_workspace_id_fk", "tableFrom": "page", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } @@ -587,13 +547,9 @@ "monitor_workspace_id_workspace_id_fk": { "name": "monitor_workspace_id_workspace_id_fk", "tableFrom": "monitor", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } @@ -632,36 +588,25 @@ "monitors_to_pages_monitor_id_monitor_id_fk": { "name": "monitors_to_pages_monitor_id_monitor_id_fk", "tableFrom": "monitors_to_pages", - "columnsFrom": [ - "monitor_id" - ], + "columnsFrom": ["monitor_id"], "tableTo": "monitor", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" }, "monitors_to_pages_page_id_page_id_fk": { "name": "monitors_to_pages_page_id_page_id_fk", "tableFrom": "monitors_to_pages", - "columnsFrom": [ - "page_id" - ], + "columnsFrom": ["page_id"], "tableTo": "page", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } }, "compositePrimaryKeys": { "monitors_to_pages_monitor_id_page_id_pk": { - "columns": [ - "monitor_id", - "page_id" - ], + "columns": ["monitor_id", "page_id"], "name": "monitors_to_pages_monitor_id_page_id_pk" } }, @@ -736,9 +681,7 @@ "indexes": { "user_tenant_id_unique": { "name": "user_tenant_id_unique", - "columns": [ - "tenant_id" - ], + "columns": ["tenant_id"], "isUnique": true } }, @@ -785,36 +728,25 @@ "users_to_workspaces_user_id_user_id_fk": { "name": "users_to_workspaces_user_id_user_id_fk", "tableFrom": "users_to_workspaces", - "columnsFrom": [ - "user_id" - ], + "columnsFrom": ["user_id"], "tableTo": "user", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" }, "users_to_workspaces_workspace_id_workspace_id_fk": { "name": "users_to_workspaces_workspace_id_workspace_id_fk", "tableFrom": "users_to_workspaces", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } }, "compositePrimaryKeys": { "users_to_workspaces_user_id_workspace_id_pk": { - "columns": [ - "user_id", - "workspace_id" - ], + "columns": ["user_id", "workspace_id"], "name": "users_to_workspaces_user_id_workspace_id_pk" } }, @@ -887,13 +819,9 @@ "page_subscriber_page_id_page_id_fk": { "name": "page_subscriber_page_id_page_id_fk", "tableFrom": "page_subscriber", - "columnsFrom": [ - "page_id" - ], + "columnsFrom": ["page_id"], "tableTo": "page", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } @@ -980,16 +908,12 @@ "indexes": { "workspace_slug_unique": { "name": "workspace_slug_unique", - "columns": [ - "slug" - ], + "columns": ["slug"], "isUnique": true }, "workspace_stripe_id_unique": { "name": "workspace_stripe_id_unique", - "columns": [ - "stripe_id" - ], + "columns": ["stripe_id"], "isUnique": true } }, @@ -1058,13 +982,9 @@ "notification_workspace_id_workspace_id_fk": { "name": "notification_workspace_id_workspace_id_fk", "tableFrom": "notification", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } @@ -1103,36 +1023,25 @@ "notifications_to_monitors_monitor_id_monitor_id_fk": { "name": "notifications_to_monitors_monitor_id_monitor_id_fk", "tableFrom": "notifications_to_monitors", - "columnsFrom": [ - "monitor_id" - ], + "columnsFrom": ["monitor_id"], "tableTo": "monitor", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" }, "notifications_to_monitors_notification_id_notification_id_fk": { "name": "notifications_to_monitors_notification_id_notification_id_fk", "tableFrom": "notifications_to_monitors", - "columnsFrom": [ - "notification_id" - ], + "columnsFrom": ["notification_id"], "tableTo": "notification", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } }, "compositePrimaryKeys": { "notifications_to_monitors_monitor_id_notification_id_pk": { - "columns": [ - "monitor_id", - "notification_id" - ], + "columns": ["monitor_id", "notification_id"], "name": "notifications_to_monitors_monitor_id_notification_id_pk" } }, @@ -1184,10 +1093,7 @@ "indexes": { "monitor_status_idx": { "name": "monitor_status_idx", - "columns": [ - "monitor_id", - "region" - ], + "columns": ["monitor_id", "region"], "isUnique": false } }, @@ -1195,23 +1101,16 @@ "monitor_status_monitor_id_monitor_id_fk": { "name": "monitor_status_monitor_id_monitor_id_fk", "tableFrom": "monitor_status", - "columnsFrom": [ - "monitor_id" - ], + "columnsFrom": ["monitor_id"], "tableTo": "monitor", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } }, "compositePrimaryKeys": { "monitor_status_monitor_id_region_pk": { - "columns": [ - "monitor_id", - "region" - ], + "columns": ["monitor_id", "region"], "name": "monitor_status_monitor_id_region_pk" } }, @@ -1396,10 +1295,7 @@ "indexes": { "incident_monitor_id_started_at_unique": { "name": "incident_monitor_id_started_at_unique", - "columns": [ - "monitor_id", - "started_at" - ], + "columns": ["monitor_id", "started_at"], "isUnique": true } }, @@ -1407,52 +1303,36 @@ "incident_monitor_id_monitor_id_fk": { "name": "incident_monitor_id_monitor_id_fk", "tableFrom": "incident", - "columnsFrom": [ - "monitor_id" - ], + "columnsFrom": ["monitor_id"], "tableTo": "monitor", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "set default" }, "incident_workspace_id_workspace_id_fk": { "name": "incident_workspace_id_workspace_id_fk", "tableFrom": "incident", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" }, "incident_acknowledged_by_user_id_fk": { "name": "incident_acknowledged_by_user_id_fk", "tableFrom": "incident", - "columnsFrom": [ - "acknowledged_by" - ], + "columnsFrom": ["acknowledged_by"], "tableTo": "user", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" }, "incident_resolved_by_user_id_fk": { "name": "incident_resolved_by_user_id_fk", "tableFrom": "incident", - "columnsFrom": [ - "resolved_by" - ], + "columnsFrom": ["resolved_by"], "tableTo": "user", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } @@ -1468,4 +1348,4 @@ }, "id": "47000fd1-f273-4406-8380-803a0a63bc59", "prevId": "fed3b3e4-d55d-4370-b39b-c837512a6d8e" -} \ No newline at end of file +} diff --git a/packages/db/drizzle/meta/0021_snapshot.json b/packages/db/drizzle/meta/0021_snapshot.json index 659bc532c..bee40800a 100644 --- a/packages/db/drizzle/meta/0021_snapshot.json +++ b/packages/db/drizzle/meta/0021_snapshot.json @@ -33,36 +33,25 @@ "status_report_to_monitors_monitor_id_monitor_id_fk": { "name": "status_report_to_monitors_monitor_id_monitor_id_fk", "tableFrom": "status_report_to_monitors", - "columnsFrom": [ - "monitor_id" - ], + "columnsFrom": ["monitor_id"], "tableTo": "monitor", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" }, "status_report_to_monitors_status_report_id_status_report_id_fk": { "name": "status_report_to_monitors_status_report_id_status_report_id_fk", "tableFrom": "status_report_to_monitors", - "columnsFrom": [ - "status_report_id" - ], + "columnsFrom": ["status_report_id"], "tableTo": "status_report", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } }, "compositePrimaryKeys": { "status_report_to_monitors_monitor_id_status_report_id_pk": { - "columns": [ - "monitor_id", - "status_report_id" - ], + "columns": ["monitor_id", "status_report_id"], "name": "status_report_to_monitors_monitor_id_status_report_id_pk" } }, @@ -99,36 +88,25 @@ "status_reports_to_pages_page_id_page_id_fk": { "name": "status_reports_to_pages_page_id_page_id_fk", "tableFrom": "status_reports_to_pages", - "columnsFrom": [ - "page_id" - ], + "columnsFrom": ["page_id"], "tableTo": "page", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" }, "status_reports_to_pages_status_report_id_status_report_id_fk": { "name": "status_reports_to_pages_status_report_id_status_report_id_fk", "tableFrom": "status_reports_to_pages", - "columnsFrom": [ - "status_report_id" - ], + "columnsFrom": ["status_report_id"], "tableTo": "status_report", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } }, "compositePrimaryKeys": { "status_reports_to_pages_page_id_status_report_id_pk": { - "columns": [ - "page_id", - "status_report_id" - ], + "columns": ["page_id", "status_report_id"], "name": "status_reports_to_pages_page_id_status_report_id_pk" } }, @@ -187,13 +165,9 @@ "status_report_workspace_id_workspace_id_fk": { "name": "status_report_workspace_id_workspace_id_fk", "tableFrom": "status_report", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } @@ -261,13 +235,9 @@ "status_report_update_status_report_id_status_report_id_fk": { "name": "status_report_update_status_report_id_status_report_id_fk", "tableFrom": "status_report_update", - "columnsFrom": [ - "status_report_id" - ], + "columnsFrom": ["status_report_id"], "tableTo": "status_report", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } @@ -342,13 +312,9 @@ "integration_workspace_id_workspace_id_fk": { "name": "integration_workspace_id_workspace_id_fk", "tableFrom": "integration", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } @@ -437,9 +403,7 @@ "indexes": { "page_slug_unique": { "name": "page_slug_unique", - "columns": [ - "slug" - ], + "columns": ["slug"], "isUnique": true } }, @@ -447,13 +411,9 @@ "page_workspace_id_workspace_id_fk": { "name": "page_workspace_id_workspace_id_fk", "tableFrom": "page", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } @@ -587,13 +547,9 @@ "monitor_workspace_id_workspace_id_fk": { "name": "monitor_workspace_id_workspace_id_fk", "tableFrom": "monitor", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } @@ -632,36 +588,25 @@ "monitors_to_pages_monitor_id_monitor_id_fk": { "name": "monitors_to_pages_monitor_id_monitor_id_fk", "tableFrom": "monitors_to_pages", - "columnsFrom": [ - "monitor_id" - ], + "columnsFrom": ["monitor_id"], "tableTo": "monitor", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" }, "monitors_to_pages_page_id_page_id_fk": { "name": "monitors_to_pages_page_id_page_id_fk", "tableFrom": "monitors_to_pages", - "columnsFrom": [ - "page_id" - ], + "columnsFrom": ["page_id"], "tableTo": "page", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } }, "compositePrimaryKeys": { "monitors_to_pages_monitor_id_page_id_pk": { - "columns": [ - "monitor_id", - "page_id" - ], + "columns": ["monitor_id", "page_id"], "name": "monitors_to_pages_monitor_id_page_id_pk" } }, @@ -736,9 +681,7 @@ "indexes": { "user_tenant_id_unique": { "name": "user_tenant_id_unique", - "columns": [ - "tenant_id" - ], + "columns": ["tenant_id"], "isUnique": true } }, @@ -785,36 +728,25 @@ "users_to_workspaces_user_id_user_id_fk": { "name": "users_to_workspaces_user_id_user_id_fk", "tableFrom": "users_to_workspaces", - "columnsFrom": [ - "user_id" - ], + "columnsFrom": ["user_id"], "tableTo": "user", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" }, "users_to_workspaces_workspace_id_workspace_id_fk": { "name": "users_to_workspaces_workspace_id_workspace_id_fk", "tableFrom": "users_to_workspaces", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } }, "compositePrimaryKeys": { "users_to_workspaces_user_id_workspace_id_pk": { - "columns": [ - "user_id", - "workspace_id" - ], + "columns": ["user_id", "workspace_id"], "name": "users_to_workspaces_user_id_workspace_id_pk" } }, @@ -887,13 +819,9 @@ "page_subscriber_page_id_page_id_fk": { "name": "page_subscriber_page_id_page_id_fk", "tableFrom": "page_subscriber", - "columnsFrom": [ - "page_id" - ], + "columnsFrom": ["page_id"], "tableTo": "page", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } @@ -980,16 +908,12 @@ "indexes": { "workspace_slug_unique": { "name": "workspace_slug_unique", - "columns": [ - "slug" - ], + "columns": ["slug"], "isUnique": true }, "workspace_stripe_id_unique": { "name": "workspace_stripe_id_unique", - "columns": [ - "stripe_id" - ], + "columns": ["stripe_id"], "isUnique": true } }, @@ -1058,13 +982,9 @@ "notification_workspace_id_workspace_id_fk": { "name": "notification_workspace_id_workspace_id_fk", "tableFrom": "notification", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } @@ -1103,36 +1023,25 @@ "notifications_to_monitors_monitor_id_monitor_id_fk": { "name": "notifications_to_monitors_monitor_id_monitor_id_fk", "tableFrom": "notifications_to_monitors", - "columnsFrom": [ - "monitor_id" - ], + "columnsFrom": ["monitor_id"], "tableTo": "monitor", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" }, "notifications_to_monitors_notification_id_notification_id_fk": { "name": "notifications_to_monitors_notification_id_notification_id_fk", "tableFrom": "notifications_to_monitors", - "columnsFrom": [ - "notification_id" - ], + "columnsFrom": ["notification_id"], "tableTo": "notification", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } }, "compositePrimaryKeys": { "notifications_to_monitors_monitor_id_notification_id_pk": { - "columns": [ - "monitor_id", - "notification_id" - ], + "columns": ["monitor_id", "notification_id"], "name": "notifications_to_monitors_monitor_id_notification_id_pk" } }, @@ -1184,10 +1093,7 @@ "indexes": { "monitor_status_idx": { "name": "monitor_status_idx", - "columns": [ - "monitor_id", - "region" - ], + "columns": ["monitor_id", "region"], "isUnique": false } }, @@ -1195,23 +1101,16 @@ "monitor_status_monitor_id_monitor_id_fk": { "name": "monitor_status_monitor_id_monitor_id_fk", "tableFrom": "monitor_status", - "columnsFrom": [ - "monitor_id" - ], + "columnsFrom": ["monitor_id"], "tableTo": "monitor", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } }, "compositePrimaryKeys": { "monitor_status_monitor_id_region_pk": { - "columns": [ - "monitor_id", - "region" - ], + "columns": ["monitor_id", "region"], "name": "monitor_status_monitor_id_region_pk" } }, @@ -1396,10 +1295,7 @@ "indexes": { "incident_monitor_id_started_at_unique": { "name": "incident_monitor_id_started_at_unique", - "columns": [ - "monitor_id", - "started_at" - ], + "columns": ["monitor_id", "started_at"], "isUnique": true } }, @@ -1407,52 +1303,36 @@ "incident_monitor_id_monitor_id_fk": { "name": "incident_monitor_id_monitor_id_fk", "tableFrom": "incident", - "columnsFrom": [ - "monitor_id" - ], + "columnsFrom": ["monitor_id"], "tableTo": "monitor", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "set default" }, "incident_workspace_id_workspace_id_fk": { "name": "incident_workspace_id_workspace_id_fk", "tableFrom": "incident", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" }, "incident_acknowledged_by_user_id_fk": { "name": "incident_acknowledged_by_user_id_fk", "tableFrom": "incident", - "columnsFrom": [ - "acknowledged_by" - ], + "columnsFrom": ["acknowledged_by"], "tableTo": "user", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" }, "incident_resolved_by_user_id_fk": { "name": "incident_resolved_by_user_id_fk", "tableFrom": "incident", - "columnsFrom": [ - "resolved_by" - ], + "columnsFrom": ["resolved_by"], "tableTo": "user", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "no action" } @@ -1513,13 +1393,9 @@ "monitor_tag_workspace_id_workspace_id_fk": { "name": "monitor_tag_workspace_id_workspace_id_fk", "tableFrom": "monitor_tag", - "columnsFrom": [ - "workspace_id" - ], + "columnsFrom": ["workspace_id"], "tableTo": "workspace", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } @@ -1558,36 +1434,25 @@ "monitor_tag_to_monitor_monitor_id_monitor_id_fk": { "name": "monitor_tag_to_monitor_monitor_id_monitor_id_fk", "tableFrom": "monitor_tag_to_monitor", - "columnsFrom": [ - "monitor_id" - ], + "columnsFrom": ["monitor_id"], "tableTo": "monitor", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" }, "monitor_tag_to_monitor_monitor_tag_id_monitor_tag_id_fk": { "name": "monitor_tag_to_monitor_monitor_tag_id_monitor_tag_id_fk", "tableFrom": "monitor_tag_to_monitor", - "columnsFrom": [ - "monitor_tag_id" - ], + "columnsFrom": ["monitor_tag_id"], "tableTo": "monitor_tag", - "columnsTo": [ - "id" - ], + "columnsTo": ["id"], "onUpdate": "no action", "onDelete": "cascade" } }, "compositePrimaryKeys": { "monitor_tag_to_monitor_monitor_id_monitor_tag_id_pk": { - "columns": [ - "monitor_id", - "monitor_tag_id" - ], + "columns": ["monitor_id", "monitor_tag_id"], "name": "monitor_tag_to_monitor_monitor_id_monitor_tag_id_pk" } }, @@ -1601,4 +1466,4 @@ }, "id": "44c2bbb5-69d5-40e8-b301-f2569bc2e499", "prevId": "47000fd1-f273-4406-8380-803a0a63bc59" -} \ No newline at end of file +} diff --git a/packages/db/drizzle/meta/_journal.json b/packages/db/drizzle/meta/_journal.json index e5c2e7d8b..62f0a4960 100644 --- a/packages/db/drizzle/meta/_journal.json +++ b/packages/db/drizzle/meta/_journal.json @@ -213,4 +213,4 @@ "breakpoints": true } ] -} \ No newline at end of file +} diff --git a/packages/db/src/schema/monitors/validation.ts b/packages/db/src/schema/monitors/validation.ts index 25bd51a45..30b9edba8 100644 --- a/packages/db/src/schema/monitors/validation.ts +++ b/packages/db/src/schema/monitors/validation.ts @@ -21,7 +21,8 @@ export const monitorJobTypesSchema = z.enum(monitorJobTypes); export const monitorFlyRegionSchema = z.enum(flyRegions); // TODO: shared function -function stringToArrayProcess(string: T) {} +// biome-ignore lint/correctness/noUnusedVariables: +function stringToArrayProcess(_string: T) {} const regionsToArraySchema = z.preprocess((val) => { if (String(val).length > 0) { diff --git a/packages/emails/emails/alert.tsx b/packages/emails/emails/alert.tsx index de888c3cf..bccfe9dab 100644 --- a/packages/emails/emails/alert.tsx +++ b/packages/emails/emails/alert.tsx @@ -28,16 +28,16 @@ const Alert = ({ data }: { data: z.infer }) => { New incident detected 🚨 New incident detected : {data.monitorName} 🚨 - - + + New incident detected! - + Hello {data.recipientName},
          We have detected a new incident.
          -
          +
          Monitor {data.monitorName} @@ -48,11 +48,11 @@ const Alert = ({ data }: { data: z.infer }) => {
          -
          +