diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..9e975e1 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,37 @@ +name: Build/release + +on: push + +jobs: + release: + runs-on: ${{ matrix.os }} + + strategy: + matrix: + os: [macos-latest, ubuntu-latest, windows-latest] + + steps: + - name: Check out Git repository + uses: actions/checkout@v1 + + - name: Install Node.js, NPM and Yarn + uses: actions/setup-node@v1 + with: + node-version: 16 + + - name: Build/release Electron app + uses: samuelmeuli/action-electron-builder@v1 + with: + # GitHub token, automatically provided to the action + # (No need to define this secret in the repo settings) + github_token: ${{ secrets.github_token }} + # skip npm run build as there's no script like that + skip_build: false + # If the commit is tagged with a version (e.g. "v1.0.0"), + # release the app after building + release: ${{ startsWith(github.ref, 'refs/tags/v') }} #disabled for now as it caused problems (nvm) + - name: Archive production builds + uses: actions/upload-artifact@v2 + with: + name: dist folder + path: dist/** diff --git a/.husky/.gitignore b/.husky/.gitignore deleted file mode 100644 index 31354ec..0000000 --- a/.husky/.gitignore +++ /dev/null @@ -1 +0,0 @@ -_ diff --git a/.husky/pre-commit b/.husky/pre-commit deleted file mode 100755 index a31ede1..0000000 --- a/.husky/pre-commit +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/sh -. "$(dirname $0)/_/husky.sh" - -npm run format -git add -A diff --git a/.prettierignore b/.prettierignore deleted file mode 100644 index bac5ad4..0000000 --- a/.prettierignore +++ /dev/null @@ -1,11 +0,0 @@ -# Some prettier-specific files so it doesn't die. -**/*.png -**/*.ico -LICENSE -.gitignore - -node_modules -out/ -dist -ts-out/ -ts-out \ No newline at end of file diff --git a/README.md b/README.md index dc310fb..dd33b82 100644 --- a/README.md +++ b/README.md @@ -32,8 +32,8 @@ # How to run/install it? ### Recommended: - Check releases tab for precompiled packages for Linux, Windows and ~~Mac OS~~ (Mac OS is broken see [#48](https://github.com/ArmCord/ArmCord/issues/48)). Alternatively use our Sourceforge mirror. - Download ArmCord + Check releases tab for precompiled packages for Linux, Windows and ~~Mac OS~~ (Mac OS is broken see [#48](https://github.com/ArmCord/ArmCord/issues/48)). + ### AUR Package Armcord is also available on the Arch User Repository (AUR) [here](https://aur.archlinux.org/packages/armcord-bin/). diff --git a/package-lock.json b/package-lock.json index fed925e..6904b1a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7,23 +7,17 @@ "": { "name": "ArmCord", "version": "3.1.0", - "hasInstallScript": true, "license": "OSL-3.0", "dependencies": { - "electron-context-menu": "^3.1.2", "electron-json-storage": "^4.5.0", - "electron-tabs": "^0.15.0", - "glasstron": "^0.1.1", "v8-compile-cache": "^2.3.0" }, "devDependencies": { "@types/electron-json-storage": "^4.5.0", "@types/node": "^14.18.2", "copyfiles": "^2.4.1", - "electron": "^17.1.0", - "electron-builder": "^22.14.13", - "husky": "^7.0.4", - "prettier": "^2.5.1", + "electron": "^16.0.7", + "electron-builder": "^22.14.5", "typescript": "^4.5.4" } }, @@ -212,15 +206,6 @@ "node": ">=6" } }, - "node_modules/@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", - "dev": true, - "engines": { - "node": ">= 10" - } - }, "node_modules/@types/debug": { "version": "4.1.7", "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.7.tgz", @@ -314,18 +299,6 @@ "integrity": "sha512-sAP4LldeWNz0lNzmTird3uWfFDWWTeg6V/MsmyyLR9X1idwKBWIgt/ZvinqQldJm3LecKEs1emkbquO6PCiLVQ==", "dev": true }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, "node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -364,6 +337,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, "engines": { "node": ">=8" } @@ -372,6 +346,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -389,9 +364,9 @@ "dev": true }, "node_modules/app-builder-lib": { - "version": "22.14.13", - "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-22.14.13.tgz", - "integrity": "sha512-SufmrtxU+D0Tn948fjEwAOlCN9757UXLkzzTWXMwZKR/5hisvgqeeBepWfphMIE6OkDGz0fbzEhL1P2Pty4XMg==", + "version": "22.14.5", + "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-22.14.5.tgz", + "integrity": "sha512-k3VwKP4kpsnUaXoUkm1s4zaSHPHIMFnN4kPMU9yXaKmE1LfHHqBaEah5bXeTAX5V/BC41wFdg8CF5vOjvgy8Rg==", "dev": true, "dependencies": { "@develar/schema-utils": "~2.6.5", @@ -400,13 +375,13 @@ "7zip-bin": "~5.1.1", "async-exit-hook": "^2.0.1", "bluebird-lst": "^1.0.9", - "builder-util": "22.14.13", - "builder-util-runtime": "8.9.2", + "builder-util": "22.14.5", + "builder-util-runtime": "8.9.1", "chromium-pickle-js": "^0.2.0", "debug": "^4.3.2", "ejs": "^3.1.6", "electron-osx-sign": "^0.5.0", - "electron-publish": "22.14.13", + "electron-publish": "22.14.5", "form-data": "^4.0.0", "fs-extra": "^10.0.0", "hosted-git-info": "^4.0.2", @@ -425,9 +400,9 @@ } }, "node_modules/app-builder-lib/node_modules/fs-extra": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.1.tgz", - "integrity": "sha512-NbdoVMZso2Lsrn/QwLXOy6rm0ufY2zEOKCDzJR/0kBsb0E6qed0P3iYK+Ath3BfvXEeu4JhEtXLgILx5psUfag==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", + "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", "dev": true, "dependencies": { "graceful-fs": "^4.2.0", @@ -515,6 +490,8 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "optional": true, "engines": { "node": ">=8" } @@ -713,9 +690,9 @@ "dev": true }, "node_modules/builder-util": { - "version": "22.14.13", - "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-22.14.13.tgz", - "integrity": "sha512-oePC/qrrUuerhmH5iaCJzPRAKlSBylrhzuAJmRQClTyWnZUv6jbaHh+VoHMbEiE661wrj2S2aV7/bQh12cj1OA==", + "version": "22.14.5", + "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-22.14.5.tgz", + "integrity": "sha512-zqIHDFJwmA7jV7SC9aI+33MWwT2mWoijH+Ol9IntNAwuuRXoS+7XeJwnhLBXOhcDBzXT4kDzHnRk4JKeaygEYA==", "dev": true, "dependencies": { "@types/debug": "^4.1.6", @@ -723,13 +700,11 @@ "7zip-bin": "~5.1.1", "app-builder-bin": "3.7.1", "bluebird-lst": "^1.0.9", - "builder-util-runtime": "8.9.2", + "builder-util-runtime": "8.9.1", "chalk": "^4.1.1", "cross-spawn": "^7.0.3", "debug": "^4.3.2", "fs-extra": "^10.0.0", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", "is-ci": "^3.0.0", "js-yaml": "^4.1.0", "source-map-support": "^0.5.19", @@ -738,9 +713,9 @@ } }, "node_modules/builder-util-runtime": { - "version": "8.9.2", - "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.9.2.tgz", - "integrity": "sha512-rhuKm5vh7E0aAmT6i8aoSfEjxzdYEFX7zDApK+eNgOhjofnWb74d9SRJv0H/8nsgOkos0TZ4zxW0P8J4N7xQ2A==", + "version": "8.9.1", + "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.9.1.tgz", + "integrity": "sha512-c8a8J3wK6BIVLW7ls+7TRK9igspTbzWmUqxFbgK0m40Ggm6efUbxtWVCGIjc+dtchyr5qAMAUL6iEGRdS/6vwg==", "dev": true, "dependencies": { "debug": "^4.3.2", @@ -751,9 +726,9 @@ } }, "node_modules/builder-util/node_modules/fs-extra": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.1.tgz", - "integrity": "sha512-NbdoVMZso2Lsrn/QwLXOy6rm0ufY2zEOKCDzJR/0kBsb0E6qed0P3iYK+Ath3BfvXEeu4JhEtXLgILx5psUfag==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", + "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", "dev": true, "dependencies": { "graceful-fs": "^4.2.0", @@ -883,6 +858,8 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", + "dev": true, + "optional": true, "dependencies": { "slice-ansi": "^3.0.0", "string-width": "^4.2.0" @@ -918,6 +895,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "dependencies": { "color-name": "~1.1.4" }, @@ -928,7 +906,8 @@ "node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "node_modules/colors": { "version": "1.0.3", @@ -1200,14 +1179,14 @@ } }, "node_modules/dmg-builder": { - "version": "22.14.13", - "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-22.14.13.tgz", - "integrity": "sha512-xNOugB6AbIRETeU2uID15sUfjdZZcKdxK8xkFnwIggsM00PJ12JxpLNPTjcRoUnfwj3WrPjilrO64vRMwNItQg==", + "version": "22.14.5", + "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-22.14.5.tgz", + "integrity": "sha512-1GvFGQE332bvPamcMwZDqWqfWfJTyyDLOsHMcGi0zs+Jh7JOn6/zuBkHJIWHdsj2QJbhzLVyd2/ZqttOKv7I8w==", "dev": true, "dependencies": { - "app-builder-lib": "22.14.13", - "builder-util": "22.14.13", - "builder-util-runtime": "8.9.2", + "app-builder-lib": "22.14.5", + "builder-util": "22.14.5", + "builder-util-runtime": "8.9.1", "fs-extra": "^10.0.0", "iconv-lite": "^0.6.2", "js-yaml": "^4.1.0" @@ -1217,9 +1196,9 @@ } }, "node_modules/dmg-builder/node_modules/fs-extra": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.1.tgz", - "integrity": "sha512-NbdoVMZso2Lsrn/QwLXOy6rm0ufY2zEOKCDzJR/0kBsb0E6qed0P3iYK+Ath3BfvXEeu4JhEtXLgILx5psUfag==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", + "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", "dev": true, "dependencies": { "graceful-fs": "^4.2.0", @@ -1252,10 +1231,9 @@ } }, "node_modules/dmg-license": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/dmg-license/-/dmg-license-1.0.11.tgz", - "integrity": "sha512-ZdzmqwKmECOWJpqefloC5OJy1+WZBBse5+MR88z9g9Zn4VY+WYUkAyojmhzJckH5YbbZGcYIuGAkY5/Ys5OM2Q==", - "deprecated": "Disk image license agreements are deprecated by Apple and will probably be removed in a future macOS release. Discussion at: https://github.com/argv-minus-one/dmg-license/issues/11", + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/dmg-license/-/dmg-license-1.0.10.tgz", + "integrity": "sha512-SVeeyiOeinV5JCPHXMdKOgK1YVbak/4+8WL2rBnfqRYpA5FaeFaQnQWb25x628am1w70CbipGDv9S51biph63A==", "dev": true, "optional": true, "os": [ @@ -1327,9 +1305,9 @@ } }, "node_modules/electron": { - "version": "17.1.0", - "resolved": "https://registry.npmjs.org/electron/-/electron-17.1.0.tgz", - "integrity": "sha512-X/qdldmQ8lA15NmeraubWCTtMeTO8K9Ser0wtSCgOXVh53Sr1Ea0VQQ7Q9LuGgWRVz4qtr40cntuEdM8icdmTw==", + "version": "16.0.7", + "resolved": "https://registry.npmjs.org/electron/-/electron-16.0.7.tgz", + "integrity": "sha512-/IMwpBf2svhA1X/7Q58RV+Nn0fvUJsHniG4TizaO7q4iKFYSQ6hBvsLz+cylcZ8hRMKmVy5G1XaMNJID2ah23w==", "dev": true, "hasInstallScript": true, "dependencies": { @@ -1345,17 +1323,17 @@ } }, "node_modules/electron-builder": { - "version": "22.14.13", - "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-22.14.13.tgz", - "integrity": "sha512-3fgLxqF2TXVKiUPeg74O4V3l0l3j7ERLazo8sUbRkApw0+4iVAf2BJkHsHMaXiigsgCoEzK/F4/rB5rne/VAnw==", + "version": "22.14.5", + "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-22.14.5.tgz", + "integrity": "sha512-N73hSbXFz6Mz5Z6h6C5ly6CB+dUN6k1LuCDJjI8VF47bMXv/QE0HE+Kkb0GPKqTqM7Hsk/yIYX+kHCfSkR5FGg==", "dev": true, "dependencies": { "@types/yargs": "^17.0.1", - "app-builder-lib": "22.14.13", - "builder-util": "22.14.13", - "builder-util-runtime": "8.9.2", + "app-builder-lib": "22.14.5", + "builder-util": "22.14.5", + "builder-util-runtime": "8.9.1", "chalk": "^4.1.1", - "dmg-builder": "22.14.13", + "dmg-builder": "22.14.5", "fs-extra": "^10.0.0", "is-ci": "^3.0.0", "lazy-val": "^1.0.5", @@ -1433,40 +1411,6 @@ "node": ">=12" } }, - "node_modules/electron-context-menu": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/electron-context-menu/-/electron-context-menu-3.1.2.tgz", - "integrity": "sha512-nNzu4w14n7mOR+4cLjRC9cEFqGUsAY76seOm0sw3f4OxEfX/d75m7HYekyp5b+0m7Ixy2KN/Mrljw1zLmpyV2w==", - "dependencies": { - "cli-truncate": "^2.1.0", - "electron-dl": "^3.2.1", - "electron-is-dev": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/electron-dl": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/electron-dl/-/electron-dl-3.3.0.tgz", - "integrity": "sha512-Zwaz/OMGPIfBLV2SQH4sTsdDOs/U4y5AOHfremMBXEpjIxX+SiTx845DZAvJJwgb5hfowyWOBLiJhd/emBNLLQ==", - "dependencies": { - "ext-name": "^5.0.0", - "pupa": "^2.0.1", - "unused-filename": "^2.1.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/electron-is-dev": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/electron-is-dev/-/electron-is-dev-2.0.0.tgz", - "integrity": "sha512-3X99K852Yoqu9AcW50qz3ibYBWY79/pBhlMCab8ToEWS48R0T9tyxRiQhwylE7zQdXrMnx2JKqUJyMPmt5FBqA==", - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/electron-json-storage": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/electron-json-storage/-/electron-json-storage-4.5.0.tgz", @@ -1529,14 +1473,14 @@ "dev": true }, "node_modules/electron-publish": { - "version": "22.14.13", - "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-22.14.13.tgz", - "integrity": "sha512-0oP3QiNj3e8ewOaEpEJV/o6Zrmy2VarVvZ/bH7kyO/S/aJf9x8vQsKVWpsdmSiZ5DJEHgarFIXrnO0ZQf0P9iQ==", + "version": "22.14.5", + "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-22.14.5.tgz", + "integrity": "sha512-h+NANRdaA0PqGF15GKvorseWPzh1PXa/zx4I37//PIokW8eKIov8ky23foUSb55ZFWUHGpxQJux7y2NCfBtQeg==", "dev": true, "dependencies": { "@types/fs-extra": "^9.0.11", - "builder-util": "22.14.13", - "builder-util-runtime": "8.9.2", + "builder-util": "22.14.5", + "builder-util-runtime": "8.9.1", "chalk": "^4.1.1", "fs-extra": "^10.0.0", "lazy-val": "^1.0.5", @@ -1544,9 +1488,9 @@ } }, "node_modules/electron-publish/node_modules/fs-extra": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.1.tgz", - "integrity": "sha512-NbdoVMZso2Lsrn/QwLXOy6rm0ufY2zEOKCDzJR/0kBsb0E6qed0P3iYK+Ath3BfvXEeu4JhEtXLgILx5psUfag==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", + "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", "dev": true, "dependencies": { "graceful-fs": "^4.2.0", @@ -1578,15 +1522,11 @@ "node": ">= 10.0.0" } }, - "node_modules/electron-tabs": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/electron-tabs/-/electron-tabs-0.15.0.tgz", - "integrity": "sha512-pGW5V+V9X1+b2muKndn7xsce6D89D5j7kt0j/+5nX/gwsIAnZ86axJDriOxVP20f8yN4sQkrYdUana3Wi3Ea0w==" - }, "node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true }, "node_modules/encodeurl": { "version": "1.0.2", @@ -1636,6 +1576,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", + "dev": true, "engines": { "node": ">=8" } @@ -1653,29 +1594,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/ext-list": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/ext-list/-/ext-list-2.2.2.tgz", - "integrity": "sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA==", - "dependencies": { - "mime-db": "^1.28.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ext-name": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ext-name/-/ext-name-5.0.0.tgz", - "integrity": "sha512-yblEwXAbGv1VQDmow7s38W77hzAgJAO50ztBLMcUyUBfxv1HC+LGwtiEN+Co6LtlqT/5uwVOxsD4TNIilWhwdQ==", - "dependencies": { - "ext-list": "^2.0.0", - "sort-keys-length": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/extract-zip": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz", @@ -1800,24 +1718,6 @@ "node": ">=6" } }, - "node_modules/glasstron": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/glasstron/-/glasstron-0.1.1.tgz", - "integrity": "sha512-oLEMQM5wwdAQ44NrXD3wjk+b3dsfQG1XtkLn5pCxQNa3ri1AtWvvzpnhFUd88ZTmguHvkY4c3JKzcPSYaJAKKA==", - "hasInstallScript": true, - "dependencies": { - "node-addon-api": "^4.0.0", - "x11": "^2.3.0" - }, - "funding": { - "url": "https://patreon.com/arytonex" - } - }, - "node_modules/glasstron/node_modules/node-addon-api": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz", - "integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==" - }, "node_modules/glob": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", @@ -1996,48 +1896,6 @@ "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", "dev": true }, - "node_modules/http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", - "dev": true, - "dependencies": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", - "dev": true, - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/husky": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/husky/-/husky-7.0.4.tgz", - "integrity": "sha512-vbaCKN2QLtP/vD4yvs6iz6hBEo6wkSzs8HpRah1Z6aGmF2KW5PdYuAd7uX5a+OyBZHBhd+TFLqgjUgytQr4RvQ==", - "dev": true, - "bin": { - "husky": "lib/bin.js" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/typicode" - } - }, "node_modules/iconv-corefoundation": { "version": "1.1.7", "resolved": "https://registry.npmjs.org/iconv-corefoundation/-/iconv-corefoundation-1.1.7.tgz", @@ -2141,6 +1999,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, "engines": { "node": ">=8" } @@ -2191,14 +2050,6 @@ "node": ">=8" } }, - "node_modules/is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", @@ -2490,6 +2341,7 @@ "version": "1.51.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", + "dev": true, "engines": { "node": ">= 0.6" } @@ -2542,14 +2394,6 @@ "mkdirp": "bin/cmd.js" } }, - "node_modules/modify-filename": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/modify-filename/-/modify-filename-1.1.0.tgz", - "integrity": "sha1-mi3sg4Bvuy2XXyK+7IWcoms5OqE=", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -2638,14 +2482,6 @@ "wrappy": "1" } }, - "node_modules/os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/p-cancelable": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", @@ -2670,14 +2506,6 @@ "node": ">=8" } }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "engines": { - "node": ">=8" - } - }, "node_modules/path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", @@ -2742,18 +2570,6 @@ "node": ">=4" } }, - "node_modules/prettier": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.5.1.tgz", - "integrity": "sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg==", - "dev": true, - "bin": { - "prettier": "bin-prettier.js" - }, - "engines": { - "node": ">=10.13.0" - } - }, "node_modules/process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", @@ -2799,6 +2615,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", + "dev": true, "dependencies": { "escape-goat": "^2.0.0" }, @@ -3024,6 +2841,8 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", + "dev": true, + "optional": true, "dependencies": { "ansi-styles": "^4.0.0", "astral-regex": "^2.0.0", @@ -3044,28 +2863,6 @@ "npm": ">= 3.0.0" } }, - "node_modules/sort-keys": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", - "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", - "dependencies": { - "is-plain-obj": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sort-keys-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sort-keys-length/-/sort-keys-length-1.0.1.tgz", - "integrity": "sha1-nLb09OnkgVWmqgZx7dM2/xR5oYg=", - "dependencies": { - "sort-keys": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -3114,6 +2911,7 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -3127,6 +2925,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, "dependencies": { "ansi-regex": "^5.0.1" }, @@ -3178,9 +2977,9 @@ } }, "node_modules/temp-file/node_modules/fs-extra": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.1.tgz", - "integrity": "sha512-NbdoVMZso2Lsrn/QwLXOy6rm0ufY2zEOKCDzJR/0kBsb0E6qed0P3iYK+Ath3BfvXEeu4JhEtXLgILx5psUfag==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", + "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", "dev": true, "dependencies": { "graceful-fs": "^4.2.0", @@ -3357,18 +3156,6 @@ "node": ">=8" } }, - "node_modules/unused-filename": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unused-filename/-/unused-filename-2.1.0.tgz", - "integrity": "sha512-BMiNwJbuWmqCpAM1FqxCTD7lXF97AvfQC8Kr/DIeA6VtvhJaMDupZ82+inbjl5yVP44PcxOuCSxye1QMS0wZyg==", - "dependencies": { - "modify-filename": "^1.1.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/update-notifier": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", @@ -3549,17 +3336,6 @@ "signal-exit": "^3.0.2" } }, - "node_modules/x11": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/x11/-/x11-2.3.0.tgz", - "integrity": "sha1-vazO3M2sJIL9Vg8FEee/K9nh2/I=", - "dependencies": { - "os-homedir": "^1.0.1" - }, - "engines": { - "node": "*" - } - }, "node_modules/xdg-basedir": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", @@ -3778,12 +3554,6 @@ "defer-to-connect": "^1.0.1" } }, - "@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", - "dev": true - }, "@types/debug": { "version": "4.1.7", "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.7.tgz", @@ -3877,15 +3647,6 @@ "integrity": "sha512-sAP4LldeWNz0lNzmTird3uWfFDWWTeg6V/MsmyyLR9X1idwKBWIgt/ZvinqQldJm3LecKEs1emkbquO6PCiLVQ==", "dev": true }, - "agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "requires": { - "debug": "4" - } - }, "ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -3917,12 +3678,14 @@ "ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true }, "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "requires": { "color-convert": "^2.0.1" } @@ -3934,9 +3697,9 @@ "dev": true }, "app-builder-lib": { - "version": "22.14.13", - "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-22.14.13.tgz", - "integrity": "sha512-SufmrtxU+D0Tn948fjEwAOlCN9757UXLkzzTWXMwZKR/5hisvgqeeBepWfphMIE6OkDGz0fbzEhL1P2Pty4XMg==", + "version": "22.14.5", + "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-22.14.5.tgz", + "integrity": "sha512-k3VwKP4kpsnUaXoUkm1s4zaSHPHIMFnN4kPMU9yXaKmE1LfHHqBaEah5bXeTAX5V/BC41wFdg8CF5vOjvgy8Rg==", "dev": true, "requires": { "@develar/schema-utils": "~2.6.5", @@ -3945,13 +3708,13 @@ "7zip-bin": "~5.1.1", "async-exit-hook": "^2.0.1", "bluebird-lst": "^1.0.9", - "builder-util": "22.14.13", - "builder-util-runtime": "8.9.2", + "builder-util": "22.14.5", + "builder-util-runtime": "8.9.1", "chromium-pickle-js": "^0.2.0", "debug": "^4.3.2", "ejs": "^3.1.6", "electron-osx-sign": "^0.5.0", - "electron-publish": "22.14.13", + "electron-publish": "22.14.5", "form-data": "^4.0.0", "fs-extra": "^10.0.0", "hosted-git-info": "^4.0.2", @@ -3967,9 +3730,9 @@ }, "dependencies": { "fs-extra": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.1.tgz", - "integrity": "sha512-NbdoVMZso2Lsrn/QwLXOy6rm0ufY2zEOKCDzJR/0kBsb0E6qed0P3iYK+Ath3BfvXEeu4JhEtXLgILx5psUfag==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", + "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", "dev": true, "requires": { "graceful-fs": "^4.2.0", @@ -4033,7 +3796,9 @@ "astral-regex": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==" + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "optional": true }, "async": { "version": "2.6.3", @@ -4179,9 +3944,9 @@ "dev": true }, "builder-util": { - "version": "22.14.13", - "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-22.14.13.tgz", - "integrity": "sha512-oePC/qrrUuerhmH5iaCJzPRAKlSBylrhzuAJmRQClTyWnZUv6jbaHh+VoHMbEiE661wrj2S2aV7/bQh12cj1OA==", + "version": "22.14.5", + "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-22.14.5.tgz", + "integrity": "sha512-zqIHDFJwmA7jV7SC9aI+33MWwT2mWoijH+Ol9IntNAwuuRXoS+7XeJwnhLBXOhcDBzXT4kDzHnRk4JKeaygEYA==", "dev": true, "requires": { "@types/debug": "^4.1.6", @@ -4189,13 +3954,11 @@ "7zip-bin": "~5.1.1", "app-builder-bin": "3.7.1", "bluebird-lst": "^1.0.9", - "builder-util-runtime": "8.9.2", + "builder-util-runtime": "8.9.1", "chalk": "^4.1.1", "cross-spawn": "^7.0.3", "debug": "^4.3.2", "fs-extra": "^10.0.0", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", "is-ci": "^3.0.0", "js-yaml": "^4.1.0", "source-map-support": "^0.5.19", @@ -4204,9 +3967,9 @@ }, "dependencies": { "fs-extra": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.1.tgz", - "integrity": "sha512-NbdoVMZso2Lsrn/QwLXOy6rm0ufY2zEOKCDzJR/0kBsb0E6qed0P3iYK+Ath3BfvXEeu4JhEtXLgILx5psUfag==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", + "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", "dev": true, "requires": { "graceful-fs": "^4.2.0", @@ -4233,9 +3996,9 @@ } }, "builder-util-runtime": { - "version": "8.9.2", - "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.9.2.tgz", - "integrity": "sha512-rhuKm5vh7E0aAmT6i8aoSfEjxzdYEFX7zDApK+eNgOhjofnWb74d9SRJv0H/8nsgOkos0TZ4zxW0P8J4N7xQ2A==", + "version": "8.9.1", + "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.9.1.tgz", + "integrity": "sha512-c8a8J3wK6BIVLW7ls+7TRK9igspTbzWmUqxFbgK0m40Ggm6efUbxtWVCGIjc+dtchyr5qAMAUL6iEGRdS/6vwg==", "dev": true, "requires": { "debug": "^4.3.2", @@ -4312,6 +4075,8 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", + "dev": true, + "optional": true, "requires": { "slice-ansi": "^3.0.0", "string-width": "^4.2.0" @@ -4341,6 +4106,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "requires": { "color-name": "~1.1.4" } @@ -4348,7 +4114,8 @@ "color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "colors": { "version": "1.0.3", @@ -4566,14 +4333,14 @@ } }, "dmg-builder": { - "version": "22.14.13", - "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-22.14.13.tgz", - "integrity": "sha512-xNOugB6AbIRETeU2uID15sUfjdZZcKdxK8xkFnwIggsM00PJ12JxpLNPTjcRoUnfwj3WrPjilrO64vRMwNItQg==", + "version": "22.14.5", + "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-22.14.5.tgz", + "integrity": "sha512-1GvFGQE332bvPamcMwZDqWqfWfJTyyDLOsHMcGi0zs+Jh7JOn6/zuBkHJIWHdsj2QJbhzLVyd2/ZqttOKv7I8w==", "dev": true, "requires": { - "app-builder-lib": "22.14.13", - "builder-util": "22.14.13", - "builder-util-runtime": "8.9.2", + "app-builder-lib": "22.14.5", + "builder-util": "22.14.5", + "builder-util-runtime": "8.9.1", "dmg-license": "^1.0.9", "fs-extra": "^10.0.0", "iconv-lite": "^0.6.2", @@ -4581,9 +4348,9 @@ }, "dependencies": { "fs-extra": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.1.tgz", - "integrity": "sha512-NbdoVMZso2Lsrn/QwLXOy6rm0ufY2zEOKCDzJR/0kBsb0E6qed0P3iYK+Ath3BfvXEeu4JhEtXLgILx5psUfag==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", + "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", "dev": true, "requires": { "graceful-fs": "^4.2.0", @@ -4610,9 +4377,9 @@ } }, "dmg-license": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/dmg-license/-/dmg-license-1.0.11.tgz", - "integrity": "sha512-ZdzmqwKmECOWJpqefloC5OJy1+WZBBse5+MR88z9g9Zn4VY+WYUkAyojmhzJckH5YbbZGcYIuGAkY5/Ys5OM2Q==", + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/dmg-license/-/dmg-license-1.0.10.tgz", + "integrity": "sha512-SVeeyiOeinV5JCPHXMdKOgK1YVbak/4+8WL2rBnfqRYpA5FaeFaQnQWb25x628am1w70CbipGDv9S51biph63A==", "dev": true, "optional": true, "requires": { @@ -4663,9 +4430,9 @@ } }, "electron": { - "version": "17.1.0", - "resolved": "https://registry.npmjs.org/electron/-/electron-17.1.0.tgz", - "integrity": "sha512-X/qdldmQ8lA15NmeraubWCTtMeTO8K9Ser0wtSCgOXVh53Sr1Ea0VQQ7Q9LuGgWRVz4qtr40cntuEdM8icdmTw==", + "version": "16.0.7", + "resolved": "https://registry.npmjs.org/electron/-/electron-16.0.7.tgz", + "integrity": "sha512-/IMwpBf2svhA1X/7Q58RV+Nn0fvUJsHniG4TizaO7q4iKFYSQ6hBvsLz+cylcZ8hRMKmVy5G1XaMNJID2ah23w==", "dev": true, "requires": { "@electron/get": "^1.13.0", @@ -4674,17 +4441,17 @@ } }, "electron-builder": { - "version": "22.14.13", - "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-22.14.13.tgz", - "integrity": "sha512-3fgLxqF2TXVKiUPeg74O4V3l0l3j7ERLazo8sUbRkApw0+4iVAf2BJkHsHMaXiigsgCoEzK/F4/rB5rne/VAnw==", + "version": "22.14.5", + "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-22.14.5.tgz", + "integrity": "sha512-N73hSbXFz6Mz5Z6h6C5ly6CB+dUN6k1LuCDJjI8VF47bMXv/QE0HE+Kkb0GPKqTqM7Hsk/yIYX+kHCfSkR5FGg==", "dev": true, "requires": { "@types/yargs": "^17.0.1", - "app-builder-lib": "22.14.13", - "builder-util": "22.14.13", - "builder-util-runtime": "8.9.2", + "app-builder-lib": "22.14.5", + "builder-util": "22.14.5", + "builder-util-runtime": "8.9.1", "chalk": "^4.1.1", - "dmg-builder": "22.14.13", + "dmg-builder": "22.14.5", "fs-extra": "^10.0.0", "is-ci": "^3.0.0", "lazy-val": "^1.0.5", @@ -4743,31 +4510,6 @@ } } }, - "electron-context-menu": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/electron-context-menu/-/electron-context-menu-3.1.2.tgz", - "integrity": "sha512-nNzu4w14n7mOR+4cLjRC9cEFqGUsAY76seOm0sw3f4OxEfX/d75m7HYekyp5b+0m7Ixy2KN/Mrljw1zLmpyV2w==", - "requires": { - "cli-truncate": "^2.1.0", - "electron-dl": "^3.2.1", - "electron-is-dev": "^2.0.0" - } - }, - "electron-dl": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/electron-dl/-/electron-dl-3.3.0.tgz", - "integrity": "sha512-Zwaz/OMGPIfBLV2SQH4sTsdDOs/U4y5AOHfremMBXEpjIxX+SiTx845DZAvJJwgb5hfowyWOBLiJhd/emBNLLQ==", - "requires": { - "ext-name": "^5.0.0", - "pupa": "^2.0.1", - "unused-filename": "^2.1.0" - } - }, - "electron-is-dev": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/electron-is-dev/-/electron-is-dev-2.0.0.tgz", - "integrity": "sha512-3X99K852Yoqu9AcW50qz3ibYBWY79/pBhlMCab8ToEWS48R0T9tyxRiQhwylE7zQdXrMnx2JKqUJyMPmt5FBqA==" - }, "electron-json-storage": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/electron-json-storage/-/electron-json-storage-4.5.0.tgz", @@ -4822,14 +4564,14 @@ } }, "electron-publish": { - "version": "22.14.13", - "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-22.14.13.tgz", - "integrity": "sha512-0oP3QiNj3e8ewOaEpEJV/o6Zrmy2VarVvZ/bH7kyO/S/aJf9x8vQsKVWpsdmSiZ5DJEHgarFIXrnO0ZQf0P9iQ==", + "version": "22.14.5", + "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-22.14.5.tgz", + "integrity": "sha512-h+NANRdaA0PqGF15GKvorseWPzh1PXa/zx4I37//PIokW8eKIov8ky23foUSb55ZFWUHGpxQJux7y2NCfBtQeg==", "dev": true, "requires": { "@types/fs-extra": "^9.0.11", - "builder-util": "22.14.13", - "builder-util-runtime": "8.9.2", + "builder-util": "22.14.5", + "builder-util-runtime": "8.9.1", "chalk": "^4.1.1", "fs-extra": "^10.0.0", "lazy-val": "^1.0.5", @@ -4837,9 +4579,9 @@ }, "dependencies": { "fs-extra": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.1.tgz", - "integrity": "sha512-NbdoVMZso2Lsrn/QwLXOy6rm0ufY2zEOKCDzJR/0kBsb0E6qed0P3iYK+Ath3BfvXEeu4JhEtXLgILx5psUfag==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", + "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", "dev": true, "requires": { "graceful-fs": "^4.2.0", @@ -4865,15 +4607,11 @@ } } }, - "electron-tabs": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/electron-tabs/-/electron-tabs-0.15.0.tgz", - "integrity": "sha512-pGW5V+V9X1+b2muKndn7xsce6D89D5j7kt0j/+5nX/gwsIAnZ86axJDriOxVP20f8yN4sQkrYdUana3Wi3Ea0w==" - }, "emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true }, "encodeurl": { "version": "1.0.2", @@ -4913,7 +4651,8 @@ "escape-goat": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", - "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==" + "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", + "dev": true }, "escape-string-regexp": { "version": "4.0.0", @@ -4922,23 +4661,6 @@ "dev": true, "optional": true }, - "ext-list": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/ext-list/-/ext-list-2.2.2.tgz", - "integrity": "sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA==", - "requires": { - "mime-db": "^1.28.0" - } - }, - "ext-name": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ext-name/-/ext-name-5.0.0.tgz", - "integrity": "sha512-yblEwXAbGv1VQDmow7s38W77hzAgJAO50ztBLMcUyUBfxv1HC+LGwtiEN+Co6LtlqT/5uwVOxsD4TNIilWhwdQ==", - "requires": { - "ext-list": "^2.0.0", - "sort-keys-length": "^1.0.0" - } - }, "extract-zip": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz", @@ -5047,22 +4769,6 @@ "pump": "^3.0.0" } }, - "glasstron": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/glasstron/-/glasstron-0.1.1.tgz", - "integrity": "sha512-oLEMQM5wwdAQ44NrXD3wjk+b3dsfQG1XtkLn5pCxQNa3ri1AtWvvzpnhFUd88ZTmguHvkY4c3JKzcPSYaJAKKA==", - "requires": { - "node-addon-api": "^4.0.0", - "x11": "^2.3.0" - }, - "dependencies": { - "node-addon-api": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz", - "integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==" - } - } - }, "glob": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", @@ -5200,33 +4906,6 @@ "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", "dev": true }, - "http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", - "dev": true, - "requires": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" - } - }, - "https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", - "dev": true, - "requires": { - "agent-base": "6", - "debug": "4" - } - }, - "husky": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/husky/-/husky-7.0.4.tgz", - "integrity": "sha512-vbaCKN2QLtP/vD4yvs6iz6hBEo6wkSzs8HpRah1Z6aGmF2KW5PdYuAd7uX5a+OyBZHBhd+TFLqgjUgytQr4RvQ==", - "dev": true - }, "iconv-corefoundation": { "version": "1.1.7", "resolved": "https://registry.npmjs.org/iconv-corefoundation/-/iconv-corefoundation-1.1.7.tgz", @@ -5297,7 +4976,8 @@ "is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true }, "is-installed-globally": { "version": "0.4.0", @@ -5327,11 +5007,6 @@ "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", "dev": true }, - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" - }, "is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", @@ -5564,7 +5239,8 @@ "mime-db": { "version": "1.51.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", - "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==" + "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", + "dev": true }, "mime-types": { "version": "2.1.34", @@ -5602,11 +5278,6 @@ "minimist": "^1.2.5" } }, - "modify-filename": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/modify-filename/-/modify-filename-1.1.0.tgz", - "integrity": "sha1-mi3sg4Bvuy2XXyK+7IWcoms5OqE=" - }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -5688,11 +5359,6 @@ "wrappy": "1" } }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" - }, "p-cancelable": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", @@ -5711,11 +5377,6 @@ "semver": "^6.2.0" } }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" - }, "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", @@ -5764,12 +5425,6 @@ "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", "dev": true }, - "prettier": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.5.1.tgz", - "integrity": "sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg==", - "dev": true - }, "process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", @@ -5809,6 +5464,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", + "dev": true, "requires": { "escape-goat": "^2.0.0" } @@ -5992,6 +5648,8 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", + "dev": true, + "optional": true, "requires": { "ansi-styles": "^4.0.0", "astral-regex": "^2.0.0", @@ -6005,22 +5663,6 @@ "dev": true, "optional": true }, - "sort-keys": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", - "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", - "requires": { - "is-plain-obj": "^1.0.0" - } - }, - "sort-keys-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sort-keys-length/-/sort-keys-length-1.0.1.tgz", - "integrity": "sha1-nLb09OnkgVWmqgZx7dM2/xR5oYg=", - "requires": { - "sort-keys": "^1.0.0" - } - }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -6063,6 +5705,7 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -6073,6 +5716,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, "requires": { "ansi-regex": "^5.0.1" } @@ -6112,9 +5756,9 @@ }, "dependencies": { "fs-extra": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.1.tgz", - "integrity": "sha512-NbdoVMZso2Lsrn/QwLXOy6rm0ufY2zEOKCDzJR/0kBsb0E6qed0P3iYK+Ath3BfvXEeu4JhEtXLgILx5psUfag==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", + "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", "dev": true, "requires": { "graceful-fs": "^4.2.0", @@ -6250,15 +5894,6 @@ "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", "dev": true }, - "unused-filename": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unused-filename/-/unused-filename-2.1.0.tgz", - "integrity": "sha512-BMiNwJbuWmqCpAM1FqxCTD7lXF97AvfQC8Kr/DIeA6VtvhJaMDupZ82+inbjl5yVP44PcxOuCSxye1QMS0wZyg==", - "requires": { - "modify-filename": "^1.1.0", - "path-exists": "^4.0.0" - } - }, "update-notifier": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", @@ -6407,14 +6042,6 @@ "signal-exit": "^3.0.2" } }, - "x11": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/x11/-/x11-2.3.0.tgz", - "integrity": "sha1-vazO3M2sJIL9Vg8FEee/K9nh2/I=", - "requires": { - "os-homedir": "^1.0.1" - } - }, "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 4892560..a856ce4 100644 --- a/package.json +++ b/package.json @@ -1,15 +1,13 @@ { "name": "ArmCord", - "version": "3.1.0", + "version": "3.0.4", "description": "ArmCord is a custom client designed to enhance your Discord experience while keeping everything lightweight.", "main": "ts-out/main.js", "scripts": { - "build": "tsc && copyfiles -u 1 src/**/*.html src/**/**/*.css ts-out/ && copyfiles package.json ts-out/ && copyfiles assets/** ts-out/", + "build": "tsc && copyfiles -u 1 src/**/*.html src/**/*.css ts-out/ && copyfiles package.json ts-out/ && copyfiles assets/** ts-out/", "watch": "tsc -w", "start": "npm run build && electron ./ts-out/main.js", - "package": "npm run build && electron-builder", - "format": "prettier --write src/**/*", - "postinstall": "husky install" + "package": "npm run build && electron-builder" }, "repository": { "type": "git", @@ -25,17 +23,12 @@ "@types/electron-json-storage": "^4.5.0", "@types/node": "^14.18.2", "copyfiles": "^2.4.1", - "electron": "^17.1.0", - "electron-builder": "^22.14.13", - "husky": "^7.0.4", - "prettier": "^2.5.1", + "electron": "^16.0.7", + "electron-builder": "^22.14.5", "typescript": "^4.5.4" }, "dependencies": { - "electron-context-menu": "^3.1.2", "electron-json-storage": "^4.5.0", - "electron-tabs": "^0.15.0", - "glasstron": "^0.1.1", "v8-compile-cache": "^2.3.0" }, "build": { diff --git a/prettier.config.js b/prettier.config.js deleted file mode 100644 index d8902c1..0000000 --- a/prettier.config.js +++ /dev/null @@ -1,14 +0,0 @@ -module.exports = { - printWidth: 120, - tabWidth: 4, - useTabs: false, - semi: true, - singleQuote: false, - quoteProps: "as-needed", - jsxSingleQuote: false, - trailingComma: "none", - bracketSpacing: false, - jsxBracketSameLine: false, - arrowParens: "always", - endOfLine: "auto" -}; diff --git a/src/content/css/discord.css b/src/content/css/discord.css index 1b49a8b..2d3bdac 100644 --- a/src/content/css/discord.css +++ b/src/content/css/discord.css @@ -1,12 +1,12 @@ -.info-3pQQBb:last-child:before { - content: "ArmCord Version: 3.1.0" !important; - height: auto; - line-height: 16px; - text-align: center; - color: var(--text-muted); - font-size: 12px; - text-transform: none; +.info-1sUqUG:last-child:before { + content: "ArmCord Version: 3.1.0"!important; + height: auto; + line-height: 16px; + text-align: center; + color: var(--text-muted); + font-size: 12px; + text-transform: none; } .notice-2HEN-u { display: none; -} +} \ No newline at end of file diff --git a/src/content/css/setup.css b/src/content/css/setup.css index d848205..b138257 100644 --- a/src/content/css/setup.css +++ b/src/content/css/setup.css @@ -2,68 +2,68 @@ @import url("https://kckarnige.github.io/femboi_owo/discord-font.css"); :root { - background-color: #2c2f33 !important; - --header-secondary: #b9bbbe !important; - --header-primary: #fff !important; - --background-tertiary: #202225 !important; + background-color: #2c2f33 !important; + --header-secondary: #b9bbbe !important; + --header-primary: #fff !important; + --background-tertiary: #202225 !important; } body { - background-color: #2c2f33; - color: white; + background-color: #2c2f33; + color: white; } p { - color: white; - text-align: center; - font-weight: 100; - font-family: Whitney, Helvetica Neue, Helvetica, Arial, sans-serif; - text-rendering: optimizeLegibility; + color: white; + text-align: center; + font-weight: 100; + font-family: Whitney, Helvetica Neue, Helvetica, Arial, sans-serif; + text-rendering: optimizeLegibility; } .logo { - font-size: 0px; - text-align: center; - transform: translateY(-105%); + font-size: 0px; + text-align: center; + transform: translateY(-105%); } .logo:before { - content: "ARM"; - color: #7289da; - font-weight: normal; - font-family: Helvetica, sans-serif; - font-size: 32px; + content: "ARM"; + color: #7289da; + font-weight: normal; + font-family: Helvetica, sans-serif; + font-size: 32px; } .logo:after { - content: "Cord"; - color: #ffffff; - font-weight: normal; - font-family: Discordinated; - font-size: 32px; + content: "Cord"; + color: #ffffff; + font-weight: normal; + font-family: Discordinated; + font-size: 32px; } span { - text-align: center; + text-align: center; } .logo { - display: block; - margin-left: auto; - margin-right: auto; - max-height: 204px; - max-width: 204px; - transform: translateY(5%); + display: block; + margin-left: auto; + margin-right: auto; + max-height: 204px; + max-width: 204px; + transform: translateY(5%); } .container { - position: fixed; - top: 50%; - left: 50%; - color: #fff; - transform: translate(-50%, -50%); + position: fixed; + top: 50%; + left: 50%; + color: #fff; + transform: translate(-50%, -50%); } button#express { - margin-right: 84px; + margin-right: 84px; } button { background-color: #7289da; @@ -72,13 +72,13 @@ button { padding: 4px; border-radius: 5px; margin-top: 5px; - + text-align: center; border-style: none; outline: none; } .setup-ask { - font-size: 20px; + font-size: 20px; } button:hover { background-color: #687dc6; @@ -87,25 +87,25 @@ button:hover { cursor: pointer; } select { - -webkit-appearance: button; - -moz-appearance: button; - -webkit-padding-end: 20px; - -moz-padding-end: 20px; - -webkit-padding-start: 2px; - -moz-padding-start: 2px; - background-color: #2c2f33; - background-position: center right; - background-repeat: no-repeat; - border: 1px solid #aaa; - border-radius: 2px; - box-shadow: 0px 1px 3px rgba(0, 0, 0, 0.1); - color: #fff; - font-size: inherit; - margin: 0; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; + -webkit-appearance: button; + -moz-appearance: button; + -webkit-padding-end: 20px; + -moz-padding-end: 20px; + -webkit-padding-start: 2px; + -moz-padding-start: 2px; + background-color: #2c2f33; + background-position: center right; + background-repeat: no-repeat; + border: 1px solid #aaa; + border-radius: 2px; + box-shadow: 0px 1px 3px rgba(0, 0, 0, 0.1); + color: #fff; + font-size: inherit; + margin: 0; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; } .center { - text-align: center; -} + text-align: center; +} \ No newline at end of file diff --git a/src/content/css/splash.css b/src/content/css/splash.css index 88af543..710813e 100644 --- a/src/content/css/splash.css +++ b/src/content/css/splash.css @@ -20,95 +20,95 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.*/ :root { - --background-primary: #282b30; - --background-secondary: rgba(255, 255, 255, 0.1); - --brand-experiment: #5865f2; - --header-primary: #fff; - --text-muted: #72767d; + --background-primary: #282b30; + --background-secondary: rgba(255, 255, 255, 0.1); + --brand-experiment: #5865f2; + --header-primary: #fff; + --text-muted: #72767d; } @font-face { - font-family: Whitney; - font-weight: 400; - font-style: normal; - src: url(https://armcord.smartfridge.space/whitney_400.woff) format("woff"); + font-family: Whitney; + font-weight: 400; + font-style: normal; + src: url(https://armcord.smartfridge.space/whitney_400.woff) format("woff"); } html, body { - -webkit-app-region: drag; - overflow: hidden; + -webkit-app-region: drag; + overflow: hidden; - margin: 0; - padding: 0; - width: 100%; - height: 100%; + margin: 0; + padding: 0; + width: 100%; + height: 100%; - background: var(--background-primary); + background: var(--background-primary); - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; } * { - font-family: "Whitney", sans-serif; + font-family: "Whitney", sans-serif; - box-sizing: border-box; - -webkit-user-select: none; - cursor: default; + box-sizing: border-box; + -webkit-user-select: none; + cursor: default; } video { - width: 200px; - height: 150px; - object-fit: cover; + width: 200px; + height: 150px; + object-fit: cover; } #text-splashscreen { - font-size: 7vw; - text-align: center; + font-size: 7vw; + text-align: center; - color: var(--header-primary); - font-weight: 400; - font-style: italic; - font-size: 16px; + color: var(--header-primary); + font-weight: 400; + font-style: italic; + font-size: 16px; - text-transform: uppercase; + text-transform: uppercase; - width: 100%; + width: 100%; } #bar-container, #bar-fill { - width: 180px; - height: 8px; + width: 180px; + height: 8px; - border-radius: 4px; + border-radius: 4px; - visibility: hidden; + visibility: hidden; } #bar-container { - background-color: var(--background-secondary); + background-color: var(--background-secondary); - position: relative; - margin-top: 12px; + position: relative; + margin-top: 12px; } #bar-fill { - background-color: var(--brand-experiment); - width: 0; + background-color: var(--brand-experiment); + width: 0; } #debug { - position: absolute; - bottom: 6px; - right: 6px; + position: absolute; + bottom: 6px; + right: 6px; - text-align: right; - font-size: 10px; - color: var(--text-muted); - white-space: pre; + text-align: right; + font-size: 10px; + color: var(--text-muted); + white-space: pre; } diff --git a/src/content/css/tabs.css b/src/content/css/tabs.css deleted file mode 100644 index fe88f80..0000000 --- a/src/content/css/tabs.css +++ /dev/null @@ -1,53 +0,0 @@ -@import url("https://kckarnige.github.io/femboi_owo/discord-font.css"); -:root { - --window-buttons: var(--header-secondary); - --cord-color: var(--header-primary); - --armcord-color: #7289da; - --titlebar-color: var(--background-tertiary); -} -.tabs { - display: block; - top: 0; - left: 0; - right: 0; - flex-shrink: 0; - overflow: hidden; - zoom: 1; - box-sizing: border-box; - width: 100%; - clear: both; - height: 30px; - line-height: 30px; - background-color: #202225; - -webkit-app-region: drag; - width: 100%; - user-select: none; - -webkit-user-select: none; - position: fixed; - z-index: 99999; -} - -.tabs #tabs-controls-container { - float: left; - width: 150px; - height: 100%; - line-height: 30px; - background-color: #202225; - -webkit-app-region: no-drag; -} -.tabs-buttons { - color: white; - background-color: inherit; - float: left; - border: none; - outline: none; - cursor: pointer; - transition: 0.3s; - font-size: 20px; -} -.tabs-buttons:hover { - background-color: #4e515a; -} -.withFrame-haYltI { - height: 30px !important; -} diff --git a/src/content/css/titlebar.css b/src/content/css/titlebar.css index d29f54f..6c5df04 100644 --- a/src/content/css/titlebar.css +++ b/src/content/css/titlebar.css @@ -1,108 +1,108 @@ -@import url("https://armcord.smartfridge.space/logofont.css"); +@import url("https://kckarnige.github.io/femboi_owo/discord-font.css"); :root { - --window-buttons: var(--header-secondary); - --cord-color: var(--header-primary); - --armcord-color: #7289da; - --titlebar-color: var(--background-tertiary); + --window-buttons: var(--header-secondary); + --cord-color: var(--header-primary); + --armcord-color: #7289da; + --titlebar-color: var(--background-tertiary); } .titlebar { - display: block; - top: 0; - left: 0; - right: 0; - flex-shrink: 0; - overflow: hidden; - zoom: 1; - box-sizing: border-box; - width: 100%; - clear: both; - height: 30px; - line-height: 30px; - background-color: #202225; - -webkit-app-region: drag; - width: 100%; - user-select: none; - -webkit-user-select: none; - position: fixed; - z-index: 99999; + display: block; + top: 0; + left: 0; + right: 0; + flex-shrink: 0; + overflow: hidden; + zoom: 1; + box-sizing: border-box; + width: 100%; + clear: both; + height: 30px; + line-height: 30px; + background-color: #202225; + -webkit-app-region: drag; + width: 100%; + user-select: none; + -webkit-user-select: none; + position: fixed; + z-index: 99999; } .titlebar #window-title { - width: 30%; - height: 100%; - line-height: 30px; - float: left; - padding: 0 0 0 1em; + width: 30%; + height: 100%; + line-height: 30px; + float: left; + padding: 0 0 0 1em; } .titlebar #window-controls-container { - float: right; - width: 150px; - height: 100%; - line-height: 30px; - background-color: #202225; - -webkit-app-region: no-drag; + float: right; + width: 150px; + height: 100%; + line-height: 30px; + background-color: #202225; + -webkit-app-region: no-drag; } .titlebar #window-controls-container #minimize, .titlebar #window-controls-container #maximize, .titlebar #window-controls-container #quit { - float: left; - height: 100%; - width: 33%; - text-align: center; - color: #f7f7f7; - cursor: default; + float: left; + height: 100%; + width: 33%; + text-align: center; + color: #f7f7f7; + cursor: default; } .titlebar #window-controls-container #minimize:hover { - background-color: #99aab5; + background-color: #99aab5; } .titlebar #window-controls-container #maximize:hover { - background-color: #99aab5; + background-color: #99aab5; } .titlebar #window-controls-container #quit:hover { - background-color: #f04747; + background-color: #f04747; } .titlebar #window-controls-container #quit { - background-color: #f7f7f7; - -webkit-mask: url("data:image/svg+xml;charset=utf-8,%3Csvg width='11' height='11' viewBox='0 0 11 11' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6.279 5.5L11 10.221l-.779.779L5.5 6.279.779 11 0 10.221 4.721 5.5 0 .779.779 0 5.5 4.721 10.221 0 11 .779 6.279 5.5z' fill='%23000'/%3E%3C/svg%3E") - no-repeat 50% 50%; - mask: url("data:image/svg+xml;charset=utf-8,%3Csvg width='11' height='11' viewBox='0 0 11 11' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6.279 5.5L11 10.221l-.779.779L5.5 6.279.779 11 0 10.221 4.721 5.5 0 .779.779 0 5.5 4.721 10.221 0 11 .779 6.279 5.5z' fill='%23000'/%3E%3C/svg%3E") - no-repeat 50% 50%; + background-color: #f7f7f7; + -webkit-mask: url("data:image/svg+xml;charset=utf-8,%3Csvg width='11' height='11' viewBox='0 0 11 11' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6.279 5.5L11 10.221l-.779.779L5.5 6.279.779 11 0 10.221 4.721 5.5 0 .779.779 0 5.5 4.721 10.221 0 11 .779 6.279 5.5z' fill='%23000'/%3E%3C/svg%3E") + no-repeat 50% 50%; + mask: url("data:image/svg+xml;charset=utf-8,%3Csvg width='11' height='11' viewBox='0 0 11 11' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6.279 5.5L11 10.221l-.779.779L5.5 6.279.779 11 0 10.221 4.721 5.5 0 .779.779 0 5.5 4.721 10.221 0 11 .779 6.279 5.5z' fill='%23000'/%3E%3C/svg%3E") + no-repeat 50% 50%; } .titlebar #window-controls-container #minimize { - background-color: #f7f7f7; - -webkit-mask: url("data:image/svg+xml;charset=utf-8,%3Csvg width='11' height='11' viewBox='0 0 11 11' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M11 4.399V5.5H0V4.399h11z' fill='%23000'/%3E%3C/svg%3E") - no-repeat 50% 50%; - mask: url("data:image/svg+xml;charset=utf-8,%3Csvg width='11' height='11' viewBox='0 0 11 11' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M11 4.399V5.5H0V4.399h11z' fill='%23000'/%3E%3C/svg%3E") - no-repeat 50% 50%; + background-color: #f7f7f7; + -webkit-mask: url("data:image/svg+xml;charset=utf-8,%3Csvg width='11' height='11' viewBox='0 0 11 11' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M11 4.399V5.5H0V4.399h11z' fill='%23000'/%3E%3C/svg%3E") + no-repeat 50% 50%; + mask: url("data:image/svg+xml;charset=utf-8,%3Csvg width='11' height='11' viewBox='0 0 11 11' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M11 4.399V5.5H0V4.399h11z' fill='%23000'/%3E%3C/svg%3E") + no-repeat 50% 50%; } .titlebar #window-controls-container #maximize { - background-color: #f7f7f7; - -webkit-mask: url("data:image/svg+xml;charset=utf-8,%3Csvg width='11' height='11' viewBox='0 0 11 11' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M11 0v11H0V0h11zM9.899 1.101H1.1V9.9h8.8V1.1z' fill='%23000'/%3E%3C/svg%3E") - no-repeat 50% 50%; - mask: url("data:image/svg+xml;charset=utf-8,%3Csvg width='11' height='11' viewBox='0 0 11 11' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M11 0v11H0V0h11zM9.899 1.101H1.1V9.9h8.8V1.1z' fill='%23000'/%3E%3C/svg%3E") - no-repeat 50% 50%; + background-color: #f7f7f7; + -webkit-mask: url("data:image/svg+xml;charset=utf-8,%3Csvg width='11' height='11' viewBox='0 0 11 11' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M11 0v11H0V0h11zM9.899 1.101H1.1V9.9h8.8V1.1z' fill='%23000'/%3E%3C/svg%3E") + no-repeat 50% 50%; + mask: url("data:image/svg+xml;charset=utf-8,%3Csvg width='11' height='11' viewBox='0 0 11 11' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M11 0v11H0V0h11zM9.899 1.101H1.1V9.9h8.8V1.1z' fill='%23000'/%3E%3C/svg%3E") + no-repeat 50% 50%; } .window-title:after { - content: "Cord"; - color: var(--cord-color) !important; - font-weight: normal; - font-size: 14px; - font-family: Discordinated; + content: "Cord"; + color: var(--cord-color) !important; + font-weight: normal; + font-size: 14px; + font-family: Discordinated; } .window-title:before { - content: "ARM"; - color: var(--armcord-color); - font-weight: normal; - font-size: 14px; - font-family: Helvetica, sans-serif; + content: "ARM"; + color: var(--armcord-color); + font-weight: normal; + font-size: 14px; + font-family: Helvetica, sans-serif; } .window-title { - font-size: 0px !important; - margin-left: initial !important; - transform: translate(10px, 0px); + font-size: 0px !important; + margin-left: initial !important; + transform: translate(10px, 0px); } .withFrame-haYltI { - height: 30px !important; + height: 30px !important; } diff --git a/src/content/settings.html b/src/content/settings.html new file mode 100644 index 0000000..6fe5ab8 --- /dev/null +++ b/src/content/settings.html @@ -0,0 +1 @@ +

settings, really cool

\ No newline at end of file diff --git a/src/content/setup.html b/src/content/setup.html index cdca768..f805f89 100644 --- a/src/content/setup.html +++ b/src/content/setup.html @@ -1,60 +1,55 @@ - - - - - ArmCord Setup - - + + + + ArmCord Setup + + - -
-

-
-

Select what kind of setup you want to perform:

- - -
-
- - + document + .getElementById("next") + .addEventListener("click", function () { + var mod = document.getElementById("mod").value; + window.armcordinternal.saveSettings(true, branch, true, mod); + fade(document.getElementById("setup")); + setTimeout(function () { + window.armcordinternal.restart(); + }, 5000); + }); + } else { + //saveSettings(customTitlebarSetting: boolean, channelSetting: string, armcordCSPSetting: boolean, modsSetting: string) + window.armcordinternal.saveSettings(true, branch, true, "none"); + fade(document.getElementById("setup")); + setTimeout(function () { + window.armcordinternal.restart() + }, 5000); + } + }); + }); + } + + diff --git a/src/content/splash.html b/src/content/splash.html index 5d6f18c..ba0327d 100644 --- a/src/content/splash.html +++ b/src/content/splash.html @@ -1,63 +1,68 @@ - - - ArmCord - - + + + ArmCord + + - -
- -

-
- - + +
+ +

+
+ + diff --git a/src/extensions/mods.ts b/src/extensions/mods.ts index 4872cfb..6dfc5d6 100644 --- a/src/extensions/mods.ts +++ b/src/extensions/mods.ts @@ -11,55 +11,59 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI import electron from "electron"; import * as storage from "electron-json-storage"; const otherMods = { - generic: { - electronProxy: require("util").types.isProxy(electron) // Many modern mods overwrite electron with a proxy with a custom BrowserWindow (copied from PowerCord) - } + generic: { + electronProxy: require("util").types.isProxy(electron), // Many modern mods overwrite electron with a proxy with a custom BrowserWindow (copied from PowerCord) + }, }; const unstrictCSP = () => { - console.log("Setting up CSP unstricter..."); + console.log("Setting up CSP unstricter..."); - const cspAllowAll = ["connect-src", "style-src", "img-src", "font-src"]; + const cspAllowAll = ["connect-src", "style-src", "img-src", "font-src"]; - const corsAllowUrls = [ - "https://github.com/GooseMod/GooseMod/releases/download/dev/index.js", - "https://github-releases.githubusercontent.com/", - "https://api.goosemod.com/inject.js", - "https://raw.githubusercontent.com/Cumcord/Cumcord/stable/dist/build.js", - "https://raw.githubusercontent.com/Cumcord/Cumcord/master/dist/build.js", - "https://raw.githubusercontent.com/FlickerMod/dist/main/build.js" - ]; + const corsAllowUrls = [ + "https://github.com/GooseMod/GooseMod/releases/download/dev/index.js", + "https://github-releases.githubusercontent.com/", + "https://api.goosemod.com/inject.js", + "https://raw.githubusercontent.com/Cumcord/Cumcord/stable/dist/build.js", + "https://raw.githubusercontent.com/Cumcord/Cumcord/master/dist/build.js", + "https://raw.githubusercontent.com/FlickerMod/dist/main/build.js", + ]; - electron.session.defaultSession.webRequest.onHeadersReceived(({responseHeaders, url}, done) => { - let csp = responseHeaders!["content-security-policy"]; + electron.session.defaultSession.webRequest.onHeadersReceived( + ({ responseHeaders, url }, done) => { + let csp = responseHeaders!["content-security-policy"]; - if (otherMods.generic.electronProxy) { - // Since patch v16, override other mod's onHeadersRecieved (Electron only allows 1 listener); because they rely on 0 CSP at all (GM just unrestricts some areas), remove it fully if we detect other mods - delete responseHeaders!["content-security-policy"]; - csp = []; + if (otherMods.generic.electronProxy) { + // Since patch v16, override other mod's onHeadersRecieved (Electron only allows 1 listener); because they rely on 0 CSP at all (GM just unrestricts some areas), remove it fully if we detect other mods + delete responseHeaders!["content-security-policy"]; + csp = []; + } + + if (csp) { + for (let p of cspAllowAll) { + csp[0] = csp[0].replace(`${p}`, `${p} * blob: data:`); // * does not include data: URIs } - if (csp) { - for (let p of cspAllowAll) { - csp[0] = csp[0].replace(`${p}`, `${p} * blob: data:`); // * does not include data: URIs - } + // Fix Discord's broken CSP which disallows unsafe-inline due to having a nonce (which they don't even use?) + csp[0] = csp[0].replace(/'nonce-.*?' /, ""); + } - // Fix Discord's broken CSP which disallows unsafe-inline due to having a nonce (which they don't even use?) - csp[0] = csp[0].replace(/'nonce-.*?' /, ""); - } + if (corsAllowUrls.some((x) => url.startsWith(x))) { + responseHeaders!["access-control-allow-origin"] = ["*"]; + } - if (corsAllowUrls.some((x) => url.startsWith(x))) { - responseHeaders!["access-control-allow-origin"] = ["*"]; - } - - done({responseHeaders}); - }); + done({ responseHeaders }); + } + ); }; storage.get("settings", function (error, data: any) { - if (error) throw error; - if (data.armcordCSP) { - unstrictCSP(); - } else { - console.log("ArmCord CSP is disabled. The CSP should be managed by third-party plugin."); - } + if (error) throw error; + if (data.armcordCSP) { + unstrictCSP(); + } else { + console.log( + "ArmCord CSP is disabled. The CSP should be managed by third-party plugin." + ); + } }); diff --git a/src/extensions/plugin.ts b/src/extensions/plugin.ts index cb1a064..18d85f2 100644 --- a/src/extensions/plugin.ts +++ b/src/extensions/plugin.ts @@ -1,20 +1,26 @@ -import * as fs from "fs"; -import {app, session} from "electron"; +import * as fs from 'fs'; +import { app, session } from 'electron'; const userDataPath = app.getPath("userData"); const pluginFolder = userDataPath + "/plugins/"; if (!fs.existsSync(pluginFolder)) { fs.mkdirSync(pluginFolder); console.log("Created missing plugin folder"); -} + } app.whenReady().then(() => { - fs.readdirSync(pluginFolder).forEach((file) => { - try { - const manifest = fs.readFileSync(`${userDataPath}/plugins/${file}/manifest.json`, "utf8"); - var pluginFile = JSON.parse(manifest); - session.defaultSession.loadExtension(`${userDataPath}/plugins/${file}`); - console.log(`%cLoaded ${pluginFile.name} made by ${pluginFile.author}`, "color:red"); - } catch (err) { - console.error(err); - } - }); + fs.readdirSync(pluginFolder).forEach((file) => { + try { + const manifest = fs.readFileSync( + `${userDataPath}/plugins/${file}/manifest.json`, + "utf8" + ); + var pluginFile = JSON.parse(manifest); + session.defaultSession.loadExtension(`${userDataPath}/plugins/${file}`); + console.log( + `%cLoaded ${pluginFile.name} made by ${pluginFile.author}`, + "color:red" + ); + } catch (err) { + console.error(err); + } + }); }); diff --git a/src/ipc.ts b/src/ipc.ts index f5cbcc2..9b62ac0 100644 --- a/src/ipc.ts +++ b/src/ipc.ts @@ -1,81 +1,70 @@ //ipc stuff -import {app, ipcMain, shell, desktopCapturer} from "electron"; -import {createTabsGuest, mainWindow} from "./window"; -import {saveSettings, getVersion} from "./utils"; -import {settings, customTitlebar, tabs} from "./main"; -import {createSettingsWindow} from "./settings/main"; +import { app, ipcMain, shell, desktopCapturer } from "electron"; +import { mainWindow } from "./window"; +import { saveSettings, getVersion } from "./utils"; +import { settings, customTitlebar } from "./main"; +import { createSettingsWindow } from "./settings/main"; export function registerIpc() { - ipcMain.on("get-app-path", (event, arg) => { - event.reply("app-path", app.getAppPath()); - }); - ipcMain.on("openTab", (event, number: number) => { - createTabsGuest(number); - }); - ipcMain.on("open-external-link", (event, href: string) => { - shell.openExternal(href); - }); - ipcMain.on("win-maximize", (event, arg) => { - mainWindow.maximize(); - }); - ipcMain.on("win-isMaximized", (event, arg) => { - event.returnValue = mainWindow.isMaximized(); - }); - ipcMain.on("win-minimize", (event, arg) => { - mainWindow.minimize(); - }); - ipcMain.on("win-unmaximize", (event, arg) => { - mainWindow.unmaximize(); - }); - ipcMain.on("win-show", (event, arg) => { - mainWindow.show(); - }); - ipcMain.on("win-hide", (event, arg) => { - mainWindow.hide(); - }); - ipcMain.on("win-quit", (event, arg) => { - app.exit(); - }); - ipcMain.on("get-app-version", (event) => { - event.returnValue = getVersion(); - }); - ipcMain.on("splashEnd", (event, arg) => { - mainWindow.setSize(800, 600); - }); - ipcMain.on("restart", (event, arg) => { - app.relaunch(); - app.exit(); - }); - ipcMain.on("saveSettings", (event, args) => { - saveSettings(args); - }); - ipcMain.on("minimizeToTray", (event) => { - console.log(settings.minimizeToTray); - event.returnValue = settings.minimizeToTray; - }); - ipcMain.on("channel", (event) => { - event.returnValue = settings.channel; - }); - ipcMain.on("clientmod", (event, arg) => { - event.returnValue = settings.mods; - }); - ipcMain.on("titlebar", (event, arg) => { - event.returnValue = customTitlebar; - }); - ipcMain.on("tabs", (event, arg) => { - event.returnValue = tabs; - }); - ipcMain.on("shouldPatch", (event, arg) => { - event.returnValue = settings.automaticPatches; - }); - ipcMain.on("openSettingsWindow", (event, arg) => { - createSettingsWindow(); - }); - ipcMain.on("setting-armcordCSP", (event) => { - if (settings.armcordCSP) { - event.returnValue = true; - } else { - event.returnValue = false; - } - }); - ipcMain.handle("DESKTOP_CAPTURER_GET_SOURCES", (event, opts) => desktopCapturer.getSources(opts)); + ipcMain.on("get-app-path", (event, arg) => { + event.reply("app-path", app.getAppPath()); + }); + ipcMain.on("open-external-link", (event, href: string) => { + shell.openExternal(href); + }); + ipcMain.on("win-maximize", (event, arg) => { + mainWindow.maximize(); + }); + ipcMain.on("win-isMaximized", (event, arg) => { + event.returnValue = mainWindow.isMaximized(); + }); + ipcMain.on("win-minimize", (event, arg) => { + mainWindow.minimize(); + }); + ipcMain.on("win-unmaximize", (event, arg) => { + mainWindow.unmaximize(); + }); + ipcMain.on("win-show", (event, arg) => { + mainWindow.show(); + }); + ipcMain.on("win-hide", (event, arg) => { + mainWindow.hide(); + }); + ipcMain.on("get-app-version", (event) => { + event.returnValue = getVersion(); + }); + ipcMain.on("splashEnd", (event, arg) => { + mainWindow.setSize(800, 600); + }); + ipcMain.on("restart", (event, arg) => { + app.relaunch(); + app.exit(); + }); + + ipcMain.on("saveSettings", (event, ...args) => { + //@ts-ignore + saveSettings(...args); + }); + ipcMain.on("channel", (event) => { + event.returnValue = settings.channel; + }); + ipcMain.on("clientmod", (event, arg) => { + event.returnValue = settings.mods; + }); + ipcMain.on("titlebar", (event, arg) => { + event.returnValue = customTitlebar; + }); + ipcMain.on("openSettingsWindow", (event, arg) => { + createSettingsWindow(); + }); + ipcMain.on("setting-armcordCSP", (event) => { + if (settings.armcordCSP) { + event.returnValue = true; + } else { + event.returnValue = false; + } + }); + ipcMain.handle("DESKTOP_CAPTURER_GET_SOURCES", (event, opts) => + desktopCapturer.getSources(opts) + ); + } diff --git a/src/main.ts b/src/main.ts index 3970428..de8e4db 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,108 +1,90 @@ // Modules to control application life and create native browser window -import {app, BrowserWindow, session} from "electron"; +import { + app, + BrowserWindow, + session, +} from "electron"; import * as path from "path"; import "v8-compile-cache"; import * as storage from "electron-json-storage"; -import {getConfigUnsafe, setup} from "./utils"; +import { getConfigUnsafe, setup } from "./utils"; import "./extensions/mods"; import "./extensions/plugin"; import "./tray"; -import {mainWindow, createCustomWindow, createNativeWindow, createGlasstronWindow, createTabsHost} from "./window"; +import { mainWindow, createCustomWindow, createNativeWindow } from "./window"; import "./shortcuts"; export var contentPath: string; var channel: string; export var settings: any; export var customTitlebar: boolean; -export var tabs: boolean; -async function appendSwitch() { - if ((await getConfigUnsafe("windowStyle")) == "glasstron") { - console.log("Enabling transparency visuals."); - app.commandLine.appendSwitch("enable-transparent-visuals"); - } -} -appendSwitch(); storage.has("settings", function (error, hasKey) { - if (error) throw error; + if (error) throw error; - if (!hasKey) { - console.log("First run of the ArmCord. Starting setup."); - setup(); - contentPath = path.join(__dirname, "/content/setup.html"); - if (!contentPath.includes("ts-out")) { - contentPath = path.join(__dirname, "/ts-out/content/setup.html"); - } - } else { - console.log("ArmCord has been run before. Skipping setup."); - contentPath = path.join(__dirname, "/content/splash.html"); - if (!contentPath.includes("ts-out")) { - contentPath = path.join(__dirname, "/ts-out/content/splash.html"); - } + if (!hasKey) { + console.log("First run of the ArmCord. Starting setup."); + setup(); + contentPath = path.join(__dirname, "/content/setup.html"); + if (!contentPath.includes("ts-out")) { + contentPath = path.join(__dirname, "/ts-out/content/setup.html"); } + } else { + console.log("ArmCord has been run before. Skipping setup."); + contentPath = path.join(__dirname, "/content/splash.html"); + if (!contentPath.includes("ts-out")) { + contentPath = path.join(__dirname, "/ts-out/content/splash.html"); + } + } }); storage.get("settings", function (error, data: any) { - if (error) throw error; - console.log(data); - channel = data.channel; - settings = data; + if (error) throw error; + console.log(data); + channel = data.channel; + settings = data; }); app.whenReady().then(async () => { - switch (await getConfigUnsafe("windowStyle")) { - case "default": - createCustomWindow(); - customTitlebar = true; - break; - case "native": - createNativeWindow(); - break; - case "glasstron": - setTimeout( - createGlasstronWindow, - process.platform == "linux" ? 1000 : 0 - // Electron has a bug on linux where it - // won't initialize properly when using - // transparency. To work around that, it - // is necessary to delay the window - // spawn function. - ); - break; - case "tabs": - createTabsHost(); - tabs = true; - break; - default: - createCustomWindow(); - customTitlebar = true; - break; + if (await getConfigUnsafe("customTitlebar") == true) { + console.log("Creating custom titlebar window."); + customTitlebar = true; + createCustomWindow(); + } else if (await getConfigUnsafe("customTitlebar") == "setup") { + //rare case of setup window + console.log("Creating setup window."); + customTitlebar = true; + createCustomWindow(); + } else { + console.log("Creating native titlebar window."); + customTitlebar = false; + createNativeWindow(); + } + session + .fromPartition("some-partition") + .setPermissionRequestHandler((webContents, permission, callback) => { + if (permission === "notifications") { + // Approves the permissions request + callback(true); + } + if (permission === "media") { + // Approves the permissions request + callback(true); + } + }); + mainWindow.webContents.session.webRequest.onBeforeRequest( + (details, callback) => { + if (/api\/v\d\/science$/g.test(details.url)) + return callback({ cancel: true }); + return callback({}); } - session.fromPartition("some-partition").setPermissionRequestHandler((webContents, permission, callback) => { - if (permission === "notifications") { - // Approves the permissions request - callback(true); - } - if (permission === "media") { - // Approves the permissions request - callback(true); - } - }); - app.on("activate", async function () { - if (BrowserWindow.getAllWindows().length === 0) - switch (await getConfigUnsafe("windowStyle")) { - case "default": - createCustomWindow(); - break; - case "native": - createNativeWindow(); - break; - case "glasstron": - createGlasstronWindow(); - break; - default: - createCustomWindow(); - break; - } - }); + ); + app.on("activate", function () { + if (BrowserWindow.getAllWindows().length === 0) + if (!settings.customTitlebar) { + createNativeWindow(); + } else { + createCustomWindow(); + } + }); }); app.on("window-all-closed", function () { - if (process.platform !== "darwin") app.quit(); + if (process.platform !== "darwin") app.quit(); }); diff --git a/src/preload/bridge.ts b/src/preload/bridge.ts index 23fe888..c65300f 100644 --- a/src/preload/bridge.ts +++ b/src/preload/bridge.ts @@ -1,30 +1,32 @@ -import {contextBridge, ipcRenderer} from "electron"; -import {getDisplayMediaSelector} from "./capturer"; -import {injectTitlebar} from "./titlebar"; +import { contextBridge, ipcRenderer } from "electron"; +import { getDisplayMediaSelector } from "./capturer"; +import { injectTitlebar } from "./titlebar"; contextBridge.exposeInMainWorld("armcord", { - window: { - show: () => ipcRenderer.send("win-show"), - hide: () => ipcRenderer.send("win-hide"), - minimize: () => ipcRenderer.send("win-minimize"), - maximize: () => ipcRenderer.send("win-maximize") - }, - titlebar: { - injectTitlebar: () => injectTitlebar(), - isTitlebar: ipcRenderer.sendSync("titlebar") - }, - electron: process.versions.electron, - channel: ipcRenderer.sendSync("channel"), - openTab: (number: number) => ipcRenderer.sendSync("openTab", number), - version: ipcRenderer.sendSync("get-app-version", "app-version"), - getDisplayMediaSelector: getDisplayMediaSelector, - openSettingsWindow: () => ipcRenderer.send("openSettingsWindow") + window: { + show: () => ipcRenderer.send("win-show"), + hide: () => ipcRenderer.send("win-hide"), + minimize: () => ipcRenderer.send("win-minimize"), + maximize: () => ipcRenderer.send("win-maximize"), + }, + titlebar: { + injectTitlebar: () => injectTitlebar(), + isTitlebar: ipcRenderer.sendSync("titlebar"), + }, + electron: process.versions.electron, + channel: ipcRenderer.sendSync("channel"), + version: ipcRenderer.sendSync("get-app-version", "app-version"), + getDisplayMediaSelector: getDisplayMediaSelector, + openSettingsWindow: () => ipcRenderer.send("openSettingsWindow"), }); //to be only used inside armcord internal setup/splash etc -if (window.location.href.indexOf("splash.html") > -1 || window.location.href.indexOf("setup.html") > -1) { - contextBridge.exposeInMainWorld("armcordinternal", { - restart: () => ipcRenderer.send("restart"), - saveSettings: (...args: any) => ipcRenderer.send("saveSettings", ...args), - splashEnd: () => ipcRenderer.send("splashEnd") - }); -} +if ( + window.location.href.indexOf("splash.html") > -1 || + window.location.href.indexOf("setup.html") > -1 +) { + contextBridge.exposeInMainWorld("armcordinternal", { + restart: () => ipcRenderer.send("restart"), + saveSettings: (...args: any) => ipcRenderer.send("saveSettings", ...args), + splashEnd: () => ipcRenderer.send("splashEnd"), + }); +} \ No newline at end of file diff --git a/src/preload/capturer.ts b/src/preload/capturer.ts index 2f6d8ed..1369560 100644 --- a/src/preload/capturer.ts +++ b/src/preload/capturer.ts @@ -1,36 +1,28 @@ //Fixed context isolation version https://github.com/getferdi/ferdi/blob/develop/src/webview/screenshare.ts //original https://github.com/electron/electron/issues/16513#issuecomment-602070250 -import {ipcRenderer} from "electron"; -import {addStyle, addScript} from "../utils"; -const desktopCapturer = { - getSources: (opts: any) => ipcRenderer.invoke("DESKTOP_CAPTURER_GET_SOURCES", opts) -}; -const CANCEL_ID = "desktop-capturer-selection__cancel"; +import { desktopCapturer } from 'electron'; +import {addStyle, addScript} from '../utils'; -interface IPCSources { - id: string; - name: string; - thumbnail: HTMLCanvasElement; -} +const CANCEL_ID = 'desktop-capturer-selection__cancel'; export async function getDisplayMediaSelector() { - const sources: IPCSources[] = await desktopCapturer.getSources({ - types: ["screen", "window"] - }); - return `
+ const sources = await desktopCapturer.getSources({ + types: ['screen', 'window'], + }); + return `
- `; - elem.classList.add("withFrame-haYltI"); - if (document.getElementById("app-mount") == null) { - document.body.appendChild(elem); - } else { - document.getElementById("app-mount")!.prepend(elem); - } - const cssPath = path.join(__dirname, "../", "/content/css/tabs.css"); - addStyle(fs.readFileSync(cssPath, "utf8")); - }); -} diff --git a/src/preload/titlebar.ts b/src/preload/titlebar.ts index 5e103ef..a48952c 100644 --- a/src/preload/titlebar.ts +++ b/src/preload/titlebar.ts @@ -1,11 +1,11 @@ -import {ipcRenderer} from "electron"; -import {addStyle} from "../utils"; +import { ipcRenderer } from "electron"; +import { addStyle } from "../utils"; import * as fs from "fs"; import * as path from "path"; export function injectTitlebar() { - document.addEventListener("DOMContentLoaded", function (event) { - var elem = document.createElement("div"); - elem.innerHTML = `