feat: update npm packages use terser to minify (#3614)

This commit is contained in:
dni ⚡ 2025-12-04 08:20:01 +01:00 committed by GitHub
parent af9331eede
commit 5213508dc1
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
21 changed files with 6975 additions and 6185 deletions

View file

@ -23,7 +23,7 @@ repos:
- id: ruff
args: [ --fix, --exit-non-zero-on-fix ]
- repo: https://github.com/rbubley/mirrors-prettier
rev: v3.6.2
rev: v3.7.4
hooks:
- id: prettier
types_or: [css, javascript, html, json]

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -473,7 +473,6 @@ function confettiStars() {
F = t.width * I.x,
N = t.height * I.y;
E--;
)
S.push(
((o = {

View file

@ -1,6 +1,7 @@
@use 'sass:color';
@use 'themes';
@each $theme, $colors in $themes {
@each $theme, $colors in themes.$themes {
body[data-theme='#{$theme}'] {
@each $name, $color in $colors {
@if $name== 'dark' {

View file

@ -1,7 +1,7 @@
@import 'themes';
@import 'borders';
@import 'background';
@import 'home';
@use 'themes';
@use 'borders';
@use 'background';
@use 'home';
[v-cloak] {
display: none;

View file

@ -1,4 +1,6 @@
@each $theme, $colors in $themes {
@use 'themes';
@each $theme, $colors in themes.$themes {
@each $name, $color in $colors {
@if $name== 'primary' {
body[data-theme='#{$theme}'].neon-border {

View file

@ -1,4 +1,4 @@
/*! Axios v1.12.0 Copyright (c) 2025 Matt Zabriskie and contributors */
/*! Axios v1.13.2 Copyright (c) 2025 Matt Zabriskie and contributors */
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
typeof define === 'function' && define.amd ? define(factory) :
@ -668,6 +668,13 @@
};
}
/**
* Create a bound version of a function with a specified `this` context
*
* @param {Function} fn - The function to bind
* @param {*} thisArg - The value to be passed as the `this` parameter
* @returns {Function} A new function that will call the original function with the specified `this` context
*/
function bind(fn, thisArg) {
return function wrap() {
return fn.apply(thisArg, arguments);
@ -1031,10 +1038,8 @@
result[targetKey] = merge({}, val);
} else if (isArray(val)) {
result[targetKey] = val.slice();
} else {
if (!skipUndefined || !isUndefined(val)) {
result[targetKey] = val;
}
} else if (!skipUndefined || !isUndefined(val)) {
result[targetKey] = val;
}
};
for (var i = 0, l = arguments.length; i < l; i++) {
@ -1833,7 +1838,7 @@
*
* @param {Number} id The ID that was returned by `use`
*
* @returns {Boolean} `true` if the interceptor was removed, `false` otherwise
* @returns {void}
*/
}, {
key: "eject",
@ -2704,20 +2709,33 @@
var cookies = platform.hasStandardBrowserEnv ?
// Standard browser envs support document.cookie
{
write: function write(name, value, expires, path, domain, secure) {
var cookie = [name + '=' + encodeURIComponent(value)];
utils$1.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());
utils$1.isString(path) && cookie.push('path=' + path);
utils$1.isString(domain) && cookie.push('domain=' + domain);
secure === true && cookie.push('secure');
write: function write(name, value, expires, path, domain, secure, sameSite) {
if (typeof document === 'undefined') return;
var cookie = ["".concat(name, "=").concat(encodeURIComponent(value))];
if (utils$1.isNumber(expires)) {
cookie.push("expires=".concat(new Date(expires).toUTCString()));
}
if (utils$1.isString(path)) {
cookie.push("path=".concat(path));
}
if (utils$1.isString(domain)) {
cookie.push("domain=".concat(domain));
}
if (secure === true) {
cookie.push('secure');
}
if (utils$1.isString(sameSite)) {
cookie.push("SameSite=".concat(sameSite));
}
document.cookie = cookie.join('; ');
},
read: function read(name) {
var match = document.cookie.match(new RegExp('(^|;\\s*)(' + name + ')=([^;]*)'));
return match ? decodeURIComponent(match[3]) : null;
if (typeof document === 'undefined') return null;
var match = document.cookie.match(new RegExp('(?:^|; )' + name + '=([^;]*)'));
return match ? decodeURIComponent(match[1]) : null;
},
remove: function remove(name) {
this.write(name, '', Date.now() - 86400000);
this.write(name, '', Date.now() - 86400000, '/');
}
} :
// Non-standard browser env (web workers, react-native) lack needed support.
@ -3353,11 +3371,9 @@
var DEFAULT_CHUNK_SIZE = 64 * 1024;
var isFunction = utils$1.isFunction;
var globalFetchAPI = function (_ref) {
var fetch = _ref.fetch,
Request = _ref.Request,
var Request = _ref.Request,
Response = _ref.Response;
return {
fetch: fetch,
Request: Request,
Response: Response
};
@ -3376,11 +3392,14 @@
}
};
var factory = function factory(env) {
var _Object$assign = Object.assign({}, globalFetchAPI, env),
fetch = _Object$assign.fetch,
Request = _Object$assign.Request,
Response = _Object$assign.Response;
var isFetchSupported = isFunction(fetch);
env = utils$1.merge.call({
skipUndefined: true
}, globalFetchAPI, env);
var _env = env,
envFetch = _env.fetch,
Request = _env.Request,
Response = _env.Response;
var isFetchSupported = envFetch ? isFunction(envFetch) : typeof fetch === 'function';
var isRequestSupported = isFunction(Request);
var isResponseSupported = isFunction(Response);
if (!isFetchSupported) {
@ -3521,31 +3540,32 @@
}();
return /*#__PURE__*/function () {
var _ref5 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(config) {
var _resolveConfig, url, method, data, signal, cancelToken, timeout, onDownloadProgress, onUploadProgress, responseType, headers, _resolveConfig$withCr, withCredentials, fetchOptions, composedSignal, request, unsubscribe, requestContentLength, _request, contentTypeHeader, _progressEventDecorat, _progressEventDecorat2, onProgress, flush, isCredentialsSupported, resolvedOptions, response, isStreamResponse, options, responseContentLength, _ref6, _ref7, _onProgress, _flush, responseData;
var _resolveConfig, url, method, data, signal, cancelToken, timeout, onDownloadProgress, onUploadProgress, responseType, headers, _resolveConfig$withCr, withCredentials, fetchOptions, _fetch, composedSignal, request, unsubscribe, requestContentLength, _request, contentTypeHeader, _progressEventDecorat, _progressEventDecorat2, onProgress, flush, isCredentialsSupported, resolvedOptions, response, isStreamResponse, options, responseContentLength, _ref6, _ref7, _onProgress, _flush, responseData;
return _regeneratorRuntime().wrap(function _callee4$(_context4) {
while (1) switch (_context4.prev = _context4.next) {
case 0:
_resolveConfig = resolveConfig(config), url = _resolveConfig.url, method = _resolveConfig.method, data = _resolveConfig.data, signal = _resolveConfig.signal, cancelToken = _resolveConfig.cancelToken, timeout = _resolveConfig.timeout, onDownloadProgress = _resolveConfig.onDownloadProgress, onUploadProgress = _resolveConfig.onUploadProgress, responseType = _resolveConfig.responseType, headers = _resolveConfig.headers, _resolveConfig$withCr = _resolveConfig.withCredentials, withCredentials = _resolveConfig$withCr === void 0 ? 'same-origin' : _resolveConfig$withCr, fetchOptions = _resolveConfig.fetchOptions;
_fetch = envFetch || fetch;
responseType = responseType ? (responseType + '').toLowerCase() : 'text';
composedSignal = composeSignals$1([signal, cancelToken && cancelToken.toAbortSignal()], timeout);
request = null;
unsubscribe = composedSignal && composedSignal.unsubscribe && function () {
composedSignal.unsubscribe();
};
_context4.prev = 5;
_context4.prev = 6;
_context4.t0 = onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head';
if (!_context4.t0) {
_context4.next = 12;
_context4.next = 13;
break;
}
_context4.next = 10;
_context4.next = 11;
return resolveBodyLength(headers, data);
case 10:
case 11:
_context4.t1 = requestContentLength = _context4.sent;
_context4.t0 = _context4.t1 !== 0;
case 12:
case 13:
if (!_context4.t0) {
_context4.next = 16;
_context4.next = 17;
break;
}
_request = new Request(url, {
@ -3560,7 +3580,7 @@
_progressEventDecorat = progressEventDecorator(requestContentLength, progressEventReducer(asyncDecorator(onUploadProgress))), _progressEventDecorat2 = _slicedToArray(_progressEventDecorat, 2), onProgress = _progressEventDecorat2[0], flush = _progressEventDecorat2[1];
data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);
}
case 16:
case 17:
if (!utils$1.isString(withCredentials)) {
withCredentials = withCredentials ? 'include' : 'omit';
}
@ -3577,9 +3597,9 @@
credentials: isCredentialsSupported ? withCredentials : undefined
});
request = isRequestSupported && new Request(url, resolvedOptions);
_context4.next = 22;
return isRequestSupported ? fetch(request, fetchOptions) : fetch(url, resolvedOptions);
case 22:
_context4.next = 23;
return isRequestSupported ? _fetch(request, fetchOptions) : _fetch(url, resolvedOptions);
case 23:
response = _context4.sent;
isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');
if (supportsResponseStream && (onDownloadProgress || isStreamResponse && unsubscribe)) {
@ -3595,12 +3615,12 @@
}), options);
}
responseType = responseType || 'text';
_context4.next = 28;
_context4.next = 29;
return resolvers[utils$1.findKey(resolvers, responseType) || 'text'](response, config);
case 28:
case 29:
responseData = _context4.sent;
!isStreamResponse && unsubscribe && unsubscribe();
_context4.next = 32;
_context4.next = 33;
return new Promise(function (resolve, reject) {
settle(resolve, reject, {
data: responseData,
@ -3611,26 +3631,26 @@
request: request
});
});
case 32:
case 33:
return _context4.abrupt("return", _context4.sent);
case 35:
_context4.prev = 35;
_context4.t2 = _context4["catch"](5);
case 36:
_context4.prev = 36;
_context4.t2 = _context4["catch"](6);
unsubscribe && unsubscribe();
if (!(_context4.t2 && _context4.t2.name === 'TypeError' && /Load failed|fetch/i.test(_context4.t2.message))) {
_context4.next = 40;
_context4.next = 41;
break;
}
throw Object.assign(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request), {
cause: _context4.t2.cause || _context4.t2
});
case 40:
throw AxiosError.from(_context4.t2, _context4.t2 && _context4.t2.code, config, request);
case 41:
throw AxiosError.from(_context4.t2, _context4.t2 && _context4.t2.code, config, request);
case 42:
case "end":
return _context4.stop();
}
}, _callee4, null, [[5, 35]]);
}, _callee4, null, [[6, 36]]);
}));
return function (_x5) {
return _ref5.apply(this, arguments);
@ -3639,9 +3659,7 @@
};
var seedCache = new Map();
var getFetch = function getFetch(config) {
var env = utils$1.merge.call({
skipUndefined: true
}, globalFetchAPI, config ? config.env : null);
var env = config && config.env || {};
var fetch = env.fetch,
Request = env.Request,
Response = env.Response;
@ -3661,6 +3679,15 @@
};
getFetch();
/**
* Known adapters mapping.
* Provides environment-specific adapters for Axios:
* - `http` for Node.js
* - `xhr` for browsers
* - `fetch` for fetch API-based requests
*
* @type {Object<string, Function|Object>}
*/
var knownAdapters = {
http: httpAdapter,
xhr: xhrAdapter,
@ -3668,6 +3695,8 @@
get: getFetch
}
};
// Assign adapter names for easier debugging and identification
utils$1.forEach(knownAdapters, function (fn, value) {
if (fn) {
try {
@ -3682,47 +3711,85 @@
});
}
});
/**
* Render a rejection reason string for unknown or unsupported adapters
*
* @param {string} reason
* @returns {string}
*/
var renderReason = function renderReason(reason) {
return "- ".concat(reason);
};
/**
* Check if the adapter is resolved (function, null, or false)
*
* @param {Function|null|false} adapter
* @returns {boolean}
*/
var isResolvedHandle = function isResolvedHandle(adapter) {
return utils$1.isFunction(adapter) || adapter === null || adapter === false;
};
/**
* Get the first suitable adapter from the provided list.
* Tries each adapter in order until a supported one is found.
* Throws an AxiosError if no adapter is suitable.
*
* @param {Array<string|Function>|string|Function} adapters - Adapter(s) by name or function.
* @param {Object} config - Axios request configuration
* @throws {AxiosError} If no suitable adapter is available
* @returns {Function} The resolved adapter function
*/
function getAdapter(adapters, config) {
adapters = utils$1.isArray(adapters) ? adapters : [adapters];
var _adapters = adapters,
length = _adapters.length;
var nameOrAdapter;
var adapter;
var rejectedReasons = {};
for (var i = 0; i < length; i++) {
nameOrAdapter = adapters[i];
var id = void 0;
adapter = nameOrAdapter;
if (!isResolvedHandle(nameOrAdapter)) {
adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];
if (adapter === undefined) {
throw new AxiosError("Unknown adapter '".concat(id, "'"));
}
}
if (adapter && (utils$1.isFunction(adapter) || (adapter = adapter.get(config)))) {
break;
}
rejectedReasons[id || '#' + i] = adapter;
}
if (!adapter) {
var reasons = Object.entries(rejectedReasons).map(function (_ref) {
var _ref2 = _slicedToArray(_ref, 2),
id = _ref2[0],
state = _ref2[1];
return "adapter ".concat(id, " ") + (state === false ? 'is not supported by the environment' : 'is not available in the build');
});
var s = length ? reasons.length > 1 ? 'since :\n' + reasons.map(renderReason).join('\n') : ' ' + renderReason(reasons[0]) : 'as no adapter specified';
throw new AxiosError("There is no suitable adapter to dispatch the request " + s, 'ERR_NOT_SUPPORT');
}
return adapter;
}
/**
* Exports Axios adapters and utility to resolve an adapter
*/
var adapters = {
getAdapter: function getAdapter(adapters, config) {
adapters = utils$1.isArray(adapters) ? adapters : [adapters];
var _adapters = adapters,
length = _adapters.length;
var nameOrAdapter;
var adapter;
var rejectedReasons = {};
for (var i = 0; i < length; i++) {
nameOrAdapter = adapters[i];
var id = void 0;
adapter = nameOrAdapter;
if (!isResolvedHandle(nameOrAdapter)) {
adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];
if (adapter === undefined) {
throw new AxiosError("Unknown adapter '".concat(id, "'"));
}
}
if (adapter && (utils$1.isFunction(adapter) || (adapter = adapter.get(config)))) {
break;
}
rejectedReasons[id || '#' + i] = adapter;
}
if (!adapter) {
var reasons = Object.entries(rejectedReasons).map(function (_ref) {
var _ref2 = _slicedToArray(_ref, 2),
id = _ref2[0],
state = _ref2[1];
return "adapter ".concat(id, " ") + (state === false ? 'is not supported by the environment' : 'is not available in the build');
});
var s = length ? reasons.length > 1 ? 'since :\n' + reasons.map(renderReason).join('\n') : ' ' + renderReason(reasons[0]) : 'as no adapter specified';
throw new AxiosError("There is no suitable adapter to dispatch the request " + s, 'ERR_NOT_SUPPORT');
}
return adapter;
},
/**
* Resolve an adapter from a list of adapter names or functions.
* @type {Function}
*/
getAdapter: getAdapter,
/**
* Exposes all known adapters
* @type {Object<string, Function|Object>}
*/
adapters: knownAdapters
};
@ -3780,7 +3847,7 @@
});
}
var VERSION = "1.12.0";
var VERSION = "1.13.2";
var validators$1 = {};
@ -4023,7 +4090,6 @@
}
len = requestInterceptorChain.length;
var newConfig = config;
i = 0;
while (i < len) {
var onFulfilled = requestInterceptorChain[i++];
var onRejected = requestInterceptorChain[i++];
@ -4317,7 +4383,13 @@
InsufficientStorage: 507,
LoopDetected: 508,
NotExtended: 510,
NetworkAuthenticationRequired: 511
NetworkAuthenticationRequired: 511,
WebServerIsDown: 521,
ConnectionTimedOut: 522,
OriginIsUnreachable: 523,
TimeoutOccurred: 524,
SslHandshakeFailed: 525,
InvalidSslCertificate: 526
};
Object.entries(HttpStatusCode).forEach(function (_ref) {
var _ref2 = _slicedToArray(_ref, 2),

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1119,16 +1119,19 @@ body.desktop .q-checkbox--dense:not(.disabled):focus .q-checkbox__inner:before,
.q-chip--colored .q-chip__icon, .q-chip--dark .q-chip__icon {
color: inherit;
}
.q-chip--outline {
background: transparent !important;
border: 1px solid currentColor;
}
.q-chip .q-avatar {
font-size: 2em;
margin-left: -0.45em;
margin-right: 0.2em;
border-radius: 16px;
}
.q-chip--outline {
background: transparent !important;
border: 1px solid currentColor;
}
.q-chip--outline .q-avatar {
margin-left: calc(-0.45em - 1px);
}
.q-chip--selected .q-avatar {
display: none;
}
@ -1239,10 +1242,6 @@ body.desktop.body--dark .q-chip--clickable:focus {
min-width: 180px;
border-radius: 4px;
box-shadow: 0 1px 5px rgba(0, 0, 0, 0.2), 0 2px 2px rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.12);
/* Saturation Tab */
/* Tune Tab */
/* Palette Tab */
/* Generic */
}
.q-color-picker .q-tab {
padding: 0 !important;
@ -1310,6 +1309,9 @@ body.desktop.body--dark .q-chip--clickable:focus {
.q-color-picker__footer .q-tab--inactive {
background: linear-gradient(to bottom, rgba(0, 0, 0, 0.3) 0%, rgba(0, 0, 0, 0.15) 25%, rgba(0, 0, 0, 0.1));
}
.q-color-picker {
/* Saturation Tab */
}
.q-color-picker__spectrum {
width: 100%;
height: 100%;
@ -1360,6 +1362,9 @@ body.desktop.body--dark .q-chip--clickable:focus {
.q-color-picker__sliders .q-slider--active path {
stroke-width: 3px;
}
.q-color-picker {
/* Tune Tab */
}
.q-color-picker__tune-tab .q-slider {
margin-left: 18px;
margin-right: 18px;
@ -1370,6 +1375,9 @@ body.desktop.body--dark .q-chip--clickable:focus {
border-radius: 4px;
width: 3.5em;
}
.q-color-picker {
/* Palette Tab */
}
.q-color-picker__palette-tab {
padding: 0 !important;
}
@ -1380,6 +1388,9 @@ body.desktop.body--dark .q-chip--clickable:focus {
padding-bottom: 10%;
width: 10% !important;
}
.q-color-picker {
/* Generic */
}
.q-color-picker input {
color: inherit;
background: transparent;
@ -2208,12 +2219,6 @@ body.q-ios-padding .q-dialog__inner > div {
-webkit-animation-name: q-autofill;
-webkit-animation-fill-mode: both;
}
.q-field__native:-webkit-autofill + .q-field__label, .q-field__input:-webkit-autofill + .q-field__label {
transform: translateY(-40%) scale(0.75);
}
.q-field__native[type=color] + .q-field__label, .q-field__native[type=date] + .q-field__label, .q-field__native[type=datetime-local] + .q-field__label, .q-field__native[type=month] + .q-field__label, .q-field__native[type=time] + .q-field__label, .q-field__native[type=week] + .q-field__label, .q-field__input[type=color] + .q-field__label, .q-field__input[type=date] + .q-field__label, .q-field__input[type=datetime-local] + .q-field__label, .q-field__input[type=month] + .q-field__label, .q-field__input[type=time] + .q-field__label, .q-field__input[type=week] + .q-field__label {
transform: translateY(-40%) scale(0.75);
}
.q-field__native:invalid, .q-field__input:invalid {
box-shadow: none;
}
@ -2273,6 +2278,15 @@ body.q-ios-padding .q-dialog__inner > div {
transition: transform 0.36s cubic-bezier(0.4, 0, 0.2, 1), max-width 0.324s cubic-bezier(0.4, 0, 0.2, 1);
backface-visibility: hidden;
}
.q-field__label:has(+ :is(.q-field__native, .q-field__input):is(:-webkit-autofill,
[type=color],
[type=date],
[type=datetime-local],
[type=month],
[type=time],
[type=week])) {
transform: translateY(-40%) scale(0.75);
}
.q-field--float .q-field__label {
max-width: 133%;
transform: translateY(-40%) scale(0.75);
@ -2491,10 +2505,13 @@ body.q-ios-padding .q-dialog__inner > div {
.q-field--dense.q-field--float .q-field__label {
transform: translateY(-30%) scale(0.75);
}
.q-field--dense .q-field__native:-webkit-autofill + .q-field__label, .q-field--dense .q-field__input:-webkit-autofill + .q-field__label {
transform: translateY(-30%) scale(0.75);
}
.q-field--dense .q-field__native[type=color] + .q-field__label, .q-field--dense .q-field__native[type=date] + .q-field__label, .q-field--dense .q-field__native[type=datetime-local] + .q-field__label, .q-field--dense .q-field__native[type=month] + .q-field__label, .q-field--dense .q-field__native[type=time] + .q-field__label, .q-field--dense .q-field__native[type=week] + .q-field__label, .q-field--dense .q-field__input[type=color] + .q-field__label, .q-field--dense .q-field__input[type=date] + .q-field__label, .q-field--dense .q-field__input[type=datetime-local] + .q-field__label, .q-field--dense .q-field__input[type=month] + .q-field__label, .q-field--dense .q-field__input[type=time] + .q-field__label, .q-field--dense .q-field__input[type=week] + .q-field__label {
.q-field--dense .q-field__label:has(+ :is(.q-field__native, .q-field__input):is(:-webkit-autofill,
[type=color],
[type=date],
[type=datetime-local],
[type=month],
[type=time],
[type=week])) {
transform: translateY(-30%) scale(0.75);
}
.q-field--borderless .q-field__bottom, .q-field--borderless.q-field--dense .q-field__control, .q-field--standard .q-field__bottom, .q-field--standard.q-field--dense .q-field__control {
@ -3384,7 +3401,7 @@ body.desktop .q-radio--dense:not(.disabled):focus .q-radio__inner:before, body.d
text-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);
position: relative;
opacity: 0.4;
transition: transform 0.2s ease-in, opacity 0.2s ease-in;
transition: transform 0.2s ease-in, opacity 0.2s ease-in, color 0.2s ease-in;
}
.q-rating__icon--hovered {
transform: scale(1.3);
@ -4704,7 +4721,7 @@ body.desktop .q-slider.q-slider--enabled .q-slider__track-container:hover .q-sli
/* * On light background
* */
.q-table__bottom {
.q-table__bottom:not(.q-table__bottom--nodata) {
border-top: 1px solid rgba(0, 0, 0, 0.12);
}
@ -11315,8 +11332,7 @@ p {
}
.text-justify {
text-align: justify;
-webkit-hyphens: auto;
hyphens: auto;
hyphens: auto;
}
.text-italic {
font-style: italic;

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load diff

File diff suppressed because one or more lines are too long

1271
package-lock.json generated

File diff suppressed because it is too large Load diff

View file

@ -7,31 +7,32 @@
"vendor_bundle_css": "node -e \"require('concat')(require('./package.json').bundle.css.map(a => 'lnbits/static/'+a), './lnbits/static/bundle.css')\"",
"vendor_bundle_js": "node -e \"require('concat')(require('./package.json').bundle.js.map(a => 'lnbits/static/'+a),'./lnbits/static/bundle.js')\"",
"vendor_bundle_components": "node -e \"require('concat')(require('./package.json').bundle.components.map(a => 'lnbits/static/'+a), './lnbits/static/bundle-components.js')\"",
"vendor_minify_css": "./node_modules/.bin/minify ./lnbits/static/bundle.css > ./lnbits/static/bundle.min.css",
"vendor_minify_js": "./node_modules/.bin/minify ./lnbits/static/bundle.js > ./lnbits/static/bundle.min.js",
"vendor_minify_components": "./node_modules/.bin/minify ./lnbits/static/bundle-components.js > ./lnbits/static/bundle-components.min.js",
"vendor_minify_css": "./node_modules/.bin/cleancss -o ./lnbits/static/bundle.min.css ./lnbits/static/bundle.css",
"vendor_minify_js": "./node_modules/.bin/terser ./lnbits/static/bundle.js -o ./lnbits/static/bundle.min.js --compress --mangle",
"vendor_minify_components": "./node_modules/.bin/terser ./lnbits/static/bundle-components.js -o ./lnbits/static/bundle-components.min.js --compress --mangle",
"bundle": "npm run sass && npm run vendor_copy && npm run vendor_json && npm run vendor_bundle_css && npm run vendor_bundle_js && npm run vendor_bundle_components && npm run vendor_minify_css && npm run vendor_minify_js && npm run vendor_minify_components"
},
"devDependencies": {
"clean-css-cli": "^5.6.3",
"concat": "^1.0.3",
"minify": "^9.2.0",
"prettier": "^3.6.2",
"prettier": "^3.7.4",
"pyright": "1.1.289",
"sass": "^1.78.0"
"sass": "^1.94.2",
"terser": "^5.44.1"
},
"dependencies": {
"axios": "^1.12.0",
"chart.js": "^4.4.4",
"axios": "^1.13.2",
"chart.js": "^4.5.1",
"moment": "^2.30.1",
"nostr-tools": "^2.7.2",
"qrcode.vue": "^3.4.1",
"quasar": "2.17.0",
"nostr-tools": "^2.18.2",
"qrcode.vue": "^3.6.0",
"quasar": "2.18.6",
"showdown": "^2.1.0",
"underscore": "^1.13.7",
"vue": "3.5.8",
"vue-i18n": "^10.0.8",
"vue-qrcode-reader": "^5.5.10",
"vue-router": "4.4.5",
"vue": "3.5.25",
"vue-i18n": "^11.2.2",
"vue-qrcode-reader": "^5.7.3",
"vue-router": "4.6.3",
"vuex": "4.1.0"
},
"vendor": [