chore: various fixes + updates

vega
NGPixel 4 months ago
parent 83875e5ce3
commit 5fb12c1e34
No known key found for this signature in database
GPG Key ID: B755FB6870B30F63

@ -1,7 +1,7 @@
# Based of https://github.com/microsoft/vscode-dev-containers/blob/main/containers/javascript-node/.devcontainer/base.Dockerfile
# [Choice] Node.js version (use -bullseye variants on local arm64/Apple Silicon): 16, 14, 12, 16-bullseye, 14-bullseye, 12-bullseye, 16-buster, 14-buster, 12-buster
ARG VARIANT=18-bullseye
ARG VARIANT=20-bullseye
FROM node:${VARIANT}
ENV DEBIAN_FRONTEND=noninteractive
@ -62,9 +62,9 @@ RUN curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /
RUN echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian \
$(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
# Add ngrok Source
RUN curl -s https://ngrok-agent.s3.amazonaws.com/ngrok.asc | sudo tee /etc/apt/trusted.gpg.d/ngrok.asc > /dev/null && \
echo "deb https://ngrok-agent.s3.amazonaws.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/ngrok.list
# Add cloudflared Source
RUN curl -fsSL https://pkg.cloudflare.com/cloudflare-main.gpg | sudo tee /usr/share/keyrings/cloudflare-main.gpg >/dev/null && \
echo "deb [signed-by=/usr/share/keyrings/cloudflare-main.gpg] https://pkg.cloudflare.com/cloudflared $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/cloudflared.list
# Add Localazy Source
RUN curl -sS https://dist.localazy.com/debian/pubkey.gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/localazy.gpg && \
@ -74,6 +74,7 @@ RUN curl -sS https://dist.localazy.com/debian/pubkey.gpg | sudo gpg --dearmor -o
RUN apt-get update && export DEBIAN_FRONTEND=noninteractive && apt-get install -qy \
bash \
build-essential \
cloudflared \
curl \
docker-ce-cli \
jq \
@ -83,7 +84,6 @@ RUN apt-get update && export DEBIAN_FRONTEND=noninteractive && apt-get install -
localazy \
nano \
netcat \
ngrok \
pandoc \
unzip \
wget

@ -10,6 +10,7 @@ jobs:
name: Build
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
@ -76,10 +77,7 @@ jobs:
with:
context: .
file: dev/build/Dockerfile
provenance: true
push: true
# cache-from: type=gha
# cache-to: type=gha,mode=max
platforms: linux/amd64,linux/arm64
tags: |
ghcr.io/requarks/wiki:3.0.0-alpha

@ -117,8 +117,8 @@ The server **dev** should already be available under **Servers**. If that's not
### Requirements
- PostgreSQL **11** or later *(**16** or later recommended)*
- Node.js **18.x** or later
- PostgreSQL **12** or later *(**16** or later recommended)*
- Node.js **20.x** or later
- [pnpm](https://pnpm.io/installation#using-corepack)
### Usage

@ -1,15 +1,17 @@
lockfileVersion: '6.0'
lockfileVersion: '9.0'
settings:
autoInstallPeers: true
excludeLinksFromLockfile: false
dependencies:
importers:
.:
dependencies:
lit:
specifier: 2.8.0
version: 2.8.0
devDependencies:
devDependencies:
'@rollup/plugin-graphql':
specifier: 2.0.4
version: 2.0.4(graphql@16.8.1)(rollup@3.29.4)
@ -31,80 +33,46 @@ devDependencies:
packages:
/@colors/colors@1.5.0:
'@colors/colors@1.5.0':
resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==}
engines: {node: '>=0.1.90'}
requiresBuild: true
dev: true
optional: true
/@isaacs/cliui@8.0.2:
'@isaacs/cliui@8.0.2':
resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
engines: {node: '>=12'}
dependencies:
string-width: 5.1.2
string-width-cjs: /string-width@4.2.3
strip-ansi: 7.1.0
strip-ansi-cjs: /strip-ansi@6.0.1
wrap-ansi: 8.1.0
wrap-ansi-cjs: /wrap-ansi@7.0.0
dev: true
/@jridgewell/gen-mapping@0.3.3:
'@jridgewell/gen-mapping@0.3.3':
resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==}
engines: {node: '>=6.0.0'}
dependencies:
'@jridgewell/set-array': 1.1.2
'@jridgewell/sourcemap-codec': 1.4.15
'@jridgewell/trace-mapping': 0.3.19
dev: true
/@jridgewell/resolve-uri@3.1.1:
'@jridgewell/resolve-uri@3.1.1':
resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==}
engines: {node: '>=6.0.0'}
dev: true
/@jridgewell/set-array@1.1.2:
'@jridgewell/set-array@1.1.2':
resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==}
engines: {node: '>=6.0.0'}
dev: true
/@jridgewell/source-map@0.3.5:
'@jridgewell/source-map@0.3.5':
resolution: {integrity: sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==}
dependencies:
'@jridgewell/gen-mapping': 0.3.3
'@jridgewell/trace-mapping': 0.3.19
dev: true
/@jridgewell/sourcemap-codec@1.4.15:
'@jridgewell/sourcemap-codec@1.4.15':
resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==}
dev: true
/@jridgewell/trace-mapping@0.3.19:
'@jridgewell/trace-mapping@0.3.19':
resolution: {integrity: sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==}
dependencies:
'@jridgewell/resolve-uri': 3.1.1
'@jridgewell/sourcemap-codec': 1.4.15
dev: true
/@lit-labs/ssr-dom-shim@1.1.1:
'@lit-labs/ssr-dom-shim@1.1.1':
resolution: {integrity: sha512-kXOeFbfCm4fFf2A3WwVEeQj55tMZa8c8/f9AKHMobQMkzNUfUj+antR3fRPaZJawsa1aZiP/Da3ndpZrwEe4rQ==}
dev: false
/@lit/reactive-element@1.6.3:
'@lit/reactive-element@1.6.3':
resolution: {integrity: sha512-QuTgnG52Poic7uM1AN5yJ09QMe0O28e10XzSvWDz02TJiiKee4stsiownEIadWm8nYzyDAyT+gKzUoZmiWQtsQ==}
dependencies:
'@lit-labs/ssr-dom-shim': 1.1.1
dev: false
/@pkgjs/parseargs@0.11.0:
'@pkgjs/parseargs@0.11.0':
resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
engines: {node: '>=14'}
requiresBuild: true
dev: true
optional: true
/@rollup/plugin-graphql@2.0.4(graphql@16.8.1)(rollup@3.29.4):
'@rollup/plugin-graphql@2.0.4':
resolution: {integrity: sha512-TfaqbbK71VHodCDCoRbPnv2+Tsnlvad2OsGEviURHFl+ZBUyf5wfXgXc9RqZ+xKxSl87Z3YbPhD0z6eWYjuByw==}
engines: {node: '>=14.0.0'}
peerDependencies:
@ -113,14 +81,8 @@ packages:
peerDependenciesMeta:
rollup:
optional: true
dependencies:
'@rollup/pluginutils': 5.0.5(rollup@3.29.4)
graphql: 16.8.1
graphql-tag: 2.12.6(graphql@16.8.1)
rollup: 3.29.4
dev: true
/@rollup/plugin-node-resolve@15.2.2(rollup@3.29.4):
'@rollup/plugin-node-resolve@15.2.2':
resolution: {integrity: sha512-f64bU4OKqV0yihtxFemmuf0oj37pToCFMISCA+sJbbIAl5wcpbRO9XgWNWb1tDiWQJUcPxo6V0l59hcuZOQ3kw==}
engines: {node: '>=14.0.0'}
peerDependencies:
@ -128,17 +90,8 @@ packages:
peerDependenciesMeta:
rollup:
optional: true
dependencies:
'@rollup/pluginutils': 5.0.5(rollup@3.29.4)
'@types/resolve': 1.20.2
deepmerge: 4.3.1
is-builtin-module: 3.2.1
is-module: 1.0.0
resolve: 1.22.6
rollup: 3.29.4
dev: true
/@rollup/plugin-terser@0.4.4(rollup@3.29.4):
'@rollup/plugin-terser@0.4.4':
resolution: {integrity: sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==}
engines: {node: '>=14.0.0'}
peerDependencies:
@ -146,14 +99,8 @@ packages:
peerDependenciesMeta:
rollup:
optional: true
dependencies:
rollup: 3.29.4
serialize-javascript: 6.0.1
smob: 1.4.1
terser: 5.21.0
dev: true
/@rollup/pluginutils@5.0.5(rollup@3.29.4):
'@rollup/pluginutils@5.0.5':
resolution: {integrity: sha512-6aEYR910NyP73oHiJglti74iRyOwgFU4x3meH/H8OJx6Ry0j6cOVZ5X/wTvub7G7Ao6qaHBEaNsV3GLJkSsF+Q==}
engines: {node: '>=14.0.0'}
peerDependencies:
@ -161,317 +108,513 @@ packages:
peerDependenciesMeta:
rollup:
optional: true
dependencies:
'@types/estree': 1.0.2
estree-walker: 2.0.2
picomatch: 2.3.1
rollup: 3.29.4
dev: true
/@types/estree@1.0.2:
'@types/estree@1.0.2':
resolution: {integrity: sha512-VeiPZ9MMwXjO32/Xu7+OwflfmeoRwkE/qzndw42gGtgJwZopBnzy2gD//NN1+go1mADzkDcqf/KnFRSjTJ8xJA==}
dev: true
/@types/resolve@1.20.2:
'@types/resolve@1.20.2':
resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==}
dev: true
/@types/trusted-types@2.0.4:
'@types/trusted-types@2.0.4':
resolution: {integrity: sha512-IDaobHimLQhjwsQ/NMwRVfa/yL7L/wriQPMhw1ZJall0KX6E1oxk29XMDeilW5qTIg5aoiqf5Udy8U/51aNoQQ==}
dev: false
/acorn@8.10.0:
acorn@8.10.0:
resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==}
engines: {node: '>=0.4.0'}
hasBin: true
dev: true
/ansi-regex@5.0.1:
ansi-regex@5.0.1:
resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
engines: {node: '>=8'}
dev: true
/ansi-regex@6.0.1:
ansi-regex@6.0.1:
resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==}
engines: {node: '>=12'}
dev: true
/ansi-styles@4.3.0:
ansi-styles@4.3.0:
resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
engines: {node: '>=8'}
dependencies:
color-convert: 2.0.1
dev: true
/ansi-styles@6.2.1:
ansi-styles@6.2.1:
resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==}
engines: {node: '>=12'}
dev: true
/balanced-match@1.0.2:
balanced-match@1.0.2:
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
dev: true
/brace-expansion@2.0.1:
brace-expansion@2.0.1:
resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
dependencies:
balanced-match: 1.0.2
dev: true
/brotli-size@4.0.0:
brotli-size@4.0.0:
resolution: {integrity: sha512-uA9fOtlTRC0iqKfzff1W34DXUA3GyVqbUaeo3Rw3d4gd1eavKVCETXrn3NzO74W+UVkG3UHu8WxUi+XvKI/huA==}
engines: {node: '>= 10.16.0'}
dependencies:
duplexer: 0.1.1
dev: true
/buffer-from@1.1.2:
buffer-from@1.1.2:
resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
dev: true
/builtin-modules@3.3.0:
builtin-modules@3.3.0:
resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==}
engines: {node: '>=6'}
dev: true
/cli-table3@0.6.3:
cli-table3@0.6.3:
resolution: {integrity: sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==}
engines: {node: 10.* || >= 12.*}
dependencies:
string-width: 4.2.3
optionalDependencies:
'@colors/colors': 1.5.0
dev: true
/color-convert@2.0.1:
color-convert@2.0.1:
resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
engines: {node: '>=7.0.0'}
dependencies:
color-name: 1.1.4
dev: true
/color-name@1.1.4:
color-name@1.1.4:
resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
dev: true
/commander@2.20.3:
commander@2.20.3:
resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
dev: true
/cross-spawn@7.0.3:
cross-spawn@7.0.3:
resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
engines: {node: '>= 8'}
dependencies:
path-key: 3.1.1
shebang-command: 2.0.0
which: 2.0.2
dev: true
/deepmerge@4.3.1:
deepmerge@4.3.1:
resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==}
engines: {node: '>=0.10.0'}
dev: true
/duplexer@0.1.1:
duplexer@0.1.1:
resolution: {integrity: sha512-sxNZ+ljy+RA1maXoUReeqBBpBC6RLKmg5ewzV+x+mSETmWNoKdZN6vcQjpFROemza23hGFskJtFNoUWUaQ+R4Q==}
dev: true
/duplexer@0.1.2:
duplexer@0.1.2:
resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==}
dev: true
/eastasianwidth@0.2.0:
eastasianwidth@0.2.0:
resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
dev: true
/emoji-regex@8.0.0:
emoji-regex@8.0.0:
resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
dev: true
/emoji-regex@9.2.2:
emoji-regex@9.2.2:
resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
dev: true
/estree-walker@2.0.2:
estree-walker@2.0.2:
resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==}
dev: true
/filesize@10.1.0:
filesize@10.1.0:
resolution: {integrity: sha512-GTLKYyBSDz3nPhlLVPjPWZCnhkd9TrrRArNcy8Z+J2cqScB7h2McAzR6NBX6nYOoWafql0roY8hrocxnZBv9CQ==}
engines: {node: '>= 10.4.0'}
dev: true
/foreground-child@3.1.1:
foreground-child@3.1.1:
resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==}
engines: {node: '>=14'}
dependencies:
cross-spawn: 7.0.3
signal-exit: 4.1.0
dev: true
/fsevents@2.3.3:
fsevents@2.3.3:
resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
os: [darwin]
requiresBuild: true
dev: true
optional: true
/glob@10.3.10:
glob@10.3.10:
resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==}
engines: {node: '>=16 || 14 >=14.17'}
hasBin: true
dependencies:
foreground-child: 3.1.1
jackspeak: 2.3.6
minimatch: 9.0.3
minipass: 7.0.4
path-scurry: 1.10.1
dev: true
/graphql-tag@2.12.6(graphql@16.8.1):
graphql-tag@2.12.6:
resolution: {integrity: sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==}
engines: {node: '>=10'}
peerDependencies:
graphql: ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0
dependencies:
graphql: 16.8.1
tslib: 2.6.2
dev: true
/graphql@16.8.1:
graphql@16.8.1:
resolution: {integrity: sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw==}
engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0}
dev: true
/gzip-size@7.0.0:
gzip-size@7.0.0:
resolution: {integrity: sha512-O1Ld7Dr+nqPnmGpdhzLmMTQ4vAsD+rHwMm1NLUmoUFFymBOMKxCCrtDxqdBRYXdeEPEi3SyoR4TizJLQrnKBNA==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
dependencies:
duplexer: 0.1.2
dev: true
/has@1.0.4:
has@1.0.4:
resolution: {integrity: sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==}
engines: {node: '>= 0.4.0'}
dev: true
/is-builtin-module@3.2.1:
is-builtin-module@3.2.1:
resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==}
engines: {node: '>=6'}
dependencies:
builtin-modules: 3.3.0
dev: true
/is-core-module@2.13.0:
is-core-module@2.13.0:
resolution: {integrity: sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==}
dependencies:
has: 1.0.4
dev: true
/is-fullwidth-code-point@3.0.0:
is-fullwidth-code-point@3.0.0:
resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
engines: {node: '>=8'}
dev: true
/is-module@1.0.0:
is-module@1.0.0:
resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==}
dev: true
/isexe@2.0.0:
isexe@2.0.0:
resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
dev: true
/jackspeak@2.3.6:
jackspeak@2.3.6:
resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==}
engines: {node: '>=14'}
lit-element@3.3.3:
resolution: {integrity: sha512-XbeRxmTHubXENkV4h8RIPyr8lXc+Ff28rkcQzw3G6up2xg5E8Zu1IgOWIwBLEQsu3cOVFqdYwiVi0hv0SlpqUA==}
lit-html@2.8.0:
resolution: {integrity: sha512-o9t+MQM3P4y7M7yNzqAyjp7z+mQGa4NS4CxiyLqFPyFWyc4O+nodLrkrxSaCTrla6M5YOLaT3RpbbqjszB5g3Q==}
lit@2.8.0:
resolution: {integrity: sha512-4Sc3OFX9QHOJaHbmTMk28SYgVxLN3ePDjg7hofEft2zWlehFL3LiAuapWc4U/kYwMYJSh2hTCPZ6/LIC7ii0MA==}
lru-cache@10.0.1:
resolution: {integrity: sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==}
engines: {node: 14 || >=16.14}
minimatch@9.0.3:
resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==}
engines: {node: '>=16 || 14 >=14.17'}
minipass@7.0.4:
resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==}
engines: {node: '>=16 || 14 >=14.17'}
path-key@3.1.1:
resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
engines: {node: '>=8'}
path-parse@1.0.7:
resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
path-scurry@1.10.1:
resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==}
engines: {node: '>=16 || 14 >=14.17'}
picomatch@2.3.1:
resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
engines: {node: '>=8.6'}
randombytes@2.1.0:
resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==}
resolve@1.22.6:
resolution: {integrity: sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw==}
hasBin: true
rollup-plugin-summary@2.0.0:
resolution: {integrity: sha512-7Av6DQeCmVNpFmCdkkbMya1CneeGWhjSXXQ3B4yDO+BvN/Kbohqi3IEYXAvgHP3iIafSfMyOw+PBLFUlvf1ViA==}
engines: {node: '>=14.0.0'}
peerDependencies:
rollup: ^2.68.0||^3.0.0
rollup@3.29.4:
resolution: {integrity: sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==}
engines: {node: '>=14.18.0', npm: '>=8.0.0'}
hasBin: true
safe-buffer@5.2.1:
resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
serialize-javascript@6.0.1:
resolution: {integrity: sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==}
shebang-command@2.0.0:
resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
engines: {node: '>=8'}
shebang-regex@3.0.0:
resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
engines: {node: '>=8'}
signal-exit@4.1.0:
resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
engines: {node: '>=14'}
smob@1.4.1:
resolution: {integrity: sha512-9LK+E7Hv5R9u4g4C3p+jjLstaLe11MDsL21UpYaCNmapvMkYhqCV4A/f/3gyH8QjMyh6l68q9xC85vihY9ahMQ==}
source-map-support@0.5.21:
resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==}
source-map@0.6.1:
resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
engines: {node: '>=0.10.0'}
string-width@4.2.3:
resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
engines: {node: '>=8'}
string-width@5.1.2:
resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==}
engines: {node: '>=12'}
strip-ansi@6.0.1:
resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
engines: {node: '>=8'}
strip-ansi@7.1.0:
resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==}
engines: {node: '>=12'}
supports-preserve-symlinks-flag@1.0.0:
resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
engines: {node: '>= 0.4'}
terser@5.21.0:
resolution: {integrity: sha512-WtnFKrxu9kaoXuiZFSGrcAvvBqAdmKx0SFNmVNYdJamMu9yyN3I/QF0FbH4QcqJQ+y1CJnzxGIKH0cSj+FGYRw==}
engines: {node: '>=10'}
hasBin: true
tslib@2.6.2:
resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==}
which@2.0.2:
resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
engines: {node: '>= 8'}
hasBin: true
wrap-ansi@7.0.0:
resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
engines: {node: '>=10'}
wrap-ansi@8.1.0:
resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==}
engines: {node: '>=12'}
snapshots:
'@colors/colors@1.5.0':
optional: true
'@isaacs/cliui@8.0.2':
dependencies:
string-width: 5.1.2
string-width-cjs: string-width@4.2.3
strip-ansi: 7.1.0
strip-ansi-cjs: strip-ansi@6.0.1
wrap-ansi: 8.1.0
wrap-ansi-cjs: wrap-ansi@7.0.0
'@jridgewell/gen-mapping@0.3.3':
dependencies:
'@jridgewell/set-array': 1.1.2
'@jridgewell/sourcemap-codec': 1.4.15
'@jridgewell/trace-mapping': 0.3.19
'@jridgewell/resolve-uri@3.1.1': {}
'@jridgewell/set-array@1.1.2': {}
'@jridgewell/source-map@0.3.5':
dependencies:
'@jridgewell/gen-mapping': 0.3.3
'@jridgewell/trace-mapping': 0.3.19
'@jridgewell/sourcemap-codec@1.4.15': {}
'@jridgewell/trace-mapping@0.3.19':
dependencies:
'@jridgewell/resolve-uri': 3.1.1
'@jridgewell/sourcemap-codec': 1.4.15
'@lit-labs/ssr-dom-shim@1.1.1': {}
'@lit/reactive-element@1.6.3':
dependencies:
'@lit-labs/ssr-dom-shim': 1.1.1
'@pkgjs/parseargs@0.11.0':
optional: true
'@rollup/plugin-graphql@2.0.4(graphql@16.8.1)(rollup@3.29.4)':
dependencies:
'@rollup/pluginutils': 5.0.5(rollup@3.29.4)
graphql: 16.8.1
graphql-tag: 2.12.6(graphql@16.8.1)
rollup: 3.29.4
'@rollup/plugin-node-resolve@15.2.2(rollup@3.29.4)':
dependencies:
'@rollup/pluginutils': 5.0.5(rollup@3.29.4)
'@types/resolve': 1.20.2
deepmerge: 4.3.1
is-builtin-module: 3.2.1
is-module: 1.0.0
resolve: 1.22.6
rollup: 3.29.4
'@rollup/plugin-terser@0.4.4(rollup@3.29.4)':
dependencies:
rollup: 3.29.4
serialize-javascript: 6.0.1
smob: 1.4.1
terser: 5.21.0
'@rollup/pluginutils@5.0.5(rollup@3.29.4)':
dependencies:
'@types/estree': 1.0.2
estree-walker: 2.0.2
picomatch: 2.3.1
rollup: 3.29.4
'@types/estree@1.0.2': {}
'@types/resolve@1.20.2': {}
'@types/trusted-types@2.0.4': {}
acorn@8.10.0: {}
ansi-regex@5.0.1: {}
ansi-regex@6.0.1: {}
ansi-styles@4.3.0:
dependencies:
color-convert: 2.0.1
ansi-styles@6.2.1: {}
balanced-match@1.0.2: {}
brace-expansion@2.0.1:
dependencies:
balanced-match: 1.0.2
brotli-size@4.0.0:
dependencies:
duplexer: 0.1.1
buffer-from@1.1.2: {}
builtin-modules@3.3.0: {}
cli-table3@0.6.3:
dependencies:
string-width: 4.2.3
optionalDependencies:
'@colors/colors': 1.5.0
color-convert@2.0.1:
dependencies:
color-name: 1.1.4
color-name@1.1.4: {}
commander@2.20.3: {}
cross-spawn@7.0.3:
dependencies:
path-key: 3.1.1
shebang-command: 2.0.0
which: 2.0.2
deepmerge@4.3.1: {}
duplexer@0.1.1: {}
duplexer@0.1.2: {}
eastasianwidth@0.2.0: {}
emoji-regex@8.0.0: {}
emoji-regex@9.2.2: {}
estree-walker@2.0.2: {}
filesize@10.1.0: {}
foreground-child@3.1.1:
dependencies:
cross-spawn: 7.0.3
signal-exit: 4.1.0
fsevents@2.3.3:
optional: true
glob@10.3.10:
dependencies:
foreground-child: 3.1.1
jackspeak: 2.3.6
minimatch: 9.0.3
minipass: 7.0.4
path-scurry: 1.10.1
graphql-tag@2.12.6(graphql@16.8.1):
dependencies:
graphql: 16.8.1
tslib: 2.6.2
graphql@16.8.1: {}
gzip-size@7.0.0:
dependencies:
duplexer: 0.1.2
has@1.0.4: {}
is-builtin-module@3.2.1:
dependencies:
builtin-modules: 3.3.0
is-core-module@2.13.0:
dependencies:
has: 1.0.4
is-fullwidth-code-point@3.0.0: {}
is-module@1.0.0: {}
isexe@2.0.0: {}
jackspeak@2.3.6:
dependencies:
'@isaacs/cliui': 8.0.2
optionalDependencies:
'@pkgjs/parseargs': 0.11.0
dev: true
/lit-element@3.3.3:
resolution: {integrity: sha512-XbeRxmTHubXENkV4h8RIPyr8lXc+Ff28rkcQzw3G6up2xg5E8Zu1IgOWIwBLEQsu3cOVFqdYwiVi0hv0SlpqUA==}
lit-element@3.3.3:
dependencies:
'@lit-labs/ssr-dom-shim': 1.1.1
'@lit/reactive-element': 1.6.3
lit-html: 2.8.0
dev: false
/lit-html@2.8.0:
resolution: {integrity: sha512-o9t+MQM3P4y7M7yNzqAyjp7z+mQGa4NS4CxiyLqFPyFWyc4O+nodLrkrxSaCTrla6M5YOLaT3RpbbqjszB5g3Q==}
lit-html@2.8.0:
dependencies:
'@types/trusted-types': 2.0.4
dev: false
/lit@2.8.0:
resolution: {integrity: sha512-4Sc3OFX9QHOJaHbmTMk28SYgVxLN3ePDjg7hofEft2zWlehFL3LiAuapWc4U/kYwMYJSh2hTCPZ6/LIC7ii0MA==}
lit@2.8.0:
dependencies:
'@lit/reactive-element': 1.6.3
lit-element: 3.3.3
lit-html: 2.8.0
dev: false
/lru-cache@10.0.1:
resolution: {integrity: sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==}
engines: {node: 14 || >=16.14}
dev: true
lru-cache@10.0.1: {}
/minimatch@9.0.3:
resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==}
engines: {node: '>=16 || 14 >=14.17'}
minimatch@9.0.3:
dependencies:
brace-expansion: 2.0.1
dev: true
/minipass@7.0.4:
resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==}
engines: {node: '>=16 || 14 >=14.17'}
dev: true
minipass@7.0.4: {}
/path-key@3.1.1:
resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
engines: {node: '>=8'}
dev: true
path-key@3.1.1: {}
/path-parse@1.0.7:
resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
dev: true
path-parse@1.0.7: {}
/path-scurry@1.10.1:
resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==}
engines: {node: '>=16 || 14 >=14.17'}
path-scurry@1.10.1:
dependencies:
lru-cache: 10.0.1
minipass: 7.0.4
dev: true
/picomatch@2.3.1:
resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
engines: {node: '>=8.6'}
dev: true
picomatch@2.3.1: {}
/randombytes@2.1.0:
resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==}
randombytes@2.1.0:
dependencies:
safe-buffer: 5.2.1
dev: true
/resolve@1.22.6:
resolution: {integrity: sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw==}
hasBin: true
resolve@1.22.6:
dependencies:
is-core-module: 2.13.0
path-parse: 1.0.7
supports-preserve-symlinks-flag: 1.0.0
dev: true
/rollup-plugin-summary@2.0.0(rollup@3.29.4):
resolution: {integrity: sha512-7Av6DQeCmVNpFmCdkkbMya1CneeGWhjSXXQ3B4yDO+BvN/Kbohqi3IEYXAvgHP3iIafSfMyOw+PBLFUlvf1ViA==}
engines: {node: '>=14.0.0'}
peerDependencies:
rollup: ^2.68.0||^3.0.0
rollup-plugin-summary@2.0.0(rollup@3.29.4):
dependencies:
brotli-size: 4.0.0
cli-table3: 0.6.3
@ -479,133 +622,77 @@ packages:
gzip-size: 7.0.0
rollup: 3.29.4
terser: 5.21.0
dev: true
/rollup@3.29.4:
resolution: {integrity: sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==}
engines: {node: '>=14.18.0', npm: '>=8.0.0'}
hasBin: true
rollup@3.29.4:
optionalDependencies:
fsevents: 2.3.3
dev: true
/safe-buffer@5.2.1:
resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
dev: true
safe-buffer@5.2.1: {}
/serialize-javascript@6.0.1:
resolution: {integrity: sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==}
serialize-javascript@6.0.1:
dependencies:
randombytes: 2.1.0
dev: true
/shebang-command@2.0.0:
resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
engines: {node: '>=8'}
shebang-command@2.0.0:
dependencies:
shebang-regex: 3.0.0
dev: true
/shebang-regex@3.0.0:
resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
engines: {node: '>=8'}
dev: true
shebang-regex@3.0.0: {}
/signal-exit@4.1.0:
resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
engines: {node: '>=14'}
dev: true
signal-exit@4.1.0: {}
/smob@1.4.1:
resolution: {integrity: sha512-9LK+E7Hv5R9u4g4C3p+jjLstaLe11MDsL21UpYaCNmapvMkYhqCV4A/f/3gyH8QjMyh6l68q9xC85vihY9ahMQ==}
dev: true
smob@1.4.1: {}
/source-map-support@0.5.21:
resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==}
source-map-support@0.5.21:
dependencies:
buffer-from: 1.1.2
source-map: 0.6.1
dev: true
/source-map@0.6.1:
resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
engines: {node: '>=0.10.0'}
dev: true
source-map@0.6.1: {}
/string-width@4.2.3:
resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
engines: {node: '>=8'}
string-width@4.2.3:
dependencies:
emoji-regex: 8.0.0
is-fullwidth-code-point: 3.0.0
strip-ansi: 6.0.1
dev: true
/string-width@5.1.2:
resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==}
engines: {node: '>=12'}
string-width@5.1.2:
dependencies:
eastasianwidth: 0.2.0
emoji-regex: 9.2.2
strip-ansi: 7.1.0
dev: true
/strip-ansi@6.0.1:
resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
engines: {node: '>=8'}
strip-ansi@6.0.1:
dependencies:
ansi-regex: 5.0.1
dev: true
/strip-ansi@7.1.0:
resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==}
engines: {node: '>=12'}
strip-ansi@7.1.0:
dependencies:
ansi-regex: 6.0.1
dev: true
/supports-preserve-symlinks-flag@1.0.0:
resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
engines: {node: '>= 0.4'}
dev: true
supports-preserve-symlinks-flag@1.0.0: {}
/terser@5.21.0:
resolution: {integrity: sha512-WtnFKrxu9kaoXuiZFSGrcAvvBqAdmKx0SFNmVNYdJamMu9yyN3I/QF0FbH4QcqJQ+y1CJnzxGIKH0cSj+FGYRw==}
engines: {node: '>=10'}
hasBin: true
terser@5.21.0:
dependencies:
'@jridgewell/source-map': 0.3.5
acorn: 8.10.0
commander: 2.20.3
source-map-support: 0.5.21
dev: true
/tslib@2.6.2:
resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==}
dev: true
tslib@2.6.2: {}
/which@2.0.2:
resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
engines: {node: '>= 8'}
hasBin: true
which@2.0.2:
dependencies:
isexe: 2.0.0
dev: true
/wrap-ansi@7.0.0:
resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
engines: {node: '>=10'}
wrap-ansi@7.0.0:
dependencies:
ansi-styles: 4.3.0
string-width: 4.2.3
strip-ansi: 6.0.1
dev: true
/wrap-ansi@8.1.0:
resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==}
engines: {node: '>=12'}
wrap-ansi@8.1.0:
dependencies:
ansi-styles: 6.2.1
string-width: 5.1.2
strip-ansi: 7.1.0
dev: true

@ -438,11 +438,10 @@ export default function () {
* Metrics (Prometheus)
*/
router.get('/metrics', async (req, res, next) => {
if (WIKI.config.metrics.isEnabled) {
if (!WIKI.auth.checkAccess(req.user, ['read:metrics'])) {
return res.sendStatus(403)
}
if (WIKI.config.metrics.isEnabled) {
WIKI.metrics.render(res)
} else {
next()

@ -10,6 +10,7 @@ import {
generateAuthenticationOptions,
verifyAuthenticationResponse
} from '@simplewebauthn/server'
import { isoBase64URL } from '@simplewebauthn/server/helpers'
export default {
Query: {
@ -264,7 +265,7 @@ export default {
userVerification: 'preferred'
},
excludeCredentials: usr.passkeys.authenticators?.map(authenticator => ({
id: new Uint8Array(authenticator.credentialID),
id: isoBase64URL.fromBuffer(new Uint8Array(authenticator.credentialID)),
type: 'public-key',
transports: authenticator.transports
})) ?? []

@ -22,8 +22,6 @@ export function parsePath (rawPath, opts = {}) {
// TODO: use site base lang
locale: 'en', // WIKI.config.lang.code,
path: 'home',
private: false,
privateNS: '',
explicitLocale: false
}
@ -40,7 +38,7 @@ export function parsePath (rawPath, opts = {}) {
p = p.trim()
return !isEmpty(p) && p !== '..' && p !== '.'
})
if (pathParts[0].startsWith('_')) {
if (pathParts.length > 1 && pathParts[0].startsWith('_')) {
pathParts.shift()
}
if (localeSegmentRegex.test(pathParts[0])) {

@ -36,26 +36,26 @@
"node": ">=18.0"
},
"dependencies": {
"@apollo/server": "4.10.0",
"@apollo/server": "4.10.4",
"@azure/storage-blob": "12.17.0",
"@exlinc/keycloak-passport": "1.0.2",
"@graphql-tools/schema": "10.0.2",
"@graphql-tools/utils": "10.0.13",
"@graphql-tools/schema": "10.0.3",
"@graphql-tools/utils": "10.1.3",
"@hexagon/base64": "1.1.28",
"@joplin/turndown-plugin-gfm": "1.0.54",
"@node-saml/passport-saml": "4.0.4",
"@joplin/turndown-plugin-gfm": "1.0.55",
"@node-saml/passport-saml": "5.0.0",
"@root/csr": "0.8.1",
"@root/keypairs": "0.10.3",
"@root/pem": "1.0.4",
"@simplewebauthn/server": "9.0.1",
"@vue-email/compiler": "0.8.9",
"@simplewebauthn/server": "10.0.0",
"@vue-email/compiler": "0.8.14",
"acme": "3.0.3",
"akismet-api": "6.0.0",
"aws-sdk": "2.1550.0",
"aws-sdk": "2.1603.0",
"bcryptjs": "2.4.3",
"chalk": "5.3.0",
"cheerio": "1.0.0-rc.12",
"chokidar": "3.5.3",
"chokidar": "3.6.0",
"chromium-pickle-js": "0.2.0",
"clean-css": "5.3.3",
"command-exists": "1.2.9",
@ -67,40 +67,40 @@
"cuint": "0.2.2",
"custom-error-instance": "2.1.2",
"dependency-graph": "1.0.0",
"diff": "5.1.0",
"diff2html": "3.4.47",
"dompurify": "3.0.8",
"diff": "5.2.0",
"diff2html": "3.4.48",
"dompurify": "3.1.0",
"dotize": "0.3.0",
"emoji-regex": "10.3.0",
"eventemitter2": "6.4.9",
"express": "4.18.2",
"express": "4.19.2",
"express-brute": "1.0.1",
"express-session": "1.18.0",
"file-type": "19.0.0",
"filesize": "10.1.0",
"filesize": "10.1.1",
"fs-extra": "11.2.0",
"getos": "3.2.1",
"graphql": "16.8.1",
"graphql-list-fields": "2.0.3",
"graphql-list-fields": "2.0.4",
"graphql-rate-limit-directive": "2.0.5",
"graphql-tools": "9.0.0",
"graphql-tools": "9.0.1",
"graphql-upload": "16.0.2",
"gray-matter": "4.0.3",
"he": "1.2.0",
"highlight.js": "11.9.0",
"image-size": "1.1.1",
"js-base64": "3.7.6",
"js-base64": "3.7.7",
"js-binary": "1.2.0",
"js-yaml": "4.1.0",
"jsdom": "24.0.0",
"jsonwebtoken": "9.0.2",
"katex": "0.16.9",
"katex": "0.16.10",
"klaw": "4.1.0",
"knex": "3.1.0",
"lodash": "4.17.21",
"lodash-es": "4.17.21",
"luxon": "3.4.4",
"markdown-it": "14.0.0",
"markdown-it": "14.1.0",
"markdown-it-abbr": "2.0.0",
"markdown-it-attrs": "4.1.6",
"markdown-it-decorate": "1.2.2",
@ -109,7 +109,7 @@
"markdown-it-footnote": "4.0.0",
"markdown-it-imsize": "2.0.1",
"markdown-it-mark": "4.0.0",
"markdown-it-mdc": "0.2.1",
"markdown-it-mdc": "0.2.3",
"markdown-it-multimd-table": "4.2.3",
"markdown-it-sub": "2.0.0",
"markdown-it-sup": "2.0.0",
@ -118,12 +118,12 @@
"mime-types": "2.1.35",
"ms": "2.1.3",
"multer": "1.4.5-lts.1",
"nanoid": "5.0.5",
"nanoid": "5.0.7",
"node-2fa": "2.0.3",
"node-cache": "5.1.2",
"nodemailer": "6.9.9",
"objection": "3.1.3",
"octokit": "3.1.2",
"nodemailer": "6.9.13",
"objection": "3.1.4",
"octokit": "3.2.0",
"passport": "0.7.0",
"passport-auth0": "1.4.4",
"passport-azure-ad": "4.3.5",
@ -137,42 +137,42 @@
"passport-jwt": "4.0.1",
"passport-ldapauth": "3.0.1",
"passport-local": "1.0.0",
"passport-microsoft": "1.0.0",
"passport-microsoft": "2.0.0",
"passport-oauth2": "1.8.0",
"passport-okta-oauth": "0.0.1",
"passport-openidconnect": "0.1.1",
"passport-openidconnect": "0.1.2",
"passport-slack-oauth2": "1.2.0",
"passport-twitch-strategy": "2.2.0",
"pem-jwk": "2.0.0",
"pg": "8.11.3",
"pg": "8.11.5",
"pg-hstore": "2.3.4",
"pg-pubsub": "0.8.1",
"pg-query-stream": "4.5.3",
"pg-query-stream": "4.5.5",
"pg-tsquery": "8.4.2",
"poolifier": "3.1.19",
"prom-client": "15.1.0",
"poolifier": "3.1.29",
"prom-client": "15.1.2",
"punycode": "2.3.1",
"puppeteer-core": "21.11.0",
"puppeteer-core": "22.6.5",
"qr-image": "3.2.0",
"remove-markdown": "0.5.0",
"safe-regex": "2.1.1",
"sanitize-filename": "1.6.3",
"scim-query-filter-parser": "2.0.4",
"semver": "7.5.4",
"semver": "7.6.0",
"serve-favicon": "2.5.0",
"sharp": "0.33.2",
"simple-git": "3.22.0",
"socket.io": "4.7.4",
"sharp": "0.33.3",
"simple-git": "3.24.0",
"socket.io": "4.7.5",
"striptags": "3.2.0",
"tar-fs": "3.0.4",
"turndown": "7.1.2",
"tar-fs": "3.0.5",
"turndown": "7.1.3",
"twemoji": "14.0.2",
"ufo": "1.3.2",
"ufo": "1.5.3",
"uslug": "1.0.4",
"uuid": "9.0.1",
"validate.js": "0.13.1",
"vue": "3.4.15",
"xss": "1.0.14",
"vue": "3.4.23",
"xss": "1.0.15",
"yargs": "17.7.2"
},
"devDependencies": {
@ -182,10 +182,10 @@
"eslint-plugin-import": "2.29.1",
"eslint-plugin-node": "11.1.0",
"eslint-plugin-promise": "6.1.1",
"nodemon": "3.0.3"
"nodemon": "3.1.0"
},
"overrides": {
"@graphql-tools/utils": "10.0.1"
"@graphql-tools/utils": "10.1.3"
},
"collective": {
"type": "opencollective",

File diff suppressed because it is too large Load Diff

@ -11,37 +11,38 @@
"build": "NODE_OPTIONS=--max-old-space-size=8192 vite build --emptyOutDir"
},
"dependencies": {
"@apollo/client": "3.9.9",
"@apollo/client": "3.9.11",
"@lezer/common": "1.2.1",
"@mdi/font": "7.4.47",
"@quasar/extras": "1.16.11",
"@simplewebauthn/browser": "9.0.1",
"@tiptap/core": "2.2.4",
"@tiptap/extension-code-block": "2.2.4",
"@tiptap/extension-code-block-lowlight": "2.2.4",
"@tiptap/extension-color": "2.2.4",
"@tiptap/extension-dropcursor": "2.2.4",
"@tiptap/extension-font-family": "2.2.4",
"@tiptap/extension-gapcursor": "2.2.4",
"@tiptap/extension-hard-break": "2.2.4",
"@tiptap/extension-highlight": "2.2.4",
"@tiptap/extension-history": "2.2.4",
"@tiptap/extension-image": "2.2.4",
"@tiptap/extension-mention": "2.2.4",
"@tiptap/extension-placeholder": "2.2.4",
"@tiptap/extension-table": "2.2.4",
"@tiptap/extension-table-cell": "2.2.4",
"@tiptap/extension-table-header": "2.2.4",
"@tiptap/extension-table-row": "2.2.4",
"@tiptap/extension-task-item": "2.2.4",
"@tiptap/extension-task-list": "2.2.4",
"@tiptap/extension-text-align": "2.2.4",
"@tiptap/extension-text-style": "2.2.4",
"@tiptap/extension-typography": "2.2.4",
"@tiptap/pm": "2.2.4",
"@tiptap/starter-kit": "2.2.4",
"@tiptap/vue-3": "2.2.4",
"@simplewebauthn/browser": "10.0.0",
"@tiptap/core": "2.3.0",
"@tiptap/extension-code-block": "2.3.0",
"@tiptap/extension-code-block-lowlight": "2.3.0",
"@tiptap/extension-color": "2.3.0",
"@tiptap/extension-dropcursor": "2.3.0",
"@tiptap/extension-font-family": "2.3.0",
"@tiptap/extension-gapcursor": "2.3.0",
"@tiptap/extension-hard-break": "2.3.0",
"@tiptap/extension-highlight": "2.3.0",
"@tiptap/extension-history": "2.3.0",
"@tiptap/extension-image": "2.3.0",
"@tiptap/extension-mention": "2.3.0",
"@tiptap/extension-placeholder": "2.3.0",
"@tiptap/extension-table": "2.3.0",
"@tiptap/extension-table-cell": "2.3.0",
"@tiptap/extension-table-header": "2.3.0",
"@tiptap/extension-table-row": "2.3.0",
"@tiptap/extension-task-item": "2.3.0",
"@tiptap/extension-task-list": "2.3.0",
"@tiptap/extension-text-align": "2.3.0",
"@tiptap/extension-text-style": "2.3.0",
"@tiptap/extension-typography": "2.3.0",
"@tiptap/pm": "2.3.0",
"@tiptap/starter-kit": "2.3.0",
"@tiptap/vue-3": "2.3.0",
"@vue/repl": "3.4.0",
"@xterm/xterm": "5.5.0",
"apollo-upload-client": "18.0.1",
"browser-fs-access": "0.35.0",
"clipboard": "2.0.11",
@ -81,13 +82,13 @@
"prosemirror-commands": "1.5.2",
"prosemirror-history": "1.4.0",
"prosemirror-keymap": "1.2.2",
"prosemirror-model": "1.19.4",
"prosemirror-model": "1.20.0",
"prosemirror-schema-list": "1.3.0",
"prosemirror-state": "1.4.3",
"prosemirror-transform": "1.8.0",
"prosemirror-view": "1.33.3",
"prosemirror-view": "1.33.4",
"pug": "3.0.2",
"quasar": "2.15.2",
"quasar": "2.15.3",
"slugify": "1.6.6",
"socket.io-client": "4.7.5",
"sortablejs": "1.15.2",
@ -95,15 +96,14 @@
"tabulator-tables": "6.2.0",
"tippy.js": "6.3.7",
"twemoji": "14.0.2",
"typescript": "5.4.3",
"typescript": "5.4.5",
"uuid": "9.0.1",
"v-network-graph": "0.9.15",
"vue": "3.4.21",
"vue-i18n": "9.10.2",
"vue-router": "4.3.0",
"vue": "3.4.23",
"vue-i18n": "9.13.1",
"vue-router": "4.3.2",
"vue3-otp-input": "0.4.4",
"vuedraggable": "4.1.0",
"xterm": "5.3.0",
"zxcvbn": "4.4.2"
},
"devDependencies": {
@ -112,8 +112,8 @@
"@quasar/app-vite": "2.0.0-beta.5",
"@quasar/vite-plugin": "1.6.0",
"@types/lodash": "4.17.0",
"@vue/devtools": "7.0.25",
"@vue/language-plugin-pug": "2.0.7",
"@vue/devtools": "7.0.27",
"@vue/language-plugin-pug": "2.0.13",
"autoprefixer": "10.4.19",
"browserlist": "latest",
"eslint": "8.57.0",
@ -121,9 +121,9 @@
"eslint-plugin-import": "2.29.1",
"eslint-plugin-n": "16.6.2",
"eslint-plugin-promise": "6.1.1",
"eslint-plugin-vue": "9.24.0",
"eslint-plugin-vue": "9.25.0",
"eslint-plugin-vue-pug": "0.6.2",
"sass": "1.72.0"
"sass": "1.75.0"
},
"engines": {
"node": ">= 18.0",

File diff suppressed because it is too large Load Diff

@ -45,14 +45,15 @@ q-page.admin-mail
q-item-section(side)
q-icon(:name='`img:` + str.strategy.icon')
q-item-section
q-item-label {{str.displayName}}
q-item-label(caption) {{str.strategy.title}}
q-item-label {{ str.displayName }}
q-item-label(caption) {{ str.strategy.title }}
q-item-section(side)
status-light(:color='str.isEnabled ? `positive` : `negative`', :pulse='str.isEnabled')
q-btn.q-mt-sm.full-width(
color='primary'
icon='las la-plus'
:label='t(`admin.auth.addStrategy`)'
v-if='flagsStore.experimental'
)
q-menu(auto-close, fit, max-width='300px')
q-list(separator)
@ -72,17 +73,17 @@ q-page.admin-mail
:name='`img:` + str.icon'
)
q-item-section
q-item-label: strong {{str.title}}
q-item-label: strong {{ str.title }}
q-item-label(caption, lines='2') {{str.description}}
.col
q-card.q-pb-sm
q-card-section
.text-subtitle1 {{t('admin.auth.info')}}
.text-subtitle1 {{ t('admin.auth.info') }}
q-item
blueprint-icon(icon='information')
q-item-section
q-item-label {{t(`admin.auth.infoName`)}}
q-item-label(caption) {{t(`admin.auth.infoNameHint`)}}
q-item-label {{ t(`admin.auth.infoName`) }}
q-item-label(caption) {{ t(`admin.auth.infoNameHint`) }}
q-item-section
q-input(
outlined
@ -95,9 +96,9 @@ q-page.admin-mail
q-item(tag='label')
blueprint-icon(icon='shutdown')
q-item-section
q-item-label {{t(`admin.auth.enabled`)}}
q-item-label(caption) {{t(`admin.auth.enabledHint`)}}
q-item-label.text-deep-orange(v-if='state.strategy.strategy.key === `local`', caption) {{t(`admin.auth.enabledForced`)}}
q-item-label {{ t(`admin.auth.enabled`) }}
q-item-label(caption) {{ t(`admin.auth.enabledHint`) }}
q-item-label.text-deep-orange(v-if='state.strategy.strategy.key === `local`', caption) {{ t(`admin.auth.enabledForced`) }}
q-item-section(avatar)
q-toggle(
v-model='state.strategy.isEnabled'
@ -111,8 +112,8 @@ q-page.admin-mail
q-item(tag='label')
blueprint-icon(icon='register')
q-item-section
q-item-label {{t(`admin.auth.registration`)}}
q-item-label(caption) {{state.strategy.strategy.key === `local` ? t(`admin.auth.registrationLocalHint`) : t(`admin.auth.registrationHint`)}}
q-item-label {{ t(`admin.auth.registration`) }}
q-item-label(caption) {{ state.strategy.strategy.key === `local` ? t(`admin.auth.registrationLocalHint`) : t(`admin.auth.registrationHint`) }}
q-item-section(avatar)
q-toggle(
v-model='state.strategy.registration'
@ -126,8 +127,8 @@ q-page.admin-mail
q-item
blueprint-icon(icon='team')
q-item-section
q-item-label {{t(`admin.auth.autoEnrollGroups`)}}
q-item-label(caption) {{t(`admin.auth.autoEnrollGroupsHint`)}}
q-item-label {{ t(`admin.auth.autoEnrollGroups`) }}
q-item-label(caption) {{ t(`admin.auth.autoEnrollGroupsHint`) }}
q-item-section
q-select(
outlined
@ -144,7 +145,7 @@ q-page.admin-mail
:aria-label='t(`admin.users.groups`)'
:loading='state.loadingGroups'
)
template(v-slot:selected)
template(#selected)
.text-caption(v-if='state.strategy.autoEnrollGroups?.length > 1')
i18n-t(keypath='admin.users.groupsSelected')
template(#count)
@ -154,7 +155,7 @@ q-page.admin-mail
template(#group)
strong {{ selectedGroupName }}
span(v-else)
template(v-slot:option='{ itemProps, opt, selected, toggleOption }')
template(#option='{ itemProps, opt, selected, toggleOption }')
q-item(
v-bind='itemProps'
)
@ -171,8 +172,8 @@ q-page.admin-mail
q-item
blueprint-icon(icon='private')
q-item-section
q-item-label {{t(`admin.auth.allowedEmailRegex`)}}
q-item-label(caption) {{t(`admin.auth.allowedEmailRegexHint`)}}
q-item-label {{ t(`admin.auth.allowedEmailRegex`) }}
q-item-label(caption) {{ t(`admin.auth.allowedEmailRegexHint`) }}
q-item-section
q-input(
outlined
@ -189,12 +190,12 @@ q-page.admin-mail
//- -----------------------
q-card.q-pb-sm.q-mt-md
q-card-section
.text-subtitle1 {{t('admin.auth.strategyConfiguration')}}
.text-subtitle1 {{ t('admin.auth.strategyConfiguration') }}
q-banner.q-mt-md(
v-if='!state.strategy.config || Object.keys(state.strategy.config).length < 1'
rounded
:class='$q.dark.isActive ? `bg-dark-4 text-grey-5` : `bg-grey-2 text-grey-7`'
): em {{t('admin.auth.noConfigOption')}}
): em {{ t('admin.auth.noConfigOption') }}
template(
v-for='(cfg, cfgKey, idx) in state.strategy.config'
)
@ -205,8 +206,8 @@ q-page.admin-mail
q-item(v-if='cfg.type === `boolean`', tag='label')
blueprint-icon(:icon='cfg.icon', :hue-rotate='cfg.readOnly ? -45 : 0')
q-item-section
q-item-label {{cfg.title}}
q-item-label(caption) {{cfg.hint}}
q-item-label {{ cfg.title }}
q-item-label(caption) {{ cfg.hint }}
q-item-section(avatar)
q-toggle(
v-model='cfg.value'
@ -219,8 +220,8 @@ q-page.admin-mail
q-item(v-else)
blueprint-icon(:icon='cfg.icon', :hue-rotate='cfg.readOnly ? -45 : 0')
q-item-section
q-item-label {{cfg.title}}
q-item-label(caption) {{cfg.hint}}
q-item-label {{ cfg.title }}
q-item-label(caption) {{ cfg.hint }}
q-item-section(
:style='cfg.type === `number` ? `flex: 0 0 150px;` : ``'
:class='{ "col-auto": cfg.enum && cfg.enumDisplay === `buttons` }'
@ -262,12 +263,12 @@ q-page.admin-mail
//- -----------------------
q-card.q-pb-sm.q-mt-md(v-if='strategyRefs.length > 0')
q-card-section
.text-subtitle1 {{t('admin.auth.configReference')}}
.text-subtitle1 {{ t('admin.auth.configReference') }}
q-item(v-for='strRef of strategyRefs', :key='strRef.key')
blueprint-icon(:icon='strRef.icon', :hue-rotate='-45')
q-item-section
q-item-label {{strRef.title}}
q-item-label(caption) {{strRef.hint}}
q-item-label {{ strRef.title }}
q-item-label(caption) {{ strRef.hint }}
q-item-section
q-input(
outlined
@ -287,9 +288,9 @@ q-page.admin-mail
no-spinner
style='height: 100px; max-width: 300px;'
)
.text-subtitle2.q-mt-sm {{state.strategy.strategy.title}}
.text-caption.q-mt-sm {{state.strategy.strategy.description}}
.text-caption.q-mt-sm: strong {{state.strategy.strategy.vendor}}
.text-subtitle2.q-mt-sm {{ state.strategy.strategy.title }}
.text-caption.q-mt-sm {{ state.strategy.strategy.description }}
.text-caption.q-mt-sm: strong {{ state.strategy.strategy.vendor }}
.text-caption: a(:href='state.strategy.strategy.website', target='_blank', rel='noreferrer') {{state.strategy.strategy.website}}
.flex.q-mt-md
@ -315,6 +316,7 @@ import { useMeta, useQuasar } from 'quasar'
import { computed, onMounted, reactive, watch, nextTick } from 'vue'
import { useAdminStore } from '@/stores/admin'
import { useFlagsStore } from '@/stores/flags'
import { useSiteStore } from '@/stores/site'
// QUASAR
@ -324,6 +326,7 @@ const $q = useQuasar()
// STORES
const adminStore = useAdminStore()
const flagsStore = useFlagsStore()
const siteStore = useSiteStore()
// I18N

@ -50,8 +50,8 @@ q-page.admin-flags
q-item(v-for='block of state.blocks', :key='block.id')
blueprint-icon(:icon='block.isCustom ? `plugin` : block.icon')
q-item-section
q-item-label: strong {{block.name}}
q-item-label(caption) {{ block.description}}
q-item-label: strong {{ block.name }}
q-item-label(caption) {{ block.description }}
q-item-label.flex.items-center(caption)
q-chip.q-ma-none(square, dense, :color='$q.dark.isActive ? `pink-8` : `pink-1`', :text-color='$q.dark.isActive ? `white` : `pink-9`'): span.text-caption &lt;block-{{ block.block }}&gt;
q-separator.q-mx-sm.q-my-xs(vertical)
@ -79,6 +79,7 @@ q-page.admin-flags
unchecked-icon='las la-times'
:label='t(`admin.blocks.isEnabled`)'
:aria-label='t(`admin.blocks.isEnabled`)'
disable
)
</template>

@ -85,30 +85,30 @@ q-page.admin-dashboard
:disable='!userStore.can(`manage:users`)'
to='/_admin/users'
)
.col-12.col-sm-6.col-lg-3
q-card
q-card-section.admin-dashboard-card
img(src='/_assets/icons/fluent-tag.svg')
div
strong {{ t('admin.tags.title') }}
span {{adminStore.info.tagsTotal}}
q-separator
q-card-actions(align='right')
q-btn(
flat
color='primary'
icon='las la-tags'
:label='t(`common.actions.manage`)'
:disable='!userStore.can(`manage:sites`)'
:to='`/_admin/` + adminStore.currentSiteId + `/tags`'
)
//- .col-12.col-sm-6.col-lg-3
//- q-card
//- q-card-section.admin-dashboard-card
//- img(src='/_assets/icons/fluent-tag.svg')
//- div
//- strong {{ t('admin.tags.title') }}
//- span {{adminStore.info.tagsTotal}}
//- q-separator
//- q-card-actions(align='right')
//- q-btn(
//- flat
//- color='primary'
//- icon='las la-tags'
//- :label='t(`common.actions.manage`)'
//- :disable='!userStore.can(`manage:sites`)'
//- :to='`/_admin/` + adminStore.currentSiteId + `/tags`'
//- )
.col-12.col-sm-6.col-lg-3
q-card
q-card-section.admin-dashboard-card
img(src='/_assets/icons/fluent-female-working-with-a-laptop.svg')
div
strong Logins
small {{adminStore.info.loginsPastDay}} #[i / past 24h]
small {{ adminStore.info.loginsPastDay }} #[i / past 24h]
q-separator
q-card-actions(align='right')
q-btn(
@ -116,12 +116,12 @@ q-page.admin-dashboard
color='primary'
icon='las la-chart-area'
:label='t(`admin.analytics.title`)'
:disable='!userStore.can(`manage:sites`)'
:disable='!userStore.can(`manage:sites`) || flagsStore.experimental'
:to='`/_admin/` + adminStore.currentSiteId + `/analytics`'
)
.col-12.col-lg-9
q-card
q-card-section ---
//- .col-12.col-lg-9
//- q-card
//- q-card-section ---
.col-12
q-banner.bg-positive.text-white(
@ -152,6 +152,7 @@ import { useI18n } from 'vue-i18n'
import { useRouter } from 'vue-router'
import { useAdminStore } from '../stores/admin'
import { useFlagsStore } from '@/stores/flags'
import { useUserStore } from '@/stores/user'
// COMPONENTS
@ -168,6 +169,7 @@ const $q = useQuasar()
// STORES
const adminStore = useAdminStore()
const flagsStore = useFlagsStore()
const userStore = useUserStore()
// ROUTER

@ -55,8 +55,8 @@ import { onBeforeUnmount, onMounted, reactive, ref } from 'vue'
import { useMeta, useQuasar } from 'quasar'
import { useI18n } from 'vue-i18n'
import { io } from 'socket.io-client'
import { Terminal } from 'xterm'
import 'xterm/css/xterm.css'
import { Terminal } from '@xterm/xterm'
import '@xterm/xterm/css/xterm.css'
import { useSiteStore } from '@/stores/site'

Loading…
Cancel
Save