FEAT: build static files with npm (sass, concat, minify), remove build step from python, include minified bundle files (#1601)
This commit is contained in:
parent
bef2d4a72e
commit
1b84ebf13d
3
.gitignore
vendored
3
.gitignore
vendored
|
@ -32,7 +32,8 @@ __bundle__
|
||||||
|
|
||||||
coverage.xml
|
coverage.xml
|
||||||
node_modules
|
node_modules
|
||||||
lnbits/static/bundle.*
|
lnbits/static/bundle.js
|
||||||
|
lnbits/static/bundle.css
|
||||||
docker
|
docker
|
||||||
|
|
||||||
# Nix
|
# Nix
|
||||||
|
|
28
Makefile
28
Makefile
|
@ -73,20 +73,16 @@ bak:
|
||||||
# LNBITS_DATABASE_URL=postgres://postgres:postgres@0.0.0.0:5432/postgres
|
# LNBITS_DATABASE_URL=postgres://postgres:postgres@0.0.0.0:5432/postgres
|
||||||
#
|
#
|
||||||
|
|
||||||
updatevendor:
|
sass:
|
||||||
|
npm run sass
|
||||||
|
|
||||||
|
bundle:
|
||||||
npm install
|
npm install
|
||||||
cp ./node_modules/moment/moment.js ./lnbits/static/vendor/
|
npm run sass
|
||||||
cp ./node_modules/underscore/underscore.js ./lnbits/static/vendor/
|
npm run vendor_copy
|
||||||
cp ./node_modules/axios/dist/axios.js ./lnbits/static/vendor/
|
npm run vendor_json
|
||||||
cp ./node_modules/vue/dist/vue.js ./lnbits/static/vendor/
|
poetry run ./node_modules/.bin/prettier -w ./lnbits/static/vendor.json
|
||||||
cp ./node_modules/vue-router/dist/vue-router.js ./lnbits/static/vendor/
|
npm run vendor_bundle_css
|
||||||
cp ./node_modules/vue-qrcode-reader/dist/vue-qrcode-reader.browser.js ./lnbits/static/vendor/
|
npm run vendor_minify_css
|
||||||
cp ./node_modules/@chenfengyuan/vue-qrcode/dist/vue-qrcode.js ./lnbits/static/vendor/
|
npm run vendor_bundle_js
|
||||||
cp ./node_modules/vuex/dist/vuex.js ./lnbits/static/vendor/
|
npm run vendor_minify_js
|
||||||
cp ./node_modules/quasar/dist/quasar.ie.polyfills.umd.min.js ./lnbits/static/vendor/
|
|
||||||
cp ./node_modules/quasar/dist/quasar.umd.js ./lnbits/static/vendor/
|
|
||||||
cp ./node_modules/chart.js/dist/Chart.bundle.js ./lnbits/static/vendor/
|
|
||||||
cp ./node_modules/quasar/dist/quasar.css ./lnbits/static/vendor/
|
|
||||||
cp ./node_modules/chart.js/dist/Chart.css ./lnbits/static/vendor/
|
|
||||||
cp ./node_modules/vue-qrcode-reader/dist/vue-qrcode-reader.css ./lnbits/static/vendor/
|
|
||||||
cp ./node_modules/vue-i18n/dist/vue-i18n.js ./lnbits/static/vendor/
|
|
||||||
|
|
|
@ -1,6 +1,4 @@
|
||||||
import asyncio
|
import asyncio
|
||||||
import os
|
|
||||||
import warnings
|
|
||||||
|
|
||||||
import click
|
import click
|
||||||
from loguru import logger
|
from loguru import logger
|
||||||
|
@ -20,23 +18,6 @@ def db_migrate():
|
||||||
asyncio.create_task(migrate_databases())
|
asyncio.create_task(migrate_databases())
|
||||||
|
|
||||||
|
|
||||||
@click.command("assets")
|
|
||||||
def handle_assets():
|
|
||||||
transpile_scss()
|
|
||||||
|
|
||||||
|
|
||||||
def transpile_scss():
|
|
||||||
with warnings.catch_warnings():
|
|
||||||
warnings.simplefilter("ignore")
|
|
||||||
from scss.compiler import compile_string # type: ignore
|
|
||||||
|
|
||||||
with open(os.path.join(settings.lnbits_path, "static/scss/base.scss")) as scss:
|
|
||||||
with open(
|
|
||||||
os.path.join(settings.lnbits_path, "static/css/base.css"), "w"
|
|
||||||
) as css:
|
|
||||||
css.write(compile_string(scss.read()))
|
|
||||||
|
|
||||||
|
|
||||||
async def migrate_databases():
|
async def migrate_databases():
|
||||||
"""Creates the necessary databases if they don't exist already; or migrates them."""
|
"""Creates the necessary databases if they don't exist already; or migrates them."""
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
import json
|
||||||
|
from pathlib import Path
|
||||||
from typing import Any, List, Optional, Type
|
from typing import Any, List, Optional, Type
|
||||||
|
|
||||||
import jinja2
|
import jinja2
|
||||||
|
@ -15,27 +17,6 @@ from lnbits.settings import settings
|
||||||
|
|
||||||
from .extension_manager import get_valid_extensions
|
from .extension_manager import get_valid_extensions
|
||||||
|
|
||||||
vendored_js = [
|
|
||||||
"/static/vendor/moment.js",
|
|
||||||
"/static/vendor/underscore.js",
|
|
||||||
"/static/vendor/axios.js",
|
|
||||||
"/static/vendor/vue.js",
|
|
||||||
"/static/vendor/vue-router.js",
|
|
||||||
"/static/vendor/vue-qrcode-reader.browser.js",
|
|
||||||
"/static/vendor/vue-qrcode.js",
|
|
||||||
"/static/vendor/vue-i18n.js",
|
|
||||||
"/static/vendor/vuex.js",
|
|
||||||
"/static/vendor/quasar.ie.polyfills.umd.min.js",
|
|
||||||
"/static/vendor/quasar.umd.js",
|
|
||||||
"/static/vendor/Chart.bundle.js",
|
|
||||||
]
|
|
||||||
|
|
||||||
vendored_css = [
|
|
||||||
"/static/vendor/quasar.css",
|
|
||||||
"/static/vendor/Chart.css",
|
|
||||||
"/static/vendor/vue-qrcode-reader.css",
|
|
||||||
]
|
|
||||||
|
|
||||||
|
|
||||||
def urlsafe_short_hash() -> str:
|
def urlsafe_short_hash() -> str:
|
||||||
return shortuuid.uuid()
|
return shortuuid.uuid()
|
||||||
|
@ -79,11 +60,14 @@ def template_renderer(additional_folders: Optional[List] = None) -> Jinja2Templa
|
||||||
t.env.globals["USE_CUSTOM_LOGO"] = settings.lnbits_custom_logo
|
t.env.globals["USE_CUSTOM_LOGO"] = settings.lnbits_custom_logo
|
||||||
|
|
||||||
if settings.debug:
|
if settings.debug:
|
||||||
t.env.globals["VENDORED_JS"] = vendored_js
|
vendor_filepath = Path(settings.lnbits_path, "static", "vendor.json")
|
||||||
t.env.globals["VENDORED_CSS"] = vendored_css
|
with open(vendor_filepath) as vendor_file:
|
||||||
|
vendor_files = json.loads(vendor_file.read())
|
||||||
|
t.env.globals["INCLUDED_JS"] = vendor_files["js"]
|
||||||
|
t.env.globals["INCLUDED_CSS"] = vendor_files["css"]
|
||||||
else:
|
else:
|
||||||
t.env.globals["VENDORED_JS"] = ["/static/bundle.js"]
|
t.env.globals["INCLUDED_JS"] = ["/static/bundle.min.js"]
|
||||||
t.env.globals["VENDORED_CSS"] = ["/static/bundle.css"]
|
t.env.globals["INCLUDED_CSS"] = ["/static/bundle.min.css"]
|
||||||
|
|
||||||
return t
|
return t
|
||||||
|
|
||||||
|
|
1
lnbits/static/bundle.min.css
vendored
Normal file
1
lnbits/static/bundle.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
55
lnbits/static/bundle.min.js
vendored
Normal file
55
lnbits/static/bundle.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
lnbits/static/css/.gitignore
vendored
1
lnbits/static/css/.gitignore
vendored
|
@ -1 +0,0 @@
|
||||||
base.css
|
|
545
lnbits/static/css/base.css
Normal file
545
lnbits/static/css/base.css
Normal file
|
@ -0,0 +1,545 @@
|
||||||
|
[data-theme=classic] .q-drawer--dark,
|
||||||
|
body[data-theme=classic].body--dark,
|
||||||
|
[data-theme=classic] .q-menu--dark {
|
||||||
|
background: #1f2234 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* IF WANTING TO SET A DARKER BG COLOR IN THE FUTURE
|
||||||
|
// set a darker body bg for all themes, when in "dark mode"
|
||||||
|
body[data-theme='classic'].body--dark {
|
||||||
|
background: scale-color($color, $lightness: -60%);
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
[data-theme=classic] .q-card--dark,
|
||||||
|
[data-theme=classic] .q-stepper--dark {
|
||||||
|
background: #333646 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
[data-theme=classic] .bg-primary {
|
||||||
|
background: #673ab7 !important;
|
||||||
|
}
|
||||||
|
[data-theme=classic] .text-primary {
|
||||||
|
color: #673ab7 !important;
|
||||||
|
}
|
||||||
|
[data-theme=classic] .bg-secondary {
|
||||||
|
background: #9c27b0 !important;
|
||||||
|
}
|
||||||
|
[data-theme=classic] .text-secondary {
|
||||||
|
color: #9c27b0 !important;
|
||||||
|
}
|
||||||
|
[data-theme=classic] .bg-dark {
|
||||||
|
background: #1f2234 !important;
|
||||||
|
}
|
||||||
|
[data-theme=classic] .text-dark {
|
||||||
|
color: #1f2234 !important;
|
||||||
|
}
|
||||||
|
[data-theme=classic] .bg-info {
|
||||||
|
background: #333646 !important;
|
||||||
|
}
|
||||||
|
[data-theme=classic] .text-info {
|
||||||
|
color: #333646 !important;
|
||||||
|
}
|
||||||
|
[data-theme=classic] .bg-marginal-bg {
|
||||||
|
background: #1f2234 !important;
|
||||||
|
}
|
||||||
|
[data-theme=classic] .text-marginal-bg {
|
||||||
|
color: #1f2234 !important;
|
||||||
|
}
|
||||||
|
[data-theme=classic] .bg-marginal-text {
|
||||||
|
background: #fff !important;
|
||||||
|
}
|
||||||
|
[data-theme=classic] .text-marginal-text {
|
||||||
|
color: #fff !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
[data-theme=bitcoin] .q-drawer--dark,
|
||||||
|
body[data-theme=bitcoin].body--dark,
|
||||||
|
[data-theme=bitcoin] .q-menu--dark {
|
||||||
|
background: #2d293b !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* IF WANTING TO SET A DARKER BG COLOR IN THE FUTURE
|
||||||
|
// set a darker body bg for all themes, when in "dark mode"
|
||||||
|
body[data-theme='bitcoin'].body--dark {
|
||||||
|
background: scale-color($color, $lightness: -60%);
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
[data-theme=bitcoin] .q-card--dark,
|
||||||
|
[data-theme=bitcoin] .q-stepper--dark {
|
||||||
|
background: #333646 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
[data-theme=bitcoin] .bg-primary {
|
||||||
|
background: #ff9853 !important;
|
||||||
|
}
|
||||||
|
[data-theme=bitcoin] .text-primary {
|
||||||
|
color: #ff9853 !important;
|
||||||
|
}
|
||||||
|
[data-theme=bitcoin] .bg-secondary {
|
||||||
|
background: #ff7353 !important;
|
||||||
|
}
|
||||||
|
[data-theme=bitcoin] .text-secondary {
|
||||||
|
color: #ff7353 !important;
|
||||||
|
}
|
||||||
|
[data-theme=bitcoin] .bg-dark {
|
||||||
|
background: #2d293b !important;
|
||||||
|
}
|
||||||
|
[data-theme=bitcoin] .text-dark {
|
||||||
|
color: #2d293b !important;
|
||||||
|
}
|
||||||
|
[data-theme=bitcoin] .bg-info {
|
||||||
|
background: #333646 !important;
|
||||||
|
}
|
||||||
|
[data-theme=bitcoin] .text-info {
|
||||||
|
color: #333646 !important;
|
||||||
|
}
|
||||||
|
[data-theme=bitcoin] .bg-marginal-bg {
|
||||||
|
background: #2d293b !important;
|
||||||
|
}
|
||||||
|
[data-theme=bitcoin] .text-marginal-bg {
|
||||||
|
color: #2d293b !important;
|
||||||
|
}
|
||||||
|
[data-theme=bitcoin] .bg-marginal-text {
|
||||||
|
background: #fff !important;
|
||||||
|
}
|
||||||
|
[data-theme=bitcoin] .text-marginal-text {
|
||||||
|
color: #fff !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
[data-theme=freedom] .q-drawer--dark,
|
||||||
|
body[data-theme=freedom].body--dark,
|
||||||
|
[data-theme=freedom] .q-menu--dark {
|
||||||
|
background: #0a0a0a !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* IF WANTING TO SET A DARKER BG COLOR IN THE FUTURE
|
||||||
|
// set a darker body bg for all themes, when in "dark mode"
|
||||||
|
body[data-theme='freedom'].body--dark {
|
||||||
|
background: scale-color($color, $lightness: -60%);
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
[data-theme=freedom] .q-card--dark,
|
||||||
|
[data-theme=freedom] .q-stepper--dark {
|
||||||
|
background: #1b1b1b !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
[data-theme=freedom] .bg-primary {
|
||||||
|
background: #e22156 !important;
|
||||||
|
}
|
||||||
|
[data-theme=freedom] .text-primary {
|
||||||
|
color: #e22156 !important;
|
||||||
|
}
|
||||||
|
[data-theme=freedom] .bg-secondary {
|
||||||
|
background: #b91a45 !important;
|
||||||
|
}
|
||||||
|
[data-theme=freedom] .text-secondary {
|
||||||
|
color: #b91a45 !important;
|
||||||
|
}
|
||||||
|
[data-theme=freedom] .bg-dark {
|
||||||
|
background: #0a0a0a !important;
|
||||||
|
}
|
||||||
|
[data-theme=freedom] .text-dark {
|
||||||
|
color: #0a0a0a !important;
|
||||||
|
}
|
||||||
|
[data-theme=freedom] .bg-info {
|
||||||
|
background: #1b1b1b !important;
|
||||||
|
}
|
||||||
|
[data-theme=freedom] .text-info {
|
||||||
|
color: #1b1b1b !important;
|
||||||
|
}
|
||||||
|
[data-theme=freedom] .bg-marginal-bg {
|
||||||
|
background: #2d293b !important;
|
||||||
|
}
|
||||||
|
[data-theme=freedom] .text-marginal-bg {
|
||||||
|
color: #2d293b !important;
|
||||||
|
}
|
||||||
|
[data-theme=freedom] .bg-marginal-text {
|
||||||
|
background: #fff !important;
|
||||||
|
}
|
||||||
|
[data-theme=freedom] .text-marginal-text {
|
||||||
|
color: #fff !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
[data-theme=cyber] .q-drawer--dark,
|
||||||
|
body[data-theme=cyber].body--dark,
|
||||||
|
[data-theme=cyber] .q-menu--dark {
|
||||||
|
background: #0a0a0a !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* IF WANTING TO SET A DARKER BG COLOR IN THE FUTURE
|
||||||
|
// set a darker body bg for all themes, when in "dark mode"
|
||||||
|
body[data-theme='cyber'].body--dark {
|
||||||
|
background: scale-color($color, $lightness: -60%);
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
[data-theme=cyber] .q-card--dark,
|
||||||
|
[data-theme=cyber] .q-stepper--dark {
|
||||||
|
background: #1b1b1b !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
[data-theme=cyber] .bg-primary {
|
||||||
|
background: #7cb342 !important;
|
||||||
|
}
|
||||||
|
[data-theme=cyber] .text-primary {
|
||||||
|
color: #7cb342 !important;
|
||||||
|
}
|
||||||
|
[data-theme=cyber] .bg-secondary {
|
||||||
|
background: #558b2f !important;
|
||||||
|
}
|
||||||
|
[data-theme=cyber] .text-secondary {
|
||||||
|
color: #558b2f !important;
|
||||||
|
}
|
||||||
|
[data-theme=cyber] .bg-dark {
|
||||||
|
background: #0a0a0a !important;
|
||||||
|
}
|
||||||
|
[data-theme=cyber] .text-dark {
|
||||||
|
color: #0a0a0a !important;
|
||||||
|
}
|
||||||
|
[data-theme=cyber] .bg-info {
|
||||||
|
background: #1b1b1b !important;
|
||||||
|
}
|
||||||
|
[data-theme=cyber] .text-info {
|
||||||
|
color: #1b1b1b !important;
|
||||||
|
}
|
||||||
|
[data-theme=cyber] .bg-marginal-bg {
|
||||||
|
background: #2d293b !important;
|
||||||
|
}
|
||||||
|
[data-theme=cyber] .text-marginal-bg {
|
||||||
|
color: #2d293b !important;
|
||||||
|
}
|
||||||
|
[data-theme=cyber] .bg-marginal-text {
|
||||||
|
background: #fff !important;
|
||||||
|
}
|
||||||
|
[data-theme=cyber] .text-marginal-text {
|
||||||
|
color: #fff !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
[data-theme=mint] .q-drawer--dark,
|
||||||
|
body[data-theme=mint].body--dark,
|
||||||
|
[data-theme=mint] .q-menu--dark {
|
||||||
|
background: #1f342b !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* IF WANTING TO SET A DARKER BG COLOR IN THE FUTURE
|
||||||
|
// set a darker body bg for all themes, when in "dark mode"
|
||||||
|
body[data-theme='mint'].body--dark {
|
||||||
|
background: scale-color($color, $lightness: -60%);
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
[data-theme=mint] .q-card--dark,
|
||||||
|
[data-theme=mint] .q-stepper--dark {
|
||||||
|
background: #334642 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
[data-theme=mint] .bg-primary {
|
||||||
|
background: #3ab77d !important;
|
||||||
|
}
|
||||||
|
[data-theme=mint] .text-primary {
|
||||||
|
color: #3ab77d !important;
|
||||||
|
}
|
||||||
|
[data-theme=mint] .bg-secondary {
|
||||||
|
background: #27b065 !important;
|
||||||
|
}
|
||||||
|
[data-theme=mint] .text-secondary {
|
||||||
|
color: #27b065 !important;
|
||||||
|
}
|
||||||
|
[data-theme=mint] .bg-dark {
|
||||||
|
background: #1f342b !important;
|
||||||
|
}
|
||||||
|
[data-theme=mint] .text-dark {
|
||||||
|
color: #1f342b !important;
|
||||||
|
}
|
||||||
|
[data-theme=mint] .bg-info {
|
||||||
|
background: #334642 !important;
|
||||||
|
}
|
||||||
|
[data-theme=mint] .text-info {
|
||||||
|
color: #334642 !important;
|
||||||
|
}
|
||||||
|
[data-theme=mint] .bg-marginal-bg {
|
||||||
|
background: #1f342b !important;
|
||||||
|
}
|
||||||
|
[data-theme=mint] .text-marginal-bg {
|
||||||
|
color: #1f342b !important;
|
||||||
|
}
|
||||||
|
[data-theme=mint] .bg-marginal-text {
|
||||||
|
background: #fff !important;
|
||||||
|
}
|
||||||
|
[data-theme=mint] .text-marginal-text {
|
||||||
|
color: #fff !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
[data-theme=autumn] .q-drawer--dark,
|
||||||
|
body[data-theme=autumn].body--dark,
|
||||||
|
[data-theme=autumn] .q-menu--dark {
|
||||||
|
background: #34291f !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* IF WANTING TO SET A DARKER BG COLOR IN THE FUTURE
|
||||||
|
// set a darker body bg for all themes, when in "dark mode"
|
||||||
|
body[data-theme='autumn'].body--dark {
|
||||||
|
background: scale-color($color, $lightness: -60%);
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
[data-theme=autumn] .q-card--dark,
|
||||||
|
[data-theme=autumn] .q-stepper--dark {
|
||||||
|
background: #463f33 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
[data-theme=autumn] .bg-primary {
|
||||||
|
background: #b7763a !important;
|
||||||
|
}
|
||||||
|
[data-theme=autumn] .text-primary {
|
||||||
|
color: #b7763a !important;
|
||||||
|
}
|
||||||
|
[data-theme=autumn] .bg-secondary {
|
||||||
|
background: #b07927 !important;
|
||||||
|
}
|
||||||
|
[data-theme=autumn] .text-secondary {
|
||||||
|
color: #b07927 !important;
|
||||||
|
}
|
||||||
|
[data-theme=autumn] .bg-dark {
|
||||||
|
background: #34291f !important;
|
||||||
|
}
|
||||||
|
[data-theme=autumn] .text-dark {
|
||||||
|
color: #34291f !important;
|
||||||
|
}
|
||||||
|
[data-theme=autumn] .bg-info {
|
||||||
|
background: #463f33 !important;
|
||||||
|
}
|
||||||
|
[data-theme=autumn] .text-info {
|
||||||
|
color: #463f33 !important;
|
||||||
|
}
|
||||||
|
[data-theme=autumn] .bg-marginal-bg {
|
||||||
|
background: #342a1f !important;
|
||||||
|
}
|
||||||
|
[data-theme=autumn] .text-marginal-bg {
|
||||||
|
color: #342a1f !important;
|
||||||
|
}
|
||||||
|
[data-theme=autumn] .bg-marginal-text {
|
||||||
|
background: rgb(255, 255, 255) !important;
|
||||||
|
}
|
||||||
|
[data-theme=autumn] .text-marginal-text {
|
||||||
|
color: rgb(255, 255, 255) !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
[data-theme=flamingo] .q-drawer--dark,
|
||||||
|
body[data-theme=flamingo].body--dark,
|
||||||
|
[data-theme=flamingo] .q-menu--dark {
|
||||||
|
background: #803a45 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* IF WANTING TO SET A DARKER BG COLOR IN THE FUTURE
|
||||||
|
// set a darker body bg for all themes, when in "dark mode"
|
||||||
|
body[data-theme='flamingo'].body--dark {
|
||||||
|
background: scale-color($color, $lightness: -60%);
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
[data-theme=flamingo] .q-card--dark,
|
||||||
|
[data-theme=flamingo] .q-stepper--dark {
|
||||||
|
background: #ec7599 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
[data-theme=flamingo] .bg-primary {
|
||||||
|
background: #d11d53 !important;
|
||||||
|
}
|
||||||
|
[data-theme=flamingo] .text-primary {
|
||||||
|
color: #d11d53 !important;
|
||||||
|
}
|
||||||
|
[data-theme=flamingo] .bg-secondary {
|
||||||
|
background: #db3e6d !important;
|
||||||
|
}
|
||||||
|
[data-theme=flamingo] .text-secondary {
|
||||||
|
color: #db3e6d !important;
|
||||||
|
}
|
||||||
|
[data-theme=flamingo] .bg-dark {
|
||||||
|
background: #803a45 !important;
|
||||||
|
}
|
||||||
|
[data-theme=flamingo] .text-dark {
|
||||||
|
color: #803a45 !important;
|
||||||
|
}
|
||||||
|
[data-theme=flamingo] .bg-info {
|
||||||
|
background: #ec7599 !important;
|
||||||
|
}
|
||||||
|
[data-theme=flamingo] .text-info {
|
||||||
|
color: #ec7599 !important;
|
||||||
|
}
|
||||||
|
[data-theme=flamingo] .bg-marginal-bg {
|
||||||
|
background: #803a45 !important;
|
||||||
|
}
|
||||||
|
[data-theme=flamingo] .text-marginal-bg {
|
||||||
|
color: #803a45 !important;
|
||||||
|
}
|
||||||
|
[data-theme=flamingo] .bg-marginal-text {
|
||||||
|
background: rgb(255, 255, 255) !important;
|
||||||
|
}
|
||||||
|
[data-theme=flamingo] .text-marginal-text {
|
||||||
|
color: rgb(255, 255, 255) !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
[data-theme=monochrome] .q-drawer--dark,
|
||||||
|
body[data-theme=monochrome].body--dark,
|
||||||
|
[data-theme=monochrome] .q-menu--dark {
|
||||||
|
background: #000 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* IF WANTING TO SET A DARKER BG COLOR IN THE FUTURE
|
||||||
|
// set a darker body bg for all themes, when in "dark mode"
|
||||||
|
body[data-theme='monochrome'].body--dark {
|
||||||
|
background: scale-color($color, $lightness: -60%);
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
[data-theme=monochrome] .q-card--dark,
|
||||||
|
[data-theme=monochrome] .q-stepper--dark {
|
||||||
|
background: rgb(39, 39, 39) !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
[data-theme=monochrome] .bg-primary {
|
||||||
|
background: #494949 !important;
|
||||||
|
}
|
||||||
|
[data-theme=monochrome] .text-primary {
|
||||||
|
color: #494949 !important;
|
||||||
|
}
|
||||||
|
[data-theme=monochrome] .bg-secondary {
|
||||||
|
background: #6b6b6b !important;
|
||||||
|
}
|
||||||
|
[data-theme=monochrome] .text-secondary {
|
||||||
|
color: #6b6b6b !important;
|
||||||
|
}
|
||||||
|
[data-theme=monochrome] .bg-dark {
|
||||||
|
background: #000 !important;
|
||||||
|
}
|
||||||
|
[data-theme=monochrome] .text-dark {
|
||||||
|
color: #000 !important;
|
||||||
|
}
|
||||||
|
[data-theme=monochrome] .bg-info {
|
||||||
|
background: rgb(39, 39, 39) !important;
|
||||||
|
}
|
||||||
|
[data-theme=monochrome] .text-info {
|
||||||
|
color: rgb(39, 39, 39) !important;
|
||||||
|
}
|
||||||
|
[data-theme=monochrome] .bg-marginal-bg {
|
||||||
|
background: #000 !important;
|
||||||
|
}
|
||||||
|
[data-theme=monochrome] .text-marginal-bg {
|
||||||
|
color: #000 !important;
|
||||||
|
}
|
||||||
|
[data-theme=monochrome] .bg-marginal-text {
|
||||||
|
background: rgb(255, 255, 255) !important;
|
||||||
|
}
|
||||||
|
[data-theme=monochrome] .text-marginal-text {
|
||||||
|
color: rgb(255, 255, 255) !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
[data-theme=freedom] .q-drawer--dark {
|
||||||
|
background: #0a0a0a !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
[data-theme=freedom] .q-header {
|
||||||
|
background: #0a0a0a !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
[data-theme=cyber] .q-drawer--dark {
|
||||||
|
background: #0a0a0a !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
[data-theme=cyber] .q-header {
|
||||||
|
background: #0a0a0a !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
[data-theme=salvador] .q-drawer--dark {
|
||||||
|
background: #242424 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
[data-theme=salvador] .q-header {
|
||||||
|
background: #0f47af !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
[data-theme=flamingo] .q-drawer--dark {
|
||||||
|
background: #e75480 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
[data-theme=flamingo] .q-header {
|
||||||
|
background: #e75480 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
[v-cloak] {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
body.body--dark .q-table--dark {
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
body.body--dark .q-field--error .text-negative,
|
||||||
|
body.body--dark .q-field--error .q-field__messages {
|
||||||
|
color: yellow !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.lnbits-drawer__q-list .q-item {
|
||||||
|
padding-top: 5px !important;
|
||||||
|
padding-bottom: 5px !important;
|
||||||
|
border-top-right-radius: 3px;
|
||||||
|
border-bottom-right-radius: 3px;
|
||||||
|
}
|
||||||
|
.lnbits-drawer__q-list .q-item.q-item--active {
|
||||||
|
color: inherit;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.lnbits__dialog-card {
|
||||||
|
width: 500px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.q-table--dense th:first-child,
|
||||||
|
.q-table--dense td:first-child,
|
||||||
|
.q-table--dense .q-table__bottom {
|
||||||
|
padding-left: 6px !important;
|
||||||
|
}
|
||||||
|
.q-table--dense th:last-child,
|
||||||
|
.q-table--dense td:last-child,
|
||||||
|
.q-table--dense .q-table__bottom {
|
||||||
|
padding-right: 6px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.inherit {
|
||||||
|
color: inherit;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
video {
|
||||||
|
border-radius: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: "Material Icons";
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 400;
|
||||||
|
src: url(/static/fonts/material-icons-v50.woff2) format("woff2");
|
||||||
|
}
|
||||||
|
.material-icons {
|
||||||
|
font-family: "Material Icons";
|
||||||
|
font-weight: normal;
|
||||||
|
font-style: normal;
|
||||||
|
font-size: 24px;
|
||||||
|
line-height: 1;
|
||||||
|
letter-spacing: normal;
|
||||||
|
text-transform: none;
|
||||||
|
display: inline-block;
|
||||||
|
white-space: nowrap;
|
||||||
|
word-wrap: normal;
|
||||||
|
direction: ltr;
|
||||||
|
-moz-font-feature-settings: "liga";
|
||||||
|
-moz-osx-font-smoothing: grayscale;
|
||||||
|
}
|
||||||
|
|
||||||
|
.q-rating__icon {
|
||||||
|
font-size: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-wrap {
|
||||||
|
word-break: break-word;
|
||||||
|
}
|
||||||
|
|
||||||
|
.q-card code {
|
||||||
|
overflow-wrap: break-word;
|
||||||
|
}
|
|
@ -188,7 +188,7 @@ video {
|
||||||
font-family: 'Material Icons';
|
font-family: 'Material Icons';
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
src: url(../fonts/material-icons-v50.woff2) format('woff2');
|
src: url(/static/fonts/material-icons-v50.woff2) format('woff2');
|
||||||
}
|
}
|
||||||
|
|
||||||
.material-icons {
|
.material-icons {
|
||||||
|
|
30
lnbits/static/vendor.json
Normal file
30
lnbits/static/vendor.json
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
{
|
||||||
|
"js": [
|
||||||
|
"/static/vendor/moment.js",
|
||||||
|
"/static/vendor/underscore.js",
|
||||||
|
"/static/vendor/axios.js",
|
||||||
|
"/static/vendor/vue.js",
|
||||||
|
"/static/vendor/vue-router.js",
|
||||||
|
"/static/vendor/vue-qrcode-reader.browser.js",
|
||||||
|
"/static/vendor/vue-qrcode.js",
|
||||||
|
"/static/vendor/vuex.js",
|
||||||
|
"/static/vendor/quasar.ie.polyfills.umd.min.js",
|
||||||
|
"/static/vendor/quasar.umd.js",
|
||||||
|
"/static/vendor/Chart.bundle.js",
|
||||||
|
"/static/vendor/vue-i18n.js",
|
||||||
|
"/static/i18n/i18n.js",
|
||||||
|
"/static/i18n/en.js",
|
||||||
|
"/static/i18n/de.js",
|
||||||
|
"/static/i18n/es.js",
|
||||||
|
"/static/i18n/jp.js",
|
||||||
|
"/static/js/base.js",
|
||||||
|
"/static/js/components.js",
|
||||||
|
"/static/js/bolt11-decoder.js"
|
||||||
|
],
|
||||||
|
"css": [
|
||||||
|
"/static/vendor/quasar.css",
|
||||||
|
"/static/vendor/Chart.css",
|
||||||
|
"/static/vendor/vue-qrcode-reader.css",
|
||||||
|
"/static/css/base.css"
|
||||||
|
]
|
||||||
|
}
|
|
@ -2,12 +2,9 @@
|
||||||
|
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
{% for url in VENDORED_CSS %}
|
{% for url in INCLUDED_CSS %}
|
||||||
<link rel="stylesheet" type="text/css" href="{{ url }}" />
|
<link rel="stylesheet" type="text/css" href="{{ url }}" />
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
<!---->
|
|
||||||
<link rel="stylesheet" type="text/css" href="/static/css/base.css" />
|
|
||||||
{% block styles %}{% endblock %}
|
|
||||||
<title>{% block title %}{{ SITE_TITLE }}{% endblock %}</title>
|
<title>{% block title %}{{ SITE_TITLE }}{% endblock %}</title>
|
||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta
|
<meta
|
||||||
|
@ -284,18 +281,10 @@
|
||||||
|
|
||||||
{% block vue_templates %}{% endblock %}
|
{% block vue_templates %}{% endblock %}
|
||||||
<!---->
|
<!---->
|
||||||
{% for url in VENDORED_JS %}
|
{% for url in INCLUDED_JS %}
|
||||||
<script src="{{ url }}"></script>
|
<script src="{{ url }}"></script>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
<!---->
|
<!---->
|
||||||
<script src="/static/i18n/i18n.js"></script>
|
|
||||||
<script src="/static/i18n/en.js"></script>
|
|
||||||
<script src="/static/i18n/de.js"></script>
|
|
||||||
<script src="/static/i18n/es.js"></script>
|
|
||||||
<script src="/static/i18n/jp.js"></script>
|
|
||||||
<script src="/static/js/base.js"></script>
|
|
||||||
<script src="/static/js/components.js"></script>
|
|
||||||
<script src="/static/js/bolt11-decoder.js"></script>
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
const themes = {{ LNBITS_THEME_OPTIONS | tojson }}
|
const themes = {{ LNBITS_THEME_OPTIONS | tojson }}
|
||||||
const LNBITS_DENOMINATION = {{ LNBITS_DENOMINATION | tojson}}
|
const LNBITS_DENOMINATION = {{ LNBITS_DENOMINATION | tojson}}
|
||||||
|
|
1970
package-lock.json
generated
1970
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
95
package.json
95
package.json
|
@ -1,20 +1,79 @@
|
||||||
{
|
{
|
||||||
"name": "lnbits",
|
"name": "lnbits",
|
||||||
"devDependencies": {
|
"scripts": {
|
||||||
"prettier": "2.8.3",
|
"sass": "./node_modules/.bin/sass ./lnbits/static/scss/base.scss > ./lnbits/static/css/base.css",
|
||||||
"pyright": "1.1.289"
|
"vendor_copy": "node -e \"require('./package.json').vendor.forEach((file) => require('fs').copyFileSync(file, './lnbits/static/vendor/'+file.split('/').pop()))\"",
|
||||||
},
|
"vendor_json": "node -e \"require('fs').writeFileSync('./lnbits/static/vendor.json', JSON.stringify(require('./package.json').bundle))\"",
|
||||||
"dependencies": {
|
"vendor_bundle_css": "node -e \"require('concat')(require('./package.json').bundle.css.map(a => './lnbits/'+a), './lnbits/static/bundle.css')\"",
|
||||||
"@chenfengyuan/vue-qrcode": "1.0.2",
|
"vendor_bundle_js": "node -e \"require('concat')(require('./package.json').bundle.js.map(a => './lnbits/'+a), './lnbits/static/bundle.js')\"",
|
||||||
"axios": "^1.3.4",
|
"vendor_minify_css": "./node_modules/.bin/minify ./lnbits/static/bundle.css > ./lnbits/static/bundle.min.css",
|
||||||
"chart.js": "2.9",
|
"vendor_minify_js": "./node_modules/.bin/minify ./lnbits/static/bundle.js > ./lnbits/static/bundle.min.js"
|
||||||
"moment": "^2.29.4",
|
},
|
||||||
"quasar": "1.13.2",
|
"devDependencies": {
|
||||||
"underscore": "^1.13.6",
|
"concat": "^1.0.3",
|
||||||
"vue": "2.6.12",
|
"minify": "^9.2.0",
|
||||||
"vue-i18n": "^8.28.2",
|
"sass": "^1.60.0",
|
||||||
"vue-qrcode-reader": "2.2",
|
"prettier": "2.8.3",
|
||||||
"vue-router": "3.4.3",
|
"pyright": "1.1.289"
|
||||||
"vuex": "3.5.1"
|
},
|
||||||
}
|
"dependencies": {
|
||||||
|
"@chenfengyuan/vue-qrcode": "1.0.2",
|
||||||
|
"axios": "^1.3.4",
|
||||||
|
"chart.js": "2.9",
|
||||||
|
"moment": "^2.29.4",
|
||||||
|
"quasar": "1.13.2",
|
||||||
|
"underscore": "^1.13.6",
|
||||||
|
"vue": "2.6.12",
|
||||||
|
"vue-i18n": "^8.28.2",
|
||||||
|
"vue-qrcode-reader": "2.2",
|
||||||
|
"vue-router": "3.4.3",
|
||||||
|
"vuex": "3.5.1"
|
||||||
|
},
|
||||||
|
"vendor": [
|
||||||
|
"./node_modules/moment/moment.js",
|
||||||
|
"./node_modules/underscore/underscore.js",
|
||||||
|
"./node_modules/axios/dist/axios.js",
|
||||||
|
"./node_modules/vue/dist/vue.js",
|
||||||
|
"./node_modules/vue-router/dist/vue-router.js",
|
||||||
|
"./node_modules/vue-qrcode-reader/dist/vue-qrcode-reader.browser.js",
|
||||||
|
"./node_modules/@chenfengyuan/vue-qrcode/dist/vue-qrcode.js",
|
||||||
|
"./node_modules/vuex/dist/vuex.js",
|
||||||
|
"./node_modules/quasar/dist/quasar.ie.polyfills.umd.min.js",
|
||||||
|
"./node_modules/quasar/dist/quasar.umd.js",
|
||||||
|
"./node_modules/chart.js/dist/Chart.bundle.js",
|
||||||
|
"./node_modules/quasar/dist/quasar.css",
|
||||||
|
"./node_modules/chart.js/dist/Chart.css",
|
||||||
|
"./node_modules/vue-qrcode-reader/dist/vue-qrcode-reader.css",
|
||||||
|
"./node_modules/vue-i18n/dist/vue-i18n.js"
|
||||||
|
],
|
||||||
|
"bundle": {
|
||||||
|
"js": [
|
||||||
|
"/static/vendor/moment.js",
|
||||||
|
"/static/vendor/underscore.js",
|
||||||
|
"/static/vendor/axios.js",
|
||||||
|
"/static/vendor/vue.js",
|
||||||
|
"/static/vendor/vue-router.js",
|
||||||
|
"/static/vendor/vue-qrcode-reader.browser.js",
|
||||||
|
"/static/vendor/vue-qrcode.js",
|
||||||
|
"/static/vendor/vuex.js",
|
||||||
|
"/static/vendor/quasar.ie.polyfills.umd.min.js",
|
||||||
|
"/static/vendor/quasar.umd.js",
|
||||||
|
"/static/vendor/Chart.bundle.js",
|
||||||
|
"/static/vendor/vue-i18n.js",
|
||||||
|
"/static/i18n/i18n.js",
|
||||||
|
"/static/i18n/en.js",
|
||||||
|
"/static/i18n/de.js",
|
||||||
|
"/static/i18n/es.js",
|
||||||
|
"/static/i18n/jp.js",
|
||||||
|
"/static/js/base.js",
|
||||||
|
"/static/js/components.js",
|
||||||
|
"/static/js/bolt11-decoder.js"
|
||||||
|
],
|
||||||
|
"css": [
|
||||||
|
"/static/vendor/quasar.css",
|
||||||
|
"/static/vendor/Chart.css",
|
||||||
|
"/static/vendor/vue-qrcode-reader.css",
|
||||||
|
"/static/css/base.css"
|
||||||
|
]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
46
poetry.lock
generated
46
poetry.lock
generated
|
@ -568,19 +568,6 @@ files = [
|
||||||
{file = "embit-0.4.9.tar.gz", hash = "sha256:992332bd89af6e2d027e26fe437eb14aa33997db08c882c49064d49c3e6f4ab9"},
|
{file = "embit-0.4.9.tar.gz", hash = "sha256:992332bd89af6e2d027e26fe437eb14aa33997db08c882c49064d49c3e6f4ab9"},
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "enum34"
|
|
||||||
version = "1.1.10"
|
|
||||||
description = "Python 3.4 Enum backported to 3.3, 3.2, 3.1, 2.7, 2.6, 2.5, and 2.4"
|
|
||||||
category = "main"
|
|
||||||
optional = false
|
|
||||||
python-versions = "*"
|
|
||||||
files = [
|
|
||||||
{file = "enum34-1.1.10-py2-none-any.whl", hash = "sha256:a98a201d6de3f2ab3db284e70a33b0f896fbf35f8086594e8c9e74b909058d53"},
|
|
||||||
{file = "enum34-1.1.10-py3-none-any.whl", hash = "sha256:c3858660960c984d6ab0ebad691265180da2b43f07e061c0f8dca9ef3cffd328"},
|
|
||||||
{file = "enum34-1.1.10.tar.gz", hash = "sha256:cce6a7477ed816bd2542d03d53db9f0db935dd013b70f336a95c73979289f248"},
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "environs"
|
name = "environs"
|
||||||
version = "9.5.0"
|
version = "9.5.0"
|
||||||
|
@ -1126,21 +1113,6 @@ files = [
|
||||||
{file = "packaging-23.0.tar.gz", hash = "sha256:b6ad297f8907de0fa2fe1ccbd26fdaf387f5f47c7275fedf8cce89f99446cf97"},
|
{file = "packaging-23.0.tar.gz", hash = "sha256:b6ad297f8907de0fa2fe1ccbd26fdaf387f5f47c7275fedf8cce89f99446cf97"},
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "pathlib2"
|
|
||||||
version = "2.3.7.post1"
|
|
||||||
description = "Object-oriented filesystem paths"
|
|
||||||
category = "main"
|
|
||||||
optional = false
|
|
||||||
python-versions = "*"
|
|
||||||
files = [
|
|
||||||
{file = "pathlib2-2.3.7.post1-py2.py3-none-any.whl", hash = "sha256:5266a0fd000452f1b3467d782f079a4343c63aaa119221fbdc4e39577489ca5b"},
|
|
||||||
{file = "pathlib2-2.3.7.post1.tar.gz", hash = "sha256:9fe0edad898b83c0c3e199c842b27ed216645d2e177757b2dd67384d4113c641"},
|
|
||||||
]
|
|
||||||
|
|
||||||
[package.dependencies]
|
|
||||||
six = "*"
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pathspec"
|
name = "pathspec"
|
||||||
version = "0.11.1"
|
version = "0.11.1"
|
||||||
|
@ -1472,22 +1444,6 @@ files = [
|
||||||
[package.extras]
|
[package.extras]
|
||||||
png = ["pypng (>=0.0.13)"]
|
png = ["pypng (>=0.0.13)"]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "pyscss"
|
|
||||||
version = "1.4.0"
|
|
||||||
description = "pyScss, a Scss compiler for Python"
|
|
||||||
category = "main"
|
|
||||||
optional = false
|
|
||||||
python-versions = "*"
|
|
||||||
files = [
|
|
||||||
{file = "pyScss-1.4.0.tar.gz", hash = "sha256:8f35521ffe36afa8b34c7d6f3195088a7057c185c2b8f15ee459ab19748669ff"},
|
|
||||||
]
|
|
||||||
|
|
||||||
[package.dependencies]
|
|
||||||
enum34 = "*"
|
|
||||||
pathlib2 = "*"
|
|
||||||
six = "*"
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pysocks"
|
name = "pysocks"
|
||||||
version = "1.7.1"
|
version = "1.7.1"
|
||||||
|
@ -2145,4 +2101,4 @@ testing = ["flake8 (<5)", "func-timeout", "jaraco.functools", "jaraco.itertools"
|
||||||
[metadata]
|
[metadata]
|
||||||
lock-version = "2.0"
|
lock-version = "2.0"
|
||||||
python-versions = "^3.10 | ^3.9"
|
python-versions = "^3.10 | ^3.9"
|
||||||
content-hash = "03929512a5536810efa83fe954211965d5a1a20d0a4e7e2bd560109dcdc2262e"
|
content-hash = "175f26c804fefbac97f2ddaff2132e004bb105fe37761eb52cc9e5ed377eddf3"
|
||||||
|
|
|
@ -4,10 +4,6 @@ version = "0.10.4.1"
|
||||||
description = "LNbits, free and open-source Lightning wallet and accounts system."
|
description = "LNbits, free and open-source Lightning wallet and accounts system."
|
||||||
authors = ["Alan Bits <alan@lnbits.com>"]
|
authors = ["Alan Bits <alan@lnbits.com>"]
|
||||||
|
|
||||||
[tool.poetry.build]
|
|
||||||
generate-setup-file = false
|
|
||||||
script = "tools/build.py"
|
|
||||||
|
|
||||||
[tool.poetry.dependencies]
|
[tool.poetry.dependencies]
|
||||||
python = "^3.10 | ^3.9"
|
python = "^3.10 | ^3.9"
|
||||||
bech32 = "1.2.0"
|
bech32 = "1.2.0"
|
||||||
|
@ -22,7 +18,6 @@ lnurl = "0.3.6"
|
||||||
psycopg2-binary = "2.9.1"
|
psycopg2-binary = "2.9.1"
|
||||||
pydantic = "1.10.4"
|
pydantic = "1.10.4"
|
||||||
pyqrcode = "1.2.1"
|
pyqrcode = "1.2.1"
|
||||||
pyScss = "1.4.0"
|
|
||||||
shortuuid = "1.0.11"
|
shortuuid = "1.0.11"
|
||||||
sqlalchemy = "1.3.24"
|
sqlalchemy = "1.3.24"
|
||||||
sqlalchemy-aio = "0.17.0"
|
sqlalchemy-aio = "0.17.0"
|
||||||
|
@ -52,7 +47,7 @@ types-protobuf = "^3.19.22"
|
||||||
pylint = "^2.17.2"
|
pylint = "^2.17.2"
|
||||||
|
|
||||||
[build-system]
|
[build-system]
|
||||||
requires = ["poetry-core>=1.0.0", "pyscss"]
|
requires = ["poetry-core>=1.0.0"]
|
||||||
build-backend = "poetry.core.masonry.api"
|
build-backend = "poetry.core.masonry.api"
|
||||||
|
|
||||||
[tool.poetry.scripts]
|
[tool.poetry.scripts]
|
||||||
|
|
|
@ -1,63 +0,0 @@
|
||||||
import os
|
|
||||||
import warnings
|
|
||||||
from pathlib import Path
|
|
||||||
|
|
||||||
LNBITS_PATH = Path("lnbits").absolute()
|
|
||||||
|
|
||||||
# from ..lnbits.helpers import vendored_js, vendored_css
|
|
||||||
vendored_js = [
|
|
||||||
"/static/vendor/moment.js",
|
|
||||||
"/static/vendor/underscore.js",
|
|
||||||
"/static/vendor/axios.js",
|
|
||||||
"/static/vendor/vue.js",
|
|
||||||
"/static/vendor/vue-router.js",
|
|
||||||
"/static/vendor/vue-qrcode-reader.browser.js",
|
|
||||||
"/static/vendor/vue-qrcode.js",
|
|
||||||
"/static/vendor/vue-i18n.js",
|
|
||||||
"/static/vendor/vuex.js",
|
|
||||||
"/static/vendor/quasar.ie.polyfills.umd.min.js",
|
|
||||||
"/static/vendor/quasar.umd.js",
|
|
||||||
"/static/vendor/Chart.bundle.js",
|
|
||||||
]
|
|
||||||
|
|
||||||
vendored_css = [
|
|
||||||
"/static/vendor/quasar.css",
|
|
||||||
"/static/vendor/Chart.css",
|
|
||||||
"/static/vendor/vue-qrcode-reader.css",
|
|
||||||
]
|
|
||||||
|
|
||||||
|
|
||||||
def url_for_vendored(abspath: str) -> str:
|
|
||||||
return f"/{os.path.relpath(abspath, LNBITS_PATH)}"
|
|
||||||
|
|
||||||
|
|
||||||
def transpile_scss():
|
|
||||||
with warnings.catch_warnings():
|
|
||||||
warnings.simplefilter("ignore")
|
|
||||||
from scss.compiler import compile_string # type: ignore
|
|
||||||
|
|
||||||
with open(os.path.join(LNBITS_PATH, "static/scss/base.scss")) as scss:
|
|
||||||
with open(os.path.join(LNBITS_PATH, "static/css/base.css"), "w") as css:
|
|
||||||
css.write(compile_string(scss.read()))
|
|
||||||
|
|
||||||
|
|
||||||
def bundle_vendored():
|
|
||||||
for files, outputpath in [
|
|
||||||
(vendored_js, os.path.join(LNBITS_PATH, "static/bundle.js")),
|
|
||||||
(vendored_css, os.path.join(LNBITS_PATH, "static/bundle.css")),
|
|
||||||
]:
|
|
||||||
output = ""
|
|
||||||
for path in files:
|
|
||||||
with open(f"{LNBITS_PATH}{path}") as f:
|
|
||||||
output += f.read() + ";\n"
|
|
||||||
with open(outputpath, "w") as f:
|
|
||||||
f.write(output)
|
|
||||||
|
|
||||||
|
|
||||||
def build():
|
|
||||||
transpile_scss()
|
|
||||||
bundle_vendored()
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
build()
|
|
Loading…
Reference in New Issue
Block a user