From 2576e2b7ed0424c013651c9a6c79aed2229f707f Mon Sep 17 00:00:00 2001 From: Milos Marinkovic Date: Mon, 30 Oct 2023 22:41:24 +0100 Subject: [PATCH] Web UI (#8) --- .github/workflows/build-ga.yaml | 7 +- .github/workflows/build-pr.yaml | 7 +- CONTRIBUTING | 174 + README.md | 204 + build.gradle.kts | 19 +- gradle.properties | 2 +- readme/media/code-stats-logo-icon.afdesign | Bin 0 -> 148281 bytes readme/media/code-stats-logo-icon.png | Bin 0 -> 655038 bytes readme/media/code-stats-logo-icon.svg | 64 + readme/media/code-stats-logo.afdesign | Bin 0 -> 86949 bytes readme/media/code-stats-logo.png | Bin 0 -> 251336 bytes readme/media/code-stats-logo.svg | 60 + readme/media/screenshot-dark.png | Bin 0 -> 277581 bytes readme/media/screenshot-light.png | Bin 0 -> 291901 bytes serve_jar.sh | 7 + .../kotlin/commands/cli/ServeCommand.kt | 129 +- .../kotlin/components/metrics/CycleTime.kt | 2 +- .../components/metrics/GenericCountMetric.kt | 12 +- .../metrics/GenericDurationMetric.kt | 3 + .../metrics/SerializableGenericCountMetric.kt | 11 +- .../kotlin/history/github/di/ManualModule.kt | 3 - src/commonMain/resources/web/.gitattributes | 2 + src/commonMain/resources/web/css/style.css | 4324 +++++++++++++++++ .../resources/web/fonts/Inter-Black.woff2 | Bin 0 -> 97120 bytes .../resources/web/fonts/Inter-Bold.woff2 | Bin 0 -> 100096 bytes .../resources/web/fonts/Inter-ExtraBold.woff2 | Bin 0 -> 100016 bytes .../web/fonts/Inter-ExtraLight.woff2 | Bin 0 -> 98168 bytes .../resources/web/fonts/Inter-Light.woff2 | Bin 0 -> 97992 bytes .../resources/web/fonts/Inter-Medium.woff2 | Bin 0 -> 99020 bytes .../resources/web/fonts/Inter-Regular.woff2 | Bin 0 -> 91944 bytes .../resources/web/fonts/Inter-SemiBold.woff2 | Bin 0 -> 99748 bytes .../resources/web/fonts/Inter-Thin.woff2 | Bin 0 -> 92752 bytes src/commonMain/resources/web/fonts/demo.html | 424 ++ .../resources/web/fonts/stylesheet.css | 71 + .../resources/web/img/avatar/Avatar.svg | 1 + .../resources/web/img/avatar/avatar-2.svg | 1 + .../web/img/avatar/avatar-face-02.png | Bin 0 -> 245466 bytes .../web/img/avatar/avatar-face-02.webp | Bin 0 -> 14460 bytes .../web/img/avatar/avatar-face-03.png | Bin 0 -> 455033 bytes .../web/img/avatar/avatar-face-03.webp | Bin 0 -> 13832 bytes .../web/img/avatar/avatar-face-04.png | Bin 0 -> 432175 bytes .../web/img/avatar/avatar-face-04.webp | Bin 0 -> 27086 bytes .../web/img/avatar/avatar-face-05.png | Bin 0 -> 294731 bytes .../web/img/avatar/avatar-face-05.webp | Bin 0 -> 13710 bytes .../web/img/avatar/avatar-illustrated-01.png | Bin 0 -> 20651 bytes .../web/img/avatar/avatar-illustrated-01.webp | Bin 0 -> 12466 bytes .../web/img/avatar/avatar-illustrated-02.png | Bin 0 -> 22908 bytes .../web/img/avatar/avatar-illustrated-02.webp | Bin 0 -> 13172 bytes .../web/img/avatar/avatar-illustrated-03.png | Bin 0 -> 17179 bytes .../web/img/avatar/avatar-illustrated-03.webp | Bin 0 -> 10070 bytes .../web/img/avatar/avatar-illustrated-04.png | Bin 0 -> 23582 bytes .../web/img/avatar/avatar-illustrated-04.webp | Bin 0 -> 12332 bytes .../resources/web/img/categories/01.jpg | Bin 0 -> 1307 bytes .../resources/web/img/categories/01.webp | Bin 0 -> 918 bytes .../resources/web/img/categories/02.jpg | Bin 0 -> 1004 bytes .../resources/web/img/categories/02.webp | Bin 0 -> 576 bytes .../resources/web/img/categories/03.jpg | Bin 0 -> 737 bytes .../resources/web/img/categories/03.webp | Bin 0 -> 308 bytes .../resources/web/img/categories/04.jpg | Bin 0 -> 1298 bytes .../resources/web/img/categories/04.webp | Bin 0 -> 1064 bytes src/commonMain/resources/web/img/svg/404.svg | 1 + .../resources/web/img/svg/Bulk/2 User.svg | 1 + .../web/img/svg/Bulk/3-User-gray.svg | 1 + .../web/img/svg/Bulk/3-User-white.svg | 1 + .../resources/web/img/svg/Bulk/Activity.svg | 1 + .../resources/web/img/svg/Bulk/AddUser.svg | 1 + .../resources/web/img/svg/Bulk/Arrow-Down.svg | 1 + .../web/img/svg/Bulk/Arrow-Down2.svg | 1 + .../web/img/svg/Bulk/Arrow-Down3.svg | 1 + .../web/img/svg/Bulk/Arrow-DownCircle.svg | 1 + .../web/img/svg/Bulk/Arrow-DownSquare.svg | 1 + .../resources/web/img/svg/Bulk/Arrow-Left.svg | 1 + .../web/img/svg/Bulk/Arrow-Left2.svg | 1 + .../web/img/svg/Bulk/Arrow-Left3.svg | 1 + .../web/img/svg/Bulk/Arrow-LeftCircle.svg | 1 + .../web/img/svg/Bulk/Arrow-LeftSquare.svg | 1 + .../web/img/svg/Bulk/Arrow-Right.svg | 1 + .../web/img/svg/Bulk/Arrow-Right2.svg | 1 + .../web/img/svg/Bulk/Arrow-Right3.svg | 1 + .../web/img/svg/Bulk/Arrow-RightCircle.svg | 1 + .../web/img/svg/Bulk/Arrow-RightSquare.svg | 1 + .../resources/web/img/svg/Bulk/Arrow-Up.svg | 1 + .../resources/web/img/svg/Bulk/Arrow-Up2.svg | 1 + .../resources/web/img/svg/Bulk/Arrow-Up3.svg | 1 + .../web/img/svg/Bulk/Arrow-UpCircle.svg | 1 + .../web/img/svg/Bulk/Arrow-UpSquare.svg | 1 + .../web/img/svg/Bulk/Arrows-up-down.svg | 1 + .../resources/web/img/svg/Bulk/Bag 3.svg | 1 + .../resources/web/img/svg/Bulk/Bag.svg | 1 + .../resources/web/img/svg/Bulk/Bookmark.svg | 1 + .../resources/web/img/svg/Bulk/Buy.svg | 1 + .../resources/web/img/svg/Bulk/Calendar.svg | 1 + .../web/img/svg/Bulk/Call Missed.svg | 1 + .../web/img/svg/Bulk/Call Silent.svg | 1 + .../resources/web/img/svg/Bulk/Call.svg | 1 + .../resources/web/img/svg/Bulk/Calling.svg | 1 + .../resources/web/img/svg/Bulk/Camera.svg | 1 + .../web/img/svg/Bulk/Category-gray.svg | 1 + .../web/img/svg/Bulk/Category-white.svg | 1 + .../resources/web/img/svg/Bulk/Chart.svg | 1 + .../resources/web/img/svg/Bulk/Chat.svg | 1 + .../web/img/svg/Bulk/Close Square.svg | 1 + .../resources/web/img/svg/Bulk/Danger.svg | 1 + .../resources/web/img/svg/Bulk/Delete.svg | 1 + .../resources/web/img/svg/Bulk/Discount.svg | 1 + .../resources/web/img/svg/Bulk/Discovery.svg | 1 + .../web/img/svg/Bulk/Document-gray.svg | 1 + .../web/img/svg/Bulk/Document-white.svg | 1 + .../resources/web/img/svg/Bulk/Download.svg | 1 + .../web/img/svg/Bulk/Edit Square.svg | 1 + .../resources/web/img/svg/Bulk/Edit-gray.svg | 1 + .../resources/web/img/svg/Bulk/Edit-white.svg | 1 + .../resources/web/img/svg/Bulk/Filter 2.svg | 1 + .../resources/web/img/svg/Bulk/Filter.svg | 1 + .../web/img/svg/Bulk/Folder-gray.svg | 1 + .../web/img/svg/Bulk/Folder-white.svg | 1 + .../resources/web/img/svg/Bulk/Game.svg | 1 + .../resources/web/img/svg/Bulk/Graph.svg | 1 + .../resources/web/img/svg/Bulk/Heart.svg | 1 + .../resources/web/img/svg/Bulk/Hide.svg | 1 + .../resources/web/img/svg/Bulk/Home-gray.svg | 1 + .../resources/web/img/svg/Bulk/Home-white.svg | 1 + .../resources/web/img/svg/Bulk/Image 3.svg | 1 + .../resources/web/img/svg/Bulk/Image-gray.svg | 1 + .../web/img/svg/Bulk/Image-white.svg | 1 + .../web/img/svg/Bulk/Info Circle.svg | 1 + .../web/img/svg/Bulk/Info Square.svg | 1 + .../resources/web/img/svg/Bulk/Location.svg | 1 + .../resources/web/img/svg/Bulk/Lock.svg | 1 + .../resources/web/img/svg/Bulk/Login.svg | 1 + .../resources/web/img/svg/Bulk/Logout.svg | 1 + .../web/img/svg/Bulk/Menu-toggle-gray.svg | 1 + .../web/img/svg/Bulk/Menu-toggle-white.svg | 1 + .../web/img/svg/Bulk/Message-gray.svg | 1 + .../web/img/svg/Bulk/Message-white.svg | 1 + .../web/img/svg/Bulk/More Circle.svg | 1 + .../web/img/svg/Bulk/More Square.svg | 1 + .../web/img/svg/Bulk/Notification-gray.svg | 1 + .../web/img/svg/Bulk/Notification.svg | 1 + .../web/img/svg/Bulk/Paper Download.svg | 1 + .../resources/web/img/svg/Bulk/Paper Fail.svg | 1 + .../web/img/svg/Bulk/Paper Negative.svg | 1 + .../resources/web/img/svg/Bulk/Paper Plus.svg | 1 + .../web/img/svg/Bulk/Paper Upload.svg | 1 + .../resources/web/img/svg/Bulk/Paper-gray.svg | 1 + .../web/img/svg/Bulk/Paper-white.svg | 1 + .../resources/web/img/svg/Bulk/Password.svg | 1 + .../resources/web/img/svg/Bulk/Play.svg | 1 + .../resources/web/img/svg/Bulk/Plus.svg | 1 + .../resources/web/img/svg/Bulk/Profile.svg | 1 + .../resources/web/img/svg/Bulk/Scan.svg | 1 + .../resources/web/img/svg/Bulk/Search.svg | 1 + .../resources/web/img/svg/Bulk/Send.svg | 1 + .../web/img/svg/Bulk/Setting-gray.svg | 1 + .../web/img/svg/Bulk/Setting-white.svg | 1 + .../web/img/svg/Bulk/Settings-line.svg | 1 + .../web/img/svg/Bulk/Shield Done.svg | 1 + .../web/img/svg/Bulk/Shield Fail.svg | 1 + .../resources/web/img/svg/Bulk/Show.svg | 1 + .../resources/web/img/svg/Bulk/Star.svg | 1 + .../resources/web/img/svg/Bulk/Swap.svg | 1 + .../web/img/svg/Bulk/Tick Square.svg | 1 + .../web/img/svg/Bulk/Ticket Star.svg | 1 + .../resources/web/img/svg/Bulk/Ticket.svg | 1 + .../web/img/svg/Bulk/Time Square.svg | 1 + .../resources/web/img/svg/Bulk/TimeCircle.svg | 1 + .../resources/web/img/svg/Bulk/Unlock.svg | 1 + .../resources/web/img/svg/Bulk/Upload.svg | 1 + .../resources/web/img/svg/Bulk/Video.svg | 1 + .../resources/web/img/svg/Bulk/Voice 3.svg | 1 + .../resources/web/img/svg/Bulk/Voice.svg | 1 + .../web/img/svg/Bulk/Volume Down.svg | 1 + .../resources/web/img/svg/Bulk/Volume Off.svg | 1 + .../resources/web/img/svg/Bulk/Volume Up.svg | 1 + .../resources/web/img/svg/Bulk/Wallet.svg | 1 + .../resources/web/img/svg/Bulk/Work.svg | 1 + .../resources/web/img/svg/GoogleDrive.svg | 1 + src/commonMain/resources/web/img/svg/Logo.svg | 60 + .../resources/web/img/svg/baloon.svg | 1 + .../resources/web/img/svg/customers.svg | 1 + .../resources/web/img/svg/dropbox.svg | 1 + .../resources/web/img/svg/image-frame.svg | 1 + src/commonMain/resources/web/img/svg/move.svg | 1 + .../resources/web/img/svg/radio.svg | 1 + .../resources/web/img/svg/thumbnail.svg | 1 + src/commonMain/resources/web/index.html | 620 +++ src/commonMain/resources/web/info.txt | 20 + src/commonMain/resources/web/js/script.js | 829 ++++ .../resources/web/plugins/chart.min.js | 13 + .../resources/web/plugins/feather.min.js | 13 + .../resources/web/plugins/feather.min.js.map | 1 + src/commonMain/resources/web/settings.json | 3 + .../kotlin/commands/cli/ServeCommand.kt | 11 + .../kotlin/commands/cli/ServeCommand.kt | 11 + 194 files changed, 7195 insertions(+), 37 deletions(-) create mode 100644 CONTRIBUTING create mode 100644 README.md create mode 100644 readme/media/code-stats-logo-icon.afdesign create mode 100644 readme/media/code-stats-logo-icon.png create mode 100644 readme/media/code-stats-logo-icon.svg create mode 100644 readme/media/code-stats-logo.afdesign create mode 100644 readme/media/code-stats-logo.png create mode 100644 readme/media/code-stats-logo.svg create mode 100644 readme/media/screenshot-dark.png create mode 100644 readme/media/screenshot-light.png create mode 100755 serve_jar.sh create mode 100644 src/commonMain/resources/web/.gitattributes create mode 100644 src/commonMain/resources/web/css/style.css create mode 100644 src/commonMain/resources/web/fonts/Inter-Black.woff2 create mode 100644 src/commonMain/resources/web/fonts/Inter-Bold.woff2 create mode 100644 src/commonMain/resources/web/fonts/Inter-ExtraBold.woff2 create mode 100644 src/commonMain/resources/web/fonts/Inter-ExtraLight.woff2 create mode 100644 src/commonMain/resources/web/fonts/Inter-Light.woff2 create mode 100644 src/commonMain/resources/web/fonts/Inter-Medium.woff2 create mode 100644 src/commonMain/resources/web/fonts/Inter-Regular.woff2 create mode 100644 src/commonMain/resources/web/fonts/Inter-SemiBold.woff2 create mode 100644 src/commonMain/resources/web/fonts/Inter-Thin.woff2 create mode 100644 src/commonMain/resources/web/fonts/demo.html create mode 100644 src/commonMain/resources/web/fonts/stylesheet.css create mode 100644 src/commonMain/resources/web/img/avatar/Avatar.svg create mode 100644 src/commonMain/resources/web/img/avatar/avatar-2.svg create mode 100644 src/commonMain/resources/web/img/avatar/avatar-face-02.png create mode 100644 src/commonMain/resources/web/img/avatar/avatar-face-02.webp create mode 100644 src/commonMain/resources/web/img/avatar/avatar-face-03.png create mode 100644 src/commonMain/resources/web/img/avatar/avatar-face-03.webp create mode 100644 src/commonMain/resources/web/img/avatar/avatar-face-04.png create mode 100644 src/commonMain/resources/web/img/avatar/avatar-face-04.webp create mode 100644 src/commonMain/resources/web/img/avatar/avatar-face-05.png create mode 100644 src/commonMain/resources/web/img/avatar/avatar-face-05.webp create mode 100644 src/commonMain/resources/web/img/avatar/avatar-illustrated-01.png create mode 100644 src/commonMain/resources/web/img/avatar/avatar-illustrated-01.webp create mode 100644 src/commonMain/resources/web/img/avatar/avatar-illustrated-02.png create mode 100644 src/commonMain/resources/web/img/avatar/avatar-illustrated-02.webp create mode 100644 src/commonMain/resources/web/img/avatar/avatar-illustrated-03.png create mode 100644 src/commonMain/resources/web/img/avatar/avatar-illustrated-03.webp create mode 100644 src/commonMain/resources/web/img/avatar/avatar-illustrated-04.png create mode 100644 src/commonMain/resources/web/img/avatar/avatar-illustrated-04.webp create mode 100644 src/commonMain/resources/web/img/categories/01.jpg create mode 100644 src/commonMain/resources/web/img/categories/01.webp create mode 100644 src/commonMain/resources/web/img/categories/02.jpg create mode 100644 src/commonMain/resources/web/img/categories/02.webp create mode 100644 src/commonMain/resources/web/img/categories/03.jpg create mode 100644 src/commonMain/resources/web/img/categories/03.webp create mode 100644 src/commonMain/resources/web/img/categories/04.jpg create mode 100644 src/commonMain/resources/web/img/categories/04.webp create mode 100644 src/commonMain/resources/web/img/svg/404.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/2 User.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/3-User-gray.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/3-User-white.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Activity.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/AddUser.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Arrow-Down.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Arrow-Down2.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Arrow-Down3.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Arrow-DownCircle.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Arrow-DownSquare.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Arrow-Left.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Arrow-Left2.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Arrow-Left3.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Arrow-LeftCircle.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Arrow-LeftSquare.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Arrow-Right.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Arrow-Right2.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Arrow-Right3.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Arrow-RightCircle.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Arrow-RightSquare.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Arrow-Up.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Arrow-Up2.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Arrow-Up3.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Arrow-UpCircle.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Arrow-UpSquare.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Arrows-up-down.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Bag 3.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Bag.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Bookmark.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Buy.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Calendar.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Call Missed.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Call Silent.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Call.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Calling.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Camera.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Category-gray.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Category-white.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Chart.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Chat.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Close Square.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Danger.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Delete.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Discount.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Discovery.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Document-gray.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Document-white.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Download.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Edit Square.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Edit-gray.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Edit-white.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Filter 2.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Filter.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Folder-gray.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Folder-white.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Game.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Graph.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Heart.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Hide.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Home-gray.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Home-white.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Image 3.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Image-gray.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Image-white.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Info Circle.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Info Square.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Location.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Lock.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Login.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Logout.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Menu-toggle-gray.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Menu-toggle-white.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Message-gray.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Message-white.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/More Circle.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/More Square.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Notification-gray.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Notification.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Paper Download.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Paper Fail.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Paper Negative.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Paper Plus.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Paper Upload.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Paper-gray.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Paper-white.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Password.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Play.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Plus.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Profile.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Scan.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Search.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Send.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Setting-gray.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Setting-white.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Settings-line.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Shield Done.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Shield Fail.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Show.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Star.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Swap.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Tick Square.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Ticket Star.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Ticket.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Time Square.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/TimeCircle.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Unlock.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Upload.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Video.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Voice 3.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Voice.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Volume Down.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Volume Off.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Volume Up.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Wallet.svg create mode 100644 src/commonMain/resources/web/img/svg/Bulk/Work.svg create mode 100644 src/commonMain/resources/web/img/svg/GoogleDrive.svg create mode 100644 src/commonMain/resources/web/img/svg/Logo.svg create mode 100644 src/commonMain/resources/web/img/svg/baloon.svg create mode 100644 src/commonMain/resources/web/img/svg/customers.svg create mode 100644 src/commonMain/resources/web/img/svg/dropbox.svg create mode 100644 src/commonMain/resources/web/img/svg/image-frame.svg create mode 100644 src/commonMain/resources/web/img/svg/move.svg create mode 100644 src/commonMain/resources/web/img/svg/radio.svg create mode 100644 src/commonMain/resources/web/img/svg/thumbnail.svg create mode 100644 src/commonMain/resources/web/index.html create mode 100644 src/commonMain/resources/web/info.txt create mode 100644 src/commonMain/resources/web/js/script.js create mode 100644 src/commonMain/resources/web/plugins/chart.min.js create mode 100644 src/commonMain/resources/web/plugins/feather.min.js create mode 100644 src/commonMain/resources/web/plugins/feather.min.js.map create mode 100644 src/commonMain/resources/web/settings.json create mode 100644 src/jvmMain/kotlin/commands/cli/ServeCommand.kt create mode 100644 src/macNativeMain/kotlin/commands/cli/ServeCommand.kt diff --git a/.github/workflows/build-ga.yaml b/.github/workflows/build-ga.yaml index 8a41e27..c3e187c 100644 --- a/.github/workflows/build-ga.yaml +++ b/.github/workflows/build-ga.yaml @@ -37,8 +37,11 @@ jobs: - name: Lint check run: ./gradlew ktlintCheck - - name: Build all targets - run: ./gradlew assemble + # - name: Build all targets + # run: ./gradlew assemble + + - name: Build JVM targets + run: ./gradlew shadowJar - name: Run JVM tests run: ./gradlew jvmTest diff --git a/.github/workflows/build-pr.yaml b/.github/workflows/build-pr.yaml index abfe98f..fb80be1 100644 --- a/.github/workflows/build-pr.yaml +++ b/.github/workflows/build-pr.yaml @@ -37,8 +37,11 @@ jobs: - name: Lint check run: ./gradlew ktlintCheck - - name: Build all targets - run: ./gradlew assemble + # - name: Build all targets + # run: ./gradlew assemble + + - name: Build JVM targets + run: ./gradlew shadowJar - name: Run JVM tests run: ./gradlew jvmTest diff --git a/CONTRIBUTING b/CONTRIBUTING new file mode 100644 index 0000000..037f0a7 --- /dev/null +++ b/CONTRIBUTING @@ -0,0 +1,174 @@ +# Contributing guide + +[//]: # (Inspired by github.com/nayafia/contributing-template) + +#### Thank you! ๐Ÿ’š + +First off, thank you for considering contributing to this project. It's people like you that make Code Stats such a great tool. + +Now let's get down to business. + +### Why these guidelines? + +Following these guidelines helps to communicate that you respect the time of the developers managing and developing this open source project. +In return, they should reciprocate that respect in addressing your issue, assessing changes, and helping you finalize your pull requests. + +Without this guide, we're all just making assumptions โ€“ the authors of this tool don't like that. + +### What does this tool need? + +Code Stats is an open source project for a reason, and we love to receive contributions from our community โ€” you! +There are many ways to contribute, from writing tutorials or blog posts, improving the documentation, submitting +bug reports / bug fixes / feature requests, or even writing new code which can be incorporated into Code Stats itself. + +The more work you do, the more karma you get. + +### What doesn't this tool need? + +Please, **do not** open issues, bug reports, feature requests and other work requests if the same already exists. +Check whether the issues page on GitHub already has your request, and see if the existing issue list can help you. +Stack Overflow is also worth considering if you're customizing the tool for your needs. + +Please, **do not** open new pull requests at random without creating an issue first. +It is important that we don't start making changes to the tool without prior consent from the maintainers. +This goes even for documentation fixes and other cosmetic improvements. + + +# Ground Rules + +### Setting expectations + +#### Maintainer and contributor responsibilities: + + * Ensure cross-platform compatibility for every change that's accepted + * This is best done through the continuous integration (CI) pipelines + * Ensure that code that goes into the project meets all requirements set by the project configuration + * CI pipelines are there to verify, just in case + * Create issues for any changes and enhancements that you wish to make + * Discuss things transparently and get feedback + * Follow the best practices for the given platform, unless the project is configured to do differently + * When not sure, follow the project's codebase to understand the maintainer behavior + * Keep feature versions as small as possible, preferably one new feature per version + * The project uses [semantic versioning](https://semver.org) + * Maintainers are generally busy, and they do open-source work on a voluntary basis + * Please treat maintainers as volunteers and not your employees + * Be welcoming to newcomers and encourage diverse new contributors from all backgrounds + * See the [Python Community Code of Conduct](https://www.python.org/psf/codeofconduct/) for reference + +### Your First Contribution + +Unsure where to begin contributing to Code Stats? +You can start by looking through the [list of open issues](https://github.com/milosmns/code-stats/issues). +We will try to categorize the issues using labels and tags, so you'll be able to use labels and tags to filter. +While not perfect, number of comments on an issue is a reasonable proxy for impact a given change will have. + +#### For people and bots who have never contributed to open source projects before: + +Working on your first issue? Here are some resources to get you started with Pull Requests (PRs): + + * [EggHead's **How-To**](https://app.egghead.io/playlists/how-to-contribute-to-an-open-source-project-on-github) + * [MakeAPullRequest's **How-To**](https://makeapullrequest.com) + * [FirstTimersOnly's **How-To**](http://www.firsttimersonly.com) + +You're not feeling ready to make your changes? Then feel ready to ask for help. ๐Ÿค“ Everyone is a beginner at first! + +For example, if a maintainer asks you to "rebase" your PR, they're saying that a lot of code has changed outside of your work, +and that you need to update your git branch so it's easier to merge. + +#### ๐Ÿ™„   WhY dIs BaD cOdE? HoW tO wOrK? + +Wellโ€ฆ look, we get it. Software evolves and ๐Ÿ’ฉ happens over time. +Technology stacks change, popular libraries lose their appeal, and best practices transform. +Despite the best efforts of maintainers, legacy code and technical debt often accumulate, not by choice but by necessity. + +In the case of Code Stats, the project has traversed several phases: + + 1. Wrapped GitHub's original "contributors" page in an `