Compare commits

...

57 Commits

Author SHA1 Message Date
Amir Raminfar
f026e7291c Release 1.26.0 2020-05-23 11:09:34 -07:00
Amir Raminfar
129b5a75b2 Uses == and fixes error messages 2020-05-23 11:09:13 -07:00
dependabot-preview[bot]
d354c2b751 Bump caniuse-lite from 1.0.30001062 to 1.0.30001064 (#475)
Bumps [caniuse-lite](https://github.com/ben-eb/caniuse-lite) from 1.0.30001062 to 1.0.30001064.
- [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.30001062...v1.0.30001064)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-05-23 07:45:17 -07:00
Amir Raminfar
bae3ecca7b Adds show page with name param (#474) 2020-05-22 16:49:23 -07:00
Amir Raminfar
a7241b6fbe Fixes max size 2020-05-22 10:56:34 -07:00
Amir Raminfar
e66f3f5a59 Sets tz 2020-05-22 10:54:59 -07:00
Amir Raminfar
237032a714 Removes mocked date 2020-05-22 10:36:59 -07:00
dependabot-preview[bot]
fb622085ce Merge pull request #472 from amir20/dependabot/npm_and_yarn/lint-staged-10.2.6 2020-05-22 11:28:19 +00:00
dependabot-preview[bot]
b5a653e305 Bump lint-staged from 10.2.4 to 10.2.6
Bumps [lint-staged](https://github.com/okonet/lint-staged) from 10.2.4 to 10.2.6.
- [Release notes](https://github.com/okonet/lint-staged/releases)
- [Commits](https://github.com/okonet/lint-staged/compare/v10.2.4...v10.2.6)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-22 11:23:16 +00:00
dependabot-preview[bot]
41ee1c569a Merge pull request #470 from amir20/dependabot/npm_and_yarn/mockdate-3.0.2 2020-05-21 20:08:32 +00:00
dependabot-preview[bot]
d48b4a262f Bump mockdate from 3.0.1 to 3.0.2
Bumps [mockdate](https://github.com/boblauer/MockDate) from 3.0.1 to 3.0.2.
- [Release notes](https://github.com/boblauer/MockDate/releases)
- [Changelog](https://github.com/boblauer/MockDate/blob/master/CHANGELOG.md)
- [Commits](https://github.com/boblauer/MockDate/compare/v3.0.1...v3.0.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-21 20:02:52 +00:00
dependabot-preview[bot]
64cdc9457d Merge pull request #469 from amir20/dependabot/npm_and_yarn/mockdate-3.0.1 2020-05-21 15:53:35 +00:00
dependabot-preview[bot]
1cf1121856 Bump mockdate from 2.0.5 to 3.0.1
Bumps [mockdate](https://github.com/boblauer/MockDate) from 2.0.5 to 3.0.1.
- [Release notes](https://github.com/boblauer/MockDate/releases)
- [Changelog](https://github.com/boblauer/MockDate/blob/master/CHANGELOG.md)
- [Commits](https://github.com/boblauer/MockDate/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-21 15:48:07 +00:00
dependabot-preview[bot]
dd2a732525 Merge pull request #467 from amir20/dependabot/npm_and_yarn/vue-router-3.2.0 2020-05-19 16:48:27 +00:00
dependabot-preview[bot]
67cf6734ff Bump vue-router from 3.1.6 to 3.2.0
Bumps [vue-router](https://github.com/vuejs/vue-router) from 3.1.6 to 3.2.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.1.6...v3.2.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-19 16:42:54 +00:00
dependabot-preview[bot]
abfd6753da Merge pull request #466 from amir20/dependabot/npm_and_yarn/caniuse-lite-1.0.30001062 2020-05-19 12:29:28 +00:00
dependabot-preview[bot]
65d1ea047b Bump caniuse-lite from 1.0.30001061 to 1.0.30001062
Bumps [caniuse-lite](https://github.com/ben-eb/caniuse-lite) from 1.0.30001061 to 1.0.30001062.
- [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.30001061...v1.0.30001062)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-19 12:23:57 +00:00
dependabot-preview[bot]
cc3fd3fe67 Merge pull request #464 from amir20/dependabot/npm_and_yarn/date-fns-2.14.0 2020-05-18 18:41:30 +00:00
dependabot-preview[bot]
acc39b3097 Bump date-fns from 2.13.0 to 2.14.0
Bumps [date-fns](https://github.com/date-fns/date-fns) from 2.13.0 to 2.14.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.13.0...v2.14.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-18 18:35:48 +00:00
dependabot-preview[bot]
773e736123 Merge pull request #465 from amir20/dependabot/npm_and_yarn/buefy-0.8.19 2020-05-18 18:34:36 +00:00
dependabot-preview[bot]
2414ef7424 Merge pull request #463 from amir20/dependabot/npm_and_yarn/hotkeys-js-3.8.1 2020-05-18 18:33:49 +00:00
dependabot-preview[bot]
1ab60cba59 Bump buefy from 0.8.18 to 0.8.19
Bumps [buefy](https://github.com/buefy/buefy) from 0.8.18 to 0.8.19.
- [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.18...v0.8.19)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-18 18:29:21 +00:00
dependabot-preview[bot]
78685301fb Bump hotkeys-js from 3.8.0 to 3.8.1
Bumps [hotkeys-js](https://github.com/jaywcjlove/hotkeys) from 3.8.0 to 3.8.1.
- [Release notes](https://github.com/jaywcjlove/hotkeys/releases)
- [Commits](https://github.com/jaywcjlove/hotkeys/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-18 18:28:10 +00:00
Amir Raminfar
841f000c75 Release 1.25.6 2020-05-18 10:57:45 -07:00
dependabot-preview[bot]
caa83c17d9 Merge pull request #461 from amir20/dependabot/npm_and_yarn/lint-staged-10.2.4 2020-05-18 17:52:43 +00:00
dependabot-preview[bot]
0a17e06d8f Bump lint-staged from 10.2.2 to 10.2.4
Bumps [lint-staged](https://github.com/okonet/lint-staged) from 10.2.2 to 10.2.4.
- [Release notes](https://github.com/okonet/lint-staged/releases)
- [Commits](https://github.com/okonet/lint-staged/compare/v10.2.2...v10.2.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-18 17:47:10 +00:00
dependabot-preview[bot]
d3650f33a3 Merge pull request #460 from amir20/dependabot/npm_and_yarn/integration/puppeteer-3.1.0 2020-05-18 12:02:45 +00:00
dependabot-preview[bot]
77c2d7f0c5 Bump puppeteer from 3.0.4 to 3.1.0 in /integration
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 3.0.4 to 3.1.0.
- [Release notes](https://github.com/puppeteer/puppeteer/releases)
- [Commits](https://github.com/puppeteer/puppeteer/compare/v3.0.4...v3.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-18 11:57:38 +00:00
dependabot-preview[bot]
9821a78847 Merge pull request #459 from amir20/dependabot/npm_and_yarn/release-it-13.6.1 2020-05-17 13:03:48 +00:00
dependabot-preview[bot]
a3cd0a5743 Bump release-it from 13.6.0 to 13.6.1
Bumps [release-it](https://github.com/release-it/release-it) from 13.6.0 to 13.6.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.6.0...13.6.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-17 12:59:01 +00:00
dependabot-preview[bot]
fd0091fb4c Merge pull request #458 from amir20/dependabot/npm_and_yarn/vue/test-utils-1.0.3 2020-05-17 12:06:17 +00:00
dependabot-preview[bot]
fc34a9dd08 Bump @vue/test-utils from 1.0.2 to 1.0.3
Bumps [@vue/test-utils](https://github.com/vuejs/vue-test-utils/tree/HEAD/packages/test-utils) from 1.0.2 to 1.0.3.
- [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.3/packages/test-utils)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-17 12:01:19 +00:00
dependabot-preview[bot]
747dba19b7 Merge pull request #457 from amir20/dependabot/npm_and_yarn/hotkeys-js-3.8.0 2020-05-16 10:36:03 +00:00
dependabot-preview[bot]
6e826b08f3 Bump hotkeys-js from 3.7.6 to 3.8.0
Bumps [hotkeys-js](https://github.com/jaywcjlove/hotkeys) from 3.7.6 to 3.8.0.
- [Release notes](https://github.com/jaywcjlove/hotkeys/releases)
- [Commits](https://github.com/jaywcjlove/hotkeys/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-16 10:30:43 +00:00
dependabot-preview[bot]
922b8ca832 Merge pull request #456 from amir20/dependabot/npm_and_yarn/caniuse-lite-1.0.30001061 2020-05-16 04:42:04 +00:00
dependabot-preview[bot]
175015ce9e Bump caniuse-lite from 1.0.30001059 to 1.0.30001061
Bumps [caniuse-lite](https://github.com/ben-eb/caniuse-lite) from 1.0.30001059 to 1.0.30001061.
- [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.30001059...v1.0.30001061)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-16 04:36:50 +00:00
Amir Raminfar
ed13c83b0e Uses noreferrer noopener instead for settings 2020-05-15 09:47:45 -07:00
dependabot-preview[bot]
e1a6681f5f Bump jest-image-snapshot from 3.1.0 to 4.0.0 in /integration (#453)
Bumps [jest-image-snapshot](https://github.com/americanexpress/jest-image-snapshot) from 3.1.0 to 4.0.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/v3.1.0...v4.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-05-15 06:59:36 -07:00
dependabot-preview[bot]
e14b340f00 Merge pull request #455 from amir20/dependabot/npm_and_yarn/caniuse-lite-1.0.30001059 2020-05-15 02:45:48 +00:00
dependabot-preview[bot]
b465f58a74 Bump caniuse-lite from 1.0.30001058 to 1.0.30001059
Bumps [caniuse-lite](https://github.com/ben-eb/caniuse-lite) from 1.0.30001058 to 1.0.30001059.
- [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.30001058...v1.0.30001059)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-15 02:40:24 +00:00
dependabot-preview[bot]
ea62473ab8 Merge pull request #454 from amir20/dependabot/npm_and_yarn/release-it-13.6.0 2020-05-14 18:25:07 +00:00
dependabot-preview[bot]
3f924fc5ad Bump release-it from 13.5.8 to 13.6.0
Bumps [release-it](https://github.com/release-it/release-it) from 13.5.8 to 13.6.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.5.8...13.6.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-14 18:19:36 +00:00
Amir Raminfar
cc9dda416b Release 1.25.5 2020-05-14 10:09:34 -07:00
Amir Raminfar
d31a1ccea9 Uses lower to sort. Fixes #452 2020-05-14 10:00:37 -07:00
dependabot-preview[bot]
a86a86a4ba Merge pull request #451 from amir20/dependabot/npm_and_yarn/caniuse-lite-1.0.30001058 2020-05-14 02:42:11 +00:00
dependabot-preview[bot]
f2706e4fc6 Bump caniuse-lite from 1.0.30001055 to 1.0.30001058
Bumps [caniuse-lite](https://github.com/ben-eb/caniuse-lite) from 1.0.30001055 to 1.0.30001058.
- [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.30001055...v1.0.30001058)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-14 02:37:14 +00:00
Amir Raminfar
ed3672cb54 Reverts onmessage 2020-05-13 19:12:54 -07:00
Amir Raminfar
14373f5123 Uses addEventListenr 2020-05-13 15:20:53 -07:00
Amir Raminfar
5154002cb2 Adds more tests for streams 2020-05-13 11:59:04 -07:00
Amir Raminfar
9d0f8cd63a Release 1.25.4 2020-05-12 12:27:23 -07:00
Amir Raminfar
b8fa7a591f Allows inline css for colors in logs 2020-05-12 12:26:17 -07:00
Amir Raminfar
6a912b2784 Release 1.25.3 2020-05-12 12:03:18 -07:00
Amir Raminfar
5755224c2a Fixes jest test 2020-05-12 12:02:50 -07:00
Amir Raminfar
676a80038b Fixes title to use visible containers 2020-05-12 11:55:07 -07:00
Amir Raminfar
3eafab1e0b Adds another int test 2020-05-12 11:51:11 -07:00
Amir Raminfar
f66a9c14c7 Release 1.25.2 2020-05-12 11:37:26 -07:00
Amir Raminfar
1906a86374 Fixes mobile menu 2020-05-12 11:37:10 -07:00
17 changed files with 344 additions and 204 deletions

View File

@@ -1,7 +1,7 @@
/* snapshot: Test_createRoutes_foobar */
HTTP/1.1 200 OK
Connection: close
Content-Security-Policy: default-src 'none'; script-src 'self'; style-src 'self' fonts.googleapis.com; img-src 'self'; manifest-src 'self'; font-src fonts.gstatic.com; connect-src 'self' api.github.com; require-trusted-types-for 'script'
Content-Security-Policy: default-src 'none'; script-src 'self'; style-src 'self' 'unsafe-inline' fonts.googleapis.com; img-src 'self'; manifest-src 'self'; font-src fonts.gstatic.com; connect-src 'self' api.github.com; require-trusted-types-for 'script'
Content-Type: text/plain; charset=utf-8
foo page
@@ -9,7 +9,7 @@ foo page
/* snapshot: Test_createRoutes_index */
HTTP/1.1 200 OK
Connection: close
Content-Security-Policy: default-src 'none'; script-src 'self'; style-src 'self' fonts.googleapis.com; img-src 'self'; manifest-src 'self'; font-src fonts.gstatic.com; connect-src 'self' api.github.com; require-trusted-types-for 'script'
Content-Security-Policy: default-src 'none'; script-src 'self'; style-src 'self' 'unsafe-inline' fonts.googleapis.com; img-src 'self'; manifest-src 'self'; font-src fonts.gstatic.com; connect-src 'self' api.github.com; require-trusted-types-for 'script'
Content-Type: text/plain; charset=utf-8
index page
@@ -17,7 +17,7 @@ index page
/* snapshot: Test_createRoutes_redirect */
HTTP/1.1 301 Moved Permanently
Connection: close
Content-Security-Policy: default-src 'none'; script-src 'self'; style-src 'self' fonts.googleapis.com; img-src 'self'; manifest-src 'self'; font-src fonts.gstatic.com; connect-src 'self' api.github.com; require-trusted-types-for 'script'
Content-Security-Policy: default-src 'none'; script-src 'self'; style-src 'self' 'unsafe-inline' fonts.googleapis.com; img-src 'self'; manifest-src 'self'; font-src fonts.gstatic.com; connect-src 'self' api.github.com; require-trusted-types-for 'script'
Content-Type: text/html; charset=utf-8
Location: /foobar/
@@ -26,7 +26,7 @@ Location: /foobar/
/* snapshot: Test_createRoutes_version */
HTTP/1.1 200 OK
Connection: close
Content-Security-Policy: default-src 'none'; script-src 'self'; style-src 'self' fonts.googleapis.com; img-src 'self'; manifest-src 'self'; font-src fonts.gstatic.com; connect-src 'self' api.github.com; require-trusted-types-for 'script'
Content-Security-Policy: default-src 'none'; script-src 'self'; style-src 'self' 'unsafe-inline' fonts.googleapis.com; img-src 'self'; manifest-src 'self'; font-src fonts.gstatic.com; connect-src 'self' api.github.com; require-trusted-types-for 'script'
Content-Type: text/plain; charset=utf-8
dev
@@ -89,4 +89,26 @@ Connection: keep-alive
Content-Type: text/event-stream
X-Accel-Buffering: no
data: INFO Testing logs...
data: INFO Testing logs...
/* snapshot: Test_handler_streamLogs_happy_container_stopped */
HTTP/1.1 200 OK
Connection: close
Cache-Control: no-cache
Connection: keep-alive
Content-Type: text/event-stream
X-Accel-Buffering: no
event: container-stopped
data: end of stream
/* snapshot: Test_handler_streamLogs_happy_with_id */
HTTP/1.1 200 OK
Connection: close
Cache-Control: no-cache
Connection: keep-alive
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

View File

@@ -16,19 +16,25 @@ describe("<App />", () => {
beforeEach(() => {
global.EventSource = EventSource;
const state = {
containers: [
{ id: "abc", name: "Test 1" },
{ id: "xyz", name: "Test 2" },
],
settings: { menuWidth: 15 },
};
const getters = {
visibleContainers() {
return [
{ id: "abc", name: "Test 1" },
{ id: "xyz", name: "Test 2" },
];
},
};
const actions = {
FETCH_CONTAINERS: () => Promise.resolve(),
};
store = new Vuex.Store({
state,
getters,
actions,
});
});

View File

@@ -76,7 +76,7 @@ export default {
},
async created() {
await this.fetchContainerList();
this.title = `${this.containers.length} containers`;
this.title = `${this.visibleContainers.length} containers`;
},
mounted() {
if (this.hasSmallerScrollbars) {
@@ -94,7 +94,8 @@ export default {
},
},
computed: {
...mapState(["containers", "activeContainers", "isMobile", "settings"]),
...mapState(["activeContainers", "isMobile", "settings"]),
...mapGetters(["visibleContainers"]),
hasSmallerScrollbars() {
return this.settings.smallerScrollbars;
},

View File

@@ -3,7 +3,6 @@ import EventSource from "eventsourcemock";
import { sources } from "eventsourcemock";
import { shallowMount, mount, createLocalVue } from "@vue/test-utils";
import Vuex from "vuex";
import MockDate from "mockdate";
import LogEventSource from "./LogEventSource.vue";
import LogViewer from "./LogViewer.vue";
@@ -18,9 +17,7 @@ jest.mock("../store/config.js", () => ({ base: "" }));
describe("<LogEventSource />", () => {
beforeEach(() => {
global.EventSource = EventSource;
MockDate.set("6/12/2019", 0);
window.scrollTo = jest.fn();
const observe = jest.fn();
const unobserve = jest.fn();
global.IntersectionObserver = jest.fn(() => ({
@@ -30,8 +27,6 @@ describe("<LogEventSource />", () => {
debounce.mockClear();
});
afterEach(() => MockDate.reset());
function createLogEventSource(searchFilter = null) {
const localVue = createLocalVue();
localVue.use(Vuex);
@@ -126,64 +121,80 @@ describe("<LogEventSource />", () => {
`);
});
test("should render messages", async () => {
const wrapper = createLogEventSource();
sources["/api/logs/stream?id=abc"].emitOpen();
sources["/api/logs/stream?id=abc"].emitMessage({ data: `2019-06-12T10:55:42.459034602Z "This is a message."` });
describe("render html correctly", () => {
const RealDate = Date;
beforeAll(() => {
global.Date = class extends RealDate {
constructor(arg) {
if (arg) {
return new RealDate(arg);
} else {
return new RealDate(1560336936000);
}
}
};
});
afterAll(() => (global.Date = RealDate));
await wrapper.vm.$nextTick();
expect(wrapper.find("ul.events")).toMatchInlineSnapshot(`
<ul class="events medium">
<li class=""><span class="date">today at 10:55 AM</span> <span class="text">"This is a message."</span></li>
</ul>
`);
});
test("should render messages", async () => {
const wrapper = createLogEventSource();
sources["/api/logs/stream?id=abc"].emitOpen();
sources["/api/logs/stream?id=abc"].emitMessage({ data: `2019-06-12T10:55:42.459034602Z "This is a message."` });
test("should render messages with color", async () => {
const wrapper = createLogEventSource();
sources["/api/logs/stream?id=abc"].emitOpen();
sources["/api/logs/stream?id=abc"].emitMessage({
data: `2019-06-12T10:55:42.459034602Z \x1b[30mblack\x1b[37mwhite`,
await wrapper.vm.$nextTick();
expect(wrapper.find("ul.events")).toMatchInlineSnapshot(`
<ul class="events medium">
<li class=""><span class="date">today at 10:55 AM</span> <span class="text">"This is a message."</span></li>
</ul>
`);
});
await wrapper.vm.$nextTick();
expect(wrapper.find("ul.events")).toMatchInlineSnapshot(`
<ul class="events medium">
<li class=""><span class="date">today at 10:55 AM</span> <span class="text"><span style="color:#000">black<span style="color:#AAA">white</span></span></span></li>
</ul>
`);
});
test("should render messages with color", async () => {
const wrapper = createLogEventSource();
sources["/api/logs/stream?id=abc"].emitOpen();
sources["/api/logs/stream?id=abc"].emitMessage({
data: `2019-06-12T10:55:42.459034602Z \x1b[30mblack\x1b[37mwhite`,
});
test("should render messages with html entities", async () => {
const wrapper = createLogEventSource();
sources["/api/logs/stream?id=abc"].emitOpen();
sources["/api/logs/stream?id=abc"].emitMessage({
data: `2019-06-12T10:55:42.459034602Z <test>foo bar</test>`,
await wrapper.vm.$nextTick();
expect(wrapper.find("ul.events")).toMatchInlineSnapshot(`
<ul class="events medium">
<li class=""><span class="date">today at 10:55 AM</span> <span class="text"><span style="color:#000">black<span style="color:#AAA">white</span></span></span></li>
</ul>
`);
});
await wrapper.vm.$nextTick();
expect(wrapper.find("ul.events")).toMatchInlineSnapshot(`
<ul class="events medium">
<li class=""><span class="date">today at 10:55 AM</span> <span class="text">&lt;test&gt;foo bar&lt;/test&gt;</span></li>
</ul>
`);
});
test("should render messages with html entities", async () => {
const wrapper = createLogEventSource();
sources["/api/logs/stream?id=abc"].emitOpen();
sources["/api/logs/stream?id=abc"].emitMessage({
data: `2019-06-12T10:55:42.459034602Z <test>foo bar</test>`,
});
test("should render messages with filter", async () => {
const wrapper = createLogEventSource("test");
sources["/api/logs/stream?id=abc"].emitOpen();
sources["/api/logs/stream?id=abc"].emitMessage({
data: `2019-06-11T10:55:42.459034602Z Foo bar`,
});
sources["/api/logs/stream?id=abc"].emitMessage({
data: `2019-06-12T10:55:42.459034602Z This is a test <hi></hi>`,
await wrapper.vm.$nextTick();
expect(wrapper.find("ul.events")).toMatchInlineSnapshot(`
<ul class="events medium">
<li class=""><span class="date">today at 10:55 AM</span> <span class="text">&lt;test&gt;foo bar&lt;/test&gt;</span></li>
</ul>
`);
});
await wrapper.vm.$nextTick();
expect(wrapper.find("ul.events")).toMatchInlineSnapshot(`
<ul class="events medium">
<li class=""><span class="date">today at 10:55 AM</span> <span class="text">This is a <mark>test</mark> &lt;hi&gt;&lt;/hi&gt;</span></li>
</ul>
`);
test("should render messages with filter", async () => {
const wrapper = createLogEventSource("test");
sources["/api/logs/stream?id=abc"].emitOpen();
sources["/api/logs/stream?id=abc"].emitMessage({
data: `2019-06-11T10:55:42.459034602Z Foo bar`,
});
sources["/api/logs/stream?id=abc"].emitMessage({
data: `2019-06-12T10:55:42.459034602Z This is a test <hi></hi>`,
});
await wrapper.vm.$nextTick();
expect(wrapper.find("ul.events")).toMatchInlineSnapshot(`
<ul class="events medium">
<li class=""><span class="date">today at 10:55 AM</span> <span class="text">This is a <mark>test</mark> &lt;hi&gt;&lt;/hi&gt;</span></li>
</ul>
`);
});
});
});

View File

@@ -11,7 +11,7 @@
<h1 class="title has-text-warning is-marginless">Dozzle</h1>
<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 containers">
<li v-for="item in visibleContainers">
<router-link
:to="{ name: 'container', params: { id: item.id, name: item.name } }"
active-class="is-active"

View File

@@ -9,6 +9,7 @@ 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";
Vue.use(VueRouter);
Vue.use(Meta);
@@ -32,6 +33,11 @@ const routes = [
component: Settings,
name: "settings",
},
{
path: "/show",
component: Show,
name: "show",
},
];
const router = new VueRouter({

View File

@@ -10,7 +10,9 @@
>.
<span v-if="hasUpdate">
New version is available! Update to
<a :href="nextRelease.html_url" class="next-release" target="_blank" rel="noopener">{{ nextRelease.name }}</a
<a :href="nextRelease.html_url" class="next-release" target="_blank" rel="noreferrer noopener">{{
nextRelease.name
}}</a
>.
</span>
</div>

29
assets/pages/Show.vue Normal file
View File

@@ -0,0 +1,29 @@
<template lang="html"> </template>
<script>
import { mapActions, mapGetters, mapState } from "vuex";
export default {
props: [],
name: "Show",
computed: mapGetters(["visibleContainers"]),
watch: {
visibleContainers(newValue) {
if (newValue) {
if (this.$route.query.name) {
const [container, _] = this.visibleContainers.filter((c) => c.name == this.$route.query.name);
if (container) {
this.$router.push({ name: "container", params: { id: container.id } });
} else {
console.error(`No containers found matching name=${this.$route.query.name}. Redirecting to /`);
this.$router.push({ name: "default" });
}
} else {
console.error(`Expection query parameter name to be set. Redirecting to /`);
this.$router.push({ name: "default" });
}
}
},
},
};
</script>
<style scoped></style>

View File

@@ -113,7 +113,7 @@ func (d *dockerClient) ListContainers() ([]Container, error) {
}
sort.Slice(containers, func(i, j int) bool {
return containers[i].Name < containers[j].Name
return strings.ToLower(containers[i].Name) < strings.ToLower(containers[j].Name)
})
if containers == nil {
@@ -153,7 +153,7 @@ func logReader(reader io.ReadCloser, tty bool) func() (string, error) {
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")
options := types.ContainerLogsOptions{
ShowStdout: true,
ShowStderr: true,

View File

@@ -9,7 +9,7 @@
"license": "ISC",
"dependencies": {
"jest": "^26.0.1",
"jest-image-snapshot": "^3.0.1",
"jest-image-snapshot": "^4.0.0",
"puppeteer": "^3.0.4"
},
"jest": {

View File

@@ -29,10 +29,17 @@ describe("home page", () => {
expect(image).toMatchImageSnapshot();
});
it("displays iphone menu", async () => {
await page.emulate(iPhoneX);
await page.click("a.navbar-burger");
const menuText = await page.$eval("aside ul.menu-list.is-hidden-mobile li a", (e) => e.textContent);
expect(menuText.trim()).toEqual("dozzle");
});
describe("has menu visible", () => {
beforeAll(async () => {
await jestPuppeteer.resetBrowser();
// await page.setViewport({ width: 1920, height: 1200 });
});
beforeEach(async () => {

View File

@@ -2218,10 +2218,10 @@ jest-haste-map@^26.0.1:
optionalDependencies:
fsevents "^2.1.2"
jest-image-snapshot@^3.0.1:
version "3.1.0"
resolved "https://registry.yarnpkg.com/jest-image-snapshot/-/jest-image-snapshot-3.1.0.tgz#eefc91f1570c426c368ae8a8890fef82d678fd5a"
integrity sha512-mzGCCyZlEyQIr6AnKi3KvbFvgOI7445qGPIoyhGm7Qmxw0YLTJMN+rH1WdGcs56ATx0CVM8aMjQMx4dDovlwtQ==
jest-image-snapshot@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/jest-image-snapshot/-/jest-image-snapshot-4.0.0.tgz#e0c46b953d04420682d9f5636d186a0e98dd96be"
integrity sha512-kIbc/NcG0D51PS/5fGJrhg0hj6t2zasOIZzTxN6QjBkRLAevdYkm/DqrLgWSX6wU0YZV4hNtayRWCReCjnE44w==
dependencies:
chalk "^1.1.3"
get-stdin "^5.0.1"
@@ -3110,9 +3110,9 @@ punycode@^2.1.0, punycode@^2.1.1:
integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
puppeteer@^3.0.4:
version "3.0.4"
resolved "https://registry.yarnpkg.com/puppeteer/-/puppeteer-3.0.4.tgz#f445aae0a6732c65bbb90e963dcd6fd8fde0d780"
integrity sha512-1QEb4tJXXbNId7WSHlcDkS3B4GklTIebKn8Y9D6B7tAdUjQncb+8QlTjbQsAgGX5dhRG32Qycuk5XKzJgLs0sg==
version "3.1.0"
resolved "https://registry.yarnpkg.com/puppeteer/-/puppeteer-3.1.0.tgz#d44efdc5410809025f38bca2de106c3ae5c85a52"
integrity sha512-jLa9sqdVx0tPnr2FcwAq+8DSjGhSM4YpkwOf3JE22Ycyqm71SW7B5uGfTyMGFoLCmbCozbLZclCjasPb0flTRw==
dependencies:
debug "^4.1.0"
extract-zip "^2.0.0"

View File

@@ -3,6 +3,7 @@ package main
import (
"context"
"errors"
"io"
"net/http"
"net/http/httptest"
"os"
@@ -124,6 +125,60 @@ func Test_handler_streamLogs_happy(t *testing.T) {
mockedClient.AssertExpectations(t)
}
func Test_handler_streamLogs_happy_with_id(t *testing.T) {
id := "123456"
req, err := http.NewRequest("GET", "/api/logs/stream", nil)
q := req.URL.Query()
q.Add("id", id)
req.URL.RawQuery = q.Encode()
require.NoError(t, err, "NewRequest should not return an error.")
mockedClient := new(MockedClient)
messages := make(chan string)
errChannel := make(chan error)
mockedClient.On("FindContainer", id).Return(docker.Container{ID: id}, nil)
mockedClient.On("ContainerLogs", mock.Anything, mock.Anything, 300).Return(messages, errChannel)
go func() {
messages <- "2020-05-13T18:55:37.772853839Z INFO Testing logs..."
close(messages)
}()
h := handler{client: mockedClient}
handler := http.HandlerFunc(h.streamLogs)
rr := httptest.NewRecorder()
handler.ServeHTTP(rr, req)
abide.AssertHTTPResponse(t, t.Name(), rr.Result())
mockedClient.AssertExpectations(t)
}
func Test_handler_streamLogs_happy_container_stopped(t *testing.T) {
id := "123456"
req, err := http.NewRequest("GET", "/api/logs/stream", nil)
q := req.URL.Query()
q.Add("id", id)
req.URL.RawQuery = q.Encode()
require.NoError(t, err, "NewRequest should not return an error.")
mockedClient := new(MockedClient)
messages := make(chan string)
errChannel := make(chan error)
mockedClient.On("FindContainer", id).Return(docker.Container{ID: id}, nil)
mockedClient.On("ContainerLogs", mock.Anything, id, 300).Return(messages, errChannel)
go func() {
errChannel <- io.EOF
close(messages)
}()
h := handler{client: mockedClient}
handler := http.HandlerFunc(h.streamLogs)
rr := httptest.NewRecorder()
handler.ServeHTTP(rr, req)
abide.AssertHTTPResponse(t, t.Name(), rr.Result())
mockedClient.AssertExpectations(t)
}
func Test_handler_streamLogs_error_finding_container(t *testing.T) {
id := "123456"
req, err := http.NewRequest("GET", "/api/logs/stream", nil)
@@ -159,6 +214,7 @@ func Test_handler_streamLogs_error_reading(t *testing.T) {
go func() {
errChannel <- errors.New("test error")
close(messages)
}()
h := handler{client: mockedClient}

View File

@@ -1,6 +1,6 @@
{
"name": "dozzle",
"version": "1.25.1",
"version": "1.26.0",
"description": "Realtime log viewer for docker containers. ",
"scripts": {
"prestart": "yarn clean",
@@ -11,7 +11,7 @@
"build": "yarn webpack --mode=production",
"clean": "rm -rf static/ a_main-packr.go",
"release": "release-it",
"test": "jest",
"test": "TZ=UTC jest",
"integration": "docker-compose -f integration/docker-compose.test.yml up --build --force-recreate integration"
},
"repository": {
@@ -26,30 +26,30 @@
"homepage": "https://github.com/amir20/dozzle#readme",
"dependencies": {
"ansi-to-html": "^0.6.14",
"buefy": "^0.8.18",
"buefy": "^0.8.19",
"bulma": "^0.8.2",
"date-fns": "^2.13.0",
"date-fns": "^2.14.0",
"dompurify": "^2.0.11",
"hotkeys-js": "^3.7.6",
"hotkeys-js": "^3.8.1",
"lodash.debounce": "^4.0.8",
"semver": "^7.3.2",
"splitpanes": "^2.2.1",
"store": "^2.0.12",
"vue": "^2.6.11",
"vue-meta": "^2.3.3",
"vue-router": "^3.1.6",
"vue-router": "^3.2.0",
"vuex": "^3.4.0"
},
"devDependencies": {
"@babel/core": "^7.9.6",
"@babel/plugin-transform-runtime": "^7.9.6",
"@vue/component-compiler-utils": "^3.1.2",
"@vue/test-utils": "^1.0.2",
"@vue/test-utils": "^1.0.3",
"babel-core": "^7.0.0-bridge.0",
"babel-jest": "^26.0.1",
"babel-loader": "^8.1.0",
"babel-preset-env": "^1.7.0",
"caniuse-lite": "^1.0.30001055",
"caniuse-lite": "^1.0.30001064",
"concurrently": "^5.2.0",
"css-loader": "^3.5.3",
"eventsourcemock": "^2.0.0",
@@ -57,15 +57,14 @@
"husky": "^4.2.5",
"jest": "^26.0.1",
"jest-serializer-vue": "^2.0.2",
"lint-staged": "^10.2.2",
"lint-staged": "^10.2.6",
"mini-css-extract-plugin": "^0.9.0",
"mockdate": "^2.0.5",
"node-fetch": "^2.6.0",
"postcss-cssnext": "^3.1.0",
"postcss-import": "^12.0.1",
"postcss-loader": "^3.0.0",
"prettier": "^2.0.5",
"release-it": "^13.5.8",
"release-it": "^13.6.1",
"sass": "^1.26.5",
"sass-loader": "^8.0.2",
"vue-hot-reload-api": "^2.3.4",

View File

@@ -34,7 +34,7 @@ func createRoutes(base string, h *handler) *mux.Router {
func setCSPHeaders(next http.Handler) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Security-Policy", "default-src 'none'; script-src 'self'; style-src 'self' fonts.googleapis.com; img-src 'self'; manifest-src 'self'; font-src fonts.gstatic.com; connect-src 'self' api.github.com; require-trusted-types-for 'script'")
w.Header().Set("Content-Security-Policy", "default-src 'none'; script-src 'self'; style-src 'self' 'unsafe-inline' fonts.googleapis.com; img-src 'self'; manifest-src 'self'; font-src fonts.gstatic.com; connect-src 'self' api.github.com; require-trusted-types-for 'script'")
next.ServeHTTP(w, r)
})
}

View File

@@ -8,7 +8,7 @@ module.exports = (env, argv) => ({
stats: { children: false, entrypoints: false, modules: false },
performance: {
maxAssetSize: 350000,
maxEntrypointSize: 585000,
maxEntrypointSize: 600000,
},
devtool: argv.mode === "development" ? "inline-cheap-source-map" : false,
entry: ["./assets/main.js", "./assets/styles.scss"],

227
yarn.lock
View File

@@ -229,13 +229,6 @@
resolve "^1.8.1"
semver "^5.5.1"
"@babel/runtime@^7.9.2":
version "7.9.6"
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.9.6.tgz#a9102eb5cadedf3f31d08a9ecf294af7827ea29f"
integrity sha512-64AF1xY3OAkFHqOb9s4jpgk1Mm5vDZ4L3acHvAml+53nO1XbXLuDodsVpO4OIUsmemlUHMxNdYMNJmsvOwLrvQ==
dependencies:
regenerator-runtime "^0.13.4"
"@babel/template@^7.3.3", "@babel/template@^7.7.4", "@babel/template@^7.8.3", "@babel/template@^7.8.6":
version "7.8.6"
resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.8.6.tgz#86b22af15f828dfb086474f964dcc3e39c43ce2b"
@@ -790,12 +783,12 @@
resolved "https://registry.yarnpkg.com/@octokit/plugin-request-log/-/plugin-request-log-1.0.0.tgz#eef87a431300f6148c39a7f75f8cfeb218b2547e"
integrity sha512-ywoxP68aOT3zHCLgWZgwUJatiENeHE7xJzYjfz8WI0goynp96wETBF+d95b8g/uL4QmS6owPVlaxiz3wyMAzcw==
"@octokit/plugin-rest-endpoint-methods@3.8.0":
version "3.8.0"
resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-3.8.0.tgz#649fa2f2e5104b015e1f60076958d69eba281a19"
integrity sha512-LUkTgZ53adPFC/Hw6mxvAtShUtGy3zbpcfCAJMWAN7SvsStV4p6TK7TocSv0Aak4TNmDLhbShTagGhpgz9mhYw==
"@octokit/plugin-rest-endpoint-methods@3.11.0":
version "3.11.0"
resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-3.11.0.tgz#96e69d7904bcbb6172be2bc1c70757ff1377fbfe"
integrity sha512-D31cBYhlOt6Om2xNkCNZUjyWdaDKUfa4HwpLwL8Dnu8aDuVuuOPLUhFMUDE0GvfqlNQFrNtU7n5HaZm+KmRdsw==
dependencies:
"@octokit/types" "^2.12.1"
"@octokit/types" "^2.16.0"
deprecation "^2.3.1"
"@octokit/request-error@^2.0.0":
@@ -821,15 +814,15 @@
once "^1.4.0"
universal-user-agent "^5.0.0"
"@octokit/rest@17.6.0":
version "17.6.0"
resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-17.6.0.tgz#91ba53bd3ab8f989030c8b018a8ccbcf87be0f0a"
integrity sha512-knh+4hPBA26AMXflFRupTPT3u9NcQmQzeBJl4Gcuf14Gn7dUh6Loc1ICWF0Pz18A6ElFZQt+wB9tFINSruIa+g==
"@octokit/rest@17.9.0":
version "17.9.0"
resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-17.9.0.tgz#48d20196eb3dbe1cb507d0e46e01d17c24cc3d0e"
integrity sha512-Ff2jwS2OizWVaiCozOJevQ97V+mKjlQAt//lU6a/lhWDfHsZLXm/k1RsyTKVbyuiriDi7pg899wCU59nYfKnmQ==
dependencies:
"@octokit/core" "^2.4.3"
"@octokit/plugin-paginate-rest" "^2.2.0"
"@octokit/plugin-request-log" "^1.0.0"
"@octokit/plugin-rest-endpoint-methods" "3.8.0"
"@octokit/plugin-rest-endpoint-methods" "3.11.0"
"@octokit/types@^2.0.0", "@octokit/types@^2.11.1", "@octokit/types@^2.12.1":
version "2.14.0"
@@ -838,6 +831,13 @@
dependencies:
"@types/node" ">= 8"
"@octokit/types@^2.16.0":
version "2.16.2"
resolved "https://registry.yarnpkg.com/@octokit/types/-/types-2.16.2.tgz#4c5f8da3c6fecf3da1811aef678fda03edac35d2"
integrity sha512-O75k56TYvJ8WpAakWwYRN8Bgu60KrmX0z1KqFp1kNiFNkgW+JW+9EBKZ+S33PU6SLvbihqd+3drvPxKK68Ee8Q==
dependencies:
"@types/node" ">= 8"
"@samverschueren/stream-to-observable@^0.3.0":
version "0.3.0"
resolved "https://registry.yarnpkg.com/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.0.tgz#ecdf48d532c58ea477acfcab80348424f8d0662f"
@@ -850,7 +850,7 @@
resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea"
integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==
"@sindresorhus/is@^2.1.0":
"@sindresorhus/is@^2.1.1":
version "2.1.1"
resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-2.1.1.tgz#ceff6a28a5b4867c2dd4a1ba513de278ccbe8bb1"
integrity sha512-/aPsuoj/1Dw/kzhkgz+ES6TxG0zfTMGLwuK2ZG00k/iJzYHTLCE8mVU8EPqEOp/lmxPoq1C1C9RYToRKb2KEfg==
@@ -876,7 +876,7 @@
dependencies:
defer-to-connect "^1.0.1"
"@szmarczak/http-timer@^4.0.0":
"@szmarczak/http-timer@^4.0.5":
version "4.0.5"
resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-4.0.5.tgz#bfbd50211e9dfa51ba07da58a14cdfd333205152"
integrity sha512-PyRA9sm1Yayuj5OIoJ1hGt2YISX45w9WcFbh6ddT0Z/0yaFxOtGLInr4jUfU1EAFVs0Yfyfev4RNwBlUaHdlDQ==
@@ -1088,10 +1088,10 @@
optionalDependencies:
prettier "^1.18.2"
"@vue/test-utils@^1.0.2":
version "1.0.2"
resolved "https://registry.yarnpkg.com/@vue/test-utils/-/test-utils-1.0.2.tgz#68134747cb88d996e4c9703ca4b103b4d23fda14"
integrity sha512-pnRWJbb0cLqjSJIKRpqoSISeYtufEn8D16VmhlCrDWIVt4iAY4Og4JpOPmFytvtQVz96p6n7T6ERI55ue6n0Ew==
"@vue/test-utils@^1.0.3":
version "1.0.3"
resolved "https://registry.yarnpkg.com/@vue/test-utils/-/test-utils-1.0.3.tgz#587c4dd9b424b66022f188c19bc605da2ce91c6f"
integrity sha512-mmsKXZSGfvd0bH05l4SNuczZ2MqlJH2DWhiul5wJXFxbf/gRRd2UL4QZgozEMQ30mRi9i4/+p4JJat8S4Js64Q==
dependencies:
dom-event-types "^1.0.0"
lodash "^4.17.15"
@@ -2275,10 +2275,10 @@ bser@2.1.1:
dependencies:
node-int64 "^0.4.0"
buefy@^0.8.18:
version "0.8.18"
resolved "https://registry.yarnpkg.com/buefy/-/buefy-0.8.18.tgz#ff43c8d8501750b5282ac942680c3a5aa94762bc"
integrity sha512-7Fem39I1beQm8Xi+1OFtyy6JksnmANc4h+pQ420JhY04tyefGyuQc7EiZ6GUcbCezu1WxTsdvSv0Kz/JB8aZNw==
buefy@^0.8.19:
version "0.8.19"
resolved "https://registry.yarnpkg.com/buefy/-/buefy-0.8.19.tgz#7b8e3dd8c2dfe11595084d30579ff3e750bde4d9"
integrity sha512-c9JOYiGGHwhmFAffjUPI6wrdo5+NpGPpw1F7dc/01lY/05EPLJVHDLGnn+DC2XnEgc2VaOM31a2URdRSx3L2vA==
dependencies:
bulma "0.7.5"
@@ -2365,10 +2365,10 @@ cache-base@^1.0.1:
union-value "^1.0.0"
unset-value "^1.0.0"
cacheable-lookup@^4.1.1:
version "4.2.3"
resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-4.2.3.tgz#8d8a6021addb6b0d21711ba80797cdc636761cc3"
integrity sha512-NdruD8iCwUSqPeacly+fxbi71wjPuIbh9wsBhLdRmpXDFPgQtX+xWytveqDyFYQ1tDR5POAxH4jIkkoit3arXw==
cacheable-lookup@^5.0.3:
version "5.0.3"
resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-5.0.3.tgz#049fdc59dffdd4fc285e8f4f82936591bd59fec3"
integrity sha512-W+JBqF9SWe18A72XFzN/V/CULFzPm7sBXzzR6ekkE+3tLG72wFZrBiBZhrZuDoYexop4PHJVdFAKb/Nj9+tm9w==
cacheable-request@^6.0.0:
version "6.1.0"
@@ -2448,10 +2448,10 @@ caniuse-api@^2.0.0:
lodash.memoize "^4.1.2"
lodash.uniq "^4.5.0"
caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000792, caniuse-lite@^1.0.30000805, caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30001055:
version "1.0.30001055"
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001055.tgz#7b52c3537f7a8c0408aca867e83d2b04268b54cd"
integrity sha512-MbwsBmKrBSKIWldfdIagO5OJWZclpJtS4h0Jrk/4HFrXJxTdVdH23Fd+xCiHriVGvYcWyW8mR/CPsYajlH8Iuw==
caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000792, caniuse-lite@^1.0.30000805, caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30001064:
version "1.0.30001064"
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001064.tgz#a0f49689119ba08943b09968e118faf3f645add0"
integrity sha512-hdBcQMFvJIrOhkpAZiRXz04Cmetwc9NekeuNl0qZfHOugxOhJKxsjF1RmISMPFjIF4PPx1reliIzbfN42EiQ5A==
capture-exit@^2.0.0:
version "2.0.0"
@@ -2614,7 +2614,7 @@ cli-spinners@^2.2.0:
resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.3.0.tgz#0632239a4b5aa4c958610142c34bb7a651fc8df5"
integrity sha512-Xs2Hf2nzrvJMFKimOR7YR0QwZ8fc0u98kdtwN1eNAZzNQgH3vK2pXzff6GJtKh7S5hoJ87ECiAiZFS2fb5Ii2w==
cli-truncate@^2.1.0:
cli-truncate@2.1.0, cli-truncate@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7"
integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==
@@ -2770,7 +2770,7 @@ commander@^4.1.1:
resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068"
integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==
commander@^5.0.0:
commander@^5.1.0:
version "5.1.0"
resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae"
integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==
@@ -3101,10 +3101,10 @@ data-urls@^2.0.0:
whatwg-mimetype "^2.3.0"
whatwg-url "^8.0.0"
date-fns@^2.0.1, date-fns@^2.13.0:
version "2.13.0"
resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.13.0.tgz#d7b8a0a2d392e8d88a8024d0a46b980bbfdbd708"
integrity sha512-xm0c61mevGF7f0XpCGtDTGpzEFC/1fpLXHbmFpxZZQJuvByIK2ozm6cSYuU+nxFYOPh2EuCfzUwlTEFwKG+h5w==
date-fns@^2.0.1, date-fns@^2.14.0:
version "2.14.0"
resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.14.0.tgz#359a87a265bb34ef2e38f93ecf63ac453f9bc7ba"
integrity sha512-1zD+68jhFgDIM0rF05rcwYO8cExdNqxjq4xP1QKM60Q45mnO6zaMWB4tOzrIr4M4GSLntsKeE4c9Bdl2jhL/yw==
de-indent@^1.0.2:
version "1.0.2"
@@ -3154,12 +3154,12 @@ decompress-response@^3.3.0:
dependencies:
mimic-response "^1.0.0"
decompress-response@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-5.0.0.tgz#7849396e80e3d1eba8cb2f75ef4930f76461cb0f"
integrity sha512-TLZWWybuxWgoW7Lykv+gq9xvzOsUjQ9tF09Tj6NSTYGMTCHNXzrPnD6Hi+TgZq19PyTAGH4Ll/NIM/eTGglnMw==
decompress-response@^6.0.0:
version "6.0.0"
resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc"
integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==
dependencies:
mimic-response "^2.0.0"
mimic-response "^3.1.0"
dedent@^0.7.0:
version "0.7.0"
@@ -3485,7 +3485,7 @@ enhanced-resolve@^4.1.0:
memory-fs "^0.5.0"
tapable "^1.0.0"
enquirer@^2.3.4:
enquirer@^2.3.5:
version "2.3.5"
resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.5.tgz#3ab2b838df0a9d8ab9e7dff235b0e8712ef92381"
integrity sha512-BNT1C08P9XD0vNg3J475yIUG+mVdp9T6towYFHUv897X0KoHBjB1shyrNmhmtHWKP17iSWgo7Gqh7BBuzLZMSA==
@@ -3622,10 +3622,10 @@ exec-sh@^0.3.2:
resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.4.tgz#3a018ceb526cc6f6df2bb504b2bfe8e3a4934ec5"
integrity sha512-sEFIkc61v75sWeOe72qyrqg2Qg0OuLESziUDk/O/z2qgS15y2gWVFrI6f2Qn/qw/0/NCfCEsmNA4zOjkwEZT1A==
execa@4.0.0, execa@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/execa/-/execa-4.0.0.tgz#7f37d6ec17f09e6b8fc53288611695b6d12b9daf"
integrity sha512-JbDUxwV3BoT5ZVXQrSVbAiaXhXUkIwvbhPIwZ0N13kX+5yCzOhUNdocxB/UQRuYOHRYYwAxKYwJYc0T4D12pDA==
execa@4.0.1, execa@^4.0.0, execa@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/execa/-/execa-4.0.1.tgz#988488781f1f0238cd156f7aaede11c3e853b4c1"
integrity sha512-SCjM/zlBdOK8Q5TIjOn6iEHZaPHFsMoTxXQ2nvUvtPnuohz3H2dIozSg+etNR98dGoYUp2ENSKLL/XaMmbxVgw==
dependencies:
cross-spawn "^7.0.0"
get-stream "^5.0.0"
@@ -4142,20 +4142,20 @@ globby@11.0.0:
merge2 "^1.3.0"
slash "^3.0.0"
got@11.1.0:
version "11.1.0"
resolved "https://registry.yarnpkg.com/got/-/got-11.1.0.tgz#99c0c3404ee17592e553f9ed1c895f920f554ed8"
integrity sha512-9lZDzFe43s6HH60tSurUk04kEtssfLiIfMiY5lSE0+vVaDCmT7+0xYzzlHY5VArSiz41mQQC38LefW2KoE9erw==
got@11.1.4:
version "11.1.4"
resolved "https://registry.yarnpkg.com/got/-/got-11.1.4.tgz#ecf0064aab26ae4b2989ab52aadd31a17e7bad63"
integrity sha512-z94KIXHhFSpJONuY6C6w1wC+igE7P1d0b5h3H2CvrOXn0/tum/OgFblIGUAxI5PBXukGLvKb9MJXVHW8vsYaBA==
dependencies:
"@sindresorhus/is" "^2.1.0"
"@szmarczak/http-timer" "^4.0.0"
"@sindresorhus/is" "^2.1.1"
"@szmarczak/http-timer" "^4.0.5"
"@types/cacheable-request" "^6.0.1"
"@types/responselike" "^1.0.0"
cacheable-lookup "^4.1.1"
cacheable-lookup "^5.0.3"
cacheable-request "^7.0.1"
decompress-response "^5.0.0"
get-stream "^5.0.0"
http2-wrapper "^1.0.0-beta.4.4"
decompress-response "^6.0.0"
get-stream "^5.1.0"
http2-wrapper "^1.0.0-beta.4.5"
lowercase-keys "^2.0.0"
p-cancelable "^2.0.0"
responselike "^2.0.0"
@@ -4313,10 +4313,10 @@ hosted-git-info@^2.1.4:
resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488"
integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==
hotkeys-js@^3.7.6:
version "3.7.6"
resolved "https://registry.yarnpkg.com/hotkeys-js/-/hotkeys-js-3.7.6.tgz#b90ae3453a7be2f2b2bed6ee55cb96443944c77b"
integrity sha512-X5d16trjp79o+OaCn7syXu0cs+TkLYlK/teE5FhpD1Cj9ROcEIhfIQ7Mhrk761ynF3NQLbLn5xRojP2UuSqDAw==
hotkeys-js@^3.8.1:
version "3.8.1"
resolved "https://registry.yarnpkg.com/hotkeys-js/-/hotkeys-js-3.8.1.tgz#fa7051f73bf1dc92a8b8d580a40b247f91966376"
integrity sha512-YlhVQtyG9f1b7GhtzdhR0Pl+cImD1ZrKI6zYUa7QLd0zuThiL7RzZ+ANJyy7z+kmcCpNYBf5PjBa3CjiQ5PFpw==
html-encoding-sniffer@^2.0.1:
version "2.0.1"
@@ -4384,10 +4384,10 @@ http-signature@~1.2.0:
jsprim "^1.2.2"
sshpk "^1.7.0"
http2-wrapper@^1.0.0-beta.4.4:
version "1.0.0-beta.4.5"
resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-1.0.0-beta.4.5.tgz#ac8e8f1cbf4aa79e3274c89e954d18697ab31e85"
integrity sha512-hRoAcIg26mAenbhZH4yQKpHzdbjHGM2a8JCtGJUIwFtqP82IeuMcmJwXHD6eFkILxDp0AyvaRMNrnV4aSaq9pg==
http2-wrapper@^1.0.0-beta.4.5:
version "1.0.0-beta.4.6"
resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-1.0.0-beta.4.6.tgz#9438f0fceb946c8cbd365076c228a4d3bd4d0143"
integrity sha512-9oB4BiGDTI1FmIBlOF9OJ5hwJvcBEmPCqk/hy314Uhy2uq5TjekUZM8w8SPLLlUEM+mxNhXdPAXfrJN2Zbb/GQ==
dependencies:
quick-lru "^5.0.0"
resolve-alpn "^1.0.0"
@@ -5582,42 +5582,43 @@ lines-and-columns@^1.1.6:
resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00"
integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=
lint-staged@^10.2.2:
version "10.2.2"
resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-10.2.2.tgz#901403c120eb5d9443a0358b55038b04c8a7db9b"
integrity sha512-78kNqNdDeKrnqWsexAmkOU3Z5wi+1CsQmUmfCuYgMTE8E4rAIX8RHW7xgxwAZ+LAayb7Cca4uYX4P3LlevzjVg==
lint-staged@^10.2.6:
version "10.2.6"
resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-10.2.6.tgz#7d9658bd89dee946a859cbfc6e09566a9fb50b53"
integrity sha512-2oEBWyPZHkdyjKcIv2U6ay80Q52ZMlZZrUnfsV0WTVcgzPlt3o2t5UFy2v8ETUTsIDZ0xSJVnffWCgD3LF6xTQ==
dependencies:
chalk "^4.0.0"
commander "^5.0.0"
cli-truncate "2.1.0"
commander "^5.1.0"
cosmiconfig "^6.0.0"
debug "^4.1.1"
dedent "^0.7.0"
execa "^4.0.0"
listr2 "1.3.8"
log-symbols "^3.0.0"
execa "^4.0.1"
listr2 "^2.0.2"
log-symbols "^4.0.0"
micromatch "^4.0.2"
normalize-path "^3.0.0"
please-upgrade-node "^3.2.0"
string-argv "0.3.1"
stringify-object "^3.3.0"
listr2@1.3.8:
version "1.3.8"
resolved "https://registry.yarnpkg.com/listr2/-/listr2-1.3.8.tgz#30924d79de1e936d8c40af54b6465cb814a9c828"
integrity sha512-iRDRVTgSDz44tBeBBg/35TQz4W+EZBWsDUq7hPpqeUHm7yLPNll0rkwW3lIX9cPAK7l+x95mGWLpxjqxftNfZA==
listr2@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/listr2/-/listr2-2.0.2.tgz#35e11e742ee151a8c446d1649792cadf7eb1d780"
integrity sha512-HkbraLsbHRFtuT0p1g9KUiMoJeqlPdgsi4Q3mCvBlYnVK+2I1vPdCxBvJ+nAxwpL7SZiyaICWMvLOyMBtu+VKw==
dependencies:
"@samverschueren/stream-to-observable" "^0.3.0"
chalk "^3.0.0"
chalk "^4.0.0"
cli-cursor "^3.1.0"
cli-truncate "^2.1.0"
elegant-spinner "^2.0.0"
enquirer "^2.3.4"
enquirer "^2.3.5"
figures "^3.2.0"
indent-string "^4.0.0"
log-update "^4.0.0"
p-map "^4.0.0"
pad "^3.2.0"
rxjs "^6.3.3"
rxjs "^6.5.5"
through "^2.3.8"
uuid "^7.0.2"
@@ -5730,6 +5731,13 @@ log-symbols@^3.0.0:
dependencies:
chalk "^2.4.2"
log-symbols@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.0.0.tgz#69b3cc46d20f448eccdb75ea1fa733d9e821c920"
integrity sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==
dependencies:
chalk "^4.0.0"
log-update@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/log-update/-/log-update-4.0.0.tgz#589ecd352471f2a1c0c570287543a64dfd20e0a1"
@@ -5948,10 +5956,10 @@ mimic-response@^1.0.0, mimic-response@^1.0.1:
resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b"
integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==
mimic-response@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-2.1.0.tgz#d13763d35f613d09ec37ebb30bac0469c0ee8f43"
integrity sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==
mimic-response@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9"
integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==
min-document@^2.19.0:
version "2.19.0"
@@ -6040,11 +6048,6 @@ mkdirp@~1.0.3:
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e"
integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==
mockdate@^2.0.5:
version "2.0.5"
resolved "https://registry.yarnpkg.com/mockdate/-/mockdate-2.0.5.tgz#70c6abf9ed4b2dae65c81dfc170dd1a5cec53620"
integrity sha512-ST0PnThzWKcgSLyc+ugLVql45PvESt3Ul/wrdV/OPc/6Pr8dbLAIJsN1cIp41FLzbN+srVTNIRn+5Cju0nyV6A==
move-concurrently@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92"
@@ -7493,7 +7496,7 @@ regenerator-runtime@^0.11.0:
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9"
integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==
regenerator-runtime@^0.13.3, regenerator-runtime@^0.13.4:
regenerator-runtime@^0.13.3:
version "0.13.5"
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz#d878a1d094b4306d10b9096484b33ebd55e26697"
integrity sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==
@@ -7555,25 +7558,25 @@ relateurl@^0.2.7:
resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9"
integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=
release-it@^13.5.8:
version "13.5.8"
resolved "https://registry.yarnpkg.com/release-it/-/release-it-13.5.8.tgz#f7a30cc7863c9a24100d7c8c9d0f762dd0ec4551"
integrity sha512-5CNuQgkXWcskAediHpnVaU2sOT+27tOeLz8+SXsPHFrdkaCfRKVL1Isekp4AylWmN3sbx2K+cI7Dg6RwtLSYYg==
release-it@^13.6.1:
version "13.6.1"
resolved "https://registry.yarnpkg.com/release-it/-/release-it-13.6.1.tgz#4ee5a3d7d42eefc3ac20b7bde07fcb98860e9a31"
integrity sha512-y7RfD4+O+I3WwWkULH5Y4kqcBr1bzQ8dNYnG8/7LVycWBajkFSDbKdCper9VGZulpFcXiSFfhenXrnGrDlHMnA==
dependencies:
"@iarna/toml" "2.2.5"
"@octokit/rest" "17.6.0"
"@octokit/rest" "17.9.0"
async-retry "1.3.1"
chalk "4.0.0"
cosmiconfig "6.0.0"
debug "4.1.1"
deprecated-obj "1.0.1"
detect-repo-changelog "1.0.1"
execa "4.0.0"
execa "4.0.1"
find-up "4.1.0"
form-data "3.0.0"
git-url-parse "11.1.2"
globby "11.0.0"
got "11.1.0"
got "11.1.4"
import-cwd "3.0.0"
inquirer "7.1.0"
is-ci "2.0.0"
@@ -7589,7 +7592,7 @@ release-it@^13.5.8:
url-join "4.0.1"
uuid "8.0.0"
window-size "1.1.1"
yaml "1.9.2"
yaml "1.10.0"
yargs-parser "18.1.3"
remove-trailing-separator@^1.0.1:
@@ -7815,7 +7818,7 @@ run-queue@^1.0.0, run-queue@^1.0.3:
dependencies:
aproba "^1.1.1"
rxjs@^6.3.3, rxjs@^6.5.2, rxjs@^6.5.3:
rxjs@^6.5.2, rxjs@^6.5.3, rxjs@^6.5.5:
version "6.5.5"
resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.5.tgz#c5c884e3094c8cfee31bf27eb87e54ccfc87f9ec"
integrity sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ==
@@ -8963,10 +8966,10 @@ vue-meta@^2.3.3:
dependencies:
deepmerge "^4.2.2"
vue-router@^3.1.6:
version "3.1.6"
resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-3.1.6.tgz#45f5a3a3843e31702c061dd829393554e4328f89"
integrity sha512-GYhn2ynaZlysZMkFE5oCHRUTqE8BWs/a9YbKpNLi0i7xD6KG1EzDqpHQmv1F5gXjr8kL5iIVS8EOtRaVUEXTqA==
vue-router@^3.2.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-3.2.0.tgz#da35195ffe37fdf0bec9f5f8f72781d2a7718815"
integrity sha512-khkrcUIzMcI1rDcNtqkvLwfRFzB97GmJEsPAQdj7t/VvpGhmXLOkUfhc+Ah8CvpSXGXwuWuQO+x8Sy/xDhXZIA==
vue-style-loader@^4.1.0, vue-style-loader@^4.1.2:
version "4.1.2"
@@ -9299,12 +9302,10 @@ yallist@^3.0.2:
resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd"
integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==
yaml@1.9.2, yaml@^1.7.2:
version "1.9.2"
resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.9.2.tgz#f0cfa865f003ab707663e4f04b3956957ea564ed"
integrity sha512-HPT7cGGI0DuRcsO51qC1j9O16Dh1mZ2bnXwsi0jrSpsLz0WxOLSLXfkABVl6bZO629py3CU+OMJtpNHDLB97kg==
dependencies:
"@babel/runtime" "^7.9.2"
yaml@1.10.0, yaml@^1.7.2:
version "1.10.0"
resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.0.tgz#3b593add944876077d4d683fee01081bd9fff31e"
integrity sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg==
yargs-parser@18.1.3, yargs-parser@^18.1.1:
version "18.1.3"