8 Commits

Author SHA1 Message Date
snyk-bot
9e0d88f673 fix: Dockerfile to reduce vulnerabilities
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-DEBIAN12-ZLIB-6008963
- https://snyk.io/vuln/SNYK-DEBIAN12-KRB5-1549480
- https://snyk.io/vuln/SNYK-DEBIAN12-KRB5-6277411
- https://snyk.io/vuln/SNYK-DEBIAN12-KRB5-6277412
- https://snyk.io/vuln/SNYK-DEBIAN12-KRB5-6277421
2024-12-31 04:18:48 +00:00
3ae5b6b23b updating deps
Some checks failed
Build and push image / deploy (push) Has been cancelled
2024-04-15 16:23:56 +01:00
50d46ab835 updating deps
All checks were successful
Build and push image / deploy (push) Has been cancelled
2023-10-13 10:17:44 +01:00
Peter Dwyer
40bd6f7e7f fixing build
All checks were successful
Build and push image / deploy (push) Successful in 3m30s
2023-08-29 11:54:46 +01:00
Peter Dwyer
d46517745e fixing build 2023-08-29 11:43:54 +01:00
Peter Dwyer
a7206bb7f8 fixing build
All checks were successful
Build and push image / deploy (push) Successful in 26m40s
2023-08-29 10:56:58 +01:00
Peter Dwyer
df0caf709e updating deps
Some checks failed
Build and push image / deploy (push) Failing after 19m14s
2023-08-29 08:53:37 +01:00
Peter Dwyer
7049f3fa3b updating deps
Some checks failed
Build and push image / deploy (push) Failing after 19m14s
2023-08-28 16:22:37 +01:00
10 changed files with 666 additions and 544 deletions

View File

@@ -26,15 +26,11 @@ jobs:
poetry-version: "1.6.1" poetry-version: "1.6.1"
- uses: actions/setup-node@v3 - uses: actions/setup-node@v3
- uses: actions/checkout@v3 - uses: actions/checkout@v3
- name: Build and push version # Extract version from Poetry
uses: docker/build-push-action@v4 - name: Get version
with: run: echo "POETRY_VERSION=$(poetry version --short)" >> $GITHUB_ENV
context: . - name: Build and push Docker image
push: true run: |
tags: ajurna/cbwebreader:${{poetry version -s}} docker build -t ajurna/cbwebreader:latest -t ajurna/cbwebreader:${{ env.POETRY_VERSION }} .
- name: Build and push latest docker push ajurna/cbwebreader:${{ env.POETRY_VERSION }}
uses: docker/build-push-action@v4 docker push ajurna/cbwebreader:latest
with:
context: .
push: true
tags: ajurna/cbwebreader:latest

View File

@@ -1,4 +1,4 @@
FROM python:3.10-slim-bullseye FROM python:3.14.0a3-slim-bookworm
ENV PYTHONFAULTHANDLER=1 \ ENV PYTHONFAULTHANDLER=1 \
PYTHONHASHSEED=random \ PYTHONHASHSEED=random \
@@ -15,18 +15,17 @@ WORKDIR /src
COPY . /src/ COPY . /src/
RUN echo "deb http://ftp.uk.debian.org/debian bookworm non-free non-free-firmware" > /etc/apt/sources.list.d/non-free.list
RUN apt update \ RUN apt update \
&& apt install -y software-properties-common \ && apt install -y npm cron unrar libmariadb-dev libpq-dev pkg-config swig \
&& apt-add-repository non-free \
&& apt update \
&& apt install -y npm cron unrar libmariadb-dev libpq-dev \
&& pip install --upgrade pip \ && pip install --upgrade pip \
&& pip install -r requirements.txt \ && pip install -r requirements.txt \
&& cd frontend \ && cd frontend \
&& npm install \ && npm install \
&& npm run build \ && npm run build \
&& apt remove -y npm software-properties-common \ && apt remove -y npm software-properties-common pkg-config swig \
&& rm -r node_modules \ && rm -r node_modules \
&& apt -y auto-remove \ && apt -y auto-remove \
&& apt clean \ && apt clean \

View File

@@ -1,4 +1,4 @@
poetry export --without-hashes -f requirements.txt --output requirements.txt poetry export --without-hashes -f requirements.txt --output requirements.txt
$version=poetry version -s $version=poetry version -s
docker build . --no-cache -t ajurna/cbwebreader -t ajurna/cbwebreader:$version docker build . -t ajurna/cbwebreader -t ajurna/cbwebreader:$version
docker push ajurna/cbwebreader --all-tags docker push ajurna/cbwebreader --all-tags

View File

@@ -191,10 +191,13 @@ BOOTSTRAP4 = {
}, },
} }
CSP_DEFAULT_SRC = ("'none'",) CSP_DEFAULT_SRC = ("'none'",)
CSP_STYLE_SRC = ("'self'", "'sha256-MBVp6JYxbC/wICelYC6eULCRpgi9kGezXXSaq/TS2+I='") CSP_STYLE_SRC = (
"'self'",
"'unsafe-inline'"
)
CSP_IMG_SRC = ("'self'", "data:") CSP_IMG_SRC = ("'self'", "data:")
CSP_FONT_SRC = ("'self'",) CSP_FONT_SRC = ("'self'",)
CSP_SCRIPT_SRC = ("'self'",) CSP_SCRIPT_SRC = ("'self'", "'sha256-IYBrMxCTJ62EwagLTIRncEIpWwTmoXcXkqv3KZm/Wik='")
CSP_CONNECT_SRC = ("'self'",) CSP_CONNECT_SRC = ("'self'",)
CSP_INCLUDE_NONCE_IN = ['script-src'] CSP_INCLUDE_NONCE_IN = ['script-src']
CSP_SCRIPT_SRC_ATTR = ("'self'",) # "'unsafe-inline'") CSP_SCRIPT_SRC_ATTR = ("'self'",) # "'unsafe-inline'")

View File

@@ -13,7 +13,7 @@ services:
expose: expose:
- 8000 - 8000
volumes: volumes:
- ${COMIC_BOOK_VOLUME}:${COMIC_BOOK_VOLUME} - ${COMIC_BOOK_VOLUME}:/comics
# - c:/comics:/comics # - c:/comics:/comics
- static_files:/static - static_files:/static
- media_files:/media - media_files:/media
@@ -35,7 +35,7 @@ services:
# command: /bin/bash entrypoint-cron.sh # command: /bin/bash entrypoint-cron.sh
database: database:
image: postgres:14-alpine image: postgres:16-alpine
expose: expose:
- 5432 - 5432
volumes: volumes:

View File

@@ -1,12 +1,12 @@
{ {
"name": "frontend", "name": "frontend",
"version": "0.1.0", "version": "0.1.1",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "frontend", "name": "frontend",
"version": "0.1.0", "version": "0.1.1",
"dependencies": { "dependencies": {
"@fortawesome/fontawesome-svg-core": "^6.1.2", "@fortawesome/fontawesome-svg-core": "^6.1.2",
"@fortawesome/free-solid-svg-icons": "^6.1.2", "@fortawesome/free-solid-svg-icons": "^6.1.2",
@@ -18,7 +18,7 @@
"pdfvuer": "^2.0.1", "pdfvuer": "^2.0.1",
"reveal.js": "^4.3.1", "reveal.js": "^4.3.1",
"timeago.js": "^4.0.2", "timeago.js": "^4.0.2",
"vue": "^3.2.13", "vue": "^3.2.26",
"vue-router": "^4.0.3", "vue-router": "^4.0.3",
"vue-toast-notification": "3.0", "vue-toast-notification": "3.0",
"vuejs-paginate-next": "^1.0.2", "vuejs-paginate-next": "^1.0.2",
@@ -82,12 +82,12 @@
} }
}, },
"node_modules/@babel/code-frame": { "node_modules/@babel/code-frame": {
"version": "7.22.10", "version": "7.22.13",
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.10.tgz", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz",
"integrity": "sha512-/KKIMG4UEL35WmI9OlvMhurwtytjvXoFcGNrOvyG9zIzA8YmPjVtIZUf7b05+TPO7G7/GEmLHDaoCgACHl9hhA==", "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@babel/highlight": "^7.22.10", "@babel/highlight": "^7.22.13",
"chalk": "^2.4.2" "chalk": "^2.4.2"
}, },
"engines": { "engines": {
@@ -486,9 +486,9 @@
} }
}, },
"node_modules/@babel/highlight": { "node_modules/@babel/highlight": {
"version": "7.22.10", "version": "7.22.13",
"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.10.tgz", "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.13.tgz",
"integrity": "sha512-78aUtVcT7MUscr0K5mIEnkwxPE0MaxkR5RxRwuHaQ+JuU5AmTPhY+do2mdzVTnIJJpyBglql2pehuBIWHug+WQ==", "integrity": "sha512-C/BaXcnnvBCmHTpz/VGZ8jgtE2aYlW4hxDhseJAWZb7gqGM/qtCK6iZUb0TyKFf7BOUsBH7Q7fkRsDRhg1XklQ==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@babel/helper-validator-identifier": "^7.22.5", "@babel/helper-validator-identifier": "^7.22.5",
@@ -500,9 +500,9 @@
} }
}, },
"node_modules/@babel/parser": { "node_modules/@babel/parser": {
"version": "7.22.11", "version": "7.22.13",
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.11.tgz", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.13.tgz",
"integrity": "sha512-R5zb8eJIBPJriQtbH/htEQy4k7E2dHWlD2Y2VT07JCzwYZHBxV5ZYtM0UhXSNMT74LyxuM+b1jdL7pSesXbC/g==", "integrity": "sha512-3l6+4YOvc9wx7VlCSw4yQfcBo01ECA8TicQfbnCPuCEpRQrf+gTUyGdxNw+pyTUyywp6JRD1w0YQs9TpBXYlkw==",
"bin": { "bin": {
"parser": "bin/babel-parser.js" "parser": "bin/babel-parser.js"
}, },
@@ -2958,52 +2958,57 @@
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
"dev": true "dev": true
}, },
"node_modules/@vue/compiler-core": {
"version": "3.3.4",
"resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.3.4.tgz",
"integrity": "sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g==",
"dependencies": {
"@babel/parser": "^7.21.3",
"@vue/shared": "3.3.4",
"estree-walker": "^2.0.2",
"source-map-js": "^1.0.2"
}
},
"node_modules/@vue/compiler-dom": {
"version": "3.3.4",
"resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.3.4.tgz",
"integrity": "sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w==",
"dependencies": {
"@vue/compiler-core": "3.3.4",
"@vue/shared": "3.3.4"
}
},
"node_modules/@vue/compiler-sfc": { "node_modules/@vue/compiler-sfc": {
"version": "3.3.4", "version": "3.2.26",
"resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.3.4.tgz", "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.26.tgz",
"integrity": "sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ==", "integrity": "sha512-ePpnfktV90UcLdsDQUh2JdiTuhV0Skv2iYXxfNMOK/F3Q+2BO0AulcVcfoksOpTJGmhhfosWfMyEaEf0UaWpIw==",
"dependencies": { "dependencies": {
"@babel/parser": "^7.20.15", "@babel/parser": "^7.16.4",
"@vue/compiler-core": "3.3.4", "@vue/compiler-core": "3.2.26",
"@vue/compiler-dom": "3.3.4", "@vue/compiler-dom": "3.2.26",
"@vue/compiler-ssr": "3.3.4", "@vue/compiler-ssr": "3.2.26",
"@vue/reactivity-transform": "3.3.4", "@vue/reactivity-transform": "3.2.26",
"@vue/shared": "3.3.4", "@vue/shared": "3.2.26",
"estree-walker": "^2.0.2", "estree-walker": "^2.0.2",
"magic-string": "^0.30.0", "magic-string": "^0.25.7",
"postcss": "^8.1.10", "postcss": "^8.1.10",
"source-map-js": "^1.0.2" "source-map": "^0.6.1"
} }
}, },
"node_modules/@vue/compiler-ssr": { "node_modules/@vue/compiler-sfc/node_modules/@vue/compiler-core": {
"version": "3.3.4", "version": "3.2.26",
"resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.3.4.tgz", "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.26.tgz",
"integrity": "sha512-m0v6oKpup2nMSehwA6Uuu+j+wEwcy7QmwMkVNVfrV9P2qE5KshC6RwOCq8fjGS/Eak/uNb8AaWekfiXxbBB6gQ==", "integrity": "sha512-N5XNBobZbaASdzY9Lga2D9Lul5vdCIOXvUMd6ThcN8zgqQhPKfCV+wfAJNNJKQkSHudnYRO2gEB+lp0iN3g2Tw==",
"dependencies": { "dependencies": {
"@vue/compiler-dom": "3.3.4", "@babel/parser": "^7.16.4",
"@vue/shared": "3.3.4" "@vue/shared": "3.2.26",
"estree-walker": "^2.0.2",
"source-map": "^0.6.1"
} }
}, },
"node_modules/@vue/compiler-sfc/node_modules/@vue/compiler-dom": {
"version": "3.2.26",
"resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.26.tgz",
"integrity": "sha512-smBfaOW6mQDxcT3p9TKT6mE22vjxjJL50GFVJiI0chXYGU/xzC05QRGrW3HHVuJrmLTLx5zBhsZ2dIATERbarg==",
"dependencies": {
"@vue/compiler-core": "3.2.26",
"@vue/shared": "3.2.26"
}
},
"node_modules/@vue/compiler-sfc/node_modules/@vue/compiler-ssr": {
"version": "3.2.26",
"resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.26.tgz",
"integrity": "sha512-2mywLX0ODc4Zn8qBoA2PDCsLEZfpUGZcyoFRLSOjyGGK6wDy2/5kyDOWtf0S0UvtoyVq95OTSGIALjZ4k2q/ag==",
"dependencies": {
"@vue/compiler-dom": "3.2.26",
"@vue/shared": "3.2.26"
}
},
"node_modules/@vue/compiler-sfc/node_modules/@vue/shared": {
"version": "3.2.26",
"resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.26.tgz",
"integrity": "sha512-vPV6Cq+NIWbH5pZu+V+2QHE9y1qfuTq49uNWw4f7FDEeZaDU2H2cx5jcUZOAKW7qTrUS4k6qZPbMy1x4N96nbA=="
},
"node_modules/@vue/component-compiler-utils": { "node_modules/@vue/component-compiler-utils": {
"version": "3.3.0", "version": "3.3.0",
"resolved": "https://registry.npmjs.org/@vue/component-compiler-utils/-/component-compiler-utils-3.3.0.tgz", "resolved": "https://registry.npmjs.org/@vue/component-compiler-utils/-/component-compiler-utils-3.3.0.tgz",
@@ -3074,60 +3079,120 @@
"integrity": "sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q==" "integrity": "sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q=="
}, },
"node_modules/@vue/reactivity": { "node_modules/@vue/reactivity": {
"version": "3.3.4", "version": "3.2.26",
"resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.3.4.tgz", "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.26.tgz",
"integrity": "sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ==", "integrity": "sha512-h38bxCZLW6oFJVDlCcAiUKFnXI8xP8d+eO0pcDxx+7dQfSPje2AO6M9S9QO6MrxQB7fGP0DH0dYQ8ksf6hrXKQ==",
"dependencies": { "dependencies": {
"@vue/shared": "3.3.4" "@vue/shared": "3.2.26"
} }
}, },
"node_modules/@vue/reactivity-transform": { "node_modules/@vue/reactivity-transform": {
"version": "3.3.4", "version": "3.2.26",
"resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.3.4.tgz", "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.26.tgz",
"integrity": "sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw==", "integrity": "sha512-XKMyuCmzNA7nvFlYhdKwD78rcnmPb7q46uoR00zkX6yZrUmcCQ5OikiwUEVbvNhL5hBJuvbSO95jB5zkUon+eQ==",
"dependencies": { "dependencies": {
"@babel/parser": "^7.20.15", "@babel/parser": "^7.16.4",
"@vue/compiler-core": "3.3.4", "@vue/compiler-core": "3.2.26",
"@vue/shared": "3.3.4", "@vue/shared": "3.2.26",
"estree-walker": "^2.0.2", "estree-walker": "^2.0.2",
"magic-string": "^0.30.0" "magic-string": "^0.25.7"
} }
}, },
"node_modules/@vue/reactivity-transform/node_modules/@vue/compiler-core": {
"version": "3.2.26",
"resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.26.tgz",
"integrity": "sha512-N5XNBobZbaASdzY9Lga2D9Lul5vdCIOXvUMd6ThcN8zgqQhPKfCV+wfAJNNJKQkSHudnYRO2gEB+lp0iN3g2Tw==",
"dependencies": {
"@babel/parser": "^7.16.4",
"@vue/shared": "3.2.26",
"estree-walker": "^2.0.2",
"source-map": "^0.6.1"
}
},
"node_modules/@vue/reactivity-transform/node_modules/@vue/shared": {
"version": "3.2.26",
"resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.26.tgz",
"integrity": "sha512-vPV6Cq+NIWbH5pZu+V+2QHE9y1qfuTq49uNWw4f7FDEeZaDU2H2cx5jcUZOAKW7qTrUS4k6qZPbMy1x4N96nbA=="
},
"node_modules/@vue/reactivity/node_modules/@vue/shared": {
"version": "3.2.26",
"resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.26.tgz",
"integrity": "sha512-vPV6Cq+NIWbH5pZu+V+2QHE9y1qfuTq49uNWw4f7FDEeZaDU2H2cx5jcUZOAKW7qTrUS4k6qZPbMy1x4N96nbA=="
},
"node_modules/@vue/runtime-core": { "node_modules/@vue/runtime-core": {
"version": "3.3.4", "version": "3.2.26",
"resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.3.4.tgz", "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.26.tgz",
"integrity": "sha512-R+bqxMN6pWO7zGI4OMlmvePOdP2c93GsHFM/siJI7O2nxFRzj55pLwkpCedEY+bTMgp5miZ8CxfIZo3S+gFqvA==", "integrity": "sha512-BcYi7qZ9Nn+CJDJrHQ6Zsmxei2hDW0L6AB4vPvUQGBm2fZyC0GXd/4nVbyA2ubmuhctD5RbYY8L+5GUJszv9mQ==",
"dependencies": { "dependencies": {
"@vue/reactivity": "3.3.4", "@vue/reactivity": "3.2.26",
"@vue/shared": "3.3.4" "@vue/shared": "3.2.26"
} }
}, },
"node_modules/@vue/runtime-core/node_modules/@vue/shared": {
"version": "3.2.26",
"resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.26.tgz",
"integrity": "sha512-vPV6Cq+NIWbH5pZu+V+2QHE9y1qfuTq49uNWw4f7FDEeZaDU2H2cx5jcUZOAKW7qTrUS4k6qZPbMy1x4N96nbA=="
},
"node_modules/@vue/runtime-dom": { "node_modules/@vue/runtime-dom": {
"version": "3.3.4", "version": "3.2.26",
"resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.3.4.tgz", "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.26.tgz",
"integrity": "sha512-Aj5bTJ3u5sFsUckRghsNjVTtxZQ1OyMWCr5dZRAPijF/0Vy4xEoRCwLyHXcj4D0UFbJ4lbx3gPTgg06K/GnPnQ==", "integrity": "sha512-dY56UIiZI+gjc4e8JQBwAifljyexfVCkIAu/WX8snh8vSOt/gMSEGwPRcl2UpYpBYeyExV8WCbgvwWRNt9cHhQ==",
"dependencies": { "dependencies": {
"@vue/runtime-core": "3.3.4", "@vue/runtime-core": "3.2.26",
"@vue/shared": "3.3.4", "@vue/shared": "3.2.26",
"csstype": "^3.1.1" "csstype": "^2.6.8"
} }
}, },
"node_modules/@vue/runtime-dom/node_modules/@vue/shared": {
"version": "3.2.26",
"resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.26.tgz",
"integrity": "sha512-vPV6Cq+NIWbH5pZu+V+2QHE9y1qfuTq49uNWw4f7FDEeZaDU2H2cx5jcUZOAKW7qTrUS4k6qZPbMy1x4N96nbA=="
},
"node_modules/@vue/server-renderer": { "node_modules/@vue/server-renderer": {
"version": "3.3.4", "version": "3.2.26",
"resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.3.4.tgz", "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.26.tgz",
"integrity": "sha512-Q6jDDzR23ViIb67v+vM1Dqntu+HUexQcsWKhhQa4ARVzxOY2HbC7QRW/ggkDBd5BU+uM1sV6XOAP0b216o34JQ==", "integrity": "sha512-Jp5SggDUvvUYSBIvYEhy76t4nr1vapY/FIFloWmQzn7UxqaHrrBpbxrqPcTrSgGrcaglj0VBp22BKJNre4aA1w==",
"dependencies": { "dependencies": {
"@vue/compiler-ssr": "3.3.4", "@vue/compiler-ssr": "3.2.26",
"@vue/shared": "3.3.4" "@vue/shared": "3.2.26"
}, },
"peerDependencies": { "peerDependencies": {
"vue": "3.3.4" "vue": "3.2.26"
} }
}, },
"node_modules/@vue/shared": { "node_modules/@vue/server-renderer/node_modules/@vue/compiler-core": {
"version": "3.3.4", "version": "3.2.26",
"resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.3.4.tgz", "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.26.tgz",
"integrity": "sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==" "integrity": "sha512-N5XNBobZbaASdzY9Lga2D9Lul5vdCIOXvUMd6ThcN8zgqQhPKfCV+wfAJNNJKQkSHudnYRO2gEB+lp0iN3g2Tw==",
"dependencies": {
"@babel/parser": "^7.16.4",
"@vue/shared": "3.2.26",
"estree-walker": "^2.0.2",
"source-map": "^0.6.1"
}
},
"node_modules/@vue/server-renderer/node_modules/@vue/compiler-dom": {
"version": "3.2.26",
"resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.26.tgz",
"integrity": "sha512-smBfaOW6mQDxcT3p9TKT6mE22vjxjJL50GFVJiI0chXYGU/xzC05QRGrW3HHVuJrmLTLx5zBhsZ2dIATERbarg==",
"dependencies": {
"@vue/compiler-core": "3.2.26",
"@vue/shared": "3.2.26"
}
},
"node_modules/@vue/server-renderer/node_modules/@vue/compiler-ssr": {
"version": "3.2.26",
"resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.26.tgz",
"integrity": "sha512-2mywLX0ODc4Zn8qBoA2PDCsLEZfpUGZcyoFRLSOjyGGK6wDy2/5kyDOWtf0S0UvtoyVq95OTSGIALjZ4k2q/ag==",
"dependencies": {
"@vue/compiler-dom": "3.2.26",
"@vue/shared": "3.2.26"
}
},
"node_modules/@vue/server-renderer/node_modules/@vue/shared": {
"version": "3.2.26",
"resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.26.tgz",
"integrity": "sha512-vPV6Cq+NIWbH5pZu+V+2QHE9y1qfuTq49uNWw4f7FDEeZaDU2H2cx5jcUZOAKW7qTrUS4k6qZPbMy1x4N96nbA=="
}, },
"node_modules/@vue/test-utils": { "node_modules/@vue/test-utils": {
"version": "2.4.1", "version": "2.4.1",
@@ -5029,9 +5094,9 @@
} }
}, },
"node_modules/csstype": { "node_modules/csstype": {
"version": "3.1.2", "version": "2.6.21",
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz",
"integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w=="
}, },
"node_modules/date-now": { "node_modules/date-now": {
"version": "0.1.4", "version": "0.1.4",
@@ -5443,9 +5508,9 @@
"dev": true "dev": true
}, },
"node_modules/electron-to-chromium": { "node_modules/electron-to-chromium": {
"version": "1.4.503", "version": "1.4.504",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.503.tgz", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.504.tgz",
"integrity": "sha512-LF2IQit4B0VrUHFeQkWhZm97KuJSGF2WJqq1InpY+ECpFRkXd8yTIaTtJxsO0OKDmiBYwWqcrNaXOurn2T2wiA==" "integrity": "sha512-cSMwIAd8yUh54VwitVRVvHK66QqHWE39C3DRj8SWiXitEpVSY3wNPD9y1pxQtLIi4w3UdzF9klLsmuPshz09DQ=="
}, },
"node_modules/emoji-regex": { "node_modules/emoji-regex": {
"version": "8.0.0", "version": "8.0.0",
@@ -8082,14 +8147,11 @@
} }
}, },
"node_modules/magic-string": { "node_modules/magic-string": {
"version": "0.30.3", "version": "0.25.9",
"resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.3.tgz", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz",
"integrity": "sha512-B7xGbll2fG/VjP+SWg4sX3JynwIU0mjoTc6MPpKNuIvftk6u6vqhDnk1R80b8C2GBR6ywqy+1DcKBrevBg+bmw==", "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==",
"dependencies": { "dependencies": {
"@jridgewell/sourcemap-codec": "^1.4.15" "sourcemap-codec": "^1.4.8"
},
"engines": {
"node": ">=12"
} }
}, },
"node_modules/make-dir": { "node_modules/make-dir": {
@@ -10646,6 +10708,12 @@
"source-map": "^0.6.0" "source-map": "^0.6.0"
} }
}, },
"node_modules/sourcemap-codec": {
"version": "1.4.8",
"resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz",
"integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==",
"deprecated": "Please use @jridgewell/sourcemap-codec instead"
},
"node_modules/spdx-correct": { "node_modules/spdx-correct": {
"version": "3.2.0", "version": "3.2.0",
"resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz",
@@ -11381,15 +11449,15 @@
} }
}, },
"node_modules/vue": { "node_modules/vue": {
"version": "3.3.4", "version": "3.2.26",
"resolved": "https://registry.npmjs.org/vue/-/vue-3.3.4.tgz", "resolved": "https://registry.npmjs.org/vue/-/vue-3.2.26.tgz",
"integrity": "sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw==", "integrity": "sha512-KD4lULmskL5cCsEkfhERVRIOEDrfEL9CwAsLYpzptOGjaGFNWo3BQ9g8MAb7RaIO71rmVOziZ/uEN/rHwcUIhg==",
"dependencies": { "dependencies": {
"@vue/compiler-dom": "3.3.4", "@vue/compiler-dom": "3.2.26",
"@vue/compiler-sfc": "3.3.4", "@vue/compiler-sfc": "3.2.26",
"@vue/runtime-dom": "3.3.4", "@vue/runtime-dom": "3.2.26",
"@vue/server-renderer": "3.3.4", "@vue/server-renderer": "3.2.26",
"@vue/shared": "3.3.4" "@vue/shared": "3.2.26"
} }
}, },
"node_modules/vue-component-type-helpers": { "node_modules/vue-component-type-helpers": {
@@ -11658,6 +11726,31 @@
"vue": "^3.0" "vue": "^3.0"
} }
}, },
"node_modules/vue/node_modules/@vue/compiler-core": {
"version": "3.2.26",
"resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.26.tgz",
"integrity": "sha512-N5XNBobZbaASdzY9Lga2D9Lul5vdCIOXvUMd6ThcN8zgqQhPKfCV+wfAJNNJKQkSHudnYRO2gEB+lp0iN3g2Tw==",
"dependencies": {
"@babel/parser": "^7.16.4",
"@vue/shared": "3.2.26",
"estree-walker": "^2.0.2",
"source-map": "^0.6.1"
}
},
"node_modules/vue/node_modules/@vue/compiler-dom": {
"version": "3.2.26",
"resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.26.tgz",
"integrity": "sha512-smBfaOW6mQDxcT3p9TKT6mE22vjxjJL50GFVJiI0chXYGU/xzC05QRGrW3HHVuJrmLTLx5zBhsZ2dIATERbarg==",
"dependencies": {
"@vue/compiler-core": "3.2.26",
"@vue/shared": "3.2.26"
}
},
"node_modules/vue/node_modules/@vue/shared": {
"version": "3.2.26",
"resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.26.tgz",
"integrity": "sha512-vPV6Cq+NIWbH5pZu+V+2QHE9y1qfuTq49uNWw4f7FDEeZaDU2H2cx5jcUZOAKW7qTrUS4k6qZPbMy1x4N96nbA=="
},
"node_modules/vuejs-paginate-next": { "node_modules/vuejs-paginate-next": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/vuejs-paginate-next/-/vuejs-paginate-next-1.0.2.tgz", "resolved": "https://registry.npmjs.org/vuejs-paginate-next/-/vuejs-paginate-next-1.0.2.tgz",
@@ -12224,9 +12317,9 @@
} }
}, },
"node_modules/whatwg-fetch": { "node_modules/whatwg-fetch": {
"version": "3.6.17", "version": "3.6.18",
"resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.17.tgz", "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.18.tgz",
"integrity": "sha512-c4ghIvG6th0eudYwKZY5keb81wtFz9/WeAHAoy8+r18kcWlitUIrmGFQ2rWEl4UCKUilD3zCLHOIPheHx5ypRQ==", "integrity": "sha512-ltN7j66EneWn5TFDO4L9inYC1D+Czsxlrw2SalgjMmEMkLfA5SIZxEFdE6QtHFiiM6Q7WL32c7AkI3w6yxM84Q==",
"dev": true "dev": true
}, },
"node_modules/whatwg-url": { "node_modules/whatwg-url": {

View File

@@ -1,6 +1,6 @@
{ {
"name": "frontend", "name": "frontend",
"version": "0.1.0", "version": "0.1.1",
"private": true, "private": true,
"scripts": { "scripts": {
"serve": "webpack-dev-server --config webpack.dev.js", "serve": "webpack-dev-server --config webpack.dev.js",
@@ -18,7 +18,7 @@
"pdfvuer": "^2.0.1", "pdfvuer": "^2.0.1",
"reveal.js": "^4.3.1", "reveal.js": "^4.3.1",
"timeago.js": "^4.0.2", "timeago.js": "^4.0.2",
"vue": "^3.2.13", "vue": "^3.2.26",
"vue-router": "^4.0.3", "vue-router": "^4.0.3",
"vue-toast-notification": "3.0", "vue-toast-notification": "3.0",
"vuejs-paginate-next": "^1.0.2", "vuejs-paginate-next": "^1.0.2",
@@ -37,12 +37,12 @@
"eslint-plugin-vue": "^8.0.3", "eslint-plugin-vue": "^8.0.3",
"jshint": "^2.13.5", "jshint": "^2.13.5",
"mini-css-extract-plugin": "^2.6.1", "mini-css-extract-plugin": "^2.6.1",
"terser-webpack-plugin": "^5.3.6",
"webpack-bundle-analyzer": "^4.6.1",
"webpack-cli": "^4.10.0",
"webpack-bundle-tracker": "^1.6.0",
"style-loader": "^3.3.1", "style-loader": "^3.3.1",
"vue-loader": "^17.0.0" "terser-webpack-plugin": "^5.3.6",
"vue-loader": "^17.0.0",
"webpack-bundle-analyzer": "^4.6.1",
"webpack-bundle-tracker": "^1.6.0",
"webpack-cli": "^4.10.0"
}, },
"eslintConfig": { "eslintConfig": {
"root": true, "root": true,

728
poetry.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -3,36 +3,36 @@ line_length = 119
[tool.poetry] [tool.poetry]
name = "cbwebreader" name = "cbwebreader"
version = "1.1.6" version = "1.1.8"
description = "CBR/Z Web Reader" description = "CBR/Z Web Reader"
authors = ["ajurna <ajurna@gmail.com>"] authors = ["ajurna <ajurna@gmail.com>"]
license = "Creative Commons Attribution-ShareAlike 4.0 International License" license = "Creative Commons Attribution-ShareAlike 4.0 International License"
[tool.poetry.dependencies] [tool.poetry.dependencies]
python = "^3.10" python = "^3.12"
Django = "^4.1" Django = "^4.1"
gunicorn = "^20.0.4" gunicorn = "^21.2.0"
dj-database-url = "^1.3.0" dj-database-url = "^2.1.0"
python-dotenv = "^1.0.0" python-dotenv = "^1.0.0"
loguru = "^0.7.0" loguru = "^0.7.0"
django-silk = "^5.0.0" django-silk = "^5.0.0"
mysqlclient = "^2.0.1" mysqlclient = "^2.0.1"
psycopg2 = "^2.9.6" psycopg2-binary = "^2.9.6"
rarfile = "^4.0" rarfile = "^4.0"
django-extensions = "^3.2.1" django-extensions = "^3.2.1"
Pillow = "^9.3.0" Pillow = "^10.0.1"
django-imagekit = "^4.0.2" django-imagekit = "^5.0.0"
PyMuPDF = "~1.20.2" PyMuPDF = "~1.20.2"
django-bootstrap4 = "^23.1" django-bootstrap4 = "^23.1"
django-csp = "^3.7" django-csp = "^3.7"
django-boost = "^2.1" django-boost = "^2.1"
django-sri = "^0.5.0" django-sri = "^0.7.0"
django-permissions-policy = "^4.15.0" django-permissions-policy = "^4.15.0"
djangorestframework = "^3.13.1" djangorestframework = "^3.13.1"
django-filter = "^23.1" django-filter = "^23.1"
django-cors-headers = "^3.14.0" django-cors-headers = "^4.2.0"
djangorestframework-simplejwt = "^5.2.0" djangorestframework-simplejwt = "^5.2.0"
django-webpack-loader = "^1.6.0" django-webpack-loader = "^2.0.1"
drf-yasg = "^1.20.0" drf-yasg = "^1.20.0"
drf-extensions = "^0.7.1" drf-extensions = "^0.7.1"

View File

@@ -1,49 +1,46 @@
asgiref==3.7.2 ; python_version >= "3.10" and python_version < "4.0" asgiref==3.7.2 ; python_version >= "3.12" and python_version < "4.0"
autopep8==2.0.4 ; python_version >= "3.10" and python_version < "4.0" autopep8==2.0.4 ; python_version >= "3.12" and python_version < "4.0"
beautifulsoup4==4.12.2 ; python_version >= "3.10" and python_version < "4.0" beautifulsoup4==4.12.2 ; python_version >= "3.12" and python_version < "4.0"
colorama==0.4.6 ; python_version >= "3.10" and python_version < "4.0" and sys_platform == "win32" colorama==0.4.6 ; python_version >= "3.12" and python_version < "4.0" and sys_platform == "win32"
dj-database-url==1.3.0 ; python_version >= "3.10" and python_version < "4.0" dj-database-url==2.1.0 ; python_version >= "3.12" and python_version < "4.0"
django-appconf==1.0.5 ; python_version >= "3.10" and python_version < "4.0" django-appconf==1.0.5 ; python_version >= "3.12" and python_version < "4.0"
django-boost==2.1 ; python_version >= "3.10" and python_version < "4.0" django-boost==2.1 ; python_version >= "3.12" and python_version < "4.0"
django-bootstrap4==23.2 ; python_version >= "3.10" and python_version < "4.0" django-bootstrap4==23.2 ; python_version >= "3.12" and python_version < "4.0"
django-cors-headers==3.14.0 ; python_version >= "3.10" and python_version < "4.0" django-cors-headers==4.2.0 ; python_version >= "3.12" and python_version < "4.0"
django-csp==3.7 ; python_version >= "3.10" and python_version < "4.0" django-csp==3.7 ; python_version >= "3.12" and python_version < "4.0"
django-extensions==3.2.3 ; python_version >= "3.10" and python_version < "4.0" django-extensions==3.2.3 ; python_version >= "3.12" and python_version < "4.0"
django-filter==23.2 ; python_version >= "3.10" and python_version < "4.0" django-filter==23.3 ; python_version >= "3.12" and python_version < "4.0"
django-imagekit==4.1.0 ; python_version >= "3.10" and python_version < "4.0" django-imagekit==5.0.0 ; python_version >= "3.12" and python_version < "4.0"
django-permissions-policy==4.17.0 ; python_version >= "3.10" and python_version < "4.0" django-permissions-policy==4.17.0 ; python_version >= "3.12" and python_version < "4.0"
django-silk==5.0.3 ; python_version >= "3.10" and python_version < "4.0" django-silk==5.0.4 ; python_version >= "3.12" and python_version < "4.0"
django-sri==0.5.0 ; python_version >= "3.10" and python_version < "4.0" django-sri==0.7.0 ; python_version >= "3.12" and python_version < "4.0"
django-webpack-loader==1.8.1 ; python_version >= "3.10" and python_version < "4.0" django-webpack-loader==2.0.1 ; python_version >= "3.12" and python_version < "4.0"
django==4.2.4 ; python_version >= "3.10" and python_version < "4.0" django==4.2.5 ; python_version >= "3.12" and python_version < "4.0"
djangorestframework-simplejwt==5.3.0 ; python_version >= "3.10" and python_version < "4.0" djangorestframework-simplejwt==5.3.0 ; python_version >= "3.12" and python_version < "4.0"
djangorestframework==3.14.0 ; python_version >= "3.10" and python_version < "4.0" djangorestframework==3.14.0 ; python_version >= "3.12" and python_version < "4.0"
drf-extensions==0.7.1 ; python_version >= "3.10" and python_version < "4.0" drf-extensions==0.7.1 ; python_version >= "3.12" and python_version < "4.0"
drf-yasg==1.21.7 ; python_version >= "3.10" and python_version < "4.0" drf-yasg==1.21.7 ; python_version >= "3.12" and python_version < "4.0"
gprof2dot==2022.7.29 ; python_version >= "3.10" and python_version < "4.0" gprof2dot==2022.7.29 ; python_version >= "3.12" and python_version < "4.0"
gunicorn==20.1.0 ; python_version >= "3.10" and python_version < "4.0" gunicorn==21.2.0 ; python_version >= "3.12" and python_version < "4.0"
inflection==0.5.1 ; python_version >= "3.10" and python_version < "4.0" inflection==0.5.1 ; python_version >= "3.12" and python_version < "4.0"
loguru==0.7.0 ; python_version >= "3.10" and python_version < "4.0" loguru==0.7.2 ; python_version >= "3.12" and python_version < "4.0"
mysqlclient==2.2.0 ; python_version >= "3.10" and python_version < "4.0" mysqlclient==2.2.0 ; python_version >= "3.12" and python_version < "4.0"
packaging==23.1 ; python_version >= "3.10" and python_version < "4.0" packaging==23.2 ; python_version >= "3.12" and python_version < "4.0"
pilkit==2.0 ; python_version >= "3.10" and python_version < "4.0" pilkit==3.0 ; python_version >= "3.12" and python_version < "4.0"
pillow==9.5.0 ; python_version >= "3.10" and python_version < "4.0" pillow==10.0.1 ; python_version >= "3.12" and python_version < "4.0"
psycopg2==2.9.7 ; python_version >= "3.10" and python_version < "4.0" psycopg2-binary==2.9.9 ; python_version >= "3.12" and python_version < "4.0"
pycodestyle==2.11.0 ; python_version >= "3.10" and python_version < "4.0" pycodestyle==2.11.0 ; python_version >= "3.12" and python_version < "4.0"
pyjwt==2.8.0 ; python_version >= "3.10" and python_version < "4.0" pyjwt==2.8.0 ; python_version >= "3.12" and python_version < "4.0"
pymupdf==1.20.2 ; python_version >= "3.10" and python_version < "4.0" pymupdf==1.20.2 ; python_version >= "3.12" and python_version < "4.0"
python-dotenv==1.0.0 ; python_version >= "3.10" and python_version < "4.0" python-dotenv==1.0.0 ; python_version >= "3.12" and python_version < "4.0"
pytz==2023.3 ; python_version >= "3.10" and python_version < "4.0" pytz==2023.3.post1 ; python_version >= "3.12" and python_version < "4.0"
pyyaml==6.0.1 ; python_version >= "3.10" and python_version < "4.0" pyyaml==6.0.1 ; python_version >= "3.12" and python_version < "4.0"
rarfile==4.0 ; python_version >= "3.10" and python_version < "4.0" rarfile==4.1 ; python_version >= "3.12" and python_version < "4.0"
setuptools==68.1.2 ; python_version >= "3.10" and python_version < "4.0" soupsieve==2.5 ; python_version >= "3.12" and python_version < "4.0"
six==1.16.0 ; python_version >= "3.10" and python_version < "4.0" sqlparse==0.4.4 ; python_version >= "3.12" and python_version < "4.0"
soupsieve==2.4.1 ; python_version >= "3.10" and python_version < "4.0" typing-extensions==4.8.0 ; python_version >= "3.12" and python_version < "4.0"
sqlparse==0.4.4 ; python_version >= "3.10" and python_version < "4.0" tzdata==2023.3 ; python_version >= "3.12" and python_version < "4.0" and sys_platform == "win32"
tomli==2.0.1 ; python_version >= "3.10" and python_version < "3.11" ua-parser==0.18.0 ; python_version >= "3.12" and python_version < "4.0"
typing-extensions==4.7.1 ; python_version >= "3.10" and python_version < "4.0" uritemplate==4.1.1 ; python_version >= "3.12" and python_version < "4.0"
tzdata==2023.3 ; python_version >= "3.10" and python_version < "4.0" and sys_platform == "win32" user-agents==2.2.0 ; python_version >= "3.12" and python_version < "4.0"
ua-parser==0.18.0 ; python_version >= "3.10" and python_version < "4.0" win32-setctime==1.1.0 ; python_version >= "3.12" and python_version < "4.0" and sys_platform == "win32"
uritemplate==4.1.1 ; python_version >= "3.10" and python_version < "4.0"
user-agents==2.2.0 ; python_version >= "3.10" and python_version < "4.0"
win32-setctime==1.1.0 ; python_version >= "3.10" and python_version < "4.0" and sys_platform == "win32"