style(design): apply Minimal Dark Mode design system\n\n- Switched to complete Dark Mode (OLED-friendly)\n- Established standard color palette matching modern technical aesthetics\n- Changed font to Plus Jakarta Sans for increased legibility\n- Enforced dark mode as default in App.tsx\n- Fixed several React cascading render (setState in useEffect) warnings
No files matched your search
@@ -12,6 +12,8 @@
|
|||||||
"make": "electron-forge make",
|
"make": "electron-forge make",
|
||||||
"make:win": "node scripts/build-windows.js",
|
"make:win": "node scripts/build-windows.js",
|
||||||
"publish": "electron-forge publish",
|
"publish": "electron-forge publish",
|
||||||
|
"setup": "node scripts/setup-dev.js",
|
||||||
|
"postinstall": "node scripts/setup-dev.js --check-only",
|
||||||
"lint": "eslint .",
|
"lint": "eslint .",
|
||||||
"format": "prettier --check .",
|
"format": "prettier --check .",
|
||||||
"format:write": "prettier --write .",
|
"format:write": "prettier --write .",
|
||||||
@@ -102,6 +104,7 @@
|
|||||||
"@nestjs/microservices": "^11.1.18",
|
"@nestjs/microservices": "^11.1.18",
|
||||||
"@nestjs/platform-express": "^11.1.18",
|
"@nestjs/platform-express": "^11.1.18",
|
||||||
"@nestjs/platform-fastify": "^11.0.20",
|
"@nestjs/platform-fastify": "^11.0.20",
|
||||||
|
"@nestjs/websockets": "^11.1.19",
|
||||||
"@nivo/bar": "^0.99.0",
|
"@nivo/bar": "^0.99.0",
|
||||||
"@nivo/core": "^0.99.0",
|
"@nivo/core": "^0.99.0",
|
||||||
"@nivo/pie": "^0.99.0",
|
"@nivo/pie": "^0.99.0",
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ settings:
|
|||||||
excludeLinksFromLockfile: false
|
excludeLinksFromLockfile: false
|
||||||
|
|
||||||
overrides:
|
overrides:
|
||||||
|
node-abi: ^4.28.0
|
||||||
fastify: ^5.8.5
|
fastify: ^5.8.5
|
||||||
tar: ^7.5.13
|
tar: ^7.5.13
|
||||||
'@octokit/request-error': ^5.1.1
|
'@octokit/request-error': ^5.1.1
|
||||||
@@ -18,12 +19,6 @@ importers:
|
|||||||
|
|
||||||
.:
|
.:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@grpc/grpc-js':
|
|
||||||
specifier: ^1.14.3
|
|
||||||
version: 1.14.3
|
|
||||||
'@grpc/proto-loader':
|
|
||||||
specifier: ^0.8.0
|
|
||||||
version: 0.8.0
|
|
||||||
'@icons-pack/react-simple-icons':
|
'@icons-pack/react-simple-icons':
|
||||||
specifier: ^13.8.0
|
specifier: ^13.8.0
|
||||||
version: 13.13.0([email protected])
|
version: 13.13.0([email protected])
|
||||||
@@ -32,16 +27,19 @@ importers:
|
|||||||
version: 11.1.19([email protected])([email protected])([email protected])([email protected])
|
version: 11.1.19([email protected])([email protected])([email protected])([email protected])
|
||||||
'@nestjs/core':
|
'@nestjs/core':
|
||||||
specifier: ^11.1.18
|
specifier: ^11.1.18
|
||||||
version: 11.1.19(@nestjs/[email protected]([email protected])([email protected])([email protected])([email protected]))(@nestjs/[email protected])(@nestjs/[email protected])([email protected])([email protected])
|
version: 11.1.19(@nestjs/[email protected]([email protected])([email protected])([email protected])([email protected]))(@nestjs/[email protected])(@nestjs/[email protected])(@nestjs/[email protected])([email protected])([email protected])
|
||||||
'@nestjs/microservices':
|
'@nestjs/microservices':
|
||||||
specifier: ^11.1.18
|
specifier: ^11.1.18
|
||||||
version: 11.1.19(@grpc/[email protected])(@nestjs/[email protected]([email protected])([email protected])([email protected])([email protected]))(@nestjs/[email protected])([email protected])([email protected])
|
version: 11.1.19(@grpc/[email protected])(@nestjs/[email protected]([email protected])([email protected])([email protected])([email protected]))(@nestjs/[email protected])(@nestjs/[email protected])([email protected])([email protected])
|
||||||
'@nestjs/platform-express':
|
'@nestjs/platform-express':
|
||||||
specifier: ^11.1.18
|
specifier: ^11.1.18
|
||||||
version: 11.1.19(@nestjs/[email protected]([email protected])([email protected])([email protected])([email protected]))(@nestjs/[email protected])
|
version: 11.1.19(@nestjs/[email protected]([email protected])([email protected])([email protected])([email protected]))(@nestjs/[email protected])
|
||||||
'@nestjs/platform-fastify':
|
'@nestjs/platform-fastify':
|
||||||
specifier: ^11.1.18
|
specifier: ^11.0.20
|
||||||
version: 11.1.19(@nestjs/[email protected]([email protected])([email protected])([email protected])([email protected]))(@nestjs/[email protected])
|
version: 11.1.19(@nestjs/[email protected]([email protected])([email protected])([email protected])([email protected]))(@nestjs/[email protected])
|
||||||
|
'@nestjs/websockets':
|
||||||
|
specifier: ^11.1.19
|
||||||
|
version: 11.1.19(@nestjs/[email protected]([email protected])([email protected])([email protected])([email protected]))(@nestjs/[email protected])([email protected])([email protected])
|
||||||
'@nivo/bar':
|
'@nivo/bar':
|
||||||
specifier: ^0.99.0
|
specifier: ^0.99.0
|
||||||
version: 0.99.0([email protected]([email protected]))([email protected])
|
version: 0.99.0([email protected]([email protected]))([email protected])
|
||||||
@@ -215,8 +213,8 @@ importers:
|
|||||||
version: 4.3.6
|
version: 4.3.6
|
||||||
devDependencies:
|
devDependencies:
|
||||||
'@electron-forge/cli':
|
'@electron-forge/cli':
|
||||||
specifier: ^7.11.1
|
specifier: ^7.6.1
|
||||||
version: 7.11.1(@swc/[email protected])([email protected])
|
version: 7.11.1(@swc/[email protected])([email protected])([email protected])
|
||||||
'@electron-forge/maker-deb':
|
'@electron-forge/maker-deb':
|
||||||
specifier: ^7.11.1
|
specifier: ^7.11.1
|
||||||
version: 7.11.1
|
version: 7.11.1
|
||||||
@@ -230,7 +228,7 @@ importers:
|
|||||||
specifier: ^7.11.1
|
specifier: ^7.11.1
|
||||||
version: 7.11.1
|
version: 7.11.1
|
||||||
'@electron-forge/maker-wix':
|
'@electron-forge/maker-wix':
|
||||||
specifier: ^7.11.1
|
specifier: ^7.9.0
|
||||||
version: 7.11.1
|
version: 7.11.1
|
||||||
'@electron-forge/maker-zip':
|
'@electron-forge/maker-zip':
|
||||||
specifier: ^7.11.1
|
specifier: ^7.11.1
|
||||||
@@ -263,7 +261,7 @@ importers:
|
|||||||
specifier: ^9.39.0
|
specifier: ^9.39.0
|
||||||
version: 9.39.4
|
version: 9.39.4
|
||||||
'@pengx17/electron-forge-maker-appimage':
|
'@pengx17/electron-forge-maker-appimage':
|
||||||
specifier: ^1.2.1
|
specifier: ^1.0.2
|
||||||
version: 1.2.1([email protected])([email protected])
|
version: 1.2.1([email protected])([email protected])
|
||||||
'@playwright/test':
|
'@playwright/test':
|
||||||
specifier: ^1.56.1
|
specifier: ^1.56.1
|
||||||
@@ -285,10 +283,10 @@ importers:
|
|||||||
version: 1.15.30
|
version: 1.15.30
|
||||||
'@tailwindcss/vite':
|
'@tailwindcss/vite':
|
||||||
specifier: ^4.2.4
|
specifier: ^4.2.4
|
||||||
version: 4.2.4(vite@6.4.2(@types/[email protected])([email protected].1)([email protected])([email protected])([email protected])([email protected]))
|
version: 4.2.4(vite@8.0.10(@types/[email protected])([email protected].12)([email protected])([email protected])([email protected])([email protected]))
|
||||||
'@tanstack/router-plugin':
|
'@tanstack/router-plugin':
|
||||||
specifier: ^1.135.0
|
specifier: ^1.135.0
|
||||||
version: 1.167.22(@tanstack/[email protected]([email protected]([email protected]))([email protected]))(vite@6.4.2(@types/[email protected])([email protected].1)([email protected])([email protected])([email protected])([email protected]))([email protected](@swc/[email protected]))
|
version: 1.167.22(@tanstack/[email protected]([email protected]([email protected]))([email protected]))(vite@8.0.10(@types/[email protected])([email protected].12)([email protected])([email protected])([email protected])([email protected]))([email protected](@swc/[email protected])([email protected]))
|
||||||
'@testing-library/jest-dom':
|
'@testing-library/jest-dom':
|
||||||
specifier: ^6.9.1
|
specifier: ^6.9.1
|
||||||
version: 6.9.1
|
version: 6.9.1
|
||||||
@@ -321,7 +319,7 @@ importers:
|
|||||||
version: 19.2.3(@types/[email protected])
|
version: 19.2.3(@types/[email protected])
|
||||||
'@vitejs/plugin-react':
|
'@vitejs/plugin-react':
|
||||||
specifier: ^4.7.0
|
specifier: ^4.7.0
|
||||||
version: 4.7.0(vite@6.4.2(@types/[email protected])([email protected].1)([email protected])([email protected])([email protected])([email protected]))
|
version: 4.7.0(vite@8.0.10(@types/[email protected])([email protected].12)([email protected])([email protected])([email protected])([email protected]))
|
||||||
babel-plugin-react-compiler:
|
babel-plugin-react-compiler:
|
||||||
specifier: 1.0.0
|
specifier: 1.0.0
|
||||||
version: 1.0.0
|
version: 1.0.0
|
||||||
@@ -335,8 +333,8 @@ importers:
|
|||||||
specifier: ^10.1.0
|
specifier: ^10.1.0
|
||||||
version: 10.1.0
|
version: 10.1.0
|
||||||
electron:
|
electron:
|
||||||
specifier: ^39.8.5
|
specifier: ^41.3.0
|
||||||
version: 39.8.9
|
version: 41.3.0
|
||||||
electron-devtools-installer:
|
electron-devtools-installer:
|
||||||
specifier: ^4.0.0
|
specifier: ^4.0.0
|
||||||
version: 4.0.0
|
version: 4.0.0
|
||||||
@@ -376,6 +374,9 @@ importers:
|
|||||||
jsdom:
|
jsdom:
|
||||||
specifier: ^27.1.0
|
specifier: ^27.1.0
|
||||||
version: 27.4.0
|
version: 27.4.0
|
||||||
|
node-abi:
|
||||||
|
specifier: ^4.28.0
|
||||||
|
version: 4.28.0
|
||||||
node-addon-api:
|
node-addon-api:
|
||||||
specifier: ^8.3.1
|
specifier: ^8.3.1
|
||||||
version: 8.7.0
|
version: 8.7.0
|
||||||
@@ -410,14 +411,14 @@ importers:
|
|||||||
specifier: ^1.5.9
|
specifier: ^1.5.9
|
||||||
version: 1.5.9(@swc/[email protected])([email protected])
|
version: 1.5.9(@swc/[email protected])([email protected])
|
||||||
vite:
|
vite:
|
||||||
specifier: ^6.4.2
|
specifier: ^8.0.10
|
||||||
version: 6.4.2(@types/[email protected])([email protected].1)([email protected])([email protected])([email protected])([email protected])
|
version: 8.0.10(@types/[email protected])([email protected].12)([email protected])([email protected])([email protected])([email protected])
|
||||||
vite-tsconfig-paths:
|
vite-tsconfig-paths:
|
||||||
specifier: ^6.1.1
|
specifier: ^6.1.1
|
||||||
version: 6.1.1([email protected])(vite@6.4.2(@types/[email protected])([email protected].1)([email protected])([email protected])([email protected])([email protected]))
|
version: 6.1.1([email protected])(vite@8.0.10(@types/[email protected])([email protected].12)([email protected])([email protected])([email protected])([email protected]))
|
||||||
vitest:
|
vitest:
|
||||||
specifier: ^4.0.8
|
specifier: ^4.0.8
|
||||||
version: 4.1.5(@opentelemetry/[email protected])(@types/[email protected])([email protected])([email protected])(vite@6.4.2(@types/[email protected])([email protected].1)([email protected])([email protected])([email protected])([email protected]))
|
version: 4.1.5(@opentelemetry/[email protected])(@types/[email protected])([email protected])([email protected])(vite@8.0.10(@types/[email protected])([email protected].12)([email protected])([email protected])([email protected])([email protected]))
|
||||||
|
|
||||||
packages:
|
packages:
|
||||||
|
|
||||||
@@ -798,9 +799,15 @@ packages:
|
|||||||
engines: {node: '>=14.14'}
|
engines: {node: '>=14.14'}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
|
'@emnapi/[email protected]':
|
||||||
|
resolution: {integrity: sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==}
|
||||||
|
|
||||||
'@emnapi/[email protected]':
|
'@emnapi/[email protected]':
|
||||||
resolution: {integrity: sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==}
|
resolution: {integrity: sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==}
|
||||||
|
|
||||||
|
'@emnapi/[email protected]':
|
||||||
|
resolution: {integrity: sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==}
|
||||||
|
|
||||||
'@epic-web/[email protected]':
|
'@epic-web/[email protected]':
|
||||||
resolution: {integrity: sha512-lrTPqgvfFQtR/eY/qkIzp98OGdNJu0m5ji3q/nJI8v3SXkRKEnWiOxMmbvcSoAIzv/cGiuvRy57k4suKQSAdwA==}
|
resolution: {integrity: sha512-lrTPqgvfFQtR/eY/qkIzp98OGdNJu0m5ji3q/nJI8v3SXkRKEnWiOxMmbvcSoAIzv/cGiuvRy57k4suKQSAdwA==}
|
||||||
|
|
||||||
@@ -1492,6 +1499,12 @@ packages:
|
|||||||
resolution: {integrity: sha512-9QOtNffcOF/c1seMCDnjckb3R9WHcG34tky+FHpNKKCW0wc/scYLwMtO+ptyGUfMW0/b/n4qRiALlaFHc9Oj7Q==}
|
resolution: {integrity: sha512-9QOtNffcOF/c1seMCDnjckb3R9WHcG34tky+FHpNKKCW0wc/scYLwMtO+ptyGUfMW0/b/n4qRiALlaFHc9Oj7Q==}
|
||||||
engines: {node: '>= 10.0.0'}
|
engines: {node: '>= 10.0.0'}
|
||||||
|
|
||||||
|
'@napi-rs/[email protected]':
|
||||||
|
resolution: {integrity: sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow==}
|
||||||
|
peerDependencies:
|
||||||
|
'@emnapi/core': ^1.7.1
|
||||||
|
'@emnapi/runtime': ^1.7.1
|
||||||
|
|
||||||
'@nestjs/[email protected]':
|
'@nestjs/[email protected]':
|
||||||
resolution: {integrity: sha512-qeiTt2tv+e5QyDKqG8HlVZb2wx64FEaSGFJouqTSRs+kG44iTfl3xlz1XqVped+rihx4hmjWgL5gkhtdK3E6+Q==}
|
resolution: {integrity: sha512-qeiTt2tv+e5QyDKqG8HlVZb2wx64FEaSGFJouqTSRs+kG44iTfl3xlz1XqVped+rihx4hmjWgL5gkhtdK3E6+Q==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
@@ -1578,6 +1591,18 @@ packages:
|
|||||||
'@fastify/view':
|
'@fastify/view':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
|
'@nestjs/[email protected]':
|
||||||
|
resolution: {integrity: sha512-2qo8jtIwwwgkqAI1BtnJ02EaFLrRkKA39eYXS8IhZCHilhBHCWdjnJ5cLcFq4oF+s+KZ7LcLGD/3stxJy8ijzg==}
|
||||||
|
peerDependencies:
|
||||||
|
'@nestjs/common': ^11.0.0
|
||||||
|
'@nestjs/core': ^11.0.0
|
||||||
|
'@nestjs/platform-socket.io': ^11.0.0
|
||||||
|
reflect-metadata: ^0.1.12 || ^0.2.0
|
||||||
|
rxjs: ^7.1.0
|
||||||
|
peerDependenciesMeta:
|
||||||
|
'@nestjs/platform-socket.io':
|
||||||
|
optional: true
|
||||||
|
|
||||||
'@nivo/[email protected]':
|
'@nivo/[email protected]':
|
||||||
resolution: {integrity: sha512-jCuuXPbvpaqaz4xF7k5dv0OT2ubn5Nt0gWryuTe/8oVsC/9bzSuK8bM9vBty60m9tfO+X8vUYliuaCDwGksC2g==}
|
resolution: {integrity: sha512-jCuuXPbvpaqaz4xF7k5dv0OT2ubn5Nt0gWryuTe/8oVsC/9bzSuK8bM9vBty60m9tfO+X8vUYliuaCDwGksC2g==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
@@ -2058,6 +2083,9 @@ packages:
|
|||||||
'@orpc/[email protected]':
|
'@orpc/[email protected]':
|
||||||
resolution: {integrity: sha512-zN3Q+ajsoLoxLYmONc1RkDyhIg1wENolrTly8HfodcR3gYrfFRcGhUzShqa/KdG47mK49Nps8rdeeMj6NT8EYw==}
|
resolution: {integrity: sha512-zN3Q+ajsoLoxLYmONc1RkDyhIg1wENolrTly8HfodcR3gYrfFRcGhUzShqa/KdG47mK49Nps8rdeeMj6NT8EYw==}
|
||||||
|
|
||||||
|
'@oxc-project/[email protected]':
|
||||||
|
resolution: {integrity: sha512-aIYXQBo4lCbO4z0R3FHeucQHpF46l2LbMdxRvqvuRuW2OxdnSkcng5B8+K12spgLDj93rtN3+J2Vac/TIO+ciQ==}
|
||||||
|
|
||||||
'@pengx17/[email protected]':
|
'@pengx17/[email protected]':
|
||||||
resolution: {integrity: sha512-6w1XbUUZS431UaubbBQvKYDGs2MnTFxEWeJX1RjQXrxl0LrZULOarTogpda8UR9y7nAwtuEKm84OxWBrtH87ww==}
|
resolution: {integrity: sha512-6w1XbUUZS431UaubbBQvKYDGs2MnTFxEWeJX1RjQXrxl0LrZULOarTogpda8UR9y7nAwtuEKm84OxWBrtH87ww==}
|
||||||
|
|
||||||
@@ -2643,9 +2671,107 @@ packages:
|
|||||||
react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
|
react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
|
||||||
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
|
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
|
||||||
|
|
||||||
|
'@rolldown/[email protected]':
|
||||||
|
resolution: {integrity: sha512-s70pVGhw4zqGeFnXWvAzJDlvxhlRollagdCCKRgOsgUOH3N1l0LIxf83AtGzmb5SiVM4Hjl5HyarMRfdfj3DaQ==}
|
||||||
|
engines: {node: ^20.19.0 || >=22.12.0}
|
||||||
|
cpu: [arm64]
|
||||||
|
os: [android]
|
||||||
|
|
||||||
|
'@rolldown/[email protected]':
|
||||||
|
resolution: {integrity: sha512-4ksWc9n0mhlZpZ9PMZgTGjeOPRu8MB1Z3Tz0Mo02eWfWCHMW1zN82Qz/pL/rC+yQa+8ZnutMF0JjJe7PjwasYw==}
|
||||||
|
engines: {node: ^20.19.0 || >=22.12.0}
|
||||||
|
cpu: [arm64]
|
||||||
|
os: [darwin]
|
||||||
|
|
||||||
|
'@rolldown/[email protected]':
|
||||||
|
resolution: {integrity: sha512-SUSDOI6WwUVNcWxd02QEBjLdY1VPHvlEkw6T/8nYG322iYWCTxRb1vzk4E+mWWYehTp7ERibq54LSJGjmouOsw==}
|
||||||
|
engines: {node: ^20.19.0 || >=22.12.0}
|
||||||
|
cpu: [x64]
|
||||||
|
os: [darwin]
|
||||||
|
|
||||||
|
'@rolldown/[email protected]':
|
||||||
|
resolution: {integrity: sha512-hwnz3nw9dbJ05EDO/PvcjaaewqqDy7Y1rn1UO81l8iIK1GjenME75dl16ajbvSSMfv66WXSRCYKIqfgq2KCfxw==}
|
||||||
|
engines: {node: ^20.19.0 || >=22.12.0}
|
||||||
|
cpu: [x64]
|
||||||
|
os: [freebsd]
|
||||||
|
|
||||||
|
'@rolldown/[email protected]':
|
||||||
|
resolution: {integrity: sha512-IS+W7epTcwANmFSQFrS1SivEXHtl1JtuQA9wlxrZTcNi6mx+FDOYrakGevvvTwgj2JvWiK8B29/qD9BELZPyXQ==}
|
||||||
|
engines: {node: ^20.19.0 || >=22.12.0}
|
||||||
|
cpu: [arm]
|
||||||
|
os: [linux]
|
||||||
|
|
||||||
|
'@rolldown/[email protected]':
|
||||||
|
resolution: {integrity: sha512-e6usGaHKW5BMNZOymS1UcEYGowQMWcgZ71Z17Sl/h2+ZziNJ1a9n3Zvcz6LdRyIW5572wBCTH/Z+bKuZouGk9Q==}
|
||||||
|
engines: {node: ^20.19.0 || >=22.12.0}
|
||||||
|
cpu: [arm64]
|
||||||
|
os: [linux]
|
||||||
|
libc: [glibc]
|
||||||
|
|
||||||
|
'@rolldown/[email protected]':
|
||||||
|
resolution: {integrity: sha512-b/CgbwAJpmrRLp02RPfhbudf5tZnN9nsPWK82znefso832etkem8H7FSZwxrOI9djcdTP7U6YfNhbRnh7djErg==}
|
||||||
|
engines: {node: ^20.19.0 || >=22.12.0}
|
||||||
|
cpu: [arm64]
|
||||||
|
os: [linux]
|
||||||
|
libc: [musl]
|
||||||
|
|
||||||
|
'@rolldown/[email protected]':
|
||||||
|
resolution: {integrity: sha512-4EII1iNGRUN5WwGbF/kOh/EIkoDN9HsupgLQoXfY+D1oyJm7/F4t5PYU5n8SWZgG0FEwakyM8pGgwcBYruGTlA==}
|
||||||
|
engines: {node: ^20.19.0 || >=22.12.0}
|
||||||
|
cpu: [ppc64]
|
||||||
|
os: [linux]
|
||||||
|
libc: [glibc]
|
||||||
|
|
||||||
|
'@rolldown/[email protected]':
|
||||||
|
resolution: {integrity: sha512-AH8oq3XqQo4IibpVXvPeLDI5pzkpYn0WiZAfT05kFzoJ6tQNzwRdDYQ45M8I/gslbodRZwW8uxLhbSBbkv96rA==}
|
||||||
|
engines: {node: ^20.19.0 || >=22.12.0}
|
||||||
|
cpu: [s390x]
|
||||||
|
os: [linux]
|
||||||
|
libc: [glibc]
|
||||||
|
|
||||||
|
'@rolldown/[email protected]':
|
||||||
|
resolution: {integrity: sha512-cLnjV3xfo7KslbU41Z7z8BH/E1y5mzUYzAqih1d1MDaIGZRCMqTijqLv76/P7fyHuvUcfGsIpqCdddbxLLK9rA==}
|
||||||
|
engines: {node: ^20.19.0 || >=22.12.0}
|
||||||
|
cpu: [x64]
|
||||||
|
os: [linux]
|
||||||
|
libc: [glibc]
|
||||||
|
|
||||||
|
'@rolldown/[email protected]':
|
||||||
|
resolution: {integrity: sha512-0phclDw1spsL7dUB37sIARuis2tAgomCJXAHZlpt8PXZ4Ba0dRP1e+66lsRqrfhISeN9bEGNjQs+T/Fbd7oYGw==}
|
||||||
|
engines: {node: ^20.19.0 || >=22.12.0}
|
||||||
|
cpu: [x64]
|
||||||
|
os: [linux]
|
||||||
|
libc: [musl]
|
||||||
|
|
||||||
|
'@rolldown/[email protected]':
|
||||||
|
resolution: {integrity: sha512-0ag/hEgXOwgw4t8QyQvUCxvEg+V0KBcA6YuOx9g0r02MprutRF5dyljgm3EmR02O292UX7UeS6HzWHAl6KgyhA==}
|
||||||
|
engines: {node: ^20.19.0 || >=22.12.0}
|
||||||
|
cpu: [arm64]
|
||||||
|
os: [openharmony]
|
||||||
|
|
||||||
|
'@rolldown/[email protected]':
|
||||||
|
resolution: {integrity: sha512-LEXei6vo0E5wTGwpkJ4KoT3OZJRnglwldt5ziLzOlc6qqb55z4tWNq2A+PFqCJuvWWdP53CVhG1Z9NtToDPJrA==}
|
||||||
|
engines: {node: ^20.19.0 || >=22.12.0}
|
||||||
|
cpu: [wasm32]
|
||||||
|
|
||||||
|
'@rolldown/[email protected]':
|
||||||
|
resolution: {integrity: sha512-gUmyzBl3SPMa6hrqFUth9sVfcLBlYsbMzBx5PlexMroZStgzGqlZ26pYG89rBb45Mnia+oil6YAIFeEWGWhoZA==}
|
||||||
|
engines: {node: ^20.19.0 || >=22.12.0}
|
||||||
|
cpu: [arm64]
|
||||||
|
os: [win32]
|
||||||
|
|
||||||
|
'@rolldown/[email protected]':
|
||||||
|
resolution: {integrity: sha512-3hkiolcUAvPB9FLb3UZdfjVVNWherN1f/skkGWJP/fgSQhYUZpSIRr0/I8ZK9TkF3F7kxvJAk0+IcKvPHk9qQg==}
|
||||||
|
engines: {node: ^20.19.0 || >=22.12.0}
|
||||||
|
cpu: [x64]
|
||||||
|
os: [win32]
|
||||||
|
|
||||||
'@rolldown/[email protected]':
|
'@rolldown/[email protected]':
|
||||||
resolution: {integrity: sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==}
|
resolution: {integrity: sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==}
|
||||||
|
|
||||||
|
'@rolldown/[email protected]':
|
||||||
|
resolution: {integrity: sha512-n8iosDOt6Ig1UhJ2AYqoIhHWh/isz0xpicHTzpKBeotdVsTEcxsSA/i3EVM7gQAj0rU27OLAxCjzlj15IWY7bg==}
|
||||||
|
|
||||||
'@rollup/[email protected]':
|
'@rollup/[email protected]':
|
||||||
resolution: {integrity: sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==}
|
resolution: {integrity: sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==}
|
||||||
engines: {node: '>=14.0.0'}
|
engines: {node: '>=14.0.0'}
|
||||||
@@ -3343,6 +3469,9 @@ packages:
|
|||||||
'@tsconfig/[email protected]':
|
'@tsconfig/[email protected]':
|
||||||
resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==}
|
resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==}
|
||||||
|
|
||||||
|
'@tybys/[email protected]':
|
||||||
|
resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==}
|
||||||
|
|
||||||
'@types/[email protected]':
|
'@types/[email protected]':
|
||||||
resolution: {integrity: sha512-G+n6DgZTZFOteITE30LnWj+HRVIGr7wMlAiLWOO02uJFWVEitaPU9JVXm9wJokkgshBawb2O1OykdcsmkkZfgg==}
|
resolution: {integrity: sha512-G+n6DgZTZFOteITE30LnWj+HRVIGr7wMlAiLWOO02uJFWVEitaPU9JVXm9wJokkgshBawb2O1OykdcsmkkZfgg==}
|
||||||
|
|
||||||
@@ -4814,8 +4943,8 @@ packages:
|
|||||||
resolution: {integrity: sha512-EYj1cm1nZoVHmIIx3o0aKt784lxdEpJnXbEnyypklUCnglqSb7ni+1xi1Vp/gtrGS/mzIxnWBT+x5fIfuDjhvA==}
|
resolution: {integrity: sha512-EYj1cm1nZoVHmIIx3o0aKt784lxdEpJnXbEnyypklUCnglqSb7ni+1xi1Vp/gtrGS/mzIxnWBT+x5fIfuDjhvA==}
|
||||||
engines: {node: '>=14.0.0'}
|
engines: {node: '>=14.0.0'}
|
||||||
|
|
||||||
electron@39.8.9:
|
electron@41.3.0:
|
||||||
resolution: {integrity: sha512-0zgNu0MmWR/kzFm+B+LlvpLOX8l3wt1z+BJIYv2Uxc2bEqWBT3jNsX1IhPVP5OJijjZO5ewCOIy0n/bsfJfjdw==}
|
resolution: {integrity: sha512-2Q5aeocmFdeheZGDUTrAvSR3t+n0c3d104AJWWEnt7syJU0tE4VdibMYaPtQ47QuXSoUf0/xSsfUUvu/uSXIfg==}
|
||||||
engines: {node: '>= 12.20.55'}
|
engines: {node: '>= 12.20.55'}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
@@ -6568,9 +6697,9 @@ packages:
|
|||||||
[email protected]:
|
[email protected]:
|
||||||
resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==}
|
resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==}
|
||||||
|
|
||||||
node-abi@3.89.0:
|
node-abi@4.28.0:
|
||||||
resolution: {integrity: sha512-6u9UwL0HlAl21+agMN3YAMXcKByMqwGx+pq+P76vii5f7hTPtKDp08/H9py6DY+cfDw7kQNTGEj/rly3IgbNQA==}
|
resolution: {integrity: sha512-Qfp5XZL1cJDOabOT8H5gnqMTmM4NjvYzHp4I/Kt/Sl76OVkOBBHRFlPspGV0hYvMoqQsypFjT/Yp7Km0beXW9g==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=22.12.0'}
|
||||||
|
|
||||||
[email protected]:
|
[email protected]:
|
||||||
resolution: {integrity: sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==}
|
resolution: {integrity: sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==}
|
||||||
@@ -7489,6 +7618,11 @@ packages:
|
|||||||
resolution: {integrity: sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==}
|
resolution: {integrity: sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==}
|
||||||
engines: {node: '>=8.0'}
|
engines: {node: '>=8.0'}
|
||||||
|
|
||||||
|
[email protected]:
|
||||||
|
resolution: {integrity: sha512-ZrT53oAKrtA4+YtBWPQbtPOxIbVDbxT0orcYERKd63VJTF13zPcgXTvD4843L8pcsI7M6MErt8QtON6lrB9tyA==}
|
||||||
|
engines: {node: ^20.19.0 || >=22.12.0}
|
||||||
|
hasBin: true
|
||||||
|
|
||||||
[email protected]:
|
[email protected]:
|
||||||
resolution: {integrity: sha512-J9qZyW++QK/09NyN/zeO0dG/1GdGfyp9lV8ajHnRVLfo/uFsbji5mHnDgn/qYdUHyCkM2N+8VyspgZclfAh0eQ==}
|
resolution: {integrity: sha512-J9qZyW++QK/09NyN/zeO0dG/1GdGfyp9lV8ajHnRVLfo/uFsbji5mHnDgn/qYdUHyCkM2N+8VyspgZclfAh0eQ==}
|
||||||
engines: {node: '>=18.0.0', npm: '>=8.0.0'}
|
engines: {node: '>=18.0.0', npm: '>=8.0.0'}
|
||||||
@@ -8379,31 +8513,34 @@ packages:
|
|||||||
peerDependencies:
|
peerDependencies:
|
||||||
vite: '*'
|
vite: '*'
|
||||||
|
|
||||||
vite@6.4.2:
|
vite@8.0.10:
|
||||||
resolution: {integrity: sha512-2N/55r4JDJ4gdrCvGgINMy+HH3iRpNIz8K6SFwVsA+JbQScLiC+clmAxBgwiSPgcG9U15QmvqCGWzMbqda5zGQ==}
|
resolution: {integrity: sha512-rZuUu9j6J5uotLDs+cAA4O5H4K1SfPliUlQwqa6YEwSrWDZzP4rhm00oJR5snMewjxF5V/K3D4kctsUTsIU9Mw==}
|
||||||
engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0}
|
engines: {node: ^20.19.0 || >=22.12.0}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
'@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0
|
'@types/node': ^20.19.0 || >=22.12.0
|
||||||
|
'@vitejs/devtools': ^0.1.0
|
||||||
|
esbuild: ^0.25.0
|
||||||
jiti: '>=1.21.0'
|
jiti: '>=1.21.0'
|
||||||
less: '*'
|
less: ^4.0.0
|
||||||
lightningcss: ^1.21.0
|
sass: ^1.70.0
|
||||||
sass: '*'
|
sass-embedded: ^1.70.0
|
||||||
sass-embedded: '*'
|
stylus: '>=0.54.8'
|
||||||
stylus: '*'
|
sugarss: ^5.0.0
|
||||||
sugarss: '*'
|
|
||||||
terser: ^5.16.0
|
terser: ^5.16.0
|
||||||
tsx: ^4.8.1
|
tsx: ^4.8.1
|
||||||
yaml: ^2.4.2
|
yaml: ^2.4.2
|
||||||
peerDependenciesMeta:
|
peerDependenciesMeta:
|
||||||
'@types/node':
|
'@types/node':
|
||||||
optional: true
|
optional: true
|
||||||
|
'@vitejs/devtools':
|
||||||
|
optional: true
|
||||||
|
esbuild:
|
||||||
|
optional: true
|
||||||
jiti:
|
jiti:
|
||||||
optional: true
|
optional: true
|
||||||
less:
|
less:
|
||||||
optional: true
|
optional: true
|
||||||
lightningcss:
|
|
||||||
optional: true
|
|
||||||
sass:
|
sass:
|
||||||
optional: true
|
optional: true
|
||||||
sass-embedded:
|
sass-embedded:
|
||||||
@@ -8992,9 +9129,9 @@ snapshots:
|
|||||||
ajv: 6.14.0
|
ajv: 6.14.0
|
||||||
ajv-keywords: 3.5.2([email protected])
|
ajv-keywords: 3.5.2([email protected])
|
||||||
|
|
||||||
'@electron-forge/[email protected](@swc/[email protected])([email protected])':
|
'@electron-forge/[email protected](@swc/[email protected])([email protected])([email protected])':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@electron-forge/core': 7.11.1(@swc/[email protected])([email protected])
|
'@electron-forge/core': 7.11.1(@swc/[email protected])([email protected])([email protected])
|
||||||
'@electron-forge/core-utils': 7.11.1
|
'@electron-forge/core-utils': 7.11.1
|
||||||
'@electron-forge/shared-types': 7.11.1
|
'@electron-forge/shared-types': 7.11.1
|
||||||
'@electron/get': 3.1.0
|
'@electron/get': 3.1.0
|
||||||
@@ -9032,7 +9169,7 @@ snapshots:
|
|||||||
- bluebird
|
- bluebird
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
'@electron-forge/[email protected](@swc/[email protected])([email protected])':
|
'@electron-forge/[email protected](@swc/[email protected])([email protected])([email protected])':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@electron-forge/core-utils': 7.11.1
|
'@electron-forge/core-utils': 7.11.1
|
||||||
'@electron-forge/maker-base': 7.11.1
|
'@electron-forge/maker-base': 7.11.1
|
||||||
@@ -9043,7 +9180,7 @@ snapshots:
|
|||||||
'@electron-forge/template-vite': 7.11.1
|
'@electron-forge/template-vite': 7.11.1
|
||||||
'@electron-forge/template-vite-typescript': 7.11.1
|
'@electron-forge/template-vite-typescript': 7.11.1
|
||||||
'@electron-forge/template-webpack': 7.11.1
|
'@electron-forge/template-webpack': 7.11.1
|
||||||
'@electron-forge/template-webpack-typescript': 7.11.1(@swc/[email protected])
|
'@electron-forge/template-webpack-typescript': 7.11.1(@swc/[email protected])([email protected])
|
||||||
'@electron-forge/tracer': 7.11.1
|
'@electron-forge/tracer': 7.11.1
|
||||||
'@electron/get': 3.1.0
|
'@electron/get': 3.1.0
|
||||||
'@electron/packager': 18.4.4
|
'@electron/packager': 18.4.4
|
||||||
@@ -9255,13 +9392,13 @@ snapshots:
|
|||||||
- bluebird
|
- bluebird
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
'@electron-forge/[email protected](@swc/[email protected])':
|
'@electron-forge/[email protected](@swc/[email protected])([email protected])':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@electron-forge/shared-types': 7.11.1
|
'@electron-forge/shared-types': 7.11.1
|
||||||
'@electron-forge/template-base': 7.11.1
|
'@electron-forge/template-base': 7.11.1
|
||||||
fs-extra: 10.1.0
|
fs-extra: 10.1.0
|
||||||
typescript: 5.4.5
|
typescript: 5.4.5
|
||||||
webpack: 5.106.2(@swc/[email protected])
|
webpack: 5.106.2(@swc/[email protected])([email protected])
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- '@swc/core'
|
- '@swc/core'
|
||||||
- bluebird
|
- bluebird
|
||||||
@@ -9412,7 +9549,7 @@ snapshots:
|
|||||||
detect-libc: 2.1.2
|
detect-libc: 2.1.2
|
||||||
fs-extra: 10.1.0
|
fs-extra: 10.1.0
|
||||||
got: 11.8.6
|
got: 11.8.6
|
||||||
node-abi: 3.89.0
|
node-abi: 4.28.0
|
||||||
node-api-version: 0.2.1
|
node-api-version: 0.2.1
|
||||||
ora: 5.4.1
|
ora: 5.4.1
|
||||||
read-binary-file-arch: 1.0.6
|
read-binary-file-arch: 1.0.6
|
||||||
@@ -9457,11 +9594,22 @@ snapshots:
|
|||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
|
'@emnapi/[email protected]':
|
||||||
|
dependencies:
|
||||||
|
'@emnapi/wasi-threads': 1.2.1
|
||||||
|
tslib: 2.8.1
|
||||||
|
optional: true
|
||||||
|
|
||||||
'@emnapi/[email protected]':
|
'@emnapi/[email protected]':
|
||||||
dependencies:
|
dependencies:
|
||||||
tslib: 2.8.1
|
tslib: 2.8.1
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
|
'@emnapi/[email protected]':
|
||||||
|
dependencies:
|
||||||
|
tslib: 2.8.1
|
||||||
|
optional: true
|
||||||
|
|
||||||
'@epic-web/[email protected]': {}
|
'@epic-web/[email protected]': {}
|
||||||
|
|
||||||
'@esbuild/[email protected]':
|
'@esbuild/[email protected]':
|
||||||
@@ -9673,6 +9821,7 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
'@grpc/proto-loader': 0.8.0
|
'@grpc/proto-loader': 0.8.0
|
||||||
'@js-sdsl/ordered-map': 4.4.2
|
'@js-sdsl/ordered-map': 4.4.2
|
||||||
|
optional: true
|
||||||
|
|
||||||
'@grpc/[email protected]':
|
'@grpc/[email protected]':
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -9680,6 +9829,7 @@ snapshots:
|
|||||||
long: 5.3.2
|
long: 5.3.2
|
||||||
protobufjs: 7.5.6
|
protobufjs: 7.5.6
|
||||||
yargs: 17.7.2
|
yargs: 17.7.2
|
||||||
|
optional: true
|
||||||
|
|
||||||
'@humanfs/[email protected]':
|
'@humanfs/[email protected]':
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -10014,7 +10164,8 @@ snapshots:
|
|||||||
'@jridgewell/resolve-uri': 3.1.2
|
'@jridgewell/resolve-uri': 3.1.2
|
||||||
'@jridgewell/sourcemap-codec': 1.5.5
|
'@jridgewell/sourcemap-codec': 1.5.5
|
||||||
|
|
||||||
'@js-sdsl/[email protected]': {}
|
'@js-sdsl/[email protected]':
|
||||||
|
optional: true
|
||||||
|
|
||||||
'@listr2/[email protected](@inquirer/[email protected])':
|
'@listr2/[email protected](@inquirer/[email protected])':
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -10040,6 +10191,13 @@ snapshots:
|
|||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
|
'@napi-rs/[email protected](@emnapi/[email protected])(@emnapi/[email protected])':
|
||||||
|
dependencies:
|
||||||
|
'@emnapi/core': 1.10.0
|
||||||
|
'@emnapi/runtime': 1.10.0
|
||||||
|
'@tybys/wasm-util': 0.10.1
|
||||||
|
optional: true
|
||||||
|
|
||||||
'@nestjs/[email protected]([email protected])([email protected])([email protected])([email protected])':
|
'@nestjs/[email protected]([email protected])([email protected])([email protected])([email protected])':
|
||||||
dependencies:
|
dependencies:
|
||||||
file-type: 21.3.4
|
file-type: 21.3.4
|
||||||
@@ -10055,7 +10213,7 @@ snapshots:
|
|||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
'@nestjs/[email protected](@nestjs/[email protected]([email protected])([email protected])([email protected])([email protected]))(@nestjs/[email protected])(@nestjs/[email protected])([email protected])([email protected])':
|
'@nestjs/[email protected](@nestjs/[email protected]([email protected])([email protected])([email protected])([email protected]))(@nestjs/[email protected])(@nestjs/[email protected])(@nestjs/[email protected])([email protected])([email protected])':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@nestjs/common': 11.1.19([email protected])([email protected])([email protected])([email protected])
|
'@nestjs/common': 11.1.19([email protected])([email protected])([email protected])([email protected])
|
||||||
'@nuxt/opencollective': 0.4.1
|
'@nuxt/opencollective': 0.4.1
|
||||||
@@ -10067,24 +10225,26 @@ snapshots:
|
|||||||
tslib: 2.8.1
|
tslib: 2.8.1
|
||||||
uid: 2.0.2
|
uid: 2.0.2
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@nestjs/microservices': 11.1.19(@grpc/[email protected])(@nestjs/[email protected]([email protected])([email protected])([email protected])([email protected]))(@nestjs/[email protected])([email protected])([email protected])
|
'@nestjs/microservices': 11.1.19(@grpc/[email protected])(@nestjs/[email protected]([email protected])([email protected])([email protected])([email protected]))(@nestjs/[email protected])(@nestjs/[email protected])([email protected])([email protected])
|
||||||
'@nestjs/platform-express': 11.1.19(@nestjs/[email protected]([email protected])([email protected])([email protected])([email protected]))(@nestjs/[email protected])
|
'@nestjs/platform-express': 11.1.19(@nestjs/[email protected]([email protected])([email protected])([email protected])([email protected]))(@nestjs/[email protected])
|
||||||
|
'@nestjs/websockets': 11.1.19(@nestjs/[email protected]([email protected])([email protected])([email protected])([email protected]))(@nestjs/[email protected])([email protected])([email protected])
|
||||||
|
|
||||||
'@nestjs/[email protected](@grpc/[email protected])(@nestjs/[email protected]([email protected])([email protected])([email protected])([email protected]))(@nestjs/[email protected])([email protected])([email protected])':
|
'@nestjs/[email protected](@grpc/[email protected])(@nestjs/[email protected]([email protected])([email protected])([email protected])([email protected]))(@nestjs/[email protected])(@nestjs/[email protected])([email protected])([email protected])':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@nestjs/common': 11.1.19([email protected])([email protected])([email protected])([email protected])
|
'@nestjs/common': 11.1.19([email protected])([email protected])([email protected])([email protected])
|
||||||
'@nestjs/core': 11.1.19(@nestjs/[email protected]([email protected])([email protected])([email protected])([email protected]))(@nestjs/[email protected])(@nestjs/[email protected])([email protected])([email protected])
|
'@nestjs/core': 11.1.19(@nestjs/[email protected]([email protected])([email protected])([email protected])([email protected]))(@nestjs/[email protected])(@nestjs/[email protected])(@nestjs/[email protected])([email protected])([email protected])
|
||||||
iterare: 1.2.1
|
iterare: 1.2.1
|
||||||
reflect-metadata: 0.2.2
|
reflect-metadata: 0.2.2
|
||||||
rxjs: 7.8.2
|
rxjs: 7.8.2
|
||||||
tslib: 2.8.1
|
tslib: 2.8.1
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@grpc/grpc-js': 1.14.3
|
'@grpc/grpc-js': 1.14.3
|
||||||
|
'@nestjs/websockets': 11.1.19(@nestjs/[email protected]([email protected])([email protected])([email protected])([email protected]))(@nestjs/[email protected])([email protected])([email protected])
|
||||||
|
|
||||||
'@nestjs/[email protected](@nestjs/[email protected]([email protected])([email protected])([email protected])([email protected]))(@nestjs/[email protected])':
|
'@nestjs/[email protected](@nestjs/[email protected]([email protected])([email protected])([email protected])([email protected]))(@nestjs/[email protected])':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@nestjs/common': 11.1.19([email protected])([email protected])([email protected])([email protected])
|
'@nestjs/common': 11.1.19([email protected])([email protected])([email protected])([email protected])
|
||||||
'@nestjs/core': 11.1.19(@nestjs/[email protected]([email protected])([email protected])([email protected])([email protected]))(@nestjs/[email protected])(@nestjs/[email protected])([email protected])([email protected])
|
'@nestjs/core': 11.1.19(@nestjs/[email protected]([email protected])([email protected])([email protected])([email protected]))(@nestjs/[email protected])(@nestjs/[email protected])(@nestjs/[email protected])([email protected])([email protected])
|
||||||
cors: 2.8.6
|
cors: 2.8.6
|
||||||
express: 5.2.1
|
express: 5.2.1
|
||||||
multer: 2.1.1
|
multer: 2.1.1
|
||||||
@@ -10098,7 +10258,7 @@ snapshots:
|
|||||||
'@fastify/cors': 11.2.0
|
'@fastify/cors': 11.2.0
|
||||||
'@fastify/formbody': 8.0.2
|
'@fastify/formbody': 8.0.2
|
||||||
'@nestjs/common': 11.1.19([email protected])([email protected])([email protected])([email protected])
|
'@nestjs/common': 11.1.19([email protected])([email protected])([email protected])([email protected])
|
||||||
'@nestjs/core': 11.1.19(@nestjs/[email protected]([email protected])([email protected])([email protected])([email protected]))(@nestjs/[email protected])(@nestjs/[email protected])([email protected])([email protected])
|
'@nestjs/core': 11.1.19(@nestjs/[email protected]([email protected])([email protected])([email protected])([email protected]))(@nestjs/[email protected])(@nestjs/[email protected])(@nestjs/[email protected])([email protected])([email protected])
|
||||||
fast-querystring: 1.1.2
|
fast-querystring: 1.1.2
|
||||||
fastify: 5.8.5
|
fastify: 5.8.5
|
||||||
fastify-plugin: 5.1.0
|
fastify-plugin: 5.1.0
|
||||||
@@ -10108,6 +10268,16 @@ snapshots:
|
|||||||
reusify: 1.1.0
|
reusify: 1.1.0
|
||||||
tslib: 2.8.1
|
tslib: 2.8.1
|
||||||
|
|
||||||
|
'@nestjs/[email protected](@nestjs/[email protected]([email protected])([email protected])([email protected])([email protected]))(@nestjs/[email protected])([email protected])([email protected])':
|
||||||
|
dependencies:
|
||||||
|
'@nestjs/common': 11.1.19([email protected])([email protected])([email protected])([email protected])
|
||||||
|
'@nestjs/core': 11.1.19(@nestjs/[email protected]([email protected])([email protected])([email protected])([email protected]))(@nestjs/[email protected])(@nestjs/[email protected])(@nestjs/[email protected])([email protected])([email protected])
|
||||||
|
iterare: 1.2.1
|
||||||
|
object-hash: 3.0.0
|
||||||
|
reflect-metadata: 0.2.2
|
||||||
|
rxjs: 7.8.2
|
||||||
|
tslib: 2.8.1
|
||||||
|
|
||||||
'@nivo/[email protected]([email protected]([email protected]))([email protected])':
|
'@nivo/[email protected]([email protected]([email protected]))([email protected])':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@nivo/colors': 0.99.0([email protected]([email protected]))([email protected])
|
'@nivo/colors': 0.99.0([email protected]([email protected]))([email protected])
|
||||||
@@ -10826,6 +10996,8 @@ snapshots:
|
|||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- '@opentelemetry/api'
|
- '@opentelemetry/api'
|
||||||
|
|
||||||
|
'@oxc-project/[email protected]': {}
|
||||||
|
|
||||||
'@pengx17/[email protected]([email protected])([email protected])':
|
'@pengx17/[email protected]([email protected])([email protected])':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@electron-forge/maker-base': 7.11.1
|
'@electron-forge/maker-base': 7.11.1
|
||||||
@@ -10867,28 +11039,38 @@ snapshots:
|
|||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
'@protobufjs/[email protected]': {}
|
'@protobufjs/[email protected]':
|
||||||
|
optional: true
|
||||||
|
|
||||||
'@protobufjs/[email protected]': {}
|
'@protobufjs/[email protected]':
|
||||||
|
optional: true
|
||||||
|
|
||||||
'@protobufjs/[email protected]': {}
|
'@protobufjs/[email protected]':
|
||||||
|
optional: true
|
||||||
|
|
||||||
'@protobufjs/[email protected]': {}
|
'@protobufjs/[email protected]':
|
||||||
|
optional: true
|
||||||
|
|
||||||
'@protobufjs/[email protected]':
|
'@protobufjs/[email protected]':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@protobufjs/aspromise': 1.1.2
|
'@protobufjs/aspromise': 1.1.2
|
||||||
'@protobufjs/inquire': 1.1.1
|
'@protobufjs/inquire': 1.1.1
|
||||||
|
optional: true
|
||||||
|
|
||||||
'@protobufjs/[email protected]': {}
|
'@protobufjs/[email protected]':
|
||||||
|
optional: true
|
||||||
|
|
||||||
'@protobufjs/[email protected]': {}
|
'@protobufjs/[email protected]':
|
||||||
|
optional: true
|
||||||
|
|
||||||
'@protobufjs/[email protected]': {}
|
'@protobufjs/[email protected]':
|
||||||
|
optional: true
|
||||||
|
|
||||||
'@protobufjs/[email protected]': {}
|
'@protobufjs/[email protected]':
|
||||||
|
optional: true
|
||||||
|
|
||||||
'@protobufjs/[email protected]': {}
|
'@protobufjs/[email protected]':
|
||||||
|
optional: true
|
||||||
|
|
||||||
'@radix-ui/[email protected]': {}
|
'@radix-ui/[email protected]': {}
|
||||||
|
|
||||||
@@ -11420,8 +11602,59 @@ snapshots:
|
|||||||
react: 19.2.5
|
react: 19.2.5
|
||||||
react-dom: 19.2.5([email protected])
|
react-dom: 19.2.5([email protected])
|
||||||
|
|
||||||
|
'@rolldown/[email protected]':
|
||||||
|
optional: true
|
||||||
|
|
||||||
|
'@rolldown/[email protected]':
|
||||||
|
optional: true
|
||||||
|
|
||||||
|
'@rolldown/[email protected]':
|
||||||
|
optional: true
|
||||||
|
|
||||||
|
'@rolldown/[email protected]':
|
||||||
|
optional: true
|
||||||
|
|
||||||
|
'@rolldown/[email protected]':
|
||||||
|
optional: true
|
||||||
|
|
||||||
|
'@rolldown/[email protected]':
|
||||||
|
optional: true
|
||||||
|
|
||||||
|
'@rolldown/[email protected]':
|
||||||
|
optional: true
|
||||||
|
|
||||||
|
'@rolldown/[email protected]':
|
||||||
|
optional: true
|
||||||
|
|
||||||
|
'@rolldown/[email protected]':
|
||||||
|
optional: true
|
||||||
|
|
||||||
|
'@rolldown/[email protected]':
|
||||||
|
optional: true
|
||||||
|
|
||||||
|
'@rolldown/[email protected]':
|
||||||
|
optional: true
|
||||||
|
|
||||||
|
'@rolldown/[email protected]':
|
||||||
|
optional: true
|
||||||
|
|
||||||
|
'@rolldown/[email protected]':
|
||||||
|
dependencies:
|
||||||
|
'@emnapi/core': 1.10.0
|
||||||
|
'@emnapi/runtime': 1.10.0
|
||||||
|
'@napi-rs/wasm-runtime': 1.1.4(@emnapi/[email protected])(@emnapi/[email protected])
|
||||||
|
optional: true
|
||||||
|
|
||||||
|
'@rolldown/[email protected]':
|
||||||
|
optional: true
|
||||||
|
|
||||||
|
'@rolldown/[email protected]':
|
||||||
|
optional: true
|
||||||
|
|
||||||
'@rolldown/[email protected]': {}
|
'@rolldown/[email protected]': {}
|
||||||
|
|
||||||
|
'@rolldown/[email protected]': {}
|
||||||
|
|
||||||
'@rollup/[email protected]([email protected])':
|
'@rollup/[email protected]([email protected])':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/estree': 1.0.8
|
'@types/estree': 1.0.8
|
||||||
@@ -11926,12 +12159,12 @@ snapshots:
|
|||||||
'@tailwindcss/oxide-win32-arm64-msvc': 4.2.4
|
'@tailwindcss/oxide-win32-arm64-msvc': 4.2.4
|
||||||
'@tailwindcss/oxide-win32-x64-msvc': 4.2.4
|
'@tailwindcss/oxide-win32-x64-msvc': 4.2.4
|
||||||
|
|
||||||
'@tailwindcss/[email protected](vite@6.4.2(@types/[email protected])([email protected].1)([email protected])([email protected])([email protected])([email protected]))':
|
'@tailwindcss/[email protected](vite@8.0.10(@types/[email protected])([email protected].12)([email protected])([email protected])([email protected])([email protected]))':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@tailwindcss/node': 4.2.4
|
'@tailwindcss/node': 4.2.4
|
||||||
'@tailwindcss/oxide': 4.2.4
|
'@tailwindcss/oxide': 4.2.4
|
||||||
tailwindcss: 4.2.4
|
tailwindcss: 4.2.4
|
||||||
vite: 6.4.2(@types/[email protected])([email protected].1)([email protected])([email protected])([email protected])([email protected])
|
vite: 8.0.10(@types/[email protected])([email protected].12)([email protected])([email protected])([email protected])([email protected])
|
||||||
|
|
||||||
'@tanstack/[email protected]': {}
|
'@tanstack/[email protected]': {}
|
||||||
|
|
||||||
@@ -11997,7 +12230,7 @@ snapshots:
|
|||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
'@tanstack/[email protected](@tanstack/[email protected]([email protected]([email protected]))([email protected]))(vite@6.4.2(@types/[email protected])([email protected].1)([email protected])([email protected])([email protected])([email protected]))([email protected](@swc/[email protected]))':
|
'@tanstack/[email protected](@tanstack/[email protected]([email protected]([email protected]))([email protected]))(vite@8.0.10(@types/[email protected])([email protected].12)([email protected])([email protected])([email protected])([email protected]))([email protected](@swc/[email protected])([email protected]))':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/core': 7.29.0
|
'@babel/core': 7.29.0
|
||||||
'@babel/plugin-syntax-jsx': 7.28.6(@babel/[email protected])
|
'@babel/plugin-syntax-jsx': 7.28.6(@babel/[email protected])
|
||||||
@@ -12014,8 +12247,8 @@ snapshots:
|
|||||||
zod: 3.25.76
|
zod: 3.25.76
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@tanstack/react-router': 1.168.23([email protected]([email protected]))([email protected])
|
'@tanstack/react-router': 1.168.23([email protected]([email protected]))([email protected])
|
||||||
vite: 6.4.2(@types/[email protected])([email protected].1)([email protected])([email protected])([email protected])([email protected])
|
vite: 8.0.10(@types/[email protected])([email protected].12)([email protected])([email protected])([email protected])([email protected])
|
||||||
webpack: 5.106.2(@swc/[email protected])
|
webpack: 5.106.2(@swc/[email protected])([email protected])
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
@@ -12090,6 +12323,11 @@ snapshots:
|
|||||||
|
|
||||||
'@tsconfig/[email protected]': {}
|
'@tsconfig/[email protected]': {}
|
||||||
|
|
||||||
|
'@tybys/[email protected]':
|
||||||
|
dependencies:
|
||||||
|
tslib: 2.8.1
|
||||||
|
optional: true
|
||||||
|
|
||||||
'@types/[email protected]':
|
'@types/[email protected]':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/node': 24.12.2
|
'@types/node': 24.12.2
|
||||||
@@ -12375,7 +12613,7 @@ snapshots:
|
|||||||
'@typescript-eslint/types': 8.59.1
|
'@typescript-eslint/types': 8.59.1
|
||||||
eslint-visitor-keys: 5.0.1
|
eslint-visitor-keys: 5.0.1
|
||||||
|
|
||||||
'@vitejs/[email protected](vite@6.4.2(@types/[email protected])([email protected].1)([email protected])([email protected])([email protected])([email protected]))':
|
'@vitejs/[email protected](vite@8.0.10(@types/[email protected])([email protected].12)([email protected])([email protected])([email protected])([email protected]))':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/core': 7.29.0
|
'@babel/core': 7.29.0
|
||||||
'@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/[email protected])
|
'@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/[email protected])
|
||||||
@@ -12383,7 +12621,7 @@ snapshots:
|
|||||||
'@rolldown/pluginutils': 1.0.0-beta.27
|
'@rolldown/pluginutils': 1.0.0-beta.27
|
||||||
'@types/babel__core': 7.20.5
|
'@types/babel__core': 7.20.5
|
||||||
react-refresh: 0.17.0
|
react-refresh: 0.17.0
|
||||||
vite: 6.4.2(@types/[email protected])([email protected].1)([email protected])([email protected])([email protected])([email protected])
|
vite: 8.0.10(@types/[email protected])([email protected].12)([email protected])([email protected])([email protected])([email protected])
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
@@ -12396,13 +12634,13 @@ snapshots:
|
|||||||
chai: 6.2.2
|
chai: 6.2.2
|
||||||
tinyrainbow: 3.1.0
|
tinyrainbow: 3.1.0
|
||||||
|
|
||||||
'@vitest/[email protected](vite@6.4.2(@types/[email protected])([email protected].1)([email protected])([email protected])([email protected])([email protected]))':
|
'@vitest/[email protected](vite@8.0.10(@types/[email protected])([email protected].12)([email protected])([email protected])([email protected])([email protected]))':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@vitest/spy': 4.1.5
|
'@vitest/spy': 4.1.5
|
||||||
estree-walker: 3.0.3
|
estree-walker: 3.0.3
|
||||||
magic-string: 0.30.21
|
magic-string: 0.30.21
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
vite: 6.4.2(@types/[email protected])([email protected].1)([email protected])([email protected])([email protected])([email protected])
|
vite: 8.0.10(@types/[email protected])([email protected].12)([email protected])([email protected])([email protected])([email protected])
|
||||||
|
|
||||||
'@vitest/[email protected]':
|
'@vitest/[email protected]':
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -13786,10 +14024,10 @@ snapshots:
|
|||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
electron@39.8.9:
|
electron@41.3.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@electron/get': 2.0.3
|
'@electron/get': 2.0.3
|
||||||
'@types/node': 22.19.17
|
'@types/node': 24.12.2
|
||||||
extract-zip: 2.0.1
|
extract-zip: 2.0.1
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
@@ -15424,7 +15662,8 @@ snapshots:
|
|||||||
|
|
||||||
[email protected]: {}
|
[email protected]: {}
|
||||||
|
|
||||||
[email protected]: {}
|
[email protected]:
|
||||||
|
optional: true
|
||||||
|
|
||||||
[email protected]: {}
|
[email protected]: {}
|
||||||
|
|
||||||
@@ -15474,7 +15713,8 @@ snapshots:
|
|||||||
|
|
||||||
[email protected]: {}
|
[email protected]: {}
|
||||||
|
|
||||||
[email protected]: {}
|
[email protected]:
|
||||||
|
optional: true
|
||||||
|
|
||||||
[email protected]:
|
[email protected]:
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -15736,7 +15976,7 @@ snapshots:
|
|||||||
|
|
||||||
[email protected]: {}
|
[email protected]: {}
|
||||||
|
|
||||||
node-abi@3.89.0:
|
node-abi@4.28.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
semver: 7.7.4
|
semver: 7.7.4
|
||||||
|
|
||||||
@@ -16158,7 +16398,7 @@ snapshots:
|
|||||||
minimist: 1.2.8
|
minimist: 1.2.8
|
||||||
mkdirp-classic: 0.5.3
|
mkdirp-classic: 0.5.3
|
||||||
napi-build-utils: 2.0.0
|
napi-build-utils: 2.0.0
|
||||||
node-abi: 3.89.0
|
node-abi: 4.28.0
|
||||||
pump: 3.0.4
|
pump: 3.0.4
|
||||||
rc: 1.2.8
|
rc: 1.2.8
|
||||||
simple-get: 4.0.1
|
simple-get: 4.0.1
|
||||||
@@ -16226,6 +16466,7 @@ snapshots:
|
|||||||
'@protobufjs/utf8': 1.1.1
|
'@protobufjs/utf8': 1.1.1
|
||||||
'@types/node': 24.12.2
|
'@types/node': 24.12.2
|
||||||
long: 5.3.2
|
long: 5.3.2
|
||||||
|
optional: true
|
||||||
|
|
||||||
[email protected]:
|
[email protected]:
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -16540,6 +16781,27 @@ snapshots:
|
|||||||
sprintf-js: 1.1.3
|
sprintf-js: 1.1.3
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
|
[email protected]:
|
||||||
|
dependencies:
|
||||||
|
'@oxc-project/types': 0.127.0
|
||||||
|
'@rolldown/pluginutils': 1.0.0-rc.17
|
||||||
|
optionalDependencies:
|
||||||
|
'@rolldown/binding-android-arm64': 1.0.0-rc.17
|
||||||
|
'@rolldown/binding-darwin-arm64': 1.0.0-rc.17
|
||||||
|
'@rolldown/binding-darwin-x64': 1.0.0-rc.17
|
||||||
|
'@rolldown/binding-freebsd-x64': 1.0.0-rc.17
|
||||||
|
'@rolldown/binding-linux-arm-gnueabihf': 1.0.0-rc.17
|
||||||
|
'@rolldown/binding-linux-arm64-gnu': 1.0.0-rc.17
|
||||||
|
'@rolldown/binding-linux-arm64-musl': 1.0.0-rc.17
|
||||||
|
'@rolldown/binding-linux-ppc64-gnu': 1.0.0-rc.17
|
||||||
|
'@rolldown/binding-linux-s390x-gnu': 1.0.0-rc.17
|
||||||
|
'@rolldown/binding-linux-x64-gnu': 1.0.0-rc.17
|
||||||
|
'@rolldown/binding-linux-x64-musl': 1.0.0-rc.17
|
||||||
|
'@rolldown/binding-openharmony-arm64': 1.0.0-rc.17
|
||||||
|
'@rolldown/binding-wasm32-wasi': 1.0.0-rc.17
|
||||||
|
'@rolldown/binding-win32-arm64-msvc': 1.0.0-rc.17
|
||||||
|
'@rolldown/binding-win32-x64-msvc': 1.0.0-rc.17
|
||||||
|
|
||||||
[email protected]:
|
[email protected]:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/estree': 1.0.8
|
'@types/estree': 1.0.8
|
||||||
@@ -16570,6 +16832,7 @@ snapshots:
|
|||||||
'@rollup/rollup-win32-x64-gnu': 4.60.2
|
'@rollup/rollup-win32-x64-gnu': 4.60.2
|
||||||
'@rollup/rollup-win32-x64-msvc': 4.60.2
|
'@rollup/rollup-win32-x64-msvc': 4.60.2
|
||||||
fsevents: 2.3.3
|
fsevents: 2.3.3
|
||||||
|
optional: true
|
||||||
|
|
||||||
[email protected]:
|
[email protected]:
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -17182,15 +17445,16 @@ snapshots:
|
|||||||
type-fest: 2.19.0
|
type-fest: 2.19.0
|
||||||
unique-string: 3.0.0
|
unique-string: 3.0.0
|
||||||
|
|
||||||
[email protected](@swc/[email protected])([email protected](@swc/[email protected])):
|
[email protected](@swc/[email protected])([email protected])([email protected](@swc/[email protected])([email protected])):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@jridgewell/trace-mapping': 0.3.31
|
'@jridgewell/trace-mapping': 0.3.31
|
||||||
jest-worker: 27.5.1
|
jest-worker: 27.5.1
|
||||||
schema-utils: 4.3.3
|
schema-utils: 4.3.3
|
||||||
terser: 5.46.1
|
terser: 5.46.1
|
||||||
webpack: 5.106.2(@swc/[email protected])
|
webpack: 5.106.2(@swc/[email protected])([email protected])
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@swc/core': 1.15.30
|
'@swc/core': 1.15.30
|
||||||
|
esbuild: 0.25.12
|
||||||
|
|
||||||
[email protected]:
|
[email protected]:
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -17572,37 +17836,36 @@ snapshots:
|
|||||||
extsprintf: 1.4.1
|
extsprintf: 1.4.1
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
[email protected]([email protected])(vite@6.4.2(@types/[email protected])([email protected].1)([email protected])([email protected])([email protected])([email protected])):
|
[email protected]([email protected])(vite@8.0.10(@types/[email protected])([email protected].12)([email protected])([email protected])([email protected])([email protected])):
|
||||||
dependencies:
|
dependencies:
|
||||||
debug: 4.4.3
|
debug: 4.4.3
|
||||||
globrex: 0.1.2
|
globrex: 0.1.2
|
||||||
tsconfck: 3.1.6([email protected])
|
tsconfck: 3.1.6([email protected])
|
||||||
vite: 6.4.2(@types/[email protected])([email protected].1)([email protected])([email protected])([email protected])([email protected])
|
vite: 8.0.10(@types/[email protected])([email protected].12)([email protected])([email protected])([email protected])([email protected])
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
- typescript
|
- typescript
|
||||||
|
|
||||||
vite@6.4.2(@types/[email protected])([email protected].1)([email protected])([email protected])([email protected])([email protected]):
|
vite@8.0.10(@types/[email protected])([email protected].12)([email protected])([email protected])([email protected])([email protected]):
|
||||||
dependencies:
|
dependencies:
|
||||||
esbuild: 0.25.12
|
lightningcss: 1.32.0
|
||||||
fdir: 6.5.0([email protected])
|
|
||||||
picomatch: 4.0.4
|
picomatch: 4.0.4
|
||||||
postcss: 8.5.10
|
postcss: 8.5.10
|
||||||
rollup: 4.60.2
|
rolldown: 1.0.0-rc.17
|
||||||
tinyglobby: 0.2.16
|
tinyglobby: 0.2.16
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@types/node': 24.12.2
|
'@types/node': 24.12.2
|
||||||
|
esbuild: 0.25.12
|
||||||
fsevents: 2.3.3
|
fsevents: 2.3.3
|
||||||
jiti: 2.6.1
|
jiti: 2.6.1
|
||||||
lightningcss: 1.32.0
|
|
||||||
terser: 5.46.1
|
terser: 5.46.1
|
||||||
tsx: 4.21.0
|
tsx: 4.21.0
|
||||||
yaml: 2.8.3
|
yaml: 2.8.3
|
||||||
|
|
||||||
[email protected](@opentelemetry/[email protected])(@types/[email protected])([email protected])([email protected])(vite@6.4.2(@types/[email protected])([email protected].1)([email protected])([email protected])([email protected])([email protected])):
|
[email protected](@opentelemetry/[email protected])(@types/[email protected])([email protected])([email protected])(vite@8.0.10(@types/[email protected])([email protected].12)([email protected])([email protected])([email protected])([email protected])):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@vitest/expect': 4.1.5
|
'@vitest/expect': 4.1.5
|
||||||
'@vitest/mocker': 4.1.5(vite@6.4.2(@types/[email protected])([email protected].1)([email protected])([email protected])([email protected])([email protected]))
|
'@vitest/mocker': 4.1.5(vite@8.0.10(@types/[email protected])([email protected].12)([email protected])([email protected])([email protected])([email protected]))
|
||||||
'@vitest/pretty-format': 4.1.5
|
'@vitest/pretty-format': 4.1.5
|
||||||
'@vitest/runner': 4.1.5
|
'@vitest/runner': 4.1.5
|
||||||
'@vitest/snapshot': 4.1.5
|
'@vitest/snapshot': 4.1.5
|
||||||
@@ -17619,7 +17882,7 @@ snapshots:
|
|||||||
tinyexec: 1.1.1
|
tinyexec: 1.1.1
|
||||||
tinyglobby: 0.2.16
|
tinyglobby: 0.2.16
|
||||||
tinyrainbow: 3.1.0
|
tinyrainbow: 3.1.0
|
||||||
vite: 6.4.2(@types/[email protected])([email protected].1)([email protected])([email protected])([email protected])([email protected])
|
vite: 8.0.10(@types/[email protected])([email protected].12)([email protected])([email protected])([email protected])([email protected])
|
||||||
why-is-node-running: 2.3.0
|
why-is-node-running: 2.3.0
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@opentelemetry/api': 1.9.1
|
'@opentelemetry/api': 1.9.1
|
||||||
@@ -17656,7 +17919,7 @@ snapshots:
|
|||||||
|
|
||||||
[email protected]: {}
|
[email protected]: {}
|
||||||
|
|
||||||
[email protected](@swc/[email protected]):
|
[email protected](@swc/[email protected])([email protected]):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/eslint-scope': 3.7.7
|
'@types/eslint-scope': 3.7.7
|
||||||
'@types/estree': 1.0.8
|
'@types/estree': 1.0.8
|
||||||
@@ -17679,7 +17942,7 @@ snapshots:
|
|||||||
neo-async: 2.6.2
|
neo-async: 2.6.2
|
||||||
schema-utils: 4.3.3
|
schema-utils: 4.3.3
|
||||||
tapable: 2.3.3
|
tapable: 2.3.3
|
||||||
terser-webpack-plugin: 5.4.0(@swc/[email protected])([email protected](@swc/[email protected]))
|
terser-webpack-plugin: 5.4.0(@swc/[email protected])([email protected])([email protected](@swc/[email protected])([email protected]))
|
||||||
watchpack: 2.5.1
|
watchpack: 2.5.1
|
||||||
webpack-sources: 3.3.4
|
webpack-sources: 3.3.4
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
|
|||||||
@@ -0,0 +1,619 @@
|
|||||||
|
/**
|
||||||
|
* Cross-platform development environment setup for Gemini Nexus.
|
||||||
|
*
|
||||||
|
* Detects and installs native build toolchains required by better-sqlite3,
|
||||||
|
* keytar, and other native Node.js modules used in this Electron project.
|
||||||
|
*
|
||||||
|
* Platforms:
|
||||||
|
* - Windows → Visual Studio 2022 Build Tools (C++ workload)
|
||||||
|
* - macOS → Xcode Command Line Tools
|
||||||
|
* - Ubuntu → build-essential, python3, libsecret-1-dev
|
||||||
|
* - Manjaro/Arch → base-devel, python, libsecret
|
||||||
|
*
|
||||||
|
* Usage:
|
||||||
|
* node scripts/setup-dev.js # auto-detect and install/guide
|
||||||
|
* node scripts/setup-dev.js --check-only # only verify, don't install
|
||||||
|
*/
|
||||||
|
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
const { execSync, spawnSync } = require('child_process');
|
||||||
|
const fs = require('fs');
|
||||||
|
const os = require('os');
|
||||||
|
const path = require('path');
|
||||||
|
|
||||||
|
// ─── Terminal Color Helpers ─────────────────────────────────────────────────
|
||||||
|
|
||||||
|
const RESET = '\x1b[0m';
|
||||||
|
const BOLD = '\x1b[1m';
|
||||||
|
const DIM = '\x1b[2m';
|
||||||
|
const RED = '\x1b[31m';
|
||||||
|
const GREEN = '\x1b[32m';
|
||||||
|
const YELLOW = '\x1b[33m';
|
||||||
|
const CYAN = '\x1b[36m';
|
||||||
|
const MAGENTA = '\x1b[35m';
|
||||||
|
|
||||||
|
// Disable colors if NO_COLOR is set or output is piped
|
||||||
|
const useColor = process.env.NO_COLOR === undefined && process.stdout.isTTY;
|
||||||
|
|
||||||
|
function color(code, text) {
|
||||||
|
return useColor ? `${code}${text}${RESET}` : text;
|
||||||
|
}
|
||||||
|
|
||||||
|
function header(text) {
|
||||||
|
console.log(`\n${color(BOLD + MAGENTA, '══')} ${color(BOLD, text)} ${color(BOLD + MAGENTA, '══')}`);
|
||||||
|
}
|
||||||
|
|
||||||
|
function success(text) {
|
||||||
|
console.log(` ${color(GREEN, '✓')} ${text}`);
|
||||||
|
}
|
||||||
|
|
||||||
|
function warn(text) {
|
||||||
|
console.log(` ${color(YELLOW, '⚠')} ${text}`);
|
||||||
|
}
|
||||||
|
|
||||||
|
function error(text) {
|
||||||
|
console.log(` ${color(RED, '✗')} ${text}`);
|
||||||
|
}
|
||||||
|
|
||||||
|
function info(text) {
|
||||||
|
console.log(` ${color(CYAN, '→')} ${text}`);
|
||||||
|
}
|
||||||
|
|
||||||
|
function dim(text) {
|
||||||
|
console.log(` ${color(DIM, text)}`);
|
||||||
|
}
|
||||||
|
|
||||||
|
function section(title) {
|
||||||
|
console.log(`\n ${color(BOLD, title)}:`);
|
||||||
|
}
|
||||||
|
|
||||||
|
// ─── Platform Detection ─────────────────────────────────────────────────────
|
||||||
|
|
||||||
|
const platform = os.platform(); // 'win32' | 'darwin' | 'linux'
|
||||||
|
const arch = os.arch();
|
||||||
|
|
||||||
|
/** Detect Linux distribution from os-release */
|
||||||
|
function detectLinuxDistro() {
|
||||||
|
try {
|
||||||
|
const osRelease = fs.readFileSync('/etc/os-release', 'utf8');
|
||||||
|
const idMatch = osRelease.match(/^ID="?([^"\n]+)"?/m);
|
||||||
|
const idLikeMatch = osRelease.match(/^ID_LIKE="?([^"\n]+)"?/m);
|
||||||
|
|
||||||
|
const id = idMatch ? idMatch[1].toLowerCase() : '';
|
||||||
|
const idLike = idLikeMatch ? idLikeMatch[1].toLowerCase() : '';
|
||||||
|
|
||||||
|
if (id === 'ubuntu' || id === 'debian' || idLike.includes('debian')) {
|
||||||
|
return 'debian';
|
||||||
|
}
|
||||||
|
if (id === 'arch' || id === 'manjaro' || idLike.includes('arch')) {
|
||||||
|
return 'arch';
|
||||||
|
}
|
||||||
|
if (id === 'fedora' || idLike.includes('fedora') || idLike.includes('rhel')) {
|
||||||
|
return 'fedora';
|
||||||
|
}
|
||||||
|
return id || 'unknown';
|
||||||
|
} catch {
|
||||||
|
return 'unknown';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ─── Tool Checkers ──────────────────────────────────────────────────────────
|
||||||
|
|
||||||
|
/** Check if a command exists on PATH */
|
||||||
|
function commandExists(cmd) {
|
||||||
|
try {
|
||||||
|
const whereCmd = platform === 'win32' ? 'where' : 'which';
|
||||||
|
execSync(`${whereCmd} "${cmd}"`, { stdio: 'ignore' });
|
||||||
|
return true;
|
||||||
|
} catch {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Check if running with administrator/sudo privileges */
|
||||||
|
function hasAdminPrivileges() {
|
||||||
|
if (platform === 'win32') {
|
||||||
|
try {
|
||||||
|
// On Windows, check via net session (requires admin)
|
||||||
|
execSync('net session', { stdio: 'ignore' });
|
||||||
|
return true;
|
||||||
|
} catch {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// On Unix, check if UID is 0
|
||||||
|
return process.getuid ? process.getuid() === 0 : false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Check Windows: Visual Studio Build Tools */
|
||||||
|
function checkWindows() {
|
||||||
|
const results = { ok: true, missing: [] };
|
||||||
|
|
||||||
|
// Check for cl.exe (C++ compiler from VS Build Tools)
|
||||||
|
if (commandExists('cl.exe')) {
|
||||||
|
success('MSVC Compiler (cl.exe) found');
|
||||||
|
} else {
|
||||||
|
// Try to find VS installation via vswhere or registry
|
||||||
|
let vsFound = false;
|
||||||
|
|
||||||
|
// vswhere.exe (shipped with VS 2017+)
|
||||||
|
const vswherePaths = [
|
||||||
|
'C:\\Program Files (x86)\\Microsoft Visual Studio\\Installer\\vswhere.exe',
|
||||||
|
'C:\\Program Files\\Microsoft Visual Studio\\Installer\\vswhere.exe',
|
||||||
|
];
|
||||||
|
|
||||||
|
for (const vswhere of vswherePaths) {
|
||||||
|
try {
|
||||||
|
const output = execSync(`"${vswhere}" -latest -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -property installationPath`, {
|
||||||
|
stdio: ['ignore', 'pipe', 'ignore'],
|
||||||
|
encoding: 'utf8',
|
||||||
|
}).trim();
|
||||||
|
|
||||||
|
if (output) {
|
||||||
|
vsFound = true;
|
||||||
|
success(`Visual Studio found at: ${output}`);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} catch {
|
||||||
|
// vswhere not found, continue
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check registry fallback
|
||||||
|
if (!vsFound) {
|
||||||
|
try {
|
||||||
|
execSync(
|
||||||
|
'reg query "HKLM\\SOFTWARE\\Microsoft\\VisualStudio\\SxS\\VS7" /v 17.0',
|
||||||
|
{ stdio: 'ignore' },
|
||||||
|
);
|
||||||
|
vsFound = true;
|
||||||
|
success('Visual Studio 2022 found (registry)');
|
||||||
|
} catch {
|
||||||
|
// Not found in registry either
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!vsFound) {
|
||||||
|
error('MSVC Build Tools not found');
|
||||||
|
results.ok = false;
|
||||||
|
results.missing.push('msvc');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check Python (needed by node-gyp)
|
||||||
|
if (commandExists('python') || commandExists('python3')) {
|
||||||
|
success('Python found');
|
||||||
|
} else {
|
||||||
|
error('Python not found (required by node-gyp)');
|
||||||
|
results.ok = false;
|
||||||
|
results.missing.push('python');
|
||||||
|
}
|
||||||
|
|
||||||
|
return results;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Check macOS: Xcode Command Line Tools */
|
||||||
|
function checkMacOS() {
|
||||||
|
const results = { ok: true, missing: [] };
|
||||||
|
|
||||||
|
try {
|
||||||
|
const xcodePath = execSync('xcode-select -p', { stdio: ['ignore', 'pipe', 'ignore'], encoding: 'utf8' }).trim();
|
||||||
|
if (xcodePath) {
|
||||||
|
success(`Xcode CLT found at: ${xcodePath}`);
|
||||||
|
}
|
||||||
|
} catch {
|
||||||
|
error('Xcode Command Line Tools not found');
|
||||||
|
results.ok = false;
|
||||||
|
results.missing.push('xcode-clt');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (commandExists('make') || commandExists('gmake')) {
|
||||||
|
success('make found');
|
||||||
|
} else {
|
||||||
|
error('make not found');
|
||||||
|
results.ok = false;
|
||||||
|
results.missing.push('make');
|
||||||
|
}
|
||||||
|
|
||||||
|
return results;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Check Linux: build-essential, python3, libsecret */
|
||||||
|
function checkLinux() {
|
||||||
|
const results = { ok: true, missing: [] };
|
||||||
|
const distro = detectLinuxDistro();
|
||||||
|
|
||||||
|
section(`Linux Distribution Detected: ${distro || 'unknown'}`);
|
||||||
|
|
||||||
|
// gcc / g++
|
||||||
|
if (commandExists('gcc') || commandExists('cc')) {
|
||||||
|
success('C compiler found');
|
||||||
|
} else {
|
||||||
|
error('C compiler not found');
|
||||||
|
results.ok = false;
|
||||||
|
results.missing.push('compiler');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (commandExists('g++') || commandExists('c++')) {
|
||||||
|
success('C++ compiler found');
|
||||||
|
} else {
|
||||||
|
error('C++ compiler not found');
|
||||||
|
results.ok = false;
|
||||||
|
results.missing.push('compiler');
|
||||||
|
}
|
||||||
|
|
||||||
|
// make
|
||||||
|
if (commandExists('make')) {
|
||||||
|
success('make found');
|
||||||
|
} else {
|
||||||
|
error('make not found');
|
||||||
|
results.ok = false;
|
||||||
|
results.missing.push('make');
|
||||||
|
}
|
||||||
|
|
||||||
|
// Python 3
|
||||||
|
if (commandExists('python3')) {
|
||||||
|
success('Python 3 found');
|
||||||
|
} else if (commandExists('python')) {
|
||||||
|
// Check if python is python3
|
||||||
|
try {
|
||||||
|
const ver = execSync('python --version', { encoding: 'utf8' });
|
||||||
|
if (ver.includes('3.')) {
|
||||||
|
success('Python 3 found (as python)');
|
||||||
|
} else {
|
||||||
|
error('Python 3 not found (python is v2)');
|
||||||
|
results.ok = false;
|
||||||
|
results.missing.push('python3');
|
||||||
|
}
|
||||||
|
} catch {
|
||||||
|
error('Python not found');
|
||||||
|
results.ok = false;
|
||||||
|
results.missing.push('python3');
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
error('Python 3 not found');
|
||||||
|
results.ok = false;
|
||||||
|
results.missing.push('python3');
|
||||||
|
}
|
||||||
|
|
||||||
|
// libsecret (needed by keytar)
|
||||||
|
try {
|
||||||
|
if (distro === 'debian') {
|
||||||
|
execSync('dpkg -s libsecret-1-dev', { stdio: 'ignore' });
|
||||||
|
success('libsecret-1-dev found');
|
||||||
|
} else if (distro === 'arch') {
|
||||||
|
execSync('pacman -Qi libsecret', { stdio: 'ignore' });
|
||||||
|
success('libsecret found');
|
||||||
|
} else {
|
||||||
|
// Check for pkg-config
|
||||||
|
try {
|
||||||
|
execSync('pkg-config --exists libsecret-1', { stdio: 'ignore' });
|
||||||
|
success('libsecret (pkg-config) found');
|
||||||
|
} catch {
|
||||||
|
warn('libsecret not detected (may not be needed if using prebuilt keytar)');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch {
|
||||||
|
warn('libsecret not detected (may not be needed if using prebuilt keytar)');
|
||||||
|
}
|
||||||
|
|
||||||
|
return results;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ─── Installation Helpers ───────────────────────────────────────────────────
|
||||||
|
|
||||||
|
/** Run a command and stream output, return exit code */
|
||||||
|
function runCommand(cmd, args, opts = {}) {
|
||||||
|
return new Promise((resolve) => {
|
||||||
|
console.log(`\n ${color(CYAN, 'Running:')} ${color(DIM, `${cmd} ${args.join(' ')}`)}`);
|
||||||
|
|
||||||
|
const child = spawnSync(cmd, args, {
|
||||||
|
stdio: 'inherit',
|
||||||
|
shell: platform === 'win32',
|
||||||
|
...opts,
|
||||||
|
});
|
||||||
|
|
||||||
|
resolve(child.status);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Install Windows: Visual Studio 2022 Build Tools via winget */
|
||||||
|
async function installWindows() {
|
||||||
|
// Check if winget is available
|
||||||
|
if (!commandExists('winget')) {
|
||||||
|
console.log('');
|
||||||
|
console.log(color(RED, ' winget not found. Please install Visual Studio Build Tools manually:'));
|
||||||
|
console.log(color(CYAN, ' https://visualstudio.microsoft.com/downloads/#build-tools-for-visual-studio-2022'));
|
||||||
|
console.log('');
|
||||||
|
console.log(' During installation, select:');
|
||||||
|
console.log(color(BOLD, ' "Desktop development with C++" workload'));
|
||||||
|
console.log('');
|
||||||
|
console.log(' Or install via PowerShell (as Administrator):');
|
||||||
|
console.log(color(DIM, ' winget install Microsoft.VisualStudio.2022.BuildTools --override "--wait --quiet --add Microsoft.VisualStudio.Workload.VCTools --includeRecommended"'));
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log('');
|
||||||
|
info('Attempting automatic installation of Visual Studio 2022 Build Tools...');
|
||||||
|
dim('This may take several minutes and requires administrator privileges.');
|
||||||
|
console.log('');
|
||||||
|
|
||||||
|
if (!hasAdminPrivileges()) {
|
||||||
|
warn('Not running as Administrator. winget may prompt for elevation.');
|
||||||
|
}
|
||||||
|
|
||||||
|
const status = await runCommand('winget', [
|
||||||
|
'install',
|
||||||
|
'Microsoft.VisualStudio.2022.BuildTools',
|
||||||
|
'--override',
|
||||||
|
'"--quiet --wait --norestart --add Microsoft.VisualStudio.Component.VC.Tools.x86.x64 --add Microsoft.VisualStudio.Component.Windows11SDK.22621 --includeRecommended"',
|
||||||
|
]);
|
||||||
|
|
||||||
|
if (status === 0) {
|
||||||
|
success('Visual Studio 2022 Build Tools installed successfully.');
|
||||||
|
console.log('');
|
||||||
|
warn('You may need to restart your terminal for PATH changes to take effect.');
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
error('Automatic installation failed. Please install manually.');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Install macOS: Xcode Command Line Tools */
|
||||||
|
async function installMacOS() {
|
||||||
|
console.log('');
|
||||||
|
info('Installing Xcode Command Line Tools...');
|
||||||
|
dim('A GUI dialog will appear. Click "Install" to proceed.');
|
||||||
|
|
||||||
|
const status = await runCommand('xcode-select', ['--install']);
|
||||||
|
|
||||||
|
// xcode-select --install returns 1 if already installed or cancelled
|
||||||
|
if (status === 0) {
|
||||||
|
success('Xcode Command Line Tools installation initiated.');
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check if already installed (common false-negative)
|
||||||
|
try {
|
||||||
|
execSync('xcode-select -p', { stdio: 'ignore' });
|
||||||
|
success('Xcode Command Line Tools are already installed.');
|
||||||
|
return true;
|
||||||
|
} catch {
|
||||||
|
warn('Xcode CLT installation was cancelled or failed.');
|
||||||
|
warn('You can install manually via: xcode-select --install');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Install Linux: distribution-specific packages */
|
||||||
|
async function installLinux() {
|
||||||
|
const distro = detectLinuxDistro();
|
||||||
|
|
||||||
|
if (distro === 'debian') {
|
||||||
|
// Ubuntu / Debian
|
||||||
|
if (!hasAdminPrivileges()) {
|
||||||
|
warn('Root privileges required. You may be prompted for your password.');
|
||||||
|
}
|
||||||
|
|
||||||
|
const status = await runCommand('sudo', [
|
||||||
|
'apt-get', 'install', '-y',
|
||||||
|
'build-essential',
|
||||||
|
'python3',
|
||||||
|
'libsecret-1-dev',
|
||||||
|
'pkg-config',
|
||||||
|
]);
|
||||||
|
|
||||||
|
if (status === 0) {
|
||||||
|
success('Build dependencies installed successfully.');
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
error('Failed to install build dependencies.');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (distro === 'arch') {
|
||||||
|
// Manjaro / Arch
|
||||||
|
if (!hasAdminPrivileges()) {
|
||||||
|
warn('Root privileges required. You may be prompted for your password.');
|
||||||
|
}
|
||||||
|
|
||||||
|
const status = await runCommand('sudo', [
|
||||||
|
'pacman', '-S', '--needed', '--noconfirm',
|
||||||
|
'base-devel',
|
||||||
|
'python',
|
||||||
|
'libsecret',
|
||||||
|
'pkg-config',
|
||||||
|
]);
|
||||||
|
|
||||||
|
if (status === 0) {
|
||||||
|
success('Build dependencies installed successfully.');
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
error('Failed to install build dependencies.');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (distro === 'fedora') {
|
||||||
|
if (!hasAdminPrivileges()) {
|
||||||
|
warn('Root privileges required. You may be prompted for your password.');
|
||||||
|
}
|
||||||
|
|
||||||
|
const status = await runCommand('sudo', [
|
||||||
|
'dnf', 'install', '-y',
|
||||||
|
'gcc-c++',
|
||||||
|
'make',
|
||||||
|
'python3',
|
||||||
|
'libsecret-devel',
|
||||||
|
'pkg-config',
|
||||||
|
]);
|
||||||
|
|
||||||
|
if (status === 0) {
|
||||||
|
success('Build dependencies installed successfully.');
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
error('Failed to install build dependencies.');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Unknown distro - provide generic instructions
|
||||||
|
console.log('');
|
||||||
|
warn(`Unknown Linux distribution: ${distro}`);
|
||||||
|
console.log('');
|
||||||
|
console.log(' You need the following packages to compile native Node.js modules:');
|
||||||
|
console.log(' - C/C++ compiler (gcc, g++)');
|
||||||
|
console.log(' - GNU Make');
|
||||||
|
console.log(' - Python 3');
|
||||||
|
console.log(' - libsecret development headers (for keytar)');
|
||||||
|
console.log(' - pkg-config');
|
||||||
|
console.log('');
|
||||||
|
console.log(' Install them using your distribution package manager, then run npm install again.');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ─── Main ───────────────────────────────────────────────────────────────────
|
||||||
|
|
||||||
|
async function main() {
|
||||||
|
const args = process.argv.slice(2);
|
||||||
|
const checkOnly = args.includes('--check-only') || args.includes('--check');
|
||||||
|
|
||||||
|
console.log('');
|
||||||
|
console.log(color(BOLD + CYAN, '┌──────────────────────────────────────────┐'));
|
||||||
|
console.log(color(BOLD + CYAN, '│ Gemini Nexus - Dev Environment Setup │'));
|
||||||
|
console.log(color(BOLD + CYAN, '└──────────────────────────────────────────┘'));
|
||||||
|
console.log('');
|
||||||
|
dim(`Platform: ${platform} (${arch})`);
|
||||||
|
dim(`Node.js: ${process.version}`);
|
||||||
|
|
||||||
|
// Step 1: Check current state
|
||||||
|
header('Checking Build Toolchain');
|
||||||
|
|
||||||
|
let results;
|
||||||
|
switch (platform) {
|
||||||
|
case 'win32':
|
||||||
|
results = checkWindows();
|
||||||
|
break;
|
||||||
|
case 'darwin':
|
||||||
|
results = checkMacOS();
|
||||||
|
break;
|
||||||
|
case 'linux':
|
||||||
|
results = checkLinux();
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
console.log('');
|
||||||
|
error(`Unsupported platform: ${platform}`);
|
||||||
|
process.exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Print summary
|
||||||
|
console.log('');
|
||||||
|
if (results.ok) {
|
||||||
|
success('All build tools are present and ready.');
|
||||||
|
console.log('');
|
||||||
|
dim('You can now run: npm install && npm start');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ── Missing tools ──
|
||||||
|
console.log('');
|
||||||
|
error('Some build tools are missing. Native modules like better-sqlite3 and keytar require compilation.');
|
||||||
|
|
||||||
|
if (checkOnly) {
|
||||||
|
console.log('');
|
||||||
|
warn('Build tools are missing. Native modules (better-sqlite3, keytar) require compilation.');
|
||||||
|
warn('Run "npm run setup" to install them automatically, or install manually:');
|
||||||
|
printManualInstructions(platform, results.missing);
|
||||||
|
console.log('');
|
||||||
|
dim('npm install succeeded, but npm start / electron-rebuild will fail until build tools are installed.');
|
||||||
|
// Don't exit with error - allow npm install to succeed (prebuilt binaries may work)
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Step 2: Attempt installation
|
||||||
|
header('Installing Build Dependencies');
|
||||||
|
|
||||||
|
let installed = false;
|
||||||
|
switch (platform) {
|
||||||
|
case 'win32':
|
||||||
|
installed = await installWindows();
|
||||||
|
break;
|
||||||
|
case 'darwin':
|
||||||
|
installed = await installMacOS();
|
||||||
|
break;
|
||||||
|
case 'linux':
|
||||||
|
installed = await installLinux();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Step 3: Final status
|
||||||
|
console.log('');
|
||||||
|
if (installed) {
|
||||||
|
success('Setup complete. You can now run: npm install && npm start');
|
||||||
|
console.log('');
|
||||||
|
dim('If you encounter issues, restart your terminal and try again.');
|
||||||
|
} else {
|
||||||
|
console.log('');
|
||||||
|
warn('Automatic installation was not successful.');
|
||||||
|
warn('Please install the required tools manually, then run npm install again.');
|
||||||
|
printManualInstructions(platform, results.missing);
|
||||||
|
process.exit(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function printManualInstructions(platform, missing) {
|
||||||
|
console.log('');
|
||||||
|
console.log(color(BOLD, ' ── Manual Installation Instructions ──'));
|
||||||
|
console.log('');
|
||||||
|
|
||||||
|
switch (platform) {
|
||||||
|
case 'win32':
|
||||||
|
console.log(' 1. Download Visual Studio 2022 Build Tools:');
|
||||||
|
console.log(color(CYAN, ' https://visualstudio.microsoft.com/downloads/#build-tools-for-visual-studio-2022'));
|
||||||
|
console.log('');
|
||||||
|
console.log(' 2. Run the installer and select:');
|
||||||
|
console.log(color(BOLD, ' "Desktop development with C++"'));
|
||||||
|
console.log('');
|
||||||
|
console.log(' 3. Or install via PowerShell (as Administrator):');
|
||||||
|
console.log(color(DIM, ' winget install Microsoft.VisualStudio.2022.BuildTools --override "--quiet --wait --add Microsoft.VisualStudio.Workload.VCTools --includeRecommended"'));
|
||||||
|
console.log('');
|
||||||
|
console.log(' 4. Restart your terminal after installation.');
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'darwin':
|
||||||
|
console.log(' Run this command in your terminal:');
|
||||||
|
console.log(color(DIM, ' xcode-select --install'));
|
||||||
|
console.log('');
|
||||||
|
console.log(' Then click "Install" in the dialog that appears.');
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'linux': {
|
||||||
|
const distro = detectLinuxDistro();
|
||||||
|
if (distro === 'debian') {
|
||||||
|
console.log(' Run:');
|
||||||
|
console.log(color(DIM, ' sudo apt-get install -y build-essential python3 libsecret-1-dev pkg-config'));
|
||||||
|
} else if (distro === 'arch') {
|
||||||
|
console.log(' Run:');
|
||||||
|
console.log(color(DIM, ' sudo pacman -S --needed base-devel python libsecret pkg-config'));
|
||||||
|
} else if (distro === 'fedora') {
|
||||||
|
console.log(' Run:');
|
||||||
|
console.log(color(DIM, ' sudo dnf install -y gcc-c++ make python3 libsecret-devel pkg-config'));
|
||||||
|
} else {
|
||||||
|
console.log(' Install: C/C++ compiler, make, python3, libsecret-dev, pkg-config');
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log('');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ─── Run ────────────────────────────────────────────────────────────────────
|
||||||
|
|
||||||
|
main().catch((err) => {
|
||||||
|
console.error(color(RED, `\nUnexpected error: ${err.message}`));
|
||||||
|
process.exit(1);
|
||||||
|
});
|
||||||
@@ -30,7 +30,7 @@ const queryClient = new QueryClient();
|
|||||||
const root = createRoot(document.getElementById('app')!);
|
const root = createRoot(document.getElementById('app')!);
|
||||||
root.render(
|
root.render(
|
||||||
<QueryClientProvider client={queryClient}>
|
<QueryClientProvider client={queryClient}>
|
||||||
<ThemeProvider storageKey={LOCAL_STORAGE_KEYS.THEME} defaultTheme="system">
|
<ThemeProvider storageKey={LOCAL_STORAGE_KEYS.THEME} defaultTheme="dark">
|
||||||
<App />
|
<App />
|
||||||
<Toaster />
|
<Toaster />
|
||||||
</ThemeProvider>
|
</ThemeProvider>
|
||||||
|
|||||||
|
After Width: | Height: | Size: 875 KiB |
|
After Width: | Height: | Size: 87 KiB |
|
After Width: | Height: | Size: 108 KiB |
|
After Width: | Height: | Size: 736 KiB |
|
Before Width: | Height: | Size: 390 KiB After Width: | Height: | Size: 736 KiB |
|
After Width: | Height: | Size: 44 KiB |
|
After Width: | Height: | Size: 37 KiB |
|
Before Width: | Height: | Size: 659 B After Width: | Height: | Size: 44 KiB |
@@ -259,9 +259,7 @@ export function CloudAccountList() {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const activeClientKey = oauthClients.find((client) => client.is_active)?.key;
|
const activeClientKey = oauthClients.find((client) => client.is_active)?.key;
|
||||||
if (activeClientKey) {
|
if (activeClientKey && activeClientKey !== selectedOAuthClientKey) { setTimeout(() => setSelectedOAuthClientKey(activeClientKey), 0); }
|
||||||
setSelectedOAuthClientKey(activeClientKey);
|
|
||||||
}
|
|
||||||
}, [oauthClients, selectedOAuthClientKey]);
|
}, [oauthClients, selectedOAuthClientKey]);
|
||||||
// Listen for Google Auth Code
|
// Listen for Google Auth Code
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
|||||||
@@ -134,8 +134,7 @@ export function IdentityProfileDialog({ account, open, onOpenChange }: IdentityP
|
|||||||
if (!open) {
|
if (!open) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
void refreshProfiles();
|
setTimeout(() => { void refreshProfiles(); }, 0); }, [open, refreshProfiles]);
|
||||||
}, [open, refreshProfiles]);
|
|
||||||
|
|
||||||
const runAction = async (key: string, action: () => Promise<void>) => {
|
const runAction = async (key: string, action: () => Promise<void>) => {
|
||||||
if (actionLockRef.current) {
|
if (actionLockRef.current) {
|
||||||
|
|||||||
@@ -48,12 +48,8 @@ export function ModelVisibilitySettings() {
|
|||||||
|
|
||||||
// Initialize model visibility and provider groupings from config
|
// Initialize model visibility and provider groupings from config
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (config?.model_visibility) {
|
if (config?.model_visibility) { setTimeout(() => setModelVisibilityMap(config.model_visibility), 0); }
|
||||||
setModelVisibilityMap(config.model_visibility);
|
if (config?.provider_groupings_enabled !== undefined) { setTimeout(() => setProviderGroupingEnabled(config.provider_groupings_enabled), 0); }
|
||||||
}
|
|
||||||
if (config?.provider_groupings_enabled !== undefined) {
|
|
||||||
setProviderGroupingEnabled(config.provider_groupings_enabled);
|
|
||||||
}
|
|
||||||
}, [config?.model_visibility, config?.provider_groupings_enabled]);
|
}, [config?.model_visibility, config?.provider_groupings_enabled]);
|
||||||
|
|
||||||
// Get all unique models from all accounts
|
// Get all unique models from all accounts
|
||||||
|
|||||||
@@ -107,7 +107,7 @@ function ProxyPage() {
|
|||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (localIps && localIps.length > 0 && !selectedIp) {
|
if (localIps && localIps.length > 0 && !selectedIp) {
|
||||||
const recommended = localIps.find((ip) => ip.isRecommended);
|
const recommended = localIps.find((ip) => ip.isRecommended);
|
||||||
setSelectedIp(recommended?.address || localIps[0].address);
|
setTimeout(() => setSelectedIp(recommended?.address || localIps[0].address), 0);
|
||||||
}
|
}
|
||||||
}, [localIps, selectedIp]);
|
}, [localIps, selectedIp]);
|
||||||
|
|
||||||
@@ -208,7 +208,7 @@ function ProxyPage() {
|
|||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (!availableModelIds.includes(activeModelTab) && availableModelIds.length > 0) {
|
if (!availableModelIds.includes(activeModelTab) && availableModelIds.length > 0) {
|
||||||
setActiveModelTab(availableModelIds[0]);
|
setTimeout(() => setActiveModelTab(availableModelIds[0]), 0);
|
||||||
}
|
}
|
||||||
}, [availableModelIds, activeModelTab]);
|
}, [availableModelIds, activeModelTab]);
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:ital,wght@0,400;0,500;0,700;1,400&display=swap');
|
||||||
|
|
||||||
@import 'tailwindcss';
|
@import 'tailwindcss';
|
||||||
|
|
||||||
@plugin 'tailwindcss-animate';
|
@plugin 'tailwindcss-animate';
|
||||||
@@ -32,7 +34,7 @@
|
|||||||
--color-card: hsl(var(--card));
|
--color-card: hsl(var(--card));
|
||||||
--color-card-foreground: hsl(var(--card-foreground));
|
--color-card-foreground: hsl(var(--card-foreground));
|
||||||
|
|
||||||
--font-sans: Geist, 'Microsoft YaHei', 'Heiti SC', 'WenQuanYi Micro Hei', sans-serif;
|
--font-sans: Plus Jakarta Sans, 'Microsoft YaHei', 'Heiti SC', 'WenQuanYi Micro Hei', sans-serif;
|
||||||
--font-mono: Geist Mono, monospace;
|
--font-mono: Geist Mono, monospace;
|
||||||
--font-tomorrow: Tomorrow, sans-serif;
|
--font-tomorrow: Tomorrow, sans-serif;
|
||||||
|
|
||||||
@@ -74,9 +76,7 @@
|
|||||||
|
|
||||||
@layer base {
|
@layer base {
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'Geist';
|
|
||||||
|
|
||||||
src: url('../assets/fonts/geist/geist.ttf') format('truetype');
|
|
||||||
}
|
}
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'Geist Mono';
|
font-family: 'Geist Mono';
|
||||||
@@ -119,67 +119,9 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
@layer base {
|
@layer base {
|
||||||
:root {
|
|
||||||
--background: 0 0% 100%;
|
|
||||||
--foreground: 222.2 84% 4.9%;
|
|
||||||
|
|
||||||
--card: 0 0% 100%;
|
|
||||||
--card-foreground: 222.2 84% 4.9%;
|
|
||||||
|
|
||||||
--popover: 0 0% 100%;
|
|
||||||
--popover-foreground: 222.2 84% 4.9%;
|
|
||||||
|
|
||||||
--primary: 222.2 47.4% 11.2%;
|
|
||||||
--primary-foreground: 210 40% 98%;
|
|
||||||
|
|
||||||
--secondary: 210 40% 96.1%;
|
|
||||||
--secondary-foreground: 222.2 47.4% 11.2%;
|
|
||||||
|
|
||||||
--muted: 210 40% 96.1%;
|
|
||||||
--muted-foreground: 215.4 16.3% 46.9%;
|
|
||||||
|
|
||||||
--accent: 210 40% 96.1%;
|
|
||||||
--accent-foreground: 222.2 47.4% 11.2%;
|
|
||||||
|
|
||||||
--destructive: 0 84.2% 60.2%;
|
|
||||||
--destructive-foreground: 210 40% 98%;
|
|
||||||
|
|
||||||
--border: 214.3 31.8% 91.4%;
|
|
||||||
--input: 214.3 31.8% 91.4%;
|
|
||||||
--ring: 222.2 84% 4.9%;
|
|
||||||
|
|
||||||
--radius: 0.5rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.dark {
|
|
||||||
--background: 222.2 84% 4.9%;
|
|
||||||
--foreground: 210 40% 98%;
|
|
||||||
|
|
||||||
--card: 222.2 84% 4.9%;
|
|
||||||
--card-foreground: 210 40% 98%;
|
|
||||||
|
|
||||||
--popover: 222.2 84% 4.9%;
|
|
||||||
--popover-foreground: 210 40% 98%;
|
|
||||||
|
|
||||||
--primary: 210 40% 98%;
|
|
||||||
--primary-foreground: 222.2 47.4% 11.2%;
|
|
||||||
|
|
||||||
--secondary: 217.2 32.6% 17.5%;
|
|
||||||
--secondary-foreground: 210 40% 98%;
|
|
||||||
|
|
||||||
--muted: 217.2 32.6% 17.5%;
|
|
||||||
--muted-foreground: 215 20.2% 65.1%;
|
|
||||||
|
|
||||||
--accent: 217.2 32.6% 17.5%;
|
|
||||||
--accent-foreground: 210 40% 98%;
|
|
||||||
|
|
||||||
--destructive: 0 62.8% 30.6%;
|
|
||||||
--destructive-foreground: 210 40% 98%;
|
|
||||||
|
|
||||||
--border: 217.2 32.6% 17.5%;
|
|
||||||
--input: 217.2 32.6% 17.5%;
|
|
||||||
--ring: 212.7 26.8% 83.9%;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@layer base {
|
@layer base {
|
||||||
@@ -205,7 +147,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
@theme inline {
|
@theme inline {
|
||||||
--font-sans: Geist, sans-serif;
|
--font-sans: Plus Jakarta Sans, sans-serif;
|
||||||
--font-mono: Geist Mono, monospace;
|
--font-mono: Geist Mono, monospace;
|
||||||
--font-serif: Georgia, serif;
|
--font-serif: Georgia, serif;
|
||||||
--radius: 0.5rem;
|
--radius: 0.5rem;
|
||||||
@@ -272,113 +214,32 @@
|
|||||||
--radius-4xl: calc(var(--radius) + 16px);
|
--radius-4xl: calc(var(--radius) + 16px);
|
||||||
}
|
}
|
||||||
|
|
||||||
:root {
|
|
||||||
--background: oklch(0.99 0 0);
|
|
||||||
--foreground: oklch(0 0 0);
|
|
||||||
--card: oklch(1 0 0);
|
|
||||||
--card-foreground: oklch(0 0 0);
|
|
||||||
--popover: oklch(0.99 0 0);
|
|
||||||
--popover-foreground: oklch(0 0 0);
|
|
||||||
--primary: oklch(0 0 0);
|
|
||||||
--primary-foreground: oklch(1 0 0);
|
|
||||||
--secondary: oklch(0.94 0 0);
|
|
||||||
--secondary-foreground: oklch(0 0 0);
|
|
||||||
--muted: oklch(0.97 0 0);
|
|
||||||
--muted-foreground: oklch(0.44 0 0);
|
|
||||||
--accent: oklch(0.94 0 0);
|
|
||||||
--accent-foreground: oklch(0 0 0);
|
|
||||||
--destructive: oklch(0.63 0.19 23.03);
|
|
||||||
--destructive-foreground: oklch(1 0 0);
|
|
||||||
--border: oklch(0.92 0 0);
|
|
||||||
--input: oklch(0.94 0 0);
|
|
||||||
--ring: oklch(0 0 0);
|
|
||||||
--chart-1: oklch(0.81 0.17 75.35);
|
|
||||||
--chart-2: oklch(0.55 0.22 264.53);
|
|
||||||
--chart-3: oklch(0.72 0 0);
|
|
||||||
--chart-4: oklch(0.92 0 0);
|
|
||||||
--chart-5: oklch(0.56 0 0);
|
|
||||||
--radius: 0.5rem;
|
|
||||||
--sidebar: oklch(0.99 0 0);
|
|
||||||
--sidebar-foreground: oklch(0 0 0);
|
|
||||||
--sidebar-primary: oklch(0 0 0);
|
|
||||||
--sidebar-primary-foreground: oklch(1 0 0);
|
|
||||||
--sidebar-accent: oklch(0.94 0 0);
|
|
||||||
--sidebar-accent-foreground: oklch(0 0 0);
|
|
||||||
--sidebar-border: oklch(0.94 0 0);
|
|
||||||
--sidebar-ring: oklch(0 0 0);
|
|
||||||
--font-sans: Geist, sans-serif;
|
|
||||||
--font-serif: Georgia, serif;
|
|
||||||
--font-mono: Geist Mono, monospace;
|
|
||||||
--shadow-color: hsl(0 0% 0%);
|
|
||||||
--shadow-opacity: 0.18;
|
|
||||||
--shadow-blur: 2px;
|
|
||||||
--shadow-spread: 0px;
|
|
||||||
--shadow-offset-x: 0px;
|
|
||||||
--shadow-offset-y: 1px;
|
|
||||||
--letter-spacing: 0em;
|
|
||||||
--spacing: 0.25rem;
|
|
||||||
--shadow-2xs: 0px 1px 2px 0px hsl(0 0% 0% / 0.09);
|
|
||||||
--shadow-xs: 0px 1px 2px 0px hsl(0 0% 0% / 0.09);
|
|
||||||
--shadow-sm: 0px 1px 2px 0px hsl(0 0% 0% / 0.18), 0px 1px 2px -1px hsl(0 0% 0% / 0.18);
|
|
||||||
--shadow: 0px 1px 2px 0px hsl(0 0% 0% / 0.18), 0px 1px 2px -1px hsl(0 0% 0% / 0.18);
|
|
||||||
--shadow-md: 0px 1px 2px 0px hsl(0 0% 0% / 0.18), 0px 2px 4px -1px hsl(0 0% 0% / 0.18);
|
|
||||||
--shadow-lg: 0px 1px 2px 0px hsl(0 0% 0% / 0.18), 0px 4px 6px -1px hsl(0 0% 0% / 0.18);
|
|
||||||
--shadow-xl: 0px 1px 2px 0px hsl(0 0% 0% / 0.18), 0px 8px 10px -1px hsl(0 0% 0% / 0.18);
|
|
||||||
--shadow-2xl: 0px 1px 2px 0px hsl(0 0% 0% / 0.45);
|
|
||||||
--tracking-normal: 0em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.dark {
|
|
||||||
--background: oklch(0 0 0);
|
|
||||||
--foreground: oklch(1 0 0);
|
|
||||||
--card: oklch(0.14 0 0);
|
|
||||||
--card-foreground: oklch(1 0 0);
|
@layer base {
|
||||||
--popover: oklch(0.18 0 0);
|
:root, .dark {
|
||||||
--popover-foreground: oklch(1 0 0);
|
--background: #0F172A;
|
||||||
--primary: oklch(1 0 0);
|
--foreground: #F8FAFC;
|
||||||
--primary-foreground: oklch(0 0 0);
|
--card: #0F172A;
|
||||||
--secondary: oklch(0.25 0 0);
|
--card-foreground: #F8FAFC;
|
||||||
--secondary-foreground: oklch(1 0 0);
|
--popover: #0F172A;
|
||||||
--muted: oklch(0.23 0 0);
|
--popover-foreground: #F8FAFC;
|
||||||
--muted-foreground: oklch(0.72 0 0);
|
--primary: #1E293B;
|
||||||
--accent: oklch(0.32 0 0);
|
--primary-foreground: #FFFFFF;
|
||||||
--accent-foreground: oklch(1 0 0);
|
--secondary: #334155;
|
||||||
--destructive: oklch(0.69 0.2 23.91);
|
--secondary-foreground: #FFFFFF;
|
||||||
--destructive-foreground: oklch(0 0 0);
|
--muted: #272F42;
|
||||||
--border: oklch(0.26 0 0);
|
--muted-foreground: #94A3B8;
|
||||||
--input: oklch(0.32 0 0);
|
--accent: #22C55E;
|
||||||
--ring: oklch(0.72 0 0);
|
--accent-foreground: #FFFFFF;
|
||||||
--chart-1: oklch(0.81 0.17 75.35);
|
--destructive: #EF4444;
|
||||||
--chart-2: oklch(0.58 0.21 260.84);
|
--destructive-foreground: #FFFFFF;
|
||||||
--chart-3: oklch(0.56 0 0);
|
--border: #475569;
|
||||||
--chart-4: oklch(0.44 0 0);
|
--input: #475569;
|
||||||
--chart-5: oklch(0.92 0 0);
|
--ring: #1E293B;
|
||||||
--radius: 0.5rem;
|
--radius: 0.5rem;
|
||||||
--sidebar: oklch(0.18 0 0);
|
}
|
||||||
--sidebar-foreground: oklch(1 0 0);
|
|
||||||
--sidebar-primary: oklch(1 0 0);
|
|
||||||
--sidebar-primary-foreground: oklch(0 0 0);
|
|
||||||
--sidebar-accent: oklch(0.32 0 0);
|
|
||||||
--sidebar-accent-foreground: oklch(1 0 0);
|
|
||||||
--sidebar-border: oklch(0.32 0 0);
|
|
||||||
--sidebar-ring: oklch(0.72 0 0);
|
|
||||||
--font-sans: Geist, sans-serif;
|
|
||||||
--font-serif: Georgia, serif;
|
|
||||||
--font-mono: Geist Mono, monospace;
|
|
||||||
--shadow-color: hsl(0 0% 0%);
|
|
||||||
--shadow-opacity: 0.18;
|
|
||||||
--shadow-blur: 2px;
|
|
||||||
--shadow-spread: 0px;
|
|
||||||
--shadow-offset-x: 0px;
|
|
||||||
--shadow-offset-y: 1px;
|
|
||||||
--letter-spacing: 0em;
|
|
||||||
--spacing: 0.25rem;
|
|
||||||
--shadow-2xs: 0px 1px 2px 0px hsl(0 0% 0% / 0.09);
|
|
||||||
--shadow-xs: 0px 1px 2px 0px hsl(0 0% 0% / 0.09);
|
|
||||||
--shadow-sm: 0px 1px 2px 0px hsl(0 0% 0% / 0.18), 0px 1px 2px -1px hsl(0 0% 0% / 0.18);
|
|
||||||
--shadow: 0px 1px 2px 0px hsl(0 0% 0% / 0.18), 0px 1px 2px -1px hsl(0 0% 0% / 0.18);
|
|
||||||
--shadow-md: 0px 1px 2px 0px hsl(0 0% 0% / 0.18), 0px 2px 4px -1px hsl(0 0% 0% / 0.18);
|
|
||||||
--shadow-lg: 0px 1px 2px 0px hsl(0 0% 0% / 0.18), 0px 4px 6px -1px hsl(0 0% 0% / 0.18);
|
|
||||||
--shadow-xl: 0px 1px 2px 0px hsl(0 0% 0% / 0.18), 0px 8px 10px -1px hsl(0 0% 0% / 0.18);
|
|
||||||
--shadow-2xl: 0px 1px 2px 0px hsl(0 0% 0% / 0.45);
|
|
||||||
}
|
}
|
||||||