Compare commits

...

344 Commits

Author SHA1 Message Date
Amir Raminfar
c252991d24 Release 3.0.0 2020-09-06 21:06:35 -07:00
Amir Raminfar
2231551c60 Fixes tests 2020-09-06 20:16:29 -07:00
Amir Raminfar
4c00ffe18f Fixes int test for menu 2020-09-06 20:10:22 -07:00
Amir Raminfar
c86e770c92 Cleans up mobile and resized pinned tabs 2020-09-06 19:57:19 -07:00
Amir Raminfar
481ff22efe Fixes int tests 2020-09-06 16:06:59 -07:00
Amir Raminfar
dcfd6ec476 Mobile view and clean up 2020-09-06 16:01:46 -07:00
Amir Raminfar
f13297a7dc Updates yarn 2020-09-06 15:33:40 -07:00
Amir Raminfar
220722deaa Work in progress to show live stats (#671)
Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-09-06 15:32:27 -07:00
dependabot-preview[bot]
b7af2b7826 Merge pull request #686 from amir20/dependabot/npm_and_yarn/release-it-14.0.2 2020-09-05 11:57:26 +00:00
dependabot-preview[bot]
edc200cd9e Bump release-it from 14.0.1 to 14.0.2
Bumps [release-it](https://github.com/release-it/release-it) from 14.0.1 to 14.0.2.
- [Release notes](https://github.com/release-it/release-it/releases)
- [Changelog](https://github.com/release-it/release-it/blob/master/CHANGELOG.md)
- [Commits](https://github.com/release-it/release-it/compare/14.0.1...14.0.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-09-05 11:51:45 +00:00
dependabot-preview[bot]
dcc661c761 Merge pull request #685 from amir20/dependabot/npm_and_yarn/babel/core-7.11.6 2020-09-04 12:23:07 +00:00
dependabot-preview[bot]
bbb20b5d39 Merge pull request #684 from amir20/dependabot/npm_and_yarn/buefy-0.9.3 2020-09-04 12:22:26 +00:00
dependabot-preview[bot]
214c9de4f8 Bump @babel/core from 7.11.5 to 7.11.6
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.11.5 to 7.11.6.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.11.6/packages/babel-core)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-09-04 12:16:59 +00:00
dependabot-preview[bot]
91a29165c7 Bump buefy from 0.9.2 to 0.9.3
Bumps [buefy](https://github.com/buefy/buefy) from 0.9.2 to 0.9.3.
- [Release notes](https://github.com/buefy/buefy/releases)
- [Changelog](https://github.com/buefy/buefy/blob/dev/CHANGELOG.md)
- [Commits](https://github.com/buefy/buefy/compare/v0.9.2...v0.9.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-09-04 12:16:28 +00:00
dependabot-preview[bot]
4d331742e5 Merge pull request #683 from amir20/dependabot/npm_and_yarn/sass-loader-10.0.2 2020-09-04 12:01:03 +00:00
dependabot-preview[bot]
0f8639abad Bump sass-loader from 10.0.1 to 10.0.2
Bumps [sass-loader](https://github.com/webpack-contrib/sass-loader) from 10.0.1 to 10.0.2.
- [Release notes](https://github.com/webpack-contrib/sass-loader/releases)
- [Changelog](https://github.com/webpack-contrib/sass-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/sass-loader/compare/v10.0.1...v10.0.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-09-04 11:55:26 +00:00
dependabot-preview[bot]
36585a4622 Merge pull request #682 from amir20/dependabot/npm_and_yarn/caniuse-lite-1.0.30001124 2020-09-04 06:11:14 +00:00
dependabot-preview[bot]
1190d31ef0 Bump caniuse-lite from 1.0.30001123 to 1.0.30001124
Bumps [caniuse-lite](https://github.com/ben-eb/caniuse-lite) from 1.0.30001123 to 1.0.30001124.
- [Release notes](https://github.com/ben-eb/caniuse-lite/releases)
- [Changelog](https://github.com/ben-eb/caniuse-lite/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ben-eb/caniuse-lite/compare/v1.0.30001123...v1.0.30001124)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-09-04 06:04:55 +00:00
dependabot-preview[bot]
68724639b5 Merge pull request #681 from amir20/dependabot/npm_and_yarn/release-it-14.0.1 2020-09-04 06:01:35 +00:00
dependabot-preview[bot]
5bf3bf8676 Bump release-it from 13.7.1 to 14.0.1
Bumps [release-it](https://github.com/release-it/release-it) from 13.7.1 to 14.0.1.
- [Release notes](https://github.com/release-it/release-it/releases)
- [Changelog](https://github.com/release-it/release-it/blob/master/CHANGELOG.md)
- [Commits](https://github.com/release-it/release-it/compare/13.7.1...14.0.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-09-04 05:56:18 +00:00
dependabot-preview[bot]
8f719278aa Merge pull request #679 from amir20/dependabot/npm_and_yarn/caniuse-lite-1.0.30001123 2020-09-04 01:32:53 +00:00
dependabot-preview[bot]
7bc775eb7c Merge pull request #680 from amir20/dependabot/npm_and_yarn/lint-staged-10.3.0 2020-09-03 12:10:13 +00:00
dependabot-preview[bot]
6abdb276e8 Merge pull request #678 from amir20/dependabot/npm_and_yarn/release-it-13.7.1 2020-09-03 12:08:56 +00:00
dependabot-preview[bot]
bc14f23b37 Merge pull request #677 from amir20/dependabot/npm_and_yarn/dompurify-2.0.15 2020-09-03 12:08:17 +00:00
dependabot-preview[bot]
005336cf56 Bump lint-staged from 10.2.13 to 10.3.0
Bumps [lint-staged](https://github.com/okonet/lint-staged) from 10.2.13 to 10.3.0.
- [Release notes](https://github.com/okonet/lint-staged/releases)
- [Commits](https://github.com/okonet/lint-staged/compare/v10.2.13...v10.3.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-09-03 12:04:09 +00:00
dependabot-preview[bot]
649d97739e Bump caniuse-lite from 1.0.30001122 to 1.0.30001123
Bumps [caniuse-lite](https://github.com/ben-eb/caniuse-lite) from 1.0.30001122 to 1.0.30001123.
- [Release notes](https://github.com/ben-eb/caniuse-lite/releases)
- [Changelog](https://github.com/ben-eb/caniuse-lite/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ben-eb/caniuse-lite/compare/v1.0.30001122...v1.0.30001123)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-09-03 12:03:39 +00:00
dependabot-preview[bot]
3f38e05e4b Bump release-it from 13.7.0 to 13.7.1
Bumps [release-it](https://github.com/release-it/release-it) from 13.7.0 to 13.7.1.
- [Release notes](https://github.com/release-it/release-it/releases)
- [Changelog](https://github.com/release-it/release-it/blob/master/CHANGELOG.md)
- [Commits](https://github.com/release-it/release-it/compare/13.7.0...13.7.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-09-03 12:03:15 +00:00
dependabot-preview[bot]
877dd9be14 Bump dompurify from 2.0.14 to 2.0.15
Bumps [dompurify](https://github.com/cure53/DOMPurify) from 2.0.14 to 2.0.15.
- [Release notes](https://github.com/cure53/DOMPurify/releases)
- [Commits](https://github.com/cure53/DOMPurify/compare/2.0.14...2.0.15)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-09-03 12:02:39 +00:00
dependabot[bot]
73a8707f54 Bump bl from 4.0.2 to 4.0.3 in /integration (#676)
Bumps [bl](https://github.com/rvagg/bl) from 4.0.2 to 4.0.3.
- [Release notes](https://github.com/rvagg/bl/releases)
- [Commits](https://github.com/rvagg/bl/compare/v4.0.2...v4.0.3)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-09-02 20:03:27 -07:00
dependabot-preview[bot]
efd7f2fe85 Merge pull request #672 from amir20/dependabot/npm_and_yarn/caniuse-lite-1.0.30001122 2020-09-02 01:34:51 +00:00
dependabot-preview[bot]
66bc08cbe3 Merge pull request #674 from amir20/dependabot/npm_and_yarn/babel/plugin-transform-runtime-7.11.5 2020-09-01 06:50:07 +00:00
dependabot-preview[bot]
95732c0149 Bump @babel/plugin-transform-runtime from 7.11.0 to 7.11.5
Bumps [@babel/plugin-transform-runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-transform-runtime) from 7.11.0 to 7.11.5.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.11.5/packages/babel-plugin-transform-runtime)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-09-01 06:44:08 +00:00
dependabot-preview[bot]
8af1b3a463 Merge pull request #675 from amir20/dependabot/npm_and_yarn/date-fns-2.16.1 2020-09-01 06:42:28 +00:00
dependabot-preview[bot]
7bfe7adb73 Merge pull request #673 from amir20/dependabot/npm_and_yarn/babel/core-7.11.5 2020-09-01 06:42:12 +00:00
dependabot-preview[bot]
2a5286764e Bump date-fns from 2.16.0 to 2.16.1
Bumps [date-fns](https://github.com/date-fns/date-fns) from 2.16.0 to 2.16.1.
- [Release notes](https://github.com/date-fns/date-fns/releases)
- [Changelog](https://github.com/date-fns/date-fns/blob/master/CHANGELOG.md)
- [Commits](https://github.com/date-fns/date-fns/compare/v2.16.0...v2.16.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-09-01 06:37:18 +00:00
dependabot-preview[bot]
a604d309a4 Bump @babel/core from 7.11.4 to 7.11.5
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.11.4 to 7.11.5.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.11.5/packages/babel-core)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-09-01 06:36:23 +00:00
dependabot-preview[bot]
3b3d98e763 Bump caniuse-lite from 1.0.30001120 to 1.0.30001122
Bumps [caniuse-lite](https://github.com/ben-eb/caniuse-lite) from 1.0.30001120 to 1.0.30001122.
- [Release notes](https://github.com/ben-eb/caniuse-lite/releases)
- [Changelog](https://github.com/ben-eb/caniuse-lite/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ben-eb/caniuse-lite/compare/v1.0.30001120...v1.0.30001122)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-09-01 06:35:49 +00:00
dependabot-preview[bot]
a65aea0680 Merge pull request #670 from amir20/dependabot/npm_and_yarn/html-webpack-plugin-4.4.1 2020-08-30 16:14:54 +00:00
dependabot-preview[bot]
3c23631df7 Bump html-webpack-plugin from 4.4.0 to 4.4.1
Bumps [html-webpack-plugin](https://github.com/jantimon/html-webpack-plugin) from 4.4.0 to 4.4.1.
- [Release notes](https://github.com/jantimon/html-webpack-plugin/releases)
- [Changelog](https://github.com/jantimon/html-webpack-plugin/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jantimon/html-webpack-plugin/compare/v4.4.0...v4.4.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-08-30 16:08:55 +00:00
dependabot-preview[bot]
07b2f7bd0e Merge pull request #669 from amir20/dependabot/npm_and_yarn/html-webpack-plugin-4.4.0 2020-08-30 12:45:05 +00:00
dependabot-preview[bot]
efd29ef7ae Bump html-webpack-plugin from 4.3.0 to 4.4.0
Bumps [html-webpack-plugin](https://github.com/jantimon/html-webpack-plugin) from 4.3.0 to 4.4.0.
- [Release notes](https://github.com/jantimon/html-webpack-plugin/releases)
- [Changelog](https://github.com/jantimon/html-webpack-plugin/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jantimon/html-webpack-plugin/compare/v4.3.0...v4.4.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-08-30 12:39:04 +00:00
dependabot-preview[bot]
cd6564ce93 Merge pull request #668 from amir20/dependabot/npm_and_yarn/caniuse-lite-1.0.30001120 2020-08-30 04:43:30 +00:00
dependabot-preview[bot]
5205790b3e Bump caniuse-lite from 1.0.30001119 to 1.0.30001120
Bumps [caniuse-lite](https://github.com/ben-eb/caniuse-lite) from 1.0.30001119 to 1.0.30001120.
- [Release notes](https://github.com/ben-eb/caniuse-lite/releases)
- [Changelog](https://github.com/ben-eb/caniuse-lite/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ben-eb/caniuse-lite/compare/v1.0.30001119...v1.0.30001120)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-08-30 04:37:48 +00:00
dependabot-preview[bot]
aaf2f2fc20 Merge pull request #667 from amir20/dependabot/npm_and_yarn/integration/jest-image-snapshot-4.2.0 2020-08-29 12:51:36 +00:00
dependabot-preview[bot]
b3e7bcae79 Bump jest-image-snapshot from 4.1.0 to 4.2.0 in /integration
Bumps [jest-image-snapshot](https://github.com/americanexpress/jest-image-snapshot) from 4.1.0 to 4.2.0.
- [Release notes](https://github.com/americanexpress/jest-image-snapshot/releases)
- [Changelog](https://github.com/americanexpress/jest-image-snapshot/blob/master/CHANGELOG.md)
- [Commits](https://github.com/americanexpress/jest-image-snapshot/compare/v4.1.0...v4.2.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-08-29 12:45:21 +00:00
dependabot-preview[bot]
826efa2728 Merge pull request #666 from amir20/dependabot/npm_and_yarn/vue/test-utils-1.0.5 2020-08-29 12:07:51 +00:00
dependabot-preview[bot]
6aacc7b3c5 Bump @vue/test-utils from 1.0.4 to 1.0.5
Bumps [@vue/test-utils](https://github.com/vuejs/vue-test-utils/tree/HEAD/packages/test-utils) from 1.0.4 to 1.0.5.
- [Release notes](https://github.com/vuejs/vue-test-utils/releases)
- [Changelog](https://github.com/vuejs/vue-test-utils/blob/dev/packages/test-utils/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vue-test-utils/commits/v1.0.5/packages/test-utils)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-08-29 12:02:31 +00:00
dependabot-preview[bot]
834317720b Merge pull request #665 from amir20/dependabot/npm_and_yarn/date-fns-2.16.0 2020-08-28 12:30:13 +00:00
dependabot-preview[bot]
7e2af57aa6 Bump date-fns from 2.15.0 to 2.16.0
Bumps [date-fns](https://github.com/date-fns/date-fns) from 2.15.0 to 2.16.0.
- [Release notes](https://github.com/date-fns/date-fns/releases)
- [Changelog](https://github.com/date-fns/date-fns/blob/master/CHANGELOG.md)
- [Commits](https://github.com/date-fns/date-fns/compare/v2.15.0...v2.16.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-08-28 12:24:12 +00:00
dependabot-preview[bot]
cb6d94dee5 Merge pull request #664 from amir20/dependabot/npm_and_yarn/mini-css-extract-plugin-0.11.0 2020-08-28 12:23:18 +00:00
dependabot-preview[bot]
366c15d1b7 Merge pull request #663 from amir20/dependabot/npm_and_yarn/caniuse-lite-1.0.30001119 2020-08-28 12:22:33 +00:00
dependabot-preview[bot]
2cfd5879cd Merge pull request #662 from amir20/dependabot/npm_and_yarn/dompurify-2.0.14 2020-08-28 12:22:08 +00:00
dependabot-preview[bot]
541394d310 Bump mini-css-extract-plugin from 0.10.0 to 0.11.0
Bumps [mini-css-extract-plugin](https://github.com/webpack-contrib/mini-css-extract-plugin) from 0.10.0 to 0.11.0.
- [Release notes](https://github.com/webpack-contrib/mini-css-extract-plugin/releases)
- [Changelog](https://github.com/webpack-contrib/mini-css-extract-plugin/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v0.10.0...v0.11.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-08-28 12:16:55 +00:00
dependabot-preview[bot]
1057f45887 Bump caniuse-lite from 1.0.30001118 to 1.0.30001119
Bumps [caniuse-lite](https://github.com/ben-eb/caniuse-lite) from 1.0.30001118 to 1.0.30001119.
- [Release notes](https://github.com/ben-eb/caniuse-lite/releases)
- [Changelog](https://github.com/ben-eb/caniuse-lite/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ben-eb/caniuse-lite/compare/v1.0.30001118...v1.0.30001119)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-08-28 12:16:32 +00:00
dependabot-preview[bot]
74dba50340 Bump dompurify from 2.0.12 to 2.0.14
Bumps [dompurify](https://github.com/cure53/DOMPurify) from 2.0.12 to 2.0.14.
- [Release notes](https://github.com/cure53/DOMPurify/releases)
- [Commits](https://github.com/cure53/DOMPurify/compare/2.0.12...2.0.14)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-08-28 12:16:22 +00:00
dependabot-preview[bot]
dae0886456 Merge pull request #659 from amir20/dependabot/npm_and_yarn/release-it-13.7.0 2020-08-26 12:32:43 +00:00
dependabot-preview[bot]
b04a85a10a Bump release-it from 13.6.9 to 13.7.0
Bumps [release-it](https://github.com/release-it/release-it) from 13.6.9 to 13.7.0.
- [Release notes](https://github.com/release-it/release-it/releases)
- [Changelog](https://github.com/release-it/release-it/blob/master/CHANGELOG.md)
- [Commits](https://github.com/release-it/release-it/compare/13.6.9...13.7.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-08-26 12:27:23 +00:00
dependabot-preview[bot]
bde5b4287d Merge pull request #660 from amir20/dependabot/npm_and_yarn/caniuse-lite-1.0.30001118 2020-08-26 12:25:31 +00:00
dependabot-preview[bot]
078b9a11fd Merge pull request #661 from amir20/dependabot/npm_and_yarn/prettier-2.1.1 2020-08-26 12:25:27 +00:00
dependabot-preview[bot]
bf89411ebf Bump prettier from 2.1.0 to 2.1.1
Bumps [prettier](https://github.com/prettier/prettier) from 2.1.0 to 2.1.1.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/master/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/2.1.0...2.1.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-08-26 12:19:31 +00:00
dependabot-preview[bot]
24f19fadec Bump caniuse-lite from 1.0.30001117 to 1.0.30001118
Bumps [caniuse-lite](https://github.com/ben-eb/caniuse-lite) from 1.0.30001117 to 1.0.30001118.
- [Release notes](https://github.com/ben-eb/caniuse-lite/releases)
- [Changelog](https://github.com/ben-eb/caniuse-lite/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ben-eb/caniuse-lite/compare/v1.0.30001117...v1.0.30001118)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-08-26 12:19:10 +00:00
dependabot-preview[bot]
0caf7da96b Merge pull request #658 from amir20/dependabot/npm_and_yarn/sass-loader-10.0.1 2020-08-26 11:57:23 +00:00
dependabot-preview[bot]
0fd5d91f12 Bump sass-loader from 10.0.0 to 10.0.1
Bumps [sass-loader](https://github.com/webpack-contrib/sass-loader) from 10.0.0 to 10.0.1.
- [Release notes](https://github.com/webpack-contrib/sass-loader/releases)
- [Changelog](https://github.com/webpack-contrib/sass-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/sass-loader/compare/v10.0.0...v10.0.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-08-26 11:50:57 +00:00
dependabot-preview[bot]
9bd1008291 Merge pull request #656 from amir20/dependabot/npm_and_yarn/lint-staged-10.2.13 2020-08-26 10:36:35 +00:00
dependabot-preview[bot]
2327b26bc7 Bump lint-staged from 10.2.11 to 10.2.13
Bumps [lint-staged](https://github.com/okonet/lint-staged) from 10.2.11 to 10.2.13.
- [Release notes](https://github.com/okonet/lint-staged/releases)
- [Commits](https://github.com/okonet/lint-staged/compare/v10.2.11...v10.2.13)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-08-26 10:30:14 +00:00
dependabot-preview[bot]
807a044ebb Merge pull request #655 from amir20/dependabot/go_modules/github.com/magiconair/properties-1.8.2 2020-08-25 13:23:53 +00:00
dependabot-preview[bot]
b658337b24 Bump github.com/magiconair/properties from 1.8.1 to 1.8.2
Bumps [github.com/magiconair/properties](https://github.com/magiconair/properties) from 1.8.1 to 1.8.2.
- [Release notes](https://github.com/magiconair/properties/releases)
- [Changelog](https://github.com/magiconair/properties/blob/master/CHANGELOG.md)
- [Commits](https://github.com/magiconair/properties/compare/v1.8.1...v1.8.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-08-25 13:17:21 +00:00
dependabot-preview[bot]
23231f9e25 Merge pull request #654 from amir20/dependabot/npm_and_yarn/css-loader-4.2.2 2020-08-25 06:52:22 +00:00
dependabot-preview[bot]
6fa20c3223 Merge pull request #653 from amir20/dependabot/npm_and_yarn/sass-loader-10.0.0 2020-08-25 06:52:15 +00:00
dependabot-preview[bot]
f12b1ba7ee Bump css-loader from 4.2.1 to 4.2.2
Bumps [css-loader](https://github.com/webpack-contrib/css-loader) from 4.2.1 to 4.2.2.
- [Release notes](https://github.com/webpack-contrib/css-loader/releases)
- [Changelog](https://github.com/webpack-contrib/css-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/css-loader/compare/v4.2.1...v4.2.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-08-25 06:47:22 +00:00
dependabot-preview[bot]
88de77cce0 Bump sass-loader from 9.0.3 to 10.0.0
Bumps [sass-loader](https://github.com/webpack-contrib/sass-loader) from 9.0.3 to 10.0.0.
- [Release notes](https://github.com/webpack-contrib/sass-loader/releases)
- [Changelog](https://github.com/webpack-contrib/sass-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/sass-loader/compare/v9.0.3...v10.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-08-25 06:46:44 +00:00
dependabot-preview[bot]
30bbd333af Merge pull request #652 from amir20/dependabot/npm_and_yarn/prettier-2.1.0 2020-08-25 05:41:13 +00:00
dependabot-preview[bot]
a371a68d54 Bump prettier from 2.0.5 to 2.1.0
Bumps [prettier](https://github.com/prettier/prettier) from 2.0.5 to 2.1.0.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/master/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/2.0.5...2.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-08-25 05:35:46 +00:00
dependabot-preview[bot]
e2340d6656 Merge pull request #651 from amir20/dependabot/go_modules/github.com/gorilla/mux-1.8.0 2020-08-24 13:24:05 +00:00
dependabot-preview[bot]
9cd0e932bd Bump github.com/gorilla/mux from 1.7.4 to 1.8.0
Bumps [github.com/gorilla/mux](https://github.com/gorilla/mux) from 1.7.4 to 1.8.0.
- [Release notes](https://github.com/gorilla/mux/releases)
- [Commits](https://github.com/gorilla/mux/compare/v1.7.4...v1.8.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-08-24 13:17:45 +00:00
dependabot-preview[bot]
21bec08327 Merge pull request #650 from amir20/dependabot/npm_and_yarn/release-it-13.6.9 2020-08-22 18:46:32 +00:00
dependabot-preview[bot]
9213a7e4d0 Bump release-it from 13.6.8 to 13.6.9
Bumps [release-it](https://github.com/release-it/release-it) from 13.6.8 to 13.6.9.
- [Release notes](https://github.com/release-it/release-it/releases)
- [Changelog](https://github.com/release-it/release-it/blob/master/CHANGELOG.md)
- [Commits](https://github.com/release-it/release-it/compare/13.6.8...13.6.9)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-08-22 18:40:14 +00:00
dependabot-preview[bot]
4325810d94 Merge pull request #649 from amir20/dependabot/npm_and_yarn/jest-26.4.2 2020-08-22 12:53:16 +00:00
dependabot-preview[bot]
33e6830962 Bump jest from 26.4.1 to 26.4.2
Bumps [jest](https://github.com/facebook/jest) from 26.4.1 to 26.4.2.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/compare/v26.4.1...v26.4.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-08-22 12:47:43 +00:00
dependabot-preview[bot]
c70d196e6d Merge pull request #648 from amir20/dependabot/npm_and_yarn/integration/jest-26.4.2 2020-08-22 12:45:50 +00:00
dependabot-preview[bot]
9357b49a92 Bump jest from 26.4.1 to 26.4.2 in /integration
Bumps [jest](https://github.com/facebook/jest) from 26.4.1 to 26.4.2.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/compare/v26.4.1...v26.4.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-08-22 12:40:16 +00:00
dependabot-preview[bot]
d880800e17 Merge pull request #647 from amir20/dependabot/npm_and_yarn/buefy-0.9.2 2020-08-21 21:43:46 +00:00
dependabot-preview[bot]
0d37384259 Bump buefy from 0.9.1 to 0.9.2
Bumps [buefy](https://github.com/buefy/buefy) from 0.9.1 to 0.9.2.
- [Release notes](https://github.com/buefy/buefy/releases)
- [Changelog](https://github.com/buefy/buefy/blob/dev/CHANGELOG.md)
- [Commits](https://github.com/buefy/buefy/compare/v0.9.1...v0.9.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-08-21 21:38:14 +00:00
Amir Raminfar
7a778ee93c Release 2.2.0 2020-08-21 07:46:49 -07:00
dependabot-preview[bot]
8744aee484 Merge pull request #646 from amir20/dependabot/npm_and_yarn/caniuse-lite-1.0.30001117 2020-08-21 08:39:41 +00:00
dependabot-preview[bot]
4b6aaeb42e Bump caniuse-lite from 1.0.30001116 to 1.0.30001117
Bumps [caniuse-lite](https://github.com/ben-eb/caniuse-lite) from 1.0.30001116 to 1.0.30001117.
- [Release notes](https://github.com/ben-eb/caniuse-lite/releases)
- [Changelog](https://github.com/ben-eb/caniuse-lite/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ben-eb/caniuse-lite/compare/v1.0.30001116...v1.0.30001117)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-08-21 08:34:07 +00:00
Amir Raminfar
0eb5d97a59 Centers text and adds drop shadow 2020-08-20 14:27:47 -07:00
dependabot-preview[bot]
0a95b58ec9 Merge pull request #645 from amir20/dependabot/npm_and_yarn/babel/core-7.11.4 2020-08-20 19:15:49 +00:00
dependabot-preview[bot]
c9891ecc9d Bump @babel/core from 7.11.1 to 7.11.4
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.11.1 to 7.11.4.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.11.4/packages/babel-core)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-08-20 19:10:07 +00:00
Amir Raminfar
53f6e7f27c Adds back px to fix safari 2020-08-20 07:43:10 -07:00
dependabot-preview[bot]
13068244b7 Merge pull request #641 from amir20/dependabot/npm_and_yarn/vue-and-vue-template-compiler-2.6.12 2020-08-20 14:35:10 +00:00
dependabot-preview[bot]
7e7029a2d1 Merge pull request #643 from amir20/dependabot/npm_and_yarn/integration/jest-26.4.1 2020-08-20 14:34:37 +00:00
dependabot-preview[bot]
64855680f6 Bump jest from 26.4.0 to 26.4.1 in /integration
Bumps [jest](https://github.com/facebook/jest) from 26.4.0 to 26.4.1.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/compare/v26.4.0...v26.4.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-08-20 14:28:45 +00:00
dependabot-preview[bot]
0968e59ccb Bump vue and vue-template-compiler
Bumps [vue](https://github.com/vuejs/vue) and [vue-template-compiler](https://github.com/vuejs/vue). These dependencies needed to be updated together.

Updates `vue` from 2.6.11 to 2.6.12
- [Release notes](https://github.com/vuejs/vue/releases)
- [Commits](https://github.com/vuejs/vue/compare/v2.6.11...v2.6.12)

Updates `vue-template-compiler` from 2.6.11 to 2.6.12
- [Release notes](https://github.com/vuejs/vue/releases)
- [Commits](https://github.com/vuejs/vue/compare/v2.6.11...v2.6.12)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-08-20 14:28:32 +00:00
dependabot-preview[bot]
9cdb59dc10 Merge pull request #642 from amir20/dependabot/npm_and_yarn/jest-26.4.1 2020-08-20 14:27:13 +00:00
dependabot-preview[bot]
928b5bb2f2 Bump jest from 26.4.0 to 26.4.1
Bumps [jest](https://github.com/facebook/jest) from 26.4.0 to 26.4.1.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/compare/v26.4.0...v26.4.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-08-20 14:21:14 +00:00
Amir Raminfar
50930c0eff Fixes broken tests 2020-08-20 07:16:37 -07:00
Amir Raminfar
f7c92f9457 Adds some top navigation loader 2020-08-19 13:25:42 -07:00
Amir Raminfar
13e57ac095 Fixes bug with progress 2020-08-19 13:05:05 -07:00
Amir Raminfar
b148367618 Changes scroll progress to behave differently when fetching scroll back content. (#640) 2020-08-19 12:47:28 -07:00
dependabot-preview[bot]
0c2e2430fd Merge pull request #639 from amir20/dependabot/npm_and_yarn/release-it-13.6.8 2020-08-19 12:05:37 +00:00
dependabot-preview[bot]
575dc03631 Bump release-it from 13.6.7 to 13.6.8
Bumps [release-it](https://github.com/release-it/release-it) from 13.6.7 to 13.6.8.
- [Release notes](https://github.com/release-it/release-it/releases)
- [Changelog](https://github.com/release-it/release-it/blob/master/CHANGELOG.md)
- [Commits](https://github.com/release-it/release-it/compare/13.6.7...13.6.8)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-08-19 12:00:36 +00:00
dependabot-preview[bot]
95fa2453a9 Merge pull request #637 from amir20/dependabot/npm_and_yarn/buefy-0.9.1 2020-08-18 22:53:49 +00:00
dependabot-preview[bot]
06e4202cba Merge pull request #638 from amir20/dependabot/npm_and_yarn/caniuse-lite-1.0.30001116 2020-08-18 22:53:44 +00:00
dependabot-preview[bot]
a995dd40f0 Bump caniuse-lite from 1.0.30001115 to 1.0.30001116
Bumps [caniuse-lite](https://github.com/ben-eb/caniuse-lite) from 1.0.30001115 to 1.0.30001116.
- [Release notes](https://github.com/ben-eb/caniuse-lite/releases)
- [Changelog](https://github.com/ben-eb/caniuse-lite/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ben-eb/caniuse-lite/compare/v1.0.30001115...v1.0.30001116)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-08-18 22:48:30 +00:00
dependabot-preview[bot]
2d2883db54 Bump buefy from 0.9.0 to 0.9.1
Bumps [buefy](https://github.com/buefy/buefy) from 0.9.0 to 0.9.1.
- [Release notes](https://github.com/buefy/buefy/releases)
- [Changelog](https://github.com/buefy/buefy/blob/dev/CHANGELOG.md)
- [Commits](https://github.com/buefy/buefy/compare/v0.9.0...v0.9.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-08-18 22:47:59 +00:00
dependabot-preview[bot]
5180ef2a22 Merge pull request #636 from amir20/dependabot/npm_and_yarn/caniuse-lite-1.0.30001115 2020-08-18 09:52:58 +00:00
dependabot-preview[bot]
d9b3d9c0d0 Bump caniuse-lite from 1.0.30001114 to 1.0.30001115
Bumps [caniuse-lite](https://github.com/ben-eb/caniuse-lite) from 1.0.30001114 to 1.0.30001115.
- [Release notes](https://github.com/ben-eb/caniuse-lite/releases)
- [Changelog](https://github.com/ben-eb/caniuse-lite/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ben-eb/caniuse-lite/compare/v1.0.30001114...v1.0.30001115)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-08-18 09:46:32 +00:00
dependabot-preview[bot]
ebb3ea3af5 Merge pull request #635 from amir20/dependabot/npm_and_yarn/vue/test-utils-1.0.4 2020-08-17 23:29:12 +00:00
dependabot-preview[bot]
174d9a5e45 Bump @vue/test-utils from 1.0.3 to 1.0.4
Bumps [@vue/test-utils](https://github.com/vuejs/vue-test-utils/tree/HEAD/packages/test-utils) from 1.0.3 to 1.0.4.
- [Release notes](https://github.com/vuejs/vue-test-utils/releases)
- [Changelog](https://github.com/vuejs/vue-test-utils/blob/dev/packages/test-utils/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vue-test-utils/commits/v1.0.4/packages/test-utils)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-08-17 23:22:50 +00:00
dependabot-preview[bot]
a35ba9a9ee Merge pull request #634 from amir20/dependabot/npm_and_yarn/buefy-0.9.0 2020-08-17 00:20:19 +00:00
dependabot-preview[bot]
f5e74226a2 Bump buefy from 0.8.20 to 0.9.0
Bumps [buefy](https://github.com/buefy/buefy) from 0.8.20 to 0.9.0.
- [Release notes](https://github.com/buefy/buefy/releases)
- [Changelog](https://github.com/buefy/buefy/blob/dev/CHANGELOG.md)
- [Commits](https://github.com/buefy/buefy/compare/v0.8.20...v0.9.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-08-17 00:14:03 +00:00
dependabot-preview[bot]
a90c29c9c4 Merge pull request #633 from amir20/dependabot/npm_and_yarn/release-it-13.6.7 2020-08-15 06:48:46 +00:00
dependabot-preview[bot]
24425b2643 Bump release-it from 13.6.6 to 13.6.7
Bumps [release-it](https://github.com/release-it/release-it) from 13.6.6 to 13.6.7.
- [Release notes](https://github.com/release-it/release-it/releases)
- [Changelog](https://github.com/release-it/release-it/blob/master/CHANGELOG.md)
- [Commits](https://github.com/release-it/release-it/compare/13.6.6...13.6.7)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-08-15 06:42:39 +00:00
Amir Raminfar
439b8c27c8 Fixes bug with has more 2020-08-14 12:38:22 -07:00
dependabot-preview[bot]
fe8b9a7b6e Merge pull request #632 from amir20/dependabot/npm_and_yarn/caniuse-lite-1.0.30001114 2020-08-14 15:44:03 +00:00
dependabot-preview[bot]
d48704fe06 Bump caniuse-lite from 1.0.30001113 to 1.0.30001114
Bumps [caniuse-lite](https://github.com/ben-eb/caniuse-lite) from 1.0.30001113 to 1.0.30001114.
- [Release notes](https://github.com/ben-eb/caniuse-lite/releases)
- [Changelog](https://github.com/ben-eb/caniuse-lite/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ben-eb/caniuse-lite/compare/v1.0.30001113...v1.0.30001114)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-08-14 15:38:24 +00:00
Amir Raminfar
d66d291adb Release 2.1.5 2020-08-12 18:29:23 -07:00
Amir Raminfar
29ae7fa601 Updates to Go1.15 (#629) 2020-08-12 16:55:38 -07:00
dependabot-preview[bot]
bf3ff49ab4 Merge pull request #631 from amir20/dependabot/npm_and_yarn/jest-26.4.0 2020-08-12 23:20:54 +00:00
dependabot-preview[bot]
bbd444bf57 Bump jest from 26.3.0 to 26.4.0
Bumps [jest](https://github.com/facebook/jest) from 26.3.0 to 26.4.0.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/compare/v26.3.0...v26.4.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-08-12 23:15:12 +00:00
dependabot-preview[bot]
1805ffc70c Merge pull request #630 from amir20/dependabot/npm_and_yarn/integration/jest-26.4.0 2020-08-12 21:11:35 +00:00
dependabot-preview[bot]
df2c076aa8 Bump jest from 26.3.0 to 26.4.0 in /integration
Bumps [jest](https://github.com/facebook/jest) from 26.3.0 to 26.4.0.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/compare/v26.3.0...v26.4.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-08-12 21:05:26 +00:00
dependabot-preview[bot]
77cf946be0 Merge pull request #628 from amir20/dependabot/npm_and_yarn/vue-router-3.4.3 2020-08-11 23:03:01 +00:00
dependabot-preview[bot]
bc3267a30a Bump vue-router from 3.4.2 to 3.4.3
Bumps [vue-router](https://github.com/vuejs/vue-router) from 3.4.2 to 3.4.3.
- [Release notes](https://github.com/vuejs/vue-router/releases)
- [Changelog](https://github.com/vuejs/vue-router/blob/dev/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vue-router/compare/v3.4.2...v3.4.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-08-11 22:57:26 +00:00
dependabot-preview[bot]
b869f4428f Merge pull request #627 from amir20/dependabot/npm_and_yarn/caniuse-lite-1.0.30001113 2020-08-11 17:01:55 +00:00
dependabot-preview[bot]
2760b6a851 Bump caniuse-lite from 1.0.30001112 to 1.0.30001113
Bumps [caniuse-lite](https://github.com/ben-eb/caniuse-lite) from 1.0.30001112 to 1.0.30001113.
- [Release notes](https://github.com/ben-eb/caniuse-lite/releases)
- [Changelog](https://github.com/ben-eb/caniuse-lite/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ben-eb/caniuse-lite/compare/v1.0.30001112...v1.0.30001113)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-08-11 16:56:17 +00:00
dependabot-preview[bot]
4519981eff Merge pull request #626 from amir20/dependabot/npm_and_yarn/mini-css-extract-plugin-0.10.0 2020-08-10 23:04:47 +00:00
dependabot-preview[bot]
69e9685802 Bump mini-css-extract-plugin from 0.9.0 to 0.10.0
Bumps [mini-css-extract-plugin](https://github.com/webpack-contrib/mini-css-extract-plugin) from 0.9.0 to 0.10.0.
- [Release notes](https://github.com/webpack-contrib/mini-css-extract-plugin/releases)
- [Changelog](https://github.com/webpack-contrib/mini-css-extract-plugin/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v0.9.0...v0.10.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-08-10 22:58:32 +00:00
dependabot-preview[bot]
8988399892 Merge pull request #625 from amir20/dependabot/npm_and_yarn/jest-26.3.0 2020-08-10 21:35:11 +00:00
dependabot-preview[bot]
ed08a811dc Bump jest from 26.2.2 to 26.3.0
Bumps [jest](https://github.com/facebook/jest) from 26.2.2 to 26.3.0.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/compare/v26.2.2...v26.3.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-08-10 21:29:27 +00:00
dependabot-preview[bot]
bb172a5833 Merge pull request #624 from amir20/dependabot/npm_and_yarn/babel-jest-26.3.0 2020-08-10 20:57:11 +00:00
dependabot-preview[bot]
69b49df435 Bump babel-jest from 26.2.2 to 26.3.0
Bumps [babel-jest](https://github.com/facebook/jest/tree/HEAD/packages/babel-jest) from 26.2.2 to 26.3.0.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/commits/v26.3.0/packages/babel-jest)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-08-10 20:49:56 +00:00
dependabot-preview[bot]
97efc446c6 Merge pull request #623 from amir20/dependabot/npm_and_yarn/integration/jest-26.3.0 2020-08-10 11:41:47 +00:00
dependabot-preview[bot]
dff99125d1 Bump jest from 26.2.2 to 26.3.0 in /integration
Bumps [jest](https://github.com/facebook/jest) from 26.2.2 to 26.3.0.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-08-10 11:36:14 +00:00
dependabot-preview[bot]
0a679ad7c3 Merge pull request #621 from amir20/dependabot/npm_and_yarn/vue-router-3.4.2 2020-08-07 14:21:27 +00:00
dependabot-preview[bot]
e5dfefdfb6 Bump vue-router from 3.4.1 to 3.4.2
Bumps [vue-router](https://github.com/vuejs/vue-router) from 3.4.1 to 3.4.2.
- [Release notes](https://github.com/vuejs/vue-router/releases)
- [Changelog](https://github.com/vuejs/vue-router/blob/dev/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vue-router/compare/v3.4.1...v3.4.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-08-07 14:16:05 +00:00
dependabot-preview[bot]
b9238fe8cb Merge pull request #620 from amir20/dependabot/npm_and_yarn/caniuse-lite-1.0.30001112 2020-08-07 06:32:15 +00:00
dependabot-preview[bot]
e8402ac36f Bump caniuse-lite from 1.0.30001111 to 1.0.30001112
Bumps [caniuse-lite](https://github.com/ben-eb/caniuse-lite) from 1.0.30001111 to 1.0.30001112.
- [Release notes](https://github.com/ben-eb/caniuse-lite/releases)
- [Changelog](https://github.com/ben-eb/caniuse-lite/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ben-eb/caniuse-lite/compare/v1.0.30001111...v1.0.30001112)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-08-07 06:25:46 +00:00
dependabot-preview[bot]
82aad221ac Merge pull request #619 from amir20/dependabot/npm_and_yarn/css-loader-4.2.1 2020-08-06 18:58:10 +00:00
dependabot-preview[bot]
b7bc7214a2 Bump css-loader from 4.2.0 to 4.2.1
Bumps [css-loader](https://github.com/webpack-contrib/css-loader) from 4.2.0 to 4.2.1.
- [Release notes](https://github.com/webpack-contrib/css-loader/releases)
- [Changelog](https://github.com/webpack-contrib/css-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/css-loader/compare/v4.2.0...v4.2.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-08-06 18:51:55 +00:00
dependabot-preview[bot]
ad5630317c Merge pull request #618 from amir20/dependabot/npm_and_yarn/vue-router-3.4.1 2020-08-06 15:39:22 +00:00
dependabot-preview[bot]
c252cd6c23 Bump vue-router from 3.4.0 to 3.4.1
Bumps [vue-router](https://github.com/vuejs/vue-router) from 3.4.0 to 3.4.1.
- [Release notes](https://github.com/vuejs/vue-router/releases)
- [Changelog](https://github.com/vuejs/vue-router/blob/dev/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vue-router/compare/v3.4.0...v3.4.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-08-06 15:32:47 +00:00
dependabot-preview[bot]
9642a3b02e Merge pull request #617 from amir20/dependabot/npm_and_yarn/sass-loader-9.0.3 2020-08-05 20:05:37 +00:00
dependabot-preview[bot]
95a8c34555 Bump sass-loader from 9.0.2 to 9.0.3
Bumps [sass-loader](https://github.com/webpack-contrib/sass-loader) from 9.0.2 to 9.0.3.
- [Release notes](https://github.com/webpack-contrib/sass-loader/releases)
- [Changelog](https://github.com/webpack-contrib/sass-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/sass-loader/compare/v9.0.2...v9.0.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-08-05 19:58:58 +00:00
dependabot-preview[bot]
f975f9f969 Merge pull request #616 from amir20/dependabot/npm_and_yarn/vue-router-3.4.0 2020-08-05 17:37:03 +00:00
dependabot-preview[bot]
86d95066a5 Bump vue-router from 3.3.4 to 3.4.0
Bumps [vue-router](https://github.com/vuejs/vue-router) from 3.3.4 to 3.4.0.
- [Release notes](https://github.com/vuejs/vue-router/releases)
- [Changelog](https://github.com/vuejs/vue-router/blob/dev/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vue-router/compare/v3.3.4...v3.4.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-08-05 17:31:31 +00:00
dependabot-preview[bot]
dc2d631a74 Merge pull request #615 from amir20/dependabot/npm_and_yarn/caniuse-lite-1.0.30001111 2020-08-05 06:40:20 +00:00
dependabot-preview[bot]
87084c8ac5 Bump caniuse-lite from 1.0.30001110 to 1.0.30001111
Bumps [caniuse-lite](https://github.com/ben-eb/caniuse-lite) from 1.0.30001110 to 1.0.30001111.
- [Release notes](https://github.com/ben-eb/caniuse-lite/releases)
- [Changelog](https://github.com/ben-eb/caniuse-lite/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ben-eb/caniuse-lite/compare/v1.0.30001110...v1.0.30001111)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-08-05 06:34:23 +00:00
dependabot-preview[bot]
57115b8443 Merge pull request #614 from amir20/dependabot/npm_and_yarn/babel/core-7.11.1 2020-08-04 22:37:08 +00:00
dependabot-preview[bot]
7d3fe360f4 Bump @babel/core from 7.11.0 to 7.11.1
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.11.0 to 7.11.1.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.11.1/packages/babel-core)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-08-04 22:30:52 +00:00
dependabot-preview[bot]
3ffd9b0af1 Merge pull request #613 from amir20/dependabot/npm_and_yarn/caniuse-lite-1.0.30001110 2020-08-04 16:54:44 +00:00
dependabot-preview[bot]
70b19d2620 Bump caniuse-lite from 1.0.30001109 to 1.0.30001110
Bumps [caniuse-lite](https://github.com/ben-eb/caniuse-lite) from 1.0.30001109 to 1.0.30001110.
- [Release notes](https://github.com/ben-eb/caniuse-lite/releases)
- [Changelog](https://github.com/ben-eb/caniuse-lite/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ben-eb/caniuse-lite/compare/v1.0.30001109...v1.0.30001110)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-08-04 16:48:30 +00:00
Amir Raminfar
7f2af84be9 Fixes color on scroll notifier 2020-08-03 09:16:09 -07:00
dependabot-preview[bot]
a319c14f1b Merge pull request #612 from amir20/dependabot/go_modules/github.com/spf13/viper-1.7.1 2020-08-03 13:24:16 +00:00
dependabot-preview[bot]
a29bee45c4 Bump github.com/spf13/viper from 1.7.0 to 1.7.1
Bumps [github.com/spf13/viper](https://github.com/spf13/viper) from 1.7.0 to 1.7.1.
- [Release notes](https://github.com/spf13/viper/releases)
- [Commits](https://github.com/spf13/viper/compare/v1.7.0...v1.7.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-08-03 13:17:47 +00:00
dependabot-preview[bot]
a9c7bc5378 Merge pull request #610 from amir20/dependabot/npm_and_yarn/css-loader-4.2.0 2020-08-01 04:40:18 +00:00
dependabot-preview[bot]
3eaa999935 Bump css-loader from 4.1.1 to 4.2.0
Bumps [css-loader](https://github.com/webpack-contrib/css-loader) from 4.1.1 to 4.2.0.
- [Release notes](https://github.com/webpack-contrib/css-loader/releases)
- [Changelog](https://github.com/webpack-contrib/css-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/css-loader/compare/v4.1.1...v4.2.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-08-01 04:34:27 +00:00
dependabot-preview[bot]
b9df70a577 Merge pull request #609 from amir20/dependabot/npm_and_yarn/jest-26.2.2 2020-08-01 03:16:43 +00:00
dependabot-preview[bot]
51d4a38679 Bump jest from 26.2.1 to 26.2.2
Bumps [jest](https://github.com/facebook/jest) from 26.2.1 to 26.2.2.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/compare/v26.2.1...v26.2.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-08-01 03:10:04 +00:00
dependabot-preview[bot]
738aac7c10 Merge pull request #608 from amir20/dependabot/npm_and_yarn/babel-jest-26.2.2 2020-08-01 02:37:56 +00:00
dependabot-preview[bot]
460ad11503 Bump babel-jest from 26.2.1 to 26.2.2
Bumps [babel-jest](https://github.com/facebook/jest/tree/HEAD/packages/babel-jest) from 26.2.1 to 26.2.2.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/commits/v26.2.2/packages/babel-jest)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-08-01 02:31:27 +00:00
dependabot-preview[bot]
ee5d96c826 Merge pull request #607 from amir20/dependabot/npm_and_yarn/integration/jest-26.2.2 2020-07-31 11:04:02 +00:00
dependabot-preview[bot]
44f15ee02b Bump jest from 26.2.1 to 26.2.2 in /integration
Bumps [jest](https://github.com/facebook/jest) from 26.2.1 to 26.2.2.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/compare/v26.2.1...v26.2.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-31 10:57:59 +00:00
dependabot-preview[bot]
a4f34bcff6 Merge pull request #606 from amir20/dependabot/npm_and_yarn/babel/core-7.11.0 2020-07-31 00:37:06 +00:00
dependabot-preview[bot]
58d0f9c8cd Bump @babel/core from 7.10.5 to 7.11.0
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.10.5 to 7.11.0.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.11.0/packages/babel-core)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-31 00:31:06 +00:00
dependabot-preview[bot]
b1e0ea8b0b Merge pull request #605 from amir20/dependabot/npm_and_yarn/babel/plugin-transform-runtime-7.11.0 2020-07-31 00:28:54 +00:00
dependabot-preview[bot]
9bbc34985b Bump @babel/plugin-transform-runtime from 7.10.5 to 7.11.0
Bumps [@babel/plugin-transform-runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-transform-runtime) from 7.10.5 to 7.11.0.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.11.0/packages/babel-plugin-transform-runtime)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-31 00:22:52 +00:00
dependabot-preview[bot]
dc7fcf31c0 Merge pull request #604 from amir20/dependabot/npm_and_yarn/css-loader-4.1.1 2020-07-30 20:44:13 +00:00
dependabot-preview[bot]
9c4cca1a96 Bump css-loader from 4.1.0 to 4.1.1
Bumps [css-loader](https://github.com/webpack-contrib/css-loader) from 4.1.0 to 4.1.1.
- [Release notes](https://github.com/webpack-contrib/css-loader/releases)
- [Changelog](https://github.com/webpack-contrib/css-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/css-loader/compare/v4.1.0...v4.1.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-30 20:37:30 +00:00
dependabot-preview[bot]
fb5436a1cd Merge pull request #603 from amir20/dependabot/npm_and_yarn/jest-26.2.1 2020-07-30 20:37:09 +00:00
dependabot-preview[bot]
e08f7c6d2e Bump jest from 26.1.0 to 26.2.1
Bumps [jest](https://github.com/facebook/jest) from 26.1.0 to 26.2.1.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/compare/v26.1.0...v26.2.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-30 20:31:02 +00:00
dependabot-preview[bot]
45e6cc8fd3 Merge pull request #602 from amir20/dependabot/npm_and_yarn/babel-jest-26.2.1 2020-07-30 19:54:41 +00:00
dependabot-preview[bot]
d31ca75576 Bump babel-jest from 26.1.0 to 26.2.1
Bumps [babel-jest](https://github.com/facebook/jest/tree/HEAD/packages/babel-jest) from 26.1.0 to 26.2.1.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/commits/v26.2.1/packages/babel-jest)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-30 19:47:30 +00:00
dependabot-preview[bot]
e69aa8b9a1 Merge pull request #601 from amir20/dependabot/npm_and_yarn/webpack-4.44.1 2020-07-30 14:58:36 +00:00
dependabot-preview[bot]
ba1fca04e0 Bump webpack from 4.44.0 to 4.44.1
Bumps [webpack](https://github.com/webpack/webpack) from 4.44.0 to 4.44.1.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v4.44.0...v4.44.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-30 14:49:19 +00:00
dependabot-preview[bot]
f2591b4341 Merge pull request #600 from amir20/dependabot/npm_and_yarn/caniuse-lite-1.0.30001109 2020-07-30 13:02:50 +00:00
dependabot-preview[bot]
f7657265e8 Bump caniuse-lite from 1.0.30001107 to 1.0.30001109
Bumps [caniuse-lite](https://github.com/ben-eb/caniuse-lite) from 1.0.30001107 to 1.0.30001109.
- [Release notes](https://github.com/ben-eb/caniuse-lite/releases)
- [Changelog](https://github.com/ben-eb/caniuse-lite/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ben-eb/caniuse-lite/compare/v1.0.30001107...v1.0.30001109)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-30 12:56:46 +00:00
dependabot-preview[bot]
a46b7bb0d3 Merge pull request #599 from amir20/dependabot/npm_and_yarn/integration/jest-26.2.1 2020-07-30 11:45:52 +00:00
dependabot-preview[bot]
5a7eaa23d4 Bump jest from 26.2.0 to 26.2.1 in /integration
Bumps [jest](https://github.com/facebook/jest) from 26.2.0 to 26.2.1.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/compare/v26.2.0...v26.2.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-30 11:39:49 +00:00
dependabot-preview[bot]
dc6423ecf7 Merge pull request #598 from amir20/dependabot/npm_and_yarn/integration/jest-26.2.0 2020-07-30 10:45:39 +00:00
dependabot-preview[bot]
f9ebec8cb4 Bump jest from 26.1.0 to 26.2.0 in /integration
Bumps [jest](https://github.com/facebook/jest) from 26.1.0 to 26.2.0.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/compare/v26.1.0...v26.2.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-30 10:40:01 +00:00
dependabot-preview[bot]
9621418fbf Merge pull request #597 from amir20/dependabot/npm_and_yarn/elliptic-6.5.3 2020-07-29 22:09:24 +00:00
dependabot-preview[bot]
54239ff4c5 [Security] Bump elliptic from 6.5.2 to 6.5.3
Bumps [elliptic](https://github.com/indutny/elliptic) from 6.5.2 to 6.5.3. **This update includes a security fix.**
- [Release notes](https://github.com/indutny/elliptic/releases)
- [Commits](https://github.com/indutny/elliptic/compare/v6.5.2...v6.5.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-29 22:01:36 +00:00
dependabot-preview[bot]
19855bd7a0 Merge pull request #596 from amir20/dependabot/npm_and_yarn/css-loader-4.1.0 2020-07-29 18:14:19 +00:00
dependabot-preview[bot]
41133d45b0 Bump css-loader from 4.0.0 to 4.1.0
Bumps [css-loader](https://github.com/webpack-contrib/css-loader) from 4.0.0 to 4.1.0.
- [Release notes](https://github.com/webpack-contrib/css-loader/releases)
- [Changelog](https://github.com/webpack-contrib/css-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/css-loader/compare/v4.0.0...v4.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-29 18:08:33 +00:00
dependabot-preview[bot]
a224853110 Merge pull request #595 from amir20/dependabot/npm_and_yarn/caniuse-lite-1.0.30001107 2020-07-26 23:56:45 +00:00
dependabot-preview[bot]
9035f61030 Bump caniuse-lite from 1.0.30001106 to 1.0.30001107
Bumps [caniuse-lite](https://github.com/ben-eb/caniuse-lite) from 1.0.30001106 to 1.0.30001107.
- [Release notes](https://github.com/ben-eb/caniuse-lite/releases)
- [Changelog](https://github.com/ben-eb/caniuse-lite/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ben-eb/caniuse-lite/compare/v1.0.30001106...v1.0.30001107)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-26 23:51:01 +00:00
dependabot-preview[bot]
6e338c924d Merge pull request #594 from amir20/dependabot/npm_and_yarn/caniuse-lite-1.0.30001106 2020-07-25 23:25:50 +00:00
dependabot-preview[bot]
847e82dfae Bump caniuse-lite from 1.0.30001105 to 1.0.30001106
Bumps [caniuse-lite](https://github.com/ben-eb/caniuse-lite) from 1.0.30001105 to 1.0.30001106.
- [Release notes](https://github.com/ben-eb/caniuse-lite/releases)
- [Changelog](https://github.com/ben-eb/caniuse-lite/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ben-eb/caniuse-lite/compare/v1.0.30001105...v1.0.30001106)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-25 23:19:43 +00:00
dependabot-preview[bot]
ccef17c0b8 Merge pull request #593 from amir20/dependabot/npm_and_yarn/css-loader-4.0.0 2020-07-25 17:01:33 +00:00
dependabot-preview[bot]
00c9049a51 Bump css-loader from 3.6.0 to 4.0.0
Bumps [css-loader](https://github.com/webpack-contrib/css-loader) from 3.6.0 to 4.0.0.
- [Release notes](https://github.com/webpack-contrib/css-loader/releases)
- [Changelog](https://github.com/webpack-contrib/css-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/css-loader/compare/v3.6.0...v4.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-25 16:55:59 +00:00
dependabot-preview[bot]
4b12b0486a Merge pull request #592 from amir20/dependabot/npm_and_yarn/release-it-13.6.6 2020-07-25 10:52:32 +00:00
dependabot-preview[bot]
6c7fa84f14 Bump release-it from 13.6.5 to 13.6.6
Bumps [release-it](https://github.com/release-it/release-it) from 13.6.5 to 13.6.6.
- [Release notes](https://github.com/release-it/release-it/releases)
- [Changelog](https://github.com/release-it/release-it/blob/master/CHANGELOG.md)
- [Commits](https://github.com/release-it/release-it/compare/13.6.5...13.6.6)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-25 10:44:42 +00:00
dependabot-preview[bot]
e28ad0158a Merge pull request #591 from amir20/dependabot/npm_and_yarn/webpack-4.44.0 2020-07-24 18:32:16 +00:00
dependabot-preview[bot]
d4e451973b Bump webpack from 4.43.0 to 4.44.0
Bumps [webpack](https://github.com/webpack/webpack) from 4.43.0 to 4.44.0.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v4.43.0...v4.44.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-24 18:26:11 +00:00
dependabot-preview[bot]
5e1dcf8e3b Merge pull request #590 from amir20/dependabot/npm_and_yarn/integration/jest-image-snapshot-4.1.0 2020-07-23 12:48:23 +00:00
dependabot-preview[bot]
e7254e547a Bump jest-image-snapshot from 4.0.2 to 4.1.0 in /integration
Bumps [jest-image-snapshot](https://github.com/americanexpress/jest-image-snapshot) from 4.0.2 to 4.1.0.
- [Release notes](https://github.com/americanexpress/jest-image-snapshot/releases)
- [Changelog](https://github.com/americanexpress/jest-image-snapshot/blob/master/CHANGELOG.md)
- [Commits](https://github.com/americanexpress/jest-image-snapshot/compare/v4.0.2...v4.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-23 12:41:32 +00:00
dependabot-preview[bot]
27db8755e2 Merge pull request #589 from amir20/dependabot/npm_and_yarn/vue/component-compiler-utils-3.2.0 2020-07-22 17:55:18 +00:00
dependabot-preview[bot]
a68059ba53 Bump @vue/component-compiler-utils from 3.1.2 to 3.2.0
Bumps [@vue/component-compiler-utils](https://github.com/vuejs/component-compiler-utils) from 3.1.2 to 3.2.0.
- [Release notes](https://github.com/vuejs/component-compiler-utils/releases)
- [Changelog](https://github.com/vuejs/component-compiler-utils/blob/master/CHANGELOG.md)
- [Commits](https://github.com/vuejs/component-compiler-utils/compare/v3.1.2...v3.2.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-22 17:48:37 +00:00
dependabot-preview[bot]
e8b61268d9 Merge pull request #588 from amir20/dependabot/npm_and_yarn/caniuse-lite-1.0.30001105 2020-07-22 11:33:32 +00:00
dependabot-preview[bot]
32c8b082ec Bump caniuse-lite from 1.0.30001104 to 1.0.30001105
Bumps [caniuse-lite](https://github.com/ben-eb/caniuse-lite) from 1.0.30001104 to 1.0.30001105.
- [Release notes](https://github.com/ben-eb/caniuse-lite/releases)
- [Changelog](https://github.com/ben-eb/caniuse-lite/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ben-eb/caniuse-lite/compare/v1.0.30001104...v1.0.30001105)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-22 11:27:32 +00:00
dependabot-preview[bot]
231c585788 Merge pull request #587 from amir20/dependabot/npm_and_yarn/integration/puppeteer-5.2.1 2020-07-21 15:09:50 +00:00
dependabot-preview[bot]
1aace0b1f0 Bump puppeteer from 5.2.0 to 5.2.1 in /integration
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 5.2.0 to 5.2.1.
- [Release notes](https://github.com/puppeteer/puppeteer/releases)
- [Commits](https://github.com/puppeteer/puppeteer/compare/v5.2.0...v5.2.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-21 15:04:18 +00:00
Amir Raminfar
2d488e3346 Updates snapshots 2020-07-20 14:47:41 -07:00
Amir Raminfar
0715f68d94 Adds section class 2020-07-20 12:53:39 -07:00
Amir Raminfar
c81801c13e Removes v from version 2020-07-20 10:16:28 -07:00
Amir Raminfar
3796e97855 Release 2.1.4 2020-07-20 09:31:33 -07:00
dependabot-preview[bot]
1da3ba8c5f Merge pull request #586 from amir20/dependabot/npm_and_yarn/caniuse-lite-1.0.30001104 2020-07-20 13:51:24 +00:00
dependabot-preview[bot]
b972129678 Bump caniuse-lite from 1.0.30001103 to 1.0.30001104
Bumps [caniuse-lite](https://github.com/ben-eb/caniuse-lite) from 1.0.30001103 to 1.0.30001104.
- [Release notes](https://github.com/ben-eb/caniuse-lite/releases)
- [Changelog](https://github.com/ben-eb/caniuse-lite/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ben-eb/caniuse-lite/compare/v1.0.30001103...v1.0.30001104)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-20 13:45:22 +00:00
Amir Raminfar
e6a343dca0 Makes settings page mobile friendly 2020-07-19 19:44:36 -07:00
Amir Raminfar
0f5cf053de Release 2.1.3 2020-07-19 19:32:35 -07:00
Amir Raminfar
25ec792acb Uses console.error instead 2020-07-19 19:25:47 -07:00
Amir Raminfar
7ae9230e32 Adds cancel 2020-07-19 19:19:35 -07:00
Amir Raminfar
6288380186 Fixes tests snapshots 2020-07-19 18:23:02 -07:00
Amir Raminfar
2ebb6d128d Created reset() 2020-07-19 17:16:39 -07:00
Amir Raminfar
cd7ea2f904 Uses .flush() 2020-07-19 17:13:05 -07:00
Amir Raminfar
cef015a722 Adds break with container stopped 2020-07-19 17:08:33 -07:00
dependabot-preview[bot]
95bc0072b5 Merge pull request #585 from amir20/dependabot/npm_and_yarn/caniuse-lite-1.0.30001103 2020-07-19 05:42:46 +00:00
dependabot-preview[bot]
a3b489c9cd Bump caniuse-lite from 1.0.30001102 to 1.0.30001103
Bumps [caniuse-lite](https://github.com/ben-eb/caniuse-lite) from 1.0.30001102 to 1.0.30001103.
- [Release notes](https://github.com/ben-eb/caniuse-lite/releases)
- [Changelog](https://github.com/ben-eb/caniuse-lite/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ben-eb/caniuse-lite/compare/v1.0.30001102...v1.0.30001103)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-19 05:37:02 +00:00
dependabot-preview[bot]
575d7d3494 Merge pull request #583 from amir20/dependabot/npm_and_yarn/date-fns-2.15.0 2020-07-17 17:53:09 +00:00
dependabot-preview[bot]
eff39d888c Bump date-fns from 2.14.0 to 2.15.0
Bumps [date-fns](https://github.com/date-fns/date-fns) from 2.14.0 to 2.15.0.
- [Release notes](https://github.com/date-fns/date-fns/releases)
- [Changelog](https://github.com/date-fns/date-fns/blob/master/CHANGELOG.md)
- [Commits](https://github.com/date-fns/date-fns/compare/v2.14.0...v2.15.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-17 17:46:53 +00:00
Amir Raminfar
6ad98503ac Release 2.1.2 2020-07-17 09:57:44 -07:00
Bart Meuris
58fad3d105 Added ${config.base} when calling /api/logs?id=... (#582)
Co-authored-by: Bart Meuris <bart@mebasys.com>
2020-07-17 09:02:14 -07:00
dependabot-preview[bot]
9ae8b08725 Merge pull request #580 from amir20/dependabot/npm_and_yarn/integration/puppeteer-5.2.0 2020-07-17 12:43:24 +00:00
dependabot-preview[bot]
3d91d6e53d Bump puppeteer from 5.1.0 to 5.2.0 in /integration
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 5.1.0 to 5.2.0.
- [Release notes](https://github.com/puppeteer/puppeteer/releases)
- [Commits](https://github.com/puppeteer/puppeteer/compare/v5.1.0...v5.2.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-17 12:38:06 +00:00
dependabot-preview[bot]
fa1067ff42 Merge pull request #579 from amir20/dependabot/npm_and_yarn/caniuse-lite-1.0.30001102 2020-07-17 06:24:58 +00:00
dependabot-preview[bot]
78587dff85 Bump caniuse-lite from 1.0.30001101 to 1.0.30001102
Bumps [caniuse-lite](https://github.com/ben-eb/caniuse-lite) from 1.0.30001101 to 1.0.30001102.
- [Release notes](https://github.com/ben-eb/caniuse-lite/releases)
- [Changelog](https://github.com/ben-eb/caniuse-lite/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ben-eb/caniuse-lite/compare/v1.0.30001101...v1.0.30001102)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-17 06:18:25 +00:00
dependabot-preview[bot]
c19315176a Merge pull request #578 from amir20/dependabot/npm_and_yarn/caniuse-lite-1.0.30001101 2020-07-17 02:43:12 +00:00
dependabot-preview[bot]
1237b08e91 Bump caniuse-lite from 1.0.30001100 to 1.0.30001101
Bumps [caniuse-lite](https://github.com/ben-eb/caniuse-lite) from 1.0.30001100 to 1.0.30001101.
- [Release notes](https://github.com/ben-eb/caniuse-lite/releases)
- [Changelog](https://github.com/ben-eb/caniuse-lite/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ben-eb/caniuse-lite/compare/v1.0.30001100...v1.0.30001101)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-17 02:37:54 +00:00
dependabot-preview[bot]
742ad32e7c Merge pull request #577 from amir20/dependabot/npm_and_yarn/integration/lodash-4.17.19 2020-07-16 13:29:35 +00:00
dependabot-preview[bot]
bea8c71297 [Security] Bump lodash from 4.17.15 to 4.17.19 in /integration
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.15 to 4.17.19. **This update includes a security fix.**
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.15...4.17.19)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-16 13:23:28 +00:00
dependabot-preview[bot]
3b38395ddb Merge pull request #576 from amir20/dependabot/npm_and_yarn/caniuse-lite-1.0.30001100 2020-07-15 02:47:51 +00:00
dependabot-preview[bot]
e3f2edc02b Bump caniuse-lite from 1.0.30001099 to 1.0.30001100
Bumps [caniuse-lite](https://github.com/ben-eb/caniuse-lite) from 1.0.30001099 to 1.0.30001100.
- [Release notes](https://github.com/ben-eb/caniuse-lite/releases)
- [Changelog](https://github.com/ben-eb/caniuse-lite/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ben-eb/caniuse-lite/compare/v1.0.30001099...v1.0.30001100)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-15 02:41:15 +00:00
dependabot-preview[bot]
fe698ca641 Merge pull request #575 from amir20/dependabot/npm_and_yarn/babel/core-7.10.5 2020-07-14 18:53:17 +00:00
dependabot-preview[bot]
eaefd38269 Bump @babel/core from 7.10.4 to 7.10.5
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.10.4 to 7.10.5.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.10.5/packages/babel-core)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-14 18:47:02 +00:00
dependabot-preview[bot]
8aff4146bb Merge pull request #574 from amir20/dependabot/npm_and_yarn/babel/plugin-transform-runtime-7.10.5 2020-07-14 18:45:07 +00:00
dependabot-preview[bot]
1637c15f76 Bump @babel/plugin-transform-runtime from 7.10.4 to 7.10.5
Bumps [@babel/plugin-transform-runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-transform-runtime) from 7.10.4 to 7.10.5.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.10.5/packages/babel-plugin-transform-runtime)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-14 18:39:37 +00:00
Amir Raminfar
7c6677ceaa Adds border color to settings 2020-07-13 12:18:06 -07:00
dependabot-preview[bot]
c04e9a1b9f Merge pull request #573 from amir20/dependabot/npm_and_yarn/integration/puppeteer-5.1.0 2020-07-13 10:04:56 +00:00
dependabot-preview[bot]
0bdd84de13 Bump puppeteer from 5.0.0 to 5.1.0 in /integration
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 5.0.0 to 5.1.0.
- [Release notes](https://github.com/puppeteer/puppeteer/releases)
- [Commits](https://github.com/puppeteer/puppeteer/compare/v5.0.0...v5.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-13 09:57:18 +00:00
dependabot-preview[bot]
b1ee9d230d Merge pull request #572 from amir20/dependabot/npm_and_yarn/caniuse-lite-1.0.30001099 2020-07-11 20:00:02 +00:00
dependabot-preview[bot]
3ca87a0d9c Bump caniuse-lite from 1.0.30001097 to 1.0.30001099
Bumps [caniuse-lite](https://github.com/ben-eb/caniuse-lite) from 1.0.30001097 to 1.0.30001099.
- [Release notes](https://github.com/ben-eb/caniuse-lite/releases)
- [Changelog](https://github.com/ben-eb/caniuse-lite/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ben-eb/caniuse-lite/compare/v1.0.30001097...v1.0.30001099)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-11 19:53:50 +00:00
Amir Raminfar
595f69dfe7 Implements enter 2020-07-11 10:21:02 -07:00
Amir Raminfar
b1ba21a78b Release 2.1.1 2020-07-10 14:50:19 -07:00
Amir Raminfar
9017b8c27a Updates tests and uses distance time (#571) 2020-07-10 14:50:01 -07:00
Amir Raminfar
bc848a8baf Only shows running and all 2020-07-10 14:33:31 -07:00
Amir Raminfar
3d61f6db05 Release 2.1.0 2020-07-10 11:22:09 -07:00
Amir Raminfar
b25de1d921 Adds a new dashboard for default page (#569) 2020-07-10 11:06:28 -07:00
dependabot-preview[bot]
0d63b72cf6 Merge pull request #570 from amir20/dependabot/npm_and_yarn/caniuse-lite-1.0.30001097 2020-07-10 03:43:23 +00:00
dependabot-preview[bot]
9936aeec6c Bump caniuse-lite from 1.0.30001096 to 1.0.30001097
Bumps [caniuse-lite](https://github.com/ben-eb/caniuse-lite) from 1.0.30001096 to 1.0.30001097.
- [Release notes](https://github.com/ben-eb/caniuse-lite/releases)
- [Changelog](https://github.com/ben-eb/caniuse-lite/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ben-eb/caniuse-lite/compare/v1.0.30001096...v1.0.30001097)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-10 03:37:15 +00:00
Amir Raminfar
8885764e72 Exposes port 8080. Fixes #23 2020-07-09 19:02:01 -07:00
Amir Raminfar
46db2b035e Fixes tests 2020-07-09 13:03:56 -07:00
Amir Raminfar
74273b8bf7 Updates index page to a dashboard 2020-07-09 13:03:56 -07:00
Amir Raminfar
dcd7ccc099 Adds better colors 2020-07-09 13:03:55 -07:00
dependabot-preview[bot]
5bfd62b57a Merge pull request #568 from amir20/dependabot/npm_and_yarn/release-it-13.6.5 2020-07-09 18:40:46 +00:00
dependabot-preview[bot]
dc9739c1f3 Bump release-it from 13.6.4 to 13.6.5
Bumps [release-it](https://github.com/release-it/release-it) from 13.6.4 to 13.6.5.
- [Release notes](https://github.com/release-it/release-it/releases)
- [Changelog](https://github.com/release-it/release-it/blob/master/CHANGELOG.md)
- [Commits](https://github.com/release-it/release-it/compare/13.6.4...13.6.5)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-09 18:34:28 +00:00
dependabot-preview[bot]
2a0d0194a7 Merge pull request #566 from amir20/dependabot/npm_and_yarn/caniuse-lite-1.0.30001096 2020-07-08 11:51:13 +00:00
dependabot-preview[bot]
920c10c318 Bump caniuse-lite from 1.0.30001094 to 1.0.30001096
Bumps [caniuse-lite](https://github.com/ben-eb/caniuse-lite) from 1.0.30001094 to 1.0.30001096.
- [Release notes](https://github.com/ben-eb/caniuse-lite/releases)
- [Changelog](https://github.com/ben-eb/caniuse-lite/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ben-eb/caniuse-lite/compare/v1.0.30001094...v1.0.30001096)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-08 11:44:56 +00:00
dependabot-preview[bot]
fee69db8a3 Merge pull request #565 from amir20/dependabot/npm_and_yarn/sass-loader-9.0.2 2020-07-07 20:02:12 +00:00
dependabot-preview[bot]
ea663368e7 Bump sass-loader from 9.0.1 to 9.0.2
Bumps [sass-loader](https://github.com/webpack-contrib/sass-loader) from 9.0.1 to 9.0.2.
- [Release notes](https://github.com/webpack-contrib/sass-loader/releases)
- [Changelog](https://github.com/webpack-contrib/sass-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/sass-loader/compare/v9.0.1...v9.0.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-07 19:56:18 +00:00
dependabot-preview[bot]
334d6feffd Merge pull request #563 from amir20/dependabot/npm_and_yarn/sass-1.26.10 2020-07-07 04:03:15 +00:00
dependabot-preview[bot]
b8ebc2e2c0 Bump sass from 1.26.9 to 1.26.10
Bumps [sass](https://github.com/sass/dart-sass) from 1.26.9 to 1.26.10.
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.26.9...1.26.10)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-07 03:55:56 +00:00
Amir Raminfar
2e6b35354d Updates int tests 2020-07-06 12:10:24 -07:00
Amir Raminfar
42d2b57814 Adds not found pages 2020-07-06 12:05:41 -07:00
Amir Raminfar
e88b535127 Updates to fullheight to half 2020-07-06 11:33:38 -07:00
dependabot-preview[bot]
0bb8d8e2e6 Merge pull request #562 from amir20/dependabot/npm_and_yarn/caniuse-lite-1.0.30001094 2020-07-05 05:56:11 +00:00
dependabot-preview[bot]
5678b3192d Bump caniuse-lite from 1.0.30001093 to 1.0.30001094
Bumps [caniuse-lite](https://github.com/ben-eb/caniuse-lite) from 1.0.30001093 to 1.0.30001094.
- [Release notes](https://github.com/ben-eb/caniuse-lite/releases)
- [Changelog](https://github.com/ben-eb/caniuse-lite/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ben-eb/caniuse-lite/compare/v1.0.30001093...v1.0.30001094)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-05 05:50:20 +00:00
Amir Raminfar
117530f1d6 Moves tests around 2020-07-04 15:29:24 -07:00
Amir Raminfar
ee5973b9f3 Use volumes (#560) 2020-07-04 11:33:45 -07:00
Amir Raminfar
fc99b7320f Fixes exit code 2020-07-03 18:27:15 -07:00
Amir Raminfar
a8536a101e Removes unused snapshots 2020-07-03 15:18:36 -07:00
Amir Raminfar
5302ace413 Adds more tests for light mode 2020-07-03 15:16:01 -07:00
Amir Raminfar
2e255ace60 Cleans up tests (#559) 2020-07-03 11:23:57 -07:00
dependabot-preview[bot]
b7515fb32a Merge pull request #558 from amir20/dependabot/npm_and_yarn/sass-loader-9.0.1 2020-07-03 17:33:12 +00:00
dependabot-preview[bot]
396a6bb3e9 Bump sass-loader from 9.0.0 to 9.0.1
Bumps [sass-loader](https://github.com/webpack-contrib/sass-loader) from 9.0.0 to 9.0.1.
- [Release notes](https://github.com/webpack-contrib/sass-loader/releases)
- [Changelog](https://github.com/webpack-contrib/sass-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/sass-loader/compare/v9.0.0...v9.0.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-03 17:26:38 +00:00
dependabot-preview[bot]
79fcbdcd62 Merge pull request #557 from amir20/dependabot/npm_and_yarn/vue-jest-3.0.6 2020-07-03 12:58:13 +00:00
dependabot-preview[bot]
e2348f5b38 Bump vue-jest from 3.0.5 to 3.0.6
Bumps [vue-jest](https://github.com/vuejs/vue-jest) from 3.0.5 to 3.0.6.
- [Release notes](https://github.com/vuejs/vue-jest/releases)
- [Commits](https://github.com/vuejs/vue-jest/commits/v3.0.6)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-03 12:52:55 +00:00
Amir Raminfar
d345998052 Update README.md 2020-07-02 11:51:30 -07:00
Amir Raminfar
08cc04379d Adds hot reload for development (#553) 2020-07-02 11:32:37 -07:00
dependabot-preview[bot]
027af5a853 Merge pull request #556 from amir20/dependabot/npm_and_yarn/sass-loader-9.0.0 2020-07-02 18:18:25 +00:00
dependabot-preview[bot]
abc27165a2 Bump sass-loader from 8.0.2 to 9.0.0
Bumps [sass-loader](https://github.com/webpack-contrib/sass-loader) from 8.0.2 to 9.0.0.
- [Release notes](https://github.com/webpack-contrib/sass-loader/releases)
- [Changelog](https://github.com/webpack-contrib/sass-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/sass-loader/compare/v8.0.2...v9.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-02 18:13:18 +00:00
Amir Raminfar
3aa420a589 Adds more int tests for custom base 2020-07-02 11:01:11 -07:00
dependabot-preview[bot]
045ff730bc Bump puppeteer from 4.0.1 to 5.0.0 in /integration (#555)
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 4.0.1 to 5.0.0.
- [Release notes](https://github.com/puppeteer/puppeteer/releases)
- [Commits](https://github.com/puppeteer/puppeteer/compare/v4.0.1...v5.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-07-02 07:26:53 -07:00
dependabot-preview[bot]
075f17ee36 Merge pull request #554 from amir20/dependabot/npm_and_yarn/caniuse-lite-1.0.30001093 2020-07-02 02:14:15 +00:00
dependabot-preview[bot]
cb3177fa06 Bump caniuse-lite from 1.0.30001091 to 1.0.30001093
Bumps [caniuse-lite](https://github.com/ben-eb/caniuse-lite) from 1.0.30001091 to 1.0.30001093.
- [Release notes](https://github.com/ben-eb/caniuse-lite/releases)
- [Changelog](https://github.com/ben-eb/caniuse-lite/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ben-eb/caniuse-lite/compare/v1.0.30001091...v1.0.30001093)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-02 02:08:38 +00:00
dependabot-preview[bot]
d3e00adf4e Merge pull request #552 from amir20/dependabot/npm_and_yarn/caniuse-lite-1.0.30001091 2020-07-01 00:19:10 +00:00
dependabot-preview[bot]
9100958e22 Bump caniuse-lite from 1.0.30001090 to 1.0.30001091
Bumps [caniuse-lite](https://github.com/ben-eb/caniuse-lite) from 1.0.30001090 to 1.0.30001091.
- [Release notes](https://github.com/ben-eb/caniuse-lite/releases)
- [Changelog](https://github.com/ben-eb/caniuse-lite/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ben-eb/caniuse-lite/compare/v1.0.30001090...v1.0.30001091)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-01 00:14:00 +00:00
Amir Raminfar
eed1c0c568 Release 2.0.5 2020-06-30 12:15:57 -07:00
Amir Raminfar
f692bee5cd Adds console.....oops 2020-06-30 12:14:45 -07:00
Amir Raminfar
86cfaaee6d Adds min-height to fix #547 2020-06-30 11:31:50 -07:00
Amir Raminfar
e8b5fd0523 Release 2.0.4 2020-06-30 11:28:33 -07:00
Amir Raminfar
2fadf6e680 Fixes #551. Auto scroll not working in Firefox 2020-06-30 11:21:37 -07:00
Amir Raminfar
835549d503 Release 2.0.3 2020-06-30 10:59:54 -07:00
Amir Raminfar
0540ceaf43 Fixes broken close button on header 2020-06-30 10:59:42 -07:00
dependabot-preview[bot]
6812d1ac62 Merge pull request #549 from amir20/dependabot/npm_and_yarn/babel/plugin-transform-runtime-7.10.4 2020-06-30 16:59:13 +00:00
dependabot-preview[bot]
1375a59105 Bump @babel/plugin-transform-runtime from 7.10.3 to 7.10.4
Bumps [@babel/plugin-transform-runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-transform-runtime) from 7.10.3 to 7.10.4.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.10.4/packages/babel-plugin-transform-runtime)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-30 16:52:00 +00:00
dependabot-preview[bot]
ec5ece7975 Merge pull request #550 from amir20/dependabot/npm_and_yarn/babel/core-7.10.4 2020-06-30 16:50:05 +00:00
dependabot-preview[bot]
2efcc07706 Bump @babel/core from 7.10.3 to 7.10.4
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.10.3 to 7.10.4.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.10.4/packages/babel-core)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-30 16:44:55 +00:00
dependabot-preview[bot]
9cef13ae74 Merge pull request #546 from amir20/dependabot/npm_and_yarn/vuex-3.5.1 2020-06-29 15:51:35 +00:00
dependabot-preview[bot]
3466ce0004 Bump vuex from 3.4.0 to 3.5.1
Bumps [vuex](https://github.com/vuejs/vuex) from 3.4.0 to 3.5.1.
- [Release notes](https://github.com/vuejs/vuex/releases)
- [Changelog](https://github.com/vuejs/vuex/blob/dev/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vuex/compare/v3.4.0...v3.5.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-29 15:45:49 +00:00
Amir Raminfar
605094aa10 Release 2.0.2 2020-06-28 18:40:12 -07:00
Amir Raminfar
19ad9a7dac Fixes tests 2020-06-28 18:39:26 -07:00
Amir Raminfar
f870dff905 Release 2.0.1 2020-06-28 16:30:07 -07:00
Amir Raminfar
200f997239 Adds black to logo 2020-06-28 16:29:53 -07:00
dependabot-preview[bot]
63d8ec3e13 Merge pull request #545 from amir20/dependabot/npm_and_yarn/release-it-13.6.4 2020-06-28 20:15:14 +00:00
dependabot-preview[bot]
ae22e622eb Bump release-it from 13.6.3 to 13.6.4
Bumps [release-it](https://github.com/release-it/release-it) from 13.6.3 to 13.6.4.
- [Release notes](https://github.com/release-it/release-it/releases)
- [Changelog](https://github.com/release-it/release-it/blob/master/CHANGELOG.md)
- [Commits](https://github.com/release-it/release-it/compare/13.6.3...13.6.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-28 20:09:29 +00:00
Amir Raminfar
66edc3d99f Updates logo to standard svg and cleans up styles a little (#544)
* Adds SVG logo

* Fixes int tests

* Updates js tests
2020-06-28 11:56:26 -07:00
Amir Raminfar
c15458cd10 Release 2.0.0 2020-06-27 18:02:56 -07:00
Amir Raminfar
8fa672edd1 Updates themes to use vars (#541)
* Adds vars for themeing

* Uses correct color vars

* Adds more vars

* Adds other variables

* Use data attribute only

* Adds animation and unifies color

* Fixes tests

* Fixes search

* Adds docker ignore

* Fixes search text

* Fixes int tests

* Fixes int tests again
2020-06-27 14:32:34 -07:00
dependabot-preview[bot]
3d68a8ddb0 Merge pull request #543 from amir20/dependabot/npm_and_yarn/caniuse-lite-1.0.30001090 2020-06-27 20:03:53 +00:00
dependabot-preview[bot]
c8ded47fce Bump caniuse-lite from 1.0.30001089 to 1.0.30001090
Bumps [caniuse-lite](https://github.com/ben-eb/caniuse-lite) from 1.0.30001089 to 1.0.30001090.
- [Release notes](https://github.com/ben-eb/caniuse-lite/releases)
- [Changelog](https://github.com/ben-eb/caniuse-lite/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ben-eb/caniuse-lite/compare/v1.0.30001089...v1.0.30001090)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-27 19:58:10 +00:00
dependabot-preview[bot]
f9e7274c55 Merge pull request #542 from amir20/dependabot/npm_and_yarn/caniuse-lite-1.0.30001089 2020-06-27 07:03:54 +00:00
dependabot-preview[bot]
a86b57e326 Bump caniuse-lite from 1.0.30001088 to 1.0.30001089
Bumps [caniuse-lite](https://github.com/ben-eb/caniuse-lite) from 1.0.30001088 to 1.0.30001089.
- [Release notes](https://github.com/ben-eb/caniuse-lite/releases)
- [Changelog](https://github.com/ben-eb/caniuse-lite/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ben-eb/caniuse-lite/compare/v1.0.30001088...v1.0.30001089)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-27 06:58:17 +00:00
dependabot-preview[bot]
b312df68cf Merge pull request #540 from amir20/dependabot/npm_and_yarn/dompurify-2.0.12 2020-06-24 23:50:08 +00:00
dependabot-preview[bot]
590bc364f3 Bump dompurify from 2.0.11 to 2.0.12
Bumps [dompurify](https://github.com/cure53/DOMPurify) from 2.0.11 to 2.0.12.
- [Release notes](https://github.com/cure53/DOMPurify/releases)
- [Commits](https://github.com/cure53/DOMPurify/compare/2.0.11...2.0.12)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-24 23:42:46 +00:00
Amir Raminfar
5fc4314462 Adds is-hidden-mobile for progress 2020-06-24 11:03:38 -07:00
Amir Raminfar
a2ed4aa847 Adds px to stroke 2020-06-24 10:15:22 -07:00
dependabot-preview[bot]
9ffd00006d Merge pull request #539 from amir20/dependabot/npm_and_yarn/caniuse-lite-1.0.30001088 2020-06-24 16:35:59 +00:00
dependabot-preview[bot]
748ae21788 Bump caniuse-lite from 1.0.30001087 to 1.0.30001088
Bumps [caniuse-lite](https://github.com/ben-eb/caniuse-lite) from 1.0.30001087 to 1.0.30001088.
- [Release notes](https://github.com/ben-eb/caniuse-lite/releases)
- [Changelog](https://github.com/ben-eb/caniuse-lite/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ben-eb/caniuse-lite/compare/v1.0.30001087...v1.0.30001088)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-24 16:31:06 +00:00
dependabot-preview[bot]
2b3ad7e7c4 Merge pull request #538 from amir20/dependabot/npm_and_yarn/integration/puppeteer-4.0.1 2020-06-24 13:39:16 +00:00
dependabot-preview[bot]
d07bb785cf Bump puppeteer from 4.0.0 to 4.0.1 in /integration
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 4.0.0 to 4.0.1.
- [Release notes](https://github.com/puppeteer/puppeteer/releases)
- [Commits](https://github.com/puppeteer/puppeteer/compare/v4.0.0...v4.0.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-24 13:33:51 +00:00
dependabot-preview[bot]
37fed1c94c Merge pull request #537 from amir20/dependabot/npm_and_yarn/babel-jest-26.1.0 2020-06-24 00:27:37 +00:00
dependabot-preview[bot]
601d725ff8 Bump babel-jest from 26.0.1 to 26.1.0
Bumps [babel-jest](https://github.com/facebook/jest/tree/HEAD/packages/babel-jest) from 26.0.1 to 26.1.0.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/commits/v26.1.0/packages/babel-jest)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-24 00:22:34 +00:00
dependabot-preview[bot]
4914517330 Merge pull request #536 from amir20/dependabot/npm_and_yarn/jest-26.1.0 2020-06-24 00:20:43 +00:00
dependabot-preview[bot]
bbaff67dbd Bump jest from 26.0.1 to 26.1.0
Bumps [jest](https://github.com/facebook/jest) from 26.0.1 to 26.1.0.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/compare/v26.0.1...v26.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-24 00:16:06 +00:00
dependabot-preview[bot]
d228cc6dee Merge pull request #535 from amir20/dependabot/npm_and_yarn/vue-loader-15.9.3 2020-06-23 20:58:46 +00:00
Amir Raminfar
1810764092 Adds progress notification bar (#526) 2020-06-23 13:55:45 -07:00
dependabot-preview[bot]
aaec84a2ae Bump vue-loader from 15.9.2 to 15.9.3
Bumps [vue-loader](https://github.com/vuejs/vue-loader) from 15.9.2 to 15.9.3.
- [Release notes](https://github.com/vuejs/vue-loader/releases)
- [Changelog](https://github.com/vuejs/vue-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vue-loader/compare/v15.9.2...v15.9.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-23 20:53:52 +00:00
Amir Raminfar
6f40303aa3 Release 1.29.0 2020-06-23 12:16:45 -07:00
Amir Raminfar
5c4922538a Updates snapshots 2020-06-23 12:05:13 -07:00
catalinmunteanu
156c6abffc added support for toggling between new light theme and dark theme. (#527)
* added support for toggling between new light theme and dark theme.

* improved light theme colors

* light-theme styles are now scoped and applied in each component/page

Co-authored-by: Catalin MUNTEANU <cmunteanu@bitdefender.com>
2020-06-23 11:28:04 -07:00
dependabot-preview[bot]
deaa66117a Merge pull request #534 from amir20/dependabot/npm_and_yarn/caniuse-lite-1.0.30001087 2020-06-23 18:12:05 +00:00
dependabot-preview[bot]
bb63e17fbc Bump caniuse-lite from 1.0.30001085 to 1.0.30001087
Bumps [caniuse-lite](https://github.com/ben-eb/caniuse-lite) from 1.0.30001085 to 1.0.30001087.
- [Release notes](https://github.com/ben-eb/caniuse-lite/releases)
- [Changelog](https://github.com/ben-eb/caniuse-lite/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ben-eb/caniuse-lite/compare/v1.0.30001085...v1.0.30001087)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-23 18:07:02 +00:00
dependabot-preview[bot]
7806ba76ab Merge pull request #533 from amir20/dependabot/npm_and_yarn/integration/jest-26.1.0 2020-06-23 15:26:31 +00:00
dependabot-preview[bot]
3d2c892973 Bump jest from 26.0.1 to 26.1.0 in /integration
Bumps [jest](https://github.com/facebook/jest) from 26.0.1 to 26.1.0.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/compare/v26.0.1...v26.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-23 15:21:17 +00:00
dependabot-preview[bot]
d2226836a1 Merge pull request #531 from amir20/dependabot/npm_and_yarn/sass-1.26.9 2020-06-23 02:12:09 +00:00
dependabot-preview[bot]
f510fef4ce Bump sass from 1.26.8 to 1.26.9
Bumps [sass](https://github.com/sass/dart-sass) from 1.26.8 to 1.26.9.
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.26.8...1.26.9)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-23 02:06:36 +00:00
dependabot-preview[bot]
cb7f2aafda Merge pull request #530 from amir20/dependabot/npm_and_yarn/caniuse-lite-1.0.30001085 2020-06-22 20:28:54 +00:00
dependabot-preview[bot]
c02401e94a Bump caniuse-lite from 1.0.30001084 to 1.0.30001085
Bumps [caniuse-lite](https://github.com/ben-eb/caniuse-lite) from 1.0.30001084 to 1.0.30001085.
- [Release notes](https://github.com/ben-eb/caniuse-lite/releases)
- [Changelog](https://github.com/ben-eb/caniuse-lite/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ben-eb/caniuse-lite/compare/v1.0.30001084...v1.0.30001085)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-22 20:23:19 +00:00
dependabot-preview[bot]
aec4df9260 Merge pull request #529 from amir20/dependabot/npm_and_yarn/babel/core-7.10.3 2020-06-22 19:08:39 +00:00
dependabot-preview[bot]
8928e191cc Bump @babel/core from 7.10.2 to 7.10.3
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.10.2 to 7.10.3.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.10.3/packages/babel-core)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-22 19:02:58 +00:00
dependabot-preview[bot]
45ba37fa5a Merge pull request #528 from amir20/dependabot/npm_and_yarn/babel/plugin-transform-runtime-7.10.3 2020-06-22 18:37:04 +00:00
dependabot-preview[bot]
f20d5f88c5 Bump @babel/plugin-transform-runtime from 7.10.1 to 7.10.3
Bumps [@babel/plugin-transform-runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-transform-runtime) from 7.10.1 to 7.10.3.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.10.3/packages/babel-plugin-transform-runtime)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-22 18:31:41 +00:00
66 changed files with 4099 additions and 2084 deletions

View File

@@ -23,7 +23,7 @@ jobs:
- name: Install Go
uses: actions/setup-go@v1
with:
go-version: 1.14.x
go-version: 1.15.x
- name: Checkout code
uses: actions/checkout@v2
- name: Run Go Tests with Coverage

View File

@@ -20,7 +20,7 @@ jobs:
- name: Install Go
uses: actions/setup-go@v1
with:
go-version: 1.14.x
go-version: 1.15.x
- name: Checkout code
uses: actions/checkout@v2
- name: Run Go Tests with Coverage

View File

@@ -1 +1 @@
-r '\.go$' -R '^node_modules/' -R '^static/' -R '^.cache/' -G '*_test.go' -s -- go run main.go routes.go --level debug
-r '\.go$' -R 'node_modules' -R '^static/' -R '^.cache/' -G '*_test.go' -s -- go run main.go routes.go --level debug

View File

@@ -18,7 +18,7 @@ COPY assets ./assets
# Do the build
RUN yarn build
FROM golang:1.14-alpine AS builder
FROM golang:1.15-alpine AS builder
RUN apk add --no-cache git ca-certificates
RUN mkdir /dozzle
@@ -54,4 +54,6 @@ ENV PATH=/bin
COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt
COPY --from=builder /dozzle/dozzle /dozzle
EXPOSE 8080
ENTRYPOINT ["/dozzle"]

View File

@@ -138,6 +138,6 @@ To Build and test locally:
2. Install Go.
3. Globally install [packr utility](https://github.com/gobuffalo/packr) with `go get -u github.com/gobuffalo/packr/packr` outside of dozzle directory.
4. Install [reflex](https://github.com/cespare/reflex) with `get -u github.com/cespare/reflex` outside of dozzle.
5. Install node modules with `npm install`.
6. Do `npm start`
5. Install node modules with `yarn`.
6. Do `yarn dev`

View File

@@ -31,20 +31,16 @@ Content-Type: text/plain; charset=utf-8
dev
/* snapshot: Test_handler_listContainers_happy */
HTTP/1.1 200 OK
Connection: close
Content-Type: text/plain; charset=utf-8
[{"id":"1234567890","names":null,"name":"test","image":"image","imageId":"image_id","command":"command","created":0,"state":"state","status":"status"}]
/* snapshot: Test_handler_streamEvents_error */
HTTP/1.1 200 OK
Connection: close
Cache-Control: no-cache
Connection: keep-alive
Content-Type: text/event-stream
X-Accel-Buffering: no
X-Accel-Buffering: no
event: containers-changed
data: []
/* snapshot: Test_handler_streamEvents_error_request */
HTTP/1.1 200 OK
@@ -52,7 +48,10 @@ Connection: close
Cache-Control: no-cache
Connection: keep-alive
Content-Type: text/event-stream
X-Accel-Buffering: no
X-Accel-Buffering: no
event: containers-changed
data: []
/* snapshot: Test_handler_streamEvents_happy */
HTTP/1.1 200 OK
@@ -63,7 +62,7 @@ Content-Type: text/event-stream
X-Accel-Buffering: no
event: containers-changed
data: start
data: []
/* snapshot: Test_handler_streamLogs_error_finding_container */
HTTP/1.1 404 Not Found
@@ -91,6 +90,9 @@ X-Accel-Buffering: no
data: INFO Testing logs...
event: container-stopped
data: end of stream
/* snapshot: Test_handler_streamLogs_happy_container_stopped */
HTTP/1.1 200 OK
Connection: close
@@ -102,6 +104,9 @@ X-Accel-Buffering: no
event: container-stopped
data: end of stream
event: container-stopped
data: end of stream
/* snapshot: Test_handler_streamLogs_happy_with_id */
HTTP/1.1 200 OK
Connection: close
@@ -111,4 +116,7 @@ Content-Type: text/event-stream
X-Accel-Buffering: no
data: 2020-05-13T18:55:37.772853839Z INFO Testing logs...
id: 2020-05-13T18:55:37.772853839Z
id: 2020-05-13T18:55:37.772853839Z
event: container-stopped
data: end of stream

View File

@@ -17,31 +17,32 @@ describe("<App />", () => {
global.EventSource = EventSource;
const state = {
settings: { menuWidth: 15 },
containers: [{ id: "abc", name: "Test 1" }],
};
const getters = {
visibleContainers() {
return [
{ id: "abc", name: "Test 1" },
{ id: "xyz", name: "Test 2" },
];
visibleContainers(store) {
return store.containers;
},
activeContainers() {
return [];
},
};
const actions = {
FETCH_CONTAINERS: () => Promise.resolve(),
};
store = new Vuex.Store({
state,
getters,
actions,
});
});
test("has right title", async () => {
const wrapper = shallowMount(App, { stubs, store, localVue });
wrapper.vm.$store.state.containers = [
{ id: "abc", name: "Test 1" },
{ id: "xyz", name: "Test 2" },
];
await wrapper.vm.$nextTick();
expect(wrapper.vm.title).toContain("2 containers");
});

View File

@@ -8,17 +8,18 @@
</pane>
<pane min-size="10">
<splitpanes>
<pane class="has-min-height">
<pane class="has-min-height router-view">
<search></search>
<router-view></router-view>
</pane>
<pane v-for="other in activeContainers" :key="other.id" v-if="!isMobile">
<scrollable-view>
<template v-slot:header>
<container-title :value="other.name" closable @close="removeActiveContainer(other)"></container-title>
</template>
<log-viewer-with-source :id="other.id"></log-viewer-with-source>
</scrollable-view>
<log-container
:id="other.id"
show-title
scrollable
closable
@close="removeActiveContainer(other)"
></log-container>
</pane>
</splitpanes>
</pane>
@@ -41,26 +42,22 @@
import { mapActions, mapGetters, mapState } from "vuex";
import { Splitpanes, Pane } from "splitpanes";
import LogViewerWithSource from "./components/LogViewerWithSource";
import ScrollableView from "./components/ScrollableView";
import LogContainer from "./components/LogContainer";
import SideMenu from "./components/SideMenu";
import MobileMenu from "./components/MobileMenu";
import Search from "./components/Search";
import ContainerTitle from "./components/ContainerTitle";
import Icon from "./components/Icon";
export default {
name: "App",
components: {
Icon,
LogViewerWithSource,
SideMenu,
LogContainer,
MobileMenu,
ScrollableView,
Splitpanes,
Pane,
Search,
ContainerTitle,
},
data() {
return {
@@ -74,14 +71,13 @@ export default {
titleTemplate: "%s - Dozzle",
};
},
async created() {
await this.fetchContainerList();
this.title = `${this.visibleContainers.length} containers`;
},
mounted() {
if (this.hasSmallerScrollbars) {
document.documentElement.classList.add("has-custom-scrollbars");
}
if (this.hasLightTheme) {
document.documentElement.setAttribute("data-theme", "light");
}
this.menuWidth = this.settings.menuWidth;
},
watch: {
@@ -92,17 +88,29 @@ export default {
document.documentElement.classList.remove("has-custom-scrollbars");
}
},
hasLightTheme(newValue, oldValue) {
if (newValue) {
document.documentElement.setAttribute("data-theme", "light");
} else {
document.documentElement.removeAttribute("data-theme");
}
},
visibleContainers() {
this.title = `${this.visibleContainers.length} containers`;
},
},
computed: {
...mapState(["activeContainers", "isMobile", "settings"]),
...mapGetters(["visibleContainers"]),
...mapState(["isMobile", "settings"]),
...mapGetters(["visibleContainers", "activeContainers"]),
hasSmallerScrollbars() {
return this.settings.smallerScrollbars;
},
hasLightTheme() {
return this.settings.lightTheme;
},
},
methods: {
...mapActions({
fetchContainerList: "FETCH_CONTAINERS",
removeActiveContainer: "REMOVE_ACTIVE_CONTAINER",
updateSetting: "UPDATE_SETTING",
}),
@@ -119,9 +127,15 @@ export default {
<style scoped lang="scss">
::v-deep .splitpanes--vertical > .splitpanes__splitter {
min-width: 3px;
background: #666;
background: var(--border-color);
&:hover {
background: rgb(255, 221, 87);
background: var(--border-hover-color);
}
}
@media screen and (max-width: 768px) {
.router-view {
padding-top: 75px;
}
}

View File

@@ -25,7 +25,7 @@ exports[`<App /> renders correctly 1`] = `
pushotherpanes="true"
>
<pane-stub
class="has-min-height"
class="has-min-height router-view"
maxsize="100"
minsize="0"
>

View File

@@ -0,0 +1,40 @@
<template>
<div class="is-size-7 is-uppercase columns is-marginless is-mobile">
<div class="column is-narrow has-text-weight-bold">
{{ state }}
</div>
<div class="column is-narrow" v-if="stat.memoryUsage !== null">
<span class="has-text-weight-light">mem</span>
<span class="has-text-weight-bold">
{{ formatBytes(stat.memoryUsage) }}
</span>
</div>
<div class="column is-narrow" v-if="stat.cpu !== null">
<span class="has-text-weight-light">load</span>
<span class="has-text-weight-bold"> {{ stat.cpu }}% </span>
</div>
</div>
</template>
<script>
export default {
props: {
stat: Object,
state: String,
},
name: "ContainerStat",
methods: {
formatBytes(bytes, decimals = 2) {
if (bytes === 0) return "0 Bytes";
const k = 1024;
const dm = decimals < 0 ? 0 : decimals;
const sizes = ["Bytes", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"];
const i = Math.floor(Math.log(bytes) / Math.log(k));
return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + " " + sizes[i];
},
},
};
</script>
<style lang="scss" scoped></style>

View File

@@ -1,9 +1,6 @@
<template>
<div class="name columns is-marginless">
<div class="columns is-marginless has-text-weight-bold is-family-monospace">
<span class="column">{{ value }}</span>
<span class="column is-narrow" v-if="closable">
<button class="delete is-medium" @click="$emit('close')"></button>
</span>
</div>
</template>
@@ -11,20 +8,9 @@
export default {
props: {
value: String,
closable: {
type: Boolean,
default: false,
},
},
name: "ContainerTitle",
};
</script>
<style lang="scss" scoped>
.name {
border-bottom: 1px solid rgba(255, 255, 255, 0.05);
background: rgba(0, 0, 0, 0.1);
font-weight: bold;
font-family: monospace;
}
</style>
<style lang="scss" scoped></style>

View File

@@ -1,5 +1,11 @@
<template>
<div ref="observer" class="control" :class="{ 'is-loading': isLoading }"></div>
<div ref="observer" class="infinte-loader">
<div class="spinner" v-show="isLoading">
<div class="bounce1"></div>
<div class="bounce2"></div>
<div class="bounce3"></div>
</div>
</div>
</template>
<script>
@@ -36,4 +42,40 @@ export default {
},
};
</script>
<style scoped lang="scss"></style>
<style scoped lang="scss">
.infinte-loader {
min-height: 1px;
}
.spinner {
margin: 10px auto 0;
width: 70px;
text-align: center;
& > div {
width: 12px;
height: 12px;
background-color: var(--primary-color);
border-radius: 100%;
display: inline-block;
animation: sk-bouncedelay 0.8s infinite ease-in-out both;
}
& .bounce1 {
animation-delay: -0.32s;
}
& .bounce2 {
animation-delay: -0.16s;
}
}
@keyframes sk-bouncedelay {
0%,
80%,
100% {
transform: scale(0);
}
40% {
transform: scale(1);
}
}
</style>

View File

@@ -0,0 +1,76 @@
<template>
<scrollable-view :scrollable="scrollable" v-if="container">
<template v-slot:header v-if="showTitle">
<div class="columns is-vcentered pr-4">
<div class="column is-narrow">
<container-title :value="container.name" @close="$emit('close')"></container-title>
</div>
<div class="column is-clipped">
<container-stat :stat="container.stat" :state="container.state"></container-stat>
</div>
<div class="column is-narrow" v-if="closable">
<button class="delete is-medium" @click="$emit('close')"></button>
</div>
</div>
</template>
<template v-slot="{ setLoading }">
<log-viewer-with-source :id="id" @loading-more="setLoading($event)"></log-viewer-with-source>
</template>
</scrollable-view>
</template>
<script>
import { mapGetters } from "vuex";
import LogViewerWithSource from "./LogViewerWithSource";
import ScrollableView from "./ScrollableView";
import ContainerTitle from "./ContainerTitle";
import ContainerStat from "./ContainerStat";
export default {
props: {
id: {
type: String,
},
showTitle: {
type: Boolean,
default: false,
},
scrollable: {
type: Boolean,
default: false,
},
closable: {
type: Boolean,
default: false,
},
},
name: "LogContainer",
components: {
LogViewerWithSource,
ScrollableView,
ContainerTitle,
ContainerStat,
},
computed: {
...mapGetters(["allContainersById"]),
container() {
return this.allContainersById[this.id];
},
},
};
</script>
<style lang="scss" scoped>
button.delete {
background-color: var(--scheme-main-ter);
opacity: 0.6;
&:after,
&:before {
background-color: var(--text-color);
}
&:hover {
opacity: 1;
}
}
</style>

View File

@@ -25,44 +25,48 @@ export default {
created() {
this.es = null;
this.loadLogs(this.id);
this.flushBuffer = debounce(this.flushNow, 250, { maxWait: 1000 });
},
methods: {
loadLogs(id) {
if (this.es) {
this.es.close();
this.messages = [];
this.buffer = [];
this.es = null;
}
this.reset();
this.es = new EventSource(`${config.base}/api/logs/stream?id=${this.id}`);
this.es.addEventListener("container-stopped", (e) => {
this.es.close();
this.buffer.push({ event: "container-stopped", message: "Container stopped", date: new Date() });
flushNow();
this.flushBuffer();
this.flushBuffer.flush();
});
this.es.addEventListener("error", (e) => console.log("EventSource failed: " + JSON.stringify(e)));
const flushBuffer = debounce(() => flushNow(), 250, { maxWait: 1000 });
const flushNow = () => {
this.messages.push(...this.buffer);
this.buffer = [];
};
this.es.addEventListener("error", (e) => console.error("EventSource failed: " + JSON.stringify(e)));
this.es.onmessage = (e) => {
this.buffer.push(this.parseMessage(e.data));
flushBuffer();
this.flushBuffer();
};
this.$once("hook:beforeDestroy", () => this.es.close());
},
flushNow() {
this.messages.push(...this.buffer);
this.buffer = [];
},
reset() {
if (this.es) {
this.es.close();
this.es = null;
this.flushBuffer.cancel();
}
this.messages = [];
this.buffer = [];
},
async loadOlderLogs() {
if (this.messages.length < 300) return;
this.$emit("loading-more", true);
const to = this.messages[0].date;
const last = this.messages[299].date;
const delta = to - last;
const from = new Date(to.getTime() + delta);
const logs = await (
await fetch(`/api/logs?id=${this.id}&from=${from.toISOString()}&to=${to.toISOString()}`)
await fetch(`${config.base}/api/logs?id=${this.id}&from=${from.toISOString()}&to=${to.toISOString()}`)
).text();
if (logs) {
const newMessages = logs
@@ -71,6 +75,7 @@ export default {
.map((line) => this.parseMessage(line));
this.messages.unshift(...newMessages);
}
this.$emit("loading-more", false);
},
parseMessage(data) {
let i = data.indexOf(" ");

View File

@@ -91,6 +91,13 @@ export default {
.date {
background-color: #262626;
color: #258ccd;
[data-theme="light"] & {
background-color: #f0f0f0;
color: #009900;
padding-left: 5px;
padding-right: 5px;
}
}
.text {
@@ -103,8 +110,8 @@ li.event {
::v-deep mark {
border-radius: 2px;
background-color: #ffdd57;
animation: pops 0.2s ease-out;
background-color: var(--secondary-color);
animation: pops 200ms ease-out;
display: inline-block;
}

View File

@@ -1,5 +1,5 @@
<template>
<log-event-source :id="id" v-slot="eventSource">
<log-event-source :id="id" v-slot="eventSource" @loading-more="$emit('loading-more', $event)">
<log-viewer :messages="eventSource.messages"></log-viewer>
</log-event-source>
</template>

View File

@@ -1,14 +1,29 @@
<template>
<aside>
<a
role="button"
class="navbar-burger burger is-white is-hidden-tablet is-pulled-right"
@click="showNav = !showNav"
:class="{ 'is-active': showNav }"
>
<span></span> <span></span> <span></span>
</a>
<h1 class="title has-text-warning is-marginless">Dozzle</h1>
<div class="columns is-marginless is-gapless is-mobile is-vcentered">
<div class="column is-narrow">
<router-link :to="{ name: 'default' }">
<svg class="logo">
<use href="#logo"></use>
</svg>
</router-link>
</div>
<div class="column ml-4 is-family-monospace is-ellipsis" v-if="$route.name == 'container'">
{{ allContainersById[$route.params.id].name }}
</div>
<div class="column is-narrow push-right">
<a
role="button"
class="navbar-burger burger is-hidden-tablet is-pulled-right"
@click="showNav = !showNav"
:class="{ 'is-active': showNav }"
>
<span></span> <span></span> <span></span>
</a>
</div>
</div>
<p class="menu-label is-hidden-mobile" :class="{ 'is-active': showNav }">Containers</p>
<ul class="menu-list is-hidden-mobile" :class="{ 'is-active': showNav }">
<li v-for="item in visibleContainers" :key="item.id">
@@ -17,7 +32,7 @@
active-class="is-active"
:title="item.name"
>
<div class="hide-overflow">
<div class="is-ellipsis">
{{ item.name }}
</div>
</router-link>
@@ -38,7 +53,7 @@ export default {
};
},
computed: {
...mapGetters(["activeContainersById", "visibleContainers"]),
...mapGetters(["visibleContainers", "allContainersById"]),
},
watch: {
$route(to, from) {
@@ -54,7 +69,7 @@ aside {
top: 0;
left: 0;
right: 0;
background: #222;
background: var(--scheme-main-ter);
z-index: 2;
max-height: 100vh;
overflow: auto;
@@ -62,14 +77,13 @@ aside {
.menu-label {
margin-top: 1em;
}
.hide-overflow {
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
.title {
text-shadow: 0px 1px 1px rgba(0, 0, 0, 0.2);
}
.burger.is-white {
color: #fff;
.burger {
color: var(--body-color);
}
.is-hidden-mobile.is-active {
@@ -79,5 +93,15 @@ aside {
.navbar-burger {
height: 2.35rem;
}
.logo {
width: 82px;
height: 36px;
fill: var(--logo-color);
}
.column.push-right {
margin-left: auto;
}
}
</style>

View File

@@ -0,0 +1,39 @@
<template>
<time :datetime="date.toISOString()">{{ text }}</time>
</template>
<script>
import formatDistance from "date-fns/formatDistance";
export default {
props: {
date: {
required: true,
type: Date,
},
},
data() {
return {
text: "",
interval: null,
};
},
name: "PastTime",
mounted() {
this.updateFromNow();
this.interval = setInterval(() => this.updateFromNow(), 30000);
},
destroyed() {
clearInterval(this.interval);
},
methods: {
updateFromNow() {
this.text = formatDistance(this.date, new Date(), {
addSuffix: true,
});
},
},
};
</script>
<style scoped lang="scss"></style>

View File

@@ -0,0 +1,146 @@
<template>
<div class="scroll-progress">
<svg width="100" height="100" viewBox="0 0 100 100" :class="{ indeterminate }">
<circle r="44" cx="50" cy="50" :style="{ '--progress': scrollProgress }" />
</svg>
<div class="is-overlay columns is-vcentered is-centered has-text-weight-light">
<template v-if="indeterminate">
<div class="column is-narrow is-paddingless is-size-2">&#8734;</div>
</template>
<template v-else>
<span class="column is-narrow is-paddingless is-size-2">
{{ Math.ceil(scrollProgress * 100) }}
</span>
<span class="column is-narrow is-paddingless"> % </span>
</template>
</div>
</div>
</template>
<script>
import { mapGetters } from "vuex";
import throttle from "lodash.throttle";
export default {
name: "ScrollProgress",
props: {
indeterminate: {
default: false,
type: Boolean,
},
autoHide: {
default: true,
type: Boolean,
},
},
data() {
return {
scrollProgress: 0,
animation: { cancel: () => {} },
parentElement: document,
};
},
created() {
this.onScrollThrottled = throttle(this.onScroll, 150);
},
mounted() {
this.attachEvents();
this.$once("hook:beforeDestroy", this.detachEvents);
},
watch: {
activeContainers() {
this.detachEvents();
this.attachEvents();
},
indeterminate() {
this.$nextTick(() => this.onScroll());
},
},
computed: {
...mapGetters(["activeContainers"]),
},
methods: {
attachEvents() {
this.parentElement = this.$el.closest("[data-scrolling]") || document;
this.parentElement.addEventListener("scroll", this.onScrollThrottled);
},
detachEvents() {
this.parentElement.removeEventListener("scroll", this.onScrollThrottled);
},
onScroll() {
const p = this.parentElement == document ? document.documentElement : this.parentElement;
this.scrollProgress = p.scrollTop / (p.scrollHeight - p.clientHeight);
this.animation.cancel();
if (this.autoHide) {
this.animation = this.$el.animate(
{ opacity: [1, 0] },
{
duration: 500,
delay: 2000,
fill: "both",
easing: "ease-out",
}
);
}
},
},
};
</script>
<style scoped lang="scss">
.scroll-progress {
display: inline-block;
position: relative;
svg {
filter: drop-shadow(0px 1px 1px rgba(0, 0, 0, 0.2));
margin-top: 5px;
&.indeterminate {
animation: 2s linear infinite svg-animation;
circle {
animation: 1.4s ease-in-out infinite both circle-animation;
}
}
circle {
fill: var(--scheme-main-ter);
fill-opacity: 0.8;
transition: stroke-dashoffset 250ms ease-out;
transform: rotate(-90deg);
transform-origin: 50% 50%;
stroke: var(--primary-color);
stroke-dashoffset: calc(276.32px - var(--progress) * 276.32px);
stroke-dasharray: 276.32px 276.32px;
stroke-linecap: round;
stroke-width: 3;
will-change: stroke-dashoffset;
}
}
}
@keyframes svg-animation {
0% {
transform: rotateZ(0deg);
}
100% {
transform: rotateZ(360deg);
}
}
@keyframes circle-animation {
0%,
25% {
stroke-dashoffset: 275px;
transform: rotate(0);
}
50%,
75% {
stroke-dashoffset: 70px;
transform: rotate(45deg);
}
100% {
stroke-dashoffset: 275px;
transform: rotate(360deg);
}
}
</style>

View File

@@ -4,17 +4,16 @@
<slot name="header"></slot>
</header>
<main ref="content" :data-scrolling="scrollable">
<slot></slot>
<div ref="scrollObserver"></div>
<div class="is-scrollbar-progress is-hidden-mobile">
<scroll-progress v-show="paused" :indeterminate="loading" :auto-hide="!loading"></scroll-progress>
</div>
<slot :setLoading="setLoading"></slot>
<div ref="scrollObserver" class="is-scroll-observer"></div>
</main>
<div class="scroll-bar-notification">
<div class="is-scrollbar-notification">
<transition name="fade">
<button
class="button"
:class="hasMore ? 'is-warning' : 'is-primary'"
@click="scrollToBottom('instant')"
v-show="paused"
>
<button class="button" :class="hasMore ? 'has-more' : ''" @click="scrollToBottom('instant')" v-show="paused">
<icon name="download"></icon>
</button>
</transition>
@@ -24,6 +23,7 @@
<script>
import Icon from "./Icon";
import ScrollProgress from "./ScrollProgress";
export default {
props: {
@@ -34,12 +34,14 @@ export default {
},
components: {
Icon,
ScrollProgress,
},
name: "ScrollableView",
data() {
return {
paused: false,
hasMore: false,
loading: false,
};
},
mounted() {
@@ -48,7 +50,12 @@ export default {
if (!this.paused) {
this.scrollToBottom("instant");
} else {
this.hasMore = true;
const record = e[e.length - 1];
if (
record.target.children[record.target.children.length - 1] == record.addedNodes[record.addedNodes.length - 1]
) {
this.hasMore = true;
}
}
});
mutationObserver.observe(content, { childList: true, subtree: true });
@@ -67,6 +74,9 @@ export default {
this.$refs.scrollObserver.scrollIntoView({ behavior });
this.hasMore = false;
},
setLoading(loading) {
this.loading = loading;
},
},
};
</script>
@@ -75,8 +85,16 @@ section {
display: flex;
flex-direction: column;
header {
position: sticky;
top: 0;
background: var(--body-background-color);
border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}
&.is-full-height-scrollable {
height: 100vh;
min-height: 0;
}
main {
@@ -85,12 +103,55 @@ section {
scroll-snap-type: y proximity;
}
.scroll-bar-notification {
.is-scrollbar-progress {
text-align: right;
margin-right: 110px;
.scroll-progress {
position: fixed;
top: 60px;
z-index: 2;
}
}
.is-scroll-observer {
height: 1px;
}
.is-scrollbar-notification {
text-align: right;
margin-right: 65px;
button {
position: fixed;
bottom: 30px;
background-color: var(--secondary-color);
transition: background-color 1s ease-out;
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);
border: none !important;
color: #222;
&.has-more {
background-color: var(--primary-color);
animation-name: bounce;
animation-duration: 1000ms;
animation-fill-mode: both;
color: #fff;
}
}
}
@keyframes bounce {
0%,
20%,
50%,
80%,
100% {
transform: translateY(0);
}
40% {
transform: translateY(-30px);
}
60% {
transform: translateY(-15px);
}
}

View File

@@ -75,17 +75,36 @@ export default {
width: 350px;
position: fixed;
padding: 10px;
background: rgba(50, 50, 50, 0.9);
background: var(--scheme-main-ter);
top: 0;
right: 0;
border-radius: 0 0 0 5px;
z-index: 10;
}
.delete {
margin-left: 1em;
}
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);
.icon {
padding: 10px 3px;
button.delete {
margin-left: 1em;
background-color: var(--scheme-main-ter);
opacity: 0.6;
&:after,
&:before {
background-color: var(--text-color);
}
&:hover {
opacity: 1;
}
}
.icon {
padding: 10px 3px;
}
.input {
color: var(--body-color);
&::placeholder {
color: var(--border-color);
}
}
}
</style>

View File

@@ -1,10 +1,14 @@
<template>
<aside>
<div class="columns is-marginless">
<div class="column">
<h1 class="title has-text-warning is-marginless">Dozzle</h1>
<div class="column is-paddingless">
<router-link :to="{ name: 'default' }">
<svg class="logo">
<use href="#logo"></use>
</svg>
</router-link>
</div>
<div class="column is-narrow has-text-right is-hidden-mobile">
<div class="column is-narrow has-text-right x">
<router-link
:to="{ name: 'settings' }"
active-class="is-active"
@@ -24,7 +28,7 @@
active-class="is-active"
:title="item.name"
>
<div class="hide-overflow">
<div class="is-ellipsis">
<span
@click.stop.prevent="appendActiveContainer(item)"
class="icon is-small will-append-container"
@@ -55,8 +59,13 @@ export default {
return {};
},
computed: {
...mapState(["activeContainers"]),
...mapGetters(["activeContainersById", "visibleContainers"]),
...mapGetters(["visibleContainers", "activeContainers"]),
activeContainersById() {
return this.activeContainers.reduce((map, obj) => {
map[obj.id] = obj;
return map;
}, {});
},
},
methods: {
...mapActions({
@@ -73,16 +82,6 @@ aside {
position: fixed;
width: inherit;
.hide-overflow {
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
}
.burger.is-white {
color: #fff;
}
.is-hidden-mobile.is-active {
display: block !important;
}
@@ -92,11 +91,17 @@ li.exited a {
color: #777;
}
.logo {
width: 122px;
height: 54px;
fill: var(--logo-color);
}
.will-append-container.icon {
transition: transform 0.2s ease-out;
&.is-active {
pointer-events: none;
color: #00d1b2;
color: var(--primary-color);
}
.router-link-exact-active & {
visibility: hidden;

View File

@@ -3,8 +3,25 @@
exports[`<LogEventSource /> renders correctly 1`] = `
<div>
<div
class="control"
/>
class="infinte-loader"
>
<div
class="spinner"
style="display: none;"
>
<div
class="bounce1"
/>
<div
class="bounce2"
/>
<div
class="bounce3"
/>
</div>
</div>
<ul
class="events medium"

File diff suppressed because one or more lines are too long

View File

@@ -6,10 +6,7 @@ import Switch from "buefy/dist/esm/switch";
import store from "./store";
import config from "./store/config";
import App from "./App.vue";
import Container from "./pages/Container.vue";
import Settings from "./pages/Settings.vue";
import Index from "./pages/Index.vue";
import Show from "./pages/Show.vue";
import { Container, Settings, Index, Show, ContainerNotFound, PageNotFound } from "./pages";
Vue.use(VueRouter);
Vue.use(Meta);
@@ -28,6 +25,11 @@ const routes = [
name: "container",
props: true,
},
{
path: "/container/*",
component: ContainerNotFound,
name: "container-not-found",
},
{
path: "/settings",
component: Settings,
@@ -38,6 +40,11 @@ const routes = [
component: Show,
name: "show",
},
{
path: "/*",
component: PageNotFound,
name: "page-not-found",
},
];
const router = new VueRouter({

View File

@@ -1,26 +1,18 @@
<template>
<scrollable-view :scrollable="activeContainers.length > 0">
<template v-slot:header v-if="activeContainers.length > 0">
<container-title :value="allContainersById[id].name"></container-title>
</template>
<log-viewer-with-source :id="id"></log-viewer-with-source>
</scrollable-view>
<log-container :id="id" show-title :scrollable="activeContainers.length > 0"> </log-container>
</template>
<script>
import { mapActions, mapGetters, mapState } from "vuex";
import LogViewerWithSource from "../components/LogViewerWithSource";
import ScrollableView from "../components/ScrollableView";
import ContainerTitle from "../components/ContainerTitle";
import LogContainer from "../components/LogContainer";
import store from "../store";
export default {
props: ["id", "name"],
props: ["id"],
name: "Container",
components: {
LogViewerWithSource,
ScrollableView,
ContainerTitle,
LogContainer,
},
data() {
return {
@@ -38,8 +30,7 @@ export default {
}
},
computed: {
...mapState(["activeContainers"]),
...mapGetters(["allContainersById"]),
...mapGetters(["allContainersById", "activeContainers"]),
},
watch: {
id() {

View File

@@ -0,0 +1,18 @@
<template>
<div class="hero is-halfheight">
<div class="hero-body">
<div class="container has-text-centered">
<h1 class="title">
Container not found.
<small class="subtitle">It may have been removed.</small>
</h1>
</div>
</div>
</div>
</template>
<script>
export default {
name: "ContainerNotFound",
};
</script>

View File

@@ -1,9 +0,0 @@
import { shallowMount } from "@vue/test-utils";
import Index from "./Index";
describe("<Index />", () => {
test("renders correctly", () => {
const wrapper = shallowMount(Index);
expect(wrapper.element).toMatchSnapshot();
});
});

View File

@@ -1,22 +1,149 @@
<template>
<div class="hero is-fullheight is-dark">
<div class="hero-body">
<div class="container has-text-centered">
<h1 class="title">Please choose a container from the list to view the logs</h1>
<div>
<section class="hero is-small mt-4">
<div class="hero-body">
<div class="container">
<h1 class="title">Hello, there!</h1>
</div>
</div>
</div>
</section>
<section class="level section is-mobile">
<div class="level-item has-text-centered">
<div>
<p class="title">{{ containers.length }}</p>
<p class="heading">Total Containers</p>
</div>
</div>
<div class="level-item has-text-centered">
<div>
<p class="title">{{ runningContainers.length }}</p>
<p class="heading">Running</p>
</div>
</div>
<div class="level-item has-text-centered">
<div>
<p class="title">{{ version }}</p>
<p class="heading">Dozzle Version</p>
</div>
</div>
</section>
<section class="columns is-centered section">
<div class="column is-4">
<div class="panel">
<p class="panel-heading">Containers</p>
<div class="panel-block">
<p class="control has-icons-left">
<input
class="input"
type="text"
placeholder="Search Containers"
v-model="search"
@keyup.esc="search = null"
@keyup.enter="onEnter()"
/>
<span class="icon is-left">
<icon name="search"></icon>
</span>
</p>
</div>
<p class="panel-tabs" v-if="!search">
<a :class="{ 'is-active': sort === 'running' }" @click="sort = 'running'">Running</a>
<a :class="{ 'is-active': sort === 'all' }" @click="sort = 'all'">All</a>
</p>
<router-link
:to="{ name: 'container', params: { id: item.id, name: item.name } }"
v-for="item in results.slice(0, 10)"
:key="item.id"
class="panel-block"
>
<span class="name">{{ item.name }}</span>
<div class="subtitle is-7 status">
<past-time :date="new Date(item.created * 1000)"></past-time>
</div>
</router-link>
</div>
</div>
</section>
</div>
</template>
<script>
import { mapActions, mapGetters, mapState } from "vuex";
import Icon from "../components/Icon";
import PastTime from "../components/PastTime";
import config from "../store/config";
export default {
props: [],
name: "Default",
name: "Index",
components: { Icon, PastTime },
data() {
return {
version: config.version,
search: null,
sort: "running",
};
},
methods: {
onEnter() {
if (this.results.length == 1) {
const [item] = this.results;
this.$router.push({ name: "container", params: { id: item.id, name: item.name } });
}
},
},
computed: {
...mapState(["containers"]),
mostRecentContainers() {
return [...this.containers].sort((a, b) => b.created - a.created);
},
runningContainers() {
return this.mostRecentContainers.filter((c) => c.state === "running");
},
allContainers() {
return this.containers;
},
results() {
if (this.search) {
const term = this.search.toLowerCase();
return this.allContainers.filter((c) => c.name.toLowerCase().includes(term));
}
switch (this.sort) {
case "all":
return this.mostRecentContainers;
case "running":
return this.runningContainers;
default:
throw `Invalid sort order: ${this.sort}`;
}
},
},
};
</script>
<style scoped>
.hero.is-dark {
color: #ddd;
background-color: #111;
<style lang="scss" scoped>
.panel {
border: 1px solid var(--border-color);
.panel-block,
.panel-tabs {
border-color: var(--border-color);
.is-active {
border-color: var(--border-hover-color);
}
.name {
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
}
.status {
margin-left: auto;
white-space: nowrap;
}
}
}
.icon {
padding: 10px 3px;
}
</style>

View File

@@ -0,0 +1,18 @@
<template>
<div class="hero is-halfheight">
<div class="hero-body">
<div class="container has-text-centered">
<h1 class="title">
Oops,
<small class="subtitle">this page doesn't exist</small>
</h1>
</div>
</div>
</div>
</template>
<script>
export default {
name: "PageNotFound",
};
</script>

View File

@@ -46,30 +46,40 @@
</div>
<div class="item">
<h2 class="title is-6 is-marginless">Font size</h2>
Modify the font size when viewing logs.
<b-switch v-model="lightTheme">
Use light theme
</b-switch>
</div>
<b-dropdown v-model="size" aria-role="list" style="margin: -8px 10px 0;">
<button class="button is-primary" type="button" slot="trigger">
<span class="is-capitalized">{{ size }}</span>
<span class="icon"><icon name="chevron-down"></icon></span>
</button>
<b-dropdown-item
:value="value"
aria-role="listitem"
v-for="value in ['small', 'medium', 'large']"
:key="value"
>
<div class="media">
<span class="icon keep-size">
<icon name="check" v-if="value == size"></icon>
</span>
<div class="media-content">
<h3 class="is-capitalized">{{ value }}</h3>
</div>
</div>
</b-dropdown-item>
</b-dropdown>
<div class="item">
<div class="columns is-vcentered is-mobile is-variable is-2">
<div class="column is-narrow">
<b-dropdown v-model="size" aria-role="list">
<button class="button is-primary" type="button" slot="trigger">
<span class="is-capitalized">{{ size }}</span>
<span class="icon"><icon name="chevron-down"></icon></span>
</button>
<b-dropdown-item
:value="value"
aria-role="listitem"
v-for="value in ['small', 'medium', 'large']"
:key="value"
>
<div class="media">
<span class="icon keep-size">
<icon name="check" v-if="value == size"></icon>
</span>
<div class="media-content">
<h3 class="is-capitalized">{{ value }}</h3>
</div>
</div>
</b-dropdown-item>
</b-dropdown>
</div>
<div class="column">
Font size to use for logs
</div>
</div>
</div>
</section>
</div>
@@ -97,7 +107,11 @@ export default {
},
async created() {
const releases = await (await fetch("https://api.github.com/repos/amir20/dozzle/releases")).json();
this.hasUpdate = gt(releases[0].tag_name, this.currentVersion);
if (this.currentVersion !== "dev") {
this.hasUpdate = gt(releases[0].tag_name, this.currentVersion);
} else {
this.hasUpdate = true;
}
this.nextRelease = releases[0];
},
metaInfo() {
@@ -112,29 +126,30 @@ export default {
},
computed: {
...mapState(["settings"]),
...["search", "size", "smallerScrollbars", "showTimestamp", "showAllContainers"].reduce((map, name) => {
map[name] = {
get() {
return this.settings[name];
},
set(value) {
this.updateSetting({ [name]: value });
},
};
return map;
}, {}),
...["search", "size", "smallerScrollbars", "showTimestamp", "showAllContainers", "lightTheme"].reduce(
(map, name) => {
map[name] = {
get() {
return this.settings[name];
},
set(value) {
this.updateSetting({ [name]: value });
},
};
return map;
},
{}
),
},
};
</script>
<style lang="scss" scoped>
.title {
color: #eee;
color: var(--title-color);
}
a.next-release {
text-decoration: underline;
color: #00d1b2;
&:hover {
text-decoration: none;
}
@@ -145,7 +160,7 @@ a.next-release {
}
.has-underline {
border-bottom: 1px solid #fff;
border-bottom: 1px solid var(--border-color);
padding: 1em 0px;
margin-bottom: 1em;
}

View File

@@ -1,21 +0,0 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`<Index /> renders correctly 1`] = `
<div
class="hero is-fullheight is-dark"
>
<div
class="hero-body"
>
<div
class="container has-text-centered"
>
<h1
class="title"
>
Please choose a container from the list to view the logs
</h1>
</div>
</div>
</div>
`;

6
assets/pages/index.js Normal file
View File

@@ -0,0 +1,6 @@
export { default as Index } from "./Index.vue";
export { default as ContainerNotFound } from "./ContainerNotFound.vue";
export { default as Show } from "./Show.vue";
export { default as Container } from "./Container.vue";
export { default as Settings } from "./Settings.vue";
export { default as PageNotFound } from "./PageNotFound.vue";

View File

@@ -1,2 +1,9 @@
const config = JSON.parse(document.querySelector("script#config__json").textContent);
if (config.version == "{{ .Version }}") {
config.version = "dev";
config.base = "";
} else {
config.version = config.version.replace(/^v/, "");
}
export default config;

View File

@@ -12,7 +12,7 @@ storage.set(DOZZLE_SETTINGS_KEY, { ...DEFAULT_SETTINGS, ...storage.get(DOZZLE_SE
const state = {
containers: [],
activeContainers: [],
activeContainerIds: [],
searchFilter: null,
isMobile: mql.matches,
settings: storage.get(DOZZLE_SETTINGS_KEY),
@@ -20,13 +20,26 @@ const state = {
const mutations = {
SET_CONTAINERS(state, containers) {
const containersById = state.containers.reduce((map, obj) => {
map[obj.id] = obj;
return map;
}, {});
containers.forEach(
(container) =>
(container.stat =
containersById[container.id] && containersById[container.id].stat
? containersById[container.id].stat
: { memoryUsage: 0, cpu: 0 })
);
state.containers = containers;
},
ADD_ACTIVE_CONTAINERS(state, container) {
state.activeContainers.push(container);
ADD_ACTIVE_CONTAINERS(state, { id }) {
state.activeContainerIds.push(id);
},
REMOVE_ACTIVE_CONTAINER(state, container) {
state.activeContainers.splice(state.activeContainers.indexOf(container), 1);
REMOVE_ACTIVE_CONTAINER(state, { id }) {
state.activeContainerIds.splice(state.activeContainerIds.indexOf(id), 1);
},
SET_SEARCH(state, filter) {
state.searchFilter = filter;
@@ -38,6 +51,9 @@ const mutations = {
state.settings = { ...state.settings, ...newValues };
storage.set(DOZZLE_SETTINGS_KEY, state.settings);
},
UPDATE_STAT(state, { container, stat }) {
Vue.set(container, "stat", stat);
},
};
const actions = {
@@ -50,21 +66,18 @@ const actions = {
SET_SEARCH({ commit }, filter) {
commit("SET_SEARCH", filter);
},
async FETCH_CONTAINERS({ commit }) {
const containers = await (await fetch(`${config.base}/api/containers.json`)).json();
commit("SET_CONTAINERS", containers);
},
UPDATE_SETTING({ commit }, setting) {
commit("UPDATE_SETTINGS", setting);
},
UPDATE_STATS({ commit, getters }, stat) {
const { allContainersById } = getters;
const container = allContainersById[stat.id];
if (container) {
commit("UPDATE_STAT", { container, stat });
}
},
};
const getters = {
activeContainersById({ activeContainers }) {
return activeContainers.reduce((map, obj) => {
map[obj.id] = obj;
return map;
}, {});
},
allContainersById({ containers }) {
return containers.reduce((map, obj) => {
map[obj.id] = obj;
@@ -75,10 +88,15 @@ const getters = {
const filter = showAllContainers ? () => true : (c) => c.state === "running";
return containers.filter(filter);
},
activeContainers({ activeContainerIds }, { allContainersById }) {
return activeContainerIds.map((id) => allContainersById[id]);
},
};
const es = new EventSource(`${config.base}/api/events/stream`);
es.addEventListener("containers-changed", (e) => setTimeout(() => store.dispatch("FETCH_CONTAINERS"), 1000), false);
es.addEventListener("containers-changed", (e) => store.commit("SET_CONTAINERS", JSON.parse(e.data)), false);
es.addEventListener("container-stat", (e) => store.dispatch("UPDATE_STATS", JSON.parse(e.data)), false);
mql.addListener((e) => store.commit("SET_MOBILE_WIDTH", e.matches));
const store = new Vuex.Store({

View File

@@ -6,4 +6,5 @@ export const DEFAULT_SETTINGS = {
smallerScrollbars: false,
showTimestamp: true,
showAllContainers: false,
lightTheme: false
};

View File

@@ -1,7 +1,29 @@
@charset "utf-8";
@import "~bulma/sass/utilities/initial-variables.sass";
$menu-item-active-background-color: hsl(171, 100%, 41%);
$menu-item-color: hsl(0, 6%, 87%);
$body-family: "Roboto", sans-serif;
$body-background-color: var(--body-background-color);
$scheme-main: var(--scheme-main);
$scheme-main-bis: var(--scheme-main-bis);
$scheme-main-ter: var(--scheme-main-ter);
$border: var(--border-color);
$border-hover: var(--border-hover-color);
$menu-item-active-background-color: var(--menu-item-active-background-color);
$menu-item-color: var(--menu-item-color);
$menu-item-hover-background-color: var(--menu-item-hover-background-color);
$menu-item-hover-color: var(--menu-item-hover-color);
$text-strong: var(--text-strong-color);
$text: var(--text-color);
$panel-heading-background-color: var(--panel-heading-background-color);
$panel-heading-color: var(--panel-heading-color);
$link: $turquoise;
$link-active: $grey-dark;
@import "~bulma";
@import "../node_modules/splitpanes/dist/splitpanes.css";
@@ -9,20 +31,62 @@ $menu-item-color: hsl(0, 6%, 87%);
@import "~buefy/src/scss/components/_dropdown";
@import "~buefy/src/scss/components/_switch";
html {
--scheme-main: #{$black};
--scheme-main-bis: #{$black-bis};
--scheme-main-ter: #{$black-ter};
--border-color: #{$grey-darker};
--border-hover-color: var(--secondary-color);
--logo-color: var(--secondary-color);
--primary-color: #{$turquoise};
--secondary-color: #{$yellow};
--body-background-color: #{$black-bis};
--menu-item-active-background-color: var(--primary-color);
--menu-item-color: hsl(0, 6%, 87%);
--menu-item-hover-background-color: #{$white-ter};
--menu-item-hover-color: #{$black-ter};
--panel-heading-background-color: var(--secondary-color);
--panel-heading-color: var(--scheme-main-bis);
--text-strong-color: #{$grey-lightest};
--text-color: #{$grey-lighter};
}
[data-theme="light"] {
--scheme-main: #{$white};
--scheme-main-bis: #{$white-bis};
--scheme-main-ter: #{$white-ter};
--border-color: #{$grey-lighter};
--border-hover-color: var(--secondary-color);
--logo-color: #{$grey-darker};
--primary-color: #{$turquoise};
--secondary-color: #d8f0ca;
--body-background-color: #{$white-bis};
--body-color: #{$grey-darker};
--menu-item-color: #{$grey-dark};
--menu-item-hover-background-color: #eee8e7;
--menu-item-hover-color: #{black-ter};
--panel-heading-background-color: var(--secondary-color);
--panel-heading-color: var(--text-strong-color);
--text-strong-color: #{$grey-dark};
--text-color: #{$grey-darker};
}
html {
overflow-x: unset;
overflow-y: unset;
scroll-snap-type: y proximity;
background-color: #111;
}
body {
font-family: "Roboto", sans-serif;
color: #ddd;
}
h1.title {
font-family: "Gafata", sans-serif;
}
html.has-custom-scrollbars {
@@ -60,7 +124,7 @@ html.has-custom-scrollbars {
color: #fff;
border-color: transparent;
&:hover {
border-color: rgb(255, 221, 87) !important;
border-color: var(--border-hover-color) !important;
background: rgba(0, 0, 0, 0.8) !important;
color: #fff !important;
}
@@ -71,3 +135,13 @@ html.has-custom-scrollbars {
border-color: transparent;
}
}
.splitpanes__pane {
overflow: unset;
}
.is-ellipsis {
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
}

View File

@@ -5,6 +5,7 @@ import (
"bytes"
"context"
"encoding/binary"
"encoding/json"
"fmt"
"io"
"sort"
@@ -29,6 +30,7 @@ type dockerProxy interface {
ContainerLogs(context.Context, string, types.ContainerLogsOptions) (io.ReadCloser, error)
Events(context.Context, types.EventsOptions) (<-chan events.Message, <-chan error)
ContainerInspect(ctx context.Context, containerID string) (types.ContainerJSON, error)
ContainerStats(ctx context.Context, containerID string, stream bool) (types.ContainerStats, error)
}
// Client is a proxy around the docker client
@@ -38,6 +40,7 @@ type Client interface {
ContainerLogs(context.Context, string, int, string) (<-chan string, <-chan error)
Events(context.Context) (<-chan events.Message, <-chan error)
ContainerLogsBetweenDates(context.Context, string, time.Time, time.Time) ([]string, error)
ContainerStats(context.Context, string, chan<- ContainerStat) error
}
// NewClient creates a new instance of Client
@@ -95,9 +98,8 @@ func (d *dockerClient) ListContainers() ([]Container, error) {
return nil, err
}
var containers []Container
var containers = make([]Container, 0, len(list))
for _, c := range list {
container := Container{
ID: c.ID[:12],
Names: c.Names,
@@ -116,10 +118,6 @@ func (d *dockerClient) ListContainers() ([]Container, error) {
return strings.ToLower(containers[i].Name) < strings.ToLower(containers[j].Name)
})
if containers == nil {
containers = []Container{}
}
return containers, nil
}
@@ -151,6 +149,48 @@ func logReader(reader io.ReadCloser, tty bool) func() (string, error) {
}
}
func (d *dockerClient) ContainerStats(ctx context.Context, id string, stats chan<- ContainerStat) error {
response, err := d.cli.ContainerStats(ctx, id, true)
if err != nil {
return err
}
go func() {
defer response.Body.Close()
decoder := json.NewDecoder(response.Body)
var v *types.StatsJSON
for {
if err := decoder.Decode(&v); err != nil {
if err == context.Canceled || err == io.EOF {
log.Debugf("stopping stats streaming for container %s", id)
break
}
log.Errorf("decoder for stats api returned an unknown error %v", err)
}
var (
cpuDelta = float64(v.CPUStats.CPUUsage.TotalUsage) - float64(v.PreCPUStats.CPUUsage.TotalUsage)
systemDelta = float64(v.CPUStats.SystemUsage) - float64(v.PreCPUStats.SystemUsage)
cpuPercent = int64((cpuDelta / systemDelta) * float64(len(v.CPUStats.CPUUsage.PercpuUsage)) * 100)
memUsage = int64(v.MemoryStats.Usage - v.MemoryStats.Stats["cache"])
memPercent = int64(float64(memUsage) / float64(v.MemoryStats.Limit) * 100)
)
if cpuPercent > 0 || memUsage > 0 {
stats <- ContainerStat{
ID: id,
CPUPercent: cpuPercent,
MemoryPercent: memPercent,
MemoryUsage: memUsage,
}
}
}
}()
return nil
}
func (d *dockerClient) ContainerLogs(ctx context.Context, id string, tailSize int, since string) (<-chan string, <-chan error) {
log.WithField("id", id).WithField("since", since).Debug("Streaming logs for container")

View File

@@ -40,6 +40,7 @@ func (m *mockedProxy) ContainerLogs(ctx context.Context, id string, options type
}
return reader, args.Error(1)
}
func (m *mockedProxy) ContainerInspect(ctx context.Context, containerID string) (types.ContainerJSON, error) {
args := m.Called(ctx, containerID)
json, ok := args.Get(0).(types.ContainerJSON)
@@ -50,6 +51,10 @@ func (m *mockedProxy) ContainerInspect(ctx context.Context, containerID string)
return json, args.Error(1)
}
func (m *mockedProxy) ContainerStats(ctx context.Context, containerID string, stream bool) (types.ContainerStats, error) {
return types.ContainerStats{}, nil
}
func Test_dockerClient_ListContainers_null(t *testing.T) {
proxy := new(mockedProxy)
proxy.On("ContainerList", mock.Anything, mock.Anything).Return(nil, nil)

View File

@@ -12,3 +12,11 @@ type Container struct {
State string `json:"state"`
Status string `json:"status"`
}
// ContainerStat represent stats instant for a container
type ContainerStat struct {
ID string `json:"id"`
CPUPercent int64 `json:"cpu"`
MemoryPercent int64 `json:"memory"`
MemoryUsage int64 `json:"memoryUsage"`
}

33
go.mod
View File

@@ -14,40 +14,41 @@ require (
github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78 // indirect
github.com/Microsoft/go-winio v0.4.14 // indirect
github.com/beme/abide v0.0.0-20190723115211-635a09831760
github.com/containerd/containerd v1.3.3 // indirect
github.com/containerd/containerd v1.4.0 // indirect
github.com/docker/distribution v2.7.1+incompatible // indirect
github.com/docker/docker v0.0.0-20190827232753-32688a47f341
github.com/docker/go-connections v0.4.0 // indirect
github.com/docker/go-units v0.4.0 // indirect
github.com/fsnotify/fsnotify v1.4.9 // indirect
github.com/gobuffalo/envy v1.9.0 // indirect
github.com/gobuffalo/packd v1.0.0 // indirect
github.com/gobuffalo/packr v1.30.1
github.com/gogo/protobuf v1.3.1 // indirect
github.com/golang/protobuf v1.3.4 // indirect
github.com/google/go-cmp v0.3.1 // indirect
github.com/gorilla/mux v1.7.4
github.com/magiconair/properties v1.8.1
github.com/golang/protobuf v1.4.2 // indirect
github.com/gorilla/mux v1.8.0
github.com/magiconair/properties v1.8.2
github.com/mitchellh/mapstructure v1.3.3 // indirect
github.com/morikuni/aec v0.0.0-20170113033406-39771216ff4c // indirect
github.com/opencontainers/go-digest v1.0.0-rc1 // indirect
github.com/opencontainers/go-digest v1.0.0 // indirect
github.com/opencontainers/image-spec v1.0.1 // indirect
github.com/pelletier/go-toml v1.6.0 // indirect
github.com/pelletier/go-toml v1.8.0 // indirect
github.com/pkg/errors v0.9.1 // indirect
github.com/rogpeppe/go-internal v1.5.2 // indirect
github.com/rogpeppe/go-internal v1.6.2 // indirect
github.com/sergi/go-diff v1.0.0 // indirect
github.com/sirupsen/logrus v1.6.0
github.com/spf13/afero v1.2.2 // indirect
github.com/spf13/afero v1.3.5 // indirect
github.com/spf13/cast v1.3.1 // indirect
github.com/spf13/jwalterweatherman v1.1.0 // indirect
github.com/spf13/pflag v1.0.5
github.com/spf13/viper v1.7.0
github.com/spf13/viper v1.7.1
github.com/stretchr/objx v0.2.0 // indirect
github.com/stretchr/testify v1.6.1
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b // indirect
golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae // indirect
google.golang.org/genproto v0.0.0-20200226201735-46b91f19d98c // indirect
google.golang.org/grpc v1.27.1 // indirect
gopkg.in/ini.v1 v1.52.0 // indirect
gopkg.in/yaml.v2 v2.2.8 // indirect
golang.org/x/net v0.0.0-20200904194848-62affa334b73 // indirect
golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f // indirect
google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d // indirect
google.golang.org/grpc v1.31.1
google.golang.org/protobuf v1.25.0 // indirect
gopkg.in/ini.v1 v1.61.0 // indirect
gotest.tools v2.2.0+incompatible // indirect
)

68
go.sum
View File

@@ -45,8 +45,11 @@ github.com/bugsnag/panicwrap v0.0.0-20151223152923-e2c28503fcd0/go.mod h1:D/8v3k
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
github.com/containerd/containerd v1.3.3 h1:LoIzb5y9x5l8VKAlyrbusNPXqBY0+kviRloxFUMFwKc=
github.com/containerd/containerd v1.3.3/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA=
github.com/containerd/containerd v1.4.0 h1:aWJB3lbDEaOxg1mkTBAINY2a+NsoKbAeRYefJPPRY+o=
github.com/containerd/containerd v1.4.0/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA=
github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk=
github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE=
github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE=
@@ -74,11 +77,15 @@ github.com/docker/go-metrics v0.0.0-20180209012529-399ea8c73916/go.mod h1:/u0gXw
github.com/docker/go-units v0.4.0 h1:3uh0PgVws3nIA0Q+MwDC8yjEPf9zjRfZZWXZYDct3Tw=
github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk=
github.com/docker/libtrust v0.0.0-20150114040149-fa567046d9b1/go.mod h1:cyGadeNEkKy96OOhEzfZl+yxihPEzKnqJwvfuSUqbZE=
github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I=
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4=
github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
github.com/garyburd/redigo v0.0.0-20150301180006-535138d7bcd7/go.mod h1:NR3MbYisc3/PwhQ00EMzDiPmrwpPxAn5GI05/YaO1SY=
github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
@@ -119,12 +126,22 @@ github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5y
github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw=
github.com/golang/protobuf v1.3.4 h1:87PNWwrRvUSnqS4dlcBU/ftvOIBep4sYuBLlh6rX2wk=
github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw=
github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8=
github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA=
github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs=
github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w=
github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0=
github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8=
github.com/golang/protobuf v1.4.2 h1:+Z5KGCizgyZCbGh1KZqA0fcLLkwbsjIzS4aV2v7wJX0=
github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
github.com/google/go-cmp v0.3.1 h1:Xye71clBPdm5HgqGwUkwhbynsUJZhDbS20FvLhQ2izg=
github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs=
github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
@@ -138,6 +155,8 @@ github.com/gorilla/handlers v0.0.0-20150720190736-60c7bfde3e33/go.mod h1:Qkdc/uu
github.com/gorilla/mux v1.7.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=
github.com/gorilla/mux v1.7.4 h1:VuZ8uybHlWmqV03+zRzdwKL4tUnIp1MAQtp1mIFE1bc=
github.com/gorilla/mux v1.7.4/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So=
github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI=
github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So=
github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=
github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs=
@@ -185,6 +204,7 @@ github.com/konsorten/go-windows-terminal-sequences v1.0.2 h1:DB17ag19krx9CFsz4o3
github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
github.com/konsorten/go-windows-terminal-sequences v1.0.3 h1:CE8S1cTafDpPvMhIxNJKvHsGVBgn1xWYf1NbHQhywc8=
github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg=
github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=
github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI=
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
@@ -194,6 +214,8 @@ github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4=
github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
github.com/magiconair/properties v1.8.2 h1:znVR8Q4g7/WlcvsxLBRWvo+vtFJUAbDn3w+Yak2xVMI=
github.com/magiconair/properties v1.8.2/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60=
github.com/marstr/guid v1.1.0/go.mod h1:74gB1z2wpxxInTG6yaqA7KrtM0NZ+RbrcqDvYHefzho=
github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU=
github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
@@ -208,6 +230,8 @@ github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0Qu
github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE=
github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
github.com/mitchellh/mapstructure v1.3.3 h1:SzB1nHZ2Xi+17FP0zVQBHIZqvwRN9408fJO8h+eeNA8=
github.com/mitchellh/mapstructure v1.3.3/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
github.com/mitchellh/osext v0.0.0-20151018003038-5e2d6d41470f/go.mod h1:OkQIRizQZAeMln+1tSwduZz7+Af5oFlKirV/MSYes2A=
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
@@ -221,6 +245,8 @@ github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn
github.com/opencontainers/go-digest v0.0.0-20170106003457-a6d0ee40d420/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s=
github.com/opencontainers/go-digest v1.0.0-rc1 h1:WzifXhOVOEOuFYOJAW6aQqW0TooG2iki3E3Ii+WN7gQ=
github.com/opencontainers/go-digest v1.0.0-rc1/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s=
github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U=
github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM=
github.com/opencontainers/image-spec v1.0.0/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0=
github.com/opencontainers/image-spec v1.0.1 h1:JMemWkRwHx4Zj+fVxWoMCFm/8sYGGrUVojFA6h/TRcI=
github.com/opencontainers/image-spec v1.0.1/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0=
@@ -229,12 +255,15 @@ github.com/pelletier/go-toml v1.2.0 h1:T5zMGML61Wp+FlcbWjRDT7yAxhJNAiPPLOFECq181
github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic=
github.com/pelletier/go-toml v1.6.0 h1:aetoXYr0Tv7xRU/V4B4IZJ2QcbtMUFoNb3ORp7TzIK4=
github.com/pelletier/go-toml v1.6.0/go.mod h1:5N711Q9dKgbdkxHL+MEfF31hpT7l0S0s/t2kKREewys=
github.com/pelletier/go-toml v1.8.0 h1:Keo9qb7iRJs2voHvunFtuuYFsbWeOBh8/P9v/kVMFtw=
github.com/pelletier/go-toml v1.8.0/go.mod h1:D6yutnOGMveHEPV7VQOuvI/gXY61bv+9bAOTRnLElKs=
github.com/pkg/errors v0.8.0 h1:WdK/asTD0HN+q6hsWO3/vpuAkAr+tw6aNJNDFFf0+qw=
github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I=
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZI=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI=
@@ -260,6 +289,8 @@ github.com/rogpeppe/go-internal v1.3.2 h1:XU784Pr0wdahMY2bYcyK6N1KuaRAdLtqD4qd8D
github.com/rogpeppe/go-internal v1.3.2/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc=
github.com/rogpeppe/go-internal v1.5.2 h1:qLvObTrvO/XRCqmkKxUlOBc48bI3efyDuAZe25QiF0w=
github.com/rogpeppe/go-internal v1.5.2/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc=
github.com/rogpeppe/go-internal v1.6.2 h1:aIihoIOHCiLZHxyoNQ+ABL4NKhFTgKLBdMLyEAh98m0=
github.com/rogpeppe/go-internal v1.6.2/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc=
github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g=
github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts=
github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0=
@@ -285,6 +316,8 @@ github.com/spf13/afero v1.1.2 h1:m8/z1t7/fwjysjQRYbP0RD+bUIF/8tJwPdEZsI83ACI=
github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ=
github.com/spf13/afero v1.2.2 h1:5jhuqJyZCZf2JRofRvN/nIFgIWNzPa3/Vz8mYylgbWc=
github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk=
github.com/spf13/afero v1.3.5 h1:AWZ/w4lcfxuh52NVL78p9Eh8j6r1mCTEGSRFBJyIHAE=
github.com/spf13/afero v1.3.5/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I=
github.com/spf13/cast v1.3.0 h1:oget//CVOEoFewqQxwr0Ej5yjygnqGkvggSE/gB35Q8=
github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=
github.com/spf13/cast v1.3.1 h1:nFm6S0SMdyzrzcmThSipiEubIDy8WEXKNZ0UOgiRpng=
@@ -305,6 +338,8 @@ github.com/spf13/viper v1.6.3 h1:pDDu1OyEDTKzpJwdq4TiuLyMsUgRa/BT5cn5O62NoHs=
github.com/spf13/viper v1.6.3/go.mod h1:jUMtyi0/lB5yZH/FjyGAoH7IMNrIhlBf6pXZmbMDvzw=
github.com/spf13/viper v1.7.0 h1:xVKxvI7ouOI5I+U9s2eeiUfMaWBVoXA3AWskkrqK0VM=
github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg=
github.com/spf13/viper v1.7.1 h1:pM5oEahlgWv/WnHXpgbKz7iLIxRf65tye2Ci+XFK5sk=
github.com/spf13/viper v1.7.1/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/objx v0.2.0 h1:Hbg2NidpLE8veEBkEZTL3CvlkUIVzuU9jDplZO54c48=
@@ -342,6 +377,8 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk
golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20190621222207-cc06ce4a13d4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
@@ -380,6 +417,8 @@ golang.org/x/net v0.0.0-20190619014844-b5b0513f8c1b/go.mod h1:z5CRVTTTmAJ677TzLL
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b h1:0mm1VjtFUOIlE1SbDlwjYaDxZVDP2S5ou6y0gSgXHu8=
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20200904194848-62affa334b73 h1:MXfv8rhZWmFeqX3GNZRsd6vOLoaCHjYEX3qkRo3YBUA=
golang.org/x/net v0.0.0-20200904194848-62affa334b73/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
@@ -408,12 +447,18 @@ golang.org/x/sys v0.0.0-20190515120540-06a5c4944438/go.mod h1:h1NjWce9XRLGQEsW7w
golang.org/x/sys v0.0.0-20190602015325-4c4f7f33c9ed/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae h1:/WDfKMnPU+m5M4xB+6x4kaepxRw6jWvR5iDRdvjHgy8=
golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f h1:Fqb3ao1hUmOR3GkUOg/Y+BadLwykBIzs5q8Ez2SbHyc=
golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs=
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k=
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4 h1:SvFZT6jyqRaOeXpc5h/JSfZenJ2O330aBsf7JfSUXmQ=
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
@@ -438,6 +483,7 @@ golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtn
golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191112195655-aa38f8e97acc/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
google.golang.org/api v0.0.0-20160322025152-9bf6e6e569ff/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0=
google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE=
google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M=
@@ -461,6 +507,9 @@ google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBr
google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
google.golang.org/genproto v0.0.0-20200226201735-46b91f19d98c h1:xFOdgVPpeowWAH0MJ5i0XMp+3yWiWamMtN/kx9xThIQ=
google.golang.org/genproto v0.0.0-20200226201735-46b91f19d98c/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo=
google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d h1:92D1fum1bJLKSdr11OJ+54YeCMCGYIygTA7R/YZxH5M=
google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/grpc v0.0.0-20160317175043-d3ddb4469d5a/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw=
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
@@ -468,9 +517,24 @@ google.golang.org/grpc v1.21.0 h1:G+97AoqBnmZIT91cLG/EkCoK9NSelj64P8bOHHNmGn0=
google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY=
google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
google.golang.org/grpc v1.27.1 h1:zvIju4sqAGvwKspUQOhwnpcqSbzi7/H6QomNNjTL4sk=
google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
google.golang.org/grpc v1.31.1 h1:SfXqXS5hkufcdZ/mHtYCh53P2b+92WQq/DZcKLgsFRs=
google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE=
google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo=
google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
google.golang.org/protobuf v1.24.0 h1:UhZDfRO8JRQru4/+LlLE0BRKGF8L+PICnvYZmx/fEGA=
google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4=
google.golang.org/protobuf v1.25.0 h1:Ejskq+SyPohKW+1uil0JJMtmHCgJPJ/qWTxr8qp+R4c=
google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20141024133853-64131543e789/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
@@ -481,6 +545,8 @@ gopkg.in/ini.v1 v1.51.0 h1:AQvPpx3LzTDM0AjnIRlVFwFFGC+npRopjZxLJj6gdno=
gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
gopkg.in/ini.v1 v1.52.0 h1:j+Lt/M1oPPejkniCg1TkWE2J3Eh1oZTsHSXzMTzUXn4=
gopkg.in/ini.v1 v1.52.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
gopkg.in/ini.v1 v1.61.0 h1:LBCdW4FmFYL4s/vDZD1RQYX7oAR6IjujCYgMdbHBR10=
gopkg.in/ini.v1 v1.61.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo=
gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74=
gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
@@ -490,6 +556,8 @@ gopkg.in/yaml.v2 v2.2.4 h1:/eiJrUcujPVeJ3xlSWaiNi3uSVmDGBK1pDHUHAnao1I=
gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10=
gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.3.0 h1:clyUAQHOM3G0M3f5vQj7LuJrETvjVot3Z5el9nffUtU=
gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
gotest.tools v2.2.0+incompatible h1:VsBPFP1AI068pPrMxtb/S8Zkgf9xEmTLJjfM+P5UIEo=

View File

@@ -0,0 +1 @@
node_modules

View File

@@ -1,8 +1,8 @@
FROM amir20/docker-alpine-puppeteer:edge
FROM amir20/docker-alpine-puppeteer:v1
COPY --chown=pptruser:pptruser package*.json yarn.lock /app/
RUN yarn
COPY package*.json yarn.lock /app/
RUN yarn
COPY --chown=pptruser:pptruser . /app/
COPY . /app/
CMD [ "yarn", "test"]
CMD ["yarn", "test"]

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

View File

@@ -0,0 +1,22 @@
const { removeTimes } = require("../utils");
const { CUSTOM_URL: URL } = process.env;
describe("Dozzle with custom base", () => {
beforeEach(async () => {
await page.goto(URL, { waitUntil: "networkidle2" });
});
it("renders full page on desktop", async () => {
await removeTimes(page);
const image = await page.screenshot({ fullPage: true });
expect(image).toMatchImageSnapshot();
});
it("and shows one container with correct title", async () => {
await removeTimes(page);
const menuTitle = await page.$eval("aside ul.menu-list li a", (e) => e.title);
expect(menuTitle).toEqual("custom_base");
});
});

View File

@@ -1,15 +1,17 @@
const puppeteer = require("puppeteer");
const { removeTimes } = require("../utils");
const iPhoneX = puppeteer.devices["iPhone X"];
const iPadLandscape = puppeteer.devices["iPad landscape"];
const { BASE } = process.env;
const { DEFAULT_URL: URL } = process.env;
describe("home page", () => {
beforeEach(async () => {
await page.goto(BASE, { waitUntil: "networkidle2" });
await page.goto(URL, { waitUntil: "networkidle2" });
});
it("renders full page on desktop", async () => {
await removeTimes(page);
const image = await page.screenshot({ fullPage: true });
expect(image).toMatchImageSnapshot();
@@ -17,6 +19,7 @@ describe("home page", () => {
it("renders ipad viewport", async () => {
await page.emulate(iPadLandscape);
await removeTimes(page);
const image = await page.screenshot();
expect(image).toMatchImageSnapshot();
@@ -24,6 +27,7 @@ describe("home page", () => {
it("renders iphone viewport", async () => {
await page.emulate(iPhoneX);
await removeTimes(page);
const image = await page.screenshot();
expect(image).toMatchImageSnapshot();
@@ -43,7 +47,7 @@ describe("home page", () => {
});
beforeEach(async () => {
await page.goto(BASE, { waitUntil: "networkidle2" });
await page.goto(URL, { waitUntil: "networkidle2" });
});
it("and shows one container with correct title", async () => {

View File

@@ -0,0 +1,41 @@
const puppeteer = require("puppeteer");
const { removeTimes } = require("../utils");
const iPhoneX = puppeteer.devices["iPhone X"];
const iPadLandscape = puppeteer.devices["iPad landscape"];
const { DEFAULT_URL: URL } = process.env;
describe("Dozzle with light mode", () => {
beforeAll(async () => {
await page.goto(URL + "/settings", { waitUntil: "networkidle2" });
await page.$$eval("label.switch", (elements) => {
elements.filter((e) => e.textContent.trim() === "Use light theme")[0].click();
});
});
beforeEach(async () => {
await page.goto(URL, { waitUntil: "networkidle2" });
});
it("renders full page on desktop", async () => {
await removeTimes(page);
const image = await page.screenshot({ fullPage: true });
expect(image).toMatchImageSnapshot();
});
it("renders ipad viewport", async () => {
await page.emulate(iPadLandscape);
await removeTimes(page);
const image = await page.screenshot();
expect(image).toMatchImageSnapshot();
});
it("renders iphone viewport", async () => {
await page.emulate(iPhoneX);
await removeTimes(page);
const image = await page.screenshot();
expect(image).toMatchImageSnapshot();
});
});

View File

@@ -1,5 +1,14 @@
version: "3.4"
services:
custom_base:
container_name: custom_base
volumes:
- /var/run/docker.sock:/var/run/docker.sock
environment:
- DOZZLE_FILTER=name=custom_base
- DOZZLE_BASE=/foobarbase
build:
context: ..
dozzle:
container_name: dozzle
volumes:
@@ -12,7 +21,11 @@ services:
build:
context: .
command: yarn test
volumes:
- ./__tests__:/app/__tests__
environment:
- BASE=http://dozzle:8080/
- DEFAULT_URL=http://dozzle:8080/
- CUSTOM_URL=http://custom_base:8080/foobarbase
depends_on:
- dozzle
- custom_base

View File

@@ -10,7 +10,7 @@
"dependencies": {
"jest": "^26.0.1",
"jest-image-snapshot": "^4.0.0",
"puppeteer": "^4.0.0"
"puppeteer": "^5.0.0"
},
"jest": {
"preset": "jest-puppeteer",

8
integration/utils.js Normal file
View File

@@ -0,0 +1,8 @@
async function removeTimes(page) {
await page.waitForSelector("time");
await page.evaluate(() => {
(document.querySelectorAll("time") || []).forEach((el) => el.remove());
});
}
module.exports = { removeTimes };

File diff suppressed because it is too large Load Diff

View File

@@ -70,32 +70,8 @@ func (m *MockedClient) Events(ctx context.Context) (<-chan events.Message, <-cha
return channel, err
}
func Test_handler_listContainers_happy(t *testing.T) {
req, err := http.NewRequest("GET", "/api/containers.json", nil)
require.NoError(t, err, "NewRequest should not return an error.")
rr := httptest.NewRecorder()
mockedClient := new(MockedClient)
containers := []docker.Container{
{
ID: "1234567890",
Status: "status",
State: "state",
Name: "test",
Created: 0,
Command: "command",
ImageID: "image_id",
Image: "image",
},
}
mockedClient.On("ListContainers", mock.Anything).Return(containers, nil)
h := handler{client: mockedClient}
handler := http.HandlerFunc(h.listContainers)
handler.ServeHTTP(rr, req)
abide.AssertHTTPResponse(t, t.Name(), rr.Result())
mockedClient.AssertExpectations(t)
func (m *MockedClient) ContainerStats(context.Context, string, chan<- docker.ContainerStat) error {
return nil
}
func Test_handler_streamLogs_happy(t *testing.T) {
@@ -232,6 +208,7 @@ func Test_handler_streamEvents_happy(t *testing.T) {
messages := make(chan events.Message)
errChannel := make(chan error)
mockedClient.On("Events", mock.Anything).Return(messages, errChannel)
mockedClient.On("ListContainers").Return([]docker.Container{}, nil)
go func() {
messages <- events.Message{
@@ -258,6 +235,7 @@ func Test_handler_streamEvents_error(t *testing.T) {
messages := make(chan events.Message)
errChannel := make(chan error)
mockedClient.On("Events", mock.Anything).Return(messages, errChannel)
mockedClient.On("ListContainers").Return([]docker.Container{}, nil)
go func() {
errChannel <- errors.New("fake error")
@@ -281,6 +259,7 @@ func Test_handler_streamEvents_error_request(t *testing.T) {
messages := make(chan events.Message)
errChannel := make(chan error)
mockedClient.On("Events", mock.Anything).Return(messages, errChannel)
mockedClient.On("ListContainers").Return([]docker.Container{}, nil)
ctx, cancel := context.WithCancel(context.Background())
req = req.WithContext(ctx)

View File

@@ -1,18 +1,20 @@
{
"name": "dozzle",
"version": "1.28.0",
"version": "3.0.0",
"description": "Realtime log viewer for docker containers. ",
"scripts": {
"prestart": "yarn clean",
"start": "npm-run-all -p watch:*",
"watch": "npm-run-all -p watch:*",
"watch:assets": "webpack --mode=development --watch",
"watch:server": "reflex -c .reflex",
"dev": "npm-run-all -p dev-server watch:server",
"dev-server": "webpack-dev-server --open",
"prebuild": "yarn clean",
"build": "yarn webpack --mode=production",
"clean": "rm -rf static/ a_main-packr.go",
"release": "release-it",
"test": "TZ=UTC jest",
"integration": "docker-compose -f integration/docker-compose.test.yml up --build --force-recreate integration"
"integration": "docker-compose -f integration/docker-compose.test.yml up --build --force-recreate --exit-code-from integration"
},
"repository": {
"type": "git",
@@ -26,52 +28,54 @@
"homepage": "https://github.com/amir20/dozzle#readme",
"dependencies": {
"ansi-to-html": "^0.6.14",
"buefy": "^0.8.20",
"buefy": "^0.9.3",
"bulma": "^0.9.0",
"date-fns": "^2.14.0",
"dompurify": "^2.0.11",
"date-fns": "^2.16.1",
"dompurify": "^2.0.15",
"hotkeys-js": "^3.8.1",
"lodash.debounce": "^4.0.8",
"lodash.throttle": "^4.1.1",
"semver": "^7.3.2",
"splitpanes": "^2.2.1",
"store": "^2.0.12",
"vue": "^2.6.11",
"vue": "^2.6.12",
"vue-meta": "^2.4.0",
"vue-router": "^3.3.4",
"vuex": "^3.4.0"
"vue-router": "^3.4.3",
"vuex": "^3.5.1"
},
"devDependencies": {
"@babel/core": "^7.10.2",
"@babel/plugin-transform-runtime": "^7.10.1",
"@vue/component-compiler-utils": "^3.1.2",
"@vue/test-utils": "^1.0.3",
"@babel/core": "^7.11.6",
"@babel/plugin-transform-runtime": "^7.11.5",
"@vue/component-compiler-utils": "^3.2.0",
"@vue/test-utils": "^1.0.5",
"babel-core": "^7.0.0-bridge.0",
"babel-jest": "^26.0.1",
"babel-jest": "^26.3.0",
"babel-preset-env": "^1.7.0",
"caniuse-lite": "^1.0.30001084",
"css-loader": "^3.6.0",
"caniuse-lite": "^1.0.30001124",
"css-loader": "^4.2.2",
"eventsourcemock": "^2.0.0",
"html-webpack-plugin": "^4.3.0",
"html-webpack-plugin": "^4.4.1",
"husky": "^4.2.5",
"jest": "^26.0.1",
"jest": "^26.4.2",
"jest-serializer-vue": "^2.0.2",
"lint-staged": "^10.2.11",
"mini-css-extract-plugin": "^0.9.0",
"lint-staged": "^10.3.0",
"mini-css-extract-plugin": "^0.11.0",
"npm-run-all": "^4.1.5",
"postcss-cssnext": "^3.1.0",
"postcss-import": "^12.0.1",
"postcss-loader": "^3.0.0",
"prettier": "^2.0.5",
"release-it": "^13.6.3",
"sass": "^1.26.8",
"sass-loader": "^8.0.2",
"prettier": "^2.1.1",
"release-it": "^14.0.2",
"sass": "^1.26.10",
"sass-loader": "^10.0.2",
"vue-hot-reload-api": "^2.3.4",
"vue-jest": "^3.0.5",
"vue-loader": "^15.9.2",
"vue-jest": "^3.0.6",
"vue-loader": "^15.9.3",
"vue-style-loader": "^4.1.2",
"vue-template-compiler": "^2.6.11",
"webpack": "^4.43.0",
"vue-template-compiler": "^2.6.12",
"webpack": "^4.44.1",
"webpack-cli": "^3.3.12",
"webpack-dev-server": "^3.11.0",
"webpack-pwa-manifest": "^4.2.0"
},
"husky": {

114
routes.go
View File

@@ -8,8 +8,10 @@ import (
"net/http"
"runtime"
"strings"
"sync"
"time"
"github.com/amir20/dozzle/docker"
"github.com/gorilla/mux"
log "github.com/sirupsen/logrus"
)
@@ -23,7 +25,6 @@ func createRoutes(base string, h *handler) *mux.Router {
}))
}
s := r.PathPrefix(base).Subrouter()
s.HandleFunc("/api/containers.json", h.listContainers)
s.HandleFunc("/api/logs/stream", h.streamLogs)
s.HandleFunc("/api/logs", h.fetchLogsBetweenDates)
s.HandleFunc("/api/events/stream", h.streamEvents)
@@ -69,19 +70,6 @@ func (h *handler) index(w http.ResponseWriter, req *http.Request) {
}
}
func (h *handler) listContainers(w http.ResponseWriter, r *http.Request) {
containers, err := h.client.ListContainers()
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
err = json.NewEncoder(w).Encode(containers)
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
}
func (h *handler) fetchLogsBetweenDates(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", "text/plain; charset=UTF-8")
@@ -126,6 +114,7 @@ Loop:
select {
case message, ok := <-messages:
if !ok {
fmt.Fprintf(w, "event: container-stopped\ndata: end of stream\n\n")
break Loop
}
fmt.Fprintf(w, "data: %s\n", message)
@@ -165,24 +154,65 @@ func (h *handler) streamEvents(w http.ResponseWriter, r *http.Request) {
w.Header().Set("X-Accel-Buffering", "no")
ctx := r.Context()
messages, err := h.client.Events(ctx)
stats := make(chan docker.ContainerStat)
runningContainers := map[string]docker.Container{}
if containers, err := h.client.ListContainers(); err == nil {
for _, c := range containers {
if c.State == "running" {
h.client.ContainerStats(ctx, c.ID, stats)
runningContainers[c.ID] = c
}
}
}
if err := sendContainersJSON(h.client, w); err != nil {
log.Errorf("Error while encoding containers to stream: %v", err)
}
f.Flush()
delayer := delayedFunc(time.Second)
Loop:
for {
select {
case stat := <-stats:
bytes, _ := json.Marshal(stat)
_, err := fmt.Fprintf(w, "event: container-stat\ndata: %s\n\n", string(bytes))
if err != nil {
log.Debugf("Error while writing to event stream: %v", err)
break
}
f.Flush()
case message, ok := <-messages:
if !ok {
break Loop
}
switch message.Action {
case "connect", "disconnect", "create", "destroy", "start", "stop":
case "start", "connect", "disconnect", "die":
log.Debugf("Triggering docker event: %v", message.Action)
_, err := fmt.Fprintf(w, "event: containers-changed\ndata: %s\n\n", message.Action)
if err != nil {
log.Debugf("Error while writing to event stream: %v", err)
break
if message.Action == "start" {
log.Debugf("Scanning for new containers")
if containers, err := h.client.ListContainers(); err == nil {
for _, c := range containers {
if _, ok = runningContainers[c.ID]; c.State == "running" && !ok {
log.Debugf("Found a new container %v", c.ID)
h.client.ContainerStats(ctx, c.ID, stats)
runningContainers[c.ID] = c
}
}
}
}
delayer(func() {
if err := sendContainersJSON(h.client, w); err != nil {
log.Errorf("Error while encoding containers to stream: %v", err)
}
})
f.Flush()
default:
log.Debugf("Ignoring docker event: %v", message.Action)
@@ -198,3 +228,47 @@ Loop:
func (h *handler) version(w http.ResponseWriter, r *http.Request) {
fmt.Fprintln(w, version)
}
func sendContainersJSON(client docker.Client, w http.ResponseWriter) error {
if containers, err := client.ListContainers(); err != nil {
return err
} else {
if _, err := fmt.Fprint(w, "event: containers-changed\ndata: "); err != nil {
return err
}
if err := json.NewEncoder(w).Encode(containers); err != nil {
return err
}
if _, err := fmt.Fprint(w, "\n\n"); err != nil {
return err
}
}
return nil
}
type delayedFun struct {
mu sync.Mutex
after time.Duration
timer *time.Timer
}
func delayedFunc(after time.Duration) func(f func()) {
d := &delayedFun{after: after}
return func(f func()) {
d.add(f)
}
}
func (d *delayedFun) add(f func()) {
d.mu.Lock()
defer d.mu.Unlock()
if d.timer != nil {
d.timer.Stop()
}
d.timer = time.AfterFunc(d.after, f)
}

View File

@@ -10,12 +10,12 @@ module.exports = (env, argv) => ({
maxAssetSize: 350000,
maxEntrypointSize: 600000,
},
devtool: argv.mode === "development" ? "inline-cheap-source-map" : false,
devtool: argv.mode !== "production" ? "inline-cheap-source-map" : false,
entry: ["./assets/main.js", "./assets/styles.scss"],
output: {
path: path.resolve(__dirname, "./static"),
filename: "[name].js",
publicPath: "{{ .Base }}",
publicPath: process.env.WEBPACK_DEV_SERVER ? "/" : "{{ .Base }}",
},
module: {
rules: [
@@ -26,19 +26,18 @@ module.exports = (env, argv) => ({
{
test: /\.(sass|scss|css)$/,
use: [
MiniCssExtractPlugin.loader,
{
loader: "css-loader",
query: {
importLoaders: 1,
loader: MiniCssExtractPlugin.loader,
options: {
hmr: argv.mode !== "production",
},
},
"css-loader",
{
loader: "postcss-loader",
options: {
ident: "postcss",
plugins: (loader) => [
require("postcss-import")(),
require("postcss-cssnext")({
features: {
customProperties: { warnings: false },
@@ -75,4 +74,15 @@ module.exports = (env, argv) => ({
},
extensions: ["*", ".js", ".vue", ".json"],
},
devServer: {
port: 8081,
inline: true,
hot: true,
historyApiFallback: true,
proxy: {
"/api": {
target: "http://localhost:8080",
},
},
},
});

3524
yarn.lock

File diff suppressed because it is too large Load Diff