Compare commits
377 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| b91e1a3567 | |||
| 5d0e5f03ee | |||
| d5843478fa | |||
| ef7ed05c26 | |||
| 497df6f138 | |||
| 955771c7f9 | |||
| 4f941a4738 | |||
| b2d5ba84fb | |||
| 7acf86fc28 | |||
| 6e72ff1068 | |||
| b3d0ef39f0 | |||
| 64d45677ef | |||
| 6922c94e23 | |||
| d4e68ccd93 | |||
| 81acfc00b4 | |||
| 7916e2ae8c | |||
| b3108b86f4 | |||
| f85e991971 | |||
| 715d496ebf | |||
| 8a78233683 | |||
| 9063214a10 | |||
| bbff1c6934 | |||
| fd7aa084c5 | |||
| b3f6e1dc26 | |||
| 2600785a10 | |||
| 6b0b7715a2 | |||
| a866532e46 | |||
| 5596692f07 | |||
| c6d27fee38 | |||
| b3e8457515 | |||
| 3685b1a999 | |||
| 1df015cd26 | |||
| 92cd9140d8 | |||
| 954083a774 | |||
| 23eed316bb | |||
| 838303be5f | |||
| d9fd87acbb | |||
| f96c602ff8 | |||
| 579626727e | |||
| 7e209dd7e4 | |||
| 54765c098b | |||
| 76425e6c15 | |||
| b2c58e47ca | |||
| dae85a1c34 | |||
| 88a5c92bdb | |||
| 33ac59d5c1 | |||
| 9776f68018 | |||
| f8ad6733b5 | |||
| dba063e946 | |||
| d10ab20656 | |||
| 5d848859e5 | |||
| d880416d6c | |||
| 3491aaee43 | |||
| 59ab49347c | |||
| e649104fae | |||
| a9480638e7 | |||
| bf768e724a | |||
| bd4a441190 | |||
| 4b04843bbd | |||
| 35da5f41a0 | |||
| 0355d6f2ed | |||
| 86b4b113dc | |||
| 2de356bbd1 | |||
| 865ea40a04 | |||
| a7ec6f2152 | |||
| da23586ad3 | |||
| 6bb0d26bac | |||
| 1be78eb6ff | |||
| ff0458d1ef | |||
| 8af9764598 | |||
| a813bc6fac | |||
| 0c51a8846d | |||
| 4067b41558 | |||
| 5196118819 | |||
| 93fcea7ff1 | |||
| 15619fa937 | |||
| e39366252a | |||
| e9ca78173f | |||
| da223002f5 | |||
| 2f7ff391ec | |||
| 13dbf88473 | |||
| f173b57b8d | |||
| c6fcb3baea | |||
| 5bfd72a715 | |||
| 5bdba58e57 | |||
| 2979db7442 | |||
| c9d48ccbef | |||
| 93b9e92099 | |||
| 63736e4e91 | |||
| 9ad16d95c9 | |||
| c372a430d7 | |||
| 28fe939303 | |||
| 46d8cc1156 | |||
| eb16f661d6 | |||
| 1539480557 | |||
| 4dbc30d521 | |||
| 7ab30eaadc | |||
| e51d59f1ad | |||
| bed81851cc | |||
| f0292fa783 | |||
| 77cf5409ef | |||
| 434bfae13c | |||
| d56e78d9d0 | |||
| a81784e44f | |||
| 587ad5703d | |||
| c21cb3b6fa | |||
| 23eb716916 | |||
| 6407fb2ff1 | |||
| 0fac3da409 | |||
| 236a1be31e | |||
| 2687877d21 | |||
| 65cd2a1eb5 | |||
| 4fd3a1da2f | |||
| e203fb603d | |||
| e9581f50c3 | |||
| e98ae7c4dd | |||
| 8a714be24a | |||
| 521c99bf02 | |||
| 37ce3b89b7 | |||
| 21d9b1fbe0 | |||
| f95da8067c | |||
| dea7a0c6b5 | |||
| 13aae9b68b | |||
| afdb45a1d2 | |||
| ddc67212d8 | |||
| 5a44eaa37d | |||
| ba6654e999 | |||
| 599c36e8d7 | |||
| c61e3227ba | |||
| 3f9b79bf36 | |||
| ded026e9bd | |||
| 8f980e962c | |||
| e6a9b1ff11 | |||
| f93e2e0300 | |||
| e7bacf8eba | |||
| a7b798349a | |||
| 59815bd412 | |||
| 46e88467de | |||
| 6d79b7fe0a | |||
| 287e360305 | |||
| 71fdd5a6f0 | |||
| 9ba97497b1 | |||
| 281f88deb1 | |||
| 20e7d3be85 | |||
| 0c015b52d7 | |||
| 392cf7fc2b | |||
| c663094c96 | |||
| 1b29a28dea | |||
| 9c6ba0dec5 | |||
| 0189d35514 | |||
| b6627d322b | |||
| 79ef95f33c | |||
| 5b29d90651 | |||
| 6686808141 | |||
| e0a2c8319d | |||
| 511fe567cf | |||
| c3043e0bb3 | |||
| 0684e7704d | |||
| 162b583c96 | |||
| 1bce897744 | |||
| ea9dfd2285 | |||
| 23d4de7765 | |||
| f619042297 | |||
| 6a29ec01fc | |||
| 24630198ed | |||
| 633a7d68cf | |||
| 3987aceef5 | |||
| c8fb217143 | |||
| f7a22bde76 | |||
| 020e33f42b | |||
| c891b1d61c | |||
| aeeb5b1944 | |||
| 8f2c3e8261 | |||
| d8e1ab1a43 | |||
| 45a5f9fdb6 | |||
| f518d5ef90 | |||
| e09c245bcb | |||
| c36fc2272f | |||
| c0435e0a34 | |||
| abc1d503d0 | |||
| 5ac7b8a8c9 | |||
| a326bc6d61 | |||
| 1e62040ee0 | |||
| 15603edaa8 | |||
| cc18b4b8a5 | |||
| eeb264c3ca | |||
| d7055e23e2 | |||
| 9fcd63d177 | |||
| e2c232002f | |||
| f0eb9bcd9e | |||
| 0b50aa35f9 | |||
| ce768f6b8e | |||
| b5bdddac69 | |||
| d73711538b | |||
| f060383903 | |||
| fe1b78b175 | |||
| f4435ab3a0 | |||
| e0d68d06c5 | |||
| 516fc2cdcd | |||
| 0bd6c55b92 | |||
| 3485d5b9c0 | |||
| 9d7bc082c6 | |||
| 5651b8554f | |||
| c8ee388f0d | |||
| 4020473f9d | |||
| acc89e43b4 | |||
| 1cefbfde5a | |||
| 89814a9f16 | |||
| e1500d817e | |||
| 86ea1a4c80 | |||
| 2dfb8efba6 | |||
| 45ac10fdad | |||
| 00752c3971 | |||
| 177d032744 | |||
| 3cabf36ca9 | |||
| 0e0a2faba8 | |||
| 5c7b212ecc | |||
| f433a9ae2a | |||
| 61b10c1bd9 | |||
| 8cd494e367 | |||
| b0e58c74dc | |||
| e9e4dc7b72 | |||
| 9d063b9f25 | |||
| 65c3772ae2 | |||
| 11b3ce0424 | |||
| 52b955d82a | |||
| 51f6d40837 | |||
| 25c610c65d | |||
| 6c86beb634 | |||
| 5b5230591e | |||
| a10c1320e8 | |||
| 7fe64499c2 | |||
| 8487e8b31f | |||
| 165c1cc63f | |||
| a2fea18b6d | |||
| d677e0c8b7 | |||
| fec3f9cd64 | |||
| a45709a94b | |||
| 820dfc34e8 | |||
| d933db3a03 | |||
| ad5e1ea4f8 | |||
| bd0a05e0fd | |||
| ecfcf18bc5 | |||
| ad175fb24d | |||
| 6efcc7bc63 | |||
| 5d09549b67 | |||
| e8c93d6835 | |||
| 2326be80b7 | |||
| b15363ddd5 | |||
| 7fce31695e | |||
| b167e6f111 | |||
| 76347d7078 | |||
| a42c9cea27 | |||
| 785431a054 | |||
| 04c7400569 | |||
| 4c92ce144a | |||
| 878f165c66 | |||
| d54b4fa8af | |||
| 3cd2e3ee3a | |||
| eb4587d094 | |||
| d92f871bcd | |||
| 40a1a568ff | |||
| 5e870d56fc | |||
| 818bc83e33 | |||
| 37ed8e82fd | |||
| bbe65ff927 | |||
| 24113929a2 | |||
| 35f212d30d | |||
| 43101decf4 | |||
| f8f3230a0a | |||
| fea9a795c9 | |||
| 2158e93083 | |||
| dc54d2a9a7 | |||
| 9304a22f90 | |||
| 277a0c0460 | |||
| c83e4cd350 | |||
| 68cba132d5 | |||
| 418b323f81 | |||
| 1c1cb180cc | |||
| 2c7f7a731c | |||
| 54aeaa65b3 | |||
| da5b9382b4 | |||
| 3a15fd977c | |||
| 043ff5a749 | |||
| c32eb61029 | |||
| f4ba9d42cf | |||
| 68f2401771 | |||
| 97c0f78601 | |||
| 2b293b40d3 | |||
| 763607c521 | |||
| e7ef2ba619 | |||
| 9c13c7830a | |||
| 6dc2ce4769 | |||
| 873cf5fd44 | |||
| 30818fa8e2 | |||
| 266fdc6607 | |||
| 1f8061d48e | |||
| 67c942f556 | |||
| 273efc68ea | |||
| 248953b049 | |||
| 3bd2bd0ab0 | |||
| 09c71caf3a | |||
| 69d343a67c | |||
| 503f228682 | |||
| 3073aa13cc | |||
| 6c07c93f02 | |||
| 25e7ad1a08 | |||
| b93a3ad8dd | |||
| ebedee08ed | |||
| d795296d0a | |||
| d306ffc1d3 | |||
| 17fc188e99 | |||
| 854e9ede31 | |||
| 973439fc84 | |||
| c3d214d8a3 | |||
| dfb9c2d6d6 | |||
| cc8c779655 | |||
| 42f66d7ae5 | |||
| b8566d6c00 | |||
| c9a85b430b | |||
| 05877bab25 | |||
| 66ea3e3cfd | |||
| c603e02224 | |||
| 1ec0a5c10d | |||
| ba416c5e73 | |||
| 19f0074c0c | |||
| 78403f17e6 | |||
| f66c2a1631 | |||
| 723127fa4a | |||
| 6f10e674dc | |||
| 7fb4bc012d | |||
| 788d9d1a05 | |||
| 14fd1de2e3 | |||
| 636f9fe9a2 | |||
| 0027ba82d6 | |||
| 40ea677abf | |||
| a4c482277f | |||
| bf6392daec | |||
| 66aa79785c | |||
| e2f95639d4 | |||
| f91a183f5e | |||
| d30f3eff5d | |||
| e8621c257d | |||
| e5a39a021e | |||
| 30003b4607 | |||
| afadc18b6f | |||
| 721a897614 | |||
| a52286c642 | |||
| 97e70e946d | |||
| 2b24cfae3c | |||
| 6191153a31 | |||
| 225150126c | |||
| eee65d0647 | |||
| 74add7d9c8 | |||
| 20b8b9dd29 | |||
| efa31126d0 | |||
| 502b330339 | |||
| 1b4ece5046 | |||
| b124017780 | |||
| f8364fef89 | |||
| ad86cb41f8 | |||
| 41f6b4c7a1 | |||
| 1b655db50e | |||
| 2c7901e8b3 | |||
| ccb37b4358 | |||
| f98c1a2b49 | |||
| 6b0bee45c3 | |||
| 18b4710d83 | |||
| 16ab71df55 | |||
| 62bc1c0926 | |||
| 69d4b97286 | |||
| a6910dbbbf | |||
| 29cb5f45af | |||
| 7218c36cf4 | |||
| cf7863b1f0 | |||
| f246d65576 | |||
| 55b16a3a9f |
@@ -0,0 +1,12 @@
|
||||
root = true
|
||||
|
||||
[*]
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
end_of_line = lf
|
||||
charset = utf-8
|
||||
trim_trailing_whitespace = true
|
||||
insert_final_newline = true
|
||||
|
||||
[*.md]
|
||||
trim_trailing_whitespace = false
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"rules": {
|
||||
"no-console": "off",
|
||||
"global-require": "off",
|
||||
"import/no-dynamic-require": "off",
|
||||
"prettier/prettier": 0,
|
||||
"import/prefer-default-export": "off",
|
||||
"no-empty-function": "off",
|
||||
"@typescript-eslint/no-empty-function": "off",
|
||||
"@angular-eslint/no-empty-lifecycle-method": "off"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
const tailwindcss = require('tailwindcss');
|
||||
const autoprefixer = require('autoprefixer');
|
||||
|
||||
module.exports = {
|
||||
plugins: [tailwindcss, autoprefixer],
|
||||
};
|
||||
@@ -0,0 +1,53 @@
|
||||
/**
|
||||
* Base webpack config used across other specific configs
|
||||
*/
|
||||
|
||||
import webpack from 'webpack';
|
||||
import webpackPaths from './webpack.paths';
|
||||
import { dependencies as externals } from '../../release/app/package.json';
|
||||
|
||||
const configuration: webpack.Configuration = {
|
||||
externals: [...Object.keys(externals || {})],
|
||||
|
||||
stats: 'errors-only',
|
||||
|
||||
module: {
|
||||
rules: [
|
||||
{
|
||||
test: /\.[jt]sx?$/,
|
||||
exclude: /node_modules/,
|
||||
use: {
|
||||
loader: 'ts-loader',
|
||||
options: {
|
||||
// Remove this line to enable type checking in webpack builds
|
||||
transpileOnly: true,
|
||||
},
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
|
||||
output: {
|
||||
path: webpackPaths.srcPath,
|
||||
// https://github.com/webpack/webpack/issues/1114
|
||||
library: {
|
||||
type: 'commonjs2',
|
||||
},
|
||||
},
|
||||
|
||||
/**
|
||||
* Determine the array of extensions that should be used to resolve modules.
|
||||
*/
|
||||
resolve: {
|
||||
extensions: ['.js', '.jsx', '.json', '.ts', '.tsx'],
|
||||
modules: [webpackPaths.srcPath, 'node_modules'],
|
||||
},
|
||||
|
||||
plugins: [
|
||||
new webpack.EnvironmentPlugin({
|
||||
NODE_ENV: 'production',
|
||||
}),
|
||||
],
|
||||
};
|
||||
|
||||
export default configuration;
|
||||
@@ -0,0 +1,3 @@
|
||||
/* eslint import/no-unresolved: off, import/no-self-import: off */
|
||||
|
||||
module.exports = require('./webpack.config.renderer.dev').default;
|
||||
@@ -0,0 +1,82 @@
|
||||
/**
|
||||
* Webpack config for production electron main process
|
||||
*/
|
||||
|
||||
import path from 'path';
|
||||
import webpack from 'webpack';
|
||||
import { merge } from 'webpack-merge';
|
||||
import TerserPlugin from 'terser-webpack-plugin';
|
||||
import { BundleAnalyzerPlugin } from 'webpack-bundle-analyzer';
|
||||
import baseConfig from './webpack.config.base';
|
||||
import webpackPaths from './webpack.paths';
|
||||
import checkNodeEnv from '../scripts/check-node-env';
|
||||
import deleteSourceMaps from '../scripts/delete-source-maps';
|
||||
|
||||
checkNodeEnv('production');
|
||||
deleteSourceMaps();
|
||||
|
||||
const devtoolsConfig =
|
||||
process.env.DEBUG_PROD === 'true'
|
||||
? {
|
||||
devtool: 'source-map',
|
||||
}
|
||||
: {};
|
||||
|
||||
const configuration: webpack.Configuration = {
|
||||
...devtoolsConfig,
|
||||
|
||||
mode: 'production',
|
||||
|
||||
target: 'electron-main',
|
||||
|
||||
entry: {
|
||||
main: path.join(webpackPaths.srcMainPath, 'main.ts'),
|
||||
preload: path.join(webpackPaths.srcMainPath, 'preload.ts'),
|
||||
},
|
||||
|
||||
output: {
|
||||
path: webpackPaths.distMainPath,
|
||||
filename: '[name].js',
|
||||
},
|
||||
|
||||
optimization: {
|
||||
minimizer: [
|
||||
new TerserPlugin({
|
||||
parallel: true,
|
||||
}),
|
||||
],
|
||||
},
|
||||
|
||||
plugins: [
|
||||
new BundleAnalyzerPlugin({
|
||||
analyzerMode: process.env.ANALYZE === 'true' ? 'server' : 'disabled',
|
||||
}),
|
||||
|
||||
/**
|
||||
* Create global constants which can be configured at compile time.
|
||||
*
|
||||
* Useful for allowing different behaviour between development builds and
|
||||
* release builds
|
||||
*
|
||||
* NODE_ENV should be production so that modules do not perform certain
|
||||
* development checks
|
||||
*/
|
||||
new webpack.EnvironmentPlugin({
|
||||
NODE_ENV: 'production',
|
||||
DEBUG_PROD: false,
|
||||
START_MINIMIZED: false,
|
||||
}),
|
||||
],
|
||||
|
||||
/**
|
||||
* Disables webpack processing of __dirname and __filename.
|
||||
* If you run the bundle in node.js it falls back to these values of node.js.
|
||||
* https://github.com/webpack/webpack/issues/2010
|
||||
*/
|
||||
node: {
|
||||
__dirname: false,
|
||||
__filename: false,
|
||||
},
|
||||
};
|
||||
|
||||
export default merge(baseConfig, configuration);
|
||||
@@ -0,0 +1,68 @@
|
||||
import path from 'path';
|
||||
import webpack from 'webpack';
|
||||
import { merge } from 'webpack-merge';
|
||||
import { BundleAnalyzerPlugin } from 'webpack-bundle-analyzer';
|
||||
import baseConfig from './webpack.config.base';
|
||||
import webpackPaths from './webpack.paths';
|
||||
import checkNodeEnv from '../scripts/check-node-env';
|
||||
|
||||
// When an ESLint server is running, we can't set the NODE_ENV so we'll check if it's
|
||||
// at the dev webpack config is not accidentally run in a production environment
|
||||
if (process.env.NODE_ENV === 'production') {
|
||||
checkNodeEnv('development');
|
||||
}
|
||||
|
||||
const configuration: webpack.Configuration = {
|
||||
devtool: 'inline-source-map',
|
||||
|
||||
mode: 'development',
|
||||
|
||||
target: 'electron-preload',
|
||||
|
||||
entry: path.join(webpackPaths.srcMainPath, 'preload.ts'),
|
||||
|
||||
output: {
|
||||
path: webpackPaths.dllPath,
|
||||
filename: 'preload.js',
|
||||
},
|
||||
|
||||
plugins: [
|
||||
new BundleAnalyzerPlugin({
|
||||
analyzerMode: process.env.ANALYZE === 'true' ? 'server' : 'disabled',
|
||||
}),
|
||||
|
||||
/**
|
||||
* Create global constants which can be configured at compile time.
|
||||
*
|
||||
* Useful for allowing different behaviour between development builds and
|
||||
* release builds
|
||||
*
|
||||
* NODE_ENV should be production so that modules do not perform certain
|
||||
* development checks
|
||||
*
|
||||
* By default, use 'development' as NODE_ENV. This can be overriden with
|
||||
* 'staging', for example, by changing the ENV variables in the npm scripts
|
||||
*/
|
||||
new webpack.EnvironmentPlugin({
|
||||
NODE_ENV: 'development',
|
||||
}),
|
||||
|
||||
new webpack.LoaderOptionsPlugin({
|
||||
debug: true,
|
||||
}),
|
||||
],
|
||||
|
||||
/**
|
||||
* Disables webpack processing of __dirname and __filename.
|
||||
* If you run the bundle in node.js it falls back to these values of node.js.
|
||||
* https://github.com/webpack/webpack/issues/2010
|
||||
*/
|
||||
node: {
|
||||
__dirname: false,
|
||||
__filename: false,
|
||||
},
|
||||
|
||||
watch: true,
|
||||
};
|
||||
|
||||
export default merge(baseConfig, configuration);
|
||||
@@ -0,0 +1,77 @@
|
||||
/**
|
||||
* Builds the DLL for development electron renderer process
|
||||
*/
|
||||
|
||||
import webpack from 'webpack';
|
||||
import path from 'path';
|
||||
import { merge } from 'webpack-merge';
|
||||
import baseConfig from './webpack.config.base';
|
||||
import webpackPaths from './webpack.paths';
|
||||
import { dependencies } from '../../package.json';
|
||||
import checkNodeEnv from '../scripts/check-node-env';
|
||||
|
||||
checkNodeEnv('development');
|
||||
|
||||
const dist = webpackPaths.dllPath;
|
||||
|
||||
const configuration: webpack.Configuration = {
|
||||
context: webpackPaths.rootPath,
|
||||
|
||||
devtool: 'eval',
|
||||
|
||||
mode: 'development',
|
||||
|
||||
target: 'electron-renderer',
|
||||
|
||||
externals: ['fsevents', 'crypto-browserify'],
|
||||
|
||||
/**
|
||||
* Use `module` from `webpack.config.renderer.dev.js`
|
||||
*/
|
||||
module: require('./webpack.config.renderer.dev').default.module,
|
||||
|
||||
entry: {
|
||||
renderer: Object.keys(dependencies || {}),
|
||||
},
|
||||
|
||||
output: {
|
||||
path: dist,
|
||||
filename: '[name].dev.dll.js',
|
||||
library: {
|
||||
name: 'renderer',
|
||||
type: 'var',
|
||||
},
|
||||
},
|
||||
|
||||
plugins: [
|
||||
new webpack.DllPlugin({
|
||||
path: path.join(dist, '[name].json'),
|
||||
name: '[name]',
|
||||
}),
|
||||
|
||||
/**
|
||||
* Create global constants which can be configured at compile time.
|
||||
*
|
||||
* Useful for allowing different behaviour between development builds and
|
||||
* release builds
|
||||
*
|
||||
* NODE_ENV should be production so that modules do not perform certain
|
||||
* development checks
|
||||
*/
|
||||
new webpack.EnvironmentPlugin({
|
||||
NODE_ENV: 'development',
|
||||
}),
|
||||
|
||||
new webpack.LoaderOptionsPlugin({
|
||||
debug: true,
|
||||
options: {
|
||||
context: webpackPaths.srcPath,
|
||||
output: {
|
||||
path: webpackPaths.dllPath,
|
||||
},
|
||||
},
|
||||
}),
|
||||
],
|
||||
};
|
||||
|
||||
export default merge(baseConfig, configuration);
|
||||
@@ -0,0 +1,221 @@
|
||||
import 'webpack-dev-server';
|
||||
import path from 'path';
|
||||
import fs from 'fs';
|
||||
import webpack from 'webpack';
|
||||
import HtmlWebpackPlugin from 'html-webpack-plugin';
|
||||
import chalk from 'chalk';
|
||||
import { merge } from 'webpack-merge';
|
||||
import { execSync, spawn } from 'child_process';
|
||||
import ReactRefreshWebpackPlugin from '@pmmmwh/react-refresh-webpack-plugin';
|
||||
import baseConfig from './webpack.config.base';
|
||||
import webpackPaths from './webpack.paths';
|
||||
import checkNodeEnv from '../scripts/check-node-env';
|
||||
|
||||
// When an ESLint server is running, we can't set the NODE_ENV so we'll check if it's
|
||||
// at the dev webpack config is not accidentally run in a production environment
|
||||
if (process.env.NODE_ENV === 'production') {
|
||||
checkNodeEnv('development');
|
||||
}
|
||||
|
||||
const port = process.env.PORT || 1212;
|
||||
const manifest = path.resolve(webpackPaths.dllPath, 'renderer.json');
|
||||
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
||||
const requiredByDLLConfig = module.parent!.filename.includes(
|
||||
'webpack.config.renderer.dev.dll'
|
||||
);
|
||||
|
||||
/**
|
||||
* Warn if the DLL is not built
|
||||
*/
|
||||
if (
|
||||
!requiredByDLLConfig &&
|
||||
!(fs.existsSync(webpackPaths.dllPath) && fs.existsSync(manifest))
|
||||
) {
|
||||
console.log(
|
||||
chalk.black.bgYellow.bold(
|
||||
'The DLL files are missing. Sit back while we build them for you with "npm run build-dll"'
|
||||
)
|
||||
);
|
||||
execSync('npm run postinstall');
|
||||
}
|
||||
|
||||
const configuration: webpack.Configuration = {
|
||||
devtool: 'inline-source-map',
|
||||
|
||||
mode: 'development',
|
||||
|
||||
target: ['web', 'electron-renderer'],
|
||||
|
||||
entry: [
|
||||
`webpack-dev-server/client?http://localhost:${port}/dist`,
|
||||
'webpack/hot/only-dev-server',
|
||||
path.join(webpackPaths.srcRendererPath, 'index.tsx'),
|
||||
],
|
||||
|
||||
output: {
|
||||
path: webpackPaths.distRendererPath,
|
||||
publicPath: '/',
|
||||
filename: 'renderer.dev.js',
|
||||
library: {
|
||||
type: 'umd',
|
||||
},
|
||||
},
|
||||
|
||||
module: {
|
||||
rules: [
|
||||
{
|
||||
test: /\.s?css$/,
|
||||
use: [
|
||||
'style-loader',
|
||||
{
|
||||
loader: 'css-loader',
|
||||
options: {
|
||||
modules: true,
|
||||
sourceMap: true,
|
||||
importLoaders: 1,
|
||||
},
|
||||
},
|
||||
'sass-loader',
|
||||
{
|
||||
loader: 'postcss-loader',
|
||||
options: {
|
||||
postcssOptions: {
|
||||
plugins: [require('tailwindcss'), require('autoprefixer')],
|
||||
},
|
||||
},
|
||||
},
|
||||
],
|
||||
include: /\.module\.s?(c|a)ss$/,
|
||||
},
|
||||
{
|
||||
test: /\.s?css$/,
|
||||
use: [
|
||||
'style-loader',
|
||||
'css-loader',
|
||||
'sass-loader',
|
||||
{
|
||||
loader: 'postcss-loader',
|
||||
options: {
|
||||
postcssOptions: {
|
||||
plugins: [require('tailwindcss'), require('autoprefixer')],
|
||||
},
|
||||
},
|
||||
},
|
||||
],
|
||||
exclude: /\.module\.s?(c|a)ss$/,
|
||||
},
|
||||
// Fonts
|
||||
{
|
||||
test: /\.(woff|woff2|eot|ttf|otf)$/i,
|
||||
type: 'asset/resource',
|
||||
},
|
||||
// Images
|
||||
{
|
||||
test: /\.(png|svg|jpg|jpeg|gif|mp4|webp)$/i,
|
||||
type: 'asset/resource',
|
||||
},
|
||||
],
|
||||
},
|
||||
plugins: [
|
||||
...(requiredByDLLConfig
|
||||
? []
|
||||
: [
|
||||
new webpack.DllReferencePlugin({
|
||||
context: webpackPaths.dllPath,
|
||||
manifest: require(manifest),
|
||||
sourceType: 'var',
|
||||
}),
|
||||
]),
|
||||
|
||||
new webpack.NoEmitOnErrorsPlugin(),
|
||||
|
||||
/**
|
||||
* Create global constants which can be configured at compile time.
|
||||
*
|
||||
* Useful for allowing different behaviour between development builds and
|
||||
* release builds
|
||||
*
|
||||
* NODE_ENV should be production so that modules do not perform certain
|
||||
* development checks
|
||||
*
|
||||
* By default, use 'development' as NODE_ENV. This can be overriden with
|
||||
* 'staging', for example, by changing the ENV variables in the npm scripts
|
||||
*/
|
||||
new webpack.EnvironmentPlugin({
|
||||
NODE_ENV: 'development',
|
||||
}),
|
||||
|
||||
new webpack.LoaderOptionsPlugin({
|
||||
debug: true,
|
||||
}),
|
||||
|
||||
new ReactRefreshWebpackPlugin(),
|
||||
|
||||
new HtmlWebpackPlugin({
|
||||
filename: path.join('index.html'),
|
||||
template: path.join(webpackPaths.srcRendererPath, 'index.ejs'),
|
||||
minify: {
|
||||
collapseWhitespace: true,
|
||||
removeAttributeQuotes: true,
|
||||
removeComments: true,
|
||||
},
|
||||
isBrowser: false,
|
||||
env: process.env.NODE_ENV,
|
||||
isDevelopment: process.env.NODE_ENV !== 'production',
|
||||
nodeModules: webpackPaths.appNodeModulesPath,
|
||||
}),
|
||||
|
||||
new HtmlWebpackPlugin({
|
||||
filename: path.join('launcher.html'),
|
||||
template: path.join(webpackPaths.srcRendererPath, 'launcher.ejs'),
|
||||
minify: {
|
||||
collapseWhitespace: true,
|
||||
removeAttributeQuotes: true,
|
||||
removeComments: true,
|
||||
},
|
||||
isBrowser: false,
|
||||
env: process.env.NODE_ENV,
|
||||
isDevelopment: process.env.NODE_ENV !== 'production',
|
||||
nodeModules: webpackPaths.appNodeModulesPath,
|
||||
})
|
||||
],
|
||||
|
||||
node: {
|
||||
__dirname: false,
|
||||
__filename: false,
|
||||
},
|
||||
|
||||
devServer: {
|
||||
port,
|
||||
compress: true,
|
||||
hot: true,
|
||||
headers: { 'Access-Control-Allow-Origin': '*' },
|
||||
static: {
|
||||
publicPath: '/',
|
||||
},
|
||||
historyApiFallback: true,
|
||||
setupMiddlewares(middlewares) {
|
||||
console.log('Starting preload.js builder...');
|
||||
const preloadProcess = spawn('npm', ['run', 'start:preload'], {
|
||||
shell: true,
|
||||
stdio: 'inherit',
|
||||
})
|
||||
.on('close', (code: number) => process.exit(code!))
|
||||
.on('error', (spawnError) => console.error(spawnError));
|
||||
|
||||
console.log('Starting Main Process...');
|
||||
spawn('npm', ['run', 'start:main'], {
|
||||
shell: true,
|
||||
stdio: 'inherit',
|
||||
})
|
||||
.on('close', (code: number) => {
|
||||
preloadProcess.kill();
|
||||
process.exit(code!);
|
||||
})
|
||||
.on('error', (spawnError) => console.error(spawnError));
|
||||
return middlewares;
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
export default merge(baseConfig, configuration);
|
||||
@@ -0,0 +1,161 @@
|
||||
/**
|
||||
* Build config for electron renderer process
|
||||
*/
|
||||
|
||||
import path from 'path';
|
||||
import webpack from 'webpack';
|
||||
import HtmlWebpackPlugin from 'html-webpack-plugin';
|
||||
import MiniCssExtractPlugin from 'mini-css-extract-plugin';
|
||||
import { BundleAnalyzerPlugin } from 'webpack-bundle-analyzer';
|
||||
import CssMinimizerPlugin from 'css-minimizer-webpack-plugin';
|
||||
import { merge } from 'webpack-merge';
|
||||
import TerserPlugin from 'terser-webpack-plugin';
|
||||
import baseConfig from './webpack.config.base';
|
||||
import webpackPaths from './webpack.paths';
|
||||
import checkNodeEnv from '../scripts/check-node-env';
|
||||
import deleteSourceMaps from '../scripts/delete-source-maps';
|
||||
|
||||
checkNodeEnv('production');
|
||||
deleteSourceMaps();
|
||||
|
||||
const devtoolsConfig =
|
||||
process.env.DEBUG_PROD === 'true'
|
||||
? {
|
||||
devtool: 'source-map',
|
||||
}
|
||||
: {};
|
||||
|
||||
const configuration: webpack.Configuration = {
|
||||
...devtoolsConfig,
|
||||
|
||||
mode: 'production',
|
||||
|
||||
target: ['web', 'electron-renderer'],
|
||||
|
||||
entry: [path.join(webpackPaths.srcRendererPath, 'index.tsx')],
|
||||
|
||||
output: {
|
||||
path: webpackPaths.distRendererPath,
|
||||
publicPath: './',
|
||||
filename: 'renderer.js',
|
||||
library: {
|
||||
type: 'umd',
|
||||
},
|
||||
},
|
||||
|
||||
module: {
|
||||
rules: [
|
||||
{
|
||||
test: /\.s?(a|c)ss$/,
|
||||
use: [
|
||||
MiniCssExtractPlugin.loader,
|
||||
{
|
||||
loader: 'css-loader',
|
||||
options: {
|
||||
modules: true,
|
||||
sourceMap: true,
|
||||
importLoaders: 1,
|
||||
},
|
||||
},
|
||||
'sass-loader',
|
||||
{
|
||||
loader: 'postcss-loader',
|
||||
options: {
|
||||
postcssOptions: {
|
||||
plugins: [require('tailwindcss'), require('autoprefixer')],
|
||||
},
|
||||
},
|
||||
},
|
||||
],
|
||||
include: /\.module\.s?(c|a)ss$/,
|
||||
},
|
||||
{
|
||||
test: /\.s?(a|c)ss$/,
|
||||
use: [
|
||||
MiniCssExtractPlugin.loader,
|
||||
'css-loader',
|
||||
'sass-loader',
|
||||
{
|
||||
loader: 'postcss-loader',
|
||||
options: {
|
||||
postcssOptions: {
|
||||
plugins: [require('tailwindcss'), require('autoprefixer')],
|
||||
},
|
||||
},
|
||||
},
|
||||
],
|
||||
exclude: /\.module\.s?(c|a)ss$/,
|
||||
},
|
||||
// Fonts
|
||||
{
|
||||
test: /\.(woff|woff2|eot|ttf|otf)$/i,
|
||||
type: 'asset/resource',
|
||||
},
|
||||
// Images
|
||||
{
|
||||
test: /\.(png|svg|jpg|jpeg|gif|mp4|webp)$/i,
|
||||
type: 'asset/resource',
|
||||
},
|
||||
],
|
||||
},
|
||||
|
||||
optimization: {
|
||||
minimize: true,
|
||||
minimizer: [
|
||||
new TerserPlugin({
|
||||
parallel: true,
|
||||
}),
|
||||
new CssMinimizerPlugin(),
|
||||
],
|
||||
},
|
||||
|
||||
plugins: [
|
||||
/**
|
||||
* Create global constants which can be configured at compile time.
|
||||
*
|
||||
* Useful for allowing different behaviour between development builds and
|
||||
* release builds
|
||||
*
|
||||
* NODE_ENV should be production so that modules do not perform certain
|
||||
* development checks
|
||||
*/
|
||||
new webpack.EnvironmentPlugin({
|
||||
NODE_ENV: 'production',
|
||||
DEBUG_PROD: false,
|
||||
}),
|
||||
|
||||
new MiniCssExtractPlugin({
|
||||
filename: 'style.css',
|
||||
}),
|
||||
|
||||
new BundleAnalyzerPlugin({
|
||||
analyzerMode: process.env.ANALYZE === 'true' ? 'server' : 'disabled',
|
||||
}),
|
||||
|
||||
new HtmlWebpackPlugin({
|
||||
filename: 'index.html',
|
||||
template: path.join(webpackPaths.srcRendererPath, 'index.ejs'),
|
||||
minify: {
|
||||
collapseWhitespace: true,
|
||||
removeAttributeQuotes: true,
|
||||
removeComments: true,
|
||||
},
|
||||
isBrowser: false,
|
||||
isDevelopment: process.env.NODE_ENV !== 'production',
|
||||
}),
|
||||
|
||||
new HtmlWebpackPlugin({
|
||||
filename: 'launcher.html',
|
||||
template: path.join(webpackPaths.srcRendererPath, 'launcher.ejs'),
|
||||
minify: {
|
||||
collapseWhitespace: true,
|
||||
removeAttributeQuotes: true,
|
||||
removeComments: true,
|
||||
},
|
||||
isBrowser: false,
|
||||
isDevelopment: process.env.NODE_ENV !== 'production',
|
||||
})
|
||||
],
|
||||
};
|
||||
|
||||
export default merge(baseConfig, configuration);
|
||||
@@ -0,0 +1,38 @@
|
||||
const path = require('path');
|
||||
|
||||
const rootPath = path.join(__dirname, '../..');
|
||||
|
||||
const dllPath = path.join(__dirname, '../dll');
|
||||
|
||||
const srcPath = path.join(rootPath, 'src');
|
||||
const srcMainPath = path.join(srcPath, 'main');
|
||||
const srcRendererPath = path.join(srcPath, 'renderer');
|
||||
|
||||
const releasePath = path.join(rootPath, 'release');
|
||||
const appPath = path.join(releasePath, 'app');
|
||||
const appPackagePath = path.join(appPath, 'package.json');
|
||||
const appNodeModulesPath = path.join(appPath, 'node_modules');
|
||||
const srcNodeModulesPath = path.join(srcPath, 'node_modules');
|
||||
|
||||
const distPath = path.join(appPath, 'dist');
|
||||
const distMainPath = path.join(distPath, 'main');
|
||||
const distRendererPath = path.join(distPath, 'renderer');
|
||||
|
||||
const buildPath = path.join(releasePath, 'build');
|
||||
|
||||
export default {
|
||||
rootPath,
|
||||
dllPath,
|
||||
srcPath,
|
||||
srcMainPath,
|
||||
srcRendererPath,
|
||||
releasePath,
|
||||
appPath,
|
||||
appPackagePath,
|
||||
appNodeModulesPath,
|
||||
srcNodeModulesPath,
|
||||
distPath,
|
||||
distMainPath,
|
||||
distRendererPath,
|
||||
buildPath,
|
||||
};
|
||||
|
After Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 28 KiB |
@@ -0,0 +1 @@
|
||||
export default 'test-file-stub';
|
||||
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"rules": {
|
||||
"no-console": "off",
|
||||
"global-require": "off",
|
||||
"import/no-dynamic-require": "off",
|
||||
"import/no-extraneous-dependencies": "off"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
// Check if the renderer and main bundles are built
|
||||
import path from 'path';
|
||||
import chalk from 'chalk';
|
||||
import fs from 'fs';
|
||||
import webpackPaths from '../configs/webpack.paths';
|
||||
|
||||
const mainPath = path.join(webpackPaths.distMainPath, 'main.js');
|
||||
const rendererPath = path.join(webpackPaths.distRendererPath, 'renderer.js');
|
||||
|
||||
if (!fs.existsSync(mainPath)) {
|
||||
throw new Error(
|
||||
chalk.whiteBright.bgRed.bold(
|
||||
'The main process is not built yet. Build it by running "npm run build:main"'
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
if (!fs.existsSync(rendererPath)) {
|
||||
throw new Error(
|
||||
chalk.whiteBright.bgRed.bold(
|
||||
'The renderer process is not built yet. Build it by running "npm run build:renderer"'
|
||||
)
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
import fs from 'fs';
|
||||
import chalk from 'chalk';
|
||||
import { execSync } from 'child_process';
|
||||
import { dependencies } from '../../package.json';
|
||||
|
||||
if (dependencies) {
|
||||
const dependenciesKeys = Object.keys(dependencies);
|
||||
const nativeDeps = fs
|
||||
.readdirSync('node_modules')
|
||||
.filter((folder) => fs.existsSync(`node_modules/${folder}/binding.gyp`));
|
||||
if (nativeDeps.length === 0) {
|
||||
process.exit(0);
|
||||
}
|
||||
try {
|
||||
// Find the reason for why the dependency is installed. If it is installed
|
||||
// because of a devDependency then that is okay. Warn when it is installed
|
||||
// because of a dependency
|
||||
const { dependencies: dependenciesObject } = JSON.parse(
|
||||
execSync(`npm ls ${nativeDeps.join(' ')} --json`).toString()
|
||||
);
|
||||
const rootDependencies = Object.keys(dependenciesObject);
|
||||
const filteredRootDependencies = rootDependencies.filter((rootDependency) =>
|
||||
dependenciesKeys.includes(rootDependency)
|
||||
);
|
||||
if (filteredRootDependencies.length > 0) {
|
||||
const plural = filteredRootDependencies.length > 1;
|
||||
console.log(`
|
||||
${chalk.whiteBright.bgYellow.bold(
|
||||
'Webpack does not work with native dependencies.'
|
||||
)}
|
||||
${chalk.bold(filteredRootDependencies.join(', '))} ${
|
||||
plural ? 'are native dependencies' : 'is a native dependency'
|
||||
} and should be installed inside of the "./release/app" folder.
|
||||
First, uninstall the packages from "./package.json":
|
||||
${chalk.whiteBright.bgGreen.bold('npm uninstall your-package')}
|
||||
${chalk.bold(
|
||||
'Then, instead of installing the package to the root "./package.json":'
|
||||
)}
|
||||
${chalk.whiteBright.bgRed.bold('npm install your-package')}
|
||||
${chalk.bold('Install the package to "./release/app/package.json"')}
|
||||
${chalk.whiteBright.bgGreen.bold(
|
||||
'cd ./release/app && npm install your-package'
|
||||
)}
|
||||
Read more about native dependencies at:
|
||||
${chalk.bold(
|
||||
'https://electron-react-boilerplate.js.org/docs/adding-dependencies/#module-structure'
|
||||
)}
|
||||
`);
|
||||
process.exit(1);
|
||||
}
|
||||
} catch (e) {
|
||||
console.log('Native dependencies could not be checked');
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
import chalk from 'chalk';
|
||||
|
||||
export default function checkNodeEnv(expectedEnv) {
|
||||
if (!expectedEnv) {
|
||||
throw new Error('"expectedEnv" not set');
|
||||
}
|
||||
|
||||
if (process.env.NODE_ENV !== expectedEnv) {
|
||||
console.log(
|
||||
chalk.whiteBright.bgRed.bold(
|
||||
`"process.env.NODE_ENV" must be "${expectedEnv}" to use this webpack config`
|
||||
)
|
||||
);
|
||||
process.exit(2);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
import chalk from 'chalk';
|
||||
import detectPort from 'detect-port';
|
||||
|
||||
const port = process.env.PORT || '1212';
|
||||
|
||||
detectPort(port, (err, availablePort) => {
|
||||
if (port !== String(availablePort)) {
|
||||
throw new Error(
|
||||
chalk.whiteBright.bgRed.bold(
|
||||
`Port "${port}" on "localhost" is already in use. Please use another port. ex: PORT=4343 npm start`
|
||||
)
|
||||
);
|
||||
} else {
|
||||
process.exit(0);
|
||||
}
|
||||
});
|
||||
@@ -0,0 +1,17 @@
|
||||
import rimraf from 'rimraf';
|
||||
import process from 'process';
|
||||
import webpackPaths from '../configs/webpack.paths';
|
||||
|
||||
const args = process.argv.slice(2);
|
||||
const commandMap = {
|
||||
dist: webpackPaths.distPath,
|
||||
release: webpackPaths.releasePath,
|
||||
dll: webpackPaths.dllPath,
|
||||
};
|
||||
|
||||
args.forEach((x) => {
|
||||
const pathToRemove = commandMap[x];
|
||||
if (pathToRemove !== undefined) {
|
||||
rimraf.sync(pathToRemove);
|
||||
}
|
||||
});
|
||||
@@ -0,0 +1,8 @@
|
||||
import path from 'path';
|
||||
import rimraf from 'rimraf';
|
||||
import webpackPaths from '../configs/webpack.paths';
|
||||
|
||||
export default function deleteSourceMaps() {
|
||||
rimraf.sync(path.join(webpackPaths.distMainPath, '*.js.map'));
|
||||
rimraf.sync(path.join(webpackPaths.distRendererPath, '*.js.map'));
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
import { execSync } from 'child_process';
|
||||
import fs from 'fs';
|
||||
import { dependencies } from '../../release/app/package.json';
|
||||
import webpackPaths from '../configs/webpack.paths';
|
||||
|
||||
if (
|
||||
Object.keys(dependencies || {}).length > 0 &&
|
||||
fs.existsSync(webpackPaths.appNodeModulesPath)
|
||||
) {
|
||||
const electronRebuildCmd =
|
||||
'../../node_modules/.bin/electron-rebuild --force --types prod,dev,optional --module-dir .';
|
||||
const cmd =
|
||||
process.platform === 'win32'
|
||||
? electronRebuildCmd.replace(/\//g, '\\')
|
||||
: electronRebuildCmd;
|
||||
execSync(cmd, {
|
||||
cwd: webpackPaths.appPath,
|
||||
stdio: 'inherit',
|
||||
});
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
import fs from 'fs';
|
||||
import webpackPaths from '../configs/webpack.paths';
|
||||
|
||||
const { srcNodeModulesPath } = webpackPaths;
|
||||
const { appNodeModulesPath } = webpackPaths;
|
||||
|
||||
if (!fs.existsSync(srcNodeModulesPath) && fs.existsSync(appNodeModulesPath)) {
|
||||
fs.symlinkSync(appNodeModulesPath, srcNodeModulesPath, 'junction');
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
const { notarize } = require('electron-notarize');
|
||||
const { build } = require('../../package.json');
|
||||
|
||||
exports.default = async function notarizeMacos(context) {
|
||||
const { electronPlatformName, appOutDir } = context;
|
||||
if (electronPlatformName !== 'darwin') {
|
||||
return;
|
||||
}
|
||||
|
||||
if (process.env.CI !== 'true') {
|
||||
console.warn('Skipping notarizing step. Packaging is not running in CI');
|
||||
return;
|
||||
}
|
||||
|
||||
if (!('APPLE_ID' in process.env && 'APPLE_ID_PASS' in process.env)) {
|
||||
console.warn(
|
||||
'Skipping notarizing step. APPLE_ID and APPLE_ID_PASS env variables must be set'
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
||||
const appName = context.packager.appInfo.productFilename;
|
||||
|
||||
await notarize({
|
||||
appBundleId: build.appId,
|
||||
appPath: `${appOutDir}/${appName}.app`,
|
||||
appleId: process.env.APPLE_ID,
|
||||
appleIdPassword: process.env.APPLE_ID_PASS,
|
||||
});
|
||||
};
|
||||
@@ -0,0 +1,33 @@
|
||||
# Logs
|
||||
logs
|
||||
*.log
|
||||
|
||||
# Runtime data
|
||||
pids
|
||||
*.pid
|
||||
*.seed
|
||||
|
||||
# Coverage directory used by tools like istanbul
|
||||
coverage
|
||||
.eslintcache
|
||||
|
||||
# Dependency directory
|
||||
# https://www.npmjs.org/doc/misc/npm-faq.html#should-i-check-my-node_modules-folder-into-git
|
||||
node_modules
|
||||
|
||||
# OSX
|
||||
.DS_Store
|
||||
|
||||
release/app/dist
|
||||
release/build
|
||||
.erb/dll
|
||||
|
||||
.idea
|
||||
npm-debug.log.*
|
||||
*.css.d.ts
|
||||
*.sass.d.ts
|
||||
*.scss.d.ts
|
||||
|
||||
# eslint ignores hidden directories by default:
|
||||
# https://github.com/eslint/eslint/issues/8429
|
||||
!.erb
|
||||
@@ -0,0 +1,55 @@
|
||||
module.exports = {
|
||||
extends: 'erb',
|
||||
rules: {
|
||||
// A temporary hack related to IDE not resolving correct package.json
|
||||
'import/no-extraneous-dependencies': 'off',
|
||||
'import/no-unresolved': 'error',
|
||||
// Since React 17 and typescript 4.1 you can safely disable the rule
|
||||
'react/react-in-jsx-scope': 'off',
|
||||
'prettier/prettier': 0,
|
||||
"global-require": 0,
|
||||
"import/prefer-default-export": "off",
|
||||
"no-empty-function": "off",
|
||||
"@typescript-eslint/no-empty-function": "off",
|
||||
'@typescript-eslint/lines-between-class-members': "off",
|
||||
"class-methods-use-this": "off",
|
||||
"promise/catch-or-return": "off",
|
||||
"promise/always-return": "off",
|
||||
"import/order": "off",
|
||||
"react/destructuring-assignment": "off",
|
||||
"promise/no-nesting": "off",
|
||||
"react-hooks/exhaustive-deps": "off",
|
||||
"@typescript-eslint/no-shadow": "off",
|
||||
"@typescript-eslint/no-use-before-define": "off",
|
||||
"jsx-a11y/click-events-have-key-events": "off",
|
||||
"jsx-a11y/no-static-element-interactions": "off",
|
||||
"react/require-default-props": "off",
|
||||
"consistent-return": "off",
|
||||
"no-underscore-dangle": "off",
|
||||
"no-restricted-syntax": "off",
|
||||
"@typescript-eslint/no-throw-literal": "off",
|
||||
"@typescript-eslint/no-unused-expressions": "off",
|
||||
"no-param-reassign": "off",
|
||||
"no-useless-escape": "off"
|
||||
},
|
||||
parserOptions: {
|
||||
ecmaVersion: 2020,
|
||||
sourceType: 'module',
|
||||
project: './tsconfig.json',
|
||||
tsconfigRootDir: __dirname,
|
||||
createDefaultProgram: true,
|
||||
},
|
||||
settings: {
|
||||
'import/resolver': {
|
||||
// See https://github.com/benmosher/eslint-plugin-import/issues/1396#issuecomment-575727774 for line below
|
||||
node: {},
|
||||
webpack: {
|
||||
config: require.resolve('./.erb/configs/webpack.config.eslint.ts'),
|
||||
},
|
||||
typescript: {},
|
||||
},
|
||||
'import/parsers': {
|
||||
'@typescript-eslint/parser': ['.ts', '.tsx'],
|
||||
},
|
||||
},
|
||||
};
|
||||
@@ -0,0 +1,17 @@
|
||||
* text eol=lf
|
||||
*.exe binary
|
||||
*.dll binary
|
||||
*.pdb binary
|
||||
*.wsf binary
|
||||
*.vbs binary
|
||||
*.png binary
|
||||
*.jpg binary
|
||||
*.jpeg binary
|
||||
*.gif binary
|
||||
*.ico binary
|
||||
*.icns binary
|
||||
*.eot binary
|
||||
*.otf binary
|
||||
*.ttf binary
|
||||
*.woff binary
|
||||
*.woff2 binary
|
||||
@@ -0,0 +1 @@
|
||||
patreon: bsmanager
|
||||
@@ -0,0 +1,29 @@
|
||||
# Logs
|
||||
logs
|
||||
*.log
|
||||
|
||||
# Runtime data
|
||||
pids
|
||||
*.pid
|
||||
*.seed
|
||||
|
||||
# Coverage directory used by tools like istanbul
|
||||
coverage
|
||||
.eslintcache
|
||||
|
||||
# Dependency directory
|
||||
# https://www.npmjs.org/doc/misc/npm-faq.html#should-i-check-my-node_modules-folder-into-git
|
||||
node_modules
|
||||
|
||||
# OSX
|
||||
.DS_Store
|
||||
|
||||
release/app/dist
|
||||
release/build
|
||||
.erb/dll
|
||||
|
||||
.idea
|
||||
npm-debug.log.*
|
||||
*.css.d.ts
|
||||
*.sass.d.ts
|
||||
*.scss.d.ts
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"recommendations": ["dbaeumer.vscode-eslint", "EditorConfig.EditorConfig"]
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"version": "0.2.0",
|
||||
"configurations": [
|
||||
{
|
||||
"name": "Electron: Main",
|
||||
"type": "node",
|
||||
"request": "launch",
|
||||
"protocol": "inspector",
|
||||
"runtimeExecutable": "npm",
|
||||
"runtimeArgs": [
|
||||
"run start:main --inspect=5858 --remote-debugging-port=9223"
|
||||
],
|
||||
"preLaunchTask": "Start Webpack Dev"
|
||||
},
|
||||
{
|
||||
"name": "Electron: Renderer",
|
||||
"type": "chrome",
|
||||
"request": "attach",
|
||||
"port": 9223,
|
||||
"webRoot": "${workspaceFolder}",
|
||||
"timeout": 15000
|
||||
}
|
||||
],
|
||||
"compounds": [
|
||||
{
|
||||
"name": "Electron: All",
|
||||
"configurations": ["Electron: Main", "Electron: Renderer"]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
{
|
||||
"files.associations": {
|
||||
".eslintrc": "jsonc",
|
||||
".prettierrc": "jsonc",
|
||||
".eslintignore": "ignore"
|
||||
},
|
||||
|
||||
"eslint.validate": [
|
||||
"javascript",
|
||||
"javascriptreact",
|
||||
"html",
|
||||
"typescriptreact"
|
||||
],
|
||||
|
||||
"javascript.validate.enable": false,
|
||||
"javascript.format.enable": false,
|
||||
"typescript.format.enable": false,
|
||||
|
||||
"search.exclude": {
|
||||
".git": true,
|
||||
".eslintcache": true,
|
||||
".erb/dll": true,
|
||||
"release/{build,app/dist}": true,
|
||||
"node_modules": true,
|
||||
"npm-debug.log.*": true,
|
||||
"test/**/__snapshots__": true,
|
||||
"package-lock.json": true,
|
||||
"*.{css,sass,scss}.d.ts": true
|
||||
},
|
||||
"editor.detectIndentation": false,
|
||||
"editor.tabSize": 4
|
||||
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"version": "2.0.0",
|
||||
"tasks": [
|
||||
{
|
||||
"type": "npm",
|
||||
"label": "Start Webpack Dev",
|
||||
"script": "start:renderer",
|
||||
"options": {
|
||||
"cwd": "${workspaceFolder}"
|
||||
},
|
||||
"isBackground": true,
|
||||
"problemMatcher": {
|
||||
"owner": "custom",
|
||||
"pattern": {
|
||||
"regexp": "____________"
|
||||
},
|
||||
"background": {
|
||||
"activeOnStart": true,
|
||||
"beginsPattern": "Compiling\\.\\.\\.$",
|
||||
"endsPattern": "(Compiled successfully|Failed to compile)\\.$"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
Before Width: | Height: | Size: 55 KiB |
|
Before Width: | Height: | Size: 1.3 MiB |
|
Before Width: | Height: | Size: 666 KiB |
|
Before Width: | Height: | Size: 212 KiB |
|
Before Width: | Height: | Size: 193 KiB |
|
Before Width: | Height: | Size: 396 KiB |
|
Before Width: | Height: | Size: 361 KiB |
|
Before Width: | Height: | Size: 2.2 MiB |
|
Before Width: | Height: | Size: 2.5 MiB |
|
Before Width: | Height: | Size: 2.4 MiB |
|
Before Width: | Height: | Size: 107 KiB |
|
Before Width: | Height: | Size: 87 KiB |
|
Before Width: | Height: | Size: 115 KiB |
|
Before Width: | Height: | Size: 86 KiB |
|
Before Width: | Height: | Size: 115 KiB |
|
Before Width: | Height: | Size: 104 KiB |
|
Before Width: | Height: | Size: 210 KiB |
|
Before Width: | Height: | Size: 29 MiB |
|
Before Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 55 KiB |
|
Before Width: | Height: | Size: 31 KiB |
|
Before Width: | Height: | Size: 965 KiB |
@@ -0,0 +1,21 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2015-present Electron React Boilerplate
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
@@ -0,0 +1,76 @@
|
||||
<p align="center">
|
||||
<a href="https://github.com/RiskiVR/BSLegacyLauncher">
|
||||
<img src="https://raw.githubusercontent.com/Zagrios/bs-manager/master/resources/readme/icon.svg" alt="logo" width="250px"/>
|
||||
</a>
|
||||
<h3 align="center">BSManager</h3>
|
||||
<p align="center">Simple and fancy tools that alow you to download, launch and manage BeatSaber versions, Maps and Mods easily and quickly.</p>
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
<img src="https://github.com/Zagrios/bs-manager/blob/master/resources/readme/beat-running.png?raw=true" width="130"/>
|
||||
</p>
|
||||
|
||||
<details open="open">
|
||||
<summary>
|
||||
<h2>Table of Contents</h2>
|
||||
</summary>
|
||||
<ol>
|
||||
<li>
|
||||
<a href="#about-the-project">About The Project</a>
|
||||
<ul><li><a href="#built-with">Built With</a></li></ul>
|
||||
</li>
|
||||
<li><a href="#how-to-use">How To Use</a></li>
|
||||
<li><a href="#having-problems">Having problems?</a></li>
|
||||
<li><a href="#acknowledgements">Acknowledgements</a></li>
|
||||
</ol>
|
||||
</details>
|
||||
|
||||
<h2 id="about-the-project">About The Project</h2>
|
||||
<p>
|
||||
Have you ever wanted to switch between multiple BeatSaber version? To have a specific version for you and your friends, or for personal use and Streaming use? Have you ever wanted to manage easily <b>Maps</b> and <b>Mods</b> between versions? All of that in one place? <b>Then this program is made for you!</b>
|
||||
<br/><br/>
|
||||
BSManager is designed to download any BeatSaber version from Steam's depots, and launch it within the same program!<br>
|
||||
- You can install as many versions as you want, customize them to quickly differentiate them, clone them to separate the additional contents of the same version!<br>
|
||||
- You can clone and launch your Steam version from the program!<br/><br/>
|
||||
<b>In the near future</b><br/>
|
||||
- You can Create a master Maps folder and link it across all versions!<br/>
|
||||
- You can download Maps with "OneClick"!<br/>
|
||||
- You can download Maps from BSManager!<br/>
|
||||
- You can download and manage Mods for each versions!<br/>
|
||||
- And even more!
|
||||
</p>
|
||||
<h3 id="built-with">Built With</h3>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="https://github.com/electron-react-boilerplate/electron-react-boilerplate">Electron React Boilerplate</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://github.com/SteamRE/DepotDownloader">DepotDownloader</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h2 id="how-to-use">How To Use</h2>
|
||||
<ul>
|
||||
<li>
|
||||
Download the latest release from <a href="https://github.com/Zagrios/bs-manager/releases">Releases</a>.
|
||||
</li>
|
||||
<li>Execute the installer and BSManager will start itself.</li>
|
||||
<li>Once its done if you want to download a version, select a version and download it!</li>
|
||||
<li>From the version page you can choose launch options, launch the version, and more from the dropdown menu!</li>
|
||||
</ul>
|
||||
|
||||
<h2 id="having-problems">Having problems?</h2>
|
||||
<p>
|
||||
See the <a href="https://github.com/Zagrios/bs-manager/issues">open issues</a> for a list of known issues, from there you can create a new issue for the problem you have!
|
||||
Otherwise you can add on to existing issues if one matches what you're encountering.
|
||||
</p>
|
||||
<h2 id="acknowledgements">Acknowledgement</h2>
|
||||
<ul>
|
||||
<li><a href="https://github.com/Zagrios">Zagrios</a> (Mathieu GRIES) - Founder, Lead Developer & Project Lead</li>
|
||||
<li><a href="https://github.com/Iluhadesu">Iluhadesu</a> - Custom DepotDownloader Developer</li>
|
||||
<li><a href="https://github.com/GaetanGrd">Gaëtan Gerard</a> - Main Alpha Tester</li>
|
||||
</ul>
|
||||
<p align="center">
|
||||
<img src="https://github.com/Zagrios/bs-manager/blob/master/resources/readme/beat-conflict.png?raw=true" width="130"/>
|
||||
</p>
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
<svg id="Calque_1" data-name="Calque 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000">
|
||||
<defs><style>.cls-1{fill:#606060;}.cls-2{fill:#106fbd;}.cls-3{fill:#012243;}.cls-4{fill:#fff;}.cls-5{fill:none;stroke:#ffed00;stroke-miterlimit:10;}.cls-6{fill:#8d0e0d;}.cls-7{fill:#b7292a;}</style></defs>
|
||||
|
||||
<path class="cls-2" d="M626.75,485.91l20.82,351.94a35.21,35.21,0,0,1-15.49,31.36L487.37,965.35l-.06,0A35.56,35.56,0,0,1,476,970.12a34.85,34.85,0,0,1-23.51-2.87L136.58,809.9a115.45,115.45,0,0,1-63.75-96.49L52,361.46a35.26,35.26,0,0,1,15.23-31.21l145.05-96.36a35.72,35.72,0,0,1,11.27-4.7,34.87,34.87,0,0,1,23.51,2.87L563,389.42a115.41,115.41,0,0,1,63.75,96.49Z"/>
|
||||
<path class="cls-3" d="M613.78,486.67l20.82,352a22.34,22.34,0,0,1-32.26,21.31L286.4,702.57A102.43,102.43,0,0,1,229.83,617L209,265a22.35,22.35,0,0,1,32.26-21.32L557.2,401.05A102.42,102.42,0,0,1,613.78,486.67Z"/>
|
||||
<path class="cls-5" d="M627.67,38h0"/>
|
||||
<path class="cls-6" d="M947.07,410.35,889.32,758.14a35.18,35.18,0,0,1-22.06,27.15L704.83,846.94l-.06,0a35.52,35.52,0,0,1-12.06,2.11,34.83,34.83,0,0,1-22.29-8L397.25,617.55a115.43,115.43,0,0,1-40.76-108.22l57.75-347.8A35.25,35.25,0,0,1,436,134.47L598.83,72.68a35.51,35.51,0,0,1,12-2.08,34.83,34.83,0,0,1,22.29,8L906.31,302.12a115.38,115.38,0,0,1,40.76,108.23Z"/>
|
||||
<path class="cls-7" d="M934.25,408.22,876.5,756a22.34,22.34,0,0,1-36.18,13.63L567.15,546.13a102.42,102.42,0,0,1-36.17-96L588.73,102.3a22.34,22.34,0,0,1,36.18-13.63L898.08,312.18A102.42,102.42,0,0,1,934.25,408.22Z"/><ellipse class="cls-4" cx="732.61" cy="429.16" rx="62.83" ry="110.73" transform="translate(-87.86 210.7) rotate(-15.45)"/></svg>
|
||||
|
Before Width: | Height: | Size: 1.6 KiB |
@@ -1,10 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" id="Calque_1" data-name="Calque 1" viewBox="0 0 1000 1000">
|
||||
<defs>
|
||||
<style>.cls-1{fill:#606060;}.cls-2{fill:#3B82FF;}.cls-3{fill:#12274C;}.cls-4{fill:#fff;}.cls-5{fill:none;stroke:#ffed00;stroke-miterlimit:10;}.cls-6{fill:#AB2424;}.cls-7{fill:#FF4444;}</style>
|
||||
</defs>
|
||||
<path class="cls-2" d="M626.75,485.91l20.82,351.94a35.21,35.21,0,0,1-15.49,31.36L487.37,965.35l-.06,0A35.56,35.56,0,0,1,476,970.12a34.85,34.85,0,0,1-23.51-2.87L136.58,809.9a115.45,115.45,0,0,1-63.75-96.49L52,361.46a35.26,35.26,0,0,1,15.23-31.21l145.05-96.36a35.72,35.72,0,0,1,11.27-4.7,34.87,34.87,0,0,1,23.51,2.87L563,389.42a115.41,115.41,0,0,1,63.75,96.49Z"/>
|
||||
<path class="cls-3" d="M613.78,486.67l20.82,352a22.34,22.34,0,0,1-32.26,21.31L286.4,702.57A102.43,102.43,0,0,1,229.83,617L209,265a22.35,22.35,0,0,1,32.26-21.32L557.2,401.05A102.42,102.42,0,0,1,613.78,486.67Z"/>
|
||||
<path class="cls-6" d="M947.07,410.35,889.32,758.14a35.18,35.18,0,0,1-22.06,27.15L704.83,846.94l-.06,0a35.52,35.52,0,0,1-12.06,2.11,34.83,34.83,0,0,1-22.29-8L397.25,617.55a115.43,115.43,0,0,1-40.76-108.22l57.75-347.8A35.25,35.25,0,0,1,436,134.47L598.83,72.68a35.51,35.51,0,0,1,12-2.08,34.83,34.83,0,0,1,22.29,8L906.31,302.12a115.38,115.38,0,0,1,40.76,108.23Z"/>
|
||||
<path class="cls-7" d="M934.25,408.22,876.5,756a22.34,22.34,0,0,1-36.18,13.63L567.15,546.13a102.42,102.42,0,0,1-36.17-96L588.73,102.3a22.34,22.34,0,0,1,36.18-13.63L898.08,312.18A102.42,102.42,0,0,1,934.25,408.22Z"/>
|
||||
<ellipse class="cls-4" cx="732.61" cy="429.16" rx="62.83" ry="110.73" transform="translate(-87.86 210.7) rotate(-15.45)"/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.6 KiB |
@@ -1,17 +0,0 @@
|
||||
<svg id="Calque_1" data-name="Calque 1"
|
||||
xmlns="http://www.w3.org/2000/svg" stroke="black" viewBox="0 0 1000 1000" stroke-width="0">
|
||||
<defs>
|
||||
<style>.cls-1{fill:#606060;}.cls-2{fill:#3B82FF;}.cls-3{fill:#12274C;}.cls-4{fill:#fff;}.cls-5{fill:none;stroke:#ffed00;stroke-miterlimit:10;}.cls-6{fill:#AB2424;}.cls-7{fill:#FF4444;}</style>
|
||||
</defs>
|
||||
<path class="cls-2" d="M626.75,485.91l20.82,351.94a35.21,35.21,0,0,1-15.49,31.36L487.37,965.35l-.06,0A35.56,35.56,0,0,1,476,970.12a34.85,34.85,0,0,1-23.51-2.87L136.58,809.9a115.45,115.45,0,0,1-63.75-96.49L52,361.46a35.26,35.26,0,0,1,15.23-31.21l145.05-96.36a35.72,35.72,0,0,1,11.27-4.7,34.87,34.87,0,0,1,23.51,2.87L563,389.42a115.41,115.41,0,0,1,63.75,96.49Z"/>
|
||||
<path class="cls-3" d="M613.78,486.67l20.82,352a22.34,22.34,0,0,1-32.26,21.31L286.4,702.57A102.43,102.43,0,0,1,229.83,617L209,265a22.35,22.35,0,0,1,32.26-21.32L557.2,401.05A102.42,102.42,0,0,1,613.78,486.67Z"/>
|
||||
<path stroke-width="2" class="cls-4" d="M718.29,776.48,700,804.18c-40.63,39.5-87.06,67.25-133.81,90.75-87.32,43.9-203.67,77.19-249,90.34a48,48,0,0,1-26.17.16c-64-17.72-188.62-72-236.28-125.49a4.23,4.23,0,0,1,5.3-6.45c35.64,20.87,111.22,57.64,156.37,74.22,49.18,18.06,81.29,8.74,92.28-3.26a4.77,4.77,0,0,1,7.24.21c19.51,24,107.26,4.6,166.64-13C546.91,892.66,668.42,835.1,718.29,776.48Z"/>
|
||||
<path stroke-width="2" class="cls-4" d="M522.09,933.81,374.64,989.49a3.92,3.92,0,0,0,1.44,7.58l54.62-.77a35.63,35.63,0,0,0,19-5.79l76-49.55A4,4,0,0,0,522.09,933.81Z"/>
|
||||
<path stroke-width="2" class="cls-4" d="M218.92,195.56c-21.14.07-33.55,35.86-33.16,89.08.2,28,2.58,92.74,4.79,147.73.23,5.71-8.18,6.48-9,.81L143.13,162.47a4.38,4.38,0,0,1,7.12-4,63.63,63.63,0,0,0,21.93,11.85,4.61,4.61,0,0,0,5.9-3.72c4.2-27.7,16.63-58.74,37.35-88.74a4.36,4.36,0,0,1,7.56.69c10.86,23.87,49,103.8,93.34,152.79a4.65,4.65,0,0,1-5.62,7.22C274.14,219.18,227.7,195.54,218.92,195.56Z"/>
|
||||
<path stroke-width="2" class="cls-4" d="M203.45,580.36a4.51,4.51,0,0,1-4.46-3.92L185.17,469.15A4.5,4.5,0,0,1,194.1,468l13.82,107.29a4.5,4.5,0,0,1-3.89,5A3.86,3.86,0,0,1,203.45,580.36Z"/>
|
||||
<path stroke-width="2" class="cls-4" d="M577.08,54.58c-46.79,15.85-115.45,40.56-158.73,62.79a35.5,35.5,0,0,0-18.57,24.53c-3.95,19.49-11,56.09-19,107.26-.7,4.48-7.36,3.78-7.11-.75L384.33,53.68a3.78,3.78,0,0,1,7.46-.66l3.49,14.85a2.57,2.57,0,0,0,4.69.77c6.18-10,22.37-32.79,57.32-65a4.13,4.13,0,0,1,6.56,4.72L431.31,81.25s78.78-19.37,144-33.09C579.42,47.29,581,53.24,577.08,54.58Z"/>
|
||||
<path class="cls-5" d="M627.67,38h0"/>
|
||||
<path class="cls-6" d="M947.07,410.35,889.32,758.14a35.18,35.18,0,0,1-22.06,27.15L704.83,846.94l-.06,0a35.52,35.52,0,0,1-12.06,2.11,34.83,34.83,0,0,1-22.29-8L397.25,617.55a115.43,115.43,0,0,1-40.76-108.22l57.75-347.8A35.25,35.25,0,0,1,436,134.47L598.83,72.68a35.51,35.51,0,0,1,12-2.08,34.83,34.83,0,0,1,22.29,8L906.31,302.12a115.38,115.38,0,0,1,40.76,108.23Z"/>
|
||||
<path class="cls-7" d="M934.25,408.22,876.5,756a22.34,22.34,0,0,1-36.18,13.63L567.15,546.13a102.42,102.42,0,0,1-36.17-96L588.73,102.3a22.34,22.34,0,0,1,36.18-13.63L898.08,312.18A102.42,102.42,0,0,1,934.25,408.22Z"/>
|
||||
<ellipse stroke-width="2" class="cls-4" cx="732.61" cy="429.16" rx="62.83" ry="110.73" transform="translate(-87.86 210.7) rotate(-15.45)"/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 3.1 KiB |
@@ -1,17 +0,0 @@
|
||||
<svg id="Calque_1" data-name="Calque 1"
|
||||
xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000" stroke="black" stroke-width="7">
|
||||
<defs>
|
||||
<style>.cls-1{fill:transparent;}.cls-2{fill:transparent;}.cls-3{fill:transparent;}.cls-4{fill:transparent;}cls-5{fill:transparent; stroke:#ffed00;stroke-miterlimit:10;}.cls-6{fill:transparent;}.cls-7{fill:transparent;}</style>
|
||||
</defs>
|
||||
<path class="cls-2" d="M626.75,485.91l20.82,351.94a35.21,35.21,0,0,1-15.49,31.36L487.37,965.35l-.06,0A35.56,35.56,0,0,1,476,970.12a34.85,34.85,0,0,1-23.51-2.87L136.58,809.9a115.45,115.45,0,0,1-63.75-96.49L52,361.46a35.26,35.26,0,0,1,15.23-31.21l145.05-96.36a35.72,35.72,0,0,1,11.27-4.7,34.87,34.87,0,0,1,23.51,2.87L563,389.42a115.41,115.41,0,0,1,63.75,96.49Z"/>
|
||||
<path class="cls-3" d="M613.78,486.67l20.82,352a22.34,22.34,0,0,1-32.26,21.31L286.4,702.57A102.43,102.43,0,0,1,229.83,617L209,265a22.35,22.35,0,0,1,32.26-21.32L557.2,401.05A102.42,102.42,0,0,1,613.78,486.67Z"/>
|
||||
<path class="cls-4" d="M718.29,776.48,700,804.18c-40.63,39.5-87.06,67.25-133.81,90.75-87.32,43.9-203.67,77.19-249,90.34a48,48,0,0,1-26.17.16c-64-17.72-188.62-72-236.28-125.49a4.23,4.23,0,0,1,5.3-6.45c35.64,20.87,111.22,57.64,156.37,74.22,49.18,18.06,81.29,8.74,92.28-3.26a4.77,4.77,0,0,1,7.24.21c19.51,24,107.26,4.6,166.64-13C546.91,892.66,668.42,835.1,718.29,776.48Z"/>
|
||||
<path class="cls-4" d="M522.09,933.81,374.64,989.49a3.92,3.92,0,0,0,1.44,7.58l54.62-.77a35.63,35.63,0,0,0,19-5.79l76-49.55A4,4,0,0,0,522.09,933.81Z"/>
|
||||
<path class="cls-4" d="M218.92,195.56c-21.14.07-33.55,35.86-33.16,89.08.2,28,2.58,92.74,4.79,147.73.23,5.71-8.18,6.48-9,.81L143.13,162.47a4.38,4.38,0,0,1,7.12-4,63.63,63.63,0,0,0,21.93,11.85,4.61,4.61,0,0,0,5.9-3.72c4.2-27.7,16.63-58.74,37.35-88.74a4.36,4.36,0,0,1,7.56.69c10.86,23.87,49,103.8,93.34,152.79a4.65,4.65,0,0,1-5.62,7.22C274.14,219.18,227.7,195.54,218.92,195.56Z"/>
|
||||
<path class="cls-4" d="M203.45,580.36a4.51,4.51,0,0,1-4.46-3.92L185.17,469.15A4.5,4.5,0,0,1,194.1,468l13.82,107.29a4.5,4.5,0,0,1-3.89,5A3.86,3.86,0,0,1,203.45,580.36Z"/>
|
||||
<path class="cls-4" d="M577.08,54.58c-46.79,15.85-115.45,40.56-158.73,62.79a35.5,35.5,0,0,0-18.57,24.53c-3.95,19.49-11,56.09-19,107.26-.7,4.48-7.36,3.78-7.11-.75L384.33,53.68a3.78,3.78,0,0,1,7.46-.66l3.49,14.85a2.57,2.57,0,0,0,4.69.77c6.18-10,22.37-32.79,57.32-65a4.13,4.13,0,0,1,6.56,4.72L431.31,81.25s78.78-19.37,144-33.09C579.42,47.29,581,53.24,577.08,54.58Z"/>
|
||||
<path class="cls-5" d="M627.67,38h0"/>
|
||||
<path class="cls-6" d="M947.07,410.35,889.32,758.14a35.18,35.18,0,0,1-22.06,27.15L704.83,846.94l-.06,0a35.52,35.52,0,0,1-12.06,2.11,34.83,34.83,0,0,1-22.29-8L397.25,617.55a115.43,115.43,0,0,1-40.76-108.22l57.75-347.8A35.25,35.25,0,0,1,436,134.47L598.83,72.68a35.51,35.51,0,0,1,12-2.08,34.83,34.83,0,0,1,22.29,8L906.31,302.12a115.38,115.38,0,0,1,40.76,108.23Z"/>
|
||||
<path class="cls-7" d="M934.25,408.22,876.5,756a22.34,22.34,0,0,1-36.18,13.63L567.15,546.13a102.42,102.42,0,0,1-36.17-96L588.73,102.3a22.34,22.34,0,0,1,36.18-13.63L898.08,312.18A102.42,102.42,0,0,1,934.25,408.22Z"/>
|
||||
<ellipse class="cls-4" cx="732.61" cy="429.16" rx="62.83" ry="110.73" transform="translate(-87.86 210.7) rotate(-15.45)"/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 3.1 KiB |
@@ -1,17 +0,0 @@
|
||||
<svg id="Calque_1" data-name="Calque 1"
|
||||
xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000" stroke="black" stroke-width="7">
|
||||
<defs>
|
||||
<style>.cls-1{fill:#606060;}.cls-2{fill:#3B82FF;}.cls-3{fill:#12274C;}.cls-4{fill:#fff;}.cls-5{fill:none;stroke:#ffed00;stroke-miterlimit:10;}.cls-6{fill:#AB2424;}.cls-7{fill:#FF4444;}</style>
|
||||
</defs>
|
||||
<path class="cls-2" d="M626.75,485.91l20.82,351.94a35.21,35.21,0,0,1-15.49,31.36L487.37,965.35l-.06,0A35.56,35.56,0,0,1,476,970.12a34.85,34.85,0,0,1-23.51-2.87L136.58,809.9a115.45,115.45,0,0,1-63.75-96.49L52,361.46a35.26,35.26,0,0,1,15.23-31.21l145.05-96.36a35.72,35.72,0,0,1,11.27-4.7,34.87,34.87,0,0,1,23.51,2.87L563,389.42a115.41,115.41,0,0,1,63.75,96.49Z"/>
|
||||
<path class="cls-3" d="M613.78,486.67l20.82,352a22.34,22.34,0,0,1-32.26,21.31L286.4,702.57A102.43,102.43,0,0,1,229.83,617L209,265a22.35,22.35,0,0,1,32.26-21.32L557.2,401.05A102.42,102.42,0,0,1,613.78,486.67Z"/>
|
||||
<path class="cls-4" d="M718.29,776.48,700,804.18c-40.63,39.5-87.06,67.25-133.81,90.75-87.32,43.9-203.67,77.19-249,90.34a48,48,0,0,1-26.17.16c-64-17.72-188.62-72-236.28-125.49a4.23,4.23,0,0,1,5.3-6.45c35.64,20.87,111.22,57.64,156.37,74.22,49.18,18.06,81.29,8.74,92.28-3.26a4.77,4.77,0,0,1,7.24.21c19.51,24,107.26,4.6,166.64-13C546.91,892.66,668.42,835.1,718.29,776.48Z"/>
|
||||
<path class="cls-4" d="M522.09,933.81,374.64,989.49a3.92,3.92,0,0,0,1.44,7.58l54.62-.77a35.63,35.63,0,0,0,19-5.79l76-49.55A4,4,0,0,0,522.09,933.81Z"/>
|
||||
<path class="cls-4" d="M218.92,195.56c-21.14.07-33.55,35.86-33.16,89.08.2,28,2.58,92.74,4.79,147.73.23,5.71-8.18,6.48-9,.81L143.13,162.47a4.38,4.38,0,0,1,7.12-4,63.63,63.63,0,0,0,21.93,11.85,4.61,4.61,0,0,0,5.9-3.72c4.2-27.7,16.63-58.74,37.35-88.74a4.36,4.36,0,0,1,7.56.69c10.86,23.87,49,103.8,93.34,152.79a4.65,4.65,0,0,1-5.62,7.22C274.14,219.18,227.7,195.54,218.92,195.56Z"/>
|
||||
<path class="cls-4" d="M203.45,580.36a4.51,4.51,0,0,1-4.46-3.92L185.17,469.15A4.5,4.5,0,0,1,194.1,468l13.82,107.29a4.5,4.5,0,0,1-3.89,5A3.86,3.86,0,0,1,203.45,580.36Z"/>
|
||||
<path class="cls-4" d="M577.08,54.58c-46.79,15.85-115.45,40.56-158.73,62.79a35.5,35.5,0,0,0-18.57,24.53c-3.95,19.49-11,56.09-19,107.26-.7,4.48-7.36,3.78-7.11-.75L384.33,53.68a3.78,3.78,0,0,1,7.46-.66l3.49,14.85a2.57,2.57,0,0,0,4.69.77c6.18-10,22.37-32.79,57.32-65a4.13,4.13,0,0,1,6.56,4.72L431.31,81.25s78.78-19.37,144-33.09C579.42,47.29,581,53.24,577.08,54.58Z"/>
|
||||
<path class="cls-5" d="M627.67,38h0"/>
|
||||
<path class="cls-6" d="M947.07,410.35,889.32,758.14a35.18,35.18,0,0,1-22.06,27.15L704.83,846.94l-.06,0a35.52,35.52,0,0,1-12.06,2.11,34.83,34.83,0,0,1-22.29-8L397.25,617.55a115.43,115.43,0,0,1-40.76-108.22l57.75-347.8A35.25,35.25,0,0,1,436,134.47L598.83,72.68a35.51,35.51,0,0,1,12-2.08,34.83,34.83,0,0,1,22.29,8L906.31,302.12a115.38,115.38,0,0,1,40.76,108.23Z"/>
|
||||
<path class="cls-7" d="M934.25,408.22,876.5,756a22.34,22.34,0,0,1-36.18,13.63L567.15,546.13a102.42,102.42,0,0,1-36.17-96L588.73,102.3a22.34,22.34,0,0,1,36.18-13.63L898.08,312.18A102.42,102.42,0,0,1,934.25,408.22Z"/>
|
||||
<ellipse class="cls-4" cx="732.61" cy="429.16" rx="62.83" ry="110.73" transform="translate(-87.86 210.7) rotate(-15.45)"/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 3.0 KiB |
@@ -1,17 +0,0 @@
|
||||
<svg id="Calque_1" data-name="Calque 1"
|
||||
xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000">
|
||||
<defs>
|
||||
<style>.cls-1{fill:#606060;}.cls-2{fill:#3B82FF;}.cls-3{fill:#12274C;}.cls-4{fill:#fff;}.cls-5{fill:none;stroke:#ffed00;stroke-miterlimit:10;}.cls-6{fill:#AB2424;}.cls-7{fill:#FF4444;}</style>
|
||||
</defs>
|
||||
<path class="cls-2" d="M626.75,485.91l20.82,351.94a35.21,35.21,0,0,1-15.49,31.36L487.37,965.35l-.06,0A35.56,35.56,0,0,1,476,970.12a34.85,34.85,0,0,1-23.51-2.87L136.58,809.9a115.45,115.45,0,0,1-63.75-96.49L52,361.46a35.26,35.26,0,0,1,15.23-31.21l145.05-96.36a35.72,35.72,0,0,1,11.27-4.7,34.87,34.87,0,0,1,23.51,2.87L563,389.42a115.41,115.41,0,0,1,63.75,96.49Z"/>
|
||||
<path class="cls-3" d="M613.78,486.67l20.82,352a22.34,22.34,0,0,1-32.26,21.31L286.4,702.57A102.43,102.43,0,0,1,229.83,617L209,265a22.35,22.35,0,0,1,32.26-21.32L557.2,401.05A102.42,102.42,0,0,1,613.78,486.67Z"/>
|
||||
<path class="cls-4" d="M718.29,776.48,700,804.18c-40.63,39.5-87.06,67.25-133.81,90.75-87.32,43.9-203.67,77.19-249,90.34a48,48,0,0,1-26.17.16c-64-17.72-188.62-72-236.28-125.49a4.23,4.23,0,0,1,5.3-6.45c35.64,20.87,111.22,57.64,156.37,74.22,49.18,18.06,81.29,8.74,92.28-3.26a4.77,4.77,0,0,1,7.24.21c19.51,24,107.26,4.6,166.64-13C546.91,892.66,668.42,835.1,718.29,776.48Z"/>
|
||||
<path class="cls-4" d="M522.09,933.81,374.64,989.49a3.92,3.92,0,0,0,1.44,7.58l54.62-.77a35.63,35.63,0,0,0,19-5.79l76-49.55A4,4,0,0,0,522.09,933.81Z"/>
|
||||
<path class="cls-4" d="M218.92,195.56c-21.14.07-33.55,35.86-33.16,89.08.2,28,2.58,92.74,4.79,147.73.23,5.71-8.18,6.48-9,.81L143.13,162.47a4.38,4.38,0,0,1,7.12-4,63.63,63.63,0,0,0,21.93,11.85,4.61,4.61,0,0,0,5.9-3.72c4.2-27.7,16.63-58.74,37.35-88.74a4.36,4.36,0,0,1,7.56.69c10.86,23.87,49,103.8,93.34,152.79a4.65,4.65,0,0,1-5.62,7.22C274.14,219.18,227.7,195.54,218.92,195.56Z"/>
|
||||
<path class="cls-4" d="M203.45,580.36a4.51,4.51,0,0,1-4.46-3.92L185.17,469.15A4.5,4.5,0,0,1,194.1,468l13.82,107.29a4.5,4.5,0,0,1-3.89,5A3.86,3.86,0,0,1,203.45,580.36Z"/>
|
||||
<path class="cls-4" d="M577.08,54.58c-46.79,15.85-115.45,40.56-158.73,62.79a35.5,35.5,0,0,0-18.57,24.53c-3.95,19.49-11,56.09-19,107.26-.7,4.48-7.36,3.78-7.11-.75L384.33,53.68a3.78,3.78,0,0,1,7.46-.66l3.49,14.85a2.57,2.57,0,0,0,4.69.77c6.18-10,22.37-32.79,57.32-65a4.13,4.13,0,0,1,6.56,4.72L431.31,81.25s78.78-19.37,144-33.09C579.42,47.29,581,53.24,577.08,54.58Z"/>
|
||||
<path class="cls-5" d="M627.67,38h0"/>
|
||||
<path class="cls-6" d="M947.07,410.35,889.32,758.14a35.18,35.18,0,0,1-22.06,27.15L704.83,846.94l-.06,0a35.52,35.52,0,0,1-12.06,2.11,34.83,34.83,0,0,1-22.29-8L397.25,617.55a115.43,115.43,0,0,1-40.76-108.22l57.75-347.8A35.25,35.25,0,0,1,436,134.47L598.83,72.68a35.51,35.51,0,0,1,12-2.08,34.83,34.83,0,0,1,22.29,8L906.31,302.12a115.38,115.38,0,0,1,40.76,108.23Z"/>
|
||||
<path class="cls-7" d="M934.25,408.22,876.5,756a22.34,22.34,0,0,1-36.18,13.63L567.15,546.13a102.42,102.42,0,0,1-36.17-96L588.73,102.3a22.34,22.34,0,0,1,36.18-13.63L898.08,312.18A102.42,102.42,0,0,1,934.25,408.22Z"/>
|
||||
<ellipse class="cls-4" cx="732.61" cy="429.16" rx="62.83" ry="110.73" transform="translate(-87.86 210.7) rotate(-15.45)"/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 3.0 KiB |
@@ -1,17 +0,0 @@
|
||||
<svg id="Calque_1" data-name="Calque 1"
|
||||
xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000">
|
||||
<defs>
|
||||
<style>.cls-1{fill:#606060;}.cls-2{fill:#106fbd;}.cls-3{fill:#012243;}.cls-4{fill:#fff;}.cls-5{fill:none;stroke:#ffed00;stroke-miterlimit:10;}.cls-6{fill:#8d0e0d;}.cls-7{fill:#b7292a;}</style>
|
||||
</defs>
|
||||
<path class="cls-2" d="M626.75,485.91l20.82,351.94a35.21,35.21,0,0,1-15.49,31.36L487.37,965.35l-.06,0A35.56,35.56,0,0,1,476,970.12a34.85,34.85,0,0,1-23.51-2.87L136.58,809.9a115.45,115.45,0,0,1-63.75-96.49L52,361.46a35.26,35.26,0,0,1,15.23-31.21l145.05-96.36a35.72,35.72,0,0,1,11.27-4.7,34.87,34.87,0,0,1,23.51,2.87L563,389.42a115.41,115.41,0,0,1,63.75,96.49Z"/>
|
||||
<path class="cls-3" d="M613.78,486.67l20.82,352a22.34,22.34,0,0,1-32.26,21.31L286.4,702.57A102.43,102.43,0,0,1,229.83,617L209,265a22.35,22.35,0,0,1,32.26-21.32L557.2,401.05A102.42,102.42,0,0,1,613.78,486.67Z"/>
|
||||
<path class="cls-4" d="M718.29,776.48,700,804.18c-40.63,39.5-87.06,67.25-133.81,90.75-87.32,43.9-203.67,77.19-249,90.34a48,48,0,0,1-26.17.16c-64-17.72-188.62-72-236.28-125.49a4.23,4.23,0,0,1,5.3-6.45c35.64,20.87,111.22,57.64,156.37,74.22,49.18,18.06,81.29,8.74,92.28-3.26a4.77,4.77,0,0,1,7.24.21c19.51,24,107.26,4.6,166.64-13C546.91,892.66,668.42,835.1,718.29,776.48Z"/>
|
||||
<path class="cls-4" d="M522.09,933.81,374.64,989.49a3.92,3.92,0,0,0,1.44,7.58l54.62-.77a35.63,35.63,0,0,0,19-5.79l76-49.55A4,4,0,0,0,522.09,933.81Z"/>
|
||||
<path class="cls-4" d="M218.92,195.56c-21.14.07-33.55,35.86-33.16,89.08.2,28,2.58,92.74,4.79,147.73.23,5.71-8.18,6.48-9,.81L143.13,162.47a4.38,4.38,0,0,1,7.12-4,63.63,63.63,0,0,0,21.93,11.85,4.61,4.61,0,0,0,5.9-3.72c4.2-27.7,16.63-58.74,37.35-88.74a4.36,4.36,0,0,1,7.56.69c10.86,23.87,49,103.8,93.34,152.79a4.65,4.65,0,0,1-5.62,7.22C274.14,219.18,227.7,195.54,218.92,195.56Z"/>
|
||||
<path class="cls-4" d="M203.45,580.36a4.51,4.51,0,0,1-4.46-3.92L185.17,469.15A4.5,4.5,0,0,1,194.1,468l13.82,107.29a4.5,4.5,0,0,1-3.89,5A3.86,3.86,0,0,1,203.45,580.36Z"/>
|
||||
<path class="cls-4" d="M577.08,54.58c-46.79,15.85-115.45,40.56-158.73,62.79a35.5,35.5,0,0,0-18.57,24.53c-3.95,19.49-11,56.09-19,107.26-.7,4.48-7.36,3.78-7.11-.75L384.33,53.68a3.78,3.78,0,0,1,7.46-.66l3.49,14.85a2.57,2.57,0,0,0,4.69.77c6.18-10,22.37-32.79,57.32-65a4.13,4.13,0,0,1,6.56,4.72L431.31,81.25s78.78-19.37,144-33.09C579.42,47.29,581,53.24,577.08,54.58Z"/>
|
||||
<path class="cls-5" d="M627.67,38h0"/>
|
||||
<path class="cls-6" d="M947.07,410.35,889.32,758.14a35.18,35.18,0,0,1-22.06,27.15L704.83,846.94l-.06,0a35.52,35.52,0,0,1-12.06,2.11,34.83,34.83,0,0,1-22.29-8L397.25,617.55a115.43,115.43,0,0,1-40.76-108.22l57.75-347.8A35.25,35.25,0,0,1,436,134.47L598.83,72.68a35.51,35.51,0,0,1,12-2.08,34.83,34.83,0,0,1,22.29,8L906.31,302.12a115.38,115.38,0,0,1,40.76,108.23Z"/>
|
||||
<path class="cls-7" d="M934.25,408.22,876.5,756a22.34,22.34,0,0,1-36.18,13.63L567.15,546.13a102.42,102.42,0,0,1-36.17-96L588.73,102.3a22.34,22.34,0,0,1,36.18-13.63L898.08,312.18A102.42,102.42,0,0,1,934.25,408.22Z"/>
|
||||
<ellipse class="cls-4" cx="732.61" cy="429.16" rx="62.83" ry="110.73" transform="translate(-87.86 210.7) rotate(-15.45)"/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 3.0 KiB |
@@ -1,11 +0,0 @@
|
||||
<svg id="Calque_1" data-name="Calque 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000">
|
||||
<g style="fill:#106fbd;">
|
||||
<path d="M626.75,485.91l20.82,351.94a35.21,35.21,0,0,1-15.49,31.36L487.37,965.35l-.06,0A35.56,35.56,0,0,1,476,970.12a34.85,34.85,0,0,1-23.51-2.87L136.58,809.9a115.45,115.45,0,0,1-63.75-96.49L52,361.46a35.26,35.26,0,0,1,15.23-31.21l145.05-96.36a35.72,35.72,0,0,1,11.27-4.7,34.87,34.87,0,0,1,23.51,2.87L563,389.42a115.41,115.41,0,0,1,63.75,96.49Z"/>
|
||||
<path style="filter: brightness(30%);" d="M613.78,486.67l20.82,352a22.34,22.34,0,0,1-32.26,21.31L286.4,702.57A102.43,102.43,0,0,1,229.83,617L209,265a22.35,22.35,0,0,1,32.26-21.32L557.2,401.05A102.42,102.42,0,0,1,613.78,486.67Z"/>
|
||||
</g>
|
||||
<g style="fill:#b7292a;">
|
||||
<path style="filter: brightness(60%) saturate(120%);" d="M947.07,410.35,889.32,758.14a35.18,35.18,0,0,1-22.06,27.15L704.83,846.94l-.06,0a35.52,35.52,0,0,1-12.06,2.11,34.83,34.83,0,0,1-22.29-8L397.25,617.55a115.43,115.43,0,0,1-40.76-108.22l57.75-347.8A35.25,35.25,0,0,1,436,134.47L598.83,72.68a35.51,35.51,0,0,1,12-2.08,34.83,34.83,0,0,1,22.29,8L906.31,302.12a115.38,115.38,0,0,1,40.76,108.23Z"/>
|
||||
<path d="M934.25,408.22,876.5,756a22.34,22.34,0,0,1-36.18,13.63L567.15,546.13a102.42,102.42,0,0,1-36.17-96L588.73,102.3a22.34,22.34,0,0,1,36.18-13.63L898.08,312.18A102.42,102.42,0,0,1,934.25,408.22Z"/>
|
||||
</g>
|
||||
<ellipse style="fill:#fff;" class="cls-4" cx="732.61" cy="429.16" rx="62.83" ry="110.73" transform="translate(-87.86 210.7) rotate(-15.45)"/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.5 KiB |
@@ -1 +0,0 @@
|
||||
ABCDEFGHIJKLMNOPQRSTUVWXYZ
|
||||
@@ -0,0 +1,46 @@
|
||||
type Styles = Record<string, string>;
|
||||
|
||||
declare module '*.svg' {
|
||||
const content: string;
|
||||
export default content;
|
||||
}
|
||||
|
||||
declare module '*.png' {
|
||||
const content: string;
|
||||
export default content;
|
||||
}
|
||||
|
||||
declare module '*.webp' {
|
||||
const content: string;
|
||||
export default content;
|
||||
}
|
||||
|
||||
declare module '*.mp4' {
|
||||
const content: string;
|
||||
export default content;
|
||||
}
|
||||
|
||||
declare module '*.jpg' {
|
||||
const content: string;
|
||||
export default content;
|
||||
}
|
||||
|
||||
declare module '*.gif' {
|
||||
const content: string;
|
||||
export default content;
|
||||
}
|
||||
|
||||
declare module '*.scss' {
|
||||
const content: Styles;
|
||||
export default content;
|
||||
}
|
||||
|
||||
declare module '*.sass' {
|
||||
const content: Styles;
|
||||
export default content;
|
||||
}
|
||||
|
||||
declare module '*.css' {
|
||||
const content: Styles;
|
||||
export default content;
|
||||
}
|
||||
|
After Width: | Height: | Size: 442 KiB |
|
Before Width: | Height: | Size: 260 KiB After Width: | Height: | Size: 260 KiB |
|
After Width: | Height: | Size: 314 KiB |
|
Before Width: | Height: | Size: 188 KiB After Width: | Height: | Size: 188 KiB |
|
After Width: | Height: | Size: 284 KiB |
|
After Width: | Height: | Size: 191 KiB |
|
After Width: | Height: | Size: 55 KiB |
|
After Width: | Height: | Size: 52 KiB |
|
After Width: | Height: | Size: 137 KiB |
|
After Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 851 KiB |
|
After Width: | Height: | Size: 1.1 MiB |
|
After Width: | Height: | Size: 337 KiB |
|
After Width: | Height: | Size: 1.1 MiB |
|
After Width: | Height: | Size: 197 KiB |
|
After Width: | Height: | Size: 1.1 MiB |
|
After Width: | Height: | Size: 353 KiB |
|
After Width: | Height: | Size: 698 KiB |
|
After Width: | Height: | Size: 176 KiB |
|
After Width: | Height: | Size: 1.5 MiB |
|
After Width: | Height: | Size: 3.4 MiB |
|
After Width: | Height: | Size: 1.2 MiB |
|
After Width: | Height: | Size: 2.0 MiB |
|
After Width: | Height: | Size: 1.2 MiB |
|
After Width: | Height: | Size: 2.0 MiB |
@@ -0,0 +1,481 @@
|
||||
[
|
||||
{
|
||||
"BSVersion": "0.10.1",
|
||||
"BSManifest": "6316038906315325420",
|
||||
"ReleaseURL": "https://steamcommunity.com/games/620980/announcements/detail/1662268711472777795",
|
||||
"ReleaseImg": "https://steamcdn-a.akamaihd.net/steamcommunity/public/images/clans/32055887/a6d2b9ce074e71458499defdb5ef83bc4b9b56bb.png",
|
||||
"ReleaseDate": "1525201860",
|
||||
"year": "2018"
|
||||
},
|
||||
{
|
||||
"BSVersion": "0.10.2",
|
||||
"BSManifest": "2542095265882143144",
|
||||
"ReleaseURL": "https://steamcommunity.com/games/620980/announcements/detail/3199123443061240805",
|
||||
"ReleaseDate": "1526065860",
|
||||
"year": "2018"
|
||||
},
|
||||
{
|
||||
"BSVersion": "0.10.2p1",
|
||||
"BSManifest": "5611588554149133260",
|
||||
"ReleaseURL": "https://steamcommunity.com/games/620980/announcements/detail/1660018815112331498",
|
||||
"ReleaseDate": "1526843460",
|
||||
"year": "2018"
|
||||
},
|
||||
{
|
||||
"BSVersion": "0.11.0b1",
|
||||
"BSManifest": "8892605455517437772",
|
||||
"ReleaseDate": "1530472260",
|
||||
"year": "2018"
|
||||
},
|
||||
{
|
||||
"BSVersion": "0.11.0",
|
||||
"BSManifest": "8700049030626148111",
|
||||
"ReleaseURL": "https://steamcommunity.com/games/620980/announcements/detail/1675787121569907303",
|
||||
"ReleaseDate": "1532027460",
|
||||
"year": "2018"
|
||||
},
|
||||
{
|
||||
"BSVersion": "0.11.1",
|
||||
"BSManifest": "6574193224879562324",
|
||||
"ReleaseURL": "https://steamcommunity.com/games/620980/announcements/detail/1675787121577641471",
|
||||
"ReleaseDate": "1532113860",
|
||||
"year": "2018"
|
||||
},
|
||||
{
|
||||
"BSVersion": "0.11.2",
|
||||
"BSManifest": "2707973953401625222",
|
||||
"ReleaseURL": "https://steamcommunity.com/games/620980/announcements/detail/1700559455389069835",
|
||||
"ReleaseDate": "1534792260",
|
||||
"year": "2018"
|
||||
},
|
||||
{
|
||||
"BSVersion": "0.12.0",
|
||||
"BSManifest": "6094599000655593822",
|
||||
"ReleaseURL": "https://steamcommunity.com/games/620980/announcements/detail/1708449632708343984",
|
||||
"ReleaseDate": "1543349460",
|
||||
"year": "2018"
|
||||
},
|
||||
{
|
||||
"BSVersion": "0.12.0p1",
|
||||
"BSManifest": "2068421223689664394",
|
||||
"ReleaseURL": "https://steamcommunity.com/games/620980/announcements/detail/1708450266986928520",
|
||||
"ReleaseDate": "1543435860",
|
||||
"year": "2018"
|
||||
},
|
||||
{
|
||||
"BSVersion": "0.12.1",
|
||||
"BSManifest": "2472041066434647526",
|
||||
"ReleaseURL": "https://steamcommunity.com/games/620980/announcements/detail/3142848113551335636",
|
||||
"ReleaseImg": "https://steamcdn-a.akamaihd.net/steamcommunity/public/images/clans/32055887/9b4b1890f39a682c6f4a06f12a56965b7aee0b6c.jpg",
|
||||
"ReleaseDate": "1544818260",
|
||||
"year": "2018"
|
||||
},
|
||||
{
|
||||
"BSVersion": "0.12.2",
|
||||
"BSManifest": "5325635033564462932",
|
||||
"ReleaseURL": "https://steamcommunity.com/games/620980/announcements/detail/1708452169977638962",
|
||||
"ReleaseImg": "https://steamcdn-a.akamaihd.net/steamcommunity/public/images/clans/32055887/82e2ce43df0e59337a79341c54ac2e5e12a5e7bc.jpg",
|
||||
"ReleaseDate": "1545423060",
|
||||
"year": "2018"
|
||||
},
|
||||
{
|
||||
"BSVersion": "0.13.0",
|
||||
"BSManifest": "3102409495238838111",
|
||||
"ReleaseURL": "https://steamcommunity.com/games/620980/announcements/detail/1809790777736470809",
|
||||
"ReleaseImg": "https://steamcdn-a.akamaihd.net/steamcommunity/public/images/clans/32055887/8f2128973e6d221b4f00aedb5194417eadad9920.jpg",
|
||||
"ReleaseDate": "1552594260",
|
||||
"year": "2019"
|
||||
},
|
||||
{
|
||||
"BSVersion": "0.13.0p1",
|
||||
"BSManifest": "6827433614670733798",
|
||||
"ReleaseURL": "https://steamcommunity.com/games/620980/announcements/detail/1809790964563689188",
|
||||
"ReleaseDate": "1553026260",
|
||||
"year": "2019"
|
||||
},
|
||||
{
|
||||
"BSVersion": "0.13.1",
|
||||
"BSManifest": "6033025349617217666",
|
||||
"ReleaseURL": "https://steamcommunity.com/games/620980/announcements/detail/1735482645687974657",
|
||||
"ReleaseDate": "1554145860",
|
||||
"year": "2019"
|
||||
},
|
||||
{
|
||||
"BSVersion": "0.13.2",
|
||||
"BSManifest": "6839388023573913446",
|
||||
"ReleaseURL": "https://steamcommunity.com/games/620980/announcements/detail/1779393376014546213",
|
||||
"ReleaseDate": "1554405060",
|
||||
"year": "2019"
|
||||
},
|
||||
{
|
||||
"BSVersion": "1.0.0",
|
||||
"BSManifest": "152937782137361764",
|
||||
"ReleaseURL": "https://steamcommunity.com/games/620980/announcements/detail/2655347409592352590",
|
||||
"ReleaseImg": "https://steamcdn-a.akamaihd.net/steamcommunity/public/images/clans/32055887/023ab2b6a2f811e2beea327ae3875da643101694.jpg",
|
||||
"ReleaseDate": "1558465860",
|
||||
"year": "2019"
|
||||
},
|
||||
{
|
||||
"BSVersion": "1.0.1",
|
||||
"BSManifest": "7950322551526208347",
|
||||
"ReleaseURL": "https://steamcommunity.com/games/620980/announcements/detail/1617268229025488499",
|
||||
"ReleaseDate": "1558984260",
|
||||
"year": "2019"
|
||||
},
|
||||
{
|
||||
"BSVersion": "1.1.0",
|
||||
"BSManifest": "1400454104881094752",
|
||||
"ReleaseURL": "https://steamcommunity.com/games/620980/announcements/detail/1606010497768610092",
|
||||
"ReleaseDate": "1560193860",
|
||||
"year": "2019"
|
||||
},
|
||||
{
|
||||
"BSVersion": "1.1.0p1",
|
||||
"BSManifest": "1041583928494277430",
|
||||
"ReleaseURL": "https://steamcommunity.com/games/620980/announcements/detail/1607139567641962696",
|
||||
"ReleaseDate": "1563217860",
|
||||
"year": "2019"
|
||||
},
|
||||
{
|
||||
"BSVersion": "1.2.0",
|
||||
"BSManifest": "3820905673516362176",
|
||||
"ReleaseURL": "https://steamcommunity.com/games/620980/announcements/detail/3266717385279679846",
|
||||
"ReleaseImg": "https://steamcdn-a.akamaihd.net/steamcommunity/public/images/clans/32055887/cd96e7e784bb8761ba8e8609285baa5e1aec0d85.jpg",
|
||||
"ReleaseDate": "1564081860",
|
||||
"year": "2019"
|
||||
},
|
||||
{
|
||||
"BSVersion": "1.3.0",
|
||||
"BSManifest": "2440312204809283162",
|
||||
"ReleaseURL": "https://steamcommunity.com/games/620980/announcements/detail/1602640407719691235",
|
||||
"ReleaseImg": "https://steamcdn-a.akamaihd.net/steamcommunity/public/images/clans/32055887/7aec534fb70fafa582addd6cd52998ccc31adf57.jpg",
|
||||
"ReleaseDate": "1567105860",
|
||||
"year": "2019"
|
||||
},
|
||||
{
|
||||
"BSVersion": "1.4.0",
|
||||
"BSManifest": "3532596684905902618",
|
||||
"ReleaseURL": "https://steamcommunity.com/games/620980/announcements/detail/1595888090489865366",
|
||||
"ReleaseImg": "https://cdn.akamai.steamstatic.com/steamcommunity/public/images/clans/32055887/2998e47ebbc57552718bb95e233a3a43d598630f.png",
|
||||
"ReleaseDate": "1567105860",
|
||||
"year": "2019"
|
||||
},
|
||||
{
|
||||
"BSVersion": "1.4.2",
|
||||
"BSManifest": "1199049250928380207",
|
||||
"ReleaseURL": "https://steamcommunity.com/games/620980/announcements/detail/3172148783714663931",
|
||||
"ReleaseImg": "https://cdn.akamai.steamstatic.com/steamcommunity/public/images/clans/32055887/b35d93fe817cea38c92c266579395c1fcd275af2.jpg",
|
||||
"ReleaseDate": "1570821060",
|
||||
"year": "2019"
|
||||
},
|
||||
{
|
||||
"BSVersion": "1.5.0",
|
||||
"BSManifest": "2831333980042022356",
|
||||
"ReleaseURL": "https://steamcommunity.com/games/620980/announcements/detail/1604898551795379829",
|
||||
"ReleaseImg": "https://cdn.akamai.steamstatic.com/steamcommunity/public/images/clans/32055887/56dbb4a14b764ccea1de93625225b83de1636aee_400x225.jpg",
|
||||
"ReleaseDate": "1573157460",
|
||||
"year": "2019"
|
||||
},
|
||||
{
|
||||
"BSVersion": "1.6.0",
|
||||
"BSManifest": "1869974316274529288",
|
||||
"ReleaseURL": "https://steamcommunity.com/games/620980/announcements/detail/3462636667924814182",
|
||||
"ReleaseImg": "https://cdn.akamai.steamstatic.com/steamcommunity/public/images/clans/32055887/99a5ad752c76859e8697d75a140500195969fb2d.jpg",
|
||||
"ReleaseDate": "1576267860",
|
||||
"year": "2019"
|
||||
},
|
||||
{
|
||||
"BSVersion": "1.6.1",
|
||||
"BSManifest": "6122319670026856947",
|
||||
"ReleaseURL": "https://steamcommunity.com/games/620980/announcements/detail/1702855647517326143",
|
||||
"ReleaseImg": "https://cdn.akamai.steamstatic.com/steamcommunity/public/images/clans/32055887/5e54a041cc52674f03a4d7c5406f2bb42d1f379b_400x225.jpg",
|
||||
"ReleaseDate": "1578427860",
|
||||
"year": "2020"
|
||||
},
|
||||
{
|
||||
"BSVersion": "1.6.2",
|
||||
"BSManifest": "4932559146183937357",
|
||||
"ReleaseURL": "https://steamcommunity.com/games/620980/announcements/detail/1702857555888635029",
|
||||
"ReleaseImg": "https://cdn.akamai.steamstatic.com/steamcommunity/public/images/clans/32055887/5e54a041cc52674f03a4d7c5406f2bb42d1f379b_400x225.jpg",
|
||||
"ReleaseDate": "1578600660",
|
||||
"year": "2020"
|
||||
},
|
||||
{
|
||||
"BSVersion": "1.7.0",
|
||||
"BSManifest": "3516084911940449222",
|
||||
"ReleaseURL": "https://steamcommunity.com/games/620980/announcements/detail/1708488968117071534",
|
||||
"ReleaseImg": "https://cdn.akamai.steamstatic.com/steamcommunity/public/images/clans/32055887/ddf8c11e64231bf86ff18f5bb7d81f7dec7bc655_400x225.png",
|
||||
"ReleaseDate": "1580328660",
|
||||
"year": "2020"
|
||||
},
|
||||
{
|
||||
"BSVersion": "1.8.0",
|
||||
"BSManifest": "3177969677109016846",
|
||||
"ReleaseURL": "https://steamcommunity.com/games/620980/announcements/detail/2080040995048021450",
|
||||
"ReleaseImg": "https://cdn.akamai.steamstatic.com/steamcommunity/public/images/clans/32055887/ef301c5813a7f029156da357a997f17f80564a17_400x225.png",
|
||||
"ReleaseDate": "1585253460",
|
||||
"year": "2020"
|
||||
},
|
||||
{
|
||||
"BSVersion": "1.9.0",
|
||||
"BSManifest": "7885463693258878294",
|
||||
"ReleaseURL": "https://steamcommunity.com/games/620980/announcements/detail/2194884053816491058",
|
||||
"ReleaseImg": "https://cdn.akamai.steamstatic.com/steamcommunity/public/images/clans/32055887/8b365e3fdd9e8494987ea92543114404f20db891.png",
|
||||
"ReleaseDate": "1586459460",
|
||||
"year": "2020"
|
||||
},
|
||||
{
|
||||
"BSVersion": "1.9.1",
|
||||
"BSManifest": "6222769774084748916",
|
||||
"ReleaseURL": "https://steamcommunity.com/games/620980/announcements/detail/2196011856188103369",
|
||||
"ReleaseImg": "https://cdn.akamai.steamstatic.com/steamcommunity/public/images/clans/32055887/144427845aef04dbe4aa9dee62818f2d637e1f42_400x225.png",
|
||||
"ReleaseDate": "1588705860",
|
||||
"year": "2020"
|
||||
},
|
||||
{
|
||||
"BSVersion": "1.10.0",
|
||||
"BSManifest": "6711131863503994755",
|
||||
"ReleaseURL": "https://steamcommunity.com/games/620980/announcements/detail/2179125258536373088",
|
||||
"ReleaseImg": "https://cdn.akamai.steamstatic.com/steamcommunity/public/images/clans/32055887/3a13e1c04c4f91a16c53fdb3a7662bcae60f48fa.png",
|
||||
"ReleaseDate": "1590433860",
|
||||
"year": "2020"
|
||||
},
|
||||
{
|
||||
"BSVersion": "1.11.0",
|
||||
"BSManifest": "1919603726987963829",
|
||||
"ReleaseURL": "https://steamcommunity.com/games/620980/announcements/detail/3961432516746159538",
|
||||
"ReleaseImg": "https://cdn.akamai.steamstatic.com/steamcommunity/public/images/clans/32055887/afba23a3fcc80b6d2c40d2acd9ab9a51be9d3eee.png",
|
||||
"ReleaseDate": "1597691460",
|
||||
"year": "2020"
|
||||
},
|
||||
{
|
||||
"BSVersion": "1.11.1",
|
||||
"BSManifest": "3268824881806146387",
|
||||
"ReleaseDate": "1597950660",
|
||||
"year": "2020"
|
||||
},
|
||||
{
|
||||
"BSVersion": "1.12.1",
|
||||
"BSManifest": "2928416283534881313",
|
||||
"ReleaseURL": "https://steamcommunity.com/games/620980/announcements/detail/2889580787311737971",
|
||||
"ReleaseImg": "https://cdn.akamai.steamstatic.com/steamcommunity/public/images/clans/32055887/cb8f24404f10a177e0ff60473f9293c8fb9b5496.png",
|
||||
"ReleaseDate": "1602616260",
|
||||
"year": "2020"
|
||||
},
|
||||
{
|
||||
"BSVersion": "1.12.2",
|
||||
"BSManifest": "543439039654962432",
|
||||
"ReleaseURL": "https://steamcommunity.com/games/620980/announcements/detail/5096345334644252275",
|
||||
"ReleaseImg": "https://cdn.akamai.steamstatic.com/steamcommunity/public/images/clans/32055887/56d1d6b2a2687530a5db221241cc4d7e4feefb4d.png",
|
||||
"ReleaseDate": "1603134660",
|
||||
"year": "2020"
|
||||
},
|
||||
{
|
||||
"BSVersion": "1.13.0",
|
||||
"BSManifest": "4635119747389290346",
|
||||
"ReleaseURL": "https://steamcommunity.com/games/620980/announcements/detail/2903094755791760339",
|
||||
"ReleaseImg": "https://cdn.akamai.steamstatic.com/steamcommunity/public/images/clans/32055887/4ae946eda7c0bc9421c2afb7b33e965103924cb9.png",
|
||||
"ReleaseDate": "1605211860",
|
||||
"year": "2020"
|
||||
},
|
||||
{
|
||||
"BSVersion": "1.13.2",
|
||||
"BSManifest": "8571679771389514488",
|
||||
"ReleaseURL": "https://steamcommunity.com/games/620980/announcements/detail/3025824186763919109",
|
||||
"ReleaseImg": "https://cdn.akamai.steamstatic.com/steamcommunity/public/images/clans/32055887/70f13d02f95c7fadae92305474ae16ce1b99162e.jpg",
|
||||
"ReleaseDate": "1611259860",
|
||||
"year": "2021"
|
||||
},
|
||||
{
|
||||
"BSVersion": "1.13.4",
|
||||
"BSManifest": "1257277263145069282",
|
||||
"ReleaseURL": "https://steamcommunity.com/games/620980/announcements/detail/3020198491530803202",
|
||||
"ReleaseImg": "https://cdn.akamai.steamstatic.com/steamcommunity/public/images/clans/32055887/78643cb3c68591da1e69550300a6452390c3e797.png",
|
||||
"ReleaseDate": "1615320660",
|
||||
"year": "2021"
|
||||
},
|
||||
{
|
||||
"BSVersion": "1.13.5",
|
||||
"BSManifest": "7007516983116400336",
|
||||
"ReleaseURL": "https://steamcommunity.com/games/620980/announcements/detail/3021325027071201045",
|
||||
"ReleaseImg": "https://cdn.akamai.steamstatic.com/steamcommunity/public/images/clans/32055887/2611baaea1f0e49be4f611fed4a3cb5d155c8eb5.png",
|
||||
"ReleaseDate": "1615579860",
|
||||
"year": "2021"
|
||||
},
|
||||
{
|
||||
"BSVersion": "1.14.0",
|
||||
"BSManifest": "9218225910501819399",
|
||||
"ReleaseURL": "https://steamcommunity.com/games/620980/announcements/detail/3012318462417082617",
|
||||
"ReleaseImg": "https://cdn.akamai.steamstatic.com/steamcommunity/public/images/clans/32055887/51750f9885b9fe51df5820ba0e7f36c9b2154d22.png",
|
||||
"ReleaseDate": "1616098260",
|
||||
"year": "2021"
|
||||
},
|
||||
{
|
||||
"BSVersion": "1.15.0",
|
||||
"BSManifest": "7624554893344753887",
|
||||
"ReleaseURL": "https://steamcommunity.com/games/620980/announcements/detail/3041595663499101523",
|
||||
"ReleaseImg": "https://cdn.akamai.steamstatic.com/steamcommunity/public/images/clans/32055887/e8de2954a115e1961bdbfa3abab546d43dd653a4.png",
|
||||
"ReleaseDate": "1619723460",
|
||||
"year": "2021"
|
||||
},
|
||||
{
|
||||
"BSVersion": "1.16.0",
|
||||
"BSManifest": "3667184295685865706",
|
||||
"ReleaseURL": "https://steamcommunity.com/games/620980/announcements/detail/3001065803744427929",
|
||||
"ReleaseImg": "https://cdn.akamai.steamstatic.com/steamcommunity/public/images/clans/32055887/0ad20c1cf3d4e78aa8f28fd136f89f3683df2fb6.png",
|
||||
"ReleaseDate": "1622142660",
|
||||
"year": "2021"
|
||||
},
|
||||
{
|
||||
"BSVersion": "1.16.1",
|
||||
"BSManifest": "9201874499606445062",
|
||||
"ReleaseURL": "https://steamcommunity.com/games/620980/announcements/detail/3001065803748822093",
|
||||
"ReleaseImg": "https://cdn.akamai.steamstatic.com/steamcommunity/public/images/clans/32055887/522ca68fe0c4576f57189afdbb8107226cdcc819.png",
|
||||
"ReleaseDate": "1622229060",
|
||||
"year": "2021"
|
||||
},
|
||||
{
|
||||
"BSVersion": "1.16.2",
|
||||
"BSManifest": "3692829915208062825",
|
||||
"ReleaseURL": "http://steamcommunity.com/games/620980/announcements/detail/3024710972645830369",
|
||||
"ReleaseImg": "https://cdn.akamai.steamstatic.com/steamcommunity/public/images/clans/32055887/7e81895079a84f1b85ddcee330aec7e5626fd2c6.png",
|
||||
"ReleaseDate": "1623352260",
|
||||
"year": "2021"
|
||||
},
|
||||
{
|
||||
"BSVersion": "1.16.3",
|
||||
"BSManifest": "6392596175313869009",
|
||||
"ReleaseURL": "http://steamcommunity.com/games/620980/announcements/detail/5293402556388135977",
|
||||
"ReleaseImg": "https://cdn.akamai.steamstatic.com/steamcommunity/public/images/clans/32055887/34340f96abfa0203931ca312302ee0c19dc336c2.png",
|
||||
"ReleaseDate": "1626808260",
|
||||
"year": "2021"
|
||||
},
|
||||
{
|
||||
"BSVersion": "1.16.4",
|
||||
"BSManifest": "8820433629543698585",
|
||||
"ReleaseURL": "https://steamcommunity.com/games/620980/announcements/detail/2965042081090310028",
|
||||
"ReleaseImg": "https://cdn.akamai.steamstatic.com/steamcommunity/public/images/clans/32055887/22b48a8e92eed7c4e471692124724a2f3ebc3f18.png",
|
||||
"ReleaseDate": "1627326660",
|
||||
"year": "2021"
|
||||
},
|
||||
{
|
||||
"BSVersion": "1.17.0",
|
||||
"BSManifest": "7826684224434229804",
|
||||
"ReleaseURL": "https://steamcommunity.com/games/620980/announcements/detail/2945905042782366475",
|
||||
"ReleaseImg": "https://cdn.akamai.steamstatic.com/steamcommunity/public/images/clans/32055887/a789a030122442308376887039c244222b92c768.png",
|
||||
"ReleaseDate": "1630437060",
|
||||
"year": "2021"
|
||||
},
|
||||
{
|
||||
"BSVersion": "1.17.1",
|
||||
"BSManifest": "4668547658954826996",
|
||||
"ReleaseURL": "https://steamcommunity.com/games/620980/announcements/detail/2947032120578243378",
|
||||
"ReleaseImg": "https://cdn.akamai.steamstatic.com/steamcommunity/public/images/clans/32055887/51561161026afcf3482bcbe2ea62a6d56e03a8d0.png",
|
||||
"ReleaseDate": "1631214660",
|
||||
"year": "2021"
|
||||
},
|
||||
{
|
||||
"BSVersion": "1.18.0",
|
||||
"BSManifest": "5599254819160454367",
|
||||
"ReleaseURL": "https://steamcommunity.com/games/620980/announcements/detail/5570379635768010184",
|
||||
"ReleaseImg": "https://cdn.akamai.steamstatic.com/steamcommunity/public/images/clans/32055887/89a693714b3ee32d84d05bf62caca6f651a1dbec.png",
|
||||
"ReleaseDate": "1632251460",
|
||||
"year": "2021"
|
||||
},
|
||||
{
|
||||
"BSVersion": "1.18.1",
|
||||
"BSManifest": "8961661233382948062",
|
||||
"ReleaseURL": "https://steamcommunity.com/games/620980/announcements/detail/2994322456166449763",
|
||||
"ReleaseImg": "https://cdn.akamai.steamstatic.com/steamcommunity/public/images/clans/32055887/a3a4511beadf811a56742fc234724ad14ab34749.png",
|
||||
"ReleaseDate": "1633547460",
|
||||
"year": "2021"
|
||||
},
|
||||
{
|
||||
"BSVersion": "1.18.2",
|
||||
"BSManifest": "6835596583028648427",
|
||||
"ReleaseURL": "https://steamcommunity.com/games/620980/announcements/detail/3026974832179662032",
|
||||
"ReleaseImg": "https://cdn.akamai.steamstatic.com/steamcommunity/public/images/clans/32055887/71994e941f3d2a8fbbe335fc717c136b5dc9f823.png",
|
||||
"ReleaseDate": "1635189060",
|
||||
"year": "2021"
|
||||
},
|
||||
{
|
||||
"BSVersion": "1.18.3",
|
||||
"BSManifest": "6558821762131072991",
|
||||
"ReleaseURL": "https://steamcommunity.com/games/620980/announcements/detail/3067508483705433949",
|
||||
"ReleaseImg": "https://cdn.akamai.steamstatic.com/steamcommunity/public/images/clans/32055887/7d79335af5e8ca560198e6a850e339bd7b430d9f.png",
|
||||
"ReleaseDate": "1636056660",
|
||||
"year": "2021"
|
||||
},
|
||||
{
|
||||
"BSVersion": "1.19.0",
|
||||
"BSManifest": "8948172000430595334",
|
||||
"ReleaseURL": "https://steamcommunity.com/games/620980/announcements/detail/3105792342251200877",
|
||||
"ReleaseImg": "https://cdn.akamai.steamstatic.com/steamcommunity/public/images/clans/32055887/537cf297a6f90b8bbe7baae92b6885f8fbf98d8c.png",
|
||||
"ReleaseDate": "1639167060",
|
||||
"year": "2021"
|
||||
},
|
||||
{
|
||||
"BSVersion": "1.19.1",
|
||||
"BSManifest": "1175216641760077721",
|
||||
"ReleaseURL": "https://steamcommunity.com/games/620980/announcements/detail/5771929045825669047",
|
||||
"ReleaseImg": "https://cdn.akamai.steamstatic.com/steamcommunity/public/images/clans/32055887/908d3ebdf273ca6573c3c95898be22ff052ea014.png",
|
||||
"ReleaseDate": "1644869460",
|
||||
"year": "2022"
|
||||
},
|
||||
{
|
||||
"BSVersion": "1.20.0",
|
||||
"BSManifest": "4202491068770948196",
|
||||
"ReleaseURL": "https://steamcommunity.com/games/620980/announcements/detail/3096792662638975765",
|
||||
"ReleaseImg": "https://cdn.akamai.steamstatic.com/steamcommunity/public/images/clans/32055887/8dfcc668bc78674d7c1d010cee2a8153e0c0c2aa.png",
|
||||
"ReleaseDate": "1646770260",
|
||||
"year": "2022"
|
||||
},
|
||||
{
|
||||
"BSVersion": "1.21.0",
|
||||
"BSManifest": "3648558848715327622",
|
||||
"ReleaseURL": "https://steamcommunity.com/games/620980/announcements/detail/3180111792066790947",
|
||||
"ReleaseImg": "https://cdn.akamai.steamstatic.com/steamcommunity/public/images/clans/32055887/d854a4cc83b282acc191227a7759b4f5e6c6b085.png",
|
||||
"ReleaseDate": "1648753860",
|
||||
"year": "2022"
|
||||
},
|
||||
{
|
||||
"BSVersion": "1.22.0",
|
||||
"BSManifest": "4038188869828689801",
|
||||
"ReleaseURL": "https://steamcommunity.com/games/620980/announcements/detail/3181240878804806326",
|
||||
"ReleaseImg": "https://cdn.akamai.steamstatic.com/steamcommunity/public/images/clans/32055887/8486ec6eb3b6e28eaac59d414dd20bd18eed36d8.png",
|
||||
"ReleaseDate": "1651777860",
|
||||
"year": "2022"
|
||||
},
|
||||
{
|
||||
"BSVersion": "1.22.1",
|
||||
"BSManifest": "3771211058784167267",
|
||||
"ReleaseURL": "https://steamcommunity.com/games/620980/announcements/detail/3185745740381652029",
|
||||
"ReleaseImg": "https://cdn.akamai.steamstatic.com/steamcommunity/public/images/clans/32055887/bc9fea661f7f18616b6b2feb267cc3af0ea679c5.png",
|
||||
"ReleaseDate": "1652987460",
|
||||
"year": "2022"
|
||||
},
|
||||
{
|
||||
"BSVersion": "1.23.0",
|
||||
"BSManifest": "8051970117665729770",
|
||||
"ReleaseURL": "https://steamcommunity.com/games/620980/announcements/detail/3346751320551809488",
|
||||
"ReleaseImg": "https://cdn.cloudflare.steamstatic.com/steamcommunity/public/images/clans//32055887/1623b6e0b864fdad8be08275c3bb126868eafe9b.png",
|
||||
"ReleaseDate": "1655218980",
|
||||
"year": "2022"
|
||||
},
|
||||
{
|
||||
"BSVersion": "1.24.0",
|
||||
"BSManifest": "649695825989344999",
|
||||
"ReleaseURL": "https://steamcommunity.com/games/620980/announcements/detail/4719226562388423388",
|
||||
"ReleaseImg": "https://cdn.akamai.steamstatic.com/steamcommunity/public/images/clans//32055887/82c29d674bc57596102a6b815f66e956f217e658.png",
|
||||
"ReleaseDate": "1657810920",
|
||||
"year": "2022"
|
||||
},
|
||||
{
|
||||
"BSVersion": "1.24.1",
|
||||
"BSManifest": "3141359577983993890",
|
||||
"ReleaseURL": "https://steamcommunity.com/games/620980/announcements/detail/4719226562388423388",
|
||||
"ReleaseImg": "https://cdn.akamai.steamstatic.com/steamcommunity/public/images/clans//32055887/82c29d674bc57596102a6b815f66e956f217e658.png",
|
||||
"ReleaseDate": "1661864214",
|
||||
"year": "2022"
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1 @@
|
||||
[]
|
||||
@@ -0,0 +1,279 @@
|
||||
{
|
||||
"misc":{
|
||||
"download": "Download",
|
||||
"verify": "Verify",
|
||||
"launch": "Launch",
|
||||
"mods": "Mods",
|
||||
"maps": "Maps",
|
||||
"cancel": "Cancel"
|
||||
},
|
||||
"pages":{
|
||||
"version-viewer":{
|
||||
"launch-mods":{
|
||||
"oculus": "Oculus Mod",
|
||||
"desktop": "Desktop Mod",
|
||||
"debug": "Debug Mod"
|
||||
},
|
||||
"dropdown":{
|
||||
"open-folder": "Open folder",
|
||||
"verify-files": "Verify files",
|
||||
"clone": "Clone",
|
||||
"edit": "Edit",
|
||||
"uninstall": "Uninstall"
|
||||
}
|
||||
},
|
||||
"available-versions":{
|
||||
"title": "Select a version",
|
||||
"steam-release":"Release page"
|
||||
},
|
||||
"settings":{
|
||||
"steam":{
|
||||
"title":"Steam",
|
||||
"description":"If you log out of Steam, you will have to log back in to download a new version of Beat Saber.",
|
||||
"logout":"Log out"
|
||||
},
|
||||
"appearance":{
|
||||
"title":"Appearance",
|
||||
"description":"Choose the two main colours of BSManager.",
|
||||
"reset":"Reset",
|
||||
"sub-title":"Theme",
|
||||
"themes":{
|
||||
"dark":"Dark",
|
||||
"light": "Light",
|
||||
"os": "Sync with computer"
|
||||
}
|
||||
},
|
||||
"installation-folder":{
|
||||
"title":"Installation folder",
|
||||
"description":"Change the default folder for Beat Saber versions and other upcoming features.",
|
||||
"choose-folder":"Choose folder"
|
||||
},
|
||||
"language":{
|
||||
"title":"Language",
|
||||
"description":"Select a language.",
|
||||
"languages":{
|
||||
"en-EN": "English, UK",
|
||||
"en-US": "English, US",
|
||||
"fr-FR": "Français",
|
||||
"es-ES": "Español",
|
||||
"translated":{
|
||||
"en-EN": "English, United Kingdom",
|
||||
"en-US": "English, USA",
|
||||
"fr-FR": "French",
|
||||
"es-ES": "Spanish"
|
||||
}
|
||||
}
|
||||
},
|
||||
"patreon":{
|
||||
"title":"Support BSManager 💖",
|
||||
"description": "Support the project and help us to provide continuous improvements to BSManager.",
|
||||
"buttons":{
|
||||
"support": "Support BSManager",
|
||||
"supporters":"Supporters 👀"
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
},
|
||||
"notifications":{
|
||||
"types":{
|
||||
"error": "🚨 Error",
|
||||
"warning": "⚠️ Warning",
|
||||
"success": "🎉 Success"
|
||||
},
|
||||
"shared":{
|
||||
"errors":{
|
||||
"titles":{
|
||||
"operation-running": "Operation running"
|
||||
},
|
||||
"msg":{
|
||||
"operation-running": "Wait for the end of the current operation then start again."
|
||||
}
|
||||
}
|
||||
},
|
||||
"bs-download":{
|
||||
"success":{
|
||||
"titles":{
|
||||
"download-success": "Download complete",
|
||||
"verification-finished":"Verification complete"
|
||||
}
|
||||
},
|
||||
"warnings":{
|
||||
"msg":{
|
||||
"ManifestChecksum": "The previously downloaded manifest does not match the new 🤔",
|
||||
"ConnectionTimeout": "Your internet connection seems unstable 🥶",
|
||||
"ConnectionLost": "The connection has been lost, try again...",
|
||||
"ConnectionError": "Unable to connect to Steam, retry...",
|
||||
"Unknown": "Something strange has happened 🤔 Your connection is probably unstable."
|
||||
}
|
||||
},
|
||||
"errors":{
|
||||
"msg":{
|
||||
"Password": "Password is invalid.",
|
||||
"InvalidCredentials": "Your e-mail or password is invalid 😴",
|
||||
"InvalidPassword": "Your password is invalid 😕",
|
||||
"NoManifest": "No manifest was found",
|
||||
"DirectoryCreate": "Unable to install the necessary folders.",
|
||||
"NotAvailableApp": "Are you trying to download BeatSaber when you don't have it ? 🤣",
|
||||
"DepotNotFound": "Unable to download BeatSaber 😥 try again later 😕",
|
||||
"NotCompleted": "The download could not complete ¯\\_(ツ)_/¯",
|
||||
"InvalidManifest": "Unable to download BeatSaber 😥 try again later 😕",
|
||||
"NoValidKey": "Unable to download BeatSaber 😥 try again later 😕",
|
||||
"NoManifestCode": "Unable to download BeatSaber 😥 try again later 😕",
|
||||
"401": "Steam doesn't seem to want to let us download BeatSaber 😢",
|
||||
"404": "Unable to contact Steam servers.",
|
||||
"Unknown": "An unknown error occurred ¯\\_(ツ)_/¯",
|
||||
"NoServer": "Unable to contact Steam servers.",
|
||||
"NotAllowed": "Apparently you are not allowed to download BeatSaber 🥱",
|
||||
"ConnectionTimeout": "Cannot connect to Steam 😕",
|
||||
"SteamLib": "If you have this error, report the bug on GitHub with the logs pls.",
|
||||
"ConnectionError": "Unable to connect to Steam after 10 tries 🤯",
|
||||
"LicenceError": "Unable to get the list of licenses.",
|
||||
"verification-failed": "Verification failed, try again later.",
|
||||
"RateLimitExceeded": "You've tried too many times, wait a while and try again later.",
|
||||
"AlreadyDownloading": "A download is already in progress",
|
||||
"no-internet": "No internet connection."
|
||||
}
|
||||
}
|
||||
},
|
||||
"settings":{
|
||||
"move-folder":{
|
||||
"success":{
|
||||
"titles":{
|
||||
"transfer-finished":"Transfer complete"
|
||||
}
|
||||
},
|
||||
"errors":{
|
||||
"titles":{
|
||||
"transfer-failed":"Transfer failed 😕"
|
||||
}
|
||||
}
|
||||
},
|
||||
"steam":{
|
||||
"success":{
|
||||
"titles":{
|
||||
"logout": "Disconnected from Steam."
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"bs-launch":{
|
||||
"success":{
|
||||
"titles":{
|
||||
"launching": "Launching...🚀"
|
||||
}
|
||||
},
|
||||
"errors":{
|
||||
"titles":{
|
||||
"UNABLE_TO_LAUNCH": "Unable to launch",
|
||||
"STEAM_NOT_RUNNING": "Steam is not running",
|
||||
"BS_ALREADY_RUNNING": "BeatSaber already running",
|
||||
"EXE_NOT_FINDED": "Missing files",
|
||||
"EXIT": "Abrupt stop"
|
||||
},
|
||||
"msg":{
|
||||
"STEAM_NOT_RUNNING": "Steam must be running to launch BeatSaber.",
|
||||
"BS_ALREADY_RUNNING": "Close BeatSaber before launching it again.",
|
||||
"EXE_NOT_FINDED": "Some files seem to be missing, try to verify the files.",
|
||||
"EXIT": "BeatSaber stopped abruptly, tries to check the files."
|
||||
}
|
||||
}
|
||||
},
|
||||
"custom-version":{
|
||||
"errors":{
|
||||
"titles":{
|
||||
"CantEditSteam": "Unable to edit",
|
||||
"CantRename": "Renaming impossible",
|
||||
"VersionAlreadExist": "This version already exists",
|
||||
"CantClone": "Cloning impossible"
|
||||
},
|
||||
"msg":{
|
||||
"CantEditSteam": "You can't edit the Steam version. You can clone it though."
|
||||
}
|
||||
},
|
||||
"success":{
|
||||
"titles":{
|
||||
"CloningFinished": "Cloning complete 🎉"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"modals":{
|
||||
"guard":{
|
||||
"title": "Steam Guard",
|
||||
"inputs":{
|
||||
"guard-code":{
|
||||
"label": "Guard Code",
|
||||
"placeholder": "Enter your Guard code"
|
||||
}
|
||||
},
|
||||
"buttons":{
|
||||
"submit": "Login"
|
||||
}
|
||||
},
|
||||
"steam-login":{
|
||||
"title": "Steam Login",
|
||||
"inputs":{
|
||||
"username":{
|
||||
"label": "Username",
|
||||
"placeholder": "Enter your username"
|
||||
},
|
||||
"password":{
|
||||
"label": "Password",
|
||||
"placeholder": "Enter your password"
|
||||
},
|
||||
"stay":{
|
||||
"label": "Stay connected"
|
||||
}
|
||||
},
|
||||
"buttons":{
|
||||
"submit": "Login"
|
||||
}
|
||||
},
|
||||
"bs-uninstall":{
|
||||
"title": "Uninstall",
|
||||
"description": "Are you sure you want to uninstall BeatSaber {version} ? You will have to download it again to play it.",
|
||||
"buttons":{
|
||||
"submit": "Uninstall"
|
||||
}
|
||||
},
|
||||
"install-folder":{
|
||||
"title": "Installation folder",
|
||||
"description": "Changing the default installation folder will result in moving all installed data to the new folder.",
|
||||
"buttons":{
|
||||
"submit": "Choose folder"
|
||||
}
|
||||
},
|
||||
"edit-version":{
|
||||
"title": "Edit the version",
|
||||
"buttons":{
|
||||
"submit": "Edit"
|
||||
}
|
||||
},
|
||||
"clone-version":{
|
||||
"title": "Clone version",
|
||||
"description": "Cloning the version allows you to separate additional BeatSaber content between two versions.",
|
||||
"buttons":{
|
||||
"submit": "Clone"
|
||||
}
|
||||
}
|
||||
},
|
||||
"auto-update":{
|
||||
"checking": "Checking for updates",
|
||||
"downloading": "Downloading updates"
|
||||
},
|
||||
"dateformat":{
|
||||
"dayNames": [
|
||||
"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat",
|
||||
"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"
|
||||
],
|
||||
"monthNames": [
|
||||
"Jan", "Feb", "Mar", "Apr", "May", "June", "Jul", "Aug", "Sept", "Oct", "Nov", "Dec",
|
||||
"January", "February", "March", "April", "May", "June",
|
||||
"July", "August", "September", "October", "November", "December"
|
||||
],
|
||||
"timeNames": [
|
||||
"a", "p", "am", "pm", "A", "P", "AM", "PM"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,279 @@
|
||||
{
|
||||
"misc":{
|
||||
"download": "Descargar",
|
||||
"verify": "Verificar",
|
||||
"launch": "Lanzar",
|
||||
"mods": "Mods",
|
||||
"maps": "Maps",
|
||||
"cancel": "Cancelar"
|
||||
},
|
||||
"pages":{
|
||||
"version-viewer":{
|
||||
"launch-mods":{
|
||||
"oculus": "Oculus Mod",
|
||||
"desktop": "Desktop Mod",
|
||||
"debug": "Debug Mod"
|
||||
},
|
||||
"dropdown":{
|
||||
"open-folder": "Abrir la carpeta",
|
||||
"verify-files": "Verificar los archivos",
|
||||
"clone": "Clonar",
|
||||
"edit": "Editar",
|
||||
"uninstall": "Desinstalar"
|
||||
}
|
||||
},
|
||||
"available-versions":{
|
||||
"title": "Seleccione una versión",
|
||||
"steam-release":"Publicación Página"
|
||||
},
|
||||
"settings":{
|
||||
"steam":{
|
||||
"title":"Steam",
|
||||
"description":"Si sales de Steam, tendrás que volver a entrar para descargar una nueva versión de Beat Saber.",
|
||||
"logout":"Desconectar"
|
||||
},
|
||||
"appearance":{
|
||||
"title":"Apariencia",
|
||||
"description":"Elija los dos colores principales de BSManager.",
|
||||
"reset":"Reiniciar",
|
||||
"sub-title":"Tema",
|
||||
"themes":{
|
||||
"dark":"Oscuro",
|
||||
"light": "Claro",
|
||||
"os": "Sincronizar con ordenador"
|
||||
}
|
||||
},
|
||||
"installation-folder":{
|
||||
"title":"Carpeta de instalación",
|
||||
"description":"Cambia la carpeta por defecto para las versiones de Beat Saber y otras características próximas.",
|
||||
"choose-folder":"Elija la carpeta"
|
||||
},
|
||||
"language":{
|
||||
"title":"Idioma",
|
||||
"description":"Selecciona un idioma.",
|
||||
"languages":{
|
||||
"en-EN": "English, UK",
|
||||
"en-US": "English, US",
|
||||
"fr-FR": "Français",
|
||||
"es-ES": "Español",
|
||||
"translated":{
|
||||
"en-EN": "Inglés, Reino Unido",
|
||||
"en-US": "Inglés, Estados Unidos",
|
||||
"fr-FR": "Francés",
|
||||
"es-ES": "Español"
|
||||
}
|
||||
}
|
||||
},
|
||||
"patreon":{
|
||||
"title":"Apoyo BSManager 💖",
|
||||
"description": "Apoye el proyecto y ayúdenos a proporcionar mejoras continuas a BSManager.",
|
||||
"buttons":{
|
||||
"support": "Apoyo BSManager",
|
||||
"supporters":"Apoyos 👀"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
"notifications":{
|
||||
"types":{
|
||||
"error": "🚨 Error",
|
||||
"warning": "⚠️ Advertencia",
|
||||
"success": "🎉 Éxito"
|
||||
},
|
||||
"shared":{
|
||||
"errors":{
|
||||
"titles":{
|
||||
"operation-running": "Operación en curso"
|
||||
},
|
||||
"msg":{
|
||||
"operation-running": "Espere a que termine la operación actual y vuelva a empezar."
|
||||
}
|
||||
}
|
||||
},
|
||||
"bs-download":{
|
||||
"success":{
|
||||
"titles":{
|
||||
"download-success": "Descargar completo",
|
||||
"verification-finished":"Verificación completa"
|
||||
}
|
||||
},
|
||||
"warnings":{
|
||||
"msg":{
|
||||
"ManifestChecksum": "El manifiesto descargado anteriormente no coincide con el nuevo 🤔",
|
||||
"ConnectionTimeout": "Su conexión a Internet parece inestable 🥶",
|
||||
"ConnectionLost": "Se ha perdido la conexión, inténtelo de nuevo...",
|
||||
"ConnectionError": "No se puede conectar a Steam, reintentar...",
|
||||
"Unknown": "Algo extraño ha ocurrido 🤔 Tu conexión es probablemente inestable."
|
||||
}
|
||||
},
|
||||
"errors":{
|
||||
"msg":{
|
||||
"Password": "La contraseña es inválida.",
|
||||
"InvalidCredentials": "Su correo electrónico o contraseña no son válidos 😴",
|
||||
"InvalidPassword": "Su contraseña no es válida 😕",
|
||||
"NoManifest": "No se ha encontrado el manifiesto",
|
||||
"DirectoryCreate": "No se pueden instalar las carpetas necesarias.",
|
||||
"NotAvailableApp": "¿Intentas descargar BeatSaber cuando no lo tienes? 🤣",
|
||||
"DepotNotFound": "No se puede descargar BeatSaber 😥 inténtalo más tarde 😕",
|
||||
"NotCompleted": "La descarga no pudo completarse ¯\\_(ツ)_/¯",
|
||||
"InvalidManifest": "No se puede descargar BeatSaber 😥 inténtalo más tarde 😕",
|
||||
"NoValidKey": "No se puede descargar BeatSaber 😥 inténtalo más tarde 😕",
|
||||
"NoManifestCode": "No se puede descargar BeatSaber 😥 inténtalo más tarde 😕",
|
||||
"401": "Parece que Steam no quiere dejarnos descargar BeatSaber 😢",
|
||||
"404": "No se puede contactar con los servidores de Steam",
|
||||
"Unknown": "Se ha producido un error desconocido ¯\\_(ツ)_/¯",
|
||||
"NoServer": "No se puede contactar con los servidores de Steam.",
|
||||
"NotAllowed": "Aparentemente no tienes permiso para descargar BeatSaber 🥱",
|
||||
"ConnectionTimeout": "No se puede conectar a Steam 😕",
|
||||
"SteamLib": "Si tienes este error, reporta el bug en GitHub con los logs por favor.",
|
||||
"ConnectionError": "No se puede conectar a Steam después de 10 intentos 🤯",
|
||||
"LicenceError": "No se puede obtener la lista de licencias.",
|
||||
"verification-failed": "Verificación fallida, inténtelo más tarde.",
|
||||
"RateLimitExceeded": "Lo has intentado demasiadas veces, espera un poco y vuelve a intentarlo más tarde.",
|
||||
"AlreadyDownloading": "La descarga ya está en curso",
|
||||
"no-internet": "Sin conexión a Internet."
|
||||
}
|
||||
}
|
||||
},
|
||||
"settings":{
|
||||
"move-folder":{
|
||||
"success":{
|
||||
"titles":{
|
||||
"transfer-finished":"Transferencia completa"
|
||||
}
|
||||
},
|
||||
"errors":{
|
||||
"titles":{
|
||||
"transfer-failed":"Transferencia fallida 😕"
|
||||
}
|
||||
}
|
||||
},
|
||||
"steam":{
|
||||
"success":{
|
||||
"titles":{
|
||||
"logout": "Desconectado de Steam."
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"bs-launch":{
|
||||
"success":{
|
||||
"titles":{
|
||||
"launching": "Lanzamiento...🚀"
|
||||
}
|
||||
},
|
||||
"errors":{
|
||||
"titles":{
|
||||
"UNABLE_TO_LAUNCH": "No se puede lanzar",
|
||||
"STEAM_NOT_RUNNING": "Steam no funciona",
|
||||
"BS_ALREADY_RUNNING": "BeatSaber ya está en marcha",
|
||||
"EXE_NOT_FINDED": "Archivos perdidos",
|
||||
"EXIT": "Parada abrupta"
|
||||
},
|
||||
"msg":{
|
||||
"STEAM_NOT_RUNNING": "Para iniciar BeatSaber es necesario que Steam esté en funcionamiento.",
|
||||
"BS_ALREADY_RUNNING": "Cierra BeatSaber antes de volver a lanzarlo.",
|
||||
"EXE_NOT_FINDED": "Parece que faltan algunos archivos, intente verificar los archivos.",
|
||||
"EXIT": "BeatSaber se detuvo abruptamente, trata de revisar los archivos."
|
||||
}
|
||||
}
|
||||
},
|
||||
"custom-version":{
|
||||
"errors":{
|
||||
"titles":{
|
||||
"CantEditSteam": "Imposible editar",
|
||||
"CantRename": "El renombramiento es imposible",
|
||||
"VersionAlreadExist": "Esta versión ya existe",
|
||||
"CantClone": "Clonación imposible"
|
||||
},
|
||||
"msg":{
|
||||
"CantEditSteam": "No puedes editar la versión de Steam. Sin embargo, puedes clonarla."
|
||||
}
|
||||
},
|
||||
"success":{
|
||||
"titles":{
|
||||
"CloningFinished": "Clonación completa 🎉"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"modals":{
|
||||
"guard":{
|
||||
"title": "Steam Guard",
|
||||
"inputs":{
|
||||
"guard-code":{
|
||||
"label": "Guard Código",
|
||||
"placeholder": "Introduzca su código Guard"
|
||||
}
|
||||
},
|
||||
"buttons":{
|
||||
"submit": "Conéctate"
|
||||
}
|
||||
},
|
||||
"steam-login":{
|
||||
"title": "Steam Conectar",
|
||||
"inputs":{
|
||||
"username":{
|
||||
"label": "Nombre de usuario",
|
||||
"placeholder": "Introduzca su nombre de usuario"
|
||||
},
|
||||
"password":{
|
||||
"label": "Contraseña",
|
||||
"placeholder": "Introduzca su contraseña"
|
||||
},
|
||||
"stay":{
|
||||
"label": "Manténgase conectado"
|
||||
}
|
||||
},
|
||||
"buttons":{
|
||||
"submit": "Inicio de sesión"
|
||||
}
|
||||
},
|
||||
"bs-uninstall":{
|
||||
"title": "Desinstalar",
|
||||
"description": "¿Estás seguro de que quieres desinstalar BeatSaber {version}? Tendrás que descargarlo de nuevo para poder jugar.",
|
||||
"buttons":{
|
||||
"submit": "Desinstalar"
|
||||
}
|
||||
},
|
||||
"install-folder":{
|
||||
"title": "Instalación Carpeta",
|
||||
"description": "Al cambiar la carpeta de instalación por defecto, se moverán todos los datos instalados a la nueva carpeta.",
|
||||
"buttons":{
|
||||
"submit": "Elija la carpeta"
|
||||
}
|
||||
},
|
||||
"edit-version":{
|
||||
"title": "Editar la versión",
|
||||
"buttons":{
|
||||
"submit": "Editar"
|
||||
}
|
||||
},
|
||||
"clone-version":{
|
||||
"title": "Versión clonada",
|
||||
"description": "La clonación de la versión le permite separar el contenido adicional de BeatSaber entre dos versiones.",
|
||||
"buttons":{
|
||||
"submit": "Clonar"
|
||||
}
|
||||
}
|
||||
},
|
||||
"auto-update":{
|
||||
"checking": "Comprobar las actualizaciones",
|
||||
"downloading": "Descargar actualizaciones"
|
||||
},
|
||||
"dateformat":{
|
||||
"dayNames": [
|
||||
"Dom", "Lun", "Mar", "Mié", "Jue", "Vie", "Sáb",
|
||||
"Domingo", "Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado"
|
||||
],
|
||||
"monthNames": [
|
||||
"Ene", "Feb", "Mar", "Abr", "May", "Jun", "Jul", "Ago", "Sep", "Oct", "Nov", "Dic",
|
||||
"Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio",
|
||||
"Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"
|
||||
],
|
||||
"timeNames": [
|
||||
"a", "p", "am", "pm", "A", "P", "AM", "PM"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,279 @@
|
||||
{
|
||||
"misc":{
|
||||
"download": "Télécharger",
|
||||
"verify": "Vérifier",
|
||||
"launch": "Lancer",
|
||||
"mods": "Modes",
|
||||
"maps": "Maps",
|
||||
"cancel": "Annuler"
|
||||
},
|
||||
"pages":{
|
||||
"version-viewer":{
|
||||
"launch-mods":{
|
||||
"oculus": "Mode Oculus",
|
||||
"desktop": "Mode Bureau",
|
||||
"debug": "Mode Debug"
|
||||
},
|
||||
"dropdown":{
|
||||
"open-folder": "Ouvrir le dossier",
|
||||
"verify-files": "Vérifier les fichiers",
|
||||
"clone": "Cloner",
|
||||
"edit": "Editer",
|
||||
"uninstall": "Désinstaller"
|
||||
}
|
||||
},
|
||||
"available-versions":{
|
||||
"title": "Choisi une version",
|
||||
"steam-release":"Notes de version"
|
||||
},
|
||||
"settings":{
|
||||
"steam":{
|
||||
"title":"Steam",
|
||||
"description":"Si tu te déconnectes de Steam, tu devras te reconnecter pour télécharger une nouvelle version de Beat Saber.",
|
||||
"logout":"Déconnexion"
|
||||
},
|
||||
"appearance":{
|
||||
"title":"Apparence",
|
||||
"description":"Choisi les deux couleurs principales de BSManager.",
|
||||
"reset":"Réinitialiser",
|
||||
"sub-title":"Thème",
|
||||
"themes":{
|
||||
"dark":"Sombre",
|
||||
"light": "Clair",
|
||||
"os": "Synchroniser avec l'ordinateur"
|
||||
}
|
||||
},
|
||||
"installation-folder":{
|
||||
"title":"Dossier d'installation",
|
||||
"description":"Change le dossier par défaut pour les versions de Beat Saber et d'autres fonctionnalités à venir.",
|
||||
"choose-folder":"Choisir un dossier"
|
||||
},
|
||||
"language":{
|
||||
"title":"Langage",
|
||||
"description":"Sélectionne un langage.",
|
||||
"languages":{
|
||||
"en-EN": "English, UK",
|
||||
"en-US": "English, US",
|
||||
"fr-FR": "Français",
|
||||
"es-ES": "Español",
|
||||
"translated":{
|
||||
"en-EN": "Anglais, Royaume-Uni",
|
||||
"en-US": "Anglais, États-Unis",
|
||||
"fr-FR": "Français",
|
||||
"es-ES": "Espagnol"
|
||||
}
|
||||
}
|
||||
},
|
||||
"patreon":{
|
||||
"title":"Soutenir BSManager 💖",
|
||||
"description": "Soutien le projet et aide-nous à fournir des améliorations continues à BSManager.",
|
||||
"buttons":{
|
||||
"support": "Soutenir BSManager",
|
||||
"supporters":"Supporteurs 👀"
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
},
|
||||
"notifications":{
|
||||
"types":{
|
||||
"error": "🚨 Erreur",
|
||||
"warning": "⚠️ Attention",
|
||||
"success": "🎉 Succès"
|
||||
},
|
||||
"shared":{
|
||||
"errors":{
|
||||
"titles":{
|
||||
"operation-running": "Opération en cours"
|
||||
},
|
||||
"msg":{
|
||||
"operation-running": "Attend la fin de l'opération en cours puis recommences."
|
||||
}
|
||||
}
|
||||
},
|
||||
"bs-download":{
|
||||
"success":{
|
||||
"titles":{
|
||||
"download-success": "Téléchargement terminé",
|
||||
"verification-finished":"Vérification terminée"
|
||||
}
|
||||
},
|
||||
"warnings":{
|
||||
"msg":{
|
||||
"ManifestChecksum": "Le manifest télécharger précédemment ne correspond pas au nouveau 🤔",
|
||||
"ConnectionTimeout": "Ta connexion internet semble instable 🥶",
|
||||
"ConnectionLost": "La connexion a été perdue, retentative...",
|
||||
"ConnectionError": "Impossible de se connecter à Steam, retentative...",
|
||||
"Unknown": "Quelque chose d'étrange c'est produit 🤔 Votre connexion est surement instable."
|
||||
}
|
||||
},
|
||||
"errors":{
|
||||
"msg":{
|
||||
"Password": "Le mot de passe est invalide.",
|
||||
"InvalidCredentials": "Ton e-mail ou mot de passe est invalide 😴",
|
||||
"InvalidPassword": "Ton mot de passe est invalide 😕",
|
||||
"NoManifest": "Aucun manifest n'a été trouvé.",
|
||||
"DirectoryCreate": "Impossible d'installer les dossiers nécessaires.",
|
||||
"NotAvailableApp": "Tu essayes de télécharger BeatSaber alors que tu ne l'as pas ? 🤣",
|
||||
"DepotNotFound": "Impossible de télécharger BeatSaber 😥 réessaye plus tard 😕",
|
||||
"NotCompleted": "Le téléchargement n'a pas pu se terminer ¯\\_(ツ)_/¯",
|
||||
"InvalidManifest": "Impossible de télécharger BeatSaber 😥 réessaye plus tard 😕",
|
||||
"NoValidKey": "Impossible de télécharger BeatSaber 😥 réessaye plus tard 😕",
|
||||
"NoManifestCode": "Impossible de télécharger BeatSaber 😥 réessaye plus tard 😕",
|
||||
"401": "Steam semble pas vouloir nous laisser télécharger BeatSaber 😢",
|
||||
"404": "Impossible de contacter les serveurs de Steam.",
|
||||
"Unknown": "Une erreur inconnue c'est produite ¯\\_(ツ)_/¯",
|
||||
"NoServer": "Impossible de contacter les serveurs de Steam.",
|
||||
"NotAllowed": "Apparemment tu n'es pas autorisé à télécharger BeatSaber 🥱",
|
||||
"ConnectionTimeout": "Impossible de se connecter à Steam 😕",
|
||||
"SteamLib": "Si tu à cette erreur, report le bug sur GitHub avec les logs stp.",
|
||||
"ConnectionError": "Impossible de se connecter à Steam après 10 essais 🤯",
|
||||
"LicenceError": "Impossible d'obtenir la liste des licences.",
|
||||
"verification-failed": "La vérification a échoué, réessaye plus tard.",
|
||||
"RateLimitExceeded": "Tu as essayé trop de fois attend un peu et recommence plus tard.",
|
||||
"AlreadyDownloading": "Un téléchargement est déjà en cours",
|
||||
"no-internet": "Pas de connexion internet."
|
||||
}
|
||||
}
|
||||
},
|
||||
"settings":{
|
||||
"move-folder":{
|
||||
"success":{
|
||||
"titles":{
|
||||
"transfer-finished":"Transfert terminé 👌"
|
||||
}
|
||||
},
|
||||
"errors":{
|
||||
"titles":{
|
||||
"transfer-failed":"Le transfert a échoué 😕"
|
||||
}
|
||||
}
|
||||
},
|
||||
"steam":{
|
||||
"success":{
|
||||
"titles":{
|
||||
"logout": "Déconnecté de Steam."
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"bs-launch":{
|
||||
"success":{
|
||||
"titles":{
|
||||
"launching": "Lancement...🚀"
|
||||
}
|
||||
},
|
||||
"errors":{
|
||||
"titles":{
|
||||
"UNABLE_TO_LAUNCH": "Lancement impossible",
|
||||
"STEAM_NOT_RUNNING": "Steam n'est pas lancé",
|
||||
"BS_ALREADY_RUNNING": "BeatSaber est déjà lancé",
|
||||
"EXE_NOT_FINDED": "Fichiers manquants",
|
||||
"EXIT": "Arrêt brutal"
|
||||
},
|
||||
"msg":{
|
||||
"STEAM_NOT_RUNNING": "Steam doit être en cours d'exécution pour lancer BeatSaber.",
|
||||
"BS_ALREADY_RUNNING": "Ferme BeatSaber avant de le lancer à nouveau.",
|
||||
"EXE_NOT_FINDED": "Quelques fichiers semblent manquants. Essaye de vérifier les fichiers.",
|
||||
"EXIT": "BeatSaber s'est arrêté brusquement, essaye de vérifier les fichiers."
|
||||
}
|
||||
}
|
||||
},
|
||||
"custom-version":{
|
||||
"errors":{
|
||||
"titles":{
|
||||
"CantEditSteam": "Edition impossible",
|
||||
"CantRename": "Renommage impossible",
|
||||
"VersionAlreadExist": "Cette version existe déjà",
|
||||
"CantClone": "Clonage impossible"
|
||||
},
|
||||
"msg":{
|
||||
"CantEditSteam": "Tu ne peut pas éditer la version Steam. Tu peut la cloner par contre."
|
||||
}
|
||||
},
|
||||
"success":{
|
||||
"titles":{
|
||||
"CloningFinished": "Clonage terminer 🎉"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"modals":{
|
||||
"guard":{
|
||||
"title": "Steam Guard",
|
||||
"inputs":{
|
||||
"guard-code":{
|
||||
"label": "Code Guard",
|
||||
"placeholder": "Entre ton code Guard"
|
||||
}
|
||||
},
|
||||
"buttons":{
|
||||
"submit": "Se connecter"
|
||||
}
|
||||
},
|
||||
"steam-login":{
|
||||
"title": "Connexion Steam",
|
||||
"inputs":{
|
||||
"username":{
|
||||
"label": "Nom d'utilisateur",
|
||||
"placeholder": "Entre ton nom d'utilisateur"
|
||||
},
|
||||
"password":{
|
||||
"label": "Mot de passe",
|
||||
"placeholder": "Entre ton mot de passe"
|
||||
},
|
||||
"stay":{
|
||||
"label": "Rester connecté"
|
||||
}
|
||||
},
|
||||
"buttons":{
|
||||
"submit": "Se connecter"
|
||||
}
|
||||
},
|
||||
"bs-uninstall":{
|
||||
"title": "Désinstaller",
|
||||
"description": "Est tu sûr de vouloir désinstaller BeatSaber {version} ? Tu vas devoir la retélécharger pour y jouer.",
|
||||
"buttons":{
|
||||
"submit": "Désinstaller"
|
||||
}
|
||||
},
|
||||
"install-folder":{
|
||||
"title": "Dossier d'installation",
|
||||
"description": "Changer le dossier d'installation par défaut, va engendrer le déplacement de toutes les données installer vers le nouveau dossier.",
|
||||
"buttons":{
|
||||
"submit": "Choisir un dossier"
|
||||
}
|
||||
},
|
||||
"edit-version":{
|
||||
"title": "Editer la version",
|
||||
"buttons":{
|
||||
"submit": "Editer"
|
||||
}
|
||||
},
|
||||
"clone-version":{
|
||||
"title": "Cloner la version",
|
||||
"description": "Cloner la version te permet de séparer les contenus additionnels de BeatSaber entre deux mêmes versions.",
|
||||
"buttons":{
|
||||
"submit": "Cloner"
|
||||
}
|
||||
}
|
||||
},
|
||||
"auto-update":{
|
||||
"checking": "Vérification des mises à jour",
|
||||
"downloading": "Téléchargement des mises à jour"
|
||||
},
|
||||
"dateformat":{
|
||||
"dayNames": [
|
||||
"Dim", "Lun", "Mar", "Mer", "Jeu", "Ven", "Sam",
|
||||
"Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi"
|
||||
],
|
||||
"monthNames": [
|
||||
"Jan", "Fév", "Mar", "Avr", "Mai", "Jun", "Juil", "Aou", "Sept", "Oct", "Nov", "Déc",
|
||||
"Janvier", "Février", "Mars", "Avril", "Mai", "Juin",
|
||||
"Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre"
|
||||
],
|
||||
"timeNames": [
|
||||
"a", "p", "am", "pm", "A", "P", "AM", "PM"
|
||||
]
|
||||
}
|
||||
}
|
||||