From a91d7d340a396087d223dc8202d39b60c5f3d4d1 Mon Sep 17 00:00:00 2001 From: Namekuji Date: Mon, 23 Jan 2023 07:10:21 -0500 Subject: [PATCH] add gif indicator --- .devcontainer/Caddyfile | 2 +- .devcontainer/devcontainer.json | 10 +- .devcontainer/docker-compose.dev.yaml | 6 +- .devcontainer/livekit.yaml | 30 +++ .dockerignore | 1 + .gitignore | 1 + .vscode/launch.json | 2 +- Dockerfile | 10 +- audon-fe/package-lock.json | 319 ++++++++++++++++++-------- audon-fe/package.json | 4 +- audon-fe/src/App.vue | 15 +- audon-fe/src/assets/utils.js | 5 +- audon-fe/src/stores/mastodon.js | 36 ++- audon-fe/src/views/CreateView.vue | 32 ++- audon-fe/src/views/RoomView.vue | 125 ++++++---- oauth.go => auth.go | 20 +- avatar.go | 158 +++++++++++++ config.go | 44 +++- docker-compose.yaml | 4 +- go.mod | 7 +- go.sum | 14 +- public/logo_back.png | Bin 0 -> 6023 bytes public/logo_front.png | Bin 0 -> 16649 bytes room.go | 91 +++++++- schema.go | 48 ++-- server.go | 28 ++- user.go | 50 ++++ utils.go | 67 +++++- webhooks.go | 65 ++++++ 29 files changed, 942 insertions(+), 252 deletions(-) create mode 100644 .devcontainer/livekit.yaml create mode 100644 .dockerignore rename oauth.go => auth.go (94%) create mode 100644 avatar.go create mode 100644 public/logo_back.png create mode 100644 public/logo_front.png create mode 100644 user.go diff --git a/.devcontainer/Caddyfile b/.devcontainer/Caddyfile index 3bd0fbc..adaaeca 100644 --- a/.devcontainer/Caddyfile +++ b/.devcontainer/Caddyfile @@ -2,7 +2,7 @@ audon.localhost { tls /etc/caddy/certs/cert.pem /etc/caddy/certs/key.pem encode zstd gzip @backend { - path /app/* /api/* + path /app/* /api/* /storage/* } handle @backend { reverse_proxy devcontainer:8100 diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index e022fec..67b2976 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -9,13 +9,19 @@ "workspaceFolder": "/workspaces/${localWorkspaceFolderBasename}", // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, + "features": { + "ghcr.io/devcontainers/features/node:1": {}, + "ghcr.io/devcontainers/features/go:1": {}, + "ghcr.io/rocker-org/devcontainer-features/apt-packages:1": { + "packages": "libmagick++-dev,libwebp-dev" + } + }, // Use 'forwardPorts' to make a list of ports inside the container available locally. // "forwardPorts": [] // Use 'postCreateCommand' to run commands after the container is created. - // "postCreateCommand": "uname -a", + // "onCreateCommand": "", // Configure tool-specific properties. "customizations": { diff --git a/.devcontainer/docker-compose.dev.yaml b/.devcontainer/docker-compose.dev.yaml index cd7a603..8294003 100644 --- a/.devcontainer/docker-compose.dev.yaml +++ b/.devcontainer/docker-compose.dev.yaml @@ -2,7 +2,7 @@ version: '3.1' services: devcontainer: - image: "mcr.microsoft.com/devcontainers/universal:2-linux" + image: "mcr.microsoft.com/devcontainers/base:jammy" volumes: - ../..:/workspaces:cached command: sleep infinity @@ -41,11 +41,13 @@ services: livekit: image: livekit/livekit-server:v1.3 - command: --dev --bind 0.0.0.0 + command: --config /etc/livekit.yaml restart: unless-stopped ports: - "7881:7881" - "7882:7882/udp" + volumes: + - ./livekit.yaml:/etc/livekit.yaml:ro caddy: image: caddy:2 diff --git a/.devcontainer/livekit.yaml b/.devcontainer/livekit.yaml new file mode 100644 index 0000000..ee4e875 --- /dev/null +++ b/.devcontainer/livekit.yaml @@ -0,0 +1,30 @@ +# main TCP port for RoomService and RTC endpoint +# for production setups, this port should be placed behind a load balancer with TLS +port: 7880 + +rtc: + tcp_port: 7881 + port_range_start: 7882 + port_range_end: 7882 + +turn: + enabled: false + +keys: + devkey: secret + +webhook: + api_key: devkey + urls: + - http://devcontainer:8100/app/webhook + +room: + auto_create: false + empty_timeout: 30 + max_participants: 0 + max_metadata_size: 0 + +audio: + active_level: 50 + min_percentile: 20 + update_interval: 200 diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..5e093a7 --- /dev/null +++ b/.dockerignore @@ -0,0 +1 @@ +public/storage/ diff --git a/.gitignore b/.gitignore index c60b633..e194ad2 100644 --- a/.gitignore +++ b/.gitignore @@ -189,3 +189,4 @@ config/* mongo/ redis/ cache/ +public/storage diff --git a/.vscode/launch.json b/.vscode/launch.json index bf3466f..494b564 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -5,7 +5,7 @@ "version": "0.2.0", "configurations": [ { - "name": "Launch Package", + "name": "Launch Go", "type": "go", "request": "launch", "mode": "auto", diff --git a/Dockerfile b/Dockerfile index 11c8477..9fd9e07 100644 --- a/Dockerfile +++ b/Dockerfile @@ -17,19 +17,25 @@ RUN go mod download -x COPY *.go /workspace/ -RUN go build -v -o audon-bin . +RUN apt-get update && \ + apt-get -y --no-install-recommends install libmagick++-dev libwebp-dev && \ + go build -v -o audon-bin . -FROM debian:bullseye +RUN + +FROM ubuntu:jammy WORKDIR /audon COPY --from=0 /workspace/dist /audon/audon-fe/dist COPY --from=1 /workspace/audon-bin /audon/ COPY locales /audon/locales +COPY public /audon/public RUN echo "Etc/UTC" > /etc/localtime && \ apt-get update && apt-get upgrade -y && \ apt-get -y --no-install-recommends install \ + imagemagick libwebp \ tini \ tzdata \ ca-certificates diff --git a/audon-fe/package-lock.json b/audon-fe/package-lock.json index 51d3a1c..1e0c5ec 100644 --- a/audon-fe/package-lock.json +++ b/audon-fe/package-lock.json @@ -1,12 +1,12 @@ { "name": "audon-fe", - "version": "0.1.0-alpha2", + "version": "0.1.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "audon-fe", - "version": "0.1.0-alpha2", + "version": "0.1.2", "dependencies": { "@intlify/unplugin-vue-i18n": "^0.8.1", "@picmo/popup-picker": "^5.7.2", @@ -16,10 +16,10 @@ "@vueuse/core": "^9.6.0", "axios": "^1.2.0", "howler": "^2.2.3", - "livekit-client": "^1.5.0", + "livekit-client": "^1.6.0", "lodash-es": "^4.17.21", "luxon": "^3.1.1", - "masto": "^4.9.0", + "masto": "^5.6.0", "picmo": "^5.7.2", "pinia": "^2.0.26", "vue": "^3.2.45", @@ -40,9 +40,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.7.tgz", - "integrity": "sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg==", + "version": "7.20.13", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.13.tgz", + "integrity": "sha512-gFDLKMfpiXCsjt4za2JA9oTMn70CeseCehb11kRZgvd7+F67Hih3OHOK24cRrWECJ/ljfPGac6ygXAs/C8kIvw==", "bin": { "parser": "bin/babel-parser.js" }, @@ -226,11 +226,11 @@ } }, "node_modules/@intlify/message-compiler": { - "version": "9.3.0-beta.14", - "resolved": "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-9.3.0-beta.14.tgz", - "integrity": "sha512-PlZ3pl+YYuql54Nq+26wv6ohIa8Ig6ALrvQI+f2zZKUtkupb49M4wyVN3bDQbFlgYVE7/u3n19BJSY8lEuX5Eg==", + "version": "9.3.0-beta.16", + "resolved": "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-9.3.0-beta.16.tgz", + "integrity": "sha512-CGQI3xRcs1ET75eDQ0DUy3MRYOqTauRIIgaMoISKiF83gqRWg93FqN8lGMKcpBqaF4tI0JhsfosCaGiBL9+dnw==", "dependencies": { - "@intlify/shared": "9.3.0-beta.14", + "@intlify/shared": "9.3.0-beta.16", "source-map": "0.6.1" }, "engines": { @@ -241,9 +241,9 @@ } }, "node_modules/@intlify/shared": { - "version": "9.3.0-beta.14", - "resolved": "https://registry.npmjs.org/@intlify/shared/-/shared-9.3.0-beta.14.tgz", - "integrity": "sha512-mJ/rFan+4uVsBAQSCAJnpQaPvSjQ49mJMNmGelTUbTDAmgf0oexYxwqtKOlFFyY3hmQ8lUDYaGQKuYrFgRuHnA==", + "version": "9.3.0-beta.16", + "resolved": "https://registry.npmjs.org/@intlify/shared/-/shared-9.3.0-beta.16.tgz", + "integrity": "sha512-kXbm4svALe3lX+EjdJxfnabOphqS4yQ1Ge/iIlR8tvUiYRCoNz3hig1M4336iY++Dfx5ytEQJPNjIcknNIuvig==", "engines": { "node": ">= 14" }, @@ -309,6 +309,18 @@ "node": ">= 14" } }, + "node_modules/@mastojs/ponyfills": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@mastojs/ponyfills/-/ponyfills-1.0.4.tgz", + "integrity": "sha512-1NaIGmcU7OmyNzx0fk+cYeGTkdXlOJOSdetaC4pStVWsrhht2cdlYSAfe5NDW3FcUmcEm2vVceB9lcClN1RCxw==", + "dependencies": { + "@types/node": "^18.11.17", + "@types/node-fetch": "^2.6.2", + "abort-controller": "^3.0.0", + "form-data": "^4.0.0", + "node-fetch": "^2.6.7" + } + }, "node_modules/@mdi/js": { "version": "7.1.96", "resolved": "https://registry.npmjs.org/@mdi/js/-/js-7.1.96.tgz", @@ -438,6 +450,28 @@ "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.18.tgz", "integrity": "sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==" }, + "node_modules/@types/node-fetch": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.2.tgz", + "integrity": "sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A==", + "dependencies": { + "@types/node": "*", + "form-data": "^3.0.0" + } + }, + "node_modules/@types/node-fetch/node_modules/form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/@types/web-bluetooth": { "version": "0.0.16", "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.16.tgz", @@ -508,9 +542,9 @@ } }, "node_modules/@vue/devtools-api": { - "version": "6.4.5", - "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.4.5.tgz", - "integrity": "sha512-JD5fcdIuFxU4fQyXUu3w2KpAJHzTVdN+p4iOX2lMWSHMOoQdMAcpFLZzm9Z/2nmsoZ1a96QEhZ26e50xLBsgOQ==" + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.5.0.tgz", + "integrity": "sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q==" }, "node_modules/@vue/eslint-config-prettier": { "version": "7.0.0", @@ -681,13 +715,13 @@ } }, "node_modules/@vueuse/core": { - "version": "9.10.0", - "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-9.10.0.tgz", - "integrity": "sha512-CxMewME07qeuzuT/AOIQGv0EhhDoojniqU6pC3F8m5VC76L47UT18DcX88kWlP3I7d3qMJ4u/PD8iSRsy3bmNA==", + "version": "9.11.1", + "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-9.11.1.tgz", + "integrity": "sha512-E/cizD1w9ILkq4axYjZrXLkKaBfzloaby2n3NMjUfd6yI/jkfTVgc6iwy/Cw2e++Ld4LphGbO+3MhzizvwUslQ==", "dependencies": { "@types/web-bluetooth": "^0.0.16", - "@vueuse/metadata": "9.10.0", - "@vueuse/shared": "9.10.0", + "@vueuse/metadata": "9.11.1", + "@vueuse/shared": "9.11.1", "vue-demi": "*" }, "funding": { @@ -720,17 +754,17 @@ } }, "node_modules/@vueuse/metadata": { - "version": "9.10.0", - "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-9.10.0.tgz", - "integrity": "sha512-G5VZhgTCapzU9rv0Iq2HBrVOSGzOKb+OE668NxhXNcTjUjwYxULkEhAw70FtRLMZc+hxcFAzDZlKYA0xcwNMuw==", + "version": "9.11.1", + "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-9.11.1.tgz", + "integrity": "sha512-ABjkrG+VXggNhjfGyw5e/sekxTZfXTwjrYXkkWQmQ7Biyv+Gq9UD6IDNfeGvQZEINI0Qzw6nfuO2UFCd3hlrxQ==", "funding": { "url": "https://github.com/sponsors/antfu" } }, "node_modules/@vueuse/shared": { - "version": "9.10.0", - "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-9.10.0.tgz", - "integrity": "sha512-vakHJ2ZRklAzqmcVBL38RS7BxdBA4+5poG9NsSyqJxrt9kz0zX3P5CXMy0Hm6LFbZXUgvKdqAS3pUH1zX/5qTQ==", + "version": "9.11.1", + "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-9.11.1.tgz", + "integrity": "sha512-UTZYGAjT96hWn4buf4wstZbeheBVNcKPQuej6qpoSkjF1atdaeCD6kqm9uGL2waHfisSgH9mq0qCRiBOk5C/2w==", "dependencies": { "vue-demi": "*" }, @@ -763,6 +797,17 @@ } } }, + "node_modules/abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "dependencies": { + "event-target-shim": "^5.0.0" + }, + "engines": { + "node": ">=6.5" + } + }, "node_modules/acorn": { "version": "8.8.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", @@ -850,9 +895,9 @@ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" }, "node_modules/axios": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.2.2.tgz", - "integrity": "sha512-bz/J4gS2S3I7mpN/YZfGFTqhXTYzRho8Ay38w2otuuDR322KzFIWm/4W2K6gIwvWaws5n+mnb7D1lN9uD+QH6Q==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.2.3.tgz", + "integrity": "sha512-pdDkMYJeuXLZ6Xj/Q5J3Phpe+jbGdsSzlQaFVkMQzRUL05+6+tetX8TV3p4HrU4kzuO9bt+io/yGQxuyxA/xcw==", "dependencies": { "follow-redirects": "^1.15.0", "form-data": "^4.0.0", @@ -900,6 +945,18 @@ "node": ">=8" } }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", @@ -1492,9 +1549,9 @@ } }, "node_modules/eslint": { - "version": "8.31.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.31.0.tgz", - "integrity": "sha512-0tQQEVdmPZ1UtUKXjX7EMm9BlgJ08G90IhWh0PKDCb3ZLsgAOHI8fYSIzYVZej92zsgq+ft0FGsxhJ3xo2tbuA==", + "version": "8.32.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.32.0.tgz", + "integrity": "sha512-nETVXpnthqKPFyuY2FNjz/bEd6nbosRgKbkgS/y1C7LJop96gYHWpiguLecMHQ2XCPxn77DS0P+68WzG6vkZSQ==", "dev": true, "dependencies": { "@eslint/eslintrc": "^1.4.1", @@ -1581,9 +1638,9 @@ } }, "node_modules/eslint-plugin-vue": { - "version": "9.8.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.8.0.tgz", - "integrity": "sha512-E/AXwcTzunyzM83C2QqDHxepMzvI2y6x+mmeYHbVDQlKFqmKYvRrhaVixEeeG27uI44p9oKDFiyCRw4XxgtfHA==", + "version": "9.9.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.9.0.tgz", + "integrity": "sha512-YbubS7eK0J7DCf0U2LxvVP7LMfs6rC6UltihIgval3azO3gyDwEGVgsCMe1TmDiEkl6GdMKfRpaME6QxIYtzDQ==", "dev": true, "dependencies": { "eslint-utils": "^3.0.0", @@ -1714,6 +1771,14 @@ "node": ">=0.10.0" } }, + "node_modules/event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "engines": { + "node": ">=6" + } + }, "node_modules/eventemitter3": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.0.tgz", @@ -1914,8 +1979,20 @@ "node_modules/function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "devOptional": true + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "node_modules/get-intrinsic": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", + "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/glob": { "version": "7.2.3", @@ -1974,7 +2051,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "devOptional": true, "dependencies": { "function-bind": "^1.1.1" }, @@ -1991,6 +2067,17 @@ "node": ">=8" } }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/header-case": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/header-case/-/header-case-2.0.4.tgz", @@ -2120,27 +2207,6 @@ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "dev": true }, - "node_modules/isomorphic-form-data": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isomorphic-form-data/-/isomorphic-form-data-2.0.0.tgz", - "integrity": "sha512-TYgVnXWeESVmQSg4GLVbalmQ+B4NPi/H4eWxqALKj63KsUrcu301YDjBqaOw3h+cbak7Na4Xyps3BiptHtxTfg==", - "dependencies": { - "form-data": "^2.3.2" - } - }, - "node_modules/isomorphic-form-data/node_modules/form-data": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz", - "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 0.12" - } - }, "node_modules/isomorphic-ws": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-5.0.0.tgz", @@ -2150,9 +2216,9 @@ } }, "node_modules/js-sdsl": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.2.0.tgz", - "integrity": "sha512-dyBIzQBDkCqCu+0upx25Y2jGdbTGxE9fshMsCdK0ViOongpV+n5tXRcZY9v7CaVQ79AGS9KA1KHtojxiM7aXSQ==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.3.0.tgz", + "integrity": "sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==", "dev": true, "funding": { "type": "opencollective", @@ -2399,27 +2465,17 @@ } }, "node_modules/masto": { - "version": "4.11.1", - "resolved": "https://registry.npmjs.org/masto/-/masto-4.11.1.tgz", - "integrity": "sha512-siTQNhfLV1JjOERCGgjagMvD6q0K0hLuhOXrbXNcYzHAwpbPeSeAM6CSpIRrZ8zFDepOR62Djs/GtJdTR21Rfw==", + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/masto/-/masto-5.6.0.tgz", + "integrity": "sha512-+5t6bSt/V0HyL3hDowxabVszfLjkrKVunhgWXC4LrCBMjMKIOF4vrFJriXSPKOprB6VCZztvGGuy02zSy7oRcQ==", "dependencies": { - "axios": "1.1.3", + "@mastojs/ponyfills": "^1.0.4", "change-case": "^4.1.2", "eventemitter3": "^5.0.0", - "isomorphic-form-data": "^2.0.0", "isomorphic-ws": "^5.0.0", + "qs": "^6.11.0", "semver": "^7.3.7", - "ws": "^8.8.0" - } - }, - "node_modules/masto/node_modules/axios": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.1.3.tgz", - "integrity": "sha512-00tXVRwKx/FZr/IDVFt4C+f9FYairX517WoGCL6dpOntqLkZofjhu43F/Xl44UOpqa+9sLFDrG/XAnFsUYgkDA==", - "dependencies": { - "follow-redirects": "^1.15.0", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" + "ws": "^8.12.0" } }, "node_modules/merge2": { @@ -2504,6 +2560,25 @@ "tslib": "^2.0.3" } }, + "node_modules/node-fetch": { + "version": "2.6.8", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.8.tgz", + "integrity": "sha512-RZ6dBYuj8dRSfxpUSu+NsdF1dpPpluJxwOp+6IoDp/sH2QNDSvurYsAa+F1WxY2RjA1iP93xhcsUoYbF2XBqVg==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -2524,6 +2599,14 @@ "url": "https://github.com/fb55/nth-check?sponsor=1" } }, + "node_modules/object-inspect": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -2662,9 +2745,9 @@ "devOptional": true }, "node_modules/pathe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.0.0.tgz", - "integrity": "sha512-nPdMG0Pd09HuSsr7QOKUXO2Jr9eqaDiZvDwdyIhNG5SHYujkQHYKDfGQkulBxvbDHz8oHLsTgKN86LSwYzSHAg==" + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.0.tgz", + "integrity": "sha512-ODbEPR0KKHqECXW1GoxdDb+AZvULmXjVPy4rt+pGo2+TnjJTIPJQSVS6N63n8T2Ip+syHhbn52OewKicV0373w==" }, "node_modules/picmo": { "version": "5.7.2", @@ -2694,9 +2777,9 @@ } }, "node_modules/pinia": { - "version": "2.0.28", - "resolved": "https://registry.npmjs.org/pinia/-/pinia-2.0.28.tgz", - "integrity": "sha512-YClq9DkqCblq9rlyUual7ezMu/iICWdBtfJrDt4oWU9Zxpijyz7xB2xTwx57DaBQ96UGvvTMORzALr+iO5PVMw==", + "version": "2.0.29", + "resolved": "https://registry.npmjs.org/pinia/-/pinia-2.0.29.tgz", + "integrity": "sha512-5z/KpFecq/cIgfeTnulJXldiLcTITRkTe3N58RKYSj0Pc1EdR6oyCdnf5A9jLoVwBqX5LtHhd0kGlpzWvk9oiQ==", "dependencies": { "@vue/devtools-api": "^6.4.5", "vue-demi": "*" @@ -2853,9 +2936,9 @@ } }, "node_modules/prettier": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.2.tgz", - "integrity": "sha512-BtRV9BcncDyI2tsuS19zzhzoxD8Dh8LiCx7j7tHzrkz8GFXAexeWFdi22mjE1d16dftH2qNaytVxqiRTGlMfpw==", + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.3.tgz", + "integrity": "sha512-tJ/oJ4amDihPoufT5sM0Z1SKEuKay8LfVAMlbbhnnkvt6BUserZylqo2PN+p9KeljLr0OHa2rXHU1T8reeoTrw==", "dev": true, "bin": { "prettier": "bin-prettier.js" @@ -2908,14 +2991,28 @@ "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" }, "node_modules/punycode": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.2.0.tgz", - "integrity": "sha512-LN6QV1IJ9ZhxWTNdktaPClrNfp8xdSAYS0Zk2ddX7XsXZAxckMHPCBcHRo0cTcEIgYPRiGEkmji3Idkh2yFtYw==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", "dev": true, "engines": { "node": ">=6" } }, + "node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -3112,6 +3209,19 @@ "node": ">=8" } }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/snake-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", @@ -3208,6 +3318,11 @@ "node": ">=8.0" } }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, "node_modules/ts-debounce": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/ts-debounce/-/ts-debounce-4.0.0.tgz", @@ -3463,9 +3578,9 @@ } }, "node_modules/vuetify": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/vuetify/-/vuetify-3.1.1.tgz", - "integrity": "sha512-BkfRQZ406xQORpgrcUjuPaT/woO96ef/+2zHCfL3an+CrUhjG/sIAptEybHruq3xwFM0uJibDFqGiridsXc99w==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/vuetify/-/vuetify-3.1.2.tgz", + "integrity": "sha512-vzxfVc1KlEmZ6tHjmrKCt25rKL6YkakbvQAZ0f/s03kHd0pjXKX4pcWuYgA5mZz4yrfZh/cRHvgGt+7A9CXOVg==", "engines": { "node": "^12.20 || >=14.13" }, @@ -3491,6 +3606,11 @@ } } }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, "node_modules/webpack-sources": { "version": "3.2.3", "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", @@ -3516,6 +3636,15 @@ "npm": ">=3.10.0" } }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", diff --git a/audon-fe/package.json b/audon-fe/package.json index 321b139..9b90b41 100644 --- a/audon-fe/package.json +++ b/audon-fe/package.json @@ -17,10 +17,10 @@ "@vueuse/core": "^9.6.0", "axios": "^1.2.0", "howler": "^2.2.3", - "livekit-client": "^1.5.0", + "livekit-client": "^1.6.0", "lodash-es": "^4.17.21", "luxon": "^3.1.1", - "masto": "^4.9.0", + "masto": "^5.6.0", "picmo": "^5.7.2", "pinia": "^2.0.26", "vue": "^3.2.45", diff --git a/audon-fe/src/App.vue b/audon-fe/src/App.vue index fa5bf15..b3ae5a4 100644 --- a/audon-fe/src/App.vue +++ b/audon-fe/src/App.vue @@ -1,11 +1,10 @@