diff --git a/coverage/coverage.out b/coverage/coverage.out index 45c5aea..e775c51 100644 --- a/coverage/coverage.out +++ b/coverage/coverage.out @@ -9,6 +9,30 @@ github.com/muety/wakapi/utils/strings.go:23.77,24.29 1 0 github.com/muety/wakapi/utils/strings.go:29.2,29.19 1 0 github.com/muety/wakapi/utils/strings.go:24.29,25.18 1 0 github.com/muety/wakapi/utils/strings.go:25.18,27.4 1 0 +github.com/muety/wakapi/utils/sync.go:11.66,13.12 2 0 +github.com/muety/wakapi/utils/sync.go:17.2,17.9 1 0 +github.com/muety/wakapi/utils/sync.go:13.12,16.3 2 0 +github.com/muety/wakapi/utils/sync.go:18.11,19.15 1 0 +github.com/muety/wakapi/utils/sync.go:20.29,21.14 1 0 +github.com/muety/wakapi/utils/template.go:13.41,15.16 2 0 +github.com/muety/wakapi/utils/template.go:18.2,18.23 1 0 +github.com/muety/wakapi/utils/template.go:15.16,17.3 1 0 +github.com/muety/wakapi/utils/template.go:21.37,22.30 1 0 +github.com/muety/wakapi/utils/template.go:25.2,25.10 1 0 +github.com/muety/wakapi/utils/template.go:22.30,24.3 1 0 +github.com/muety/wakapi/utils/template.go:28.83,33.16 4 0 +github.com/muety/wakapi/utils/template.go:37.2,37.29 1 0 +github.com/muety/wakapi/utils/template.go:62.2,62.23 1 0 +github.com/muety/wakapi/utils/template.go:33.16,35.3 1 0 +github.com/muety/wakapi/utils/template.go:37.29,39.51 2 0 +github.com/muety/wakapi/utils/template.go:43.3,44.17 2 0 +github.com/muety/wakapi/utils/template.go:47.3,48.17 2 0 +github.com/muety/wakapi/utils/template.go:52.3,55.17 3 0 +github.com/muety/wakapi/utils/template.go:59.3,59.27 1 0 +github.com/muety/wakapi/utils/template.go:39.51,40.12 1 0 +github.com/muety/wakapi/utils/template.go:44.17,46.4 1 0 +github.com/muety/wakapi/utils/template.go:48.17,50.4 1 0 +github.com/muety/wakapi/utils/template.go:55.17,57.4 1 0 github.com/muety/wakapi/utils/auth.go:14.79,16.54 2 0 github.com/muety/wakapi/utils/auth.go:20.2,22.16 3 0 github.com/muety/wakapi/utils/auth.go:26.2,28.45 3 0 @@ -23,31 +47,6 @@ github.com/muety/wakapi/utils/auth.go:45.56,49.2 3 0 github.com/muety/wakapi/utils/auth.go:51.55,54.16 3 0 github.com/muety/wakapi/utils/auth.go:57.2,57.16 1 0 github.com/muety/wakapi/utils/auth.go:54.16,56.3 1 0 -github.com/muety/wakapi/utils/cron.go:5.44,7.21 2 0 -github.com/muety/wakapi/utils/cron.go:10.2,10.20 1 0 -github.com/muety/wakapi/utils/cron.go:7.21,9.3 1 0 -github.com/muety/wakapi/utils/date.go:9.48,11.2 1 0 -github.com/muety/wakapi/utils/date.go:13.51,15.2 1 0 -github.com/muety/wakapi/utils/date.go:17.52,19.2 1 0 -github.com/muety/wakapi/utils/date.go:21.51,23.2 1 0 -github.com/muety/wakapi/utils/date.go:26.41,28.21 2 0 -github.com/muety/wakapi/utils/date.go:31.2,31.33 1 0 -github.com/muety/wakapi/utils/date.go:28.21,30.3 1 0 -github.com/muety/wakapi/utils/date.go:35.67,38.33 2 1 -github.com/muety/wakapi/utils/date.go:47.2,47.18 1 1 -github.com/muety/wakapi/utils/date.go:38.33,40.19 2 1 -github.com/muety/wakapi/utils/date.go:43.3,44.10 2 1 -github.com/muety/wakapi/utils/date.go:40.19,42.4 1 1 -github.com/muety/wakapi/utils/date.go:51.36,54.2 2 0 -github.com/muety/wakapi/utils/date.go:56.42,57.28 1 0 -github.com/muety/wakapi/utils/date.go:73.2,73.20 1 0 -github.com/muety/wakapi/utils/date.go:58.52,59.21 1 0 -github.com/muety/wakapi/utils/date.go:60.53,61.22 1 0 -github.com/muety/wakapi/utils/date.go:62.55,63.24 1 0 -github.com/muety/wakapi/utils/date.go:64.54,65.23 1 0 -github.com/muety/wakapi/utils/date.go:66.52,67.21 1 0 -github.com/muety/wakapi/utils/date.go:68.54,69.23 1 0 -github.com/muety/wakapi/utils/date.go:70.52,71.21 1 0 github.com/muety/wakapi/utils/db.go:10.34,11.37 1 0 github.com/muety/wakapi/utils/db.go:19.2,20.14 2 0 github.com/muety/wakapi/utils/db.go:11.37,13.110 2 0 @@ -69,14 +68,6 @@ github.com/muety/wakapi/utils/db.go:47.15,49.3 1 0 github.com/muety/wakapi/utils/dns.go:9.38,11.21 2 0 github.com/muety/wakapi/utils/dns.go:14.2,15.39 2 0 github.com/muety/wakapi/utils/dns.go:11.21,13.3 1 0 -github.com/muety/wakapi/utils/collection.go:5.52,6.26 1 0 -github.com/muety/wakapi/utils/collection.go:9.2,9.28 1 0 -github.com/muety/wakapi/utils/collection.go:6.26,8.3 1 0 -github.com/muety/wakapi/utils/collection.go:12.78,14.22 2 0 -github.com/muety/wakapi/utils/collection.go:20.2,20.11 1 0 -github.com/muety/wakapi/utils/collection.go:14.22,15.18 1 0 -github.com/muety/wakapi/utils/collection.go:18.3,18.12 1 0 -github.com/muety/wakapi/utils/collection.go:15.18,17.4 1 0 github.com/muety/wakapi/utils/http.go:20.13,22.2 1 1 github.com/muety/wakapi/utils/http.go:29.34,30.20 1 0 github.com/muety/wakapi/utils/http.go:33.2,33.19 1 0 @@ -112,95 +103,39 @@ github.com/muety/wakapi/utils/json.go:18.62,20.3 1 0 github.com/muety/wakapi/utils/json.go:22.29,24.3 1 0 github.com/muety/wakapi/utils/json.go:26.72,28.3 1 0 github.com/muety/wakapi/utils/json.go:29.70,31.3 1 0 -github.com/muety/wakapi/utils/sync.go:11.66,13.12 2 0 -github.com/muety/wakapi/utils/sync.go:17.2,17.9 1 0 -github.com/muety/wakapi/utils/sync.go:13.12,16.3 2 0 -github.com/muety/wakapi/utils/sync.go:18.11,19.15 1 0 -github.com/muety/wakapi/utils/sync.go:20.29,21.14 1 0 -github.com/muety/wakapi/utils/template.go:13.41,15.16 2 0 -github.com/muety/wakapi/utils/template.go:18.2,18.23 1 0 -github.com/muety/wakapi/utils/template.go:15.16,17.3 1 0 -github.com/muety/wakapi/utils/template.go:21.37,22.30 1 0 -github.com/muety/wakapi/utils/template.go:25.2,25.10 1 0 -github.com/muety/wakapi/utils/template.go:22.30,24.3 1 0 -github.com/muety/wakapi/utils/template.go:28.83,33.16 4 0 -github.com/muety/wakapi/utils/template.go:37.2,37.29 1 0 -github.com/muety/wakapi/utils/template.go:62.2,62.23 1 0 -github.com/muety/wakapi/utils/template.go:33.16,35.3 1 0 -github.com/muety/wakapi/utils/template.go:37.29,39.51 2 0 -github.com/muety/wakapi/utils/template.go:43.3,44.17 2 0 -github.com/muety/wakapi/utils/template.go:47.3,48.17 2 0 -github.com/muety/wakapi/utils/template.go:52.3,55.17 3 0 -github.com/muety/wakapi/utils/template.go:59.3,59.27 1 0 -github.com/muety/wakapi/utils/template.go:39.51,40.12 1 0 -github.com/muety/wakapi/utils/template.go:44.17,46.4 1 0 -github.com/muety/wakapi/utils/template.go:48.17,50.4 1 0 -github.com/muety/wakapi/utils/template.go:55.17,57.4 1 0 -github.com/muety/wakapi/config/session.go:9.46,10.25 1 0 -github.com/muety/wakapi/config/session.go:13.2,13.21 1 0 -github.com/muety/wakapi/config/session.go:10.25,12.3 1 0 -github.com/muety/wakapi/config/eventbus.go:26.13,28.2 1 1 -github.com/muety/wakapi/config/eventbus.go:30.26,32.2 1 0 -github.com/muety/wakapi/config/jobqueue.go:29.13,38.2 7 1 -github.com/muety/wakapi/config/jobqueue.go:40.48,41.34 1 1 -github.com/muety/wakapi/config/jobqueue.go:44.2,47.12 4 1 -github.com/muety/wakapi/config/jobqueue.go:41.34,43.3 1 0 -github.com/muety/wakapi/config/jobqueue.go:50.44,52.2 1 0 -github.com/muety/wakapi/config/jobqueue.go:54.48,55.35 1 0 -github.com/muety/wakapi/config/jobqueue.go:58.2,58.24 1 0 -github.com/muety/wakapi/config/jobqueue.go:55.35,57.3 1 0 -github.com/muety/wakapi/config/jobqueue.go:61.43,63.37 2 0 -github.com/muety/wakapi/config/jobqueue.go:70.2,70.16 1 0 -github.com/muety/wakapi/config/jobqueue.go:63.37,69.3 1 0 -github.com/muety/wakapi/config/jobqueue.go:73.20,74.30 1 0 -github.com/muety/wakapi/config/jobqueue.go:74.30,76.3 1 0 -github.com/muety/wakapi/config/jobqueue.go:79.20,81.2 1 0 -github.com/muety/wakapi/config/jobqueue.go:83.21,85.2 1 1 -github.com/muety/wakapi/config/db_opts.go:11.56,13.2 1 0 -github.com/muety/wakapi/config/db_opts.go:15.59,17.2 1 0 -github.com/muety/wakapi/config/db_opts.go:19.61,21.39 1 0 -github.com/muety/wakapi/config/db_opts.go:28.2,28.30 1 0 -github.com/muety/wakapi/config/db_opts.go:34.2,34.12 1 0 -github.com/muety/wakapi/config/db_opts.go:21.39,23.100 1 0 -github.com/muety/wakapi/config/db_opts.go:23.100,25.4 1 0 -github.com/muety/wakapi/config/db_opts.go:28.30,29.68 1 0 -github.com/muety/wakapi/config/db_opts.go:29.68,31.4 1 0 -github.com/muety/wakapi/config/fs.go:9.56,10.19 1 0 -github.com/muety/wakapi/config/fs.go:13.2,13.19 1 0 -github.com/muety/wakapi/config/fs.go:10.19,12.3 1 0 -github.com/muety/wakapi/config/sentry.go:21.35,23.2 1 0 -github.com/muety/wakapi/config/sentry.go:25.62,28.2 2 0 -github.com/muety/wakapi/config/sentry.go:38.33,45.2 2 0 -github.com/muety/wakapi/config/sentry.go:47.79,50.2 2 0 -github.com/muety/wakapi/config/sentry.go:52.72,56.2 3 0 -github.com/muety/wakapi/config/sentry.go:58.71,62.2 3 0 -github.com/muety/wakapi/config/sentry.go:64.71,68.2 3 0 -github.com/muety/wakapi/config/sentry.go:70.72,74.2 3 0 -github.com/muety/wakapi/config/sentry.go:76.72,80.2 3 0 -github.com/muety/wakapi/config/sentry.go:82.67,87.18 4 0 -github.com/muety/wakapi/config/sentry.go:99.2,99.28 1 0 -github.com/muety/wakapi/config/sentry.go:87.18,88.65 1 0 -github.com/muety/wakapi/config/sentry.go:88.65,91.45 3 0 -github.com/muety/wakapi/config/sentry.go:94.4,95.10 2 0 -github.com/muety/wakapi/config/sentry.go:91.45,93.5 1 0 -github.com/muety/wakapi/config/sentry.go:109.50,114.91 1 0 -github.com/muety/wakapi/config/sentry.go:114.91,115.29 1 0 -github.com/muety/wakapi/config/sentry.go:119.4,122.38 3 0 -github.com/muety/wakapi/config/sentry.go:127.4,127.39 1 0 -github.com/muety/wakapi/config/sentry.go:130.4,130.69 1 0 -github.com/muety/wakapi/config/sentry.go:115.29,117.5 1 0 -github.com/muety/wakapi/config/sentry.go:122.38,123.38 1 0 -github.com/muety/wakapi/config/sentry.go:123.38,125.6 1 0 -github.com/muety/wakapi/config/sentry.go:127.39,129.5 1 0 -github.com/muety/wakapi/config/sentry.go:132.79,133.27 1 0 -github.com/muety/wakapi/config/sentry.go:140.4,140.16 1 0 -github.com/muety/wakapi/config/sentry.go:133.27,134.84 1 0 -github.com/muety/wakapi/config/sentry.go:134.84,135.45 1 0 -github.com/muety/wakapi/config/sentry.go:135.45,137.7 1 0 -github.com/muety/wakapi/config/sentry.go:142.17,144.3 1 0 -github.com/muety/wakapi/config/sentry.go:148.43,153.51 2 0 -github.com/muety/wakapi/config/sentry.go:156.2,156.11 1 0 -github.com/muety/wakapi/config/sentry.go:153.51,155.3 1 0 +github.com/muety/wakapi/utils/collection.go:5.52,6.26 1 0 +github.com/muety/wakapi/utils/collection.go:9.2,9.28 1 0 +github.com/muety/wakapi/utils/collection.go:6.26,8.3 1 0 +github.com/muety/wakapi/utils/collection.go:12.78,14.22 2 0 +github.com/muety/wakapi/utils/collection.go:20.2,20.11 1 0 +github.com/muety/wakapi/utils/collection.go:14.22,15.18 1 0 +github.com/muety/wakapi/utils/collection.go:18.3,18.12 1 0 +github.com/muety/wakapi/utils/collection.go:15.18,17.4 1 0 +github.com/muety/wakapi/utils/cron.go:5.44,7.21 2 0 +github.com/muety/wakapi/utils/cron.go:10.2,10.20 1 0 +github.com/muety/wakapi/utils/cron.go:7.21,9.3 1 0 +github.com/muety/wakapi/utils/date.go:9.48,11.2 1 0 +github.com/muety/wakapi/utils/date.go:13.51,15.2 1 0 +github.com/muety/wakapi/utils/date.go:17.52,19.2 1 0 +github.com/muety/wakapi/utils/date.go:21.51,23.2 1 0 +github.com/muety/wakapi/utils/date.go:26.41,28.21 2 0 +github.com/muety/wakapi/utils/date.go:31.2,31.33 1 0 +github.com/muety/wakapi/utils/date.go:28.21,30.3 1 0 +github.com/muety/wakapi/utils/date.go:35.67,38.33 2 1 +github.com/muety/wakapi/utils/date.go:47.2,47.18 1 1 +github.com/muety/wakapi/utils/date.go:38.33,40.19 2 1 +github.com/muety/wakapi/utils/date.go:43.3,44.10 2 1 +github.com/muety/wakapi/utils/date.go:40.19,42.4 1 1 +github.com/muety/wakapi/utils/date.go:51.36,54.2 2 0 +github.com/muety/wakapi/utils/date.go:56.42,57.28 1 0 +github.com/muety/wakapi/utils/date.go:73.2,73.20 1 0 +github.com/muety/wakapi/utils/date.go:58.52,59.21 1 0 +github.com/muety/wakapi/utils/date.go:60.53,61.22 1 0 +github.com/muety/wakapi/utils/date.go:62.55,63.24 1 0 +github.com/muety/wakapi/utils/date.go:64.54,65.23 1 0 +github.com/muety/wakapi/utils/date.go:66.52,67.21 1 0 +github.com/muety/wakapi/utils/date.go:68.54,69.23 1 0 +github.com/muety/wakapi/utils/date.go:70.52,71.21 1 0 github.com/muety/wakapi/config/config.go:183.64,185.2 1 0 github.com/muety/wakapi/config/config.go:187.59,189.2 1 0 github.com/muety/wakapi/config/config.go:191.82,201.2 1 0 @@ -311,46 +246,71 @@ github.com/muety/wakapi/config/db.go:84.2,91.3 1 1 github.com/muety/wakapi/config/db.go:75.25,77.3 1 0 github.com/muety/wakapi/config/db.go:80.16,82.3 1 0 github.com/muety/wakapi/config/db.go:94.54,96.2 1 1 -github.com/muety/wakapi/middlewares/logging.go:20.102,21.43 1 0 -github.com/muety/wakapi/middlewares/logging.go:21.43,27.3 1 0 -github.com/muety/wakapi/middlewares/logging.go:30.80,39.44 7 0 -github.com/muety/wakapi/middlewares/logging.go:45.2,54.3 1 0 -github.com/muety/wakapi/middlewares/logging.go:39.44,40.38 1 0 -github.com/muety/wakapi/middlewares/logging.go:40.38,42.4 1 0 -github.com/muety/wakapi/middlewares/logging.go:57.41,59.14 2 0 -github.com/muety/wakapi/middlewares/logging.go:62.2,62.14 1 0 -github.com/muety/wakapi/middlewares/logging.go:65.2,65.11 1 0 -github.com/muety/wakapi/middlewares/logging.go:59.14,61.3 1 0 -github.com/muety/wakapi/middlewares/logging.go:62.14,64.3 1 0 -github.com/muety/wakapi/middlewares/logging.go:68.41,69.42 1 0 -github.com/muety/wakapi/middlewares/logging.go:72.2,72.12 1 0 -github.com/muety/wakapi/middlewares/logging.go:69.42,71.3 1 0 -github.com/muety/wakapi/middlewares/logging.go:103.52,105.2 1 0 -github.com/muety/wakapi/middlewares/logging.go:117.45,118.20 1 0 -github.com/muety/wakapi/middlewares/logging.go:118.20,122.3 3 0 -github.com/muety/wakapi/middlewares/logging.go:124.54,127.18 3 0 -github.com/muety/wakapi/middlewares/logging.go:134.2,135.15 2 0 -github.com/muety/wakapi/middlewares/logging.go:127.18,130.17 2 0 -github.com/muety/wakapi/middlewares/logging.go:130.17,132.4 1 0 -github.com/muety/wakapi/middlewares/logging.go:137.42,138.20 1 0 -github.com/muety/wakapi/middlewares/logging.go:138.20,140.3 1 0 -github.com/muety/wakapi/middlewares/logging.go:142.36,144.2 1 0 -github.com/muety/wakapi/middlewares/logging.go:145.42,147.2 1 0 -github.com/muety/wakapi/middlewares/logging.go:148.40,150.2 1 0 -github.com/muety/wakapi/middlewares/logging.go:151.52,153.2 1 0 -github.com/muety/wakapi/middlewares/principal.go:15.62,17.2 1 0 -github.com/muety/wakapi/middlewares/principal.go:19.58,21.2 1 0 -github.com/muety/wakapi/middlewares/principal.go:23.60,24.24 1 0 -github.com/muety/wakapi/middlewares/principal.go:27.2,27.31 1 0 -github.com/muety/wakapi/middlewares/principal.go:24.24,26.3 1 0 -github.com/muety/wakapi/middlewares/principal.go:49.71,50.43 1 0 -github.com/muety/wakapi/middlewares/principal.go:50.43,52.3 1 0 -github.com/muety/wakapi/middlewares/principal.go:55.81,58.2 2 0 -github.com/muety/wakapi/middlewares/principal.go:60.55,61.52 1 0 -github.com/muety/wakapi/middlewares/principal.go:61.52,63.3 1 0 -github.com/muety/wakapi/middlewares/principal.go:66.49,67.52 1 0 -github.com/muety/wakapi/middlewares/principal.go:70.2,70.12 1 0 -github.com/muety/wakapi/middlewares/principal.go:67.52,69.3 1 0 +github.com/muety/wakapi/config/db_opts.go:11.56,13.2 1 0 +github.com/muety/wakapi/config/db_opts.go:15.59,17.2 1 0 +github.com/muety/wakapi/config/db_opts.go:19.61,21.39 1 0 +github.com/muety/wakapi/config/db_opts.go:28.2,28.30 1 0 +github.com/muety/wakapi/config/db_opts.go:34.2,34.12 1 0 +github.com/muety/wakapi/config/db_opts.go:21.39,23.100 1 0 +github.com/muety/wakapi/config/db_opts.go:23.100,25.4 1 0 +github.com/muety/wakapi/config/db_opts.go:28.30,29.68 1 0 +github.com/muety/wakapi/config/db_opts.go:29.68,31.4 1 0 +github.com/muety/wakapi/config/sentry.go:21.35,23.2 1 0 +github.com/muety/wakapi/config/sentry.go:25.62,28.2 2 0 +github.com/muety/wakapi/config/sentry.go:38.33,45.2 2 0 +github.com/muety/wakapi/config/sentry.go:47.79,50.2 2 0 +github.com/muety/wakapi/config/sentry.go:52.72,56.2 3 0 +github.com/muety/wakapi/config/sentry.go:58.71,62.2 3 0 +github.com/muety/wakapi/config/sentry.go:64.71,68.2 3 0 +github.com/muety/wakapi/config/sentry.go:70.72,74.2 3 0 +github.com/muety/wakapi/config/sentry.go:76.72,80.2 3 0 +github.com/muety/wakapi/config/sentry.go:82.67,87.18 4 0 +github.com/muety/wakapi/config/sentry.go:99.2,99.28 1 0 +github.com/muety/wakapi/config/sentry.go:87.18,88.65 1 0 +github.com/muety/wakapi/config/sentry.go:88.65,91.45 3 0 +github.com/muety/wakapi/config/sentry.go:94.4,95.10 2 0 +github.com/muety/wakapi/config/sentry.go:91.45,93.5 1 0 +github.com/muety/wakapi/config/sentry.go:109.50,114.91 1 0 +github.com/muety/wakapi/config/sentry.go:114.91,115.29 1 0 +github.com/muety/wakapi/config/sentry.go:119.4,122.38 3 0 +github.com/muety/wakapi/config/sentry.go:127.4,127.39 1 0 +github.com/muety/wakapi/config/sentry.go:130.4,130.69 1 0 +github.com/muety/wakapi/config/sentry.go:115.29,117.5 1 0 +github.com/muety/wakapi/config/sentry.go:122.38,123.38 1 0 +github.com/muety/wakapi/config/sentry.go:123.38,125.6 1 0 +github.com/muety/wakapi/config/sentry.go:127.39,129.5 1 0 +github.com/muety/wakapi/config/sentry.go:132.79,133.27 1 0 +github.com/muety/wakapi/config/sentry.go:140.4,140.16 1 0 +github.com/muety/wakapi/config/sentry.go:133.27,134.84 1 0 +github.com/muety/wakapi/config/sentry.go:134.84,135.45 1 0 +github.com/muety/wakapi/config/sentry.go:135.45,137.7 1 0 +github.com/muety/wakapi/config/sentry.go:142.17,144.3 1 0 +github.com/muety/wakapi/config/sentry.go:148.43,153.51 2 0 +github.com/muety/wakapi/config/sentry.go:156.2,156.11 1 0 +github.com/muety/wakapi/config/sentry.go:153.51,155.3 1 0 +github.com/muety/wakapi/config/eventbus.go:26.13,28.2 1 1 +github.com/muety/wakapi/config/eventbus.go:30.26,32.2 1 0 +github.com/muety/wakapi/config/fs.go:9.56,10.19 1 0 +github.com/muety/wakapi/config/fs.go:13.2,13.19 1 0 +github.com/muety/wakapi/config/fs.go:10.19,12.3 1 0 +github.com/muety/wakapi/config/jobqueue.go:29.13,38.2 7 1 +github.com/muety/wakapi/config/jobqueue.go:40.48,41.34 1 1 +github.com/muety/wakapi/config/jobqueue.go:44.2,47.12 4 1 +github.com/muety/wakapi/config/jobqueue.go:41.34,43.3 1 0 +github.com/muety/wakapi/config/jobqueue.go:50.44,52.2 1 0 +github.com/muety/wakapi/config/jobqueue.go:54.48,55.35 1 0 +github.com/muety/wakapi/config/jobqueue.go:58.2,58.24 1 0 +github.com/muety/wakapi/config/jobqueue.go:55.35,57.3 1 0 +github.com/muety/wakapi/config/jobqueue.go:61.43,63.37 2 0 +github.com/muety/wakapi/config/jobqueue.go:70.2,70.16 1 0 +github.com/muety/wakapi/config/jobqueue.go:63.37,69.3 1 0 +github.com/muety/wakapi/config/jobqueue.go:73.20,74.30 1 0 +github.com/muety/wakapi/config/jobqueue.go:74.30,76.3 1 0 +github.com/muety/wakapi/config/jobqueue.go:79.20,81.2 1 0 +github.com/muety/wakapi/config/jobqueue.go:83.21,85.2 1 1 +github.com/muety/wakapi/config/session.go:9.46,10.25 1 0 +github.com/muety/wakapi/config/session.go:13.2,13.21 1 0 +github.com/muety/wakapi/config/session.go:10.25,12.3 1 0 github.com/muety/wakapi/middlewares/security.go:19.62,20.43 1 0 github.com/muety/wakapi/middlewares/security.go:20.43,22.3 1 0 github.com/muety/wakapi/middlewares/security.go:25.80,26.36 1 0 @@ -407,6 +367,46 @@ github.com/muety/wakapi/middlewares/filetype.go:22.84,24.34 2 0 github.com/muety/wakapi/middlewares/filetype.go:31.2,31.27 1 0 github.com/muety/wakapi/middlewares/filetype.go:24.34,25.50 1 0 github.com/muety/wakapi/middlewares/filetype.go:25.50,29.4 3 0 +github.com/muety/wakapi/middlewares/logging.go:20.102,21.43 1 0 +github.com/muety/wakapi/middlewares/logging.go:21.43,27.3 1 0 +github.com/muety/wakapi/middlewares/logging.go:30.80,39.44 7 0 +github.com/muety/wakapi/middlewares/logging.go:45.2,54.3 1 0 +github.com/muety/wakapi/middlewares/logging.go:39.44,40.38 1 0 +github.com/muety/wakapi/middlewares/logging.go:40.38,42.4 1 0 +github.com/muety/wakapi/middlewares/logging.go:57.41,59.14 2 0 +github.com/muety/wakapi/middlewares/logging.go:62.2,62.14 1 0 +github.com/muety/wakapi/middlewares/logging.go:65.2,65.11 1 0 +github.com/muety/wakapi/middlewares/logging.go:59.14,61.3 1 0 +github.com/muety/wakapi/middlewares/logging.go:62.14,64.3 1 0 +github.com/muety/wakapi/middlewares/logging.go:68.41,69.42 1 0 +github.com/muety/wakapi/middlewares/logging.go:72.2,72.12 1 0 +github.com/muety/wakapi/middlewares/logging.go:69.42,71.3 1 0 +github.com/muety/wakapi/middlewares/logging.go:103.52,105.2 1 0 +github.com/muety/wakapi/middlewares/logging.go:117.45,118.20 1 0 +github.com/muety/wakapi/middlewares/logging.go:118.20,122.3 3 0 +github.com/muety/wakapi/middlewares/logging.go:124.54,127.18 3 0 +github.com/muety/wakapi/middlewares/logging.go:134.2,135.15 2 0 +github.com/muety/wakapi/middlewares/logging.go:127.18,130.17 2 0 +github.com/muety/wakapi/middlewares/logging.go:130.17,132.4 1 0 +github.com/muety/wakapi/middlewares/logging.go:137.42,138.20 1 0 +github.com/muety/wakapi/middlewares/logging.go:138.20,140.3 1 0 +github.com/muety/wakapi/middlewares/logging.go:142.36,144.2 1 0 +github.com/muety/wakapi/middlewares/logging.go:145.42,147.2 1 0 +github.com/muety/wakapi/middlewares/logging.go:148.40,150.2 1 0 +github.com/muety/wakapi/middlewares/logging.go:151.52,153.2 1 0 +github.com/muety/wakapi/middlewares/principal.go:15.62,17.2 1 0 +github.com/muety/wakapi/middlewares/principal.go:19.58,21.2 1 0 +github.com/muety/wakapi/middlewares/principal.go:23.60,24.24 1 0 +github.com/muety/wakapi/middlewares/principal.go:27.2,27.31 1 0 +github.com/muety/wakapi/middlewares/principal.go:24.24,26.3 1 0 +github.com/muety/wakapi/middlewares/principal.go:49.71,50.43 1 0 +github.com/muety/wakapi/middlewares/principal.go:50.43,52.3 1 0 +github.com/muety/wakapi/middlewares/principal.go:55.81,58.2 2 0 +github.com/muety/wakapi/middlewares/principal.go:60.55,61.52 1 0 +github.com/muety/wakapi/middlewares/principal.go:61.52,63.3 1 0 +github.com/muety/wakapi/middlewares/principal.go:66.49,67.52 1 0 +github.com/muety/wakapi/middlewares/principal.go:70.2,70.12 1 0 +github.com/muety/wakapi/middlewares/principal.go:67.52,69.3 1 0 github.com/muety/wakapi/routes/compat/shields/v1/badge.go:25.112,32.2 1 0 github.com/muety/wakapi/routes/compat/shields/v1/badge.go:34.59,38.2 2 0 github.com/muety/wakapi/routes/compat/shields/v1/badge.go:50.68,52.16 2 0 @@ -425,6 +425,14 @@ github.com/muety/wakapi/routes/compat/shields/v1/badge.go:118.2,118.36 1 0 github.com/muety/wakapi/routes/compat/shields/v1/badge.go:91.16,93.3 1 0 github.com/muety/wakapi/routes/compat/shields/v1/badge.go:102.29,104.3 1 0 github.com/muety/wakapi/routes/compat/shields/v1/badge.go:114.16,116.3 1 0 +github.com/muety/wakapi/routes/utils/messages.go:9.71,11.2 1 0 +github.com/muety/wakapi/routes/utils/messages.go:13.73,15.2 1 0 +github.com/muety/wakapi/routes/utils/messages.go:17.97,19.57 2 0 +github.com/muety/wakapi/routes/utils/messages.go:22.2,22.65 1 0 +github.com/muety/wakapi/routes/utils/messages.go:25.2,26.11 2 0 +github.com/muety/wakapi/routes/utils/messages.go:19.57,21.3 1 0 +github.com/muety/wakapi/routes/utils/messages.go:22.65,24.3 1 0 +github.com/muety/wakapi/routes/utils/messages.go:29.78,33.2 3 0 github.com/muety/wakapi/routes/utils/project_utils.go:15.144,18.16 2 0 github.com/muety/wakapi/routes/utils/project_utils.go:23.2,24.16 2 0 github.com/muety/wakapi/routes/utils/project_utils.go:28.2,32.35 2 0 @@ -487,14 +495,35 @@ github.com/muety/wakapi/routes/utils/heartbeat_utils.go:33.48,35.3 1 0 github.com/muety/wakapi/routes/utils/heartbeat_utils.go:40.67,48.47 6 0 github.com/muety/wakapi/routes/utils/heartbeat_utils.go:52.2,52.45 1 0 github.com/muety/wakapi/routes/utils/heartbeat_utils.go:48.47,50.3 1 0 -github.com/muety/wakapi/routes/utils/messages.go:9.71,11.2 1 0 -github.com/muety/wakapi/routes/utils/messages.go:13.73,15.2 1 0 -github.com/muety/wakapi/routes/utils/messages.go:17.97,19.57 2 0 -github.com/muety/wakapi/routes/utils/messages.go:22.2,22.65 1 0 -github.com/muety/wakapi/routes/utils/messages.go:25.2,26.11 2 0 -github.com/muety/wakapi/routes/utils/messages.go:19.57,21.3 1 0 -github.com/muety/wakapi/routes/utils/messages.go:22.65,24.3 1 0 -github.com/muety/wakapi/routes/utils/messages.go:29.78,33.2 3 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/users.go:21.116,27.2 1 1 +github.com/muety/wakapi/routes/compat/wakatime/v1/users.go:29.59,35.2 3 1 +github.com/muety/wakapi/routes/compat/wakatime/v1/users.go:46.68,48.16 2 1 +github.com/muety/wakapi/routes/compat/wakatime/v1/users.go:52.2,53.72 2 1 +github.com/muety/wakapi/routes/compat/wakatime/v1/users.go:59.2,59.72 1 1 +github.com/muety/wakapi/routes/compat/wakatime/v1/users.go:48.16,50.3 1 1 +github.com/muety/wakapi/routes/compat/wakatime/v1/users.go:53.72,55.3 1 1 +github.com/muety/wakapi/routes/compat/wakatime/v1/users.go:55.8,57.3 1 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/all_time.go:22.116,28.2 1 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/all_time.go:30.61,36.2 3 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/all_time.go:47.70,49.16 2 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/all_time.go:53.2,54.16 2 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/all_time.go:60.2,61.46 2 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/all_time.go:49.16,51.3 1 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/all_time.go:54.16,58.3 3 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/all_time.go:64.116,73.29 3 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/all_time.go:77.2,85.16 2 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/all_time.go:89.2,89.36 1 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/all_time.go:73.29,75.3 1 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/all_time.go:85.16,87.3 1 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/heartbeat.go:29.124,34.2 1 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/heartbeat.go:36.63,42.2 3 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/heartbeat.go:53.72,55.16 2 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/heartbeat.go:59.2,62.16 4 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/heartbeat.go:68.2,72.16 4 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/heartbeat.go:79.2,85.47 2 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/heartbeat.go:55.16,57.3 1 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/heartbeat.go:62.16,66.3 3 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/heartbeat.go:72.16,77.3 4 0 github.com/muety/wakapi/routes/compat/wakatime/v1/projects.go:23.123,29.2 1 0 github.com/muety/wakapi/routes/compat/wakatime/v1/projects.go:31.62,37.2 3 0 github.com/muety/wakapi/routes/compat/wakatime/v1/projects.go:49.71,51.16 2 0 @@ -574,49 +603,6 @@ github.com/muety/wakapi/routes/compat/wakatime/v1/summaries.go:115.17,117.4 1 0 github.com/muety/wakapi/routes/compat/wakatime/v1/summaries.go:138.37,140.17 2 0 github.com/muety/wakapi/routes/compat/wakatime/v1/summaries.go:144.3,146.25 3 0 github.com/muety/wakapi/routes/compat/wakatime/v1/summaries.go:140.17,142.4 1 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/users.go:21.116,27.2 1 1 -github.com/muety/wakapi/routes/compat/wakatime/v1/users.go:29.59,35.2 3 1 -github.com/muety/wakapi/routes/compat/wakatime/v1/users.go:46.68,48.16 2 1 -github.com/muety/wakapi/routes/compat/wakatime/v1/users.go:52.2,53.72 2 1 -github.com/muety/wakapi/routes/compat/wakatime/v1/users.go:59.2,59.72 1 1 -github.com/muety/wakapi/routes/compat/wakatime/v1/users.go:48.16,50.3 1 1 -github.com/muety/wakapi/routes/compat/wakatime/v1/users.go:53.72,55.3 1 1 -github.com/muety/wakapi/routes/compat/wakatime/v1/users.go:55.8,57.3 1 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/all_time.go:22.116,28.2 1 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/all_time.go:30.61,36.2 3 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/all_time.go:47.70,49.16 2 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/all_time.go:53.2,54.16 2 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/all_time.go:60.2,61.46 2 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/all_time.go:49.16,51.3 1 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/all_time.go:54.16,58.3 3 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/all_time.go:64.116,73.29 3 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/all_time.go:77.2,85.16 2 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/all_time.go:89.2,89.36 1 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/all_time.go:73.29,75.3 1 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/all_time.go:85.16,87.3 1 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/heartbeat.go:29.124,34.2 1 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/heartbeat.go:36.63,42.2 3 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/heartbeat.go:53.72,55.16 2 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/heartbeat.go:59.2,62.16 4 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/heartbeat.go:68.2,72.16 4 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/heartbeat.go:79.2,85.47 2 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/heartbeat.go:55.16,57.3 1 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/heartbeat.go:62.16,66.3 3 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/heartbeat.go:72.16,77.3 4 0 -github.com/muety/wakapi/models/heartbeats.go:7.31,9.2 1 0 -github.com/muety/wakapi/models/heartbeats.go:11.41,13.2 1 0 -github.com/muety/wakapi/models/heartbeats.go:15.36,17.2 1 0 -github.com/muety/wakapi/models/heartbeats.go:19.43,22.2 2 0 -github.com/muety/wakapi/models/heartbeats.go:24.41,26.18 1 0 -github.com/muety/wakapi/models/heartbeats.go:29.2,29.16 1 0 -github.com/muety/wakapi/models/heartbeats.go:26.18,28.3 1 0 -github.com/muety/wakapi/models/heartbeats.go:32.40,34.18 1 0 -github.com/muety/wakapi/models/heartbeats.go:37.2,37.24 1 0 -github.com/muety/wakapi/models/heartbeats.go:34.18,36.3 1 0 -github.com/muety/wakapi/models/mail.go:19.44,23.2 3 0 -github.com/muety/wakapi/models/mail.go:25.44,29.2 3 0 -github.com/muety/wakapi/models/mail.go:31.32,44.2 1 0 -github.com/muety/wakapi/models/mail.go:46.41,48.2 1 0 github.com/muety/wakapi/models/mail_address.go:15.13,18.2 2 1 github.com/muety/wakapi/models/mail_address.go:24.38,26.2 1 0 github.com/muety/wakapi/models/mail_address.go:28.35,30.21 2 1 @@ -635,74 +621,11 @@ github.com/muety/wakapi/models/mail_address.go:59.40,60.22 1 1 github.com/muety/wakapi/models/mail_address.go:65.2,65.13 1 1 github.com/muety/wakapi/models/mail_address.go:60.22,61.17 1 1 github.com/muety/wakapi/models/mail_address.go:61.17,63.4 1 1 -github.com/muety/wakapi/models/project_label.go:14.39,16.2 1 0 -github.com/muety/wakapi/models/shared.go:38.52,40.2 1 0 -github.com/muety/wakapi/models/shared.go:42.52,45.16 3 0 -github.com/muety/wakapi/models/shared.go:48.2,50.12 3 0 -github.com/muety/wakapi/models/shared.go:45.16,47.3 1 0 -github.com/muety/wakapi/models/shared.go:53.52,59.22 2 0 -github.com/muety/wakapi/models/shared.go:74.2,77.12 3 0 -github.com/muety/wakapi/models/shared.go:60.14,64.17 2 0 -github.com/muety/wakapi/models/shared.go:67.17,69.8 2 0 -github.com/muety/wakapi/models/shared.go:70.10,71.64 1 0 -github.com/muety/wakapi/models/shared.go:64.17,66.4 1 0 -github.com/muety/wakapi/models/shared.go:80.51,83.2 2 0 -github.com/muety/wakapi/models/shared.go:85.45,87.2 1 1 -github.com/muety/wakapi/models/shared.go:89.37,91.2 1 0 -github.com/muety/wakapi/models/shared.go:93.35,95.2 1 1 -github.com/muety/wakapi/models/shared.go:97.34,99.2 1 0 -github.com/muety/wakapi/models/duration.go:24.55,38.2 2 0 -github.com/muety/wakapi/models/duration.go:40.39,42.16 2 0 -github.com/muety/wakapi/models/duration.go:45.2,46.10 2 0 -github.com/muety/wakapi/models/duration.go:42.16,44.3 1 0 -github.com/muety/wakapi/models/duration.go:49.49,50.11 1 0 -github.com/muety/wakapi/models/duration.go:65.2,65.15 1 0 -github.com/muety/wakapi/models/duration.go:69.2,69.12 1 0 -github.com/muety/wakapi/models/duration.go:51.22,52.18 1 0 -github.com/muety/wakapi/models/duration.go:53.21,54.17 1 0 -github.com/muety/wakapi/models/duration.go:55.23,56.19 1 0 -github.com/muety/wakapi/models/duration.go:57.17,58.26 1 0 -github.com/muety/wakapi/models/duration.go:59.22,60.18 1 0 -github.com/muety/wakapi/models/duration.go:61.21,62.17 1 0 -github.com/muety/wakapi/models/duration.go:65.15,67.3 1 0 -github.com/muety/wakapi/models/interval.go:41.47,42.23 1 0 -github.com/muety/wakapi/models/interval.go:47.2,47.14 1 0 -github.com/muety/wakapi/models/interval.go:42.23,43.13 1 0 -github.com/muety/wakapi/models/interval.go:43.13,45.4 1 0 -github.com/muety/wakapi/models/user.go:13.13,15.2 1 1 -github.com/muety/wakapi/models/user.go:89.34,91.2 1 0 -github.com/muety/wakapi/models/user.go:93.36,94.22 1 1 -github.com/muety/wakapi/models/user.go:97.2,98.16 2 1 -github.com/muety/wakapi/models/user.go:101.2,101.11 1 1 -github.com/muety/wakapi/models/user.go:94.22,96.3 1 1 -github.com/muety/wakapi/models/user.go:98.16,100.3 1 0 -github.com/muety/wakapi/models/user.go:106.41,109.2 2 1 -github.com/muety/wakapi/models/user.go:111.53,114.54 3 0 -github.com/muety/wakapi/models/user.go:117.2,117.51 1 0 -github.com/muety/wakapi/models/user.go:120.2,120.20 1 0 -github.com/muety/wakapi/models/user.go:114.54,116.3 1 0 -github.com/muety/wakapi/models/user.go:117.51,119.3 1 0 -github.com/muety/wakapi/models/user.go:124.52,125.28 1 0 -github.com/muety/wakapi/models/user.go:128.2,128.17 1 0 -github.com/muety/wakapi/models/user.go:125.28,127.3 1 0 -github.com/muety/wakapi/models/user.go:132.45,134.2 1 1 -github.com/muety/wakapi/models/user.go:136.51,138.2 1 1 -github.com/muety/wakapi/models/user.go:144.65,146.32 2 0 -github.com/muety/wakapi/models/user.go:149.2,149.30 1 0 -github.com/muety/wakapi/models/user.go:152.2,153.24 2 0 -github.com/muety/wakapi/models/user.go:146.32,148.3 1 0 -github.com/muety/wakapi/models/user.go:149.30,151.3 1 0 -github.com/muety/wakapi/models/user.go:156.39,158.55 2 1 -github.com/muety/wakapi/models/user.go:162.2,162.51 1 1 -github.com/muety/wakapi/models/user.go:158.55,160.3 1 1 -github.com/muety/wakapi/models/user.go:165.43,168.2 1 0 -github.com/muety/wakapi/models/user.go:170.45,173.2 1 0 -github.com/muety/wakapi/models/user.go:175.33,180.2 1 0 -github.com/muety/wakapi/models/user.go:182.41,184.2 1 0 -github.com/muety/wakapi/models/user.go:186.45,188.2 1 0 -github.com/muety/wakapi/models/user.go:190.45,192.2 1 0 -github.com/muety/wakapi/models/user.go:195.39,197.2 1 0 -github.com/muety/wakapi/models/user.go:199.39,202.2 2 0 +github.com/muety/wakapi/models/alias.go:18.32,20.2 1 0 +github.com/muety/wakapi/models/alias.go:22.37,23.35 1 0 +github.com/muety/wakapi/models/alias.go:28.2,28.14 1 0 +github.com/muety/wakapi/models/alias.go:23.35,24.18 1 0 +github.com/muety/wakapi/models/alias.go:24.18,26.4 1 0 github.com/muety/wakapi/models/leaderboard.go:28.73,30.2 1 0 github.com/muety/wakapi/models/leaderboard.go:34.56,35.103 1 0 github.com/muety/wakapi/models/leaderboard.go:35.103,37.3 1 0 @@ -732,11 +655,6 @@ github.com/muety/wakapi/models/leaderboard.go:101.45,103.25 2 0 github.com/muety/wakapi/models/leaderboard.go:108.2,108.19 1 0 github.com/muety/wakapi/models/leaderboard.go:103.25,104.43 1 0 github.com/muety/wakapi/models/leaderboard.go:104.43,106.4 1 0 -github.com/muety/wakapi/models/alias.go:18.32,20.2 1 0 -github.com/muety/wakapi/models/alias.go:22.37,23.35 1 0 -github.com/muety/wakapi/models/alias.go:28.2,28.14 1 0 -github.com/muety/wakapi/models/alias.go:23.35,24.18 1 0 -github.com/muety/wakapi/models/alias.go:24.18,26.4 1 0 github.com/muety/wakapi/models/durations.go:7.30,9.2 1 0 github.com/muety/wakapi/models/durations.go:11.40,13.2 1 0 github.com/muety/wakapi/models/durations.go:15.35,17.2 1 0 @@ -750,117 +668,39 @@ github.com/muety/wakapi/models/durations.go:34.18,36.3 1 0 github.com/muety/wakapi/models/durations.go:40.38,42.18 1 0 github.com/muety/wakapi/models/durations.go:45.2,45.24 1 0 github.com/muety/wakapi/models/durations.go:42.18,44.3 1 0 -github.com/muety/wakapi/models/filters.go:21.33,23.2 1 1 -github.com/muety/wakapi/models/filters.go:25.48,26.22 1 1 -github.com/muety/wakapi/models/filters.go:31.2,31.14 1 1 -github.com/muety/wakapi/models/filters.go:26.22,27.18 1 1 -github.com/muety/wakapi/models/filters.go:27.18,29.4 1 1 -github.com/muety/wakapi/models/filters.go:39.56,41.2 1 1 -github.com/muety/wakapi/models/filters.go:43.66,46.2 2 1 -github.com/muety/wakapi/models/filters.go:48.59,50.2 1 1 -github.com/muety/wakapi/models/filters.go:52.70,53.16 1 1 -github.com/muety/wakapi/models/filters.go:69.2,69.10 1 1 -github.com/muety/wakapi/models/filters.go:54.22,55.41 1 1 -github.com/muety/wakapi/models/filters.go:56.17,57.31 1 0 -github.com/muety/wakapi/models/filters.go:58.23,59.43 1 1 -github.com/muety/wakapi/models/filters.go:60.21,61.39 1 0 -github.com/muety/wakapi/models/filters.go:62.22,63.41 1 0 -github.com/muety/wakapi/models/filters.go:64.20,65.37 1 1 -github.com/muety/wakapi/models/filters.go:66.21,67.39 1 0 -github.com/muety/wakapi/models/filters.go:72.49,73.44 1 1 -github.com/muety/wakapi/models/filters.go:88.2,88.29 1 1 -github.com/muety/wakapi/models/filters.go:73.44,75.3 1 1 -github.com/muety/wakapi/models/filters.go:75.8,75.41 1 1 -github.com/muety/wakapi/models/filters.go:75.41,77.3 1 0 -github.com/muety/wakapi/models/filters.go:77.8,77.53 1 1 -github.com/muety/wakapi/models/filters.go:77.53,79.3 1 1 -github.com/muety/wakapi/models/filters.go:79.8,79.49 1 1 -github.com/muety/wakapi/models/filters.go:79.49,81.3 1 0 -github.com/muety/wakapi/models/filters.go:81.8,81.51 1 1 -github.com/muety/wakapi/models/filters.go:81.51,83.3 1 0 -github.com/muety/wakapi/models/filters.go:83.8,83.47 1 1 -github.com/muety/wakapi/models/filters.go:83.47,85.3 1 0 -github.com/muety/wakapi/models/filters.go:85.8,85.49 1 1 -github.com/muety/wakapi/models/filters.go:85.49,87.3 1 0 -github.com/muety/wakapi/models/filters.go:91.46,92.30 1 1 -github.com/muety/wakapi/models/filters.go:95.2,95.66 1 0 -github.com/muety/wakapi/models/filters.go:92.30,94.3 1 1 -github.com/muety/wakapi/models/filters.go:98.34,101.2 2 1 -github.com/muety/wakapi/models/filters.go:103.31,105.51 2 0 -github.com/muety/wakapi/models/filters.go:108.2,108.14 1 0 -github.com/muety/wakapi/models/filters.go:105.51,107.3 1 0 -github.com/muety/wakapi/models/filters.go:111.51,113.2 1 0 -github.com/muety/wakapi/models/filters.go:115.37,117.51 2 0 -github.com/muety/wakapi/models/filters.go:122.2,122.14 1 0 -github.com/muety/wakapi/models/filters.go:117.51,118.37 1 0 -github.com/muety/wakapi/models/filters.go:118.37,120.4 1 0 -github.com/muety/wakapi/models/filters.go:125.59,126.18 1 0 -github.com/muety/wakapi/models/filters.go:127.22,128.20 1 0 -github.com/muety/wakapi/models/filters.go:129.23,130.21 1 0 -github.com/muety/wakapi/models/filters.go:131.21,132.19 1 0 -github.com/muety/wakapi/models/filters.go:133.17,134.15 1 0 -github.com/muety/wakapi/models/filters.go:135.22,136.20 1 0 -github.com/muety/wakapi/models/filters.go:137.20,138.18 1 0 -github.com/muety/wakapi/models/filters.go:139.21,140.19 1 0 -github.com/muety/wakapi/models/filters.go:141.10,142.21 1 0 -github.com/muety/wakapi/models/filters.go:146.33,148.16 2 0 -github.com/muety/wakapi/models/filters.go:151.2,151.32 1 0 -github.com/muety/wakapi/models/filters.go:148.16,150.3 1 0 -github.com/muety/wakapi/models/filters.go:154.44,160.2 1 1 -github.com/muety/wakapi/models/filters.go:163.70,164.22 1 1 -github.com/muety/wakapi/models/filters.go:172.2,172.17 1 1 -github.com/muety/wakapi/models/filters.go:180.2,180.23 1 1 -github.com/muety/wakapi/models/filters.go:188.2,188.21 1 1 -github.com/muety/wakapi/models/filters.go:196.2,196.22 1 1 -github.com/muety/wakapi/models/filters.go:204.2,204.21 1 1 -github.com/muety/wakapi/models/filters.go:212.2,212.10 1 1 -github.com/muety/wakapi/models/filters.go:164.22,166.31 2 1 -github.com/muety/wakapi/models/filters.go:170.3,170.22 1 1 -github.com/muety/wakapi/models/filters.go:166.31,169.4 2 1 -github.com/muety/wakapi/models/filters.go:172.17,174.26 2 0 -github.com/muety/wakapi/models/filters.go:178.3,178.17 1 0 -github.com/muety/wakapi/models/filters.go:174.26,177.4 2 0 -github.com/muety/wakapi/models/filters.go:180.23,182.32 2 1 -github.com/muety/wakapi/models/filters.go:186.3,186.23 1 1 -github.com/muety/wakapi/models/filters.go:182.32,185.4 2 1 -github.com/muety/wakapi/models/filters.go:188.21,190.30 2 0 -github.com/muety/wakapi/models/filters.go:194.3,194.21 1 0 -github.com/muety/wakapi/models/filters.go:190.30,193.4 2 0 -github.com/muety/wakapi/models/filters.go:196.22,198.31 2 0 -github.com/muety/wakapi/models/filters.go:202.3,202.22 1 0 -github.com/muety/wakapi/models/filters.go:198.31,201.4 2 0 -github.com/muety/wakapi/models/filters.go:204.21,206.30 2 0 -github.com/muety/wakapi/models/filters.go:210.3,210.21 1 0 -github.com/muety/wakapi/models/filters.go:206.30,209.4 2 0 -github.com/muety/wakapi/models/filters.go:215.83,216.41 1 1 -github.com/muety/wakapi/models/filters.go:219.2,219.28 1 1 -github.com/muety/wakapi/models/filters.go:222.2,222.10 1 1 -github.com/muety/wakapi/models/filters.go:216.41,218.3 1 0 -github.com/muety/wakapi/models/filters.go:219.28,221.3 1 1 github.com/muety/wakapi/models/language_mapping.go:11.42,13.2 1 0 github.com/muety/wakapi/models/language_mapping.go:15.51,17.2 1 0 github.com/muety/wakapi/models/language_mapping.go:19.52,21.2 1 0 -github.com/muety/wakapi/models/heartbeat.go:33.34,35.2 1 1 -github.com/muety/wakapi/models/heartbeat.go:37.55,40.2 2 0 -github.com/muety/wakapi/models/heartbeat.go:42.65,44.46 2 1 -github.com/muety/wakapi/models/heartbeat.go:44.46,45.108 1 1 -github.com/muety/wakapi/models/heartbeat.go:45.108,48.4 2 1 -github.com/muety/wakapi/models/heartbeat.go:52.50,53.11 1 1 -github.com/muety/wakapi/models/heartbeat.go:68.2,68.15 1 1 -github.com/muety/wakapi/models/heartbeat.go:72.2,72.12 1 1 -github.com/muety/wakapi/models/heartbeat.go:54.22,55.18 1 1 -github.com/muety/wakapi/models/heartbeat.go:56.21,57.17 1 1 -github.com/muety/wakapi/models/heartbeat.go:58.23,59.19 1 1 -github.com/muety/wakapi/models/heartbeat.go:60.17,61.26 1 1 -github.com/muety/wakapi/models/heartbeat.go:62.22,63.18 1 1 -github.com/muety/wakapi/models/heartbeat.go:64.21,65.17 1 0 -github.com/muety/wakapi/models/heartbeat.go:68.15,70.3 1 1 -github.com/muety/wakapi/models/heartbeat.go:75.37,91.2 1 0 -github.com/muety/wakapi/models/heartbeat.go:99.41,101.16 2 1 -github.com/muety/wakapi/models/heartbeat.go:104.2,105.10 2 1 -github.com/muety/wakapi/models/heartbeat.go:101.16,103.3 1 0 -github.com/muety/wakapi/models/heartbeat.go:108.38,118.2 1 0 -github.com/muety/wakapi/models/models.go:3.14,5.2 0 1 +github.com/muety/wakapi/models/project_label.go:14.39,16.2 1 0 +github.com/muety/wakapi/models/duration.go:24.55,38.2 2 0 +github.com/muety/wakapi/models/duration.go:40.39,42.16 2 0 +github.com/muety/wakapi/models/duration.go:45.2,46.10 2 0 +github.com/muety/wakapi/models/duration.go:42.16,44.3 1 0 +github.com/muety/wakapi/models/duration.go:49.49,50.11 1 0 +github.com/muety/wakapi/models/duration.go:65.2,65.15 1 0 +github.com/muety/wakapi/models/duration.go:69.2,69.12 1 0 +github.com/muety/wakapi/models/duration.go:51.22,52.18 1 0 +github.com/muety/wakapi/models/duration.go:53.21,54.17 1 0 +github.com/muety/wakapi/models/duration.go:55.23,56.19 1 0 +github.com/muety/wakapi/models/duration.go:57.17,58.26 1 0 +github.com/muety/wakapi/models/duration.go:59.22,60.18 1 0 +github.com/muety/wakapi/models/duration.go:61.21,62.17 1 0 +github.com/muety/wakapi/models/duration.go:65.15,67.3 1 0 +github.com/muety/wakapi/models/shared.go:38.52,40.2 1 0 +github.com/muety/wakapi/models/shared.go:42.52,45.16 3 0 +github.com/muety/wakapi/models/shared.go:48.2,50.12 3 0 +github.com/muety/wakapi/models/shared.go:45.16,47.3 1 0 +github.com/muety/wakapi/models/shared.go:53.52,59.22 2 0 +github.com/muety/wakapi/models/shared.go:74.2,77.12 3 0 +github.com/muety/wakapi/models/shared.go:60.14,64.17 2 0 +github.com/muety/wakapi/models/shared.go:67.17,69.8 2 0 +github.com/muety/wakapi/models/shared.go:70.10,71.64 1 0 +github.com/muety/wakapi/models/shared.go:64.17,66.4 1 0 +github.com/muety/wakapi/models/shared.go:80.51,83.2 2 0 +github.com/muety/wakapi/models/shared.go:85.45,87.2 1 1 +github.com/muety/wakapi/models/shared.go:89.37,91.2 1 0 +github.com/muety/wakapi/models/shared.go:93.35,95.2 1 1 +github.com/muety/wakapi/models/shared.go:97.34,99.2 1 0 github.com/muety/wakapi/models/summary.go:64.29,66.2 1 1 github.com/muety/wakapi/models/summary.go:68.35,70.2 1 0 github.com/muety/wakapi/models/summary.go:72.38,74.2 1 0 @@ -959,6 +799,213 @@ github.com/muety/wakapi/models/summary.go:361.50,365.2 1 1 github.com/muety/wakapi/models/summary.go:367.33,369.2 1 1 github.com/muety/wakapi/models/summary.go:371.43,373.2 1 1 github.com/muety/wakapi/models/summary.go:375.38,377.2 1 1 +github.com/muety/wakapi/models/user.go:13.13,15.2 1 1 +github.com/muety/wakapi/models/user.go:89.34,91.2 1 0 +github.com/muety/wakapi/models/user.go:93.36,94.22 1 1 +github.com/muety/wakapi/models/user.go:97.2,98.16 2 1 +github.com/muety/wakapi/models/user.go:101.2,101.11 1 1 +github.com/muety/wakapi/models/user.go:94.22,96.3 1 1 +github.com/muety/wakapi/models/user.go:98.16,100.3 1 0 +github.com/muety/wakapi/models/user.go:106.41,109.2 2 1 +github.com/muety/wakapi/models/user.go:111.53,114.54 3 0 +github.com/muety/wakapi/models/user.go:117.2,117.51 1 0 +github.com/muety/wakapi/models/user.go:120.2,120.20 1 0 +github.com/muety/wakapi/models/user.go:114.54,116.3 1 0 +github.com/muety/wakapi/models/user.go:117.51,119.3 1 0 +github.com/muety/wakapi/models/user.go:124.52,125.28 1 0 +github.com/muety/wakapi/models/user.go:128.2,128.17 1 0 +github.com/muety/wakapi/models/user.go:125.28,127.3 1 0 +github.com/muety/wakapi/models/user.go:132.45,134.2 1 1 +github.com/muety/wakapi/models/user.go:136.51,138.2 1 1 +github.com/muety/wakapi/models/user.go:144.65,146.32 2 0 +github.com/muety/wakapi/models/user.go:149.2,149.30 1 0 +github.com/muety/wakapi/models/user.go:152.2,153.24 2 0 +github.com/muety/wakapi/models/user.go:146.32,148.3 1 0 +github.com/muety/wakapi/models/user.go:149.30,151.3 1 0 +github.com/muety/wakapi/models/user.go:156.39,158.55 2 1 +github.com/muety/wakapi/models/user.go:162.2,162.51 1 1 +github.com/muety/wakapi/models/user.go:158.55,160.3 1 1 +github.com/muety/wakapi/models/user.go:165.43,168.2 1 0 +github.com/muety/wakapi/models/user.go:170.45,173.2 1 0 +github.com/muety/wakapi/models/user.go:175.33,180.2 1 0 +github.com/muety/wakapi/models/user.go:182.41,184.2 1 0 +github.com/muety/wakapi/models/user.go:186.45,188.2 1 0 +github.com/muety/wakapi/models/user.go:190.45,192.2 1 0 +github.com/muety/wakapi/models/user.go:195.39,197.2 1 0 +github.com/muety/wakapi/models/user.go:199.39,202.2 2 0 +github.com/muety/wakapi/models/heartbeat.go:33.34,35.2 1 1 +github.com/muety/wakapi/models/heartbeat.go:37.55,40.2 2 0 +github.com/muety/wakapi/models/heartbeat.go:42.65,44.46 2 1 +github.com/muety/wakapi/models/heartbeat.go:44.46,45.108 1 1 +github.com/muety/wakapi/models/heartbeat.go:45.108,48.4 2 1 +github.com/muety/wakapi/models/heartbeat.go:52.50,53.11 1 1 +github.com/muety/wakapi/models/heartbeat.go:68.2,68.15 1 1 +github.com/muety/wakapi/models/heartbeat.go:72.2,72.12 1 1 +github.com/muety/wakapi/models/heartbeat.go:54.22,55.18 1 1 +github.com/muety/wakapi/models/heartbeat.go:56.21,57.17 1 1 +github.com/muety/wakapi/models/heartbeat.go:58.23,59.19 1 1 +github.com/muety/wakapi/models/heartbeat.go:60.17,61.26 1 1 +github.com/muety/wakapi/models/heartbeat.go:62.22,63.18 1 1 +github.com/muety/wakapi/models/heartbeat.go:64.21,65.17 1 0 +github.com/muety/wakapi/models/heartbeat.go:68.15,70.3 1 1 +github.com/muety/wakapi/models/heartbeat.go:75.37,91.2 1 0 +github.com/muety/wakapi/models/heartbeat.go:99.41,101.16 2 1 +github.com/muety/wakapi/models/heartbeat.go:104.2,105.10 2 1 +github.com/muety/wakapi/models/heartbeat.go:101.16,103.3 1 0 +github.com/muety/wakapi/models/heartbeat.go:108.38,118.2 1 0 +github.com/muety/wakapi/models/models.go:3.14,5.2 0 1 +github.com/muety/wakapi/models/interval.go:41.47,42.23 1 0 +github.com/muety/wakapi/models/interval.go:47.2,47.14 1 0 +github.com/muety/wakapi/models/interval.go:42.23,43.13 1 0 +github.com/muety/wakapi/models/interval.go:43.13,45.4 1 0 +github.com/muety/wakapi/models/mail.go:19.44,23.2 3 0 +github.com/muety/wakapi/models/mail.go:25.44,29.2 3 0 +github.com/muety/wakapi/models/mail.go:31.32,44.2 1 0 +github.com/muety/wakapi/models/mail.go:46.41,48.2 1 0 +github.com/muety/wakapi/models/filters.go:21.33,23.2 1 1 +github.com/muety/wakapi/models/filters.go:25.48,26.22 1 1 +github.com/muety/wakapi/models/filters.go:31.2,31.14 1 1 +github.com/muety/wakapi/models/filters.go:26.22,27.18 1 1 +github.com/muety/wakapi/models/filters.go:27.18,29.4 1 1 +github.com/muety/wakapi/models/filters.go:39.56,41.2 1 1 +github.com/muety/wakapi/models/filters.go:43.66,46.2 2 1 +github.com/muety/wakapi/models/filters.go:48.59,50.2 1 1 +github.com/muety/wakapi/models/filters.go:52.70,53.16 1 1 +github.com/muety/wakapi/models/filters.go:69.2,69.10 1 1 +github.com/muety/wakapi/models/filters.go:54.22,55.41 1 1 +github.com/muety/wakapi/models/filters.go:56.17,57.31 1 0 +github.com/muety/wakapi/models/filters.go:58.23,59.43 1 1 +github.com/muety/wakapi/models/filters.go:60.21,61.39 1 0 +github.com/muety/wakapi/models/filters.go:62.22,63.41 1 0 +github.com/muety/wakapi/models/filters.go:64.20,65.37 1 1 +github.com/muety/wakapi/models/filters.go:66.21,67.39 1 0 +github.com/muety/wakapi/models/filters.go:72.49,73.44 1 1 +github.com/muety/wakapi/models/filters.go:88.2,88.29 1 1 +github.com/muety/wakapi/models/filters.go:73.44,75.3 1 1 +github.com/muety/wakapi/models/filters.go:75.8,75.41 1 1 +github.com/muety/wakapi/models/filters.go:75.41,77.3 1 0 +github.com/muety/wakapi/models/filters.go:77.8,77.53 1 1 +github.com/muety/wakapi/models/filters.go:77.53,79.3 1 1 +github.com/muety/wakapi/models/filters.go:79.8,79.49 1 1 +github.com/muety/wakapi/models/filters.go:79.49,81.3 1 0 +github.com/muety/wakapi/models/filters.go:81.8,81.51 1 1 +github.com/muety/wakapi/models/filters.go:81.51,83.3 1 0 +github.com/muety/wakapi/models/filters.go:83.8,83.47 1 1 +github.com/muety/wakapi/models/filters.go:83.47,85.3 1 0 +github.com/muety/wakapi/models/filters.go:85.8,85.49 1 1 +github.com/muety/wakapi/models/filters.go:85.49,87.3 1 0 +github.com/muety/wakapi/models/filters.go:91.46,92.30 1 1 +github.com/muety/wakapi/models/filters.go:95.2,95.66 1 0 +github.com/muety/wakapi/models/filters.go:92.30,94.3 1 1 +github.com/muety/wakapi/models/filters.go:98.34,101.2 2 1 +github.com/muety/wakapi/models/filters.go:103.31,105.51 2 0 +github.com/muety/wakapi/models/filters.go:108.2,108.14 1 0 +github.com/muety/wakapi/models/filters.go:105.51,107.3 1 0 +github.com/muety/wakapi/models/filters.go:111.51,113.2 1 0 +github.com/muety/wakapi/models/filters.go:115.37,117.51 2 0 +github.com/muety/wakapi/models/filters.go:122.2,122.14 1 0 +github.com/muety/wakapi/models/filters.go:117.51,118.37 1 0 +github.com/muety/wakapi/models/filters.go:118.37,120.4 1 0 +github.com/muety/wakapi/models/filters.go:125.59,126.18 1 0 +github.com/muety/wakapi/models/filters.go:127.22,128.20 1 0 +github.com/muety/wakapi/models/filters.go:129.23,130.21 1 0 +github.com/muety/wakapi/models/filters.go:131.21,132.19 1 0 +github.com/muety/wakapi/models/filters.go:133.17,134.15 1 0 +github.com/muety/wakapi/models/filters.go:135.22,136.20 1 0 +github.com/muety/wakapi/models/filters.go:137.20,138.18 1 0 +github.com/muety/wakapi/models/filters.go:139.21,140.19 1 0 +github.com/muety/wakapi/models/filters.go:141.10,142.21 1 0 +github.com/muety/wakapi/models/filters.go:146.33,148.16 2 0 +github.com/muety/wakapi/models/filters.go:151.2,151.32 1 0 +github.com/muety/wakapi/models/filters.go:148.16,150.3 1 0 +github.com/muety/wakapi/models/filters.go:154.44,160.2 1 1 +github.com/muety/wakapi/models/filters.go:163.70,164.22 1 1 +github.com/muety/wakapi/models/filters.go:172.2,172.17 1 1 +github.com/muety/wakapi/models/filters.go:180.2,180.23 1 1 +github.com/muety/wakapi/models/filters.go:188.2,188.21 1 1 +github.com/muety/wakapi/models/filters.go:196.2,196.22 1 1 +github.com/muety/wakapi/models/filters.go:204.2,204.21 1 1 +github.com/muety/wakapi/models/filters.go:212.2,212.10 1 1 +github.com/muety/wakapi/models/filters.go:164.22,166.31 2 1 +github.com/muety/wakapi/models/filters.go:170.3,170.22 1 1 +github.com/muety/wakapi/models/filters.go:166.31,169.4 2 1 +github.com/muety/wakapi/models/filters.go:172.17,174.26 2 0 +github.com/muety/wakapi/models/filters.go:178.3,178.17 1 0 +github.com/muety/wakapi/models/filters.go:174.26,177.4 2 0 +github.com/muety/wakapi/models/filters.go:180.23,182.32 2 1 +github.com/muety/wakapi/models/filters.go:186.3,186.23 1 1 +github.com/muety/wakapi/models/filters.go:182.32,185.4 2 1 +github.com/muety/wakapi/models/filters.go:188.21,190.30 2 0 +github.com/muety/wakapi/models/filters.go:194.3,194.21 1 0 +github.com/muety/wakapi/models/filters.go:190.30,193.4 2 0 +github.com/muety/wakapi/models/filters.go:196.22,198.31 2 0 +github.com/muety/wakapi/models/filters.go:202.3,202.22 1 0 +github.com/muety/wakapi/models/filters.go:198.31,201.4 2 0 +github.com/muety/wakapi/models/filters.go:204.21,206.30 2 0 +github.com/muety/wakapi/models/filters.go:210.3,210.21 1 0 +github.com/muety/wakapi/models/filters.go:206.30,209.4 2 0 +github.com/muety/wakapi/models/filters.go:215.83,216.41 1 1 +github.com/muety/wakapi/models/filters.go:219.2,219.28 1 1 +github.com/muety/wakapi/models/filters.go:222.2,222.10 1 1 +github.com/muety/wakapi/models/filters.go:216.41,218.3 1 0 +github.com/muety/wakapi/models/filters.go:219.28,221.3 1 1 +github.com/muety/wakapi/models/heartbeats.go:7.31,9.2 1 0 +github.com/muety/wakapi/models/heartbeats.go:11.41,13.2 1 0 +github.com/muety/wakapi/models/heartbeats.go:15.36,17.2 1 0 +github.com/muety/wakapi/models/heartbeats.go:19.43,22.2 2 0 +github.com/muety/wakapi/models/heartbeats.go:24.41,26.18 1 0 +github.com/muety/wakapi/models/heartbeats.go:29.2,29.16 1 0 +github.com/muety/wakapi/models/heartbeats.go:26.18,28.3 1 0 +github.com/muety/wakapi/models/heartbeats.go:32.40,34.18 1 0 +github.com/muety/wakapi/models/heartbeats.go:37.2,37.24 1 0 +github.com/muety/wakapi/models/heartbeats.go:34.18,36.3 1 0 +github.com/muety/wakapi/services/aggregation.go:31.142,41.2 1 0 +github.com/muety/wakapi/services/aggregation.go:50.43,53.52 2 0 +github.com/muety/wakapi/services/aggregation.go:53.52,54.80 1 0 +github.com/muety/wakapi/services/aggregation.go:54.80,56.4 1 0 +github.com/muety/wakapi/services/aggregation.go:57.58,59.3 1 0 +github.com/muety/wakapi/services/aggregation.go:62.92,63.47 1 0 +github.com/muety/wakapi/services/aggregation.go:66.2,72.16 4 0 +github.com/muety/wakapi/services/aggregation.go:78.2,79.16 2 0 +github.com/muety/wakapi/services/aggregation.go:85.2,86.44 2 0 +github.com/muety/wakapi/services/aggregation.go:91.2,93.12 3 0 +github.com/muety/wakapi/services/aggregation.go:105.2,105.41 1 0 +github.com/muety/wakapi/services/aggregation.go:123.2,123.12 1 0 +github.com/muety/wakapi/services/aggregation.go:63.47,65.3 1 0 +github.com/muety/wakapi/services/aggregation.go:72.16,75.3 2 0 +github.com/muety/wakapi/services/aggregation.go:79.16,82.3 2 0 +github.com/muety/wakapi/services/aggregation.go:86.44,88.3 1 0 +github.com/muety/wakapi/services/aggregation.go:93.12,94.28 1 0 +github.com/muety/wakapi/services/aggregation.go:94.28,96.47 2 0 +github.com/muety/wakapi/services/aggregation.go:96.47,98.5 1 0 +github.com/muety/wakapi/services/aggregation.go:98.19,100.5 1 0 +github.com/muety/wakapi/services/aggregation.go:105.41,106.71 1 0 +github.com/muety/wakapi/services/aggregation.go:110.3,110.21 1 0 +github.com/muety/wakapi/services/aggregation.go:106.71,107.12 1 0 +github.com/muety/wakapi/services/aggregation.go:110.21,114.4 1 0 +github.com/muety/wakapi/services/aggregation.go:114.9,114.62 1 0 +github.com/muety/wakapi/services/aggregation.go:114.62,118.4 1 0 +github.com/muety/wakapi/services/aggregation.go:126.60,127.115 1 0 +github.com/muety/wakapi/services/aggregation.go:127.115,129.3 1 0 +github.com/muety/wakapi/services/aggregation.go:129.8,131.60 2 0 +github.com/muety/wakapi/services/aggregation.go:131.60,133.4 1 0 +github.com/muety/wakapi/services/aggregation.go:137.83,152.41 5 0 +github.com/muety/wakapi/services/aggregation.go:152.41,162.3 3 0 +github.com/muety/wakapi/services/aggregation.go:165.83,168.27 3 0 +github.com/muety/wakapi/services/aggregation.go:173.2,174.12 2 0 +github.com/muety/wakapi/services/aggregation.go:168.27,169.34 1 0 +github.com/muety/wakapi/services/aggregation.go:169.34,171.4 1 0 +github.com/muety/wakapi/services/aggregation.go:177.79,180.27 3 0 +github.com/muety/wakapi/services/aggregation.go:180.27,182.3 1 0 +github.com/muety/wakapi/services/aggregation.go:185.34,188.2 2 0 +github.com/muety/wakapi/services/key_value.go:14.89,19.2 1 0 +github.com/muety/wakapi/services/key_value.go:21.83,23.2 1 0 +github.com/muety/wakapi/services/key_value.go:25.90,27.2 1 0 +github.com/muety/wakapi/services/key_value.go:29.78,31.16 2 0 +github.com/muety/wakapi/services/key_value.go:37.2,37.11 1 0 +github.com/muety/wakapi/services/key_value.go:31.16,36.3 1 0 +github.com/muety/wakapi/services/key_value.go:40.72,42.2 1 0 +github.com/muety/wakapi/services/key_value.go:44.60,46.2 1 0 github.com/muety/wakapi/services/language_mapping.go:18.118,24.2 1 0 github.com/muety/wakapi/services/language_mapping.go:26.86,28.2 1 0 github.com/muety/wakapi/services/language_mapping.go:30.96,31.53 1 0 @@ -978,6 +1025,75 @@ github.com/muety/wakapi/services/language_mapping.go:66.82,67.26 1 0 github.com/muety/wakapi/services/language_mapping.go:70.2,72.12 3 0 github.com/muety/wakapi/services/language_mapping.go:67.26,69.3 1 0 github.com/muety/wakapi/services/language_mapping.go:75.74,78.2 1 0 +github.com/muety/wakapi/services/project_label.go:21.111,28.2 1 0 +github.com/muety/wakapi/services/project_label.go:30.80,32.2 1 0 +github.com/muety/wakapi/services/project_label.go:34.90,35.51 1 0 +github.com/muety/wakapi/services/project_label.go:39.2,40.16 2 0 +github.com/muety/wakapi/services/project_label.go:43.2,44.20 2 0 +github.com/muety/wakapi/services/project_label.go:35.51,37.3 1 0 +github.com/muety/wakapi/services/project_label.go:40.16,42.3 1 0 +github.com/muety/wakapi/services/project_label.go:48.108,50.16 2 0 +github.com/muety/wakapi/services/project_label.go:53.2,53.112 1 0 +github.com/muety/wakapi/services/project_label.go:56.2,56.26 1 0 +github.com/muety/wakapi/services/project_label.go:50.16,52.3 1 0 +github.com/muety/wakapi/services/project_label.go:53.112,55.3 1 0 +github.com/muety/wakapi/services/project_label.go:60.116,62.16 2 0 +github.com/muety/wakapi/services/project_label.go:65.2,65.112 1 0 +github.com/muety/wakapi/services/project_label.go:68.2,68.26 1 0 +github.com/muety/wakapi/services/project_label.go:62.16,64.3 1 0 +github.com/muety/wakapi/services/project_label.go:65.112,67.3 1 0 +github.com/muety/wakapi/services/project_label.go:71.98,73.16 2 0 +github.com/muety/wakapi/services/project_label.go:77.2,79.20 3 0 +github.com/muety/wakapi/services/project_label.go:73.16,75.3 1 0 +github.com/muety/wakapi/services/project_label.go:82.74,83.24 1 0 +github.com/muety/wakapi/services/project_label.go:86.2,89.12 4 0 +github.com/muety/wakapi/services/project_label.go:83.24,85.3 1 0 +github.com/muety/wakapi/services/project_label.go:92.89,94.14 2 0 +github.com/muety/wakapi/services/project_label.go:97.2,100.4 1 0 +github.com/muety/wakapi/services/project_label.go:94.14,96.3 1 0 +github.com/muety/wakapi/services/report.go:31.122,44.2 2 0 +github.com/muety/wakapi/services/report.go:46.38,49.45 2 0 +github.com/muety/wakapi/services/report.go:67.2,67.49 1 0 +github.com/muety/wakapi/services/report.go:87.2,87.16 1 0 +github.com/muety/wakapi/services/report.go:49.45,50.46 1 0 +github.com/muety/wakapi/services/report.go:50.46,53.57 2 0 +github.com/muety/wakapi/services/report.go:58.4,58.58 1 0 +github.com/muety/wakapi/services/report.go:53.57,55.5 1 0 +github.com/muety/wakapi/services/report.go:58.58,61.5 2 0 +github.com/muety/wakapi/services/report.go:62.18,64.4 1 0 +github.com/muety/wakapi/services/report.go:67.49,70.17 2 0 +github.com/muety/wakapi/services/report.go:76.3,76.78 1 0 +github.com/muety/wakapi/services/report.go:81.3,82.27 2 0 +github.com/muety/wakapi/services/report.go:70.17,73.4 2 0 +github.com/muety/wakapi/services/report.go:76.78,78.4 1 0 +github.com/muety/wakapi/services/report.go:82.27,84.4 1 0 +github.com/muety/wakapi/services/report.go:87.16,89.3 1 0 +github.com/muety/wakapi/services/report.go:92.87,93.22 1 0 +github.com/muety/wakapi/services/report.go:98.2,104.16 5 0 +github.com/muety/wakapi/services/report.go:109.2,116.65 2 0 +github.com/muety/wakapi/services/report.go:121.2,122.12 2 0 +github.com/muety/wakapi/services/report.go:93.22,96.3 2 0 +github.com/muety/wakapi/services/report.go:104.16,107.3 2 0 +github.com/muety/wakapi/services/report.go:116.65,119.3 2 0 +github.com/muety/wakapi/services/housekeeping.go:20.144,29.2 1 0 +github.com/muety/wakapi/services/housekeeping.go:31.42,32.43 1 0 +github.com/muety/wakapi/services/housekeeping.go:36.2,38.47 2 0 +github.com/muety/wakapi/services/housekeeping.go:62.2,62.16 1 0 +github.com/muety/wakapi/services/housekeeping.go:32.43,34.3 1 0 +github.com/muety/wakapi/services/housekeeping.go:38.47,41.17 2 0 +github.com/muety/wakapi/services/housekeeping.go:47.3,47.27 1 0 +github.com/muety/wakapi/services/housekeeping.go:41.17,44.4 2 0 +github.com/muety/wakapi/services/housekeeping.go:47.27,49.31 1 0 +github.com/muety/wakapi/services/housekeeping.go:53.4,54.35 2 0 +github.com/muety/wakapi/services/housekeeping.go:49.31,50.13 1 0 +github.com/muety/wakapi/services/housekeeping.go:54.35,55.75 1 0 +github.com/muety/wakapi/services/housekeeping.go:55.75,57.6 1 0 +github.com/muety/wakapi/services/housekeeping.go:62.16,64.3 1 0 +github.com/muety/wakapi/services/housekeeping.go:67.94,71.73 2 0 +github.com/muety/wakapi/services/housekeeping.go:76.2,77.74 2 0 +github.com/muety/wakapi/services/housekeeping.go:81.2,81.12 1 0 +github.com/muety/wakapi/services/housekeeping.go:71.73,73.3 1 0 +github.com/muety/wakapi/services/housekeeping.go:77.74,79.3 1 0 github.com/muety/wakapi/services/leaderboard.go:30.159,43.33 3 0 github.com/muety/wakapi/services/leaderboard.go:67.2,67.12 1 0 github.com/muety/wakapi/services/leaderboard.go:43.33,44.31 1 0 @@ -1057,199 +1173,6 @@ github.com/muety/wakapi/services/leaderboard.go:268.2,268.23 1 0 github.com/muety/wakapi/services/leaderboard.go:271.2,271.10 1 0 github.com/muety/wakapi/services/leaderboard.go:265.47,267.3 1 0 github.com/muety/wakapi/services/leaderboard.go:268.23,270.3 1 0 -github.com/muety/wakapi/services/misc.go:44.188,56.2 1 0 -github.com/muety/wakapi/services/misc.go:58.36,60.95 2 0 -github.com/muety/wakapi/services/misc.go:64.2,65.111 2 0 -github.com/muety/wakapi/services/misc.go:69.2,69.128 1 0 -github.com/muety/wakapi/services/misc.go:77.2,77.33 1 0 -github.com/muety/wakapi/services/misc.go:82.2,82.33 1 0 -github.com/muety/wakapi/services/misc.go:87.2,87.170 1 0 -github.com/muety/wakapi/services/misc.go:60.95,62.3 1 0 -github.com/muety/wakapi/services/misc.go:65.111,67.3 1 0 -github.com/muety/wakapi/services/misc.go:69.128,71.125 2 0 -github.com/muety/wakapi/services/misc.go:71.125,73.4 1 0 -github.com/muety/wakapi/services/misc.go:77.33,78.71 1 0 -github.com/muety/wakapi/services/misc.go:78.71,80.4 1 0 -github.com/muety/wakapi/services/misc.go:82.33,83.80 1 0 -github.com/muety/wakapi/services/misc.go:83.80,85.4 1 0 -github.com/muety/wakapi/services/misc.go:87.170,88.83 1 0 -github.com/muety/wakapi/services/misc.go:88.83,90.4 1 0 -github.com/muety/wakapi/services/misc.go:94.42,96.36 2 0 -github.com/muety/wakapi/services/misc.go:99.2,102.16 3 0 -github.com/muety/wakapi/services/misc.go:107.2,111.26 4 0 -github.com/muety/wakapi/services/misc.go:123.2,123.30 1 0 -github.com/muety/wakapi/services/misc.go:96.36,98.3 1 0 -github.com/muety/wakapi/services/misc.go:102.16,105.3 2 0 -github.com/muety/wakapi/services/misc.go:111.26,113.46 2 0 -github.com/muety/wakapi/services/misc.go:113.46,116.4 2 0 -github.com/muety/wakapi/services/misc.go:116.18,119.4 2 0 -github.com/muety/wakapi/services/misc.go:123.30,124.58 1 0 -github.com/muety/wakapi/services/misc.go:124.58,128.19 1 0 -github.com/muety/wakapi/services/misc.go:132.4,135.19 1 0 -github.com/muety/wakapi/services/misc.go:128.19,130.5 1 0 -github.com/muety/wakapi/services/misc.go:135.19,137.5 1 0 -github.com/muety/wakapi/services/misc.go:138.9,140.4 1 0 -github.com/muety/wakapi/services/misc.go:144.51,147.45 2 0 -github.com/muety/wakapi/services/misc.go:147.45,148.41 1 0 -github.com/muety/wakapi/services/misc.go:152.3,155.17 3 0 -github.com/muety/wakapi/services/misc.go:160.3,160.33 1 0 -github.com/muety/wakapi/services/misc.go:148.41,151.4 2 0 -github.com/muety/wakapi/services/misc.go:155.17,158.4 2 0 -github.com/muety/wakapi/services/misc.go:160.33,161.31 1 0 -github.com/muety/wakapi/services/misc.go:165.4,169.19 2 0 -github.com/muety/wakapi/services/misc.go:161.31,162.13 1 0 -github.com/muety/wakapi/services/misc.go:169.19,171.5 1 0 -github.com/muety/wakapi/services/misc.go:173.17,175.3 1 0 -github.com/muety/wakapi/services/misc.go:185.54,186.82 1 0 -github.com/muety/wakapi/services/misc.go:190.2,193.16 3 0 -github.com/muety/wakapi/services/misc.go:198.2,199.104 2 0 -github.com/muety/wakapi/services/misc.go:208.2,208.26 1 0 -github.com/muety/wakapi/services/misc.go:186.82,188.3 1 0 -github.com/muety/wakapi/services/misc.go:193.16,196.3 2 0 -github.com/muety/wakapi/services/misc.go:199.104,200.122 1 0 -github.com/muety/wakapi/services/misc.go:200.122,202.4 1 0 -github.com/muety/wakapi/services/misc.go:203.8,206.3 2 0 -github.com/muety/wakapi/services/misc.go:208.26,209.49 1 0 -github.com/muety/wakapi/services/misc.go:216.3,216.92 1 0 -github.com/muety/wakapi/services/misc.go:220.3,221.89 2 0 -github.com/muety/wakapi/services/misc.go:209.49,211.4 1 0 -github.com/muety/wakapi/services/misc.go:216.92,217.12 1 0 -github.com/muety/wakapi/services/misc.go:221.89,223.4 1 0 -github.com/muety/wakapi/services/misc.go:227.73,229.16 2 0 -github.com/muety/wakapi/services/misc.go:233.2,233.27 1 0 -github.com/muety/wakapi/services/misc.go:229.16,232.3 2 0 -github.com/muety/wakapi/services/misc.go:236.99,238.33 2 0 -github.com/muety/wakapi/services/misc.go:238.33,242.86 3 0 -github.com/muety/wakapi/services/misc.go:247.3,250.18 1 0 -github.com/muety/wakapi/services/misc.go:242.86,245.4 2 0 -github.com/muety/wakapi/services/misc.go:250.18,252.4 1 0 -github.com/muety/wakapi/services/misc.go:256.53,259.2 2 0 -github.com/muety/wakapi/services/misc.go:261.53,264.2 2 0 -github.com/muety/wakapi/services/misc.go:266.64,269.2 2 0 -github.com/muety/wakapi/services/user.go:26.99,36.33 3 0 -github.com/muety/wakapi/services/user.go:57.2,57.12 1 0 -github.com/muety/wakapi/services/user.go:36.33,37.31 1 0 -github.com/muety/wakapi/services/user.go:37.31,43.73 4 0 -github.com/muety/wakapi/services/user.go:47.4,47.24 1 0 -github.com/muety/wakapi/services/user.go:43.73,45.5 1 0 -github.com/muety/wakapi/services/user.go:47.24,48.80 1 0 -github.com/muety/wakapi/services/user.go:48.80,50.6 1 0 -github.com/muety/wakapi/services/user.go:50.11,52.6 1 0 -github.com/muety/wakapi/services/user.go:60.74,61.40 1 0 -github.com/muety/wakapi/services/user.go:65.2,66.16 2 0 -github.com/muety/wakapi/services/user.go:70.2,71.15 2 0 -github.com/muety/wakapi/services/user.go:61.40,63.3 1 0 -github.com/muety/wakapi/services/user.go:66.16,68.3 1 0 -github.com/muety/wakapi/services/user.go:74.72,75.37 1 0 -github.com/muety/wakapi/services/user.go:79.2,80.16 2 0 -github.com/muety/wakapi/services/user.go:84.2,85.15 2 0 -github.com/muety/wakapi/services/user.go:75.37,77.3 1 0 -github.com/muety/wakapi/services/user.go:80.16,82.3 1 0 -github.com/muety/wakapi/services/user.go:88.76,90.2 1 0 -github.com/muety/wakapi/services/user.go:92.86,94.2 1 0 -github.com/muety/wakapi/services/user.go:96.92,98.2 1 0 -github.com/muety/wakapi/services/user.go:100.58,102.2 1 0 -github.com/muety/wakapi/services/user.go:104.71,106.2 1 0 -github.com/muety/wakapi/services/user.go:108.86,110.16 2 0 -github.com/muety/wakapi/services/user.go:113.2,113.112 1 0 -github.com/muety/wakapi/services/user.go:110.16,112.3 1 0 -github.com/muety/wakapi/services/user.go:113.112,115.3 1 0 -github.com/muety/wakapi/services/user.go:118.86,120.2 1 0 -github.com/muety/wakapi/services/user.go:122.94,124.2 1 0 -github.com/muety/wakapi/services/user.go:126.71,128.12 2 0 -github.com/muety/wakapi/services/user.go:132.2,133.42 2 0 -github.com/muety/wakapi/services/user.go:137.2,138.16 2 0 -github.com/muety/wakapi/services/user.go:142.2,143.21 2 0 -github.com/muety/wakapi/services/user.go:128.12,130.3 1 0 -github.com/muety/wakapi/services/user.go:133.42,135.3 1 0 -github.com/muety/wakapi/services/user.go:138.16,140.3 1 0 -github.com/muety/wakapi/services/user.go:146.48,148.2 1 0 -github.com/muety/wakapi/services/user.go:150.102,160.93 2 0 -github.com/muety/wakapi/services/user.go:166.2,166.38 1 0 -github.com/muety/wakapi/services/user.go:160.93,162.3 1 0 -github.com/muety/wakapi/services/user.go:162.8,164.3 1 0 -github.com/muety/wakapi/services/user.go:169.73,173.2 3 0 -github.com/muety/wakapi/services/user.go:175.78,179.2 3 0 -github.com/muety/wakapi/services/user.go:181.122,184.35 2 0 -github.com/muety/wakapi/services/user.go:190.2,190.35 1 0 -github.com/muety/wakapi/services/user.go:194.2,194.18 1 0 -github.com/muety/wakapi/services/user.go:184.35,185.89 1 0 -github.com/muety/wakapi/services/user.go:185.89,187.4 1 0 -github.com/muety/wakapi/services/user.go:190.35,192.3 1 0 -github.com/muety/wakapi/services/user.go:197.106,200.96 3 0 -github.com/muety/wakapi/services/user.go:205.2,205.68 1 0 -github.com/muety/wakapi/services/user.go:200.96,202.3 1 0 -github.com/muety/wakapi/services/user.go:202.8,204.3 1 0 -github.com/muety/wakapi/services/user.go:208.85,210.2 1 0 -github.com/muety/wakapi/services/user.go:212.57,219.2 4 0 -github.com/muety/wakapi/services/user.go:221.38,223.2 1 0 -github.com/muety/wakapi/services/user.go:225.55,227.2 1 0 -github.com/muety/wakapi/services/user.go:229.57,234.2 1 0 -github.com/muety/wakapi/services/project_label.go:21.111,28.2 1 0 -github.com/muety/wakapi/services/project_label.go:30.80,32.2 1 0 -github.com/muety/wakapi/services/project_label.go:34.90,35.51 1 0 -github.com/muety/wakapi/services/project_label.go:39.2,40.16 2 0 -github.com/muety/wakapi/services/project_label.go:43.2,44.20 2 0 -github.com/muety/wakapi/services/project_label.go:35.51,37.3 1 0 -github.com/muety/wakapi/services/project_label.go:40.16,42.3 1 0 -github.com/muety/wakapi/services/project_label.go:48.108,50.16 2 0 -github.com/muety/wakapi/services/project_label.go:53.2,53.112 1 0 -github.com/muety/wakapi/services/project_label.go:56.2,56.26 1 0 -github.com/muety/wakapi/services/project_label.go:50.16,52.3 1 0 -github.com/muety/wakapi/services/project_label.go:53.112,55.3 1 0 -github.com/muety/wakapi/services/project_label.go:60.116,62.16 2 0 -github.com/muety/wakapi/services/project_label.go:65.2,65.112 1 0 -github.com/muety/wakapi/services/project_label.go:68.2,68.26 1 0 -github.com/muety/wakapi/services/project_label.go:62.16,64.3 1 0 -github.com/muety/wakapi/services/project_label.go:65.112,67.3 1 0 -github.com/muety/wakapi/services/project_label.go:71.98,73.16 2 0 -github.com/muety/wakapi/services/project_label.go:77.2,79.20 3 0 -github.com/muety/wakapi/services/project_label.go:73.16,75.3 1 0 -github.com/muety/wakapi/services/project_label.go:82.74,83.24 1 0 -github.com/muety/wakapi/services/project_label.go:86.2,89.12 4 0 -github.com/muety/wakapi/services/project_label.go:83.24,85.3 1 0 -github.com/muety/wakapi/services/project_label.go:92.89,94.14 2 0 -github.com/muety/wakapi/services/project_label.go:97.2,100.4 1 0 -github.com/muety/wakapi/services/project_label.go:94.14,96.3 1 0 -github.com/muety/wakapi/services/aggregation.go:31.142,41.2 1 0 -github.com/muety/wakapi/services/aggregation.go:50.43,53.52 2 0 -github.com/muety/wakapi/services/aggregation.go:53.52,54.80 1 0 -github.com/muety/wakapi/services/aggregation.go:54.80,56.4 1 0 -github.com/muety/wakapi/services/aggregation.go:57.58,59.3 1 0 -github.com/muety/wakapi/services/aggregation.go:62.92,63.47 1 0 -github.com/muety/wakapi/services/aggregation.go:66.2,72.16 4 0 -github.com/muety/wakapi/services/aggregation.go:78.2,79.16 2 0 -github.com/muety/wakapi/services/aggregation.go:85.2,86.44 2 0 -github.com/muety/wakapi/services/aggregation.go:91.2,93.12 3 0 -github.com/muety/wakapi/services/aggregation.go:105.2,105.41 1 0 -github.com/muety/wakapi/services/aggregation.go:123.2,123.12 1 0 -github.com/muety/wakapi/services/aggregation.go:63.47,65.3 1 0 -github.com/muety/wakapi/services/aggregation.go:72.16,75.3 2 0 -github.com/muety/wakapi/services/aggregation.go:79.16,82.3 2 0 -github.com/muety/wakapi/services/aggregation.go:86.44,88.3 1 0 -github.com/muety/wakapi/services/aggregation.go:93.12,94.28 1 0 -github.com/muety/wakapi/services/aggregation.go:94.28,96.47 2 0 -github.com/muety/wakapi/services/aggregation.go:96.47,98.5 1 0 -github.com/muety/wakapi/services/aggregation.go:98.19,100.5 1 0 -github.com/muety/wakapi/services/aggregation.go:105.41,106.71 1 0 -github.com/muety/wakapi/services/aggregation.go:110.3,110.21 1 0 -github.com/muety/wakapi/services/aggregation.go:106.71,107.12 1 0 -github.com/muety/wakapi/services/aggregation.go:110.21,114.4 1 0 -github.com/muety/wakapi/services/aggregation.go:114.9,114.62 1 0 -github.com/muety/wakapi/services/aggregation.go:114.62,118.4 1 0 -github.com/muety/wakapi/services/aggregation.go:126.60,127.115 1 0 -github.com/muety/wakapi/services/aggregation.go:127.115,129.3 1 0 -github.com/muety/wakapi/services/aggregation.go:129.8,131.60 2 0 -github.com/muety/wakapi/services/aggregation.go:131.60,133.4 1 0 -github.com/muety/wakapi/services/aggregation.go:137.83,152.41 5 0 -github.com/muety/wakapi/services/aggregation.go:152.41,162.3 3 0 -github.com/muety/wakapi/services/aggregation.go:165.83,168.27 3 0 -github.com/muety/wakapi/services/aggregation.go:173.2,174.12 2 0 -github.com/muety/wakapi/services/aggregation.go:168.27,169.34 1 0 -github.com/muety/wakapi/services/aggregation.go:169.34,171.4 1 0 -github.com/muety/wakapi/services/aggregation.go:177.79,180.27 3 0 -github.com/muety/wakapi/services/aggregation.go:180.27,182.3 1 0 -github.com/muety/wakapi/services/aggregation.go:185.34,188.2 2 0 github.com/muety/wakapi/services/alias.go:19.77,24.2 1 1 github.com/muety/wakapi/services/alias.go:28.60,29.43 1 1 github.com/muety/wakapi/services/alias.go:32.2,32.14 1 1 @@ -1313,67 +1236,6 @@ github.com/muety/wakapi/services/alias.go:174.16,176.5 1 0 github.com/muety/wakapi/services/alias.go:179.8,181.3 1 0 github.com/muety/wakapi/services/diagnostics.go:14.101,19.2 1 0 github.com/muety/wakapi/services/diagnostics.go:21.101,24.2 2 0 -github.com/muety/wakapi/services/duration.go:18.78,24.2 2 1 -github.com/muety/wakapi/services/duration.go:26.123,29.42 2 1 -github.com/muety/wakapi/services/duration.go:35.2,36.16 2 1 -github.com/muety/wakapi/services/duration.go:43.2,48.31 4 1 -github.com/muety/wakapi/services/duration.go:96.2,98.31 2 1 -github.com/muety/wakapi/services/duration.go:111.2,111.49 1 1 -github.com/muety/wakapi/services/duration.go:115.2,115.32 1 1 -github.com/muety/wakapi/services/duration.go:29.42,30.90 1 1 -github.com/muety/wakapi/services/duration.go:30.90,32.4 1 1 -github.com/muety/wakapi/services/duration.go:36.16,38.3 1 0 -github.com/muety/wakapi/services/duration.go:48.31,49.42 1 1 -github.com/muety/wakapi/services/duration.go:53.3,55.62 2 1 -github.com/muety/wakapi/services/duration.go:59.3,59.20 1 1 -github.com/muety/wakapi/services/duration.go:64.3,74.15 3 1 -github.com/muety/wakapi/services/duration.go:77.3,83.84 2 1 -github.com/muety/wakapi/services/duration.go:93.3,93.10 1 1 -github.com/muety/wakapi/services/duration.go:49.42,50.12 1 1 -github.com/muety/wakapi/services/duration.go:55.62,57.4 1 1 -github.com/muety/wakapi/services/duration.go:59.20,61.12 2 1 -github.com/muety/wakapi/services/duration.go:74.15,76.4 1 0 -github.com/muety/wakapi/services/duration.go:83.84,85.41 2 1 -github.com/muety/wakapi/services/duration.go:88.4,88.15 1 1 -github.com/muety/wakapi/services/duration.go:85.41,87.5 1 1 -github.com/muety/wakapi/services/duration.go:89.9,91.4 1 1 -github.com/muety/wakapi/services/duration.go:98.31,99.26 1 1 -github.com/muety/wakapi/services/duration.go:99.26,104.23 1 1 -github.com/muety/wakapi/services/duration.go:107.4,107.36 1 1 -github.com/muety/wakapi/services/duration.go:104.23,106.5 1 1 -github.com/muety/wakapi/services/duration.go:111.49,113.3 1 1 -github.com/muety/wakapi/services/key_value.go:14.89,19.2 1 0 -github.com/muety/wakapi/services/key_value.go:21.83,23.2 1 0 -github.com/muety/wakapi/services/key_value.go:25.90,27.2 1 0 -github.com/muety/wakapi/services/key_value.go:29.78,31.16 2 0 -github.com/muety/wakapi/services/key_value.go:37.2,37.11 1 0 -github.com/muety/wakapi/services/key_value.go:31.16,36.3 1 0 -github.com/muety/wakapi/services/key_value.go:40.72,42.2 1 0 -github.com/muety/wakapi/services/key_value.go:44.60,46.2 1 0 -github.com/muety/wakapi/services/report.go:31.122,44.2 2 0 -github.com/muety/wakapi/services/report.go:46.38,49.45 2 0 -github.com/muety/wakapi/services/report.go:67.2,67.49 1 0 -github.com/muety/wakapi/services/report.go:87.2,87.16 1 0 -github.com/muety/wakapi/services/report.go:49.45,50.46 1 0 -github.com/muety/wakapi/services/report.go:50.46,53.57 2 0 -github.com/muety/wakapi/services/report.go:58.4,58.58 1 0 -github.com/muety/wakapi/services/report.go:53.57,55.5 1 0 -github.com/muety/wakapi/services/report.go:58.58,61.5 2 0 -github.com/muety/wakapi/services/report.go:62.18,64.4 1 0 -github.com/muety/wakapi/services/report.go:67.49,70.17 2 0 -github.com/muety/wakapi/services/report.go:76.3,76.78 1 0 -github.com/muety/wakapi/services/report.go:81.3,82.27 2 0 -github.com/muety/wakapi/services/report.go:70.17,73.4 2 0 -github.com/muety/wakapi/services/report.go:76.78,78.4 1 0 -github.com/muety/wakapi/services/report.go:82.27,84.4 1 0 -github.com/muety/wakapi/services/report.go:87.16,89.3 1 0 -github.com/muety/wakapi/services/report.go:92.87,93.22 1 0 -github.com/muety/wakapi/services/report.go:98.2,104.16 5 0 -github.com/muety/wakapi/services/report.go:109.2,116.65 2 0 -github.com/muety/wakapi/services/report.go:121.2,122.12 2 0 -github.com/muety/wakapi/services/report.go:93.22,96.3 2 0 -github.com/muety/wakapi/services/report.go:104.16,107.3 2 0 -github.com/muety/wakapi/services/report.go:116.65,119.3 2 0 github.com/muety/wakapi/services/summary.go:29.189,41.33 3 1 github.com/muety/wakapi/services/summary.go:47.2,47.12 1 1 github.com/muety/wakapi/services/summary.go:41.33,42.31 1 1 @@ -1503,6 +1365,35 @@ github.com/muety/wakapi/services/summary.go:474.3,474.24 1 1 github.com/muety/wakapi/services/summary.go:465.17,466.33 1 1 github.com/muety/wakapi/services/summary.go:466.33,468.5 1 1 github.com/muety/wakapi/services/summary.go:471.28,473.4 1 1 +github.com/muety/wakapi/services/duration.go:18.78,24.2 2 1 +github.com/muety/wakapi/services/duration.go:26.123,29.42 2 1 +github.com/muety/wakapi/services/duration.go:35.2,36.16 2 1 +github.com/muety/wakapi/services/duration.go:43.2,48.31 4 1 +github.com/muety/wakapi/services/duration.go:96.2,98.31 2 1 +github.com/muety/wakapi/services/duration.go:111.2,111.49 1 1 +github.com/muety/wakapi/services/duration.go:115.2,115.32 1 1 +github.com/muety/wakapi/services/duration.go:29.42,30.90 1 1 +github.com/muety/wakapi/services/duration.go:30.90,32.4 1 1 +github.com/muety/wakapi/services/duration.go:36.16,38.3 1 0 +github.com/muety/wakapi/services/duration.go:48.31,49.42 1 1 +github.com/muety/wakapi/services/duration.go:53.3,55.62 2 1 +github.com/muety/wakapi/services/duration.go:59.3,59.20 1 1 +github.com/muety/wakapi/services/duration.go:64.3,74.15 3 1 +github.com/muety/wakapi/services/duration.go:77.3,83.84 2 1 +github.com/muety/wakapi/services/duration.go:93.3,93.10 1 1 +github.com/muety/wakapi/services/duration.go:49.42,50.12 1 1 +github.com/muety/wakapi/services/duration.go:55.62,57.4 1 1 +github.com/muety/wakapi/services/duration.go:59.20,61.12 2 1 +github.com/muety/wakapi/services/duration.go:74.15,76.4 1 0 +github.com/muety/wakapi/services/duration.go:83.84,85.41 2 1 +github.com/muety/wakapi/services/duration.go:88.4,88.15 1 1 +github.com/muety/wakapi/services/duration.go:85.41,87.5 1 1 +github.com/muety/wakapi/services/duration.go:89.9,91.4 1 1 +github.com/muety/wakapi/services/duration.go:98.31,99.26 1 1 +github.com/muety/wakapi/services/duration.go:99.26,104.23 1 1 +github.com/muety/wakapi/services/duration.go:107.4,107.36 1 1 +github.com/muety/wakapi/services/duration.go:104.23,106.5 1 1 +github.com/muety/wakapi/services/duration.go:111.49,113.3 1 1 github.com/muety/wakapi/services/heartbeat.go:26.141,40.33 3 0 github.com/muety/wakapi/services/heartbeat.go:48.2,48.12 1 0 github.com/muety/wakapi/services/heartbeat.go:40.33,41.31 1 0 @@ -1575,22 +1466,131 @@ github.com/muety/wakapi/services/heartbeat.go:264.94,266.48 2 0 github.com/muety/wakapi/services/heartbeat.go:272.2,272.18 1 0 github.com/muety/wakapi/services/heartbeat.go:266.48,268.18 2 0 github.com/muety/wakapi/services/heartbeat.go:268.18,270.4 1 0 -github.com/muety/wakapi/services/housekeeping.go:20.144,29.2 1 0 -github.com/muety/wakapi/services/housekeeping.go:31.42,32.43 1 0 -github.com/muety/wakapi/services/housekeeping.go:36.2,38.47 2 0 -github.com/muety/wakapi/services/housekeeping.go:62.2,62.16 1 0 -github.com/muety/wakapi/services/housekeeping.go:32.43,34.3 1 0 -github.com/muety/wakapi/services/housekeeping.go:38.47,41.17 2 0 -github.com/muety/wakapi/services/housekeeping.go:47.3,47.27 1 0 -github.com/muety/wakapi/services/housekeeping.go:41.17,44.4 2 0 -github.com/muety/wakapi/services/housekeeping.go:47.27,49.31 1 0 -github.com/muety/wakapi/services/housekeeping.go:53.4,54.35 2 0 -github.com/muety/wakapi/services/housekeeping.go:49.31,50.13 1 0 -github.com/muety/wakapi/services/housekeeping.go:54.35,55.75 1 0 -github.com/muety/wakapi/services/housekeeping.go:55.75,57.6 1 0 -github.com/muety/wakapi/services/housekeeping.go:62.16,64.3 1 0 -github.com/muety/wakapi/services/housekeeping.go:67.94,71.73 2 0 -github.com/muety/wakapi/services/housekeeping.go:76.2,77.74 2 0 -github.com/muety/wakapi/services/housekeeping.go:81.2,81.12 1 0 -github.com/muety/wakapi/services/housekeeping.go:71.73,73.3 1 0 -github.com/muety/wakapi/services/housekeeping.go:77.74,79.3 1 0 +github.com/muety/wakapi/services/misc.go:44.188,56.2 1 0 +github.com/muety/wakapi/services/misc.go:58.36,60.95 2 0 +github.com/muety/wakapi/services/misc.go:64.2,65.111 2 0 +github.com/muety/wakapi/services/misc.go:69.2,69.128 1 0 +github.com/muety/wakapi/services/misc.go:77.2,77.33 1 0 +github.com/muety/wakapi/services/misc.go:82.2,82.33 1 0 +github.com/muety/wakapi/services/misc.go:87.2,87.170 1 0 +github.com/muety/wakapi/services/misc.go:60.95,62.3 1 0 +github.com/muety/wakapi/services/misc.go:65.111,67.3 1 0 +github.com/muety/wakapi/services/misc.go:69.128,71.125 2 0 +github.com/muety/wakapi/services/misc.go:71.125,73.4 1 0 +github.com/muety/wakapi/services/misc.go:77.33,78.71 1 0 +github.com/muety/wakapi/services/misc.go:78.71,80.4 1 0 +github.com/muety/wakapi/services/misc.go:82.33,83.80 1 0 +github.com/muety/wakapi/services/misc.go:83.80,85.4 1 0 +github.com/muety/wakapi/services/misc.go:87.170,88.83 1 0 +github.com/muety/wakapi/services/misc.go:88.83,90.4 1 0 +github.com/muety/wakapi/services/misc.go:94.42,96.36 2 0 +github.com/muety/wakapi/services/misc.go:99.2,102.16 3 0 +github.com/muety/wakapi/services/misc.go:107.2,111.26 4 0 +github.com/muety/wakapi/services/misc.go:123.2,123.30 1 0 +github.com/muety/wakapi/services/misc.go:96.36,98.3 1 0 +github.com/muety/wakapi/services/misc.go:102.16,105.3 2 0 +github.com/muety/wakapi/services/misc.go:111.26,113.46 2 0 +github.com/muety/wakapi/services/misc.go:113.46,116.4 2 0 +github.com/muety/wakapi/services/misc.go:116.18,119.4 2 0 +github.com/muety/wakapi/services/misc.go:123.30,124.58 1 0 +github.com/muety/wakapi/services/misc.go:124.58,128.19 1 0 +github.com/muety/wakapi/services/misc.go:132.4,135.19 1 0 +github.com/muety/wakapi/services/misc.go:128.19,130.5 1 0 +github.com/muety/wakapi/services/misc.go:135.19,137.5 1 0 +github.com/muety/wakapi/services/misc.go:138.9,140.4 1 0 +github.com/muety/wakapi/services/misc.go:144.51,147.45 2 0 +github.com/muety/wakapi/services/misc.go:147.45,148.41 1 0 +github.com/muety/wakapi/services/misc.go:152.3,155.17 3 0 +github.com/muety/wakapi/services/misc.go:160.3,160.33 1 0 +github.com/muety/wakapi/services/misc.go:148.41,151.4 2 0 +github.com/muety/wakapi/services/misc.go:155.17,158.4 2 0 +github.com/muety/wakapi/services/misc.go:160.33,161.31 1 0 +github.com/muety/wakapi/services/misc.go:165.4,169.19 2 0 +github.com/muety/wakapi/services/misc.go:161.31,162.13 1 0 +github.com/muety/wakapi/services/misc.go:169.19,171.5 1 0 +github.com/muety/wakapi/services/misc.go:173.17,175.3 1 0 +github.com/muety/wakapi/services/misc.go:185.54,186.82 1 0 +github.com/muety/wakapi/services/misc.go:190.2,193.16 3 0 +github.com/muety/wakapi/services/misc.go:198.2,199.104 2 0 +github.com/muety/wakapi/services/misc.go:208.2,208.26 1 0 +github.com/muety/wakapi/services/misc.go:186.82,188.3 1 0 +github.com/muety/wakapi/services/misc.go:193.16,196.3 2 0 +github.com/muety/wakapi/services/misc.go:199.104,200.122 1 0 +github.com/muety/wakapi/services/misc.go:200.122,202.4 1 0 +github.com/muety/wakapi/services/misc.go:203.8,206.3 2 0 +github.com/muety/wakapi/services/misc.go:208.26,209.49 1 0 +github.com/muety/wakapi/services/misc.go:216.3,216.92 1 0 +github.com/muety/wakapi/services/misc.go:220.3,221.89 2 0 +github.com/muety/wakapi/services/misc.go:209.49,211.4 1 0 +github.com/muety/wakapi/services/misc.go:216.92,217.12 1 0 +github.com/muety/wakapi/services/misc.go:221.89,223.4 1 0 +github.com/muety/wakapi/services/misc.go:227.73,229.16 2 0 +github.com/muety/wakapi/services/misc.go:233.2,233.27 1 0 +github.com/muety/wakapi/services/misc.go:229.16,232.3 2 0 +github.com/muety/wakapi/services/misc.go:236.99,238.33 2 0 +github.com/muety/wakapi/services/misc.go:238.33,242.86 3 0 +github.com/muety/wakapi/services/misc.go:247.3,250.18 1 0 +github.com/muety/wakapi/services/misc.go:242.86,245.4 2 0 +github.com/muety/wakapi/services/misc.go:250.18,252.4 1 0 +github.com/muety/wakapi/services/misc.go:256.53,259.2 2 0 +github.com/muety/wakapi/services/misc.go:261.53,264.2 2 0 +github.com/muety/wakapi/services/misc.go:266.64,269.2 2 0 +github.com/muety/wakapi/services/user.go:26.99,36.33 3 0 +github.com/muety/wakapi/services/user.go:57.2,57.12 1 0 +github.com/muety/wakapi/services/user.go:36.33,37.31 1 0 +github.com/muety/wakapi/services/user.go:37.31,43.73 4 0 +github.com/muety/wakapi/services/user.go:47.4,47.24 1 0 +github.com/muety/wakapi/services/user.go:43.73,45.5 1 0 +github.com/muety/wakapi/services/user.go:47.24,48.80 1 0 +github.com/muety/wakapi/services/user.go:48.80,50.6 1 0 +github.com/muety/wakapi/services/user.go:50.11,52.6 1 0 +github.com/muety/wakapi/services/user.go:60.74,61.40 1 0 +github.com/muety/wakapi/services/user.go:65.2,66.16 2 0 +github.com/muety/wakapi/services/user.go:70.2,71.15 2 0 +github.com/muety/wakapi/services/user.go:61.40,63.3 1 0 +github.com/muety/wakapi/services/user.go:66.16,68.3 1 0 +github.com/muety/wakapi/services/user.go:74.72,75.37 1 0 +github.com/muety/wakapi/services/user.go:79.2,80.16 2 0 +github.com/muety/wakapi/services/user.go:84.2,85.15 2 0 +github.com/muety/wakapi/services/user.go:75.37,77.3 1 0 +github.com/muety/wakapi/services/user.go:80.16,82.3 1 0 +github.com/muety/wakapi/services/user.go:88.76,90.2 1 0 +github.com/muety/wakapi/services/user.go:92.86,94.2 1 0 +github.com/muety/wakapi/services/user.go:96.92,98.2 1 0 +github.com/muety/wakapi/services/user.go:100.58,102.2 1 0 +github.com/muety/wakapi/services/user.go:104.71,106.2 1 0 +github.com/muety/wakapi/services/user.go:108.86,110.16 2 0 +github.com/muety/wakapi/services/user.go:113.2,113.112 1 0 +github.com/muety/wakapi/services/user.go:110.16,112.3 1 0 +github.com/muety/wakapi/services/user.go:113.112,115.3 1 0 +github.com/muety/wakapi/services/user.go:118.86,120.2 1 0 +github.com/muety/wakapi/services/user.go:122.94,124.2 1 0 +github.com/muety/wakapi/services/user.go:126.71,128.12 2 0 +github.com/muety/wakapi/services/user.go:132.2,133.42 2 0 +github.com/muety/wakapi/services/user.go:137.2,138.16 2 0 +github.com/muety/wakapi/services/user.go:142.2,143.21 2 0 +github.com/muety/wakapi/services/user.go:128.12,130.3 1 0 +github.com/muety/wakapi/services/user.go:133.42,135.3 1 0 +github.com/muety/wakapi/services/user.go:138.16,140.3 1 0 +github.com/muety/wakapi/services/user.go:146.48,148.2 1 0 +github.com/muety/wakapi/services/user.go:150.102,160.93 2 0 +github.com/muety/wakapi/services/user.go:166.2,166.38 1 0 +github.com/muety/wakapi/services/user.go:160.93,162.3 1 0 +github.com/muety/wakapi/services/user.go:162.8,164.3 1 0 +github.com/muety/wakapi/services/user.go:169.73,173.2 3 0 +github.com/muety/wakapi/services/user.go:175.78,179.2 3 0 +github.com/muety/wakapi/services/user.go:181.122,184.35 2 0 +github.com/muety/wakapi/services/user.go:190.2,190.35 1 0 +github.com/muety/wakapi/services/user.go:194.2,194.18 1 0 +github.com/muety/wakapi/services/user.go:184.35,185.89 1 0 +github.com/muety/wakapi/services/user.go:185.89,187.4 1 0 +github.com/muety/wakapi/services/user.go:190.35,192.3 1 0 +github.com/muety/wakapi/services/user.go:197.106,200.96 3 0 +github.com/muety/wakapi/services/user.go:205.2,205.68 1 0 +github.com/muety/wakapi/services/user.go:200.96,202.3 1 0 +github.com/muety/wakapi/services/user.go:202.8,204.3 1 0 +github.com/muety/wakapi/services/user.go:208.85,210.2 1 0 +github.com/muety/wakapi/services/user.go:212.57,219.2 4 0 +github.com/muety/wakapi/services/user.go:221.38,223.2 1 0 +github.com/muety/wakapi/services/user.go:225.55,227.2 1 0 +github.com/muety/wakapi/services/user.go:229.57,234.2 1 0 diff --git a/main.go b/main.go index 607059c..959a72e 100644 --- a/main.go +++ b/main.go @@ -214,7 +214,7 @@ func main() { shieldV1BadgeHandler := shieldsV1Routes.NewBadgeHandler(summaryService, userService) // MVC Handlers - summaryHandler := routes.NewSummaryHandler(summaryService, userService) + summaryHandler := routes.NewSummaryHandler(summaryService, userService, keyValueService) settingsHandler := routes.NewSettingsHandler(userService, heartbeatService, summaryService, aliasService, aggregationService, languageMappingService, projectLabelService, keyValueService, mailService) subscriptionHandler := routes.NewSubscriptionHandler(userService, mailService, keyValueService) leaderboardHandler := routes.NewLeaderboardHandler(userService, leaderboardService) diff --git a/models/view/summary.go b/models/view/summary.go index 1bea3b4..7e54ed1 100644 --- a/models/view/summary.go +++ b/models/view/summary.go @@ -1,6 +1,10 @@ package view -import "github.com/muety/wakapi/models" +import ( + conf "github.com/muety/wakapi/config" + "github.com/muety/wakapi/models" + "time" +) type SummaryViewModel struct { Messages @@ -13,6 +17,16 @@ type SummaryViewModel struct { OSColors map[string]string ApiKey string RawQuery string + UserFirstData time.Time +} + +func (s SummaryViewModel) UserDataExpiring() bool { + cfg := conf.Get() + return cfg.Subscriptions.Enabled && + cfg.App.DataRetentionMonths > 0 && + !s.UserFirstData.IsZero() && + !s.User.HasActiveSubscription() && + time.Now().AddDate(0, -cfg.App.DataRetentionMonths, 0).After(s.UserFirstData) } func (s *SummaryViewModel) WithSuccess(m string) *SummaryViewModel { diff --git a/routes/summary.go b/routes/summary.go index b033721..1575c89 100644 --- a/routes/summary.go +++ b/routes/summary.go @@ -11,19 +11,22 @@ import ( su "github.com/muety/wakapi/routes/utils" "github.com/muety/wakapi/services" "net/http" + "time" ) type SummaryHandler struct { - config *conf.Config - userSrvc services.IUserService - summarySrvc services.ISummaryService + config *conf.Config + userSrvc services.IUserService + summarySrvc services.ISummaryService + keyValueSrvc services.IKeyValueService } -func NewSummaryHandler(summaryService services.ISummaryService, userService services.IUserService) *SummaryHandler { +func NewSummaryHandler(summaryService services.ISummaryService, userService services.IUserService, keyValueService services.IKeyValueService) *SummaryHandler { return &SummaryHandler{ - summarySrvc: summaryService, - userSrvc: userService, - config: conf.Get(), + summarySrvc: summaryService, + userSrvc: userService, + keyValueSrvc: keyValueService, + config: conf.Get(), } } @@ -81,6 +84,13 @@ func (h *SummaryHandler) GetIndex(w http.ResponseWriter, r *http.Request) { return } + // user first data + var firstData time.Time + firstDataKv := h.keyValueSrvc.MustGetString(fmt.Sprintf("%s_%s", conf.KeyFirstHeartbeat, user.ID)) + if firstDataKv.Value != "" { + firstData, _ = time.Parse(time.RFC822Z, firstDataKv.Value) + } + vm := view.SummaryViewModel{ Summary: summary, SummaryParams: summaryParams, @@ -90,6 +100,7 @@ func (h *SummaryHandler) GetIndex(w http.ResponseWriter, r *http.Request) { OSColors: su.FilterColors(h.config.App.GetOSColors(), summary.OperatingSystems), ApiKey: user.ApiKey, RawQuery: rawQuery, + UserFirstData: firstData, } templates[conf.SummaryTemplate].Execute(w, vm) diff --git a/static/assets/css/app.dist.css b/static/assets/css/app.dist.css index 740077a..537fb87 100644 --- a/static/assets/css/app.dist.css +++ b/static/assets/css/app.dist.css @@ -1 +1 @@ -/*! tailwindcss v3.1.8 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;background-color:initial;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:initial}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::-webkit-backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.absolute{position:absolute}.relative{position:relative}.top-0{top:0}.right-0{right:0}.z-10{z-index:10}.row-span-2{grid-row:span 2/span 2}.float-right{float:right}.m-0{margin:0}.mx-auto{margin-left:auto;margin-right:auto}.my-2{margin-top:.5rem;margin-bottom:.5rem}.my-4{margin-top:1rem;margin-bottom:1rem}.mx-1{margin-left:.25rem;margin-right:.25rem}.my-8{margin-top:2rem;margin-bottom:2rem}.my-1{margin-top:.25rem;margin-bottom:.25rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.mt-16{margin-top:4rem}.mt-20{margin-top:5rem}.mb-10{margin-bottom:2.5rem}.mt-10{margin-top:2.5rem}.mb-14{margin-bottom:3.5rem}.-mt-4{margin-top:-1rem}.mt-8{margin-top:2rem}.mb-4{margin-bottom:1rem}.ml-1{margin-left:.25rem}.mt-4{margin-top:1rem}.mt-12{margin-top:3rem}.mb-8{margin-bottom:2rem}.mr-4{margin-right:1rem}.mr-8{margin-right:2rem}.mb-16{margin-bottom:4rem}.ml-4{margin-left:1rem}.-ml-1{margin-left:-.25rem}.mt-2{margin-top:.5rem}.mr-2{margin-right:.5rem}.mt-6{margin-top:1.5rem}.mb-2{margin-bottom:.5rem}.mr-1{margin-right:.25rem}.mt-1{margin-top:.25rem}.-mb-1{margin-bottom:-.25rem}.ml-2{margin-left:.5rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.hidden{display:none}.h-4{height:1rem}.h-full{height:100%}.min-h-screen{min-height:100vh}.w-full{width:100%}.w-12{width:3rem}.w-16{width:4rem}.w-1\/2{width:50%}.w-4{width:1rem}.w-1\/3{width:33.333333%}.w-2\/3{width:66.666667%}.w-40{width:10rem}.max-w-lg{max-width:32rem}.max-w-screen-lg{max-width:1024px}.max-w-4xl{max-width:56rem}.max-w-screen-xl{max-width:1280px}.max-w-screen-sm{max-width:640px}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.shrink{flex-shrink:1}.flex-grow,.grow{flex-grow:1}.cursor-pointer{cursor:pointer}.cursor-not-allowed{cursor:not-allowed}.resize{resize:both}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.items-center{align-items:center}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-x-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.gap-y-6{row-gap:1.5rem}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(1rem*var(--tw-space-x-reverse));margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem*var(--tw-space-y-reverse))}.space-x-8>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(2rem*var(--tw-space-x-reverse));margin-left:calc(2rem*(1 - var(--tw-space-x-reverse)))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(2rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem*var(--tw-space-y-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem*var(--tw-space-y-reverse))}.space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.25rem*var(--tw-space-x-reverse));margin-left:calc(.25rem*(1 - var(--tw-space-x-reverse)))}.truncate{overflow:hidden;white-space:nowrap}.text-ellipsis,.truncate{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.rounded{border-radius:.25rem}.rounded-sm{border-radius:.125rem}.rounded-md{border-radius:.375rem}.rounded-full{border-radius:9999px}.border{border-width:1px}.border-2{border-width:2px}.border-4{border-width:4px}.border-l{border-left-width:1px}.border-t{border-top-width:1px}.border-gray-700{--tw-border-opacity:1;border-color:rgb(55 65 81/var(--tw-border-opacity))}.border-green-700{--tw-border-opacity:1;border-color:rgb(4 120 87/var(--tw-border-opacity))}.border-gray-800{--tw-border-opacity:1;border-color:rgb(31 41 55/var(--tw-border-opacity))}.bg-red-500{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity))}.bg-green-500{--tw-bg-opacity:1;background-color:rgb(16 185 129/var(--tw-bg-opacity))}.bg-gray-900{--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity))}.bg-transparent{background-color:initial}.bg-gray-800{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity))}.p-4{padding:1rem}.p-1{padding:.25rem}.p-2{padding:.5rem}.px-4{padding-left:1rem;padding-right:1rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-4{padding-top:1rem;padding-bottom:1rem}.px-8{padding-left:2rem;padding-right:2rem}.pt-10{padding-top:2.5rem}.pt-8{padding-top:2rem}.pb-10{padding-bottom:2.5rem}.pb-4{padding-bottom:1rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-middle{vertical-align:middle}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.text-8xl{font-size:6rem;line-height:1}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-base{font-size:1rem;line-height:1.5rem}.text-2xl{font-size:1.5rem;line-height:2rem}.font-semibold{font-weight:600}.capitalize{text-transform:capitalize}.leading-snug{line-height:1.375}.leading-none{line-height:1}.leading-6{line-height:1.5rem}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity))}.text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity))}.text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity))}.text-green-700{--tw-text-opacity:1;color:rgb(4 120 87/var(--tw-text-opacity))}.text-gray-300{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity))}.text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity))}.text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity))}.text-green-500{--tw-text-opacity:1;color:rgb(16 185 129/var(--tw-text-opacity))}.text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity))}.underline{-webkit-text-decoration-line:underline;text-decoration-line:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.shadow,.shadow-md{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.outline-none{outline:2px solid transparent;outline-offset:2px}body{font-family:Source Sans\ 3,Roboto,Helvetica Neue,Helvetica,Arial,sans-serif}[v-cloak]{display:none}.bg-gray-850{background-color:#242b3a}.hover\:bg-gray-850:hover{--bg-opacity:1;background-color:#242b3a}.text-xxs{font-size:.65rem}.mt-14{margin-top:3.5rem}.text-7xl{font-size:4.5rem;line-height:1.1}.text-8xl{font-size:5rem;line-height:1.1}.imp\:cursor-not-allowed{cursor:not-allowed!important}.h1{margin:0;font-size:1.875rem;line-height:2.25rem;font-weight:600;--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.h1-subcaption{font-size:.875rem;line-height:1.25rem;--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity))}.btn-default{border-radius:.25rem;--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity));padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem;font-weight:600;--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.btn-default:hover{--bg-opacity:1;background-color:#242b3a}.btn-disabled{background-color:rgb(31 41 55/var(--tw-bg-opacity));color:rgb(75 85 99/var(--tw-text-opacity))}.btn-disabled,.btn-primary{border-radius:.25rem;--tw-bg-opacity:1;padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem;font-weight:600;--tw-text-opacity:1}.btn-primary{background-color:rgb(4 120 87/var(--tw-bg-opacity));color:rgb(255 255 255/var(--tw-text-opacity))}.btn-primary:hover{--tw-bg-opacity:1;background-color:rgb(6 95 70/var(--tw-bg-opacity))}.btn-danger{border-radius:.25rem;--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity));padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem;font-weight:600;--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.btn-danger:hover{--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity))}.btn-small{padding:.25rem .5rem}.input-default{width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:.25rem;padding:.5rem 1rem;--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity));outline:2px solid transparent;outline-offset:2px;background-color:#242b3a}.input-default:focus{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity))}.select-default{cursor:pointer;width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:.25rem;padding:.5rem 1rem;--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity));outline:2px solid transparent;outline-offset:2px;background-color:#242b3a}.select-default:focus{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity))}.menu-item{display:flex;cursor:pointer;align-items:center}.menu-item>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.menu-item{border-radius:.25rem;padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem;font-weight:600}.menu-item:hover{--bg-opacity:1;background-color:#242b3a}.submenu-item{border-radius:.25rem;padding:.25rem;text-align:right}.submenu-item:hover{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity))}.chip{margin-bottom:.25rem;display:inline-block;border-radius:.25rem;border-radius:9999px;padding:.25rem .5rem;font-size:.75rem;line-height:1rem;background-color:#242b3a}.chip,.link{font-weight:600}.link{color:rgb(156 163 175/var(--tw-text-opacity))}.link,.link:hover{--tw-text-opacity:1}.link:hover{color:rgb(209 213 219/var(--tw-text-opacity))}.newsbox{border-radius:.375rem;border-width:2px;--tw-border-opacity:1;padding:.5rem 1rem;--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity));background-color:#242b3a}.newsbox,.newsbox-default{border-color:rgb(4 120 87/var(--tw-border-opacity))}.newsbox-default,.newsbox-warning{--tw-border-opacity:1}.newsbox-warning{border-color:rgb(202 138 4/var(--tw-border-opacity))}.newsbox-danger{--tw-border-opacity:1;border-color:rgb(185 28 28/var(--tw-border-opacity))}.leaderboard-default{--tw-border-opacity:1;border-color:rgb(55 65 81/var(--tw-border-opacity))}.leaderboard-self{margin-left:-10px;margin-right:-10px;padding-left:calc(1rem + 10px);padding-right:calc(1rem + 10px);--tw-border-opacity:1;border-color:rgb(4 120 87/var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity))}.leaderboard-gold{border-color:gold}.leaderboard-silver{border-color:silver}.leaderboard-bronze{border-color:#cd7f32}::-webkit-calendar-picker-indicator{filter:invert(1);cursor:pointer}.max-available{max-width:-moz-available;max-width:-webkit-fill-available;max-width:fill-available}.hover\:bg-gray-800:hover{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity))}.hover\:bg-gray-700:hover{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity))}.hover\:text-gray-300:hover{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity))}.hover\:text-gray-400:hover{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity))}.hover\:text-gray-500:hover{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity))}.focus\:bg-gray-800:focus{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity))}@media (min-width:640px){.sm\:inline-block{display:inline-block}.sm\:flex{display:flex}}@media (min-width:768px){.md\:mb-0{margin-bottom:0}.md\:flex{display:flex}.md\:w-3\/4{width:75%}.md\:w-1\/3{width:33.333333%}.md\:w-2\/3{width:66.666667%}.md\:w-1\/2{width:50%}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:flex-nowrap{flex-wrap:nowrap}.md\:px-10{padding-left:2.5rem;padding-right:2.5rem}}@media (min-width:1024px){.lg\:inline-block{display:inline-block}.lg\:w-3\/4{width:75%}.lg\:w-1\/2{width:50%}.lg\:px-24{padding-left:6rem;padding-right:6rem}} \ No newline at end of file +/*! tailwindcss v3.1.8 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;background-color:initial;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:initial}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::-webkit-backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.absolute{position:absolute}.relative{position:relative}.top-0{top:0}.right-0{right:0}.z-10{z-index:10}.row-span-2{grid-row:span 2/span 2}.float-right{float:right}.m-0{margin:0}.mx-auto{margin-left:auto;margin-right:auto}.my-2{margin-top:.5rem;margin-bottom:.5rem}.my-4{margin-top:1rem;margin-bottom:1rem}.mx-1{margin-left:.25rem;margin-right:.25rem}.my-8{margin-top:2rem;margin-bottom:2rem}.my-1{margin-top:.25rem;margin-bottom:.25rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.mt-16{margin-top:4rem}.mt-20{margin-top:5rem}.mb-10{margin-bottom:2.5rem}.mt-10{margin-top:2.5rem}.mb-14{margin-bottom:3.5rem}.-mt-4{margin-top:-1rem}.mt-8{margin-top:2rem}.mb-4{margin-bottom:1rem}.ml-1{margin-left:.25rem}.mt-4{margin-top:1rem}.mt-12{margin-top:3rem}.mb-8{margin-bottom:2rem}.mr-4{margin-right:1rem}.mr-8{margin-right:2rem}.mb-16{margin-bottom:4rem}.ml-4{margin-left:1rem}.-ml-1{margin-left:-.25rem}.mt-2{margin-top:.5rem}.mr-2{margin-right:.5rem}.mt-6{margin-top:1.5rem}.mb-2{margin-bottom:.5rem}.mr-1{margin-right:.25rem}.mt-1{margin-top:.25rem}.-mb-1{margin-bottom:-.25rem}.ml-2{margin-left:.5rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.hidden{display:none}.h-4{height:1rem}.h-full{height:100%}.min-h-screen{min-height:100vh}.w-full{width:100%}.w-12{width:3rem}.w-16{width:4rem}.w-1\/2{width:50%}.w-4{width:1rem}.w-1\/3{width:33.333333%}.w-2\/3{width:66.666667%}.w-40{width:10rem}.max-w-lg{max-width:32rem}.max-w-screen-lg{max-width:1024px}.max-w-4xl{max-width:56rem}.max-w-screen-xl{max-width:1280px}.max-w-screen-sm{max-width:640px}.flex-1{flex:1 1 0%}.flex-shrink-0,.shrink-0{flex-shrink:0}.shrink{flex-shrink:1}.flex-grow,.grow{flex-grow:1}.cursor-pointer{cursor:pointer}.cursor-not-allowed{cursor:not-allowed}.resize{resize:both}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.items-center{align-items:center}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-x-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.gap-y-6{row-gap:1.5rem}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(1rem*var(--tw-space-x-reverse));margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem*var(--tw-space-y-reverse))}.space-x-8>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(2rem*var(--tw-space-x-reverse));margin-left:calc(2rem*(1 - var(--tw-space-x-reverse)))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(2rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem*var(--tw-space-y-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem*var(--tw-space-y-reverse))}.space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.25rem*var(--tw-space-x-reverse));margin-left:calc(.25rem*(1 - var(--tw-space-x-reverse)))}.truncate{overflow:hidden;white-space:nowrap}.text-ellipsis,.truncate{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.rounded{border-radius:.25rem}.rounded-sm{border-radius:.125rem}.rounded-md{border-radius:.375rem}.rounded-full{border-radius:9999px}.border{border-width:1px}.border-2{border-width:2px}.border-4{border-width:4px}.border-l{border-left-width:1px}.border-t{border-top-width:1px}.border-gray-700{--tw-border-opacity:1;border-color:rgb(55 65 81/var(--tw-border-opacity))}.border-green-700{--tw-border-opacity:1;border-color:rgb(4 120 87/var(--tw-border-opacity))}.border-gray-800{--tw-border-opacity:1;border-color:rgb(31 41 55/var(--tw-border-opacity))}.border-orange-500{--tw-border-opacity:1;border-color:rgb(249 115 22/var(--tw-border-opacity))}.bg-red-500{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity))}.bg-green-500{--tw-bg-opacity:1;background-color:rgb(16 185 129/var(--tw-bg-opacity))}.bg-gray-900{--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity))}.bg-transparent{background-color:initial}.bg-gray-800{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity))}.p-4{padding:1rem}.p-1{padding:.25rem}.p-2{padding:.5rem}.px-4{padding-left:1rem;padding-right:1rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-4{padding-top:1rem;padding-bottom:1rem}.px-8{padding-left:2rem;padding-right:2rem}.pt-10{padding-top:2.5rem}.pt-8{padding-top:2rem}.pb-10{padding-bottom:2.5rem}.pb-4{padding-bottom:1rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-middle{vertical-align:middle}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.text-8xl{font-size:6rem;line-height:1}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-base{font-size:1rem;line-height:1.5rem}.text-2xl{font-size:1.5rem;line-height:2rem}.font-semibold{font-weight:600}.capitalize{text-transform:capitalize}.leading-snug{line-height:1.375}.leading-none{line-height:1}.leading-6{line-height:1.5rem}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity))}.text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity))}.text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity))}.text-green-700{--tw-text-opacity:1;color:rgb(4 120 87/var(--tw-text-opacity))}.text-gray-300{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity))}.text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity))}.text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity))}.text-green-500{--tw-text-opacity:1;color:rgb(16 185 129/var(--tw-text-opacity))}.text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity))}.underline{-webkit-text-decoration-line:underline;text-decoration-line:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.shadow,.shadow-md{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.outline-none{outline:2px solid transparent;outline-offset:2px}body{font-family:Source Sans\ 3,Roboto,Helvetica Neue,Helvetica,Arial,sans-serif}[v-cloak]{display:none}.bg-gray-850{background-color:#242b3a}.hover\:bg-gray-850:hover{--bg-opacity:1;background-color:#242b3a}.text-xxs{font-size:.65rem}.mt-14{margin-top:3.5rem}.text-7xl{font-size:4.5rem;line-height:1.1}.text-8xl{font-size:5rem;line-height:1.1}.imp\:cursor-not-allowed{cursor:not-allowed!important}.h1{margin:0;font-size:1.875rem;line-height:2.25rem;font-weight:600;--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.h1-subcaption{font-size:.875rem;line-height:1.25rem;--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity))}.btn-default{border-radius:.25rem;--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity));padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem;font-weight:600;--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.btn-default:hover{--bg-opacity:1;background-color:#242b3a}.btn-disabled{background-color:rgb(31 41 55/var(--tw-bg-opacity));color:rgb(75 85 99/var(--tw-text-opacity))}.btn-disabled,.btn-primary{border-radius:.25rem;--tw-bg-opacity:1;padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem;font-weight:600;--tw-text-opacity:1}.btn-primary{background-color:rgb(4 120 87/var(--tw-bg-opacity));color:rgb(255 255 255/var(--tw-text-opacity))}.btn-primary:hover{--tw-bg-opacity:1;background-color:rgb(6 95 70/var(--tw-bg-opacity))}.btn-danger{border-radius:.25rem;--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity));padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem;font-weight:600;--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.btn-danger:hover{--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity))}.btn-small{padding:.25rem .5rem}.input-default{width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:.25rem;padding:.5rem 1rem;--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity));outline:2px solid transparent;outline-offset:2px;background-color:#242b3a}.input-default:focus{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity))}.select-default{cursor:pointer;width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:.25rem;padding:.5rem 1rem;--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity));outline:2px solid transparent;outline-offset:2px;background-color:#242b3a}.select-default:focus{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity))}.menu-item{display:flex;cursor:pointer;align-items:center}.menu-item>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.menu-item{border-radius:.25rem;padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem;font-weight:600}.menu-item:hover{--bg-opacity:1;background-color:#242b3a}.submenu-item{border-radius:.25rem;padding:.25rem;text-align:right}.submenu-item:hover{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity))}.chip{margin-bottom:.25rem;display:inline-block;border-radius:.25rem;border-radius:9999px;padding:.25rem .5rem;font-size:.75rem;line-height:1rem;background-color:#242b3a}.chip,.link{font-weight:600}.link{color:rgb(156 163 175/var(--tw-text-opacity))}.link,.link:hover{--tw-text-opacity:1}.link:hover{color:rgb(209 213 219/var(--tw-text-opacity))}.newsbox{border-radius:.375rem;border-width:2px;--tw-border-opacity:1;padding:.5rem 1rem;--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity));background-color:#242b3a}.newsbox,.newsbox-default{border-color:rgb(4 120 87/var(--tw-border-opacity))}.newsbox-default,.newsbox-warning{--tw-border-opacity:1}.newsbox-warning{border-color:rgb(202 138 4/var(--tw-border-opacity))}.newsbox-danger{--tw-border-opacity:1;border-color:rgb(185 28 28/var(--tw-border-opacity))}.leaderboard-default{--tw-border-opacity:1;border-color:rgb(55 65 81/var(--tw-border-opacity))}.leaderboard-self{margin-left:-10px;margin-right:-10px;padding-left:calc(1rem + 10px);padding-right:calc(1rem + 10px);--tw-border-opacity:1;border-color:rgb(4 120 87/var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity))}.leaderboard-gold{border-color:gold}.leaderboard-silver{border-color:silver}.leaderboard-bronze{border-color:#cd7f32}::-webkit-calendar-picker-indicator{filter:invert(1);cursor:pointer}.max-available{max-width:-moz-available;max-width:-webkit-fill-available;max-width:fill-available}.hover\:bg-gray-800:hover{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity))}.hover\:bg-gray-700:hover{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity))}.hover\:text-gray-300:hover{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity))}.hover\:text-gray-400:hover{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity))}.hover\:text-gray-500:hover{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity))}.focus\:bg-gray-800:focus{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity))}@media (min-width:640px){.sm\:inline-block{display:inline-block}.sm\:flex{display:flex}}@media (min-width:768px){.md\:mb-0{margin-bottom:0}.md\:flex{display:flex}.md\:w-3\/4{width:75%}.md\:w-1\/3{width:33.333333%}.md\:w-2\/3{width:66.666667%}.md\:w-1\/2{width:50%}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:flex-nowrap{flex-wrap:nowrap}.md\:space-x-8>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(2rem*var(--tw-space-x-reverse));margin-left:calc(2rem*(1 - var(--tw-space-x-reverse)))}.md\:px-10{padding-left:2.5rem;padding-right:2.5rem}}@media (min-width:1024px){.lg\:inline-block{display:inline-block}.lg\:w-3\/4{width:75%}.lg\:w-1\/2{width:50%}.lg\:px-24{padding-left:6rem;padding-right:6rem}} \ No newline at end of file diff --git a/static/assets/css/app.dist.css.br b/static/assets/css/app.dist.css.br index aae3ec6..8807be8 100644 Binary files a/static/assets/css/app.dist.css.br and b/static/assets/css/app.dist.css.br differ diff --git a/views/summary.tpl.html b/views/summary.tpl.html index 133a7fc..8b3a991 100644 --- a/views/summary.tpl.html +++ b/views/summary.tpl.html @@ -17,8 +17,17 @@ {{ if .User.HasData }}
-
-
+ {{ if $.UserDataExpiring }} +
+
+ + Some of your data is older than this instance's data retention period. This will cause old data to be deleted, unless you opt for a subscription. Go to Settings → Subscription for more details. +
+
+ {{ end }} + +