diff --git a/.Build/Docker/Configure.sh b/.Build/Docker/Configure.sh new file mode 100644 index 0000000..13c5276 --- /dev/null +++ b/.Build/Docker/Configure.sh @@ -0,0 +1,64 @@ +#!/usr/bin/env bash +set -ex +# Update Debian Repository +apt update + +# Install Necessary Packages +apt install -y curl wget git zsh sudo unzip zip jq python python3 screen + +# Install nodejs from github release +get_current_node_version=$(curl -sL https://api.github.com/repos/nodejs/node/releases/latest | grep tag_name | cut -d '"' -f 4) +case $(uname -m) in + x86_64 ) wget -q "https://nodejs.org/download/release/$get_current_node_version/node-$get_current_node_version-linux-x64.tar.xz" -O /tmp/node.tar.xz;; + aarch64 ) wget -q "https://nodejs.org/download/release/$get_current_node_version/node-$get_current_node_version-linux-arm64.tar.xz" -O /tmp/node.tar.xz;; + armv7l ) wget -q "https://nodejs.org/download/release/$get_current_node_version/node-$get_current_node_version-linux-armv7l.tar.xz" -O /tmp/node.tar.xz;; + ppc64el ) wget -q "https://nodejs.org/download/release/$get_current_node_version/node-$get_current_node_version-linux-ppc64le.tar.xz" -O /tmp/node.tar.xz;; + s390x ) wget -q "https://nodejs.org/download/release/$get_current_node_version/node-$get_current_node_version-linux-s390x.tar.xz" -O /tmp/node.tar.xz;; + *) echo "Unsupported architecture"; exit 1;; +esac + +# Extract nodejs +mkdir /tmp/Node +tar -xJf /tmp/node.tar.xz -C /tmp/Node +rm -rf /tmp/node.tar.xz +cp -rfv /tmp/Node/*/* /usr + +# Update npm +npm -g install npm@$(curl -sL https://api.github.com/repos/npm/cli/releases/latest | grep tag_name | cut -d '"' -f 4) + +# Install Build Dependencies and others Packages +apt install -y ca-certificates make build-essential procps lsb-release xdg-utils g++ libnss3 libatk-bridge2.0-0 gconf-service libasound2 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxrandr2 libxrender1 libxss1 libxtst6 fonts-liberation libnss3 libgbm-dev + +# Install Dependencies to diferent architectures +if ! [ "$(uname -m)" == "x86_64" ];then + mkdir -p /lib64 + apt install -y qemu-user-static + wget -q "https://github.com/The-Bds-Maneger/external_files/raw/main/linux_libries.zip" -O /tmp/libries.zip + unzip -o /tmp/libries.zip -d / + rm -rfv /tmp/libries.zip +fi + +# Install openjdk +case "$(uname -m)" in + x86_64 | aarch64 ) apt install -y openjdk-17*;; + * ) apt install -y openjdk-11*;; +esac + +# Setup non root user +useradd -m -p "$(perl -e 'print crypt($ARGV[0], "password")' "LucaA1113ba21")" "thebds" +addgroup thebds sudo +addgroup thebds root +usermod --shell /bin/bash thebds; +echo "thebds ALL=(ALL:ALL) NOPASSWD: ALL" >> /etc/sudoers + +# Remove Unnecessary Packages +apt autoremove -y + +# Clean up apt cache +apt clean -y + +# Remove Unnecessary Files +rm -rf /var/lib/apt/lists/* /root/.gnupg /tmp/* + +# Sucessfully installed +exit 0 diff --git a/.Build/DockerImage.js b/.Build/DockerImage.js index 7cd5eaf..0a009ff 100644 --- a/.Build/DockerImage.js +++ b/.Build/DockerImage.js @@ -1,31 +1,13 @@ -const fetchSync = require("@the-bds-maneger/fetchsync") -const { writeFileSync } = require("fs"); -const { exit } = require("process"); -const { resolve } = require("path"); -const { exec, execSync } = require("child_process"); -const JSon_release = fetchSync("https://api.github.com/repos/Sirherobrine23/MSQ-files/releases").json() - -writeFileSync("./Docker.js", JSON.stringify(JSon_release, null, 4)) -const DockerLatestBin = []; -for (let _Check of JSon_release){ - if (DockerLatestBin.length >= 1) break; - for (let _file of _Check.assets) { - if (`DockerRunBuild_${process.platform}_${process.arch}` === _file.name) { - DockerLatestBin.push(_Check); - break - } - } -} -if (!(DockerLatestBin.length >= 1)) exit(1); -const bin = fetchSync(`https://github.com/Sirherobrine23/MSQ-files/releases/download/${DockerLatestBin[0].tag_name}/DockerRunBuild_${process.platform}_${process.arch}`, true); -const binPath = resolve(__dirname, "../Docker.exe") -bin.save(binPath) -if (process.platform !== "win32") execSync(`chmod 777 "${binPath}"`) -const exe = exec(binPath) -function Log(data = ""){ - data = data.split("\r").join("\n").split("\n").filter(_D => {return (_D !== "")}) - for (let _log of data) console.log(_log); -} -exe.stdout.on("data", d => Log(d)) -exe.stderr.on("data", d => Log(d)) -exe.on("exit", c => exit(c)) \ No newline at end of file +#!/usr/bin/env node +const path = require("path"); +process.env.Docker_Root = path.resolve(__dirname, "../"); +const Docker = require("docker-run_build"); +Docker.Build().then(() => { + Docker.Run().catch((e) => { + console.log(e); + process.exit(2); + }); +}).catch(e => { + console.log(e); + process.exit(1); +}); \ No newline at end of file diff --git a/.vscode/launch.json b/.vscode/launch.json index 670e0b2..0cc21a5 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -10,13 +10,8 @@ { "type": "node", "request": "launch", - "name": "Build Dev Docker Image", - "runtimeExecutable": "npm", - "runtimeArgs": [ - "run", - "Docker" - ], - "port": 9229 + "name": "Docker Build and Run", + "program": "${workspaceFolder}/.Build/DockerImage.js", } ] } \ No newline at end of file diff --git a/BdsManegerInfo.json b/BdsManegerInfo.json index 8cc15d9..32e3166 100644 --- a/BdsManegerInfo.json +++ b/BdsManegerInfo.json @@ -19,7 +19,8 @@ "deop": "op \"{{Player}}\"", "ban": "tp \"{{Player}}\" ~ ~99999 ~", "kick": "kick \"{{Player}}\" \"{{Text}}\"", - "tp": "tp \"{{Player}}\" {{X}} {{Y}} {{X}}" + "tp": "tp \"{{Player}}\" {{X}} {{Y}} {{X}}", + "say": "say {{Text}}" }, "java": { "stop": "stop", @@ -27,7 +28,8 @@ "deop": "op {{Player}}", "ban": "ban {{Player}}", "kick": "kick {{Player}} {{Text}}", - "tp": "tp {{Player}} {{X}} {{Y}} {{X}}" + "tp": "tp {{Player}} {{X}} {{Y}} {{X}}", + "say": "say {{Text}}" }, "pocketmine": { "stop": "stop", @@ -35,7 +37,8 @@ "deop": "op {{Player}}", "ban": "ban {{Player}}", "kick": "kick {{Player}}", - "tp": "tp \"{{Player}}\" {{X}} {{Y}} {{X}}" + "tp": "tp \"{{Player}}\" {{X}} {{Y}} {{X}}", + "say": "say {{Text}}" } }, "contributors": [ diff --git a/DockerConfig.yaml b/DockerConfig.yaml index 9c8dd7e..d0f98f0 100644 --- a/DockerConfig.yaml +++ b/DockerConfig.yaml @@ -1,14 +1,13 @@ name: BdsCore file: Dockerfile -tag: bdsmaneger/maneger:latestdebug +tag: bdsmaneger/core:dev target: bdscore -buildx: true +buildx: + enable: false + platform: linux/amd64,linux/arm/v6,linux/arm/v7,linux/arm64 # Docker Run envs env: - - name: TELEGRAM_TOKEN - value: null - - name: DESCRIPTION value: Docker Test @@ -25,7 +24,7 @@ env: value: false - name: PLAYERS - value: 8 + value: 5 - name: BDS_VERSION value: latest @@ -34,24 +33,19 @@ env: value: bedrock # Docker Run Mount -mount: - - path: /home/bds/bds_core/ - from: ${HOME}/bds_core/ +mount: [] # Docker Run Ports ports: - - port: 19132 - external: 19132 + - in: 19132 + out: 19132 protocoll: udp - - - port: 80 - external: 8880 + - in: 1932 + out: 1932 protocoll: tcp # More options options: build: [] - # - "--platforms=linux/amd64" - run: - - "--net=host" + run: [] runArgv: [] diff --git a/Dockerfile b/Dockerfile index 4de8406..9b34fed 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,37 +1,50 @@ -# bdsmaneger/node_image -# Base -FROM debian:latest AS bdsbase +# Setup Bds Manerger Project Docker Base +FROM debian:testing AS bdsbase USER root -ENV DEBIAN_FRONTEND=noninteractive DOCKER_IMAGE="true" -RUN apt update && \ -apt -y install curl wget git zsh sudo unzip zip jq python python3 ca-certificates make build-essential screen procps lsb-release xdg-utils g++ openjdk-11-jdk openjdk-11-jre \ - libnss3 libatk-bridge2.0-0 gconf-service libasound2 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgcc1 libgconf-2-4 \ - libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 \ - libxdamage1 libxext6 libxfixes3 libxrandr2 libxrender1 libxss1 libxtst6 fonts-liberation libappindicator1 libnss3 libgbm-dev && \ -apt autoremove -y && \ -apt clean -y && \ -rm -rf /var/lib/apt/lists/* /root/.gnupg /tmp/library-scripts /tmp/* && \ -case $(uname -m) in "x86_64") echo "Do not need dependency on the x86_64";; *) apt update; apt install -y qemu-user-static ;wget -q https://raw.githubusercontent.com/The-Bds-Maneger/external_files/main/linux_libries.zip -O /tmp/libries.zip ;unzip /tmp/libries.zip -d / ;rm -rfv /tmp/libries.zip ;mkdir -p /lib64 ;rm -rf /var/cache/apt/archives/* /var/lib/apt/lists/* /tmp/* ;;esac && \ -wget -qO- https://raw.githubusercontent.com/Sirherobrine23/MSQ-files/main/DockerBuild/Build/bin/NodeInstall.sh | bash -; \ -export username="thebds" && export password="123aa3456s7" && \ -pass=$(perl -e 'print crypt($ARGV[0], "password")' $password); useradd -m -p "$pass" "$username"; addgroup ${username} sudo; addgroup ${username} root; \ -usermod --shell /bin/bash --home /home/bds ${username}; echo "${username} ALL=(ALL:ALL) NOPASSWD: ALL" >> /etc/sudoers +ENV DEBIAN_FRONTEND="noninteractive" DOCKER_IMAGE="true" -# bdsmaneger/core -# Bds Maneger Core +# Copy Docker Files +COPY .Build/Docker/* /tmp + +# Configure BASE +RUN bash /tmp/Configure.sh + +# Setup bdsmaneger/core FROM bdsbase AS bdscore -RUN apt update && apt install -y nginx && rm -rf /var/cache/apt/archives/* /var/lib/apt/lists/* /tmp/* /etc/nginx/sites-*/default && mkdir -p /home/bds/ -COPY ./ /opt/bds_core/ -WORKDIR /opt/bds_core/ -RUN chmod -v 7777 /opt/bds_core && chown thebds:thebds -v /opt/bds_core; chmod a+x bin/* && npm install --force && chmod -Rv 7777 /home && chown thebds:thebds -Rv /home && chmod a+x bin/*; mkdir -vp /home/bds/bds_core +RUN mkdir -vp /home/thebds/bds_core && chmod -Rv 7777 /home; chown thebds:thebds -Rv /home -# Non Root User + +# Create Volume to Storage Server And Config +VOLUME [ "/home/thebds/bds_core" ] + +# Copy Bds Maneger Core +WORKDIR /home/backend_core_scripts/ + +# Install Core dependencies +COPY --chown=thebds:thebds package*.json ./ +RUN npm install + +# Copy BdsManger Core +COPY --chown=thebds:thebds ./ ./ +RUN chmod a+x -v bin/* + +# Set Non Root User USER thebds -VOLUME [ "/home/bds/bds_core" ] -ENV TELEGRAM_TOKEN="null" DESCRIPTION="running Minecraft Bedrock Server on the docker by Bds Manager" WORLD_NAME="Bds Maneger Docker" GAMEMODE="survival" DIFFICULTY="normal" XBOX_ACCOUNT="false" PLAYERS="13" SERVER="bedrock" ENABLE_COMMANDS="false" BDS_DOCKER_IMAGE="true" +# Set default ENVs to Bds Core +ENV PLAYERS="5" \ + WORLD_NAME="The Ultimate Server" \ + DESCRIPTION="running Minecraft Server on Bds Maneger by Bds Manager Project" \ + GAMEMODE="survival" \ + DIFFICULTY="normal" \ + ENABLE_COMMANDS="false" \ + ACCOUNT="false" \ + SERVER="bedrock" \ + UPDATE_SERVER="true" + +# Bds Maneger Core required ports EXPOSE 19132/udp 19133/udp 1932/tcp -# Entrypint -WORKDIR /opt/bds_core/ -ENTRYPOINT [ "node", "./bin/bds_maneger.js" ,"--DOCKER_IMAGE" ,"-s" ] + +# Set Entrypint +ENTRYPOINT [ "node", "./bin/Docker.js" ] diff --git a/README.md b/README.md index 6dd9400..782c746 100644 --- a/README.md +++ b/README.md @@ -25,6 +25,7 @@ Windows: ```cmd $ docker run --rm -d --name BdsManegerCore -v BdsCore:/home/bds/bds_core ^ + --restart=always ^ -p 19132:19132/udp -p 19133:19133/udp -p 1932:1932/tcp ^ -e TELEGRAM_TOKEN="null" ^ -e DESCRIPTION="running Minecraft Bedrock Server on the docker by Bds Manager" ^ @@ -42,6 +43,7 @@ Linux/MacOS: ```bash $ docker run --rm -d --name BdsManegerCore -v BdsCore/:/home/bds/bds_core \ + --restart=always \ -p 19132:19132/udp -p 19133:19133/udp -p 1932:1932/tcp \ -e TELEGRAM_TOKEN="null" \ -e DESCRIPTION="running Minecraft Bedrock Server on the docker by Bds Manager" \ diff --git a/bin/bds_maneger.js b/bin/bds_maneger.js index 723dadb..8b9066e 100755 --- a/bin/bds_maneger.js +++ b/bin/bds_maneger.js @@ -1,19 +1,18 @@ #!/usr/bin/env node const readline = require("readline"); - if (process.platform === "win32") process.title = "Bds Maneger CLI"; else process.title = "Bds-Manger-CLI"; process.env.IS_BDS_CLI = process.env.IS_BIN_BDS = true; +// Bds Maneger ArgV +const argv = require("minimist")(process.argv.slice(2)); +if (Object.getOwnPropertyNames(argv).length <= 1) argv.help = true + const bds = require("../index"); const { valid_platform } = require("../lib/BdsSystemInfo"); const { bds_dir, GetServerVersion, GetPlatform, UpdatePlatform, GetServerPaths, GetPaths } = require("../lib/BdsSettings"); const commandExits = require("../lib/commandExist"); const download = require("../src/BdsServersDownload"); -// Bds Maneger ArgV -const argv = require("minimist")(process.argv.slice(2)); -if (Object.getOwnPropertyNames(argv).length <= 1) argv.help = true - // Options const server = (argv.p || argv.platform), @@ -22,8 +21,7 @@ const bds_version = (argv.d || argv.server_download), start = (argv.s || argv.server_version), help = (argv.h || argv.help), - kill = (argv.k || argv.kill), - docker_runner = (argv.DOCKER_IMAGE); + kill = (argv.k || argv.kill); // -------------------------- const Versions = GetServerVersion(); @@ -152,34 +150,6 @@ if (SystemCheck) { process.exit(0) } -// Docker image -if (docker_runner) { - console.log("Bds Maneger CLI, Docker image"); - process.env.BDS_DOCKER_IMAGE = true - const { SERVER, WORLD_NAME, DESCRIPTION, GAMEMODE, DIFFICULTY, PLAYERS, ENABLE_COMMANDS, XBOX_ACCOUNT, TELEGRAM_TOKEN, SEED } = process.env - - // Telegram token save - if (TELEGRAM_TOKEN) bds.telegram_token_save(TELEGRAM_TOKEN); - - // Change platform - bds.change_platform(SERVER) - - // Save New config - bds.set_config({ - world: WORLD_NAME, - description: DESCRIPTION, - gamemode: GAMEMODE, - difficulty: DIFFICULTY, - players: parseInt(PLAYERS), - commands: (ENABLE_COMMANDS === "true"), - account: JSON.parse(XBOX_ACCOUNT), - whitelist: false, - port: 19132, - portv6: 19133, - seed: (parseInt(SEED) || "") - }) -} - // Download server if (bds_version){ try { @@ -189,6 +159,7 @@ if (bds_version){ const Version = Object.getOwnPropertyNames(LoadVersion) // List Version for (let version in Version) console.log(`${version}: ${GetPlatform()} version ${Version[version]}`); // deepscan-disable-line FORIN_ARRAY + // deepcode ignore MissingClose: const DownloadOptions = readline.createInterface({input: process.stdin,output: process.stdout}); console.log("\nSelect Option"); DownloadOptions.on("line", (input) => { diff --git a/index.js b/index.js index 29f8271..7515e94 100644 --- a/index.js +++ b/index.js @@ -173,17 +173,17 @@ module.exports.download = download * use this command to modify server settings * * @example set_config({ - name: "Bedrock our Java", - description: "BDS Maneger", - gamemode: "survival", + world: "Bds Maneger", + description: "The Bds Maneger", + gamemode: "creative", difficulty: "normal", - player_permission: "member", - xbox: true, - white_list: false, - cheats: false, - players: 100, + players: 10, + commands: true, + account: true, + whitelist: true, port: 19132, - port6: 19133 + portv6: 19133, + seed: "" }); */ module.exports.set_config = config diff --git a/package-lock.json b/package-lock.json index da05747..bc0db4f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -36,7 +36,7 @@ "bds_telegram": "bin/telegram_bot.js" }, "devDependencies": { - "docker-run_build": "github:Sirherobrine23/Docker-Run_Build", + "docker-run_build": "github:Sirherobrine23/Docker-Run_Build#main", "eslint": "^7.19.0", "husky": "^7.0.0", "nexe": "*", @@ -101,9 +101,9 @@ } }, "node_modules/@azure/core-lro": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@azure/core-lro/-/core-lro-2.1.0.tgz", - "integrity": "sha512-7T9+HxZArl1wIUM/jacaeeMC9lUo14M62y3Htkh9qkTjI5glc7NlY2XOQ67n2jN1HONd8FvqCXE9CS4ZRxeLcg==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@azure/core-lro/-/core-lro-2.2.0.tgz", + "integrity": "sha512-TJo95eNT1dwYOPCb0m1C2zyxVlHuRRkKGeg9TKu8XMF2qh4v6c1weD63r9RVIrLdHdnSqS0n6PTXBpWoB8NqMw==", "dependencies": { "@azure/abort-controller": "^1.0.0", "@azure/core-tracing": "1.0.0-preview.13", @@ -176,9 +176,9 @@ } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz", - "integrity": "sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg==", + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", + "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==", "dev": true, "engines": { "node": ">=6.9.0" @@ -507,9 +507,9 @@ } }, "node_modules/@types/node": { - "version": "16.3.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.3.3.tgz", - "integrity": "sha512-8h7k1YgQKxKXWckzFCMfsIwn0Y61UK6tlD6y2lOb3hTOIMlK3t9/QwHOhc81TwU+RMf0As5fj7NPjroERCnejQ==" + "version": "16.6.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.6.1.tgz", + "integrity": "sha512-Sr7BhXEAer9xyGuCN3Ek9eg9xPviCF2gfu9kTfuU2HkTVAMYSDeX40fvpmo72n5nansg3nsBjuQBrsS28r+NUw==" }, "node_modules/@types/node-fetch": { "version": "2.5.12", @@ -1175,9 +1175,9 @@ } }, "node_modules/chalk": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", - "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { "ansi-styles": "^4.1.0", @@ -1369,18 +1369,6 @@ "semver": "bin/semver.js" } }, - "node_modules/configstore/node_modules/write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, "node_modules/content-disposition": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", @@ -1796,7 +1784,7 @@ }, "node_modules/docker-run_build": { "version": "1.0.0", - "resolved": "git+ssh://git@github.com/Sirherobrine23/Docker-Run_Build.git#dca7037ac2175352485e61e7e565ec1d81caa062", + "resolved": "git+ssh://git@github.com/Sirherobrine23/Docker-Run_Build.git#a55a4ef39bb6d7e158d0f532b2dadb400ea81f4c", "dev": true, "license": "GPL-3.0-or-later", "dependencies": { @@ -2654,9 +2642,9 @@ } }, "node_modules/flatted": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.1.tgz", - "integrity": "sha512-OMQjaErSFHmHqZe+PSidH5n8j3O0F2DdnVh8JB4j4eUQ2k6KvB0qGfrKIhapvez5JerBbmWkaLYUYWISaESoXg==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.2.tgz", + "integrity": "sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA==", "dev": true }, "node_modules/form-data": { @@ -2867,9 +2855,9 @@ "dev": true }, "node_modules/globals": { - "version": "13.10.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.10.0.tgz", - "integrity": "sha512-piHC3blgLGFjvOuMmWZX60f+na1lXFDhQXBf1UYp2fXPXqvEUbOhNwi6BsQ0bQishwedgnjkwv1d9zKf+MWw3g==", + "version": "13.11.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.11.0.tgz", + "integrity": "sha512-08/xrJ7wQjK9kkkRoI3OFUBbLx4f+6x3SGwcPvQ0QH6goFDrOU2oyAWrmh3dJezu65buo+HBMzAMQy6rovVC3g==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -2911,9 +2899,9 @@ } }, "node_modules/google-auth-library": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-7.3.0.tgz", - "integrity": "sha512-MPeeMlnsYnoiiVFMwX3hgaS684aiXrSqKoDP+xL4Ejg4Z0qLvIeg4XsaChemyFI8ZUO7ApwDAzNtgmhWSDNh5w==", + "version": "7.6.1", + "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-7.6.1.tgz", + "integrity": "sha512-aP/WTx+rE3wQ3zPgiCZsJ1EIb2v7P+QwxVwAqrKjcPz4SK57kyAfcX75VoAgjtwZzl70upcNlvFn8FSmC4nMBQ==", "dependencies": { "arrify": "^2.0.0", "base64-js": "^1.3.0", @@ -2930,9 +2918,9 @@ } }, "node_modules/google-p12-pem": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-3.1.0.tgz", - "integrity": "sha512-JUtEHXL4DY/N+xhlm7TC3qL797RPAtk0ZGXNs3/gWyiDHYoA/8Rjes0pztkda+sZv4ej1EoO2KhWgW5V9KTrSQ==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-3.1.2.tgz", + "integrity": "sha512-tjf3IQIt7tWCDsa0ofDQ1qqSCNzahXDxdAGJDbruWqu3eCg5CKLYKN+hi0s6lfvzYZ1GDVr+oDF9OOWlDSdf0A==", "dependencies": { "node-forge": "^0.10.0" }, @@ -2956,9 +2944,9 @@ } }, "node_modules/googleapis-common": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/googleapis-common/-/googleapis-common-5.0.3.tgz", - "integrity": "sha512-8khlXblLyT9UpB+NTZzrWfKQUW6U7gO6WnfJp51WrLgpzP7zkO+OshwtdArq8z2afj37jdrhbIT8eAxZLdwvwA==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/googleapis-common/-/googleapis-common-5.0.4.tgz", + "integrity": "sha512-clr6NSAoIeTrQ/ESl/OmH4uuvPUq4XgiyPAnTIrItOWyM/YKYsXgzpPNkmP6D6LNd/UoTnymcyLNuMPh0ibzXg==", "dependencies": { "extend": "^3.0.2", "gaxios": "^4.0.0", @@ -2997,15 +2985,15 @@ } }, "node_modules/graceful-fs": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", - "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", + "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==", "dev": true }, "node_modules/gtoken": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-5.3.0.tgz", - "integrity": "sha512-mCcISYiaRZrJpfqOs0QWa6lfEM/C1V9ASkzFmuz43XBb5s1Vynh+CZy1ECeeJXVGx2PRByjYzb4Y4/zr1byr0w==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-5.3.1.tgz", + "integrity": "sha512-yqOREjzLHcbzz1UrQoxhBtpk8KjrVhuqPE7od1K2uhyxG2BHjKZetlbLw/SPZak/QqTIQW+addS+EcjqQsZbwQ==", "dependencies": { "gaxios": "^4.0.0", "google-p12-pem": "^3.0.3", @@ -3430,11 +3418,14 @@ } }, "node_modules/is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/is-typedarray": { @@ -3927,19 +3918,19 @@ } }, "node_modules/mime-db": { - "version": "1.48.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.48.0.tgz", - "integrity": "sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ==", + "version": "1.49.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz", + "integrity": "sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==", "engines": { "node": ">= 0.6" } }, "node_modules/mime-types": { - "version": "2.1.31", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.31.tgz", - "integrity": "sha512-XGZnNzm3QvgKxa8dpzyhFTHmpP3l5YNusmne07VUOXxou9CqUqYa/HBy124RqtVh/O2pECas/MOcsDgpilPOPg==", + "version": "2.1.32", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz", + "integrity": "sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==", "dependencies": { - "mime-db": "1.48.0" + "mime-db": "1.49.0" }, "engines": { "node": ">= 0.6" @@ -5943,9 +5934,9 @@ } }, "node_modules/resolve-alpn": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.1.2.tgz", - "integrity": "sha512-8OyfzhAtA32LVUsJSke3auIyINcwdh5l3cvYKdKO0nvsYSKuiLfTM5i78PJswFPT8y6cPW+L1v6/hE95chcpDA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.0.tgz", + "integrity": "sha512-e4FNQs+9cINYMO5NMFc6kOUCdohjqFPSgMuwuZAOUWqrfWsen+Yjy5qZFkV5K7VO7tFSLKcUL97olkED7sCBHA==", "dev": true }, "node_modules/resolve-dependencies": { @@ -6662,9 +6653,9 @@ } }, "node_modules/tslib": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz", - "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==" + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" }, "node_modules/tunnel": { "version": "0.0.6", @@ -6737,9 +6728,9 @@ } }, "node_modules/typegram": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/typegram/-/typegram-3.4.2.tgz", - "integrity": "sha512-Z+FaPrD+oyzvchLZHmfyz55MuPhJ51tYm6i+gbeZ0W8Yr4LLWQfI0mBlR2v08PzjHuRx26bmZBEM30jSrGbfbg==" + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/typegram/-/typegram-3.4.3.tgz", + "integrity": "sha512-pH0TQJzCWM2+7y6yiBoQVNt7PO9ZvAu/lQukVx4sm68FIBBZEBWI+2MzuMcdbwrD5mD5NrEMAyml9N6DupUZag==" }, "node_modules/unbzip2-stream": { "version": "1.4.3", @@ -6968,6 +6959,18 @@ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true }, + "node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, "node_modules/xdg-basedir": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", @@ -7068,9 +7071,9 @@ } }, "@azure/core-lro": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@azure/core-lro/-/core-lro-2.1.0.tgz", - "integrity": "sha512-7T9+HxZArl1wIUM/jacaeeMC9lUo14M62y3Htkh9qkTjI5glc7NlY2XOQ67n2jN1HONd8FvqCXE9CS4ZRxeLcg==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@azure/core-lro/-/core-lro-2.2.0.tgz", + "integrity": "sha512-TJo95eNT1dwYOPCb0m1C2zyxVlHuRRkKGeg9TKu8XMF2qh4v6c1weD63r9RVIrLdHdnSqS0n6PTXBpWoB8NqMw==", "requires": { "@azure/abort-controller": "^1.0.0", "@azure/core-tracing": "1.0.0-preview.13", @@ -7128,9 +7131,9 @@ } }, "@babel/helper-validator-identifier": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz", - "integrity": "sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg==", + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", + "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==", "dev": true }, "@babel/highlight": { @@ -7394,9 +7397,9 @@ } }, "@types/node": { - "version": "16.3.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.3.3.tgz", - "integrity": "sha512-8h7k1YgQKxKXWckzFCMfsIwn0Y61UK6tlD6y2lOb3hTOIMlK3t9/QwHOhc81TwU+RMf0As5fj7NPjroERCnejQ==" + "version": "16.6.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.6.1.tgz", + "integrity": "sha512-Sr7BhXEAer9xyGuCN3Ek9eg9xPviCF2gfu9kTfuU2HkTVAMYSDeX40fvpmo72n5nansg3nsBjuQBrsS28r+NUw==" }, "@types/node-fetch": { "version": "2.5.12", @@ -7915,9 +7918,9 @@ } }, "chalk": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", - "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -8061,18 +8064,6 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true - }, - "write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } } } }, @@ -8396,9 +8387,9 @@ } }, "docker-run_build": { - "version": "git+ssh://git@github.com/Sirherobrine23/Docker-Run_Build.git#dca7037ac2175352485e61e7e565ec1d81caa062", + "version": "git+ssh://git@github.com/Sirherobrine23/Docker-Run_Build.git#a55a4ef39bb6d7e158d0f532b2dadb400ea81f4c", "dev": true, - "from": "docker-run_build@github:Sirherobrine23/Docker-Run_Build", + "from": "docker-run_build@github:Sirherobrine23/Docker-Run_Build#main", "requires": { "js-yaml": "^4.1.0", "minimist": "^1.2.5" @@ -9090,9 +9081,9 @@ } }, "flatted": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.1.tgz", - "integrity": "sha512-OMQjaErSFHmHqZe+PSidH5n8j3O0F2DdnVh8JB4j4eUQ2k6KvB0qGfrKIhapvez5JerBbmWkaLYUYWISaESoXg==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.2.tgz", + "integrity": "sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA==", "dev": true }, "form-data": { @@ -9264,9 +9255,9 @@ } }, "globals": { - "version": "13.10.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.10.0.tgz", - "integrity": "sha512-piHC3blgLGFjvOuMmWZX60f+na1lXFDhQXBf1UYp2fXPXqvEUbOhNwi6BsQ0bQishwedgnjkwv1d9zKf+MWw3g==", + "version": "13.11.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.11.0.tgz", + "integrity": "sha512-08/xrJ7wQjK9kkkRoI3OFUBbLx4f+6x3SGwcPvQ0QH6goFDrOU2oyAWrmh3dJezu65buo+HBMzAMQy6rovVC3g==", "dev": true, "requires": { "type-fest": "^0.20.2" @@ -9295,9 +9286,9 @@ } }, "google-auth-library": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-7.3.0.tgz", - "integrity": "sha512-MPeeMlnsYnoiiVFMwX3hgaS684aiXrSqKoDP+xL4Ejg4Z0qLvIeg4XsaChemyFI8ZUO7ApwDAzNtgmhWSDNh5w==", + "version": "7.6.1", + "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-7.6.1.tgz", + "integrity": "sha512-aP/WTx+rE3wQ3zPgiCZsJ1EIb2v7P+QwxVwAqrKjcPz4SK57kyAfcX75VoAgjtwZzl70upcNlvFn8FSmC4nMBQ==", "requires": { "arrify": "^2.0.0", "base64-js": "^1.3.0", @@ -9311,9 +9302,9 @@ } }, "google-p12-pem": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-3.1.0.tgz", - "integrity": "sha512-JUtEHXL4DY/N+xhlm7TC3qL797RPAtk0ZGXNs3/gWyiDHYoA/8Rjes0pztkda+sZv4ej1EoO2KhWgW5V9KTrSQ==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-3.1.2.tgz", + "integrity": "sha512-tjf3IQIt7tWCDsa0ofDQ1qqSCNzahXDxdAGJDbruWqu3eCg5CKLYKN+hi0s6lfvzYZ1GDVr+oDF9OOWlDSdf0A==", "requires": { "node-forge": "^0.10.0" } @@ -9328,9 +9319,9 @@ } }, "googleapis-common": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/googleapis-common/-/googleapis-common-5.0.3.tgz", - "integrity": "sha512-8khlXblLyT9UpB+NTZzrWfKQUW6U7gO6WnfJp51WrLgpzP7zkO+OshwtdArq8z2afj37jdrhbIT8eAxZLdwvwA==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/googleapis-common/-/googleapis-common-5.0.4.tgz", + "integrity": "sha512-clr6NSAoIeTrQ/ESl/OmH4uuvPUq4XgiyPAnTIrItOWyM/YKYsXgzpPNkmP6D6LNd/UoTnymcyLNuMPh0ibzXg==", "requires": { "extend": "^3.0.2", "gaxios": "^4.0.0", @@ -9360,15 +9351,15 @@ } }, "graceful-fs": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", - "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", + "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==", "dev": true }, "gtoken": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-5.3.0.tgz", - "integrity": "sha512-mCcISYiaRZrJpfqOs0QWa6lfEM/C1V9ASkzFmuz43XBb5s1Vynh+CZy1ECeeJXVGx2PRByjYzb4Y4/zr1byr0w==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-5.3.1.tgz", + "integrity": "sha512-yqOREjzLHcbzz1UrQoxhBtpk8KjrVhuqPE7od1K2uhyxG2BHjKZetlbLw/SPZak/QqTIQW+addS+EcjqQsZbwQ==", "requires": { "gaxios": "^4.0.0", "google-p12-pem": "^3.0.3", @@ -9662,9 +9653,9 @@ "dev": true }, "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" }, "is-typedarray": { "version": "1.0.0", @@ -10079,16 +10070,16 @@ "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" }, "mime-db": { - "version": "1.48.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.48.0.tgz", - "integrity": "sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ==" + "version": "1.49.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz", + "integrity": "sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==" }, "mime-types": { - "version": "2.1.31", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.31.tgz", - "integrity": "sha512-XGZnNzm3QvgKxa8dpzyhFTHmpP3l5YNusmne07VUOXxou9CqUqYa/HBy124RqtVh/O2pECas/MOcsDgpilPOPg==", + "version": "2.1.32", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz", + "integrity": "sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==", "requires": { - "mime-db": "1.48.0" + "mime-db": "1.49.0" } }, "mimic-fn": { @@ -11784,9 +11775,9 @@ "dev": true }, "resolve-alpn": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.1.2.tgz", - "integrity": "sha512-8OyfzhAtA32LVUsJSke3auIyINcwdh5l3cvYKdKO0nvsYSKuiLfTM5i78PJswFPT8y6cPW+L1v6/hE95chcpDA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.0.tgz", + "integrity": "sha512-e4FNQs+9cINYMO5NMFc6kOUCdohjqFPSgMuwuZAOUWqrfWsen+Yjy5qZFkV5K7VO7tFSLKcUL97olkED7sCBHA==", "dev": true }, "resolve-dependencies": { @@ -12331,9 +12322,9 @@ } }, "tslib": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz", - "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==" + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" }, "tunnel": { "version": "0.0.6", @@ -12388,9 +12379,9 @@ } }, "typegram": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/typegram/-/typegram-3.4.2.tgz", - "integrity": "sha512-Z+FaPrD+oyzvchLZHmfyz55MuPhJ51tYm6i+gbeZ0W8Yr4LLWQfI0mBlR2v08PzjHuRx26bmZBEM30jSrGbfbg==" + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/typegram/-/typegram-3.4.3.tgz", + "integrity": "sha512-pH0TQJzCWM2+7y6yiBoQVNt7PO9ZvAu/lQukVx4sm68FIBBZEBWI+2MzuMcdbwrD5mD5NrEMAyml9N6DupUZag==" }, "unbzip2-stream": { "version": "1.4.3", @@ -12573,6 +12564,18 @@ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true }, + "write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, "xdg-basedir": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", diff --git a/package.json b/package.json index bd9bc42..45ab61e 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "publishConfig": { "access": "public" }, - "version": "1.13.4", + "version": "1.13.5", "description": "Scripts to manage minecraft server's", "private": false, "main": "index.js", @@ -75,7 +75,7 @@ "uuid": "^8.3.2" }, "devDependencies": { - "docker-run_build": "github:Sirherobrine23/Docker-Run_Build", + "docker-run_build": "github:Sirherobrine23/Docker-Run_Build#main", "eslint": "^7.19.0", "husky": "^7.0.0", "nexe": "*", diff --git a/src/BdsManegerServer.js b/src/BdsManegerServer.js index f627923..7808640 100644 --- a/src/BdsManegerServer.js +++ b/src/BdsManegerServer.js @@ -1,18 +1,16 @@ const child_process = require("child_process"); const fs = require("fs"); const path = require("path"); -const { resolve, join } = require("path"); const randomUUID = require("uuid").v4; const { CronJob } = require("cron"); -const { GetCronBackup } = require("../lib/BdsSettings"); -const { Backup } = require("./BdsBackup"); // Bds Maneger Inports const commandExists = require("../lib/commandExist"); const BdsDetect = require("./CheckKill").Detect; const bds = require("../index"); -const { GetServerPaths, GetPaths, GetServerSettings, GetPlatform } = require("../lib/BdsSettings"); +const { GetServerPaths, GetPaths, GetServerSettings, GetPlatform, GetCronBackup } = require("../lib/BdsSettings"); const BdsInfo = require("../BdsManegerInfo.json"); +const { Backup } = require("./BdsBackup"); // Set bdsexec functions global.BdsExecs = {}; @@ -71,7 +69,7 @@ function start() { // Minecraft Bedrock (Pocketmine-MP) else if (GetPlatform() === "pocketmine") { // Start PocketMine-MP - SetupCommands.command = join(resolve(GetServerPaths("pocketmine"), "bin", "php7", "bin"), "php"); + SetupCommands.command = path.join(path.resolve(GetServerPaths("pocketmine"), "bin", "php7", "bin"), "php"); SetupCommands.args.push("./PocketMine-MP.phar"); SetupCommands.cwd = GetServerPaths("pocketmine"); } @@ -102,7 +100,7 @@ function start() { // Log file - const LogFile = join(GetPaths("log"), `${bds.date()}_${GetPlatform()}_Bds_log.log`); + const LogFile = path.join(GetPaths("log"), `${bds.date()}_${GetPlatform()}_Bds_log.log`); const LatestLog_Path = path.join(GetPaths("log"), "latest.log"); const LogSaveFunction = data => { fs.appendFileSync(LogFile, data); @@ -123,6 +121,8 @@ function start() { global.bds_log_string = "" ServerExec.stdout.on("data", data => {if (global.bds_log_string) global.bds_log_string = data; else global.bds_log_string += data}); + const say = (text = "") => ServerExec.stdin.write(BdsInfo.Servers.bedrock.say.replace("{{Text}}", text)); + const returnFuntion = { uuid: randomUUID(), stop: function (){ @@ -161,8 +161,8 @@ function start() { // Functions const data = data => Player_Json(data, function (array_status){ for (let _player of array_status) { - if (action === "all") callback(_player); - else if (_player.Action === action) callback(_player) + if (_player.Action === action) callback(_player); + if (action === "all") callback(_player); } }); ServerExec.stdout.on("data", data); @@ -195,7 +195,8 @@ function start() { if (cord.y) command = command.replace("{{Z}}", cord.y); else command = command.replace("{{Z}}", 0); ServerExec.stdin.write(command+"\n"); return command; - } + }, + say, } ServerExec.on("exit", ()=>{delete global.BdsExecs[returnFuntion.uuid]}); global.BdsExecs[returnFuntion.uuid] = returnFuntion; @@ -260,7 +261,7 @@ function Player_Json(data = "aaaaaa\n\n\naa", callback = () => {}){ // else if (Current_platorm === "jsprismarine") console.log("It's still not working"); } -const UpdateUserJSON = function (New_Object = new Array()){ +const UpdateUserJSON = function (New_Object = []){ const Player_Json_path = GetPaths("player"); const Current_platorm = GetPlatform(); let Players_Json = { diff --git a/src/BdsServersDownload.js b/src/BdsServersDownload.js index f0fd417..a0f25f7 100644 --- a/src/BdsServersDownload.js +++ b/src/BdsServersDownload.js @@ -51,116 +51,121 @@ async function php_download() { } module.exports = async function (version, force_install, callback) { - const bds_dir_bedrock = GetServerPaths("bedrock"), - bds_dir_java = GetServerPaths("java"), - bds_dir_pocketmine = GetServerPaths("pocketmine"), - bds_dir_jsprismarine = GetServerPaths("jsprismarine"); - const Servers = (await (await fetch(Extra.download.servers)).json()); - const ServerVersion = GetServerVersion() - const CurrentPlatform = GetPlatform() - if (force_install === true) { - ServerVersion.java = "latest"; - ServerVersion.bedrock = "latest" - ServerVersion.pocketmine = "latest" - } - if (!(version) || version === true || version === "true" || version === "latest") version = Servers.latest[CurrentPlatform] - var url; + try { + const bds_dir_bedrock = GetServerPaths("bedrock"), + bds_dir_java = GetServerPaths("java"), + bds_dir_pocketmine = GetServerPaths("pocketmine"), + bds_dir_jsprismarine = GetServerPaths("jsprismarine"); + const Servers = (await (await fetch(Extra.download.servers)).json()); + const ServerVersion = GetServerVersion() + const CurrentPlatform = GetPlatform() + if (force_install === true) { + ServerVersion.java = "latest"; + ServerVersion.bedrock = "latest" + ServerVersion.pocketmine = "latest" + } + if (!(version) || version === true || version === "true" || version === "latest") version = Servers.latest[CurrentPlatform] + var url; - console.log(`Installing version ${version}`); - // Bedrock Installer Script - if (CurrentPlatform === "bedrock") { - if (valid_platform.bedrock === true){ - if (version === "latest") version = Servers.latest.bedrock - if (ServerVersion.bedrock === version) { - console.warn("Jumping, installed version") - if (typeof callback === "function") callback(true); - return true - } else { - if (Servers.bedrock[version].data) console.log(`Server data publish: ${Servers.bedrock[version].data}`) - url = Servers.bedrock[version][bds.arch][process.platform] - var server_configs, permissions, whitelist; - if (existsSync(join(bds_dir_bedrock, "server.properties"))) server_configs = readFileSync(join(bds_dir_bedrock, "server.properties"), "utf8"); - if (existsSync(join(bds_dir_bedrock, "permissions.json"))) permissions = readFileSync(join(bds_dir_bedrock, "permissions.json"), "utf8"); - if (existsSync(join(bds_dir_bedrock, "whitelist.json"))) whitelist = readFileSync(join(bds_dir_bedrock, "whitelist.json"), "utf8"); - - // Download and Add to Adm_Zip - const zip = new AdmZip(Buffer.from((await (await fetch(url)).arrayBuffer()))) - console.log("Download Sucess") + console.log(`Installing version ${version}`); + // Bedrock Installer Script + if (CurrentPlatform === "bedrock") { + if (valid_platform.bedrock === true){ + if (version === "latest") version = Servers.latest.bedrock + if (ServerVersion.bedrock === version) { + console.warn("Jumping, installed version") + if (typeof callback === "function") await callback(undefined, true); + return true + } else { + if (Servers.bedrock[version].data) console.log(`Server data publish: ${Servers.bedrock[version].data}`) + url = Servers.bedrock[version][bds.arch][process.platform] + var server_configs, permissions, whitelist; + if (existsSync(join(bds_dir_bedrock, "server.properties"))) server_configs = readFileSync(join(bds_dir_bedrock, "server.properties"), "utf8"); + if (existsSync(join(bds_dir_bedrock, "permissions.json"))) permissions = readFileSync(join(bds_dir_bedrock, "permissions.json"), "utf8"); + if (existsSync(join(bds_dir_bedrock, "whitelist.json"))) whitelist = readFileSync(join(bds_dir_bedrock, "whitelist.json"), "utf8"); + + // Download and Add to Adm_Zip + const zip = new AdmZip(Buffer.from((await (await fetch(url)).arrayBuffer()))) + console.log("Download Sucess") - zip.extractAllTo(bds_dir_bedrock, true) - console.log("Extract Sucess") - if (server_configs) writeFileSync(join(bds_dir_bedrock, "server.properties"), server_configs); - if (permissions) writeFileSync(join(bds_dir_bedrock, "permissions.json"), permissions) - if (whitelist) writeFileSync(join(bds_dir_bedrock, "whitelist.json"), whitelist) - UpdateServerVersion(version) - if (typeof callback === "function") callback(true); - return true - } - } else throw Error("Bedrock Not suported") - } - // java Installer Script - else if (CurrentPlatform === "java") { - if (valid_platform.java === true){ - if (version === "latest") version = Servers.latest.java - if (version === ServerVersion.java) { - console.warn("Jumping, installed version") - if (typeof callback === "function") callback(true); - return true - } else { - url = Servers.java[version].url - console.log(`Server data publish: ${Servers.java[version].data}`) - - writeFileSync(join(bds_dir_java, "MinecraftServerJava.jar"), Buffer.from((await (await fetch(url)).arrayBuffer())), "binary") - console.log("Success when downloading and saving Minecraft Server java"); - UpdateServerVersion(version); - if (typeof callback === "function") callback(true); - return true - } - } else throw Error("Java is not supported or required software is not installed") - } - // Pocketmine-MP Installer Script - else if (CurrentPlatform === "pocketmine") { - if (valid_platform.pocketmine === true) { - if (version === "latest") version = Servers.latest.pocketmine - if (version === ServerVersion.pocketmine) { - console.warn("Jumping, installed version") - if (typeof callback === "function") callback(true); - return true - } else { - const PocketMineJson = Servers.pocketmine[version] - console.log(`Server data publish: ${PocketMineJson.data}`); - - writeFileSync(join(bds_dir_pocketmine, "PocketMine-MP.phar"), Buffer.from((await (await fetch(PocketMineJson.url)).arrayBuffer())), "binary") - console.log("Success downloading and saving PocketMine-MP php"); + zip.extractAllTo(bds_dir_bedrock, true) + console.log("Extract Sucess") + if (server_configs) writeFileSync(join(bds_dir_bedrock, "server.properties"), server_configs); + if (permissions) writeFileSync(join(bds_dir_bedrock, "permissions.json"), permissions) + if (whitelist) writeFileSync(join(bds_dir_bedrock, "whitelist.json"), whitelist) + UpdateServerVersion(version) + if (typeof callback === "function") await callback(undefined, true); + return true + } + } else throw Error("Bedrock Not suported") + } + // java Installer Script + else if (CurrentPlatform === "java") { + if (valid_platform.java === true){ + if (version === "latest") version = Servers.latest.java + if (version === ServerVersion.java) { + console.warn("Jumping, installed version") + if (typeof callback === "function") await callback(undefined, true); + return true + } else { + url = Servers.java[version].url + console.log(`Server data publish: ${Servers.java[version].data}`) + + writeFileSync(join(bds_dir_java, "MinecraftServerJava.jar"), Buffer.from((await (await fetch(url)).arrayBuffer())), "binary") + console.log("Success when downloading and saving Minecraft Server java"); + UpdateServerVersion(version); + if (typeof callback === "function") await callback(undefined, true); + return true + } + } else throw Error("Java is not supported or required software is not installed") + } + // Pocketmine-MP Installer Script + else if (CurrentPlatform === "pocketmine") { + if (valid_platform.pocketmine === true) { + if (version === "latest") version = Servers.latest.pocketmine + if (version === ServerVersion.pocketmine) { + console.warn("Jumping, installed version") + if (typeof callback === "function") await callback(undefined, true); + return true + } else { + const PocketMineJson = Servers.pocketmine[version] + console.log(`Server data publish: ${PocketMineJson.data}`); + + writeFileSync(join(bds_dir_pocketmine, "PocketMine-MP.phar"), Buffer.from((await (await fetch(PocketMineJson.url)).arrayBuffer())), "binary") + console.log("Success downloading and saving PocketMine-MP php"); - await php_download(); + await php_download(); - // Update server Version - UpdateServerVersion(version) - // Callback - if (typeof callback === "function") callback(true); + // Update server Version + UpdateServerVersion(version) + // Callback + if (typeof callback === "function") await callback(undefined, true); + return true + } + } else throw Error("Pocketmine not suported") + } + + // JSPrismarine + else if (CurrentPlatform === "jsprismarine") { + if (valid_platform.jsprismarine === true) { + console.log("Downloading the JSPrismarine repository."); + const commit_sha = GitClone("https://github.com/JSPrismarine/JSPrismarine.git", bds_dir_jsprismarine, 1); + for (let command of ["npm install", "npx -y lerna bootstrap", "npm run build"]) console.log(execSync(command, {cwd: bds_dir_jsprismarine}).toString("ascii")); + console.log(commit_sha); + UpdateServerVersion(commit_sha, "jsprismarine") + if (typeof callback === "function") await callback(undefined, true); return true - } - } else throw Error("Pocketmine not suported") - } + } else throw Error("jsprismarine not suported") + } - // JSPrismarine - else if (CurrentPlatform === "jsprismarine") { - if (valid_platform.jsprismarine === true) { - console.log("Downloading the JSPrismarine repository."); - const commit_sha = GitClone("https://github.com/JSPrismarine/JSPrismarine.git", bds_dir_jsprismarine, 1); - for (let command of ["npm install", "npx -y lerna bootstrap", "npm run build"]) console.log(execSync(command, {cwd: bds_dir_jsprismarine}).toString("ascii")); - console.log(commit_sha); - UpdateServerVersion(commit_sha, "jsprismarine") - if (typeof callback === "function") callback(true); - return true - } else throw Error("jsprismarine not suported") + // dragonfly + else if (CurrentPlatform === "dragonfly") { + throw "Bds maneger Config file error"; + } + // Unidentified platform + else throw Error("Bds maneger Config file error") + } catch (err) { + if (typeof callback === "function") await callback(err, false); + return err; } - - // dragonfly - else if (CurrentPlatform === "dragonfly") { - throw "Bds maneger Config file error"; - } - // Unidentified platform - else throw Error("Bds maneger Config file error") }