Compare commits

..

263 Commits

Author SHA1 Message Date
Raj Nandan Sharma 883c46b064 Merge pull request #214 from rajnandan1/release/3.0.2
release of 3.0.2
2025-01-24 10:48:15 +05:30
Raj Nandan Sharma 4248cc31f2 chore: updated package.json version 2025-01-24 10:47:56 +05:30
Raj Nandan Sharma 5f81c6d61a fix: daily data local date format 2025-01-24 10:45:50 +05:30
Raj Nandan Sharma 00d82cc817 fix: daily data local date format 2025-01-24 10:44:48 +05:30
Raj Nandan Sharma a9edfde162 fix: bug fix for no data 2025-01-24 10:35:22 +05:30
Raj Nandan Sharma f9831490af fix: base path for docker build 2025-01-24 09:08:13 +05:30
Raj Nandan Sharma a055a616eb fix: fix logo url as reported in #213 2025-01-23 23:37:39 +05:30
Raj Nandan Sharma 8009a2cbc4 feat: monitor re-arrange as requested in #215 2025-01-23 22:39:13 +05:30
Raj Nandan Sharma 693cc149cf feat: added retry for api timeouts as requested in #208 2025-01-23 10:33:15 +05:30
Raj Nandan Sharma d126fe0bce fix: fix for #212, data interpolation introduced 2025-01-23 09:36:37 +05:30
Raj Nandan Sharma 4cc49cce9e fix: default locale fix as reported in #209 2025-01-22 09:25:56 +05:30
Raj Nandan Sharma f7cb4cd805 fix: cron validation updated as reported in #206 2025-01-21 22:02:39 +05:30
Raj Nandan Sharma a2bd9883d1 chore: remove old docs.md 2025-01-21 09:18:21 +05:30
Raj Nandan Sharma 10a079c304 fix: fixing #193 base path login was having double slash in cookie 2025-01-21 09:12:10 +05:30
Raj Nandan Sharma 65f12f1082 docs: added contributing file 2025-01-21 08:44:58 +05:30
Raj Nandan Sharma c15f855c72 docs: added contributing file 2025-01-21 08:42:41 +05:30
Raj Nandan Sharma 3d38483022 Merge pull request #205 from matribeiro15/main
Add Brazilian Portuguese
2025-01-21 08:31:33 +05:30
Mateus Ribeiro 57dc1e7175 modified: src/lib/i18n/client.js
modified:   src/lib/locales/locales.json
	new file:   src/lib/locales/pt-BR.json
2025-01-21 01:22:01 +00:00
Raj Nandan Sharma ead68c929f docs: embed docs 2025-01-18 23:19:38 +05:30
Raj Nandan Sharma d54b346259 Merge pull request #204 from rajnandan1/date-fns
feat: i18n for dates
2025-01-18 23:14:13 +05:30
Raj Nandan Sharma a05de8269c docs: updated feature list 2025-01-18 23:13:13 +05:30
Raj Nandan Sharma 130b70c6af feat: i18n for dates 2025-01-18 23:10:07 +05:30
Raj Nandan Sharma 7247a54c08 feat: i18n for dates 2025-01-18 22:46:15 +05:30
Raj Nandan Sharma 28de7ebff8 feat: i18n for dates 2025-01-18 22:07:54 +05:30
Raj Nandan Sharma e2c9d4dc2d feat: i18n for dates 2025-01-18 21:44:46 +05:30
Raj Nandan Sharma 4866382180 feat: i18n for dates 2025-01-18 21:36:51 +05:30
Raj Nandan Sharma 1b1507db1a Merge pull request #202 from rajnandan1/heroku-dep
fix: fixes #198
2025-01-18 12:40:12 +05:30
Raj Nandan Sharma 0ea7d687a7 fix: fixes #198 2025-01-18 12:39:05 +05:30
Raj Nandan Sharma 502e1539ca Merge pull request #201 from sandyi5/main
korean translation update for v 3.0
2025-01-18 10:31:24 +05:30
김세영 f3910fea1b Update ko.json 2025-01-18 12:44:33 +09:00
김세영 ee9b48fb79 Create ko.json 2025-01-18 12:43:39 +09:00
김세영 142686ef92 Update locales.json 2025-01-18 12:24:57 +09:00
Raj Nandan Sharma 2aa187984e fix: cookie secure fix 2025-01-17 21:26:55 +05:30
Raj Nandan Sharma c20d4d71c3 fix: cookie secure fix 2025-01-17 20:37:02 +05:30
Raj Nandan Sharma 4f4d1e1b39 fix: login redirection to setup if not done 2025-01-17 09:51:07 +05:30
Raj Nandan Sharma f38b590f70 fix: handle file uplaod for docker container 2025-01-17 08:48:21 +05:30
Raj Nandan Sharma c2caf42fd3 Merge pull request #195 from rajnandan1/fix/day0
Fix/day0
2025-01-17 08:44:52 +05:30
Raj Nandan Sharma 8c279c8c10 fix: fixed bugs reported in reddit around analytics and css 2025-01-17 08:43:35 +05:30
Raj Nandan Sharma 3480c78360 fix: fixed bugs reported in reddit around analytics and css 2025-01-17 08:39:29 +05:30
Raj Nandan Sharma 79ce708f60 fixes reported on reddit 2025-01-16 23:13:47 +05:30
Raj Nandan Sharma a4526eb4b5 fix: nav list in home manage 2025-01-15 22:25:23 +05:30
Raj Nandan Sharma 866a133917 Merge pull request #194 from jghaanstra/main 2025-01-15 22:16:30 +05:30
Jelger Haanstra adce978244 Add Dutch Translation 2025-01-15 17:42:37 +01:00
Raj Nandan Sharma dd3c26b29a fix: fixing #193 and #191 2025-01-15 22:02:15 +05:30
Raj Nandan Sharma 25ad42ba9b Merge pull request #190 from otherwiseGG/danish-customer-language
Danish Translation
2025-01-15 21:29:56 +05:30
Benjamin Thiele 3285b7e472 Merge branch 'main' into danish-customer-language 2025-01-15 16:43:28 +01:00
Raj Nandan Sharma c7da55480a docs(docker): updated roadmap 2025-01-15 09:35:14 +05:30
Raj Nandan Sharma 35e81b5782 fix(docker): fixing #188 and #189
CHANGE: startup script started running before migrations of database, moved it to after migration
2025-01-15 09:24:05 +05:30
Raj Nandan Sharma 769a9526e7 Merge pull request #187 from kutovoys/main
Add Russian translations and update locales.json
2025-01-15 08:59:43 +05:30
Benjamin Thiele 5470153f4f Merge branch 'main' into danish-customer-language 2025-01-15 00:15:52 +01:00
Benjamin Thiele 9d6ad87275 Create dk.json 2025-01-15 00:13:55 +01:00
Benjamin Thiele ac6261d9ac Update locales.json 2025-01-15 00:12:18 +01:00
Sergey Kutovoy 48effe077e Add Russian translations and update locales.json
- Added Russian language support by creating ru.json with translations for various terms and phrases.
- Updated locales.json to include Russian in the list of available languages.
2025-01-15 00:48:57 +05:00
Raj Nandan Sharma c656bf8612 Merge pull request #186 from otherwiseGG/patch-1 2025-01-14 23:43:42 +05:30
Benjamin Thiele 9daf7c7156 Update locales.json 2025-01-14 18:53:27 +01:00
Benjamin Thiele 4bd3bfae9d Create de.json
German Translation File
2025-01-14 18:51:38 +01:00
Raj Nandan Sharma 727964949c docs: updated i18n docs 2025-01-14 23:10:24 +05:30
Raj Nandan Sharma 21e1fc1aca fix: fix seo meta tags 2025-01-14 22:49:00 +05:30
Raj Nandan Sharma eeba2ef2d4 docs: updated readme file 2025-01-14 22:37:06 +05:30
Raj Nandan Sharma b3e738ce03 fix: upload for base path aslo fixed 2025-01-14 22:01:30 +05:30
Raj Nandan Sharma 46848c7b19 fix: file upload issue 404 2025-01-14 21:49:56 +05:30
Raj Nandan Sharma 5f3d48597f fix: sitemap fixed.removed for now 2025-01-14 21:25:33 +05:30
Raj Nandan Sharma 0efc3e5999 Merge pull request #178 from rajnandan1/release/2.0.1
Release/3.0.0
2025-01-14 21:12:51 +05:30
Raj Nandan Sharma 0c0ce89317 docs: changelogs 2025-01-14 21:11:58 +05:30
Raj Nandan Sharma 4a47061f76 fix: deployment 2025-01-14 21:09:50 +05:30
Raj Nandan Sharma 9b3ff9b362 fix: deployment 2025-01-14 21:08:29 +05:30
Raj Nandan Sharma 8315fede7d docs: updated docs for release 2025-01-14 20:22:14 +05:30
Raj Nandan Sharma d6d0568f67 docs: updated docs for release 2025-01-14 17:57:42 +05:30
Raj Nandan Sharma ff0119db9b fix: fix embed and sub path 2025-01-14 14:07:53 +05:30
Raj Nandan Sharma 37d776c315 refactor: move accounts pages under manage and forgot password 2025-01-14 07:46:13 +05:30
Raj Nandan Sharma f53d4abd8b fix: responsiveness 2025-01-13 11:31:10 +05:30
Raj Nandan Sharma f827bd4aeb feat: i18n added french #179, removed github dependency, clean up old code, simpler i18n file 2025-01-13 10:57:12 +05:30
Raj Nandan Sharma f28c4e96c5 feat: db clean up 2025-01-12 16:22:39 +05:30
Raj Nandan Sharma cf81b11c0b feat: support for postgres using knex 2025-01-12 14:07:37 +05:30
Raj Nandan Sharma 17dc752902 feat: support for postgres using knex 2025-01-12 13:41:17 +05:30
Raj Nandan Sharma bc9faf9456 feat: alerting with new incidents 2025-01-10 08:59:11 +05:30
Raj Nandan Sharma e5b615267c feat: incidents api 2025-01-09 12:03:54 +05:30
Raj Nandan Sharma 70e9086646 feat: incidents from github to sqlite 2025-01-08 23:14:59 +05:30
Raj Nandan Sharma 0cc30bc67e feat: incidents from github to sqlite 2025-01-07 11:57:40 +05:30
Raj Nandan Sharma 73792e7ce6 feat: incidents from github to sqlite 2025-01-07 11:39:38 +05:30
Raj Nandan Sharma 32f873d9c2 feat: incidents from github to sqlite 2025-01-06 09:56:34 +05:30
Raj Nandan Sharma 6566bc5f8f build: docker file update 2025-01-03 11:48:18 +05:30
Raj Nandan Sharma cc93114eab docs: adding docs for 3.0.0 2025-01-02 11:20:28 +05:30
Raj Nandan Sharma 6d5d949f5c docs: adding docs for 3.0.0 2024-12-29 23:16:11 +05:30
Raj Nandan Sharma f1be4a4db0 feat: pre release 3.0.0 2024-12-28 19:21:23 +05:30
Raj Nandan Sharma 8b9f576b30 feat: pre release 3.0.0 2024-12-27 16:58:51 +05:30
Raj Nandan Sharma 0735f959ef feat: pre release 3.0.0 2024-12-27 09:16:30 +05:30
Raj Nandan Sharma f91d65b7a4 docs: fix docs for npm deploy 2024-12-05 09:54:35 +05:30
Raj Nandan Sharma c8d4920cd3 docs: fix docs for npm deploy 2024-12-05 08:55:37 +05:30
Raj Nandan Sharma 27625bc31a docs: fix docs for npm deploy 2024-12-05 08:47:32 +05:30
Raj Nandan Sharma 67e22e4339 docs: fix docs for npm deploy 2024-12-04 23:49:18 +05:30
Raj Nandan Sharma b4ed5cffd6 docs: fix docs for npm deploy 2024-12-04 23:48:27 +05:30
Raj Nandan Sharma 6209ff12bb fix: fix the build 2024-12-04 23:38:45 +05:30
Raj Nandan Sharma 392a0e85be Merge pull request #176 from rajnandan1/release/2.0.0
Release/2.0.0 retry
2024-12-04 23:02:51 +05:30
Raj Nandan Sharma a7abf37781 fix: fix build 2024-12-04 22:58:46 +05:30
Raj Nandan Sharma c09f87daa7 fix: fix build 2024-12-04 22:53:16 +05:30
Raj Nandan Sharma 43072d2777 fix: fix build 2024-12-04 22:48:33 +05:30
Raj Nandan Sharma ed52f28743 Merge pull request #175 from rajnandan1/release/2.0.0
Release/2.0.0
2024-12-04 18:32:36 +05:30
Raj Nandan Sharma fe953b6b36 fix: fixed docs 2024-12-04 18:30:50 +05:30
Raj Nandan Sharma d931f3ec6d fix: fixed docs 2024-12-04 17:52:14 +05:30
Raj Nandan Sharma 2fbf404bf3 docs: monitor example alerting 2024-12-04 16:19:10 +05:30
Raj Nandan Sharma 49064e4e25 fix: fix embeds 2024-12-04 16:10:01 +05:30
Raj Nandan Sharma 2c4004d91f fix: as reported in #103 changing timezone to UTC 2024-12-04 15:33:01 +05:30
Raj Nandan Sharma 37706b87c4 docs: updated docs and docker file 2024-12-04 15:21:13 +05:30
Raj Nandan Sharma c8a98a745d docs: added docs for pull request #112 2024-12-04 12:39:52 +05:30
Raj Nandan Sharma abae472545 docs: added postgres database also 2024-12-04 12:33:00 +05:30
Raj Nandan Sharma 749593f1af refactor: remove dependency on github addresses #94 2024-11-29 10:57:31 +05:30
Raj Nandan Sharma a824a5dcf2 docs: added docs for alerting to address #49 2024-11-29 09:57:28 +05:30
Raj Nandan Sharma 8b2fe90eb7 docs: added a feature to address #53 2024-11-28 23:07:42 +05:30
Raj Nandan Sharma e6370fab66 feat: added daily view for each day on click 2024-11-28 22:54:21 +05:30
Raj Nandan Sharma 92ea4b64f9 feat: first commit for the release of version 2.0.0 2024-11-27 11:41:00 +05:30
Raj Nandan Sharma 9f6d071f25 Update README.md 2024-11-24 16:30:35 +05:30
Raj Nandan Sharma 274536eafa Update README.md 2024-11-23 22:53:21 +05:30
Raj Nandan Sharma 5b0ad39526 Update README.md 2024-11-23 22:52:28 +05:30
Raj Nandan Sharma 01d54f504b Update README.md 2024-11-23 21:57:31 +05:30
Raj Nandan Sharma e413fb7ecd Update README.md 2024-11-23 21:51:10 +05:30
Raj Nandan Sharma dc665ec581 Merge pull request #124 from rajnandan1/fix-issue-123
fix: fixed theme settings as reported in issue #123
2024-11-20 09:49:10 +05:30
Raj Nandan Sharma f7fa0452cd fix: fixed theme settings as reported in issue #123 2024-11-20 09:47:32 +05:30
Raj Nandan Sharma 47253cc54b Update README.md 2024-11-19 19:03:53 +05:30
Raj Nandan Sharma 71b56db909 docs: added api reference 2024-11-19 11:11:58 +05:30
Raj Nandan Sharma ad41edc972 Update FUNDING.yml 2024-11-16 12:47:42 +05:30
Raj Nandan Sharma 9076561644 Update FUNDING.yml 2024-11-16 12:46:29 +05:30
Raj Nandan Sharma ff5601aad2 Create FUNDING.yml 2024-11-16 12:45:24 +05:30
Raj Nandan Sharma 21629b7bed Update README.md 2024-11-16 12:33:05 +05:30
Raj Nandan Sharma 052e38a292 fix: fixed responsiveness for language selector 2024-11-16 12:19:04 +05:30
Raj Nandan Sharma 38c44396b0 Merge pull request #120 from rajnandan1/release-candidate/0.0.16
Release candidate/0.0.16
2024-11-16 11:02:00 +05:30
Raj Nandan Sharma f80e19e18a docs: added docs for pm2 deployment 2024-11-16 11:00:57 +05:30
Raj Nandan Sharma ebdda050f8 docs: added docs for pm2 deployment 2024-11-16 10:59:20 +05:30
Raj Nandan Sharma 110fb1c180 docs: added docs for pm2 deployment 2024-11-16 10:57:53 +05:30
Raj Nandan Sharma fd361f9482 feat: added sitemap again, fixed #59 also 2024-11-15 22:56:31 +05:30
Raj Nandan Sharma 1b8e05ad1f feat: added sitemap again, fixed #59 also 2024-11-15 22:52:36 +05:30
Raj Nandan Sharma 28184d2a52 refactor: deployment refactor 2024-11-15 21:54:43 +05:30
Raj Nandan Sharma 9a14a81956 refactor: deployment refactor 2024-11-15 21:46:29 +05:30
Raj Nandan Sharma 3312bbe8e4 refactor: deployment refactor 2024-11-15 21:28:03 +05:30
Raj Nandan Sharma a9602f5576 fix: respnsiveness 2024-11-15 12:13:41 +05:30
Raj Nandan Sharma 0f5dd0fd31 feat: added analytics 2024-11-14 23:58:22 +05:30
Raj Nandan Sharma e45b016cca docs: updated docs 2024-11-14 09:23:28 +05:30
Raj Nandan Sharma e1fe07cf26 build: new docker build 2024-11-13 21:44:57 +05:30
Raj Nandan Sharma 18e851a205 build: new docker build 2024-11-13 21:28:46 +05:30
Raj Nandan Sharma c992ec22ca fixed docker file 2024-11-13 10:33:29 +05:30
Raj Nandan Sharma c57f75d1ea push 0.0.16 to git 2024-11-12 21:32:29 +05:30
Raj Nandan Sharma 5abfafe2fa new doc site 2024-11-11 08:40:44 +05:30
Raj Nandan Sharma bd87aded67 changes gitignore 2024-11-08 23:10:25 +05:30
Raj Nandan Sharma c0332fe035 revamp kener 2.0 2024-11-08 22:56:35 +05:30
Raj Nandan Sharma 3941cc4e9b Merge pull request #98 from rajnandan1/release/0.0.15
Release/0.0.15
2024-08-11 07:37:33 -07:00
Raj Nandan Sharma 6ebaec5c3b cleanup 2024-08-11 20:03:42 +05:30
Raj Nandan Sharma 4b8aebdc1b increase package.json version 2024-08-11 20:01:48 +05:30
Raj Nandan Sharma 10afb34921 improve hi locale 2024-08-11 20:01:08 +05:30
Raj Nandan Sharma 068a3b9c5e moving theme to site.yaml 2024-08-11 19:58:02 +05:30
Raj Nandan Sharma 94ac704582 added dotenv 2024-08-11 19:32:57 +05:30
Raj Nandan Sharma fd677396ee dotenv 2024-08-11 18:45:16 +05:30
Raj Nandan Sharma 06d81fb419 Added Vietnamese support 2024-08-10 21:54:13 +05:30
Raj Nandan Sharma 3264e86426 Merge pull request #89 from rajnandan1/nav-responsive
fix(nav): made nav bar responsive
2024-05-27 11:03:54 +05:30
Raj Nandan Sharma 5767f2d2c3 fix(nav): made nav bar responsive 2024-05-27 11:02:52 +05:30
Raj Nandan Sharma a267c4028a Merge pull request #82 from rajnandan1/ip_api_fixes
feat(api): Added API_IP_REGEX to match incoming IPs.
2024-05-16 09:31:38 +05:30
Raj Nandan Sharma 4916a6b380 feat(api): Added API_IP_REGEX to match incoming IPs.
CHANGE: Solves Issue #80

Commit message generate with [okgit](https://github.com/rajnandan1/okgit)
2024-05-16 09:30:09 +05:30
Raj Nandan Sharma 55550ade86 Update README.md 2024-05-13 16:56:28 +05:30
Raj Nandan Sharma 8a30906bd4 docs(readme): added example for custom thresholds 2024-05-11 14:07:59 +05:30
Raj Nandan Sharma e049ec7782 Merge pull request #79 from rajnandan1/support-ping
feat(monitor): added ping monitor
2024-05-11 14:03:42 +05:30
Raj Nandan Sharma fab2a2aed7 feat(monitor): added ping monitor 2024-05-11 14:02:27 +05:30
Raj Nandan Sharma 3abc8b730f feat(monitor): added ping monitor 2024-05-11 13:48:18 +05:30
Raj Nandan Sharma 80bf60e75d Update README.md 2024-05-08 08:52:21 +05:30
Raj Nandan Sharma d0095d3e31 Update README.md 2024-05-08 08:50:47 +05:30
Raj Nandan Sharma 04a9e85bd2 Merge pull request #78 from rajnandan1/pretty
refactor: added prettier config
2024-05-04 12:03:15 +05:30
Raj Nandan Sharma 5bab933364 refactor: added prettier config 2024-05-04 12:01:35 +05:30
Raj Nandan Sharma ad768296c3 Merge pull request #77 from rajnandan1/custom-threshold-bars
feat(kener): supports custom threshold for calculations of day uptime
2024-04-30 11:16:14 +05:30
Raj Nandan Sharma cc830827bb feat(kener): supports custom threshold for calculations of day uptime
CHANGE: monitors now get three new optional parameter dayDegradedMinimumCount, dayDownMinimumCount and includeDegradedInDowntime

Requestd on issue #54
2024-04-30 11:13:45 +05:30
Raj Nandan Sharma 0c24507bb2 docs(readme): added base path support in feature list in readme 2024-04-29 10:59:06 +05:30
Raj Nandan Sharma be1ecf1af6 docs(readme): added base path support in feature list in readme 2024-04-29 10:55:57 +05:30
Raj Nandan Sharma 1f449258ab Merge pull request #76 from rajnandan1/subpath-support
feat(kener): added support for base path
2024-04-29 10:44:58 +05:30
Raj Nandan Sharma 3e7579852b feat(kener): added support for base path 2024-04-29 10:42:13 +05:30
Raj Nandan Sharma b58af80552 feat(kener): added support for base path 2024-04-29 10:15:02 +05:30
Raj Nandan Sharma e17ccd1519 fix(i18n): renamed zh_CN to zh-CN inside locales 2024-04-28 12:52:20 +05:30
Raj Nandan Sharma 780d053871 Merge pull request #75 from PearsSauce/main 2024-04-28 12:36:52 +05:30
青桔气球 a25ce58ebf feat:Updated Chinese language to make it more reasonable. 2024-04-28 14:47:23 +08:00
Raj Nandan Sharma fa1a16ad30 Merge pull request #74 from PearsSauce/main
Create zh_CN.json
2024-04-27 22:48:53 +05:30
Gil Schneider 0c9073aa6f Create zh_CN.json
fix:Add Chinese language
2024-04-27 20:13:40 +08:00
Raj Nandan Sharma e8a39cbe19 Merge pull request #73 from fetus-hina/japanese
Add Japanese translation
2024-04-27 11:50:22 +05:30
Raj Nandan Sharma c3d3ff39f0 Merge pull request #72 from fetus-hina/en-indent
Fix indents in locale file for English
2024-04-27 08:34:23 +05:30
AIZAWA Hina 240f3b0380 add Japanese locale file 2024-04-27 03:46:29 +09:00
AIZAWA Hina 1238b379ce fix indent in locale file for en 2024-04-27 03:24:28 +09:00
Raj Nandan Sharma c580472282 chore(build): new build for version 13 2024-04-26 19:16:57 +05:30
Raj Nandan Sharma 07d9aab45f chore(version): updated version to 13 2024-04-26 19:06:18 +05:30
Raj Nandan Sharma 6bb9808d0c fix(dockerfile): updates docker file for locales 2024-04-26 19:01:48 +05:30
Raj Nandan Sharma 283c38c9a5 Merge pull request #71 from rajnandan1/i18n-en
I18n en
2024-04-26 18:59:28 +05:30
Raj Nandan Sharma c0084a5d61 docs(i18n): code clean up 2024-04-26 18:53:05 +05:30
Raj Nandan Sharma f0ccb32b51 chore(i18n): code clean up 2024-04-26 18:50:02 +05:30
Raj Nandan Sharma f6e2fb3e89 docs(i18n): added documentation of i18n support in site.yaml 2024-04-26 17:43:00 +05:30
Raj Nandan Sharma 6114e2693d feat(i18n): completed incident page translation for hindi 2024-04-26 17:24:41 +05:30
Raj Nandan Sharma 9dde9b0763 feat(i18n): added en and hi 2024-04-26 12:06:38 +05:30
Raj Nandan Sharma 4fed2f32ae feat(i18n): setting base for i18n 2024-04-23 17:26:30 +05:30
Raj Nandan Sharma 2885cd621c chore(version): updated version to 12 2024-04-22 22:06:52 +05:30
Raj Nandan Sharma 3c91ff2860 fix(docker): updated docs to make it work using docker 2024-04-22 21:53:08 +05:30
Raj Nandan Sharma 68ca90e52e added linux/arm64 2024-04-12 18:38:40 +05:30
Raj Nandan Sharma dd592dc684 docs(api): added documentation for incident search api 2024-04-12 10:02:59 +05:30
Raj Nandan Sharma 75d6a271bf docs(api): added documentation for incident search api 2024-04-12 10:01:19 +05:30
Raj Nandan Sharma 090b24079a docs(api): added documentation for incident search api 2024-04-12 10:00:32 +05:30
Raj Nandan Sharma f5f5d4fdc9 Merge pull request #67 from rajnandan1/release/0.0.11
feat(api): added an incident search api
2024-04-12 09:47:26 +05:30
Raj Nandan Sharma b166df13b0 feat(api): added an incident search api
CHANGE: feature request in https://github.com/rajnandan1/kener/issues/64
2024-04-12 09:46:00 +05:30
Raj Nandan Sharma 1078607805 feat(api): added an incident search api
CHANGE: feature request in https://github.com/rajnandan1/kener/issues/64
2024-04-12 09:40:46 +05:30
Raj Nandan Sharma 94877a056a feat(api): added an incident search api
CHANGE: feature request in https://github.com/rajnandan1/kener/issues/64
2024-04-12 09:38:41 +05:30
Raj Nandan Sharma dbc76a9106 updated package.json 2024-03-22 10:14:44 +05:30
Raj Nandan Sharma 5dc3e6c258 Merge pull request #62 from rajnandan1/release/0.0.10
release 0.0.10 build
2024-03-22 10:13:32 +05:30
Raj Nandan Sharma 8f024a853f release 0.0.10 build 2024-03-22 10:12:10 +05:30
Raj Nandan Sharma f921df0e97 fixed bug in docker file 2024-03-03 14:19:47 +05:30
Raj Nandan Sharma 73147eee27 fixed bug in docker file 2024-03-03 13:32:03 +05:30
Raj Nandan Sharma 8cdf217a45 fixed bug in docker file 2024-03-03 13:19:33 +05:30
Raj Nandan Sharma 15b48eb622 new release/0.0.8 2024-03-03 12:29:49 +05:30
Raj Nandan Sharma c99f4013fe Merge pull request #51 from rajnandan1/optmize-main-load
Optmize main load
2024-02-19 11:29:01 +05:30
Raj Nandan Sharma 52ff46a1ce new build with pre computed 90day data 2024-02-19 11:28:10 +05:30
Raj Nandan Sharma 72d979abe3 pre compute 90day data 2024-02-19 11:26:51 +05:30
Raj Nandan Sharma 5e5ab9439b updated docs 2024-01-29 22:20:49 +05:30
Raj Nandan Sharma 78c173d215 new release 0.0.7 2024-01-29 19:34:03 +05:30
Raj Nandan Sharma 5d8b5283a6 fixed eval bug 2024-01-29 19:32:57 +05:30
Raj Nandan Sharma 7042caa356 added get status API 2024-01-28 18:44:24 +05:30
Raj Nandan Sharma e6076efd6f added get status API 2024-01-28 18:43:15 +05:30
Raj Nandan Sharma c3d2497965 updated doc 2024-01-27 23:14:19 +05:30
Raj Nandan Sharma 52638a8ca5 solved Issue #45 2024-01-27 23:05:13 +05:30
Raj Nandan Sharma 1840675f26 Merge pull request #47 from rajnandan1/feature-issue-45
added feature requested in Issue #45
2024-01-27 23:00:49 +05:30
Raj Nandan Sharma 9c89634b0b added feature requested in Issue #45 2024-01-27 22:59:23 +05:30
Raj Nandan Sharma 1b4fa02efe added feature requested in Issue #45 2024-01-27 22:51:38 +05:30
Raj Nandan Sharma 8880dfa4c6 Merge pull request #44 from orhun/chore/fix_typo_in_url
Fix typo in the URL
2024-01-27 20:25:56 +05:30
Orhun Parmaksız 7bea01dbb6 Fix typo in the URL 2024-01-27 16:22:10 +03:00
Raj Nandan Sharma a85820ed2b Optimize Page load 2024-01-27 15:02:44 +05:30
Raj Nandan Sharma 0e136afd61 Optimize layout.svelte 2024-01-26 22:49:41 +05:30
Raj Nandan Sharma 231ec66d5e Revert layout 2024-01-26 22:26:14 +05:30
Raj Nandan Sharma 1ebd40f922 Revert layout 2024-01-26 20:26:01 +05:30
Raj Nandan Sharma d4a919c1d7 Revert layout 2024-01-26 20:22:07 +05:30
Raj Nandan Sharma 70b80cac62 CSS cleanup and performance improvement 2024-01-26 20:09:01 +05:30
Raj Nandan Sharma ffc3055aec updated readme 2024-01-25 12:17:43 +05:30
Raj Nandan Sharma 471c6ddd33 version 0.0.6 2024-01-25 12:13:44 +05:30
Raj Nandan Sharma b7abe28c57 Merge pull request #42 from rajnandan1/api-fixes
fixed api: reopen issue if updated, added footer optional, responsive…
2024-01-25 12:10:39 +05:30
Raj Nandan Sharma 905fbc2bc3 incident text changes 2024-01-25 12:00:00 +05:30
Raj Nandan Sharma d3a7116747 fixed api: reopen issue if updated, added footer optional, responsive share menu, update sitemap 2024-01-25 11:57:47 +05:30
Raj Nandan Sharma 7fe340bd5f updated docker action to ignore readme.md 2024-01-24 23:10:04 +05:30
Raj Nandan Sharma 6026369e16 updated docs 2024-01-24 22:43:37 +05:30
Raj Nandan Sharma 321b053538 updated docs 2024-01-24 22:42:06 +05:30
Raj Nandan Sharma cbcdebb06f Merge pull request #39 from FoxxMD/docker
feat: Add dockerfile and docker-compose
2024-01-24 22:30:27 +05:30
FoxxMD 9ae7405166 feat: Add github actions docker image publish workflow 2024-01-24 11:52:28 -05:00
FoxxMD 139da41e28 docs: Add docker install and usage instructions 2024-01-24 11:48:57 -05:00
FoxxMD 4d0147a174 feat: Add dockerfile and docker-compose 2024-01-24 11:28:48 -05:00
Raj Nandan Sharma 6766bec87d updated readme 2024-01-24 19:48:21 +05:30
Raj Nandan Sharma b64f3aea75 updated readme 2024-01-24 19:45:11 +05:30
Raj Nandan Sharma c15ec146b8 updated readme 2024-01-24 19:44:37 +05:30
Raj Nandan Sharma ec9934b3e1 Update issue templates 2024-01-23 22:34:09 +05:30
Raj Nandan Sharma 31e212b869 updated readme 2024-01-23 22:12:10 +05:30
Raj Nandan Sharma 74ea57d6bb optimized pngs 2024-01-22 11:40:50 +05:30
Raj Nandan Sharma b7eb788c26 optimized pngs 2024-01-22 11:39:03 +05:30
Raj Nandan Sharma 18d9589594 optimized pngs 2024-01-22 11:38:13 +05:30
Raj Nandan Sharma 901b942ebf optimized pngs 2024-01-22 11:02:23 +05:30
Raj Nandan Sharma 84cdb43f12 optimized pngs 2024-01-22 11:00:57 +05:30
Raj Nandan Sharma abe75a7207 optimized pngs 2024-01-22 10:59:15 +05:30
Raj Nandan Sharma 32b623d391 optimized pngs 2024-01-22 10:58:56 +05:30
Raj Nandan Sharma 1aa9c5860a optimized pngs 2024-01-22 10:56:53 +05:30
Raj Nandan Sharma 61e4c15c28 optimized pngs 2024-01-22 10:53:16 +05:30
Raj Nandan Sharma 55cb221b52 test 2024-01-22 10:50:44 +05:30
Raj Nandan Sharma ea12920e7e new build 2024-01-21 22:34:17 +05:30
Raj Nandan Sharma 3a845080b4 new build 2024-01-21 22:31:06 +05:30
Raj Nandan Sharma 3e87eb73e9 reverted nav 2024-01-21 22:29:55 +05:30
Raj Nandan Sharma 5add3752b7 bug fix for release/0.0.5 2024-01-21 17:14:53 +05:30
Raj Nandan Sharma 50b88957c9 bug fix for release/0.0.5 2024-01-21 17:13:07 +05:30
Raj Nandan Sharma e38bf074b6 bug fix for release/0.0.5 2024-01-21 17:09:14 +05:30
Raj Nandan Sharma 696e30a581 bug fix for release/0.0.5 2024-01-21 17:04:01 +05:30
429 changed files with 30071 additions and 45400 deletions
+6
View File
@@ -0,0 +1,6 @@
node_modules
dist
build
.env
.DS_Store
*.log
+12
View File
@@ -0,0 +1,12 @@
KENER_SECRET_KEY=please_change_me
NODE_ENV=production
PORT=3000
KENER_BASE_PATH=""
RESEND_API_KEY=
ORIGIN=http://localhost:3000
DATABASE_URL=sqlite://./database/kener.sqlite.db
TZ=UTC
RESEND_SENDER_EMAIL=Accounts <accounts@resend.dev>
# DATABASE_URL=postgresql://myuser:mypassword@localhost:5432/mydatabase
# DATABASE_URL=mysql://root:password@127.0.0.1:3306/kener
+48
View File
@@ -0,0 +1,48 @@
# Contributing to Kener
Thank you for considering contributing to our project! Here are some guidelines to help you get started.
---
## How to Contribute
1. Fork the repository and clone it locally.
2. Create a new branch for your feature or bug fix:
```bash
git checkout -b feature/your-feature-name
```
3. Make your changes and commit them:
```bash
git commit -m 'Describe your changes'
```
4. Push your changes to your fork:
```bash
git push origin feature/your-feature-name
```
5. Create a pull request to the `main` branch.
## Development
1. Install dependencies:
```bash
npm install
```
2. Create a `.env` file in the root of the project and add the following:
```bash
cp .env.example .env
```
2. Start the development server:
```bash
npm run dev
```
3. Open [http://localhost:3000](http://localhost:3000) in your browser.
## Documentation
The documentation is available in the `docs` folder. You can view it by going to [http://localhost:3000/docs/home](http://localhost:3000/docs/home) in your browser.
## Where to Start
1. Check out the [roadmap items](https://kener.ing/docs/roadmap/)
2. Add language support by following the [i18n guide](https://kener.ing/docs/i18n/)
+2
View File
@@ -0,0 +1,2 @@
github: rajnandan1
buy_me_a_coffee: rajnandan1
+38
View File
@@ -0,0 +1,38 @@
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: ''
assignees: ''
---
**Describe the bug**
A clear and concise description of what the bug is.
**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
**Expected behavior**
A clear and concise description of what you expected to happen.
**Screenshots**
If applicable, add screenshots to help explain your problem.
**Desktop (please complete the following information):**
- OS: [e.g. iOS]
- Browser [e.g. chrome, safari]
- Version [e.g. 22]
**Smartphone (please complete the following information):**
- Device: [e.g. iPhone6]
- OS: [e.g. iOS8.1]
- Browser [e.g. stock browser, safari]
- Version [e.g. 22]
**Additional context**
Add any other context about the problem here.
+20
View File
@@ -0,0 +1,20 @@
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: ''
assignees: ''
---
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.
+61
View File
@@ -0,0 +1,61 @@
---
name: Publish Docker image to Dockerhub and GHCR
on:
push:
branches:
- main
tags:
- "*.*.*"
paths-ignore:
- '**/*.md'
- 'docs/**'
jobs:
push_to_registry:
name: Push Docker image to Docker Hub
runs-on: ubuntu-latest
if: ${{ vars.DOCKERHUB_IMAGE_NAME != '' || vars.GHCR_IMAGE_NAME != '' }}
permissions:
packages: write
contents: read
steps:
- name: Check out the repo
uses: actions/checkout@v2
- name: Log in to Docker Hub
if: ${{ github.event_name != 'pull_request' && vars.DOCKERHUB_IMAGE_NAME != ''
}}
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Login to GitHub Container Registry
if: ${{ github.event_name != 'pull_request' && vars.GHCR_IMAGE_NAME != '' }}
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@v3
with:
images: |
${{ vars.DOCKERHUB_IMAGE_NAME }}
${{ vars.GHCR_IMAGE_NAME }}
tags: |
type=raw,value=latest,enable=${{ endsWith(github.ref, 'main') }}
type=ref,event=branch,enable=${{ !endsWith(github.ref, 'main') }}
type=semver,pattern={{version}}
flavor: |
latest=false
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Build and push Docker image
uses: docker/build-push-action@v4
with:
context: .
push: ${{ github.event_name != 'pull_request' && !env.ACT}}
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
platforms: linux/amd64,linux/arm64
+15 -1
View File
@@ -1,9 +1,10 @@
.DS_Store
node_modules
static/kener
build/client/kener
build
config/monitors.yaml
config/site.yaml
config/server.yaml
/.svelte-kit
/src/lib/.kener
/package
@@ -13,3 +14,16 @@ config/site.yaml
vite.config.js.timestamp-*
vite.config.ts.timestamp-*
nodemon.json
.okgit/
config/static/*
!config/static/.kener
db/*
!db/.kener
database/*
!database/.kener
uploads/*
!uploads/upload.dir
static/uploads/*
!static/uploads/upload.dir
temp.txt
+22
View File
@@ -0,0 +1,22 @@
.DS_Store
node_modules
static/kener
build
config/monitors.yaml
config/site.yaml
/.svelte-kit
/package
.env
.env.*
!.env.example
# Ignore files for PNPM, NPM and YARN
pnpm-lock.yaml
package-lock.json
yarn.lock
.okgit/
config/static/*
!config/static/.kener
**/*.yaml
**/*.yml
.github/
+9
View File
@@ -0,0 +1,9 @@
{
"useTabs": true,
"semi": true,
"tabWidth": 4,
"trailingComma": "none",
"printWidth": 100,
"plugins": ["prettier-plugin-svelte", "prettier-plugin-tailwindcss"],
"overrides": [{ "files": "*.svelte", "options": { "parser": "svelte" } }]
}
+49
View File
@@ -0,0 +1,49 @@
FROM node:23
# Install necessary packages including tzdata for timezone setting
RUN apt-get update && apt-get install -y \
build-essential \
libnode108 \
nodejs \
python3 \
sqlite3 \
libsqlite3-dev \
make \
node-gyp \
g++ \
tzdata \
iputils-ping && \
rm -rf /var/lib/apt/lists/*
# Set the timezone environment variable and the application environment
ARG KENER_BASE_PATH=
ENV TZ=Etc/UTC
ENV KENER_BASE_PATH=${KENER_BASE_PATH}
# Set the working directory
WORKDIR /app
# Copy package files and install dependencies
COPY package*.json ./
RUN npm install && npm cache clean --force
# Copy the rest of the application code
COPY . .
# Ensure /app/uploads and /app/database have rw permissions
RUN mkdir -p /app/uploads /app/database && \
chmod -R 777 /app/uploads /app/database
# Build the application
RUN npm run build
# Argument for the port
ARG PORT=3000
# Set the environment variable for the port
ENV PORT=$PORT
# Expose the application port
EXPOSE $PORT
# Set the command to run the application
CMD ["node", "main"]
+88 -45
View File
@@ -1,69 +1,112 @@
<p align="center"><img src="https://kener.ing/ss.png" width="100%" height="auto" alt="kener example illustration"></p>
# Kener - A Beautiful Status Page System
<p align="center">
<img alt="GitHub Repo stars" src="https://img.shields.io/github/stars/rajnandan1/kener?label=Star%20Repo&style=social">
<a href="https://github.com/ivbeg/awesome-status-pages"><img src="https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg" alt="Awesome status page" /></a></p>
<img src="https://kener.ing/newbg.png?v=1" width="100%" height="auto" class="rounded-lg shadow-lg" alt="kener example illustration">
</p>
# Kener - Status Page System
Kener: Open-source Node.js status page tool, designed to make service monitoring and incident handling a breeze. It offers a sleek and user-friendly interface that simplifies tracking service outages and improves how we communicate during incidents. And the best part? Kener integrates seamlessly with GitHub, making incident management a team effort—making it easier for us to track and fix issues together in a collaborative and friendly environment.
<p align="center">
<img alt="GitHub Repo stars" src="https://img.shields.io/github/stars/rajnandan1/kener?label=Star%20Repo&style=social">
<a href="https://github.com/ivbeg/awesome-status-pages"><img src="https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg" alt="Awesome status page" /></a>
<a href="https://hub.docker.com/r/rajnandan1/kener"><img src="https://img.shields.io/docker/pulls/rajnandan1/kener" alt="Docker Kener" /></a>
</p>
<p align="center">
<picture>
<source srcset="https://fonts.gstatic.com/s/e/notoemoji/latest/1f514/512.webp" type="image/webp">
<img src="https://fonts.gstatic.com/s/e/notoemoji/latest/1f514/512.gif" alt="🔔" width="32" height="32">
</picture>
<picture>
<source srcset="https://fonts.gstatic.com/s/e/notoemoji/latest/1f680/512.webp" type="image/webp">
<img src="https://fonts.gstatic.com/s/e/notoemoji/latest/1f680/512.gif" alt="🚀" width="32" height="32">
</picture>
<picture>
<source srcset="https://fonts.gstatic.com/s/e/notoemoji/latest/1f6a7/512.webp" type="image/webp">
<img src="https://fonts.gstatic.com/s/e/notoemoji/latest/1f6a7/512.gif" alt="🚧" width="32" height="32">
</picture>
</p>
It uses files to store the data. Other adapters are coming soon
#### [👉 Visit a live server](https://kener.ing)
#### [👉 Quick Start](https://kener.ing/docs/quick-start)
#### [👉 Documentation](https://kener.ing/docs/home)
> **Warning**
> Kener is still under development. There might be bugs. Please report them by raising a github issue and I will fix them.
## What is Kener?
#### Visit a live server [here](https://kener.ing)
Kener is status page system built with Sveltekit and NodeJS. It does not try to replace the Datadogs and Atlassian of the world. It tries to help some who wants to come up with a status page that looks nice and minimum overhead, in a modern way.
#### Read the documentation [here](https://kener.ing/docs)
It is carefully crafted to be easy to use and customize.
![alt text](static/ss.png "SS")
It comes with all the basic asks for a status page. It is open-source and free to use.
Kener name is derived from the word "Kene" which means "how is it going" in Assamese, then .ing because it was a cheaply available domain.
<div align="left">
<img alt="Visitor Stats" src="https://widgetbite.com/stats/rajnandan"/>
</div>
## Features
- Real-time monitoring
- Handles Timezones without you knowing it
- Customizable status page
- 100% Accessiblty Score
- Easy installation and setup
- Automated incident management
- GitHub integration for issue tracking
- Environment variable configuration
- Production and custom deployment options
- API for status updates
- Badge generation for status and uptime display + Customization
- Branding and theme (light + dark) customization
- Flexible monitor configuration using YAML
- Cron-based scheduling for monitors
- Secrets management for headers and bodies
- Evaluators for HTTP response parsing
- Incident tagging and labeling
- User-friendly interface
- Support for light and dark themes
- Responsive design for various devices
- Auto SEO and Social Media ready
Here are some of the features that you get out of the box. Please read the documentation to know how to use them.
### Monitoring and Tracking
- Advanced application performance monitoring tools
- Real-time network monitor software capabilities
- Polls HTTP endpoint or Push data to monitor using Rest APIs
- Adjusts Timezones for visitors
- Categorize Monitors into different Sections
- Cron-based scheduling for monitors. Minimum per minute
- Construct complex API Polls - Chain, Secrets etc
- Supports a Default Status for Monitors
- Supports base path for hosting in k8s
- Pre-built docker image for easy deployment
- Automatically adjusts timezones for visitors
### Customization and Branding
- Customizable status page
- Badge generation for status and uptime of Monitors
- Support for custom domains
- Embed Monitor as an iframe or widget
- Light + Dark Theme
- Internationalization support
- Beautifully Crafted Status Page
### Incident Management
- Incident Management
- Incident Communication
- Comprehensive APIs for Incident Management
### User Experience and Design
- Good Accessibility Score
- Easy installation and setup
- User-friendly interface
- Responsive design for various devices
- Auto SEO and Social Media ready
- Server Side Rendering
## Technologies used
- [SvelteKit](https://kit.svelte.dev/)
- [shadcn-svelte](https://www.shadcn-svelte.com/)
## Inspired from
- [Upptime](https://upptime.js.org/)
- [SvelteKit](https://kit.svelte.dev/)
- [shadcn-svelte](https://www.shadcn-svelte.com/)
## Roadmap
- [ ] Add notification
- [x] Add api to create incident
- [ ] Add Mysql adapter
## Support Me
## Support
If you are using Kener and want to support me, you can do so by sponsoring me on GitHub or buying me a coffee.
<a href="https://stackexchange.com/users/3713933"><img src="https://stackexchange.com/users/flair/3713933.png" width="208" height="58" alt="profile for Raj Nandan Sharma on Stack Exchange, a network of free, community-driven Q&amp;A sites" title="profile for Raj Nandan Sharma on Stack Exchange, a network of free, community-driven Q&amp;A sites"></a>
[Sponsor Me Using Github](https://github.com/sponsors/rajnandan1)
<a href="https://www.buymeacoffee.com/app/rajnandan1"><img src="https://img.buymeacoffee.com/button-api/?text=Buy me a coffee&emoji=&slug=rajnandan1&button_colour=5F7FFF&font_colour=ffffff&font_family=Poppins&outline_colour=000000&coffee_colour=FFDD00" /></a>
[Buy Me a Coffee](https://www.buymeacoffee.com/rajnandan1)
<a href="hhttps://www.paypal.com/paypalme/rajnandan1"><img style="height:90px;margin-left:-15px" src="static/paypal.png" /></a>
![image](https://badges.pufler.dev/visits/rajnandan1/kener)
## Contributing
If you want to contribute to Kener, please read the [Contributing Guide](https://github.com/rajnandan1/kener/blob/main/.github/CONTRIBUTING.md).
## Star History
[![Star History Chart](https://api.star-history.com/svg?repos=rajnandan1/kener&type=Date)](https://star-history.com/#rajnandan1/kener&Date)
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
.daygrid90.svelte-1cihxcj.svelte-1cihxcj{-ms-overflow-style:none;scrollbar-width:none}.daygrid90.svelte-1cihxcj.svelte-1cihxcj::-webkit-scrollbar{display:none}.monitor.svelte-1cihxcj .menu-monitor.svelte-1cihxcj{visibility:hidden}.monitor.svelte-1cihxcj:hover .menu-monitor.svelte-1cihxcj{visibility:visible}
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
import{s as h,r as v,z as c,f as g,g as b,h as C,d as f,F as d,i as p,u as D,v as E,w as I,y as _,A as N}from"./scheduler.3b52f240.js";import{S as P,i as S,a as V,t as q}from"./index.e0f9dde7.js";import{i as m,b as z}from"./Icon.55f18d08.js";function A(i){let e,n,l;const r=i[3].default,t=v(r,i,i[2],null);let u=[{class:n=m("rounded-lg border bg-card text-card-foreground shadow-sm",i[0])},i[1]],o={};for(let s=0;s<u.length;s+=1)o=c(o,u[s]);return{c(){e=g("div"),t&&t.c(),this.h()},l(s){e=b(s,"DIV",{class:!0});var a=C(e);t&&t.l(a),a.forEach(f),this.h()},h(){d(e,o)},m(s,a){p(s,e,a),t&&t.m(e,null),l=!0},p(s,[a]){t&&t.p&&(!l||a&4)&&D(t,r,s,s[2],l?I(r,s[2],a,null):E(s[2]),null),d(e,o=z(u,[(!l||a&1&&n!==(n=m("rounded-lg border bg-card text-card-foreground shadow-sm",s[0])))&&{class:n},a&2&&s[1]]))},i(s){l||(V(t,s),l=!0)},o(s){q(t,s),l=!1},d(s){s&&f(e),t&&t.d(s)}}}function F(i,e,n){const l=["class"];let r=_(e,l),{$$slots:t={},$$scope:u}=e,{class:o=void 0}=e;return i.$$set=s=>{e=c(c({},e),N(s)),n(1,r=_(e,l)),"class"in s&&n(0,o=s.class),"$$scope"in s&&n(2,u=s.$$scope)},[o,r,u,t]}class J extends P{constructor(e){super(),S(this,e,F,A,h,{class:0})}}function j(i){let e,n,l;const r=i[3].default,t=v(r,i,i[2],null);let u=[{class:n=m("p-6 pt-0",i[0])},i[1]],o={};for(let s=0;s<u.length;s+=1)o=c(o,u[s]);return{c(){e=g("div"),t&&t.c(),this.h()},l(s){e=b(s,"DIV",{class:!0});var a=C(e);t&&t.l(a),a.forEach(f),this.h()},h(){d(e,o)},m(s,a){p(s,e,a),t&&t.m(e,null),l=!0},p(s,[a]){t&&t.p&&(!l||a&4)&&D(t,r,s,s[2],l?I(r,s[2],a,null):E(s[2]),null),d(e,o=z(u,[(!l||a&1&&n!==(n=m("p-6 pt-0",s[0])))&&{class:n},a&2&&s[1]]))},i(s){l||(V(t,s),l=!0)},o(s){q(t,s),l=!1},d(s){s&&f(e),t&&t.d(s)}}}function k(i,e,n){const l=["class"];let r=_(e,l),{$$slots:t={},$$scope:u}=e,{class:o=void 0}=e;return i.$$set=s=>{e=c(c({},e),N(s)),n(1,r=_(e,l)),"class"in s&&n(0,o=s.class),"$$scope"in s&&n(2,u=s.$$scope)},[o,r,u,t]}class K extends P{constructor(e){super(),S(this,e,k,j,h,{class:0})}}export{J as C,K as a};
@@ -1 +0,0 @@
import{s as u,z as r,A as i,r as m,u as d,v as p,w as g}from"./scheduler.3b52f240.js";import{S as h,i as $,b as v,d as b,m as C,a as _,t as f,e as w}from"./index.e0f9dde7.js";import{I as N,b as I,h as S}from"./Icon.55f18d08.js";function j(l){let e;const s=l[2].default,o=m(s,l,l[3],null);return{c(){o&&o.c()},l(n){o&&o.l(n)},m(n,t){o&&o.m(n,t),e=!0},p(n,t){o&&o.p&&(!e||t&8)&&d(o,s,n,n[3],e?g(s,n[3],t,null):p(n[3]),null)},i(n){e||(_(o,n),e=!0)},o(n){f(o,n),e=!1},d(n){o&&o.d(n)}}}function q(l){let e,s;const o=[{name:"chevron-down"},l[1],{iconNode:l[0]}];let n={$$slots:{default:[j]},$$scope:{ctx:l}};for(let t=0;t<o.length;t+=1)n=r(n,o[t]);return e=new N({props:n}),{c(){v(e.$$.fragment)},l(t){b(e.$$.fragment,t)},m(t,a){C(e,t,a),s=!0},p(t,[a]){const c=a&3?I(o,[o[0],a&2&&S(t[1]),a&1&&{iconNode:t[0]}]):{};a&8&&(c.$$scope={dirty:a,ctx:t}),e.$set(c)},i(t){s||(_(e.$$.fragment,t),s=!0)},o(t){f(e.$$.fragment,t),s=!1},d(t){w(e,t)}}}function z(l,e,s){let{$$slots:o={},$$scope:n}=e;const t=[["path",{d:"m6 9 6 6 6-6"}]];return l.$$set=a=>{s(1,e=r(r({},e),i(a))),"$$scope"in a&&s(3,n=a.$$scope)},e=i(e),[t,e,o,n]}class A extends h{constructor(e){super(),$(this,e,z,q,u,{})}}const E=A;export{E as C};
@@ -1 +0,0 @@
const o=typeof window<"u"?window:typeof globalThis<"u"?globalThis:global;export{o as g};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
import{M as b,s as w,$ as m,E as q,V as x}from"./scheduler.3b52f240.js";const a=[];function z(s,u){return{subscribe:A(s,u).subscribe}}function A(s,u=b){let t;const r=new Set;function o(n){if(w(s,n)&&(s=n,t)){const i=!a.length;for(const e of r)e[1](),a.push(e,s);if(i){for(let e=0;e<a.length;e+=2)a[e][0](a[e+1]);a.length=0}}}function f(n){o(n(s))}function l(n,i=b){const e=[n,i];return r.add(e),r.size===1&&(t=u(o,f)||b),n(s),()=>{r.delete(e),r.size===0&&t&&(t(),t=null)}}return{set:o,update:f,subscribe:l}}function B(s,u,t){const r=!Array.isArray(s),o=r?[s]:s;if(!o.every(Boolean))throw new Error("derived() expects stores as input, got a falsy value");const f=u.length<2;return z(t,(l,n)=>{let i=!1;const e=[];let d=0,p=b;const y=()=>{if(d)return;p();const c=u(r?e[0]:e,l,n);f?l(c):p=x(c)?c:b},h=o.map((c,g)=>m(c,_=>{e[g]=_,d&=~(1<<g),i&&y()},()=>{d|=1<<g}));return i=!0,y(),function(){q(h),p(),i=!1}})}function M(s){return{subscribe:s.subscribe.bind(s)}}export{M as a,B as d,z as r,A as w};
@@ -1,4 +0,0 @@
var Q=Object.defineProperty;var T=(t,e,n)=>e in t?Q(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var I=(t,e,n)=>(T(t,typeof e!="symbol"?e+"":e,n),n);import{M as w,a0 as W,d as q,a1 as X,E as k,V as O,G as M,a2 as Y,a3 as N,a4 as L,h as Z,a5 as tt,a6 as et,a7 as nt,a8 as it,a9 as U,aa as st,ab as rt,ac as at,ad as ot,ae as ft}from"./scheduler.3b52f240.js";const H=typeof window<"u";let V=H?()=>window.performance.now():()=>Date.now(),B=H?t=>requestAnimationFrame(t):w;const E=new Set;function J(t){E.forEach(e=>{e.c(t)||(E.delete(e),e.f())}),E.size!==0&&B(J)}function D(t){let e;return E.size===0&&B(J),{promise:new Promise(n=>{E.add(e={c:t,f:n})}),abort(){E.delete(e)}}}const P=new Map;let R=0;function ut(t){let e=5381,n=t.length;for(;n--;)e=(e<<5)-e^t.charCodeAt(n);return e>>>0}function ct(t,e){const n={stylesheet:X(e),rules:{}};return P.set(t,n),n}function z(t,e,n,s,u,a,c,i=0){const l=16.666/s;let r=`{
`;for(let $=0;$<=1;$+=l){const m=e+(n-e)*a($);r+=$*100+`%{${c(m,1-m)}}
`}const d=r+`100% {${c(n,1-n)}}
}`,f=`__svelte_${ut(d)}_${i}`,g=W(t),{stylesheet:h,rules:o}=P.get(g)||ct(g,t);o[f]||(o[f]=!0,h.insertRule(`@keyframes ${f} ${d}`,h.cssRules.length));const _=t.style.animation||"";return t.style.animation=`${_?`${_}, `:""}${f} ${s}ms linear ${u}ms 1 both`,R+=1,f}function A(t,e){const n=(t.style.animation||"").split(", "),s=n.filter(e?a=>a.indexOf(e)<0:a=>a.indexOf("__svelte")===-1),u=n.length-s.length;u&&(t.style.animation=s.join(", "),R-=u,R||lt())}function lt(){B(()=>{R||(P.forEach(t=>{const{ownerNode:e}=t.stylesheet;e&&q(e)}),P.clear())})}let S;function F(){return S||(S=Promise.resolve(),S.then(()=>{S=null})),S}function v(t,e,n){t.dispatchEvent(Y(`${e?"intro":"outro"}${n}`))}const C=new Set;let p;function yt(){p={r:0,c:[],p}}function xt(){p.r||k(p.c),p=p.p}function dt(t,e){t&&t.i&&(C.delete(t),t.i(e))}function vt(t,e,n,s){if(t&&t.o){if(C.has(t))return;C.add(t),p.c.push(()=>{C.delete(t),s&&(n&&t.d(1),s())}),t.o(e)}else s&&s()}const G={duration:0};function wt(t,e,n){const s={direction:"in"};let u=e(t,n,s),a=!1,c,i,l=0;function r(){c&&A(t,c)}function d(){const{delay:g=0,duration:h=300,easing:o=N,tick:_=w,css:$}=u||G;$&&(c=z(t,0,1,h,g,o,$,l++)),_(0,1);const m=V()+g,y=m+h;i&&i.abort(),a=!0,M(()=>v(t,!0,"start")),i=D(x=>{if(a){if(x>=y)return _(1,0),v(t,!0,"end"),r(),a=!1;if(x>=m){const b=o((x-m)/h);_(b,1-b)}}return a})}let f=!1;return{start(){f||(f=!0,A(t),O(u)?(u=u(s),F().then(d)):d())},invalidate(){f=!1},end(){a&&(r(),a=!1)}}}function bt(t,e,n){const s={direction:"out"};let u=e(t,n,s),a=!0,c;const i=p;i.r+=1;let l;function r(){const{delay:d=0,duration:f=300,easing:g=N,tick:h=w,css:o}=u||G;o&&(c=z(t,1,0,f,d,g,o));const _=V()+d,$=_+f;M(()=>v(t,!1,"start")),"inert"in t&&(l=t.inert,t.inert=!0),D(m=>{if(a){if(m>=$)return h(0,1),v(t,!1,"end"),--i.r||k(i.c),!1;if(m>=_){const y=g((m-_)/f);h(1-y,y)}}return a})}return O(u)?F().then(()=>{u=u(s),r()}):r(),{end(d){d&&"inert"in t&&(t.inert=l),d&&u.tick&&u.tick(1,0),a&&(c&&A(t,c),a=!1)}}}function Et(t,e,n,s){let a=e(t,n,{direction:"both"}),c=s?0:1,i=null,l=null,r=null,d;function f(){r&&A(t,r)}function g(o,_){const $=o.b-c;return _*=Math.abs($),{a:c,b:o.b,d:$,duration:_,start:o.start,end:o.start+_,group:o.group}}function h(o){const{delay:_=0,duration:$=300,easing:m=N,tick:y=w,css:x}=a||G,b={start:V()+_,b:o};o||(b.group=p,p.r+=1),"inert"in t&&(o?d!==void 0&&(t.inert=d):(d=t.inert,t.inert=!0)),i||l?l=b:(x&&(f(),r=z(t,c,o,$,_,m,x)),o&&y(0,1),i=g(b,$),M(()=>v(t,o,"start")),D(j=>{if(l&&j>l.start&&(i=g(l,$),l=null,v(t,i.b,"start"),x&&(f(),r=z(t,c,i.b,i.duration,0,m,a.css))),i){if(j>=i.end)y(c=i.b,1-c),v(t,i.b,"end"),l||(i.b?f():--i.group.r||k(i.group.c)),i=null;else if(j>=i.start){const K=j-i.start;c=i.a+i.d*m(K/i.duration),y(c,1-c)}}return!!(i||l)}))}return{run(o){O(a)?F().then(()=>{a=a({direction:o?"in":"out"}),h(o)}):h(o)},end(){f(),i=l=null}}}function kt(t,e,n){const s=t.$$.props[e];s!==void 0&&(t.$$.bound[s]=n,n(t.$$.ctx[s]))}function St(t){t&&t.c()}function Mt(t,e){t&&t.l(e)}function _t(t,e,n){const{fragment:s,after_update:u}=t.$$;s&&s.m(e,n),M(()=>{const a=t.$$.on_mount.map(st).filter(O);t.$$.on_destroy?t.$$.on_destroy.push(...a):k(a),t.$$.on_mount=[]}),u.forEach(M)}function $t(t,e){const n=t.$$;n.fragment!==null&&(nt(n.after_update),k(n.on_destroy),n.fragment&&n.fragment.d(e),n.on_destroy=n.fragment=null,n.ctx=[])}function ht(t,e){t.$$.dirty[0]===-1&&(rt.push(t),at(),t.$$.dirty.fill(0)),t.$$.dirty[e/31|0]|=1<<e%31}function Ot(t,e,n,s,u,a,c=null,i=[-1]){const l=it;U(t);const r=t.$$={fragment:null,ctx:[],props:a,update:w,not_equal:u,bound:L(),on_mount:[],on_destroy:[],on_disconnect:[],before_update:[],after_update:[],context:new Map(e.context||(l?l.$$.context:[])),callbacks:L(),dirty:i,skip_bound:!1,root:e.target||l.$$.root};c&&c(r.root);let d=!1;if(r.ctx=n?n(t,e.props||{},(f,g,...h)=>{const o=h.length?h[0]:g;return r.ctx&&u(r.ctx[f],r.ctx[f]=o)&&(!r.skip_bound&&r.bound[f]&&r.bound[f](o),d&&ht(t,f)),g}):[],r.update(),d=!0,k(r.before_update),r.fragment=s?s(r.ctx):!1,e.target){if(e.hydrate){ot();const f=Z(e.target);r.fragment&&r.fragment.l(f),f.forEach(q)}else r.fragment&&r.fragment.c();e.intro&&dt(t.$$.fragment),_t(t,e.target,e.anchor),ft(),tt()}U(l)}class jt{constructor(){I(this,"$$");I(this,"$$set")}$destroy(){$t(this,1),this.$destroy=w}$on(e,n){if(!O(n))return w;const s=this.$$.callbacks[e]||(this.$$.callbacks[e]=[]);return s.push(n),()=>{const u=s.indexOf(n);u!==-1&&s.splice(u,1)}}$set(e){this.$$set&&!et(e)&&(this.$$.skip_bound=!0,this.$$set(e),this.$$.skip_bound=!1)}}const gt="4";typeof window<"u"&&(window.__svelte||(window.__svelte={v:new Set})).v.add(gt);export{jt as S,dt as a,St as b,xt as c,Mt as d,$t as e,bt as f,yt as g,wt as h,Ot as i,Et as j,kt as k,_t as m,vt as t};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
var s;const a=((s=globalThis.__sveltekit_1ghecmz)==null?void 0:s.base)??"";var e;const t=((e=globalThis.__sveltekit_1ghecmz)==null?void 0:e.assets)??a;export{t as a,a as b};
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
import{w as u}from"./index.df550c81.js";import{a as b}from"./paths.2362653e.js";const v="1705832122577",A="sveltekit:snapshot",R="sveltekit:scroll",y="sveltekit:index",f={tap:1,hover:2,viewport:3,eager:4,off:-1},_=location.origin;function I(e){let t=e.baseURI;if(!t){const n=e.getElementsByTagName("base");t=n.length?n[0].href:e.URL}return t}function S(){return{x:pageXOffset,y:pageYOffset}}function c(e,t){return e.getAttribute(`data-sveltekit-${t}`)}const d={...f,"":f.hover};function g(e){let t=e.assignedSlot??e.parentNode;return(t==null?void 0:t.nodeType)===11&&(t=t.host),t}function T(e,t){for(;e&&e!==t;){if(e.nodeName.toUpperCase()==="A"&&e.hasAttribute("href"))return e;e=g(e)}}function x(e,t){let n;try{n=new URL(e instanceof SVGAElement?e.href.baseVal:e.href,document.baseURI)}catch{}const s=e instanceof SVGAElement?e.target.baseVal:e.target,r=!n||!!s||k(n,t)||(e.getAttribute("rel")||"").split(/\s+/).includes("external"),l=(n==null?void 0:n.origin)===_&&e.hasAttribute("download");return{url:n,external:r,target:s,download:l}}function O(e){let t=null,n=null,s=null,r=null,l=null,o=null,a=e;for(;a&&a!==document.documentElement;)s===null&&(s=c(a,"preload-code")),r===null&&(r=c(a,"preload-data")),t===null&&(t=c(a,"keepfocus")),n===null&&(n=c(a,"noscroll")),l===null&&(l=c(a,"reload")),o===null&&(o=c(a,"replacestate")),a=g(a);function i(h){switch(h){case"":case"true":return!0;case"off":case"false":return!1;default:return null}}return{preload_code:d[s??"off"],preload_data:d[r??"off"],keep_focus:i(t),noscroll:i(n),reload:i(l),replace_state:i(o)}}function p(e){const t=u(e);let n=!0;function s(){n=!0,t.update(o=>o)}function r(o){n=!1,t.set(o)}function l(o){let a;return t.subscribe(i=>{(a===void 0||n&&i!==a)&&o(a=i)})}return{notify:s,set:r,subscribe:l}}function m(){const{set:e,subscribe:t}=u(!1);let n;async function s(){clearTimeout(n);try{const r=await fetch(`${b}/_app/version.json`,{headers:{pragma:"no-cache","cache-control":"no-cache"}});if(!r.ok)return!1;const o=(await r.json()).version!==v;return o&&(e(!0),clearTimeout(n)),o}catch{return!1}}return{subscribe:t,check:s}}function k(e,t){return e.origin!==_||!e.pathname.startsWith(t)}function U(e){e.client}const L={url:p({}),page:p({}),navigating:u(null),updated:m()};export{y as I,f as P,R as S,A as a,x as b,O as c,L as d,U as e,T as f,I as g,k as i,_ as o,S as s};
@@ -1 +0,0 @@
import{d as e}from"./singletons.4e6d7679.js";const r=()=>{const s=e;return{page:{subscribe:s.page.subscribe},navigating:{subscribe:s.navigating.subscribe},updated:s.updated}},b={subscribe(s){return r().page.subscribe(s)}};export{b as p};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
import{s as b,f as u,l as h,a as S,g as d,h as v,m as g,d as m,c as q,i as _,I as x,n as E,M as $,x as y}from"../chunks/scheduler.3b52f240.js";import{S as C,i as H}from"../chunks/index.e0f9dde7.js";import{p as I}from"../chunks/stores.85fa8f06.js";function M(i){var f;let a,s=i[0].status+"",r,o,n,p=((f=i[0].error)==null?void 0:f.message)+"",c;return{c(){a=u("h1"),r=h(s),o=S(),n=u("p"),c=h(p)},l(e){a=d(e,"H1",{});var t=v(a);r=g(t,s),t.forEach(m),o=q(e),n=d(e,"P",{});var l=v(n);c=g(l,p),l.forEach(m)},m(e,t){_(e,a,t),x(a,r),_(e,o,t),_(e,n,t),x(n,c)},p(e,[t]){var l;t&1&&s!==(s=e[0].status+"")&&E(r,s),t&1&&p!==(p=((l=e[0].error)==null?void 0:l.message)+"")&&E(c,p)},i:$,o:$,d(e){e&&(m(a),m(o),m(n))}}}function P(i,a,s){let r;return y(i,I,o=>s(0,r=o)),[r]}class z extends C{constructor(a){super(),H(this,a,P,M,b,{})}}export{z as component};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1,2 +0,0 @@
import{s as S,e as b,i as _,d as u,x as y,o as O,p as P,f as k,g as x,h as T,j as d,a as j,O as C,c as I,M as q,J as B}from"../chunks/scheduler.3b52f240.js";import{S as F,i as J,t as m,c as H,a as i,g as L,b as p,d as h,m as $,e as g}from"../chunks/index.e0f9dde7.js";import{k as v}from"../chunks/Icon.55f18d08.js";import{M as W}from"../chunks/monitor.e757fb2a.js";import{C as N,a as z}from"../chunks/card-content.2099a051.js";import"../chunks/moment.0e609d86.js";import"../chunks/index.b64cf02a.js";import{p as A}from"../chunks/stores.85fa8f06.js";function E(l,t,o){const n=l.slice();return n[5]=t[o],n}function D(l){let t,o,n;return o=new N({props:{class:"mx-auto",$$slots:{default:[Q]},$$scope:{ctx:l}}}),{c(){t=k("section"),p(o.$$.fragment),this.h()},l(e){t=x(e,"SECTION",{class:!0,id:!0});var a=T(t);h(o.$$.fragment,a),a.forEach(u),this.h()},h(){d(t,"class","mx-auto bg-transparent mb-4 flex w-full max-w-[890px] flex-1 flex-col items-start justify-center"),d(t,"id","")},m(e,a){_(e,t,a),$(o,t,null),n=!0},p(e,a){const r={};a&256&&(r.$$scope={dirty:a,ctx:e}),o.$set(r)},i(e){n||(i(o.$$.fragment,e),n=!0)},o(e){m(o.$$.fragment,e),n=!1},d(e){e&&u(t),g(o)}}}function G(l){let t,o,n;return o=new N({props:{class:"w-[580px] border-0 shadow-none",$$slots:{default:[U]},$$scope:{ctx:l}}}),{c(){t=k("section"),p(o.$$.fragment),this.h()},l(e){t=x(e,"SECTION",{class:!0});var a=T(t);h(o.$$.fragment,a),a.forEach(u),this.h()},h(){d(t,"class","w-fit p-0")},m(e,a){_(e,t,a),$(o,t,null),l[3](t),n=!0},p(e,a){const r={};a&257&&(r.$$scope={dirty:a,ctx:e}),o.$set(r)},i(e){n||(i(o.$$.fragment,e),n=!0)},o(e){m(o.$$.fragment,e),n=!1},d(e){e&&u(t),g(o),l[3](null)}}}function K(l){let t,o="No Monitor Found.",n,e,a=`Please read the documentation on how to add monitors
<a href="https://kener.ing/docs#h1add-monitors" target="_blank" class="underline">here</a>.`;return{c(){t=k("h1"),t.textContent=o,n=j(),e=k("p"),e.innerHTML=a,this.h()},l(r){t=x(r,"H1",{class:!0,"data-svelte-h":!0}),C(t)!=="svelte-1vwlrnd"&&(t.textContent=o),n=I(r),e=x(r,"P",{class:!0,"data-svelte-h":!0}),C(e)!=="svelte-oy4ufi"&&(e.innerHTML=a),this.h()},h(){d(t,"class","scroll-m-20 text-2xl font-extrabold tracking-tight lg:text-2xl text-center"),d(e,"class","mt-3 text-center")},m(r,c){_(r,t,c),_(r,n,c),_(r,e,c)},p:q,d(r){r&&(u(t),u(n),u(e))}}}function Q(l){let t,o;return t=new z({props:{class:"pt-4",$$slots:{default:[K]},$$scope:{ctx:l}}}),{c(){p(t.$$.fragment)},l(n){h(t.$$.fragment,n)},m(n,e){$(t,n,e),o=!0},p(n,e){const a={};e&256&&(a.$$scope={dirty:e,ctx:n}),t.$set(a)},i(n){o||(i(t.$$.fragment,n),o=!0)},o(n){m(t.$$.fragment,n),o=!1},d(n){g(t,n)}}}function M(l){let t,o;return t=new W({props:{monitor:l[5],localTz:l[0].localTz}}),t.$on("heightChange",l[2]),{c(){p(t.$$.fragment)},l(n){h(t.$$.fragment,n)},m(n,e){$(t,n,e),o=!0},p(n,e){const a={};e&1&&(a.monitor=n[5]),e&1&&(a.localTz=n[0].localTz),t.$set(a)},i(n){o||(i(t.$$.fragment,n),o=!0)},o(n){m(t.$$.fragment,n),o=!1},d(n){g(t,n)}}}function R(l){let t,o,n=v(l[0].monitors),e=[];for(let r=0;r<n.length;r+=1)e[r]=M(E(l,n,r));const a=r=>m(e[r],1,1,()=>{e[r]=null});return{c(){for(let r=0;r<e.length;r+=1)e[r].c();t=b()},l(r){for(let c=0;c<e.length;c+=1)e[c].l(r);t=b()},m(r,c){for(let s=0;s<e.length;s+=1)e[s]&&e[s].m(r,c);_(r,t,c),o=!0},p(r,c){if(c&5){n=v(r[0].monitors);let s;for(s=0;s<n.length;s+=1){const f=E(r,n,s);e[s]?(e[s].p(f,c),i(e[s],1)):(e[s]=M(f),e[s].c(),i(e[s],1),e[s].m(t.parentNode,t))}for(L(),s=n.length;s<e.length;s+=1)a(s);H()}},i(r){if(!o){for(let c=0;c<n.length;c+=1)i(e[c]);o=!0}},o(r){e=e.filter(Boolean);for(let c=0;c<e.length;c+=1)m(e[c]);o=!1},d(r){r&&u(t),B(e,r)}}}function U(l){let t,o;return t=new z({props:{class:"p-0 monitors-card ",$$slots:{default:[R]},$$scope:{ctx:l}}}),{c(){p(t.$$.fragment)},l(n){h(t.$$.fragment,n)},m(n,e){$(t,n,e),o=!0},p(n,e){const a={};e&257&&(a.$$scope={dirty:e,ctx:n}),t.$set(a)},i(n){o||(i(t.$$.fragment,n),o=!0)},o(n){m(t.$$.fragment,n),o=!1},d(n){g(t,n)}}}function V(l){let t,o,n,e;const a=[G,D],r=[];function c(s,f){return s[0].monitors.length>0?0:1}return t=c(l),o=r[t]=a[t](l),{c(){o.c(),n=b()},l(s){o.l(s),n=b()},m(s,f){r[t].m(s,f),_(s,n,f),e=!0},p(s,[f]){let w=t;t=c(s),t===w?r[t].p(s,f):(L(),m(r[w],1,1,()=>{r[w]=null}),H(),o=r[t],o?o.p(s,f):(o=r[t]=a[t](s),o.c()),i(o,1),o.m(n.parentNode,n))},i(s){e||(i(o),e=!0)},o(s){m(o),e=!1},d(s){s&&u(n),r[t].d(s)}}}function X(l,t,o){let n;y(l,A,s=>o(4,n=s));let e,{data:a}=t;function r(s){console.log(e.offsetHeight),window.parent.postMessage({height:e.offsetHeight,width:e.offsetWidth,slug:n.params.tag},"*")}O(()=>{a.theme==="dark"?(document.documentElement.classList.add("dark"),document.documentElement.classList.add("dark:bg-background")):(document.documentElement.classList.remove("dark"),document.documentElement.classList.remove("dark:bg-background"))});function c(s){P[s?"unshift":"push"](()=>{e=s,o(1,e)})}return l.$$set=s=>{"data"in s&&o(0,a=s.data)},[a,e,r,c]}class ae extends F{constructor(t){super(),J(this,t,X,V,S,{data:0})}}export{ae as component};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
-1
View File
@@ -1 +0,0 @@
{"version":"1705832122577"}
Binary file not shown.

Before

Width:  |  Height:  |  Size: 156 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

-1
View File
@@ -1 +0,0 @@
User-agent: *
Binary file not shown.

Before

Width:  |  Height:  |  Size: 420 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.1 KiB

-7
View File
@@ -1,7 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="256px" height="308px" viewBox="0 0 256 308" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveAspectRatio="xMidYMid">
<g>
<path d="M239.681566,40.706757 C211.113272,-0.181889366 154.69089,-12.301439 113.894816,13.6910393 L42.2469062,59.3555354 C22.6760042,71.6680028 9.1958152,91.6538543 5.11196889,114.412133 C1.69420521,133.371174 4.6982178,152.928576 13.6483951,169.987905 C7.51549676,179.291145 3.33259428,189.7413 1.3524912,200.706787 C-2.77083771,223.902098 2.62286977,247.780539 16.3159596,266.951444 C44.8902975,307.843936 101.312954,319.958266 142.10271,293.967161 L213.75062,248.302665 C233.322905,235.991626 246.803553,216.005094 250.885557,193.246067 C254.302867,174.287249 251.30121,154.730228 242.355449,137.668922 C248.486748,128.365895 252.667894,117.916162 254.646134,106.951413 C258.772188,83.7560394 253.378243,59.8765465 239.682665,40.706757" fill="#FF3E00"></path>
<path d="M106.888658,270.841265 C83.7871855,276.848065 59.3915045,267.805346 45.7864111,248.192566 C37.5477583,236.66102 34.3023491,222.296573 36.7830958,208.343155 C37.1989333,206.075414 37.7711933,203.839165 38.4957755,201.650433 L39.845476,197.534835 L43.5173097,200.231763 C51.9971301,206.462491 61.4784803,211.199728 71.5527203,214.239302 L74.2164003,215.047419 L73.9710252,217.705878 C73.6455499,221.487851 74.6696022,225.262925 76.8616703,228.361972 C80.9560313,234.269749 88.3011363,236.995968 95.2584831,235.190159 C96.8160691,234.773852 98.3006859,234.121384 99.6606718,233.25546 L171.331634,187.582718 C174.877468,185.349963 177.321139,181.729229 178.065299,177.605596 C178.808171,173.400048 177.830501,169.072361 175.351884,165.594581 C171.255076,159.685578 163.908134,156.9582 156.947927,158.762547 C155.392392,159.178888 153.90975,159.83088 152.551509,160.695872 L125.202489,178.130144 C120.705281,180.989558 115.797437,183.144784 110.64897,184.521162 C87.547692,190.527609 63.1523949,181.484801 49.5475471,161.872188 C41.3085624,150.340895 38.0631179,135.976391 40.5442317,122.023052 C43.0002744,108.333716 51.1099574,96.3125326 62.8835328,88.9089537 L134.548175,43.2323647 C139.047294,40.3682559 143.958644,38.21032 149.111311,36.8336525 C172.21244,30.8273594 196.607527,39.8700206 210.212459,59.4823515 C218.451112,71.013898 221.696522,85.3783452 219.215775,99.3317627 C218.798144,101.59911 218.225915,103.835236 217.503095,106.024485 L216.153395,110.140083 L212.483484,107.447276 C204.004261,101.212984 194.522,96.4735732 184.44615,93.4336926 L181.78247,92.6253012 L182.027845,89.9668419 C182.350522,86.1852063 181.326723,82.4111645 179.1372,79.3110228 C175.042839,73.4032457 167.697734,70.677026 160.740387,72.4828355 C159.182801,72.8991426 157.698185,73.5516104 156.338199,74.4175344 L84.6672364,120.0922 C81.1218886,122.323199 78.6795938,125.943704 77.9387928,130.066574 C77.1913232,134.271925 78.1673502,138.601163 80.6469865,142.078963 C84.7438467,147.987899 92.0907405,150.71526 99.0509435,148.910997 C100.608143,148.493836 102.092543,147.841423 103.452857,146.976298 L130.798305,129.548621 C135.293566,126.685437 140.201191,124.528302 145.350175,123.152382 C168.451453,117.145935 192.846751,126.188743 206.451598,145.801356 C214.690583,157.332649 217.936027,171.697153 215.454914,185.650492 C212.997261,199.340539 204.888162,211.362752 193.115613,218.769811 L121.450695,264.442553 C116.951576,267.306662 112.040226,269.464598 106.887559,270.841265" fill="#FFFFFF"></path>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 3.4 KiB

-37
View File
@@ -1,37 +0,0 @@
/* global "" */
const expected = new Set([
'SOCKET_PATH',
'HOST',
'PORT',
'ORIGIN',
'XFF_DEPTH',
'ADDRESS_HEADER',
'PROTOCOL_HEADER',
'HOST_HEADER',
'BODY_SIZE_LIMIT'
]);
if ("") {
for (const name in process.env) {
if (name.startsWith("")) {
const unprefixed = name.slice("".length);
if (!expected.has(unprefixed)) {
throw new Error(
`You should change envPrefix (${""}) to avoid conflicts with existing environment variables — unexpectedly saw ${name}`
);
}
}
}
}
/**
* @param {string} name
* @param {any} fallback
*/
function env(name, fallback) {
const prefixed = "" + name;
return prefixed in process.env ? process.env[prefixed] : fallback;
}
export { env };
-1307
View File
File diff suppressed because it is too large Load Diff
-225
View File
@@ -1,225 +0,0 @@
import { handler } from './handler.js';
import { env } from './env.js';
import http from 'http';
import * as qs from 'querystring';
function parse$1 (str, loose) {
if (str instanceof RegExp) return { keys:false, pattern:str };
var c, o, tmp, ext, keys=[], pattern='', arr = str.split('/');
arr[0] || arr.shift();
while (tmp = arr.shift()) {
c = tmp[0];
if (c === '*') {
keys.push('wild');
pattern += '/(.*)';
} else if (c === ':') {
o = tmp.indexOf('?', 1);
ext = tmp.indexOf('.', 1);
keys.push( tmp.substring(1, !!~o ? o : !!~ext ? ext : tmp.length) );
pattern += !!~o && !~ext ? '(?:/([^/]+?))?' : '/([^/]+?)';
if (!!~ext) pattern += (!!~o ? '?' : '') + '\\' + tmp.substring(ext);
} else {
pattern += '/' + tmp;
}
}
return {
keys: keys,
pattern: new RegExp('^' + pattern + (loose ? '(?=$|\/)' : '\/?$'), 'i')
};
}
class Trouter {
constructor() {
this.routes = [];
this.all = this.add.bind(this, '');
this.get = this.add.bind(this, 'GET');
this.head = this.add.bind(this, 'HEAD');
this.patch = this.add.bind(this, 'PATCH');
this.options = this.add.bind(this, 'OPTIONS');
this.connect = this.add.bind(this, 'CONNECT');
this.delete = this.add.bind(this, 'DELETE');
this.trace = this.add.bind(this, 'TRACE');
this.post = this.add.bind(this, 'POST');
this.put = this.add.bind(this, 'PUT');
}
use(route, ...fns) {
let handlers = [].concat.apply([], fns);
let { keys, pattern } = parse$1(route, true);
this.routes.push({ keys, pattern, method:'', handlers });
return this;
}
add(method, route, ...fns) {
let { keys, pattern } = parse$1(route);
let handlers = [].concat.apply([], fns);
this.routes.push({ keys, pattern, method, handlers });
return this;
}
find(method, url) {
let isHEAD=(method === 'HEAD');
let i=0, j=0, k, tmp, arr=this.routes;
let matches=[], params={}, handlers=[];
for (; i < arr.length; i++) {
tmp = arr[i];
if (tmp.method.length === 0 || tmp.method === method || isHEAD && tmp.method === 'GET') {
if (tmp.keys === false) {
matches = tmp.pattern.exec(url);
if (matches === null) continue;
if (matches.groups !== void 0) for (k in matches.groups) params[k]=matches.groups[k];
tmp.handlers.length > 1 ? (handlers=handlers.concat(tmp.handlers)) : handlers.push(tmp.handlers[0]);
} else if (tmp.keys.length > 0) {
matches = tmp.pattern.exec(url);
if (matches === null) continue;
for (j=0; j < tmp.keys.length;) params[tmp.keys[j]]=matches[++j];
tmp.handlers.length > 1 ? (handlers=handlers.concat(tmp.handlers)) : handlers.push(tmp.handlers[0]);
} else if (tmp.pattern.test(url)) {
tmp.handlers.length > 1 ? (handlers=handlers.concat(tmp.handlers)) : handlers.push(tmp.handlers[0]);
}
} // else not a match
}
return { params, handlers };
}
}
/**
* @typedef ParsedURL
* @type {import('.').ParsedURL}
*/
/**
* @typedef Request
* @property {string} url
* @property {ParsedURL} _parsedUrl
*/
/**
* @param {Request} req
* @returns {ParsedURL|void}
*/
function parse(req) {
let raw = req.url;
if (raw == null) return;
let prev = req._parsedUrl;
if (prev && prev.raw === raw) return prev;
let pathname=raw, search='', query;
if (raw.length > 1) {
let idx = raw.indexOf('?', 1);
if (idx !== -1) {
search = raw.substring(idx);
pathname = raw.substring(0, idx);
if (search.length > 1) {
query = qs.parse(search.substring(1));
}
}
}
return req._parsedUrl = { pathname, search, query, raw };
}
function onError(err, req, res) {
let code = typeof err.status === 'number' && err.status;
code = res.statusCode = (code && code >= 100 ? code : 500);
if (typeof err === 'string' || Buffer.isBuffer(err)) res.end(err);
else res.end(err.message || http.STATUS_CODES[code]);
}
const mount = fn => fn instanceof Polka ? fn.attach : fn;
class Polka extends Trouter {
constructor(opts={}) {
super();
this.parse = parse;
this.server = opts.server;
this.handler = this.handler.bind(this);
this.onError = opts.onError || onError; // catch-all handler
this.onNoMatch = opts.onNoMatch || this.onError.bind(null, { status: 404 });
this.attach = (req, res) => setImmediate(this.handler, req, res);
}
use(base, ...fns) {
if (base === '/') {
super.use(base, fns.map(mount));
} else if (typeof base === 'function' || base instanceof Polka) {
super.use('/', [base, ...fns].map(mount));
} else {
super.use(base,
(req, _, next) => {
if (typeof base === 'string') {
let len = base.length;
base.startsWith('/') || len++;
req.url = req.url.substring(len) || '/';
req.path = req.path.substring(len) || '/';
} else {
req.url = req.url.replace(base, '') || '/';
req.path = req.path.replace(base, '') || '/';
}
if (req.url.charAt(0) !== '/') {
req.url = '/' + req.url;
}
next();
},
fns.map(mount),
(req, _, next) => {
req.path = req._parsedUrl.pathname;
req.url = req.path + req._parsedUrl.search;
next();
}
);
}
return this; // chainable
}
listen() {
(this.server = this.server || http.createServer()).on('request', this.attach);
this.server.listen.apply(this.server, arguments);
return this;
}
handler(req, res, next) {
let info = this.parse(req), path = info.pathname;
let obj = this.find(req.method, req.path=path);
req.url = path + info.search;
req.originalUrl = req.originalUrl || req.url;
req.query = info.query || {};
req.search = info.search;
req.params = obj.params;
if (path.length > 1 && path.indexOf('%', 1) !== -1) {
for (let k in req.params) {
try { req.params[k] = decodeURIComponent(req.params[k]); }
catch (e) { /* malform uri segment */ }
}
}
let i=0, arr=obj.handlers.concat(this.onNoMatch), len=arr.length;
let loop = async () => res.finished || (i < len) && arr[i++](req, res, next);
(next = next || (err => err ? this.onError(err, req, res, next) : loop().catch(next)))(); // init
}
}
function polka (opts) {
return new Polka(opts);
}
const path = env('SOCKET_PATH', false);
const host = env('HOST', '0.0.0.0');
const port = env('PORT', !path && '3000');
const server = polka().use(handler);
server.listen({ path, host, port }, () => {
console.log(`Listening on ${path ? path : host + ':' + port}`);
});
export { host, path, port, server };
-36
View File
@@ -1,36 +0,0 @@
import fs from 'fs-extra';
import { p as public_env } from './shared-server-58a5f352.js';
async function load({ params, route, url, cookies }) {
let site = JSON.parse(fs.readFileSync(public_env.PUBLIC_KENER_FOLDER + "/site.json", "utf8"));
let localTz = "GMT";
const localTzCookie = cookies.get("localTz");
if (!!localTzCookie) {
localTz = localTzCookie;
}
let showNav = true;
if (url.pathname.startsWith("/embed")) {
showNav = false;
}
return {
site,
localTz,
showNav
};
}
var _layout_server = /*#__PURE__*/Object.freeze({
__proto__: null,
load: load
});
const index = 0;
let component_cache;
const component = async () => component_cache ??= (await import('./_layout.svelte-68f2bf09.js')).default;
const server_id = "src/routes/+layout.server.js";
const imports = ["_app/immutable/nodes/0.0cbbed89.js","_app/immutable/chunks/scheduler.3b52f240.js","_app/immutable/chunks/index.e0f9dde7.js","_app/immutable/chunks/globals.7f7f1b26.js","_app/immutable/chunks/Icon.55f18d08.js","_app/immutable/chunks/index.df550c81.js","_app/immutable/chunks/index.b64cf02a.js"];
const stylesheets = ["_app/immutable/assets/0.e015fe56.css"];
const fonts = [];
export { component, fonts, imports, index, _layout_server as server, server_id, stylesheets };
//# sourceMappingURL=0-2ff8f363.js.map
-1
View File
@@ -1 +0,0 @@
{"version":3,"file":"0-2ff8f363.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/_layout.server.js","../../../.svelte-kit/adapter-node/nodes/0.js"],"sourcesContent":["import fs from \"fs-extra\";\nimport { p as public_env } from \"../../chunks/shared-server.js\";\nasync function load({ params, route, url, cookies }) {\n let site = JSON.parse(fs.readFileSync(public_env.PUBLIC_KENER_FOLDER + \"/site.json\", \"utf8\"));\n let localTz = \"GMT\";\n const localTzCookie = cookies.get(\"localTz\");\n if (!!localTzCookie) {\n localTz = localTzCookie;\n }\n let showNav = true;\n if (url.pathname.startsWith(\"/embed\")) {\n showNav = false;\n }\n return {\n site,\n localTz,\n showNav\n };\n}\nexport {\n load\n};\n","import * as server from '../entries/pages/_layout.server.js';\n\nexport const index = 0;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/_layout.svelte.js')).default;\nexport { server };\nexport const server_id = \"src/routes/+layout.server.js\";\nexport const imports = [\"_app/immutable/nodes/0.0cbbed89.js\",\"_app/immutable/chunks/scheduler.3b52f240.js\",\"_app/immutable/chunks/index.e0f9dde7.js\",\"_app/immutable/chunks/globals.7f7f1b26.js\",\"_app/immutable/chunks/Icon.55f18d08.js\",\"_app/immutable/chunks/index.df550c81.js\",\"_app/immutable/chunks/index.b64cf02a.js\"];\nexport const stylesheets = [\"_app/immutable/assets/0.e015fe56.css\"];\nexport const fonts = [];\n"],"names":[],"mappings":";;;AAEA,eAAe,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE;AACrD,EAAE,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,mBAAmB,GAAG,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;AAChG,EAAE,IAAI,OAAO,GAAG,KAAK,CAAC;AACtB,EAAE,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AAC/C,EAAE,IAAI,CAAC,CAAC,aAAa,EAAE;AACvB,IAAI,OAAO,GAAG,aAAa,CAAC;AAC5B,GAAG;AACH,EAAE,IAAI,OAAO,GAAG,IAAI,CAAC;AACrB,EAAE,IAAI,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;AACzC,IAAI,OAAO,GAAG,KAAK,CAAC;AACpB,GAAG;AACH,EAAE,OAAO;AACT,IAAI,IAAI;AACR,IAAI,OAAO;AACX,IAAI,OAAO;AACX,GAAG,CAAC;AACJ;;;;;;;AChBY,MAAC,KAAK,GAAG,EAAE;AACvB,IAAI,eAAe,CAAC;AACR,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,8BAAoC,CAAC,EAAE,QAAQ;AAE1G,MAAC,SAAS,GAAG,+BAA+B;AAC5C,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,6CAA6C,CAAC,yCAAyC,CAAC,2CAA2C,CAAC,wCAAwC,CAAC,yCAAyC,CAAC,yCAAyC,EAAE;AACnT,MAAC,WAAW,GAAG,CAAC,sCAAsC,EAAE;AACxD,MAAC,KAAK,GAAG;;;;"}
-9
View File
@@ -1,9 +0,0 @@
const index = 1;
let component_cache;
const component = async () => component_cache ??= (await import('./error.svelte-3dc2f51e.js')).default;
const imports = ["_app/immutable/nodes/1.875d4a16.js","_app/immutable/chunks/scheduler.3b52f240.js","_app/immutable/chunks/index.e0f9dde7.js","_app/immutable/chunks/stores.85fa8f06.js","_app/immutable/chunks/singletons.4e6d7679.js","_app/immutable/chunks/index.df550c81.js","_app/immutable/chunks/paths.2362653e.js"];
const stylesheets = [];
const fonts = [];
export { component, fonts, imports, index, stylesheets };
//# sourceMappingURL=1-de2be6a3.js.map
-1
View File
@@ -1 +0,0 @@
{"version":3,"file":"1-de2be6a3.js","sources":["../../../.svelte-kit/adapter-node/nodes/1.js"],"sourcesContent":["\n\nexport const index = 1;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/fallbacks/error.svelte.js')).default;\nexport const imports = [\"_app/immutable/nodes/1.875d4a16.js\",\"_app/immutable/chunks/scheduler.3b52f240.js\",\"_app/immutable/chunks/index.e0f9dde7.js\",\"_app/immutable/chunks/stores.85fa8f06.js\",\"_app/immutable/chunks/singletons.4e6d7679.js\",\"_app/immutable/chunks/index.df550c81.js\",\"_app/immutable/chunks/paths.2362653e.js\"];\nexport const stylesheets = [];\nexport const fonts = [];\n"],"names":[],"mappings":"AAEY,MAAC,KAAK,GAAG,EAAE;AACvB,IAAI,eAAe,CAAC;AACR,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAAsC,CAAC,EAAE,QAAQ;AAC5G,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,6CAA6C,CAAC,yCAAyC,CAAC,0CAA0C,CAAC,8CAA8C,CAAC,yCAAyC,CAAC,yCAAyC,EAAE;AACxT,MAAC,WAAW,GAAG,GAAG;AAClB,MAAC,KAAK,GAAG;;;;"}
-50
View File
@@ -1,50 +0,0 @@
import { G as GetIncidents, M as Mapper } from './github-54c09baa.js';
import { F as FetchData } from './page-a0c691b6.js';
import { p as public_env } from './shared-server-58a5f352.js';
import fs from 'fs-extra';
import 'axios';
import './tool-153dc604.js';
import 'marked';
import './helpers-1d8653cf.js';
async function load({ params, route, url, parent }) {
let monitors = JSON.parse(fs.readFileSync(public_env.PUBLIC_KENER_FOLDER + "/monitors.json", "utf8"));
const parentData = await parent();
const siteData = parentData.site;
const github = siteData.github;
const monitorsActive = [];
for (let i = 0; i < monitors.length; i++) {
if (monitors[i].hidden !== void 0 && monitors[i].hidden === true) {
continue;
}
if (monitors[i].category !== void 0 && monitors[i].category !== "home") {
continue;
}
const gitHubActiveIssues = await GetIncidents(monitors[i].tag, github, "open");
delete monitors[i].api;
delete monitors[i].defaultStatus;
let data = await FetchData(monitors[i], parentData.localTz);
monitors[i].pageData = data;
monitors[i].activeIncidents = await Promise.all(gitHubActiveIssues.map(Mapper, { github }));
monitorsActive.push(monitors[i]);
}
return {
monitors: monitorsActive
};
}
var _page_server = /*#__PURE__*/Object.freeze({
__proto__: null,
load: load
});
const index = 2;
let component_cache;
const component = async () => component_cache ??= (await import('./_page.svelte-13ee4dfa.js')).default;
const server_id = "src/routes/+page.server.js";
const imports = ["_app/immutable/nodes/2.eaa4e4ff.js","_app/immutable/chunks/scheduler.3b52f240.js","_app/immutable/chunks/index.e0f9dde7.js","_app/immutable/chunks/Icon.55f18d08.js","_app/immutable/chunks/index.df550c81.js","_app/immutable/chunks/monitor.e757fb2a.js","_app/immutable/chunks/moment.0e609d86.js","_app/immutable/chunks/index.b64cf02a.js","_app/immutable/chunks/card-content.2099a051.js","_app/immutable/chunks/incident.4012875f.js","_app/immutable/chunks/chevron-down.2e6263fc.js"];
const stylesheets = ["_app/immutable/assets/monitor.f0f362d5.css"];
const fonts = [];
export { component, fonts, imports, index, _page_server as server, server_id, stylesheets };
//# sourceMappingURL=2-13c23320.js.map
-1
View File
@@ -1 +0,0 @@
{"version":3,"file":"2-13c23320.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/_page.server.js","../../../.svelte-kit/adapter-node/nodes/2.js"],"sourcesContent":["import { e as GetIncidents, M as Mapper } from \"../../chunks/github.js\";\nimport { F as FetchData } from \"../../chunks/page.js\";\nimport { p as public_env } from \"../../chunks/shared-server.js\";\nimport fs from \"fs-extra\";\nasync function load({ params, route, url, parent }) {\n let monitors = JSON.parse(fs.readFileSync(public_env.PUBLIC_KENER_FOLDER + \"/monitors.json\", \"utf8\"));\n const parentData = await parent();\n const siteData = parentData.site;\n const github = siteData.github;\n const monitorsActive = [];\n for (let i = 0; i < monitors.length; i++) {\n if (monitors[i].hidden !== void 0 && monitors[i].hidden === true) {\n continue;\n }\n if (monitors[i].category !== void 0 && monitors[i].category !== \"home\") {\n continue;\n }\n const gitHubActiveIssues = await GetIncidents(monitors[i].tag, github, \"open\");\n delete monitors[i].api;\n delete monitors[i].defaultStatus;\n let data = await FetchData(monitors[i], parentData.localTz);\n monitors[i].pageData = data;\n monitors[i].activeIncidents = await Promise.all(gitHubActiveIssues.map(Mapper, { github }));\n monitorsActive.push(monitors[i]);\n }\n return {\n monitors: monitorsActive\n };\n}\nexport {\n load\n};\n","import * as server from '../entries/pages/_page.server.js';\n\nexport const index = 2;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/_page.svelte.js')).default;\nexport { server };\nexport const server_id = \"src/routes/+page.server.js\";\nexport const imports = [\"_app/immutable/nodes/2.eaa4e4ff.js\",\"_app/immutable/chunks/scheduler.3b52f240.js\",\"_app/immutable/chunks/index.e0f9dde7.js\",\"_app/immutable/chunks/Icon.55f18d08.js\",\"_app/immutable/chunks/index.df550c81.js\",\"_app/immutable/chunks/monitor.e757fb2a.js\",\"_app/immutable/chunks/moment.0e609d86.js\",\"_app/immutable/chunks/index.b64cf02a.js\",\"_app/immutable/chunks/card-content.2099a051.js\",\"_app/immutable/chunks/incident.4012875f.js\",\"_app/immutable/chunks/chevron-down.2e6263fc.js\"];\nexport const stylesheets = [\"_app/immutable/assets/monitor.f0f362d5.css\"];\nexport const fonts = [];\n"],"names":[],"mappings":";;;;;;;;;AAIA,eAAe,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE;AACpD,EAAE,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,mBAAmB,GAAG,gBAAgB,EAAE,MAAM,CAAC,CAAC,CAAC;AACxG,EAAE,MAAM,UAAU,GAAG,MAAM,MAAM,EAAE,CAAC;AACpC,EAAE,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC;AACnC,EAAE,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;AACjC,EAAE,MAAM,cAAc,GAAG,EAAE,CAAC;AAC5B,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC5C,IAAI,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,EAAE;AACtE,MAAM,SAAS;AACf,KAAK;AACL,IAAI,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,KAAK,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,EAAE;AAC5E,MAAM,SAAS;AACf,KAAK;AACL,IAAI,MAAM,kBAAkB,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AACnF,IAAI,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AAC3B,IAAI,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;AACrC,IAAI,IAAI,IAAI,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;AAChE,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC;AAChC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,eAAe,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;AAChG,IAAI,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AACrC,GAAG;AACH,EAAE,OAAO;AACT,IAAI,QAAQ,EAAE,cAAc;AAC5B,GAAG,CAAC;AACJ;;;;;;;AC1BY,MAAC,KAAK,GAAG,EAAE;AACvB,IAAI,eAAe,CAAC;AACR,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAAkC,CAAC,EAAE,QAAQ;AAExG,MAAC,SAAS,GAAG,6BAA6B;AAC1C,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,6CAA6C,CAAC,yCAAyC,CAAC,wCAAwC,CAAC,yCAAyC,CAAC,2CAA2C,CAAC,0CAA0C,CAAC,yCAAyC,CAAC,gDAAgD,CAAC,4CAA4C,CAAC,gDAAgD,EAAE;AAC7e,MAAC,WAAW,GAAG,CAAC,4CAA4C,EAAE;AAC9D,MAAC,KAAK,GAAG;;;;"}
-50
View File
@@ -1,50 +0,0 @@
import { G as GetIncidents, M as Mapper } from './github-54c09baa.js';
import { F as FetchData } from './page-a0c691b6.js';
import { p as public_env } from './shared-server-58a5f352.js';
import fs from 'fs-extra';
import 'axios';
import './tool-153dc604.js';
import 'marked';
import './helpers-1d8653cf.js';
async function load({ params, route, url, parent }) {
let monitors = JSON.parse(fs.readFileSync(public_env.PUBLIC_KENER_FOLDER + "/monitors.json", "utf8"));
const parentData = await parent();
const siteData = parentData.site;
const github = siteData.github;
const monitorsActive = [];
for (let i = 0; i < monitors.length; i++) {
if (monitors[i].hidden !== void 0 && monitors[i].hidden === true) {
continue;
}
if (monitors[i].category === void 0 || monitors[i].category !== params.category) {
continue;
}
const gitHubActiveIssues = await GetIncidents(monitors[i].tag, github, "open");
delete monitors[i].api;
delete monitors[i].defaultStatus;
let data = await FetchData(monitors[i], parentData.localTz);
monitors[i].pageData = data;
monitors[i].activeIncidents = await Promise.all(gitHubActiveIssues.map(Mapper, { github }));
monitorsActive.push(monitors[i]);
}
return {
monitors: monitorsActive
};
}
var _page_server = /*#__PURE__*/Object.freeze({
__proto__: null,
load: load
});
const index = 3;
let component_cache;
const component = async () => component_cache ??= (await import('./_page.svelte-4b22fd47.js')).default;
const server_id = "src/routes/category-[category]/+page.server.js";
const imports = ["_app/immutable/nodes/3.dcb3a8cd.js","_app/immutable/chunks/scheduler.3b52f240.js","_app/immutable/chunks/index.e0f9dde7.js","_app/immutable/chunks/Icon.55f18d08.js","_app/immutable/chunks/index.df550c81.js","_app/immutable/chunks/monitor.e757fb2a.js","_app/immutable/chunks/moment.0e609d86.js","_app/immutable/chunks/index.b64cf02a.js","_app/immutable/chunks/card-content.2099a051.js","_app/immutable/chunks/incident.4012875f.js","_app/immutable/chunks/chevron-down.2e6263fc.js","_app/immutable/chunks/stores.85fa8f06.js","_app/immutable/chunks/singletons.4e6d7679.js","_app/immutable/chunks/paths.2362653e.js"];
const stylesheets = ["_app/immutable/assets/monitor.f0f362d5.css"];
const fonts = [];
export { component, fonts, imports, index, _page_server as server, server_id, stylesheets };
//# sourceMappingURL=3-4d2961d4.js.map
-1
View File
@@ -1 +0,0 @@
{"version":3,"file":"3-4d2961d4.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/category-_category_/_page.server.js","../../../.svelte-kit/adapter-node/nodes/3.js"],"sourcesContent":["import { e as GetIncidents, M as Mapper } from \"../../../chunks/github.js\";\nimport { F as FetchData } from \"../../../chunks/page.js\";\nimport { p as public_env } from \"../../../chunks/shared-server.js\";\nimport fs from \"fs-extra\";\nasync function load({ params, route, url, parent }) {\n let monitors = JSON.parse(fs.readFileSync(public_env.PUBLIC_KENER_FOLDER + \"/monitors.json\", \"utf8\"));\n const parentData = await parent();\n const siteData = parentData.site;\n const github = siteData.github;\n const monitorsActive = [];\n for (let i = 0; i < monitors.length; i++) {\n if (monitors[i].hidden !== void 0 && monitors[i].hidden === true) {\n continue;\n }\n if (monitors[i].category === void 0 || monitors[i].category !== params.category) {\n continue;\n }\n const gitHubActiveIssues = await GetIncidents(monitors[i].tag, github, \"open\");\n delete monitors[i].api;\n delete monitors[i].defaultStatus;\n let data = await FetchData(monitors[i], parentData.localTz);\n monitors[i].pageData = data;\n monitors[i].activeIncidents = await Promise.all(gitHubActiveIssues.map(Mapper, { github }));\n monitorsActive.push(monitors[i]);\n }\n return {\n monitors: monitorsActive\n };\n}\nexport {\n load\n};\n","import * as server from '../entries/pages/category-_category_/_page.server.js';\n\nexport const index = 3;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/category-_category_/_page.svelte.js')).default;\nexport { server };\nexport const server_id = \"src/routes/category-[category]/+page.server.js\";\nexport const imports = [\"_app/immutable/nodes/3.dcb3a8cd.js\",\"_app/immutable/chunks/scheduler.3b52f240.js\",\"_app/immutable/chunks/index.e0f9dde7.js\",\"_app/immutable/chunks/Icon.55f18d08.js\",\"_app/immutable/chunks/index.df550c81.js\",\"_app/immutable/chunks/monitor.e757fb2a.js\",\"_app/immutable/chunks/moment.0e609d86.js\",\"_app/immutable/chunks/index.b64cf02a.js\",\"_app/immutable/chunks/card-content.2099a051.js\",\"_app/immutable/chunks/incident.4012875f.js\",\"_app/immutable/chunks/chevron-down.2e6263fc.js\",\"_app/immutable/chunks/stores.85fa8f06.js\",\"_app/immutable/chunks/singletons.4e6d7679.js\",\"_app/immutable/chunks/paths.2362653e.js\"];\nexport const stylesheets = [\"_app/immutable/assets/monitor.f0f362d5.css\"];\nexport const fonts = [];\n"],"names":[],"mappings":";;;;;;;;;AAIA,eAAe,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE;AACpD,EAAE,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,mBAAmB,GAAG,gBAAgB,EAAE,MAAM,CAAC,CAAC,CAAC;AACxG,EAAE,MAAM,UAAU,GAAG,MAAM,MAAM,EAAE,CAAC;AACpC,EAAE,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC;AACnC,EAAE,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;AACjC,EAAE,MAAM,cAAc,GAAG,EAAE,CAAC;AAC5B,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC5C,IAAI,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,EAAE;AACtE,MAAM,SAAS;AACf,KAAK;AACL,IAAI,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,KAAK,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,EAAE;AACrF,MAAM,SAAS;AACf,KAAK;AACL,IAAI,MAAM,kBAAkB,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AACnF,IAAI,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AAC3B,IAAI,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;AACrC,IAAI,IAAI,IAAI,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;AAChE,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC;AAChC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,eAAe,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;AAChG,IAAI,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AACrC,GAAG;AACH,EAAE,OAAO;AACT,IAAI,QAAQ,EAAE,cAAc;AAC5B,GAAG,CAAC;AACJ;;;;;;;AC1BY,MAAC,KAAK,GAAG,EAAE;AACvB,IAAI,eAAe,CAAC;AACR,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAAsD,CAAC,EAAE,QAAQ;AAE5H,MAAC,SAAS,GAAG,iDAAiD;AAC9D,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,6CAA6C,CAAC,yCAAyC,CAAC,wCAAwC,CAAC,yCAAyC,CAAC,2CAA2C,CAAC,0CAA0C,CAAC,yCAAyC,CAAC,gDAAgD,CAAC,4CAA4C,CAAC,gDAAgD,CAAC,0CAA0C,CAAC,8CAA8C,CAAC,yCAAyC,EAAE;AACjnB,MAAC,WAAW,GAAG,CAAC,4CAA4C,EAAE;AAC9D,MAAC,KAAK,GAAG;;;;"}
-24
View File
@@ -1,24 +0,0 @@
import axios from 'axios';
async function load({ params, route, url, parent }) {
const { data } = await axios.get("https://raw.githubusercontent.com/rajnandan1/kener/main/docs.md");
return {
md: data
};
}
var _page_server = /*#__PURE__*/Object.freeze({
__proto__: null,
load: load
});
const index = 4;
let component_cache;
const component = async () => component_cache ??= (await import('./_page.svelte-f53fe0c3.js')).default;
const server_id = "src/routes/docs/+page.server.js";
const imports = ["_app/immutable/nodes/4.95cd5d6a.js","_app/immutable/chunks/scheduler.3b52f240.js","_app/immutable/chunks/index.e0f9dde7.js","_app/immutable/chunks/globals.7f7f1b26.js","_app/immutable/chunks/Icon.55f18d08.js","_app/immutable/chunks/index.df550c81.js","_app/immutable/chunks/card-content.2099a051.js","_app/immutable/chunks/chevron-down.2e6263fc.js"];
const stylesheets = [];
const fonts = [];
export { component, fonts, imports, index, _page_server as server, server_id, stylesheets };
//# sourceMappingURL=4-632bbfea.js.map
-1
View File
@@ -1 +0,0 @@
{"version":3,"file":"4-632bbfea.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/docs/_page.server.js","../../../.svelte-kit/adapter-node/nodes/4.js"],"sourcesContent":["import axios from \"axios\";\nasync function load({ params, route, url, parent }) {\n const { data } = await axios.get(\"https://raw.githubusercontent.com/rajnandan1/kener/main/docs.md\");\n return {\n md: data\n };\n}\nexport {\n load\n};\n","import * as server from '../entries/pages/docs/_page.server.js';\n\nexport const index = 4;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/docs/_page.svelte.js')).default;\nexport { server };\nexport const server_id = \"src/routes/docs/+page.server.js\";\nexport const imports = [\"_app/immutable/nodes/4.95cd5d6a.js\",\"_app/immutable/chunks/scheduler.3b52f240.js\",\"_app/immutable/chunks/index.e0f9dde7.js\",\"_app/immutable/chunks/globals.7f7f1b26.js\",\"_app/immutable/chunks/Icon.55f18d08.js\",\"_app/immutable/chunks/index.df550c81.js\",\"_app/immutable/chunks/card-content.2099a051.js\",\"_app/immutable/chunks/chevron-down.2e6263fc.js\"];\nexport const stylesheets = [];\nexport const fonts = [];\n"],"names":[],"mappings":";;AACA,eAAe,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE;AACpD,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,iEAAiE,CAAC,CAAC;AACtG,EAAE,OAAO;AACT,IAAI,EAAE,EAAE,IAAI;AACZ,GAAG,CAAC;AACJ;;;;;;;ACJY,MAAC,KAAK,GAAG,EAAE;AACvB,IAAI,eAAe,CAAC;AACR,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAAuC,CAAC,EAAE,QAAQ;AAE7G,MAAC,SAAS,GAAG,kCAAkC;AAC/C,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,6CAA6C,CAAC,yCAAyC,CAAC,2CAA2C,CAAC,wCAAwC,CAAC,yCAAyC,CAAC,gDAAgD,CAAC,gDAAgD,EAAE;AAC3W,MAAC,WAAW,GAAG,GAAG;AAClB,MAAC,KAAK,GAAG;;;;"}
-47
View File
@@ -1,47 +0,0 @@
import './github-54c09baa.js';
import { F as FetchData } from './page-a0c691b6.js';
import { p as public_env } from './shared-server-58a5f352.js';
import fs from 'fs-extra';
import 'axios';
import './tool-153dc604.js';
import 'marked';
import './helpers-1d8653cf.js';
async function load({ params, route, url, parent }) {
let monitors = JSON.parse(fs.readFileSync(public_env.PUBLIC_KENER_FOLDER + "/monitors.json", "utf8"));
const parentData = await parent();
const monitorsActive = [];
const query = url.searchParams;
const theme = query.get("theme");
for (let i = 0; i < monitors.length; i++) {
if (monitors[i].tag !== params.tag) {
continue;
}
delete monitors[i].api;
delete monitors[i].defaultStatus;
monitors[i].embed = true;
let data = await FetchData(monitors[i], parentData.localTz);
monitors[i].pageData = data;
monitorsActive.push(monitors[i]);
}
return {
monitors: monitorsActive,
theme
};
}
var _page_server = /*#__PURE__*/Object.freeze({
__proto__: null,
load: load
});
const index = 5;
let component_cache;
const component = async () => component_cache ??= (await import('./_page.svelte-46e00a0d.js')).default;
const server_id = "src/routes/embed-[tag]/+page.server.js";
const imports = ["_app/immutable/nodes/5.0494d66c.js","_app/immutable/chunks/scheduler.3b52f240.js","_app/immutable/chunks/index.e0f9dde7.js","_app/immutable/chunks/Icon.55f18d08.js","_app/immutable/chunks/index.df550c81.js","_app/immutable/chunks/monitor.e757fb2a.js","_app/immutable/chunks/moment.0e609d86.js","_app/immutable/chunks/index.b64cf02a.js","_app/immutable/chunks/card-content.2099a051.js","_app/immutable/chunks/stores.85fa8f06.js","_app/immutable/chunks/singletons.4e6d7679.js","_app/immutable/chunks/paths.2362653e.js"];
const stylesheets = ["_app/immutable/assets/monitor.f0f362d5.css"];
const fonts = [];
export { component, fonts, imports, index, _page_server as server, server_id, stylesheets };
//# sourceMappingURL=5-562ac797.js.map
-1
View File
@@ -1 +0,0 @@
{"version":3,"file":"5-562ac797.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/embed-_tag_/_page.server.js","../../../.svelte-kit/adapter-node/nodes/5.js"],"sourcesContent":["import \"../../../chunks/github.js\";\nimport { F as FetchData } from \"../../../chunks/page.js\";\nimport { p as public_env } from \"../../../chunks/shared-server.js\";\nimport fs from \"fs-extra\";\nasync function load({ params, route, url, parent }) {\n let monitors = JSON.parse(fs.readFileSync(public_env.PUBLIC_KENER_FOLDER + \"/monitors.json\", \"utf8\"));\n const parentData = await parent();\n const monitorsActive = [];\n const query = url.searchParams;\n const theme = query.get(\"theme\");\n for (let i = 0; i < monitors.length; i++) {\n if (monitors[i].tag !== params.tag) {\n continue;\n }\n delete monitors[i].api;\n delete monitors[i].defaultStatus;\n monitors[i].embed = true;\n let data = await FetchData(monitors[i], parentData.localTz);\n monitors[i].pageData = data;\n monitorsActive.push(monitors[i]);\n }\n return {\n monitors: monitorsActive,\n theme\n };\n}\nexport {\n load\n};\n","import * as server from '../entries/pages/embed-_tag_/_page.server.js';\n\nexport const index = 5;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/embed-_tag_/_page.svelte.js')).default;\nexport { server };\nexport const server_id = \"src/routes/embed-[tag]/+page.server.js\";\nexport const imports = [\"_app/immutable/nodes/5.0494d66c.js\",\"_app/immutable/chunks/scheduler.3b52f240.js\",\"_app/immutable/chunks/index.e0f9dde7.js\",\"_app/immutable/chunks/Icon.55f18d08.js\",\"_app/immutable/chunks/index.df550c81.js\",\"_app/immutable/chunks/monitor.e757fb2a.js\",\"_app/immutable/chunks/moment.0e609d86.js\",\"_app/immutable/chunks/index.b64cf02a.js\",\"_app/immutable/chunks/card-content.2099a051.js\",\"_app/immutable/chunks/stores.85fa8f06.js\",\"_app/immutable/chunks/singletons.4e6d7679.js\",\"_app/immutable/chunks/paths.2362653e.js\"];\nexport const stylesheets = [\"_app/immutable/assets/monitor.f0f362d5.css\"];\nexport const fonts = [];\n"],"names":[],"mappings":";;;;;;;;;AAIA,eAAe,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE;AACpD,EAAE,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,mBAAmB,GAAG,gBAAgB,EAAE,MAAM,CAAC,CAAC,CAAC;AACxG,EAAE,MAAM,UAAU,GAAG,MAAM,MAAM,EAAE,CAAC;AACpC,EAAE,MAAM,cAAc,GAAG,EAAE,CAAC;AAC5B,EAAE,MAAM,KAAK,GAAG,GAAG,CAAC,YAAY,CAAC;AACjC,EAAE,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AACnC,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC5C,IAAI,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,MAAM,CAAC,GAAG,EAAE;AACxC,MAAM,SAAS;AACf,KAAK;AACL,IAAI,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AAC3B,IAAI,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;AACrC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC;AAC7B,IAAI,IAAI,IAAI,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;AAChE,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC;AAChC,IAAI,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AACrC,GAAG;AACH,EAAE,OAAO;AACT,IAAI,QAAQ,EAAE,cAAc;AAC5B,IAAI,KAAK;AACT,GAAG,CAAC;AACJ;;;;;;;ACvBY,MAAC,KAAK,GAAG,EAAE;AACvB,IAAI,eAAe,CAAC;AACR,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAA8C,CAAC,EAAE,QAAQ;AAEpH,MAAC,SAAS,GAAG,yCAAyC;AACtD,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,6CAA6C,CAAC,yCAAyC,CAAC,wCAAwC,CAAC,yCAAyC,CAAC,2CAA2C,CAAC,0CAA0C,CAAC,yCAAyC,CAAC,gDAAgD,CAAC,0CAA0C,CAAC,8CAA8C,CAAC,yCAAyC,EAAE;AACnhB,MAAC,WAAW,GAAG,CAAC,4CAA4C,EAAE;AAC9D,MAAC,KAAK,GAAG;;;;"}
-43
View File
@@ -1,43 +0,0 @@
import { p as public_env } from './shared-server-58a5f352.js';
import { G as GetIncidents, M as Mapper } from './github-54c09baa.js';
import fs from 'fs-extra';
import 'axios';
import './tool-153dc604.js';
import 'marked';
async function load({ params, route, url, parent }) {
let monitors = JSON.parse(fs.readFileSync(public_env.PUBLIC_KENER_FOLDER + "/monitors.json", "utf8"));
const siteData = await parent();
const github = siteData.site.github;
const { description, name, tag, image } = monitors.find((monitor) => monitor.folderName === params.id);
const allIncidents = await GetIncidents(tag, github, "all");
const gitHubActiveIssues = allIncidents.filter((issue) => {
return issue.state === "open";
});
const gitHubPastIssues = allIncidents.filter((issue) => {
return issue.state === "closed";
});
return {
issues: params.id,
githubConfig: github,
monitor: { description, name, image },
activeIncidents: await Promise.all(gitHubActiveIssues.map(Mapper, { github })),
pastIncidents: await Promise.all(gitHubPastIssues.map(Mapper, { github }))
};
}
var _page_server = /*#__PURE__*/Object.freeze({
__proto__: null,
load: load
});
const index = 6;
let component_cache;
const component = async () => component_cache ??= (await import('./_page.svelte-6a500acb.js')).default;
const server_id = "src/routes/incident/[id]/+page.server.js";
const imports = ["_app/immutable/nodes/6.2ba41b0c.js","_app/immutable/chunks/scheduler.3b52f240.js","_app/immutable/chunks/index.e0f9dde7.js","_app/immutable/chunks/Icon.55f18d08.js","_app/immutable/chunks/index.df550c81.js","_app/immutable/chunks/incident.4012875f.js","_app/immutable/chunks/card-content.2099a051.js","_app/immutable/chunks/moment.0e609d86.js","_app/immutable/chunks/index.b64cf02a.js","_app/immutable/chunks/chevron-down.2e6263fc.js"];
const stylesheets = [];
const fonts = [];
export { component, fonts, imports, index, _page_server as server, server_id, stylesheets };
//# sourceMappingURL=6-0c17f47d.js.map
-1
View File
@@ -1 +0,0 @@
{"version":3,"file":"6-0c17f47d.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/incident/_id_/_page.server.js","../../../.svelte-kit/adapter-node/nodes/6.js"],"sourcesContent":["import { p as public_env } from \"../../../../chunks/shared-server.js\";\nimport { e as GetIncidents, M as Mapper } from \"../../../../chunks/github.js\";\nimport fs from \"fs-extra\";\nasync function load({ params, route, url, parent }) {\n let monitors = JSON.parse(fs.readFileSync(public_env.PUBLIC_KENER_FOLDER + \"/monitors.json\", \"utf8\"));\n const siteData = await parent();\n const github = siteData.site.github;\n const { description, name, tag, image } = monitors.find((monitor) => monitor.folderName === params.id);\n const allIncidents = await GetIncidents(tag, github, \"all\");\n const gitHubActiveIssues = allIncidents.filter((issue) => {\n return issue.state === \"open\";\n });\n const gitHubPastIssues = allIncidents.filter((issue) => {\n return issue.state === \"closed\";\n });\n return {\n issues: params.id,\n githubConfig: github,\n monitor: { description, name, image },\n activeIncidents: await Promise.all(gitHubActiveIssues.map(Mapper, { github })),\n pastIncidents: await Promise.all(gitHubPastIssues.map(Mapper, { github }))\n };\n}\nexport {\n load\n};\n","import * as server from '../entries/pages/incident/_id_/_page.server.js';\n\nexport const index = 6;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/incident/_id_/_page.svelte.js')).default;\nexport { server };\nexport const server_id = \"src/routes/incident/[id]/+page.server.js\";\nexport const imports = [\"_app/immutable/nodes/6.2ba41b0c.js\",\"_app/immutable/chunks/scheduler.3b52f240.js\",\"_app/immutable/chunks/index.e0f9dde7.js\",\"_app/immutable/chunks/Icon.55f18d08.js\",\"_app/immutable/chunks/index.df550c81.js\",\"_app/immutable/chunks/incident.4012875f.js\",\"_app/immutable/chunks/card-content.2099a051.js\",\"_app/immutable/chunks/moment.0e609d86.js\",\"_app/immutable/chunks/index.b64cf02a.js\",\"_app/immutable/chunks/chevron-down.2e6263fc.js\"];\nexport const stylesheets = [];\nexport const fonts = [];\n"],"names":[],"mappings":";;;;;;;AAGA,eAAe,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE;AACpD,EAAE,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,mBAAmB,GAAG,gBAAgB,EAAE,MAAM,CAAC,CAAC,CAAC;AACxG,EAAE,MAAM,QAAQ,GAAG,MAAM,MAAM,EAAE,CAAC;AAClC,EAAE,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;AACtC,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,UAAU,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC;AACzG,EAAE,MAAM,YAAY,GAAG,MAAM,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;AAC9D,EAAE,MAAM,kBAAkB,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK;AAC5D,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,MAAM,CAAC;AAClC,GAAG,CAAC,CAAC;AACL,EAAE,MAAM,gBAAgB,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK;AAC1D,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC;AACpC,GAAG,CAAC,CAAC;AACL,EAAE,OAAO;AACT,IAAI,MAAM,EAAE,MAAM,CAAC,EAAE;AACrB,IAAI,YAAY,EAAE,MAAM;AACxB,IAAI,OAAO,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE;AACzC,IAAI,eAAe,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;AAClF,IAAI,aAAa,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;AAC9E,GAAG,CAAC;AACJ;;;;;;;ACpBY,MAAC,KAAK,GAAG,EAAE;AACvB,IAAI,eAAe,CAAC;AACR,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAAgD,CAAC,EAAE,QAAQ;AAEtH,MAAC,SAAS,GAAG,2CAA2C;AACxD,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,6CAA6C,CAAC,yCAAyC,CAAC,wCAAwC,CAAC,yCAAyC,CAAC,4CAA4C,CAAC,gDAAgD,CAAC,0CAA0C,CAAC,yCAAyC,CAAC,gDAAgD,EAAE;AACjc,MAAC,WAAW,GAAG,GAAG;AAClB,MAAC,KAAK,GAAG;;;;"}
-47
View File
@@ -1,47 +0,0 @@
import { G as GetIncidents, M as Mapper } from './github-54c09baa.js';
import { F as FetchData } from './page-a0c691b6.js';
import { p as public_env } from './shared-server-58a5f352.js';
import fs from 'fs-extra';
import 'axios';
import './tool-153dc604.js';
import 'marked';
import './helpers-1d8653cf.js';
async function load({ params, route, url, parent }) {
let monitors = JSON.parse(fs.readFileSync(public_env.PUBLIC_KENER_FOLDER + "/monitors.json", "utf8"));
const parentData = await parent();
const siteData = parentData.site;
const github = siteData.github;
const monitorsActive = [];
for (let i = 0; i < monitors.length; i++) {
if (monitors[i].tag !== params.tag) {
continue;
}
const gitHubActiveIssues = await GetIncidents(monitors[i].tag, github, "open");
delete monitors[i].api;
delete monitors[i].defaultStatus;
let data = await FetchData(monitors[i], parentData.localTz);
monitors[i].pageData = data;
monitors[i].activeIncidents = await Promise.all(gitHubActiveIssues.map(Mapper, { github }));
monitorsActive.push(monitors[i]);
}
return {
monitors: monitorsActive
};
}
var _page_server = /*#__PURE__*/Object.freeze({
__proto__: null,
load: load
});
const index = 7;
let component_cache;
const component = async () => component_cache ??= (await import('./_page.svelte-073e2dc3.js')).default;
const server_id = "src/routes/monitor-[tag]/+page.server.js";
const imports = ["_app/immutable/nodes/7.9adfa9ae.js","_app/immutable/chunks/scheduler.3b52f240.js","_app/immutable/chunks/index.e0f9dde7.js","_app/immutable/chunks/Icon.55f18d08.js","_app/immutable/chunks/index.df550c81.js","_app/immutable/chunks/monitor.e757fb2a.js","_app/immutable/chunks/moment.0e609d86.js","_app/immutable/chunks/index.b64cf02a.js","_app/immutable/chunks/card-content.2099a051.js","_app/immutable/chunks/incident.4012875f.js","_app/immutable/chunks/chevron-down.2e6263fc.js","_app/immutable/chunks/paths.2362653e.js"];
const stylesheets = ["_app/immutable/assets/monitor.f0f362d5.css"];
const fonts = [];
export { component, fonts, imports, index, _page_server as server, server_id, stylesheets };
//# sourceMappingURL=7-3d870cd6.js.map
-1
View File
@@ -1 +0,0 @@
{"version":3,"file":"7-3d870cd6.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/monitor-_tag_/_page.server.js","../../../.svelte-kit/adapter-node/nodes/7.js"],"sourcesContent":["import { e as GetIncidents, M as Mapper } from \"../../../chunks/github.js\";\nimport { F as FetchData } from \"../../../chunks/page.js\";\nimport { p as public_env } from \"../../../chunks/shared-server.js\";\nimport fs from \"fs-extra\";\nasync function load({ params, route, url, parent }) {\n let monitors = JSON.parse(fs.readFileSync(public_env.PUBLIC_KENER_FOLDER + \"/monitors.json\", \"utf8\"));\n const parentData = await parent();\n const siteData = parentData.site;\n const github = siteData.github;\n const monitorsActive = [];\n for (let i = 0; i < monitors.length; i++) {\n if (monitors[i].tag !== params.tag) {\n continue;\n }\n const gitHubActiveIssues = await GetIncidents(monitors[i].tag, github, \"open\");\n delete monitors[i].api;\n delete monitors[i].defaultStatus;\n let data = await FetchData(monitors[i], parentData.localTz);\n monitors[i].pageData = data;\n monitors[i].activeIncidents = await Promise.all(gitHubActiveIssues.map(Mapper, { github }));\n monitorsActive.push(monitors[i]);\n }\n return {\n monitors: monitorsActive\n };\n}\nexport {\n load\n};\n","import * as server from '../entries/pages/monitor-_tag_/_page.server.js';\n\nexport const index = 7;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/monitor-_tag_/_page.svelte.js')).default;\nexport { server };\nexport const server_id = \"src/routes/monitor-[tag]/+page.server.js\";\nexport const imports = [\"_app/immutable/nodes/7.9adfa9ae.js\",\"_app/immutable/chunks/scheduler.3b52f240.js\",\"_app/immutable/chunks/index.e0f9dde7.js\",\"_app/immutable/chunks/Icon.55f18d08.js\",\"_app/immutable/chunks/index.df550c81.js\",\"_app/immutable/chunks/monitor.e757fb2a.js\",\"_app/immutable/chunks/moment.0e609d86.js\",\"_app/immutable/chunks/index.b64cf02a.js\",\"_app/immutable/chunks/card-content.2099a051.js\",\"_app/immutable/chunks/incident.4012875f.js\",\"_app/immutable/chunks/chevron-down.2e6263fc.js\",\"_app/immutable/chunks/paths.2362653e.js\"];\nexport const stylesheets = [\"_app/immutable/assets/monitor.f0f362d5.css\"];\nexport const fonts = [];\n"],"names":[],"mappings":";;;;;;;;;AAIA,eAAe,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE;AACpD,EAAE,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,mBAAmB,GAAG,gBAAgB,EAAE,MAAM,CAAC,CAAC,CAAC;AACxG,EAAE,MAAM,UAAU,GAAG,MAAM,MAAM,EAAE,CAAC;AACpC,EAAE,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC;AACnC,EAAE,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;AACjC,EAAE,MAAM,cAAc,GAAG,EAAE,CAAC;AAC5B,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC5C,IAAI,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,MAAM,CAAC,GAAG,EAAE;AACxC,MAAM,SAAS;AACf,KAAK;AACL,IAAI,MAAM,kBAAkB,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AACnF,IAAI,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AAC3B,IAAI,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;AACrC,IAAI,IAAI,IAAI,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;AAChE,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC;AAChC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,eAAe,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;AAChG,IAAI,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AACrC,GAAG;AACH,EAAE,OAAO;AACT,IAAI,QAAQ,EAAE,cAAc;AAC5B,GAAG,CAAC;AACJ;;;;;;;ACvBY,MAAC,KAAK,GAAG,EAAE;AACvB,IAAI,eAAe,CAAC;AACR,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAAgD,CAAC,EAAE,QAAQ;AAEtH,MAAC,SAAS,GAAG,2CAA2C;AACxD,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,6CAA6C,CAAC,yCAAyC,CAAC,wCAAwC,CAAC,yCAAyC,CAAC,2CAA2C,CAAC,0CAA0C,CAAC,yCAAyC,CAAC,gDAAgD,CAAC,4CAA4C,CAAC,gDAAgD,CAAC,yCAAyC,EAAE;AACvhB,MAAC,WAAW,GAAG,CAAC,4CAA4C,EAAE;AAC9D,MAAC,KAAK,GAAG;;;;"}
File diff suppressed because it is too large Load Diff
File diff suppressed because one or more lines are too long
@@ -1,444 +0,0 @@
import { c as create_ssr_component, v as validate_component, e as escape, a as each, b as add_attribute, d as compute_rest_props, f as subscribe, g as spread, h as escape_attribute_value, i as escape_object } from './ssr-3edfa391.js';
import { B as Button } from './index3-f40f43ed.js';
import { c as cn, s as setCtx$3, g as getCtx$2, a as createDispatcher, b as getAttrs$4, d as disabledAttrs, i as is_void, e as setGroupCtx, f as getContent, I as Icon$1, h as flyAndScale } from './Icon-8f6a4a04.js';
import { d as derived } from './index2-c5c18f89.js';
import 'clsx';
import 'tailwind-variants';
import 'tailwind-merge';
const DropdownMenu = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let $idValues, $$unsubscribe_idValues;
let { closeOnOutsideClick = void 0 } = $$props;
let { closeOnEscape = void 0 } = $$props;
let { portal = void 0 } = $$props;
let { forceVisible = void 0 } = $$props;
let { open = void 0 } = $$props;
let { onOpenChange = void 0 } = $$props;
let { preventScroll = void 0 } = $$props;
let { arrowSize = void 0 } = $$props;
let { positioning = void 0 } = $$props;
let { loop = void 0 } = $$props;
let { dir = void 0 } = $$props;
let { typeahead = void 0 } = $$props;
let { closeFocus = void 0 } = $$props;
let { disableFocusFirstItem = void 0 } = $$props;
const { states: { open: localOpen }, updateOption, ids } = setCtx$3({
closeOnOutsideClick,
closeOnEscape,
portal,
forceVisible,
defaultOpen: open,
preventScroll,
arrowSize,
positioning,
loop,
dir,
typeahead,
closeFocus,
disableFocusFirstItem,
onOpenChange: ({ next }) => {
if (open !== next) {
onOpenChange?.(next);
open = next;
}
return next;
}
});
const idValues = derived([ids.menu, ids.trigger], ([$menuId, $triggerId]) => ({ menu: $menuId, trigger: $triggerId }));
$$unsubscribe_idValues = subscribe(idValues, (value) => $idValues = value);
if ($$props.closeOnOutsideClick === void 0 && $$bindings.closeOnOutsideClick && closeOnOutsideClick !== void 0)
$$bindings.closeOnOutsideClick(closeOnOutsideClick);
if ($$props.closeOnEscape === void 0 && $$bindings.closeOnEscape && closeOnEscape !== void 0)
$$bindings.closeOnEscape(closeOnEscape);
if ($$props.portal === void 0 && $$bindings.portal && portal !== void 0)
$$bindings.portal(portal);
if ($$props.forceVisible === void 0 && $$bindings.forceVisible && forceVisible !== void 0)
$$bindings.forceVisible(forceVisible);
if ($$props.open === void 0 && $$bindings.open && open !== void 0)
$$bindings.open(open);
if ($$props.onOpenChange === void 0 && $$bindings.onOpenChange && onOpenChange !== void 0)
$$bindings.onOpenChange(onOpenChange);
if ($$props.preventScroll === void 0 && $$bindings.preventScroll && preventScroll !== void 0)
$$bindings.preventScroll(preventScroll);
if ($$props.arrowSize === void 0 && $$bindings.arrowSize && arrowSize !== void 0)
$$bindings.arrowSize(arrowSize);
if ($$props.positioning === void 0 && $$bindings.positioning && positioning !== void 0)
$$bindings.positioning(positioning);
if ($$props.loop === void 0 && $$bindings.loop && loop !== void 0)
$$bindings.loop(loop);
if ($$props.dir === void 0 && $$bindings.dir && dir !== void 0)
$$bindings.dir(dir);
if ($$props.typeahead === void 0 && $$bindings.typeahead && typeahead !== void 0)
$$bindings.typeahead(typeahead);
if ($$props.closeFocus === void 0 && $$bindings.closeFocus && closeFocus !== void 0)
$$bindings.closeFocus(closeFocus);
if ($$props.disableFocusFirstItem === void 0 && $$bindings.disableFocusFirstItem && disableFocusFirstItem !== void 0)
$$bindings.disableFocusFirstItem(disableFocusFirstItem);
open !== void 0 && localOpen.set(open);
{
updateOption("closeOnOutsideClick", closeOnOutsideClick);
}
{
updateOption("closeOnEscape", closeOnEscape);
}
{
updateOption("portal", portal);
}
{
updateOption("forceVisible", forceVisible);
}
{
updateOption("preventScroll", preventScroll);
}
{
updateOption("arrowSize", arrowSize);
}
{
updateOption("positioning", positioning);
}
{
updateOption("loop", loop);
}
{
updateOption("dir", dir);
}
{
updateOption("closeFocus", closeFocus);
}
{
updateOption("disableFocusFirstItem", disableFocusFirstItem);
}
{
updateOption("typeahead", typeahead);
}
$$unsubscribe_idValues();
return `${slots.default ? slots.default({ ids: $idValues }) : ``}`;
});
const DropdownMenuItem = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let builder;
let attrs;
let $$restProps = compute_rest_props($$props, ["href", "asChild", "disabled"]);
let $item, $$unsubscribe_item;
let { href = void 0 } = $$props;
let { asChild = false } = $$props;
let { disabled = false } = $$props;
const { elements: { item } } = getCtx$2();
$$unsubscribe_item = subscribe(item, (value) => $item = value);
createDispatcher();
if ($$props.href === void 0 && $$bindings.href && href !== void 0)
$$bindings.href(href);
if ($$props.asChild === void 0 && $$bindings.asChild && asChild !== void 0)
$$bindings.asChild(asChild);
if ($$props.disabled === void 0 && $$bindings.disabled && disabled !== void 0)
$$bindings.disabled(disabled);
builder = $item;
attrs = {
...getAttrs$4("item"),
...disabledAttrs(disabled)
};
$$unsubscribe_item();
return `${asChild ? `${slots.default ? slots.default({ builder, attrs }) : ``}` : `${((tag) => {
return tag ? `<${href ? "a" : "div"}${spread(
[
{ href: escape_attribute_value(href) },
escape_object(builder),
escape_object($$restProps),
escape_object(attrs)
],
{}
)}>${is_void(tag) ? "" : `${slots.default ? slots.default({ builder, attrs }) : ``}`}${is_void(tag) ? "" : `</${tag}>`}` : "";
})(href ? "a" : "div")}`}`;
});
const DropdownMenuGroup = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let builder;
let $$restProps = compute_rest_props($$props, ["asChild"]);
let $group, $$unsubscribe_group;
let { asChild = false } = $$props;
const { group, id } = setGroupCtx();
$$unsubscribe_group = subscribe(group, (value) => $group = value);
const attrs = getAttrs$4("group");
if ($$props.asChild === void 0 && $$bindings.asChild && asChild !== void 0)
$$bindings.asChild(asChild);
builder = $group(id);
$$unsubscribe_group();
return `${asChild ? `${slots.default ? slots.default({ builder, attrs }) : ``}` : `<div${spread([escape_object(builder), escape_object($$restProps), escape_object(attrs)], {})}>${slots.default ? slots.default({ builder, attrs }) : ``}</div>`}`;
});
const DropdownMenuContent = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let builder;
let $$restProps = compute_rest_props($$props, [
"sideOffset",
"transition",
"transitionConfig",
"inTransition",
"inTransitionConfig",
"outTransition",
"outTransitionConfig",
"asChild",
"id"
]);
let $menu, $$unsubscribe_menu;
let $open, $$unsubscribe_open;
let { sideOffset = 5 } = $$props;
let { transition = void 0 } = $$props;
let { transitionConfig = void 0 } = $$props;
let { inTransition = void 0 } = $$props;
let { inTransitionConfig = void 0 } = $$props;
let { outTransition = void 0 } = $$props;
let { outTransitionConfig = void 0 } = $$props;
let { asChild = false } = $$props;
let { id = void 0 } = $$props;
const { elements: { menu }, states: { open }, ids } = getContent(sideOffset);
$$unsubscribe_menu = subscribe(menu, (value) => $menu = value);
$$unsubscribe_open = subscribe(open, (value) => $open = value);
const attrs = getAttrs$4("content");
createDispatcher();
if ($$props.sideOffset === void 0 && $$bindings.sideOffset && sideOffset !== void 0)
$$bindings.sideOffset(sideOffset);
if ($$props.transition === void 0 && $$bindings.transition && transition !== void 0)
$$bindings.transition(transition);
if ($$props.transitionConfig === void 0 && $$bindings.transitionConfig && transitionConfig !== void 0)
$$bindings.transitionConfig(transitionConfig);
if ($$props.inTransition === void 0 && $$bindings.inTransition && inTransition !== void 0)
$$bindings.inTransition(inTransition);
if ($$props.inTransitionConfig === void 0 && $$bindings.inTransitionConfig && inTransitionConfig !== void 0)
$$bindings.inTransitionConfig(inTransitionConfig);
if ($$props.outTransition === void 0 && $$bindings.outTransition && outTransition !== void 0)
$$bindings.outTransition(outTransition);
if ($$props.outTransitionConfig === void 0 && $$bindings.outTransitionConfig && outTransitionConfig !== void 0)
$$bindings.outTransitionConfig(outTransitionConfig);
if ($$props.asChild === void 0 && $$bindings.asChild && asChild !== void 0)
$$bindings.asChild(asChild);
if ($$props.id === void 0 && $$bindings.id && id !== void 0)
$$bindings.id(id);
{
if (id) {
ids.menu.set(id);
}
}
builder = $menu;
$$unsubscribe_menu();
$$unsubscribe_open();
return ` ${asChild && $open ? `${slots.default ? slots.default({ builder, attrs }) : ``}` : `${transition && $open ? `<div${spread([escape_object(builder), escape_object($$restProps), escape_object(attrs)], {})}>${slots.default ? slots.default({ builder, attrs }) : ``}</div>` : `${inTransition && outTransition && $open ? `<div${spread([escape_object(builder), escape_object($$restProps), escape_object(attrs)], {})}>${slots.default ? slots.default({ builder, attrs }) : ``}</div>` : `${inTransition && $open ? `<div${spread(
[
escape_object(builder),
escape_object($$restProps),
escape_object(attrs)
],
{}
)}>${slots.default ? slots.default({ builder, attrs }) : ``}</div>` : `${outTransition && $open ? `<div${spread(
[
escape_object(builder),
escape_object($$restProps),
escape_object(attrs)
],
{}
)}>${slots.default ? slots.default({ builder, attrs }) : ``}</div>` : `${$open ? `<div${spread(
[
escape_object(builder),
escape_object($$restProps),
escape_object(attrs)
],
{}
)}>${slots.default ? slots.default({ builder, attrs }) : ``}</div>` : ``}`}`}`}`}`}`;
});
const DropdownMenuTrigger = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let builder;
let $$restProps = compute_rest_props($$props, ["asChild", "id"]);
let $trigger, $$unsubscribe_trigger;
let { asChild = false } = $$props;
let { id = void 0 } = $$props;
const { elements: { trigger }, ids } = getCtx$2();
$$unsubscribe_trigger = subscribe(trigger, (value) => $trigger = value);
createDispatcher();
const attrs = getAttrs$4("trigger");
if ($$props.asChild === void 0 && $$bindings.asChild && asChild !== void 0)
$$bindings.asChild(asChild);
if ($$props.id === void 0 && $$bindings.id && id !== void 0)
$$bindings.id(id);
{
if (id) {
ids.trigger.set(id);
}
}
builder = $trigger;
$$unsubscribe_trigger();
return `${asChild ? `${slots.default ? slots.default({ builder, attrs }) : ``}` : `<button${spread(
[
escape_object(builder),
{ type: "button" },
escape_object($$restProps),
escape_object(attrs)
],
{}
)}>${slots.default ? slots.default({ builder, attrs }) : ``}</button>`}`;
});
const Menu = create_ssr_component(($$result, $$props, $$bindings, slots) => {
const iconNode = [
[
"line",
{
"x1": "4",
"x2": "20",
"y1": "12",
"y2": "12"
}
],
[
"line",
{
"x1": "4",
"x2": "20",
"y1": "6",
"y2": "6"
}
],
[
"line",
{
"x1": "4",
"x2": "20",
"y1": "18",
"y2": "18"
}
]
];
return `${validate_component(Icon$1, "Icon").$$render($$result, Object.assign({}, { name: "menu" }, $$props, { iconNode }), {}, {
default: () => {
return `${slots.default ? slots.default({}) : ``}`;
}
})}`;
});
const Menu$1 = Menu;
const Dropdown_menu_item = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let $$restProps = compute_rest_props($$props, ["class", "inset"]);
let { class: className = void 0 } = $$props;
let { inset = void 0 } = $$props;
if ($$props.class === void 0 && $$bindings.class && className !== void 0)
$$bindings.class(className);
if ($$props.inset === void 0 && $$bindings.inset && inset !== void 0)
$$bindings.inset(inset);
return `${validate_component(DropdownMenuItem, "DropdownMenuPrimitive.Item").$$render(
$$result,
Object.assign(
{},
{
class: cn("relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50", inset && "pl-8", className)
},
$$restProps
),
{},
{
default: () => {
return `${slots.default ? slots.default({}) : ``}`;
}
}
)}`;
});
const Dropdown_menu_content = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let $$restProps = compute_rest_props($$props, ["class", "sideOffset", "transition", "transitionConfig"]);
let { class: className = void 0 } = $$props;
let { sideOffset = 4 } = $$props;
let { transition = flyAndScale } = $$props;
let { transitionConfig = void 0 } = $$props;
if ($$props.class === void 0 && $$bindings.class && className !== void 0)
$$bindings.class(className);
if ($$props.sideOffset === void 0 && $$bindings.sideOffset && sideOffset !== void 0)
$$bindings.sideOffset(sideOffset);
if ($$props.transition === void 0 && $$bindings.transition && transition !== void 0)
$$bindings.transition(transition);
if ($$props.transitionConfig === void 0 && $$bindings.transitionConfig && transitionConfig !== void 0)
$$bindings.transitionConfig(transitionConfig);
return `${validate_component(DropdownMenuContent, "DropdownMenuPrimitive.Content").$$render(
$$result,
Object.assign(
{},
{ transition },
{ transitionConfig },
{ sideOffset },
{
class: cn("z-50 min-w-[8rem] rounded-md border bg-popover p-1 text-popover-foreground shadow-md focus:outline-none", className)
},
$$restProps
),
{},
{
default: () => {
return `${slots.default ? slots.default({}) : ``}`;
}
}
)}`;
});
const Root = DropdownMenu;
const Trigger = DropdownMenuTrigger;
const Group = DropdownMenuGroup;
const Nav = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let { data } = $$props;
if ($$props.data === void 0 && $$bindings.data && data !== void 0)
$$bindings.data(data);
return `<div class="one"></div> <nav class="relative z-50 h-14"><div class="max-w-screen-xl flex flex-wrap items-center justify-between mx-auto p-4"><a${add_attribute("href", data.site.home ? data.site.home : "/", 0)} class="flex items-center space-x-3 blurry-bg">${data.site.logo ? `<img${add_attribute("src", data.site.logo, 0)} class="h-8"${add_attribute("alt", data.site.title, 0)} srcset="">` : ``} ${data.site.title ? `<span class="self-center font-semibold whitespace-nowrap">${escape(data.site.title)}</span>` : ``}</a> ${validate_component(Button, "Button").$$render(
$$result,
{
variant: "outline",
size: "icon",
class: "inline-flex items-center p-2 w-10 h-10 justify-center text-sm rounded-lg md:hidden focus:outline-none",
id: "ham-btn"
},
{},
{
default: () => {
return `${validate_component(Menu$1, "Menu").$$render($$result, { className: "h-4 w-4" }, {}, {})}`;
}
}
)} <div class="hidden w-full md:block md:w-auto" id="navbar-default"><ul class="font-medium md:relative md:bg-transparent absolute w-full left-[0px] flex flex-col p-1 md:p-0 mt-4 border-solid border border-secondary bg-card text-card-foreground md:flex-row md:space-x-1 md:mt-0 md:border-0">${each(data.site.nav, (navItem) => {
return `<li><a${add_attribute("href", navItem.url, 0)} rel="external">${validate_component(Button, "Button").$$render($$result, { variant: "link" }, {}, {
default: () => {
return `${escape(navItem.name)}`;
}
})}</a> </li>`;
})} <li>${validate_component(Root, "DropdownMenu.Root").$$render($$result, {}, {}, {
default: () => {
return `${validate_component(Trigger, "DropdownMenu.Trigger").$$render($$result, { asChild: true }, {}, {
default: ({ builder }) => {
return `${validate_component(Button, "Button").$$render($$result, { builders: [builder], variant: "link" }, {}, {
default: () => {
return `Categories`;
}
})}`;
}
})} ${validate_component(Dropdown_menu_content, "DropdownMenu.Content").$$render($$result, { class: "w-56" }, {}, {
default: () => {
return `${validate_component(Group, "DropdownMenu.Group").$$render($$result, {}, {}, {
default: () => {
return `<a rel="external" href="/">${validate_component(Dropdown_menu_item, "DropdownMenu.Item").$$render($$result, { class: "font-medium" }, {}, {
default: () => {
return `Home`;
}
})}</a>`;
}
})} ${validate_component(Group, "DropdownMenu.Group").$$render($$result, {}, {}, {
default: () => {
return `${data.site.categories ? `${each(data.site.categories, (category) => {
return `<a rel="external" href="${"/category-" + escape(category.name, true)}">${validate_component(Dropdown_menu_item, "DropdownMenu.Item").$$render($$result, { class: "font-medium" }, {}, {
default: () => {
return `${escape(category.name)}`;
}
})} </a>`;
})}` : ``}`;
}
})}`;
}
})}`;
}
})}</li></ul></div></div></nav>`;
});
const Layout = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let { data } = $$props;
if ($$props.data === void 0 && $$bindings.data && data !== void 0)
$$bindings.data(data);
return `${data.showNav ? `${validate_component(Nav, "Nav").$$render($$result, { data }, {}, {})}` : ``} ${$$result.head += `<!-- HEAD_svelte-xs6o1m_START -->${$$result.title = `<title>${escape(data.site.title)}</title>`, ""}${each(Object.entries(data.site.metaTags), ([key, value]) => {
return `<meta${add_attribute("name", key, 0)}${add_attribute("content", value, 0)}>`;
})}<!-- HEAD_svelte-xs6o1m_END -->`, ""} ${slots.default ? slots.default({}) : ``}`;
});
export { Layout as default };
//# sourceMappingURL=_layout.svelte-68f2bf09.js.map
File diff suppressed because one or more lines are too long
@@ -1,76 +0,0 @@
import { c as create_ssr_component, v as validate_component, a as each } from './ssr-3edfa391.js';
import { M as Monitor } from './monitor-e7711faf.js';
import { C as Card, a as Card_content } from './card-content-7a973783.js';
import 'clsx';
import { I as Incident } from './incident-2c9cee56.js';
import './Icon-8f6a4a04.js';
import { B as Badge } from './index4-b36fddc1.js';
import './index3-f40f43ed.js';
import 'tailwind-variants';
import './helpers-1d8653cf.js';
import 'moment';
import './chevron-down-abad86ac.js';
import './index2-c5c18f89.js';
import 'tailwind-merge';
const Page = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let { data } = $$props;
let hasActiveIncidents = false;
for (let i = 0; i < data.monitors.length; i++) {
if (data.monitors[i].activeIncidents.length > 0) {
hasActiveIncidents = true;
break;
}
}
if ($$props.data === void 0 && $$bindings.data && data !== void 0)
$$bindings.data(data);
return `<div class="mt-32"></div> ${hasActiveIncidents ? `<section class="mx-auto bg-transparent mb-4 flex w-full max-w-[890px] flex-1 flex-col items-start justify-center" id=""><div class="grid w-full grid-cols-2 gap-4"><div class="col-span-2 md:col-span-1 text-center md:text-left">${validate_component(Badge, "Badge").$$render($$result, { variant: "outline" }, {}, {
default: () => {
return `Ongoing Incidents`;
}
})}</div></div></section> <section class="mx-auto backdrop-blur-[2px] mb-8 flex w-full max-w-[890px] flex-1 flex-col items-start justify-center" id="">${each(data.monitors, (monitor) => {
return `${each(monitor.activeIncidents, (incident, i) => {
return `${validate_component(Incident, "Incident").$$render(
$$result,
{
incident,
state: "close",
variant: "title+body+comments+monitor",
monitor
},
{},
{}
)}`;
})}`;
})}</section>` : ``} ${data.monitors.length > 0 ? `<section class="mx-auto bg-transparent mb-4 flex w-full max-w-[890px] flex-1 flex-col items-start justify-center" id=""><div class="grid w-full grid-cols-2 gap-4"><div class="col-span-2 md:col-span-1 text-center md:text-left">${validate_component(Badge, "Badge").$$render($$result, { class: "", variant: "outline" }, {}, {
default: () => {
return `Availability per Component`;
}
})}</div> <div class="col-span-2 md:col-span-1 text-center md:text-right">${validate_component(Badge, "Badge").$$render($$result, { variant: "outline" }, {}, {
default: () => {
return `<span class="w-[8px] h-[8px] inline-flex rounded-full bg-api-up opacity-75 mr-1"></span> <span class="mr-3" data-svelte-h="svelte-fd8nbr">UP</span> <span class="w-[8px] h-[8px] inline-flex rounded-full bg-api-degraded opacity-75 mr-1"></span> <span class="mr-3" data-svelte-h="svelte-ddctvm">DEGRADED</span> <span class="w-[8px] h-[8px] inline-flex rounded-full bg-api-down opacity-75 mr-1"></span> <span class="mr-3" data-svelte-h="svelte-1o75psw">DOWN</span>`;
}
})}</div></div></section> <section class="mx-auto backdrop-blur-[2px] mb-8 flex w-full max-w-[890px] flex-1 flex-col items-start justify-center">${validate_component(Card, "Card.Root").$$render($$result, { class: "w-full" }, {}, {
default: () => {
return `${validate_component(Card_content, "Card.Content").$$render($$result, { class: "p-0 monitors-card" }, {}, {
default: () => {
return `${each(data.monitors, (monitor) => {
return `${validate_component(Monitor, "Monitor").$$render($$result, { monitor, localTz: data.localTz }, {}, {})}`;
})}`;
}
})}`;
}
})}</section>` : `<section class="mx-auto bg-transparent mb-4 flex w-full max-w-[890px] flex-1 flex-col items-start justify-center" id="">${validate_component(Card, "Card.Root").$$render($$result, { class: "mx-auto" }, {}, {
default: () => {
return `${validate_component(Card_content, "Card.Content").$$render($$result, { class: "pt-4" }, {}, {
default: () => {
return `<h1 class="scroll-m-20 text-2xl font-extrabold tracking-tight lg:text-2xl text-center" data-svelte-h="svelte-pnpgii">No Monitor Found.</h1> <p class="mt-3 text-center" data-svelte-h="svelte-x3h5nn">Please read the documentation on how to add monitors
<a href="https://kener.ing/docs#h1add-monitors" target="_blank" class="underline">here</a>.</p>`;
}
})}`;
}
})}</section>`}`;
});
export { Page as default };
//# sourceMappingURL=_page.svelte-073e2dc3.js.map
File diff suppressed because one or more lines are too long
@@ -1,67 +0,0 @@
import { c as create_ssr_component, b as add_attribute, e as escape, v as validate_component, a as each } from './ssr-3edfa391.js';
import { M as Monitor } from './monitor-e7711faf.js';
import { C as Card, a as Card_content } from './card-content-7a973783.js';
import 'clsx';
import { I as Incident } from './incident-2c9cee56.js';
import './Icon-8f6a4a04.js';
import { B as Badge } from './index4-b36fddc1.js';
import './index3-f40f43ed.js';
import 'tailwind-variants';
import './helpers-1d8653cf.js';
import 'moment';
import './chevron-down-abad86ac.js';
import './index2-c5c18f89.js';
import 'tailwind-merge';
const Page = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let { data } = $$props;
let hasActiveIncidents = false;
for (let i = 0; i < data.monitors.length; i++) {
if (data.monitors[i].activeIncidents.length > 0) {
hasActiveIncidents = true;
break;
}
}
if ($$props.data === void 0 && $$bindings.data && data !== void 0)
$$bindings.data(data);
return `<div class="mt-32"></div> ${data.site.hero ? `<section class="mx-auto flex w-full max-w-4xl mb-8 flex-1 flex-col items-start justify-center"><div class="mx-auto max-w-screen-xl px-4 lg:flex lg:items-center"><div class="mx-auto max-w-3xl text-center blurry-bg">${data.site.hero.image ? `<img${add_attribute("src", data.site.hero.image, 0)} class="h-16 w-16 m-auto" alt="" srcset="">` : ``} ${data.site.hero.title ? `<h1 class="bg-gradient-to-r from-green-300 via-blue-500 to-purple-600 bg-clip-text text-5xl font-extrabold text-transparent leading-snug">${escape(data.site.hero.title)}</h1>` : ``} ${data.site.hero.subtitle ? `<p class="mx-auto mt-4 max-w-xl sm:text-xl">${escape(data.site.hero.subtitle)}</p>` : ``}</div></div></section>` : ``} ${hasActiveIncidents ? `<section class="mx-auto bg-transparent mb-4 flex w-full max-w-[890px] flex-1 flex-col items-start justify-center" id=""><div class="grid w-full grid-cols-2 gap-4"><div class="col-span-2 md:col-span-1 text-center md:text-left">${validate_component(Badge, "Badge").$$render($$result, { variant: "outline" }, {}, {
default: () => {
return `Ongoing Incidents`;
}
})}</div></div></section> <section class="mx-auto backdrop-blur-[2px] mb-8 flex w-full max-w-[890px] flex-1 flex-col items-start justify-center" id="">${each(data.monitors, (monitor) => {
return `${each(monitor.activeIncidents, (incident, i) => {
return `${validate_component(Incident, "Incident").$$render(
$$result,
{
incident,
state: "close",
variant: "title+body+comments+monitor",
monitor
},
{},
{}
)}`;
})}`;
})}</section>` : ``} ${data.monitors.length > 0 ? `<section class="mx-auto bg-transparent mb-4 flex w-full max-w-[890px] flex-1 flex-col items-start justify-center" id=""><div class="grid w-full grid-cols-2 gap-4"><div class="col-span-2 md:col-span-1 text-center md:text-left">${validate_component(Badge, "Badge").$$render($$result, { class: "", variant: "outline" }, {}, {
default: () => {
return `Availability per Component`;
}
})}</div> <div class="col-span-2 md:col-span-1 text-center md:text-right">${validate_component(Badge, "Badge").$$render($$result, { variant: "outline" }, {}, {
default: () => {
return `<span class="w-[8px] h-[8px] inline-flex rounded-full bg-api-up opacity-75 mr-1"></span> <span class="mr-3" data-svelte-h="svelte-fd8nbr">UP</span> <span class="w-[8px] h-[8px] inline-flex rounded-full bg-api-degraded opacity-75 mr-1"></span> <span class="mr-3" data-svelte-h="svelte-ddctvm">DEGRADED</span> <span class="w-[8px] h-[8px] inline-flex rounded-full bg-api-down opacity-75 mr-1"></span> <span class="mr-3" data-svelte-h="svelte-1o75psw">DOWN</span>`;
}
})}</div></div></section> <section class="mx-auto backdrop-blur-[2px] mb-8 flex w-full max-w-[890px] flex-1 flex-col items-start justify-center">${validate_component(Card, "Card.Root").$$render($$result, { class: "w-full " }, {}, {
default: () => {
return `${validate_component(Card_content, "Card.Content").$$render($$result, { class: "p-0 monitors-card" }, {}, {
default: () => {
return `${each(data.monitors, (monitor) => {
return `${validate_component(Monitor, "Monitor").$$render($$result, { monitor, localTz: data.localTz }, {}, {})}`;
})}`;
}
})}`;
}
})}</section>` : ``}`;
});
export { Page as default };
//# sourceMappingURL=_page.svelte-13ee4dfa.js.map
File diff suppressed because one or more lines are too long
@@ -1,45 +0,0 @@
import { c as create_ssr_component, f as subscribe, b as add_attribute, v as validate_component, a as each } from './ssr-3edfa391.js';
import { M as Monitor } from './monitor-e7711faf.js';
import { C as Card, a as Card_content } from './card-content-7a973783.js';
import 'clsx';
import './Icon-8f6a4a04.js';
import 'moment';
import './index3-f40f43ed.js';
import './index4-b36fddc1.js';
import { p as page } from './stores-d0ec6658.js';
import './index2-c5c18f89.js';
import 'tailwind-merge';
import 'tailwind-variants';
const Page = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let $$unsubscribe_page;
$$unsubscribe_page = subscribe(page, (value) => value);
let element;
let { data } = $$props;
if ($$props.data === void 0 && $$bindings.data && data !== void 0)
$$bindings.data(data);
$$unsubscribe_page();
return `${data.monitors.length > 0 ? `<section class="w-fit p-0"${add_attribute("this", element, 0)}>${validate_component(Card, "Card.Root").$$render($$result, { class: "w-[580px] border-0 shadow-none" }, {}, {
default: () => {
return `${validate_component(Card_content, "Card.Content").$$render($$result, { class: "p-0 monitors-card " }, {}, {
default: () => {
return `${each(data.monitors, (monitor) => {
return `${validate_component(Monitor, "Monitor").$$render($$result, { monitor, localTz: data.localTz }, {}, {})}`;
})}`;
}
})}`;
}
})}</section>` : `<section class="mx-auto bg-transparent mb-4 flex w-full max-w-[890px] flex-1 flex-col items-start justify-center" id="">${validate_component(Card, "Card.Root").$$render($$result, { class: "mx-auto" }, {}, {
default: () => {
return `${validate_component(Card_content, "Card.Content").$$render($$result, { class: "pt-4" }, {}, {
default: () => {
return `<h1 class="scroll-m-20 text-2xl font-extrabold tracking-tight lg:text-2xl text-center" data-svelte-h="svelte-1vwlrnd">No Monitor Found.</h1> <p class="mt-3 text-center" data-svelte-h="svelte-oy4ufi">Please read the documentation on how to add monitors
<a href="https://kener.ing/docs#h1add-monitors" target="_blank" class="underline">here</a>.</p>`;
}
})}`;
}
})}</section>`}`;
});
export { Page as default };
//# sourceMappingURL=_page.svelte-46e00a0d.js.map
@@ -1 +0,0 @@
{"version":3,"file":"_page.svelte-46e00a0d.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/embed-_tag_/_page.svelte.js"],"sourcesContent":["import { c as create_ssr_component, a as subscribe, g as add_attribute, v as validate_component, i as each } from \"../../../chunks/ssr.js\";\nimport { M as Monitor } from \"../../../chunks/monitor.js\";\nimport { C as Card, a as Card_content } from \"../../../chunks/card-content.js\";\nimport \"clsx\";\nimport \"dequal\";\nimport \"../../../chunks/Icon.js\";\nimport \"moment\";\nimport \"../../../chunks/index3.js\";\nimport \"../../../chunks/index4.js\";\nimport { p as page } from \"../../../chunks/stores.js\";\nconst Page = create_ssr_component(($$result, $$props, $$bindings, slots) => {\n let $$unsubscribe_page;\n $$unsubscribe_page = subscribe(page, (value) => value);\n let element;\n let { data } = $$props;\n if ($$props.data === void 0 && $$bindings.data && data !== void 0)\n $$bindings.data(data);\n $$unsubscribe_page();\n return `${data.monitors.length > 0 ? `<section class=\"w-fit p-0\"${add_attribute(\"this\", element, 0)}>${validate_component(Card, \"Card.Root\").$$render($$result, { class: \"w-[580px] border-0 shadow-none\" }, {}, {\n default: () => {\n return `${validate_component(Card_content, \"Card.Content\").$$render($$result, { class: \"p-0 monitors-card \" }, {}, {\n default: () => {\n return `${each(data.monitors, (monitor) => {\n return `${validate_component(Monitor, \"Monitor\").$$render($$result, { monitor, localTz: data.localTz }, {}, {})}`;\n })}`;\n }\n })}`;\n }\n })}</section>` : `<section class=\"mx-auto bg-transparent mb-4 flex w-full max-w-[890px] flex-1 flex-col items-start justify-center\" id=\"\">${validate_component(Card, \"Card.Root\").$$render($$result, { class: \"mx-auto\" }, {}, {\n default: () => {\n return `${validate_component(Card_content, \"Card.Content\").$$render($$result, { class: \"pt-4\" }, {}, {\n default: () => {\n return `<h1 class=\"scroll-m-20 text-2xl font-extrabold tracking-tight lg:text-2xl text-center\" data-svelte-h=\"svelte-1vwlrnd\">No Monitor Found.</h1> <p class=\"mt-3 text-center\" data-svelte-h=\"svelte-oy4ufi\">Please read the documentation on how to add monitors\n <a href=\"https://kener.ing/docs#h1add-monitors\" target=\"_blank\" class=\"underline\">here</a>.</p>`;\n }\n })}`;\n }\n })}</section>`}`;\n});\nexport {\n Page as default\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;AAUK,MAAC,IAAI,GAAG,oBAAoB,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,KAAK;AAC5E,EAAE,IAAI,kBAAkB,CAAC;AACzB,EAAE,kBAAkB,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;AACzD,EAAE,IAAI,OAAO,CAAC;AACd,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;AACzB,EAAE,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,UAAU,CAAC,IAAI,IAAI,IAAI,KAAK,KAAK,CAAC;AACnE,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,EAAE,kBAAkB,EAAE,CAAC;AACvB,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,0BAA0B,EAAE,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,kBAAkB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,gCAAgC,EAAE,EAAE,EAAE,EAAE;AACnN,IAAI,OAAO,EAAE,MAAM;AACnB,MAAM,OAAO,CAAC,EAAE,kBAAkB,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE,EAAE,EAAE,EAAE;AACzH,QAAQ,OAAO,EAAE,MAAM;AACvB,UAAU,OAAO,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,KAAK;AACrD,YAAY,OAAO,CAAC,EAAE,kBAAkB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AAC9H,WAAW,CAAC,CAAC,CAAC,CAAC;AACf,SAAS;AACT,OAAO,CAAC,CAAC,CAAC,CAAC;AACX,KAAK;AACL,GAAG,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,wHAAwH,EAAE,kBAAkB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE;AACjO,IAAI,OAAO,EAAE,MAAM;AACnB,MAAM,OAAO,CAAC,EAAE,kBAAkB,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE;AAC3G,QAAQ,OAAO,EAAE,MAAM;AACvB,UAAU,OAAO,CAAC;AAClB,+GAA+G,CAAC,CAAC;AACjH,SAAS;AACT,OAAO,CAAC,CAAC,CAAC,CAAC;AACX,KAAK;AACL,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AACnB,CAAC;;;;"}
@@ -1,81 +0,0 @@
import { c as create_ssr_component, f as subscribe, e as escape, v as validate_component, a as each } from './ssr-3edfa391.js';
import { M as Monitor } from './monitor-e7711faf.js';
import { C as Card, a as Card_content } from './card-content-7a973783.js';
import 'clsx';
import { I as Incident } from './incident-2c9cee56.js';
import './Icon-8f6a4a04.js';
import { B as Badge } from './index4-b36fddc1.js';
import { p as page } from './stores-d0ec6658.js';
import './index3-f40f43ed.js';
import 'tailwind-variants';
import './helpers-1d8653cf.js';
import 'moment';
import './chevron-down-abad86ac.js';
import './index2-c5c18f89.js';
import 'tailwind-merge';
const Page = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let $page, $$unsubscribe_page;
$$unsubscribe_page = subscribe(page, (value) => $page = value);
let { data } = $$props;
let category = data.site.categories.find((c) => c.name === $page.params.category);
let hasActiveIncidents = false;
for (let i = 0; i < data.monitors.length; i++) {
if (data.monitors[i].activeIncidents.length > 0) {
hasActiveIncidents = true;
break;
}
}
if ($$props.data === void 0 && $$bindings.data && data !== void 0)
$$bindings.data(data);
$$unsubscribe_page();
return `<div class="mt-32"></div> ${category ? `<section class="mx-auto flex w-full max-w-4xl mb-8 flex-1 flex-col items-start justify-center"><div class="mx-auto max-w-screen-xl px-4 lg:flex lg:items-center"><div class="mx-auto max-w-3xl text-center blurry-bg">${category.name ? `<h1 class="bg-gradient-to-r from-green-300 via-blue-500 to-purple-600 bg-clip-text text-5xl font-extrabold text-transparent leading-snug">${escape(category.name)}</h1>` : ``} ${category.description ? `<p class="mx-auto mt-4 max-w-xl sm:text-xl">${escape(category.description)}</p>` : ``}</div></div></section>` : ``} ${hasActiveIncidents ? `<section class="mx-auto bg-transparent mb-4 flex w-full max-w-[890px] flex-1 flex-col items-start justify-center" id=""><div class="grid w-full grid-cols-2 gap-4"><div class="col-span-2 md:col-span-1 text-center md:text-left">${validate_component(Badge, "Badge").$$render($$result, { variant: "outline" }, {}, {
default: () => {
return `Ongoing Incidents`;
}
})}</div></div></section> <section class="mx-auto backdrop-blur-[2px] mb-8 flex w-full max-w-[890px] flex-1 flex-col items-start justify-center" id="">${each(data.monitors, (monitor) => {
return `${each(monitor.activeIncidents, (incident, i) => {
return `${validate_component(Incident, "Incident").$$render(
$$result,
{
incident,
state: "close",
variant: "title+body+comments+monitor",
monitor
},
{},
{}
)}`;
})}`;
})}</section>` : ``} ${data.monitors.length > 0 ? `<section class="mx-auto bg-transparent mb-4 flex w-full max-w-[890px] flex-1 flex-col items-start justify-center" id=""><div class="grid w-full grid-cols-2 gap-4"><div class="col-span-2 md:col-span-1 text-center md:text-left">${validate_component(Badge, "Badge").$$render($$result, { class: "", variant: "outline" }, {}, {
default: () => {
return `Availability per Component`;
}
})}</div> <div class="col-span-2 md:col-span-1 text-center md:text-right">${validate_component(Badge, "Badge").$$render($$result, { variant: "outline" }, {}, {
default: () => {
return `<span class="w-[8px] h-[8px] inline-flex rounded-full bg-api-up opacity-75 mr-1"></span> <span class="mr-3" data-svelte-h="svelte-fd8nbr">UP</span> <span class="w-[8px] h-[8px] inline-flex rounded-full bg-api-degraded opacity-75 mr-1"></span> <span class="mr-3" data-svelte-h="svelte-ddctvm">DEGRADED</span> <span class="w-[8px] h-[8px] inline-flex rounded-full bg-api-down opacity-75 mr-1"></span> <span class="mr-3" data-svelte-h="svelte-1o75psw">DOWN</span>`;
}
})}</div></div></section> <section class="mx-auto backdrop-blur-[2px] mb-8 flex w-full max-w-[890px] flex-1 flex-col items-start justify-center">${validate_component(Card, "Card.Root").$$render($$result, { class: "w-full" }, {}, {
default: () => {
return `${validate_component(Card_content, "Card.Content").$$render($$result, { class: "p-0 monitors-card" }, {}, {
default: () => {
return `${each(data.monitors, (monitor) => {
return `${validate_component(Monitor, "Monitor").$$render($$result, { monitor, localTz: data.localTz }, {}, {})}`;
})}`;
}
})}`;
}
})}</section>` : `<section class="mx-auto bg-transparent mb-4 flex w-full max-w-[890px] flex-1 flex-col items-start justify-center" id="">${validate_component(Card, "Card.Root").$$render($$result, { class: "mx-auto" }, {}, {
default: () => {
return `${validate_component(Card_content, "Card.Content").$$render($$result, { class: "pt-4" }, {}, {
default: () => {
return `<h1 class="scroll-m-20 text-2xl font-extrabold tracking-tight lg:text-2xl text-center" data-svelte-h="svelte-pnpgii">No Monitor Found.</h1> <p class="mt-3 text-center" data-svelte-h="svelte-x3h5nn">Please read the documentation on how to add monitors
<a href="https://kener.ing/docs#h1add-monitors" target="_blank" class="underline">here</a>.</p>`;
}
})}`;
}
})}</section>`}`;
});
export { Page as default };
//# sourceMappingURL=_page.svelte-4b22fd47.js.map
File diff suppressed because one or more lines are too long
@@ -1,112 +0,0 @@
import { c as create_ssr_component, e as escape, v as validate_component, a as each, d as compute_rest_props, f as subscribe, g as spread, i as escape_object } from './ssr-3edfa391.js';
import 'clsx';
import { I as Incident } from './incident-2c9cee56.js';
import { c as cn, q as setCtx, r as getAttrs } from './Icon-8f6a4a04.js';
import 'moment';
import { B as Badge } from './index4-b36fddc1.js';
import './card-content-7a973783.js';
import './helpers-1d8653cf.js';
import './index3-f40f43ed.js';
import 'tailwind-variants';
import './chevron-down-abad86ac.js';
import './index2-c5c18f89.js';
import 'tailwind-merge';
const Separator$1 = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let builder;
let $$restProps = compute_rest_props($$props, ["orientation", "decorative", "asChild"]);
let $root, $$unsubscribe_root;
let { orientation = "horizontal" } = $$props;
let { decorative = true } = $$props;
let { asChild = false } = $$props;
const { elements: { root }, updateOption } = setCtx({ orientation, decorative });
$$unsubscribe_root = subscribe(root, (value) => $root = value);
const attrs = getAttrs("root");
if ($$props.orientation === void 0 && $$bindings.orientation && orientation !== void 0)
$$bindings.orientation(orientation);
if ($$props.decorative === void 0 && $$bindings.decorative && decorative !== void 0)
$$bindings.decorative(decorative);
if ($$props.asChild === void 0 && $$bindings.asChild && asChild !== void 0)
$$bindings.asChild(asChild);
{
updateOption("orientation", orientation);
}
{
updateOption("decorative", decorative);
}
builder = $root;
$$unsubscribe_root();
return `${asChild ? `${slots.default ? slots.default({ builder, attrs }) : ``}` : `<div${spread([escape_object(builder), escape_object($$restProps), escape_object(attrs)], {})}></div>`}`;
});
const Separator = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let $$restProps = compute_rest_props($$props, ["class", "orientation", "decorative"]);
let { class: className = void 0 } = $$props;
let { orientation = "horizontal" } = $$props;
let { decorative = void 0 } = $$props;
if ($$props.class === void 0 && $$bindings.class && className !== void 0)
$$bindings.class(className);
if ($$props.orientation === void 0 && $$bindings.orientation && orientation !== void 0)
$$bindings.orientation(orientation);
if ($$props.decorative === void 0 && $$bindings.decorative && decorative !== void 0)
$$bindings.decorative(decorative);
return `${validate_component(Separator$1, "SeparatorPrimitive.Root").$$render(
$$result,
Object.assign(
{},
{
class: cn(
"shrink-0 bg-border",
orientation === "horizontal" ? "h-[1px] w-full" : "h-full w-[1px]",
className
)
},
{ orientation },
{ decorative },
$$restProps
),
{},
{}
)}`;
});
const Page = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let { data } = $$props;
if ($$props.data === void 0 && $$bindings.data && data !== void 0)
$$bindings.data(data);
return `${$$result.head += `<!-- HEAD_svelte-1j8jcnk_START -->${$$result.title = `<title> ${escape(data.monitor.name)} - Incidents
</title>`, ""}<!-- HEAD_svelte-1j8jcnk_END -->`, ""} <section class="mx-auto flex w-full max-w-4xl flex-1 flex-col items-start justify-center"><div class="mx-auto max-w-screen-xl px-4 pt-32 pb-16 lg:flex lg:items-center"><div class="mx-auto max-w-3xl text-center blurry-bg"><h1 class="bg-gradient-to-r from-green-300 via-blue-500 to-purple-600 bg-clip-text text-5xl font-extrabold text-transparent leading-snug">${escape(data.monitor.name)}</h1> <p class="mx-auto mt-4 max-w-xl sm:text-xl"><!-- HTML_TAG_START -->${data.monitor.description}<!-- HTML_TAG_END --></p></div></div></section> <section class="mx-auto flex-1 mt-8 flex-col mb-4 flex w-full" id="active_incident"><div class="container"><h1 class="mb-4 text-2xl font-bold leading-none">${validate_component(Badge, "Badge").$$render($$result, { variant: "outline" }, {}, {
default: () => {
return `Active Incidents`;
}
})}</h1> ${data.activeIncidents.length > 0 ? `${each(data.activeIncidents, (incident, i) => {
return `${validate_component(Incident, "Incident").$$render(
$$result,
{
incident,
state: i == 0 ? "open" : "close",
variant: "title+body+comments",
monitor: data.monitor
},
{},
{}
)}`;
})}` : `<div class="flex items-center justify-left" data-svelte-h="svelte-dr0k6a"><p class="text-xl">No active incidents</p></div>`}</div></section> ${validate_component(Separator, "Separator").$$render($$result, { class: "container mb-4 w-[400px]" }, {}, {})} <section class="mx-auto flex-1 mt-8 flex-col mb-4 flex w-full" id="active_incident"><div class="container"><h1 class="mb-4 text-2xl font-bold leading-none">${validate_component(Badge, "Badge").$$render($$result, { variant: "outline" }, {}, {
default: () => {
return `Recent Incidents`;
}
})}</h1> ${data.pastIncidents.length > 0 ? `${each(data.pastIncidents, (incident) => {
return `${validate_component(Incident, "Incident").$$render(
$$result,
{
incident,
state: "close",
variant: "title+body+comments",
monitor: data.monitor
},
{},
{}
)}`;
})}` : `<div class="flex items-center justify-left" data-svelte-h="svelte-b2l9ix"><p class="text-xl">No recent incidents</p></div>`}</div></section>`;
});
export { Page as default };
//# sourceMappingURL=_page.svelte-6a500acb.js.map
File diff suppressed because one or more lines are too long
@@ -1,327 +0,0 @@
import { c as create_ssr_component, v as validate_component, a as each, e as escape, d as compute_rest_props, f as subscribe, g as spread, i as escape_object } from './ssr-3edfa391.js';
import { marked } from 'marked';
import { C as Card, a as Card_content } from './card-content-7a973783.js';
import 'clsx';
import { c as cn, j as setCtx$4, k as setItem, l as getCtx$3, m as getTrigger, a as createDispatcher, n as getContent$1, o as getAttrs$5, p as cubicOut } from './Icon-8f6a4a04.js';
import { C as ChevronDown } from './chevron-down-abad86ac.js';
import './index2-c5c18f89.js';
import 'tailwind-merge';
const Accordion = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let builder;
let $$restProps = compute_rest_props($$props, ["multiple", "value", "onValueChange", "disabled", "asChild"]);
let $root, $$unsubscribe_root;
let { multiple = false } = $$props;
let { value = void 0 } = $$props;
let { onValueChange = void 0 } = $$props;
let { disabled = false } = $$props;
let { asChild = false } = $$props;
const { elements: { root }, states: { value: localValue }, updateOption } = setCtx$4({
multiple,
disabled,
defaultValue: value,
onValueChange: ({ next }) => {
if (value !== next) {
onValueChange?.(next);
value = next;
}
return next;
}
});
$$unsubscribe_root = subscribe(root, (value2) => $root = value2);
const attrs = getAttrs$5("root");
if ($$props.multiple === void 0 && $$bindings.multiple && multiple !== void 0)
$$bindings.multiple(multiple);
if ($$props.value === void 0 && $$bindings.value && value !== void 0)
$$bindings.value(value);
if ($$props.onValueChange === void 0 && $$bindings.onValueChange && onValueChange !== void 0)
$$bindings.onValueChange(onValueChange);
if ($$props.disabled === void 0 && $$bindings.disabled && disabled !== void 0)
$$bindings.disabled(disabled);
if ($$props.asChild === void 0 && $$bindings.asChild && asChild !== void 0)
$$bindings.asChild(asChild);
{
localValue.set(value);
}
{
updateOption("multiple", multiple);
}
{
updateOption("disabled", disabled);
}
builder = $root;
$$unsubscribe_root();
return `${asChild ? `${slots.default ? slots.default({ builder, attrs }) : ``}` : `<div${spread([escape_object(builder), escape_object($$restProps), escape_object(attrs)], {})}>${slots.default ? slots.default({ builder, attrs }) : ``}</div>`}`;
});
const AccordionItem = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let builder;
let $$restProps = compute_rest_props($$props, ["value", "disabled", "asChild"]);
let $item, $$unsubscribe_item;
let { value } = $$props;
let { disabled = void 0 } = $$props;
let { asChild = false } = $$props;
const { item, props } = setItem({ value, disabled });
$$unsubscribe_item = subscribe(item, (value2) => $item = value2);
const attrs = getAttrs$5("item");
if ($$props.value === void 0 && $$bindings.value && value !== void 0)
$$bindings.value(value);
if ($$props.disabled === void 0 && $$bindings.disabled && disabled !== void 0)
$$bindings.disabled(disabled);
if ($$props.asChild === void 0 && $$bindings.asChild && asChild !== void 0)
$$bindings.asChild(asChild);
builder = $item(props);
$$unsubscribe_item();
return `${asChild ? `${slots.default ? slots.default({ builder, attrs }) : ``}` : `<div${spread([escape_object(builder), escape_object($$restProps), escape_object(attrs)], {})}>${slots.default ? slots.default({ builder, attrs }) : ``}</div>`}`;
});
const AccordionHeader = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let builder;
let $$restProps = compute_rest_props($$props, ["level", "asChild"]);
let $header, $$unsubscribe_header;
let { level = 3 } = $$props;
let { asChild = false } = $$props;
const { elements: { heading: header } } = getCtx$3();
$$unsubscribe_header = subscribe(header, (value) => $header = value);
const attrs = getAttrs$5("header");
if ($$props.level === void 0 && $$bindings.level && level !== void 0)
$$bindings.level(level);
if ($$props.asChild === void 0 && $$bindings.asChild && asChild !== void 0)
$$bindings.asChild(asChild);
builder = $header(level);
$$unsubscribe_header();
return `${asChild ? `${slots.default ? slots.default({ builder, attrs }) : ``}` : `<div${spread([escape_object(builder), escape_object($$restProps), escape_object(attrs)], {})}>${slots.default ? slots.default({ builder, attrs }) : ``}</div>`}`;
});
const AccordionTrigger = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let builder;
let $$restProps = compute_rest_props($$props, ["asChild"]);
let $trigger, $$unsubscribe_trigger;
let { asChild = false } = $$props;
const { trigger, props } = getTrigger();
$$unsubscribe_trigger = subscribe(trigger, (value) => $trigger = value);
createDispatcher();
const attrs = getAttrs$5("trigger");
if ($$props.asChild === void 0 && $$bindings.asChild && asChild !== void 0)
$$bindings.asChild(asChild);
builder = $trigger(props);
$$unsubscribe_trigger();
return `${asChild ? `${slots.default ? slots.default({ builder, attrs }) : ``}` : `<button${spread(
[
escape_object(builder),
{ type: "button" },
escape_object($$restProps),
escape_object(attrs)
],
{}
)}>${slots.default ? slots.default({ builder, attrs }) : ``}</button>`}`;
});
const AccordionContent = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let builder;
let $$restProps = compute_rest_props($$props, [
"transition",
"transitionConfig",
"inTransition",
"inTransitionConfig",
"outTransition",
"outTransitionConfig",
"asChild"
]);
let $content, $$unsubscribe_content;
let $isSelected, $$unsubscribe_isSelected;
let { transition = void 0 } = $$props;
let { transitionConfig = void 0 } = $$props;
let { inTransition = void 0 } = $$props;
let { inTransitionConfig = void 0 } = $$props;
let { outTransition = void 0 } = $$props;
let { outTransitionConfig = void 0 } = $$props;
let { asChild = false } = $$props;
const { content, isSelected, props } = getContent$1();
$$unsubscribe_content = subscribe(content, (value) => $content = value);
$$unsubscribe_isSelected = subscribe(isSelected, (value) => $isSelected = value);
const attrs = getAttrs$5("content");
if ($$props.transition === void 0 && $$bindings.transition && transition !== void 0)
$$bindings.transition(transition);
if ($$props.transitionConfig === void 0 && $$bindings.transitionConfig && transitionConfig !== void 0)
$$bindings.transitionConfig(transitionConfig);
if ($$props.inTransition === void 0 && $$bindings.inTransition && inTransition !== void 0)
$$bindings.inTransition(inTransition);
if ($$props.inTransitionConfig === void 0 && $$bindings.inTransitionConfig && inTransitionConfig !== void 0)
$$bindings.inTransitionConfig(inTransitionConfig);
if ($$props.outTransition === void 0 && $$bindings.outTransition && outTransition !== void 0)
$$bindings.outTransition(outTransition);
if ($$props.outTransitionConfig === void 0 && $$bindings.outTransitionConfig && outTransitionConfig !== void 0)
$$bindings.outTransitionConfig(outTransitionConfig);
if ($$props.asChild === void 0 && $$bindings.asChild && asChild !== void 0)
$$bindings.asChild(asChild);
builder = $content(props);
$$unsubscribe_content();
$$unsubscribe_isSelected();
return `${asChild && $isSelected(props) ? `${slots.default ? slots.default({ builder, attrs }) : ``}` : `${transition && $isSelected(props) ? `<div${spread([escape_object(builder), escape_object($$restProps), escape_object(attrs)], {})}>${slots.default ? slots.default({ builder, attrs }) : ``}</div>` : `${inTransition && outTransition && $isSelected(props) ? `<div${spread([escape_object(builder), escape_object($$restProps), escape_object(attrs)], {})}>${slots.default ? slots.default({ builder, attrs }) : ``}</div>` : `${inTransition && $isSelected(props) ? `<div${spread(
[
escape_object(builder),
escape_object($$restProps),
escape_object(attrs)
],
{}
)}>${slots.default ? slots.default({ builder, attrs }) : ``}</div>` : `${outTransition && $isSelected(props) ? `<div${spread(
[
escape_object(builder),
escape_object($$restProps),
escape_object(attrs)
],
{}
)}>${slots.default ? slots.default({ builder, attrs }) : ``}</div>` : `${$isSelected(props) ? `<div${spread(
[
escape_object(builder),
escape_object($$restProps),
escape_object(attrs)
],
{}
)}>${slots.default ? slots.default({ builder, attrs }) : ``}</div>` : ``}`}`}`}`}`}`;
});
function slide(node, { delay = 0, duration = 400, easing = cubicOut, axis = "y" } = {}) {
const style = getComputedStyle(node);
const opacity = +style.opacity;
const primary_property = axis === "y" ? "height" : "width";
const primary_property_value = parseFloat(style[primary_property]);
const secondary_properties = axis === "y" ? ["top", "bottom"] : ["left", "right"];
const capitalized_secondary_properties = secondary_properties.map(
(e) => `${e[0].toUpperCase()}${e.slice(1)}`
);
const padding_start_value = parseFloat(style[`padding${capitalized_secondary_properties[0]}`]);
const padding_end_value = parseFloat(style[`padding${capitalized_secondary_properties[1]}`]);
const margin_start_value = parseFloat(style[`margin${capitalized_secondary_properties[0]}`]);
const margin_end_value = parseFloat(style[`margin${capitalized_secondary_properties[1]}`]);
const border_width_start_value = parseFloat(
style[`border${capitalized_secondary_properties[0]}Width`]
);
const border_width_end_value = parseFloat(
style[`border${capitalized_secondary_properties[1]}Width`]
);
return {
delay,
duration,
easing,
css: (t) => `overflow: hidden;opacity: ${Math.min(t * 20, 1) * opacity};${primary_property}: ${t * primary_property_value}px;padding-${secondary_properties[0]}: ${t * padding_start_value}px;padding-${secondary_properties[1]}: ${t * padding_end_value}px;margin-${secondary_properties[0]}: ${t * margin_start_value}px;margin-${secondary_properties[1]}: ${t * margin_end_value}px;border-${secondary_properties[0]}-width: ${t * border_width_start_value}px;border-${secondary_properties[1]}-width: ${t * border_width_end_value}px;`
};
}
const Accordion_content = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let $$restProps = compute_rest_props($$props, ["class", "transition", "transitionConfig"]);
let { class: className = void 0 } = $$props;
let { transition = slide } = $$props;
let { transitionConfig = { duration: 200 } } = $$props;
if ($$props.class === void 0 && $$bindings.class && className !== void 0)
$$bindings.class(className);
if ($$props.transition === void 0 && $$bindings.transition && transition !== void 0)
$$bindings.transition(transition);
if ($$props.transitionConfig === void 0 && $$bindings.transitionConfig && transitionConfig !== void 0)
$$bindings.transitionConfig(transitionConfig);
return `${validate_component(AccordionContent, "AccordionPrimitive.Content").$$render(
$$result,
Object.assign(
{},
{
class: cn("overflow-hidden text-sm transition-all", className)
},
{ transition },
{ transitionConfig },
$$restProps
),
{},
{
default: () => {
return `<div class="pb-4 pt-0">${slots.default ? slots.default({}) : ``}</div>`;
}
}
)}`;
});
const Accordion_item = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let $$restProps = compute_rest_props($$props, ["class", "value"]);
let { class: className = void 0 } = $$props;
let { value } = $$props;
if ($$props.class === void 0 && $$bindings.class && className !== void 0)
$$bindings.class(className);
if ($$props.value === void 0 && $$bindings.value && value !== void 0)
$$bindings.value(value);
return `${validate_component(AccordionItem, "AccordionPrimitive.Item").$$render($$result, Object.assign({}, { value }, { class: cn("border-b", className) }, $$restProps), {}, {
default: () => {
return `${slots.default ? slots.default({}) : ``}`;
}
})}`;
});
const Accordion_trigger = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let $$restProps = compute_rest_props($$props, ["class", "level"]);
let { class: className = void 0 } = $$props;
let { level = 3 } = $$props;
if ($$props.class === void 0 && $$bindings.class && className !== void 0)
$$bindings.class(className);
if ($$props.level === void 0 && $$bindings.level && level !== void 0)
$$bindings.level(level);
return `${validate_component(AccordionHeader, "AccordionPrimitive.Header").$$render($$result, { level, class: "flex" }, {}, {
default: () => {
return `${validate_component(AccordionTrigger, "AccordionPrimitive.Trigger").$$render(
$$result,
Object.assign(
{},
{
class: cn("flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180", className)
},
$$restProps
),
{},
{
default: () => {
return `${slots.default ? slots.default({}) : ``} ${validate_component(ChevronDown, "ChevronDown").$$render(
$$result,
{
class: "h-4 w-4 transition-transform duration-200"
},
{},
{}
)}`;
}
}
)}`;
}
})}`;
});
const Root = Accordion;
const Page = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let { data } = $$props;
let html = marked.parse(data.md);
let sideBar = [];
if ($$props.data === void 0 && $$bindings.data && data !== void 0)
$$bindings.data(data);
return `${$$result.head += `<!-- HEAD_svelte-tjl0wq_START -->${$$result.title = `<title>
Kener Documentation
</title>`, ""}<!-- HEAD_svelte-tjl0wq_END -->`, ""} <section class="mx-auto container rounded-3xl scroll-smooth mt-8">${validate_component(Card, "Card.Root").$$render($$result, {}, {}, {
default: () => {
return `${validate_component(Card_content, "Card.Content").$$render($$result, { class: "px-1" }, {}, {
default: () => {
return `<div class="grid grid-cols-5 gap-4"><div class="col-span-5 md:col-span-1 pt-2 hidden md:block pr-1 border-r-2 border-secondary sticky top-0 overflow-y-auto max-h-screen">${each(sideBar, (item) => {
return `${validate_component(Root, "Accordion.Root").$$render($$result, {}, {}, {
default: () => {
return `${validate_component(Accordion_item, "Accordion.Item").$$render($$result, { value: item.id }, {}, {
default: () => {
return `${validate_component(Accordion_trigger, "Accordion.Trigger").$$render($$result, { class: "text-sm font-semibold pl-2 pr-3" }, {}, {
default: () => {
return `<a href="${"#" + escape(item.id, true)}" class="sidebar-a">${escape(item.text)}</a> `;
}
})} ${validate_component(Accordion_content, "Accordion.Content").$$render($$result, {}, {}, {
default: () => {
return ` <ul class="text-sm font-medium pl-6">${each(item.children, (child) => {
return `<li class="w-full py-2"><a href="${"#" + escape(child.id, true)}" class="sidebar-a">${escape(child.text)}</a> </li>`;
})}</ul> `;
}
})} `;
}
})} `;
}
})}`;
})}</div> <div class="col-span-5 md:col-span-4"><div class="pt-6 p-0 md:p-10 "><article id="markdown" class="prose prose-stone max-w-none dark:prose-invert dark:prose-pre:bg-neutral-900 prose-code:py-[0.2rem] prose-code:font-normal prose-code:font-mono prose-code:text-sm prose-code:rounded"><!-- HTML_TAG_START -->${html}<!-- HTML_TAG_END --></article></div></div></div>`;
}
})}`;
}
})}</section>`;
});
export { Page as default };
//# sourceMappingURL=_page.svelte-f53fe0c3.js.map
File diff suppressed because one or more lines are too long
-50
View File
@@ -1,50 +0,0 @@
import { p as public_env } from './shared-server-58a5f352.js';
import fs from 'fs-extra';
import { P as ParseUptime } from './helpers-1d8653cf.js';
import { makeBadge } from 'badge-maker';
const monitors = JSON.parse(fs.readFileSync(public_env.PUBLIC_KENER_FOLDER + "/monitors.json", "utf8"));
async function GET({ params, url }) {
const { path0Day, name } = monitors.find((monitor) => monitor.tag === params.tag);
const dayData = JSON.parse(fs.readFileSync(path0Day, "utf8"));
const query = url.searchParams;
const rangeInSeconds = query.get("sinceLast") || 90 * 24 * 60 * 60;
const now = Math.floor(Date.now() / 1e3);
const since = now - rangeInSeconds;
let ups = 0;
let downs = 0;
let degradeds = 0;
for (const timestamp in dayData) {
if (timestamp < since) {
continue;
}
const obj = dayData[timestamp];
if (obj.status == "UP") {
ups++;
} else if (obj.status == "DEGRADED") {
degradeds++;
} else if (obj.status == "DOWN") {
downs++;
}
}
let uptime = ParseUptime(ups + degradeds, ups + degradeds + downs) + "%";
const labelColor = query.get("labelColor") || "#333";
const color = query.get("color") || "#0079FF";
const style = query.get("style") || "flat";
const format = {
label: name,
message: uptime,
color,
labelColor,
style
};
const svg = makeBadge(format);
return new Response(svg, {
headers: {
"Content-Type": "image/svg+xml"
}
});
}
export { GET };
//# sourceMappingURL=_server-091e1f30.js.map
@@ -1 +0,0 @@
{"version":3,"file":"_server-091e1f30.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/badge/_tag_/uptime/_server.js"],"sourcesContent":["import { p as public_env } from \"../../../../../chunks/shared-server.js\";\nimport fs from \"fs-extra\";\nimport { P as ParseUptime } from \"../../../../../chunks/helpers.js\";\nimport { makeBadge } from \"badge-maker\";\nconst monitors = JSON.parse(fs.readFileSync(public_env.PUBLIC_KENER_FOLDER + \"/monitors.json\", \"utf8\"));\nasync function GET({ params, url }) {\n const { path0Day, name } = monitors.find((monitor) => monitor.tag === params.tag);\n const dayData = JSON.parse(fs.readFileSync(path0Day, \"utf8\"));\n const query = url.searchParams;\n const rangeInSeconds = query.get(\"sinceLast\") || 90 * 24 * 60 * 60;\n const now = Math.floor(Date.now() / 1e3);\n const since = now - rangeInSeconds;\n let ups = 0;\n let downs = 0;\n let degradeds = 0;\n for (const timestamp in dayData) {\n if (timestamp < since) {\n continue;\n }\n const obj = dayData[timestamp];\n if (obj.status == \"UP\") {\n ups++;\n } else if (obj.status == \"DEGRADED\") {\n degradeds++;\n } else if (obj.status == \"DOWN\") {\n downs++;\n }\n }\n let uptime = ParseUptime(ups + degradeds, ups + degradeds + downs) + \"%\";\n const labelColor = query.get(\"labelColor\") || \"#333\";\n const color = query.get(\"color\") || \"#0079FF\";\n const style = query.get(\"style\") || \"flat\";\n const format = {\n label: name,\n message: uptime,\n color,\n labelColor,\n style\n };\n const svg = makeBadge(format);\n return new Response(svg, {\n headers: {\n \"Content-Type\": \"image/svg+xml\"\n }\n });\n}\nexport {\n GET\n};\n"],"names":[],"mappings":";;;;;AAIA,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,mBAAmB,GAAG,gBAAgB,EAAE,MAAM,CAAC,CAAC,CAAC;AACxG,eAAe,GAAG,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;AACpC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,GAAG,KAAK,MAAM,CAAC,GAAG,CAAC,CAAC;AACpF,EAAE,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;AAChE,EAAE,MAAM,KAAK,GAAG,GAAG,CAAC,YAAY,CAAC;AACjC,EAAE,MAAM,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AACrE,EAAE,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC;AAC3C,EAAE,MAAM,KAAK,GAAG,GAAG,GAAG,cAAc,CAAC;AACrC,EAAE,IAAI,GAAG,GAAG,CAAC,CAAC;AACd,EAAE,IAAI,KAAK,GAAG,CAAC,CAAC;AAChB,EAAE,IAAI,SAAS,GAAG,CAAC,CAAC;AACpB,EAAE,KAAK,MAAM,SAAS,IAAI,OAAO,EAAE;AACnC,IAAI,IAAI,SAAS,GAAG,KAAK,EAAE;AAC3B,MAAM,SAAS;AACf,KAAK;AACL,IAAI,MAAM,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;AACnC,IAAI,IAAI,GAAG,CAAC,MAAM,IAAI,IAAI,EAAE;AAC5B,MAAM,GAAG,EAAE,CAAC;AACZ,KAAK,MAAM,IAAI,GAAG,CAAC,MAAM,IAAI,UAAU,EAAE;AACzC,MAAM,SAAS,EAAE,CAAC;AAClB,KAAK,MAAM,IAAI,GAAG,CAAC,MAAM,IAAI,MAAM,EAAE;AACrC,MAAM,KAAK,EAAE,CAAC;AACd,KAAK;AACL,GAAG;AACH,EAAE,IAAI,MAAM,GAAG,WAAW,CAAC,GAAG,GAAG,SAAS,EAAE,GAAG,GAAG,SAAS,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC;AAC3E,EAAE,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,MAAM,CAAC;AACvD,EAAE,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC;AAChD,EAAE,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC;AAC7C,EAAE,MAAM,MAAM,GAAG;AACjB,IAAI,KAAK,EAAE,IAAI;AACf,IAAI,OAAO,EAAE,MAAM;AACnB,IAAI,KAAK;AACT,IAAI,UAAU;AACd,IAAI,KAAK;AACT,GAAG,CAAC;AACJ,EAAE,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;AAChC,EAAE,OAAO,IAAI,QAAQ,CAAC,GAAG,EAAE;AAC3B,IAAI,OAAO,EAAE;AACb,MAAM,cAAc,EAAE,eAAe;AACrC,KAAK;AACL,GAAG,CAAC,CAAC;AACL;;;;"}
-99
View File
@@ -1,99 +0,0 @@
import { j as json } from './index-2b68e648.js';
import { a as auth } from './webhook-8fe4f1b9.js';
import { b as GetCommentsForIssue, A as AddComment } from './github-54c09baa.js';
import { p as public_env } from './shared-server-58a5f352.js';
import fs from 'fs-extra';
import './tool-153dc604.js';
import 'randomstring';
import 'axios';
import 'marked';
async function GET({ request, params }) {
const authError = auth(request);
if (authError !== null) {
return json(
{ error: authError.message },
{
status: 401
}
);
}
const incidentNumber = params.incidentNumber;
if (!incidentNumber || isNaN(incidentNumber)) {
return json(
{ error: "Invalid incidentNumber" },
{
status: 400
}
);
}
let site = JSON.parse(fs.readFileSync(public_env.PUBLIC_KENER_FOLDER + "/site.json", "utf8"));
let github = site.github;
let resp = await GetCommentsForIssue(incidentNumber, github);
return json(
resp.map((comment) => {
return {
commentID: comment.id,
body: comment.body,
createdAt: Math.floor(new Date(comment.created_at).getTime() / 1e3)
};
}),
{
status: 200
}
);
}
async function POST({ request, params }) {
const authError = auth(request);
if (authError !== null) {
return json(
{ error: authError.message },
{
status: 401
}
);
}
const incidentNumber = params.incidentNumber;
if (!incidentNumber || isNaN(incidentNumber)) {
return json(
{ error: "Invalid incidentNumber" },
{
status: 400
}
);
}
const payload = await request.json();
let body = payload.body;
if (!body || typeof body !== "string") {
return json(
{ error: "Invalid body" },
{
status: 400
}
);
}
let site = JSON.parse(fs.readFileSync(public_env.PUBLIC_KENER_FOLDER + "/site.json", "utf8"));
let github = site.github;
let resp = await AddComment(github, incidentNumber, body);
if (resp === null) {
return json(
{ error: "github error" },
{
status: 400
}
);
}
return json(
{
commentID: resp.id,
body: resp.body,
createdAt: Math.floor(new Date(resp.created_at).getTime() / 1e3)
},
{
status: 200
}
);
}
export { GET, POST };
//# sourceMappingURL=_server-170f9674.js.map
File diff suppressed because one or more lines are too long
-29
View File
@@ -1,29 +0,0 @@
import { j as json } from './index-2b68e648.js';
import { a as auth, s as store } from './webhook-8fe4f1b9.js';
import 'fs-extra';
import './shared-server-58a5f352.js';
import './tool-153dc604.js';
import './github-54c09baa.js';
import 'axios';
import 'marked';
import 'randomstring';
async function POST({ request }) {
const payload = await request.json();
const authError = auth(request);
if (authError !== null) {
return json(
{ error: authError.message },
{
status: 401
}
);
}
let resp = store(payload);
return json(resp, {
status: resp.status
});
}
export { POST };
//# sourceMappingURL=_server-3b31b07f.js.map
@@ -1 +0,0 @@
{"version":3,"file":"_server-3b31b07f.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/status/_server.js"],"sourcesContent":["import { j as json } from \"../../../../chunks/index.js\";\nimport { a as auth, s as store } from \"../../../../chunks/webhook.js\";\nasync function POST({ request }) {\n const payload = await request.json();\n const authError = auth(request);\n if (authError !== null) {\n return json(\n { error: authError.message },\n {\n status: 401\n }\n );\n }\n let resp = store(payload);\n return json(resp, {\n status: resp.status\n });\n}\nexport {\n POST\n};\n"],"names":[],"mappings":";;;;;;;;;;AAEA,eAAe,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE;AACjC,EAAE,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;AACvC,EAAE,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;AAClC,EAAE,IAAI,SAAS,KAAK,IAAI,EAAE;AAC1B,IAAI,OAAO,IAAI;AACf,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,OAAO,EAAE;AAClC,MAAM;AACN,QAAQ,MAAM,EAAE,GAAG;AACnB,OAAO;AACP,KAAK,CAAC;AACN,GAAG;AACH,EAAE,IAAI,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;AAC5B,EAAE,OAAO,IAAI,CAAC,IAAI,EAAE;AACpB,IAAI,MAAM,EAAE,IAAI,CAAC,MAAM;AACvB,GAAG,CAAC,CAAC;AACL;;;;"}
-48
View File
@@ -1,48 +0,0 @@
import { j as json } from './index-2b68e648.js';
import { a as auth, P as ParseIncidentPayload, G as GHIssueToKenerIncident } from './webhook-8fe4f1b9.js';
import { C as CreateIssue } from './github-54c09baa.js';
import { p as public_env } from './shared-server-58a5f352.js';
import fs from 'fs-extra';
import './tool-153dc604.js';
import 'randomstring';
import 'axios';
import 'marked';
async function POST({ request }) {
const payload = await request.json();
const authError = auth(request);
if (authError !== null) {
return json(
{ error: authError.message },
{
status: 401
}
);
}
let { title, body, githubLabels, error } = ParseIncidentPayload(payload);
if (error) {
return json(
{ error },
{
status: 400
}
);
}
let site = JSON.parse(fs.readFileSync(public_env.PUBLIC_KENER_FOLDER + "/site.json", "utf8"));
let github = site.github;
let resp = await CreateIssue(github, title, body, githubLabels);
if (resp === null) {
return json(
{ error: "github error" },
{
status: 400
}
);
}
return json(GHIssueToKenerIncident(resp), {
status: 200
});
}
export { POST };
//# sourceMappingURL=_server-4b5f65fa.js.map
@@ -1 +0,0 @@
{"version":3,"file":"_server-4b5f65fa.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/incident/_server.js"],"sourcesContent":["import { j as json } from \"../../../../chunks/index.js\";\nimport { a as auth, P as ParseIncidentPayload, G as GHIssueToKenerIncident } from \"../../../../chunks/webhook.js\";\nimport { C as CreateIssue } from \"../../../../chunks/github.js\";\nimport { p as public_env } from \"../../../../chunks/shared-server.js\";\nimport fs from \"fs-extra\";\nasync function POST({ request }) {\n const payload = await request.json();\n const authError = auth(request);\n if (authError !== null) {\n return json(\n { error: authError.message },\n {\n status: 401\n }\n );\n }\n let { title, body, githubLabels, error } = ParseIncidentPayload(payload);\n if (error) {\n return json(\n { error },\n {\n status: 400\n }\n );\n }\n let site = JSON.parse(fs.readFileSync(public_env.PUBLIC_KENER_FOLDER + \"/site.json\", \"utf8\"));\n let github = site.github;\n let resp = await CreateIssue(github, title, body, githubLabels);\n if (resp === null) {\n return json(\n { error: \"github error\" },\n {\n status: 400\n }\n );\n }\n return json(GHIssueToKenerIncident(resp), {\n status: 200\n });\n}\nexport {\n POST\n};\n"],"names":[],"mappings":";;;;;;;;;;AAKA,eAAe,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE;AACjC,EAAE,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;AACvC,EAAE,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;AAClC,EAAE,IAAI,SAAS,KAAK,IAAI,EAAE;AAC1B,IAAI,OAAO,IAAI;AACf,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,OAAO,EAAE;AAClC,MAAM;AACN,QAAQ,MAAM,EAAE,GAAG;AACnB,OAAO;AACP,KAAK,CAAC;AACN,GAAG;AACH,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC3E,EAAE,IAAI,KAAK,EAAE;AACb,IAAI,OAAO,IAAI;AACf,MAAM,EAAE,KAAK,EAAE;AACf,MAAM;AACN,QAAQ,MAAM,EAAE,GAAG;AACnB,OAAO;AACP,KAAK,CAAC;AACN,GAAG;AACH,EAAE,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,mBAAmB,GAAG,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;AAChG,EAAE,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;AAC3B,EAAE,IAAI,IAAI,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;AAClE,EAAE,IAAI,IAAI,KAAK,IAAI,EAAE;AACrB,IAAI,OAAO,IAAI;AACf,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE;AAC/B,MAAM;AACN,QAAQ,MAAM,EAAE,GAAG;AACnB,OAAO;AACP,KAAK,CAAC;AACN,GAAG;AACH,EAAE,OAAO,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,EAAE;AAC5C,IAAI,MAAM,EAAE,GAAG;AACf,GAAG,CAAC,CAAC;AACL;;;;"}
-74
View File
@@ -1,74 +0,0 @@
async function GET({ url, params }) {
const { tag } = params;
const uriOriginal = url.href;
let theme = "light";
if (uriOriginal.search("theme=dark") !== -1) {
theme = "dark";
}
const uriEmbedded = uriOriginal.split("/js")[0];
const currentSlug = tag;
const js = `
(function () {
var createEmbedFrame = function () {
var uid = "KENER_" + ~~(new Date().getTime() / 86400000);
var uriOriginal = "${uriOriginal}";
var uriOriginalNoProtocol = uriOriginal.split("//").pop();
var uriEmbedded = "${uriEmbedded}?theme=${theme}";
var currentSlug = "${currentSlug}";
var target = document.querySelector("script[src*='" + uriOriginalNoProtocol + "']");
var iframe = document.createElement("iframe");
iframe.src = uriEmbedded;
iframe.id = uid;
iframe.width = "0%";
iframe.height = "0";
iframe.frameBorder = "0";
iframe.allowtransparency = true;
iframe.sandbox = "allow-modals allow-forms allow-same-origin allow-scripts allow-popups allow-top-navigation-by-user-activation allow-downloads";
iframe.allow = "midi; geolocation; microphone; camera; display-capture; encrypted-media;";
target.parentNode.insertBefore(iframe, target.nextSibling);
var setHeight = function (data) {
if (data.slug === currentSlug) {
var height = data.height;
iframe.height = height;
}
};
var setWidth = function (data) {
if (data.slug === currentSlug) {
var width = data.width;
iframe.width = width;
}
};
var listeners = function (event) {
var eventName = event.data[0];
var data = event.data[1];
if(event.data.height !== undefined) {
setHeight(event.data);
}
if(event.data.width !== undefined) {
setWidth(event.data);
}
};
window.addEventListener("message", listeners, false);
};
setTimeout(createEmbedFrame, 5);
}).call(this);
`;
return new Response(js, {
headers: {
"Content-Type": "application/javascript"
}
});
}
export { GET };
//# sourceMappingURL=_server-5f9f1aee.js.map
@@ -1 +0,0 @@
{"version":3,"file":"_server-5f9f1aee.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/embed-_tag_/js/_server.js"],"sourcesContent":["async function GET({ url, params }) {\n const { tag } = params;\n const uriOriginal = url.href;\n let theme = \"light\";\n if (uriOriginal.search(\"theme=dark\") !== -1) {\n theme = \"dark\";\n }\n const uriEmbedded = uriOriginal.split(\"/js\")[0];\n const currentSlug = tag;\n const js = `\n\t(function () {\n var createEmbedFrame = function () {\n var uid = \"KENER_\" + ~~(new Date().getTime() / 86400000);\n var uriOriginal = \"${uriOriginal}\";\n var uriOriginalNoProtocol = uriOriginal.split(\"//\").pop();\n var uriEmbedded = \"${uriEmbedded}?theme=${theme}\";\n var currentSlug = \"${currentSlug}\";\n var target = document.querySelector(\"script[src*='\" + uriOriginalNoProtocol + \"']\");\n var iframe = document.createElement(\"iframe\");\n\n iframe.src = uriEmbedded;\n iframe.id = uid;\n iframe.width = \"0%\";\n iframe.height = \"0\";\n iframe.frameBorder = \"0\";\n iframe.allowtransparency = true;\n iframe.sandbox = \"allow-modals allow-forms allow-same-origin allow-scripts allow-popups allow-top-navigation-by-user-activation allow-downloads\";\n iframe.allow = \"midi; geolocation; microphone; camera; display-capture; encrypted-media;\";\n\n target.parentNode.insertBefore(iframe, target.nextSibling);\n\n var setHeight = function (data) {\n\t\n if (data.slug === currentSlug) {\n var height = data.height;\n iframe.height = height;\n }\n };\n var setWidth = function (data) {\n\t\t\n if (data.slug === currentSlug) {\n var width = data.width;\n iframe.width = width;\n }\n };\n\n var listeners = function (event) {\n var eventName = event.data[0];\n var data = event.data[1];\n\t\t\tif(event.data.height !== undefined) {\n\t\t\t\tsetHeight(event.data);\n\t\t\t}\n\t\t\tif(event.data.width !== undefined) {\n\t\t\t\tsetWidth(event.data);\n\t\t\t}\n \n };\n\n window.addEventListener(\"message\", listeners, false);\n };\n\n setTimeout(createEmbedFrame, 5);\n}).call(this);\n\n\t`;\n return new Response(js, {\n headers: {\n \"Content-Type\": \"application/javascript\"\n }\n });\n}\nexport {\n GET\n};\n"],"names":[],"mappings":"AAAA,eAAe,GAAG,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE;AACpC,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC;AACzB,EAAE,MAAM,WAAW,GAAG,GAAG,CAAC,IAAI,CAAC;AAC/B,EAAE,IAAI,KAAK,GAAG,OAAO,CAAC;AACtB,EAAE,IAAI,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE;AAC/C,IAAI,KAAK,GAAG,MAAM,CAAC;AACnB,GAAG;AACH,EAAE,MAAM,WAAW,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAClD,EAAE,MAAM,WAAW,GAAG,GAAG,CAAC;AAC1B,EAAE,MAAM,EAAE,GAAG,CAAC;AACd;AACA;AACA;AACA,2BAA2B,EAAE,WAAW,CAAC;AACzC;AACA,2BAA2B,EAAE,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC;AACxD,2BAA2B,EAAE,WAAW,CAAC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,CAAC;AACH,EAAE,OAAO,IAAI,QAAQ,CAAC,EAAE,EAAE;AAC1B,IAAI,OAAO,EAAE;AACb,MAAM,cAAc,EAAE,wBAAwB;AAC9C,KAAK;AACL,GAAG,CAAC,CAAC;AACL;;;;"}
-89
View File
@@ -1,89 +0,0 @@
import { j as json } from './index-2b68e648.js';
import { a as auth, G as GHIssueToKenerIncident } from './webhook-8fe4f1b9.js';
import { a as GetIncidentByNumber, c as UpdateIssueLabels } from './github-54c09baa.js';
import { p as public_env } from './shared-server-58a5f352.js';
import fs from 'fs-extra';
import './tool-153dc604.js';
import 'randomstring';
import 'axios';
import 'marked';
async function POST({ request, params }) {
const payload = await request.json();
const incidentNumber = params.incidentNumber;
const authError = auth(request);
if (authError !== null) {
return json(
{ error: authError.message },
{
status: 401
}
);
}
let isIdentified = payload.isIdentified;
let isResolved = payload.isResolved;
let endDatetime = payload.endDatetime;
if (!incidentNumber || isNaN(incidentNumber)) {
return json(
{ error: "Invalid incidentNumber" },
{
status: 400
}
);
}
if (endDatetime && typeof endDatetime !== "number") {
return json(
{ error: "Invalid endDatetime" },
{
status: 400
}
);
}
let site = JSON.parse(fs.readFileSync(public_env.PUBLIC_KENER_FOLDER + "/site.json", "utf8"));
let github = site.github;
let issue = await GetIncidentByNumber(github, incidentNumber);
if (issue === null) {
return json(
{ error: "github error" },
{
status: 400
}
);
}
let labels = issue.labels.map((label) => {
return label.name;
});
if (isIdentified !== void 0) {
labels = labels.filter((label) => label !== "identified");
if (isIdentified === true) {
labels.push("identified");
}
}
if (isResolved !== void 0) {
labels = labels.filter((label) => label !== "resolved");
if (isResolved === true) {
labels.push("resolved");
}
}
let body = issue.body;
if (endDatetime) {
body = body.replace(/\[end_datetime:(\d+)\]/g, "");
body = body.trim();
body = body + ` [end_datetime:${endDatetime}]`;
}
let resp = await UpdateIssueLabels(github, incidentNumber, labels, body);
if (resp === null) {
return json(
{ error: "github error" },
{
status: 400
}
);
}
return json(GHIssueToKenerIncident(resp), {
status: 200
});
}
export { POST };
//# sourceMappingURL=_server-7c9d54a2.js.map
File diff suppressed because one or more lines are too long
-31
View File
@@ -1,31 +0,0 @@
import { p as public_env } from './shared-server-58a5f352.js';
import fs from 'fs-extra';
import { a as StatusColor } from './helpers-1d8653cf.js';
import { makeBadge } from 'badge-maker';
const monitors = JSON.parse(fs.readFileSync(public_env.PUBLIC_KENER_FOLDER + "/monitors.json", "utf8"));
async function GET({ params, setHeaders, url }) {
const { path0Day, name } = monitors.find((monitor) => monitor.tag === params.tag);
const dayData = JSON.parse(fs.readFileSync(path0Day, "utf8"));
const lastObj = dayData[Object.keys(dayData)[Object.keys(dayData).length - 1]];
const query = url.searchParams;
const labelColor = query.get("labelColor") || "#333";
const color = query.get("color") || StatusColor[lastObj.status];
const style = query.get("style") || "flat";
const format = {
label: name,
message: lastObj.status,
color,
labelColor,
style
};
const svg = makeBadge(format);
return new Response(svg, {
headers: {
"Content-Type": "image/svg+xml"
}
});
}
export { GET };
//# sourceMappingURL=_server-8528da92.js.map

Some files were not shown because too many files have changed in this diff Show More