mirror of
https://github.com/amir20/dozzle.git
synced 2026-08-07 15:54:45 +00:00
Compare commits
11 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 0f02de2070 | |||
| bb085affb2 | |||
| 1d022b51b5 | |||
| eb31b46e6f | |||
| 066541288a | |||
| eba7d92ba6 | |||
| 579ae12920 | |||
| ba9531dc59 | |||
| c4cc233720 | |||
| 6c1f59c7e3 | |||
| ebc02900b6 |
@@ -15,71 +15,27 @@ https://user-images.githubusercontent.com/260667/227634771-9ebbe381-16a8-465a-b2
|
||||
- Search logs using regex 🔦
|
||||
- Small memory footprint 🏎
|
||||
- Split screen for viewing multiple logs
|
||||
- Download logs easy
|
||||
- Download logs easily
|
||||
- Live stats with memory and CPU usage
|
||||
- Authentication with username and password 🚨
|
||||
- Multi-user authentication with support for proxy forward authorization 🚨
|
||||
|
||||
Dozzle should work for most. It has been tested with hundreds of containers. However, it doesn't support offline searching. Products like [Loggly](https://www.loggly.com), [Papertrail](https://papertrailapp.com) or [Kibana](https://www.elastic.co/products/kibana) are more suited for full search capabilities.
|
||||
Dozzle has been tested with hundreds of containers. However, it doesn't support offline searching. Products like [Loggly](https://www.loggly.com), [Papertrail](https://papertrailapp.com) or [Kibana](https://www.elastic.co/products/kibana) are more suited for full search capabilities.
|
||||
|
||||
Dozzle doesn't cost any money and aims to focus on real-time debugging.
|
||||
## Getting Started
|
||||
|
||||
## Getting Dozzle
|
||||
|
||||
Dozzle is a very small Docker container (4 MB compressed). Pull the latest release from the index:
|
||||
Dozzle is a small container (4 MB compressed). Pull the latest release with:
|
||||
|
||||
$ docker pull amir20/dozzle:latest
|
||||
|
||||
## Using Dozzle
|
||||
### Running Dozzle
|
||||
|
||||
The simplest way to use dozzle is to run the docker container. Also, mount the Docker Unix socket with `--volume` to `/var/run/docker.sock`:
|
||||
|
||||
$ docker run --name dozzle -d --volume=/var/run/docker.sock:/var/run/docker.sock -p 8888:8080 amir20/dozzle:latest
|
||||
|
||||
Dozzle will be available at [http://localhost:8888/](http://localhost:8888/). You can change `-p 8888:8080` to any port. For example, if you want to view dozzle over port 4040 then you would do `-p 4040:8080`.
|
||||
Dozzle will be available at [http://localhost:8888/](http://localhost:8888/).
|
||||
|
||||
### Connecting with Docker compose
|
||||
|
||||
version: "3"
|
||||
services:
|
||||
dozzle:
|
||||
container_name: dozzle
|
||||
image: amir20/dozzle:latest
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
ports:
|
||||
- 9999:8080
|
||||
|
||||
### Connecting to remote hosts
|
||||
|
||||
Dozzle supports connecting to multiple remote hosts via `tcp://` using TLS or without. Appropriate certs need to be mounted for Dozzle to be able to successfully connect. At this point, `ssh://` is not supported because Dozzle docker image does not ship with any ssh clients.
|
||||
|
||||
To configure remote hosts, `--remote-host` or `DOZZLE_REMOTE_HOST` need to provided and the `pem` files need to be mounted to `/cert` directory. The `/cert` directory expects to have `/certs/{ca,cert,key}.pem` or `/certs/{host}/{ca,cert,key}.pem` in case of multiple hosts.
|
||||
|
||||
Below are examples of using `--remote-host` via CLI:
|
||||
|
||||
$ docker run -v /var/run/docker.sock:/var/run/docker.sock -v /path/to/certs:/certs -p 8080:8080 amir20/dozzle --remote-host tcp://167.99.1.1:2376
|
||||
|
||||
Multiple `--remote-host` flags can be used to specify multiple hosts.
|
||||
|
||||
Or to use compose:
|
||||
|
||||
version: "3"
|
||||
services:
|
||||
dozzle:
|
||||
image: amir20/dozzle:latest
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
- /path/to/certs:/certs
|
||||
ports:
|
||||
- 8080:8080
|
||||
environment:
|
||||
DOZZLE_REMOTE_HOST: tcp://167.99.1.1:2376,tcp://167.99.1.2:2376
|
||||
|
||||
You need to make sure appropriate certs are provided in `/certs/167.99.1.1/{ca,cert,key}.pem` and `/certs/167.99.1.2/{ca,cert,key}.pem` for both hosts to work.
|
||||
|
||||
### Adding health check
|
||||
|
||||
Dozzle doesn't enable healthcheck by default as it adds extra CPU usage. `healthcheck` can be enabled manually.
|
||||
Here is the Docker Compose file:
|
||||
|
||||
version: "3"
|
||||
services:
|
||||
@@ -90,43 +46,44 @@ Dozzle doesn't enable healthcheck by default as it adds extra CPU usage. `health
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
ports:
|
||||
- 8080:8080
|
||||
environment:
|
||||
DOZZLE_LEVEL: trace
|
||||
healthcheck:
|
||||
test: [ "CMD", "/dozzle", "healthcheck" ]
|
||||
interval: 3s
|
||||
timeout: 30s
|
||||
retries: 5
|
||||
start_period: 30s
|
||||
|
||||
#### Security
|
||||
For advanced options like [authentication](https://dozzle.dev/guide/authentication), [remote hosts](https://dozzle.dev/guide/remote-hosts) or common [questions](https://dozzle.dev/guide/faq) see documentation at [dozzle.dev](https://dozzle.dev/guide/getting-started).
|
||||
|
||||
You can control the device Dozzle binds to by passing `--addr` parameter. For example,
|
||||
## Technical Details
|
||||
|
||||
$ docker run --volume=/var/run/docker.sock:/var/run/docker.sock -p 8888:1224 amir20/dozzle:latest --addr localhost:1224
|
||||
Dozzle users automatic API negotiation which works with most Docker configurations. Dozzle also works with [Colima](https://github.com/abiosoft/colima) and [Podman](https://podman.io/).
|
||||
|
||||
will bind to `localhost` on port `1224`. You can then use a reverse proxy to control who can see dozzle.
|
||||
### Installation on podman
|
||||
|
||||
If you wish to restrict the containers shown you can pass the `--filter` parameter. For example,
|
||||
By default Podman doesn't have a background process but you can enable this for Dozzle to work.
|
||||
|
||||
$ docker run --volume=/var/run/docker.sock:/var/run/docker.sock -p 8888:1224 amir20/dozzle:latest --filter name=foo
|
||||
Verify first if your podman installation has enabled remote socket:
|
||||
|
||||
this would then only allow you to view containers with a name starting with "foo". You can use other filters like `status` as well, please check the official docker [command line docs](https://docs.docker.com/engine/reference/commandline/ps/#filtering) for available filters. Multiple `--filter` arguments can be provided.
|
||||
```
|
||||
podman info
|
||||
```
|
||||
|
||||
#### Authentication
|
||||
When you get under the key remote socket output like this, its already enabled:
|
||||
|
||||
Dozzle supports a very simple authentication out of the box with just username and password. You should deploy using SSL to keep the credentials safe. See configuration to use `--username` and `--password`. You can also use [docker secrets](https://docs.docker.com/engine/swarm/secrets/) `--usernamefile` and `--passwordfile`.
|
||||
```
|
||||
remoteSocket:
|
||||
exists: true
|
||||
path: /run/user/1000/podman/podman.sock
|
||||
```
|
||||
|
||||
#### Changing base URL
|
||||
If it's not enabled please follow [this tutorial](https://github.com/containers/podman/blob/main/docs/tutorials/socket_activation.md) to enable it.
|
||||
|
||||
Dozzle by default mounts to "/". If you want to control the base path you can use the `--base` option. For example, if you want to mount at "/foobar",
|
||||
then you can override by using `--base /foobar`. See env variables below for using `DOZZLE_BASE` to change this.
|
||||
Once you have the podman remote socket you can run Dozzle on podman.
|
||||
|
||||
$ docker run --volume=/var/run/docker.sock:/var/run/docker.sock -p 8080:8080 amir20/dozzle:latest --base /foobar
|
||||
```
|
||||
podman run --volume=/run/user/1000/podman/podman.sock:/var/run/docker.sock -d -p 8080:8080 amir20/dozzle:latest
|
||||
```
|
||||
|
||||
Dozzle will be available at [http://localhost:8080/foobar/](http://localhost:8080/foobar/).
|
||||
## Security
|
||||
|
||||
#### Analytics collected
|
||||
Dozzle supports file based authentication and forward proxy like [Authelia](https://www.authelia.com/). These are documented at https://dozzle.dev/guide/authentication.
|
||||
|
||||
## Analytics collected
|
||||
|
||||
Dozzle collects anonymous user configurations using Google Analytics. Why? Dozzle is an open source project with no funding. As a result, there is no time to do user studies of Dozzle. Analytics is collected to prioritize features and fixes based on how people use Dozzle. This data is completely public and can be viewed live using [ Data Studio dashboard](https://datastudio.google.com/s/naeIu0MiWsY).
|
||||
|
||||
@@ -150,78 +107,6 @@ Dozzle follows the [12-factor](https://12factor.net/) model. Configurations can
|
||||
| `--no-analytics` | `DOZZLE_NO_ANALYTICS` | false |
|
||||
| `--remote-host` | `DOZZLE_REMOTE_HOST` | |
|
||||
|
||||
## Troubleshooting and FAQs
|
||||
|
||||
<details>
|
||||
<summary>I installed Dozzle, but logs are slow or they never load. Help!</summary>
|
||||
|
||||
Dozzle uses Server Sent Events (SSE) which connects to a server using a HTTP stream without closing the connection. If any proxy tries to buffer this connection, then Dozzle never receives the data and hangs forever waiting for the reverse proxy to flush the buffer. Since version `1.23.0`, Dozzle sends the `X-Accel-Buffering: no` header which should stop reverse proxies buffering. However, some proxies may ignore this header. In those cases, you need to explicitly disable any buffering.
|
||||
|
||||
Below is an example with nginx and using `proxy_pass` to disable buffering.
|
||||
|
||||
```
|
||||
server {
|
||||
...
|
||||
|
||||
location / {
|
||||
proxy_pass http://<dozzle.container.ip.address>:8080;
|
||||
}
|
||||
|
||||
location /api {
|
||||
proxy_pass http://<dozzle.container.ip.address>:8080;
|
||||
|
||||
proxy_buffering off;
|
||||
proxy_cache off;
|
||||
}
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>What data does Dozzle collect?</summary>
|
||||
|
||||
Dozzle does collect some analytics. Analytics is anonymous usage tracking of the features which are used the most. See the section above on how to disable any analytic collection.
|
||||
|
||||
In the browser, Dozzle has a [strict](https://github.com/amir20/dozzle/blob/master/web/csp.go#L9) Content Security Policy which only allows the following policies:
|
||||
|
||||
- Allow connect to `api.github.com` to fetch most recent version.
|
||||
- Only allow `<script>` and `<style>` files from `self`
|
||||
|
||||
Dozzle opens all links with `rel="noopener"`.
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>We have tools that uses Dozzle when a new container is created. How can I get a direct link to a container by name?</summary>
|
||||
|
||||
Dozzle has a [special route](https://github.com/amir20/dozzle/blob/master/assets/pages/Show.vue) that can be used to search containers by name and then forward to that container. For example, if you have a container with name `"foo.bar"` and id `abc123`, you can send your users to `/show?name=foo.bar` which will be forwarded to `/container/abc123`.
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>I installed Dozzle but memory consumption doesn't show up!</summary>
|
||||
|
||||
_This is an issue specific to ARM devices_
|
||||
|
||||
Dozzle uses the Docker API to gather information about the containers' memory usage. If the memory usage is not showing up, then it is likely that the Docker API is not returning the memory usage.
|
||||
|
||||
You can verify this by running `docker info`, and you should see the following:
|
||||
|
||||
```
|
||||
WARNING: No memory limit support
|
||||
WARNING: No swap limit support
|
||||
```
|
||||
|
||||
In this case, you'll need to add the following line to your `/boot/cmdline.txt` file and reboot your device.
|
||||
|
||||
```
|
||||
cgroup_enable=cpuset cgroup_enable=memory cgroup_memory=1
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## License
|
||||
|
||||
[MIT](LICENSE)
|
||||
@@ -232,6 +117,6 @@ To Build and test locally:
|
||||
|
||||
1. Install [NodeJs](https://nodejs.org/en/download/) and [pnpm](https://pnpm.io/installation).
|
||||
2. Install [Go](https://go.dev/doc/install).
|
||||
3. Install [reflex](https://github.com/cespare/reflex) with `go get -u github.com/cespare/reflex` outside of dozzle.
|
||||
3. Install [reflex](https://github.com/cespare/reflex) with `go install github.com/cespare/reflex@latest`.
|
||||
4. Install node modules `pnpm install`.
|
||||
5. Do `pnpm dev`
|
||||
|
||||
Vendored
+1
-1
@@ -44,6 +44,7 @@ declare module 'vue' {
|
||||
LogViewer: typeof import('./components/LogViewer/LogViewer.vue')['default']
|
||||
LogViewerWithSource: typeof import('./components/LogViewer/LogViewerWithSource.vue')['default']
|
||||
'Mdi:arrowUp': typeof import('~icons/mdi/arrow-up')['default']
|
||||
'Mdi:check': typeof import('~icons/mdi/check')['default']
|
||||
'Mdi:chevronDoubleDown': typeof import('~icons/mdi/chevron-double-down')['default']
|
||||
'Mdi:chevronLeft': typeof import('~icons/mdi/chevron-left')['default']
|
||||
'Mdi:chevronRight': typeof import('~icons/mdi/chevron-right')['default']
|
||||
@@ -53,7 +54,6 @@ declare module 'vue' {
|
||||
'Mdi:keyboardEsc': typeof import('~icons/mdi/keyboard-esc')['default']
|
||||
'Mdi:logout': typeof import('~icons/mdi/logout')['default']
|
||||
'Mdi:magnify': typeof import('~icons/mdi/magnify')['default']
|
||||
'MdiLight:check': typeof import('~icons/mdi/check')['default']
|
||||
MobileMenu: typeof import('./components/common/MobileMenu.vue')['default']
|
||||
'Octicon:container24': typeof import('~icons/octicon/container24')['default']
|
||||
'Octicon:download24': typeof import('~icons/octicon/download24')['default']
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<slot>
|
||||
<li v-for="item in options">
|
||||
<a @click="modelValue = item.value">
|
||||
<mdi-light:check class="w-4" v-if="modelValue == item.value" />
|
||||
<mdi:check class="w-4" v-if="modelValue == item.value" />
|
||||
<div v-else class="w-4"></div>
|
||||
{{ item.label }}
|
||||
</a>
|
||||
|
||||
@@ -144,7 +144,15 @@ export class SkippedLogsEntry extends LogEntry<string> {
|
||||
}
|
||||
|
||||
export function asLogEntry(event: LogEvent): LogEntry<string | JSONObject> {
|
||||
if (typeof event.m === "string") {
|
||||
if (isObject(event.m)) {
|
||||
return new ComplexLogEntry(
|
||||
event.m,
|
||||
event.id,
|
||||
new Date(event.ts),
|
||||
event.l,
|
||||
event.s === "unknown" ? "stderr" : event.s ?? "stderr",
|
||||
);
|
||||
} else {
|
||||
return new SimpleLogEntry(
|
||||
event.m,
|
||||
event.id,
|
||||
@@ -153,13 +161,5 @@ export function asLogEntry(event: LogEvent): LogEntry<string | JSONObject> {
|
||||
event.p,
|
||||
event.s === "unknown" ? "stderr" : event.s ?? "stderr",
|
||||
);
|
||||
} else {
|
||||
return new ComplexLogEntry(
|
||||
event.m,
|
||||
event.id,
|
||||
new Date(event.ts),
|
||||
event.l,
|
||||
event.s === "unknown" ? "stderr" : event.s ?? "stderr",
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,12 +33,14 @@ export const DEFAULT_SETTINGS: Settings = {
|
||||
export const settings = useStorage(DOZZLE_SETTINGS_KEY, DEFAULT_SETTINGS);
|
||||
settings.value = { ...DEFAULT_SETTINGS, ...settings.value, ...config.serverSettings };
|
||||
|
||||
watch(settings, (value) => {
|
||||
fetch(withBase("/api/profile/settings"), {
|
||||
method: "PUT",
|
||||
body: JSON.stringify(value),
|
||||
if (config.user) {
|
||||
watch(settings, (value) => {
|
||||
fetch(withBase("/api/profile/settings"), {
|
||||
method: "PUT",
|
||||
body: JSON.stringify(value),
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
export const {
|
||||
collapseNav,
|
||||
|
||||
+4
-4
@@ -4,11 +4,11 @@
|
||||
"name": "docs",
|
||||
"devDependencies": {
|
||||
"@netlify/functions": "^2.3.0",
|
||||
"@unocss/preset-typography": "^0.57.1",
|
||||
"@unocss/reset": "^0.57.1",
|
||||
"@unocss/transformer-directives": "^0.57.1",
|
||||
"@unocss/preset-typography": "^0.57.2",
|
||||
"@unocss/reset": "^0.57.2",
|
||||
"@unocss/transformer-directives": "^0.57.2",
|
||||
"dozzle": "workspace:*",
|
||||
"sitemap": "^7.1.1",
|
||||
"unocss": "^0.57.1"
|
||||
"unocss": "^0.57.2"
|
||||
}
|
||||
}
|
||||
|
||||
Generated
+119
-119
@@ -9,14 +9,14 @@ devDependencies:
|
||||
specifier: ^2.3.0
|
||||
version: 2.3.0
|
||||
'@unocss/preset-typography':
|
||||
specifier: ^0.57.1
|
||||
version: 0.57.1
|
||||
specifier: ^0.57.2
|
||||
version: 0.57.2
|
||||
'@unocss/reset':
|
||||
specifier: ^0.57.1
|
||||
version: 0.57.1
|
||||
specifier: ^0.57.2
|
||||
version: 0.57.2
|
||||
'@unocss/transformer-directives':
|
||||
specifier: ^0.57.1
|
||||
version: 0.57.1
|
||||
specifier: ^0.57.2
|
||||
version: 0.57.2
|
||||
dozzle:
|
||||
specifier: workspace:*
|
||||
version: link:..
|
||||
@@ -24,8 +24,8 @@ devDependencies:
|
||||
specifier: ^7.1.1
|
||||
version: 7.1.1
|
||||
unocss:
|
||||
specifier: ^0.57.1
|
||||
version: 0.57.1(postcss@8.4.31)(vite@4.5.0)
|
||||
specifier: ^0.57.2
|
||||
version: 0.57.2(postcss@8.4.31)(vite@4.5.0)
|
||||
|
||||
packages:
|
||||
|
||||
@@ -367,32 +367,32 @@ packages:
|
||||
'@types/node': 17.0.45
|
||||
dev: true
|
||||
|
||||
/@unocss/astro@0.57.1(vite@4.5.0):
|
||||
resolution: {integrity: sha512-KNaqN/SGM/uz1QitajIkzNEw0jy9Zx9Wp8fl4GhfGYEMAN2+M4cuvBZRmlb6cLctSXmSAJQDG91ivbD1JijGnw==}
|
||||
/@unocss/astro@0.57.2(vite@4.5.0):
|
||||
resolution: {integrity: sha512-6R6xJVD1n+OrgRwLtiw6fi8/Mx9lECB9wiqRo/liWH27lEWrToXKpgX3oTGGihQQceGNukGe6O4lBThYUILgEQ==}
|
||||
peerDependencies:
|
||||
vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0
|
||||
peerDependenciesMeta:
|
||||
vite:
|
||||
optional: true
|
||||
dependencies:
|
||||
'@unocss/core': 0.57.1
|
||||
'@unocss/reset': 0.57.1
|
||||
'@unocss/vite': 0.57.1(vite@4.5.0)
|
||||
'@unocss/core': 0.57.2
|
||||
'@unocss/reset': 0.57.2
|
||||
'@unocss/vite': 0.57.2(vite@4.5.0)
|
||||
vite: 4.5.0
|
||||
transitivePeerDependencies:
|
||||
- rollup
|
||||
dev: true
|
||||
|
||||
/@unocss/cli@0.57.1:
|
||||
resolution: {integrity: sha512-wKuOaygrPNzDm5L7+2SfHsIi3knJrAQ8nH6OasVqB+bGDz6ybDlULV7wvUco6Os72ydh7YbWC2/WpqFii8U/3w==}
|
||||
/@unocss/cli@0.57.2:
|
||||
resolution: {integrity: sha512-Poz20X4q7rCu9oBnF8/vNGzCKU9M32xlyeeWoExho0nwh8WJ9JaZ8E8ijcLWeS7YUt1kLOdrsQlppcq+I8o2nQ==}
|
||||
engines: {node: '>=14'}
|
||||
hasBin: true
|
||||
dependencies:
|
||||
'@ampproject/remapping': 2.2.1
|
||||
'@rollup/pluginutils': 5.0.5
|
||||
'@unocss/config': 0.57.1
|
||||
'@unocss/core': 0.57.1
|
||||
'@unocss/preset-uno': 0.57.1
|
||||
'@unocss/config': 0.57.2
|
||||
'@unocss/core': 0.57.2
|
||||
'@unocss/preset-uno': 0.57.2
|
||||
cac: 6.7.14
|
||||
chokidar: 3.5.3
|
||||
colorette: 2.0.20
|
||||
@@ -405,168 +405,168 @@ packages:
|
||||
- rollup
|
||||
dev: true
|
||||
|
||||
/@unocss/config@0.57.1:
|
||||
resolution: {integrity: sha512-mbuVO0mH1PX7rEkViMNWb3jG1ji7TUydo2DdnMHhJE+dOrGtnQzhzXGlAd4qqel1fnt/VWuOyZKwJA3QO6VCtg==}
|
||||
/@unocss/config@0.57.2:
|
||||
resolution: {integrity: sha512-C+uZPz4lYN8dft0dKRRiBBtDIyd+RdYlbaQhuQp5F7UEfJeEPH8HpdiF+FeKZVJxP4j7kaGfcGWEJj1ImC/g9A==}
|
||||
engines: {node: '>=14'}
|
||||
dependencies:
|
||||
'@unocss/core': 0.57.1
|
||||
'@unocss/core': 0.57.2
|
||||
unconfig: 0.3.11
|
||||
dev: true
|
||||
|
||||
/@unocss/core@0.57.1:
|
||||
resolution: {integrity: sha512-cqQW/4gCuk+bFMPg9lBanuRNQ9Lx1l4PpMN/6uKxI5WROpq7ce/Xb4uGvAxKLh3ITtFSpXs2cLfsy7QD6cVD/Q==}
|
||||
/@unocss/core@0.57.2:
|
||||
resolution: {integrity: sha512-iTmowhObigxeqcxtEW4v+mAEQtFslifTG0Fiw8kXs3+t4L6fcnjj0i7/FtBbz+nOxrWyt2EzdkUyjpLGQa/yCw==}
|
||||
dev: true
|
||||
|
||||
/@unocss/extractor-arbitrary-variants@0.57.1:
|
||||
resolution: {integrity: sha512-9s+azHhBnwjxm46TsD1RY0krDAwOR8tcw58Vtl3emd6C0VQsAOdoprt7UHE7GEXMvDVq7nMf8lAT0BM0LteW3w==}
|
||||
/@unocss/extractor-arbitrary-variants@0.57.2:
|
||||
resolution: {integrity: sha512-f6sc8pfgHbJua1VzdpFSPW92lNyIBRl93avRNk+HM4iWAhxBPD3LsCxSS7kOnQg2tFe6YsRkm8QkuF6SjFq1AA==}
|
||||
dependencies:
|
||||
'@unocss/core': 0.57.1
|
||||
'@unocss/core': 0.57.2
|
||||
dev: true
|
||||
|
||||
/@unocss/inspector@0.57.1:
|
||||
resolution: {integrity: sha512-qV7ta7iHGX2EpZJ4IWY/05kgyhKFeWlvVJbrOnGsaH8gVt33T/43YAhB/8K5GIXBXIwkhwk13iB13nlg2gSheg==}
|
||||
/@unocss/inspector@0.57.2:
|
||||
resolution: {integrity: sha512-W82xj5oOi7fGSGuV+GvgwZVWH0xCthIgqEscZEwtphiIconswwV8zZjrwzt/gMXmvYv8qx9+QDKmlhVQnJJj6w==}
|
||||
dependencies:
|
||||
'@unocss/rule-utils': 0.57.1
|
||||
'@unocss/rule-utils': 0.57.2
|
||||
gzip-size: 6.0.0
|
||||
sirv: 2.0.3
|
||||
dev: true
|
||||
|
||||
/@unocss/postcss@0.57.1(postcss@8.4.31):
|
||||
resolution: {integrity: sha512-DexrV+v/qkVh6t660rXigNr2Y6lON8jxD1z2KVk2bjHKhFflF6q6seps6d/MquyLJI1mXF2uANTeFAeL2q6evw==}
|
||||
/@unocss/postcss@0.57.2(postcss@8.4.31):
|
||||
resolution: {integrity: sha512-OygjXgHkBPCQ6rc7Zo5vd2KDn4XUikTA1knz67oSiPFZLjUmmhzMc/XtckBITzougMNktv1qH1vECGAbKx+FNA==}
|
||||
engines: {node: '>=14'}
|
||||
peerDependencies:
|
||||
postcss: ^8.4.21
|
||||
dependencies:
|
||||
'@unocss/config': 0.57.1
|
||||
'@unocss/core': 0.57.1
|
||||
'@unocss/rule-utils': 0.57.1
|
||||
'@unocss/config': 0.57.2
|
||||
'@unocss/core': 0.57.2
|
||||
'@unocss/rule-utils': 0.57.2
|
||||
css-tree: 2.3.1
|
||||
fast-glob: 3.3.1
|
||||
magic-string: 0.30.5
|
||||
postcss: 8.4.31
|
||||
dev: true
|
||||
|
||||
/@unocss/preset-attributify@0.57.1:
|
||||
resolution: {integrity: sha512-pvGQHaqBlB0jQysWhNbcKLOGrkj8b53k0sAa9LYxQjD1fa8t/dwbuMpZv4twX+gysF0vBhxRoWBPLH1/S6zRZg==}
|
||||
/@unocss/preset-attributify@0.57.2:
|
||||
resolution: {integrity: sha512-OQh/vqR5PbPjOFJLizw4wrvSIrkHKyTTGaFObi0exeREW2XYslTs44Y+uEQc+GTriYDX9A2cKJDKu7vT7VVEIg==}
|
||||
dependencies:
|
||||
'@unocss/core': 0.57.1
|
||||
'@unocss/core': 0.57.2
|
||||
dev: true
|
||||
|
||||
/@unocss/preset-icons@0.57.1:
|
||||
resolution: {integrity: sha512-ve4jC6yREfS0mv97DCld9xLjMuiSCcsQPKucdtpUfCjLMqtGd1ZGGdFv02Q+92NkW7HDfgj+izEw1SKh9695Ow==}
|
||||
/@unocss/preset-icons@0.57.2:
|
||||
resolution: {integrity: sha512-LlKt83+QLVvbeCCOetq20t5iUnFA+8nIL4mc1bscdK0nyVqspkZkcM8F6uqRwHcMitEbReq1K5kS99qzwUieVQ==}
|
||||
dependencies:
|
||||
'@iconify/utils': 2.1.11
|
||||
'@unocss/core': 0.57.1
|
||||
'@unocss/core': 0.57.2
|
||||
ofetch: 1.3.3
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/@unocss/preset-mini@0.57.1:
|
||||
resolution: {integrity: sha512-v9ZsIUGDfZNXbIrOc7zrBp+RFbFFGSQN/vKIf761js4fJ31j6lan4pPQPGcY17xHConkI1HJT/+yb/UVJaAcHw==}
|
||||
/@unocss/preset-mini@0.57.2:
|
||||
resolution: {integrity: sha512-ZahZ8TWa40SVnJw6fYFhYzLFMCZU3obMBNl0otallevoooKLXIDZL2VmHxFDqCvwaAk9DYsAzPrqUpNWr6bPgA==}
|
||||
dependencies:
|
||||
'@unocss/core': 0.57.1
|
||||
'@unocss/extractor-arbitrary-variants': 0.57.1
|
||||
'@unocss/rule-utils': 0.57.1
|
||||
'@unocss/core': 0.57.2
|
||||
'@unocss/extractor-arbitrary-variants': 0.57.2
|
||||
'@unocss/rule-utils': 0.57.2
|
||||
dev: true
|
||||
|
||||
/@unocss/preset-tagify@0.57.1:
|
||||
resolution: {integrity: sha512-GV8knxnsOVH/XiG2KB+mVZeEJqr0PZvvkSTPftGPbjttoKVZ+28Y5q9/qezH7p4W6RYVAAK+3qHHy5wWZosiMw==}
|
||||
/@unocss/preset-tagify@0.57.2:
|
||||
resolution: {integrity: sha512-ISebsMHcbUoZG9CoUBA1qDxAGVZ4izXLtQwWde6tb50xIrVSHt1bbfNSgZ/c2RJR1c3fBjn0dzfXVzOHDnFejA==}
|
||||
dependencies:
|
||||
'@unocss/core': 0.57.1
|
||||
'@unocss/core': 0.57.2
|
||||
dev: true
|
||||
|
||||
/@unocss/preset-typography@0.57.1:
|
||||
resolution: {integrity: sha512-C4cqCiGW0OSoSXsVQKgfLulYxY5C8M40f+a8VtBlAaEaN6eSlEt+catXb0chF9T2mvz/b87b0PahPvPwJdDf1Q==}
|
||||
/@unocss/preset-typography@0.57.2:
|
||||
resolution: {integrity: sha512-THCHKzt1Jc8rdt8Ft1DhKxm191QvtiW3+mfkbYvGUUOklIztVspNTSs6iS0Vr6EZWjhLzmUYevq8va+Zk4P91A==}
|
||||
dependencies:
|
||||
'@unocss/core': 0.57.1
|
||||
'@unocss/preset-mini': 0.57.1
|
||||
'@unocss/core': 0.57.2
|
||||
'@unocss/preset-mini': 0.57.2
|
||||
dev: true
|
||||
|
||||
/@unocss/preset-uno@0.57.1:
|
||||
resolution: {integrity: sha512-0+DKZiowYjYzq2swJzQA2dhqDvLJdm0Y437ITzc2GzZMKGUUuNi+w2v3/SzwkpkRd9zTB9/YaOIJVfdrx6ZOXQ==}
|
||||
/@unocss/preset-uno@0.57.2:
|
||||
resolution: {integrity: sha512-A5fZmz8i1fSwKMUN8olRAUskkTAPjFsdw19Iem5yOHtK/9NYM3eQPaHDdHldhfZ7/51oF27poavdPfe8KKugQQ==}
|
||||
dependencies:
|
||||
'@unocss/core': 0.57.1
|
||||
'@unocss/preset-mini': 0.57.1
|
||||
'@unocss/preset-wind': 0.57.1
|
||||
'@unocss/rule-utils': 0.57.1
|
||||
'@unocss/core': 0.57.2
|
||||
'@unocss/preset-mini': 0.57.2
|
||||
'@unocss/preset-wind': 0.57.2
|
||||
'@unocss/rule-utils': 0.57.2
|
||||
dev: true
|
||||
|
||||
/@unocss/preset-web-fonts@0.57.1:
|
||||
resolution: {integrity: sha512-9DCIMlBRaGrljLmeciH4WqP+uRx2z2nLxvrvEmGbpJJpMn2H4higR5Zu5tDyKYGr9QBl9vXdWgib+43OSswkqA==}
|
||||
/@unocss/preset-web-fonts@0.57.2:
|
||||
resolution: {integrity: sha512-Ymy1N/X7lRzsb551V/SE6EtVdWmBNjW9dFz8viuHuchgjBrq9wF6IBhCG+nrBoUqlz0Jj5piGd/M/OHHQ0Qseg==}
|
||||
dependencies:
|
||||
'@unocss/core': 0.57.1
|
||||
'@unocss/core': 0.57.2
|
||||
ofetch: 1.3.3
|
||||
dev: true
|
||||
|
||||
/@unocss/preset-wind@0.57.1:
|
||||
resolution: {integrity: sha512-5UairNahUXNDe9AggPtTCodyPjl6NgPCsiEB22LVgN20UjBXjaqzN5wUe1OgtpLoAUaSk0KI7eLWhnWbTbST3A==}
|
||||
/@unocss/preset-wind@0.57.2:
|
||||
resolution: {integrity: sha512-d8s4PFcIakzcmAoECTY3Ft2Wtb5nn+AvVGj5j52YpVt5ShTuGVlk5UbF9kpfEfzLigtkHcNivM24D1UTfR/MBg==}
|
||||
dependencies:
|
||||
'@unocss/core': 0.57.1
|
||||
'@unocss/preset-mini': 0.57.1
|
||||
'@unocss/rule-utils': 0.57.1
|
||||
'@unocss/core': 0.57.2
|
||||
'@unocss/preset-mini': 0.57.2
|
||||
'@unocss/rule-utils': 0.57.2
|
||||
dev: true
|
||||
|
||||
/@unocss/reset@0.57.1:
|
||||
resolution: {integrity: sha512-f/ofoudjFN/HMtv1XV5phP58pOmNruBhr0GbVdBNylyieMQkFHowA7iSemChnC/fTbCcY6oSOAcFl4n9AefjdA==}
|
||||
/@unocss/reset@0.57.2:
|
||||
resolution: {integrity: sha512-e9N5R9ZqbBhePa5ehK63LhU57nlgP3MSG4zblXv61SzBm1xIoTuhj7HX3OVJaMeDsrgazRlndSYNhSfD/ziPxg==}
|
||||
dev: true
|
||||
|
||||
/@unocss/rule-utils@0.57.1:
|
||||
resolution: {integrity: sha512-Hdicz7YORZx7SHICldzOGjPNeJwk/Xhy3cycqiPbg6nB6d639bpgZn5BsbDzHCPKpguwDomUqTZS6+C3s7tUVg==}
|
||||
/@unocss/rule-utils@0.57.2:
|
||||
resolution: {integrity: sha512-fgAc5gkZo8JLDe9vMisofSck3k1nN05+kblKhrEaq/+gS5bxHzL9VNExtiTbT00wyMKGjak/uC7qDMbdVmUhYg==}
|
||||
engines: {node: '>=14'}
|
||||
dependencies:
|
||||
'@unocss/core': 0.57.1
|
||||
'@unocss/core': 0.57.2
|
||||
magic-string: 0.30.5
|
||||
dev: true
|
||||
|
||||
/@unocss/scope@0.57.1:
|
||||
resolution: {integrity: sha512-ZAzg6lLGwKNQGCvJXEie3TvGztkAyajEFqygu0mjtHb+CmDql4iAjoygs+3dnRI5hSDwfMYFrJ2azX26+2CsoA==}
|
||||
/@unocss/scope@0.57.2:
|
||||
resolution: {integrity: sha512-UPDCOSvkCDCvQXCAlpRDXLQDYnAYFjGerXtjHigaB+uzJ7Ds4p1yZxcOu6ds6jhcr2kt3Y56Lp3nTqf7tncM0g==}
|
||||
dev: true
|
||||
|
||||
/@unocss/transformer-attributify-jsx-babel@0.57.1:
|
||||
resolution: {integrity: sha512-EOCPB8OGmhroAuFU0i0W5p6GmJpx6mAkP4KmsqVLd4QMgw+8aXkG7SKyLnxQZnekM0/dSo0TcpVGeGrZaUNgvQ==}
|
||||
/@unocss/transformer-attributify-jsx-babel@0.57.2:
|
||||
resolution: {integrity: sha512-SKx4B0oIv1+F2lzmUyxbMlJ6xqoycPQUazaI1XD29pqkRaqEFYE5RBEZwUwLhLp0ksSyIy2lTtzZYBWQHUs5mw==}
|
||||
dependencies:
|
||||
'@unocss/core': 0.57.1
|
||||
'@unocss/core': 0.57.2
|
||||
dev: true
|
||||
|
||||
/@unocss/transformer-attributify-jsx@0.57.1:
|
||||
resolution: {integrity: sha512-ohgSEwm2j98ltPWl1zRPvZhRjQPpd7qZtgoROTQh6n2W7wEO1SlnYjgBBz+pGuo2dkfBN5NjuZJ93AEjS10Ysw==}
|
||||
/@unocss/transformer-attributify-jsx@0.57.2:
|
||||
resolution: {integrity: sha512-6KFOp5ldBoWEA0DPAw+uh7FUglyqBU60IeRmyLASLbaz9BPT7ut1rAP7LyIXW78NIi+biwzxQq9FQSbDEFQ4QQ==}
|
||||
dependencies:
|
||||
'@unocss/core': 0.57.1
|
||||
'@unocss/core': 0.57.2
|
||||
dev: true
|
||||
|
||||
/@unocss/transformer-compile-class@0.57.1:
|
||||
resolution: {integrity: sha512-z0WZN6hbgpyBm2xqIrojqEjpQMhiyzHRbaBjWzI/6ieHWoFo5ajIwnReaFUEfJRNruLTd7/9hFDZdRXRPhttFw==}
|
||||
/@unocss/transformer-compile-class@0.57.2:
|
||||
resolution: {integrity: sha512-le2H/kYSMobRSo9XzBv6E6jorrCpxdCS7N3hQ+GpRocJasriebffDgRG/m9hVRJvsTgjpYTxbNZkm0KUjGXsmw==}
|
||||
dependencies:
|
||||
'@unocss/core': 0.57.1
|
||||
'@unocss/core': 0.57.2
|
||||
dev: true
|
||||
|
||||
/@unocss/transformer-directives@0.57.1:
|
||||
resolution: {integrity: sha512-rIk3XEU2NywEJUOkngBSmJfvS3IVgxkkqgMvuIqz8ZDbwWhepuMxsiI0QR3ypkipGr/eKK5DJ7eK0OVlo6FPFA==}
|
||||
/@unocss/transformer-directives@0.57.2:
|
||||
resolution: {integrity: sha512-7pQROj/GPsqMig+t7ntzKi4rY/lvSrE/A0PiBJsFJt328PAa+wnzgCDWkL/FNnhhbXi4BIYSq0V2v+YACwPBVQ==}
|
||||
dependencies:
|
||||
'@unocss/core': 0.57.1
|
||||
'@unocss/rule-utils': 0.57.1
|
||||
'@unocss/core': 0.57.2
|
||||
'@unocss/rule-utils': 0.57.2
|
||||
css-tree: 2.3.1
|
||||
dev: true
|
||||
|
||||
/@unocss/transformer-variant-group@0.57.1:
|
||||
resolution: {integrity: sha512-qwydzn2Lqz/8zW6UUXdORaUl8humsG8ll74LN/z8cjEsqtXZkVdkV0l6Brpp9Xp/XPbKwO+II+KH3/1LGwXSzQ==}
|
||||
/@unocss/transformer-variant-group@0.57.2:
|
||||
resolution: {integrity: sha512-Xik8auIUfVr5xQ6M/CggnrIu5wD9h1tqdbxy5ci9+RQvtmUfrh9m09MfRXxHZWTRQOruGjV63U6rfVzo9X74eA==}
|
||||
dependencies:
|
||||
'@unocss/core': 0.57.1
|
||||
'@unocss/core': 0.57.2
|
||||
dev: true
|
||||
|
||||
/@unocss/vite@0.57.1(vite@4.5.0):
|
||||
resolution: {integrity: sha512-kEBDvGgQNkX2n87S6Ao5seyFb1kuWZ5p96dGOS7VFpD7HvR5xholkJXaVhUK9/exCldjLExbo5UtVlbxFLUFYg==}
|
||||
/@unocss/vite@0.57.2(vite@4.5.0):
|
||||
resolution: {integrity: sha512-PoyqYsgTSzRE7umfp5Qpdt29ZmYD24M4WIQhATIDkJQm26f/KME6SMcQO1ybLWgkJgrHoenO9QJo+/W8tId/uA==}
|
||||
peerDependencies:
|
||||
vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0
|
||||
dependencies:
|
||||
'@ampproject/remapping': 2.2.1
|
||||
'@rollup/pluginutils': 5.0.5
|
||||
'@unocss/config': 0.57.1
|
||||
'@unocss/core': 0.57.1
|
||||
'@unocss/inspector': 0.57.1
|
||||
'@unocss/scope': 0.57.1
|
||||
'@unocss/transformer-directives': 0.57.1
|
||||
'@unocss/config': 0.57.2
|
||||
'@unocss/core': 0.57.2
|
||||
'@unocss/inspector': 0.57.2
|
||||
'@unocss/scope': 0.57.2
|
||||
'@unocss/transformer-directives': 0.57.2
|
||||
chokidar: 3.5.3
|
||||
fast-glob: 3.3.1
|
||||
magic-string: 0.30.5
|
||||
@@ -1101,11 +1101,11 @@ packages:
|
||||
mlly: 1.4.2
|
||||
dev: true
|
||||
|
||||
/unocss@0.57.1(postcss@8.4.31)(vite@4.5.0):
|
||||
resolution: {integrity: sha512-xLsyJ8+T1/Ux93yrqOvuQy268wF5rSzydlsbqZ5EVfi01PxYyydez3nycPqbyPZientkJ0Yohzd5aBqmZgku3A==}
|
||||
/unocss@0.57.2(postcss@8.4.31)(vite@4.5.0):
|
||||
resolution: {integrity: sha512-Wmh/a+iXSaDnf6KCf0JtzZ9AoY//fxXLadiXvuTuM4aGEcItHzgt0IeZPs4+ab60usebQBsDyWV5Yr/lgiQ4bQ==}
|
||||
engines: {node: '>=14'}
|
||||
peerDependencies:
|
||||
'@unocss/webpack': 0.57.1
|
||||
'@unocss/webpack': 0.57.2
|
||||
vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0
|
||||
peerDependenciesMeta:
|
||||
'@unocss/webpack':
|
||||
@@ -1113,26 +1113,26 @@ packages:
|
||||
vite:
|
||||
optional: true
|
||||
dependencies:
|
||||
'@unocss/astro': 0.57.1(vite@4.5.0)
|
||||
'@unocss/cli': 0.57.1
|
||||
'@unocss/core': 0.57.1
|
||||
'@unocss/extractor-arbitrary-variants': 0.57.1
|
||||
'@unocss/postcss': 0.57.1(postcss@8.4.31)
|
||||
'@unocss/preset-attributify': 0.57.1
|
||||
'@unocss/preset-icons': 0.57.1
|
||||
'@unocss/preset-mini': 0.57.1
|
||||
'@unocss/preset-tagify': 0.57.1
|
||||
'@unocss/preset-typography': 0.57.1
|
||||
'@unocss/preset-uno': 0.57.1
|
||||
'@unocss/preset-web-fonts': 0.57.1
|
||||
'@unocss/preset-wind': 0.57.1
|
||||
'@unocss/reset': 0.57.1
|
||||
'@unocss/transformer-attributify-jsx': 0.57.1
|
||||
'@unocss/transformer-attributify-jsx-babel': 0.57.1
|
||||
'@unocss/transformer-compile-class': 0.57.1
|
||||
'@unocss/transformer-directives': 0.57.1
|
||||
'@unocss/transformer-variant-group': 0.57.1
|
||||
'@unocss/vite': 0.57.1(vite@4.5.0)
|
||||
'@unocss/astro': 0.57.2(vite@4.5.0)
|
||||
'@unocss/cli': 0.57.2
|
||||
'@unocss/core': 0.57.2
|
||||
'@unocss/extractor-arbitrary-variants': 0.57.2
|
||||
'@unocss/postcss': 0.57.2(postcss@8.4.31)
|
||||
'@unocss/preset-attributify': 0.57.2
|
||||
'@unocss/preset-icons': 0.57.2
|
||||
'@unocss/preset-mini': 0.57.2
|
||||
'@unocss/preset-tagify': 0.57.2
|
||||
'@unocss/preset-typography': 0.57.2
|
||||
'@unocss/preset-uno': 0.57.2
|
||||
'@unocss/preset-web-fonts': 0.57.2
|
||||
'@unocss/preset-wind': 0.57.2
|
||||
'@unocss/reset': 0.57.2
|
||||
'@unocss/transformer-attributify-jsx': 0.57.2
|
||||
'@unocss/transformer-attributify-jsx-babel': 0.57.2
|
||||
'@unocss/transformer-compile-class': 0.57.2
|
||||
'@unocss/transformer-directives': 0.57.2
|
||||
'@unocss/transformer-variant-group': 0.57.2
|
||||
'@unocss/vite': 0.57.2(vite@4.5.0)
|
||||
vite: 4.5.0
|
||||
transitivePeerDependencies:
|
||||
- postcss
|
||||
|
||||
@@ -23,16 +23,18 @@ require (
|
||||
github.com/stretchr/testify v1.8.4
|
||||
golang.org/x/net v0.14.0 // indirect
|
||||
golang.org/x/sys v0.11.0 // indirect
|
||||
gopkg.in/yaml.v3 v3.0.1 // indirect
|
||||
gopkg.in/yaml.v3 v3.0.1
|
||||
)
|
||||
|
||||
require github.com/go-chi/chi/v5 v5.0.10
|
||||
require (
|
||||
github.com/go-chi/chi/v5 v5.0.10
|
||||
github.com/go-chi/jwtauth/v5 v5.1.1
|
||||
)
|
||||
|
||||
require (
|
||||
github.com/alexflint/go-scalar v1.2.0 // indirect
|
||||
github.com/davecgh/go-spew v1.1.1 // indirect
|
||||
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 // indirect
|
||||
github.com/go-chi/jwtauth/v5 v5.1.1 // indirect
|
||||
github.com/goccy/go-json v0.10.2 // indirect
|
||||
github.com/google/go-cmp v0.5.5 // indirect
|
||||
github.com/gorilla/securecookie v1.1.1 // indirect
|
||||
|
||||
@@ -66,10 +66,6 @@ github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 h1:8UrgZ3GkP4i/CLijOJx79Yu+etly
|
||||
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0/go.mod h1:v57UDF4pDQJcEfFUCRop3lJL149eHGSe9Jvczhzjo/0=
|
||||
github.com/docker/distribution v2.8.2+incompatible h1:T3de5rq0dB1j30rp0sA2rER+m322EBzniBPB6ZIzuh8=
|
||||
github.com/docker/distribution v2.8.2+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w=
|
||||
github.com/docker/docker v24.0.5+incompatible h1:WmgcE4fxyI6EEXxBRxsHnZXrO1pQ3smi0k/jho4HLeY=
|
||||
github.com/docker/docker v24.0.5+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
|
||||
github.com/docker/docker v24.0.6+incompatible h1:hceabKCtUgDqPu+qm0NgsaXf28Ljf4/pWFL7xjWWDgE=
|
||||
github.com/docker/docker v24.0.6+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
|
||||
github.com/docker/docker v24.0.7+incompatible h1:Wo6l37AuwP3JaMnZa226lzVXGA3F9Ig1seQen0cKYlM=
|
||||
github.com/docker/docker v24.0.7+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
|
||||
github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ=
|
||||
@@ -207,8 +203,6 @@ github.com/sergi/go-diff v1.1.0 h1:we8PVUC3FE2uYfodKH/nBHMSetSfHDR6scGdBi+erh0=
|
||||
github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM=
|
||||
github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ=
|
||||
github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
|
||||
github.com/spf13/afero v1.9.5 h1:stMpOSZFs//0Lv29HduCmli3GUfpFoF3Y1Q/aXj/wVM=
|
||||
github.com/spf13/afero v1.9.5/go.mod h1:UBogFpq8E9Hx+xc5CNTTEpTnuHVmXDwZcZcE1eb/UhQ=
|
||||
github.com/spf13/afero v1.10.0 h1:EaGW2JJh15aKOejeuJ+wpFSHnbd7GE6Wvp3TsNhb6LY=
|
||||
github.com/spf13/afero v1.10.0/go.mod h1:UBogFpq8E9Hx+xc5CNTTEpTnuHVmXDwZcZcE1eb/UhQ=
|
||||
github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
|
||||
|
||||
+17
-51
@@ -7,10 +7,8 @@ import (
|
||||
"sort"
|
||||
|
||||
"net/http"
|
||||
"os"
|
||||
"path"
|
||||
|
||||
"github.com/amir20/dozzle/internal/analytics"
|
||||
"github.com/amir20/dozzle/internal/auth"
|
||||
"github.com/amir20/dozzle/internal/docker"
|
||||
"github.com/amir20/dozzle/internal/profile"
|
||||
@@ -27,35 +25,15 @@ func (h *handler) index(w http.ResponseWriter, req *http.Request) {
|
||||
http.Redirect(w, req, path.Clean(h.config.Base+"/login"), http.StatusTemporaryRedirect)
|
||||
return
|
||||
}
|
||||
go h.sendRequestEvent()
|
||||
h.executeTemplate(w, req)
|
||||
}
|
||||
}
|
||||
|
||||
func (h *handler) executeTemplate(w http.ResponseWriter, req *http.Request) {
|
||||
file, err := h.content.Open("index.html")
|
||||
if err != nil {
|
||||
log.Panic(err)
|
||||
}
|
||||
bytes, err := io.ReadAll(file)
|
||||
if err != nil {
|
||||
log.Panic(err)
|
||||
}
|
||||
tmpl, err := template.New("index.html").Funcs(template.FuncMap{
|
||||
"marshal": func(v interface{}) template.JS {
|
||||
a, _ := json.Marshal(v)
|
||||
return template.JS(a)
|
||||
},
|
||||
}).Parse(string(bytes))
|
||||
if err != nil {
|
||||
log.Panic(err)
|
||||
}
|
||||
|
||||
base := ""
|
||||
if h.config.Base != "/" {
|
||||
base = h.config.Base
|
||||
}
|
||||
|
||||
hosts := make([]*docker.Host, 0, len(h.clients))
|
||||
for _, v := range h.clients {
|
||||
hosts = append(hosts, v.Host())
|
||||
@@ -102,6 +80,23 @@ func (h *handler) executeTemplate(w http.ResponseWriter, req *http.Request) {
|
||||
"Manifest": h.readManifest(),
|
||||
"Base": base,
|
||||
}
|
||||
file, err := h.content.Open("index.html")
|
||||
if err != nil {
|
||||
log.Panic(err)
|
||||
}
|
||||
bytes, err := io.ReadAll(file)
|
||||
if err != nil {
|
||||
log.Panic(err)
|
||||
}
|
||||
tmpl, err := template.New("index.html").Funcs(template.FuncMap{
|
||||
"marshal": func(v interface{}) template.JS {
|
||||
a, _ := json.Marshal(v)
|
||||
return template.JS(a)
|
||||
},
|
||||
}).Parse(string(bytes))
|
||||
if err != nil {
|
||||
log.Panic(err)
|
||||
}
|
||||
|
||||
err = tmpl.Execute(w, data)
|
||||
if err != nil {
|
||||
@@ -131,32 +126,3 @@ func (h *handler) readManifest() map[string]interface{} {
|
||||
return manifest
|
||||
}
|
||||
}
|
||||
|
||||
func (h *handler) sendRequestEvent() {
|
||||
if !h.config.NoAnalytics {
|
||||
host, _ := os.Hostname()
|
||||
|
||||
var client DockerClient
|
||||
for _, v := range h.clients {
|
||||
client = v
|
||||
break
|
||||
}
|
||||
|
||||
if containers, err := client.ListContainers(); err == nil {
|
||||
totalContainers := len(containers)
|
||||
runningContainers := 0
|
||||
for _, container := range containers {
|
||||
if container.State == "running" {
|
||||
runningContainers++
|
||||
}
|
||||
}
|
||||
|
||||
re := analytics.RequestEvent{
|
||||
ClientId: host,
|
||||
TotalContainers: totalContainers,
|
||||
RunningContainers: runningContainers,
|
||||
}
|
||||
analytics.SendRequestEvent(re)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -243,8 +243,9 @@ func createLocalClient(args args, localClientFactory func(map[string][]string) (
|
||||
dockerClient, err := localClientFactory(args.Filter)
|
||||
if err == nil {
|
||||
_, err := dockerClient.ListContainers()
|
||||
|
||||
if err == nil {
|
||||
if err != nil {
|
||||
log.Warnf("Could not connect to local Docker Engine: %s", err)
|
||||
} else {
|
||||
log.Debugf("Connected to local Docker Engine")
|
||||
return dockerClient
|
||||
}
|
||||
|
||||
+8
-8
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "dozzle",
|
||||
"version": "5.2.1",
|
||||
"version": "5.2.3",
|
||||
"description": "Realtime log viewer for docker containers. ",
|
||||
"homepage": "https://github.com/amir20/dozzle#readme",
|
||||
"bugs": {
|
||||
"url": "https://github.com/amir20/dozzle/issues"
|
||||
},
|
||||
"packageManager": "pnpm@8.10.0",
|
||||
"packageManager": "pnpm@8.10.2",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/amir20/dozzle.git"
|
||||
@@ -33,7 +33,7 @@
|
||||
"@iconify-json/mdi-light": "^1.1.7",
|
||||
"@iconify-json/octicon": "^1.1.49",
|
||||
"@iconify-json/ph": "^1.1.6",
|
||||
"@intlify/unplugin-vue-i18n": "^1.4.0",
|
||||
"@intlify/unplugin-vue-i18n": "^1.5.0",
|
||||
"@vueuse/components": "^10.5.0",
|
||||
"@vueuse/core": "^10.5.0",
|
||||
"@vueuse/integrations": "^10.5.0",
|
||||
@@ -58,28 +58,28 @@
|
||||
"splitpanes": "^3.1.5",
|
||||
"tailwindcss": "^3.3.5",
|
||||
"unplugin-auto-import": "^0.16.7",
|
||||
"unplugin-icons": "^0.17.1",
|
||||
"unplugin-icons": "^0.17.3",
|
||||
"unplugin-vue-components": "^0.25.2",
|
||||
"unplugin-vue-macros": "^2.6.1",
|
||||
"unplugin-vue-macros": "^2.6.2",
|
||||
"vite": "4.5.0",
|
||||
"vite-plugin-pages": "^0.31.0",
|
||||
"vite-plugin-vue-layouts": "^0.8.0",
|
||||
"vue": "^3.3.7",
|
||||
"vue-i18n": "^9.6.2",
|
||||
"vue-i18n": "^9.6.4",
|
||||
"vue-router": "^4.2.5"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@iconify-json/ic": "^1.1.14",
|
||||
"@pinia/testing": "^0.1.3",
|
||||
"@playwright/test": "^1.39.0",
|
||||
"@types/d3-array": "^3.0.9",
|
||||
"@types/d3-array": "^3.2.0",
|
||||
"@types/d3-ease": "^3.0.1",
|
||||
"@types/d3-scale": "^4.0.6",
|
||||
"@types/d3-selection": "^3.0.8",
|
||||
"@types/d3-shape": "^3.1.4",
|
||||
"@types/d3-transition": "^3.0.6",
|
||||
"@types/lodash.debounce": "^4.0.8",
|
||||
"@types/node": "^20.8.9",
|
||||
"@types/node": "^20.8.10",
|
||||
"@types/semver": "^7.5.4",
|
||||
"@vitejs/plugin-vue": "4.4.0",
|
||||
"@vue/compiler-sfc": "^3.3.7",
|
||||
|
||||
Generated
+78
-83
@@ -24,8 +24,8 @@ dependencies:
|
||||
specifier: ^1.1.6
|
||||
version: 1.1.6
|
||||
'@intlify/unplugin-vue-i18n':
|
||||
specifier: ^1.4.0
|
||||
version: 1.4.0(vue-i18n@9.6.2)
|
||||
specifier: ^1.5.0
|
||||
version: 1.5.0(vue-i18n@9.6.4)
|
||||
'@vueuse/components':
|
||||
specifier: ^10.5.0
|
||||
version: 10.5.0(vue@3.3.7)
|
||||
@@ -99,17 +99,17 @@ dependencies:
|
||||
specifier: ^0.16.7
|
||||
version: 0.16.7(@vueuse/core@10.5.0)
|
||||
unplugin-icons:
|
||||
specifier: ^0.17.1
|
||||
version: 0.17.1(@vue/compiler-sfc@3.3.7)
|
||||
specifier: ^0.17.3
|
||||
version: 0.17.3(@vue/compiler-sfc@3.3.7)
|
||||
unplugin-vue-components:
|
||||
specifier: ^0.25.2
|
||||
version: 0.25.2(vue@3.3.7)
|
||||
unplugin-vue-macros:
|
||||
specifier: ^2.6.1
|
||||
version: 2.6.1(@vueuse/core@10.5.0)(typescript@5.2.2)(vite@4.5.0)(vue@3.3.7)
|
||||
specifier: ^2.6.2
|
||||
version: 2.6.2(@vueuse/core@10.5.0)(typescript@5.2.2)(vite@4.5.0)(vue@3.3.7)
|
||||
vite:
|
||||
specifier: 4.5.0
|
||||
version: 4.5.0(@types/node@20.8.9)
|
||||
version: 4.5.0(@types/node@20.8.10)
|
||||
vite-plugin-pages:
|
||||
specifier: ^0.31.0
|
||||
version: 0.31.0(@vue/compiler-sfc@3.3.7)(vite@4.5.0)
|
||||
@@ -120,8 +120,8 @@ dependencies:
|
||||
specifier: ^3.3.7
|
||||
version: 3.3.7(typescript@5.2.2)
|
||||
vue-i18n:
|
||||
specifier: ^9.6.2
|
||||
version: 9.6.2(vue@3.3.7)
|
||||
specifier: ^9.6.4
|
||||
version: 9.6.4(vue@3.3.7)
|
||||
vue-router:
|
||||
specifier: ^4.2.5
|
||||
version: 4.2.5(vue@3.3.7)
|
||||
@@ -137,8 +137,8 @@ devDependencies:
|
||||
specifier: ^1.39.0
|
||||
version: 1.39.0
|
||||
'@types/d3-array':
|
||||
specifier: ^3.0.9
|
||||
version: 3.0.9
|
||||
specifier: ^3.2.0
|
||||
version: 3.2.0
|
||||
'@types/d3-ease':
|
||||
specifier: ^3.0.1
|
||||
version: 3.0.1
|
||||
@@ -158,8 +158,8 @@ devDependencies:
|
||||
specifier: ^4.0.8
|
||||
version: 4.0.8
|
||||
'@types/node':
|
||||
specifier: ^20.8.9
|
||||
version: 20.8.9
|
||||
specifier: ^20.8.10
|
||||
version: 20.8.10
|
||||
'@types/semver':
|
||||
specifier: ^7.5.4
|
||||
version: 7.5.4
|
||||
@@ -204,13 +204,13 @@ devDependencies:
|
||||
version: 2.9.0
|
||||
ts-node:
|
||||
specifier: ^10.9.1
|
||||
version: 10.9.1(@types/node@20.8.9)(typescript@5.2.2)
|
||||
version: 10.9.1(@types/node@20.8.10)(typescript@5.2.2)
|
||||
typescript:
|
||||
specifier: ^5.2.2
|
||||
version: 5.2.2
|
||||
vitepress:
|
||||
specifier: 1.0.0-rc.24
|
||||
version: 1.0.0-rc.24(@algolia/client-search@4.20.0)(@types/node@20.8.9)(fuse.js@7.0.0)(postcss@8.4.31)(search-insights@2.9.0)(typescript@5.2.2)
|
||||
version: 1.0.0-rc.24(@algolia/client-search@4.20.0)(@types/node@20.8.10)(fuse.js@7.0.0)(postcss@8.4.31)(search-insights@2.9.0)(typescript@5.2.2)
|
||||
vitest:
|
||||
specifier: ^0.34.6
|
||||
version: 0.34.6(jsdom@22.1.0)
|
||||
@@ -686,7 +686,7 @@ packages:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/@intlify/bundle-utils@7.4.0(vue-i18n@9.6.2):
|
||||
/@intlify/bundle-utils@7.4.0(vue-i18n@9.6.4):
|
||||
resolution: {integrity: sha512-AQfjBe2HUxzyN8ignIk3WhhSuVcSuirgzOzkd17nb337rCbI4Gv/t1R60UUyIqFoFdviLb/wLcDUzTD/xXjv9w==}
|
||||
engines: {node: '>= 14.16'}
|
||||
peerDependencies:
|
||||
@@ -698,8 +698,8 @@ packages:
|
||||
vue-i18n:
|
||||
optional: true
|
||||
dependencies:
|
||||
'@intlify/message-compiler': 9.6.1
|
||||
'@intlify/shared': 9.6.1
|
||||
'@intlify/message-compiler': 9.6.2
|
||||
'@intlify/shared': 9.6.2
|
||||
acorn: 8.10.0
|
||||
escodegen: 2.1.0
|
||||
estree-walker: 2.0.2
|
||||
@@ -707,24 +707,16 @@ packages:
|
||||
magic-string: 0.30.5
|
||||
mlly: 1.4.2
|
||||
source-map-js: 1.0.2
|
||||
vue-i18n: 9.6.2(vue@3.3.7)
|
||||
vue-i18n: 9.6.4(vue@3.3.7)
|
||||
yaml-eslint-parser: 1.2.2
|
||||
dev: false
|
||||
|
||||
/@intlify/core-base@9.6.2:
|
||||
resolution: {integrity: sha512-ci0j2nbEL/pamvqgcCqyIVeQ3LS41F1IRqI5rCBNnpSp0FjNnH8bpha8R3OifkhqatzlP4wGOuN/UqfLYVDv7g==}
|
||||
/@intlify/core-base@9.6.4:
|
||||
resolution: {integrity: sha512-NezA5NUpdlSPXTLCWzmd9xhLalfhL0sylqDjBUW9gF12t3jOtKYqqB5lD4FZbxkGdD/l+NMPitq44j8+i5D8UA==}
|
||||
engines: {node: '>= 16'}
|
||||
dependencies:
|
||||
'@intlify/message-compiler': 9.6.2
|
||||
'@intlify/shared': 9.6.2
|
||||
dev: false
|
||||
|
||||
/@intlify/message-compiler@9.6.1:
|
||||
resolution: {integrity: sha512-kTOCEtKLg0pwz7Fh2z6to17jljy7kuZ1J77uGxCe3s+rixl1w0fXdaGvO59f9PwYSygR7Fe43I09EoSeuRW4UA==}
|
||||
engines: {node: '>= 16'}
|
||||
dependencies:
|
||||
'@intlify/shared': 9.6.1
|
||||
source-map-js: 1.0.2
|
||||
'@intlify/message-compiler': 9.6.4
|
||||
'@intlify/shared': 9.6.4
|
||||
dev: false
|
||||
|
||||
/@intlify/message-compiler@9.6.2:
|
||||
@@ -735,14 +727,12 @@ packages:
|
||||
source-map-js: 1.0.2
|
||||
dev: false
|
||||
|
||||
/@intlify/shared@9.6.0:
|
||||
resolution: {integrity: sha512-vZeID7kn10rhgRYZQvjULTOYXDGnC0j49HI0AD9CK08aj4nWmlPai/8awTsMg0qrfHVMTna8ZMNmBZNyFAUCfA==}
|
||||
engines: {node: '>= 16'}
|
||||
dev: false
|
||||
|
||||
/@intlify/shared@9.6.1:
|
||||
resolution: {integrity: sha512-gD7r6xwG7II74JsJUXcVY0AvTyB5t7mlsB2WTot0ZncTLILQbyEeJtUOmvpvAXrh9TUr4jGPwhTC7SKtxjhl5A==}
|
||||
/@intlify/message-compiler@9.6.4:
|
||||
resolution: {integrity: sha512-Ppkyh/dAw0Fq8cGSMQw5P1RgUDYNgmgM5y4d0JGw7Qgnbm085TeVDf82UdJtIk3iIbxrnR0jNUf1pNESnyHrPw==}
|
||||
engines: {node: '>= 16'}
|
||||
dependencies:
|
||||
'@intlify/shared': 9.6.4
|
||||
source-map-js: 1.0.2
|
||||
dev: false
|
||||
|
||||
/@intlify/shared@9.6.2:
|
||||
@@ -750,8 +740,13 @@ packages:
|
||||
engines: {node: '>= 16'}
|
||||
dev: false
|
||||
|
||||
/@intlify/unplugin-vue-i18n@1.4.0(vue-i18n@9.6.2):
|
||||
resolution: {integrity: sha512-RGDchCRBlDTyVVFgPA1C1XC1uD4xYN81Ma+3EnU6GQ8pBEreraX/PWdPXXzOB6k9GWCQHuqii3atYXhcH3rpSg==}
|
||||
/@intlify/shared@9.6.4:
|
||||
resolution: {integrity: sha512-dsmya7s6KK58UD60cDWqbpkQcllFpPB/f4dz8OqgK5Pe+CgeatKJjpuAG516DHXX0BtD0P5X6JCD45+1FMvvZw==}
|
||||
engines: {node: '>= 16'}
|
||||
dev: false
|
||||
|
||||
/@intlify/unplugin-vue-i18n@1.5.0(vue-i18n@9.6.4):
|
||||
resolution: {integrity: sha512-jW0MCCdwxybxcwjEfCunAcKjVoxyO3i+cnLL6v+MNGRLUHqrpELF6zQAJUhgAK2afhY7mCliy8RxTFWKdXm26w==}
|
||||
engines: {node: '>= 14.16'}
|
||||
peerDependencies:
|
||||
petite-vue-i18n: '*'
|
||||
@@ -765,8 +760,8 @@ packages:
|
||||
vue-i18n-bridge:
|
||||
optional: true
|
||||
dependencies:
|
||||
'@intlify/bundle-utils': 7.4.0(vue-i18n@9.6.2)
|
||||
'@intlify/shared': 9.6.0
|
||||
'@intlify/bundle-utils': 7.4.0(vue-i18n@9.6.4)
|
||||
'@intlify/shared': 9.6.2
|
||||
'@rollup/pluginutils': 5.0.5(rollup@3.29.4)
|
||||
'@vue/compiler-sfc': 3.3.7
|
||||
debug: 4.3.4
|
||||
@@ -777,7 +772,7 @@ packages:
|
||||
picocolors: 1.0.0
|
||||
source-map-js: 1.0.2
|
||||
unplugin: 1.5.0
|
||||
vue-i18n: 9.6.2(vue@3.3.7)
|
||||
vue-i18n: 9.6.4(vue@3.3.7)
|
||||
transitivePeerDependencies:
|
||||
- rollup
|
||||
- supports-color
|
||||
@@ -930,8 +925,8 @@ packages:
|
||||
resolution: {integrity: sha512-69TtiDzu0bcmKQv3yg1Zx409/Kd7r0b5F1PfpYJfSHzLGtB53547V4u+9iqKYsTu/O2ai6KTb0TInNpvuQ3qmg==}
|
||||
dev: true
|
||||
|
||||
/@types/d3-array@3.0.9:
|
||||
resolution: {integrity: sha512-mZowFN3p64ajCJJ4riVYlOjNlBJv3hctgAY01pjw3qTnJePD8s9DZmYDzhHKvzfCYvdjwylkU38+Vdt7Cu2FDA==}
|
||||
/@types/d3-array@3.2.0:
|
||||
resolution: {integrity: sha512-tjU8juPSfhMnu6mJZPOCVVGba4rZoE0tjHDPb81PYwA8CzbaFscGjgkUM7juUJu6iWA1cCVWNEVwxZ5HN9Jj8Q==}
|
||||
dev: true
|
||||
|
||||
/@types/d3-ease@3.0.1:
|
||||
@@ -1011,8 +1006,8 @@ packages:
|
||||
resolution: {integrity: sha512-AuHIyzR5Hea7ij0P9q7vx7xu4z0C28ucwjAZC0ja7JhINyCnOw8/DnvAPQQ9TfOlCtZAmCERKQX9+o1mgQhuOQ==}
|
||||
dev: false
|
||||
|
||||
/@types/node@20.8.9:
|
||||
resolution: {integrity: sha512-UzykFsT3FhHb1h7yD4CA4YhBHq545JC0YnEz41xkipN88eKQtL6rSgocL5tbAP6Ola9Izm/Aw4Ora8He4x0BHg==}
|
||||
/@types/node@20.8.10:
|
||||
resolution: {integrity: sha512-TlgT8JntpcbmKUFzjhsyhGfP2fsiz1Mv56im6enJ905xG1DAYesxJaeSbGqQmAw8OWPdhyJGhGSQGKRNJ45u9w==}
|
||||
dependencies:
|
||||
undici-types: 5.26.5
|
||||
|
||||
@@ -1030,7 +1025,7 @@ packages:
|
||||
vite: ^4.0.0
|
||||
vue: ^3.2.25
|
||||
dependencies:
|
||||
vite: 4.5.0(@types/node@20.8.9)
|
||||
vite: 4.5.0(@types/node@20.8.10)
|
||||
vue: 3.3.7(typescript@5.2.2)
|
||||
dev: true
|
||||
|
||||
@@ -1041,7 +1036,7 @@ packages:
|
||||
vite: ^4.0.0
|
||||
vue: ^3.2.25
|
||||
dependencies:
|
||||
vite: 4.5.0(@types/node@20.8.9)
|
||||
vite: 4.5.0(@types/node@20.8.10)
|
||||
vue: 3.3.7(typescript@5.2.2)
|
||||
dev: true
|
||||
|
||||
@@ -1265,17 +1260,17 @@ packages:
|
||||
- rollup
|
||||
dev: false
|
||||
|
||||
/@vue-macros/devtools@0.1.3(typescript@5.2.2)(vite@4.5.0):
|
||||
resolution: {integrity: sha512-aQRC9/TfmQajTMbZZ1BJn61rrraQztJqf64JdXRIpotbGR+xufLY/KIyTTB4SgL1pE1eW/ar5FaZTSjMqyVGIg==}
|
||||
/@vue-macros/devtools@0.1.4(typescript@5.2.2)(vite@4.5.0):
|
||||
resolution: {integrity: sha512-md5WzjC4qgOOjnYKaqEfZknSeiEeGX13k/Hqi+aqvb+kIF0F6/5oxroqaPQemuNN/gUNMn8ZfA/JmcOYxGVFcQ==}
|
||||
engines: {node: '>=16.14.0'}
|
||||
peerDependencies:
|
||||
vite: ^4.0.0
|
||||
vite: ^4.0.0 || ^5.0.0-0
|
||||
peerDependenciesMeta:
|
||||
vite:
|
||||
optional: true
|
||||
dependencies:
|
||||
sirv: 2.0.3
|
||||
vite: 4.5.0(@types/node@20.8.9)
|
||||
vite: 4.5.0(@types/node@20.8.10)
|
||||
vue: 3.3.7(typescript@5.2.2)
|
||||
transitivePeerDependencies:
|
||||
- typescript
|
||||
@@ -3716,7 +3711,7 @@ packages:
|
||||
dependencies:
|
||||
lilconfig: 2.1.0
|
||||
postcss: 8.4.31
|
||||
ts-node: 10.9.1(@types/node@20.8.9)(typescript@5.2.2)
|
||||
ts-node: 10.9.1(@types/node@20.8.10)(typescript@5.2.2)
|
||||
yaml: 2.3.3
|
||||
dev: false
|
||||
|
||||
@@ -4357,7 +4352,7 @@ packages:
|
||||
resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==}
|
||||
dev: false
|
||||
|
||||
/ts-node@10.9.1(@types/node@20.8.9)(typescript@5.2.2):
|
||||
/ts-node@10.9.1(@types/node@20.8.10)(typescript@5.2.2):
|
||||
resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==}
|
||||
hasBin: true
|
||||
peerDependencies:
|
||||
@@ -4376,7 +4371,7 @@ packages:
|
||||
'@tsconfig/node12': 1.0.11
|
||||
'@tsconfig/node14': 1.0.3
|
||||
'@tsconfig/node16': 1.0.4
|
||||
'@types/node': 20.8.9
|
||||
'@types/node': 20.8.10
|
||||
acorn: 8.10.0
|
||||
acorn-walk: 8.2.0
|
||||
arg: 4.1.3
|
||||
@@ -4460,13 +4455,13 @@ packages:
|
||||
- rollup
|
||||
dev: false
|
||||
|
||||
/unplugin-combine@0.7.0(vite@4.5.0):
|
||||
resolution: {integrity: sha512-Pxa8ovANAUN/bz/pzGN8xnTqFfSJndIJAttXS4/BdVq7mxtKB65RVa2UxAnLmEzgwvtefXAjZgyx9fk5Bv0vEA==}
|
||||
engines: {node: '>=14.19.0'}
|
||||
/unplugin-combine@0.8.0(vite@4.5.0):
|
||||
resolution: {integrity: sha512-2a+Jf0gmX+N0aEjdPIGBSxtHcP+5izQus20+qmQFz43w2jh1ZhC2p3fKekBdDPj5ZQlO15bA+OLDkoOiiBz/BA==}
|
||||
engines: {node: '>=16.14.0'}
|
||||
peerDependencies:
|
||||
esbuild: '>=0.13'
|
||||
rollup: ^3.2.0
|
||||
vite: ^2.3.0 || ^3.0.0 || ^4.0.0
|
||||
rollup: ^3.2.0 || ^4.0.0
|
||||
vite: ^2.3.0 || ^3.0.0 || ^4.0.0 || ^5.0.0-0
|
||||
webpack: 4 || 5
|
||||
peerDependenciesMeta:
|
||||
esbuild:
|
||||
@@ -4480,11 +4475,11 @@ packages:
|
||||
dependencies:
|
||||
'@antfu/utils': 0.7.6
|
||||
unplugin: 1.5.0
|
||||
vite: 4.5.0(@types/node@20.8.9)
|
||||
vite: 4.5.0(@types/node@20.8.10)
|
||||
dev: false
|
||||
|
||||
/unplugin-icons@0.17.1(@vue/compiler-sfc@3.3.7):
|
||||
resolution: {integrity: sha512-KsWejBPCHokYCNDQUzGu6R3E3XDYH/YpewgQwrVBXgpl1iR0RdW1NEGNdjlbuapwVnZXVgA5eiDTfNaQCawSdg==}
|
||||
/unplugin-icons@0.17.3(@vue/compiler-sfc@3.3.7):
|
||||
resolution: {integrity: sha512-uvopA4I6QYWYpwAyRvG/4NNvR1Cd4GnF/mtOkybgP2YPkHjRX02l/ALm20VUla31Jt9eZHxHyODtNf/Upx5uaw==}
|
||||
peerDependencies:
|
||||
'@svgr/core': '>=7.0.0'
|
||||
'@svgx/core': ^1.0.1
|
||||
@@ -4556,8 +4551,8 @@ packages:
|
||||
- vue
|
||||
dev: false
|
||||
|
||||
/unplugin-vue-macros@2.6.1(@vueuse/core@10.5.0)(typescript@5.2.2)(vite@4.5.0)(vue@3.3.7):
|
||||
resolution: {integrity: sha512-YHqCZgZPasdRwmmuautjXkV6uOQ0amg/qHnXyUMgLI8/FkgtfGx+QgeknXpLgiOC2PVXlsuCqbcGnHJ/N4VtUg==}
|
||||
/unplugin-vue-macros@2.6.2(@vueuse/core@10.5.0)(typescript@5.2.2)(vite@4.5.0)(vue@3.3.7):
|
||||
resolution: {integrity: sha512-U3hyp5RVHKUmnu+OQy1BKE3bVoTQmFkxed7o4G3Zh6jZDT/Q22bF97Qs7/N1/cDHSenNa06PWBXX173FPeqR1Q==}
|
||||
engines: {node: '>=16.14.0'}
|
||||
peerDependencies:
|
||||
vue: ^2.7.0 || ^3.2.25
|
||||
@@ -4573,7 +4568,7 @@ packages:
|
||||
'@vue-macros/define-props-refs': 1.1.10(vue@3.3.7)
|
||||
'@vue-macros/define-render': 1.4.3(vue@3.3.7)
|
||||
'@vue-macros/define-slots': 1.0.15(vue@3.3.7)
|
||||
'@vue-macros/devtools': 0.1.3(typescript@5.2.2)(vite@4.5.0)
|
||||
'@vue-macros/devtools': 0.1.4(typescript@5.2.2)(vite@4.5.0)
|
||||
'@vue-macros/export-expose': 0.0.13(vue@3.3.7)
|
||||
'@vue-macros/export-props': 0.3.18(vue@3.3.7)
|
||||
'@vue-macros/export-render': 0.1.1(vue@3.3.7)
|
||||
@@ -4588,7 +4583,7 @@ packages:
|
||||
'@vue-macros/short-emits': 1.4.10(vue@3.3.7)
|
||||
'@vue-macros/short-vmodel': 1.3.0(vue@3.3.7)
|
||||
unplugin: 1.5.0
|
||||
unplugin-combine: 0.7.0(vite@4.5.0)
|
||||
unplugin-combine: 0.8.0(vite@4.5.0)
|
||||
unplugin-vue-define-options: 1.3.18(vue@3.3.7)
|
||||
vue: 3.3.7(typescript@5.2.2)
|
||||
transitivePeerDependencies:
|
||||
@@ -4643,7 +4638,7 @@ packages:
|
||||
convert-source-map: 2.0.0
|
||||
dev: true
|
||||
|
||||
/vite-node@0.34.6(@types/node@20.8.9):
|
||||
/vite-node@0.34.6(@types/node@20.8.10):
|
||||
resolution: {integrity: sha512-nlBMJ9x6n7/Amaz6F3zJ97EBwR2FkzhBRxF5e+jE6LA3yi6Wtc2lyTij1OnDMIr34v5g/tVQtsVAzhT0jc5ygA==}
|
||||
engines: {node: '>=v14.18.0'}
|
||||
hasBin: true
|
||||
@@ -4653,7 +4648,7 @@ packages:
|
||||
mlly: 1.4.2
|
||||
pathe: 1.1.1
|
||||
picocolors: 1.0.0
|
||||
vite: 4.5.0(@types/node@20.8.9)
|
||||
vite: 4.5.0(@types/node@20.8.10)
|
||||
transitivePeerDependencies:
|
||||
- '@types/node'
|
||||
- less
|
||||
@@ -4683,7 +4678,7 @@ packages:
|
||||
json5: 2.2.3
|
||||
local-pkg: 0.4.3
|
||||
picocolors: 1.0.0
|
||||
vite: 4.5.0(@types/node@20.8.9)
|
||||
vite: 4.5.0(@types/node@20.8.10)
|
||||
yaml: 2.3.3
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
@@ -4699,14 +4694,14 @@ packages:
|
||||
'@vue/compiler-sfc': 3.3.7
|
||||
debug: 4.3.4
|
||||
fast-glob: 3.3.1
|
||||
vite: 4.5.0(@types/node@20.8.9)
|
||||
vite: 4.5.0(@types/node@20.8.10)
|
||||
vue: 3.3.7(typescript@5.2.2)
|
||||
vue-router: 4.2.5(vue@3.3.7)
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/vite@4.5.0(@types/node@20.8.9):
|
||||
/vite@4.5.0(@types/node@20.8.10):
|
||||
resolution: {integrity: sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw==}
|
||||
engines: {node: ^14.18.0 || >=16.0.0}
|
||||
hasBin: true
|
||||
@@ -4734,14 +4729,14 @@ packages:
|
||||
terser:
|
||||
optional: true
|
||||
dependencies:
|
||||
'@types/node': 20.8.9
|
||||
'@types/node': 20.8.10
|
||||
esbuild: 0.18.20
|
||||
postcss: 8.4.31
|
||||
rollup: 3.29.4
|
||||
optionalDependencies:
|
||||
fsevents: 2.3.3
|
||||
|
||||
/vitepress@1.0.0-rc.24(@algolia/client-search@4.20.0)(@types/node@20.8.9)(fuse.js@7.0.0)(postcss@8.4.31)(search-insights@2.9.0)(typescript@5.2.2):
|
||||
/vitepress@1.0.0-rc.24(@algolia/client-search@4.20.0)(@types/node@20.8.10)(fuse.js@7.0.0)(postcss@8.4.31)(search-insights@2.9.0)(typescript@5.2.2):
|
||||
resolution: {integrity: sha512-RpnL8cnOGwiRlBbrYQUm9sYkJbtyOt/wYXk2diTcokY4yvks/5lq9LuSt+MURWB6ZqwpSNHvTmxgaSfLoG0/OA==}
|
||||
hasBin: true
|
||||
peerDependencies:
|
||||
@@ -4765,7 +4760,7 @@ packages:
|
||||
minisearch: 6.2.0
|
||||
postcss: 8.4.31
|
||||
shiki: 0.14.5
|
||||
vite: 4.5.0(@types/node@20.8.9)
|
||||
vite: 4.5.0(@types/node@20.8.10)
|
||||
vue: 3.3.7(typescript@5.2.2)
|
||||
transitivePeerDependencies:
|
||||
- '@algolia/client-search'
|
||||
@@ -4828,7 +4823,7 @@ packages:
|
||||
dependencies:
|
||||
'@types/chai': 4.3.9
|
||||
'@types/chai-subset': 1.3.4
|
||||
'@types/node': 20.8.9
|
||||
'@types/node': 20.8.10
|
||||
'@vitest/expect': 0.34.6
|
||||
'@vitest/runner': 0.34.6
|
||||
'@vitest/snapshot': 0.34.6
|
||||
@@ -4848,8 +4843,8 @@ packages:
|
||||
strip-literal: 1.3.0
|
||||
tinybench: 2.5.1
|
||||
tinypool: 0.7.0
|
||||
vite: 4.5.0(@types/node@20.8.9)
|
||||
vite-node: 0.34.6(@types/node@20.8.9)
|
||||
vite: 4.5.0(@types/node@20.8.10)
|
||||
vite-node: 0.34.6(@types/node@20.8.10)
|
||||
why-is-node-running: 2.2.2
|
||||
transitivePeerDependencies:
|
||||
- less
|
||||
@@ -4887,14 +4882,14 @@ packages:
|
||||
dependencies:
|
||||
vue: 3.3.7(typescript@5.2.2)
|
||||
|
||||
/vue-i18n@9.6.2(vue@3.3.7):
|
||||
resolution: {integrity: sha512-J43grTQjPR8LCUxvx3mkoM+11xhTnej1Al4lvJCEeKmQqf8eqbuYPQb54HXnEg/UzZyaxLBAwPAUTbrZ8V7hcg==}
|
||||
/vue-i18n@9.6.4(vue@3.3.7):
|
||||
resolution: {integrity: sha512-xYoUk0ya6RoTjXtR0w4aHrzPT3CbAZfBMcDj2IHUkP+ddpp1V7M4KYBBHwlHncEapf/skm0BoXOIe7RJ5d/Epg==}
|
||||
engines: {node: '>= 16'}
|
||||
peerDependencies:
|
||||
vue: ^3.0.0
|
||||
dependencies:
|
||||
'@intlify/core-base': 9.6.2
|
||||
'@intlify/shared': 9.6.2
|
||||
'@intlify/core-base': 9.6.4
|
||||
'@intlify/shared': 9.6.4
|
||||
'@vue/devtools-api': 6.5.1
|
||||
vue: 3.3.7(typescript@5.2.2)
|
||||
dev: false
|
||||
|
||||
Reference in New Issue
Block a user