From d4e9ebb830d3daec9a84fbed45705ead4e4a5b3b Mon Sep 17 00:00:00 2001 From: Richard Jacobse Date: Sun, 16 Oct 2022 12:32:22 +0200 Subject: [PATCH] ci: github publishing --- .github/workflows/build.yaml | 121 +++++++++++++++++++++++ forge.config.js | 75 +++++++++++++++ icons/icon.svg | 16 ++++ main.js | 2 + package.json | 51 ++-------- yarn.lock | 179 ++++++++++++++++++++++++++++++++++- 6 files changed, 399 insertions(+), 45 deletions(-) create mode 100644 .github/workflows/build.yaml create mode 100644 forge.config.js create mode 100644 icons/icon.svg diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml new file mode 100644 index 0000000..79919c5 --- /dev/null +++ b/.github/workflows/build.yaml @@ -0,0 +1,121 @@ +name: Build & Release + +on: + push: + branches: + - main + tags: + - v* + pull_request: + +jobs: + test: + name: Test (${{ matrix.os }} - ${{ matrix.arch }}) + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ macOS-latest, ubuntu-latest, windows-latest ] + arch: [ x64 ] + include: + - os: macOS-latest + arch: arm64 + steps: + - uses: actions/checkout@v3 + - name: Setup Node.js + uses: actions/setup-node@v3.5.0 + with: + node-version: 16.x + cache: yarn + - name: Install + run: yarn --frozen-lockfile --network-timeout 100000 || yarn --frozen-lockfile --network-timeout 100000 || yarn --frozen-lockfile --network-timeout 100000 + - name: Create fake contributors + uses: 1arp/create-a-file-action@0.2 + with: + path: 'static' + file: 'contributors.json' + content: "[]" +# - name: lint +# run: yarn lint +# - name: test +# run: yarn test:ci +# - name: Coveralls +# if: matrix.os == 'ubuntu-latest' +# uses: coverallsapp/github-action@1.1.3 +# with: +# github-token: ${{ secrets.GITHUB_TOKEN }} + build: + needs: test + name: Build (${{ matrix.os }} - ${{ matrix.arch }}) + runs-on: ${{ matrix.os }} + strategy: + matrix: + # Build for supported platforms + # https://github.com/electron/electron-packager/blob/ebcbd439ff3e0f6f92fa880ff28a8670a9bcf2ab/src/targets.js#L9 + # 32-bit Linux unsupported as of 2019: https://www.electronjs.org/blog/linux-32bit-support + os: [ macOS-latest, ubuntu-latest, windows-latest ] + arch: [ x64, arm64 ] + include: + - os: windows-latest + arch: ia32 + - os: ubuntu-latest + arch: armv7l + # Publishing artifacts for multiple Windows architectures has + # a bug which can cause the wrong architecture to be downloaded + # for an update, so until that is fixed, only build Windows x64 + exclude: + - os: windows-latest + arch: arm64 + + steps: + - uses: actions/checkout@v3 + - name: Setup Node.js + uses: actions/setup-node@v3.5.0 + with: + node-version: 16.x + cache: yarn +# - name: Set MacOS signing certs +# if: matrix.os == 'macOS-latest' +# run: chmod +x tools/add-macos-cert.sh && ./tools/add-macos-cert.sh +# env: +# MACOS_CERT_P12: ${{ secrets.MACOS_CERT_P12 }} +# MACOS_CERT_PASSWORD: ${{ secrets.MACOS_CERT_PASSWORD }} +# - name: Set Windows signing certificate +# if: matrix.os == 'windows-latest' +# continue-on-error: true +# id: write_file +# uses: timheuer/base64-to-file@v1 +# with: +# fileName: 'win-certificate.pfx' +# encodedString: ${{ secrets.WINDOWS_CODESIGN_P12 }} + - name: Install + run: yarn --network-timeout 100000 || yarn --network-timeout 100000 || yarn --network-timeout 100000 + - name: Make + if: startsWith(github.ref, 'refs/tags/') + run: yarn make --arch=${{ matrix.arch }} + env: +# APPLE_ID: ${{ secrets.APPLE_ID }} +# APPLE_ID_PASSWORD: ${{ secrets.APPLE_ID_PASSWORD }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} +# WINDOWS_CODESIGN_FILE: ${{ steps.write_file.outputs.filePath }} +# WINDOWS_CODESIGN_PASSWORD: ${{ secrets.WINDOWS_CODESIGN_PASSWORD }} + # - name: Archive production artifacts + # uses: actions/upload-artifact@v2 + # with: + # name: ${{ matrix.os }} + # path: out/make/**/* + - name: Release + uses: softprops/action-gh-release@v1 + if: startsWith(github.ref, 'refs/tags/') + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + draft: true + files: | + out/**/*.deb + out/**/*.dmg + out/**/*setup*.exe + out/**/*.nupkg + out/**/*.rpm + out/**/*.zip + out/**/RELEASES + out/**/*portable*.exe \ No newline at end of file diff --git a/forge.config.js b/forge.config.js new file mode 100644 index 0000000..e357337 --- /dev/null +++ b/forge.config.js @@ -0,0 +1,75 @@ +const path = require('path'); + +const packageJson = require('./package.json'); + +const {version} = packageJson; +const iconDir = path.resolve(__dirname, 'icons'); + +const config = { + packagerConfig: { + name: "Zpl Printer", + executableName: 'zpl-printer', + icon: path.resolve(__dirname, 'icons', 'icon'), + }, + makers: [ + { + name: "@rabbitholesyndrome/electron-forge-maker-portable", + platforms: ['win32'], + config: { + portable: { + artifactName: "${name}-portable-${version}.exe" + } + } + }, + { + name: "@electron-forge/maker-squirrel", + platforms: ['win32'], + config: (arch) => ({ + name: "zpl-printer", + exe: 'zpl-printer.exe', + iconUrl: "https://github.com/MrL0co/ZplPrinter/blob/electron/icons/icon.ico?raw=true", + noMsi: true, + setupExe: `zpl-printer-${version}-win32-${arch}-setup.exe`, + setupIcon: path.resolve(iconDir, "icon.ico"), + }) + }, + { + name: "@electron-forge/maker-zip", + platforms: [ + "darwin", + "linux" + ] + }, + { + name: "@electron-forge/maker-deb", + config: { + icon: { + scalable: path.resolve(iconDir, 'icon.svg') + } + } + }, + { + name: "@electron-forge/maker-rpm", + config: { + icon: { + scalable: path.resolve(iconDir, 'icon.svg') + } + } + } + ], + publishers: [ + { + name: "@electron-forge/publisher-github", + config: { + repository: { + owner: "MrL0co", + name: "ZplPrinter" + }, + prerelease: false, + draft: true + } + } + ] +}; + +module.exports = config; \ No newline at end of file diff --git a/icons/icon.svg b/icons/icon.svg new file mode 100644 index 0000000..86cb1aa --- /dev/null +++ b/icons/icon.svg @@ -0,0 +1,16 @@ + + + + + + + + + \ No newline at end of file diff --git a/main.js b/main.js index c964d98..aac7b64 100644 --- a/main.js +++ b/main.js @@ -1,3 +1,5 @@ +require('update-electron-app')() + const { app, BrowserWindow } = require('electron') if (require('electron-squirrel-startup')) return app.quit(); diff --git a/package.json b/package.json index 5a4d6e8..93d22c6 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,6 @@ { - "name": "zplprinter", + "name": "zpl-printer", + "productName": "Zpl Printer", "version": "1.0.0", "description": "Printer emulator for zpl rendering engine.", "main": "main.js", @@ -7,7 +8,8 @@ "test": "echo \"Error: no test specified\" && exit 1", "start": "electron-forge start", "package": "electron-forge package", - "make": "electron-forge make" + "make": "electron-forge make", + "publish": "electron-forge publish" }, "repository": { "type": "git", @@ -25,6 +27,7 @@ "@electron-forge/maker-rpm": "^6.0.0-beta.67", "@electron-forge/maker-squirrel": "^6.0.0-beta.67", "@electron-forge/maker-zip": "^6.0.0-beta.67", + "@electron-forge/publisher-github": "^6.0.0-beta.67", "@rabbitholesyndrome/electron-forge-maker-portable": "^0.1.1", "electron": "^21.1.0" }, @@ -32,47 +35,7 @@ "bootstrap": "3.3.1", "electron-squirrel-startup": "^1.0.0", "electron-store": "^8.1.0", - "jquery": "^3.6.1" - }, - "config": { - "forge": { - "packagerConfig": { - "name": "Zpl Printer", - "icon": "./icons/icon" - }, - "makers": [ - { - "name": "@rabbitholesyndrome/electron-forge-maker-portable", - "config": {} - }, - { - "name": "@electron-forge/maker-squirrel", - "config": { - "name": "ZplPrinter", - "iconUrl": "https://github.com/MrL0co/ZplPrinter/blob/electron/icons/icon.ico?raw=true", - "setupIcon": "./icons/icon.ico" - } - }, - { - "name": "@electron-forge/maker-zip", - "platforms": [ - "darwin", - "linux" - ] - }, - { - "name": "@electron-forge/maker-deb", - "config": { - "options": { - "icon": "./icons/png/512x512.png" - } - } - }, - { - "name": "@electron-forge/maker-rpm", - "config": {} - } - ] - } + "jquery": "^3.6.1", + "update-electron-app": "^2.0.1" } } diff --git a/yarn.lock b/yarn.lock index e986cc0..90ce963 100644 --- a/yarn.lock +++ b/yarn.lock @@ -214,6 +214,22 @@ dependencies: "@electron-forge/shared-types" "6.0.0-beta.67" +"@electron-forge/publisher-github@^6.0.0-beta.67": + version "6.0.0-beta.67" + resolved "https://registry.yarnpkg.com/@electron-forge/publisher-github/-/publisher-github-6.0.0-beta.67.tgz#ff8367d073f4c88aa3f471e2ff17fbf4ed6ecccd" + integrity sha512-wZOsn2E8lDwRMdTAl+pl7e84Ft8C6AZG/yaz8r6jaLNN9ttWGaq3sDySGi+uNIXns1hxr0GncW1iem//ENP2mw== + dependencies: + "@electron-forge/async-ora" "6.0.0-beta.67" + "@electron-forge/publisher-base" "6.0.0-beta.67" + "@electron-forge/shared-types" "6.0.0-beta.67" + "@octokit/core" "^3.2.4" + "@octokit/plugin-retry" "^3.0.9" + "@octokit/rest" "^18.0.11" + "@octokit/types" "^6.1.2" + debug "^4.3.1" + fs-extra "^10.0.0" + mime-types "^2.1.25" + "@electron-forge/shared-types@6.0.0-beta.67": version "6.0.0-beta.67" resolved "https://registry.npmjs.org/@electron-forge/shared-types/-/shared-types-6.0.0-beta.67.tgz" @@ -390,6 +406,115 @@ mkdirp "^1.0.4" rimraf "^3.0.2" +"@octokit/auth-token@^2.4.4": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-2.5.0.tgz#27c37ea26c205f28443402477ffd261311f21e36" + integrity sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g== + dependencies: + "@octokit/types" "^6.0.3" + +"@octokit/core@^3.2.4", "@octokit/core@^3.5.1": + version "3.6.0" + resolved "https://registry.yarnpkg.com/@octokit/core/-/core-3.6.0.tgz#3376cb9f3008d9b3d110370d90e0a1fcd5fe6085" + integrity sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q== + dependencies: + "@octokit/auth-token" "^2.4.4" + "@octokit/graphql" "^4.5.8" + "@octokit/request" "^5.6.3" + "@octokit/request-error" "^2.0.5" + "@octokit/types" "^6.0.3" + before-after-hook "^2.2.0" + universal-user-agent "^6.0.0" + +"@octokit/endpoint@^6.0.1": + version "6.0.12" + resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-6.0.12.tgz#3b4d47a4b0e79b1027fb8d75d4221928b2d05658" + integrity sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA== + dependencies: + "@octokit/types" "^6.0.3" + is-plain-object "^5.0.0" + universal-user-agent "^6.0.0" + +"@octokit/graphql@^4.5.8": + version "4.8.0" + resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-4.8.0.tgz#664d9b11c0e12112cbf78e10f49a05959aa22cc3" + integrity sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg== + dependencies: + "@octokit/request" "^5.6.0" + "@octokit/types" "^6.0.3" + universal-user-agent "^6.0.0" + +"@octokit/openapi-types@^12.11.0": + version "12.11.0" + resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-12.11.0.tgz#da5638d64f2b919bca89ce6602d059f1b52d3ef0" + integrity sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ== + +"@octokit/plugin-paginate-rest@^2.16.8": + version "2.21.3" + resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.21.3.tgz#7f12532797775640dbb8224da577da7dc210c87e" + integrity sha512-aCZTEf0y2h3OLbrgKkrfFdjRL6eSOo8komneVQJnYecAxIej7Bafor2xhuDJOIFau4pk0i/P28/XgtbyPF0ZHw== + dependencies: + "@octokit/types" "^6.40.0" + +"@octokit/plugin-request-log@^1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz#5e50ed7083a613816b1e4a28aeec5fb7f1462e85" + integrity sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA== + +"@octokit/plugin-rest-endpoint-methods@^5.12.0": + version "5.16.2" + resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.16.2.tgz#7ee8bf586df97dd6868cf68f641354e908c25342" + integrity sha512-8QFz29Fg5jDuTPXVtey05BLm7OB+M8fnvE64RNegzX7U+5NUXcOcnpTIK0YfSHBg8gYd0oxIq3IZTe9SfPZiRw== + dependencies: + "@octokit/types" "^6.39.0" + deprecation "^2.3.1" + +"@octokit/plugin-retry@^3.0.9": + version "3.0.9" + resolved "https://registry.yarnpkg.com/@octokit/plugin-retry/-/plugin-retry-3.0.9.tgz#ae625cca1e42b0253049102acd71c1d5134788fe" + integrity sha512-r+fArdP5+TG6l1Rv/C9hVoty6tldw6cE2pRHNGmFPdyfrc696R6JjrQ3d7HdVqGwuzfyrcaLAKD7K8TX8aehUQ== + dependencies: + "@octokit/types" "^6.0.3" + bottleneck "^2.15.3" + +"@octokit/request-error@^2.0.5", "@octokit/request-error@^2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-2.1.0.tgz#9e150357831bfc788d13a4fd4b1913d60c74d677" + integrity sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg== + dependencies: + "@octokit/types" "^6.0.3" + deprecation "^2.0.0" + once "^1.4.0" + +"@octokit/request@^5.6.0", "@octokit/request@^5.6.3": + version "5.6.3" + resolved "https://registry.yarnpkg.com/@octokit/request/-/request-5.6.3.tgz#19a022515a5bba965ac06c9d1334514eb50c48b0" + integrity sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A== + dependencies: + "@octokit/endpoint" "^6.0.1" + "@octokit/request-error" "^2.1.0" + "@octokit/types" "^6.16.1" + is-plain-object "^5.0.0" + node-fetch "^2.6.7" + universal-user-agent "^6.0.0" + +"@octokit/rest@^18.0.11": + version "18.12.0" + resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-18.12.0.tgz#f06bc4952fc87130308d810ca9d00e79f6988881" + integrity sha512-gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q== + dependencies: + "@octokit/core" "^3.5.1" + "@octokit/plugin-paginate-rest" "^2.16.8" + "@octokit/plugin-request-log" "^1.0.4" + "@octokit/plugin-rest-endpoint-methods" "^5.12.0" + +"@octokit/types@^6.0.3", "@octokit/types@^6.1.2", "@octokit/types@^6.16.1", "@octokit/types@^6.39.0", "@octokit/types@^6.40.0": + version "6.41.0" + resolved "https://registry.yarnpkg.com/@octokit/types/-/types-6.41.0.tgz#e58ef78d78596d2fb7df9c6259802464b5f84a04" + integrity sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg== + dependencies: + "@octokit/openapi-types" "^12.11.0" + "@rabbitholesyndrome/electron-forge-maker-portable@^0.1.1": version "0.1.1" resolved "https://registry.yarnpkg.com/@rabbitholesyndrome/electron-forge-maker-portable/-/electron-forge-maker-portable-0.1.1.tgz#7c8e9fbc7ed12c728ed793909eeec83a234bcd63" @@ -707,6 +832,11 @@ base64-js@^1.3.1, base64-js@^1.5.1: resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== +before-after-hook@^2.2.0: + version "2.2.3" + resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.3.tgz#c51e809c81a4e354084422b9b26bad88249c517c" + integrity sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ== + bl@^4.1.0: version "4.1.0" resolved "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz" @@ -738,6 +868,11 @@ bootstrap@3.3.1: resolved "https://registry.npmjs.org/bootstrap/-/bootstrap-3.3.1.tgz" integrity sha512-y2aXwH7MhmTaoROnycbChnWK6Ue+VBUb7B5K4qe2mqjxFQ8f+XXnyouVV2rxxs9zCVqqifJKDLBc+AwBKfLEgA== +bottleneck@^2.15.3: + version "2.19.5" + resolved "https://registry.yarnpkg.com/bottleneck/-/bottleneck-2.19.5.tgz#5df0b90f59fd47656ebe63c78a98419205cadd91" + integrity sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw== + brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" @@ -1202,6 +1337,11 @@ depd@^1.1.2: resolved "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz" integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== +deprecation@^2.0.0, deprecation@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919" + integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ== + detect-libc@^2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz" @@ -1295,6 +1435,11 @@ electron-installer-redhat@^3.2.0: word-wrap "^1.2.3" yargs "^16.0.2" +electron-is-dev@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/electron-is-dev/-/electron-is-dev-0.3.0.tgz#14e6fda5c68e9e4ecbeff9ccf037cbd7c05c5afe" + integrity sha512-jLttuuq8QK67n3mXmIe9pkrO7IH3LGIk12xJkhTmc852U2sCJaRAOpRGPSh+1Xnzck5v9escd9YXzuze9nGejg== + electron-notarize@^1.1.1: version "1.2.1" resolved "https://registry.npmjs.org/electron-notarize/-/electron-notarize-1.2.1.tgz" @@ -1782,6 +1927,13 @@ get-stream@^5.1.0: dependencies: pump "^3.0.0" +github-url-to-object@^4.0.4: + version "4.0.6" + resolved "https://registry.yarnpkg.com/github-url-to-object/-/github-url-to-object-4.0.6.tgz#5ea8701dc8c336b8d582dc3fa5bf964165c3b365" + integrity sha512-NaqbYHMUAlPcmWFdrAB7bcxrNIiiJWJe8s/2+iOc9vlcHlwHqSGrPk+Yi3nu6ebTwgsZEa7igz+NH2vEq3gYwQ== + dependencies: + is-url "^1.1.0" + glob-parent@^5.1.2: version "5.1.2" resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" @@ -2129,6 +2281,11 @@ is-obj@^2.0.0: resolved "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz" integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== +is-plain-object@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" + integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== + is-stream@^1.1.0: version "1.1.0" resolved "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz" @@ -2139,6 +2296,11 @@ is-unicode-supported@^0.1.0: resolved "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz" integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== +is-url@^1.1.0, is-url@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/is-url/-/is-url-1.2.4.tgz#04a4df46d28c4cff3d73d01ff06abeb318a1aa52" + integrity sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww== + is-windows@^1.0.1: version "1.0.2" resolved "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz" @@ -2437,7 +2599,7 @@ mime-db@1.52.0: resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== -mime-types@^2.1.12: +mime-types@^2.1.12, mime-types@^2.1.25: version "2.1.35" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== @@ -3533,6 +3695,11 @@ unique-slug@^3.0.0: dependencies: imurmurhash "^0.1.4" +universal-user-agent@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-6.0.0.tgz#3381f8503b251c0d9cd21bc1de939ec9df5480ee" + integrity sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w== + universalify@^0.1.0: version "0.1.2" resolved "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz" @@ -3543,6 +3710,16 @@ universalify@^2.0.0: resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz" integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== +update-electron-app@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/update-electron-app/-/update-electron-app-2.0.1.tgz#229dbeb4534f51ec949e6a46ae1ac32f68a17eed" + integrity sha512-e4xEner89UZZaBGYJbYlMdL1uUrC0VjOsTAL2N4opPjzFtn+j7mdsJJsnyXZzUVeLY+8tuCX4XEsUM98oBHmZg== + dependencies: + electron-is-dev "^0.3.0" + github-url-to-object "^4.0.4" + is-url "^1.2.4" + ms "^2.1.1" + uri-js@^4.2.2: version "4.4.1" resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz"