mirror of
https://github.com/sern-handler/gui
synced 2026-06-21 15:12:14 +00:00
Compare commits
17 Commits
localizati
...
v0.2.0
| Author | SHA1 | Date | |
|---|---|---|---|
| 387dff2bc0 | |||
| 9c32a1a54c | |||
| 12023c588d | |||
| ffb7ba0a34 | |||
|
|
81996728cd | ||
| 3301b99308 | |||
| 3d7161e5af | |||
| ede5e73f0b | |||
| cc615f91fa | |||
| 405228f417 | |||
| 4282b61eaa | |||
|
|
0d3a36faaa | ||
| 019acb5ba6 | |||
| 2a595746d6 | |||
| 6972abc098 | |||
| d608ff9446 | |||
| 09dbb1cef1 |
@@ -7,6 +7,10 @@ jobs:
|
|||||||
- checkout
|
- checkout
|
||||||
- run: yarn
|
- run: yarn
|
||||||
- run: yarn build-electron-win
|
- run: yarn build-electron-win
|
||||||
|
- run: mkdir /tmp/artifacts
|
||||||
|
- run: mv -t /tmp/artifacts dist/*.exe
|
||||||
|
- store_artifacts:
|
||||||
|
path: /tmp/artifacts
|
||||||
build_linux:
|
build_linux:
|
||||||
docker:
|
docker:
|
||||||
- image: node:lts
|
- image: node:lts
|
||||||
@@ -14,6 +18,21 @@ jobs:
|
|||||||
- checkout
|
- checkout
|
||||||
- run: yarn
|
- run: yarn
|
||||||
- run: yarn build-electron-linux
|
- run: yarn build-electron-linux
|
||||||
|
- run: mkdir /tmp/artifacts
|
||||||
|
- run: mv -t /tmp/artifacts dist/*.AppImage
|
||||||
|
- store_artifacts:
|
||||||
|
path: /tmp/artifacts
|
||||||
|
build_macos:
|
||||||
|
macos:
|
||||||
|
xcode: 14.2.0
|
||||||
|
steps:
|
||||||
|
- checkout
|
||||||
|
- run: yarn
|
||||||
|
- run: yarn build-electron-mac
|
||||||
|
- run: mkdir /tmp/artifacts
|
||||||
|
- run: mv dist/*.dmg /tmp/artifacts
|
||||||
|
- store_artifacts:
|
||||||
|
path: /tmp/artifacts
|
||||||
|
|
||||||
workflows:
|
workflows:
|
||||||
build:
|
build:
|
||||||
@@ -26,3 +45,6 @@ workflows:
|
|||||||
- build_linux:
|
- build_linux:
|
||||||
requires:
|
requires:
|
||||||
- hold
|
- hold
|
||||||
|
- build_macos:
|
||||||
|
requires:
|
||||||
|
- hold
|
||||||
@@ -13,8 +13,7 @@ module.exports = {
|
|||||||
parserOptions: {
|
parserOptions: {
|
||||||
ecmaVersion: 'latest',
|
ecmaVersion: 'latest',
|
||||||
sourceType: 'module',
|
sourceType: 'module',
|
||||||
tsconfigRootDir: __dirname,
|
tsconfigRootDir: __dirname
|
||||||
project: '.swcrc'
|
|
||||||
},
|
},
|
||||||
plugins: ['react-refresh'],
|
plugins: ['react-refresh'],
|
||||||
rules: {
|
rules: {
|
||||||
|
|||||||
@@ -1,32 +1,41 @@
|
|||||||
import * as path from 'node:path'
|
import * as path from 'node:path'
|
||||||
import { app, BrowserWindow, dialog, ipcMain } from 'electron';
|
import { app, BrowserWindow, dialog, ipcMain, ipcRenderer } from 'electron';
|
||||||
import * as isDev from 'electron-is-dev';
|
|
||||||
import * as colorette from 'colorette';
|
import * as colorette from 'colorette';
|
||||||
import * as fs from 'node:fs'
|
import * as fs from 'node:fs'
|
||||||
import * as os from 'node:os'
|
import * as os from 'node:os'
|
||||||
import { exec, spawn } from 'node:child_process';
|
import { exec, spawn } from 'node:child_process';
|
||||||
|
import getPlatform from './utils/getPlatform.js';
|
||||||
|
import updateChecker from './updateChecker.js';
|
||||||
|
|
||||||
function createWindow() {
|
async function createWindow() {
|
||||||
const mainWindow = new BrowserWindow({
|
const mainWindow = new BrowserWindow({
|
||||||
width: 800,
|
width: 800,
|
||||||
height: 600,
|
height: 600,
|
||||||
webPreferences: {
|
webPreferences: {
|
||||||
nodeIntegration: true,
|
nodeIntegration: true,
|
||||||
contextIsolation: false
|
contextIsolation: false,
|
||||||
},
|
},
|
||||||
icon: './icons/icon.png',
|
icon: './icons/icon.png',
|
||||||
show: false,
|
show: false,
|
||||||
autoHideMenuBar: true,
|
autoHideMenuBar: true,
|
||||||
title: 'sern',
|
title: 'sern',
|
||||||
});
|
});
|
||||||
if (isDev) {
|
if (app.isPackaged) {
|
||||||
mainWindow.loadURL('http://localhost:5173');
|
|
||||||
} else {
|
|
||||||
mainWindow.loadFile(path.join(__dirname, '../build/index.html'));
|
mainWindow.loadFile(path.join(__dirname, '../build/index.html'));
|
||||||
|
} else {
|
||||||
|
mainWindow.loadURL('http://localhost:5173');
|
||||||
}
|
}
|
||||||
|
|
||||||
mainWindow.on('ready-to-show', () => {
|
mainWindow.on('ready-to-show', async () => {
|
||||||
mainWindow.show();
|
mainWindow.show();
|
||||||
|
|
||||||
|
ipcMain.on('updateAvailable', async (event) => {
|
||||||
|
const checkUpdates = await updateChecker()
|
||||||
|
if (checkUpdates) {
|
||||||
|
event.reply('updateAvailableResponse', checkUpdates)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
mainWindow.on('page-title-updated', function (e) {
|
mainWindow.on('page-title-updated', function (e) {
|
||||||
@@ -123,22 +132,7 @@ app.on('activate', () => {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
let currentOS: string
|
const currentOS = getPlatform()
|
||||||
switch (process.platform) {
|
|
||||||
case 'linux':
|
|
||||||
currentOS = 'linux'
|
|
||||||
break;
|
|
||||||
case 'win32':
|
|
||||||
currentOS = 'windows'
|
|
||||||
break;
|
|
||||||
case 'darwin':
|
|
||||||
currentOS = 'macOS'
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
// defaulting for linux (most probable command syntax)
|
|
||||||
currentOS = 'linux'
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
const asciiart = ` .:-=-:.
|
const asciiart = ` .:-=-:.
|
||||||
.:=+++++++++=-.
|
.:=+++++++++=-.
|
||||||
|
|||||||
12
electron/updateChecker.ts
Normal file
12
electron/updateChecker.ts
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
import { app } from "electron"
|
||||||
|
|
||||||
|
export default async function updateChecker() {
|
||||||
|
const getLatest = await fetch('https://api.github.com/repos/sern-handler/gui/releases/latest')
|
||||||
|
.then(res => res.json())
|
||||||
|
|
||||||
|
if (`v${app.getVersion()}` !== getLatest.tag_name) {
|
||||||
|
return { version: getLatest.tag_name as string, url: getLatest.html_url as string }
|
||||||
|
} else {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
}
|
||||||
13
electron/utils/getPlatform.ts
Normal file
13
electron/utils/getPlatform.ts
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
export default function getPlatform() {
|
||||||
|
switch (process.platform) {
|
||||||
|
case 'linux':
|
||||||
|
return 'linux'
|
||||||
|
case 'win32':
|
||||||
|
return 'windows'
|
||||||
|
case 'darwin':
|
||||||
|
return 'macOS'
|
||||||
|
default:
|
||||||
|
// defaulting for linux (most probable command syntax)
|
||||||
|
return 'linux'
|
||||||
|
}
|
||||||
|
}
|
||||||
BIN
icons/dmgbg.png
Normal file
BIN
icons/dmgbg.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 7.5 KiB |
BIN
icons/icon.icns
BIN
icons/icon.icns
Binary file not shown.
BIN
icons/icon.ico
BIN
icons/icon.ico
Binary file not shown.
|
Before Width: | Height: | Size: 103 KiB After Width: | Height: | Size: 98 KiB |
BIN
icons/icon.png
BIN
icons/icon.png
Binary file not shown.
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 2.3 KiB |
@@ -4,7 +4,10 @@
|
|||||||
<meta charset="UTF-8" />
|
<meta charset="UTF-8" />
|
||||||
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
|
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
<title>Vite + React + TS</title>
|
<title>sern</title>
|
||||||
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||||
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||||
|
<link href="https://fonts.googleapis.com/css2?family=Noto+Color+Emoji&display=swap" rel="stylesheet">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div id="root"></div>
|
<div id="root"></div>
|
||||||
|
|||||||
@@ -29,6 +29,10 @@
|
|||||||
"COMMENT_FOR_TRANSLATOR_2": "the next string is used to change the text 'with' in the sentence 'with <package manager>'",
|
"COMMENT_FOR_TRANSLATOR_2": "the next string is used to change the text 'with' in the sentence 'with <package manager>'",
|
||||||
"with": "with"
|
"with": "with"
|
||||||
},
|
},
|
||||||
|
"updateChecker": {
|
||||||
|
"updateAvailable": "Update {{version}} is available!",
|
||||||
|
"viewRelease": "View release"
|
||||||
|
},
|
||||||
"footer": {
|
"footer": {
|
||||||
"COMMENT_FOR_TRANSLATOR": "Keep all the strings here as lowercase. It kinda gives a good vibe to the text :D",
|
"COMMENT_FOR_TRANSLATOR": "Keep all the strings here as lowercase. It kinda gives a good vibe to the text :D",
|
||||||
"web": "front page",
|
"web": "front page",
|
||||||
|
|||||||
@@ -29,6 +29,10 @@
|
|||||||
"COMMENT_FOR_TRANSLATOR_2": "El texto de abajo sirve para reemplazar 'with' en las opciones de plantilla con lo de abajo. No cambiar.",
|
"COMMENT_FOR_TRANSLATOR_2": "El texto de abajo sirve para reemplazar 'with' en las opciones de plantilla con lo de abajo. No cambiar.",
|
||||||
"with": "con"
|
"with": "con"
|
||||||
},
|
},
|
||||||
|
"updateChecker": {
|
||||||
|
"updateAvailable": "La versión {{version}} está disponible!",
|
||||||
|
"viewRelease": "Ver actualización"
|
||||||
|
},
|
||||||
"footer": {
|
"footer": {
|
||||||
"COMMENT_FOR_TRANSLATOR": "Mantén todos los textos aquí en minúsculas. Le dan un buen vibe al texto :D",
|
"COMMENT_FOR_TRANSLATOR": "Mantén todos los textos aquí en minúsculas. Le dan un buen vibe al texto :D",
|
||||||
"web": "web",
|
"web": "web",
|
||||||
|
|||||||
40
locales/tr.json
Normal file
40
locales/tr.json
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
{
|
||||||
|
"credits": {
|
||||||
|
"propsTo": "@xxDeveloper (translation)",
|
||||||
|
"btw": "All COMMENT_FOR_TRANSLATOR keys are comments that help you how to write translations. Follow these so you get approved faster."
|
||||||
|
},
|
||||||
|
"translation": {
|
||||||
|
"functionalityCard": {
|
||||||
|
"init": {
|
||||||
|
"description": "Yeni bir proje oluşturun"
|
||||||
|
},
|
||||||
|
"plugins": {
|
||||||
|
"description": "Proje eklentilerini yönetin"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"initModal": {
|
||||||
|
"openModalButton": "Başla",
|
||||||
|
"projectName": "Proje ismi",
|
||||||
|
"selectTemplate": "Şablon seç",
|
||||||
|
"couldntFetchTemplates": "Şablonlar yüklenemedi, yenilemeyi deneyin (CTRL+R) ve online oludğunuzdan emin olun",
|
||||||
|
"installPackagesCheckbox": "Paketleri ben devam ederken yükle",
|
||||||
|
"selectPackageManager": "Paket yöneticisini seçin",
|
||||||
|
"chooseDirectoryButton": "Klasör seçin",
|
||||||
|
"selectedDirectory": "Seçili klasör:",
|
||||||
|
"goButton": "Gidelim!",
|
||||||
|
"commandSuccessful": "Komut başarılı!",
|
||||||
|
"commandFailed": "Komut başarsız oldu!",
|
||||||
|
"COMMENT_FOR_TRANSLATOR": "burada büyük harf kullan",
|
||||||
|
"openLogFile": "LOG dosyasını aç",
|
||||||
|
"COMMENT_FOR_TRANSLATOR_2": "sonraki dize, 'with <paket yöneticisi>' cümlesinde 'with'i değiştirmek için kullanılır'",
|
||||||
|
"with": "ile birlikte"
|
||||||
|
},
|
||||||
|
"footer": {
|
||||||
|
"COMMENT_FOR_TRANSLATOR": "Burada yazılarında küçük harf kullan. İyi vibe veriyor :D",
|
||||||
|
"COMMENT_FOR_TRANSLATOR_2": "Onları şu anki halleriyle tut. Sonuçta onlar marka, dilimizde markalar pek farklı şekilde anılmıyor",
|
||||||
|
"web": "ön sayfa",
|
||||||
|
"github": "github",
|
||||||
|
"discord": "discord"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
43
package.json
43
package.json
@@ -1,15 +1,16 @@
|
|||||||
{
|
{
|
||||||
"name": "sern-gui",
|
"name": "sern-gui",
|
||||||
"private": true,
|
"private": true,
|
||||||
"version": "0.1.0-alpha",
|
"version": "0.2.0",
|
||||||
"main": "./dist/index.js",
|
"main": "./dist/index.js",
|
||||||
"homepage": "./",
|
"homepage": "./",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"start": "vite",
|
|
||||||
"build": "tsc && vite build",
|
"build": "tsc && vite build",
|
||||||
"lint": "eslint src --ext ts,tsx --report-unused-disable-directives --max-warnings 0",
|
"lint": "eslint src --ext ts,tsx --report-unused-disable-directives --max-warnings 0",
|
||||||
"preview": "vite preview",
|
"preview": "vite preview",
|
||||||
"electron": "nodemon --watch electron/ --exec \"swc ./electron/index.ts -d ./dist && npx electron .\" electron/index.ts",
|
"start": "vite",
|
||||||
|
"electron": "nodemon --watch electron/ --exec \"swc ./electron/ -d ./dist && npx electron .\" electron/index.ts",
|
||||||
|
"dev": "concurrently \"yarn start\" \"yarn electron\"",
|
||||||
"electron-build": "swc ./electron/index.ts -d ./dist",
|
"electron-build": "swc ./electron/index.ts -d ./dist",
|
||||||
"build-electron": "yarn build && yarn electron-build && electron-builder --linux --windows",
|
"build-electron": "yarn build && yarn electron-build && electron-builder --linux --windows",
|
||||||
"build-electron-linux": "yarn build && yarn electron-build && electron-builder --linux",
|
"build-electron-linux": "yarn build && yarn electron-build && electron-builder --linux",
|
||||||
@@ -26,11 +27,11 @@
|
|||||||
"@mui/icons-material": "^5.11.16",
|
"@mui/icons-material": "^5.11.16",
|
||||||
"@mui/material": "^5.13.4",
|
"@mui/material": "^5.13.4",
|
||||||
"colorette": "^2.0.20",
|
"colorette": "^2.0.20",
|
||||||
"electron-is-dev": "^2.0.0",
|
|
||||||
"i18next": "^23.4.4",
|
"i18next": "^23.4.4",
|
||||||
"react": "^18.2.0",
|
"react": "^18.2.0",
|
||||||
"react-dom": "^18.2.0",
|
"react-dom": "^18.2.0",
|
||||||
"react-i18next": "^13.1.2"
|
"react-i18next": "^13.1.2",
|
||||||
|
"react-snowfall": "^1.2.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@swc/cli": "^0.1.62",
|
"@swc/cli": "^0.1.62",
|
||||||
@@ -40,7 +41,8 @@
|
|||||||
"@typescript-eslint/eslint-plugin": "^5.61.0",
|
"@typescript-eslint/eslint-plugin": "^5.61.0",
|
||||||
"@typescript-eslint/parser": "^5.61.0",
|
"@typescript-eslint/parser": "^5.61.0",
|
||||||
"@vitejs/plugin-react-swc": "^3.3.2",
|
"@vitejs/plugin-react-swc": "^3.3.2",
|
||||||
"electron": "^25.2.0",
|
"concurrently": "^8.2.2",
|
||||||
|
"electron": "^28.1.0",
|
||||||
"electron-builder": "^24.4.0",
|
"electron-builder": "^24.4.0",
|
||||||
"eslint": "^8.44.0",
|
"eslint": "^8.44.0",
|
||||||
"eslint-plugin-react-hooks": "^4.6.0",
|
"eslint-plugin-react-hooks": "^4.6.0",
|
||||||
@@ -50,7 +52,8 @@
|
|||||||
"vite": "^4.4.0"
|
"vite": "^4.4.0"
|
||||||
},
|
},
|
||||||
"build": {
|
"build": {
|
||||||
"extends": null,
|
"appId": "dev.sern.gui",
|
||||||
|
"productName": "sern GUI",
|
||||||
"files": [
|
"files": [
|
||||||
"./build/**/*",
|
"./build/**/*",
|
||||||
"./dist/index.js"
|
"./dist/index.js"
|
||||||
@@ -61,6 +64,32 @@
|
|||||||
"win": {
|
"win": {
|
||||||
"icon": "./icons/icon.ico",
|
"icon": "./icons/icon.ico",
|
||||||
"publisherName": "sern"
|
"publisherName": "sern"
|
||||||
|
},
|
||||||
|
"mac": {
|
||||||
|
"icon": "./icons/icon.icns",
|
||||||
|
"category": "public.app-category.developer-tools",
|
||||||
|
"target": [
|
||||||
|
"dmg",
|
||||||
|
"zip"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"dmg": {
|
||||||
|
"background": "./icons/dmgbg.png",
|
||||||
|
"icon": "./icons/icon.icns",
|
||||||
|
"title": "sern GUI",
|
||||||
|
"contents": [
|
||||||
|
{
|
||||||
|
"x": 423,
|
||||||
|
"y": 203,
|
||||||
|
"type": "link",
|
||||||
|
"path": "/Applications"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"x": 117,
|
||||||
|
"y": 203,
|
||||||
|
"type": "file"
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,11 +1,5 @@
|
|||||||
@import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono&display=swap');
|
@import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono&display=swap');
|
||||||
|
|
||||||
/* @font-face {
|
|
||||||
font-family: 'Classic Console Neue';
|
|
||||||
src: local('Classic Console Neue'),
|
|
||||||
url('https://fonts.srizan.dev/clacon2.ttf') format('truetype');
|
|
||||||
} */
|
|
||||||
|
|
||||||
.titleHeader {
|
.titleHeader {
|
||||||
color: #4af626;
|
color: #4af626;
|
||||||
font-family: 'JetBrains Mono', 'Courier New', Courier, monospace;
|
font-family: 'JetBrains Mono', 'Courier New', Courier, monospace;
|
||||||
@@ -17,6 +11,5 @@
|
|||||||
gap: 30px;
|
gap: 30px;
|
||||||
padding: 20px;
|
padding: 20px;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
display: 'grid';
|
|
||||||
grid-template-columns: repeat(2, 1fr);
|
grid-template-columns: repeat(2, 1fr);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ export default function InitModal() {
|
|||||||
|
|
||||||
const [templates, setTemplates] = React.useState<Array<TemplateList>>([]);
|
const [templates, setTemplates] = React.useState<Array<TemplateList>>([]);
|
||||||
React.useEffect(() => {
|
React.useEffect(() => {
|
||||||
fetch('https://raw.githubusercontent.com/sern-handler/create-bot/main/metadata/templateChoices.jso')
|
fetch('https://raw.githubusercontent.com/sern-handler/create-bot/main/metadata/templateChoices.json')
|
||||||
.then((res) => res.json())
|
.then((res) => res.json())
|
||||||
.then((data) => {
|
.then((data) => {
|
||||||
setTemplates(data as TemplateList[]);
|
setTemplates(data as TemplateList[]);
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
@import url('https://fonts.googleapis.com/css2?family=Noto+Color+Emoji&display=swap');
|
||||||
|
|
||||||
.languageSelector {
|
.languageSelector {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 15px;
|
top: 15px;
|
||||||
|
|||||||
@@ -25,12 +25,14 @@ export default function LanguageSelector() {
|
|||||||
height: '40px',
|
height: '40px',
|
||||||
textAlign: 'center',
|
textAlign: 'center',
|
||||||
// this fixes a little text selection gap that appears in a
|
// this fixes a little text selection gap that appears in a
|
||||||
// few pixels outside the outer part of the selection "square"
|
// few pixels outside the outer part of the selection outline
|
||||||
cursor: 'pointer'
|
cursor: 'pointer',
|
||||||
|
fontFamily: 'Noto Color Emoji'
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<MenuItem value={'en'} className={'menuItems'}>🇺🇸</MenuItem>
|
<MenuItem value={'en'} className={'menuItems'} sx={{ fontFamily: 'Noto Color Emoji' }}>🇺🇸</MenuItem>
|
||||||
<MenuItem value={'es'} className={'menuItems'}>🇪🇸</MenuItem>
|
<MenuItem value={'es'} className={'menuItems'} sx={{ fontFamily: 'Noto Color Emoji' }}>🇪🇸</MenuItem>
|
||||||
|
<MenuItem value={'tr'} className={'menuItems'} sx={{ fontFamily: 'Noto Color Emoji' }}>🇹🇷</MenuItem>
|
||||||
</Select>
|
</Select>
|
||||||
</FormControl>
|
</FormControl>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
60
src/NewUpdate.tsx
Normal file
60
src/NewUpdate.tsx
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
import { useEffect, useState } from 'react';
|
||||||
|
const { shell, ipcRenderer } = window.require('electron');
|
||||||
|
import { useTranslation } from 'react-i18next';
|
||||||
|
import React from 'react';
|
||||||
|
import { Snackbar, Alert, Button, IconButton } from '@mui/material';
|
||||||
|
import CloseIcon from '@mui/icons-material/Close';
|
||||||
|
|
||||||
|
const NewUpdate = () => {
|
||||||
|
const { t } = useTranslation('translation', { keyPrefix: 'updateChecker' });
|
||||||
|
const [updateArgs, setUpdateArgs] = useState<null | NewUpdateArgs>(null);
|
||||||
|
const [snackbarOpen, setSnackbarOpen] = React.useState(true);
|
||||||
|
const handleSnackbarClose = () => setSnackbarOpen(false);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
ipcRenderer.send('updateAvailable');
|
||||||
|
|
||||||
|
ipcRenderer.on('updateAvailableResponse', (_event, args) => {
|
||||||
|
setUpdateArgs(args);
|
||||||
|
console.log('0gsafga')
|
||||||
|
ipcRenderer.removeAllListeners('updateAvailableResponse');
|
||||||
|
});
|
||||||
|
}, []);
|
||||||
|
|
||||||
|
const snackbarAction = (
|
||||||
|
<React.Fragment>
|
||||||
|
<Button color="secondary" size="small" onClick={() => shell.openExternal(updateArgs!.url!)}>
|
||||||
|
{t('viewRelease')}
|
||||||
|
</Button>
|
||||||
|
<IconButton
|
||||||
|
size="small"
|
||||||
|
aria-label="close"
|
||||||
|
color="inherit"
|
||||||
|
onClick={handleSnackbarClose}
|
||||||
|
>
|
||||||
|
<CloseIcon fontSize="small" />
|
||||||
|
</IconButton>
|
||||||
|
</React.Fragment>
|
||||||
|
);
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div>
|
||||||
|
{updateArgs && (
|
||||||
|
<div>
|
||||||
|
<Snackbar open={snackbarOpen} autoHideDuration={5000} onClose={handleSnackbarClose} action={snackbarAction}>
|
||||||
|
<Alert onClose={handleSnackbarClose} severity="success" sx={{ width: '100%' }} action={snackbarAction}>
|
||||||
|
{t('updateAvailable', { version: updateArgs.version })}
|
||||||
|
</Alert>
|
||||||
|
</Snackbar>
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default NewUpdate;
|
||||||
|
|
||||||
|
interface NewUpdateArgs {
|
||||||
|
version: string;
|
||||||
|
url: string;
|
||||||
|
}
|
||||||
6
src/SnowfallDecember.tsx
Normal file
6
src/SnowfallDecember.tsx
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
import Snowfall from "react-snowfall";
|
||||||
|
|
||||||
|
export default function SnowfallDecember() {
|
||||||
|
const time = new Date();
|
||||||
|
return (time.getMonth() === 11 || (time.getMonth() === 0 && time.getDate() <= 7)) && <Snowfall speed={[1.0, 2.0]} snowflakeCount={100} />;
|
||||||
|
}
|
||||||
23
src/main.tsx
23
src/main.tsx
@@ -1,4 +1,3 @@
|
|||||||
import * as React from 'react';
|
|
||||||
import * as ReactDOM from 'react-dom/client';
|
import * as ReactDOM from 'react-dom/client';
|
||||||
import './main.css';
|
import './main.css';
|
||||||
import App from './App';
|
import App from './App';
|
||||||
@@ -6,17 +5,20 @@ import i18n from "i18next";
|
|||||||
import { initReactI18next } from "react-i18next";
|
import { initReactI18next } from "react-i18next";
|
||||||
import enLocale from '../locales/en.json' assert { type: "json" };
|
import enLocale from '../locales/en.json' assert { type: "json" };
|
||||||
import esLocale from '../locales/es.json' assert { type: "json" };
|
import esLocale from '../locales/es.json' assert { type: "json" };
|
||||||
|
import trLocale from '../locales/tr.json' assert { type: "json" };
|
||||||
|
import SnowfallDecember from './SnowfallDecember.js';
|
||||||
|
import NewUpdate from './NewUpdate.js';
|
||||||
|
|
||||||
i18n
|
i18n
|
||||||
.use(initReactI18next) // passes i18n down to react-i18next
|
.use(initReactI18next)
|
||||||
.init({
|
.init({
|
||||||
resources: {
|
resources: {
|
||||||
en: enLocale,
|
en: enLocale,
|
||||||
es: esLocale
|
es: esLocale,
|
||||||
|
tr: trLocale
|
||||||
},
|
},
|
||||||
lng: window.localStorage.getItem('lang') || 'en',
|
lng: window.localStorage.getItem('lang') || 'en',
|
||||||
fallbackLng: "en",
|
fallbackLng: "en",
|
||||||
|
|
||||||
interpolation: {
|
interpolation: {
|
||||||
escapeValue: false
|
escapeValue: false
|
||||||
}
|
}
|
||||||
@@ -24,12 +26,9 @@ i18n
|
|||||||
|
|
||||||
const root = ReactDOM.createRoot(document.getElementById('root')!);
|
const root = ReactDOM.createRoot(document.getElementById('root')!);
|
||||||
root.render(
|
root.render(
|
||||||
<React.StrictMode>
|
<div>
|
||||||
<App />
|
<SnowfallDecember />
|
||||||
</React.StrictMode>
|
<NewUpdate />
|
||||||
|
<App />
|
||||||
|
</div>
|
||||||
);
|
);
|
||||||
|
|
||||||
// If you want to start measuring performance in your app, pass a function
|
|
||||||
// to log results (for example: reportWebVitals(console.log))
|
|
||||||
// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals
|
|
||||||
// reportWebVitals();
|
|
||||||
|
|||||||
85
yarn.lock
85
yarn.lock
@@ -1562,6 +1562,21 @@ concat-map@0.0.1:
|
|||||||
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
|
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
|
||||||
integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==
|
integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==
|
||||||
|
|
||||||
|
concurrently@^8.2.2:
|
||||||
|
version "8.2.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/concurrently/-/concurrently-8.2.2.tgz#353141985c198cfa5e4a3ef90082c336b5851784"
|
||||||
|
integrity sha512-1dP4gpXFhei8IOtlXRE/T/4H88ElHgTiUzh71YUmtjTEHMSRS2Z/fgOxHSxxusGHogsRfxNq1vyAwxSC+EVyDg==
|
||||||
|
dependencies:
|
||||||
|
chalk "^4.1.2"
|
||||||
|
date-fns "^2.30.0"
|
||||||
|
lodash "^4.17.21"
|
||||||
|
rxjs "^7.8.1"
|
||||||
|
shell-quote "^1.8.1"
|
||||||
|
spawn-command "0.0.2"
|
||||||
|
supports-color "^8.1.1"
|
||||||
|
tree-kill "^1.2.2"
|
||||||
|
yargs "^17.7.2"
|
||||||
|
|
||||||
config-file-ts@^0.2.4:
|
config-file-ts@^0.2.4:
|
||||||
version "0.2.4"
|
version "0.2.4"
|
||||||
resolved "https://registry.yarnpkg.com/config-file-ts/-/config-file-ts-0.2.4.tgz#6c0741fbe118a7cf786c65f139030f0448a2cc99"
|
resolved "https://registry.yarnpkg.com/config-file-ts/-/config-file-ts-0.2.4.tgz#6c0741fbe118a7cf786c65f139030f0448a2cc99"
|
||||||
@@ -1633,6 +1648,13 @@ csstype@^3.0.2, csstype@^3.1.2:
|
|||||||
resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.2.tgz#1d4bf9d572f11c14031f0436e1c10bc1f571f50b"
|
resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.2.tgz#1d4bf9d572f11c14031f0436e1c10bc1f571f50b"
|
||||||
integrity sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==
|
integrity sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==
|
||||||
|
|
||||||
|
date-fns@^2.30.0:
|
||||||
|
version "2.30.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.30.0.tgz#f367e644839ff57894ec6ac480de40cae4b0f4d0"
|
||||||
|
integrity sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==
|
||||||
|
dependencies:
|
||||||
|
"@babel/runtime" "^7.21.0"
|
||||||
|
|
||||||
debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4:
|
debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4:
|
||||||
version "4.3.4"
|
version "4.3.4"
|
||||||
resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
|
resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
|
||||||
@@ -1801,11 +1823,6 @@ electron-builder@^24.4.0:
|
|||||||
simple-update-notifier "^1.1.0"
|
simple-update-notifier "^1.1.0"
|
||||||
yargs "^17.6.2"
|
yargs "^17.6.2"
|
||||||
|
|
||||||
electron-is-dev@^2.0.0:
|
|
||||||
version "2.0.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/electron-is-dev/-/electron-is-dev-2.0.0.tgz#833487a069b8dad21425c67a19847d9064ab19bd"
|
|
||||||
integrity sha512-3X99K852Yoqu9AcW50qz3ibYBWY79/pBhlMCab8ToEWS48R0T9tyxRiQhwylE7zQdXrMnx2JKqUJyMPmt5FBqA==
|
|
||||||
|
|
||||||
electron-publish@24.4.0:
|
electron-publish@24.4.0:
|
||||||
version "24.4.0"
|
version "24.4.0"
|
||||||
resolved "https://registry.yarnpkg.com/electron-publish/-/electron-publish-24.4.0.tgz#a58f49ecd727620f65372881788ebb1a9b853284"
|
resolved "https://registry.yarnpkg.com/electron-publish/-/electron-publish-24.4.0.tgz#a58f49ecd727620f65372881788ebb1a9b853284"
|
||||||
@@ -1819,10 +1836,10 @@ electron-publish@24.4.0:
|
|||||||
lazy-val "^1.0.5"
|
lazy-val "^1.0.5"
|
||||||
mime "^2.5.2"
|
mime "^2.5.2"
|
||||||
|
|
||||||
electron@^25.2.0:
|
electron@^28.1.0:
|
||||||
version "25.3.0"
|
version "28.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/electron/-/electron-25.3.0.tgz#e818ab3ebd3e7a45f8fca0f47e607c9af2dc92c7"
|
resolved "https://registry.yarnpkg.com/electron/-/electron-28.1.0.tgz#9de1ecdaafcb0ec5753827f14dfb199e6c84545e"
|
||||||
integrity sha512-cyqotxN+AroP5h2IxUsJsmehYwP5LrFAOO7O7k9tILME3Sa1/POAg3shrhx4XEnaAMyMqMLxzGvkzCVxzEErnA==
|
integrity sha512-82Y7o4PSWPn1o/aVwYPsgmBw6Gyf2lVHpaBu3Ef8LrLWXxytg7ZRZr/RtDqEMOzQp3+mcuy3huH84MyjdmP50Q==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@electron/get" "^2.0.0"
|
"@electron/get" "^2.0.0"
|
||||||
"@types/node" "^18.11.18"
|
"@types/node" "^18.11.18"
|
||||||
@@ -2831,7 +2848,7 @@ lodash.merge@^4.6.2:
|
|||||||
resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a"
|
resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a"
|
||||||
integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==
|
integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==
|
||||||
|
|
||||||
lodash@^4.17.15:
|
lodash@^4.17.15, lodash@^4.17.21:
|
||||||
version "4.17.21"
|
version "4.17.21"
|
||||||
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
|
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
|
||||||
integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
|
integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
|
||||||
@@ -3439,6 +3456,11 @@ react-dom@^18.2.0:
|
|||||||
loose-envify "^1.1.0"
|
loose-envify "^1.1.0"
|
||||||
scheduler "^0.23.0"
|
scheduler "^0.23.0"
|
||||||
|
|
||||||
|
react-fast-compare@^3.2.0:
|
||||||
|
version "3.2.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/react-fast-compare/-/react-fast-compare-3.2.2.tgz#929a97a532304ce9fee4bcae44234f1ce2c21d49"
|
||||||
|
integrity sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==
|
||||||
|
|
||||||
react-i18next@^13.1.2:
|
react-i18next@^13.1.2:
|
||||||
version "13.1.2"
|
version "13.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/react-i18next/-/react-i18next-13.1.2.tgz#dbb1b18c364295af2a9072333ee4e0b43cbc2da8"
|
resolved "https://registry.yarnpkg.com/react-i18next/-/react-i18next-13.1.2.tgz#dbb1b18c364295af2a9072333ee4e0b43cbc2da8"
|
||||||
@@ -3457,6 +3479,13 @@ react-is@^18.2.0:
|
|||||||
resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b"
|
resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b"
|
||||||
integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==
|
integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==
|
||||||
|
|
||||||
|
react-snowfall@^1.2.1:
|
||||||
|
version "1.2.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/react-snowfall/-/react-snowfall-1.2.1.tgz#68cab6a1d05aa7c3211bce96a3a97977ca7dc57f"
|
||||||
|
integrity sha512-d2UR3nDq3F0DJGaTfJ0QNbBo76UZHtT9wHFj+ePxAl4FgSxWBhxB/Bjn06f5iDBwhgwiZ7CZmv3lwfNvjo6a+w==
|
||||||
|
dependencies:
|
||||||
|
react-fast-compare "^3.2.0"
|
||||||
|
|
||||||
react-transition-group@^4.4.5:
|
react-transition-group@^4.4.5:
|
||||||
version "4.4.5"
|
version "4.4.5"
|
||||||
resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-4.4.5.tgz#e53d4e3f3344da8521489fbef8f2581d42becdd1"
|
resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-4.4.5.tgz#e53d4e3f3344da8521489fbef8f2581d42becdd1"
|
||||||
@@ -3596,6 +3625,13 @@ run-parallel@^1.1.9:
|
|||||||
dependencies:
|
dependencies:
|
||||||
queue-microtask "^1.2.2"
|
queue-microtask "^1.2.2"
|
||||||
|
|
||||||
|
rxjs@^7.8.1:
|
||||||
|
version "7.8.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.1.tgz#6f6f3d99ea8044291efd92e7c7fcf562c4057543"
|
||||||
|
integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==
|
||||||
|
dependencies:
|
||||||
|
tslib "^2.1.0"
|
||||||
|
|
||||||
safe-buffer@5.2.1, safe-buffer@~5.2.0:
|
safe-buffer@5.2.1, safe-buffer@~5.2.0:
|
||||||
version "5.2.1"
|
version "5.2.1"
|
||||||
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
|
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
|
||||||
@@ -3695,6 +3731,11 @@ shebang-regex@^3.0.0:
|
|||||||
resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
|
resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
|
||||||
integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
|
integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
|
||||||
|
|
||||||
|
shell-quote@^1.8.1:
|
||||||
|
version "1.8.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.1.tgz#6dbf4db75515ad5bac63b4f1894c3a154c766680"
|
||||||
|
integrity sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==
|
||||||
|
|
||||||
signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7:
|
signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7:
|
||||||
version "3.0.7"
|
version "3.0.7"
|
||||||
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9"
|
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9"
|
||||||
@@ -3797,6 +3838,11 @@ source-map@^0.7.3:
|
|||||||
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656"
|
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656"
|
||||||
integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==
|
integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==
|
||||||
|
|
||||||
|
spawn-command@0.0.2:
|
||||||
|
version "0.0.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/spawn-command/-/spawn-command-0.0.2.tgz#9544e1a43ca045f8531aac1a48cb29bdae62338e"
|
||||||
|
integrity sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==
|
||||||
|
|
||||||
sprintf-js@^1.1.2:
|
sprintf-js@^1.1.2:
|
||||||
version "1.1.2"
|
version "1.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.2.tgz#da1765262bf8c0f571749f2ad6c26300207ae673"
|
resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.2.tgz#da1765262bf8c0f571749f2ad6c26300207ae673"
|
||||||
@@ -3907,6 +3953,13 @@ supports-color@^7.1.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
has-flag "^4.0.0"
|
has-flag "^4.0.0"
|
||||||
|
|
||||||
|
supports-color@^8.1.1:
|
||||||
|
version "8.1.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c"
|
||||||
|
integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==
|
||||||
|
dependencies:
|
||||||
|
has-flag "^4.0.0"
|
||||||
|
|
||||||
supports-preserve-symlinks-flag@^1.0.0:
|
supports-preserve-symlinks-flag@^1.0.0:
|
||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09"
|
resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09"
|
||||||
@@ -3978,6 +4031,11 @@ touch@^3.1.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
nopt "~1.0.10"
|
nopt "~1.0.10"
|
||||||
|
|
||||||
|
tree-kill@^1.2.2:
|
||||||
|
version "1.2.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc"
|
||||||
|
integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==
|
||||||
|
|
||||||
trim-repeated@^2.0.0:
|
trim-repeated@^2.0.0:
|
||||||
version "2.0.0"
|
version "2.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/trim-repeated/-/trim-repeated-2.0.0.tgz#5d60556d6d40d9461b7c7e06c3ac20b6b1d50090"
|
resolved "https://registry.yarnpkg.com/trim-repeated/-/trim-repeated-2.0.0.tgz#5d60556d6d40d9461b7c7e06c3ac20b6b1d50090"
|
||||||
@@ -3997,6 +4055,11 @@ tslib@^1.8.1:
|
|||||||
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
|
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
|
||||||
integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
|
integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
|
||||||
|
|
||||||
|
tslib@^2.1.0:
|
||||||
|
version "2.6.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae"
|
||||||
|
integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==
|
||||||
|
|
||||||
tsutils@^3.21.0:
|
tsutils@^3.21.0:
|
||||||
version "3.21.0"
|
version "3.21.0"
|
||||||
resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623"
|
resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623"
|
||||||
@@ -4183,7 +4246,7 @@ yargs-parser@^21.1.1:
|
|||||||
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35"
|
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35"
|
||||||
integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==
|
integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==
|
||||||
|
|
||||||
yargs@^17.0.1, yargs@^17.6.2:
|
yargs@^17.0.1, yargs@^17.6.2, yargs@^17.7.2:
|
||||||
version "17.7.2"
|
version "17.7.2"
|
||||||
resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269"
|
resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269"
|
||||||
integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==
|
integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==
|
||||||
|
|||||||
Reference in New Issue
Block a user