mirror of
https://github.com/OpenFusionProject/Client.git
synced 2025-11-26 05:20:19 +00:00
Compare commits
69 Commits
043bf219e7
...
1.6.1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1117c9bd68 | ||
|
|
bd27433535 | ||
|
|
72ea6bdaca | ||
|
|
d4a1ecebc7 | ||
|
|
323b5a3385 | ||
|
|
c898cacd7c | ||
|
|
e5b20f57ce | ||
|
|
1eee35b230 | ||
|
|
d8363b61a6 | ||
|
|
6239f383bc | ||
|
|
19e036ddf9 | ||
|
4503c9268e
|
|||
|
947c231b12
|
|||
|
37699e38f8
|
|||
|
|
451cb4a2af | ||
|
|
d52e149192 | ||
|
|
16a158906d | ||
|
|
7f9c5d90a1 | ||
|
|
17f194810c | ||
|
|
87072b0789 | ||
|
|
e933bc52fe | ||
|
|
1078778e16 | ||
|
|
5dca39a17e | ||
|
|
0eca42cdf8 | ||
|
|
fa0bdd7b1a | ||
|
|
feafd8d17f | ||
|
|
6a7b029539 | ||
|
|
171177b606 | ||
|
|
1c2cf41e97 | ||
|
|
0201f11333 | ||
|
|
a859590ef9 | ||
|
|
356e811bac | ||
|
|
cdabb36639 | ||
|
|
547ca778b0 | ||
|
|
6bae0d1ff6 | ||
|
|
11f0c61a67 | ||
|
|
1d78bc2d9b | ||
|
|
c78a3e5ada | ||
|
|
c05e9c0dcd | ||
|
|
e1ef76744a | ||
|
|
04aea6059e | ||
|
|
600b33a230 | ||
|
|
48efd00a4a | ||
|
|
f28c9c0bb8 | ||
|
|
e3f16d8fc9 | ||
|
|
6f7f1655b9 | ||
|
|
597e80b112 | ||
|
|
79bdba74a5 | ||
|
|
16a99f86c7 | ||
|
|
05af8a3f9e | ||
|
|
27f0992b52 | ||
|
|
132b725922 | ||
|
|
b5ab9aad2d | ||
|
|
01ee292d10 | ||
|
|
2183106c73 | ||
|
|
db7370ca41 | ||
|
|
ec0fc87dcd | ||
|
|
cef8c1de93 | ||
|
|
b73329c6de | ||
|
|
2e7dc51aa1 | ||
|
|
3fc6cabe33 | ||
|
|
71e4694ff6 | ||
|
|
76f4a05287 | ||
|
|
97144aad59 | ||
|
|
4a465ca689 | ||
|
|
43f0c8c684 | ||
|
|
d4dc403e90 | ||
|
|
ab5de9488d | ||
|
|
dabb8bf484 |
19
.editorconfig
Normal file
19
.editorconfig
Normal file
@@ -0,0 +1,19 @@
|
||||
# top-most EditorConfig file
|
||||
root = true
|
||||
|
||||
# Unix-style newlines with a newline ending every file
|
||||
[*]
|
||||
end_of_line = lf
|
||||
insert_final_newline = true
|
||||
|
||||
# 4 space indentation
|
||||
[*.js, *.css, *.html, *.json]
|
||||
indent_style = space
|
||||
indent_size = 4
|
||||
|
||||
# Don't enforce anything in vendored code
|
||||
[*.min.*]
|
||||
end_of_line = unset
|
||||
insert_final_newline = unset
|
||||
indent_style = unset
|
||||
indent_style = unset
|
||||
3
.gitattributes
vendored
3
.gitattributes
vendored
@@ -3,3 +3,6 @@
|
||||
*.js text eol=lf
|
||||
*.json text eol=lf
|
||||
*.md text eol=lf
|
||||
|
||||
defaults/* linguist-vendored
|
||||
lib/* linguist-vendored
|
||||
|
||||
47
.github/workflows/build.yml
vendored
Normal file
47
.github/workflows/build.yml
vendored
Normal file
@@ -0,0 +1,47 @@
|
||||
name: Publish Build
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: ["main"]
|
||||
tags: "*"
|
||||
|
||||
permissions:
|
||||
contents: write
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: windows-2022
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: Set up Node.js 20.x
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: 20.x
|
||||
cache: "npm"
|
||||
- name: Install dependencies
|
||||
run: npm install
|
||||
- name: Pack into zip and create installer
|
||||
run: npm run dist
|
||||
- name: Upload Artifacts
|
||||
uses: actions/upload-artifact@master
|
||||
with:
|
||||
path: dist
|
||||
|
||||
publish-release:
|
||||
if: contains(github.ref, 'refs/tags/')
|
||||
runs-on: ubuntu-latest
|
||||
needs: build
|
||||
|
||||
steps:
|
||||
- name: Download artifact
|
||||
uses: actions/download-artifact@master
|
||||
- name: Create release
|
||||
uses: ncipollo/release-action@v1
|
||||
with:
|
||||
artifacts: "artifact/*-ia32-win.zip,artifact/*.exe"
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
6
.gitignore
vendored
6
.gitignore
vendored
@@ -8,4 +8,8 @@ version
|
||||
resources/app/files/rankurl.txt
|
||||
node_modules/
|
||||
dist/
|
||||
UnityBugReporter.exe
|
||||
UnityBugReporter.exe
|
||||
cache_handler/*/
|
||||
extra/
|
||||
*.sh
|
||||
yarn.lock
|
||||
3
.vscode/settings.json
vendored
Normal file
3
.vscode/settings.json
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"editor.formatOnSave": true
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2020-2023 OpenFusion Contributors
|
||||
Copyright (c) 2020-2024 OpenFusion Contributors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# OpenFusionClient
|
||||
|
||||
[](https://github.com/OpenFusionProject/OpenFusionClient/releases/latest) [](https://discord.gg/DYavckB)[](https://github.com/OpenFusionProject/OpenFusionClient/blob/master/LICENSE.md)
|
||||
[](https://github.com/OpenFusionProject/OpenFusionClient/releases/latest) [](https://discord.gg/DYavckB)[](https://github.com/OpenFusionProject/OpenFusionClient/blob/master/LICENSE.md)
|
||||
|
||||
An Electron app that allows you to easily join FusionFall servers.
|
||||
|
||||
|
||||
@@ -59,12 +59,24 @@ body {
|
||||
"Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
|
||||
}
|
||||
|
||||
#of-versionnumberdiv {
|
||||
#of-about-button-div {
|
||||
position: fixed;
|
||||
bottom: 4px;
|
||||
right: 8px;
|
||||
}
|
||||
|
||||
#of-about-flash-div {
|
||||
position: fixed;
|
||||
bottom: 4px;
|
||||
right: 8px;
|
||||
}
|
||||
|
||||
#of-config-button-div {
|
||||
position: fixed;
|
||||
bottom: 4px;
|
||||
left: 8px;
|
||||
}
|
||||
|
||||
.btn-primary {
|
||||
background-image: url("../../assets/img/btn-primary-bg.png");
|
||||
background-repeat: repeat;
|
||||
@@ -80,6 +92,23 @@ body {
|
||||
background-repeat: repeat;
|
||||
}
|
||||
|
||||
.btn-warning {
|
||||
background-image: url("../../assets/img/btn-warning-bg.png");
|
||||
background-repeat: repeat;
|
||||
}
|
||||
|
||||
.form-check-input {
|
||||
width: 25px;
|
||||
height: 25px;
|
||||
}
|
||||
|
||||
.form-check-label {
|
||||
height: 25px;
|
||||
margin-top: 5px;
|
||||
margin-left: 10px;
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
#of-aboutmodal > .modal-dialog > .modal-content {
|
||||
background-color: #093363;
|
||||
border-color: #6699ff;
|
||||
@@ -105,6 +134,36 @@ body {
|
||||
border-color: #6699ff;
|
||||
}
|
||||
|
||||
#of-editcacheconfigmodal > .modal-dialog > .modal-content {
|
||||
background-color: #093363;
|
||||
border-color: #6699ff;
|
||||
}
|
||||
|
||||
#of-editconfigmodal > .modal-dialog > .modal-content {
|
||||
background-color: #093363;
|
||||
border-color: #6699ff;
|
||||
}
|
||||
|
||||
#of-addversionmodal > .modal-dialog > .modal-content {
|
||||
background-color: #093363;
|
||||
border-color: #6699ff;
|
||||
}
|
||||
|
||||
#of-editversionmodal > .modal-dialog > .modal-content {
|
||||
background-color: #093363;
|
||||
border-color: #6699ff;
|
||||
}
|
||||
|
||||
#of-deleteversionmodal > .modal-dialog > .modal-content {
|
||||
background-color: #093363;
|
||||
border-color: #6699ff;
|
||||
}
|
||||
|
||||
#of-restoreversionsmodal > .modal-dialog > .modal-content {
|
||||
background-color: #093363;
|
||||
border-color: #6699ff;
|
||||
}
|
||||
|
||||
.form-control,
|
||||
.form-control:focus {
|
||||
border-color: #0099ff;
|
||||
@@ -118,6 +177,14 @@ select {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.modal {
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
.invalidinput {
|
||||
border-color: #ff0000;
|
||||
}
|
||||
|
||||
button:disabled {
|
||||
cursor: not-allowed;
|
||||
pointer-events: all !important;
|
||||
@@ -143,3 +210,19 @@ button > i {
|
||||
background: #000;
|
||||
clear: both;
|
||||
}
|
||||
|
||||
@keyframes pulse {
|
||||
0% {
|
||||
opacity: 1;
|
||||
}
|
||||
50% {
|
||||
opacity: 0;
|
||||
}
|
||||
100% {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
.pulsing {
|
||||
animation: pulse 2s infinite;
|
||||
}
|
||||
|
||||
BIN
assets/img/btn-warning-bg.png
Normal file
BIN
assets/img/btn-warning-bg.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 514 B |
Binary file not shown.
|
Before Width: | Height: | Size: 72 KiB |
@@ -1,10 +1,8 @@
|
||||
// You're kind of ruining the surprise by reading this, but whatever
|
||||
var today = new Date();
|
||||
|
||||
// Check Christmas season: Date constructor in Javascript uses an index
|
||||
// so 11 is Dec. of this year, and 12 is Jan. of the next
|
||||
var christmasBegin = new Date(today.getFullYear(), 11, 23);
|
||||
var christmasEnd = new Date(today.getFullYear(), 12, 8);
|
||||
var christmasBegin = new Date(today.getFullYear(), 11, 21);
|
||||
var christmasEnd = new Date(today.getFullYear(), 11, 31);
|
||||
var sf;
|
||||
|
||||
if (today >= christmasBegin && today <= christmasEnd) {
|
||||
|
||||
@@ -61,7 +61,7 @@ function launchGame() {
|
||||
object.setAttribute("height", "661");
|
||||
|
||||
var embed = document.createElement("embed");
|
||||
embed.setAttribute("type", "application/vnd.unity");
|
||||
embed.setAttribute("type", "application/vnd.ffuwp");
|
||||
embed.setAttribute(
|
||||
"pluginspage",
|
||||
"http://www.unity3d.com/unity-web-player-2.x"
|
||||
@@ -80,14 +80,6 @@ function launchGame() {
|
||||
"progressframeimage",
|
||||
"assets/img/unity-loadingframe.png"
|
||||
);
|
||||
embed.setAttribute(
|
||||
"autoupdateurlsignature",
|
||||
"42180ee5edc4e3d4dd706bcc17cedd8d6ec7b7ac463071fd34ab97fe181f1a78df31db5feb4526677e4f69ef53acaff44471591e68b87f041c80fd54765f0d5725b08aa28f5acf7716ffb2a04e971269f35925c7e38d57dd78f6a206530caaa3da7e32f07f19810efc0ebf29a4eae976a925ad9cc5beb4dd51564c67dc489033"
|
||||
);
|
||||
embed.setAttribute(
|
||||
"autoupdateurl",
|
||||
"http://wp-cartoonnetwork.unity3d.com/ff/big/beta-20111013/autodownload_webplugin_beta"
|
||||
);
|
||||
|
||||
var div = document.getElementById("client");
|
||||
object.appendChild(embed);
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
32
build/OpenFusionClient.exe.manifest
Normal file
32
build/OpenFusionClient.exe.manifest
Normal file
@@ -0,0 +1,32 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
|
||||
<assemblyIdentity type="win32" name="OpenFusion.Client" version="1.6.0.0" processorArchitecture="x86" />
|
||||
<dependency>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity type="Win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*">
|
||||
</assemblyIdentity>
|
||||
</dependentAssembly>
|
||||
</dependency>
|
||||
<asmv3:trustInfo>
|
||||
<security>
|
||||
<requestedPrivileges>
|
||||
<requestedExecutionLevel level="asInvoker" uiAccess="false"></requestedExecutionLevel>
|
||||
</requestedPrivileges>
|
||||
</security>
|
||||
</asmv3:trustInfo>
|
||||
<asmv3:application>
|
||||
<asmv3:windowsSettings>
|
||||
<activeCodePage xmlns="urn:schemas-microsoft-com:smi.2019.WindowsSettings">UTF-8</activeCodePage>
|
||||
<dpiAware xmlns="urn:schemas-microsoft-com:smi.2005.WindowsSettings">True/PM</dpiAware>
|
||||
</asmv3:windowsSettings>
|
||||
</asmv3:application>
|
||||
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
|
||||
<application>
|
||||
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"></supportedOS>
|
||||
<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"></supportedOS>
|
||||
<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"></supportedOS>
|
||||
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"></supportedOS>
|
||||
<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"></supportedOS>
|
||||
</application>
|
||||
</compatibility>
|
||||
</asmv1:assembly>
|
||||
@@ -1,9 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<plist>
|
||||
<dict>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>2.5.5b4</string>
|
||||
<key>UnityBuildNumber</key>
|
||||
<string>50</string>
|
||||
</dict>
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<plist>
|
||||
<dict>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>2.5.5b4</string>
|
||||
<key>UnityBuildNumber</key>
|
||||
<string>50</string>
|
||||
</dict>
|
||||
</plist>
|
||||
BIN
build/WebPlayer/loader/npUnity3D32.dll
Normal file
BIN
build/WebPlayer/loader/npUnity3D32.dll
Normal file
Binary file not shown.
@@ -1,9 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<plist>
|
||||
<dict>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>3.5.2f2</string>
|
||||
<key>UnityBuildNumber</key>
|
||||
<string>4c6ee796dacc</string>
|
||||
</dict>
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<plist>
|
||||
<dict>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>2.5.5b4</string>
|
||||
<key>UnityBuildNumber</key>
|
||||
<string>50</string>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -1,13 +1,13 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<plist>
|
||||
<dict>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>2.5.5b4</string>
|
||||
<key>UnityBuildNumber</key>
|
||||
<string>50</string>
|
||||
<key>monoVersion</key>
|
||||
<string>fusion-2.x.x</string>
|
||||
<key>monoMinimumRevision</key>
|
||||
<string>2.0.0f6</string>
|
||||
</dict>
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<plist>
|
||||
<dict>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>2.5.5b4</string>
|
||||
<key>UnityBuildNumber</key>
|
||||
<string>50</string>
|
||||
<key>monoVersion</key>
|
||||
<string>fusion-2.x.x</string>
|
||||
<key>monoMinimumRevision</key>
|
||||
<string>2.0.0f6</string>
|
||||
</dict>
|
||||
</plist>
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
1109
cache_handler/cache_handler.py
Normal file
1109
cache_handler/cache_handler.py
Normal file
File diff suppressed because it is too large
Load Diff
33
cache_handler/cache_handler.spec
Normal file
33
cache_handler/cache_handler.spec
Normal file
@@ -0,0 +1,33 @@
|
||||
# -*- mode: python ; coding: utf-8 -*-
|
||||
|
||||
block_cipher = None
|
||||
|
||||
|
||||
a = Analysis(['cache_handler.py'],
|
||||
pathex=['Z:\\src'],
|
||||
binaries=[],
|
||||
datas=[],
|
||||
hiddenimports=[],
|
||||
hookspath=[],
|
||||
runtime_hooks=[],
|
||||
excludes=[],
|
||||
win_no_prefer_redirects=False,
|
||||
win_private_assemblies=False,
|
||||
cipher=block_cipher,
|
||||
noarchive=False)
|
||||
pyz = PYZ(a.pure, a.zipped_data,
|
||||
cipher=block_cipher)
|
||||
exe = EXE(pyz,
|
||||
a.scripts,
|
||||
a.binaries,
|
||||
a.zipfiles,
|
||||
a.datas,
|
||||
[],
|
||||
name='cache_handler',
|
||||
debug=False,
|
||||
bootloader_ignore_signals=False,
|
||||
strip=False,
|
||||
upx=True,
|
||||
upx_exclude=[],
|
||||
runtime_tmpdir=None,
|
||||
console=True )
|
||||
4
cache_handler/requirements.txt
Normal file
4
cache_handler/requirements.txt
Normal file
@@ -0,0 +1,4 @@
|
||||
aiofiles
|
||||
httpx
|
||||
beautifulsoup4
|
||||
pyinstaller==3.5
|
||||
4
defaults/config.json
vendored
4
defaults/config.json
vendored
@@ -1,5 +1,7 @@
|
||||
{
|
||||
"autoupdate-check": true,
|
||||
"cache-swapping": true,
|
||||
"last-version-initialized": "1.4"
|
||||
"enable-offline-cache": true,
|
||||
"verify-offline-cache": false,
|
||||
"last-version-initialized": "1.6"
|
||||
}
|
||||
|
||||
35695
defaults/hashes.json
vendored
Normal file
35695
defaults/hashes.json
vendored
Normal file
File diff suppressed because it is too large
Load Diff
527
index.html
527
index.html
@@ -1,7 +1,11 @@
|
||||
<!DOCTYPE html>
|
||||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta
|
||||
http-equiv="Content-Type"
|
||||
contentType="text/html; charset=UTF-8"
|
||||
/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>OpenFusion: Server Selector</title>
|
||||
<link rel="stylesheet" href="assets/css/bootstrap.min.css" />
|
||||
@@ -104,6 +108,18 @@
|
||||
</button>
|
||||
</div>
|
||||
<div class="col-4 d-inline-flex justify-content-end">
|
||||
<button
|
||||
class="btn btn-primary mr-1"
|
||||
data-toggle="modal"
|
||||
data-bs-tooltip=""
|
||||
data-placement="bottom"
|
||||
id="of-editcache-button"
|
||||
type="button"
|
||||
title="Edit Game Builds"
|
||||
data-target="#of-editcacheconfigmodal"
|
||||
>
|
||||
<i class="fas fa-database"></i>
|
||||
</button>
|
||||
<button
|
||||
class="btn btn-primary disabled"
|
||||
id="of-connect-button"
|
||||
@@ -145,7 +161,7 @@
|
||||
APP_VERSION_NUMBER
|
||||
</p>
|
||||
<p>
|
||||
©2020-2023 OpenFusion Contributors<br />OpenFusion
|
||||
©2020-2024 OpenFusion Contributors<br />OpenFusion
|
||||
is licensed under MIT.<br />
|
||||
</p>
|
||||
<a
|
||||
@@ -155,6 +171,14 @@
|
||||
data-target="#of-restoreserversmodal"
|
||||
>Reset to Default Servers</a
|
||||
>
|
||||
<br />
|
||||
<a
|
||||
href="#of-restoreversionsmodal"
|
||||
onclick="$('#of-aboutmodal').modal('toggle')"
|
||||
data-toggle="modal"
|
||||
data-target="#of-restoreversionsmodal"
|
||||
>Reset to Default Game Builds</a
|
||||
>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<div class="row flex-fill">
|
||||
@@ -165,7 +189,7 @@
|
||||
data-bs-tooltip=""
|
||||
type="button"
|
||||
title="Github Page"
|
||||
onclick="window.open('https://github.com/OpenFusionProject/OpenFusion','_blank');"
|
||||
onclick="window.open('https://github.com/OpenFusionProject/OpenFusion','_blank');"
|
||||
>
|
||||
<i
|
||||
class="fab fa-github"
|
||||
@@ -177,7 +201,7 @@
|
||||
data-bs-tooltip=""
|
||||
type="button"
|
||||
title="Discord Chat"
|
||||
onclick="window.open('https://discord.gg/DYavckB','_blank');"
|
||||
onclick="window.open('https://discord.gg/DYavckB','_blank');"
|
||||
>
|
||||
<i
|
||||
class="fab fa-discord"
|
||||
@@ -234,6 +258,7 @@
|
||||
required=""
|
||||
minlength="1"
|
||||
maxlength="70"
|
||||
oninput="validateServerSave('add')"
|
||||
/><label for="addserver-ipinput"
|
||||
>Server IP</label
|
||||
><input
|
||||
@@ -241,8 +266,10 @@
|
||||
type="text"
|
||||
id="addserver-ipinput"
|
||||
placeholder="127.0.0.1:23000"
|
||||
value="127.0.0.1:23000"
|
||||
required=""
|
||||
pattern="^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]):[0-9]+$"
|
||||
pattern="^([-a-zA-Z0-9]+\.)+[-a-zA-Z0-9]+:[0-9]+$"
|
||||
oninput="validateServerSave('add')"
|
||||
/><label for="addserver-versionselect"
|
||||
>Game Version: </label
|
||||
><select
|
||||
@@ -250,6 +277,7 @@
|
||||
id="addserver-versionselect"
|
||||
required=""
|
||||
style="margin-left: -5px"
|
||||
oninput="validateServerSave('add')"
|
||||
></select>
|
||||
</form>
|
||||
</div>
|
||||
@@ -306,7 +334,8 @@
|
||||
required=""
|
||||
minlength="1"
|
||||
maxlength="70"
|
||||
/><label for="addserver-ipinput"
|
||||
oninput="validateServerSave('edit')"
|
||||
/><label for="editserver-ipinput"
|
||||
>Server IP</label
|
||||
><input
|
||||
class="form-control form-row w-75"
|
||||
@@ -314,7 +343,8 @@
|
||||
id="editserver-ipinput"
|
||||
placeholder="127.0.0.1:23000"
|
||||
required=""
|
||||
pattern="^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]):[0-9]+$"
|
||||
pattern="^([-a-zA-Z0-9]+\.)+[-a-zA-Z0-9]+:[0-9]+$"
|
||||
oninput="validateServerSave('edit')"
|
||||
/><label for="editserver-versionselect"
|
||||
>Game Version: </label
|
||||
><select
|
||||
@@ -322,6 +352,7 @@
|
||||
id="editserver-versionselect"
|
||||
required=""
|
||||
style="margin-left: -5px"
|
||||
oninput="validateServerSave('edit')"
|
||||
></select>
|
||||
</form>
|
||||
</div>
|
||||
@@ -335,7 +366,7 @@
|
||||
Cancel</button
|
||||
><button
|
||||
class="btn btn-primary border rounded border-primary btn-success border-success"
|
||||
id="addserver-savebutton"
|
||||
id="editserver-savebutton"
|
||||
type="submit"
|
||||
data-dismiss="modal"
|
||||
form="editserver-form"
|
||||
@@ -428,7 +459,7 @@
|
||||
Cancel</button
|
||||
><button
|
||||
class="btn btn-primary border rounded border-primary btn-danger border-danger"
|
||||
id="deleteserver-button"
|
||||
id="restoreservers-button"
|
||||
type="button"
|
||||
data-dismiss="modal"
|
||||
onclick="restoreDefaultServers();"
|
||||
@@ -439,15 +470,477 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="of-versionnumberdiv">
|
||||
<a
|
||||
id="of-versionnumber"
|
||||
class="text-monospace text-secondary"
|
||||
href="#of-aboutmodal"
|
||||
data-toggle="modal"
|
||||
data-target="#of-aboutmodal"
|
||||
>v0</a
|
||||
<div
|
||||
class="modal fade"
|
||||
role="dialog"
|
||||
tabindex="-1"
|
||||
id="of-editconfigmodal"
|
||||
>
|
||||
<div class="modal-dialog modal-dialog-centered" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h4 class="modal-title">Edit Configuration</h4>
|
||||
<button
|
||||
type="button"
|
||||
class="close"
|
||||
data-dismiss="modal"
|
||||
aria-label="Close"
|
||||
>
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<form
|
||||
id="editconfig-form"
|
||||
class="needs-validation form-group"
|
||||
>
|
||||
<div class="form-check form-row">
|
||||
<input
|
||||
class="form-check-input"
|
||||
type="checkbox"
|
||||
id="editconfig-autoupdate"
|
||||
/>
|
||||
<label
|
||||
class="form-check-label"
|
||||
for="editconfig-autoupdate"
|
||||
>Automatically check for updates</label
|
||||
>
|
||||
</div>
|
||||
<div class="form-check form-row">
|
||||
<input
|
||||
class="form-check-input"
|
||||
type="checkbox"
|
||||
id="editconfig-cacheswapping"
|
||||
/>
|
||||
<label
|
||||
class="form-check-label"
|
||||
for="editconfig-cacheswapping"
|
||||
>Swap game caches to avoid unnecessary
|
||||
downloads</label
|
||||
>
|
||||
</div>
|
||||
<div class="form-check form-row">
|
||||
<input
|
||||
class="form-check-input"
|
||||
type="checkbox"
|
||||
id="editconfig-enableofflinecache"
|
||||
/>
|
||||
<label
|
||||
class="form-check-label"
|
||||
for="editconfig-enableofflinecache"
|
||||
>Use offline caches when they are
|
||||
available</label
|
||||
>
|
||||
</div>
|
||||
<div class="form-check form-row mb-3">
|
||||
<input
|
||||
class="form-check-input"
|
||||
type="checkbox"
|
||||
id="editconfig-verifyofflinecache"
|
||||
/>
|
||||
<label
|
||||
class="form-check-label"
|
||||
for="editconfig-verifyofflinecache"
|
||||
>Verify offline caches every time they
|
||||
are loaded</label
|
||||
>
|
||||
</div>
|
||||
<label for="editconfig-offlinecachelocation"
|
||||
><h5>Offline Cache Location:</h5></label
|
||||
>
|
||||
<div class="form-row">
|
||||
<input
|
||||
class="form-control w-75"
|
||||
id="editconfig-offlinecachelocation"
|
||||
type="text"
|
||||
oninput="validateCacheLocation()"
|
||||
/>
|
||||
<button
|
||||
type="button"
|
||||
class="btn btn-primary ml-1"
|
||||
onclick="browseOfflineCache()"
|
||||
title="Browse"
|
||||
>
|
||||
<i class="fas fa-folder"></i>
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button
|
||||
class="btn btn-primary border rounded border-primary btn-danger border-danger"
|
||||
id="editconfig-cancel"
|
||||
type="button"
|
||||
data-dismiss="modal"
|
||||
>
|
||||
Cancel</button
|
||||
><button
|
||||
class="btn btn-primary border rounded border-primary btn-success border-success"
|
||||
id="editconfig-savebutton"
|
||||
type="submit"
|
||||
data-dismiss="modal"
|
||||
form="editconfig-form"
|
||||
onclick="editConfig();"
|
||||
>
|
||||
Save
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
class="modal fade"
|
||||
role="dialog"
|
||||
tabindex="-1"
|
||||
id="of-editcacheconfigmodal"
|
||||
>
|
||||
<div
|
||||
class="modal-dialog modal-dialog-centered modal-lg"
|
||||
role="document"
|
||||
>
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h4 class="modal-title">Edit Game Builds</h4>
|
||||
<button
|
||||
type="button"
|
||||
class="close"
|
||||
data-dismiss="modal"
|
||||
aria-label="Close"
|
||||
>
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div
|
||||
class="row row-cols-2 d-xl-flex justify-content-center justify-content-xl-start"
|
||||
id="of-versionbuttons"
|
||||
style="padding-bottom: 16px"
|
||||
>
|
||||
<div
|
||||
class="col-4 text-left d-inline-flex justify-content-xl-start"
|
||||
id="cache-buttons"
|
||||
>
|
||||
<button
|
||||
class="btn btn-success mr-1"
|
||||
data-toggle="modal"
|
||||
data-bs-tooltip=""
|
||||
data-placement="bottom"
|
||||
id="of-addversion-button"
|
||||
type="button"
|
||||
title="Add Version"
|
||||
data-target="#of-addversionmodal"
|
||||
onclick="deselectVersion()"
|
||||
>
|
||||
<i class="fas fa-plus"></i>
|
||||
</button>
|
||||
<button
|
||||
class="btn btn-primary mr-1 disabled"
|
||||
data-toggle="modal"
|
||||
data-bs-tooltip=""
|
||||
data-placement="bottom"
|
||||
id="of-editversion-button"
|
||||
type="button"
|
||||
title="Edit Version"
|
||||
data-target="#of-editversionmodal"
|
||||
disabled=""
|
||||
>
|
||||
<i class="fas fa-edit"></i>
|
||||
</button>
|
||||
<button
|
||||
class="btn btn-danger mr-1 disabled"
|
||||
data-toggle="modal"
|
||||
data-bs-tooltip=""
|
||||
data-placement="bottom"
|
||||
id="of-deleteversion-button"
|
||||
type="button"
|
||||
title="Delete Version"
|
||||
data-target="#of-deleteversionmodal"
|
||||
disabled=""
|
||||
>
|
||||
<i class="fas fa-trash-alt"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
class="table-responsive text-center border rounded border-primary"
|
||||
id="cache-table"
|
||||
>
|
||||
<table
|
||||
class="table table-striped table-hover mb-0"
|
||||
>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Game Version</th>
|
||||
<th>Game Cache</th>
|
||||
<th>Offline Cache</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="cache-tablebody"></tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
class="modal fade"
|
||||
role="dialog"
|
||||
tabindex="-1"
|
||||
id="of-addversionmodal"
|
||||
>
|
||||
<div class="modal-dialog modal-dialog-centered" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h4 class="modal-title">Add Version</h4>
|
||||
<button
|
||||
type="button"
|
||||
class="close"
|
||||
data-dismiss="modal"
|
||||
aria-label="Close"
|
||||
>
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<form id="addversion-form" class="needs-validation">
|
||||
<label for="addversion-nameinput"
|
||||
>Version Name</label
|
||||
><input
|
||||
class="form-control form-row w-75"
|
||||
type="text"
|
||||
id="addversion-nameinput"
|
||||
placeholder="custom-build-000"
|
||||
required=""
|
||||
pattern="^[-a-zA-Z0-9_]{1,70}$"
|
||||
oninput="validateVersionSave('add')"
|
||||
/><label for="addversion-urlinput"
|
||||
>Version URL</label
|
||||
><input
|
||||
class="form-control form-row w-75"
|
||||
type="text"
|
||||
id="addversion-urlinput"
|
||||
placeholder="http://cdn.dexlabs.systems/custom-build-000/"
|
||||
required=""
|
||||
pattern="^(https?|file):\/\/\/?([-a-zA-Z0-9@:%._\+~#= ]{1,256}\/){1,64}$"
|
||||
oninput="validateVersionSave('add')"
|
||||
/>
|
||||
</form>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button
|
||||
class="btn btn-primary border rounded border-primary btn-danger border-danger"
|
||||
id="addversion-cancel"
|
||||
type="button"
|
||||
data-dismiss="modal"
|
||||
>
|
||||
Cancel</button
|
||||
><button
|
||||
class="btn btn-primary border rounded border-primary btn-success border-success"
|
||||
id="addversion-savebutton"
|
||||
type="submit"
|
||||
data-dismiss="modal"
|
||||
form="addversion-form"
|
||||
onclick="addVersion();"
|
||||
>
|
||||
Save
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
class="modal fade"
|
||||
role="dialog"
|
||||
tabindex="-1"
|
||||
id="of-editversionmodal"
|
||||
>
|
||||
<div class="modal-dialog modal-dialog-centered" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h4 class="modal-title">Edit Version</h4>
|
||||
<button
|
||||
type="button"
|
||||
class="close"
|
||||
data-dismiss="modal"
|
||||
aria-label="Close"
|
||||
>
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<form
|
||||
id="editversion-form"
|
||||
class="needs-validation"
|
||||
>
|
||||
<label for="editversion-nameinput"
|
||||
>Version Name</label
|
||||
><input
|
||||
class="form-control form-row w-75"
|
||||
type="text"
|
||||
id="editversion-nameinput"
|
||||
placeholder="custom-build-000"
|
||||
required=""
|
||||
pattern="^[-a-zA-Z0-9_]{1,70}$"
|
||||
oninput="validateVersionSave('edit')"
|
||||
/><label for="editversion-urlinput"
|
||||
>Version URL</label
|
||||
><input
|
||||
class="form-control form-row w-75"
|
||||
type="text"
|
||||
id="editversion-urlinput"
|
||||
placeholder="http://cdn.dexlabs.systems/custom-build-000/"
|
||||
required=""
|
||||
pattern="^(https?|file):\/\/\/?([-a-zA-Z0-9@:%._\+~#= ]{1,256}\/){1,64}$"
|
||||
oninput="validateVersionSave('edit')"
|
||||
/>
|
||||
</form>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button
|
||||
class="btn btn-primary border rounded border-primary btn-danger border-danger"
|
||||
id="editversion-cancel"
|
||||
type="button"
|
||||
data-dismiss="modal"
|
||||
>
|
||||
Cancel</button
|
||||
><button
|
||||
class="btn btn-primary border rounded border-primary btn-success border-success"
|
||||
id="editversion-savebutton"
|
||||
type="submit"
|
||||
data-dismiss="modal"
|
||||
form="editversion-form"
|
||||
onclick="editVersion();"
|
||||
>
|
||||
Save
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
class="modal fade"
|
||||
role="dialog"
|
||||
tabindex="-1"
|
||||
id="of-deleteversionmodal"
|
||||
>
|
||||
<div class="modal-dialog modal-dialog-centered" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h4 class="modal-title">Are you sure?</h4>
|
||||
<button
|
||||
type="button"
|
||||
class="close"
|
||||
data-dismiss="modal"
|
||||
aria-label="Close"
|
||||
>
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<p class="lead">
|
||||
Do you really want to delete<br />"<a
|
||||
id="deleteversion-versionname"
|
||||
>VERSION_NAME</a
|
||||
>"?<br /><br />You could always re-add it later.
|
||||
</p>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button
|
||||
class="btn btn-primary border rounded border-primary"
|
||||
type="button"
|
||||
data-dismiss="modal"
|
||||
>
|
||||
Cancel</button
|
||||
><button
|
||||
class="btn btn-primary border rounded border-primary btn-danger border-danger"
|
||||
id="deleteversion-button"
|
||||
type="button"
|
||||
data-dismiss="modal"
|
||||
onclick="deleteVersion();"
|
||||
>
|
||||
Yes, Delete
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
class="modal fade"
|
||||
role="dialog"
|
||||
tabindex="-1"
|
||||
id="of-restoreversionsmodal"
|
||||
>
|
||||
<div class="modal-dialog modal-dialog-centered" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h4 class="modal-title">Are you sure?</h4>
|
||||
<button
|
||||
type="button"
|
||||
class="close"
|
||||
data-dismiss="modal"
|
||||
aria-label="Close"
|
||||
>
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<p class="lead">
|
||||
Do you really want to restore the default
|
||||
versions?
|
||||
</p>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button
|
||||
class="btn btn-primary border rounded border-primary"
|
||||
type="button"
|
||||
data-dismiss="modal"
|
||||
>
|
||||
Cancel</button
|
||||
><button
|
||||
class="btn btn-primary border rounded border-primary btn-danger border-danger"
|
||||
id="restoreversions-button"
|
||||
type="button"
|
||||
data-dismiss="modal"
|
||||
onclick="restoreDefaultVersions();"
|
||||
>
|
||||
Yes, Restore
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="of-config-button-div">
|
||||
<button
|
||||
class="btn btn-primary mr-1"
|
||||
data-toggle="modal"
|
||||
data-bs-tooltip=""
|
||||
data-placement="right"
|
||||
id="of-editconfig-button"
|
||||
type="button"
|
||||
title="Edit Configuration"
|
||||
data-target="#of-editconfigmodal"
|
||||
>
|
||||
<i class="fas fa-cog"></i>
|
||||
</button>
|
||||
</div>
|
||||
<div id="of-about-button-div">
|
||||
<button
|
||||
class="btn btn-primary mr-1"
|
||||
data-toggle="modal"
|
||||
data-bs-tooltip=""
|
||||
data-placement="left"
|
||||
id="of-about-button"
|
||||
type="button"
|
||||
title="About OpenFusionClient"
|
||||
data-target="#of-aboutmodal"
|
||||
>
|
||||
<i class="fas fa-info-circle"></i>
|
||||
</button>
|
||||
</div>
|
||||
<div id="of-about-flash-div" style="z-index: -1">
|
||||
<button class="btn btn-warning mr-1" tabindex="-1" type="button">
|
||||
<i class="fas fa-info-circle"></i>
|
||||
</button>
|
||||
</div>
|
||||
</section>
|
||||
<section>
|
||||
|
||||
202
index.js
202
index.js
@@ -1,115 +1,117 @@
|
||||
var app = require("app"); // Module to control application life.
|
||||
var ipc = require("ipc");
|
||||
var fs = require("fs-extra");
|
||||
var os = require("os");
|
||||
var dialog = require("dialog");
|
||||
var BrowserWindow = require("browser-window");
|
||||
var fs = require("fs-extra");
|
||||
var ipc = require("ipc");
|
||||
var os = require("os");
|
||||
var path = require("path");
|
||||
|
||||
var BrowserWindow = require("browser-window");
|
||||
var mainWindow = null;
|
||||
|
||||
app.commandLine.appendSwitch("enable-npapi");
|
||||
var unityHomeDir = path.join(__dirname, "../../WebPlayer");
|
||||
// If running in non-packaged / development mode, this dir will be slightly different
|
||||
if (process.env.npm_node_execpath) {
|
||||
unityHomeDir = path.join(app.getAppPath(), "/build/WebPlayer");
|
||||
}
|
||||
|
||||
function verifyMD5Hash(file, hash) {
|
||||
if (fs.existsSync(file)) {
|
||||
var buffer = fs.readFileSync(file);
|
||||
var computedHash = require("crypto")
|
||||
.createHash("md5")
|
||||
.update(buffer)
|
||||
.digest("hex");
|
||||
if (hash == computedHash) {
|
||||
return true;
|
||||
process.env["UNITY_HOME_DIR"] = unityHomeDir;
|
||||
process.env["UNITY_DISABLE_PLUGIN_UPDATES"] = "yes";
|
||||
|
||||
app.commandLine.appendSwitch("enable-npapi");
|
||||
app.commandLine.appendSwitch(
|
||||
"load-plugin",
|
||||
path.join(unityHomeDir, "/loader/npUnity3D32.dll")
|
||||
);
|
||||
app.commandLine.appendSwitch("no-proxy-server");
|
||||
|
||||
var userData = app.getPath("userData");
|
||||
var configPath = path.join(userData, "config.json");
|
||||
var serversPath = path.join(userData, "servers.json");
|
||||
var versionsPath = path.join(userData, "versions.json");
|
||||
var hashPath = path.join(userData, "hashes.json");
|
||||
|
||||
function backup() {
|
||||
if (fs.existsSync(configPath)) fs.copySync(configPath, configPath + ".bak");
|
||||
if (fs.existsSync(serversPath))
|
||||
fs.copySync(serversPath, serversPath + ".bak");
|
||||
if (fs.existsSync(versionsPath))
|
||||
fs.copySync(versionsPath, versionsPath + ".bak");
|
||||
if (fs.existsSync(hashPath)) fs.copySync(hashPath, hashPath + ".bak");
|
||||
}
|
||||
|
||||
function patchVersions() {
|
||||
var current = fs.readJsonSync(versionsPath);
|
||||
var newDefaults = fs.readJsonSync(
|
||||
path.join(__dirname, "/defaults/versions.json")
|
||||
);
|
||||
for (var i = 0; i < newDefaults["versions"].length; i++) {
|
||||
var newDefault = newDefaults["versions"][i];
|
||||
var found = false;
|
||||
for (var j = 0; j < current["versions"].length; j++) {
|
||||
var version = current["versions"][j];
|
||||
if (newDefault["name"] === version["name"]) {
|
||||
current["versions"][j] = newDefault;
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!found) {
|
||||
current["versions"].push(newDefault);
|
||||
}
|
||||
}
|
||||
return false;
|
||||
fs.writeFileSync(versionsPath, JSON.stringify(current, null, 4));
|
||||
}
|
||||
|
||||
function verifyUnity() {
|
||||
var loaderPath =
|
||||
app.getPath("appData") +
|
||||
"\\..\\LocalLow\\Unity\\WebPlayer\\loader\\npUnity3D32.dll";
|
||||
var playerPath =
|
||||
app.getPath("appData") +
|
||||
"\\..\\LocalLow\\Unity\\WebPlayer\\player\\fusion-2.x.x\\webplayer_win.dll";
|
||||
|
||||
return (
|
||||
verifyMD5Hash(loaderPath, "dbbac62d8379d2d870479b04b8157b99") &&
|
||||
verifyMD5Hash(playerPath, "e5028405b4483de9e5e5fe9cd5f1e98f")
|
||||
function patchServers() {
|
||||
var current = fs.readJsonSync(serversPath);
|
||||
var newDefaults = fs.readJsonSync(
|
||||
path.join(__dirname, "/defaults/servers.json")
|
||||
);
|
||||
}
|
||||
|
||||
function installUnity(callback) {
|
||||
var utilsDir = __dirname + "\\..\\..\\utils";
|
||||
|
||||
// if running in non-packaged / development mode, this dir will be slightly different
|
||||
if (process.env.npm_node_execpath) {
|
||||
utilsDir = app.getAppPath() + "\\build\\utils";
|
||||
for (var i = 0; i < newDefaults["servers"].length; i++) {
|
||||
var newDefault = newDefaults["servers"][i];
|
||||
var found = false;
|
||||
for (var j = 0; j < current["servers"].length; j++) {
|
||||
var server = current["servers"][j];
|
||||
if (newDefault["uuid"] === server["uuid"]) {
|
||||
current["servers"][j] = newDefault;
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!found) {
|
||||
current["servers"].push(newDefault);
|
||||
}
|
||||
}
|
||||
|
||||
// run the installer silently
|
||||
var child = require("child_process").spawn(
|
||||
utilsDir + "\\UnityWebPlayer.exe",
|
||||
["/quiet", "/S"]
|
||||
);
|
||||
child.on("exit", function () {
|
||||
// overwrite 3.5.2 loader/player with FF's custom version
|
||||
var dest = app.getPath("appData") + "\\..\\LocalLow\\Unity\\WebPlayer";
|
||||
fs.copySync(utilsDir + "\\WebPlayer", dest, { clobber: true });
|
||||
// avoids error reporter popping up when closing Electron
|
||||
fs.removeSync(dest + "\\UnityBugReporter.exe");
|
||||
console.log("Unity Web Player installed successfully.");
|
||||
callback();
|
||||
});
|
||||
fs.writeFileSync(serversPath, JSON.stringify(current, null, 4));
|
||||
}
|
||||
|
||||
function initialSetup(firstTime) {
|
||||
// Display a small window to inform the user that the app is working
|
||||
setupWindow = new BrowserWindow({
|
||||
width: 275,
|
||||
height: 450,
|
||||
resizable: false,
|
||||
center: true,
|
||||
frame: false,
|
||||
});
|
||||
setupWindow.loadUrl("file://" + __dirname + "/initial-setup.html");
|
||||
installUnity(function () {
|
||||
if (!firstTime) {
|
||||
// migration from pre-1.4
|
||||
// Back everything up, just in case
|
||||
fs.copySync(
|
||||
app.getPath("userData") + "\\config.json",
|
||||
app.getPath("userData") + "\\config.json.bak"
|
||||
);
|
||||
fs.copySync(
|
||||
app.getPath("userData") + "\\servers.json",
|
||||
app.getPath("userData") + "\\servers.json.bak"
|
||||
);
|
||||
fs.copySync(
|
||||
app.getPath("userData") + "\\versions.json",
|
||||
app.getPath("userData") + "\\versions.json.bak"
|
||||
);
|
||||
} else {
|
||||
// first-time setup
|
||||
// Copy default servers
|
||||
fs.copySync(
|
||||
__dirname + "\\defaults\\servers.json",
|
||||
app.getPath("userData") + "\\servers.json"
|
||||
);
|
||||
}
|
||||
backup();
|
||||
|
||||
// Copy default versions and config
|
||||
if (firstTime) {
|
||||
// First-time setup
|
||||
// Copy default servers
|
||||
fs.copySync(
|
||||
__dirname + "\\defaults\\versions.json",
|
||||
app.getPath("userData") + "\\versions.json"
|
||||
path.join(__dirname, "/defaults/servers.json"),
|
||||
serversPath
|
||||
);
|
||||
fs.copySync(
|
||||
__dirname + "\\defaults\\config.json",
|
||||
app.getPath("userData") + "\\config.json"
|
||||
path.join(__dirname, "/defaults/versions.json"),
|
||||
versionsPath
|
||||
);
|
||||
} else if (fs.existsSync(serversPath)) {
|
||||
// Migration
|
||||
// Update default servers and versions
|
||||
patchVersions();
|
||||
patchServers();
|
||||
}
|
||||
|
||||
console.log("JSON files copied.");
|
||||
setupWindow.destroy();
|
||||
showMainWindow();
|
||||
});
|
||||
// Copy default versions and config
|
||||
fs.copySync(path.join(__dirname, "/defaults/config.json"), configPath);
|
||||
fs.copySync(path.join(__dirname, "/defaults/hashes.json"), hashPath);
|
||||
|
||||
console.log("JSON files copied.");
|
||||
showMainWindow();
|
||||
}
|
||||
|
||||
ipc.on("exit", function (id) {
|
||||
@@ -131,33 +133,29 @@ app.on("ready", function () {
|
||||
dialog.showErrorBox("Error!", errorMessage);
|
||||
return;
|
||||
}
|
||||
|
||||
// Create the browser window.
|
||||
mainWindow = new BrowserWindow({
|
||||
width: 1280,
|
||||
height: 720,
|
||||
show: false,
|
||||
"web-preferences": { plugins: true },
|
||||
"web-preferences": {
|
||||
plugins: true,
|
||||
},
|
||||
});
|
||||
mainWindow.setMinimumSize(640, 480);
|
||||
|
||||
// Check for first run
|
||||
var configPath = app.getPath("userData") + "\\config.json";
|
||||
try {
|
||||
if (!fs.existsSync(configPath)) {
|
||||
console.log("Config file not found. Running initial setup.");
|
||||
initialSetup(true);
|
||||
} else {
|
||||
var config = fs.readJsonSync(configPath);
|
||||
if (!config["last-version-initialized"]) {
|
||||
console.log("Pre-1.4 config detected. Running migration.");
|
||||
if (config["last-version-initialized"] !== "1.6") {
|
||||
console.log("Pre-1.6 config detected. Running migration.");
|
||||
initialSetup(false);
|
||||
} else {
|
||||
if (verifyUnity()) {
|
||||
showMainWindow();
|
||||
} else {
|
||||
installUnity(showMainWindow);
|
||||
}
|
||||
showMainWindow();
|
||||
}
|
||||
}
|
||||
} catch (ex) {
|
||||
@@ -191,6 +189,7 @@ function showMainWindow() {
|
||||
mainWindow.webContents.executeJavaScript("loadConfig();");
|
||||
mainWindow.webContents.executeJavaScript("loadGameVersions();");
|
||||
mainWindow.webContents.executeJavaScript("loadServerList();");
|
||||
mainWindow.webContents.executeJavaScript("loadCacheList();");
|
||||
});
|
||||
|
||||
mainWindow.webContents.on("plugin-crashed", function () {
|
||||
@@ -204,7 +203,6 @@ function showMainWindow() {
|
||||
|
||||
mainWindow.webContents.on("will-navigate", function (event, url) {
|
||||
event.preventDefault();
|
||||
// TODO: showMessageBox rather than showErrorBox?
|
||||
switch (url) {
|
||||
case "https://audience.fusionfall.com/ff/regWizard.do?_flowId=fusionfall-registration-flow":
|
||||
var errorMessage =
|
||||
|
||||
@@ -1,40 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>OpenFusion: Initial Setup</title>
|
||||
</head>
|
||||
<body
|
||||
style="
|
||||
overflow: hidden;
|
||||
background-color: #000;
|
||||
user-select: none;
|
||||
-webkit-user-select: none;
|
||||
"
|
||||
>
|
||||
<center>
|
||||
<div>
|
||||
<img src="assets/img/of-3.png" width="256" />
|
||||
<div>
|
||||
<img src="assets/img/spinner.gif" width="50px" />
|
||||
</div>
|
||||
<div style="margin-top: 15px">
|
||||
<p
|
||||
style="
|
||||
text-shadow: 1px 1px 8px #4349c4;
|
||||
color: #4a76b7;
|
||||
font-size: 18px;
|
||||
font-family: -apple-system, BlinkMacSystemFont,
|
||||
'Segoe UI', Roboto, 'Helvetica Neue', Arial,
|
||||
'Noto Sans', sans-serif, 'Apple Color Emoji',
|
||||
'Segoe UI Emoji', 'Segoe UI Symbol',
|
||||
'Noto Color Emoji';
|
||||
"
|
||||
>
|
||||
OpenFusion is setting up...<br />Please wait - this
|
||||
should take <br />less than a minute.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</center>
|
||||
</body>
|
||||
</html>
|
||||
BIN
lib/cache_handler.exe
vendored
Executable file
BIN
lib/cache_handler.exe
vendored
Executable file
Binary file not shown.
421
package-lock.json
generated
421
package-lock.json
generated
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "OpenFusionClient",
|
||||
"version": "1.4.1",
|
||||
"version": "1.6.0",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "OpenFusionClient",
|
||||
"version": "1.4.1",
|
||||
"version": "1.6.0",
|
||||
"hasInstallScript": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
@@ -15,8 +15,8 @@
|
||||
"devDependencies": {
|
||||
"electron-builder": "^22.14.13",
|
||||
"electron-prebuilt": "^0.31.2",
|
||||
"patch-package": "^6.5.1",
|
||||
"prettier": "^2.7.1"
|
||||
"patch-package": "^7.0.2",
|
||||
"prettier": "^3.3.3"
|
||||
}
|
||||
},
|
||||
"node_modules/@develar/schema-utils": {
|
||||
@@ -112,65 +112,6 @@
|
||||
"node": ">= 10"
|
||||
}
|
||||
},
|
||||
"node_modules/@malept/cross-spawn-promise/node_modules/cross-spawn": {
|
||||
"version": "7.0.3",
|
||||
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
|
||||
"integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"path-key": "^3.1.0",
|
||||
"shebang-command": "^2.0.0",
|
||||
"which": "^2.0.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 8"
|
||||
}
|
||||
},
|
||||
"node_modules/@malept/cross-spawn-promise/node_modules/path-key": {
|
||||
"version": "3.1.1",
|
||||
"resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
|
||||
"integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/@malept/cross-spawn-promise/node_modules/shebang-command": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
|
||||
"integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"shebang-regex": "^3.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/@malept/cross-spawn-promise/node_modules/shebang-regex": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
|
||||
"integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/@malept/cross-spawn-promise/node_modules/which": {
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
|
||||
"integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"isexe": "^2.0.0"
|
||||
},
|
||||
"bin": {
|
||||
"node-which": "bin/node-which"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 8"
|
||||
}
|
||||
},
|
||||
"node_modules/@malept/flatpak-bundler": {
|
||||
"version": "0.4.0",
|
||||
"resolved": "https://registry.npmjs.org/@malept/flatpak-bundler/-/flatpak-bundler-0.4.0.tgz",
|
||||
@@ -996,20 +937,6 @@
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/builder-util/node_modules/cross-spawn": {
|
||||
"version": "7.0.3",
|
||||
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
|
||||
"integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"path-key": "^3.1.0",
|
||||
"shebang-command": "^2.0.0",
|
||||
"which": "^2.0.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 8"
|
||||
}
|
||||
},
|
||||
"node_modules/builder-util/node_modules/debug": {
|
||||
"version": "4.3.4",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
|
||||
@@ -1059,51 +986,6 @@
|
||||
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/builder-util/node_modules/path-key": {
|
||||
"version": "3.1.1",
|
||||
"resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
|
||||
"integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/builder-util/node_modules/shebang-command": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
|
||||
"integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"shebang-regex": "^3.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/builder-util/node_modules/shebang-regex": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
|
||||
"integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/builder-util/node_modules/which": {
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
|
||||
"integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"isexe": "^2.0.0"
|
||||
},
|
||||
"bin": {
|
||||
"node-which": "bin/node-which"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 8"
|
||||
}
|
||||
},
|
||||
"node_modules/cacheable-request": {
|
||||
"version": "6.1.0",
|
||||
"resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz",
|
||||
@@ -1423,19 +1305,17 @@
|
||||
}
|
||||
},
|
||||
"node_modules/cross-spawn": {
|
||||
"version": "6.0.5",
|
||||
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
|
||||
"integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
|
||||
"version": "7.0.3",
|
||||
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
|
||||
"integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"nice-try": "^1.0.4",
|
||||
"path-key": "^2.0.1",
|
||||
"semver": "^5.5.0",
|
||||
"shebang-command": "^1.2.0",
|
||||
"which": "^1.2.9"
|
||||
"path-key": "^3.1.0",
|
||||
"shebang-command": "^2.0.0",
|
||||
"which": "^2.0.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=4.8"
|
||||
"node": ">= 8"
|
||||
}
|
||||
},
|
||||
"node_modules/crypto-random-string": {
|
||||
@@ -2597,7 +2477,7 @@
|
||||
"node_modules/isexe": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
|
||||
"integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
|
||||
"integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/isstream": {
|
||||
@@ -2968,12 +2848,6 @@
|
||||
"ncp": "bin/ncp"
|
||||
}
|
||||
},
|
||||
"node_modules/nice-try": {
|
||||
"version": "1.0.5",
|
||||
"resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
|
||||
"integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/node-addon-api": {
|
||||
"version": "1.7.2",
|
||||
"resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-1.7.2.tgz",
|
||||
@@ -3124,34 +2998,49 @@
|
||||
}
|
||||
},
|
||||
"node_modules/patch-package": {
|
||||
"version": "6.5.1",
|
||||
"resolved": "https://registry.npmjs.org/patch-package/-/patch-package-6.5.1.tgz",
|
||||
"integrity": "sha512-I/4Zsalfhc6bphmJTlrLoOcAF87jcxko4q0qsv4bGcurbr8IskEOtdnt9iCmsQVGL1B+iUhSQqweyTLJfCF9rA==",
|
||||
"version": "7.0.2",
|
||||
"resolved": "https://registry.npmjs.org/patch-package/-/patch-package-7.0.2.tgz",
|
||||
"integrity": "sha512-PMYfL8LXxGIRmxXLqlEaBxzKPu7/SdP13ld6GSfAUJUZRmBDPp8chZs0dpzaAFn9TSPnFiMwkC6PJt6pBiAl8Q==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@yarnpkg/lockfile": "^1.1.0",
|
||||
"chalk": "^4.1.2",
|
||||
"cross-spawn": "^6.0.5",
|
||||
"ci-info": "^3.7.0",
|
||||
"cross-spawn": "^7.0.3",
|
||||
"find-yarn-workspace-root": "^2.0.0",
|
||||
"fs-extra": "^9.0.0",
|
||||
"is-ci": "^2.0.0",
|
||||
"klaw-sync": "^6.0.0",
|
||||
"minimist": "^1.2.6",
|
||||
"open": "^7.4.2",
|
||||
"rimraf": "^2.6.3",
|
||||
"semver": "^5.6.0",
|
||||
"semver": "^7.5.3",
|
||||
"slash": "^2.0.0",
|
||||
"tmp": "^0.0.33",
|
||||
"yaml": "^1.10.2"
|
||||
"yaml": "^2.2.2"
|
||||
},
|
||||
"bin": {
|
||||
"patch-package": "index.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10",
|
||||
"node": ">=14",
|
||||
"npm": ">5"
|
||||
}
|
||||
},
|
||||
"node_modules/patch-package/node_modules/ci-info": {
|
||||
"version": "3.9.0",
|
||||
"resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz",
|
||||
"integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==",
|
||||
"dev": true,
|
||||
"funding": [
|
||||
{
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/sibiraj-s"
|
||||
}
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/patch-package/node_modules/fs-extra": {
|
||||
"version": "9.1.0",
|
||||
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz",
|
||||
@@ -3199,6 +3088,18 @@
|
||||
"rimraf": "bin.js"
|
||||
}
|
||||
},
|
||||
"node_modules/patch-package/node_modules/semver": {
|
||||
"version": "7.6.2",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz",
|
||||
"integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==",
|
||||
"dev": true,
|
||||
"bin": {
|
||||
"semver": "bin/semver.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
}
|
||||
},
|
||||
"node_modules/path-exists": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-1.0.0.tgz",
|
||||
@@ -3218,12 +3119,12 @@
|
||||
}
|
||||
},
|
||||
"node_modules/path-key": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
|
||||
"integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
|
||||
"version": "3.1.1",
|
||||
"resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
|
||||
"integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=4"
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/path-parse": {
|
||||
@@ -3323,15 +3224,15 @@
|
||||
}
|
||||
},
|
||||
"node_modules/prettier": {
|
||||
"version": "2.7.1",
|
||||
"resolved": "https://registry.npmjs.org/prettier/-/prettier-2.7.1.tgz",
|
||||
"integrity": "sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==",
|
||||
"version": "3.3.3",
|
||||
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz",
|
||||
"integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==",
|
||||
"dev": true,
|
||||
"bin": {
|
||||
"prettier": "bin-prettier.js"
|
||||
"prettier": "bin/prettier.cjs"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10.13.0"
|
||||
"node": ">=14"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/prettier/prettier?sponsor=1"
|
||||
@@ -3681,24 +3582,24 @@
|
||||
}
|
||||
},
|
||||
"node_modules/shebang-command": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
|
||||
"integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
|
||||
"integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"shebang-regex": "^1.0.0"
|
||||
"shebang-regex": "^3.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/shebang-regex": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
|
||||
"integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
|
||||
"integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/signal-exit": {
|
||||
@@ -4314,15 +4215,18 @@
|
||||
}
|
||||
},
|
||||
"node_modules/which": {
|
||||
"version": "1.3.1",
|
||||
"resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
|
||||
"integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
|
||||
"integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"isexe": "^2.0.0"
|
||||
},
|
||||
"bin": {
|
||||
"which": "bin/which"
|
||||
"node-which": "bin/node-which"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 8"
|
||||
}
|
||||
},
|
||||
"node_modules/widest-line": {
|
||||
@@ -4439,12 +4343,15 @@
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/yaml": {
|
||||
"version": "1.10.2",
|
||||
"resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
|
||||
"integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==",
|
||||
"version": "2.4.5",
|
||||
"resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.5.tgz",
|
||||
"integrity": "sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==",
|
||||
"dev": true,
|
||||
"bin": {
|
||||
"yaml": "bin.mjs"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 6"
|
||||
"node": ">= 14"
|
||||
}
|
||||
},
|
||||
"node_modules/yargs": {
|
||||
@@ -4545,49 +4452,6 @@
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"cross-spawn": "^7.0.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"cross-spawn": {
|
||||
"version": "7.0.3",
|
||||
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
|
||||
"integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"path-key": "^3.1.0",
|
||||
"shebang-command": "^2.0.0",
|
||||
"which": "^2.0.1"
|
||||
}
|
||||
},
|
||||
"path-key": {
|
||||
"version": "3.1.1",
|
||||
"resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
|
||||
"integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
|
||||
"dev": true
|
||||
},
|
||||
"shebang-command": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
|
||||
"integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"shebang-regex": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"shebang-regex": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
|
||||
"integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
|
||||
"dev": true
|
||||
},
|
||||
"which": {
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
|
||||
"integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"isexe": "^2.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"@malept/flatpak-bundler": {
|
||||
@@ -5207,17 +5071,6 @@
|
||||
"integrity": "sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w==",
|
||||
"dev": true
|
||||
},
|
||||
"cross-spawn": {
|
||||
"version": "7.0.3",
|
||||
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
|
||||
"integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"path-key": "^3.1.0",
|
||||
"shebang-command": "^2.0.0",
|
||||
"which": "^2.0.1"
|
||||
}
|
||||
},
|
||||
"debug": {
|
||||
"version": "4.3.4",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
|
||||
@@ -5252,36 +5105,6 @@
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
|
||||
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
|
||||
"dev": true
|
||||
},
|
||||
"path-key": {
|
||||
"version": "3.1.1",
|
||||
"resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
|
||||
"integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
|
||||
"dev": true
|
||||
},
|
||||
"shebang-command": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
|
||||
"integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"shebang-regex": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"shebang-regex": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
|
||||
"integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
|
||||
"dev": true
|
||||
},
|
||||
"which": {
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
|
||||
"integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"isexe": "^2.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -5571,16 +5394,14 @@
|
||||
}
|
||||
},
|
||||
"cross-spawn": {
|
||||
"version": "6.0.5",
|
||||
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
|
||||
"integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
|
||||
"version": "7.0.3",
|
||||
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
|
||||
"integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"nice-try": "^1.0.4",
|
||||
"path-key": "^2.0.1",
|
||||
"semver": "^5.5.0",
|
||||
"shebang-command": "^1.2.0",
|
||||
"which": "^1.2.9"
|
||||
"path-key": "^3.1.0",
|
||||
"shebang-command": "^2.0.0",
|
||||
"which": "^2.0.1"
|
||||
}
|
||||
},
|
||||
"crypto-random-string": {
|
||||
@@ -6486,7 +6307,7 @@
|
||||
"isexe": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
|
||||
"integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
|
||||
"integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
|
||||
"dev": true
|
||||
},
|
||||
"isstream": {
|
||||
@@ -6776,12 +6597,6 @@
|
||||
"integrity": "sha1-GVoh1sRuNh0vsSgbo4uR6d9727M=",
|
||||
"dev": true
|
||||
},
|
||||
"nice-try": {
|
||||
"version": "1.0.5",
|
||||
"resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
|
||||
"integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
|
||||
"dev": true
|
||||
},
|
||||
"node-addon-api": {
|
||||
"version": "1.7.2",
|
||||
"resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-1.7.2.tgz",
|
||||
@@ -6901,27 +6716,33 @@
|
||||
}
|
||||
},
|
||||
"patch-package": {
|
||||
"version": "6.5.1",
|
||||
"resolved": "https://registry.npmjs.org/patch-package/-/patch-package-6.5.1.tgz",
|
||||
"integrity": "sha512-I/4Zsalfhc6bphmJTlrLoOcAF87jcxko4q0qsv4bGcurbr8IskEOtdnt9iCmsQVGL1B+iUhSQqweyTLJfCF9rA==",
|
||||
"version": "7.0.2",
|
||||
"resolved": "https://registry.npmjs.org/patch-package/-/patch-package-7.0.2.tgz",
|
||||
"integrity": "sha512-PMYfL8LXxGIRmxXLqlEaBxzKPu7/SdP13ld6GSfAUJUZRmBDPp8chZs0dpzaAFn9TSPnFiMwkC6PJt6pBiAl8Q==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@yarnpkg/lockfile": "^1.1.0",
|
||||
"chalk": "^4.1.2",
|
||||
"cross-spawn": "^6.0.5",
|
||||
"ci-info": "^3.7.0",
|
||||
"cross-spawn": "^7.0.3",
|
||||
"find-yarn-workspace-root": "^2.0.0",
|
||||
"fs-extra": "^9.0.0",
|
||||
"is-ci": "^2.0.0",
|
||||
"klaw-sync": "^6.0.0",
|
||||
"minimist": "^1.2.6",
|
||||
"open": "^7.4.2",
|
||||
"rimraf": "^2.6.3",
|
||||
"semver": "^5.6.0",
|
||||
"semver": "^7.5.3",
|
||||
"slash": "^2.0.0",
|
||||
"tmp": "^0.0.33",
|
||||
"yaml": "^1.10.2"
|
||||
"yaml": "^2.2.2"
|
||||
},
|
||||
"dependencies": {
|
||||
"ci-info": {
|
||||
"version": "3.9.0",
|
||||
"resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz",
|
||||
"integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==",
|
||||
"dev": true
|
||||
},
|
||||
"fs-extra": {
|
||||
"version": "9.1.0",
|
||||
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz",
|
||||
@@ -6956,6 +6777,12 @@
|
||||
"requires": {
|
||||
"glob": "^7.1.3"
|
||||
}
|
||||
},
|
||||
"semver": {
|
||||
"version": "7.6.2",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz",
|
||||
"integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -6972,9 +6799,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"path-key": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
|
||||
"integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
|
||||
"version": "3.1.1",
|
||||
"resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
|
||||
"integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
|
||||
"dev": true
|
||||
},
|
||||
"path-parse": {
|
||||
@@ -7050,9 +6877,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"prettier": {
|
||||
"version": "2.7.1",
|
||||
"resolved": "https://registry.npmjs.org/prettier/-/prettier-2.7.1.tgz",
|
||||
"integrity": "sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==",
|
||||
"version": "3.3.3",
|
||||
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz",
|
||||
"integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==",
|
||||
"dev": true
|
||||
},
|
||||
"pretty-bytes": {
|
||||
@@ -7326,18 +7153,18 @@
|
||||
}
|
||||
},
|
||||
"shebang-command": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
|
||||
"integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
|
||||
"integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"shebang-regex": "^1.0.0"
|
||||
"shebang-regex": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"shebang-regex": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
|
||||
"integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
|
||||
"integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
|
||||
"dev": true
|
||||
},
|
||||
"signal-exit": {
|
||||
@@ -7833,9 +7660,9 @@
|
||||
}
|
||||
},
|
||||
"which": {
|
||||
"version": "1.3.1",
|
||||
"resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
|
||||
"integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
|
||||
"integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"isexe": "^2.0.0"
|
||||
@@ -7930,9 +7757,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"yaml": {
|
||||
"version": "1.10.2",
|
||||
"resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
|
||||
"integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==",
|
||||
"version": "2.4.5",
|
||||
"resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.5.tgz",
|
||||
"integrity": "sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==",
|
||||
"dev": true
|
||||
},
|
||||
"yargs": {
|
||||
|
||||
18
package.json
18
package.json
@@ -1,13 +1,13 @@
|
||||
{
|
||||
"name": "OpenFusionClient",
|
||||
"version": "1.4.1",
|
||||
"version": "1.6.1",
|
||||
"description": "OpenFusionClient",
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
"postinstall": "npx patch-package && npm explore electron-prebuilt -- npm run postinstall",
|
||||
"start": "electron .",
|
||||
"pack": "electron-builder --win --ia32 --dir",
|
||||
"dist": "electron-builder --win --ia32",
|
||||
"dist": "electron-builder --win --ia32 --publish=never",
|
||||
"prettier": "npx prettier --write ."
|
||||
},
|
||||
"author": "OpenFusion Contributors",
|
||||
@@ -15,8 +15,8 @@
|
||||
"devDependencies": {
|
||||
"electron-builder": "^22.14.13",
|
||||
"electron-prebuilt": "^0.31.2",
|
||||
"patch-package": "^6.5.1",
|
||||
"prettier": "^2.7.1"
|
||||
"patch-package": "^7.0.2",
|
||||
"prettier": "^3.3.3"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
@@ -25,7 +25,7 @@
|
||||
"build": {
|
||||
"appId": "xyz.openfusion.client",
|
||||
"productName": "OpenFusionClient",
|
||||
"copyright": "© 2020-2023 OpenFusion Contributors",
|
||||
"copyright": "© 2020-2024 OpenFusion Contributors",
|
||||
"electronDownload": {
|
||||
"version": "0.31.2",
|
||||
"platform": "win32",
|
||||
@@ -63,8 +63,12 @@
|
||||
"extraFiles": [
|
||||
"LICENSE.md",
|
||||
{
|
||||
"from": "build/utils",
|
||||
"to": "utils"
|
||||
"from": "build/OpenFusionClient.exe.manifest",
|
||||
"to": "OpenFusionClient.exe.manifest"
|
||||
},
|
||||
{
|
||||
"from": "build/WebPlayer",
|
||||
"to": "WebPlayer"
|
||||
}
|
||||
],
|
||||
"afterPack": "./build/after-pack.js"
|
||||
|
||||
Reference in New Issue
Block a user